<?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>213312</bug_id>
          
          <creation_ts>2020-06-17 11:53:25 -0700</creation_ts>
          <short_desc>Update test262 to commit 8d3dd2d1a0a5</short_desc>
          <delta_ts>2020-06-17 13:22:24 -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>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>keith_miller</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1663627</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-17 11:53:25 -0700</bug_when>
    <thetext>Update test262 to commit 8d3dd2d1a0a5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663631</commentid>
    <comment_count>1</comment_count>
      <attachid>402140</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-17 11:56:29 -0700</bug_when>
    <thetext>Created attachment 402140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663632</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-17 11:59:46 -0700</bug_when>
    <thetext>I have patches ready for Promise, async-generator, and TypedArray failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663641</commentid>
    <comment_count>3</comment_count>
      <attachid>402140</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-17 12:39:58 -0700</bug_when>
    <thetext>Comment on attachment 402140
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663642</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-17 12:44:53 -0700</bug_when>
    <thetext>Committed r263177: &lt;https://trac.webkit.org/changeset/263177&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402140.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663643</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-17 12:45:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/64459174&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402140</attachid>
            <date>2020-06-17 11:56:29 -0700</date>
            <delta_ts>2020-06-17 12:44:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213312-20200617215627.patch</filename>
            <type>text/plain</type>
            <size>247118</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTY3CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdmMGRhMjM1ZDJkYThkZTM1MDBhMzcyZTBlMmM5
NmNkODExODE2YTkuLjlmMmE1MzE0NDNjZjM4YTU1NDJkMDU1NWRkY2UxYjQ4OWM3YmQ1YWIgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMDYtMTcgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21h
aWwuY29tPgorCisgICAgICAgIFVwZGF0ZSB0ZXN0MjYyIHRvIGNvbW1pdCA4ZDNkZDJkMWEwYTUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzMxMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbDoKKyAgICAgICAgKiB0ZXN0MjYyL2xhdGVzdC1jaGFuZ2VzLXN1
bW1hcnkudHh0OgorICAgICAgICAqIHRlc3QyNjIvdGVzdC8qOiBVcGRhdGVkLgorICAgICAgICAq
IHRlc3QyNjIvdGVzdDI2Mi1SZXZpc2lvbi50eHQ6CisKIDIwMjAtMDYtMTYgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBDaGVjayBOdWxsU2V0dGVy
RnVuY3Rpb24gdW5kZXIgc3RyaWN0LW1vZGUgY29udGV4dCBzaW5jZSBzdHJ1Y3R1cmUgLyBQcm9w
ZXJ0eUNvbmRpdGlvbiBhcmUgdW5hd2FyZSBvZiB0aGlzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlh
bWwKaW5kZXggMjJlYWJmMGIyOTg3OTIxYWZiY2E2OGIyMjdkYzQ5ZWVkYzFjNTA0Yy4uMDA4MDMx
OWJjYmU3ZmNkODM1ZDNjMTBhMzJmZmY3ZjAwNzllYjY4ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90
ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlv
bnMueWFtbApAQCAtMTAwNiw2ICsxMDA2LDkgQEAgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9leGVj
dXRvci1mdW5jdGlvbi1ub25jb25zdHJ1Y3Rvci5qczoKIHRlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
cHJvdG90eXBlL2ZpbmFsbHkvaW52b2tlcy10aGVuLXdpdGgtZnVuY3Rpb24uanM6CiAgIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IGZ1bGZpbGxtZW50IGhhbmRsZXIgaXMgbm90IGNvbnN0cnVjdG9y
JwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogZnVsZmlsbG1lbnQgaGFuZGxlciBpcyBu
b3QgY29uc3RydWN0b3InCit0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL3Byb3RvdHlwZS9maW5hbGx5
L3JlamVjdGVkLW9ic2VydmFibGUtdGhlbi1jYWxscy1hcmd1bWVudC5qczoKKyAgZGVmYXVsdDog
J1Rlc3QyNjI6QXN5bmNUZXN0RmFpbHVyZTpUZXN0MjYyRXJyb3I6IFRlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6QXN5bmNU
ZXN0RmFpbHVyZTpUZXN0MjYyRXJyb3I6IFRlc3QyNjJFcnJvcjogRXhwZWN0ZWQgdHJ1ZSBidXQg
Z290IGZhbHNlJwogdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9wcm90b3R5cGUvZmluYWxseS9yZXNv
bHZlZC1vYnNlcnZhYmxlLXRoZW4tY2FsbHMtYXJndW1lbnQuanM6CiAgIGRlZmF1bHQ6ICdUZXN0
MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IHRydWUgYnV0IGdvdCBmYWxzZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOkFzeW5jVGVzdEZh
aWx1cmU6VGVzdDI2MkVycm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0IGdvdCBm
YWxzZScKQEAgLTE0OTEsMTUgKzE0OTQsMjQgQEAgdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9w
cm90b3R5cGUvZmlsdGVyL3NwZWNpZXNjdG9yLWdldC1zcGVjaWVzLWN1c3RvbS1jdG9yLWwKIHRl
c3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2luZGV4T2YvbGVuZ3RoLXplcm8tcmV0
dXJucy1taW51cy1vbmUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6ICAoVGVzdGluZyB3
aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogIChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCit0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3Rv
dHlwZS9pbmRleE9mL25vLWFyZy5qczoKKyAgZGVmYXVsdDogJ1R5cGVFcnJvcjogRXhwZWN0ZWQg
YXQgbGVhc3Qgb25lIGFyZ3VtZW50IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0
cmljdCBtb2RlOiAnVHlwZUVycm9yOiBFeHBlY3RlZCBhdCBsZWFzdCBvbmUgYXJndW1lbnQgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJv
dG90eXBlL2xhc3RJbmRleE9mL2xlbmd0aC16ZXJvLXJldHVybnMtbWludXMtb25lLmpzOgogICBk
ZWZhdWx0OiAnVGVzdDI2MkVycm9yOiAgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKICAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6ICAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4p
JwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvbGFzdEluZGV4T2Yvbm8tYXJn
LmpzOgorICBkZWZhdWx0OiAnVHlwZUVycm9yOiBFeHBlY3RlZCBhdCBsZWFzdCBvbmUgYXJndW1l
bnQgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6ICdUeXBlRXJy
b3I6IEV4cGVjdGVkIGF0IGxlYXN0IG9uZSBhcmd1bWVudCAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pJwogdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvbWFwL3NwZWNpZXNj
dG9yLWdldC1jdG9yLXJldHVybnMtdGhyb3dzLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiA0MiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogNDIgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3du
IGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0
QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL21hcC9zcGVjaWVz
Y3Rvci1nZXQtc3BlY2llcy1jdXN0b20tY3Rvci1sZW5ndGgtdGhyb3dzLmpzOgogICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5v
IGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4p
JwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0
aCBGbG9hdDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL3Nl
dC9hcnJheS1hcmctcHJpbWl0aXZlLXRvb2JqZWN0LmpzOgorICBkZWZhdWx0OiAnVHlwZUVycm9y
OiBGaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgYW4gb2JqZWN0IChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBGaXJzdCBhcmd1bWVudCBzaG91
bGQgYmUgYW4gb2JqZWN0IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiB0ZXN0L2J1aWx0
LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9zbGljZS9kZXRhY2hlZC1idWZmZXItemVyby1jb3Vu
dC1jdXN0b20tY3Rvci1vdGhlci10YXJnZXR0eXBlLmpzOgogICBkZWZhdWx0OiAnVHlwZUVycm9y
OiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcg
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKICAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6
IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwpAQCAtMjA5OSw2ICsyMTExLDEyIEBAIHRlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvYXN5bmMtZ2VuZXJhdG9yL2dlbmVyYXRvci1jcmVhdGVkLWFm
dGVyLWRlY2wtaW5zdC5qczoKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IFNhbWVWYWx1ZSjCq1tvYmplY3QgQXN5bmNHZW5lcmF0b3JdwrssIMKrW29iamVjdCBBc3luY0dl
bmVyYXRvcl3CuykgdG8gYmUgZmFsc2UnCiB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2FzeW5j
LWdlbmVyYXRvci9uYW1lZC1ldmFsLXZhci1zY29wZS1zeW50YXgtZXJyLmpzOgogICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFN5bnRheEVycm9yIHRvIGJlIHRocm93biBidXQg
bm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwordGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9hc3luYy1nZW5lcmF0b3IveWllbGQtdGhlbmFibGUtY3JlYXRlLXJlc29sdmluZy1mdW5jdGlv
bnMtcmVqZWN0LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRlc3Qy
NjJFcnJvcjogVGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCisgIHN0
cmljdCBtb2RlOiAnVGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRlc3QyNjJFcnJvcjogVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCit0ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2FzeW5jLWdlbmVyYXRvci95aWVsZC10aGVuYWJsZS1jcmVhdGUtcmVzb2x2aW5nLWZ1
bmN0aW9ucy1yZXNvbHZlLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJl
OlRlc3QyNjJFcnJvcjogVGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2Un
CisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRlc3QyNjJFcnJvcjog
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCiB0ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL2F3YWl0L2FzeW5jLWF3YWl0LWludGVybGVhdmVkLmpzOgogICBkZWZhdWx0
OiAnVGVzdDI2MjpBc3luY1Rlc3RGYWlsdXJlOlRlc3QyNjJFcnJvcjogVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBbQXdhaXQ6IDEsIFByb21pc2U6IDEsIFByb21pc2U6IDIsIEF3YWl0OiAyXSBhbmQg
W0F3YWl0OiAxLCBQcm9taXNlOiAxLCBBd2FpdDogMiwgUHJvbWlzZTogMl0gdG8gaGF2ZSB0aGUg
c2FtZSBjb250ZW50cy4gQXN5bmMvYXdhaXQgYW5kIHByb21pc2VzIHNob3VsZCBiZSBpbnRlcmxl
YXZlZCcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOkFzeW5jVGVzdEZhaWx1cmU6VGVzdDI2MkVy
cm9yOiBUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtBd2FpdDogMSwgUHJvbWlzZTogMSwgUHJvbWlz
ZTogMiwgQXdhaXQ6IDJdIGFuZCBbQXdhaXQ6IDEsIFByb21pc2U6IDEsIEF3YWl0OiAyLCBQcm9t
aXNlOiAyXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiBBc3luYy9hd2FpdCBhbmQgcHJvbWlz
ZXMgc2hvdWxkIGJlIGludGVybGVhdmVkJwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2xh
dGVzdC1jaGFuZ2VzLXN1bW1hcnkudHh0IGIvSlNUZXN0cy90ZXN0MjYyL2xhdGVzdC1jaGFuZ2Vz
LXN1bW1hcnkudHh0CmluZGV4IDkyOWRmOGRiY2ZiMjg2NzI1NmRmNTgzNzM2MmJlMmVlNDgxNTIy
NGMuLjA4ZWMyNzRmZGFmMDAyOGIxYzY3NzU1YWQ3NDAyOTI0OGJjMjk3YWEgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvdGVzdDI2Mi9sYXRlc3QtY2hhbmdlcy1zdW1tYXJ5LnR4dAorKysgYi9KU1Rlc3Rz
L3Rlc3QyNjIvbGF0ZXN0LWNoYW5nZXMtc3VtbWFyeS50eHQKQEAgLTEsMTMyICsxLDEyMSBAQAot
TSB0ZXN0L2FubmV4Qi9idWlsdC1pbnMvU3RyaW5nL3Byb3RvdHlwZS9yZXBsYWNlQWxsL2N1c3Rv
bS1yZXBsYWNlci1lbXVsYXRlcy11bmRlZmluZWQuanMKLUEgdGVzdC9idWlsdC1pbnMvQXN5bmNG
cm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlL3JldHVybi9yZXR1cm4tbnVsbC5qcwotQSB0ZXN0L2J1
aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUvdGhyb3cvdGhyb3ctbnVsbC5q
cwotTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9kZXNjcmlwdG9yLmpzCi1NIHRl
c3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2ZhbHNlLWZvci10aW1lb3V0LWFnZW50Lmpz
CitBIHRlc3QvYW5uZXhCL2xhbmd1YWdlL3N0YXRlbWVudHMvY2xhc3Mvc3ViY2xhc3Mvc3VwZXJj
bGFzcy1lbXVsYXRlcy11bmRlZmluZWQuanMKK00gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0
QXN5bmMvYmFkLXJhbmdlLmpzCitBIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2Jp
Z2ludC9iYWQtcmFuZ2UuanMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmln
aW50L2ZhbHNlLWZvci10aW1lb3V0LWFnZW50LmpzCitBIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mv
d2FpdEFzeW5jL2JpZ2ludC9mYWxzZS1mb3ItdGltZW91dC5qcworQSB0ZXN0L2J1aWx0LWlucy9B
dG9taWNzL3dhaXRBc3luYy9iaWdpbnQvZ29vZC12aWV3cy5qcworQSB0ZXN0L2J1aWx0LWlucy9B
dG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbmFuLWZvci10aW1lb3V0LWFnZW50LmpzCitBIHRlc3Qv
YnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9uZWdhdGl2ZS1pbmRleC10aHJvd3Mu
anMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25lZ2F0aXZlLXRp
bWVvdXQtYWdlbnQuanMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50
L25lZ2F0aXZlLXRpbWVvdXQuanMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMv
YmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1uby1vcGVyYXRpb24uanMKK0EgdGVzdC9idWlsdC1p
bnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi1hZGQuanMK
K0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25vLXNwdXJpb3VzLXdh
a2V1cC1vbi1hbmQuanMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50
L25vLXNwdXJpb3VzLXdha2V1cC1vbi1jb21wYXJlRXhjaGFuZ2UuanMKK0EgdGVzdC9idWlsdC1p
bnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi1leGNoYW5n
ZS5qcworQSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm8tc3B1cmlv
dXMtd2FrZXVwLW9uLW9yLmpzCitBIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2Jp
Z2ludC9uby1zcHVyaW91cy13YWtldXAtb24tc3RvcmUuanMKK0EgdGVzdC9idWlsdC1pbnMvQXRv
bWljcy93YWl0QXN5bmMvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi1zdWIuanMKK0EgdGVz
dC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1v
bi14b3IuanMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25vbi1i
aWdpbnQ2NC10eXBlZGFycmF5LXRocm93cy5qcworQSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dh
aXRBc3luYy9iaWdpbnQvbm9uLXNoYXJlZC1idWZmZXJkYXRhLXRocm93cy5qcworQSB0ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm90LWEtdHlwZWRhcnJheS10aHJvd3Mu
anMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25vdC1hbi1vYmpl
Y3QtdGhyb3dzLmpzCitBIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9u
dWxsLWJ1ZmZlcmRhdGEtdGhyb3dzLmpzCitBIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFz
eW5jL2JpZ2ludC9udWxsLWZvci10aW1lb3V0LWFnZW50LmpzCitBIHRlc3QvYnVpbHQtaW5zL0F0
b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9udWxsLWZvci10aW1lb3V0LmpzCitBIHRlc3QvYnVpbHQt
aW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9vYmplY3QtZm9yLXRpbWVvdXQtYWdlbnQuanMK
K0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L29iamVjdC1mb3ItdGlt
ZW91dC5qcworQSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvb3V0LW9m
LXJhbmdlLWluZGV4LXRocm93cy5qcworQSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3lu
Yy9iaWdpbnQvcG9pc29uZWQtb2JqZWN0LWZvci10aW1lb3V0LXRocm93cy1hZ2VudC5qcworQSB0
ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvcG9pc29uZWQtb2JqZWN0LWZv
ci10aW1lb3V0LXRocm93cy5qcworQSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9i
aWdpbnQvc3ltYm9sLWZvci1pbmRleC10aHJvd3MtYWdlbnQuanMKK0EgdGVzdC9idWlsdC1pbnMv
QXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3N5bWJvbC1mb3ItaW5kZXgtdGhyb3dzLmpzCitBIHRl
c3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9zeW1ib2wtZm9yLXRpbWVvdXQt
dGhyb3dzLWFnZW50LmpzCitBIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2lu
dC9zeW1ib2wtZm9yLXRpbWVvdXQtdGhyb3dzLmpzCitBIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mv
d2FpdEFzeW5jL2JpZ2ludC9zeW1ib2wtZm9yLXZhbHVlLXRocm93cy1hZ2VudC5qcworQSB0ZXN0
L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvc3ltYm9sLWZvci12YWx1ZS10aHJv
d3MuanMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3RydWUtZm9y
LXRpbWVvdXQtYWdlbnQuanMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmln
aW50L3RydWUtZm9yLXRpbWVvdXQuanMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5
bmMvYmlnaW50L3VuZGVmaW5lZC1mb3ItdGltZW91dC1hZ2VudC5qcworQSB0ZXN0L2J1aWx0LWlu
cy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvdW5kZWZpbmVkLWZvci10aW1lb3V0LmpzCitBIHRl
c3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC91bmRlZmluZWQtaW5kZXgtZGVm
YXVsdHMtdG8temVyby1hZ2VudC5qcworQSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3lu
Yy9iaWdpbnQvdmFsdWUtbm90LWVxdWFsLWFnZW50LmpzCitBIHRlc3QvYnVpbHQtaW5zL0F0b21p
Y3Mvd2FpdEFzeW5jL2JpZ2ludC92YWx1ZS1ub3QtZXF1YWwuanMKK0EgdGVzdC9idWlsdC1pbnMv
QXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3dhaXRlcmxpc3QtYmxvY2staW5kZXhlZHBvc2l0aW9u
LXdha2UuanMKK0EgdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3dhcy13
b2tlbi1iZWZvcmUtdGltZW91dC5qcwogTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3lu
Yy9mYWxzZS1mb3ItdGltZW91dC5qcwotTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3lu
Yy9pcy1mdW5jdGlvbi5qcwotTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9sZW5n
dGguanMKLU0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbmFtZS5qcwotTSB0ZXN0
L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9uYW4tZm9yLXRpbWVvdXQtYWdlbnQuanMKLU0g
dGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbmVnYXRpdmUtdGltZW91dC1hZ2VudC5q
cworTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9nb29kLXZpZXdzLmpzCitNIHRl
c3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL25lZ2F0aXZlLWluZGV4LXRocm93cy5qcwog
TSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9uZWdhdGl2ZS10aW1lb3V0LmpzCi1N
IHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL25vLXNwdXJpb3VzLXdha2V1cC1uby1v
cGVyYXRpb24uanMKLU0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbm8tc3B1cmlv
dXMtd2FrZXVwLW9uLWFkZC5qcwotTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9u
by1zcHVyaW91cy13YWtldXAtb24tYW5kLmpzCi1NIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2Fp
dEFzeW5jL25vLXNwdXJpb3VzLXdha2V1cC1vbi1jb21wYXJlRXhjaGFuZ2UuanMKLU0gdGVzdC9i
dWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbm8tc3B1cmlvdXMtd2FrZXVwLW9uLWV4Y2hhbmdl
LmpzCi1NIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL25vLXNwdXJpb3VzLXdha2V1
cC1vbi1vci5qcwotTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9uby1zcHVyaW91
cy13YWtldXAtb24tc3RvcmUuanMKLU0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMv
bm8tc3B1cmlvdXMtd2FrZXVwLW9uLXN1Yi5qcwotTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dh
aXRBc3luYy9uby1zcHVyaW91cy13YWtldXAtb24teG9yLmpzCiBNIHRlc3QvYnVpbHQtaW5zL0F0
b21pY3Mvd2FpdEFzeW5jL25vbi1pbnQzMi10eXBlZGFycmF5LXRocm93cy5qcwogTSB0ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9ub24tc2hhcmVkLWJ1ZmZlcmRhdGEtdGhyb3dzLmpz
CiBNIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL25vdC1hLXR5cGVkYXJyYXktdGhy
b3dzLmpzCiBNIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL25vdC1hbi1vYmplY3Qt
dGhyb3dzLmpzCi1NIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL251bGwtZm9yLXRp
bWVvdXQtYWdlbnQuanMKLU0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbnVsbC1m
b3ItdGltZW91dC5qcwotTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9vYmplY3Qt
Zm9yLXRpbWVvdXQtYWdlbnQuanMKK00gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMv
bnVsbC1idWZmZXJkYXRhLXRocm93cy5qcwogTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRB
c3luYy9vYmplY3QtZm9yLXRpbWVvdXQuanMKLU0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0
QXN5bmMvcG9pc29uZWQtb2JqZWN0LWZvci10aW1lb3V0LXRocm93cy1hZ2VudC5qcwotTSB0ZXN0
L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9yZXR1cm5zLXJlc3VsdC1vYmplY3QtdmFsdWUt
aXMtcHJvbWlzZS1yZXNvbHZlcy10by1vay5qcwotTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dh
aXRBc3luYy9yZXR1cm5zLXJlc3VsdC1vYmplY3QtdmFsdWUtaXMtcHJvbWlzZS1yZXNvbHZlcy10
by10aW1lZC1vdXQuanMKLU0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvcmV0dXJu
cy1yZXN1bHQtb2JqZWN0LXZhbHVlLWlzLXN0cmluZy1ub3QtZXF1YWwuanMKLU0gdGVzdC9idWls
dC1pbnMvQXRvbWljcy93YWl0QXN5bmMvcmV0dXJucy1yZXN1bHQtb2JqZWN0LXZhbHVlLWlzLXN0
cmluZy10aW1lZC1vdXQuanMKLU0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvc3lt
Ym9sLWZvci1pbmRleC10aHJvd3MtYWdlbnQuanMKLU0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93
YWl0QXN5bmMvc3ltYm9sLWZvci10aW1lb3V0LXRocm93cy1hZ2VudC5qcwotTSB0ZXN0L2J1aWx0
LWlucy9BdG9taWNzL3dhaXRBc3luYy9zeW1ib2wtZm9yLXZhbHVlLXRocm93cy1hZ2VudC5qcwot
TSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy90cnVlLWZvci10aW1lb3V0LWFnZW50
LmpzCitNIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL291dC1vZi1yYW5nZS1pbmRl
eC10aHJvd3MuanMKK00gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvc3ltYm9sLWZv
ci10aW1lb3V0LXRocm93cy5qcworTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9z
eW1ib2wtZm9yLXZhbHVlLXRocm93cy5qcwogTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRB
c3luYy90cnVlLWZvci10aW1lb3V0LmpzCi1NIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFz
eW5jL3VuZGVmaW5lZC1mb3ItdGltZW91dC1hZ2VudC5qcwogTSB0ZXN0L2J1aWx0LWlucy9BdG9t
aWNzL3dhaXRBc3luYy91bmRlZmluZWQtZm9yLXRpbWVvdXQuanMKLU0gdGVzdC9idWlsdC1pbnMv
QXRvbWljcy93YWl0QXN5bmMvdW5kZWZpbmVkLWluZGV4LWRlZmF1bHRzLXRvLXplcm8tYWdlbnQu
anMKLU0gdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvdmFsdWUtbm90LWVxdWFsLWFn
ZW50LmpzCiBNIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL3ZhbHVlLW5vdC1lcXVh
bC5qcwotTSB0ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy93YWl0ZXJsaXN0LWJsb2Nr
LWluZGV4ZWRwb3NpdGlvbi13YWtlLmpzCi1NIHRlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFz
eW5jL3dhcy13b2tlbi1iZWZvcmUtdGltZW91dC5qcwotRCB0ZXN0L2J1aWx0LWlucy9PYmplY3Qv
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLzE1LjIuMy4zLTAtMi5qcwotQSB0ZXN0L2J1aWx0LWlu
cy9PYmplY3QvZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yL2xlbmd0aC5qcwotQSB0ZXN0L2J1aWx0
LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yL3ByaW1pdGl2ZS1zdHJpbmcuanMK
LUEgdGVzdC9idWlsdC1pbnMvT2JqZWN0L2dldE93blByb3BlcnR5RGVzY3JpcHRvci9wcmltaXRp
dmUtc3ltYm9sLmpzCi1EIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsL1MyNS40LjQuMV9BNi4x
X1QxLmpzCi1EIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsL1MyNS40LjQuMV9BNi4xX1QyLmpz
Ci1EIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsL2ludm9rZS1yZXNvbHZlLWdldC1lcnJvci1j
bG9zZS5qcwotQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FsbC9pbnZva2UtcmVzb2x2ZS1nZXQt
ZXJyb3IuanMKLUEgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwvcmVzb2x2ZS1ub24tY2FsbGFi
bGUuanMKLUQgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwvcmVzb2x2ZS1ub3QtY2FsbGFibGUt
Y2xvc2UuanMKLUQgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGxTZXR0bGVkL2ludm9rZS1yZXNv
bHZlLWdldC1lcnJvci1jbG9zZS5qcwotQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FsbFNldHRs
ZWQvaW52b2tlLXJlc29sdmUtZ2V0LWVycm9yLmpzCi1BIHRlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YWxsU2V0dGxlZC9yZXNvbHZlLW5vbi1jYWxsYWJsZS5qcwotRCB0ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FsbFNldHRsZWQvcmVzb2x2ZS1ub3QtY2FsbGFibGUtY2xvc2UuanMKLUEgdGVzdC9idWls
dC1pbnMvUHJvbWlzZS9hbnkvY2FsbC1yZWplY3QtZWxlbWVudC1hZnRlci1yZXR1cm4uanMKLUEg
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY2FsbC1yZWplY3QtZWxlbWVudC1pdGVtcy5qcwot
QSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9jYXBhYmlsaXR5LXJlamVjdC10aHJvd3Mtbm8t
Y2xvc2UuanMKLUEgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY2FwYWJpbGl0eS1yZXNvbHZl
LXRocm93cy1uby1jbG9zZS5qcwotQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9jYXBhYmls
aXR5LXJlc29sdmUtdGhyb3dzLXJlamVjdC5qcwotTSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2Fu
eS9jdHgtbm9uLWN0b3IuanMKLUEgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY3R4LW5vbi1v
YmplY3QuanMKLUQgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZ2V0
LWVycm9yLWNsb3NlLmpzCi1BIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNv
bHZlLWdldC1lcnJvci5qcwotQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVz
b2x2ZS1yZXR1cm4uanMKLU0gdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRoZW4u
anMKLUEgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtZXJyb3Itb2JqZWN0
LXJlamVjdC5qcwotQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLW5leHQtdmFsLWVy
ci1uby1jbG9zZS5qcwotQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLW5leHQtdmFs
LWVyci1yZWplY3QuanMKLUEgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1yZXR1cm5z
LWZhbHNlLXJlamVjdC5qcwotQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLXJldHVy
bnMtbnVsbC1yZWplY3QuanMKLUEgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1yZXR1
cm5zLW51bWJlci1yZWplY3QuanMKLUEgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1y
ZXR1cm5zLXN0cmluZy1yZWplY3QuanMKLUEgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRl
ci1yZXR1cm5zLXN5bWJvbC1yZWplY3QuanMKLUEgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
aXRlci1yZXR1cm5zLXRydWUtcmVqZWN0LmpzCi1BIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L2l0ZXItcmV0dXJucy11bmRlZmluZWQtcmVqZWN0LmpzCi1BIHRlc3QvYnVpbHQtaW5zL1Byb21p
c2UvYW55L3JlamVjdC1pZ25vcmVkLWRlZmVycmVkLmpzCi1BIHRlc3QvYnVpbHQtaW5zL1Byb21p
c2UvYW55L3JlamVjdC1pZ25vcmVkLWltbWVkLmpzCi1BIHRlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L3JlamVjdC1pbW1lZC5qcwotQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZl
LWJlZm9yZS1sb29wLWV4aXQtZnJvbS1zYW1lLmpzCi1BIHRlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L3Jlc29sdmUtYmVmb3JlLWxvb3AtZXhpdC5qcwotQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L2FueS9yZXNvbHZlLW5vbi1jYWxsYWJsZS5qcwotRCB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2Fu
eS9yZXNvbHZlLW5vdC1jYWxsYWJsZS1jbG9zZS5qcwotUjA2NSB0ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9pbnZva2UtcmVzb2x2ZS1ub3QtY2FsbGFibGUtcmVqZWN0cy13aXRoLXR5cGVycm9y
LmpzIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Jlc29sdmUtbm90LWNhbGxhYmxlLXJlamVj
dC13aXRoLXR5cGVlcnJvci5qcwotRCB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL3JhY2UvaW52b2tl
LXJlc29sdmUtZ2V0LWVycm9yLWNsb3NlLmpzCi1BIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvcmFj
ZS9pbnZva2UtcmVzb2x2ZS1nZXQtZXJyb3IuanMKLUEgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9y
YWNlL3Jlc29sdmUtbm9uLWNhbGxhYmxlLmpzCi1EIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvcmFj
ZS9yZXNvbHZlLW5vdC1jYWxsYWJsZS1jbG9zZS5qcwotRCB0ZXN0L2J1aWx0LWlucy9TdHJpbmcv
cHJvdG90eXBlL3NwbGl0L1MxNS41LjQuMTRfQTFfVDYuanMKLUEgdGVzdC9idWlsdC1pbnMvU3Ry
aW5nL3Byb3RvdHlwZS9zcGxpdC9zZXBhcmF0b3ItdW5kZWYtbGltaXQtY3VzdG9tLmpzCi1BIHRl
c3QvYnVpbHQtaW5zL1N0cmluZy9wcm90b3R5cGUvc3BsaXQvc2VwYXJhdG9yLXVuZGVmLWxpbWl0
LXplcm8uanMKLUEgdGVzdC9idWlsdC1pbnMvU3RyaW5nL3Byb3RvdHlwZS9zcGxpdC9zZXBhcmF0
b3ItdW5kZWYuanMKLUEgdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9y
cy9vYmplY3QtYXJnL2l0ZXJhdG9yLWlzLW51bGwtYXMtYXJyYXktbGlrZS5qcwotRCB0ZXN0L2lu
dGw0MDIvQ29sbGF0b3IvaW5zdGFuY2UtY2xhc3MuanMKLU0gdGVzdC9pbnRsNDAyL0NvbGxhdG9y
L3Byb3RvdHlwZS9idWlsdGluLmpzCi1BIHRlc3QvaW50bDQwMi9Db2xsYXRvci9wcm90b3R5cGUv
dG9TdHJpbmdUYWcvdG9TdHJpbmctY2hhbmdlZC10YWcuanMKLUEgdGVzdC9pbnRsNDAyL0NvbGxh
dG9yL3Byb3RvdHlwZS90b1N0cmluZ1RhZy90b1N0cmluZy1yZW1vdmVkLXRhZy5qcwotQSB0ZXN0
L2ludGw0MDIvQ29sbGF0b3IvcHJvdG90eXBlL3RvU3RyaW5nVGFnL3RvU3RyaW5nLmpzCi1BIHRl
c3QvaW50bDQwMi9Db2xsYXRvci9wcm90b3R5cGUvdG9TdHJpbmdUYWcvdG9TdHJpbmdUYWcuanMK
LUQgdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2luc3RhbmNlLWNsYXNzLmpzCi1NIHRlc3Qv
aW50bDQwMi9EYXRlVGltZUZvcm1hdC9wcm90b3R5cGUvYnVpbHRpbi5qcwotQSB0ZXN0L2ludGw0
MDIvRGF0ZVRpbWVGb3JtYXQvcHJvdG90eXBlL3RvU3RyaW5nVGFnL3RvU3RyaW5nLWNoYW5nZWQt
dGFnLmpzCi1BIHRlc3QvaW50bDQwMi9EYXRlVGltZUZvcm1hdC9wcm90b3R5cGUvdG9TdHJpbmdU
YWcvdG9TdHJpbmctcmVtb3ZlZC10YWcuanMKLUEgdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0
L3Byb3RvdHlwZS90b1N0cmluZ1RhZy90b1N0cmluZy5qcwotQSB0ZXN0L2ludGw0MDIvRGF0ZVRp
bWVGb3JtYXQvcHJvdG90eXBlL3RvU3RyaW5nVGFnL3RvU3RyaW5nVGFnLmpzCi1EIHRlc3QvaW50
bDQwMi9OdW1iZXJGb3JtYXQvaW5zdGFuY2UtY2xhc3MuanMKLU0gdGVzdC9pbnRsNDAyL051bWJl
ckZvcm1hdC9wcm90b3R5cGUvYnVpbHRpbi5qcwotTSB0ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0
L3Byb3RvdHlwZS90b1N0cmluZ1RhZy9jb25maWd1cmFibGUuanMKLU0gdGVzdC9pbnRsNDAyL051
bWJlckZvcm1hdC9wcm90b3R5cGUvdG9TdHJpbmdUYWcvcHJvcC1kZXNjLmpzCi1NIHRlc3QvaW50
bDQwMi9QbHVyYWxSdWxlcy9wcm90b3R5cGUvYnVpbHRpbnMuanMKLUEgdGVzdC9pbnRsNDAyL1Bs
dXJhbFJ1bGVzL3Byb3RvdHlwZS90b1N0cmluZ1RhZy90b1N0cmluZy1jaGFuZ2VkLXRhZy5qcwot
QSB0ZXN0L2ludGw0MDIvUGx1cmFsUnVsZXMvcHJvdG90eXBlL3RvU3RyaW5nVGFnL3RvU3RyaW5n
LXJlbW92ZWQtdGFnLmpzCi1BIHRlc3QvaW50bDQwMi9QbHVyYWxSdWxlcy9wcm90b3R5cGUvdG9T
dHJpbmdUYWcvdG9TdHJpbmcuanMKLUEgdGVzdC9pbnRsNDAyL1BsdXJhbFJ1bGVzL3Byb3RvdHlw
ZS90b1N0cmluZ1RhZy90b1N0cmluZ1RhZy5qcwotQSB0ZXN0L2xhbmd1YWdlL2V2YWwtY29kZS9k
aXJlY3Qvc3RyaWN0LWNhbGxlci1mdW5jdGlvbi1jb250ZXh0LmpzCi1BIHRlc3QvbGFuZ3VhZ2Uv
ZXZhbC1jb2RlL2RpcmVjdC9zdHJpY3QtY2FsbGVyLWdsb2JhbC5qcwotQSB0ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL2FzeW5jLWdlbmVyYXRvci95aWVsZC1zdGFyLWdldGl0ZXItYXN5bmMtcmV0
dXJuLW1ldGhvZC1pcy1udWxsLmpzCi1BIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvYXN5bmMt
Z2VuZXJhdG9yL3lpZWxkLXN0YXItZ2V0aXRlci1hc3luYy10aHJvdy1tZXRob2QtaXMtbnVsbC5q
cwotTSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNzL2VsZW1lbnRzL3N0YXRpYy1wcml2
YXRlLW1ldGhvZC1hbmQtaW5zdGFuY2UtbWV0aG9kLWJyYW5kLWNoZWNrLmpzCi1BIHRlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMveWllbGQvc3Rhci1yZXR1cm4taXMtbnVsbC5qcwotQSB0ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL3lpZWxkL3N0YXItdGhyb3ctaXMtbnVsbC5qcwotTSB0ZXN0L2xh
bmd1YWdlL21vZHVsZS1jb2RlL2luc3RuLW9uY2UuanMKLUEgdGVzdC9sYW5ndWFnZS9zdGF0ZW1l
bnRzL2FzeW5jLWdlbmVyYXRvci95aWVsZC1zdGFyLXJldHVybi1taXNzaW5nLXZhbHVlLWlzLWF3
YWl0ZWQuanMKLU0gdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL3N0YXRp
Yy1wcml2YXRlLW1ldGhvZC1hbmQtaW5zdGFuY2UtbWV0aG9kLWJyYW5kLWNoZWNrLmpzCi1NIHRl
c3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jb250aW51ZS8xMi43LTEuanMKLUEgdGVzdC9sYW5ndWFn
ZS9zdGF0ZW1lbnRzL2Zvci1hd2FpdC1vZi9pdGVyYXRvci1jbG9zZS1ub24tdGhyb3ctZ2V0LW1l
dGhvZC1pcy1udWxsLmpzCi1BIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3Itb2YvaXRlcmF0
b3ItY2xvc2Utbm9uLXRocm93LWdldC1tZXRob2QtaXMtbnVsbC5qcwpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwvaW52b2tlLXJlc29sdmUt
b24tcHJvbWlzZXMtZXZlcnktaXRlcmF0aW9uLW9mLWN1c3RvbS5qcworQSB0ZXN0L2J1aWx0LWlu
cy9Qcm9taXNlL2FsbC9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24t
b2YtcHJvbWlzZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FsbC9pbnZva2UtcmVzb2x2
ZS1vbi12YWx1ZXMtZXZlcnktaXRlcmF0aW9uLW9mLXByb21pc2UuanMKK0EgdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbGwvcmVzb2x2ZS1pZ25vcmVzLWxhdGUtcmVqZWN0aW9uLWRlZmVycmVkLmpz
CitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsL3Jlc29sdmUtaWdub3Jlcy1sYXRlLXJlamVj
dGlvbi5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FsbC9yZXNvbHZlLW5vdC1jYWxsYWJs
ZS1yZWplY3Qtd2l0aC10eXBlZXJyb3IuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGxT
ZXR0bGVkL2ludm9rZS1yZXNvbHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1jdXN0
b20uanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGxTZXR0bGVkL2ludm9rZS1yZXNvbHZl
LW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpzCitBIHRlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYWxsU2V0dGxlZC9pbnZva2UtcmVzb2x2ZS1vbi12YWx1ZXMtZXZlcnktaXRl
cmF0aW9uLW9mLXByb21pc2UuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGxTZXR0bGVk
L3Jlc29sdmUtaWdub3Jlcy1sYXRlLXJlamVjdGlvbi1kZWZlcnJlZC5qcworQSB0ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FsbFNldHRsZWQvcmVzb2x2ZS1pZ25vcmVzLWxhdGUtcmVqZWN0aW9uLmpz
CitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsU2V0dGxlZC9yZXNvbHZlLW5vdC1jYWxsYWJs
ZS1yZWplY3Qtd2l0aC10eXBlZXJyb3IuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
cmVqZWN0LWZyb20tc2FtZS10aGVuYWJsZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2Fu
eS9yZXNvbHZlLW5vbi10aGVuYWJsZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9y
ZXNvbHZlZC1zZXF1ZW5jZS1leHRyYS10aWNrcy5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L2FueS9yZXNvbHZlZC1zZXF1ZW5jZS1taXhlZC5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L2FueS9yZXNvbHZlZC1zZXF1ZW5jZS13aXRoLXJlamVjdGlvbnMuanMKK0EgdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbnkvcmVzb2x2ZWQtc2VxdWVuY2UuanMKK00gdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9wcm90b3R5cGUvZmluYWxseS9yZWplY3RlZC1vYnNlcnZhYmxlLXRoZW4tY2FsbHMtYXJn
dW1lbnQuanMKK0EgdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvaW5kZXhPZi9C
aWdJbnQvbm8tYXJnLmpzCitBIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2lu
ZGV4T2Yvbm8tYXJnLmpzCitBIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2xh
c3RJbmRleE9mL0JpZ0ludC9uby1hcmcuanMKK0EgdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9w
cm90b3R5cGUvbGFzdEluZGV4T2Yvbm8tYXJnLmpzCitBIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJy
YXkvcHJvdG90eXBlL3NldC9CaWdJbnQvYXJyYXktYXJnLXByaW1pdGl2ZS10b29iamVjdC5qcwor
QSB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9zZXQvYXJyYXktYXJnLXByaW1p
dGl2ZS10b29iamVjdC5qcworTSB0ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvY29uc3RydWN0
b3Itb3B0aW9ucy1vcmRlci10aW1lZGF0ZS1zdHlsZS5qcworTSB0ZXN0L2ludGw0MDIvRGF0ZVRp
bWVGb3JtYXQvcHJvdG90eXBlL3Jlc29sdmVkT3B0aW9ucy9vcmRlci1zdHlsZS5qcworRCB0ZXN0
L2ludGw0MDIvU2VnbWVudGVyL2l0ZXJhdG9yL2JyYW5kaW5nLmpzCitEIHRlc3QvaW50bDQwMi9T
ZWdtZW50ZXIvaXRlcmF0b3IvYnJlYWtUeXBlLmpzCitEIHRlc3QvaW50bDQwMi9TZWdtZW50ZXIv
aXRlcmF0b3IvZm9sbG93aW5nLmpzCitEIHRlc3QvaW50bDQwMi9TZWdtZW50ZXIvaXRlcmF0b3Iv
Z3JhbnVsYXJpdHkuanMKK0QgdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9pdGVyYXRvci9uZXh0Lmpz
CitEIHRlc3QvaW50bDQwMi9TZWdtZW50ZXIvaXRlcmF0b3IvcG9zaXRpb24uanMKK0QgdGVzdC9p
bnRsNDAyL1NlZ21lbnRlci9pdGVyYXRvci9wcmVjZWRpbmcuanMKK0QgdGVzdC9pbnRsNDAyL1Nl
Z21lbnRlci9pdGVyYXRvci9wcm90b3R5cGUuanMKK0QgdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9w
cm90b3R5cGUvc2VnbWVudC9zZWdtZW50LWdyYXBoZW1lLWZvbGxvd2luZy5qcworTSB0ZXN0L2lu
dGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtZ3JhcGhlbWUtaXRlcmFi
bGUuanMKK0QgdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdtZW50
LWdyYXBoZW1lLW5leHQuanMKK0QgdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5cGUvc2Vn
bWVudC9zZWdtZW50LWdyYXBoZW1lLXByZWNlZGluZy5qcworRCB0ZXN0L2ludGw0MDIvU2VnbWVu
dGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtc2VudGVuY2UtZm9sbG93aW5nLmpzCitNIHRl
c3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90eXBlL3NlZ21lbnQvc2VnbWVudC1zZW50ZW5jZS1p
dGVyYWJsZS5qcworRCB0ZXN0L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3Nl
Z21lbnQtc2VudGVuY2UtbmV4dC5qcworRCB0ZXN0L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlw
ZS9zZWdtZW50L3NlZ21lbnQtc2VudGVuY2UtcHJlY2VkaW5nLmpzCitNIHRlc3QvaW50bDQwMi9T
ZWdtZW50ZXIvcHJvdG90eXBlL3NlZ21lbnQvc2VnbWVudC10b3N0cmluZy5qcworRCB0ZXN0L2lu
dGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtd29yZC1mb2xsb3dpbmcu
anMKK00gdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdtZW50LXdv
cmQtaXRlcmFibGUuanMKK0QgdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5cGUvc2VnbWVu
dC9zZWdtZW50LXdvcmQtbmV4dC5qcworRCB0ZXN0L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlw
ZS9zZWdtZW50L3NlZ21lbnQtd29yZC1wcmVjZWRpbmcuanMKK0EgdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9hc3luYy1nZW5lcmF0b3IveWllbGQtdGhlbmFibGUtY3JlYXRlLXJlc29sdmluZy1m
dW5jdGlvbnMtcmVqZWN0LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvYXN5bmMtZ2Vu
ZXJhdG9yL3lpZWxkLXRoZW5hYmxlLWNyZWF0ZS1yZXNvbHZpbmctZnVuY3Rpb25zLXJlc29sdmUu
anMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1h
bmQtYXNzaWdubWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24tYXJyb3ctZnVuY3Rpb24uanMK
K0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQt
YXNzaWdubWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24tY2xhc3MtZXhwcmVzc2lvbi5qcwor
QSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1h
c3NpZ25tZW50LW9wZXJhdG9yLW5hbWVkZXZhbHVhdGlvbi1mdW5jdGlvbi5qcworQSB0ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdu
bWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24tYXJyb3ctZnVuY3Rpb24uanMKK0EgdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2ln
bm1lbnQtb3BlcmF0b3ItbmFtZWRldmFsdWF0aW9uLWNsYXNzLWV4cHJlc3Npb24uanMKK0EgdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFz
c2lnbm1lbnQtb3BlcmF0b3ItbmFtZWRldmFsdWF0aW9uLWZ1bmN0aW9uLmpzCitBIHRlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1v
cGVyYXRvci1uYW1lZGV2YWx1YXRpb24tYXJyb3ctZnVuY3Rpb24uanMKK0EgdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJh
dG9yLW5hbWVkZXZhbHVhdGlvbi1jbGFzcy1leHByZXNzaW9uLmpzCitBIHRlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRv
ci1uYW1lZGV2YWx1YXRpb24tZnVuY3Rpb24uanMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9hbm5leEIvbGFuZ3VhZ2Uvc3RhdGVt
ZW50cy9jbGFzcy9zdWJjbGFzcy9zdXBlcmNsYXNzLWVtdWxhdGVzLXVuZGVmaW5lZC5qcyBiL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2FubmV4Qi9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL3N1YmNs
YXNzL3N1cGVyY2xhc3MtZW11bGF0ZXMtdW5kZWZpbmVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNjYyYmI5
MDVkYzg4NmI0NzUyOTc3NDkyMzNmOWJmYjc2YzAwMGYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9hbm5leEIvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9zdWJjbGFz
cy9zdXBlcmNsYXNzLWVtdWxhdGVzLXVuZGVmaW5lZC5qcwpAQCAtMCwwICsxLDMzIEBACisvLyBD
b3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5a2EuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisv
LyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBM
SUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLXJ1bnRpbWUtc2VtYW50aWNzLWNsYXNzZGVm
aW5pdGlvbmV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgIFtbSXNIVE1MRERBXV0gb2JqZWN0
IGFzIHN1cGVyY2xhc3M6IGBudWxsYCBjaGVjayB1c2VzIHN0cmljdCBlcXVhbGl0eS4KKyAgSXND
b25zdHJ1Y3RvciBjaGVjayBpcyBwZXJmb3JtZWQgYmVmb3JlICJwcm90b3R5cGUiIGxvb2t1cC4K
K2luZm86IHwKKyAgQ2xhc3NEZWZpbml0aW9uRXZhbHVhdGlvbgorCisgIFsuLi5dCisgIDUuIEVs
c2UsCisgICAgWy4uLl0KKyAgICBkLiBMZXQgc3VwZXJjbGFzcyBiZSA/IEdldFZhbHVlKHN1cGVy
Y2xhc3NSZWYpLgorICAgIGUuIElmIHN1cGVyY2xhc3MgaXMgbnVsbCwgdGhlbgorICAgICAgWy4u
Ll0KKyAgICBmLiBFbHNlIGlmIElzQ29uc3RydWN0b3Ioc3VwZXJjbGFzcykgaXMgZmFsc2UsIHRo
cm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KK2ZlYXR1cmVzOiBbY2xhc3MsIElzSFRNTEREQV0K
Ky0tLSovCisKK3ZhciBzdXBlcmNsYXNzID0gJDI2Mi5Jc0hUTUxEREE7Cit2YXIgcHJvdG90eXBl
R2V0cyA9IDA7CitPYmplY3QuZGVmaW5lUHJvcGVydHkoc3VwZXJjbGFzcywgInByb3RvdHlwZSIs
IHsKKyAgZ2V0OiBmdW5jdGlvbigpIHsKKyAgICBwcm90b3R5cGVHZXRzICs9IDE7CisgIH0sCit9
KTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBjbGFzcyBDIGV4
dGVuZHMgc3VwZXJjbGFzcyB7fQorfSk7CisKK2Fzc2VydC5zYW1lVmFsdWUocHJvdG90eXBlR2V0
cywgMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWlj
cy93YWl0QXN5bmMvYmFkLXJhbmdlLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5z
L0F0b21pY3Mvd2FpdEFzeW5jL2JhZC1yYW5nZS5qcwppbmRleCA0MjA1ZGY4NjRmZGJhMmI5OGEx
ZjQ4ODJjMmQxNjFhZTcyMjczYjQ3Li4zMzJjZmU0ZWMzYjc3N2ZkMWNkM2NlMmY3ZDk0ZGQ5NzA4
MTZiMTlhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWlj
cy93YWl0QXN5bmMvYmFkLXJhbmdlLmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9BdG9taWNzL3dhaXRBc3luYy9iYWQtcmFuZ2UuanMKQEAgLTE5LDYgKzE5LDcgQEAgaW5m
bzogfAogaW5jbHVkZXM6IFt0ZXN0QXRvbWljcy5qc10KIGZlYXR1cmVzOiBbQXRvbWljcy53YWl0
QXN5bmMsIEF0b21pY3MsIFNoYXJlZEFycmF5QnVmZmVyLCBBcnJheUJ1ZmZlciwgRGF0YVZpZXcs
IFN5bWJvbCwgVHlwZWRBcnJheV0KIC0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9t
aWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7CiBjb25zdCBpMzJhID0gbmV3IEludDMyQXJyYXko
CiAgIG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihJbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICog
OCkKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWlj
cy93YWl0QXN5bmMvYmlnaW50L2JhZC1yYW5nZS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvYmFkLXJhbmdlLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM5OGRmYWU4NDQxM2EwZDRjMmFiNzRiODU4ZmYwNzJmY2NhNzdiODUKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmln
aW50L2JhZC1yYW5nZS5qcwpAQCAtMCwwICsxLDI4IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAg
UmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVy
bmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0K
K2VzaWQ6IHNlYy1hdG9taWNzLndhaXRhc3luYworZGVzY3JpcHRpb246ID4KKyAgVGVzdCByYW5n
ZSBjaGVja2luZyBvZiBBdG9taWNzLndhaXRBc3luYyBvbiBhcnJheXMgdGhhdCBhbGxvdyBhdG9t
aWMgb3BlcmF0aW9ucworaW5mbzogfAorICBBdG9taWNzLndhaXRBc3luYyggdHlwZWRBcnJheSwg
aW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICAxLiBSZXR1cm4gRG9XYWl0KGFzeW5jLCB0eXBl
ZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQpLgorCisgIERvV2FpdCAoIG1vZGUsIHR5cGVk
QXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgLi4uCisgIDIuIExldCBpIGJlID8g
VmFsaWRhdGVBdG9taWNBY2Nlc3ModHlwZWRBcnJheSwgaW5kZXgpLgorICAuLi4KKworaW5jbHVk
ZXM6IFt0ZXN0QXRvbWljcy5qc10KK2ZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIEF0b21p
Y3MsIFNoYXJlZEFycmF5QnVmZmVyLCBBcnJheUJ1ZmZlciwgRGF0YVZpZXcsIFN5bWJvbCwgVHlw
ZWRBcnJheSwgQmlnSW50XQorLS0tKi8KK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mu
d2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKK2NvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShu
ZXcgU2hhcmVkQXJyYXlCdWZmZXIoQmlnSW50NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDgp
KTsKKwordGVzdFdpdGhBdG9taWNzT3V0T2ZCb3VuZHNJbmRpY2VzKGZ1bmN0aW9uKElkeEdlbikg
eworICBhc3NlcnQudGhyb3dzKFJhbmdlRXJyb3IsIGZ1bmN0aW9uKCkgeworICAgIEF0b21pY3Mu
d2FpdEFzeW5jKGk2NGEsIElkeEdlbihpNjRhKSwgMG4sIDApOworICB9LCAnYEF0b21pY3Mud2Fp
dEFzeW5jKGk2NGEsIElkeEdlbihpNjRhKSwgMG4sIDApYCB0aHJvd3MgUmFuZ2VFcnJvcicpOwor
fSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93
YWl0QXN5bmMvYmlnaW50L2ZhbHNlLWZvci10aW1lb3V0LWFnZW50LmpzIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9mYWxzZS1mb3ItdGlt
ZW91dC1hZ2VudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZGRmMDI1ZWVkYWM0MjExM2MyYzExNmVlZDM1MTI1
Y2NiYjdiYzQyCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9mYWxzZS1mb3ItdGltZW91dC1hZ2VudC5qcwpA
QCAtMCwwICsxLDkxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGlj
ZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hdG9taWNz
LndhaXRhc3luYworZGVzY3JpcHRpb246ID4KKyAgRmFsc2UgdGltZW91dCBhcmcgc2hvdWxkIHJl
c3VsdCBpbiBhbiArMCB0aW1lb3V0CitpbmZvOiB8CisgIEF0b21pY3Mud2FpdEFzeW5jKCB0eXBl
ZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVybiBEb1dhaXQoYXN5
bmMsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAgRG9XYWl0ICggbW9k
ZSwgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICA2LiBMZXQgcSBiZSA/
IFRvTnVtYmVyKHRpbWVvdXQpLgorCitmbGFnczogW2FzeW5jXQoraW5jbHVkZXM6IFthdG9taWNz
SGVscGVyLmpzXQorZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZm
ZXIsIFR5cGVkQXJyYXksIEF0b21pY3MsIEJpZ0ludCwgYXJyb3ctZnVuY3Rpb24sIGFzeW5jLWZ1
bmN0aW9uc10KKy0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3lu
YywgJ2Z1bmN0aW9uJyk7Citjb25zdCBSVU5OSU5HID0gMTsKKworJDI2Mi5hZ2VudC5zdGFydChg
CisgIGNvbnN0IHZhbHVlT2YgPSB7CisgICAgdmFsdWVPZigpIHsKKyAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgIH07CisKKyAgY29uc3QgdG9QcmltaXRpdmUgPSB7CisgICAgW1N5bWJvbC50
b1ByaW1pdGl2ZV0oKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9OworCisgICQy
NjIuYWdlbnQucmVjZWl2ZUJyb2FkY2FzdChhc3luYyAoc2FiKSA9PiB7CisgICAgY29uc3QgaTY0
YSA9IG5ldyBCaWdJbnQ2NEFycmF5KHNhYik7CisgICAgQXRvbWljcy5hZGQoaTY0YSwgJHtSVU5O
SU5HfSwgMW4pOworICAgICQyNjIuYWdlbnQucmVwb3J0KGF3YWl0IEF0b21pY3Mud2FpdEFzeW5j
KGk2NGEsIDAsIDBuLCBmYWxzZSkudmFsdWUpOworICAgICQyNjIuYWdlbnQucmVwb3J0KGF3YWl0
IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB2YWx1ZU9mKS52YWx1ZSk7CisgICAgJDI2
Mi5hZ2VudC5yZXBvcnQoYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHRvUHJp
bWl0aXZlKS52YWx1ZSk7CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoQXRvbWljcy53YWl0QXN5bmMo
aTY0YSwgMCwgMG4sIGZhbHNlKS52YWx1ZSk7CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoQXRvbWlj
cy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHZhbHVlT2YpLnZhbHVlKTsKKyAgICAkMjYyLmFnZW50
LnJlcG9ydChBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdG9QcmltaXRpdmUpLnZhbHVl
KTsKKyAgICAkMjYyLmFnZW50LmxlYXZpbmcoKTsKKyAgfSk7CitgKTsKKworY29uc3QgaTY0YSA9
IG5ldyBCaWdJbnQ2NEFycmF5KG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihCaWdJbnQ2NEFycmF5LkJZ
VEVTX1BFUl9FTEVNRU5UICogNCkpOworCiskMjYyLmFnZW50LnNhZmVCcm9hZGNhc3RBc3luYyhp
NjRhLCBSVU5OSU5HLCAxbikudGhlbihhc3luYyBhZ2VudENvdW50ID0+IHsKKyAgYXNzZXJ0LnNh
bWVWYWx1ZShhZ2VudENvdW50LCAxbik7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICBhd2Fp
dCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5jKCksCisgICAgJ3RpbWVkLW91dCcsCisgICAgJ2F3
YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCBmYWxzZSkudmFsdWUgcmVzb2x2ZXMg
dG8gInRpbWVkLW91dCInCisgICk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICBhd2FpdCAk
MjYyLmFnZW50LmdldFJlcG9ydEFzeW5jKCksCisgICAgJ3RpbWVkLW91dCcsCisgICAgJ2F3YWl0
IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB2YWx1ZU9mKS52YWx1ZSByZXNvbHZlcyB0
byAidGltZWQtb3V0IicKKyAgKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIGF3YWl0ICQy
NjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwKKyAgICAndGltZWQtb3V0JywKKyAgICAnYXdhaXQg
QXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHRvUHJpbWl0aXZlKS52YWx1ZSByZXNvbHZl
cyB0byAidGltZWQtb3V0IicKKyAgKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIGF3YWl0
ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwKKyAgICAndGltZWQtb3V0JywKKyAgICAnQXRv
bWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIGZhbHNlKS52YWx1ZSByZXNvbHZlcyB0byAidGlt
ZWQtb3V0IicKKyAgKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIGF3YWl0ICQyNjIuYWdl
bnQuZ2V0UmVwb3J0QXN5bmMoKSwKKyAgICAndGltZWQtb3V0JywKKyAgICAnQXRvbWljcy53YWl0
QXN5bmMoaTY0YSwgMCwgMG4sIHZhbHVlT2YpLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQi
JworICApOworCisgIGFzc2VydC5zYW1lVmFsdWUoCisgICAgYXdhaXQgJDI2Mi5hZ2VudC5nZXRS
ZXBvcnRBc3luYygpLAorICAgICd0aW1lZC1vdXQnLAorICAgICdBdG9taWNzLndhaXRBc3luYyhp
NjRhLCAwLCAwbiwgdG9QcmltaXRpdmUpLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJwor
ICApOworCisgIGFzc2VydC5zYW1lVmFsdWUoQXRvbWljcy5ub3RpZnkoaTY0YSwgMCksIDAsICdB
dG9taWNzLm5vdGlmeShpNjRhLCAwKSByZXR1cm5zIDAnKTsKK30pLnRoZW4oJERPTkUsICRET05F
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dh
aXRBc3luYy9iaWdpbnQvZmFsc2UtZm9yLXRpbWVvdXQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L2ZhbHNlLWZvci10aW1lb3V0Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZiYjdkNWE4ODUwODIxMTgwMTE0NDYxMDZmMDUyYmRiOGZkNmUwZWIKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93
YWl0QXN5bmMvYmlnaW50L2ZhbHNlLWZvci10aW1lb3V0LmpzCkBAIC0wLDAgKzEsNjAgQEAKKy8v
IENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisv
LyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBM
SUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLWF0b21pY3Mud2FpdGFzeW5jCitkZXNjcmlw
dGlvbjogPgorICBGYWxzZSB0aW1lb3V0IGFyZyBzaG91bGQgcmVzdWx0IGluIGFuICswIHRpbWVv
dXQKK2luZm86IHwKKyAgQXRvbWljcy53YWl0QXN5bmMoIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1
ZSwgdGltZW91dCApCisKKyAgMS4gUmV0dXJuIERvV2FpdChhc3luYywgdHlwZWRBcnJheSwgaW5k
ZXgsIHZhbHVlLCB0aW1lb3V0KS4KKworICBEb1dhaXQgKCBtb2RlLCB0eXBlZEFycmF5LCBpbmRl
eCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDYuIExldCBxIGJlID8gVG9OdW1iZXIodGltZW91dCku
CisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBTaGFyZWRB
cnJheUJ1ZmZlciwgVHlwZWRBcnJheSwgQXRvbWljcywgQmlnSW50LCBjb21wdXRlZC1wcm9wZXJ0
eS1uYW1lcywgU3ltYm9sLCBTeW1ib2wudG9QcmltaXRpdmUsIGFycm93LWZ1bmN0aW9uXQorLS0t
Ki8KK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAnZnVuY3Rpb24n
KTsKK2NvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShuZXcgU2hhcmVkQXJyYXlCdWZmZXIo
QmlnSW50NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQpKTsKKworY29uc3QgdmFsdWVPZiA9
IHsKKyAgdmFsdWVPZigpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KK307CisKK2NvbnN0IHRv
UHJpbWl0aXZlID0geworICBbU3ltYm9sLnRvUHJpbWl0aXZlXSgpIHsKKyAgICByZXR1cm4gZmFs
c2U7CisgIH0KK307CisKK2Fzc2VydC5zYW1lVmFsdWUoCisgIEF0b21pY3Mud2FpdEFzeW5jKGk2
NGEsIDAsIDBuLCBmYWxzZSkudmFsdWUsCisgICd0aW1lZC1vdXQnLAorICAnQXRvbWljcy53YWl0
QXN5bmMoaTY0YSwgMCwgMG4sIGZhbHNlKS52YWx1ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicK
Kyk7CisKK2Fzc2VydC5zYW1lVmFsdWUoCisgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBu
LCB2YWx1ZU9mKS52YWx1ZSwKKyAgJ3RpbWVkLW91dCcsCisgICdBdG9taWNzLndhaXRBc3luYyhp
NjRhLCAwLCAwbiwgZmFsc2UpLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJworKTsKKwor
YXNzZXJ0LnNhbWVWYWx1ZSgKKyAgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHRvUHJp
bWl0aXZlKS52YWx1ZSwKKyAgJ3RpbWVkLW91dCcsCisgICdBdG9taWNzLndhaXRBc3luYyhpNjRh
LCAwLCAwbiwgZmFsc2UpLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJworKTsKKworUHJv
bWlzZS5hbGwoWworICBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgZmFsc2UpLnZhbHVl
LAorICBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdmFsdWVPZikudmFsdWUsCisgIEF0
b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB0b1ByaW1pdGl2ZSkudmFsdWUKK10pLnRoZW4o
b3V0Y29tZXMgPT4geworICBhc3NlcnQuc2FtZVZhbHVlKG91dGNvbWVzWzBdLCAndGltZWQtb3V0
Jyk7CisgIGFzc2VydC5zYW1lVmFsdWUob3V0Y29tZXNbMV0sICd0aW1lZC1vdXQnKTsKKyAgYXNz
ZXJ0LnNhbWVWYWx1ZShvdXRjb21lc1syXSwgJ3RpbWVkLW91dCcpOworfSwgJERPTkUpLnRoZW4o
JERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvZ29vZC12aWV3cy5qcyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvZ29vZC12aWV3cy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZTVkN2U1ZWU4NDUzYjExZjZmODY1ZmQ4NTdkNGNjZmMyNWRhN2UxCi0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2Fp
dEFzeW5jL2JpZ2ludC9nb29kLXZpZXdzLmpzCkBAIC0wLDAgKzEsNzIgQEAKKy8vIENvcHlyaWdo
dCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2NyaXB0aW9uOiA+
CisgIFRlc3QgQXRvbWljcy53YWl0QXN5bmMgb24gYXJyYXlzIHRoYXQgYWxsb3cgYXRvbWljIG9w
ZXJhdGlvbnMKK2ZsYWdzOiBbYXN5bmNdCitpbmNsdWRlczogW2F0b21pY3NIZWxwZXIuanNdCitm
ZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBBdG9taWNzLCBCaWdJbnRdCistLS0qLworYXNz
ZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworCisK
KyQyNjIuYWdlbnQuc3RhcnQoYAorICAoYXN5bmMgKCkgPT4geworICAgIHZhciBzYWIgPSBuZXcg
U2hhcmVkQXJyYXlCdWZmZXIoMjA0OCk7CisgICAgdmFyIGdvb2RfaW5kaWNlcyA9IFsgKHZpZXcp
ID0+IDAvLTEsIC8vIC0wCisgICAgICAgICAgICAgICAgICAgICAgICAgKHZpZXcpID0+ICctMCcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgKHZpZXcpID0+IHZpZXcubGVuZ3RoIC0gMSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAodmlldykgPT4gKHsgdmFsdWVPZjogKCkgPT4gMCB9KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAodmlldykgPT4gKHsgdG9TdHJpbmc6ICgpID0+ICcw
JywgdmFsdWVPZjogZmFsc2UgfSkgLy8gbm9uLWNhbGxhYmxlIHZhbHVlT2YgdHJpZ2dlcnMgaW52
b2NhdGlvbiBvZiB0b1N0cmluZworICAgICAgICAgICAgICAgICAgICAgICBdOworCisgICAgdmFy
IHZpZXcgPSBuZXcgQmlnSW50NjRBcnJheShzYWIsIDMyLCAyMCk7CisKKyAgICB2aWV3WzBdID0g
MG47CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoIkEgIiArIChhd2FpdCBBdG9taWNzLndhaXRBc3lu
Yyh2aWV3LCAwLCAwbiwgMCkudmFsdWUpKQorICAgICQyNjIuYWdlbnQucmVwb3J0KCJCICIgKyAo
YXdhaXQgQXRvbWljcy53YWl0QXN5bmModmlldywgMCwgMzduLCAwKS52YWx1ZSkpOworCisgICAg
Y29uc3QgcmVzdWx0cyA9IFtdOworICAgIC8vIEluLWJvdW5kcyBib3VuZGFyeSBjYXNlcyBmb3Ig
aW5kZXhpbmcKKyAgICBmb3IgKCBsZXQgSWR4R2VuIG9mIGdvb2RfaW5kaWNlcyApIHsKKyAgICAg
ICAgbGV0IElkeCA9IElkeEdlbih2aWV3KTsKKyAgICAgICAgdmlldy5maWxsKDBuKTsKKyAgICAg
ICAgLy8gQXRvbWljcy5zdG9yZSgpIGNvbXB1dGVzIGFuIGluZGV4IGZyb20gSWR4IGluIHRoZSBz
YW1lIHdheSBhcyBvdGhlcgorICAgICAgICAvLyBBdG9taWNzIG9wZXJhdGlvbnMsIG5vdCBxdWl0
ZSBsaWtlIHZpZXdbSWR4XS4KKyAgICAgICAgQXRvbWljcy5zdG9yZSh2aWV3LCBJZHgsIDM3bik7
CisgICAgICAgIHJlc3VsdHMucHVzaChhd2FpdCBBdG9taWNzLndhaXRBc3luYyh2aWV3LCBJZHgs
IDBuKS52YWx1ZSk7CisgICAgfQorICAgICQyNjIuYWdlbnQucmVwb3J0KCJDICIgKyByZXN1bHRz
LmpvaW4oIiwiKSk7CisKKyAgICAkMjYyLmFnZW50LmxlYXZpbmcoKTsKKyAgfSkoKTsKK2ApOwor
CisKK1Byb21pc2UuYWxsKFsKKyAgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAkMjYy
LmFnZW50LmdldFJlcG9ydEFzeW5jKCksCisgICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwK
K10pLnRoZW4ob3V0Y29tZXMgPT4geworCisgIGFzc2VydC5zYW1lVmFsdWUoCisgICAgb3V0Y29t
ZXNbMF0sCisgICAgJ0EgdGltZWQtb3V0JywKKyAgICAnIkEgIiArIChhd2FpdCBBdG9taWNzLndh
aXRBc3luYyh2aWV3LCAwLCAwbiwgMCkudmFsdWUgcmVzb2x2ZXMgdG8gIkEgdGltZWQtb3V0IicK
KyAgKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIG91dGNvbWVzWzFdLAorICAgICdCIG5v
dC1lcXVhbCcsCisgICAgJyJCICIgKyAoYXdhaXQgQXRvbWljcy53YWl0QXN5bmModmlldywgMCwg
MzduLCAwKS52YWx1ZSByZXNvbHZlcyB0byAiQiBub3QtZXF1YWwiJworICApOworICBhc3NlcnQu
c2FtZVZhbHVlKAorICAgIG91dGNvbWVzWzJdLAorICAgICdDIG5vdC1lcXVhbCxub3QtZXF1YWws
bm90LWVxdWFsLG5vdC1lcXVhbCxub3QtZXF1YWwnLAorICAgICdBbGwgQyB2YWx1ZXMgYXJlIG5v
dCBlcXVhbCcKKyAgKTsKK30sICRET05FKS50aGVuKCRET05FLCAkRE9ORSk7CisKKwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2Jp
Z2ludC9uYW4tZm9yLXRpbWVvdXQtYWdlbnQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25hbi1mb3ItdGltZW91dC1hZ2VudC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NTI0YWU4NzRlN2I0YzViNDY3NDU3ZGY3YzE3ZjI3MzAzN2I0Njc3Ci0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2Fp
dEFzeW5jL2JpZ2ludC9uYW4tZm9yLXRpbWVvdXQtYWdlbnQuanMKQEAgLTAsMCArMSw0NCBAQAor
Ly8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2Ny
aXB0aW9uOiA+CisgIE5hTiB0aW1lb3V0IGFyZyBzaG91bGQgcmVzdWx0IGluIGFuIGluZmluaXRl
IHRpbWVvdXQKK2luZm86IHwKKyAgQXRvbWljcy53YWl0QXN5bmMoIHR5cGVkQXJyYXksIGluZGV4
LCB2YWx1ZSwgdGltZW91dCApCisKKyAgMS4gUmV0dXJuIERvV2FpdChhc3luYywgdHlwZWRBcnJh
eSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0KS4KKworICBEb1dhaXQgKCBtb2RlLCB0eXBlZEFycmF5
LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDYuIExldCBxIGJlID8gVG9OdW1iZXIodGlt
ZW91dCkuCisKK2ZsYWdzOiBbYXN5bmNdCitpbmNsdWRlczogW2F0b21pY3NIZWxwZXIuanNdCitm
ZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBTaGFyZWRBcnJheUJ1ZmZlciwgVHlwZWRBcnJh
eSwgQXRvbWljcywgQmlnSW50LCBhcnJvdy1mdW5jdGlvbiwgYXN5bmMtZnVuY3Rpb25zXQorLS0t
Ki8KK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAnZnVuY3Rpb24n
KTsKK2NvbnN0IFJVTk5JTkcgPSAxOworCiskMjYyLmFnZW50LnN0YXJ0KGAKKyAgJDI2Mi5hZ2Vu
dC5yZWNlaXZlQnJvYWRjYXN0KGFzeW5jIChzYWIpID0+IHsKKyAgICBjb25zdCBpNjRhID0gbmV3
IEJpZ0ludDY0QXJyYXkoc2FiKTsKKyAgICBBdG9taWNzLmFkZChpNjRhLCAke1JVTk5JTkd9LCAx
bik7CisKKyAgICAkMjYyLmFnZW50LnJlcG9ydChhd2FpdCBBdG9taWNzLndhaXRBc3luYyhpNjRh
LCAwLCAwbiwgTmFOKS52YWx1ZSk7ICAvLyBOYU4gPT4gK0luZmluaXR5CisgICAgJDI2Mi5hZ2Vu
dC5sZWF2aW5nKCk7CisgIH0pOworYCk7CisKK2NvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJh
eShuZXcgU2hhcmVkQXJyYXlCdWZmZXIoQmlnSW50NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAq
IDQpKTsKKworJDI2Mi5hZ2VudC5zYWZlQnJvYWRjYXN0QXN5bmMoaTY0YSwgUlVOTklORywgMW4p
LnRoZW4oYXN5bmMgYWdlbnRDb3VudCA9PiB7CisgIGFzc2VydC5zYW1lVmFsdWUoYWdlbnRDb3Vu
dCwgMW4pOworICBhc3NlcnQuc2FtZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2NGEsIDApLCAxLCAn
QXRvbWljcy5ub3RpZnkoaTY0YSwgMCkgcmV0dXJucyAxJyk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1
ZSgKKyAgICBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5jKCksCisgICAgJ29rJywKKyAg
ICAnYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIE5hTikudmFsdWUgcmVzb2x2
ZXMgdG8gIm9rIicKKyAgKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbmVn
YXRpdmUtaW5kZXgtdGhyb3dzLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0
b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9uZWdhdGl2ZS1pbmRleC10aHJvd3MuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2IwZDQzMzNmMWY4MzQ5ZDdmYmM5ZDlmNTJjMTk3NTEzNWVjOTYyNAotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9i
aWdpbnQvbmVnYXRpdmUtaW5kZXgtdGhyb3dzLmpzCkBAIC0wLDAgKzEsNDMgQEAKKy8vIENvcHly
aWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlz
IGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2NyaXB0aW9u
OiA+CisgIFRocm93cyBhIFJhbmdlRXJyb3IgaXMgaW5kZXggPCAwCitpbmZvOiB8CisgIEF0b21p
Y3Mud2FpdEFzeW5jKCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEu
IFJldHVybiBEb1dhaXQoYXN5bmMsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCku
CisKKyAgRG9XYWl0ICggbW9kZSwgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkK
KworICAxLiBMZXQgYnVmZmVyIGJlID8gVmFsaWRhdGVTaGFyZWRJbnRlZ2VyVHlwZWRBcnJheSh0
eXBlZEFycmF5LCB0cnVlKS4KKyAgMi4gTGV0IGkgYmUgPyBWYWxpZGF0ZUF0b21pY0FjY2Vzcyh0
eXBlZEFycmF5LCBpbmRleCkuCisKK2ZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJl
ZEFycmF5QnVmZmVyLCBUeXBlZEFycmF5LCBBdG9taWNzLCBCaWdJbnRdCistLS0qLworYXNzZXJ0
LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworY29uc3Qg
aTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KAorICBuZXcgU2hhcmVkQXJyYXlCdWZmZXIoQmlnSW50
NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQpCispOworCitjb25zdCBwb2lzb25lZCA9IHsK
KyAgdmFsdWVPZigpIHsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCdzaG91bGQgbm90IGV2
YWx1YXRlIHRoaXMgY29kZScpOworICB9Cit9OworCithc3NlcnQudGhyb3dzKFJhbmdlRXJyb3Is
IGZ1bmN0aW9uKCkgeworICBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAtSW5maW5pdHksIHBvaXNv
bmVkLCBwb2lzb25lZCk7Cit9LCAnYEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIC1JbmZpbml0eSwg
cG9pc29uZWQsIHBvaXNvbmVkKWAgdGhyb3dzIFJhbmdlRXJyb3InKTsKK2Fzc2VydC50aHJvd3Mo
UmFuZ2VFcnJvciwgZnVuY3Rpb24oKSB7CisgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIC03Ljk5
OSwgcG9pc29uZWQsIHBvaXNvbmVkKTsKK30sICdgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgLTcu
OTk5LCBwb2lzb25lZCwgcG9pc29uZWQpYCB0aHJvd3MgUmFuZ2VFcnJvcicpOworYXNzZXJ0LnRo
cm93cyhSYW5nZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwg
LTEsIHBvaXNvbmVkLCBwb2lzb25lZCk7Cit9LCAnYEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIC0x
LCBwb2lzb25lZCwgcG9pc29uZWQpYCB0aHJvd3MgUmFuZ2VFcnJvcicpOworYXNzZXJ0LnRocm93
cyhSYW5nZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgLTMw
MCwgcG9pc29uZWQsIHBvaXNvbmVkKTsKK30sICdgQXRvbWljcy53YWl0KGk2NGEsIC0zMDAsIHBv
aXNvbmVkLCBwb2lzb25lZClgIHRocm93cyBSYW5nZUVycm9yJyk7CisKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbmVn
YXRpdmUtdGltZW91dC1hZ2VudC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9B
dG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbmVnYXRpdmUtdGltZW91dC1hZ2VudC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ZjY5MWExMmRhOTRmNTk1ODhhZDg3YmFlNzQ2OWMyYTZmY2Q3M2VlCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5j
L2JpZ2ludC9uZWdhdGl2ZS10aW1lb3V0LWFnZW50LmpzCkBAIC0wLDAgKzEsNDQgQEAKKy8vIENv
cHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBU
aGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLWF0b21pY3Mud2FpdGFzeW5jCitkZXNjcmlwdGlv
bjogPgorICBUZXN0IHRoYXQgQXRvbWljcy53YWl0QXN5bmMgdGltZXMgb3V0IHdpdGggYSBuZWdh
dGl2ZSB0aW1lb3V0CitpbmZvOiB8CisgIEF0b21pY3Mud2FpdEFzeW5jKCB0eXBlZEFycmF5LCBp
bmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVybiBEb1dhaXQoYXN5bmMsIHR5cGVk
QXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAgRG9XYWl0ICggbW9kZSwgdHlwZWRB
cnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICA2LiBMZXQgcSBiZSA/IFRvTnVtYmVy
KHRpbWVvdXQpLgorCitmbGFnczogW2FzeW5jXQoraW5jbHVkZXM6IFthdG9taWNzSGVscGVyLmpz
XQorZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFR5cGVk
QXJyYXksIEF0b21pY3MsIEJpZ0ludCwgYXJyb3ctZnVuY3Rpb24sIGFzeW5jLWZ1bmN0aW9uc10K
Ky0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0
aW9uJyk7Citjb25zdCBSVU5OSU5HID0gMTsKKworJDI2Mi5hZ2VudC5zdGFydChgCisgICQyNjIu
YWdlbnQucmVjZWl2ZUJyb2FkY2FzdChhc3luYyAoc2FiKSA9PiB7CisgICAgdmFyIGk2NGEgPSBu
ZXcgQmlnSW50NjRBcnJheShzYWIpOworICAgIEF0b21pY3MuYWRkKGk2NGEsICR7UlVOTklOR30s
IDFuKTsKKyAgICAkMjYyLmFnZW50LnJlcG9ydChhd2FpdCBBdG9taWNzLndhaXRBc3luYyhpNjRh
LCAwLCAwbiwgLTUpLnZhbHVlKTsgLy8gLTUgPT4gMAorICAgICQyNjIuYWdlbnQubGVhdmluZygp
OworICB9KTsKK2ApOworCitjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0QXJyYXkobmV3IFNoYXJl
ZEFycmF5QnVmZmVyKEJpZ0ludDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiA0KSk7CisKKyQy
NjIuYWdlbnQuc2FmZUJyb2FkY2FzdEFzeW5jKGk2NGEsIFJVTk5JTkcsIDFuKS50aGVuKGFzeW5j
IGFnZW50Q291bnQgPT4geworICBhc3NlcnQuc2FtZVZhbHVlKGFnZW50Q291bnQsIDFuKTsKKwor
ICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMo
KSwKKyAgICAndGltZWQtb3V0JywKKyAgICAnYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwg
MCwgMG4sIC01KS52YWx1ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicKKyAgKTsKKworICBhc3Nl
cnQuc2FtZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2NGEsIDApLCAwLCAnQXRvbWljcy5ub3RpZnko
aTY0YSwgMCkgcmV0dXJucyAwJyk7Cit9KS50aGVuKCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50
L25lZ2F0aXZlLXRpbWVvdXQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRv
bWljcy93YWl0QXN5bmMvYmlnaW50L25lZ2F0aXZlLXRpbWVvdXQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I4
ODgzOWJiODBhMDU4ZjU2NGVkZmViYWJlMDkzNTk0YjA4ODYxNAotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQv
bmVnYXRpdmUtdGltZW91dC5qcwpAQCAtMCwwICsxLDI4IEBACisvLyBDb3B5cmlnaHQgKEMpIDIw
MjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdv
dmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyot
LS0KK2VzaWQ6IHNlYy1hdG9taWNzLndhaXRhc3luYworZGVzY3JpcHRpb246ID4KKyAgVGVzdCB0
aGF0IEF0b21pY3Mud2FpdEFzeW5jIHRpbWVzIG91dCB3aXRoIGEgbmVnYXRpdmUgdGltZW91dAor
aW5mbzogfAorICBBdG9taWNzLndhaXRBc3luYyggdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0
aW1lb3V0ICkKKworICAxLiBSZXR1cm4gRG9XYWl0KGFzeW5jLCB0eXBlZEFycmF5LCBpbmRleCwg
dmFsdWUsIHRpbWVvdXQpLgorCisgIERvV2FpdCAoIG1vZGUsIHR5cGVkQXJyYXksIGluZGV4LCB2
YWx1ZSwgdGltZW91dCApCisKKyAgNi4gTGV0IHEgYmUgPyBUb051bWJlcih0aW1lb3V0KS4KKwor
ZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJlZEFycmF5
QnVmZmVyLCBUeXBlZEFycmF5LCBBdG9taWNzLCBCaWdJbnQsIGRlc3RydWN0dXJpbmctYmluZGlu
ZywgYXJyb3ctZnVuY3Rpb25dCistLS0qLworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWlj
cy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworY29uc3QgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5
KG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihCaWdJbnQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICog
NCkpOworCitQcm9taXNlLmFsbChbQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIC0xKS52
YWx1ZV0pLnRoZW4oKFtvdXRjb21lXSkgPT4geworICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIG91
dGNvbWUsCisgICAgJ3RpbWVkLW91dCcsCisgICAgJ0F0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAs
IDBuLCAtMSkudmFsdWUgcmVzb2x2ZXMgdG8gInRpbWVkLW91dCInCisgICk7Cit9LCAkRE9ORSku
dGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAtbm8tb3Bl
cmF0aW9uLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFz
eW5jL2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAtbm8tb3BlcmF0aW9uLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgwNTA1ZTQyZTdjZjg0YjRiOTcxYWNhMzc0NTJmZTYwOWQ4ODc5YTgKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmln
aW50L25vLXNwdXJpb3VzLXdha2V1cC1uby1vcGVyYXRpb24uanMKQEAgLTAsMCArMSw2MSBAQAor
Ly8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2Ny
aXB0aW9uOiA+CisgIFRlc3QgdGhhdCBBdG9taWNzLndhaXRBc3luYyByZXR1cm5zIHRoZSByaWdo
dCByZXN1bHQgd2hlbiBpdCB0aW1lZCBvdXQgYW5kIHRoYXQKKyAgdGhlIHRpbWUgdG8gdGltZSBv
dXQgaXMgcmVhc29uYWJsZS4KK2luZm86IHwKKyAgQWRkV2FpdGVyICggV0wsIHdhaXRlclJlY29y
ZCApCisKKyAgNS4gQXBwZW5kIHdhaXRlclJlY29yZCBhcyB0aGUgbGFzdCBlbGVtZW50IG9mIFdM
LltbV2FpdGVyc11dCisgIDYuIElmIHdhaXRlclJlY29yZC5bW1RpbWVvdXRdXSBpcyBmaW5pdGUs
IHRoZW4gaW4gcGFyYWxsZWwsCisgICAgYS4gV2FpdCB3YWl0ZXJSZWNvcmQuW1tUaW1lb3V0XV0g
bWlsbGlzZWNvbmRzLgorICAgIGIuIFBlcmZvcm0gVHJpZ2dlclRpbWVvdXQoV0wsIHdhaXRlclJl
Y29yZCkuCisKKyAgVHJpZ2dlclRpbWVvdXQoIFdMLCB3YWl0ZXJSZWNvcmQgKQorCisgIDMuIElm
IHdhaXRlclJlY29yZCBpcyBpbiBXTC5bW1dhaXRlcnNdXSwgdGhlbgorICAgIGEuIFNldCB3YWl0
ZXJSZWNvcmQuW1tSZXN1bHRdXSB0byAidGltZWQtb3V0Ii4KKyAgICBiLiBQZXJmb3JtIFJlbW92
ZVdhaXRlcihXTCwgd2FpdGVyUmVjb3JkKS4KKyAgICBjLiBQZXJmb3JtIE5vdGlmeVdhaXRlcihX
TCwgd2FpdGVyUmVjb3JkKS4KKyAgNC4gUGVyZm9ybSBMZWF2ZUNyaXRpY2FsU2VjdGlvbihXTCku
CisKK2ZsYWdzOiBbYXN5bmNdCitpbmNsdWRlczogW2F0b21pY3NIZWxwZXIuanNdCitmZWF0dXJl
czogW0F0b21pY3Mud2FpdEFzeW5jLCBTaGFyZWRBcnJheUJ1ZmZlciwgVHlwZWRBcnJheSwgQXRv
bWljcywgQmlnSW50LCBhcnJvdy1mdW5jdGlvbiwgYXN5bmMtZnVuY3Rpb25zXQorLS0tKi8KK2Fz
c2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKK2Nv
bnN0IFJVTk5JTkcgPSAxOworY29uc3QgVElNRU9VVCA9ICQyNjIuYWdlbnQudGltZW91dHMuc21h
bGw7Citjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0QXJyYXkobmV3IFNoYXJlZEFycmF5QnVmZmVy
KEJpZ0ludDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiA0KSk7CisKKyQyNjIuYWdlbnQuc3Rh
cnQoYAorICAkMjYyLmFnZW50LnJlY2VpdmVCcm9hZGNhc3QoYXN5bmMgKHNhYikgPT4geworICAg
IGNvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShzYWIpOworICAgIEF0b21pY3MuYWRkKGk2
NGEsICR7UlVOTklOR30sIDFuKTsKKworICAgIGNvbnN0IGJlZm9yZSA9ICQyNjIuYWdlbnQubW9u
b3RvbmljTm93KCk7CisgICAgY29uc3QgdW5wYXJrID0gYXdhaXQgQXRvbWljcy53YWl0QXN5bmMo
aTY0YSwgMCwgMG4sICR7VElNRU9VVH0pLnZhbHVlOworICAgIGNvbnN0IGR1cmF0aW9uID0gJDI2
Mi5hZ2VudC5tb25vdG9uaWNOb3coKSAtIGJlZm9yZTsKKworICAgICQyNjIuYWdlbnQucmVwb3J0
KGR1cmF0aW9uKTsKKyAgICAkMjYyLmFnZW50LnJlcG9ydCh1bnBhcmspOworICAgICQyNjIuYWdl
bnQubGVhdmluZygpOworICB9KTsKK2ApOworCiskMjYyLmFnZW50LnNhZmVCcm9hZGNhc3RBc3lu
YyhpNjRhLCBSVU5OSU5HLCAxbikudGhlbihhc3luYyBhZ2VudENvdW50ID0+IHsKKyAgYXNzZXJ0
LnNhbWVWYWx1ZShhZ2VudENvdW50LCAxbik7CisgIGNvbnN0IGxhcHNlID0gYXdhaXQgJDI2Mi5h
Z2VudC5nZXRSZXBvcnRBc3luYygpOworICBhc3NlcnQobGFwc2UgPj0gVElNRU9VVCwgJ1RoZSBy
ZXN1bHQgb2YgYChsYXBzZSA+PSBUSU1FT1VUKWAgaXMgdHJ1ZScpOworICBjb25zdCByZXN1bHQg
PSBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5jKCk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1
ZSgKKyAgICByZXN1bHQsCisgICAgJ3RpbWVkLW91dCcsCisgICAgJ2F3YWl0IEF0b21pY3Mud2Fp
dEFzeW5jKGk2NGEsIDAsIDBuLCAke1RJTUVPVVR9KS52YWx1ZSByZXNvbHZlcyB0byAidGltZWQt
b3V0IicKKyAgKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2NGEsIDAp
LCAwLCAnQXRvbWljcy5ub3RpZnkoaTY0YSwgMCkgcmV0dXJucyAwJyk7Cit9KS50aGVuKCRET05F
LCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRv
bWljcy93YWl0QXN5bmMvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi1hZGQuanMgYi9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25vLXNw
dXJpb3VzLXdha2V1cC1vbi1hZGQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWY3ZmE0YWQwNzU5NTljZjM5YWZh
MDRjNzk3NzQwODE5ZjYzODNjNQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm8tc3B1cmlvdXMtd2FrZXVw
LW9uLWFkZC5qcwpAQCAtMCwwICsxLDYxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBX
YWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5
IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6
IHNlYy1hdG9taWNzLndhaXRhc3luYworZGVzY3JpcHRpb246ID4KKyAgV2FpdGVyIGRvZXMgbm90
IHNwdXJpb3VzbHkgbm90aWZ5IG9uIGluZGV4IHdoaWNoIGlzIHN1YmplY3QgdG8gQWRkIG9wZXJh
dGlvbgoraW5mbzogfAorICBBZGRXYWl0ZXIgKCBXTCwgd2FpdGVyUmVjb3JkICkKKworICA1LiBB
cHBlbmQgd2FpdGVyUmVjb3JkIGFzIHRoZSBsYXN0IGVsZW1lbnQgb2YgV0wuW1tXYWl0ZXJzXV0K
KyAgNi4gSWYgd2FpdGVyUmVjb3JkLltbVGltZW91dF1dIGlzIGZpbml0ZSwgdGhlbiBpbiBwYXJh
bGxlbCwKKyAgICBhLiBXYWl0IHdhaXRlclJlY29yZC5bW1RpbWVvdXRdXSBtaWxsaXNlY29uZHMu
CisgICAgYi4gUGVyZm9ybSBUcmlnZ2VyVGltZW91dChXTCwgd2FpdGVyUmVjb3JkKS4KKworICBU
cmlnZ2VyVGltZW91dCggV0wsIHdhaXRlclJlY29yZCApCisKKyAgMy4gSWYgd2FpdGVyUmVjb3Jk
IGlzIGluIFdMLltbV2FpdGVyc11dLCB0aGVuCisgICAgYS4gU2V0IHdhaXRlclJlY29yZC5bW1Jl
c3VsdF1dIHRvICJ0aW1lZC1vdXQiLgorICAgIGIuIFBlcmZvcm0gUmVtb3ZlV2FpdGVyKFdMLCB3
YWl0ZXJSZWNvcmQpLgorICAgIGMuIFBlcmZvcm0gTm90aWZ5V2FpdGVyKFdMLCB3YWl0ZXJSZWNv
cmQpLgorICA0LiBQZXJmb3JtIExlYXZlQ3JpdGljYWxTZWN0aW9uKFdMKS4KKworZmxhZ3M6IFth
c3luY10KK2luY2x1ZGVzOiBbYXRvbWljc0hlbHBlci5qc10KK2ZlYXR1cmVzOiBbQXRvbWljcy53
YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBUeXBlZEFycmF5LCBBdG9taWNzLCBCaWdJbnQs
IGFycm93LWZ1bmN0aW9uLCBhc3luYy1mdW5jdGlvbnNdCistLS0qLworYXNzZXJ0LnNhbWVWYWx1
ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworY29uc3QgUlVOTklORyA9
IDE7Citjb25zdCBUSU1FT1VUID0gJDI2Mi5hZ2VudC50aW1lb3V0cy5zbWFsbDsKK2NvbnN0IGk2
NGEgPSBuZXcgQmlnSW50NjRBcnJheShuZXcgU2hhcmVkQXJyYXlCdWZmZXIoQmlnSW50NjRBcnJh
eS5CWVRFU19QRVJfRUxFTUVOVCAqIDQpKTsKKworJDI2Mi5hZ2VudC5zdGFydChgCisgICQyNjIu
YWdlbnQucmVjZWl2ZUJyb2FkY2FzdChhc3luYyAoc2FiKSA9PiB7CisgICAgY29uc3QgaTY0YSA9
IG5ldyBCaWdJbnQ2NEFycmF5KHNhYik7CisgICAgQXRvbWljcy5hZGQoaTY0YSwgJHtSVU5OSU5H
fSwgMW4pOworCisgICAgY29uc3QgYmVmb3JlID0gJDI2Mi5hZ2VudC5tb25vdG9uaWNOb3coKTsK
KyAgICBjb25zdCB1bnBhcmsgPSBhd2FpdCBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwg
JHtUSU1FT1VUfSkudmFsdWU7CisgICAgY29uc3QgZHVyYXRpb24gPSAkMjYyLmFnZW50Lm1vbm90
b25pY05vdygpIC0gYmVmb3JlOworCisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoZHVyYXRpb24pOwor
ICAgICQyNjIuYWdlbnQucmVwb3J0KHVucGFyayk7CisgICAgJDI2Mi5hZ2VudC5sZWF2aW5nKCk7
CisgIH0pOworYCk7CisKKyQyNjIuYWdlbnQuc2FmZUJyb2FkY2FzdEFzeW5jKGk2NGEsIFJVTk5J
TkcsIDFuKS50aGVuKGFzeW5jIGFnZW50Q291bnQgPT4geworICBhc3NlcnQuc2FtZVZhbHVlKGFn
ZW50Q291bnQsIDFuKTsKKyAgQXRvbWljcy5hZGQoaTY0YSwgMCwgMW4pOworICBjb25zdCBsYXBz
ZSA9IGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKTsKKyAgYXNzZXJ0KGxhcHNlID49
IFRJTUVPVVQsICdUaGUgcmVzdWx0IG9mIGAobGFwc2UgPj0gVElNRU9VVClgIGlzIHRydWUnKTsK
KyAgY29uc3QgcmVzdWx0ID0gYXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpOworCisg
IGFzc2VydC5zYW1lVmFsdWUoCisgICAgcmVzdWx0LAorICAgICd0aW1lZC1vdXQnLAorICAgICdh
d2FpdCBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgJHtUSU1FT1VUfSkudmFsdWUgcmVz
b2x2ZXMgdG8gInRpbWVkLW91dCInCisgICk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZShBdG9taWNz
Lm5vdGlmeShpNjRhLCAwKSwgMCwgJ0F0b21pY3Mubm90aWZ5KGk2NGEsIDApIHJldHVybnMgMCcp
OworfSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAt
b24tYW5kLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFz
eW5jL2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAtb24tYW5kLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjNTE0
NmYxYmZlMjFiZTcyNDIxNmEyYmJiZTc3OWJjOWVlOWUyYjMKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25v
LXNwdXJpb3VzLXdha2V1cC1vbi1hbmQuanMKQEAgLTAsMCArMSw2MSBAQAorLy8gQ29weXJpZ2h0
IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2NyaXB0aW9uOiA+Cisg
IFdhaXRlciBkb2VzIG5vdCBzcHVyaW91c2x5IG5vdGlmeSBvbiBpbmRleCB3aGljaCBpcyBzdWJq
ZWN0IHRvIEFuZCBvcGVyYXRpb24KK2luZm86IHwKKyAgQWRkV2FpdGVyICggV0wsIHdhaXRlclJl
Y29yZCApCisKKyAgNS4gQXBwZW5kIHdhaXRlclJlY29yZCBhcyB0aGUgbGFzdCBlbGVtZW50IG9m
IFdMLltbV2FpdGVyc11dCisgIDYuIElmIHdhaXRlclJlY29yZC5bW1RpbWVvdXRdXSBpcyBmaW5p
dGUsIHRoZW4gaW4gcGFyYWxsZWwsCisgICAgYS4gV2FpdCB3YWl0ZXJSZWNvcmQuW1tUaW1lb3V0
XV0gbWlsbGlzZWNvbmRzLgorICAgIGIuIFBlcmZvcm0gVHJpZ2dlclRpbWVvdXQoV0wsIHdhaXRl
clJlY29yZCkuCisKKyAgVHJpZ2dlclRpbWVvdXQoIFdMLCB3YWl0ZXJSZWNvcmQgKQorCisgIDMu
IElmIHdhaXRlclJlY29yZCBpcyBpbiBXTC5bW1dhaXRlcnNdXSwgdGhlbgorICAgIGEuIFNldCB3
YWl0ZXJSZWNvcmQuW1tSZXN1bHRdXSB0byAidGltZWQtb3V0Ii4KKyAgICBiLiBQZXJmb3JtIFJl
bW92ZVdhaXRlcihXTCwgd2FpdGVyUmVjb3JkKS4KKyAgICBjLiBQZXJmb3JtIE5vdGlmeVdhaXRl
cihXTCwgd2FpdGVyUmVjb3JkKS4KKyAgNC4gUGVyZm9ybSBMZWF2ZUNyaXRpY2FsU2VjdGlvbihX
TCkuCisKK2ZsYWdzOiBbYXN5bmNdCitpbmNsdWRlczogW2F0b21pY3NIZWxwZXIuanNdCitmZWF0
dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBTaGFyZWRBcnJheUJ1ZmZlciwgVHlwZWRBcnJheSwg
QXRvbWljcywgQmlnSW50LCBhcnJvdy1mdW5jdGlvbiwgYXN5bmMtZnVuY3Rpb25zXQorLS0tKi8K
K2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsK
K2NvbnN0IFJVTk5JTkcgPSAxOworY29uc3QgVElNRU9VVCA9ICQyNjIuYWdlbnQudGltZW91dHMu
c21hbGw7Citjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0QXJyYXkobmV3IFNoYXJlZEFycmF5QnVm
ZmVyKEJpZ0ludDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiA0KSk7CisKKyQyNjIuYWdlbnQu
c3RhcnQoYAorICAkMjYyLmFnZW50LnJlY2VpdmVCcm9hZGNhc3QoYXN5bmMgKHNhYikgPT4gewor
ICAgIGNvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShzYWIpOworICAgIEF0b21pY3MuYWRk
KGk2NGEsICR7UlVOTklOR30sIDFuKTsKKworICAgIGNvbnN0IGJlZm9yZSA9ICQyNjIuYWdlbnQu
bW9ub3RvbmljTm93KCk7CisgICAgY29uc3QgdW5wYXJrID0gYXdhaXQgQXRvbWljcy53YWl0QXN5
bmMoaTY0YSwgMCwgMG4sICR7VElNRU9VVH0pLnZhbHVlOworICAgIGNvbnN0IGR1cmF0aW9uID0g
JDI2Mi5hZ2VudC5tb25vdG9uaWNOb3coKSAtIGJlZm9yZTsKKworICAgICQyNjIuYWdlbnQucmVw
b3J0KGR1cmF0aW9uKTsKKyAgICAkMjYyLmFnZW50LnJlcG9ydCh1bnBhcmspOworICAgICQyNjIu
YWdlbnQubGVhdmluZygpOworICB9KTsKK2ApOworCiskMjYyLmFnZW50LnNhZmVCcm9hZGNhc3RB
c3luYyhpNjRhLCBSVU5OSU5HLCAxbikudGhlbihhc3luYyBhZ2VudENvdW50ID0+IHsKKyAgYXNz
ZXJ0LnNhbWVWYWx1ZShhZ2VudENvdW50LCAxbik7CisgIEF0b21pY3MuYW5kKGk2NGEsIDAsIDFu
KTsKKyAgY29uc3QgbGFwc2UgPSBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5jKCk7Cisg
IGFzc2VydChsYXBzZSA+PSBUSU1FT1VULCAnVGhlIHJlc3VsdCBvZiBgKGxhcHNlID49IFRJTUVP
VVQpYCBpcyB0cnVlJyk7CisgIGNvbnN0IHJlc3VsdCA9IGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVw
b3J0QXN5bmMoKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIHJlc3VsdCwKKyAgICAndGlt
ZWQtb3V0JywKKyAgICAnYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sICR7VElN
RU9VVH0pLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJworICApOworCisgIGFzc2VydC5z
YW1lVmFsdWUoQXRvbWljcy5ub3RpZnkoaTY0YSwgMCksIDAsICdBdG9taWNzLm5vdGlmeShpNjRh
LCAwKSByZXR1cm5zIDAnKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm8t
c3B1cmlvdXMtd2FrZXVwLW9uLWNvbXBhcmVFeGNoYW5nZS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm8tc3B1cmlvdXMtd2FrZXVw
LW9uLWNvbXBhcmVFeGNoYW5nZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmNhY2NjZDc2YjQxNzEwOTI2MThj
NDc2YWU3NjAwMTQ1ODA5MTkwCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAt
b24tY29tcGFyZUV4Y2hhbmdlLmpzCkBAIC0wLDAgKzEsNjEgQEAKKy8vIENvcHlyaWdodCAoQykg
MjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMg
Z292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisv
Ki0tLQorZXNpZDogc2VjLWF0b21pY3Mud2FpdGFzeW5jCitkZXNjcmlwdGlvbjogPgorICBXYWl0
ZXIgZG9lcyBub3Qgc3B1cmlvdXNseSBub3RpZnkgb24gaW5kZXggd2hpY2ggaXMgc3ViamVjdCB0
byBjb21wYXJlRXhjaGFuZ2Ugb3BlcmF0aW9uCitpbmZvOiB8CisgIEFkZFdhaXRlciAoIFdMLCB3
YWl0ZXJSZWNvcmQgKQorCisgIDUuIEFwcGVuZCB3YWl0ZXJSZWNvcmQgYXMgdGhlIGxhc3QgZWxl
bWVudCBvZiBXTC5bW1dhaXRlcnNdXQorICA2LiBJZiB3YWl0ZXJSZWNvcmQuW1tUaW1lb3V0XV0g
aXMgZmluaXRlLCB0aGVuIGluIHBhcmFsbGVsLAorICAgIGEuIFdhaXQgd2FpdGVyUmVjb3JkLltb
VGltZW91dF1dIG1pbGxpc2Vjb25kcy4KKyAgICBiLiBQZXJmb3JtIFRyaWdnZXJUaW1lb3V0KFdM
LCB3YWl0ZXJSZWNvcmQpLgorCisgIFRyaWdnZXJUaW1lb3V0KCBXTCwgd2FpdGVyUmVjb3JkICkK
KworICAzLiBJZiB3YWl0ZXJSZWNvcmQgaXMgaW4gV0wuW1tXYWl0ZXJzXV0sIHRoZW4KKyAgICBh
LiBTZXQgd2FpdGVyUmVjb3JkLltbUmVzdWx0XV0gdG8gInRpbWVkLW91dCIuCisgICAgYi4gUGVy
Zm9ybSBSZW1vdmVXYWl0ZXIoV0wsIHdhaXRlclJlY29yZCkuCisgICAgYy4gUGVyZm9ybSBOb3Rp
ZnlXYWl0ZXIoV0wsIHdhaXRlclJlY29yZCkuCisgIDQuIFBlcmZvcm0gTGVhdmVDcml0aWNhbFNl
Y3Rpb24oV0wpLgorCitmbGFnczogW2FzeW5jXQoraW5jbHVkZXM6IFthdG9taWNzSGVscGVyLmpz
XQorZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFR5cGVk
QXJyYXksIEF0b21pY3MsIEJpZ0ludCwgYXJyb3ctZnVuY3Rpb24sIGFzeW5jLWZ1bmN0aW9uc10K
Ky0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0
aW9uJyk7Citjb25zdCBSVU5OSU5HID0gMTsKK2NvbnN0IFRJTUVPVVQgPSAkMjYyLmFnZW50LnRp
bWVvdXRzLnNtYWxsOworY29uc3QgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KG5ldyBTaGFyZWRB
cnJheUJ1ZmZlcihCaWdJbnQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkpOworCiskMjYy
LmFnZW50LnN0YXJ0KGAKKyAgJDI2Mi5hZ2VudC5yZWNlaXZlQnJvYWRjYXN0KGFzeW5jIChzYWIp
ID0+IHsKKyAgICBjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0QXJyYXkoc2FiKTsKKyAgICBBdG9t
aWNzLmFkZChpNjRhLCAke1JVTk5JTkd9LCAxbik7CisKKyAgICBjb25zdCBiZWZvcmUgPSAkMjYy
LmFnZW50Lm1vbm90b25pY05vdygpOworICAgIGNvbnN0IHVucGFyayA9IGF3YWl0IEF0b21pY3Mu
d2FpdEFzeW5jKGk2NGEsIDAsIDBuLCAke1RJTUVPVVR9KS52YWx1ZTsKKyAgICBjb25zdCBkdXJh
dGlvbiA9ICQyNjIuYWdlbnQubW9ub3RvbmljTm93KCkgLSBiZWZvcmU7CisKKyAgICAkMjYyLmFn
ZW50LnJlcG9ydChkdXJhdGlvbik7CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQodW5wYXJrKTsKKyAg
ICAkMjYyLmFnZW50LmxlYXZpbmcoKTsKKyAgfSk7CitgKTsKKworJDI2Mi5hZ2VudC5zYWZlQnJv
YWRjYXN0QXN5bmMoaTY0YSwgUlVOTklORywgMW4pLnRoZW4oYXN5bmMgYWdlbnRDb3VudCA9PiB7
CisgIGFzc2VydC5zYW1lVmFsdWUoYWdlbnRDb3VudCwgMW4pOworICBBdG9taWNzLmNvbXBhcmVF
eGNoYW5nZShpNjRhLCAwLCAwbiwgMW4pOworICBjb25zdCBsYXBzZSA9IGF3YWl0ICQyNjIuYWdl
bnQuZ2V0UmVwb3J0QXN5bmMoKTsKKyAgYXNzZXJ0KGxhcHNlID49IFRJTUVPVVQsICdUaGUgcmVz
dWx0IG9mIGAobGFwc2UgPj0gVElNRU9VVClgIGlzIHRydWUnKTsKKyAgY29uc3QgcmVzdWx0ID0g
YXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpOworCisgIGFzc2VydC5zYW1lVmFsdWUo
CisgICAgcmVzdWx0LAorICAgICd0aW1lZC1vdXQnLAorICAgICdhd2FpdCBBdG9taWNzLndhaXRB
c3luYyhpNjRhLCAwLCAwbiwgJHtUSU1FT1VUfSkudmFsdWUgcmVzb2x2ZXMgdG8gInRpbWVkLW91
dCInCisgICk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZShBdG9taWNzLm5vdGlmeShpNjRhLCAwKSwg
MCwgJ0F0b21pY3Mubm90aWZ5KGk2NGEsIDApIHJldHVybnMgMCcpOworfSkudGhlbigkRE9ORSwg
JERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21p
Y3Mvd2FpdEFzeW5jL2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAtb24tZXhjaGFuZ2UuanMgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25v
LXNwdXJpb3VzLXdha2V1cC1vbi1leGNoYW5nZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmJiNTg1YmM5ZjQx
YjJlN2Y0OGE2MDVhMjQyMWUwYzU1OWY3OTc1Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9uby1zcHVyaW91
cy13YWtldXAtb24tZXhjaGFuZ2UuanMKQEAgLTAsMCArMSw2MSBAQAorLy8gQ29weXJpZ2h0IChD
KSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBp
cyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K
Ky8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2NyaXB0aW9uOiA+CisgIFdh
aXRlciBkb2VzIG5vdCBzcHVyaW91c2x5IG5vdGlmeSBvbiBpbmRleCB3aGljaCBpcyBzdWJqZWN0
IHRvIGV4Y2hhbmdlIG9wZXJhdGlvbgoraW5mbzogfAorICBBZGRXYWl0ZXIgKCBXTCwgd2FpdGVy
UmVjb3JkICkKKworICA1LiBBcHBlbmQgd2FpdGVyUmVjb3JkIGFzIHRoZSBsYXN0IGVsZW1lbnQg
b2YgV0wuW1tXYWl0ZXJzXV0KKyAgNi4gSWYgd2FpdGVyUmVjb3JkLltbVGltZW91dF1dIGlzIGZp
bml0ZSwgdGhlbiBpbiBwYXJhbGxlbCwKKyAgICBhLiBXYWl0IHdhaXRlclJlY29yZC5bW1RpbWVv
dXRdXSBtaWxsaXNlY29uZHMuCisgICAgYi4gUGVyZm9ybSBUcmlnZ2VyVGltZW91dChXTCwgd2Fp
dGVyUmVjb3JkKS4KKworICBUcmlnZ2VyVGltZW91dCggV0wsIHdhaXRlclJlY29yZCApCisKKyAg
My4gSWYgd2FpdGVyUmVjb3JkIGlzIGluIFdMLltbV2FpdGVyc11dLCB0aGVuCisgICAgYS4gU2V0
IHdhaXRlclJlY29yZC5bW1Jlc3VsdF1dIHRvICJ0aW1lZC1vdXQiLgorICAgIGIuIFBlcmZvcm0g
UmVtb3ZlV2FpdGVyKFdMLCB3YWl0ZXJSZWNvcmQpLgorICAgIGMuIFBlcmZvcm0gTm90aWZ5V2Fp
dGVyKFdMLCB3YWl0ZXJSZWNvcmQpLgorICA0LiBQZXJmb3JtIExlYXZlQ3JpdGljYWxTZWN0aW9u
KFdMKS4KKworZmxhZ3M6IFthc3luY10KK2luY2x1ZGVzOiBbYXRvbWljc0hlbHBlci5qc10KK2Zl
YXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBUeXBlZEFycmF5
LCBBdG9taWNzLCBCaWdJbnQsIGFycm93LWZ1bmN0aW9uLCBhc3luYy1mdW5jdGlvbnNdCistLS0q
LworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicp
OworY29uc3QgUlVOTklORyA9IDE7Citjb25zdCBUSU1FT1VUID0gJDI2Mi5hZ2VudC50aW1lb3V0
cy5zbWFsbDsKK2NvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShuZXcgU2hhcmVkQXJyYXlC
dWZmZXIoQmlnSW50NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQpKTsKKworJDI2Mi5hZ2Vu
dC5zdGFydChgCisgICQyNjIuYWdlbnQucmVjZWl2ZUJyb2FkY2FzdChhc3luYyAoc2FiKSA9PiB7
CisgICAgY29uc3QgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KHNhYik7CisgICAgQXRvbWljcy5h
ZGQoaTY0YSwgJHtSVU5OSU5HfSwgMW4pOworCisgICAgY29uc3QgYmVmb3JlID0gJDI2Mi5hZ2Vu
dC5tb25vdG9uaWNOb3coKTsKKyAgICBjb25zdCB1bnBhcmsgPSBhd2FpdCBBdG9taWNzLndhaXRB
c3luYyhpNjRhLCAwLCAwbiwgJHtUSU1FT1VUfSkudmFsdWU7CisgICAgY29uc3QgZHVyYXRpb24g
PSAkMjYyLmFnZW50Lm1vbm90b25pY05vdygpIC0gYmVmb3JlOworCisgICAgJDI2Mi5hZ2VudC5y
ZXBvcnQoZHVyYXRpb24pOworICAgICQyNjIuYWdlbnQucmVwb3J0KHVucGFyayk7CisgICAgJDI2
Mi5hZ2VudC5sZWF2aW5nKCk7CisgIH0pOworYCk7CisKKyQyNjIuYWdlbnQuc2FmZUJyb2FkY2Fz
dEFzeW5jKGk2NGEsIFJVTk5JTkcsIDFuKS50aGVuKGFzeW5jIGFnZW50Q291bnQgPT4geworICBh
c3NlcnQuc2FtZVZhbHVlKGFnZW50Q291bnQsIDFuKTsKKyAgQXRvbWljcy5leGNoYW5nZShpNjRh
LCAwLCAxbik7CisgIGNvbnN0IGxhcHNlID0gYXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3lu
YygpOworICBhc3NlcnQobGFwc2UgPj0gVElNRU9VVCwgJ1RoZSByZXN1bHQgb2YgYChsYXBzZSA+
PSBUSU1FT1VUKWAgaXMgdHJ1ZScpOworICBjb25zdCByZXN1bHQgPSBhd2FpdCAkMjYyLmFnZW50
LmdldFJlcG9ydEFzeW5jKCk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICByZXN1bHQsCisg
ICAgJ3RpbWVkLW91dCcsCisgICAgJ2F3YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBu
LCAke1RJTUVPVVR9KS52YWx1ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicKKyAgKTsKKworICBh
c3NlcnQuc2FtZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2NGEsIDApLCAwLCAnQXRvbWljcy5ub3Rp
ZnkoaTY0YSwgMCkgcmV0dXJucyAwJyk7Cit9KS50aGVuKCRET05FLCAkRE9ORSk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmln
aW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi1vci5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm8tc3B1cmlvdXMtd2FrZXVwLW9uLW9y
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRlY2UwODFjZmQyNzkzZDhlMzQzMjdlZTU2OGEzYmFkODQwZjlhNTkK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWlj
cy93YWl0QXN5bmMvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi1vci5qcwpAQCAtMCwwICsx
LDYxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3Vu
ZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hdG9taWNzLndhaXRhc3lu
YworZGVzY3JpcHRpb246ID4KKyAgV2FpdGVyIGRvZXMgbm90IHNwdXJpb3VzbHkgbm90aWZ5IG9u
IGluZGV4IHdoaWNoIGlzIHN1YmplY3QgdG8gT3Igb3BlcmF0aW9uCitpbmZvOiB8CisgIEFkZFdh
aXRlciAoIFdMLCB3YWl0ZXJSZWNvcmQgKQorCisgIDUuIEFwcGVuZCB3YWl0ZXJSZWNvcmQgYXMg
dGhlIGxhc3QgZWxlbWVudCBvZiBXTC5bW1dhaXRlcnNdXQorICA2LiBJZiB3YWl0ZXJSZWNvcmQu
W1tUaW1lb3V0XV0gaXMgZmluaXRlLCB0aGVuIGluIHBhcmFsbGVsLAorICAgIGEuIFdhaXQgd2Fp
dGVyUmVjb3JkLltbVGltZW91dF1dIG1pbGxpc2Vjb25kcy4KKyAgICBiLiBQZXJmb3JtIFRyaWdn
ZXJUaW1lb3V0KFdMLCB3YWl0ZXJSZWNvcmQpLgorCisgIFRyaWdnZXJUaW1lb3V0KCBXTCwgd2Fp
dGVyUmVjb3JkICkKKworICAzLiBJZiB3YWl0ZXJSZWNvcmQgaXMgaW4gV0wuW1tXYWl0ZXJzXV0s
IHRoZW4KKyAgICBhLiBTZXQgd2FpdGVyUmVjb3JkLltbUmVzdWx0XV0gdG8gInRpbWVkLW91dCIu
CisgICAgYi4gUGVyZm9ybSBSZW1vdmVXYWl0ZXIoV0wsIHdhaXRlclJlY29yZCkuCisgICAgYy4g
UGVyZm9ybSBOb3RpZnlXYWl0ZXIoV0wsIHdhaXRlclJlY29yZCkuCisgIDQuIFBlcmZvcm0gTGVh
dmVDcml0aWNhbFNlY3Rpb24oV0wpLgorCitmbGFnczogW2FzeW5jXQoraW5jbHVkZXM6IFthdG9t
aWNzSGVscGVyLmpzXQorZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlC
dWZmZXIsIFR5cGVkQXJyYXksIEF0b21pY3MsIEJpZ0ludCwgYXJyb3ctZnVuY3Rpb24sIGFzeW5j
LWZ1bmN0aW9uc10KKy0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRB
c3luYywgJ2Z1bmN0aW9uJyk7Citjb25zdCBSVU5OSU5HID0gMTsKK2NvbnN0IFRJTUVPVVQgPSAk
MjYyLmFnZW50LnRpbWVvdXRzLnNtYWxsOworY29uc3QgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5
KG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihCaWdJbnQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICog
NCkpOworCiskMjYyLmFnZW50LnN0YXJ0KGAKKyAgJDI2Mi5hZ2VudC5yZWNlaXZlQnJvYWRjYXN0
KGFzeW5jIChzYWIpID0+IHsKKyAgICBjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0QXJyYXkoc2Fi
KTsKKyAgICBBdG9taWNzLmFkZChpNjRhLCAke1JVTk5JTkd9LCAxbik7CisKKyAgICBjb25zdCBi
ZWZvcmUgPSAkMjYyLmFnZW50Lm1vbm90b25pY05vdygpOworICAgIGNvbnN0IHVucGFyayA9IGF3
YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCAke1RJTUVPVVR9KS52YWx1ZTsKKyAg
ICBjb25zdCBkdXJhdGlvbiA9ICQyNjIuYWdlbnQubW9ub3RvbmljTm93KCkgLSBiZWZvcmU7CisK
KyAgICAkMjYyLmFnZW50LnJlcG9ydChkdXJhdGlvbik7CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQo
dW5wYXJrKTsKKyAgICAkMjYyLmFnZW50LmxlYXZpbmcoKTsKKyAgfSk7CitgKTsKKworJDI2Mi5h
Z2VudC5zYWZlQnJvYWRjYXN0QXN5bmMoaTY0YSwgUlVOTklORywgMW4pLnRoZW4oYXN5bmMgYWdl
bnRDb3VudCA9PiB7CisgIGFzc2VydC5zYW1lVmFsdWUoYWdlbnRDb3VudCwgMW4pOworICBBdG9t
aWNzLm9yKGk2NGEsIDAsIDFuKTsKKyAgY29uc3QgbGFwc2UgPSBhd2FpdCAkMjYyLmFnZW50Lmdl
dFJlcG9ydEFzeW5jKCk7CisgIGFzc2VydChsYXBzZSA+PSBUSU1FT1VULCAnVGhlIHJlc3VsdCBv
ZiBgKGxhcHNlID49IFRJTUVPVVQpYCBpcyB0cnVlJyk7CisgIGNvbnN0IHJlc3VsdCA9IGF3YWl0
ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKAorICAg
IHJlc3VsdCwKKyAgICAndGltZWQtb3V0JywKKyAgICAnYXdhaXQgQXRvbWljcy53YWl0QXN5bmMo
aTY0YSwgMCwgMG4sICR7VElNRU9VVH0pLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJwor
ICApOworCisgIGFzc2VydC5zYW1lVmFsdWUoQXRvbWljcy5ub3RpZnkoaTY0YSwgMCksIDAsICdB
dG9taWNzLm5vdGlmeShpNjRhLCAwKSByZXR1cm5zIDAnKTsKK30pLnRoZW4oJERPTkUsICRET05F
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dh
aXRBc3luYy9iaWdpbnQvbm8tc3B1cmlvdXMtd2FrZXVwLW9uLXN0b3JlLmpzIGIvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9uby1zcHVyaW91
cy13YWtldXAtb24tc3RvcmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFlNTdiZGVhMTU4NDc5YjI0OTcwOTg1
N2EzZmZhM2JmNTQwNDMwNAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm8tc3B1cmlvdXMtd2FrZXVwLW9u
LXN0b3JlLmpzCkBAIC0wLDAgKzEsNjEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdh
bGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkg
dGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDog
c2VjLWF0b21pY3Mud2FpdGFzeW5jCitkZXNjcmlwdGlvbjogPgorICBXYWl0ZXIgZG9lcyBub3Qg
c3B1cmlvdXNseSBub3RpZnkgb24gaW5kZXggd2hpY2ggaXMgc3ViamVjdCB0byBTdG9yZSBvcGVy
YXRpb24KK2luZm86IHwKKyAgQWRkV2FpdGVyICggV0wsIHdhaXRlclJlY29yZCApCisKKyAgNS4g
QXBwZW5kIHdhaXRlclJlY29yZCBhcyB0aGUgbGFzdCBlbGVtZW50IG9mIFdMLltbV2FpdGVyc11d
CisgIDYuIElmIHdhaXRlclJlY29yZC5bW1RpbWVvdXRdXSBpcyBmaW5pdGUsIHRoZW4gaW4gcGFy
YWxsZWwsCisgICAgYS4gV2FpdCB3YWl0ZXJSZWNvcmQuW1tUaW1lb3V0XV0gbWlsbGlzZWNvbmRz
LgorICAgIGIuIFBlcmZvcm0gVHJpZ2dlclRpbWVvdXQoV0wsIHdhaXRlclJlY29yZCkuCisKKyAg
VHJpZ2dlclRpbWVvdXQoIFdMLCB3YWl0ZXJSZWNvcmQgKQorCisgIDMuIElmIHdhaXRlclJlY29y
ZCBpcyBpbiBXTC5bW1dhaXRlcnNdXSwgdGhlbgorICAgIGEuIFNldCB3YWl0ZXJSZWNvcmQuW1tS
ZXN1bHRdXSB0byAidGltZWQtb3V0Ii4KKyAgICBiLiBQZXJmb3JtIFJlbW92ZVdhaXRlcihXTCwg
d2FpdGVyUmVjb3JkKS4KKyAgICBjLiBQZXJmb3JtIE5vdGlmeVdhaXRlcihXTCwgd2FpdGVyUmVj
b3JkKS4KKyAgNC4gUGVyZm9ybSBMZWF2ZUNyaXRpY2FsU2VjdGlvbihXTCkuCisKK2ZsYWdzOiBb
YXN5bmNdCitpbmNsdWRlczogW2F0b21pY3NIZWxwZXIuanNdCitmZWF0dXJlczogW0F0b21pY3Mu
d2FpdEFzeW5jLCBTaGFyZWRBcnJheUJ1ZmZlciwgVHlwZWRBcnJheSwgQXRvbWljcywgQmlnSW50
LCBhcnJvdy1mdW5jdGlvbiwgYXN5bmMtZnVuY3Rpb25zXQorLS0tKi8KK2Fzc2VydC5zYW1lVmFs
dWUodHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKK2NvbnN0IFJVTk5JTkcg
PSAxOworY29uc3QgVElNRU9VVCA9ICQyNjIuYWdlbnQudGltZW91dHMuc21hbGw7Citjb25zdCBp
NjRhID0gbmV3IEJpZ0ludDY0QXJyYXkobmV3IFNoYXJlZEFycmF5QnVmZmVyKEJpZ0ludDY0QXJy
YXkuQllURVNfUEVSX0VMRU1FTlQgKiA0KSk7CisKKyQyNjIuYWdlbnQuc3RhcnQoYAorICAkMjYy
LmFnZW50LnJlY2VpdmVCcm9hZGNhc3QoYXN5bmMgKHNhYikgPT4geworICAgIGNvbnN0IGk2NGEg
PSBuZXcgQmlnSW50NjRBcnJheShzYWIpOworICAgIEF0b21pY3MuYWRkKGk2NGEsICR7UlVOTklO
R30sIDFuKTsKKworICAgIGNvbnN0IGJlZm9yZSA9ICQyNjIuYWdlbnQubW9ub3RvbmljTm93KCk7
CisgICAgY29uc3QgdW5wYXJrID0gYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4s
ICR7VElNRU9VVH0pLnZhbHVlOworICAgIGNvbnN0IGR1cmF0aW9uID0gJDI2Mi5hZ2VudC5tb25v
dG9uaWNOb3coKSAtIGJlZm9yZTsKKworICAgICQyNjIuYWdlbnQucmVwb3J0KGR1cmF0aW9uKTsK
KyAgICAkMjYyLmFnZW50LnJlcG9ydCh1bnBhcmspOworICAgICQyNjIuYWdlbnQubGVhdmluZygp
OworICB9KTsKK2ApOworCiskMjYyLmFnZW50LnNhZmVCcm9hZGNhc3RBc3luYyhpNjRhLCBSVU5O
SU5HLCAxbikudGhlbihhc3luYyBhZ2VudENvdW50ID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShh
Z2VudENvdW50LCAxbik7CisgIEF0b21pY3Muc3RvcmUoaTY0YSwgMCwgMGIxMDEwbik7CisgIGNv
bnN0IGxhcHNlID0gYXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpOworICBhc3NlcnQo
bGFwc2UgPj0gVElNRU9VVCwgJ1RoZSByZXN1bHQgb2YgYChsYXBzZSA+PSBUSU1FT1VUKWAgaXMg
dHJ1ZScpOworICBjb25zdCByZXN1bHQgPSBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5j
KCk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICByZXN1bHQsCisgICAgJ3RpbWVkLW91dCcs
CisgICAgJ2F3YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCAke1RJTUVPVVR9KS52
YWx1ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicKKyAgKTsKKworICBhc3NlcnQuc2FtZVZhbHVl
KEF0b21pY3Mubm90aWZ5KGk2NGEsIDApLCAwLCAnQXRvbWljcy5ub3RpZnkoaTY0YSwgMCkgcmV0
dXJucyAwJyk7Cit9KS50aGVuKCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L25vLXNwdXJpb3Vz
LXdha2V1cC1vbi1zdWIuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWlj
cy93YWl0QXN5bmMvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi1zdWIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWQ0N2Y3NjQwOTE4MGY1MGI0OGJlMTUwOTMyYWJhZDg2ZjFmYjA4ZgotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9i
aWdpbnQvbm8tc3B1cmlvdXMtd2FrZXVwLW9uLXN1Yi5qcwpAQCAtMCwwICsxLDYxIEBACisvLyBD
b3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
VGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hdG9taWNzLndhaXRhc3luYworZGVzY3JpcHRp
b246ID4KKyAgV2FpdGVyIGRvZXMgbm90IHNwdXJpb3VzbHkgbm90aWZ5IG9uIGluZGV4IHdoaWNo
IGlzIHN1YmplY3QgdG8gU3ViIG9wZXJhdGlvbgoraW5mbzogfAorICBBZGRXYWl0ZXIgKCBXTCwg
d2FpdGVyUmVjb3JkICkKKworICA1LiBBcHBlbmQgd2FpdGVyUmVjb3JkIGFzIHRoZSBsYXN0IGVs
ZW1lbnQgb2YgV0wuW1tXYWl0ZXJzXV0KKyAgNi4gSWYgd2FpdGVyUmVjb3JkLltbVGltZW91dF1d
IGlzIGZpbml0ZSwgdGhlbiBpbiBwYXJhbGxlbCwKKyAgICBhLiBXYWl0IHdhaXRlclJlY29yZC5b
W1RpbWVvdXRdXSBtaWxsaXNlY29uZHMuCisgICAgYi4gUGVyZm9ybSBUcmlnZ2VyVGltZW91dChX
TCwgd2FpdGVyUmVjb3JkKS4KKworICBUcmlnZ2VyVGltZW91dCggV0wsIHdhaXRlclJlY29yZCAp
CisKKyAgMy4gSWYgd2FpdGVyUmVjb3JkIGlzIGluIFdMLltbV2FpdGVyc11dLCB0aGVuCisgICAg
YS4gU2V0IHdhaXRlclJlY29yZC5bW1Jlc3VsdF1dIHRvICJ0aW1lZC1vdXQiLgorICAgIGIuIFBl
cmZvcm0gUmVtb3ZlV2FpdGVyKFdMLCB3YWl0ZXJSZWNvcmQpLgorICAgIGMuIFBlcmZvcm0gTm90
aWZ5V2FpdGVyKFdMLCB3YWl0ZXJSZWNvcmQpLgorICA0LiBQZXJmb3JtIExlYXZlQ3JpdGljYWxT
ZWN0aW9uKFdMKS4KKworZmxhZ3M6IFthc3luY10KK2luY2x1ZGVzOiBbYXRvbWljc0hlbHBlci5q
c10KK2ZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBUeXBl
ZEFycmF5LCBBdG9taWNzLCBCaWdJbnQsIGFycm93LWZ1bmN0aW9uLCBhc3luYy1mdW5jdGlvbnNd
CistLS0qLworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5j
dGlvbicpOworY29uc3QgUlVOTklORyA9IDE7Citjb25zdCBUSU1FT1VUID0gJDI2Mi5hZ2VudC50
aW1lb3V0cy5zbWFsbDsKK2NvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShuZXcgU2hhcmVk
QXJyYXlCdWZmZXIoQmlnSW50NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQpKTsKKworJDI2
Mi5hZ2VudC5zdGFydChgCisgICQyNjIuYWdlbnQucmVjZWl2ZUJyb2FkY2FzdChhc3luYyAoc2Fi
KSA9PiB7CisgICAgY29uc3QgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KHNhYik7CisgICAgQXRv
bWljcy5hZGQoaTY0YSwgJHtSVU5OSU5HfSwgMW4pOworCisgICAgY29uc3QgYmVmb3JlID0gJDI2
Mi5hZ2VudC5tb25vdG9uaWNOb3coKTsKKyAgICBjb25zdCB1bnBhcmsgPSBhd2FpdCBBdG9taWNz
LndhaXRBc3luYyhpNjRhLCAwLCAwbiwgJHtUSU1FT1VUfSkudmFsdWU7CisgICAgY29uc3QgZHVy
YXRpb24gPSAkMjYyLmFnZW50Lm1vbm90b25pY05vdygpIC0gYmVmb3JlOworCisgICAgJDI2Mi5h
Z2VudC5yZXBvcnQoZHVyYXRpb24pOworICAgICQyNjIuYWdlbnQucmVwb3J0KHVucGFyayk7Cisg
ICAgJDI2Mi5hZ2VudC5sZWF2aW5nKCk7CisgIH0pOworYCk7CisKKyQyNjIuYWdlbnQuc2FmZUJy
b2FkY2FzdEFzeW5jKGk2NGEsIFJVTk5JTkcsIDFuKS50aGVuKGFzeW5jIGFnZW50Q291bnQgPT4g
eworICBhc3NlcnQuc2FtZVZhbHVlKGFnZW50Q291bnQsIDFuKTsKKyAgQXRvbWljcy5zdWIoaTY0
YSwgMCwgMW4pOworICBjb25zdCBsYXBzZSA9IGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5
bmMoKTsKKyAgYXNzZXJ0KGxhcHNlID49IFRJTUVPVVQsICdUaGUgcmVzdWx0IG9mIGAobGFwc2Ug
Pj0gVElNRU9VVClgIGlzIHRydWUnKTsKKyAgY29uc3QgcmVzdWx0ID0gYXdhaXQgJDI2Mi5hZ2Vu
dC5nZXRSZXBvcnRBc3luYygpOworCisgIGFzc2VydC5zYW1lVmFsdWUoCisgICAgcmVzdWx0LAor
ICAgICd0aW1lZC1vdXQnLAorICAgICdhd2FpdCBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAw
biwgJHtUSU1FT1VUfSkudmFsdWUgcmVzb2x2ZXMgdG8gInRpbWVkLW91dCInCisgICk7CisKKyAg
YXNzZXJ0LnNhbWVWYWx1ZShBdG9taWNzLm5vdGlmeShpNjRhLCAwKSwgMCwgJ0F0b21pY3Mubm90
aWZ5KGk2NGEsIDApIHJldHVybnMgMCcpOworfSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2Jp
Z2ludC9uby1zcHVyaW91cy13YWtldXAtb24teG9yLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9uby1zcHVyaW91cy13YWtldXAtb24t
eG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI5NWM0YmZlODg0ZmEwODYwNjY3NzM3MGJlOThiNzBjZDViMzlm
ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRv
bWljcy93YWl0QXN5bmMvYmlnaW50L25vLXNwdXJpb3VzLXdha2V1cC1vbi14b3IuanMKQEAgLTAs
MCArMSw2MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2Ug
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0
YXN5bmMKK2Rlc2NyaXB0aW9uOiA+CisgIFdhaXRlciBkb2VzIG5vdCBzcHVyaW91c2x5IG5vdGlm
eSBvbiBpbmRleCB3aGljaCBpcyBzdWJqZWN0IHRvIHhvciBvcGVyYXRpb24KK2luZm86IHwKKyAg
QWRkV2FpdGVyICggV0wsIHdhaXRlclJlY29yZCApCisKKyAgNS4gQXBwZW5kIHdhaXRlclJlY29y
ZCBhcyB0aGUgbGFzdCBlbGVtZW50IG9mIFdMLltbV2FpdGVyc11dCisgIDYuIElmIHdhaXRlclJl
Y29yZC5bW1RpbWVvdXRdXSBpcyBmaW5pdGUsIHRoZW4gaW4gcGFyYWxsZWwsCisgICAgYS4gV2Fp
dCB3YWl0ZXJSZWNvcmQuW1tUaW1lb3V0XV0gbWlsbGlzZWNvbmRzLgorICAgIGIuIFBlcmZvcm0g
VHJpZ2dlclRpbWVvdXQoV0wsIHdhaXRlclJlY29yZCkuCisKKyAgVHJpZ2dlclRpbWVvdXQoIFdM
LCB3YWl0ZXJSZWNvcmQgKQorCisgIDMuIElmIHdhaXRlclJlY29yZCBpcyBpbiBXTC5bW1dhaXRl
cnNdXSwgdGhlbgorICAgIGEuIFNldCB3YWl0ZXJSZWNvcmQuW1tSZXN1bHRdXSB0byAidGltZWQt
b3V0Ii4KKyAgICBiLiBQZXJmb3JtIFJlbW92ZVdhaXRlcihXTCwgd2FpdGVyUmVjb3JkKS4KKyAg
ICBjLiBQZXJmb3JtIE5vdGlmeVdhaXRlcihXTCwgd2FpdGVyUmVjb3JkKS4KKyAgNC4gUGVyZm9y
bSBMZWF2ZUNyaXRpY2FsU2VjdGlvbihXTCkuCisKK2ZsYWdzOiBbYXN5bmNdCitpbmNsdWRlczog
W2F0b21pY3NIZWxwZXIuanNdCitmZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBTaGFyZWRB
cnJheUJ1ZmZlciwgVHlwZWRBcnJheSwgQXRvbWljcywgQmlnSW50LCBhcnJvdy1mdW5jdGlvbiwg
YXN5bmMtZnVuY3Rpb25zXQorLS0tKi8KK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mu
d2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKK2NvbnN0IFJVTk5JTkcgPSAxOworY29uc3QgVElNRU9V
VCA9ICQyNjIuYWdlbnQudGltZW91dHMuc21hbGw7Citjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0
QXJyYXkobmV3IFNoYXJlZEFycmF5QnVmZmVyKEJpZ0ludDY0QXJyYXkuQllURVNfUEVSX0VMRU1F
TlQgKiA0KSk7CisKKyQyNjIuYWdlbnQuc3RhcnQoYAorICAkMjYyLmFnZW50LnJlY2VpdmVCcm9h
ZGNhc3QoYXN5bmMgKHNhYikgPT4geworICAgIGNvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJh
eShzYWIpOworICAgIEF0b21pY3MuYWRkKGk2NGEsICR7UlVOTklOR30sIDFuKTsKKworICAgIGNv
bnN0IGJlZm9yZSA9ICQyNjIuYWdlbnQubW9ub3RvbmljTm93KCk7CisgICAgY29uc3QgdW5wYXJr
ID0gYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sICR7VElNRU9VVH0pLnZhbHVl
OworICAgIGNvbnN0IGR1cmF0aW9uID0gJDI2Mi5hZ2VudC5tb25vdG9uaWNOb3coKSAtIGJlZm9y
ZTsKKworICAgICQyNjIuYWdlbnQucmVwb3J0KGR1cmF0aW9uKTsKKyAgICAkMjYyLmFnZW50LnJl
cG9ydCh1bnBhcmspOworICAgICQyNjIuYWdlbnQubGVhdmluZygpOworICB9KTsKK2ApOworCisk
MjYyLmFnZW50LnNhZmVCcm9hZGNhc3RBc3luYyhpNjRhLCBSVU5OSU5HLCAxbikudGhlbihhc3lu
YyBhZ2VudENvdW50ID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShhZ2VudENvdW50LCAxbik7Cisg
IEF0b21pY3MueG9yKGk2NGEsIDAsIDFuKTsKKyAgY29uc3QgbGFwc2UgPSBhd2FpdCAkMjYyLmFn
ZW50LmdldFJlcG9ydEFzeW5jKCk7CisgIGFzc2VydChsYXBzZSA+PSBUSU1FT1VULCAnVGhlIHJl
c3VsdCBvZiBgKGxhcHNlID49IFRJTUVPVVQpYCBpcyB0cnVlJyk7CisgIGNvbnN0IHJlc3VsdCA9
IGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKTsKKworICBhc3NlcnQuc2FtZVZhbHVl
KAorICAgIHJlc3VsdCwKKyAgICAndGltZWQtb3V0JywKKyAgICAnYXdhaXQgQXRvbWljcy53YWl0
QXN5bmMoaTY0YSwgMCwgMG4sICR7VElNRU9VVH0pLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1v
dXQiJworICApOworCisgIGFzc2VydC5zYW1lVmFsdWUoQXRvbWljcy5ub3RpZnkoaTY0YSwgMCks
IDAsICdBdG9taWNzLm5vdGlmeShpNjRhLCAwKSByZXR1cm5zIDAnKTsKK30pLnRoZW4oJERPTkUs
ICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9t
aWNzL3dhaXRBc3luYy9iaWdpbnQvbm9uLWJpZ2ludDY0LXR5cGVkYXJyYXktdGhyb3dzLmpzIGIv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9u
b24tYmlnaW50NjQtdHlwZWRhcnJheS10aHJvd3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1Mjc4NTA1ODAw
N2JjZWMxZjY2MjNiMjJjYjk1ZjZjMTlkMDFjZAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm9uLWJpZ2lu
dDY0LXR5cGVkYXJyYXktdGhyb3dzLmpzCkBAIC0wLDAgKzEsMzUgQEAKKy8vIENvcHlyaWdodCAo
QykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUg
aXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu
CisKKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2NyaXB0aW9uOiA+Cisg
IFRocm93cyBhIFR5cGVFcnJvciBpZiB0eXBlZEFycmF5IGFyZyBpcyBub3QgYW4gQmlnSW50NjRB
cnJheQoraW5mbzogfAorICBBdG9taWNzLndhaXRBc3luYyggdHlwZWRBcnJheSwgaW5kZXgsIHZh
bHVlLCB0aW1lb3V0ICkKKworICAxLiBSZXR1cm4gRG9XYWl0KGFzeW5jLCB0eXBlZEFycmF5LCBp
bmRleCwgdmFsdWUsIHRpbWVvdXQpLgorCisgIERvV2FpdCAoIG1vZGUsIHR5cGVkQXJyYXksIGlu
ZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgMS4gTGV0IGJ1ZmZlciBiZSA/IFZhbGlkYXRlU2hh
cmVkSW50ZWdlclR5cGVkQXJyYXkodHlwZWRBcnJheSwgdHJ1ZSkuCisKKyAgVmFsaWRhdGVTaGFy
ZWRJbnRlZ2VyVHlwZWRBcnJheSAoIHR5cGVkQXJyYXkgWyAsIHdhaXRhYmxlIF0gKQorCisgIDUu
IElmIHdhaXRhYmxlIGlzIHRydWUsIHRoZW4KKyAgICBhLiBJZiB0eXBlTmFtZSBpcyBub3QgIklu
dDMyQXJyYXkiIG9yICJCaWdJbnQ2NEFycmF5IiwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9u
LgorCitmZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBGbG9hdDMyQXJyYXksIEZsb2F0NjRB
cnJheSwgSW50OEFycmF5LCBUeXBlZEFycmF5LCBVaW50MTZBcnJheSwgVWludDhBcnJheSwgVWlu
dDhDbGFtcGVkQXJyYXksIGFycm93LWZ1bmN0aW9uLCBTaGFyZWRBcnJheUJ1ZmZlciwgQXRvbWlj
c10KKy0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1
bmN0aW9uJyk7Citjb25zdCBwb2lzb25lZCA9IHsKKyAgdmFsdWVPZigpIHsKKyAgICB0aHJvdyBu
ZXcgVGVzdDI2MkVycm9yKCdzaG91bGQgbm90IGV2YWx1YXRlIHRoaXMgY29kZScpOworICB9Cit9
OworCithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgKCkgPT4geworICBjb25zdCB2aWV3ID0gbmV3
IEJpZ1VpbnQ2NEFycmF5KG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihCaWdVaW50NjRBcnJheS5CWVRF
U19QRVJfRUxFTUVOVCAqIDgpKTsKKyAgQXRvbWljcy53YWl0QXN5bmModmlldywgcG9pc29uZWQs
IHBvaXNvbmVkLCBwb2lzb25lZCk7Cit9LCAnYGNvbnN0IHZpZXcgPSBuZXcgQmlnVWludDY0QXJy
YXkobmV3IFNoYXJlZEFycmF5QnVmZmVyKEJpZ1VpbnQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5U
ICogOCkpOyBBdG9taWNzLndhaXRBc3luYyh2aWV3LCBwb2lzb25lZCwgcG9pc29uZWQsIHBvaXNv
bmVkKTtgIHRocm93cyBUeXBlRXJyb3InKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9ub24tc2hhcmVkLWJ1ZmZl
cmRhdGEtdGhyb3dzLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mv
d2FpdEFzeW5jL2JpZ2ludC9ub24tc2hhcmVkLWJ1ZmZlcmRhdGEtdGhyb3dzLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU2ZGNiZmVlNDM3YzFlOGI1YTY2YjA3ZTU3NmI1OGM5NTAxNTEzMmQKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMv
YmlnaW50L25vbi1zaGFyZWQtYnVmZmVyZGF0YS10aHJvd3MuanMKQEAgLTAsMCArMSwzOCBAQAor
Ly8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2Ny
aXB0aW9uOiA+CisgIFRocm93cyBhIFR5cGVFcnJvciBpZiB0eXBlZEFycmF5LmJ1ZmZlciBpcyBu
b3QgYSBTaGFyZWRBcnJheUJ1ZmZlcgoraW5mbzogfAorICBBdG9taWNzLndhaXRBc3luYyggdHlw
ZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICAxLiBSZXR1cm4gRG9XYWl0KGFz
eW5jLCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQpLgorCisgIERvV2FpdCAoIG1v
ZGUsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgMS4gTGV0IGJ1ZmZl
ciBiZSA/IFZhbGlkYXRlU2hhcmVkSW50ZWdlclR5cGVkQXJyYXkodHlwZWRBcnJheSwgdHJ1ZSku
CisKKyAgVmFsaWRhdGVTaGFyZWRJbnRlZ2VyVHlwZWRBcnJheSAoIHR5cGVkQXJyYXkgWyAsIHdh
aXRhYmxlIF0gKQorCisgIDUuIElmIHdhaXRhYmxlIGlzIHRydWUsIHRoZW4KKyAgICBhLiBJZiB0
eXBlTmFtZSBpcyBub3QgIkJpZ0ludDY0QXJyYXkiIG9yICJCaWdJbnQ2NEFycmF5IiwgdGhyb3cg
YSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorCitmZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBB
cnJheUJ1ZmZlciwgQXRvbWljcywgVHlwZWRBcnJheSwgQmlnSW50LCBhcnJvdy1mdW5jdGlvbl0K
Ky0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0
aW9uJyk7Citjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0QXJyYXkobmV3IEFycmF5QnVmZmVyKEJp
Z0ludDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiA0KSk7CisKK2NvbnN0IHBvaXNvbmVkID0g
eworICB2YWx1ZU9mKCkgeworICAgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoJ3Nob3VsZCBub3Qg
ZXZhbHVhdGUgdGhpcyBjb2RlJyk7CisgIH0KK307CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9y
LCAoKSA9PiB7CisgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCAwKTsKK30sICdgQXRv
bWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIDApYCB0aHJvd3MgVHlwZUVycm9yJyk7CisKK2Fz
c2VydC50aHJvd3MoVHlwZUVycm9yLCAoKSA9PiB7CisgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEs
IHBvaXNvbmVkLCBwb2lzb25lZCwgcG9pc29uZWQpOworfSwgJ2BBdG9taWNzLndhaXRBc3luYyhp
NjRhLCBwb2lzb25lZCwgcG9pc29uZWQsIHBvaXNvbmVkKWAgdGhyb3dzIFR5cGVFcnJvcicpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFz
eW5jL2JpZ2ludC9ub3QtYS10eXBlZGFycmF5LXRocm93cy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm90LWEtdHlwZWRhcnJheS10
aHJvd3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJkZWFkYmQwYzllZGFmNDExMzA1OGFmY2NkMTlhMTk3NjU3
OGJjZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9B
dG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm90LWEtdHlwZWRhcnJheS10aHJvd3MuanMKQEAgLTAs
MCArMSw0MCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2Ug
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0
YXN5bmMKK2Rlc2NyaXB0aW9uOiA+CisgIFRocm93cyBhIFR5cGVFcnJvciBpZiB0aGUgdHlwZWRB
cnJheSBhcmcgaXMgbm90IGEgVHlwZWRBcnJheSBvYmplY3QKK2luZm86IHwKKyAgQXRvbWljcy53
YWl0QXN5bmMoIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgMS4gUmV0
dXJuIERvV2FpdChhc3luYywgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0KS4KKwor
ICBEb1dhaXQgKCBtb2RlLCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisg
IDEuIExldCBidWZmZXIgYmUgPyBWYWxpZGF0ZVNoYXJlZEludGVnZXJUeXBlZEFycmF5KHR5cGVk
QXJyYXksIHRydWUpLgorCisgIFZhbGlkYXRlU2hhcmVkSW50ZWdlclR5cGVkQXJyYXkgKCB0eXBl
ZEFycmF5IFsgLCB3YWl0YWJsZSBdICkKKworICAyLiBQZXJmb3JtID8gUmVxdWlyZUludGVybmFs
U2xvdCh0eXBlZEFycmF5LCBbW1R5cGVkQXJyYXlOYW1lXV0pLgorCisgIFJlcXVpcmVJbnRlcm5h
bFNsb3QgKCBPLCBpbnRlcm5hbFNsb3QgKQorCisgIDEuIElmIFR5cGUoTykgaXMgbm90IE9iamVj
dCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAyLiBJZiBPIGRvZXMgbm90IGhhdmUg
YW4gaW50ZXJuYWxTbG90IGludGVybmFsIHNsb3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlv
bi4KKworZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgYXJyb3ctZnVuY3Rpb24sIEF0b21p
Y3NdCistLS0qLworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdm
dW5jdGlvbicpOworY29uc3QgcG9pc29uZWQgPSB7CisgIHZhbHVlT2YoKSB7CisgICAgdGhyb3cg
bmV3IFRlc3QyNjJFcnJvcignc2hvdWxkIG5vdCBldmFsdWF0ZSB0aGlzIGNvZGUnKTsKKyAgfQor
fTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsICgpID0+IHsKKyAgQXRvbWljcy53YWl0QXN5
bmMoe30sIDAsIDBuLCAwKTsKK30sICdgQXRvbWljcy53YWl0QXN5bmMoe30sIDAsIDBuLCAwKWAg
dGhyb3dzIFR5cGVFcnJvcicpOworCithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgKCkgPT4gewor
ICBBdG9taWNzLndhaXRBc3luYyh7fSwgcG9pc29uZWQsIHBvaXNvbmVkLCBwb2lzb25lZCk7Cit9
LCAnYEF0b21pY3Mud2FpdEFzeW5jKHt9LCBwb2lzb25lZCwgcG9pc29uZWQsIHBvaXNvbmVkKWAg
dGhyb3dzIFR5cGVFcnJvcicpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9ub3QtYW4tb2JqZWN0LXRocm93cy5qcyBi
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQv
bm90LWFuLW9iamVjdC10aHJvd3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU2OGE0MzM2ZjJiOWI3YzhlOTQy
YmY3ZWQwZTYwNDVlNzI3N2U4ZAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbm90LWFuLW9iamVjdC10aHJv
d3MuanMKQEAgLTAsMCArMSw2MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJv
bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUg
QlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMt
YXRvbWljcy53YWl0YXN5bmMKK2Rlc2NyaXB0aW9uOiA+CisgIFRocm93cyBhIFR5cGVFcnJvciBp
ZiB0eXBlZEFycmF5IGFyZyBpcyBub3QgYW4gT2JqZWN0CitpbmZvOiB8CisgIEF0b21pY3Mud2Fp
dEFzeW5jKCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVy
biBEb1dhaXQoYXN5bmMsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAg
RG9XYWl0ICggbW9kZSwgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICAx
LiBMZXQgYnVmZmVyIGJlID8gVmFsaWRhdGVTaGFyZWRJbnRlZ2VyVHlwZWRBcnJheSh0eXBlZEFy
cmF5LCB0cnVlKS4KKworICBWYWxpZGF0ZVNoYXJlZEludGVnZXJUeXBlZEFycmF5ICggdHlwZWRB
cnJheSBbICwgd2FpdGFibGUgXSApCisKKyAgMi4gUGVyZm9ybSA/IFJlcXVpcmVJbnRlcm5hbFNs
b3QodHlwZWRBcnJheSwgW1tUeXBlZEFycmF5TmFtZV1dKS4KKworICBSZXF1aXJlSW50ZXJuYWxT
bG90ICggTywgaW50ZXJuYWxTbG90ICkKKworICAxLiBJZiBUeXBlKE8pIGlzIG5vdCBPYmplY3Qs
IHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgMi4gSWYgTyBkb2VzIG5vdCBoYXZlIGFu
IGludGVybmFsU2xvdCBpbnRlcm5hbCBzbG90LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24u
CisKK2ZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFN5bWJvbCwgYXJyb3ctZnVuY3Rpb24s
IEF0b21pY3NdCistLS0qLworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5
bmMsICdmdW5jdGlvbicpOworY29uc3QgcG9pc29uZWQgPSB7CisgIHZhbHVlT2YoKSB7CisgICAg
dGhyb3cgbmV3IFRlc3QyNjJFcnJvcignc2hvdWxkIG5vdCBldmFsdWF0ZSB0aGlzIGNvZGUnKTsK
KyAgfQorfTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsICgpID0+IHsKKyAgQXRvbWljcy53
YWl0QXN5bmMobnVsbCwgcG9pc29uZWQsIHBvaXNvbmVkLCBwb2lzb25lZCk7Cit9LCAnYEF0b21p
Y3Mud2FpdEFzeW5jKG51bGwsIHBvaXNvbmVkLCBwb2lzb25lZCwgcG9pc29uZWQpYCB0aHJvd3Mg
VHlwZUVycm9yJyk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCAoKSA9PiB7CisgIEF0b21p
Y3Mud2FpdEFzeW5jKHVuZGVmaW5lZCwgcG9pc29uZWQsIHBvaXNvbmVkLCBwb2lzb25lZCk7Cit9
LCAnYEF0b21pY3Mud2FpdEFzeW5jKHVuZGVmaW5lZCwgcG9pc29uZWQsIHBvaXNvbmVkLCBwb2lz
b25lZClgIHRocm93cyBUeXBlRXJyb3InKTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsICgp
ID0+IHsKKyAgQXRvbWljcy53YWl0QXN5bmModHJ1ZSwgcG9pc29uZWQsIHBvaXNvbmVkLCBwb2lz
b25lZCk7Cit9LCAnYEF0b21pY3Mud2FpdEFzeW5jKHRydWUsIHBvaXNvbmVkLCBwb2lzb25lZCwg
cG9pc29uZWQpYCB0aHJvd3MgVHlwZUVycm9yJyk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9y
LCAoKSA9PiB7CisgIEF0b21pY3Mud2FpdEFzeW5jKGZhbHNlLCBwb2lzb25lZCwgcG9pc29uZWQs
IHBvaXNvbmVkKTsKK30sICdgQXRvbWljcy53YWl0QXN5bmMoZmFsc2UsIHBvaXNvbmVkLCBwb2lz
b25lZCwgcG9pc29uZWQpYCB0aHJvd3MgVHlwZUVycm9yJyk7CisKK2Fzc2VydC50aHJvd3MoVHlw
ZUVycm9yLCAoKSA9PiB7CisgIEF0b21pY3Mud2FpdEFzeW5jKCcqKipzdHJpbmcqKionLCBwb2lz
b25lZCwgcG9pc29uZWQsIHBvaXNvbmVkKTsKK30sICdgQXRvbWljcy53YWl0QXN5bmMoXCcqKipz
dHJpbmcqKipcJywgcG9pc29uZWQsIHBvaXNvbmVkLCBwb2lzb25lZClgIHRocm93cyBUeXBlRXJy
b3InKTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsICgpID0+IHsKKyAgQXRvbWljcy53YWl0
QXN5bmMoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLCBwb2lzb25lZCwgcG9pc29uZWQsIHBvaXNv
bmVkKTsKK30sICdgQXRvbWljcy53YWl0QXN5bmMoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLCBw
b2lzb25lZCwgcG9pc29uZWQsIHBvaXNvbmVkKWAgdGhyb3dzIFR5cGVFcnJvcicpOworCithc3Nl
cnQudGhyb3dzKFR5cGVFcnJvciwgKCkgPT4geworICBBdG9taWNzLndhaXRBc3luYyhTeW1ib2wo
JyoqKnN5bWJvbCoqKicpLCBwb2lzb25lZCwgcG9pc29uZWQsIHBvaXNvbmVkKTsKK30sICdgQXRv
bWljcy53YWl0QXN5bmMoU3ltYm9sKFwnKioqc3ltYm9sKioqXCcpLCBwb2lzb25lZCwgcG9pc29u
ZWQsIHBvaXNvbmVkKWAgdGhyb3dzIFR5cGVFcnJvcicpOworCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L251bGwtYnVm
ZmVyZGF0YS10aHJvd3MuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWlj
cy93YWl0QXN5bmMvYmlnaW50L251bGwtYnVmZmVyZGF0YS10aHJvd3MuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzQ0ZjUxYTMzZTIwZGVjZThkMjc2YTViMjdmOTBmY2I5NjQ0MDU4MQotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdp
bnQvbnVsbC1idWZmZXJkYXRhLXRocm93cy5qcwpAQCAtMCwwICsxLDQ4IEBACisvLyBDb3B5cmln
aHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBj
b2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBm
aWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hdG9taWNzLndhaXRhc3luYworZGVzY3JpcHRpb246ID4K
KyAgQSBudWxsIHZhbHVlIGZvciBidWZmZXJEYXRhIHRocm93cyBhIFR5cGVFcnJvcgoraW5mbzog
fAorICBBdG9taWNzLndhaXRBc3luYyggdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0
ICkKKworICAxLiBSZXR1cm4gRG9XYWl0KGFzeW5jLCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUs
IHRpbWVvdXQpLgorCisgIERvV2FpdCAoIG1vZGUsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwg
dGltZW91dCApCisKKyAgMS4gTGV0IGJ1ZmZlciBiZSA/IFZhbGlkYXRlU2hhcmVkSW50ZWdlclR5
cGVkQXJyYXkodHlwZWRBcnJheSwgdHJ1ZSkuCisKKyAgVmFsaWRhdGVTaGFyZWRJbnRlZ2VyVHlw
ZWRBcnJheSAoIHR5cGVkQXJyYXkgWyAsIHdhaXRhYmxlIF0gKQorCisgIDIuIFBlcmZvcm0gPyBS
ZXF1aXJlSW50ZXJuYWxTbG90KHR5cGVkQXJyYXksIFtbVHlwZWRBcnJheU5hbWVdXSkuCisKKyAg
UmVxdWlyZUludGVybmFsU2xvdCAoIE8sIGludGVybmFsU2xvdCApCisKKyAgMS4gSWYgVHlwZShP
KSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgIDIuIElmIE8g
ZG9lcyBub3QgaGF2ZSBhbiBpbnRlcm5hbFNsb3QgaW50ZXJuYWwgc2xvdCwgdGhyb3cgYSBUeXBl
RXJyb3IgZXhjZXB0aW9uLgorCitpbmNsdWRlczogW2RldGFjaEFycmF5QnVmZmVyLmpzXQorZmVh
dHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgQXJyYXlCdWZmZXIsIEF0b21pY3MsIFR5cGVkQXJy
YXksIEJpZ0ludF0KKy0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRB
c3luYywgJ2Z1bmN0aW9uJyk7Citjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0QXJyYXkoCisgIG5l
dyBBcnJheUJ1ZmZlcihCaWdJbnQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkKKyk7CisK
K2NvbnN0IHBvaXNvbmVkID0geworICB2YWx1ZU9mKCkgeworICAgIHRocm93IG5ldyBUZXN0MjYy
RXJyb3IoJ3Nob3VsZCBub3QgZXZhbHVhdGUgdGhpcyBjb2RlJyk7CisgIH0KK307CisKK3RyeSB7
CisgICRERVRBQ0hCVUZGRVIoaTY0YS5idWZmZXIpOyAvLyBEZXRhY2hpbmcgYSBub24tc2hhcmVk
IEFycmF5QnVmZmVyIHNldHMgdGhlIFtbQXJyYXlCdWZmZXJEYXRhXV0gdmFsdWUgdG8gbnVsbAor
fSBjYXRjaCAoZXJyb3IpIHsKKyAgJEVSUk9SKGBBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVk
IHdoZW4gZGV0YWNoaW5nIEFycmF5QnVmZmVyOiAke2Vycm9yLm1lc3NhZ2V9YCk7Cit9CisKK2Fz
c2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgQXRvbWljcy53YWl0QXN5bmMo
aTY0YSwgcG9pc29uZWQsIHBvaXNvbmVkLCBwb2lzb25lZCk7Cit9LCAnYEF0b21pY3Mud2FpdEFz
eW5jKGk2NGEsIHBvaXNvbmVkLCBwb2lzb25lZCwgcG9pc29uZWQpYCB0aHJvd3MgVHlwZUVycm9y
Jyk7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNz
L3dhaXRBc3luYy9iaWdpbnQvbnVsbC1mb3ItdGltZW91dC1hZ2VudC5qcyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbnVsbC1mb3ItdGlt
ZW91dC1hZ2VudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hM2Y5YTgyNTM3YjNlNzI2MjJiNzZhMWM3NDg2MmZj
Y2JhZmE1ZDBhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9udWxsLWZvci10aW1lb3V0LWFnZW50LmpzCkBA
IC0wLDAgKzEsOTMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNl
bnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLWF0b21pY3Mu
d2FpdGFzeW5jCitkZXNjcmlwdGlvbjogPgorICBudWxsIHRpbWVvdXQgYXJnIHNob3VsZCByZXN1
bHQgaW4gYW4gKzAgdGltZW91dAoraW5mbzogfAorICBBdG9taWNzLndhaXRBc3luYyggdHlwZWRB
cnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICAxLiBSZXR1cm4gRG9XYWl0KGFzeW5j
LCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQpLgorCisgIERvV2FpdCAoIG1vZGUs
IHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgNi4gTGV0IHEgYmUgPyBU
b051bWJlcih0aW1lb3V0KS4KKworICAgIE51bGwgLT4gUmV0dXJuICswLgorCitmbGFnczogW2Fz
eW5jXQoraW5jbHVkZXM6IFthdG9taWNzSGVscGVyLmpzXQorZmVhdHVyZXM6IFtBdG9taWNzLndh
aXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFR5cGVkQXJyYXksIEF0b21pY3MsIEJpZ0ludCwg
YXJyb3ctZnVuY3Rpb24sIGFzeW5jLWZ1bmN0aW9uc10KKy0tLSovCithc3NlcnQuc2FtZVZhbHVl
KHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7Citjb25zdCBSVU5OSU5HID0g
MTsKKworJDI2Mi5hZ2VudC5zdGFydChgCisgIGNvbnN0IHZhbHVlT2YgPSB7CisgICAgdmFsdWVP
ZigpIHsKKyAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgfTsKKworICBjb25zdCB0b1ByaW1p
dGl2ZSA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXSgpIHsKKyAgICAgIHJldHVybiBudWxs
OworICAgIH0KKyAgfTsKKworICAkMjYyLmFnZW50LnJlY2VpdmVCcm9hZGNhc3QoYXN5bmMgKHNh
YikgPT4geworICAgIGNvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShzYWIpOworICAgIEF0
b21pY3MuYWRkKGk2NGEsICR7UlVOTklOR30sIDFuKTsKKyAgICAkMjYyLmFnZW50LnJlcG9ydChh
d2FpdCBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgbnVsbCkudmFsdWUpOworICAgICQy
NjIuYWdlbnQucmVwb3J0KGF3YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB2YWx1
ZU9mKS52YWx1ZSk7CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoYXdhaXQgQXRvbWljcy53YWl0QXN5
bmMoaTY0YSwgMCwgMG4sIHRvUHJpbWl0aXZlKS52YWx1ZSk7CisgICAgJDI2Mi5hZ2VudC5yZXBv
cnQoQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIG51bGwpLnZhbHVlKTsKKyAgICAkMjYy
LmFnZW50LnJlcG9ydChBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdmFsdWVPZikudmFs
dWUpOworICAgICQyNjIuYWdlbnQucmVwb3J0KEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBu
LCB0b1ByaW1pdGl2ZSkudmFsdWUpOworICAgICQyNjIuYWdlbnQubGVhdmluZygpOworICB9KTsK
K2ApOworCitjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0QXJyYXkobmV3IFNoYXJlZEFycmF5QnVm
ZmVyKEJpZ0ludDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiA0KSk7CisKKyQyNjIuYWdlbnQu
c2FmZUJyb2FkY2FzdEFzeW5jKGk2NGEsIFJVTk5JTkcsIDFuKS50aGVuKGFzeW5jIGFnZW50Q291
bnQgPT4geworICBhc3NlcnQuc2FtZVZhbHVlKGFnZW50Q291bnQsIDFuKTsKKworICBhc3NlcnQu
c2FtZVZhbHVlKAorICAgIGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwKKyAgICAn
dGltZWQtb3V0JywKKyAgICAnYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIG51
bGwpLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJworICApOworCisgIGFzc2VydC5zYW1l
VmFsdWUoCisgICAgYXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAgICd0aW1l
ZC1vdXQnLAorICAgICdhd2FpdCBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdmFsdWVP
ZikudmFsdWUgcmVzb2x2ZXMgdG8gInRpbWVkLW91dCInCisgICk7CisKKyAgYXNzZXJ0LnNhbWVW
YWx1ZSgKKyAgICBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5jKCksCisgICAgJ3RpbWVk
LW91dCcsCisgICAgJ2F3YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB0b1ByaW1p
dGl2ZSkudmFsdWUgcmVzb2x2ZXMgdG8gInRpbWVkLW91dCInCisgICk7CisKKyAgYXNzZXJ0LnNh
bWVWYWx1ZSgKKyAgICBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5jKCksCisgICAgJ3Rp
bWVkLW91dCcsCisgICAgJ0F0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCBudWxsKS52YWx1
ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicKKyAgKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKAor
ICAgIGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwKKyAgICAndGltZWQtb3V0JywK
KyAgICAnQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHZhbHVlT2YpLnZhbHVlIHJlc29s
dmVzIHRvICJ0aW1lZC1vdXQiJworICApOworCisgIGFzc2VydC5zYW1lVmFsdWUoCisgICAgYXdh
aXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAgICd0aW1lZC1vdXQnLAorICAgICdB
dG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdG9QcmltaXRpdmUpLnZhbHVlIHJlc29sdmVz
IHRvICJ0aW1lZC1vdXQiJworICApOworCisgIGFzc2VydC5zYW1lVmFsdWUoQXRvbWljcy5ub3Rp
ZnkoaTY0YSwgMCksIDAsICdBdG9taWNzLm5vdGlmeShpNjRhLCAwKSByZXR1cm5zIDAnKTsKK30p
LnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbnVsbC1mb3ItdGltZW91dC5qcyBiL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvbnVs
bC1mb3ItdGltZW91dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjRkMTAzOWZiOWY1YzdhYmJlMmRkNGQxZDdh
OTVkOWJiZDg1YzdlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9udWxsLWZvci10aW1lb3V0LmpzCkBAIC0w
LDAgKzEsNjIgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLWF0b21pY3Mud2Fp
dGFzeW5jCitkZXNjcmlwdGlvbjogPgorICBudWxsIHRpbWVvdXQgYXJnIHNob3VsZCByZXN1bHQg
aW4gYW4gKzAgdGltZW91dAoraW5mbzogfAorICBBdG9taWNzLndhaXRBc3luYyggdHlwZWRBcnJh
eSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICAxLiBSZXR1cm4gRG9XYWl0KGFzeW5jLCB0
eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQpLgorCisgIERvV2FpdCAoIG1vZGUsIHR5
cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgNi4gTGV0IHEgYmUgPyBUb051
bWJlcih0aW1lb3V0KS4KKworICAgIE51bGwgLT4gUmV0dXJuICswLgorCitmZWF0dXJlczogW0F0
b21pY3Mud2FpdEFzeW5jLCBTaGFyZWRBcnJheUJ1ZmZlciwgU3ltYm9sLCBTeW1ib2wudG9Qcmlt
aXRpdmUsIFR5cGVkQXJyYXksIGNvbXB1dGVkLXByb3BlcnR5LW5hbWVzLCBBdG9taWNzLCBCaWdJ
bnQsIGFycm93LWZ1bmN0aW9uXQorZmxhZ3M6IFthc3luY10KKy0tLSovCithc3NlcnQuc2FtZVZh
bHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7Citjb25zdCBpNjRhID0g
bmV3IEJpZ0ludDY0QXJyYXkobmV3IFNoYXJlZEFycmF5QnVmZmVyKEJpZ0ludDY0QXJyYXkuQllU
RVNfUEVSX0VMRU1FTlQgKiA0KSk7CisKK2NvbnN0IHZhbHVlT2YgPSB7CisgIHZhbHVlT2YoKSB7
CisgICAgcmV0dXJuIG51bGw7CisgIH0KK307CisKK2NvbnN0IHRvUHJpbWl0aXZlID0geworICBb
U3ltYm9sLnRvUHJpbWl0aXZlXSgpIHsKKyAgICByZXR1cm4gbnVsbDsKKyAgfQorfTsKKworYXNz
ZXJ0LnNhbWVWYWx1ZSgKKyAgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIG51bGwpLnZh
bHVlLAorICAndGltZWQtb3V0JywKKyAgJ0F0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCBu
dWxsKS52YWx1ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicKKyk7CisKK2Fzc2VydC5zYW1lVmFs
dWUoCisgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB2YWx1ZU9mKS52YWx1ZSwKKyAg
J3RpbWVkLW91dCcsCisgICdBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdmFsdWVPZiku
dmFsdWUgcmVzb2x2ZXMgdG8gInRpbWVkLW91dCInCispOworCithc3NlcnQuc2FtZVZhbHVlKAor
ICBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdG9QcmltaXRpdmUpLnZhbHVlLAorICAn
dGltZWQtb3V0JywKKyAgJ0F0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB0b1ByaW1pdGl2
ZSkudmFsdWUgcmVzb2x2ZXMgdG8gInRpbWVkLW91dCInCispOworCitQcm9taXNlLmFsbChbCisg
IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCBudWxsKS52YWx1ZSwKKyAgQXRvbWljcy53
YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHZhbHVlT2YpLnZhbHVlLAorICBBdG9taWNzLndhaXRBc3lu
YyhpNjRhLCAwLCAwbiwgdG9QcmltaXRpdmUpLnZhbHVlCitdKS50aGVuKG91dGNvbWVzID0+IHsK
KyAgYXNzZXJ0LnNhbWVWYWx1ZShvdXRjb21lc1swXSwgJ3RpbWVkLW91dCcpOworICBhc3NlcnQu
c2FtZVZhbHVlKG91dGNvbWVzWzFdLCAndGltZWQtb3V0Jyk7CisgIGFzc2VydC5zYW1lVmFsdWUo
b3V0Y29tZXNbMl0sICd0aW1lZC1vdXQnKTsKK30sICRET05FKS50aGVuKCRET05FLCAkRE9ORSk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0
QXN5bmMvYmlnaW50L29iamVjdC1mb3ItdGltZW91dC1hZ2VudC5qcyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvb2JqZWN0LWZvci10aW1l
b3V0LWFnZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZDY1Yzg2NjExNWQ3MTYwZmUwZWQzZWQ4NTc5ZDEz
YzhiN2E4NTYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L29iamVjdC1mb3ItdGltZW91dC1hZ2VudC5qcwpA
QCAtMCwwICsxLDEwMiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxp
Y2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXRvbWlj
cy53YWl0YXN5bmMKK2Rlc2NyaXB0aW9uOiA+CisgIE9iamVjdCB2YWx1ZU9mLCB0b1N0cmluZywg
dG9QcmltaXRpdmUgWmVybyB0aW1lb3V0IGFyZyBzaG91bGQgcmVzdWx0IGluIGFuICswIHRpbWVv
dXQKK2luZm86IHwKKyAgQXRvbWljcy53YWl0QXN5bmMoIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1
ZSwgdGltZW91dCApCisKKyAgMS4gUmV0dXJuIERvV2FpdChhc3luYywgdHlwZWRBcnJheSwgaW5k
ZXgsIHZhbHVlLCB0aW1lb3V0KS4KKworICBEb1dhaXQgKCBtb2RlLCB0eXBlZEFycmF5LCBpbmRl
eCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDYuIExldCBxIGJlID8gVG9OdW1iZXIodGltZW91dCku
CisKKyAgICBPYmplY3QgLT4gQXBwbHkgdGhlIGZvbGxvd2luZyBzdGVwczoKKworICAgICAgTGV0
IHByaW1WYWx1ZSBiZSA/IFRvUHJpbWl0aXZlKGFyZ3VtZW50LCBoaW50IE51bWJlcikuCisgICAg
ICBSZXR1cm4gPyBUb051bWJlcihwcmltVmFsdWUpLgorCitmbGFnczogW2FzeW5jXQoraW5jbHVk
ZXM6IFthdG9taWNzSGVscGVyLmpzXQorZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hh
cmVkQXJyYXlCdWZmZXIsIFR5cGVkQXJyYXksIEF0b21pY3MsIEJpZ0ludCwgYXJyb3ctZnVuY3Rp
b24sIGFzeW5jLWZ1bmN0aW9uc10KKy0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9t
aWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7Citjb25zdCBSVU5OSU5HID0gMTsKKworJDI2Mi5h
Z2VudC5zdGFydChgCisgIGNvbnN0IHZhbHVlT2YgPSB7CisgICAgdmFsdWVPZigpIHsKKyAgICAg
IHJldHVybiAwOworICAgIH0KKyAgfTsKKworICBjb25zdCB0b1N0cmluZyA9IHsKKyAgICB0b1N0
cmluZygpIHsKKyAgICAgIHJldHVybiAiMCI7CisgICAgfQorICB9OworCisgIGNvbnN0IHRvUHJp
bWl0aXZlID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdKCkgeworICAgICAgcmV0dXJuIDA7
CisgICAgfQorICB9OworCisgICQyNjIuYWdlbnQucmVjZWl2ZUJyb2FkY2FzdChhc3luYyAoc2Fi
KSA9PiB7CisgICAgY29uc3QgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KHNhYik7CisgICAgQXRv
bWljcy5hZGQoaTY0YSwgJHtSVU5OSU5HfSwgMW4pOworICAgICQyNjIuYWdlbnQucmVwb3J0KGF3
YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB2YWx1ZU9mKS52YWx1ZSk7CisgICAg
JDI2Mi5hZ2VudC5yZXBvcnQoYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHRv
U3RyaW5nKS52YWx1ZSk7CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoYXdhaXQgQXRvbWljcy53YWl0
QXN5bmMoaTY0YSwgMCwgMG4sIHRvUHJpbWl0aXZlKS52YWx1ZSk7CisgICAgJDI2Mi5hZ2VudC5y
ZXBvcnQoQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHZhbHVlT2YpLnZhbHVlKTsKKyAg
ICAkMjYyLmFnZW50LnJlcG9ydChBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdG9TdHJp
bmcpLnZhbHVlKTsKKyAgICAkMjYyLmFnZW50LnJlcG9ydChBdG9taWNzLndhaXRBc3luYyhpNjRh
LCAwLCAwbiwgdG9QcmltaXRpdmUpLnZhbHVlKTsKKyAgICAkMjYyLmFnZW50LmxlYXZpbmcoKTsK
KyAgfSk7CitgKTsKKworY29uc3QgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KG5ldyBTaGFyZWRB
cnJheUJ1ZmZlcihCaWdJbnQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkpOworCiskMjYy
LmFnZW50LnNhZmVCcm9hZGNhc3RBc3luYyhpNjRhLCBSVU5OSU5HLCAxbikudGhlbihhc3luYyBh
Z2VudENvdW50ID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShhZ2VudENvdW50LCAxbik7CisKKyAg
YXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5jKCks
CisgICAgJ3RpbWVkLW91dCcsCisgICAgJ2F3YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAs
IDBuLCB2YWx1ZU9mKS52YWx1ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicKKyAgKTsKKworICBh
c3NlcnQuc2FtZVZhbHVlKAorICAgIGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwK
KyAgICAndGltZWQtb3V0JywKKyAgICAnYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwg
MG4sIHRvU3RyaW5nKS52YWx1ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicKKyAgKTsKKworICBh
c3NlcnQuc2FtZVZhbHVlKAorICAgIGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwK
KyAgICAndGltZWQtb3V0JywKKyAgICAnYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwg
MG4sIHRvUHJpbWl0aXZlKS52YWx1ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicKKyAgKTsKKwor
ICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMo
KSwKKyAgICAndGltZWQtb3V0JywKKyAgICAnQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4s
IHZhbHVlT2YpLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJworICApOworCisgIGFzc2Vy
dC5zYW1lVmFsdWUoCisgICAgYXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAg
ICd0aW1lZC1vdXQnLAorICAgICdBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdG9TdHJp
bmcpLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJworICApOworCisgIGFzc2VydC5zYW1l
VmFsdWUoCisgICAgYXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAgICd0aW1l
ZC1vdXQnLAorICAgICdBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdG9QcmltaXRpdmUp
LnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJworICApOworCisgIGFzc2VydC5zYW1lVmFs
dWUoQXRvbWljcy5ub3RpZnkoaTY0YSwgMCksIDAsICdBdG9taWNzLm5vdGlmeShpNjRhLCAwKSBy
ZXR1cm5zIDAnKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvb2JqZWN0LWZv
ci10aW1lb3V0LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2Fp
dEFzeW5jL2JpZ2ludC9vYmplY3QtZm9yLXRpbWVvdXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYzNzdhM2Iz
NTc1NjdjZDI3Y2RhNzY0ZjEwYTQ2MDZkM2YwYzA2ZAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvb2JqZWN0
LWZvci10aW1lb3V0LmpzCkBAIC0wLDAgKzEsNzEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBS
aWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQor
ZXNpZDogc2VjLWF0b21pY3Mud2FpdGFzeW5jCitkZXNjcmlwdGlvbjogPgorICBPYmplY3QgdmFs
dWVPZiwgdG9TdHJpbmcsIHRvUHJpbWl0aXZlIFplcm8gdGltZW91dCBhcmcgc2hvdWxkIHJlc3Vs
dCBpbiBhbiArMCB0aW1lb3V0CitpbmZvOiB8CisgIEF0b21pY3Mud2FpdEFzeW5jKCB0eXBlZEFy
cmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVybiBEb1dhaXQoYXN5bmMs
IHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAgRG9XYWl0ICggbW9kZSwg
dHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICA2LiBMZXQgcSBiZSA/IFRv
TnVtYmVyKHRpbWVvdXQpLgorCisgICAgT2JqZWN0IC0+IEFwcGx5IHRoZSBmb2xsb3dpbmcgc3Rl
cHM6CisKKyAgICAgIExldCBwcmltVmFsdWUgYmUgPyBUb1ByaW1pdGl2ZShhcmd1bWVudCwgaGlu
dCBOdW1iZXIpLgorICAgICAgUmV0dXJuID8gVG9OdW1iZXIocHJpbVZhbHVlKS4KKworZmVhdHVy
ZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFN5bWJvbCwgU3ltYm9s
LnRvUHJpbWl0aXZlLCBUeXBlZEFycmF5LCBjb21wdXRlZC1wcm9wZXJ0eS1uYW1lcywgQXRvbWlj
cywgQmlnSW50LCBhcnJvdy1mdW5jdGlvbl0KK2ZsYWdzOiBbYXN5bmNdCistLS0qLworYXNzZXJ0
LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworY29uc3Qg
aTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihCaWdJbnQ2NEFy
cmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkpOworCitjb25zdCB2YWx1ZU9mID0geworICB2YWx1
ZU9mKCkgeworICAgIHJldHVybiAwOworICB9Cit9OworCitjb25zdCB0b1N0cmluZyA9IHsKKyAg
dG9TdHJpbmcoKSB7CisgICAgcmV0dXJuICcwJzsKKyAgfQorfTsKKworY29uc3QgdG9QcmltaXRp
dmUgPSB7CisgIFtTeW1ib2wudG9QcmltaXRpdmVdKCkgeworICAgIHJldHVybiAwOworICB9Cit9
OworCithc3NlcnQuc2FtZVZhbHVlKAorICBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwg
dmFsdWVPZikudmFsdWUsCisgICd0aW1lZC1vdXQnLAorICAnQXRvbWljcy53YWl0QXN5bmMoaTY0
YSwgMCwgMG4sIHZhbHVlT2YpLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJworKTsKKwor
YXNzZXJ0LnNhbWVWYWx1ZSgKKyAgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHRvU3Ry
aW5nKS52YWx1ZSwKKyAgJ3RpbWVkLW91dCcsCisgICdBdG9taWNzLndhaXRBc3luYyhpNjRhLCAw
LCAwbiwgdG9TdHJpbmcpLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJworKTsKKworYXNz
ZXJ0LnNhbWVWYWx1ZSgKKyAgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHRvUHJpbWl0
aXZlKS52YWx1ZSwKKyAgJ3RpbWVkLW91dCcsCisgICdBdG9taWNzLndhaXRBc3luYyhpNjRhLCAw
LCAwbiwgdG9QcmltaXRpdmUpLnZhbHVlIHJlc29sdmVzIHRvICJ0aW1lZC1vdXQiJworKTsKKwor
UHJvbWlzZS5hbGwoWworICBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdmFsdWVPZiku
dmFsdWUsCisgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB0b1N0cmluZykudmFsdWUs
CisgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB0b1ByaW1pdGl2ZSkudmFsdWUKK10p
LnRoZW4ob3V0Y29tZXMgPT4geworICBhc3NlcnQuc2FtZVZhbHVlKG91dGNvbWVzWzBdLCAndGlt
ZWQtb3V0Jyk7CisgIGFzc2VydC5zYW1lVmFsdWUob3V0Y29tZXNbMV0sICd0aW1lZC1vdXQnKTsK
KyAgYXNzZXJ0LnNhbWVWYWx1ZShvdXRjb21lc1syXSwgJ3RpbWVkLW91dCcpOworfSwgJERPTkUp
LnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvb3V0LW9mLXJhbmdlLWluZGV4LXRocm93
cy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9i
aWdpbnQvb3V0LW9mLXJhbmdlLWluZGV4LXRocm93cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTBjNWQ1YTFm
ZWZmNDFlN2NhZGFiNzJiN2Q2ODdhZDRmNGVkZTRjCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9vdXQtb2Yt
cmFuZ2UtaW5kZXgtdGhyb3dzLmpzCkBAIC0wLDAgKzEsNDYgQEAKKy8vIENvcHlyaWdodCAoQykg
MjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMg
Z292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisK
Ky8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2NyaXB0aW9uOiA+CisgIFRo
cm93cyBhIFJhbmdlRXJyb3IgaWYgdmFsdWUgb2YgaW5kZXggYXJnIGlzIG91dCBvZiByYW5nZQor
aW5mbzogfAorICBBdG9taWNzLndhaXRBc3luYyggdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0
aW1lb3V0ICkKKworICAxLiBSZXR1cm4gRG9XYWl0KGFzeW5jLCB0eXBlZEFycmF5LCBpbmRleCwg
dmFsdWUsIHRpbWVvdXQpLgorCisgIERvV2FpdCAoIG1vZGUsIHR5cGVkQXJyYXksIGluZGV4LCB2
YWx1ZSwgdGltZW91dCApCisKKyAgMi4gTGV0IGkgYmUgPyBWYWxpZGF0ZUF0b21pY0FjY2Vzcyh0
eXBlZEFycmF5LCBpbmRleCkuCisKKyAgICAuLi4KKyAgICAyLkxldCBhY2Nlc3NJbmRleCBiZSA/
IFRvSW5kZXgocmVxdWVzdEluZGV4KS4KKyAgICAuLi4KKyAgICA1LiBJZiBhY2Nlc3NJbmRleCDi
iaUgbGVuZ3RoLCB0aHJvdyBhIFJhbmdlRXJyb3IgZXhjZXB0aW9uLgorZmVhdHVyZXM6IFtBdG9t
aWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFR5cGVkQXJyYXksIEF0b21pY3MsIEJp
Z0ludF0KKy0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywg
J2Z1bmN0aW9uJyk7Citjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0QXJyYXkoCisgIG5ldyBTaGFy
ZWRBcnJheUJ1ZmZlcihCaWdJbnQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkKKyk7CisK
K2NvbnN0IHBvaXNvbmVkID0geworICB2YWx1ZU9mKCkgeworICAgIHRocm93IG5ldyBUZXN0MjYy
RXJyb3IoJ3Nob3VsZCBub3QgZXZhbHVhdGUgdGhpcyBjb2RlJyk7CisgIH0KK307CisKK2Fzc2Vy
dC50aHJvd3MoUmFuZ2VFcnJvciwgZnVuY3Rpb24oKSB7CisgIEF0b21pY3Mud2FpdChpNjRhLCBJ
bmZpbml0eSwgcG9pc29uZWQsIHBvaXNvbmVkKTsKK30sICdgQXRvbWljcy53YWl0KGk2NGEsIElu
ZmluaXR5LCBwb2lzb25lZCwgcG9pc29uZWQpYCB0aHJvd3MgUmFuZ2VFcnJvcicpOworYXNzZXJ0
LnRocm93cyhSYW5nZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgQXRvbWljcy53YWl0KGk2NGEsIC0x
LCBwb2lzb25lZCwgcG9pc29uZWQpOworfSwgJ2BBdG9taWNzLndhaXQoaTY0YSwgLTEsIHBvaXNv
bmVkLCBwb2lzb25lZClgIHRocm93cyBSYW5nZUVycm9yJyk7Cithc3NlcnQudGhyb3dzKFJhbmdl
RXJyb3IsIGZ1bmN0aW9uKCkgeworICBBdG9taWNzLndhaXQoaTY0YSwgNCwgcG9pc29uZWQsIHBv
aXNvbmVkKTsKK30sICdgQXRvbWljcy53YWl0KGk2NGEsIDQsIHBvaXNvbmVkLCBwb2lzb25lZClg
IHRocm93cyBSYW5nZUVycm9yJyk7Cithc3NlcnQudGhyb3dzKFJhbmdlRXJyb3IsIGZ1bmN0aW9u
KCkgeworICBBdG9taWNzLndhaXQoaTY0YSwgMjAwLCBwb2lzb25lZCwgcG9pc29uZWQpOworfSwg
J2BBdG9taWNzLndhaXQoaTY0YSwgMjAwLCBwb2lzb25lZCwgcG9pc29uZWQpYCB0aHJvd3MgUmFu
Z2VFcnJvcicpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
QXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3BvaXNvbmVkLW9iamVjdC1mb3ItdGltZW91dC10aHJv
d3MtYWdlbnQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0
QXN5bmMvYmlnaW50L3BvaXNvbmVkLW9iamVjdC1mb3ItdGltZW91dC10aHJvd3MtYWdlbnQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDk4YTUzNGQ0Y2FkOThkNmY3ODNkYWY4NjBmMmUzOWE1ZDJmMmI1ZQotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dh
aXRBc3luYy9iaWdpbnQvcG9pc29uZWQtb2JqZWN0LWZvci10aW1lb3V0LXRocm93cy1hZ2VudC5q
cwpAQCAtMCwwICsxLDgxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0Qg
bGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hdG9t
aWNzLndhaXRhc3luYworZGVzY3JpcHRpb246ID4KKyAgRmFsc2UgdGltZW91dCBhcmcgc2hvdWxk
IHJlc3VsdCBpbiBhbiArMCB0aW1lb3V0CitpbmZvOiB8CisgIEF0b21pY3Mud2FpdEFzeW5jKCB0
eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVybiBEb1dhaXQo
YXN5bmMsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAgRG9XYWl0ICgg
bW9kZSwgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICA2LiBMZXQgcSBi
ZSA/IFRvTnVtYmVyKHRpbWVvdXQpLgorCisgIExldCBwcmltVmFsdWUgYmUgPyBUb1ByaW1pdGl2
ZShhcmd1bWVudCwgaGludCBOdW1iZXIpLgorICBSZXR1cm4gPyBUb051bWJlcihwcmltVmFsdWUp
LgorCitmbGFnczogW2FzeW5jXQoraW5jbHVkZXM6IFthdG9taWNzSGVscGVyLmpzXQorZmVhdHVy
ZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFR5cGVkQXJyYXksIEF0
b21pY3MsIEJpZ0ludCwgYXJyb3ctZnVuY3Rpb24sIGFzeW5jLWZ1bmN0aW9uc10KKy0tLSovCith
c3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7Citj
b25zdCBSVU5OSU5HID0gMTsKKworJDI2Mi5hZ2VudC5zdGFydChgCisgIGNvbnN0IHBvaXNvbmVk
VmFsdWVPZiA9IHsKKyAgICB2YWx1ZU9mKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaG91
bGQgbm90IGV2YWx1YXRlIHRoaXMgY29kZScpOworICAgIH0KKyAgfTsKKworICBjb25zdCBwb2lz
b25lZFRvUHJpbWl0aXZlID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdKCkgeworICAgICAg
dGhyb3cgbmV3IEVycm9yKCdwYXNzaW5nIGEgcG9pc29uZWQgb2JqZWN0IHVzaW5nIEBAVG9Qcmlt
aXRpdmUnKTsKKyAgICB9CisgIH07CisKKyAgJDI2Mi5hZ2VudC5yZWNlaXZlQnJvYWRjYXN0KGZ1
bmN0aW9uKHNhYikgeworICAgIGNvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShzYWIpOwor
ICAgIEF0b21pY3MuYWRkKGk2NGEsICR7UlVOTklOR30sIDFuKTsKKworICAgIGxldCBzdGF0dXMx
ID0gJyc7CisgICAgbGV0IHN0YXR1czIgPSAnJzsKKworICAgIHRyeSB7CisgICAgICBBdG9taWNz
LndhaXQoaTY0YSwgMCwgMG4sIHBvaXNvbmVkVmFsdWVPZik7CisgICAgfSBjYXRjaCAoZXJyb3Ip
IHsKKyAgICAgIHN0YXR1czEgPSAncG9pc29uZWRWYWx1ZU9mJzsKKyAgICB9CisgICAgdHJ5IHsK
KyAgICAgIEF0b21pY3Mud2FpdChpNjRhLCAwLCAwbiwgcG9pc29uZWRUb1ByaW1pdGl2ZSk7Cisg
ICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgIHN0YXR1czIgPSAncG9pc29uZWRUb1ByaW1pdGl2
ZSc7CisgICAgfQorCisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoc3RhdHVzMSk7CisgICAgJDI2Mi5h
Z2VudC5yZXBvcnQoc3RhdHVzMik7CisgICAgJDI2Mi5hZ2VudC5sZWF2aW5nKCk7CisgIH0pOwor
YCk7CisKK2NvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShuZXcgU2hhcmVkQXJyYXlCdWZm
ZXIoQmlnSW50NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQpKTsKKworJDI2Mi5hZ2VudC5z
YWZlQnJvYWRjYXN0QXN5bmMoaTY0YSwgUlVOTklORywgMW4pLnRoZW4oYXN5bmMgYWdlbnRDb3Vu
dCA9PiB7CisgIGFzc2VydC5zYW1lVmFsdWUoYWdlbnRDb3VudCwgMW4pOworCisgIGFzc2VydC5z
YW1lVmFsdWUoCisgICAgYXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAgICdw
b2lzb25lZFZhbHVlT2YnLAorICAgICdBdG9taWNzLndhaXQoaTY0YSwgMCwgMG4sIHBvaXNvbmVk
VmFsdWVPZikgdGhyb3dzJworICApOworCisgIGFzc2VydC5zYW1lVmFsdWUoCisgICAgYXdhaXQg
JDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAgICdwb2lzb25lZFRvUHJpbWl0aXZlJywK
KyAgICAnQXRvbWljcy53YWl0KGk2NGEsIDAsIDBuLCBwb2lzb25lZFRvUHJpbWl0aXZlKSB0aHJv
d3MnCisgICk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZShBdG9taWNzLm5vdGlmeShpNjRhLCAwKSwg
MCwgJ0F0b21pY3Mubm90aWZ5KGk2NGEsIDApIHJldHVybnMgMCcpOworfSkudGhlbigkRE9ORSwg
JERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21p
Y3Mvd2FpdEFzeW5jL2JpZ2ludC9wb2lzb25lZC1vYmplY3QtZm9yLXRpbWVvdXQtdGhyb3dzLmpz
IGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2lu
dC9wb2lzb25lZC1vYmplY3QtZm9yLXRpbWVvdXQtdGhyb3dzLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjODA1
ZDIxZjEzMTk2YzhmZmNjYjg5ZGFkNGE3NTQ4ZTIxMDdjZWYKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3Bv
aXNvbmVkLW9iamVjdC1mb3ItdGltZW91dC10aHJvd3MuanMKQEAgLTAsMCArMSw0MiBAQAorLy8g
Q29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8v
IFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJ
Q0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2NyaXB0
aW9uOiA+CisgIFRocm93cyBhIFR5cGVFcnJvciBpZiBpbmRleCBhcmcgY2FuIG5vdCBiZSBjb252
ZXJ0ZWQgdG8gYW4gSW50ZWdlcgoraW5mbzogfAorICBBdG9taWNzLndhaXRBc3luYyggdHlwZWRB
cnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICAxLiBSZXR1cm4gRG9XYWl0KGFzeW5j
LCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQpLgorCisgIERvV2FpdCAoIG1vZGUs
IHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgNi4gTGV0IHEgYmUgPyBU
b051bWJlcih0aW1lb3V0KS4KKworICBMZXQgcHJpbVZhbHVlIGJlID8gVG9QcmltaXRpdmUoYXJn
dW1lbnQsIGhpbnQgTnVtYmVyKS4KKyAgUmV0dXJuID8gVG9OdW1iZXIocHJpbVZhbHVlKS4KKwor
ZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFN5bWJvbCwg
U3ltYm9sLnRvUHJpbWl0aXZlLCBUeXBlZEFycmF5LCBjb21wdXRlZC1wcm9wZXJ0eS1uYW1lcywg
QXRvbWljcywgQmlnSW50XQorLS0tKi8KK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mu
d2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKK2NvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShu
ZXcgU2hhcmVkQXJyYXlCdWZmZXIoQmlnSW50NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQp
KTsKKworY29uc3QgcG9pc29uZWRWYWx1ZU9mID0geworICB2YWx1ZU9mKCkgeworICAgIHRocm93
IG5ldyBUZXN0MjYyRXJyb3IoJ3Nob3VsZCBub3QgZXZhbHVhdGUgdGhpcyBjb2RlJyk7CisgIH0K
K307CisKK2NvbnN0IHBvaXNvbmVkVG9QcmltaXRpdmUgPSB7CisgIFtTeW1ib2wudG9QcmltaXRp
dmVdKCkgeworICAgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoJ3Bhc3NpbmcgYSBwb2lzb25lZCBv
YmplY3QgdXNpbmcgQEBUb1ByaW1pdGl2ZScpOworICB9Cit9OworCithc3NlcnQudGhyb3dzKFRl
c3QyNjJFcnJvciwgZnVuY3Rpb24oKSB7CisgIEF0b21pY3Mud2FpdChpNjRhLCAwLCAwbiwgcG9p
c29uZWRWYWx1ZU9mKTsKK30sICdgQXRvbWljcy53YWl0KGk2NGEsIDAsIDBuLCBwb2lzb25lZFZh
bHVlT2YpYCB0aHJvd3MgVGVzdDI2MkVycm9yJyk7CisKK2Fzc2VydC50aHJvd3MoVGVzdDI2MkVy
cm9yLCBmdW5jdGlvbigpIHsKKyAgQXRvbWljcy53YWl0KGk2NGEsIDAsIDBuLCBwb2lzb25lZFRv
UHJpbWl0aXZlKTsKK30sICdgQXRvbWljcy53YWl0KGk2NGEsIDAsIDBuLCBwb2lzb25lZFRvUHJp
bWl0aXZlKWAgdGhyb3dzIFRlc3QyNjJFcnJvcicpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9zeW1ib2wtZm9yLWlu
ZGV4LXRocm93cy1hZ2VudC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9t
aWNzL3dhaXRBc3luYy9iaWdpbnQvc3ltYm9sLWZvci1pbmRleC10aHJvd3MtYWdlbnQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2M2NGZjMDUwYzBmZmQ5NGY5ZTVlNDkyYmYxNTdmMWUxZjdhMzBlNgotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRB
c3luYy9iaWdpbnQvc3ltYm9sLWZvci1pbmRleC10aHJvd3MtYWdlbnQuanMKQEAgLTAsMCArMSw5
MyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMK
K2Rlc2NyaXB0aW9uOiA+CisgIFRocm93cyBhIFR5cGVFcnJvciBpZiBpbmRleCBhcmcgY2FuIG5v
dCBiZSBjb252ZXJ0ZWQgdG8gYW4gSW50ZWdlcgoraW5mbzogfAorICBBdG9taWNzLndhaXRBc3lu
YyggdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICAxLiBSZXR1cm4gRG9X
YWl0KGFzeW5jLCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQpLgorCisgIERvV2Fp
dCAoIG1vZGUsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgMi4gTGV0
IGkgYmUgPyBWYWxpZGF0ZUF0b21pY0FjY2Vzcyh0eXBlZEFycmF5LCBpbmRleCkuCisKKyAgVmFs
aWRhdGVBdG9taWNBY2Nlc3MoIHR5cGVkQXJyYXksIHJlcXVlc3RJbmRleCApCisKKyAgMi4gTGV0
IGFjY2Vzc0luZGV4IGJlID8gVG9JbmRleChyZXF1ZXN0SW5kZXgpLgorCisgIFRvSW5kZXggKCB2
YWx1ZSApCisKKyAgMi4gRWxzZSwKKyAgICBhLiBMZXQgaW50ZWdlckluZGV4IGJlID8gVG9JbnRl
Z2VyKHZhbHVlKS4KKworICBUb0ludGVnZXIodmFsdWUpCisKKyAgMS4gTGV0IG51bWJlciBiZSA/
IFRvTnVtYmVyKGFyZ3VtZW50KS4KKworICAgIFN5bWJvbCAtLT4gVGhyb3cgYSBUeXBlRXJyb3Ig
ZXhjZXB0aW9uLgorCitmbGFnczogW2FzeW5jXQoraW5jbHVkZXM6IFthdG9taWNzSGVscGVyLmpz
XQorZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFN5bWJv
bCwgU3ltYm9sLnRvUHJpbWl0aXZlLCBUeXBlZEFycmF5LCBBdG9taWNzLCBCaWdJbnQsIGFycm93
LWZ1bmN0aW9uLCBhc3luYy1mdW5jdGlvbnNdCistLS0qLworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBl
b2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworY29uc3QgUlVOTklORyA9IDE7CisK
KyQyNjIuYWdlbnQuc3RhcnQoYAorICBjb25zdCBwb2lzb25lZFZhbHVlT2YgPSB7CisgICAgdmFs
dWVPZigpIHsKKyAgICAgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoJ3Nob3VsZCBub3QgZXZhbHVh
dGUgdGhpcyBjb2RlJyk7CisgICAgfQorICB9OworCisgIGNvbnN0IHBvaXNvbmVkVG9QcmltaXRp
dmUgPSB7CisgICAgW1N5bWJvbC50b1ByaW1pdGl2ZV0oKSB7CisgICAgICB0aHJvdyBuZXcgVGVz
dDI2MkVycm9yKCdzaG91bGQgbm90IGV2YWx1YXRlIHRoaXMgY29kZScpOworICAgIH0KKyAgfTsK
KworICAkMjYyLmFnZW50LnJlY2VpdmVCcm9hZGNhc3QoZnVuY3Rpb24oc2FiKSB7CisgICAgY29u
c3QgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KHNhYik7CisgICAgQXRvbWljcy5hZGQoaTY0YSwg
JHtSVU5OSU5HfSwgMW4pOworCisgICAgbGV0IHN0YXR1czEgPSAnJzsKKyAgICBsZXQgc3RhdHVz
MiA9ICcnOworCisgICAgdHJ5IHsKKyAgICAgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIFN5bWJv
bCgnMScpLCBwb2lzb25lZFZhbHVlT2YsIHBvaXNvbmVkVmFsdWVPZik7CisgICAgfSBjYXRjaCAo
ZXJyb3IpIHsKKyAgICAgIHN0YXR1czEgPSAnQSAnICsgZXJyb3IubmFtZTsKKyAgICB9CisgICAg
dHJ5IHsKKyAgICAgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIFN5bWJvbCgnMicpLCBwb2lzb25l
ZFRvUHJpbWl0aXZlLCBwb2lzb25lZFRvUHJpbWl0aXZlKTsKKyAgICB9IGNhdGNoIChlcnJvcikg
eworICAgICAgc3RhdHVzMiA9ICdCICcgKyBlcnJvci5uYW1lOworICAgIH0KKworICAgICQyNjIu
YWdlbnQucmVwb3J0KHN0YXR1czEpOworICAgICQyNjIuYWdlbnQucmVwb3J0KHN0YXR1czIpOwor
ICAgICQyNjIuYWdlbnQubGVhdmluZygpOworICB9KTsKK2ApOworCitjb25zdCBpNjRhID0gbmV3
IEJpZ0ludDY0QXJyYXkobmV3IFNoYXJlZEFycmF5QnVmZmVyKEJpZ0ludDY0QXJyYXkuQllURVNf
UEVSX0VMRU1FTlQgKiA0KSk7CisKKyQyNjIuYWdlbnQuc2FmZUJyb2FkY2FzdEFzeW5jKGk2NGEs
IFJVTk5JTkcsIDFuKS50aGVuKGFzeW5jIGFnZW50Q291bnQgPT4geworICBhc3NlcnQuc2FtZVZh
bHVlKGFnZW50Q291bnQsIDFuKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIGF3YWl0ICQy
NjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwKKyAgICAnQSBUeXBlRXJyb3InLAorICAgICdBdG9t
aWNzLndhaXRBc3luYyhpNjRhLCBTeW1ib2woIjEiKSwgLi4uLCAuLi4pIHRocm93cyBUeXBlRXJy
b3InCisgICk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICBhd2FpdCAkMjYyLmFnZW50Lmdl
dFJlcG9ydEFzeW5jKCksCisgICAgJ0IgVHlwZUVycm9yJywKKyAgICAnQXRvbWljcy53YWl0QXN5
bmMoaTY0YSwgU3ltYm9sKCIyIiksIC4uLiwgLi4uKSB0aHJvd3MgVHlwZUVycm9yJworICApOwor
CisgIGFzc2VydC5zYW1lVmFsdWUoQXRvbWljcy5ub3RpZnkoaTY0YSwgMCksIDAsICdBdG9taWNz
Lm5vdGlmeShpNjRhLCAwKSByZXR1cm5zIDAnKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3lu
Yy9iaWdpbnQvc3ltYm9sLWZvci1pbmRleC10aHJvd3MuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3N5bWJvbC1mb3ItaW5kZXgtdGhy
b3dzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc5NDU1ZmM3NTg0YWVkYjdmN2JlNWE4MjY0NjQ3NWNlYjdmM2Ri
ODMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRv
bWljcy93YWl0QXN5bmMvYmlnaW50L3N5bWJvbC1mb3ItaW5kZXgtdGhyb3dzLmpzCkBAIC0wLDAg
KzEsNjggQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0
YXN5bmMKK2Rlc2NyaXB0aW9uOiA+CisgIFRocm93cyBhIFR5cGVFcnJvciBpZiBpbmRleCBhcmcg
Y2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYW4gSW50ZWdlcgoraW5mbzogfAorICBBdG9taWNzLndh
aXRBc3luYyggdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICAxLiBSZXR1
cm4gRG9XYWl0KGFzeW5jLCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQpLgorCisg
IERvV2FpdCAoIG1vZGUsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAg
Mi4gTGV0IGkgYmUgPyBWYWxpZGF0ZUF0b21pY0FjY2Vzcyh0eXBlZEFycmF5LCBpbmRleCkuCisK
KyAgVmFsaWRhdGVBdG9taWNBY2Nlc3MoIHR5cGVkQXJyYXksIHJlcXVlc3RJbmRleCApCisKKyAg
Mi4gTGV0IGFjY2Vzc0luZGV4IGJlID8gVG9JbmRleChyZXF1ZXN0SW5kZXgpLgorCisgIFRvSW5k
ZXggKCB2YWx1ZSApCisKKyAgMi4gRWxzZSwKKyAgICBhLiBMZXQgaW50ZWdlckluZGV4IGJlID8g
VG9JbnRlZ2VyKHZhbHVlKS4KKworICBUb0ludGVnZXIodmFsdWUpCisKKyAgMS4gTGV0IG51bWJl
ciBiZSA/IFRvTnVtYmVyKGFyZ3VtZW50KS4KKworICAgIFN5bWJvbCAtLT4gVGhyb3cgYSBUeXBl
RXJyb3IgZXhjZXB0aW9uLgorCitmZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBTaGFyZWRB
cnJheUJ1ZmZlciwgU3ltYm9sLCBTeW1ib2wudG9QcmltaXRpdmUsIFR5cGVkQXJyYXksIGNvbXB1
dGVkLXByb3BlcnR5LW5hbWVzLCBBdG9taWNzLCBCaWdJbnRdCistLS0qLworYXNzZXJ0LnNhbWVW
YWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworY29uc3QgaTY0YSA9
IG5ldyBCaWdJbnQ2NEFycmF5KAorICBuZXcgU2hhcmVkQXJyYXlCdWZmZXIoQmlnSW50NjRBcnJh
eS5CWVRFU19QRVJfRUxFTUVOVCAqIDQpCispOworCitjb25zdCBwb2lzb25lZFZhbHVlT2YgPSB7
CisgIHZhbHVlT2YoKSB7CisgICAgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcignc2hvdWxkIG5vdCBl
dmFsdWF0ZSB0aGlzIGNvZGUnKTsKKyAgfQorfTsKKworY29uc3QgcG9pc29uZWRUb1ByaW1pdGl2
ZSA9IHsKKyAgW1N5bWJvbC50b1ByaW1pdGl2ZV0oKSB7CisgICAgdGhyb3cgbmV3IFRlc3QyNjJF
cnJvcignc2hvdWxkIG5vdCBldmFsdWF0ZSB0aGlzIGNvZGUnKTsKKyAgfQorfTsKKworYXNzZXJ0
LnRocm93cyhUZXN0MjYyRXJyb3IsIGZ1bmN0aW9uKCkgeworICBBdG9taWNzLndhaXRBc3luYyhp
NjRhLCBwb2lzb25lZFZhbHVlT2YsIHBvaXNvbmVkVmFsdWVPZiwgcG9pc29uZWRWYWx1ZU9mKTsK
K30sICdgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgcG9pc29uZWRWYWx1ZU9mLCBwb2lzb25lZFZh
bHVlT2YsIHBvaXNvbmVkVmFsdWVPZilgIHRocm93cyBUZXN0MjYyRXJyb3InKTsKKworYXNzZXJ0
LnRocm93cyhUZXN0MjYyRXJyb3IsIGZ1bmN0aW9uKCkgeworICBBdG9taWNzLndhaXRBc3luYyhp
NjRhLCBwb2lzb25lZFRvUHJpbWl0aXZlLCBwb2lzb25lZFRvUHJpbWl0aXZlLCBwb2lzb25lZFRv
UHJpbWl0aXZlKTsKK30sICdgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgcG9pc29uZWRUb1ByaW1p
dGl2ZSwgcG9pc29uZWRUb1ByaW1pdGl2ZSwgcG9pc29uZWRUb1ByaW1pdGl2ZSlgIHRocm93cyBU
ZXN0MjYyRXJyb3InKTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewor
ICBBdG9taWNzLndhaXRBc3luYyhpNjRhLCBTeW1ib2woJzEnKSwgcG9pc29uZWRWYWx1ZU9mLCBw
b2lzb25lZFZhbHVlT2YpOworfSwgJ2BBdG9taWNzLndhaXRBc3luYyhpNjRhLCBTeW1ib2woIjEi
KSwgcG9pc29uZWRWYWx1ZU9mLCBwb2lzb25lZFZhbHVlT2YpYCB0aHJvd3MgVHlwZUVycm9yJyk7
CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgQXRvbWljcy53YWl0
QXN5bmMoaTY0YSwgU3ltYm9sKCcyJyksIHBvaXNvbmVkVG9QcmltaXRpdmUsIHBvaXNvbmVkVG9Q
cmltaXRpdmUpOworfSwgJ2BBdG9taWNzLndhaXRBc3luYyhpNjRhLCBTeW1ib2woIjIiKSwgcG9p
c29uZWRUb1ByaW1pdGl2ZSwgcG9pc29uZWRUb1ByaW1pdGl2ZSlgIHRocm93cyBUeXBlRXJyb3In
KTsKKworCisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9t
aWNzL3dhaXRBc3luYy9iaWdpbnQvc3ltYm9sLWZvci10aW1lb3V0LXRocm93cy1hZ2VudC5qcyBi
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQv
c3ltYm9sLWZvci10aW1lb3V0LXRocm93cy1hZ2VudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Nzk1OGExZWE0
OTY1Mjk3YmY4MWU4M2NlOTM3YmQ2ZmRkMTE1NGM0Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9zeW1ib2wt
Zm9yLXRpbWVvdXQtdGhyb3dzLWFnZW50LmpzCkBAIC0wLDAgKzEsNjggQEAKKy8vIENvcHlyaWdo
dCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUuCisvKi0tLQorZXNpZDogc2VjLWF0b21pY3Mud2FpdGFzeW5jCitkZXNjcmlwdGlvbjogPgor
ICBUaHJvd3MgYSBUeXBlRXJyb3IgaWYgaW5kZXggYXJnIGNhbiBub3QgYmUgY29udmVydGVkIHRv
IGFuIEludGVnZXIKK2luZm86IHwKKyAgQXRvbWljcy53YWl0QXN5bmMoIHR5cGVkQXJyYXksIGlu
ZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgMS4gUmV0dXJuIERvV2FpdChhc3luYywgdHlwZWRB
cnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0KS4KKworICBEb1dhaXQgKCBtb2RlLCB0eXBlZEFy
cmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDYuIExldCBxIGJlID8gVG9OdW1iZXIo
dGltZW91dCkuCisKKyAgICBTeW1ib2wgLS0+IFRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4K
KworZmxhZ3M6IFthc3luY10KK2luY2x1ZGVzOiBbYXRvbWljc0hlbHBlci5qc10KK2ZlYXR1cmVz
OiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBTeW1ib2wsIFN5bWJvbC50
b1ByaW1pdGl2ZSwgVHlwZWRBcnJheSwgQXRvbWljcywgQmlnSW50LCBhcnJvdy1mdW5jdGlvbiwg
YXN5bmMtZnVuY3Rpb25zXQorLS0tKi8KK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mu
d2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKK2NvbnN0IFJVTk5JTkcgPSAxOworCiskMjYyLmFnZW50
LnN0YXJ0KGAKKyAgJDI2Mi5hZ2VudC5yZWNlaXZlQnJvYWRjYXN0KGZ1bmN0aW9uKHNhYikgewor
ICAgIGNvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShzYWIpOworICAgIEF0b21pY3MuYWRk
KGk2NGEsICR7UlVOTklOR30sIDFuKTsKKworICAgIGxldCBzdGF0dXMxID0gJyc7CisgICAgbGV0
IHN0YXR1czIgPSAnJzsKKworICAgIHRyeSB7CisgICAgICBBdG9taWNzLndhaXRBc3luYyhpNjRh
LCAwLCAwbiwgU3ltYm9sKCcxJykpOworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICBzdGF0
dXMxID0gJ0EgJyArIGVycm9yLm5hbWU7CisgICAgfQorICAgIHRyeSB7CisgICAgICBBdG9taWNz
LndhaXRBc3luYyhpNjRhLCAwLCAwbiwgU3ltYm9sKCcyJykpOworICAgIH0gY2F0Y2ggKGVycm9y
KSB7CisgICAgICBzdGF0dXMyID0gJ0IgJyArIGVycm9yLm5hbWU7CisgICAgfQorCisgICAgJDI2
Mi5hZ2VudC5yZXBvcnQoc3RhdHVzMSk7CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoc3RhdHVzMik7
CisgICAgJDI2Mi5hZ2VudC5sZWF2aW5nKCk7CisgIH0pOworYCk7CisKK2NvbnN0IGk2NGEgPSBu
ZXcgQmlnSW50NjRBcnJheShuZXcgU2hhcmVkQXJyYXlCdWZmZXIoQmlnSW50NjRBcnJheS5CWVRF
U19QRVJfRUxFTUVOVCAqIDQpKTsKKworJDI2Mi5hZ2VudC5zYWZlQnJvYWRjYXN0QXN5bmMoaTY0
YSwgUlVOTklORywgMW4pLnRoZW4oYXN5bmMgYWdlbnRDb3VudCA9PiB7CisgIGFzc2VydC5zYW1l
VmFsdWUoYWdlbnRDb3VudCwgMW4pOworCisgIGFzc2VydC5zYW1lVmFsdWUoCisgICAgYXdhaXQg
JDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAgICdBIFR5cGVFcnJvcicsCisgICAgJ0F0
b21pY3Mud2FpdChpNjRhLCAwLCAwbiwgU3ltYm9sKCIxIikpIHRocm93cyBUeXBlRXJyb3InCisg
ICk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9y
dEFzeW5jKCksCisgICAgJ0IgVHlwZUVycm9yJywKKyAgICAnQXRvbWljcy53YWl0KGk2NGEsIDAs
IDBuLCBTeW1ib2woIjIiKSkgdGhyb3dzIFR5cGVFcnJvcicKKyAgKTsKKworICBhc3NlcnQuc2Ft
ZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2NGEsIDApLCAwLCAnQXRvbWljcy5ub3RpZnkoaTY0YSwg
MCkgcmV0dXJucyAwJyk7Cit9KS50aGVuKCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3N5bWJv
bC1mb3ItdGltZW91dC10aHJvd3MuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
QXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3N5bWJvbC1mb3ItdGltZW91dC10aHJvd3MuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTU2YjYzZDBmMjU5NGNlZDdlYjg0YjM5NWZiZjNkZjdhZmQxOTFiOAotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRB
c3luYy9iaWdpbnQvc3ltYm9sLWZvci10aW1lb3V0LXRocm93cy5qcwpAQCAtMCwwICsxLDQ5IEBA
CisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hdG9taWNzLndhaXRhc3luYworZGVz
Y3JpcHRpb246ID4KKyAgVGhyb3dzIGEgVHlwZUVycm9yIGlmIGluZGV4IGFyZyBjYW4gbm90IGJl
IGNvbnZlcnRlZCB0byBhbiBJbnRlZ2VyCitpbmZvOiB8CisgIEF0b21pY3Mud2FpdEFzeW5jKCB0
eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVybiBEb1dhaXQo
YXN5bmMsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAgRG9XYWl0ICgg
bW9kZSwgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICA2LiBMZXQgcSBi
ZSA/IFRvTnVtYmVyKHRpbWVvdXQpLgorCisgICAgU3ltYm9sIC0tPiBUaHJvdyBhIFR5cGVFcnJv
ciBleGNlcHRpb24uCisKK2ZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJlZEFycmF5
QnVmZmVyLCBTeW1ib2wsIFN5bWJvbC50b1ByaW1pdGl2ZSwgVHlwZWRBcnJheSwgY29tcHV0ZWQt
cHJvcGVydHktbmFtZXMsIEF0b21pY3MsIEJpZ0ludF0KKy0tLSovCithc3NlcnQuc2FtZVZhbHVl
KHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7Citjb25zdCBpNjRhID0gbmV3
IEJpZ0ludDY0QXJyYXkobmV3IFNoYXJlZEFycmF5QnVmZmVyKEJpZ0ludDY0QXJyYXkuQllURVNf
UEVSX0VMRU1FTlQgKiA0KSk7CisKK2NvbnN0IHBvaXNvbmVkVmFsdWVPZiA9IHsKKyAgdmFsdWVP
ZigpIHsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCdzaG91bGQgbm90IGV2YWx1YXRlIHRo
aXMgY29kZScpOworICB9Cit9OworCitjb25zdCBwb2lzb25lZFRvUHJpbWl0aXZlID0geworICBb
U3ltYm9sLnRvUHJpbWl0aXZlXSgpIHsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCdwYXNz
aW5nIGEgcG9pc29uZWQgb2JqZWN0IHVzaW5nIEBAVG9QcmltaXRpdmUnKTsKKyAgfQorfTsKKwor
YXNzZXJ0LnRocm93cyhUZXN0MjYyRXJyb3IsIGZ1bmN0aW9uKCkgeworICBBdG9taWNzLndhaXRB
c3luYyhpNjRhLCAwLCAwbiwgcG9pc29uZWRWYWx1ZU9mKTsKK30sICdgQXRvbWljcy53YWl0QXN5
bmMoaTY0YSwgMCwgMG4sIHBvaXNvbmVkVmFsdWVPZilgIHRocm93cyBUZXN0MjYyRXJyb3InKTsK
KworYXNzZXJ0LnRocm93cyhUZXN0MjYyRXJyb3IsIGZ1bmN0aW9uKCkgeworICBBdG9taWNzLndh
aXRBc3luYyhpNjRhLCAwLCAwbiwgcG9pc29uZWRUb1ByaW1pdGl2ZSk7Cit9LCAnYEF0b21pY3Mu
d2FpdEFzeW5jKGk2NGEsIDAsIDBuLCBwb2lzb25lZFRvUHJpbWl0aXZlKWAgdGhyb3dzIFRlc3Qy
NjJFcnJvcicpOworCithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIEF0
b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCBTeW1ib2woJ2ZvbycpKTsKK30sICdgQXRvbWlj
cy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIFN5bWJvbCgiZm9vIikpYCB0aHJvd3MgVHlwZUVycm9y
Jyk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgQXRvbWljcy53
YWl0QXN5bmMoaTY0YSwgMCwgMG4sIFN5bWJvbCgnZm9vJykpOworfSwgJ2BBdG9taWNzLndhaXRB
c3luYyhpNjRhLCAwLCAwbiwgU3ltYm9sKCJmb28iKSlgIHRocm93cyBUeXBlRXJyb3InKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3lu
Yy9iaWdpbnQvc3ltYm9sLWZvci12YWx1ZS10aHJvd3MtYWdlbnQuanMgYi9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3N5bWJvbC1mb3ItdmFs
dWUtdGhyb3dzLWFnZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwYmUxZGEzNTQzYzBiZTMzM2RjODE3MGQ2
MzY1YTNmNGEzZjY4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3N5bWJvbC1mb3ItdmFsdWUtdGhyb3dz
LWFnZW50LmpzCkBAIC0wLDAgKzEsODQgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdh
bGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkg
dGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDog
c2VjLWF0b21pY3Mud2FpdGFzeW5jCitkZXNjcmlwdGlvbjogPgorICBUaHJvd3MgYSBUeXBlRXJy
b3IgaWYgdmFsdWUgYXJnIGlzIGEgU3ltYm9sCitpbmZvOiB8CisgIEF0b21pY3Mud2FpdEFzeW5j
KCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVybiBEb1dh
aXQoYXN5bmMsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAgRG9XYWl0
ICggbW9kZSwgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICA1LiBPdGhl
cndpc2UsIGxldCB2IGJlID8gVG9JbnQzMih2YWx1ZSkuCisKKyAgVG9JbnQzMih2YWx1ZSkKKwor
ICAxLkxldCBudW1iZXIgYmUgPyBUb051bWJlcihhcmd1bWVudCkuCisKKyAgICBTeW1ib2wgLS0+
IFRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKworZmxhZ3M6IFthc3luY10KK2luY2x1ZGVz
OiBbYXRvbWljc0hlbHBlci5qc10KK2ZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJl
ZEFycmF5QnVmZmVyLCBTeW1ib2wsIFN5bWJvbC50b1ByaW1pdGl2ZSwgVHlwZWRBcnJheSwgQXRv
bWljcywgQmlnSW50LCBhcnJvdy1mdW5jdGlvbiwgYXN5bmMtZnVuY3Rpb25zXQorLS0tKi8KK2Fz
c2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKK2Nv
bnN0IFJVTk5JTkcgPSAxOworCiskMjYyLmFnZW50LnN0YXJ0KGAKKyAgY29uc3QgcG9pc29uZWRW
YWx1ZU9mID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeworICAgICAgdGhyb3cgbmV3IFRl
c3QyNjJFcnJvcignc2hvdWxkIG5vdCBldmFsdWF0ZSB0aGlzIGNvZGUnKTsKKyAgICB9CisgIH07
CisKKyAgY29uc3QgcG9pc29uZWRUb1ByaW1pdGl2ZSA9IHsKKyAgICBbU3ltYm9sLnRvUHJpbWl0
aXZlXTogZnVuY3Rpb24oKSB7CisgICAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCJwYXNzaW5n
IGEgcG9pc29uZWQgb2JqZWN0IHVzaW5nIEBAVG9QcmltaXRpdmUiKTsKKyAgICB9CisgIH07CisK
KyAgJDI2Mi5hZ2VudC5yZWNlaXZlQnJvYWRjYXN0KGZ1bmN0aW9uKHNhYikgeworICAgIGNvbnN0
IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShzYWIpOworICAgIEF0b21pY3MuYWRkKGk2NGEsICR7
UlVOTklOR30sIDFuKTsKKworICAgIGxldCBzdGF0dXMxID0gIiI7CisgICAgbGV0IHN0YXR1czIg
PSAiIjsKKworICAgIHRyeSB7CisgICAgICBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCBTeW1i
b2woIjEiKSwgcG9pc29uZWRWYWx1ZU9mKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAg
c3RhdHVzMSA9ICdBICcgKyBlcnJvci5uYW1lOworICAgIH0KKyAgICB0cnkgeworICAgICAgQXRv
bWljcy53YWl0QXN5bmMoaTY0YSwgMCwgU3ltYm9sKCIyIiksIHBvaXNvbmVkVG9QcmltaXRpdmUp
OworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICBzdGF0dXMyID0gJ0IgJyArIGVycm9yLm5h
bWU7CisgICAgfQorCisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoc3RhdHVzMSk7CisgICAgJDI2Mi5h
Z2VudC5yZXBvcnQoc3RhdHVzMik7CisgICAgJDI2Mi5hZ2VudC5sZWF2aW5nKCk7CisgIH0pOwor
YCk7CisKK2NvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShuZXcgU2hhcmVkQXJyYXlCdWZm
ZXIoQmlnSW50NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQpKTsKKworJDI2Mi5hZ2VudC5z
YWZlQnJvYWRjYXN0QXN5bmMoaTY0YSwgUlVOTklORywgMW4pLnRoZW4oYXN5bmMgYWdlbnRDb3Vu
dCA9PiB7CisgIGFzc2VydC5zYW1lVmFsdWUoYWdlbnRDb3VudCwgMW4pOworCisgIGFzc2VydC5z
YW1lVmFsdWUoCisgICAgYXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAgICdB
IFR5cGVFcnJvcicsCisgICAgJ0F0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIFN5bWJvbCgiMSIp
LCAuLi4pIHRocm93cyBUeXBlRXJyb3InCisgICk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAg
ICBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5jKCksCisgICAgJ0IgVHlwZUVycm9yJywK
KyAgICAnQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgU3ltYm9sKCIyIiksIC4uLikgdGhyb3dz
IFR5cGVFcnJvcicKKyAgKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2
NGEsIDApLCAwLCAnQXRvbWljcy5ub3RpZnkoaTY0YSwgMCkgcmV0dXJucyAwJyk7Cit9KS50aGVu
KCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3N5bWJvbC1mb3ItdmFsdWUtdGhyb3dzLmpzIGIv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9z
eW1ib2wtZm9yLXZhbHVlLXRocm93cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDA4YWQyZjIxOTFhODU4YWFl
ZmJjNDY0NjVmNzk4YzM1Mzc5MTljCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC9zeW1ib2wtZm9yLXZhbHVl
LXRocm93cy5qcwpAQCAtMCwwICsxLDU3IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBX
YWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5
IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNp
ZDogc2VjLWF0b21pY3Mud2FpdGFzeW5jCitkZXNjcmlwdGlvbjogPgorICBUaHJvd3MgYSBUeXBl
RXJyb3IgaWYgdmFsdWUgYXJnIGlzIGEgU3ltYm9sCitpbmZvOiB8CisgIEF0b21pY3Mud2FpdEFz
eW5jKCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVybiBE
b1dhaXQoYXN5bmMsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAgRG9X
YWl0ICggbW9kZSwgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICA1LiBP
dGhlcndpc2UsIGxldCB2IGJlID8gVG9JbnQzMih2YWx1ZSkuCisKKyAgVG9JbnQzMih2YWx1ZSkK
KworICAxLkxldCBudW1iZXIgYmUgPyBUb051bWJlcihhcmd1bWVudCkuCisKKyAgICBTeW1ib2wg
LS0+IFRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKworZmVhdHVyZXM6IFtBdG9taWNzLndh
aXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFN5bWJvbCwgU3ltYm9sLnRvUHJpbWl0aXZlLCBU
eXBlZEFycmF5LCBjb21wdXRlZC1wcm9wZXJ0eS1uYW1lcywgQXRvbWljcywgQmlnSW50XQorLS0t
Ki8KK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAnZnVuY3Rpb24n
KTsKK2NvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheSgKKyAgbmV3IFNoYXJlZEFycmF5QnVm
ZmVyKEJpZ0ludDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiA0KQorKTsKKworY29uc3QgcG9p
c29uZWRWYWx1ZU9mID0geworICB2YWx1ZU9mKCkgeworICAgIHRocm93IG5ldyBUZXN0MjYyRXJy
b3IoJ3Nob3VsZCBub3QgZXZhbHVhdGUgdGhpcyBjb2RlJyk7CisgIH0KK307CisKK2NvbnN0IHBv
aXNvbmVkVG9QcmltaXRpdmUgPSB7CisgIFtTeW1ib2wudG9QcmltaXRpdmVdKCkgeworICAgIHRo
cm93IG5ldyBUZXN0MjYyRXJyb3IoInBhc3NpbmcgYSBwb2lzb25lZCBvYmplY3QgdXNpbmcgQEBU
b1ByaW1pdGl2ZSIpOworICB9Cit9OworCithc3NlcnQudGhyb3dzKFRlc3QyNjJFcnJvciwgZnVu
Y3Rpb24oKSB7CisgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIHBvaXNvbmVkVmFsdWVPZiwg
cG9pc29uZWRWYWx1ZU9mKTsKK30sICdgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgcG9pc29u
ZWRWYWx1ZU9mLCBwb2lzb25lZFZhbHVlT2YpYCB0aHJvd3MgVGVzdDI2MkVycm9yJyk7CisKK2Fz
c2VydC50aHJvd3MoVGVzdDI2MkVycm9yLCBmdW5jdGlvbigpIHsKKyAgQXRvbWljcy53YWl0QXN5
bmMoaTY0YSwgMCwgcG9pc29uZWRUb1ByaW1pdGl2ZSwgcG9pc29uZWRUb1ByaW1pdGl2ZSk7Cit9
LCAnYEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIHBvaXNvbmVkVG9QcmltaXRpdmUsIHBvaXNv
bmVkVG9QcmltaXRpdmUpYCB0aHJvd3MgVGVzdDI2MkVycm9yJyk7CisKK2Fzc2VydC50aHJvd3Mo
VHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgU3lt
Ym9sKCJmb28iKSwgcG9pc29uZWRWYWx1ZU9mKTsKK30sICdgQXRvbWljcy53YWl0QXN5bmMoaTY0
YSwgMCwgU3ltYm9sKCJmb28iKSwgcG9pc29uZWRWYWx1ZU9mKWAgdGhyb3dzIFR5cGVFcnJvcicp
OworCithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIEF0b21pY3Mud2Fp
dEFzeW5jKGk2NGEsIDAsIFN5bWJvbCgiZm9vIiksIHBvaXNvbmVkVG9QcmltaXRpdmUpOworfSwg
J2BBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCBTeW1ib2woImZvbyIpLCBwb2lzb25lZFRvUHJp
bWl0aXZlKWAgdGhyb3dzIFR5cGVFcnJvcicpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3RydWUtZm9yLXRpbWVv
dXQtYWdlbnQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0
QXN5bmMvYmlnaW50L3RydWUtZm9yLXRpbWVvdXQtYWdlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM4MjM5
ZTRhYmFiM2U0OTY2MWVkZmU0NGNjYWUxZDBhMWQyZDQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvdHJ1
ZS1mb3ItdGltZW91dC1hZ2VudC5qcwpAQCAtMCwwICsxLDcwIEBACisvLyBDb3B5cmlnaHQgKEMp
IDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlz
IGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgor
LyotLS0KK2VzaWQ6IHNlYy1hdG9taWNzLndhaXRhc3luYworZGVzY3JpcHRpb246ID4KKyAgVHJ1
ZSB0aW1lb3V0IGFyZyBzaG91bGQgcmVzdWx0IGluIGFuICswIHRpbWVvdXQKK2luZm86IHwKKyAg
QXRvbWljcy53YWl0QXN5bmMoIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisK
KyAgMS4gUmV0dXJuIERvV2FpdChhc3luYywgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1l
b3V0KS4KKworICBEb1dhaXQgKCBtb2RlLCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVv
dXQgKQorCisgIDYuIExldCBxIGJlID8gVG9OdW1iZXIodGltZW91dCkuCisKK2ZsYWdzOiBbYXN5
bmNdCitpbmNsdWRlczogW2F0b21pY3NIZWxwZXIuanNdCitmZWF0dXJlczogW0F0b21pY3Mud2Fp
dEFzeW5jLCBTaGFyZWRBcnJheUJ1ZmZlciwgVHlwZWRBcnJheSwgQXRvbWljcywgQmlnSW50LCBh
cnJvdy1mdW5jdGlvbiwgYXN5bmMtZnVuY3Rpb25zXQorLS0tKi8KK2Fzc2VydC5zYW1lVmFsdWUo
dHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKK2NvbnN0IFJVTk5JTkcgPSAx
OworCiskMjYyLmFnZW50LnN0YXJ0KGAKKyAgY29uc3QgdmFsdWVPZiA9IHsKKyAgICB2YWx1ZU9m
KCkgeworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICB9OworCisgIGNvbnN0IHRvUHJpbWl0
aXZlID0geworICAgIFtTeW1ib2wudG9QcmltaXRpdmVdKCkgeworICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICB9OworCisgICQyNjIuYWdlbnQucmVjZWl2ZUJyb2FkY2FzdChhc3luYyAoc2Fi
KSA9PiB7CisgICAgY29uc3QgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KHNhYik7CisgICAgQXRv
bWljcy5hZGQoaTY0YSwgJHtSVU5OSU5HfSwgMW4pOworICAgICQyNjIuYWdlbnQucmVwb3J0KGF3
YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB0cnVlKS52YWx1ZSk7CisgICAgJDI2
Mi5hZ2VudC5yZXBvcnQoYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHZhbHVl
T2YpLnZhbHVlKTsKKyAgICAkMjYyLmFnZW50LnJlcG9ydChhd2FpdCBBdG9taWNzLndhaXRBc3lu
YyhpNjRhLCAwLCAwbiwgdG9QcmltaXRpdmUpLnZhbHVlKTsKKyAgICAkMjYyLmFnZW50LmxlYXZp
bmcoKTsKKyAgfSk7CitgKTsKKworY29uc3QgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KG5ldyBT
aGFyZWRBcnJheUJ1ZmZlcihCaWdJbnQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkpOwor
CiskMjYyLmFnZW50LnNhZmVCcm9hZGNhc3RBc3luYyhpNjRhLCBSVU5OSU5HLCAxbikudGhlbihh
c3luYyBhZ2VudENvdW50ID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShhZ2VudENvdW50LCAxbik7
CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFz
eW5jKCksCisgICAgJ3RpbWVkLW91dCcsCisgICAgJ2F3YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2
NGEsIDAsIDBuLCBmYWxzZSkudmFsdWUgcmVzb2x2ZXMgdG8gInRpbWVkLW91dCInCisgICk7CisK
KyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5j
KCksCisgICAgJ3RpbWVkLW91dCcsCisgICAgJ2F3YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEs
IDAsIDBuLCB2YWx1ZU9mKS52YWx1ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicKKyAgKTsKKwor
ICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMo
KSwKKyAgICAndGltZWQtb3V0JywKKyAgICAnYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwg
MCwgMG4sIHRvUHJpbWl0aXZlKS52YWx1ZSByZXNvbHZlcyB0byAidGltZWQtb3V0IicKKyAgKTsK
KworICBhc3NlcnQuc2FtZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2NGEsIDApLCAwLCAnQXRvbWlj
cy5ub3RpZnkoaTY0YSwgMCkgcmV0dXJucyAwJyk7Cit9KS50aGVuKCRET05FLCAkRE9ORSk7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5
bmMvYmlnaW50L3RydWUtZm9yLXRpbWVvdXQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3RydWUtZm9yLXRpbWVvdXQuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjNkZGViNWVjYmViYWMxZDBkMDIzNGNlNDJjM2NlNDdiNWI3MzYwNAotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3lu
Yy9iaWdpbnQvdHJ1ZS1mb3ItdGltZW91dC5qcwpAQCAtMCwwICsxLDQ0IEBACisvLyBDb3B5cmln
aHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBj
b2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBm
aWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hdG9taWNzLndhaXRhc3luYworZGVzY3JpcHRpb246ID4K
KyAgVGhyb3dzIGEgVHlwZUVycm9yIGlmIGluZGV4IGFyZyBjYW4gbm90IGJlIGNvbnZlcnRlZCB0
byBhbiBJbnRlZ2VyCitpbmZvOiB8CisgIEF0b21pY3Mud2FpdEFzeW5jKCB0eXBlZEFycmF5LCBp
bmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVybiBEb1dhaXQoYXN5bmMsIHR5cGVk
QXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAgRG9XYWl0ICggbW9kZSwgdHlwZWRB
cnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICA2LiBMZXQgcSBiZSA/IFRvTnVtYmVy
KHRpbWVvdXQpLgorCisgICAgQm9vbGVhbiAtPiBJZiBhcmd1bWVudCBpcyB0cnVlLCByZXR1cm4g
MS4gSWYgYXJndW1lbnQgaXMgZmFsc2UsIHJldHVybiArMC4KKworZmxhZ3M6IFthc3luY10KK2Zl
YXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBUeXBlZEFycmF5
LCBBdG9taWNzLCBCaWdJbnQsIGNvbXB1dGVkLXByb3BlcnR5LW5hbWVzLCBTeW1ib2wsIFN5bWJv
bC50b1ByaW1pdGl2ZSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworYXNzZXJ0LnNhbWVWYWx1ZSh0
eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworY29uc3QgaTY0YSA9IG5ldyBC
aWdJbnQ2NEFycmF5KG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihCaWdJbnQ2NEFycmF5LkJZVEVTX1BF
Ul9FTEVNRU5UICogNCkpOworCitjb25zdCB2YWx1ZU9mID0geworICB2YWx1ZU9mKCkgeworICAg
IHJldHVybiB0cnVlOworICB9Cit9OworCitjb25zdCB0b1ByaW1pdGl2ZSA9IHsKKyAgW1N5bWJv
bC50b1ByaW1pdGl2ZV0oKSB7CisgICAgcmV0dXJuIHRydWU7CisgIH0KK307CisKK1Byb21pc2Uu
YWxsKFsKKyAgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4sIHRydWUpLnZhbHVlLAorICBB
dG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdmFsdWVPZikudmFsdWUsCisgIEF0b21pY3Mu
d2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB0b1ByaW1pdGl2ZSkudmFsdWUKK10pLnRoZW4ob3V0Y29t
ZXMgPT4geworICBhc3NlcnQuc2FtZVZhbHVlKG91dGNvbWVzWzBdLCAndGltZWQtb3V0Jyk7Cisg
IGFzc2VydC5zYW1lVmFsdWUob3V0Y29tZXNbMV0sICd0aW1lZC1vdXQnKTsKKyAgYXNzZXJ0LnNh
bWVWYWx1ZShvdXRjb21lc1syXSwgJ3RpbWVkLW91dCcpOworfSwgJERPTkUpLnRoZW4oJERPTkUs
ICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9t
aWNzL3dhaXRBc3luYy9iaWdpbnQvdW5kZWZpbmVkLWZvci10aW1lb3V0LWFnZW50LmpzIGIvSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC91bmRl
ZmluZWQtZm9yLXRpbWVvdXQtYWdlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThiZjg3MzQ3NDRlNzRiNDk0
NTI5ZmFiODEwZGQwMDg0MjIxNmRkNgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvdW5kZWZpbmVkLWZvci10
aW1lb3V0LWFnZW50LmpzCkBAIC0wLDAgKzEsNzcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBS
aWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0t
Citlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2NyaXB0aW9uOiA+CisgIFVuZGVmaW5l
ZCB0aW1lb3V0IGFyZyBpcyBjb2VyY2VkIHRvIHplcm8KK2luZm86IHwKKyAgQXRvbWljcy53YWl0
QXN5bmMoIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgMS4gUmV0dXJu
IERvV2FpdChhc3luYywgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0KS4KKworICBE
b1dhaXQgKCBtb2RlLCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDYu
IExldCBxIGJlID8gVG9OdW1iZXIodGltZW91dCkuCisgICAgLi4uCisgICAgVW5kZWZpbmVkICAg
IFJldHVybiBOYU4uCisKKyAgNS5JZiBxIGlzIE5hTiwgbGV0IHQgYmUgK+KIniwgZWxzZSBsZXQg
dCBiZSBtYXgocSwgMCkKKworZmxhZ3M6IFthc3luY10KK2luY2x1ZGVzOiBbYXRvbWljc0hlbHBl
ci5qc10KK2ZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBU
eXBlZEFycmF5LCBBdG9taWNzLCBCaWdJbnQsIGFycm93LWZ1bmN0aW9uLCBhc3luYy1mdW5jdGlv
bnNdCistLS0qLworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdm
dW5jdGlvbicpOworCitjb25zdCBXQUlUX0lOREVYID0gMDsKK2NvbnN0IFJVTk5JTkcgPSAxOwor
Y29uc3QgTlVNQUdFTlQgPSAyOworY29uc3QgTk9USUZZQ09VTlQgPSAyOworCiskMjYyLmFnZW50
LnN0YXJ0KGAKKyAgJDI2Mi5hZ2VudC5yZWNlaXZlQnJvYWRjYXN0KGFzeW5jIChzYWIpID0+IHsK
KyAgICB2YXIgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KHNhYik7CisgICAgQXRvbWljcy5hZGQo
aTY0YSwgJHtSVU5OSU5HfSwgMW4pOworCisgICAgLy8gdW5kZWZpbmVkID0+IE5hTiA9PiArSW5m
aW5pdHkKKyAgICAkMjYyLmFnZW50LnJlcG9ydCgiQSAiICsgKGF3YWl0IEF0b21pY3Mud2FpdEFz
eW5jKGk2NGEsIDAsIDBuLCB1bmRlZmluZWQpLnZhbHVlKSk7CisgICAgJDI2Mi5hZ2VudC5sZWF2
aW5nKCk7CisgIH0pOworYCk7CisKKyQyNjIuYWdlbnQuc3RhcnQoYAorICAkMjYyLmFnZW50LnJl
Y2VpdmVCcm9hZGNhc3QoYXN5bmMgKHNhYikgPT4geworICAgIHZhciBpNjRhID0gbmV3IEJpZ0lu
dDY0QXJyYXkoc2FiKTsKKyAgICBBdG9taWNzLmFkZChpNjRhLCAke1JVTk5JTkd9LCAxbik7CisK
KyAgICAvLyB1bmRlZmluZWQgdGltZW91dCBhcmcgPT4gTmFOID0+ICtJbmZpbml0eQorICAgICQy
NjIuYWdlbnQucmVwb3J0KCJCICIgKyAoYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwg
MG4pLnZhbHVlKSk7CisgICAgJDI2Mi5hZ2VudC5sZWF2aW5nKCk7CisgIH0pOworYCk7CisKK2Nv
bnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheSgKKyAgbmV3IFNoYXJlZEFycmF5QnVmZmVyKEJp
Z0ludDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiA0KQorKTsKKworJDI2Mi5hZ2VudC5zYWZl
QnJvYWRjYXN0QXN5bmMoaTY0YSwgUlVOTklORywgQmlnSW50KE5VTUFHRU5UKSkudGhlbihhc3lu
YyAoYWdlbnRDb3VudCkgPT4geworCisgIGFzc2VydC5zYW1lVmFsdWUoYWdlbnRDb3VudCwgQmln
SW50KE5VTUFHRU5UKSk7CisKKyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICBBdG9taWNzLm5vdGlm
eShpNjRhLCBXQUlUX0lOREVYLCBOT1RJRllDT1VOVCksCisgICAgTk9USUZZQ09VTlQsCisgICAg
J0F0b21pY3Mubm90aWZ5KGk2NGEsIFdBSVRfSU5ERVgsIE5PVElGWUNPVU5UKSByZXR1cm5zIHRo
ZSB2YWx1ZSBvZiBgTk9USUZZQ09VTlRgICgyKScKKyAgKTsKKworICBjb25zdCByZXBvcnRzID0g
WworICAgIGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwKKyAgICBhd2FpdCAkMjYy
LmFnZW50LmdldFJlcG9ydEFzeW5jKCksCisgIF07CisKKyAgcmVwb3J0cy5zb3J0KCk7CisgIGFz
c2VydC5zYW1lVmFsdWUocmVwb3J0c1swXSwgJ0Egb2snLCAnVGhlIHZhbHVlIG9mIHJlcG9ydHNb
MF0gaXMgIkEgb2siJyk7CisgIGFzc2VydC5zYW1lVmFsdWUocmVwb3J0c1sxXSwgJ0Igb2snLCAn
VGhlIHZhbHVlIG9mIHJlcG9ydHNbMV0gaXMgIkIgb2siJyk7Cit9KS50aGVuKCRET05FLCAkRE9O
RSk7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNz
L3dhaXRBc3luYy9iaWdpbnQvdW5kZWZpbmVkLWZvci10aW1lb3V0LmpzIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC91bmRlZmluZWQtZm9y
LXRpbWVvdXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNiNmFlOWVjZGI1YmRiNDY0NDc5NWZjNDJkMmI5NWRh
MTcyZTRlMwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvdW5kZWZpbmVkLWZvci10aW1lb3V0LmpzCkBAIC0w
LDAgKzEsNjAgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLWF0b21pY3Mud2Fp
dGFzeW5jCitkZXNjcmlwdGlvbjogPgorICBVbmRlZmluZWQgdGltZW91dCBhcmcgaXMgY29lcmNl
ZCB0byB6ZXJvCitpbmZvOiB8CisgIEF0b21pY3Mud2FpdEFzeW5jKCB0eXBlZEFycmF5LCBpbmRl
eCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVybiBEb1dhaXQoYXN5bmMsIHR5cGVkQXJy
YXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAgRG9XYWl0ICggbW9kZSwgdHlwZWRBcnJh
eSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICA2LiBMZXQgcSBiZSA/IFRvTnVtYmVyKHRp
bWVvdXQpLgorICAgIC4uLgorICAgIFVuZGVmaW5lZCAgICBSZXR1cm4gTmFOLgorCisgIDUuSWYg
cSBpcyBOYU4sIGxldCB0IGJlICviiJ4sIGVsc2UgbGV0IHQgYmUgbWF4KHEsIDApCisKK2ZsYWdz
OiBbYXN5bmNdCitpbmNsdWRlczogW2F0b21pY3NIZWxwZXIuanNdCitmZWF0dXJlczogW0F0b21p
Y3Mud2FpdEFzeW5jLCBTaGFyZWRBcnJheUJ1ZmZlciwgVHlwZWRBcnJheSwgQXRvbWljcywgQmln
SW50LCBjb21wdXRlZC1wcm9wZXJ0eS1uYW1lcywgU3ltYm9sLCBTeW1ib2wudG9QcmltaXRpdmUs
IGFycm93LWZ1bmN0aW9uXQorLS0tKi8KK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mu
d2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKK2NvbnN0IGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShu
ZXcgU2hhcmVkQXJyYXlCdWZmZXIoQmlnSW50NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQp
KTsKKworJDI2Mi5hZ2VudC5zdGFydChgCisgICQyNjIuYWdlbnQucmVjZWl2ZUJyb2FkY2FzdChh
c3luYyAoc2FiKSA9PiB7CisgICAgdmFyIGk2NGEgPSBuZXcgQmlnSW50NjRBcnJheShzYWIpOwor
ICAgICQyNjIuYWdlbnQuc2xlZXAoMTAwMCk7CisgICAgQXRvbWljcy5ub3RpZnkoaTY0YSwgMCwg
NCk7CisgICAgJDI2Mi5hZ2VudC5sZWF2aW5nKCk7CisgIH0pOworYCk7CisKKyQyNjIuYWdlbnQu
c2FmZUJyb2FkY2FzdChpNjRhKTsKKworY29uc3QgdmFsdWVPZiA9IHsKKyAgdmFsdWVPZigpIHsK
KyAgICByZXR1cm4gdW5kZWZpbmVkOworICB9Cit9OworCitjb25zdCB0b1ByaW1pdGl2ZSA9IHsK
KyAgW1N5bWJvbC50b1ByaW1pdGl2ZV0oKSB7CisgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgfQor
fTsKKworUHJvbWlzZS5hbGwoWworICBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbikudmFs
dWUsCisgIEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB1bmRlZmluZWQpLnZhbHVlLAor
ICBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgdmFsdWVPZikudmFsdWUsCisgIEF0b21p
Y3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCB0b1ByaW1pdGl2ZSkudmFsdWUKK10pLnRoZW4ob3V0
Y29tZXMgPT4geworICBhc3NlcnQuc2FtZVZhbHVlKG91dGNvbWVzWzBdLCAnb2snKTsKKyAgYXNz
ZXJ0LnNhbWVWYWx1ZShvdXRjb21lc1sxXSwgJ29rJyk7CisgIGFzc2VydC5zYW1lVmFsdWUob3V0
Y29tZXNbMl0sICdvaycpOworICBhc3NlcnQuc2FtZVZhbHVlKG91dGNvbWVzWzNdLCAnb2snKTsK
K30sICRET05FKS50aGVuKCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3VuZGVmaW5lZC1pbmRl
eC1kZWZhdWx0cy10by16ZXJvLWFnZW50LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC91bmRlZmluZWQtaW5kZXgtZGVmYXVsdHMtdG8t
emVyby1hZ2VudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjJjODc0MWM2M2MzY2VmZDA5NDhjMDkzZmY0ZWMx
MTY0MGNhYzcwCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC91bmRlZmluZWQtaW5kZXgtZGVmYXVsdHMtdG8t
emVyby1hZ2VudC5qcwpAQCAtMCwwICsxLDc5IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmlj
ayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVk
IGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2Vz
aWQ6IHNlYy1hdG9taWNzLndhaXRhc3luYworZGVzY3JpcHRpb246ID4KKyAgVW5kZWZpbmVkIGlu
ZGV4IGFyZyBpcyBjb2VyY2VkIHRvIHplcm8KK2luZm86IHwKKyAgQXRvbWljcy53YWl0QXN5bmMo
IHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCApCisKKyAgMS4gUmV0dXJuIERvV2Fp
dChhc3luYywgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0KS4KKworICBEb1dhaXQg
KCBtb2RlLCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDIuIExldCBp
IGJlID8gVmFsaWRhdGVBdG9taWNBY2Nlc3ModHlwZWRBcnJheSwgaW5kZXgpLgorICAgICAgLi4u
CisgICAgICAyLkxldCBhY2Nlc3NJbmRleCBiZSA/IFRvSW5kZXgocmVxdWVzdEluZGV4KS4KKwor
ICAgICAgOS5JZiBJc1NoYXJlZEFycmF5QnVmZmVyKGJ1ZmZlcikgaXMgZmFsc2UsIHRocm93IGEg
VHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgICAgICAgLi4uCisgICAgICAgICAgMy5JZiBidWZmZXJE
YXRhIGlzIGEgRGF0YSBCbG9jaywgcmV0dXJuIGZhbHNlCisKKyAgICAgICAgICBJZiB2YWx1ZSBp
cyB1bmRlZmluZWQsIHRoZW4KKyAgICAgICAgICBMZXQgaW5kZXggYmUgMC4KKworZmxhZ3M6IFth
c3luY10KK2luY2x1ZGVzOiBbYXRvbWljc0hlbHBlci5qc10KK2ZlYXR1cmVzOiBbQXRvbWljcy53
YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBUeXBlZEFycmF5LCBBdG9taWNzLCBCaWdJbnQs
IGFycm93LWZ1bmN0aW9uLCBhc3luYy1mdW5jdGlvbnNdCistLS0qLworYXNzZXJ0LnNhbWVWYWx1
ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworCitjb25zdCBXQUlUX0lO
REVYID0gMDsKK2NvbnN0IFJVTk5JTkcgPSAxOworY29uc3QgTlVNQUdFTlQgPSAyOworY29uc3Qg
Tk9USUZZQ09VTlQgPSAyOworCiskMjYyLmFnZW50LnN0YXJ0KGAKKyAgJDI2Mi5hZ2VudC5yZWNl
aXZlQnJvYWRjYXN0KGFzeW5jIChzYWIpID0+IHsKKyAgICB2YXIgaTY0YSA9IG5ldyBCaWdJbnQ2
NEFycmF5KHNhYik7CisgICAgQXRvbWljcy5hZGQoaTY0YSwgJHtSVU5OSU5HfSwgMW4pOworCisg
ICAgJDI2Mi5hZ2VudC5yZXBvcnQoIkEgIiArIChhd2FpdCBBdG9taWNzLndhaXRBc3luYyhpNjRh
LCB1bmRlZmluZWQsIDBuKS52YWx1ZSkpOworICAgICQyNjIuYWdlbnQubGVhdmluZygpOworICB9
KTsKK2ApOworCiskMjYyLmFnZW50LnN0YXJ0KGAKKyAgJDI2Mi5hZ2VudC5yZWNlaXZlQnJvYWRj
YXN0KGFzeW5jIChzYWIpID0+IHsKKyAgICB2YXIgaTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KHNh
Yik7CisgICAgQXRvbWljcy5hZGQoaTY0YSwgJHtSVU5OSU5HfSwgMW4pOworCisgICAgJDI2Mi5h
Z2VudC5yZXBvcnQoIkIgIiArIChhd2FpdCBBdG9taWNzLndhaXRBc3luYyhpNjRhLCB1bmRlZmlu
ZWQsIDBuKS52YWx1ZSkpOworICAgICQyNjIuYWdlbnQubGVhdmluZygpOworICB9KTsKK2ApOwor
Citjb25zdCBpNjRhID0gbmV3IEJpZ0ludDY0QXJyYXkoCisgIG5ldyBTaGFyZWRBcnJheUJ1ZmZl
cihCaWdJbnQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkKKyk7CisKKyQyNjIuYWdlbnQu
c2FmZUJyb2FkY2FzdEFzeW5jKGk2NGEsIFJVTk5JTkcsIEJpZ0ludChOVU1BR0VOVCkpLnRoZW4o
YXN5bmMgKGFnZW50Q291bnQpID0+IHsKKworICBhc3NlcnQuc2FtZVZhbHVlKGFnZW50Q291bnQs
IEJpZ0ludChOVU1BR0VOVCkpOworCisgIGFzc2VydC5zYW1lVmFsdWUoCisgICAgQXRvbWljcy5u
b3RpZnkoaTY0YSwgV0FJVF9JTkRFWCwgTk9USUZZQ09VTlQpLAorICAgIE5PVElGWUNPVU5ULAor
ICAgICdBdG9taWNzLm5vdGlmeShpNjRhLCBXQUlUX0lOREVYLCBOT1RJRllDT1VOVCkgcmV0dXJu
cyB0aGUgdmFsdWUgb2YgYE5PVElGWUNPVU5UYCAoMiknCisgICk7CisKKyAgY29uc3QgcmVwb3J0
cyA9IFsKKyAgICBhd2FpdCAkMjYyLmFnZW50LmdldFJlcG9ydEFzeW5jKCksCisgICAgYXdhaXQg
JDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICBdOworCisgIHJlcG9ydHMuc29ydCgpOwor
ICBhc3NlcnQuc2FtZVZhbHVlKHJlcG9ydHNbMF0sICdBIG9rJywgJ1RoZSB2YWx1ZSBvZiByZXBv
cnRzWzBdIGlzICJBIG9rIicpOworICBhc3NlcnQuc2FtZVZhbHVlKHJlcG9ydHNbMV0sICdCIG9r
JywgJ1RoZSB2YWx1ZSBvZiByZXBvcnRzWzFdIGlzICJCIG9rIicpOworfSkudGhlbigkRE9ORSwg
JERPTkUpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRv
bWljcy93YWl0QXN5bmMvYmlnaW50L3ZhbHVlLW5vdC1lcXVhbC1hZ2VudC5qcyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvdmFsdWUtbm90
LWVxdWFsLWFnZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlOGQ1YjFjMzc2YTgwYTg2ZGE5YTBiMTQ4NDdl
MGQ5OTA1MTcwODcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3ZhbHVlLW5vdC1lcXVhbC1hZ2VudC5qcwpA
QCAtMCwwICsxLDYyIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGlj
ZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hdG9taWNz
LndhaXRhc3luYworZGVzY3JpcHRpb246ID4KKyAgUmV0dXJucyAibm90LWVxdWFsIiB3aGVuIHZh
bHVlIGFyZyBkb2VzIG5vdCBtYXRjaCBhbiBpbmRleCBpbiB0aGUgdHlwZWRBcnJheQoraW5mbzog
fAorICBBdG9taWNzLndhaXRBc3luYyggdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0
ICkKKworICAxLiBSZXR1cm4gRG9XYWl0KGFzeW5jLCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUs
IHRpbWVvdXQpLgorCisgIERvV2FpdCAoIG1vZGUsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwg
dGltZW91dCApCisKKyAgMTYuIExldCB3IGJlICEgQXRvbWljTG9hZCh0eXBlZEFycmF5LCBpKS4K
KyAgMTcuIElmIHYgaXMgbm90IGVxdWFsIHRvIHcsIHRoZW4KKyAgICBhLiBQZXJmb3JtIExlYXZl
Q3JpdGljYWxTZWN0aW9uKFdMKS4KKyAgICBiLiBJZiBtb2RlIGlzIHN5bmMsIHRoZW4KKyAgICAg
IGkuIFJldHVybiB0aGUgU3RyaW5nICJub3QtZXF1YWwiLgorICAgIGMuIFBlcmZvcm0gISBDYWxs
KGNhcGFiaWxpdHkuW1tSZXNvbHZlXV0sIHVuZGVmaW5lZCwgwqsgIm5vdC1lcXVhbCIgwrspLgor
ICAgIGQuIFJldHVybiBwcm9taXNlQ2FwYWJpbGl0eS5bW1Byb21pc2VdXS4KKworZmxhZ3M6IFth
c3luY10KK2luY2x1ZGVzOiBbYXRvbWljc0hlbHBlci5qc10KK2ZlYXR1cmVzOiBbQXRvbWljcy53
YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBUeXBlZEFycmF5LCBBdG9taWNzLCBCaWdJbnQs
IGFycm93LWZ1bmN0aW9uLCBhc3luYy1mdW5jdGlvbnNdCistLS0qLworYXNzZXJ0LnNhbWVWYWx1
ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworY29uc3QgUlVOTklORyA9
IDE7Citjb25zdCB2YWx1ZSA9IDQybjsKKworJDI2Mi5hZ2VudC5zdGFydChgCisgICQyNjIuYWdl
bnQucmVjZWl2ZUJyb2FkY2FzdChmdW5jdGlvbihzYWIpIHsKKyAgICBjb25zdCBpNjRhID0gbmV3
IEJpZ0ludDY0QXJyYXkoc2FiKTsKKyAgICBBdG9taWNzLmFkZChpNjRhLCAke1JVTk5JTkd9LCAx
bik7CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoQXRvbWljcy5zdG9yZShpNjRhLCAwLCA0Mm4pKTsK
KyAgICAkMjYyLmFnZW50LnJlcG9ydChBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbikudmFs
dWUpOworICAgICQyNjIuYWdlbnQubGVhdmluZygpOworICB9KTsKK2ApOworCitjb25zdCBpNjRh
ID0gbmV3IEJpZ0ludDY0QXJyYXkobmV3IFNoYXJlZEFycmF5QnVmZmVyKEJpZ0ludDY0QXJyYXku
QllURVNfUEVSX0VMRU1FTlQgKiA0KSk7CisKKyQyNjIuYWdlbnQuc2FmZUJyb2FkY2FzdEFzeW5j
KGk2NGEsIFJVTk5JTkcsIDFuKS50aGVuKGFzeW5jIGFnZW50Q291bnQgPT4geworICBhc3NlcnQu
c2FtZVZhbHVlKGFnZW50Q291bnQsIDFuKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIGF3
YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwKKyAgICB2YWx1ZS50b1N0cmluZygpLAor
ICAgICdBdG9taWNzLnN0b3JlKGk2NGEsIDAsIDQybikgcmV0dXJucyA0MicKKyAgKTsKKworICBh
c3NlcnQuc2FtZVZhbHVlKAorICAgIGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwK
KyAgICAnbm90LWVxdWFsJywKKyAgICAnQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMCwgMG4pLnZh
bHVlIHJlc29sdmVzIHRvICJub3QtZXF1YWwiJworICApOworCisgIGFzc2VydC5zYW1lVmFsdWUo
CisgICAgQXRvbWljcy5ub3RpZnkoaTY0YSwgMCwgMSksCisgICAgMCwKKyAgICAnQXRvbWljcy5u
b3RpZnkoaTY0YSwgMCwgMSkgcmV0dXJucyAwIChub3RoaW5nIHRvIG5vdGlmeSknCisgICk7Cit9
KS50aGVuKCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3ZhbHVlLW5vdC1lcXVhbC5qcyBiL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvdmFs
dWUtbm90LWVxdWFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZGZkNmZjNmM0ZGQ4NDA2NmU2ZmRhMWMzMTc4
MDUzNTE0MTgwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3ZhbHVlLW5vdC1lcXVhbC5qcwpAQCAtMCww
ICsxLDQzIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hdG9taWNzLndhaXRh
c3luYworZGVzY3JpcHRpb246ID4KKyAgUmV0dXJucyAibm90LWVxdWFsIiB3aGVuIHZhbHVlIGFy
ZyBkb2VzIG5vdCBtYXRjaCBhbiBpbmRleCBpbiB0aGUgdHlwZWRBcnJheQoraW5mbzogfAorICBB
dG9taWNzLndhaXRBc3luYyggdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKwor
ICAxLiBSZXR1cm4gRG9XYWl0KGFzeW5jLCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVv
dXQpLgorCisgIERvV2FpdCAoIG1vZGUsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91
dCApCisKKyAgMTYuIExldCB3IGJlICEgQXRvbWljTG9hZCh0eXBlZEFycmF5LCBpKS4KKyAgMTcu
IElmIHYgaXMgbm90IGVxdWFsIHRvIHcsIHRoZW4KKyAgICBhLiBQZXJmb3JtIExlYXZlQ3JpdGlj
YWxTZWN0aW9uKFdMKS4KKyAgICBiLiBJZiBtb2RlIGlzIHN5bmMsIHRoZW4KKyAgICAgIGkuIFJl
dHVybiB0aGUgU3RyaW5nICJub3QtZXF1YWwiLgorICAgIGMuIFBlcmZvcm0gISBDYWxsKGNhcGFi
aWxpdHkuW1tSZXNvbHZlXV0sIHVuZGVmaW5lZCwgwqsgIm5vdC1lcXVhbCIgwrspLgorICAgIGQu
IFJldHVybiBwcm9taXNlQ2FwYWJpbGl0eS5bW1Byb21pc2VdXS4KKworZmxhZ3M6IFthc3luY10K
K2ZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBUeXBlZEFy
cmF5LCBCaWdJbnQsIGNvbXB1dGVkLXByb3BlcnR5LW5hbWVzLCBTeW1ib2wsIFN5bWJvbC50b1By
aW1pdGl2ZSwgQXRvbWljcywgYXJyb3ctZnVuY3Rpb25dCistLS0qLworYXNzZXJ0LnNhbWVWYWx1
ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworY29uc3QgaTY0YSA9IG5l
dyBCaWdJbnQ2NEFycmF5KG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihCaWdJbnQ2NEFycmF5LkJZVEVT
X1BFUl9FTEVNRU5UICogNCkpOworCitjb25zdCB2YWx1ZU9mID0geworICB2YWx1ZU9mKCkgewor
ICAgIHJldHVybiB1bmRlZmluZWQ7CisgIH0KK307CisKK2NvbnN0IHRvUHJpbWl0aXZlID0gewor
ICBbU3ltYm9sLnRvUHJpbWl0aXZlXSgpIHsKKyAgICByZXR1cm4gdW5kZWZpbmVkOworICB9Cit9
OworCitQcm9taXNlLmFsbChbQXRvbWljcy5zdG9yZShpNjRhLCAwLCA0Mm4pLCBBdG9taWNzLndh
aXRBc3luYyhpNjRhLCAwLCAwbikudmFsdWVdKS50aGVuKG91dGNvbWVzID0+IHsKKyAgYXNzZXJ0
LnNhbWVWYWx1ZShvdXRjb21lc1swXSwgNDJuKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShvdXRjb21l
c1sxXSwgJ25vdC1lcXVhbCcpOworfSwgJERPTkUpLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9i
aWdpbnQvd2FpdGVybGlzdC1ibG9jay1pbmRleGVkcG9zaXRpb24td2FrZS5qcyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvd2FpdGVybGlz
dC1ibG9jay1pbmRleGVkcG9zaXRpb24td2FrZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDYxN2FhYTJiMmNi
ZTc0YThjOWZmMmQ5NTQyNzJjNTFhMzY1NjcwCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2JpZ2ludC93YWl0ZXJsaXN0
LWJsb2NrLWluZGV4ZWRwb3NpdGlvbi13YWtlLmpzCkBAIC0wLDAgKzEsODUgQEAKKy8vIENvcHly
aWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlz
IGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXRvbWljcy53YWl0YXN5bmMKK2Rlc2NyaXB0aW9u
OiA+CisgIEdldCB0aGUgY29ycmVjdCBXYWl0ZXJMaXN0CitpbmZvOiB8CisgIEF0b21pY3Mud2Fp
dEFzeW5jKCB0eXBlZEFycmF5LCBpbmRleCwgdmFsdWUsIHRpbWVvdXQgKQorCisgIDEuIFJldHVy
biBEb1dhaXQoYXN5bmMsIHR5cGVkQXJyYXksIGluZGV4LCB2YWx1ZSwgdGltZW91dCkuCisKKyAg
RG9XYWl0ICggbW9kZSwgdHlwZWRBcnJheSwgaW5kZXgsIHZhbHVlLCB0aW1lb3V0ICkKKworICAx
MS4gTGV0IGluZGV4ZWRQb3NpdGlvbiBiZSAoaSDDlyA0KSArIG9mZnNldC4KKyAgMTIuIExldCBX
TCBiZSBHZXRXYWl0ZXJMaXN0KGJsb2NrLCBpbmRleGVkUG9zaXRpb24pLgorCisgIEdldFdhaXRl
ckxpc3QoIGJsb2NrLCBpICkKKworICAuLi4KKyAgNC4gUmV0dXJuIHRoZSBXYWl0ZXJMaXN0IHRo
YXQgaXMgcmVmZXJlbmNlZCBieSB0aGUgcGFpciAoYmxvY2ssIGkpLgorCitmbGFnczogW2FzeW5j
XQoraW5jbHVkZXM6IFthdG9taWNzSGVscGVyLmpzXQorZmVhdHVyZXM6IFtBdG9taWNzLndhaXRB
c3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFR5cGVkQXJyYXksIEF0b21pY3MsIEJpZ0ludCwgYXJy
b3ctZnVuY3Rpb24sIGFzeW5jLWZ1bmN0aW9uc10KKy0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5
cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7CisKK2NvbnN0IE5VTUFHRU5UID0g
MjsKK2NvbnN0IFJVTk5JTkcgPSA0OworCiskMjYyLmFnZW50LnN0YXJ0KGAKKyAgJDI2Mi5hZ2Vu
dC5yZWNlaXZlQnJvYWRjYXN0KGFzeW5jIChzYWIpID0+IHsKKyAgICBjb25zdCBpNjRhID0gbmV3
IEJpZ0ludDY0QXJyYXkoc2FiKTsKKyAgICBBdG9taWNzLmFkZChpNjRhLCAke1JVTk5JTkd9LCAx
bik7CisKKyAgICAvLyBXYWl0IG9uIGluZGV4IDAKKyAgICAkMjYyLmFnZW50LnJlcG9ydChhd2Fp
dCBBdG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgSW5maW5pdHkpLnZhbHVlKTsKKyAgICAk
MjYyLmFnZW50LmxlYXZpbmcoKTsKKyAgfSk7CitgKTsKKworJDI2Mi5hZ2VudC5zdGFydChgCisg
ICQyNjIuYWdlbnQucmVjZWl2ZUJyb2FkY2FzdChhc3luYyAoc2FiKSA9PiB7CisgICAgY29uc3Qg
aTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KHNhYik7CisgICAgQXRvbWljcy5hZGQoaTY0YSwgJHtS
VU5OSU5HfSwgMW4pOworCisgICAgLy8gV2FpdCBvbiBpbmRleCAyCisgICAgJDI2Mi5hZ2VudC5y
ZXBvcnQoYXdhaXQgQXRvbWljcy53YWl0QXN5bmMoaTY0YSwgMiwgMG4sIEluZmluaXR5KS52YWx1
ZSk7CisgICAgJDI2Mi5hZ2VudC5sZWF2aW5nKCk7CisgIH0pOworYCk7CisKK2NvbnN0IGk2NGEg
PSBuZXcgQmlnSW50NjRBcnJheSgKKyAgbmV3IFNoYXJlZEFycmF5QnVmZmVyKEJpZ0ludDY0QXJy
YXkuQllURVNfUEVSX0VMRU1FTlQgKiA1KQorKTsKKworJDI2Mi5hZ2VudC5zYWZlQnJvYWRjYXN0
QXN5bmMoaTY0YSwgUlVOTklORywgQmlnSW50KE5VTUFHRU5UKSkudGhlbihhc3luYyAoYWdlbnRD
b3VudCkgPT4geworCisgIGFzc2VydC5zYW1lVmFsdWUoYWdlbnRDb3VudCwgQmlnSW50KE5VTUFH
RU5UKSk7CisKKyAgLy8gTm90aWZ5IGluZGV4IDEsIG5vdGlmaWVzIG5vdGhpbmcKKyAgYXNzZXJ0
LnNhbWVWYWx1ZShBdG9taWNzLm5vdGlmeShpNjRhLCAxKSwgMCwgJ0F0b21pY3Mubm90aWZ5KGk2
NGEsIDEpIHJldHVybnMgMCcpOworCisgIC8vIE5vdGlmeSBpbmRleCAzLCBub3RpZmllcyBub3Ro
aW5nCisgIGFzc2VydC5zYW1lVmFsdWUoQXRvbWljcy5ub3RpZnkoaTY0YSwgMyksIDAsICdBdG9t
aWNzLm5vdGlmeShpNjRhLCAzKSByZXR1cm5zIDAnKTsKKworICAvLyBOb3RpZnkgaW5kZXggMiwg
bm90aWZpZXMgMQorICBhc3NlcnQuc2FtZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2NGEsIDIpLCAx
LCAnQXRvbWljcy5ub3RpZnkoaTY0YSwgMikgcmV0dXJucyAxJyk7CisgIGFzc2VydC5zYW1lVmFs
dWUoCisgICAgYXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAgICdvaycsCisg
ICAgJ2F3YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBuLCBJbmZpbml0eSkudmFsdWUg
cmVzb2x2ZXMgdG8gIm9rIicKKyAgKTsKKworICAvLyBOb3RpZnkgaW5kZXggMCwgbm90aWZpZXMg
MQorICBhc3NlcnQuc2FtZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2NGEsIDApLCAxLCAnQXRvbWlj
cy5ub3RpZnkoaTY0YSwgMCkgcmV0dXJucyAxJyk7CisgIGFzc2VydC5zYW1lVmFsdWUoCisgICAg
YXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorICAgICdvaycsCisgICAgJ2F3YWl0
IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDIsIDBuLCBJbmZpbml0eSkudmFsdWUgcmVzb2x2ZXMg
dG8gIm9rIicKKyAgKTsKKworfSkudGhlbigkRE9ORSwgJERPTkUpOworCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvYmlnaW50L3dh
cy13b2tlbi1iZWZvcmUtdGltZW91dC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9BdG9taWNzL3dhaXRBc3luYy9iaWdpbnQvd2FzLXdva2VuLWJlZm9yZS10aW1lb3V0LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNmNGE3ZjFmZjMyZGQxYzY1OGU4ZjZiNmI5YzEwNTk0NzZiNjkwMzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0
QXN5bmMvYmlnaW50L3dhcy13b2tlbi1iZWZvcmUtdGltZW91dC5qcwpAQCAtMCwwICsxLDQ2IEBA
CisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hdG9taWNzLndhaXRhc3luYworZGVz
Y3JpcHRpb246ID4KKyAgVGVzdCB0aGF0IEF0b21pY3Mud2FpdEFzeW5jIHJldHVybnMgdGhlIHJp
Z2h0IHJlc3VsdCB3aGVuIGl0IHdhcyBhd29rZW4gYmVmb3JlCisgIGEgdGltZW91dAorZmxhZ3M6
IFthc3luY10KK2luY2x1ZGVzOiBbYXRvbWljc0hlbHBlci5qc10KK2ZlYXR1cmVzOiBbQXRvbWlj
cy53YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBUeXBlZEFycmF5LCBBdG9taWNzLCBCaWdJ
bnQsIGFycm93LWZ1bmN0aW9uLCBhc3luYy1mdW5jdGlvbnNdCistLS0qLworYXNzZXJ0LnNhbWVW
YWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOworY29uc3QgUlVOTklO
RyA9IDE7Citjb25zdCBUSU1FT1VUID0gJDI2Mi5hZ2VudC50aW1lb3V0cy5odWdlOworY29uc3Qg
aTY0YSA9IG5ldyBCaWdJbnQ2NEFycmF5KG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihCaWdJbnQ2NEFy
cmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkpOworCiskMjYyLmFnZW50LnN0YXJ0KGAKKyAgJDI2
Mi5hZ2VudC5yZWNlaXZlQnJvYWRjYXN0KGFzeW5jIChzYWIpID0+IHsKKyAgICBjb25zdCBpNjRh
ID0gbmV3IEJpZ0ludDY0QXJyYXkoc2FiKTsKKyAgICBBdG9taWNzLmFkZChpNjRhLCAke1JVTk5J
Tkd9LCAxbik7CisKKyAgICBjb25zdCBiZWZvcmUgPSAkMjYyLmFnZW50Lm1vbm90b25pY05vdygp
OworICAgIGNvbnN0IHVucGFyayA9IGF3YWl0IEF0b21pY3Mud2FpdEFzeW5jKGk2NGEsIDAsIDBu
LCAke1RJTUVPVVR9KS52YWx1ZTsKKyAgICBjb25zdCBkdXJhdGlvbiA9ICQyNjIuYWdlbnQubW9u
b3RvbmljTm93KCkgLSBiZWZvcmU7CisKKyAgICAkMjYyLmFnZW50LnJlcG9ydChkdXJhdGlvbik7
CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQodW5wYXJrKTsKKyAgICAkMjYyLmFnZW50LmxlYXZpbmco
KTsKKyAgfSk7CitgKTsKKworJDI2Mi5hZ2VudC5zYWZlQnJvYWRjYXN0QXN5bmMoaTY0YSwgUlVO
TklORywgMW4pLnRoZW4oYXN5bmMgYWdlbnRDb3VudCA9PiB7CisgIGFzc2VydC5zYW1lVmFsdWUo
YWdlbnRDb3VudCwgMW4pOworICBhc3NlcnQuc2FtZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2NGEs
IDApLCAxLCAnQXRvbWljcy5ub3RpZnkoaTY0YSwgMCkgcmV0dXJucyAxJyk7CisgIGNvbnN0IGxh
cHNlID0gYXdhaXQgJDI2Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpOworICBhc3NlcnQobGFwc2Ug
PCBUSU1FT1VULCAnVGhlIHJlc3VsdCBvZiBgKGxhcHNlID49IFRJTUVPVVQpYCBpcyB0cnVlJyk7
CisgIGNvbnN0IHJlc3VsdCA9IGF3YWl0ICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKTsKKwor
ICBhc3NlcnQuc2FtZVZhbHVlKAorICAgIHJlc3VsdCwKKyAgICAnb2snLAorICAgICdhd2FpdCBB
dG9taWNzLndhaXRBc3luYyhpNjRhLCAwLCAwbiwgJHtUSU1FT1VUfSkudmFsdWUgcmVzb2x2ZXMg
dG8gIm9rIicKKyAgKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKEF0b21pY3Mubm90aWZ5KGk2NGEs
IDApLCAwLCAnQXRvbWljcy5ub3RpZnkoaTY0YSwgMCkgcmV0dXJucyAwJyk7Cit9KS50aGVuKCRE
T05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
QXRvbWljcy93YWl0QXN5bmMvZmFsc2UtZm9yLXRpbWVvdXQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvZmFsc2UtZm9yLXRpbWVvdXQuanMKaW5k
ZXggNTNmYjk4YjI0ZTQ0M2ZhYWUwZTFjZDZhOTgzYTMwNGE0MmYxOGE3ZC4uOGE0MmQ1NDc0ODA2
NDk5NTIzN2RjZTQ5OGY5MTcwNWJlYjA2N2Q2MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL2ZhbHNlLWZvci10aW1lb3V0LmpzCisr
KyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9mYWxz
ZS1mb3ItdGltZW91dC5qcwpAQCAtMTcsNiArMTcsNyBAQCBpbmZvOiB8CiBmbGFnczogW2FzeW5j
XQogZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFR5cGVk
QXJyYXksIEF0b21pY3MsIGNvbXB1dGVkLXByb3BlcnR5LW5hbWVzLCBTeW1ib2wsIFN5bWJvbC50
b1ByaW1pdGl2ZSwgYXJyb3ctZnVuY3Rpb25dCiAtLS0qLworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBl
b2YgQXRvbWljcy53YWl0QXN5bmMsICdmdW5jdGlvbicpOwogY29uc3QgaTMyYSA9IG5ldyBJbnQz
MkFycmF5KAogICBuZXcgU2hhcmVkQXJyYXlCdWZmZXIoSW50MzJBcnJheS5CWVRFU19QRVJfRUxF
TUVOVCAqIDQpCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5z
L0F0b21pY3Mvd2FpdEFzeW5jL2dvb2Qtdmlld3MuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvZ29vZC12aWV3cy5qcwppbmRleCBhMzc2ZDA0MmRk
NmYwMjU1ZWMxZDg5YjZjMjM3MmY1MmJiM2VkM2RhLi44ZWZhN2EyYWEyNmNlODgwZjY0MjQxYmMx
ZGZlYjkyOGUwZDE3YjUyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvQXRvbWljcy93YWl0QXN5bmMvZ29vZC12aWV3cy5qcworKysgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvZ29vZC12aWV3cy5qcwpAQCAtNSwxNiAr
NSwxNiBAQAogZXNpZDogc2VjLWF0b21pY3Mud2FpdGFzeW5jCiBkZXNjcmlwdGlvbjogPgogICBU
ZXN0IEF0b21pY3Mud2FpdEFzeW5jIG9uIGFycmF5cyB0aGF0IGFsbG93IGF0b21pYyBvcGVyYXRp
b25zCitmbGFnczogW2FzeW5jXQogaW5jbHVkZXM6IFthdG9taWNzSGVscGVyLmpzXQogZmVhdHVy
ZXM6IFtBdG9taWNzLndhaXRBc3luYywgQXRvbWljc10KIC0tLSovCiBhc3NlcnQuc2FtZVZhbHVl
KHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7CiAKKwogJDI2Mi5hZ2VudC5z
dGFydChgCiAgIChhc3luYyAoKSA9PiB7CiAgICAgdmFyIHNhYiA9IG5ldyBTaGFyZWRBcnJheUJ1
ZmZlcigxMDI0KTsKLSAgICB2YXIgYWIgPSBuZXcgQXJyYXlCdWZmZXIoMTYpOwotCiAgICAgdmFy
IGdvb2RfaW5kaWNlcyA9IFsgKHZpZXcpID0+IDAvLTEsIC8vIC0wCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHZpZXcpID0+ICctMCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpZXcp
ID0+IHZpZXcubGVuZ3RoIC0gMSwKQEAgLTI4LDYgKzI4LDcgQEAgJDI2Mi5hZ2VudC5zdGFydChg
CiAgICAgJDI2Mi5hZ2VudC5yZXBvcnQoIkEgIiArIChhd2FpdCBBdG9taWNzLndhaXRBc3luYyh2
aWV3LCAwLCAwLCAwKS52YWx1ZSkpCiAgICAgJDI2Mi5hZ2VudC5yZXBvcnQoIkIgIiArIChhd2Fp
dCBBdG9taWNzLndhaXRBc3luYyh2aWV3LCAwLCAzNywgMCkudmFsdWUpKTsKIAorICAgIGNvbnN0
IHJlc3VsdHMgPSBbXTsKICAgICAvLyBJbi1ib3VuZHMgYm91bmRhcnkgY2FzZXMgZm9yIGluZGV4
aW5nCiAgICAgZm9yICggbGV0IElkeEdlbiBvZiBnb29kX2luZGljZXMgKSB7CiAgICAgICAgIGxl
dCBJZHggPSBJZHhHZW4odmlldyk7CkBAIC0zNSwzMCArMzYsMzUgQEAgJDI2Mi5hZ2VudC5zdGFy
dChgCiAgICAgICAgIC8vIEF0b21pY3Muc3RvcmUoKSBjb21wdXRlcyBhbiBpbmRleCBmcm9tIElk
eCBpbiB0aGUgc2FtZSB3YXkgYXMgb3RoZXIKICAgICAgICAgLy8gQXRvbWljcyBvcGVyYXRpb25z
LCBub3QgcXVpdGUgbGlrZSB2aWV3W0lkeF0uCiAgICAgICAgIEF0b21pY3Muc3RvcmUodmlldywg
SWR4LCAzNyk7Ci0gICAgICAgICQyNjIuYWdlbnQucmVwb3J0KCJDICIgKyAoYXdhaXQgQXRvbWlj
cy53YWl0QXN5bmModmlldywgSWR4LCAwKS52YWx1ZSkpOworICAgICAgICByZXN1bHRzLnB1c2go
YXdhaXQgQXRvbWljcy53YWl0QXN5bmModmlldywgSWR4LCAwKS52YWx1ZSk7CiAgICAgfQotICAg
ICQyNjIuYWdlbnQucmVwb3J0KCJkb25lIik7CisgICAgJDI2Mi5hZ2VudC5yZXBvcnQoIkMgIiAr
IHJlc3VsdHMuam9pbigiLCIpKTsKICAgICAkMjYyLmFnZW50LmxlYXZpbmcoKTsKICAgfSkoKTsK
IGApOwogCi1hc3NlcnQuc2FtZVZhbHVlKAotICAkMjYyLmFnZW50LmdldFJlcG9ydCgpLAotICAn
QSB0aW1lZC1vdXQnLAotICAnIkEgIiArIChhd2FpdCBBdG9taWNzLndhaXRBc3luYyh2aWV3LCAw
LCAwLCAwKS52YWx1ZSByZXNvbHZlcyB0byAiQSB0aW1lZC1vdXQiJwotKTsKIAotYXNzZXJ0LnNh
bWVWYWx1ZSgKLSAgJDI2Mi5hZ2VudC5nZXRSZXBvcnQoKSwKLSAgJ0Igbm90LWVxdWFsJywKLSAg
JyJCICIgKyAoYXdhaXQgQXRvbWljcy53YWl0QXN5bmModmlldywgMCwgMzcsIDApLnZhbHVlIHJl
c29sdmVzIHRvICJCIG5vdC1lcXVhbCInCi0pOworUHJvbWlzZS5hbGwoWworICAkMjYyLmFnZW50
LmdldFJlcG9ydEFzeW5jKCksCisgICQyNjIuYWdlbnQuZ2V0UmVwb3J0QXN5bmMoKSwKKyAgJDI2
Mi5hZ2VudC5nZXRSZXBvcnRBc3luYygpLAorXSkudGhlbihvdXRjb21lcyA9PiB7CisKKyAgYXNz
ZXJ0LnNhbWVWYWx1ZSgKKyAgICBvdXRjb21lc1swXSwKKyAgICAnQSB0aW1lZC1vdXQnLAorICAg
ICciQSAiICsgKGF3YWl0IEF0b21pY3Mud2FpdEFzeW5jKHZpZXcsIDAsIDAsIDApLnZhbHVlIHJl
c29sdmVzIHRvICJBIHRpbWVkLW91dCInCisgICk7CiAKLXZhciByOwotd2hpbGUgKChyID0gJDI2
Mi5hZ2VudC5nZXRSZXBvcnQoKSkgIT09ICJkb25lIikgewogICBhc3NlcnQuc2FtZVZhbHVlKAot
ICAgIHIsCi0gICAgJ0Mgbm90LWVxdWFsJywKLSAgICAnIkMgIiArIChhd2FpdCBBdG9taWNzLndh
aXRBc3luYyh2aWV3LCBJZHgsIDApLnZhbHVlIHJlc29sdmVzIHRvICJDIG5vdC1lcXVhbCInCisg
ICAgb3V0Y29tZXNbMV0sCisgICAgJ0Igbm90LWVxdWFsJywKKyAgICAnIkIgIiArIChhd2FpdCBB
dG9taWNzLndhaXRBc3luYyh2aWV3LCAwLCAzNywgMCkudmFsdWUgcmVzb2x2ZXMgdG8gIkIgbm90
LWVxdWFsIicKKyAgKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZSgKKyAgICBvdXRjb21lc1syXSwKKyAg
ICAnQyBub3QtZXF1YWwsbm90LWVxdWFsLG5vdC1lcXVhbCxub3QtZXF1YWwsbm90LWVxdWFsJywK
KyAgICAnQWxsIEMgdmFsdWVzIGFyZSBub3QgZXF1YWwnCiAgICk7Ci19Cit9LCAkRE9ORSkudGhl
bigkRE9ORSwgJERPTkUpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbmVnYXRpdmUtaW5kZXgtdGhyb3dzLmpzIGIvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL25lZ2F0aXZlLWluZGV4
LXRocm93cy5qcwppbmRleCBmZWU0ZjE5ZmE3MjE5YjgxMjU0ZWU1YWFiMzliMjg2ZjJkM2MxYWVj
Li41NDFlNzkzYTFkNjA2YzhhOWM1ZDZlYTdkOTljNzRlMDdmMzc4YmY1IDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbmVnYXRpdmUt
aW5kZXgtdGhyb3dzLmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9t
aWNzL3dhaXRBc3luYy9uZWdhdGl2ZS1pbmRleC10aHJvd3MuanMKQEAgLTE3LDYgKzE3LDcgQEAg
aW5mbzogfAogCiBmZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBTaGFyZWRBcnJheUJ1ZmZl
ciwgVHlwZWRBcnJheSwgQXRvbWljc10KIC0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBB
dG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7CiBjb25zdCBpMzJhID0gbmV3IEludDMyQXJy
YXkoCiAgIG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihJbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5U
ICogNCkKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRv
bWljcy93YWl0QXN5bmMvbmVnYXRpdmUtdGltZW91dC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9uZWdhdGl2ZS10aW1lb3V0LmpzCmluZGV4IDli
MmE3NGE4YjUxYWFkZTc0NjI3Y2E3YzRmMGU4NWE0MjIzMTFmMTcuLmE1MGQwNTZlMTg1OTlkZDMw
ZjdiNDdiYTkyYjA4NmY1MzE2MjU5ZTggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9uZWdhdGl2ZS10aW1lb3V0LmpzCisrKyBiL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9uZWdhdGl2ZS10
aW1lb3V0LmpzCkBAIC0xNyw2ICsxNyw3IEBAIGluZm86IHwKIGZsYWdzOiBbYXN5bmNdCiBmZWF0
dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBTaGFyZWRBcnJheUJ1ZmZlciwgVHlwZWRBcnJheSwg
QXRvbWljcywgZGVzdHJ1Y3R1cmluZy1iaW5kaW5nLCBhcnJvdy1mdW5jdGlvbl0KIC0tLSovCith
c3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7CiBj
b25zdCBpMzJhID0gbmV3IEludDMyQXJyYXkoCiAgIG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihJbnQz
MkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbm9uLWludDMyLXR5cGVkYXJy
YXktdGhyb3dzLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2Fp
dEFzeW5jL25vbi1pbnQzMi10eXBlZGFycmF5LXRocm93cy5qcwppbmRleCAyZjdjMmQyYmU4NTAx
ZjQzOWIwYmY1MGRhN2Q3YzFiOGRlMTc0ODU1Li5lM2I3ODFkMDIyNTU0ZDEyOWZiYTI3Yjk0MzNi
ODRmZTY5ODg4MWYwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
QXRvbWljcy93YWl0QXN5bmMvbm9uLWludDMyLXR5cGVkYXJyYXktdGhyb3dzLmpzCisrKyBiL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9ub24taW50MzIt
dHlwZWRhcnJheS10aHJvd3MuanMKQEAgLTIxLDYgKzIxLDcgQEAgaW5mbzogfAogCiBmZWF0dXJl
czogW0F0b21pY3Mud2FpdEFzeW5jLCBGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheSwgSW50OEFy
cmF5LCBUeXBlZEFycmF5LCBVaW50MTZBcnJheSwgVWludDhBcnJheSwgVWludDhDbGFtcGVkQXJy
YXksIGFycm93LWZ1bmN0aW9uLCBTaGFyZWRBcnJheUJ1ZmZlciwgQXRvbWljc10KIC0tLSovCith
c3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7CiBj
b25zdCBwb2lzb25lZCA9IHsKICAgdmFsdWVPZigpIHsKICAgICB0aHJvdyBuZXcgVGVzdDI2MkVy
cm9yKCdzaG91bGQgbm90IGV2YWx1YXRlIHRoaXMgY29kZScpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL25vbi1zaGFyZWQtYnVm
ZmVyZGF0YS10aHJvd3MuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWlj
cy93YWl0QXN5bmMvbm9uLXNoYXJlZC1idWZmZXJkYXRhLXRocm93cy5qcwppbmRleCBlMmU3NWE2
NzBjYzYzODkxNDI5NmEzOGRkOTJjYmFjOGZjYzMwZGRhLi41MzA3NjdkMTlmZTU5YTA2N2UxZTYx
M2ZlZmNjN2RmMzExNGI4ZmZjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbm9uLXNoYXJlZC1idWZmZXJkYXRhLXRocm93cy5qcwor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbm9u
LXNoYXJlZC1idWZmZXJkYXRhLXRocm93cy5qcwpAQCAtMjAsNiArMjAsNyBAQCBpbmZvOiB8CiAK
IGZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIEFycmF5QnVmZmVyLCBBdG9taWNzLCBUeXBl
ZEFycmF5LCBhcnJvdy1mdW5jdGlvbl0KIC0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBB
dG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7CiBjb25zdCBpMzJhID0gbmV3IEludDMyQXJy
YXkoCiAgIG5ldyBBcnJheUJ1ZmZlcihJbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkK
ICk7CkBAIC0zMSw5ICszMiw5IEBAIGNvbnN0IHBvaXNvbmVkID0gewogfTsKIAogYXNzZXJ0LnRo
cm93cyhUeXBlRXJyb3IsICgpID0+IHsKLSAgQXRvbWljcy53YWl0KGkzMmEsIDAsIDAsIDApOwot
fSwgJ2BBdG9taWNzLndhaXQoaTMyYSwgMCwgMCwgMClgIHRocm93cyBUeXBlRXJyb3InKTsKKyAg
QXRvbWljcy53YWl0QXN5bmMoaTMyYSwgMCwgMCwgMCk7Cit9LCAnYEF0b21pY3Mud2FpdEFzeW5j
KGkzMmEsIDAsIDAsIDApYCB0aHJvd3MgVHlwZUVycm9yJyk7CiAKIGFzc2VydC50aHJvd3MoVHlw
ZUVycm9yLCAoKSA9PiB7Ci0gIEF0b21pY3Mud2FpdChpMzJhLCBwb2lzb25lZCwgcG9pc29uZWQs
IHBvaXNvbmVkKTsKLX0sICdgQXRvbWljcy53YWl0KGkzMmEsIHBvaXNvbmVkLCBwb2lzb25lZCwg
cG9pc29uZWQpYCB0aHJvd3MgVHlwZUVycm9yJyk7CisgIEF0b21pY3Mud2FpdEFzeW5jKGkzMmEs
IHBvaXNvbmVkLCBwb2lzb25lZCwgcG9pc29uZWQpOworfSwgJ2BBdG9taWNzLndhaXRBc3luYyhp
MzJhLCBwb2lzb25lZCwgcG9pc29uZWQsIHBvaXNvbmVkKWAgdGhyb3dzIFR5cGVFcnJvcicpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFz
eW5jL25vdC1hLXR5cGVkYXJyYXktdGhyb3dzLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL25vdC1hLXR5cGVkYXJyYXktdGhyb3dzLmpzCmluZGV4
IDI4MDI3YjNkZmU4YTFmZjI4ODJhOGEyM2ZhMjE0ZGEwODRlZjI3ZTMuLmI5MDhkMzZkY2FiZDMx
ZjRmODdjNDkyYWI2NDNjZWM5NTY1MmU2NDEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9ub3QtYS10eXBlZGFycmF5LXRocm93cy5q
cworKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMv
bm90LWEtdHlwZWRhcnJheS10aHJvd3MuanMKQEAgLTI0LDYgKzI0LDcgQEAgaW5mbzogfAogCiBm
ZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBhcnJvdy1mdW5jdGlvbiwgQXRvbWljc10KIC0t
LSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9u
Jyk7CiBjb25zdCBwb2lzb25lZCA9IHsKICAgdmFsdWVPZigpIHsKICAgICB0aHJvdyBuZXcgVGVz
dDI2MkVycm9yKCdzaG91bGQgbm90IGV2YWx1YXRlIHRoaXMgY29kZScpOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL25vdC1hbi1v
YmplY3QtdGhyb3dzLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mv
d2FpdEFzeW5jL25vdC1hbi1vYmplY3QtdGhyb3dzLmpzCmluZGV4IGVjMDA5N2E3MTFiZTA2Mzkw
MWFkOTc1ZTQ4M2VkOWJmNmJjNzgwN2IuLmVhZjM4YjNmNDU1M2M3NjliNThiOGYwYjFmMjk5NjAw
MDEwMTYyZDMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9t
aWNzL3dhaXRBc3luYy9ub3QtYW4tb2JqZWN0LXRocm93cy5qcworKysgYi9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbm90LWFuLW9iamVjdC10aHJvd3Mu
anMKQEAgLTI0LDYgKzI0LDcgQEAgaW5mbzogfAogCiBmZWF0dXJlczogW0F0b21pY3Mud2FpdEFz
eW5jLCBTeW1ib2wsIGFycm93LWZ1bmN0aW9uLCBBdG9taWNzXQogLS0tKi8KK2Fzc2VydC5zYW1l
VmFsdWUodHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKIGNvbnN0IHBvaXNv
bmVkID0gewogICB2YWx1ZU9mKCkgewogICAgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoJ3Nob3Vs
ZCBub3QgZXZhbHVhdGUgdGhpcyBjb2RlJyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvbnVsbC1idWZmZXJkYXRhLXRocm93cy5q
cyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9udWxs
LWJ1ZmZlcmRhdGEtdGhyb3dzLmpzCmluZGV4IDlmYjdkMjNkNWQzMWFiMDA1ZDY5MjUxNDRiMDk2
NDQ3NGIxMmM3ZTIuLjRjN2Y0NDAwNjc0NWZjMTk4ODFkN2NlYmRjZGQzYmY0NDQ4N2M5ODkgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3lu
Yy9udWxsLWJ1ZmZlcmRhdGEtdGhyb3dzLmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9udWxsLWJ1ZmZlcmRhdGEtdGhyb3dzLmpzCkBAIC0y
NSw2ICsyNSw3IEBAIGluZm86IHwKIGluY2x1ZGVzOiBbZGV0YWNoQXJyYXlCdWZmZXIuanNdCiBm
ZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBBcnJheUJ1ZmZlciwgQXRvbWljcywgVHlwZWRB
cnJheV0KIC0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywg
J2Z1bmN0aW9uJyk7CiBjb25zdCBpMzJhID0gbmV3IEludDMyQXJyYXkoCiAgIG5ldyBBcnJheUJ1
ZmZlcihJbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvb2JqZWN0LWZv
ci10aW1lb3V0LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2Fp
dEFzeW5jL29iamVjdC1mb3ItdGltZW91dC5qcwppbmRleCBmNDVkMzA0YjhmYzBiYjUyMzVjNjM5
Y2NhZDI2YWY5NmFmNzYzZjI0Li5jZGFkYzZiMzIxMzhhMjNhNjIyNjVjOTBlMzVhNTY1NmZhYjc2
YWYzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93
YWl0QXN5bmMvb2JqZWN0LWZvci10aW1lb3V0LmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9vYmplY3QtZm9yLXRpbWVvdXQuanMKQEAgLTIy
LDYgKzIyLDcgQEAgaW5mbzogfAogZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVk
QXJyYXlCdWZmZXIsIFN5bWJvbCwgU3ltYm9sLnRvUHJpbWl0aXZlLCBUeXBlZEFycmF5LCBjb21w
dXRlZC1wcm9wZXJ0eS1uYW1lcywgQXRvbWljcywgYXJyb3ctZnVuY3Rpb25dCiBmbGFnczogW2Fz
eW5jXQogLS0tKi8KK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAn
ZnVuY3Rpb24nKTsKIGNvbnN0IGkzMmEgPSBuZXcgSW50MzJBcnJheSgKICAgbmV3IFNoYXJlZEFy
cmF5QnVmZmVyKEludDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiA0KQogKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9vdXQt
b2YtcmFuZ2UtaW5kZXgtdGhyb3dzLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5z
L0F0b21pY3Mvd2FpdEFzeW5jL291dC1vZi1yYW5nZS1pbmRleC10aHJvd3MuanMKaW5kZXggYmJi
M2VjMjE3NTBiMzJmMWE5YzVmN2EwNjg2NmZmYmY1YThjNWI2My4uNGQ0MDM1OWYxYjNmYWVhMGMy
ZTIwMGUyNGU0MWYwOTliZGYyMDY1ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL291dC1vZi1yYW5nZS1pbmRleC10aHJvd3MuanMK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL291
dC1vZi1yYW5nZS1pbmRleC10aHJvd3MuanMKQEAgLTIwLDYgKzIwLDcgQEAgaW5mbzogfAogICAg
IDUuIElmIGFjY2Vzc0luZGV4IOKJpSBsZW5ndGgsIHRocm93IGEgUmFuZ2VFcnJvciBleGNlcHRp
b24uCiBmZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBTaGFyZWRBcnJheUJ1ZmZlciwgVHlw
ZWRBcnJheSwgQXRvbWljc10KIC0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNz
LndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7CiBjb25zdCBpMzJhID0gbmV3IEludDMyQXJyYXkoCiAg
IG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihJbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkK
ICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93
YWl0QXN5bmMvc3ltYm9sLWZvci10aW1lb3V0LXRocm93cy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9zeW1ib2wtZm9yLXRpbWVvdXQtdGhyb3dz
LmpzCmluZGV4IDVkNTIzOTAwOGE0MmY5NGI1N2VlNDIzNDAwMTI2OTBmZmUyMDZkMjcuLjBkOGJj
MjlkMzdhMTc3YWNkNGIxNTQ5NjYxMDhiNTI5OTU5ZDNiZjYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dhaXRBc3luYy9zeW1ib2wtZm9yLXRpbWVv
dXQtdGhyb3dzLmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNz
L3dhaXRBc3luYy9zeW1ib2wtZm9yLXRpbWVvdXQtdGhyb3dzLmpzCkBAIC0xOCw2ICsxOCw3IEBA
IGluZm86IHwKIAogZmVhdHVyZXM6IFtBdG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZm
ZXIsIFN5bWJvbCwgU3ltYm9sLnRvUHJpbWl0aXZlLCBUeXBlZEFycmF5LCBjb21wdXRlZC1wcm9w
ZXJ0eS1uYW1lcywgQXRvbWljc10KIC0tLSovCithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9t
aWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7CiBjb25zdCBpMzJhID0gbmV3IEludDMyQXJyYXko
CiAgIG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihJbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICog
NCkKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWlj
cy93YWl0QXN5bmMvc3ltYm9sLWZvci12YWx1ZS10aHJvd3MuanMgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvc3ltYm9sLWZvci12YWx1ZS10aHJvd3Mu
anMKaW5kZXggMDUxZmZkODgxMDQ5NWI2YjY1Nzg3MTMyZTM1ODE3OWEwZmFlNTRjMy4uNTMwODUw
ZWU4Y2FlNjEyNDEwY2MyY2I2ZWFlNzEwM2RjY2FjZTQ4ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL3N5bWJvbC1mb3ItdmFsdWUt
dGhyb3dzLmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9taWNzL3dh
aXRBc3luYy9zeW1ib2wtZm9yLXZhbHVlLXRocm93cy5qcwpAQCAtMjIsNiArMjIsNyBAQCBpbmZv
OiB8CiAKIGZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJlZEFycmF5QnVmZmVyLCBT
eW1ib2wsIFN5bWJvbC50b1ByaW1pdGl2ZSwgVHlwZWRBcnJheSwgY29tcHV0ZWQtcHJvcGVydHkt
bmFtZXMsIEF0b21pY3NdCiAtLS0qLworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWljcy53
YWl0QXN5bmMsICdmdW5jdGlvbicpOwogY29uc3QgaTMyYSA9IG5ldyBJbnQzMkFycmF5KAogICBu
ZXcgU2hhcmVkQXJyYXlCdWZmZXIoSW50MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQpCiAp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2Fp
dEFzeW5jL3RydWUtZm9yLXRpbWVvdXQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvQXRvbWljcy93YWl0QXN5bmMvdHJ1ZS1mb3ItdGltZW91dC5qcwppbmRleCA2MzFmYzU5MTcw
YzlmOTE0MzZhZThhZTdjM2NjMDA0Yzc1MzYwYzZjLi5iMDkyODBmNWUxMWZkNjFhOTQ4ZDJiMzZh
YmQ1Y2I4M2I0Mjg2ZDhiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvQXRvbWljcy93YWl0QXN5bmMvdHJ1ZS1mb3ItdGltZW91dC5qcworKysgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvdHJ1ZS1mb3ItdGltZW91dC5q
cwpAQCAtMTksNiArMTksNyBAQCBpbmZvOiB8CiBmbGFnczogW2FzeW5jXQogZmVhdHVyZXM6IFtB
dG9taWNzLndhaXRBc3luYywgU2hhcmVkQXJyYXlCdWZmZXIsIFR5cGVkQXJyYXksIEF0b21pY3Ms
IGNvbXB1dGVkLXByb3BlcnR5LW5hbWVzLCBTeW1ib2wsIFN5bWJvbC50b1ByaW1pdGl2ZSwgYXJy
b3ctZnVuY3Rpb25dCiAtLS0qLworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgQXRvbWljcy53YWl0
QXN5bmMsICdmdW5jdGlvbicpOwogY29uc3QgaTMyYSA9IG5ldyBJbnQzMkFycmF5KAogICBuZXcg
U2hhcmVkQXJyYXlCdWZmZXIoSW50MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDQpCiApOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFz
eW5jL3VuZGVmaW5lZC1mb3ItdGltZW91dC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9BdG9taWNzL3dhaXRBc3luYy91bmRlZmluZWQtZm9yLXRpbWVvdXQuanMKaW5kZXggN2I5
YjVhYzY0ZWJiYTM5MmE2MjY5NGU5ZDg2ODUwZDczMjQ0YzA4ZS4uODk0ZGZmMWE0ZTc5Y2E1NzBl
YWUwYzQ0ZWQ3ZTIyZWNiNWQyNWVlNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL3VuZGVmaW5lZC1mb3ItdGltZW91dC5qcworKysg
Yi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvdW5kZWZp
bmVkLWZvci10aW1lb3V0LmpzCkBAIC0yMiw2ICsyMiw3IEBAIGZsYWdzOiBbYXN5bmNdCiBpbmNs
dWRlczogW2F0b21pY3NIZWxwZXIuanNdCiBmZWF0dXJlczogW0F0b21pY3Mud2FpdEFzeW5jLCBT
aGFyZWRBcnJheUJ1ZmZlciwgVHlwZWRBcnJheSwgQXRvbWljcywgY29tcHV0ZWQtcHJvcGVydHkt
bmFtZXMsIFN5bWJvbCwgU3ltYm9sLnRvUHJpbWl0aXZlLCBhcnJvdy1mdW5jdGlvbl0KIC0tLSov
Cithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBBdG9taWNzLndhaXRBc3luYywgJ2Z1bmN0aW9uJyk7
CiBjb25zdCBpMzJhID0gbmV3IEludDMyQXJyYXkoCiAgIG5ldyBTaGFyZWRBcnJheUJ1ZmZlcihJ
bnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogNCkKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvdmFsdWUtbm90LWVxdWFs
LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0F0b21pY3Mvd2FpdEFzeW5jL3Zh
bHVlLW5vdC1lcXVhbC5qcwppbmRleCAwZTYwNmY5MWNlMmZlNTY4ZWI5OWIzMDA2MDQ4ZmM5MTRj
YTcwNjFhLi5lMWI3YThhMzc0Y2ZhMzY3Y2Q0NDg4Nzc4ZDRiNDdiMGJlMzZlYzJlIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXRvbWljcy93YWl0QXN5bmMvdmFs
dWUtbm90LWVxdWFsLmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9BdG9t
aWNzL3dhaXRBc3luYy92YWx1ZS1ub3QtZXF1YWwuanMKQEAgLTIzLDYgKzIzLDcgQEAgaW5mbzog
fAogZmxhZ3M6IFthc3luY10KIGZlYXR1cmVzOiBbQXRvbWljcy53YWl0QXN5bmMsIFNoYXJlZEFy
cmF5QnVmZmVyLCBUeXBlZEFycmF5LCBjb21wdXRlZC1wcm9wZXJ0eS1uYW1lcywgU3ltYm9sLCBT
eW1ib2wudG9QcmltaXRpdmUsIEF0b21pY3MsIGFycm93LWZ1bmN0aW9uXQogLS0tKi8KK2Fzc2Vy
dC5zYW1lVmFsdWUodHlwZW9mIEF0b21pY3Mud2FpdEFzeW5jLCAnZnVuY3Rpb24nKTsKIGNvbnN0
IGkzMmEgPSBuZXcgSW50MzJBcnJheSgKICAgbmV3IFNoYXJlZEFycmF5QnVmZmVyKEludDMyQXJy
YXkuQllURVNfUEVSX0VMRU1FTlQgKiA0KQogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FsbC9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1l
dmVyeS1pdGVyYXRpb24tb2YtY3VzdG9tLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYWxsL2ludm9rZS1yZXNvbHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlv
bi1vZi1jdXN0b20uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZiNDRkNGY4OTE3MzA1NzY2YjYyNTdhNTNjZmY2
ZmUzMDJkOTk4NAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FsbC9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRp
b24tb2YtY3VzdG9tLmpzCkBAIC0wLDAgKzEsNDMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBS
aWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0t
CitkZXNjcmlwdGlvbjogPgorICBJbnZvY2F0aW9uIG9mIHRoZSBjb25zdHJ1Y3RvcidzIGByZXNv
bHZlYCBtZXRob2QgZm9yIGl0ZXJhYmxlIHdpdGggcHJvbWlzZSB2YWx1ZXMKK2VzaWQ6IHNlYy1w
cm9taXNlLmFsbAoraW5mbzogfAorICBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQWxsKGl0
ZXJhdG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1hbnRp
Y3M6IFBlcmZvcm1Qcm9taXNlQWxsCisKKyAgUmVwZWF0CisgICAgLi4uCisgICAgTGV0IG5leHRQ
cm9taXNlIGJlID8gQ2FsbChwcm9taXNlUmVzb2x2ZSwgY29uc3RydWN0b3IsIMKrIG5leHRWYWx1
ZSDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW2NsYXNzLCBhcnJvdy1mdW5jdGlv
bl0KKy0tLSovCitjbGFzcyBDdXN0b20gZXh0ZW5kcyBQcm9taXNlIHt9CisKK2xldCB2YWx1ZXMg
PSBbMSwgMSwgMV07CitsZXQgY3Jlc29sdmVDYWxsQ291bnQgPSAwOworbGV0IHByZXNvbHZlQ2Fs
bENvdW50ID0gMDsKK2xldCBib3VuZEN1c3RvbVJlc29sdmUgPSBDdXN0b20ucmVzb2x2ZS5iaW5k
KEN1c3RvbSk7CitsZXQgYm91bmRQcm9taXNlUmVzb2x2ZSA9IFByb21pc2UucmVzb2x2ZS5iaW5k
KFByb21pc2UpOworCitDdXN0b20ucmVzb2x2ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgY3Jl
c29sdmVDYWxsQ291bnQgKz0gMTsKKyAgcmV0dXJuIGJvdW5kQ3VzdG9tUmVzb2x2ZSguLi5hcmdz
KTsKK307CisKK1Byb21pc2UucmVzb2x2ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgcHJlc29s
dmVDYWxsQ291bnQgKz0gMTsKKyAgcmV0dXJuIGJvdW5kUHJvbWlzZVJlc29sdmUoLi4uYXJncyk7
Cit9OworCitQcm9taXNlLmFsbC5jYWxsKEN1c3RvbSwgdmFsdWVzKQorICAudGhlbigoKSA9PiB7
CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKHByZXNvbHZlQ2FsbENvdW50LCAwLCAnYFByb21pc2Uu
cmVzb2x2ZWAgaXMgbmV2ZXIgaW52b2tlZCcpOworICAgICAgYXNzZXJ0LnNhbWVWYWx1ZShjcmVz
b2x2ZUNhbGxDb3VudCwgMywgJ2BDdXN0b20ucmVzb2x2ZWAgaW52b2tlZCBvbmNlIGZvciBldmVy
eSBpdGVyYXRlZCBwcm9taXNlJyk7CisgICAgfSwgJERPTkUpLnRoZW4oJERPTkUsICRET05FKTsK
KwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxs
L2ludm9rZS1yZXNvbHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpz
IGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsL2ludm9rZS1yZXNv
bHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYzZjY4MmNiNTU0YjU1OTY2NzRiZGRiYWUyOGM4YzEwODUwNTNiMTUKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwvaW52b2tlLXJl
c29sdmUtb24tcHJvbWlzZXMtZXZlcnktaXRlcmF0aW9uLW9mLXByb21pc2UuanMKQEAgLTAsMCAr
MSwzNCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEludm9j
YXRpb24gb2YgdGhlIGNvbnN0cnVjdG9yJ3MgYHJlc29sdmVgIG1ldGhvZCBmb3IgaXRlcmFibGUg
d2l0aCBwcm9taXNlIHZhbHVlcworZXNpZDogc2VjLXByb21pc2UuYWxsCitpbmZvOiB8CisgIExl
dCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbGwoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VD
YXBhYmlsaXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbGwKKwor
ICBSZXBlYXQKKyAgICAuLi4KKyAgICBpLiBMZXQgbmV4dFByb21pc2UgYmUgPyBDYWxsKHByb21p
c2VSZXNvbHZlLCBjb25zdHJ1Y3RvciwgwqsgbmV4dFZhbHVlIMK7KS4KKworZmxhZ3M6IFthc3lu
Y10KK2ZlYXR1cmVzOiBbYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQgdmFsdWVzID0gWzEs
MSwxXTsKK2xldCBjYWxsQ291bnQgPSAwOworbGV0IGJvdW5kUHJvbWlzZVJlc29sdmUgPSBQcm9t
aXNlLnJlc29sdmUuYmluZChQcm9taXNlKTsKKworUHJvbWlzZS5yZXNvbHZlID0gZnVuY3Rpb24o
Li4uYXJncykgeworICBjYWxsQ291bnQgKz0gMTsKKyAgcmV0dXJuIGJvdW5kUHJvbWlzZVJlc29s
dmUoLi4uYXJncyk7Cit9OworCitQcm9taXNlLmFsbCh2YWx1ZXMpCisgIC50aGVuKCgpID0+IHsK
KyAgICAgIGFzc2VydC5zYW1lVmFsdWUoY2FsbENvdW50LCAzLCAnYHRoZW5gIGludm9rZWQgb25j
ZSBmb3IgZXZlcnkgaXRlcmF0ZWQgcHJvbWlzZScpOworICAgIH0sICRET05FKS50aGVuKCRET05F
LCAkRE9ORSk7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FsbC9pbnZva2UtcmVzb2x2ZS1vbi12YWx1ZXMtZXZlcnktaXRlcmF0aW9uLW9mLXBy
b21pc2UuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwvaW52
b2tlLXJlc29sdmUtb24tdmFsdWVzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg1MjRiY2E1NGNjNjMxY2Q2NTQ2MTI0NDgxNmQ5MzQ3OTc2YTFiMDYKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwvaW52
b2tlLXJlc29sdmUtb24tdmFsdWVzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpzCkBAIC0w
LDAgKzEsMzQgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitkZXNjcmlwdGlvbjogPgorICBJ
bnZvY2F0aW9uIG9mIHRoZSBjb25zdHJ1Y3RvcidzIGByZXNvbHZlYCBtZXRob2QgZm9yIGl0ZXJh
YmxlIHdpdGggbm9uLXByb21pc2UgdmFsdWVzCitlc2lkOiBzZWMtcHJvbWlzZS5hbGwKK2luZm86
IHwKKyAgTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFsbChpdGVyYXRvclJlY29yZCwgQywg
cHJvbWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlz
ZUFsbAorCisgIFJlcGVhdAorICAgIC4uLgorICAgIGkuIExldCBuZXh0UHJvbWlzZSBiZSA/IENh
bGwocHJvbWlzZVJlc29sdmUsIGNvbnN0cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrspLgorCitmbGFn
czogW2FzeW5jXQorZmVhdHVyZXM6IFthcnJvdy1mdW5jdGlvbl0KKy0tLSovCisKK2xldCB2YWx1
ZXMgPSBbMSwgMiwgM107CitsZXQgY2FsbENvdW50ID0gMDsKK2xldCBib3VuZFByb21pc2VSZXNv
bHZlID0gUHJvbWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlzZSk7CisKK1Byb21pc2UucmVzb2x2ZSA9
IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgY2FsbENvdW50ICs9IDE7CisgIHJldHVybiBib3VuZFBy
b21pc2VSZXNvbHZlKC4uLmFyZ3MpOworfTsKKworUHJvbWlzZS5hbGwodmFsdWVzKQorICAudGhl
bigoKSA9PiB7CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKGNhbGxDb3VudCwgMywgJ2BQcm9taXNl
LnJlc29sdmVgIGludm9rZWQgb25jZSBmb3IgZXZlcnkgaXRlcmF0ZWQgdmFsdWUnKTsKKyAgICB9
LCAkRE9ORSkudGhlbigkRE9ORSwgJERPTkUpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwvcmVzb2x2ZS1pZ25vcmVzLWxhdGUtcmVqZWN0
aW9uLWRlZmVycmVkLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YWxsL3Jlc29sdmUtaWdub3Jlcy1sYXRlLXJlamVjdGlvbi1kZWZlcnJlZC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZjJiZWVmNThiNmJiNmNhNjUwOTcyOTUwOTkxZjgzNTFiNTYzNmFlCi0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsL3Jlc29sdmUt
aWdub3Jlcy1sYXRlLXJlamVjdGlvbi1kZWZlcnJlZC5qcwpAQCAtMCwwICsxLDQyIEBACisvLyBD
b3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlciwgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitkZXNjcmlwdGlvbjogPgorICBS
ZXNvbHZlZCBwcm9taXNlcyBpZ25vcmUgcmVqZWN0aW9ucyB0aHJvdWdoIGRlZmVycmVkIGludm9j
YXRpb24gb2YgdGhlCisgICAgcHJvdmlkZWQgcmVzb2x2aW5nIGZ1bmN0aW9uCitlc2lkOiBzZWMt
cHJvbWlzZS5hbnkKK2luZm86IHwKKyAgTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFsbChp
dGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50
aWNzOiBQZXJmb3JtUHJvbWlzZUFsbAorCisgIFJlcGVhdAorICAgIC4uLgorICAgIHIuIFBlcmZv
cm0gPyBJbnZva2UobmV4dFByb21pc2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2FwYWJpbGl0eS5bW1Jl
c29sdmVdXSwgcmVqZWN0RWxlbWVudCDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczog
W2Fycm93LWZ1bmN0aW9uXQorLS0tKi8KKwordmFyIHJlc29sdmVyID0geworICB0aGVuKHJlc29s
dmUpIHsKKyAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gcmVzb2x2ZSgpKQorICAgICAgLnRo
ZW4oKCkgPT4gcmVzb2x2ZSg0MikpOworICB9Cit9OwordmFyIGxhdGVSZWplY3RvciA9IHsKKyAg
dGhlbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gcmVz
b2x2ZSgpKQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICByZXNvbHZlKDkpOworICAgICAg
ICByZWplY3QoKTsKKyAgICAgIH0pOworICB9Cit9OworCitQcm9taXNlLmFsbChbcmVzb2x2ZXIs
IGxhdGVSZWplY3Rvcl0pCisgIC50aGVuKHJlc29sdXRpb24gPT4geworICAgIGFzc2VydC5zYW1l
VmFsdWUocmVzb2x1dGlvblswXSwgNDIpOworICAgIGFzc2VydC5zYW1lVmFsdWUocmVzb2x1dGlv
blsxXSwgOSk7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FsbC9yZXNvbHZlLWlnbm9yZXMtbGF0ZS1y
ZWplY3Rpb24uanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwv
cmVzb2x2ZS1pZ25vcmVzLWxhdGUtcmVqZWN0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlMjNhM2I4OTJl
NDZhNWQwYjU5YjAxZWQ5MmFiM2RiYjc3NjA5M2EKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwvcmVzb2x2ZS1pZ25vcmVzLWxhdGUt
cmVqZWN0aW9uLmpzCkBAIC0wLDAgKzEsMzggQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8g
QmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMg
Y29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIFJlc29sdmVkIHByb21pc2VzIGlnbm9y
ZSByZWplY3Rpb25zIHRocm91Z2ggaW1tZWRpYXRlIGludm9jYXRpb24gb2YgdGhlCisgICAgcHJv
dmlkZWQgcmVzb2x2aW5nIGZ1bmN0aW9uCitlc2lkOiBzZWMtcHJvbWlzZS5hbGwKK2luZm86IHwK
KyAgTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFsbChpdGVyYXRvclJlY29yZCwgQywgcHJv
bWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFs
bAorCisgIFJlcGVhdAorICAgIC4uLgorICAgIHIuIFBlcmZvcm0gPyBJbnZva2UobmV4dFByb21p
c2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2FwYWJpbGl0eS5bW1Jlc29sdmVdXSwgcmVqZWN0RWxlbWVu
dCDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW2Fycm93LWZ1bmN0aW9uXQorLS0t
Ki8KKwordmFyIHJlc29sdmVyID0geworICB0aGVuKHJlc29sdmUpIHsKKyAgICByZXNvbHZlKDQy
KTsKKyAgfQorfTsKK3ZhciBsYXRlUmVqZWN0b3IgPSB7CisgIHRoZW4ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgcmVzb2x2ZSgzMyk7CisgICAgcmVqZWN0KCk7CisgIH0KK307CisKK1Byb21pc2Uu
YWxsKFtyZXNvbHZlciwgbGF0ZVJlamVjdG9yXSkKKyAgLnRoZW4ocmVzb2x1dGlvbiA9PiB7Cisg
ICAgYXNzZXJ0LnNhbWVWYWx1ZShyZXNvbHV0aW9uWzBdLCA0Mik7CisgICAgYXNzZXJ0LnNhbWVW
YWx1ZShyZXNvbHV0aW9uWzFdLCAzMyk7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FsbC9yZXNvbHZl
LW5vdC1jYWxsYWJsZS1yZWplY3Qtd2l0aC10eXBlZXJyb3IuanMgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGwvcmVzb2x2ZS1ub3QtY2FsbGFibGUtcmVqZWN0LXdp
dGgtdHlwZWVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMDI0MmFmM2Q1Mzc4NmQ1NGNlZDM1ZWJhMTli
ZmE5YzNmNjllNGUKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvUHJvbWlzZS9hbGwvcmVzb2x2ZS1ub3QtY2FsbGFibGUtcmVqZWN0LXdpdGgtdHlwZWVy
cm9yLmpzCkBAIC0wLDAgKzEsMjggQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRy
b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhl
IEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBz
ZWMtcHJvbWlzZS5hbGwKK2Rlc2NyaXB0aW9uOiA+CisgIElmIHRoZSBjb25zdHJ1Y3RvcidzIGBy
ZXNvbHZlYCBtZXRob2QgaXMgbm90IGNhbGxhYmxlLCByZWplY3Qgd2l0aCBhIFR5cGVFcnJvci4K
K2luZm86IHwKKyAgTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29y
ZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3Jt
UHJvbWlzZUFueQorCisgIExldCBwcm9taXNlUmVzb2x2ZSBiZSA/IEdldChjb25zdHJ1Y3Rvciwg
InJlc29sdmUiKS4KKyAgSWYgISBJc0NhbGxhYmxlKHByb21pc2VSZXNvbHZlKSBpcyBmYWxzZSwg
dGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6
IFthcnJvdy1mdW5jdGlvbl0KKy0tLSovCisKK1Byb21pc2UucmVzb2x2ZSA9IG51bGw7CisKK1By
b21pc2UuYWxsKFsxXSkKKyAgLnRoZW4oCisgICAgKCkgPT4gJERPTkUoJ1RoZSBwcm9taXNlIHNo
b3VsZCBub3QgYmUgcmVzb2x2ZWQuJyksCisgICAgZXJyb3IgPT4geworICAgICAgYXNzZXJ0KGVy
cm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKTsKKyAgICB9CisgICkudGhlbigkRE9ORSwgJERPTkUp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxs
U2V0dGxlZC9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24tb2YtY3Vz
dG9tLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsU2V0dGxl
ZC9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24tb2YtY3VzdG9tLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI2ZDA2NDc3ZDFkMzg2NzA4MDFjNmI4MGYzMDFjMjIxMGRmZmFiMWEKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9h
bGxTZXR0bGVkL2ludm9rZS1yZXNvbHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1j
dXN0b20uanMKQEAgLTAsMCArMSw0MyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2Fs
ZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0
aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2Ny
aXB0aW9uOiA+CisgIEludm9jYXRpb24gb2YgdGhlIGNvbnN0cnVjdG9yJ3MgYHJlc29sdmVgIG1l
dGhvZCBmb3IgaXRlcmFibGUgd2l0aCBwcm9taXNlIHZhbHVlcworZXNpZDogc2VjLXByb21pc2Uu
YWxsU2V0dGxlZAoraW5mbzogfAorICA3LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQWxs
U2V0dGxlZChpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRp
bWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFsbFNldHRsZWQKKworICA3LiBSZXBlYXQKKyAg
ICAuLi4KKyAgICBpLiBMZXQgbmV4dFByb21pc2UgYmUgPyBDYWxsKHByb21pc2VSZXNvbHZlLCBj
b25zdHJ1Y3RvciwgwqsgbmV4dFZhbHVlIMK7KS4KKworZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVz
OiBbUHJvbWlzZS5hbGxTZXR0bGVkLCBjbGFzcywgYXJyb3ctZnVuY3Rpb25dCistLS0qLworY2xh
c3MgQ3VzdG9tIGV4dGVuZHMgUHJvbWlzZSB7fQorCitsZXQgdmFsdWVzID0gWzEsIDEsIDFdOwor
bGV0IGNyZXNvbHZlQ2FsbENvdW50ID0gMDsKK2xldCBwcmVzb2x2ZUNhbGxDb3VudCA9IDA7Cits
ZXQgYm91bmRDdXN0b21SZXNvbHZlID0gQ3VzdG9tLnJlc29sdmUuYmluZChDdXN0b20pOworbGV0
IGJvdW5kUHJvbWlzZVJlc29sdmUgPSBQcm9taXNlLnJlc29sdmUuYmluZChQcm9taXNlKTsKKwor
Q3VzdG9tLnJlc29sdmUgPSBmdW5jdGlvbiguLi5hcmdzKSB7CisgIGNyZXNvbHZlQ2FsbENvdW50
ICs9IDE7CisgIHJldHVybiBib3VuZEN1c3RvbVJlc29sdmUoLi4uYXJncyk7Cit9OworCitQcm9t
aXNlLnJlc29sdmUgPSBmdW5jdGlvbiguLi5hcmdzKSB7CisgIHByZXNvbHZlQ2FsbENvdW50ICs9
IDE7CisgIHJldHVybiBib3VuZFByb21pc2VSZXNvbHZlKC4uLmFyZ3MpOworfTsKKworUHJvbWlz
ZS5hbGxTZXR0bGVkLmNhbGwoQ3VzdG9tLCB2YWx1ZXMpCisgIC50aGVuKCgpID0+IHsKKyAgICAg
IGFzc2VydC5zYW1lVmFsdWUocHJlc29sdmVDYWxsQ291bnQsIDAsICdgUHJvbWlzZS5yZXNvbHZl
YCBpcyBuZXZlciBpbnZva2VkJyk7CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKGNyZXNvbHZlQ2Fs
bENvdW50LCAzLCAnYEN1c3RvbS5yZXNvbHZlYCBpbnZva2VkIG9uY2UgZm9yIGV2ZXJ5IGl0ZXJh
dGVkIHByb21pc2UnKTsKKyAgICB9LCAkRE9ORSkudGhlbigkRE9ORSwgJERPTkUpOworCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGxTZXR0bGVk
L2ludm9rZS1yZXNvbHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpz
IGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsU2V0dGxlZC9pbnZv
a2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24tb2YtcHJvbWlzZS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNWQ1M2JmZmIyNTYwMWI4ZTE4ZTJmNDA5ZGE2YjI0OTA3ZTU2ZWRjCi0tLSAvZGV2
L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsU2V0
dGxlZC9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24tb2YtcHJvbWlz
ZS5qcwpAQCAtMCwwICsxLDM0IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBC
U0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZGVzY3JpcHRp
b246ID4KKyAgSW52b2NhdGlvbiBvZiB0aGUgY29uc3RydWN0b3IncyBgcmVzb2x2ZWAgbWV0aG9k
IGZvciBpdGVyYWJsZSB3aXRoIHByb21pc2UgdmFsdWVzCitlc2lkOiBzZWMtcHJvbWlzZS5hbGxT
ZXR0bGVkCitpbmZvOiB8CisgIDcuIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbGxTZXR0
bGVkKGl0ZXJhdG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBT
ZW1hbnRpY3M6IFBlcmZvcm1Qcm9taXNlQWxsU2V0dGxlZAorCisgIDcuIFJlcGVhdAorICAgIC4u
LgorICAgIGkuIExldCBuZXh0UHJvbWlzZSBiZSA/IENhbGwocHJvbWlzZVJlc29sdmUsIGNvbnN0
cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrspLgorCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtQ
cm9taXNlLmFsbFNldHRsZWQsIGFycm93LWZ1bmN0aW9uXQorLS0tKi8KKworbGV0IHZhbHVlcyA9
IFsxLDEsMV07CitsZXQgY2FsbENvdW50ID0gMDsKK2xldCBib3VuZFByb21pc2VSZXNvbHZlID0g
UHJvbWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlzZSk7CisKK1Byb21pc2UucmVzb2x2ZSA9IGZ1bmN0
aW9uKC4uLmFyZ3MpIHsKKyAgY2FsbENvdW50ICs9IDE7CisgIHJldHVybiBib3VuZFByb21pc2VS
ZXNvbHZlKC4uLmFyZ3MpOworfTsKKworUHJvbWlzZS5hbGxTZXR0bGVkKHZhbHVlcykKKyAgLnRo
ZW4oKCkgPT4geworICAgICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsQ291bnQsIDMsICdgdGhlbmAg
aW52b2tlZCBvbmNlIGZvciBldmVyeSBpdGVyYXRlZCBwcm9taXNlJyk7CisgICAgfSwgJERPTkUp
LnRoZW4oJERPTkUsICRET05FKTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYWxsU2V0dGxlZC9pbnZva2UtcmVzb2x2ZS1vbi12YWx1ZXMtZXZl
cnktaXRlcmF0aW9uLW9mLXByb21pc2UuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbGxTZXR0bGVkL2ludm9rZS1yZXNvbHZlLW9uLXZhbHVlcy1ldmVyeS1pdGVy
YXRpb24tb2YtcHJvbWlzZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmRmMTNiZTNhMzAwMTgwZWM5ZDQ5Yzgw
YzkxODhhNTZiZGI2ZDZkCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYWxsU2V0dGxlZC9pbnZva2UtcmVzb2x2ZS1vbi12YWx1ZXMtZXZl
cnktaXRlcmF0aW9uLW9mLXByb21pc2UuanMKQEAgLTAsMCArMSwzNCBAQAorLy8gQ29weXJpZ2h0
IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEludm9jYXRpb24gb2YgdGhlIGNvbnN0cnVj
dG9yJ3MgYHJlc29sdmVgIG1ldGhvZCBmb3IgaXRlcmFibGUgd2l0aCBub24tcHJvbWlzZSB2YWx1
ZXMKK2VzaWQ6IHNlYy1wcm9taXNlLmFsbFNldHRsZWQKK2luZm86IHwKKyAgNS4gTGV0IHJlc3Vs
dCBiZSBQZXJmb3JtUHJvbWlzZUFsbFNldHRsZWQoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VD
YXBhYmlsaXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbGxTZXR0
bGVkCisKKyAgOC4gUmVwZWF0CisgICAgLi4uCisgICAgaS4gTGV0IG5leHRQcm9taXNlIGJlID8g
Q2FsbChwcm9taXNlUmVzb2x2ZSwgY29uc3RydWN0b3IsIMKrIG5leHRWYWx1ZSDCuykuCisKK2Zs
YWdzOiBbYXN5bmNdCitmZWF0dXJlczogW1Byb21pc2UuYWxsU2V0dGxlZCwgYXJyb3ctZnVuY3Rp
b25dCistLS0qLworCitsZXQgdmFsdWVzID0gWzEsIDIsIDNdOworbGV0IGNhbGxDb3VudCA9IDA7
CitsZXQgYm91bmRQcm9taXNlUmVzb2x2ZSA9IFByb21pc2UucmVzb2x2ZS5iaW5kKFByb21pc2Up
OworCitQcm9taXNlLnJlc29sdmUgPSBmdW5jdGlvbiguLi5hcmdzKSB7CisgIGNhbGxDb3VudCAr
PSAxOworICByZXR1cm4gYm91bmRQcm9taXNlUmVzb2x2ZSguLi5hcmdzKTsKK307CisKK1Byb21p
c2UuYWxsU2V0dGxlZCh2YWx1ZXMpCisgIC50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydC5zYW1l
VmFsdWUoY2FsbENvdW50LCAzLCAnYFByb21pc2UucmVzb2x2ZWAgaW52b2tlZCBvbmNlIGZvciBl
dmVyeSBpdGVyYXRlZCB2YWx1ZScpOworICAgIH0sICRET05FKS50aGVuKCRET05FLCAkRE9ORSk7
CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2Fs
bFNldHRsZWQvcmVzb2x2ZS1pZ25vcmVzLWxhdGUtcmVqZWN0aW9uLWRlZmVycmVkLmpzIGIvSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxsU2V0dGxlZC9yZXNvbHZlLWln
bm9yZXMtbGF0ZS1yZWplY3Rpb24tZGVmZXJyZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYThiODlhNDY1NTIx
MmYyMDgzMjZiZGQwZTk2OTc5YTIzOGU4MjNkMwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FsbFNldHRsZWQvcmVzb2x2ZS1pZ25vcmVz
LWxhdGUtcmVqZWN0aW9uLWRlZmVycmVkLmpzCkBAIC0wLDAgKzEsNDQgQEAKKy8vIENvcHlyaWdo
dCAoQykgMjAxOSBMZW8gQmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIFJlc29sdmVk
IHByb21pc2VzIGlnbm9yZSByZWplY3Rpb25zIHRocm91Z2ggZGVmZXJyZWQgaW52b2NhdGlvbiBv
ZiB0aGUKKyAgICBwcm92aWRlZCByZXNvbHZpbmcgZnVuY3Rpb24KK2VzaWQ6IHNlYy1wcm9taXNl
LmFsbFNldHRsZWQKK2luZm86IHwKKyAgTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFsbFNl
dHRsZWQoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKworICBSdW50aW1l
IFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbGxTZXR0bGVkCisKKyAgUmVwZWF0CisgICAgLi4u
CisgICAgci4gUGVyZm9ybSA/IEludm9rZShuZXh0UHJvbWlzZSwgInRoZW4iLCDCqyByZXN1bHRD
YXBhYmlsaXR5LltbUmVzb2x2ZV1dLCByZWplY3RFbGVtZW50IMK7KS4KKworZmxhZ3M6IFthc3lu
Y10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbGxTZXR0bGVkLCBhcnJvdy1mdW5jdGlvbl0KKy0tLSov
CisKK3ZhciByZXNvbHZlciA9IHsKKyAgdGhlbihyZXNvbHZlKSB7CisgICAgbmV3IFByb21pc2Uo
KHJlc29sdmUpID0+IHJlc29sdmUoKSkKKyAgICAgIC50aGVuKCgpID0+IHJlc29sdmUoNDIpKTsK
KyAgfQorfTsKK3ZhciBsYXRlUmVqZWN0b3IgPSB7CisgIHRoZW4ocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHJlc29sdmUoKSkKKyAgICAgIC50aGVuKCgp
ID0+IHsKKyAgICAgICAgcmVzb2x2ZSg5KTsKKyAgICAgICAgcmVqZWN0KCk7CisgICAgICB9KTsK
KyAgfQorfTsKKworUHJvbWlzZS5hbGxTZXR0bGVkKFtyZXNvbHZlciwgbGF0ZVJlamVjdG9yXSkK
KyAgLnRoZW4ocmVzb2x1dGlvbiA9PiB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShyZXNvbHV0aW9u
WzBdLnZhbHVlLCA0Mik7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShyZXNvbHV0aW9uWzBdLnN0YXR1
cywgJ2Z1bGZpbGxlZCcpOworICAgIGFzc2VydC5zYW1lVmFsdWUocmVzb2x1dGlvblsxXS52YWx1
ZSwgOSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShyZXNvbHV0aW9uWzFdLnN0YXR1cywgJ2Z1bGZp
bGxlZCcpOworICB9KS50aGVuKCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGxTZXR0bGVkL3Jlc29sdmUtaWdub3Jlcy1s
YXRlLXJlamVjdGlvbi5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L2FsbFNldHRsZWQvcmVzb2x2ZS1pZ25vcmVzLWxhdGUtcmVqZWN0aW9uLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg4NDg4M2E1ZjVlODE5NTZmMDE1MGI0MjAzMDZjMjFjYTA3ZmRkMzUKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbGxTZXR0bGVkL3Jl
c29sdmUtaWdub3Jlcy1sYXRlLXJlamVjdGlvbi5qcwpAQCAtMCwwICsxLDQwIEBACisvLyBDb3B5
cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlciwgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitkZXNjcmlwdGlvbjogPgorICBSZXNv
bHZlZCBwcm9taXNlcyBpZ25vcmUgcmVqZWN0aW9ucyB0aHJvdWdoIGltbWVkaWF0ZSBpbnZvY2F0
aW9uIG9mIHRoZQorICAgIHByb3ZpZGVkIHJlc29sdmluZyBmdW5jdGlvbgorZXNpZDogc2VjLXBy
b21pc2UuYWxsU2V0dGxlZAoraW5mbzogfAorICBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNl
QWxsU2V0dGxlZChpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1
bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFsbFNldHRsZWQKKworICBSZXBlYXQKKyAg
ICAuLi4KKyAgICByLiBQZXJmb3JtID8gSW52b2tlKG5leHRQcm9taXNlLCAidGhlbiIsIMKrIHJl
c3VsdENhcGFiaWxpdHkuW1tSZXNvbHZlXV0sIHJlamVjdEVsZW1lbnQgwrspLgorCitmbGFnczog
W2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNlLmFsbFNldHRsZWQsIGFycm93LWZ1bmN0aW9uXQor
LS0tKi8KKwordmFyIHJlc29sdmVyID0geworICB0aGVuKHJlc29sdmUpIHsKKyAgICByZXNvbHZl
KDQyKTsKKyAgfQorfTsKK3ZhciBsYXRlUmVqZWN0b3IgPSB7CisgIHRoZW4ocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgcmVzb2x2ZSgzMyk7CisgICAgcmVqZWN0KCk7CisgIH0KK307CisKK1Byb21p
c2UuYWxsU2V0dGxlZChbcmVzb2x2ZXIsIGxhdGVSZWplY3Rvcl0pCisgIC50aGVuKHJlc29sdXRp
b24gPT4geworICAgIGFzc2VydC5zYW1lVmFsdWUocmVzb2x1dGlvblswXS52YWx1ZSwgNDIpOwor
ICAgIGFzc2VydC5zYW1lVmFsdWUocmVzb2x1dGlvblswXS5zdGF0dXMsICdmdWxmaWxsZWQnKTsK
KyAgICBhc3NlcnQuc2FtZVZhbHVlKHJlc29sdXRpb25bMV0udmFsdWUsIDMzKTsKKyAgICBhc3Nl
cnQuc2FtZVZhbHVlKHJlc29sdXRpb25bMV0uc3RhdHVzLCAnZnVsZmlsbGVkJyk7CisgIH0pLnRo
ZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FsbFNldHRsZWQvcmVzb2x2ZS1ub3QtY2FsbGFibGUtcmVqZWN0LXdpdGgt
dHlwZWVycm9yLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYWxs
U2V0dGxlZC9yZXNvbHZlLW5vdC1jYWxsYWJsZS1yZWplY3Qtd2l0aC10eXBlZXJyb3IuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDIxODBiOGZjMmMzOTZlMGIzY2RhNjNjOThkOWIwOWY3MmE5ZjViOQotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FsbFNl
dHRsZWQvcmVzb2x2ZS1ub3QtY2FsbGFibGUtcmVqZWN0LXdpdGgtdHlwZWVycm9yLmpzCkBAIC0w
LDAgKzEsMjggQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5h
bGxTZXR0bGVkCitkZXNjcmlwdGlvbjogPgorICBJZiB0aGUgY29uc3RydWN0b3IncyBgcmVzb2x2
ZWAgbWV0aG9kIGlzIG5vdCBjYWxsYWJsZSwgcmVqZWN0IHdpdGggYSBUeXBlRXJyb3IuCitpbmZv
OiB8CisgIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbGxTZXR0bGVkKGl0ZXJhdG9yUmVj
b3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZv
cm1Qcm9taXNlQWxsU2V0dGxlZAorCisgIExldCBwcm9taXNlUmVzb2x2ZSBiZSA/IEdldChjb25z
dHJ1Y3RvciwgInJlc29sdmUiKS4KKyAgSWYgISBJc0NhbGxhYmxlKHByb21pc2VSZXNvbHZlKSBp
cyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorCitmbGFnczogW2FzeW5jXQor
ZmVhdHVyZXM6IFtQcm9taXNlLmFsbFNldHRsZWQsIGFycm93LWZ1bmN0aW9uXQorLS0tKi8KKwor
UHJvbWlzZS5yZXNvbHZlID0gbnVsbDsKKworUHJvbWlzZS5hbGxTZXR0bGVkKFsxXSkKKyAgLnRo
ZW4oCisgICAgKCkgPT4gJERPTkUoJ1RoZSBwcm9taXNlIHNob3VsZCBub3QgYmUgcmVzb2x2ZWQu
JyksCisgICAgZXJyb3IgPT4geworICAgICAgYXNzZXJ0KGVycm9yIGluc3RhbmNlb2YgVHlwZUVy
cm9yKTsKKyAgICB9CisgICkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1mcm9tLXNhbWUtdGhl
bmFibGUuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVq
ZWN0LWZyb20tc2FtZS10aGVuYWJsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmNlNjYxNTBkNTE5NTEwNWJi
YmIxM2JlMTlmYzAyMTQyNGNlMzcxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1mcm9tLXNhbWUtdGhlbmFibGUuanMK
QEAgLTAsMCArMSw2OCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxp
Y2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitkZXNjcmlwdGlvbjogUmVq
ZWN0aW5nIHdpdGggYSBub24tdGhlbmFibGUgb2JqZWN0IHZhbHVlCitlc2lkOiBzZWMtcHJvbWlz
ZS5hbnkKK2luZm86IHwKKyAgUGVyZm9ybVByb21pc2VBbnkKKworICBTZXQgcmVtYWluaW5nRWxl
bWVudHNDb3VudC5bW1ZhbHVlXV0gdG8gcmVtYWluaW5nRWxlbWVudHNDb3VudC5bW1ZhbHVlXV0g
KyAxLgorICBQZXJmb3JtID8gSW52b2tlKG5leHRQcm9taXNlLCAidGhlbiIsIMKrIHJlc3VsdENh
cGFiaWxpdHkuW1tSZXNvbHZlXV0sIHJlamVjdEVsZW1lbnQgwrspLgorCisgIFByb21pc2UuYW55
IFJlamVjdCBFbGVtZW50IEZ1bmN0aW9ucworCisgIExldCBhbHJlYWR5Q2FsbGVkIGJlIEYuW1tB
bHJlYWR5Q2FsbGVkXV0uCisgIElmIGFscmVhZHlDYWxsZWQuW1tWYWx1ZV1dIGlzIHRydWUsIHJl
dHVybiB1bmRlZmluZWQuCisgIFNldCBhbHJlYWR5Q2FsbGVkLltbVmFsdWVdXSB0byB0cnVlLgor
ICAuLi4KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCistLS0qLworCitsZXQgY2FsbENvdW50ID0g
MDsKK2xldCBlcnJvcjsKKworZnVuY3Rpb24gQ29uc3RydWN0b3IoZXhlY3V0b3IpIHsKKyAgZnVu
Y3Rpb24gcmVqZWN0KHJlc3VsdCkgeworICAgIGNhbGxDb3VudCArPSAxOworICAgIGVycm9yID0g
cmVzdWx0OworICB9CisgIGV4ZWN1dG9yKCgpID0+IHt0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCl9
LCByZWplY3QpOworfQorQ29uc3RydWN0b3IucmVzb2x2ZSA9IGZ1bmN0aW9uKHYpIHsKKyAgcmV0
dXJuIHY7Cit9OworCitsZXQgcDFPblJlamVjdGVkLCBwMk9uUmVqZWN0ZWQsIHAzT25SZWplY3Rl
ZDsKKworbGV0IHAxID0geworICB0aGVuKF8sIG9uUmVqZWN0ZWQpIHsKKyAgICBwMU9uUmVqZWN0
ZWQgPSBvblJlamVjdGVkOworICB9Cit9OworbGV0IHAyID0geworICB0aGVuKF8sIG9uUmVqZWN0
ZWQpIHsKKyAgICBwMk9uUmVqZWN0ZWQgPSBvblJlamVjdGVkOworICB9Cit9OworbGV0IHAzID0g
eworICB0aGVuKF8sIG9uUmVqZWN0ZWQpIHsKKyAgICBwM09uUmVqZWN0ZWQgPSBvblJlamVjdGVk
OworICB9Cit9OworCithc3NlcnQuc2FtZVZhbHVlKGNhbGxDb3VudCwgMCwgJ2NhbGxDb3VudCBi
ZWZvcmUgY2FsbCB0byBhbnkoKScpOworCitQcm9taXNlLmFueS5jYWxsKENvbnN0cnVjdG9yLCBb
cDEsIHAyLCBwM10pOworCithc3NlcnQuc2FtZVZhbHVlKGNhbGxDb3VudCwgMCwgJ2NhbGxDb3Vu
dCBhZnRlciBjYWxsIHRvIGFueSgpJyk7CisKK3AxT25SZWplY3RlZCgncDEtcmVqZWN0aW9uJyk7
CitwMU9uUmVqZWN0ZWQoJ3AxLXJlamVjdGlvbi11bmV4cGVjdGVkLTEnKTsKK3AxT25SZWplY3Rl
ZCgncDEtcmVqZWN0aW9uLXVuZXhwZWN0ZWQtMicpOworCithc3NlcnQuc2FtZVZhbHVlKGNhbGxD
b3VudCwgMCwgJ2NhbGxDb3VudCBhZnRlciByZXNvbHZpbmcgcDEnKTsKKworcDJPblJlamVjdGVk
KCdwMi1yZWplY3Rpb24nKTsKK3AzT25SZWplY3RlZCgncDMtcmVqZWN0aW9uJyk7CisKK2Fzc2Vy
dC5zYW1lVmFsdWUoY2FsbENvdW50LCAxLCAnY2FsbENvdW50IGFmdGVyIHJlc29sdmluZyBhbGwg
ZWxlbWVudHMnKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9yZXNvbHZlLW5vbi10aGVuYWJsZS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlLW5vbi10aGVuYWJsZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hYThjYTMyM2NiMTZmNDY2MmE2MzhlMWVlYzhmNzExYWVlMGQ1ODM4Ci0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Jlc29sdmUt
bm9uLXRoZW5hYmxlLmpzCkBAIC0wLDAgKzEsMjUgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBS
aWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQor
ZGVzY3JpcHRpb246IFJlc29sdmluZyB3aXRoIGEgbm9uLXRoZW5hYmxlIG9iamVjdCB2YWx1ZQor
ZXNpZDogc2VjLXByb21pc2UuYW55CitpbmZvOiB8CisgIFBlcmZvcm1Qcm9taXNlQW55CisKKyAg
U2V0IHJlbWFpbmluZ0VsZW1lbnRzQ291bnQuW1tWYWx1ZV1dIHRvIHJlbWFpbmluZ0VsZW1lbnRz
Q291bnQuW1tWYWx1ZV1dICsgMS4KKyAgUGVyZm9ybSA/IEludm9rZShuZXh0UHJvbWlzZSwgInRo
ZW4iLCDCqyByZXN1bHRDYXBhYmlsaXR5LltbUmVzb2x2ZV1dLCByZWplY3RFbGVtZW50IMK7KS4K
KworZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCistLS0qLworCitjb25z
dCBhID0ge307Citjb25zdCBiID0ge307Citjb25zdCBjID0ge307CisKK1Byb21pc2UuYW55KFth
LCBiLCBjXSkKKyAgLnRoZW4oKHZhbHVlKSA9PiB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1
ZSwgYSk7CisgIH0sICgpID0+IHsKKyAgICAkRE9ORSgnVGhlIHByb21pc2Ugc2hvdWxkIG5vdCBi
ZSByZWplY3RlZC4nKTsKKyAgfSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Jlc29sdmVkLXNlcXVlbmNl
LWV4dHJhLXRpY2tzLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L3Jlc29sdmVkLXNlcXVlbmNlLWV4dHJhLXRpY2tzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZWI2ZGUy
YjZiNTZmZDRkZTNlYTViYWRkYmQ0NmEyMzJkN2ZmY2UKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZWQtc2VxdWVuY2Ut
ZXh0cmEtdGlja3MuanMKQEAgLTAsMCArMSw1MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJp
Y2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5l
ZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0K
K2VzaWQ6IHNlYy1wcm9taXNlLmFueQorZGVzY3JpcHRpb246IFJlc29sdXRpb24gdGlja3MgYXJl
IHNldCBpbiBhIHByZWRpY3RhYmxlIHNlcXVlbmNlIHdpdGggZXh0cmEgdGhlbiBjYWxscworaW5m
bzogfAorICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbnkgKCBpdGVyYXRvclJl
Y29yZCwgY29uc3RydWN0b3IsIHJlc3VsdENhcGFiaWxpdHkgKQorCisgIExldCByZW1haW5pbmdF
bGVtZW50c0NvdW50IGJlIGEgbmV3IFJlY29yZCB7IFtbVmFsdWVdXTogMSB9LgorICAuLi4KKwor
ICBTZXQgcmVtYWluaW5nRWxlbWVudHNDb3VudC5bW1ZhbHVlXV0gdG8gcmVtYWluaW5nRWxlbWVu
dHNDb3VudC5bW1ZhbHVlXV0gLSAxLgorICBJZiByZW1haW5pbmdFbGVtZW50c0NvdW50LltbVmFs
dWVdXSBpcyAwLCB0aGVuCisgICAgTGV0IGVycm9yIGJlIGEgbmV3bHkgY3JlYXRlZCBBZ2dyZWdh
dGVFcnJvciBvYmplY3QuCisgICAgUGVyZm9ybSAhIERlZmluZVByb3BlcnR5T3JUaHJvdyhlcnJv
ciwgImVycm9ycyIsCisgICAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHsKKyAgICAgICAgW1tDb25m
aWd1cmFibGVdXTogdHJ1ZSwKKyAgICAgICAgW1tFbnVtZXJhYmxlXV06IGZhbHNlLAorICAgICAg
ICBbW1dyaXRhYmxlXV06IHRydWUsCisgICAgICAgIFtbVmFsdWVdXTogZXJyb3JzCisgICAgICB9
KS4KKyAgICBSZXR1cm4gPyBDYWxsKHByb21pc2VDYXBhYmlsaXR5LltbUmVqZWN0XV0sIHVuZGVm
aW5lZCwgwqsgZXJyb3IgwrspLgorICAuLi4KK2ZsYWdzOiBbYXN5bmNdCitpbmNsdWRlczogW3By
b21pc2VIZWxwZXIuanNdCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorLS0tKi8KKworbGV0IHNl
cXVlbmNlID0gW107CisKK2xldCBwMSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICByZXNv
bHZlKHt9KTsKK30pOworCitzZXF1ZW5jZS5wdXNoKDEpOworCitQcm9taXNlLmFueShbcDFdKS50
aGVuKChyZXNvbHZlZCkgPT4geworICBzZXF1ZW5jZS5wdXNoKDQpOworICBjaGVja1NlcXVlbmNl
KHNlcXVlbmNlLCAnRXhwZWN0ZWQgUHJvbWlzZS5hbnkoKS50aGVuIHRvIHF1ZXVlIHNlY29uZCcp
OworfSkuY2F0Y2goJERPTkUpOworCitwMS50aGVuKCgpID0+IHsKKyAgc2VxdWVuY2UucHVzaCgz
KTsKKyAgY2hlY2tTZXF1ZW5jZShzZXF1ZW5jZSwgJ0V4cGVjdGVkIHAxLnRoZW4gdG8gcXVldWUg
Zmlyc3QnKTsKK30pLnRoZW4oKCkgPT4geworICBzZXF1ZW5jZS5wdXNoKDUpOworICBjaGVja1Nl
cXVlbmNlKHNlcXVlbmNlLCAnRXhwZWN0ZWQgZmluYWwgdGhlbiB0byBxdWV1ZSBsYXN0Jyk7Cit9
KS50aGVuKCRET05FLCAkRE9ORSk7CisKK3NlcXVlbmNlLnB1c2goMik7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZWQtc2VxdWVu
Y2UtbWl4ZWQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
cmVzb2x2ZWQtc2VxdWVuY2UtbWl4ZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UzNTY2NGRlMzI3ZTMxMzE0
MmI4YjcyNjE3Y2JhMDBjYmNjOTdlOQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlZC1zZXF1ZW5jZS1taXhlZC5qcwpA
QCAtMCwwICsxLDY1IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGlj
ZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21p
c2UuYW55CitkZXNjcmlwdGlvbjogPgorICBSZXNvbHV0aW9uIHRpY2tzIGFyZSBzZXQgaW4gYSBw
cmVkaWN0YWJsZSBzZXF1ZW5jZSBvZiBtaXhlZCBmdWxmaWxsZWQgYW5kIHJlamVjdGVkIHByb21p
c2VzCitpbmZvOiB8CisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueSAoIGl0
ZXJhdG9yUmVjb3JkLCBjb25zdHJ1Y3RvciwgcmVzdWx0Q2FwYWJpbGl0eSApCisKKyAgTGV0IHJl
bWFpbmluZ0VsZW1lbnRzQ291bnQgYmUgYSBuZXcgUmVjb3JkIHsgW1tWYWx1ZV1dOiAxIH0uCisg
IC4uLgorCisgIFNldCByZW1haW5pbmdFbGVtZW50c0NvdW50LltbVmFsdWVdXSB0byByZW1haW5p
bmdFbGVtZW50c0NvdW50LltbVmFsdWVdXSAtIDEuCisgIElmIHJlbWFpbmluZ0VsZW1lbnRzQ291
bnQuW1tWYWx1ZV1dIGlzIDAsIHRoZW4KKyAgICBMZXQgZXJyb3IgYmUgYSBuZXdseSBjcmVhdGVk
IEFnZ3JlZ2F0ZUVycm9yIG9iamVjdC4KKyAgICBQZXJmb3JtICEgRGVmaW5lUHJvcGVydHlPclRo
cm93KGVycm9yLCAiZXJyb3JzIiwKKyAgICAgIFByb3BlcnR5IERlc2NyaXB0b3IgeworICAgICAg
ICBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlLAorICAgICAgICBbW0VudW1lcmFibGVdXTogZmFsc2Us
CisgICAgICAgIFtbV3JpdGFibGVdXTogdHJ1ZSwKKyAgICAgICAgW1tWYWx1ZV1dOiBlcnJvcnMK
KyAgICAgIH0pLgorICAgIFJldHVybiA/IENhbGwocHJvbWlzZUNhcGFiaWxpdHkuW1tSZWplY3Rd
XSwgdW5kZWZpbmVkLCDCqyBlcnJvciDCuykuCisgIC4uLgorZmxhZ3M6IFthc3luY10KK2luY2x1
ZGVzOiBbcHJvbWlzZUhlbHBlci5qc10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCistLS0qLwor
CitsZXQgc2VxdWVuY2UgPSBbXTsKKworbGV0IHAxID0gbmV3IFByb21pc2UoKF8sIHJlamVjdCkg
PT4geworICByZWplY3QoJycpOworfSk7CitsZXQgcDIgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHsKKyAgcmVzb2x2ZSgnJyk7Cit9KTsKK2xldCBwMyA9IG5ldyBQcm9taXNlKChfLCByZWplY3Qp
ID0+IHsKKyAgcmVqZWN0KCcnKTsKK30pOworCitzZXF1ZW5jZS5wdXNoKDEpOworCitwMS5jYXRj
aCgoKSA9PiB7CisgIHNlcXVlbmNlLnB1c2goMyk7CisgIGNoZWNrU2VxdWVuY2Uoc2VxdWVuY2Us
ICdFeHBlY3RlZCB0byBiZSBjYWxsZWQgZmlyc3QuJyk7Cit9KS5jYXRjaCgkRE9ORSk7CisKK1By
b21pc2UuYW55KFtwMSwgcDIsIHAzXSkudGhlbigoKSA9PiB7CisgIHNlcXVlbmNlLnB1c2goNik7
CisgIGNoZWNrU2VxdWVuY2Uoc2VxdWVuY2UsICdFeHBlY3RlZCB0byBiZSBjYWxsZWQgZm91cnRo
LicpOworfSkudGhlbigkRE9ORSwgJERPTkUpOworCitwMi50aGVuKCgpID0+IHsKKyAgc2VxdWVu
Y2UucHVzaCg0KTsKKyAgY2hlY2tTZXF1ZW5jZShzZXF1ZW5jZSwgJ0V4cGVjdGVkIHRvIGJlIGNh
bGxlZCBzZWNvbmQuJyk7Cit9KS5jYXRjaCgkRE9ORSk7CisKK3NlcXVlbmNlLnB1c2goMik7CisK
K3AzLmNhdGNoKCgpID0+IHsKKyAgc2VxdWVuY2UucHVzaCg1KTsKKyAgY2hlY2tTZXF1ZW5jZShz
ZXF1ZW5jZSwgJ0V4cGVjdGVkIHRvIGJlIGNhbGxlZCB0aGlyZC4nKTsKK30pLmNhdGNoKCRET05F
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2Fu
eS9yZXNvbHZlZC1zZXF1ZW5jZS13aXRoLXJlamVjdGlvbnMuanMgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZWQtc2VxdWVuY2Utd2l0aC1yZWplY3Rp
b25zLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE0MGI2MTBlNTY4ZmIwZWQzNTAzOWUwYzMyMjVlMzBiN2IwZmNk
MDAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvcmVzb2x2ZWQtc2VxdWVuY2Utd2l0aC1yZWplY3Rpb25zLmpzCkBAIC0wLDAgKzEs
NjEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5k
IGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rl
c2NyaXB0aW9uOiBSZXNvbHV0aW9uIHRpY2tzIGFyZSBzZXQgaW4gYSBwcmVkaWN0YWJsZSBzZXF1
ZW5jZQoraW5mbzogfAorICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbnkgKCBp
dGVyYXRvclJlY29yZCwgY29uc3RydWN0b3IsIHJlc3VsdENhcGFiaWxpdHkgKQorCisgIExldCBy
ZW1haW5pbmdFbGVtZW50c0NvdW50IGJlIGEgbmV3IFJlY29yZCB7IFtbVmFsdWVdXTogMSB9Lgor
ICAuLi4KKworICBTZXQgcmVtYWluaW5nRWxlbWVudHNDb3VudC5bW1ZhbHVlXV0gdG8gcmVtYWlu
aW5nRWxlbWVudHNDb3VudC5bW1ZhbHVlXV0gLSAxLgorICBJZiByZW1haW5pbmdFbGVtZW50c0Nv
dW50LltbVmFsdWVdXSBpcyAwLCB0aGVuCisgICAgTGV0IGVycm9yIGJlIGEgbmV3bHkgY3JlYXRl
ZCBBZ2dyZWdhdGVFcnJvciBvYmplY3QuCisgICAgUGVyZm9ybSAhIERlZmluZVByb3BlcnR5T3JU
aHJvdyhlcnJvciwgImVycm9ycyIsCisgICAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHsKKyAgICAg
ICAgW1tDb25maWd1cmFibGVdXTogdHJ1ZSwKKyAgICAgICAgW1tFbnVtZXJhYmxlXV06IGZhbHNl
LAorICAgICAgICBbW1dyaXRhYmxlXV06IHRydWUsCisgICAgICAgIFtbVmFsdWVdXTogZXJyb3Jz
CisgICAgICB9KS4KKyAgICBSZXR1cm4gPyBDYWxsKHByb21pc2VDYXBhYmlsaXR5LltbUmVqZWN0
XV0sIHVuZGVmaW5lZCwgwqsgZXJyb3IgwrspLgorICAuLi4KK2ZsYWdzOiBbYXN5bmNdCitpbmNs
dWRlczogW3Byb21pc2VIZWxwZXIuanNdCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorLS0tKi8K
KworbGV0IHNlcXVlbmNlID0gW107CisKK2xldCBwMSA9IG5ldyBQcm9taXNlKChfLCByZWplY3Qp
ID0+IHsKKyAgcmVqZWN0KCdmb28nKTsKK30pOworbGV0IHAyID0gbmV3IFByb21pc2UoKF8sIHJl
amVjdCkgPT4geworICByZWplY3QoJ2JhcicpOworfSk7CisKK3NlcXVlbmNlLnB1c2goMSk7CisK
K3AxLmNhdGNoKCgpID0+IHsKKyAgc2VxdWVuY2UucHVzaCgzKTsKKyAgY2hlY2tTZXF1ZW5jZShz
ZXF1ZW5jZSwgJ0V4cGVjdGVkIHRvIGJlIGNhbGxlZCBmaXJzdC4nKTsKK30pLmNhdGNoKCRET05F
KTsKKworUHJvbWlzZS5hbnkoW3AxLCBwMl0pLnRoZW4oKCkgPT4geworICBzZXF1ZW5jZS5wdXNo
KDUpOworICBjaGVja1NlcXVlbmNlKHNlcXVlbmNlLCAnRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIHRo
aXJkLicpOworfSkudGhlbigkRE9ORSwgb3V0Y29tZSA9PiB7CisgIGFzc2VydChvdXRjb21lIGlu
c3RhbmNlb2YgQWdncmVnYXRlRXJyb3IpOworICBhc3NlcnQuc2FtZVZhbHVlKG91dGNvbWUuZXJy
b3JzLmxlbmd0aCwgMik7CisgIGFzc2VydC5zYW1lVmFsdWUob3V0Y29tZS5lcnJvcnNbMF0sICdm
b28nKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShvdXRjb21lLmVycm9yc1sxXSwgJ2JhcicpOworfSku
dGhlbigkRE9ORSwgJERPTkUpOworCitwMi5jYXRjaCgoKSA9PiB7CisgIHNlcXVlbmNlLnB1c2go
NCk7CisgIGNoZWNrU2VxdWVuY2Uoc2VxdWVuY2UsICdFeHBlY3RlZCB0byBiZSBjYWxsZWQgc2Vj
b25kLicpOworfSkuY2F0Y2goJERPTkUpOworCitzZXF1ZW5jZS5wdXNoKDIpOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Jlc29sdmVkLXNl
cXVlbmNlLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Jl
c29sdmVkLXNlcXVlbmNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmODNhMTIzOGZiZGJmZmNmZTQyMDIyYzNj
MWM5M2RlYmM3ZWM1MTIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZWQtc2VxdWVuY2UuanMKQEAgLTAsMCArMSw1MSBA
QAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQorZGVzY3Jp
cHRpb246IFJlc29sdXRpb24gdGlja3MgYXJlIHNldCBpbiBhIHByZWRpY3RhYmxlIHNlcXVlbmNl
CitpbmZvOiB8CisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueSAoIGl0ZXJh
dG9yUmVjb3JkLCBjb25zdHJ1Y3RvciwgcmVzdWx0Q2FwYWJpbGl0eSApCisKKyAgTGV0IHJlbWFp
bmluZ0VsZW1lbnRzQ291bnQgYmUgYSBuZXcgUmVjb3JkIHsgW1tWYWx1ZV1dOiAxIH0uCisgIC4u
LgorICA2LmQgLi4uCisgICAgaWkuIFNldCByZW1haW5pbmdFbGVtZW50c0NvdW50LltbdmFsdWVd
XSB0byByZW1haW5pbmdFbGVtZW50c0NvdW50LltbdmFsdWVdXSDiiJIgMS4KKyAgICBpaWkuIElm
IHJlbWFpbmluZ0VsZW1lbnRzQ291bnQuW1t2YWx1ZV1dIGlzIDAsIHRoZW4KKyAgICAgIExldCBl
cnJvciBiZSBhIG5ld2x5IGNyZWF0ZWQgQWdncmVnYXRlRXJyb3Igb2JqZWN0LgorICAgICAgUGVy
Zm9ybSAhIERlZmluZVByb3BlcnR5T3JUaHJvdyhlcnJvciwgImVycm9ycyIsCisgICAgICAgIFBy
b3BlcnR5IERlc2NyaXB0b3IgeyBbW0NvbmZpZ3VyYWJsZV1dOiAgdHJ1ZSwgW1tFbnVtZXJhYmxl
XV06IGZhbHNlLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbVmFsdWVdXTogZXJyb3JzIH0pLgorICAg
ICAgUmV0dXJuIFRocm93Q29tcGxldGlvbihlcnJvcikuCisgIC4uLgorZmxhZ3M6IFthc3luY10K
K2luY2x1ZGVzOiBbcHJvbWlzZUhlbHBlci5qc10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCist
LS0qLworCit2YXIgc2VxdWVuY2UgPSBbXTsKKwordmFyIHAxID0gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7CisgIHJlc29sdmUoMSk7Cit9KTsKK3ZhciBwMiA9IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4geworICByZXNvbHZlKDIpOworfSk7CisKK3NlcXVlbmNlLnB1c2goMSk7CisKK3AxLnRoZW4o
ZnVuY3Rpb24oKSB7CisgIHNlcXVlbmNlLnB1c2goMyk7CisgIGNoZWNrU2VxdWVuY2Uoc2VxdWVu
Y2UsICdFeHBlY3RlZCB0byBiZSBjYWxsZWQgZmlyc3QuJyk7Cit9KS5jYXRjaCgkRE9ORSk7CisK
K1Byb21pc2UuYW55KFtwMSwgcDJdKS50aGVuKGZ1bmN0aW9uKCkgeworICBzZXF1ZW5jZS5wdXNo
KDUpOworICBjaGVja1NlcXVlbmNlKHNlcXVlbmNlLCAnRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIHRo
aXJkLicpOworfSkudGhlbigkRE9ORSwgJERPTkUpOworCitwMi50aGVuKGZ1bmN0aW9uKCkgewor
ICBzZXF1ZW5jZS5wdXNoKDQpOworICBjaGVja1NlcXVlbmNlKHNlcXVlbmNlLCAnRXhwZWN0ZWQg
dG8gYmUgY2FsbGVkIHNlY29uZC4nKTsKK30pLmNhdGNoKCRET05FKTsKKworc2VxdWVuY2UucHVz
aCgyKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L3Byb3RvdHlwZS9maW5hbGx5L3JlamVjdGVkLW9ic2VydmFibGUtdGhlbi1jYWxscy1hcmd1bWVu
dC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL3Byb3RvdHlwZS9m
aW5hbGx5L3JlamVjdGVkLW9ic2VydmFibGUtdGhlbi1jYWxscy1hcmd1bWVudC5qcwppbmRleCA0
MmVmM2Y4MWZkMzhhNjk0ZjM0MTA1ZjQ5N2I3MTMwZmRmZmUyN2JlLi4wYjgzYmY1NTE2ZjNiYjZj
ZWNkZmVjNWVkYmFhYmQyYWZjNzFlYTlkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9wcm90b3R5cGUvZmluYWxseS9yZWplY3RlZC1vYnNlcnZhYmxl
LXRoZW4tY2FsbHMtYXJndW1lbnQuanMKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL1Byb21pc2UvcHJvdG90eXBlL2ZpbmFsbHkvcmVqZWN0ZWQtb2JzZXJ2YWJsZS10aGVuLWNh
bGxzLWFyZ3VtZW50LmpzCkBAIC0xNyw5ICsxNywyMCBAQCBpbmNsdWRlczogW2lzQ29uc3RydWN0
b3IuanNdCiBmbGFnczogW2FzeW5jXQogLS0tKi8KIAotUHJvbWlzZS5yZWplY3QobmV3IFRlc3Qy
NjJFcnJvcigpKQorY2xhc3MgTXlFcnJvciBleHRlbmRzIEVycm9yIHt9CisKK3ZhciBteUVycm9y
ID0gbmV3IE15RXJyb3IoKTsKK1Byb21pc2UucmVqZWN0KG15RXJyb3IpCiAgIC5maW5hbGx5KGZ1
bmN0aW9uKCkge30pCi0gIC50aGVuKCRET05FLCAoKSA9PiAkRE9ORSgpKTsKKyAgLnRoZW4oZnVu
Y3Rpb24odmFsdWUpIHsKKyAgICAkRE9ORSgnRXhwZWN0ZWQgcHJvbWlzZSB0byBiZSByZWplY3Rl
ZCwgZ290IGZ1bGZpbGxlZCB3aXRoICcgKyB2YWx1ZSk7CisgIH0sIGZ1bmN0aW9uKHJlYXNvbikg
eworICAgIGlmIChyZWFzb24gPT09IG15RXJyb3IpIHsKKyAgICAgICRET05FKCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICRET05FKHJlYXNvbik7CisgICAgfQorICB9KTsKIAogdmFyIGNhbGxzID0g
MDsKIHZhciBleHBlY3RlZCA9IFsKQEAgLTMzLDcgKzQ0LDcgQEAgUHJvbWlzZS5wcm90b3R5cGUu
dGhlbiA9IGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICBhc3NlcnQuc2FtZVZhbHVlKHJl
c29sdmUubGVuZ3RoLCBleHBlY3RlZFtjYWxsc10ubGVuZ3RoKTsKICAgYXNzZXJ0LnNhbWVWYWx1
ZShyZXNvbHZlLm5hbWUsIGV4cGVjdGVkW2NhbGxzXS5uYW1lKTsKICAgaWYgKGNhbGxzID09PSAw
KSB7Ci0gICAgYXNzZXJ0LnRocm93cyhUZXN0MjYyRXJyb3IsIHJlc29sdmUpOworICAgIGFzc2Vy
dC50aHJvd3MoTXlFcnJvciwgcmVzb2x2ZSk7CiAgIH0KIAogICBjYWxscyArPSAxOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBl
L2luZGV4T2YvQmlnSW50L25vLWFyZy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9UeXBlZEFycmF5L3Byb3RvdHlwZS9pbmRleE9mL0JpZ0ludC9uby1hcmcuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2U1MGZkMzcwZjIxNjhmMDhmYmFiYWI1NzA3NDZlNGEwM2Y3YWM3NgotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlw
ZS9pbmRleE9mL0JpZ0ludC9uby1hcmcuanMKQEAgLTAsMCArMSwyOSBAQAorLy8gQ29weXJpZ2h0
IChDKSAyMDIwIEFsZXhleSBTaHZheWthLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBj
b2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBm
aWxlLgorLyotLS0KK2VzaWQ6IHNlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmluZGV4b2YKK2Rl
c2NyaXB0aW9uOiA+CisgIElmIGBzZWFyY2hFbGVtZW50YCBpcyBub3Qgc3VwcGxpZWQsIC0xIGlz
IHJldHVybmVkLgoraW5mbzogfAorICAlVHlwZWRBcnJheSUucHJvdG90eXBlLmluZGV4T2YgKCBz
ZWFyY2hFbGVtZW50IFsgLCBmcm9tSW5kZXggXSApCisKKyAgJVR5cGVkQXJyYXklLnByb3RvdHlw
ZS5pbmRleE9mIGlzIGEgZGlzdGluY3QgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzCisgIHRoZSBz
YW1lIGFsZ29yaXRobSBhcyBBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcyBkZWZpbmVkIGluIDIy
LjEuMy4xNAorICBleGNlcHQgdGhhdCB0aGUgdGhpcyB2YWx1ZSdzIFtbQXJyYXlMZW5ndGhdXSBp
bnRlcm5hbCBzbG90IGlzIGFjY2Vzc2VkCisgIGluIHBsYWNlIG9mIHBlcmZvcm1pbmcgYSBbW0dl
dF1dIG9mICJsZW5ndGgiLgorCisgIEFycmF5LnByb3RvdHlwZS5pbmRleE9mICggc2VhcmNoRWxl
bWVudCBbICwgZnJvbUluZGV4IF0gKQorCisgIFsuLi5dCisgIDEwLiBSZXR1cm4gLTEuCitpbmNs
dWRlczogW3Rlc3RCaWdJbnRUeXBlZEFycmF5LmpzXQorZmVhdHVyZXM6IFtCaWdJbnQsIFR5cGVk
QXJyYXldCistLS0qLworCit0ZXN0V2l0aEJpZ0ludFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnMoZnVu
Y3Rpb24oVEEpIHsKKyAgdmFyIHRhMSA9IG5ldyBUQSgpOworICBhc3NlcnQuc2FtZVZhbHVlKHRh
MS5pbmRleE9mKCksIC0xKTsKKworICB2YXIgdGEyID0gbmV3IFRBKFswbiwgMW4sIDJuXSk7Cisg
IGFzc2VydC5zYW1lVmFsdWUodGEyLmluZGV4T2YoKSwgLTEpOworfSk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvaW5kZXhP
Zi9uby1hcmcuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9w
cm90b3R5cGUvaW5kZXhPZi9uby1hcmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZiZGVkZmI3YTVlOGM4OTk1
YjA4NjRkNTA2YjM4YTQ3N2VjM2IxYQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9pbmRleE9mL25vLWFyZy5qcwpA
QCAtMCwwICsxLDI5IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5a2EuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBs
aWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLSV0eXBl
ZGFycmF5JS5wcm90b3R5cGUuaW5kZXhvZgorZGVzY3JpcHRpb246ID4KKyAgSWYgYHNlYXJjaEVs
ZW1lbnRgIGlzIG5vdCBzdXBwbGllZCwgLTEgaXMgcmV0dXJuZWQuCitpbmZvOiB8CisgICVUeXBl
ZEFycmF5JS5wcm90b3R5cGUuaW5kZXhPZiAoIHNlYXJjaEVsZW1lbnQgWyAsIGZyb21JbmRleCBd
ICkKKworICAlVHlwZWRBcnJheSUucHJvdG90eXBlLmluZGV4T2YgaXMgYSBkaXN0aW5jdCBmdW5j
dGlvbiB0aGF0IGltcGxlbWVudHMKKyAgdGhlIHNhbWUgYWxnb3JpdGhtIGFzIEFycmF5LnByb3Rv
dHlwZS5pbmRleE9mIGFzIGRlZmluZWQgaW4gMjIuMS4zLjE0CisgIGV4Y2VwdCB0aGF0IHRoZSB0
aGlzIHZhbHVlJ3MgW1tBcnJheUxlbmd0aF1dIGludGVybmFsIHNsb3QgaXMgYWNjZXNzZWQKKyAg
aW4gcGxhY2Ugb2YgcGVyZm9ybWluZyBhIFtbR2V0XV0gb2YgImxlbmd0aCIuCisKKyAgQXJyYXku
cHJvdG90eXBlLmluZGV4T2YgKCBzZWFyY2hFbGVtZW50IFsgLCBmcm9tSW5kZXggXSApCisKKyAg
Wy4uLl0KKyAgMTAuIFJldHVybiAtMS4KK2luY2x1ZGVzOiBbdGVzdFR5cGVkQXJyYXkuanNdCitm
ZWF0dXJlczogW1R5cGVkQXJyYXldCistLS0qLworCit0ZXN0V2l0aFR5cGVkQXJyYXlDb25zdHJ1
Y3RvcnMoZnVuY3Rpb24oVEEpIHsKKyAgdmFyIHRhMSA9IG5ldyBUQSgpOworICBhc3NlcnQuc2Ft
ZVZhbHVlKHRhMS5pbmRleE9mKCksIC0xKTsKKworICB2YXIgdGEyID0gbmV3IFRBKFswLCAxLCAy
XSk7CisgIGFzc2VydC5zYW1lVmFsdWUodGEyLmluZGV4T2YoKSwgLTEpOworfSk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUv
bGFzdEluZGV4T2YvQmlnSW50L25vLWFyZy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9sYXN0SW5kZXhPZi9CaWdJbnQvbm8tYXJnLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZjODA0MGFkNzNiMDg0OTllOGJmOWIxMDU1YzU4ZWI2YzIyYzdmZjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9w
cm90b3R5cGUvbGFzdEluZGV4T2YvQmlnSW50L25vLWFyZy5qcwpAQCAtMCwwICsxLDI5IEBACisv
LyBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5a2EuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUu
bGFzdGluZGV4b2YKK2Rlc2NyaXB0aW9uOiA+CisgIElmIGBzZWFyY2hFbGVtZW50YCBpcyBub3Qg
c3VwcGxpZWQsIC0xIGlzIHJldHVybmVkLgoraW5mbzogfAorICAlVHlwZWRBcnJheSUucHJvdG90
eXBlLmxhc3RJbmRleE9mICggc2VhcmNoRWxlbWVudCBbICwgZnJvbUluZGV4IF0gKQorCisgICVU
eXBlZEFycmF5JS5wcm90b3R5cGUubGFzdEluZGV4T2YgaXMgYSBkaXN0aW5jdCBmdW5jdGlvbiB0
aGF0IGltcGxlbWVudHMKKyAgdGhlIHNhbWUgYWxnb3JpdGhtIGFzIEFycmF5LnByb3RvdHlwZS5s
YXN0SW5kZXhPZiBhcyBkZWZpbmVkIGluIDIyLjEuMy4xNworICBleGNlcHQgdGhhdCB0aGUgdGhp
cyB2YWx1ZSdzIFtbQXJyYXlMZW5ndGhdXSBpbnRlcm5hbCBzbG90IGlzIGFjY2Vzc2VkCisgIGlu
IHBsYWNlIG9mIHBlcmZvcm1pbmcgYSBbW0dldF1dIG9mICJsZW5ndGgiLgorCisgIEFycmF5LnBy
b3RvdHlwZS5sYXN0SW5kZXhPZiAoIHNlYXJjaEVsZW1lbnQgWyAsIGZyb21JbmRleCBdICkKKwor
ICBbLi4uXQorICA4LiBSZXR1cm4gLTEuCitpbmNsdWRlczogW3Rlc3RCaWdJbnRUeXBlZEFycmF5
LmpzXQorZmVhdHVyZXM6IFtCaWdJbnQsIFR5cGVkQXJyYXldCistLS0qLworCit0ZXN0V2l0aEJp
Z0ludFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnMoZnVuY3Rpb24oVEEpIHsKKyAgdmFyIHRhMSA9IG5l
dyBUQSgpOworICBhc3NlcnQuc2FtZVZhbHVlKHRhMS5sYXN0SW5kZXhPZigpLCAtMSk7CisKKyAg
dmFyIHRhMiA9IG5ldyBUQShbMG4sIDFuLCAybl0pOworICBhc3NlcnQuc2FtZVZhbHVlKHRhMi5s
YXN0SW5kZXhPZigpLCAtMSk7Cit9KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9sYXN0SW5kZXhPZi9uby1hcmcuanMgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvbGFzdElu
ZGV4T2Yvbm8tYXJnLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxM2VjYzE3YzFkNWI2NzYwNmE1NWNkM2Q0MDFh
NDM0OWMzYzhhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvbGFzdEluZGV4T2Yvbm8tYXJnLmpzCkBAIC0wLDAg
KzEsMjkgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYS4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2Ug
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtJXR5cGVkYXJyYXkl
LnByb3RvdHlwZS5sYXN0aW5kZXhvZgorZGVzY3JpcHRpb246ID4KKyAgSWYgYHNlYXJjaEVsZW1l
bnRgIGlzIG5vdCBzdXBwbGllZCwgLTEgaXMgcmV0dXJuZWQuCitpbmZvOiB8CisgICVUeXBlZEFy
cmF5JS5wcm90b3R5cGUubGFzdEluZGV4T2YgKCBzZWFyY2hFbGVtZW50IFsgLCBmcm9tSW5kZXgg
XSApCisKKyAgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5sYXN0SW5kZXhPZiBpcyBhIGRpc3RpbmN0
IGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cworICB0aGUgc2FtZSBhbGdvcml0aG0gYXMgQXJyYXku
cHJvdG90eXBlLmxhc3RJbmRleE9mIGFzIGRlZmluZWQgaW4gMjIuMS4zLjE3CisgIGV4Y2VwdCB0
aGF0IHRoZSB0aGlzIHZhbHVlJ3MgW1tBcnJheUxlbmd0aF1dIGludGVybmFsIHNsb3QgaXMgYWNj
ZXNzZWQKKyAgaW4gcGxhY2Ugb2YgcGVyZm9ybWluZyBhIFtbR2V0XV0gb2YgImxlbmd0aCIuCisK
KyAgQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mICggc2VhcmNoRWxlbWVudCBbICwgZnJvbUlu
ZGV4IF0gKQorCisgIFsuLi5dCisgIDguIFJldHVybiAtMS4KK2luY2x1ZGVzOiBbdGVzdFR5cGVk
QXJyYXkuanNdCitmZWF0dXJlczogW1R5cGVkQXJyYXldCistLS0qLworCit0ZXN0V2l0aFR5cGVk
QXJyYXlDb25zdHJ1Y3RvcnMoZnVuY3Rpb24oVEEpIHsKKyAgdmFyIHRhMSA9IG5ldyBUQSgpOwor
ICBhc3NlcnQuc2FtZVZhbHVlKHRhMS5sYXN0SW5kZXhPZigpLCAtMSk7CisKKyAgdmFyIHRhMiA9
IG5ldyBUQShbMCwgMSwgMl0pOworICBhc3NlcnQuc2FtZVZhbHVlKHRhMi5sYXN0SW5kZXhPZigp
LCAtMSk7Cit9KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9U
eXBlZEFycmF5L3Byb3RvdHlwZS9zZXQvQmlnSW50L2FycmF5LWFyZy1wcmltaXRpdmUtdG9vYmpl
Y3QuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5
cGUvc2V0L0JpZ0ludC9hcnJheS1hcmctcHJpbWl0aXZlLXRvb2JqZWN0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc2NDdjOGIyNzNhOGE1YTRlOGM4ZDQzNDQ5OWY3NTM5NmQ4ZDkyMzIKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUv
c2V0L0JpZ0ludC9hcnJheS1hcmctcHJpbWl0aXZlLXRvb2JqZWN0LmpzCkBAIC0wLDAgKzEsNDkg
QEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtJXR5cGVkYXJyYXklLnByb3Rv
dHlwZS5zZXQtYXJyYXktb2Zmc2V0CitkZXNjcmlwdGlvbjogPgorICBQcmltaXRpdmUgYGFycmF5
YCBhcmd1bWVudCBpcyBjb2VyY2VkIHRvIGFuIG9iamVjdC4KK2luZm86IHwKKyAgJVR5cGVkQXJy
YXklLnByb3RvdHlwZS5zZXQgKCB0eXBlZEFycmF5IFsgLCBvZmZzZXQgXSApCisKKyAgMS4gQXNz
ZXJ0OiBhcnJheSBpcyBhbnkgRUNNQVNjcmlwdCBsYW5ndWFnZSB2YWx1ZSBvdGhlciB0aGFuIGFu
IE9iamVjdAorICB3aXRoIGEgW1tUeXBlZEFycmF5TmFtZV1dIGludGVybmFsIHNsb3QuIElmIGl0
IGlzIHN1Y2ggYW4gT2JqZWN0LAorICB0aGUgZGVmaW5pdGlvbiBpbiAyMi4yLjMuMjMuMiBhcHBs
aWVzLgorICBbLi4uXQorICAxNC4gTGV0IHNyYyBiZSA/IFRvT2JqZWN0KGFycmF5KS4KKyAgMTUu
IExldCBzcmNMZW5ndGggYmUgPyBMZW5ndGhPZkFycmF5TGlrZShzcmMpLgorICBbLi4uXQorICAx
OS4gTGV0IGxpbWl0IGJlIHRhcmdldEJ5dGVJbmRleCArIHRhcmdldEVsZW1lbnRTaXplIMOXIHNy
Y0xlbmd0aC4KKyAgMjAuIFJlcGVhdCwgd2hpbGUgdGFyZ2V0Qnl0ZUluZGV4IDwgbGltaXQsCisg
ICAgYS4gTGV0IFBrIGJlICEgVG9TdHJpbmcoaykuCisgICAgYi4gTGV0IHZhbHVlIGJlID8gR2V0
KHNyYywgUGspLgorICAgIGMuIElmIHRhcmdldC5bW0NvbnRlbnRUeXBlXV0gaXMgQmlnSW50LCBz
ZXQgdmFsdWUgdG8gPyBUb0JpZ0ludCh2YWx1ZSkuCisgICAgWy4uLl0KKyAgICBmLiBQZXJmb3Jt
IFNldFZhbHVlSW5CdWZmZXIodGFyZ2V0QnVmZmVyLCB0YXJnZXRCeXRlSW5kZXgsIHRhcmdldFR5
cGUsIHZhbHVlLCB0cnVlLCBVbm9yZGVyZWQpLgorICAgIFsuLi5dCitpbmNsdWRlczogW3Rlc3RC
aWdJbnRUeXBlZEFycmF5LmpzLCBjb21wYXJlQXJyYXkuanNdCitmZWF0dXJlczogW0JpZ0ludCwg
VHlwZWRBcnJheSwgU3ltYm9sXQorLS0tKi8KKwordGVzdFdpdGhCaWdJbnRUeXBlZEFycmF5Q29u
c3RydWN0b3JzKGZ1bmN0aW9uKFRBKSB7CisgIHZhciB0YTEgPSBuZXcgVEEoWzFuLCAybiwgM24s
IDRuXSk7CisgIHRhMS5zZXQoIjU2NyIpOworICBhc3NlcnQuY29tcGFyZUFycmF5KHRhMSwgWzVu
LCA2biwgN24sIDRuXSwgInN0cmluZyIpOworCisgIHZhciB0YTIgPSBuZXcgVEEoWzFuLCAybiwg
M25dKTsKKyAgdGEyLnNldCgtMTAsIDIpOworICBhc3NlcnQuY29tcGFyZUFycmF5KHRhMiwgWzFu
LCAybiwgM25dLCAibnVtYmVyIik7CisKKyAgdmFyIHRhMyA9IG5ldyBUQShbMW5dKTsKKyAgdGEz
LnNldChmYWxzZSk7CisgIGFzc2VydC5jb21wYXJlQXJyYXkodGEzLCBbMW5dLCAiYm9vbGVhbiIp
OworCisgIHZhciB0YTQgPSBuZXcgVEEoWzFuLCAybl0pOworICB0YTQuc2V0KFN5bWJvbCgiZGVz
YyIpLCAwKTsKKyAgYXNzZXJ0LmNvbXBhcmVBcnJheSh0YTQsIFsxbiwgMm5dLCAic3ltYm9sIik7
CisKKyAgdmFyIHRhNSA9IG5ldyBUQShbMW4sIDJuXSk7CisgIHRhNS5zZXQoNG4sIDEpOworICBh
c3NlcnQuY29tcGFyZUFycmF5KHRhNSwgWzFuLCAybl0sICJiaWdpbnQiKTsKK30pOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBl
L3NldC9hcnJheS1hcmctcHJpbWl0aXZlLXRvb2JqZWN0LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL3NldC9hcnJheS1hcmctcHJpbWl0aXZl
LXRvb2JqZWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyYmY4M2EyYWQ2NDFmM2I2NTM3NjM1OTU0ZjA5NWYw
N2I4OWM4MGMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvVHlwZWRBcnJheS9wcm90b3R5cGUvc2V0L2FycmF5LWFyZy1wcmltaXRpdmUtdG9vYmplY3Qu
anMKQEAgLTAsMCArMSw0NiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIEFsZXhleSBTaHZheWth
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBC
U0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy0l
dHlwZWRhcnJheSUucHJvdG90eXBlLnNldC1hcnJheS1vZmZzZXQKK2Rlc2NyaXB0aW9uOiA+Cisg
IFByaW1pdGl2ZSBgYXJyYXlgIGFyZ3VtZW50IGlzIGNvZXJjZWQgdG8gYW4gb2JqZWN0LgoraW5m
bzogfAorICAlVHlwZWRBcnJheSUucHJvdG90eXBlLnNldCAoIHR5cGVkQXJyYXkgWyAsIG9mZnNl
dCBdICkKKworICAxLiBBc3NlcnQ6IGFycmF5IGlzIGFueSBFQ01BU2NyaXB0IGxhbmd1YWdlIHZh
bHVlIG90aGVyIHRoYW4gYW4gT2JqZWN0CisgIHdpdGggYSBbW1R5cGVkQXJyYXlOYW1lXV0gaW50
ZXJuYWwgc2xvdC4gSWYgaXQgaXMgc3VjaCBhbiBPYmplY3QsCisgIHRoZSBkZWZpbml0aW9uIGlu
IDIyLjIuMy4yMy4yIGFwcGxpZXMuCisgIFsuLi5dCisgIDE0LiBMZXQgc3JjIGJlID8gVG9PYmpl
Y3QoYXJyYXkpLgorICAxNS4gTGV0IHNyY0xlbmd0aCBiZSA/IExlbmd0aE9mQXJyYXlMaWtlKHNy
YykuCisgIFsuLi5dCisgIDE5LiBMZXQgbGltaXQgYmUgdGFyZ2V0Qnl0ZUluZGV4ICsgdGFyZ2V0
RWxlbWVudFNpemUgw5cgc3JjTGVuZ3RoLgorICAyMC4gUmVwZWF0LCB3aGlsZSB0YXJnZXRCeXRl
SW5kZXggPCBsaW1pdCwKKyAgICBhLiBMZXQgUGsgYmUgISBUb1N0cmluZyhrKS4KKyAgICBiLiBM
ZXQgdmFsdWUgYmUgPyBHZXQoc3JjLCBQaykuCisgICAgWy4uLl0KKyAgICBkLiBPdGhlcndpc2Us
IHNldCB2YWx1ZSB0byA/IFRvTnVtYmVyKHZhbHVlKS4KKyAgICBbLi4uXQorICAgIGYuIFBlcmZv
cm0gU2V0VmFsdWVJbkJ1ZmZlcih0YXJnZXRCdWZmZXIsIHRhcmdldEJ5dGVJbmRleCwgdGFyZ2V0
VHlwZSwgdmFsdWUsIHRydWUsIFVub3JkZXJlZCkuCisgICAgWy4uLl0KK2luY2x1ZGVzOiBbdGVz
dFR5cGVkQXJyYXkuanMsIGNvbXBhcmVBcnJheS5qc10KK2ZlYXR1cmVzOiBbVHlwZWRBcnJheSwg
U3ltYm9sXQorLS0tKi8KKwordGVzdFdpdGhUeXBlZEFycmF5Q29uc3RydWN0b3JzKGZ1bmN0aW9u
KFRBKSB7CisgIHZhciB0YTEgPSBuZXcgVEEoWzEsIDIsIDMsIDQsIDVdKTsKKyAgdGExLnNldCgi
Njc4IiwgMSk7CisgIGFzc2VydC5jb21wYXJlQXJyYXkodGExLCBbMSwgNiwgNywgOCwgNV0sICJz
dHJpbmciKTsKKworICB2YXIgdGEyID0gbmV3IFRBKFsxLCAyLCAzXSk7CisgIHRhMi5zZXQoMCk7
CisgIGFzc2VydC5jb21wYXJlQXJyYXkodGEyLCBbMSwgMiwgM10sICJudW1iZXIiKTsKKworICB2
YXIgdGEzID0gbmV3IFRBKFsxLCAyLCAzXSk7CisgIHRhMy5zZXQodHJ1ZSwgMik7CisgIGFzc2Vy
dC5jb21wYXJlQXJyYXkodGEzLCBbMSwgMiwgM10sICJib29sZWFuIik7CisKKyAgdmFyIHRhNCA9
IG5ldyBUQShbMV0pOworICB0YTQuc2V0KFN5bWJvbCgpKTsKKyAgYXNzZXJ0LmNvbXBhcmVBcnJh
eSh0YTQsIFsxXSwgInN5bWJvbCIpOworfSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2NvbnN0cnVjdG9yLW9wdGlvbnMtb3JkZXItdGlt
ZWRhdGUtc3R5bGUuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9y
bWF0L2NvbnN0cnVjdG9yLW9wdGlvbnMtb3JkZXItdGltZWRhdGUtc3R5bGUuanMKaW5kZXggMTc4
MGE1M2JlOGM1Mzc4NTU4MTEwZmNlYTA4NGVkZjM3NTQ5MjdmNy4uM2VhNGU3OWNjNWJjYzY3ZWFk
NzBmNzUxOTgyY2FmNmY4YjFhOGZmYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
aW50bDQwMi9EYXRlVGltZUZvcm1hdC9jb25zdHJ1Y3Rvci1vcHRpb25zLW9yZGVyLXRpbWVkYXRl
LXN0eWxlLmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3Jt
YXQvY29uc3RydWN0b3Itb3B0aW9ucy1vcmRlci10aW1lZGF0ZS1zdHlsZS5qcwpAQCAtMTUsNiAr
MTUsMTAgQEAgY29uc3QgZXhwZWN0ZWQgPSBbCiAgICJ3ZWVrZGF5IiwgInllYXIiLCAibW9udGgi
LCAiZGF5IiwKICAgLy8gVG9EYXRlVGltZU9wdGlvbnMgc3RlcCA1LgogICAiaG91ciIsICJtaW51
dGUiLCAic2Vjb25kIiwKKyAgLy8gVG9EYXRlVGltZU9wdGlvbnMgc3RlcCA2LgorICAiZGF0ZVN0
eWxlIiwKKyAgLy8gVG9EYXRlVGltZU9wdGlvbnMgc3RlcCA3LgorICAidGltZVN0eWxlIiwKIAog
ICAvLyBJbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQgc3RlcCA0LgogICAibG9jYWxlTWF0Y2hlciIs
CkBAIC0yMiwxMyArMjYsOSBAQCBjb25zdCBleHBlY3RlZCA9IFsKICAgImhvdXIxMiIsCiAgIC8v
IEluaXRpYWxpemVEYXRlVGltZUZvcm1hdCBzdGVwIDcuCiAgICJob3VyQ3ljbGUiLAotICAvLyBJ
bml0aWFsaXplRGF0ZVRpbWVGb3JtYXQgc3RlcCAyMi4KKyAgLy8gSW5pdGlhbGl6ZURhdGVUaW1l
Rm9ybWF0IHN0ZXAgMjMuCiAgICJ0aW1lWm9uZSIsCiAgIC8vIEluaXRpYWxpemVEYXRlVGltZUZv
cm1hdCBzdGVwIDI4LgotICAiZGF0ZVN0eWxlIiwKLSAgLy8gSW5pdGlhbGl6ZURhdGVUaW1lRm9y
bWF0IHN0ZXAgMzAuCi0gICJ0aW1lU3R5bGUiLAotICAvLyBJbml0aWFsaXplRGF0ZVRpbWVGb3Jt
YXQgc3RlcCAzMy4KICAgIndlZWtkYXkiLAogICAiZXJhIiwKICAgInllYXIiLApAQCAtMzksNiAr
MzksMTAgQEAgY29uc3QgZXhwZWN0ZWQgPSBbCiAgICJzZWNvbmQiLAogICAidGltZVpvbmVOYW1l
IiwKICAgImZvcm1hdE1hdGNoZXIiLAorICAvLyBJbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQgc3Rl
cCAzMi4KKyAgImRhdGVTdHlsZSIsCisgIC8vIEluaXRpYWxpemVEYXRlVGltZUZvcm1hdCBzdGVw
IDMzLgorICAidGltZVN0eWxlIiwKIF07CiAKIGNvbnN0IGFjdHVhbCA9IFtdOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9EYXRlVGltZUZvcm1hdC9wcm90b3R5cGUv
cmVzb2x2ZWRPcHRpb25zL29yZGVyLXN0eWxlLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50
bDQwMi9EYXRlVGltZUZvcm1hdC9wcm90b3R5cGUvcmVzb2x2ZWRPcHRpb25zL29yZGVyLXN0eWxl
LmpzCmluZGV4IDIyODA1M2MxN2Q4YmFlY2NiYWQyYTcyMjllOTA2MTY2ZTNlOTFlNDEuLjA3YTc5
MjMyOGY2NTRkNDRkYmE4MjMxN2E4OTQzZGQwODBmNmZjMTUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvcHJvdG90eXBlL3Jlc29sdmVkT3B0
aW9ucy9vcmRlci1zdHlsZS5qcworKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL0Rh
dGVUaW1lRm9ybWF0L3Byb3RvdHlwZS9yZXNvbHZlZE9wdGlvbnMvb3JkZXItc3R5bGUuanMKQEAg
LTksNyArOSw2IEBAIGZlYXR1cmVzOiBbSW50bC5EYXRlVGltZUZvcm1hdC1kYXRldGltZXN0eWxl
XQogLS0tKi8KIAogY29uc3Qgb3B0aW9ucyA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFtdLCB7
Ci0gICJ0aW1lU3R5bGUiOiAiZnVsbCIsCiAgICJob3VyQ3ljbGUiOiAiaDI0IiwKICAgIndlZWtk
YXkiOiAic2hvcnQiLAogICAiZXJhIjogInNob3J0IiwKQEAgLTI5LDcgKzI4LDYgQEAgY29uc3Qg
ZXhwZWN0ZWQgPSBbCiAgICJ0aW1lWm9uZSIsCiAgICJob3VyQ3ljbGUiLAogICAiaG91cjEyIiwK
LSAgInRpbWVTdHlsZSIsCiBdOwogCiBsZXQgYWN0dWFsID0gT2JqZWN0LmdldE93blByb3BlcnR5
TmFtZXMob3B0aW9ucyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAy
L1NlZ21lbnRlci9pdGVyYXRvci9icmFuZGluZy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2lu
dGw0MDIvU2VnbWVudGVyL2l0ZXJhdG9yL2JyYW5kaW5nLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzYmU2MWU3YzlkZDcyNTQ5YmY0M2I5MzQ4ZGJkYjliMTcwNTJjZGVjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL2l0ZXJhdG9yL2JyYW5kaW5nLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMjYgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTggdGhlIFY4IHByb2plY3QgYXV0
aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0
aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLyotLS0KLWVzaWQ6
IHNlYy1zZWdtZW50LWl0ZXJhdG9yLXByb3RvdHlwZQotZGVzY3JpcHRpb246IFZlcmlmaWVzIHRo
ZSBiZWhhdmlvciBmb3IgdGhlIGl0ZXJhdG9ycy4KLWZlYXR1cmVzOiBbSW50bC5TZWdtZW50ZXJd
Ci0tLS0qLwotCi1sZXQgc2VnID0gbmV3IEludGwuU2VnbWVudGVyKCk7Ci1sZXQgc2VnbWVudEl0
ZXJhdG9yID0gc2VnLnNlZ21lbnQoJ3RleHQnKTsKLWxldCBwcm90b3R5cGUgPSBPYmplY3QuZ2V0
UHJvdG90eXBlT2Yoc2VnbWVudEl0ZXJhdG9yKTsKLWNvbnN0IG90aGVyUmVjZWl2ZXJzID0gWwot
ICAgIDEsIDEyMy40NSwgdW5kZWZpbmVkLCBudWxsLCAic3RyaW5nIiwgdHJ1ZSwgZmFsc2UsCi0g
ICAgSW50bCwgSW50bC5TZWdtZW50ZXIsIEludGwuU2VnbWVudGVyLnByb3RvdHlwZSwKLSAgICBw
cm90b3R5cGUsCi0gICAgbmV3IEludGwuU2VnbWVudGVyKCksCi0gICAgbmV3IEludGwuQ29sbGF0
b3IoKSwKLSAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLAotICAgIG5ldyBJbnRsLk51bWJl
ckZvcm1hdCgpLAotXTsKLWZvciAoY29uc3QgcmVjIG9mIG90aGVyUmVjZWl2ZXJzKSB7Ci0gICBh
c3NlcnQudGhyb3dzKFR5cGVFcnJvciwgKCkgPT4gcHJvdG90eXBlLm5leHQuY2FsbChyZWMpKTsK
LSAgIGFzc2VydC50aHJvd3MoVHlwZUVycm9yLCAoKSA9PiBwcm90b3R5cGUuZm9sbG93aW5nLmNh
bGwocmVjKSk7Ci0gICBhc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgKCkgPT4gcHJvdG90eXBlLnBy
ZWNlZGluZy5jYWxsKHJlYykpOwotfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
aW50bDQwMi9TZWdtZW50ZXIvaXRlcmF0b3IvYnJlYWtUeXBlLmpzIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvaXRlcmF0b3IvYnJlYWtUeXBlLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiZjZiZDcwMDkxZDViYmU2Y2NkMjczOTBjZTE4MDY2YTkzNDky
NDBlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL2l0ZXJhdG9yL2JyZWFrVHlwZS5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE4IHRoZSBWOCBw
cm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBUaGlzIGNvZGUgaXMgZ292
ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLS8q
LS0tCi1lc2lkOiBzZWMtc2VnbWVudC1pdGVyYXRvci1wcm90b3R5cGUKLWRlc2NyaXB0aW9uOiBW
ZXJpZmllcyB0aGUgYmVoYXZpb3IgZm9yIHRoZSBpdGVyYXRvcnMuCi1mZWF0dXJlczogW0ludGwu
U2VnbWVudGVyXQotLS0tKi8KLQotY29uc3Qgc2VnbWVudGVyID0gbmV3IEludGwuU2VnbWVudGVy
KCk7Ci1jb25zdCB0ZXh0ID0gIkhlbGxvIFdvcmxkLCBUZXN0IDEyMyEgRm9vIEJhci4gSG93IGFy
ZSB5b3U/IjsKLWNvbnN0IGl0ZXIgPSBzZWdtZW50ZXIuc2VnbWVudCh0ZXh0KTsKLQotYXNzZXJ0
LnNhbWVWYWx1ZShpdGVyLmJyZWFrVHlwZSwgdW5kZWZpbmVkKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL2l0ZXJhdG9yL2ZvbGxvd2luZy5qcyBi
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL2l0ZXJhdG9yL2ZvbGxvd2lu
Zy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWIxNDYwZmQwYTVmZjRiNjA3YmNj
ODAxNjQ3ZmJiOWUzMTdiOTYzMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9pdGVyYXRv
ci9mb2xsb3dpbmcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vLyBDb3B5cmln
aHQgMjAxOCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8g
VGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLXNlZ21lbnQtaXRlcmF0b3ItcHJvdG90eXBl
Ci1kZXNjcmlwdGlvbjogVmVyaWZpZXMgdGhlIGJlaGF2aW9yIGZvciB0aGUgaXRlcmF0b3JzLgot
ZmVhdHVyZXM6IFtJbnRsLlNlZ21lbnRlcl0KLS0tLSovCi0KLWNvbnN0IHNlZ21lbnRlciA9IG5l
dyBJbnRsLlNlZ21lbnRlcigpOwotY29uc3QgdGV4dCA9ICJIZWxsbyBXb3JsZCwgVGVzdCAxMjMh
IEZvbyBCYXIuIEhvdyBhcmUgeW91PyI7Ci1jb25zdCBpdGVyID0gc2VnbWVudGVyLnNlZ21lbnQo
dGV4dCk7Ci0KLWFzc2VydC5zYW1lVmFsdWUoImZ1bmN0aW9uIiwgdHlwZW9mIGl0ZXIuZm9sbG93
aW5nKTsKLQotY29uc3QgdGVzdHMgPSBbCi0gIFsiMyIsIDRdLAotICBbIkFCQyIsIDFdLAotICBb
bnVsbCwgMV0sCi0gIFt0cnVlLCAyXSwKLSAgWzEuNCwgMl0sCi0gIFt7IHZhbHVlT2YoKSB7IHJl
dHVybiA1OyB9IH0sIDZdLAotICBbMCwgMV0sCi0gIFt0ZXh0Lmxlbmd0aCAtIDEsIHRleHQubGVu
Z3RoXSwKLV07Ci0KLWZvciAoY29uc3QgW2lucHV0LCBpbmRleF0gb2YgdGVzdHMpIHsKLSAgYXNz
ZXJ0LnNhbWVWYWx1ZShpdGVyLmZvbGxvd2luZyhpbnB1dCksIGZhbHNlKTsKLSAgYXNzZXJ0LnNh
bWVWYWx1ZShpdGVyLmluZGV4LCBpbmRleCwgU3RyaW5nKGlucHV0KSk7Ci19Ci0KLWFzc2VydC50
aHJvd3MoUmFuZ2VFcnJvciwgKCkgPT4gaXRlci5mb2xsb3dpbmcoLTMpKTsKLS8vIDEuNS4zLjIg
JVNlZ21lbnRJdGVyYXRvclByb3RvdHlwZSUuZm9sbG93aW5nKCBbIGZyb20gXSApCi0vLyAzLmIg
SWYgZnJvbSA+PSBpdGVyYXRvci5bW1NlZ21lbnRJdGVyYXRvclN0cmluZ11dLCB0aHJvdyBhIFJh
bmdlRXJyb3IgZXhjZXB0aW9uLgotYXNzZXJ0LnRocm93cyhSYW5nZUVycm9yLCAoKSA9PiBpdGVy
LmZvbGxvd2luZyh0ZXh0Lmxlbmd0aCkpOwotYXNzZXJ0LnRocm93cyhSYW5nZUVycm9yLCAoKSA9
PiBpdGVyLmZvbGxvd2luZyh0ZXh0Lmxlbmd0aCArIDEpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL2l0ZXJhdG9yL2dyYW51bGFyaXR5LmpzIGIv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvaXRlcmF0b3IvZ3JhbnVsYXJp
dHkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5MjY0YTNhY2JmMjk3YzczYTBj
MzI2ZWM1ODZmMDE2Y2QzNTA5YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvaXRlcmF0
b3IvZ3JhbnVsYXJpdHkuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0vLyBDb3B5
cmlnaHQgMjAxOCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
Ly8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLXNlZ21lbnQtaXRlcmF0b3ItcHJvdG90
eXBlCi1kZXNjcmlwdGlvbjogVmVyaWZpZXMgdGhlIGJlaGF2aW9yIGZvciB0aGUgaXRlcmF0b3Jz
LgotZmVhdHVyZXM6IFtJbnRsLlNlZ21lbnRlcl0KLS0tLSovCi0KLWNvbnN0IHRleHQgPSAiSGVs
bG8gV29ybGQsIFRlc3QgMTIzISBGb28gQmFyLiBIb3cgYXJlIHlvdT8iOwotZm9yIChjb25zdCBn
cmFudWxhcml0eSBvZiBbImdyYXBoZW1lIiwgIndvcmQiLCAic2VudGVuY2UiXSkgewotICBjb25z
dCBzZWdtZW50ZXIgPSBuZXcgSW50bC5TZWdtZW50ZXIoImVuIiwgeyBncmFudWxhcml0eSB9KTsK
LSAgY29uc3QgaXRlciA9IHNlZ21lbnRlci5zZWdtZW50KHRleHQpOwotCi0gIGFzc2VydC5zYW1l
VmFsdWUodHlwZW9mIGl0ZXIuaW5kZXgsICJudW1iZXIiKTsKLSAgYXNzZXJ0LnNhbWVWYWx1ZShp
dGVyLmluZGV4LCAwKTsKLSAgYXNzZXJ0LnNhbWVWYWx1ZShpdGVyLmJyZWFrVHlwZSwgdW5kZWZp
bmVkKTsKLX0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVu
dGVyL2l0ZXJhdG9yL25leHQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21l
bnRlci9pdGVyYXRvci9uZXh0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjk0
MDEwMzZjNTJhNzI1YTQ4ODc2OTA0ZjZiOWExYzExYjU4NTE1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIv
U2VnbWVudGVyL2l0ZXJhdG9yL25leHQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBA
Ci0vLyBDb3B5cmlnaHQgMjAxOCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3Vu
ZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLXNlZ21lbnQtaXRlcmF0
b3ItcHJvdG90eXBlCi1kZXNjcmlwdGlvbjogVmVyaWZpZXMgdGhlIGJlaGF2aW9yIGZvciB0aGUg
aXRlcmF0b3JzLgotZmVhdHVyZXM6IFtJbnRsLlNlZ21lbnRlcl0KLS0tLSovCi0KLWNvbnN0IHNl
Z21lbnRlciA9IG5ldyBJbnRsLlNlZ21lbnRlcigpOwotY29uc3QgdGV4dCA9ICJIZWxsbyBXb3Js
ZCwgVGVzdCAxMjMhIEZvbyBCYXIuIEhvdyBhcmUgeW91PyI7Ci1jb25zdCBpdGVyID0gc2VnbWVu
dGVyLnNlZ21lbnQodGV4dCk7Ci0KLWFzc2VydC5zYW1lVmFsdWUodHlwZW9mIGl0ZXIubmV4dCwg
ImZ1bmN0aW9uIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1Nl
Z21lbnRlci9pdGVyYXRvci9wb3NpdGlvbi5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0
MDIvU2VnbWVudGVyL2l0ZXJhdG9yL3Bvc2l0aW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYzhiMGNjMjI1N2MwYWY1ZWQ3YmRjMWM0MWMzMTgzNTZhZjk2ODAzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2ludGw0MDIvU2VnbWVudGVyL2l0ZXJhdG9yL3Bvc2l0aW9uLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMTQgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTggdGhlIFY4IHByb2plY3QgYXV0aG9y
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUg
QlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLyotLS0KLWVzaWQ6IHNl
Yy1zZWdtZW50LWl0ZXJhdG9yLXByb3RvdHlwZQotZGVzY3JpcHRpb246IFZlcmlmaWVzIHRoZSBi
ZWhhdmlvciBmb3IgdGhlIGl0ZXJhdG9ycy4KLWZlYXR1cmVzOiBbSW50bC5TZWdtZW50ZXJdCi0t
LS0qLwotCi1jb25zdCBzZWdtZW50ZXIgPSBuZXcgSW50bC5TZWdtZW50ZXIoKTsKLWNvbnN0IHRl
eHQgPSAiSGVsbG8gV29ybGQsIFRlc3QgMTIzISBGb28gQmFyLiBIb3cgYXJlIHlvdT8iOwotY29u
c3QgaXRlciA9IHNlZ21lbnRlci5zZWdtZW50KHRleHQpOwotCi1hc3NlcnQuc2FtZVZhbHVlKGl0
ZXIuaW5kZXgsIDApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9T
ZWdtZW50ZXIvaXRlcmF0b3IvcHJlY2VkaW5nLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50
bDQwMi9TZWdtZW50ZXIvaXRlcmF0b3IvcHJlY2VkaW5nLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2NGFhODdmZTZjZGRhZTUwMTk5MTBkOThiZjY2Y2ZjNTMyZWZmYzBjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL2l0ZXJhdG9yL3ByZWNlZGluZy5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDQwICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE4IHRoZSBWOCBwcm9qZWN0IGF1
dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkg
dGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLS8qLS0tCi1lc2lk
OiBzZWMtc2VnbWVudC1pdGVyYXRvci1wcm90b3R5cGUKLWRlc2NyaXB0aW9uOiBWZXJpZmllcyB0
aGUgYmVoYXZpb3IgZm9yIHRoZSBpdGVyYXRvcnMuCi1mZWF0dXJlczogW0ludGwuU2VnbWVudGVy
XQotLS0tKi8KLQotY29uc3Qgc2VnbWVudGVyID0gbmV3IEludGwuU2VnbWVudGVyKCk7Ci1jb25z
dCB0ZXh0ID0gIkhlbGxvIFdvcmxkLCBUZXN0IDEyMyEgRm9vIEJhci4gSG93IGFyZSB5b3U/IjsK
LWNvbnN0IGl0ZXIgPSBzZWdtZW50ZXIuc2VnbWVudCh0ZXh0KTsKLQotYXNzZXJ0LnNhbWVWYWx1
ZSgiZnVuY3Rpb24iLCB0eXBlb2YgaXRlci5mb2xsb3dpbmcpOwotCi1jb25zdCB0ZXN0cyA9IFsK
LSAgWyIzIiwgMl0sCi0gIFt0cnVlLCAwXSwKLSAgWzEuNCwgMF0sCi0gIFt7IHZhbHVlT2YoKSB7
IHJldHVybiA1OyB9IH0sIDRdLAotICBbdGV4dC5sZW5ndGggLSAxLCB0ZXh0Lmxlbmd0aCAtIDJd
LAotICBbdGV4dC5sZW5ndGgsIHRleHQubGVuZ3RoIC0gMV0sCi1dOwotCi1mb3IgKGNvbnN0IFtp
bnB1dCwgaW5kZXhdIG9mIHRlc3RzKSB7Ci0gIGFzc2VydC5zYW1lVmFsdWUoaXRlci5wcmVjZWRp
bmcoaW5wdXQpLCBmYWxzZSk7Ci0gIGFzc2VydC5zYW1lVmFsdWUoaXRlci5pbmRleCwgaW5kZXgs
IFN0cmluZyhpbnB1dCkpOwotfQotCi1hc3NlcnQudGhyb3dzKFJhbmdlRXJyb3IsICgpID0+IGl0
ZXIucHJlY2VkaW5nKCJBQkMiKSk7Ci1hc3NlcnQudGhyb3dzKFJhbmdlRXJyb3IsICgpID0+IGl0
ZXIucHJlY2VkaW5nKG51bGwpKTsKLWFzc2VydC50aHJvd3MoUmFuZ2VFcnJvciwgKCkgPT4gaXRl
ci5wcmVjZWRpbmcoLTMpKTsKLQotLy8gMS41LjMuMyAlU2VnbWVudEl0ZXJhdG9yUHJvdG90eXBl
JS5wcmVjZWRpbmcoIFsgZnJvbSBdICkKLS8vIDMuYiBJZiAuLi4gZnJvbSA9IDAsIHRocm93IGEg
UmFuZ2VFcnJvciBleGNlcHRpb24uCi1hc3NlcnQudGhyb3dzKFJhbmdlRXJyb3IsICgpID0+IGl0
ZXIucHJlY2VkaW5nKDApKTsKLQotLy8gMS41LjMuMyAlU2VnbWVudEl0ZXJhdG9yUHJvdG90eXBl
JS5wcmVjZWRpbmcoIFsgZnJvbSBdICkKLS8vIDMuYiBJZiBmcm9tID4gaXRlcmF0b3IuW1tTZWdt
ZW50SXRlcmF0b3JTdHJpbmddXSAuLi4gLCB0aHJvdyBhIFJhbmdlRXJyb3IgZXhjZXB0aW9uLgot
YXNzZXJ0LnRocm93cyhSYW5nZUVycm9yLCAoKSA9PiBpdGVyLnByZWNlZGluZyh0ZXh0Lmxlbmd0
aCArIDEpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVu
dGVyL2l0ZXJhdG9yL3Byb3RvdHlwZS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIv
U2VnbWVudGVyL2l0ZXJhdG9yL3Byb3RvdHlwZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYzFhZjg3ZjA0NGE3ZjJmNDZiZGFkZTFlZDI3YWEyN2VjNzcwZGU0Yi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9pbnRsNDAyL1NlZ21lbnRlci9pdGVyYXRvci9wcm90b3R5cGUuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwyNyArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxOCB0aGUgVjggcHJvamVjdCBhdXRob3Jz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBC
U0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2Vj
LXNlZ21lbnQtaXRlcmF0b3ItcHJvdG90eXBlCi1kZXNjcmlwdGlvbjogVmVyaWZpZXMgdGhlIGJl
aGF2aW9yIGZvciB0aGUgaXRlcmF0b3JzLgotaW5jbHVkZXM6IFtwcm9wZXJ0eUhlbHBlci5qc10K
LWZlYXR1cmVzOiBbSW50bC5TZWdtZW50ZXJdCi0tLS0qLwotCi1jb25zdCBwcm90b3R5cGUgPSBP
YmplY3QuZ2V0UHJvdG90eXBlT2YoKG5ldyBJbnRsLlNlZ21lbnRlcigpKS5zZWdtZW50KCd0ZXh0
JykpOwotZm9yIChjb25zdCBmdW5jIG9mIFsibmV4dCIsICJmb2xsb3dpbmciLCAicHJlY2VkaW5n
Il0pIHsKLSAgdmVyaWZ5UHJvcGVydHkocHJvdG90eXBlLCBmdW5jLCB7Ci0gICAgd3JpdGFibGU6
IHRydWUsCi0gICAgZW51bWVyYWJsZTogZmFsc2UsCi0gICAgY29uZmlndXJhYmxlOiB0cnVlLAot
ICB9KTsKLX0KLQotZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbImluZGV4IiwgImJyZWFrVHlwZSJd
KSB7Ci0gIGxldCBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwcm90b3R5
cGUsIHByb3BlcnR5KTsKLSAgYXNzZXJ0LnNhbWVWYWx1ZShkZXNjLmdldC5uYW1lLCBgZ2V0ICR7
cHJvcGVydHl9YCk7Ci0gIGFzc2VydC5zYW1lVmFsdWUodHlwZW9mIGRlc2MuZ2V0LCAiZnVuY3Rp
b24iKQotICBhc3NlcnQuc2FtZVZhbHVlKGRlc2Muc2V0LCB1bmRlZmluZWQpOwotICBhc3NlcnQu
c2FtZVZhbHVlKGRlc2MuZW51bWVyYWJsZSwgZmFsc2UpOwotICBhc3NlcnQuc2FtZVZhbHVlKGRl
c2MuY29uZmlndXJhYmxlLCB0cnVlKTsKLX0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtZ3JhcGhlbWUt
Zm9sbG93aW5nLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJv
dG90eXBlL3NlZ21lbnQvc2VnbWVudC1ncmFwaGVtZS1mb2xsb3dpbmcuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGY0Yjc1MzNlZWI5ZGZhOWQzODg0ZTVkMDQ4YTAxY2VhNmM0MTE3
NmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90eXBlL3NlZ21lbnQvc2VnbWVu
dC1ncmFwaGVtZS1mb2xsb3dpbmcuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0v
LyBDb3B5cmlnaHQgMjAxOCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLUludGwuU2VnbWVudGVyLnBy
b3RvdHlwZS5zZWdtZW50Ci1kZXNjcmlwdGlvbjogVmVyaWZpZXMgdGhlIGJlaGF2aW9yIGZvciB0
aGUgInNlZ21lbnQiIGZ1bmN0aW9uIG9mIHRoZSBTZWdtZW50ZXIgcHJvdG90eXBlIG9iamVjdC4K
LWluZm86IHwKLSAgICBJbnRsLlNlZ21lbnRlci5wcm90b3R5cGUuc2VnbWVudCggc3RyaW5nICkK
LWZlYXR1cmVzOiBbSW50bC5TZWdtZW50ZXJdCi0tLS0qLwotCi1jb25zdCBzZWcgPSBuZXcgSW50
bC5TZWdtZW50ZXIoW10sIHtncmFudWxhcml0eTogImdyYXBoZW1lIn0pCi1mb3IgKGNvbnN0IHRl
eHQgb2YgWwotICAgICJIZWxsbyB3b3JsZCEiLCAvLyBFbmdsaXNoCi0gICAgIiBIZWxsbyB3b3Js
ZCEgIiwgIC8vIEVuZ2xpc2ggd2l0aCBzcGFjZSBiZWZvcmUvYWZ0ZXIKLSAgICAiIEhlbGxvIHdv
cmxkPyBGb28gYmFyISIsIC8vIEVuZ2xpc2gKLSAgICAiSmVkb3ZhdG91IG1hbWJ1IG9iamV2aWxh
IMW+ZW5hIHYgemFocsOhZGvDocWZc2vDqSBrb2xvbmlpLiIsIC8vIEN6ZWNoCi0gICAgIlZp4buH
dCBOYW06IE5o4bqldCB0aOG7gyBow7NhIHPhur0ga2jDoWMgVHJ1bmcgUXXhu5FjPyIsICAvLyBW
aWV0bmFtZXNlCi0gICAgIs6jzr/Oss6xz4HOrc+CIM61zr3Pg8+EzqzPg861zrnPgiDOms6/zrzO
uc+DzrnPjM69IM6zzrnOsSDPhM6/zr0gz4DPgc6/z4vPgM6/zrvOv86zzrnPg868z4wgz4TOt8+C
IM6Zz4TOsc67zq/Osc+CIiwgLy8gR3JlZWsKLSAgICAi0KDQtdGI0LXQvdC40LUg0JjQvdC00LjQ
uCDQviDQv9C+0LrRg9C/0LrQtSDRgNC+0YHRgdC40LnRgdC60LjRhSDQoS00MDAg0YDQsNGB0YbQ
tdC90LjQu9C4INC60LDQuiDQstGL0LfQvtCyINCh0KjQkCIsICAvLyBSdXNzaWFuCi0gICAgIteU
16jXldek15Ag16nXlNem15nXnCDXoNep15nXnSDXldeU16DXoteo15Qg16nXqdeV16LXkdeT15Qg
16IiLCAgLy8gSGVicmV3LAotICAgICLYqtix2KfZhdioINmE2YTZhdmE2YMg2LPZhNmF2KfZhjog
2KPZhtinINis2KfYryDZhNmE2LrYp9mK2KkuLiDYudmE2YrZgyDYr9mB2Lkg2KfZhNmF2LLZitiv
IiwgLy8gQXJhYmljCi0gICAgIuCkreCkvuCksOCkpCDgpJXgpYAg4KSP4KS4IDQwMCDgpK7gpL/g
pLjgpL7gpIfgpLIg4KSV4KWHIOCkruClgeCkleCkvuCkrOCksuClhyDgpKrgpL7gpJUg4KSV4KWA
IOCkpeCkvuCkoSwg4KSc4KS+4KSo4KWH4KSCIOCkleCljOCkqCDgpJXgpL/gpKTgpKjgpL4g4KSk
4KS+4KSV4KSk4KS14KSwIiwgIC8vICBIaW5kaQotICAgICLgrrDgr4bgrp/gr40g4K6F4K6y4K6w
4K+N4K6f4K+NIOCujuCumuCvjeCumuCusOCuv+CuleCvjeCuleCviDsg4K6q4K+B4K6k4K+B4K6a
4K+N4K6a4K+H4K6w4K6/4K6v4K6/4K6y4K+NIOCuqOCuvuCus+CviCDgroXgrrDgrprgr4Eg4K61
4K6/4K6f4K+B4K6u4K+B4K6x4K+IISIsIC8vIFRhbWlsCi0gICAgIifgsIngsKTgsY3gsKTgsLDg
sY3gsLXgsYHgsLLgsYEg4LCF4LCC4LCm4LGHIOCwteCwsOCwleCxgSDgsJPgsJ/gsLDgsY3gsLIg
4LCk4LGB4LCm4LC/IOCwnOCwvuCwrOCwv+CwpOCwvuCwqOCxgSDgsLXgsYbgsKzgsY3igIzgsLjg
sYjgsJ/gsY3gsLLgsYsg4LCq4LGG4LCf4LGN4LCf4LC14LCm4LGN4LCm4LGBJyIsIC8vIFRlbHVn
dQotICAgICLlj7DljJfjgIvmirnpu5Hmn69Q5aSx5pWX77yf5pyx5a245oGS6YW477ya5aea5paH
5pm65rCjcHVwdeWXhuWkp+iAgemXhiIsIC8vIENoaW5lc2UKLSAgICAi4Lin4Lix4LiU4LmE4LiX
4Lij4LiV4Li14Lij4Liw4LiG4Lix4LiH4LmA4Lia4Liy4Lil4LiH4LiK4LmI4Lin4LiH4LmA4LiC
4LmJ4Liy4Lie4Lij4Lij4Lip4LiyIOC5gOC4iOC5ieC4suC4reC4suC4p+C4suC4quC5gOC4nOC4
ouC4hOC4meC4o+C5ieC4reC4h+C5gOC4o+C4teC4ouC4meC4o+C4seC4muC4nOC4peC4geC4o+C4
o+C4oeC5geC4peC5ieC4pyIsICAvLyBUaGFpCi0gICAgIuS5neW3nuWMl+mDqOOBruS4gOmDqOOB
jOaatOmiqOWfn+OBq+WFpeOCiuOBvuOBl+OBnyjml6Xnm7TkuojloLHlo6sgMjAxOOW5tDEw5pyI
MDbml6UpIC0g5pel5pys5rCX6LGh5Y2U5LyaIHRlbmtpLmpwIiwgIC8vIEphcGFuZXNlCi0gICAg
IuuyleybkCDigJzri6TsiqQg7KeA67aEIOyymOu2hOq2jMK37IiY7J216raMIOuqqOuRkCBNQuqw
gCDrs7TsnKDigJ0iLCAvLyBLb3JlYW4KLSAgICBdKSB7Ci0gIGNvbnN0IGl0ZXIgPSBzZWcuc2Vn
bWVudCh0ZXh0KTsKLSAgbGV0IHByZXYgPSAwOwotICBsZXQgc2VnbWVudHMgPSBbXTsKLSAgd2hp
bGUgKCFpdGVyLmZvbGxvd2luZygpKSB7Ci0gICAgYXNzZXJ0LnNhbWVWYWx1ZSh1bmRlZmluZWQs
IGl0ZXIuYnJlYWtUeXBlKTsKLSAgICBhc3NlcnQoaXRlci5pbmRleCA+PSAwKTsKLSAgICBhc3Nl
cnQoaXRlci5pbmRleCA8PSB0ZXh0Lmxlbmd0aCk7Ci0gICAgYXNzZXJ0KGl0ZXIuaW5kZXggPiBw
cmV2KTsKLSAgICBzZWdtZW50cy5wdXNoKHRleHQuc3Vic3RyaW5nKHByZXYsIGl0ZXIuaW5kZXgp
KTsKLSAgICBwcmV2ID0gaXRlci5pbmRleDsKLSAgfQotICBhc3NlcnQuc2FtZVZhbHVlKHRleHQs
IHNlZ21lbnRzLmpvaW4oIiIpKTsKLX0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtZ3JhcGhlbWUtaXRl
cmFibGUuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5
cGUvc2VnbWVudC9zZWdtZW50LWdyYXBoZW1lLWl0ZXJhYmxlLmpzCmluZGV4IDczOTlkYTk4NmVj
YzU3ZTY2ZDZhODRhYTg2MjAwYjIwMGEyYTgzZTQuLmUwOGI0NWQ3NzY3YjkyNDM4YjA3NTU4MThk
NWJmOWRmMDAwZWI5OTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIv
U2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtZ3JhcGhlbWUtaXRlcmFibGUuanMK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90eXBlL3Nl
Z21lbnQvc2VnbWVudC1ncmFwaGVtZS1pdGVyYWJsZS5qcwpAQCAtMjksMjIgKzI5LDExIEBAIGZv
ciAoY29uc3QgdGV4dCBvZiBbCiAgICAgIuuyleybkCDigJzri6TsiqQg7KeA67aEIOyymOu2hOq2
jMK37IiY7J216raMIOuqqOuRkCBNQuqwgCDrs7TsnKDigJ0iLCAvLyBLb3JlYW4KICAgICBdKSB7
CiAgIGxldCBzZWdtZW50cyA9IFtdOwotICAvLyBDcmVhdGUgYW5vdGhlciAlU2VnbWVudEl0ZXJh
dG9yJSB0byBjb21wYXJlIHdpdGggcmVzdWx0IGZyb20gdGhlIG9uZSB0aGF0Ci0gIC8vIGNyZWF0
ZWQgaW4gdGhlIGZvciBvZiBsb29wLgotICBsZXQgaXRlciA9IHNlZy5zZWdtZW50KHRleHQpOwot
ICBsZXQgcHJldiA9IDA7CiAgIGZvciAoY29uc3QgdiBvZiBzZWcuc2VnbWVudCh0ZXh0KSkgewot
ICAgIGFzc2VydC5zYW1lVmFsdWUodW5kZWZpbmVkLCB2LmJyZWFrVHlwZSk7CisgICAgYXNzZXJ0
LnNhbWVWYWx1ZSh1bmRlZmluZWQsIHYuaXNXb3JkTGlrZSk7CiAgICAgYXNzZXJ0LnNhbWVWYWx1
ZSgic3RyaW5nIiwgdHlwZW9mIHYuc2VnbWVudCk7CiAgICAgYXNzZXJ0KHYuc2VnbWVudC5sZW5n
dGggPiAwKTsKICAgICBzZWdtZW50cy5wdXNoKHYuc2VnbWVudCk7Ci0KLSAgICAvLyBtYW51YWxs
eSBhZHZhbmNlIHRoZSBpdGVyLgotICAgIGFzc2VydC5zYW1lVmFsdWUoaXRlci5mb2xsb3dpbmco
KSwgZmFsc2UpOwotICAgIGFzc2VydC5zYW1lVmFsdWUoaXRlci5icmVha1R5cGUsIHYuYnJlYWtU
eXBlKTsKLSAgICBhc3NlcnQuc2FtZVZhbHVlKHRleHQuc3Vic3RyaW5nKHByZXYsIGl0ZXIuaW5k
ZXgpLCB2LnNlZ21lbnQpOwotICAgIHByZXYgPSBpdGVyLmluZGV4OwogICB9Ci0gIGFzc2VydChp
dGVyLmZvbGxvd2luZygpKTsKICAgYXNzZXJ0LnNhbWVWYWx1ZSh0ZXh0LCBzZWdtZW50cy5qb2lu
KCcnKSk7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21l
bnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdtZW50LWdyYXBoZW1lLW5leHQuanMgYi9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdtZW50
LWdyYXBoZW1lLW5leHQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5YThiNWFm
MmYyNjg3ODRlOWYwMWIzMmVmZTE3MTI0YTg4MDU2OTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdt
ZW50ZXIvcHJvdG90eXBlL3NlZ21lbnQvc2VnbWVudC1ncmFwaGVtZS1uZXh0LmpzCisrKyAvZGV2
L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTggdGhlIFY4IHByb2plY3Qg
YXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBi
eSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLyotLS0KLWVz
aWQ6IHNlYy1JbnRsLlNlZ21lbnRlci5wcm90b3R5cGUuc2VnbWVudAotZGVzY3JpcHRpb246IFZl
cmlmaWVzIHRoZSBiZWhhdmlvciBmb3IgdGhlICJzZWdtZW50IiBmdW5jdGlvbiBvZiB0aGUgU2Vn
bWVudGVyIHByb3RvdHlwZSBvYmplY3QuCi1pbmZvOiB8Ci0gICAgSW50bC5TZWdtZW50ZXIucHJv
dG90eXBlLnNlZ21lbnQoIHN0cmluZyApCi1mZWF0dXJlczogW0ludGwuU2VnbWVudGVyXQotLS0t
Ki8KLQotY29uc3Qgc2VnID0gbmV3IEludGwuU2VnbWVudGVyKFtdLCB7Z3JhbnVsYXJpdHk6ICJn
cmFwaGVtZSJ9KQotZm9yIChjb25zdCB0ZXh0IG9mIFsKLSAgICAiSGVsbG8gd29ybGQhIiwgLy8g
RW5nbGlzaAotICAgICIgSGVsbG8gd29ybGQhICIsICAvLyBFbmdsaXNoIHdpdGggc3BhY2UgYmVm
b3JlL2FmdGVyCi0gICAgIiBIZWxsbyB3b3JsZD8gRm9vIGJhciEiLCAvLyBFbmdsaXNoCi0gICAg
IkplZG92YXRvdSBtYW1idSBvYmpldmlsYSDFvmVuYSB2IHphaHLDoWRrw6HFmXNrw6kga29sb25p
aS4iLCAvLyBDemVjaAotICAgICJWaeG7h3QgTmFtOiBOaOG6pXQgdGjhu4MgaMOzYSBz4bq9IGto
w6FjIFRydW5nIFF14buRYz8iLCAgLy8gVmlldG5hbWVzZQotICAgICLOo86/zrLOsc+Bzq3PgiDO
tc69z4PPhM6sz4POtc65z4IgzprOv868zrnPg865z4zOvSDOs865zrEgz4TOv869IM+Az4HOv8+L
z4DOv867zr/Os865z4POvM+MIM+EzrfPgiDOmc+EzrHOu86vzrHPgiIsIC8vIEdyZWVrCi0gICAg
ItCg0LXRiNC10L3QuNC1INCY0L3QtNC40Lgg0L4g0L/QvtC60YPQv9C60LUg0YDQvtGB0YHQuNC5
0YHQutC40YUg0KEtNDAwINGA0LDRgdGG0LXQvdC40LvQuCDQutCw0Log0LLRi9C30L7QsiDQodCo
0JAiLCAgLy8gUnVzc2lhbgotICAgICLXlNeo15XXpNeQINep15TXpteZ15wg16DXqdeZ150g15XX
lNeg16LXqNeUINep16nXldei15HXk9eUINeiIiwgIC8vIEhlYnJldywKLSAgICAi2KrYsdin2YXY
qCDZhNmE2YXZhNmDINiz2YTZhdin2YY6INij2YbYpyDYrNin2K8g2YTZhNi62KfZitipLi4g2LnZ
hNmK2YMg2K/Zgdi5INin2YTZhdiy2YrYryIsIC8vIEFyYWJpYwotICAgICLgpK3gpL7gpLDgpKQg
4KSV4KWAIOCkj+CkuCA0MDAg4KSu4KS/4KS44KS+4KSH4KSyIOCkleClhyDgpK7gpYHgpJXgpL7g
pKzgpLLgpYcg4KSq4KS+4KSVIOCkleClgCDgpKXgpL7gpKEsIOCknOCkvuCkqOClh+CkgiDgpJXg
pYzgpKgg4KSV4KS/4KSk4KSo4KS+IOCkpOCkvuCkleCkpOCkteCksCIsICAvLyAgSGluZGkKLSAg
ICAi4K6w4K+G4K6f4K+NIOCuheCusuCusOCvjeCun+CvjSDgro7grprgr43grprgrrDgrr/grpXg
r43grpXgr4g7IOCuquCvgeCupOCvgeCumuCvjeCumuCvh+CusOCuv+Cur+Cuv+CusuCvjSDgrqjg
rr7grrPgr4gg4K6F4K6w4K6a4K+BIOCuteCuv+Cun+CvgeCuruCvgeCuseCviCEiLCAvLyBUYW1p
bAotICAgICIn4LCJ4LCk4LGN4LCk4LCw4LGN4LC14LGB4LCy4LGBIOCwheCwguCwpuCxhyDgsLXg
sLDgsJXgsYEg4LCT4LCf4LCw4LGN4LCyIOCwpOCxgeCwpuCwvyDgsJzgsL7gsKzgsL/gsKTgsL7g
sKjgsYEg4LC14LGG4LCs4LGN4oCM4LC44LGI4LCf4LGN4LCy4LGLIOCwquCxhuCwn+CxjeCwn+Cw
teCwpuCxjeCwpuCxgSciLCAvLyBUZWx1Z3UKLSAgICAi5Y+w5YyX44CL5oq56buR5p+vUOWkseaV
l++8n+acseWtuOaBkumFuO+8muWnmuaWh+aZuuawo3B1cHXll4blpKfogIHpl4YiLCAvLyBDaGlu
ZXNlCi0gICAgIuC4p+C4seC4lOC5hOC4l+C4o+C4leC4teC4o+C4sOC4huC4seC4h+C5gOC4muC4
suC4peC4h+C4iuC5iOC4p+C4h+C5gOC4guC5ieC4suC4nuC4o+C4o+C4qeC4siDguYDguIjguYng
uLLguK3guLLguKfguLLguKrguYDguJzguKLguITguJnguKPguYnguK3guIfguYDguKPguLXguKLg
uJnguKPguLHguJrguJzguKXguIHguKPguKPguKHguYHguKXguYnguKciLCAgLy8gVGhhaQotICAg
ICLkuZ3lt57ljJfpg6jjga7kuIDpg6jjgYzmmrTpoqjln5/jgavlhaXjgorjgb7jgZfjgZ8o5pel
55u05LqI5aCx5aOrIDIwMTjlubQxMOaciDA25pelKSAtIOaXpeacrOawl+ixoeWNlOS8miB0ZW5r
aS5qcCIsICAvLyBKYXBhbmVzZQotICAgICLrspXsm5Ag4oCc64uk7IqkIOyngOu2hCDsspjrtoTq
tozCt+yImOydteq2jCDrqqjrkZAgTULqsIAg67O07Jyg4oCdIiwgLy8gS29yZWFuCi0gICAgXSkg
ewotICBjb25zdCBpdGVyID0gc2VnLnNlZ21lbnQodGV4dCk7Ci0gIGxldCBzZWdtZW50cyA9IFtd
OwotICBsZXQgb2xkUG9zID0gLTE7Ci0gIGZvciAobGV0IHJlc3VsdCA9IGl0ZXIubmV4dCgpOyAh
cmVzdWx0LmRvbmU7IHJlc3VsdCA9IGl0ZXIubmV4dCgpKSB7Ci0gICAgY29uc3QgdiA9IHJlc3Vs
dC52YWx1ZTsKLSAgICBhc3NlcnQuc2FtZVZhbHVlKHVuZGVmaW5lZCwgdi5icmVha1R5cGUpOwot
ICAgIGFzc2VydC5zYW1lVmFsdWUoInN0cmluZyIsIHR5cGVvZiB2LnNlZ21lbnQpOwotICAgIGFz
c2VydCh2LnNlZ21lbnQubGVuZ3RoID4gMCk7Ci0gICAgc2VnbWVudHMucHVzaCh2LnNlZ21lbnQp
OwotICAgIGFzc2VydC5zYW1lVmFsdWUodHlwZW9mIHYuaW5kZXgsICJudW1iZXIiKTsKLSAgICBh
c3NlcnQob2xkUG9zIDwgdi5pbmRleCk7Ci0gICAgb2xkUG9zID0gdi5pbmRleDsKLSAgfQotICBh
c3NlcnQuc2FtZVZhbHVlKHRleHQsIHNlZ21lbnRzLmpvaW4oJycpKTsKLX0KZGlmZiAtLWdpdCBh
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50
L3NlZ21lbnQtZ3JhcGhlbWUtcHJlY2VkaW5nLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50
bDQwMi9TZWdtZW50ZXIvcHJvdG90eXBlL3NlZ21lbnQvc2VnbWVudC1ncmFwaGVtZS1wcmVjZWRp
bmcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhODllNWZlNzU4MzRiY2NjMjkw
Nzc4N2Q1Y2U0OTI3YmIzNzg4OTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90
eXBlL3NlZ21lbnQvc2VnbWVudC1ncmFwaGVtZS1wcmVjZWRpbmcuanMKKysrIC9kZXYvbnVsbApA
QCAtMSw0OSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxOCB0aGUgVjggcHJvamVjdCBhdXRob3Jz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBC
U0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2Vj
LUludGwuU2VnbWVudGVyLnByb3RvdHlwZS5zZWdtZW50Ci1kZXNjcmlwdGlvbjogVmVyaWZpZXMg
dGhlIGJlaGF2aW9yIGZvciB0aGUgInNlZ21lbnQiIGZ1bmN0aW9uIG9mIHRoZSBTZWdtZW50ZXIg
cHJvdG90eXBlIG9iamVjdC4KLWluZm86IHwKLSAgICBJbnRsLlNlZ21lbnRlci5wcm90b3R5cGUu
c2VnbWVudCggc3RyaW5nICkKLWZlYXR1cmVzOiBbSW50bC5TZWdtZW50ZXJdCi0tLS0qLwotCi1j
b25zdCBzZWcgPSBuZXcgSW50bC5TZWdtZW50ZXIoW10sIHtncmFudWxhcml0eTogImdyYXBoZW1l
In0pCi1mb3IgKGNvbnN0IHRleHQgb2YgWwotICAgICJIZWxsbyB3b3JsZCEiLCAvLyBFbmdsaXNo
Ci0gICAgIiBIZWxsbyB3b3JsZCEgIiwgIC8vIEVuZ2xpc2ggd2l0aCBzcGFjZSBiZWZvcmUvYWZ0
ZXIKLSAgICAiIEhlbGxvIHdvcmxkPyBGb28gYmFyISIsIC8vIEVuZ2xpc2gKLSAgICAiSmVkb3Zh
dG91IG1hbWJ1IG9iamV2aWxhIMW+ZW5hIHYgemFocsOhZGvDocWZc2vDqSBrb2xvbmlpLiIsIC8v
IEN6ZWNoCi0gICAgIlZp4buHdCBOYW06IE5o4bqldCB0aOG7gyBow7NhIHPhur0ga2jDoWMgVHJ1
bmcgUXXhu5FjPyIsICAvLyBWaWV0bmFtZXNlCi0gICAgIs6jzr/Oss6xz4HOrc+CIM61zr3Pg8+E
zqzPg861zrnPgiDOms6/zrzOuc+DzrnPjM69IM6zzrnOsSDPhM6/zr0gz4DPgc6/z4vPgM6/zrvO
v86zzrnPg868z4wgz4TOt8+CIM6Zz4TOsc67zq/Osc+CIiwgLy8gR3JlZWsKLSAgICAi0KDQtdGI
0LXQvdC40LUg0JjQvdC00LjQuCDQviDQv9C+0LrRg9C/0LrQtSDRgNC+0YHRgdC40LnRgdC60LjR
hSDQoS00MDAg0YDQsNGB0YbQtdC90LjQu9C4INC60LDQuiDQstGL0LfQvtCyINCh0KjQkCIsICAv
LyBSdXNzaWFuCi0gICAgIteU16jXldek15Ag16nXlNem15nXnCDXoNep15nXnSDXldeU16DXoteo
15Qg16nXqdeV16LXkdeT15Qg16IiLCAgLy8gSGVicmV3LAotICAgICLYqtix2KfZhdioINmE2YTZ
hdmE2YMg2LPZhNmF2KfZhjog2KPZhtinINis2KfYryDZhNmE2LrYp9mK2KkuLiDYudmE2YrZgyDY
r9mB2Lkg2KfZhNmF2LLZitivIiwgLy8gQXJhYmljCi0gICAgIuCkreCkvuCksOCkpCDgpJXgpYAg
4KSP4KS4IDQwMCDgpK7gpL/gpLjgpL7gpIfgpLIg4KSV4KWHIOCkruClgeCkleCkvuCkrOCksuCl
hyDgpKrgpL7gpJUg4KSV4KWAIOCkpeCkvuCkoSwg4KSc4KS+4KSo4KWH4KSCIOCkleCljOCkqCDg
pJXgpL/gpKTgpKjgpL4g4KSk4KS+4KSV4KSk4KS14KSwIiwgIC8vICBIaW5kaQotICAgICLgrrDg
r4bgrp/gr40g4K6F4K6y4K6w4K+N4K6f4K+NIOCujuCumuCvjeCumuCusOCuv+CuleCvjeCuleCv
iDsg4K6q4K+B4K6k4K+B4K6a4K+N4K6a4K+H4K6w4K6/4K6v4K6/4K6y4K+NIOCuqOCuvuCus+Cv
iCDgroXgrrDgrprgr4Eg4K614K6/4K6f4K+B4K6u4K+B4K6x4K+IISIsIC8vIFRhbWlsCi0gICAg
IifgsIngsKTgsY3gsKTgsLDgsY3gsLXgsYHgsLLgsYEg4LCF4LCC4LCm4LGHIOCwteCwsOCwleCx
gSDgsJPgsJ/gsLDgsY3gsLIg4LCk4LGB4LCm4LC/IOCwnOCwvuCwrOCwv+CwpOCwvuCwqOCxgSDg
sLXgsYbgsKzgsY3igIzgsLjgsYjgsJ/gsY3gsLLgsYsg4LCq4LGG4LCf4LGN4LCf4LC14LCm4LGN
4LCm4LGBJyIsIC8vIFRlbHVndQotICAgICLlj7DljJfjgIvmirnpu5Hmn69Q5aSx5pWX77yf5pyx
5a245oGS6YW477ya5aea5paH5pm65rCjcHVwdeWXhuWkp+iAgemXhiIsIC8vIENoaW5lc2UKLSAg
ICAi4Lin4Lix4LiU4LmE4LiX4Lij4LiV4Li14Lij4Liw4LiG4Lix4LiH4LmA4Lia4Liy4Lil4LiH
4LiK4LmI4Lin4LiH4LmA4LiC4LmJ4Liy4Lie4Lij4Lij4Lip4LiyIOC5gOC4iOC5ieC4suC4reC4
suC4p+C4suC4quC5gOC4nOC4ouC4hOC4meC4o+C5ieC4reC4h+C5gOC4o+C4teC4ouC4meC4o+C4
seC4muC4nOC4peC4geC4o+C4o+C4oeC5geC4peC5ieC4pyIsICAvLyBUaGFpCi0gICAgIuS5neW3
nuWMl+mDqOOBruS4gOmDqOOBjOaatOmiqOWfn+OBq+WFpeOCiuOBvuOBl+OBnyjml6Xnm7Tkuojl
oLHlo6sgMjAxOOW5tDEw5pyIMDbml6UpIC0g5pel5pys5rCX6LGh5Y2U5LyaIHRlbmtpLmpwIiwg
IC8vIEphcGFuZXNlCi0gICAgIuuyleybkCDigJzri6TsiqQg7KeA67aEIOyymOu2hOq2jMK37IiY
7J216raMIOuqqOuRkCBNQuqwgCDrs7TsnKDigJ0iLCAvLyBLb3JlYW4KLSAgICBdKSB7Ci0gIGNv
bnN0IGl0ZXIgPSBzZWcuc2VnbWVudCh0ZXh0KTsKLSAgbGV0IHByZXYgPSB0ZXh0Lmxlbmd0aDsK
LSAgbGV0IHNlZ21lbnRzID0gW107Ci0gIGl0ZXIucHJlY2VkaW5nKHByZXYpCi0gIGFzc2VydC5z
YW1lVmFsdWUodW5kZWZpbmVkLCBpdGVyLmJyZWFrVHlwZSkKLSAgYXNzZXJ0KGl0ZXIuaW5kZXgg
Pj0gMCk7Ci0gIGFzc2VydChpdGVyLmluZGV4IDwgcHJldik7Ci0gIHNlZ21lbnRzLnB1c2godGV4
dC5zdWJzdHJpbmcoaXRlci5pbmRleCwgcHJldikpOwotICBwcmV2ID0gaXRlci5pbmRleDsKLSAg
d2hpbGUgKCFpdGVyLnByZWNlZGluZygpKSB7Ci0gICAgYXNzZXJ0LnNhbWVWYWx1ZSh1bmRlZmlu
ZWQsIGl0ZXIuYnJlYWtUeXBlKTsKLSAgICBhc3NlcnQoaXRlci5pbmRleCA+PSAwKTsKLSAgICBh
c3NlcnQoaXRlci5pbmRleCA8PSB0ZXh0Lmxlbmd0aCk7Ci0gICAgYXNzZXJ0KGl0ZXIuaW5kZXgg
PCBwcmV2KTsKLSAgICBzZWdtZW50cy5wdXNoKHRleHQuc3Vic3RyaW5nKGl0ZXIuaW5kZXgsIHBy
ZXYpKTsKLSAgICBwcmV2ID0gaXRlci5pbmRleDsKLSAgfQotICBhc3NlcnQuc2FtZVZhbHVlKHRl
eHQsIHNlZ21lbnRzLnJldmVyc2UoKS5qb2luKCIiKSk7Ci19CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdtZW50
LXNlbnRlbmNlLWZvbGxvd2luZy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2Vn
bWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtc2VudGVuY2UtZm9sbG93aW5nLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmM2FjYTg5MmJjNDRiZmU1OWViMzg3M2Q5NGZl
YTFjN2YzNGQwNmE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdt
ZW50L3NlZ21lbnQtc2VudGVuY2UtZm9sbG93aW5nLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDMg
KzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTggdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vu
c2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLyotLS0KLWVzaWQ6IHNlYy1JbnRsLlNl
Z21lbnRlci5wcm90b3R5cGUuc2VnbWVudAotZGVzY3JpcHRpb246IFZlcmlmaWVzIHRoZSBiZWhh
dmlvciBmb3IgdGhlICJzZWdtZW50IiBmdW5jdGlvbiBvZiB0aGUgU2VnbWVudGVyIHByb3RvdHlw
ZSBvYmplY3QuCi1pbmZvOiB8Ci0gICAgSW50bC5TZWdtZW50ZXIucHJvdG90eXBlLnNlZ21lbnQo
IHN0cmluZyApCi1mZWF0dXJlczogW0ludGwuU2VnbWVudGVyXQotLS0tKi8KLQotY29uc3Qgc2Vn
ID0gbmV3IEludGwuU2VnbWVudGVyKFtdLCB7Z3JhbnVsYXJpdHk6ICJzZW50ZW5jZSJ9KQotZm9y
IChjb25zdCB0ZXh0IG9mIFsKLSAgICAiSGVsbG8gd29ybGQhIiwgLy8gRW5nbGlzaAotICAgICIg
SGVsbG8gd29ybGQhICIsICAvLyBFbmdsaXNoIHdpdGggc3BhY2UgYmVmb3JlL2FmdGVyCi0gICAg
IiBIZWxsbyB3b3JsZD8gRm9vIGJhciEiLCAvLyBFbmdsaXNoCi0gICAgIkplZG92YXRvdSBtYW1i
dSBvYmpldmlsYSDFvmVuYSB2IHphaHLDoWRrw6HFmXNrw6kga29sb25paS4iLCAvLyBDemVjaAot
ICAgICJWaeG7h3QgTmFtOiBOaOG6pXQgdGjhu4MgaMOzYSBz4bq9IGtow6FjIFRydW5nIFF14buR
Yz8iLCAgLy8gVmlldG5hbWVzZQotICAgICLOo86/zrLOsc+Bzq3PgiDOtc69z4PPhM6sz4POtc65
z4IgzprOv868zrnPg865z4zOvSDOs865zrEgz4TOv869IM+Az4HOv8+Lz4DOv867zr/Os865z4PO
vM+MIM+EzrfPgiDOmc+EzrHOu86vzrHPgiIsIC8vIEdyZWVrCi0gICAgItCg0LXRiNC10L3QuNC1
INCY0L3QtNC40Lgg0L4g0L/QvtC60YPQv9C60LUg0YDQvtGB0YHQuNC50YHQutC40YUg0KEtNDAw
INGA0LDRgdGG0LXQvdC40LvQuCDQutCw0Log0LLRi9C30L7QsiDQodCo0JAiLCAgLy8gUnVzc2lh
bgotICAgICLXlNeo15XXpNeQINep15TXpteZ15wg16DXqdeZ150g15XXlNeg16LXqNeUINep16nX
ldei15HXk9eUINeiIiwgIC8vIEhlYnJldywKLSAgICAi2KrYsdin2YXYqCDZhNmE2YXZhNmDINiz
2YTZhdin2YY6INij2YbYpyDYrNin2K8g2YTZhNi62KfZitipLi4g2LnZhNmK2YMg2K/Zgdi5INin
2YTZhdiy2YrYryIsIC8vIEFyYWJpYwotICAgICLgpK3gpL7gpLDgpKQg4KSV4KWAIOCkj+CkuCA0
MDAg4KSu4KS/4KS44KS+4KSH4KSyIOCkleClhyDgpK7gpYHgpJXgpL7gpKzgpLLgpYcg4KSq4KS+
4KSVIOCkleClgCDgpKXgpL7gpKEsIOCknOCkvuCkqOClh+CkgiDgpJXgpYzgpKgg4KSV4KS/4KSk
4KSo4KS+IOCkpOCkvuCkleCkpOCkteCksCIsICAvLyAgSGluZGkKLSAgICAi4K6w4K+G4K6f4K+N
IOCuheCusuCusOCvjeCun+CvjSDgro7grprgr43grprgrrDgrr/grpXgr43grpXgr4g7IOCuquCv
geCupOCvgeCumuCvjeCumuCvh+CusOCuv+Cur+Cuv+CusuCvjSDgrqjgrr7grrPgr4gg4K6F4K6w
4K6a4K+BIOCuteCuv+Cun+CvgeCuruCvgeCuseCviCEiLCAvLyBUYW1pbAotICAgICIn4LCJ4LCk
4LGN4LCk4LCw4LGN4LC14LGB4LCy4LGBIOCwheCwguCwpuCxhyDgsLXgsLDgsJXgsYEg4LCT4LCf
4LCw4LGN4LCyIOCwpOCxgeCwpuCwvyDgsJzgsL7gsKzgsL/gsKTgsL7gsKjgsYEg4LC14LGG4LCs
4LGN4oCM4LC44LGI4LCf4LGN4LCy4LGLIOCwquCxhuCwn+CxjeCwn+CwteCwpuCxjeCwpuCxgSci
LCAvLyBUZWx1Z3UKLSAgICAi5Y+w5YyX44CL5oq56buR5p+vUOWkseaVl++8n+acseWtuOaBkumF
uO+8muWnmuaWh+aZuuawo3B1cHXll4blpKfogIHpl4YiLCAvLyBDaGluZXNlCi0gICAgIuC4p+C4
seC4lOC5hOC4l+C4o+C4leC4teC4o+C4sOC4huC4seC4h+C5gOC4muC4suC4peC4h+C4iuC5iOC4
p+C4h+C5gOC4guC5ieC4suC4nuC4o+C4o+C4qeC4siDguYDguIjguYnguLLguK3guLLguKfguLLg
uKrguYDguJzguKLguITguJnguKPguYnguK3guIfguYDguKPguLXguKLguJnguKPguLHguJrguJzg
uKXguIHguKPguKPguKHguYHguKXguYnguKciLCAgLy8gVGhhaQotICAgICLkuZ3lt57ljJfpg6jj
ga7kuIDpg6jjgYzmmrTpoqjln5/jgavlhaXjgorjgb7jgZfjgZ8o5pel55u05LqI5aCx5aOrIDIw
MTjlubQxMOaciDA25pelKSAtIOaXpeacrOawl+ixoeWNlOS8miB0ZW5raS5qcCIsICAvLyBKYXBh
bmVzZQotICAgICLrspXsm5Ag4oCc64uk7IqkIOyngOu2hCDsspjrtoTqtozCt+yImOydteq2jCDr
qqjrkZAgTULqsIAg67O07Jyg4oCdIiwgLy8gS29yZWFuCi0gICAgXSkgewotICBjb25zdCBpdGVy
ID0gc2VnLnNlZ21lbnQodGV4dCk7Ci0gIGxldCBwcmV2ID0gMDsKLSAgbGV0IHNlZ21lbnRzID0g
W107Ci0gIHdoaWxlICghaXRlci5mb2xsb3dpbmcoKSkgewotICAgIGFzc2VydChbInNlcCIsICJ0
ZXJtIl0uaW5jbHVkZXMoaXRlci5icmVha1R5cGUpLCBpdGVyLmJyZWFrVHlwZSk7Ci0gICAgYXNz
ZXJ0KGl0ZXIuaW5kZXggPj0gMCk7Ci0gICAgYXNzZXJ0KGl0ZXIuaW5kZXggPD0gdGV4dC5sZW5n
dGgpOwotICAgIGFzc2VydChpdGVyLmluZGV4ID4gcHJldik7Ci0gICAgc2VnbWVudHMucHVzaCh0
ZXh0LnN1YnN0cmluZyhwcmV2LCBpdGVyLmluZGV4KSk7Ci0gICAgcHJldiA9IGl0ZXIuaW5kZXg7
Ci0gIH0KLSAgYXNzZXJ0LnNhbWVWYWx1ZSh0ZXh0LCBzZWdtZW50cy5qb2luKCIiKSk7Ci19CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5
cGUvc2VnbWVudC9zZWdtZW50LXNlbnRlbmNlLWl0ZXJhYmxlLmpzIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90eXBlL3NlZ21lbnQvc2VnbWVudC1zZW50ZW5j
ZS1pdGVyYWJsZS5qcwppbmRleCAzNGViNWRlODJiZDYwYzczYzJiZTAyODAxNTZiMTljOTM3ZWFm
MWYyLi44MTFlMWQwMGRkZmVhYmViMjIwM2VhODE0NGFmNzM2NDY4NTMyNjU1IDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5cGUvc2VnbWVu
dC9zZWdtZW50LXNlbnRlbmNlLWl0ZXJhYmxlLmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtc2VudGVuY2UtaXRl
cmFibGUuanMKQEAgLTI5LDIyICsyOSwxMSBAQCBmb3IgKGNvbnN0IHRleHQgb2YgWwogICAgICLr
spXsm5Ag4oCc64uk7IqkIOyngOu2hCDsspjrtoTqtozCt+yImOydteq2jCDrqqjrkZAgTULqsIAg
67O07Jyg4oCdIiwgLy8gS29yZWFuCiAgICAgXSkgewogICBsZXQgc2VnbWVudHMgPSBbXTsKLSAg
Ly8gQ3JlYXRlIGFub3RoZXIgJVNlZ21lbnRJdGVyYXRvciUgdG8gY29tcGFyZSB3aXRoIHJlc3Vs
dCBmcm9tIHRoZSBvbmUgdGhhdAotICAvLyBjcmVhdGVkIGluIHRoZSBmb3Igb2YgbG9vcC4KLSAg
bGV0IGl0ZXIgPSBzZWcuc2VnbWVudCh0ZXh0KTsKLSAgbGV0IHByZXYgPSAwOwogICBmb3IgKGNv
bnN0IHYgb2Ygc2VnLnNlZ21lbnQodGV4dCkpIHsKLSAgICBhc3NlcnQoWyJzZXAiLCAidGVybSJd
LmluY2x1ZGVzKHYuYnJlYWtUeXBlKSwgdi5icmVha1R5cGUpOworICAgIGFzc2VydC5zYW1lVmFs
dWUodW5kZWZpbmVkLCB2LmlzV29yZExpa2UpOwogICAgIGFzc2VydC5zYW1lVmFsdWUoInN0cmlu
ZyIsIHR5cGVvZiB2LnNlZ21lbnQpOwogICAgIGFzc2VydCh2LnNlZ21lbnQubGVuZ3RoID4gMCk7
CiAgICAgc2VnbWVudHMucHVzaCh2LnNlZ21lbnQpOwotCi0gICAgLy8gbWFudWFsbHkgYWR2YW5j
ZSB0aGUgaXRlci4KLSAgICBhc3NlcnQuc2FtZVZhbHVlKGl0ZXIuZm9sbG93aW5nKCksIGZhbHNl
KTsKLSAgICBhc3NlcnQuc2FtZVZhbHVlKGl0ZXIuYnJlYWtUeXBlLCB2LmJyZWFrVHlwZSk7Ci0g
ICAgYXNzZXJ0LnNhbWVWYWx1ZSh0ZXh0LnN1YnN0cmluZyhwcmV2LCBpdGVyLmluZGV4KSwgdi5z
ZWdtZW50KTsKLSAgICBwcmV2ID0gaXRlci5pbmRleDsKICAgfQotICBhc3NlcnQoaXRlci5mb2xs
b3dpbmcoKSk7CiAgIGFzc2VydC5zYW1lVmFsdWUodGV4dCwgc2VnbWVudHMuam9pbignJykpOwog
fQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJv
dG90eXBlL3NlZ21lbnQvc2VnbWVudC1zZW50ZW5jZS1uZXh0LmpzIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90eXBlL3NlZ21lbnQvc2VnbWVudC1zZW50ZW5j
ZS1uZXh0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxN2U1NDdlZWM3ZjA1YjA1
ZjA0ZmVmMjYwNjI4YjdkNTZlODQ0ZjZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL3By
b3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtc2VudGVuY2UtbmV4dC5qcworKysgL2Rldi9udWxsCkBA
IC0xLDQ1ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE4IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLS8qLS0tCi1lc2lkOiBzZWMt
SW50bC5TZWdtZW50ZXIucHJvdG90eXBlLnNlZ21lbnQKLWRlc2NyaXB0aW9uOiBWZXJpZmllcyB0
aGUgYmVoYXZpb3IgZm9yIHRoZSAic2VnbWVudCIgZnVuY3Rpb24gb2YgdGhlIFNlZ21lbnRlciBw
cm90b3R5cGUgb2JqZWN0LgotaW5mbzogfAotICAgIEludGwuU2VnbWVudGVyLnByb3RvdHlwZS5z
ZWdtZW50KCBzdHJpbmcgKQotZmVhdHVyZXM6IFtJbnRsLlNlZ21lbnRlcl0KLS0tLSovCi0KLWNv
bnN0IHNlZyA9IG5ldyBJbnRsLlNlZ21lbnRlcihbXSwge2dyYW51bGFyaXR5OiAic2VudGVuY2Ui
fSkKLWZvciAoY29uc3QgdGV4dCBvZiBbCi0gICAgIkhlbGxvIHdvcmxkISIsIC8vIEVuZ2xpc2gK
LSAgICAiIEhlbGxvIHdvcmxkISAiLCAgLy8gRW5nbGlzaCB3aXRoIHNwYWNlIGJlZm9yZS9hZnRl
cgotICAgICIgSGVsbG8gd29ybGQ/IEZvbyBiYXIhIiwgLy8gRW5nbGlzaAotICAgICJKZWRvdmF0
b3UgbWFtYnUgb2JqZXZpbGEgxb5lbmEgdiB6YWhyw6Fka8OhxZlza8OpIGtvbG9uaWkuIiwgLy8g
Q3plY2gKLSAgICAiVmnhu4d0IE5hbTogTmjhuqV0IHRo4buDIGjDs2Egc+G6vSBraMOhYyBUcnVu
ZyBRdeG7kWM/IiwgIC8vIFZpZXRuYW1lc2UKLSAgICAizqPOv86yzrHPgc6tz4IgzrXOvc+Dz4TO
rM+DzrXOuc+CIM6azr/OvM65z4POuc+Mzr0gzrPOuc6xIM+Ezr/OvSDPgM+Bzr/Pi8+Azr/Ou86/
zrPOuc+DzrzPjCDPhM63z4IgzpnPhM6xzrvOr86xz4IiLCAvLyBHcmVlawotICAgICLQoNC10YjQ
tdC90LjQtSDQmNC90LTQuNC4INC+INC/0L7QutGD0L/QutC1INGA0L7RgdGB0LjQudGB0LrQuNGF
INChLTQwMCDRgNCw0YHRhtC10L3QuNC70Lgg0LrQsNC6INCy0YvQt9C+0LIg0KHQqNCQIiwgIC8v
IFJ1c3NpYW4KLSAgICAi15TXqNeV16TXkCDXqdeU16bXmdecINeg16nXmdedINeV15TXoNei16jX
lCDXqdep15XXoteR15PXlCDXoiIsICAvLyBIZWJyZXcsCi0gICAgItiq2LHYp9mF2Kgg2YTZhNmF
2YTZgyDYs9mE2YXYp9mGOiDYo9mG2Kcg2KzYp9ivINmE2YTYutin2YrYqS4uINi52YTZitmDINiv
2YHYuSDYp9mE2YXYstmK2K8iLCAvLyBBcmFiaWMKLSAgICAi4KSt4KS+4KSw4KSkIOCkleClgCDg
pI/gpLggNDAwIOCkruCkv+CkuOCkvuCkh+CksiDgpJXgpYcg4KSu4KWB4KSV4KS+4KSs4KSy4KWH
IOCkquCkvuCklSDgpJXgpYAg4KSl4KS+4KShLCDgpJzgpL7gpKjgpYfgpIIg4KSV4KWM4KSoIOCk
leCkv+CkpOCkqOCkviDgpKTgpL7gpJXgpKTgpLXgpLAiLCAgLy8gIEhpbmRpCi0gICAgIuCusOCv
huCun+CvjSDgroXgrrLgrrDgr43grp/gr40g4K6O4K6a4K+N4K6a4K6w4K6/4K6V4K+N4K6V4K+I
OyDgrqrgr4HgrqTgr4Hgrprgr43grprgr4fgrrDgrr/grq/grr/grrLgr40g4K6o4K6+4K6z4K+I
IOCuheCusOCumuCvgSDgrrXgrr/grp/gr4Hgrq7gr4HgrrHgr4ghIiwgLy8gVGFtaWwKLSAgICAi
J+CwieCwpOCxjeCwpOCwsOCxjeCwteCxgeCwsuCxgSDgsIXgsILgsKbgsYcg4LC14LCw4LCV4LGB
IOCwk+Cwn+CwsOCxjeCwsiDgsKTgsYHgsKbgsL8g4LCc4LC+4LCs4LC/4LCk4LC+4LCo4LGBIOCw
teCxhuCwrOCxjeKAjOCwuOCxiOCwn+CxjeCwsuCxiyDgsKrgsYbgsJ/gsY3gsJ/gsLXgsKbgsY3g
sKbgsYEnIiwgLy8gVGVsdWd1Ci0gICAgIuWPsOWMl+OAi+aKuem7keafr1DlpLHmlZfvvJ/mnLHl
rbjmgZLphbjvvJrlp5rmlofmmbrmsKNwdXB15ZeG5aSn6ICB6ZeGIiwgLy8gQ2hpbmVzZQotICAg
ICLguKfguLHguJTguYTguJfguKPguJXguLXguKPguLDguIbguLHguIfguYDguJrguLLguKXguIfg
uIrguYjguKfguIfguYDguILguYnguLLguJ7guKPguKPguKnguLIg4LmA4LiI4LmJ4Liy4Lit4Liy
4Lin4Liy4Liq4LmA4Lic4Lii4LiE4LiZ4Lij4LmJ4Lit4LiH4LmA4Lij4Li14Lii4LiZ4Lij4Lix
4Lia4Lic4Lil4LiB4Lij4Lij4Lih4LmB4Lil4LmJ4LinIiwgIC8vIFRoYWkKLSAgICAi5Lmd5bee
5YyX6YOo44Gu5LiA6YOo44GM5pq06aKo5Z+f44Gr5YWl44KK44G+44GX44GfKOaXpeebtOS6iOWg
seWjqyAyMDE45bm0MTDmnIgwNuaXpSkgLSDml6XmnKzmsJfosaHljZTkvJogdGVua2kuanAiLCAg
Ly8gSmFwYW5lc2UKLSAgICAi67KV7JuQIOKAnOuLpOyKpCDsp4DrtoQg7LKY67aE6raMwrfsiJjs
nbXqtowg66qo65GQIE1C6rCAIOuztOycoOKAnSIsIC8vIEtvcmVhbgotICAgIF0pIHsKLSAgY29u
c3QgaXRlciA9IHNlZy5zZWdtZW50KHRleHQpOwotICBsZXQgc2VnbWVudHMgPSBbXTsKLSAgbGV0
IG9sZFBvcyA9IC0xOwotICBmb3IgKGxldCByZXN1bHQgPSBpdGVyLm5leHQoKTsgIXJlc3VsdC5k
b25lOyByZXN1bHQgPSBpdGVyLm5leHQoKSkgewotICAgIGNvbnN0IHYgPSByZXN1bHQudmFsdWU7
Ci0gICAgYXNzZXJ0KFsic2VwIiwgInRlcm0iXS5pbmNsdWRlcyhpdGVyLmJyZWFrVHlwZSksIGl0
ZXIuYnJlYWtUeXBlKTsKLSAgICBhc3NlcnQuc2FtZVZhbHVlKCJzdHJpbmciLCB0eXBlb2Ygdi5z
ZWdtZW50KTsKLSAgICBhc3NlcnQodi5zZWdtZW50Lmxlbmd0aCA+IDApOwotICAgIHNlZ21lbnRz
LnB1c2godi5zZWdtZW50KTsKLSAgICBhc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiB2LmluZGV4LCAi
bnVtYmVyIik7Ci0gICAgYXNzZXJ0KG9sZFBvcyA8IHYuaW5kZXgpOwotICAgIG9sZFBvcyA9IHYu
aW5kZXg7Ci0gIH0KLSAgYXNzZXJ0LnNhbWVWYWx1ZSh0ZXh0LCBzZWdtZW50cy5qb2luKCcnKSk7
Ci19CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9w
cm90b3R5cGUvc2VnbWVudC9zZWdtZW50LXNlbnRlbmNlLXByZWNlZGluZy5qcyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQt
c2VudGVuY2UtcHJlY2VkaW5nLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDkz
ODk1YzE3YzYwODI0ZjI4ZjZjNjQxNmNiNjNjNzM1YTAyOTZmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIv
U2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtc2VudGVuY2UtcHJlY2VkaW5nLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTggdGhlIFY4
IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBn
b3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQot
LyotLS0KLWVzaWQ6IHNlYy1JbnRsLlNlZ21lbnRlci5wcm90b3R5cGUuc2VnbWVudAotZGVzY3Jp
cHRpb246IFZlcmlmaWVzIHRoZSBiZWhhdmlvciBmb3IgdGhlICJzZWdtZW50IiBmdW5jdGlvbiBv
ZiB0aGUgU2VnbWVudGVyIHByb3RvdHlwZSBvYmplY3QuCi1pbmZvOiB8Ci0gICAgSW50bC5TZWdt
ZW50ZXIucHJvdG90eXBlLnNlZ21lbnQoIHN0cmluZyApCi1mZWF0dXJlczogW0ludGwuU2VnbWVu
dGVyXQotLS0tKi8KLQotY29uc3Qgc2VnID0gbmV3IEludGwuU2VnbWVudGVyKFtdLCB7Z3JhbnVs
YXJpdHk6ICJzZW50ZW5jZSJ9KQotZm9yIChjb25zdCB0ZXh0IG9mIFsKLSAgICAiSGVsbG8gd29y
bGQhIiwgLy8gRW5nbGlzaAotICAgICIgSGVsbG8gd29ybGQhICIsICAvLyBFbmdsaXNoIHdpdGgg
c3BhY2UgYmVmb3JlL2FmdGVyCi0gICAgIiBIZWxsbyB3b3JsZD8gRm9vIGJhciEiLCAvLyBFbmds
aXNoCi0gICAgIkplZG92YXRvdSBtYW1idSBvYmpldmlsYSDFvmVuYSB2IHphaHLDoWRrw6HFmXNr
w6kga29sb25paS4iLCAvLyBDemVjaAotICAgICJWaeG7h3QgTmFtOiBOaOG6pXQgdGjhu4MgaMOz
YSBz4bq9IGtow6FjIFRydW5nIFF14buRYz8iLCAgLy8gVmlldG5hbWVzZQotICAgICLOo86/zrLO
sc+Bzq3PgiDOtc69z4PPhM6sz4POtc65z4IgzprOv868zrnPg865z4zOvSDOs865zrEgz4TOv869
IM+Az4HOv8+Lz4DOv867zr/Os865z4POvM+MIM+EzrfPgiDOmc+EzrHOu86vzrHPgiIsIC8vIEdy
ZWVrCi0gICAgItCg0LXRiNC10L3QuNC1INCY0L3QtNC40Lgg0L4g0L/QvtC60YPQv9C60LUg0YDQ
vtGB0YHQuNC50YHQutC40YUg0KEtNDAwINGA0LDRgdGG0LXQvdC40LvQuCDQutCw0Log0LLRi9C3
0L7QsiDQodCo0JAiLCAgLy8gUnVzc2lhbgotICAgICLXlNeo15XXpNeQINep15TXpteZ15wg16DX
qdeZ150g15XXlNeg16LXqNeUINep16nXldei15HXk9eUINeiIiwgIC8vIEhlYnJldywKLSAgICAi
2KrYsdin2YXYqCDZhNmE2YXZhNmDINiz2YTZhdin2YY6INij2YbYpyDYrNin2K8g2YTZhNi62KfZ
itipLi4g2LnZhNmK2YMg2K/Zgdi5INin2YTZhdiy2YrYryIsIC8vIEFyYWJpYwotICAgICLgpK3g
pL7gpLDgpKQg4KSV4KWAIOCkj+CkuCA0MDAg4KSu4KS/4KS44KS+4KSH4KSyIOCkleClhyDgpK7g
pYHgpJXgpL7gpKzgpLLgpYcg4KSq4KS+4KSVIOCkleClgCDgpKXgpL7gpKEsIOCknOCkvuCkqOCl
h+CkgiDgpJXgpYzgpKgg4KSV4KS/4KSk4KSo4KS+IOCkpOCkvuCkleCkpOCkteCksCIsICAvLyAg
SGluZGkKLSAgICAi4K6w4K+G4K6f4K+NIOCuheCusuCusOCvjeCun+CvjSDgro7grprgr43grprg
rrDgrr/grpXgr43grpXgr4g7IOCuquCvgeCupOCvgeCumuCvjeCumuCvh+CusOCuv+Cur+Cuv+Cu
suCvjSDgrqjgrr7grrPgr4gg4K6F4K6w4K6a4K+BIOCuteCuv+Cun+CvgeCuruCvgeCuseCviCEi
LCAvLyBUYW1pbAotICAgICIn4LCJ4LCk4LGN4LCk4LCw4LGN4LC14LGB4LCy4LGBIOCwheCwguCw
puCxhyDgsLXgsLDgsJXgsYEg4LCT4LCf4LCw4LGN4LCyIOCwpOCxgeCwpuCwvyDgsJzgsL7gsKzg
sL/gsKTgsL7gsKjgsYEg4LC14LGG4LCs4LGN4oCM4LC44LGI4LCf4LGN4LCy4LGLIOCwquCxhuCw
n+CxjeCwn+CwteCwpuCxjeCwpuCxgSciLCAvLyBUZWx1Z3UKLSAgICAi5Y+w5YyX44CL5oq56buR
5p+vUOWkseaVl++8n+acseWtuOaBkumFuO+8muWnmuaWh+aZuuawo3B1cHXll4blpKfogIHpl4Yi
LCAvLyBDaGluZXNlCi0gICAgIuC4p+C4seC4lOC5hOC4l+C4o+C4leC4teC4o+C4sOC4huC4seC4
h+C5gOC4muC4suC4peC4h+C4iuC5iOC4p+C4h+C5gOC4guC5ieC4suC4nuC4o+C4o+C4qeC4siDg
uYDguIjguYnguLLguK3guLLguKfguLLguKrguYDguJzguKLguITguJnguKPguYnguK3guIfguYDg
uKPguLXguKLguJnguKPguLHguJrguJzguKXguIHguKPguKPguKHguYHguKXguYnguKciLCAgLy8g
VGhhaQotICAgICLkuZ3lt57ljJfpg6jjga7kuIDpg6jjgYzmmrTpoqjln5/jgavlhaXjgorjgb7j
gZfjgZ8o5pel55u05LqI5aCx5aOrIDIwMTjlubQxMOaciDA25pelKSAtIOaXpeacrOawl+ixoeWN
lOS8miB0ZW5raS5qcCIsICAvLyBKYXBhbmVzZQotICAgICLrspXsm5Ag4oCc64uk7IqkIOyngOu2
hCDsspjrtoTqtozCt+yImOydteq2jCDrqqjrkZAgTULqsIAg67O07Jyg4oCdIiwgLy8gS29yZWFu
Ci0gICAgXSkgewotICBjb25zdCBpdGVyID0gc2VnLnNlZ21lbnQodGV4dCk7Ci0gIGxldCBwcmV2
ID0gdGV4dC5sZW5ndGg7Ci0gIGxldCBzZWdtZW50cyA9IFtdOwotICBpdGVyLnByZWNlZGluZyhw
cmV2KTsKLSAgYXNzZXJ0KFsic2VwIiwgInRlcm0iXS5pbmNsdWRlcyhpdGVyLmJyZWFrVHlwZSks
IGl0ZXIuYnJlYWtUeXBlKTsKLSAgYXNzZXJ0KGl0ZXIuaW5kZXggPj0gMCk7Ci0gIGFzc2VydChp
dGVyLmluZGV4IDwgcHJldik7Ci0gIHNlZ21lbnRzLnB1c2godGV4dC5zdWJzdHJpbmcoaXRlci5p
bmRleCwgcHJldikpOwotICBwcmV2ID0gaXRlci5pbmRleDsKLSAgd2hpbGUgKCFpdGVyLnByZWNl
ZGluZygpKSB7Ci0gICAgYXNzZXJ0KFsic2VwIiwgInRlcm0iXS5pbmNsdWRlcyhpdGVyLmJyZWFr
VHlwZSksIGl0ZXIuYnJlYWtUeXBlKTsKLSAgICBhc3NlcnQoaXRlci5pbmRleCA+PSAwKTsKLSAg
ICBhc3NlcnQoaXRlci5pbmRleCA8PSB0ZXh0Lmxlbmd0aCk7Ci0gICAgYXNzZXJ0KGl0ZXIuaW5k
ZXggPCBwcmV2KTsKLSAgICBzZWdtZW50cy5wdXNoKHRleHQuc3Vic3RyaW5nKGl0ZXIuaW5kZXgs
IHByZXYpKTsKLSAgICBwcmV2ID0gaXRlci5pbmRleDsKLSAgfQotICBhc3NlcnQuc2FtZVZhbHVl
KHRleHQsIHNlZ21lbnRzLnJldmVyc2UoKS5qb2luKCIiKSk7Ci19CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdt
ZW50LXRvc3RyaW5nLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIv
cHJvdG90eXBlL3NlZ21lbnQvc2VnbWVudC10b3N0cmluZy5qcwppbmRleCBkZDllNGVjNGI5OWRi
MDhmMTZjNmMyZjdmZDg3MjM0ZDlmYTQ5M2ZkLi4zZDFhZDI3Y2RjOTI3YWFkNjBiMDEzOGVhYTFk
MTk0ZTBjMTQwNWY2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1Nl
Z21lbnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdtZW50LXRvc3RyaW5nLmpzCisrKyBiL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21l
bnQtdG9zdHJpbmcuanMKQEAgLTI1LDExICsyNSw4IEBAIGNvbnN0IHRlc3RzID0gWwogCiBjb25z
dCBzZWdtZW50ZXIgPSBuZXcgSW50bC5TZWdtZW50ZXIoImVuIiwgeyAiZ3JhbnVsYXJpdHkiOiAi
d29yZCIgfSk7CiBmb3IgKGNvbnN0IFthcmdzLCBleHBlY3RlZF0gb2YgdGVzdHMpIHsKLSAgY29u
c3QgaXRlcmF0b3IgPSBzZWdtZW50ZXIuc2VnbWVudCguLi5hcmdzKTsKLSAgY29uc3QgcmVzdWx0
ID0gaXRlcmF0b3IubmV4dCgpLnZhbHVlOwotICBhc3NlcnQuc2FtZVZhbHVlKHJlc3VsdC5zZWdt
ZW50LCBleHBlY3RlZCwgYEV4cGVjdGVkIHNlZ21lbnQgIiR7ZXhwZWN0ZWR9IiwgZm91bmQgIiR7
cmVzdWx0LnNlZ21lbnR9IiBmb3IgYXJndW1lbnRzICR7YXJnc31gKTsKLSAgYXNzZXJ0KFsid29y
ZCIsICJub25lIl0uaW5jbHVkZXMocmVzdWx0LmJyZWFrVHlwZSksIGBFeHBlY3RlZCB2YWxpZCBi
cmVha1R5cGUsIGZvdW5kICIke3Jlc3VsdC5icmVha1R5cGV9IiBmb3IgYXJndW1lbnRzICR7YXJn
c31gKTsKLSAgYXNzZXJ0LnNhbWVWYWx1ZShyZXN1bHQuaW5kZXgsIGV4cGVjdGVkLmxlbmd0aCwg
YEV4cGVjdGVkIGluZGV4ICR7ZXhwZWN0ZWQubGVuZ3RofSwgZm91bmQgJHtyZXN1bHQuaW5kZXh9
IGZvciBhcmd1bWVudHMgJHthcmdzfWApOworICBjb25zdCBzZWdtZW50cyA9IHNlZ21lbnRlci5z
ZWdtZW50KC4uLmFyZ3MpOworICBhc3NlcnQuc2FtZVZhbHVlKHNlZ21lbnRzLnN0cmluZywgZXhw
ZWN0ZWQsIGBFeHBlY3RlZCBzZWdtZW50ICIke2V4cGVjdGVkfSIsIGZvdW5kICIke3NlZ21lbnRz
LnNlZ21lbnR9IiBmb3IgYXJndW1lbnRzICR7YXJnc31gKTsKIH0KIAogY29uc3Qgc3ltYm9sID0g
U3ltYm9sKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21l
bnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdtZW50LXdvcmQtZm9sbG93aW5nLmpzIGIvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90eXBlL3NlZ21lbnQvc2VnbWVu
dC13b3JkLWZvbGxvd2luZy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2JlM2M0
YTBhMzViNzE0MTYwYjY0M2U1YmEwOTE4NzZjZmMzNzJmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1Nl
Z21lbnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdtZW50LXdvcmQtZm9sbG93aW5nLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTggdGhlIFY4IHByb2pl
Y3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5l
ZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLyotLS0K
LWVzaWQ6IHNlYy1JbnRsLlNlZ21lbnRlci5wcm90b3R5cGUuc2VnbWVudAotZGVzY3JpcHRpb246
IFZlcmlmaWVzIHRoZSBiZWhhdmlvciBmb3IgdGhlICJzZWdtZW50IiBmdW5jdGlvbiBvZiB0aGUg
U2VnbWVudGVyIHByb3RvdHlwZSBvYmplY3QuCi1pbmZvOiB8Ci0gICAgSW50bC5TZWdtZW50ZXIu
cHJvdG90eXBlLnNlZ21lbnQoIHN0cmluZyApCi1mZWF0dXJlczogW0ludGwuU2VnbWVudGVyXQot
LS0tKi8KLQotY29uc3Qgc2VnID0gbmV3IEludGwuU2VnbWVudGVyKFtdLCB7Z3JhbnVsYXJpdHk6
ICJ3b3JkIn0pCi1mb3IgKGNvbnN0IHRleHQgb2YgWwotICAgICJIZWxsbyB3b3JsZCEiLCAvLyBF
bmdsaXNoCi0gICAgIiBIZWxsbyB3b3JsZCEgIiwgIC8vIEVuZ2xpc2ggd2l0aCBzcGFjZSBiZWZv
cmUvYWZ0ZXIKLSAgICAiIEhlbGxvIHdvcmxkPyBGb28gYmFyISIsIC8vIEVuZ2xpc2gKLSAgICAi
SmVkb3ZhdG91IG1hbWJ1IG9iamV2aWxhIMW+ZW5hIHYgemFocsOhZGvDocWZc2vDqSBrb2xvbmlp
LiIsIC8vIEN6ZWNoCi0gICAgIlZp4buHdCBOYW06IE5o4bqldCB0aOG7gyBow7NhIHPhur0ga2jD
oWMgVHJ1bmcgUXXhu5FjPyIsICAvLyBWaWV0bmFtZXNlCi0gICAgIs6jzr/Oss6xz4HOrc+CIM61
zr3Pg8+EzqzPg861zrnPgiDOms6/zrzOuc+DzrnPjM69IM6zzrnOsSDPhM6/zr0gz4DPgc6/z4vP
gM6/zrvOv86zzrnPg868z4wgz4TOt8+CIM6Zz4TOsc67zq/Osc+CIiwgLy8gR3JlZWsKLSAgICAi
0KDQtdGI0LXQvdC40LUg0JjQvdC00LjQuCDQviDQv9C+0LrRg9C/0LrQtSDRgNC+0YHRgdC40LnR
gdC60LjRhSDQoS00MDAg0YDQsNGB0YbQtdC90LjQu9C4INC60LDQuiDQstGL0LfQvtCyINCh0KjQ
kCIsICAvLyBSdXNzaWFuCi0gICAgIteU16jXldek15Ag16nXlNem15nXnCDXoNep15nXnSDXldeU
16DXoteo15Qg16nXqdeV16LXkdeT15Qg16IiLCAgLy8gSGVicmV3LAotICAgICLYqtix2KfZhdio
INmE2YTZhdmE2YMg2LPZhNmF2KfZhjog2KPZhtinINis2KfYryDZhNmE2LrYp9mK2KkuLiDYudmE
2YrZgyDYr9mB2Lkg2KfZhNmF2LLZitivIiwgLy8gQXJhYmljCi0gICAgIuCkreCkvuCksOCkpCDg
pJXgpYAg4KSP4KS4IDQwMCDgpK7gpL/gpLjgpL7gpIfgpLIg4KSV4KWHIOCkruClgeCkleCkvuCk
rOCksuClhyDgpKrgpL7gpJUg4KSV4KWAIOCkpeCkvuCkoSwg4KSc4KS+4KSo4KWH4KSCIOCkleCl
jOCkqCDgpJXgpL/gpKTgpKjgpL4g4KSk4KS+4KSV4KSk4KS14KSwIiwgIC8vICBIaW5kaQotICAg
ICLgrrDgr4bgrp/gr40g4K6F4K6y4K6w4K+N4K6f4K+NIOCujuCumuCvjeCumuCusOCuv+CuleCv
jeCuleCviDsg4K6q4K+B4K6k4K+B4K6a4K+N4K6a4K+H4K6w4K6/4K6v4K6/4K6y4K+NIOCuqOCu
vuCus+CviCDgroXgrrDgrprgr4Eg4K614K6/4K6f4K+B4K6u4K+B4K6x4K+IISIsIC8vIFRhbWls
Ci0gICAgIifgsIngsKTgsY3gsKTgsLDgsY3gsLXgsYHgsLLgsYEg4LCF4LCC4LCm4LGHIOCwteCw
sOCwleCxgSDgsJPgsJ/gsLDgsY3gsLIg4LCk4LGB4LCm4LC/IOCwnOCwvuCwrOCwv+CwpOCwvuCw
qOCxgSDgsLXgsYbgsKzgsY3igIzgsLjgsYjgsJ/gsY3gsLLgsYsg4LCq4LGG4LCf4LGN4LCf4LC1
4LCm4LGN4LCm4LGBJyIsIC8vIFRlbHVndQotICAgICLlj7DljJfjgIvmirnpu5Hmn69Q5aSx5pWX
77yf5pyx5a245oGS6YW477ya5aea5paH5pm65rCjcHVwdeWXhuWkp+iAgemXhiIsIC8vIENoaW5l
c2UKLSAgICAi4Lin4Lix4LiU4LmE4LiX4Lij4LiV4Li14Lij4Liw4LiG4Lix4LiH4LmA4Lia4Liy
4Lil4LiH4LiK4LmI4Lin4LiH4LmA4LiC4LmJ4Liy4Lie4Lij4Lij4Lip4LiyIOC5gOC4iOC5ieC4
suC4reC4suC4p+C4suC4quC5gOC4nOC4ouC4hOC4meC4o+C5ieC4reC4h+C5gOC4o+C4teC4ouC4
meC4o+C4seC4muC4nOC4peC4geC4o+C4o+C4oeC5geC4peC5ieC4pyIsICAvLyBUaGFpCi0gICAg
IuS5neW3nuWMl+mDqOOBruS4gOmDqOOBjOaatOmiqOWfn+OBq+WFpeOCiuOBvuOBl+OBnyjml6Xn
m7TkuojloLHlo6sgMjAxOOW5tDEw5pyIMDbml6UpIC0g5pel5pys5rCX6LGh5Y2U5LyaIHRlbmtp
LmpwIiwgIC8vIEphcGFuZXNlCi0gICAgIuuyleybkCDigJzri6TsiqQg7KeA67aEIOyymOu2hOq2
jMK37IiY7J216raMIOuqqOuRkCBNQuqwgCDrs7TsnKDigJ0iLCAvLyBLb3JlYW4KLSAgICBdKSB7
Ci0gIGNvbnN0IGl0ZXIgPSBzZWcuc2VnbWVudCh0ZXh0KTsKLSAgbGV0IHByZXYgPSAwOwotICBs
ZXQgc2VnbWVudHMgPSBbXTsKLSAgd2hpbGUgKCFpdGVyLmZvbGxvd2luZygpKSB7Ci0gICAgYXNz
ZXJ0KFsid29yZCIsICJub25lIl0uaW5jbHVkZXMoaXRlci5icmVha1R5cGUpLCBpdGVyLmJyZWFr
VHlwZSk7Ci0gICAgYXNzZXJ0KGl0ZXIuaW5kZXggPj0gMCk7Ci0gICAgYXNzZXJ0KGl0ZXIuaW5k
ZXggPD0gdGV4dC5sZW5ndGgpOwotICAgIGFzc2VydChpdGVyLmluZGV4ID4gcHJldik7Ci0gICAg
c2VnbWVudHMucHVzaCh0ZXh0LnN1YnN0cmluZyhwcmV2LCBpdGVyLmluZGV4KSk7Ci0gICAgcHJl
diA9IGl0ZXIuaW5kZXg7Ci0gIH0KLSAgYXNzZXJ0LnNhbWVWYWx1ZSh0ZXh0LCBzZWdtZW50cy5q
b2luKCIiKSk7Ci19CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1Nl
Z21lbnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdtZW50LXdvcmQtaXRlcmFibGUuanMgYi9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1NlZ21lbnRlci9wcm90b3R5cGUvc2VnbWVudC9zZWdt
ZW50LXdvcmQtaXRlcmFibGUuanMKaW5kZXggOWNhNjE5MTZlMjZiMWJjMmJmMTE0NTMwNTYzYjk3
Y2QyZmFhNmJmNy4uOWE5ZDcwMjczYTNiMDlmN2Y1Y2Q4ODQ4OWI5NjA0NGZmNjNmZTA3OCAxMDA2
NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90eXBl
L3NlZ21lbnQvc2VnbWVudC13b3JkLWl0ZXJhYmxlLmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtd29yZC1pdGVy
YWJsZS5qcwpAQCAtMjksMjIgKzI5LDExIEBAIGZvciAoY29uc3QgdGV4dCBvZiBbCiAgICAgIuuy
leybkCDigJzri6TsiqQg7KeA67aEIOyymOu2hOq2jMK37IiY7J216raMIOuqqOuRkCBNQuqwgCDr
s7TsnKDigJ0iLCAvLyBLb3JlYW4KICAgICBdKSB7CiAgIGxldCBzZWdtZW50cyA9IFtdOwotICAv
LyBDcmVhdGUgYW5vdGhlciAlU2VnbWVudEl0ZXJhdG9yJSB0byBjb21wYXJlIHdpdGggcmVzdWx0
IGZyb20gdGhlIG9uZSB0aGF0Ci0gIC8vIGNyZWF0ZWQgaW4gdGhlIGZvciBvZiBsb29wLgotICBs
ZXQgaXRlciA9IHNlZy5zZWdtZW50KHRleHQpOwotICBsZXQgcHJldiA9IDA7CiAgIGZvciAoY29u
c3QgdiBvZiBzZWcuc2VnbWVudCh0ZXh0KSkgewotICAgIGFzc2VydChbIndvcmQiLCAibm9uZSJd
LmluY2x1ZGVzKHYuYnJlYWtUeXBlKSwgdi5icmVha1R5cGUpOworICAgIGFzc2VydC5zYW1lVmFs
dWUoImJvb2xlYW4iLCB0eXBlb2Ygdi5pc1dvcmRMaWtlKTsKICAgICBhc3NlcnQuc2FtZVZhbHVl
KCJzdHJpbmciLCB0eXBlb2Ygdi5zZWdtZW50KTsKICAgICBhc3NlcnQodi5zZWdtZW50Lmxlbmd0
aCA+IDApOwogICAgIHNlZ21lbnRzLnB1c2godi5zZWdtZW50KTsKLQotICAgIC8vIG1hbnVhbGx5
IGFkdmFuY2UgdGhlIGl0ZXIuCi0gICAgYXNzZXJ0LnNhbWVWYWx1ZShpdGVyLmZvbGxvd2luZygp
LCBmYWxzZSk7Ci0gICAgYXNzZXJ0LnNhbWVWYWx1ZShpdGVyLmJyZWFrVHlwZSwgdi5icmVha1R5
cGUpOwotICAgIGFzc2VydC5zYW1lVmFsdWUodGV4dC5zdWJzdHJpbmcocHJldiwgaXRlci5pbmRl
eCksIHYuc2VnbWVudCk7Ci0gICAgcHJldiA9IGl0ZXIuaW5kZXg7CiAgIH0KLSAgYXNzZXJ0KGl0
ZXIuZm9sbG93aW5nKCkpOwogICBhc3NlcnQuc2FtZVZhbHVlKHRleHQsIHNlZ21lbnRzLmpvaW4o
JycpKTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvU2VnbWVu
dGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtd29yZC1uZXh0LmpzIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90eXBlL3NlZ21lbnQvc2VnbWVudC13b3Jk
LW5leHQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiODdmYWEzMTU1MzFjMzZi
NTZhM2Y1MjA1NGQxNzU4NjNjNTVmMWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJv
dG90eXBlL3NlZ21lbnQvc2VnbWVudC13b3JkLW5leHQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0
NSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxOCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGlj
ZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLUludGwu
U2VnbWVudGVyLnByb3RvdHlwZS5zZWdtZW50Ci1kZXNjcmlwdGlvbjogVmVyaWZpZXMgdGhlIGJl
aGF2aW9yIGZvciB0aGUgInNlZ21lbnQiIGZ1bmN0aW9uIG9mIHRoZSBTZWdtZW50ZXIgcHJvdG90
eXBlIG9iamVjdC4KLWluZm86IHwKLSAgICBJbnRsLlNlZ21lbnRlci5wcm90b3R5cGUuc2VnbWVu
dCggc3RyaW5nICkKLWZlYXR1cmVzOiBbSW50bC5TZWdtZW50ZXJdCi0tLS0qLwotCi1jb25zdCBz
ZWcgPSBuZXcgSW50bC5TZWdtZW50ZXIoW10sIHtncmFudWxhcml0eTogIndvcmQifSkKLWZvciAo
Y29uc3QgdGV4dCBvZiBbCi0gICAgIkhlbGxvIHdvcmxkISIsIC8vIEVuZ2xpc2gKLSAgICAiIEhl
bGxvIHdvcmxkISAiLCAgLy8gRW5nbGlzaCB3aXRoIHNwYWNlIGJlZm9yZS9hZnRlcgotICAgICIg
SGVsbG8gd29ybGQ/IEZvbyBiYXIhIiwgLy8gRW5nbGlzaAotICAgICJKZWRvdmF0b3UgbWFtYnUg
b2JqZXZpbGEgxb5lbmEgdiB6YWhyw6Fka8OhxZlza8OpIGtvbG9uaWkuIiwgLy8gQ3plY2gKLSAg
ICAiVmnhu4d0IE5hbTogTmjhuqV0IHRo4buDIGjDs2Egc+G6vSBraMOhYyBUcnVuZyBRdeG7kWM/
IiwgIC8vIFZpZXRuYW1lc2UKLSAgICAizqPOv86yzrHPgc6tz4IgzrXOvc+Dz4TOrM+DzrXOuc+C
IM6azr/OvM65z4POuc+Mzr0gzrPOuc6xIM+Ezr/OvSDPgM+Bzr/Pi8+Azr/Ou86/zrPOuc+DzrzP
jCDPhM63z4IgzpnPhM6xzrvOr86xz4IiLCAvLyBHcmVlawotICAgICLQoNC10YjQtdC90LjQtSDQ
mNC90LTQuNC4INC+INC/0L7QutGD0L/QutC1INGA0L7RgdGB0LjQudGB0LrQuNGFINChLTQwMCDR
gNCw0YHRhtC10L3QuNC70Lgg0LrQsNC6INCy0YvQt9C+0LIg0KHQqNCQIiwgIC8vIFJ1c3NpYW4K
LSAgICAi15TXqNeV16TXkCDXqdeU16bXmdecINeg16nXmdedINeV15TXoNei16jXlCDXqdep15XX
oteR15PXlCDXoiIsICAvLyBIZWJyZXcsCi0gICAgItiq2LHYp9mF2Kgg2YTZhNmF2YTZgyDYs9mE
2YXYp9mGOiDYo9mG2Kcg2KzYp9ivINmE2YTYutin2YrYqS4uINi52YTZitmDINiv2YHYuSDYp9mE
2YXYstmK2K8iLCAvLyBBcmFiaWMKLSAgICAi4KSt4KS+4KSw4KSkIOCkleClgCDgpI/gpLggNDAw
IOCkruCkv+CkuOCkvuCkh+CksiDgpJXgpYcg4KSu4KWB4KSV4KS+4KSs4KSy4KWHIOCkquCkvuCk
lSDgpJXgpYAg4KSl4KS+4KShLCDgpJzgpL7gpKjgpYfgpIIg4KSV4KWM4KSoIOCkleCkv+CkpOCk
qOCkviDgpKTgpL7gpJXgpKTgpLXgpLAiLCAgLy8gIEhpbmRpCi0gICAgIuCusOCvhuCun+CvjSDg
roXgrrLgrrDgr43grp/gr40g4K6O4K6a4K+N4K6a4K6w4K6/4K6V4K+N4K6V4K+IOyDgrqrgr4Hg
rqTgr4Hgrprgr43grprgr4fgrrDgrr/grq/grr/grrLgr40g4K6o4K6+4K6z4K+IIOCuheCusOCu
muCvgSDgrrXgrr/grp/gr4Hgrq7gr4HgrrHgr4ghIiwgLy8gVGFtaWwKLSAgICAiJ+CwieCwpOCx
jeCwpOCwsOCxjeCwteCxgeCwsuCxgSDgsIXgsILgsKbgsYcg4LC14LCw4LCV4LGBIOCwk+Cwn+Cw
sOCxjeCwsiDgsKTgsYHgsKbgsL8g4LCc4LC+4LCs4LC/4LCk4LC+4LCo4LGBIOCwteCxhuCwrOCx
jeKAjOCwuOCxiOCwn+CxjeCwsuCxiyDgsKrgsYbgsJ/gsY3gsJ/gsLXgsKbgsY3gsKbgsYEnIiwg
Ly8gVGVsdWd1Ci0gICAgIuWPsOWMl+OAi+aKuem7keafr1DlpLHmlZfvvJ/mnLHlrbjmgZLphbjv
vJrlp5rmlofmmbrmsKNwdXB15ZeG5aSn6ICB6ZeGIiwgLy8gQ2hpbmVzZQotICAgICLguKfguLHg
uJTguYTguJfguKPguJXguLXguKPguLDguIbguLHguIfguYDguJrguLLguKXguIfguIrguYjguKfg
uIfguYDguILguYnguLLguJ7guKPguKPguKnguLIg4LmA4LiI4LmJ4Liy4Lit4Liy4Lin4Liy4Liq
4LmA4Lic4Lii4LiE4LiZ4Lij4LmJ4Lit4LiH4LmA4Lij4Li14Lii4LiZ4Lij4Lix4Lia4Lic4Lil
4LiB4Lij4Lij4Lih4LmB4Lil4LmJ4LinIiwgIC8vIFRoYWkKLSAgICAi5Lmd5bee5YyX6YOo44Gu
5LiA6YOo44GM5pq06aKo5Z+f44Gr5YWl44KK44G+44GX44GfKOaXpeebtOS6iOWgseWjqyAyMDE4
5bm0MTDmnIgwNuaXpSkgLSDml6XmnKzmsJfosaHljZTkvJogdGVua2kuanAiLCAgLy8gSmFwYW5l
c2UKLSAgICAi67KV7JuQIOKAnOuLpOyKpCDsp4DrtoQg7LKY67aE6raMwrfsiJjsnbXqtowg66qo
65GQIE1C6rCAIOuztOycoOKAnSIsIC8vIEtvcmVhbgotICAgIF0pIHsKLSAgY29uc3QgaXRlciA9
IHNlZy5zZWdtZW50KHRleHQpOwotICBsZXQgc2VnbWVudHMgPSBbXTsKLSAgbGV0IG9sZFBvcyA9
IC0xOwotICBmb3IgKGxldCByZXN1bHQgPSBpdGVyLm5leHQoKTsgIXJlc3VsdC5kb25lOyByZXN1
bHQgPSBpdGVyLm5leHQoKSkgewotICAgIGNvbnN0IHYgPSByZXN1bHQudmFsdWU7Ci0gICAgYXNz
ZXJ0KFsid29yZCIsICJub25lIl0uaW5jbHVkZXMoaXRlci5icmVha1R5cGUpLCBpdGVyLmJyZWFr
VHlwZSk7Ci0gICAgYXNzZXJ0LnNhbWVWYWx1ZSgic3RyaW5nIiwgdHlwZW9mIHYuc2VnbWVudCk7
Ci0gICAgYXNzZXJ0KHYuc2VnbWVudC5sZW5ndGggPiAwKTsKLSAgICBzZWdtZW50cy5wdXNoKHYu
c2VnbWVudCk7Ci0gICAgYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2Ygdi5pbmRleCwgIm51bWJlciIp
OwotICAgIGFzc2VydChvbGRQb3MgPCB2LmluZGV4KTsKLSAgICBvbGRQb3MgPSB2LmluZGV4Owot
ICB9Ci0gIGFzc2VydC5zYW1lVmFsdWUodGV4dCwgc2VnbWVudHMuam9pbignJykpOwotfQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90eXBl
L3NlZ21lbnQvc2VnbWVudC13b3JkLXByZWNlZGluZy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2ludGw0MDIvU2VnbWVudGVyL3Byb3RvdHlwZS9zZWdtZW50L3NlZ21lbnQtd29yZC1wcmVjZWRp
bmcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3ZTBkMzUxNTRkY2EzMWRjZmIw
NTEzNjVhMGRhY2NiOTdiYWIzYmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9TZWdtZW50ZXIvcHJvdG90
eXBlL3NlZ21lbnQvc2VnbWVudC13b3JkLXByZWNlZGluZy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDQ5ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE4IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBs
aWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLS8qLS0tCi1lc2lkOiBzZWMtSW50
bC5TZWdtZW50ZXIucHJvdG90eXBlLnNlZ21lbnQKLWRlc2NyaXB0aW9uOiBWZXJpZmllcyB0aGUg
YmVoYXZpb3IgZm9yIHRoZSAic2VnbWVudCIgZnVuY3Rpb24gb2YgdGhlIFNlZ21lbnRlciBwcm90
b3R5cGUgb2JqZWN0LgotaW5mbzogfAotICAgIEludGwuU2VnbWVudGVyLnByb3RvdHlwZS5zZWdt
ZW50KCBzdHJpbmcgKQotZmVhdHVyZXM6IFtJbnRsLlNlZ21lbnRlcl0KLS0tLSovCi0KLWNvbnN0
IHNlZyA9IG5ldyBJbnRsLlNlZ21lbnRlcihbXSwge2dyYW51bGFyaXR5OiAid29yZCJ9KQotZm9y
IChjb25zdCB0ZXh0IG9mIFsKLSAgICAiSGVsbG8gd29ybGQhIiwgLy8gRW5nbGlzaAotICAgICIg
SGVsbG8gd29ybGQhICIsICAvLyBFbmdsaXNoIHdpdGggc3BhY2UgYmVmb3JlL2FmdGVyCi0gICAg
IiBIZWxsbyB3b3JsZD8gRm9vIGJhciEiLCAvLyBFbmdsaXNoCi0gICAgIkplZG92YXRvdSBtYW1i
dSBvYmpldmlsYSDFvmVuYSB2IHphaHLDoWRrw6HFmXNrw6kga29sb25paS4iLCAvLyBDemVjaAot
ICAgICJWaeG7h3QgTmFtOiBOaOG6pXQgdGjhu4MgaMOzYSBz4bq9IGtow6FjIFRydW5nIFF14buR
Yz8iLCAgLy8gVmlldG5hbWVzZQotICAgICLOo86/zrLOsc+Bzq3PgiDOtc69z4PPhM6sz4POtc65
z4IgzprOv868zrnPg865z4zOvSDOs865zrEgz4TOv869IM+Az4HOv8+Lz4DOv867zr/Os865z4PO
vM+MIM+EzrfPgiDOmc+EzrHOu86vzrHPgiIsIC8vIEdyZWVrCi0gICAgItCg0LXRiNC10L3QuNC1
INCY0L3QtNC40Lgg0L4g0L/QvtC60YPQv9C60LUg0YDQvtGB0YHQuNC50YHQutC40YUg0KEtNDAw
INGA0LDRgdGG0LXQvdC40LvQuCDQutCw0Log0LLRi9C30L7QsiDQodCo0JAiLCAgLy8gUnVzc2lh
bgotICAgICLXlNeo15XXpNeQINep15TXpteZ15wg16DXqdeZ150g15XXlNeg16LXqNeUINep16nX
ldei15HXk9eUINeiIiwgIC8vIEhlYnJldywKLSAgICAi2KrYsdin2YXYqCDZhNmE2YXZhNmDINiz
2YTZhdin2YY6INij2YbYpyDYrNin2K8g2YTZhNi62KfZitipLi4g2LnZhNmK2YMg2K/Zgdi5INin
2YTZhdiy2YrYryIsIC8vIEFyYWJpYwotICAgICLgpK3gpL7gpLDgpKQg4KSV4KWAIOCkj+CkuCA0
MDAg4KSu4KS/4KS44KS+4KSH4KSyIOCkleClhyDgpK7gpYHgpJXgpL7gpKzgpLLgpYcg4KSq4KS+
4KSVIOCkleClgCDgpKXgpL7gpKEsIOCknOCkvuCkqOClh+CkgiDgpJXgpYzgpKgg4KSV4KS/4KSk
4KSo4KS+IOCkpOCkvuCkleCkpOCkteCksCIsICAvLyAgSGluZGkKLSAgICAi4K6w4K+G4K6f4K+N
IOCuheCusuCusOCvjeCun+CvjSDgro7grprgr43grprgrrDgrr/grpXgr43grpXgr4g7IOCuquCv
geCupOCvgeCumuCvjeCumuCvh+CusOCuv+Cur+Cuv+CusuCvjSDgrqjgrr7grrPgr4gg4K6F4K6w
4K6a4K+BIOCuteCuv+Cun+CvgeCuruCvgeCuseCviCEiLCAvLyBUYW1pbAotICAgICIn4LCJ4LCk
4LGN4LCk4LCw4LGN4LC14LGB4LCy4LGBIOCwheCwguCwpuCxhyDgsLXgsLDgsJXgsYEg4LCT4LCf
4LCw4LGN4LCyIOCwpOCxgeCwpuCwvyDgsJzgsL7gsKzgsL/gsKTgsL7gsKjgsYEg4LC14LGG4LCs
4LGN4oCM4LC44LGI4LCf4LGN4LCy4LGLIOCwquCxhuCwn+CxjeCwn+CwteCwpuCxjeCwpuCxgSci
LCAvLyBUZWx1Z3UKLSAgICAi5Y+w5YyX44CL5oq56buR5p+vUOWkseaVl++8n+acseWtuOaBkumF
uO+8muWnmuaWh+aZuuawo3B1cHXll4blpKfogIHpl4YiLCAvLyBDaGluZXNlCi0gICAgIuC4p+C4
seC4lOC5hOC4l+C4o+C4leC4teC4o+C4sOC4huC4seC4h+C5gOC4muC4suC4peC4h+C4iuC5iOC4
p+C4h+C5gOC4guC5ieC4suC4nuC4o+C4o+C4qeC4siDguYDguIjguYnguLLguK3guLLguKfguLLg
uKrguYDguJzguKLguITguJnguKPguYnguK3guIfguYDguKPguLXguKLguJnguKPguLHguJrguJzg
uKXguIHguKPguKPguKHguYHguKXguYnguKciLCAgLy8gVGhhaQotICAgICLkuZ3lt57ljJfpg6jj
ga7kuIDpg6jjgYzmmrTpoqjln5/jgavlhaXjgorjgb7jgZfjgZ8o5pel55u05LqI5aCx5aOrIDIw
MTjlubQxMOaciDA25pelKSAtIOaXpeacrOawl+ixoeWNlOS8miB0ZW5raS5qcCIsICAvLyBKYXBh
bmVzZQotICAgICLrspXsm5Ag4oCc64uk7IqkIOyngOu2hCDsspjrtoTqtozCt+yImOydteq2jCDr
qqjrkZAgTULqsIAg67O07Jyg4oCdIiwgLy8gS29yZWFuCi0gICAgXSkgewotICBjb25zdCBpdGVy
ID0gc2VnLnNlZ21lbnQodGV4dCk7Ci0gIGxldCBwcmV2ID0gdGV4dC5sZW5ndGg7Ci0gIGxldCBz
ZWdtZW50cyA9IFtdOwotICBpdGVyLnByZWNlZGluZyhwcmV2KTsKLSAgYXNzZXJ0KFsid29yZCIs
ICJub25lIl0uaW5jbHVkZXMoaXRlci5icmVha1R5cGUpLCBpdGVyLmJyZWFrVHlwZSk7Ci0gIGFz
c2VydChpdGVyLmluZGV4ID49IDApOwotICBhc3NlcnQoaXRlci5pbmRleCA8IHByZXYpOwotICBz
ZWdtZW50cy5wdXNoKHRleHQuc3Vic3RyaW5nKGl0ZXIuaW5kZXgsIHByZXYpKTsKLSAgcHJldiA9
IGl0ZXIuaW5kZXg7Ci0gIHdoaWxlICghaXRlci5wcmVjZWRpbmcoKSkgewotICAgIGFzc2VydChb
IndvcmQiLCAibm9uZSJdLmluY2x1ZGVzKGl0ZXIuYnJlYWtUeXBlKSwgaXRlci5icmVha1R5cGUp
OwotICAgIGFzc2VydChpdGVyLmluZGV4ID49IDApOwotICAgIGFzc2VydChpdGVyLmluZGV4IDw9
IHRleHQubGVuZ3RoKTsKLSAgICBhc3NlcnQoaXRlci5pbmRleCA8IHByZXYpOwotICAgIHNlZ21l
bnRzLnB1c2godGV4dC5zdWJzdHJpbmcoaXRlci5pbmRleCwgcHJldikpOwotICAgIHByZXYgPSBp
dGVyLmluZGV4OwotICB9Ci0gIGFzc2VydC5zYW1lVmFsdWUodGV4dCwgc2VnbWVudHMucmV2ZXJz
ZSgpLmpvaW4oIiIpKTsKLX0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2FzeW5jLWdlbmVyYXRvci95aWVsZC10aGVuYWJsZS1jcmVhdGUtcmVz
b2x2aW5nLWZ1bmN0aW9ucy1yZWplY3QuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9hc3luYy1nZW5lcmF0b3IveWllbGQtdGhlbmFibGUtY3JlYXRlLXJlc29s
dmluZy1mdW5jdGlvbnMtcmVqZWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ZjU1ZDY4ZThjNTc2NDVmMjM2
NDAwMTgwYzk0YzJjZmI5NjU0ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9hc3luYy1nZW5lcmF0b3IveWllbGQtdGhlbmFibGUt
Y3JlYXRlLXJlc29sdmluZy1mdW5jdGlvbnMtcmVqZWN0LmpzCkBAIC0wLDAgKzEsNzQgQEAKKy8v
IENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1nZW5lcmF0b3ItZnVuY3Rpb24tZGVm
aW5pdGlvbnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAg
YHJlamVjdGAgaXMgYW5vbnltb3VzIGJ1aWx0LWluIGZ1bmN0aW9uIHdpdGggbGVuZ3RoIG9mIDEu
CitpbmZvOiB8CisgIFlpZWxkRXhwcmVzc2lvbiA6IHlpZWxkIEFzc2lnbm1lbnRFeHByZXNzaW9u
IAorCisgIFsuLi5dCisgIDQuIElmIGdlbmVyYXRvcktpbmQgaXMgYXN5bmMsIHRoZW4gcmV0dXJu
ID8gQXN5bmNHZW5lcmF0b3JZaWVsZCh2YWx1ZSkuCisKKyAgQXN5bmNHZW5lcmF0b3JZaWVsZCAo
IHZhbHVlICkKKworICBbLi4uXQorICA1LiBTZXQgdmFsdWUgdG8gPyBBd2FpdCh2YWx1ZSkuCisg
IFsuLi5dCisgIDkuIFJldHVybiAhIEFzeW5jR2VuZXJhdG9yUmVzb2x2ZShnZW5lcmF0b3IsIHZh
bHVlLCBmYWxzZSkuCisKKyAgQXdhaXQKKworICBbLi4uXQorICAyLiBMZXQgcHJvbWlzZSBiZSA/
IFByb21pc2VSZXNvbHZlKCVQcm9taXNlJSwgdmFsdWUpLgorICBbLi4uXQorCisgIFByb21pc2VS
ZXNvbHZlICggQywgeCApCisKKyAgWy4uLl0KKyAgMy4gTGV0IHByb21pc2VDYXBhYmlsaXR5IGJl
ID8gTmV3UHJvbWlzZUNhcGFiaWxpdHkoQykuCisgIDQuIFBlcmZvcm0gPyBDYWxsKHByb21pc2VD
YXBhYmlsaXR5LltbUmVzb2x2ZV1dLCB1bmRlZmluZWQsIMKrIHggwrspLgorICA1LiBSZXR1cm4g
cHJvbWlzZUNhcGFiaWxpdHkuW1tQcm9taXNlXV0uCisKKyAgTmV3UHJvbWlzZUNhcGFiaWxpdHkg
KCBDICkKKworICBbLi4uXQorICA3LiBMZXQgcHJvbWlzZSBiZSA/IENvbnN0cnVjdChDLCDCqyBl
eGVjdXRvciDCuykuCisgIFsuLi5dCisgIDExLiBSZXR1cm4gcHJvbWlzZUNhcGFiaWxpdHkuCisK
KyAgUHJvbWlzZSAoIGV4ZWN1dG9yICkKKworICBbLi4uXQorICA4LiBMZXQgcmVzb2x2aW5nRnVu
Y3Rpb25zIGJlIENyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucyhwcm9taXNlKS4KKyAgWy4uLl0KKyAg
MTEuIFJldHVybiBwcm9taXNlLgorCisgIENyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucyAoIHByb21p
c2UgKQorCisgIFsuLi5dCisgIDcuIExldCByZWplY3QgYmUgISBDcmVhdGVCdWlsdGluRnVuY3Rp
b24oc3RlcHNSZWplY3QsIMKrIFtbUHJvbWlzZV1dLCBbW0FscmVhZHlSZXNvbHZlZF1dIMK7KS4K
KyAgWy4uLl0KKyAgMTAuIFJldHVybiB0aGUgUmVjb3JkIHsgW1tSZXNvbHZlXV06IHJlc29sdmUs
IFtbUmVqZWN0XV06IHJlamVjdCB9LgorZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBbYXN5bmMt
aXRlcmF0aW9uLCBSZWZsZWN0LmNvbnN0cnVjdF0KK2luY2x1ZGVzOiBbaXNDb25zdHJ1Y3Rvci5q
c10KKy0tLSovCisKK3ZhciB0aGVuYWJsZSA9IHsKKyAgdGhlbjogZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgcmVzb2x2ZShyZWplY3QpOworICB9LAorfTsKKwordmFyIGl0ZXIgPSAo
YXN5bmMgZnVuY3Rpb24qKCkgeworICB5aWVsZCB0aGVuYWJsZTsKK30oKSk7CisKK2l0ZXIubmV4
dCgpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgIHZhciByZWplY3QgPSByZXN1bHQudmFsdWU7
CisgIGFzc2VydCghaXNDb25zdHJ1Y3RvcihyZWplY3QpKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShy
ZWplY3QubGVuZ3RoLCAxKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZWplY3QubmFtZSwgJycpOwor
fSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvYXN5bmMtZ2VuZXJhdG9yL3lpZWxkLXRoZW5hYmxlLWNyZWF0
ZS1yZXNvbHZpbmctZnVuY3Rpb25zLXJlc29sdmUuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9hc3luYy1nZW5lcmF0b3IveWllbGQtdGhlbmFibGUtY3JlYXRl
LXJlc29sdmluZy1mdW5jdGlvbnMtcmVzb2x2ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTNkOWM2MjE1OTg5
OThmODFiMDc2YTlmMTA3N2M3NWY3ZjMwNzQzCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvYXN5bmMtZ2VuZXJhdG9yL3lpZWxkLXRo
ZW5hYmxlLWNyZWF0ZS1yZXNvbHZpbmctZnVuY3Rpb25zLXJlc29sdmUuanMKQEAgLTAsMCArMSw3
NCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIEFsZXhleSBTaHZheWthLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3Vu
ZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWdlbmVyYXRvci1mdW5j
dGlvbi1kZWZpbml0aW9ucy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlv
bjogPgorICBgcmVzb2x2ZWAgaXMgYW5vbnltb3VzIGJ1aWx0LWluIGZ1bmN0aW9uIHdpdGggbGVu
Z3RoIG9mIDEuCitpbmZvOiB8CisgIFlpZWxkRXhwcmVzc2lvbiA6IHlpZWxkIEFzc2lnbm1lbnRF
eHByZXNzaW9uIAorCisgIFsuLi5dCisgIDQuIElmIGdlbmVyYXRvcktpbmQgaXMgYXN5bmMsIHRo
ZW4gcmV0dXJuID8gQXN5bmNHZW5lcmF0b3JZaWVsZCh2YWx1ZSkuCisKKyAgQXN5bmNHZW5lcmF0
b3JZaWVsZCAoIHZhbHVlICkKKworICBbLi4uXQorICA1LiBTZXQgdmFsdWUgdG8gPyBBd2FpdCh2
YWx1ZSkuCisgIFsuLi5dCisgIDkuIFJldHVybiAhIEFzeW5jR2VuZXJhdG9yUmVzb2x2ZShnZW5l
cmF0b3IsIHZhbHVlLCBmYWxzZSkuCisKKyAgQXdhaXQKKworICBbLi4uXQorICAyLiBMZXQgcHJv
bWlzZSBiZSA/IFByb21pc2VSZXNvbHZlKCVQcm9taXNlJSwgdmFsdWUpLgorICBbLi4uXQorCisg
IFByb21pc2VSZXNvbHZlICggQywgeCApCisKKyAgWy4uLl0KKyAgMy4gTGV0IHByb21pc2VDYXBh
YmlsaXR5IGJlID8gTmV3UHJvbWlzZUNhcGFiaWxpdHkoQykuCisgIDQuIFBlcmZvcm0gPyBDYWxs
KHByb21pc2VDYXBhYmlsaXR5LltbUmVzb2x2ZV1dLCB1bmRlZmluZWQsIMKrIHggwrspLgorICA1
LiBSZXR1cm4gcHJvbWlzZUNhcGFiaWxpdHkuW1tQcm9taXNlXV0uCisKKyAgTmV3UHJvbWlzZUNh
cGFiaWxpdHkgKCBDICkKKworICBbLi4uXQorICA3LiBMZXQgcHJvbWlzZSBiZSA/IENvbnN0cnVj
dChDLCDCqyBleGVjdXRvciDCuykuCisgIFsuLi5dCisgIDExLiBSZXR1cm4gcHJvbWlzZUNhcGFi
aWxpdHkuCisKKyAgUHJvbWlzZSAoIGV4ZWN1dG9yICkKKworICBbLi4uXQorICA4LiBMZXQgcmVz
b2x2aW5nRnVuY3Rpb25zIGJlIENyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucyhwcm9taXNlKS4KKyAg
Wy4uLl0KKyAgMTEuIFJldHVybiBwcm9taXNlLgorCisgIENyZWF0ZVJlc29sdmluZ0Z1bmN0aW9u
cyAoIHByb21pc2UgKQorCisgIFsuLi5dCisgIDMuIExldCByZXNvbHZlIGJlICEgQ3JlYXRlQnVp
bHRpbkZ1bmN0aW9uKHN0ZXBzUmVzb2x2ZSwgwqsgW1tQcm9taXNlXV0sIFtbQWxyZWFkeVJlc29s
dmVkXV0gwrspLgorICBbLi4uXQorICAxMC4gUmV0dXJuIHRoZSBSZWNvcmQgeyBbW1Jlc29sdmVd
XTogcmVzb2x2ZSwgW1tSZWplY3RdXTogcmVqZWN0IH0uCitmbGFnczogW2FzeW5jXQorZmVhdHVy
ZXM6IFthc3luYy1pdGVyYXRpb24sIFJlZmxlY3QuY29uc3RydWN0XQoraW5jbHVkZXM6IFtpc0Nv
bnN0cnVjdG9yLmpzXQorLS0tKi8KKwordmFyIHRoZW5hYmxlID0geworICB0aGVuOiBmdW5jdGlv
bihyZXNvbHZlKSB7CisgICAgcmVzb2x2ZShyZXNvbHZlKTsKKyAgfSwKK307CisKK3ZhciBpdGVy
ID0gKGFzeW5jIGZ1bmN0aW9uKigpIHsKKyAgeWllbGQgdGhlbmFibGU7Cit9KCkpOworCitpdGVy
Lm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICB2YXIgcmVzb2x2ZSA9IHJlc3VsdC52
YWx1ZTsKKyAgYXNzZXJ0KCFpc0NvbnN0cnVjdG9yKHJlc29sdmUpKTsKKyAgYXNzZXJ0LnNhbWVW
YWx1ZShyZXNvbHZlLmxlbmd0aCwgMSk7CisgIGFzc2VydC5zYW1lVmFsdWUocmVzb2x2ZS5uYW1l
LCAnJyk7Cit9KS50aGVuKCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQt
YXNzaWdubWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24tYXJyb3ctZnVuY3Rpb24uanMgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1l
bnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24tYXJyb3ctZnVu
Y3Rpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgzYzNhNTBkOTRmNzZkNDZhNWRlNDIyMjJhZmFmMWNhMmVk
MTM5YQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9y
LW5hbWVkZXZhbHVhdGlvbi1hcnJvdy1mdW5jdGlvbi5qcwpAQCAtMCwwICsxLDIwIEBACisvLyBD
b3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9y
cy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogTmFtZWRFdmFsdWF0
aW9uIG9mIExvZ2ljYWwgQW5kIEFzc2lnbm1lbnQKK2luZm86IHwKKyAgICBBc3NpZ25tZW50RXhw
cmVzc2lvbjoKKyAgICAgIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gJiY9IEFzc2lnbm1lbnRFeHBy
ZXNzaW9uCisKKyAgICA1LiBJZiBJc0Fub255bW91c0Z1bmN0aW9uRGVmaW5pdGlvbihBc3NpZ25t
ZW50RXhwcmVzc2lvbikgYW5kIElzSWRlbnRpZmllclJlZiBvZiBMZWZ0SGFuZFNpZGVFeHByZXNz
aW9uIGFyZSBib3RoIHRydWUsIHRoZW4KKyAgICAgIGEuIExldCBydmFsIGJlIE5hbWVkRXZhbHVh
dGlvbiBvZiBBc3NpZ25tZW50RXhwcmVzc2lvbiB3aXRoIGFyZ3VtZW50IEdldFJlZmVyZW5jZWRO
YW1lKGxyZWYpLgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCist
LS0qLworCit2YXIgdmFsdWUgPSAxOwordmFsdWUgJiY9ICgpID0+IHt9OworCithc3NlcnQuc2Ft
ZVZhbHVlKHZhbHVlLm5hbWUsICJ2YWx1ZSIsICJ2YWx1ZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3ItbmFtZWRldmFsdWF0aW9uLWNsYXNzLWV4cHJlc3Np
b24uanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24t
Y2xhc3MtZXhwcmVzc2lvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjk2ZGRhYWE5ZjM3YjE5YTRhZTVkMmRi
ZTkzNGU2ZDZkMzUyZWY3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1l
bnQtb3BlcmF0b3ItbmFtZWRldmFsdWF0aW9uLWNsYXNzLWV4cHJlc3Npb24uanMKQEAgLTAsMCAr
MSwyMCBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNl
bnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdu
bWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246
IE5hbWVkRXZhbHVhdGlvbiBvZiBMb2dpY2FsIEFuZCBBc3NpZ25tZW50CitpbmZvOiB8CisgICAg
QXNzaWdubWVudEV4cHJlc3Npb246CisgICAgICBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uICYmPSBB
c3NpZ25tZW50RXhwcmVzc2lvbgorCisgICAgNS4gSWYgSXNBbm9ueW1vdXNGdW5jdGlvbkRlZmlu
aXRpb24oQXNzaWdubWVudEV4cHJlc3Npb24pIGFuZCBJc0lkZW50aWZpZXJSZWYgb2YgTGVmdEhh
bmRTaWRlRXhwcmVzc2lvbiBhcmUgYm90aCB0cnVlLCB0aGVuCisgICAgICBhLiBMZXQgcnZhbCBi
ZSBOYW1lZEV2YWx1YXRpb24gb2YgQXNzaWdubWVudEV4cHJlc3Npb24gd2l0aCBhcmd1bWVudCBH
ZXRSZWZlcmVuY2VkTmFtZShscmVmKS4KK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9w
ZXJhdG9yc10KKworLS0tKi8KKwordmFyIHZhbHVlID0gMTsKK3ZhbHVlICYmPSBjbGFzcyB7fTsK
KworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZS5uYW1lLCAidmFsdWUiLCAidmFsdWUiKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwt
YXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5hbWVkZXZhbHVhdGlvbi1m
dW5jdGlvbi5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xv
Z2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5hbWVkZXZhbHVh
dGlvbi1mdW5jdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjk0OGUzZWVmOWMzMjE2NjcxMzI0ZmIxYTVk
ODA1NTg2NzQ2ZDhhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQt
b3BlcmF0b3ItbmFtZWRldmFsdWF0aW9uLWZ1bmN0aW9uLmpzCkBAIC0wLDAgKzEsMjAgQEAKKy8v
IENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0
b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiBOYW1lZEV2YWx1
YXRpb24gb2YgTG9naWNhbCBBbmQgQXNzaWdubWVudAoraW5mbzogfAorICAgIEFzc2lnbm1lbnRF
eHByZXNzaW9uOgorICAgICAgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiAmJj0gQXNzaWdubWVudEV4
cHJlc3Npb24KKworICAgIDUuIElmIElzQW5vbnltb3VzRnVuY3Rpb25EZWZpbml0aW9uKEFzc2ln
bm1lbnRFeHByZXNzaW9uKSBhbmQgSXNJZGVudGlmaWVyUmVmIG9mIExlZnRIYW5kU2lkZUV4cHJl
c3Npb24gYXJlIGJvdGggdHJ1ZSwgdGhlbgorICAgICAgYS4gTGV0IHJ2YWwgYmUgTmFtZWRFdmFs
dWF0aW9uIG9mIEFzc2lnbm1lbnRFeHByZXNzaW9uIHdpdGggYXJndW1lbnQgR2V0UmVmZXJlbmNl
ZE5hbWUobHJlZikuCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisK
Ky0tLSovCisKK3ZhciB2YWx1ZSA9IDE7Cit2YWx1ZSAmJj0gZnVuY3Rpb24oKSB7fTsKKworYXNz
ZXJ0LnNhbWVWYWx1ZSh2YWx1ZS5uYW1lLCAidmFsdWUiLCAidmFsdWUiKTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdu
bWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24tYXJy
b3ctZnVuY3Rpb24uanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3ItbmFt
ZWRldmFsdWF0aW9uLWFycm93LWZ1bmN0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ZjQ1NjUxZDk5YmEw
YjZiNzFlNTQ5ZjIyOTdlNjJiMTljMGEyYjcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1u
dWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3ItbmFtZWRldmFsdWF0aW9uLWFycm93LWZ1bmN0aW9u
LmpzCkBAIC0wLDAgKzEsMjAgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0
aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5
IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNp
ZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24K
K2Rlc2NyaXB0aW9uOiBOYW1lZEV2YWx1YXRpb24gb2YgTG9naWNhbCBOdWxsaXNoIEFzc2lnbm1l
bnQKK2luZm86IHwKKyAgICBBc3NpZ25tZW50RXhwcmVzc2lvbjoKKyAgICAgIExlZnRIYW5kU2lk
ZUV4cHJlc3Npb24gPz89IEFzc2lnbm1lbnRFeHByZXNzaW9uCisKKyAgICA0LiBJZiBJc0Fub255
bW91c0Z1bmN0aW9uRGVmaW5pdGlvbihBc3NpZ25tZW50RXhwcmVzc2lvbikgYW5kIElzSWRlbnRp
ZmllclJlZiBvZiBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIGFyZSBib3RoIHRydWUsIHRoZW4KKyAg
ICAgIGEuIExldCBydmFsIGJlIE5hbWVkRXZhbHVhdGlvbiBvZiBBc3NpZ25tZW50RXhwcmVzc2lv
biB3aXRoIGFyZ3VtZW50IEdldFJlZmVyZW5jZWROYW1lKGxyZWYpLgorZmVhdHVyZXM6IFtsb2dp
Y2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgdmFsdWUgPSB1bmRlZmlu
ZWQ7Cit2YWx1ZSA/Pz0gKCkgPT4ge307CisKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUubmFtZSwg
InZhbHVlIiwgInZhbHVlIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1l
bnQtb3BlcmF0b3ItbmFtZWRldmFsdWF0aW9uLWNsYXNzLWV4cHJlc3Npb24uanMgYi9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdj
bC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3ItbmFtZWRldmFsdWF0aW9uLWNsYXNzLWV4cHJl
c3Npb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg4Y2E0MzU1ZDk5ZjUzOTA1OTk4NjQ3ODhmNDlhNDgwZmMx
ZDZmZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVy
YXRvci1uYW1lZGV2YWx1YXRpb24tY2xhc3MtZXhwcmVzc2lvbi5qcwpAQCAtMCwwICsxLDIwIEBA
CisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9w
ZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogTmFtZWRF
dmFsdWF0aW9uIG9mIExvZ2ljYWwgTnVsbGlzaCBBc3NpZ25tZW50CitpbmZvOiB8CisgICAgQXNz
aWdubWVudEV4cHJlc3Npb246CisgICAgICBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uID8/PSBBc3Np
Z25tZW50RXhwcmVzc2lvbgorCisgICAgNC4gSWYgSXNBbm9ueW1vdXNGdW5jdGlvbkRlZmluaXRp
b24oQXNzaWdubWVudEV4cHJlc3Npb24pIGFuZCBJc0lkZW50aWZpZXJSZWYgb2YgTGVmdEhhbmRT
aWRlRXhwcmVzc2lvbiBhcmUgYm90aCB0cnVlLCB0aGVuCisgICAgICBhLiBMZXQgcnZhbCBiZSBO
YW1lZEV2YWx1YXRpb24gb2YgQXNzaWdubWVudEV4cHJlc3Npb24gd2l0aCBhcmd1bWVudCBHZXRS
ZWZlcmVuY2VkTmFtZShscmVmKS4KK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJh
dG9yc10KKworLS0tKi8KKwordmFyIHZhbHVlID0gdW5kZWZpbmVkOwordmFsdWUgPz89IGNsYXNz
IHt9OworCithc3NlcnQuc2FtZVZhbHVlKHZhbHVlLm5hbWUsICJ2YWx1ZSIsICJ2YWx1ZSIpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLW5hbWVkZXZh
bHVhdGlvbi1mdW5jdGlvbi5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRv
ci1uYW1lZGV2YWx1YXRpb24tZnVuY3Rpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY0MWQyOWEyYzZhYjIx
ZTY4NGE0MTkwMGNkY2ExYzA4NGJiMTA1NwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51
bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24tZnVuY3Rpb24uanMKQEAg
LTAsMCArMSwyMCBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMt
YXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3Jp
cHRpb246IE5hbWVkRXZhbHVhdGlvbiBvZiBMb2dpY2FsIE51bGxpc2ggQXNzaWdubWVudAoraW5m
bzogfAorICAgIEFzc2lnbm1lbnRFeHByZXNzaW9uOgorICAgICAgTGVmdEhhbmRTaWRlRXhwcmVz
c2lvbiA/Pz0gQXNzaWdubWVudEV4cHJlc3Npb24KKworICAgIDQuIElmIElzQW5vbnltb3VzRnVu
Y3Rpb25EZWZpbml0aW9uKEFzc2lnbm1lbnRFeHByZXNzaW9uKSBhbmQgSXNJZGVudGlmaWVyUmVm
IG9mIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gYXJlIGJvdGggdHJ1ZSwgdGhlbgorICAgICAgYS4g
TGV0IHJ2YWwgYmUgTmFtZWRFdmFsdWF0aW9uIG9mIEFzc2lnbm1lbnRFeHByZXNzaW9uIHdpdGgg
YXJndW1lbnQgR2V0UmVmZXJlbmNlZE5hbWUobHJlZikuCitmZWF0dXJlczogW2xvZ2ljYWwtYXNz
aWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisKK3ZhciB2YWx1ZSA9IHVuZGVmaW5lZDsKK3Zh
bHVlID8/PSBmdW5jdGlvbigpIHt9OworCithc3NlcnQuc2FtZVZhbHVlKHZhbHVlLm5hbWUsICJ2
YWx1ZSIsICJ2YWx1ZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVy
YXRvci1uYW1lZGV2YWx1YXRpb24tYXJyb3ctZnVuY3Rpb24uanMgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3Np
Z25tZW50LW9wZXJhdG9yLW5hbWVkZXZhbHVhdGlvbi1hcnJvdy1mdW5jdGlvbi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zOWUxOTJjZTRlNzllYmE2ODIzNWRjMzVhYTkzYTkwNDQxYzI3Yzk1Ci0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNh
bC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24t
YXJyb3ctZnVuY3Rpb24uanMKQEAgLTAsMCArMSwyMCBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIw
IEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUg
aXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu
CisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRp
Y3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246IE5hbWVkRXZhbHVhdGlvbiBvZiBMb2dpY2FsIE9y
IEFzc2lnbm1lbnQKK2luZm86IHwKKyAgICBBc3NpZ25tZW50RXhwcmVzc2lvbjoKKyAgICAgIExl
ZnRIYW5kU2lkZUV4cHJlc3Npb24gfHw9IEFzc2lnbm1lbnRFeHByZXNzaW9uCisKKyAgICA1LiBJ
ZiBJc0Fub255bW91c0Z1bmN0aW9uRGVmaW5pdGlvbihBc3NpZ25tZW50RXhwcmVzc2lvbikgYW5k
IElzSWRlbnRpZmllclJlZiBvZiBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIGFyZSBib3RoIHRydWUs
IHRoZW4KKyAgICAgIGEuIExldCBydmFsIGJlIE5hbWVkRXZhbHVhdGlvbiBvZiBBc3NpZ25tZW50
RXhwcmVzc2lvbiB3aXRoIGFyZ3VtZW50IEdldFJlZmVyZW5jZWROYW1lKGxyZWYpLgorZmVhdHVy
ZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgdmFsdWUg
PSAwOwordmFsdWUgfHw9ICgpID0+IHt9OworCithc3NlcnQuc2FtZVZhbHVlKHZhbHVlLm5hbWUs
ICJ2YWx1ZSIsICJ2YWx1ZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1v
cGVyYXRvci1uYW1lZGV2YWx1YXRpb24tY2xhc3MtZXhwcmVzc2lvbi5qcyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9y
LWFzc2lnbm1lbnQtb3BlcmF0b3ItbmFtZWRldmFsdWF0aW9uLWNsYXNzLWV4cHJlc3Npb24uanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmZmMzY5MDk4YTlmYmNmYmFkYTQ1MzRiMmM5MmMxMTljZDBkOTFkMgotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3ItbmFtZWRldmFs
dWF0aW9uLWNsYXNzLWV4cHJlc3Npb24uanMKQEAgLTAsMCArMSwyMCBAQAorLy8gQ29weXJpZ2h0
IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBU
aGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGlt
ZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246IE5hbWVkRXZhbHVhdGlvbiBvZiBM
b2dpY2FsIE9yIEFzc2lnbm1lbnQKK2luZm86IHwKKyAgICBBc3NpZ25tZW50RXhwcmVzc2lvbjoK
KyAgICAgIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gfHw9IEFzc2lnbm1lbnRFeHByZXNzaW9uCisK
KyAgICA1LiBJZiBJc0Fub255bW91c0Z1bmN0aW9uRGVmaW5pdGlvbihBc3NpZ25tZW50RXhwcmVz
c2lvbikgYW5kIElzSWRlbnRpZmllclJlZiBvZiBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIGFyZSBi
b3RoIHRydWUsIHRoZW4KKyAgICAgIGEuIExldCBydmFsIGJlIE5hbWVkRXZhbHVhdGlvbiBvZiBB
c3NpZ25tZW50RXhwcmVzc2lvbiB3aXRoIGFyZ3VtZW50IEdldFJlZmVyZW5jZWROYW1lKGxyZWYp
LgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2
YXIgdmFsdWUgPSAwOwordmFsdWUgfHw9IGNsYXNzIHt9OworCithc3NlcnQuc2FtZVZhbHVlKHZh
bHVlLm5hbWUsICJ2YWx1ZSIsICJ2YWx1ZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNz
aWdubWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24tZnVuY3Rpb24uanMgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1v
ci1hc3NpZ25tZW50LW9wZXJhdG9yLW5hbWVkZXZhbHVhdGlvbi1mdW5jdGlvbi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zYThhY2QxMTJhZTQ2ODRiZWRlZDYxYjg0ZGYzYTNjMzNkMDFlYjEzCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNh
bC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1uYW1lZGV2YWx1YXRpb24t
ZnVuY3Rpb24uanMKQEAgLTAsMCArMSwyMCBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEg
SW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292
ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8q
LS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZh
bHVhdGlvbgorZGVzY3JpcHRpb246IE5hbWVkRXZhbHVhdGlvbiBvZiBMb2dpY2FsIE9yIEFzc2ln
bm1lbnQKK2luZm86IHwKKyAgICBBc3NpZ25tZW50RXhwcmVzc2lvbjoKKyAgICAgIExlZnRIYW5k
U2lkZUV4cHJlc3Npb24gfHw9IEFzc2lnbm1lbnRFeHByZXNzaW9uCisKKyAgICA1LiBJZiBJc0Fu
b255bW91c0Z1bmN0aW9uRGVmaW5pdGlvbihBc3NpZ25tZW50RXhwcmVzc2lvbikgYW5kIElzSWRl
bnRpZmllclJlZiBvZiBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIGFyZSBib3RoIHRydWUsIHRoZW4K
KyAgICAgIGEuIExldCBydmFsIGJlIE5hbWVkRXZhbHVhdGlvbiBvZiBBc3NpZ25tZW50RXhwcmVz
c2lvbiB3aXRoIGFyZ3VtZW50IEdldFJlZmVyZW5jZWROYW1lKGxyZWYpLgorZmVhdHVyZXM6IFts
b2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgdmFsdWUgPSAwOwor
dmFsdWUgfHw9IGZ1bmN0aW9uKCkge307CisKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUubmFtZSwg
InZhbHVlIiwgInZhbHVlIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdDI2Mi1S
ZXZpc2lvbi50eHQgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdDI2Mi1SZXZpc2lvbi50eHQKaW5kZXgg
OWVjODBiOWNiMDJhYzlhYjUxNTJkMTRjYThkNDU4MzdkZmQyOGFkMC4uNTI2NTFhZTIxNzllZWRi
MjU1ZGY2YWE4NzNmZGVjMWJmZGMyZmI4YSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rl
c3QyNjItUmV2aXNpb24udHh0CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0MjYyLVJldmlzaW9u
LnR4dApAQCAtMSwyICsxLDIgQEAKIHRlc3QyNjIgcmVtb3RlIHVybDogZ2l0QGdpdGh1Yi5jb206
dGMzOS90ZXN0MjYyLmdpdAotdGVzdDI2MiByZXZpc2lvbjogMjkwY2ViYTMxZmVhOTQwOGY3MWI5
OWYwZTE0ZjRkM2M0ZWU3YmJiNQordGVzdDI2MiByZXZpc2lvbjogOGQzZGQyZDFhMGE1Yjc5ZGM2
MWI3MmExODE3ZjRjMmJkNTEyZDE1Ngo=
</data>

          </attachment>
      

    </bug>

</bugzilla>