<?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>214495</bug_id>
          
          <creation_ts>2020-07-17 13:45:42 -0700</creation_ts>
          <short_desc>Resync web-platform-tests/background-fetch from upstream</short_desc>
          <delta_ts>2020-07-17 15:58:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1672604</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-17 13:45:42 -0700</bug_when>
    <thetext>Resync web-platform-tests/background-fetch from upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672605</commentid>
    <comment_count>1</comment_count>
      <attachid>404588</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-17 13:47:34 -0700</bug_when>
    <thetext>Created attachment 404588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672657</commentid>
    <comment_count>2</comment_count>
      <attachid>404588</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-07-17 15:13:18 -0700</bug_when>
    <thetext>Comment on attachment 404588
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672693</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-17 15:57:09 -0700</bug_when>
    <thetext>Committed r264542: &lt;https://trac.webkit.org/changeset/264542&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404588.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672695</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-17 15:58:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/65748448&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404588</attachid>
            <date>2020-07-17 13:47:34 -0700</date>
            <delta_ts>2020-07-17 15:57:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214495-20200717134733.patch</filename>
            <type>text/plain</type>
            <size>76220</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NTMxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCA1MTIwMTE1NDk5MTRiODQ3ZWJjZDU2ZGU3Nzc4ZjQ3ZGFhMTIyZjg2Li42MWZkNGM4MTg1
YTk0NWIwYWFiZTZiYThjM2JkYTgzZTE4NjlkMTQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4MyBAQAorMjAyMC0wNy0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3Vu
ZC1mZXRjaCBmcm9tIHVwc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTQ0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gg
ZnJvbSB1cHN0cmVhbSA4MWRlOTg2MzIyYTBkZTkwZjIuCisKKyAgICAgICAgKiByZXNvdXJjZXMv
aW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9i
YWNrZ3JvdW5kLWZldGNoL01FVEEueW1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvYmFja2dyb3VuZC1mZXRjaC9PV05FUlM6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvYWJvcnQuaHR0cHMud2luZG93Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2Fib3J0
Lmh0dHBzLndpbmRvdy5qczogQWRkZWQuCisgICAgICAgIChiYWNrZ3JvdW5kRmV0Y2hUZXN0LmFz
eW5jIHRlc3QpOgorICAgICAgICAoYmFja2dyb3VuZEZldGNoLmF3YWl0Lm5ldy5Qcm9taXNlLnJl
c29sdmUucmVnaXN0cmF0aW9uLm9ucHJvZ3Jlc3MuYXN5bmMgZXZlbnQpOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5
Lmh0dHBzLndpbmRvdy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
YmFja2dyb3VuZC1mZXRjaC9jb250ZW50LXNlY3VyaXR5LXBvbGljeS5odHRwcy53aW5kb3cuanM6
CisgICAgICAgIChiYWNrZ3JvdW5kRmV0Y2hUZXN0KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvYmFja2dyb3VuZC1mZXRjaC9jcmVkZW50aWFscy1pbi11cmwuaHR0cHMud2luZG93Lmpz
OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNo
L2RhbmdsaW5nLW1hcmt1cC5odHRwcy53aW5kb3cuanM6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvZmV0Y2gtdXBsb2Fkcy5odHRwcy53aW5k
b3cuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQt
ZmV0Y2gvZmV0Y2gtdXBsb2Fkcy5odHRwcy53aW5kb3cuanM6IEFkZGVkLgorICAgICAgICAoYmFj
a2dyb3VuZEZldGNoVGVzdC5hc3luYyB0ZXN0KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvYmFja2dyb3VuZC1mZXRjaC9mZXRjaC5odHRwcy53aW5kb3cuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvZmV0Y2guaHR0cHMud2lu
ZG93LmpzOiBBZGRlZC4KKyAgICAgICAgKHByb21pc2VfdGVzdC5hc3luYyB0ZXN0KToKKyAgICAg
ICAgKGJhY2tncm91bmRGZXRjaFRlc3QuYXN5bmMgdGVzdCk6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvZ2V0LWlkcy5odHRwcy53aW5kb3cuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvZ2V0LWlk
cy5odHRwcy53aW5kb3cuanM6IEFkZGVkLgorICAgICAgICAocHJvbWlzZV90ZXN0LmFzeW5jIHRl
c3QpOgorICAgICAgICAoYmFja2dyb3VuZEZldGNoVGVzdC5hc3luYyB0ZXN0KToKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9nZXQuaHR0cHMud2luZG93Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNo
L2dldC5odHRwcy53aW5kb3cuanM6IEFkZGVkLgorICAgICAgICAocHJvbWlzZV90ZXN0LmFzeW5j
IHRlc3QpOgorICAgICAgICAoYmFja2dyb3VuZEZldGNoVGVzdC5hc3luYyB0ZXN0KToKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9pZGxoYXJuZXNzLmh0dHBz
LmFueS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3Vu
ZC1mZXRjaC9pZGxoYXJuZXNzLmh0dHBzLmFueS5qczogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2Vy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZl
dGNoL2ludGVyZmFjZXMtd29ya2VyLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9pbnRlcmZhY2VzLXdvcmtl
ci5odHRwcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9iYWNr
Z3JvdW5kLWZldGNoL2ludGVyZmFjZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9pbnRlcmZhY2VzLndvcmtlci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9tYXRjaC5o
dHRwcy53aW5kb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Jh
Y2tncm91bmQtZmV0Y2gvbWF0Y2guaHR0cHMud2luZG93LmpzOiBBZGRlZC4KKyAgICAgICAgKGJh
Y2tncm91bmRGZXRjaFRlc3QuYXN5bmMgdGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2JhY2tncm91bmQtZmV0Y2gvbWl4ZWQtY29udGVudC1hbmQtYWxsb3dlZC1zY2hlbWVzLmh0
dHBzLndpbmRvdy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFj
a2dyb3VuZC1mZXRjaC9taXhlZC1jb250ZW50LWFuZC1hbGxvd2VkLXNjaGVtZXMuaHR0cHMud2lu
ZG93LmpzOgorICAgICAgICAoYmFja2dyb3VuZEZldGNoVGVzdCk6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvcG9ydC1ibG9ja2luZy5odHRwcy53aW5kb3cu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0
Y2gvcG9ydC1ibG9ja2luZy5odHRwcy53aW5kb3cuanM6CisgICAgICAgIChiYWNrZ3JvdW5kRmV0
Y2hUZXN0KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9y
ZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL3N3LmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3Jlc291cmNlcy91cGxvYWQu
cHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL3V0aWxzLmpzOgorICAgICAgICAoYXN5bmMgZ2V0
TWVzc2FnZUZyb21TZXJ2aWNlV29ya2VyLnJldHVybi5uZXcuUHJvbWlzZSk6CisgICAgICAgIChh
c3luYyBnZXRNZXNzYWdlRnJvbVNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoYXN5bmMgcmVnaXN0
ZXJBbmRBY3RpdmF0ZVNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoYmFja2dyb3VuZEZldGNoVGVz
dCk6CisgICAgICAgIChhc3luYyB1bmlxdWVJZCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3NlcnZpY2Vfd29ya2Vycy9zdy1h
Ym9ydC5qczogQWRkZWQuCisgICAgICAgIChhc3luYyBnZXRGZXRjaFJlc3VsdCk6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvc2VydmljZV93b3JrZXJzL3N3
LWhlbHBlcnMuanM6IEFkZGVkLgorICAgICAgICAoc2VuZE1lc3NhZ2VUb0RvY3VtZW50KToKKyAg
ICAgICAgKGNsb25lUmVnaXN0cmF0aW9uLmRlZXBDb3B5KToKKyAgICAgICAgKGNsb25lUmVnaXN0
cmF0aW9uKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9z
ZXJ2aWNlX3dvcmtlcnMvc3ctdXBkYXRlLXVpLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jIHVw
ZGF0ZVVJKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9z
ZXJ2aWNlX3dvcmtlcnMvc3cuanM6IEFkZGVkLgorICAgICAgICAoYXN5bmMgZ2V0RmV0Y2hSZXN1
bHQpOgorICAgICAgICAoaGFuZGxlQmFja2dyb3VuZEZldGNoRXZlbnQuc3dpdGNoLmFzeW5jIGJp
bmQpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3NlcnZp
Y2Vfd29ya2Vycy93M2MtaW1wb3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3Jlc291cmNlcy93M2Mt
aW1wb3J0LmxvZy4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRj
aC91cGRhdGUtdWkuaHR0cHMud2luZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3VwZGF0ZS11aS5odHRwcy53aW5kb3cuanM6IEFk
ZGVkLgorICAgICAgICAoYmFja2dyb3VuZEZldGNoVGVzdC5hc3luYyB0ZXN0KToKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC93M2MtaW1wb3J0LmxvZzoKKwog
MjAyMC0wNy0xNyAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVcGRhdGUgV1BUIGNzcyBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpz
b24KaW5kZXggNzZmYzFlY2M0ZWUyMzE3MzEyN2Y0MTM2YjUwNzAwYTcxYTc5YTA4My4uMTU2ZDgw
MGZiMDRiZWEzMTg5ZDY0NDRkYzY1ZDYwZDk0YjM5NGE1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpz
b24KQEAgLTUwLDYgKzUwLDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Fzc3VtcHRpb25z
IjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dCI6ICJza2lw
IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hdXhjbGljayI6ICJza2lwIiwgCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoIjogImltcG9ydCIsIAogICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvYmF0dGVyeS1zdGF0dXMiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvYmVhY29uIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYmx1
ZXRvb3RoIjogInNraXAiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9NRVRBLnltbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9NRVRBLnlt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44Y2U5ZjhmYWEyYWNkZmU3YTJlZjhkZmM2YzFhZDhjYmRmMDFjNzJkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL01FVEEueW1sCkBAIC0wLDAgKzEsNCBAQAorc3BlYzogaHR0
cHM6Ly93aWNnLmdpdGh1Yi5pby9iYWNrZ3JvdW5kLWZldGNoLworc3VnZ2VzdGVkX3Jldmlld2Vy
czoKKyAgLSBiZXZlcmxvbworICAtIGpha2VhcmNoaWJhbGQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9PV05F
UlMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91
bmQtZmV0Y2gvT1dORVJTCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWRmZDliNDA5
YTIwODIzMTlmODM3NDBiYjJhYTRlOTFkZTZmMThlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9PV05FUlMKKysrIC9kZXYvbnVsbApAQCAtMSwyICsw
LDAgQEAKLUBiZXZlcmxvbwotQGpha2VhcmNoaWJhbGQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9hYm9ydC5o
dHRwcy53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvYmFja2dyb3VuZC1mZXRjaC9hYm9ydC5odHRwcy53aW5kb3cuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3Jv
dW5kLWZldGNoL2Fib3J0Lmh0dHBzLndpbmRvdy5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4g
dGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dy
b3VuZC1mZXRjaC9hYm9ydC5odHRwcy53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvYWJvcnQuaHR0cHMud2luZG93
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjljYzhjMjVmN2E0MTc1MDMwNjcxMGMzMWJhZTU1M2M5NmIwMmFkZjMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvYWJvcnQuaHR0cHMud2luZG93LmpzCkBAIC0wLDAgKzEs
NzQgQEAKKy8vIE1FVEE6IHNjcmlwdD0vc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzCisvLyBNRVRBOiBzY3JpcHQ9cmVzb3VyY2VzL3V0
aWxzLmpzCisndXNlIHN0cmljdCc7CisKKy8vIENvdmVycyBiYXNpYyBmdW5jdGlvbmFsaXR5IHBy
b3ZpZGVkIGJ5IEJhY2tncm91bmRGZXRjaE1hbmFnZXIuYWJvcnQoKS4KKy8vIGh0dHBzOi8vd2lj
Zy5naXRodWIuaW8vYmFja2dyb3VuZC1mZXRjaC8jYmFja2dyb3VuZC1mZXRjaC1yZWdpc3RyYXRp
b24tYWJvcnQKKworYmFja2dyb3VuZEZldGNoVGVzdChhc3luYyAodGVzdCwgYmFja2dyb3VuZEZl
dGNoKSA9PiB7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IGJhY2tncm91bmRGZXRjaC5m
ZXRjaCgKKyAgICAgIHVuaXF1ZUlkKCksCisgICAgICBbJ3Jlc291cmNlcy9mZWF0dXJlLW5hbWUu
dHh0JywgJy9jb21tb24vc2xvdy5weSddKTsKKworICBhc3NlcnRfdHJ1ZShhd2FpdCByZWdpc3Ry
YXRpb24uYWJvcnQoKSk7CisgIGFzc2VydF9mYWxzZShhd2FpdCByZWdpc3RyYXRpb24uYWJvcnQo
KSk7CisKK30sICdBYm9ydGluZyB0aGUgc2FtZSByZWdpc3RyYXRpb24gdHdpY2UgZmFpbHMnKTsK
KworYmFja2dyb3VuZEZldGNoVGVzdChhc3luYyAodGVzdCwgYmFja2dyb3VuZEZldGNoKSA9PiB7
CisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IGJhY2tncm91bmRGZXRjaC5mZXRjaCgKKyAg
ICAgIHVuaXF1ZUlkKCksCisgICAgICBbJ3Jlc291cmNlcy9mZWF0dXJlLW5hbWUudHh0JywgJy9j
b21tb24vc2xvdy5weSddKTsKKworICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAg
ICBsZXQgYWJvcnRlZCA9IGZhbHNlOworICAgIGNvbnN0IGV4cGVjdGVkUmVzdWx0VGV4dCA9ICdC
YWNrZ3JvdW5kIEZldGNoJzsKKworICAgIHJlZ2lzdHJhdGlvbi5vbnByb2dyZXNzID0gYXN5bmMg
ZXZlbnQgPT4geworICAgICAgaWYgKGV2ZW50LnRhcmdldC5kb3dubG9hZGVkIDwgZXhwZWN0ZWRS
ZXN1bHRUZXh0Lmxlbmd0aCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICBpZiAoYWJvcnRlZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgICAvLyBBYm9ydCBhZnRlciB0aGUgZmlyc3QgZmlsZSBo
YXMgYmVlbiBkb3dubG9hZGVkIGFuZCBjaGVjayB0aGUgcmVzdWx0cy4KKworICAgICAgYWJvcnRl
ZCA9IHRydWU7CisgICAgICBhc3NlcnRfdHJ1ZShhd2FpdCByZWdpc3RyYXRpb24uYWJvcnQoKSk7
CisKKyAgICAgIGNvbnN0IHt0eXBlLCBldmVudFJlZ2lzdHJhdGlvbiwgcmVzdWx0c30gPSBhd2Fp
dCBnZXRNZXNzYWdlRnJvbVNlcnZpY2VXb3JrZXIoKTsKKworICAgICAgYXNzZXJ0X2VxdWFscyhl
dmVudFJlZ2lzdHJhdGlvbi5yZXN1bHQsICdmYWlsdXJlJyk7CisgICAgICBhc3NlcnRfZXF1YWxz
KGV2ZW50UmVnaXN0cmF0aW9uLmZhaWx1cmVSZWFzb24sICdhYm9ydGVkJyk7CisgICAgICBhc3Nl
cnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5yZXN1bHQsICdmYWlsdXJlJyk7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi5mYWlsdXJlUmVhc29uLCAnYWJvcnRlZCcpOworCisgICAgICBh
c3NlcnRfZXF1YWxzKHR5cGUsICdiYWNrZ3JvdW5kZmV0Y2hhYm9ydCcpOworCisgICAgICBhc3Nl
cnRfZXF1YWxzKHJlc3VsdHMubGVuZ3RoLCAyKTsKKworICAgICAgY29uc3QgY29tcGxldGVkUmVz
dWx0ID0gcmVzdWx0c1swXSB8fCByZXN1bHRzWzFdOworICAgICAgLy8gVGhlIGFib3J0IG1pZ2h0
IGhhdmUgZ29uZSB0aHJvdWdoIGJlZm9yZSB0aGUgZmlyc3QgcmVzdWx0IHdhcyBwZXJzaXN0ZWQu
CisgICAgICBpZiAoY29tcGxldGVkUmVzdWx0KSB7CisgICAgICAgIGFzc2VydF90cnVlKGNvbXBs
ZXRlZFJlc3VsdC51cmwuaW5jbHVkZXMoJ3Jlc291cmNlcy9mZWF0dXJlLW5hbWUudHh0JykpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNvbXBsZXRlZFJlc3VsdC5zdGF0dXMsIDIwMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoY29tcGxldGVkUmVzdWx0LnRleHQsIGV4cGVjdGVkUmVzdWx0VGV4
dCk7CisgICAgICB9CisKKyAgICAgIHJlc29sdmUoKTsKKyAgICB9OworICB9KTsKKworfSwgJ0Nh
bGxpbmcgQmFja2dyb3VuZEZldGNoUmVnaXN0cmF0aW9uLmFib3J0IHNldHMgdGhlIGNvcnJlY3Qg
ZmllbGRzIGFuZCByZXNwb25zZXMgYXJlIHN0aWxsIGF2YWlsYWJsZScpOworCitiYWNrZ3JvdW5k
RmV0Y2hUZXN0KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gpID0+IHsKKyAgY29uc3QgcmVn
aXN0cmF0aW9uID0gYXdhaXQgYmFja2dyb3VuZEZldGNoLmZldGNoKAorICAgICAgdW5pcXVlSWQo
KSwgJy9jb21tb24vc2xvdy5weScpOworICBhc3NlcnRfdHJ1ZShhd2FpdCByZWdpc3RyYXRpb24u
YWJvcnQoKSk7CisKKyAgY29uc3Qge3Jlc3VsdHN9ID0gYXdhaXQgZ2V0TWVzc2FnZUZyb21TZXJ2
aWNlV29ya2VyKCk7CisgIGFzc2VydF9lcXVhbHMocmVzdWx0cy5sZW5ndGgsIDEpOworICBhc3Nl
cnRfZmFsc2UocmVzdWx0c1swXS5yZXNwb25zZSk7CisgIGFzc2VydF9lcXVhbHMocmVzdWx0c1sw
XS5uYW1lLCAnQWJvcnRFcnJvcicpOworCit9LCAnQW4gYWJvcnRlZCBmZXRjaCB0aHJvd3MgYSBE
T00gZXhjZXB0aW9uIHdoZW4gYWNjZXNzaW5nIGFuIGluY29tcGxldGUgcmVjb3JkJywgJ3N3LWFi
b3J0LmpzJyk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2Nv
bnRlbnQtc2VjdXJpdHktcG9saWN5Lmh0dHBzLndpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2NvbnRlbnQtc2Vj
dXJpdHktcG9saWN5Lmh0dHBzLndpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkz
YjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvY29udGVu
dC1zZWN1cml0eS1wb2xpY3kuaHR0cHMud2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1
biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNr
Z3JvdW5kLWZldGNoL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5Lmh0dHBzLndpbmRvdy5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRj
aC9jb250ZW50LXNlY3VyaXR5LXBvbGljeS5odHRwcy53aW5kb3cuanMKaW5kZXggYTZkYzdjMzAy
YzAxZGRlNDVmY2ZhNTg5YjAwNzE2YTI4MWNhZjM3Ni4uMjkzOTU5NWMxMzI1MDc4NjZlZDkwODc5
YWU4OTIzY2E2NmI0YzI4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5
Lmh0dHBzLndpbmRvdy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvY29udGVudC1zZWN1cml0eS1wb2xpY3kuaHR0cHMu
d2luZG93LmpzCkBAIC0xNCw3ICsxNCw3IEBAIG1ldGEuc2V0QXR0cmlidXRlKCdjb250ZW50Jywg
ImNvbm5lY3Qtc3JjICdub25lJyIpOwogZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChtZXRhKTsK
IAogYmFja2dyb3VuZEZldGNoVGVzdCgodCwgYmdGZXRjaCkgPT4gewotICByZXR1cm4gcHJvbWlz
ZV9yZWplY3RzKAotICAgICAgdCwgbmV3IFR5cGVFcnJvcigpLAotICAgICAgYmdGZXRjaC5mZXRj
aCh1bmlxdWVUYWcoKSwgJ2h0dHBzOi8vZXhhbXBsZS5jb20nKSk7CisgIHJldHVybiBwcm9taXNl
X3JlamVjdHNfanMoCisgICAgICB0LCBUeXBlRXJyb3IsCisgICAgICBiZ0ZldGNoLmZldGNoKHVu
aXF1ZUlkKCksICdodHRwczovL2V4YW1wbGUuY29tJykpOwogfSwgJ2ZldGNoIGJsb2NrZWQgYnkg
Q1NQIHNob3VsZCByZWplY3QnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9jcmVkZW50aWFscy1pbi11cmwu
aHR0cHMud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2NyZWRlbnRpYWxzLWluLXVybC5odHRwcy53aW5kb3cuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4YjM3YjM0MGI5NjkxOWFkOTMyNjY4MDU1
ZWU3NTI0MzY5YWQwNGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3Jv
dW5kLWZldGNoL2NyZWRlbnRpYWxzLWluLXVybC5odHRwcy53aW5kb3cuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwzMiArMCwwIEBACi0vLyBNRVRBOiBzY3JpcHQ9L3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcwotLy8gTUVUQTogc2NyaXB0
PXJlc291cmNlcy91dGlscy5qcwotJ3VzZSBzdHJpY3QnOwotCi0vLyAiSWYgcGFyc2VkVVJMIGlu
Y2x1ZGVzIGNyZWRlbnRpYWxzLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLiIKLS8vIGh0dHBzOi8v
ZmV0Y2guc3BlYy53aGF0d2cub3JnLyNkb20tcmVxdWVzdAotLy8gKEFkZGVkIGJ5IGh0dHBzOi8v
Z2l0aHViLmNvbS93aGF0d2cvZmV0Y2gvaXNzdWVzLzI2KS4KLS8vICJBIFVSTCBpbmNsdWRlcyBj
cmVkZW50aWFscyBpZiBpdHMgdXNlcm5hbWUgb3IgcGFzc3dvcmQgaXMgbm90IHRoZSBlbXB0eQot
Ly8gc3RyaW5nLiIKLS8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jaW5jbHVkZS1jcmVk
ZW50aWFscwotCi1iYWNrZ3JvdW5kRmV0Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9PiB7Ci0gIHJldHVy
biBiZ0ZldGNoLmZldGNoKHVuaXF1ZVRhZygpLCAnaHR0cHM6Ly9leGFtcGxlLmNvbScpOwotfSwg
J2ZldGNoIHdpdGhvdXQgY3JlZGVudGlhbHMgaW4gVVJMIHNob3VsZCByZWdpc3RlciBvaycpOwot
Ci1iYWNrZ3JvdW5kRmV0Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9PiB7Ci0gIHJldHVybiBwcm9taXNl
X3JlamVjdHMoCi0gICAgICB0LCBuZXcgVHlwZUVycm9yKCksCi0gICAgICBiZ0ZldGNoLmZldGNo
KHVuaXF1ZVRhZygpLCAnaHR0cHM6Ly91c2VybmFtZTpwYXNzd29yZEBleGFtcGxlLmNvbScpKTsK
LX0sICdmZXRjaCB3aXRoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBpbiBVUkwgc2hvdWxkIHJlamVj
dCcpOwotCi1iYWNrZ3JvdW5kRmV0Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9PiB7Ci0gIHJldHVybiBw
cm9taXNlX3JlamVjdHMoCi0gICAgICB0LCBuZXcgVHlwZUVycm9yKCksCi0gICAgICBiZ0ZldGNo
LmZldGNoKHVuaXF1ZVRhZygpLCAnaHR0cHM6Ly91c2VybmFtZTpAZXhhbXBsZS5jb20nKSk7Ci19
LCAnZmV0Y2ggd2l0aCB1c2VybmFtZSBhbmQgZW1wdHkgcGFzc3dvcmQgaW4gVVJMIHNob3VsZCBy
ZWplY3QnKTsKLQotYmFja2dyb3VuZEZldGNoVGVzdCgodCwgYmdGZXRjaCkgPT4gewotICByZXR1
cm4gcHJvbWlzZV9yZWplY3RzKAotICAgICAgdCwgbmV3IFR5cGVFcnJvcigpLAotICAgICAgYmdG
ZXRjaC5mZXRjaCh1bmlxdWVUYWcoKSwgJ2h0dHBzOi8vOnBhc3N3b3JkQGV4YW1wbGUuY29tJykp
OwotfSwgJ2ZldGNoIHdpdGggZW1wdHkgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGluIFVSTCBzaG91
bGQgcmVqZWN0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvZGFuZ2xpbmctbWFya3VwLmh0dHBzLndpbmRv
dy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dy
b3VuZC1mZXRjaC9kYW5nbGluZy1tYXJrdXAuaHR0cHMud2luZG93LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZjdjMzk1ZDc1MTA0MDk2NTkxODA3YjkzNDhiODcyZTliYjYxYjE1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9kYW5n
bGluZy1tYXJrdXAuaHR0cHMud2luZG93LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBA
QAotLy8gTUVUQTogc2NyaXB0PS9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3Rlc3QtaGVscGVycy5zdWIuanMKLS8vIE1FVEE6IHNjcmlwdD1yZXNvdXJjZXMvdXRpbHMu
anMKLSd1c2Ugc3RyaWN0JzsKLQotLy8gIklmIHJlcXVlc3QncyB1cmwncyBwb3RlbnRpYWxseS1k
YW5nbGluZy1tYXJrdXAgZmxhZyBpcyBzZXQsIGFuZCByZXF1ZXN0J3MKLS8vIHVybCdzIHNjaGVt
ZSBpcyBhbiBIVFRQKFMpIHNjaGVtZSwgdGhlbiBzZXQgcmVzcG9uc2UgdG8gYSBuZXR3b3JrIGVy
cm9yLiIKLS8vIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZmV0Y2gvcHVsbC81MTkKLS8vIGh0
dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZmV0Y2gvaXNzdWVzLzU0NgotCi0vLyBUaGlzIGlzIG5v
dCBhIGNvbXByZWhlbnNpdmUgdGVzdCBvZiBkYW5nbGluZyBtYXJrdXAgZGV0ZWN0aW9uIC0gaXQg
aXMganVzdAotLy8gaW50ZW5kZWQgdG8gY2hlY2sgdGhhdCBkZXRlY3Rpb24gaXMgZW5hYmxlZC4K
LQotYmFja2dyb3VuZEZldGNoVGVzdCgodCwgYmdGZXRjaCkgPT4gewotICByZXR1cm4gcHJvbWlz
ZV9yZWplY3RzKAotICAgICAgdCwgbmV3IFR5cGVFcnJvcigpLAotICAgICAgYmdGZXRjaC5mZXRj
aCh1bmlxdWVUYWcoKSwgJ2h0dHBzOi8vZXhhbXBsZS5jb20vP1xuPCcpKTsKLX0sICdmZXRjaCB0
byBVUkwgY29udGFpbmluZyBcXG4gYW5kIDwgc2hvdWxkIHJlamVjdCcpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZl
dGNoL2ZldGNoLXVwbG9hZHMuaHR0cHMud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvZmV0Y2gtdXBsb2Fkcy5o
dHRwcy53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1
MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2ZldGNoLXVwbG9hZHMuaHR0cHMu
d2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2ZldGNoLXVwbG9h
ZHMuaHR0cHMud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2ZldGNoLXVwbG9hZHMuaHR0cHMud2luZG93LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY5M2Y4OGE2YmFlNzQzMmVkZTcwNjg5MzQ1MzVlNDJmZTJmNWJhZWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JhY2tncm91bmQtZmV0Y2gvZmV0Y2gtdXBsb2Fkcy5odHRwcy53aW5kb3cuanMKQEAgLTAsMCAr
MSw2NCBAQAorLy8gTUVUQTogc2NyaXB0PS9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMKKy8vIE1FVEE6IHNjcmlwdD1yZXNvdXJjZXMv
dXRpbHMuanMKKyd1c2Ugc3RyaWN0JzsKKworLy8gQ292ZXJzIGJhc2ljIGZ1bmN0aW9uYWxpdHkg
cHJvdmlkZWQgYnkgQmFja2dyb3VuZEZldGNoTWFuYWdlci5mZXRjaCgpLgorLy8gU3BlY2lmaWNh
bGx5LCB3aGVuIGBmZXRjaGAgY29udGFpbnMgcmVxdWVzdCB1cGxvYWRzLgorLy8gaHR0cHM6Ly93
aWNnLmdpdGh1Yi5pby9iYWNrZ3JvdW5kLWZldGNoLyNiYWNrZ3JvdW5kLWZldGNoLW1hbmFnZXIt
ZmV0Y2gKKworYmFja2dyb3VuZEZldGNoVGVzdChhc3luYyAodGVzdCwgYmFja2dyb3VuZEZldGNo
KSA9PiB7CisgIGNvbnN0IHVwbG9hZERhdGEgPSAnQmFja2dyb3VuZCBGZXRjaCEnOworICBjb25z
dCByZXF1ZXN0ID0KKyAgICAgIG5ldyBSZXF1ZXN0KCdyZXNvdXJjZXMvdXBsb2FkLnB5Jywge21l
dGhvZDogJ1BPU1QnLCBib2R5OiB1cGxvYWREYXRhfSk7CisKKyAgY29uc3QgcmVnaXN0cmF0aW9u
ID0gYXdhaXQgYmFja2dyb3VuZEZldGNoLmZldGNoKHVuaXF1ZUlkKCksIHJlcXVlc3QpOworICBh
c3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi51cGxvYWRUb3RhbCwgdXBsb2FkRGF0YS5sZW5ndGgp
OworCisgIGNvbnN0IHt0eXBlLCBldmVudFJlZ2lzdHJhdGlvbiwgcmVzdWx0c30gPSBhd2FpdCBn
ZXRNZXNzYWdlRnJvbVNlcnZpY2VXb3JrZXIoKTsKKyAgYXNzZXJ0X2VxdWFscyh0eXBlLCAnYmFj
a2dyb3VuZGZldGNoc3VjY2VzcycpOworICBhc3NlcnRfZXF1YWxzKHJlc3VsdHMubGVuZ3RoLCAx
KTsKKyAgYXNzZXJ0X2VxdWFscyhldmVudFJlZ2lzdHJhdGlvbi5yZXN1bHQsICdzdWNjZXNzJyk7
CisgIGFzc2VydF9lcXVhbHMoZXZlbnRSZWdpc3RyYXRpb24uZmFpbHVyZVJlYXNvbiwgJycpOwor
ICBhc3NlcnRfZXF1YWxzKGV2ZW50UmVnaXN0cmF0aW9uLnVwbG9hZGVkLCB1cGxvYWREYXRhLmxl
bmd0aCk7CisgIGFzc2VydF9lcXVhbHMocmVzdWx0c1swXS50ZXh0LCB1cGxvYWREYXRhKTsKK30s
ICdGZXRjaCB3aXRoIGFuIHVwbG9hZCBzaG91bGQgd29yaycpOworCitiYWNrZ3JvdW5kRmV0Y2hU
ZXN0KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gpID0+IHsKKyAgY29uc3QgdXBsb2FkRGF0
YSA9ICdCYWNrZ3JvdW5kIEZldGNoISc7CisgIGNvbnN0IHVwbG9hZFJlcXVlc3QgPQorICAgICAg
bmV3IFJlcXVlc3QoJ3Jlc291cmNlcy91cGxvYWQucHknLCB7bWV0aG9kOiAnUE9TVCcsIGJvZHk6
IHVwbG9hZERhdGF9KTsKKworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBiYWNrZ3JvdW5k
RmV0Y2guZmV0Y2goCisgICAgICB1bmlxdWVJZCgpLAorICAgICAgW3VwbG9hZFJlcXVlc3QsICcv
Y29tbW9uL3Nsb3cucHknXSk7CisKKyAgICBjb25zdCB1cGxvYWRlZCA9IGF3YWl0IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4geworICAgICAgcmVnaXN0cmF0aW9uLm9ucHJvZ3Jlc3MgPSBldmVudCA9
PiB7CisgICAgICAgIGlmIChldmVudC50YXJnZXQuZG93bmxvYWRlZCA9PT0gMCkKKyAgICAgICAg
ICByZXR1cm47CisgICAgICAgIC8vIElmIGEgcHJvZ3Jlc3MgZXZlbnQgd2l0aCBkb3dubG9hZGVk
IGJ5dGVzIHdhcyByZWNlaXZlZCwgdGhlbgorICAgICAgICAvLyBldmVyeXRoaW5nIHdhcyB1cGxv
YWRlZC4KKyAgICAgICAgcmVzb2x2ZShldmVudC50YXJnZXQudXBsb2FkZWQpOworICAgICAgfTsK
KyAgICB9KTsKKworICBhc3NlcnRfZXF1YWxzKHVwbG9hZGVkLCB1cGxvYWREYXRhLmxlbmd0aCk7
Cit9LCAnUHJvZ3Jlc3MgZXZlbnQgaW5jbHVkZXMgdXBsb2FkZWQgYnl0ZXMnKTsKKworYmFja2dy
b3VuZEZldGNoVGVzdChhc3luYyAodGVzdCwgYmFja2dyb3VuZEZldGNoKSA9PiB7CisgIGNvbnN0
IHVwbG9hZFJlcXVlc3QxID0KKyAgICAgIG5ldyBSZXF1ZXN0KCdyZXNvdXJjZXMvdXBsb2FkLnB5
Jywge21ldGhvZDogJ1BPU1QnLCBib2R5OiAndXBsb2FkMSd9KTsKKyAgY29uc3QgdXBsb2FkUmVx
dWVzdDIgPQorICAgICAgbmV3IFJlcXVlc3QoJ3Jlc291cmNlcy91cGxvYWQucHknLCB7bWV0aG9k
OiAnUE9TVCcsIGJvZHk6ICd1cGxvYWQyJ30pOworCisgIGF3YWl0IGJhY2tncm91bmRGZXRjaC5m
ZXRjaCh1bmlxdWVJZCgpLCBbdXBsb2FkUmVxdWVzdDEsIHVwbG9hZFJlcXVlc3QyXSk7CisKKyAg
Y29uc3Qge3R5cGUsIGV2ZW50UmVnaXN0cmF0aW9uLCByZXN1bHRzfSA9IGF3YWl0IGdldE1lc3Nh
Z2VGcm9tU2VydmljZVdvcmtlcigpOworICBhc3NlcnRfZXF1YWxzKHR5cGUsICdiYWNrZ3JvdW5k
ZmV0Y2hzdWNjZXNzJyk7CisgIGFzc2VydF9lcXVhbHMocmVzdWx0cy5sZW5ndGgsIDIpOworICBh
c3NlcnRfZXF1YWxzKGV2ZW50UmVnaXN0cmF0aW9uLnJlc3VsdCwgJ3N1Y2Nlc3MnKTsKKyAgYXNz
ZXJ0X2VxdWFscyhldmVudFJlZ2lzdHJhdGlvbi5mYWlsdXJlUmVhc29uLCAnJyk7CisKKyAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhbcmVzdWx0c1swXS50ZXh0LCByZXN1bHRzWzFdLnRleHRdLnNvcnQo
KSwKKyAgICAgICAgICAgICAgICAgICAgICBbJ3VwbG9hZDEnLCAndXBsb2FkMiddKTsKK30sICdE
dXBsaWNhdGUgdXBsb2FkIHJlcXVlc3RzIHdvcmsgYW5kIGNhbiBiZSBkaXN0aW5ndWlzaGVkLicp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9iYWNrZ3JvdW5kLWZldGNoL2ZldGNoLmh0dHBzLndpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2ZldGNoLmh0
dHBzLndpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUw
NjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvZmV0Y2guaHR0cHMud2luZG93Lmh0
bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0
ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2ZldGNoLmh0dHBzLndpbmRvdy5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3Vu
ZC1mZXRjaC9mZXRjaC5odHRwcy53aW5kb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTc1NmEwZTZlM2ZjMzI1
OWJkMjZkZDM3ZDQzZTg5MGFlMGU5YTdiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9mZXRjaC5o
dHRwcy53aW5kb3cuanMKQEAgLTAsMCArMSwyODAgQEAKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9u
L2dldC1ob3N0LWluZm8uc3ViLmpzCisvLyBNRVRBOiBzY3JpcHQ9L3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcworLy8gTUVUQTogc2Ny
aXB0PXJlc291cmNlcy91dGlscy5qcworCisndXNlIHN0cmljdCc7CisKKy8vIENvdmVycyBiYXNp
YyBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IEJhY2tncm91bmRGZXRjaE1hbmFnZXIuZmV0Y2go
KS4KKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vYmFja2dyb3VuZC1mZXRjaC8jYmFja2dyb3Vu
ZC1mZXRjaC1tYW5hZ2VyLWZldGNoCisKK2NvbnN0IHdhaXQgPSBtaWxsaXNlY29uZHMgPT4KKyAg
bmV3IFByb21pc2UocmVzb2x2ZSA9PiBzdGVwX3RpbWVvdXQocmVzb2x2ZSwgbWlsbGlzZWNvbmRz
KSk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ZXN0ID0+IHsKKyAgLy8gNi4zLjEuOS4yOiBJZiB8
cmVnaXN0cmF0aW9ufOKAmXMgYWN0aXZlIHdvcmtlciBpcyBudWxsLCB0aGVuIHJlamVjdCBwcm9t
aXNlCisgIC8vICAgICAgICAgICAgd2l0aCBhIFR5cGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3Rl
cHMuCisgIGNvbnN0IHNjcmlwdCA9ICdzZXJ2aWNlX3dvcmtlcnMvc3cuanMnOworICBjb25zdCBz
Y29wZSA9ICdzZXJ2aWNlX3dvcmtlcnMvJyArIGxvY2F0aW9uLnBhdGhuYW1lOworCisgIGNvbnN0
IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gPQorICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHRlc3QsIHNjcmlwdCwgc2NvcGUpOworCisgIGFzc2VydF9l
cXVhbHMoCisgICAgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5hY3RpdmUsIG51bGwsCisgICAg
J1RoZXJlIG11c3Qgbm90IGJlIGFuIGFjdGl2YXRlZCB3b3JrZXInKTsKKworICBhd2FpdCBwcm9t
aXNlX3JlamVjdHNfanMoCisgICAgdGVzdCwgVHlwZUVycm9yLAorICAgIHNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24uYmFja2dyb3VuZEZldGNoLmZldGNoKAorICAgICAgdW5pcXVlSWQoKSwgWydy
ZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dCddKSwKKyAgICAgICdmZXRjaCgpIG11c3QgcmVqZWN0
IG9uIHBlbmRpbmcgYW5kIGluc3RhbGxpbmcgd29ya2VycycpOworCit9LCAnQmFja2dyb3VuZCBG
ZXRjaCByZXF1aXJlcyBhbiBhY3RpdmF0ZWQgU2VydmljZSBXb3JrZXInKTsKKworYmFja2dyb3Vu
ZEZldGNoVGVzdChhc3luYyAodGVzdCwgYmFja2dyb3VuZEZldGNoKSA9PiB7CisgIC8vIDYuMy4x
LjY6IElmIHxyZXF1ZXN0c3wgaXMgZW1wdHksIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3Rl
ZCB3aXRoIGEKKyAgLy8gICAgICAgICAgVHlwZUVycm9yLgorICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfanMoCisgICAgdGVzdCwgVHlwZUVycm9yLCBiYWNrZ3JvdW5kRmV0Y2guZmV0Y2godW5pcXVl
SWQoKSwgW10pLAorICAgICdFbXB0eSBzZXF1ZW5jZXMgYXJlIHRyZWF0ZWQgYXMgTlVMTCcpOwor
CisgIC8vIDYuMy4xLjcuMTogTGV0IHxpbnRlcm5hbFJlcXVlc3R8IGJlIHRoZSByZXF1ZXN0IG9m
IHRoZSByZXN1bHQgb2YgaW52b2tpbmcKKyAgLy8gICAgICAgICAgICB0aGUgUmVxdWVzdCBjb25z
dHJ1Y3RvciB3aXRoIHxyZXF1ZXN0fC4gSWYgdGhpcyB0aHJvd3MgYW4KKyAgLy8gICAgICAgICAg
ICBleGNlcHRpb24sIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCB0aGUgZXhjZXB0aW9u
LgorICBhd2FpdCBwcm9taXNlX3JlamVjdHNfanMoCisgICAgdGVzdCwgVHlwZUVycm9yLAorICAg
IGJhY2tncm91bmRGZXRjaC5mZXRjaCh1bmlxdWVJZCgpLCAnaHR0cHM6Ly91c2VyOnBhc3NAZG9t
YWluL3NlY3JldC50eHQnKSwKKyAgICAnRXhjZXB0aW9ucyB0aHJvd24gaW4gdGhlIFJlcXVlc3Qg
Y29uc3RydWN0b3IgYXJlIHJldGhyb3duJyk7CisKKyAgLy8gNi4zLjEuNy4yOiBJZiB8aW50ZXJu
YWxSZXF1ZXN0fOKAmXMgbW9kZSBpcyAibm8tY29ycyIsIHRoZW4gcmV0dXJuIGEKKyAgLy8gICAg
ICAgICAgICBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBUeXBlRXJyb3IuCisgIHsKKyAgICBjb25z
dCByZXF1ZXN0ID0KKyAgICAgIG5ldyBSZXF1ZXN0KCdyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4
dCcsIHttb2RlOiAnbm8tY29ycyd9KTsKKworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19qcygK
KyAgICAgIHRlc3QsIFR5cGVFcnJvciwgYmFja2dyb3VuZEZldGNoLmZldGNoKHVuaXF1ZUlkKCks
IHJlcXVlc3QpLAorICAgICAgJ1JlcXVlc3RzIG11c3Qgbm90IGJlIGluIG5vLWNvcnMgbW9kZScp
OworICB9CisKK30sICdBcmd1bWVudCB2ZXJpZmljYXRpb24gaXMgZG9uZSBmb3IgQmFja2dyb3Vu
ZEZldGNoTWFuYWdlci5mZXRjaCgpJyk7CisKK2JhY2tncm91bmRGZXRjaFRlc3QoYXN5bmMgKHRl
c3QsIGJhY2tncm91bmRGZXRjaCkgPT4geworICAvLyA2LjMuMS45LjI6IElmIHxiZ0ZldGNoTWFw
W2lkXXwgZXhpc3RzLCByZWplY3QgfHByb21pc2V8IHdpdGggYSBUeXBlRXJyb3IKKyAgLy8gICAg
ICAgICAgICBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgIHJldHVybiBwcm9taXNlX3JlamVjdHNf
anModGVzdCwgVHlwZUVycm9yLCBQcm9taXNlLmFsbChbCisgICAgYmFja2dyb3VuZEZldGNoLmZl
dGNoKCdteS1pZCcsICdyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dD8xJyksCisgICAgYmFja2dy
b3VuZEZldGNoLmZldGNoKCdteS1pZCcsICdyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dD8yJykK
KyAgXSkpOworCit9LCAnSURzIG11c3QgYmUgdW5pcXVlIGFtb25nIGFjdGl2ZSBCYWNrZ3JvdW5k
IEZldGNoIHJlZ2lzdHJhdGlvbnMnKTsKKworYmFja2dyb3VuZEZldGNoVGVzdChhc3luYyAodGVz
dCwgYmFja2dyb3VuZEZldGNoKSA9PiB7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbklkID0gdW5pcXVl
SWQoKTsKKyAgY29uc3QgcmVnaXN0cmF0aW9uID0KKyAgICBhd2FpdCBiYWNrZ3JvdW5kRmV0Y2gu
ZmV0Y2gocmVnaXN0cmF0aW9uSWQsICcnKTsKKworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlv
bi5pZCwgcmVnaXN0cmF0aW9uSWQpOworCisgIGNvbnN0IHt0eXBlLCBldmVudFJlZ2lzdHJhdGlv
biwgcmVzdWx0c30gPSBhd2FpdCBnZXRNZXNzYWdlRnJvbVNlcnZpY2VXb3JrZXIoKTsKKworICBh
c3NlcnRfZXF1YWxzKCdiYWNrZ3JvdW5kZmV0Y2hzdWNjZXNzJywgdHlwZSk7CisgIGFzc2VydF9l
cXVhbHMoZXZlbnRSZWdpc3RyYXRpb24ucmVzdWx0LCAnc3VjY2VzcycpOworICBhc3NlcnRfZXF1
YWxzKGV2ZW50UmVnaXN0cmF0aW9uLmZhaWx1cmVSZWFzb24sICcnKTsKKworfSwgJ0VtcHR5IFVS
TCBpcyBPSy4nKTsKKworYmFja2dyb3VuZEZldGNoVGVzdChhc3luYyAodGVzdCwgYmFja2dyb3Vu
ZEZldGNoKSA9PiB7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbklkID0gdW5pcXVlSWQoKTsKKyAgY29u
c3QgcmVnaXN0cmF0aW9uID0KKyAgICBhd2FpdCBiYWNrZ3JvdW5kRmV0Y2guZmV0Y2gocmVnaXN0
cmF0aW9uSWQsCisgICAgICAgIG5ldyBSZXF1ZXN0KCdodHRwczovL2V4YW1wbGUvY29tJywgewor
ICAgICAgICBtZXRob2Q6ICdQVVQnLAorICAgICAgfSkpOworCisgIGFzc2VydF9lcXVhbHMocmVn
aXN0cmF0aW9uLmlkLCByZWdpc3RyYXRpb25JZCk7CisKKyAgY29uc3Qge3R5cGUsIGV2ZW50UmVn
aXN0cmF0aW9uLCByZXN1bHRzfSA9IGF3YWl0IGdldE1lc3NhZ2VGcm9tU2VydmljZVdvcmtlcigp
OworCisgIGFzc2VydF9lcXVhbHModHlwZSwgJ2JhY2tncm91bmRmZXRjaHN1Y2Nlc3MnKTsKKyAg
YXNzZXJ0X2VxdWFscyhldmVudFJlZ2lzdHJhdGlvbi5yZXN1bHQsICdzdWNjZXNzJyk7CisgIGFz
c2VydF9lcXVhbHMoZXZlbnRSZWdpc3RyYXRpb24uZmFpbHVyZVJlYXNvbiwgJycpOworfSwgJ1Jl
cXVlc3RzIHdpdGggUFVUIG1ldGhvZCByZXF1aXJlIENPUlMgUHJlZmxpZ2h0IGFuZCBzdWNjZWVk
LicpOworCitiYWNrZ3JvdW5kRmV0Y2hUZXN0KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gp
ID0+IHsKKyAgY29uc3QgcmVnaXN0cmF0aW9uSWQgPSB1bmlxdWVJZCgpOworICBjb25zdCByZWdp
c3RyYXRpb24gPQorICAgIGF3YWl0IGJhY2tncm91bmRGZXRjaC5mZXRjaChyZWdpc3RyYXRpb25J
ZCwKKyAgICAgICAgbmV3IFJlcXVlc3QoJ2h0dHBzOi8vZXhhbXBsZS9jb20nLCB7CisgICAgICAg
IG1ldGhvZDogJ1BPU1QnLAorICAgICAgICBoZWFkZXJzOiB7J0NvbnRlbnQtVHlwZSc6ICd0ZXh0
L2pzb24nfQorICAgICAgfSkpOworCisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmlkLCBy
ZWdpc3RyYXRpb25JZCk7CisKKyAgY29uc3Qge3R5cGUsIGV2ZW50UmVnaXN0cmF0aW9uLCByZXN1
bHRzfSA9IGF3YWl0IGdldE1lc3NhZ2VGcm9tU2VydmljZVdvcmtlcigpOworCisgIGFzc2VydF9l
cXVhbHModHlwZSwgJ2JhY2tncm91bmRmZXRjaHN1Y2Nlc3MnKTsKKyAgYXNzZXJ0X2VxdWFscyhl
dmVudFJlZ2lzdHJhdGlvbi5yZXN1bHQsICdzdWNjZXNzJyk7CisgIGFzc2VydF9lcXVhbHMoZXZl
bnRSZWdpc3RyYXRpb24uZmFpbHVyZVJlYXNvbiwgJycpOworfSwgJ1JlcXVlc3RzIHdpdGggdGV4
dC9qc29uIGNvbnRlbnQgdHlwZSByZXF1aXJlIENPUlMgUHJlZmxpZ2h0IGFuZCBzdWNjZWVkLicp
OworCitiYWNrZ3JvdW5kRmV0Y2hUZXN0KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gpID0+
IHsKKyAgY29uc3QgcmVnaXN0cmF0aW9uSWQgPSB1bmlxdWVJZCgpOworICBjb25zdCByZWdpc3Ry
YXRpb24gPQorICAgIGF3YWl0IGJhY2tncm91bmRGZXRjaC5mZXRjaChyZWdpc3RyYXRpb25JZCwg
J3Jlc291cmNlcy9mZWF0dXJlLW5hbWUudHh0Jyk7CisKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3Ry
YXRpb24uaWQsIHJlZ2lzdHJhdGlvbklkKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24u
dXBsb2FkVG90YWwsIDApOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi51cGxvYWRlZCwg
MCk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmRvd25sb2FkVG90YWwsIDApOworICBh
c3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5yZXN1bHQsICcnKTsKKyAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24uZmFpbHVyZVJlYXNvbiwgJycpOworICBhc3NlcnRfdHJ1ZShyZWdpc3RyYXRp
b24ucmVjb3Jkc0F2YWlsYWJsZSk7CisgIC8vIFNraXAgYGRvd25sb2FkZWRgLCBhcyB0aGUgdHJh
bnNmZXIgbWF5IGhhdmUgc3RhcnRlZCBhbHJlYWR5LgorCisgIGNvbnN0IHt0eXBlLCBldmVudFJl
Z2lzdHJhdGlvbiwgcmVzdWx0c30gPSBhd2FpdCBnZXRNZXNzYWdlRnJvbVNlcnZpY2VXb3JrZXIo
KTsKKyAgYXNzZXJ0X2VxdWFscygnYmFja2dyb3VuZGZldGNoc3VjY2VzcycsIHR5cGUpOworICBh
c3NlcnRfZXF1YWxzKHJlc3VsdHMubGVuZ3RoLCAxKTsKKworICBhc3NlcnRfZXF1YWxzKGV2ZW50
UmVnaXN0cmF0aW9uLmlkLCByZWdpc3RyYXRpb24uaWQpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50
UmVnaXN0cmF0aW9uLnJlc3VsdCwgJ3N1Y2Nlc3MnKTsKKyAgYXNzZXJ0X2VxdWFscyhldmVudFJl
Z2lzdHJhdGlvbi5mYWlsdXJlUmVhc29uLCAnJyk7CisKKyAgYXNzZXJ0X3RydWUocmVzdWx0c1sw
XS51cmwuaW5jbHVkZXMoJ3Jlc291cmNlcy9mZWF0dXJlLW5hbWUudHh0JykpOworICBhc3NlcnRf
ZXF1YWxzKHJlc3VsdHNbMF0uc3RhdHVzLCAyMDApOworICBhc3NlcnRfZXF1YWxzKHJlc3VsdHNb
MF0udGV4dCwgJ0JhY2tncm91bmQgRmV0Y2gnKTsKKworfSwgJ1VzaW5nIEJhY2tncm91bmQgRmV0
Y2ggdG8gc3VjY2Vzc2Z1bGx5IGZldGNoIGEgc2luZ2xlIHJlc291cmNlJyk7CisKK2JhY2tncm91
bmRGZXRjaFRlc3QoYXN5bmMgKHRlc3QsIGJhY2tncm91bmRGZXRjaCkgPT4geworICBjb25zdCBy
ZWdpc3RyYXRpb25JZCA9IHVuaXF1ZUlkKCk7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9CisgICAg
YXdhaXQgYmFja2dyb3VuZEZldGNoLmZldGNoKHJlZ2lzdHJhdGlvbklkLCAncmVzb3VyY2VzL2Zl
YXR1cmUtbmFtZS50eHQnKTsKKworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5yZXN1bHQs
ICcnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uZmFpbHVyZVJlYXNvbiwgJycpOwor
CisgIGNvbnN0IHt0eXBlLCBldmVudFJlZ2lzdHJhdGlvbiwgcmVzdWx0c30gPQorICAgIGF3YWl0
IGdldE1lc3NhZ2VGcm9tU2VydmljZVdvcmtlcigpOworICBhc3NlcnRfZXF1YWxzKCdiYWNrZ3Jv
dW5kZmV0Y2hzdWNjZXNzJywgdHlwZSk7CisKKyAgYXNzZXJ0X2VxdWFscyhldmVudFJlZ2lzdHJh
dGlvbi5pZCwgcmVnaXN0cmF0aW9uLmlkKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24u
cmVzdWx0LCAnc3VjY2VzcycpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5mYWlsdXJl
UmVhc29uLCAnJyk7CisKK30sICdSZWdpc3RyYXRpb24gb2JqZWN0IGdldHMgdXBkYXRlZCB2YWx1
ZXMgd2hlbiBhIGJhY2tncm91bmQgZmV0Y2ggY29tcGxldGVzLicpOworCitiYWNrZ3JvdW5kRmV0
Y2hUZXN0KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gpID0+IHsKKyAgY29uc3QgcmVnaXN0
cmF0aW9uSWQgPSB1bmlxdWVJZCgpOworCisgIC8vIFZlcnkgbGFyZ2UgZG93bmxvYWQgdG90YWwg
dGhhdCB3aWxsIGRlZmluaXRlbHkgZXhjZWVkIHRoZSBxdW90YS4KKyAgY29uc3Qgb3B0aW9ucyA9
IHtkb3dubG9hZFRvdGFsOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn07CisgIGF3YWl0IHByb21p
c2VfcmVqZWN0c19kb20oCisgICAgdGVzdCwgJ1FVT1RBX0VYQ0VFREVEX0VSUicsCisgICAgYmFj
a2dyb3VuZEZldGNoLmZldGNoKHJlZ2lzdHJhdGlvbklkLCAncmVzb3VyY2VzL2ZlYXR1cmUtbmFt
ZS50eHQnLCBvcHRpb25zKSwKKyAgICAnVGhpcyBmZXRjaCBzaG91bGQgaGF2ZSB0aHJvd24gYSBx
dW90YSBleGNlZWRlZCBlcnJvcicpOworCit9LCAnQmFja2dyb3VuZCBGZXRjaCB0aGF0IGV4Y2Vl
ZHMgdGhlIHF1b3RhIHRocm93cyBhIFF1b3RhRXhjZWVkZWRFcnJvcicpOworCitiYWNrZ3JvdW5k
RmV0Y2hUZXN0KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gpID0+IHsKKyAgY29uc3QgcmVn
aXN0cmF0aW9uID0gYXdhaXQgYmFja2dyb3VuZEZldGNoLmZldGNoKAorICAgICdteS1pZCcsIFsn
cmVzb3VyY2VzL2ZlYXR1cmUtbmFtZS50eHQnLCAncmVzb3VyY2VzL2ZlYXR1cmUtbmFtZS50eHQn
XSk7CisKKyAgY29uc3Qge3R5cGUsIGV2ZW50UmVnaXN0cmF0aW9uLCByZXN1bHRzfSA9IGF3YWl0
IGdldE1lc3NhZ2VGcm9tU2VydmljZVdvcmtlcigpOworICBhc3NlcnRfZXF1YWxzKCdiYWNrZ3Jv
dW5kZmV0Y2hzdWNjZXNzJywgdHlwZSk7CisgIGFzc2VydF9lcXVhbHMocmVzdWx0cy5sZW5ndGgs
IDIpOworCisgIGFzc2VydF9lcXVhbHMoZXZlbnRSZWdpc3RyYXRpb24uaWQsIHJlZ2lzdHJhdGlv
bi5pZCk7CisgIGFzc2VydF9lcXVhbHMoZXZlbnRSZWdpc3RyYXRpb24ucmVzdWx0LCAnc3VjY2Vz
cycpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50UmVnaXN0cmF0aW9uLmZhaWx1cmVSZWFzb24sICcn
KTsKKworICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXN1bHRzKSB7CisgICAgYXNzZXJ0X3RydWUo
cmVzdWx0LnVybC5pbmNsdWRlcygncmVzb3VyY2VzL2ZlYXR1cmUtbmFtZS50eHQnKSk7CisgICAg
YXNzZXJ0X2VxdWFscyhyZXN1bHQuc3RhdHVzLCAyMDApOworICAgIGFzc2VydF9lcXVhbHMocmVz
dWx0LnRleHQsICdCYWNrZ3JvdW5kIEZldGNoJyk7CisgIH0KKworfSwgJ0ZldGNoZXMgY2FuIGhh
dmUgcmVxdWVzdHMgd2l0aCBkdXBsaWNhdGUgVVJMcycpOworCitiYWNrZ3JvdW5kRmV0Y2hUZXN0
KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gpID0+IHsKKyAgY29uc3QgcmVnaXN0cmF0aW9u
SWQgPSB1bmlxdWVJZCgpOworICBjb25zdCByZWdpc3RyYXRpb24gPQorICAgIGF3YWl0IGJhY2tn
cm91bmRGZXRjaC5mZXRjaChyZWdpc3RyYXRpb25JZCwgJ3Jlc291cmNlcy9mZWF0dXJlLW5hbWUu
dHh0Jyk7CisgIGFzc2VydF90cnVlKHJlZ2lzdHJhdGlvbi5yZWNvcmRzQXZhaWxhYmxlKTsKKwor
ICBjb25zdCB7dHlwZSwgZXZlbnRSZWdpc3RyYXRpb24sIHJlc3VsdHN9ID0gYXdhaXQgZ2V0TWVz
c2FnZUZyb21TZXJ2aWNlV29ya2VyKCk7CisgIGFzc2VydF9lcXVhbHMoJ2JhY2tncm91bmRmZXRj
aHN1Y2Nlc3MnLCB0eXBlKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzLmxlbmd0aCwgMSk7CisK
KyAgLy8gV2FpdCBmb3IgdXAgdG8gNSBzZWNvbmRzIGZvciB0aGUgfGV2ZW50UmVnaXN0cmF0aW9u
fCdzIHJlY29yZHNBdmFpbGFibGUKKyAgLy8gZmxhZyB0byBiZSBzZXQgdG8gZmFsc2UsIHdoaWNo
IGhhcHBlbnMgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgaW52b2NhdGlvbgorICAvLyBvZiB0aGUgU2Vy
dmljZVdvcmtlciBldmVudCBoYXMgZmluaXNoZWQuCisgIGZvciAobGV0IGkgPSAwOyBpIDwgNTA7
ICsraSkgeworICAgIGlmICghcmVnaXN0cmF0aW9uLnJlY29yZHNBdmFpbGFibGUpCisgICAgICBi
cmVhazsKKyAgICBhd2FpdCB3YWl0KDEwMCk7CisgIH0KKworICBhc3NlcnRfZmFsc2UocmVnaXN0
cmF0aW9uLnJlY29yZHNBdmFpbGFibGUpOworfSwgJ3JlY29yZHNBdmFpbGFibGUgaXMgZmFsc2Ug
YWZ0ZXIgb25iYWNrZ3JvdW5kZmV0Y2hzdWNjZXNzIGZpbmlzaGVzIGV4ZWN1dGlvbi4nKTsKKwor
YmFja2dyb3VuZEZldGNoVGVzdChhc3luYyAodGVzdCwgYmFja2dyb3VuZEZldGNoKSA9PiB7Cisg
IGNvbnN0IHJlZ2lzdHJhdGlvbklkID0gdW5pcXVlSWQoKTsKKyAgY29uc3QgcmVnaXN0cmF0aW9u
ID0KKyAgICBhd2FpdCBiYWNrZ3JvdW5kRmV0Y2guZmV0Y2gocmVnaXN0cmF0aW9uSWQsICdyZXNv
dXJjZXMvbWlzc2luZy1jYXQudHh0Jyk7CisKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24u
aWQsIHJlZ2lzdHJhdGlvbklkKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ucmVzdWx0
LCAnJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmZhaWx1cmVSZWFzb24sICcnKTsK
KworICBjb25zdCB7dHlwZSwgZXZlbnRSZWdpc3RyYXRpb24sIHJlc3VsdHN9ID0gYXdhaXQgZ2V0
TWVzc2FnZUZyb21TZXJ2aWNlV29ya2VyKCk7CisgIGFzc2VydF9lcXVhbHModHlwZSwgJ2JhY2tn
cm91bmRmZXRjaGZhaWwnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzLmxlbmd0aCwgMSk7Cisg
IGFzc2VydF90cnVlKHJlc3VsdHNbMF0udXJsLmluY2x1ZGVzKCdyZXNvdXJjZXMvbWlzc2luZy1j
YXQudHh0JykpOworICBhc3NlcnRfZXF1YWxzKHJlc3VsdHNbMF0uc3RhdHVzLCA0MDQpOworICBh
c3NlcnRfZXF1YWxzKHJlc3VsdHNbMF0udGV4dCwgJycpOworCisgIGFzc2VydF9lcXVhbHMoZXZl
bnRSZWdpc3RyYXRpb24uaWQsIHJlZ2lzdHJhdGlvbi5pZCk7CisgIGFzc2VydF9lcXVhbHMoZXZl
bnRSZWdpc3RyYXRpb24ucmVzdWx0LCAnZmFpbHVyZScpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50
UmVnaXN0cmF0aW9uLmZhaWx1cmVSZWFzb24sICdiYWQtc3RhdHVzJyk7CisKKyAgYXNzZXJ0X2Vx
dWFscyhyZWdpc3RyYXRpb24ucmVzdWx0LCAnZmFpbHVyZScpOworICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5mYWlsdXJlUmVhc29uLCAnYmFkLXN0YXR1cycpOworCit9LCAnVXNpbmcgQmFj
a2dyb3VuZCBGZXRjaCB0byBmZXRjaCBhIG5vbi1leGlzdGVudCByZXNvdXJjZSBzaG91bGQgZmFp
bC4nKTsKKworYmFja2dyb3VuZEZldGNoVGVzdChhc3luYyAodGVzdCwgYmFja2dyb3VuZEZldGNo
KSA9PiB7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IGJhY2tncm91bmRGZXRjaC5mZXRj
aCgKKyAgICAgICdteS1pZCcsCisgICAgICBbbG9jYXRpb24ub3JpZ2luLCBsb2NhdGlvbi5vcmln
aW4ucmVwbGFjZSgnaHR0cHMnLCAnaHR0cCcpXSk7CisKKyAgY29uc3Qge3R5cGUsIGV2ZW50UmVn
aXN0cmF0aW9uLCByZXN1bHRzfSA9IGF3YWl0IGdldE1lc3NhZ2VGcm9tU2VydmljZVdvcmtlcigp
OworCisgIGFzc2VydF9lcXVhbHMoJ2JhY2tncm91bmRmZXRjaGZhaWwnLCB0eXBlKTsKKyAgYXNz
ZXJ0X2VxdWFscyhldmVudFJlZ2lzdHJhdGlvbi5mYWlsdXJlUmVhc29uLCAnZmV0Y2gtZXJyb3In
KTsKKworICBhc3NlcnRfZXF1YWxzKHJlc3VsdHMubGVuZ3RoLCAyKTsKKworICBjb25zdCB2YWxp
ZFJlc3BvbnNlID0gcmVzdWx0c1swXSA/IHJlc3VsdHNbMF0gOiByZXN1bHRzWzFdOworICBjb25z
dCBudWxsUmVzcG9uc2UgPSAhcmVzdWx0c1swXSA/IHJlc3VsdHNbMF0gOiByZXN1bHRzWzFdOwor
CisgIGFzc2VydF90cnVlKHZhbGlkUmVzcG9uc2UudXJsLmluY2x1ZGVzKGxvY2F0aW9uLm9yaWdp
bikpOworICBhc3NlcnRfZXF1YWxzKG51bGxSZXNwb25zZSwgbnVsbCk7CisKK30sICdGZXRjaGVz
IHdpdGggbWl4ZWQgY29udGVudCBzaG91bGQgZmFpbC4nKTsKKworYmFja2dyb3VuZEZldGNoVGVz
dChhc3luYyAodGVzdCwgYmFja2dyb3VuZEZldGNoKSA9PiB7CisgIGNvbnN0IGZpbGVQYXRoID0g
Jy9iYWNrZ3JvdW5kLWZldGNoL3Jlc291cmNlcy9mZWF0dXJlLW5hbWUudHh0JzsKKyAgY29uc3Qg
cmVnaXN0cmF0aW9uID0gYXdhaXQgYmFja2dyb3VuZEZldGNoLmZldGNoKAorICAgIHVuaXF1ZUlk
KCksCisgICAgYGh0dHBzOi8vJHtnZXRfaG9zdF9pbmZvKCkuUkVNT1RFX0hPU1R9JHtmaWxlUGF0
aH1gKTsKKworICBjb25zdCB7dHlwZSwgZXZlbnRSZWdpc3RyYXRpb24sIHJlc3VsdHN9ID0gYXdh
aXQgZ2V0TWVzc2FnZUZyb21TZXJ2aWNlV29ya2VyKCk7CisgIGFzc2VydF9lcXVhbHModHlwZSwg
J2JhY2tncm91bmRmZXRjaGZhaWwnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzLmxlbmd0aCwg
MSk7CisKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzWzBdLCBudWxsKTsKKyAgYXNzZXJ0X2VxdWFs
cyhldmVudFJlZ2lzdHJhdGlvbi5pZCwgcmVnaXN0cmF0aW9uLmlkKTsKKyAgYXNzZXJ0X2VxdWFs
cyhldmVudFJlZ2lzdHJhdGlvbi5kb3dubG9hZGVkLCAwKTsKK30sICdSZXNwb25zZXMgZmFpbGlu
ZyBDT1JTIGNoZWNrcyBhcmUgbm90IGxlYWtlZCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2dldC1pZHMu
aHR0cHMud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvZ2V0LWlkcy5odHRwcy53aW5kb3cuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNr
Z3JvdW5kLWZldGNoL2dldC1pZHMuaHR0cHMud2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRv
IHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9i
YWNrZ3JvdW5kLWZldGNoL2dldC1pZHMuaHR0cHMud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2dldC1pZHMuaHR0
cHMud2luZG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjOGJmMjYxOTA3MTkxMDhlNjViNDQ2YTM0YWFmZTBh
ZWIxMzc3YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvZ2V0LWlkcy5odHRwcy53aW5kb3cuanMK
QEAgLTAsMCArMSw0NSBAQAorLy8gTUVUQTogc2NyaXB0PS9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMKKy8vIE1FVEE6IHNjcmlwdD1y
ZXNvdXJjZXMvdXRpbHMuanMKKyd1c2Ugc3RyaWN0JzsKKworLy8gQ292ZXJzIGZ1bmN0aW9uYWxp
dHkgcHJvdmlkZWQgYnkgQmFja2dyb3VuZEZldGNoTWFuYWdlci5nZXRJZHMoKSwgd2hpY2gKKy8v
IGV4cG9zZXMgdGhlIGtleXMgb2YgYWN0aXZlIGJhY2tncm91bmQgZmV0Y2hlcy4KKy8vCisvLyBo
dHRwczovL3dpY2cuZ2l0aHViLmlvL2JhY2tncm91bmQtZmV0Y2gvI2JhY2tncm91bmQtZmV0Y2gt
bWFuYWdlci1nZXRJZHMKKworcHJvbWlzZV90ZXN0KGFzeW5jIHRlc3QgPT4geworICBjb25zdCBz
Y3JpcHQgPSAnc2VydmljZV93b3JrZXJzL3N3LmpzJzsKKyAgY29uc3Qgc2NvcGUgPSAnc2Vydmlj
ZV93b3JrZXJzLycgKyBsb2NhdGlvbi5wYXRobmFtZTsKKworICBjb25zdCBzZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uID0KKyAgICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHRlc3QsIHNjcmlwdCwgc2NvcGUpOworCisgIGFzc2VydF9lcXVhbHMoCisgICAg
ICBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmFjdGl2ZSwgbnVsbCwKKyAgICAgICdUaGVyZSBt
dXN0IG5vdCBiZSBhbiBhY3RpdmF0ZWQgd29ya2VyJyk7CisKKyAgY29uc3QgaWRzID0gYXdhaXQg
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5iYWNrZ3JvdW5kRmV0Y2guZ2V0SWRzKCk7CisgIGFz
c2VydF9lcXVhbHMoaWRzLmxlbmd0aCwgMCk7CisKK30sICdCYWNrZ3JvdW5kRmV0Y2hNYW5hZ2Vy
LmdldElkcygpIGRvZXMgbm90IHJlcXVpcmUgYW4gYWN0aXZhdGVkIHdvcmtlcicpOworCitiYWNr
Z3JvdW5kRmV0Y2hUZXN0KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gpID0+IHsKKyAgLy8g
VGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYWN0aXZlIGJhY2tncm91bmQgZmV0Y2hlcyBhdCB0aGlz
IHBvaW50LgorICB7CisgICAgY29uc3QgaWRzID0gYXdhaXQgYmFja2dyb3VuZEZldGNoLmdldElk
cygpOworICAgIGFzc2VydF9lcXVhbHMoaWRzLmxlbmd0aCwgMCk7CisgIH0KKworICBjb25zdCBy
ZWdpc3RyYXRpb25JZCA9IHVuaXF1ZUlkKCk7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9CisgICAg
ICBhd2FpdCBiYWNrZ3JvdW5kRmV0Y2guZmV0Y2gocmVnaXN0cmF0aW9uSWQsICdyZXNvdXJjZXMv
ZmVhdHVyZS1uYW1lLnR4dCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pZCwgcmVn
aXN0cmF0aW9uSWQpOworCisgIC8vIFRoZSB8cmVnaXN0cmF0aW9uSWR8IHNob3VsZCBiZSBhY3Rp
dmUsIGFuZCB0aHVzIGJlIGluY2x1ZGVkIGluIGdldElkcygpLgorICB7CisgICAgY29uc3QgaWRz
ID0gYXdhaXQgYmFja2dyb3VuZEZldGNoLmdldElkcygpOworICAgIGFzc2VydF9lcXVhbHMoaWRz
Lmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhpZHNbMF0sIHJlZ2lzdHJhdGlvbklkKTsK
KyAgfQorCit9LCAnVGhlIEJhY2tncm91bmRGZXRjaE1hbmFnZXIgZXhwb3NlcyBhY3RpdmUgZmV0
Y2hlcycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2dldC5odHRwcy53aW5kb3cuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9nZXQu
aHR0cHMud2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0
NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9nZXQuaHR0cHMud2luZG93Lmh0
bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0
ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2dldC5odHRwcy53aW5kb3cuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQt
ZmV0Y2gvZ2V0Lmh0dHBzLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDQ0OGQxODRhNjY1YjQ4MDJl
MjVkMGNmNTEzNmNhNDU1ZTA4NTA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2dldC5odHRwcy53
aW5kb3cuanMKQEAgLTAsMCArMSw2NCBAQAorLy8gTUVUQTogc2NyaXB0PS9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMKKy8vIE1FVEE6
IHNjcmlwdD1yZXNvdXJjZXMvdXRpbHMuanMKKyd1c2Ugc3RyaWN0JzsKKworLy8gQ292ZXJzIGZ1
bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgQmFja2dyb3VuZEZldGNoTWFuYWdlci5nZXQoKSwgd2hp
Y2gKKy8vIGV4cG9zZXMgdGhlIGtleXMgb2YgYWN0aXZlIGJhY2tncm91bmQgZmV0Y2hlcy4KKy8v
CisvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2JhY2tncm91bmQtZmV0Y2gvI2JhY2tncm91bmQt
ZmV0Y2gtbWFuYWdlci1nZXQKKworcHJvbWlzZV90ZXN0KGFzeW5jIHRlc3QgPT4geworICBjb25z
dCBzY3JpcHQgPSAnc2VydmljZV93b3JrZXJzL3N3LmpzJzsKKyAgY29uc3Qgc2NvcGUgPSAnc2Vy
dmljZV93b3JrZXJzLycgKyBsb2NhdGlvbi5wYXRobmFtZTsKKworICBjb25zdCBzZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uID0KKyAgICAgIGF3YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHRlc3QsIHNjcmlwdCwgc2NvcGUpOworCisgIGFzc2VydF9lcXVhbHMoCisg
ICAgICBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmFjdGl2ZSwgbnVsbCwKKyAgICAgICdUaGVy
ZSBtdXN0IG5vdCBiZSBhbiBhY3RpdmF0ZWQgd29ya2VyJyk7CisKKyAgY29uc3QgcmVnaXN0cmF0
aW9uID0gYXdhaXQgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5iYWNrZ3JvdW5kRmV0Y2guZ2V0
KCd4Jyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLCB1bmRlZmluZWQpOworCit9LCAn
QmFja2dyb3VuZEZldGNoTWFuYWdlci5nZXQoKSBkb2VzIG5vdCByZXF1aXJlIGFuIGFjdGl2YXRl
ZCB3b3JrZXInKTsKKworYmFja2dyb3VuZEZldGNoVGVzdChhc3luYyAodGVzdCwgYmFja2dyb3Vu
ZEZldGNoKSA9PiB7CisgIC8vIFRoZSB8aWR8IHBhcmFtZXRlciB0byB0aGUgQmFja2dyb3VuZEZl
dGNoTWFuYWdlci5nZXQoKSBtZXRob2QgaXMgcmVxdWlyZWQuCisgIGF3YWl0IHByb21pc2VfcmVq
ZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIGJhY2tncm91bmRGZXRjaC5nZXQoKSk7CisgIGF3YWl0
IHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIGJhY2tncm91bmRGZXRjaC5nZXQo
JycpKTsKKworICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBiYWNrZ3JvdW5kRmV0Y2guZ2V0
KCdteS1pZCcpOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbiwgdW5kZWZpbmVkKTsKKwor
fSwgJ0dldHRpbmcgbm9uLWV4aXN0aW5nIHJlZ2lzdHJhdGlvbnMgeWllbGRzIGB1bmRlZmluZWRg
Jyk7CisKK2JhY2tncm91bmRGZXRjaFRlc3QoYXN5bmMgKHRlc3QsIGJhY2tncm91bmRGZXRjaCkg
PT4geworICBjb25zdCByZWdpc3RyYXRpb25JZCA9IHVuaXF1ZUlkKCk7CisgIGNvbnN0IHJlZ2lz
dHJhdGlvbiA9IGF3YWl0IGJhY2tncm91bmRGZXRjaC5mZXRjaCgKKyAgICAgIHJlZ2lzdHJhdGlv
bklkLCAncmVzb3VyY2VzL2ZlYXR1cmUtbmFtZS50eHQnLCB7ZG93bmxvYWRUb3RhbDogMTIzNH0p
OworCisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmlkLCByZWdpc3RyYXRpb25JZCk7Cisg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLnVwbG9hZFRvdGFsLCAwKTsKKyAgYXNzZXJ0X2Vx
dWFscyhyZWdpc3RyYXRpb24udXBsb2FkZWQsIDApOworICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJh
dGlvbi5kb3dubG9hZFRvdGFsLCAxMjM0KTsKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24u
cmVzdWx0LCAnJyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmZhaWx1cmVSZWFzb24s
ICcnKTsKKyAgYXNzZXJ0X3RydWUocmVnaXN0cmF0aW9uLnJlY29yZHNBdmFpbGFibGUpOworICAv
LyBTa2lwIGBkb3dubG9hZGVkYCwgYXMgdGhlIHRyYW5zZmVyIG1heSBoYXZlIHN0YXJ0ZWQgYWxy
ZWFkeS4KKworICBjb25zdCBzZWNvbmRSZWdpc3RyYXRpb24gPSBhd2FpdCBiYWNrZ3JvdW5kRmV0
Y2guZ2V0KHJlZ2lzdHJhdGlvbklkKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMoc2Vjb25kUmVnaXN0
cmF0aW9uLCBudWxsKTsKKworICBhc3NlcnRfZXF1YWxzKHNlY29uZFJlZ2lzdHJhdGlvbi5pZCwg
cmVnaXN0cmF0aW9uLmlkKTsKKyAgYXNzZXJ0X2VxdWFscyhzZWNvbmRSZWdpc3RyYXRpb24udXBs
b2FkVG90YWwsIHJlZ2lzdHJhdGlvbi51cGxvYWRUb3RhbCk7CisgIGFzc2VydF9lcXVhbHMoc2Vj
b25kUmVnaXN0cmF0aW9uLnVwbG9hZGVkLCByZWdpc3RyYXRpb24udXBsb2FkZWQpOworICBhc3Nl
cnRfZXF1YWxzKHNlY29uZFJlZ2lzdHJhdGlvbi5kb3dubG9hZFRvdGFsLCByZWdpc3RyYXRpb24u
ZG93bmxvYWRUb3RhbCk7CisgIGFzc2VydF9lcXVhbHMoc2Vjb25kUmVnaXN0cmF0aW9uLmZhaWx1
cmVSZWFzb24sIHJlZ2lzdHJhdGlvbi5mYWlsdXJlUmVhc29uKTsKKyAgYXNzZXJ0X2VxdWFscyhz
ZWNvbmRSZWdpc3RyYXRpb24ucmVjb3Jkc0F2YWlsYWJsZSwgcmVnaXN0cmF0aW9uLnJlY29yZHNB
dmFpbGFibGUpOworCisgIC8vIFdoaWxlIHRoZSB0cmFuc2ZlciBtaWdodCBoYXZlIHN0YXJ0ZWQs
IGJvdGggQmFja2dyb3VuZEZldGNoUmVnaXN0cmF0aW9uCisgIC8vIG9iamVjdHMgc2hvdWxkIGhh
dmUgdGhlIGxhdGVzdCBwcm9ncmVzcyB2YWx1ZXMuCisgIGFzc2VydF9lcXVhbHMoc2Vjb25kUmVn
aXN0cmF0aW9uLmRvd25sb2FkZWQsIHJlZ2lzdHJhdGlvbi5kb3dubG9hZGVkKTsKKworfSwgJ0dl
dHRpbmcgYW4gZXhpc3RpbmcgcmVnaXN0cmF0aW9uIGhhcyB0aGUgZXhwZWN0ZWQgdmFsdWVzJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JhY2tncm91bmQtZmV0Y2gvaWRsaGFybmVzcy5odHRwcy5hbnkuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9pZGxoYXJu
ZXNzLmh0dHBzLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBh
NDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvaWRsaGFybmVzcy5odHRwcy5h
bnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2Vi
S2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvaWRsaGFybmVzcy5odHRw
cy5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jh
Y2tncm91bmQtZmV0Y2gvaWRsaGFybmVzcy5odHRwcy5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFmNTE3
ZmRjNzk4MGE4YjE2NjZmNmExOTAwM2NlYTRmM2EyOWIzNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRj
aC9pZGxoYXJuZXNzLmh0dHBzLmFueS5qcwpAQCAtMCwwICsxLDI1IEBACisvLyBNRVRBOiBnbG9i
YWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvV2ViSURMUGFyc2Vy
LmpzCisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCisvLyBNRVRBOiB0
aW1lb3V0PWxvbmcKKworJ3VzZSBzdHJpY3QnOworCisvLyBodHRwczovL3dpY2cuZ2l0aHViLmlv
L2JhY2tncm91bmQtZmV0Y2gvCisKK2lkbF90ZXN0KAorICBbJ2JhY2tncm91bmQtZmV0Y2gnXSwK
KyAgWydzZXJ2aWNlLXdvcmtlcnMnLCAnaHRtbCcsICdkb20nXSwKKyAgaWRsX2FycmF5ID0+IHsK
KyAgICBjb25zdCBpc1NlcnZpY2VXb3JrZXIgPSBsb2NhdGlvbi5wYXRobmFtZS5pbmNsdWRlcygn
LnNlcnZpY2V3b3JrZXIuJyk7CisgICAgaWYgKGlzU2VydmljZVdvcmtlcikgeworICAgICAgaWRs
X2FycmF5LmFkZF9vYmplY3RzKHsKKyAgICAgICAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOiBb
J3NlbGYnXSwKKyAgICAgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjogWydyZWdpc3RyYXRp
b24nXSwKKyAgICAgICAgQmFja2dyb3VuZEZldGNoTWFuYWdlcjogWydyZWdpc3RyYXRpb24uYmFj
a2dyb3VuZEZldGNoJ10sCisgICAgICAgIEJhY2tncm91bmRGZXRjaEV2ZW50OiBbJ25ldyBCYWNr
Z3JvdW5kRmV0Y2hFdmVudCgidHlwZSIpJ10sCisgICAgICAgIEJhY2tncm91bmRGZXRjaFVwZGF0
ZUV2ZW50OiBbJ25ldyBCYWNrZ3JvdW5kRmV0Y2hVcGRhdGVFdmVudCgidHlwZSIpJ10sCisgICAg
ICB9KTsKKyAgICB9CisgIH0KKyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvaWRsaGFybmVzcy5odHRwcy5h
bnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JhY2tncm91bmQtZmV0Y2gvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmFja2dyb3VuZC1mZXRjaC9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXIuaHRtbApAQCAtMCww
ICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvaW50ZXJmYWNlcy13b3JrZXIuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNr
Z3JvdW5kLWZldGNoL2ludGVyZmFjZXMtd29ya2VyLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTljZmI1ZTlmYWE4MjVlODUyMTYwZWRjYmQ0YThjZTgz
ZjA4ODFiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0
Y2gvaW50ZXJmYWNlcy13b3JrZXIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi1pZGxoYXJuZXNzIHRlc3QKLQotVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUg
V2ViSURMIGluY2x1ZGVkIGluIHRoZSBCYWNrZ3JvdW5kIEZldGNoIEFQSSAoU2VydmljZSBXb3Jr
ZXJzKS4KLQotCi1GQUlMIFNlcnZpY2UgV29ya2VyLXNjb3BlZCB0ZXN0cy4gYXNzZXJ0X3VucmVh
Y2hlZDogdW5yZWdpc3RlciBzaG91bGQgbm90IGZhaWw6IHNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0
cmF0aW9uKCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9iYWNrZ3JvdW5kLWZldGNoL2ludGVyZmFjZXMtd29ya2VyLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvaW50
ZXJmYWNlcy13b3JrZXIuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDNhN2ZiNmMxMWU5ZjgxMTAzZTNkYjcyMTNhMWJjYzdkMzU2ZjE0Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvaW50ZXJmYWNlcy13b3JrZXIuaHR0
cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPkJhY2tncm91bmQgRmV0Y2ggQVBJIElETCB0
ZXN0czwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci0KLTxoMT5pZGxoYXJuZXNzIHRl
c3Q8L2gxPgotPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgV2ViSURMIGluY2x1ZGVkIGluIHRo
ZSBCYWNrZ3JvdW5kIEZldGNoIEFQSSAoU2VydmljZSBXb3JrZXJzKS48L3A+Ci0KLTxzY3JpcHQ+
Ci0ndXNlIHN0cmljdCc7Ci0KLXNlcnZpY2Vfd29ya2VyX3Rlc3QoJ2ludGVyZmFjZXMud29ya2Vy
LmpzJywgJ1NlcnZpY2UgV29ya2VyLXNjb3BlZCB0ZXN0cy4nKTsKLTwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3Jv
dW5kLWZldGNoL2ludGVyZmFjZXMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9pbnRlcmZhY2VzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxZTMyMGU2NDM3OWYwYWY4MzIzYWViYWYzNTUyY2VmOGYy
NDQ5MTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNo
L2ludGVyZmFjZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTwhZG9jdHlw
ZSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPkJhY2tncm91bmQgRmV0Y2gg
QVBJIElETCB0ZXN0czwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci0KLTxoMT5pZGxoYXJuZXNzIHRlc3Q8L2gxPgotPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0
aGUgV2ViSURMIGluY2x1ZGVkIGluIHRoZSBCYWNrZ3JvdW5kIEZldGNoIEFQSSAoRG9jdW1lbnRz
KS48L3A+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXByb21pc2VfdGVzdChhc3luYyBm
dW5jdGlvbiAoKSB7Ci0gIGNvbnN0IGlkbHMgPSBhd2FpdCBmZXRjaCgnL2ludGVyZmFjZXMvYmFj
a2dyb3VuZC1mZXRjaC5pZGwnKS50aGVuKHIgPT4gci50ZXh0KCkpOwotICBjb25zdCBkb20gPSBh
d2FpdCBmZXRjaCgnL2ludGVyZmFjZXMvZG9tLmlkbCcpLnRoZW4ociA9PiByLnRleHQoKSk7Ci0K
LSAgdmFyIGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7Ci0gIGlkbEFycmF5LmFkZF91bnRlc3Rl
ZF9pZGxzKCdpbnRlcmZhY2UgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiB7fTsnKTsKLSAgaWRs
QXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoJ1tFeHBvc2VkPVNlcnZpY2VXb3JrZXJdIGludGVyZmFj
ZSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUge307Jyk7Ci0gIGlkbEFycmF5LmFkZF91bnRlc3Rl
ZF9pZGxzKCdpbnRlcmZhY2UgRXh0ZW5kYWJsZUV2ZW50e307Jyk7Ci0gIGlkbEFycmF5LmFkZF91
bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEV4dGVuZGFibGVFdmVudEluaXR7fTsnKTsKLSAgaWRs
QXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoZG9tLCB7IG9ubHk6IFsnRXZlbnRUYXJnZXQnXSB9KTsK
LSAgaWRsQXJyYXkuYWRkX2lkbHMoaWRscyk7Ci0gIGlkbEFycmF5LnRlc3QoKTsKLX0sICdFeHBv
c2VkIGludGVyZmFjZXMgaW4gYSBEb2N1bWVudC4nKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZl
dGNoL2ludGVyZmFjZXMud29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2ludGVyZmFjZXMud29ya2VyLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzYwZmZkNTlhZjUyYTExMjVlYjQ5ZTU1MTA3ZDg5
NDNiMTgyMTJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1m
ZXRjaC9pbnRlcmZhY2VzLndvcmtlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAK
LSd1c2Ugc3RyaWN0JzsKLQotaW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cycpOwotaW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMnLCAnL3Jlc291
cmNlcy9pZGxoYXJuZXNzLmpzJyk7Ci0KLXByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbigpIHsK
LSAgY29uc3QgaWRscyA9IGF3YWl0IGZldGNoKCcvaW50ZXJmYWNlcy9iYWNrZ3JvdW5kLWZldGNo
LmlkbCcpLnRoZW4ociA9PiByLnRleHQoKSk7Ci0gIGNvbnN0IGRvbSA9IGF3YWl0IGZldGNoKCcv
aW50ZXJmYWNlcy9kb20uaWRsJykudGhlbihyID0+IHIudGV4dCgpKTsKLQotICB2YXIgaWRsQXJy
YXkgPSBuZXcgSWRsQXJyYXkoKTsKLSAgaWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVy
ZmFjZSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIHt9OycpOwotICBpZGxBcnJheS5hZGRfdW50
ZXN0ZWRfaWRscygnW1NlY3VyZUNvbnRleHQsIEV4cG9zZWQgPSAoV2luZG93LCBXb3JrZXIpXSBp
bnRlcmZhY2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHt9OycpOwotICBpZGxBcnJheS5hZGRf
dW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEV4dGVuZGFibGVFdmVudHt9OycpOwotICBpZGxBcnJh
eS5hZGRfdW50ZXN0ZWRfaWRscygnZGljdGlvbmFyeSBFeHRlbmRhYmxlRXZlbnRJbml0e307Jyk7
Ci0gIGlkbEFycmF5LmFkZF91bnRlc3RlZF9pZGxzKGRvbSwgeyBvbmx5OiBbJ0V2ZW50VGFyZ2V0
J10gfSk7Ci0gIGlkbEFycmF5LmFkZF9pZGxzKGlkbHMpOwotICBpZGxBcnJheS50ZXN0KCk7Ci19
LCAnRXhwb3NlZCBpbnRlcmZhY2VzIGluIGEgU2VydmljZSBXb3JrZXIuJyk7Ci0KLWRvbmUoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmFja2dyb3VuZC1mZXRjaC9tYXRjaC5odHRwcy53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9tYXRjaC5odHRw
cy53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYw
OTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL21hdGNoLmh0dHBzLndpbmRvdy5odG1s
CkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVz
dCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9tYXRjaC5odHRwcy53aW5kb3cuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQt
ZmV0Y2gvbWF0Y2guaHR0cHMud2luZG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5YmU1ZTcwNjE2MmY4ZTA5
YzAxOTFhOTdjOGViZDcyZGRlNGFiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvbWF0Y2guaHR0
cHMud2luZG93LmpzCkBAIC0wLDAgKzEsMTEzIEBACisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9n
ZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0PS9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMKKy8vIE1FVEE6IHNjcmlw
dD1yZXNvdXJjZXMvdXRpbHMuanMKKworJ3VzZSBzdHJpY3QnOworCisvLyBDb3ZlcnMgYmFzaWMg
ZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSBCYWNrZ3JvdW5kRmV0Y2hSZWdpc3RyYXRpb24ubWF0
Y2goQWxsKT8uCisvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2JhY2tncm91bmQtZmV0Y2gvI2Rv
bS1iYWNrZ3JvdW5kZmV0Y2hyZWdpc3RyYXRpb24tbWF0Y2gKKworYmFja2dyb3VuZEZldGNoVGVz
dChhc3luYyAodGVzdCwgYmFja2dyb3VuZEZldGNoKSA9PiB7CisgIGNvbnN0IHJlZ2lzdHJhdGlv
bklkID0gJ21hdGNoZXhpc3RpbmdyZXF1ZXN0JzsKKyAgY29uc3QgcmVnaXN0cmF0aW9uID0KKyAg
ICAgIGF3YWl0IGJhY2tncm91bmRGZXRjaC5mZXRjaChyZWdpc3RyYXRpb25JZCwgJ3Jlc291cmNl
cy9mZWF0dXJlLW5hbWUudHh0Jyk7CisKKyAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaWQs
IHJlZ2lzdHJhdGlvbklkKTsKKworICBjb25zdCB7dHlwZSwgZXZlbnRSZWdpc3RyYXRpb24sIHJl
c3VsdHN9ID0gYXdhaXQgZ2V0TWVzc2FnZUZyb21TZXJ2aWNlV29ya2VyKCk7CisgIGFzc2VydF9l
cXVhbHMoJ2JhY2tncm91bmRmZXRjaHN1Y2Nlc3MnLCB0eXBlKTsKKyAgYXNzZXJ0X2VxdWFscyhy
ZXN1bHRzLmxlbmd0aCwgMSk7CisKKyAgYXNzZXJ0X2VxdWFscyhldmVudFJlZ2lzdHJhdGlvbi5p
ZCwgcmVnaXN0cmF0aW9uLmlkKTsKKyAgYXNzZXJ0X2VxdWFscyhldmVudFJlZ2lzdHJhdGlvbi5y
ZXN1bHQsICdzdWNjZXNzJyk7CisgIGFzc2VydF9lcXVhbHMoZXZlbnRSZWdpc3RyYXRpb24uZmFp
bHVyZVJlYXNvbiwgJycpOworCisgIGFzc2VydF90cnVlKHJlc3VsdHNbMF0udXJsLmluY2x1ZGVz
KCdyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dCcpKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHRz
WzBdLnN0YXR1cywgMjAwKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzWzBdLnRleHQsICdCYWNr
Z3JvdW5kIEZldGNoJyk7CisKK30sICdNYXRjaGluZyB0byBhIHNpbmdsZSByZXF1ZXN0IHNob3Vs
ZCB3b3JrJyk7CisKK2JhY2tncm91bmRGZXRjaFRlc3QoYXN5bmMgKHRlc3QsIGJhY2tncm91bmRG
ZXRjaCkgPT4geworICBjb25zdCByZWdpc3RyYXRpb25JZCA9ICdtYXRjaG1pc3NpbmdyZXF1ZXN0
JzsKKyAgY29uc3QgcmVnaXN0cmF0aW9uID0KKyAgICAgIGF3YWl0IGJhY2tncm91bmRGZXRjaC5m
ZXRjaChyZWdpc3RyYXRpb25JZCwgJ3Jlc291cmNlcy9mZWF0dXJlLW5hbWUudHh0Jyk7CisKKyAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaWQsIHJlZ2lzdHJhdGlvbklkKTsKKworICBjb25z
dCB7dHlwZSwgZXZlbnRSZWdpc3RyYXRpb24sIHJlc3VsdHN9ID0gYXdhaXQgZ2V0TWVzc2FnZUZy
b21TZXJ2aWNlV29ya2VyKCk7CisgIGFzc2VydF9lcXVhbHMoJ2JhY2tncm91bmRmZXRjaHN1Y2Nl
c3MnLCB0eXBlKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzLmxlbmd0aCwgMCk7CisKKyAgYXNz
ZXJ0X2VxdWFscyhldmVudFJlZ2lzdHJhdGlvbi5pZCwgcmVnaXN0cmF0aW9uLmlkKTsKKyAgYXNz
ZXJ0X2VxdWFscyhldmVudFJlZ2lzdHJhdGlvbi5yZXN1bHQsICdzdWNjZXNzJyk7CisgIGFzc2Vy
dF9lcXVhbHMoZXZlbnRSZWdpc3RyYXRpb24uZmFpbHVyZVJlYXNvbiwgJycpOworCit9LCAnTWF0
Y2hpbmcgdG8gYSBub24tZXhpc3RpbmcgcmVxdWVzdCBzaG91bGQgd29yaycpOworCitiYWNrZ3Jv
dW5kRmV0Y2hUZXN0KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gpID0+IHsKKyAgY29uc3Qg
cmVnaXN0cmF0aW9uSWQgPSAnbWF0Y2hleGlzdGluZ3JlcXVlc3R0d2ljZSc7CisgIGNvbnN0IHJl
Z2lzdHJhdGlvbiA9CisgICAgICBhd2FpdCBiYWNrZ3JvdW5kRmV0Y2guZmV0Y2gocmVnaXN0cmF0
aW9uSWQsICdyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dCcpOworCisgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLmlkLCByZWdpc3RyYXRpb25JZCk7CisKKyAgY29uc3Qge3R5cGUsIGV2ZW50
UmVnaXN0cmF0aW9uLCByZXN1bHRzfSA9IGF3YWl0IGdldE1lc3NhZ2VGcm9tU2VydmljZVdvcmtl
cigpOworICBhc3NlcnRfZXF1YWxzKCdiYWNrZ3JvdW5kZmV0Y2hzdWNjZXNzJywgdHlwZSk7Cisg
IGFzc2VydF9lcXVhbHMocmVzdWx0cy5sZW5ndGgsIDIpOworCisgIGFzc2VydF9lcXVhbHMoZXZl
bnRSZWdpc3RyYXRpb24uaWQsIHJlZ2lzdHJhdGlvbi5pZCk7CisgIGFzc2VydF9lcXVhbHMoZXZl
bnRSZWdpc3RyYXRpb24ucmVzdWx0LCAnc3VjY2VzcycpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50
UmVnaXN0cmF0aW9uLmZhaWx1cmVSZWFzb24sICcnKTsKKworICBhc3NlcnRfdHJ1ZShyZXN1bHRz
WzBdLnVybC5pbmNsdWRlcygncmVzb3VyY2VzL2ZlYXR1cmUtbmFtZS50eHQnKSk7CisgIGFzc2Vy
dF9lcXVhbHMocmVzdWx0c1swXS5zdGF0dXMsIDIwMCk7CisgIGFzc2VydF9lcXVhbHMocmVzdWx0
c1swXS50ZXh0LCAnQmFja2dyb3VuZCBGZXRjaCcpOworCisgIGFzc2VydF90cnVlKHJlc3VsdHNb
MV0udXJsLmluY2x1ZGVzKCdyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dCcpKTsKKyAgYXNzZXJ0
X2VxdWFscyhyZXN1bHRzWzFdLnN0YXR1cywgMjAwKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHRz
WzFdLnRleHQsICdCYWNrZ3JvdW5kIEZldGNoJyk7CisKK30sICdNYXRjaGluZyBtdWx0aXBsZSB0
aW1lcyBvbiB0aGUgc2FtZSByZXF1ZXN0IHdvcmtzIGFzIGV4cGVjdGVkLicpOworCitiYWNrZ3Jv
dW5kRmV0Y2hUZXN0KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gpID0+IHsKKyAgY29uc3Qg
cmVnaXN0cmF0aW9uID0gYXdhaXQgYmFja2dyb3VuZEZldGNoLmZldGNoKAorICAgICAgdW5pcXVl
SWQoKSwgWydyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dCcsICcvY29tbW9uL3Nsb3cucHknXSk7
CisKKyAgY29uc3QgcmVjb3JkID0gYXdhaXQgcmVnaXN0cmF0aW9uLm1hdGNoKCdyZXNvdXJjZXMv
ZmVhdHVyZS1uYW1lLnR4dCcpOworICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlY29yZC5yZXNw
b25zZVJlYWR5OworICBhc3NlcnRfdHJ1ZShyZXNwb25zZS51cmwuaW5jbHVkZXMoJ3Jlc291cmNl
cy9mZWF0dXJlLW5hbWUudHh0JykpOworICBjb25zdCBjb21wbGV0ZWRSZXNwb25zZVRleHQgPSBh
d2FpdCByZXNwb25zZS50ZXh0KCk7CisgIGFzc2VydF9lcXVhbHMoY29tcGxldGVkUmVzcG9uc2VU
ZXh0LCAnQmFja2dyb3VuZCBGZXRjaCcpOworCit9LCAnQWNjZXNzIHRvIGFjdGl2ZSBmZXRjaGVz
IGlzIHN1cHBvcnRlZC4nKTsKKworYmFja2dyb3VuZEZldGNoVGVzdChhc3luYyAodGVzdCwgYmFj
a2dyb3VuZEZldGNoKSA9PiB7CisgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IGJhY2tncm91
bmRGZXRjaC5mZXRjaCgKKyAgICAgIHVuaXF1ZUlkKCksIFsKKyAgICAgICAgICAncmVzb3VyY2Vz
L2ZlYXR1cmUtbmFtZS50eHQnLAorICAgICAgICAgICdyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4
dCcsCisgICAgICAgICAgJ3Jlc291cmNlcy9mZWF0dXJlLW5hbWUudHh0P2lkPTMnLAorICAgICAg
ICAgIG5ldyBSZXF1ZXN0KCdyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dCcsIHttZXRob2Q6ICdQ
VVQnfSksCisgICAgICAgICAgJy9jb21tb24vc2xvdy5weScsCisgICAgICBdKTsKKworICBsZXQg
bWF0Y2hlZFJlY29yZHMgPSBudWxsOworCisgIC8vIFdlIHNob3VsZCBtYXRjaCBhbGwgdGhlIGR1
cGxpY2F0ZXMuCisgIG1hdGNoZWRSZWNvcmRzID0gYXdhaXQgcmVnaXN0cmF0aW9uLm1hdGNoQWxs
KCdyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dCcpOworICBhc3NlcnRfZXF1YWxzKG1hdGNoZWRS
ZWNvcmRzLmxlbmd0aCwgMik7CisKKyAgLy8gV2Ugc2hvdWxkIG1hdGNoIHRoZSByZXF1ZXN0IHdp
dGggdGhlIHF1ZXJ5IHBhcmFtIGFzIHdlbGwuCisgIG1hdGNoZWRSZWNvcmRzID0gYXdhaXQgcmVn
aXN0cmF0aW9uLm1hdGNoQWxsKCdyZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dCcsIHtpZ25vcmVT
ZWFyY2g6IHRydWV9KTsKKyAgYXNzZXJ0X2VxdWFscyhtYXRjaGVkUmVjb3Jkcy5sZW5ndGgsIDMp
OworCisgIC8vIFdlIHNob3VsZCBtYXRjaCB0aGUgUFVUIHJlcXVlc3QgYXMgd2VsbC4KKyAgbWF0
Y2hlZFJlY29yZHMgPSBhd2FpdCByZWdpc3RyYXRpb24ubWF0Y2hBbGwoJ3Jlc291cmNlcy9mZWF0
dXJlLW5hbWUudHh0Jywge2lnbm9yZU1ldGhvZDogdHJ1ZX0pOworICBhc3NlcnRfZXF1YWxzKG1h
dGNoZWRSZWNvcmRzLmxlbmd0aCwgMyk7CisKKyAgLy8gV2Ugc2hvdWxkIG1hdGNoIGFsbCByZXF1
ZXN0cy4KKyAgbWF0Y2hlZFJlY29yZHMgPSBhd2FpdCByZWdpc3RyYXRpb24ubWF0Y2hBbGwoJ3Jl
c291cmNlcy9mZWF0dXJlLW5hbWUudHh0Jywge2lnbm9yZVNlYXJjaDogdHJ1ZSwgaWdub3JlTWV0
aG9kOiB0cnVlfSk7CisgIGFzc2VydF9lcXVhbHMobWF0Y2hlZFJlY29yZHMubGVuZ3RoLCA0KTsK
KworfSwgJ01hdGNoIHdpdGggcXVlcnkgb3B0aW9ucy4nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9taXhl
ZC1jb250ZW50LWFuZC1hbGxvd2VkLXNjaGVtZXMuaHR0cHMud2luZG93Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvbWl4
ZWQtY29udGVudC1hbmQtYWxsb3dlZC1zY2hlbWVzLmh0dHBzLndpbmRvdy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tn
cm91bmQtZmV0Y2gvbWl4ZWQtY29udGVudC1hbmQtYWxsb3dlZC1zY2hlbWVzLmh0dHBzLndpbmRv
dy5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJL
aXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9taXhlZC1jb250ZW50LWFu
ZC1hbGxvd2VkLXNjaGVtZXMuaHR0cHMud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL21peGVkLWNvbnRlbnQtYW5k
LWFsbG93ZWQtc2NoZW1lcy5odHRwcy53aW5kb3cuanMKaW5kZXggZjllYmFmY2JiZjQyM2ZjZTRl
ZjhhM2I0NzU4OWZmMmFjYmNmY2YyNS4uYjVlZmQ0YjkxNjdhMDdjYTRkNjk0ZTg4NDIxYTA3NWJk
M2I5MTRjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL21peGVkLWNvbnRlbnQtYW5kLWFsbG93ZWQtc2NoZW1l
cy5odHRwcy53aW5kb3cuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL21peGVkLWNvbnRlbnQtYW5kLWFsbG93ZWQtc2No
ZW1lcy5odHRwcy53aW5kb3cuanMKQEAgLTE1LDY1ICsxNSwzNyBAQAogLy8gaW50ZW5kZWQgdG8g
Y2hlY2sgdGhhdCBibG9ja2luZyBpcyBlbmFibGVkLgogCiBiYWNrZ3JvdW5kRmV0Y2hUZXN0KCh0
LCBiZ0ZldGNoKSA9PiB7Ci0gIHJldHVybiBiZ0ZldGNoLmZldGNoKHVuaXF1ZVRhZygpLCAnaHR0
cHM6Ly9leGFtcGxlLmNvbScpOworICByZXR1cm4gYmdGZXRjaC5mZXRjaCh1bmlxdWVJZCgpLCAn
aHR0cHM6Ly9leGFtcGxlLmNvbScpOwogfSwgJ2h0dHBzOiBmZXRjaCBzaG91bGQgcmVnaXN0ZXIg
b2snKTsKIAogYmFja2dyb3VuZEZldGNoVGVzdCgodCwgYmdGZXRjaCkgPT4gewotICByZXR1cm4g
YmdGZXRjaC5mZXRjaCh1bmlxdWVUYWcoKSwgJ2h0dHA6Ly8xMjcuMC4wLjEnKTsKKyAgcmV0dXJu
IGJnRmV0Y2guZmV0Y2godW5pcXVlSWQoKSwgJ2h0dHA6Ly8xMjcuMC4wLjEnKTsKIH0sICdsb29w
YmFjayBJUHY0IGh0dHA6IGZldGNoIHNob3VsZCByZWdpc3RlciBvaycpOwogCiBiYWNrZ3JvdW5k
RmV0Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9PiB7Ci0gIHJldHVybiBiZ0ZldGNoLmZldGNoKHVuaXF1
ZVRhZygpLCAnaHR0cDovL1s6OjFdJyk7CisgIHJldHVybiBiZ0ZldGNoLmZldGNoKHVuaXF1ZUlk
KCksICdodHRwOi8vWzo6MV0nKTsKIH0sICdsb29wYmFjayBJUHY2IGh0dHA6IGZldGNoIHNob3Vs
ZCByZWdpc3RlciBvaycpOwogCiBiYWNrZ3JvdW5kRmV0Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9PiB7
Ci0gIHJldHVybiBiZ0ZldGNoLmZldGNoKHVuaXF1ZVRhZygpLCAnaHR0cDovL2xvY2FsaG9zdCcp
OworICByZXR1cm4gYmdGZXRjaC5mZXRjaCh1bmlxdWVJZCgpLCAnaHR0cDovL2xvY2FsaG9zdCcp
OwogfSwgJ2xvY2FsaG9zdCBodHRwOiBmZXRjaCBzaG91bGQgcmVnaXN0ZXIgb2snKTsKIAogYmFj
a2dyb3VuZEZldGNoVGVzdCgodCwgYmdGZXRjaCkgPT4gewotICByZXR1cm4gcHJvbWlzZV9yZWpl
Y3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBiZ0ZldGNo
LmZldGNoKHVuaXF1ZVRhZygpLCAnaHR0cDovL2V4YW1wbGUuY29tJykpOwotfSwgJ25vbi1sb29w
YmFjayBodHRwOiBmZXRjaCBzaG91bGQgcmVqZWN0Jyk7Ci0KLWJhY2tncm91bmRGZXRjaFRlc3Qo
KHQsIGJnRmV0Y2gpID0+IHsKLSAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVy
cm9yKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgYmdGZXRjaC5mZXRjaCh1bmlxdWVUYWco
KSwgJ2h0dHA6Ly8xOTIuMC4yLjAnKSk7Ci19LCAnbm9uLWxvb3BiYWNrIElQdjQgaHR0cDogZmV0
Y2ggc2hvdWxkIHJlamVjdCcpOwotCi1iYWNrZ3JvdW5kRmV0Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9
PiB7Ci0gIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIGJnRmV0Y2guZmV0Y2godW5pcXVlVGFnKCksICdodHRwOi8vWzIw
MDE6ZGI4OjoxXScpKTsKLX0sICdub24tbG9vcGJhY2sgSVB2NiBodHRwOiBmZXRjaCBzaG91bGQg
cmVqZWN0Jyk7Ci0KLWJhY2tncm91bmRGZXRjaFRlc3QoKHQsIGJnRmV0Y2gpID0+IHsKLSAgcmV0
dXJuIHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgYmdGZXRjaC5mZXRjaCh1bmlxdWVUYWcoKSwgWydodHRwczovL2V4YW1wbGUuY29t
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2h0dHA6Ly9leGFtcGxlLmNvbSddKSk7Ci19LCAnaHR0cHM6IGFuZCBub24tbG9vcGJhY2sgaHR0
cDogZmV0Y2ggc2hvdWxkIHJlamVjdCcpOwotCi1iYWNrZ3JvdW5kRmV0Y2hUZXN0KCh0LCBiZ0Zl
dGNoKSA9PiB7Ci0gIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIGJnRmV0Y2guZmV0Y2godW5pcXVlVGFnKCksIFsnaHR0
cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nXSkpOwotfSwgJ25vbi1sb29wYmFj
ayBodHRwOiBhbmQgaHR0cHM6IGZldGNoIHNob3VsZCByZWplY3QnKTsKLQotCi1iYWNrZ3JvdW5k
RmV0Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9PiB7Ci0gIHJldHVybiBwcm9taXNlX3JlamVjdHModCwg
bmV3IFR5cGVFcnJvcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGJnRmV0Y2guZmV0Y2go
dW5pcXVlVGFnKCksICd3c3M6MTI3LjAuMC4xJykpOworICByZXR1cm4gcHJvbWlzZV9yZWplY3Rz
X2pzKHQsIFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiZ0ZldGNoLmZldGNo
KHVuaXF1ZUlkKCksICd3c3M6MTI3LjAuMC4xJykpOwogfSwgJ3dzczogZmV0Y2ggc2hvdWxkIHJl
amVjdCcpOwogCiBiYWNrZ3JvdW5kRmV0Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9PiB7Ci0gIHJldHVy
biBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIGJnRmV0Y2guZmV0Y2godW5pcXVlVGFnKCksICdmaWxlOi8vLycpKTsKKyAgcmV0dXJu
IHByb21pc2VfcmVqZWN0c19qcyh0LCBUeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgYmdGZXRjaC5mZXRjaCh1bmlxdWVJZCgpLCAnZmlsZTovLy8nKSk7CiB9LCAnZmlsZTogZmV0
Y2ggc2hvdWxkIHJlamVjdCcpOwogCiBiYWNrZ3JvdW5kRmV0Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9
PiB7Ci0gIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIGJnRmV0Y2guZmV0Y2godW5pcXVlVGFnKCksICdkYXRhOnRleHQv
cGxhaW4sZm9vJykpOworICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBiZ0ZldGNoLmZldGNoKHVuaXF1ZUlkKCksICdkYXRh
OnRleHQvcGxhaW4sZm9vJykpOwogfSwgJ2RhdGE6IGZldGNoIHNob3VsZCByZWplY3QnKTsKIAog
YmFja2dyb3VuZEZldGNoVGVzdCgodCwgYmdGZXRjaCkgPT4gewotICByZXR1cm4gcHJvbWlzZV9y
ZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBiZ0Zl
dGNoLmZldGNoKHVuaXF1ZVRhZygpLCAnZm9vYmFyOmJhenF1eCcpKTsKKyAgcmV0dXJuIHByb21p
c2VfcmVqZWN0c19qcyh0LCBUeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgYmdG
ZXRjaC5mZXRjaCh1bmlxdWVJZCgpLCAnZm9vYmFyOmJhenF1eCcpKTsKIH0sICd1bmtub3duIHNj
aGVtZSBmZXRjaCBzaG91bGQgcmVqZWN0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvcG9ydC1ibG9ja2lu
Zy5odHRwcy53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9wb3J0LWJsb2NraW5nLmh0dHBzLndpbmRvdy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JhY2tncm91bmQtZmV0Y2gvcG9ydC1ibG9ja2luZy5odHRwcy53aW5kb3cuaHRtbApAQCAt
MCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvcG9ydC1ibG9ja2luZy5odHRwcy53aW5kb3cu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91
bmQtZmV0Y2gvcG9ydC1ibG9ja2luZy5odHRwcy53aW5kb3cuanMKaW5kZXggZGJmOGExYTRkOWYy
YzNmODlkY2MxZjk2YjA5MDE0MDJjY2U0ZDdlYy4uMjRhZjhkOTkxZDVlMGVkMzYzZDIyMWFmN2U3
MTc4OWMzZmRmZTYwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3BvcnQtYmxvY2tpbmcuaHR0cHMud2luZG93
LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFj
a2dyb3VuZC1mZXRjaC9wb3J0LWJsb2NraW5nLmh0dHBzLndpbmRvdy5qcwpAQCAtOSwyNyArOSwy
NyBAQAogLy8gY2hlY2sgdGhhdCBibG9ja2luZyBpcyBlbmFibGVkLgogCiBiYWNrZ3JvdW5kRmV0
Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9PiB7Ci0gIHJldHVybiBiZ0ZldGNoLmZldGNoKHVuaXF1ZVRh
ZygpLCAnaHR0cHM6Ly9leGFtcGxlLmNvbScpOworICByZXR1cm4gYmdGZXRjaC5mZXRjaCh1bmlx
dWVJZCgpLCAnaHR0cHM6Ly9leGFtcGxlLmNvbScpOwogfSwgJ2ZldGNoIHRvIGRlZmF1bHQgaHR0
cHMgcG9ydCBzaG91bGQgcmVnaXN0ZXIgb2snKTsKIAogYmFja2dyb3VuZEZldGNoVGVzdCgodCwg
YmdGZXRjaCkgPT4gewotICByZXR1cm4gYmdGZXRjaC5mZXRjaCh1bmlxdWVUYWcoKSwgJ2h0dHA6
Ly8xMjcuMC4wLjEnKTsKKyAgcmV0dXJuIGJnRmV0Y2guZmV0Y2godW5pcXVlSWQoKSwgJ2h0dHA6
Ly8xMjcuMC4wLjEnKTsKIH0sICdmZXRjaCB0byBkZWZhdWx0IGh0dHAgcG9ydCBzaG91bGQgcmVn
aXN0ZXIgb2snKTsKIAogYmFja2dyb3VuZEZldGNoVGVzdCgodCwgYmdGZXRjaCkgPT4gewotICBy
ZXR1cm4gYmdGZXRjaC5mZXRjaCh1bmlxdWVUYWcoKSwgJ2h0dHBzOi8vZXhhbXBsZS5jb206NDQz
Jyk7CisgIHJldHVybiBiZ0ZldGNoLmZldGNoKHVuaXF1ZUlkKCksICdodHRwczovL2V4YW1wbGUu
Y29tOjQ0MycpOwogfSwgJ2ZldGNoIHRvIHBvcnQgNDQzIHNob3VsZCByZWdpc3RlciBvaycpOwog
CiBiYWNrZ3JvdW5kRmV0Y2hUZXN0KCh0LCBiZ0ZldGNoKSA9PiB7Ci0gIHJldHVybiBiZ0ZldGNo
LmZldGNoKHVuaXF1ZVRhZygpLCAnaHR0cHM6Ly9leGFtcGxlLmNvbTo4MCcpOworICByZXR1cm4g
YmdGZXRjaC5mZXRjaCh1bmlxdWVJZCgpLCAnaHR0cHM6Ly9leGFtcGxlLmNvbTo4MCcpOwogfSwg
J2ZldGNoIHRvIHBvcnQgODAgc2hvdWxkIHJlZ2lzdGVyIG9rLCBldmVuIG92ZXIgaHR0cHMnKTsK
IAogYmFja2dyb3VuZEZldGNoVGVzdCgodCwgYmdGZXRjaCkgPT4gewotICByZXR1cm4gYmdGZXRj
aC5mZXRjaCh1bmlxdWVUYWcoKSwgJ2h0dHBzOi8vZXhhbXBsZS5jb206ODA4MCcpOworICByZXR1
cm4gYmdGZXRjaC5mZXRjaCh1bmlxdWVJZCgpLCAnaHR0cHM6Ly9leGFtcGxlLmNvbTo4MDgwJyk7
CiB9LCAnZmV0Y2ggdG8gbm9uLWRlZmF1bHQgbm9uLWJhZCBwb3J0ICg4MDgwKSBzaG91bGQgcmVn
aXN0ZXIgb2snKTsKIAogYmFja2dyb3VuZEZldGNoVGVzdCgodCwgYmdGZXRjaCkgPT4gewotICBy
ZXR1cm4gcHJvbWlzZV9yZWplY3RzKAotICAgICAgdCwgbmV3IFR5cGVFcnJvcigpLAotICAgICAg
YmdGZXRjaC5mZXRjaCh1bmlxdWVUYWcoKSwgJ2h0dHBzOi8vZXhhbXBsZS5jb206NTg3JykpOwor
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKAorICAgICAgdCwgVHlwZUVycm9yLAorICAgICAg
YmdGZXRjaC5mZXRjaCh1bmlxdWVJZCgpLCAnaHR0cHM6Ly9leGFtcGxlLmNvbTo1ODcnKSk7CiB9
LCAnZmV0Y2ggdG8gYmFkIHBvcnQgKFNNVFApIHNob3VsZCByZWplY3QnKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1m
ZXRjaC9yZXNvdXJjZXMvZmVhdHVyZS1uYW1lLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9yZXNvdXJjZXMvZmVhdHVyZS1u
YW1lLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZDU0ZjUwNTRjNDUwYjhjZjgxZTM1MDE1ZDUzMzZmNTFiNzEx
N2VmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3Jlc291cmNlcy9mZWF0dXJlLW5hbWUudHh0CkBA
IC0wLDAgKzEgQEAKK0JhY2tncm91bmQgRmV0Y2gKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL3N3LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3Jlc291cmNlcy9zdy5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDRkYzk0MTc5NmExNWIxYTJkYzgyOGYwZjAz
ZmU4ZDM4Yzg0NzBiMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91
bmQtZmV0Y2gvcmVzb3VyY2VzL3N3LmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotLy8g
RGVsaWJlcmF0ZWx5IGxlZnQgZW1wdHkgZm9yIG5vdy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL3VwbG9hZC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9yZXNvdXJjZXMv
dXBsb2FkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNDIxYzdkMzdiYTU4OGY0MWJhNGU2ZDI2NDQ4ZTg4OGJh
NjUxNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL3VwbG9hZC5weQpAQCAtMCww
ICsxLDMgQEAKKyMgU2ltcGx5IHJldHVybnMgdGhlIHJlcXVlc3QgYm9keSB0byBjaGVjayBpZiB0
aGUgdXBsb2FkIHN1Y2NlZWRlZC4KK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBy
ZXR1cm4gMjAwLCBbKGIiQ29udGVudC1UeXBlIiwgcmVxdWVzdC5oZWFkZXJzW2InY29udGVudC10
eXBlJ10pXSwgcmVxdWVzdC5ib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL3V0aWxzLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5k
LWZldGNoL3Jlc291cmNlcy91dGlscy5qcwppbmRleCBmNjMwZjEwODVkNGM2MTE3Nzg4MTJjNjU2
YWQ4YjUyNjhmYjVhNzIyLi5kYmUwNDE5NDFkMDkzZTNjOTE0NzJjNDEwZDUwNmQ0MGE0NjZmZTQ1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL3V0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9yZXNvdXJjZXMv
dXRpbHMuanMKQEAgLTEsMjYgKzEsNTUgQEAKICd1c2Ugc3RyaWN0JzsKIAorbGV0IG5leHRCYWNr
Z3JvdW5kRmV0Y2hJZCA9IDA7CisKKy8vIFdhaXRzIGZvciBhIHNpbmdsZSBtZXNzYWdlIHJlY2Vp
dmVkIGZyb20gYSByZWdpc3RlcmVkIFNlcnZpY2UgV29ya2VyLgorYXN5bmMgZnVuY3Rpb24gZ2V0
TWVzc2FnZUZyb21TZXJ2aWNlV29ya2VyKCkgeworICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7CisgICAgZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQpIHsKKyAgICAgIG5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBsaXN0ZW5lcik7Cisg
ICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOworICAgIH0KKworICAgIG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBsaXN0ZW5lcik7CisgIH0pOworfQor
CisvLyBSZWdpc3RlcnMgdGhlIHxuYW1lfCBpbnN0cnVtZW50YXRpb24gU2VydmljZSBXb3JrZXIg
bG9jYXRlZCBhdCAic2VydmljZV93b3JrZXJzLyIKKy8vIHdpdGggYSBzY29wZSB1bmlxdWUgdG8g
dGhlIHRlc3QgcGFnZSB0aGF0J3MgcnVubmluZywgYW5kIHdhaXRzIGZvciBpdCB0byBiZQorLy8g
YWN0aXZhdGVkLiBUaGUgU2VydmljZSBXb3JrZXIgd2lsbCBiZSB1bnJlZ2lzdGVyZWQgYXV0b21h
dGljYWxseS4KKy8vCiAvLyBEZXBlbmRzIG9uIC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMKLWFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVy
QW5kQWN0aXZhdGVTZXJ2aWNlV29ya2VyKHRlc3QpIHsKLSAgY29uc3Qgc2NyaXB0ID0gJ3Jlc291
cmNlcy9zdy5qcyc7Ci0gIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZScgKyBsb2NhdGlv
bi5wYXRobmFtZTsKK2FzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyQW5kQWN0aXZhdGVTZXJ2aWNlV29y
a2VyKHRlc3QsIG5hbWUpIHsKKyAgY29uc3Qgc2NyaXB0ID0gYHNlcnZpY2Vfd29ya2Vycy8ke25h
bWV9YDsKKyAgY29uc3Qgc2NvcGUgPSAnc2VydmljZV93b3JrZXJzL3Njb3BlJyArIGxvY2F0aW9u
LnBhdGhuYW1lOworCiAgIGxldCBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uID0KICAgICAgIGF3
YWl0IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHRlc3QsIHNjcmlwdCwg
c2NvcGUpOwotICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7Ci0gICAgc2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0gIH0pOworCisgIGFkZF9jb21wbGV0aW9u
X2NhbGxiYWNrKCgpID0+IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsK
KwogICBhd2FpdCB3YWl0X2Zvcl9zdGF0ZSh0ZXN0LCBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgcmV0dXJuIHNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb247CiB9CiAKLWZ1bmN0aW9uIGJhY2tncm91bmRGZXRjaFRlc3QoZnVuYywgZGVzY3JpcHRp
b24pIHsKKy8vIENyZWF0ZXMgYSBQcm9taXNlIHRlc3QgZm9yIHxmdW5jfCBnaXZlbiB0aGUgfGRl
c2NyaXB0aW9ufC4gVGhlIHxmdW5jfCB3aWxsIGJlCisvLyBleGVjdXRlZCB3aXRoIHRoZSBgYmFj
a2dyb3VuZEZldGNoYCBvYmplY3Qgb2YgYW4gYWN0aXZhdGVkIFNlcnZpY2UgV29ya2VyCisvLyBS
ZWdpc3RyYXRpb24uCisvLyB8d29ya2VyTmFtZXwgaXMgdGhlIG5hbWUgb2YgdGhlIHNlcnZpY2Ug
d29ya2VyIGZpbGUgaW4gdGhlIHNlcnZpY2Vfd29ya2VycworLy8gZGlyZWN0b3J5IHRvIHJlZ2lz
dGVyLgorZnVuY3Rpb24gYmFja2dyb3VuZEZldGNoVGVzdChmdW5jLCBkZXNjcmlwdGlvbiwgd29y
a2VyTmFtZSA9ICdzdy5qcycpIHsKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNv
bnN0IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gPSBhd2FpdCByZWdpc3RlckFuZEFjdGl2YXRl
U2VydmljZVdvcmtlcih0KTsKKyAgICBjb25zdCBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uID0K
KyAgICAgICAgYXdhaXQgcmVnaXN0ZXJBbmRBY3RpdmF0ZVNlcnZpY2VXb3JrZXIodCwgd29ya2Vy
TmFtZSk7CisgICAgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3NhZ2Uo
bnVsbCk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGdldE1lc3NhZ2VGcm9tU2VydmljZVdv
cmtlcigpLCAncmVhZHknKTsKKwogICAgIHJldHVybiBmdW5jKHQsIHNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24uYmFja2dyb3VuZEZldGNoKTsKICAgfSwgZGVzY3JpcHRpb24pOwogfQogCi1sZXQg
X25leHRCYWNrZ3JvdW5kRmV0Y2hUYWcgPSAwOwotZnVuY3Rpb24gdW5pcXVlVGFnKCkgewotICBy
ZXR1cm4gJ3RhZycgKyBfbmV4dEJhY2tncm91bmRGZXRjaFRhZysrOwotfQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKKy8vIFJldHVybnMgYSBCYWNrZ3JvdW5kIEZldGNoIElEIHRoYXQncyB1
bmlxdWUgZm9yIHRoZSBjdXJyZW50IHBhZ2UuCitmdW5jdGlvbiB1bmlxdWVJZCgpIHsKKyAgcmV0
dXJuICdpZCcgKyBuZXh0QmFja2dyb3VuZEZldGNoSWQrKzsKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9y
ZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCmlu
ZGV4IGEyZWM4ODk0MjQ4ZWFkZDM4YTdiN2ZhNWFhZmE4MjBjOGU1ZTQwYWMuLmJmMzFmYTMyODAw
MGJkMWE0YjY3MjgyODlkNjRjZmE0MWUzNGExNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9yZXNvdXJjZXMv
dzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZwpAQCAtMSw3
ICsxLDcgQEAKIFRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgogRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCiBJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKwlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAogCiBUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAogCkBAIC0xNCw1
ICsxNCw2IEBAIFByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgogTm9u
ZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9yZXNvdXJjZXMvc3cuanMK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQt
ZmV0Y2gvcmVzb3VyY2VzL2ZlYXR1cmUtbmFtZS50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL3VwbG9hZC5w
eQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3Vu
ZC1mZXRjaC9yZXNvdXJjZXMvdXRpbHMuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9zZXJ2aWNlX3dvcmtl
cnMvc3ctYWJvcnQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JhY2tncm91bmQtZmV0Y2gvc2VydmljZV93b3JrZXJzL3N3LWFib3J0LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmM2MTM3Nzc1OGRmZjc2YjA2OGY1YzJkMWZiMjQ4NDc4M2RkMGNhOGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tn
cm91bmQtZmV0Y2gvc2VydmljZV93b3JrZXJzL3N3LWFib3J0LmpzCkBAIC0wLDAgKzEsMjMgQEAK
K2ltcG9ydFNjcmlwdHMoJ3N3LWhlbHBlcnMuanMnKTsKKworYXN5bmMgZnVuY3Rpb24gZ2V0RmV0
Y2hSZXN1bHQocmVjb3JkKSB7CisgIHRyeSB7CisgICAgYXdhaXQgcmVjb3JkLnJlc3BvbnNlUmVh
ZHk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICByZXR1cm4geworICAgICAgcmVzcG9uc2U6IGZhbHNl
LAorICAgICAgbmFtZTogZS5uYW1lLAorICAgIH07CisgIH0KKworICByZXR1cm4geworICAgIHJl
c3BvbnNlOiB0cnVlLAorICB9OworfQorc2VsZi5hZGRFdmVudExpc3RlbmVyKCdiYWNrZ3JvdW5k
ZmV0Y2hhYm9ydCcsIGV2ZW50ID0+IHsKKyAgZXZlbnQud2FpdFVudGlsKAorICAgIGV2ZW50LnJl
Z2lzdHJhdGlvbi5tYXRjaEFsbCgpCisgICAgICAudGhlbihyZWNvcmRzID0+CisgICAgICAgICAg
ICBQcm9taXNlLmFsbChyZWNvcmRzLm1hcChyZWNvcmQgPT4gZ2V0RmV0Y2hSZXN1bHQocmVjb3Jk
KSkpKQorICAgICAgLnRoZW4ocmVzdWx0cyA9PiBzZW5kTWVzc2FnZVRvRG9jdW1lbnQoe3Jlc3Vs
dHN9KSkpOworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvc2VydmljZV93b3JrZXJzL3N3LWhlbHBlcnMu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91
bmQtZmV0Y2gvc2VydmljZV93b3JrZXJzL3N3LWhlbHBlcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRjNzcy
MTM1ZGJhMjYxMGZjOGExNzExOWNmNzNiNDJhYWJhNjc0NgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRj
aC9zZXJ2aWNlX3dvcmtlcnMvc3ctaGVscGVycy5qcwpAQCAtMCwwICsxLDMxIEBACisvLyBUaGUg
c291cmNlIHRvIHBvc3Qgc2V0dXAgYW5kIGNvbXBsZXRpb24gcmVzdWx0cyB0by4KK2xldCBzb3Vy
Y2UgPSBudWxsOworCitmdW5jdGlvbiBzZW5kTWVzc2FnZVRvRG9jdW1lbnQobXNnKSB7CisgIHNv
dXJjZS5wb3N0TWVzc2FnZShtc2cpOworfQorCisvLyBUaGlzIGlzIG5lZWRlZCB0byBjcmVhdGUg
YSBsb2NhbCBqYXZhc2NyaXB0IG9iamVjdCBpZGVudGljYWwgdG8gdGhlCisvLyBvbmUgcmV0dXJu
ZWQgYnkgYSBCYWNrZ3JvdW5kRmV0Y2hFdmVudCwgc28gdGhhdCBpdCBjYW4gYmUgc2VyaWFsaXpl
ZAorLy8gYW5kIHRyYW5zbWl0dGVkIGZyb20gdGhlIHNlcnZpY2Ugd29ya2VyIGNvbnRleHQgdG8g
dGhlIGRvY3VtZW50LgorZnVuY3Rpb24gY2xvbmVSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uKSB7
CisgIGZ1bmN0aW9uIGRlZXBDb3B5KHNyYykgeworICAgIGlmICh0eXBlb2Ygc3JjICE9PSAnb2Jq
ZWN0JyB8fCBzcmMgPT09IG51bGwpCisgICAgICAgIHJldHVybiBzcmM7CisgICAgdmFyIGRzdCA9
IEFycmF5LmlzQXJyYXkoc3JjKSA/IFtdIDoge307CisgICAgZm9yICh2YXIgcHJvcGVydHkgaW4g
c3JjKSB7CisgICAgICAgIGlmICh0eXBlb2Ygc3JjW3Byb3BlcnR5XSA9PT0gJ2Z1bmN0aW9uJykK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBkc3RbcHJvcGVydHldID0gZGVlcENvcHko
c3JjW3Byb3BlcnR5XSk7CisgICAgfQorICAgIHJldHVybiBkc3Q7CisgIH0KKworICByZXR1cm4g
ZGVlcENvcHkocmVnaXN0cmF0aW9uKTsKK30KKworLy8gTm90aWZ5IHRoZSBkb2N1bWVudCB0aGF0
IHRoZSBTVyBpcyByZWdpc3RlcmVkIGFuZCByZWFkeS4KK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcign
bWVzc2FnZScsIGV2ZW50ID0+IHsKKyAgc291cmNlID0gZXZlbnQuc291cmNlOworICBzZW5kTWVz
c2FnZVRvRG9jdW1lbnQoJ3JlYWR5Jyk7Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9zZXJ2aWNlX3dv
cmtlcnMvc3ctdXBkYXRlLXVpLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3NlcnZpY2Vfd29ya2Vycy9zdy11cGRhdGUtdWku
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzg0OGRjNDQwMmI3MWJlZDc5YjVmOTY2MjQwNWFjZDAzY2YzMGYxZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvYmFja2dyb3VuZC1mZXRjaC9zZXJ2aWNlX3dvcmtlcnMvc3ctdXBkYXRlLXVpLmpzCkBA
IC0wLDAgKzEsMzMgQEAKK2ltcG9ydFNjcmlwdHMoJy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMn
KTsKK2ltcG9ydFNjcmlwdHMoJ3N3LWhlbHBlcnMuanMnKTsKKworYXN5bmMgZnVuY3Rpb24gdXBk
YXRlVUkoZXZlbnQpIHsKKyAgbGV0IHVwZGF0ZVBhcmFtcyA9IFtdOworICBzd2l0Y2ggKGV2ZW50
LnJlZ2lzdHJhdGlvbi5pZCkgeworICAgIGNhc2UgJ3VwZGF0ZS1vbmNlJzoKKyAgICAgIHVwZGF0
ZVBhcmFtcyA9IFt7dGl0bGU6ICdUaXRsZTEnfV07CisgICAgICBicmVhazsKKyAgICBjYXNlICd1
cGRhdGUtdHdpY2UnOgorICAgICAgdXBkYXRlUGFyYW1zID0gW3t0aXRsZTogJ1RpdGxlMSd9LCB7
dGl0bGU6ICdUaXRsZTInfV07CisgICAgICBicmVhazsKKyAgfQorCisgIHJldHVybiBQcm9taXNl
LmFsbCh1cGRhdGVQYXJhbXMubWFwKHBhcmFtID0+IGV2ZW50LnVwZGF0ZVVJKHBhcmFtKSkpCisg
ICAgICAgICAgIC50aGVuKCgpID0+ICd1cGRhdGUgc3VjY2VzcycpCisgICAgICAgICAgIC5jYXRj
aChlID0+IGUubmFtZSk7Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignYmFja2dyb3VuZGZl
dGNoc3VjY2VzcycsIGV2ZW50ID0+IHsKKyAgaWYgKGV2ZW50LnJlZ2lzdHJhdGlvbi5pZCA9PT0g
J3VwZGF0ZS1pbmFjdGl2ZScpIHsKKyAgICAvLyBQb3N0IGFuIGFzeW5jIHRhc2sgYmVmb3JlIGNh
bGxpbmcgdXBkYXRlVUkgZnJvbSB0aGUgaW5hY3RpdmUgZXZlbnQuCisgICAgLy8gQW55IGFzeW5j
IGJlaGF2aW91ciBvdXRzaWRlIGB3YWl0VW50aWxgIHNob3VsZCBtYXJrIHRoZSBldmVudCBhcwor
ICAgIC8vIGluYWN0aXZlLCBhbmQgc3Vic2VxdWVudCBjYWxscyB0byBgdXBkYXRlVUlgIHNob3Vs
ZCBmYWlsLgorICAgIG5ldyBQcm9taXNlKHIgPT4gc3RlcF90aW1lb3V0KHIsIDApKQorICAgICAg
ICAudGhlbigoKSA9PiBldmVudC51cGRhdGVVSSh7IHRpdGxlOiAnTmV3IHRpdGxlJyB9KSkKKyAg
ICAgICAgLmNhdGNoKGUgPT4gc2VuZE1lc3NhZ2VUb0RvY3VtZW50KHsgdXBkYXRlOiBlLm5hbWUg
fSkpOworICAgIHJldHVybjsKKyAgfQorCisgIGV2ZW50LndhaXRVbnRpbCh1cGRhdGVVSShldmVu
dCkKKyAgICAgIC50aGVuKHVwZGF0ZSA9PiBzZW5kTWVzc2FnZVRvRG9jdW1lbnQoeyB1cGRhdGUg
fSkpKTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3NlcnZpY2Vfd29ya2Vycy9zdy5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9z
ZXJ2aWNlX3dvcmtlcnMvc3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDYxMDU5ZDQwYTRhMGM2NDU2ZTUyYzcz
NjYyZDhmMWFhMTQxYzhlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9zZXJ2aWNlX3dvcmtlcnMv
c3cuanMKQEAgLTAsMCArMSw2MCBAQAorCitpbXBvcnRTY3JpcHRzKCdzdy1oZWxwZXJzLmpzJyk7
CisKK2FzeW5jIGZ1bmN0aW9uIGdldEZldGNoUmVzdWx0KHJlY29yZCkgeworICBjb25zdCByZXNw
b25zZSA9IGF3YWl0IHJlY29yZC5yZXNwb25zZVJlYWR5LmNhdGNoKCgpID0+IG51bGwpOworICBp
ZiAoIXJlc3BvbnNlKSByZXR1cm4gbnVsbDsKKworICByZXR1cm4geworICAgIHVybDogcmVzcG9u
c2UudXJsLAorICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLAorICAgIHRleHQ6IGF3YWl0IHJl
c3BvbnNlLnRleHQoKS5jYXRjaCgoKSA9PiAnZXJyb3InKSwKKyAgfTsKK30KKworZnVuY3Rpb24g
aGFuZGxlQmFja2dyb3VuZEZldGNoRXZlbnQoZXZlbnQpIHsKKyAgbGV0IG1hdGNoRnVuY3Rpb24g
PSBudWxsOworCisgIHN3aXRjaCAoZXZlbnQucmVnaXN0cmF0aW9uLmlkKSB7CisgICAgY2FzZSAn
bWF0Y2hleGlzdGluZ3JlcXVlc3QnOgorICAgICAgbWF0Y2hGdW5jdGlvbiA9IGV2ZW50LnJlZ2lz
dHJhdGlvbi5tYXRjaC5iaW5kKAorICAgICAgICAgIGV2ZW50LnJlZ2lzdHJhdGlvbiwgJy9iYWNr
Z3JvdW5kLWZldGNoL3Jlc291cmNlcy9mZWF0dXJlLW5hbWUudHh0Jyk7CisgICAgICBicmVhazsK
KyAgICBjYXNlICdtYXRjaGV4aXN0aW5ncmVxdWVzdHR3aWNlJzoKKyAgICAgIG1hdGNoRnVuY3Rp
b24gPSAoYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBtYXRjaDEgPSBhd2FpdCBldmVudC5y
ZWdpc3RyYXRpb24ubWF0Y2goJy9iYWNrZ3JvdW5kLWZldGNoL3Jlc291cmNlcy9mZWF0dXJlLW5h
bWUudHh0Jyk7CisgICAgICAgIGNvbnN0IG1hdGNoMiA9IGF3YWl0IGV2ZW50LnJlZ2lzdHJhdGlv
bi5tYXRjaCgnL2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2VzL2ZlYXR1cmUtbmFtZS50eHQnKTsK
KyAgICAgICAgcmV0dXJuIFttYXRjaDEsIG1hdGNoMl07CisgICAgfSkuYmluZChldmVudC5yZWdp
c3RyYXRpb24pOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnbWF0Y2htaXNzaW5ncmVxdWVzdCc6
CisgICAgICBtYXRjaEZ1bmN0aW9uID0gZXZlbnQucmVnaXN0cmF0aW9uLm1hdGNoLmJpbmQoCisg
ICAgICAgICAgZXZlbnQucmVnaXN0cmF0aW9uLCAnL2JhY2tncm91bmQtZmV0Y2gvcmVzb3VyY2Vz
L21pc3NpbmcudHh0Jyk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgbWF0Y2hG
dW5jdGlvbiA9IGV2ZW50LnJlZ2lzdHJhdGlvbi5tYXRjaEFsbC5iaW5kKGV2ZW50LnJlZ2lzdHJh
dGlvbik7CisgICAgICBicmVhazsKKyAgfQorCisgIGV2ZW50LndhaXRVbnRpbCgKKyAgICBtYXRj
aEZ1bmN0aW9uKCkKKyAgICAgIC8vIEZvcm1hdCBgbWF0Y2goQWxsKT9gIGZ1bmN0aW9uIHJlc3Vs
dHMuCisgICAgICAudGhlbihyZWNvcmRzID0+IHsKKyAgICAgICAgaWYgKCFyZWNvcmRzKSByZXR1
cm4gW107ICAvLyBOb3RoaW5nIHdhcyBtYXRjaGVkLgorICAgICAgICBpZiAoIXJlY29yZHMubWFw
KSByZXR1cm4gW3JlY29yZHNdOyAgLy8gT25lIGVudHJ5IHdhcyByZXR1cm5lZC4KKyAgICAgICAg
cmV0dXJuIHJlY29yZHM7ICAvLyBBbHJlYWR5IGluIGEgbGlzdC4KKyAgICAgIH0pCisgICAgICAv
LyBFeHRyYWN0IHJlc3BvbnNlcy4KKyAgICAgIC50aGVuKHJlY29yZHMgPT4KKyAgICAgICAgUHJv
bWlzZS5hbGwocmVjb3Jkcy5tYXAocmVjb3JkID0+IGdldEZldGNoUmVzdWx0KHJlY29yZCkpKSkK
KyAgICAgIC8vIENsb25lIHJlZ2lzdHJhdGlvbiBhbmQgc2VuZCBtZXNzYWdlLgorICAgICAgLnRo
ZW4ocmVzdWx0cyA9PiB7CisgICAgICAgIGNvbnN0IHJlZ2lzdHJhdGlvbkNvcHkgPSBjbG9uZVJl
Z2lzdHJhdGlvbihldmVudC5yZWdpc3RyYXRpb24pOworICAgICAgICBzZW5kTWVzc2FnZVRvRG9j
dW1lbnQoCisgICAgICAgICAgeyB0eXBlOiBldmVudC50eXBlLCBldmVudFJlZ2lzdHJhdGlvbjog
cmVnaXN0cmF0aW9uQ29weSwgcmVzdWx0cyB9KQorICAgICAgfSkpOworfQorCitzZWxmLmFkZEV2
ZW50TGlzdGVuZXIoJ2JhY2tncm91bmRmZXRjaHN1Y2Nlc3MnLCBoYW5kbGVCYWNrZ3JvdW5kRmV0
Y2hFdmVudCk7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2JhY2tncm91bmRmZXRjaGZhaWwnLCBo
YW5kbGVCYWNrZ3JvdW5kRmV0Y2hFdmVudCk7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2JhY2tn
cm91bmRmZXRjaGFib3J0JywgaGFuZGxlQmFja2dyb3VuZEZldGNoRXZlbnQpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5k
LWZldGNoL3NlcnZpY2Vfd29ya2Vycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9zZXJ2aWNlX3dvcmtl
cnMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I3ZTIwNmIyNjMzNjdjM2M2ODRmODIzYzE2
ZmI2MGZkNzY4NjBhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9zZXJ2aWNlX3dvcmtlcnMvdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3NlcnZpY2Vfd29ya2Vy
cy9zdy1hYm9ydC5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvYmFja2dyb3VuZC1mZXRjaC9zZXJ2aWNlX3dvcmtlcnMvc3ctaGVscGVycy5qcworL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9z
ZXJ2aWNlX3dvcmtlcnMvc3ctdXBkYXRlLXVpLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3NlcnZpY2Vfd29ya2Vycy9zdy5q
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9iYWNrZ3JvdW5kLWZldGNoL3VwZGF0ZS11aS5odHRwcy53aW5kb3cuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC91cGRh
dGUtdWkuaHR0cHMud2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2
YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC91cGRhdGUtdWkuaHR0
cHMud2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQg
Zm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3Qg
LS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3VwZGF0ZS11
aS5odHRwcy53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvdXBkYXRlLXVpLmh0dHBzLndpbmRvdy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45MGQzYzJlN2VkNDIzZGI4NzdmZjkxNjkzNTQ2Y2FmYzg1YmQ5ZTY1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNr
Z3JvdW5kLWZldGNoL3VwZGF0ZS11aS5odHRwcy53aW5kb3cuanMKQEAgLTAsMCArMSw0MyBAQAor
Ly8gTUVUQTogc2NyaXB0PS9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3Rlc3QtaGVscGVycy5zdWIuanMKKy8vIE1FVEE6IHNjcmlwdD1yZXNvdXJjZXMvdXRpbHMuanMK
Kyd1c2Ugc3RyaWN0JzsKKworLy8gQ292ZXJzIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgQmFj
a2dyb3VuZEZldGNoVXBkYXRlVUlFdmVudC51cGRhdGVVSSgpLgorLy8KKy8vIGh0dHBzOi8vd2lj
Zy5naXRodWIuaW8vYmFja2dyb3VuZC1mZXRjaC8jYmFja2dyb3VuZGZldGNodXBkYXRldWlldmVu
dAorCitjb25zdCBzd05hbWUgPSAnc3ctdXBkYXRlLXVpLmpzJzsKKworYmFja2dyb3VuZEZldGNo
VGVzdChhc3luYyAodGVzdCwgYmFja2dyb3VuZEZldGNoKSA9PiB7CisgIGNvbnN0IHJlZ2lzdHJh
dGlvbklkID0gJ3VwZGF0ZS1vbmNlJzsKKyAgY29uc3QgcmVnaXN0cmF0aW9uID0KKyAgICAgIGF3
YWl0IGJhY2tncm91bmRGZXRjaC5mZXRjaChyZWdpc3RyYXRpb25JZCwgJ3Jlc291cmNlcy9mZWF0
dXJlLW5hbWUudHh0Jyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmlkLCByZWdpc3Ry
YXRpb25JZCk7CisKKyAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGdldE1lc3NhZ2VGcm9tU2Vydmlj
ZVdvcmtlcigpOworICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UudXBkYXRlLCAndXBkYXRlIHN1Y2Nl
c3MnKTsKKworfSwgJ0JhY2tncm91bmQgRmV0Y2ggdXBkYXRlVUkgcmVzb2x2ZXMnLCBzd05hbWUp
OworCisKK2JhY2tncm91bmRGZXRjaFRlc3QoYXN5bmMgKHRlc3QsIGJhY2tncm91bmRGZXRjaCkg
PT4geworICBjb25zdCByZWdpc3RyYXRpb25JZCA9ICd1cGRhdGUtdHdpY2UnOworICBjb25zdCBy
ZWdpc3RyYXRpb24gPQorICAgICAgYXdhaXQgYmFja2dyb3VuZEZldGNoLmZldGNoKHJlZ2lzdHJh
dGlvbklkLCAncmVzb3VyY2VzL2ZlYXR1cmUtbmFtZS50eHQnKTsKKyAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24uaWQsIHJlZ2lzdHJhdGlvbklkKTsKKworICBjb25zdCBtZXNzYWdlID0gYXdh
aXQgZ2V0TWVzc2FnZUZyb21TZXJ2aWNlV29ya2VyKCk7CisgIGFzc2VydF9lcXVhbHMobWVzc2Fn
ZS51cGRhdGUsICdJbnZhbGlkU3RhdGVFcnJvcicpOworCit9LCAnQmFja2dyb3VuZCBGZXRjaCB1
cGRhdGVVSSBjYWxsZWQgdHdpY2UgZmFpbHMnLCBzd05hbWUpOworCitiYWNrZ3JvdW5kRmV0Y2hU
ZXN0KGFzeW5jICh0ZXN0LCBiYWNrZ3JvdW5kRmV0Y2gpID0+IHsKKyAgY29uc3QgcmVnaXN0cmF0
aW9uSWQgPSAndXBkYXRlLWluYWN0aXZlJzsKKyAgY29uc3QgcmVnaXN0cmF0aW9uID0KKyAgICAg
IGF3YWl0IGJhY2tncm91bmRGZXRjaC5mZXRjaChyZWdpc3RyYXRpb25JZCwgJ3Jlc291cmNlcy9m
ZWF0dXJlLW5hbWUudHh0Jyk7CisgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmlkLCByZWdp
c3RyYXRpb25JZCk7CisKKyAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGdldE1lc3NhZ2VGcm9tU2Vy
dmljZVdvcmtlcigpOworICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UudXBkYXRlLCAnSW52YWxpZFN0
YXRlRXJyb3InKTsKKworfSwgJ0JhY2tncm91bmQgRmV0Y2ggdXBkYXRlVUkgZmFpbHMgd2hlbiBl
dmVudCBpcyBub3QgYWN0aXZlJywgc3dOYW1lKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dy
b3VuZC1mZXRjaC93M2MtaW1wb3J0LmxvZwppbmRleCBlZjMzNGMzZjVjMTQyZDFjNTA4YTI5ODhh
MTMwZjE5ZjIwMmRkNTA1Li44ZDdhYTMzYTY3OGU5ZmM5YzI5MmZkNDBiNDY3OTZjYmU0NDdjNDA5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JhY2tncm91bmQtZmV0Y2gvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3czYy1pbXBvcnQubG9n
CkBAIC0xLDcgKzEsNyBAQAogVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCiBEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KIEluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwor
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CiAKIFRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CiAK
QEAgLTE0LDEyICsxNCwxNSBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvT1dORVJT
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5k
LWZldGNoL01FVEEueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2Fib3J0Lmh0dHBzLndpbmRvdy5qcwogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9jb250ZW50
LXNlY3VyaXR5LXBvbGljeS5odHRwcy53aW5kb3cuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvY3JlZGVudGlhbHMtaW4tdXJs
Lmh0dHBzLndpbmRvdy5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvYmFja2dyb3VuZC1mZXRjaC9kYW5nbGluZy1tYXJrdXAuaHR0cHMud2luZG93LmpzCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZl
dGNoL2ludGVyZmFjZXMtd29ya2VyLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gvaW50ZXJmYWNlcy5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZl
dGNoL2ludGVyZmFjZXMud29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2ZldGNoLXVwbG9hZHMuaHR0cHMud2luZG93
LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3Jv
dW5kLWZldGNoL2ZldGNoLmh0dHBzLndpbmRvdy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9nZXQtaWRzLmh0dHBzLndpbmRv
dy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dy
b3VuZC1mZXRjaC9nZXQuaHR0cHMud2luZG93LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2lkbGhhcm5lc3MuaHR0cHMuYW55
LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3Jv
dW5kLWZldGNoL21hdGNoLmh0dHBzLndpbmRvdy5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9taXhlZC1jb250ZW50LWFuZC1h
bGxvd2VkLXNjaGVtZXMuaHR0cHMud2luZG93LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL3BvcnQtYmxvY2tpbmcuaHR0cHMu
d2luZG93LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9i
YWNrZ3JvdW5kLWZldGNoL3VwZGF0ZS11aS5odHRwcy53aW5kb3cuanMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTlmNmQ4MjFmNzQwZGRjNjVkNDE3ZTAy
M2IwYjEyM2IwYWJmNGFlOC4uOTZhOGJhZTI4M2Y3Nzg0YTk3MGRiMTVhNjQzNTNmOGY4YjUxMDI3
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk3MCw4
ICs5NzAsNiBAQCB3ZWJraXQub3JnL2IvMTc1NDE5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZwogd2Via2l0Lm9yZy9iLzE3NTQxOSBb
IFJlbGVhc2UgXSBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9wb3N0bWVzc2FnZS1hZnRlci10
ZXJtaW5hdGUuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KIAogIyBGSVhNRTog
VGhpcyBjYW4ndCBiZSB0aGUgcmlnaHQgYnVnIG51bWJlci4KLXdlYmtpdC5vcmcvYi8xNzU0MTkg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2ludGVyZmFj
ZXMtd29ya2VyLmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzU0MTkgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2ludGVyZmFjZXMu
aHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE3NTQxOSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9zZXJ2aWNld29ya2VyLWludGVyY2VwdGVkLmh0
dHBzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiAjIEdUSyBvdWdodCB0byBzdXBwb3J0IGFzeW5j
IGNsaXBib2FyZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>