<?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>189067</bug_id>
          
          <creation_ts>2018-08-28 16:09:32 -0700</creation_ts>
          <short_desc>Teach webkitpy how to check leaks and treat leaks as test failures</short_desc>
          <delta_ts>2018-08-29 10:52:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>186214</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1454611</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-28 16:09:32 -0700</bug_when>
    <thetext>Teach webkitpy how to check leaks and treat leaks as test failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454615</commentid>
    <comment_count>1</comment_count>
      <attachid>348357</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-28 16:20:14 -0700</bug_when>
    <thetext>Created attachment 348357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454617</commentid>
    <comment_count>2</comment_count>
      <attachid>348358</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-28 16:25:19 -0700</bug_when>
    <thetext>Created attachment 348358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454837</commentid>
    <comment_count>3</comment_count>
      <attachid>348358</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-29 10:51:41 -0700</bug_when>
    <thetext>Comment on attachment 348358
Patch

Clearing flags on attachment: 348358

Committed r235467: &lt;https://trac.webkit.org/changeset/235467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454838</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-29 10:51:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454839</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-29 10:52:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/43848676&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348357</attachid>
            <date>2018-08-28 16:20:14 -0700</date>
            <delta_ts>2018-08-28 16:25:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189067-20180828162013.patch</filename>
            <type>text/plain</type>
            <size>45433</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDM0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGE0MzJjZGRkYmI5MWViMmViNTU5OWM3NDlkZjk4YWNh
NDQyNmRlMi4uNjE1YWVhOGJkMzE5ODY3MjdiMzZlYjM5ZWQyNTFmZWUyODgxN2ZkZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5
IEBACisyMDE4LTA4LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFRlYWNoIHdlYmtpdHB5IGhvdyB0byBjaGVjayBsZWFrcyBhbmQgdHJlYXQgbGVh
a3MgYXMgdGVzdCBmYWlsdXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg5MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisgICAgICAgIAorICAgICAgICBBZGQgYSBuZXcgIi0td29ybGQtbGVha3MiIGFyZ3VtZW50IHRv
IHJ1bi13ZWJraXQtdGVzdHMuIFdoZW4gZW5hYmxlZCwgRFJUL1dUUiBhcmUgbGF1bmNoZWQKKyAg
ICAgICAgd2l0aCBhIC0td29ybGQtbGVha3MgYXJndW1lbnQgKHdoaWNoIGlzIHJlbmFtZWQgaW4g
dGhpcyBwYXRjaCBmb3IgY29uc2lzdGVuY3kpLiBUaGlzIGVuYWJsZXMgdGhlCisgICAgICAgIGJl
aGF2aW9yIGFkZGVkIGluIHIyMzU0MDgsIG5hbWVseSB0aGF0IHRoZXkgY2hlY2sgZm9yIGxlYWtl
ZCBkb2N1bWVudHMgYWZ0ZXIgZWFjaCB0ZXN0LCBhbmQgYXQKKyAgICAgICAgdGhlIGVuZCBvZiBv
bmUgKGlmIC0tcnVuLXNpbmdseSkgb3IgYSBzZXQgb2YgdGVzdHMgcnVuIGluIGEgc2luZ2xlIERS
VC9XVFIgaW5zdGFuY2UgaGFuZGxlIHRoZQorICAgICAgICAiI0NIRUNLIEZPUiBXT1JMRCBMRUFL
UyIgY29tbWFuZCB0byBnZXQgc3RpbGwtbGl2ZSBkb2N1bWVudHMuCisgICAgICAgIAorICAgICAg
ICBMYXlvdXRUZXN0UnVubmVyIGluIHdlYmtpdHB5IG5vdyBoYXMgdGhlIG5vdGlvbiBvZiBkb2lu
ZyAicG9zdC10ZXN0cyB3b3JrIiwgY2FsbGVkIHZpYSBfZmluaXNoZWRfdGVzdF9ncm91cCgpLAor
ICAgICAgICBhbmQgaGVyZSBpdCBzZW5kcyB0aGUgIiNDSEVDSyBGT1IgV09STEQgTEVBS1MiIGNv
bW1hbmQgdG8gdGhlIHJ1bm5lciBhbmQgcGFyc2VzIHRoZSByZXN1bHRpbmcgb3V0cHV0IGJsb2Nr
LgorICAgICAgICBJZiB0aGlzIHJlc3VsdHMgYmxvY2sgaW5jbHVkZXMgbGVha3MsIHdlIGNvbnZl
cnQgYW4gZXhpc3RpbmcgVGVzdFJlc3VsdCBpbnRvIGEgTEVBSyBmYWlsdXJlCisgICAgICAgIGlu
IFRlc3RSdW5SZXN1bHRzLmNoYW5nZV9yZXN1bHRfdG9fZmFpbHVyZSgpLiBMZWFrcyBhcmUgdGhl
biBhZGRlZCB0byB0aGUgb3VwdXQgSlNPTiBmb3IgZGlzcGxheSBpbiByZXN1bHRzLmh0bWwKKwor
ICAgICAgICBVbml0IHRlc3RzIGFyZSB1cGRhdGVkIHdpdGggc29tZSBsZWFrIGV4YW1wbGVzLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAg
ICAoaW5pdGlhbGl6ZUdsb2JhbHNGcm9tQ29tbWFuZExpbmVPcHRpb25zKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHk6
CisgICAgICAgIChQYXJzZWRKU09OUmVzdWx0c1Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weToKKyAg
ICAgICAgKExheW91dFRlc3RSdW5uZXIuX2Fubm90YXRlX3Jlc3VsdHNfd2l0aF9hZGRpdGlvbmFs
X2ZhaWx1cmVzKToKKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuX2hhbmRsZV9maW5pc2hlZF90
ZXN0X2dyb3VwKToKKyAgICAgICAgKFdvcmtlci5oYW5kbGUpOgorICAgICAgICAoV29ya2VyLl9y
dW5fdGVzdCk6CisgICAgICAgIChXb3JrZXIuX2RvX3Bvc3RfdGVzdHNfd29yayk6CisgICAgICAg
IChXb3JrZXIuX2ZpbmlzaGVkX3Rlc3RfZ3JvdXApOgorICAgICAgICAoV29ya2VyLl9ydW5fdGVz
dF9pbl9hbm90aGVyX3RocmVhZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbGF5b3V0X3BhY2thZ2UvanNvbl9sYXlvdXRfcmVzdWx0c19nZW5lcmF0b3IucHk6Cisg
ICAgICAgIChKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvcik6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAg
ICAoVGVzdEV4cGVjdGF0aW9uUGFyc2VyKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnMpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVj
dGF0aW9uc191bml0dGVzdC5weToKKyAgICAgICAgKEJhc2UuZ2V0X2Jhc2ljX3Rlc3RzKToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJl
cy5weToKKyAgICAgICAgKGRldGVybWluZV9yZXN1bHRfdHlwZSk6CisgICAgICAgIChGYWlsdXJl
TGVhayk6CisgICAgICAgIChGYWlsdXJlTGVhay5fX2luaXRfXyk6CisgICAgICAgIChGYWlsdXJl
TGVhay5tZXNzYWdlKToKKyAgICAgICAgKEZhaWx1cmVEb2N1bWVudExlYWspOgorICAgICAgICAo
RmFpbHVyZURvY3VtZW50TGVhay5fX2luaXRfXyk6CisgICAgICAgIChGYWlsdXJlRG9jdW1lbnRM
ZWFrLm1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X3Jlc3VsdHMucHk6CisgICAgICAgIChUZXN0UmVzdWx0LmNvbnZlcnRfdG9fZmFp
bHVyZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rl
c3RfcnVuX3Jlc3VsdHMucHk6CisgICAgICAgIChUZXN0UnVuUmVzdWx0cy5jaGFuZ2VfcmVzdWx0
X3RvX2ZhaWx1cmUpOgorICAgICAgICAoX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKToKKyAgICAg
ICAgKHN1bW1hcml6ZV9yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0c191bml0dGVzdC5weToKKyAgICAgICAgKGdl
dF9yZXN1bHQpOgorICAgICAgICAocnVuX3Jlc3VsdHMpOgorICAgICAgICAoc3VtbWFyaXplZF9y
ZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzLnB5OgorICAgICAgICAocGFyc2VfYXJncyk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHk6
CisgICAgICAgIChwYXJzZV9hcmdzKToKKyAgICAgICAgKFJ1blRlc3QudGVzdF9jaGVja19mb3Jf
d29ybGRfbGVha3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHk6
CisgICAgICAgIChEcml2ZXJQb3N0VGVzdE91dHB1dCk6CisgICAgICAgIChEcml2ZXJQb3N0VGVz
dE91dHB1dC5fX2luaXRfXyk6CisgICAgICAgIChEcml2ZXIuZG9fcG9zdF90ZXN0c193b3JrKToK
KyAgICAgICAgKERyaXZlci5fcGFyc2Vfd29ybGRfbGVha3Nfb3V0cHV0KToKKyAgICAgICAgKERy
aXZlci5jbWRfbGluZSk6CisgICAgICAgIChEcml2ZXJQcm94eS5kb19wb3N0X3Rlc3RzX3dvcmsp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5OgorICAgICAgICAodW5p
dF90ZXN0X2xpc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHA6Cisg
ICAgICAgIChXVFI6Ok9wdGlvbnNIYW5kbGVyOjpPcHRpb25zSGFuZGxlcik6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpjaGVja0ZvcldvcmxkTGVha3MpOgorCiAyMDE4LTA4LTI4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IDMyLWJpdCBN
YWMgYnVpbGQuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5k
ZXggMmFkMDNhMDE4NDU3ZTU0MGVlZDg2NmI3MmY3NDY1NmY0YjlmNjk0OC4uMzgzYTM4OWFhZmFi
OGMwMjg5ODkyOTg2Y2RmZDQ1YWZiYWMyY2I2YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTEyMSw3ICsxMTIxLDcgQEAgc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZUdsb2JhbHNGcm9tQ29tbWFuZExpbmVPcHRpb25zKGludCBhcmdjLCBjb25zdCBjaGFy
ICphcmd2W10KICAgICAgICAgeyJhbGxvdy1hbnktY2VydGlmaWNhdGUtZm9yLWFsbG93ZWQtaG9z
dHMiLCBub19hcmd1bWVudCwgJmFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0
cywgWUVTfSwKICAgICAgICAgeyJzaG93LXdlYnZpZXciLCBub19hcmd1bWVudCwgJnNob3dXZWJW
aWV3LCBZRVN9LAogICAgICAgICB7InByaW50LXRlc3QtY291bnQiLCBub19hcmd1bWVudCwgJnBy
aW50VGVzdENvdW50LCBZRVN9LAotICAgICAgICB7ImNoZWNrLWZvci13b3JsZC1sZWFrcyIsIG5v
X2FyZ3VtZW50LCAmY2hlY2tGb3JXb3JsZExlYWtzLCBOT30sCisgICAgICAgIHsid29ybGQtbGVh
a3MiLCBub19hcmd1bWVudCwgJmNoZWNrRm9yV29ybGRMZWFrcywgTk99LAogICAgICAgICB7bnVs
bHB0ciwgMCwgbnVsbHB0ciwgMH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3Qu
cHkKaW5kZXggMmYyMWY0NGI5MTg5ZjA0MGI1NzBjMjQzYTE1MmUxMzI4NjIzYTAxZS4uNjdhMmVm
NmE1Y2Y0YjI3YzcwZjIzMDUxY2Y2MjJiYTMyOWIwOWY0OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91
bml0dGVzdC5weQpAQCAtNTgsNyArNTgsMTMgQEAgY2xhc3MgUGFyc2VkSlNPTlJlc3VsdHNUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAg
ICJwcm90b3R5cGUtc3RyYXdiZXJyeS5odG1sIjogewogICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiAiUEFTUyIsCi0gICAgICAgICAgICAgICAgICAgICJhY3R1YWwiOiAiRkFJTCBQQVNT
IgorICAgICAgICAgICAgICAgICAgICAiYWN0dWFsIjogIkZBSUwgUEFTUyIsCisgICAgICAgICAg
ICAgICAgICAgICJsZWFrcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb2N1bWVudHMi
OiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGU6Ly8vVm9sdW1lcy9EYXRhL3Ns
YXZlL3dlYmtpdC9idWlsZC9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtc3RyYXdiZXJy
eS5odG1sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJvdXQ6YmxhbmsiCisgICAg
ICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCkBAIC0xMDYsNyArMTEyLDEzIEBAIGNs
YXNzIFBhcnNlZEpTT05SZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgICAgICAicHJvdG90eXBlLXN0cmF3YmVycnkuaHRtbCI6IHsK
ICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAotICAgICAgICAgICAgICAg
ICAgICAiYWN0dWFsIjogIkZBSUwgUEFTUyIKKyAgICAgICAgICAgICAgICAgICAgImFjdHVhbCI6
ICJGQUlMIFBBU1MiLAorICAgICAgICAgICAgICAgICAgICAibGVha3MiOiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAiZG9jdW1lbnRzIjogWworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJmaWxlOi8vL1ZvbHVtZXMvRGF0YS9zbGF2ZS93ZWJraXQvYnVpbGQvTGF5b3V0VGVzdHMvZmFz
dC9kb20vcHJvdG90eXBlLXN0cmF3YmVycnkuaHRtbCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImFib3V0OmJsYW5rIgorICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9
LApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CmluZGV4IDNlNTJlNjE0
YWE4OWE2MmQ4ZTVlZTNmZWZhZmNkY2NhMjhiODAzZDAuLjA3NjU0N2Q0ZWQ3ODU1MGE4MDA2OGFm
Y2Q4MzhiNWFjMGY4YjFiNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5u
ZXIucHkKQEAgLTE5Miw2ICsxOTIsMTYgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3Qp
OgogCiAgICAgICAgIHNlbGYuX2ludGVycnVwdF9pZl9hdF9mYWlsdXJlX2xpbWl0cyhydW5fcmVz
dWx0cykKIAorICAgIGRlZiBfYW5ub3RhdGVfcmVzdWx0c193aXRoX2FkZGl0aW9uYWxfZmFpbHVy
ZXMoc2VsZiwgcnVuX3Jlc3VsdHMsIHJlc3VsdHMpOgorICAgICAgICBmb3IgbmV3X3Jlc3VsdCBp
biByZXN1bHRzOgorICAgICAgICAgICAgZXhpc3RpbmdfcmVzdWx0ID0gcnVuX3Jlc3VsdHMucmVz
dWx0c19ieV9uYW1lLmdldChuZXdfcmVzdWx0LnRlc3RfbmFtZSkKKyAgICAgICAgICAgICMgV2hl
biBydW5uaW5nIGEgY2h1bmsgKC0tcnVuLWNodW5rKSwgcmVzdWx0c19ieV9uYW1lIGNvbnRhaW5z
IGFsbCB0aGUgdGVzdHMsIGJ1dCAoY29uZnVzaW5nbHkpIGFsbF90ZXN0cyBvbmx5IGNvbnRhaW5z
IHRob3NlIGluIHRoZSBjaHVuayB0aGF0IHdhcyBydW4sCisgICAgICAgICAgICAjIGFuZCB3ZSBk
b24ndCB3YW50IHRvIG1vZGlmeSB0aGUgcmVzdWx0cyBvZiBhIHRlc3QgdGhhdCBkaWRuJ3QgcnVu
LiBleGlzdGluZ19yZXN1bHQudGVzdF9udW1iZXIgaXMgb25seSBub24tTm9uZSBmb3IgdGVzdHMg
dGhhdCByYW4uCisgICAgICAgICAgICBpZiBleGlzdGluZ19yZXN1bHQgYW5kIGV4aXN0aW5nX3Jl
c3VsdC50ZXN0X251bWJlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICB3YXNfZXhwZWN0
ZWQgPSBzZWxmLl9leHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQobmV3X3Jl
c3VsdC50ZXN0X25hbWUsIGV4aXN0aW5nX3Jlc3VsdC50eXBlLCBzZWxmLl9vcHRpb25zLnBpeGVs
X3Rlc3RzIG9yIGV4aXN0aW5nX3Jlc3VsdC5yZWZ0ZXN0X3R5cGUpCisgICAgICAgICAgICAgICAg
bm93X2V4cGVjdGVkID0gc2VsZi5fZXhwZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVz
dWx0KG5ld19yZXN1bHQudGVzdF9uYW1lLCBuZXdfcmVzdWx0LnR5cGUsIHNlbGYuX29wdGlvbnMu
cGl4ZWxfdGVzdHMgb3IgbmV3X3Jlc3VsdC5yZWZ0ZXN0X3R5cGUpCisgICAgICAgICAgICAgICAg
cnVuX3Jlc3VsdHMuY2hhbmdlX3Jlc3VsdF90b19mYWlsdXJlKGV4aXN0aW5nX3Jlc3VsdCwgbmV3
X3Jlc3VsdCwgd2FzX2V4cGVjdGVkLCBub3dfZXhwZWN0ZWQpCisKICAgICBkZWYgc3RhcnRfc2Vy
dmVycyhzZWxmKToKICAgICAgICAgaWYgc2VsZi5fbmVlZHNfaHR0cCBhbmQgbm90IHNlbGYuX2Rp
ZF9zdGFydF9odHRwX3NlcnZlciBhbmQgbm90IHNlbGYuX3BvcnQuaXNfaHR0cF9zZXJ2ZXJfcnVu
bmluZygpOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRhdGUoJ1N0YXJ0aW5n
IEhUVFAgc2VydmVyIC4uLicpCkBAIC0yMzIsNiArMjQyLDkgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1
bm5lcihvYmplY3QpOgogICAgIGRlZiBfaGFuZGxlX2ZpbmlzaGVkX3Rlc3Qoc2VsZiwgd29ya2Vy
X25hbWUsIHJlc3VsdCwgbG9nX21lc3NhZ2VzPVtdKToKICAgICAgICAgc2VsZi5fdXBkYXRlX3N1
bW1hcnlfd2l0aF9yZXN1bHQoc2VsZi5fY3VycmVudF9ydW5fcmVzdWx0cywgcmVzdWx0KQogCisg
ICAgZGVmIF9oYW5kbGVfZmluaXNoZWRfdGVzdF9ncm91cChzZWxmLCB3b3JrZXJfbmFtZSwgb3Zl
cmxheV9yZXN1bHRzLCBsb2dfbWVzc2FnZXM9W10pOgorICAgICAgICBzZWxmLl9hbm5vdGF0ZV9y
ZXN1bHRzX3dpdGhfYWRkaXRpb25hbF9mYWlsdXJlcyhzZWxmLl9jdXJyZW50X3J1bl9yZXN1bHRz
LCBvdmVybGF5X3Jlc3VsdHMpCisKIAogY2xhc3MgV29ya2VyKG9iamVjdCk6CiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGNhbGxlciwgcmVzdWx0c19kaXJlY3RvcnksIG9wdGlvbnMpOgpAQCAtMjY5
LDYgKzI4Miw4IEBAIGNsYXNzIFdvcmtlcihvYmplY3QpOgogICAgICAgICBmb3IgdGVzdF9pbnB1
dCBpbiB0ZXN0X2lucHV0czoKICAgICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQs
IHRlc3RfbGlzdF9uYW1lKQogCisgICAgICAgIHNlbGYuX2ZpbmlzaGVkX3Rlc3RfZ3JvdXAodGVz
dF9pbnB1dHMpCisKICAgICBkZWYgX3VwZGF0ZV90ZXN0X2lucHV0KHNlbGYsIHRlc3RfaW5wdXQp
OgogICAgICAgICBpZiB0ZXN0X2lucHV0LnJlZmVyZW5jZV9maWxlcyBpcyBOb25lOgogICAgICAg
ICAgICAgIyBMYXp5IGluaXRpYWxpemF0aW9uLgpAQCAtMzAyLDYgKzMxNywyOSBAQCBjbGFzcyBX
b3JrZXIob2JqZWN0KToKIAogICAgICAgICBzZWxmLl9jbGVhbl91cF9hZnRlcl90ZXN0KHRlc3Rf
aW5wdXQsIHJlc3VsdCkKIAorICAgIGRlZiBfZG9fcG9zdF90ZXN0c193b3JrKHNlbGYsIGRyaXZl
cik6CisgICAgICAgIGFkZGl0aW9uYWxfcmVzdWx0cyA9IFtdCisgICAgICAgIGlmIG5vdCBkcml2
ZXI6CisgICAgICAgICAgICByZXR1cm4gYWRkaXRpb25hbF9yZXN1bHRzCisKKyAgICAgICAgcG9z
dF90ZXN0X291dHB1dCA9IGRyaXZlci5kb19wb3N0X3Rlc3RzX3dvcmsoKQorICAgICAgICBpZiBw
b3N0X3Rlc3Rfb3V0cHV0OgorICAgICAgICAgICAgZm9yIHRlc3RfbmFtZSwgZG9jX2xpc3QgaW4g
cG9zdF90ZXN0X291dHB1dC53b3JsZF9sZWFrc19kaWN0Lml0ZXJpdGVtcygpOgorICAgICAgICAg
ICAgICAgIGFkZGl0aW9uYWxfcmVzdWx0cy5hcHBlbmQodGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQo
dGVzdF9uYW1lLCBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlRG9jdW1lbnRMZWFrKGRvY19saXN0KV0p
KQorICAgICAgICByZXR1cm4gYWRkaXRpb25hbF9yZXN1bHRzCisKKyAgICBkZWYgX2ZpbmlzaGVk
X3Rlc3RfZ3JvdXAoc2VsZiwgdGVzdF9pbnB1dHMpOgorICAgICAgICBfbG9nLmRlYnVnKCIlcyBm
aW5pc2hlZCB0ZXN0IGdyb3VwIiAlIHNlbGYuX25hbWUpCisKKyAgICAgICAgaWYgc2VsZi5fZHJp
dmVyIGFuZCBzZWxmLl9kcml2ZXIuaGFzX2NyYXNoZWQoKToKKyAgICAgICAgICAgIHNlbGYuX2tp
bGxfZHJpdmVyKCkKKworICAgICAgICBhZGRpdGlvbmFsX3Jlc3VsdHMgPSBbXQorICAgICAgICBp
ZiBub3Qgc2VsZi5fb3B0aW9ucy5ydW5fc2luZ2x5OgorICAgICAgICAgICAgYWRkaXRpb25hbF9y
ZXN1bHRzID0gc2VsZi5fZG9fcG9zdF90ZXN0c193b3JrKHNlbGYuX2RyaXZlcikKKworICAgICAg
ICBzZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVzdF9ncm91cCcsIGFkZGl0aW9uYWxfcmVz
dWx0cykKKwogICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICBfbG9nLmRlYnVnKCIlcyBjbGVh
bmluZyB1cCIgJSBzZWxmLl9uYW1lKQogICAgICAgICBzZWxmLl9raWxsX2RyaXZlcigpCkBAIC0z
OTYsNiArNDM0LDExIEBAIGNsYXNzIFdvcmtlcihvYmplY3QpOgogICAgICAgICAgICAgIyB0aHJl
YWQncyByZXN1bHRzLgogICAgICAgICAgICAgX2xvZy5lcnJvcignVGVzdCB0aHJlYWQgaHVuZzog
a2lsbGluZyBhbGwgRHVtcFJlbmRlclRyZWVzJykKICAgICAgICAgICAgIGZhaWx1cmVzID0gW3Rl
c3RfZmFpbHVyZXMuRmFpbHVyZVRpbWVvdXQoKV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGZhaWx1cmVfcmVzdWx0cyA9IHNlbGYuX2RvX3Bvc3RfdGVzdHNfd29yayhkcml2ZXIpCisgICAg
ICAgICAgICBmb3IgZmFpbHVyZV9yZXN1bHQgaW4gZmFpbHVyZV9yZXN1bHRzOgorICAgICAgICAg
ICAgICAgIGlmIGZhaWx1cmVfcmVzdWx0LnRlc3RfbmFtZSA9PSByZXN1bHQudGVzdF9uYW1lOgor
ICAgICAgICAgICAgICAgICAgICByZXN1bHQuY29udmVydF90b19mYWlsdXJlKGZhaWx1cmVfcmVz
dWx0KQogCiAgICAgICAgIGRyaXZlci5zdG9wKCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvanNvbl9sYXlvdXRfcmVzdWx0
c19nZW5lcmF0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlv
dXRfcGFja2FnZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVyYXRvci5weQppbmRleCAxYmMxMGU2
ODM4M2I2YmZjZTUzMjVhM2QyYmNmMWRiMGU2NmNkY2YwLi5kMGMyMjAxMmIzYmIzY2U5YzRhYWJm
NTA0MmEzMjM1NTM4NDI2MGJiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVyYXRvci5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVyYXRvci5weQpAQCAtNDksNiArNDksNyBAQCBjbGFz
cyBKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvcihqc29uX3Jlc3VsdHNfZ2VuZXJhdG9yLkpTT05S
ZXN1bHRzR2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlv
bnMuVEVYVDogIkYiLAogICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5B
VURJTzogIkEiLAogICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5NSVNT
SU5HOiAiTyIsCisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb25zLkxFQUs6
ICJMIiwKICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuSU1BR0VfUExV
U19URVhUOiAiWiJ9CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgYnVpbGRlcl9uYW1l
LCBidWlsZF9uYW1lLCBidWlsZF9udW1iZXIsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkK
aW5kZXggZTU0YWM5NDEyNWY5ZGZhY2Q3YzY3NjA3ODhiZDc3MWIyMmZiNDNmZi4uYWY0ZDFiZTdm
NTBjODExYTk5OTEzM2YxY2ZiODcwYWYyMDVkNzkwMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0
aW9ucy5weQpAQCAtNDMsNyArNDMsNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCiAjIEZJWE1FOiByYW5nZSgpIHN0YXJ0cyB3aXRoIDAgd2hpY2ggbWFrZXMgaWYgZXhwZWN0
YXRpb24gY2hlY2tzIGhhcmRlcgogIyBhcyBQQVNTIGlzIDAuCiAoUEFTUywgRkFJTCwgVEVYVCwg
SU1BR0UsIElNQUdFX1BMVVNfVEVYVCwgQVVESU8sIFRJTUVPVVQsIENSQVNILCBTS0lQLCBXT05U
RklYLAotIFNMT1csIERVTVBKU0NPTlNPTEVMT0dJTlNUREVSUiwgUkVCQVNFTElORSwgTUlTU0lO
RywgRkxBS1ksIE5PVywgTk9ORSkgPSByYW5nZSgxNykKKyBTTE9XLCBMRUFLLCBEVU1QSlNDT05T
T0xFTE9HSU5TVERFUlIsIFJFQkFTRUxJTkUsIE1JU1NJTkcsIEZMQUtZLCBOT1csIE5PTkUpID0g
cmFuZ2UoMTgpCiAKICMgRklYTUU6IFBlcmhhcyB0aGVzZSB0d28gcm91dGluZXMgc2hvdWxkIGJl
IHBhcnQgb2YgdGhlIFBvcnQgaW5zdGVhZD8KIEJBU0VMSU5FX1NVRkZJWF9MSVNUID0gKCdwbmcn
LCAnd2F2JywgJ3R4dCcpCkBAIC0yNDEsOSArMjQxLDExIEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlv
blBhcnNlcihvYmplY3QpOgogICAgICMgRklYTUU6IFVwZGF0ZSB0aGUgb3JpZ2luYWwgbW9kaWZp
ZXJzIGxpc3QgYW5kIHJlbW92ZSB0aGlzIG9uY2UgdGhlIG9sZCBzeW50YXggaXMgZ29uZS4KICAg
ICBfZXhwZWN0YXRpb25fdG9rZW5zID0gewogICAgICAgICAnQ3Jhc2gnOiAnQ1JBU0gnLAorICAg
ICAgICAnTGVhayc6ICdMRUFLJywKICAgICAgICAgJ0ZhaWx1cmUnOiAnRkFJTCcsCiAgICAgICAg
ICdJbWFnZU9ubHlGYWlsdXJlJzogJ0lNQUdFJywKICAgICAgICAgJ01pc3NpbmcnOiAnTUlTU0lO
RycsCisgICAgICAgICdMZWFrJzogJ0xFQUsnLAogICAgICAgICAnUGFzcyc6ICdQQVNTJywKICAg
ICAgICAgJ1JlYmFzZWxpbmUnOiAnUkVCQVNFTElORScsCiAgICAgICAgICdTa2lwJzogJ1NLSVAn
LApAQCAtNzk0LDYgKzc5Niw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnMob2JqZWN0KToKICAg
ICAgICAgICAgICAgICAgICAgJ3RpbWVvdXQnOiBUSU1FT1VULAogICAgICAgICAgICAgICAgICAg
ICAnY3Jhc2gnOiBDUkFTSCwKICAgICAgICAgICAgICAgICAgICAgJ21pc3NpbmcnOiBNSVNTSU5H
LAorICAgICAgICAgICAgICAgICAgICAnbGVhayc6IExFQUssCiAgICAgICAgICAgICAgICAgICAg
ICdza2lwJzogU0tJUH0KIAogICAgICMgKGFnZ3JlZ2F0ZWQgYnkgY2F0ZWdvcnksIHBhc3MvZmFp
bC9za2lwLCB0eXBlKQpAQCAtODA2LDkgKzgwOSwxMCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25z
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFVRElPOiAnYXVkaW8g
ZmFpbHVyZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUkFTSDogJ2NyYXNo
ZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSU1FT1VUOiAndGltZW91dHMn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSVNTSU5HOiAnbWlzc2luZyByZXN1
bHRzJ30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUlTU0lORzogJ21pc3Npbmcg
cmVzdWx0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFQUs6ICdsZWFrcyd9
CiAKLSAgICBFWFBFQ1RBVElPTl9PUkRFUiA9IChQQVNTLCBDUkFTSCwgVElNRU9VVCwgTUlTU0lO
RywgRkFJTCwgSU1BR0UsIFNLSVApCisgICAgRVhQRUNUQVRJT05fT1JERVIgPSAoUEFTUywgQ1JB
U0gsIFRJTUVPVVQsIE1JU1NJTkcsIEZBSUwsIElNQUdFLCBMRUFLLCBTS0lQKQogCiAgICAgQlVJ
TERfVFlQRVMgPSAoJ2RlYnVnJywgJ3JlbGVhc2UnKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9l
eHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKaW5kZXggMDc1OTVkMjdhMDdhZjU0NGRiMzhmYmZiNWYy
ZjljNDJjOTY5MzM1Ny4uNmJkYTk3MzJjZDg5NzI4N2JhZDBkZmQzYWExZWExYThhOTJlMjc4MCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rl
c3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQpAQCAtNTMs
NiArNTMsNyBAQCBjbGFzcyBCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmV0dXJu
IFsnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywKICAgICAgICAgICAgICAgICAnZmFpbHVy
ZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCcsCiAgICAgICAgICAgICAgICAgJ2ZhaWx1
cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLAorICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBl
Y3RlZC9sZWFrLmh0bWwnLAogICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9taXNz
aW5nX3RleHQuaHRtbCcsCiAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdl
Lmh0bWwnLAogICAgICAgICAgICAgICAgICdwYXNzZXMvdGV4dC5odG1sJ10KQEAgLTYxLDYgKzYy
LDcgQEAgY2xhc3MgQmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJldHVybiAiIiIK
IEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgWyBGYWlsdXJlIF0KIEJ1Zyh0
ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sIFsgV29udEZpeCBdCitCdWcodGVzdCkg
ZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCBbIExlYWsgXQogQnVnKHRlc3QpIGZhaWx1cmVz
L2V4cGVjdGVkL21pc3NpbmdfaW1hZ2UuaHRtbCBbIFJlYmFzZWxpbmUgTWlzc2luZyBdCiBCdWco
dGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCBbIFdvbnRGaXggXQog
QnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgWyBXb250Rml4IE1hYyBdCkBA
IC04OSw2ICs5MSw3IEBAIGNsYXNzIEJhc2ljVGVzdHMoQmFzZSk6CiAgICAgICAgIHNlbGYucGFy
c2VfZXhwKHNlbGYuZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucygpKQogICAgICAgICBzZWxmLmFzc2Vy
dF9leHAoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsIEZBSUwpCiAgICAgICAgIHNlbGYu
YXNzZXJ0X2V4cCgnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCcsIFBBU1Mp
CisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJywg
UEFTUykKICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdwYXNzZXMvdGV4dC5odG1sJywgUEFTUykK
ICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sJywg
UEFTUykKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bW9kZWxzL3Rlc3RfZmFpbHVyZXMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlcy5weQppbmRleCA3YWViOGNmNzNjZjViZTZiM2I5ZWY2
NmI1ZDI0ODFjYmQyOWIwYmE4Li5mODg5N2IzYTY3NDk1ZmI4ZjhjNzFmMzFkZGE5NzRlMmRmMTc1
YmNmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9mYWlsdXJlcy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlcy5weQpAQCAtNTksNiArNTksOCBAQCBkZWYgZGV0ZXJt
aW5lX3Jlc3VsdF90eXBlKGZhaWx1cmVfbGlzdCk6CiAgICAgICAgIHJldHVybiB0ZXN0X2V4cGVj
dGF0aW9ucy5USU1FT1VUCiAgICAgZWxpZiBGYWlsdXJlRWFybHlFeGl0IGluIGZhaWx1cmVfdHlw
ZXM6CiAgICAgICAgIHJldHVybiB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQCisgICAgZWxpZiBGYWls
dXJlRG9jdW1lbnRMZWFrIGluIGZhaWx1cmVfdHlwZXM6CisgICAgICAgIHJldHVybiB0ZXN0X2V4
cGVjdGF0aW9ucy5MRUFLCiAgICAgZWxpZiAoRmFpbHVyZU1pc3NpbmdSZXN1bHQgaW4gZmFpbHVy
ZV90eXBlcyBvcgogICAgICAgICAgIEZhaWx1cmVNaXNzaW5nSW1hZ2UgaW4gZmFpbHVyZV90eXBl
cyBvcgogICAgICAgICAgIEZhaWx1cmVNaXNzaW5nSW1hZ2VIYXNoIGluIGZhaWx1cmVfdHlwZXMg
b3IKQEAgLTE2MCw2ICsxNjIsMjMgQEAgY2xhc3MgRmFpbHVyZUNyYXNoKFRlc3RGYWlsdXJlKToK
ICAgICAgICAgd3JpdGVyLndyaXRlX2NyYXNoX2xvZyhjcmFzaGVkX2RyaXZlcl9vdXRwdXQuY3Jh
c2hfbG9nKQogCiAKK2NsYXNzIEZhaWx1cmVMZWFrKFRlc3RGYWlsdXJlKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgbGVha2VkX2RvY3VtZW50X3VybHMpOgorICAgICAgICBzdXBlcihGYWlsdXJl
TGVhaywgc2VsZikuX19pbml0X18oKQorCisgICAgZGVmIG1lc3NhZ2Uoc2VsZik6CisgICAgICAg
IHJldHVybiAibGVhayIKKworCitjbGFzcyBGYWlsdXJlRG9jdW1lbnRMZWFrKEZhaWx1cmVMZWFr
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbGVha2VkX2RvY3VtZW50X3VybHMpOgorICAgICAg
ICBzdXBlcihGYWlsdXJlRG9jdW1lbnRMZWFrLCBzZWxmKS5fX2luaXRfXygpCisgICAgICAgIHNl
bGYubGVha2VkX2RvY3VtZW50X3VybHMgPSBsZWFrZWRfZG9jdW1lbnRfdXJscworCisgICAgZGVm
IG1lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJldHVybiAidGVzdCBsZWFrZWQgZG9jdW1lbnQlcyAl
cyIgJSAoInMiIGlmIGxlbihzZWxmLmxlYWtlZF9kb2N1bWVudF91cmxzKSBlbHNlICIiLCAnLCAn
LmpvaW4oc2VsZi5sZWFrZWRfZG9jdW1lbnRfdXJscykpCisKKwogY2xhc3MgRmFpbHVyZU1pc3Np
bmdSZXN1bHQoRmFpbHVyZVRleHQpOgogICAgIGRlZiBtZXNzYWdlKHNlbGYpOgogICAgICAgICBy
ZXR1cm4gIi1leHBlY3RlZC50eHQgd2FzIG1pc3NpbmciCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5weQppbmRl
eCA4MmUxZmIyMTE3MWYzYTJlNjUxNWZjNzEwYWQ0N2I5N2YxNGE5MjNkLi45MjJhOTZlMzNkYTg0
MmE2OWMwYzMyODlkZTYyMDAyMTIxYmUwYjRlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3Jlc3VsdHMucHkKQEAgLTY4
LDYgKzY4LDEyIEBAIGNsYXNzIFRlc3RSZXN1bHQob2JqZWN0KToKICAgICBkZWYgX19oYXNoX18o
c2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnRlc3RfbmFtZS5fX2hhc2hfXygpCiAKKyAgICBk
ZWYgY29udmVydF90b19mYWlsdXJlKHNlbGYsIGZhaWx1cmVfcmVzdWx0KToKKyAgICAgICAgaWYg
c2VsZi50eXBlIGlzIGZhaWx1cmVfcmVzdWx0LnR5cGU6CisgICAgICAgICAgICByZXR1cm4KKyAg
ICAgICAgc2VsZi5mYWlsdXJlcy5leHRlbmQoZmFpbHVyZV9yZXN1bHQuZmFpbHVyZXMpCisgICAg
ICAgIHNlbGYudHlwZSA9IHRlc3RfZmFpbHVyZXMuZGV0ZXJtaW5lX3Jlc3VsdF90eXBlKHNlbGYu
ZmFpbHVyZXMpCisKICAgICBkZWYgaGFzX2ZhaWx1cmVfbWF0Y2hpbmdfdHlwZXMoc2VsZiwgKmZh
aWx1cmVfY2xhc3Nlcyk6CiAgICAgICAgIGZvciBmYWlsdXJlIGluIHNlbGYuZmFpbHVyZXM6CiAg
ICAgICAgICAgICBpZiB0eXBlKGZhaWx1cmUpIGluIGZhaWx1cmVfY2xhc3NlczoKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9y
ZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rl
c3RfcnVuX3Jlc3VsdHMucHkKaW5kZXggNTAyMWEyZmYzZTg0OGE2OThmYTNkYmFhZWNiYzI3MmYw
NWQ1NjEyNC4uMTk3NTIwZDAzMWY4OTc2YjNmZTQyMGM1MTQ5NWU3YjA3NDg5OGUxOSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVu
X3Jlc3VsdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHkKQEAgLTkzLDYgKzkzLDM5IEBAIGNsYXNzIFRlc3RSdW5S
ZXN1bHRzKG9iamVjdCk6CiAgICAgICAgIGlmIHRlc3RfaXNfc2xvdzoKICAgICAgICAgICAgIHNl
bGYuc2xvd190ZXN0cy5hZGQodGVzdF9yZXN1bHQudGVzdF9uYW1lKQogCisgICAgZGVmIGNoYW5n
ZV9yZXN1bHRfdG9fZmFpbHVyZShzZWxmLCBleGlzdGluZ19yZXN1bHQsIG5ld19yZXN1bHQsIGV4
aXN0aW5nX2V4cGVjdGVkLCBuZXdfZXhwZWN0ZWQpOgorICAgICAgICBhc3NlcnQgZXhpc3Rpbmdf
cmVzdWx0LnRlc3RfbmFtZSA9PSBuZXdfcmVzdWx0LnRlc3RfbmFtZQorICAgICAgICBpZiBleGlz
dGluZ19yZXN1bHQudHlwZSBpcyBuZXdfcmVzdWx0LnR5cGU6CisgICAgICAgICAgICByZXR1cm4K
KworICAgICAgICBzZWxmLnRlc3RzX2J5X2V4cGVjdGF0aW9uW2V4aXN0aW5nX3Jlc3VsdC50eXBl
XS5yZW1vdmUoZXhpc3RpbmdfcmVzdWx0LnRlc3RfbmFtZSkKKyAgICAgICAgc2VsZi50ZXN0c19i
eV9leHBlY3RhdGlvbltuZXdfcmVzdWx0LnR5cGVdLmFkZChuZXdfcmVzdWx0LnRlc3RfbmFtZSkK
KworICAgICAgICBoYWRfZmFpbHVyZXMgPSBsZW4oZXhpc3RpbmdfcmVzdWx0LmZhaWx1cmVzKSA+
IDAKKworICAgICAgICBleGlzdGluZ19yZXN1bHQuY29udmVydF90b19mYWlsdXJlKG5ld19yZXN1
bHQpCisKKyAgICAgICAgaWYgbm90IGhhZF9mYWlsdXJlcyBhbmQgbGVuKGV4aXN0aW5nX3Jlc3Vs
dC5mYWlsdXJlcyk6CisgICAgICAgICAgICBzZWxmLnRvdGFsX2ZhaWx1cmVzICs9IDEKKworICAg
ICAgICBpZiBsZW4oZXhpc3RpbmdfcmVzdWx0LmZhaWx1cmVzKToKKyAgICAgICAgICAgIHNlbGYu
ZmFpbHVyZXNfYnlfbmFtZVtleGlzdGluZ19yZXN1bHQudGVzdF9uYW1lXSA9IGV4aXN0aW5nX3Jl
c3VsdC5mYWlsdXJlcworCisgICAgICAgIGlmIG5vdCBleGlzdGluZ19leHBlY3RlZCBhbmQgbmV3
X2V4cGVjdGVkOgorICAgICAgICAgICAgIyB0ZXN0IGNoYW5nZWQgZnJvbSB1bmV4cGVjdGVkIHRv
IGV4cGVjdGVkCisgICAgICAgICAgICBzZWxmLmV4cGVjdGVkICs9IDEKKyAgICAgICAgICAgIHNl
bGYudW5leHBlY3RlZF9yZXN1bHRzX2J5X25hbWUucG9wKGV4aXN0aW5nX3Jlc3VsdC50ZXN0X25h
bWUsIE5vbmUpCisgICAgICAgICAgICBzZWxmLnVuZXhwZWN0ZWQgLT0gMQorICAgICAgICAgICAg
aWYgaGFkX2ZhaWx1cmVzOgorICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9mYWlsdXJl
cyAtPSAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIHRlc3QgY2hhbmdlZCBmcm9tIGV4
cGVjdGVkIHRvIHVuZXhwZWN0ZWQKKyAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWQgLT0gMQorICAg
ICAgICAgICAgc2VsZi51bmV4cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZVtleGlzdGluZ19yZXN1bHQu
dGVzdF9uYW1lXSA9IGV4aXN0aW5nX3Jlc3VsdAorICAgICAgICAgICAgc2VsZi51bmV4cGVjdGVk
ICs9IDEKKyAgICAgICAgICAgIGlmIGxlbihleGlzdGluZ19yZXN1bHQuZmFpbHVyZXMpOgorICAg
ICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9mYWlsdXJlcyArPSAxCisKICAgICBkZWYgbWVy
Z2Uoc2VsZiwgdGVzdF9ydW5fcmVzdWx0cyk6CiAgICAgICAgIGlmIG5vdCB0ZXN0X3J1bl9yZXN1
bHRzOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYKQEAgLTEzMiw2ICsxNjUsNyBAQCBjbGFzcyBS
dW5EZXRhaWxzKG9iamVjdCk6CiAKIGRlZiBfaW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMoZmFpbHVy
ZXMpOgogICAgIHRlc3RfZGljdCA9IHt9CisKICAgICBmYWlsdXJlX3R5cGVzID0gW3R5cGUoZmFp
bHVyZSkgZm9yIGZhaWx1cmUgaW4gZmFpbHVyZXNdCiAgICAgIyBGSVhNRTogZ2V0IHJpZCBvZiBh
bGwgdGhpcyBpc18qIHZhbHVlcyBvbmNlIHRoZXJlIGlzIGEgMToxIG1hcCBiZXR3ZWVuCiAgICAg
IyBUZXN0RmFpbHVyZSB0eXBlIGFuZCB0ZXN0X2V4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTi4KQEAg
LTE0NCw2ICsxNzgsMTQgQEAgZGVmIF9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhmYWlsdXJlcyk6
CiAgICAgaWYgdGVzdF9mYWlsdXJlcy5GYWlsdXJlTWlzc2luZ0ltYWdlIGluIGZhaWx1cmVfdHlw
ZXMgb3IgdGVzdF9mYWlsdXJlcy5GYWlsdXJlTWlzc2luZ0ltYWdlSGFzaCBpbiBmYWlsdXJlX3R5
cGVzOgogICAgICAgICB0ZXN0X2RpY3RbJ2lzX21pc3NpbmdfaW1hZ2UnXSA9IFRydWUKIAorICAg
IGlmIHRlc3RfZmFpbHVyZXMuRmFpbHVyZURvY3VtZW50TGVhayBpbiBmYWlsdXJlX3R5cGVzOgor
ICAgICAgICBsZWFrcyA9IFtdCisgICAgICAgIGZvciBmYWlsdXJlIGluIGZhaWx1cmVzOgorICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShmYWlsdXJlLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVEb2N1
bWVudExlYWspOgorICAgICAgICAgICAgICAgIGZvciB1cmwgaW4gZmFpbHVyZS5sZWFrZWRfZG9j
dW1lbnRfdXJsczoKKyAgICAgICAgICAgICAgICAgICAgbGVha3MuYXBwZW5kKHsiZG9jdW1lbnQi
OiB1cmx9KQorICAgICAgICB0ZXN0X2RpY3RbJ2xlYWtzJ10gPSBsZWFrcworCiAgICAgaWYgJ2lt
YWdlX2RpZmZfcGVyY2VudCcgbm90IGluIHRlc3RfZGljdDoKICAgICAgICAgZm9yIGZhaWx1cmUg
aW4gZmFpbHVyZXM6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGZhaWx1cmUsIHRlc3RfZmFp
bHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKSBvciBpc2luc3RhbmNlKGZhaWx1cmUsIHRl
c3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaCk6CkBAIC0xNzgsOCArMjIwLDggQEAg
ZGVmIHN1bW1hcml6ZV9yZXN1bHRzKHBvcnRfb2JqLCBleHBlY3RhdGlvbnMsIGluaXRpYWxfcmVz
dWx0cywgcmV0cnlfcmVzdWx0cywgZW4KICAgICBudW1fbWlzc2luZyA9IDAKICAgICBudW1fcmVn
cmVzc2lvbnMgPSAwCiAgICAga2V5d29yZHMgPSB7fQotICAgIGZvciBleHBlY2F0aW9uX3N0cmlu
ZywgZXhwZWN0YXRpb25fZW51bSBpbiB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRpb25z
LkVYUEVDVEFUSU9OUy5pdGVyaXRlbXMoKToKLSAgICAgICAga2V5d29yZHNbZXhwZWN0YXRpb25f
ZW51bV0gPSBleHBlY2F0aW9uX3N0cmluZy51cHBlcigpCisgICAgZm9yIGV4cGVjdGF0aW9uX3N0
cmluZywgZXhwZWN0YXRpb25fZW51bSBpbiB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRp
b25zLkVYUEVDVEFUSU9OUy5pdGVyaXRlbXMoKToKKyAgICAgICAga2V5d29yZHNbZXhwZWN0YXRp
b25fZW51bV0gPSBleHBlY3RhdGlvbl9zdHJpbmcudXBwZXIoKQogCiAgICAgZm9yIG1vZGlmaWVy
X3N0cmluZywgbW9kaWZpZXJfZW51bSBpbiB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRp
b25zLk1PRElGSUVSUy5pdGVyaXRlbXMoKToKICAgICAgICAga2V5d29yZHNbbW9kaWZpZXJfZW51
bV0gPSBtb2RpZmllcl9zdHJpbmcudXBwZXIoKQpAQCAtMjI1LDYgKzI2NywxMCBAQCBkZWYgc3Vt
bWFyaXplX3Jlc3VsdHMocG9ydF9vYmosIGV4cGVjdGF0aW9ucywgaW5pdGlhbF9yZXN1bHRzLCBy
ZXRyeV9yZXN1bHRzLCBlbgogICAgICAgICAgICAgaWYgdGVzdF9uYW1lIGluIGluaXRpYWxfcmVz
dWx0cy51bmV4cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZToKICAgICAgICAgICAgICAgICBudW1fbWlz
c2luZyArPSAxCiAgICAgICAgICAgICAgICAgdGVzdF9kaWN0WydyZXBvcnQnXSA9ICdNSVNTSU5H
JworICAgICAgICBlbGlmIHJlc3VsdF90eXBlID09IHRlc3RfZXhwZWN0YXRpb25zLkxFQUs6Cisg
ICAgICAgICAgICBpZiB0ZXN0X25hbWUgaW4gaW5pdGlhbF9yZXN1bHRzLnVuZXhwZWN0ZWRfcmVz
dWx0c19ieV9uYW1lOgorICAgICAgICAgICAgICAgIG51bV9yZWdyZXNzaW9ucyArPSAxCisgICAg
ICAgICAgICAgICAgdGVzdF9kaWN0WydyZXBvcnQnXSA9ICdSRUdSRVNTSU9OJwogICAgICAgICBl
bGlmIHRlc3RfbmFtZSBpbiBpbml0aWFsX3Jlc3VsdHMudW5leHBlY3RlZF9yZXN1bHRzX2J5X25h
bWU6CiAgICAgICAgICAgICBpZiByZXRyeV9yZXN1bHRzIGFuZCB0ZXN0X25hbWUgbm90IGluIHJl
dHJ5X3Jlc3VsdHMudW5leHBlY3RlZF9yZXN1bHRzX2J5X25hbWU6CiAgICAgICAgICAgICAgICAg
YWN0dWFsLmV4dGVuZChleHBlY3RhdGlvbnMubW9kZWwoKS5nZXRfZXhwZWN0YXRpb25zX3N0cmlu
Zyh0ZXN0X25hbWUpLnNwbGl0KCIgIikpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0c191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRz
X3VuaXR0ZXN0LnB5CmluZGV4IDc4ZjczOTdhMDliNDczOGNiZjljZmQ3MGYyYTdiMDNkMjUwNDUy
MDkuLmNiZGExOTk4MDY1YTNjN2I3Yzk3Njg5MGMwMzNkYTQxZTg1NmMyYjkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1
bHRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L21vZGVscy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC00MywxMiArNDMsMTQgQEAg
ZGVmIGdldF9yZXN1bHQodGVzdF9uYW1lLCByZXN1bHRfdHlwZT10ZXN0X2V4cGVjdGF0aW9ucy5Q
QVNTLCBydW5fdGltZT0wKToKICAgICAgICAgZmFpbHVyZXMgPSBbdGVzdF9mYWlsdXJlcy5GYWls
dXJlQXVkaW9NaXNtYXRjaCgpXQogICAgIGVsaWYgcmVzdWx0X3R5cGUgPT0gdGVzdF9leHBlY3Rh
dGlvbnMuQ1JBU0g6CiAgICAgICAgIGZhaWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZUNy
YXNoKCldCisgICAgZWxpZiByZXN1bHRfdHlwZSA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5MRUFLOgor
ICAgICAgICBmYWlsdXJlcyA9IFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVEb2N1bWVudExlYWsoWydo
dHRwOi8vbG9jYWxob3N0OjgwMDAvZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJ10pXQogICAg
IHJldHVybiB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCh0ZXN0X25hbWUsIGZhaWx1cmVzPWZhaWx1
cmVzLCB0ZXN0X3J1bl90aW1lPXJ1bl90aW1lKQogCiAKIGRlZiBydW5fcmVzdWx0cyhwb3J0KToK
ICAgICB0ZXN0cyA9IFsncGFzc2VzL3RleHQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC90aW1l
b3V0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsICdmYWlsdXJlcy9leHBl
Y3RlZC9oYW5nLmh0bWwnLAotICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5o
dG1sJ10KKyAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcsICdmYWls
dXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnXQogICAgIGV4cGVjdGF0aW9ucyA9IHRlc3RfZXhwZWN0
YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMocG9ydCwgdGVzdHMpCiAgICAgZXhwZWN0YXRpb25zLnBh
cnNlX2FsbF9leHBlY3RhdGlvbnMoKQogICAgIHJldHVybiB0ZXN0X3J1bl9yZXN1bHRzLlRlc3RS
dW5SZXN1bHRzKGV4cGVjdGF0aW9ucywgbGVuKHRlc3RzKSkKQEAgLTYzLDE2ICs2NSwxOSBAQCBk
ZWYgc3VtbWFyaXplZF9yZXN1bHRzKHBvcnQsIGV4cGVjdGVkLCBwYXNzaW5nLCBmbGFreSwgaW5j
bHVkZV9wYXNzZXM9RmFsc2UpOgogICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1
bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5BVURJ
TyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQo
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgIGluaXRpYWxf
cmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsIHRl
c3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAg
aW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0
bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5MRUFLKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAg
ICBlbGlmIHBhc3Npbmc6CiAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgn
cGFzc2VzL3RleHQuaHRtbCcpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogICAgICAgICBpbml0
aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwn
KSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChn
ZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgZXhwZWN0ZWQsIHRl
c3RfaXNfc2xvdykKICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWls
dXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAg
ICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVh
ay5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgZWxzZToKICAgICAgICAgaW5p
dGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBl
Y3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgIGluaXRp
YWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcs
IHRlc3RfZXhwZWN0YXRpb25zLkFVRElPKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAgICAg
ICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1l
b3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Ns
b3cpCiAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhw
ZWN0ZWQvY3Jhc2guaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCwg
dGVzdF9pc19zbG93KQorICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2Zh
aWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhw
ZWN0ZWQsIHRlc3RfaXNfc2xvdykKIAogICAgICAgICAjIHdlIG9ubHkgbGlzdCBoYW5nLmh0bWwg
aGVyZSwgc2luY2Ugbm9ybWFsbHkgdGhpcyBpcyBXb250Rml4CiAgICAgICAgIGluaXRpYWxfcmVz
dWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvaGFuZy5odG1sJywgdGVzdF9l
eHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCkBAIC04Miw2ICs4
Nyw3IEBAIGRlZiBzdW1tYXJpemVkX3Jlc3VsdHMocG9ydCwgZXhwZWN0ZWQsIHBhc3NpbmcsIGZs
YWt5LCBpbmNsdWRlX3Bhc3Nlcz1GYWxzZSk6CiAgICAgICAgIHJldHJ5X3Jlc3VsdHMuYWRkKGdl
dF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQogICAgICAg
ICByZXRyeV9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0
Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQogICAgICAgICByZXRyeV9yZXN1bHRzLmFkZChn
ZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIFRydWUsIHRlc3RfaXNf
c2xvdykKKyAgICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhw
ZWN0ZWQvbGVhay5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKICAgICBlbHNlOgogICAgICAg
ICByZXRyeV9yZXN1bHRzID0gTm9uZQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCBjZWQ2YjlkYjg4YjM5
ZDIwNmI5YTg4ZjFhMjJiZjhiNDljYmIyMjUwLi40ZThlMzE1NzE5MDY3OTUyZjNmYzNlYWNjMDBh
NjVmMWZhZGU1YjNmIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTI5MCw2ICsyOTAsNyBAQCBkZWYgcGFy
c2VfYXJncyhhcmdzKToKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZGlzcGxheS1z
ZXJ2ZXInLCBjaG9pY2VzPVsneHZmYicsICd4b3JnJywgJ3dlc3RvbicsICd3YXlsYW5kJ10sIGRl
ZmF1bHQ9J3h2ZmInLAogICAgICAgICAgICAgaGVscD0nInh2ZmIiOiBVc2UgYSB2aXJ0dWFsaXpl
ZCBYMTEgc2VydmVyLiAieG9yZyI6IFVzZSB0aGUgY3VycmVudCBYMTEgc2Vzc2lvbi4gJwogICAg
ICAgICAgICAgICAgICAnIndlc3RvbiI6IFVzZSBhIHZpcnR1YWxpemVkIFdlc3RvbiBzZXJ2ZXIu
ICJ3YXlsYW5kIjogVXNlIHRoZSBjdXJyZW50IHdheWxhbmQgc2Vzc2lvbi4nKSwKKyAgICAgICAg
b3B0cGFyc2UubWFrZV9vcHRpb24oIi0td29ybGQtbGVha3MiLCBhY3Rpb249InN0b3JlX3RydWUi
LCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJDaGVjayBmb3Igd29ybGQgbGVha3MgKGN1cnJlbnRseSwg
b25seSBkb2N1bWVudHMpLiBEaWZmZXJzIGZyb20gLS1sZWFrcyBpbiB0aGF0IHRoaXMgdXNlcyBp
bnRlcm5hbCBpbnN0cnVtZW50YXRpb24sIHJhdGhlciB0aGFuIGV4dGVybmFsIHRvb2xzLiIpLAog
ICAgIF0pKQogCiAgICAgb3B0aW9uX2dyb3VwX2RlZmluaXRpb25zLmFwcGVuZCgoImlPUyBPcHRp
b25zIiwgWwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQppbmRl
eCA3YWIzMjdhZWI3MGVhYjJmYTdjOTk4ODA4ZTZhMzNlZGI5NDVlZDIyLi5mMDRjYjU4Y2Q2ODBh
ZTEzZTgwNmZlM2VkMmI2OGU0NTA2ZDRlZWQ1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
X2ludGVncmF0aW9udGVzdC5weQpAQCAtNjcsNiArNjcsMTAgQEAgZGVmIHBhcnNlX2FyZ3MoZXh0
cmFfYXJncz1Ob25lLCB0ZXN0c19pbmNsdWRlZD1GYWxzZSwgbmV3X3Jlc3VsdHM9RmFsc2UsIHBy
aW50X24KIAogICAgIGlmIG5vdCAnLS1jaGlsZC1wcm9jZXNzZXMnIGluIGV4dHJhX2FyZ3M6CiAg
ICAgICAgIGFyZ3MuZXh0ZW5kKFsnLS1jaGlsZC1wcm9jZXNzZXMnLCAxXSkKKworICAgIGlmIG5v
dCAnLS13b3JsZC1sZWFrcycgaW4gZXh0cmFfYXJnczoKKyAgICAgICAgYXJncy5hcHBlbmQoJy0t
d29ybGQtbGVha3MnKQorCiAgICAgYXJncy5leHRlbmQoZXh0cmFfYXJncykKICAgICBpZiBub3Qg
dGVzdHNfaW5jbHVkZWQ6CiAgICAgICAgICMgV2UgdXNlIHRoZSBnbG9iIHRvIHRlc3QgdGhhdCBn
bG9iYmluZyB3b3Jrcy4KQEAgLTMzMiw2ICszMzYsOSBAQCBjbGFzcyBSdW5UZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgIGRlZiB0ZXN0X2djX2JldHdlZW5f
dGVzdHMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwYXNzaW5nX3J1bihbJy0tZ2Mt
YmV0d2Vlbi10ZXN0cyddKSkKIAorICAgIGRlZiB0ZXN0X2NoZWNrX2Zvcl93b3JsZF9sZWFrcyhz
ZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVuKFsnLS13b3JsZC1sZWFr
cyddKSkKKwogICAgIGRlZiB0ZXN0X2NvbXBsZXhfdGV4dChzZWxmKToKICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHBhc3NpbmdfcnVuKFsnLS1jb21wbGV4LXRleHQnXSkpCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvZHJpdmVyLnB5CmluZGV4IGVhMjg3ZmUwMDBiMjc3NWQxMGQyNzkyMzc0MjRk
M2FlM2U5ODlmYmQuLmE4MDNhZGI4MzdmOTcwY2FkODRhYTUzZWQ4ZWNmODBmY2YxN2U5NDMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQpAQCAtMzQsNiArMzQsNyBAQCBpbXBv
cnQgc2hsZXgKIGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiBpbXBvcnQgb3MKK2Zyb20gY29sbGVj
dGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CiAKIGZyb20gb3MucGF0aCBpbXBvcnQgbm9ybXBhdGgK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgcGF0aApAQCAtMTE5LDYgKzEyMCwx
MyBAQCBjbGFzcyBEcml2ZXJPdXRwdXQob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuZXJyb3Ig
PSByZS5zdWIocGF0dGVyblswXSwgcGF0dGVyblsxXSwgc2VsZi5lcnJvcikKIAogCitjbGFzcyBE
cml2ZXJQb3N0VGVzdE91dHB1dChvYmplY3QpOgorICAgICIiIkdyb3VwcyBkYXRhIGNvbGxlY3Rl
ZCBmb3IgYSBzZXQgb2YgdGVzdHMsIGNvbGxlY3RlZCBhZnRlciBhbGwgdGhvc2UgdGVzdHNlIGhh
dmUgcnVuCisgICAgKGZvciBleGFtcGxlLCBkYXRhIGFib3V0IGxlYWtlZCBvYmplY3RzKSIiIgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3b3JsZF9sZWFrc19kaWN0KToKKyAgICAgICAgc2VsZi53
b3JsZF9sZWFrc19kaWN0ID0gd29ybGRfbGVha3NfZGljdAorCisKIGNsYXNzIERyaXZlcihvYmpl
Y3QpOgogICAgICIiIm9iamVjdCBmb3IgcnVubmluZyB0ZXN0KHMpIHVzaW5nIER1bXBSZW5kZXJU
cmVlL1dlYktpdFRlc3RSdW5uZXIuIiIiCiAKQEAgLTI0Miw2ICsyNTAsMzggQEAgY2xhc3MgRHJp
dmVyKG9iamVjdCk6CiAgICAgICAgICAgICBjcmFzaGVkX3Byb2Nlc3NfbmFtZT1zZWxmLl9jcmFz
aGVkX3Byb2Nlc3NfbmFtZSwKICAgICAgICAgICAgIGNyYXNoZWRfcGlkPXNlbGYuX2NyYXNoZWRf
cGlkLCBjcmFzaF9sb2c9Y3Jhc2hfbG9nLCBwaWQ9cGlkKQogCisgICAgZGVmIGRvX3Bvc3RfdGVz
dHNfd29yayhzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuX3BvcnQuZ2V0X29wdGlvbignd29y
bGRfbGVha3MnKToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgaWYgbm90IHNl
bGYuX3NlcnZlcl9wcm9jZXNzOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBf
bG9nLmRlYnVnKCdDaGVja2luZyBmb3Igd29ybGQgbGVha3MuLi4nKQorICAgICAgICBzZWxmLl9z
ZXJ2ZXJfcHJvY2Vzcy53cml0ZSgnI0NIRUNLIEZPUiBXT1JMRCBMRUFLU1xuJykKKyAgICAgICAg
ZGVhZGxpbmUgPSB0aW1lLnRpbWUoKSArIDIwCisgICAgICAgIGJsb2NrID0gc2VsZi5fcmVhZF9i
bG9jayhkZWFkbGluZSwgJycsIHdhaXRfZm9yX3N0ZGVycl9lb2Y9VHJ1ZSkKKworICAgICAgICBf
bG9nLmRlYnVnKCdXb3JsZCBsZWFrIHJlc3VsdDogJXMnICUgKGJsb2NrLmRlY29kZWRfY29udGVu
dCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BhcnNlX3dvcmxkX2xlYWtzX291dHB1dChibG9j
ay5kZWNvZGVkX2NvbnRlbnQpCisKKyAgICBkZWYgX3BhcnNlX3dvcmxkX2xlYWtzX291dHB1dChz
ZWxmLCBvdXRwdXQpOgorICAgICAgICB0ZXN0c193aXRoX3dvcmxkX2xlYWtzID0gZGVmYXVsdGRp
Y3QobGlzdCkKKworICAgICAgICBsYXN0X3Rlc3QgPSBOb25lCisgICAgICAgIGZvciBsaW5lIGlu
IG91dHB1dC5zcGxpdGxpbmVzKCk6CisgICAgICAgICAgICBtID0gcmUubWF0Y2goJ15URVNUOiAo
LispJCcsIGxpbmUpCisgICAgICAgICAgICBpZiBtOgorICAgICAgICAgICAgICAgIGxhc3RfdGVz
dCA9IHNlbGYudXJpX3RvX3Rlc3QobS5ncm91cCgxKSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRj
aCgnXkFCQU5ET05FRCBET0NVTUVOVDogKC4rKSQnLCBsaW5lKQorICAgICAgICAgICAgaWYgbToK
KyAgICAgICAgICAgICAgICBsZWFrZWRfZG9jdW1lbnRfdXJsID0gbS5ncm91cCgxKQorICAgICAg
ICAgICAgICAgIGlmIGxhc3RfdGVzdDoKKyAgICAgICAgICAgICAgICAgICAgdGVzdHNfd2l0aF93
b3JsZF9sZWFrc1tsYXN0X3Rlc3RdLmFwcGVuZChsZWFrZWRfZG9jdW1lbnRfdXJsKQorCisgICAg
ICAgIHJldHVybiBEcml2ZXJQb3N0VGVzdE91dHB1dCh0ZXN0c193aXRoX3dvcmxkX2xlYWtzKQor
CiAgICAgZGVmIF9nZXRfY3Jhc2hfbG9nKHNlbGYsIHN0ZG91dCwgc3RkZXJyLCBuZXdlcl90aGFu
KToKICAgICAgICAgcmV0dXJuIHNlbGYuX3BvcnQuX2dldF9jcmFzaF9sb2coc2VsZi5fY3Jhc2hl
ZF9wcm9jZXNzX25hbWUsIHNlbGYuX2NyYXNoZWRfcGlkLCBzdGRvdXQsIHN0ZGVyciwgbmV3ZXJf
dGhhbiwgdGFyZ2V0X2hvc3Q9c2VsZi5fdGFyZ2V0X2hvc3QpCiAKQEAgLTQzMiw2ICs0NzIsOCBA
QCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tYWNjZWxl
cmF0ZWQtZHJhd2luZycpCiAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigncmVtb3Rl
X2xheWVyX3RyZWUnKToKICAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tcmVtb3RlLWxheWVyLXRy
ZWUnKQorICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3dvcmxkX2xlYWtzJyk6Cisg
ICAgICAgICAgICBjbWQuYXBwZW5kKCctLXdvcmxkLWxlYWtzJykKICAgICAgICAgaWYgc2VsZi5f
cG9ydC5nZXRfb3B0aW9uKCd0aHJlYWRlZCcpOgogICAgICAgICAgICAgY21kLmFwcGVuZCgnLS10
aHJlYWRlZCcpCiAgICAgICAgIGlmIHNlbGYuX25vX3RpbWVvdXQ6CkBAIC03MDUsNiArNzQ3LDkg
QEAgY2xhc3MgRHJpdmVyUHJveHkob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gc2VsZi5fZHJp
dmVyLnJ1bl90ZXN0KGRyaXZlcl9pbnB1dCwgc3RvcF93aGVuX2RvbmUpCiAKKyAgICBkZWYgZG9f
cG9zdF90ZXN0c193b3JrKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZHJpdmVyLmRvX3Bv
c3RfdGVzdHNfd29yaygpCisKICAgICBkZWYgaGFzX2NyYXNoZWQoc2VsZik6CiAgICAgICAgIHJl
dHVybiBzZWxmLl9kcml2ZXIuaGFzX2NyYXNoZWQoKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvdGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC90
ZXN0LnB5CmluZGV4IGRmNWU2N2QwNjg4ODRiOGFhODRkMzUzMDU1MDljMDZiMzczZjJmYjYuLmYy
ZDZjNmZmY2MzNDMxOWM0NGIwNGU2ODYxMzYyOTdkYTI2YzBjZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC90ZXN0LnB5CkBAIC05NywxMiArOTcsMTIgQEAgY2xhc3MgVGVzdExpc3Qob2JqZWN0
KToKICMKICMgVGhlc2UgbnVtYmVycyBtYXkgbmVlZCB0byBiZSB1cGRhdGVkIHdoZW5ldmVyIHdl
IGFkZCBvciBkZWxldGUgdGVzdHMuCiAjCi1UT1RBTF9URVNUUyA9IDcyCitUT1RBTF9URVNUUyA9
IDc0CiBUT1RBTF9TS0lQUyA9IDkKLVRPVEFMX1JFVFJJRVMgPSAxNAorVE9UQUxfUkVUUklFUyA9
IDE1CiAKIFVORVhQRUNURURfUEFTU0VTID0gNwotVU5FWFBFQ1RFRF9GQUlMVVJFUyA9IDE3CitV
TkVYUEVDVEVEX0ZBSUxVUkVTID0gMTgKIAogCiBkZWYgdW5pdF90ZXN0X2xpc3QoKToKQEAgLTEx
NSw2ICsxMTUsNyBAQCBkZWYgdW5pdF90ZXN0X2xpc3QoKToKICAgICB0ZXN0cy5hZGQoJ2ZhaWx1
cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcsIHRpbWVvdXQ9VHJ1ZSkKICAgICB0ZXN0cy5hZGQo
J2ZhaWx1cmVzL2V4cGVjdGVkL2hhbmcuaHRtbCcsIGhhbmc9VHJ1ZSkKICAgICB0ZXN0cy5hZGQo
J2ZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfdGV4dC5odG1sJywgZXhwZWN0ZWRfdGV4dD1Ob25l
KQorICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJywgbGVhaz1UcnVl
KQogICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCcsCiAgICAgICAg
ICAgICAgIGFjdHVhbF9pbWFnZT0naW1hZ2VfZmFpbC1wbmd0RVh0Y2hlY2tzdW1ceDAwY2hlY2tz
dW1fZmFpbCcsCiAgICAgICAgICAgICAgIGV4cGVjdGVkX2ltYWdlPSdpbWFnZS1wbmd0RVh0Y2hl
Y2tzdW1ceDAwY2hlY2tzdW0tcG5nJykKQEAgLTE3Niw2ICsxNzcsNyBAQCBsYXllciBhdCAoMCww
KSBzaXplIDgwMHgzNAogICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvdW5leHBlY3RlZC9za2lwX3Bh
c3MuaHRtbCcpCiAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy91bmV4cGVjdGVkL3RleHQuaHRtbCcs
IGFjdHVhbF90ZXh0PSd0ZXh0X2ZhaWwtdHh0JykKICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL3Vu
ZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGltZW91dD1UcnVlKQorICAgIHRlc3RzLmFkZCgnZmFp
bHVyZXMvdW5leHBlY3RlZC9sZWFrLmh0bWwnLCBsZWFrPVRydWUpCiAgICAgdGVzdHMuYWRkKCdo
dHRwL3Rlc3RzL3Bhc3Nlcy90ZXh0Lmh0bWwnKQogICAgIHRlc3RzLmFkZCgnaHR0cC90ZXN0cy9w
YXNzZXMvaW1hZ2UuaHRtbCcpCiAgICAgdGVzdHMuYWRkKCdodHRwL3Rlc3RzL3NzbC90ZXh0Lmh0
bWwnKQpAQCAtMjgwLDYgKzI4Miw3IEBAIGRlZiBhZGRfdW5pdF90ZXN0c190b19tb2NrX2ZpbGVz
eXN0ZW0oZmlsZXN5c3RlbSk6CiAgICAgaWYgbm90IGZpbGVzeXN0ZW0uZXhpc3RzKExBWU9VVF9U
RVNUX0RJUiArICcvcGxhdGZvcm0vdGVzdC9UZXN0RXhwZWN0YXRpb25zJyk6CiAgICAgICAgIGZp
bGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKExBWU9VVF9URVNUX0RJUiArICcvcGxhdGZvcm0vdGVz
dC9UZXN0RXhwZWN0YXRpb25zJywgIiIiCiBCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvY3Jh
c2guaHRtbCBbIENyYXNoIF0KK0J1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwg
WyBMZWFrIF0KIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCiBCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCBbIEZh
aWx1cmUgXQogQnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KQEAgLTU5MSw1ICs1OTQsMTcgQEAgY2xhc3MgVGVzdERyaXZl
cihEcml2ZXIpOgogICAgICAgICAgICAgY3Jhc2hlZF9waWQ9Y3Jhc2hlZF9waWQsIGNyYXNoX2xv
Zz1jcmFzaF9sb2csCiAgICAgICAgICAgICB0ZXN0X3RpbWU9dGltZS50aW1lKCkgLSBzdGFydF90
aW1lLCB0aW1lb3V0PXRlc3QudGltZW91dCwgZXJyb3I9dGVzdC5lcnJvciwgcGlkPXNlbGYucGlk
KQogCisgICAgZGVmIGRvX3Bvc3RfdGVzdHNfd29yayhzZWxmKToKKyAgICAgICAgaWYgbm90IHNl
bGYuX3BvcnQuZ2V0X29wdGlvbignd29ybGRfbGVha3MnKToKKyAgICAgICAgICAgIHJldHVybiBO
b25lCisKKyAgICAgICAgdGVzdF93b3JsZF9sZWFrc19vdXRwdXQgPSAiIiJURVNUOiBmaWxlOi8v
L3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sCitB
QkFORE9ORUQgRE9DVU1FTlQ6IGZpbGU6Ly8vdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy8vZmFp
bHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sCitURVNUOiBmaWxlOi8vL3Rlc3QuY2hlY2tvdXQvTGF5
b3V0VGVzdHMvZmFpbHVyZXMvdW5leHBlY3RlZC9sZWFrLmh0bWwKK0FCQU5ET05FRCBET0NVTUVO
VDogZmlsZTovLy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzLy9mYWlsdXJlcy9leHBlY3RlZC9s
ZWFrLmh0bWwKK1RFU1Q6IGZpbGU6Ly8vdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9mYWlsdXJl
cy91bmV4cGVjdGVkL2xlYWsuaHRtbAorQUJBTkRPTkVEIERPQ1VNRU5UOiBmaWxlOi8vL3Rlc3Qu
Y2hlY2tvdXQvTGF5b3V0VGVzdHMvL2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWstc3ViZnJhbWUuaHRt
bCIiIgorICAgICAgICByZXR1cm4gc2VsZi5fcGFyc2Vfd29ybGRfbGVha3Nfb3V0cHV0KHRlc3Rf
d29ybGRfbGVha3Nfb3V0cHV0KQorCiAgICAgZGVmIHN0b3Aoc2VsZik6CiAgICAgICAgIHNlbGYu
c3RhcnRlZCA9IEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlv
bnMuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAppbmRleCBhNTE0NDBi
OTE4Nzc2YjU4YWQ2OGQ4ZGQ1ZjU4OTU2Y2MyNzY1MzEzLi45ZGQzN2IwMjhiNGE1YjRhYjRkYzMz
NzM0OTY3YmUwN2E3M2JhODY3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09w
dGlvbnMuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAKQEAgLTEz
NSw3ICsxMzUsNyBAQCBPcHRpb25zSGFuZGxlcjo6T3B0aW9uc0hhbmRsZXIoT3B0aW9ucyYgbykK
ICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tYWxsb3ctYW55LWNlcnRpZmljYXRlLWZv
ci1hbGxvd2VkLWhvc3RzIiwgIkFsbG93cyBhbnkgSFRUUFMgY2VydGlmaWNhdGUgZm9yIGFuIGFs
bG93ZWQgaG9zdC4iLCBoYW5kbGVPcHRpb25BbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxv
d2VkSG9zdHMpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tc2hvdy13ZWJ2aWV3
IiwgIlNob3cgdGhlIFdlYlZpZXcgZHVyaW5nIHRlc3QgcnVucyAoZm9yIGRlYnVnZ2luZykiLCBo
YW5kbGVPcHRpb25TaG93V2ViVmlldykpOwogICAgIG9wdGlvbkxpc3QuYXBwZW5kKE9wdGlvbigi
LS1zaG93LXRvdWNoZXMiLCAiU2hvdyB0aGUgdG91Y2hlcyBkdXJpbmcgdGVzdCBydW5zIChmb3Ig
ZGVidWdnaW5nKSIsIGhhbmRsZU9wdGlvblNob3dUb3VjaGVzKSk7Ci0gICAgb3B0aW9uTGlzdC5h
cHBlbmQoT3B0aW9uKCItLWNoZWNrLWZvci13b3JsZC1sZWFrcyIsICJDaGVjayBmb3IgbGVha3Mg
b2Ygd29ybGQgb2JqZWN0cyAoY3VycmVudGx5LCBkb2N1bWVudHMpIiwgaGFuZGxlT3B0aW9uQ2hl
Y2tGb3JXb3JsZExlYWtzKSk7CisgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLXdvcmxk
LWxlYWtzIiwgIkNoZWNrIGZvciBsZWFrcyBvZiB3b3JsZCBvYmplY3RzIChjdXJyZW50bHksIGRv
Y3VtZW50cykiLCBoYW5kbGVPcHRpb25DaGVja0ZvcldvcmxkTGVha3MpKTsKIAogICAgIG9wdGlv
bkxpc3QuYXBwZW5kKE9wdGlvbigwLCAwLCBoYW5kbGVPcHRpb25Vbm1hdGNoZWQpKTsKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNjhhNGQxMmY1MDY5
MmQwMDUwZTczNWI1NDY3ZmMwOWIwYzBkM2IzMS4uYjYzZGEwMThkMzU0ZTViNWI2N2EyMmFiMWE5
ZjM0ZGQyMDE2NDYwZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTk1MCw2ICs5NTAsOSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjp1cGRhdGVMaXZlRG9j
dW1lbnRzQWZ0ZXJUZXN0KCkKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2hlY2tGb3JXb3JsZExl
YWtzKCkKIHsKKyAgICBpZiAoIVRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmll
dygpKQorICAgICAgICByZXR1cm47CisKICAgICBBc3luY1Rhc2soW10oKSB7CiAgICAgICAgIC8v
IFRoaXMgcnVucyBhdCB0aGUgZW5kIG9mIGEgc2VyaWVzIG9mIHRlc3RzLiBJdCBjbGVhcnMgY2Fj
aGVzLCBydW5zIGEgR0MgYW5kIHRoZW4gZmV0Y2hlcyB0aGUgbGlzdCBvZiBkb2N1bWVudHMuCiAg
ICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkNoZWNrRm9yV29ybGRMZWFrcyIpKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAzM2UwMWM2YjI1NjVhOWRmOTY4MWUzZTU5Mzg4ZmUyMjM4MzNhZGVlLi41NTBmYWE4ZTlmODg1
YjNiYjYyZmEwNWMyODgyNjRmYTk1NTA1NjIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgt
MDgtMjggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAg
VGVhY2ggd2Via2l0cHkgaG93IHRvIGNoZWNrIGxlYWtzIGFuZCB0cmVhdCBsZWFrcyBhcyB0ZXN0
IGZhaWx1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODkwNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIFB1dCBzb21lIGZha2UgbGVha3MgaW4gZnVsbF9yZXN1bHRzLmpzb24sIGFuZCB1
cGRhdGUgcmVzdWx0cy5odG1sIHRvIHNob3cgYSB0YWJsZQorICAgICAgICBvZiBsZWFrcyB3aGVu
IHJlc3VsdHMgYXJlIGV4cGFuZGVkLgorCisgICAgICAgICogZmFzdC9oYXJuZXNzL2Z1bGxfcmVz
dWx0cy5qc29uOgorICAgICAgICAqIGZhc3QvaGFybmVzcy9yZXN1bHRzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2hhcm5lc3MvcmVzdWx0cy5odG1sOgorCiAyMDE4LTA4LTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXRNZWRpYVNlc3Np
b24gc2hvdWxkIGJlIEdDIGNvbGxlY3RhYmxlIHdoZW4gaXRzIGRvY3VtZW50IGlzIGJlaW5nIHN0
b3BwZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9mdWxsX3Jlc3VsdHMu
anNvbiBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9mdWxsX3Jlc3VsdHMuanNvbgppbmRleCAz
ZTg1ZDJhMDBjM2RkYmY2OWI2Y2FlZjEzMmFkYmQ1M2ZkOTUyMDZiLi4xMGY3Yjg1MWI5NzU0ZmJh
YzU5NjAyZGY5OGIxOWI0YmM2NzRhY2JhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hh
cm5lc3MvZnVsbF9yZXN1bHRzLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL2Z1
bGxfcmVzdWx0cy5qc29uCkBAIC0xMSw2ICsxMSwyNiBAQCBBRERfUkVTVUxUUyh7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAicmVwb3J0IjogIlJFR1JFU1NJT04iLAogICAgICAgICAgICAgICAg
ICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAogICAgICAgICAgICAgICAgICAgICAgICAgImFj
dHVhbCI6ICJURVhUIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAg
ICAiaW1hZ2UtZmFpbC13aXRoLWxlYWsuaHRtbCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJyZXBvcnQiOiAiUkVHUkVTU0lPTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAiYWN0dWFsIjogIklNQUdFIExF
QUsiLAorICAgICAgICAgICAgICAgICAgICAgICAgImltYWdlX2RpZmZfcGVyY2VudCI6IDAuMjYs
CisgICAgICAgICAgICAgICAgICAgICAgICAibGVha3MiOiBbeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkb2N1bWVudCI6ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvV2ViS2l0L2NhY2hl
LXN0b3JhZ2UvaW1hZ2UtZmFpbC13aXRoLWxlYWsuaHRtbCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICB9XQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAibGVh
a3ktd29ya2VyLmh0bWwiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicmVwb3J0IjogIlJF
R1JFU1NJT04iLAorICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgImFjdHVhbCI6ICJMRUFLIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICJoYXNfc3RkZXJyIjogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJs
ZWFrcyI6IFt7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvY3VtZW50IjogImh0dHA6
Ly9sb2NhbGhvc3Q6ODgwMC9XZWJLaXQvY2FjaGUtc3RvcmFnZS9sZWFreS13b3JrZXIuaHRtbCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkb2N1bWVudCI6ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvV2ViS2l0L2NhY2hlLXN0
b3JhZ2UvcmVzb3VyY2VzL2xlYWt5LXdvcmtlci1zdWJmcmFtZS5odG1sIgorICAgICAgICAgICAg
ICAgICAgICAgICAgfV0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0sCkBAIC02OSw2ICs4OSwxNCBAQCBBRERfUkVTVUxUUyh7CiAgICAgICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6ICJJTUFHRSIsCiAgICAgICAgICAgICAgICAgICAgICJh
Y3R1YWwiOiAiUEFTUyIsCiAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0X3R5cGUiOiBbIiE9
Il0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICJzcGVsbGluZy1sZWFreS1y
ZWYuaHRtbCI6IHsKKyAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkxFQUsiLAorICAg
ICAgICAgICAgICAgICAgICAiYWN0dWFsIjogIkxFQUsiLAorICAgICAgICAgICAgICAgICAgICAi
cmVmdGVzdF90eXBlIjogWyIhPSJdLAorICAgICAgICAgICAgICAgICAgICAibGVha3MiOiBbewor
ICAgICAgICAgICAgICAgICAgICAgICAgImRvY3VtZW50IjogImZpbGU6Ly8vVm9sdW1lcy9EYXRh
L3NsYXZlL2hpZ2hzaWVycmEtcmVsZWFzZS10ZXN0cy13azIvYnVpbGQvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy1sZWFreS1yZWYuaHRtbCIKKyAgICAgICAgICAgICAgICAg
ICAgfV0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCkBAIC0x
MjEsMjAgKzE0OSwyMCBAQCBBRERfUkVTVUxUUyh7CiAgICAgICAgIH0KICAgICB9LAogICAgICJz
a2lwcGVkIjogNTM2NywKLSAgICAibnVtX3JlZ3Jlc3Npb25zIjogMiwKKyAgICAibnVtX3JlZ3Jl
c3Npb25zIjogNywKICAgICAib3RoZXJfY3Jhc2hlcyI6IHsKICAgICAgICAgIkR1bXBSZW5kZXJU
cmVlLTU0ODg4Ijoge30sCiAgICAgICAgICJEdW1wUmVuZGVyVHJlZS01NjgwNCI6IHt9LAogICAg
IH0sCiAgICAgImludGVycnVwdGVkIjogZmFsc2UsCi0gICAgIm51bV9taXNzaW5nIjogMCwKKyAg
ICAibnVtX21pc3NpbmciOiAxLAogICAgICJsYXlvdXRfdGVzdHNfZGlyIjogIi9Wb2x1bWVzL0Rh
dGEvc2xhdmUvaGlnaHNpZXJyYS1yZWxlYXNlLXRlc3RzLXdrMi9idWlsZC9MYXlvdXRUZXN0cyIs
CiAgICAgInZlcnNpb24iOiA0LAogICAgICJudW1fcGFzc2VzIjogNDkzODcsCiAgICAgInBpeGVs
X3Rlc3RzX2VuYWJsZWQiOiBmYWxzZSwKICAgICAiZGF0ZSI6ICIwNTozOFBNIG9uIEF1Z3VzdCAx
NSwgMjAxOCIsCiAgICAgImhhc19wcmV0dHlfcGF0Y2giOiB0cnVlLAotICAgICJmaXhhYmxlIjog
NjM2MCwKKyAgICAiZml4YWJsZSI6IDUsCiAgICAgIm51bV9mbGFreSI6IDAsCiAgICAgInVzZXNf
ZXhwZWN0YXRpb25zX2ZpbGUiOiB0cnVlLAogICAgICJyZXZpc2lvbiI6ICIyMzQ5MDUiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVzdWx0cy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVzdWx0cy1leHBlY3RlZC50eHQKaW5kZXggMWI1MDUz
MDFlNzMxNzA0YjA1NThkMzhlOTQyYmFkYzZlM2NlYTI2ZC4uZDUzMThlNjhkNjUxNjIxYmExMDM3
YWU4YTU2Mzc5OGVkYjNlZjFiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNz
L3Jlc3VsdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9yZXN1
bHRzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDcgQEAKIFVzZSB0aGUgaSwgaiwgayBhbmQgbCBr
ZXlzIHRvIG5hdmlnYXRlLCBlLCBjIHRvIGV4cGFuZCBhbmQgY29sbGFwc2UsIGFuZCBmIHRvIGZs
YWcKIGV4cGFuZCBhbGwgY29sbGFwc2UgYWxsIG9wdGlvbnMKIE9ubHkgdW5leHBlY3RlZCByZXN1
bHRzCitUb2dnbGUgaW1hZ2VzCiBVc2UgbmV3bGluZXMgaW4gZmxhZ2dlZCBsaXN0CiBUZXN0cyB0
aGF0IGNyYXNoZWQgKDEpOiBmbGFnIGFsbAogCkBAIC05LDEyICsxMCwxNCBAQCBPdGhlciBjcmFz
aGVzICgyKTogZmxhZyBhbGwKIAogK0R1bXBSZW5kZXJUcmVlLTU0ODg4CWNyYXNoIGxvZwogK0R1
bXBSZW5kZXJUcmVlLTU2ODA0CWNyYXNoIGxvZwotVGVzdHMgdGhhdCBmYWlsZWQgdGV4dC9waXhl
bC9hdWRpbyBkaWZmICgzKTogZmxhZyBhbGwKK1Rlc3RzIHRoYXQgZmFpbGVkIHRleHQvcGl4ZWwv
YXVkaW8gZGlmZiAoNSk6IGZsYWcgYWxsCiAKLSB0ZXN0IAlyZXN1bHRzCQlhY3R1YWwgZmFpbHVy
ZQlleHBlY3RlZCBmYWlsdXJlCWhpc3RvcnkKKyB0ZXN0IAlyZXN1bHRzCWltYWdlIHJlc3VsdHMJ
YWN0dWFsIGZhaWx1cmUJZXhwZWN0ZWQgZmFpbHVyZQloaXN0b3J5CiArY3NzMS9mb250X3Byb3Bl
cnRpZXMvZm9udF9mYW1pbHkuaHRtbAlleHBlY3RlZCBhY3R1YWwgZGlmZiBwcmV0dHkgZGlmZglp
bWFnZXMJdGV4dCBtaXNzaW5nCQloaXN0b3J5CiAraHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jl
cXVlc3Qtc3RvcmFnZS1hY2Nlc3MtdG9wLWZyYW1lLmh0bWwJZXhwZWN0ZWQgYWN0dWFsIGRpZmYg
cHJldHR5IGRpZmYJCXRleHQJcGFzcyB0aW1lb3V0CWhpc3RvcnkKICtodHRwL3dwdC9jYWNoZS1z
dG9yYWdlL2NhY2hlLXB1dC1rZXlzLmh0dHBzLmFueS53b3JrZXIuaHRtbAlleHBlY3RlZCBhY3R1
YWwgZGlmZiBwcmV0dHkgZGlmZgkJdGV4dAlwYXNzCWhpc3RvcnkKKytodHRwL3dwdC9jYWNoZS1z
dG9yYWdlL2ltYWdlLWZhaWwtd2l0aC1sZWFrLmh0bWwJCWltYWdlcyBkaWZmICgwLjI2JSkJaW1h
Z2UgbGVhawlwYXNzCWhpc3RvcnkKKytodHRwL3dwdC9jYWNoZS1zdG9yYWdlL2xlYWt5LXdvcmtl
ci5odG1sCQkJbGVhawlwYXNzCWhpc3RvcnkKIFRlc3RzIHRoYXQgaGFkIG5vIGV4cGVjdGVkIHJl
c3VsdHMgKHByb2JhYmx5IG5ldykgKDEpOiBmbGFnIGFsbAogCiB0ZXN0CXJlc3VsdHMJaW1hZ2Ug
cmVzdWx0cwlhY3R1YWwgZmFpbHVyZQlleHBlY3RlZCBmYWlsdXJlCWhpc3RvcnkKQEAgLTIyLDkg
KzI1LDEwIEBAIHN2Zy9iYXRpay9zbWFsbEZvbnRzLnN2ZwkJCW1pc3NpbmcJCWhpc3RvcnkKIFRl
c3RzIHRoYXQgdGltZWQgb3V0ICgxKTogZmxhZyBhbGwKIAogK3BsYXRmb3JtL21hYy9tZWRpYS9h
dWRpby1zZXNzaW9uLWNhdGVnb3J5LXZpZGVvLXBhdXNlZC5odG1sCWV4cGVjdGVkIGFjdHVhbCBk
aWZmIHByZXR0eSBkaWZmCWhpc3RvcnkKLVRlc3RzIHRoYXQgaGFkIHN0ZGVyciBvdXRwdXQgKDIp
OiBmbGFnIGFsbAorVGVzdHMgdGhhdCBoYWQgc3RkZXJyIG91dHB1dCAoMyk6IGZsYWcgYWxsCiAK
ICtodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL3RvcC11cmwuaHRtbAlzdGRlcnIJaGlzdG9y
eQorK2h0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvbGVha3ktd29ya2VyLmh0bWwJc3RkZXJyCWhpc3Rv
cnkKICtwbGF0Zm9ybS9tYWMvbWVkaWEvYXVkaW8tc2Vzc2lvbi1jYXRlZ29yeS12aWRlby1wYXVz
ZWQuaHRtbAlzdGRlcnIJaGlzdG9yeQogRmxha3kgdGVzdHMgKGZhaWxlZCB0aGUgZmlyc3QgcnVu
IGFuZCBwYXNzZWQgb24gcmV0cnkpICgxKTogZmxhZyBhbGwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc3VsdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVz
cy9yZXN1bHRzLmh0bWwKaW5kZXggOGIyOTFhZGQ3ODBkMzkwODM0MTJiMzM1MjI2NDBlMGFmM2Vi
ZTJkMS4uYmUyYjdjNGM1YjU3YmQ4NTliOThhZGIwYWY4MWUxYzMxOTBjMTdhNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc3VsdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2hhcm5lc3MvcmVzdWx0cy5odG1sCkBAIC00MCw2ICs0MCwxMSBAQCB0ZDpub3QoOmZp
cnN0LW9mLXR5cGUpIHsKIAogdGgsIHRkIHsKICAgICBwYWRkaW5nOiAxcHggNHB4OworICAgIHZl
cnRpY2FsLWFsaWduOiB0b3A7Cit9CisKK3RkOm50aC1jaGlsZCgxKSB7ICAKKyAgICBtaW4td2lk
dGg6IDM1ZW07CiB9CiAKIHRoOmVtcHR5LCB0ZDplbXB0eSB7CkBAIC01MSw2ICs1NiwxNSBAQCB0
aCB7CiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKIH0KIAorZHQgPiBzdXAgeworICAgIHZl
cnRpY2FsLWFsaWduOnRleHQtdG9wOworICAgIGZvbnQtc2l6ZTo3NSU7Cit9CisKK3N1cCA+IGEg
eworICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKwogLmNvbnRlbnQtY29udGFpbmVyIHsK
ICAgICBtaW4taGVpZ2h0OiAwOwogfQpAQCAtMTM4LDYgKzE1MiwxMyBAQCB0Ym9keS5mbGFnZ2Vk
IC5mbGFnIHsKICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogfQogCisubGVha3MgPiB0YWJsZSB7
CisgICAgbWFyZ2luOiA0cHg7Cit9CisubGVha3MgPiB0ZCB7CisgICAgcGFkZGluZy1sZWZ0OiAy
MHB4OworfQorCiAjb3B0aW9ucyB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiB9CkBA
IC0zNjksNiArMzkwLDExIEBAIGNsYXNzIFRlc3RSZXN1bHQKICAgICAgICAgcmV0dXJuIHRoaXMu
aW5mby5hY3R1YWwuaW5kZXhPZignQVVESU8nKSAhPSAtMTsKICAgICB9CiAKKyAgICBoYXNMZWFr
KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmluZm8uYWN0dWFsLmluZGV4T2YoJ0xFQUsn
KSAhPSAtMTsKKyAgICB9CisKICAgICBpc0NyYXNoKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0
aGlzLmluZm8uYWN0dWFsID09ICdDUkFTSCc7CkBAIC03ODcsNiArODEzLDE3IEBAIGNsYXNzIFRl
c3RSZXN1bHRzQ29udHJvbGxlcgogICAgICAgICByZXR1cm4gYmFzZVBhdGg7CiAgICAgfQogCisg
ICAgY29udmVydFRvTGF5b3V0VGVzdEJhc2VSZWxhdGl2ZVVSTChmdWxsVVJMKQorICAgIHsKKyAg
ICAgICAgaWYgKGZ1bGxVUkwuc3RhcnRzV2l0aCgnZmlsZTovLycpKSB7CisgICAgICAgICAgICBs
ZXQgdXJsUHJlZml4ID0gJ2ZpbGU6Ly8nICsgdGhpcy5sYXlvdXRUZXN0c0Jhc2VQYXRoKCk7Cisg
ICAgICAgICAgICBpZiAoZnVsbFVSTC5zdGFydHNXaXRoKHVybFByZWZpeCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZ1bGxVUkwuc3Vic3RyaW5nKHVybFByZWZpeC5sZW5ndGgpOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZnVsbFVSTDsKKyAgICB9CisKICAgICBzaG91
bGRVc2VUcmFjTGlua3MoKQogICAgIHsKICAgICAgICAgcmV0dXJuICF0aGlzLnRlc3RSZXN1bHRz
LmxheW91dFRlc3RzRGlyKCkgfHwgIWxvY2F0aW9uLnRvU3RyaW5nKCkuaW5kZXhPZignZmlsZTov
LycpID09IDA7CkBAIC0xMDIwLDkgKzEwNTcsNDcgQEAgY2xhc3MgVGVzdFJlc3VsdHNDb250cm9s
bGVyCiAgICAgICAgICAgICBVdGlscy5hcHBlbmRIVE1MKG5ld0NlbGwsIHJlc3VsdCk7ICAgIAog
ICAgICAgICB9CiAKKyAgICAgICAgaWYgKHRlc3RSZXN1bHQuaGFzTGVhaygpKQorICAgICAgICAg
ICAgbmV3Q2VsbC5hcHBlbmRDaGlsZChUZXN0UmVzdWx0c0NvbnRyb2xsZXIuX21ha2VMZWFrc0Nl
bGwodGVzdFJlc3VsdCkpOworCiAgICAgICAgIG5ld1Jvdy5hcHBlbmRDaGlsZChuZXdDZWxsKTsK
KwogICAgICAgICByZXR1cm4gbmV3Um93OwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgX21ha2VM
ZWFrc0NlbGwodGVzdFJlc3VsdCkKKyAgICB7CisgICAgICAgIGxldCBjb250YWluZXIgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgY29udGFpbmVyLmNsYXNzTmFtZSA9
ICdyZXN1bHQtY29udGFpbmVyIGxlYWtzJzsKKyAgICAgICAgCisgICAgICAgIGxldCBsYWJlbCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBsYWJlbC5jbGFzc05hbWUg
PSAnbGFiZWwnOworICAgICAgICBsYWJlbC50ZXh0Q29udGVudCA9ICJMZWFrcyI7CisgICAgICAg
IGNvbnRhaW5lci5hcHBlbmRDaGlsZChsYWJlbCk7CisKKyAgICAgICAgbGV0IGxlYWtzVGFibGUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpOworICAgICAgICAKKyAgICAgICAgZm9y
IChsZXQgbGVhayBvZiB0ZXN0UmVzdWx0LmluZm8ubGVha3MpIHsKKyAgICAgICAgICAgIGxldCBs
ZWFrUm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKKworICAgICAgICAgICAgZm9y
IChsZXQgbGVha2VkT2JqZWN0VHlwZSBpbiBsZWFrKSB7CisgICAgICAgICAgICAgICAgbGV0IHRo
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGgnKTsKKyAgICAgICAgICAgICAgICB0aC50ZXh0
Q29udGVudCA9IGxlYWtlZE9iamVjdFR5cGU7CisgICAgICAgICAgICAgICAgbGV0IHRkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBsZXQgdXJsID0gbGVha1tsZWFrZWRPYmplY3RUeXBlXTsgLy8gRklYTUU6IHdoZW4gd2Ug
dHJhY2sgbGVha3Mgb3RoZXIgdGhhbiBkb2N1bWVudHMsIHRoaXMgbWlnaHQgbm90IGJlIGEgVVJM
LgorICAgICAgICAgICAgICAgIHRkLnRleHRDb250ZW50ID0gY29udHJvbGxlci5jb252ZXJ0VG9M
YXlvdXRUZXN0QmFzZVJlbGF0aXZlVVJMKHVybCkKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBsZWFrUm93LmFwcGVuZENoaWxkKHRoKTsKKyAgICAgICAgICAgICAgICBsZWFrUm93
LmFwcGVuZENoaWxkKHRkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgbGVha3NUYWJsZS5hcHBlbmRDaGlsZChsZWFrUm93KTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGxlYWtzVGFibGUpOworICAgICAgICByZXR1
cm4gY29udGFpbmVyOworICAgIH0KIAogICAgIHN0YXRpYyBfcmVzdWx0SWZyYW1lKHNyYykKICAg
ICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348358</attachid>
            <date>2018-08-28 16:25:19 -0700</date>
            <delta_ts>2018-08-29 10:51:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189067-20180828162518.patch</filename>
            <type>text/plain</type>
            <size>45411</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDM0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGE0MzJjZGRkYmI5MWViMmViNTU5OWM3NDlkZjk4YWNh
NDQyNmRlMi4uNjE1YWVhOGJkMzE5ODY3MjdiMzZlYjM5ZWQyNTFmZWUyODgxN2ZkZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5
IEBACisyMDE4LTA4LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFRlYWNoIHdlYmtpdHB5IGhvdyB0byBjaGVjayBsZWFrcyBhbmQgdHJlYXQgbGVh
a3MgYXMgdGVzdCBmYWlsdXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg5MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisgICAgICAgIAorICAgICAgICBBZGQgYSBuZXcgIi0td29ybGQtbGVha3MiIGFyZ3VtZW50IHRv
IHJ1bi13ZWJraXQtdGVzdHMuIFdoZW4gZW5hYmxlZCwgRFJUL1dUUiBhcmUgbGF1bmNoZWQKKyAg
ICAgICAgd2l0aCBhIC0td29ybGQtbGVha3MgYXJndW1lbnQgKHdoaWNoIGlzIHJlbmFtZWQgaW4g
dGhpcyBwYXRjaCBmb3IgY29uc2lzdGVuY3kpLiBUaGlzIGVuYWJsZXMgdGhlCisgICAgICAgIGJl
aGF2aW9yIGFkZGVkIGluIHIyMzU0MDgsIG5hbWVseSB0aGF0IHRoZXkgY2hlY2sgZm9yIGxlYWtl
ZCBkb2N1bWVudHMgYWZ0ZXIgZWFjaCB0ZXN0LCBhbmQgYXQKKyAgICAgICAgdGhlIGVuZCBvZiBv
bmUgKGlmIC0tcnVuLXNpbmdseSkgb3IgYSBzZXQgb2YgdGVzdHMgcnVuIGluIGEgc2luZ2xlIERS
VC9XVFIgaW5zdGFuY2UgaGFuZGxlIHRoZQorICAgICAgICAiI0NIRUNLIEZPUiBXT1JMRCBMRUFL
UyIgY29tbWFuZCB0byBnZXQgc3RpbGwtbGl2ZSBkb2N1bWVudHMuCisgICAgICAgIAorICAgICAg
ICBMYXlvdXRUZXN0UnVubmVyIGluIHdlYmtpdHB5IG5vdyBoYXMgdGhlIG5vdGlvbiBvZiBkb2lu
ZyAicG9zdC10ZXN0cyB3b3JrIiwgY2FsbGVkIHZpYSBfZmluaXNoZWRfdGVzdF9ncm91cCgpLAor
ICAgICAgICBhbmQgaGVyZSBpdCBzZW5kcyB0aGUgIiNDSEVDSyBGT1IgV09STEQgTEVBS1MiIGNv
bW1hbmQgdG8gdGhlIHJ1bm5lciBhbmQgcGFyc2VzIHRoZSByZXN1bHRpbmcgb3V0cHV0IGJsb2Nr
LgorICAgICAgICBJZiB0aGlzIHJlc3VsdHMgYmxvY2sgaW5jbHVkZXMgbGVha3MsIHdlIGNvbnZl
cnQgYW4gZXhpc3RpbmcgVGVzdFJlc3VsdCBpbnRvIGEgTEVBSyBmYWlsdXJlCisgICAgICAgIGlu
IFRlc3RSdW5SZXN1bHRzLmNoYW5nZV9yZXN1bHRfdG9fZmFpbHVyZSgpLiBMZWFrcyBhcmUgdGhl
biBhZGRlZCB0byB0aGUgb3VwdXQgSlNPTiBmb3IgZGlzcGxheSBpbiByZXN1bHRzLmh0bWwKKwor
ICAgICAgICBVbml0IHRlc3RzIGFyZSB1cGRhdGVkIHdpdGggc29tZSBsZWFrIGV4YW1wbGVzLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAg
ICAoaW5pdGlhbGl6ZUdsb2JhbHNGcm9tQ29tbWFuZExpbmVPcHRpb25zKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHk6
CisgICAgICAgIChQYXJzZWRKU09OUmVzdWx0c1Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weToKKyAg
ICAgICAgKExheW91dFRlc3RSdW5uZXIuX2Fubm90YXRlX3Jlc3VsdHNfd2l0aF9hZGRpdGlvbmFs
X2ZhaWx1cmVzKToKKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuX2hhbmRsZV9maW5pc2hlZF90
ZXN0X2dyb3VwKToKKyAgICAgICAgKFdvcmtlci5oYW5kbGUpOgorICAgICAgICAoV29ya2VyLl9y
dW5fdGVzdCk6CisgICAgICAgIChXb3JrZXIuX2RvX3Bvc3RfdGVzdHNfd29yayk6CisgICAgICAg
IChXb3JrZXIuX2ZpbmlzaGVkX3Rlc3RfZ3JvdXApOgorICAgICAgICAoV29ya2VyLl9ydW5fdGVz
dF9pbl9hbm90aGVyX3RocmVhZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbGF5b3V0X3BhY2thZ2UvanNvbl9sYXlvdXRfcmVzdWx0c19nZW5lcmF0b3IucHk6Cisg
ICAgICAgIChKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvcik6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAg
ICAoVGVzdEV4cGVjdGF0aW9uUGFyc2VyKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnMpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVj
dGF0aW9uc191bml0dGVzdC5weToKKyAgICAgICAgKEJhc2UuZ2V0X2Jhc2ljX3Rlc3RzKToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJl
cy5weToKKyAgICAgICAgKGRldGVybWluZV9yZXN1bHRfdHlwZSk6CisgICAgICAgIChGYWlsdXJl
TGVhayk6CisgICAgICAgIChGYWlsdXJlTGVhay5fX2luaXRfXyk6CisgICAgICAgIChGYWlsdXJl
TGVhay5tZXNzYWdlKToKKyAgICAgICAgKEZhaWx1cmVEb2N1bWVudExlYWspOgorICAgICAgICAo
RmFpbHVyZURvY3VtZW50TGVhay5fX2luaXRfXyk6CisgICAgICAgIChGYWlsdXJlRG9jdW1lbnRM
ZWFrLm1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X3Jlc3VsdHMucHk6CisgICAgICAgIChUZXN0UmVzdWx0LmNvbnZlcnRfdG9fZmFp
bHVyZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rl
c3RfcnVuX3Jlc3VsdHMucHk6CisgICAgICAgIChUZXN0UnVuUmVzdWx0cy5jaGFuZ2VfcmVzdWx0
X3RvX2ZhaWx1cmUpOgorICAgICAgICAoX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKToKKyAgICAg
ICAgKHN1bW1hcml6ZV9yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0c191bml0dGVzdC5weToKKyAgICAgICAgKGdl
dF9yZXN1bHQpOgorICAgICAgICAocnVuX3Jlc3VsdHMpOgorICAgICAgICAoc3VtbWFyaXplZF9y
ZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzLnB5OgorICAgICAgICAocGFyc2VfYXJncyk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHk6
CisgICAgICAgIChwYXJzZV9hcmdzKToKKyAgICAgICAgKFJ1blRlc3QudGVzdF9jaGVja19mb3Jf
d29ybGRfbGVha3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHk6
CisgICAgICAgIChEcml2ZXJQb3N0VGVzdE91dHB1dCk6CisgICAgICAgIChEcml2ZXJQb3N0VGVz
dE91dHB1dC5fX2luaXRfXyk6CisgICAgICAgIChEcml2ZXIuZG9fcG9zdF90ZXN0c193b3JrKToK
KyAgICAgICAgKERyaXZlci5fcGFyc2Vfd29ybGRfbGVha3Nfb3V0cHV0KToKKyAgICAgICAgKERy
aXZlci5jbWRfbGluZSk6CisgICAgICAgIChEcml2ZXJQcm94eS5kb19wb3N0X3Rlc3RzX3dvcmsp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5OgorICAgICAgICAodW5p
dF90ZXN0X2xpc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHA6Cisg
ICAgICAgIChXVFI6Ok9wdGlvbnNIYW5kbGVyOjpPcHRpb25zSGFuZGxlcik6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpjaGVja0ZvcldvcmxkTGVha3MpOgorCiAyMDE4LTA4LTI4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IDMyLWJpdCBN
YWMgYnVpbGQuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5k
ZXggMmFkMDNhMDE4NDU3ZTU0MGVlZDg2NmI3MmY3NDY1NmY0YjlmNjk0OC4uMzgzYTM4OWFhZmFi
OGMwMjg5ODkyOTg2Y2RmZDQ1YWZiYWMyY2I2YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTEyMSw3ICsxMTIxLDcgQEAgc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZUdsb2JhbHNGcm9tQ29tbWFuZExpbmVPcHRpb25zKGludCBhcmdjLCBjb25zdCBjaGFy
ICphcmd2W10KICAgICAgICAgeyJhbGxvdy1hbnktY2VydGlmaWNhdGUtZm9yLWFsbG93ZWQtaG9z
dHMiLCBub19hcmd1bWVudCwgJmFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0
cywgWUVTfSwKICAgICAgICAgeyJzaG93LXdlYnZpZXciLCBub19hcmd1bWVudCwgJnNob3dXZWJW
aWV3LCBZRVN9LAogICAgICAgICB7InByaW50LXRlc3QtY291bnQiLCBub19hcmd1bWVudCwgJnBy
aW50VGVzdENvdW50LCBZRVN9LAotICAgICAgICB7ImNoZWNrLWZvci13b3JsZC1sZWFrcyIsIG5v
X2FyZ3VtZW50LCAmY2hlY2tGb3JXb3JsZExlYWtzLCBOT30sCisgICAgICAgIHsid29ybGQtbGVh
a3MiLCBub19hcmd1bWVudCwgJmNoZWNrRm9yV29ybGRMZWFrcywgTk99LAogICAgICAgICB7bnVs
bHB0ciwgMCwgbnVsbHB0ciwgMH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3Qu
cHkKaW5kZXggMmYyMWY0NGI5MTg5ZjA0MGI1NzBjMjQzYTE1MmUxMzI4NjIzYTAxZS4uNjdhMmVm
NmE1Y2Y0YjI3YzcwZjIzMDUxY2Y2MjJiYTMyOWIwOWY0OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91
bml0dGVzdC5weQpAQCAtNTgsNyArNTgsMTMgQEAgY2xhc3MgUGFyc2VkSlNPTlJlc3VsdHNUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAg
ICJwcm90b3R5cGUtc3RyYXdiZXJyeS5odG1sIjogewogICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiAiUEFTUyIsCi0gICAgICAgICAgICAgICAgICAgICJhY3R1YWwiOiAiRkFJTCBQQVNT
IgorICAgICAgICAgICAgICAgICAgICAiYWN0dWFsIjogIkZBSUwgUEFTUyIsCisgICAgICAgICAg
ICAgICAgICAgICJsZWFrcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJkb2N1bWVudHMi
OiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGU6Ly8vVm9sdW1lcy9EYXRhL3Ns
YXZlL3dlYmtpdC9idWlsZC9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtc3RyYXdiZXJy
eS5odG1sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJvdXQ6YmxhbmsiCisgICAg
ICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCkBAIC0xMDYsNyArMTEyLDEzIEBAIGNs
YXNzIFBhcnNlZEpTT05SZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgICAgICAicHJvdG90eXBlLXN0cmF3YmVycnkuaHRtbCI6IHsK
ICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAotICAgICAgICAgICAgICAg
ICAgICAiYWN0dWFsIjogIkZBSUwgUEFTUyIKKyAgICAgICAgICAgICAgICAgICAgImFjdHVhbCI6
ICJGQUlMIFBBU1MiLAorICAgICAgICAgICAgICAgICAgICAibGVha3MiOiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAiZG9jdW1lbnRzIjogWworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJmaWxlOi8vL1ZvbHVtZXMvRGF0YS9zbGF2ZS93ZWJraXQvYnVpbGQvTGF5b3V0VGVzdHMvZmFz
dC9kb20vcHJvdG90eXBlLXN0cmF3YmVycnkuaHRtbCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImFib3V0OmJsYW5rIgorICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9
LApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CmluZGV4IDNlNTJlNjE0
YWE4OWE2MmQ4ZTVlZTNmZWZhZmNkY2NhMjhiODAzZDAuLjA3NjU0N2Q0ZWQ3ODU1MGE4MDA2OGFm
Y2Q4MzhiNWFjMGY4YjFiNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5u
ZXIucHkKQEAgLTE5Miw2ICsxOTIsMTYgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3Qp
OgogCiAgICAgICAgIHNlbGYuX2ludGVycnVwdF9pZl9hdF9mYWlsdXJlX2xpbWl0cyhydW5fcmVz
dWx0cykKIAorICAgIGRlZiBfYW5ub3RhdGVfcmVzdWx0c193aXRoX2FkZGl0aW9uYWxfZmFpbHVy
ZXMoc2VsZiwgcnVuX3Jlc3VsdHMsIHJlc3VsdHMpOgorICAgICAgICBmb3IgbmV3X3Jlc3VsdCBp
biByZXN1bHRzOgorICAgICAgICAgICAgZXhpc3RpbmdfcmVzdWx0ID0gcnVuX3Jlc3VsdHMucmVz
dWx0c19ieV9uYW1lLmdldChuZXdfcmVzdWx0LnRlc3RfbmFtZSkKKyAgICAgICAgICAgICMgV2hl
biBydW5uaW5nIGEgY2h1bmsgKC0tcnVuLWNodW5rKSwgcmVzdWx0c19ieV9uYW1lIGNvbnRhaW5z
IGFsbCB0aGUgdGVzdHMsIGJ1dCAoY29uZnVzaW5nbHkpIGFsbF90ZXN0cyBvbmx5IGNvbnRhaW5z
IHRob3NlIGluIHRoZSBjaHVuayB0aGF0IHdhcyBydW4sCisgICAgICAgICAgICAjIGFuZCB3ZSBk
b24ndCB3YW50IHRvIG1vZGlmeSB0aGUgcmVzdWx0cyBvZiBhIHRlc3QgdGhhdCBkaWRuJ3QgcnVu
LiBleGlzdGluZ19yZXN1bHQudGVzdF9udW1iZXIgaXMgb25seSBub24tTm9uZSBmb3IgdGVzdHMg
dGhhdCByYW4uCisgICAgICAgICAgICBpZiBleGlzdGluZ19yZXN1bHQgYW5kIGV4aXN0aW5nX3Jl
c3VsdC50ZXN0X251bWJlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICB3YXNfZXhwZWN0
ZWQgPSBzZWxmLl9leHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQobmV3X3Jl
c3VsdC50ZXN0X25hbWUsIGV4aXN0aW5nX3Jlc3VsdC50eXBlLCBzZWxmLl9vcHRpb25zLnBpeGVs
X3Rlc3RzIG9yIGV4aXN0aW5nX3Jlc3VsdC5yZWZ0ZXN0X3R5cGUpCisgICAgICAgICAgICAgICAg
bm93X2V4cGVjdGVkID0gc2VsZi5fZXhwZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVz
dWx0KG5ld19yZXN1bHQudGVzdF9uYW1lLCBuZXdfcmVzdWx0LnR5cGUsIHNlbGYuX29wdGlvbnMu
cGl4ZWxfdGVzdHMgb3IgbmV3X3Jlc3VsdC5yZWZ0ZXN0X3R5cGUpCisgICAgICAgICAgICAgICAg
cnVuX3Jlc3VsdHMuY2hhbmdlX3Jlc3VsdF90b19mYWlsdXJlKGV4aXN0aW5nX3Jlc3VsdCwgbmV3
X3Jlc3VsdCwgd2FzX2V4cGVjdGVkLCBub3dfZXhwZWN0ZWQpCisKICAgICBkZWYgc3RhcnRfc2Vy
dmVycyhzZWxmKToKICAgICAgICAgaWYgc2VsZi5fbmVlZHNfaHR0cCBhbmQgbm90IHNlbGYuX2Rp
ZF9zdGFydF9odHRwX3NlcnZlciBhbmQgbm90IHNlbGYuX3BvcnQuaXNfaHR0cF9zZXJ2ZXJfcnVu
bmluZygpOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRhdGUoJ1N0YXJ0aW5n
IEhUVFAgc2VydmVyIC4uLicpCkBAIC0yMzIsNiArMjQyLDkgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1
bm5lcihvYmplY3QpOgogICAgIGRlZiBfaGFuZGxlX2ZpbmlzaGVkX3Rlc3Qoc2VsZiwgd29ya2Vy
X25hbWUsIHJlc3VsdCwgbG9nX21lc3NhZ2VzPVtdKToKICAgICAgICAgc2VsZi5fdXBkYXRlX3N1
bW1hcnlfd2l0aF9yZXN1bHQoc2VsZi5fY3VycmVudF9ydW5fcmVzdWx0cywgcmVzdWx0KQogCisg
ICAgZGVmIF9oYW5kbGVfZmluaXNoZWRfdGVzdF9ncm91cChzZWxmLCB3b3JrZXJfbmFtZSwgb3Zl
cmxheV9yZXN1bHRzLCBsb2dfbWVzc2FnZXM9W10pOgorICAgICAgICBzZWxmLl9hbm5vdGF0ZV9y
ZXN1bHRzX3dpdGhfYWRkaXRpb25hbF9mYWlsdXJlcyhzZWxmLl9jdXJyZW50X3J1bl9yZXN1bHRz
LCBvdmVybGF5X3Jlc3VsdHMpCisKIAogY2xhc3MgV29ya2VyKG9iamVjdCk6CiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGNhbGxlciwgcmVzdWx0c19kaXJlY3RvcnksIG9wdGlvbnMpOgpAQCAtMjY5
LDYgKzI4Miw4IEBAIGNsYXNzIFdvcmtlcihvYmplY3QpOgogICAgICAgICBmb3IgdGVzdF9pbnB1
dCBpbiB0ZXN0X2lucHV0czoKICAgICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQs
IHRlc3RfbGlzdF9uYW1lKQogCisgICAgICAgIHNlbGYuX2ZpbmlzaGVkX3Rlc3RfZ3JvdXAodGVz
dF9pbnB1dHMpCisKICAgICBkZWYgX3VwZGF0ZV90ZXN0X2lucHV0KHNlbGYsIHRlc3RfaW5wdXQp
OgogICAgICAgICBpZiB0ZXN0X2lucHV0LnJlZmVyZW5jZV9maWxlcyBpcyBOb25lOgogICAgICAg
ICAgICAgIyBMYXp5IGluaXRpYWxpemF0aW9uLgpAQCAtMzAyLDYgKzMxNywyOSBAQCBjbGFzcyBX
b3JrZXIob2JqZWN0KToKIAogICAgICAgICBzZWxmLl9jbGVhbl91cF9hZnRlcl90ZXN0KHRlc3Rf
aW5wdXQsIHJlc3VsdCkKIAorICAgIGRlZiBfZG9fcG9zdF90ZXN0c193b3JrKHNlbGYsIGRyaXZl
cik6CisgICAgICAgIGFkZGl0aW9uYWxfcmVzdWx0cyA9IFtdCisgICAgICAgIGlmIG5vdCBkcml2
ZXI6CisgICAgICAgICAgICByZXR1cm4gYWRkaXRpb25hbF9yZXN1bHRzCisKKyAgICAgICAgcG9z
dF90ZXN0X291dHB1dCA9IGRyaXZlci5kb19wb3N0X3Rlc3RzX3dvcmsoKQorICAgICAgICBpZiBw
b3N0X3Rlc3Rfb3V0cHV0OgorICAgICAgICAgICAgZm9yIHRlc3RfbmFtZSwgZG9jX2xpc3QgaW4g
cG9zdF90ZXN0X291dHB1dC53b3JsZF9sZWFrc19kaWN0Lml0ZXJpdGVtcygpOgorICAgICAgICAg
ICAgICAgIGFkZGl0aW9uYWxfcmVzdWx0cy5hcHBlbmQodGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQo
dGVzdF9uYW1lLCBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlRG9jdW1lbnRMZWFrKGRvY19saXN0KV0p
KQorICAgICAgICByZXR1cm4gYWRkaXRpb25hbF9yZXN1bHRzCisKKyAgICBkZWYgX2ZpbmlzaGVk
X3Rlc3RfZ3JvdXAoc2VsZiwgdGVzdF9pbnB1dHMpOgorICAgICAgICBfbG9nLmRlYnVnKCIlcyBm
aW5pc2hlZCB0ZXN0IGdyb3VwIiAlIHNlbGYuX25hbWUpCisKKyAgICAgICAgaWYgc2VsZi5fZHJp
dmVyIGFuZCBzZWxmLl9kcml2ZXIuaGFzX2NyYXNoZWQoKToKKyAgICAgICAgICAgIHNlbGYuX2tp
bGxfZHJpdmVyKCkKKworICAgICAgICBhZGRpdGlvbmFsX3Jlc3VsdHMgPSBbXQorICAgICAgICBp
ZiBub3Qgc2VsZi5fb3B0aW9ucy5ydW5fc2luZ2x5OgorICAgICAgICAgICAgYWRkaXRpb25hbF9y
ZXN1bHRzID0gc2VsZi5fZG9fcG9zdF90ZXN0c193b3JrKHNlbGYuX2RyaXZlcikKKworICAgICAg
ICBzZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVzdF9ncm91cCcsIGFkZGl0aW9uYWxfcmVz
dWx0cykKKwogICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICBfbG9nLmRlYnVnKCIlcyBjbGVh
bmluZyB1cCIgJSBzZWxmLl9uYW1lKQogICAgICAgICBzZWxmLl9raWxsX2RyaXZlcigpCkBAIC0z
OTYsNiArNDM0LDExIEBAIGNsYXNzIFdvcmtlcihvYmplY3QpOgogICAgICAgICAgICAgIyB0aHJl
YWQncyByZXN1bHRzLgogICAgICAgICAgICAgX2xvZy5lcnJvcignVGVzdCB0aHJlYWQgaHVuZzog
a2lsbGluZyBhbGwgRHVtcFJlbmRlclRyZWVzJykKICAgICAgICAgICAgIGZhaWx1cmVzID0gW3Rl
c3RfZmFpbHVyZXMuRmFpbHVyZVRpbWVvdXQoKV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGZhaWx1cmVfcmVzdWx0cyA9IHNlbGYuX2RvX3Bvc3RfdGVzdHNfd29yayhkcml2ZXIpCisgICAg
ICAgICAgICBmb3IgZmFpbHVyZV9yZXN1bHQgaW4gZmFpbHVyZV9yZXN1bHRzOgorICAgICAgICAg
ICAgICAgIGlmIGZhaWx1cmVfcmVzdWx0LnRlc3RfbmFtZSA9PSByZXN1bHQudGVzdF9uYW1lOgor
ICAgICAgICAgICAgICAgICAgICByZXN1bHQuY29udmVydF90b19mYWlsdXJlKGZhaWx1cmVfcmVz
dWx0KQogCiAgICAgICAgIGRyaXZlci5zdG9wKCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvanNvbl9sYXlvdXRfcmVzdWx0
c19nZW5lcmF0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlv
dXRfcGFja2FnZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVyYXRvci5weQppbmRleCAxYmMxMGU2
ODM4M2I2YmZjZTUzMjVhM2QyYmNmMWRiMGU2NmNkY2YwLi5kMGMyMjAxMmIzYmIzY2U5YzRhYWJm
NTA0MmEzMjM1NTM4NDI2MGJiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVyYXRvci5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVyYXRvci5weQpAQCAtNDksNiArNDksNyBAQCBjbGFz
cyBKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvcihqc29uX3Jlc3VsdHNfZ2VuZXJhdG9yLkpTT05S
ZXN1bHRzR2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlv
bnMuVEVYVDogIkYiLAogICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5B
VURJTzogIkEiLAogICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5NSVNT
SU5HOiAiTyIsCisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb25zLkxFQUs6
ICJMIiwKICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuSU1BR0VfUExV
U19URVhUOiAiWiJ9CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgYnVpbGRlcl9uYW1l
LCBidWlsZF9uYW1lLCBidWlsZF9udW1iZXIsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkK
aW5kZXggZTU0YWM5NDEyNWY5ZGZhY2Q3YzY3NjA3ODhiZDc3MWIyMmZiNDNmZi4uYWY0ZDFiZTdm
NTBjODExYTk5OTEzM2YxY2ZiODcwYWYyMDVkNzkwMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0
aW9ucy5weQpAQCAtNDMsNyArNDMsNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCiAjIEZJWE1FOiByYW5nZSgpIHN0YXJ0cyB3aXRoIDAgd2hpY2ggbWFrZXMgaWYgZXhwZWN0
YXRpb24gY2hlY2tzIGhhcmRlcgogIyBhcyBQQVNTIGlzIDAuCiAoUEFTUywgRkFJTCwgVEVYVCwg
SU1BR0UsIElNQUdFX1BMVVNfVEVYVCwgQVVESU8sIFRJTUVPVVQsIENSQVNILCBTS0lQLCBXT05U
RklYLAotIFNMT1csIERVTVBKU0NPTlNPTEVMT0dJTlNUREVSUiwgUkVCQVNFTElORSwgTUlTU0lO
RywgRkxBS1ksIE5PVywgTk9ORSkgPSByYW5nZSgxNykKKyBTTE9XLCBMRUFLLCBEVU1QSlNDT05T
T0xFTE9HSU5TVERFUlIsIFJFQkFTRUxJTkUsIE1JU1NJTkcsIEZMQUtZLCBOT1csIE5PTkUpID0g
cmFuZ2UoMTgpCiAKICMgRklYTUU6IFBlcmhhcyB0aGVzZSB0d28gcm91dGluZXMgc2hvdWxkIGJl
IHBhcnQgb2YgdGhlIFBvcnQgaW5zdGVhZD8KIEJBU0VMSU5FX1NVRkZJWF9MSVNUID0gKCdwbmcn
LCAnd2F2JywgJ3R4dCcpCkBAIC0yNDEsOSArMjQxLDExIEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlv
blBhcnNlcihvYmplY3QpOgogICAgICMgRklYTUU6IFVwZGF0ZSB0aGUgb3JpZ2luYWwgbW9kaWZp
ZXJzIGxpc3QgYW5kIHJlbW92ZSB0aGlzIG9uY2UgdGhlIG9sZCBzeW50YXggaXMgZ29uZS4KICAg
ICBfZXhwZWN0YXRpb25fdG9rZW5zID0gewogICAgICAgICAnQ3Jhc2gnOiAnQ1JBU0gnLAorICAg
ICAgICAnTGVhayc6ICdMRUFLJywKICAgICAgICAgJ0ZhaWx1cmUnOiAnRkFJTCcsCiAgICAgICAg
ICdJbWFnZU9ubHlGYWlsdXJlJzogJ0lNQUdFJywKICAgICAgICAgJ01pc3NpbmcnOiAnTUlTU0lO
RycsCisgICAgICAgICdMZWFrJzogJ0xFQUsnLAogICAgICAgICAnUGFzcyc6ICdQQVNTJywKICAg
ICAgICAgJ1JlYmFzZWxpbmUnOiAnUkVCQVNFTElORScsCiAgICAgICAgICdTa2lwJzogJ1NLSVAn
LApAQCAtNzk0LDYgKzc5Niw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnMob2JqZWN0KToKICAg
ICAgICAgICAgICAgICAgICAgJ3RpbWVvdXQnOiBUSU1FT1VULAogICAgICAgICAgICAgICAgICAg
ICAnY3Jhc2gnOiBDUkFTSCwKICAgICAgICAgICAgICAgICAgICAgJ21pc3NpbmcnOiBNSVNTSU5H
LAorICAgICAgICAgICAgICAgICAgICAnbGVhayc6IExFQUssCiAgICAgICAgICAgICAgICAgICAg
ICdza2lwJzogU0tJUH0KIAogICAgICMgKGFnZ3JlZ2F0ZWQgYnkgY2F0ZWdvcnksIHBhc3MvZmFp
bC9za2lwLCB0eXBlKQpAQCAtODA2LDkgKzgwOSwxMCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25z
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFVRElPOiAnYXVkaW8g
ZmFpbHVyZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUkFTSDogJ2NyYXNo
ZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSU1FT1VUOiAndGltZW91dHMn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSVNTSU5HOiAnbWlzc2luZyByZXN1
bHRzJ30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUlTU0lORzogJ21pc3Npbmcg
cmVzdWx0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFQUs6ICdsZWFrcyd9
CiAKLSAgICBFWFBFQ1RBVElPTl9PUkRFUiA9IChQQVNTLCBDUkFTSCwgVElNRU9VVCwgTUlTU0lO
RywgRkFJTCwgSU1BR0UsIFNLSVApCisgICAgRVhQRUNUQVRJT05fT1JERVIgPSAoUEFTUywgQ1JB
U0gsIFRJTUVPVVQsIE1JU1NJTkcsIEZBSUwsIElNQUdFLCBMRUFLLCBTS0lQKQogCiAgICAgQlVJ
TERfVFlQRVMgPSAoJ2RlYnVnJywgJ3JlbGVhc2UnKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9l
eHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKaW5kZXggMDc1OTVkMjdhMDdhZjU0NGRiMzhmYmZiNWYy
ZjljNDJjOTY5MzM1Ny4uNmJkYTk3MzJjZDg5NzI4N2JhZDBkZmQzYWExZWExYThhOTJlMjc4MCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rl
c3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQpAQCAtNTMs
NiArNTMsNyBAQCBjbGFzcyBCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmV0dXJu
IFsnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywKICAgICAgICAgICAgICAgICAnZmFpbHVy
ZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCcsCiAgICAgICAgICAgICAgICAgJ2ZhaWx1
cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLAorICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBl
Y3RlZC9sZWFrLmh0bWwnLAogICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9taXNz
aW5nX3RleHQuaHRtbCcsCiAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdl
Lmh0bWwnLAogICAgICAgICAgICAgICAgICdwYXNzZXMvdGV4dC5odG1sJ10KQEAgLTYxLDYgKzYy
LDcgQEAgY2xhc3MgQmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJldHVybiAiIiIK
IEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgWyBGYWlsdXJlIF0KIEJ1Zyh0
ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sIFsgV29udEZpeCBdCitCdWcodGVzdCkg
ZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCBbIExlYWsgXQogQnVnKHRlc3QpIGZhaWx1cmVz
L2V4cGVjdGVkL21pc3NpbmdfaW1hZ2UuaHRtbCBbIFJlYmFzZWxpbmUgTWlzc2luZyBdCiBCdWco
dGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCBbIFdvbnRGaXggXQog
QnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgWyBXb250Rml4IE1hYyBdCkBA
IC04OSw2ICs5MSw3IEBAIGNsYXNzIEJhc2ljVGVzdHMoQmFzZSk6CiAgICAgICAgIHNlbGYucGFy
c2VfZXhwKHNlbGYuZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucygpKQogICAgICAgICBzZWxmLmFzc2Vy
dF9leHAoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsIEZBSUwpCiAgICAgICAgIHNlbGYu
YXNzZXJ0X2V4cCgnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCcsIFBBU1Mp
CisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJywg
UEFTUykKICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdwYXNzZXMvdGV4dC5odG1sJywgUEFTUykK
ICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sJywg
UEFTUykKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bW9kZWxzL3Rlc3RfZmFpbHVyZXMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlcy5weQppbmRleCA3YWViOGNmNzNjZjViZTZiM2I5ZWY2
NmI1ZDI0ODFjYmQyOWIwYmE4Li5iNzQ3NmNhY2QxNzA3MGM5ODJiODVmMTM0MGUwOGFjMWQ2YzY1
MDBjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9mYWlsdXJlcy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlcy5weQpAQCAtNTksNiArNTksOCBAQCBkZWYgZGV0ZXJt
aW5lX3Jlc3VsdF90eXBlKGZhaWx1cmVfbGlzdCk6CiAgICAgICAgIHJldHVybiB0ZXN0X2V4cGVj
dGF0aW9ucy5USU1FT1VUCiAgICAgZWxpZiBGYWlsdXJlRWFybHlFeGl0IGluIGZhaWx1cmVfdHlw
ZXM6CiAgICAgICAgIHJldHVybiB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQCisgICAgZWxpZiBGYWls
dXJlRG9jdW1lbnRMZWFrIGluIGZhaWx1cmVfdHlwZXM6CisgICAgICAgIHJldHVybiB0ZXN0X2V4
cGVjdGF0aW9ucy5MRUFLCiAgICAgZWxpZiAoRmFpbHVyZU1pc3NpbmdSZXN1bHQgaW4gZmFpbHVy
ZV90eXBlcyBvcgogICAgICAgICAgIEZhaWx1cmVNaXNzaW5nSW1hZ2UgaW4gZmFpbHVyZV90eXBl
cyBvcgogICAgICAgICAgIEZhaWx1cmVNaXNzaW5nSW1hZ2VIYXNoIGluIGZhaWx1cmVfdHlwZXMg
b3IKQEAgLTE2MCw2ICsxNjIsMjMgQEAgY2xhc3MgRmFpbHVyZUNyYXNoKFRlc3RGYWlsdXJlKToK
ICAgICAgICAgd3JpdGVyLndyaXRlX2NyYXNoX2xvZyhjcmFzaGVkX2RyaXZlcl9vdXRwdXQuY3Jh
c2hfbG9nKQogCiAKK2NsYXNzIEZhaWx1cmVMZWFrKFRlc3RGYWlsdXJlKToKKyAgICBkZWYgX19p
bml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKEZhaWx1cmVMZWFrLCBzZWxmKS5fX2luaXRfXygp
CisKKyAgICBkZWYgbWVzc2FnZShzZWxmKToKKyAgICAgICAgcmV0dXJuICJsZWFrIgorCisKK2Ns
YXNzIEZhaWx1cmVEb2N1bWVudExlYWsoRmFpbHVyZUxlYWspOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsZWFrZWRfZG9jdW1lbnRfdXJscyk6CisgICAgICAgIHN1cGVyKEZhaWx1cmVEb2N1bWVu
dExlYWssIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2VsZi5sZWFrZWRfZG9jdW1lbnRfdXJs
cyA9IGxlYWtlZF9kb2N1bWVudF91cmxzCisKKyAgICBkZWYgbWVzc2FnZShzZWxmKToKKyAgICAg
ICAgcmV0dXJuICJ0ZXN0IGxlYWtlZCBkb2N1bWVudCVzICVzIiAlICgicyIgaWYgbGVuKHNlbGYu
bGVha2VkX2RvY3VtZW50X3VybHMpIGVsc2UgIiIsICcsICcuam9pbihzZWxmLmxlYWtlZF9kb2N1
bWVudF91cmxzKSkKKworCiBjbGFzcyBGYWlsdXJlTWlzc2luZ1Jlc3VsdChGYWlsdXJlVGV4dCk6
CiAgICAgZGVmIG1lc3NhZ2Uoc2VsZik6CiAgICAgICAgIHJldHVybiAiLWV4cGVjdGVkLnR4dCB3
YXMgbWlzc2luZyIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL21vZGVscy90ZXN0X3Jlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5CmluZGV4IDgyZTFmYjIxMTcxZjNhMmU2NTE1
ZmM3MTBhZDQ3Yjk3ZjE0YTkyM2QuLjkyMmE5NmUzM2RhODQyYTY5YzBjMzI4OWRlNjIwMDIxMjFi
ZTBiNGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X3Jlc3VsdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5weQpAQCAtNjgsNiArNjgsMTIgQEAgY2xhc3MgVGVz
dFJlc3VsdChvYmplY3QpOgogICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKICAgICAgICAgcmV0dXJu
IHNlbGYudGVzdF9uYW1lLl9faGFzaF9fKCkKIAorICAgIGRlZiBjb252ZXJ0X3RvX2ZhaWx1cmUo
c2VsZiwgZmFpbHVyZV9yZXN1bHQpOgorICAgICAgICBpZiBzZWxmLnR5cGUgaXMgZmFpbHVyZV9y
ZXN1bHQudHlwZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLmZhaWx1cmVzLmV4
dGVuZChmYWlsdXJlX3Jlc3VsdC5mYWlsdXJlcykKKyAgICAgICAgc2VsZi50eXBlID0gdGVzdF9m
YWlsdXJlcy5kZXRlcm1pbmVfcmVzdWx0X3R5cGUoc2VsZi5mYWlsdXJlcykKKwogICAgIGRlZiBo
YXNfZmFpbHVyZV9tYXRjaGluZ190eXBlcyhzZWxmLCAqZmFpbHVyZV9jbGFzc2VzKToKICAgICAg
ICAgZm9yIGZhaWx1cmUgaW4gc2VsZi5mYWlsdXJlczoKICAgICAgICAgICAgIGlmIHR5cGUoZmFp
bHVyZSkgaW4gZmFpbHVyZV9jbGFzc2VzOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weQppbmRl
eCA1MDIxYTJmZjNlODQ4YTY5OGZhM2RiYWFlY2JjMjcyZjA1ZDU2MTI0Li4xOTc1MjBkMDMxZjg5
NzZiM2ZlNDIwYzUxNDk1ZTdiMDc0ODk4ZTE5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5w
eQpAQCAtOTMsNiArOTMsMzkgQEAgY2xhc3MgVGVzdFJ1blJlc3VsdHMob2JqZWN0KToKICAgICAg
ICAgaWYgdGVzdF9pc19zbG93OgogICAgICAgICAgICAgc2VsZi5zbG93X3Rlc3RzLmFkZCh0ZXN0
X3Jlc3VsdC50ZXN0X25hbWUpCiAKKyAgICBkZWYgY2hhbmdlX3Jlc3VsdF90b19mYWlsdXJlKHNl
bGYsIGV4aXN0aW5nX3Jlc3VsdCwgbmV3X3Jlc3VsdCwgZXhpc3RpbmdfZXhwZWN0ZWQsIG5ld19l
eHBlY3RlZCk6CisgICAgICAgIGFzc2VydCBleGlzdGluZ19yZXN1bHQudGVzdF9uYW1lID09IG5l
d19yZXN1bHQudGVzdF9uYW1lCisgICAgICAgIGlmIGV4aXN0aW5nX3Jlc3VsdC50eXBlIGlzIG5l
d19yZXN1bHQudHlwZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHNlbGYudGVzdHNf
YnlfZXhwZWN0YXRpb25bZXhpc3RpbmdfcmVzdWx0LnR5cGVdLnJlbW92ZShleGlzdGluZ19yZXN1
bHQudGVzdF9uYW1lKQorICAgICAgICBzZWxmLnRlc3RzX2J5X2V4cGVjdGF0aW9uW25ld19yZXN1
bHQudHlwZV0uYWRkKG5ld19yZXN1bHQudGVzdF9uYW1lKQorCisgICAgICAgIGhhZF9mYWlsdXJl
cyA9IGxlbihleGlzdGluZ19yZXN1bHQuZmFpbHVyZXMpID4gMAorCisgICAgICAgIGV4aXN0aW5n
X3Jlc3VsdC5jb252ZXJ0X3RvX2ZhaWx1cmUobmV3X3Jlc3VsdCkKKworICAgICAgICBpZiBub3Qg
aGFkX2ZhaWx1cmVzIGFuZCBsZW4oZXhpc3RpbmdfcmVzdWx0LmZhaWx1cmVzKToKKyAgICAgICAg
ICAgIHNlbGYudG90YWxfZmFpbHVyZXMgKz0gMQorCisgICAgICAgIGlmIGxlbihleGlzdGluZ19y
ZXN1bHQuZmFpbHVyZXMpOgorICAgICAgICAgICAgc2VsZi5mYWlsdXJlc19ieV9uYW1lW2V4aXN0
aW5nX3Jlc3VsdC50ZXN0X25hbWVdID0gZXhpc3RpbmdfcmVzdWx0LmZhaWx1cmVzCisKKyAgICAg
ICAgaWYgbm90IGV4aXN0aW5nX2V4cGVjdGVkIGFuZCBuZXdfZXhwZWN0ZWQ6CisgICAgICAgICAg
ICAjIHRlc3QgY2hhbmdlZCBmcm9tIHVuZXhwZWN0ZWQgdG8gZXhwZWN0ZWQKKyAgICAgICAgICAg
IHNlbGYuZXhwZWN0ZWQgKz0gMQorICAgICAgICAgICAgc2VsZi51bmV4cGVjdGVkX3Jlc3VsdHNf
YnlfbmFtZS5wb3AoZXhpc3RpbmdfcmVzdWx0LnRlc3RfbmFtZSwgTm9uZSkKKyAgICAgICAgICAg
IHNlbGYudW5leHBlY3RlZCAtPSAxCisgICAgICAgICAgICBpZiBoYWRfZmFpbHVyZXM6CisgICAg
ICAgICAgICAgICAgc2VsZi51bmV4cGVjdGVkX2ZhaWx1cmVzIC09IDEKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICMgdGVzdCBjaGFuZ2VkIGZyb20gZXhwZWN0ZWQgdG8gdW5leHBlY3RlZAor
ICAgICAgICAgICAgc2VsZi5leHBlY3RlZCAtPSAxCisgICAgICAgICAgICBzZWxmLnVuZXhwZWN0
ZWRfcmVzdWx0c19ieV9uYW1lW2V4aXN0aW5nX3Jlc3VsdC50ZXN0X25hbWVdID0gZXhpc3Rpbmdf
cmVzdWx0CisgICAgICAgICAgICBzZWxmLnVuZXhwZWN0ZWQgKz0gMQorICAgICAgICAgICAgaWYg
bGVuKGV4aXN0aW5nX3Jlc3VsdC5mYWlsdXJlcyk6CisgICAgICAgICAgICAgICAgc2VsZi51bmV4
cGVjdGVkX2ZhaWx1cmVzICs9IDEKKwogICAgIGRlZiBtZXJnZShzZWxmLCB0ZXN0X3J1bl9yZXN1
bHRzKToKICAgICAgICAgaWYgbm90IHRlc3RfcnVuX3Jlc3VsdHM6CiAgICAgICAgICAgICByZXR1
cm4gc2VsZgpAQCAtMTMyLDYgKzE2NSw3IEBAIGNsYXNzIFJ1bkRldGFpbHMob2JqZWN0KToKIAog
ZGVmIF9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhmYWlsdXJlcyk6CiAgICAgdGVzdF9kaWN0ID0g
e30KKwogICAgIGZhaWx1cmVfdHlwZXMgPSBbdHlwZShmYWlsdXJlKSBmb3IgZmFpbHVyZSBpbiBm
YWlsdXJlc10KICAgICAjIEZJWE1FOiBnZXQgcmlkIG9mIGFsbCB0aGlzIGlzXyogdmFsdWVzIG9u
Y2UgdGhlcmUgaXMgYSAxOjEgbWFwIGJldHdlZW4KICAgICAjIFRlc3RGYWlsdXJlIHR5cGUgYW5k
IHRlc3RfZXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OLgpAQCAtMTQ0LDYgKzE3OCwxNCBAQCBkZWYg
X2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKGZhaWx1cmVzKToKICAgICBpZiB0ZXN0X2ZhaWx1cmVz
LkZhaWx1cmVNaXNzaW5nSW1hZ2UgaW4gZmFpbHVyZV90eXBlcyBvciB0ZXN0X2ZhaWx1cmVzLkZh
aWx1cmVNaXNzaW5nSW1hZ2VIYXNoIGluIGZhaWx1cmVfdHlwZXM6CiAgICAgICAgIHRlc3RfZGlj
dFsnaXNfbWlzc2luZ19pbWFnZSddID0gVHJ1ZQogCisgICAgaWYgdGVzdF9mYWlsdXJlcy5GYWls
dXJlRG9jdW1lbnRMZWFrIGluIGZhaWx1cmVfdHlwZXM6CisgICAgICAgIGxlYWtzID0gW10KKyAg
ICAgICAgZm9yIGZhaWx1cmUgaW4gZmFpbHVyZXM6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNl
KGZhaWx1cmUsIHRlc3RfZmFpbHVyZXMuRmFpbHVyZURvY3VtZW50TGVhayk6CisgICAgICAgICAg
ICAgICAgZm9yIHVybCBpbiBmYWlsdXJlLmxlYWtlZF9kb2N1bWVudF91cmxzOgorICAgICAgICAg
ICAgICAgICAgICBsZWFrcy5hcHBlbmQoeyJkb2N1bWVudCI6IHVybH0pCisgICAgICAgIHRlc3Rf
ZGljdFsnbGVha3MnXSA9IGxlYWtzCisKICAgICBpZiAnaW1hZ2VfZGlmZl9wZXJjZW50JyBub3Qg
aW4gdGVzdF9kaWN0OgogICAgICAgICBmb3IgZmFpbHVyZSBpbiBmYWlsdXJlczoKICAgICAgICAg
ICAgIGlmIGlzaW5zdGFuY2UoZmFpbHVyZSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlSW1hZ2VIYXNo
TWlzbWF0Y2gpIG9yIGlzaW5zdGFuY2UoZmFpbHVyZSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVm
dGVzdE1pc21hdGNoKToKQEAgLTE3OCw4ICsyMjAsOCBAQCBkZWYgc3VtbWFyaXplX3Jlc3VsdHMo
cG9ydF9vYmosIGV4cGVjdGF0aW9ucywgaW5pdGlhbF9yZXN1bHRzLCByZXRyeV9yZXN1bHRzLCBl
bgogICAgIG51bV9taXNzaW5nID0gMAogICAgIG51bV9yZWdyZXNzaW9ucyA9IDAKICAgICBrZXl3
b3JkcyA9IHt9Ci0gICAgZm9yIGV4cGVjYXRpb25fc3RyaW5nLCBleHBlY3RhdGlvbl9lbnVtIGlu
IHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TLml0ZXJpdGVt
cygpOgotICAgICAgICBrZXl3b3Jkc1tleHBlY3RhdGlvbl9lbnVtXSA9IGV4cGVjYXRpb25fc3Ry
aW5nLnVwcGVyKCkKKyAgICBmb3IgZXhwZWN0YXRpb25fc3RyaW5nLCBleHBlY3RhdGlvbl9lbnVt
IGluIHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TLml0ZXJp
dGVtcygpOgorICAgICAgICBrZXl3b3Jkc1tleHBlY3RhdGlvbl9lbnVtXSA9IGV4cGVjdGF0aW9u
X3N0cmluZy51cHBlcigpCiAKICAgICBmb3IgbW9kaWZpZXJfc3RyaW5nLCBtb2RpZmllcl9lbnVt
IGluIHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMuTU9ESUZJRVJTLml0ZXJpdGVt
cygpOgogICAgICAgICBrZXl3b3Jkc1ttb2RpZmllcl9lbnVtXSA9IG1vZGlmaWVyX3N0cmluZy51
cHBlcigpCkBAIC0yMjUsNiArMjY3LDEwIEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29i
aiwgZXhwZWN0YXRpb25zLCBpbml0aWFsX3Jlc3VsdHMsIHJldHJ5X3Jlc3VsdHMsIGVuCiAgICAg
ICAgICAgICBpZiB0ZXN0X25hbWUgaW4gaW5pdGlhbF9yZXN1bHRzLnVuZXhwZWN0ZWRfcmVzdWx0
c19ieV9uYW1lOgogICAgICAgICAgICAgICAgIG51bV9taXNzaW5nICs9IDEKICAgICAgICAgICAg
ICAgICB0ZXN0X2RpY3RbJ3JlcG9ydCddID0gJ01JU1NJTkcnCisgICAgICAgIGVsaWYgcmVzdWx0
X3R5cGUgPT0gdGVzdF9leHBlY3RhdGlvbnMuTEVBSzoKKyAgICAgICAgICAgIGlmIHRlc3RfbmFt
ZSBpbiBpbml0aWFsX3Jlc3VsdHMudW5leHBlY3RlZF9yZXN1bHRzX2J5X25hbWU6CisgICAgICAg
ICAgICAgICAgbnVtX3JlZ3Jlc3Npb25zICs9IDEKKyAgICAgICAgICAgICAgICB0ZXN0X2RpY3Rb
J3JlcG9ydCddID0gJ1JFR1JFU1NJT04nCiAgICAgICAgIGVsaWYgdGVzdF9uYW1lIGluIGluaXRp
YWxfcmVzdWx0cy51bmV4cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZToKICAgICAgICAgICAgIGlmIHJl
dHJ5X3Jlc3VsdHMgYW5kIHRlc3RfbmFtZSBub3QgaW4gcmV0cnlfcmVzdWx0cy51bmV4cGVjdGVk
X3Jlc3VsdHNfYnlfbmFtZToKICAgICAgICAgICAgICAgICBhY3R1YWwuZXh0ZW5kKGV4cGVjdGF0
aW9ucy5tb2RlbCgpLmdldF9leHBlY3RhdGlvbnNfc3RyaW5nKHRlc3RfbmFtZSkuc3BsaXQoIiAi
KSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVs
cy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKaW5kZXggNzhm
NzM5N2EwOWI0NzM4Y2JmOWNmZDcwZjJhN2IwM2QyNTA0NTIwOS4uY2JkYTE5OTgwNjVhM2M3Yjdj
OTc2ODkwYzAzM2RhNDFlODU2YzJiOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3Vs
dHNfdW5pdHRlc3QucHkKQEAgLTQzLDEyICs0MywxNCBAQCBkZWYgZ2V0X3Jlc3VsdCh0ZXN0X25h
bWUsIHJlc3VsdF90eXBlPXRlc3RfZXhwZWN0YXRpb25zLlBBU1MsIHJ1bl90aW1lPTApOgogICAg
ICAgICBmYWlsdXJlcyA9IFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVBdWRpb01pc21hdGNoKCldCiAg
ICAgZWxpZiByZXN1bHRfdHlwZSA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSDoKICAgICAgICAg
ZmFpbHVyZXMgPSBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlQ3Jhc2goKV0KKyAgICBlbGlmIHJlc3Vs
dF90eXBlID09IHRlc3RfZXhwZWN0YXRpb25zLkxFQUs6CisgICAgICAgIGZhaWx1cmVzID0gW3Rl
c3RfZmFpbHVyZXMuRmFpbHVyZURvY3VtZW50TGVhayhbJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9m
YWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnXSldCiAgICAgcmV0dXJuIHRlc3RfcmVzdWx0cy5U
ZXN0UmVzdWx0KHRlc3RfbmFtZSwgZmFpbHVyZXM9ZmFpbHVyZXMsIHRlc3RfcnVuX3RpbWU9cnVu
X3RpbWUpCiAKIAogZGVmIHJ1bl9yZXN1bHRzKHBvcnQpOgogICAgIHRlc3RzID0gWydwYXNzZXMv
dGV4dC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcsICdmYWlsdXJlcy9l
eHBlY3RlZC9jcmFzaC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL2hhbmcuaHRtbCcsCi0gICAg
ICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwnXQorICAgICAgICAgICAgICdm
YWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRt
bCddCiAgICAgZXhwZWN0YXRpb25zID0gdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9u
cyhwb3J0LCB0ZXN0cykKICAgICBleHBlY3RhdGlvbnMucGFyc2VfYWxsX2V4cGVjdGF0aW9ucygp
CiAgICAgcmV0dXJuIHRlc3RfcnVuX3Jlc3VsdHMuVGVzdFJ1blJlc3VsdHMoZXhwZWN0YXRpb25z
LCBsZW4odGVzdHMpKQpAQCAtNjMsMTYgKzY1LDE5IEBAIGRlZiBzdW1tYXJpemVkX3Jlc3VsdHMo
cG9ydCwgZXhwZWN0ZWQsIHBhc3NpbmcsIGZsYWt5LCBpbmNsdWRlX3Bhc3Nlcz1GYWxzZSk6CiAg
ICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQv
YXVkaW8uaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLkFVRElPKSwgZXhwZWN0ZWQsIHRlc3RfaXNf
c2xvdykKICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9l
eHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0
ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0
KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gp
LCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdl
dF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25z
LkxFQUspLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogICAgIGVsaWYgcGFzc2luZzoKICAgICAg
ICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJyksIGV4
cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jl
c3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcpLCBleHBlY3RlZCwgdGVzdF9pc19z
bG93KQogICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4
cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogICAgICAgICBp
bml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0
bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFk
ZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnKSwgZXhwZWN0ZWQsIHRl
c3RfaXNfc2xvdykKICAgICBlbHNlOgogICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9y
ZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhw
ZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVz
dWx0KCdmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQVVE
SU8pLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRk
KGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcsIHRlc3RfZXhwZWN0
YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAgaW5pdGlhbF9y
ZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVz
dF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAg
IGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5o
dG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQog
CiAgICAgICAgICMgd2Ugb25seSBsaXN0IGhhbmcuaHRtbCBoZXJlLCBzaW5jZSBub3JtYWxseSB0
aGlzIGlzIFdvbnRGaXgKICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdm
YWlsdXJlcy9leHBlY3RlZC9oYW5nLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwg
ZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKQEAgLTgyLDYgKzg3LDcgQEAgZGVmIHN1bW1hcml6ZWRf
cmVzdWx0cyhwb3J0LCBleHBlY3RlZCwgcGFzc2luZywgZmxha3ksIGluY2x1ZGVfcGFzc2VzPUZh
bHNlKToKICAgICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQu
aHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgIHJldHJ5X3Jlc3VsdHMuYWRkKGdl
dF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lz
X3Nsb3cpCiAgICAgICAgIHJldHJ5X3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4
cGVjdGVkL2NyYXNoLmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQorICAgICAgICByZXRyeV9y
ZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnKSwgVHJ1
ZSwgdGVzdF9pc19zbG93KQogICAgIGVsc2U6CiAgICAgICAgIHJldHJ5X3Jlc3VsdHMgPSBOb25l
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5f
d2Via2l0X3Rlc3RzLnB5CmluZGV4IGNlZDZiOWRiODhiMzlkMjA2YjlhODhmMWEyMmJmOGI0OWNi
YjIyNTAuLjRlOGUzMTU3MTkwNjc5NTJmM2ZjM2VhY2MwMGE2NWYxZmFkZTViM2YgMTAwNzU1Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0cy5weQpAQCAtMjkwLDYgKzI5MCw3IEBAIGRlZiBwYXJzZV9hcmdzKGFyZ3MpOgogICAgICAg
ICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1kaXNwbGF5LXNlcnZlcicsIGNob2ljZXM9Wyd4dmZi
JywgJ3hvcmcnLCAnd2VzdG9uJywgJ3dheWxhbmQnXSwgZGVmYXVsdD0neHZmYicsCiAgICAgICAg
ICAgICBoZWxwPScieHZmYiI6IFVzZSBhIHZpcnR1YWxpemVkIFgxMSBzZXJ2ZXIuICJ4b3JnIjog
VXNlIHRoZSBjdXJyZW50IFgxMSBzZXNzaW9uLiAnCiAgICAgICAgICAgICAgICAgICcid2VzdG9u
IjogVXNlIGEgdmlydHVhbGl6ZWQgV2VzdG9uIHNlcnZlci4gIndheWxhbmQiOiBVc2UgdGhlIGN1
cnJlbnQgd2F5bGFuZCBzZXNzaW9uLicpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigi
LS13b3JsZC1sZWFrcyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9
IkNoZWNrIGZvciB3b3JsZCBsZWFrcyAoY3VycmVudGx5LCBvbmx5IGRvY3VtZW50cykuIERpZmZl
cnMgZnJvbSAtLWxlYWtzIGluIHRoYXQgdGhpcyB1c2VzIGludGVybmFsIGluc3RydW1lbnRhdGlv
biwgcmF0aGVyIHRoYW4gZXh0ZXJuYWwgdG9vbHMuIiksCiAgICAgXSkpCiAKICAgICBvcHRpb25f
Z3JvdXBfZGVmaW5pdGlvbnMuYXBwZW5kKCgiaU9TIE9wdGlvbnMiLCBbCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVn
cmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CmluZGV4IDdhYjMyN2FlYjcwZWFiMmZhN2M5
OTg4MDhlNmEzM2VkYjk0NWVkMjIuLmYwNGNiNThjZDY4MGFlMTNlODA2ZmUzZWQyYjY4ZTQ1MDZk
NGVlZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CkBA
IC02Nyw2ICs2NywxMCBAQCBkZWYgcGFyc2VfYXJncyhleHRyYV9hcmdzPU5vbmUsIHRlc3RzX2lu
Y2x1ZGVkPUZhbHNlLCBuZXdfcmVzdWx0cz1GYWxzZSwgcHJpbnRfbgogCiAgICAgaWYgbm90ICct
LWNoaWxkLXByb2Nlc3NlcycgaW4gZXh0cmFfYXJnczoKICAgICAgICAgYXJncy5leHRlbmQoWyct
LWNoaWxkLXByb2Nlc3NlcycsIDFdKQorCisgICAgaWYgbm90ICctLXdvcmxkLWxlYWtzJyBpbiBl
eHRyYV9hcmdzOgorICAgICAgICBhcmdzLmFwcGVuZCgnLS13b3JsZC1sZWFrcycpCisKICAgICBh
cmdzLmV4dGVuZChleHRyYV9hcmdzKQogICAgIGlmIG5vdCB0ZXN0c19pbmNsdWRlZDoKICAgICAg
ICAgIyBXZSB1c2UgdGhlIGdsb2IgdG8gdGVzdCB0aGF0IGdsb2JiaW5nIHdvcmtzLgpAQCAtMzMy
LDYgKzMzNiw5IEBAIGNsYXNzIFJ1blRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3Rp
bmdNaXhpbik6CiAgICAgZGVmIHRlc3RfZ2NfYmV0d2Vlbl90ZXN0cyhzZWxmKToKICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVuKFsnLS1nYy1iZXR3ZWVuLXRlc3RzJ10pKQogCisg
ICAgZGVmIHRlc3RfY2hlY2tfZm9yX3dvcmxkX2xlYWtzKHNlbGYpOgorICAgICAgICBzZWxmLmFz
c2VydFRydWUocGFzc2luZ19ydW4oWyctLXdvcmxkLWxlYWtzJ10pKQorCiAgICAgZGVmIHRlc3Rf
Y29tcGxleF90ZXh0KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUocGFzc2luZ19ydW4o
WyctLWNvbXBsZXgtdGV4dCddKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkK
aW5kZXggZWEyODdmZTAwMGIyNzc1ZDEwZDI3OTIzNzQyNGQzYWUzZTk4OWZiZC4uYTgwM2FkYjgz
N2Y5NzBjYWQ4NGFhNTNlZDhlY2Y4MGZjZjE3ZTk0MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZHJpdmVyLnB5CkBAIC0zNCw2ICszNCw3IEBAIGltcG9ydCBzaGxleAogaW1wb3J0IHN5cwog
aW1wb3J0IHRpbWUKIGltcG9ydCBvcworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRp
Y3QKIAogZnJvbSBvcy5wYXRoIGltcG9ydCBub3JtcGF0aAogZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtIGltcG9ydCBwYXRoCkBAIC0xMTksNiArMTIwLDEzIEBAIGNsYXNzIERyaXZlck91dHB1
dChvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5lcnJvciA9IHJlLnN1YihwYXR0ZXJuWzBdLCBw
YXR0ZXJuWzFdLCBzZWxmLmVycm9yKQogCiAKK2NsYXNzIERyaXZlclBvc3RUZXN0T3V0cHV0KG9i
amVjdCk6CisgICAgIiIiR3JvdXBzIGRhdGEgY29sbGVjdGVkIGZvciBhIHNldCBvZiB0ZXN0cywg
Y29sbGVjdGVkIGFmdGVyIGFsbCB0aG9zZSB0ZXN0c2UgaGF2ZSBydW4KKyAgICAoZm9yIGV4YW1w
bGUsIGRhdGEgYWJvdXQgbGVha2VkIG9iamVjdHMpIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHdvcmxkX2xlYWtzX2RpY3QpOgorICAgICAgICBzZWxmLndvcmxkX2xlYWtzX2RpY3QgPSB3b3Js
ZF9sZWFrc19kaWN0CisKKwogY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAgICAgIiIib2JqZWN0IGZv
ciBydW5uaW5nIHRlc3QocykgdXNpbmcgRHVtcFJlbmRlclRyZWUvV2ViS2l0VGVzdFJ1bm5lci4i
IiIKIApAQCAtMjQyLDYgKzI1MCwzOCBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAg
ICAgIGNyYXNoZWRfcHJvY2Vzc19uYW1lPXNlbGYuX2NyYXNoZWRfcHJvY2Vzc19uYW1lLAogICAg
ICAgICAgICAgY3Jhc2hlZF9waWQ9c2VsZi5fY3Jhc2hlZF9waWQsIGNyYXNoX2xvZz1jcmFzaF9s
b2csIHBpZD1waWQpCiAKKyAgICBkZWYgZG9fcG9zdF90ZXN0c193b3JrKHNlbGYpOgorICAgICAg
ICBpZiBub3Qgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3b3JsZF9sZWFrcycpOgorICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKKworICAgICAgICBpZiBub3Qgc2VsZi5fc2VydmVyX3Byb2Nlc3M6Cisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIF9sb2cuZGVidWcoJ0NoZWNraW5nIGZv
ciB3b3JsZCBsZWFrcy4uLicpCisgICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNzLndyaXRlKCcj
Q0hFQ0sgRk9SIFdPUkxEIExFQUtTXG4nKQorICAgICAgICBkZWFkbGluZSA9IHRpbWUudGltZSgp
ICsgMjAKKyAgICAgICAgYmxvY2sgPSBzZWxmLl9yZWFkX2Jsb2NrKGRlYWRsaW5lLCAnJywgd2Fp
dF9mb3Jfc3RkZXJyX2VvZj1UcnVlKQorCisgICAgICAgIF9sb2cuZGVidWcoJ1dvcmxkIGxlYWsg
cmVzdWx0OiAlcycgJSAoYmxvY2suZGVjb2RlZF9jb250ZW50KSkKKworICAgICAgICByZXR1cm4g
c2VsZi5fcGFyc2Vfd29ybGRfbGVha3Nfb3V0cHV0KGJsb2NrLmRlY29kZWRfY29udGVudCkKKwor
ICAgIGRlZiBfcGFyc2Vfd29ybGRfbGVha3Nfb3V0cHV0KHNlbGYsIG91dHB1dCk6CisgICAgICAg
IHRlc3RzX3dpdGhfd29ybGRfbGVha3MgPSBkZWZhdWx0ZGljdChsaXN0KQorCisgICAgICAgIGxh
c3RfdGVzdCA9IE5vbmUKKyAgICAgICAgZm9yIGxpbmUgaW4gb3V0cHV0LnNwbGl0bGluZXMoKToK
KyAgICAgICAgICAgIG0gPSByZS5tYXRjaCgnXlRFU1Q6ICguKykkJywgbGluZSkKKyAgICAgICAg
ICAgIGlmIG06CisgICAgICAgICAgICAgICAgbGFzdF90ZXN0ID0gc2VsZi51cmlfdG9fdGVzdCht
Lmdyb3VwKDEpKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoKCdeQUJBTkRPTkVEIERPQ1VNRU5U
OiAoLispJCcsIGxpbmUpCisgICAgICAgICAgICBpZiBtOgorICAgICAgICAgICAgICAgIGxlYWtl
ZF9kb2N1bWVudF91cmwgPSBtLmdyb3VwKDEpCisgICAgICAgICAgICAgICAgaWYgbGFzdF90ZXN0
OgorICAgICAgICAgICAgICAgICAgICB0ZXN0c193aXRoX3dvcmxkX2xlYWtzW2xhc3RfdGVzdF0u
YXBwZW5kKGxlYWtlZF9kb2N1bWVudF91cmwpCisKKyAgICAgICAgcmV0dXJuIERyaXZlclBvc3RU
ZXN0T3V0cHV0KHRlc3RzX3dpdGhfd29ybGRfbGVha3MpCisKICAgICBkZWYgX2dldF9jcmFzaF9s
b2coc2VsZiwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgogICAgICAgICByZXR1cm4gc2Vs
Zi5fcG9ydC5fZ2V0X2NyYXNoX2xvZyhzZWxmLl9jcmFzaGVkX3Byb2Nlc3NfbmFtZSwgc2VsZi5f
Y3Jhc2hlZF9waWQsIHN0ZG91dCwgc3RkZXJyLCBuZXdlcl90aGFuLCB0YXJnZXRfaG9zdD1zZWxm
Ll90YXJnZXRfaG9zdCkKIApAQCAtNDMyLDYgKzQ3Miw4IEBAIGNsYXNzIERyaXZlcihvYmplY3Qp
OgogICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1hY2NlbGVyYXRlZC1kcmF3aW5nJykKICAgICAg
ICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdyZW1vdGVfbGF5ZXJfdHJlZScpOgogICAgICAg
ICAgICAgY21kLmFwcGVuZCgnLS1yZW1vdGUtbGF5ZXItdHJlZScpCisgICAgICAgIGlmIHNlbGYu
X3BvcnQuZ2V0X29wdGlvbignd29ybGRfbGVha3MnKToKKyAgICAgICAgICAgIGNtZC5hcHBlbmQo
Jy0td29ybGQtbGVha3MnKQogICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3RocmVh
ZGVkJyk6CiAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLXRocmVhZGVkJykKICAgICAgICAgaWYg
c2VsZi5fbm9fdGltZW91dDoKQEAgLTcwNSw2ICs3NDcsOSBAQCBjbGFzcyBEcml2ZXJQcm94eShv
YmplY3QpOgogCiAgICAgICAgIHJldHVybiBzZWxmLl9kcml2ZXIucnVuX3Rlc3QoZHJpdmVyX2lu
cHV0LCBzdG9wX3doZW5fZG9uZSkKIAorICAgIGRlZiBkb19wb3N0X3Rlc3RzX3dvcmsoc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLl9kcml2ZXIuZG9fcG9zdF90ZXN0c193b3JrKCkKKwogICAg
IGRlZiBoYXNfY3Jhc2hlZChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2RyaXZlci5oYXNf
Y3Jhc2hlZCgpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKaW5kZXggZGY1ZTY3ZDA2
ODg4NGI4YWE4NGQzNTMwNTUwOWMwNmIzNzNmMmZiNi4uZjJkNmM2ZmZjYzM0MzE5YzQ0YjA0ZTY4
NjEzNjI5N2RhMjZjMGNmNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L3Rlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKQEAgLTk3
LDEyICs5NywxMiBAQCBjbGFzcyBUZXN0TGlzdChvYmplY3QpOgogIwogIyBUaGVzZSBudW1iZXJz
IG1heSBuZWVkIHRvIGJlIHVwZGF0ZWQgd2hlbmV2ZXIgd2UgYWRkIG9yIGRlbGV0ZSB0ZXN0cy4K
ICMKLVRPVEFMX1RFU1RTID0gNzIKK1RPVEFMX1RFU1RTID0gNzQKIFRPVEFMX1NLSVBTID0gOQot
VE9UQUxfUkVUUklFUyA9IDE0CitUT1RBTF9SRVRSSUVTID0gMTUKIAogVU5FWFBFQ1RFRF9QQVNT
RVMgPSA3Ci1VTkVYUEVDVEVEX0ZBSUxVUkVTID0gMTcKK1VORVhQRUNURURfRkFJTFVSRVMgPSAx
OAogCiAKIGRlZiB1bml0X3Rlc3RfbGlzdCgpOgpAQCAtMTE1LDYgKzExNSw3IEBAIGRlZiB1bml0
X3Rlc3RfbGlzdCgpOgogICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5o
dG1sJywgdGltZW91dD1UcnVlKQogICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvaGFu
Zy5odG1sJywgaGFuZz1UcnVlKQogICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvbWlz
c2luZ190ZXh0Lmh0bWwnLCBleHBlY3RlZF90ZXh0PU5vbmUpCisgICAgdGVzdHMuYWRkKCdmYWls
dXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnLCBsZWFrPVRydWUpCiAgICAgdGVzdHMuYWRkKCdmYWls
dXJlcy9leHBlY3RlZC9pbWFnZS5odG1sJywKICAgICAgICAgICAgICAgYWN0dWFsX2ltYWdlPSdp
bWFnZV9mYWlsLXBuZ3RFWHRjaGVja3N1bVx4MDBjaGVja3N1bV9mYWlsJywKICAgICAgICAgICAg
ICAgZXhwZWN0ZWRfaW1hZ2U9J2ltYWdlLXBuZ3RFWHRjaGVja3N1bVx4MDBjaGVja3N1bS1wbmcn
KQpAQCAtMTc2LDYgKzE3Nyw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDM0CiAgICAgdGVz
dHMuYWRkKCdmYWlsdXJlcy91bmV4cGVjdGVkL3NraXBfcGFzcy5odG1sJykKICAgICB0ZXN0cy5h
ZGQoJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvdGV4dC5odG1sJywgYWN0dWFsX3RleHQ9J3RleHRfZmFp
bC10eHQnKQogICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvdW5leHBlY3RlZC90aW1lb3V0Lmh0bWwn
LCB0aW1lb3V0PVRydWUpCisgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy91bmV4cGVjdGVkL2xlYWsu
aHRtbCcsIGxlYWs9VHJ1ZSkKICAgICB0ZXN0cy5hZGQoJ2h0dHAvdGVzdHMvcGFzc2VzL3RleHQu
aHRtbCcpCiAgICAgdGVzdHMuYWRkKCdodHRwL3Rlc3RzL3Bhc3Nlcy9pbWFnZS5odG1sJykKICAg
ICB0ZXN0cy5hZGQoJ2h0dHAvdGVzdHMvc3NsL3RleHQuaHRtbCcpCkBAIC0yODAsNiArMjgyLDcg
QEAgZGVmIGFkZF91bml0X3Rlc3RzX3RvX21vY2tfZmlsZXN5c3RlbShmaWxlc3lzdGVtKToKICAg
ICBpZiBub3QgZmlsZXN5c3RlbS5leGlzdHMoTEFZT1VUX1RFU1RfRElSICsgJy9wbGF0Zm9ybS90
ZXN0L1Rlc3RFeHBlY3RhdGlvbnMnKToKICAgICAgICAgZmlsZXN5c3RlbS53cml0ZV90ZXh0X2Zp
bGUoTEFZT1VUX1RFU1RfRElSICsgJy9wbGF0Zm9ybS90ZXN0L1Rlc3RFeHBlY3RhdGlvbnMnLCAi
IiIKIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sIFsgQ3Jhc2ggXQorQnVn
KHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCBbIExlYWsgXQogQnVnKHRlc3QpIGZh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIEJ1Zyh0ZXN0
KSBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sIFsgRmFpbHVyZSBdCiBCdWcodGVzdCkgZmFp
bHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpA
QCAtNTkxLDUgKzU5NCwxNyBAQCBjbGFzcyBUZXN0RHJpdmVyKERyaXZlcik6CiAgICAgICAgICAg
ICBjcmFzaGVkX3BpZD1jcmFzaGVkX3BpZCwgY3Jhc2hfbG9nPWNyYXNoX2xvZywKICAgICAgICAg
ICAgIHRlc3RfdGltZT10aW1lLnRpbWUoKSAtIHN0YXJ0X3RpbWUsIHRpbWVvdXQ9dGVzdC50aW1l
b3V0LCBlcnJvcj10ZXN0LmVycm9yLCBwaWQ9c2VsZi5waWQpCiAKKyAgICBkZWYgZG9fcG9zdF90
ZXN0c193b3JrKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3
b3JsZF9sZWFrcycpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICB0ZXN0X3dv
cmxkX2xlYWtzX291dHB1dCA9ICIiIlRFU1Q6IGZpbGU6Ly8vdGVzdC5jaGVja291dC9MYXlvdXRU
ZXN0cy9mYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwKK0FCQU5ET05FRCBET0NVTUVOVDogZmls
ZTovLy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzLy9mYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0
bWwKK1RFU1Q6IGZpbGU6Ly8vdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9mYWlsdXJlcy91bmV4
cGVjdGVkL2xlYWsuaHRtbAorQUJBTkRPTkVEIERPQ1VNRU5UOiBmaWxlOi8vL3Rlc3QuY2hlY2tv
dXQvTGF5b3V0VGVzdHMvL2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbAorVEVTVDogZmlsZTov
Ly90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL2ZhaWx1cmVzL3VuZXhwZWN0ZWQvbGVhay5odG1s
CitBQkFORE9ORUQgRE9DVU1FTlQ6IGZpbGU6Ly8vdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy8v
ZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay1zdWJmcmFtZS5odG1sIiIiCisgICAgICAgIHJldHVybiBz
ZWxmLl9wYXJzZV93b3JsZF9sZWFrc19vdXRwdXQodGVzdF93b3JsZF9sZWFrc19vdXRwdXQpCisK
ICAgICBkZWYgc3RvcChzZWxmKToKICAgICAgICAgc2VsZi5zdGFydGVkID0gRmFsc2UKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL09wdGlvbnMuY3BwCmluZGV4IGE1MTQ0MGI5MTg3NzZiNThhZDY4ZDhkZDVmNTg5
NTZjYzI3NjUzMTMuLjlkZDM3YjAyOGI0YTViNGFiNGRjMzM3MzQ5NjdiZTA3YTczYmE4NjcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIE9wdGlvbnNI
YW5kbGVyOjpPcHRpb25zSGFuZGxlcihPcHRpb25zJiBvKQogICAgIG9wdGlvbkxpc3QuYXBwZW5k
KE9wdGlvbigiLS1hbGxvdy1hbnktY2VydGlmaWNhdGUtZm9yLWFsbG93ZWQtaG9zdHMiLCAiQWxs
b3dzIGFueSBIVFRQUyBjZXJ0aWZpY2F0ZSBmb3IgYW4gYWxsb3dlZCBob3N0LiIsIGhhbmRsZU9w
dGlvbkFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0cykpOwogICAgIG9wdGlv
bkxpc3QuYXBwZW5kKE9wdGlvbigiLS1zaG93LXdlYnZpZXciLCAiU2hvdyB0aGUgV2ViVmlldyBk
dXJpbmcgdGVzdCBydW5zIChmb3IgZGVidWdnaW5nKSIsIGhhbmRsZU9wdGlvblNob3dXZWJWaWV3
KSk7CiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLXNob3ctdG91Y2hlcyIsICJTaG93
IHRoZSB0b3VjaGVzIGR1cmluZyB0ZXN0IHJ1bnMgKGZvciBkZWJ1Z2dpbmcpIiwgaGFuZGxlT3B0
aW9uU2hvd1RvdWNoZXMpKTsKLSAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tY2hlY2st
Zm9yLXdvcmxkLWxlYWtzIiwgIkNoZWNrIGZvciBsZWFrcyBvZiB3b3JsZCBvYmplY3RzIChjdXJy
ZW50bHksIGRvY3VtZW50cykiLCBoYW5kbGVPcHRpb25DaGVja0ZvcldvcmxkTGVha3MpKTsKKyAg
ICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0td29ybGQtbGVha3MiLCAiQ2hlY2sgZm9yIGxl
YWtzIG9mIHdvcmxkIG9iamVjdHMgKGN1cnJlbnRseSwgZG9jdW1lbnRzKSIsIGhhbmRsZU9wdGlv
bkNoZWNrRm9yV29ybGRMZWFrcykpOwogCiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKDAs
IDAsIGhhbmRsZU9wdGlvblVubWF0Y2hlZCkpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAppbmRleCA2OGE0ZDEyZjUwNjkyZDAwNTBlNzM1YjU0NjdmYzA5YjBj
MGQzYjMxLi5iNjNkYTAxOGQzNTRlNWI1YjY3YTIyYWIxYTlmMzRkZDIwMTY0NjBkIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtOTUwLDYgKzk1MCw5IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnVwZGF0ZUxpdmVEb2N1bWVudHNBZnRlclRlc3QoKQogCiB2
b2lkIFRlc3RDb250cm9sbGVyOjpjaGVja0ZvcldvcmxkTGVha3MoKQogeworICAgIGlmICghVGVz
dENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCkpCisgICAgICAgIHJldHVybjsK
KwogICAgIEFzeW5jVGFzayhbXSgpIHsKICAgICAgICAgLy8gVGhpcyBydW5zIGF0IHRoZSBlbmQg
b2YgYSBzZXJpZXMgb2YgdGVzdHMuIEl0IGNsZWFycyBjYWNoZXMsIHJ1bnMgYSBHQyBhbmQgdGhl
biBmZXRjaGVzIHRoZSBsaXN0IG9mIGRvY3VtZW50cy4KICAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiQ2hlY2tGb3JXb3JsZExlYWtzIikpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMzZTAxYzZiMjU2NWE5ZGY5Njgx
ZTNlNTkzODhmZTIyMzgzM2FkZWUuLjU1MGZhYThlOWY4ODViM2JiNjJmYTA1YzI4ODI2NGZhOTU1
MDU2MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wOC0yOCAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBUZWFjaCB3ZWJraXRweSBob3cgdG8g
Y2hlY2sgbGVha3MgYW5kIHRyZWF0IGxlYWtzIGFzIHRlc3QgZmFpbHVyZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTA2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgUHV0IHNvbWUgZmFr
ZSBsZWFrcyBpbiBmdWxsX3Jlc3VsdHMuanNvbiwgYW5kIHVwZGF0ZSByZXN1bHRzLmh0bWwgdG8g
c2hvdyBhIHRhYmxlCisgICAgICAgIG9mIGxlYWtzIHdoZW4gcmVzdWx0cyBhcmUgZXhwYW5kZWQu
CisKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvZnVsbF9yZXN1bHRzLmpzb246CisgICAgICAgICog
ZmFzdC9oYXJuZXNzL3Jlc3VsdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvaGFybmVz
cy9yZXN1bHRzLmh0bWw6CisKIDIwMTgtMDgtMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYktpdE1lZGlhU2Vzc2lvbiBzaG91bGQgYmUgR0MgY29sbGVj
dGFibGUgd2hlbiBpdHMgZG9jdW1lbnQgaXMgYmVpbmcgc3RvcHBlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9oYXJuZXNzL2Z1bGxfcmVzdWx0cy5qc29uIGIvTGF5b3V0VGVzdHMvZmFz
dC9oYXJuZXNzL2Z1bGxfcmVzdWx0cy5qc29uCmluZGV4IDNlODVkMmEwMGMzZGRiZjY5YjZjYWVm
MTMyYWRiZDUzZmQ5NTIwNmIuLjEwZjdiODUxYjk3NTRmYmFjNTk2MDJkZjk4YjE5YjRiYzY3NGFj
YmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9mdWxsX3Jlc3VsdHMuanNv
bgorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvZnVsbF9yZXN1bHRzLmpzb24KQEAgLTEx
LDYgKzExLDI2IEBAIEFERF9SRVNVTFRTKHsKICAgICAgICAgICAgICAgICAgICAgICAgICJyZXBv
cnQiOiAiUkVHUkVTU0lPTiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAi
UEFTUyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAiYWN0dWFsIjogIlRFWFQiCisgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICJpbWFnZS1mYWlsLXdpdGgtbGVh
ay5odG1sIjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJlcG9ydCI6ICJSRUdSRVNTSU9O
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJhY3R1YWwiOiAiSU1BR0UgTEVBSyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAiaW1hZ2VfZGlmZl9wZXJjZW50IjogMC4yNiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJsZWFrcyI6IFt7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvY3VtZW50Ijog
Imh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9XZWJLaXQvY2FjaGUtc3RvcmFnZS9pbWFnZS1mYWlsLXdp
dGgtbGVhay5odG1sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH1dCisgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICJsZWFreS13b3JrZXIuaHRtbCI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJyZXBvcnQiOiAiUkVHUkVTU0lPTiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAiYWN0dWFsIjogIkxFQUsiLAorICAgICAgICAgICAgICAgICAgICAgICAgImhhc19zdGRlcnIi
OiB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgImxlYWtzIjogW3sKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZG9jdW1lbnQiOiAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL1dlYktp
dC9jYWNoZS1zdG9yYWdlL2xlYWt5LXdvcmtlci5odG1sIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvY3VtZW50IjogImh0
dHA6Ly9sb2NhbGhvc3Q6ODgwMC9XZWJLaXQvY2FjaGUtc3RvcmFnZS9yZXNvdXJjZXMvbGVha3kt
d29ya2VyLXN1YmZyYW1lLmh0bWwiCisgICAgICAgICAgICAgICAgICAgICAgICB9XQogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKQEAgLTY5
LDYgKzg5LDE0IEBAIEFERF9SRVNVTFRTKHsKICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogIklNQUdFIiwKICAgICAgICAgICAgICAgICAgICAgImFjdHVhbCI6ICJQQVNTIiwKICAgICAg
ICAgICAgICAgICAgICAgInJlZnRlc3RfdHlwZSI6IFsiIT0iXQorICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgInNwZWxsaW5nLWxlYWt5LXJlZi5odG1sIjogeworICAgICAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiAiTEVBSyIsCisgICAgICAgICAgICAgICAgICAgICJhY3R1
YWwiOiAiTEVBSyIsCisgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0X3R5cGUiOiBbIiE9Il0s
CisgICAgICAgICAgICAgICAgICAgICJsZWFrcyI6IFt7CisgICAgICAgICAgICAgICAgICAgICAg
ICAiZG9jdW1lbnQiOiAiZmlsZTovLy9Wb2x1bWVzL0RhdGEvc2xhdmUvaGlnaHNpZXJyYS1yZWxl
YXNlLXRlc3RzLXdrMi9idWlsZC9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5n
LWxlYWt5LXJlZi5odG1sIgorICAgICAgICAgICAgICAgICAgICB9XQogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgfSwKQEAgLTEyMSwyMCArMTQ5LDIwIEBAIEFERF9S
RVNVTFRTKHsKICAgICAgICAgfQogICAgIH0sCiAgICAgInNraXBwZWQiOiA1MzY3LAotICAgICJu
dW1fcmVncmVzc2lvbnMiOiAyLAorICAgICJudW1fcmVncmVzc2lvbnMiOiA3LAogICAgICJvdGhl
cl9jcmFzaGVzIjogewogICAgICAgICAiRHVtcFJlbmRlclRyZWUtNTQ4ODgiOiB7fSwKICAgICAg
ICAgIkR1bXBSZW5kZXJUcmVlLTU2ODA0Ijoge30sCiAgICAgfSwKICAgICAiaW50ZXJydXB0ZWQi
OiBmYWxzZSwKLSAgICAibnVtX21pc3NpbmciOiAwLAorICAgICJudW1fbWlzc2luZyI6IDEsCiAg
ICAgImxheW91dF90ZXN0c19kaXIiOiAiL1ZvbHVtZXMvRGF0YS9zbGF2ZS9oaWdoc2llcnJhLXJl
bGVhc2UtdGVzdHMtd2syL2J1aWxkL0xheW91dFRlc3RzIiwKICAgICAidmVyc2lvbiI6IDQsCiAg
ICAgIm51bV9wYXNzZXMiOiA0OTM4NywKICAgICAicGl4ZWxfdGVzdHNfZW5hYmxlZCI6IGZhbHNl
LAogICAgICJkYXRlIjogIjA1OjM4UE0gb24gQXVndXN0IDE1LCAyMDE4IiwKICAgICAiaGFzX3By
ZXR0eV9wYXRjaCI6IHRydWUsCi0gICAgImZpeGFibGUiOiA2MzYwLAorICAgICJmaXhhYmxlIjog
NSwKICAgICAibnVtX2ZsYWt5IjogMCwKICAgICAidXNlc19leHBlY3RhdGlvbnNfZmlsZSI6IHRy
dWUsCiAgICAgInJldmlzaW9uIjogIjIzNDkwNSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaGFybmVzcy9yZXN1bHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVz
cy9yZXN1bHRzLWV4cGVjdGVkLnR4dAppbmRleCAxYjUwNTMwMWU3MzE3MDRiMDU1OGQzOGU5NDJi
YWRjNmUzY2VhMjZkLi5kNTMxOGU2OGQ2NTE2MjFiYTEwMzdhZThhNTYzNzk4ZWRiM2VmMWIyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVzdWx0cy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc3VsdHMtZXhwZWN0ZWQudHh0CkBAIC0x
LDYgKzEsNyBAQAogVXNlIHRoZSBpLCBqLCBrIGFuZCBsIGtleXMgdG8gbmF2aWdhdGUsIGUsIGMg
dG8gZXhwYW5kIGFuZCBjb2xsYXBzZSwgYW5kIGYgdG8gZmxhZwogZXhwYW5kIGFsbCBjb2xsYXBz
ZSBhbGwgb3B0aW9ucwogT25seSB1bmV4cGVjdGVkIHJlc3VsdHMKK1RvZ2dsZSBpbWFnZXMKIFVz
ZSBuZXdsaW5lcyBpbiBmbGFnZ2VkIGxpc3QKIFRlc3RzIHRoYXQgY3Jhc2hlZCAoMSk6IGZsYWcg
YWxsCiAKQEAgLTksMTIgKzEwLDE0IEBAIE90aGVyIGNyYXNoZXMgKDIpOiBmbGFnIGFsbAogCiAr
RHVtcFJlbmRlclRyZWUtNTQ4ODgJY3Jhc2ggbG9nCiArRHVtcFJlbmRlclRyZWUtNTY4MDQJY3Jh
c2ggbG9nCi1UZXN0cyB0aGF0IGZhaWxlZCB0ZXh0L3BpeGVsL2F1ZGlvIGRpZmYgKDMpOiBmbGFn
IGFsbAorVGVzdHMgdGhhdCBmYWlsZWQgdGV4dC9waXhlbC9hdWRpbyBkaWZmICg1KTogZmxhZyBh
bGwKIAotIHRlc3QgCXJlc3VsdHMJCWFjdHVhbCBmYWlsdXJlCWV4cGVjdGVkIGZhaWx1cmUJaGlz
dG9yeQorIHRlc3QgCXJlc3VsdHMJaW1hZ2UgcmVzdWx0cwlhY3R1YWwgZmFpbHVyZQlleHBlY3Rl
ZCBmYWlsdXJlCWhpc3RvcnkKICtjc3MxL2ZvbnRfcHJvcGVydGllcy9mb250X2ZhbWlseS5odG1s
CWV4cGVjdGVkIGFjdHVhbCBkaWZmIHByZXR0eSBkaWZmCWltYWdlcwl0ZXh0IG1pc3NpbmcJCWhp
c3RvcnkKICtodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy10
b3AtZnJhbWUuaHRtbAlleHBlY3RlZCBhY3R1YWwgZGlmZiBwcmV0dHkgZGlmZgkJdGV4dAlwYXNz
IHRpbWVvdXQJaGlzdG9yeQogK2h0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvY2FjaGUtcHV0LWtleXMu
aHR0cHMuYW55Lndvcmtlci5odG1sCWV4cGVjdGVkIGFjdHVhbCBkaWZmIHByZXR0eSBkaWZmCQl0
ZXh0CXBhc3MJaGlzdG9yeQorK2h0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvaW1hZ2UtZmFpbC13aXRo
LWxlYWsuaHRtbAkJaW1hZ2VzIGRpZmYgKDAuMjYlKQlpbWFnZSBsZWFrCXBhc3MJaGlzdG9yeQor
K2h0dHAvd3B0L2NhY2hlLXN0b3JhZ2UvbGVha3ktd29ya2VyLmh0bWwJCQlsZWFrCXBhc3MJaGlz
dG9yeQogVGVzdHMgdGhhdCBoYWQgbm8gZXhwZWN0ZWQgcmVzdWx0cyAocHJvYmFibHkgbmV3KSAo
MSk6IGZsYWcgYWxsCiAKIHRlc3QJcmVzdWx0cwlpbWFnZSByZXN1bHRzCWFjdHVhbCBmYWlsdXJl
CWV4cGVjdGVkIGZhaWx1cmUJaGlzdG9yeQpAQCAtMjIsOSArMjUsMTAgQEAgc3ZnL2JhdGlrL3Nt
YWxsRm9udHMuc3ZnCQkJbWlzc2luZwkJaGlzdG9yeQogVGVzdHMgdGhhdCB0aW1lZCBvdXQgKDEp
OiBmbGFnIGFsbAogCiArcGxhdGZvcm0vbWFjL21lZGlhL2F1ZGlvLXNlc3Npb24tY2F0ZWdvcnkt
dmlkZW8tcGF1c2VkLmh0bWwJZXhwZWN0ZWQgYWN0dWFsIGRpZmYgcHJldHR5IGRpZmYJaGlzdG9y
eQotVGVzdHMgdGhhdCBoYWQgc3RkZXJyIG91dHB1dCAoMik6IGZsYWcgYWxsCitUZXN0cyB0aGF0
IGhhZCBzdGRlcnIgb3V0cHV0ICgzKTogZmxhZyBhbGwKIAogK2h0dHAvdGVzdHMvY29udGVudGV4
dGVuc2lvbnMvdG9wLXVybC5odG1sCXN0ZGVycgloaXN0b3J5CisraHR0cC93cHQvY2FjaGUtc3Rv
cmFnZS9sZWFreS13b3JrZXIuaHRtbAlzdGRlcnIJaGlzdG9yeQogK3BsYXRmb3JtL21hYy9tZWRp
YS9hdWRpby1zZXNzaW9uLWNhdGVnb3J5LXZpZGVvLXBhdXNlZC5odG1sCXN0ZGVycgloaXN0b3J5
CiBGbGFreSB0ZXN0cyAoZmFpbGVkIHRoZSBmaXJzdCBydW4gYW5kIHBhc3NlZCBvbiByZXRyeSkg
KDEpOiBmbGFnIGFsbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVz
dWx0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc3VsdHMuaHRtbAppbmRleCA4
YjI5MWFkZDc4MGQzOTA4MzQxMmIzMzUyMjY0MGUwYWYzZWJlMmQxLi5iZTJiN2M0YzViNTdiZDg1
OWI5OGFkYjBhZjgxZTFjMzE5MGMxN2E0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hh
cm5lc3MvcmVzdWx0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9yZXN1bHRz
Lmh0bWwKQEAgLTQwLDYgKzQwLDExIEBAIHRkOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgewogCiB0aCwg
dGQgewogICAgIHBhZGRpbmc6IDFweCA0cHg7CisgICAgdmVydGljYWwtYWxpZ246IHRvcDsKK30K
KwordGQ6bnRoLWNoaWxkKDEpIHsgIAorICAgIG1pbi13aWR0aDogMzVlbTsKIH0KIAogdGg6ZW1w
dHksIHRkOmVtcHR5IHsKQEAgLTUxLDYgKzU2LDE1IEBAIHRoIHsKICAgICAtbW96LXVzZXItc2Vs
ZWN0OiBub25lOwogfQogCitkdCA+IHN1cCB7CisgICAgdmVydGljYWwtYWxpZ246dGV4dC10b3A7
CisgICAgZm9udC1zaXplOjc1JTsKK30KKworc3VwID4gYSB7CisgICAgdGV4dC1kZWNvcmF0aW9u
OiBub25lOworfQorCiAuY29udGVudC1jb250YWluZXIgewogICAgIG1pbi1oZWlnaHQ6IDA7CiB9
CkBAIC0xMzgsNiArMTUyLDEzIEBAIHRib2R5LmZsYWdnZWQgLmZsYWcgewogICAgIHZlcnRpY2Fs
LWFsaWduOiB0b3A7CiB9CiAKKy5sZWFrcyA+IHRhYmxlIHsKKyAgICBtYXJnaW46IDRweDsKK30K
Ky5sZWFrcyA+IHRkIHsKKyAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7Cit9CisKICNvcHRpb25zIHsK
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKIH0KQEAgLTM2OSw2ICszOTAsMTEgQEAgY2xh
c3MgVGVzdFJlc3VsdAogICAgICAgICByZXR1cm4gdGhpcy5pbmZvLmFjdHVhbC5pbmRleE9mKCdB
VURJTycpICE9IC0xOwogICAgIH0KIAorICAgIGhhc0xlYWsoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuaW5mby5hY3R1YWwuaW5kZXhPZignTEVBSycpICE9IC0xOworICAgIH0KKwogICAg
IGlzQ3Jhc2goKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuaW5mby5hY3R1YWwgPT0gJ0NS
QVNIJzsKQEAgLTc4Nyw2ICs4MTMsMTcgQEAgY2xhc3MgVGVzdFJlc3VsdHNDb250cm9sbGVyCiAg
ICAgICAgIHJldHVybiBiYXNlUGF0aDsKICAgICB9CiAKKyAgICBjb252ZXJ0VG9MYXlvdXRUZXN0
QmFzZVJlbGF0aXZlVVJMKGZ1bGxVUkwpCisgICAgeworICAgICAgICBpZiAoZnVsbFVSTC5zdGFy
dHNXaXRoKCdmaWxlOi8vJykpIHsKKyAgICAgICAgICAgIGxldCB1cmxQcmVmaXggPSAnZmlsZTov
LycgKyB0aGlzLmxheW91dFRlc3RzQmFzZVBhdGgoKTsKKyAgICAgICAgICAgIGlmIChmdWxsVVJM
LnN0YXJ0c1dpdGgodXJsUHJlZml4KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVsbFVSTC5z
dWJzdHJpbmcodXJsUHJlZml4Lmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IHJldHVybiBmdWxsVVJMOworICAgIH0KKwogICAgIHNob3VsZFVzZVRyYWNMaW5rcygpCiAgICAg
ewogICAgICAgICByZXR1cm4gIXRoaXMudGVzdFJlc3VsdHMubGF5b3V0VGVzdHNEaXIoKSB8fCAh
bG9jYXRpb24udG9TdHJpbmcoKS5pbmRleE9mKCdmaWxlOi8vJykgPT0gMDsKQEAgLTEwMjAsOSAr
MTA1Nyw0NyBAQCBjbGFzcyBUZXN0UmVzdWx0c0NvbnRyb2xsZXIKICAgICAgICAgICAgIFV0aWxz
LmFwcGVuZEhUTUwobmV3Q2VsbCwgcmVzdWx0KTsgICAgCiAgICAgICAgIH0KIAorICAgICAgICBp
ZiAodGVzdFJlc3VsdC5oYXNMZWFrKCkpCisgICAgICAgICAgICBuZXdDZWxsLmFwcGVuZENoaWxk
KFRlc3RSZXN1bHRzQ29udHJvbGxlci5fbWFrZUxlYWtzQ2VsbCh0ZXN0UmVzdWx0KSk7CisKICAg
ICAgICAgbmV3Um93LmFwcGVuZENoaWxkKG5ld0NlbGwpOworCiAgICAgICAgIHJldHVybiBuZXdS
b3c7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBfbWFrZUxlYWtzQ2VsbCh0ZXN0UmVzdWx0KQor
ICAgIHsKKyAgICAgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gJ3Jlc3VsdC1jb250YWluZXIgbGVh
a3MnOworICAgICAgICAKKyAgICAgICAgbGV0IGxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgICAgIGxhYmVsLmNsYXNzTmFtZSA9ICdsYWJlbCc7CisgICAgICAgIGxh
YmVsLnRleHRDb250ZW50ID0gIkxlYWtzIjsKKyAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxk
KGxhYmVsKTsKKworICAgICAgICBsZXQgbGVha3NUYWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3RhYmxlJyk7CisgICAgICAgIAorICAgICAgICBmb3IgKGxldCBsZWFrIG9mIHRlc3RSZXN1
bHQuaW5mby5sZWFrcykgeworICAgICAgICAgICAgbGV0IGxlYWtSb3cgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCd0cicpOworCisgICAgICAgICAgICBmb3IgKGxldCBsZWFrZWRPYmplY3RUeXBl
IGluIGxlYWspIHsKKyAgICAgICAgICAgICAgICBsZXQgdGggPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd0aCcpOworICAgICAgICAgICAgICAgIHRoLnRleHRDb250ZW50ID0gbGVha2VkT2JqZWN0
VHlwZTsKKyAgICAgICAgICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0
ZCcpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGxldCB1cmwgPSBsZWFrW2xl
YWtlZE9iamVjdFR5cGVdOyAvLyBGSVhNRTogd2hlbiB3ZSB0cmFjayBsZWFrcyBvdGhlciB0aGFu
IGRvY3VtZW50cywgdGhpcyBtaWdodCBub3QgYmUgYSBVUkwuCisgICAgICAgICAgICAgICAgdGQu
dGV4dENvbnRlbnQgPSBjb250cm9sbGVyLmNvbnZlcnRUb0xheW91dFRlc3RCYXNlUmVsYXRpdmVV
UkwodXJsKQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGxlYWtSb3cuYXBwZW5k
Q2hpbGQodGgpOworICAgICAgICAgICAgICAgIGxlYWtSb3cuYXBwZW5kQ2hpbGQodGQpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBsZWFrc1RhYmxlLmFwcGVuZENo
aWxkKGxlYWtSb3cpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjb250YWluZXIuYXBw
ZW5kQ2hpbGQobGVha3NUYWJsZSk7CisgICAgICAgIHJldHVybiBjb250YWluZXI7CisgICAgfQog
CiAgICAgc3RhdGljIF9yZXN1bHRJZnJhbWUoc3JjKQogICAgIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>