<?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>185850</bug_id>
          
          <creation_ts>2018-05-21 16:39:43 -0700</creation_ts>
          <short_desc>REGRESSION(r232030): &quot;Caused TestWebKitAPI.IndexedDB.StructuredCloneBackwardCompatibility API test to fail&quot; (Requested by cdumez on #webkit).</short_desc>
          <delta_ts>2018-05-21 16:43:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>185773</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1425941</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-21 16:39:43 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/232030 broke the build:
&quot;Caused TestWebKitAPI.IndexedDB.StructuredCloneBackwardCompatibility API test to fail&quot; (Requested by cdumez on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425943</commentid>
    <comment_count>1</comment_count>
      <attachid>340925</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-21 16:39:50 -0700</bug_when>
    <thetext>Created attachment 340925
ROLLOUT of r232030

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425945</commentid>
    <comment_count>2</comment_count>
      <attachid>340925</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-21 16:42:27 -0700</bug_when>
    <thetext>Comment on attachment 340925
ROLLOUT of r232030

Clearing flags on attachment: 340925

Committed r232037: &lt;https://trac.webkit.org/changeset/232037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425946</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-21 16:42:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425947</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-21 16:43:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/40434991&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340925</attachid>
            <date>2018-05-21 16:39:50 -0700</date>
            <delta_ts>2018-05-21 16:42:27 -0700</delta_ts>
            <desc>ROLLOUT of r232030</desc>
            <filename>bug-185850-20180521193950.patch</filename>
            <type>text/plain</type>
            <size>151027</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk3OTI3NjA0Mjk3ZjBj
ZTc1MGRhNzk3NTc0OTViZTZiZTk2YzRjNy4uYmU1ODdiY2Y4ZDExYjBkOWM3MTU0YWNiMjdmYzJk
MmY3ZDgwZTNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA1LTIxICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjMyMDMwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg1ODUwCisKKyAgICAgICAgIkNhdXNlZAorICAgICAgICBUZXN0V2Vi
S2l0QVBJLkluZGV4ZWREQi5TdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkKKyAg
ICAgICAgQVBJIHRlc3QgdG8gZmFpbCIgKFJlcXVlc3RlZCBieSBjZHVtZXogb24gI3dlYmtpdCku
CisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJGaWxlJ3Mgc3RydWN0
dXJlZCBzZXJpYWxpemF0aW9uIHNob3VsZCBzZXJpYWxpemUgbGFzdE1vZGlmaWVkCisgICAgICAg
IGF0dHJpYnV0ZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4NTc3MworICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjMy
MDMwCisKIDIwMTgtMDUtMjEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04gKHIyMzExMDcpOiBDU1AgcmVwb3J0LW9ubHkgcG9saWNpZXMgYXJl
IGlnbm9yZWQgZm9yIGJlYWNvbiwgaW1wb3J0U2NyaXB0cywgZmV0Y2goKSwgRXZlbnRTb3VyY2Us
IGFuZCBYSFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwCmluZGV4IDUyMDFhNzA0ZTRiZjc3MjMxOTdiY2VhZGM5MmY0YzBjNTY4
NDQyMTYuLmIwMTgwODEyOWNjYmIyZGZhMzJiZWI3NTAwMGFlZTJkMTU4NjI3ZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cApAQCAtMjc4LDkgKzI3OCw4IEBAIHN0YXRpYyB1bnNpZ25lZCBjb3VudFVzYWdlcyhDcnlwdG9L
ZXlVc2FnZUJpdG1hcCB1c2FnZXMpCiAgKiBWZXJzaW9uIDQuIGFkZGVkIHN1cHBvcnQgZm9yIHNl
cmlhbGl6aW5nIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9mIGFycmF5cy4KICAqIFZlcnNpb24gNS4g
YWRkZWQgc3VwcG9ydCBmb3IgTWFwIGFuZCBTZXQgdHlwZXMuCiAgKiBWZXJzaW9uIDYuIGFkZGVk
IHN1cHBvcnQgZm9yIDgtYml0IHN0cmluZ3MuCi0gKiBWZXJzaW9uIDcuIGFkZGVkIHN1cHBvcnQg
Zm9yIEZpbGUncyBsYXN0TW9kaWZpZWQgYXR0cmlidXRlLgogICovCi1zdGF0aWMgY29uc3QgdW5z
aWduZWQgQ3VycmVudFZlcnNpb24gPSA3Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIEN1cnJlbnRW
ZXJzaW9uID0gNjsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBUZXJtaW5hdG9yVGFnID0gMHhGRkZG
RkZGRjsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJpbmdQb29sVGFnID0gMHhGRkZGRkZGRTsK
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBOb25JbmRleFByb3BlcnRpZXNUYWcgPSAweEZGRkZGRkZE
OwpAQCAtMzY0LDcgKzM2Myw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJpbmdEYXRhSXM4
Qml0RmxhZyA9IDB4ODAwMDAwMDA7CiAgKiAgICBGaWxlVGFnIEZpbGVEYXRhCiAgKgogICogRmls
ZURhdGEgOi0KLSAqICAgIDxwYXRoOlN0cmluZ0RhdGE+IDx1cmw6U3RyaW5nRGF0YT4gPHR5cGU6
U3RyaW5nRGF0YT4gPG5hbWU6U3RyaW5nRGF0YT4gPGxhc3RNb2RpZmllZDpkb3VibGU+CisgKiAg
ICA8cGF0aDpTdHJpbmdEYXRhPiA8dXJsOlN0cmluZ0RhdGE+IDx0eXBlOlN0cmluZ0RhdGE+IDxu
YW1lOlN0cmluZ0RhdGE+CiAgKgogICogRmlsZUxpc3QgOi0KICAqICAgIEZpbGVMaXN0VGFnIDxs
ZW5ndGg6dWludDMyX3Q+KDxmaWxlOkZpbGVEYXRhPil7bGVuZ3RofQpAQCAtMTIzNyw3ICsxMjM2
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgd3JpdGUoZmlsZS51cmwoKSk7CiAgICAgICAgIHdyaXRl
KGZpbGUudHlwZSgpKTsKICAgICAgICAgd3JpdGUoZmlsZS5uYW1lKCkpOwotICAgICAgICB3cml0
ZShzdGF0aWNfY2FzdDxkb3VibGU+KGZpbGUubGFzdE1vZGlmaWVkT3ZlcnJpZGUoKS52YWx1ZV9v
cigtMSkpKTsKICAgICB9CiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKQEAgLTIwMzgsOSAr
MjAzNiw2IEBAIHByaXZhdGU6CiAgICAgICAgIENhY2hlZFN0cmluZ1JlZiBuYW1lOwogICAgICAg
ICBpZiAoIXJlYWRTdHJpbmdEYXRhKG5hbWUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICBkb3VibGUgbGFzdE1vZGlmaWVkOwotICAgICAgICBpZiAoIXJlYWQobGFzdE1vZGlm
aWVkKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAvLyBJZiB0aGUgYmxv
YiBVUkwgZm9yIHRoaXMgZmlsZSBoYXMgYW4gYXNzb2NpYXRlZCBibG9iIGZpbGUgcGF0aCwgcHJl
ZmVyIHRoYXQgb25lIG92ZXIgdGhlICJidWlsdC1pbiIgcGF0aC4KICAgICAgICAgU3RyaW5nIGZp
bGVQYXRoID0gYmxvYkZpbGVQYXRoRm9yQmxvYlVSTCh1cmwtPnN0cmluZygpKTsKQEAgLTIwNDgs
NyArMjA0Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBmaWxlUGF0aCA9IHBhdGgtPnN0cmlu
ZygpOwogCiAgICAgICAgIGlmIChtX2lzRE9NR2xvYmFsT2JqZWN0KQotICAgICAgICAgICAgZmls
ZSA9IEZpbGU6OmRlc2VyaWFsaXplKGZpbGVQYXRoLCBVUkwoVVJMKCksIHVybC0+c3RyaW5nKCkp
LCB0eXBlLT5zdHJpbmcoKSwgbmFtZS0+c3RyaW5nKCksIGxhc3RNb2RpZmllZCA+PSAwID8gc3Rk
OjptYWtlX29wdGlvbmFsPGludDY0X3Q+KGxhc3RNb2RpZmllZCkgOiBzdGQ6Om51bGxvcHQpOwor
ICAgICAgICAgICAgZmlsZSA9IEZpbGU6OmRlc2VyaWFsaXplKGZpbGVQYXRoLCBVUkwoVVJMKCks
IHVybC0+c3RyaW5nKCkpLCB0eXBlLT5zdHJpbmcoKSwgbmFtZS0+c3RyaW5nKCkpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCmluZGV4IGU3YjBk
M2VjOTJmNDhlMmE1YzhlNzYxOGY2MWNjOTg1MGU4ZmU5MDEuLmU2OTVhYTU4NmNiNDE4YzYzMWYz
ZjY1ODNjYjY5YjUxMzY2OGFhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcApAQCAtNjMsMTEg
KzYzLDEwIEBAIEZpbGU6OkZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIG5h
bWVPdmVycmlkZSkKICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckZpbGVCbG9i
VVJMKG1faW50ZXJuYWxVUkwsIHBhdGgsIG1fdHlwZSk7CiB9CiAKLUZpbGU6OkZpbGUoRGVzZXJp
YWxpemF0aW9uQ29udHJ1Y3RvciwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8aW50NjRfdD4mIGxhc3RNb2RpZmllZCkKK0ZpbGU6OkZpbGUoRGVzZXJpYWxpemF0aW9uQ29u
dHJ1Y3RvciwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgOiBCbG9iKGRlc2VyaWFsaXphdGlvbkNv
bnRydWN0b3IsIHVybCwgdHlwZSwgLTEsIHBhdGgpCiAgICAgLCBtX3BhdGgocGF0aCkKICAgICAs
IG1fbmFtZShuYW1lKQotICAgICwgbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGUobGFzdE1vZGlm
aWVkKQogewogfQogCkBAIC04MSw3ICs4MCw3IEBAIHN0YXRpYyBCbG9iUHJvcGVydHlCYWcgY29u
dmVydFByb3BlcnR5QmFnKGNvbnN0IEZpbGU6OlByb3BlcnR5QmFnJiBpbml0aWFsQmFnKQogRmls
ZTo6RmlsZShWZWN0b3I8QmxvYlBhcnRWYXJpYW50PiYmIGJsb2JQYXJ0VmFyaWFudHMsIGNvbnN0
IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFByb3BlcnR5QmFnJiBwcm9wZXJ0eUJhZykKICAgICA6
IEJsb2IoV1RGTW92ZShibG9iUGFydFZhcmlhbnRzKSwgY29udmVydFByb3BlcnR5QmFnKHByb3Bl
cnR5QmFnKSkKICAgICAsIG1fbmFtZShmaWxlbmFtZSkKLSAgICAsIG1fbGFzdE1vZGlmaWVkRGF0
ZU92ZXJyaWRlKHByb3BlcnR5QmFnLmxhc3RNb2RpZmllZC52YWx1ZV9vcihXYWxsVGltZTo6bm93
KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKSkpCisgICAgLCBtX292ZXJyaWRl
TGFzdE1vZGlmaWVkRGF0ZShwcm9wZXJ0eUJhZy5sYXN0TW9kaWZpZWQudmFsdWVfb3IoV2FsbFRp
bWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCkpKQogewogfQogCkBA
IC05NywxNyArOTYsMTcgQEAgRmlsZTo6RmlsZShjb25zdCBGaWxlJiBmaWxlLCBjb25zdCBTdHJp
bmcmIG5hbWUpCiAgICAgLCBtX3BhdGgoZmlsZS5wYXRoKCkpCiAgICAgLCBtX3JlbGF0aXZlUGF0
aChmaWxlLnJlbGF0aXZlUGF0aCgpKQogICAgICwgbV9uYW1lKCFuYW1lLmlzTnVsbCgpID8gbmFt
ZSA6IGZpbGUubmFtZSgpKQotICAgICwgbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGUoZmlsZS5t
X2xhc3RNb2RpZmllZERhdGVPdmVycmlkZSkKKyAgICAsIG1fb3ZlcnJpZGVMYXN0TW9kaWZpZWRE
YXRlKGZpbGUubV9vdmVycmlkZUxhc3RNb2RpZmllZERhdGUpCiAgICAgLCBtX2lzRGlyZWN0b3J5
KGZpbGUuaXNEaXJlY3RvcnkoKSkKIHsKIH0KIAotaW50NjRfdCBGaWxlOjpsYXN0TW9kaWZpZWQo
KSBjb25zdAorZG91YmxlIEZpbGU6Omxhc3RNb2RpZmllZCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1f
bGFzdE1vZGlmaWVkRGF0ZU92ZXJyaWRlKQotICAgICAgICByZXR1cm4gbV9sYXN0TW9kaWZpZWRE
YXRlT3ZlcnJpZGUudmFsdWUoKTsKKyAgICBpZiAobV9vdmVycmlkZUxhc3RNb2RpZmllZERhdGUp
CisgICAgICAgIHJldHVybiBtX292ZXJyaWRlTGFzdE1vZGlmaWVkRGF0ZS52YWx1ZSgpOwogCi0g
ICAgaW50NjRfdCByZXN1bHQ7CisgICAgZG91YmxlIHJlc3VsdDsKIAogICAgIC8vIEZJWE1FOiBU
aGlzIGRvZXMgc3luYy1pL28gb24gdGhlIG1haW4gdGhyZWFkIGFuZCBhbHNvIHJlY2FsY3VsYXRl
cyBldmVyeSB0aW1lIHRoZSBtZXRob2QgaXMgY2FsbGVkLgogICAgIC8vIFRoZSBpL28gc2hvdWxk
IGJlIHBlcmZvcm1lZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaApp
bmRleCA1NzVmMGU3NmQwOWE5ZDNlNTdmMjU4YWVjYmVmMzFmMzYwYTQ4ZGYwLi5mNzk3YzRhMzE1
ZjdmM2QzZDJmNDQxZGEyZmYwNzdlMjg4ZDIzMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0ZpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaApAQCAt
MzgsNyArMzgsNyBAQCBjbGFzcyBVUkw7CiBjbGFzcyBGaWxlIGZpbmFsIDogcHVibGljIEJsb2Ig
ewogcHVibGljOgogICAgIHN0cnVjdCBQcm9wZXJ0eUJhZyA6IEJsb2JQcm9wZXJ0eUJhZyB7Ci0g
ICAgICAgIHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4gbGFzdE1vZGlmaWVkOworICAgICAgICBzdGQ6
Om9wdGlvbmFsPGxvbmcgbG9uZz4gbGFzdE1vZGlmaWVkOwogICAgIH07CiAKICAgICBzdGF0aWMg
UmVmPEZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpCkBAIC01Miw5ICs1Miw5IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZShXVEZNb3ZlKGJsb2JQYXJ0
VmFyaWFudHMpLCBmaWxlbmFtZSwgcHJvcGVydHlCYWcpKTsKICAgICB9CiAKLSAgICBzdGF0aWMg
UmVmPEZpbGU+IGRlc2VyaWFsaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNV
UkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPGludDY0X3Q+JiBsYXN0TW9kaWZpZWQgPSBzdGQ6Om51bGxvcHQpCisgICAgc3RhdGlj
IFJlZjxGaWxlPiBkZXNlcmlhbGl6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFVSTCYgc3Jj
VVJMLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGUoZGVzZXJpYWxpemF0aW9uQ29udHJ1Y3Rvciwg
cGF0aCwgc3JjVVJMLCB0eXBlLCBuYW1lLCBsYXN0TW9kaWZpZWQpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRmlsZShkZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBwYXRoLCBzcmNV
UkwsIHR5cGUsIG5hbWUpKTsKICAgICB9CiAKICAgICAvLyBDcmVhdGUgYSBmaWxlIHdpdGggYSBu
YW1lIGV4cG9zZWQgdG8gdGhlIGF1dGhvciAodmlhIEZpbGUubmFtZSBhbmQgYXNzb2NpYXRlZCBE
T00gcHJvcGVydGllcykgdGhhdCBkaWZmZXJzIGZyb20gdGhlIG9uZSBwcm92aWRlZCBpbiB0aGUg
cGF0aC4KQEAgLTgzLDggKzgzLDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgcmVsYXRp
dmVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGl2ZVBhdGg7IH0KICAgICB2b2lkIHNldFJl
bGF0aXZlUGF0aChjb25zdCBTdHJpbmcmIHJlbGF0aXZlUGF0aCkgeyBtX3JlbGF0aXZlUGF0aCA9
IHJlbGF0aXZlUGF0aDsgfQogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbmFtZTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIGludDY0X3QgbGFzdE1vZGlmaWVkKCkgY29u
c3Q7IC8vIE51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgRXBvY2guCi0gICAgY29uc3Qgc3Rk
OjpvcHRpb25hbDxpbnQ2NF90PiYgbGFzdE1vZGlmaWVkT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVy
biBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsgfSAvLyBOdW1iZXIgb2YgbWlsbGlzZWNvbmRz
IHNpbmNlIEVwb2NoLgorICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBsYXN0TW9kaWZpZWQoKSBj
b25zdDsKIAogICAgIHN0YXRpYyBTdHJpbmcgY29udGVudFR5cGVGb3JGaWxlKGNvbnN0IFN0cmlu
ZyYgcGF0aCk7CiAKQEAgLTEwMSw3ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIEZpbGUoY29uc3Qg
QmxvYiYsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgRmlsZShjb25zdCBGaWxlJiwgY29uc3Qg
U3RyaW5nJiBuYW1lKTsKIAotICAgIEZpbGUoRGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgY29u
c3QgU3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4mIGxhc3RNb2Rp
ZmllZCk7CisgICAgRmlsZShEZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBjb25zdCBTdHJpbmcm
IHBhdGgsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CiAKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlTmFtZUFuZENvbnRlbnRUeXBlKGNv
bnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBuYW1lT3ZlcnJpZGUsIFN0cmluZyYgZWZm
ZWN0aXZlTmFtZSwgU3RyaW5nJiBlZmZlY3RpdmVDb250ZW50VHlwZSk7CiAjaWYgRU5BQkxFKEZJ
TEVfUkVQTEFDRU1FTlQpCkBAIC0xMTIsNyArMTExLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
bV9yZWxhdGl2ZVBhdGg7CiAgICAgU3RyaW5nIG1fbmFtZTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8
aW50NjRfdD4gbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxp
bnQ2NF90PiBtX292ZXJyaWRlTGFzdE1vZGlmaWVkRGF0ZTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gbV9pc0RpcmVjdG9yeTsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNWQzNjFiOWM2MGU0ZDM3
MDVlMWE2NGY0NjViMWM1NDZmNDQ3Mzc1Li40MTY5MGNjYjUxNzU5ZDZiZDQyNzhiMDAzYzYxMWRm
ZGJiMTYwYjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTgtMDUtMjEgIENvbW1pdCBRdWV1
ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIyMzIwMzAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODU4NTAKKworICAgICAgICAiQ2F1c2VkCisgICAgICAgIFRlc3RXZWJLaXRBUEku
SW5kZXhlZERCLlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eQorICAgICAgICBB
UEkgdGVzdCB0byBmYWlsIiAoUmVxdWVzdGVkIGJ5IGNkdW1leiBvbiAjd2Via2l0KS4KKworICAg
ICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkZpbGUncyBzdHJ1Y3R1cmVkIHNl
cmlhbGl6YXRpb24gc2hvdWxkIHNlcmlhbGl6ZSBsYXN0TW9kaWZpZWQKKyAgICAgICAgYXR0cmli
dXRlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1
NzczCisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzIwMzAKKwog
MjAxOC0wNS0xMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
RUdSRVNTSU9OOiBwZXJmb3JtYW5jZS1hcGkvcGVyZm9ybWFuY2Utb2JzZXJ2ZXItZW50cnktc29y
dC5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiZjk0ZDAw
ZTVjNTdlOWU1Nzk2NjgxMzdlZjg4MmEzMDc4MzY0ZWUzLi5kZjIwMTkzMmFlMmUyMGM3ZDcyMzlk
Y2RiYWMxNDlmYTA5ZDEzNWJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOC0wNS0yMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMjAzMC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTg1MAorCisgICAg
ICAgICJDYXVzZWQKKyAgICAgICAgVGVzdFdlYktpdEFQSS5JbmRleGVkREIuU3RydWN0dXJlZENs
b25lQmFja3dhcmRDb21wYXRpYmlsaXR5CisgICAgICAgIEFQSSB0ZXN0IHRvIGZhaWwiIChSZXF1
ZXN0ZWQgYnkgY2R1bWV6IG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNl
dDoKKworICAgICAgICAiRmlsZSdzIHN0cnVjdHVyZWQgc2VyaWFsaXphdGlvbiBzaG91bGQgc2Vy
aWFsaXplIGxhc3RNb2RpZmllZAorICAgICAgICBhdHRyaWJ1dGUiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU3NzMKKyAgICAgICAgaHR0cHM6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzMjAzMAorCiAyMDE4LTA1LTIxICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRmlsZSdzIHN0cnVjdHVyZWQgc2VyaWFs
aXphdGlvbiBzaG91bGQgc2VyaWFsaXplIGxhc3RNb2RpZmllZCBhdHRyaWJ1dGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDcyYWViMDRlNzk1ZDRmOGY0MWUyNTBkYmM2YWE4Zjk3OWRjYzA1MmUuLjg3
YzhjMTBjZGU0YWY5ZDE0OWU3YWVmY2JhYzA4N2Y2MTdkYWYxYTkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMjQxLDYgKzI0MSw4IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9pbnRlcmZhY2VzL1dvcmtlclV0aWxzL2ltcG9ydFNjcmlwdHMvMDA2CiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmVzdGVkX3dvcmtlci53b3JrZXIuaHRtbCBb
IFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL29wYXF1ZS1v
cmlnaW4uaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL3NlbWFudGljcy9pbnRlcmZhY2Utb2JqZWN0cy8wMDMuaHRtbCBbIFNraXAgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNs
b25lL3NoYXJlZC5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvZGVkaWNhdGVkLmh0bWwgWyBTa2lw
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3MvbXVs
dGlwbGUtd29ya2Vycy8wMDMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9tdWx0aXBsZS13b3JrZXJzLzAwNS5odG1sIFsgU2tp
cCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvV29ya2VyX2Nyb3Nz
X29yaWdpbl9zZWN1cml0eV9lcnIuaHRtIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3JpcHQtdmFsdWUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc3RvcmFnZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1ZS5odG1sCmluZGV4IGQxMWZlMDM3
OGUxZWEwMDlhOTU4N2Y3YWIwNDUwZjhmYjU5YWM1YzYuLjViZDg5ZmFjMDI5YzVjNTIwZDA5NjZl
NzM1YTUwNmZiNmVmNmFlZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc3RvcmFnZS9z
ZXJpYWxpemVkLXNjcmlwdC12YWx1ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3RvcmFn
ZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1ZS5odG1sCkBAIC02LDggKzYsNiBAQAogICAgIDxib2R5
PgogICAgICAgICA8c2NyaXB0PgogCi1jb25zdCBjdXJyZW50VmVyc2lvbiA9IDB4MDc7Ci0KIC8v
IEhlcmUncyBhIGxpdHRsZSBRJkQgaGVscGVyIGZvciBmdXR1cmUgYWR2ZW50dXJlcnMgbmVlZGlu
ZyB0byByZWJhc2VsaW5lIHRoaXMuCiAKIGZ1bmN0aW9uIGRlYzJoZXgobikgewpAQCAtNDUsNyAr
NDMsNyBAQCBmdW5jdGlvbiB0ZXN0U2VyaWFsaXphdGlvbihvYmosIHZhbHVlcywgb2xkRm9ybWF0
LCBzZXJpYWxpemVFeGNlcHRpb25WYWx1ZSkgewogCiB0ZXN0U2VyaWFsaXphdGlvbih7Zm9vOiAn
em9vJywgYmFyOiB7YmF6OiAnbXlOZXdLZXknfX0sCiBbCi0gICAgY3VycmVudFZlcnNpb24sIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDMsIDB4MDAsIDB4MDAsCisgICAgMHgwNiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMiwgMHgwMywgMHgwMCwgMHgwMCwKICAgICAweDgwLCAweDY2LCAweDZm
LCAweDZmLCAweDEwLCAweDAzLCAweDAwLCAweDAwLAogICAgIDB4ODAsIDB4N2EsIDB4NmYsIDB4
NmYsIDB4MDMsIDB4MDAsIDB4MDAsIDB4ODAsCiAgICAgMHg2MiwgMHg2MSwgMHg3MiwgMHgwMiwg
MHgwMywgMHgwMCwgMHgwMCwgMHg4MCwKQEAgLTY4LDcgKzY2LDcgQEAgdGVzdFNlcmlhbGl6YXRp
b24oe2ZvbzogJ3pvbycsIGJhcjoge2JhejogJ215TmV3S2V5J319LAogCiB0ZXN0U2VyaWFsaXph
dGlvbih7Zm9vOiAnem9vJywgYmFyOiAnbXlOZXdLZXknfSwKIFsKLSAgICBjdXJyZW50VmVyc2lv
biwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMywgMHgwMCwgMHgwMCwKKyAgICAweDA2LCAw
eDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAzLCAweDAwLCAweDAwLAogICAgIDB4ODAsIDB4NjYs
IDB4NmYsIDB4NmYsIDB4MTAsIDB4MDMsIDB4MDAsIDB4MDAsCiAgICAgMHg4MCwgMHg3YSwgMHg2
ZiwgMHg2ZiwgMHgwMywgMHgwMCwgMHgwMCwgMHg4MCwKICAgICAweDYyLCAweDYxLCAweDcyLCAw
eDEwLCAweDA4LCAweDAwLCAweDAwLCAweDgwLApAQCAtNzYsNyArNzQsNyBAQCB0ZXN0U2VyaWFs
aXphdGlvbih7Zm9vOiAnem9vJywgYmFyOiAnbXlOZXdLZXknfSwKICAgICAweGZmLCAweGZmLCAw
eGZmLCAweGZmCiBdLAogWwotICAgIGN1cnJlbnRWZXJzaW9uLCAweDAwLCAweDAwLCAweDAwLCAw
eDAyLCAweDAzLCAweDAwLCAweDAwLAorICAgIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIs
IDB4MDMsIDB4MDAsIDB4MDAsCiAgICAgMHgwMCwgMHg2NiwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2
ZiwgMHgwMCwgMHgxMCwKICAgICAweDAzLCAweDAwLCAweDAwLCAweDAwLCAweDdhLCAweDAwLCAw
eDZmLCAweDAwLAogICAgIDB4NmYsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NjIs
IDB4MDAsCkBAIC04OCw3ICs4Niw3IEBAIHRlc3RTZXJpYWxpemF0aW9uKHtmb286ICd6b28nLCBi
YXI6ICdteU5ld0tleSd9LAogCiB0ZXN0U2VyaWFsaXphdGlvbihbXSwKIFsKLSAgICBjdXJyZW50
VmVyc2lvbiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAw
eDA2LCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLAogICAgIDB4MDAs
IDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYKIF0sCiBbCkBAIC05Nyw3ICs5NSw3IEBAIHRlc3RTZXJp
YWxpemF0aW9uKFtdLAogXSk7CiB0ZXN0U2VyaWFsaXphdGlvbih7Zm9vOiAiem9vIn0sCiBbCi0g
ICAgY3VycmVudFZlcnNpb24sIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDMsIDB4MDAsIDB4
MDAsCisgICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMywgMHgwMCwgMHgwMCwK
ICAgICAweDgwLCAweDY2LCAweDZmLCAweDZmLCAweDEwLCAweDAzLCAweDAwLCAweDAwLAogICAg
IDB4ODAsIDB4N2EsIDB4NmYsIDB4NmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYKIF0sCkBAIC0x
MDksNyArMTA3LDcgQEAgdGVzdFNlcmlhbGl6YXRpb24oe2ZvbzogInpvbyJ9LAogXSk7CiB0ZXN0
U2VyaWFsaXphdGlvbih7Zm9vOiBudWxsfSwKIFsKLSAgICBjdXJyZW50VmVyc2lvbiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMiwgMHgwMywgMHgwMCwgMHgwMCwKKyAgICAweDA2LCAweDAwLCAweDAw
LCAweDAwLCAweDAyLCAweDAzLCAweDAwLCAweDAwLAogICAgIDB4ODAsIDB4NjYsIDB4NmYsIDB4
NmYsIDB4MDQsIDB4ZmYsIDB4ZmYsIDB4ZmYsCiAgICAgMHhmZgogXSwKQEAgLTEyMSw3ICsxMTks
NyBAQCB0ZXN0U2VyaWFsaXphdGlvbih7Zm9vOiBudWxsfSwKIAogdGVzdFNlcmlhbGl6YXRpb24o
e30sCiBbCi0gICAgY3VycmVudFZlcnNpb24sIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4ZmYs
IDB4ZmYsIDB4ZmYsCisgICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHhmZiwgMHhm
ZiwgMHhmZiwKICAgICAweGZmCiBdLAogWwpAQCAtMTMxLDI4ICsxMjksMjggQEAgdGVzdFNlcmlh
bGl6YXRpb24oe30sCiAKIHRlc3RTZXJpYWxpemF0aW9uKHVuZGVmaW5lZCwKIFsKLSAgICBjdXJy
ZW50VmVyc2lvbiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMworICAgIDB4MDYsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDMKIF0sCiBbCiAgICAgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMwogXSk7
CiB0ZXN0U2VyaWFsaXphdGlvbih0cnVlLAogWwotICAgIGN1cnJlbnRWZXJzaW9uLCAweDAwLCAw
eDAwLCAweDAwLCAweDA5CisgICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwOQogXSwKIFsK
ICAgICAweDAzLCAweDAwLCAweDAwLCAweDAwLCAweDA5CiBdKTsKIHRlc3RTZXJpYWxpemF0aW9u
KGZhbHNlLAogWwotICAgIGN1cnJlbnRWZXJzaW9uLCAweDAwLCAweDAwLCAweDAwLCAweDA4Cisg
ICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwOAogXSwKIFsKICAgICAweDAzLCAweDAwLCAw
eDAwLCAweDAwLCAweDA4CiBdKTsKIHRlc3RTZXJpYWxpemF0aW9uKG5ldyBBcnJheSgxMDApLAog
WwotICAgIGN1cnJlbnRWZXJzaW9uLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDY0LCAweDAw
LCAweDAwLAorICAgIDB4MDYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4NjQsIDB4MDAsIDB4
MDAsCiAgICAgMHgwMCwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZgogXSwKIFsKQEAgLTE2MSw3ICsx
NTksNyBAQCB0ZXN0U2VyaWFsaXphdGlvbihuZXcgQXJyYXkoMTAwKSwKIF0pOwogdGVzdFNlcmlh
bGl6YXRpb24oMTAsCiBbCi0gICAgY3VycmVudFZlcnNpb24sIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDUsIDB4MGEsIDB4MDAsIDB4MDAsCisgICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNSwg
MHgwYSwgMHgwMCwgMHgwMCwKICAgICAweDAwCiBdLAogWwpAQCAtMTcwLDcgKzE2OCw3IEBAIHRl
c3RTZXJpYWxpemF0aW9uKDEwLAogXSk7CiB0ZXN0U2VyaWFsaXphdGlvbigtMTAsCiBbCi0gICAg
Y3VycmVudFZlcnNpb24sIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDUsIDB4ZjYsIDB4ZmYsIDB4ZmYs
CisgICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNSwgMHhmNiwgMHhmZiwgMHhmZiwKICAg
ICAweGZmCiBdLAogWwpAQCAtMTc5LDcgKzE3Nyw3IEBAIHRlc3RTZXJpYWxpemF0aW9uKC0xMCwK
IF0pOwogdGVzdFNlcmlhbGl6YXRpb24oTWF0aC5wb3coMiwzMCksCiBbCi0gICAgY3VycmVudFZl
cnNpb24sIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgw
NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNSwgMHgwMCwgMHgwMCwgMHgwMCwKICAgICAweDQwCiBd
LAogWwpAQCAtMTg4LDcgKzE4Niw3IEBAIHRlc3RTZXJpYWxpemF0aW9uKE1hdGgucG93KDIsMzAp
LAogXSk7CiB0ZXN0U2VyaWFsaXphdGlvbihNYXRoLnBvdygyLDU1KSwKIFsKLSAgICBjdXJyZW50
VmVyc2lvbiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwYSwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAw
eDA2LCAweDAwLCAweDAwLCAweDAwLCAweDBhLCAweDAwLCAweDAwLCAweDAwLAogICAgIDB4MDAs
IDB4MDAsIDB4MDAsIDB4NjAsIDB4NDMsCiBdLAogWwpAQCAtMTk3LDcgKzE5NSw3IEBAIHRlc3RT
ZXJpYWxpemF0aW9uKE1hdGgucG93KDIsNTUpLAogXSk7CiB0ZXN0U2VyaWFsaXphdGlvbigxLjIz
LAogWwotICAgIGN1cnJlbnRWZXJzaW9uLCAweDAwLCAweDAwLCAweDAwLCAweDBhLCAweGFlLCAw
eDQ3LCAweGUxLAorICAgIDB4MDYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MGEsIDB4YWUsIDB4NDcs
IDB4ZTEsCiAgICAgMHg3YSwgMHgxNCwgMHhhZSwgMHhmMywgMHgzZgogXSwKIFsKQEAgLTIwNiwx
NCArMjA0LDE0IEBAIHRlc3RTZXJpYWxpemF0aW9uKDEuMjMsCiBdKTsKIHRlc3RTZXJpYWxpemF0
aW9uKCIiLAogWwotICAgIGN1cnJlbnRWZXJzaW9uLCAweDAwLCAweDAwLCAweDAwLCAweDExCisg
ICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMQogXSwKIFsKICAgICAweDAzLCAweDAwLCAw
eDAwLCAweDAwLCAweDExCiBdKTsKIHRlc3RTZXJpYWxpemF0aW9uKCJhYmMiLAogWwotICAgIGN1
cnJlbnRWZXJzaW9uLCAweDAwLCAweDAwLCAweDAwLCAweDEwLCAweDAzLCAweDAwLCAweDAwLAor
ICAgIDB4MDYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDMsIDB4MDAsIDB4MDAsCiAgICAg
MHg4MCwgMHg2MSwgMHg2MiwgMHg2MwogXSwKIFsKQEAgLTIyMiw3ICsyMjAsNyBAQCB0ZXN0U2Vy
aWFsaXphdGlvbigiYWJjIiwKIF0pOwogdGVzdFNlcmlhbGl6YXRpb24oe2ludGVnZXI6IDEyM30s
CiBbCi0gICAgY3VycmVudFZlcnNpb24sIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDcsIDB4
MDAsIDB4MDAsCisgICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwNywgMHgwMCwg
MHgwMCwKICAgICAweDgwLCAweDY5LCAweDZlLCAweDc0LCAweDY1LCAweDY3LCAweDY1LCAweDcy
LAogICAgIDB4MDUsIDB4N2IsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZmYsIDB4ZmYsIDB4ZmYsCiAg
ICAgMHhmZgpAQCAtMjM1LDcgKzIzMyw3IEBAIHRlc3RTZXJpYWxpemF0aW9uKHtpbnRlZ2VyOiAx
MjN9LAogXSk7CiB0ZXN0U2VyaWFsaXphdGlvbih7c3RyaW5nOiAic3RyIn0sCiBbCi0gICAgY3Vy
cmVudFZlcnNpb24sIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDYsIDB4MDAsIDB4MDAsCisg
ICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwNiwgMHgwMCwgMHgwMCwKICAgICAw
eDgwLCAweDczLCAweDc0LCAweDcyLCAweDY5LCAweDZlLCAweDY3LCAweDEwLAogICAgIDB4MDMs
IDB4MDAsIDB4MDAsIDB4ODAsIDB4NzMsIDB4NzQsIDB4NzIsIDB4ZmYsCiAgICAgMHhmZiwgMHhm
ZiwgMHhmZgpAQCAtMjQ5LDcgKzI0Nyw3IEBAIHRlc3RTZXJpYWxpemF0aW9uKHtzdHJpbmc6ICJz
dHIifSwKIF0pOwogdGVzdFNlcmlhbGl6YXRpb24oe2xpc3Q6IFsxLDIsM119LAogWwotICAgIGN1
cnJlbnRWZXJzaW9uLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDA0LCAweDAwLCAweDAwLAor
ICAgIDB4MDYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDQsIDB4MDAsIDB4MDAsCiAgICAg
MHg4MCwgMHg2YywgMHg2OSwgMHg3MywgMHg3NCwgMHgwMSwgMHgwMywgMHgwMCwKICAgICAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDAxLAogICAgIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDUsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsCkBAIC0yNjgsMTQgKzI2Niwx
NCBAQCB0ZXN0U2VyaWFsaXphdGlvbih7bGlzdDogWzEsMiwzXX0sCiBdKTsKIHRlc3RTZXJpYWxp
emF0aW9uKG51bGwsCiBbCi0gICAgY3VycmVudFZlcnNpb24sIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDQKKyAgICAweDA2LCAweDAwLCAweDAwLCAweDAwLCAweDA0CiBdLAogWwogICAgIDB4MDMsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDQKIF0pOwogdGVzdFNlcmlhbGl6YXRpb24oL2FiYy8sCiBbCi0g
ICAgY3VycmVudFZlcnNpb24sIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDMsIDB4MDAsIDB4
MDAsCisgICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMywgMHgwMCwgMHgwMCwK
ICAgICAweDgwLCAweDYxLCAweDYyLCAweDYzLCAweDAwLCAweDAwLCAweDAwLCAweDgwCiBdLAog
WwpAQCAtMjg5LDcgKzI4Nyw3IEBAIHZhciBvdXRlck9iamVjdCA9IHtpbm5lcjogaW5uZXJPYmpl
Y3R9Owogb3V0ZXJPYmplY3RbJ291dGVyJ10gPSBpbm5lck9iamVjdDsKIHRlc3RTZXJpYWxpemF0
aW9uKG91dGVyT2JqZWN0LAogWwotICAgIGN1cnJlbnRWZXJzaW9uLCAweDAwLCAweDAwLCAweDAw
LCAweDAyLCAweDA1LCAweDAwLCAweDAwLAorICAgIDB4MDYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDIsIDB4MDUsIDB4MDAsIDB4MDAsCiAgICAgMHg4MCwgMHg2OSwgMHg2ZSwgMHg2ZSwgMHg2NSwg
MHg3MiwgMHgwMiwgMHgwNSwKICAgICAweDAwLCAweDAwLCAweDgwLCAweDY4LCAweDY1LCAweDZj
LCAweDZjLCAweDZmLAogICAgIDB4MTAsIDB4MDUsIDB4MDAsIDB4MDAsIDB4ODAsIDB4NzQsIDB4
NjgsIDB4NjUsCkBAIC0zMTEsNyArMzA5LDcgQEAgdGVzdFNlcmlhbGl6YXRpb24ob3V0ZXJPYmpl
Y3QsCiBdKTsKIHRlc3RTZXJpYWxpemF0aW9uKGlubmVyT2JqZWN0LAogWwotICAgIGN1cnJlbnRW
ZXJzaW9uLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDA1LCAweDAwLCAweDAwLAorICAgIDB4
MDYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDUsIDB4MDAsIDB4MDAsCiAgICAgMHg4MCwg
MHg2OCwgMHg2NSwgMHg2YywgMHg2YywgMHg2ZiwgMHgxMCwgMHgwNSwKICAgICAweDAwLCAweDAw
LCAweDgwLCAweDc0LCAweDY4LCAweDY1LCAweDcyLCAweDY1LAogICAgIDB4ZmYsIDB4ZmYsIDB4
ZmYsIDB4ZmYKQEAgLTMyNyw3ICszMjUsNyBAQCB0ZXN0U2VyaWFsaXphdGlvbihpbm5lck9iamVj
dCwKIHZhciB1bmljb2RlT2JqZWN0ID0ge2E6ICdhJywgdTogU3RyaW5nLmZyb21DaGFyQ29kZSgw
eDAzQjEsMHgwM0IyKSwgZDogNDJ9OwogdGVzdFNlcmlhbGl6YXRpb24odW5pY29kZU9iamVjdCwK
IFsKLSAgICBjdXJyZW50VmVyc2lvbiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMSwgMHgw
MCwgMHgwMCwKKyAgICAweDA2LCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAxLCAweDAwLCAw
eDAwLAogICAgIDB4ODAsIDB4NjEsIDB4MTAsIDB4ZmUsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4MDAs
CiAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHg4MCwgMHg3NSwgMHgxMCwgMHgwMiwgMHgwMCwKICAg
ICAweDAwLCAweDAwLCAweGIxLCAweDAzLCAweGIyLCAweDAzLCAweDAxLCAweDAwLApAQCAtMzQ1
LDcgKzM0Myw3IEBAIHRlc3RTZXJpYWxpemF0aW9uKHVuaWNvZGVPYmplY3QsCiB1bmljb2RlT2Jq
ZWN0LmEgPSAnYWInOwogdGVzdFNlcmlhbGl6YXRpb24odW5pY29kZU9iamVjdCwKIFsKLSAgICBj
dXJyZW50VmVyc2lvbiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMSwgMHgwMCwgMHgwMCwK
KyAgICAweDA2LCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAxLCAweDAwLCAweDAwLAogICAg
IDB4ODAsIDB4NjEsIDB4MTAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4ODAsIDB4NjEsCiAgICAgMHg2
MiwgMHgwMSwgMHgwMCwgMHgwMCwgMHg4MCwgMHg3NSwgMHgxMCwgMHgwMiwKICAgICAweDAwLCAw
eDAwLCAweDAwLCAweGIxLCAweDAzLCAweGIyLCAweDAzLCAweDAxLApAQCAtMzcwLDcgKzM2OCw3
IEBAIGFycmF5T2JqZWN0WydiYXInXSA9IDQ1NjsKIGFycmF5T2JqZWN0WycnXSA9IG51bGw7CiB0
ZXN0U2VyaWFsaXphdGlvbihhcnJheU9iamVjdCwKIFsKLSAgICBjdXJyZW50VmVyc2lvbiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDA2LCAweDAwLCAw
eDAwLCAweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLAogICAgIDB4MDAsIDB4ZmQsIDB4ZmYs
IDB4ZmYsIDB4ZmYsIDB4MDEsIDB4MDAsIDB4MDAsCiAgICAgMHg4MCwgMHg2MSwgMHgwOSwgMHgw
MSwgMHgwMCwgMHgwMCwgMHg4MCwgMHg2MiwKICAgICAweDA4LCAweDAzLCAweDAwLCAweDAwLCAw
eDgwLCAweDY2LCAweDZmLCAweDZmLApAQCAtMzg0LDcgKzM4Miw3IEBAIGFycmF5T2JqZWN0WzBd
ID0gJ2Zvbyc7CiBhcnJheU9iamVjdFsxXSA9ICdiYXInOwogdGVzdFNlcmlhbGl6YXRpb24oYXJy
YXlPYmplY3QsCiBbCi0gICAgY3VycmVudFZlcnNpb24sIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEs
IDB4MDIsIDB4MDAsIDB4MDAsCisgICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgw
MiwgMHgwMCwgMHgwMCwKICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDEwLCAw
eDAzLCAweDAwLAogICAgIDB4MDAsIDB4ODAsIDB4NjYsIDB4NmYsIDB4NmYsIDB4MDEsIDB4MDAs
IDB4MDAsCiAgICAgMHgwMCwgMHgxMCwgMHgwMywgMHgwMCwgMHgwMCwgMHg4MCwgMHg2MiwgMHg2
MSwKQEAgLTQwNSw3ICs0MDMsNyBAQCBtYXBPYmplY3QuZXhwYW5kbyA9IHt9OwogCiB0ZXN0U2Vy
aWFsaXphdGlvbihtYXBPYmplY3QsCiBbCi0gICAgY3VycmVudFZlcnNpb24sIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MWUsIDB4MDcsIDB4MDUsIDB4MDIsCisgICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgxZSwgMHgwNywgMHgwNSwgMHgwMiwKICAgICAweDAwLCAweDAwLCAweDAwLCAweDBhLCAw
eDAwLCAweDAwLCAweDAwLCAweDAwLAogICAgIDB4MDAsIDB4MDAsIDB4ZjgsIDB4M2YsIDB4MDIs
IDB4ZmYsIDB4ZmYsIDB4ZmYsCiAgICAgMHhmZiwgMHgxMywgMHgwMCwgMHgxMCwgMHgwMywgMHgw
MCwgMHgwMCwgMHg4MCwKQEAgLTQyNiw3ICs0MjQsNyBAQCBzZXRPYmplY3QuZXhwYW5kbyA9IHt9
OwogCiB0ZXN0U2VyaWFsaXphdGlvbihzZXRPYmplY3QsCiBbCi0gICAgY3VycmVudFZlcnNpb24s
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MWQsIDB4MDcsIDB4MGEsIDB4MDAsCisgICAgMHgwNiwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgxZCwgMHgwNywgMHgwYSwgMHgwMCwKICAgICAweDAwLCAweDAwLCAw
eDAwLCAweDAwLCAweDAwLCAweGY4LCAweDNmLCAweDEzLAogICAgIDB4MDAsIDB4MTAsIDB4MDMs
IDB4MDAsIDB4MDAsIDB4ODAsIDB4NjIsIDB4NjEsCiAgICAgMHg3MiwgMHgxYSwgMHhmZSwgMHhm
ZiwgMHhmZiwgMHhmZiwgMHgwMCwgMHgyMCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleXBhdGgtc3BlY2lhbC1pZGVu
dGlmaWVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9rZXlwYXRoLXNwZWNpYWwtaWRlbnRpZmllcnMtZXhwZWN0ZWQu
dHh0CmluZGV4IGJlOTA1ODljZjVjOTBiOTY2NThkNmVjODQ1YTA0ZWE0MmMxMGI0NDkuLmQyN2I3
YzNiMjUwNzFlNWViMjI2OGFkYTdhMjg3NmJkNGM2MDNhMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleXBhdGgtc3Bl
Y2lhbC1pZGVudGlmaWVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5cGF0aC1zcGVjaWFsLWlkZW50aWZp
ZXJzLWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDYgQEAgUEFTUyBUeXBlOiBBcnJheSwgaWRlbnRp
ZmllcjogbGVuZ3RoCiBQQVNTIFR5cGU6IEJsb2IsIGlkZW50aWZpZXI6IHNpemUgCiBQQVNTIFR5
cGU6IEJsb2IsIGlkZW50aWZpZXI6IHR5cGUgCiBQQVNTIFR5cGU6IEZpbGUsIGlkZW50aWZpZXI6
IG5hbWUgCi1QQVNTIFR5cGU6IEZpbGUsIGlkZW50aWZpZXI6IGxhc3RNb2RpZmllZCAKK0ZBSUwg
VHlwZTogRmlsZSwgaWRlbnRpZmllcjogbGFzdE1vZGlmaWVkIGFzc2VydF9lcXVhbHM6IFByb3Bl
cnR5IHNob3VsZCBiZSB1c2VkIGFzIGtleSBleHBlY3RlZCAwIGJ1dCBnb3QgMQogRkFJTCBUeXBl
OiBGaWxlLCBpZGVudGlmaWVyOiBsYXN0TW9kaWZpZWREYXRlIFByb3ZpZGVkIGRhdGEgaXMgaW5h
ZGVxdWF0ZS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc3RydWN0dXJlZC1jbG9uZS9zdHJ1Y3R1cmVkLWNs
b25lLWJhdHRlcnktb2YtdGVzdHMtaGFybmVzcy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3N0cnVjdHVyZWQtY2xvbmUvc3Ry
dWN0dXJlZC1jbG9uZS1iYXR0ZXJ5LW9mLXRlc3RzLWhhcm5lc3MuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDYyNGY5ODM0NGM4YjJhMmViZjA4NzYwODBjY2NjOGI2YTZhMmJkNzEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc3RydWN0
dXJlZC1jbG9uZS9zdHJ1Y3R1cmVkLWNsb25lLWJhdHRlcnktb2YtdGVzdHMtaGFybmVzcy5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qKgotICogUnVucyBhIGNvbGxlY3Rpb24g
b2YgdGVzdHMgdGhhdCBkZXRlcm1pbmUgaWYgYW4gQVBJIGltcGxlbWVudHMgc3RydWN0dXJlZCBj
bG9uZQotICogY29ycmVjdGx5LgotICoKLSAqIFRoZSBgcnVubmVyYCBwYXJhbWV0ZXIgaGFzIHRo
ZSBmb2xsb3dpbmcgcHJvcGVydGllczoKLSAqIC0gYHNldHVwKClgOiBBbiBvcHRpb25hbCBmdW5j
dGlvbiBydW4gb25jZSBiZWZvcmUgdGVzdGluZyBzdGFydHMKLSAqIC0gYHRlYXJkb3duKClgOiBB
biBvcHRpb24gZnVuY3Rpb24gcnVuIG9uY2UgYWZ0ZXIgYWxsIHRlc3RzIGFyZSBkb25lCi0gKiAt
IGBwcmVUZXN0KClgOiBBbiBvcHRpb25hbCwgYXN5bmMgZnVuY3Rpb24gcnVuIGJlZm9yZSBhIHRl
c3QKLSAqIC0gYHBvc3RUZXN0KClgOiBBbiBvcHRpb25hbCwgYXN5bmMgZnVuY3Rpb24gcnVuIGFm
dGVyIGEgdGVzdCBpcyBkb25lCi0gKiAtIGBzdHJ1Y3R1cmVkQ2xvbmUob2JqLCB0cmFuc2Zlckxp
c3QpYDogUmVxdWlyZWQgZnVuY3Rpb24gdGhhdCBzb21laG93Ci0gKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJhbGx5IGNsb25lcyBhbiBvYmplY3QuCi0g
KiAtIGBub1RyYW5zZmVyVGVzdHNgOiBXaGVuIHRydWUsIGRpc2FibGVzIHRlc3RzIHdpdGggdHJh
bnNmZXJhYmxlcwotICovCi0KLWZ1bmN0aW9uIHJ1blN0cnVjdHVyZWRDbG9uZUJhdHRlcnlPZlRl
c3RzKHJ1bm5lcikgewotICBjb25zdCBkZWZhdWx0UnVubmVyID0gewotICAgIHNldHVwKCkge30s
Ci0gICAgcHJlVGVzdCgpIHt9LAotICAgIHBvc3RUZXN0KCkge30sCi0gICAgdGVhcmRvd24oKSB7
fQotICB9OwotICBydW5uZXIgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0UnVubmVyLCBydW5u
ZXIpOwotCi0gIGxldCBzZXR1cFByb21pc2UgPSBydW5uZXIuc2V0dXAoKTsKLSAgY29uc3QgYWxs
VGVzdHMgPSBzdHJ1Y3R1cmVkQ2xvbmVCYXR0ZXJ5T2ZUZXN0cy5tYXAodGVzdCA9PiB7Ci0KLSAg
ICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICBwcm9taXNlX3Rlc3QoYXN5
bmMgXyA9PiB7Ci0gICAgICAgIHRlc3QgPSBhd2FpdCB0ZXN0OwotICAgICAgICBhd2FpdCBzZXR1
cFByb21pc2U7Ci0gICAgICAgIGF3YWl0IHJ1bm5lci5wcmVUZXN0KHRlc3QpOwotICAgICAgICBh
d2FpdCB0ZXN0LmYocnVubmVyKQotICAgICAgICBhd2FpdCBydW5uZXIucG9zdFRlc3QodGVzdCk7
Ci0gICAgICAgIHJlc29sdmUoKTsKLSAgICAgIH0sIHRlc3QuZGVzY3JpcHRpb24pOwotICAgIH0p
LmNhdGNoKF8gPT4ge30pOwotICB9KTsKLSAgUHJvbWlzZS5hbGwoYWxsVGVzdHMpLnRoZW4oXyA9
PiBydW5uZXIudGVhcmRvd24oKSk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zdHJ1Y3R1cmVkLWNsb25l
L3N0cnVjdHVyZWQtY2xvbmUtYmF0dGVyeS1vZi10ZXN0cy13aXRoLXRyYW5zZmVyYWJsZXMuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBw
YXBpcy9zdHJ1Y3R1cmVkLWNsb25lL3N0cnVjdHVyZWQtY2xvbmUtYmF0dGVyeS1vZi10ZXN0cy13
aXRoLXRyYW5zZmVyYWJsZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0NGYx
MTY4MTk2MDAxZjRlZmYxOTc1ZDM2OWFlMWQ0ZjQxZGIyMjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc3RydWN0dXJlZC1jbG9uZS9zdHJ1Y3R1cmVk
LWNsb25lLWJhdHRlcnktb2YtdGVzdHMtd2l0aC10cmFuc2ZlcmFibGVzLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMjIgKzAsMCBAQAotc3RydWN0dXJlZENsb25lQmF0dGVyeU9mVGVzdHMucHVzaCh7
Ci0gIGRlc2NyaXB0aW9uOiAnQXJyYXlCdWZmZXInLAotICBhc3luYyBmKHJ1bm5lcikgewotICAg
IGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KFsxXSkuYnVmZmVyOwotICAgIGNvbnN0IGNv
cHkgPSBhd2FpdCBydW5uZXIuc3RydWN0dXJlZENsb25lKGJ1ZmZlciwgW2J1ZmZlcl0pOwotICAg
IGFzc2VydF9lcXVhbHMoYnVmZmVyLmJ5dGVMZW5ndGgsIDApOwotICAgIGFzc2VydF9lcXVhbHMo
Y29weS5ieXRlTGVuZ3RoLCAxKTsKLSAgfQotfSk7Ci0KLXN0cnVjdHVyZWRDbG9uZUJhdHRlcnlP
ZlRlc3RzLnB1c2goewotICBkZXNjcmlwdGlvbjogJ01lc3NhZ2VQb3J0JywKLSAgYXN5bmMgZihy
dW5uZXIpIHsKLSAgICBjb25zdCB7cG9ydDEsIHBvcnQyfSA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgp
OwotICAgIGNvbnN0IGNvcHkgPSBhd2FpdCBydW5uZXIuc3RydWN0dXJlZENsb25lKHBvcnQyLCBb
cG9ydDJdKTsKLSAgICBjb25zdCBtc2cgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBvcnQxLm9u
bWVzc2FnZSA9IHJlc29sdmUpOwotICAgIGNvcHkucG9zdE1lc3NhZ2UoJ29oYWknKTsKLSAgICBh
c3NlcnRfZXF1YWxzKChhd2FpdCBtc2cpLmRhdGEsICdvaGFpJyk7Ci0gIH0KLX0pOwotCi0vLyBU
T0RPOiBJbWFnZUJpdG1hcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc3RydWN0dXJlZC1jbG9uZS9zdHJ1Y3R1
cmVkLWNsb25lLWJhdHRlcnktb2YtdGVzdHMuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zdHJ1Y3R1cmVkLWNsb25lL3N0cnVj
dHVyZWQtY2xvbmUtYmF0dGVyeS1vZi10ZXN0cy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDBiY2Q4MDMxYjIyMGJkNzU4MTE0NjhjZGUwYTRjM2JiNmMxNTYyMS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zdHJ1Y3R1cmVkLWNsb25l
L3N0cnVjdHVyZWQtY2xvbmUtYmF0dGVyeS1vZi10ZXN0cy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDU4NiArMCwwIEBACi0vKiBUaGlzIGZpbGUgaXMgbW9zdGx5IGEgcmVtaXggb2YgQHpjb3JwYW7i
gJlzIHdlYiB3b3JrZXIgdGVzdCBzdWl0ZSAqLwotCi1zdHJ1Y3R1cmVkQ2xvbmVCYXR0ZXJ5T2ZU
ZXN0cyA9IFtdOwotCi1mdW5jdGlvbiBjaGVjayhkZXNjcmlwdGlvbiwgaW5wdXQsIGNhbGxiYWNr
KSB7Ci0gIHRlc3RPYmpNb2NrID0gewotICAgIGRvbmUoKSB7fSwKLSAgICBzdGVwX2Z1bmMoZikg
e3JldHVybiBfID0+IGYoKX0sCi0gIH07Ci0KLSAgc3RydWN0dXJlZENsb25lQmF0dGVyeU9mVGVz
dHMucHVzaCh7Ci0gICAgZGVzY3JpcHRpb24sCi0gICAgYXN5bmMgZihydW5uZXIpIHsKLSAgICAg
IGxldCBuZXdJbnB1dCA9IGlucHV0OwotICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ2Z1bmN0
aW9uJykgewotICAgICAgICBuZXdJbnB1dCA9IGlucHV0KCk7Ci0gICAgICB9Ci0gICAgICBjb25z
dCBjb3B5ID0gYXdhaXQgcnVubmVyLnN0cnVjdHVyZWRDbG9uZShuZXdJbnB1dCk7Ci0gICAgICBh
d2FpdCBjYWxsYmFjayhjb3B5LCBuZXdJbnB1dCwgdGVzdE9iak1vY2spOwotICAgIH0KLSAgfSk7
Ci19Ci0KLWZ1bmN0aW9uIGNvbXBhcmVfcHJpbWl0aXZlKGFjdHVhbCwgaW5wdXQsIHRlc3Rfb2Jq
KSB7Ci0gIGFzc2VydF9lcXVhbHMoYWN0dWFsLCBpbnB1dCk7Ci0gIGlmICh0ZXN0X29iaikKLSAg
ICB0ZXN0X29iai5kb25lKCk7Ci19Ci1mdW5jdGlvbiBjb21wYXJlX0FycmF5KGNhbGxiYWNrLCBj
YWxsYmFja19pc19hc3luYykgewotICByZXR1cm4gZnVuY3Rpb24oYWN0dWFsLCBpbnB1dCwgdGVz
dF9vYmopIHsKLSAgICBpZiAodHlwZW9mIGFjdHVhbCA9PT0gJ3N0cmluZycpCi0gICAgICBhc3Nl
cnRfdW5yZWFjaGVkKGFjdHVhbCk7Ci0gICAgYXNzZXJ0X3RydWUoYWN0dWFsIGluc3RhbmNlb2Yg
QXJyYXksICdpbnN0YW5jZW9mIEFycmF5Jyk7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMoYWN0dWFs
LCBpbnB1dCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhhY3R1YWwubGVuZ3RoLCBpbnB1dC5sZW5ndGgs
ICdsZW5ndGgnKTsKLSAgICBjYWxsYmFjayhhY3R1YWwsIGlucHV0KTsKLSAgICBpZiAodGVzdF9v
YmogJiYgIWNhbGxiYWNrX2lzX2FzeW5jKQotICAgICAgdGVzdF9vYmouZG9uZSgpOwotICB9Ci19
Ci0KLWZ1bmN0aW9uIGNvbXBhcmVfT2JqZWN0KGNhbGxiYWNrLCBjYWxsYmFja19pc19hc3luYykg
ewotICByZXR1cm4gZnVuY3Rpb24oYWN0dWFsLCBpbnB1dCwgdGVzdF9vYmopIHsKLSAgICBpZiAo
dHlwZW9mIGFjdHVhbCA9PT0gJ3N0cmluZycpCi0gICAgICBhc3NlcnRfdW5yZWFjaGVkKGFjdHVh
bCk7Ci0gICAgYXNzZXJ0X3RydWUoYWN0dWFsIGluc3RhbmNlb2YgT2JqZWN0LCAnaW5zdGFuY2Vv
ZiBPYmplY3QnKTsKLSAgICBhc3NlcnRfZmFsc2UoYWN0dWFsIGluc3RhbmNlb2YgQXJyYXksICdp
bnN0YW5jZW9mIEFycmF5Jyk7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMoYWN0dWFsLCBpbnB1dCk7
Ci0gICAgY2FsbGJhY2soYWN0dWFsLCBpbnB1dCk7Ci0gICAgaWYgKHRlc3Rfb2JqICYmICFjYWxs
YmFja19pc19hc3luYykKLSAgICAgIHRlc3Rfb2JqLmRvbmUoKTsKLSAgfQotfQotCi1mdW5jdGlv
biBlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9mdW5jLCB0ZXN0X29iaikgewotICByZXR1cm4gZnVu
Y3Rpb24oYWN0dWFsLCBpbnB1dCkgewotICAgIGZvciAodmFyIHggaW4gaW5wdXQpIHsKLSAgICAg
IGNvbXBhcmVfZnVuYyhhY3R1YWxbeF0sIGlucHV0W3hdLCB0ZXN0X29iaik7Ci0gICAgfQotICB9
OwotfQotCi1jaGVjaygncHJpbWl0aXZlIHVuZGVmaW5lZCcsIHVuZGVmaW5lZCwgY29tcGFyZV9w
cmltaXRpdmUpOwotY2hlY2soJ3ByaW1pdGl2ZSBudWxsJywgbnVsbCwgY29tcGFyZV9wcmltaXRp
dmUpOwotY2hlY2soJ3ByaW1pdGl2ZSB0cnVlJywgdHJ1ZSwgY29tcGFyZV9wcmltaXRpdmUpOwot
Y2hlY2soJ3ByaW1pdGl2ZSBmYWxzZScsIGZhbHNlLCBjb21wYXJlX3ByaW1pdGl2ZSk7Ci1jaGVj
aygncHJpbWl0aXZlIHN0cmluZywgZW1wdHkgc3RyaW5nJywgJycsIGNvbXBhcmVfcHJpbWl0aXZl
KTsKLWNoZWNrKCdwcmltaXRpdmUgc3RyaW5nLCBsb25lIGhpZ2ggc3Vycm9nYXRlJywgJ1x1RDgw
MCcsIGNvbXBhcmVfcHJpbWl0aXZlKTsKLWNoZWNrKCdwcmltaXRpdmUgc3RyaW5nLCBsb25lIGxv
dyBzdXJyb2dhdGUnLCAnXHVEQzAwJywgY29tcGFyZV9wcmltaXRpdmUpOwotY2hlY2soJ3ByaW1p
dGl2ZSBzdHJpbmcsIE5VTCcsICdcdTAwMDAnLCBjb21wYXJlX3ByaW1pdGl2ZSk7Ci1jaGVjaygn
cHJpbWl0aXZlIHN0cmluZywgYXN0cmFsIGNoYXJhY3RlcicsICdcdURCRkZcdURGRkQnLCBjb21w
YXJlX3ByaW1pdGl2ZSk7Ci1jaGVjaygncHJpbWl0aXZlIG51bWJlciwgMC4yJywgMC4yLCBjb21w
YXJlX3ByaW1pdGl2ZSk7Ci1jaGVjaygncHJpbWl0aXZlIG51bWJlciwgMCcsIDAsIGNvbXBhcmVf
cHJpbWl0aXZlKTsKLWNoZWNrKCdwcmltaXRpdmUgbnVtYmVyLCAtMCcsIC0wLCBjb21wYXJlX3By
aW1pdGl2ZSk7Ci1jaGVjaygncHJpbWl0aXZlIG51bWJlciwgTmFOJywgTmFOLCBjb21wYXJlX3By
aW1pdGl2ZSk7Ci1jaGVjaygncHJpbWl0aXZlIG51bWJlciwgSW5maW5pdHknLCBJbmZpbml0eSwg
Y29tcGFyZV9wcmltaXRpdmUpOwotY2hlY2soJ3ByaW1pdGl2ZSBudW1iZXIsIC1JbmZpbml0eScs
IC1JbmZpbml0eSwgY29tcGFyZV9wcmltaXRpdmUpOwotY2hlY2soJ3ByaW1pdGl2ZSBudW1iZXIs
IDkwMDcxOTkyNTQ3NDA5OTInLCA5MDA3MTk5MjU0NzQwOTkyLCBjb21wYXJlX3ByaW1pdGl2ZSk7
Ci1jaGVjaygncHJpbWl0aXZlIG51bWJlciwgLTkwMDcxOTkyNTQ3NDA5OTInLCAtOTAwNzE5OTI1
NDc0MDk5MiwgY29tcGFyZV9wcmltaXRpdmUpOwotY2hlY2soJ3ByaW1pdGl2ZSBudW1iZXIsIDkw
MDcxOTkyNTQ3NDA5OTQnLCA5MDA3MTk5MjU0NzQwOTk0LCBjb21wYXJlX3ByaW1pdGl2ZSk7Ci1j
aGVjaygncHJpbWl0aXZlIG51bWJlciwgLTkwMDcxOTkyNTQ3NDA5OTQnLCAtOTAwNzE5OTI1NDc0
MDk5NCwgY29tcGFyZV9wcmltaXRpdmUpOwotCi1jaGVjaygnQXJyYXkgcHJpbWl0aXZlcycsIFt1
bmRlZmluZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAnXHVEODAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICdcdURDMDAnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ1x1MDAwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAnXHVEQkZGXHVERkZEJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAtMCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hTiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEluZmluaXR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgLUluZmluaXR5LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOTAwNzE5OTI1NDc0MDk5MiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC05MDA3MTk5MjU0NzQwOTkyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOTAwNzE5OTI1NDc0MDk5NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIC05MDA3MTk5
MjU0NzQwOTk0XSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9wcmltaXRp
dmUpKSk7Ci1jaGVjaygnT2JqZWN0IHByaW1pdGl2ZXMnLCB7J3VuZGVmaW5lZCc6dW5kZWZpbmVk
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOm51bGwsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAndHJ1ZSc6dHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICdm
YWxzZSc6ZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAnZW1wdHknOicnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2hpZ2ggc3Vycm9nYXRlJzonXHVEODAwJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdsb3cgc3Vycm9nYXRlJzonXHVEQzAwJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdudWwnOidcdTAwMDAnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2FzdHJhbCc6J1x1REJGRlx1REZGRCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAnMC4yJzowLjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAnMCc6MCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICctMCc6LTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAn
TmFOJzpOYU4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAnSW5maW5pdHknOkluZmluaXR5
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1JbmZpbml0eSc6LUluZmluaXR5LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJzkwMDcxOTkyNTQ3NDA5OTInOjkwMDcxOTkyNTQ3NDA5
OTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAnLTkwMDcxOTkyNTQ3NDA5OTInOi05MDA3
MTk5MjU0NzQwOTkyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJzkwMDcxOTkyNTQ3NDA5
OTQnOjkwMDcxOTkyNTQ3NDA5OTQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAnLTkwMDcx
OTkyNTQ3NDA5OTQnOi05MDA3MTk5MjU0NzQwOTk0fSwgY29tcGFyZV9PYmplY3QoZW51bWVyYXRl
X3Byb3BzKGNvbXBhcmVfcHJpbWl0aXZlKSkpOwotCi1mdW5jdGlvbiBjb21wYXJlX0Jvb2xlYW4o
YWN0dWFsLCBpbnB1dCwgdGVzdF9vYmopIHsKLSAgaWYgKHR5cGVvZiBhY3R1YWwgPT09ICdzdHJp
bmcnKQotICAgIGFzc2VydF91bnJlYWNoZWQoYWN0dWFsKTsKLSAgYXNzZXJ0X3RydWUoYWN0dWFs
IGluc3RhbmNlb2YgQm9vbGVhbiwgJ2luc3RhbmNlb2YgQm9vbGVhbicpOwotICBhc3NlcnRfZXF1
YWxzKFN0cmluZyhhY3R1YWwpLCBTdHJpbmcoaW5wdXQpLCAnY29udmVydGVkIHRvIHByaW1pdGl2
ZScpOwotICBhc3NlcnRfbm90X2VxdWFscyhhY3R1YWwsIGlucHV0KTsKLSAgaWYgKHRlc3Rfb2Jq
KQotICAgIHRlc3Rfb2JqLmRvbmUoKTsKLX0KLWNoZWNrKCdCb29sZWFuIHRydWUnLCBuZXcgQm9v
bGVhbih0cnVlKSwgY29tcGFyZV9Cb29sZWFuKTsKLWNoZWNrKCdCb29sZWFuIGZhbHNlJywgbmV3
IEJvb2xlYW4oZmFsc2UpLCBjb21wYXJlX0Jvb2xlYW4pOwotY2hlY2soJ0FycmF5IEJvb2xlYW4g
b2JqZWN0cycsIFtuZXcgQm9vbGVhbih0cnVlKSwgbmV3IEJvb2xlYW4oZmFsc2UpXSwgY29tcGFy
ZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9Cb29sZWFuKSkpOwotY2hlY2soJ09iamVj
dCBCb29sZWFuIG9iamVjdHMnLCB7J3RydWUnOm5ldyBCb29sZWFuKHRydWUpLCAnZmFsc2UnOm5l
dyBCb29sZWFuKGZhbHNlKX0sIGNvbXBhcmVfT2JqZWN0KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJl
X0Jvb2xlYW4pKSk7Ci0KLWZ1bmN0aW9uIGNvbXBhcmVfb2JqKHdoYXQpIHsKLSAgdmFyIFR5cGUg
PSB3aW5kb3dbd2hhdF07Ci0gIHJldHVybiBmdW5jdGlvbihhY3R1YWwsIGlucHV0LCB0ZXN0X29i
aikgewotICAgIGlmICh0eXBlb2YgYWN0dWFsID09PSAnc3RyaW5nJykKLSAgICAgIGFzc2VydF91
bnJlYWNoZWQoYWN0dWFsKTsKLSAgICBhc3NlcnRfdHJ1ZShhY3R1YWwgaW5zdGFuY2VvZiBUeXBl
LCAnaW5zdGFuY2VvZiAnK3doYXQpOwotICAgIGFzc2VydF9lcXVhbHMoVHlwZShhY3R1YWwpLCBU
eXBlKGlucHV0KSwgJ2NvbnZlcnRlZCB0byBwcmltaXRpdmUnKTsKLSAgICBhc3NlcnRfbm90X2Vx
dWFscyhhY3R1YWwsIGlucHV0KTsKLSAgICBpZiAodGVzdF9vYmopCi0gICAgICB0ZXN0X29iai5k
b25lKCk7Ci0gIH07Ci19Ci1jaGVjaygnU3RyaW5nIGVtcHR5IHN0cmluZycsIG5ldyBTdHJpbmco
JycpLCBjb21wYXJlX29iaignU3RyaW5nJykpOwotY2hlY2soJ1N0cmluZyBsb25lIGhpZ2ggc3Vy
cm9nYXRlJywgbmV3IFN0cmluZygnXHVEODAwJyksIGNvbXBhcmVfb2JqKCdTdHJpbmcnKSk7Ci1j
aGVjaygnU3RyaW5nIGxvbmUgbG93IHN1cnJvZ2F0ZScsIG5ldyBTdHJpbmcoJ1x1REMwMCcpLCBj
b21wYXJlX29iaignU3RyaW5nJykpOwotY2hlY2soJ1N0cmluZyBOVUwnLCBuZXcgU3RyaW5nKCdc
dTAwMDAnKSwgY29tcGFyZV9vYmooJ1N0cmluZycpKTsKLWNoZWNrKCdTdHJpbmcgYXN0cmFsIGNo
YXJhY3RlcicsIG5ldyBTdHJpbmcoJ1x1REJGRlx1REZGRCcpLCBjb21wYXJlX29iaignU3RyaW5n
JykpOwotY2hlY2soJ0FycmF5IFN0cmluZyBvYmplY3RzJywgW25ldyBTdHJpbmcoJycpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmcoJ1x1RDgwMCcpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmcoJ1x1REMwMCcpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmcoJ1x1MDAwMCcpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmcoJ1x1REJGRlx1REZGRCcpXSwgY29tcGFyZV9B
cnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9vYmooJ1N0cmluZycpKSkpOwotY2hlY2soJ09i
amVjdCBTdHJpbmcgb2JqZWN0cycsIHsnZW1wdHknOm5ldyBTdHJpbmcoJycpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdoaWdoIHN1cnJvZ2F0ZSc6bmV3IFN0cmluZygnXHVEODAw
JyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvdyBzdXJyb2dhdGUnOm5ldyBT
dHJpbmcoJ1x1REMwMCcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWwnOm5l
dyBTdHJpbmcoJ1x1MDAwMCcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3Ry
YWwnOm5ldyBTdHJpbmcoJ1x1REJGRlx1REZGRCcpfSwgY29tcGFyZV9PYmplY3QoZW51bWVyYXRl
X3Byb3BzKGNvbXBhcmVfb2JqKCdTdHJpbmcnKSkpKTsKLQotY2hlY2soJ051bWJlciAwLjInLCBu
ZXcgTnVtYmVyKDAuMiksIGNvbXBhcmVfb2JqKCdOdW1iZXInKSk7Ci1jaGVjaygnTnVtYmVyIDAn
LCBuZXcgTnVtYmVyKDApLCBjb21wYXJlX29iaignTnVtYmVyJykpOwotY2hlY2soJ051bWJlciAt
MCcsIG5ldyBOdW1iZXIoLTApLCBjb21wYXJlX29iaignTnVtYmVyJykpOwotY2hlY2soJ051bWJl
ciBOYU4nLCBuZXcgTnVtYmVyKE5hTiksIGNvbXBhcmVfb2JqKCdOdW1iZXInKSk7Ci1jaGVjaygn
TnVtYmVyIEluZmluaXR5JywgbmV3IE51bWJlcihJbmZpbml0eSksIGNvbXBhcmVfb2JqKCdOdW1i
ZXInKSk7Ci1jaGVjaygnTnVtYmVyIC1JbmZpbml0eScsIG5ldyBOdW1iZXIoLUluZmluaXR5KSwg
Y29tcGFyZV9vYmooJ051bWJlcicpKTsKLWNoZWNrKCdOdW1iZXIgOTAwNzE5OTI1NDc0MDk5Mics
IG5ldyBOdW1iZXIoOTAwNzE5OTI1NDc0MDk5MiksIGNvbXBhcmVfb2JqKCdOdW1iZXInKSk7Ci1j
aGVjaygnTnVtYmVyIC05MDA3MTk5MjU0NzQwOTkyJywgbmV3IE51bWJlcigtOTAwNzE5OTI1NDc0
MDk5MiksIGNvbXBhcmVfb2JqKCdOdW1iZXInKSk7Ci1jaGVjaygnTnVtYmVyIDkwMDcxOTkyNTQ3
NDA5OTQnLCBuZXcgTnVtYmVyKDkwMDcxOTkyNTQ3NDA5OTQpLCBjb21wYXJlX29iaignTnVtYmVy
JykpOwotY2hlY2soJ051bWJlciAtOTAwNzE5OTI1NDc0MDk5NCcsIG5ldyBOdW1iZXIoLTkwMDcx
OTkyNTQ3NDA5OTQpLCBjb21wYXJlX29iaignTnVtYmVyJykpOwotY2hlY2soJ0FycmF5IE51bWJl
ciBvYmplY3RzJywgW25ldyBOdW1iZXIoMC4yKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuZXcgTnVtYmVyKDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBO
dW1iZXIoLTApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOdW1iZXIoTmFO
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTnVtYmVyKEluZmluaXR5KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTnVtYmVyKC1JbmZpbml0eSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE51bWJlcig5MDA3MTk5MjU0NzQwOTky
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTnVtYmVyKC05MDA3MTk5MjU0
NzQwOTkyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTnVtYmVyKDkwMDcx
OTkyNTQ3NDA5OTQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOdW1iZXIo
LTkwMDcxOTkyNTQ3NDA5OTQpXSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFy
ZV9vYmooJ051bWJlcicpKSkpOwotY2hlY2soJ09iamVjdCBOdW1iZXIgb2JqZWN0cycsIHsnMC4y
JzpuZXcgTnVtYmVyKDAuMiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAnOm5l
dyBOdW1iZXIoMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0wJzpuZXcgTnVt
YmVyKC0wKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTmFOJzpuZXcgTnVtYmVy
KE5hTiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0luZmluaXR5JzpuZXcgTnVt
YmVyKEluZmluaXR5KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLUluZmluaXR5
JzpuZXcgTnVtYmVyKC1JbmZpbml0eSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JzkwMDcxOTkyNTQ3NDA5OTInOm5ldyBOdW1iZXIoOTAwNzE5OTI1NDc0MDk5MiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJy05MDA3MTk5MjU0NzQwOTkyJzpuZXcgTnVtYmVyKC05
MDA3MTk5MjU0NzQwOTkyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOTAwNzE5
OTI1NDc0MDk5NCc6bmV3IE51bWJlcig5MDA3MTk5MjU0NzQwOTk0KSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnLTkwMDcxOTkyNTQ3NDA5OTQnOm5ldyBOdW1iZXIoLTkwMDcxOTky
NTQ3NDA5OTQpfSwgY29tcGFyZV9PYmplY3QoZW51bWVyYXRlX3Byb3BzKGNvbXBhcmVfb2JqKCdO
dW1iZXInKSkpKTsKLQotZnVuY3Rpb24gY29tcGFyZV9EYXRlKGFjdHVhbCwgaW5wdXQsIHRlc3Rf
b2JqKSB7Ci0gIGlmICh0eXBlb2YgYWN0dWFsID09PSAnc3RyaW5nJykKLSAgICBhc3NlcnRfdW5y
ZWFjaGVkKGFjdHVhbCk7Ci0gIGFzc2VydF90cnVlKGFjdHVhbCBpbnN0YW5jZW9mIERhdGUsICdp
bnN0YW5jZW9mIERhdGUnKTsKLSAgYXNzZXJ0X2VxdWFscyhOdW1iZXIoYWN0dWFsKSwgTnVtYmVy
KGlucHV0KSwgJ2NvbnZlcnRlZCB0byBwcmltaXRpdmUnKTsKLSAgYXNzZXJ0X25vdF9lcXVhbHMo
YWN0dWFsLCBpbnB1dCk7Ci0gIGlmICh0ZXN0X29iaikKLSAgICB0ZXN0X29iai5kb25lKCk7Ci19
Ci1jaGVjaygnRGF0ZSAwJywgbmV3IERhdGUoMCksIGNvbXBhcmVfRGF0ZSk7Ci1jaGVjaygnRGF0
ZSAtMCcsIG5ldyBEYXRlKC0wKSwgY29tcGFyZV9EYXRlKTsKLWNoZWNrKCdEYXRlIC04LjY0ZTE1
JywgbmV3IERhdGUoLTguNjRlMTUpLCBjb21wYXJlX0RhdGUpOwotY2hlY2soJ0RhdGUgOC42NGUx
NScsIG5ldyBEYXRlKDguNjRlMTUpLCBjb21wYXJlX0RhdGUpOwotY2hlY2soJ0FycmF5IERhdGUg
b2JqZWN0cycsIFtuZXcgRGF0ZSgwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3
IERhdGUoLTApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgtOC42NGUx
NSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKDguNjRlMTUpXSwgY29t
cGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9EYXRlKSkpOwotY2hlY2soJ09iamVj
dCBEYXRlIG9iamVjdHMnLCB7JzAnOm5ldyBEYXRlKDApLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJy0wJzpuZXcgRGF0ZSgtMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnLTguNjRlMTUnOm5ldyBEYXRlKC04LjY0ZTE1KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICc4LjY0ZTE1JzpuZXcgRGF0ZSg4LjY0ZTE1KX0sIGNvbXBhcmVfT2JqZWN0KGVudW1l
cmF0ZV9wcm9wcyhjb21wYXJlX0RhdGUpKSk7Ci0KLWZ1bmN0aW9uIGNvbXBhcmVfUmVnRXhwKGV4
cGVjdGVkX3NvdXJjZSkgewotICAvLyBYWFggRVM2IHNwZWMgZG9lc24ndCBkZWZpbmUgZXhhY3Qg
c2VyaWFsaXphdGlvbiBmb3IgYHNvdXJjZWAgKGl0IGFsbG93cyBzZXZlcmFsIHdheXMgdG8gZXNj
YXBlKQotICByZXR1cm4gZnVuY3Rpb24oYWN0dWFsLCBpbnB1dCwgdGVzdF9vYmopIHsKLSAgICBp
ZiAodHlwZW9mIGFjdHVhbCA9PT0gJ3N0cmluZycpCi0gICAgICBhc3NlcnRfdW5yZWFjaGVkKGFj
dHVhbCk7Ci0gICAgYXNzZXJ0X3RydWUoYWN0dWFsIGluc3RhbmNlb2YgUmVnRXhwLCAnaW5zdGFu
Y2VvZiBSZWdFeHAnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5nbG9iYWwsIGlucHV0Lmds
b2JhbCwgJ2dsb2JhbCcpOwotICAgIGFzc2VydF9lcXVhbHMoYWN0dWFsLmlnbm9yZUNhc2UsIGlu
cHV0Lmlnbm9yZUNhc2UsICdpZ25vcmVDYXNlJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhhY3R1YWwu
bXVsdGlsaW5lLCBpbnB1dC5tdWx0aWxpbmUsICdtdWx0aWxpbmUnKTsKLSAgICBhc3NlcnRfZXF1
YWxzKGFjdHVhbC5zb3VyY2UsIGV4cGVjdGVkX3NvdXJjZSwgJ3NvdXJjZScpOwotICAgIGFzc2Vy
dF9lcXVhbHMoYWN0dWFsLnN0aWNreSwgaW5wdXQuc3RpY2t5LCAnc3RpY2t5Jyk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhhY3R1YWwudW5pY29kZSwgaW5wdXQudW5pY29kZSwgJ3VuaWNvZGUnKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5sYXN0SW5kZXgsIDAsICdsYXN0SW5kZXgnKTsKLSAgICBh
c3NlcnRfbm90X2VxdWFscyhhY3R1YWwsIGlucHV0KTsKLSAgICBpZiAodGVzdF9vYmopCi0gICAg
ICB0ZXN0X29iai5kb25lKCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGZ1bmNfUmVnRXhwX2ZsYWdzX2xh
c3RJbmRleCgpIHsKLSAgdmFyIHIgPSAvZm9vL2dpbTsKLSAgci5sYXN0SW5kZXggPSAyOwotICBy
ZXR1cm4gcjsKLX0KLWZ1bmN0aW9uIGZ1bmNfUmVnRXhwX3N0aWNreSgpIHsKLSAgcmV0dXJuIG5l
dyBSZWdFeHAoJ2ZvbycsICd5Jyk7Ci19Ci1mdW5jdGlvbiBmdW5jX1JlZ0V4cF91bmljb2RlKCkg
ewotICByZXR1cm4gbmV3IFJlZ0V4cCgnZm9vJywgJ3UnKTsKLX0KLWNoZWNrKCdSZWdFeHAgZmxh
Z3MgYW5kIGxhc3RJbmRleCcsIGZ1bmNfUmVnRXhwX2ZsYWdzX2xhc3RJbmRleCwgY29tcGFyZV9S
ZWdFeHAoJ2ZvbycpKTsKLWNoZWNrKCdSZWdFeHAgc3RpY2t5IGZsYWcnLCBmdW5jX1JlZ0V4cF9z
dGlja3ksIGNvbXBhcmVfUmVnRXhwKCdmb28nKSk7Ci1jaGVjaygnUmVnRXhwIHVuaWNvZGUgZmxh
ZycsIGZ1bmNfUmVnRXhwX3VuaWNvZGUsIGNvbXBhcmVfUmVnRXhwKCdmb28nKSk7Ci1jaGVjaygn
UmVnRXhwIGVtcHR5JywgbmV3IFJlZ0V4cCgnJyksIGNvbXBhcmVfUmVnRXhwKCcoPzopJykpOwot
Y2hlY2soJ1JlZ0V4cCBzbGFzaCcsIG5ldyBSZWdFeHAoJy8nKSwgY29tcGFyZV9SZWdFeHAoJ1xc
LycpKTsKLWNoZWNrKCdSZWdFeHAgbmV3IGxpbmUnLCBuZXcgUmVnRXhwKCdcbicpLCBjb21wYXJl
X1JlZ0V4cCgnXFxuJykpOwotY2hlY2soJ0FycmF5IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCBmbGFn
cyBhbmQgbGFzdEluZGV4JywgW2Z1bmNfUmVnRXhwX2ZsYWdzX2xhc3RJbmRleCgpXSwgY29tcGFy
ZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9SZWdFeHAoJ2ZvbycpKSkpOwotY2hlY2so
J0FycmF5IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCBzdGlja3kgZmxhZycsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gW2Z1bmNfUmVnRXhwX3N0aWNreSgpXTsgfSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVf
cHJvcHMoY29tcGFyZV9SZWdFeHAoJ2ZvbycpKSkpOwotY2hlY2soJ0FycmF5IFJlZ0V4cCBvYmpl
Y3QsIFJlZ0V4cCB1bmljb2RlIGZsYWcnLCBmdW5jdGlvbigpIHsgcmV0dXJuIFtmdW5jX1JlZ0V4
cF91bmljb2RlKCldOyB9LCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX1Jl
Z0V4cCgnZm9vJykpKSk7Ci1jaGVjaygnQXJyYXkgUmVnRXhwIG9iamVjdCwgUmVnRXhwIGVtcHR5
JywgW25ldyBSZWdFeHAoJycpXSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFy
ZV9SZWdFeHAoJyg/OiknKSkpKTsKLWNoZWNrKCdBcnJheSBSZWdFeHAgb2JqZWN0LCBSZWdFeHAg
c2xhc2gnLCBbbmV3IFJlZ0V4cCgnLycpXSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMo
Y29tcGFyZV9SZWdFeHAoJ1xcLycpKSkpOwotY2hlY2soJ0FycmF5IFJlZ0V4cCBvYmplY3QsIFJl
Z0V4cCBuZXcgbGluZScsIFtuZXcgUmVnRXhwKCdcbicpXSwgY29tcGFyZV9BcnJheShlbnVtZXJh
dGVfcHJvcHMoY29tcGFyZV9SZWdFeHAoJ1xcbicpKSkpOwotY2hlY2soJ09iamVjdCBSZWdFeHAg
b2JqZWN0LCBSZWdFeHAgZmxhZ3MgYW5kIGxhc3RJbmRleCcsIHsneCc6ZnVuY19SZWdFeHBfZmxh
Z3NfbGFzdEluZGV4KCl9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9S
ZWdFeHAoJ2ZvbycpKSkpOwotY2hlY2soJ09iamVjdCBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgc3Rp
Y2t5IGZsYWcnLCBmdW5jdGlvbigpIHsgcmV0dXJuIHsneCc6ZnVuY19SZWdFeHBfc3RpY2t5KCl9
OyB9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9SZWdFeHAoJ2Zvbycp
KSkpOwotY2hlY2soJ09iamVjdCBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgdW5pY29kZSBmbGFnJywg
ZnVuY3Rpb24oKSB7IHJldHVybiB7J3gnOmZ1bmNfUmVnRXhwX3VuaWNvZGUoKX07IH0sIGNvbXBh
cmVfT2JqZWN0KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX1JlZ0V4cCgnZm9vJykpKSk7Ci1jaGVj
aygnT2JqZWN0IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCBlbXB0eScsIHsneCc6bmV3IFJlZ0V4cCgn
Jyl9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9SZWdFeHAoJyg/Oikn
KSkpKTsKLWNoZWNrKCdPYmplY3QgUmVnRXhwIG9iamVjdCwgUmVnRXhwIHNsYXNoJywgeyd4Jzpu
ZXcgUmVnRXhwKCcvJyl9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9S
ZWdFeHAoJ1xcLycpKSkpOwotY2hlY2soJ09iamVjdCBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgbmV3
IGxpbmUnLCB7J3gnOm5ldyBSZWdFeHAoJ1xuJyl9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVf
cHJvcHMoY29tcGFyZV9SZWdFeHAoJ1xcbicpKSkpOwotCi1hc3luYyBmdW5jdGlvbiBjb21wYXJl
X0Jsb2IoYWN0dWFsLCBpbnB1dCwgdGVzdF9vYmosIGV4cGVjdF9GaWxlKSB7Ci0gIGlmICh0eXBl
b2YgYWN0dWFsID09PSAnc3RyaW5nJykKLSAgICBhc3NlcnRfdW5yZWFjaGVkKGFjdHVhbCk7Ci0g
IGFzc2VydF90cnVlKGFjdHVhbCBpbnN0YW5jZW9mIEJsb2IsICdpbnN0YW5jZW9mIEJsb2InKTsK
LSAgaWYgKCFleHBlY3RfRmlsZSkKLSAgICBhc3NlcnRfZmFsc2UoYWN0dWFsIGluc3RhbmNlb2Yg
RmlsZSwgJ2luc3RhbmNlb2YgRmlsZScpOwotICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5zaXplLCBp
bnB1dC5zaXplLCAnc2l6ZScpOwotICBhc3NlcnRfZXF1YWxzKGFjdHVhbC50eXBlLCBpbnB1dC50
eXBlLCAndHlwZScpOwotICBhc3NlcnRfbm90X2VxdWFscyhhY3R1YWwsIGlucHV0KTsKLSAgY29u
c3QgYWIxID0gbmV3IFJlc3BvbnNlKGFjdHVhbCkuYXJyYXlCdWZmZXIoKTsKLSAgY29uc3QgYWIy
ID0gbmV3IFJlc3BvbnNlKGlucHV0KS5hcnJheUJ1ZmZlcigpOwotICBhc3NlcnRfZXF1YWxzKGFi
MS5idHllTGVuZ3RoLCBhYjIuYnl0ZUxlbmd0aCwgJ2J5dGVMZW5ndGgnKTsKLSAgY29uc3QgdGEx
ID0gbmV3IFVpbnQ4QXJyYXkoYWIxKTsKLSAgY29uc3QgdGEyID0gbmV3IFVpbnQ4QXJyYXkoYWIy
KTsKLSAgZm9yKGxldCBpID0gMDsgaSA8IHRhMS5zaXplOyBpKyspIHsKLSAgICBhc3NlcnRfZXF1
YWxzKHRhMVtpXSwgdGEyW2ldKTsKLSAgfQotfQotZnVuY3Rpb24gZnVuY19CbG9iX2Jhc2ljKCkg
ewotICByZXR1cm4gbmV3IEJsb2IoWydmb28nXSwge3R5cGU6J3RleHQveC1iYXInfSk7Ci19Ci1j
aGVjaygnQmxvYiBiYXNpYycsIGZ1bmNfQmxvYl9iYXNpYywgY29tcGFyZV9CbG9iKTsKLQotZnVu
Y3Rpb24gYihzdHIpIHsKLSAgcmV0dXJuIHBhcnNlSW50KHN0ciwgMik7Ci19Ci1mdW5jdGlvbiBl
bmNvZGVfY2VzdTgoY29kZXVuaXRzKSB7Ci0gIC8vIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVw
b3J0cy90cjI2LyBzZWN0aW9uIDIuMgotICAvLyBvbmx5IHRoZSAzLWJ5dGUgZm9ybSBpcyBzdXBw
b3J0ZWQKLSAgdmFyIHJ2ID0gW107Ci0gIGNvZGV1bml0cy5mb3JFYWNoKGZ1bmN0aW9uKGNvZGV1
bml0KSB7Ci0gICAgcnYucHVzaChiKCcxMTEwMDAwMCcpICsgKChjb2RldW5pdCAmIGIoJzExMTEw
MDAwMDAwMDAwMDAnKSkgPj4gMTIpKTsKLSAgICBydi5wdXNoKGIoJzEwMDAwMDAwJykgKyAoKGNv
ZGV1bml0ICYgYignMDAwMDExMTExMTAwMDAwMCcpKSA+PiA2KSk7Ci0gICAgcnYucHVzaChiKCcx
MDAwMDAwMCcpICsgIChjb2RldW5pdCAmIGIoJzAwMDAwMDAwMDAxMTExMTEnKSkpOwotICB9KTsK
LSAgcmV0dXJuIHJ2OwotfQotZnVuY3Rpb24gZnVuY19CbG9iX2J5dGVzKGFycikgewotICByZXR1
cm4gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihhcnIubGVu
Z3RoKTsKLSAgICB2YXIgdmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpOwotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgKytpKSB7Ci0gICAgICB2aWV3LnNldFVpbnQ4KGksIGFy
cltpXSk7Ci0gICAgfQotICAgIHJldHVybiBuZXcgQmxvYihbdmlld10pOwotICB9OwotfQotY2hl
Y2soJ0Jsb2IgdW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpJywgZnVuY19C
bG9iX2J5dGVzKGVuY29kZV9jZXN1OChbMHhEODAwXSkpLCBjb21wYXJlX0Jsb2IpOwotY2hlY2so
J0Jsb2IgdW5wYWlyZWQgbG93IHN1cnJvZ2F0ZSAoaW52YWxpZCB1dGYtOCknLCBmdW5jX0Jsb2Jf
Ynl0ZXMoZW5jb2RlX2Nlc3U4KFsweERDMDBdKSksIGNvbXBhcmVfQmxvYik7Ci1jaGVjaygnQmxv
YiBwYWlyZWQgc3Vycm9nYXRlcyAoaW52YWxpZCB1dGYtOCknLCBmdW5jX0Jsb2JfYnl0ZXMoZW5j
b2RlX2Nlc3U4KFsweEQ4MDAsIDB4REMwMF0pKSwgY29tcGFyZV9CbG9iKTsKLQotZnVuY3Rpb24g
ZnVuY19CbG9iX2VtcHR5KCkgewotICByZXR1cm4gbmV3IEJsb2IoWycnXSk7Ci19Ci1jaGVjaygn
QmxvYiBlbXB0eScsIGZ1bmNfQmxvYl9lbXB0eSAsIGNvbXBhcmVfQmxvYik7Ci1mdW5jdGlvbiBm
dW5jX0Jsb2JfTlVMKCkgewotICByZXR1cm4gbmV3IEJsb2IoWydcdTAwMDAnXSk7Ci19Ci1jaGVj
aygnQmxvYiBOVUwnLCBmdW5jX0Jsb2JfTlVMLCBjb21wYXJlX0Jsb2IpOwotCi1jaGVjaygnQXJy
YXkgQmxvYiBvYmplY3QsIEJsb2IgYmFzaWMnLCBbZnVuY19CbG9iX2Jhc2ljKCldLCBjb21wYXJl
X0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0Jsb2IpLCB0cnVlKSk7Ci1jaGVjaygnQXJy
YXkgQmxvYiBvYmplY3QsIEJsb2IgdW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUgKGludmFsaWQgdXRm
LTgpJywgW2Z1bmNfQmxvYl9ieXRlcyhbMHhEODAwXSkoKV0sIGNvbXBhcmVfQXJyYXkoZW51bWVy
YXRlX3Byb3BzKGNvbXBhcmVfQmxvYiksIHRydWUpKTsKLWNoZWNrKCdBcnJheSBCbG9iIG9iamVj
dCwgQmxvYiB1bnBhaXJlZCBsb3cgc3Vycm9nYXRlIChpbnZhbGlkIHV0Zi04KScsIFtmdW5jX0Js
b2JfYnl0ZXMoWzB4REMwMF0pKCldLCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21w
YXJlX0Jsb2IpLCB0cnVlKSk7Ci1jaGVjaygnQXJyYXkgQmxvYiBvYmplY3QsIEJsb2IgcGFpcmVk
IHN1cnJvZ2F0ZXMgKGludmFsaWQgdXRmLTgpJywgW2Z1bmNfQmxvYl9ieXRlcyhbMHhEODAwLCAw
eERDMDBdKSgpXSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9CbG9iKSwg
dHJ1ZSkpOwotY2hlY2soJ0FycmF5IEJsb2Igb2JqZWN0LCBCbG9iIGVtcHR5JywgW2Z1bmNfQmxv
Yl9lbXB0eSgpXSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9CbG9iKSwg
dHJ1ZSkpOwotY2hlY2soJ0FycmF5IEJsb2Igb2JqZWN0LCBCbG9iIE5VTCcsIFtmdW5jX0Jsb2Jf
TlVMKCldLCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0Jsb2IpLCB0cnVl
KSk7Ci0KLWNoZWNrKCdPYmplY3QgQmxvYiBvYmplY3QsIEJsb2IgYmFzaWMnLCB7J3gnOmZ1bmNf
QmxvYl9iYXNpYygpfSwgY29tcGFyZV9PYmplY3QoZW51bWVyYXRlX3Byb3BzKGNvbXBhcmVfQmxv
YiksIHRydWUpKTsKLWNoZWNrKCdPYmplY3QgQmxvYiBvYmplY3QsIEJsb2IgdW5wYWlyZWQgaGln
aCBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpJywgeyd4JzpmdW5jX0Jsb2JfYnl0ZXMoWzB4RDgw
MF0pKCl9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9CbG9iKSwgdHJ1
ZSkpOwotY2hlY2soJ09iamVjdCBCbG9iIG9iamVjdCwgQmxvYiB1bnBhaXJlZCBsb3cgc3Vycm9n
YXRlIChpbnZhbGlkIHV0Zi04KScsIHsneCc6ZnVuY19CbG9iX2J5dGVzKFsweERDMDBdKSgpfSwg
Y29tcGFyZV9PYmplY3QoZW51bWVyYXRlX3Byb3BzKGNvbXBhcmVfQmxvYiksIHRydWUpKTsKLWNo
ZWNrKCdPYmplY3QgQmxvYiBvYmplY3QsIEJsb2IgcGFpcmVkIHN1cnJvZ2F0ZXMgKGludmFsaWQg
dXRmLTgpJywgeyd4JzpmdW5jX0Jsb2JfYnl0ZXMoWzB4RDgwMCwgMHhEQzAwXSkoKSAgfSwgY29t
cGFyZV9PYmplY3QoZW51bWVyYXRlX3Byb3BzKGNvbXBhcmVfQmxvYiksIHRydWUpKTsKLWNoZWNr
KCdPYmplY3QgQmxvYiBvYmplY3QsIEJsb2IgZW1wdHknLCB7J3gnOmZ1bmNfQmxvYl9lbXB0eSgp
fSwgY29tcGFyZV9PYmplY3QoZW51bWVyYXRlX3Byb3BzKGNvbXBhcmVfQmxvYiksIHRydWUpKTsK
LWNoZWNrKCdPYmplY3QgQmxvYiBvYmplY3QsIEJsb2IgTlVMJywgeyd4JzpmdW5jX0Jsb2JfTlVM
KCl9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9CbG9iKSwgdHJ1ZSkp
OwotCi1mdW5jdGlvbiBjb21wYXJlX0ZpbGUoYWN0dWFsLCBpbnB1dCwgdGVzdF9vYmopIHsKLSAg
YXNzZXJ0X3RydWUoYWN0dWFsIGluc3RhbmNlb2YgRmlsZSwgJ2luc3RhbmNlb2YgRmlsZScpOwot
ICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5uYW1lLCBpbnB1dC5uYW1lLCAnbmFtZScpOwotICBhc3Nl
cnRfZXF1YWxzKGFjdHVhbC5sYXN0TW9kaWZpZWQsIGlucHV0Lmxhc3RNb2RpZmllZCwgJ2xhc3RN
b2RpZmllZCcpOwotICBjb21wYXJlX0Jsb2IoYWN0dWFsLCBpbnB1dCwgdGVzdF9vYmosIHRydWUp
OwotfQotZnVuY3Rpb24gZnVuY19GaWxlX2Jhc2ljKCkgewotICByZXR1cm4gbmV3IEZpbGUoWydm
b28nXSwgJ2JhcicsIHt0eXBlOid0ZXh0L3gtYmFyJywgbGFzdE1vZGlmaWVkOjQyfSk7Ci19Ci1j
aGVjaygnRmlsZSBiYXNpYycsIGZ1bmNfRmlsZV9iYXNpYywgY29tcGFyZV9GaWxlKTsKLQotZnVu
Y3Rpb24gY29tcGFyZV9GaWxlTGlzdChhY3R1YWwsIGlucHV0LCB0ZXN0X29iaikgewotICBpZiAo
dHlwZW9mIGFjdHVhbCA9PT0gJ3N0cmluZycpCi0gICAgYXNzZXJ0X3VucmVhY2hlZChhY3R1YWwp
OwotICBhc3NlcnRfdHJ1ZShhY3R1YWwgaW5zdGFuY2VvZiBGaWxlTGlzdCwgJ2luc3RhbmNlb2Yg
RmlsZUxpc3QnKTsKLSAgYXNzZXJ0X2VxdWFscyhhY3R1YWwubGVuZ3RoLCBpbnB1dC5sZW5ndGgs
ICdsZW5ndGgnKTsKLSAgYXNzZXJ0X25vdF9lcXVhbHMoYWN0dWFsLCBpbnB1dCk7Ci0gIC8vIFhY
WCB3aGVuIHRoZXJlJ3MgYSB3YXkgdG8gcG9wdWxhdGUgb3IgY29uc3RydWN0IGEgRmlsZUxpc3Qs
Ci0gIC8vIGNoZWNrIHRoZSBpdGVtcyBpbiB0aGUgRmlsZUxpc3QKLSAgaWYgKHRlc3Rfb2JqKQot
ICAgIHRlc3Rfb2JqLmRvbmUoKTsKLX0KLWZ1bmN0aW9uIGZ1bmNfRmlsZUxpc3RfZW1wdHkoKSB7
Ci0gIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7Ci0gIGlucHV0
LnR5cGUgPSAnZmlsZSc7Ci0gIHJldHVybiBpbnB1dC5maWxlczsKLX0KLWNoZWNrKCdGaWxlTGlz
dCBlbXB0eScsIGZ1bmNfRmlsZUxpc3RfZW1wdHksIGNvbXBhcmVfRmlsZUxpc3QpOwotY2hlY2so
J0FycmF5IEZpbGVMaXN0IG9iamVjdCwgRmlsZUxpc3QgZW1wdHknLCBbZnVuY19GaWxlTGlzdF9l
bXB0eSgpXSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9GaWxlTGlzdCkp
KTsKLWNoZWNrKCdPYmplY3QgRmlsZUxpc3Qgb2JqZWN0LCBGaWxlTGlzdCBlbXB0eScsIHsneCc6
ZnVuY19GaWxlTGlzdF9lbXB0eSgpfSwgY29tcGFyZV9PYmplY3QoZW51bWVyYXRlX3Byb3BzKGNv
bXBhcmVfRmlsZUxpc3QpKSk7Ci0KLWZ1bmN0aW9uIGNvbXBhcmVfQXJyYXlCdWZmZXJWaWV3KHZp
ZXcpIHsKLSAgdmFyIFR5cGUgPSB3aW5kb3dbdmlld107Ci0gIHJldHVybiBmdW5jdGlvbihhY3R1
YWwsIGlucHV0LCB0ZXN0X29iaikgewotICAgIGlmICh0eXBlb2YgYWN0dWFsID09PSAnc3RyaW5n
JykKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoYWN0dWFsKTsKLSAgICBhc3NlcnRfdHJ1ZShhY3R1
YWwgaW5zdGFuY2VvZiBUeXBlLCAnaW5zdGFuY2VvZiAnK3ZpZXcpOwotICAgIGFzc2VydF9lcXVh
bHMoYWN0dWFsLmxlbmd0aCwgaW5wdXQubGVuZ3RoLCAnbGVuZ3RoJyk7Ci0gICAgYXNzZXJ0X25v
dF9lcXVhbHMoYWN0dWFsLmJ1ZmZlciwgaW5wdXQuYnVmZmVyLCAnYnVmZmVyJyk7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBhY3R1YWwubGVuZ3RoOyArK2kpIHsKLSAgICAgIGFzc2VydF9lcXVh
bHMoYWN0dWFsW2ldLCBpbnB1dFtpXSwgJ2FjdHVhbFsnK2krJ10nKTsKLSAgICB9Ci0gICAgaWYg
KHRlc3Rfb2JqKQotICAgICAgdGVzdF9vYmouZG9uZSgpOwotICB9OwotfQotZnVuY3Rpb24gY29t
cGFyZV9JbWFnZURhdGEoYWN0dWFsLCBpbnB1dCwgdGVzdF9vYmopIHsKLSAgaWYgKHR5cGVvZiBh
Y3R1YWwgPT09ICdzdHJpbmcnKQotICAgIGFzc2VydF91bnJlYWNoZWQoYWN0dWFsKTsKLSAgYXNz
ZXJ0X2VxdWFscyhhY3R1YWwud2lkdGgsIGlucHV0LndpZHRoLCAnd2lkdGgnKTsKLSAgYXNzZXJ0
X2VxdWFscyhhY3R1YWwuaGVpZ2h0LCBpbnB1dC5oZWlnaHQsICdoZWlnaHQnKTsKLSAgYXNzZXJ0
X25vdF9lcXVhbHMoYWN0dWFsLmRhdGEsIGlucHV0LmRhdGEsICdkYXRhJyk7Ci0gIGNvbXBhcmVf
QXJyYXlCdWZmZXJWaWV3KCdVaW50OENsYW1wZWRBcnJheScpKGFjdHVhbC5kYXRhLCBpbnB1dC5k
YXRhLCBudWxsKTsKLSAgaWYgKHRlc3Rfb2JqKQotICAgIHRlc3Rfb2JqLmRvbmUoKTsKLX0KLWZ1
bmN0aW9uIGZ1bmNfSW1hZ2VEYXRhXzF4MV90cmFuc3BhcmVudF9ibGFjaygpIHsKLSAgdmFyIGNh
bnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwotICB2YXIgY3R4ID0gY2Fu
dmFzLmdldENvbnRleHQoJzJkJyk7Ci0gIHJldHVybiBjdHguY3JlYXRlSW1hZ2VEYXRhKDEsIDEp
OwotfQotY2hlY2soJ0ltYWdlRGF0YSAxeDEgdHJhbnNwYXJlbnQgYmxhY2snLCBmdW5jX0ltYWdl
RGF0YV8xeDFfdHJhbnNwYXJlbnRfYmxhY2ssIGNvbXBhcmVfSW1hZ2VEYXRhKTsKLWZ1bmN0aW9u
IGZ1bmNfSW1hZ2VEYXRhXzF4MV9ub25fdHJhbnNwYXJlbnRfbm9uX2JsYWNrKCkgewotICB2YXIg
Y2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Ci0gIHZhciBjdHggPSBj
YW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgdmFyIGltYWdlZGF0YSA9IGN0eC5jcmVhdGVJbWFn
ZURhdGEoMSwgMSk7Ci0gIGltYWdlZGF0YS5kYXRhWzBdID0gMTAwOwotICBpbWFnZWRhdGEuZGF0
YVsxXSA9IDEwMTsKLSAgaW1hZ2VkYXRhLmRhdGFbMl0gPSAxMDI7Ci0gIGltYWdlZGF0YS5kYXRh
WzNdID0gMTAzOwotICByZXR1cm4gaW1hZ2VkYXRhOwotfQotY2hlY2soJ0ltYWdlRGF0YSAxeDEg
bm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjaycsIGZ1bmNfSW1hZ2VEYXRhXzF4MV9ub25fdHJhbnNw
YXJlbnRfbm9uX2JsYWNrLCBjb21wYXJlX0ltYWdlRGF0YSk7Ci1jaGVjaygnQXJyYXkgSW1hZ2VE
YXRhIG9iamVjdCwgSW1hZ2VEYXRhIDF4MSB0cmFuc3BhcmVudCBibGFjaycsIFtmdW5jX0ltYWdl
RGF0YV8xeDFfdHJhbnNwYXJlbnRfYmxhY2soKV0sIGNvbXBhcmVfQXJyYXkoZW51bWVyYXRlX3By
b3BzKGNvbXBhcmVfSW1hZ2VEYXRhKSkpOwotY2hlY2soJ0FycmF5IEltYWdlRGF0YSBvYmplY3Qs
IEltYWdlRGF0YSAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjaycsIFtmdW5jX0ltYWdlRGF0
YV8xeDFfbm9uX3RyYW5zcGFyZW50X25vbl9ibGFjaygpXSwgY29tcGFyZV9BcnJheShlbnVtZXJh
dGVfcHJvcHMoY29tcGFyZV9JbWFnZURhdGEpKSk7Ci1jaGVjaygnT2JqZWN0IEltYWdlRGF0YSBv
YmplY3QsIEltYWdlRGF0YSAxeDEgdHJhbnNwYXJlbnQgYmxhY2snLCB7J3gnOmZ1bmNfSW1hZ2VE
YXRhXzF4MV90cmFuc3BhcmVudF9ibGFjaygpfSwgY29tcGFyZV9PYmplY3QoZW51bWVyYXRlX3By
b3BzKGNvbXBhcmVfSW1hZ2VEYXRhKSkpOwotY2hlY2soJ09iamVjdCBJbWFnZURhdGEgb2JqZWN0
LCBJbWFnZURhdGEgMXgxIG5vbi10cmFuc3BhcmVudCBub24tYmxhY2snLCB7J3gnOmZ1bmNfSW1h
Z2VEYXRhXzF4MV9ub25fdHJhbnNwYXJlbnRfbm9uX2JsYWNrKCl9LCBjb21wYXJlX09iamVjdChl
bnVtZXJhdGVfcHJvcHMoY29tcGFyZV9JbWFnZURhdGEpKSk7Ci0KLQotY2hlY2soJ0FycmF5IHNw
YXJzZScsIG5ldyBBcnJheSgxMCksIGNvbXBhcmVfQXJyYXkoZW51bWVyYXRlX3Byb3BzKGNvbXBh
cmVfcHJpbWl0aXZlKSkpOwotY2hlY2soJ0FycmF5IHdpdGggbm9uLWluZGV4IHByb3BlcnR5Jywg
ZnVuY3Rpb24oKSB7Ci0gIHZhciBydiA9IFtdOwotICBydi5mb28gPSAnYmFyJzsKLSAgcmV0dXJu
IHJ2OwotfSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9wcmltaXRpdmUp
KSk7Ci1jaGVjaygnT2JqZWN0IHdpdGggaW5kZXggcHJvcGVydHkgYW5kIGxlbmd0aCcsIHsnMCc6
J2ZvbycsICdsZW5ndGgnOjF9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFy
ZV9wcmltaXRpdmUpKSk7Ci1mdW5jdGlvbiBjaGVja19jaXJjdWxhcl9wcm9wZXJ0eShwcm9wKSB7
Ci0gIHJldHVybiBmdW5jdGlvbihhY3R1YWwpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbFtw
cm9wXSwgYWN0dWFsKTsKLSAgfTsKLX0KLWNoZWNrKCdBcnJheSB3aXRoIGNpcmN1bGFyIHJlZmVy
ZW5jZScsIGZ1bmN0aW9uKCkgewotICB2YXIgcnYgPSBbXTsKLSAgcnZbMF0gPSBydjsKLSAgcmV0
dXJuIHJ2OwotfSwgY29tcGFyZV9BcnJheShjaGVja19jaXJjdWxhcl9wcm9wZXJ0eSgnMCcpKSk7
Ci1jaGVjaygnT2JqZWN0IHdpdGggY2lyY3VsYXIgcmVmZXJlbmNlJywgZnVuY3Rpb24oKSB7Ci0g
IHZhciBydiA9IHt9OwotICBydlsneCddID0gcnY7Ci0gIHJldHVybiBydjsKLX0sIGNvbXBhcmVf
T2JqZWN0KGNoZWNrX2NpcmN1bGFyX3Byb3BlcnR5KCd4JykpKTsKLWZ1bmN0aW9uIGNoZWNrX2lk
ZW50aWNhbF9wcm9wZXJ0eV92YWx1ZXMocHJvcDEsIHByb3AyKSB7Ci0gIHJldHVybiBmdW5jdGlv
bihhY3R1YWwpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbFtwcm9wMV0sIGFjdHVhbFtwcm9w
Ml0pOwotICB9OwotfQotY2hlY2soJ0FycmF5IHdpdGggaWRlbnRpY2FsIHByb3BlcnR5IHZhbHVl
cycsIGZ1bmN0aW9uKCkgewotICB2YXIgb2JqID0ge30KLSAgcmV0dXJuIFtvYmosIG9ial07Ci19
LCBjb21wYXJlX0FycmF5KGNoZWNrX2lkZW50aWNhbF9wcm9wZXJ0eV92YWx1ZXMoJzAnLCAnMScp
KSk7Ci1jaGVjaygnT2JqZWN0IHdpdGggaWRlbnRpY2FsIHByb3BlcnR5IHZhbHVlcycsIGZ1bmN0
aW9uKCkgewotICB2YXIgb2JqID0ge30KLSAgcmV0dXJuIHsneCc6b2JqLCAneSc6b2JqfTsKLX0s
IGNvbXBhcmVfT2JqZWN0KGNoZWNrX2lkZW50aWNhbF9wcm9wZXJ0eV92YWx1ZXMoJ3gnLCAneScp
KSk7Ci0KLWZ1bmN0aW9uIGNoZWNrX2Fic2VudF9wcm9wZXJ0eShwcm9wKSB7Ci0gIHJldHVybiBm
dW5jdGlvbihhY3R1YWwpIHsKLSAgICBhc3NlcnRfZmFsc2UocHJvcCBpbiBhY3R1YWwpOwotICB9
OwotfQotY2hlY2soJ09iamVjdCB3aXRoIHByb3BlcnR5IG9uIHByb3RvdHlwZScsIGZ1bmN0aW9u
KCkgewotICB2YXIgRm9vID0gZnVuY3Rpb24oKSB7fTsKLSAgRm9vLnByb3RvdHlwZSA9IHsnZm9v
JzonYmFyJ307Ci0gIHJldHVybiBuZXcgRm9vKCk7Ci19LCBjb21wYXJlX09iamVjdChjaGVja19h
YnNlbnRfcHJvcGVydHkoJ2ZvbycpKSk7Ci0KLWNoZWNrKCdPYmplY3Qgd2l0aCBub24tZW51bWVy
YWJsZSBwcm9wZXJ0eScsIGZ1bmN0aW9uKCkgewotICB2YXIgcnYgPSB7fTsKLSAgT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHJ2LCAnZm9vJywge3ZhbHVlOidiYXInLCBlbnVtZXJhYmxlOmZhbHNlLCB3
cml0YWJsZTp0cnVlLCBjb25maWd1cmFibGU6dHJ1ZX0pOwotICByZXR1cm4gcnY7Ci19LCBjb21w
YXJlX09iamVjdChjaGVja19hYnNlbnRfcHJvcGVydHkoJ2ZvbycpKSk7Ci0KLWZ1bmN0aW9uIGNo
ZWNrX3dyaXRhYmxlX3Byb3BlcnR5KHByb3ApIHsKLSAgcmV0dXJuIGZ1bmN0aW9uKGFjdHVhbCwg
aW5wdXQpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbFtwcm9wXSwgaW5wdXRbcHJvcF0pOwot
ICAgIGFjdHVhbFtwcm9wXSArPSAnIGJheic7Ci0gICAgYXNzZXJ0X2VxdWFscyhhY3R1YWxbcHJv
cF0sIGlucHV0W3Byb3BdICsgJyBiYXonKTsKLSAgfTsKLX0KLWNoZWNrKCdPYmplY3Qgd2l0aCBu
b24td3JpdGFibGUgcHJvcGVydHknLCBmdW5jdGlvbigpIHsKLSAgdmFyIHJ2ID0ge307Ci0gIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShydiwgJ2ZvbycsIHt2YWx1ZTonYmFyJywgZW51bWVyYWJsZTp0
cnVlLCB3cml0YWJsZTpmYWxzZSwgY29uZmlndXJhYmxlOnRydWV9KTsKLSAgcmV0dXJuIHJ2Owot
fSwgY29tcGFyZV9PYmplY3QoY2hlY2tfd3JpdGFibGVfcHJvcGVydHkoJ2ZvbycpKSk7Ci0KLWZ1
bmN0aW9uIGNoZWNrX2NvbmZpZ3VyYWJsZV9wcm9wZXJ0eShwcm9wKSB7Ci0gIHJldHVybiBmdW5j
dGlvbihhY3R1YWwsIGlucHV0KSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhhY3R1YWxbcHJvcF0sIGlu
cHV0W3Byb3BdKTsKLSAgICBkZWxldGUgYWN0dWFsW3Byb3BdOwotICAgIGFzc2VydF9mYWxzZSgn
cHJvcCcgaW4gYWN0dWFsKTsKLSAgfTsKLX0KLWNoZWNrKCdPYmplY3Qgd2l0aCBub24tY29uZmln
dXJhYmxlIHByb3BlcnR5JywgZnVuY3Rpb24oKSB7Ci0gIHZhciBydiA9IHt9OwotICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkocnYsICdmb28nLCB7dmFsdWU6J2JhcicsIGVudW1lcmFibGU6dHJ1ZSwg
d3JpdGFibGU6dHJ1ZSwgY29uZmlndXJhYmxlOmZhbHNlfSk7Ci0gIHJldHVybiBydjsKLX0sIGNv
bXBhcmVfT2JqZWN0KGNoZWNrX2NvbmZpZ3VyYWJsZV9wcm9wZXJ0eSgnZm9vJykpKTsKLQotLyog
VGhlIHRlc3RzIGJlbG93IGFyZSBpbnNwaXJlZCBieSBAemNvcnBhbuKAmXMgd29yayBidXQgZ290
IHNvbWUKLW1vcmUgc3Vic3RhbnRpYWwgY2hhbmdlZCBkdWUgdG8gdGhlaXIgcHJldmlvdXMgYXN5
bmMgc2V0dXAgKi8KLQotZnVuY3Rpb24gZ2V0X2NhbnZhc18xeDFfdHJhbnNwYXJlbnRfYmxhY2so
KSB7Ci0gIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAg
Y2FudmFzLndpZHRoID0gMTsKLSAgY2FudmFzLmhlaWdodCA9IDE7Ci0gIHJldHVybiBjYW52YXM7
Ci19Ci0KLWZ1bmN0aW9uIGdldF9jYW52YXNfMXgxX25vbl90cmFuc3BhcmVudF9ub25fYmxhY2so
KSB7Ci0gIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAg
Y2FudmFzLndpZHRoID0gMTsKLSAgY2FudmFzLmhlaWdodCA9IDE7Ci0gIHZhciBjdHggPSBjYW52
YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgdmFyIGltYWdlZGF0YSA9IGN0eC5nZXRJbWFnZURhdGEo
MCwgMCwgMSwgMSk7Ci0gIGltYWdlZGF0YS5kYXRhWzBdID0gMTAwOwotICBpbWFnZWRhdGEuZGF0
YVsxXSA9IDEwMTsKLSAgaW1hZ2VkYXRhLmRhdGFbMl0gPSAxMDI7Ci0gIGltYWdlZGF0YS5kYXRh
WzNdID0gMTAzOwotICByZXR1cm4gY2FudmFzOwotfQotCi1mdW5jdGlvbiBjb21wYXJlX0ltYWdl
Qml0bWFwKGFjdHVhbCwgaW5wdXQpIHsKLSAgaWYgKHR5cGVvZiBhY3R1YWwgPT09ICdzdHJpbmcn
KQotICAgIGFzc2VydF91bnJlYWNoZWQoYWN0dWFsKTsKLSAgYXNzZXJ0X3RydWUoYWN0dWFsIGlu
c3RhbmNlb2YgSW1hZ2VCaXRtYXAsICdpbnN0YW5jZW9mIEltYWdlQml0bWFwJyk7Ci0gIGFzc2Vy
dF9ub3RfZXF1YWxzKGFjdHVhbCwgaW5wdXQpOwotICAvLyBYWFggcGFpbnQgdGhlIEltYWdlQml0
bWFwIG9uIGEgY2FudmFzIGFuZCBjaGVjayB0aGUgZGF0YQotfQotCi1zdHJ1Y3R1cmVkQ2xvbmVC
YXR0ZXJ5T2ZUZXN0cy5wdXNoKHsKLSAgZGVzY3JpcHRpb246ICdJbWFnZUJpdG1hcCAxeDEgdHJh
bnNwYXJlbnQgYmxhY2snLAotICBhc3luYyBmKHJ1bm5lcikgewotICAgIHZhciBjYW52YXMgPSBn
ZXRfY2FudmFzXzF4MV90cmFuc3BhcmVudF9ibGFjaygpOwotICAgIGNvbnN0IGJtID0gYXdhaXQg
Y3JlYXRlSW1hZ2VCaXRtYXAoY2FudmFzKTsKLSAgICBjb25zdCBjb3B5ID0gYXdhaXQgcnVubmVy
LnN0cnVjdHVyZWRDbG9uZShibSk7Ci0gICAgY29tcGFyZV9JbWFnZUJpdG1hcChibSwgY29weSk7
Ci0gIH0KLX0pOwotCi1zdHJ1Y3R1cmVkQ2xvbmVCYXR0ZXJ5T2ZUZXN0cy5wdXNoKHsKLSAgZGVz
Y3JpcHRpb246ICdJbWFnZUJpdG1hcCAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjaycsCi0g
IGFzeW5jIGYocnVubmVyKSB7Ci0gICAgdmFyIGNhbnZhcyA9IGdldF9jYW52YXNfMXgxX25vbl90
cmFuc3BhcmVudF9ub25fYmxhY2soKTsKLSAgICBjb25zdCBibSA9IGF3YWl0IGNyZWF0ZUltYWdl
Qml0bWFwKGNhbnZhcyk7Ci0gICAgY29uc3QgY29weSA9IGF3YWl0IHJ1bm5lci5zdHJ1Y3R1cmVk
Q2xvbmUoYm0pOwotICAgIGNvbXBhcmVfSW1hZ2VCaXRtYXAoYm0sIGNvcHkpOwotICB9Ci19KTsK
LQotc3RydWN0dXJlZENsb25lQmF0dGVyeU9mVGVzdHMucHVzaCh7Ci0gIGRlc2NyaXB0aW9uOiAn
QXJyYXkgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQgYmxh
Y2snLAotICBhc3luYyBmKHJ1bm5lcikgewotICAgIHZhciBjYW52YXMgPSBnZXRfY2FudmFzXzF4
MV90cmFuc3BhcmVudF9ibGFjaygpOwotICAgIGNvbnN0IGJtID0gW2F3YWl0IGNyZWF0ZUltYWdl
Qml0bWFwKGNhbnZhcyldOwotICAgIGNvbnN0IGNvcHkgPSBhd2FpdCBydW5uZXIuc3RydWN0dXJl
ZENsb25lKGJtKTsKLSAgICBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0lt
YWdlQml0bWFwKSkoYm0sIGNvcHkpOwotICB9Ci19KTsKLQotc3RydWN0dXJlZENsb25lQmF0dGVy
eU9mVGVzdHMucHVzaCh7Ci0gIGRlc2NyaXB0aW9uOiAnQXJyYXkgSW1hZ2VCaXRtYXAgb2JqZWN0
LCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQgbm9uLWJsYWNrJywKLSAgYXN5bmMgZihydW5u
ZXIpIHsKLSAgICB2YXIgY2FudmFzID0gZ2V0X2NhbnZhc18xeDFfbm9uX3RyYW5zcGFyZW50X25v
bl9ibGFjaygpOwotICAgIGNvbnN0IGJtID0gW2F3YWl0IGNyZWF0ZUltYWdlQml0bWFwKGNhbnZh
cyldOwotICAgIGNvbnN0IGNvcHkgPSBhd2FpdCBydW5uZXIuc3RydWN0dXJlZENsb25lKGJtKTsK
LSAgICBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0ltYWdlQml0bWFwKSko
Ym0sIGNvcHkpOwotICB9Ci19KTsKLQotc3RydWN0dXJlZENsb25lQmF0dGVyeU9mVGVzdHMucHVz
aCh7Ci0gIGRlc2NyaXB0aW9uOiAnT2JqZWN0IEltYWdlQml0bWFwIG9iamVjdCwgSW1hZ2VCaXRt
YXAgMXgxIHRyYW5zcGFyZW50IGJsYWNrJywKLSAgYXN5bmMgZihydW5uZXIpIHsKLSAgICB2YXIg
Y2FudmFzID0gZ2V0X2NhbnZhc18xeDFfdHJhbnNwYXJlbnRfYmxhY2soKTsKLSAgICBjb25zdCBi
bSA9IHt4OiBhd2FpdCBjcmVhdGVJbWFnZUJpdG1hcChjYW52YXMpfTsKLSAgICBjb25zdCBjb3B5
ID0gYXdhaXQgcnVubmVyLnN0cnVjdHVyZWRDbG9uZShibSk7Ci0gICAgY29tcGFyZV9PYmplY3Qo
ZW51bWVyYXRlX3Byb3BzKGNvbXBhcmVfSW1hZ2VCaXRtYXApKShibSwgY29weSk7Ci0gIH0KLX0p
OwotCi1zdHJ1Y3R1cmVkQ2xvbmVCYXR0ZXJ5T2ZUZXN0cy5wdXNoKHsKLSAgZGVzY3JpcHRpb246
ICdPYmplY3QgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQg
bm9uLWJsYWNrJywKLSAgYXN5bmMgZihydW5uZXIpIHsKLSAgICB2YXIgY2FudmFzID0gZ2V0X2Nh
bnZhc18xeDFfbm9uX3RyYW5zcGFyZW50X25vbl9ibGFjaygpOwotICAgIGNvbnN0IGJtID0ge3g6
IGF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKGNhbnZhcyl9OwotICAgIGNvbnN0IGNvcHkgPSBhd2Fp
dCBydW5uZXIuc3RydWN0dXJlZENsb25lKGJtKTsKLSAgICBjb21wYXJlX09iamVjdChlbnVtZXJh
dGVfcHJvcHMoY29tcGFyZV9JbWFnZUJpdG1hcCkpKGJtLCBjb3B5KTsKLSAgfQotfSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
d2ViYXBwYXBpcy9zdHJ1Y3R1cmVkLWNsb25lL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc3RydWN0dXJl
ZC1jbG9uZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDc1
MzI0MWJlZjQ0ZDM3MjgxOGYwM2Y3MTIwM2Y2Zjg3MzIxMmQyOC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zdHJ1Y3R1cmVkLWNsb25lL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc3RydWN0
dXJlZC1jbG9uZS9zdHJ1Y3R1cmVkLWNsb25lLWJhdHRlcnktb2YtdGVzdHMtaGFybmVzcy5qcwot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBh
cGlzL3N0cnVjdHVyZWQtY2xvbmUvc3RydWN0dXJlZC1jbG9uZS1iYXR0ZXJ5LW9mLXRlc3RzLXdp
dGgtdHJhbnNmZXJhYmxlcy5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3N0cnVjdHVyZWQtY2xvbmUvc3RydWN0dXJlZC1jbG9u
ZS1iYXR0ZXJ5LW9mLXRlc3RzLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUv
Y29tbW9uLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL2NvbW1vbi5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
NmMyYTMwMDQwMTgzYzdiYmU3YjNmNjVlYWI5MTQxMmZlMDZkYWZiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Nl
bWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL2NvbW1vbi5qcwpAQCAtMCwwICsxLDU5NiBAQAorZnVu
Y3Rpb24gY3JlYXRlV29ya2VyKG1zZykgeworICAvLyBgdHlwZWAgaXMgZGVmaW5lZCBpbiB0aGUg
dGVzdCBjYXNlIGl0c2VsZgorICBpZiAodHlwZSA9PSAnZGVkaWNhdGVkJykKKyAgICByZXR1cm4g
bmV3IFdvcmtlcignZGVkaWNhdGVkLmpzIycrZW5jb2RlVVJJQ29tcG9uZW50KG1zZykpOworICBl
bHNlIGlmICh0eXBlID09ICdzaGFyZWQnKQorICAgIHJldHVybiAobmV3IFNoYXJlZFdvcmtlcign
c2hhcmVkLmpzIycrZW5jb2RlVVJJQ29tcG9uZW50KG1zZykpKS5wb3J0OworICBlbHNlCisgICAg
YXNzZXJ0X3VucmVhY2hlZCgnaW52YWxpZCBvciBtaXNzaW5nIGB0eXBlYCcpOworfQorCitmdW5j
dGlvbiBjaGVjayhtc2csIGlucHV0LCBjYWxsYmFjaywgdGVzdF9vYmopIHsKKyAgaWYgKCF0ZXN0
X29iaikKKyAgICB0ZXN0X29iaiA9IGFzeW5jX3Rlc3QobXNnKTsKKyAgdGVzdF9vYmouc3RlcChm
dW5jdGlvbigpIHsKKyAgICB2YXIgdyA9IGNyZWF0ZVdvcmtlcihtc2cpOworICAgIGlmICh0eXBl
b2YgaW5wdXQgPT09ICdmdW5jdGlvbicpCisgICAgICBpbnB1dCA9IHRoaXMuc3RlcChpbnB1dCk7
CisgICAgdy5wb3N0TWVzc2FnZShpbnB1dCk7CisgICAgdy5vbm1lc3NhZ2UgPSB0aGlzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihldikgeyBjYWxsYmFjayhldi5kYXRhLCBpbnB1dCwgdGhpcyk7IH0pOwor
ICB9KTsKK30KKworZnVuY3Rpb24gY29tcGFyZV9wcmltaXRpdmUoYWN0dWFsLCBpbnB1dCwgdGVz
dF9vYmopIHsKKyAgYXNzZXJ0X2VxdWFscyhhY3R1YWwsIGlucHV0KTsKKyAgaWYgKHRlc3Rfb2Jq
KQorICAgIHRlc3Rfb2JqLmRvbmUoKTsKK30KK2Z1bmN0aW9uIGNvbXBhcmVfQXJyYXkoY2FsbGJh
Y2ssIGNhbGxiYWNrX2lzX2FzeW5jKSB7CisgIHJldHVybiBmdW5jdGlvbihhY3R1YWwsIGlucHV0
LCB0ZXN0X29iaikgeworICAgIGlmICh0eXBlb2YgYWN0dWFsID09PSAnc3RyaW5nJykKKyAgICAg
IGFzc2VydF91bnJlYWNoZWQoYWN0dWFsKTsKKyAgICBhc3NlcnRfdHJ1ZShhY3R1YWwgaW5zdGFu
Y2VvZiBBcnJheSwgJ2luc3RhbmNlb2YgQXJyYXknKTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhh
Y3R1YWwsIGlucHV0KTsKKyAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5sZW5ndGgsIGlucHV0Lmxl
bmd0aCwgJ2xlbmd0aCcpOworICAgIGNhbGxiYWNrKGFjdHVhbCwgaW5wdXQpOworICAgIGlmICh0
ZXN0X29iaiAmJiAhY2FsbGJhY2tfaXNfYXN5bmMpCisgICAgICB0ZXN0X29iai5kb25lKCk7Cisg
IH0KK30KKworZnVuY3Rpb24gY29tcGFyZV9PYmplY3QoY2FsbGJhY2ssIGNhbGxiYWNrX2lzX2Fz
eW5jKSB7CisgIHJldHVybiBmdW5jdGlvbihhY3R1YWwsIGlucHV0LCB0ZXN0X29iaikgeworICAg
IGlmICh0eXBlb2YgYWN0dWFsID09PSAnc3RyaW5nJykKKyAgICAgIGFzc2VydF91bnJlYWNoZWQo
YWN0dWFsKTsKKyAgICBhc3NlcnRfdHJ1ZShhY3R1YWwgaW5zdGFuY2VvZiBPYmplY3QsICdpbnN0
YW5jZW9mIE9iamVjdCcpOworICAgIGFzc2VydF9mYWxzZShhY3R1YWwgaW5zdGFuY2VvZiBBcnJh
eSwgJ2luc3RhbmNlb2YgQXJyYXknKTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhhY3R1YWwsIGlu
cHV0KTsKKyAgICBjYWxsYmFjayhhY3R1YWwsIGlucHV0KTsKKyAgICBpZiAodGVzdF9vYmogJiYg
IWNhbGxiYWNrX2lzX2FzeW5jKQorICAgICAgdGVzdF9vYmouZG9uZSgpOworICB9Cit9CisKK2Z1
bmN0aW9uIGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX2Z1bmMsIHRlc3Rfb2JqKSB7CisgIHJldHVy
biBmdW5jdGlvbihhY3R1YWwsIGlucHV0KSB7CisgICAgZm9yICh2YXIgeCBpbiBpbnB1dCkgewor
ICAgICAgY29tcGFyZV9mdW5jKGFjdHVhbFt4XSwgaW5wdXRbeF0sIHRlc3Rfb2JqKTsKKyAgICB9
CisgIH07Cit9CisKK2NoZWNrKCdwcmltaXRpdmUgdW5kZWZpbmVkJywgdW5kZWZpbmVkLCBjb21w
YXJlX3ByaW1pdGl2ZSk7CitjaGVjaygncHJpbWl0aXZlIG51bGwnLCBudWxsLCBjb21wYXJlX3By
aW1pdGl2ZSk7CitjaGVjaygncHJpbWl0aXZlIHRydWUnLCB0cnVlLCBjb21wYXJlX3ByaW1pdGl2
ZSk7CitjaGVjaygncHJpbWl0aXZlIGZhbHNlJywgZmFsc2UsIGNvbXBhcmVfcHJpbWl0aXZlKTsK
K2NoZWNrKCdwcmltaXRpdmUgc3RyaW5nLCBlbXB0eSBzdHJpbmcnLCAnJywgY29tcGFyZV9wcmlt
aXRpdmUpOworY2hlY2soJ3ByaW1pdGl2ZSBzdHJpbmcsIGxvbmUgaGlnaCBzdXJyb2dhdGUnLCAn
XHVEODAwJywgY29tcGFyZV9wcmltaXRpdmUpOworY2hlY2soJ3ByaW1pdGl2ZSBzdHJpbmcsIGxv
bmUgbG93IHN1cnJvZ2F0ZScsICdcdURDMDAnLCBjb21wYXJlX3ByaW1pdGl2ZSk7CitjaGVjaygn
cHJpbWl0aXZlIHN0cmluZywgTlVMJywgJ1x1MDAwMCcsIGNvbXBhcmVfcHJpbWl0aXZlKTsKK2No
ZWNrKCdwcmltaXRpdmUgc3RyaW5nLCBhc3RyYWwgY2hhcmFjdGVyJywgJ1x1REJGRlx1REZGRCcs
IGNvbXBhcmVfcHJpbWl0aXZlKTsKK2NoZWNrKCdwcmltaXRpdmUgbnVtYmVyLCAwLjInLCAwLjIs
IGNvbXBhcmVfcHJpbWl0aXZlKTsKK2NoZWNrKCdwcmltaXRpdmUgbnVtYmVyLCAwJywgMCwgY29t
cGFyZV9wcmltaXRpdmUpOworY2hlY2soJ3ByaW1pdGl2ZSBudW1iZXIsIC0wJywgLTAsIGNvbXBh
cmVfcHJpbWl0aXZlKTsKK2NoZWNrKCdwcmltaXRpdmUgbnVtYmVyLCBOYU4nLCBOYU4sIGNvbXBh
cmVfcHJpbWl0aXZlKTsKK2NoZWNrKCdwcmltaXRpdmUgbnVtYmVyLCBJbmZpbml0eScsIEluZmlu
aXR5LCBjb21wYXJlX3ByaW1pdGl2ZSk7CitjaGVjaygncHJpbWl0aXZlIG51bWJlciwgLUluZmlu
aXR5JywgLUluZmluaXR5LCBjb21wYXJlX3ByaW1pdGl2ZSk7CitjaGVjaygncHJpbWl0aXZlIG51
bWJlciwgOTAwNzE5OTI1NDc0MDk5MicsIDkwMDcxOTkyNTQ3NDA5OTIsIGNvbXBhcmVfcHJpbWl0
aXZlKTsKK2NoZWNrKCdwcmltaXRpdmUgbnVtYmVyLCAtOTAwNzE5OTI1NDc0MDk5MicsIC05MDA3
MTk5MjU0NzQwOTkyLCBjb21wYXJlX3ByaW1pdGl2ZSk7CitjaGVjaygncHJpbWl0aXZlIG51bWJl
ciwgOTAwNzE5OTI1NDc0MDk5NCcsIDkwMDcxOTkyNTQ3NDA5OTQsIGNvbXBhcmVfcHJpbWl0aXZl
KTsKK2NoZWNrKCdwcmltaXRpdmUgbnVtYmVyLCAtOTAwNzE5OTI1NDc0MDk5NCcsIC05MDA3MTk5
MjU0NzQwOTk0LCBjb21wYXJlX3ByaW1pdGl2ZSk7CisKK2NoZWNrKCdBcnJheSBwcmltaXRpdmVz
JywgW3VuZGVmaW5lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFs
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdcdUQ4MDAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1x1REMwMCcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnXHUwMDAwJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdcdURCRkZcdURGRkQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFOLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSW5maW5pdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAtSW5maW5pdHks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICA5MDA3MTk5MjU0NzQwOTkyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLTkwMDcxOTkyNTQ3NDA5OTIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICA5MDA3MTk5MjU0NzQwOTk0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgLTkw
MDcxOTkyNTQ3NDA5OTRdLCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX3By
aW1pdGl2ZSkpKTsKK2NoZWNrKCdPYmplY3QgcHJpbWl0aXZlcycsIHsndW5kZWZpbmVkJzp1bmRl
ZmluZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6bnVsbCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICd0cnVlJzp0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2ZhbHNlJzpmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbXB0eSc6Jycs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGlnaCBzdXJyb2dhdGUnOidcdUQ4MDAnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvdyBzdXJyb2dhdGUnOidcdURDMDAnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ251bCc6J1x1MDAwMCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnYXN0cmFsJzonXHVEQkZGXHVERkZEJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcwLjInOjAuMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICcwJzowLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJy0wJzotMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdOYU4nOk5hTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdJbmZpbml0eSc6SW5m
aW5pdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnLUluZmluaXR5JzotSW5maW5pdHks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAnOTAwNzE5OTI1NDc0MDk5Mic6OTAwNzE5OTI1
NDc0MDk5MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICctOTAwNzE5OTI1NDc0MDk5Mic6
LTkwMDcxOTkyNTQ3NDA5OTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnOTAwNzE5OTI1
NDc0MDk5NCc6OTAwNzE5OTI1NDc0MDk5NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICct
OTAwNzE5OTI1NDc0MDk5NCc6LTkwMDcxOTkyNTQ3NDA5OTR9LCBjb21wYXJlX09iamVjdChlbnVt
ZXJhdGVfcHJvcHMoY29tcGFyZV9wcmltaXRpdmUpKSk7CisKK2Z1bmN0aW9uIGNvbXBhcmVfQm9v
bGVhbihhY3R1YWwsIGlucHV0LCB0ZXN0X29iaikgeworICBpZiAodHlwZW9mIGFjdHVhbCA9PT0g
J3N0cmluZycpCisgICAgYXNzZXJ0X3VucmVhY2hlZChhY3R1YWwpOworICBhc3NlcnRfdHJ1ZShh
Y3R1YWwgaW5zdGFuY2VvZiBCb29sZWFuLCAnaW5zdGFuY2VvZiBCb29sZWFuJyk7CisgIGFzc2Vy
dF9lcXVhbHMoU3RyaW5nKGFjdHVhbCksIFN0cmluZyhpbnB1dCksICdjb252ZXJ0ZWQgdG8gcHJp
bWl0aXZlJyk7CisgIGFzc2VydF9ub3RfZXF1YWxzKGFjdHVhbCwgaW5wdXQpOworICBpZiAodGVz
dF9vYmopCisgICAgdGVzdF9vYmouZG9uZSgpOworfQorY2hlY2soJ0Jvb2xlYW4gdHJ1ZScsIG5l
dyBCb29sZWFuKHRydWUpLCBjb21wYXJlX0Jvb2xlYW4pOworY2hlY2soJ0Jvb2xlYW4gZmFsc2Un
LCBuZXcgQm9vbGVhbihmYWxzZSksIGNvbXBhcmVfQm9vbGVhbik7CitjaGVjaygnQXJyYXkgQm9v
bGVhbiBvYmplY3RzJywgW25ldyBCb29sZWFuKHRydWUpLCBuZXcgQm9vbGVhbihmYWxzZSldLCBj
b21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0Jvb2xlYW4pKSk7CitjaGVjaygn
T2JqZWN0IEJvb2xlYW4gb2JqZWN0cycsIHsndHJ1ZSc6bmV3IEJvb2xlYW4odHJ1ZSksICdmYWxz
ZSc6bmV3IEJvb2xlYW4oZmFsc2UpfSwgY29tcGFyZV9PYmplY3QoZW51bWVyYXRlX3Byb3BzKGNv
bXBhcmVfQm9vbGVhbikpKTsKKworZnVuY3Rpb24gY29tcGFyZV9vYmood2hhdCkgeworICB2YXIg
VHlwZSA9IHdpbmRvd1t3aGF0XTsKKyAgcmV0dXJuIGZ1bmN0aW9uKGFjdHVhbCwgaW5wdXQsIHRl
c3Rfb2JqKSB7CisgICAgaWYgKHR5cGVvZiBhY3R1YWwgPT09ICdzdHJpbmcnKQorICAgICAgYXNz
ZXJ0X3VucmVhY2hlZChhY3R1YWwpOworICAgIGFzc2VydF90cnVlKGFjdHVhbCBpbnN0YW5jZW9m
IFR5cGUsICdpbnN0YW5jZW9mICcrd2hhdCk7CisgICAgYXNzZXJ0X2VxdWFscyhUeXBlKGFjdHVh
bCksIFR5cGUoaW5wdXQpLCAnY29udmVydGVkIHRvIHByaW1pdGl2ZScpOworICAgIGFzc2VydF9u
b3RfZXF1YWxzKGFjdHVhbCwgaW5wdXQpOworICAgIGlmICh0ZXN0X29iaikKKyAgICAgIHRlc3Rf
b2JqLmRvbmUoKTsKKyAgfTsKK30KK2NoZWNrKCdTdHJpbmcgZW1wdHkgc3RyaW5nJywgbmV3IFN0
cmluZygnJyksIGNvbXBhcmVfb2JqKCdTdHJpbmcnKSk7CitjaGVjaygnU3RyaW5nIGxvbmUgaGln
aCBzdXJyb2dhdGUnLCBuZXcgU3RyaW5nKCdcdUQ4MDAnKSwgY29tcGFyZV9vYmooJ1N0cmluZycp
KTsKK2NoZWNrKCdTdHJpbmcgbG9uZSBsb3cgc3Vycm9nYXRlJywgbmV3IFN0cmluZygnXHVEQzAw
JyksIGNvbXBhcmVfb2JqKCdTdHJpbmcnKSk7CitjaGVjaygnU3RyaW5nIE5VTCcsIG5ldyBTdHJp
bmcoJ1x1MDAwMCcpLCBjb21wYXJlX29iaignU3RyaW5nJykpOworY2hlY2soJ1N0cmluZyBhc3Ry
YWwgY2hhcmFjdGVyJywgbmV3IFN0cmluZygnXHVEQkZGXHVERkZEJyksIGNvbXBhcmVfb2JqKCdT
dHJpbmcnKSk7CitjaGVjaygnQXJyYXkgU3RyaW5nIG9iamVjdHMnLCBbbmV3IFN0cmluZygnJyks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZygnXHVEODAwJyksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZygnXHVEQzAwJyksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZygnXHUwMDAwJyksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZygnXHVEQkZGXHVERkZEJyldLCBjb21w
YXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX29iaignU3RyaW5nJykpKSk7CitjaGVj
aygnT2JqZWN0IFN0cmluZyBvYmplY3RzJywgeydlbXB0eSc6bmV3IFN0cmluZygnJyksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hpZ2ggc3Vycm9nYXRlJzpuZXcgU3RyaW5nKCdc
dUQ4MDAnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG93IHN1cnJvZ2F0ZSc6
bmV3IFN0cmluZygnXHVEQzAwJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251
bCc6bmV3IFN0cmluZygnXHUwMDAwJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2FzdHJhbCc6bmV3IFN0cmluZygnXHVEQkZGXHVERkZEJyl9LCBjb21wYXJlX09iamVjdChlbnVt
ZXJhdGVfcHJvcHMoY29tcGFyZV9vYmooJ1N0cmluZycpKSkpOworCitjaGVjaygnTnVtYmVyIDAu
MicsIG5ldyBOdW1iZXIoMC4yKSwgY29tcGFyZV9vYmooJ051bWJlcicpKTsKK2NoZWNrKCdOdW1i
ZXIgMCcsIG5ldyBOdW1iZXIoMCksIGNvbXBhcmVfb2JqKCdOdW1iZXInKSk7CitjaGVjaygnTnVt
YmVyIC0wJywgbmV3IE51bWJlcigtMCksIGNvbXBhcmVfb2JqKCdOdW1iZXInKSk7CitjaGVjaygn
TnVtYmVyIE5hTicsIG5ldyBOdW1iZXIoTmFOKSwgY29tcGFyZV9vYmooJ051bWJlcicpKTsKK2No
ZWNrKCdOdW1iZXIgSW5maW5pdHknLCBuZXcgTnVtYmVyKEluZmluaXR5KSwgY29tcGFyZV9vYmoo
J051bWJlcicpKTsKK2NoZWNrKCdOdW1iZXIgLUluZmluaXR5JywgbmV3IE51bWJlcigtSW5maW5p
dHkpLCBjb21wYXJlX29iaignTnVtYmVyJykpOworY2hlY2soJ051bWJlciA5MDA3MTk5MjU0NzQw
OTkyJywgbmV3IE51bWJlcig5MDA3MTk5MjU0NzQwOTkyKSwgY29tcGFyZV9vYmooJ051bWJlcicp
KTsKK2NoZWNrKCdOdW1iZXIgLTkwMDcxOTkyNTQ3NDA5OTInLCBuZXcgTnVtYmVyKC05MDA3MTk5
MjU0NzQwOTkyKSwgY29tcGFyZV9vYmooJ051bWJlcicpKTsKK2NoZWNrKCdOdW1iZXIgOTAwNzE5
OTI1NDc0MDk5NCcsIG5ldyBOdW1iZXIoOTAwNzE5OTI1NDc0MDk5NCksIGNvbXBhcmVfb2JqKCdO
dW1iZXInKSk7CitjaGVjaygnTnVtYmVyIC05MDA3MTk5MjU0NzQwOTk0JywgbmV3IE51bWJlcigt
OTAwNzE5OTI1NDc0MDk5NCksIGNvbXBhcmVfb2JqKCdOdW1iZXInKSk7CitjaGVjaygnQXJyYXkg
TnVtYmVyIG9iamVjdHMnLCBbbmV3IE51bWJlcigwLjIpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5ldyBOdW1iZXIoMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmV3IE51bWJlcigtMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE51bWJl
cihOYU4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOdW1iZXIoSW5maW5p
dHkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOdW1iZXIoLUluZmluaXR5
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTnVtYmVyKDkwMDcxOTkyNTQ3
NDA5OTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOdW1iZXIoLTkwMDcx
OTkyNTQ3NDA5OTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBOdW1iZXIo
OTAwNzE5OTI1NDc0MDk5NCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE51
bWJlcigtOTAwNzE5OTI1NDc0MDk5NCldLCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhj
b21wYXJlX29iaignTnVtYmVyJykpKSk7CitjaGVjaygnT2JqZWN0IE51bWJlciBvYmplY3RzJywg
eycwLjInOm5ldyBOdW1iZXIoMC4yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
MCc6bmV3IE51bWJlcigwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLTAnOm5l
dyBOdW1iZXIoLTApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYU4nOm5ldyBO
dW1iZXIoTmFOKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSW5maW5pdHknOm5l
dyBOdW1iZXIoSW5maW5pdHkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctSW5m
aW5pdHknOm5ldyBOdW1iZXIoLUluZmluaXR5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnOTAwNzE5OTI1NDc0MDk5Mic6bmV3IE51bWJlcig5MDA3MTk5MjU0NzQwOTkyKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLTkwMDcxOTkyNTQ3NDA5OTInOm5ldyBOdW1i
ZXIoLTkwMDcxOTkyNTQ3NDA5OTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc5
MDA3MTk5MjU0NzQwOTk0JzpuZXcgTnVtYmVyKDkwMDcxOTkyNTQ3NDA5OTQpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICctOTAwNzE5OTI1NDc0MDk5NCc6bmV3IE51bWJlcigtOTAw
NzE5OTI1NDc0MDk5NCl9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9v
YmooJ051bWJlcicpKSkpOworCitmdW5jdGlvbiBjb21wYXJlX0RhdGUoYWN0dWFsLCBpbnB1dCwg
dGVzdF9vYmopIHsKKyAgaWYgKHR5cGVvZiBhY3R1YWwgPT09ICdzdHJpbmcnKQorICAgIGFzc2Vy
dF91bnJlYWNoZWQoYWN0dWFsKTsKKyAgYXNzZXJ0X3RydWUoYWN0dWFsIGluc3RhbmNlb2YgRGF0
ZSwgJ2luc3RhbmNlb2YgRGF0ZScpOworICBhc3NlcnRfZXF1YWxzKE51bWJlcihhY3R1YWwpLCBO
dW1iZXIoaW5wdXQpLCAnY29udmVydGVkIHRvIHByaW1pdGl2ZScpOworICBhc3NlcnRfbm90X2Vx
dWFscyhhY3R1YWwsIGlucHV0KTsKKyAgaWYgKHRlc3Rfb2JqKQorICAgIHRlc3Rfb2JqLmRvbmUo
KTsKK30KK2NoZWNrKCdEYXRlIDAnLCBuZXcgRGF0ZSgwKSwgY29tcGFyZV9EYXRlKTsKK2NoZWNr
KCdEYXRlIC0wJywgbmV3IERhdGUoLTApLCBjb21wYXJlX0RhdGUpOworY2hlY2soJ0RhdGUgLTgu
NjRlMTUnLCBuZXcgRGF0ZSgtOC42NGUxNSksIGNvbXBhcmVfRGF0ZSk7CitjaGVjaygnRGF0ZSA4
LjY0ZTE1JywgbmV3IERhdGUoOC42NGUxNSksIGNvbXBhcmVfRGF0ZSk7CitjaGVjaygnQXJyYXkg
RGF0ZSBvYmplY3RzJywgW25ldyBEYXRlKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBuZXcgRGF0ZSgtMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKC04
LjY0ZTE1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERhdGUoOC42NGUxNSld
LCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0RhdGUpKSk7CitjaGVjaygn
T2JqZWN0IERhdGUgb2JqZWN0cycsIHsnMCc6bmV3IERhdGUoMCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnLTAnOm5ldyBEYXRlKC0wKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICctOC42NGUxNSc6bmV3IERhdGUoLTguNjRlMTUpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJzguNjRlMTUnOm5ldyBEYXRlKDguNjRlMTUpfSwgY29tcGFyZV9PYmplY3Qo
ZW51bWVyYXRlX3Byb3BzKGNvbXBhcmVfRGF0ZSkpKTsKKworZnVuY3Rpb24gY29tcGFyZV9SZWdF
eHAoZXhwZWN0ZWRfc291cmNlKSB7CisgIC8vIFhYWCBFUzYgc3BlYyBkb2Vzbid0IGRlZmluZSBl
eGFjdCBzZXJpYWxpemF0aW9uIGZvciBgc291cmNlYCAoaXQgYWxsb3dzIHNldmVyYWwgd2F5cyB0
byBlc2NhcGUpCisgIHJldHVybiBmdW5jdGlvbihhY3R1YWwsIGlucHV0LCB0ZXN0X29iaikgewor
ICAgIGlmICh0eXBlb2YgYWN0dWFsID09PSAnc3RyaW5nJykKKyAgICAgIGFzc2VydF91bnJlYWNo
ZWQoYWN0dWFsKTsKKyAgICBhc3NlcnRfdHJ1ZShhY3R1YWwgaW5zdGFuY2VvZiBSZWdFeHAsICdp
bnN0YW5jZW9mIFJlZ0V4cCcpOworICAgIGFzc2VydF9lcXVhbHMoYWN0dWFsLmdsb2JhbCwgaW5w
dXQuZ2xvYmFsLCAnZ2xvYmFsJyk7CisgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWwuaWdub3JlQ2Fz
ZSwgaW5wdXQuaWdub3JlQ2FzZSwgJ2lnbm9yZUNhc2UnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFj
dHVhbC5tdWx0aWxpbmUsIGlucHV0Lm11bHRpbGluZSwgJ211bHRpbGluZScpOworICAgIGFzc2Vy
dF9lcXVhbHMoYWN0dWFsLnNvdXJjZSwgZXhwZWN0ZWRfc291cmNlLCAnc291cmNlJyk7CisgICAg
YXNzZXJ0X2VxdWFscyhhY3R1YWwuc3RpY2t5LCBpbnB1dC5zdGlja3ksICdzdGlja3knKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGFjdHVhbC51bmljb2RlLCBpbnB1dC51bmljb2RlLCAndW5pY29kZScp
OworICAgIGFzc2VydF9lcXVhbHMoYWN0dWFsLmxhc3RJbmRleCwgMCwgJ2xhc3RJbmRleCcpOwor
ICAgIGFzc2VydF9ub3RfZXF1YWxzKGFjdHVhbCwgaW5wdXQpOworICAgIGlmICh0ZXN0X29iaikK
KyAgICAgIHRlc3Rfb2JqLmRvbmUoKTsKKyAgfQorfQorZnVuY3Rpb24gZnVuY19SZWdFeHBfZmxh
Z3NfbGFzdEluZGV4KCkgeworICB2YXIgciA9IC9mb28vZ2ltOworICByLmxhc3RJbmRleCA9IDI7
CisgIHJldHVybiByOworfQorZnVuY3Rpb24gZnVuY19SZWdFeHBfc3RpY2t5KCkgeworICByZXR1
cm4gbmV3IFJlZ0V4cCgnZm9vJywgJ3knKTsKK30KK2Z1bmN0aW9uIGZ1bmNfUmVnRXhwX3VuaWNv
ZGUoKSB7CisgIHJldHVybiBuZXcgUmVnRXhwKCdmb28nLCAndScpOworfQorY2hlY2soJ1JlZ0V4
cCBmbGFncyBhbmQgbGFzdEluZGV4JywgZnVuY19SZWdFeHBfZmxhZ3NfbGFzdEluZGV4LCBjb21w
YXJlX1JlZ0V4cCgnZm9vJykpOworY2hlY2soJ1JlZ0V4cCBzdGlja3kgZmxhZycsIGZ1bmNfUmVn
RXhwX3N0aWNreSwgY29tcGFyZV9SZWdFeHAoJ2ZvbycpKTsKK2NoZWNrKCdSZWdFeHAgdW5pY29k
ZSBmbGFnJywgZnVuY19SZWdFeHBfdW5pY29kZSwgY29tcGFyZV9SZWdFeHAoJ2ZvbycpKTsKK2No
ZWNrKCdSZWdFeHAgZW1wdHknLCBuZXcgUmVnRXhwKCcnKSwgY29tcGFyZV9SZWdFeHAoJyg/Oikn
KSk7CitjaGVjaygnUmVnRXhwIHNsYXNoJywgbmV3IFJlZ0V4cCgnLycpLCBjb21wYXJlX1JlZ0V4
cCgnXFwvJykpOworY2hlY2soJ1JlZ0V4cCBuZXcgbGluZScsIG5ldyBSZWdFeHAoJ1xuJyksIGNv
bXBhcmVfUmVnRXhwKCdcXG4nKSk7CitjaGVjaygnQXJyYXkgUmVnRXhwIG9iamVjdCwgUmVnRXhw
IGZsYWdzIGFuZCBsYXN0SW5kZXgnLCBbZnVuY19SZWdFeHBfZmxhZ3NfbGFzdEluZGV4KCldLCBj
b21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX1JlZ0V4cCgnZm9vJykpKSk7Citj
aGVjaygnQXJyYXkgUmVnRXhwIG9iamVjdCwgUmVnRXhwIHN0aWNreSBmbGFnJywgZnVuY3Rpb24o
KSB7IHJldHVybiBbZnVuY19SZWdFeHBfc3RpY2t5KCldOyB9LCBjb21wYXJlX0FycmF5KGVudW1l
cmF0ZV9wcm9wcyhjb21wYXJlX1JlZ0V4cCgnZm9vJykpKSk7CitjaGVjaygnQXJyYXkgUmVnRXhw
IG9iamVjdCwgUmVnRXhwIHVuaWNvZGUgZmxhZycsIGZ1bmN0aW9uKCkgeyByZXR1cm4gW2Z1bmNf
UmVnRXhwX3VuaWNvZGUoKV07IH0sIGNvbXBhcmVfQXJyYXkoZW51bWVyYXRlX3Byb3BzKGNvbXBh
cmVfUmVnRXhwKCdmb28nKSkpKTsKK2NoZWNrKCdBcnJheSBSZWdFeHAgb2JqZWN0LCBSZWdFeHAg
ZW1wdHknLCBbbmV3IFJlZ0V4cCgnJyldLCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhj
b21wYXJlX1JlZ0V4cCgnKD86KScpKSkpOworY2hlY2soJ0FycmF5IFJlZ0V4cCBvYmplY3QsIFJl
Z0V4cCBzbGFzaCcsIFtuZXcgUmVnRXhwKCcvJyldLCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9w
cm9wcyhjb21wYXJlX1JlZ0V4cCgnXFwvJykpKSk7CitjaGVjaygnQXJyYXkgUmVnRXhwIG9iamVj
dCwgUmVnRXhwIG5ldyBsaW5lJywgW25ldyBSZWdFeHAoJ1xuJyldLCBjb21wYXJlX0FycmF5KGVu
dW1lcmF0ZV9wcm9wcyhjb21wYXJlX1JlZ0V4cCgnXFxuJykpKSk7CitjaGVjaygnT2JqZWN0IFJl
Z0V4cCBvYmplY3QsIFJlZ0V4cCBmbGFncyBhbmQgbGFzdEluZGV4Jywgeyd4JzpmdW5jX1JlZ0V4
cF9mbGFnc19sYXN0SW5kZXgoKX0sIGNvbXBhcmVfT2JqZWN0KGVudW1lcmF0ZV9wcm9wcyhjb21w
YXJlX1JlZ0V4cCgnZm9vJykpKSk7CitjaGVjaygnT2JqZWN0IFJlZ0V4cCBvYmplY3QsIFJlZ0V4
cCBzdGlja3kgZmxhZycsIGZ1bmN0aW9uKCkgeyByZXR1cm4geyd4JzpmdW5jX1JlZ0V4cF9zdGlj
a3koKX07IH0sIGNvbXBhcmVfT2JqZWN0KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX1JlZ0V4cCgn
Zm9vJykpKSk7CitjaGVjaygnT2JqZWN0IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCB1bmljb2RlIGZs
YWcnLCBmdW5jdGlvbigpIHsgcmV0dXJuIHsneCc6ZnVuY19SZWdFeHBfdW5pY29kZSgpfTsgfSwg
Y29tcGFyZV9PYmplY3QoZW51bWVyYXRlX3Byb3BzKGNvbXBhcmVfUmVnRXhwKCdmb28nKSkpKTsK
K2NoZWNrKCdPYmplY3QgUmVnRXhwIG9iamVjdCwgUmVnRXhwIGVtcHR5Jywgeyd4JzpuZXcgUmVn
RXhwKCcnKX0sIGNvbXBhcmVfT2JqZWN0KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX1JlZ0V4cCgn
KD86KScpKSkpOworY2hlY2soJ09iamVjdCBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgc2xhc2gnLCB7
J3gnOm5ldyBSZWdFeHAoJy8nKX0sIGNvbXBhcmVfT2JqZWN0KGVudW1lcmF0ZV9wcm9wcyhjb21w
YXJlX1JlZ0V4cCgnXFwvJykpKSk7CitjaGVjaygnT2JqZWN0IFJlZ0V4cCBvYmplY3QsIFJlZ0V4
cCBuZXcgbGluZScsIHsneCc6bmV3IFJlZ0V4cCgnXG4nKX0sIGNvbXBhcmVfT2JqZWN0KGVudW1l
cmF0ZV9wcm9wcyhjb21wYXJlX1JlZ0V4cCgnXFxuJykpKSk7CisKK2Z1bmN0aW9uIGNvbXBhcmVf
QmxvYihhY3R1YWwsIGlucHV0LCB0ZXN0X29iaiwgZXhwZWN0X0ZpbGUpIHsKKyAgaWYgKHR5cGVv
ZiBhY3R1YWwgPT09ICdzdHJpbmcnKQorICAgIGFzc2VydF91bnJlYWNoZWQoYWN0dWFsKTsKKyAg
YXNzZXJ0X3RydWUoYWN0dWFsIGluc3RhbmNlb2YgQmxvYiwgJ2luc3RhbmNlb2YgQmxvYicpOwor
ICBpZiAoIWV4cGVjdF9GaWxlKQorICAgIGFzc2VydF9mYWxzZShhY3R1YWwgaW5zdGFuY2VvZiBG
aWxlLCAnaW5zdGFuY2VvZiBGaWxlJyk7CisgIGFzc2VydF9lcXVhbHMoYWN0dWFsLnNpemUsIGlu
cHV0LnNpemUsICdzaXplJyk7CisgIGFzc2VydF9lcXVhbHMoYWN0dWFsLnR5cGUsIGlucHV0LnR5
cGUsICd0eXBlJyk7CisgIGFzc2VydF9ub3RfZXF1YWxzKGFjdHVhbCwgaW5wdXQpOworICB2YXIg
ZXZfcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgdmFyIGlucHV0X3JlYWRlciA9IG5ldyBG
aWxlUmVhZGVyKCk7CisgIHZhciByZWFkX2NvdW50ID0gMDsKKyAgdmFyIHJlYWRfZG9uZSA9IHRl
c3Rfb2JqLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICByZWFkX2NvdW50Kys7CisgICAgaWYg
KHJlYWRfY291bnQgPT0gMikgeworICAgICAgdmFyIGV2X3Jlc3VsdCA9IGV2X3JlYWRlci5yZXN1
bHQ7CisgICAgICB2YXIgaW5wdXRfcmVzdWx0ID0gaW5wdXRfcmVhZGVyLnJlc3VsdDsKKyAgICAg
IGFzc2VydF9lcXVhbHMoZXZfcmVzdWx0LmJ5dGVMZW5ndGgsIGlucHV0X3Jlc3VsdC5ieXRlTGVu
Z3RoLCAnYnl0ZUxlbmd0aCcpOworICAgICAgdmFyIGV2X3ZpZXcgPSBuZXcgRGF0YVZpZXcoZXZf
cmVzdWx0KTsKKyAgICAgIHZhciBpbnB1dF92aWV3ID0gbmV3IERhdGFWaWV3KGlucHV0X3Jlc3Vs
dCk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2X3Jlc3VsdC5ieXRlTGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhldl92aWV3LmdldFVpbnQ4KGkpLCBpbnB1dF92aWV3
LmdldFVpbnQ4KGkpLCAnZ2V0VWludDgoJytpKycpJyk7CisgICAgICB9CisgICAgICBpZiAodGVz
dF9vYmopCisgICAgICAgIHRlc3Rfb2JqLmRvbmUoKTsKKyAgICB9CisgIH0pOworICB2YXIgcmVh
ZF9lcnJvciA9IHRlc3Rfb2JqLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hl
ZCgnRmlsZVJlYWRlciBlcnJvcicpOyB9KTsKKyAgZXZfcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVy
KGFjdHVhbCk7CisgIGV2X3JlYWRlci5vbmxvYWQgPSByZWFkX2RvbmU7CisgIGV2X3JlYWRlci5v
bmFib3J0ID0gZXZfcmVhZGVyLm9uZXJyb3IgPSByZWFkX2Vycm9yOworICBpbnB1dF9yZWFkZXIu
cmVhZEFzQXJyYXlCdWZmZXIoaW5wdXQpOworICBpbnB1dF9yZWFkZXIub25sb2FkID0gcmVhZF9k
b25lOworICBpbnB1dF9yZWFkZXIub25hYm9ydCA9IGlucHV0X3JlYWRlci5vbmVycm9yID0gcmVh
ZF9lcnJvcjsKK30KK2Z1bmN0aW9uIGZ1bmNfQmxvYl9iYXNpYygpIHsKKyAgcmV0dXJuIG5ldyBC
bG9iKFsnZm9vJ10sIHt0eXBlOid0ZXh0L3gtYmFyJ30pOworfQorY2hlY2soJ0Jsb2IgYmFzaWMn
LCBmdW5jX0Jsb2JfYmFzaWMsIGNvbXBhcmVfQmxvYik7CisKK2Z1bmN0aW9uIGIoc3RyKSB7Cisg
IHJldHVybiBwYXJzZUludChzdHIsIDIpOworfQorZnVuY3Rpb24gZW5jb2RlX2Nlc3U4KGNvZGV1
bml0cykgeworICAvLyBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyNi8gc2VjdGlv
biAyLjIKKyAgLy8gb25seSB0aGUgMy1ieXRlIGZvcm0gaXMgc3VwcG9ydGVkCisgIHZhciBydiA9
IFtdOworICBjb2RldW5pdHMuZm9yRWFjaChmdW5jdGlvbihjb2RldW5pdCkgeworICAgIHJ2LnB1
c2goYignMTExMDAwMDAnKSArICgoY29kZXVuaXQgJiBiKCcxMTExMDAwMDAwMDAwMDAwJykpID4+
IDEyKSk7CisgICAgcnYucHVzaChiKCcxMDAwMDAwMCcpICsgKChjb2RldW5pdCAmIGIoJzAwMDAx
MTExMTEwMDAwMDAnKSkgPj4gNikpOworICAgIHJ2LnB1c2goYignMTAwMDAwMDAnKSArICAoY29k
ZXVuaXQgJiBiKCcwMDAwMDAwMDAwMTExMTExJykpKTsKKyAgfSk7CisgIHJldHVybiBydjsKK30K
K2Z1bmN0aW9uIGZ1bmNfQmxvYl9ieXRlcyhhcnIpIHsKKyAgcmV0dXJuIGZ1bmN0aW9uKCkgewor
ICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoYXJyLmxlbmd0aCk7CisgICAgdmFyIHZp
ZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5s
ZW5ndGg7ICsraSkgeworICAgICAgdmlldy5zZXRVaW50OChpLCBhcnJbaV0pOworICAgIH0KKyAg
ICByZXR1cm4gbmV3IEJsb2IoW3ZpZXddKTsKKyAgfTsKK30KK2NoZWNrKCdCbG9iIHVucGFpcmVk
IGhpZ2ggc3Vycm9nYXRlIChpbnZhbGlkIHV0Zi04KScsIGZ1bmNfQmxvYl9ieXRlcyhlbmNvZGVf
Y2VzdTgoWzB4RDgwMF0pKSwgY29tcGFyZV9CbG9iKTsKK2NoZWNrKCdCbG9iIHVucGFpcmVkIGxv
dyBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpJywgZnVuY19CbG9iX2J5dGVzKGVuY29kZV9jZXN1
OChbMHhEQzAwXSkpLCBjb21wYXJlX0Jsb2IpOworY2hlY2soJ0Jsb2IgcGFpcmVkIHN1cnJvZ2F0
ZXMgKGludmFsaWQgdXRmLTgpJywgZnVuY19CbG9iX2J5dGVzKGVuY29kZV9jZXN1OChbMHhEODAw
LCAweERDMDBdKSksIGNvbXBhcmVfQmxvYik7CisKK2Z1bmN0aW9uIGZ1bmNfQmxvYl9lbXB0eSgp
IHsKKyAgcmV0dXJuIG5ldyBCbG9iKFsnJ10pOworfQorY2hlY2soJ0Jsb2IgZW1wdHknLCBmdW5j
X0Jsb2JfZW1wdHkgLCBjb21wYXJlX0Jsb2IpOworZnVuY3Rpb24gZnVuY19CbG9iX05VTCgpIHsK
KyAgcmV0dXJuIG5ldyBCbG9iKFsnXHUwMDAwJ10pOworfQorY2hlY2soJ0Jsb2IgTlVMJywgZnVu
Y19CbG9iX05VTCwgY29tcGFyZV9CbG9iKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0ZXN0X29i
aikgeworICBjaGVjayh0ZXN0X29iai5uYW1lLCBbdGVzdF9vYmouc3RlcChmdW5jX0Jsb2JfYmFz
aWMpXSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9CbG9iLCB0ZXN0X29i
aiksIHRydWUpLCB0ZXN0X29iaik7Cit9LCAnQXJyYXkgQmxvYiBvYmplY3QsIEJsb2IgYmFzaWMn
KTsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odGVzdF9vYmopIHsKKyAgY2hlY2sodGVzdF9vYmoubmFt
ZSwgW3Rlc3Rfb2JqLnN0ZXAoZnVuY19CbG9iX2J5dGVzKFsweEQ4MDBdKSldLCBjb21wYXJlX0Fy
cmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0Jsb2IsIHRlc3Rfb2JqKSwgdHJ1ZSksIHRlc3Rf
b2JqKTsKK30sICdBcnJheSBCbG9iIG9iamVjdCwgQmxvYiB1bnBhaXJlZCBoaWdoIHN1cnJvZ2F0
ZSAoaW52YWxpZCB1dGYtOCknKTsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odGVzdF9vYmopIHsKKyAg
Y2hlY2sodGVzdF9vYmoubmFtZSwgW3Rlc3Rfb2JqLnN0ZXAoZnVuY19CbG9iX2J5dGVzKFsweERD
MDBdKSldLCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0Jsb2IsIHRlc3Rf
b2JqKSwgdHJ1ZSksIHRlc3Rfb2JqKTsKK30sICdBcnJheSBCbG9iIG9iamVjdCwgQmxvYiB1bnBh
aXJlZCBsb3cgc3Vycm9nYXRlIChpbnZhbGlkIHV0Zi04KScpOworYXN5bmNfdGVzdChmdW5jdGlv
bih0ZXN0X29iaikgeworICBjaGVjayh0ZXN0X29iai5uYW1lLCBbdGVzdF9vYmouc3RlcChmdW5j
X0Jsb2JfYnl0ZXMoWzB4RDgwMCwgMHhEQzAwXSkpXSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVf
cHJvcHMoY29tcGFyZV9CbG9iLCB0ZXN0X29iaiksIHRydWUpLCB0ZXN0X29iaik7Cit9LCAnQXJy
YXkgQmxvYiBvYmplY3QsIEJsb2IgcGFpcmVkIHN1cnJvZ2F0ZXMgKGludmFsaWQgdXRmLTgpJyk7
Cithc3luY190ZXN0KGZ1bmN0aW9uKHRlc3Rfb2JqKSB7CisgIGNoZWNrKHRlc3Rfb2JqLm5hbWUs
IFt0ZXN0X29iai5zdGVwKGZ1bmNfQmxvYl9lbXB0eSldLCBjb21wYXJlX0FycmF5KGVudW1lcmF0
ZV9wcm9wcyhjb21wYXJlX0Jsb2IsIHRlc3Rfb2JqKSwgdHJ1ZSksIHRlc3Rfb2JqKTsKK30sICdB
cnJheSBCbG9iIG9iamVjdCwgQmxvYiBlbXB0eScpOworYXN5bmNfdGVzdChmdW5jdGlvbih0ZXN0
X29iaikgeworICBjaGVjayh0ZXN0X29iai5uYW1lLCBbdGVzdF9vYmouc3RlcChmdW5jX0Jsb2Jf
TlVMKV0sIGNvbXBhcmVfQXJyYXkoZW51bWVyYXRlX3Byb3BzKGNvbXBhcmVfQmxvYiwgdGVzdF9v
YmopLCB0cnVlKSwgdGVzdF9vYmopOworfSwgJ0FycmF5IEJsb2Igb2JqZWN0LCBCbG9iIE5VTCcp
OworCithc3luY190ZXN0KGZ1bmN0aW9uKHRlc3Rfb2JqKSB7CisgIGNoZWNrKHRlc3Rfb2JqLm5h
bWUsIHsneCc6dGVzdF9vYmouc3RlcChmdW5jX0Jsb2JfYmFzaWMpfSwgY29tcGFyZV9PYmplY3Qo
ZW51bWVyYXRlX3Byb3BzKGNvbXBhcmVfQmxvYiwgdGVzdF9vYmopLCB0cnVlKSwgdGVzdF9vYmop
OworfSwgJ09iamVjdCBCbG9iIG9iamVjdCwgQmxvYiBiYXNpYycpOworYXN5bmNfdGVzdChmdW5j
dGlvbih0ZXN0X29iaikgeworICBjaGVjayh0ZXN0X29iai5uYW1lLCB7J3gnOnRlc3Rfb2JqLnN0
ZXAoZnVuY19CbG9iX2J5dGVzKFsweEQ4MDBdKSl9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVf
cHJvcHMoY29tcGFyZV9CbG9iLCB0ZXN0X29iaiksIHRydWUpLCB0ZXN0X29iaik7Cit9LCAnT2Jq
ZWN0IEJsb2Igb2JqZWN0LCBCbG9iIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRlIChpbnZhbGlkIHV0
Zi04KScpOworYXN5bmNfdGVzdChmdW5jdGlvbih0ZXN0X29iaikgeworICBjaGVjayh0ZXN0X29i
ai5uYW1lLCB7J3gnOnRlc3Rfb2JqLnN0ZXAoZnVuY19CbG9iX2J5dGVzKFsweERDMDBdKSl9LCBj
b21wYXJlX09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9CbG9iLCB0ZXN0X29iaiksIHRy
dWUpLCB0ZXN0X29iaik7Cit9LCAnT2JqZWN0IEJsb2Igb2JqZWN0LCBCbG9iIHVucGFpcmVkIGxv
dyBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpJyk7Cithc3luY190ZXN0KGZ1bmN0aW9uKHRlc3Rf
b2JqKSB7CisgIGNoZWNrKHRlc3Rfb2JqLm5hbWUsIHsneCc6dGVzdF9vYmouc3RlcChmdW5jX0Js
b2JfYnl0ZXMoWzB4RDgwMCwgMHhEQzAwXSkpfSwgY29tcGFyZV9PYmplY3QoZW51bWVyYXRlX3By
b3BzKGNvbXBhcmVfQmxvYiwgdGVzdF9vYmopLCB0cnVlKSwgdGVzdF9vYmopOworfSwgJ09iamVj
dCBCbG9iIG9iamVjdCwgQmxvYiBwYWlyZWQgc3Vycm9nYXRlcyAoaW52YWxpZCB1dGYtOCknKTsK
K2FzeW5jX3Rlc3QoZnVuY3Rpb24odGVzdF9vYmopIHsKKyAgY2hlY2sodGVzdF9vYmoubmFtZSwg
eyd4Jzp0ZXN0X29iai5zdGVwKGZ1bmNfQmxvYl9lbXB0eSl9LCBjb21wYXJlX09iamVjdChlbnVt
ZXJhdGVfcHJvcHMoY29tcGFyZV9CbG9iLCB0ZXN0X29iaiksIHRydWUpLCB0ZXN0X29iaik7Cit9
LCAnT2JqZWN0IEJsb2Igb2JqZWN0LCBCbG9iIGVtcHR5Jyk7Cithc3luY190ZXN0KGZ1bmN0aW9u
KHRlc3Rfb2JqKSB7CisgIGNoZWNrKHRlc3Rfb2JqLm5hbWUsIHsneCc6dGVzdF9vYmouc3RlcChm
dW5jX0Jsb2JfTlVMKX0sIGNvbXBhcmVfT2JqZWN0KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0Js
b2IsIHRlc3Rfb2JqKSwgdHJ1ZSksIHRlc3Rfb2JqKTsKK30sICdPYmplY3QgQmxvYiBvYmplY3Qs
IEJsb2IgTlVMJyk7CisKK2Z1bmN0aW9uIGNvbXBhcmVfRmlsZShhY3R1YWwsIGlucHV0LCB0ZXN0
X29iaikgeworICBhc3NlcnRfdHJ1ZShhY3R1YWwgaW5zdGFuY2VvZiBGaWxlLCAnaW5zdGFuY2Vv
ZiBGaWxlJyk7CisgIGFzc2VydF9lcXVhbHMoYWN0dWFsLm5hbWUsIGlucHV0Lm5hbWUsICduYW1l
Jyk7CisgIGFzc2VydF9lcXVhbHMoYWN0dWFsLmxhc3RNb2RpZmllZCwgaW5wdXQubGFzdE1vZGlm
aWVkLCAnbGFzdE1vZGlmaWVkJyk7CisgIGNvbXBhcmVfQmxvYihhY3R1YWwsIGlucHV0LCB0ZXN0
X29iaiwgdHJ1ZSk7Cit9CitmdW5jdGlvbiBmdW5jX0ZpbGVfYmFzaWMoKSB7CisgIHJldHVybiBu
ZXcgRmlsZShbJ2ZvbyddLCAnYmFyJywge3R5cGU6J3RleHQveC1iYXInLCBsYXN0TW9kaWZpZWQ6
NDJ9KTsKK30KK2NoZWNrKCdGaWxlIGJhc2ljJywgZnVuY19GaWxlX2Jhc2ljLCBjb21wYXJlX0Zp
bGUpOworCitmdW5jdGlvbiBjb21wYXJlX0ZpbGVMaXN0KGFjdHVhbCwgaW5wdXQsIHRlc3Rfb2Jq
KSB7CisgIGlmICh0eXBlb2YgYWN0dWFsID09PSAnc3RyaW5nJykKKyAgICBhc3NlcnRfdW5yZWFj
aGVkKGFjdHVhbCk7CisgIGFzc2VydF90cnVlKGFjdHVhbCBpbnN0YW5jZW9mIEZpbGVMaXN0LCAn
aW5zdGFuY2VvZiBGaWxlTGlzdCcpOworICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5sZW5ndGgsIGlu
cHV0Lmxlbmd0aCwgJ2xlbmd0aCcpOworICBhc3NlcnRfbm90X2VxdWFscyhhY3R1YWwsIGlucHV0
KTsKKyAgLy8gWFhYIHdoZW4gdGhlcmUncyBhIHdheSB0byBwb3B1bGF0ZSBvciBjb25zdHJ1Y3Qg
YSBGaWxlTGlzdCwKKyAgLy8gY2hlY2sgdGhlIGl0ZW1zIGluIHRoZSBGaWxlTGlzdAorICBpZiAo
dGVzdF9vYmopCisgICAgdGVzdF9vYmouZG9uZSgpOworfQorZnVuY3Rpb24gZnVuY19GaWxlTGlz
dF9lbXB0eSgpIHsKKyAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQn
KTsKKyAgaW5wdXQudHlwZSA9ICdmaWxlJzsKKyAgcmV0dXJuIGlucHV0LmZpbGVzOworfQorY2hl
Y2soJ0ZpbGVMaXN0IGVtcHR5JywgZnVuY19GaWxlTGlzdF9lbXB0eSwgY29tcGFyZV9GaWxlTGlz
dCk7CitjaGVjaygnQXJyYXkgRmlsZUxpc3Qgb2JqZWN0LCBGaWxlTGlzdCBlbXB0eScsIFtmdW5j
X0ZpbGVMaXN0X2VtcHR5XSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9G
aWxlTGlzdCkpKTsKK2NoZWNrKCdPYmplY3QgRmlsZUxpc3Qgb2JqZWN0LCBGaWxlTGlzdCBlbXB0
eScsIHsneCc6ZnVuY19GaWxlTGlzdF9lbXB0eX0sIGNvbXBhcmVfT2JqZWN0KGVudW1lcmF0ZV9w
cm9wcyhjb21wYXJlX0ZpbGVMaXN0KSkpOworCitmdW5jdGlvbiBjb21wYXJlX0FycmF5QnVmZmVy
Vmlldyh2aWV3KSB7CisgIHZhciBUeXBlID0gd2luZG93W3ZpZXddOworICByZXR1cm4gZnVuY3Rp
b24oYWN0dWFsLCBpbnB1dCwgdGVzdF9vYmopIHsKKyAgICBpZiAodHlwZW9mIGFjdHVhbCA9PT0g
J3N0cmluZycpCisgICAgICBhc3NlcnRfdW5yZWFjaGVkKGFjdHVhbCk7CisgICAgYXNzZXJ0X3Ry
dWUoYWN0dWFsIGluc3RhbmNlb2YgVHlwZSwgJ2luc3RhbmNlb2YgJyt2aWV3KTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGFjdHVhbC5sZW5ndGgsIGlucHV0Lmxlbmd0aCwgJ2xlbmd0aCcpOworICAgIGFz
c2VydF9ub3RfZXF1YWxzKGFjdHVhbC5idWZmZXIsIGlucHV0LmJ1ZmZlciwgJ2J1ZmZlcicpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWN0dWFsLmxlbmd0aDsgKytpKSB7CisgICAgICBhc3Nl
cnRfZXF1YWxzKGFjdHVhbFtpXSwgaW5wdXRbaV0sICdhY3R1YWxbJytpKyddJyk7CisgICAgfQor
ICAgIGlmICh0ZXN0X29iaikKKyAgICAgIHRlc3Rfb2JqLmRvbmUoKTsKKyAgfTsKK30KK2Z1bmN0
aW9uIGNvbXBhcmVfSW1hZ2VEYXRhKGFjdHVhbCwgaW5wdXQsIHRlc3Rfb2JqKSB7CisgIGlmICh0
eXBlb2YgYWN0dWFsID09PSAnc3RyaW5nJykKKyAgICBhc3NlcnRfdW5yZWFjaGVkKGFjdHVhbCk7
CisgIGFzc2VydF9lcXVhbHMoYWN0dWFsLndpZHRoLCBpbnB1dC53aWR0aCwgJ3dpZHRoJyk7Cisg
IGFzc2VydF9lcXVhbHMoYWN0dWFsLmhlaWdodCwgaW5wdXQuaGVpZ2h0LCAnaGVpZ2h0Jyk7Cisg
IGFzc2VydF9ub3RfZXF1YWxzKGFjdHVhbC5kYXRhLCBpbnB1dC5kYXRhLCAnZGF0YScpOworICBj
b21wYXJlX0FycmF5QnVmZmVyVmlldygnVWludDhDbGFtcGVkQXJyYXknKShhY3R1YWwuZGF0YSwg
aW5wdXQuZGF0YSwgbnVsbCk7CisgIGlmICh0ZXN0X29iaikKKyAgICB0ZXN0X29iai5kb25lKCk7
Cit9CitmdW5jdGlvbiBmdW5jX0ltYWdlRGF0YV8xeDFfdHJhbnNwYXJlbnRfYmxhY2soKSB7Cisg
IHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgdmFyIGN0
eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICByZXR1cm4gY3R4LmNyZWF0ZUltYWdlRGF0
YSgxLCAxKTsKK30KK2NoZWNrKCdJbWFnZURhdGEgMXgxIHRyYW5zcGFyZW50IGJsYWNrJywgZnVu
Y19JbWFnZURhdGFfMXgxX3RyYW5zcGFyZW50X2JsYWNrLCBjb21wYXJlX0ltYWdlRGF0YSk7Citm
dW5jdGlvbiBmdW5jX0ltYWdlRGF0YV8xeDFfbm9uX3RyYW5zcGFyZW50X25vbl9ibGFjaygpIHsK
KyAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICB2YXIg
Y3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgIHZhciBpbWFnZWRhdGEgPSBjdHguY3Jl
YXRlSW1hZ2VEYXRhKDEsIDEpOworICBpbWFnZWRhdGEuZGF0YVswXSA9IDEwMDsKKyAgaW1hZ2Vk
YXRhLmRhdGFbMV0gPSAxMDE7CisgIGltYWdlZGF0YS5kYXRhWzJdID0gMTAyOworICBpbWFnZWRh
dGEuZGF0YVszXSA9IDEwMzsKKyAgcmV0dXJuIGltYWdlZGF0YTsKK30KK2NoZWNrKCdJbWFnZURh
dGEgMXgxIG5vbi10cmFuc3BhcmVudCBub24tYmxhY2snLCBmdW5jX0ltYWdlRGF0YV8xeDFfbm9u
X3RyYW5zcGFyZW50X25vbl9ibGFjaywgY29tcGFyZV9JbWFnZURhdGEpOworYXN5bmNfdGVzdChm
dW5jdGlvbih0ZXN0X29iaikgeworICBjaGVjayh0ZXN0X29iai5uYW1lLCBbdGVzdF9vYmouc3Rl
cChmdW5jX0ltYWdlRGF0YV8xeDFfdHJhbnNwYXJlbnRfYmxhY2spXSwgY29tcGFyZV9BcnJheShl
bnVtZXJhdGVfcHJvcHMoY29tcGFyZV9JbWFnZURhdGEpKSwgdGVzdF9vYmopOworfSwgJ0FycmF5
IEltYWdlRGF0YSBvYmplY3QsIEltYWdlRGF0YSAxeDEgdHJhbnNwYXJlbnQgYmxhY2snKTsKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odGVzdF9vYmopIHsKKyAgY2hlY2sodGVzdF9vYmoubmFtZSwgW3Rl
c3Rfb2JqLnN0ZXAoZnVuY19JbWFnZURhdGFfMXgxX25vbl90cmFuc3BhcmVudF9ub25fYmxhY2sp
XSwgY29tcGFyZV9BcnJheShlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9JbWFnZURhdGEpKSwgdGVz
dF9vYmopOworfSwgJ0FycmF5IEltYWdlRGF0YSBvYmplY3QsIEltYWdlRGF0YSAxeDEgbm9uLXRy
YW5zcGFyZW50IG5vbi1ibGFjaycpOworYXN5bmNfdGVzdChmdW5jdGlvbih0ZXN0X29iaikgewor
ICBjaGVjayh0ZXN0X29iai5uYW1lLCB7J3gnOnRlc3Rfb2JqLnN0ZXAoZnVuY19JbWFnZURhdGFf
MXgxX3RyYW5zcGFyZW50X2JsYWNrKX0sIGNvbXBhcmVfT2JqZWN0KGVudW1lcmF0ZV9wcm9wcyhj
b21wYXJlX0ltYWdlRGF0YSkpLCB0ZXN0X29iaik7Cit9LCAnT2JqZWN0IEltYWdlRGF0YSBvYmpl
Y3QsIEltYWdlRGF0YSAxeDEgdHJhbnNwYXJlbnQgYmxhY2snKTsKK2FzeW5jX3Rlc3QoZnVuY3Rp
b24odGVzdF9vYmopIHsKKyAgY2hlY2sodGVzdF9vYmoubmFtZSwgeyd4Jzp0ZXN0X29iai5zdGVw
KGZ1bmNfSW1hZ2VEYXRhXzF4MV9ub25fdHJhbnNwYXJlbnRfbm9uX2JsYWNrKX0sIGNvbXBhcmVf
T2JqZWN0KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0ltYWdlRGF0YSkpLCB0ZXN0X29iaik7Cit9
LCAnT2JqZWN0IEltYWdlRGF0YSBvYmplY3QsIEltYWdlRGF0YSAxeDEgbm9uLXRyYW5zcGFyZW50
IG5vbi1ibGFjaycpOworCitmdW5jdGlvbiBjb21wYXJlX0ltYWdlQml0bWFwKGFjdHVhbCwgaW5w
dXQsIHRlc3Rfb2JqKSB7CisgIGlmICh0eXBlb2YgYWN0dWFsID09PSAnc3RyaW5nJykKKyAgICBh
c3NlcnRfdW5yZWFjaGVkKGFjdHVhbCk7CisgIGFzc2VydF9lcXVhbHMoYWN0dWFsIGluc3RhbmNl
b2YgSW1hZ2VCaXRtYXAsICdpbnN0YW5jZW9mIEltYWdlQml0bWFwJyk7CisgIGFzc2VydF9ub3Rf
ZXF1YWxzKGFjdHVhbCwgaW5wdXQpOworICAvLyBYWFggcGFpbnQgdGhlIEltYWdlQml0bWFwIG9u
IGEgY2FudmFzIGFuZCBjaGVjayB0aGUgZGF0YQorICBpZiAodGVzdF9vYmopCisgICAgdGVzdF9v
YmouZG9uZSgpOworfQorZnVuY3Rpb24gZ2V0X2NhbnZhc18xeDFfdHJhbnNwYXJlbnRfYmxhY2so
KSB7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAg
Y2FudmFzLndpZHRoID0gMTsKKyAgY2FudmFzLmhlaWdodCA9IDE7CisgIHJldHVybiBjYW52YXM7
Cit9Cithc3luY190ZXN0KGZ1bmN0aW9uKHRlc3Rfb2JqKSB7CisgIHZhciBjYW52YXMgPSBnZXRf
Y2FudmFzXzF4MV90cmFuc3BhcmVudF9ibGFjaygpOworICBjcmVhdGVJbWFnZUJpdG1hcChjYW52
YXMsIGZ1bmN0aW9uKGltYWdlKSB7IGNoZWNrKHRlc3Rfb2JqLm5hbWUsIGltYWdlLCBjb21wYXJl
X0ltYWdlQml0bWFwLCB0ZXN0X29iaik7IH0pOworfSwgJ0ltYWdlQml0bWFwIDF4MSB0cmFuc3Bh
cmVudCBibGFjaycpOworZnVuY3Rpb24gZ2V0X2NhbnZhc18xeDFfbm9uX3RyYW5zcGFyZW50X25v
bl9ibGFjaygpIHsKKyAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZh
cycpOworICBjYW52YXMud2lkdGggPSAxOworICBjYW52YXMuaGVpZ2h0ID0gMTsKKyAgdmFyIGN0
eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICB2YXIgaW1hZ2VkYXRhID0gY3R4LmdldElt
YWdlRGF0YSgwLCAwLCAxLCAxKTsKKyAgaW1hZ2VkYXRhLmRhdGFbMF0gPSAxMDA7CisgIGltYWdl
ZGF0YS5kYXRhWzFdID0gMTAxOworICBpbWFnZWRhdGEuZGF0YVsyXSA9IDEwMjsKKyAgaW1hZ2Vk
YXRhLmRhdGFbM10gPSAxMDM7CisgIHJldHVybiBjYW52YXM7Cit9Cithc3luY190ZXN0KGZ1bmN0
aW9uKHRlc3Rfb2JqKSB7CisgIHZhciBjYW52YXMgPSBnZXRfY2FudmFzXzF4MV9ub25fdHJhbnNw
YXJlbnRfbm9uX2JsYWNrKCk7CisgIGNyZWF0ZUltYWdlQml0bWFwKGNhbnZhcywgZnVuY3Rpb24o
aW1hZ2UpIHsgY2hlY2sodGVzdF9vYmoubmFtZSwgaW1hZ2UsIGNvbXBhcmVfSW1hZ2VCaXRtYXAs
IHRlc3Rfb2JqKTsgfSk7Cit9LCAnSW1hZ2VCaXRtYXAgMXgxIG5vbi10cmFuc3BhcmVudCBub24t
YmxhY2snKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0ZXN0X29iaikgeworICB2YXIgY2FudmFz
ID0gZ2V0X2NhbnZhc18xeDFfdHJhbnNwYXJlbnRfYmxhY2soKTsKKyAgY3JlYXRlSW1hZ2VCaXRt
YXAoY2FudmFzLCBmdW5jdGlvbihpbWFnZSkgeyBjaGVjayh0ZXN0X29iai5uYW1lLCBbaW1hZ2Vd
LCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21wYXJlX0ltYWdlQml0bWFwKSksIHRl
c3Rfb2JqKTsgfSk7Cit9LCAnQXJyYXkgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAx
eDEgdHJhbnNwYXJlbnQgYmxhY2snKTsKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odGVzdF9vYmopIHsK
KyAgdmFyIGNhbnZhcyA9IGdldF9jYW52YXNfMXgxX25vbl90cmFuc3BhcmVudF9ub25fYmxhY2so
KTsKKyAgY3JlYXRlSW1hZ2VCaXRtYXAoY2FudmFzLCBmdW5jdGlvbihpbWFnZSkgeyBjaGVjayh0
ZXN0X29iai5uYW1lLCBbaW1hZ2VdLCBjb21wYXJlX0FycmF5KGVudW1lcmF0ZV9wcm9wcyhjb21w
YXJlX0ltYWdlQml0bWFwKSksIHRlc3Rfb2JqKTsgfSk7Cit9LCAnQXJyYXkgSW1hZ2VCaXRtYXAg
b2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjaycpOworCith
c3luY190ZXN0KGZ1bmN0aW9uKHRlc3Rfb2JqKSB7CisgIHZhciBjYW52YXMgPSBnZXRfY2FudmFz
XzF4MV90cmFuc3BhcmVudF9ibGFjaygpOworICBjcmVhdGVJbWFnZUJpdG1hcChjYW52YXMsIGZ1
bmN0aW9uKGltYWdlKSB7IGNoZWNrKHRlc3Rfb2JqLm5hbWUsIHsneCc6aW1hZ2V9LCBjb21wYXJl
X09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFyZV9JbWFnZUJpdG1hcCkpLCB0ZXN0X29iaik7
IH0pOworfSwgJ09iamVjdCBJbWFnZUJpdG1hcCBvYmplY3QsIEltYWdlQml0bWFwIDF4MSB0cmFu
c3BhcmVudCBibGFjaycpOworYXN5bmNfdGVzdChmdW5jdGlvbih0ZXN0X29iaikgeworICB2YXIg
Y2FudmFzID0gZ2V0X2NhbnZhc18xeDFfbm9uX3RyYW5zcGFyZW50X25vbl9ibGFjaygpOworICBj
cmVhdGVJbWFnZUJpdG1hcChjYW52YXMsIGZ1bmN0aW9uKGltYWdlKSB7IGNoZWNrKHRlc3Rfb2Jq
Lm5hbWUsIHsneCc6aW1hZ2V9LCBjb21wYXJlX09iamVjdChlbnVtZXJhdGVfcHJvcHMoY29tcGFy
ZV9JbWFnZUJpdG1hcCkpLCB0ZXN0X29iaik7IH0pOworfSwgJ09iamVjdCBJbWFnZUJpdG1hcCBv
YmplY3QsIEltYWdlQml0bWFwIDF4MSBub24tdHJhbnNwYXJlbnQgbm9uLWJsYWNrJyk7CisKK2No
ZWNrKCdBcnJheSBzcGFyc2UnLCBuZXcgQXJyYXkoMTApLCBjb21wYXJlX0FycmF5KGVudW1lcmF0
ZV9wcm9wcyhjb21wYXJlX3ByaW1pdGl2ZSkpKTsKK2NoZWNrKCdBcnJheSB3aXRoIG5vbi1pbmRl
eCBwcm9wZXJ0eScsIGZ1bmN0aW9uKCkgeworICB2YXIgcnYgPSBbXTsKKyAgcnYuZm9vID0gJ2Jh
cic7CisgIHJldHVybiBydjsKK30sIGNvbXBhcmVfQXJyYXkoZW51bWVyYXRlX3Byb3BzKGNvbXBh
cmVfcHJpbWl0aXZlKSkpOworY2hlY2soJ09iamVjdCB3aXRoIGluZGV4IHByb3BlcnR5IGFuZCBs
ZW5ndGgnLCB7JzAnOidmb28nLCAnbGVuZ3RoJzoxfSwgY29tcGFyZV9PYmplY3QoZW51bWVyYXRl
X3Byb3BzKGNvbXBhcmVfcHJpbWl0aXZlKSkpOworZnVuY3Rpb24gY2hlY2tfY2lyY3VsYXJfcHJv
cGVydHkocHJvcCkgeworICByZXR1cm4gZnVuY3Rpb24oYWN0dWFsKSB7CisgICAgYXNzZXJ0X2Vx
dWFscyhhY3R1YWxbcHJvcF0sIGFjdHVhbCk7CisgIH07Cit9CitjaGVjaygnQXJyYXkgd2l0aCBj
aXJjdWxhciByZWZlcmVuY2UnLCBmdW5jdGlvbigpIHsKKyAgdmFyIHJ2ID0gW107CisgIHJ2WzBd
ID0gcnY7CisgIHJldHVybiBydjsKK30sIGNvbXBhcmVfQXJyYXkoY2hlY2tfY2lyY3VsYXJfcHJv
cGVydHkoJzAnKSkpOworY2hlY2soJ09iamVjdCB3aXRoIGNpcmN1bGFyIHJlZmVyZW5jZScsIGZ1
bmN0aW9uKCkgeworICB2YXIgcnYgPSB7fTsKKyAgcnZbJ3gnXSA9IHJ2OworICByZXR1cm4gcnY7
Cit9LCBjb21wYXJlX09iamVjdChjaGVja19jaXJjdWxhcl9wcm9wZXJ0eSgneCcpKSk7CitmdW5j
dGlvbiBjaGVja19pZGVudGljYWxfcHJvcGVydHlfdmFsdWVzKHByb3AxLCBwcm9wMikgeworICBy
ZXR1cm4gZnVuY3Rpb24oYWN0dWFsKSB7CisgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWxbcHJvcDFd
LCBhY3R1YWxbcHJvcDJdKTsKKyAgfTsKK30KK2NoZWNrKCdBcnJheSB3aXRoIGlkZW50aWNhbCBw
cm9wZXJ0eSB2YWx1ZXMnLCBmdW5jdGlvbigpIHsKKyAgdmFyIG9iaiA9IHt9CisgIHJldHVybiBb
b2JqLCBvYmpdOworfSwgY29tcGFyZV9BcnJheShjaGVja19pZGVudGljYWxfcHJvcGVydHlfdmFs
dWVzKCcwJywgJzEnKSkpOworY2hlY2soJ09iamVjdCB3aXRoIGlkZW50aWNhbCBwcm9wZXJ0eSB2
YWx1ZXMnLCBmdW5jdGlvbigpIHsKKyAgdmFyIG9iaiA9IHt9CisgIHJldHVybiB7J3gnOm9iaiwg
J3knOm9ian07Cit9LCBjb21wYXJlX09iamVjdChjaGVja19pZGVudGljYWxfcHJvcGVydHlfdmFs
dWVzKCd4JywgJ3knKSkpOworCitmdW5jdGlvbiBjaGVja19hYnNlbnRfcHJvcGVydHkocHJvcCkg
eworICByZXR1cm4gZnVuY3Rpb24oYWN0dWFsKSB7CisgICAgYXNzZXJ0X2ZhbHNlKHByb3AgaW4g
YWN0dWFsKTsKKyAgfTsKK30KK2NoZWNrKCdPYmplY3Qgd2l0aCBwcm9wZXJ0eSBvbiBwcm90b3R5
cGUnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEZvbyA9IGZ1bmN0aW9uKCkge307CisgIEZvby5wcm90
b3R5cGUgPSB7J2Zvbyc6J2Jhcid9OworICByZXR1cm4gbmV3IEZvbygpOworfSwgY29tcGFyZV9P
YmplY3QoY2hlY2tfYWJzZW50X3Byb3BlcnR5KCdmb28nKSkpOworCitjaGVjaygnT2JqZWN0IHdp
dGggbm9uLWVudW1lcmFibGUgcHJvcGVydHknLCBmdW5jdGlvbigpIHsKKyAgdmFyIHJ2ID0ge307
CisgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShydiwgJ2ZvbycsIHt2YWx1ZTonYmFyJywgZW51bWVy
YWJsZTpmYWxzZSwgd3JpdGFibGU6dHJ1ZSwgY29uZmlndXJhYmxlOnRydWV9KTsKKyAgcmV0dXJu
IHJ2OworfSwgY29tcGFyZV9PYmplY3QoY2hlY2tfYWJzZW50X3Byb3BlcnR5KCdmb28nKSkpOwor
CitmdW5jdGlvbiBjaGVja193cml0YWJsZV9wcm9wZXJ0eShwcm9wKSB7CisgIHJldHVybiBmdW5j
dGlvbihhY3R1YWwsIGlucHV0KSB7CisgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWxbcHJvcF0sIGlu
cHV0W3Byb3BdKTsKKyAgICBhY3R1YWxbcHJvcF0gKz0gJyBiYXonOworICAgIGFzc2VydF9lcXVh
bHMoYWN0dWFsW3Byb3BdLCBpbnB1dFtwcm9wXSArICcgYmF6Jyk7CisgIH07Cit9CitjaGVjaygn
T2JqZWN0IHdpdGggbm9uLXdyaXRhYmxlIHByb3BlcnR5JywgZnVuY3Rpb24oKSB7CisgIHZhciBy
diA9IHt9OworICBPYmplY3QuZGVmaW5lUHJvcGVydHkocnYsICdmb28nLCB7dmFsdWU6J2Jhcics
IGVudW1lcmFibGU6dHJ1ZSwgd3JpdGFibGU6ZmFsc2UsIGNvbmZpZ3VyYWJsZTp0cnVlfSk7Cisg
IHJldHVybiBydjsKK30sIGNvbXBhcmVfT2JqZWN0KGNoZWNrX3dyaXRhYmxlX3Byb3BlcnR5KCdm
b28nKSkpOworCitmdW5jdGlvbiBjaGVja19jb25maWd1cmFibGVfcHJvcGVydHkocHJvcCkgewor
ICByZXR1cm4gZnVuY3Rpb24oYWN0dWFsLCBpbnB1dCkgeworICAgIGFzc2VydF9lcXVhbHMoYWN0
dWFsW3Byb3BdLCBpbnB1dFtwcm9wXSk7CisgICAgZGVsZXRlIGFjdHVhbFtwcm9wXTsKKyAgICBh
c3NlcnRfZmFsc2UoJ3Byb3AnIGluIGFjdHVhbCk7CisgIH07Cit9CitjaGVjaygnT2JqZWN0IHdp
dGggbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0eScsIGZ1bmN0aW9uKCkgeworICB2YXIgcnYgPSB7
fTsKKyAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJ2LCAnZm9vJywge3ZhbHVlOidiYXInLCBlbnVt
ZXJhYmxlOnRydWUsIHdyaXRhYmxlOnRydWUsIGNvbmZpZ3VyYWJsZTpmYWxzZX0pOworICByZXR1
cm4gcnY7Cit9LCBjb21wYXJlX09iamVjdChjaGVja19jb25maWd1cmFibGVfcHJvcGVydHkoJ2Zv
bycpKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvZGVkaWNhdGVkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9zZW1hbnRpY3Mvc3RydWN0dXJlZC1jbG9uZS9kZWRpY2F0ZWQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDU3YjcxZDQxNjYxZTU2YTQ1MzhjNGFhZjllMGQ5NjU3MTczY2RkZmYuLmNhZDIzNGQzZWNl
ZmJiNWQ1N2JhMzg3ZmU2YjI3NGFkYmI5ZjRjMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3RydWN0dXJl
ZC1jbG9uZS9kZWRpY2F0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3RydWN0dXJlZC1jbG9u
ZS9kZWRpY2F0ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNiBAQAogCitIYXJuZXNzIEVycm9y
IChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKwogUEFTUyBwcmltaXRpdmUgdW5kZWZpbmVkIAog
UEFTUyBwcmltaXRpdmUgbnVsbCAKIFBBU1MgcHJpbWl0aXZlIHRydWUgCkBAIC01MCw1MSArNTIs
NTcgQEAgUEFTUyBEYXRlIDguNjRlMTUKIFBBU1MgQXJyYXkgRGF0ZSBvYmplY3RzIAogUEFTUyBP
YmplY3QgRGF0ZSBvYmplY3RzIAogUEFTUyBSZWdFeHAgZmxhZ3MgYW5kIGxhc3RJbmRleCAKLUZB
SUwgUmVnRXhwIHN0aWNreSBmbGFnIGFzc2VydF9lcXVhbHM6IHN0aWNreSBleHBlY3RlZCB0cnVl
IGJ1dCBnb3QgZmFsc2UKLUZBSUwgUmVnRXhwIHVuaWNvZGUgZmxhZyBhc3NlcnRfZXF1YWxzOiB1
bmljb2RlIGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQorRkFJTCBSZWdFeHAgc3RpY2t5IGZs
YWcgYXNzZXJ0X3VucmVhY2hlZDogRkFJTDogdW5rbm93biB0ZXN0IFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQorRkFJTCBSZWdFeHAgdW5pY29kZSBmbGFnIGFzc2VydF91bnJlYWNoZWQ6IEZBSUw6
IHVua25vd24gdGVzdCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIFBBU1MgUmVnRXhwIGVtcHR5
IAogUEFTUyBSZWdFeHAgc2xhc2ggCiBQQVNTIFJlZ0V4cCBuZXcgbGluZSAKIFBBU1MgQXJyYXkg
UmVnRXhwIG9iamVjdCwgUmVnRXhwIGZsYWdzIGFuZCBsYXN0SW5kZXggCi1GQUlMIEFycmF5IFJl
Z0V4cCBvYmplY3QsIFJlZ0V4cCBzdGlja3kgZmxhZyBhc3NlcnRfZXF1YWxzOiBzdGlja3kgZXhw
ZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCi1GQUlMIEFycmF5IFJlZ0V4cCBvYmplY3QsIFJlZ0V4
cCB1bmljb2RlIGZsYWcgYXNzZXJ0X2VxdWFsczogdW5pY29kZSBleHBlY3RlZCB0cnVlIGJ1dCBn
b3QgZmFsc2UKK0ZBSUwgQXJyYXkgUmVnRXhwIG9iamVjdCwgUmVnRXhwIHN0aWNreSBmbGFnIGFz
c2VydF91bnJlYWNoZWQ6IEZBSUw6IHVua25vd24gdGVzdCBSZWFjaGVkIHVucmVhY2hhYmxlIGNv
ZGUKK0ZBSUwgQXJyYXkgUmVnRXhwIG9iamVjdCwgUmVnRXhwIHVuaWNvZGUgZmxhZyBhc3NlcnRf
dW5yZWFjaGVkOiBGQUlMOiB1bmtub3duIHRlc3QgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiBQ
QVNTIEFycmF5IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCBlbXB0eSAKIFBBU1MgQXJyYXkgUmVnRXhw
IG9iamVjdCwgUmVnRXhwIHNsYXNoIAogUEFTUyBBcnJheSBSZWdFeHAgb2JqZWN0LCBSZWdFeHAg
bmV3IGxpbmUgCiBQQVNTIE9iamVjdCBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgZmxhZ3MgYW5kIGxh
c3RJbmRleCAKLUZBSUwgT2JqZWN0IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCBzdGlja3kgZmxhZyBh
c3NlcnRfZXF1YWxzOiBzdGlja3kgZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCi1GQUlMIE9i
amVjdCBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgdW5pY29kZSBmbGFnIGFzc2VydF9lcXVhbHM6IHVu
aWNvZGUgZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCitGQUlMIE9iamVjdCBSZWdFeHAgb2Jq
ZWN0LCBSZWdFeHAgc3RpY2t5IGZsYWcgYXNzZXJ0X3VucmVhY2hlZDogRkFJTDogdW5rbm93biB0
ZXN0IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorRkFJTCBPYmplY3QgUmVnRXhwIG9iamVjdCwg
UmVnRXhwIHVuaWNvZGUgZmxhZyBhc3NlcnRfdW5yZWFjaGVkOiBGQUlMOiB1bmtub3duIHRlc3Qg
UmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiBQQVNTIE9iamVjdCBSZWdFeHAgb2JqZWN0LCBSZWdF
eHAgZW1wdHkgCiBQQVNTIE9iamVjdCBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgc2xhc2ggCiBQQVNT
IE9iamVjdCBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgbmV3IGxpbmUgCi1QQVNTIEJsb2IgYmFzaWMg
Ci1QQVNTIEJsb2IgdW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpIAotUEFT
UyBCbG9iIHVucGFpcmVkIGxvdyBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpIAotUEFTUyBCbG9i
IHBhaXJlZCBzdXJyb2dhdGVzIChpbnZhbGlkIHV0Zi04KSAKLVBBU1MgQmxvYiBlbXB0eSAKLVBB
U1MgQmxvYiBOVUwgCi1QQVNTIEFycmF5IEJsb2Igb2JqZWN0LCBCbG9iIGJhc2ljIAotUEFTUyBB
cnJheSBCbG9iIG9iamVjdCwgQmxvYiB1bnBhaXJlZCBoaWdoIHN1cnJvZ2F0ZSAoaW52YWxpZCB1
dGYtOCkgCi1QQVNTIEFycmF5IEJsb2Igb2JqZWN0LCBCbG9iIHVucGFpcmVkIGxvdyBzdXJyb2dh
dGUgKGludmFsaWQgdXRmLTgpIAotUEFTUyBBcnJheSBCbG9iIG9iamVjdCwgQmxvYiBwYWlyZWQg
c3Vycm9nYXRlcyAoaW52YWxpZCB1dGYtOCkgCi1QQVNTIEFycmF5IEJsb2Igb2JqZWN0LCBCbG9i
IGVtcHR5IAotUEFTUyBBcnJheSBCbG9iIG9iamVjdCwgQmxvYiBOVUwgCi1QQVNTIE9iamVjdCBC
bG9iIG9iamVjdCwgQmxvYiBiYXNpYyAKLVBBU1MgT2JqZWN0IEJsb2Igb2JqZWN0LCBCbG9iIHVu
cGFpcmVkIGhpZ2ggc3Vycm9nYXRlIChpbnZhbGlkIHV0Zi04KSAKLVBBU1MgT2JqZWN0IEJsb2Ig
b2JqZWN0LCBCbG9iIHVucGFpcmVkIGxvdyBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpIAotUEFT
UyBPYmplY3QgQmxvYiBvYmplY3QsIEJsb2IgcGFpcmVkIHN1cnJvZ2F0ZXMgKGludmFsaWQgdXRm
LTgpIAotUEFTUyBPYmplY3QgQmxvYiBvYmplY3QsIEJsb2IgZW1wdHkgCi1QQVNTIE9iamVjdCBC
bG9iIG9iamVjdCwgQmxvYiBOVUwgCi1QQVNTIEZpbGUgYmFzaWMgCi1QQVNTIEZpbGVMaXN0IGVt
cHR5IAotUEFTUyBBcnJheSBGaWxlTGlzdCBvYmplY3QsIEZpbGVMaXN0IGVtcHR5IAotUEFTUyBP
YmplY3QgRmlsZUxpc3Qgb2JqZWN0LCBGaWxlTGlzdCBlbXB0eSAKK0ZBSUwgQmxvYiBiYXNpYyBh
c3NlcnRfdW5yZWFjaGVkOiBGQUlMIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBGaWxlIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorRkFJTCBCbG9iIHVucGFpcmVkIGhpZ2gg
c3Vycm9nYXRlIChpbnZhbGlkIHV0Zi04KSBhc3NlcnRfdW5yZWFjaGVkOiBGQUlMIFJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBGaWxlIFJlYWNoZWQgdW5yZWFjaGFibGUgY29k
ZQorRkFJTCBCbG9iIHVucGFpcmVkIGxvdyBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpIGFzc2Vy
dF91bnJlYWNoZWQ6IEZBSUwgUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEZp
bGUgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitGQUlMIEJsb2IgcGFpcmVkIHN1cnJvZ2F0ZXMg
KGludmFsaWQgdXRmLTgpIGFzc2VydF91bnJlYWNoZWQ6IEZBSUwgUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IEZpbGUgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitGQUlMIEJs
b2IgZW1wdHkgYXNzZXJ0X3VucmVhY2hlZDogRkFJTCBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogRmlsZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZBSUwgQmxvYiBOVUwg
YXNzZXJ0X3VucmVhY2hlZDogRkFJTCBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogRmlsZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZBSUwgQXJyYXkgQmxvYiBvYmplY3Qs
IEJsb2IgYmFzaWMgYXNzZXJ0X3VucmVhY2hlZDogRkFJTCBSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogRmlsZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZBSUwgQXJyYXkg
QmxvYiBvYmplY3QsIEJsb2IgdW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgp
IGFzc2VydF91bnJlYWNoZWQ6IEZBSUwgUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IEZpbGUgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitGQUlMIEFycmF5IEJsb2Igb2JqZWN0
LCBCbG9iIHVucGFpcmVkIGxvdyBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpIGFzc2VydF91bnJl
YWNoZWQ6IEZBSUwgUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEZpbGUgUmVh
Y2hlZCB1bnJlYWNoYWJsZSBjb2RlCitGQUlMIEFycmF5IEJsb2Igb2JqZWN0LCBCbG9iIHBhaXJl
ZCBzdXJyb2dhdGVzIChpbnZhbGlkIHV0Zi04KSBhc3NlcnRfdW5yZWFjaGVkOiBGQUlMIFJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBGaWxlIFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQorRkFJTCBBcnJheSBCbG9iIG9iamVjdCwgQmxvYiBlbXB0eSBhc3NlcnRfdW5yZWFjaGVk
OiBGQUlMIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBGaWxlIFJlYWNoZWQg
dW5yZWFjaGFibGUgY29kZQorRkFJTCBBcnJheSBCbG9iIG9iamVjdCwgQmxvYiBOVUwgYXNzZXJ0
X3VucmVhY2hlZDogRkFJTCBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRmls
ZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZBSUwgT2JqZWN0IEJsb2Igb2JqZWN0LCBCbG9i
IGJhc2ljIGFzc2VydF91bnJlYWNoZWQ6IEZBSUwgUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IEZpbGUgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitGQUlMIE9iamVjdCBCbG9i
IG9iamVjdCwgQmxvYiB1bnBhaXJlZCBoaWdoIHN1cnJvZ2F0ZSAoaW52YWxpZCB1dGYtOCkgYXNz
ZXJ0X3VucmVhY2hlZDogRkFJTCBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
RmlsZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZBSUwgT2JqZWN0IEJsb2Igb2JqZWN0LCBC
bG9iIHVucGFpcmVkIGxvdyBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpIGFzc2VydF91bnJlYWNo
ZWQ6IEZBSUwgUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEZpbGUgUmVhY2hl
ZCB1bnJlYWNoYWJsZSBjb2RlCitGQUlMIE9iamVjdCBCbG9iIG9iamVjdCwgQmxvYiBwYWlyZWQg
c3Vycm9nYXRlcyAoaW52YWxpZCB1dGYtOCkgYXNzZXJ0X3VucmVhY2hlZDogRkFJTCBSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRmlsZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNv
ZGUKK0ZBSUwgT2JqZWN0IEJsb2Igb2JqZWN0LCBCbG9iIGVtcHR5IGFzc2VydF91bnJlYWNoZWQ6
IEZBSUwgUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IEZpbGUgUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCitGQUlMIE9iamVjdCBCbG9iIG9iamVjdCwgQmxvYiBOVUwgYXNzZXJ0
X3VucmVhY2hlZDogRkFJTCBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRmls
ZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZBSUwgRmlsZSBiYXNpYyBhc3NlcnRfdHJ1ZTog
aW5zdGFuY2VvZiBGaWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIEZpbGVMaXN0IGVt
cHR5IGFzc2VydF91bnJlYWNoZWQ6IEZBSUwgUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IEZpbGVMaXN0IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorRkFJTCBBcnJheSBGaWxl
TGlzdCBvYmplY3QsIEZpbGVMaXN0IGVtcHR5IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBjbG9uZWQu
CitGQUlMIE9iamVjdCBGaWxlTGlzdCBvYmplY3QsIEZpbGVMaXN0IGVtcHR5IFRoZSBvYmplY3Qg
Y2FuIG5vdCBiZSBjbG9uZWQuCiBQQVNTIEltYWdlRGF0YSAxeDEgdHJhbnNwYXJlbnQgYmxhY2sg
CiBQQVNTIEltYWdlRGF0YSAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjayAKIFBBU1MgQXJy
YXkgSW1hZ2VEYXRhIG9iamVjdCwgSW1hZ2VEYXRhIDF4MSB0cmFuc3BhcmVudCBibGFjayAKIFBB
U1MgQXJyYXkgSW1hZ2VEYXRhIG9iamVjdCwgSW1hZ2VEYXRhIDF4MSBub24tdHJhbnNwYXJlbnQg
bm9uLWJsYWNrIAogUEFTUyBPYmplY3QgSW1hZ2VEYXRhIG9iamVjdCwgSW1hZ2VEYXRhIDF4MSB0
cmFuc3BhcmVudCBibGFjayAKIFBBU1MgT2JqZWN0IEltYWdlRGF0YSBvYmplY3QsIEltYWdlRGF0
YSAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjayAKK1RJTUVPVVQgSW1hZ2VCaXRtYXAgMXgx
IHRyYW5zcGFyZW50IGJsYWNrIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIEltYWdlQml0bWFwIDF4
MSBub24tdHJhbnNwYXJlbnQgbm9uLWJsYWNrIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIEFycmF5
IEltYWdlQml0bWFwIG9iamVjdCwgSW1hZ2VCaXRtYXAgMXgxIHRyYW5zcGFyZW50IGJsYWNrIFRl
c3QgdGltZWQgb3V0CitUSU1FT1VUIEFycmF5IEltYWdlQml0bWFwIG9iamVjdCwgSW1hZ2VCaXRt
YXAgMXgxIG5vbi10cmFuc3BhcmVudCBub24tYmxhY2sgVGVzdCB0aW1lZCBvdXQKK1RJTUVPVVQg
T2JqZWN0IEltYWdlQml0bWFwIG9iamVjdCwgSW1hZ2VCaXRtYXAgMXgxIHRyYW5zcGFyZW50IGJs
YWNrIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIE9iamVjdCBJbWFnZUJpdG1hcCBvYmplY3QsIElt
YWdlQml0bWFwIDF4MSBub24tdHJhbnNwYXJlbnQgbm9uLWJsYWNrIFRlc3QgdGltZWQgb3V0CiBQ
QVNTIEFycmF5IHNwYXJzZSAKIFBBU1MgQXJyYXkgd2l0aCBub24taW5kZXggcHJvcGVydHkgCiBQ
QVNTIE9iamVjdCB3aXRoIGluZGV4IHByb3BlcnR5IGFuZCBsZW5ndGggCkBAIC0xMDYsMTIgKzEx
NCw0IEBAIFBBU1MgT2JqZWN0IHdpdGggcHJvcGVydHkgb24gcHJvdG90eXBlCiBQQVNTIE9iamVj
dCB3aXRoIG5vbi1lbnVtZXJhYmxlIHByb3BlcnR5IAogUEFTUyBPYmplY3Qgd2l0aCBub24td3Jp
dGFibGUgcHJvcGVydHkgCiBQQVNTIE9iamVjdCB3aXRoIG5vbi1jb25maWd1cmFibGUgcHJvcGVy
dHkgCi1GQUlMIEltYWdlQml0bWFwIDF4MSB0cmFuc3BhcmVudCBibGFjayBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IiCi1GQUlMIEltYWdlQml0bWFwIDF4MSBub24tdHJhbnNwYXJlbnQgbm9uLWJsYWNrIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogVHlwZSBlcnJvciIKLUZBSUwgQXJyYXkgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJp
dG1hcCAxeDEgdHJhbnNwYXJlbnQgYmxhY2sgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBBcnJh
eSBJbWFnZUJpdG1hcCBvYmplY3QsIEltYWdlQml0bWFwIDF4MSB0cmFuc3BhcmVudCBub24tYmxh
Y2sgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBPYmplY3QgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJ
bWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQgYmxhY2sgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJ
TCBPYmplY3QgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQg
bm9uLWJsYWNrIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLVBBU1MgQXJyYXlCdWZmZXIgCi1QQVNTIE1l
c3NhZ2VQb3J0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvZGVkaWNhdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvZGVkaWNhdGVkLmh0bWwKaW5kZXggMmYxNzMy
YzEzYjNkMzMwZjIxNzZkYzlmNDVhNTUyZmI1MDZkNTE0ZS4uNWRkOGMzNTYxZTk2MzRmMjdmMjgw
NGE1NWVmN2U4ODUyOGYyY2M2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL2Rl
ZGljYXRlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3RydWN0dXJlZC1jbG9uZS9kZWRpY2F0ZWQuaHRtbApA
QCAtMiwzMSArMiw4IEBACiA8dGl0bGU+c3RydWN0dXJlZCBjbG9uZSB0byBkZWRpY2F0ZWQgd29y
a2VyPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPS9odG1sL3dlYmFwcGFwaXMvc3RydWN0dXJlZC1jbG9uZS9zdHJ1
Y3R1cmVkLWNsb25lLWJhdHRlcnktb2YtdGVzdHMuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0v
aHRtbC93ZWJhcHBhcGlzL3N0cnVjdHVyZWQtY2xvbmUvc3RydWN0dXJlZC1jbG9uZS1iYXR0ZXJ5
LW9mLXRlc3RzLXdpdGgtdHJhbnNmZXJhYmxlcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9o
dG1sL3dlYmFwcGFwaXMvc3RydWN0dXJlZC1jbG9uZS9zdHJ1Y3R1cmVkLWNsb25lLWJhdHRlcnkt
b2YtdGVzdHMtaGFybmVzcy5qcz48L3NjcmlwdD4KIDxkaXYgaWQ9bG9nPjwvZGl2PgogPHNjcmlw
dD4KLSAgcnVuU3RydWN0dXJlZENsb25lQmF0dGVyeU9mVGVzdHMoewotICAgIHNldHVwKCkgewot
ICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtgCi0gICAgICAgIG9ubWVzc2FnZSA9IGV2ID0+
IHBvc3RNZXNzYWdlKGV2LmRhdGEsIGV2LmRhdGEudHJhbnNmZXIpOwotICAgICAgYF0sIHt0eXBl
OiAndGV4dC9qYXZhc2NyaXB0J30pOwotICAgICAgdGhpcy5ibG9iVVJMID0gVVJMLmNyZWF0ZU9i
amVjdFVSTChibG9iKTsKLSAgICAgIHRoaXMud29ya2VyID0gbmV3IFdvcmtlcih0aGlzLmJsb2JV
UkwpOwotICAgIH0sCi0gICAgc3RydWN0dXJlZENsb25lKGRhdGEsIHRyYW5zZmVyKSB7Ci0gICAg
ICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICAgIHRoaXMud29ya2VyLmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbiBmKGV2KSB7Ci0gICAgICAgICAgdGhp
cy53b3JrZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGYpOwotICAgICAgICAgIHJl
c29sdmUoZXYuZGF0YS5kYXRhKTsKLSAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhp
cy53b3JrZXIucG9zdE1lc3NhZ2Uoe2RhdGEsIHRyYW5zZmVyfSwgdHJhbnNmZXIpOwotICAgICAg
fSk7Ci0gICAgfSwKLSAgICB0ZWFyZG93bigpIHsKLSAgICAgIHRoaXMud29ya2VyLnRlcm1pbmF0
ZSgpOwotICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmJsb2JVUkwpOwotICAgIH0KLSAg
fSk7Cit2YXIgdHlwZSA9ICdkZWRpY2F0ZWQnOwogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iY29t
bW9uLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3RydWN0dXJlZC1jbG9uZS9kZWRp
Y2F0ZWQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvZGVkaWNhdGVkLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ3NDQ1NzhiMjI5NWU0ODdmM2FjNmZiM2Q0Yzc2MGM4YWEwNzUwMWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
c2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvZGVkaWNhdGVkLmpzCkBAIC0wLDAgKzEsNCBAQAor
aW1wb3J0U2NyaXB0cygnd29ya2VyLWNvbW1vbi5qcycpOworb25tZXNzYWdlID0gZnVuY3Rpb24o
ZXYpIHsKKyAgY2hlY2soZXYuZGF0YSwgc2VsZik7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9zdHJ1
Y3R1cmVkLWNsb25lL3NoYXJlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUv
c2hhcmVkLWV4cGVjdGVkLnR4dAppbmRleCA5MzI4NWY4MjRmOTc4OTlmNGY3NWEwNmVmZWY4ZmVj
ZjJlZDkwNzJkLi44YzZiNmM2NGM4Y2FlM2U2MWQxOGQ2NDA1ZDEyMmJjMDBiMjk5NDFhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvc2hhcmVkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvc2VtYW50
aWNzL3N0cnVjdHVyZWQtY2xvbmUvc2hhcmVkLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDExNyBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogU2hhcmVkV29ya2VyCiAKLUZBSUwgc3RydWN0dXJlZCBjbG9uZSB0byBzaGFyZWQg
d29ya2VyIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIK
K0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitGQUlMIHByaW1pdGl2
ZSB1bmRlZmluZWQgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIHByaW1p
dGl2ZSBudWxsIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBwcmltaXRp
dmUgdHJ1ZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgcHJpbWl0aXZl
IGZhbHNlIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBwcmltaXRpdmUg
c3RyaW5nLCBlbXB0eSBzdHJpbmcgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitG
QUlMIHByaW1pdGl2ZSBzdHJpbmcsIGxvbmUgaGlnaCBzdXJyb2dhdGUgQ2FuJ3QgZmluZCB2YXJp
YWJsZTogU2hhcmVkV29ya2VyCitGQUlMIHByaW1pdGl2ZSBzdHJpbmcsIGxvbmUgbG93IHN1cnJv
Z2F0ZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgcHJpbWl0aXZlIHN0
cmluZywgTlVMIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBwcmltaXRp
dmUgc3RyaW5nLCBhc3RyYWwgY2hhcmFjdGVyIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdv
cmtlcgorRkFJTCBwcmltaXRpdmUgbnVtYmVyLCAwLjIgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hh
cmVkV29ya2VyCitGQUlMIHByaW1pdGl2ZSBudW1iZXIsIDAgQ2FuJ3QgZmluZCB2YXJpYWJsZTog
U2hhcmVkV29ya2VyCitGQUlMIHByaW1pdGl2ZSBudW1iZXIsIC0wIENhbid0IGZpbmQgdmFyaWFi
bGU6IFNoYXJlZFdvcmtlcgorRkFJTCBwcmltaXRpdmUgbnVtYmVyLCBOYU4gQ2FuJ3QgZmluZCB2
YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIHByaW1pdGl2ZSBudW1iZXIsIEluZmluaXR5IENh
bid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBwcmltaXRpdmUgbnVtYmVyLCAt
SW5maW5pdHkgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIHByaW1pdGl2
ZSBudW1iZXIsIDkwMDcxOTkyNTQ3NDA5OTIgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29y
a2VyCitGQUlMIHByaW1pdGl2ZSBudW1iZXIsIC05MDA3MTk5MjU0NzQwOTkyIENhbid0IGZpbmQg
dmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBwcmltaXRpdmUgbnVtYmVyLCA5MDA3MTk5MjU0
NzQwOTk0IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBwcmltaXRpdmUg
bnVtYmVyLCAtOTAwNzE5OTI1NDc0MDk5NCBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3Jr
ZXIKK0ZBSUwgQXJyYXkgcHJpbWl0aXZlcyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3Jr
ZXIKK0ZBSUwgT2JqZWN0IHByaW1pdGl2ZXMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29y
a2VyCitGQUlMIEJvb2xlYW4gdHJ1ZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIK
K0ZBSUwgQm9vbGVhbiBmYWxzZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZB
SUwgQXJyYXkgQm9vbGVhbiBvYmplY3RzIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtl
cgorRkFJTCBPYmplY3QgQm9vbGVhbiBvYmplY3RzIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJl
ZFdvcmtlcgorRkFJTCBTdHJpbmcgZW1wdHkgc3RyaW5nIENhbid0IGZpbmQgdmFyaWFibGU6IFNo
YXJlZFdvcmtlcgorRkFJTCBTdHJpbmcgbG9uZSBoaWdoIHN1cnJvZ2F0ZSBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgU3RyaW5nIGxvbmUgbG93IHN1cnJvZ2F0ZSBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgU3RyaW5nIE5VTCBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgU3RyaW5nIGFzdHJhbCBjaGFyYWN0ZXIgQ2Fu
J3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIEFycmF5IFN0cmluZyBvYmplY3Rz
IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBPYmplY3QgU3RyaW5nIG9i
amVjdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIE51bWJlciAwLjIg
Q2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIE51bWJlciAwIENhbid0IGZp
bmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBOdW1iZXIgLTAgQ2FuJ3QgZmluZCB2YXJp
YWJsZTogU2hhcmVkV29ya2VyCitGQUlMIE51bWJlciBOYU4gQ2FuJ3QgZmluZCB2YXJpYWJsZTog
U2hhcmVkV29ya2VyCitGQUlMIE51bWJlciBJbmZpbml0eSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBT
aGFyZWRXb3JrZXIKK0ZBSUwgTnVtYmVyIC1JbmZpbml0eSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBT
aGFyZWRXb3JrZXIKK0ZBSUwgTnVtYmVyIDkwMDcxOTkyNTQ3NDA5OTIgQ2FuJ3QgZmluZCB2YXJp
YWJsZTogU2hhcmVkV29ya2VyCitGQUlMIE51bWJlciAtOTAwNzE5OTI1NDc0MDk5MiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgTnVtYmVyIDkwMDcxOTkyNTQ3NDA5OTQg
Q2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIE51bWJlciAtOTAwNzE5OTI1
NDc0MDk5NCBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgQXJyYXkgTnVt
YmVyIG9iamVjdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIE9iamVj
dCBOdW1iZXIgb2JqZWN0cyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwg
RGF0ZSAwIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBEYXRlIC0wIENh
bid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBEYXRlIC04LjY0ZTE1IENhbid0
IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBEYXRlIDguNjRlMTUgQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIEFycmF5IERhdGUgb2JqZWN0cyBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgT2JqZWN0IERhdGUgb2JqZWN0cyBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgUmVnRXhwIGZsYWdzIGFuZCBsYXN0
SW5kZXggQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIFJlZ0V4cCBzdGlj
a3kgZmxhZyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgUmVnRXhwIHVu
aWNvZGUgZmxhZyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgUmVnRXhw
IGVtcHR5IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBSZWdFeHAgc2xh
c2ggQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIFJlZ0V4cCBuZXcgbGlu
ZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgQXJyYXkgUmVnRXhwIG9i
amVjdCwgUmVnRXhwIGZsYWdzIGFuZCBsYXN0SW5kZXggQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hh
cmVkV29ya2VyCitGQUlMIEFycmF5IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCBzdGlja3kgZmxhZyBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgQXJyYXkgUmVnRXhwIG9iamVj
dCwgUmVnRXhwIHVuaWNvZGUgZmxhZyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIK
K0ZBSUwgQXJyYXkgUmVnRXhwIG9iamVjdCwgUmVnRXhwIGVtcHR5IENhbid0IGZpbmQgdmFyaWFi
bGU6IFNoYXJlZFdvcmtlcgorRkFJTCBBcnJheSBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgc2xhc2gg
Q2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIEFycmF5IFJlZ0V4cCBvYmpl
Y3QsIFJlZ0V4cCBuZXcgbGluZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZB
SUwgT2JqZWN0IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCBmbGFncyBhbmQgbGFzdEluZGV4IENhbid0
IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBPYmplY3QgUmVnRXhwIG9iamVjdCwg
UmVnRXhwIHN0aWNreSBmbGFnIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJ
TCBPYmplY3QgUmVnRXhwIG9iamVjdCwgUmVnRXhwIHVuaWNvZGUgZmxhZyBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgT2JqZWN0IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCBl
bXB0eSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgT2JqZWN0IFJlZ0V4
cCBvYmplY3QsIFJlZ0V4cCBzbGFzaCBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIK
K0ZBSUwgT2JqZWN0IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCBuZXcgbGluZSBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgQmxvYiBiYXNpYyBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBTaGFyZWRXb3JrZXIKK0ZBSUwgQmxvYiB1bnBhaXJlZCBoaWdoIHN1cnJvZ2F0ZSAoaW52YWxp
ZCB1dGYtOCkgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIEJsb2IgdW5w
YWlyZWQgbG93IHN1cnJvZ2F0ZSAoaW52YWxpZCB1dGYtOCkgQ2FuJ3QgZmluZCB2YXJpYWJsZTog
U2hhcmVkV29ya2VyCitGQUlMIEJsb2IgcGFpcmVkIHN1cnJvZ2F0ZXMgKGludmFsaWQgdXRmLTgp
IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBCbG9iIGVtcHR5IENhbid0
IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBCbG9iIE5VTCBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgQXJyYXkgQmxvYiBvYmplY3QsIEJsb2IgYmFzaWMg
Q2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIEFycmF5IEJsb2Igb2JqZWN0
LCBCbG9iIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRlIChpbnZhbGlkIHV0Zi04KSBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgQXJyYXkgQmxvYiBvYmplY3QsIEJsb2IgdW5w
YWlyZWQgbG93IHN1cnJvZ2F0ZSAoaW52YWxpZCB1dGYtOCkgQ2FuJ3QgZmluZCB2YXJpYWJsZTog
U2hhcmVkV29ya2VyCitGQUlMIEFycmF5IEJsb2Igb2JqZWN0LCBCbG9iIHBhaXJlZCBzdXJyb2dh
dGVzIChpbnZhbGlkIHV0Zi04KSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZB
SUwgQXJyYXkgQmxvYiBvYmplY3QsIEJsb2IgZW1wdHkgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hh
cmVkV29ya2VyCitGQUlMIEFycmF5IEJsb2Igb2JqZWN0LCBCbG9iIE5VTCBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgT2JqZWN0IEJsb2Igb2JqZWN0LCBCbG9iIGJhc2lj
IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBPYmplY3QgQmxvYiBvYmpl
Y3QsIEJsb2IgdW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpIENhbid0IGZp
bmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBPYmplY3QgQmxvYiBvYmplY3QsIEJsb2Ig
dW5wYWlyZWQgbG93IHN1cnJvZ2F0ZSAoaW52YWxpZCB1dGYtOCkgQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogU2hhcmVkV29ya2VyCitGQUlMIE9iamVjdCBCbG9iIG9iamVjdCwgQmxvYiBwYWlyZWQgc3Vy
cm9nYXRlcyAoaW52YWxpZCB1dGYtOCkgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2Vy
CitGQUlMIE9iamVjdCBCbG9iIG9iamVjdCwgQmxvYiBlbXB0eSBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBTaGFyZWRXb3JrZXIKK0ZBSUwgT2JqZWN0IEJsb2Igb2JqZWN0LCBCbG9iIE5VTCBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgRmlsZSBiYXNpYyBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgRmlsZUxpc3QgZW1wdHkgQ2FuJ3QgZmluZCB2YXJp
YWJsZTogU2hhcmVkV29ya2VyCitGQUlMIEFycmF5IEZpbGVMaXN0IG9iamVjdCwgRmlsZUxpc3Qg
ZW1wdHkgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIE9iamVjdCBGaWxl
TGlzdCBvYmplY3QsIEZpbGVMaXN0IGVtcHR5IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdv
cmtlcgorRkFJTCBJbWFnZURhdGEgMXgxIHRyYW5zcGFyZW50IGJsYWNrIENhbid0IGZpbmQgdmFy
aWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBJbWFnZURhdGEgMXgxIG5vbi10cmFuc3BhcmVudCBu
b24tYmxhY2sgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIEFycmF5IElt
YWdlRGF0YSBvYmplY3QsIEltYWdlRGF0YSAxeDEgdHJhbnNwYXJlbnQgYmxhY2sgQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIEFycmF5IEltYWdlRGF0YSBvYmplY3QsIElt
YWdlRGF0YSAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjayBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBTaGFyZWRXb3JrZXIKK0ZBSUwgT2JqZWN0IEltYWdlRGF0YSBvYmplY3QsIEltYWdlRGF0YSAx
eDEgdHJhbnNwYXJlbnQgYmxhY2sgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitG
QUlMIE9iamVjdCBJbWFnZURhdGEgb2JqZWN0LCBJbWFnZURhdGEgMXgxIG5vbi10cmFuc3BhcmVu
dCBub24tYmxhY2sgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitUSU1FT1VUIElt
YWdlQml0bWFwIDF4MSB0cmFuc3BhcmVudCBibGFjayBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBJ
bWFnZUJpdG1hcCAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjayBUZXN0IHRpbWVkIG91dAor
VElNRU9VVCBBcnJheSBJbWFnZUJpdG1hcCBvYmplY3QsIEltYWdlQml0bWFwIDF4MSB0cmFuc3Bh
cmVudCBibGFjayBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBBcnJheSBJbWFnZUJpdG1hcCBvYmpl
Y3QsIEltYWdlQml0bWFwIDF4MSBub24tdHJhbnNwYXJlbnQgbm9uLWJsYWNrIFRlc3QgdGltZWQg
b3V0CitUSU1FT1VUIE9iamVjdCBJbWFnZUJpdG1hcCBvYmplY3QsIEltYWdlQml0bWFwIDF4MSB0
cmFuc3BhcmVudCBibGFjayBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBPYmplY3QgSW1hZ2VCaXRt
YXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjayBUZXN0
IHRpbWVkIG91dAorRkFJTCBBcnJheSBzcGFyc2UgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVk
V29ya2VyCitGQUlMIEFycmF5IHdpdGggbm9uLWluZGV4IHByb3BlcnR5IENhbid0IGZpbmQgdmFy
aWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBPYmplY3Qgd2l0aCBpbmRleCBwcm9wZXJ0eSBhbmQg
bGVuZ3RoIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorRkFJTCBBcnJheSB3aXRo
IGNpcmN1bGFyIHJlZmVyZW5jZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZB
SUwgT2JqZWN0IHdpdGggY2lyY3VsYXIgcmVmZXJlbmNlIENhbid0IGZpbmQgdmFyaWFibGU6IFNo
YXJlZFdvcmtlcgorRkFJTCBBcnJheSB3aXRoIGlkZW50aWNhbCBwcm9wZXJ0eSB2YWx1ZXMgQ2Fu
J3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIE9iamVjdCB3aXRoIGlkZW50aWNh
bCBwcm9wZXJ0eSB2YWx1ZXMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlM
IE9iamVjdCB3aXRoIHByb3BlcnR5IG9uIHByb3RvdHlwZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBT
aGFyZWRXb3JrZXIKK0ZBSUwgT2JqZWN0IHdpdGggbm9uLWVudW1lcmFibGUgcHJvcGVydHkgQ2Fu
J3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCitGQUlMIE9iamVjdCB3aXRoIG5vbi13cml0
YWJsZSBwcm9wZXJ0eSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKK0ZBSUwgT2Jq
ZWN0IHdpdGggbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBT
aGFyZWRXb3JrZXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL3NoYXJlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL3NoYXJlZC5odG1sCmluZGV4IDc5M2RhOGZmM2E3
NTQ0NTQwNjZhMjhkNWM1MTRkNGU3ZjlkOGE4NmEuLjZmNzQzNTRkNDgyOGU4NjRiN2RhMTMxMDI5
YmRkODkwMTA0MjI3ZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3RydWN0dXJlZC1jbG9uZS9zaGFyZWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvc2hhcmVkLmh0bWwKQEAgLTIsMzUgKzIs
OCBAQAogPHRpdGxlPnN0cnVjdHVyZWQgY2xvbmUgdG8gc2hhcmVkIHdvcmtlcjwvdGl0bGU+CiA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0vaHRtbC93ZWJhcHBhcGlzL3N0cnVjdHVyZWQtY2xvbmUvc3RydWN0dXJlZC1jbG9uZS1i
YXR0ZXJ5LW9mLXRlc3RzLmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2h0bWwvd2ViYXBwYXBp
cy9zdHJ1Y3R1cmVkLWNsb25lL3N0cnVjdHVyZWQtY2xvbmUtYmF0dGVyeS1vZi10ZXN0cy13aXRo
LXRyYW5zZmVyYWJsZXMuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vaHRtbC93ZWJhcHBhcGlz
L3N0cnVjdHVyZWQtY2xvbmUvc3RydWN0dXJlZC1jbG9uZS1iYXR0ZXJ5LW9mLXRlc3RzLWhhcm5l
c3MuanM+PC9zY3JpcHQ+CiA8ZGl2IGlkPWxvZz48L2Rpdj4KIDxzY3JpcHQ+Ci0gIHJ1blN0cnVj
dHVyZWRDbG9uZUJhdHRlcnlPZlRlc3RzKHsKLSAgICBzZXR1cCgpIHsKLSAgICAgIGNvbnN0IGJs
b2IgPSBuZXcgQmxvYihbYAotICAgICAgICBvbmNvbm5lY3QgPSBldiA9PiB7Ci0gICAgICAgICAg
Y29uc3QgcG9ydCA9IGV2LnBvcnRzWzBdOwotICAgICAgICAgIHBvcnQub25tZXNzYWdlID0gZXYg
PT4gcG9ydC5wb3N0TWVzc2FnZShldi5kYXRhLCBldi5kYXRhLnRyYW5zZmVyKTsKLSAgICAgICAg
fTsKLSAgICAgIGBdLCB7dHlwZTogJ3RleHQvamF2YXNjcmlwdCd9KTsKLSAgICAgIHRoaXMuYmxv
YlVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7Ci0gICAgICB0aGlzLndvcmtlciA9IG5l
dyBTaGFyZWRXb3JrZXIodGhpcy5ibG9iVVJMKTsKLSAgICAgIHRoaXMucG9ydCA9IHRoaXMud29y
a2VyLnBvcnQ7Ci0gICAgfSwKLSAgICBzdHJ1Y3R1cmVkQ2xvbmUoZGF0YSwgdHJhbnNmZXIpIHsK
LSAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICAgICAgdGhpcy5wb3J0
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbiBmKGV2KSB7Ci0gICAgICAgICAg
dGhpcy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmKTsKLSAgICAgICAgICBy
ZXNvbHZlKGV2LmRhdGEuZGF0YSk7Ci0gICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgIHRo
aXMucG9ydC5zdGFydCgpOwotICAgICAgICB0aGlzLnBvcnQucG9zdE1lc3NhZ2Uoe2RhdGEsIHRy
YW5zZmVyfSwgdHJhbnNmZXIpOwotICAgICAgfSk7Ci0gICAgfSwKLSAgICB0ZWFyZG93bigpIHsK
LSAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5ibG9iVVJMKTsKLSAgICB9Ci0gIH0pOwor
dmFyIHR5cGUgPSAnc2hhcmVkJzsKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImNvbW1vbi5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvc2hhcmVkLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFu
dGljcy9zdHJ1Y3R1cmVkLWNsb25lL3NoYXJlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzJhOWVjOThkNjNj
MTRkNDEwODc2MDJmODYxMWJmM2M3MGM0NTM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9zdHJ1
Y3R1cmVkLWNsb25lL3NoYXJlZC5qcwpAQCAtMCwwICsxLDYgQEAKK2ltcG9ydFNjcmlwdHMoJ3dv
cmtlci1jb21tb24uanMnKTsKK29uY29ubmVjdCA9IGZ1bmN0aW9uKGNvbm5lY3RfZXYpIHsKKyAg
Y29ubmVjdF9ldi5wb3J0c1swXS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihtZXNzYWdlX2V2KSB7Cisg
ICAgY2hlY2sobWVzc2FnZV9ldi5kYXRhLCB0aGlzKTsKKyAgfTsKK307CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvc2VtYW50
aWNzL3N0cnVjdHVyZWQtY2xvbmUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xv
bmUvdzNjLWltcG9ydC5sb2cKaW5kZXggZjIyMjU0ZTFjY2EwNzA1YjQwY2VjZDk0MGVhOGExMjcy
NmU5ZTY2NS4uM2JjNGY4MWViNGI5Y2I2MGEwNWU0MjNlOTExYzlmMzRjOTEzNWE0YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3Ry
dWN0dXJlZC1jbG9uZS93M2MtaW1wb3J0LmxvZwpAQCAtMTQsNSArMTQsOSBAQCBQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvY29tbW9uLmpzCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9z
dHJ1Y3R1cmVkLWNsb25lL2RlZGljYXRlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL2Rl
ZGljYXRlZC5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9zZW1hbnRpY3Mvc3RydWN0dXJlZC1jbG9uZS9zaGFyZWQuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3Ry
dWN0dXJlZC1jbG9uZS9zaGFyZWQuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvd29ya2VyLWNv
bW1vbi5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL3dvcmtlci1jb21tb24u
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
c2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvd29ya2VyLWNvbW1vbi5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZDYzZmY1YTVkNzE3YmExZTI3NTI5NDdhMTIzOTQ5ZDZlMjEwZjQ5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Nl
bWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL3dvcmtlci1jb21tb24uanMKQEAgLTAsMCArMSwxMDE4
IEBACit2YXIgbXNnID0gZGVjb2RlVVJJQ29tcG9uZW50KGxvY2F0aW9uLmhhc2guc3Vic3RyKDEp
KTsKKwordmFyIGxvZyA9IFtdOworZnVuY3Rpb24gY2hlY2tfdHJ1ZShhY3R1YWwsIG1zZykgewor
ICBpZiAoYWN0dWFsICE9PSB0cnVlKSB7CisgICAgbG9nLnB1c2gobXNnKTsKKyAgICByZXR1cm4g
ZmFsc2U7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIGNoZWNrX0Jsb2IobXNn
LCBpbnB1dCwgcG9ydCwgZXhwZWN0X0ZpbGUsIG9yaWdfaW5wdXQpIHsKKyAgZXhwZWN0X0ZpbGUg
PSAhIWV4cGVjdF9GaWxlOworICBvcmlnX2lucHV0ID0gb3JpZ19pbnB1dCB8fCBpbnB1dDsKKyAg
dHJ5IHsKKyAgICB2YXIgZXhwZWN0ZWQ7CisgICAgc3dpdGNoIChtc2cpIHsKKyAgICAgIGNhc2Ug
J0Jsb2IgYmFzaWMnOgorICAgICAgY2FzZSAnRmlsZSBiYXNpYyc6CisgICAgICAgIGV4cGVjdGVk
ID0gWzB4NjYsIDB4NkYsIDB4NkZdOworICAgICAgICBleHBlY3RlZC50eXBlID0gJ3RleHQveC1i
YXInOworICAgICAgICBpZiAoZXhwZWN0X0ZpbGUpIHsKKyAgICAgICAgICBleHBlY3RlZC5uYW1l
ID0gJ2Jhcic7CisgICAgICAgICAgZXhwZWN0ZWQubGFzdE1vZGlmaWVkID0gNDI7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdCbG9iIHVucGFpcmVkIGhpZ2ggc3Vycm9n
YXRlIChpbnZhbGlkIHV0Zi04KSc6CisgICAgICAgIGV4cGVjdGVkID0gWzB4RUQsIDB4QTAsIDB4
ODBdOworICAgICAgICBleHBlY3RlZC50eXBlID0gJyc7CisgICAgICAgIGJyZWFrOworICAgICAg
Y2FzZSAnQmxvYiB1bnBhaXJlZCBsb3cgc3Vycm9nYXRlIChpbnZhbGlkIHV0Zi04KSc6CisgICAg
ICAgIGV4cGVjdGVkID0gWzB4RUQsIDB4QjAsIDB4ODBdOworICAgICAgICBleHBlY3RlZC50eXBl
ID0gJyc7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnQmxvYiBwYWlyZWQgc3Vycm9nYXRl
cyAoaW52YWxpZCB1dGYtOCknOgorICAgICAgICBleHBlY3RlZCA9IFsweEVELCAweEEwLCAweDgw
LCAweEVELCAweEIwLCAweDgwXTsKKyAgICAgICAgZXhwZWN0ZWQudHlwZSA9ICcnOworICAgICAg
ICBicmVhazsKKyAgICAgIGNhc2UgJ0Jsb2IgZW1wdHknOgorICAgICAgICBleHBlY3RlZCA9IFtd
OworICAgICAgICBleHBlY3RlZC50eXBlID0gJyc7CisgICAgICAgIGJyZWFrOworICAgICAgY2Fz
ZSAnQmxvYiBOVUwnOgorICAgICAgICB2YXIgZXhwZWN0ZWQgPSBbMHgwMF07CisgICAgICAgIGV4
cGVjdGVkLnR5cGUgPSAnJzsKKyAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAg
ICBjaGVja190cnVlKGZhbHNlLCAnY2hlY2tfQmxvYjogdW5rbm93biB0ZXN0Jyk7CisgICAgICAg
IHJldHVybjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChjaGVja190cnVlKGlucHV0
IGluc3RhbmNlb2YgQmxvYiwgJ2lucHV0IGluc3RhbmNlb2YgQmxvYicpICYmCisgICAgICAgIGNo
ZWNrX3RydWUoKGlucHV0IGluc3RhbmNlb2YgRmlsZSkgPT0gZXhwZWN0X0ZpbGUsICcoaW5wdXQg
aW5zdGFuY2VvZiBGaWxlKSA9PSBleHBlY3RfRmlsZScpICYmCisgICAgICAgIGNoZWNrX3RydWUo
aW5wdXQuc2l6ZSA9PT0gZXhwZWN0ZWQubGVuZ3RoLCAnaW5wdXQuc2l6ZSA9PT0gZXhwZWN0ZWQu
bGVuZ3RoJykgJiYKKyAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dC50eXBlID09PSBleHBlY3RlZC50
eXBlLCAnaW5wdXQudHlwZSA9PT0gZXhwZWN0ZWQudHlwZScpKSB7CisgICAgICBpZiAoIWV4cGVj
dF9GaWxlIHx8IChjaGVja190cnVlKGlucHV0Lm5hbWUgPT09IGV4cGVjdGVkLm5hbWUsICdpbnB1
dC5uYW1lID09PSBleHBlY3RlZC5uYW1lJykgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNoZWNrX3RydWUoaW5wdXQubGFzdE1vZGlmaWVkID09PSBleHBlY3RlZC5sYXN0TW9kaWZpZWQp
KSkgeworICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICAgICAgdmFy
IHJlYWRfZG9uZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2
YXIgcmVzdWx0ID0gcmVhZGVyLnJlc3VsdDsKKyAgICAgICAgICAgIGNoZWNrX3RydWUocmVzdWx0
LmJ5dGVMZW5ndGggPT09IGV4cGVjdGVkLmxlbmd0aCwgJ3Jlc3VsdC5ieXRlTGVuZ3RoID09PSBl
eHBlY3RlZC5sZW5ndGgnKQorICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgRGF0YVZpZXcocmVz
dWx0KTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0LmJ5dGVMZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgICBjaGVja190cnVlKHZpZXcuZ2V0VWludDgoaSkgPT09IGV4
cGVjdGVkW2ldLCAndmlldy5nZXRVaW50OCgnK2krJykgPT09IGV4cGVjdGVkWycraSsnXScpCisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobG9nLmxlbmd0aCA9PT0gMCkgeworICAgICAg
ICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKG9yaWdfaW5wdXQpOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSgnRkFJTCAnK2xvZyk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjbG9zZSgpOworICAgICAgICAgIH0gY2F0Y2goZXgpIHsKKyAg
ICAgICAgICAgIHBvc3RNZXNzYWdlKCdGQUlMICcrZXgpOworICAgICAgICAgICAgY2xvc2UoKTsK
KyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlYWRfZXJyb3IgPSBmdW5jdGlv
bigpIHsgcG9ydC5wb3N0TWVzc2FnZSgnRkFJTCAoZ290IEZpbGVSZWFkZXIgZXJyb3IpJyk7IGNs
b3NlKCk7IH07CisgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihpbnB1dCk7CisgICAg
ICAgIHJlYWRlci5vbmxvYWQgPSByZWFkX2RvbmU7CisgICAgICAgIHJlYWRlci5vbmFib3J0ID0g
cmVhZGVyLm9uZXJyb3IgPSByZWFkX2Vycm9yOworICAgICAgfQorICAgIH0gZWxzZSB7CisgICAg
ICBwb3J0LnBvc3RNZXNzYWdlKCdGQUlMICcrbG9nKTsKKyAgICAgIGNsb3NlKCk7CisgICAgfQor
ICB9IGNhdGNoKGV4KSB7CisgICAgcG9zdE1lc3NhZ2UoJ0ZBSUwgJytleCk7CisgICAgY2xvc2Uo
KTsKKyAgfQorfQorCitmdW5jdGlvbiBjaGVja19JbWFnZURhdGEoaW5wdXQsIGV4cGVjdGVkKSB7
CisgIGlmIChjaGVja190cnVlKGlucHV0IGluc3RhbmNlb2YgSW1hZ2VEYXRhLCAnaW5wdXQgaW5z
dGFuY2VvZiBJbWFnZURhdGEnKSAmJgorICAgICAgY2hlY2tfdHJ1ZShpbnB1dC53aWR0aCA9PT0g
ZXhwZWN0ZWQud2lkdGgsICdpbnB1dC53aWR0aCA9PT0gJytleHBlY3RlZC53aWR0aCkgJiYKKyAg
ICAgIGNoZWNrX3RydWUoaW5wdXQuaGVpZ2h0ID09PSBleHBlY3RlZC5oZWlnaHQsICdpbnB1dC5o
ZWlnaHQgPT09ICcrZXhwZWN0ZWQuaGVpZ2h0KSAmJgorICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5k
YXRhIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXksICdpbnB1dC5kYXRhIGluc3RhbmNlb2Yg
VWludDhDbGFtcGVkQXJyYXknKSAmJgorICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5kYXRhLmxlbmd0
aCA9PT0gZXhwZWN0ZWQuZGF0YS5sZW5ndGgsICdpbnB1dC5kYXRhLmxlbmd0aCA9PT0gJytleHBl
Y3RlZC5kYXRhLmxlbmd0aCkgJiYKKyAgICAgIGNoZWNrX3RydWUoISgnQ2FudmFzUGl4ZWxBcnJh
eScgaW4gc2VsZiksICIhKCdDYW52YXNQaXhlbEFycmF5JyBpbiBzZWxmKSIpKSB7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7ICsraSkgeworICAgICAgaWYgKCEoY2hlY2tf
dHJ1ZShpbnB1dC5kYXRhW2ldID09PSBleHBlY3RlZC5kYXRhW2ldLCAnaW5wdXQuZGF0YVsnK2kr
J10gPT09ICcrZXhwZWN0ZWQuZGF0YVtpXSkpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgcmV0dXJuIGZhbHNlOworfQor
CitmdW5jdGlvbiBjaGVja19JbWFnZUJpdG1hcChpbnB1dCwgZXhwZWN0ZWQpIHsKKyAgcmV0dXJu
IGNoZWNrX3RydWUoaW5wdXQgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcCwgJ2lucHV0IGluc3RhbmNl
b2YgSW1hZ2VCaXRtYXAnKTsKKyAgLy8gWFhYIHBhaW50IGl0IG9uIGEgcHJveHkgY2FudmFzIGFu
ZCBjaGVjayB0aGUgZGF0YQorfQorCitmdW5jdGlvbiBjaGVja19SZWdFeHAobXNnLCBpbnB1dCkg
eworICAvLyBYWFggRVM2IHNwZWMgZG9lc24ndCBkZWZpbmUgZXhhY3Qgc2VyaWFsaXphdGlvbiBm
b3IgYHNvdXJjZWAgKGl0IGFsbG93cyBzZXZlcmFsIHdheXMgdG8gZXNjYXBlKQorICBzd2l0Y2gg
KG1zZykgeworICAgIGNhc2UgJ1JlZ0V4cCBmbGFncyBhbmQgbGFzdEluZGV4JzoKKyAgICAgIHJl
dHVybiBjaGVja190cnVlKGlucHV0IGluc3RhbmNlb2YgUmVnRXhwLCAiaW5wdXQgaW5zdGFuY2Vv
ZiBSZWdFeHAiKSAmJgorICAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQuc291cmNlID09PSAn
Zm9vJywgImlucHV0LnNvdXJjZSA9PT0gJ2ZvbyciKSAmJgorICAgICAgICAgICAgIGNoZWNrX3Ry
dWUoaW5wdXQuZ2xvYmFsID09PSB0cnVlLCAiaW5wdXQuZ2xvYmFsID09PSB0cnVlIikgJiYKKyAg
ICAgICAgICAgICBjaGVja190cnVlKGlucHV0Lmlnbm9yZUNhc2UgPT09IHRydWUsICJpbnB1dC5p
Z25vcmVDYXNlID09PSB0cnVlIikgJiYKKyAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0Lm11
bHRpbGluZSA9PT0gdHJ1ZSwgImlucHV0Lm11bHRpbGluZSA9PT0gdHJ1ZSIpICYmCisgICAgICAg
ICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5sYXN0SW5kZXggPT09IDAsICJpbnB1dC5sYXN0SW5kZXgg
PT09IDAiKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1JlZ0V4cCBzdGlja3kgZmxhZyc6Cisg
ICAgICByZXR1cm4gY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIFJlZ0V4cCwgImlucHV0IGlu
c3RhbmNlb2YgUmVnRXhwIikgJiYKKyAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0LnNvdXJj
ZSA9PT0gJ2ZvbycsICJpbnB1dC5zb3VyY2UgPT09ICdmb28nIikgJiYKKyAgICAgICAgICAgICBj
aGVja190cnVlKGlucHV0Lmdsb2JhbCA9PT0gZmFsc2UsICJpbnB1dC5nbG9iYWwgPT09IGZhbHNl
IikgJiYKKyAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0Lmlnbm9yZUNhc2UgPT09IGZhbHNl
LCAiaW5wdXQuaWdub3JlQ2FzZSA9PT0gZmFsc2UiKSAmJgorICAgICAgICAgICAgIGNoZWNrX3Ry
dWUoaW5wdXQubXVsdGlsaW5lID09PSBmYWxzZSwgImlucHV0Lm11bHRpbGluZSA9PT0gZmFsc2Ui
KSAmJgorICAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQuc3RpY2t5ID09PSB0cnVlLCAiaW5w
dXQuc3RpY2t5ID09PSB0cnVlIikgJiYKKyAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0LnVu
aWNvZGUgPT09IGZhbHNlLCAiaW5wdXQudW5pY29kZSA9PT0gZmFsc2UiKSAmJgorICAgICAgICAg
ICAgIGNoZWNrX3RydWUoaW5wdXQubGFzdEluZGV4ID09PSAwLCAiaW5wdXQubGFzdEluZGV4ID09
PSAwIik7CisgICAgICBicmVhazsKKyAgICBjYXNlICdSZWdFeHAgdW5pY29kZSBmbGFnJzoKKyAg
ICAgIHJldHVybiBjaGVja190cnVlKGlucHV0IGluc3RhbmNlb2YgUmVnRXhwLCAiaW5wdXQgaW5z
dGFuY2VvZiBSZWdFeHAiKSAmJgorICAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQuc291cmNl
ID09PSAnZm9vJywgImlucHV0LnNvdXJjZSA9PT0gJ2ZvbyciKSAmJgorICAgICAgICAgICAgIGNo
ZWNrX3RydWUoaW5wdXQuZ2xvYmFsID09PSBmYWxzZSwgImlucHV0Lmdsb2JhbCA9PT0gZmFsc2Ui
KSAmJgorICAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQuaWdub3JlQ2FzZSA9PT0gZmFsc2Us
ICJpbnB1dC5pZ25vcmVDYXNlID09PSBmYWxzZSIpICYmCisgICAgICAgICAgICAgY2hlY2tfdHJ1
ZShpbnB1dC5tdWx0aWxpbmUgPT09IGZhbHNlLCAiaW5wdXQubXVsdGlsaW5lID09PSBmYWxzZSIp
ICYmCisgICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5zdGlja3kgPT09IGZhbHNlLCAiaW5w
dXQuc3RpY2t5ID09PSBmYWxzZSIpICYmCisgICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dC51
bmljb2RlID09PSB0cnVlLCAiaW5wdXQudW5pY29kZSA9PT0gdHJ1ZSIpICYmCisgICAgICAgICAg
ICAgY2hlY2tfdHJ1ZShpbnB1dC5sYXN0SW5kZXggPT09IDAsICJpbnB1dC5sYXN0SW5kZXggPT09
IDAiKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1JlZ0V4cCBlbXB0eSc6CisgICAgICByZXR1
cm4gY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIFJlZ0V4cCwgImlucHV0IGluc3RhbmNlb2Yg
UmVnRXhwIikgJiYKKyAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0LnNvdXJjZSA9PT0gJyg/
OiknLCAiaW5wdXQuc291cmNlID09PSAnKD86KSciKSAmJgorICAgICAgICAgICAgIGNoZWNrX3Ry
dWUoaW5wdXQuZ2xvYmFsID09PSBmYWxzZSwgImlucHV0Lmdsb2JhbCA9PT0gZmFsc2UiKSAmJgor
ICAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQuaWdub3JlQ2FzZSA9PT0gZmFsc2UsICJpbnB1
dC5pZ25vcmVDYXNlID09PSBmYWxzZSIpICYmCisgICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1
dC5tdWx0aWxpbmUgPT09IGZhbHNlLCAiaW5wdXQubXVsdGlsaW5lID09PSBmYWxzZSIpICYmCisg
ICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5sYXN0SW5kZXggPT09IDAsICJpbnB1dC5sYXN0
SW5kZXggPT09IDAiKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1JlZ0V4cCBzbGFzaCc6Cisg
ICAgICByZXR1cm4gY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIFJlZ0V4cCwgImlucHV0IGlu
c3RhbmNlb2YgUmVnRXhwIikgJiYKKyAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0LnNvdXJj
ZSA9PT0gJ1xcLycsICJpbnB1dC5zb3VyY2UgPT09ICdcXFxcLyciKSAmJgorICAgICAgICAgICAg
IGNoZWNrX3RydWUoaW5wdXQuZ2xvYmFsID09PSBmYWxzZSwgImlucHV0Lmdsb2JhbCA9PT0gZmFs
c2UiKSAmJgorICAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQuaWdub3JlQ2FzZSA9PT0gZmFs
c2UsICJpbnB1dC5pZ25vcmVDYXNlID09PSBmYWxzZSIpICYmCisgICAgICAgICAgICAgY2hlY2tf
dHJ1ZShpbnB1dC5tdWx0aWxpbmUgPT09IGZhbHNlLCAiaW5wdXQubXVsdGlsaW5lID09PSBmYWxz
ZSIpICYmCisgICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5sYXN0SW5kZXggPT09IDAsICJp
bnB1dC5sYXN0SW5kZXggPT09IDAiKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ1JlZ0V4cCBu
ZXcgbGluZSc6CisgICAgICByZXR1cm4gY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIFJlZ0V4
cCwgImlucHV0IGluc3RhbmNlb2YgUmVnRXhwIikgJiYKKyAgICAgICAgICAgICBjaGVja190cnVl
KGlucHV0LnNvdXJjZSA9PT0gJ1xcbicsICJpbnB1dC5zb3VyY2UgPT09ICdcXFxcbiciKSAmJgor
ICAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQuZ2xvYmFsID09PSBmYWxzZSwgImlucHV0Lmds
b2JhbCA9PT0gZmFsc2UiKSAmJgorICAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQuaWdub3Jl
Q2FzZSA9PT0gZmFsc2UsICJpbnB1dC5pZ25vcmVDYXNlID09PSBmYWxzZSIpICYmCisgICAgICAg
ICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5tdWx0aWxpbmUgPT09IGZhbHNlLCAiaW5wdXQubXVsdGls
aW5lID09PSBmYWxzZSIpICYmCisgICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5sYXN0SW5k
ZXggPT09IDAsICJpbnB1dC5sYXN0SW5kZXggPT09IDAiKTsKKyAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICBjaGVja190cnVlKGZhbHNlLCAnY2hlY2tfUmVnRXhwOiB1bmtub3duIHRl
c3QnKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGJyZWFrOworICB9Cit9CisKK2Z1bmN0
aW9uIGNoZWNrX0ZpbGVMaXN0KG1zZywgaW5wdXQpIHsKKyAgdHJ5IHsKKyAgICByZXR1cm4gY2hl
Y2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIEZpbGVMaXN0LCAnaW5wdXQgaW5zdGFuY2VvZiBGaWxl
TGlzdCcpICYmCisgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQubGVuZ3RoID09PSAwLCAnaW5w
dXQubGVuZ3RoID09PSAwJyk7CisgIH0gY2F0Y2goZXgpIHsKKyAgICByZXR1cm4gY2hlY2tfdHJ1
ZShmYWxzZSwgZXgpOworICB9Cit9CisKK2Z1bmN0aW9uIGNoZWNrKGlucHV0LCBwb3J0KSB7Cisg
IHRyeSB7CisgICAgc3dpdGNoIChtc2cpIHsKKyAgICAgIGNhc2UgJ3ByaW1pdGl2ZSB1bmRlZmlu
ZWQnOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCA9PT0gdW5kZWZpbmVkLCAnaW5wdXQg
PT09IHVuZGVmaW5lZCcpKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShpbnB1dCk7Cisg
ICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIGNhc2Ug
J3ByaW1pdGl2ZSBudWxsJzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgPT09IG51bGws
ICdpbnB1dCA9PT0gbnVsbCcpKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShpbnB1dCk7
CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIGNh
c2UgJ3ByaW1pdGl2ZSB0cnVlJzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgPT09IHRy
dWUsICdpbnB1dCA9PT0gdHJ1ZScpKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShpbnB1
dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAg
IGNhc2UgJ3ByaW1pdGl2ZSBmYWxzZSc6CisgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0ID09
PSBmYWxzZSwgJ2lucHV0ID09PSBmYWxzZScpKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2Fn
ZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsK
KyAgICAgIGNhc2UgJ3ByaW1pdGl2ZSBzdHJpbmcsIGVtcHR5IHN0cmluZyc6CisgICAgICAgIGlm
IChjaGVja190cnVlKGlucHV0ID09PSAnJywgImlucHV0ID09PSAnJyIpKSB7CisgICAgICAgICAg
cG9ydC5wb3N0TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ3ByaW1pdGl2ZSBzdHJpbmcsIGxvbmUgaGlnaCBz
dXJyb2dhdGUnOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCA9PT0gJ1x1RDgwMCcsICJp
bnB1dCA9PT0gJ1x1RDgwMCciKSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQp
OworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBj
YXNlICdwcmltaXRpdmUgc3RyaW5nLCBsb25lIGxvdyBzdXJyb2dhdGUnOgorICAgICAgICBpZiAo
Y2hlY2tfdHJ1ZShpbnB1dCA9PT0gJ1x1REMwMCcsICJpbnB1dCA9PT0gJ1x1REMwMCciKSkgewor
ICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdwcmltaXRpdmUgc3RyaW5nLCBO
VUwnOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCA9PT0gJ1x1MDAwMCcsICJpbnB1dCA9
PT0gJ1x1MDAwMCciKSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAg
ICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdw
cmltaXRpdmUgc3RyaW5nLCBhc3RyYWwgY2hhcmFjdGVyJzoKKyAgICAgICAgaWYgKGNoZWNrX3Ry
dWUoaW5wdXQgPT09ICdcdURCRkZcdURGRkQnLCAiaW5wdXQgPT09ICdcdURCRkZcdURGRkQnIikp
IHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICBjbG9zZSgp
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAncHJpbWl0aXZlIG51bWJl
ciwgMC4yJzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgPT09IDAuMiwgImlucHV0ID09
PSAwLjIiKSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAg
IGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdwcmltaXRp
dmUgbnVtYmVyLCAwJzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgPT09IDAsICJpbnB1
dCA9PT0gMCIpICYmCisgICAgICAgICAgICBjaGVja190cnVlKDEvaW5wdXQgPT09IEluZmluaXR5
LCAiMS9pbnB1dCA9PT0gSW5maW5pdHkiKSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2Uo
aW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgICBjYXNlICdwcmltaXRpdmUgbnVtYmVyLCAtMCc6CisgICAgICAgIGlmIChjaGVja190cnVl
KGlucHV0ID09PSAwLCAiaW5wdXQgPT09IDAiKSAmJgorICAgICAgICAgICAgY2hlY2tfdHJ1ZSgx
L2lucHV0ID09PSAtSW5maW5pdHksICIxL2lucHV0ID09PSAtSW5maW5pdHkiKSkgeworICAgICAg
ICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdwcmltaXRpdmUgbnVtYmVyLCBOYU4nOgor
ICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCAhPT0gaW5wdXQsICJpbnB1dCAhPT0gaW5wdXQi
KSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3Nl
KCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdwcmltaXRpdmUgbnVt
YmVyLCBJbmZpbml0eSc6CisgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0ID09PSBJbmZpbml0
eSwgImlucHV0ID09PSBJbmZpbml0eSIpKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShp
bnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICAgIGNhc2UgJ3ByaW1pdGl2ZSBudW1iZXIsIC1JbmZpbml0eSc6CisgICAgICAgIGlmIChjaGVj
a190cnVlKGlucHV0ID09PSAtSW5maW5pdHksICJpbnB1dCA9PT0gLUluZmluaXR5IikpIHsKKyAg
ICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAncHJpbWl0aXZlIG51bWJlciwgOTAw
NzE5OTI1NDc0MDk5Mic6CisgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0ID09PSA5MDA3MTk5
MjU0NzQwOTkyLCAiaW5wdXQgPT09IDkwMDcxOTkyNTQ3NDA5OTIiKSkgeworICAgICAgICAgIHBv
cnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgICBjYXNlICdwcmltaXRpdmUgbnVtYmVyLCAtOTAwNzE5OTI1NDc0
MDk5Mic6CisgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0ID09PSAtOTAwNzE5OTI1NDc0MDk5
MiwgImlucHV0ID09PSAtOTAwNzE5OTI1NDc0MDk5MiIpKSB7CisgICAgICAgICAgcG9ydC5wb3N0
TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICAgIGNhc2UgJ3ByaW1pdGl2ZSBudW1iZXIsIDkwMDcxOTkyNTQ3NDA5OTQnOgor
ICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCA9PT0gOTAwNzE5OTI1NDc0MDk5NCwgImlucHV0
ID09PSA5MDA3MTk5MjU0NzQwOTk0IikpIHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlu
cHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
ICAgY2FzZSAncHJpbWl0aXZlIG51bWJlciwgLTkwMDcxOTkyNTQ3NDA5OTQnOgorICAgICAgICBp
ZiAoY2hlY2tfdHJ1ZShpbnB1dCA9PT0gLTkwMDcxOTkyNTQ3NDA5OTQsICJpbnB1dCA9PT0gLTkw
MDcxOTkyNTQ3NDA5OTQiKSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOwor
ICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIGNh
c2UgJ0FycmF5IHByaW1pdGl2ZXMnOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0
YW5jZW9mIEFycmF5LCAnaW5wdXQgaW5zdGFuY2VvZiBBcnJheScpICYmCisgICAgICAgICAgICBj
aGVja190cnVlKGlucHV0Lmxlbmd0aCA9PT0gMTksICdpbnB1dC5sZW5ndGggPT09IDE5JykgJiYK
KyAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXRbMF0gPT09IHVuZGVmaW5lZCwgJ2lucHV0WzBd
ID09PSB1bmRlZmluZWQnKSAmJgorICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dFsxXSA9PT0g
bnVsbCwgJ2lucHV0WzFdID09PSBudWxsJykgJiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoaW5w
dXRbMl0gPT09IHRydWUsICdpbnB1dFsyXSA9PT0gdHJ1ZScpICYmCisgICAgICAgICAgICBjaGVj
a190cnVlKGlucHV0WzNdID09PSBmYWxzZSwgJ2lucHV0WzNdID09PSBmYWxzZScpICYmCisgICAg
ICAgICAgICBjaGVja190cnVlKGlucHV0WzRdID09PSAnJywgImlucHV0WzRdID09PSAnJyIpICYm
CisgICAgICAgICAgICBjaGVja190cnVlKGlucHV0WzVdID09PSAnXHVEODAwJywgImlucHV0WzVd
ID09PSAnXFx1RDgwMCciKSAmJgorICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dFs2XSA9PT0g
J1x1REMwMCcsICJpbnB1dFs2XSA9PT0gJ1xcdURDMDAnIikgJiYKKyAgICAgICAgICAgIGNoZWNr
X3RydWUoaW5wdXRbN10gPT09ICdcdTAwMDAnLCAiaW5wdXRbN10gPT09ICdcXHUwMDAwJyIpICYm
CisgICAgICAgICAgICBjaGVja190cnVlKGlucHV0WzhdID09PSAnXHVEQkZGXHVERkZEJywgImlu
cHV0WzhdID09PSAnXFx1REJGRlxcdURGRkQnIikgJiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUo
aW5wdXRbOV0gPT09IDAuMiwgImlucHV0WzldID09PSAwLjIiKSAmJgorICAgICAgICAgICAgY2hl
Y2tfdHJ1ZSgxL2lucHV0WzEwXSA9PT0gSW5maW5pdHksICIxL2lucHV0WzEwXSA9PT0gSW5maW5p
dHkiKSAmJgorICAgICAgICAgICAgY2hlY2tfdHJ1ZSgxL2lucHV0WzExXSA9PT0gLUluZmluaXR5
LCAiMS9pbnB1dFsxMV0gPT09IC1JbmZpbml0eSIpICYmCisgICAgICAgICAgICBjaGVja190cnVl
KGlucHV0WzEyXSAhPT0gaW5wdXRbMTFdLCAiaW5wdXRbMTJdICE9PSBpbnB1dFsxMV0iKSAmJgor
ICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dFsxM10gPT09IEluZmluaXR5LCAiaW5wdXRbMTNd
ID09PSBJbmZpbml0eSIpICYmCisgICAgICAgICAgICBjaGVja190cnVlKGlucHV0WzE0XSA9PT0g
LUluZmluaXR5LCAiaW5wdXRbMTRdID09PSAtSW5maW5pdHkiKSAmJgorICAgICAgICAgICAgY2hl
Y2tfdHJ1ZShpbnB1dFsxNV0gPT09IDkwMDcxOTkyNTQ3NDA5OTIsICJpbnB1dFsxNV0gPT09IDkw
MDcxOTkyNTQ3NDA5OTIiKSAmJgorICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dFsxNl0gPT09
IC05MDA3MTk5MjU0NzQwOTkyLCAiaW5wdXRbMTZdID09PSAtOTAwNzE5OTI1NDc0MDk5MiIpICYm
CisgICAgICAgICAgICBjaGVja190cnVlKGlucHV0WzE3XSA9PT0gOTAwNzE5OTI1NDc0MDk5NCwg
ImlucHV0WzE3XSA9PT0gOTAwNzE5OTI1NDc0MDk5NCIpICYmCisgICAgICAgICAgICBjaGVja190
cnVlKGlucHV0WzE4XSA9PT0gLTkwMDcxOTkyNTQ3NDA5OTQsICJpbnB1dFsxOF0gPT09IC05MDA3
MTk5MjU0NzQwOTk0IikpIHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAg
ICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAn
T2JqZWN0IHByaW1pdGl2ZXMnOgorICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYg
KGNoZWNrX3RydWUoaW5wdXQgaW5zdGFuY2VvZiBPYmplY3QsICdpbnB1dCBpbnN0YW5jZW9mIE9i
amVjdCcpICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUoIShpbnB1dCBpbnN0YW5jZW9mIEFy
cmF5KSwgJyEoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSknKSAmJgorICAgICAgICAgICAgICBjaGVj
a190cnVlKGlucHV0Wyd1bmRlZmluZWQnXSA9PT0gdW5kZWZpbmVkLCAiaW5wdXRbJ3VuZGVmaW5l
ZCddID09PSB1bmRlZmluZWQiKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0Wydu
dWxsJ10gPT09IG51bGwsICJpbnB1dFsnbnVsbCddID09PSBudWxsIikgJiYKKyAgICAgICAgICAg
ICAgY2hlY2tfdHJ1ZShpbnB1dFsndHJ1ZSddID09PSB0cnVlLCAiaW5wdXRbJ3RydWUnXSA9PT0g
dHJ1ZSIpICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXRbJ2ZhbHNlJ10gPT09IGZh
bHNlLCAiaW5wdXRbJ2ZhbHNlJ10gPT09IGZhbHNlIikgJiYKKyAgICAgICAgICAgICAgY2hlY2tf
dHJ1ZShpbnB1dFsnZW1wdHknXSA9PT0gJycsICJpbnB1dFsnZW1wdHknXSA9PT0gJyciKSAmJgor
ICAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0WydoaWdoIHN1cnJvZ2F0ZSddID09PSAnXHVE
ODAwJywgImlucHV0WydoaWdoIHN1cnJvZ2F0ZSddID09PSAnXHVEODAwJyIpICYmCisgICAgICAg
ICAgICAgIGNoZWNrX3RydWUoaW5wdXRbJ2xvdyBzdXJyb2dhdGUnXSA9PT0gJ1x1REMwMCcsICJp
bnB1dFsnbG93IHN1cnJvZ2F0ZSddID09PSAnXHVEQzAwJyIpICYmCisgICAgICAgICAgICAgIGNo
ZWNrX3RydWUoaW5wdXRbJ251bCddID09PSAnXHUwMDAwJywgImlucHV0WydudWwnXSA9PT0gJ1x1
MDAwMCciKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0Wydhc3RyYWwnXSA9PT0g
J1x1REJGRlx1REZGRCcsICJpbnB1dFsnYXN0cmFsJ10gPT09ICdcdURCRkZcdURGRkQnIikgJiYK
KyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dFsnMC4yJ10gPT09IDAuMiwgImlucHV0Wycw
LjInXSA9PT0gMC4yIikgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZSgxL2lucHV0WycwJ10g
PT09IEluZmluaXR5LCAiMS9pbnB1dFsnMCddID09PSBJbmZpbml0eSIpICYmCisgICAgICAgICAg
ICAgIGNoZWNrX3RydWUoMS9pbnB1dFsnLTAnXSA9PT0gLUluZmluaXR5LCAiMS9pbnB1dFsnLTAn
XSA9PT0gLUluZmluaXR5IikgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dFsnTmFO
J10gIT09IGlucHV0WydOYU4nXSwgImlucHV0WydOYU4nXSAhPT0gaW5wdXRbJ05hTiddIikgJiYK
KyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dFsnSW5maW5pdHknXSA9PT0gSW5maW5pdHks
ICJpbnB1dFsnSW5maW5pdHknXSA9PT0gSW5maW5pdHkiKSAmJgorICAgICAgICAgICAgICBjaGVj
a190cnVlKGlucHV0WyctSW5maW5pdHknXSA9PT0gLUluZmluaXR5LCAiaW5wdXRbJy1JbmZpbml0
eSddID09PSAtSW5maW5pdHkiKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0Wyc5
MDA3MTk5MjU0NzQwOTkyJ10gPT09IDkwMDcxOTkyNTQ3NDA5OTIsICJpbnB1dFsnOTAwNzE5OTI1
NDc0MDk5MiddID09PSA5MDA3MTk5MjU0NzQwOTkyIikgJiYKKyAgICAgICAgICAgICAgY2hlY2tf
dHJ1ZShpbnB1dFsnLTkwMDcxOTkyNTQ3NDA5OTInXSA9PT0gLTkwMDcxOTkyNTQ3NDA5OTIsICJp
bnB1dFsnLTkwMDcxOTkyNTQ3NDA5OTInXSA9PT0gLTkwMDcxOTkyNTQ3NDA5OTIiKSAmJgorICAg
ICAgICAgICAgICBjaGVja190cnVlKGlucHV0Wyc5MDA3MTk5MjU0NzQwOTk0J10gPT09IDkwMDcx
OTkyNTQ3NDA5OTQsICJpbnB1dFsnOTAwNzE5OTI1NDc0MDk5NCddID09PSA5MDA3MTk5MjU0NzQw
OTk0IikgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dFsnLTkwMDcxOTkyNTQ3NDA5
OTQnXSA9PT0gLTkwMDcxOTkyNTQ3NDA5OTQsICJpbnB1dFsnOTAwNzE5OTI1NDc0MDk5NCddID09
PSAtOTAwNzE5OTI1NDc0MDk5NCIpKSB7CisgICAgICAgICAgICB2YXIgaSA9IDA7CisgICAgICAg
ICAgICBmb3IgKHZhciB4IGluIGlucHV0KSB7CisgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmIChjaGVja190cnVlKGkgPT09IDE5LCAnaSA9PT0gMTknKSkg
eworICAgICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICAgICAg
Y2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0pKCk7CisgICAg
ICAgIGJyZWFrOworICAgICAgY2FzZSAnQm9vbGVhbiB0cnVlJzoKKyAgICAgICAgaWYgKGNoZWNr
X3RydWUoaW5wdXQgaW5zdGFuY2VvZiBCb29sZWFuLCAiaW5wdXQgaW5zdGFuY2VvZiBCb29sZWFu
IikgJiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoU3RyaW5nKGlucHV0KSA9PT0gJ3RydWUnLCAi
U3RyaW5nKGlucHV0KSA9PT0gJ3RydWUnIikpIHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdl
KGlucHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgICAgY2FzZSAnQm9vbGVhbiBmYWxzZSc6CisgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0
IGluc3RhbmNlb2YgQm9vbGVhbiwgImlucHV0IGluc3RhbmNlb2YgQm9vbGVhbiIpICYmCisgICAg
ICAgICAgICBjaGVja190cnVlKFN0cmluZyhpbnB1dCkgPT09ICdmYWxzZScsICJTdHJpbmcoaW5w
dXQpID09PSAnZmFsc2UnIikpIHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsK
KyAgICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgY2Fz
ZSAnQXJyYXkgQm9vbGVhbiBvYmplY3RzJzoKKyAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIGlmIChjaGVja190cnVlKGlucHV0IGluc3RhbmNlb2YgQXJyYXksICdpbnB1dCBpbnN0YW5j
ZW9mIEFycmF5JykgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5sZW5ndGggPT09
IDIsICdpbnB1dC5sZW5ndGggPT09IDInKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKFN0
cmluZyhpbnB1dFswXSkgPT09ICd0cnVlJywgIlN0cmluZyhpbnB1dFswXSkgPT09ICd0cnVlJyIp
ICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUoU3RyaW5nKGlucHV0WzFdKSA9PT0gJ2ZhbHNl
JywgIlN0cmluZyhpbnB1dFsxXSkgPT09ICdmYWxzZSciKSkgeworICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICBpZiAoIWNo
ZWNrX3RydWUoaW5wdXRbaV0gaW5zdGFuY2VvZiBCb29sZWFuLCAnaW5wdXRbJytpKyddIGluc3Rh
bmNlb2YgQm9vbGVhbicpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgICAgY2xvc2Uo
KTsKKyAgICAgICAgICB9CisgICAgICAgIH0pKCk7CisgICAgICAgIGJyZWFrOworICAgICAgY2Fz
ZSAnT2JqZWN0IEJvb2xlYW4gb2JqZWN0cyc6CisgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAg
ICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIE9iamVjdCwgJ2lucHV0IGluc3Rh
bmNlb2YgT2JqZWN0JykgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZSghKGlucHV0IGluc3Rh
bmNlb2YgQXJyYXkpLCAnIShpbnB1dCBpbnN0YW5jZW9mIEFycmF5KScpICYmCisgICAgICAgICAg
ICAgIGNoZWNrX3RydWUoU3RyaW5nKGlucHV0Wyd0cnVlJ10pID09PSAndHJ1ZScsICJTdHJpbmco
aW5wdXRbJ3RydWUnXSkgPT09ICd0cnVlJyIpICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUo
U3RyaW5nKGlucHV0WydmYWxzZSddKSA9PT0gJ2ZhbHNlJywgIlN0cmluZyhpbnB1dFsnZmFsc2Un
XSkgPT09ICdmYWxzZSciKSkgeworICAgICAgICAgICAgdmFyIGkgPSAwOworICAgICAgICAgICAg
Zm9yICh2YXIgeCBpbiBpbnB1dCkgeworICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAg
IGlmICghY2hlY2tfdHJ1ZShpbnB1dFt4XSBpbnN0YW5jZW9mIEJvb2xlYW4sICdpbnB1dFsnK3gr
J10gaW5zdGFuY2VvZiBCb29sZWFuJykpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKGNoZWNrX3RydWUoaSA9PT0gMiwgJ2kgPT09IDInKSkg
eworICAgICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICAgICAg
Y2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0pKCk7CisgICAg
ICAgIGJyZWFrOworICAgICAgY2FzZSAnU3RyaW5nIGVtcHR5IHN0cmluZyc6CisgICAgICAgIGlm
IChjaGVja190cnVlKGlucHV0IGluc3RhbmNlb2YgU3RyaW5nLCAiaW5wdXQgaW5zdGFuY2VvZiBT
dHJpbmciKSAmJgorICAgICAgICAgICAgY2hlY2tfdHJ1ZShTdHJpbmcoaW5wdXQpID09PSAnJywg
IlN0cmluZyhpbnB1dCkgPT09ICcnIikpIHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlu
cHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
ICAgY2FzZSAnU3RyaW5nIGxvbmUgaGlnaCBzdXJyb2dhdGUnOgorICAgICAgICBpZiAoY2hlY2tf
dHJ1ZShpbnB1dCBpbnN0YW5jZW9mIFN0cmluZywgImlucHV0IGluc3RhbmNlb2YgU3RyaW5nIikg
JiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoU3RyaW5nKGlucHV0KSA9PT0gJ1x1RDgwMCcsICJT
dHJpbmcoaW5wdXQpID09PSAnXFx1RDgwMCciKSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3Nh
Z2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgICBjYXNlICdTdHJpbmcgbG9uZSBsb3cgc3Vycm9nYXRlJzoKKyAgICAgICAgaWYgKGNo
ZWNrX3RydWUoaW5wdXQgaW5zdGFuY2VvZiBTdHJpbmcsICJpbnB1dCBpbnN0YW5jZW9mIFN0cmlu
ZyIpICYmCisgICAgICAgICAgICBjaGVja190cnVlKFN0cmluZyhpbnB1dCkgPT09ICdcdURDMDAn
LCAiU3RyaW5nKGlucHV0KSA9PT0gJ1xcdURDMDAnIikpIHsKKyAgICAgICAgICBwb3J0LnBvc3RN
ZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgICAgY2FzZSAnU3RyaW5nIE5VTCc6CisgICAgICAgIGlmIChjaGVja190cnVlKGlu
cHV0IGluc3RhbmNlb2YgU3RyaW5nLCAiaW5wdXQgaW5zdGFuY2VvZiBTdHJpbmciKSAmJgorICAg
ICAgICAgICAgY2hlY2tfdHJ1ZShTdHJpbmcoaW5wdXQpID09PSAnXHUwMDAwJywgIlN0cmluZyhp
bnB1dCkgPT09ICdcXHUwMDAwJyIpKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShpbnB1
dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAg
IGNhc2UgJ1N0cmluZyBhc3RyYWwgY2hhcmFjdGVyJzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUo
aW5wdXQgaW5zdGFuY2VvZiBTdHJpbmcsICJpbnB1dCBpbnN0YW5jZW9mIFN0cmluZyIpICYmCisg
ICAgICAgICAgICBjaGVja190cnVlKFN0cmluZyhpbnB1dCkgPT09ICdcdURCRkZcdURGRkQnLCAi
U3RyaW5nKGlucHV0KSA9PT0gJ1xcdURCRkZcXHVERkZEJyIpKSB7CisgICAgICAgICAgcG9ydC5w
b3N0TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICAgIGNhc2UgJ0FycmF5IFN0cmluZyBvYmplY3RzJzoKKyAgICAgICAgKGZ1
bmN0aW9uKCkgeworICAgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0IGluc3RhbmNlb2YgQXJy
YXksICdpbnB1dCBpbnN0YW5jZW9mIEFycmF5JykgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1
ZShpbnB1dC5sZW5ndGggPT09IDUsICdpbnB1dC5sZW5ndGggPT09IDUnKSAmJgorICAgICAgICAg
ICAgICBjaGVja190cnVlKFN0cmluZyhpbnB1dFswXSkgPT09ICcnLCAiU3RyaW5nKGlucHV0WzBd
KSA9PT0gJyciKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKFN0cmluZyhpbnB1dFsxXSkg
PT09ICdcdUQ4MDAnLCAiU3RyaW5nKGlucHV0WzFdKSA9PT0gJ1xcdUQ4MDAnIikgJiYKKyAgICAg
ICAgICAgICAgY2hlY2tfdHJ1ZShTdHJpbmcoaW5wdXRbMl0pID09PSAnXHVEQzAwJywgIlN0cmlu
ZyhpbnB1dFsxXSkgPT09ICdcXHVEQzAwJyIpICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUo
U3RyaW5nKGlucHV0WzNdKSA9PT0gJ1x1MDAwMCcsICJTdHJpbmcoaW5wdXRbMl0pID09PSAnXFx1
MDAwMCciKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKFN0cmluZyhpbnB1dFs0XSkgPT09
ICdcdURCRkZcdURGRkQnLCAiU3RyaW5nKGlucHV0WzNdKSA9PT0gJ1xcdURCRkZcXHVERkZEJyIp
KSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgKytpKSB7
CisgICAgICAgICAgICAgIGlmICghY2hlY2tfdHJ1ZShpbnB1dFtpXSBpbnN0YW5jZW9mIFN0cmlu
ZywgJ2lucHV0WycraSsnXSBpbnN0YW5jZW9mIFN0cmluZycpKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQp
OworICAgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0pKCk7CisgICAg
ICAgIGJyZWFrOworICAgICAgY2FzZSAnT2JqZWN0IFN0cmluZyBvYmplY3RzJzoKKyAgICAgICAg
KGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0IGluc3RhbmNlb2Yg
T2JqZWN0LCAnaW5wdXQgaW5zdGFuY2VvZiBPYmplY3QnKSAmJgorICAgICAgICAgICAgICBjaGVj
a190cnVlKCEoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSksICchKGlucHV0IGluc3RhbmNlb2YgQXJy
YXkpJykgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShTdHJpbmcoaW5wdXRbJ2VtcHR5J10p
ID09PSAnJywgIlN0cmluZyhpbnB1dFsnZW1wdHknXSkgPT09ICcnIikgJiYKKyAgICAgICAgICAg
ICAgY2hlY2tfdHJ1ZShTdHJpbmcoaW5wdXRbJ2hpZ2ggc3Vycm9nYXRlJ10pID09PSAnXHVEODAw
JywgIlN0cmluZyhpbnB1dFsnaGlnaCBzdXJyb2dhdGUnXSkgPT09ICdcXHVEODAwJyIpICYmCisg
ICAgICAgICAgICAgIGNoZWNrX3RydWUoU3RyaW5nKGlucHV0Wydsb3cgc3Vycm9nYXRlJ10pID09
PSAnXHVEQzAwJywgIlN0cmluZyhpbnB1dFsnbG93IHN1cnJvZ2F0ZSddKSA9PT0gJ1xcdURDMDAn
IikgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShTdHJpbmcoaW5wdXRbJ251bCddKSA9PT0g
J1x1MDAwMCcsICJTdHJpbmcoaW5wdXRbJ251bCddKSA9PT0gJ1xcdTAwMDAnIikgJiYKKyAgICAg
ICAgICAgICAgY2hlY2tfdHJ1ZShTdHJpbmcoaW5wdXRbJ2FzdHJhbCddKSA9PT0gJ1x1REJGRlx1
REZGRCcsICJTdHJpbmcoaW5wdXRbJ2FzdHJhbCddKSA9PT0gJ1xcdURCRkZcXHVERkZEJyIpKSB7
CisgICAgICAgICAgICB2YXIgaSA9IDA7CisgICAgICAgICAgICBmb3IgKHZhciB4IGluIGlucHV0
KSB7CisgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgaWYgKCFjaGVja190cnVlKGlu
cHV0W3hdIGluc3RhbmNlb2YgU3RyaW5nLCAnaW5wdXRbJyt4KyddIGluc3RhbmNlb2YgQm9vbGVh
bicpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChjaGVja190cnVlKGkgPT09IDUsICdpID09PSA1JykpIHsKKyAgICAgICAgICAgICAgcG9y
dC5wb3N0TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgfQorICAgICAgICB9KSgpOworICAgICAgICBicmVhazsKKyAgICAgIGNh
c2UgJ051bWJlciAwLjInOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9m
IE51bWJlciwgImlucHV0IGluc3RhbmNlb2YgTnVtYmVyIikgJiYKKyAgICAgICAgICAgIGNoZWNr
X3RydWUoTnVtYmVyKGlucHV0KSA9PT0gMC4yLCAiTnVtYmVyKGlucHV0KSA9PT0gMC4yIikpIHsK
KyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICBjbG9zZSgpOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnTnVtYmVyIDAnOgorICAgICAg
ICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIE51bWJlciwgImlucHV0IGluc3RhbmNl
b2YgTnVtYmVyIikgJiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoMS9OdW1iZXIoaW5wdXQpID09
PSBJbmZpbml0eSwgIjEvTnVtYmVyKGlucHV0KSA9PT0gSW5maW5pdHkiKSkgeworICAgICAgICAg
IHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdOdW1iZXIgLTAnOgorICAgICAgICBpZiAoY2hl
Y2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIE51bWJlciwgImlucHV0IGluc3RhbmNlb2YgTnVtYmVy
IikgJiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoMS9OdW1iZXIoaW5wdXQpID09PSAtSW5maW5p
dHksICIxL051bWJlcihpbnB1dCkgPT09IC1JbmZpbml0eSIpKSB7CisgICAgICAgICAgcG9ydC5w
b3N0TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICAgIGNhc2UgJ051bWJlciBOYU4nOgorICAgICAgICBpZiAoY2hlY2tfdHJ1
ZShpbnB1dCBpbnN0YW5jZW9mIE51bWJlciwgImlucHV0IGluc3RhbmNlb2YgTnVtYmVyIikgJiYK
KyAgICAgICAgICAgIGNoZWNrX3RydWUoTnVtYmVyKGlucHV0KSAhPT0gTnVtYmVyKGlucHV0KSwg
Ik51bWJlcihpbnB1dCkgIT09IE51bWJlcihpbnB1dCkiKSkgeworICAgICAgICAgIHBvcnQucG9z
dE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgICBjYXNlICdOdW1iZXIgSW5maW5pdHknOgorICAgICAgICBpZiAoY2hlY2tf
dHJ1ZShpbnB1dCBpbnN0YW5jZW9mIE51bWJlciwgImlucHV0IGluc3RhbmNlb2YgTnVtYmVyIikg
JiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoTnVtYmVyKGlucHV0KSA9PT0gSW5maW5pdHksICJO
dW1iZXIoaW5wdXQpID09PSBJbmZpbml0eSIpKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2Fn
ZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsK
KyAgICAgIGNhc2UgJ051bWJlciAtSW5maW5pdHknOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShp
bnB1dCBpbnN0YW5jZW9mIE51bWJlciwgImlucHV0IGluc3RhbmNlb2YgTnVtYmVyIikgJiYKKyAg
ICAgICAgICAgIGNoZWNrX3RydWUoTnVtYmVyKGlucHV0KSA9PT0gLUluZmluaXR5LCAiTnVtYmVy
KGlucHV0KSA9PT0gLUluZmluaXR5IikpIHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlu
cHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
ICAgY2FzZSAnTnVtYmVyIDkwMDcxOTkyNTQ3NDA5OTInOgorICAgICAgICBpZiAoY2hlY2tfdHJ1
ZShpbnB1dCBpbnN0YW5jZW9mIE51bWJlcikgJiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoTnVt
YmVyKGlucHV0KSA9PT0gOTAwNzE5OTI1NDc0MDk5MiwgIk51bWJlcihpbnB1dCkgPT09IDkwMDcx
OTkyNTQ3NDA5OTIiKSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAg
ICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdO
dW1iZXIgLTkwMDcxOTkyNTQ3NDA5OTInOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBp
bnN0YW5jZW9mIE51bWJlciwgImlucHV0IGluc3RhbmNlb2YgTnVtYmVyIikgJiYKKyAgICAgICAg
ICAgIGNoZWNrX3RydWUoTnVtYmVyKGlucHV0KSA9PT0gLTkwMDcxOTkyNTQ3NDA5OTIsICJOdW1i
ZXIoaW5wdXQpID09PSAtOTAwNzE5OTI1NDc0MDk5MiIpKSB7CisgICAgICAgICAgcG9ydC5wb3N0
TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICAgIGNhc2UgJ051bWJlciA5MDA3MTk5MjU0NzQwOTk0JzoKKyAgICAgICAgaWYg
KGNoZWNrX3RydWUoaW5wdXQgaW5zdGFuY2VvZiBOdW1iZXIsICJpbnB1dCBpbnN0YW5jZW9mIE51
bWJlciIpICYmCisgICAgICAgICAgICBjaGVja190cnVlKE51bWJlcihpbnB1dCkgPT09IDkwMDcx
OTkyNTQ3NDA5OTQsICJOdW1iZXIoaW5wdXQpID09PSA5MDA3MTk5MjU0NzQwOTk0IikpIHsKKyAg
ICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnTnVtYmVyIC05MDA3MTk5MjU0NzQw
OTk0JzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgaW5zdGFuY2VvZiBOdW1iZXIsICJp
bnB1dCBpbnN0YW5jZW9mIE51bWJlciIpICYmCisgICAgICAgICAgICBjaGVja190cnVlKE51bWJl
cihpbnB1dCkgPT09IC05MDA3MTk5MjU0NzQwOTk0LCAiTnVtYmVyKGlucHV0KSA9PT0gLTkwMDcx
OTkyNTQ3NDA5OTQiKSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAg
ICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdB
cnJheSBOdW1iZXIgb2JqZWN0cyc6CisgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICBp
ZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIEFycmF5LCAnaW5wdXQgaW5zdGFuY2VvZiBB
cnJheScpICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQubGVuZ3RoID09PSAxMCwg
J2lucHV0Lmxlbmd0aCA9PT0gMTAnKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKE51bWJl
cihpbnB1dFswXSkgPT09IDAuMiwgIk51bWJlcihpbnB1dFswXSkgPT09IDAuMiIpICYmCisgICAg
ICAgICAgICAgIGNoZWNrX3RydWUoMS9OdW1iZXIoaW5wdXRbMV0pID09PSBJbmZpbml0eSwgIjEv
TnVtYmVyKGlucHV0WzFdKSA9PT0gSW5maW5pdHkiKSAmJgorICAgICAgICAgICAgICBjaGVja190
cnVlKDEvTnVtYmVyKGlucHV0WzJdKSA9PT0gLUluZmluaXR5LCAiMS9OdW1iZXIoaW5wdXRbMl0p
ID09PSAtSW5maW5pdHkiKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKE51bWJlcihpbnB1
dFszXSkgIT09IE51bWJlcihpbnB1dFszXSksICJOdW1iZXIoaW5wdXRbM10pICE9PSBOdW1iZXIo
aW5wdXRbM10pIikgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShOdW1iZXIoaW5wdXRbNF0p
ID09PSBJbmZpbml0eSwgIk51bWJlcihpbnB1dFs0XSkgPT09IEluZmluaXR5IikgJiYKKyAgICAg
ICAgICAgICAgY2hlY2tfdHJ1ZShOdW1iZXIoaW5wdXRbNV0pID09PSAtSW5maW5pdHksICJOdW1i
ZXIoaW5wdXRbNV0pID09PSAtSW5maW5pdHkiKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVl
KE51bWJlcihpbnB1dFs2XSkgPT09IDkwMDcxOTkyNTQ3NDA5OTIsICJOdW1iZXIoaW5wdXRbNl0p
ID09PSA5MDA3MTk5MjU0NzQwOTkyIikgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShOdW1i
ZXIoaW5wdXRbN10pID09PSAtOTAwNzE5OTI1NDc0MDk5MiwgIk51bWJlcihpbnB1dFs3XSkgPT09
IC05MDA3MTk5MjU0NzQwOTkyIikgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShOdW1iZXIo
aW5wdXRbOF0pID09PSA5MDA3MTk5MjU0NzQwOTk0LCAiTnVtYmVyKGlucHV0WzhdKSA9PT0gOTAw
NzE5OTI1NDc0MDk5NCIpICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUoTnVtYmVyKGlucHV0
WzldKSA9PT0gLTkwMDcxOTkyNTQ3NDA5OTQsICJOdW1iZXIoaW5wdXRbOV0pID09PSAtOTAwNzE5
OTI1NDc0MDk5NCIpKSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0Lmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICAgIGlmICghY2hlY2tfdHJ1ZShpbnB1dFtpXSBpbnN0
YW5jZW9mIE51bWJlciwgJ2lucHV0WycraSsnXSBpbnN0YW5jZW9mIE51bWJlcicpKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcnQucG9zdE1l
c3NhZ2UoaW5wdXQpOworICAgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgICB9CisgICAgICAg
IH0pKCk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnT2JqZWN0IE51bWJlciBvYmplY3Rz
JzoKKyAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0
IGluc3RhbmNlb2YgT2JqZWN0LCAnaW5wdXQgaW5zdGFuY2VvZiBPYmplY3QnKSAmJgorICAgICAg
ICAgICAgICBjaGVja190cnVlKCEoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSksICchKGlucHV0IGlu
c3RhbmNlb2YgQXJyYXkpJykgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZShOdW1iZXIoaW5w
dXRbJzAuMiddKSA9PT0gMC4yLCAiTnVtYmVyKGlucHV0WycwLjInXSkgPT09IDAuMiIpICYmCisg
ICAgICAgICAgICAgIGNoZWNrX3RydWUoMS9OdW1iZXIoaW5wdXRbJzAnXSkgPT09IEluZmluaXR5
LCAiMS9OdW1iZXIoaW5wdXRbJzAnXSkgPT09IEluZmluaXR5IikgJiYKKyAgICAgICAgICAgICAg
Y2hlY2tfdHJ1ZSgxL051bWJlcihpbnB1dFsnLTAnXSkgPT09IC1JbmZpbml0eSwgIjEvTnVtYmVy
KGlucHV0WyctMCddKSA9PT0gLUluZmluaXR5IikgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1
ZShOdW1iZXIoaW5wdXRbJ05hTiddKSAhPT0gTnVtYmVyKGlucHV0WydOYU4nXSksICJOdW1iZXIo
aW5wdXRbJ05hTiddKSAhPT0gTnVtYmVyKGlucHV0WydOYU4nXSkiKSAmJgorICAgICAgICAgICAg
ICBjaGVja190cnVlKE51bWJlcihpbnB1dFsnSW5maW5pdHknXSkgPT09IEluZmluaXR5LCAiTnVt
YmVyKGlucHV0WydJbmZpbml0eSddKSA9PT0gSW5maW5pdHkiKSAmJgorICAgICAgICAgICAgICBj
aGVja190cnVlKE51bWJlcihpbnB1dFsnLUluZmluaXR5J10pID09PSAtSW5maW5pdHksICJOdW1i
ZXIoaW5wdXRbJy1JbmZpbml0eSddKSA9PT0gLUluZmluaXR5IikgJiYKKyAgICAgICAgICAgICAg
Y2hlY2tfdHJ1ZShOdW1iZXIoaW5wdXRbJzkwMDcxOTkyNTQ3NDA5OTInXSkgPT09IDkwMDcxOTky
NTQ3NDA5OTIsICJOdW1iZXIoaW5wdXRbJzkwMDcxOTkyNTQ3NDA5OTInXSkgPT09IDkwMDcxOTky
NTQ3NDA5OTIiKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKE51bWJlcihpbnB1dFsnLTkw
MDcxOTkyNTQ3NDA5OTInXSkgPT09IC05MDA3MTk5MjU0NzQwOTkyLCAiTnVtYmVyKGlucHV0Wyct
OTAwNzE5OTI1NDc0MDk5MiddKSA9PT0gLTkwMDcxOTkyNTQ3NDA5OTIiKSAmJgorICAgICAgICAg
ICAgICBjaGVja190cnVlKE51bWJlcihpbnB1dFsnOTAwNzE5OTI1NDc0MDk5NCddKSA9PT0gOTAw
NzE5OTI1NDc0MDk5NCwgIk51bWJlcihpbnB1dFsnOTAwNzE5OTI1NDc0MDk5NCddKSA9PT0gOTAw
NzE5OTI1NDc0MDk5NCIpICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUoTnVtYmVyKGlucHV0
WyctOTAwNzE5OTI1NDc0MDk5NCddKSA9PT0gLTkwMDcxOTkyNTQ3NDA5OTQsICJOdW1iZXIoaW5w
dXRbJy05MDA3MTk5MjU0NzQwOTk0J10pID09PSAtOTAwNzE5OTI1NDc0MDk5NCIpKSB7CisgICAg
ICAgICAgICB2YXIgaSA9IDA7CisgICAgICAgICAgICBmb3IgKHZhciB4IGluIGlucHV0KSB7Cisg
ICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgaWYgKCFjaGVja190cnVlKGlucHV0W3hd
IGluc3RhbmNlb2YgTnVtYmVyLCAnaW5wdXRbJyt4KyddIGluc3RhbmNlb2YgTnVtYmVyJykpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNo
ZWNrX3RydWUoaSA9PT0gMTAsICdpID09PSAxMCcpKSB7CisgICAgICAgICAgICAgIHBvcnQucG9z
dE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgICAgICBjbG9zZSgpOworICAgICAgICAgICAgfQor
ICAgICAgICAgIH0KKyAgICAgICAgfSkoKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdE
YXRlIDAnOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIERhdGUsICJp
bnB1dCBpbnN0YW5jZW9mIERhdGUiKSAmJgorICAgICAgICAgICAgY2hlY2tfdHJ1ZSgxL051bWJl
cihpbnB1dCkgPT09IDEvTnVtYmVyKG5ldyBEYXRlKDApKSwgIjEvTnVtYmVyKGlucHV0KSA9PT0g
MS9OdW1iZXIobmV3IERhdGUoMCkpIikpIHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlu
cHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
ICAgY2FzZSAnRGF0ZSAtMCc6CisgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0IGluc3RhbmNl
b2YgRGF0ZSwgImlucHV0IGluc3RhbmNlb2YgRGF0ZSIpICYmCisgICAgICAgICAgICBjaGVja190
cnVlKDEvTnVtYmVyKGlucHV0KSA9PT0gMS9OdW1iZXIobmV3IERhdGUoLTApKSwgIjEvTnVtYmVy
KGlucHV0KSA9PT0gMS9OdW1iZXIobmV3IERhdGUoLTApKSIpKSB7CisgICAgICAgICAgcG9ydC5w
b3N0TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICAgIGNhc2UgJ0RhdGUgLTguNjRlMTUnOgorICAgICAgICBpZiAoY2hlY2tf
dHJ1ZShpbnB1dCBpbnN0YW5jZW9mIERhdGUsICJpbnB1dCBpbnN0YW5jZW9mIERhdGUiKSAmJgor
ICAgICAgICAgICAgY2hlY2tfdHJ1ZShOdW1iZXIoaW5wdXQpID09PSAtOC42NGUxNSwgIk51bWJl
cihpbnB1dCkgPT09IC04LjY0ZTE1IikpIHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlu
cHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
ICAgY2FzZSAnRGF0ZSA4LjY0ZTE1JzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgaW5z
dGFuY2VvZiBEYXRlLCAiaW5wdXQgaW5zdGFuY2VvZiBEYXRlIikgJiYKKyAgICAgICAgICAgIGNo
ZWNrX3RydWUoTnVtYmVyKGlucHV0KSA9PT0gOC42NGUxNSwgIk51bWJlcihpbnB1dCkgPT09IDgu
NjRlMTUiKSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAg
IGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdBcnJheSBE
YXRlIG9iamVjdHMnOgorICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKGNoZWNr
X3RydWUoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSwgJ2lucHV0IGluc3RhbmNlb2YgQXJyYXknKSAm
JgorICAgICAgICAgICAgICBjaGVja190cnVlKGlucHV0Lmxlbmd0aCA9PT0gNCwgJ2lucHV0Lmxl
bmd0aCA9PT0gNCcpICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUoMS9OdW1iZXIoaW5wdXRb
MF0pID09PSAxL25ldyBEYXRlKDApLCAnMS9OdW1iZXIoaW5wdXRbMF0pID09PSAxL25ldyBEYXRl
KDApJykgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZSgxL051bWJlcihpbnB1dFsxXSkgPT09
IDEvbmV3IERhdGUoLTApLCAnMS9OdW1iZXIoaW5wdXRbMV0pID09PSAxL25ldyBEYXRlKC0wKScp
ICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUoTnVtYmVyKGlucHV0WzJdKSA9PT0gLTguNjRl
MTUsICdOdW1iZXIoaW5wdXRbMl0pID09PSAtOC42NGUxNScpICYmCisgICAgICAgICAgICAgIGNo
ZWNrX3RydWUoTnVtYmVyKGlucHV0WzNdKSA9PT0gOC42NGUxNSwgJ051bWJlcihpbnB1dFszXSkg
PT09IDguNjRlMTUnKSkgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dC5s
ZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICBpZiAoIWNoZWNrX3RydWUoaW5wdXRbaV0gaW5z
dGFuY2VvZiBEYXRlLCAnaW5wdXRbJytpKyddIGluc3RhbmNlb2YgRGF0ZScpKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcnQucG9zdE1lc3Nh
Z2UoaW5wdXQpOworICAgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0p
KCk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnT2JqZWN0IERhdGUgb2JqZWN0cyc6Cisg
ICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0
YW5jZW9mIE9iamVjdCwgJ2lucHV0IGluc3RhbmNlb2YgT2JqZWN0JykgJiYKKyAgICAgICAgICAg
ICAgY2hlY2tfdHJ1ZSghKGlucHV0IGluc3RhbmNlb2YgQXJyYXkpLCAnIShpbnB1dCBpbnN0YW5j
ZW9mIEFycmF5KScpICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUoMS9OdW1iZXIoaW5wdXRb
JzAnXSkgPT09IDEvbmV3IERhdGUoMCksICIxL051bWJlcihpbnB1dFsnMCddKSA9PT0gMS9uZXcg
RGF0ZSgwKSIpICYmCisgICAgICAgICAgICAgIGNoZWNrX3RydWUoMS9OdW1iZXIoaW5wdXRbJy0w
J10pID09PSAxL25ldyBEYXRlKC0wKSwgIjEvTnVtYmVyKGlucHV0WzFdKSA9PT0gMS9uZXcgRGF0
ZSgtMCkiKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKE51bWJlcihpbnB1dFsnLTguNjRl
MTUnXSkgPT09IC04LjY0ZTE1LCAiTnVtYmVyKGlucHV0WyctOC42NGUxNSddKSA9PT0gLTguNjRl
MTUiKSAmJgorICAgICAgICAgICAgICBjaGVja190cnVlKE51bWJlcihpbnB1dFsnOC42NGUxNSdd
KSA9PT0gOC42NGUxNSwgIk51bWJlcihpbnB1dFsnOC42NGUxNSddKSA9PT0gOC42NGUxNSIpKSB7
CisgICAgICAgICAgICB2YXIgaSA9IDA7CisgICAgICAgICAgICBmb3IgKHZhciB4IGluIGlucHV0
KSB7CisgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgaWYgKCFjaGVja190cnVlKGlu
cHV0W3hdIGluc3RhbmNlb2YgRGF0ZSwgJ2lucHV0WycreCsnXSBpbnN0YW5jZW9mIERhdGUnKSkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3J0
LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgICAgfQor
ICAgICAgICB9KSgpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ1JlZ0V4cCBmbGFncyBh
bmQgbGFzdEluZGV4JzoKKyAgICAgIGNhc2UgJ1JlZ0V4cCBlbXB0eSc6CisgICAgICBjYXNlICdS
ZWdFeHAgc2xhc2gnOgorICAgICAgY2FzZSAnUmVnRXhwIG5ldyBsaW5lJzoKKyAgICAgICAgaWYg
KGNoZWNrX1JlZ0V4cChtc2csIGlucHV0KSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2Uo
aW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgICBjYXNlICdBcnJheSBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgZmxhZ3MgYW5kIGxhc3RJbmRl
eCc6CisgICAgICBjYXNlICdBcnJheSBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgZW1wdHknOgorICAg
ICAgY2FzZSAnQXJyYXkgUmVnRXhwIG9iamVjdCwgUmVnRXhwIHNsYXNoJzoKKyAgICAgIGNhc2Ug
J0FycmF5IFJlZ0V4cCBvYmplY3QsIFJlZ0V4cCBuZXcgbGluZSc6CisgICAgICAgIGlmIChjaGVj
a190cnVlKGlucHV0IGluc3RhbmNlb2YgQXJyYXksICdpbnB1dCBpbnN0YW5jZW9mIEFycmF5Jykg
JiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQubGVuZ3RoID09PSAxLCAnaW5wdXQubGVu
Z3RoID09PSAxJykgJiYKKyAgICAgICAgICAgIGNoZWNrX1JlZ0V4cChtc2cuc3Vic3RyKCdBcnJh
eSBSZWdFeHAgb2JqZWN0LCAnLmxlbmd0aCksIGlucHV0WzBdKSkgeworICAgICAgICAgIHBvcnQu
cG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgICBjYXNlICdPYmplY3QgUmVnRXhwIG9iamVjdCwgUmVnRXhwIGZsYWdz
IGFuZCBsYXN0SW5kZXgnOgorICAgICAgY2FzZSAnT2JqZWN0IFJlZ0V4cCBvYmplY3QsIFJlZ0V4
cCBlbXB0eSc6CisgICAgICBjYXNlICdPYmplY3QgUmVnRXhwIG9iamVjdCwgUmVnRXhwIHNsYXNo
JzoKKyAgICAgIGNhc2UgJ09iamVjdCBSZWdFeHAgb2JqZWN0LCBSZWdFeHAgbmV3IGxpbmUnOgor
ICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgaW5z
dGFuY2VvZiBPYmplY3QsICdpbnB1dCBpbnN0YW5jZW9mIE9iamVjdCcpICYmCisgICAgICAgICAg
ICAgIGNoZWNrX3RydWUoIShpbnB1dCBpbnN0YW5jZW9mIEFycmF5KSwgJyEoaW5wdXQgaW5zdGFu
Y2VvZiBBcnJheSknKSAmJgorICAgICAgICAgICAgICBjaGVja19SZWdFeHAobXNnLnN1YnN0cign
T2JqZWN0IFJlZ0V4cCBvYmplY3QsICcubGVuZ3RoKSwgaW5wdXRbJ3gnXSkpIHsKKyAgICAgICAg
ICAgIHZhciBpID0gMDsKKyAgICAgICAgICAgIGZvciAodmFyIHggaW4gaW5wdXQpIHsKKyAgICAg
ICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoZWNrX3RydWUo
aSA9PT0gMSwgJ2kgPT09IDEnKSkgeworICAgICAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlu
cHV0KTsKKyAgICAgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9
CisgICAgICAgIH0pKCk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnQmxvYiBiYXNpYyc6
CisgICAgICBjYXNlICdCbG9iIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRlIChpbnZhbGlkIHV0Zi04
KSc6CisgICAgICBjYXNlICdCbG9iIHVucGFpcmVkIGxvdyBzdXJyb2dhdGUgKGludmFsaWQgdXRm
LTgpJzoKKyAgICAgIGNhc2UgJ0Jsb2IgcGFpcmVkIHN1cnJvZ2F0ZXMgKGludmFsaWQgdXRmLTgp
JzoKKyAgICAgIGNhc2UgJ0Jsb2IgZW1wdHknOgorICAgICAgY2FzZSAnQmxvYiBOVUwnOgorICAg
ICAgICBjaGVja19CbG9iKG1zZywgaW5wdXQsIHBvcnQpOworICAgICAgICAvLyBubyBwb3N0TWVz
c2FnZSBvciBjbG9zZSBoZXJlLCBjaGVja19CbG9iIHRha2VzIGNhcmUgb2YgdGhhdAorICAgICAg
ICBicmVhazsKKyAgICAgIGNhc2UgJ0FycmF5IEJsb2Igb2JqZWN0LCBCbG9iIGJhc2ljJzoKKyAg
ICAgIGNhc2UgJ0FycmF5IEJsb2Igb2JqZWN0LCBCbG9iIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRl
IChpbnZhbGlkIHV0Zi04KSc6CisgICAgICBjYXNlICdBcnJheSBCbG9iIG9iamVjdCwgQmxvYiB1
bnBhaXJlZCBsb3cgc3Vycm9nYXRlIChpbnZhbGlkIHV0Zi04KSc6CisgICAgICBjYXNlICdBcnJh
eSBCbG9iIG9iamVjdCwgQmxvYiBwYWlyZWQgc3Vycm9nYXRlcyAoaW52YWxpZCB1dGYtOCknOgor
ICAgICAgY2FzZSAnQXJyYXkgQmxvYiBvYmplY3QsIEJsb2IgZW1wdHknOgorICAgICAgY2FzZSAn
QXJyYXkgQmxvYiBvYmplY3QsIEJsb2IgTlVMJzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5w
dXQgaW5zdGFuY2VvZiBBcnJheSwgJ2lucHV0IGluc3RhbmNlb2YgQXJyYXknKSAmJgorICAgICAg
ICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5sZW5ndGggPT09IDEsICdpbnB1dC5sZW5ndGggPT09IDEn
KSkgeworICAgICAgICAgIGNoZWNrX0Jsb2IobXNnLnN1YnN0cignQXJyYXkgQmxvYiBvYmplY3Qs
ICcubGVuZ3RoKSwgaW5wdXRbMF0sIHBvcnQsIGZhbHNlLCBpbnB1dCk7CisgICAgICAgICAgLy8g
bm8gcG9zdE1lc3NhZ2Ugb3IgY2xvc2UgaGVyZSwgY2hlY2tfQmxvYiB0YWtlcyBjYXJlIG9mIHRo
YXQKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ09iamVjdCBCbG9iIG9i
amVjdCwgQmxvYiBiYXNpYyc6CisgICAgICBjYXNlICdPYmplY3QgQmxvYiBvYmplY3QsIEJsb2Ig
dW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUgKGludmFsaWQgdXRmLTgpJzoKKyAgICAgIGNhc2UgJ09i
amVjdCBCbG9iIG9iamVjdCwgQmxvYiB1bnBhaXJlZCBsb3cgc3Vycm9nYXRlIChpbnZhbGlkIHV0
Zi04KSc6CisgICAgICBjYXNlICdPYmplY3QgQmxvYiBvYmplY3QsIEJsb2IgcGFpcmVkIHN1cnJv
Z2F0ZXMgKGludmFsaWQgdXRmLTgpJzoKKyAgICAgIGNhc2UgJ09iamVjdCBCbG9iIG9iamVjdCwg
QmxvYiBlbXB0eSc6CisgICAgICBjYXNlICdPYmplY3QgQmxvYiBvYmplY3QsIEJsb2IgTlVMJzoK
KyAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0IGlu
c3RhbmNlb2YgT2JqZWN0LCAnaW5wdXQgaW5zdGFuY2VvZiBPYmplY3QnKSAmJgorICAgICAgICAg
ICAgICBjaGVja190cnVlKCEoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSksICchKGlucHV0IGluc3Rh
bmNlb2YgQXJyYXkpJykpIHsKKyAgICAgICAgICAgIHZhciBpID0gMDsKKyAgICAgICAgICAgIGZv
ciAodmFyIHggaW4gaW5wdXQpIHsKKyAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGNoZWNrX3RydWUoaSA9PT0gMSwgJ2kgPT09IDEnKSkgeworICAgICAg
ICAgICAgICBjaGVja19CbG9iKG1zZy5zdWJzdHIoJ09iamVjdCBCbG9iIG9iamVjdCwgJy5sZW5n
dGgpLCBpbnB1dFsneCddLCBwb3J0LCBmYWxzZSwgaW5wdXQpOworICAgICAgICAgICAgICAvLyBu
byBwb3N0TWVzc2FnZSBvciBjbG9zZSBoZXJlLCBjaGVja19CbG9iIHRha2VzIGNhcmUgb2YgdGhh
dAorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfSkoKTsKKyAgICAgICAgYnJl
YWs7CisgICAgICBjYXNlICdGaWxlIGJhc2ljJzoKKyAgICAgICAgY2hlY2tfQmxvYihtc2csIGlu
cHV0LCBwb3J0LCB0cnVlKTsKKyAgICAgICAgLy8gbm8gcG9zdE1lc3NhZ2Ugb3IgY2xvc2UgaGVy
ZSwgY2hlY2tfQmxvYiB0YWtlcyBjYXJlIG9mIHRoYXQKKyAgICAgICAgYnJlYWs7CisgICAgICBj
YXNlICdGaWxlTGlzdCBlbXB0eSc6CisgICAgICAgIGlmIChjaGVja19GaWxlTGlzdChtc2csIGlu
cHV0KSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNs
b3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdBcnJheSBGaWxl
TGlzdCBvYmplY3QsIEZpbGVMaXN0IGVtcHR5JzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5w
dXQgaW5zdGFuY2VvZiBBcnJheSwgJ2lucHV0IGluc3RhbmNlb2YgQXJyYXknKSAmJgorICAgICAg
ICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5sZW5ndGggPT09IDEsICdpbnB1dC5sZW5ndGggPT09IDEn
KSAmJgorICAgICAgICAgICAgY2hlY2tfRmlsZUxpc3QobXNnLnN1YnN0cignQXJyYXkgRmlsZUxp
c3Qgb2JqZWN0LCAnLmxlbmd0aCksIGlucHV0WzBdKSkgeworICAgICAgICAgIHBvcnQucG9zdE1l
c3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgICBjYXNlICdPYmplY3QgRmlsZUxpc3Qgb2JqZWN0LCBGaWxlTGlzdCBlbXB0eSc6
CisgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBp
bnN0YW5jZW9mIE9iamVjdCwgJ2lucHV0IGluc3RhbmNlb2YgT2JqZWN0JykgJiYKKyAgICAgICAg
ICAgICAgY2hlY2tfdHJ1ZSghKGlucHV0IGluc3RhbmNlb2YgQXJyYXkpLCAnIShpbnB1dCBpbnN0
YW5jZW9mIEFycmF5KScpICYmCisgICAgICAgICAgICAgIGNoZWNrX0ZpbGVMaXN0KG1zZy5zdWJz
dHIoJ0FycmF5IEZpbGVMaXN0IG9iamVjdCwgJy5sZW5ndGgpLCBpbnB1dFsneCddKSkgeworICAg
ICAgICAgICAgdmFyIGkgPSAwOworICAgICAgICAgICAgZm9yICh2YXIgeCBpbiBpbnB1dCkgewor
ICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2hlY2tf
dHJ1ZShpID09PSAxLCAnaSA9PT0gMScpKSB7CisgICAgICAgICAgICAgIHBvcnQucG9zdE1lc3Nh
Z2UoaW5wdXQpOworICAgICAgICAgICAgICBjbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICAgIH0KKyAgICAgICAgfSkoKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdJbWFnZURh
dGEgMXgxIHRyYW5zcGFyZW50IGJsYWNrJzoKKyAgICAgICAgaWYgKGNoZWNrX0ltYWdlRGF0YShp
bnB1dCwge3dpZHRoOjEsIGhlaWdodDoxLCBkYXRhOlswLDAsMCwwXX0pKSB7CisgICAgICAgICAg
cG9ydC5wb3N0TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ0ltYWdlRGF0YSAxeDEgbm9uLXRyYW5zcGFyZW50
IG5vbi1ibGFjayc6CisgICAgICAgIGlmIChjaGVja19JbWFnZURhdGEoaW5wdXQsIHt3aWR0aDox
LCBoZWlnaHQ6MSwgZGF0YTpbMTAwLCAxMDEsIDEwMiwgMTAzXX0pKSB7CisgICAgICAgICAgcG9y
dC5wb3N0TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICAgIGNhc2UgJ0FycmF5IEltYWdlRGF0YSBvYmplY3QsIEltYWdlRGF0
YSAxeDEgdHJhbnNwYXJlbnQgYmxhY2snOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBp
bnN0YW5jZW9mIEFycmF5LCAnaW5wdXQgaW5zdGFuY2VvZiBBcnJheScpICYmCisgICAgICAgICAg
ICBjaGVja190cnVlKGlucHV0Lmxlbmd0aCA9PT0gMSwgJ2lucHV0Lmxlbmd0aCA9PT0gMScpICYm
CisgICAgICAgICAgICBjaGVja19JbWFnZURhdGEoaW5wdXRbMF0sIHt3aWR0aDoxLCBoZWlnaHQ6
MSwgZGF0YTpbMCwwLDAsMF19KSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQp
OworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBj
YXNlICdBcnJheSBJbWFnZURhdGEgb2JqZWN0LCBJbWFnZURhdGEgMXgxIG5vbi10cmFuc3BhcmVu
dCBub24tYmxhY2snOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIEFy
cmF5LCAnaW5wdXQgaW5zdGFuY2VvZiBBcnJheScpICYmCisgICAgICAgICAgICBjaGVja190cnVl
KGlucHV0Lmxlbmd0aCA9PT0gMSwgJ2lucHV0Lmxlbmd0aCA9PT0gMScpICYmCisgICAgICAgICAg
ICBjaGVja19JbWFnZURhdGEoaW5wdXRbMF0sIHt3aWR0aDoxLCBoZWlnaHQ6MSwgZGF0YTpbMTAw
LCAxMDEsIDEwMiwgMTAzXX0pKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShpbnB1dCk7
CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIGNh
c2UgJ09iamVjdCBJbWFnZURhdGEgb2JqZWN0LCBJbWFnZURhdGEgMXgxIHRyYW5zcGFyZW50IGJs
YWNrJzoKKyAgICAgICAgKGZ1bmN0aW9uKCl7CisgICAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5w
dXQgaW5zdGFuY2VvZiBPYmplY3QsICdpbnB1dCBpbnN0YW5jZW9mIE9iamVjdCcpICYmCisgICAg
ICAgICAgICAgIGNoZWNrX3RydWUoIShpbnB1dCBpbnN0YW5jZW9mIEFycmF5KSwgJyEoaW5wdXQg
aW5zdGFuY2VvZiBBcnJheSknKSAmJgorICAgICAgICAgICAgICBjaGVja19JbWFnZURhdGEoaW5w
dXRbJ3gnXSwge3dpZHRoOjEsIGhlaWdodDoxLCBkYXRhOlswLDAsMCwwXX0pKSB7CisgICAgICAg
ICAgICB2YXIgaSA9IDA7CisgICAgICAgICAgICBmb3IgKHZhciB4IGluIGlucHV0KSB7CisgICAg
ICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaGVja190cnVl
KGkgPT09IDEsICdpID09PSAxJykpIHsKKyAgICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShp
bnB1dCk7CisgICAgICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
fQorICAgICAgICB9KSgpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ09iamVjdCBJbWFn
ZURhdGEgb2JqZWN0LCBJbWFnZURhdGEgMXgxIG5vbi10cmFuc3BhcmVudCBub24tYmxhY2snOgor
ICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgaW5z
dGFuY2VvZiBPYmplY3QsICdpbnB1dCBpbnN0YW5jZW9mIE9iamVjdCcpICYmCisgICAgICAgICAg
ICAgIGNoZWNrX3RydWUoIShpbnB1dCBpbnN0YW5jZW9mIEFycmF5KSwgJyEoaW5wdXQgaW5zdGFu
Y2VvZiBBcnJheSknKSAmJgorICAgICAgICAgICAgICBjaGVja19JbWFnZURhdGEoaW5wdXRbJ3gn
XSwge3dpZHRoOjEsIGhlaWdodDoxLCBkYXRhOlsxMDAsIDEwMSwgMTAyLCAxMDNdfSkpIHsKKyAg
ICAgICAgICAgIHZhciBpID0gMDsKKyAgICAgICAgICAgIGZvciAodmFyIHggaW4gaW5wdXQpIHsK
KyAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoZWNr
X3RydWUoaSA9PT0gMSwgJ2kgPT09IDEnKSkgeworICAgICAgICAgICAgICBwb3J0LnBvc3RNZXNz
YWdlKGlucHV0KTsKKyAgICAgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICB9CisgICAgICAgIH0pKCk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnSW1hZ2VC
aXRtYXAgMXgxIHRyYW5zcGFyZW50IGJsYWNrJzoKKyAgICAgICAgaWYgKGNoZWNrX0ltYWdlQml0
bWFwKGlucHV0LCB7d2lkdGg6MSwgaGVpZ2h0OjEsIGRhdGE6WzAsIDAsIDAsIDBdfSkpIHsKKyAg
ICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnSW1hZ2VCaXRtYXAgMXgxIG5vbi10
cmFuc3BhcmVudCBub24tYmxhY2snOgorICAgICAgICBpZiAoY2hlY2tfSW1hZ2VCaXRtYXAoaW5w
dXQsIHt3aWR0aDoxLCBoZWlnaHQ6MSwgZGF0YTpbMTAwLCAxMDEsIDEwMiwgMTAzXX0pKSB7Cisg
ICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ0FycmF5IEltYWdlQml0bWFwIG9i
amVjdCwgSW1hZ2VCaXRtYXAgMXgxIHRyYW5zcGFyZW50IGJsYWNrJzoKKyAgICAgICAgaWYgKGNo
ZWNrX3RydWUoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSwgJ2lucHV0IGluc3RhbmNlb2YgQXJyYXkn
KSAmJgorICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5sZW5ndGggPT09IDEsICdpbnB1dC5s
ZW5ndGggPT09IDEnKSAmJgorICAgICAgICAgICAgY2hlY2tfSW1hZ2VCaXRtYXAoaW5wdXRbMF0s
IHt3aWR0aDoxLCBoZWlnaHQ6MSwgZGF0YTpbMCwgMCwgMCwgMF19KSkgeworICAgICAgICAgIHBv
cnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgICBjYXNlICdBcnJheSBJbWFnZUJpdG1hcCBvYmplY3QsIEltYWdl
Qml0bWFwIDF4MSBub24tdHJhbnNwYXJlbnQgbm9uLWJsYWNrJzoKKyAgICAgICAgaWYgKGNoZWNr
X3RydWUoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSwgJ2lucHV0IGluc3RhbmNlb2YgQXJyYXknKSAm
JgorICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5sZW5ndGggPT09IDEsICdpbnB1dC5sZW5n
dGggPT09IDEnKSAmJgorICAgICAgICAgICAgY2hlY2tfSW1hZ2VCaXRtYXAoaW5wdXRbMF0sIHt3
aWR0aDoxLCBoZWlnaHQ6MSwgZGF0YTpbMTAwLCAxMDEsIDEwMiwgMTAzXX0pKSB7CisgICAgICAg
ICAgcG9ydC5wb3N0TWVzc2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ09iamVjdCBJbWFnZUJpdG1hcCBvYmplY3Qs
IEltYWdlQml0bWFwIDF4MSB0cmFuc3BhcmVudCBibGFjayc6CisgICAgICAgIChmdW5jdGlvbigp
IHsKKyAgICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIE9iamVjdCwgJ2lu
cHV0IGluc3RhbmNlb2YgT2JqZWN0JykgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZSghKGlu
cHV0IGluc3RhbmNlb2YgQXJyYXkpLCAnIShpbnB1dCBpbnN0YW5jZW9mIEFycmF5KScpICYmCisg
ICAgICAgICAgICAgIGNoZWNrX0ltYWdlQml0bWFwKGlucHV0Wyd4J10sIHt3aWR0aDoxLCBoZWln
aHQ6MSwgZGF0YTpbMCwgMCwgMCwgMF19KSkgeworICAgICAgICAgICAgdmFyIGkgPSAwOworICAg
ICAgICAgICAgZm9yICh2YXIgeCBpbiBpbnB1dCkgeworICAgICAgICAgICAgICBpKys7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpID09PSAxLCAnaSA9PT0gMScp
KSB7CisgICAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgICAg
ICBjbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfSkoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgICBjYXNlICdPYmplY3QgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFn
ZUJpdG1hcCAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjayc6CisgICAgICAgIChmdW5jdGlv
bigpIHsKKyAgICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIE9iamVjdCwg
J2lucHV0IGluc3RhbmNlb2YgT2JqZWN0JykgJiYKKyAgICAgICAgICAgICAgY2hlY2tfdHJ1ZSgh
KGlucHV0IGluc3RhbmNlb2YgQXJyYXkpLCAnIShpbnB1dCBpbnN0YW5jZW9mIEFycmF5KScpICYm
CisgICAgICAgICAgICAgIGNoZWNrX0ltYWdlQml0bWFwKGlucHV0Wyd4J10sIHt3aWR0aDoxLCBo
ZWlnaHQ6MSwgZGF0YTpbMTAwLCAxMDEsIDEwMiwgMTAzXX0pKSB7CisgICAgICAgICAgICB2YXIg
aSA9IDA7CisgICAgICAgICAgICBmb3IgKHZhciB4IGluIGlucHV0KSB7CisgICAgICAgICAgICAg
IGkrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaGVja190cnVlKGkgPT09IDEs
ICdpID09PSAxJykpIHsKKyAgICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShpbnB1dCk7Cisg
ICAgICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAg
ICB9KSgpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ0FycmF5IHNwYXJzZSc6CisgICAg
ICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5j
ZW9mIEFycmF5LCAnaW5wdXQgaW5zdGFuY2VvZiBBcnJheScpICYmCisgICAgICAgICAgICAgIGNo
ZWNrX3RydWUoaW5wdXQubGVuZ3RoID09PSAxMCwgJ2lucHV0Lmxlbmd0aCA9PT0gMTAnKSkgewor
ICAgICAgICAgICAgZm9yICh2YXIgeCBpbiBpbnB1dCkgeworICAgICAgICAgICAgICBjaGVja190
cnVlKGZhbHNlLCAndW5leHBlY3RlZCBlbnVtZXJhYmxlIHByb3BlcnR5ICcreCk7CisgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcnQucG9zdE1lc3Nh
Z2UoaW5wdXQpOworICAgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0p
KCk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnQXJyYXkgd2l0aCBub24taW5kZXggcHJv
cGVydHknOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIEFycmF5LCAn
aW5wdXQgaW5zdGFuY2VvZiBBcnJheScpICYmCisgICAgICAgICAgICBjaGVja190cnVlKGlucHV0
Lmxlbmd0aCA9PT0gMCwgJ2lucHV0Lmxlbmd0aCA9PT0gMCcpICYmCisgICAgICAgICAgICBjaGVj
a190cnVlKGlucHV0LmZvbyA9PT0gJ2JhcicsICJpbnB1dC5mb28gPT09ICdiYXInIikpIHsKKyAg
ICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnT2JqZWN0IHdpdGggaW5kZXggcHJv
cGVydHkgYW5kIGxlbmd0aCc6CisgICAgICAgIGlmIChjaGVja190cnVlKGlucHV0IGluc3RhbmNl
b2YgT2JqZWN0LCAnaW5wdXQgaW5zdGFuY2VvZiBPYmplY3QnKSAmJgorICAgICAgICAgICAgY2hl
Y2tfdHJ1ZSghKGlucHV0IGluc3RhbmNlb2YgQXJyYXkpLCAnIShpbnB1dCBpbnN0YW5jZW9mIEFy
cmF5KScpICYmCisgICAgICAgICAgICBjaGVja190cnVlKGlucHV0WzBdID09PSAnZm9vJywgImlu
cHV0WzBdID09PSAnZm9vJyIpICYmCisgICAgICAgICAgICBjaGVja190cnVlKGlucHV0Lmxlbmd0
aCA9PT0gMSwgJ2lucHV0Lmxlbmd0aCA9PT0gMScpKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVz
c2FnZShpbnB1dCk7CisgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICAgIGNhc2UgJ0FycmF5IHdpdGggY2lyY3VsYXIgcmVmZXJlbmNlJzoKKyAgICAgICAg
aWYgKGNoZWNrX3RydWUoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSwgJ2lucHV0IGluc3RhbmNlb2Yg
QXJyYXknKSAmJgorICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dC5sZW5ndGggPT09IDEsICdp
bnB1dC5sZW5ndGggPT09IDEnKSAmJgorICAgICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dFswXSA9
PT0gaW5wdXQsICJpbnB1dFswXSA9PT0gaW5wdXQiKSkgeworICAgICAgICAgIHBvcnQucG9zdE1l
c3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgICBjYXNlICdPYmplY3Qgd2l0aCBjaXJjdWxhciByZWZlcmVuY2UnOgorICAgICAg
ICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIE9iamVjdCwgJ2lucHV0IGluc3RhbmNl
b2YgT2JqZWN0JykgJiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoIShpbnB1dCBpbnN0YW5jZW9m
IEFycmF5KSwgJyEoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSknKSAmJgorICAgICAgICAgICAgY2hl
Y2tfdHJ1ZShpbnB1dFsneCddID09PSBpbnB1dCwgImlucHV0Wyd4J10gPT09IGlucHV0IikpIHsK
KyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGlucHV0KTsKKyAgICAgICAgICBjbG9zZSgpOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnQXJyYXkgd2l0aCBpZGVudGlj
YWwgcHJvcGVydHkgdmFsdWVzJzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgaW5zdGFu
Y2VvZiBBcnJheSwgJ2lucHV0IGluc3RhbmNlb2YgQXJyYXknKSAmJgorICAgICAgICAgICAgY2hl
Y2tfdHJ1ZShpbnB1dC5sZW5ndGggPT09IDIsICdpbnB1dC5sZW5ndGggPT09IDInKSAmJgorICAg
ICAgICAgICAgY2hlY2tfdHJ1ZShpbnB1dFswXSA9PT0gaW5wdXRbMV0sICJpbnB1dFswXSA9PT0g
aW5wdXRbMV0iKSkgeworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAg
ICAgIGNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdPYmpl
Y3Qgd2l0aCBpZGVudGljYWwgcHJvcGVydHkgdmFsdWVzJzoKKyAgICAgICAgaWYgKGNoZWNrX3Ry
dWUoaW5wdXQgaW5zdGFuY2VvZiBPYmplY3QsICdpbnB1dCBpbnN0YW5jZW9mIE9iamVjdCcpICYm
CisgICAgICAgICAgICBjaGVja190cnVlKCEoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSksICchKGlu
cHV0IGluc3RhbmNlb2YgQXJyYXkpJykgJiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXRb
J3gnXSA9PT0gaW5wdXRbJ3knXSwgImlucHV0Wyd4J10gPT09IGlucHV0Wyd5J10iKSkgeworICAg
ICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQpOworICAgICAgICAgIGNsb3NlKCk7CisgICAg
ICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdPYmplY3Qgd2l0aCBwcm9wZXJ0eSBv
biBwcm90b3R5cGUnOgorICAgICAgY2FzZSAnT2JqZWN0IHdpdGggbm9uLWVudW1lcmFibGUgcHJv
cGVydHknOgorICAgICAgICBpZiAoY2hlY2tfdHJ1ZShpbnB1dCBpbnN0YW5jZW9mIE9iamVjdCwg
J2lucHV0IGluc3RhbmNlb2YgT2JqZWN0JykgJiYKKyAgICAgICAgICAgIGNoZWNrX3RydWUoIShp
bnB1dCBpbnN0YW5jZW9mIEFycmF5KSwgJyEoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSknKSAmJgor
ICAgICAgICAgICAgY2hlY2tfdHJ1ZSghKCdmb28nIGluIGlucHV0KSwgIiEoJ2ZvbycgaW4gaW5w
dXQpIikpIHsKKyAgICAgICAgICBpbnB1dCA9IHt9OworICAgICAgICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShpbnB1dCwgJ2ZvbycsIHt2YWx1ZTonYmFyJywgZW51bWVyYWJsZTpmYWxzZSwgd3Jp
dGFibGU6dHJ1ZSwgY29uZmlndXJhYmxlOnRydWV9KTsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNz
YWdlKGlucHV0KTsKKyAgICAgICAgICBjbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgICAgY2FzZSAnT2JqZWN0IHdpdGggbm9uLXdyaXRhYmxlIHByb3BlcnR5JzoKKyAgICAg
ICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgaW5zdGFuY2VvZiBPYmplY3QsICdpbnB1dCBpbnN0YW5j
ZW9mIE9iamVjdCcpICYmCisgICAgICAgICAgICBjaGVja190cnVlKCEoaW5wdXQgaW5zdGFuY2Vv
ZiBBcnJheSksICchKGlucHV0IGluc3RhbmNlb2YgQXJyYXkpJykgJiYKKyAgICAgICAgICAgIGNo
ZWNrX3RydWUoaW5wdXQuZm9vID09PSAnYmFyJywgImlucHV0LmZvbyA9PT0gYmFyIikpIHsKKyAg
ICAgICAgICBpbnB1dC5mb28gKz0gJyBiYXonOworICAgICAgICAgIGlmIChjaGVja190cnVlKGlu
cHV0LmZvbyA9PT0gJ2JhciBiYXonLCAiaW5wdXQuZm9vID09PSAnYmFyIGJheiciKSkgeworICAg
ICAgICAgICAgaW5wdXQgPSB7fTsKKyAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShp
bnB1dCwgJ2ZvbycsIHt2YWx1ZTonYmFyJywgZW51bWVyYWJsZTp0cnVlLCB3cml0YWJsZTpmYWxz
ZSwgY29uZmlndXJhYmxlOnRydWV9KTsKKyAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5w
dXQpOworICAgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgICBjYXNlICdPYmplY3Qgd2l0aCBub24tY29uZmlndXJhYmxlIHByb3Bl
cnR5JzoKKyAgICAgICAgaWYgKGNoZWNrX3RydWUoaW5wdXQgaW5zdGFuY2VvZiBPYmplY3QsICdp
bnB1dCBpbnN0YW5jZW9mIE9iamVjdCcpICYmCisgICAgICAgICAgICBjaGVja190cnVlKCEoaW5w
dXQgaW5zdGFuY2VvZiBBcnJheSksICchKGlucHV0IGluc3RhbmNlb2YgQXJyYXkpJykgJiYKKyAg
ICAgICAgICAgIGNoZWNrX3RydWUoaW5wdXQuZm9vID09PSAnYmFyJywgImlucHV0LmZvbyA9PT0g
YmFyIikpIHsKKyAgICAgICAgICBkZWxldGUgaW5wdXQuZm9vOworICAgICAgICAgIGlmIChjaGVj
a190cnVlKCEoJ2ZvbycgaW4gaW5wdXQpLCAiISgnZm9vJyBpbiBpbnB1dCkiKSkgeworICAgICAg
ICAgICAgaW5wdXQgPSB7fTsKKyAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnB1
dCwgJ2ZvbycsIHt2YWx1ZTonYmFyJywgZW51bWVyYWJsZTp0cnVlLCB3cml0YWJsZTp0cnVlLCBj
b25maWd1cmFibGU6ZmFsc2V9KTsKKyAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoaW5wdXQp
OworICAgICAgICAgICAgY2xvc2UoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ0ZBSUw6
IHVua25vd24gdGVzdCcpOworICAgICAgICBjbG9zZSgpOworICAgIH0KKyAgICBpZiAobG9nLmxl
bmd0aCA+IDApIHsKKyAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ0ZBSUwgJytsb2cpOworICAgICAg
Y2xvc2UoKTsKKyAgICB9CisgIH0gY2F0Y2ggKGV4KSB7CisgICAgcG9ydC5wb3N0TWVzc2FnZSgn
RkFJTCAnK2V4KTsKKyAgICBjbG9zZSgpOworICB9Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>