<?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>96588</bug_id>
          
          <creation_ts>2012-09-12 18:26:03 -0700</creation_ts>
          <short_desc>Support new TestExpectations format alongside old one</short_desc>
          <delta_ts>2012-09-19 15:36:07 -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>528+ (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>NRWT</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>96569</dependson>
          <blocked>89161</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>718956</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-12 18:26:03 -0700</bug_when>
    <thetext>Support new TestExpectations format alongside old one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718961</commentid>
    <comment_count>1</comment_count>
      <attachid>163756</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-12 18:28:10 -0700</bug_when>
    <thetext>Created attachment 163756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723887</commentid>
    <comment_count>2</comment_count>
      <attachid>164789</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-19 15:34:18 -0700</bug_when>
    <thetext>Created attachment 164789
merge to HEAD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723888</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-19 15:36:07 -0700</bug_when>
    <thetext>Committed r129052: &lt;http://trac.webkit.org/changeset/129052&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163756</attachid>
            <date>2012-09-12 18:28:10 -0700</date>
            <delta_ts>2012-09-19 15:34:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96588-20120912182743.patch</filename>
            <type>text/plain</type>
            <size>42164</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4Mzg2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzY0NjdhZjYwMjBlOTlmYTdmYjdhMjY2ZWVkNGYxNWIw
MWZjZjEwYS4uOTExNzE0MDgyYzZkZmY4ZWVlYWU0MDI5NGNiOTQxOTY3NGIzZTA1MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY1
IEBACiAyMDEyLTA5LTEyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIFN1cHBvcnQgbmV3IFRlc3RFeHBlY3RhdGlvbnMgZm9ybWF0IGFsb25nc2lkZSBvbGQg
b25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjU4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhY3R1YWxseSByZWFkaW5nIGluIGxpbmVzIGZvcm1hdHRl
ZAorICAgICAgICBpbiB0aGUgbmV3IHN0eWxlLCBhbmQgd2hlbiB3ZSByZS1zZXJpYWxpemUvd3Jp
dGUgb3V0IHRoZSBmaWxlLAorICAgICAgICBhbGwgbGluZXMgd2lsbCBiZSB3cml0dGVuIGluIHRo
ZSBuZXcgc3R5bGUuIE5vdGUgdGhhdCByZWFkaW5nIGluCisgICAgICAgIHRoZSBvbGQgc3R5bGUg
aXMgc3RpbGwgc3VwcG9ydGVkLCBhbmQgbm8gdXBkYXRlcyBhcmUgYmVpbmcgbWFkZQorICAgICAg
ICB0byB0aGUgYWN0dWFsIFRlc3RFeHBlY3RhdGlvbnMgZmlsZXMgYXMgcGFydCBvZiB0aGlzIGNo
YW5nZS4KKworICAgICAgICBUaGlzIGNoYW5nZSB1cGRhdGVzIG1vc3QgYnV0IG5vdCBhbGwgb2Yg
dGhlIHVuaXQgdGVzdHMgdG8gdXNlCisgICAgICAgIHRoZSBuZXcgc3ludGF4LiBJIHdpbGwgdXBk
YXRlIHRoZSByZXN0IHdoZW4gKG9yIGJlZm9yZSB3aGVyZQorICAgICAgICBwb3NzaWJsZSkgSSBk
cm9wIHN1cHBvcnQgZm9yIHRoZSBvbGQgZm9ybWF0LgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAgICAo
VGVzdEV4cGVjdGF0aW9uUGFyc2VyKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblBhcnNlci5f
dG9rZW5pemVfbGluZSk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25QYXJzZXIuX3Rva2VuaXpl
X2xpbmVfdXNpbmdfbmV3X2Zvcm1hdCk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25MaW5lLnRv
X3N0cmluZyk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25MaW5lLl9mb3JtYXRfbGluZSk6Cisg
ICAgICAgIChUZXN0RXhwZWN0YXRpb25zKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHk6CisgICAgICAg
ICh0ZXN0X3BhcnNlX3dhcm5pbmcpOgorICAgICAgICAoU2tpcHBlZFRlc3RzLnRlc3Rfc2tpcHBl
ZF9lbnRyeV9kb250X2V4aXN0KToKKyAgICAgICAgKE5ld0V4cGVjdGF0aW9uU3ludGF4VGVzdHMu
dGVzdF93YXJuaW5ncyk6CisgICAgICAgIChSZW1vdmVDb25maWd1cmF0aW9uc1Rlc3QudGVzdF9y
ZW1vdmUpOgorICAgICAgICAodGVzdF9yZW1vdmVfbGluZSk6CisgICAgICAgIChSZWJhc2VsaW5p
bmdUZXN0LnRlc3RfcmVtb3ZlKToKKyAgICAgICAgKFJlYmFzZWxpbmluZ1Rlc3QudGVzdF9ub19n
ZXRfcmViYXNlbGluaW5nX2ZhaWx1cmVzKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblBhcnNl
clRlc3RzLnRlc3RfdG9rZW5pemVfYmxhbmspOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uUGFy
c2VyVGVzdHMudGVzdF90b2tlbml6ZV9leHRyYV9jb2xvbik6CisgICAgICAgIChUZXN0RXhwZWN0
YXRpb25QYXJzZXJUZXN0cy50ZXN0X3Rva2VuaXplX21pc3NpbmdfZXF1YWwpOgorICAgICAgICAo
VGVzdEV4cGVjdGF0aW9uUGFyc2VyVGVzdHMudGVzdF90b2tlbml6ZV9leHRyYV9lcXVhbCk6Cisg
ICAgICAgIChUZXN0RXhwZWN0YXRpb25TZXJpYWxpemF0aW9uVGVzdHMudGVzdF91bnBhcnNlZF90
b19zdHJpbmcpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uU2VyaWFsaXphdGlvblRlc3RzLnRl
c3RfdW5wYXJzZWRfbGlzdF90b19zdHJpbmcpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uU2Vy
aWFsaXphdGlvblRlc3RzLnRlc3RfcGFyc2VkX3RvX3N0cmluZyk6CisgICAgICAgIChUZXN0RXhw
ZWN0YXRpb25TZXJpYWxpemF0aW9uVGVzdHMudGVzdF9mb3JtYXRfbGluZSk6CisgICAgICAgIChU
ZXN0RXhwZWN0YXRpb25TZXJpYWxpemF0aW9uVGVzdHMudGVzdF9zdHJpbmdfcm91bmR0cmlwKToK
KyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblNlcmlhbGl6YXRpb25UZXN0cy50ZXN0X2xpc3Rfcm91
bmR0cmlwKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblNlcmlhbGl6YXRpb25UZXN0cy50ZXN0
X3JlY29uc3RpdHV0ZV9vbmx5X3RoZXNlKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblNlcmlh
bGl6YXRpb25UZXN0cy50ZXN0X3N0cmluZ193aGl0ZXNwYWNlX3N0cmlwcGluZyk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3Jh
dGlvbnRlc3QucHk6CisgICAgICAgIChMaW50VGVzdC50ZXN0X2xpbnRfdGVzdF9maWxlc19fZXJy
b3JzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllc191
bml0dGVzdC5weToKKyAgICAgICAgKFByaW50RXhwZWN0YXRpb25zVGVzdC50ZXN0X2Jhc2ljKToK
KyAgICAgICAgKFByaW50RXhwZWN0YXRpb25zVGVzdC50ZXN0X211bHRpcGxlKToKKyAgICAgICAg
KFByaW50RXhwZWN0YXRpb25zVGVzdC50ZXN0X2Z1bGwpOgorICAgICAgICAoUHJpbnRFeHBlY3Rh
dGlvbnNUZXN0LnRlc3RfZXhjbHVkZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3JlYmFzZWxpbmUucHk6CisgICAgICAgIChSZWJhc2VsaW5lRXhwZWN0YXRpb25z
LmV4ZWN1dGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJh
c2VsaW5lX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdFJlYmFzZWxpbmUudGVzdF9yZWJhc2Vs
aW5lX3VwZGF0ZXNfZXhwZWN0YXRpb25zX2ZpbGVfbm9vcCk6CisgICAgICAgICh0ZXN0X3JlYmFz
ZWxpbmVfdXBkYXRlc19leHBlY3RhdGlvbnNfZmlsZSk6CisgICAgICAgICh0ZXN0X3JlYmFzZWxp
bmVfZG9lc19ub3RfaW5jbHVkZV9vdmVycmlkZXMpOgorICAgICAgICAodGVzdF9yZWJhc2VsaW5l
X2V4cGVjdGF0aW9uc19ub29wKToKKyAgICAgICAgKHRlc3Rfb3ZlcnJpZGVzX2FyZV9pbmNsdWRl
ZF9jb3JyZWN0bHkpOgorCisyMDEyLTA5LTEyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21p
dW0ub3JnPgorCiAgICAgICAgIGltcGxlbWVudCBmaXJzdCBwYXJ0IG9mIHN1cHBvcnQgZm9yIHRo
ZSBuZXcgVGVzdEV4cGVjdGF0aW9ucyBzeW50YXgKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NTY5CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5w
eQppbmRleCAxMjU5MzNkYzMzNDE3N2ZkNzFiZmNhYjVmOTRlYjU0ODZkMTVhNjU2Li45ZGYyMmFl
YmFiNmQ2ZWU2NGRlNmJiMTc0MDBjYmIyMWUzN2YyNWEyIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0
YXRpb25zLnB5CkBAIC0yMDUsMTAgKzIwNSwxNSBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25QYXJz
ZXIob2JqZWN0KToKICAgICAgICAgaWYgZXhwZWN0YXRpb25fbGluZS5wYXRoIGluIHNlbGYuX2Z1
bGxfdGVzdF9saXN0OgogICAgICAgICAgICAgZXhwZWN0YXRpb25fbGluZS5tYXRjaGluZ190ZXN0
cy5hcHBlbmQoZXhwZWN0YXRpb25fbGluZS5wYXRoKQogCisgICAgIyBGSVhNRTogU2VlbXMgbGlr
ZSB0aGVzZSBzaG91bGQgYmUgY2xhc3NtZXRob2RzIG9uIFRlc3RFeHBlY3RhdGlvbkxpbmUgaW5z
dGVhZCBvZiBUZXN0RXhwZWN0YXRpb25QYXJzZXIuCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVm
IF90b2tlbml6ZV9saW5lKGNscywgZmlsZW5hbWUsIGV4cGVjdGF0aW9uX3N0cmluZywgbGluZV9u
dW1iZXIpOgotICAgICAgICAjIEZJWE1FOiBBZGQgaW4gc3VwcG9ydCBmb3IgdGhlIG5ldyBmb3Jt
YXQgYXMgd2VsbC4KLSAgICAgICAgcmV0dXJuIGNscy5fdG9rZW5pemVfbGluZV91c2luZ19vbGRf
Zm9ybWF0KGZpbGVuYW1lLCBleHBlY3RhdGlvbl9zdHJpbmcsIGxpbmVfbnVtYmVyKQorICAgICAg
ICBleHBlY3RhdGlvbl9saW5lID0gY2xzLl90b2tlbml6ZV9saW5lX3VzaW5nX25ld19mb3JtYXQo
ZmlsZW5hbWUsIGV4cGVjdGF0aW9uX3N0cmluZywgbGluZV9udW1iZXIpCisgICAgICAgIGlmIGV4
cGVjdGF0aW9uX2xpbmUuaXNfaW52YWxpZCgpOgorICAgICAgICAgICAgb2xkX2V4cGVjdGF0aW9u
X2xpbmUgPSBjbHMuX3Rva2VuaXplX2xpbmVfdXNpbmdfb2xkX2Zvcm1hdChmaWxlbmFtZSwgZXhw
ZWN0YXRpb25fc3RyaW5nLCBsaW5lX251bWJlcikKKyAgICAgICAgICAgIGlmIG5vdCBvbGRfZXhw
ZWN0YXRpb25fbGluZS5pc19pbnZhbGlkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIG9sZF9l
eHBlY3RhdGlvbl9saW5lCisgICAgICAgIHJldHVybiBleHBlY3RhdGlvbl9saW5lCiAKICAgICBA
Y2xhc3NtZXRob2QKICAgICBkZWYgX3Rva2VuaXplX2xpbmVfdXNpbmdfb2xkX2Zvcm1hdChjbHMs
IGZpbGVuYW1lLCBleHBlY3RhdGlvbl9zdHJpbmcsIGxpbmVfbnVtYmVyKToKQEAgLTI2MSwxOSAr
MjY2LDI0IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvblBhcnNlcihvYmplY3QpOgogICAgIF0KIAog
ICAgIF9jb25maWd1cmF0aW9uX3Rva2VucyA9IGRpY3QoKHRva2VuLCB0b2tlbi51cHBlcigpKSBm
b3IgdG9rZW4gaW4gX2NvbmZpZ3VyYXRpb25fdG9rZW5zX2xpc3QpCisgICAgX2ludmVydGVkX2Nv
bmZpZ3VyYXRpb25fdG9rZW5zID0gZGljdCgodmFsdWUsIG5hbWUpIGZvciBuYW1lLCB2YWx1ZSBp
biBfY29uZmlndXJhdGlvbl90b2tlbnMuaXRlcml0ZW1zKCkpCiAKICAgICAjIE5vdGU6IHdlIGNh
bid0IGRpc3Rpbmd1aXNoIGF1ZGlvIGZhaWx1cmVzIG9yIGltYWdlK3RleHQgZmFpbHVyZXMgZnJv
bSB0ZXh0LW9ubHkgZmFpbHVyZXMuCiAgICAgIyBGSVhNRTogVXBkYXRlIHRoZSBvcmlnaW5hbCBt
b2RpZmllcnMgbGlzdCBhbmQgcmVtb3ZlIHRoaXMgb25jZSB0aGUgb2xkIHN5bnRheCBpcyBnb25l
LgogICAgIF9leHBlY3RhdGlvbl90b2tlbnMgPSB7Ci0gICAgICAgICdXb250Rml4JzogJ1dPTlRG
SVgnLAotICAgICAgICAnUGFzcyc6ICdQQVNTJywKKyAgICAgICAgJ0NyYXNoJzogJ0NSQVNIJywK
ICAgICAgICAgJ0ZhaWx1cmUnOiAnVEVYVCcsCiAgICAgICAgICdJbWFnZU9ubHlGYWlsdXJlJzog
J0lNQUdFJywKLSAgICAgICAgJ0NyYXNoJzogJ0NSQVNIJywKLSAgICAgICAgJ1RpbWVvdXQnOiAn
VElNRU9VVCcsCisgICAgICAgICdQYXNzJzogJ1BBU1MnLAorICAgICAgICAnUmViYXNlbGluZSc6
ICdSRUJBU0VMSU5FJywKKyAgICAgICAgJ1NraXAnOiAnU0tJUCcsCiAgICAgICAgICdTbG93Jzog
J1NMT1cnLAorICAgICAgICAnVGltZW91dCc6ICdUSU1FT1VUJywKKyAgICAgICAgJ1dvbnRGaXgn
OiAnV09OVEZJWCcsCiAgICAgfQogCisgICAgX2ludmVydGVkX2V4cGVjdGF0aW9uX3Rva2VucyA9
IGRpY3QoKHZhbHVlLCBuYW1lKSBmb3IgbmFtZSwgdmFsdWUgaW4gX2V4cGVjdGF0aW9uX3Rva2Vu
cy5pdGVyaXRlbXMoKSkKKwogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBfdG9rZW5pemVfbGlu
ZV91c2luZ19uZXdfZm9ybWF0KGNscywgZmlsZW5hbWUsIGV4cGVjdGF0aW9uX3N0cmluZywgbGlu
ZV9udW1iZXIpOgogICAgICAgICAiIiJUb2tlbml6ZXMgYSBsaW5lIGZyb20gVGVzdEV4cGVjdGF0
aW9ucyBhbmQgcmV0dXJucyBhbiB1bnBhcnNlZCBUZXN0RXhwZWN0YXRpb25MaW5lIGluc3RhbmNl
IHVzaW5nIHRoZSBvbGQgZm9ybWF0LgpAQCAtMjg2LDYgKzI5Niw3IEBAIGNsYXNzIFRlc3RFeHBl
Y3RhdGlvblBhcnNlcihvYmplY3QpOgogCiAgICAgICAgICIiIgogICAgICAgICBleHBlY3RhdGlv
bl9saW5lID0gVGVzdEV4cGVjdGF0aW9uTGluZSgpCisgICAgICAgIGV4cGVjdGF0aW9uX2xpbmUu
b3JpZ2luYWxfc3RyaW5nID0gZXhwZWN0YXRpb25fc3RyaW5nCiAgICAgICAgIGV4cGVjdGF0aW9u
X2xpbmUuZmlsZW5hbWUgPSBmaWxlbmFtZQogICAgICAgICBleHBlY3RhdGlvbl9saW5lLmxpbmVf
bnVtYmVyID0gbGluZV9udW1iZXIKIApAQCAtNDMyLDE4ICs0NDMsMTkgQEAgY2xhc3MgVGVzdEV4
cGVjdGF0aW9uTGluZShvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYub3JpZ2luYWxf
c3RyaW5nIG9yICcnCiAKICAgICAgICAgaWYgc2VsZi5uYW1lIGlzIE5vbmU6Ci0gICAgICAgICAg
ICByZXR1cm4gJycgaWYgc2VsZi5jb21tZW50IGlzIE5vbmUgZWxzZSAiLy8lcyIgJSBzZWxmLmNv
bW1lbnQKKyAgICAgICAgICAgIHJldHVybiAnJyBpZiBzZWxmLmNvbW1lbnQgaXMgTm9uZSBlbHNl
ICIjJXMiICUgc2VsZi5jb21tZW50CiAKICAgICAgICAgaWYgdGVzdF9jb25maWd1cmF0aW9uX2Nv
bnZlcnRlciBhbmQgc2VsZi5wYXJzZWRfYnVnX21vZGlmaWVyczoKICAgICAgICAgICAgIHNwZWNp
ZmllcnNfbGlzdCA9IHRlc3RfY29uZmlndXJhdGlvbl9jb252ZXJ0ZXIudG9fc3BlY2lmaWVyc19s
aXN0KHNlbGYubWF0Y2hpbmdfY29uZmlndXJhdGlvbnMpCiAgICAgICAgICAgICByZXN1bHQgPSBb
XQogICAgICAgICAgICAgZm9yIHNwZWNpZmllcnMgaW4gc3BlY2lmaWVyc19saXN0OgotICAgICAg
ICAgICAgICAgIG1vZGlmaWVycyA9IHNlbGYuX3NlcmlhbGl6ZV9wYXJzZWRfbW9kaWZpZXJzKHRl
c3RfY29uZmlndXJhdGlvbl9jb252ZXJ0ZXIsIHNwZWNpZmllcnMpCi0gICAgICAgICAgICAgICAg
ZXhwZWN0YXRpb25zID0gc2VsZi5fc2VyaWFsaXplX3BhcnNlZF9leHBlY3RhdGlvbnMocGFyc2Vk
X2V4cGVjdGF0aW9uX3RvX3N0cmluZykKKyAgICAgICAgICAgICAgICAjIEZJWE1FOiB0aGlzIGlz
IHNpbGx5IHRoYXQgd2Ugam9pbiB0aGUgbW9kaWZpZXJzIGFuZCB0aGVuIGltbWVkaWF0ZWx5IHNw
bGl0IHRoZW0uCisgICAgICAgICAgICAgICAgbW9kaWZpZXJzID0gc2VsZi5fc2VyaWFsaXplX3Bh
cnNlZF9tb2RpZmllcnModGVzdF9jb25maWd1cmF0aW9uX2NvbnZlcnRlciwgc3BlY2lmaWVycyku
c3BsaXQoKQorICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX3NlcmlhbGl6ZV9w
YXJzZWRfZXhwZWN0YXRpb25zKHBhcnNlZF9leHBlY3RhdGlvbl90b19zdHJpbmcpLnNwbGl0KCkK
ICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNlbGYuX2Zvcm1hdF9saW5lKG1vZGlmaWVy
cywgc2VsZi5uYW1lLCBleHBlY3RhdGlvbnMsIHNlbGYuY29tbWVudCkpCiAgICAgICAgICAgICBy
ZXR1cm4gIlxuIi5qb2luKHJlc3VsdCkgaWYgcmVzdWx0IGVsc2UgTm9uZQogCi0gICAgICAgIHJl
dHVybiBzZWxmLl9mb3JtYXRfbGluZSgiICIuam9pbihzZWxmLm1vZGlmaWVycyksIHNlbGYubmFt
ZSwgIiAiLmpvaW4oc2VsZi5leHBlY3RhdGlvbnMpLCBzZWxmLmNvbW1lbnQsCisgICAgICAgIHJl
dHVybiBzZWxmLl9mb3JtYXRfbGluZShzZWxmLm1vZGlmaWVycywgc2VsZi5uYW1lLCBzZWxmLmV4
cGVjdGF0aW9ucywgc2VsZi5jb21tZW50LAogICAgICAgICAgICAgaW5jbHVkZV9tb2RpZmllcnMs
IGluY2x1ZGVfZXhwZWN0YXRpb25zLCBpbmNsdWRlX2NvbW1lbnQpCiAKICAgICBkZWYgdG9fY3N2
KHNlbGYpOgpAQCAtNDY3LDE0ICs0NzksNDAgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uTGluZShv
YmplY3QpOgogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBfZm9ybWF0X2xpbmUobW9kaWZp
ZXJzLCBuYW1lLCBleHBlY3RhdGlvbnMsIGNvbW1lbnQsIGluY2x1ZGVfbW9kaWZpZXJzPVRydWUs
IGluY2x1ZGVfZXhwZWN0YXRpb25zPVRydWUsIGluY2x1ZGVfY29tbWVudD1UcnVlKToKKyAgICAg
ICAgYnVncyA9IFtdCisgICAgICAgIG5ld19tb2RpZmllcnMgPSBbXQorICAgICAgICBuZXdfZXhw
ZWN0YXRpb25zID0gW10KKyAgICAgICAgZm9yIG1vZGlmaWVyIGluIG1vZGlmaWVyczoKKyAgICAg
ICAgICAgIG1vZGlmaWVyID0gbW9kaWZpZXIudXBwZXIoKQorICAgICAgICAgICAgaWYgbW9kaWZp
ZXIuc3RhcnRzd2l0aCgnQlVHV0snKToKKyAgICAgICAgICAgICAgICBidWdzLmFwcGVuZCgnd2Vi
a2l0Lm9yZy9iLycgKyBtb2RpZmllci5yZXBsYWNlKCdCVUdXSycsICcnKSkKKyAgICAgICAgICAg
IGVsaWYgbW9kaWZpZXIuc3RhcnRzd2l0aCgnQlVHQ1InKToKKyAgICAgICAgICAgICAgICBidWdz
LmFwcGVuZCgnY3JidWcuY29tLycgKyBtb2RpZmllci5yZXBsYWNlKCdCVUdDUicsICcnKSkKKyAg
ICAgICAgICAgIGVsaWYgbW9kaWZpZXIuc3RhcnRzd2l0aCgnQlVHJyk6CisgICAgICAgICAgICAg
ICAgIyBGSVhNRTogd2Ugc2hvdWxkIHByZXNlcnZlIGNhc2Ugb25jZSB3ZSBjYW4gZHJvcCB0aGUg
b2xkIHN5bnRheC4KKyAgICAgICAgICAgICAgICBidWdzLmFwcGVuZCgnYnVnKCcgKyBtb2RpZmll
clszOl0ubG93ZXIoKSArICcpJykKKyAgICAgICAgICAgIGVsaWYgbW9kaWZpZXIgaW4gKCdTTE9X
JywgJ1NLSVAnLCAnUkVCQVNFTElORScsICdXT05URklYJyk6CisgICAgICAgICAgICAgICAgbmV3
X2V4cGVjdGF0aW9ucy5hcHBlbmQoVGVzdEV4cGVjdGF0aW9uUGFyc2VyLl9pbnZlcnRlZF9leHBl
Y3RhdGlvbl90b2tlbnMuZ2V0KG1vZGlmaWVyKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgbmV3X21vZGlmaWVycy5hcHBlbmQoVGVzdEV4cGVjdGF0aW9uUGFyc2VyLl9pbnZl
cnRlZF9jb25maWd1cmF0aW9uX3Rva2Vucy5nZXQobW9kaWZpZXIsIG1vZGlmaWVyKSkKKworICAg
ICAgICBmb3IgZXhwZWN0YXRpb24gaW4gZXhwZWN0YXRpb25zOgorICAgICAgICAgICAgZXhwZWN0
YXRpb24gPSBleHBlY3RhdGlvbi51cHBlcigpCisgICAgICAgICAgICBpZiBleHBlY3RhdGlvbiBp
biAoJ0lNQUdFK1RFWFQnLCAnQVVESU8nKToKKyAgICAgICAgICAgICAgICBleHBlY3RhdGlvbiA9
ICdURVhUJworICAgICAgICAgICAgbmV3X2V4cGVjdGF0aW9ucy5hcHBlbmQoVGVzdEV4cGVjdGF0
aW9uUGFyc2VyLl9pbnZlcnRlZF9leHBlY3RhdGlvbl90b2tlbnMuZ2V0KGV4cGVjdGF0aW9uLCBl
eHBlY3RhdGlvbikpCisKICAgICAgICAgcmVzdWx0ID0gJycKLSAgICAgICAgaWYgaW5jbHVkZV9t
b2RpZmllcnM6Ci0gICAgICAgICAgICByZXN1bHQgKz0gJyVzIDogJyAlIG1vZGlmaWVycy51cHBl
cigpCisgICAgICAgIGlmIGluY2x1ZGVfbW9kaWZpZXJzIGFuZCAoYnVncyBvciBuZXdfbW9kaWZp
ZXJzKToKKyAgICAgICAgICAgIGlmIGJ1Z3M6CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICcg
Jy5qb2luKGJ1Z3MpICsgJyAnCisgICAgICAgICAgICBpZiBuZXdfbW9kaWZpZXJzOgorICAgICAg
ICAgICAgICAgIHJlc3VsdCArPSAnWyAlcyBdICcgJSAnICcuam9pbihuZXdfbW9kaWZpZXJzKQog
ICAgICAgICByZXN1bHQgKz0gbmFtZQotICAgICAgICBpZiBpbmNsdWRlX2V4cGVjdGF0aW9uczoK
LSAgICAgICAgICAgIHJlc3VsdCArPSAnID0gJXMnICUgZXhwZWN0YXRpb25zLnVwcGVyKCkKKyAg
ICAgICAgaWYgaW5jbHVkZV9leHBlY3RhdGlvbnMgYW5kIG5ld19leHBlY3RhdGlvbnMgYW5kIHNl
dChuZXdfZXhwZWN0YXRpb25zKSAhPSBzZXQoWydTa2lwJywgJ1Bhc3MnXSk6CisgICAgICAgICAg
ICByZXN1bHQgKz0gJyBbICVzIF0nICUgJyAnLmpvaW4oc29ydGVkKHNldChuZXdfZXhwZWN0YXRp
b25zKSkpCiAgICAgICAgIGlmIGluY2x1ZGVfY29tbWVudCBhbmQgY29tbWVudCBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIHJlc3VsdCArPSAiIC8vJXMiICUgY29tbWVudAorICAgICAgICAgICAg
cmVzdWx0ICs9ICIgIyVzIiAlIGNvbW1lbnQKICAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAKQEAg
LTcxOCwyMSArNzU2LDIxIEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnMob2JqZWN0KToKICAgICBp
biB3aGljaCBjYXNlIHRoZSBleHBlY3RhdGlvbnMgYXBwbHkgdG8gYWxsIHRlc3QgY2FzZXMgaW4g
dGhhdAogICAgIGRpcmVjdG9yeSBhbmQgYW55IHN1YmRpcmVjdG9yeS4gVGhlIGZvcm1hdCBpcyBh
bG9uZyB0aGUgbGluZXMgb2Y6CiAKLSAgICAgIExheW91dFRlc3RzL2Zhc3QvanMvZml4bWUuanMg
PSBURVhUCi0gICAgICBMYXlvdXRUZXN0cy9mYXN0L2pzL2ZsYWt5LmpzID0gVEVYVCBQQVNTCi0g
ICAgICBMYXlvdXRUZXN0cy9mYXN0L2pzL2NyYXNoLmpzID0gQ1JBU0ggVElNRU9VVCBURVhUIFBB
U1MKKyAgICAgIExheW91dFRlc3RzL2Zhc3QvanMvZml4bWUuanMgWyBGYWlsdXJlIF0KKyAgICAg
IExheW91dFRlc3RzL2Zhc3QvanMvZmxha3kuanMgWyBGYWlsdXJlIFBhc3MgXQorICAgICAgTGF5
b3V0VGVzdHMvZmFzdC9qcy9jcmFzaC5qcyBbIENyYXNoIEZhaWx1cmUgUGFzcyBUaW1lb3V0IF0K
ICAgICAgIC4uLgogCiAgICAgVG8gYWRkIG1vZGlmaWVyczoKLSAgICAgIFNLSVAgOiBMYXlvdXRU
ZXN0cy9mYXN0L2pzL25vLWdvb2QuanMgPSBUSU1FT1VUIFBBU1MKLSAgICAgIERFQlVHIDogTGF5
b3V0VGVzdHMvZmFzdC9qcy9uby1nb29kLmpzID0gVElNRU9VVCBQQVNTCi0gICAgICBERUJVRyBT
S0lQIDogTGF5b3V0VGVzdHMvZmFzdC9qcy9uby1nb29kLmpzID0gVElNRU9VVCBQQVNTCi0gICAg
ICBMSU5VWCBERUJVRyBTS0lQIDogTGF5b3V0VGVzdHMvZmFzdC9qcy9uby1nb29kLmpzID0gVElN
RU9VVCBQQVNTCi0gICAgICBMSU5VWCBXSU4gOiBMYXlvdXRUZXN0cy9mYXN0L2pzL25vLWdvb2Qu
anMgPSBUSU1FT1VUIFBBU1MKKyAgICAgIExheW91dFRlc3RzL2Zhc3QvanMvbm8tZ29vZC5qcwor
ICAgICAgWyBEZWJ1ZyBdIExheW91dFRlc3RzL2Zhc3QvanMvbm8tZ29vZC5qcyBbIFBhc3MgVGlt
ZW91dCBdCisgICAgICBbIERlYnVnIF0gTGF5b3V0VGVzdHMvZmFzdC9qcy9uby1nb29kLmpzIFsg
UGFzcyBTa2lwIFRpbWVvdXQgXQorICAgICAgWyBMaW51eCBEZWJ1ZyBdIExheW91dFRlc3RzL2Zh
c3QvanMvbm8tZ29vZC5qcyBbIFBhc3MgU2tpcCBUaW1lb3V0IF0KKyAgICAgIFsgTGludXggV2lu
IF0gTGF5b3V0VGVzdHMvZmFzdC9qcy9uby1nb29kLmpzIFsgUGFzcyBTa2lwIFRpbWVvdXQgXQog
Ci0gICAgU0tJUDogRG9lc24ndCBydW4gdGhlIHRlc3QuCi0gICAgU0xPVzogVGhlIHRlc3QgdGFr
ZXMgYSBsb25nIHRpbWUgdG8gcnVuLCBidXQgZG9lcyBub3QgdGltZW91dCBpbmRlZmluaXRlbHku
Ci0gICAgV09OVEZJWDogRm9yIHRlc3RzIHRoYXQgd2UgbmV2ZXIgaW50ZW5kIHRvIHBhc3Mgb24g
YSBnaXZlbiBwbGF0Zm9ybS4KKyAgICBTa2lwOiBEb2Vzbid0IHJ1biB0aGUgdGVzdC4KKyAgICBT
bG93OiBUaGUgdGVzdCB0YWtlcyBhIGxvbmcgdGltZSB0byBydW4sIGJ1dCBkb2VzIG5vdCB0aW1l
b3V0IGluZGVmaW5pdGVseS4KKyAgICBXb250Rml4OiBGb3IgdGVzdHMgdGhhdCB3ZSBuZXZlciBp
bnRlbmQgdG8gcGFzcyBvbiBhIGdpdmVuIHBsYXRmb3JtICh0cmVhdGVkIGxpa2UgU2tpcCkuCiAK
ICAgICBOb3RlczoKICAgICAgIC1BIHRlc3QgY2Fubm90IGJlIGJvdGggU0xPVyBhbmQgVElNRU9V
VApAQCAtNzQyLDYgKzc4MCw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnMob2JqZWN0KToKICAg
ICAgIC1DUkFTSCB0ZXN0cyBjYW5ub3QgYmUgV09OVEZJWAogICAgICIiIgogCisgICAgIyBGSVhN
RTogVXBkYXRlIHRvIG5ldyBzeW50YXggb25jZSB0aGUgb2xkIGZvcm1hdCBpcyBubyBsb25nZXIg
c3VwcG9ydGVkLgogICAgIEVYUEVDVEFUSU9OUyA9IHsncGFzcyc6IFBBU1MsCiAgICAgICAgICAg
ICAgICAgICAgICd0ZXh0JzogVEVYVCwKICAgICAgICAgICAgICAgICAgICAgJ2ltYWdlJzogSU1B
R0UsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKaW5kZXgg
YTNlNTE5ZTFjYjJjNmFiYjc5MDg1ODE2NDlmNzQ0ZGMwMGUzMTE5OC4uYjc2NzZjZTU3OTI2OTFh
OGFmNjgxNzY3Nzg3OTM0MDlkY2FkNWY5YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVj
dGF0aW9uc191bml0dGVzdC5weQpAQCAtNDMsMTQgKzQzLDYgQEAgZXhjZXB0IEltcG9ydEVycm9y
OgogICAgIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5vcmRlcmVkX2RpY3QgaW1wb3J0IE9yZGVy
ZWREaWN0CiAKIAotY2xhc3MgTW9ja0J1Z01hbmFnZXIob2JqZWN0KToKLSAgICBkZWYgY2xvc2Vf
YnVnKHNlbGYsIGJ1Z19pZCwgcmVmZXJlbmNlX2J1Z19pZD1Ob25lKToKLSAgICAgICAgcGFzcwot
Ci0gICAgZGVmIGNyZWF0ZV9idWcoc2VsZik6Ci0gICAgICAgIHJldHVybiAiQlVHX05FV0xZX0NS
RUFURUQiCi0KLQogY2xhc3MgQmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIyBOb3RlIHRo
YXQgYWxsIG9mIHRoZXNlIHRlc3RzIGFyZSB3cml0dGVuIGFzc3VtaW5nIHRoZSBjb25maWd1cmF0
aW9uCiAgICAgIyBiZWluZyB0ZXN0ZWQgaXMgV2luZG93cyBYUCwgUmVsZWFzZSBidWlsZC4KQEAg
LTE5MSwxNiArMTgzLDE0IEBAIEJVR1ggV09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVkID0gSU1B
R0UKICAgICAgICAgICAgIGZpbGVzeXN0ZW0gPSBzZWxmLl9wb3J0Lmhvc3QuZmlsZXN5c3RlbQog
ICAgICAgICAgICAgZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoZmlsZXN5c3RlbS5qb2luKHNl
bGYuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpLCAnZGlzYWJsZWQtdGVzdC5odG1sLWRpc2FibGVk
JyksICdjb250ZW50JykKICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3QoJ2Rpc2FibGVkLXRlc3Qu
aHRtbC1kaXNhYmxlZCcpLAotICAgICAgICAgICAgc2VsZi5wYXJzZV9leHAoIkZPTyA6IGZhaWx1
cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFRcbiIKLSAgICAgICAgICAgICAgICAiU0tJUCA6
IGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWxcbiIKLSAgICAgICAgICAgICAgICAiQlVHUk5J
V0EgOiBub24tZXhpc3RlbnQtdGVzdC5odG1sID0gVEVYVFxuIgotICAgICAgICAgICAgICAgICJC
VUdSTklXQSA6IGRpc2FibGVkLXRlc3QuaHRtbC1kaXNhYmxlZCA9IElNQUdFIiwgaXNfbGludF9t
b2RlPVRydWUpCisgICAgICAgICAgICBzZWxmLnBhcnNlX2V4cCgiWyBGT08gXSBmYWlsdXJlcy9l
eHBlY3RlZC90ZXh0Lmh0bWwgWyBGYWlsdXJlIF1cbiIKKyAgICAgICAgICAgICAgICAiYnVnKHJu
aXdhKSBub24tZXhpc3RlbnQtdGVzdC5odG1sIFsgRmFpbHVyZSBdXG4iCisgICAgICAgICAgICAg
ICAgImJ1Zyhybml3YSkgZGlzYWJsZWQtdGVzdC5odG1sLWRpc2FibGVkIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdIiwgaXNfbGludF9tb2RlPVRydWUpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KFRydWUsICJQYXJzZUVycm9yIHdhc24ndCByYWlzZWQiKQogICAgICAgICBleGNlcHQgUGFyc2VF
cnJvciwgZToKICAgICAgICAgICAgIHdhcm5pbmdzID0gKCJleHBlY3RhdGlvbnM6MSBUZXN0IGxh
Y2tzIEJVRyBtb2RpZmllci4gZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sXG4iCiAgICAgICAg
ICAgICAgICAgICAgICAgICAiZXhwZWN0YXRpb25zOjEgVW5yZWNvZ25pemVkIG1vZGlmaWVyICdm
b28nIGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbFxuIgotICAgICAgICAgICAgICAgICAgICAg
ICAgImV4cGVjdGF0aW9uczoyIE1pc3NpbmcgZXhwZWN0YXRpb25zIFNLSVAgOiBmYWlsdXJlcy9l
eHBlY3RlZC9pbWFnZS5odG1sXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0YXRp
b25zOjMgUGF0aCBkb2VzIG5vdCBleGlzdC4gbm9uLWV4aXN0ZW50LXRlc3QuaHRtbCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0YXRpb25zOjIgUGF0aCBkb2VzIG5vdCBleGlzdC4g
bm9uLWV4aXN0ZW50LXRlc3QuaHRtbCIpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0
cihlKSwgd2FybmluZ3MpCiAKICAgICAgICAgdHJ5OgpAQCAtMzE2LDYgKzMwNiw4IEBAIGNsYXNz
IFNraXBwZWRUZXN0cyhCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVGhlIGZvbGxv
d2luZyB0ZXN0IGZvby9iYXIvYmF6Lmh0bWwgZnJvbSB0aGUgU2tpcHBlZCBsaXN0IGRvZXNuXCd0
IGV4aXN0XG4nLCBsb2dzKQogCiAKKyMgRklYTUU6IHJlbW92ZSB0aGVzZSB0ZXN0cyB3aGVuIHdl
IHN0b3Agc3VwcG9ydGluZyB0aGUgb2xkIHN5bnRheC4KKwogY2xhc3MgRXhwZWN0YXRpb25TeW50
YXhUZXN0cyhCYXNlKToKICAgICBkZWYgdGVzdF9taXNzaW5nX2V4cGVjdGF0aW9uKHNlbGYpOgog
ICAgICAgICAjIFRoaXMgaXMgbWlzc2luZyB0aGUgZXhwZWN0YXRpb24uCkBAIC0zOTcsNyArMzg5
LDYgQEAgY2xhc3MgTmV3RXhwZWN0YXRpb25TeW50YXhUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAKICAgICBkZWYgdGVzdF93YXJuaW5ncyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRfZXhw
KCdbIE1hYyBdJywgd2FybmluZ3M9WydEaWQgbm90IGZpbmQgYSB0ZXN0IG5hbWUuJ10sIG5hbWU9
Tm9uZSkKLQogICAgICAgICBzZWxmLmFzc2VydF9leHAoJ1sgWycsIHdhcm5pbmdzPVsndW5leHBl
Y3RlZCAiWyInXSwgbmFtZT1Ob25lKQogICAgICAgICBzZWxmLmFzc2VydF9leHAoJ2NyYnVnLmNv
bS8xMjM0NSBdJywgd2FybmluZ3M9Wyd1bmV4cGVjdGVkICJdIiddLCBuYW1lPU5vbmUpCiAKQEAg
LTQ5MSwxNSArNDgyLDE1IEBAIGNsYXNzIFJlbW92ZUNvbmZpZ3VyYXRpb25zVGVzdChCYXNlKToK
ICAgICAgICAgdGVzdF9wb3J0LnRlc3RfaXNmaWxlID0gbGFtYmRhIHRlc3Q6IFRydWUKIAogICAg
ICAgICB0ZXN0X2NvbmZpZyA9IHRlc3RfcG9ydC50ZXN0X2NvbmZpZ3VyYXRpb24oKQotICAgICAg
ICB0ZXN0X3BvcnQuZXhwZWN0YXRpb25zX2RpY3QgPSBsYW1iZGE6IHsiZXhwZWN0YXRpb25zIjog
IiIiQlVHWCBMSU5VWCBXSU4gUkVMRUFTRSA6IGZhaWx1cmVzL2V4cGVjdGVkL2Zvby5odG1sID0g
VEVYVAotQlVHWSBXSU4gTUFDIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQvZm9vLmh0bWwgPSBD
UkFTSAorICAgICAgICB0ZXN0X3BvcnQuZXhwZWN0YXRpb25zX2RpY3QgPSBsYW1iZGE6IHsiZXhw
ZWN0YXRpb25zIjogIiIiYnVnKHgpIFsgTGludXggV2luIFJlbGVhc2UgXSBmYWlsdXJlcy9leHBl
Y3RlZC9mb28uaHRtbCBbIEZhaWx1cmUgXQorYnVnKHkpIFsgV2luIE1hYyBEZWJ1ZyBdIGZhaWx1
cmVzL2V4cGVjdGVkL2Zvby5odG1sIFsgQ3Jhc2ggXQogIiIifQogICAgICAgICBleHBlY3RhdGlv
bnMgPSBUZXN0RXhwZWN0YXRpb25zKHRlc3RfcG9ydCwgc2VsZi5nZXRfYmFzaWNfdGVzdHMoKSkK
IAogICAgICAgICBhY3R1YWxfZXhwZWN0YXRpb25zID0gZXhwZWN0YXRpb25zLnJlbW92ZV9jb25m
aWd1cmF0aW9uX2Zyb21fdGVzdCgnZmFpbHVyZXMvZXhwZWN0ZWQvZm9vLmh0bWwnLCB0ZXN0X2Nv
bmZpZykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCIiIkJVR1ggTElOVVggVklTVEEgV0lO
NyBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQvZm9vLmh0bWwgPSBURVhUCi1CVUdZIFdJTiBN
QUMgREVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9mb28uaHRtbCA9IENSQVNICisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoIiIiYnVnKHgpIFsgTGludXggVmlzdGEgV2luNyBSZWxlYXNlIF0gZmFp
bHVyZXMvZXhwZWN0ZWQvZm9vLmh0bWwgWyBGYWlsdXJlIF0KK2J1Zyh5KSBbIFdpbiBNYWMgRGVi
dWcgXSBmYWlsdXJlcy9leHBlY3RlZC9mb28uaHRtbCBbIENyYXNoIF0KICIiIiwgYWN0dWFsX2V4
cGVjdGF0aW9ucykKIAogICAgIGRlZiB0ZXN0X3JlbW92ZV9saW5lKHNlbGYpOgpAQCAtNTA5LDgg
KzUwMCw4IEBAIEJVR1kgV0lOIE1BQyBERUJVRyA6IGZhaWx1cmVzL2V4cGVjdGVkL2Zvby5odG1s
ID0gQ1JBU0gKICAgICAgICAgdGVzdF9wb3J0LnRlc3RfaXNmaWxlID0gbGFtYmRhIHRlc3Q6IFRy
dWUKIAogICAgICAgICB0ZXN0X2NvbmZpZyA9IHRlc3RfcG9ydC50ZXN0X2NvbmZpZ3VyYXRpb24o
KQotICAgICAgICB0ZXN0X3BvcnQuZXhwZWN0YXRpb25zX2RpY3QgPSBsYW1iZGE6IHsnZXhwZWN0
YXRpb25zJzogIiIiQlVHWCBXSU4gUkVMRUFTRSA6IGZhaWx1cmVzL2V4cGVjdGVkL2Zvby5odG1s
ID0gVEVYVAotQlVHWSBXSU4gREVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9mb28uaHRtbCA9IENS
QVNICisgICAgICAgIHRlc3RfcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYTogeydleHBl
Y3RhdGlvbnMnOiAiIiJidWcoeCkgWyBXaW4gUmVsZWFzZSBdIGZhaWx1cmVzL2V4cGVjdGVkL2Zv
by5odG1sIFsgRmFpbHVyZSBdCitidWcoeSkgWyBXaW4gRGVidWcgXSBmYWlsdXJlcy9leHBlY3Rl
ZC9mb28uaHRtbCBbIENyYXNoIF0KICIiIn0KICAgICAgICAgZXhwZWN0YXRpb25zID0gVGVzdEV4
cGVjdGF0aW9ucyh0ZXN0X3BvcnQpCiAKQEAgLTUxOCw3ICs1MDksNyBAQCBCVUdZIFdJTiBERUJV
RyA6IGZhaWx1cmVzL2V4cGVjdGVkL2Zvby5odG1sID0gQ1JBU0gKICAgICAgICAgYWN0dWFsX2V4
cGVjdGF0aW9ucyA9IGV4cGVjdGF0aW9ucy5yZW1vdmVfY29uZmlndXJhdGlvbl9mcm9tX3Rlc3Qo
J2ZhaWx1cmVzL2V4cGVjdGVkL2Zvby5odG1sJywgaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KCd0ZXN0
LXdpbi12aXN0YScsIE5vbmUpLnRlc3RfY29uZmlndXJhdGlvbigpKQogICAgICAgICBhY3R1YWxf
ZXhwZWN0YXRpb25zID0gZXhwZWN0YXRpb25zLnJlbW92ZV9jb25maWd1cmF0aW9uX2Zyb21fdGVz
dCgnZmFpbHVyZXMvZXhwZWN0ZWQvZm9vLmh0bWwnLCBob3N0LnBvcnRfZmFjdG9yeS5nZXQoJ3Rl
c3Qtd2luLXdpbjcnLCBOb25lKS50ZXN0X2NvbmZpZ3VyYXRpb24oKSkKIAotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCIiIkJVR1kgV0lOIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQvZm9vLmh0
bWwgPSBDUkFTSAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCIiImJ1Zyh5KSBbIFdpbiBEZWJ1
ZyBdIGZhaWx1cmVzL2V4cGVjdGVkL2Zvby5odG1sIFsgQ3Jhc2ggXQogIiIiLCBhY3R1YWxfZXhw
ZWN0YXRpb25zKQogCiAKQEAgLTUzMiwxNCArNTIzLDE0IEBAIGNsYXNzIFJlYmFzZWxpbmluZ1Rl
c3QoQmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfb3ZlcnJpZGVzLCBh
Y3R1YWxfb3ZlcnJpZGVzKQogCiAgICAgZGVmIHRlc3RfcmVtb3ZlKHNlbGYpOgotICAgICAgICBz
ZWxmLmFzc2VydFJlbW92ZSgnQlVHWCBSRUJBU0VMSU5FIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGV4
dC5odG1sID0gVEVYVFxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAnQlVHWSA6IGZhaWx1
cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBJTUFHRVxuJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAnQlVHWiBSRUJBU0VMSU5FIDogZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCA9IENS
QVNIXG4nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnQlVHWE8gOiBmYWlsdXJlcy9leHBl
Y3RlZC9pbWFnZS5odG1sID0gQ1JBU0hcbicsCisgICAgICAgIHNlbGYuYXNzZXJ0UmVtb3ZlKCdi
dWcoeCkgZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sIFsgRmFpbHVyZSBSZWJhc2VsaW5lIF1c
bicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J1Zyh5KSBmYWlsdXJlcy9leHBlY3RlZC9p
bWFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBSZWJhc2VsaW5lIF1cbicKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2J1Zyh6KSBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sIFsgQ3Jh
c2ggXVxuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J1Zyh4MCkgZmFpbHVyZXMvZXhw
ZWN0ZWQvaW1hZ2UuaHRtbCBbIENyYXNoIF1cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJ10sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICdCVUdZIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFXG4nCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICdCVUdaIFJFQkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3Rl
ZC9jcmFzaC5odG1sID0gQ1JBU0hcbicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdY
TyA6IGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBDUkFTSFxuJykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2J1Zyh5KSBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBSZWJhc2VsaW5lIF1cbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
J2J1Zyh6KSBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sIFsgQ3Jhc2ggXVxuJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2J1Zyh4MCkgZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRt
bCBbIENyYXNoIF1cbicpCiAKIAogICAgIGRlZiB0ZXN0X25vX2dldF9yZWJhc2VsaW5pbmdfZmFp
bHVyZXMoc2VsZik6CkBAIC01NDcsNiArNTM4LDggQEAgY2xhc3MgUmViYXNlbGluaW5nVGVzdChC
YXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZXhwLmdldF9yZWJhc2Vs
aW5pbmdfZmFpbHVyZXMoKSksIDApCiAKIAorIyBGSVhNRTogcmVtb3ZlIG1vc3Qgb2YgdGhlc2Ug
dGVzdHMgd2hlbiB3ZSBubyBsb25nZXIgc3VwcG9ydCB0aGUgb2xkIHN5bnRheC4KKwogY2xhc3Mg
VGVzdEV4cGVjdGF0aW9uUGFyc2VyVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBf
dG9rZW5pemUoc2VsZiwgbGluZSk6CiAgICAgICAgIHJldHVybiBUZXN0RXhwZWN0YXRpb25QYXJz
ZXIuX3Rva2VuaXplX2xpbmUoJ3BhdGgnLCBsaW5lLCAwKQpAQCAtNTU2LDEzICs1NDksOSBAQCBj
bGFzcyBUZXN0RXhwZWN0YXRpb25QYXJzZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb24uY29tbWVudCwgTm9uZSkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0YXRpb24ud2FybmluZ3MpLCAwKQogCi0gICAgZGVm
IHRlc3RfdG9rZW5pemVfbWlzc2luZ19jb2xvbihzZWxmKToKLSAgICAgICAgZXhwZWN0YXRpb24g
PSBzZWxmLl90b2tlbml6ZSgnUXV4LicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGV4
cGVjdGF0aW9uLndhcm5pbmdzKSwgJ1siTWlzc2luZyBhIFwnOlwnIl0nKQotCiAgICAgZGVmIHRl
c3RfdG9rZW5pemVfZXh0cmFfY29sb24oc2VsZik6CiAgICAgICAgIGV4cGVjdGF0aW9uID0gc2Vs
Zi5fdG9rZW5pemUoJ0ZPTyA6IDogYmFyJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIo
ZXhwZWN0YXRpb24ud2FybmluZ3MpLCAnWyJFeHRyYW5lb3VzIFwnOlwnIl0nKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGV4cGVjdGF0aW9uLndhcm5pbmdzLCBbJyI6IiBpcyBub3QgbGVnYWwg
aW4gdGhlIG5ldyBUZXN0RXhwZWN0YXRpb25zIHN5bnRheC4nXSkKIAogICAgIGRlZiB0ZXN0X3Rv
a2VuaXplX2VtcHR5X2NvbW1lbnQoc2VsZik6CiAgICAgICAgIGV4cGVjdGF0aW9uID0gc2VsZi5f
dG9rZW5pemUoJy8vJykKQEAgLTU3NiwxMSArNTY1LDExIEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlv
blBhcnNlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3Rva2VuaXpl
X21pc3NpbmdfZXF1YWwoc2VsZik6CiAgICAgICAgIGV4cGVjdGF0aW9uID0gc2VsZi5fdG9rZW5p
emUoJ0ZPTyA6IGJhcicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGV4cGVjdGF0aW9u
Lndhcm5pbmdzKSwgIlsnTWlzc2luZyBleHBlY3RhdGlvbnNcJ10iKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV4cGVjdGF0aW9uLndhcm5pbmdzLCBbJyI6IiBpcyBub3QgbGVnYWwgaW4gdGhl
IG5ldyBUZXN0RXhwZWN0YXRpb25zIHN5bnRheC4nXSkKIAogICAgIGRlZiB0ZXN0X3Rva2VuaXpl
X2V4dHJhX2VxdWFsKHNlbGYpOgogICAgICAgICBleHBlY3RhdGlvbiA9IHNlbGYuX3Rva2VuaXpl
KCdGT08gOiBiYXIgPSBCQVogPSBRdXguJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIo
ZXhwZWN0YXRpb24ud2FybmluZ3MpLCAnWyJFeHRyYW5lb3VzIFwnPVwnIl0nKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGV4cGVjdGF0aW9uLndhcm5pbmdzLCBbJyI6IiBpcyBub3QgbGVnYWwg
aW4gdGhlIG5ldyBUZXN0RXhwZWN0YXRpb25zIHN5bnRheC4nXSkKIAogICAgIGRlZiB0ZXN0X3Rv
a2VuaXplX3ZhbGlkKHNlbGYpOgogICAgICAgICBleHBlY3RhdGlvbiA9IHNlbGYuX3Rva2VuaXpl
KCdGT08gOiBiYXIgPSBCQVonKQpAQCAtNjQwLDE4ICs2MjksMTkgQEAgY2xhc3MgVGVzdEV4cGVj
dGF0aW9uU2VyaWFsaXphdGlvblRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZXhw
ZWN0YXRpb24gPSBUZXN0RXhwZWN0YXRpb25MaW5lKCkKIAogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGV4cGVjdGF0aW9uLnRvX3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnJykKLSAgICAgICAg
ZXhwZWN0YXRpb24uY29tbWVudCA9ICdRdXguJwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4
cGVjdGF0aW9uLnRvX3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnLy9RdXguJykKKyAgICAgICAg
ZXhwZWN0YXRpb24uY29tbWVudCA9ICcgUXV4LicKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
eHBlY3RhdGlvbi50b19zdHJpbmcoc2VsZi5fY29udmVydGVyKSwgJyMgUXV4LicpCiAgICAgICAg
IGV4cGVjdGF0aW9uLm5hbWUgPSAnYmFyJwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVj
dGF0aW9uLnRvX3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnIDogYmFyID0gIC8vUXV4LicpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb24udG9fc3RyaW5nKHNlbGYuX2NvbnZl
cnRlciksICdiYXIgIyBRdXguJykKICAgICAgICAgZXhwZWN0YXRpb24ubW9kaWZpZXJzID0gWydm
b28nXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGF0aW9uLnRvX3N0cmluZyhzZWxm
Ll9jb252ZXJ0ZXIpLCAnRk9PIDogYmFyID0gIC8vUXV4LicpCisgICAgICAgICMgRklYTUU6IGNh
c2Ugc2hvdWxkIGJlIHByZXNlcnZlZCBoZXJlIGJ1dCB3ZSBjYW4ndCB1bnRpbCB3ZSBkcm9wIHRo
ZSBvbGQgc3ludGF4LgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGF0aW9uLnRvX3N0
cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnWyBGT08gXSBiYXIgIyBRdXguJykKICAgICAgICAgZXhw
ZWN0YXRpb24uZXhwZWN0YXRpb25zID0gWydiQXonXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGV4cGVjdGF0aW9uLnRvX3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnRk9PIDogYmFyID0gQkFa
IC8vUXV4LicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb24udG9fc3RyaW5n
KHNlbGYuX2NvbnZlcnRlciksICdbIEZPTyBdIGJhciBbIEJBWiBdICMgUXV4LicpCiAgICAgICAg
IGV4cGVjdGF0aW9uLmV4cGVjdGF0aW9ucyA9IFsnYkF6MScsICdiYVoyJ10KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChleHBlY3RhdGlvbi50b19zdHJpbmcoc2VsZi5fY29udmVydGVyKSwgJ0ZP
TyA6IGJhciA9IEJBWjEgQkFaMiAvL1F1eC4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4
cGVjdGF0aW9uLnRvX3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnWyBGT08gXSBiYXIgWyBCQVox
IEJBWjIgXSAjIFF1eC4nKQogICAgICAgICBleHBlY3RhdGlvbi5tb2RpZmllcnMgPSBbJ2ZvbzEn
LCAnZm9PMiddCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb24udG9fc3RyaW5n
KHNlbGYuX2NvbnZlcnRlciksICdGT08xIEZPTzIgOiBiYXIgPSBCQVoxIEJBWjIgLy9RdXguJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RhdGlvbi50b19zdHJpbmcoc2VsZi5fY29u
dmVydGVyKSwgJ1sgRk9PMSBGT08yIF0gYmFyIFsgQkFaMSBCQVoyIF0gIyBRdXguJykKICAgICAg
ICAgZXhwZWN0YXRpb24ud2FybmluZ3MuYXBwZW5kKCdPaCB0aGUgaG9ycm9yLicpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb24udG9fc3RyaW5nKHNlbGYuX2NvbnZlcnRlciks
ICcnKQogICAgICAgICBleHBlY3RhdGlvbi5vcmlnaW5hbF9zdHJpbmcgPSAnWWVzIGl0IGlzIScK
QEAgLTY2Myw3ICs2NTMsOCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25TZXJpYWxpemF0aW9uVGVz
dHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBleHBlY3RhdGlvbi5uYW1lID0gJ2JhcicK
ICAgICAgICAgZXhwZWN0YXRpb24ubW9kaWZpZXJzID0gWydmb28nXQogICAgICAgICBleHBlY3Rh
dGlvbi5leHBlY3RhdGlvbnMgPSBbJ2JBejEnLCAnYmFaMiddCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5saXN0X3RvX3N0cmluZyhbZXhwZWN0YXRpb25dKSwgJ0ZP
TyA6IGJhciA9IEJBWjEgQkFaMiAvL1F1eC4nKQorICAgICAgICAjIEZJWE1FOiBjYXNlIHNob3Vs
ZCBiZSBwcmVzZXJ2ZWQgaGVyZSBidXQgd2UgY2FuJ3QgdW50aWwgd2UgZHJvcCB0aGUgb2xkIHN5
bnRheC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLmxpc3RfdG9f
c3RyaW5nKFtleHBlY3RhdGlvbl0pLCAnWyBGT08gXSBiYXIgWyBCQVoxIEJBWjIgXSAjUXV4Licp
CiAKICAgICBkZWYgdGVzdF9wYXJzZWRfdG9fc3RyaW5nKHNlbGYpOgogICAgICAgICBleHBlY3Rh
dGlvbl9saW5lID0gVGVzdEV4cGVjdGF0aW9uTGluZSgpCkBAIC02NzIsOSArNjYzLDkgQEAgY2xh
c3MgVGVzdEV4cGVjdGF0aW9uU2VyaWFsaXphdGlvblRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgZXhwZWN0YXRpb25fbGluZS5wYXJzZWRfZXhwZWN0YXRpb25zID0gc2V0KFtJTUFH
RV0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb25fbGluZS50b19zdHJpbmco
c2VsZi5fY29udmVydGVyKSwgTm9uZSkKICAgICAgICAgZXhwZWN0YXRpb25fbGluZS5tYXRjaGlu
Z19jb25maWd1cmF0aW9ucyA9IHNldChbVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdy
ZWxlYXNlJyldKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGF0aW9uX2xpbmUudG9f
c3RyaW5nKHNlbGYuX2NvbnZlcnRlciksICdCVUdYIFhQIFJFTEVBU0UgOiB0ZXN0L25hbWUvZm9y
L3JlYWx6Lmh0bWwgPSBJTUFHRScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRp
b25fbGluZS50b19zdHJpbmcoc2VsZi5fY29udmVydGVyKSwgJ2J1Zyh4KSBbIFhQIFJlbGVhc2Ug
XSB0ZXN0L25hbWUvZm9yL3JlYWx6Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0nKQogICAgICAg
ICBleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zID0gc2V0KFtUZXN0Q29u
ZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnKSwgVGVzdENvbmZpZ3VyYXRpb24oJ3hw
JywgJ3g4NicsICdkZWJ1ZycpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RhdGlv
bl9saW5lLnRvX3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnQlVHWCBYUCA6IHRlc3QvbmFtZS9m
b3IvcmVhbHouaHRtbCA9IElNQUdFJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3Rh
dGlvbl9saW5lLnRvX3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnYnVnKHgpIFsgWFAgXSB0ZXN0
L25hbWUvZm9yL3JlYWx6Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0nKQogCiAgICAgZGVmIHRl
c3Rfc2VyaWFsaXplX3BhcnNlZF9leHBlY3RhdGlvbnMoc2VsZik6CiAgICAgICAgIGV4cGVjdGF0
aW9uX2xpbmUgPSBUZXN0RXhwZWN0YXRpb25MaW5lKCkKQEAgLTcwNSw0MCArNjk2LDQwIEBAIGNs
YXNzIFRlc3RFeHBlY3RhdGlvblNlcmlhbGl6YXRpb25UZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb25fbGluZS5fc2VyaWFsaXplX3Bh
cnNlZF9tb2RpZmllcnMoc2VsZi5fY29udmVydGVyLCBbJ3dpbiddKSwgJ2dhcmRlbi1vLW1hdGlj
IGlzIHRvdGFsIHdpbicpCiAKICAgICBkZWYgdGVzdF9mb3JtYXRfbGluZShzZWxmKToKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25MaW5lLl9mb3JtYXRfbGluZSgnbW9k
aWZpZXJzJywgJ25hbWUnLCAnZXhwZWN0YXRpb25zJywgJ2NvbW1lbnQnKSwgJ01PRElGSUVSUyA6
IG5hbWUgPSBFWFBFQ1RBVElPTlMgLy9jb21tZW50JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChUZXN0RXhwZWN0YXRpb25MaW5lLl9mb3JtYXRfbGluZSgnbW9kaWZpZXJzJywgJ25hbWUnLCAn
ZXhwZWN0YXRpb25zJywgTm9uZSksICdNT0RJRklFUlMgOiBuYW1lID0gRVhQRUNUQVRJT05TJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25MaW5lLl9mb3JtYXRfbGlu
ZShbJ01PRElGSUVSUyddLCAnbmFtZScsIFsnRVhQRUNUQVRJT05TJ10sICdjb21tZW50JyksICdb
IE1PRElGSUVSUyBdIG5hbWUgWyBFWFBFQ1RBVElPTlMgXSAjY29tbWVudCcpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9uTGluZS5fZm9ybWF0X2xpbmUoWydNT0RJRklF
UlMnXSwgJ25hbWUnLCBbJ0VYUEVDVEFUSU9OUyddLCBOb25lKSwgJ1sgTU9ESUZJRVJTIF0gbmFt
ZSBbIEVYUEVDVEFUSU9OUyBdJykKIAogICAgIGRlZiB0ZXN0X3N0cmluZ19yb3VuZHRyaXAoc2Vs
Zik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJycpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0X3JvdW5kX3RyaXAoJ0ZPTycpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJzon
KQotICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdGT08gOicpCi0gICAgICAgIHNlbGYu
YXNzZXJ0X3JvdW5kX3RyaXAoJ0ZPTyA6IGJhcicpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5k
X3RyaXAoJyAgRk9PIDonKQotICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCcgICAgRk9P
IDogYmFyJykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnRk9PIDogYmFyID0gQkFa
JykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnRk9PIDogYmFyID0gQkFaIC8vUXV4
LicpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ0ZPTyA6IGJhciA9IEJBWiAvLyBR
dXguJykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnRk9PIDogYmFyID0gQkFaIC8v
IFF1eC4gICAgICcpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ0ZPTyA6IGJhciA9
IEJBWiAvLyAgICAgICAgUXV4LiAgICAgJykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJp
cCgnRk9PIDogOiBiYXIgPSBCQVonKQotICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdG
T08gOiA6IGJhciA9IEJBWicpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ0ZPTyA6
IDogYmFyID09PT0gQkFaJykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnWycpCisg
ICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ0ZPTyBbJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRfcm91bmRfdHJpcCgnRk9PIF0gYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJp
cCgnICBGT08gWycpCisgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJyAgICBbIEZPTyBd
ICcpCisgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ1sgRk9PIF0gYmFyIFsgQkFaIF0n
KQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdbIEZPTyBdIGJhciBbIEJBWiBdICMg
UXV4LicpCisgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ1sgRk9PIF0gYmFyIFsgQkFa
IF0gIyBRdXguJykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnWyBGT08gXSBiYXIg
WyBCQVogXSAjIFF1eC4gICAgICcpCisgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ1sg
Rk9PIF0gYmFyIFsgQkFaIF0gIyAgICAgICAgUXV4LiAgICAgJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRfcm91bmRfdHJpcCgnWyBGT08gXSBdIF0gYmFyIEJBWicpCisgICAgICAgIHNlbGYuYXNzZXJ0
X3JvdW5kX3RyaXAoJ1sgRk9PIF0gXSBdIGJhciBbIEJBWiBdJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRfcm91bmRfdHJpcCgnRk9PIF0gXSBiYXIgPT09PSBCQVonKQogICAgICAgICBzZWxmLmFzc2Vy
dF9yb3VuZF90cmlwKCc9JykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnLy8nKQot
ICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCcvLyAnKQotICAgICAgICBzZWxmLmFzc2Vy
dF9yb3VuZF90cmlwKCcvLyBGb28nKQotICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCcv
LyBGb28nKQotICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCcvLyBGb28gOicpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJy8vIEZvbyA6ID0nKQorICAgICAgICBzZWxmLmFz
c2VydF9yb3VuZF90cmlwKCcjJykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnIyAn
KQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCcjIEZvbycpCisgICAgICAgIHNlbGYu
YXNzZXJ0X3JvdW5kX3RyaXAoJyMgRm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJp
cCgnIyBGb28gOicpCisgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJyMgRm9vIDogPScp
CiAKICAgICBkZWYgdGVzdF9saXN0X3JvdW5kdHJpcChzZWxmKToKICAgICAgICAgc2VsZi5hc3Nl
cnRfbGlzdF9yb3VuZF90cmlwKCcnKQogICAgICAgICBzZWxmLmFzc2VydF9saXN0X3JvdW5kX3Ry
aXAoJ1xuJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGlzdF9yb3VuZF90cmlwKCdcblxuJykKICAg
ICAgICAgc2VsZi5hc3NlcnRfbGlzdF9yb3VuZF90cmlwKCdiYXInKQotICAgICAgICBzZWxmLmFz
c2VydF9saXN0X3JvdW5kX3RyaXAoJ2JhclxuLy9RdXguJykKLSAgICAgICAgc2VsZi5hc3NlcnRf
bGlzdF9yb3VuZF90cmlwKCdiYXJcbi8vUXV4LlxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGlz
dF9yb3VuZF90cmlwKCdiYXJcbiMgUXV4LicpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpc3Rfcm91
bmRfdHJpcCgnYmFyXG4jIFF1eC5cbicpCiAKICAgICBkZWYgdGVzdF9yZWNvbnN0aXR1dGVfb25s
eV90aGVzZShzZWxmKToKICAgICAgICAgbGluZXMgPSBbXQpAQCAtNzU4LDE4ICs3NDksMTggQEAg
Y2xhc3MgVGVzdEV4cGVjdGF0aW9uU2VyaWFsaXphdGlvblRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgYWRkX2xpbmUoc2V0KFtUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2Jywg
J3JlbGVhc2UnKV0pLCBUcnVlKQogICAgICAgICBhZGRfbGluZShzZXQoW1Rlc3RDb25maWd1cmF0
aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScpLCBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2
JywgJ2RlYnVnJyldKSwgRmFsc2UpCiAgICAgICAgIHNlcmlhbGl6ZWQgPSBUZXN0RXhwZWN0YXRp
b25zLmxpc3RfdG9fc3RyaW5nKGxpbmVzLCBzZWxmLl9jb252ZXJ0ZXIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHNlcmlhbGl6ZWQsICJCVUdYIFhQIFJFTEVBU0UgOiBZYXkgPSBJTUFHRVxu
QlVHWCBYUCA6IFlheSA9IElNQUdFIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VyaWFs
aXplZCwgImJ1Zyh4KSBbIFhQIFJlbGVhc2UgXSBZYXkgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbmJ1
Zyh4KSBbIFhQIF0gWWF5IFsgSW1hZ2VPbmx5RmFpbHVyZSBdIikKICAgICAgICAgc2VyaWFsaXpl
ZCA9IFRlc3RFeHBlY3RhdGlvbnMubGlzdF90b19zdHJpbmcobGluZXMsIHNlbGYuX2NvbnZlcnRl
ciwgcmVjb25zdGl0dXRlX29ubHlfdGhlc2U9cmVjb25zdGl0dXRlX29ubHlfdGhlc2UpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlcmlhbGl6ZWQsICJCVUdYIFhQIFJFTEVBU0UgOiBZYXkg
PSBJTUFHRVxuTmF5IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VyaWFsaXplZCwgImJ1
Zyh4KSBbIFhQIFJlbGVhc2UgXSBZYXkgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbk5heSIpCiAKICAg
ICBkZWYgdGVzdF9zdHJpbmdfd2hpdGVzcGFjZV9zdHJpcHBpbmcoc2VsZik6CiAgICAgICAgIHNl
bGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ1xuJywgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5k
X3RyaXAoJyAgRk9PIDogYmFyID0gQkFaJywgJ0ZPTyA6IGJhciA9IEJBWicpCi0gICAgICAgIHNl
bGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ0ZPTyAgICA6IGJhciA9IEJBWicsICdGT08gOiBiYXIgPSBC
QVonKQotICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdGT08gOiBiYXIgPSBCQVogICAg
ICAgLy8gUXV4LicsICdGT08gOiBiYXIgPSBCQVogLy8gUXV4LicpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0X3JvdW5kX3RyaXAoJ0ZPTyA6IGJhciA9ICAgICAgICBCQVogLy8gUXV4LicsICdGT08gOiBi
YXIgPSBCQVogLy8gUXV4LicpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ0ZPTyA6
ICAgICAgIGJhciA9ICAgIEJBWiAvLyBRdXguJywgJ0ZPTyA6IGJhciA9IEJBWiAvLyBRdXguJykK
LSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnRk9PIDogICAgICAgYmFyICAgICA9ICAg
IEJBWiAvLyBRdXguJywgJ0ZPTyA6IGJhciA9IEJBWiAvLyBRdXguJykKKyAgICAgICAgc2VsZi5h
c3NlcnRfcm91bmRfdHJpcCgnICBbIEZPTyBdIGJhciBbIEJBWiBdJywgJ1sgRk9PIF0gYmFyIFsg
QkFaIF0nKQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdbIEZPTyBdICAgIGJhciBb
IEJBWiBdJywgJ1sgRk9PIF0gYmFyIFsgQkFaIF0nKQorICAgICAgICBzZWxmLmFzc2VydF9yb3Vu
ZF90cmlwKCdbIEZPTyBdIGJhciBbIEJBWiBdICAgICAgICMgUXV4LicsICdbIEZPTyBdIGJhciBb
IEJBWiBdICMgUXV4LicpCisgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ1sgRk9PIF0g
YmFyIFsgICAgICAgIEJBWiBdICAjIFF1eC4nLCAnWyBGT08gXSBiYXIgWyBCQVogXSAjIFF1eC4n
KQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdbIEZPTyBdICAgICAgIGJhciBbICAg
IEJBWiBdICAjIFF1eC4nLCAnWyBGT08gXSBiYXIgWyBCQVogXSAjIFF1eC4nKQorICAgICAgICBz
ZWxmLmFzc2VydF9yb3VuZF90cmlwKCdbIEZPTyBdICAgICAgIGJhciAgICAgWyAgICBCQVogXSAg
IyBRdXguJywgJ1sgRk9PIF0gYmFyIFsgQkFaIF0gIyBRdXguJykKIAogCiBpZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5w
eQppbmRleCAxZjM1ODU3YzRjNzMwN2YzZWJkNDM3NDIwNTUzMDYwNGI2NjAwY2EyLi4wNWE5Mzg4
ZDFjYzJkOTg3NmRiMDhjNDIyMDYxODExMWJmNTM5ZGVkIDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQpAQCAtMjYwLDcgKzI2MCw3IEBAIGNsYXNzIExpbnRU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICBvcHRp
b25zLCBwYXJzZWRfYXJncyA9IHBhcnNlX2FyZ3MoWyctLWxpbnQtdGVzdC1maWxlcyddKQogICAg
ICAgICBob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBwb3J0X29iaiA9IGhvc3QucG9ydF9mYWN0
b3J5LmdldChvcHRpb25zLnBsYXRmb3JtLCBvcHRpb25zPW9wdGlvbnMpCi0gICAgICAgIHBvcnRf
b2JqLmV4cGVjdGF0aW9uc19kaWN0ID0gbGFtYmRhOiB7Jyc6ICcjIHN5bnRheCBlcnJvcid9Cisg
ICAgICAgIHBvcnRfb2JqLmV4cGVjdGF0aW9uc19kaWN0ID0gbGFtYmRhOiB7Jyc6ICctLSBzeW50
YXggZXJyb3InfQogICAgICAgICByZXMsIG91dCwgZXJyID0gcnVuX2FuZF9jYXB0dXJlKHBvcnRf
b2JqLCBvcHRpb25zLCBwYXJzZWRfYXJncykKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJl
cywgLTEpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cXVlcmllc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9xdWVyaWVzX3VuaXR0ZXN0LnB5CmluZGV4IDExNTI0OTkxNjc5MTMwYjNhOGI5ODZjNWU2NjYw
ODJhYzZmNDkyNGQuLjkwYTE4MmM4ZmQ3NWU5NmI0YjEwMzU2OWI1ODk4NGFjZWM4ZGFkOGQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVy
aWVzX3VuaXR0ZXN0LnB5CkBAIC0xNzgsMzUgKzE3OCwzNSBAQCBjbGFzcyBQcmludEV4cGVjdGF0
aW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2Jhc2ljKHNlbGYpOgog
ICAgICAgICBzZWxmLnJ1bl90ZXN0KFsnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywgJ2Zh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwnXSwKICAgICAgICAgICAgICAgICAgICAgICAoJy8v
IEZvciB0ZXN0LXdpbi14cFxuJwotICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhw
ZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICdmYWls
dXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFdvbnRG
aXggXVxuJworICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5o
dG1sIFsgRmFpbHVyZSBXb250Rml4IF1cbicpKQogCiAgICAgZGVmIHRlc3RfbXVsdGlwbGUoc2Vs
Zik6CiAgICAgICAgIHNlbGYucnVuX3Rlc3QoWydmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwn
LCAnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCddLAogICAgICAgICAgICAgICAgICAgICAg
ICgnLy8gRm9yIHRlc3Qtd2luLXZpc3RhXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICdmYWls
dXJlcy9leHBlY3RlZC9pbWFnZS5odG1sID0gSU1BR0VcbicKLSAgICAgICAgICAgICAgICAgICAg
ICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFRcbicKKyAgICAgICAgICAgICAg
ICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IFdvbnRGaXggXVxuJworICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQv
dGV4dC5odG1sIFsgRmFpbHVyZSBXb250Rml4IF1cbicKICAgICAgICAgICAgICAgICAgICAgICAg
J1xuJwogICAgICAgICAgICAgICAgICAgICAgICAnLy8gRm9yIHRlc3Qtd2luLXdpbjdcbicKLSAg
ICAgICAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBJTUFH
RVxuJwotICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1s
ID0gVEVYVFxuJworICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvaW1h
Z2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgV29udEZpeCBdXG4nCisgICAgICAgICAgICAgICAg
ICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgWyBGYWlsdXJlIFdvbnRGaXggXVxu
JwogICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcv
LyBGb3IgdGVzdC13aW4teHBcbicKLSAgICAgICAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4
cGVjdGVkL2ltYWdlLmh0bWwgPSBJTUFHRVxuJwotICAgICAgICAgICAgICAgICAgICAgICAnZmFp
bHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sID0gVEVYVFxuJyksCisgICAgICAgICAgICAgICAgICAg
ICAgICdmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBXb250
Rml4IF1cbicKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQu
aHRtbCBbIEZhaWx1cmUgV29udEZpeCBdXG4nKSwKICAgICAgICAgICAgICAgICAgICAgICAgcGxh
dGZvcm09J3Rlc3Qtd2luLSonKQogCiAgICAgZGVmIHRlc3RfZnVsbChzZWxmKToKICAgICAgICAg
c2VsZi5ydW5fdGVzdChbJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsICdmYWlsdXJlcy9l
eHBlY3RlZC9pbWFnZS5odG1sJ10sCiAgICAgICAgICAgICAgICAgICAgICAgKCcvLyBGb3IgdGVz
dC13aW4teHBcbicKLSAgICAgICAgICAgICAgICAgICAgICAgJ1dPTlRGSVggOiBmYWlsdXJlcy9l
eHBlY3RlZC9pbWFnZS5odG1sID0gSU1BR0VcbicKLSAgICAgICAgICAgICAgICAgICAgICAgJ1dP
TlRGSVggOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIFdvbnRGaXggXVxuJworICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhw
ZWN0ZWQvdGV4dC5odG1sIFsgRmFpbHVyZSBXb250Rml4IF1cbicpLAogICAgICAgICAgICAgICAg
ICAgICAgIGZ1bGw9VHJ1ZSkKIAogICAgIGRlZiB0ZXN0X2V4Y2x1ZGUoc2VsZik6CiAgICAgICAg
IHNlbGYucnVuX3Rlc3QoWydmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLCAnZmFpbHVyZXMv
ZXhwZWN0ZWQvaW1hZ2UuaHRtbCddLAogICAgICAgICAgICAgICAgICAgICAgICgnLy8gRm9yIHRl
c3Qtd2luLXhwXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC90
ZXh0Lmh0bWwgPSBURVhUXG4nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4
cGVjdGVkL3RleHQuaHRtbCBbIEZhaWx1cmUgV29udEZpeCBdXG4nKSwKICAgICAgICAgICAgICAg
ICAgICAgICBleGNsdWRlX2tleXdvcmQ9WydpbWFnZSddKQogCiAgICAgZGVmIHRlc3RfaW5jbHVk
ZShzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9yZWJhc2VsaW5lLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3Jl
YmFzZWxpbmUucHkKaW5kZXggZDE2YjU1MTUxMmM1YWRjOTI1NWExZDJlMjYwMGRiZTYzN2E5YTdh
My4uY2I4ZmEwMDFmNDJhZWVlZTNhNzkyMmMwYWYzY2M3MjgxMjYxY2JiZCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKQEAgLTM1
Niw3ICszNTYsNyBAQCBjbGFzcyBSZWJhc2VsaW5lRXhwZWN0YXRpb25zKEFic3RyYWN0UGFyYWxs
ZWxSZWJhc2VsaW5lQ29tbWFuZCk6CiAgICAgICAgIGZvciBwb3J0X25hbWUgaW4gdG9vbC5wb3J0
X2ZhY3RvcnkuYWxsX3BvcnRfbmFtZXMoKToKICAgICAgICAgICAgIHNlbGYuX2FkZF90ZXN0c190
b19yZWJhc2VsaW5lX2Zvcl9wb3J0KHBvcnRfbmFtZSkKICAgICAgICAgaWYgbm90IHNlbGYuX3Rl
c3RfbGlzdDoKLSAgICAgICAgICAgIF9sb2cud2FybmluZygiRGlkIG5vdCBmaW5kIGFueSB0ZXN0
cyBtYXJrZWQgUkVCQVNFTElORS4iKQorICAgICAgICAgICAgX2xvZy53YXJuaW5nKCJEaWQgbm90
IGZpbmQgYW55IHRlc3RzIG1hcmtlZCBSZWJhc2VsaW5lLiIpCiAgICAgICAgICAgICByZXR1cm4K
IAogICAgICAgICBzZWxmLl9yZWJhc2VsaW5lKG9wdGlvbnMsIHNlbGYuX3Rlc3RfbGlzdCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5l
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFz
ZWxpbmVfdW5pdHRlc3QucHkKaW5kZXggY2FlMDFlODEzYzY3ZjJiZWU2NTU2MzA5NDAyODNmYmUw
Y2M4ODJkZi4uZDg3ZWRkZTBkODc1NGRkNDgwZDcwMmE3YjRlOTMxZjc0NmNhNmE3YiAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFz
ZWxpbmVfdW5pdHRlc3QucHkKQEAgLTY3LDggKzY3LDggQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmUo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9m
aWxlKGxpb25fcG9ydC5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgnc2tpYScsICdza2lhX3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dCcpLCAnJykKICAgICAgICAgZm9yIHBhdGggaW4gbGlvbl9wb3J0LmV4
cGVjdGF0aW9uc19maWxlcygpOgogICAgICAgICAgICAgdG9vbC5maWxlc3lzdGVtLndyaXRlX3Rl
eHRfZmlsZShwYXRoLCAnJykKLSAgICAgICAgdG9vbC5maWxlc3lzdGVtLndyaXRlX3RleHRfZmls
ZShsaW9uX3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCksICIiIkJVR0IgTUFD
IExJTlVYIFhQIERFQlVHIDogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9u
ZS1yZWFsbHktZGVlcC1hcnJheS5odG1sID0gUEFTUwotQlVHQSBERUJVRyA6IGZhc3QvY3NzL2xh
cmdlLWxpc3Qtb2YtcnVsZXMtY3Jhc2guaHRtbCA9IFRFWFQKKyAgICAgICAgdG9vbC5maWxlc3lz
dGVtLndyaXRlX3RleHRfZmlsZShsaW9uX3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19m
aWxlKCksICIiIkJVR0IgWyBNYWMgTGludXggWFAgRGVidWcgXSBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwgWyBQYXNzIF0KK0JV
R0EgWyBEZWJ1ZyBdIDogZmFzdC9jc3MvbGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sIFsg
RmFpbHVyZSBdCiAiIiIpCiAgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUo
b3MucGF0aC5qb2luKGxpb25fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCksICJmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwiKSwgIkR1
bW15IHRlc3QgY29udGVudHMiKQogICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9m
aWxlKG9zLnBhdGguam9pbihsaW9uX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpLCAiZmFzdC9jc3Mv
bGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sIiksICJEdW1teSB0ZXN0IGNvbnRlbnRzIikK
QEAgLTgxLDggKzgxLDggQEAgUmV0cmlldmluZyBodHRwOi8vZXhhbXBsZS5jb20vZi9idWlsZGVy
cy9XZWJraXQgTWFjMTAuNy9yZXN1bHRzL2xheW91dC10ZXN0LXJlc3UKICAgICAgICAgT3V0cHV0
Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdF9h
bmRfdXBkYXRlX2V4cGVjdGF0aW9ucywgWyJXZWJraXQgTWFjMTAuNyIsICJ1c2Vyc2NyaXB0cy9h
bm90aGVyLXRlc3QuaHRtbCIsIE5vbmVdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAK
ICAgICAgICAgbmV3X2V4cGVjdGF0aW9ucyA9IHRvb2wuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmls
ZShsaW9uX3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobmV3X2V4cGVjdGF0aW9ucywgIiIiQlVHQiBNQUMgTElOVVggWFAgREVC
VUcgOiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVw
LWFycmF5Lmh0bWwgPSBQQVNTCi1CVUdBIERFQlVHIDogZmFzdC9jc3MvbGFyZ2UtbGlzdC1vZi1y
dWxlcy1jcmFzaC5odG1sID0gVEVYVAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19leHBl
Y3RhdGlvbnMsICIiIkJVR0IgWyBNYWMgTGludXggWFAgRGVidWcgXSBmYXN0L2RvbS9XaW5kb3cv
d2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwgWyBQYXNzIF0K
K0JVR0EgWyBEZWJ1ZyBdIDogZmFzdC9jc3MvbGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1s
IFsgRmFpbHVyZSBdCiAiIiIpCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX3VwZGF0ZXNfZXhw
ZWN0YXRpb25zX2ZpbGUoc2VsZik6CkBAIC05Miw3ICs5Miw3IEBAIEJVR0EgREVCVUcgOiBmYXN0
L2Nzcy9sYXJnZS1saXN0LW9mLXJ1bGVzLWNyYXNoLmh0bWwgPSBURVhUCiAKICAgICAgICAgbGlv
bl9wb3J0ID0gdG9vbC5wb3J0X2ZhY3RvcnkuZ2V0X2Zyb21fYnVpbGRlcl9uYW1lKCJXZWJraXQg
TWFjMTAuNyIpCiAgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUobGlvbl9w
b3J0LnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCdza2lhJywgJ3NraWFfdGVzdF9leHBlY3RhdGlv
bnMudHh0JyksICcnKQotICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKGxp
b25fcG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKSwgIkJVR1ggTUFDIDogdXNl
cnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgPSBJTUFHRVxuQlVHWiBMSU5VWCA6IHVzZXJzY3Jp
cHRzL2Fub3RoZXItdGVzdC5odG1sID0gSU1BR0VcbiIpCisgICAgICAgIHRvb2wuZmlsZXN5c3Rl
bS53cml0ZV90ZXh0X2ZpbGUobGlvbl9wb3J0LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmls
ZSgpLCAiYnVnKHgpIFsgTWFjIF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF1cbmJ1Zyh6KSBbIExpbnV4IF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbiIpCiAgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53
cml0ZV90ZXh0X2ZpbGUob3MucGF0aC5qb2luKGxpb25fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCks
ICJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIpLCAiRHVtbXkgdGVzdCBjb250ZW50cyIp
CiAKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJldHJpZXZpbmcgaHR0cDovL2V4YW1wbGUu
Y29tL2YvYnVpbGRlcnMvV2Via2l0IE1hYzEwLjcvcmVzdWx0cy9sYXlvdXQtdGVzdC1yZXN1bHRz
L3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwucG5nLgpAQCAtMTAyLDcgKzEwMiw3IEBA
IFJldHJpZXZpbmcgaHR0cDovL2V4YW1wbGUuY29tL2YvYnVpbGRlcnMvV2Via2l0IE1hYzEwLjcv
cmVzdWx0cy9sYXlvdXQtdGVzdC1yZXN1CiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRf
b3V0cHV0cyhzZWxmLCBjb21tYW5kLl9yZWJhc2VsaW5lX3Rlc3RfYW5kX3VwZGF0ZV9leHBlY3Rh
dGlvbnMsIFsiV2Via2l0IE1hYzEwLjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwi
LCBOb25lXSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAgICAgIG5ld19leHBl
Y3RhdGlvbnMgPSB0b29sLmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUobGlvbl9wb3J0LnBhdGhf
dG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5l
d19leHBlY3RhdGlvbnMsICJCVUdYIFNOT1dMRU9QQVJEIDogdXNlcnNjcmlwdHMvYW5vdGhlci10
ZXN0Lmh0bWwgPSBJTUFHRVxuQlVHWiBMSU5VWCA6IHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5o
dG1sID0gSU1BR0VcbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X2V4cGVjdGF0aW9u
cywgImJ1Zyh4KSBbIFNub3dMZW9wYXJkIF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF1cbmJ1Zyh6KSBbIExpbnV4IF0gdXNlcnNjcmlwdHMvYW5vdGhl
ci10ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbiIpCiAKICAgICBkZWYgdGVzdF9yZWJh
c2VsaW5lX2RvZXNfbm90X2luY2x1ZGVfb3ZlcnJpZGVzKHNlbGYpOgogICAgICAgICBjb21tYW5k
ID0gUmViYXNlbGluZVRlc3QoKQpAQCAtMTExLDggKzExMSw4IEBAIFJldHJpZXZpbmcgaHR0cDov
L2V4YW1wbGUuY29tL2YvYnVpbGRlcnMvV2Via2l0IE1hYzEwLjcvcmVzdWx0cy9sYXlvdXQtdGVz
dC1yZXN1CiAKICAgICAgICAgbGlvbl9wb3J0ID0gdG9vbC5wb3J0X2ZhY3RvcnkuZ2V0X2Zyb21f
YnVpbGRlcl9uYW1lKCJXZWJraXQgTWFjMTAuNyIpCiAgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53
cml0ZV90ZXh0X2ZpbGUobGlvbl9wb3J0LnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCdza2lhJywg
J3NraWFfdGVzdF9leHBlY3RhdGlvbnMudHh0JyksICcnKQotICAgICAgICB0b29sLmZpbGVzeXN0
ZW0ud3JpdGVfdGV4dF9maWxlKGxpb25fcG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2Zp
bGUoKSwgIkJVR1ggTUFDIDogdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgPSBJTUFHRVxu
QlVHWiBMSU5VWCA6IHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sID0gSU1BR0VcbiIpCi0g
ICAgICAgIHRvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUobGlvbl9wb3J0LnBhdGhfZnJv
bV9jaHJvbWl1bV9iYXNlKCdza2lhJywgJ3NraWFfdGVzdF9leHBlY3RhdGlvbnMudHh0JyksICJC
VUdZIE1BQyA6IG90aGVyLXRlc3QuaHRtbCA9IFRFWFRcbiIpCisgICAgICAgIHRvb2wuZmlsZXN5
c3RlbS53cml0ZV90ZXh0X2ZpbGUobGlvbl9wb3J0LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNf
ZmlsZSgpLCAiYnVnKHgpIFsgTWFjIF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF1cbmJ1Zyh6KSBbIExpbnV4IF0gdXNlcnNjcmlwdHMvYW5vdGhlci10
ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbiIpCisgICAgICAgIHRvb2wuZmlsZXN5c3Rl
bS53cml0ZV90ZXh0X2ZpbGUobGlvbl9wb3J0LnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCdza2lh
JywgJ3NraWFfdGVzdF9leHBlY3RhdGlvbnMudHh0JyksICJidWcoeSkgWyBNYWMgXSBvdGhlci10
ZXN0Lmh0bWwgWyBGYWlsdXJlIF1cbiIpCiAgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53cml0ZV90
ZXh0X2ZpbGUob3MucGF0aC5qb2luKGxpb25fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCksICJ1c2Vy
c2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIpLCAiRHVtbXkgdGVzdCBjb250ZW50cyIpCiAKICAg
ICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJldHJpZXZpbmcgaHR0cDovL2V4YW1wbGUuY29tL2Yv
YnVpbGRlcnMvV2Via2l0IE1hYzEwLjcvcmVzdWx0cy9sYXlvdXQtdGVzdC1yZXN1bHRzL3VzZXJz
Y3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwucG5nLgpAQCAtMTIyLDcgKzEyMiw3IEBAIFJldHJp
ZXZpbmcgaHR0cDovL2V4YW1wbGUuY29tL2YvYnVpbGRlcnMvV2Via2l0IE1hYzEwLjcvcmVzdWx0
cy9sYXlvdXQtdGVzdC1yZXN1CiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0
cyhzZWxmLCBjb21tYW5kLl9yZWJhc2VsaW5lX3Rlc3RfYW5kX3VwZGF0ZV9leHBlY3RhdGlvbnMs
IFsiV2Via2l0IE1hYzEwLjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCBOb25l
XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAgICAgIG5ld19leHBlY3RhdGlv
bnMgPSB0b29sLmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUobGlvbl9wb3J0LnBhdGhfdG9fdGVz
dF9leHBlY3RhdGlvbnNfZmlsZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19leHBl
Y3RhdGlvbnMsICJCVUdYIFNOT1dMRU9QQVJEIDogdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0
bWwgPSBJTUFHRVxuQlVHWiBMSU5VWCA6IHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sID0g
SU1BR0VcbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X2V4cGVjdGF0aW9ucywgImJ1
Zyh4KSBbIFNub3dMZW9wYXJkIF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF1cbmJ1Zyh6KSBbIExpbnV4IF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbiIpCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5l
X3Rlc3Qoc2VsZik6CiAgICAgICAgIGNvbW1hbmQgPSBSZWJhc2VsaW5lVGVzdCgpCkBAIC0zMzEs
NyArMzMxLDcgQEAgTU9DSyBydW5fY29tbWFuZDogWydxbWFrZScsICctdiddLCBjd2Q9Tm9uZQog
ICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgY29tbWFuZC5leGVj
dXRlLCBbb3B0aW9ucywgYXJncywgdG9vbF0sIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRv
dXQsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0
ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmVfZXhwZWN0YXRpb25zX25vb3Aoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuX2Fzc2VydF9jb21tYW5kKFJlYmFzZWxpbmVFeHBlY3RhdGlvbnMo
KSwgZXhwZWN0ZWRfbG9ncz0nRGlkIG5vdCBmaW5kIGFueSB0ZXN0cyBtYXJrZWQgUkVCQVNFTElO
RS5cbicpCisgICAgICAgIHNlbGYuX2Fzc2VydF9jb21tYW5kKFJlYmFzZWxpbmVFeHBlY3RhdGlv
bnMoKSwgZXhwZWN0ZWRfbG9ncz0nRGlkIG5vdCBmaW5kIGFueSB0ZXN0cyBtYXJrZWQgUmViYXNl
bGluZS5cbicpCiAKICAgICBkZWYgdGVzdF9vdmVycmlkZXNfYXJlX2luY2x1ZGVkX2NvcnJlY3Rs
eShzZWxmKToKICAgICAgICAgY29tbWFuZCA9IFJlYmFzZWxpbmVFeHBlY3RhdGlvbnMoKQpAQCAt
MzQ2LDggKzM0Niw4IEBAIE1PQ0sgcnVuX2NvbW1hbmQ6IFsncW1ha2UnLCAnLXYnXSwgY3dkPU5v
bmUKICAgICAgICAgcG9ydC5fZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoZXhwZWN0YXRpb25z
X3BhdGgsIGV4cGVjdGF0aW9uc19jb250ZW50cykKICAgICAgICAgcG9ydC5leHBlY3RhdGlvbnNf
ZGljdCA9IGxhbWJkYTogewogICAgICAgICAgICAgZXhwZWN0YXRpb25zX3BhdGg6IGV4cGVjdGF0
aW9uc19jb250ZW50cywKLSAgICAgICAgICAgICdvdmVycmlkZXMnOiAoJ0JVR1ggUkVCQVNFTElO
RSA6IHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sID0gVEVYVFxuJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAnQlVHWSA6IHVzZXJzY3JpcHRzL3Rlc3QuaHRtbCA9IENSQVNIXG4nKX0K
KyAgICAgICAgICAgICdvdmVycmlkZXMnOiAoJ2J1Zyh4KSB1c2Vyc2NyaXB0cy9hbm90aGVyLXRl
c3QuaHRtbCBbIEZhaWx1cmUgUmViYXNlbGluZSBdXG4nCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICdidWcoeSkgdXNlcnNjcmlwdHMvdGVzdC5odG1sIFsgQ3Jhc2ggXVxuJyl9CiAKICAgICAg
ICAgZm9yIHBhdGggaW4gcG9ydC5leHBlY3RhdGlvbnNfZmlsZXMoKToKICAgICAgICAgICAgIHBv
cnQuX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHBhdGgsICcnKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164789</attachid>
            <date>2012-09-19 15:34:18 -0700</date>
            <delta_ts>2012-09-19 15:34:18 -0700</delta_ts>
            <desc>merge to HEAD</desc>
            <filename>bug-96588-20120919153344.patch</filename>
            <type>text/plain</type>
            <size>45297</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDUxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTU1YmM1ZjlkNDQzYjg4OTA4MzA3OTNhZjkxMTlmOGNh
Njk4MGMwNS4uYThiZjU4NTRiY2I5YzNjMmEyYzViOWIwMTY1NzYxMzY5ZTNiYzVmYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY1
IEBACiAyMDEyLTA5LTE5ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIFN1cHBvcnQgbmV3IFRlc3RFeHBlY3RhdGlvbnMgZm9ybWF0IGFsb25nc2lkZSBvbGQg
b25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjU4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIHN1cHBvcnQgZm9yIGFjdHVhbGx5IHJlYWRpbmcgaW4gbGluZXMgZm9ybWF0dGVkCisg
ICAgICAgIGluIHRoZSBuZXcgc3R5bGUsIGFuZCB3aGVuIHdlIHJlLXNlcmlhbGl6ZS93cml0ZSBv
dXQgdGhlIGZpbGUsCisgICAgICAgIGFsbCBsaW5lcyB3aWxsIGJlIHdyaXR0ZW4gaW4gdGhlIG5l
dyBzdHlsZS4gTm90ZSB0aGF0IHJlYWRpbmcgaW4KKyAgICAgICAgdGhlIG9sZCBzdHlsZSBpcyBz
dGlsbCBzdXBwb3J0ZWQsIGFuZCBubyB1cGRhdGVzIGFyZSBiZWluZyBtYWRlCisgICAgICAgIHRv
IHRoZSBhY3R1YWwgVGVzdEV4cGVjdGF0aW9ucyBmaWxlcyBhcyBwYXJ0IG9mIHRoaXMgY2hhbmdl
LgorCisgICAgICAgIFRoaXMgY2hhbmdlIHVwZGF0ZXMgbW9zdCBidXQgbm90IGFsbCBvZiB0aGUg
dW5pdCB0ZXN0cyB0byB1c2UKKyAgICAgICAgdGhlIG5ldyBzeW50YXguIEkgd2lsbCB1cGRhdGUg
dGhlIHJlc3Qgd2hlbiAob3IgYmVmb3JlIHdoZXJlCisgICAgICAgIHBvc3NpYmxlKSBJIGRyb3Ag
c3VwcG9ydCBmb3IgdGhlIG9sZCBmb3JtYXQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHk6CisgICAgICAgIChUZXN0
RXhwZWN0YXRpb25QYXJzZXIpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uUGFyc2VyLl90b2tl
bml6ZV9saW5lKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblBhcnNlci5fdG9rZW5pemVfbGlu
ZV91c2luZ19uZXdfZm9ybWF0KToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbkxpbmUudG9fc3Ry
aW5nKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbkxpbmUuX2Zvcm1hdF9saW5lKToKKyAgICAg
ICAgKFRlc3RFeHBlY3RhdGlvbnMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weToKKyAgICAgICAgKHRl
c3RfcGFyc2Vfd2FybmluZyk6CisgICAgICAgIChTa2lwcGVkVGVzdHMudGVzdF9za2lwcGVkX2Vu
dHJ5X2RvbnRfZXhpc3QpOgorICAgICAgICAoTmV3RXhwZWN0YXRpb25TeW50YXhUZXN0cy50ZXN0
X3dhcm5pbmdzKToKKyAgICAgICAgKFJlbW92ZUNvbmZpZ3VyYXRpb25zVGVzdC50ZXN0X3JlbW92
ZSk6CisgICAgICAgICh0ZXN0X3JlbW92ZV9saW5lKToKKyAgICAgICAgKFJlYmFzZWxpbmluZ1Rl
c3QudGVzdF9yZW1vdmUpOgorICAgICAgICAoUmViYXNlbGluaW5nVGVzdC50ZXN0X25vX2dldF9y
ZWJhc2VsaW5pbmdfZmFpbHVyZXMpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uUGFyc2VyVGVz
dHMudGVzdF90b2tlbml6ZV9ibGFuayk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25QYXJzZXJU
ZXN0cy50ZXN0X3Rva2VuaXplX2V4dHJhX2NvbG9uKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlv
blBhcnNlclRlc3RzLnRlc3RfdG9rZW5pemVfbWlzc2luZ19lcXVhbCk6CisgICAgICAgIChUZXN0
RXhwZWN0YXRpb25QYXJzZXJUZXN0cy50ZXN0X3Rva2VuaXplX2V4dHJhX2VxdWFsKToKKyAgICAg
ICAgKFRlc3RFeHBlY3RhdGlvblNlcmlhbGl6YXRpb25UZXN0cy50ZXN0X3VucGFyc2VkX3RvX3N0
cmluZyk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25TZXJpYWxpemF0aW9uVGVzdHMudGVzdF91
bnBhcnNlZF9saXN0X3RvX3N0cmluZyk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25TZXJpYWxp
emF0aW9uVGVzdHMudGVzdF9wYXJzZWRfdG9fc3RyaW5nKToKKyAgICAgICAgKFRlc3RFeHBlY3Rh
dGlvblNlcmlhbGl6YXRpb25UZXN0cy50ZXN0X2Zvcm1hdF9saW5lKToKKyAgICAgICAgKFRlc3RF
eHBlY3RhdGlvblNlcmlhbGl6YXRpb25UZXN0cy50ZXN0X3N0cmluZ19yb3VuZHRyaXApOgorICAg
ICAgICAoVGVzdEV4cGVjdGF0aW9uU2VyaWFsaXphdGlvblRlc3RzLnRlc3RfbGlzdF9yb3VuZHRy
aXApOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uU2VyaWFsaXphdGlvblRlc3RzLnRlc3RfcmVj
b25zdGl0dXRlX29ubHlfdGhlc2UpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uU2VyaWFsaXph
dGlvblRlc3RzLnRlc3Rfc3RyaW5nX3doaXRlc3BhY2Vfc3RyaXBwaW5nKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9u
dGVzdC5weToKKyAgICAgICAgKExpbnRUZXN0LnRlc3RfbGludF90ZXN0X2ZpbGVzX19lcnJvcnMp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzX3VuaXR0
ZXN0LnB5OgorICAgICAgICAoUHJpbnRFeHBlY3RhdGlvbnNUZXN0LnRlc3RfYmFzaWMpOgorICAg
ICAgICAoUHJpbnRFeHBlY3RhdGlvbnNUZXN0LnRlc3RfbXVsdGlwbGUpOgorICAgICAgICAoUHJp
bnRFeHBlY3RhdGlvbnNUZXN0LnRlc3RfZnVsbCk6CisgICAgICAgIChQcmludEV4cGVjdGF0aW9u
c1Rlc3QudGVzdF9leGNsdWRlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvcmViYXNlbGluZS5weToKKyAgICAgICAgKFJlYmFzZWxpbmVFeHBlY3RhdGlvbnMuZXhl
Y3V0ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxp
bmVfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0UmViYXNlbGluZS50ZXN0X3JlYmFzZWxpbmVf
dXBkYXRlc19leHBlY3RhdGlvbnNfZmlsZV9ub29wKToKKyAgICAgICAgKHRlc3RfcmViYXNlbGlu
ZV91cGRhdGVzX2V4cGVjdGF0aW9uc19maWxlKToKKyAgICAgICAgKHRlc3RfcmViYXNlbGluZV9k
b2VzX25vdF9pbmNsdWRlX292ZXJyaWRlcyk6CisgICAgICAgICh0ZXN0X3JlYmFzZWxpbmVfZXhw
ZWN0YXRpb25zX25vb3ApOgorICAgICAgICAodGVzdF9vdmVycmlkZXNfYXJlX2luY2x1ZGVkX2Nv
cnJlY3RseSk6CisKKzIwMTItMDktMTkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5v
cmc+CisKICAgICAgICAgaW1wbGVtZW50IGZpcnN0IHBhcnQgb2Ygc3VwcG9ydCBmb3IgdGhlIG5l
dyBUZXN0RXhwZWN0YXRpb25zIHN5bnRheAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTY1NjkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5Cmlu
ZGV4IGNlNGJlM2RhNDQ4NTFmOTU1MTgzZGQ3ZDU3MDlmOWZlNTVkZDNkODguLmVjNTdkMzI3YTk1
OTYwYTU0M2E0ZTY2OTY3NGNiOTIwNmExN2UwZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlv
bnMucHkKQEAgLTIwOSwxMCArMjA5LDE1IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvblBhcnNlcihv
YmplY3QpOgogICAgICAgICBpZiBleHBlY3RhdGlvbl9saW5lLnBhdGggaW4gc2VsZi5fZnVsbF90
ZXN0X2xpc3Q6CiAgICAgICAgICAgICBleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX3Rlc3RzLmFw
cGVuZChleHBlY3RhdGlvbl9saW5lLnBhdGgpCiAKKyAgICAjIEZJWE1FOiBTZWVtcyBsaWtlIHRo
ZXNlIHNob3VsZCBiZSBjbGFzc21ldGhvZHMgb24gVGVzdEV4cGVjdGF0aW9uTGluZSBpbnN0ZWFk
IG9mIFRlc3RFeHBlY3RhdGlvblBhcnNlci4KICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgX3Rv
a2VuaXplX2xpbmUoY2xzLCBmaWxlbmFtZSwgZXhwZWN0YXRpb25fc3RyaW5nLCBsaW5lX251bWJl
cik6Ci0gICAgICAgICMgRklYTUU6IEFkZCBpbiBzdXBwb3J0IGZvciB0aGUgbmV3IGZvcm1hdCBh
cyB3ZWxsLgotICAgICAgICByZXR1cm4gY2xzLl90b2tlbml6ZV9saW5lX3VzaW5nX29sZF9mb3Jt
YXQoZmlsZW5hbWUsIGV4cGVjdGF0aW9uX3N0cmluZywgbGluZV9udW1iZXIpCisgICAgICAgIGV4
cGVjdGF0aW9uX2xpbmUgPSBjbHMuX3Rva2VuaXplX2xpbmVfdXNpbmdfbmV3X2Zvcm1hdChmaWxl
bmFtZSwgZXhwZWN0YXRpb25fc3RyaW5nLCBsaW5lX251bWJlcikKKyAgICAgICAgaWYgZXhwZWN0
YXRpb25fbGluZS5pc19pbnZhbGlkKCk6CisgICAgICAgICAgICBvbGRfZXhwZWN0YXRpb25fbGlu
ZSA9IGNscy5fdG9rZW5pemVfbGluZV91c2luZ19vbGRfZm9ybWF0KGZpbGVuYW1lLCBleHBlY3Rh
dGlvbl9zdHJpbmcsIGxpbmVfbnVtYmVyKQorICAgICAgICAgICAgaWYgbm90IG9sZF9leHBlY3Rh
dGlvbl9saW5lLmlzX2ludmFsaWQoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gb2xkX2V4cGVj
dGF0aW9uX2xpbmUKKyAgICAgICAgcmV0dXJuIGV4cGVjdGF0aW9uX2xpbmUKIAogICAgIEBjbGFz
c21ldGhvZAogICAgIGRlZiBfdG9rZW5pemVfbGluZV91c2luZ19vbGRfZm9ybWF0KGNscywgZmls
ZW5hbWUsIGV4cGVjdGF0aW9uX3N0cmluZywgbGluZV9udW1iZXIpOgpAQCAtMjY1LDE5ICsyNzAs
MjMgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uUGFyc2VyKG9iamVjdCk6CiAgICAgXQogCiAgICAg
X2NvbmZpZ3VyYXRpb25fdG9rZW5zID0gZGljdCgodG9rZW4sIHRva2VuLnVwcGVyKCkpIGZvciB0
b2tlbiBpbiBfY29uZmlndXJhdGlvbl90b2tlbnNfbGlzdCkKKyAgICBfaW52ZXJ0ZWRfY29uZmln
dXJhdGlvbl90b2tlbnMgPSBkaWN0KCh2YWx1ZSwgbmFtZSkgZm9yIG5hbWUsIHZhbHVlIGluIF9j
b25maWd1cmF0aW9uX3Rva2Vucy5pdGVyaXRlbXMoKSkKIAotICAgICMgTm90ZTogd2UgY2FuJ3Qg
ZGlzdGluZ3Vpc2ggYXVkaW8gZmFpbHVyZXMgb3IgaW1hZ2UrdGV4dCBmYWlsdXJlcyBmcm9tIHRl
eHQtb25seSBmYWlsdXJlcy4KICAgICAjIEZJWE1FOiBVcGRhdGUgdGhlIG9yaWdpbmFsIG1vZGlm
aWVycyBsaXN0IGFuZCByZW1vdmUgdGhpcyBvbmNlIHRoZSBvbGQgc3ludGF4IGlzIGdvbmUuCiAg
ICAgX2V4cGVjdGF0aW9uX3Rva2VucyA9IHsKLSAgICAgICAgJ1dvbnRGaXgnOiAnV09OVEZJWCcs
Ci0gICAgICAgICdQYXNzJzogJ1BBU1MnLAorICAgICAgICAnQ3Jhc2gnOiAnQ1JBU0gnLAogICAg
ICAgICAnRmFpbHVyZSc6ICdGQUlMJywKICAgICAgICAgJ0ltYWdlT25seUZhaWx1cmUnOiAnSU1B
R0UnLAotICAgICAgICAnQ3Jhc2gnOiAnQ1JBU0gnLAotICAgICAgICAnVGltZW91dCc6ICdUSU1F
T1VUJywKKyAgICAgICAgJ1Bhc3MnOiAnUEFTUycsCisgICAgICAgICdSZWJhc2VsaW5lJzogJ1JF
QkFTRUxJTkUnLAorICAgICAgICAnU2tpcCc6ICdTS0lQJywKICAgICAgICAgJ1Nsb3cnOiAnU0xP
VycsCisgICAgICAgICdUaW1lb3V0JzogJ1RJTUVPVVQnLAorICAgICAgICAnV29udEZpeCc6ICdX
T05URklYJywKICAgICB9CiAKKyAgICBfaW52ZXJ0ZWRfZXhwZWN0YXRpb25fdG9rZW5zID0gZGlj
dCgodmFsdWUsIG5hbWUpIGZvciBuYW1lLCB2YWx1ZSBpbiBfZXhwZWN0YXRpb25fdG9rZW5zLml0
ZXJpdGVtcygpKQorCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIF90b2tlbml6ZV9saW5lX3Vz
aW5nX25ld19mb3JtYXQoY2xzLCBmaWxlbmFtZSwgZXhwZWN0YXRpb25fc3RyaW5nLCBsaW5lX251
bWJlcik6CiAgICAgICAgICIiIlRva2VuaXplcyBhIGxpbmUgZnJvbSBUZXN0RXhwZWN0YXRpb25z
IGFuZCByZXR1cm5zIGFuIHVucGFyc2VkIFRlc3RFeHBlY3RhdGlvbkxpbmUgaW5zdGFuY2UgdXNp
bmcgdGhlIG9sZCBmb3JtYXQuCkBAIC0yOTAsNiArMjk5LDcgQEAgY2xhc3MgVGVzdEV4cGVjdGF0
aW9uUGFyc2VyKG9iamVjdCk6CiAKICAgICAgICAgIiIiCiAgICAgICAgIGV4cGVjdGF0aW9uX2xp
bmUgPSBUZXN0RXhwZWN0YXRpb25MaW5lKCkKKyAgICAgICAgZXhwZWN0YXRpb25fbGluZS5vcmln
aW5hbF9zdHJpbmcgPSBleHBlY3RhdGlvbl9zdHJpbmcKICAgICAgICAgZXhwZWN0YXRpb25fbGlu
ZS5maWxlbmFtZSA9IGZpbGVuYW1lCiAgICAgICAgIGV4cGVjdGF0aW9uX2xpbmUubGluZV9udW1i
ZXIgPSBsaW5lX251bWJlcgogCkBAIC00NDQsMTggKzQ1NCwxOSBAQCBjbGFzcyBUZXN0RXhwZWN0
YXRpb25MaW5lKG9iamVjdCk6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5vcmlnaW5hbF9zdHJp
bmcgb3IgJycKIAogICAgICAgICBpZiBzZWxmLm5hbWUgaXMgTm9uZToKLSAgICAgICAgICAgIHJl
dHVybiAnJyBpZiBzZWxmLmNvbW1lbnQgaXMgTm9uZSBlbHNlICIvLyVzIiAlIHNlbGYuY29tbWVu
dAorICAgICAgICAgICAgcmV0dXJuICcnIGlmIHNlbGYuY29tbWVudCBpcyBOb25lIGVsc2UgIiMl
cyIgJSBzZWxmLmNvbW1lbnQKIAogICAgICAgICBpZiB0ZXN0X2NvbmZpZ3VyYXRpb25fY29udmVy
dGVyIGFuZCBzZWxmLnBhcnNlZF9idWdfbW9kaWZpZXJzOgogICAgICAgICAgICAgc3BlY2lmaWVy
c19saXN0ID0gdGVzdF9jb25maWd1cmF0aW9uX2NvbnZlcnRlci50b19zcGVjaWZpZXJzX2xpc3Qo
c2VsZi5tYXRjaGluZ19jb25maWd1cmF0aW9ucykKICAgICAgICAgICAgIHJlc3VsdCA9IFtdCiAg
ICAgICAgICAgICBmb3Igc3BlY2lmaWVycyBpbiBzcGVjaWZpZXJzX2xpc3Q6Ci0gICAgICAgICAg
ICAgICAgbW9kaWZpZXJzID0gc2VsZi5fc2VyaWFsaXplX3BhcnNlZF9tb2RpZmllcnModGVzdF9j
b25maWd1cmF0aW9uX2NvbnZlcnRlciwgc3BlY2lmaWVycykKLSAgICAgICAgICAgICAgICBleHBl
Y3RhdGlvbnMgPSBzZWxmLl9zZXJpYWxpemVfcGFyc2VkX2V4cGVjdGF0aW9ucyhwYXJzZWRfZXhw
ZWN0YXRpb25fdG9fc3RyaW5nKQorICAgICAgICAgICAgICAgICMgRklYTUU6IHRoaXMgaXMgc2ls
bHkgdGhhdCB3ZSBqb2luIHRoZSBtb2RpZmllcnMgYW5kIHRoZW4gaW1tZWRpYXRlbHkgc3BsaXQg
dGhlbS4KKyAgICAgICAgICAgICAgICBtb2RpZmllcnMgPSBzZWxmLl9zZXJpYWxpemVfcGFyc2Vk
X21vZGlmaWVycyh0ZXN0X2NvbmZpZ3VyYXRpb25fY29udmVydGVyLCBzcGVjaWZpZXJzKS5zcGxp
dCgpCisgICAgICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fc2VyaWFsaXplX3BhcnNl
ZF9leHBlY3RhdGlvbnMocGFyc2VkX2V4cGVjdGF0aW9uX3RvX3N0cmluZykuc3BsaXQoKQogICAg
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc2VsZi5fZm9ybWF0X2xpbmUobW9kaWZpZXJzLCBz
ZWxmLm5hbWUsIGV4cGVjdGF0aW9ucywgc2VsZi5jb21tZW50KSkKICAgICAgICAgICAgIHJldHVy
biAiXG4iLmpvaW4ocmVzdWx0KSBpZiByZXN1bHQgZWxzZSBOb25lCiAKLSAgICAgICAgcmV0dXJu
IHNlbGYuX2Zvcm1hdF9saW5lKCIgIi5qb2luKHNlbGYubW9kaWZpZXJzKSwgc2VsZi5uYW1lLCAi
ICIuam9pbihzZWxmLmV4cGVjdGF0aW9ucyksIHNlbGYuY29tbWVudCwKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2Zvcm1hdF9saW5lKHNlbGYubW9kaWZpZXJzLCBzZWxmLm5hbWUsIHNlbGYuZXhwZWN0
YXRpb25zLCBzZWxmLmNvbW1lbnQsCiAgICAgICAgICAgICBpbmNsdWRlX21vZGlmaWVycywgaW5j
bHVkZV9leHBlY3RhdGlvbnMsIGluY2x1ZGVfY29tbWVudCkKIAogICAgIGRlZiB0b19jc3Yoc2Vs
Zik6CkBAIC00NzksMTQgKzQ5MCwzOCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25MaW5lKG9iamVj
dCk6CiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIF9mb3JtYXRfbGluZShtb2RpZmllcnMs
IG5hbWUsIGV4cGVjdGF0aW9ucywgY29tbWVudCwgaW5jbHVkZV9tb2RpZmllcnM9VHJ1ZSwgaW5j
bHVkZV9leHBlY3RhdGlvbnM9VHJ1ZSwgaW5jbHVkZV9jb21tZW50PVRydWUpOgorICAgICAgICBi
dWdzID0gW10KKyAgICAgICAgbmV3X21vZGlmaWVycyA9IFtdCisgICAgICAgIG5ld19leHBlY3Rh
dGlvbnMgPSBbXQorICAgICAgICBmb3IgbW9kaWZpZXIgaW4gbW9kaWZpZXJzOgorICAgICAgICAg
ICAgbW9kaWZpZXIgPSBtb2RpZmllci51cHBlcigpCisgICAgICAgICAgICBpZiBtb2RpZmllci5z
dGFydHN3aXRoKCdCVUdXSycpOgorICAgICAgICAgICAgICAgIGJ1Z3MuYXBwZW5kKCd3ZWJraXQu
b3JnL2IvJyArIG1vZGlmaWVyLnJlcGxhY2UoJ0JVR1dLJywgJycpKQorICAgICAgICAgICAgZWxp
ZiBtb2RpZmllci5zdGFydHN3aXRoKCdCVUdDUicpOgorICAgICAgICAgICAgICAgIGJ1Z3MuYXBw
ZW5kKCdjcmJ1Zy5jb20vJyArIG1vZGlmaWVyLnJlcGxhY2UoJ0JVR0NSJywgJycpKQorICAgICAg
ICAgICAgZWxpZiBtb2RpZmllci5zdGFydHN3aXRoKCdCVUcnKToKKyAgICAgICAgICAgICAgICAj
IEZJWE1FOiB3ZSBzaG91bGQgcHJlc2VydmUgY2FzZSBvbmNlIHdlIGNhbiBkcm9wIHRoZSBvbGQg
c3ludGF4LgorICAgICAgICAgICAgICAgIGJ1Z3MuYXBwZW5kKCdCdWcoJyArIG1vZGlmaWVyWzM6
XS5sb3dlcigpICsgJyknKQorICAgICAgICAgICAgZWxpZiBtb2RpZmllciBpbiAoJ1NMT1cnLCAn
U0tJUCcsICdSRUJBU0VMSU5FJywgJ1dPTlRGSVgnKToKKyAgICAgICAgICAgICAgICBuZXdfZXhw
ZWN0YXRpb25zLmFwcGVuZChUZXN0RXhwZWN0YXRpb25QYXJzZXIuX2ludmVydGVkX2V4cGVjdGF0
aW9uX3Rva2Vucy5nZXQobW9kaWZpZXIpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICBuZXdfbW9kaWZpZXJzLmFwcGVuZChUZXN0RXhwZWN0YXRpb25QYXJzZXIuX2ludmVydGVk
X2NvbmZpZ3VyYXRpb25fdG9rZW5zLmdldChtb2RpZmllciwgbW9kaWZpZXIpKQorCisgICAgICAg
IGZvciBleHBlY3RhdGlvbiBpbiBleHBlY3RhdGlvbnM6CisgICAgICAgICAgICBleHBlY3RhdGlv
biA9IGV4cGVjdGF0aW9uLnVwcGVyKCkKKyAgICAgICAgICAgIG5ld19leHBlY3RhdGlvbnMuYXBw
ZW5kKFRlc3RFeHBlY3RhdGlvblBhcnNlci5faW52ZXJ0ZWRfZXhwZWN0YXRpb25fdG9rZW5zLmdl
dChleHBlY3RhdGlvbiwgZXhwZWN0YXRpb24pKQorCiAgICAgICAgIHJlc3VsdCA9ICcnCi0gICAg
ICAgIGlmIGluY2x1ZGVfbW9kaWZpZXJzOgotICAgICAgICAgICAgcmVzdWx0ICs9ICclcyA6ICcg
JSBtb2RpZmllcnMudXBwZXIoKQorICAgICAgICBpZiBpbmNsdWRlX21vZGlmaWVycyBhbmQgKGJ1
Z3Mgb3IgbmV3X21vZGlmaWVycyk6CisgICAgICAgICAgICBpZiBidWdzOgorICAgICAgICAgICAg
ICAgIHJlc3VsdCArPSAnICcuam9pbihidWdzKSArICcgJworICAgICAgICAgICAgaWYgbmV3X21v
ZGlmaWVyczoKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ1sgJXMgXSAnICUgJyAnLmpvaW4o
bmV3X21vZGlmaWVycykKICAgICAgICAgcmVzdWx0ICs9IG5hbWUKLSAgICAgICAgaWYgaW5jbHVk
ZV9leHBlY3RhdGlvbnM6Ci0gICAgICAgICAgICByZXN1bHQgKz0gJyA9ICVzJyAlIGV4cGVjdGF0
aW9ucy51cHBlcigpCisgICAgICAgIGlmIGluY2x1ZGVfZXhwZWN0YXRpb25zIGFuZCBuZXdfZXhw
ZWN0YXRpb25zIGFuZCBzZXQobmV3X2V4cGVjdGF0aW9ucykgIT0gc2V0KFsnU2tpcCcsICdQYXNz
J10pOgorICAgICAgICAgICAgcmVzdWx0ICs9ICcgWyAlcyBdJyAlICcgJy5qb2luKHNvcnRlZChz
ZXQobmV3X2V4cGVjdGF0aW9ucykpKQogICAgICAgICBpZiBpbmNsdWRlX2NvbW1lbnQgYW5kIGNv
bW1lbnQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXN1bHQgKz0gIiAvLyVzIiAlIGNvbW1l
bnQKKyAgICAgICAgICAgIHJlc3VsdCArPSAiICMlcyIgJSBjb21tZW50CiAgICAgICAgIHJldHVy
biByZXN1bHQKIAogCkBAIC03MzAsMjEgKzc2NSwyMSBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25z
KG9iamVjdCk6CiAgICAgaW4gd2hpY2ggY2FzZSB0aGUgZXhwZWN0YXRpb25zIGFwcGx5IHRvIGFs
bCB0ZXN0IGNhc2VzIGluIHRoYXQKICAgICBkaXJlY3RvcnkgYW5kIGFueSBzdWJkaXJlY3Rvcnku
IFRoZSBmb3JtYXQgaXMgYWxvbmcgdGhlIGxpbmVzIG9mOgogCi0gICAgICBMYXlvdXRUZXN0cy9m
YXN0L2pzL2ZpeG1lLmpzID0gRkFJTAotICAgICAgTGF5b3V0VGVzdHMvZmFzdC9qcy9mbGFreS5q
cyA9IEZBSUwgUEFTUwotICAgICAgTGF5b3V0VGVzdHMvZmFzdC9qcy9jcmFzaC5qcyA9IENSQVNI
IFRJTUVPVVQgRkFJTCBQQVNTCisgICAgICBMYXlvdXRUZXN0cy9mYXN0L2pzL2ZpeG1lLmpzIFsg
RmFpbHVyZSBdCisgICAgICBMYXlvdXRUZXN0cy9mYXN0L2pzL2ZsYWt5LmpzIFsgRmFpbHVyZSBQ
YXNzIF0KKyAgICAgIExheW91dFRlc3RzL2Zhc3QvanMvY3Jhc2guanMgWyBDcmFzaCBGYWlsdXJl
IFBhc3MgVGltZW91dCBdCiAgICAgICAuLi4KIAogICAgIFRvIGFkZCBtb2RpZmllcnM6Ci0gICAg
ICBTS0lQIDogTGF5b3V0VGVzdHMvZmFzdC9qcy9uby1nb29kLmpzID0gVElNRU9VVCBQQVNTCi0g
ICAgICBERUJVRyA6IExheW91dFRlc3RzL2Zhc3QvanMvbm8tZ29vZC5qcyA9IFRJTUVPVVQgUEFT
UwotICAgICAgREVCVUcgU0tJUCA6IExheW91dFRlc3RzL2Zhc3QvanMvbm8tZ29vZC5qcyA9IFRJ
TUVPVVQgUEFTUwotICAgICAgTElOVVggREVCVUcgU0tJUCA6IExheW91dFRlc3RzL2Zhc3QvanMv
bm8tZ29vZC5qcyA9IFRJTUVPVVQgUEFTUwotICAgICAgTElOVVggV0lOIDogTGF5b3V0VGVzdHMv
ZmFzdC9qcy9uby1nb29kLmpzID0gVElNRU9VVCBQQVNTCisgICAgICBMYXlvdXRUZXN0cy9mYXN0
L2pzL25vLWdvb2QuanMKKyAgICAgIFsgRGVidWcgXSBMYXlvdXRUZXN0cy9mYXN0L2pzL25vLWdv
b2QuanMgWyBQYXNzIFRpbWVvdXQgXQorICAgICAgWyBEZWJ1ZyBdIExheW91dFRlc3RzL2Zhc3Qv
anMvbm8tZ29vZC5qcyBbIFBhc3MgU2tpcCBUaW1lb3V0IF0KKyAgICAgIFsgTGludXggRGVidWcg
XSBMYXlvdXRUZXN0cy9mYXN0L2pzL25vLWdvb2QuanMgWyBQYXNzIFNraXAgVGltZW91dCBdCisg
ICAgICBbIExpbnV4IFdpbiBdIExheW91dFRlc3RzL2Zhc3QvanMvbm8tZ29vZC5qcyBbIFBhc3Mg
U2tpcCBUaW1lb3V0IF0KIAotICAgIFNLSVA6IERvZXNuJ3QgcnVuIHRoZSB0ZXN0LgotICAgIFNM
T1c6IFRoZSB0ZXN0IHRha2VzIGEgbG9uZyB0aW1lIHRvIHJ1biwgYnV0IGRvZXMgbm90IHRpbWVv
dXQgaW5kZWZpbml0ZWx5LgotICAgIFdPTlRGSVg6IEZvciB0ZXN0cyB0aGF0IHdlIG5ldmVyIGlu
dGVuZCB0byBwYXNzIG9uIGEgZ2l2ZW4gcGxhdGZvcm0uCisgICAgU2tpcDogRG9lc24ndCBydW4g
dGhlIHRlc3QuCisgICAgU2xvdzogVGhlIHRlc3QgdGFrZXMgYSBsb25nIHRpbWUgdG8gcnVuLCBi
dXQgZG9lcyBub3QgdGltZW91dCBpbmRlZmluaXRlbHkuCisgICAgV29udEZpeDogRm9yIHRlc3Rz
IHRoYXQgd2UgbmV2ZXIgaW50ZW5kIHRvIHBhc3Mgb24gYSBnaXZlbiBwbGF0Zm9ybSAodHJlYXRl
ZCBsaWtlIFNraXApLgogCiAgICAgTm90ZXM6CiAgICAgICAtQSB0ZXN0IGNhbm5vdCBiZSBib3Ro
IFNMT1cgYW5kIFRJTUVPVVQKQEAgLTc1Myw2ICs3ODgsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRp
b25zKG9iamVjdCk6CiAgICAgICAtQ1JBU0ggdGVzdHMgY2Fubm90IGJlIFdPTlRGSVgKICAgICAi
IiIKIAorICAgICMgRklYTUU6IFVwZGF0ZSB0byBuZXcgc3ludGF4IG9uY2UgdGhlIG9sZCBmb3Jt
YXQgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KICAgICBFWFBFQ1RBVElPTlMgPSB7J3Bhc3MnOiBQ
QVNTLAogICAgICAgICAgICAgICAgICAgICAnZmFpbCc6IEZBSUwsCiAgICAgICAgICAgICAgICAg
ICAgICdpbWFnZSc6IElNQUdFLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3Vu
aXR0ZXN0LnB5CmluZGV4IGJmYmIyZDc3NDBkOTI1NzE0NGUzOGVlODY0NTg2YWZhMjA2ZTgzN2Yu
Ljg4MjdjZDc2ZDI5OTNiNDM3NzE4NjY3Y2FjYWU2ZmJjYjFhNGYzOGIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9u
c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9t
b2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTQzLDE0ICs0Myw2IEBAIGV4
Y2VwdCBJbXBvcnRFcnJvcjoKICAgICBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkub3JkZXJlZF9k
aWN0IGltcG9ydCBPcmRlcmVkRGljdAogCiAKLWNsYXNzIE1vY2tCdWdNYW5hZ2VyKG9iamVjdCk6
Ci0gICAgZGVmIGNsb3NlX2J1ZyhzZWxmLCBidWdfaWQsIHJlZmVyZW5jZV9idWdfaWQ9Tm9uZSk6
Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBjcmVhdGVfYnVnKHNlbGYpOgotICAgICAgICByZXR1
cm4gIkJVR19ORVdMWV9DUkVBVEVEIgotCi0KIGNsYXNzIEJhc2UodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICMgTm90ZSB0aGF0IGFsbCBvZiB0aGVzZSB0ZXN0cyBhcmUgd3JpdHRlbiBhc3N1bWlu
ZyB0aGUgY29uZmlndXJhdGlvbgogICAgICMgYmVpbmcgdGVzdGVkIGlzIFdpbmRvd3MgWFAsIFJl
bGVhc2UgYnVpbGQuCkBAIC0xODksMTYgKzE4MSwxNCBAQCBCVUdYIFdPTlRGSVggOiBmYWlsdXJl
cy9leHBlY3RlZCA9IElNQUdFCiAgICAgICAgICAgICBmaWxlc3lzdGVtID0gc2VsZi5fcG9ydC5o
b3N0LmZpbGVzeXN0ZW0KICAgICAgICAgICAgIGZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKGZp
bGVzeXN0ZW0uam9pbihzZWxmLl9wb3J0LmxheW91dF90ZXN0c19kaXIoKSwgJ2Rpc2FibGVkLXRl
c3QuaHRtbC1kaXNhYmxlZCcpLCAnY29udGVudCcpCiAgICAgICAgICAgICBzZWxmLmdldF90ZXN0
KCdkaXNhYmxlZC10ZXN0Lmh0bWwtZGlzYWJsZWQnKSwKLSAgICAgICAgICAgIHNlbGYucGFyc2Vf
ZXhwKCJGT08gOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBGQUlMXG4iCi0gICAgICAg
ICAgICAgICAgIlNLSVAgOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sXG4iCi0gICAgICAg
ICAgICAgICAgIkJVR1JOSVdBIDogbm9uLWV4aXN0ZW50LXRlc3QuaHRtbCA9IEZBSUxcbiIKLSAg
ICAgICAgICAgICAgICAiQlVHUk5JV0EgOiBkaXNhYmxlZC10ZXN0Lmh0bWwtZGlzYWJsZWQgPSBJ
TUFHRSIsIGlzX2xpbnRfbW9kZT1UcnVlKQorICAgICAgICAgICAgc2VsZi5wYXJzZV9leHAoIlsg
Rk9PIF0gZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sIFsgRmFpbHVyZSBdXG4iCisgICAgICAg
ICAgICAgICAgIkJ1Zyhybml3YSkgbm9uLWV4aXN0ZW50LXRlc3QuaHRtbCBbIEZhaWx1cmUgXVxu
IgorICAgICAgICAgICAgICAgICJCdWcocm5pd2EpIGRpc2FibGVkLXRlc3QuaHRtbC1kaXNhYmxl
ZCBbIEltYWdlT25seUZhaWx1cmUgXSIsIGlzX2xpbnRfbW9kZT1UcnVlKQogICAgICAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShUcnVlLCAiUGFyc2VFcnJvciB3YXNuJ3QgcmFpc2VkIikKICAgICAg
ICAgZXhjZXB0IFBhcnNlRXJyb3IsIGU6CiAgICAgICAgICAgICB3YXJuaW5ncyA9ICgiZXhwZWN0
YXRpb25zOjEgVGVzdCBsYWNrcyBCVUcgbW9kaWZpZXIuIGZhaWx1cmVzL2V4cGVjdGVkL3RleHQu
aHRtbFxuIgogICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGF0aW9uczoxIFVucmVjb2du
aXplZCBtb2RpZmllciAnZm9vJyBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWxcbiIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJleHBlY3RhdGlvbnM6MiBNaXNzaW5nIGV4cGVjdGF0aW9ucyBT
S0lQIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbFxuIgotICAgICAgICAgICAgICAgICAg
ICAgICAgImV4cGVjdGF0aW9uczozIFBhdGggZG9lcyBub3QgZXhpc3QuIG5vbi1leGlzdGVudC10
ZXN0Lmh0bWwiKQorICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGF0aW9uczoyIFBhdGgg
ZG9lcyBub3QgZXhpc3QuIG5vbi1leGlzdGVudC10ZXN0Lmh0bWwiKQogICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdHIoZSksIHdhcm5pbmdzKQogCiAgICAgICAgIHRyeToKQEAgLTMxNCw2
ICszMDQsOCBAQCBjbGFzcyBTa2lwcGVkVGVzdHMoQmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1RoZSBmb2xsb3dpbmcgdGVzdCBmb28vYmFyL2Jhei5odG1sIGZyb20gdGhlIFNraXBw
ZWQgbGlzdCBkb2VzblwndCBleGlzdFxuJywgbG9ncykKIAogCisjIEZJWE1FOiByZW1vdmUgdGhl
c2UgdGVzdHMgd2hlbiB3ZSBzdG9wIHN1cHBvcnRpbmcgdGhlIG9sZCBzeW50YXguCisKIGNsYXNz
IEV4cGVjdGF0aW9uU3ludGF4VGVzdHMoQmFzZSk6CiAgICAgZGVmIHRlc3RfbWlzc2luZ19leHBl
Y3RhdGlvbihzZWxmKToKICAgICAgICAgIyBUaGlzIGlzIG1pc3NpbmcgdGhlIGV4cGVjdGF0aW9u
LgpAQCAtNDAyLDYgKzM5NCw2NyBAQCBjbGFzcyBOZXdFeHBlY3RhdGlvblN5bnRheFRlc3RzKHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdmb28uaHRtbCBjcmJ1
Zy5jb20vMTIzNDUgXScsIHdhcm5pbmdzPVsnImNyYnVnLmNvbS8xMjM0NSIgaXMgbm90IGF0IHRo
ZSBzdGFydCBvZiB0aGUgbGluZS4nXSkKIAogCitjbGFzcyBOZXdFeHBlY3RhdGlvblN5bnRheFRl
c3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgYXNzZXJ0X2V4cChzZWxmLCBsaW5lLCBi
dWdzPU5vbmUsIG1vZGlmaWVycz1Ob25lLCBleHBlY3RhdGlvbnM9Tm9uZSwgd2FybmluZ3M9Tm9u
ZSwgY29tbWVudD1Ob25lLCBuYW1lPSdmb28uaHRtbCcpOgorICAgICAgICBidWdzID0gYnVncyBv
ciBbXQorICAgICAgICBtb2RpZmllcnMgPSBtb2RpZmllcnMgb3IgW10KKyAgICAgICAgZXhwZWN0
YXRpb25zID0gZXhwZWN0YXRpb25zIG9yIFtdCisgICAgICAgIHdhcm5pbmdzID0gd2FybmluZ3Mg
b3IgW10KKyAgICAgICAgZmlsZW5hbWUgPSAnVGVzdEV4cGVjdGF0aW9ucycKKyAgICAgICAgbGlu
ZV9udW1iZXIgPSAxCisgICAgICAgIGV4cGVjdGF0aW9uX2xpbmUgPSBUZXN0RXhwZWN0YXRpb25Q
YXJzZXIuX3Rva2VuaXplX2xpbmVfdXNpbmdfbmV3X2Zvcm1hdChmaWxlbmFtZSwgbGluZSwgbGlu
ZV9udW1iZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGF0aW9uX2xpbmUud2Fy
bmluZ3MsIHdhcm5pbmdzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RhdGlvbl9s
aW5lLm5hbWUsIG5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGF0aW9uX2xp
bmUuZmlsZW5hbWUsIGZpbGVuYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3Rh
dGlvbl9saW5lLmxpbmVfbnVtYmVyLCBsaW5lX251bWJlcikKKyAgICAgICAgaWYgbm90IHdhcm5p
bmdzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0YXRpb25fbGluZS5tb2Rp
ZmllcnMsIG1vZGlmaWVycykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGF0
aW9uX2xpbmUuZXhwZWN0YXRpb25zLCBleHBlY3RhdGlvbnMpCisKKyAgICBkZWYgdGVzdF9iYXJl
X25hbWUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnZm9vLmh0bWwnLCBtb2RpZmll
cnM9WydTS0lQJ10sIGV4cGVjdGF0aW9ucz1bJ1BBU1MnXSkKKworICAgIGRlZiB0ZXN0X2JhcmVf
bmFtZV9hbmRfYnVncyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCd3ZWJraXQub3Jn
L2IvMTIzNDUgZm9vLmh0bWwnLCBtb2RpZmllcnM9WydCVUdXSzEyMzQ1JywgJ1NLSVAnXSwgZXhw
ZWN0YXRpb25zPVsnUEFTUyddKQorICAgICAgICBzZWxmLmFzc2VydF9leHAoJ2NyYnVnLmNvbS8x
MjM0NSBmb28uaHRtbCcsIG1vZGlmaWVycz1bJ0JVR0NSMTIzNDUnLCAnU0tJUCddLCBleHBlY3Rh
dGlvbnM9WydQQVNTJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnQnVnKGRwcmFua2UpIGZv
by5odG1sJywgbW9kaWZpZXJzPVsnQlVHRFBSQU5LRScsICdTS0lQJ10sIGV4cGVjdGF0aW9ucz1b
J1BBU1MnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdjcmJ1Zy5jb20vMTIzNDUgY3JidWcu
Y29tLzM0NTY3IGZvby5odG1sJywgbW9kaWZpZXJzPVsnQlVHQ1IxMjM0NScsICdCVUdDUjM0NTY3
JywgJ1NLSVAnXSwgZXhwZWN0YXRpb25zPVsnUEFTUyddKQorCisgICAgZGVmIHRlc3RfY29tbWVu
dHMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgiIyBjb21tZW50IiwgbmFtZT1Ob25l
LCBjb21tZW50PSIjIGNvbW1lbnQiKQorICAgICAgICBzZWxmLmFzc2VydF9leHAoImZvby5odG1s
ICMgY29tbWVudCIsIGNvbW1lbnQ9IiMgY29tbWVudCIsIGV4cGVjdGF0aW9ucz1bJ1BBU1MnXSwg
bW9kaWZpZXJzPVsnU0tJUCddKQorCisgICAgZGVmIHRlc3RfY29uZmlnX21vZGlmaWVycyhzZWxm
KToKKyAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdbIE1hYyBdIGZvby5odG1sJywgbW9kaWZpZXJz
PVsnTUFDJywgJ1NLSVAnXSwgZXhwZWN0YXRpb25zPVsnUEFTUyddKQorICAgICAgICBzZWxmLmFz
c2VydF9leHAoJ1sgTWFjIFZpc3RhIF0gZm9vLmh0bWwnLCBtb2RpZmllcnM9WydNQUMnLCAnVklT
VEEnLCAnU0tJUCddLCBleHBlY3RhdGlvbnM9WydQQVNTJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0
X2V4cCgnWyBNYWMgXSBmb28uaHRtbCBbIEZhaWx1cmUgXSAnLCBtb2RpZmllcnM9WydNQUMnXSwg
ZXhwZWN0YXRpb25zPVsnRkFJTCddKQorCisgICAgZGVmIHRlc3RfdW5rbm93bl9jb25maWcoc2Vs
Zik6CisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnWyBGb28gXSBmb28uaHRtbCAnLCBtb2RpZmll
cnM9WydGb28nLCAnU0tJUCddLCBleHBlY3RhdGlvbnM9WydQQVNTJ10pCisKKyAgICBkZWYgdGVz
dF91bmtub3duX2V4cGVjdGF0aW9uKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9leHAoJ2Zv
by5odG1sIFsgQXVkaW8gXScsIGV4cGVjdGF0aW9ucz1bJ0F1ZGlvJ10pCisKKyAgICBkZWYgdGVz
dF9za2lwKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9leHAoJ2Zvby5odG1sIFsgU2tpcCBd
JywgbW9kaWZpZXJzPVsnU0tJUCddLCBleHBlY3RhdGlvbnM9WydQQVNTJ10pCisKKyAgICBkZWYg
dGVzdF9zbG93KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9leHAoJ2Zvby5odG1sIFsgU2xv
dyBdJywgbW9kaWZpZXJzPVsnU0xPVyddLCBleHBlY3RhdGlvbnM9WydQQVNTJ10pCisKKyAgICBk
ZWYgdGVzdF93b250Zml4KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF9leHAoJ2Zvby5odG1s
IFsgV29udEZpeCBdJywgbW9kaWZpZXJzPVsnV09OVEZJWCcsICdTS0lQJ10sIGV4cGVjdGF0aW9u
cz1bJ1BBU1MnXSkKKworICAgIGRlZiB0ZXN0X2JsYW5rX2xpbmUoc2VsZik6CisgICAgICAgIHNl
bGYuYXNzZXJ0X2V4cCgnJywgbmFtZT1Ob25lKQorCisgICAgZGVmIHRlc3Rfd2FybmluZ3Moc2Vs
Zik6CisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnWyBNYWMgXScsIHdhcm5pbmdzPVsnRGlkIG5v
dCBmaW5kIGEgdGVzdCBuYW1lLiddLCBuYW1lPU5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4
cCgnWyBbJywgd2FybmluZ3M9Wyd1bmV4cGVjdGVkICJbIiddLCBuYW1lPU5vbmUpCisgICAgICAg
IHNlbGYuYXNzZXJ0X2V4cCgnY3JidWcuY29tLzEyMzQ1IF0nLCB3YXJuaW5ncz1bJ3VuZXhwZWN0
ZWQgIl0iJ10sIG5hbWU9Tm9uZSkKKworICAgICAgICBzZWxmLmFzc2VydF9leHAoJ2Zvby5odG1s
IGNyYnVnLmNvbS8xMjM0NSBdJywgd2FybmluZ3M9WyciY3JidWcuY29tLzEyMzQ1IiBpcyBub3Qg
YXQgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lLiddKQorCisKIGNsYXNzIFNlbWFudGljVGVzdHMoQmFz
ZSk6CiAgICAgZGVmIHRlc3RfYnVnX2Zvcm1hdChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoUGFyc2VFcnJvciwgc2VsZi5wYXJzZV9leHAsICdCVUcxMjM0IDogZmFpbHVyZXMvZXhw
ZWN0ZWQvdGV4dC5odG1sID0gRkFJTCcsIGlzX2xpbnRfbW9kZT1UcnVlKQpAQCAtNDg5LDE1ICs1
NDIsMTUgQEAgY2xhc3MgUmVtb3ZlQ29uZmlndXJhdGlvbnNUZXN0KEJhc2UpOgogICAgICAgICB0
ZXN0X3BvcnQudGVzdF9pc2ZpbGUgPSBsYW1iZGEgdGVzdDogVHJ1ZQogCiAgICAgICAgIHRlc3Rf
Y29uZmlnID0gdGVzdF9wb3J0LnRlc3RfY29uZmlndXJhdGlvbigpCi0gICAgICAgIHRlc3RfcG9y
dC5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYTogeyJleHBlY3RhdGlvbnMiOiAiIiJCVUdYIExJ
TlVYIFdJTiBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQvZm9vLmh0bWwgPSBGQUlMCi1CVUdZ
IFdJTiBNQUMgREVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9mb28uaHRtbCA9IENSQVNICisgICAg
ICAgIHRlc3RfcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYTogeyJleHBlY3RhdGlvbnMi
OiAiIiJCdWcoeCkgWyBMaW51eCBXaW4gUmVsZWFzZSBdIGZhaWx1cmVzL2V4cGVjdGVkL2Zvby5o
dG1sIFsgRmFpbHVyZSBdCitCdWcoeSkgWyBXaW4gTWFjIERlYnVnIF0gZmFpbHVyZXMvZXhwZWN0
ZWQvZm9vLmh0bWwgWyBDcmFzaCBdCiAiIiJ9CiAgICAgICAgIGV4cGVjdGF0aW9ucyA9IFRlc3RF
eHBlY3RhdGlvbnModGVzdF9wb3J0LCBzZWxmLmdldF9iYXNpY190ZXN0cygpKQogCiAgICAgICAg
IGFjdHVhbF9leHBlY3RhdGlvbnMgPSBleHBlY3RhdGlvbnMucmVtb3ZlX2NvbmZpZ3VyYXRpb25f
ZnJvbV90ZXN0KCdmYWlsdXJlcy9leHBlY3RlZC9mb28uaHRtbCcsIHRlc3RfY29uZmlnKQogCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiIiQlVHWCBMSU5VWCBWSVNUQSBXSU43IFJFTEVBU0Ug
OiBmYWlsdXJlcy9leHBlY3RlZC9mb28uaHRtbCA9IEZBSUwKLUJVR1kgV0lOIE1BQyBERUJVRyA6
IGZhaWx1cmVzL2V4cGVjdGVkL2Zvby5odG1sID0gQ1JBU0gKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgiIiJCdWcoeCkgWyBMaW51eCBWaXN0YSBXaW43IFJlbGVhc2UgXSBmYWlsdXJlcy9leHBl
Y3RlZC9mb28uaHRtbCBbIEZhaWx1cmUgXQorQnVnKHkpIFsgV2luIE1hYyBEZWJ1ZyBdIGZhaWx1
cmVzL2V4cGVjdGVkL2Zvby5odG1sIFsgQ3Jhc2ggXQogIiIiLCBhY3R1YWxfZXhwZWN0YXRpb25z
KQogCiAgICAgZGVmIHRlc3RfcmVtb3ZlX2xpbmUoc2VsZik6CkBAIC01MDcsOCArNTYwLDggQEAg
QlVHWSBXSU4gTUFDIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQvZm9vLmh0bWwgPSBDUkFTSAog
ICAgICAgICB0ZXN0X3BvcnQudGVzdF9pc2ZpbGUgPSBsYW1iZGEgdGVzdDogVHJ1ZQogCiAgICAg
ICAgIHRlc3RfY29uZmlnID0gdGVzdF9wb3J0LnRlc3RfY29uZmlndXJhdGlvbigpCi0gICAgICAg
IHRlc3RfcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYTogeydleHBlY3RhdGlvbnMnOiAi
IiJCVUdYIFdJTiBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQvZm9vLmh0bWwgPSBGQUlMCi1C
VUdZIFdJTiBERUJVRyA6IGZhaWx1cmVzL2V4cGVjdGVkL2Zvby5odG1sID0gQ1JBU0gKKyAgICAg
ICAgdGVzdF9wb3J0LmV4cGVjdGF0aW9uc19kaWN0ID0gbGFtYmRhOiB7J2V4cGVjdGF0aW9ucyc6
ICIiIkJ1Zyh4KSBbIFdpbiBSZWxlYXNlIF0gZmFpbHVyZXMvZXhwZWN0ZWQvZm9vLmh0bWwgWyBG
YWlsdXJlIF0KK0J1Zyh5KSBbIFdpbiBEZWJ1ZyBdIGZhaWx1cmVzL2V4cGVjdGVkL2Zvby5odG1s
IFsgQ3Jhc2ggXQogIiIifQogICAgICAgICBleHBlY3RhdGlvbnMgPSBUZXN0RXhwZWN0YXRpb25z
KHRlc3RfcG9ydCkKIApAQCAtNTE2LDcgKzU2OSw3IEBAIEJVR1kgV0lOIERFQlVHIDogZmFpbHVy
ZXMvZXhwZWN0ZWQvZm9vLmh0bWwgPSBDUkFTSAogICAgICAgICBhY3R1YWxfZXhwZWN0YXRpb25z
ID0gZXhwZWN0YXRpb25zLnJlbW92ZV9jb25maWd1cmF0aW9uX2Zyb21fdGVzdCgnZmFpbHVyZXMv
ZXhwZWN0ZWQvZm9vLmh0bWwnLCBob3N0LnBvcnRfZmFjdG9yeS5nZXQoJ3Rlc3Qtd2luLXZpc3Rh
JywgTm9uZSkudGVzdF9jb25maWd1cmF0aW9uKCkpCiAgICAgICAgIGFjdHVhbF9leHBlY3RhdGlv
bnMgPSBleHBlY3RhdGlvbnMucmVtb3ZlX2NvbmZpZ3VyYXRpb25fZnJvbV90ZXN0KCdmYWlsdXJl
cy9leHBlY3RlZC9mb28uaHRtbCcsIGhvc3QucG9ydF9mYWN0b3J5LmdldCgndGVzdC13aW4td2lu
NycsIE5vbmUpLnRlc3RfY29uZmlndXJhdGlvbigpKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoIiIiQlVHWSBXSU4gREVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9mb28uaHRtbCA9IENSQVNI
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiIiQnVnKHkpIFsgV2luIERlYnVnIF0gZmFpbHVy
ZXMvZXhwZWN0ZWQvZm9vLmh0bWwgWyBDcmFzaCBdCiAiIiIsIGFjdHVhbF9leHBlY3RhdGlvbnMp
CiAKIApAQCAtNTMwLDE0ICs1ODMsMTQgQEAgY2xhc3MgUmViYXNlbGluaW5nVGVzdChCYXNlKToK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9vdmVycmlkZXMsIGFjdHVhbF9vdmVy
cmlkZXMpCiAKICAgICBkZWYgdGVzdF9yZW1vdmUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0
UmVtb3ZlKCdCVUdYIFJFQkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBG
QUlMXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdZIDogZmFpbHVyZXMvZXhwZWN0
ZWQvaW1hZ2UuaHRtbCA9IElNQUdFXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdCVUda
IFJFQkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sID0gQ1JBU0hcbicsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdYTyA6IGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdl
Lmh0bWwgPSBDUkFTSFxuJywKKyAgICAgICAgc2VsZi5hc3NlcnRSZW1vdmUoJ0J1Zyh4KSBmYWls
dXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgWyBGYWlsdXJlIFJlYmFzZWxpbmUgXVxuJworICAgICAg
ICAgICAgICAgICAgICAgICAgICAnQnVnKHkpIGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIFJlYmFzZWxpbmUgXVxuJworICAgICAgICAgICAgICAgICAgICAg
ICAgICAnQnVnKHopIGZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwgWyBDcmFzaCBdXG4nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAnQnVnKHgwKSBmYWlsdXJlcy9leHBlY3RlZC9pbWFn
ZS5odG1sIFsgQ3Jhc2ggXVxuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgWydmYWlsdXJl
cy9leHBlY3RlZC90ZXh0Lmh0bWwnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JVR1kg
OiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sID0gSU1BR0VcbicKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ0JVR1ogUkVCQVNFTElORSA6IGZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0
bWwgPSBDUkFTSFxuJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JVR1hPIDogZmFpbHVy
ZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IENSQVNIXG4nKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAnQnVnKHkpIGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIFJlYmFzZWxpbmUgXVxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAnQnVnKHopIGZh
aWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwgWyBDcmFzaCBdXG4nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAnQnVnKHgwKSBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sIFsgQ3Jhc2gg
XVxuJykKIAogCiAgICAgZGVmIHRlc3Rfbm9fZ2V0X3JlYmFzZWxpbmluZ19mYWlsdXJlcyhzZWxm
KToKQEAgLTU0NSw2ICs1OTgsOCBAQCBjbGFzcyBSZWJhc2VsaW5pbmdUZXN0KEJhc2UpOgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9leHAuZ2V0X3JlYmFzZWxpbmluZ19mYWls
dXJlcygpKSwgMCkKIAogCisjIEZJWE1FOiByZW1vdmUgbW9zdCBvZiB0aGVzZSB0ZXN0cyB3aGVu
IHdlIG5vIGxvbmdlciBzdXBwb3J0IHRoZSBvbGQgc3ludGF4LgorCiBjbGFzcyBUZXN0RXhwZWN0
YXRpb25QYXJzZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIF90b2tlbml6ZShz
ZWxmLCBsaW5lKToKICAgICAgICAgcmV0dXJuIFRlc3RFeHBlY3RhdGlvblBhcnNlci5fdG9rZW5p
emVfbGluZSgncGF0aCcsIGxpbmUsIDApCkBAIC01NTQsMTMgKzYwOSw5IEBAIGNsYXNzIFRlc3RF
eHBlY3RhdGlvblBhcnNlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChleHBlY3RhdGlvbi5jb21tZW50LCBOb25lKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihleHBlY3RhdGlvbi53YXJuaW5ncyksIDApCiAKLSAgICBkZWYgdGVzdF90b2tl
bml6ZV9taXNzaW5nX2NvbG9uKHNlbGYpOgotICAgICAgICBleHBlY3RhdGlvbiA9IHNlbGYuX3Rv
a2VuaXplKCdRdXguJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZXhwZWN0YXRpb24u
d2FybmluZ3MpLCAnWyJNaXNzaW5nIGEgXCc6XCciXScpCi0KICAgICBkZWYgdGVzdF90b2tlbml6
ZV9leHRyYV9jb2xvbihzZWxmKToKICAgICAgICAgZXhwZWN0YXRpb24gPSBzZWxmLl90b2tlbml6
ZSgnRk9PIDogOiBiYXInKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihleHBlY3RhdGlv
bi53YXJuaW5ncyksICdbIkV4dHJhbmVvdXMgXCc6XCciXScpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZXhwZWN0YXRpb24ud2FybmluZ3MsIFsnIjoiIGlzIG5vdCBsZWdhbCBpbiB0aGUgbmV3
IFRlc3RFeHBlY3RhdGlvbnMgc3ludGF4LiddKQogCiAgICAgZGVmIHRlc3RfdG9rZW5pemVfZW1w
dHlfY29tbWVudChzZWxmKToKICAgICAgICAgZXhwZWN0YXRpb24gPSBzZWxmLl90b2tlbml6ZSgn
Ly8nKQpAQCAtNTc0LDExICs2MjUsMTEgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uUGFyc2VyVGVz
dHModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfdG9rZW5pemVfbWlzc2luZ19l
cXVhbChzZWxmKToKICAgICAgICAgZXhwZWN0YXRpb24gPSBzZWxmLl90b2tlbml6ZSgnRk9PIDog
YmFyJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZXhwZWN0YXRpb24ud2FybmluZ3Mp
LCAiWydNaXNzaW5nIGV4cGVjdGF0aW9uc1wnXSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZXhwZWN0YXRpb24ud2FybmluZ3MsIFsnIjoiIGlzIG5vdCBsZWdhbCBpbiB0aGUgbmV3IFRlc3RF
eHBlY3RhdGlvbnMgc3ludGF4LiddKQogCiAgICAgZGVmIHRlc3RfdG9rZW5pemVfZXh0cmFfZXF1
YWwoc2VsZik6CiAgICAgICAgIGV4cGVjdGF0aW9uID0gc2VsZi5fdG9rZW5pemUoJ0ZPTyA6IGJh
ciA9IEJBWiA9IFF1eC4nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihleHBlY3RhdGlv
bi53YXJuaW5ncyksICdbIkV4dHJhbmVvdXMgXCc9XCciXScpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZXhwZWN0YXRpb24ud2FybmluZ3MsIFsnIjoiIGlzIG5vdCBsZWdhbCBpbiB0aGUgbmV3
IFRlc3RFeHBlY3RhdGlvbnMgc3ludGF4LiddKQogCiAgICAgZGVmIHRlc3RfdG9rZW5pemVfdmFs
aWQoc2VsZik6CiAgICAgICAgIGV4cGVjdGF0aW9uID0gc2VsZi5fdG9rZW5pemUoJ0ZPTyA6IGJh
ciA9IEJBWicpCkBAIC02MzgsMTggKzY4OSwxOSBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25TZXJp
YWxpemF0aW9uVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBleHBlY3RhdGlvbiA9
IFRlc3RFeHBlY3RhdGlvbkxpbmUoKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0
YXRpb24udG9fc3RyaW5nKHNlbGYuX2NvbnZlcnRlciksICcnKQotICAgICAgICBleHBlY3RhdGlv
bi5jb21tZW50ID0gJ1F1eC4nCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb24u
dG9fc3RyaW5nKHNlbGYuX2NvbnZlcnRlciksICcvL1F1eC4nKQorICAgICAgICBleHBlY3RhdGlv
bi5jb21tZW50ID0gJyBRdXguJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGF0aW9u
LnRvX3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnIyBRdXguJykKICAgICAgICAgZXhwZWN0YXRp
b24ubmFtZSA9ICdiYXInCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb24udG9f
c3RyaW5nKHNlbGYuX2NvbnZlcnRlciksICcgOiBiYXIgPSAgLy9RdXguJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChleHBlY3RhdGlvbi50b19zdHJpbmcoc2VsZi5fY29udmVydGVyKSwgJ2Jh
ciAjIFF1eC4nKQogICAgICAgICBleHBlY3RhdGlvbi5tb2RpZmllcnMgPSBbJ2ZvbyddCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb24udG9fc3RyaW5nKHNlbGYuX2NvbnZlcnRl
ciksICdGT08gOiBiYXIgPSAgLy9RdXguJykKKyAgICAgICAgIyBGSVhNRTogY2FzZSBzaG91bGQg
YmUgcHJlc2VydmVkIGhlcmUgYnV0IHdlIGNhbid0IHVudGlsIHdlIGRyb3AgdGhlIG9sZCBzeW50
YXguCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb24udG9fc3RyaW5nKHNlbGYu
X2NvbnZlcnRlciksICdbIEZPTyBdIGJhciAjIFF1eC4nKQogICAgICAgICBleHBlY3RhdGlvbi5l
eHBlY3RhdGlvbnMgPSBbJ2JBeiddCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRp
b24udG9fc3RyaW5nKHNlbGYuX2NvbnZlcnRlciksICdGT08gOiBiYXIgPSBCQVogLy9RdXguJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RhdGlvbi50b19zdHJpbmcoc2VsZi5fY29u
dmVydGVyKSwgJ1sgRk9PIF0gYmFyIFsgQkFaIF0gIyBRdXguJykKICAgICAgICAgZXhwZWN0YXRp
b24uZXhwZWN0YXRpb25zID0gWydiQXoxJywgJ2JhWjInXQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGV4cGVjdGF0aW9uLnRvX3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnRk9PIDogYmFyID0g
QkFaMSBCQVoyIC8vUXV4LicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb24u
dG9fc3RyaW5nKHNlbGYuX2NvbnZlcnRlciksICdbIEZPTyBdIGJhciBbIEJBWjEgQkFaMiBdICMg
UXV4LicpCiAgICAgICAgIGV4cGVjdGF0aW9uLm1vZGlmaWVycyA9IFsnZm9vMScsICdmb08yJ10K
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RhdGlvbi50b19zdHJpbmcoc2VsZi5fY29u
dmVydGVyKSwgJ0ZPTzEgRk9PMiA6IGJhciA9IEJBWjEgQkFaMiAvL1F1eC4nKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGV4cGVjdGF0aW9uLnRvX3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAn
WyBGT08xIEZPTzIgXSBiYXIgWyBCQVoxIEJBWjIgXSAjIFF1eC4nKQogICAgICAgICBleHBlY3Rh
dGlvbi53YXJuaW5ncy5hcHBlbmQoJ09oIHRoZSBob3Jyb3IuJykKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChleHBlY3RhdGlvbi50b19zdHJpbmcoc2VsZi5fY29udmVydGVyKSwgJycpCiAgICAg
ICAgIGV4cGVjdGF0aW9uLm9yaWdpbmFsX3N0cmluZyA9ICdZZXMgaXQgaXMhJwpAQCAtNjYxLDcg
KzcxMyw4IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvblNlcmlhbGl6YXRpb25UZXN0cyh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgIGV4cGVjdGF0aW9uLm5hbWUgPSAnYmFyJwogICAgICAgICBl
eHBlY3RhdGlvbi5tb2RpZmllcnMgPSBbJ2ZvbyddCiAgICAgICAgIGV4cGVjdGF0aW9uLmV4cGVj
dGF0aW9ucyA9IFsnYkF6MScsICdiYVoyJ10KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUZXN0
RXhwZWN0YXRpb25zLmxpc3RfdG9fc3RyaW5nKFtleHBlY3RhdGlvbl0pLCAnRk9PIDogYmFyID0g
QkFaMSBCQVoyIC8vUXV4LicpCisgICAgICAgICMgRklYTUU6IGNhc2Ugc2hvdWxkIGJlIHByZXNl
cnZlZCBoZXJlIGJ1dCB3ZSBjYW4ndCB1bnRpbCB3ZSBkcm9wIHRoZSBvbGQgc3ludGF4LgorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMubGlzdF90b19zdHJpbmcoW2V4
cGVjdGF0aW9uXSksICdbIEZPTyBdIGJhciBbIEJBWjEgQkFaMiBdICNRdXguJykKIAogICAgIGRl
ZiB0ZXN0X3BhcnNlZF90b19zdHJpbmcoc2VsZik6CiAgICAgICAgIGV4cGVjdGF0aW9uX2xpbmUg
PSBUZXN0RXhwZWN0YXRpb25MaW5lKCkKQEAgLTY3MCw5ICs3MjMsOSBAQCBjbGFzcyBUZXN0RXhw
ZWN0YXRpb25TZXJpYWxpemF0aW9uVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBl
eHBlY3RhdGlvbl9saW5lLnBhcnNlZF9leHBlY3RhdGlvbnMgPSBzZXQoW0lNQUdFXSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RhdGlvbl9saW5lLnRvX3N0cmluZyhzZWxmLl9jb252
ZXJ0ZXIpLCBOb25lKQogICAgICAgICBleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3Vy
YXRpb25zID0gc2V0KFtUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnKV0p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb25fbGluZS50b19zdHJpbmcoc2Vs
Zi5fY29udmVydGVyKSwgJ0JVR1ggWFAgUkVMRUFTRSA6IHRlc3QvbmFtZS9mb3IvcmVhbHouaHRt
bCA9IElNQUdFJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RhdGlvbl9saW5lLnRv
X3N0cmluZyhzZWxmLl9jb252ZXJ0ZXIpLCAnQnVnKHgpIFsgWFAgUmVsZWFzZSBdIHRlc3QvbmFt
ZS9mb3IvcmVhbHouaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXScpCiAgICAgICAgIGV4cGVjdGF0
aW9uX2xpbmUubWF0Y2hpbmdfY29uZmlndXJhdGlvbnMgPSBzZXQoW1Rlc3RDb25maWd1cmF0aW9u
KCd4cCcsICd4ODYnLCAncmVsZWFzZScpLCBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2Jywg
J2RlYnVnJyldKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGF0aW9uX2xpbmUudG9f
c3RyaW5nKHNlbGYuX2NvbnZlcnRlciksICdCVUdYIFhQIDogdGVzdC9uYW1lL2Zvci9yZWFsei5o
dG1sID0gSU1BR0UnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGF0aW9uX2xpbmUu
dG9fc3RyaW5nKHNlbGYuX2NvbnZlcnRlciksICdCdWcoeCkgWyBYUCBdIHRlc3QvbmFtZS9mb3Iv
cmVhbHouaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXScpCiAKICAgICBkZWYgdGVzdF9zZXJpYWxp
emVfcGFyc2VkX2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgZXhwZWN0YXRpb25fbGluZSA9
IFRlc3RFeHBlY3RhdGlvbkxpbmUoKQpAQCAtNzAzLDQwICs3NTYsNDAgQEAgY2xhc3MgVGVzdEV4
cGVjdGF0aW9uU2VyaWFsaXphdGlvblRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChleHBlY3RhdGlvbl9saW5lLl9zZXJpYWxpemVfcGFyc2VkX21vZGlm
aWVycyhzZWxmLl9jb252ZXJ0ZXIsIFsnd2luJ10pLCAnZ2FyZGVuLW8tbWF0aWMgaXMgdG90YWwg
d2luJykKIAogICAgIGRlZiB0ZXN0X2Zvcm1hdF9saW5lKHNlbGYpOgotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbkxpbmUuX2Zvcm1hdF9saW5lKCdtb2RpZmllcnMnLCAn
bmFtZScsICdleHBlY3RhdGlvbnMnLCAnY29tbWVudCcpLCAnTU9ESUZJRVJTIDogbmFtZSA9IEVY
UEVDVEFUSU9OUyAvL2NvbW1lbnQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBl
Y3RhdGlvbkxpbmUuX2Zvcm1hdF9saW5lKCdtb2RpZmllcnMnLCAnbmFtZScsICdleHBlY3RhdGlv
bnMnLCBOb25lKSwgJ01PRElGSUVSUyA6IG5hbWUgPSBFWFBFQ1RBVElPTlMnKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbkxpbmUuX2Zvcm1hdF9saW5lKFsnTU9ESUZJ
RVJTJ10sICduYW1lJywgWydFWFBFQ1RBVElPTlMnXSwgJ2NvbW1lbnQnKSwgJ1sgTU9ESUZJRVJT
IF0gbmFtZSBbIEVYUEVDVEFUSU9OUyBdICNjb21tZW50JykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChUZXN0RXhwZWN0YXRpb25MaW5lLl9mb3JtYXRfbGluZShbJ01PRElGSUVSUyddLCAnbmFt
ZScsIFsnRVhQRUNUQVRJT05TJ10sIE5vbmUpLCAnWyBNT0RJRklFUlMgXSBuYW1lIFsgRVhQRUNU
QVRJT05TIF0nKQogCiAgICAgZGVmIHRlc3Rfc3RyaW5nX3JvdW5kdHJpcChzZWxmKToKICAgICAg
ICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnJykKICAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRf
dHJpcCgnRk9PJykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnOicpCi0gICAgICAg
IHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ0ZPTyA6JykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91
bmRfdHJpcCgnRk9PIDogYmFyJykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnICBG
T08gOicpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJyAgICBGT08gOiBiYXInKQot
ICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdGT08gOiBiYXIgPSBCQVonKQotICAgICAg
ICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdGT08gOiBiYXIgPSBCQVogLy9RdXguJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnRk9PIDogYmFyID0gQkFaIC8vIFF1eC4nKQotICAg
ICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdGT08gOiBiYXIgPSBCQVogLy8gUXV4LiAgICAg
JykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnRk9PIDogYmFyID0gQkFaIC8vICAg
ICAgICBRdXguICAgICAnKQotICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdGT08gOiA6
IGJhciA9IEJBWicpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ0ZPTyA6IDogYmFy
ID0gQkFaJykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnRk9PIDogOiBiYXIgPT09
PSBCQVonKQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdbJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRfcm91bmRfdHJpcCgnRk9PIFsnKQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90
cmlwKCdGT08gXSBiYXInKQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCcgIEZPTyBb
JykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnICAgIFsgRk9PIF0gJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnWyBGT08gXSBiYXIgWyBCQVogXScpCisgICAgICAg
IHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ1sgRk9PIF0gYmFyIFsgQkFaIF0gIyBRdXguJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnWyBGT08gXSBiYXIgWyBCQVogXSAjIFF1eC4n
KQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCdbIEZPTyBdIGJhciBbIEJBWiBdICMg
UXV4LiAgICAgJykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnWyBGT08gXSBiYXIg
WyBCQVogXSAjICAgICAgICBRdXguICAgICAnKQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90
cmlwKCdbIEZPTyBdIF0gXSBiYXIgQkFaJykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJp
cCgnWyBGT08gXSBdIF0gYmFyIFsgQkFaIF0nKQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90
cmlwKCdGT08gXSBdIGJhciA9PT09IEJBWicpCiAgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3Ry
aXAoJz0nKQotICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCcvLycpCi0gICAgICAgIHNl
bGYuYXNzZXJ0X3JvdW5kX3RyaXAoJy8vICcpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3Ry
aXAoJy8vIEZvbycpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJy8vIEZvbycpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJy8vIEZvbyA6JykKLSAgICAgICAgc2VsZi5h
c3NlcnRfcm91bmRfdHJpcCgnLy8gRm9vIDogPScpCisgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5k
X3RyaXAoJyMnKQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCcjICcpCisgICAgICAg
IHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJyMgRm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91
bmRfdHJpcCgnIyBGb28nKQorICAgICAgICBzZWxmLmFzc2VydF9yb3VuZF90cmlwKCcjIEZvbyA6
JykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnIyBGb28gOiA9JykKIAogICAgIGRl
ZiB0ZXN0X2xpc3Rfcm91bmR0cmlwKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9saXN0X3Jv
dW5kX3RyaXAoJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpc3Rfcm91bmRfdHJpcCgnXG4nKQog
ICAgICAgICBzZWxmLmFzc2VydF9saXN0X3JvdW5kX3RyaXAoJ1xuXG4nKQogICAgICAgICBzZWxm
LmFzc2VydF9saXN0X3JvdW5kX3RyaXAoJ2JhcicpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpc3Rf
cm91bmRfdHJpcCgnYmFyXG4vL1F1eC4nKQotICAgICAgICBzZWxmLmFzc2VydF9saXN0X3JvdW5k
X3RyaXAoJ2JhclxuLy9RdXguXG4nKQorICAgICAgICBzZWxmLmFzc2VydF9saXN0X3JvdW5kX3Ry
aXAoJ2JhclxuIyBRdXguJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGlzdF9yb3VuZF90cmlwKCdi
YXJcbiMgUXV4LlxuJykKIAogICAgIGRlZiB0ZXN0X3JlY29uc3RpdHV0ZV9vbmx5X3RoZXNlKHNl
bGYpOgogICAgICAgICBsaW5lcyA9IFtdCkBAIC03NTYsMTggKzgwOSwxOCBAQCBjbGFzcyBUZXN0
RXhwZWN0YXRpb25TZXJpYWxpemF0aW9uVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBhZGRfbGluZShzZXQoW1Rlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScp
XSksIFRydWUpCiAgICAgICAgIGFkZF9saW5lKHNldChbVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywg
J3g4NicsICdyZWxlYXNlJyksIFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAnZGVidWcn
KV0pLCBGYWxzZSkKICAgICAgICAgc2VyaWFsaXplZCA9IFRlc3RFeHBlY3RhdGlvbnMubGlzdF90
b19zdHJpbmcobGluZXMsIHNlbGYuX2NvbnZlcnRlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoc2VyaWFsaXplZCwgIkJVR1ggWFAgUkVMRUFTRSA6IFlheSA9IElNQUdFXG5CVUdYIFhQIDog
WWF5ID0gSU1BR0UiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXJpYWxpemVkLCAiQnVn
KHgpIFsgWFAgUmVsZWFzZSBdIFlheSBbIEltYWdlT25seUZhaWx1cmUgXVxuQnVnKHgpIFsgWFAg
XSBZYXkgWyBJbWFnZU9ubHlGYWlsdXJlIF0iKQogICAgICAgICBzZXJpYWxpemVkID0gVGVzdEV4
cGVjdGF0aW9ucy5saXN0X3RvX3N0cmluZyhsaW5lcywgc2VsZi5fY29udmVydGVyLCByZWNvbnN0
aXR1dGVfb25seV90aGVzZT1yZWNvbnN0aXR1dGVfb25seV90aGVzZSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoc2VyaWFsaXplZCwgIkJVR1ggWFAgUkVMRUFTRSA6IFlheSA9IElNQUdFXG5O
YXkiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXJpYWxpemVkLCAiQnVnKHgpIFsgWFAg
UmVsZWFzZSBdIFlheSBbIEltYWdlT25seUZhaWx1cmUgXVxuTmF5IikKIAogICAgIGRlZiB0ZXN0
X3N0cmluZ193aGl0ZXNwYWNlX3N0cmlwcGluZyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRf
cm91bmRfdHJpcCgnXG4nLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnICBG
T08gOiBiYXIgPSBCQVonLCAnRk9PIDogYmFyID0gQkFaJykKLSAgICAgICAgc2VsZi5hc3NlcnRf
cm91bmRfdHJpcCgnRk9PICAgIDogYmFyID0gQkFaJywgJ0ZPTyA6IGJhciA9IEJBWicpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ0ZPTyA6IGJhciA9IEJBWiAgICAgICAvLyBRdXgu
JywgJ0ZPTyA6IGJhciA9IEJBWiAvLyBRdXguJykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRf
dHJpcCgnRk9PIDogYmFyID0gICAgICAgIEJBWiAvLyBRdXguJywgJ0ZPTyA6IGJhciA9IEJBWiAv
LyBRdXguJykKLSAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnRk9PIDogICAgICAgYmFy
ID0gICAgQkFaIC8vIFF1eC4nLCAnRk9PIDogYmFyID0gQkFaIC8vIFF1eC4nKQotICAgICAgICBz
ZWxmLmFzc2VydF9yb3VuZF90cmlwKCdGT08gOiAgICAgICBiYXIgICAgID0gICAgQkFaIC8vIFF1
eC4nLCAnRk9PIDogYmFyID0gQkFaIC8vIFF1eC4nKQorICAgICAgICBzZWxmLmFzc2VydF9yb3Vu
ZF90cmlwKCcgIFsgRk9PIF0gYmFyIFsgQkFaIF0nLCAnWyBGT08gXSBiYXIgWyBCQVogXScpCisg
ICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ1sgRk9PIF0gICAgYmFyIFsgQkFaIF0nLCAn
WyBGT08gXSBiYXIgWyBCQVogXScpCisgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ1sg
Rk9PIF0gYmFyIFsgQkFaIF0gICAgICAgIyBRdXguJywgJ1sgRk9PIF0gYmFyIFsgQkFaIF0gIyBR
dXguJykKKyAgICAgICAgc2VsZi5hc3NlcnRfcm91bmRfdHJpcCgnWyBGT08gXSBiYXIgWyAgICAg
ICAgQkFaIF0gICMgUXV4LicsICdbIEZPTyBdIGJhciBbIEJBWiBdICMgUXV4LicpCisgICAgICAg
IHNlbGYuYXNzZXJ0X3JvdW5kX3RyaXAoJ1sgRk9PIF0gICAgICAgYmFyIFsgICAgQkFaIF0gICMg
UXV4LicsICdbIEZPTyBdIGJhciBbIEJBWiBdICMgUXV4LicpCisgICAgICAgIHNlbGYuYXNzZXJ0
X3JvdW5kX3RyaXAoJ1sgRk9PIF0gICAgICAgYmFyICAgICBbICAgIEJBWiBdICAjIFF1eC4nLCAn
WyBGT08gXSBiYXIgWyBCQVogXSAjIFF1eC4nKQogCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5f
d2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CmluZGV4IDU3
YWNmZWVlYTc4ZjQwNzM4NmM1NjdhNzk5YmE1NmQ2ZDUxOTkxYjIuLjFhYmMzY2FkYTcwMjBmNWUz
MDU5NTJkODFhN2NmN2ZkMzQ3MGNlOWMgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50
ZWdyYXRpb250ZXN0LnB5CkBAIC0yNjAsNyArMjYwLDcgQEAgY2xhc3MgTGludFRlc3QodW5pdHRl
c3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgIG9wdGlvbnMsIHBhcnNl
ZF9hcmdzID0gcGFyc2VfYXJncyhbJy0tbGludC10ZXN0LWZpbGVzJ10pCiAgICAgICAgIGhvc3Qg
PSBNb2NrSG9zdCgpCiAgICAgICAgIHBvcnRfb2JqID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KG9w
dGlvbnMucGxhdGZvcm0sIG9wdGlvbnM9b3B0aW9ucykKLSAgICAgICAgcG9ydF9vYmouZXhwZWN0
YXRpb25zX2RpY3QgPSBsYW1iZGE6IHsnJzogJyMgc3ludGF4IGVycm9yJ30KKyAgICAgICAgcG9y
dF9vYmouZXhwZWN0YXRpb25zX2RpY3QgPSBsYW1iZGE6IHsnJzogJy0tIHN5bnRheCBlcnJvcid9
CiAgICAgICAgIHJlcywgb3V0LCBlcnIgPSBydW5fYW5kX2NhcHR1cmUocG9ydF9vYmosIG9wdGlv
bnMsIHBhcnNlZF9hcmdzKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAtMSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXNf
dW5pdHRlc3QucHkKaW5kZXggYzMwYTJjYmExNmI4NjZmZjY5N2M1YTVjOGI4ZmI0ZTY1ZTUwMDBi
ZS4uMWRhMTdlNDhiMzFjNjJiNGU5Y2I3MzdiZjBjNzU0NGIyYzM3YTA4NiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXNfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXNfdW5pdHRl
c3QucHkKQEAgLTE3OCwzNSArMTc4LDM1IEBAIGNsYXNzIFByaW50RXhwZWN0YXRpb25zVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6CiAgICAgICAgIHNl
bGYucnVuX3Rlc3QoWydmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLCAnZmFpbHVyZXMvZXhw
ZWN0ZWQvaW1hZ2UuaHRtbCddLAogICAgICAgICAgICAgICAgICAgICAgICgnLy8gRm9yIHRlc3Qt
d2luLXhwXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9pbWFn
ZS5odG1sID0gSU1BR0VcbicKLSAgICAgICAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVj
dGVkL3RleHQuaHRtbCA9IEZBSUxcbicpKQorICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVy
ZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgV29udEZpeCBdXG4nCisg
ICAgICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgWyBGYWls
dXJlIFdvbnRGaXggXVxuJykpCiAKICAgICBkZWYgdGVzdF9tdWx0aXBsZShzZWxmKToKICAgICAg
ICAgc2VsZi5ydW5fdGVzdChbJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsICdmYWlsdXJl
cy9leHBlY3RlZC9pbWFnZS5odG1sJ10sCiAgICAgICAgICAgICAgICAgICAgICAgKCcvLyBGb3Ig
dGVzdC13aW4tdmlzdGFcbicKLSAgICAgICAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVj
dGVkL2ltYWdlLmh0bWwgPSBJTUFHRVxuJwotICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVy
ZXMvZXhwZWN0ZWQvdGV4dC5odG1sID0gRkFJTFxuJworICAgICAgICAgICAgICAgICAgICAgICAn
ZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgV29udEZpeCBd
XG4nCisgICAgICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwg
WyBGYWlsdXJlIFdvbnRGaXggXVxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAg
ICAgICAgICAgICAgICAgICAgICcvLyBGb3IgdGVzdC13aW4td2luN1xuJwotICAgICAgICAgICAg
ICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFXG4nCi0gICAg
ICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBGQUlMXG4n
CisgICAgICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBXb250Rml4IF1cbicKKyAgICAgICAgICAgICAgICAgICAgICAgJ2Zh
aWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCBbIEZhaWx1cmUgV29udEZpeCBdXG4nCiAgICAgICAg
ICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgJy8vIEZvciB0ZXN0
LXdpbi14cFxuJwotICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvaW1h
Z2UuaHRtbCA9IElNQUdFXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBl
Y3RlZC90ZXh0Lmh0bWwgPSBGQUlMXG4nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ZhaWx1
cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFdvbnRGaXggXVxuJwor
ICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sIFsgRmFp
bHVyZSBXb250Rml4IF1cbicpLAogICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybT0ndGVz
dC13aW4tKicpCiAKICAgICBkZWYgdGVzdF9mdWxsKHNlbGYpOgogICAgICAgICBzZWxmLnJ1bl90
ZXN0KFsnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL2lt
YWdlLmh0bWwnXSwKICAgICAgICAgICAgICAgICAgICAgICAoJy8vIEZvciB0ZXN0LXdpbi14cFxu
JwotICAgICAgICAgICAgICAgICAgICAgICAnV09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVkL2lt
YWdlLmh0bWwgPSBJTUFHRVxuJwotICAgICAgICAgICAgICAgICAgICAgICAnV09OVEZJWCA6IGZh
aWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IEZBSUxcbicpLAorICAgICAgICAgICAgICAgICAg
ICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgV29u
dEZpeCBdXG4nCisgICAgICAgICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC90ZXh0
Lmh0bWwgWyBGYWlsdXJlIFdvbnRGaXggXVxuJyksCiAgICAgICAgICAgICAgICAgICAgICAgZnVs
bD1UcnVlKQogCiAgICAgZGVmIHRlc3RfZXhjbHVkZShzZWxmKToKICAgICAgICAgc2VsZi5ydW5f
dGVzdChbJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC9p
bWFnZS5odG1sJ10sCiAgICAgICAgICAgICAgICAgICAgICAgKCcvLyBGb3IgdGVzdC13aW4teHBc
bicKLSAgICAgICAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9
IEZBSUxcbicpLAorICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4
dC5odG1sIFsgRmFpbHVyZSBXb250Rml4IF1cbicpLAogICAgICAgICAgICAgICAgICAgICAgIGV4
Y2x1ZGVfa2V5d29yZD1bJ2ltYWdlJ10pCiAKICAgICBkZWYgdGVzdF9pbmNsdWRlKHNlbGYpOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxp
bmUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5w
eQppbmRleCBkMTZiNTUxNTEyYzVhZGM5MjU1YTFkMmUyNjAwZGJlNjM3YTlhN2EzLi5jYjhmYTAw
MWY0MmFlZWVlM2E3OTIyYzBhZjNjYzcyODEyNjFjYmJkIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weQpAQCAtMzU2LDcgKzM1Niw3
IEBAIGNsYXNzIFJlYmFzZWxpbmVFeHBlY3RhdGlvbnMoQWJzdHJhY3RQYXJhbGxlbFJlYmFzZWxp
bmVDb21tYW5kKToKICAgICAgICAgZm9yIHBvcnRfbmFtZSBpbiB0b29sLnBvcnRfZmFjdG9yeS5h
bGxfcG9ydF9uYW1lcygpOgogICAgICAgICAgICAgc2VsZi5fYWRkX3Rlc3RzX3RvX3JlYmFzZWxp
bmVfZm9yX3BvcnQocG9ydF9uYW1lKQogICAgICAgICBpZiBub3Qgc2VsZi5fdGVzdF9saXN0Ogot
ICAgICAgICAgICAgX2xvZy53YXJuaW5nKCJEaWQgbm90IGZpbmQgYW55IHRlc3RzIG1hcmtlZCBS
RUJBU0VMSU5FLiIpCisgICAgICAgICAgICBfbG9nLndhcm5pbmcoIkRpZCBub3QgZmluZCBhbnkg
dGVzdHMgbWFya2VkIFJlYmFzZWxpbmUuIikKICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAg
IHNlbGYuX3JlYmFzZWxpbmUob3B0aW9ucywgc2VsZi5fdGVzdF9saXN0KQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZV91bml0
dGVzdC5weQppbmRleCA2ODA5ZjVhNDdmYjc2Zjg4OTI0MmE5NWM0Yzk3ZDQyMzYwNTIzMmE0Li4y
MmZiMTcwNGI0N2E5N2YwNmVlY2MxYTI1MmMyMWVkNTJhOGExODYwIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZV91bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZV91bml0
dGVzdC5weQpAQCAtNjcsOCArNjcsOCBAQCBjbGFzcyBUZXN0UmViYXNlbGluZSh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUobGlvbl9w
b3J0LnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCdza2lhJywgJ3NraWFfdGVzdF9leHBlY3RhdGlv
bnMudHh0JyksICcnKQogICAgICAgICBmb3IgcGF0aCBpbiBsaW9uX3BvcnQuZXhwZWN0YXRpb25z
X2ZpbGVzKCk6CiAgICAgICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHBh
dGgsICcnKQotICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKGxpb25fcG9y
dC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKSwgIiIiQlVHQiBNQUMgTElOVVggWFAg
REVCVUcgOiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1k
ZWVwLWFycmF5Lmh0bWwgPSBQQVNTCi1CVUdBIERFQlVHIDogZmFzdC9jc3MvbGFyZ2UtbGlzdC1v
Zi1ydWxlcy1jcmFzaC5odG1sID0gRkFJTAorICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVf
dGV4dF9maWxlKGxpb25fcG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKSwgIiIi
QnVnKEIpIFsgTWFjIExpbnV4IFhQIERlYnVnIF0gZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0
bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5odG1sIFsgUGFzcyBdCitCdWcoQSkgWyBE
ZWJ1ZyBdIDogZmFzdC9jc3MvbGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sIFsgRmFpbHVy
ZSBdCiAiIiIpCiAgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUob3MucGF0
aC5qb2luKGxpb25fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCksICJmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwiKSwgIkR1bW15IHRl
c3QgY29udGVudHMiKQogICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKG9z
LnBhdGguam9pbihsaW9uX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpLCAiZmFzdC9jc3MvbGFyZ2Ut
bGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sIiksICJEdW1teSB0ZXN0IGNvbnRlbnRzIikKQEAgLTgx
LDggKzgxLDggQEAgUmV0cmlldmluZyBodHRwOi8vZXhhbXBsZS5jb20vZi9idWlsZGVycy9XZWJr
aXQgTWFjMTAuNy9yZXN1bHRzL2xheW91dC10ZXN0LXJlc3UKICAgICAgICAgT3V0cHV0Q2FwdHVy
ZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdF9hbmRfdXBk
YXRlX2V4cGVjdGF0aW9ucywgWyJXZWJraXQgTWFjMTAuNyIsICJ1c2Vyc2NyaXB0cy9hbm90aGVy
LXRlc3QuaHRtbCIsIE5vbmVdLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICAg
ICAgbmV3X2V4cGVjdGF0aW9ucyA9IHRvb2wuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShsaW9u
X3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobmV3X2V4cGVjdGF0aW9ucywgIiIiQlVHQiBNQUMgTElOVVggWFAgREVCVUcgOiBm
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5
Lmh0bWwgPSBQQVNTCi1CVUdBIERFQlVHIDogZmFzdC9jc3MvbGFyZ2UtbGlzdC1vZi1ydWxlcy1j
cmFzaC5odG1sID0gRkFJTAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19leHBlY3RhdGlv
bnMsICIiIkJ1ZyhCKSBbIE1hYyBMaW51eCBYUCBEZWJ1ZyBdIGZhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbCBbIFBhc3MgXQorQnVn
KEEpIFsgRGVidWcgXSA6IGZhc3QvY3NzL2xhcmdlLWxpc3Qtb2YtcnVsZXMtY3Jhc2guaHRtbCBb
IEZhaWx1cmUgXQogIiIiKQogCiAgICAgZGVmIHRlc3RfcmViYXNlbGluZV91cGRhdGVzX2V4cGVj
dGF0aW9uc19maWxlKHNlbGYpOgpAQCAtOTIsNyArOTIsNyBAQCBCVUdBIERFQlVHIDogZmFzdC9j
c3MvbGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sID0gRkFJTAogCiAgICAgICAgIGxpb25f
cG9ydCA9IHRvb2wucG9ydF9mYWN0b3J5LmdldF9mcm9tX2J1aWxkZXJfbmFtZSgiV2Via2l0IE1h
YzEwLjciKQogICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKGxpb25fcG9y
dC5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgnc2tpYScsICdza2lhX3Rlc3RfZXhwZWN0YXRpb25z
LnR4dCcpLCAnJykKLSAgICAgICAgdG9vbC5maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShsaW9u
X3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCksICJCVUdYIE1BQyA6IHVzZXJz
Y3JpcHRzL2Fub3RoZXItdGVzdC5odG1sID0gSU1BR0VcbkJVR1ogTElOVVggOiB1c2Vyc2NyaXB0
cy9hbm90aGVyLXRlc3QuaHRtbCA9IElNQUdFXG4iKQorICAgICAgICB0b29sLmZpbGVzeXN0ZW0u
d3JpdGVfdGV4dF9maWxlKGxpb25fcG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUo
KSwgIkJ1Zyh4KSBbIE1hYyBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdXG5idWcoeikgWyBMaW51eCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdXG4iKQogICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3Jp
dGVfdGV4dF9maWxlKG9zLnBhdGguam9pbihsaW9uX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpLCAi
dXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiKSwgIkR1bW15IHRlc3QgY29udGVudHMiKQog
CiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJSZXRyaWV2aW5nIGh0dHA6Ly9leGFtcGxlLmNv
bS9mL2J1aWxkZXJzL1dlYmtpdCBNYWMxMC43L3Jlc3VsdHMvbGF5b3V0LXRlc3QtcmVzdWx0cy91
c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0dWFsLnBuZy4KQEAgLTEwMiw3ICsxMDIsNyBAQCBS
ZXRyaWV2aW5nIGh0dHA6Ly9leGFtcGxlLmNvbS9mL2J1aWxkZXJzL1dlYmtpdCBNYWMxMC43L3Jl
c3VsdHMvbGF5b3V0LXRlc3QtcmVzdQogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291
dHB1dHMoc2VsZiwgY29tbWFuZC5fcmViYXNlbGluZV90ZXN0X2FuZF91cGRhdGVfZXhwZWN0YXRp
b25zLCBbIldlYmtpdCBNYWMxMC43IiwgInVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIiwg
Tm9uZV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgICAgICBuZXdfZXhwZWN0
YXRpb25zID0gdG9vbC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKGxpb25fcG9ydC5wYXRoX3Rv
X3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdf
ZXhwZWN0YXRpb25zLCAiQlVHWCBTTk9XTEVPUEFSRCA6IHVzZXJzY3JpcHRzL2Fub3RoZXItdGVz
dC5odG1sID0gSU1BR0VcbkJVR1ogTElOVVggOiB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRt
bCA9IElNQUdFXG4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19leHBlY3RhdGlvbnMs
ICJCdWcoeCkgWyBTbm93TGVvcGFyZCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdXG5idWcoeikgWyBMaW51eCBdIHVzZXJzY3JpcHRzL2Fub3RoZXIt
dGVzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdXG4iKQogCiAgICAgZGVmIHRlc3RfcmViYXNl
bGluZV9kb2VzX25vdF9pbmNsdWRlX292ZXJyaWRlcyhzZWxmKToKICAgICAgICAgY29tbWFuZCA9
IFJlYmFzZWxpbmVUZXN0KCkKQEAgLTExMSw4ICsxMTEsOCBAQCBSZXRyaWV2aW5nIGh0dHA6Ly9l
eGFtcGxlLmNvbS9mL2J1aWxkZXJzL1dlYmtpdCBNYWMxMC43L3Jlc3VsdHMvbGF5b3V0LXRlc3Qt
cmVzdQogCiAgICAgICAgIGxpb25fcG9ydCA9IHRvb2wucG9ydF9mYWN0b3J5LmdldF9mcm9tX2J1
aWxkZXJfbmFtZSgiV2Via2l0IE1hYzEwLjciKQogICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3Jp
dGVfdGV4dF9maWxlKGxpb25fcG9ydC5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgnc2tpYScsICdz
a2lhX3Rlc3RfZXhwZWN0YXRpb25zLnR4dCcpLCAnJykKLSAgICAgICAgdG9vbC5maWxlc3lzdGVt
LndyaXRlX3RleHRfZmlsZShsaW9uX3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxl
KCksICJCVUdYIE1BQyA6IHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sID0gSU1BR0VcbkJV
R1ogTElOVVggOiB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCA9IElNQUdFXG4iKQotICAg
ICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKGxpb25fcG9ydC5wYXRoX2Zyb21f
Y2hyb21pdW1fYmFzZSgnc2tpYScsICdza2lhX3Rlc3RfZXhwZWN0YXRpb25zLnR4dCcpLCAiQlVH
WSBNQUMgOiBvdGhlci10ZXN0Lmh0bWwgPSBGQUlMXG4iKQorICAgICAgICB0b29sLmZpbGVzeXN0
ZW0ud3JpdGVfdGV4dF9maWxlKGxpb25fcG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2Zp
bGUoKSwgIkJ1Zyh4KSBbIE1hYyBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdXG5CdWcoeikgWyBMaW51eCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVz
dC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdXG4iKQorICAgICAgICB0b29sLmZpbGVzeXN0ZW0u
d3JpdGVfdGV4dF9maWxlKGxpb25fcG9ydC5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgnc2tpYScs
ICdza2lhX3Rlc3RfZXhwZWN0YXRpb25zLnR4dCcpLCAiQnVnKHkpIFsgTWFjIF0gb3RoZXItdGVz
dC5odG1sIFsgRmFpbHVyZSBdXG4iKQogICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4
dF9maWxlKG9zLnBhdGguam9pbihsaW9uX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpLCAidXNlcnNj
cmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiKSwgIkR1bW15IHRlc3QgY29udGVudHMiKQogCiAgICAg
ICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJSZXRyaWV2aW5nIGh0dHA6Ly9leGFtcGxlLmNvbS9mL2J1
aWxkZXJzL1dlYmtpdCBNYWMxMC43L3Jlc3VsdHMvbGF5b3V0LXRlc3QtcmVzdWx0cy91c2Vyc2Ny
aXB0cy9hbm90aGVyLXRlc3QtYWN0dWFsLnBuZy4KQEAgLTEyMiw3ICsxMjIsNyBAQCBSZXRyaWV2
aW5nIGh0dHA6Ly9leGFtcGxlLmNvbS9mL2J1aWxkZXJzL1dlYmtpdCBNYWMxMC43L3Jlc3VsdHMv
bGF5b3V0LXRlc3QtcmVzdQogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgY29tbWFuZC5fcmViYXNlbGluZV90ZXN0X2FuZF91cGRhdGVfZXhwZWN0YXRpb25zLCBb
IldlYmtpdCBNYWMxMC43IiwgInVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIiwgTm9uZV0s
IGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgICAgICBuZXdfZXhwZWN0YXRpb25z
ID0gdG9vbC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKGxpb25fcG9ydC5wYXRoX3RvX3Rlc3Rf
ZXhwZWN0YXRpb25zX2ZpbGUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdfZXhwZWN0
YXRpb25zLCAiQlVHWCBTTk9XTEVPUEFSRCA6IHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1s
ID0gSU1BR0VcbkJVR1ogTElOVVggOiB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCA9IElN
QUdFXG4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19leHBlY3RhdGlvbnMsICJCdWco
eCkgWyBTbm93TGVvcGFyZCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdXG5CdWcoeikgWyBMaW51eCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdXG4iKQogCiAgICAgZGVmIHRlc3RfcmViYXNlbGluZV90
ZXN0KHNlbGYpOgogICAgICAgICBjb21tYW5kID0gUmViYXNlbGluZVRlc3QoKQpAQCAtMzMxLDcg
KzMzMSw3IEBAIE1PQ0sgcnVuX2NvbW1hbmQ6IFsncW1ha2UnLCAnLXYnXSwgY3dkPU5vbmUKICAg
ICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGNvbW1hbmQuZXhlY3V0
ZSwgW29wdGlvbnMsIGFyZ3MsIHRvb2xdLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0
LCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVk
X2xvZ3MpCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX2V4cGVjdGF0aW9uc19ub29wKHNlbGYp
OgotICAgICAgICBzZWxmLl9hc3NlcnRfY29tbWFuZChSZWJhc2VsaW5lRXhwZWN0YXRpb25zKCks
IGV4cGVjdGVkX2xvZ3M9J0RpZCBub3QgZmluZCBhbnkgdGVzdHMgbWFya2VkIFJFQkFTRUxJTkUu
XG4nKQorICAgICAgICBzZWxmLl9hc3NlcnRfY29tbWFuZChSZWJhc2VsaW5lRXhwZWN0YXRpb25z
KCksIGV4cGVjdGVkX2xvZ3M9J0RpZCBub3QgZmluZCBhbnkgdGVzdHMgbWFya2VkIFJlYmFzZWxp
bmUuXG4nKQogCiAgICAgZGVmIHRlc3Rfb3ZlcnJpZGVzX2FyZV9pbmNsdWRlZF9jb3JyZWN0bHko
c2VsZik6CiAgICAgICAgIGNvbW1hbmQgPSBSZWJhc2VsaW5lRXhwZWN0YXRpb25zKCkKQEAgLTM0
Niw4ICszNDYsOCBAQCBNT0NLIHJ1bl9jb21tYW5kOiBbJ3FtYWtlJywgJy12J10sIGN3ZD1Ob25l
CiAgICAgICAgIHBvcnQuX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKGV4cGVjdGF0aW9uc19w
YXRoLCBleHBlY3RhdGlvbnNfY29udGVudHMpCiAgICAgICAgIHBvcnQuZXhwZWN0YXRpb25zX2Rp
Y3QgPSBsYW1iZGE6IHsKICAgICAgICAgICAgIGV4cGVjdGF0aW9uc19wYXRoOiBleHBlY3RhdGlv
bnNfY29udGVudHMsCi0gICAgICAgICAgICAnb3ZlcnJpZGVzJzogKCdCVUdYIFJFQkFTRUxJTkUg
OiB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCA9IEZBSUxcbicKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ0JVR1kgOiB1c2Vyc2NyaXB0cy90ZXN0Lmh0bWwgPSBDUkFTSFxuJyl9Cisg
ICAgICAgICAgICAnb3ZlcnJpZGVzJzogKCdCdWcoeCkgdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0
Lmh0bWwgWyBGYWlsdXJlIFJlYmFzZWxpbmUgXVxuJworICAgICAgICAgICAgICAgICAgICAgICAg
ICAnQnVnKHkpIHVzZXJzY3JpcHRzL3Rlc3QuaHRtbCBbIENyYXNoIF1cbicpfQogCiAgICAgICAg
IGZvciBwYXRoIGluIHBvcnQuZXhwZWN0YXRpb25zX2ZpbGVzKCk6CiAgICAgICAgICAgICBwb3J0
Ll9maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShwYXRoLCAnJykK
</data>

          </attachment>
      

    </bug>

</bugzilla>