Files
StatusQuo_Updates/VI3DGL/sync-bundle-02.txt
T
2026-06-20 08:27:40 +00:00

14547 lines
1.1 MiB
Plaintext

### SYNC-TRANSFER 2/5 -- mit sync-entpacken.bat entpacken
### Base64 - NICHT von Hand bearbeiten.
### FILE: index.html | 129211
PCFET0NUWVBFIGh0bWw+CjwhLS0gU3RhbmQ6IDIwMjYtMDUtMTQgLS0+CjxodG1sIGxhbmc9ImRl
Ij4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAg
ICA8dGl0bGU+VkkzIERHTC1QbGFudW5nPC90aXRsZT4KICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlw
ZT0iaW1hZ2UveC1pY29uIiBocmVmPSJmYXZpY29uLmljbyI+CiAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9InN0eWxlLmNzcyI+CiAgICA8IS0tIFNoZWV0SlMgKHhsc3guZnVsbC5taW4u
anMpIHdpcmQgbnVyIGltIEFkbWluLVRhYiAiSW1wb3J0IiBnZWJyYXVjaHQuCiAgICAgICAgIExv
a2FsIGVpbmdlYnVuZGVuLCBrZWluIENETi4gTGl6ZW56OiBBcGFjaGUtMi4wIChTaGVldEpTIENF
KS4gLS0+CiAgICA8c2NyaXB0IHNyYz0ieGxzeC5mdWxsLm1pbi5qcyIgZGVmZXI+PC9zY3JpcHQ+
CjwvaGVhZD4KPGJvZHk+CgogICAgPCEtLSA9PT09PT09PT09IFBlcnNvbi1Ib3Zlci1Qb3BvdmVy
IChnbG9iYWwsIG51ciBlaW4gQ29udGFpbmVyKSA9PT09PT09PT09IC0tPgogICAgPGRpdiBpZD0i
dmkzLXBlcnNvbi1wb3BvdmVyIiBjbGFzcz0idmkzLXBlcnNvbi1wb3BvdmVyIHZlcnN0ZWNrdCIg
cm9sZT0idG9vbHRpcCIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgPCEtLSBLb21tZW50
YXItUG9wb3ZlcjogemVpZ3QgZGVuIEluaGFsdCBlaW5lciBaZWxsLU5vdGl6IGJlaW0gSG92ZXIu
CiAgICAgICAgIFNhdWJlcmVyIEVyc2F0eiBmdWVyIGRlbiBlaW56ZWlsaWdlbiBuYXRpdmUgdGl0
bGUtVG9vbHRpcCwgZGVyCiAgICAgICAgIFNjaGljaHQgdW5kIEtvbW1lbnRhciB6dXNhbW1lbmts
YXRzY2h0ZS4gR2VzY2hsb3NzZW5lciBIZWFkZXIsCiAgICAgICAgIE1laHJ6ZWlsZXItQm9keSwg
Rm9vdGVyIG1pdCBWZXJmYXNzZXIgKyBEYXR1bS4gLS0+CiAgICA8ZGl2IGlkPSJ2aTMta29tbWVu
dGFyLXBvcG92ZXIiIGNsYXNzPSJ2aTMta29tbWVudGFyLXBvcG92ZXIgdmVyc3RlY2t0IiByb2xl
PSJ0b29sdGlwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CgogICAgPCEtLSA9PT09PT09PT09
IEhpbndlaXMtQmFubmVyIChudXIgU1UgKyBHZXNhbXR2ZXJhbnR3b3J0bGljaCkgPT09PT09PT09
PSAtLT4KICAgIDxkaXYgaWQ9ImhpbndlaXMtYmFubmVyIiBjbGFzcz0iaGlud2Vpcy1iYW5uZXIg
dmVyc3RlY2t0IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj4KCiAgICA8
IS0tID09PT09PT09PT0gSGVhZGVyIG1pdCBOYXZpZ2F0aW9uID09PT09PT09PT0gLS0+CiAgICA8
aGVhZGVyIGlkPSJrb3BmbGVpc3RlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItbGlua3Mi
PgogICAgICAgICAgICA8aDE+PGltZyBzcmM9Imljb25zL1ZJM19QbGFudW5nX0xvZ28ucG5nIiBh
bHQ9IiIgY2xhc3M9ImhlYWRlci1sb2dvIj48c3BhbiBkYXRhLWJlej0iYXBwLnRpdGVsIj5WSTMg
REdMLVBsYW51bmc8L3NwYW4+IDxzcGFuIGlkPSJhbnplaWdlLWphaHIiIGNsYXNzPSJoZWFkZXIt
amFociI+PC9zcGFuPjwvaDE+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPG5hdiBjbGFzcz0iaGVh
ZGVyLW5hdiI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idG4gYWt0aXYiIGRhdGEt
YW5zaWNodD0icGxhbnVuZyIgZGF0YS1iZXo9Im5hdi5wbGFudW5nIj5QbGFudW5nPC9idXR0b24+
CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idG4iIGRhdGEtYW5zaWNodD0id29jaGVu
cGxhbiIgZGF0YS1iZXo9Im5hdi53b2NoZW5wbGFuIj5Xb2NoZW5wbGFuPC9idXR0b24+CiAgICAg
ICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idG4iIGRhdGEtYW5zaWNodD0icGVyc3BsYW4iIGRh
dGEtYmV6PSJuYXYucGVyc3BsYW4iPlBlcnMuIFBsYW48L2J1dHRvbj4KICAgICAgICAgICAgPGJ1
dHRvbiBjbGFzcz0ibmF2LWJ0biIgZGF0YS1hbnNpY2h0PSJiZXNldHp1bmciIGlkPSJuYXYtYmVz
ZXR6dW5nIiB0aXRsZT0iUHLDvGZ1bmcg4oCUIDQgV29jaGVuLVZvcnNjaGF1IiBkYXRhLWJlej0i
bmF2LmJlc2V0enVuZyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+UHLDvGZ1bmc8L2J1dHRvbj4KICAg
ICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWJ0biIgZGF0YS1hbnNpY2h0PSJhZG1pbiIgICAg
aWQ9Im5hdi1hZG1pbiIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+QWRtaW5pc3RyYXRpb248L2J1dHRv
bj4KICAgICAgICA8L25hdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItcmVjaHRzIj4KICAg
ICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWJ1Z3JlcG9ydCIgY2xhc3M9Imljb24tYnRuIGJ1Z3Jl
cG9ydC1idG4iIHRpdGxlPSJCdWcgb2RlciBQcm9ibGVtIG1lbGRlbiI+QnVnUmVwb3J0PC9idXR0
b24+CiAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1pbmZvIiBjbGFzcz0iaWNvbi1idG4iIHRp
dGxlPSJJbmZvcm1hdGlvbmVuICZhbXA7IEhpbGZlIj5JbmZvPC9idXR0b24+CiAgICAgICAgICAg
IDxzcGFuIGlkPSJiZW51dHplci13cmFwIiBjbGFzcz0iYmVudXR6ZXItd3JhcCI+CiAgICAgICAg
ICAgICAgICA8c3BhbiBpZD0ibWVpbi1hdmF0YXItYnRuIiBjbGFzcz0ibWVpbi1hdmF0YXItYnRu
IHZlcnN0ZWNrdCIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgdGl0bGU9Ik1laW4gUHJvZmls
YmlsZCBiZWFyYmVpdGVuIiBhcmlhLWxhYmVsPSJNZWluIFByb2ZpbGJpbGQgYmVhcmJlaXRlbiI+
PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImJlbnV0emVyLWFuemVpZ2UiIGNsYXNz
PSJiZW51dHplci1iYWRnZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gaWQ9Imhpbndl
aXMtYmFkZ2UiIGNsYXNzPSJoaW53ZWlzLWJhZGdlIHZlcnN0ZWNrdCIgcm9sZT0iYnV0dG9uIiB0
YWJpbmRleD0iMCIgYXJpYS1sYWJlbD0iT2ZmZW5lIEhpbndlaXNlIGFuemVpZ2VuIj48L3NwYW4+
CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXRoZW1lIiBj
bGFzcz0iaWNvbi1idG4iIHRpdGxlPSJUYWcvTmFjaHQgdW1zY2hhbHRlbiI+TmFjaHQ8L2J1dHRv
bj4KICAgICAgICA8L2Rpdj4KICAgIDwvaGVhZGVyPgoKICAgIDwhLS0gPT09PT09PT09PSBBTlNJ
Q0hUOiBQTEFOVU5HID09PT09PT09PT0gLS0+CiAgICA8ZGl2IGlkPSJhbnNpY2h0LXBsYW51bmci
IGNsYXNzPSJhbnNpY2h0Ij4KICAgICAgICA8IS0tIFBsYW51bmdzZ3JpZCDigJQgRXhjZWwtdHJl
dWVzIExheW91dCAtLT4KICAgICAgICA8ZGl2IGlkPSJwbGFudW5nLWNvbnRhaW5lciI+CiAgICAg
ICAgICAgIDwhLS0gRml4aWVydGUgbGlua2UgU3BhbHRlIC0tPgogICAgICAgICAgICA8ZGl2IGlk
PSJuYW1lbi1zcGFsdGUiPgogICAgICAgICAgICAgICAgPCEtLSBLb3BmYmVyZWljaCBsaW5rczog
SGV1dGUtQmFubmVyIHVlYmVybGFnZXJ0IGRpZSBkcmVpIERhdHVtc3plaWxlbiAtLT4KICAgICAg
ICAgICAgICAgIDxkaXYgaWQ9ImtvcGYtbGlua3MiPgogICAgICAgICAgICAgICAgICAgIDwhLS0g
UGxhdHpoYWx0ZXItWmVpbGVuIGZ1ZXIgSG9laGVuLVN5bmMgbWl0IEtvcGYgcmVjaHRzLgogICAg
ICAgICAgICAgICAgICAgICAgICAgSmVkZSBaZWlsZSBsaW5rcyBlbnRzcHJpY2h0IEVYQUtUIGVp
bmVyIFplaWxlIHJlY2h0cwogICAgICAgICAgICAgICAgICAgICAgICAgKGdsZWljaGUgSG9laGUh
KSwgc29uc3QgdmVyc2NoaWVidCBzaWNoIGRpZSBOYW1lbnNzcGFsdGUKICAgICAgICAgICAgICAg
ICAgICAgICAgIGdlZ2VudWViZXIgZGVtIERhdGVuLUdyaWQuIC0tPgogICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImtvcGYtemVpbGUga3otZGF0dW0iPjwvZGl2PiAgICAgICAgIDwhLS0g
PSAjZGF0dW0temVpbGUtdGFnICgyMHB4KSAtLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJrb3BmLXplaWxlIGt6LXdvY2hlbnRhZyI+PC9kaXY+ICAgICA8IS0tID0gI2RhdHVtLXpl
aWxlLXdvY2hlbnRhZyAoMjBweCkgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i
a29wZi16ZWlsZSBrei1hbmxhc3MiPjwvZGl2PiAgICAgICAgPCEtLSA9ICNkYXR1bS16ZWlsZS1h
bmxhc3MgKDM4cHgsIE1haSAyMDI2IG1pdCBFdmVudHMga29tYmluaWVydCkgLS0+CiAgICAgICAg
ICAgICAgICAgICAgPCEtLSBPdmVybGF5OiBIZXV0ZS1MZWlzdGUgKEJ1dHRvbiArIERhdHVtICsg
V29jaGVudGFnKSBkZWNrdAogICAgICAgICAgICAgICAgICAgICAgICAgZGllIG9iZXJlbiBQbGF0
emhhbHRlci1aZWlsZW4gYWIgKGt6LWRhdHVtK3dvY2hlbnRhZythbmxhc3MpLiAtLT4KICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGlkPSJrbC1oZXV0ZS1iYW5uZXIiPgogICAgICAgICAgICAgICAg
ICAgICAgICA8YnV0dG9uIGlkPSJidG4taGV1dGUiIGNsYXNzPSJrbC1oZXV0ZS1idXR0b24iIHRp
dGxlPSJIZXV0ZSDigJQgc3ByaW5ndCBpbiBkZXIgUGxhbnRhZmVsIHNvZm9ydCB6dW0gaGV1dGln
ZW4gRGF0dW0gdW5kIHNjcm9sbHQgZGllIEFuc2ljaHQgZG9ydGhpbi4gUHJha3Rpc2NoLCB1bSBu
YWNoIGRlbSBCbMOkdHRlcm4gaW4gYW5kZXJlIFdvY2hlbiBvZGVyIE1vbmF0ZSBzY2huZWxsIHp1
ciBha3R1ZWxsZW4gV29jaGUgenVyw7xja3p1a2VocmVuLiI+SGV1dGU8L2J1dHRvbj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNjaGljaHR0ZWFtIiBjbGFzcz0ia2wt
aGV1dGUtYnV0dG9uIiB0aXRsZT0iVGVhbSDigJQgTWVpbiBTY2hpY2h0LVRlYW0gZsO8ciBkaWUg
bsOkY2hzdGVuIDE0IFRhZ2U6IHplaWd0IGFsbGUgUGVyc29uZW4gYXVzIGRlaW5lciBTY2hpY2h0
LVJvdGF0aW9uIChiYXNpZXJlbmQgYXVmIGRlaW5lciBoZXV0aWdlbiBTY2hpY2h0IEZyw7xoL1Nw
w6R0L05hY2h0KS4gUHJha3Rpc2NoIGbDvHIgU2NoaWNodHRhdXNjaC1BbmZyYWdlbiB1bmQgdW0g
enUgc2VoZW4sIHdlciB3YW5uIG1pdCBkaXIgYXJiZWl0ZXQuIE51ciBzaWNodGJhciwgd2VubiBk
ZWluZSBOVy1LZW5udW5nIGVpbmVyIFBsYW4tUGVyc29uIHp1Z2VvcmRuZXQgaXN0LiIgYXJpYS1s
YWJlbD0iTWVpbiBTY2hpY2h0LVRlYW0g4oCUIDE0LVRhZ2Utw5xiZXJzaWNodCI+VGVhbTwvYnV0
dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrbC1oZXV0ZS1pbmZvIj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImtsLWhldXRlLWRhdHVtLXR4
dCIgaWQ9ImtsLWhldXRlLWRhdHVtIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImtsLWhldXRlLXd0YWctdHh0IiBpZD0ia2wtaGV1dGUtd3RhZyI+PC9kaXY+
CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2
PgogICAgICAgICAgICAgICAgICAgIDwhLS0gWmVpbGUgNTogU3TDpHJrZSAtLT4KICAgICAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJrb3BmLXplaWxlIGt6LXN0YWVya2UiPgogICAgICAgICAg
ICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ia2wtbGFiZWwiPlN0w6Rya2U8L3NwYW4+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJrbC13ZXJ0Ij5ER0wgaW4gVkkgMzwvc3Bh
bj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFpl
aWxlbiA1LTExOiBTY2hpY2h0Zm9sZ2UgcHJvIFN0YW5kb3J0IC0tPgogICAgICAgICAgICAgICAg
ICAgIDxkaXYgaWQ9InNjaGljaHRmb2xnZS1saW5rcyI+CiAgICAgICAgICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImtvcGYtemVpbGUga3otc2NoaWNodGZvbGdlIGt6LXNmLWVyc3RlIj4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJrbC1sYWJlbCI+U2NoaWNodDwv
c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJrbC13ZXJ0IiBk
YXRhLXN0YW5kb3J0PSIwIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog
ICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
ICAgICAgICA8IS0tIFBlcnNvbmVubGlzdGUgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJu
YW1lbi1saXN0ZSIgcm9sZT0icm93aGVhZGVyIiBhcmlhLWxhYmVsPSJQZXJzb25lbmxpc3RlIGRl
ciBQbGFudGFmZWwiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0g
U2Nyb2xsYmFyZXIgcmVjaHRlciBCZXJlaWNoLiByb2xlPWdyaWQgbWFjaHQgZGllIFN0cnVrdHVy
IGZ1ZXIKICAgICAgICAgICAgICAgICBTY3JlZW5yZWFkZXIgZXhwbGl6aXQgKFNwcmludCA2YSAy
MDI2LTA1LTI5KS4gVGFiLU5hdmlnYXRpb24KICAgICAgICAgICAgICAgICBkZXIgZWluemVsbmVu
IFplbGxlbiBrb21tdCBpbiBTcHJpbnQgNmIgKEdyaWQtUmVmYWN0b3IpLiAtLT4KICAgICAgICAg
ICAgPGRpdiBpZD0iZ3JpZC1zY3JvbGwtY29udGFpbmVyIiByb2xlPSJncmlkIiBhcmlhLWxhYmVs
PSJEaWVuc3RwbGFuLVRhZmVsIj4KICAgICAgICAgICAgICAgIDwhLS0gS29wZmJlcmVpY2ggcmVj
aHRzIC0tPgogICAgICAgICAgICAgICAgPGRpdiBpZD0ia29wZi1yZWNodHMiIHJvbGU9InJvd2dy
b3VwIj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFplaWxlIDE6IERhdHVtIC0tPgogICAgICAg
ICAgICAgICAgICAgIDxkaXYgaWQ9ImRhdHVtLXplaWxlLXRhZyIgY2xhc3M9ImtvcGYtZGF0ZW4t
emVpbGUiIHJvbGU9InJvdyIgYXJpYS1sYWJlbD0iVGFnZXNkYXR1bSI+PC9kaXY+CiAgICAgICAg
ICAgICAgICAgICAgPCEtLSBaZWlsZSAyOiBXb2NoZW50YWcgLS0+CiAgICAgICAgICAgICAgICAg
ICAgPGRpdiBpZD0iZGF0dW0temVpbGUtd29jaGVudGFnIiBjbGFzcz0ia29wZi1kYXRlbi16ZWls
ZSIgcm9sZT0icm93IiBhcmlhLWxhYmVsPSJXb2NoZW50YWciPjwvZGl2PgogICAgICAgICAgICAg
ICAgICAgIDwhLS0gWmVpbGUgMzogSWNvbnMgJiBBbmzDpHNzZSAoRmVpZXJ0YWcvU29uZGVydGVy
bWluL0dlYnVydHN0YWcgaW4gZWluZXIKICAgICAgICAgICAgICAgICAgICAgICAgIGtvbXBha3Rl
biBaZWlsZSwgZGF6dSBkaWUgRmVyaWVuLVJhbmdlLUJhciBhbHMgT3ZlcmxheSkgLS0+CiAgICAg
ICAgICAgICAgICAgICAgPGRpdiBpZD0iZGF0dW0temVpbGUtYW5sYXNzIiBjbGFzcz0ia29wZi1k
YXRlbi16ZWlsZSIgcm9sZT0icm93IiBhcmlhLWxhYmVsPSJBbmzDpHNzZSI+PC9kaXY+CiAgICAg
ICAgICAgICAgICAgICAgPCEtLSBaZWlsZSA1OiBTdMOkcmtlIEZ8U3xOIC0tPgogICAgICAgICAg
ICAgICAgICAgIDxkaXYgaWQ9InN0YWVya2UtemVpbGUiIGNsYXNzPSJrb3BmLWRhdGVuLXplaWxl
IiByb2xlPSJyb3ciIGFyaWEtbGFiZWw9IlNjaGljaHRzdMOkcmtlIj48L2Rpdj4KICAgICAgICAg
ICAgICAgICAgICA8IS0tIFplaWxlbiA1KzogU2NoaWNodGZvbGdlIHBybyBTdGFuZG9ydCAtLT4K
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzY2hpY2h0Zm9sZ2UtcmVjaHRzIiByb2xlPSJy
b3dncm91cCIgYXJpYS1sYWJlbD0iU2NoaWNodGZvbGdlIHBybyBTdGFuZG9ydCI+PC9kaXY+CiAg
ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwhLS0gRGF0ZW4tR3JpZCAtLT4K
ICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImdyaWQtZGF0ZW4iIHJvbGU9InJvd2dyb3VwIiBhcmlh
LWxhYmVsPSJTY2hpY2h0ZW4gZGVyIFBlcnNvbmVuIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+
CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gWmVsbGVuLUVkaXRvciAtLT4KICAgICAgICA8
ZGl2IGlkPSJ6ZWxsLWVkaXRvciIgY2xhc3M9InZlcnN0ZWNrdCI+CiAgICAgICAgICAgIDxzZWxl
Y3QgaWQ9ImVkaXRvci1hdXN3YWhsIiBzaXplPSIxMCI+PC9zZWxlY3Q+CiAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImVkaXRvci1rb21tZW50YXIiPgogICAgICAgICAgICAgICAgPCEtLSBWZXJsYXVm
c2xpc3RlOiBnZXJlbmRlcnQgdm9uIGVkaXRvcktvbW1lbnRhclZlcmxhdWZSZW5kZXJuKCkuCiAg
ICAgICAgICAgICAgICAgICAgIFBybyBFaW50cmFnOiBUZXh0LCBNZXRhLVplaWxlIChWZXJmYXNz
ZXIgKyBaZWl0KSwgb3B0aW9uYWwKICAgICAgICAgICAgICAgICAgICAgTG9lc2NoLUljb24gZnVl
ciBTdXBlclVzZXIvR2VzYW10dmVyYW50d29ydGxpY2hlLiAtLT4KICAgICAgICAgICAgICAgIDxk
aXYgaWQ9ImVkaXRvci1rb21tZW50YXItdmVybGF1ZiIgY2xhc3M9ImVkaXRvci1rb21tZW50YXIt
dmVybGF1ZiI+PC9kaXY+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImVk
aXRvci1rb21tZW50YXItaW5wdXQiIGNsYXNzPSJmb3JtLWlucHV0IiBwbGFjZWhvbGRlcj0iTmV1
ZXIgS29tbWVudGFyLi4uIiBzdHlsZT0id2lkdGg6MTAwJTtmb250LXNpemU6MTFweDtwYWRkaW5n
OjRweCA2cHgiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWtvbW1lbnRhci1i
dG5zIj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4ta29tbWVudGFyLWhpbnp1
IiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIGJ0bi1rbGVpbiI+SGluenVmw7xnZW48L2J1dHRvbj4K
ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4K
ICAgIDwvZGl2PgoKICAgIDwhLS0gPT09PT09PT09PSBBTlNJQ0hUOiBXT0NIRU5QTEFOID09PT09
PT09PT0gLS0+CiAgICA8ZGl2IGlkPSJhbnNpY2h0LXdvY2hlbnBsYW4iIGNsYXNzPSJhbnNpY2h0
IHZlcnN0ZWNrdCI+CiAgICAgICAgPGRpdiBjbGFzcz0id3AtbGF5b3V0Ij4KICAgICAgICAgICAg
PCEtLSBUb29sYmFyIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cC10b29sYmFyIj4KICAg
ICAgICAgICAgICAgIDxidXR0b24gaWQ9IndwLXZvcndvY2hlIiBjbGFzcz0idG9vbGJhci1idG4i
PiZsYXJyOyBWb3J3b2NoZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0id3At
YWt0dWVsbGUtd29jaGUiIGNsYXNzPSJ0b29sYmFyLWJ0biI+QWt0dWVsbGUgV29jaGU8L2J1dHRv
bj4KICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9IndwLW5hZWNoc3RlLXdvY2hlIiBjbGFzcz0i
dG9vbGJhci1idG4iPk7DpGNoc3RlIFdvY2hlICZyYXJyOzwvYnV0dG9uPgogICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0idG9vbGJhci10cmVubmVyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxz
cGFuIGlkPSJ3cC16ZWl0cmF1bSIgY2xhc3M9IndwLXplaXRyYXVtLWFuemVpZ2UiPjwvc3Bhbj4K
ICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9IndwLWRydWNrZW4iIGNsYXNzPSJ0b29sYmFyLWJ0
biIgc3R5bGU9Im1hcmdpbi1sZWZ0OmF1dG8iIHRpdGxlPSJXb2NoZW5wbGFuIGRydWNrZW4gKGVp
bmUgU2VpdGUpIj5EcnVja2VuPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAg
ICA8IS0tIFdvY2hlbnBsYW4tUmVuZGVyLVppZWw6IHdvY2hlbnBsYW4uanMgZXJzZXR6dCBkZW4g
SW5oYWx0IHZvbgogICAgICAgICAgICAgICAgIC53cC1zY3JvbGwgYmVpIGplZGVtIFJlbmRlciBk
dXJjaCAud3Atc2VpdGUgKFRhZ2Jsb2NrLUxheW91dCkuCiAgICAgICAgICAgICAgICAgRnJ1ZWhl
ciBzdGFuZCBoaWVyIGVpbmUgc3RhdGlzY2hlIDx0YWJsZT4sIGRpZSBzb2ZvcnQKICAgICAgICAg
ICAgICAgICB1ZWJlcnNjaHJpZWJlbiB3dXJkZSDigJQgZW50ZmVybnQgKEF1ZGl0IDIwMjYtMDYt
MTUpLiAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0id3Atc2Nyb2xsIj48L2Rpdj4KICAgICAg
ICAgICAgPCEtLSBMZWdlbmRlIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3cC1sZWdlbmRl
Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3cC1sZWctaXRlbSI+PHNwYW4gY2xhc3M9
IndwLWxlZy1kb3QiIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWZhcmJlLWZydWVoKSI+PC9zcGFu
PiBGcsO8aGRpZW5zdDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3cC1sZWct
aXRlbSI+PHNwYW4gY2xhc3M9IndwLWxlZy1kb3QiIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWZh
cmJlLXNwYWV0KSI+PC9zcGFuPiBTcMOkdGRpZW5zdDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxz
cGFuIGNsYXNzPSJ3cC1sZWctaXRlbSI+PHNwYW4gY2xhc3M9IndwLWxlZy1kb3QiIHN0eWxlPSJi
YWNrZ3JvdW5kOnZhcigtLWZhcmJlLW5hY2h0KSI+PC9zcGFuPiBOYWNodGRpZW5zdDwvc3Bhbj4K
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0tID09
PT09PT09PT0gQU5TSUNIVDogUEVSU8OWTkxJQ0hFUiBQTEFOID09PT09PT09PT0gLS0+CiAgICA8
ZGl2IGlkPSJhbnNpY2h0LXBlcnNwbGFuIiBjbGFzcz0iYW5zaWNodCB2ZXJzdGVja3QiPgogICAg
ICAgIDxkaXYgY2xhc3M9InBwLWxheW91dCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwLXRv
b2xiYXIiPgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0icHAtcGVyc29uLWF1c3dhaGwiIHN0
eWxlPSJmb250LXdlaWdodDo2MDA7bWFyZ2luLXJpZ2h0OjZweCI+UGVyc29uOjwvbGFiZWw+CiAg
ICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJwcC1wZXJzb24tYXVzd2FobCIgY2xhc3M9ImZvcm0t
aW5wdXQiIHN0eWxlPSJ3aWR0aDoyNTBweCI+PC9zZWxlY3Q+CiAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJ0b29sYmFyLXRyZW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGJ1dHRvbiBp
ZD0icHAtZHJ1Y2tlbiIgY2xhc3M9InRvb2xiYXItYnRuIj5EcnVja2VuPC9idXR0b24+CiAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcC1zY3JvbGwiIGlkPSJwcC1z
Y3JvbGwiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHAtdGl0ZWwiIGlkPSJwcC10aXRl
bCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcC1tb25hdGUiIGlkPSJwcC1t
b25hdGUiPjwvZGl2PgogICAgICAgICAgICAgICAgPCEtLSBadXNhbW1lbmZhc3N1bmcgLS0+CiAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcC1zdW1tYXJ5IiBpZD0icHAtc3VtbWFyeSI+PC9k
aXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEt
LSA9PT09PT09PT09IEFOU0lDSFQ6IEJFU0VUWlVOR1NLT05UUk9MTEUgPT09PT09PT09PSAtLT4K
ICAgIDxkaXYgaWQ9ImFuc2ljaHQtYmVzZXR6dW5nIiBjbGFzcz0iYW5zaWNodCB2ZXJzdGVja3Qi
PgogICAgICAgIDxkaXYgY2xhc3M9ImJrLWxheW91dCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImJrLWtvcGYiPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8aDIg
c3R5bGU9Im1hcmdpbjowIiBkYXRhLWJlej0ibmF2LmJlc2V0enVuZyI+UHLDvGZ1bmc8L2gyPgog
ICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigt
LXRleHQtbXV0ZWQpO21hcmdpbi10b3A6NHB4IiBpZD0iYmstdW50ZXJ0aXRlbCI+NC1Xb2NoZW4t
Vm9yc2NoYXUgYWIgaGV1dGUg4oCUIEFtcGVsOiDiiaQxIEZrID0gcm90LCA9MiBGayA9IGdlbGIs
IOKJpTMgRmsgPSBncsO8biBwcm8gU2NoaWNodDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiay1rb3BmLXN0YXRzIj4KICAgICAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJiay1rcGkiIGlkPSJiay1rcGktZ2VzYW10Ij48ZGl2IGNsYXNz
PSJiay1rcGktemFobCI+4oCTPC9kaXY+PGRpdiBjbGFzcz0iYmsta3BpLWxhYmVsIj5UYWdlIGlt
IEZlbnN0ZXI8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiay1r
cGkgYmsta3BpLXdhcm4iIGlkPSJiay1rcGktZGVmaXppdCI+PGRpdiBjbGFzcz0iYmsta3BpLXph
aGwiPuKAkzwvZGl2PjxkaXYgY2xhc3M9ImJrLWtwaS1sYWJlbCI+cm90ICjiiaQxKTwvZGl2Pjwv
ZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJrLWtwaSBiay1rcGktb2siIGlk
PSJiay1rcGktb2siPjxkaXYgY2xhc3M9ImJrLWtwaS16YWhsIj7igJM8L2Rpdj48ZGl2IGNsYXNz
PSJiay1rcGktbGFiZWwiPmdyw7xuICjiiaUzKTwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAg
PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGlkPSJiay1iZWdydWVz
c3VuZyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJrLWluaGFsdCIgaWQ9ImJrLWlu
aGFsdCI+CiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOjQwcHg7dGV4dC1hbGln
bjpjZW50ZXI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPldpcmQgZ2VsYWRlbiDigKY8L2Rpdj4K
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0tID09
PT09PT09PT0gQU5TSUNIVDogQURNSU5JU1RSQVRJT04gPT09PT09PT09PSAtLT4KICAgIDxkaXYg
aWQ9ImFuc2ljaHQtYWRtaW4iIGNsYXNzPSJhbnNpY2h0IHZlcnN0ZWNrdCI+CiAgICAgICAgPGRp
diBjbGFzcz0iYWRtaW4tbGF5b3V0Ij4KICAgICAgICAgICAgPCEtLSBBZG1pbi1TaWRlYmFyOiBD
bHVzdGVyIG1pdCBVZWJlcnNjaHJpZnRlbiAodHlwb2dyYWZpc2NoIGdydXBwaWVydCwgb2huZSBJ
Y29ucykuCiAgICAgICAgICAgICAgICAgR3J1cHBlbiBmb2xnZW4gbWVudGFsZW4gS2F0ZWdvcmll
bjogIldlciBhcmJlaXRldCBoaWVyPyIgKFBlcnNvbmVuKQogICAgICAgICAgICAgICAgIC0+ICJX
aWUgaXN0IGVzIG9yZ2FuaXNpZXJ0PyIgKE9yZ2FuaXNhdGlvbikgLT4gSW5oYWx0ZSAoU2NoaWNo
dGVuLAogICAgICAgICAgICAgICAgIEthbGVuZGVyKSAtPiBLb21tdW5pa2F0aW9uIC0+IFNpY2hl
cmhlaXQgKFJlY2h0ZSkgLT4gRGFyc3RlbGx1bmcgLT4gU3lzdGVtLgogICAgICAgICAgICAgICAg
IGRhdGEtYWRtaW4tdGFiLVdlcnRlIHVuZCBUYWItSURzIGJsZWliZW4gdW52ZXJhZW5kZXJ0IOKA
lCBudXIgR3J1cHBpZXJ1bmcKICAgICAgICAgICAgICAgICB1bmQgUmVpaGVuZm9sZ2Ugd3VyZGVu
IGltIFBoYXNlLTMtUmVkZXNpZ24gbmV1IHNvcnRpZXJ0LiAtLT4KICAgICAgICAgICAgPGFzaWRl
IGNsYXNzPSJhZG1pbi1zaWRlYmFyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWlu
LW5hdi1ncnVwcGUiPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iYWRtaW4tbmF2LXRp
dGVsIj5QZXJzb25lbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRt
aW4tbmF2LWJ0biBha3RpdiIgZGF0YS1hZG1pbi10YWI9InBlcnNvbmFsIj5QZXJzb25hbHZlcndh
bHR1bmc8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhZG1pbi1u
YXYtYnRuIiBkYXRhLWFkbWluLXRhYj0ibGlzdGVuIiBpZD0ibmF2LWxpc3RlbiI+RGllbnN0Z3Jh
ZGUgJmFtcDsgRnVua3Rpb25lbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tbmF2LWdydXBwZSI+CiAgICAgICAgICAgICAg
ICAgICAgPGgzIGNsYXNzPSJhZG1pbi1uYXYtdGl0ZWwiPk9yZ2FuaXNhdGlvbjwvaDM+CiAgICAg
ICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRtaW4tbmF2LWJ0biIgZGF0YS1hZG1pbi10
YWI9ImdydXBwZW4iPkRpZW5zdGdydXBwZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8
YnV0dG9uIGNsYXNzPSJhZG1pbi1uYXYtYnRuIiBkYXRhLWFkbWluLXRhYj0ic3RhbmRvcnRlIj5T
dGFuZG9ydGUgJmFtcDsgU2NoaWNodGZvbGdlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAg
PGJ1dHRvbiBjbGFzcz0iYWRtaW4tbmF2LWJ0biIgZGF0YS1hZG1pbi10YWI9Im1pa3JvdGVhbXMi
Pk1pa3JvdGVhbXM8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImFkbWluLW5hdi1ncnVwcGUiPgogICAgICAgICAgICAgICAgICAgIDxo
MyBjbGFzcz0iYWRtaW4tbmF2LXRpdGVsIj5TY2hpY2h0LUthdGFsb2c8L2gzPgogICAgICAgICAg
ICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFkbWluLW5hdi1idG4iIGRhdGEtYWRtaW4tdGFiPSJz
Y2hpY2h0Y29kZXMiPlNjaGljaHRjb2RlcyAmYW1wOyBGYXJiZW48L2J1dHRvbj4KICAgICAgICAg
ICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLW5hdi1ncnVw
cGUiPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iYWRtaW4tbmF2LXRpdGVsIj5LYWxl
bmRlcjwvaDM+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRtaW4tbmF2LWJ0
biIgZGF0YS1hZG1pbi10YWI9ImZlaWVydGFnZSI+RmVpZXJ0YWdlICZhbXA7IEZlcmllbjwvYnV0
dG9uPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFkbWluLW5hdi1idG4iIGRh
dGEtYWRtaW4tdGFiPSJzb25kZXJ0ZXJtaW5lIj5Tb25kZXJ0ZXJtaW5lPC9idXR0b24+CiAgICAg
ICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1uYXYt
Z3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImFkbWluLW5hdi10aXRlbCI+
S29tbXVuaWthdGlvbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRt
aW4tbmF2LWJ0biIgZGF0YS1hZG1pbi10YWI9ImVtYWlsdm9ybGFnZW4iIGlkPSJuYXYtZW1haWx2
b3JsYWdlbiI+RS1NYWlsLVZvcmxhZ2VuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGJ1
dHRvbiBjbGFzcz0iYWRtaW4tbmF2LWJ0biIgZGF0YS1hZG1pbi10YWI9Im1pdHRlaWx1bmdlbiIg
aWQ9Im5hdi1taXR0ZWlsdW5nZW4iPk1pdHRlaWx1bmdlbjwvYnV0dG9uPgogICAgICAgICAgICAg
ICAgICAgIDxidXR0b24gY2xhc3M9ImFkbWluLW5hdi1idG4iIGRhdGEtYWRtaW4tdGFiPSJiZXpl
aWNobnVuZ2VuIiBpZD0ibmF2LWJlemVpY2hudW5nZW4iPkJlc2NocmlmdHVuZ2VuICZhbXA7IEhp
bGZldGV4dGU8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImFkbWluLW5hdi1ncnVwcGUiPgogICAgICAgICAgICAgICAgICAgIDxoMyBj
bGFzcz0iYWRtaW4tbmF2LXRpdGVsIj5SZWNodGUgJmFtcDsgUm9sbGVuPC9oMz4KICAgICAgICAg
ICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhZG1pbi1uYXYtYnRuIiBkYXRhLWFkbWluLXRhYj0i
c3VwZXJ1c2VyIiBpZD0ibmF2LXN1cGVydXNlciI+UmVjaHRlICZhbXA7IFNpY2h0YmFya2VpdDwv
YnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFkbWluLW5hdi1idG4i
IGRhdGEtYWRtaW4tdGFiPSJzdGFuZGFyZHJlY2h0ZSIgaWQ9Im5hdi1zdGFuZGFyZHJlY2h0ZSI+
U3RhbmRhcmRyZWNodGUgKFVzZXIpPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1uYXYtZ3J1cHBlIj4KICAgICAgICAgICAg
ICAgICAgICA8aDMgY2xhc3M9ImFkbWluLW5hdi10aXRlbCI+RGFyc3RlbGx1bmc8L2gzPgogICAg
ICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFkbWluLW5hdi1idG4iIGRhdGEtYWRtaW4t
dGFiPSJlcnNjaGVpbnVuZ3NiaWxkIiBpZD0ibmF2LWVyc2NoZWludW5nc2JpbGQiPkVyc2NoZWlu
dW5nc2JpbGQ8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhZG1p
bi1uYXYtYnRuIiBkYXRhLWFkbWluLXRhYj0ic3RhdGlzdGlrLWxheW91dCIgaWQ9Im5hdi1zdGF0
aXN0aWstbGF5b3V0Ij5TdGF0aXN0aWstTGF5b3V0PC9idXR0b24+CiAgICAgICAgICAgICAgICAg
ICAgPGJ1dHRvbiBjbGFzcz0iYWRtaW4tbmF2LWJ0biIgZGF0YS1hZG1pbi10YWI9InN0YXRpc3Rp
ay1idWlsZGVyIiBpZD0ibmF2LXN0YXRpc3Rpay1idWlsZGVyIj5TdGF0aXN0aWstQnVpbGRlcjwv
YnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0iYWRtaW4tbmF2LWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJhZG1p
bi1uYXYtdGl0ZWwiPlN5c3RlbTwvaDM+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFz
cz0iYWRtaW4tbmF2LWJ0biIgZGF0YS1hZG1pbi10YWI9ImVpbnN0ZWxsdW5nZW4iPktvbmZpZ3Vy
YXRpb24gJmFtcDsgRnVua3Rpb25lbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDxidXR0
b24gY2xhc3M9ImFkbWluLW5hdi1idG4iIGRhdGEtYWRtaW4tdGFiPSJiYWNrdXBzIj5CYWNrdXBz
PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRtaW4tbmF2LWJ0
biIgZGF0YS1hZG1pbi10YWI9ImhpbndlaXNlLXByb3Rva29sbCIgaWQ9Im5hdi1oaW53ZWlzZS1w
cm90b2tvbGwiPkhpbndlaXNlLVByb3Rva29sbDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAg
IDxidXR0b24gY2xhc3M9ImFkbWluLW5hdi1idG4iIGRhdGEtYWRtaW4tdGFiPSJpbXBvcnQiIGlk
PSJuYXYtaW1wb3J0Ij5FeGNlbC1JbXBvcnQ8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8
YnV0dG9uIGNsYXNzPSJhZG1pbi1uYXYtYnRuIiBkYXRhLWFkbWluLXRhYj0iZXhwb3J0IiBpZD0i
bmF2LWV4cG9ydCI+RXhjZWwtRXhwb3J0PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGJ1
dHRvbiBjbGFzcz0iYWRtaW4tbmF2LWJ0biIgZGF0YS1hZG1pbi10YWI9InRlc3RkYXRlbiI+VGVz
dGRhdGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9hc2lk
ZT4KCiAgICAgICAgICAgIDwhLS0gQWRtaW4tSW5oYWx0IC0tPgogICAgICAgICAgICA8bWFpbiBj
bGFzcz0iYWRtaW4taW5oYWx0Ij4KCiAgICAgICAgICAgICAgICA8IS0tIFJlYWQtb25seS1CYW5u
ZXI6IGVyc2NoZWludCwgd2VubiBkZXIgZWluZ2Vsb2dndGUgQmVudXR6ZXIKICAgICAgICAgICAg
ICAgICAgICAgZGVuIEFkbWluLUJlcmVpY2ggbnVyIGxlc2VuZCBzZWhlbiBkYXJmIChhbGxlIFJv
bGxlbgogICAgICAgICAgICAgICAgICAgICBhdXNzZXIgU3VwZXJVc2VyKS4gV2lyZCB2b24gYWRt
aW5CYW5uZXJBa3R1YWxpc2llcmVuKCkKICAgICAgICAgICAgICAgICAgICAgaW4gYWRtaW4uanMg
ZWluLS9hdXNnZWJsZW5kZXQgdW5kIG1pdCBSb2xsZSBiZWZ1ZWxsdC4gLS0+CiAgICAgICAgICAg
ICAgICA8ZGl2IGlkPSJhZG1pbi1yZWFkb25seS1iYW5uZXIiIGNsYXNzPSJhZG1pbi1iYW5uZXIg
YWRtaW4tYmFubmVyLWluZm8gdmVyc3RlY2t0IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9s
aXRlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWRtaW4tYmFubmVyLWljb24i
IGFyaWEtaGlkZGVuPSJ0cnVlIj4mIzk0MzI7PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImFkbWluLWJhbm5lci10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iYWRtaW4tYmFubmVyLXRpdGVsIj5OdXItTGVzZS1Nb2R1czwvZGl2PgogICAgICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1iYW5uZXItYm9keSIgaWQ9ImFkbWlu
LXJlYWRvbmx5LWJhbm5lci10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIER1IHNp
ZWhzdCBkaWVzZW4gQmVyZWljaCBudXIgbGVzZW5kLiAmQXVtbDtuZGVydW5nZW4gc2luZCBkZW0g
U3VwZXJVc2VyIHZvcmJlaGFsdGVuLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg
ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAg
ICAgICAgIDwhLS0gRHJhZnQtUmVzdG9yZS1CYW5uZXI6IGVyc2NoZWludCwgd2VubiBiZWltIFRh
Yi1XZWNoc2VsIGVpbgogICAgICAgICAgICAgICAgICAgICB1bmdlc2ljaGVydGVyIEF1dG8tU2F2
ZS1EcmFmdCBpbSBsb2NhbFN0b3JhZ2UgZ2VmdW5kZW4gd3VyZGUKICAgICAgICAgICAgICAgICAg
ICAgKEJyb3dzZXItQ3Jhc2gsIEY1LVJlbG9hZCwgdmVyc2VoZW50bGljaGVzIFNjaGxpZXNzZW4p
LgogICAgICAgICAgICAgICAgICAgICBhZG1pbkRyYWZ0QmFubmVyQW5iaWV0ZW4oKSBpbiBhZG1p
bi5qcyBiZXN0dWVja3QgVGV4dCArIEJ1dHRvbnMuIC0tPgogICAgICAgICAgICAgICAgPGRpdiBp
ZD0iYWRtaW4tZHJhZnQtYmFubmVyIiBjbGFzcz0iYWRtaW4tYmFubmVyIGFkbWluLWJhbm5lci13
YXJuIHZlcnN0ZWNrdCIgcm9sZT0ic3RhdHVzIiBhcmlhLWxpdmU9InBvbGl0ZSI+CiAgICAgICAg
ICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFkbWluLWJhbm5lci1pY29uIiBhcmlhLWhpZGRlbj0i
dHJ1ZSI+JiM5MjAxOzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p
bi1iYW5uZXItdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWlu
LWJhbm5lci10aXRlbCI+VW5nZXNpY2hlcnRlICZBdW1sO25kZXJ1bmdlbiB3aWVkZXJoZXJzdGVs
bGVuPzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1iYW5u
ZXItYm9keSIgaWQ9ImFkbWluLWRyYWZ0LWJhbm5lci10ZXh0Ij4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIER1IGhhc3QgaW4gZGllc2VtIFRhYiAmQXVtbDtuZGVydW5nZW4sIGRpZSBub2No
IG5pY2h0IGdlc3BlaWNoZXJ0IHNpbmQuCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog
ICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjhweDtkaXNwbGF5
OmZsZXg7Z2FwOjhweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9
ImJ1dHRvbiIgaWQ9ImFkbWluLWRyYWZ0LXJlc3RvcmUiIGNsYXNzPSJidG4gYnRuLXByaW1hZXIg
YnRuLWtsZWluIj5XaWVkZXJoZXJzdGVsbGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImFkbWluLWRyYWZ0LXZlcndlcmZlbiIg
Y2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiI+VmVyd2VyZmVuPC9idXR0b24+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg
ICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IFBlcnNvbmFsIC0tPgog
ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIiBpZD0iYWRtaW4tdGFiLXBlcnNv
bmFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGgyPlBlcnNvbmFsdmVyd2FsdHVuZzwvaDI+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6MTJweDthbGlnbi1pdGVt
czpjZW50ZXI7ZmxleC13cmFwOndyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxh
YmVsIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1z
aXplOjEzcHg7Y3Vyc29yOnBvaW50ZXIiIHRpdGxlPSJVbWdlc2V0enRlIGluIGRpZXNlciBUYWJl
bGxlIGFuemVpZ2VuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlw
ZT0iY2hlY2tib3giIGlkPSJhZG1pbi1wZXJzb25hbC1maWx0ZXIiPiBVbWdlc2V0enRlIGVpbmJs
ZW5kZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50
ZXI7Z2FwOjZweDtmb250LXNpemU6MTNweDtjdXJzb3I6cG9pbnRlciIgdGl0bGU9IlVtZ2VzZXR6
dGUgYXVjaCBpbiBkZXIgUGxhbnVuZ3MtQW5zaWNodCBlaW5ibGVuZGVuIChuaWNodCBlZGl0aWVy
YmFyLCBudXIgenVyIFJlY2hlcmNoZSkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNoay11bWdlc2V0enRlLWVpbmJsZW5kZW4iPiBJ
biBQbGFudW5ncy1BbnNpY2h0IGVpbmJsZW5kZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9InBhcGllcmtv
cmItZmlsdGVyLXplaWxlIiBjbGFzcz0idmVyc3RlY2t0IiBzdHlsZT0iZGlzcGxheTpmbGV4O2Fs
aWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZvbnQtc2l6ZToxM3B4O2N1cnNvcjpwb2ludGVyIiB0
aXRsZT0iU29mdC1nZWzDtnNjaHRlIFBlcnNvbmVuIGltIFBhcGllcmtvcmIgYW56ZWlnZW4gKG51
ciBiZWkgYWt0aXZlbSBGZWF0dXJlKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYWRtaW4tcGFwaWVya29yYi1maWx0ZXIiPiBQYXBp
ZXJrb3JiIGVpbmJsZW5kZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tbWFudWVsbGUtc29ydGll
cnVuZyIgY2xhc3M9ImJ0biBidG4tc2VrIiB0aXRsZT0iRsO8aHJ1bmdza3LDpGZ0ZSAoQeKAk0Mg
dW5kIFdEKSBwZXIgRHJhZyAmYW1wOyBEcm9wIGluIG5ldWUgUmVpaGVuZm9sZ2UgYnJpbmdlbiI+
TWFudWVsbGUgU29ydGllcnVuZzwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGJ1dHRvbiBpZD0iYnRuLXBlcnNvbi1uZXUiIGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+TmV1ZSBQ
ZXJzb248L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg
ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBOZXVpbXBvcnQtQmxvY2s6
IGVyc2NoZWludCwgd2VubiBQZXJzb25lbiBtaXQgaW1wb3J0TmV1QW0tTWFya2VyCiAgICAgICAg
ICAgICAgICAgICAgICAgICB2b3JoYW5kZW4gc2luZCAoRXhjZWwtSW1wb3J0ICJuZXUgYW5sZWdl
biIpLiBVc2VyIGthbm4gZGllIFBlcnNvbmVuCiAgICAgICAgICAgICAgICAgICAgICAgICBoaWVy
IGRpcmVrdCBuYWNocGZsZWdlbiB1bmQgZWluemVsbiBhdWYgIkVybGVkaWd0IiBzZXR6ZW4uCiAg
ICAgICAgICAgICAgICAgICAgICAgICBCbG9jayB2ZXJzY2h3aW5kZXQgYXV0b21hdGlzY2gsIHNv
YmFsZCBhbGxlIE1hcmtlciB3ZWcgc2luZC4gLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBp
ZD0icGVyc29uYWwtbmV1aW1wb3J0LWJsb2NrIiBjbGFzcz0idmVyc3RlY2t0Ij48L2Rpdj4KICAg
ICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtl
eT0icGVyc29uYWwiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFu
IGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dXIgUGVyc29uYWx2
ZXJ3YWx0dW5nPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWts
YXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9u
Zz5ad2Vjazo8L3N0cm9uZz4gWmVudHJhbGUgVmVyd2FsdHVuZyBhbGxlciBNaXRhcmJlaXRlciwg
ZGllIGluIGRlciBEaWVuc3RwbGFudW5nIGVyc2NoZWluZW4uIEplZGUgUGVyc29uIGJla29tbXQg
U3RhbW1kYXRlbiAoTmFtZSwgRGllbnN0Z3JhZCwgVGVsZWZvbiwgTlctS2VubnVuZywgRGllbnN0
Z3J1cHBlLCBTdGFuZG9ydCkgc293aWUgZWluZW4gYWt0aXZlbiBvZGVyIHVtZ2VzZXR6dGVuIFN0
YXR1cy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlJhbmdmb2xn
ZTo8L3N0cm9uZz4gRGllIFJhbmctU3BhbHRlIHplaWd0IGRlbiByb2hlbiBQb3NpdGlvbnMtV2Vy
dCAoei5CLiA8Y29kZT4xMTE8L2NvZGU+IOKAlCDDvGJlcm5vbW1lbiBhdXMgZGVtIEV4Y2VsLUlt
cG9ydCkuIFp1bSBVbXNvcnRpZXJlbiBudXR6ZSBkZW4gQnV0dG9uIDxlbT5NYW51ZWxsZSBTb3J0
aWVydW5nPC9lbT4gb2JlbiDigJQgZG9ydCBrw7ZubmVuIEbDvGhydW5nc2tyw6RmdGUgKEHigJND
IHVuZCBXRCkgcGVyIERyYWcgJmFtcDsgRHJvcCBuZXUgYW5nZW9yZG5ldCB3ZXJkZW4uPC9wPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5EaWVuc3RncmFkOjwvc3Ryb25n
PiBPcHRpb25hbCDigJQgei4gQi4gUEhLLCBQT0ssIFBLLiBXaXJkIGluIGRlciBOYW1lbnNzcGFs
dGUgYWxzIFByw6RmaXggdm9yIGRlbSBOYWNobmFtZW4gYW5nZXplaWd0LjwvcD4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RGllbnN0Z3J1cHBlIChBL0IvQy9XRC9XTCk6
PC9zdHJvbmc+IEJlc3RpbW10IGRpZSBSb3RhdGlvbiBhbiBkZW4gU3RhbmRvcnRlbi4gQS9CL0Mg
cm90aWVyZW4gaW4gQUJDLS9CQ0EtL0NBQi1TY2hpY2h0Zm9sZ2UgZHVyY2ggRnLDvGgvU3DDpHQv
TmFjaHQuIFdEIChXYWNoZGllbnN0KSB1bmQgV0wgKFdhY2hsZWl0dW5nKSBzaW5kIGZlc3RlIFNv
bmRlcmdydXBwZW4gb2huZSBSb3RhdGlvbi4gS8O8cnplbCB1bmQgQmV6ZWljaG51bmdlbiBsYXNz
ZW4gc2ljaCBpbSBUYWIgPGI+RGllbnN0Z3J1cHBlbjwvYj4gYW5wYXNzZW4g4oCUIFVtYmVuZW5u
dW5nIGthc2thZGllcnQgYXV0b21hdGlzY2ggYXVmIGFsbGUgUGVyc29uZW4uPC9wPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OVy1LZW5udW5nOjwvc3Ryb25nPiBEaWUg
TmV0endlcmstS2VubnVuZyAoei5CLiA8Y29kZT5ET01BSU5cbWF4Lm11c3Rlcm1hbm48L2NvZGU+
KSB3aXJkIGF1dG9tYXRpc2NoIGRlbSBhbmdlbWVsZGV0ZW4gV2luZG93cy1CZW51dHplciB6dWdl
b3JkbmV0LiBPaG5lIEtlbm51bmcgZXJrZW5udCBkYXMgU3lzdGVtIGRpZSBQZXJzb24gbmljaHQg
4oCUIEZ1bmt0aW9uZW4gd2llIOKAnkZyZW1kLcOEbmRlcnVuZyBXYXJudW5nIiBvZGVyIHBlcnPD
tm5saWNoZXIgUGxhbiBmdW5rdGlvbmllcmVuIGRhbm4gbmljaHQuPC9wPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5FLU1haWw6PC9zdHJvbmc+IE9wdGlvbmFsLiBXaXJk
IHZlcndlbmRldCwgd2VubiBkaWUgQmVuYWNocmljaHRpZ3VuZ3NmdW5rdGlvbiBha3RpdmllcnQg
aXN0IChUYWIgPGI+RWluc3RlbGx1bmdlbjwvYj4pLjwvcD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxwPjxzdHJvbmc+VW1nZXNldHp0Ojwvc3Ryb25nPiBQZXJzb25lbiBtaXQgU3RhdHVz
IOKAnlVtZ2VzZXR6dCIgd2VyZGVuIGF1cyBkZXIgbGF1ZmVuZGVuIFBsYW51bmcgZW50ZmVybnQs
IGlocmUgSGlzdG9yaWUgYmxlaWJ0IGFiZXIgZXJoYWx0ZW4gKHp1ciBSZWNoZXJjaGUpLiBFaW50
csOkZ2Uga8O2bm5lbiB3ZWl0ZXJoaW4gYW5nZXplaWd0IHdlcmRlbiwgc2luZCBhYmVyIG5pY2h0
IG1laHIgZWRpdGllcmJhci4gRGllIENoZWNrYm94IG9iZW4gcmVjaHRzIGJsZW5kZXQgc2llIGJl
aSBCZWRhcmYgZWluLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+
TMO2c2NoZW4gdnMuIFVtc2V0emVuOjwvc3Ryb25nPiBOdXIgYXVzbmFobXN3ZWlzZSBsw7ZzY2hl
biDigJQgdmVybG9yZW5lIEhpc3RvcmllLiBJbSBSZWdlbGZhbGwg4oCeVW1zZXR6ZW4iIChkZWFr
dGl2aWVyZW4pIGJldm9yenVnZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K
ICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxl
IGlkPSJwZXJzb25hbC10YWJlbGxlIiBjbGFzcz0iYWRtaW4tdGFiZWxsZSI+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHRoPlZvcm5hbWU8L3RoPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTIwcHgiIHRpdGxlPSJTdGFtbS1GdW5rdGlvbiAo
REdML0RHTGluL1dERi9XREZpbi8zLiBNYW5uLzMuIEZyYXUvV2FjaGxlaXR1bmcvR3J1cHBlbmbD
vGhydW5nKS4gQmVzdGltbXQgZGllIFZlcmFudHdvcnR1bmdzLVJlaWhlbmZvbGdlIGluIGRlciBT
Y2hpY2h0LiI+RnVua3Rpb248L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0
aCBzdHlsZT0id2lkdGg6ODVweCIgdGl0bGU9IkRpZW5zdGdyYWQgKGbDvHIgU3VwZXJVc2VyIHBl
ciBLbGljayBlZGl0aWVyYmFyKSI+RGllbnN0Z3JhZDwvdGg+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo2NXB4IiB0aXRsZT0iRGllbnN0cmFuZyDigJQg
cm9oZSBQb3NpdGlvbiAoYXVzIEV4Y2VsLUltcG9ydCkuIFVtc29ydGllcmVuIHZpYSDigJ5NYW51
ZWxsZSBTb3J0aWVydW5nIiBvYmVuLiI+RGllbnN0cmFuZzwvdGg+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo1MHB4IiB0aXRsZT0iT3JnYW5pc2F0aW9u
c2VpbmhlaXQgKFN0YW5kb3J0LUt1ZXJ6ZWwgYXVzIGRlbSBUYWIg4oCeU3RhbmRvcnRlIiDigJQg
ei5CLiBLQSwgSEEsIEJPKS4iPk9FPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8dGggc3R5bGU9IndpZHRoOjYwcHgiIHRpdGxlPSJUZWxlZm9uLUR1cmNod2FobCAoaW50ZXJu
KS4iPlRlbC48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0i
d2lkdGg6MTE1cHgiIHRpdGxlPSJOVy1LZW5udW5nIOKAlCBpLmQuUi4gOCBaZWljaGVuLCBsYW5n
ZSBET01BSU4tUHJhZWZpeGUgd2VyZGVuIGdnZi4gYWJnZXNjaG5pdHRlbiI+TlctS2VubnVuZzwv
dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0OHB4
IiB0aXRsZT0iSGV1dGlnZSBTY2hpY2h0cm90YXRpb24gKEZydWVoZGllbnN0IC8gU3BhZXRkaWVu
c3QgLyBOYWNodGRpZW5zdCkuIFdpcmQgYXVzIGRlciBTdGFuZG9ydC1TY2hpY2h0Zm9sZ2UgdW5k
IGRlciBEaWVuc3RncnVwcGUgZGVyIFBlcnNvbiBhYmdlbGVpdGV0LiBIb3ZlciB6ZWlndCBkZW4g
bmFlY2hzdGVuIFdlY2hzZWx0YWcuIj5Sb3RhPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHgiPkUtTWFpbDwvdGg+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo5NXB4Ij5HZWJ1cnRzdGFnPC90aD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjcwcHgiIHRp
dGxlPSJRdWFsaWZpa2F0aW9uIGFscyBEaWVuc3RncnVwcGVuLUxlaXRlciAoREdMKSBiencuIOKA
njMuIE1hbm4vRnJhdSIgZGVyIFZlcmtlaHJzaW5zcGVrdGlvbiAzLiBNYXJraWVydCBkaWUgUGVy
c29uIGFscyB1ZWJlcmJlc2V0enVuZ3MtZmFlaGlnIGZ1ZXIgbGVlcmUgU2NoaWNodGVuIGluIGlo
cmVyIERpZW5zdGdydXBwZS4iPlZJMyBER0w8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx0aCBzdHlsZT0id2lkdGg6OTBweCIgdGl0bGU9IkFuc3ByZWNocGFydG5lciBpbSBJ
bmZvLUZlbnN0ZXIg4oCUIG51ciBmw7xyIExlaXR1bmdzLUZ1bmt0aW9uZW4gYWt0aXZpZXJiYXIg
KEZ1bmt0aW9uZW4gbWl0IOKAnkluIFBsYW51bmcgc2ljaHRiYXIgPSBuZWluIikiPkFuc3ByZWNo
LcKtcGFydG5lcjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxl
PSJ3aWR0aDo2NHB4IiB0aXRsZT0iRGllc2UgUGVyc29uIGVpbnplbG4gYXVzIGRlciBQbGFudW5n
c2Fuc2ljaHQgLyBXb2NoZW5wbGFuIC8gUGVycy4gUGxhbiBhdXNibGVuZGVuIChncsO8biA9IHNp
Y2h0YmFyLCByb3QgPSBhdXNnZWJsZW5kZXQpLiBTdXBlclVzZXItb25seS4iPkluIFBsYW51bmc8
L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6ODBw
eCI+U3RhdHVzPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9
IndpZHRoOjIxMHB4Ij5Ba3Rpb25lbjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAg
ICAgICA8dGJvZHkgaWQ9InBlcnNvbmFsLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAg
ICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0t
IFRhYjogRmVpZXJ0YWdlIC0tPgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IERpZW5zdGdydXBw
ZW4gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBp
ZD0iYWRtaW4tdGFiLWdydXBwZW4iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFk
bWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+RGllbnN0Z3J1cHBlbjwvaDI+
CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMg
Y2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9ImdydXBwZW4iIG9wZW4+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKW
uDwvc3Bhbj5IaW53ZWlzZSB6dSBEaWVuc3RncnVwcGVuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8t
YmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXMgc2luZCBEaWVuc3RncnVwcGVuPzwvc3Ryb25n
PiBEaWVuc3RncnVwcGVuIGLDvG5kZWxuIE1pdGFyYmVpdGVyIG1pdCBkZW1zZWxiZW4gUm90YXRp
b25zcmh5dGhtdXMuIEJlaSBkZXIgVkkzIHNpbmQgZGFzIGRpZSBrbGFzc2lzY2hlbiA8Yj5BIC8g
QiAvIEM8L2I+IChXZWNoc2VsZGllbnN0LVJvdGF0aW9uKSwgcGx1cyBTb25kZXJncnVwcGVuIHdp
ZSA8Yj5LPC9iPiAoV2FjaGRpZW5zdCkgdW5kIDxiPkw8L2I+IChXYWNobGVpdHVuZykuPC9wPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Lw7xyemVsIHZzLiBCZXplaWNo
bnVuZzo8L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5EYXMgPGI+S8O8cnplbDwvYj4gKHou
Qi4gPGNvZGU+QTwvY29kZT4sIDxjb2RlPldEPC9jb2RlPikgaXN0IGRpZSB0ZWNobmlzY2hlIEtl
bm51bmcgaW4gZGVuIERhdGVuIHVuZCB3aXJkIGluIGRlciBQZXJzb25lbi1aZWlsZSBhbmdlemVp
Z3QuIFdlbm4gZHUgZXMgw6RuZGVyc3QsIHdlcmRlbiBhdXRvbWF0aXNjaCBhbGxlIFBlcnNvbmVu
IGRlciBHcnVwcGUgYXVmIGRhcyBuZXVlIEvDvHJ6ZWwgbWlncmllcnQgKGthc2thZGllcnRlcyBV
cGRhdGUgaW4gPGNvZGU+cGxhbnVuZy5qc29uPC9jb2RlPikuPC9saT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGxpPkRpZSA8Yj5CZXplaWNobnVuZzwvYj4gKHouQi4g4oCe
V2FjaGRpZW5zdCIsIOKAnldhY2hsZWl0dW5nIikgZXJzY2hlaW50IGFscyBUcmVubmVyIGluIGRl
ciBOYW1lbnNsaXN0ZSBkZXIgUGxhbnVuZy4gRGllc2Uga2FubnN0IGR1IGZyZWkgYW5wYXNzZW4s
IG9obmUgRGF0ZW4genUgdmVybGllcmVuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RmFyYmVuOjwvc3Ryb25nPiBIaW50ZXJncnVuZCB1
bmQgU2NocmlmdGZhcmJlIHBybyBHcnVwcGUgZGlyZWt0IGVkaXRpZXJiYXIuIEVpbmUgTGl2ZS1W
b3JzY2hhdSB6ZWlndCBkYXMgcmVzdWx0aWVyZW5kZSBCYWRnZS4gRGllIEZhcmJlbiB3ZXJkZW4g
w7xiZXJhbGwgaW0gU3lzdGVtIHZlcndlbmRldCAoUGVyc29uZW4tQmFkZ2VzLCBHcnVwcGVuLVRy
ZW5uZXIgaW4gZGVyIFBlcnNvbmFsdmVyd2FsdHVuZywgR3J1cHBlbi1MYWJlbCBpbiBkZXIgUGxh
bnVuZ3MtWmVpbGUpLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+
TmV1ZSBHcnVwcGUgYW5sZWdlbjo8L3N0cm9uZz4gQnV0dG9uIDxlbT7igJ5OZXVlIERpZW5zdGdy
dXBwZSI8L2VtPiDDtmZmbmV0IGVpbmUgRWluZ2FiZXplaWxlLiBQZmxpY2h0ZmVsZGVyIHNpbmQg
S8O8cnplbCB1bmQgQmV6ZWljaG51bmc7IEZhcmJlbiBrw7ZubmVuIHp1bsOkY2hzdCDDvGJlcm5v
bW1lbiB3ZXJkZW4gdW5kIHNww6R0ZXIgYW5nZXBhc3N0IHdlcmRlbi48L3A+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkdydXBwZSBsw7ZzY2hlbjo8L3N0cm9uZz4gTnVy
IG3DtmdsaWNoLCB3ZW5uIGtlaW5lIGFrdGl2ZSBQZXJzb24gbWVociBpbiBkZXIgR3J1cHBlIGlz
dC4gU2luZCBub2NoIFBlcnNvbmVuIHp1Z2V3aWVzZW4sIHplaWd0IGRlciBEaWFsb2cgZGllIEFu
emFobCB1bmQgYnJpY2h0IGFiIOKAlCBkYW5uIGVyc3QgZGllIFBlcnNvbmVuIGF1ZiBlaW5lIGFu
ZGVyZSBHcnVwcGUgdW1zZXR6ZW4gb2RlciB1bWdydXBwaWVyZW4uPC9wPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5TcGVpY2hlcm46PC9zdHJvbmc+IE5hY2ggw4RuZGVy
dW5nZW4gYXVmIOKAnkRpZW5zdGdydXBwZW4gc3BlaWNoZXJuIiBrbGlja2VuLiBCZWkgZ2XDpG5k
ZXJ0ZW4gS8O8cnplbG4gd2VyZGVuIGFsbGUgdmVya27DvHBmdGVuIFBlcnNvbmVuIGF1dG9tYXRp
c2NoIGF1ZiBkYXMgbmV1ZSBLw7xyemVsIHVtZ2VzY2hyaWViZW4gKGtlaW4gRGF0ZW52ZXJsdXN0
KS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAg
IDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVs
bGUiIGlkPSJncnVwcGVuLXRhYmVsbGUiIHN0eWxlPSJtYXgtd2lkdGg6MTA0MHB4Ij4KICAgICAg
ICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRy
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6OTBweCI+
S8O8cnplbDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkJlemVpY2hu
dW5nPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRo
OjcwcHgiPkhpbnRlcmdydW5kPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
dGggc3R5bGU9IndpZHRoOjcwcHgiPlNjaHJpZnQ8L3RoPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6ODBweCI+Vm9yc2NoYXU8L3RoPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweCI+UGVyc29uZW48L3Ro
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTIwcHg7
dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJXZW5uIGRlYWt0aXZpZXJ0LCB3ZXJkZW4gUGVyc29u
ZW4gZGllc2VyIEdydXBwZSBOSUNIVCBpbiBkZXIgUGxhbnVuZ3NhbnNpY2h0LCBpbSBXb2NoZW5w
bGFuIHVuZCBpbSBQZXJzLiBQbGFuIGFuZ2V6ZWlndCDigJQgYmxlaWJlbiBhYmVyIGluIGRlciBQ
ZXJzb25hbHZlcndhbHR1bmcgcGZsZWdiYXIuIj5JbiBQbGFudW5nIHNpY2h0YmFyPC90aD4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjEzMHB4O3RleHQt
YWxpZ246Y2VudGVyIiB0aXRsZT0iV2VubiBha3RpdmllcnQsIGTDvHJmZW4gUGVyc29uZW4gZGll
c2VyIEdydXBwZSBpbSBQZXJzb25hbC1UYWIgYWxzIEFuc3ByZWNocGFydG5lciBtYXJraWVydCB3
ZXJkZW4gKGdpbHQgenVzw6R0emxpY2ggenVyIEZ1bmt0aW9ucy1CZWRpbmd1bmcpLiBNYXJraWVy
dGUgUGVyc29uZW4gZXJzY2hlaW5lbiBtaXQgTWFpbC1CdXR0b24gaW0gSW5mby1GZW5zdGVyLiI+
QW5zcHJlY2hwYXJ0bmVyIG3DtmdsaWNoPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8dGggc3R5bGU9IndpZHRoOjcwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJSZWlo
ZW5mb2xnZSBpbiBkZXIgUGxhbnVuZ3NhbnNpY2h0IMOkbmRlcm4iPlJlaWhlbmZvbGdlPC90aD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjYwcHgiPjwv
dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAg
ICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9ImdydXBwZW4t
dGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAg
ICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjE2cHg7ZGlzcGxheTpmbGV4O2dhcDoxMHB4
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWdydXBwZW4tbmV1IiBj
bGFzcz0iYnRuIGJ0bi1lcmZvbGciPk5ldWUgRGllbnN0Z3J1cHBlPC9idXR0b24+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1ncnVwcGVuLXNwZWljaGVybiIgY2xhc3M9
ImJ0biBidG4tcHJpbWFlciI+RGllbnN0Z3J1cHBlbiBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAg
ICAgIDwhLS0gVGFiOiBGZWllcnRhZ2UgJiBGZXJpZW4gKE1lcmdlIFBoYXNlIDEg4oCUIGJlaWRl
IEthbGVuZGVyLUJsb2NrZXIgYW4gZWluZW0gT3J0KSAtLT4KICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItZmVpZXJ0YWdlIj4KICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAg
ICAgICAgICAgPGgyPkthbGVuZGVyIOKAlCBGZWllcnRhZ2UgJmFtcDsgRmVyaWVuPC9oMj4KICAg
ICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPCEtLSBTdWItVGFi
LUxlaXN0ZTogdHJlbm50IGRpZSB6d2VpIGxvZ2lzY2ggZGlzanVua3RlbgogICAgICAgICAgICAg
ICAgICAgICAgICAgVGhlbWVuIHZpc3VlbGwuIERlZmF1bHQ6IEZlaWVydGFnZSBha3Rpdi4gLS0+
CiAgICAgICAgICAgICAgICAgICAgPG5hdiBjbGFzcz0iYWRtaW4tc3VibmF2IiBhcmlhLWxhYmVs
PSJLYWxlbmRlci1TdWItTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0
b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYWRtaW4tc3VibmF2LWJ0biBha3RpdiIgZGF0YS1zdWJ0
YWI9ImZlaWVydGFnZSI+RmVpZXJ0YWdlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg
IDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYWRtaW4tc3VibmF2LWJ0biIgZGF0YS1zdWJ0
YWI9ImZlcmllbiI+U2NodWxmZXJpZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L25h
dj4KCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFkbWluLXNla3Rpb24iIGlk
PSJhZG1pbi1zZWt0aW9uLWZlaWVydGFnZSIgZGF0YS1zdWJ0YWItc2VrdGlvbj0iZmVpZXJ0YWdl
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tc2VrdGlvbi1rb3Bm
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5GZWllcnRhZ2U8L2gzPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZlaWVydGFnLW5ldSIgY2xhc3M9
ImJ0biBidG4tZXJmb2xnIj5OZXVlciBGZWllcnRhZzwvYnV0dG9uPgogICAgICAgICAgICAgICAg
ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFk
bWluLWluZm8iIGRhdGEtaW5mby1rZXk9ImZlaWVydGFnZSIgb3Blbj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwv
c3Bhbj5IaW53ZWlzZSB6dSBGZWllcnRhZ2VuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2Ui
PkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcyBwYXNzaWVydCBtaXQgRmVpZXJ0YWdlbj88
L3N0cm9uZz4gQW4gYWt0aXZlbiBGZWllcnRhZ2VuIHdpcmQgZGllIGVudHNwcmVjaGVuZGUgRGF0
dW1zLVNwYWx0ZSBpbSBQbGFudW5nc3Jhc3RlciBmYXJibGljaCBoZXJ2b3JnZWhvYmVuIHVuZCBp
biBkZXIgQW5sYXNzLVplaWxlIG1pdCBkZXIgQmV6ZWljaG51bmcgZGVzIEZlaWVydGFncyB2ZXJz
ZWhlbi4gRGllIFN0YXRpc3Rpay1BdXN3ZXJ0dW5nIOKAnkZlaWVydGFncy1EaWVuc3RlIiBiZXLD
vGNrc2ljaHRpZ3QgbnVyIFRhZ2UgYXVzIGRpZXNlciBMaXN0ZSwgZGVyZW4gPGVtPkFrdGl2PC9l
bT4tSMOka2NoZW4gZ2VzZXR6dCBpc3QuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxwPjxzdHJvbmc+S2F0ZWdvcmllbjo8L3N0cm9uZz4gTmViZW4gZGVuIGdlc2V0emxpY2hl
biBGZWllcnRhZ2VuIChTdGFuZGFyZCwgTlJXKSBzaW5kIGrDvGRpc2NoZSwgbXVzbGltaXNjaGUg
dW5kIHTDvHJraXNjaGUgRmVpZXJ0YWdlIGFscyBEYXRlbmJhc2lzIGJlcmVpdHMgaGludGVybGVn
dCDigJQgZsO8ciAyMDI2IGJpcyAyMDM1LiBEaWVzZSBzaW5kIHBlciBEZWZhdWx0IGRlYWt0aXZp
ZXJ0OyBwZXIgPGVtPkFrdGl2PC9lbT4tSMOka2NoZW4gbGFzc2VuIHNpZSBzaWNoIGVpbnplbG4g
ZWluYmxlbmRlbi4gSmVkZSBLYXRlZ29yaWUgYmVrb21tdCBpbiBkZXIgQW5sYXNzLVplaWxlIGVp
bmUgZWlnZW5lIEZhcmJlIChnZXNldHpsaWNoID0gYmxhdSwgasO8ZGlzY2ggPSBsaWxhLCBtdXNs
aW1pc2NoID0gZ3LDvG4sIHTDvHJraXNjaCA9IHJvdCkuPC9wPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxwPjxzdHJvbmc+RmlsdGVyOjwvc3Ryb25nPiDDnGJlciBkZXIgVGFiZWxs
ZSBuYWNoIEthdGVnb3JpZSwgSmFociBvZGVyIOKAnm51ciBha3RpdmUiIGZpbHRlcm4g4oCUIGRp
ZSB2b2xsZSBMaXN0ZSB1bWZhc3N0IHJ1bmQgMzEyIEVpbnRyw6RnZS48L3A+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XaWNodGlnIChIZXJ2b3JoZWJ1bmcpOjwv
c3Ryb25nPiBEaWUgQ2hlY2tib3ggaW4gZGVyIFNwYWx0ZSDigJ5XaWNodGlnIiBtYXJraWVydCBi
ZXNvbmRlcnMgaGVydm9yenVoZWJlbmRlIEZlaWVydGFnZSAoei5CLiBIZWlsaWdhYmVuZCwgU2ls
dmVzdGVyLCBXZWlobmFjaHRlbikuIFNvbGNoZSBUYWdlIGJla29tbWVuIGltIFBsYW51bmdzLUhl
YWRlciBlaW5lIHZlcnN0w6Rya3RlIEVpbmbDpHJidW5nIChyb3QgbWl0IGdvbGRlbmVtIFJhaG1l
bikgdW5kIMO8YmVybGFnZXJuIGRpZSBLYXRlZ29yaWUtRmFyYmUuIERpZSBUYWJlbGxlbnplaWxl
IGltIEFkbWluIGVyaMOkbHQgZWluZSByw7Z0bGljaGUgVMO2bnVuZy48L3A+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XZWNoc2Vsd2lya3VuZyBtaXQgU29uZGVy
dGVybWluZTo8L3N0cm9uZz4gTGllZ3QgenVzw6R0emxpY2ggZWluIFNvbmRlcnRlcm1pbiBhbiBl
aW5lbSBGZWllcnRhZywgYmxlaWJ0IGRlciBGZWllcnRhZ3MtSGlud2VpcyBzaWNodGJhciwgZGll
IFplbGxlIGlzdCBhYmVyIGtsaWNrYmFyIHVuZCB6ZWlndCBIaW53ZWlzLVRleHQga29tYmluaWVy
dCBhbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg
ICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJm
ZWllcnRhZ2UtZmlsdGVyIiBjbGFzcz0iZmVpZXJ0YWdlLWZpbHRlciI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bGFiZWw+S2F0ZWdvcmllOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxzZWxlY3QgaWQ9ImZlaWVydGFnZS1maWx0ZXIta2F0ZWdvcmllIj4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYWxsZSI+QWxsZTwvb3B0
aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJn
ZXNldHpsaWNoIj5HZXNldHpsaWNoIChOUlcpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Imp1ZWRpc2NoIj5Kw7xkaXNjaDwvb3B0aW9u
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJtdXNs
aW1pc2NoIj5NdXNsaW1pc2NoPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxvcHRpb24gdmFsdWU9InR1ZXJraXNjaCI+VMO8cmtpc2NoPC9vcHRpb24+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkphaHI6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iZmVpZXJ0YWdlLWZp
bHRlci1qYWhyIj48L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9Im1hcmdpbi1sZWZ0OmF1
dG87ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweCI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZmVp
ZXJ0YWdlLWZpbHRlci1udXItYWt0aXYiPiBudXIgYWt0aXZlIHplaWdlbgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImZl
aWVydGFnZS10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD48dHI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxMzBweCI+
RGF0dW08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0ibWF4
LXdpZHRoOjI2MHB4Ij5CZXplaWNobnVuZzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo2MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0iUHJv
IEVpbnRyYWcgd8OkaGxiYXI7IGxlZXIgPSBLYXRlZ29yaWUtRGVmYXVsdCI+SWNvbjwvdGg+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxNzBweCI+S2F0
ZWdvcmllPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9Indp
ZHRoOjgwcHg7dGV4dC1hbGlnbjpjZW50ZXIiPkFrdGl2PC90aD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE0MHB4O3RleHQtYWxpZ246Y2VudGVyIj5X
aWNodGlnPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9Indp
ZHRoOjE2MHB4Ij5Ba3Rpb25lbjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Ry
PjwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9ImZlaWVydGFn
ZS10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZlaWVydGFnZS1zcGVpY2hlcm4iIGNs
YXNzPSJidG4gYnRuLXByaW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHgiPkZlaWVydGFnZSBz
cGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAg
ICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhZG1pbi1zZWt0aW9uIHZlcnN0ZWNrdCIgaWQ9
ImFkbWluLXNla3Rpb24tZmVyaWVuIiBkYXRhLXN1YnRhYi1zZWt0aW9uPSJmZXJpZW4iPgogICAg
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1zZWt0aW9uLWtvcGYiPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGgzPlNjaHVsZmVyaWVuPC9oMz4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1mZXJpZW4tbmV1IiBjbGFzcz0iYnRuIGJ0
bi1lcmZvbGciPk5ldWVyIEZlcmllbnplaXRyYXVtPC9idXR0b24+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRt
aW4taW5mbyIgZGF0YS1pbmZvLWtleT0iZmVyaWVuIiBvcGVuPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFu
PkhpbndlaXNlIHp1IEZlcmllbjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFw
cGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHA+PHN0cm9uZz5XYXJ1bSBGZXJpZW4gZXJmYXNzZW4/PC9zdHJvbmc+IE5SVy1T
Y2h1bGZlcmllbiB3ZXJkZW4gaW0gV29jaGVucGxhbiBtaXQgZGVtIFN5bWJvbCDwn4+W77iPIHVu
ZCBkZXIgQmV6ZWljaG51bmcgbWFya2llcnQ7IGluIGRlciBQbGFudW5nc2Fuc2ljaHQgbGVndCBz
aWNoIGVpbmUgZHVyY2hnZWhlbmRlIGdyw7xuZSBCYXIgw7xiZXIgZGVuIFplaXRyYXVtLiBEYXMg
aGlsZnQgYmVpIGRlciBVcmxhdWJzdmVyZ2FiZSB1bmQgQmVzZXR6dW5nc3BsYW51bmcsIGJlc29u
ZGVycyBiZWkgUGVyc29uYWwgbWl0IHNjaHVscGZsaWNodGlnZW4gS2luZGVybi48L3A+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5aZWl0cmF1bS1FaW50csOkZ2U6
PC9zdHJvbmc+IEZlcmllbiB3ZXJkZW4gbWl0IDxiPlZvbjwvYj4tIHVuZCA8Yj5CaXM8L2I+LURh
dHVtIGVyZmFzc3QgKGlua2x1c2l2ZSBiZWlkZXIgVGFnZSkuIEJlaXNwaWVsOiBPc3RlcmZlcmll
biAzMC4wMy7igJMxMS4wNC4gRGllIDxiPkJlemVpY2hudW5nPC9iPiB3aXJkIGltIFRvb2x0aXAg
dW5kIGluIGRlciBXb2NoZW5wbGFuLU1hcmtpZXJ1bmcgYW5nZXplaWd0LjwvcD4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlBmbGVnZTo8L3N0cm9uZz4gRWlubWFs
IHBybyBKYWhyIGFrdHVhbGlzaWVyZW4uIERpZSBvZmZpemllbGxlbiBOUlctRmVyaWVudGVybWlu
ZSBzaW5kIGJlaW0gU2NodWxtaW5pc3Rlcml1bSBOUlcgenUgZmluZGVuLiDDnGJlcmxhcHBlbmRl
IEVpbnRyw6RnZSB3ZXJkZW4gdm9tIFN5c3RlbSBha3plcHRpZXJ0OyBQcmlvcml0w6R0OiBGZWll
cnRhZyA+IEZlcmllbiA+IFdvY2hlbmVuZGUgPiBOb3JtYWwuPC9wPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAg
ICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBpZD0iZmVy
aWVuLXRhYmVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPjx0cj48dGg+
Vm9uPC90aD48dGg+QmlzPC90aD48dGg+QmV6ZWljaG51bmc8L3RoPjx0aCBzdHlsZT0id2lkdGg6
ODBweCI+QWt0aW9uZW48L3RoPjwvdHI+PC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx0Ym9keSBpZD0iZmVyaWVuLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAg
ICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZmVy
aWVuLXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgc3R5bGU9Im1hcmdpbi10b3A6
MTJweCI+RmVyaWVuIHNwZWljaGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvc2Vj
dGlvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICA8IS0tIFRhYjog
U29uZGVydGVybWluZSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2
ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc29uZGVydGVybWluZSI+CiAgICAgICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5T
b25kZXJ0ZXJtaW5lICZhbXA7IEhpbndlaXNlPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAg
PGJ1dHRvbiBpZD0iYnRuLXNvbmRlcnRlcm1pbi1uZXUiIGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+
TmV1ZXIgSGlud2VpczwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAg
ICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0i
c29uZGVydGVybWluZSIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNw
YW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IFNvbmRlcnRl
cm1pbmVuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBw
ZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJh
ZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5X
YXMgaXN0IGRhcz88L3N0cm9uZz4gU29uZGVydGVybWluZSBzaW5kIEhpbndlaXNlIG9kZXIgV2Fy
bnVuZ2VuLCBkaWUgYW4gZWluZW0gYmVzdGltbXRlbiBUYWcgKG9kZXIgWmVpdHJhdW0pIGbDvHIg
YWxsZSBOdXR6ZXIgc2ljaHRiYXIgd2VyZGVuIOKAlCB6LkIuIFZlcmFuc3RhbHR1bmdlbiwgZXJo
w7ZodGVyIFBlcnNvbmFsYmVkYXJmLCB3aWNodGlnZSBGcmlzdGVuLCBTcGVycnRlcm1pbmUsIEZl
aWVybiBvZGVyIEVyaW5uZXJ1bmdlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
cD48c3Ryb25nPldpZSBzZWhlbiBkaWUgTnV0emVyIGRhcz88L3N0cm9uZz48L3A+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGxpPjxiPkltIFBsYW51bmdzLUhlYWRlcjwvYj4gZXJzY2hlaW50IGluIGRlciBIaW53ZWlzLVpl
aWxlICh1bnRlciBkZW0gV29jaGVudGFnKSBkYXMgZ2V3w6RobHRlIEljb24gb2RlciBkZXIgRmFs
bGJhY2sgKDxjb2RlPuKEuTwvY29kZT4gZsO8ciBIaW53ZWlzLCA8Y29kZT4hISE8L2NvZGU+IGbD
vHIgV2FybnVuZykuIEhvdmVyIHplaWd0IGRlbiBUaXRlbCBhbHMgVG9vbHRpcC48L2xpPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5LbGljayBhdWYgZGllIFplbGxlPC9i
PiDDtmZmbmV0IGVpbiBBbnNpY2h0cy1Nb2RhbCBtaXQgSWNvbiwgVGl0ZWwsIGZvcm1hdGllcnRl
bSBUZXh0IHVuZCBEYXR1bS4gU3VwZXJVc2VyIGvDtm5uZW4gZGlyZWt0IGJlYXJiZWl0ZW4gb2Rl
ciBuZXVlIEhpbndlaXNlIGbDvHIgamVkZXMgRGF0dW0gYW5sZWdlbi48L2xpPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5CZWltIFBsYW5lbi9VbXBsYW5lbiBlaW5lciBT
Y2hpY2h0PC9iPiBhbiBlaW5lbSBUYWcgbWl0IEhpbndlaXMgZXJzY2hlaW50IOKAlCBqZSBuYWNo
IFdhcm5tb2R1cyDigJQgZWluIFdhcm4tTW9kYWwsIGRhcyB2b3IgZGVyIEVpbmdhYmUgYmVzdMOk
dGlndCB3ZXJkZW4gbXVzcy48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RmVsZGVyIGltIERldGFpbDo8
L3N0cm9uZz48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkRhdHVtIChWb24pPC9iPiDigJQgUGZsaWNodGZl
bGQuIFN0YXJ0IGRlcyBHw7xsdGlna2VpdHNiZXJlaWNocy48L2xpPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxsaT48Yj5EYXR1bSAoQmlzKTwvYj4g4oCUIG9wdGlvbmFsLiBMZWVy
IGxhc3NlbiA9IGdpbHQgbnVyIGbDvHIgZGVuIFN0YXJ0LVRhZy4gR2VzZXR6dCA9IFplaXRyYXVt
IChWb24gYmlzIEJpcyBpbmtsdXNpdmUpLiBKZWRlciBUYWcgaW0gWmVpdHJhdW0gemVpZ3QgZGVu
IEhpbndlaXMuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+VGl0
ZWw8L2I+IOKAlCBrdXJ6ZSBCZXplaWNobnVuZyAobWF4LiAxMDAgWmVpY2hlbiksIGVyc2NoZWlu
dCBpbSBUb29sdGlwIHVuZCBhbHMgw5xiZXJzY2hyaWZ0IGltIE1vZGFsLiBJc3Qga2VpbiBUaXRl
bCBnZXNldHp0LCB3aXJkIGRlciBBbmZhbmcgZGVzIFRleHRzIHZlcndlbmRldC48L2xpPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5UZXh0PC9iPiDigJQgYXVzZsO8aHJs
aWNoZXIgSW5oYWx0IG1pdCBtaW5pbWFsZW0gUmljaC1UZXh0LUVkaXRvci4gVW50ZXJzdMO8dHp0
IDxiPmZldHQ8L2I+LCA8aT5rdXJzaXY8L2k+LCA8dT51bnRlcnN0cmljaGVuPC91PiwgQXVmesOk
aGx1bmdlbiAo4oCiIC8gMS4pIHVuZCBFbnRmZXJuZW4gZGVyIEZvcm1hdGllcnVuZy4gRWluZsO8
Z2VuIGF1cyBhbmRlcmVuIFF1ZWxsZW4gKFdvcmQsIE1haWwpIGZ1bmt0aW9uaWVydCDigJQgRm9y
bWF0aWVydW5nIHdpcmQgYXVmIGRhcyBadWzDpHNzaWdlIGJlcmVpbmlndC48L2xpPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5JY29uPC9iPiDigJQgRW1vamkgYXVzIGRl
bSBQaWNrZXIgKDUgR3J1cHBlbikgb2RlciDigJ5rZWlucyIuIEVyc2V0enQgaW0gSGVhZGVyLUJh
ZGdlIGRhcyBnZW5lcmlzY2hlIFN5bWJvbC48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxsaT48Yj5UeXA8L2I+IOKAlCA8aT5IaW53ZWlzPC9pPiAobmV1dHJhbCwgYmxhdSkg
b2RlciA8aT5XYXJudW5nPC9pPiAocm90LW9yYW5nZSwgZsO8ciB3aWNodGlnZSBUaGVtZW4pLjwv
bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPldhcm5tb2R1czwvYj4g
4oCUIHN0ZXVlcnQsIHdhbm4gZGFzIFdhcm4tTW9kYWwgYmVpbSBQbGFuZW4gZXJzY2hlaW50Ogog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+SW1tZXI8L2I+IOKAlCBiZWkgamVkZXIgUGxh
bnVuZyBpbSBaZWl0cmF1bSBlcnNjaGVpbnQgZGFzIE1vZGFsIGVybmV1dC48L2xpPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkVpbm1hbGlnIHBybyBVc2Vy
PC9iPiDigJQgZXJzY2hlaW50IG51ciBiZWltIGVyc3RlbiBLbGljayBwcm8gTnV0emVyIHVuZCBU
ZXJtaW4gKFNwZWljaGVydW5nIGxva2FsIGltIEJyb3dzZXIsIHBybyBUZXJtaW4tSUQpLjwvbGk+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+QXVzPC9iPiDi
gJQgbnVyIGFscyBIZWFkZXItSWNvbiBzaWNodGJhciwga2VpbiBNb2RhbCBiZWltIFBsYW5lbi48
L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXBwOjwvc3Ryb25n
PiBGw7xyIHdpZWRlcmtlaHJlbmRlIEdyb8OfdmVyYW5zdGFsdHVuZ2VuIGVpbmZhY2ggbWl0IFpl
aXRyYXVtIGFubGVnZW4gKHouQi4gS2FybmV2YWxzd29jaGUgTW9udGFn4oCTRnJlaXRhZykuIERl
ciBIaW53ZWlzIGVyc2NoZWludCBkYW5uIGF1ZiBhbGxlbiBUYWdlbjsgZGFzIFdhcm4tTW9kYWwg
ZXJzY2hlaW50IGltIE1vZHVzIOKAnkVpbm1hbGlnIiBudXIgZWlubWFsIHBybyBOdXR6ZXIgdW5k
IFRlcm1pbiwgbmljaHQgZsO8ciBqZWRlbiBUYWcgbmV1LjwvcD4KICAgICAgICAgICAgICAgICAg
ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgoKICAgICAgICAgICAg
ICAgICAgICA8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUiIGlkPSJzb25kZXJ0ZXJtaW5lLXRh
YmVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+PHRyPjx0aCBzdHlsZT0id2lk
dGg6NTJweCI+SWNvbjwvdGg+PHRoIHN0eWxlPSJ3aWR0aDoxODBweCI+RGF0dW0gLyBaZWl0cmF1
bTwvdGg+PHRoPlRpdGVsPC90aD48dGggc3R5bGU9IndpZHRoOjExMHB4Ij5UeXA8L3RoPjx0aCBz
dHlsZT0id2lkdGg6MTYwcHgiPldhcm5tb2R1czwvdGg+PHRoIHN0eWxlPSJ3aWR0aDoxNzBweCI+
QWt0aW9uZW48L3RoPjwvdHI+PC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5
IGlkPSJzb25kZXJ0ZXJtaW5lLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwv
dGFibGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0tIFRhYjog
U2NoaWNodGNvZGVzICYgRmFyYmNvZGllcnVuZyAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc2NoaWNodGNvZGVzIj4KICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAg
ICAgICAgICAgPGgyPlNjaGljaHRjb2RlcyAmYW1wOyBGYXJiY29kaWVydW5nPC9oMj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNjaGljaHRjb2RlLW5ldSIgY2xhc3M9
ImJ0biBidG4tZXJmb2xnIj5OZXVlciBTY2hpY2h0Y29kZTwvYnV0dG9uPgogICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1p
bmZvIiBkYXRhLWluZm8ta2V5PSJzY2hpY2h0Y29kZXMiIG9wZW4+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5I
aW53ZWlzZSB6dSBTY2hpY2h0Y29kZXMgJmFtcDsgRmFyYmNvZGllcnVuZzxzcGFuIGNsYXNzPSJh
ZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4K
ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FzIGlzdCBlaW4gU2NoaWNodGNv
ZGU/PC9zdHJvbmc+IEVpbiBTY2hpY2h0Y29kZSBpc3QgZWluIEvDvHJ6ZWwsIGRhcyBlaW5lbiBi
ZXN0aW1tdGVuIERpZW5zdCwgZWluZSBBYndlc2VuaGVpdCBvZGVyIGVpbmVuIGJlc29uZGVyZW4g
U3RhdHVzIGVpbmVzIE1pdGFyYmVpdGVycyBhbiBlaW5lbSBUYWcgYmVzY2hyZWlidC4gSmVkZXIg
Q29kZSBoYXQgZWluZSA8Yj5GYXJiY29kaWVydW5nPC9iPiAoSGludGVyZ3J1bmQgKyBTY2hyaWZ0
ZmFyYmUpLCBkaWUgaW0gUGxhbnVuZ3NyYXN0ZXIgZGlyZWt0IGFibGVzYmFyIGlzdC48L3A+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlNwYWx0ZW4gaW4gZGVyIMOcYmVy
c2ljaHQ6PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5GYXJiZmVsZDwvYj4g4oCUIFZvcnNj
aGF1IGRlciBoaW50ZXJsZWd0ZW4gSGludGVyZ3J1bmRmYXJiZS48L2xpPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Db2RlPC9iPiDigJQgZGVyIHRlY2huaXNjaGUgU2No
bMO8c3NlbCBpbiBkZXIgRGF0ZW5oYWx0dW5nICh6LkIuIDxjb2RlPkYtREdMPC9jb2RlPiwgPGNv
ZGU+a3I8L2NvZGU+LCA8Y29kZT5Vcmw8L2NvZGU+KS48L2xpPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT48Yj5Lw7xyemVsPC9iPiDigJQgZGllIEt1cnpmb3JtLCBkaWUgaW0g
UGxhbnVuZ3NyYXN0ZXIgaW4gZGVyIFplbGxlIGFuZ2V6ZWlndCB3aXJkICh6LkIuIDxjb2RlPkY8
L2NvZGU+LCA8Y29kZT5rcjwvY29kZT4pLiBLYW5uIG1pdCBkZW0gQ29kZSBpZGVudGlzY2ggc2Vp
bi48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5CZXplaWNobnVu
ZzwvYj4g4oCUIGRlciBMYW5nbmFtZSB6dXIgRXJsw6R1dGVydW5nICh6LkIuIOKAnkZyw7xoZGll
bnN0IERHTCIpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5HcnVwcGllcnVuZzo8L3N0cm9uZz4gTWl0
IGRlbSBBdXN3YWhsbWVuw7wgb2JlbiBrYW5uc3QgZHUgendpc2NoZW4gdmVyc2NoaWVkZW5lbiBE
YXJzdGVsbHVuZ2VuIHdlY2hzZWxuOjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1
bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+TmFjaCBTY2hpY2h0dHlw
PC9iPiAoU3RhbmRhcmQpIOKAlCDDvGJlcnNpY2h0bGljaCBncnVwcGllcnQgbmFjaCBGcsO8aC0v
U3DDpHQtL05hY2h0ZGllbnN0LCBGcmVpLCBVcmxhdWIsIEtyYW5raGVpdC9BdXNmYWxsLCBGb3J0
YmlsZHVuZywgRGllbnN0ZS9FaW5zw6R0emUsIFNvbmRlcmZvcm1lbi4gRGllIFp1b3JkbnVuZyBl
cmZvbGd0IGF1dG9tYXRpc2NoIGFuaGFuZCBkZXMgQ29kZS1NdXN0ZXJzLjwvbGk+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkFscGhhYmV0aXNjaCAoQ29kZSk8L2I+IOKA
lCBhbGxlIENvZGVzIGluIGVpbmVyIExpc3RlIG5hY2ggS8O8cnplbCBzb3J0aWVydC48L2xpPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5BbHBoYWJldGlzY2ggKEJlemVp
Y2hudW5nKTwvYj4g4oCUIGFsbGUgQ29kZXMgbmFjaCBMYW5nbmFtZSBzb3J0aWVydCAoaGlsZnJl
aWNoIHdlbm4gbWFuIG51ciBkZW4gTmFtZW4gZXJpbm5lcnQsIG5pY2h0IGRhcyBLw7xyemVsKS48
L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5LZWluZSBHcnVwcGll
cnVuZzwvYj4g4oCUIHVuc29ydGllcnRlIE9yaWdpbmFscmVpaGVuZm9sZ2Ugd2llIGluIGRlciBE
YXRlaS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+UGZsZWdlIGltIFVJOjwvc3Ryb25nPiBNaXQgPGI+
4oCeTmV1ZXIgU2NoaWNodGNvZGUiPC9iPiBsZWdzdCBkdSBlaW5lbiBuZXVlbiBDb2RlIGFuLiBB
dWYgamVkZSBLYXJ0ZSBrbGlja3N0IGR1IGRhcyA8Yj5CZWFyYmVpdGVuLVN5bWJvbCAo4pyOKTwv
Yj4sIHVtIEvDvHJ6ZWwsIEJlemVpY2hudW5nLCBIaW50ZXJncnVuZC0gdW5kIFNjaHJpZnRmYXJi
ZSB6dSDDpG5kZXJuLiBFaW5lIExpdmUtVm9yc2NoYXUgemVpZ3QgZGlyZWt0IGRhcyBFcmdlYm5p
cy4gR2Vsw7ZzY2h0IHdpcmQgw7xiZXIgZGVuIEzDtnNjaGVuLUJ1dHRvbiBpbSBFZGl0LURpYWxv
ZyDigJQgYmVzdGVoZW5kZSBFaW50csOkZ2UgaW4gZGVyIFBsYW51bmcgbWl0IGRpZXNlbSBDb2Rl
IGJsZWliZW4gZXJoYWx0ZW4sIHdlcmRlbiBhYmVyIG9obmUgRmFyYmUgZGFyZ2VzdGVsbHQuPC9w
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Db2RlIC8gdGVjaG5pc2No
ZXIgU2NobMO8c3NlbDo8L3N0cm9uZz4gRGVyIENvZGUgaXN0IGRlciBJZGVudGlmaWVyIGluIGRl
ciBEYXRlbmhhbHR1bmcgdW5kIG1pdCBhbGxlbiBQbGFudW5ncy1FaW50csOkZ2VuIHZlcmtuw7xw
ZnQuIEJlaW0gTmV1YW5sZWdlbiBmcmVpIHfDpGhsYmFyLCBiZWltIHNww6R0ZXJlbiBCZWFyYmVp
dGVuIHNjaHJlaWJnZXNjaMO8dHp0IOKAlCBlaW5lIMOEbmRlcnVuZyB3w7xyZGUgYWxsZSBiZXN0
ZWhlbmRlbiBFaW50csOkZ2UgaW5rb25zaXN0ZW50IG1hY2hlbi4gV2VubiBkZXIgQ29kZSB1bWJl
bmFubnQgd2VyZGVuIG11c3M6IG5ldSBhbmxlZ2VuLCBhbHRlIEVpbnRyw6RnZSBtYW51ZWxsIMOk
bmRlcm4sIGFsdGVuIENvZGUgbMO2c2NoZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHA+PHN0cm9uZz5UaXBwOjwvc3Ryb25nPiBGYXJiZmFtaWxpZW4ga29uc2lzdGVudCBlaW5z
ZXR6ZW46IHJvdCA9IEZyw7xoZGllbnN0LCBibGF1ID0gU3DDpHRkaWVuc3QsIGdyw7xuID0gTmFj
aHRkaWVuc3QsIGdyYXUgPSBGcmVpL0hPLCByb3PDqSA9IEtyYW5raGVpdCwgbGlsYSA9IExlaHJn
YW5nLiBTbyBlcmtlbm50IGRhcyBBdWdlIG9obmUgTGVzZW4gZGllIFNjaGljaHQuPC9wPgogICAg
ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+
CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2NoaWNodGNvZGUtdm9yc2NoYXUiPjwvZGl2
PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IE1pa3Jv
dGVhbXMg4oCUIFBlcnNvbmVuLUdydXBwZW4gcHJvIFN0YW5kb3J0K0RpZW5zdGdydXBwZSAtLT4K
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1p
bi10YWItbWlrcm90ZWFtcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4t
a29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5NaWtyb3RlYW1zPC9oMj4KICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0i
YWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0ibWlrcm90ZWFtcyI+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5X
b3p1IE1pa3JvdGVhbXM/PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4g
LyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+
PHN0cm9uZz5XYXMgc2luZCBNaWtyb3RlYW1zPzwvc3Ryb25nPiBFaW5lIE1pa3JvdGVhbS1EZWZp
bml0aW9uIGZhc3N0IGRpZSBQZXJzb25lbiB6dXNhbW1lbiwgZGllIGFuIGVpbmVtIFN0YW5kb3J0
IGdlbWVpbnNhbSBlaW5lIERpZW5zdGdydXBwZSBiaWxkZW4gKHouQi4g4oCeS2FtZW4tQSIgPSBk
aWUgREdMLVZlcmFudHdvcnRsaWNoZW4gZGVyIEdydXBwZSBBIGFtIFN0YW5kb3J0IEthbWVuKS4g
RGllIFN0YXRpc3RpayAoSGVhdG1hcCArIFRhZ2VzLUFudGVpbGUgcHJvIFRlYW0pIHdlcnRldCBk
YW1pdCBhdXMsIHdpZSBvZnQgZGllIGVpbnplbG5lbiBUZWFtcyBnZW1laW5zYW0gaW0gRGllbnN0
IHNpbmQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5QZmxlZ2U6
PC9zdHJvbmc+IFBybyBFaW50cmFnIE5hbWUsIFN0YW5kb3J0LUvDvHJ6ZWwgKDIgQnVjaHN0YWJl
biBhdXMgZGVyIFN0YW5kb3J0ZS1MaXN0ZSwgei5CLiBLQS9IQS9CTyksIERpZW5zdGdydXBwZW4t
S8O8cnplbCAoQS9CL0MvV0QpIHVuZCBkaWUgenVnZXdpZXNlbmVuIFBlcnNvbmVuLiBSZWloZW5m
b2xnZSBpbiBkZXIgVGFiZWxsZSB3aXJrdCBzaWNoIGF1ZiBkaWUgU3RhdGlzdGlrLURhcnN0ZWxs
dW5nIGF1cy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkRlZmF1
bHQtUmVpaGVuZm9sZ2UgbmFjaCBTdGFuZG9ydDo8L3N0cm9uZz4gSGF1cHR3YWNoZW4gb2JlbiAo
S0EsIEhBKSwgZGFubiBkaWUgYW5kZXJlbi4gRGllIElEIGlzdCB0ZWNobmlzY2ggdW5kIHNvbGx0
ZSBzcHJlY2hlbmQgYmxlaWJlbiAoei5CLiA8Y29kZT50X0tBX0E8L2NvZGU+KS48L3A+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4K
CiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFkbWluLXNla3Rpb24iIGlkPSJh
ZG1pbi1zZWt0aW9uLW1pa3JvdGVhbXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJhZG1pbi1zZWt0aW9uLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgz
Pk1pa3JvdGVhbS1MaXN0ZTwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9u
IGlkPSJidG4tbWlrcm90ZWFtLW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlcyBNaWty
b3RlYW08L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9Im1pa3JvdGVhbXMt
dGFiZWxsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8dGggc3R5bGU9IndpZHRoOjUwcHgiPlBvczwvdGg+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTMwcHgiPklEPC90aD4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk5hbWU8L3RoPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHgiIHRpdGxlPSJTdGFuZG9y
dC1Lw7xyemVsIGF1cyBkZXIgU3RhbmRvcnRlLUxpc3RlIChLQS9IQS9CTy8uLi4pIj5TdGFuZG9y
dDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lk
dGg6OTBweCIgdGl0bGU9IkRpZW5zdGdydXBwZW4tS8O8cnplbCAoQS9CL0MvV0QvLi4uKSI+R3J1
cHBlPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3
aWR0aDo5MHB4IiB0aXRsZT0iQW56YWhsIHp1Z2V3aWVzZW5lIFBlcnNvbmVuIj5QZXJzb25lbjwv
dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6
MjAwcHgiPkFrdGlvbmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Ry
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx0Ym9keSBpZD0ibWlrcm90ZWFtcy10Ym9keSI+PC90Ym9keT4KICAgICAgICAg
ICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBp
ZD0iYnRuLW1pa3JvdGVhbXMtc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBzdHls
ZT0ibWFyZ2luLXRvcDoxMnB4Ij5NaWtyb3RlYW1zIHNwZWljaGVybjwvYnV0dG9uPgogICAgICAg
ICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAg
ICAgICAgIDwhLS0gVGFiOiBTdGFuZG9ydGUgJiBTY2hpY2h0Zm9sZ2UgLS0+CiAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLXN0YW5k
b3J0ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxoMj5TdGFuZG9ydGUgJmFtcDsgU2NoaWNodGZvbGdlPC9oMj4K
ICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXN0YW5kb3J0LW5ldSIgY2xh
c3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlciBTdGFuZG9ydDwvYnV0dG9uPgogICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1p
bmZvIiBkYXRhLWluZm8ta2V5PSJzdGFuZG9ydGUiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53
ZWlzZSB6dSBTdGFuZG9ydGVuICZhbXA7IFNjaGljaHRmb2xnZTxzcGFuIGNsYXNzPSJhZG1pbi1p
bmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+U3RhbmRvcnRlPC9zdHJvbmc+IHNpbmQgZGll
IEFyYmVpdHNvcnRlIGRlciBWSTMgKEFybnNiZXJnLCBCb2NodW0sIERvcnRtdW5kIOKApikuIEpl
ZGVyIFN0YW5kb3J0IGhhdCBlaW5lIGVpZ2VuZSBTY2hpY2h0cm90YXRpb24gZsO8ciBkaWUgRGll
bnN0Z3J1cHBlbiBBL0IvQywgZGllIGltIEhlYWRlciBkZXIgUGxhbnVuZyBhbHMg4oCeU2NoaWNo
dGZvbGdlIi1aZWlsZSBhbmdlemVpZ3Qgd2lyZCAoc29mZXJuIGRpZSBBbnplaWdlIGltIFRhYiA8
Yj5GdW5rdGlvbmVuPC9iPiBha3RpdmllcnQgaXN0KS48L3A+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8cD48c3Ryb25nPlJvdGF0aW9ucy1NdXN0ZXI6PC9zdHJvbmc+PC9wPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT48Yj5BQkM8L2I+ID0gQS1GcsO8aCAvIEItU3DDpHQgLyBDLU5hY2h0PC9saT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+QkNBPC9iPiA9IEItRnLDvGggLyBDLVNw
w6R0IC8gQS1OYWNodDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxi
PkNBQjwvYj4gPSBDLUZyw7xoIC8gQS1TcMOkdCAvIEItTmFjaHQ8L2xpPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Qb29sPC9iPiA9IGluZGl2aWR1ZWxsZSBFaW50ZWls
dW5nLCBrZWluZSBmZXN0ZSBSb3RhdGlvbiAoZsO8ciBmbGV4aWJsZSBFaW5zYXR6cG9vbHMpPC9s
aT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8cD48c3Ryb25nPlJoeXRobXVzIHBmbGVnZW46PC9zdHJvbmc+IERlciBrb25rcmV0
ZSBaeWtsdXMgKHouQi4gd8O2Y2hlbnRsaWNoIHdlY2hzZWxuZCBvZGVyIDMtVGFnZS1SaHl0aG11
cykgd2lyZCDDvGJlciBkZW4gUmh5dGhtdXMtR2VuZXJhdG9yIHBybyBTdGFuZG9ydCBlaW5nZXN0
ZWxsdC4gRGVyIEdlbmVyYXRvciBzY2hyZWlidCBmw7xyIGplZGVzIERhdHVtIGVpbmUgU2NoaWNo
dGZvbGdlIGluIGRpZSBKU09OIOKAlCBkaWUgQW56ZWlnZSBpbSBIZWFkZXIgemllaHQgZGFubiBm
w7xyIGplZGVuIFRhZyBkZW4gaGludGVybGVndGVuIFdlcnQuPC9wPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHA+PHN0cm9uZz5TcGFsdGVuOjwvc3Ryb25nPjwvcD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+
PGI+TmFtZTwvYj4g4oCUIHZvbGxlciBTdGFuZG9ydC1OYW1lICh6LkIuIOKAnkFybnNiZXJnIiku
PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+S8O8cnplbDwvYj4g
4oCUIEt1cnpmb3JtIGbDvHIgZGllIE9FLVp1b3JkbnVuZyBpbiBkZXIgUGVyc29uYWwtTGlzdGUg
KHouQi4g4oCeQVIiKS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48
Yj5Qb29sPC9iPiDigJQgQ2hlY2tib3g7IHNjaGFsdGV0IGRpZSBmZXN0ZSBSb3RhdGlvbiBhdXMu
PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+U2NoaWNodGZvbGdl
ICgxNCBUYWdlKTwvYj4g4oCUIFZvcnNjaGF1IGRlciBuw6RjaHN0ZW4gMTQgVGFnZSwgZmFyYmxp
Y2ggY29kaWVydC48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5B
a3Rpb25lbjwvYj4g4oCUIFJoeXRobXVzLUdlbmVyYXRvciDDtmZmbmVuIG9kZXIgU3RhbmRvcnQg
bMO2c2NoZW4uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERpZSBSZWlo
ZW5mb2xnZSBkZXIgU3RhbmRvcnRlIGluIGRlciBUYWJlbGxlIGJlc3RpbW10IGF1Y2ggZGllIFJl
aWhlbmZvbGdlIGRlciBaZWlsZW4gaW0gSGVhZGVyIChvYmVuID0gZXJzdGUgWmVpbGUpLjwvcD4K
ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRh
aWxzPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9
InN0YW5kb3J0ZS10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx0aD5OYW1lPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5
bGU9IndpZHRoOjYwcHgiPkvDvHJ6ZWw8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweCI+UG9vbDwvdGg+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHRoPlNjaGljaHRmb2xnZSAoZXJzdGUgMTQgVGFnZSBhYiBoZXV0ZSk8L3Ro
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTYwcHgi
PkFrdGlvbmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBp
ZD0ic3RhbmRvcnRlLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+
CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXN0YW5kb3J0ZS1zcGVpY2hlcm4i
IGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjE2cHgiPlN0YW5kb3J0
ZSBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAg
ICAgIDwhLS0gVGFiOiBFcnNjaGVpbnVuZ3NiaWxkIOKAlCBNYXJraWVydW5ncy1FZGl0b3IgbWl0
IExpdmUtVm9yc2NoYXUgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIg
dmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWVyc2NoZWludW5nc2JpbGQiPgogICAgICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8
aDI+RXJzY2hlaW51bmdzYmlsZDwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxl
PSJtYXJnaW46NnB4IDAgMCAwO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQp
Ij5WaXN1ZWxsZSBNYXJraWVydW5nZW4gaW0gUGxhbnRhZmVsLUtvcGYgdW5kIGJlaW0gTGl2ZS1T
eW5jIGluZGl2aWR1ZWxsIGFucGFzc2VuLiDDhG5kZXJ1bmdlbiBzaW5kIHNvZm9ydCBzaWNodGJh
cjsgc2llIHdlcmRlbiBlcnN0IGJlaW0gS2xpY2sgYXVmIOKAnlNwZWljaGVybiIgcGVyc2lzdGll
cnQuPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxk
aXYgaWQ9ImVyc2NoZWludW5nc2JpbGQtaW5oYWx0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwv
ZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBTdGF0aXN0aWstTGF5b3V0IChTVS1vbmx5
KSDigJQgUmVpaGVuZm9sZ2UvQnJlaXRlL1NpY2h0YmFya2VpdAogICAgICAgICAgICAgICAgICAg
ICBhbGxlciBTdGF0aXN0aWstS2FjaGVsbiBpbSB2aXN1ZWxsZW4gNi1TcGFsdGVuLVJhc3Rlci4g
LS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0i
YWRtaW4tdGFiLXN0YXRpc3Rpay1sYXlvdXQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+U3RhdGlzdGlrLUxh
eW91dDwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46NnB4IDAg
MCAwO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpIj5CcmVpdGUgKDE6MSB2
b2xsIMK3IDE6MiBoYWxiIMK3IDE6MyBkcml0dGVsKSB1bmQgUmVpaGVuZm9sZ2UgZGVyIFN0YXRp
c3Rpay1LYWNoZWxuIGbDvHIgPHN0cm9uZz5hbGxlPC9zdHJvbmc+IGZlc3RsZWdlbi4gS2xpY2sg
YXVmIGVpbmUgS2FjaGVsIHdlY2hzZWx0IGRpZSBCcmVpdGUsIFppZWhlbiDDpG5kZXJ0IGRpZSBS
ZWloZW5mb2xnZSwgZGFzIEF1Z2Ugc2NoYWx0ZXQgc2llIHNpY2h0YmFyL3Vuc2ljaHRiYXIuIFNj
aHdlcmUgUGFuZWxzIChIZWF0bWFwcywgRGV0YWlsYW5hbHlzZSkgYmxlaWJlbiBhdWYgdm9sbGVy
IEJyZWl0ZS48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg
ICAgPGRpdiBpZD0ic3RhdGlzdGlrLWxheW91dC1pbmhhbHQiPjwvZGl2PgogICAgICAgICAgICAg
ICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IFN0YXRpc3Rpay1CdWlsZGVyIOKA
lCBtZWhyZGltZW5zaW9uYWxlciBOb0NvZGUtWnVzYW1tZW5iYXUKICAgICAgICAgICAgICAgICAg
ICAgZWlnZW5lciBBdXN3ZXJ0dW5nZW4gKEZpbHRlciAtPiBEaW1lbnNpb25lbiAtPiBLZW5uemFo
bCAtPgogICAgICAgICAgICAgICAgICAgICBEaWFncmFtbXR5cCkgbWl0IExpdmUtRmx1c3NkaWFn
cmFtbSwgVGVzdGVuLVZvcnNjaGF1IHVuZAogICAgICAgICAgICAgICAgICAgICBTcGVpY2hlcm4g
YWxzIEthY2hlbC4gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVy
c3RlY2t0IiBpZD0iYWRtaW4tdGFiLXN0YXRpc3Rpay1idWlsZGVyIj4KICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgy
PlN0YXRpc3Rpay1CdWlsZGVyPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9
Im1hcmdpbjo2cHggMCAwIDA7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCki
PkVpZ2VuZSBBdXN3ZXJ0dW5nZW4genVzYW1tZW5rbGlja2VuOiBEYXRlbiBmaWx0ZXJuLCBEaW1l
bnNpb25lbiB3w6RobGVuLCBLZW5uemFobCArIERpYWdyYW1tdHlwIGJlc3RpbW1lbi4gRGFzIEZs
dXNzZGlhZ3JhbW0gemVpZ3QgZGllIExvZ2lrIGxpdmUsIOKAnlRlc3RlbiIgYmF1dCBkaWUgU3Rh
dGlzdGlrIHNvZm9ydC4g4oCeQWxzIEthY2hlbCBzcGVpY2hlcm4iIG1hY2h0IHNpZSBmw7xyIGFs
bGUgaW0gU3RhdGlzdGlrLVRhYiBzaWNodGJhciAoQW5vcmRudW5nIGltIFN0YXRpc3Rpay1MYXlv
dXQpLjwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8
ZGl2IGlkPSJzdGF0aXN0aWstYnVpbGRlci1pbmhhbHQiPjwvZGl2PgogICAgICAgICAgICAgICAg
PC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEtvbmZpZ3VyYXRpb24gKyBGdW5rdGlv
bmVuIChwZXIgU3ViLU5hdiB1bXNjaGFsdGJhcikgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWVpbnN0ZWxsdW5nZW4iPgog
ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAg
ICAgICAgICAgICA8aDI+S29uZmlndXJhdGlvbiAmYW1wOyBGdW5rdGlvbmVuPC9oMj4KICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPG5hdiBjbGFzcz0iYWRt
aW4tc3VibmF2IiBhcmlhLWxhYmVsPSJTeXN0ZW0tS29uZmlndXJhdGlvbi1TdWItTmF2aWdhdGlv
biI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0i
YWRtaW4tc3VibmF2LWJ0biBha3RpdiIgZGF0YS1zdWJ0YWI9ImVpbnN0ZWxsdW5nZW4iPkdsb2Jh
bGUgRWluc3RlbGx1bmdlbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9u
IHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImFkbWluLXN1Ym5hdi1idG4iIGRhdGEtc3VidGFiPSJmZWF0
dXJlcyI+RnVua3Rpb25lbiBlaW4tL2F1c2JsZW5kZW48L2J1dHRvbj4KICAgICAgICAgICAgICAg
ICAgICA8L25hdj4KCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFkbWluLXNl
a3Rpb24iIGlkPSJhZG1pbi1zZWt0aW9uLWVpbnN0ZWxsdW5nZW4iIGRhdGEtc3VidGFiLXNla3Rp
b249ImVpbnN0ZWxsdW5nZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJh
ZG1pbi1zZWt0aW9uLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkdsb2Jh
bGUgRWluc3RlbGx1bmdlbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZv
LWtleT0iZWluc3RlbGx1bmdlbiIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxz
dW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6
dSBkZW4gZ2xvYmFsZW4gRWluc3RlbGx1bmdlbjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdl
Ij5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5QbGFudW5nc2phaHI6PC9zdHJvbmc+IERhcyBK
YWhyLCBmw7xyIGRhcyBkaWUgUGxhbnVuZyBha3R1ZWxsIGdlcGZsZWd0IHdpcmQuIEJlZWluZmx1
c3N0IGRpZSBHZWJ1cnRzdGFnLUFuemVpZ2UgKHJlY2huZXQgQWx0ZXIgYmFzaWVyZW5kIGF1ZiBk
aWVzZW0gSmFocikgdW5kIGRpZSBWb3JzY2hsw6RnZSBiZWltIEFubGVnZW4gdm9uIEZlaWVydGFn
ZW4vRmVyaWVuLiBadW0gSmFocmVzd2VjaHNlbCBoaWVyIGFrdHVhbGlzaWVyZW4uPC9wPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+SW5mb3RleHQ6PC9zdHJvbmc+
IEt1cnplciBIaW53ZWlzdGV4dCAoei5CLiDigJ5SZWloZW5mb2xnZSBhdWYgV3Vuc2NoIGRlciBG
w7xzdCBhbmdlcGFzc3QuIC9XaXQiKSwgZGVyIGltIEluZm9ybWF0aW9uc2ZlbnN0ZXIgb2JlbiBw
cm9taW5lbnQgZXJzY2hlaW50LiBHdXQgZ2VlaWduZXQgZsO8ciBrdXJ6ZSDigJ5CcmVha2luZyBO
ZXdzIiBhbiBkaWUgTnV0emVyLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
cD48c3Ryb25nPlN1cHBvcnRpbmZvOjwvc3Ryb25nPiBBbnNwcmVjaHBhcnRuZXIgYmVpIGZhY2hs
aWNoZW4gb2RlciB0ZWNobmlzY2hlbiBGcmFnZW4uIEVyc2NoZWludCBpbSBJbmZvcm1hdGlvbnNm
ZW5zdGVyIGRhcnVudGVyLiBIaWVyIFRlbGVmb25udW1tZXJuLCBNYWlsYWRyZXNzZW4gdW5kIGRp
ZSBmYWNobGljaGUgVmVyYW50d29ydHVuZyBhbmdlYmVuLjwvcD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8cD48c3Ryb25nPlNjaGxpZcOfaW5mbzo8L3N0cm9uZz4gSGlud2VpcyB6
dW0gQXV0by1TaHV0ZG93bi1WZXJoYWx0ZW4sIGRlciBpbSBJbmZvcm1hdGlvbnNmZW5zdGVyIGFu
Z2V6ZWlndCB3aXJkLiBQbGF0emhhbHRlciA8Y29kZT57bWludXRlbn08L2NvZGU+IHdpcmQgYXV0
b21hdGlzY2ggZXJzZXR6dC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+
PHN0cm9uZz5TcGVpY2hlcm46PC9zdHJvbmc+IMOEbmRlcnVuZ2VuIHdlcmRlbiBudXIgZHVyY2gg
ZGVuIFNwZWljaGVybi1CdXR0b24gw7xiZXJub21tZW4uIEVpbiBSZWxvYWQgZGVyIFNlaXRlIGlz
dCBkYW5hY2ggbmljaHQgbsO2dGlnLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImVpbnN0ZWxsdW5nZW4tZm9ybSI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGxhYmVsIGZvcj0iZWlucy1qYWhyIj5QbGFudW5nc2phaHI8L2xhYmVsPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtn
YXA6MTJweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXAiPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZWlucy1qYWhy
IiBjbGFzcz0iZm9ybS1pbnB1dCIgbWluPSIyMDIwIiBtYXg9IjIwOTkiIHN0eWxlPSJ3aWR0aDox
MjBweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0
bi1qYWhyZXN3ZWNoc2VsIiBjbGFzcz0iYnRuIGJ0bi1zZWsiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9
IldlY2hzZWx0IGRhcyBQbGFudW5nc2phaHIgYXVmIGRhcyBsaW5rcyBlaW5nZXN0ZWxsdGUgSmFo
ciDigJQgdm9yIG9kZXIgenVyw7xjay4gQmVzdMOkdGlndW5nICsgUmVsb2FkLCBrZWluIERhdGVu
dmVybHVzdC4iPkF1ZiBlaW5nZXN0ZWxsdGVzIEphaHIgd2VjaHNlbG48L2J1dHRvbj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRl
ZCk7bWFyZ2luLXRvcDo2cHgiPkdld8O8bnNjaHRlcyBKYWhyIGxpbmtzIGVpbnN0ZWxsZW4gdW5k
IGF1ZiDigJ5BdWYgZWluZ2VzdGVsbHRlcyBKYWhyIHdlY2hzZWxuIiBrbGlja2VuIOKAlCBkaWUg
QW5zaWNodCBzcHJpbmd0IGF1ZiBkYXMgZ2V3w6RobHRlIEphaHIgKDxiPnZvciBvZGVyIHp1csO8
Y2s8L2I+KSB1bmQgd2lyZCBuZXUgZ2VsYWRlbi4gRGFzIGJsb8OfZSDDhG5kZXJuIGRlcyBGZWxk
ZXMgc3BlaWNoZXJ0IG5vY2ggbmljaHRzOyBlcnN0IGRlciBCdXR0b24gd2VjaHNlbHQuIERpZSBQ
bGFudW5nc2Fuc2ljaHQgemVpZ3QgenVzw6R0emxpY2ggZGVuIEphbnVhciBkZXMgRm9sZ2VqYWhy
ZXMgYWxzIFZvcnBsYW51bmdzYmVyZWljaDsgYmVyZWl0cyBkb3J0IGdlcGxhbnRlIERpZW5zdGUg
YmxlaWJlbiB1bnRlciBpaHJlbSBEYXR1bSBlcmhhbHRlbi4gS2VpbiBEYXRlbnZlcmx1c3QuPC9z
bWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImVpbnMtcGFwaWVya29yYi10YWdlIj5QYXBpZXJrb3Ji
LUF1ZmJld2FocnVuZyAoVGFnZSk8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJlaW5zLXBhcGllcmtvcmItdGFnZSIgY2xhc3M9
ImZvcm0taW5wdXQiIG1pbj0iMCIgbWF4PSIzNjUiIHN0eWxlPSJ3aWR0aDoxMjBweCI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2Nv
bG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi10b3A6NHB4Ij5XaWUgdmllbGUgVGFnZSBzb2Z0
LWdlbMO2c2NodGUgUGVyc29uZW4gaW0gUGFwaWVya29yYiB2ZXJibGVpYmVuLCBiZXZvciBzaWUg
YmVpbSBuw6RjaHN0ZW4gTMO2c2NoLVZvcmdhbmcgZW5kZ8O8bHRpZyBlbnRmZXJudCB3ZXJkZW4u
IDxjb2RlPjA8L2NvZGU+ID0gc29mb3J0IGJlaW0gbsOkY2hzdGVuIEzDtnNjaC1Wb3JnYW5nIGF1
ZnLDpHVtZW4uPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImVpbnMtZW1haWwtZG9tYWluIj5F
LU1haWwgQXV0by1TdWZmaXggRG9tYWluPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImVpbnMtZW1haWwtZG9tYWluIiBjbGFzcz0i
Zm9ybS1pbnB1dCIgcGxhY2Vob2xkZXI9IkBwb2xpemVpLm5ydy5kZSIgc3R5bGU9IndpZHRoOjI0
MHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3Bs
YXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo0cHgiPkRpZXNlIERv
bWFpbiB3aXJkIGF1dG9tYXRpc2NoIGFuZ2Vow6RuZ3QsIHdlbm4gYmVpbSBCZWFyYmVpdGVuIGVp
bmVyIFBlcnNvbmVuLUUtTWFpbCBudXIgZGVyIGxva2FsZSBUZWlsIGVpbmdlZ2ViZW4gd2lyZCAo
ei4gQi4gPGVtPk11ZWxsZXI8L2VtPiDihpIgPGVtPk11ZWxsZXJAcG9saXplaS5ucncuZGU8L2Vt
PikuIFdpcmt0IG51ciwgd2VubiBkYXMgRmVhdHVyZSA8ZW0+4oCeRS1NYWlsOiBBdXRvLVN1ZmZp
eCI8L2VtPiBha3RpdiBpc3QuPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUi
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImVpbnMtYXZhdGFy
LWdyb2Vzc2UiPlByb2ZpbGJpbGQtWmllbGdyw7bDn2UgKFBpeGVsLCBxdWFkcmF0aXNjaCk8L2xh
YmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIi
IGlkPSJlaW5zLWF2YXRhci1ncm9lc3NlIiBjbGFzcz0iZm9ybS1pbnB1dCIgbWluPSIxMDAiIG1h
eD0iNjAwIiBzdGVwPSIyMCIgc3R5bGU9IndpZHRoOjEyMHB4Ij4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4
dC1tdXRlZCk7bWFyZ2luLXRvcDo0cHgiPkJlaW0gVXBsb2FkIHdpcmQgZGFzIGhvY2hnZWxhZGVu
ZSBCaWxkIGF1ZiBkaWVzZSBLYW50ZW5sw6RuZ2UgaGVydW50ZXJnZXJlY2huZXQgdW5kIGFscyBK
UEVHIGdlc3BlaWNoZXJ0LiBHcsO2w59lciA9IHNjaMOkcmZlciwgYWJlciBtZWhyIFNwZWljaGVy
IHBybyBCaWxkLiBTdGFuZGFyZDogPGNvZGU+MjAwPC9jb2RlPiAofjEw4oCTMjUmbmJzcDtLQiBw
cm8gRGF0ZWkpLiBXZXJ0ZSB6d2lzY2hlbiAxMDAgdW5kIDYwMCBlcmxhdWJ0Ljwvc21hbGw+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bGFiZWwgZm9yPSJlaW5zLWVkaXRvci10cmlnZ2VyIj5TY2hpY2h0LUVkaXRvciDDtmZm
bmVuIG1pdDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBp
ZD0iZWlucy1lZGl0b3ItdHJpZ2dlciIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoy
NDBweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9
InJlY2h0cyI+UmVjaHRza2xpY2sgKFN0YW5kYXJkKTwvb3B0aW9uPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJsaW5rcyI+TGlua3NrbGljazwvb3B0
aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJt
aXR0ZSI+TWF1c3JhZC1LbGljayAoTWl0dGUpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImRvcHBlbCI+RG9wcGVsa2xpY2s8L29wdGlv
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFy
KC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo0cHgiPkxlZ3QgZmVzdCwgd2VsY2hlIE1hdXMtQWt0
aW9uIGluIGRlciBQbGFudGFmZWwgZGFzIERyb3Bkb3duIHp1ciBTY2hpY2h0YXVzd2FobCDDtmZm
bmV0LiBFaW4gZWluZmFjaGVyIDxzdHJvbmc+TGlua3NrbGljayBtYXJraWVydDwvc3Ryb25nPiBk
aWUgWmVsbGUgaW1tZXIgbnVyIChhdcOfZXIg4oCeTGlua3NrbGljayIgaXN0IGhpZXIgZ2V3w6Ro
bHQpLiBXaXJrdCBmw7xyIGFsbGUgTnV0emVyOyBncmVpZnQgbmFjaCBkZW0gbsOkY2hzdGVuIE5l
dWxhZGVuIGRlciBTZWl0ZS48L3NtYWxsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIg
c3R5bGU9InBhZGRpbmc6MTJweCAxNHB4O2JhY2tncm91bmQ6dmFyKC0tYmctY2FyZCk7Ym9yZGVy
OjFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO2JvcmRlci1yYWRpdXM6NnB4Ij4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkluZm8tL1N1cHBvcnR0ZXh0ZSB1bmQg
QmVkaWVudW5ncy1IaW53ZWlzZTwvc3Ryb25nPiB3ZXJkZW4gaW0gVGFiIDxlbT7igJ5CZXNjaHJp
ZnR1bmdlbiAmYW1wOyBUZXh0ZSI8L2VtPiBnZXBmbGVndCAobWl0IEZvcm1hdGllcnVuZ3MtRWRp
dG9yKS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWVpbnN0ZWxsdW5nZW4tc3BlaWNoZXJuIiBjbGFz
cz0iYnRuIGJ0bi1wcmltYWVyIiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4Ij5FaW5zdGVsbHVuZ2Vu
IHNwZWljaGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg
ICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNs
YXNzPSJhZG1pbi1zZWt0aW9uIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXNla3Rpb24tZmVhdHVyZXMi
IGRhdGEtc3VidGFiLXNla3Rpb249ImZlYXR1cmVzIj4KICAgICAgICAgICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iYWRtaW4tc2VrdGlvbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxoMz5GdW5rdGlvbmVuIGVpbi0vYXVzYmxlbmRlbjwvaDM+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRt
aW4taW5mbyIgZGF0YS1pbmZvLWtleT0iZmVhdHVyZXMiIG9wZW4+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3Nw
YW4+SGlud2Vpc2UgenUgZGVuIEZ1bmt0aW9uZW48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRn
ZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+WndlY2s6PC9zdHJvbmc+IEhpZXIga8O2bm5l
biBlaW56ZWxuZSwga29tcGxleGVyZSBGdW5rdGlvbmVuIGRlciBBbndlbmR1bmcgZWluLSBvZGVy
IGF1c2dlc2NoYWx0ZXQgd2VyZGVuLiBEYXMgaGlsZnQsIGRpZSBVSSBqZSBuYWNoIEFud2VuZHVu
Z3NiZWRhcmYgenUgZW50c2NobGFja2VuIOKAlCB3YXMgbmljaHQgZ2VicmF1Y2h0IHdpcmQsIHdp
cmQgYXVzZ2VibGVuZGV0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48
c3Ryb25nPlZlcmbDvGdiYXJlIFNjaGFsdGVyOjwvc3Ryb25nPjwvcD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT48Yj5TY2hpY2h0Zm9sZ2VuLUFuemVpZ2U8L2I+IOKAlCB6ZWlndCBpbSBIZWFkZXIgcHJv
IFN0YW5kb3J0IGRpZSBBQkMvQkNBL0NBQi1Sb3RhdGlvbi4gV2VyIGRpZSBSb3RhdGlvbiBuaWNo
dCBha3RpdiBwZmxlZ3QsIGthbm4gZGFzIGF1c2JsZW5kZW4uPC9saT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlN0w6Rya2UtQW56ZWlnZTwvYj4g4oCUIEZ8U3xO
LUJlc2V0enVuZ3N6YWhsIHBybyBUYWcgaW0gSGVhZGVyLiBLZXJuLUZlYXR1cmUgZsO8ciBkaWUg
QmVzZXR6dW5nc3BsYW51bmcuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGxpPjxiPlJ1aGV6ZWl0LVByw7xmdW5nPC9iPiDigJQgd2FybnQgYmVpICZsdDsgMTFoIFJ1
aGV6ZWl0IHp3aXNjaGVuIHp3ZWkgU2NoaWNodGVuIGRlcnNlbGJlbiBQZXJzb24uIEF1cyBBcmJa
Ry1TaWNodCB3aWNodGlnLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT48Yj5GcmVtZC3DhG5kZXJ1bmcgV2FybnVuZzwvYj4g4oCUIEJlc3TDpHRpZ3VuZywgd2Vu
biBtYW4gZGllIFNjaGljaHQgZWluZXIgYW5kZXJlbiBQZXJzb24gw6RuZGVydC4gU2Now7x0enQg
dm9yIHZlcnNlaGVudGxpY2hlbiDDhG5kZXJ1bmdlbi48L2xpPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bGk+PGI+RmFpcm5lc3MtQW56ZWlnZTwvYj4g4oCUIHplaWd0IHBy
byBQZXJzb24gZGFzIFZlcmjDpGx0bmlzIHZvbiBXb2NoZW5lbmQtL0ZlaWVydGFnc2RpZW5zdGVu
IGluIGRlciBTdGF0aXN0aWstQXVzd2VydHVuZy48L2xpPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bGk+PGI+TXVzdGVyLUFuYWx5c2U8L2I+IOKAlCBlcmtlbm50IEF1ZmbD
pGxsaWdrZWl0ZW4gKHouQi4gd2llZGVyaG9sdGUgRnLDvGgtbmFjaC1OYWNodC1Gb2xnZW4sIHVu
Z2xlaWNoZSBWZXJ0ZWlsdW5nKS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bGk+PGI+QWJ3ZXNlbmhlaXRzLUthY2hlbG48L2I+IOKAlCB6ZWlndCBwcm8gUGVyc29u
IGVpbmUga29tcGFrdGUgQWJ3ZXNlbmhlaXRzLcOcYmVyc2ljaHQgKEtyYW5rL1VybGF1Yi9MRy9B
WkEpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5EZXRh
aWwtVGFiZWxsZTwvYj4g4oCUIGF1c2tsYXBwYmFyZSBTdGF0aXN0aWstVGFiZWxsZSBtaXQgYWxs
ZW4gRWluemVsd2VydGVuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91
bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlNvZm9ydC1XaXJr
dW5nOjwvc3Ryb25nPiDDhG5kZXJ1bmdlbiB3ZXJkZW4gc29mb3J0IGdlc3BlaWNoZXJ0IHVuZCBn
cmVpZmVuIGRpcmVrdCAob2huZSBTZWl0ZW4tUmVsb2FkKSDigJQgZGVyIGVudHNwcmVjaGVuZGUg
QmVyZWljaCBlcnNjaGVpbnQvdmVyc2Nod2luZGV0IHVtZ2VoZW5kLjwvcD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImZlYXR1cmVzLWluaGFsdCI+PC9kaXY+
CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9kaXY+CgoK
CiAgICAgICAgICAgICAgICA8IS0tIFRhYjogQmFja3VwcyAtLT4KICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItYmFja3VwcyI+CiAg
ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDxoMj5CYWNrdXBzICZhbXA7IFdpZWRlcmhlcnN0ZWxsdW5nPC9oMj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWJhY2t1cC1uZXUiIGNsYXNzPSJidG4g
YnRuLWVyZm9sZyI+TmV1ZXMgQmFja3VwIGpldHp0IGVyc3RlbGxlbjwvYnV0dG9uPgogICAgICAg
ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJh
ZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJiYWNrdXBzIiBvcGVuPgogICAgICAgICAgICAgICAg
ICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+
SGlud2Vpc2UgenUgQmFja3VwczxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFw
cGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxwPjxzdHJvbmc+V2FzIGlzdCBpbiBlaW5lbSBCYWNrdXA/PC9zdHJvbmc+IEVpbmUgMToxLUtv
cGllIGRlciBEYXRlaSA8Y29kZT5wbGFudW5nLmpzb248L2NvZGU+IOKAlCBhbHNvIGFsbGUgU2No
aWNodC1FaW50csOkZ2UgdW5kIEtvbW1lbnRhcmUgenVtIFplaXRwdW5rdCBkZXMgQmFja3Vwcy4g
UGVyc29uZW5saXN0ZSwgRmVpZXJ0YWdlLCBGZXJpZW4gdW5kIGFuZGVyZSBBZG1pbi1Lb25maWd1
cmF0aW9uIHNpbmQgPGVtPm5pY2h0PC9lbT4gVGVpbCBkZXMgQmFja3VwcyAoZGllIGxpZWdlbiBp
biA8Y29kZT5hZG1pbi5qc29uPC9jb2RlPikuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHA+PHN0cm9uZz5XYW5uIHdlcmRlbiBCYWNrdXBzIGVyc3RlbGx0Pzwvc3Ryb25nPjwvcD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bGk+PGI+TWFudWVsbDwvYj4g4oCUIEtsaWNrIGF1ZiDigJ5OZXVlcyBCYWNrdXAg
amV0enQgZXJzdGVsbGVuIiBvZGVyIGF1ZiBkYXMgQmFja3VwLVN5bWJvbCBpbiBkZXIgSGF1cHQt
VG9vbGJhci48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Wb3Ig
RHVtbXlkYXRlbjwvYj4g4oCUIGF1dG9tYXRpc2NoIHZvciBkZW0gRWluc3BpZWxlbiB2b24gVGVz
dGRhdGVuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlZvciBS
ZXNldDwvYj4g4oCUIGF1dG9tYXRpc2NoIHZvciBkZW0g4oCeUGxhbnVuZyB6dXLDvGNrc2V0emVu
Ii48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Wb3IgV2llZGVy
aGVyc3RlbGx1bmc8L2I+IOKAlCBhdXRvbWF0aXNjaCBiZXZvciBlaW4gQmFja3VwIGVpbmdlc3Bp
ZWx0IHdpcmQgKFNpY2hlcmhlaXRza29waWUgZGVyIGFrdHVlbGxlbiBQbGFudW5nKS48L2xpPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxwPjxzdHJvbmc+U3BlaWNoZXJvcnQ6PC9zdHJvbmc+IDxjb2RlPlZJMy9kYXRhL3BsYW51
bmdfYmFja3VwXyouanNvbjwvY29kZT4gKGJlaW0gV2luZG93cy1EZXBsb3ltZW50OiA8Y29kZT4l
TldfSE9NRSVcVkkzX0RHTF9TZXJ2ZXJcZGF0YVw8L2NvZGU+KS4gRGllIEJhY2t1cHMgbGllZ2Vu
IG51ciBsb2thbCBpbSBEYXRlbm9yZG5lciB1bmQgd2VyZGVuIG5pY2h0IGluIGdlbWVpbnNhbWVu
IEFibGFnZW4gbWl0Z2Vmw7xocnQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+
PHN0cm9uZz5Ba3Rpb25lbiBwcm8gQmFja3VwOjwvc3Ryb25nPjwvcD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+
V2llZGVyaGVyc3RlbGxlbjwvYj4g4oCUIGVyc2V0enQgZGllIGFrdHVlbGxlIFBsYW51bmcgZHVy
Y2ggZGFzIEJhY2t1cC4gVm9yaGVyIHdpcmQgZWluZSBTaWNoZXJoZWl0c2tvcGllIGRlciBqZXR6
aWdlbiBQbGFudW5nIGVyc3RlbGx0ICg8Y29kZT5wbGFudW5nX2JhY2t1cF92b3Jfd2llZGVyaGVy
c3RlbGx1bmdf4oCmPC9jb2RlPiksIGZhbGxzIGR1IHZlcnNlaGVudGxpY2ggZGFzIGZhbHNjaGUg
QmFja3VwIGVpbmdlc3BpZWx0IGhhc3QuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bGk+PGI+SGVydW50ZXJsYWRlbjwvYj4g4oCUIGzDpGR0IGRpZSBKU09OLURhdGVpIGFs
cyBEb3dubG9hZC4gTsO8dHpsaWNoIGbDvHIgQXJjaGl2aWVydW5nIG9kZXIgV2VpdGVyZ2FiZS48
L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Mw7ZzY2hlbjwvYj4g
4oCUIGVudGZlcm50IGRpZSBCYWNrdXAtRGF0ZWkgcGVybWFuZW50LjwvbGk+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0
cm9uZz5XaWNodGlnIHZvciBkZW0gV2llZGVyaGVyc3RlbGxlbjo8L3N0cm9uZz4gQW0gYmVzdGVu
IHZvcmhlciBhbGxlIEJlYXJiZWl0ZXIgaW5mb3JtaWVyZW4uIEVpbmUgV2llZGVyaGVyc3RlbGx1
bmcgw7xiZXJzY2hyZWlidCBkaWUgYWt0aXZlIFBsYW51bmcgc29mb3J0IOKAlCDDhG5kZXJ1bmdl
biwgZGllIG5hY2ggZGVtIFplaXRwdW5rdCBkZXMgQmFja3VwcyBnZW1hY2h0IHd1cmRlbiwgc2lu
ZCBkYW5uIGluIGRlciBTaWNoZXJoZWl0c2tvcGllIGFicnVmYmFyLCBhYmVyIG5pY2h0IG1laHIg
aW4gZGVyIGFrdGl2ZW4gUGxhbnVuZy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2
PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8ZGl2
IGlkPSJiYWNrdXAtbGlzdGUtZXJnZWJuaXMiIGNsYXNzPSJnZW4taW5mbyB2ZXJzdGVja3QiIHN0
eWxlPSJtYXJnaW4tYm90dG9tOjEycHgiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDx0YWJs
ZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImJhY2t1cC10YWJlbGxlIj4KICAgICAgICAgICAg
ICAgICAgICAgICAgPHRoZWFkPjx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBz
dHlsZT0id2lkdGg6MTgwcHgiPkVyc3RlbGx0IGFtPC90aD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTMwcHgiPlR5cDwvdGg+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjIwMHB4Ij5JbmhhbHQ8L3RoPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHRoPkRhdGVpbmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHg7dGV4dC1hbGlnbjpyaWdodCI+R3LDtsOfZTwv
dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjMwMHB4Ij5B
a3Rpb25lbjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+PC90aGVhZD4KICAgICAg
ICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJiYWNrdXAtdGJvZHkiPjwvdGJvZHk+CiAgICAg
ICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAg
ICAgICAgIDwhLS0gVGFiOiBIaW53ZWlzZS1Qcm90b2tvbGwgKG51ciBTdXBlclVzZXIpIC0tPgog
ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWlu
LXRhYi1oaW53ZWlzZS1wcm90b2tvbGwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+SGlud2Vpc2UtUHJvdG9r
b2xsPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImFkbWluLWtvcGYtc3Vi
Ij5BbGxlIGFrdGl2ZW4gSW4tQXBwLUhpbndlaXNlIG1pdCBFbXBmw6RuZ2VyLUxpc3RlIHVuZCBM
ZXNlLVN0YXR1cy4gTnVyIHNpY2h0YmFyIGbDvHIgU3VwZXJVc2VyLiDDhGx0ZXJlIEhpbndlaXNl
ICgmZ3Q7IDMwIFRhZ2UgVU5EIHZvbiBhbGxlbiBFbXBmw6RuZ2VybiBnZWxlc2VuKSB3ZXJkZW4g
YXV0b21hdGlzY2ggYXVzZ2Vyw6R1bXQuPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog
ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhpbndlaXNlLXByb3Rva29sbC10b29sYmFy
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlR5cDoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxzZWxlY3QgaWQ9ImhwLWZpbHRlci10eXAiIGNsYXNzPSJmb3JtLWlucHV0IiBz
dHlsZT0id2lkdGg6MjAwcHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRp
b24gdmFsdWU9IiI+4oCUIGFsbGUg4oCUPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaWRlbnRpdGFldF9nZWFlbmRlcnQiPklkZW50aXTDpHQg
Z2XDpG5kZXJ0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlv
biB2YWx1ZT0icm9sbGVfZ2VhZW5kZXJ0Ij5Sb2xsZSBnZcOkbmRlcnQ8L29wdGlvbj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJiYWNrdXBfd2llZGVyaGVy
Z2VzdGVsbHQiPkJhY2t1cCB3aWVkZXJoZXJnZXN0ZWxsdDwvb3B0aW9uPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InBsYW51bmdfcmVzZXQiPlBsYW51bmcg
enVyw7xja2dlc2V0enQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
b3B0aW9uIHZhbHVlPSJrcmFua21lbGR1bmciPktyYW5rbWVsZHVuZzwvb3B0aW9uPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgICAgIDwv
bGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5BYjogICAgPGlucHV0IHR5cGU9
ImRhdGUiIGlkPSJocC1maWx0ZXItdm9uIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRo
OjE0MHB4Ij48L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+QmlzOiAgIDxp
bnB1dCB0eXBlPSJkYXRlIiBpZD0iaHAtZmlsdGVyLWJpcyIgY2xhc3M9ImZvcm0taW5wdXQiIHN0
eWxlPSJ3aWR0aDoxNDBweCI+PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRv
biB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iIGlkPSJocC1ha3R1
YWxpc2llcmVuIj5Ba3R1YWxpc2llcmVuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIGhpbndl
aXNlLXByb3Rva29sbC10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPjx0
cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTIwcHgiPldh
bm48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxNTBw
eCI+VHlwPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6
MTIwcHgiPkF1c2dlbMO2c3Qgdm9uPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0
aD5Lb250ZXh0PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lk
dGg6MzAwcHgiPkVtcGbDpG5nZXIgJmFtcDsgTGVzZXN0YXR1czwvdGg+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDwvdHI+PC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlk
PSJoaW53ZWlzZS1wcm90b2tvbGwtdGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAg
PC90YWJsZT4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFi
OiBJbXBvcnQgKEV4Y2VsKSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRh
YiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItaW1wb3J0Ij4KICAgICAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPkV4Y2Vs
LUltcG9ydDwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg
ICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9ImltcG9ydCIgb3Bl
bj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWlu
Zm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1bSBFeGNlbC1JbXBvcnQ8c3BhbiBjbGFzcz0i
YWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcyB3aXJkIGltcG9ydGllcnQ/
PC9zdHJvbmc+IFNjaGljaHRlaW50csOkZ2UgdW5kIEtvbW1lbnRhcmUgYXVzIGVpbmVyIEV4Y2Vs
LURhdGVpIGltIEZvcm1hdCBkZXIgYmlzaGVyaWdlbiA8Y29kZT4yMDI2LVZJMy1ER0wtUGxhbnVu
Zy54bHNtPC9jb2RlPi4gRGllIERhdGVpIHdpcmQgaW0gQnJvd3NlciBnZWxlc2VuIOKAlCBlcyB3
ZXJkZW4ga2VpbmUgRGF0ZW4gYW4gZWluZW4gZXh0ZXJuZW4gU2VydmVyIGdlc2VuZGV0LjwvcD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RXJ3YXJ0ZXRlcyBTaGVldC1M
YXlvdXQ6PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5TaGVldCBtaXQgTmFtZW4gPGI+4oCeUGxh
bnVuZyI8L2I+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+RGF0dW1z
LVNwYWx0ZW4gYWIgU3BhbHRlIDxiPko8L2I+IChFeGNlbC1TZXJpYWwtRGF0ZXMgaW4gWmVpbGUg
MSk8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5QZXJzb25lbi1aZWls
ZW4gYWIgWmVpbGUgPGI+MjE8L2I+LCA8Yj5OYWNobmFtZSBpbiBTcGFsdGUgQzwvYj48L2xpPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5aZWxsd2VydGUgPSBTY2hpY2h0Y29k
ZXMgKDxjb2RlPkYtREdMPC9jb2RlPiwgPGNvZGU+VXJsPC9jb2RlPiwg4oCmKTwvbGk+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlplbGwtS29tbWVudGFyZSAoRXhjZWwtS29t
bWVudGFyZSkgd2VyZGVuIGFscyBLb21tZW50YXIgw7xiZXJub21tZW48L2xpPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxz
dHJvbmc+QWJnbGVpY2g6PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5QZXJzb25lbjwvYj4g
d2VyZGVuIMO8YmVyIGRlbiA8Yj5OYWNobmFtZW48L2I+IGdlbWF0Y2h0LiBVbmJla2FubnRlIFBl
cnNvbmVuIG9kZXIgTmFtZW4gbWl0IG1laHJlcmVuIFRyZWZmZXJuIG3DvHNzZW4gbWFudWVsbCB6
dWdlb3JkbmV0IG9kZXIgaWdub3JpZXJ0IHdlcmRlbi48L2xpPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT48Yj5TY2hpY2h0Y29kZXM8L2I+IHdlcmRlbiBnZWdlbiBkaWUgYWt0
aXZlbiBDb2RlcyBhYmdlZ2xpY2hlbi4gQmVrYW5udGUgPGNvZGU+aW1wb3J0QWxpYXNlPC9jb2Rl
PiAoei5CLiA8Y29kZT5GV0RGPC9jb2RlPiDihpIgPGNvZGU+Ri1XREY8L2NvZGU+KSB3ZXJkZW4g
YXV0b21hdGlzY2ggZXJzZXR6dC4gVW5iZWthbm50ZSBDb2RlcyB6ZWlndCBkZXIgRGlhbG9nIG1p
dCBlaW5lbSBEcm9wZG93biB6dW0gTWFwcGluZyBvZGVyIOKAnmlnbm9yaWVyZW4iLjwvbGk+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHA+PHN0cm9uZz5Nb2R1czo8L3N0cm9uZz4gRGVyIEltcG9ydCBlcnNldHp0IDxiPmFsbGU8
L2I+IEVpbnRyw6RnZSB1bmQgS29tbWVudGFyZSBpbSBnZXfDpGhsdGVuIFplaXRyYXVtIGtvbXBs
ZXR0LiBWb3IgZGVtIFNjaHJlaWJlbiB3aXJkIGF1dG9tYXRpc2NoIGVpbiBCYWNrdXAgZGVyIDxj
b2RlPnBsYW51bmcuanNvbjwvY29kZT4gZXJzdGVsbHQuPC9wPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHA+PHN0cm9uZz5BYmxhdWY6PC9zdHJvbmc+IDxlbT5EYXRlaSBhdXN3w6RobGVu
IOKGkiBBbmFseXNlIGzDpHVmdCDihpIgTWFwcGluZy1EaWFsb2cg4oaSIEltcG9ydCBzdGFydGVu
LjwvZW0+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAg
ICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW1wLXVwbG9h
ZC1ib3giPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJpbXAtZGF0ZWkiIGNs
YXNzPSJidG4gYnRuLXByaW1hZXIiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jayI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImltcC1kYXRlaSIg
YWNjZXB0PSIueGxzeCwueGxzbSwueGxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEV4Y2VsLURhdGVpIHfDpGhsZW4KICAgICAgICAgICAgICAgICAg
ICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImltcC1kYXRl
aS1uYW1lIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MTJweDtmb250LXNpemU6MTNweDtjb2xvcjp2YXIo
LS10ZXh0LW11dGVkKSI+4oCUIG5vY2gga2VpbmUgRGF0ZWkgZ2V3w6RobHQg4oCUPC9zcGFuPgog
ICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImhpbGZl
LWljb24iIGFyaWEtbGFiZWw9IkhpbGZlIEV4Y2VsLUZvcm1hdCBhbnplaWdlbiIgdGl0bGU9IkVy
d2FydGV0IGRpZSBWSTMtREdMLUV4Y2VsLVZvcmxhZ2UiIGRhdGEtaGlsZmU9IkVyd2FydGV0IGRp
ZSBWSTMtREdMLUV4Y2VsLVZvcmxhZ2U6IFBlcnNvbmVuIGFiIFplaWxlIDIxIChOYWNobmFtZSBp
biBTcGFsdGUgQyksIERhdHVtc2FuZ2FiZW4gaW4gWmVpbGUgMSAoYWIgU3BhbHRlIEopLiBTcHJl
Y2hibGFzZW4tS29tbWVudGFyZSB3ZXJkZW4gYWxzIFRhZy1Lb21tZW50YXJlIHVlYmVybm9tbWVu
LiBGb3JtYXQgLnhsc3gvLnhsc20vLnhscy4iPj88L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg
ICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJpbXAtc3RhdHVzIiBzdHlsZT0i
bWFyZ2luLXRvcDoyMHB4Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAg
ICAgICAgIDwhLS0gVGFiOiBFeHBvcnQgKEV4Y2VsL0NTVikgLS0+CiAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWV4cG9ydCI+CiAg
ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDxoMj5FeGNlbC1FeHBvcnQ8L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2
PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWlu
Zm8ta2V5PSJleHBvcnQiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5Pjxz
cGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dW0gRXhwb3J0
PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3Nw
YW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1p
bmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXMgd2ly
ZCBleHBvcnRpZXJ0Pzwvc3Ryb25nPiBQcm8gUGVyc29uIHVuZCBUYWcgbWl0IEVpbnRyYWcgZWlu
ZSBaZWlsZSBtaXQgPGI+TmFtZSwgRGllbnN0Z3J1cHBlLCBEYXR1bSwgTW9uYXQsIFRhZywgV29j
aGVudGFnLCBLVywgU2NoaWNodDwvYj4gKENvZGUpIHVuZCA8Yj5TY2hpY2h0LUtsYXJ0ZXh0PC9i
Pi4gRXMgd2VyZGVuIG51ciBUYWdlIG1pdCBoaW50ZXJsZWd0ZXIgU2NoaWNodCBhdXNnZWdlYmVu
LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+SW5mb2JveCB1bnRl
cmhhbGI6PC9zdHJvbmc+IE9wdGlvbmFsIGZvbGd0IHVudGVyIGRlciBUYWJlbGxlIGVpbiB6d2Vp
dGVyIEJsb2NrIOKAnkhpbndlaXNlIHp1IFRhZ2VuIG1pdCBCZXNvbmRlcmhlaXRlbiIg4oCUIGRp
ZSBpbSBQbGFuLUhlYWRlciBlcmthbm50ZW4gPGI+RmVpZXJ0YWdlLCBGZXJpZW4gdW5kIFNvbmRl
cnRlcm1pbmU8L2I+IGRlcyBleHBvcnRpZXJ0ZW4gWmVpdHJhdW1zIChEYXR1bSwgVHlwLCBCZXpl
aWNobnVuZywgQmVzY2hyZWlidW5nKS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
cD48c3Ryb25nPlVtZmFuZzo8L3N0cm9uZz4gR2FuemVzIFBsYW51bmdzamFociwgZWluemVsbmUv
bWVocmVyZSBLYWxlbmRlcndvY2hlbiAodm9u4oCTYmlzKSBvZGVyIGVpbiBmcmVpZXIgRGF0dW1z
YmVyZWljaC4gPHN0cm9uZz5QZXJzb25lbmtyZWlzOjwvc3Ryb25nPiBhbGxlLCBiZXN0aW1tdGUg
RGllbnN0Z3J1cHBlbiBvZGVyIGVpbnplbG5lIFBlcnNvbmVuICg9IGluZGl2aWR1ZWxsZXIgRXhw
b3J0KS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkZvcm1hdDo8
L3N0cm9uZz4gRm9ybWF0aWVydGVzIDxiPlhMU1g8L2I+IChwYXNzZW5kZSBTcGFsdGVuYnJlaXRl
biwgVGl0ZWx6ZWlsZSwgQXV0by1GaWx0ZXIgw7xiZXIgZGVyIFRhYmVsbGUpIG9kZXIgPGI+Q1NW
PC9iPiAoVVRGLTggbWl0IEJPTSwgU2VtaWtvbG9uLWdldHJlbm50IOKAlCBkaXJla3QgaW4gRXhj
ZWwtREUgbGVzYmFyKS4gQWxsZXMgbMOkdWZ0IGltIEJyb3dzZXI7IGVzIHdlcmRlbiBrZWluZSBE
YXRlbiBhbiBlaW5lbiBleHRlcm5lbiBTZXJ2ZXIgZ2VzZW5kZXQuPC9wPgogICAgICAgICAgICAg
ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAg
ICAgICAgICAgICAgPGRpdiBpZD0iZXhwb3J0LWluaGFsdCI+PC9kaXY+CiAgICAgICAgICAgICAg
ICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0tIFRhYjogVGVzdGRhdGVuIC0tPgogICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi10
ZXN0ZGF0ZW4iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgog
ICAgICAgICAgICAgICAgICAgICAgICA8aDI+VGVzdGRhdGVuIC8gRHVtbXlkYXRlbjwvaDI+CiAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xh
c3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9InRlc3RkYXRlbiIgb3Blbj4KICAgICAgICAg
ICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4
PC9zcGFuPkhpbndlaXNlIHp1IFRlc3RkYXRlbiAvIFJlc2V0PHNwYW4gY2xhc3M9ImFkbWluLWlu
Zm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Xb2bDvHI/PC9zdHJvbmc+IERpZXNlIEZ1bmt0
aW9uZW4gc2luZCBhdXNzY2hsaWXDn2xpY2ggZsO8ciBUZXN0LSwgRGVtby0gdW5kIEVpbmFyYmVp
dHVuZ3N6d2Vja2UgZ2VkYWNodC4gQmVpZGUgZXJzdGVsbGVuIDxiPmF1dG9tYXRpc2NoIGVpbiBC
YWNrdXA8L2I+IGRlciBha3R1ZWxsZW4gUGxhbnVuZywgYmV2b3Igc2llIGF1c2dlZsO8aHJ0IHdl
cmRlbiDigJQgZGllIEJhY2t1cHMgbGllZ2VuIGluIDxjb2RlPlZJMy9kYXRhL3BsYW51bmdfYmFj
a3VwX3Zvcl8qLmpzb248L2NvZGU+LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw
PjxzdHJvbmc+RHVtbXlkYXRlbiBlaW5zcGllbGVuOjwvc3Ryb25nPiBGw7xsbHQgZGVuIFplaXRy
YXVtIChha3R1ZWxsIEphbnVhciBiaXMgQXByaWwgMjAyNikgbWl0IHJlYWxpc3Rpc2NoZW4gU2No
aWNodHBsw6RuZW4sIFVybGF1YiwgS3JhbmtoZWl0LCBMZWhyZ8OkbmdlbiwgRWluc2F0enRyYWlu
aW5nIHVuZCBBWi1BdXNnbGVpY2guIERpZSBHcnVwcGVuIEEvQi9DIHJvdGllcmVuIHfDtmNoZW50
bGljaCBkdXJjaCBGcsO8aC0vU3DDpHQtL05hY2h0ZGllbnN0LiBQZXJzb25lbmxpc3RlLCBHcnVw
cGVuYmV6ZWljaG51bmdlbiB1bmQgRWluc3RlbGx1bmdlbiBibGVpYmVuIHVudmVyw6RuZGVydC48
L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlBsYW51bmcgenVyw7xj
a3NldHplbjo8L3N0cm9uZz4gTMO2c2NodCA8Yj5hbGxlPC9iPiBTY2hpY2h0LUVpbnRyw6RnZSB1
bmQgS29tbWVudGFyZS4gRGllIFBlcnNvbmVubGlzdGUsIEdydXBwZW4sIEZlaWVydGFnZSB1bmQg
YWxsZSBhbmRlcmVuIEVpbnN0ZWxsdW5nZW4gYmxlaWJlbiBlcmhhbHRlbi4gQmFja3VwIHdpcmQg
dm9yaGVyIGVyc3RlbGx0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJv
bmc+V2llZGVyaGVyc3RlbGx1bmc6PC9zdHJvbmc+IEF1cyBCYWNrdXAtRGF0ZWllbiBrYW5uIGFr
dHVlbGwgbnVyIHBlciBEYXRlaW1hbmlwdWxhdGlvbiAoPGNvZGU+cGxhbnVuZ19iYWNrdXBfLi4u
PC9jb2RlPiB1bWJlbmVubmVuIHp1IDxjb2RlPnBsYW51bmcuanNvbjwvY29kZT4pIHdpZWRlcmhl
cmdlc3RlbGx0IHdlcmRlbi4gQmFja3VwcyB3ZXJkZW4gbnVyIGltIERhdGVub3JkbmVyIGxva2Fs
IGdlaGFsdGVuLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Vm9y
c2ljaHQgaW0gUHJvZHVrdGl2YmV0cmllYjo8L3N0cm9uZz4gSW0gbGF1ZmVuZGVuIFBsYW51bmdz
YmV0cmllYiBkaWVzZSBCdXR0b25zIG51ciBtaXQgQWJzcHJhY2hlIG51dHplbiEgQXVjaCB3ZW5u
IEJhY2t1cHMgZXJzdGVsbHQgd2VyZGVuIOKAlCBiZWkgYWt0aXZlbiBCZWFyYmVpdGVybiBlbnRz
dGVoZW4gS29uZmxpa3RlLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg
ICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9
ImRpc3BsYXk6ZmxleDsgZ2FwOjE2cHg7IGZsZXgtd3JhcDp3cmFwOyBtYXJnaW4tdG9wOjE2cHgi
PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmbGV4OjE7IG1pbi13aWR0aDoy
ODBweDsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1yYWhtZW4pOyBib3JkZXItcmFkaXVzOjhweDsg
cGFkZGluZzoyMHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT0ibWFy
Z2luOjAgMCA4cHggMCI+RHVtbXlkYXRlbiBlaW5zcGllbGVuPC9oMz4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWdlZGltbXQpOyBtYXJnaW46
MCAwIDE2cHggMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRsO8bGx0IEphbnVh
ciBiaXMgQXByaWwgMjAyNiBtaXQgcmVhbGlzdGlzY2hlbiBTY2hpY2h0cGzDpG5lbiwgVXJsYXVi
LCBLcmFua2hlaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVocmfDpG5nZW4s
IEVpbnNhdHp0cmFpbmluZyB1bmQgQVotQXVzZ2xlaWNoLiBHcnVwcGVuIEEvQi9DIHJvdGllcmVu
IHfDtmNoZW50bGljaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmNoIEZyw7xo
LS9TcMOkdC0vTmFjaHRkaWVuc3QuIERpZSBiZXN0ZWhlbmRlbiBQZXJzb25lbiB1bmQgQmV6ZWlj
aG51bmdlbiBibGVpYmVuIGVyaGFsdGVuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9w
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWR1bW15ZGF0ZW4i
IGNsYXNzPSJidG4gYnRuLXByaW1hZXIiPkR1bW15ZGF0ZW4gZWluc3BpZWxlbjwvYnV0dG9uPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRp
diBzdHlsZT0iZmxleDoxOyBtaW4td2lkdGg6MjgwcHg7IGJvcmRlcjoxcHggc29saWQgdmFyKC0t
cmFobWVuKTsgYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MjBweCI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8aDMgc3R5bGU9Im1hcmdpbjowIDAgOHB4IDAiPlBsYW51bmcgenVyw7xj
a3NldHplbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6
dmFyKC0tdGV4dC1nZWRpbW10KTsgbWFyZ2luOjAgMCAxNnB4IDAiPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEzDtnNjaHQgPHN0cm9uZz5hbGxlPC9zdHJvbmc+IEVpbnRyw6RnZSB1
bmQgS29tbWVudGFyZS4gRGllIFBlcnNvbmVubGlzdGUsIEdydXBwZW4sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRmVpZXJ0YWdlIHVuZCBhbGxlIGFuZGVyZW4gRWluc3RlbGx1bmdl
biBibGVpYmVuIGVyaGFsdGVuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXJlc2V0IiBjbGFzcz0iYnRu
IGJ0bi1nZWZhaHIiPlBsYW51bmcgenVyw7xja3NldHplbjwvYnV0dG9uPgogICAgICAgICAgICAg
ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxl
eDoxOyBtaW4td2lkdGg6MjgwcHg7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tcmFobWVuKTsgYm9y
ZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MjBweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8aDMgc3R5bGU9Im1hcmdpbjowIDAgOHB4IDAiPlByb3Rva29sbCBsw7ZzY2hlbjwvaDM+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1nZWRp
bW10KTsgbWFyZ2luOjAgMCAxNnB4IDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExlZXJ0IGRhcyA8c3Ryb25nPkxvZ2J1Y2g8L3N0cm9uZz4gdW5kIGRpZSA8c3Ryb25nPkFQSS1M
b2ctRGF0ZWk8L3N0cm9uZz4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lubnZv
bGwgdm9yIGRlbSBMaXZlLUdhbmcgb2RlciBuYWNoIFRlc3RzLCB1bSBEaWFnbm9zZS1TcHVyZW4g
enUgZW50ZmVybmVuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVpbiBlaW56ZWxu
ZXIgTG9nYnVjaC1FaW50cmFnIDxjb2RlPnByb3Rva29sbC5nZWxvZXNjaHQ8L2NvZGU+IGJsZWli
dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyaGFsdGVuLCBkYW1pdCBkYXMgRXJl
aWduaXMgc2VsYnN0IG5hY2h2b2xsemllaGJhciBibGVpYnQuCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4t
cHJvdG9rb2xsLWxvZXNjaGVuIiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIiPlByb3Rva29sbCBsw7Zz
Y2hlbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg
ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0ZXN0ZGF0ZW4tZXJn
ZWJuaXMiIGNsYXNzPSJ2ZXJzdGVja3QiIHN0eWxlPSJtYXJnaW4tdG9wOjE2cHgiPjwvZGl2Pgog
ICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEJlc2Nocmlm
dHVuZ2VuICYgVGV4dGUgKE1lcmdlIOKAlCBCZXplaWNobnVuZ2VuICsgSW5mb3JtYXRpb24gJiBI
aWxmZSkgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0
IiBpZD0iYWRtaW4tdGFiLWJlemVpY2hudW5nZW4iPgogICAgICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+QmVzY2hyaWZ0
dW5nZW4gJmFtcDsgVGV4dGU8L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAg
ICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iYWRtaW4tc2VrdGlvbiIgaWQ9ImFkbWluLXNl
a3Rpb24tYmV6ZWljaG51bmdlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImFkbWluLXNla3Rpb24ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+VUkt
QmV6ZWljaG51bmdlbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg
ICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtl
eT0iYmV6ZWljaG51bmdlbiIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1t
YXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dSBC
ZXplaWNobnVuZ2VuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBa
dWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8cD48c3Ryb25nPldhcyBpc3QgZGFzPzwvc3Ryb25nPiBBbGxlIGhhcnQgaW0gQ29kZSBoaW50
ZXJsZWd0ZW4gVUktTGFiZWxzIChUaXRlbCBkZXIgQXBwLCBOYW1lbiBkZXIgUmVpdGVyIGltIEhl
YWRlciwg4oCmKSBsYXNzZW4gc2ljaCBoaWVyIGluZGl2aWR1ZWxsIGJlbmVubmVuLiBOw7x0emxp
Y2gsIHdlbm4gaW50ZXJuIGFuZGVyZSBCZWdyaWZmZSDDvGJsaWNoIHNpbmQgb2RlciBlaW4gVGFi
IHVtYmVuYW5udCB3ZXJkZW4gc29sbC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHA+PHN0cm9uZz5GdW5rdGlvbjo8L3N0cm9uZz4gTGVlcmUgRmVsZGVyIGZhbGxlbiB6dXLD
vGNrIGF1ZiBkZW4gRGVmYXVsdC1XZXJ0LiA8ZW0+U3BlaWNoZXJuPC9lbT4gbGVndCBkaWUgV2Vy
dGUgaW4gPGNvZGU+YWRtaW4uanNvbi5iZXplaWNobnVuZ2VuPC9jb2RlPiBhYiDigJQgc2ljaHRi
YXIgd2lyZCBkaWUgw4RuZGVydW5nIG5hY2ggZWluZW0gU2VpdGVuLVJlbG9hZCAoRjUpIGbDvHIg
YWxsZSBOdXR6ZXIuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJv
bmc+WnVyw7xja3NldHplbjwvc3Ryb25nPiBsw7ZzY2h0IGFsbGUgaW5kaXZpZHVlbGxlbiBXZXJ0
ZSB1bmQgc3RlbGx0IGRpZSBEZWZhdWx0cyB3aWVkZXIgaGVyLjwvcD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImJl
emVpY2hudW5nZW4tdGFiZWxsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE4MHB4Ij5TY2hsw7xzc2VsPC90aD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoyMjBw
eCI+RGVmYXVsdDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5F
aWdlbmUgQmV6ZWljaG51bmc8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHRib2R5IGlkPSJiZXplaWNobnVuZ2VuLXRib2R5Ij48L3Rib2R5PgogICAg
ICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2
IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjhweDttYXJnaW4tdG9wOjEycHgiPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWJlemVpY2hudW5nZW4tcmVzZXQiIGNs
YXNzPSJidG4gYnRuLXNlayIgdGl0bGU9IkFsbGUgV2VydGUgYXVmIGRlbiBEZWZhdWx0IHp1csO8
Y2tzZXR6ZW4iPlp1csO8Y2tzZXR6ZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxidXR0b24gaWQ9ImJ0bi1iZXplaWNobnVuZ2VuLXNwZWljaGVybiIgY2xhc3M9ImJ0biBi
dG4tcHJpbWFlciI+QmV6ZWljaG51bmdlbiBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAg
ICAgICAgICAgICAgICA8aHIgY2xhc3M9ImFkbWluLXNla3Rpb24tdHJlbm5lciI+CgogICAgICAg
ICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhZG1pbi1zZWt0aW9uIiBpZD0iYWRtaW4tc2Vr
dGlvbi1pbmZvaGlsZmUiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p
bi1zZWt0aW9uLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkluZm9ybWF0
aW9uICZhbXA7IEhpbGZlPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8t
a2V5PSJpbmZvaGlsZmUiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFy
eT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+SGlud2Vpc2UgenUgSW5m
b3JtYXRpb24gJmFtcDsgSGlsZmU8c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xh
cHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxwPjxzdHJvbmc+V2FzIHdpcmQgaGllciBnZXBmbGVndD88L3N0cm9uZz4gQWxs
ZSBUZXh0ZSwgZGllIGltIEluZm8tRmVuc3RlciBlcnNjaGVpbmVuIChLbGljayBhdWYg4oCeSW5m
byIgb2JlbiByZWNodHMgaW4gZGVyIEtvcGZsZWlzdGUpLiBEaWUgRWRpdG9yZW4gdW50ZXJzdMO8
dHplbiBlaW5mYWNoZSBGb3JtYXRpZXJ1bmcgw7xiZXIgZGllIFRvb2xiYXI6IDxiPkZldHQ8L2I+
LCA8ZW0+S3Vyc2l2PC9lbT4sIDx1PlVudGVyc3RyaWNoZW48L3U+LCBBdWZ6w6RobHVuZ2VuLCBF
aW5yw7xja2VuL0F1c3LDvGNrZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxwPjxzdHJvbmc+UmVpaGVuZm9sZ2UgaW0gSW5mby1GZW5zdGVyOjwvc3Ryb25nPiBJbmZvdGV4
dCDihpIgU3VwcG9ydC1JbmZvIOKGkiBTdXBlclVzZXItTGlzdGUg4oaSIEFsbGdlbWVpbmUgSGls
ZmUg4oaSIEJlZGllbnVuZ3MtSGlud2Vpc2Ug4oaSIFNjaGljaHRjb2RlLUxlZ2VuZGUgKGF1dG9t
YXRpc2NoIGdlbmVyaWVydCkuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw
PjxzdHJvbmc+QmVkaWVudW5ncy1IaW53ZWlzZTo8L3N0cm9uZz4gSmVkZXIgTGlzdGVuZWludHJh
ZyB3aXJkIGFscyBlaWdlbmVyIEJ1bGxldCBnZXJlbmRlcnQuIEZvcm1hdCA8Y29kZT5UaXRlbDog
QmVzY2hyZWlidW5nPC9jb2RlPiAoZWluIERvcHBlbHB1bmt0IHp3aXNjaGVuIFRpdGVsIHVuZCBF
cmtsw6RydW5nKSBsw6Rzc3QgZGVuIFRpdGVsIGF1dG9tYXRpc2NoIGZldHQgd2VyZGVuLjwvcD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlNjaGxpZcOfLUluZm86
PC9zdHJvbmc+IFdpcmQgaW0gSW5mby1GZW5zdGVyIDxiPm5pY2h0PC9iPiBhbmdlemVpZ3QsIHNv
bmRlcm4gYmVpbSBhdXRvbWF0aXNjaGVuIFNlcnZlci1TdG9wIG5hY2ggSW5ha3Rpdml0w6R0LiBQ
bGF0emhhbHRlciA8Y29kZT57bWludXRlbn08L2NvZGU+IHdpcmQgZHVyY2ggZGllIGtvbmZpZ3Vy
aWVydGUgU2NobGllw596ZWl0IGVyc2V0enQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KCiAgICAgICAgICAg
ICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtn
YXA6MThweDttYXgtd2lkdGg6OTAwcHgiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2Zv
bnQtd2VpZ2h0OjYwMDttYXJnaW4tYm90dG9tOjZweCI+SW5mb3RleHQgKGVyc2NoZWludCBpbSBJ
bmZvLUZlbnN0ZXIpPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9InJ0ZS10b29sYmFyIiBkYXRhLXJ0ZS1mb3I9ImloLWluZm90ZXh0Ij4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4i
IGRhdGEtY21kPSJib2xkIiB0aXRsZT0iRmV0dCAoQ3RybCtCKSI+PHN0cm9uZz5CPC9zdHJvbmc+
PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJi
dXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaXRhbGljIiB0aXRsZT0iS3Vyc2l2IChD
dHJsK0kpIj48ZW0+STwvZW0+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0idW5kZXJs
aW5lIiB0aXRsZT0iVW50ZXJzdHJpY2hlbiAoQ3RybCtVKSI+PHU+VTwvdT48L2J1dHRvbj4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icnRlLXNlcCI+PC9zcGFu
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBj
bGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Imluc2VydFVub3JkZXJlZExpc3QiIHRpdGxlPSJBdWZ6
w6RobHVuZyI+4oCiPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1
dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0T3JkZXJl
ZExpc3QiIHRpdGxlPSJOdW1tZXJpZXJ0Ij4xLjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBk
YXRhLWNtZD0ib3V0ZGVudCIgdGl0bGU9IkF1c3LDvGNrZW4iPuKHpDwvYnV0dG9uPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRl
LWJ0biIgZGF0YS1jbWQ9ImluZGVudCIgdGl0bGU9IkVpbnLDvGNrZW4iPuKHpTwvYnV0dG9uPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3Nw
YW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24i
IGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0icmVtb3ZlRm9ybWF0IiB0aXRsZT0iRm9ybWF0aWVy
dW5nIGVudGZlcm5lbiI+4pyVPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImloLWluZm90ZXh0IiBj
bGFzcz0icnRlLWVkaXRvciIgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzcGVsbGNoZWNrPSJ0cnVl
IiBzdHlsZT0ibWluLWhlaWdodDo4MHB4Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAg
PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NjAwO21hcmdp
bi1ib3R0b206NnB4Ij5TdXBwb3J0LUluZm8gKEFuc3ByZWNocGFydG5lciBiZWkgRnJhZ2VuKTwv
bGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJydGUtdG9vbGJh
ciIgZGF0YS1ydGUtZm9yPSJpaC1zdXBwb3J0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJib2xk
IiB0aXRsZT0iRmV0dCAoQ3RybCtCKSI+PHN0cm9uZz5CPC9zdHJvbmc+PC9idXR0b24+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJy
dGUtYnRuIiBkYXRhLWNtZD0iaXRhbGljIiB0aXRsZT0iS3Vyc2l2IChDdHJsK0kpIj48ZW0+STwv
ZW0+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBl
PSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0idW5kZXJsaW5lIiB0aXRsZT0iVW50
ZXJzdHJpY2hlbiAoQ3RybCtVKSI+PHU+VTwvdT48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icnRlLXNlcCI+PC9zcGFuPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIg
ZGF0YS1jbWQ9Imluc2VydFVub3JkZXJlZExpc3QiIHRpdGxlPSJBdWZ6w6RobHVuZyI+4oCiPC9i
dXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0
b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0T3JkZXJlZExpc3QiIHRpdGxlPSJO
dW1tZXJpZXJ0Ij4xLjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxz
cGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0ib3V0ZGVu
dCIgdGl0bGU9IkF1c3LDvGNrZW4iPuKHpDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9
ImluZGVudCIgdGl0bGU9IkVpbnLDvGNrZW4iPuKHpTwvYnV0dG9uPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRu
IiBkYXRhLWNtZD0icmVtb3ZlRm9ybWF0IiB0aXRsZT0iRm9ybWF0aWVydW5nIGVudGZlcm5lbiI+
4pyVPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImloLXN1cHBvcnQiIGNsYXNzPSJydGUtZWRpdG9y
IiBjb250ZW50ZWRpdGFibGU9InRydWUiIHNwZWxsY2hlY2s9InRydWUiIHN0eWxlPSJtaW4taGVp
Z2h0OjEwMHB4Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwg
c3R5bGU9ImRpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1ib3R0b206NnB4Ij5B
bGxnZW1laW5lIEhpbGZlIChmcmVpZXIgVGV4dCk8L2xhYmVsPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0icnRlLXRvb2xiYXIiIGRhdGEtcnRlLWZvcj0iaWgtaGlsZmUi
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBj
bGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9ImJvbGQiIHRpdGxlPSJGZXR0IChDdHJsK0IpIj48c3Ry
b25nPkI8L3N0cm9uZz48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJpdGFsaWMiIHRp
dGxlPSJLdXJzaXYgKEN0cmwrSSkiPjxlbT5JPC9lbT48L2J1dHRvbj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRh
dGEtY21kPSJ1bmRlcmxpbmUiIHRpdGxlPSJVbnRlcnN0cmljaGVuIChDdHJsK1UpIj48dT5VPC91
PjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJy
dGUtc2VwIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0
eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0VW5vcmRlcmVkTGlz
dCIgdGl0bGU9IkF1ZnrDpGhsdW5nIj7igKI8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21k
PSJpbnNlcnRPcmRlcmVkTGlzdCIgdGl0bGU9Ik51bW1lcmllcnQiPjEuPC9idXR0b24+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xh
c3M9InJ0ZS1idG4iIGRhdGEtY21kPSJvdXRkZW50IiB0aXRsZT0iQXVzcsO8Y2tlbiI+4oekPC9i
dXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0
b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5kZW50IiB0aXRsZT0iRWlucsO8Y2tlbiI+
4oelPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9
InJ0ZS1zZXAiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9u
IHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJyZW1vdmVGb3JtYXQiIHRp
dGxlPSJGb3JtYXRpZXJ1bmcgZW50ZmVybmVuIj7inJU8L2J1dHRvbj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0i
aWgtaGlsZmUiIGNsYXNzPSJydGUtZWRpdG9yIiBjb250ZW50ZWRpdGFibGU9InRydWUiIHNwZWxs
Y2hlY2s9InRydWUiIHN0eWxlPSJtaW4taGVpZ2h0OjEyMHB4Ij48L2Rpdj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS10
ZXh0LW11dGVkKTttYXJnaW4tdG9wOjRweCI+UGxhdHogZsO8ciBnZW5lcmVsbGUgSGlsZmV0ZXh0
ZSwgRkFRcywgVmVyd2Vpc2UuIEVyc2NoZWludCBpbSBJbmZvLUZlbnN0ZXIgw7xiZXIgZGVuIEJl
ZGllbnVuZ3MtSGlud2Vpc2VuLjwvc21hbGw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2
PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tYm90
dG9tOjZweCI+QmVkaWVudW5ncy1IaW53ZWlzZSAoamVkZXIgQnVsbGV0ID0gZWluZSBaZWlsZSAv
IGVpbiBMaXN0ZW5wdW5rdCk8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0icnRlLXRvb2xiYXIiIGRhdGEtcnRlLWZvcj0iaWgtYmVkaWVudW5nIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0
ZS1idG4iIGRhdGEtY21kPSJib2xkIiB0aXRsZT0iRmV0dCAoQ3RybCtCKSI+PHN0cm9uZz5CPC9z
dHJvbmc+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0
eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaXRhbGljIiB0aXRsZT0iS3Vy
c2l2IChDdHJsK0kpIj48ZW0+STwvZW0+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0i
dW5kZXJsaW5lIiB0aXRsZT0iVW50ZXJzdHJpY2hlbiAoQ3RybCtVKSI+PHU+VTwvdT48L2J1dHRv
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icnRlLXNlcCI+
PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0
dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Imluc2VydFVub3JkZXJlZExpc3QiIHRpdGxl
PSJBdWZ6w6RobHVuZyI+4oCiPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0
T3JkZXJlZExpc3QiIHRpdGxlPSJOdW1tZXJpZXJ0Ij4xLjwvYnV0dG9uPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUt
YnRuIiBkYXRhLWNtZD0ib3V0ZGVudCIgdGl0bGU9IkF1c3LDvGNrZW4iPuKHpDwvYnV0dG9uPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFz
cz0icnRlLWJ0biIgZGF0YS1jbWQ9ImluZGVudCIgdGl0bGU9IkVpbnLDvGNrZW4iPuKHpTwvYnV0
dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJydGUtc2Vw
Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJi
dXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0icmVtb3ZlRm9ybWF0IiB0aXRsZT0iRm9y
bWF0aWVydW5nIGVudGZlcm5lbiI+4pyVPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImloLWJlZGll
bnVuZyIgY2xhc3M9InJ0ZS1lZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgc3BlbGxjaGVj
az0idHJ1ZSIgc3R5bGU9Im1pbi1oZWlnaHQ6MTYwcHgiPjwvZGl2PgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLXRleHQt
bXV0ZWQpO21hcmdpbi10b3A6NHB4Ij5adXLDvGNrc2V0emVuIGF1ZiBEZWZhdWx0OiBFZGl0b3Ig
bGVlcmVuIHVuZCBzcGVpY2hlcm4g4oCUIGRlciBJbmZvLUJsb2NrIHplaWd0IGRhbm4gZGllIGVp
bmdlYmF1dGVuIERlZmF1bHQtSGlud2Vpc2UuPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAg
ICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NjAwO21h
cmdpbi1ib3R0b206NnB4Ij5TY2hsaWXDny1JbmZvIChIaW53ZWlzIGJlaW0gQXV0by1TaHV0ZG93
bik8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJpaC1z
Y2hsaWVzc2luZm8iIGNsYXNzPSJmb3JtLWlucHV0IiByb3dzPSIzIiBzdHlsZT0id2lkdGg6MTAw
JSIgcGxhY2Vob2xkZXI9InouQi4gJ0RpZXNlIEFud2VuZHVuZyBzY2hsaWXDn3QgbmFjaCB7bWlu
dXRlbn0gTWludXRlbiBJbmFrdGl2aXTDpHQgYXV0b21hdGlzY2guJyI+PC90ZXh0YXJlYT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZGlzcGxheTpibG9jaztjb2xv
cjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjRweCI+UGxhdHpoYWx0ZXIgPGNvZGU+e21p
bnV0ZW59PC9jb2RlPiB3aXJkIGR1cmNoIGRpZSBTY2hsaWXDn3plaXQgZXJzZXR6dC4gS2VpbiBS
aWNoLVRleHQg4oCUIHdpcmQgYWxzIHJlaW5lciBUZXh0IHZlcndlbmRldC48L3NtYWxsPgogICAg
ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT0iZGlzcGxheTpibG9jaztm
b250LXdlaWdodDo2MDA7bWFyZ2luLWJvdHRvbTo2cHgiPkltcHJlc3N1bSAoZXJzY2hlaW50IMO8
YmVyIGRlbiBCdXR0b24g4oCeSW1wcmVzc3VtIiBpbSBJbmZvLUZlbnN0ZXIpPC9sYWJlbD4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJ0ZS10b29sYmFyIiBkYXRhLXJ0
ZS1mb3I9ImloLWltcHJlc3N1bSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1
dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iYm9sZCIgdGl0bGU9
IkZldHQgKEN0cmwrQikiPjxzdHJvbmc+Qjwvc3Ryb25nPjwvYnV0dG9uPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIg
ZGF0YS1jbWQ9Iml0YWxpYyIgdGl0bGU9Ikt1cnNpdiAoQ3RybCtJKSI+PGVtPkk8L2VtPjwvYnV0
dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9u
IiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9InVuZGVybGluZSIgdGl0bGU9IlVudGVyc3RyaWNo
ZW4gKEN0cmwrVSkiPjx1PlU8L3U+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21k
PSJpbnNlcnRVbm9yZGVyZWRMaXN0IiB0aXRsZT0iQXVmesOkaGx1bmciPuKAojwvYnV0dG9uPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFz
cz0icnRlLWJ0biIgZGF0YS1jbWQ9Imluc2VydE9yZGVyZWRMaXN0IiB0aXRsZT0iTnVtbWVyaWVy
dCI+MS48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFz
cz0icnRlLXNlcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0
b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Im91dGRlbnQiIHRpdGxl
PSJBdXNyw7xja2VuIj7ih6Q8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJpbmRlbnQi
IHRpdGxlPSJFaW5yw7xja2VuIj7ih6U8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8c3BhbiBjbGFzcz0icnRlLXNlcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1j
bWQ9InJlbW92ZUZvcm1hdCIgdGl0bGU9IkZvcm1hdGllcnVuZyBlbnRmZXJuZW4iPuKclTwvYnV0
dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8ZGl2IGlkPSJpaC1pbXByZXNzdW0iIGNsYXNzPSJydGUtZWRpdG9yIiBjb250
ZW50ZWRpdGFibGU9InRydWUiIHNwZWxsY2hlY2s9InRydWUiIHN0eWxlPSJtaW4taGVpZ2h0OjE4
MHB4Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZGlz
cGxheTpibG9jaztjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjRweCI+SW5pdGlh
bCBtaXQgZWluZW0gc2lubnZvbGxlbiBEZWZhdWx0IGJlZsO8bGx0IChQb2xpemVpcHLDpHNpZGl1
bSBEb3J0bXVuZCAvIFZJIDMgLyB0ZWNobmlzY2hlIEtvbnplcHRpb24gLyBMaXplbnpoaW53ZWlz
ZSAvIEhhZnR1bmdzYXVzc2NobHVzcykuIEJpdHRlIEFuc2NocmlmdCBlcmfDpG56ZW4gdW5kIGdn
Zi4gYW4gZGllIHRhdHPDpGNobGljaGUgRGllbnN0c3RlbGxlIGFucGFzc2VuLiA8c3Ryb25nPk5p
Y2h0IGdlbMO2c2NodDwvc3Ryb25nPiB3aXJkIGRlciBOb3RmYWxsLUhpbndlaXMgYXVmIFBISyBS
b2VzZ2VuIOKAlCBkZXIgaXN0IGltIEltcHJlc3N1bXMtTW9kYWwgZmVzdCB1bnRlbiB2ZXJhbmtl
cnQgdW5kIGthbm4gaGllciBuaWNodCBlbnRmZXJudCB3ZXJkZW4uPC9zbWFsbD4KICAgICAgICAg
ICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
ICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWluZm9oaWxmZS1zcGVpY2hlcm4iIGNsYXNzPSJi
dG4gYnRuLXByaW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHgiPkluZm9ybWF0aW9uICZhbXA7
IEhpbGZlIHNwZWljaGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4K
ICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBCZXplaWNo
bnVuZ2VuICYgTGlzdGVuIOKAlCBlZGl0aWVyYmFyZSBTdGFtbWRhdGVuLUxpc3RlbgogICAgICAg
ICAgICAgICAgICAgICAoRGllbnN0Z3JhZGUsIEZ1bmt0aW9uZW4pIHN0YXR0IGhhcnRjb2RpZXJ0
ZSBDb2RlLUtvbnN0YW50ZW4uIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4t
dGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1saXN0ZW4iPgogICAgICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+QmV6
ZWljaG51bmdlbiAmYW1wOyBMaXN0ZW48L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog
ICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8t
a2V5PSJsaXN0ZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFz
cz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+V2FzIHdpcmQgaGllciBnZXBmbGVndD88c3Bh
biBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48
L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8t
Ym9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkRpZW5zdGdyYWRl
PC9zdHJvbmc+IOKAlCBkaWUgRGllbnN0Z3JhZC1BdXN3YWhsIGluIGRlciBQZXJzb25hbHZlcndh
bHR1bmcgKHouQi4gUE9LLCBQSEssIEVQSEspLiBSZWloZW5mb2xnZSBiZXN0aW1tdCBkaWUgU29y
dGllcnVuZyBpbSBEcm9wZG93bjogPGVtPm9iZW4gPSBow7ZoZXIgZ2VzdGVsbHQ8L2VtPi4gVmVy
d2VuZGUgZGVuIFN0ZXJuIDxjb2RlPio8L2NvZGU+IGbDvHIgWndpc2NoZW5zdHVmZW4gd2llIDxj
b2RlPlBISyo8L2NvZGU+IChBMTIgendpc2NoZW4gUEhLIEExMSB1bmQgRVBISyBBMTMpLjwvcD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RnVua3Rpb25lbjwvc3Ryb25n
PiDigJQgU3RhbW0tRnVua3Rpb24gZWluZXIgUGVyc29uIChER0wsIFdERiwgV2FjaGxlaXR1bmcs
IC4uLikuIERlciA8c3Ryb25nPlJhbmc8L3N0cm9uZz4gYmVzdGltbXQgZGllIFZlcmFudHdvcnR1
bmdzLVJlaWhlbmZvbGdlIGluIGRlciBTY2hpY2h0ICgwID0gaMO2Y2hzdGUgVmVyYW50d29ydHVu
ZykuIFBlcnNvbmVuIG1pdCBnbGVpY2hlbSBSYW5nIHdlcmRlbiDDvGJlciBpaHJlIHJvaGUgUG9z
aXRpb25zLVphaGwgc29ydGllcnQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+
PHN0cm9uZz5Wb3JzaWNodCBiZWltIEzDtnNjaGVuOjwvc3Ryb25nPiBQZXJzb25lbiwgZGllIGVp
bmVuIGVudGZlcm50ZW4gRGllbnN0Z3JhZCBvZGVyIGVpbmUgZW50ZmVybnRlIEZ1bmt0aW9uIHRy
YWdlbiwgYmVoYWx0ZW4gZGVuIGFsdGVuIFdlcnQsIGvDtm5uZW4gaWhuIGFiZXIgbmljaHQgbWVo
ciBuZXUgYXVzd8OkaGxlbiwgYmlzIGVyIHdpZWRlciBpbiBkZXIgTGlzdGUgc3RlaHQuPC9wPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFp
bHM+CgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhZG1pbi1zZWt0aW9uIiBp
ZD0iYWRtaW4tc2VrdGlvbi1saXN0ZW4tZGllbnN0Z3JhZGUiPgogICAgICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1zZWt0aW9uLWtvcGYiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGgzPkRpZW5zdGdyYWRlPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxidXR0b24gaWQ9ImJ0bi1kaWVuc3RncmFkLW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj5O
ZXVlciBEaWVuc3RncmFkPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog
ICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUiIGlkPSJk
aWVuc3RncmFkZS10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NjBweCI+UmFuZzwvdGg+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5CZXplaWNobnVuZzwvdGg+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTMwcHgiPkFrdGlv
bmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0
Ym9keSBpZD0iZGllbnN0Z3JhZGUtdGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhZG1pbi1oaW53
ZWlzIj48ZW0+UmVpaGVuZm9sZ2UgcGVyIOKGkSDihpMgw6RuZGVybi4gSG9lY2hzdGVyIERpZW5z
dGdyYWQgenVlcnN0LjwvZW0+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlk
PSJidG4tZGllbnN0Z3JhZGUtc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBzdHls
ZT0ibWFyZ2luLXRvcDoxMnB4Ij5EaWVuc3RncmFkZSBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAg
ICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNs
YXNzPSJhZG1pbi1zZWt0aW9uIiBpZD0iYWRtaW4tc2VrdGlvbi1saXN0ZW4tZnVua3Rpb25lbiI+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXNla3Rpb24ta29wZiI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+RnVua3Rpb25lbjwvaDM+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZnVua3Rpb24tbmV1IiBjbGFzcz0i
YnRuIGJ0bi1lcmZvbGciPk5ldWUgRnVua3Rpb248L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4t
dGFiZWxsZSIgaWQ9ImZ1bmt0aW9uZW4tdGFiZWxsZSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjYwcHgiPlBvczwv
dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5CZXplaWNobnVuZzwv
dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6
ODBweCIgdGl0bGU9IjAgPSBob2VjaHN0ZSBWZXJhbnR3b3J0dW5nLCA5OSA9IHVucmVsZXZhbnQu
IFBlcnNvbmVuIG1pdCBnbGVpY2hlbSBSYW5nIHdlcmRlbiBkdXJjaCBkaWUgcm9oZSBQb3NpdGlv
bnMtWmFobCBzb3J0aWVydC4iPlJhbmc8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE0MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0i
V2VubiBkZWFrdGl2aWVydCwgd2VyZGVuIFBlcnNvbmVuIG1pdCBkaWVzZXIgRnVua3Rpb24gTklD
SFQgaW4gZGVyIFBsYW51bmdzYW5zaWNodCwgaW0gV29jaGVucGxhbiB1bmQgaW0gUGVycy4gUGxh
biBhbmdlemVpZ3Qg4oCUIGJsZWliZW4gYWJlciBpbiBkZXIgUGVyc29uYWx2ZXJ3YWx0dW5nIHBm
bGVnYmFyLiI+SW4gUGxhbnVuZyBzaWNodGJhcjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MTMwcHgiPkFrdGlvbmVuPC90aD4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0iZnVua3Rp
b25lbi10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAg
ICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImFkbWluLWhpbndlaXMiPjxlbT5SZWloZW5m
b2xnZSBwZXIg4oaRIOKGkyDDpG5kZXJuLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgICAgICAg
ICA8YnV0dG9uIGlkPSJidG4tZnVua3Rpb25lbi1zcGVpY2hlcm4iIGNsYXNzPSJidG4gYnRuLXBy
aW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjEycHgiPkZ1bmt0aW9uZW4gc3BlaWNoZXJuPC9idXR0
b24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9kaXY+
CgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBFLU1haWwtVm9ybGFnZW4g4oCUIEthcnRlbi1M
YXlvdXQgKEZpbmRpbmcgQy43IC8gU3BlYyBGLjEpIC0tPgogICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1lbWFpbHZvcmxhZ2VuIj4K
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAg
ICAgICAgICAgICAgPGgyPkUtTWFpbC1Wb3JsYWdlbjwvaDI+CiAgICAgICAgICAgICAgICAgICAg
PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRh
dGEtaW5mby1rZXk9ImVtYWlsdm9ybGFnZW4iIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAg
IDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5Xb3p1IGRp
ZXNlIFZvcmxhZ2VuPzxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8g
WnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkhp
ZXIgd2VyZGVuIEJldHJlZmYgdW5kIFRleHQgYWxsZXIgRS1NYWlsLVZvcmxhZ2VuIGdlcGZsZWd0
LiBWYXJpYWJsZW4gd2llIDxjb2RlPntkYXR1bX08L2NvZGU+IG9kZXIgPGNvZGU+e3BlcnNvbl9u
YW1lfTwvY29kZT4gd2VyZGVuIGJlaW0gw5ZmZm5lbiBkZXIgTWFpbCBhdXRvbWF0aXNjaCBkdXJj
aCBrb25rcmV0ZSBXZXJ0ZSBlcnNldHp0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxwPjxzdHJvbmc+VmVyc2FuZCBhdXNzY2hsaWXDn2xpY2ggw7xiZXIgZGFzIFN0YW5kYXJkLU1h
aWxwcm9ncmFtbSAoT3V0bG9vayk8L3N0cm9uZz4g4oCUIGJlaW0gYXVzbMO2c2VuZGVuIEVyZWln
bmlzICh6LkIuIEVpbnRyYWcgZWluZXIgS3JhbmttZWxkdW5nKSDDtmZmbmV0IHNpY2ggZWluZSB2
b3JhdXNnZWbDvGxsdGUgTWFpbCBtaXQgRW1wZsOkbmdlcm4sIEJldHJlZmYgdW5kIFRleHQuIER1
IHByw7xmc3QgZGllIE1haWwgdW5kIHZlcnNjaGlja3N0IHNpZSBtYW51ZWxsIHBlciBLbGljayBh
dWYg4oCeU2VuZGVuIi4gS2VpbiBhdXRvbWF0aXNjaGVyIFZlcnNhbmQuPC9wPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5BdXRvLVRyaWdnZXIgYWt0aXZpZXJlbjwvc3Ry
b25nPiDigJQgaW0gRWRpdG9yLU1vZGFsIGVpbmVyIFZvcmxhZ2UgcHJvIFRyaWdnZXIgZWluc3Rl
bGxiYXIgKEFrdGl2aWVyZW4gKyBFbXBmw6RuZ2VyIHfDpGhsZW4pLiBTb2xhbmdlIGVpbiBUcmln
Z2VyIGRlYWt0aXZpZXJ0IGlzdCwgw7ZmZm5ldCBzaWNoIGJlaW0gRXJlaWduaXMga2VpbiBQb3B1
cC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkRlZml6aXQtQnJp
ZWZpbmc8L3N0cm9uZz4g4oCUIHdpcmQgbWFudWVsbCBwZXIgQnV0dG9uIGltIFRhYiA8ZW0+UHLD
vGZ1bmc8L2VtPiBhdXNnZWzDtnN0IChrZWluIFNjaGVkdWxlcikuIERlciBCdXR0b24gw7ZmZm5l
dCBPdXRsb29rIG1pdCBlaW5lciDDnGJlcnNpY2h0IGFsbGVyIFVudGVyYmVzZXR6dW5nZW4gZGVy
IG7DpGNoc3RlbiA0IFdvY2hlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog
ICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlk
PSJlbWFpbHZvcmxhZ2VuLWluaGFsdCI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwhLS0g
U3VwcG9ydC1NYWlsLVZvcmxhZ2U6IG51ciBmdWVyIFBoaWxpcHAgUm9lc2dlbiBzaWNodGJhci4K
ICAgICAgICAgICAgICAgICAgICAgICAgIFdpcmQgcGVyIEpTIGluIGFwcC5qcyAvIGFkbWluLmpz
IGVpbmdlYmxlbmRldCwKICAgICAgICAgICAgICAgICAgICAgICAgIHdlbm4gWi5iZW51dHplciBt
aXQgTlcwNTM2MDkgbWF0Y2hlZC4gLS0+CiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xh
c3M9ImFkbWluLXNla3Rpb24gdmVyc3RlY2t0IiBpZD0iYWRtaW4tc2VrdGlvbi1zdXBwb3J0bWFp
bCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXNla3Rpb24ta29w
ZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+U3VwcG9ydC1NYWlsLVZvcmxhZ2Ug
KEltcHJlc3N1bXMtTW9kYWwpPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFu
IGNsYXNzPSJyZWNodGUtZGlydHktaGlud2VpcyIgc3R5bGU9ImZvbnQtc3R5bGU6aXRhbGljIj5O
dXIgZsO8ciBQSEsgUm9lc2dlbiBzaWNodGJhcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAg
ICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1p
bmZvIiBkYXRhLWluZm8ta2V5PSJzdXBwb3J0bWFpbCI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+V2Fz
IGlzdCBkYXM/PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWts
YXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
cD5IaWVyIGthbm5zdCBkdSBkZW4gQm9keSBkZXIgU3VwcG9ydC1NYWlsIGFucGFzc2VuLCBkaWUg
YmVpbSBLbGljayBhdWYgPGVtPuKAnlN1cHBvcnQtQW5mcmFnZSBwZXIgRS1NYWlsIjwvZW0+IGlt
IEltcHJlc3N1bXMtTW9kYWwgdm9yYXVzZ2Vmw7xsbHQgd2lyZC4gUGxhaW4tVGV4dCwga2VpbiBI
VE1MIOKAlCBPdXRsb29rIMO8YmVybmltbXQncyAxOjEuPC9wPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxwPjxzdHJvbmc+UGxhdHpoYWx0ZXI8L3N0cm9uZz4gKHdlcmRlbiBiZWlt
IFNlbmRlbiBhdXRvbWF0aXNjaCBlcnNldHp0KTo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGNv
ZGU+e253X2tlbm51bmd9PC9jb2RlPiDigJQgV2luZG93cy1Vc2VyIGRlcyBBYnNlbmRlcnMgKHou
Jm5ic3A7Qi4gPGNvZGU+UE9MSVpFSVxOVzA1NTgwMTwvY29kZT4pPC9saT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxjb2RlPntha3R1ZWxsZV9hbnNpY2h0fTwvY29k
ZT4g4oCUIFRhYiwgZGVuIGRlciBVc2VyIHp1bGV0enQgb2ZmZW4gaGF0dGU8L2xpPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGNvZGU+e2RhdHVtfTwvY29kZT4g4oCU
IGhldXRlLCA8Y29kZT5kZC5tbS5qampqPC9jb2RlPjwvbGk+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxsaT48Y29kZT57dWhyemVpdH08L2NvZGU+IOKAlCBqZXR6dCwgPGNv
ZGU+aGg6bW08L2NvZGU+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGxpPjxjb2RlPnthdWZsb2VzdW5nfTwvY29kZT4g4oCUIFZpZXdwb3J0LCB6LiZuYnNwO0IuIDxj
b2RlPjE5MjB4MTA4MDwvY29kZT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bGk+PGNvZGU+e2FwcF9qYWhyfTwvY29kZT4g4oCUIFdlcnQgYXVzIGFkbWluLmpzb248
L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGNvZGU+e2Jyb3dz
ZXJ9PC9jb2RlPiDigJQgQnJvd3Nlci1Vc2VyLUFnZW50IChtYXggMTIwIFplaWNoZW4pPC9saT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxwPjxzdHJvbmc+RW1wZsOkbmdlciB1bmQgQmV0cmVmZjwvc3Ryb25nPiBz
aW5kIGhhcnRjb2RpZXJ0ICg8Y29kZT5waGlsaXBwLnJvZXNnZW5AcG9saXplaS5ucncuZGU8L2Nv
ZGU+IC8gPGNvZGU+VkkzIERHTCBQbGFudW5nIC0gRG9ydG11bmQ8L2NvZGU+KSDigJQgbmljaHQg
w7xiZXIgZGllc2VuIEVkaXRvciDDpG5kZXJiYXIuPC9wPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAg
ICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJzdXBwb3J0bWFpbC10ZXh0IiBjbGFzcz0iZm9y
bS1pbnB1dCIgcm93cz0iMjIiIHN0eWxlPSJ3aWR0aDoxMDAlO2ZvbnQtZmFtaWx5OnVpLW1vbm9z
cGFjZSxTRk1vbm8tUmVndWxhcixNZW5sbyxDb25zb2xhcyxtb25vc3BhY2U7Zm9udC1zaXplOjEy
cHg7bGluZS1oZWlnaHQ6MS41IiBwbGFjZWhvbGRlcj0iKGxlZXIgPSBlaW5nZWJhdXRlciBEZWZh
dWx0IHdpcmQgdmVyd2VuZGV0KSI+PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICAgICAg
PGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50
ZXI7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGJ1dHRvbiBpZD0iYnRuLXN1cHBvcnRtYWlsLXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJp
bWFlciI+Vm9ybGFnZSBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxidXR0b24gaWQ9ImJ0bi1zdXBwb3J0bWFpbC1kZWZhdWx0IiBjbGFzcz0iYnRuIGJ0bi1z
ZWsgYnRuLWtsZWluIj5BdWYgRGVmYXVsdCB6dXLDvGNrc2V0emVuPC9idXR0b24+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc3VwcG9ydG1haWwtdm9yc2NoYXUi
IGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iIHRpdGxlPSJPdXRsb29rIG1pdCBha3R1ZWxs
ZXIgVm9ybGFnZSArIExpdmUtV2VydGVuIMO2ZmZuZW4iPk91dGxvb2stVm9yc2NoYXUgw7ZmZm5l
bjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9InN1cHBvcnRt
YWlsLWRpcnR5LWhpbndlaXMiIGNsYXNzPSJyZWNodGUtZGlydHktaGlud2VpcyIgc3R5bGU9ImRp
c3BsYXk6bm9uZSI+4pePIFVuZ2VzcGVpY2hlcnRlIMOEbmRlcnVuZ2VuPC9zcGFuPgogICAgICAg
ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAg
ICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0tIFRhYjogTWl0dGVpbHVu
Z2VuIChTcHJpbnQgRC0zYywgMjAyNi0wNS0yOSkg4oCUIFNVLW9ubHkuCiAgICAgICAgICAgICAg
ICAgICAgIFZvbSBTdXBlclVzZXIgZ2VwZmxlZ3RlIE1vZGFsZS1IaW53ZWlzZSBhbiBQZXJzb25l
bi8KICAgICAgICAgICAgICAgICAgICAgR3J1cHBlbi9Sb2xsZW4gbWl0IFRyaWdnZXIgKyBBbmhh
ZW5nZW4uIEtvbXBsZXR0ZSBVSQogICAgICAgICAgICAgICAgICAgICB3aXJkIHp1ciBMYXVmemVp
dCBhdXMganMvYWRtaW5fbWl0dGVpbHVuZ2VuLmpzIGdlcmVuZGVydC4gLS0+CiAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLW1pdHRl
aWx1bmdlbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDxoMj5NaXR0ZWlsdW5nZW48L2gyPgogICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1p
bmZvIiBkYXRhLWluZm8ta2V5PSJtaXR0ZWlsdW5nZW4iPgogICAgICAgICAgICAgICAgICAgICAg
ICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+V2FzIHNp
bmQgTWl0dGVpbHVuZ2VuPzxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVu
IC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw
PjxzdHJvbmc+V296dT88L3N0cm9uZz4gU3VwZXJVc2VyIGvDtm5uZW4gaGllciBIaW53ZWlzZSBm
w7xyIGF1c2dld8OkaGx0ZSBQZXJzb25lbiwgR3J1cHBlbiBvZGVyIFJvbGxlbiBhbmxlZ2VuLiBE
aWVzZSBlcnNjaGVpbmVuIGJlaW0gbsOkY2hzdGVuIEFwcC1TdGFydCBhbHMgTW9kYWwtU3RhY2sg
KG9iZW4gZHVyY2hnZWhlbmQsIG9kZXIgZWlubWFsIHBybyBUYWcg4oCUIGplIG5hY2ggVHJpZ2dl
cikuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5FbXBmw6RuZ2Vy
PC9zdHJvbmc+IHNpbmQga29tYmluaWVyYmFyOiBlaW56ZWxuZSBQZXJzb25lbiwgZ2FuemUgRGll
bnN0Z3J1cHBlbiwgUm9sbGVuIChER0wvV0RGL+KApiwgU1UsIEdlc2FtdHZlcmFudHdvcnRsaWNo
KSBvZGVyIOKAnkFsbGUiIChqZWRlciBlaW5nZWxvZ2d0ZSBVc2VyKS48L3A+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlRyaWdnZXI6PC9zdHJvbmc+IDxlbT5laW5tYWw8
L2VtPiA9IFVzZXIgc2llaHQgZGllIE1pdHRlaWx1bmcgZ2VuYXUgZWluIE1hbCB1bmQgbmllIHdp
ZWRlci4gPGVtPmplZGVzIE1hbDwvZW0+ID0gYmVpIGplZGVtIExvZ2luIChtYXguIDHDlyBwcm8g
S2FsZW5kZXJ0YWcpLiA8ZW0+YmlzIERhdHVtPC9lbT4gPSB0w6RnbGljaCBiaXMgenVtIFN0aWNo
dGFnLCBkYW5hY2ggbmllIHdpZWRlci48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
cD48c3Ryb25nPkFuaMOkbmdlOjwvc3Ryb25nPiBlaW4gVGh1bWJuYWlsLUJpbGQgKG1heC4gMiBN
QiwgSlBHL1BORy9XZWJQKSB1bmQvb2RlciBlaW4gUERGIChtYXguIDEwIE1CKSBrw7ZubmVuIGJl
aWdlZsO8Z3Qgd2VyZGVuLiBLbGljayBhdWYgZGVuIEFuaGFuZyDDtmZmbmV0IGlobiBpbSBWb2xs
YmlsZC1TdWItTW9kYWwuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9u
Zz5XYXMncyBuZXUgbWFjaHQ6PC9zdHJvbmc+IGVpbmUgZ2xvYmFsZSBNaXR0ZWlsdW5nIG1pdCBF
bXBmw6RuZ2VyIOKAnkFsbGUiIHVuZCBUcmlnZ2VyIOKAnmVpbm1hbCIgaXN0IGVmZmVrdGl2IGVp
biDigJ5XaGF0J3MgTmV3Ii1FaW50cmFnLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImFkbWluLWtvcGYiIHN0eWxlPSJtYXJnaW4tdG9wOjhweDtqdXN0aWZ5LWNvbnRl
bnQ6ZmxleC1lbmQiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tbWl0
dGVpbHVuZy1uZXUiIGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+KyBOZXVlIE1pdHRlaWx1bmc8L2J1
dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2
IGlkPSJtaXR0ZWlsdW5nZW4taW5oYWx0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoK
ICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBSZWNodGUgJiBTaWNodGJhcmtlaXQgKE1lcmdlIOKA
lCBTdXBlclVzZXIgKyBGYWNoYXVmc2ljaHQgKyBTaWNodGJhcmtlaXQpIC0tPgogICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1zdXBl
cnVzZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAg
ICAgICAgICAgICAgICAgICAgICA8aDI+UmVjaHRlICZhbXA7IFNpY2h0YmFya2VpdDwvaDI+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJyZWNodGUtdGFiLXN1YiI+Um9sbGVuLVNs
b3RzIG1pdCBrb25maWd1cmllcmJhcmVyIFNlaGVuLS9CZWFyYmVpdGVuLVNpY2h0YmFya2VpdC4g
U3VwZXJVc2VyIHN0aWNodCBhbGxlIGFuZGVyZW4g4oCUIHNpZSBzZWhlbiB1bmQga8O2bm5lbiBp
bW1lciBhbGxlcy4gV2VyIGluIGtlaW5lciBkaWVzZXIgTGlzdGVuIHN0ZWh0LCBzaWVodCB3ZWRl
ciBTdGF0aXN0aWsgbm9jaCBMb2didWNoIG5vY2ggQWRtaW5pc3RyYXRpb24uPC9wPgogICAgICAg
ICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0i
YWRtaW4tc2VrdGlvbiByZWNodGUtY2FyZCByZWNodGUtY2FyZC1zdSIgaWQ9ImFkbWluLXNla3Rp
b24tc3VwZXJ1c2VyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9InJl
Y2h0ZS1yb2xsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5IGNsYXNzPSJyZWNo
dGUtcm9sbGUtc3VtbWFyeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFz
cz0icmVjaHRlLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPvCfm6E8L3NwYW4+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVjaHRlLXJvbGxlLXRpdGVsIj48
c3Ryb25nPlN1cGVyVXNlcjwvc3Ryb25nPjxzcGFuIGNsYXNzPSJyZWNodGUtY2FyZC1zdWIiPlZv
bGx6dWdyaWZmIGF1ZiBhbGxlIEZ1bmt0aW9uZW4uIFZlcndhbHRldCBhbmRlcmUgUm9sbGVuLjwv
c3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVj
aHRlLXJvbGxlLWNoZXYiIGFyaWEtaGlkZGVuPSJ0cnVlIj7ilrg8L3NwYW4+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0icmVjaHRlLXJvbGxlLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0icmVjaHRlLXJvbGxlLWFrdGlvbiI+PGJ1dHRvbiBpZD0iYnRuLXN1cGVydXNlci1uZXUi
IGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+TmV1ZXIgU3VwZXJVc2VyPC9idXR0b24+PC9kaXY+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWlu
Zm8ta2V5PSJzdXBlcnVzZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+
PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IFN1cGVy
VXNlcm48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBl
bjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxz
dHJvbmc+V2FzIGlzdCBlaW4gU3VwZXJVc2VyPzwvc3Ryb25nPiBTdXBlclVzZXIgaGFiZW4gdW5l
aW5nZXNjaHLDpG5rdGVuIFp1Z3JpZmYgYXVmIGFsbGUgQWRtaW5pc3RyYXRpb25zZnVua3Rpb25l
biwgZWluc2NobGllw59saWNoIGRlciBWZXJ3YWx0dW5nIGFuZGVyZXIgU3VwZXJVc2VyLCBkZW0g
U2V0emVuIHZvbiBTb25kZXJ0ZXJtaW5lLUhpbndlaXNlbiBkaXJla3QgaW4gZGVyIFBsYW51bmcg
dW5kIGRlciBQZmxlZ2UgZGVyIGdsb2JhbGVuIEVpbnN0ZWxsdW5nZW4uPC9wPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+U2ljaGVyaGVpdHNoaW53ZWlzOjwvc3Ry
b25nPiBOdXIgYmVzdGVoZW5kZSBTdXBlclVzZXIga8O2bm5lbiBkaWVzZSBMaXN0ZSBiZWFyYmVp
dGVuLiBEYW1pdCB3aXJkIHZlcmhpbmRlcnQsIGRhc3MgQWRtaW4tUmVjaHRlIHZlcmxvcmVuIGdl
aGVuIG9kZXIgdW5iZXJlY2h0aWd0IGVyd2VpdGVydCB3ZXJkZW4uIDxiPk1pbmRlc3RlbnMgZWlu
IFN1cGVyVXNlciBtdXNzIGltbWVyIGVpbmdldHJhZ2VuIHNlaW48L2I+IOKAlCBzb25zdCBpc3Qg
bmllbWFuZCBtZWhyIGluIGRlciBMYWdlLCBhZG1pbmlzdHJhdGl2ZSDDhG5kZXJ1bmdlbiB2b3J6
dW5laG1lbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5G
ZWxkZXI6PC9zdHJvbmc+IE5hbWUgKEtsYXJ0ZXh0IHp1ciBJZGVudGlmaWthdGlvbiksIE5XLUtl
bm51bmcgKFdpbmRvd3MtQmVudXR6ZXJuYW1lLCB3aXJkIGF1dG9tYXRpc2NoIGJlaW0gTG9naW4g
YWJnZWdsaWNoZW4pLCBPRSAoT3JnYW5pc2F0aW9uc2VpbmhlaXQpLCBUZWxlZm9uL0R1cmNod2Fo
bC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5BbnplaWdl
IGltIEluZm8tRmVuc3Rlcjo8L3N0cm9uZz4gQWxsZSBTdXBlclVzZXIgd2VyZGVuIGltIEluZm9y
bWF0aW9uc2ZlbnN0ZXIgKEJ1dHRvbiDigJ7ihLkiIG9iZW4gcmVjaHRzKSBhbHMgQW5zcHJlY2hw
YXJ0bmVyIGF1ZmdlZsO8aHJ0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2
PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImluZm8tYm94IHJlY2h0ZS1ub3RmYWxsLWJveCI+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8c3Ryb25nPk5vdGZhbGwtUsO8Y2tmYWxsZWJlbmU6PC9zdHJvbmc+
IERpZSBOVy1LZW5udW5nIDxjb2RlPk5XMDUzNjA5PC9jb2RlPiAoUEhLIFJvZXNnZW4pIGlzdCBp
bSBTZXJ2ZXIgaGFydCBhbHMgU3VwZXJVc2VyIGhpbnRlcmxlZ3QgdW5kIGdpbHQgYXVjaCBkYW5u
LCB3ZW5uIGRpZSBTdXBlclVzZXItTGlzdGUgbGVlciBvZGVyIHVubGVzYmFyIGlzdC4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBj
bGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9InN1cGVydXNlci10YWJlbGxlIj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OYW1lPC90aD4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk5XLUtlbm51bmc8L3RoPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+T3JnYW5pc2F0aW9uc2VpbmhlaXQ8
L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRo
OjE1MHB4Ij5UZWxlZm9uIC8gRHVyY2h3YWhsPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo4MHB4Ij5Ba3Rpb25lbjwvdGg+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9InN1cGVydXNl
ci10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVjaHRlLWNhcmQtZnVzcyI+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc3VwZXJ1c2VyLXNwZWljaGVybiIg
Y2xhc3M9ImJ0biBidG4tcHJpbWFlciI+U3VwZXJVc2VyIHNwZWljaGVybjwvYnV0dG9uPgogICAg
ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBp
ZD0ic3VwZXJ1c2VyLWtlaW4tcmVjaHQiIGNsYXNzPSJ2ZXJzdGVja3QgcmVjaHRlLWtlaW4tcmVj
aHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1ib3giIHN0
eWxlPSJib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1mYXJiZS1mZWhsZXIpIj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPktlaW4gWnVncmlmZjo8L3N0cm9uZz4gTnVyIGJl
c3RlaGVuZGUgU3VwZXJVc2VyIGvDtm5uZW4gZGllc2UgTGlzdGUgYmVhcmJlaXRlbi4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rp
dj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kZXRhaWxzPgogICAgICAgICAgICAg
ICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImFk
bWluLXNla3Rpb24gcmVjaHRlLWNhcmQgcmVjaHRlLWNhcmQtZmEiIGlkPSJhZG1pbi1zZWt0aW9u
LWZhY2hhdWZzaWNodCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJy
ZWNodGUtcm9sbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeSBjbGFzcz0icmVj
aHRlLXJvbGxlLXN1bW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xh
c3M9InJlY2h0ZS1jYXJkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj7wn5GBPC9zcGFuPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1yb2xsZS10aXRlbCI+
PHN0cm9uZz5GYWNoYXVmc2ljaHQ8L3N0cm9uZz48c3BhbiBjbGFzcz0icmVjaHRlLWNhcmQtc3Vi
Ij5LbGFzc2lzY2hlIEF1ZnNpY2h0cy1Sb2xsZSBtaXQgZ3JhbnVsYXJlbiBTZWhlbi0gdW5kIFBs
YW51bmdzLVJlY2h0ZW4uIE9wdGlvbmFsIOKAnkdlc2FtdHZlcmFudHdvcnRsaWNoIiBmw7xyIFNj
aGljaHRiZXNldHp1bmcuPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxzcGFuIGNsYXNzPSJyZWNodGUtcm9sbGUtY2hldiIgYXJpYS1oaWRkZW49InRydWUiPuKWuDwv
c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdW1tYXJ5PgogICAgICAgICAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUtcm9sbGUtYm9keSI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUtcm9sbGUtYWt0aW9uIj48YnV0dG9uIGlkPSJi
dG4tZmFjaGF1ZnNpY2h0LW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlciBGYWNoYXVm
c2ljaHQtRWludHJhZzwvYnV0dG9uPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0
YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0iZmFjaGF1ZnNpY2h0Ij4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZv
LWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dXIgRmFjaGF1ZnNpY2h0PHNwYW4gY2xhc3M9ImFk
bWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlJvbGxlbi1IaWVyYXJj
aGllOjwvc3Ryb25nPiA8Y29kZT5TdXBlclVzZXIg4oaSIEZhY2hhdWZzaWNodCAvIERpcmVrdGlv
bnNsZWl0dW5nIC8gRsO8aHJ1bmdzc3RlbGxlIOKGkiBVc2VyPC9jb2RlPi4gU3VwZXJVc2VyIHN0
aWNodCBhbGxlcy4gV2VyIGluIGtlaW5lciBSb2xsZW4tTGlzdGUgc3RlaHQsIHNpZWh0IHdlZGVy
IFN0YXRpc3RpayBub2NoIExvZ2J1Y2ggbm9jaCBBZG1pbmlzdHJhdGlvbi48L3A+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5TZWhlbi1CZXJlaWNoZTwvc3Ryb25n
PiAoSGFrZW4gPSBUYWIgaXN0IGbDvHIgZGllc2UgUGVyc29uIHNpY2h0YmFyKTo8L3A+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bGk+PGI+QWRtaW5pc3RyYXRpb248L2I+IOKAlCBrb21wbGV0dGVyIEFkbWlu
LVRhYi4gPGI+QXVzZ2Vub21tZW46PC9iPiBTdXBlclVzZXItIHVuZCBSb2xsZW4tTGlzdGVuIChi
bGVpYmVuIFN1cGVyVXNlci1vbmx5KS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bGk+PGI+U3RhdGlzdGlrPC9iPiwgPGI+TG9nYnVjaDwvYj4sIDxiPkJhY2t1cHM8
L2I+IOKAlCBqZXdlaWxzIGRlciBnYW56ZSBUYWIuPC9saT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJv
bmc+UGxhbnVuZzo8L3N0cm9uZz4gUHJvIEZhY2hhdWZzaWNodCBmZXN0bGVnYmFyLCB3ZWxjaGUg
UGVyc29uZW4vR3J1cHBlbi9TdGFuZG9ydGUgZWRpdGllcnQgd2VyZGVuIGTDvHJmZW4g4oCUIGRp
ZSBlaWdlbmUgWmVpbGUgaXN0IGltbWVyIGltcGxpeml0IGVybGF1YnQuPC9wPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+R2VzYW10dmVyYW50d29ydHVuZzo8L3N0
cm9uZz4gQmVrb21tdCBkZW4gSGVhZGVyLVRhYiA8ZW0+UHLDvGZ1bmc8L2VtPiBtaXQgNC1Xb2No
ZW4tw5xiZXJzaWNodCBpbmtsLiB2b3JnZWZlcnRpZ3RlciBFLU1haWwgYW4gYmV0cm9mZmVuZSBQ
ZXJzb25lbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg
ICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUg
Y2xhc3M9ImFkbWluLXRhYmVsbGUiIGlkPSJmYWNoYXVmc2ljaHQtdGFiZWxsZSI+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OVy1LZW5udW5nPC90aD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo2MHB4
O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0iQWRtaW4tVGFiIHNlaGVuIj5BZG1pbjwvdGg+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweDt0
ZXh0LWFsaWduOmNlbnRlciIgdGl0bGU9IkJlcmVpY2gtQS1UYWIgc2VoZW4iIGRhdGEtYmV6PSJm
YS5zcGFsdGVBIj5BdXN3ZXJ0dW5nPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0iQmVy
ZWljaC1CLVRhYiBzZWhlbiIgZGF0YS1iZXo9ImZhLnNwYWx0ZUIiPlByb3Rva29sbDwvdGg+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweDt0
ZXh0LWFsaWduOmNlbnRlciIgdGl0bGU9IkJhY2t1cC1UYWIgc2VoZW4iPkJhY2t1cHM8L3RoPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHg7
dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJHZXNhbXR2ZXJhbnR3b3J0bGljaCBmw7xyIGRpZSBC
ZXNldHp1bmcgYWxsZXIgRGllbnN0ZSI+R2VzYW10dmVyYW50dy48L3RoPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjIyMHB4IiB0aXRsZT0iR3Jh
bnVsYXJlIFNpY2h0YmFya2VpdCBwcm8gU3ViLVRhYiBkZXMgQWRtaW4tQmVyZWljaHMgKyBwcm8g
QmVyZWljaC1BIj5TdWItU2ljaHQ8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8dGggc3R5bGU9IndpZHRoOjIwMHB4Ij5QbGFudW5nPC90aD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo4MHB4Ij5Ba3Rpb25lbjwvdGg+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9
ImZhY2hhdWZzaWNodC10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90
YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVjaHRlLWNhcmQtZnVz
cyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZmFjaGF1ZnNp
Y2h0LXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciI+RmFjaGF1ZnNpY2h0IHNwZWlj
aGVybjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImZhY2hh
dWZzaWNodC1kaXJ0eS1oaW53ZWlzIiBjbGFzcz0icmVjaHRlLWRpcnR5LWhpbndlaXMiIHN0eWxl
PSJkaXNwbGF5Om5vbmUiPuKXjyBVbmdlc3BlaWNoZXJ0ZSDDhG5kZXJ1bmdlbjwvc3Bhbj4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi10ZXN0LXJlZ3VsYWVyIiBj
bGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBzdHlsZT0ibWFyZ2luLWxlZnQ6YXV0byIgdGl0
bGU9Ik9iZXJmbMOkY2hlIGF1cyBTaWNodCBlaW5lcyBVc2VycyBvaG5lIFJvbGxlIHRlc3RlbiAo
a2VpbiBTVSwga2VpbmUgRmFjaGF1ZnNpY2h0L0RpcmVrdGlvbnNsZWl0dW5nL0bDvGhydW5nc3N0
ZWxsZSkiPkFscyBVc2VyIG9obmUgUm9sbGUgdGVzdGVuPC9idXR0b24+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJmYWNoYXVm
c2ljaHQta2Vpbi1yZWNodCIgY2xhc3M9InZlcnN0ZWNrdCByZWNodGUta2Vpbi1yZWNodCI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCIgc3R5bGU9ImJv
cmRlci1sZWZ0LWNvbG9yOnZhcigtLWZhcmJlLWZlaGxlcikiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxzdHJvbmc+S2VpbiBadWdyaWZmOjwvc3Ryb25nPiBOdXIgU3VwZXJVc2Vy
IGvDtm5uZW4gRmFjaGF1ZnNpY2h0LUVpbnRyw6RnZSBiZWFyYmVpdGVuLgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAg
PC9zZWN0aW9uPgoKICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iYWRtaW4tc2Vr
dGlvbiByZWNodGUtY2FyZCByZWNodGUtY2FyZC1kbCIgaWQ9ImFkbWluLXNla3Rpb24tZGlyZWt0
aW9uc2xlaXR1bmciPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0icmVj
aHRlLXJvbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnkgY2xhc3M9InJlY2h0
ZS1yb2xsZS1zdW1tYXJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNz
PSJyZWNodGUtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+4piFPC9zcGFuPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1yb2xsZS10aXRlbCI+PHN0
cm9uZz5EaXJla3Rpb25zbGVpdHVuZzwvc3Ryb25nPjxzcGFuIGNsYXNzPSJyZWNodGUtY2FyZC1z
dWIiPk1pdGdsaWVkZXIgZGVyIERpcmVrdGlvbnNsZWl0dW5nICh6LiBCLiBML0RpclYsIExQRGlu
KSDigJQgZ2xlaWNoZSBHcmFudWxhcml0w6R0IHdpZSBGYWNoYXVmc2ljaHQuPC9zcGFuPjwvc3Bh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZWNodGUtcm9sbGUt
Y2hldiIgYXJpYS1oaWRkZW49InRydWUiPuKWuDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAg
ICAgPC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUt
cm9sbGUtYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNo
dGUtcm9sbGUtYWt0aW9uIj48YnV0dG9uIGlkPSJidG4tZGlyZWt0aW9uc2xlaXR1bmctbmV1IiBj
bGFzcz0iYnRuIGJ0bi1lcmZvbGciPk5ldWVyIERpcmVrdGlvbnNsZWl0dW5nLUVpbnRyYWc8L2J1
dHRvbj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWlu
LWluZm8iIGRhdGEtaW5mby1rZXk9ImRpcmVrdGlvbnNsZWl0dW5nIj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwv
c3Bhbj5IaW53ZWlzZSB6dXIgRGlyZWt0aW9uc2xlaXR1bmc8c3BhbiBjbGFzcz0iYWRtaW4taW5m
by1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlBlcnNvbmVuIHdlcmRlbiDDvGJlciBkYXMgRHJv
cGRvd24gPGVtPlBlcnNvbjwvZW0+IGRpcmVrdCBhdXMgZGVyIFBlcnNvbmFsdmVyd2FsdHVuZyBn
ZXfDpGhsdCDigJQgTmFtZSB1bmQgTlctS2VubnVuZyB3ZXJkZW4gYXV0b21hdGlzY2ggw7xiZXJu
b21tZW4uIFN1Yi1TaWNodC0gdW5kIFBsYW51bmdzLVJlY2h0ZSBmdW5rdGlvbmllcmVuIHdpZSBi
ZWkgZGVyIEZhY2hhdWZzaWNodC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rp
dj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAg
ICAgICA8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUgcm9sbGVuLXRhYmVsbGUiIGlkPSJkaXJl
a3Rpb25zbGVpdHVuZy10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVh
ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx0aD5QZXJzb248L3RoPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjYwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRp
dGxlPSJBZG1pbi1UYWIgc2VoZW4iPkFkbWluPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRs
ZT0iU3RhdGlzdGlrLVRhYiBzZWhlbiI+U3RhdGlzdGlrPC90aD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVy
IiB0aXRsZT0iTG9nYnVjaC1UYWIgc2VoZW4iPkxvZ2J1Y2g8L3RoPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjcwcHg7dGV4dC1hbGlnbjpjZW50
ZXIiIHRpdGxlPSJCYWNrdXAtVGFiIHNlaGVuIj5CYWNrdXBzPC90aD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoyMjBweCIgdGl0bGU9IkdyYW51
bGFyZSBTaWNodGJhcmtlaXQgcHJvIFN1Yi1UYWIiPlN1Yi1TaWNodDwvdGg+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MjAwcHgiPlBsYW51bmc8
L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRo
OjgwcHgiPkFrdGlvbmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Ry
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx0Ym9keSBpZD0iZGlyZWt0aW9uc2xlaXR1bmctdGJvZHkiPjwvdGJvZHk+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9InJlY2h0ZS1jYXJkLWZ1c3MiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGJ1dHRvbiBpZD0iYnRuLWRpcmVrdGlvbnNsZWl0dW5nLXNwZWljaGVybiIgY2xhc3M9ImJ0biBi
dG4tcHJpbWFlciI+RGlyZWt0aW9uc2xlaXR1bmcgc3BlaWNoZXJuPC9idXR0b24+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0iZGlyZWt0aW9uc2xlaXR1bmctZGlydHktaGlu
d2VpcyIgY2xhc3M9InJlY2h0ZS1kaXJ0eS1oaW53ZWlzIiBzdHlsZT0iZGlzcGxheTpub25lIj7i
l48gVW5nZXNwZWljaGVydGUgw4RuZGVydW5nZW48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkaXJla3Rpb25zbGVp
dHVuZy1rZWluLXJlY2h0IiBjbGFzcz0idmVyc3RlY2t0IHJlY2h0ZS1rZWluLXJlY2h0Ij4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tYm94IiBzdHlsZT0iYm9y
ZGVyLWxlZnQtY29sb3I6dmFyKC0tZmFyYmUtZmVobGVyKSI+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHN0cm9uZz5LZWluIFp1Z3JpZmY6PC9zdHJvbmc+IE51ciBTdXBlclVzZXIg
a8O2bm5lbiBEaXJla3Rpb25zbGVpdHVuZ3MtRWludHLDpGdlIGJlYXJiZWl0ZW4uCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+
CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGV0YWlscz4KICAgICAgICAgICAgICAg
ICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJhZG1p
bi1zZWt0aW9uIHJlY2h0ZS1jYXJkIHJlY2h0ZS1jYXJkLWZzIiBpZD0iYWRtaW4tc2VrdGlvbi1m
dWVocnVuZ3NzdGVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0i
cmVjaHRlLXJvbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnkgY2xhc3M9InJl
Y2h0ZS1yb2xsZS1zdW1tYXJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNs
YXNzPSJyZWNodGUtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+4peGPC9zcGFuPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlY2h0ZS1yb2xsZS10aXRlbCI+
PHN0cm9uZz5Gw7xocnVuZ3NzdGVsbGU8L3N0cm9uZz48c3BhbiBjbGFzcz0icmVjaHRlLWNhcmQt
c3ViIj5NaXRhcmJlaXRlbmRlIGRlciBGw7xocnVuZ3NzdGVsbGUgKHouIEIuIEwvVkkzIHVuZCBT
dGFiKSDigJQgZ2xlaWNoZSBHcmFudWxhcml0w6R0IHdpZSBGYWNoYXVmc2ljaHQuPC9zcGFuPjwv
c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZWNodGUtcm9s
bGUtY2hldiIgYXJpYS1oaWRkZW49InRydWUiPuKWuDwvc3Bhbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgPC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNo
dGUtcm9sbGUtYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJy
ZWNodGUtcm9sbGUtYWt0aW9uIj48YnV0dG9uIGlkPSJidG4tZnVlaHJ1bmdzc3RlbGxlLW5ldSIg
Y2xhc3M9ImJ0biBidG4tZXJmb2xnIj5OZXVlciBGw7xocnVuZ3NzdGVsbGUtRWludHJhZzwvYnV0
dG9uPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4t
aW5mbyIgZGF0YS1pbmZvLWtleT0iZnVlaHJ1bmdzc3RlbGxlIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bh
bj5IaW53ZWlzZSB6dXIgRsO8aHJ1bmdzc3RlbGxlPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFk
Z2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8cD5QZXJzb25lbiB3ZXJkZW4gw7xiZXIgZGFzIERyb3Bkb3du
IDxlbT5QZXJzb248L2VtPiBkaXJla3QgYXVzIGRlciBQZXJzb25hbHZlcndhbHR1bmcgZ2V3w6Ro
bHQuIFNjaGVtYSB1bmQgR3JhbnVsYXJpdMOkdCBhbmFsb2cgenVyIERpcmVrdGlvbnNsZWl0dW5n
LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg
ICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0i
YWRtaW4tdGFiZWxsZSByb2xsZW4tdGFiZWxsZSIgaWQ9ImZ1ZWhydW5nc3N0ZWxsZS10YWJlbGxl
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0
aD5QZXJzb248L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5
bGU9IndpZHRoOjYwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJBZG1pbi1UYWIgc2VoZW4i
PkFkbWluPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxl
PSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0iU3RhdGlzdGlrLVRhYiBzZWhl
biI+U3RhdGlzdGlrPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRo
IHN0eWxlPSJ3aWR0aDo3MHB4O3RleHQtYWxpZ246Y2VudGVyIiB0aXRsZT0iTG9nYnVjaC1UYWIg
c2VoZW4iPkxvZ2J1Y2g8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
dGggc3R5bGU9IndpZHRoOjcwcHg7dGV4dC1hbGlnbjpjZW50ZXIiIHRpdGxlPSJCYWNrdXAtVGFi
IHNlaGVuIj5CYWNrdXBzPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHRoIHN0eWxlPSJ3aWR0aDoyMjBweCIgdGl0bGU9IkdyYW51bGFyZSBTaWNodGJhcmtlaXQgcHJv
IFN1Yi1UYWIiPlN1Yi1TaWNodDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx0aCBzdHlsZT0id2lkdGg6MjAwcHgiPlBsYW51bmc8L3RoPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjgwcHgiPkFrdGlvbmVuPC90aD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0i
ZnVlaHJ1bmdzc3RlbGxlLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8
L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWNodGUtY2FyZC1m
dXNzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1mdWVocnVu
Z3NzdGVsbGUtc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIj5Gw7xocnVuZ3NzdGVs
bGUgc3BlaWNoZXJuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBp
ZD0iZnVlaHJ1bmdzc3RlbGxlLWRpcnR5LWhpbndlaXMiIGNsYXNzPSJyZWNodGUtZGlydHktaGlu
d2VpcyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+4pePIFVuZ2VzcGVpY2hlcnRlIMOEbmRlcnVuZ2Vu
PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAg
ICAgICAgPGRpdiBpZD0iZnVlaHJ1bmdzc3RlbGxlLWtlaW4tcmVjaHQiIGNsYXNzPSJ2ZXJzdGVj
a3QgcmVjaHRlLWtlaW4tcmVjaHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iaW5mby1ib3giIHN0eWxlPSJib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1mYXJiZS1mZWhs
ZXIpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPktlaW4gWnVncmlm
Zjo8L3N0cm9uZz4gTnVyIFN1cGVyVXNlciBrw7ZubmVuIEbDvGhydW5nc3N0ZWxsZW4tRWludHLD
pGdlIGJlYXJiZWl0ZW4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pjwv
ZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAg
PC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IFN0YW5kYXJkcmVjaHRlIHJlZ3VsYWVy
ZXIgVXNlciAoU1Utb25seSkg4oCUIGdydW5kc2FldHpsaWNoZQogICAgICAgICAgICAgICAgICAg
ICBQbGFudW5nc3JlY2h0ZSBmdWVyIGFsbGUgb2huZSBSb2xsZSAoZ2VnZW5zZWl0aWdlIFBsYW51
bmcgamUKICAgICAgICAgICAgICAgICAgICAgRGllbnN0Z3J1cHBlL1N0YW5kb3J0KSArIExpc3Rl
IGRlciBVc2VyIG1pdCBadXNhdHpyZWNodGVuLiAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc3RhbmRhcmRyZWNodGUiPgog
ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAg
ICAgICAgICAgICA8aDI+U3RhbmRhcmRyZWNodGUgcmVndWzDpHJlciBVc2VyPC9oMj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjo2cHggMCAwIDA7Zm9udC1zaXplOjEy
cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPkdydW5kcmVnZWxuLCBkaWUgZsO8ciA8c3Ryb25n
PmFsbGU8L3N0cm9uZz4gTWl0YXJiZWl0ZW5kZW4gb2huZSBlaWdlbmUgUm9sbGUgZ2VsdGVuIOKA
lCB6LkIuIOKAnmFsbGUgZWluZXIgRGllbnN0Z3J1cHBlIHBsYW5lbiBzaWNoIGdlZ2Vuc2VpdGln
IiBvZGVyIOKAnmFsbGUgZWluZXMgU3RhbmRvcnRzIHBsYW5lbiBzaWNoIGdlZ2Vuc2VpdGlnIi4g
RGFydW50ZXI6IMOcYmVyc2ljaHQgYWxsZXIgVXNlciwgZGllIGluIGRlciBQZXJzb25hbHZlcndh
bHR1bmcgPHN0cm9uZz56dXPDpHR6bGljaGU8L3N0cm9uZz4gaW5kaXZpZHVlbGxlIFJlY2h0ZSBi
ZWtvbW1lbiBoYWJlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg
ICAgICAgICAgPGRpdiBpZD0ic3RhbmRhcmRyZWNodGUtaW5oYWx0Ij48L2Rpdj4KICAgICAgICAg
ICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgIDwvbWFpbj4KICAgICAgICA8L2Rpdj4KICAgIDwv
ZGl2PgoKICAgIDwhLS0gPT09PT09PT09PSBNb2RhbGVyIERpYWxvZyAod2llZGVydmVyd2VuZGJh
cikgPT09PT09PT09PSAtLT4KICAgIDwhLS0gYTExeSAoU3ByaW50IDZhIDIwMjYtMDUtMjkpOiBy
b2xlPWRpYWxvZyArIGFyaWEtbW9kYWwgKyBsYWJlbGxlZGJ5CiAgICAgICAgIG1hY2h0IGRlbiBN
b2RhbC1Lb250ZXh0IGZ1ZXIgU2NyZWVucmVhZGVyIGV4cGxpeml0LiBhcmlhLWhpZGRlbiB3aXJk
CiAgICAgICAgIHZvbSBtb2RhbFplaWdlbigpLUNvZGUgYmVpbSBPcGVuL0Nsb3NlIGdlc2V0enQu
IC0tPgogICAgPGRpdiBpZD0ibW9kYWwtb3ZlcmxheSIgY2xhc3M9Im1vZGFsIHZlcnN0ZWNrdCIg
cm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIiBhcmlhLWxhYmVsbGVkYnk9Im1vZGFsLXRp
dGVsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaW5oYWx0
IiBpZD0ibW9kYWwtYm94Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwta29wZiI+CiAg
ICAgICAgICAgICAgICA8aDIgaWQ9Im1vZGFsLXRpdGVsIj48L2gyPgogICAgICAgICAgICAgICAg
PGJ1dHRvbiBjbGFzcz0ibW9kYWwtc2NobGllc3NlbiIgaWQ9Im1vZGFsLXNjaGxpZXNzZW4tYnRu
IiBhcmlhLWxhYmVsPSJTY2hsaWXDn2VuIj4mdGltZXM7PC9idXR0b24+CiAgICAgICAgICAgIDwv
ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1rb2VycGVyIiBpZD0ibW9kYWwta29l
cnBlciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZ1c3MiIGlkPSJtb2Rh
bC1mdXNzIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gQ29uZmly
bS1PdmVybGF5IChTcHJpbnQgNSDigJQgTW9kYWwtU3RhY2sgMjAyNi0wNS0yOSk6CiAgICAgICAg
IEVpZ2VuZXIgQ29udGFpbmVyIG1pdCBob2VoZXJlbSB6LWluZGV4LCBkYW1pdCBiZXN0YWV0aWdl
bigpLURpYWxvZ2UKICAgICAgICAgSU5ORVJIQUxCIGVpbmVzIGdlb2VmZm5ldGVuIEhhdXB0bW9k
YWxzIGVyc2NoZWluZW4ga29lbm5lbiwgb2huZQogICAgICAgICBkZXNzZW4gSW5oYWx0IHp1IHVl
YmVyc2NocmVpYmVuLiBWb3JoZXIgaGFiZW4gQ29uZmlybS1BdWZydWZlCiAgICAgICAgICh6LkIu
ICJXaXJrbGljaCBsb2VzY2hlbj8iIGJlaW0gUGVyc29uLUJlYXJiZWl0ZW4pIGRhcyB1bWdlYmVu
ZGUKICAgICAgICAgTW9kYWwgemVyc3RvZXJ0OyBuYWNoICJBYmJyZWNoZW4iIHdhciBkaWUgQmVh
cmJlaXR1bmcgd2VnLiAtLT4KICAgIDxkaXYgaWQ9ImNvbmZpcm0tb3ZlcmxheSIgY2xhc3M9Im1v
ZGFsIHZlcnN0ZWNrdCIgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIiBhcmlhLWxhYmVs
bGVkYnk9ImNvbmZpcm0tdGl0ZWwiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iei1pbmRleDpj
YWxjKHZhcigtLXotb3ZlcmxheSkgKyAxMCkiPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWlu
aGFsdCIgaWQ9ImNvbmZpcm0tYm94IiBzdHlsZT0ibWF4LXdpZHRoOjQ4MHB4Ij4KICAgICAgICAg
ICAgPGRpdiBjbGFzcz0ibW9kYWwta29wZiI+CiAgICAgICAgICAgICAgICA8aDIgaWQ9ImNvbmZp
cm0tdGl0ZWwiPkJlc3TDpHRpZ3VuZzwvaDI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNz
PSJtb2RhbC1zY2hsaWVzc2VuIiBpZD0iY29uZmlybS1zY2hsaWVzc2VuLWJ0biIgYXJpYS1sYWJl
bD0iU2NobGllw59lbiI+JnRpbWVzOzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ibW9kYWwta29lcnBlciIgaWQ9ImNvbmZpcm0ta29lcnBlciI+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZ1c3MiIGlkPSJjb25maXJtLWZ1c3Mi
PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBUb2FzdC1Db250YWlu
ZXIgLS0+CiAgICA8ZGl2IGlkPSJ0b2FzdC1jb250YWluZXIiIHJvbGU9InN0YXR1cyIgYXJpYS1s
aXZlPSJwb2xpdGUiIGFyaWEtYXRvbWljPSJmYWxzZSI+PC9kaXY+CgogICAgPHNjcmlwdCB0eXBl
PSJtb2R1bGUiIHNyYz0iYXBwLmpzIj48L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
### FILE: info.html | 12765
PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImRlIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KPHRpdGxlPlZJMyBER0wtUGxhbnVuZyDigJQgS3VyemluZm9ybWF0aW9uPC90aXRsZT4K
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFs
LXNjYWxlPTEiPgo8c3R5bGU+CiAgOnJvb3QgewogICAgLS1iZzogI0VFRjFGMjsKICAgIC0tY2Fy
ZDogI0ZGRkZGRjsKICAgIC0tY2FyZC1hbHQ6ICNGN0Y5Rjk7CiAgICAtLXRleHQ6ICMxRTJBMzA7
CiAgICAtLW11dGVkOiAjNjE3MjdCOwogICAgLS1saW5lOiAjRERFM0U1OwogICAgLS1hY2NlbnQ6
ICMxRjRFNUY7CiAgICAtLWFjY2VudC0yOiAjMkU3Mjg2OwogICAgLS1vazogIzJFN0QzMjsKICAg
IC0td2FybjogI0M3NzgwMDsKICAgIC0tZXJyOiAjQjcxQzFDOwogICAgLS1yYWRpdXM6IDEwcHg7
CiAgfQogICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9CiAgaHRtbCB7IC13ZWJraXQtdGV4
dC1zaXplLWFkanVzdDogMTAwJTsgfQogIGJvZHkgewogICAgZm9udC1mYW1pbHk6ICJTZWdvZSBV
SSIsIFJvYm90bywgLWFwcGxlLXN5c3RlbSwgVGFob21hLCBzYW5zLXNlcmlmOwogICAgYmFja2dy
b3VuZDogdmFyKC0tYmcpOwogICAgY29sb3I6IHZhcigtLXRleHQpOwogICAgbWFyZ2luOiAwOwog
ICAgcGFkZGluZzogMjhweCAxNnB4IDcycHg7CiAgICBsaW5lLWhlaWdodDogMS41NTsKICAgIGZv
bnQtc2l6ZTogMTVweDsKICB9CiAgLmNvbnRhaW5lciB7IG1heC13aWR0aDogOTIwcHg7IG1hcmdp
bjogMCBhdXRvOyB9CgogIC8qIC0tLS0gS29wZiAtLS0tICovCiAgaGVhZGVyIHsKICAgIGJhY2tn
cm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWFjY2VudCkgMCUsICMxNjM2M2Yg
MTAwJSk7CiAgICBjb2xvcjogI2ZmZjsKICAgIHBhZGRpbmc6IDMwcHggMzJweCAyNnB4OwogICAg
Ym9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKSB2YXIoLS1yYWRpdXMpIDAgMDsKICB9CiAgLmtp
Y2tlciB7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6
IDEuNXB4OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGNv
bG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNzIpOwogICAgbWFyZ2luOiAwIDAgOHB4OwogIH0KICBo
ZWFkZXIgaDEgeyBtYXJnaW46IDAgMCA2cHg7IGZvbnQtc2l6ZTogMjdweDsgZm9udC13ZWlnaHQ6
IDcwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMnB4OyB9CiAgaGVhZGVyIC5zdWIgeyBtYXJnaW46IDA7
IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODgpOyBmb250LXNpemU6IDE0LjVweDsgbWF4LXdp
ZHRoOiA2NDBweDsgfQogIC5jaGlwcyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsg
Z2FwOiA4cHg7IG1hcmdpbi10b3A6IDE4cHg7IH0KICAuY2hpcCB7CiAgICBiYWNrZ3JvdW5kOiBy
Z2JhKDI1NSwyNTUsMjU1LDAuMTMpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1
LDI1NSwwLjIyKTsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgcGFk
ZGluZzogNHB4IDExcHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB3aGl0ZS1zcGFjZTog
bm93cmFwOwogIH0KCiAgbWFpbiB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsKICAgIGJv
cmRlci1yYWRpdXM6IDAgMCB2YXIoLS1yYWRpdXMpIHZhcigtLXJhZGl1cyk7CiAgICBwYWRkaW5n
OiA4cHggMzJweCAzMHB4OwogICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsMCwwLDAu
MDcpOwogIH0KCiAgaDIgewogICAgY29sb3I6IHZhcigtLWFjY2VudCk7CiAgICBmb250LXNpemU6
IDE3cHg7CiAgICBtYXJnaW46IDM0cHggMCAxNHB4OwogICAgcGFkZGluZy1ib3R0b206IDdweDsK
ICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1saW5lKTsKICAgIGRpc3BsYXk6IGZs
ZXg7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgZ2FwOiAxMHB4OwogIH0KICBoMiAubnVtIHsKICAg
IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICNmZmY7CiAgICBiYWNr
Z3JvdW5kOiB2YXIoLS1hY2NlbnQtMik7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7IHBhZGRpbmc6
IDJweCA3cHg7IGxpbmUtaGVpZ2h0OiAxLjQ7CiAgfQogIHAgeyBtYXJnaW46IDEwcHggMDsgfQog
IC5sZWFkIHsgZm9udC1zaXplOiAxNS41cHg7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfQogIC5tdXRl
ZCB7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IH0KCiAgLyogLS0tLSBLYXJ0ZW4tUmFzdGVyIC0tLS0g
Ki8KICAuZ3JpZCB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
OiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7CiAgICBnYXA6IDE0cHg7CiAg
ICBtYXJnaW46IDE2cHggMDsKICB9CiAgLmNhcmQgewogICAgYm9yZGVyOiAxcHggc29saWQgdmFy
KC0tbGluZSk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBwYWRkaW5nOiAxNXB4IDE3cHg7
CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWFsdCk7CiAgfQogIC5jYXJkIGgzIHsgbWFyZ2lu
OiAwIDAgOXB4OyBmb250LXNpemU6IDE0LjVweDsgY29sb3I6IHZhcigtLWFjY2VudCk7IGRpc3Bs
YXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9CiAgLmNhcmQgdWwgeyBt
YXJnaW46IDA7IHBhZGRpbmctbGVmdDogMThweDsgfQogIC5jYXJkIGxpIHsgbWFyZ2luOiA1cHgg
MDsgZm9udC1zaXplOiAxMy41cHg7IH0KICAuY2FyZC5yb2xsZSBwIHsgZm9udC1zaXplOiAxMy41
cHg7IG1hcmdpbjogMDsgY29sb3I6ICMzNjQ3NGY7IH0KCiAgLmJhZGdlIHsKICAgIGRpc3BsYXk6
IGlubGluZS1ibG9jazsgcGFkZGluZzogMnB4IDlweDsgYm9yZGVyLXJhZGl1czogNHB4OwogICAg
Zm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogI2ZmZjsgbGluZS1oZWln
aHQ6IDEuNTsKICB9CiAgLmItc3UgICB7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7IH0KICAu
Yi1mYSAgIHsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LTIpOyB9CiAgLmItdXNlciB7IGJhY2tn
cm91bmQ6IHZhcigtLW11dGVkKTsgfQoKICAuaW5mby1ib3ggewogICAgYmFja2dyb3VuZDogI0VB
RjJGNTsKICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tYWNjZW50LTIpOwogICAgcGFk
ZGluZzogMTFweCAxNXB4OyBtYXJnaW46IDE2cHggMDsgYm9yZGVyLXJhZGl1czogMCA2cHggNnB4
IDA7CiAgICBmb250LXNpemU6IDEzLjVweDsKICB9CgogIHVsLmZsYXQgeyBtYXJnaW46IDhweCAw
OyBwYWRkaW5nOiAwOyBsaXN0LXN0eWxlOiBub25lOyB9CiAgdWwuZmxhdCBsaSB7IHBhZGRpbmc6
IDdweCAwOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGZvbnQtc2l6ZTog
MTMuNXB4OyB9CiAgdWwuZmxhdCBsaTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsg
fQoKICBjb2RlIHsKICAgIGJhY2tncm91bmQ6ICNFN0VDRUU7IGNvbG9yOiAjMjQ0MDQ5OyBwYWRk
aW5nOiAxcHggNnB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OyBmb250LXNpemU6IDEyLjVweDsK
ICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsICJDYXNjYWRpYSBDb2RlIiwgQ29uc29sYXMs
IG1vbm9zcGFjZTsKICB9CgogIHRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgd2lk
dGg6IDEwMCU7IGZvbnQtc2l6ZTogMTMuNXB4OyBtYXJnaW46IDEwcHggMDsgfQogIHRoLCB0ZCB7
IHBhZGRpbmc6IDhweCAxMXB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBib3JkZXItYm90dG9tOiAxcHgg
c29saWQgdmFyKC0tbGluZSk7IH0KICB0aCB7IGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYWx0KTsg
Y29sb3I6IHZhcigtLWFjY2VudCk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICB0ZCBjb2RlIHsgYmFj
a2dyb3VuZDogI0U3RUNFRTsgfQoKICBmb290ZXIgewogICAgdGV4dC1hbGlnbjogY2VudGVyOyBj
b2xvcjogdmFyKC0tbXV0ZWQpOyBmb250LXNpemU6IDEycHg7CiAgICBtYXJnaW4tdG9wOiAzMHB4
OyBwYWRkaW5nLXRvcDogMTRweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWxpbmUpOwog
IH0KICBAbWVkaWEgKG1heC13aWR0aDogNTYwcHgpIHsKICAgIG1haW4sIGhlYWRlciB7IHBhZGRp
bmctbGVmdDogMjBweDsgcGFkZGluZy1yaWdodDogMjBweDsgfQogICAgaGVhZGVyIGgxIHsgZm9u
dC1zaXplOiAyM3B4OyB9CiAgfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CiAgICA8aGVhZGVyPgogICAgICA8cCBjbGFzcz0ia2lja2VyIj5BbndlbmR1
bmdzLUluZm9ybWF0aW9uPC9wPgogICAgICA8aDE+VkkzIERHTC1QbGFudW5nPC9oMT4KICAgICAg
PHAgY2xhc3M9InN1YiI+V2ViLWJhc2llcnRlIERpZW5zdHBsYW51bmcgZGVyIFZlcmtlaHJzaW5z
cGVrdGlvbiAzIOKAlCBBYmzDtnN1bmcgZGVyIGZyw7xoZXJlbiBFeGNlbC1NYWtyby1Mw7ZzdW5n
LCBhdXNnZWxlZ3QgZsO8ciBtZWhyZXJlIGdsZWljaHplaXRpZ2UgQmVhcmJlaXRlciBvaG5lIERh
dGVpLUtvbmZsaWt0ZS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNoaXBzIj4KICAgICAgICA8c3Bh
biBjbGFzcz0iY2hpcCI+TMOkdWZ0IG9mZmxpbmUgYXVmIGxvY2FsaG9zdDwvc3Bhbj4KICAgICAg
ICA8c3BhbiBjbGFzcz0iY2hpcCI+S2VpbmUgQ2xvdWQsIGtlaW4gSW50ZXJuZXQ8L3NwYW4+CiAg
ICAgICAgPHNwYW4gY2xhc3M9ImNoaXAiPn40NiBQZXJzb25lbiDCtyA2IERpZW5zdGdydXBwZW48
L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoaXAiPkpTT04tRGF0ZW5oYWx0dW5nPC9zcGFu
PgogICAgICA8L2Rpdj4KICAgIDwvaGVhZGVyPgogICAgPG1haW4+CgogICAgICA8aDI+PHNwYW4g
Y2xhc3M9Im51bSI+MTwvc3Bhbj4gw5xiZXJibGljazwvaDI+CiAgICAgIDxwIGNsYXNzPSJsZWFk
Ij4KICAgICAgICBEaWUgVkkzIERHTC1QbGFudW5nIHZlcndhbHRldCBkaWUgU2NoaWNodHBsYW51
bmcgdm9uIHJ1bmQgNDYgUGVyc29uZW4KICAgICAgICBpbiA2IERpZW5zdGdydXBwZW4gw7xiZXIg
bWVocmVyZSBTdGFuZG9ydGUuIFNpZSBsw6R1ZnQgbG9rYWw6IERlciBCcm93c2VyCiAgICAgICAg
dmVyYmluZGV0IHNpY2ggYXVzc2NobGllw59saWNoIG1pdCA8Y29kZT5sb2NhbGhvc3Q8L2NvZGU+
LCBkaWUgRGF0ZW4KICAgICAgICBsaWVnZW4gYWxzIEpTT04tRGF0ZWllbiBhdWYgZGVtIGRpZW5z
dGxpY2hlbiBOZXR6bGF1ZndlcmsuIE1laHJlcmUKICAgICAgICBCZWFyYmVpdGVyIGFyYmVpdGVu
IGdsZWljaHplaXRpZyDigJQgw4RuZGVydW5nZW4gd2VyZGVuIGxpdmUgYWJnZWdsaWNoZW4sCiAg
ICAgICAgS29uZmxpa3RlIGVya2FubnQgdW5kIGdlbWVsZGV0LgogICAgICA8L3A+CgogICAgICA8
aDI+PHNwYW4gY2xhc3M9Im51bSI+Mjwvc3Bhbj4gUm9sbGVuICZhbXA7IFJlY2h0ZTwvaDI+CiAg
ICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQgcm9sbGUiPgog
ICAgICAgICAgPGgzPjxzcGFuIGNsYXNzPSJiYWRnZSBiLXN1Ij5TdXBlclVzZXI8L3NwYW4+PC9o
Mz4KICAgICAgICAgIDxwPlZvbGxlciBadWdyaWZmLiBQZmxlZ3QgU3RhbW1kYXRlbiwgRGllbnN0
Z3J1cHBlbiwgU3RhbmRvcnRlLAogICAgICAgICAgU2NoaWNodGNvZGVzLCBLYWxlbmRlciB1bmQg
4oCUIGV4a2x1c2l2IOKAlCBkaWUgU3VwZXJVc2VyLSB1bmQKICAgICAgICAgIEZhY2hhdWZzaWNo
dC1MaXN0ZW4uIE1pbmRlc3RlbnMgZWluIFN1cGVyVXNlciBpc3QgaW1tZXIgYWt0aXYuPC9wPgog
ICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQgcm9sbGUiPgogICAgICAgICAg
PGgzPjxzcGFuIGNsYXNzPSJiYWRnZSBiLWZhIj5GYWNoYXVmc2ljaHQ8L3NwYW4+PC9oMz4KICAg
ICAgICAgIDxwPkdyYW51bGFyIGZyZWlzY2hhbHRiYXI6IEFkbWluaXN0cmF0aW9uLCBTdGF0aXN0
aWssIExvZ2J1Y2gsCiAgICAgICAgICBCYWNrdXBzIOKAlCBzb3dpZSB3ZWxjaGUgUGVyc29uZW4s
IERpZW5zdGdydXBwZW4gb2RlciBTdGFuZG9ydGUgZWRpdGllcnQKICAgICAgICAgIHdlcmRlbiBk
w7xyZmVuLiBPcHRpb25hbCDigJ5nZXNhbXR2ZXJhbnR3b3J0bGljaCIgKGVyaMOkbHQgSGlud2Vp
c2UpLjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkIHJvbGxlIj4K
ICAgICAgICAgIDxoMz48c3BhbiBjbGFzcz0iYmFkZ2UgYi11c2VyIj5SZWd1bMOkcmVyIFVzZXI8
L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlNpZWh0IFBsYW51bmcsIFdvY2hlbnBsYW4gdW5kIHBl
cnPDtm5saWNoZW4gUGxhbi4gQmVhcmJlaXRldCBkaWUKICAgICAgICAgIGVpZ2VuZSBaZWlsZSB1
bmQgZGFzIGVpZ2VuZSBNaWtyb3RlYW0uIEFkbWluL1N0YXRpc3Rpay9Mb2didWNoIGJsZWliZW4K
ICAgICAgICAgIGF1c2dlYmxlbmRldCDigJQgYmVpIEJlZGFyZiBnZXppZWx0IGVyd2VpdGVyYmFy
LjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImluZm8t
Ym94Ij4KICAgICAgICA8Yj5QcmluemlwOjwvYj4gU3VwZXJVc2VyJm5ic3A7Jmd0OyZuYnNwO0Zh
Y2hhdWZzaWNodCZuYnNwOyZndDsmbmJzcDtyZWd1bMOkcmVyJm5ic3A7VXNlci4KICAgICAgICBK
ZWRlciBaZWxsLUtsaWNrIHdpcmQgc2VydmVyc2VpdGlnIGdlZ2VuIGRpZSBlaWdlbmVuIFJlY2h0
ZSBnZXByw7xmdDsKICAgICAgICBuaWNodCBlZGl0aWVyYmFyZSBaZWxsZW4gZXJzY2hlaW5lbiBn
ZWTDpG1wZnQgdW5kIHNpbmQgZ2VzcGVycnQuCiAgICAgIDwvZGl2PgoKICAgICAgPGgyPjxzcGFu
IGNsYXNzPSJudW0iPjM8L3NwYW4+IEZ1bmt0aW9uZW48L2gyPgogICAgICA8ZGl2IGNsYXNzPSJn
cmlkIj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICAgICAgICA8aDM+UGxhbnVuZyAm
YW1wOyBBbnNpY2h0ZW48L2gzPgogICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+SmFocmVz
cGxhbnVuZyBtaXQgcnVuZCAzMCBmYXJiY29kaWVydGVuIFNjaGljaHRjb2RlcyAoRnLDvGgtL1Nw
w6R0LS9OYWNodC1ER0wsIFdERiwgRkJQLCBBYndlc2VuaGVpdGVuLCBTb25kZXJkaWVuc3RlKTwv
bGk+CiAgICAgICAgICAgIDxsaT5UYWdlcy1TdMOkcmtlIGplIFNjaGljaHQsIFVudGVyYmVzZXR6
dW5nIGZhcmJsaWNoIG1hcmtpZXJ0PC9saT4KICAgICAgICAgICAgPGxpPkF1dG9tYXRpc2NoZXIg
4oCedmVyYW50d29ydGxpY2hlciBER0wiIG5hY2ggUmFuZzwvbGk+CiAgICAgICAgICAgIDxsaT5T
Y2hpY2h0cm90YXRpb24gcHJvIFN0YW5kb3J0IChBQkMvQkNBL0NBQik8L2xpPgogICAgICAgICAg
ICA8bGk+V29jaGVucGxhbiBpbiBBdXNoYW5nLU9wdGlrICZhbXA7IHBlcnPDtm5saWNoZXIgMTIt
TW9uYXRzLVBsYW48L2xpPgogICAgICAgICAgICA8bGk+4oCeTWVpbiBTY2hpY2h0LVRlYW0iIOKA
lCAxNC1UYWdlLcOcYmVyc2ljaHQgZGVyIGVpZ2VuZW4gU2NoaWNodC1Lb2hvcnRlIHBlciBLbm9w
ZmRydWNrPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYg
Y2xhc3M9ImNhcmQiPgogICAgICAgICAgPGgzPlN0ZXVlcnVuZyAmYW1wOyBSZWNodGU8L2gzPgog
ICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+TWlrcm90ZWFtcyBmw7xyIGdlbWVpbnNhbWUg
UGxhbnVuZyBkZWZpbmllcnRlciBQZXJzb25lbmdydXBwZW48L2xpPgogICAgICAgICAgICA8bGk+
VGVzdGFuc2ljaHQ6IFN1cGVyVXNlciBwcsO8ZnQgZGllIE9iZXJmbMOkY2hlIGF1cyBTaWNodCBq
ZWRlciBQZXJzb24gb2RlciBGYWNoYXVmc2ljaHQgKHJlaW4gbG9rYWwpPC9saT4KICAgICAgICAg
ICAgPGxpPlNpY2h0YmFya2VpdCBzdGV1ZXJuOiBlaW56ZWxuZSBQZXJzb25lbiwgRGllbnN0Z3J1
cHBlbiBvZGVyIEZ1bmt0aW9uZW4gYXVzIGRlciBQbGFudW5nIGF1c2JsZW5kZW48L2xpPgogICAg
ICAgICAgICA8bGk+RXJzY2hlaW51bmdzYmlsZC1FZGl0b3I6IE1hcmtpZXJ1bmdlbiBmw7xyIFNv
bmRlcnRhZ2UsIHdpY2h0aWdlIEZlaWVydGFnZSwgRmVyaWVuIHVuZCBIZXV0ZS1TcGFsdGUgZnJl
aSBrb25maWd1cmllcmJhcjwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgoKICAg
ICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICAgIDxoMz5Lb21tdW5pa2F0aW9uICZhbXA7
IEhpbndlaXNlPC9oMz4KICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPkluLUFwcC1IaW53
ZWlzc3lzdGVtIGbDvHIgU3VwZXJVc2VyICZhbXA7IEdlc2FtdHZlcmFudHdvcnRsaWNoZSAoS3Jh
bmttZWxkdW5nLCBSb2xsZW4tL1ZlcmFudHdvcnR1bmdzwq13ZWNoc2VsLCBCYWNrdXAtUmVzdG9y
ZSwgUGxhbnVuZ3MtUmVzZXQpIHN0YXR0IEUtTWFpbC1GbHV0PC9saT4KICAgICAgICAgICAgPGxp
PkdlemllbHRlIG1haWx0by1Wb3JsYWdlbiBmw7xyIFZlcmFudHdvcnR1bmdzwq3DvGJlcmdhbmcg
JmFtcDsgQmVzZXR6dW5nc2FuZnJhZ2VuPC9saT4KICAgICAgICAgICAgPGxpPkFuc3ByZWNocGFy
dG5lciBpbSBJbmZvLUZlbnN0ZXIgZGVyIEFwcCBoaW50ZXJsZWdiYXI8L2xpPgogICAgICAgICAg
ICA8bGk+QmVpIGVpbmVtIFZlcmFudHdvcnR1bmdzd2VjaHNlbCBlaW5lIGVpbnppZ2UgU2FtbWVs
LUUtTWFpbCBhbiBhbGxlIEJldHJvZmZlbmVuIChBdWZyw7xja2VyICZhbXA7IFZlcmRyw6RuZ3Rl
KSBtaXQgbnVyIGVpbmVtIEtsaWNrPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+
CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgICAgPGgzPkF1c3dlcnR1bmcgJmFt
cDsgQmVzZXR6dW5nPC9oMz4KICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPlN0YXRpc3Rp
ay1EYXNoYm9hcmQgbWl0IEtQSXMsIEZhaXJuZXNzLVZlcnRlaWx1bmcgKFdvY2hlbmVuZGUvRmVp
ZXJ0YWcpLCBBYndlc2VuaGVpdGVuICZhbXA7IEF1ZnLDvGNrZXI8L2xpPgogICAgICAgICAgICA8
bGk+QmVzZXR6dW5nc2tvbnRyb2xsZSBtaXQgRGVmaXppdC1Wb3JzY2hhdSDDvGJlciBtZWhyZXJl
IFdvY2hlbjwvbGk+CiAgICAgICAgICAgIDxsaT7igJ5LYW5kaWRhdGVuIGFuc2NocmVpYmVuIiBi
ZWkgdW50ZXJiZXNldHp0ZW4gU2NoaWNodGVuPC9saT4KICAgICAgICAgICAgPGxpPkxvZ2J1Y2gg
YWxsZXIgw4RuZGVydW5nZW4gbWl0IFplaXRzdGVtcGVsICZhbXA7IEJlbnV0emVyPC9saT4KICAg
ICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgog
ICAgICAgICAgPGgzPkRhdGVuICZhbXA7IEJldHJpZWI8L2gzPgogICAgICAgICAgPHVsPgogICAg
ICAgICAgICA8bGk+RXhjZWwtSW1wb3J0IGF1cyBkZXIgYWx0ZW4gVm9ybGFnZSAoaW5rbC4gQXV0
by1Lb3JyZWt0dXJlbik8L2xpPgogICAgICAgICAgICA8bGk+QXV0b21hdGlzY2hlIEJhY2t1cHMg
dm9yIFJlc2V0LCBEZW1vLURhdGVuICZhbXA7IFdpZWRlcmhlcnN0ZWxsdW5nOyBtYW51ZWxsZSBC
YWNrdXBzIGplZGVyemVpdDwvbGk+CiAgICAgICAgICAgIDxsaT5MaXZlLVN5bmMgbWVocmVyZXIg
QmVhcmJlaXRlcjsgZ2xlaWNoemVpdGlnZSBaZWxsLUJlYXJiZWl0dW5nIHdpcmQgZXJrYW5udDwv
bGk+CiAgICAgICAgICAgIDxsaT5UYWctL05hY2h0LU1vZHVzLCBBdmF0YXJlICZhbXA7IFBlcnNv
bmVuLVNjaG5lbGxpbmZvPC9saT4KICAgICAgICAgICAgPGxpPkRpYWdub3NlLVNlaXRlIDxjb2Rl
PnN5bmMtY2hlY2suaHRtbDwvY29kZT4gbWl0IFN0YXJ0LURpYWdub3NlIChNb2R1bC1MYWRldGVz
dCk8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KCiAgICAgIDwvZGl2PgoKICAg
ICAgPGgyPjxzcGFuIGNsYXNzPSJudW0iPjQ8L3NwYW4+IFNpY2hlcmhlaXQgJmFtcDsgRGF0ZW5z
Y2h1dHo8L2gyPgogICAgICA8cD4KICAgICAgICBHZXNwZWljaGVydCB3aXJkIG51ciwgd2FzIGRp
ZSBEaWVuc3RwbGFudW5nIGVyZm9yZGVydDogTmFtZSwgVm9ybmFtZSwKICAgICAgICBEaWVuc3Rn
cmFkIChvcHRpb25hbCksIERpZW5zdGdydXBwZSwgU3RhbmRvcnQsIERpZW5zdC1UZWxlZm9uLAog
ICAgICAgIE5XLUtlbm51bmcgc293aWUgb3B0aW9uYWwgRS1NYWlsIHVuZCBHZWJ1cnRzZGF0dW0u
IERpZSBEYXRlbiB2ZXJsYXNzZW4KICAgICAgICBkYXMgZGllbnN0bGljaGUgTmV0emxhdWZ3ZXJr
IG5pY2h0IOKAlCBrZWluZSDDnGJlcnRyYWd1bmcgaW5zIEludGVybmV0IG9kZXIKICAgICAgICBh
biBEcml0dGUuCiAgICAgIDwvcD4KICAgICAgPHVsIGNsYXNzPSJmbGF0Ij4KICAgICAgICA8bGk+
PGI+WnVncmlmZnNzY2h1dHo6PC9iPiBqZWRlciBaZWxsLUtsaWNrIHdpcmQgc2VydmVyc2VpdGln
IGdlZ2VuIGRpZSBlaWdlbmVuIFJlY2h0ZSBnZXByw7xmdCDigJQgUmVjaHRlIGxhc3NlbiBzaWNo
IG5pY2h0IGNsaWVudHNlaXRpZyBlcndlaXRlcm4uPC9saT4KICAgICAgICA8bGk+PGI+TmFjaHZv
bGx6aWVoYmFya2VpdDo8L2I+IGRhcyBMb2didWNoIGRva3VtZW50aWVydCDDhG5kZXJ1bmdlbiBt
aXQgWmVpdHN0ZW1wZWwgdW5kIE5XLUtlbm51bmc7IGVpbnNlaGJhciBudXIgZsO8ciBTdXBlclVz
ZXIgdW5kIGZyZWlnZXNjaGFsdGV0ZSBGYWNoYXVmc2ljaHQuPC9saT4KICAgICAgICA8bGk+PGI+
S2VpbmUgTmV0emZyZWlnYWJlOjwvYj4gZGVyIFNlcnZlciBiaW5kZXQgYXVzc2NobGllw59saWNo
IGF1ZiA8Y29kZT5sb2NhbGhvc3Q8L2NvZGU+OyBTZWN1cml0eS1IZWFkZXIgKDxjb2RlPlgtQ29u
dGVudC1UeXBlLU9wdGlvbnM8L2NvZGU+LCA8Y29kZT5YLUZyYW1lLU9wdGlvbnM8L2NvZGU+LCA8
Y29kZT5SZWZlcnJlci1Qb2xpY3k8L2NvZGU+KSBhdWYgYWxsZW4gQW50d29ydGVuLjwvbGk+CiAg
ICAgIDwvdWw+CgogICAgICA8aDI+PHNwYW4gY2xhc3M9Im51bSI+NTwvc3Bhbj4gVGVjaG5pazwv
aDI+CiAgICAgIDx1bCBjbGFzcz0iZmxhdCI+CiAgICAgICAgPGxpPjxiPkZyb250ZW5kOjwvYj4g
VmFuaWxsYSBIVE1ML0NTUy9KUyBhbHMgRVMtTW9kdWxlIOKAlCBrZWluIEJ1aWxkLVN0ZXAsIGtl
aW5lIGV4dGVybmVuIEFiaMOkbmdpZ2tlaXRlbi48L2xpPgogICAgICAgIDxsaT48Yj5CYWNrZW5k
OjwvYj4gbG9rYWxlciBQb3dlclNoZWxsLVNlcnZlciAoPGNvZGU+c2VydmVyLnBzMTwvY29kZT4p
IGF1ZiBkZW0gZWlnZW5lbiBSZWNobmVyLCBnZWJ1bmRlbiBhbiA8Y29kZT5sb2NhbGhvc3Q8L2Nv
ZGU+LjwvbGk+CiAgICAgICAgPGxpPjxiPkRhdGVuOjwvYj4gSlNPTi1EYXRlaWVuIGbDvHIgS29u
ZmlndXJhdGlvbiwgUGxhbnVuZywgTG9nYnVjaCB1bmQgSGlud2Vpc2Ug4oCUIGtlaW5lIERhdGVu
YmFuaywga2VpbmUgQ2xvdWQuPC9saT4KICAgICAgICA8bGk+PGI+QXV0by1TaHV0ZG93bjo8L2I+
IGRlciBTZXJ2ZXIgYmVlbmRldCBzaWNoIGJlaW0gU2NobGllw59lbiBkZXMgQnJvd3Nlci1UYWJz
IChwZXIgPGNvZGU+c2VuZEJlYWNvbjwvY29kZT4pIGJ6dy4gc3DDpHRlc3RlbnMgMzAmbmJzcDtz
IG5hY2ggZGVtIGxldHp0ZW4gSGVhcnRiZWF0LjwvbGk+CiAgICAgICAgPGxpPjxiPkhlYXJ0YmVh
dDo8L2I+IGzDpHVmdCBpbiBlaW5lbSBXZWItV29ya2VyIOKAlCBXZWNoc2VsIGluIGVpbmVuIEhp
bnRlcmdydW5kLVRhYiBiZWVuZGV0IGRlbiBTZXJ2ZXIgbmljaHQsIGVyc3QgZGFzIHRhdHPDpGNo
bGljaGUgU2NobGllw59lbi48L2xpPgogICAgICA8L3VsPgoKICAgICAgPGgyPjxzcGFuIGNsYXNz
PSJudW0iPjY8L3NwYW4+IFN0YXJ0LVZhcmlhbnRlbjwvaDI+CiAgICAgIDx0YWJsZT4KICAgICAg
ICA8dHI+PHRoIHN0eWxlPSJ3aWR0aDozNCUiPlZhcmlhbnRlPC90aD48dGg+WndlY2s8L3RoPjwv
dHI+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5zdGFydC52YnM8L2NvZGU+PC90ZD48dGQ+U3RhbmRh
cmQgcGVyIERvcHBlbGtsaWNrIOKAlCBzdGFydGV0IHVuc2ljaHRiYXIsIEJyb3dzZXIgw7ZmZm5l
dCBhdXRvbWF0aXNjaDwvdGQ+PC90cj4KICAgICAgICA8dHI+PHRkPjxjb2RlPmRnbC5iYXQ8L2Nv
ZGU+PC90ZD48dGQ+TGF1bmNoZXIgbWl0IHNpY2h0YmFyZW0gRmVuc3RlciB3w6RocmVuZCBkZXMg
U3RhcnRzPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+ZGdsLmJhdCAvZGVidWc8L2Nv
ZGU+PC90ZD48dGQ+UG93ZXJTaGVsbC1GZW5zdGVyIG1pdCBMaXZlLUxvZyB6dXIgRmVobGVyc3Vj
aGU8L3RkPjwvdHI+CiAgICAgIDwvdGFibGU+CgogICAgICA8aDI+PHNwYW4gY2xhc3M9Im51bSI+
Nzwvc3Bhbj4gQW5zcHJlY2hwYXJ0bmVyPC9oMj4KICAgICAgPHA+CiAgICAgICAgRnJhZ2VuIHp1
IEFud2VuZHVuZywgU2NoaWNodGNvZGVzLCBSZWNodGV2ZXJnYWJlIG9kZXIgUGxhbnVuZ3PCrWVu
dHNjaGVpZHVuZ2VuCiAgICAgICAgcmljaHRlbiBTaWUgYW4gZGllIFN1cGVyVXNlciDigJQgZXJy
ZWljaGJhciBpbiBkZXIgQW53ZW5kdW5nIG9iZW4gcmVjaHRzIMO8YmVyCiAgICAgICAgZGFzIElu
Zm8tU3ltYm9sIDxjb2RlPuKEuTwvY29kZT4uCiAgICAgIDwvcD4KCiAgICAgIDxmb290ZXI+CiAg
ICAgICAgVkkzIERHTC1QbGFudW5nIMK3IFZlcmtlaHJzaW5zcGVrdGlvbiAzIMK3IERpZXNlIFNl
aXRlIGlzdCByZWluIGluZm9ybWF0aXYgdW5kIHNwZWljaGVydCBzZWxic3Qga2VpbmUgRGF0ZW4u
CiAgICAgIDwvZm9vdGVyPgogICAgPC9tYWluPgogIDwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K
### FILE: js/admin.js | 77365
Ly8gPT09IGFkbWluL2FkbWluLmpzID09PQovLyBLb25zb2xpZGllcnRlcyBBZG1pbi1Nb2R1bDog
RGlzcGF0Y2hlciwgU2ljaHRiYXJrZWl0LCBCYWNrdXBzLCBHcnVwcGVuLAovLyBCZXplaWNobnVu
Z2VuLCBCZWRpZW51bmdzLUhpbGZlLCBFaW5zdGVsbHVuZ2VuLCBTdGFuZG9ydGUrU2NoaWNodGZv
bGdlLAovLyBQZXJzb25hbC1WZXJ3YWx0dW5nIChpbmtsLiBJbmxpbmUtRWRpdHMpLCBGZWllcnRh
Z2UsIEZlcmllbiwgU29uZGVydGVybWluZSwKLy8gU2NoaWNodGNvZGVzLCBGZWF0dXJlcywgU3Vw
ZXJVc2VyLUxpc3RlLCBGYWNoYXVmc2ljaHQtVmVyd2FsdHVuZwovLyAoaW5rbC4gU3ViLVNpY2h0
YmFya2VpdCkuIEJld3Vzc3RlIEtvbnNvbGlkaWVydW5nIGdlZ2VuIEZMRDogVkkzIGVudGZhbGxl
bgovLyBNZWRpZW4vUm90YXRpb24vSW5mby1SVEUsIFBlcnNvbmVuLUxpc3RlIGRldXRsaWNoIGts
ZWluZXIgYWxzIEZMRC4KLy8KLy8gSG9va3MtS29uc3VtZW50ZW4gaW4gYW5kZXJlbiBNb2R1bGVu
IChQaGFzZSA0LTcpIGJla29tbWVuIGlocmUgVmVyd2Vpc2UKLy8gdWViZXIgZGllIGpld2VpbGln
ZW4gKi1Ib29rcy1PYmpla3RlIGdlc2V0enQ7IHNpZWhlIGFwcC5qcyBpbml0LgoKaW1wb3J0IHsg
WiB9IGZyb20gJy4vY29yZV9zdGF0ZS5qcyc7CmltcG9ydCB7CiAgICBlc2NhcGVIVE1MLCBlc2Nh
cGVBdHRyLAogICAgZGF0dW1TdHIsIGRhdHVtRm9ybWF0REUsIGRhdHVtS3VyekRFLCB3b2NoZW50
YWdLdXJ6LCBpc3RXb2NoZW5lbmRlLAogICAgZnVua3Rpb25zUmFuZywgZ2V0RnVua3Rpb25lbiwg
Z2V0RGllbnN0Z3JhZGUsCiAgICBGVU5LVElPTkVOX0RFRkFVTFQsIERJRU5TVEdSQURFX0RFRkFV
TFQsCiAgICBfcGVyc29uQW56ZWlnZSwgYWJzZW5kZXJOYW1lRXJtaXR0ZWxuCn0gZnJvbSAnLi9j
b3JlX3V0aWwuanMnOwppbXBvcnQgeyBhcGksIGFwaVBvc3QsIGFwaVB1dCB9IGZyb20gJy4vY29y
ZV9hcGkuanMnOwppbXBvcnQgewogICAgdG9hc3QsIGJlc3RhZXRpZ2VuLAogICAgbW9kYWxaZWln
ZW4sIG1vZGFsU2NobGllc3NlbiwgbW9kYWxEaXJ0eVRyYWNraW5nQWt0aXZpZXJlbiwKICAgIGVu
dHd1cmZGdWVyLCBlbnR3dXJmU3BlaWNoZXJuLCBlbnR3dXJmTG9lc2NoZW4sCiAgICBkaXJ0eVJl
Z2lzdHJpZXJlLCBkaXJ0eVNldHplbiwgZGlydHlJc3QsIGRpcnR5S2VubnQsIGRpcnR5QWt0aXZl
LAogICAgZGlydHlFaW50cmFnLAogICAgdGFiRHJhZnRGdWVyLCB0YWJEcmFmdFNwZWljaGVybiwg
dGFiRHJhZnRMb2VzY2hlbiwgdGFiRHJhZnRBdXRvQ2xlYW51cAp9IGZyb20gJy4vdWlfZGlhbG9n
LmpzJzsKaW1wb3J0IHsKICAgIHNhbml0aXplUmljaEh0bWwsIEVNT0pJX1NFVCwKICAgIGVtb2pp
UGlja2VyWmVpZ2VuLCBlbW9qaVBpY2tlclNjaGxpZXNzZW4sCiAgICBydGVJbml0LCBydGVCdXR0
b25TdGF0ZXMKfSBmcm9tICcuL3VpX3J0ZS5qcyc7CmltcG9ydCB7CiAgICBkYXJmQWRtaW5TdWJ0
YWIsIGRhdHVtSW5WZXJiaW5kbGljaGtlaXQKfSBmcm9tICcuL2NvcmVfcGVybWlzc2lvbnMuanMn
OwppbXBvcnQgewogICAgQURNSU5fTElTVF9GRUxERVIsIGFkbWluTGlzdGVuTm9ybWFsaXNpZXJl
biwKICAgIHBlcnNvbmVuTmV1QXVmYmF1ZW4KfSBmcm9tICcuL2NvcmVfZGF0ZW5MYWRlbi5qcyc7
CmltcG9ydCB7CiAgICB0YWdlRXJ6ZXVnZW4sIHRhZ0luZm9zQmVyZWNobmVuLAogICAgZ3JpZFJl
bmRlcm4sIGtvcGZSZW5kZXJuLCBhbnNpY2h0V2VjaHNlbG4sCiAgICBuYW1lblJlbmRlcm4sIGRh
dGVuR3JpZFJlbmRlcm4sCiAgICBLQVRFR09SSUVfSUNPTl9ERUZBVUxUCn0gZnJvbSAnLi9ncmlk
X3JlbmRlci5qcyc7CmltcG9ydCB7IGZ1ZWhydW5nc1phZWhsZW4gfSBmcm9tICcuL2dyaWRfZWRp
dG9yLmpzJzsKaW1wb3J0IHsKICAgIGJlc2V0enVuZ3NUYWJGYXJiZUFrdHVhbGlzaWVyZW4sIGJl
c2V0enVuZ3Nrb250cm9sbGVSZW5kZXJuCn0gZnJvbSAnLi9iZXNldHp1bmcuanMnOwppbXBvcnQg
ewogICAgRU1BSUxfVk9STEFHRU5fREVGQVVMVCwgRU1BSUxfVk9STEFHRU5fTUVUQSwKICAgIGVt
YWlsVm9ybGFnZW5Ib2xlbiwgZW1haWxWb3JsYWdlblJlbmRlcm4sIGVtYWlsVm9ybGFnZUJlYXJi
ZWl0ZW5Nb2RhbAp9IGZyb20gJy4vZW1haWxfdm9ybGFnZW4uanMnOwppbXBvcnQgeyBtaXR0ZWls
dW5nZW5UYWJSZW5kZXJuLCBtaXR0ZWlsdW5nTmV1T2VmZm5lbiB9IGZyb20gJy4vYWRtaW5fbWl0
dGVpbHVuZ2VuLmpzJzsKLy8gTG9rYWxlIEF1ZnJ1ZmVyIHZvbiBzdXBlclVzZXJSZW5kZXJuICsg
ZmFjaGF1ZnNpY2h0UmVuZGVybiBicmF1Y2hlbgovLyBuYWNoIFBoYXNlIDktQiBDMSBleHBsaXpp
dGUgSW1wb3J0cyDigJQgZGFzIFBhc3MtVGhyb3VnaC1SZS1FeHBvcnQgYW0KLy8gRGF0ZWktRW5k
ZSBzdGVsbHQgZGllIFN5bWJvbGUgbnVyIGZ1ZXIgZXh0ZXJuZSBLb25zdW1lbnRlbiBiZXJlaXQs
Ci8vIG5pY2h0IGltIE1vZHVsLVNjb3BlIHZvbiBhZG1pbi5qcyBzZWxic3QuCmltcG9ydCB7IHN1
cGVyVXNlclJlbmRlcm4sIGZhY2hhdWZzaWNodFJlbmRlcm4sIHJvbGxlblRhYmVsbGVSZW5kZXJu
IH0gZnJvbSAnLi9hZG1pbl9yb2xsZW4uanMnOwovLyBBbmFsb2cgUGhhc2UgOS1CIEMyOiBzY2hp
Y2h0Y29kZVZvcnNjaGF1UmVuZGVybiB3aXJkIGF1cwovLyBhZG1pblJlbmRlcm4oKSBoZXJhdXMg
YXVmZ2VydWZlbiwgZGFoZXIgZXhwbGl6aXQgbG9rYWwgaW1wb3J0aWVyZW4uCmltcG9ydCB7IHNj
aGljaHRjb2RlVm9yc2NoYXVSZW5kZXJuIH0gZnJvbSAnLi9hZG1pbl9jb2Rlcy5qcyc7Ci8vIFBo
YXNlIDktQiBDMzogZmVpZXJ0YWdlVGFiZWxsZVJlbmRlcm4sIGZlcmllblRhYmVsbGVSZW5kZXJu
LAovLyBzb25kZXJ0ZXJtaW5lUmVuZGVybiB3ZXJkZW4gdm9uIGFkbWluUmVuZGVybigpIGF1Zmdl
cnVmZW4uCmltcG9ydCB7CiAgICBmZWllcnRhZ2VUYWJlbGxlUmVuZGVybiwgZmVyaWVuVGFiZWxs
ZVJlbmRlcm4sIHNvbmRlcnRlcm1pbmVSZW5kZXJuLAogICAgZmVyaWVuQXVzVGFiZWxsZUxlc2Vu
Cn0gZnJvbSAnLi9hZG1pbl9rYWxlbmRlci5qcyc7Ci8vIFBoYXNlIDktQiBDNDogcGVyc29uYWxU
YWJlbGxlUmVuZGVybiB3aXJkIHZvbiBhZG1pblJlbmRlcm4oKSBhdWZnZXJ1ZmVuLgppbXBvcnQg
eyBwZXJzb25hbFRhYmVsbGVSZW5kZXJuIH0gZnJvbSAnLi9hZG1pbl9wZXJzb25hbC5qcyc7Cmlt
cG9ydCB7IHN0YXRpc3Rpa0xheW91dFJlbmRlcm4gfSBmcm9tICcuL2FkbWluX3N0YXRpc3Rpay5q
cyc7CmltcG9ydCB7IHN0YXRpc3Rpa0J1aWxkZXJSZW5kZXJuIH0gZnJvbSAnLi9hZG1pbl9zdGF0
aXN0aWtfYnVpbGRlci5qcyc7CmltcG9ydCB7CiAgICBlcnNjaGVpbnVuZ3NiaWxkUmVuZGVybiwg
ZXJzY2hlaW51bmdzYmlsZFNwZWljaGVybiwgZXJzY2hlaW51bmdzYmlsZFp1cnVlY2tzZXR6ZW4s
CiAgICB2b3JzY2hhdUFrdHVhbGlzaWVyZW4sIHN5bmNGbGFzaFZvcnNjaGF1LCBtYXJraWVydW5n
ZW5BbndlbmRlbgp9IGZyb20gJy4vYWRtaW5fZXJzY2hlaW51bmdzYmlsZC5qcyc7CgovLyA9PT09
PSBIb29rcyA9PT09PQoKZXhwb3J0IHZhciBhZG1pbkhvb2tzID0gewogICAgYmVkaWVudW5nWmVp
bGVuUmVuZGVybjogbnVsbCAgIC8vIGJsZWlidCBpbiBhcHAuanMgKEluZm8tRmVuc3RlcikKfTsK
Ci8vIEJFRElFTlVOR19ERUZBVUxUIOKAlCBEZWZhdWx0LUJlZGllbnVuZ3MtSGlud2Vpc2UsIGdy
ZWlmZW4gd2VubgovLyBhZG1pbi5iZWRpZW51bmdzdGV4dGUgbGVlciBpc3QuIEZvcm1hdCAiVGl0
ZWw6IFRleHQiIHBybyBaZWlsZS4KdmFyIEJFRElFTlVOR19ERUZBVUxUID0KICAgICdQbGFudW5n
OiBFaW5mYWNoLUtsaWNrIGFrdGl2aWVydCBkaWUgWmVsbGUgKGtsZWluZXMgZHVua2Vscm90ZXMg
UXVhZHJhdCB1bnRlbiByZWNodHMpLiBEb3BwZWxrbGljayDDtmZmbmV0IGRlbiBTY2hpY2h0Y29k
ZS1FZGl0b3IuIEtvbW1lbnRhciDDvGJlciBkYXMgRWluZ2FiZWZlbGQgaW0gRWRpdG9yLlxuJyAr
CiAgICAnRHJhZy1GaWxsIChFeGNlbC1Gw7xsbGvDpHN0Y2hlbik6IEF1ZiBkYXMgZHVua2Vscm90
ZSBRdWFkcmF0IGtsaWNrZW4sIGdlZHLDvGNrdCBoYWx0ZW4gdW5kIHNlaXRsaWNoIMO8YmVyIGRp
ZSBaZWxsZW4gZGVyc2VsYmVuIFBlcnNvbiB6aWVoZW4g4oCUIGRlciBXZXJ0IHdpcmQgYXVmIGFs
bGUgw7xiZXJzdHJpY2hlbmVuIFRhZ2Ugw7xiZXJ0cmFnZW4uXG4nICsKICAgICdXb2NoZW5wbGFu
OiBER0wgdW5kIFdERi9GQlAgZ2V0cmVubnQgZGFyZ2VzdGVsbHQsIG1pdCBEaWVuc3RudW1tZXJu
LiAqIG1hcmtpZXJ0IEJlc2V0enVuZyBhdXMgZGVtIEZ1bmt0aW9uc2Jlc2V0enVuZ3NwbGFuLlxu
JyArCiAgICAnUGVycy4gUGxhbjogSmFocmVzw7xiZXJzaWNodCBmw7xyIGVpbmUgZWluemVsbmUg
UGVyc29uIG1pdCBNb25hdHNrYWxlbmRlcm4uXG4nICsKICAgICdIZXV0ZS1CdXR0b246IFNjcm9s
bHQgenVtIGhldXRpZ2VuIERhdHVtLlxuJyArCiAgICAnQmFja3VwOiBFcnN0ZWxsdCBlaW5lIFNp
Y2hlcnVuZ3Nrb3BpZSBkZXIgYWt0dWVsbGVuIFBsYW51bmcuXG4nICsKICAgICdWZXJhbnR3b3J0
bGljaDogRGllIHJhbmdow7ZjaHN0ZSBQZXJzb24gcHJvIFNjaGljaHQgd2lyZCBnb2xkZmFyYmVu
IG1hcmtpZXJ0LlxuJyArCiAgICAnS29tbWVudGFyZTogWmVsbGVuIG1pdCBLb21tZW50YXIgaGFi
ZW4gZWluIGdvbGRlbmVzIERyZWllY2sgb2JlbiByZWNodHMuXG4nICsKICAgICdCYWRnZXMgaW0g
SGVhZGVyOiDwn46CIEdlYnVydHN0YWcsIOKaoCBXYXJudW5nLCDihLkgSGlud2VpcyDigJQgZGly
ZWt0IGFtIGpld2VpbGlnZW4gVGFnLic7CgovLyA9PT09PSBBZG1pbjogRW1wdHktU3RhdGUtSGVs
cGVyID09PT09Ci8vCi8vIFJlbmRlcnQgZWluZSAuYWRtaW4tZW1wdHktS2FydGUgYWxzIDx0cj4g
aW5uZXJoYWxiIGVpbmVyIGxlZXJlbiBUYWJlbGxlLgovLyBQYXR0ZXJuIGZ1ZXIgYWxsZSBBZG1p
bi1MaXN0ZW4sIGRpZSBub2NoIGtlaW5lIEVpbnRyYWVnZSBoYWJlbiDigJQgc3RhdHQKLy8gZWlu
ZXIga2FsdGVuIGxlZXJlbiBUYWJlbGxlIGJla29tbWVuIE51dHplciBlaW5lIGt1cnplIE9uYm9h
cmRpbmctS2FydGUKLy8gbWl0IEljb24sIFRpdGVsLCBFcmtsYWVydW5nIHVuZCBvcHRpb25hbCBl
aW5lbSBBa3Rpb25zLUhpbndlaXMuCi8vICJoaW53ZWlzIiB2ZXJ3ZWlzdCBtZWlzdCBhdWYgZWlu
ZW4gZXhpc3RpZXJlbmRlbiAiTmV1Ii1CdXR0b24gaW0gVGFiLUtvcGYKLy8g4oCUIGtlaW4gQnV0
dG9uIGltIEVtcHR5LVN0YXRlLCBkYW1pdCBlcyBrZWluZSBEb3BwZWx1bmcgZ2lidC4KZXhwb3J0
IGZ1bmN0aW9uIGFkbWluRW1wdHlaZWlsZShjb2xzcGFuLCBpY29uLCB0aXRlbCwgdGV4dCkgewog
ICAgcmV0dXJuICc8dHIgY2xhc3M9ImFkbWluLWVtcHR5LXplaWxlIj48dGQgY29sc3Bhbj0iJyAr
IGNvbHNwYW4gKwogICAgICAgICciIHN0eWxlPSJiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRl
cjowO3BhZGRpbmc6OHB4IDAiPicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJhZG1pbi1lbXB0eSI+
JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJhZG1pbi1lbXB0eS1pY29uIiBhcmlhLWhpZGRl
bj0idHJ1ZSI+JyArIGljb24gKyAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJh
ZG1pbi1lbXB0eS10aXRlbCI+JyArIGVzY2FwZUhUTUwodGl0ZWwpICsgJzwvZGl2PicgKwogICAg
ICAgICAgICAnPGRpdiBjbGFzcz0iYWRtaW4tZW1wdHktdGV4dCI+JyArIGVzY2FwZUhUTUwodGV4
dCkgKyAnPC9kaXY+JyArCiAgICAgICAgJzwvZGl2PicgKwogICAgJzwvdGQ+PC90cj4nOwp9Cgov
LyA9PT09PSBBZG1pbjogUmVhZC1vbmx5LUJhbm5lciA9PT09PQovLwovLyBCbGVuZGV0IGltIEFk
bWluLUJlcmVpY2ggb2JlbiBlaW5lbiBIaW53ZWlzIGVpbiwgd2VubiBkZXIgZWluZ2Vsb2dndGUK
Ly8gVXNlciBrZWluZSBCZWFyYmVpdHVuZ3MtUmVjaHRlIGhhdCAoYWxsZSBSb2xsZW4gYXVzc2Vy
IFN1cGVyVXNlcikuCi8vIEF1ZnJ1ZjogYW0gRW5kZSB2b24gYWRtaW5SZW5kZXJuKCkgdW5kIG5h
Y2ggamVkZW0gVGFiLVN3aXRjaCAoYXBwLmpzKS4KZXhwb3J0IGZ1bmN0aW9uIGFkbWluQmFubmVy
QWt0dWFsaXNpZXJlbigpIHsKICAgIHZhciBiYW5uZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYWRtaW4tcmVhZG9ubHktYmFubmVyJyk7CiAgICBpZiAoIWJhbm5lcikgcmV0dXJuOwogICAg
aWYgKCFaLnJlY2h0ZSB8fCBaLnJlY2h0ZS5pc3RTdXBlclVzZXIpIHsKICAgICAgICBiYW5uZXIu
Y2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgLy8g
Um9sbGUgaW4gbGVzYmFyZW4gVGV4dCB1bXNldHplbiDigJQga2VpbiBHbG9zc2FyLUxlaHJnYW5n
LCBudXIgS29udGV4dAogICAgLy8gZGFtaXQgZGVyIFVzZXIgdmVyc3RlaHQsICp3YXJ1bSogZXIg
bmljaHQgZWRpdGllcmVuIGRhcmYuCiAgICB2YXIgcm9sbGVUZXh0ID0gJ0ZhY2hhdWZzaWNodCc7
CiAgICBpZiAoWi5yZWNodGUucm9sbGUgPT09ICdkaXJla3Rpb25zbGVpdHVuZycpIHJvbGxlVGV4
dCA9ICdEaXJla3Rpb25zbGVpdHVuZyc7CiAgICBlbHNlIGlmIChaLnJlY2h0ZS5yb2xsZSA9PT0g
J2Z1ZWhydW5nc3N0ZWxsZScpIHJvbGxlVGV4dCA9ICdGdWVocnVuZ3NzdGVsbGUnOwogICAgZWxz
ZSBpZiAoIVoucmVjaHRlLmlzdEZhY2hhdWZzaWNodCkgcm9sbGVUZXh0ID0gJ01pdGFyYmVpdGVy
JzsKICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluLXJlYWRvbmx5
LWJhbm5lci10ZXh0Jyk7CiAgICBpZiAodGV4dCkgewogICAgICAgIHRleHQuaW5uZXJIVE1MID0g
J0R1IHNpZWhzdCBkaWVzZW4gQmVyZWljaCBudXIgbGVzZW5kIChSb2xsZTogPHN0cm9uZz4nICsK
ICAgICAgICAgICAgZXNjYXBlSFRNTChyb2xsZVRleHQpICsKICAgICAgICAgICAgJzwvc3Ryb25n
PikuIEJlYXJiZWl0dW5nIGltIEFkbWluLUJlcmVpY2ggaXN0IGF1ZiBTdXBlclVzZXIgYmVzY2hy
JmF1bWw7bmt0Lic7CiAgICB9CiAgICBiYW5uZXIuY2xhc3NMaXN0LnJlbW92ZSgndmVyc3RlY2t0
Jyk7Cn0KCi8vID09PT09IEFkbWluOiBQZXJzb25hbHZlcndhbHR1bmcgPT09PT0KCmZ1bmN0aW9u
IGFkbWluUmVuZGVybigpIHsKICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fuc2lj
aHQtYWRtaW4nKSkgcmV0dXJuOwogICAgYWRtaW5CYW5uZXJBa3R1YWxpc2llcmVuKCk7CiAgICBw
ZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICBncnVwcGVuVGFiZWxsZVJlbmRlcm4oKTsKICAg
IGZlaWVydGFnZVRhYmVsbGVSZW5kZXJuKCk7CiAgICBmZXJpZW5UYWJlbGxlUmVuZGVybigpOwog
ICAgc29uZGVydGVybWluZVJlbmRlcm4oKTsKICAgIHNjaGljaHRjb2RlVm9yc2NoYXVSZW5kZXJu
KCk7CiAgICBzdGFuZG9ydGVSZW5kZXJuKCk7CiAgICBmZWF0dXJlc1JlbmRlcm4oKTsKICAgIHN1
cGVyVXNlclJlbmRlcm4oKTsKICAgIGZhY2hhdWZzaWNodFJlbmRlcm4oKTsKICAgIHJvbGxlblRh
YmVsbGVSZW5kZXJuKCdkaXJla3Rpb25zbGVpdHVuZycpOwogICAgcm9sbGVuVGFiZWxsZVJlbmRl
cm4oJ2Z1ZWhydW5nc3N0ZWxsZScpOwogICAgZWluc3RlbGx1bmdlblJlbmRlcm4oKTsKICAgIGVy
c2NoZWludW5nc2JpbGRSZW5kZXJuKCk7CiAgICBzdGF0aXN0aWtMYXlvdXRSZW5kZXJuKCk7CiAg
ICBiZXplaWNobnVuZ2VuUmVuZGVybigpOwogICAgbGlzdGVuUmVuZGVybigpOwogICAgbWlrcm90
ZWFtc1JlbmRlcm4oKTsKICAgIGluZm9IaWxmZVJlbmRlcm4oKTsKICAgIGVtYWlsVm9ybGFnZW5S
ZW5kZXJuKCk7CiAgICBzdXBwb3J0TWFpbFNla3Rpb25SZW5kZXJuKCk7CiAgICBtaXR0ZWlsdW5n
ZW5UYWJSZW5kZXJuKCk7CiAgICBiYWNrdXBUYWJlbGxlTGFkZW4oKTsKICAgIGFkbWluSW5mb0lu
aXQoKTsKfQoKLy8gR2xvYmFsZSBTaWNodGJhcmtlaXRzLVNla3Rpb24gZnVlciAicmVndWxhZXJl
IEFkbWlucyIgd3VyZGUgMjAyNi0wNS0yMwovLyBlbnRmZXJudC4gS29uemVwdCBleGlzdGllcnQg
bmljaHQgbWVociDigJQgU3RhdGlzdGlrL0xvZ2J1Y2gvCi8vIEFkbWluaXN0cmF0aW9uIHNpbmQg
bnVyIGZ1ZXIgU1UgKyBSb2xsZW4tTGlzdGVuIHNpY2h0YmFyIChGYWNoLQovLyBhdWZzaWNodCAv
IERpcmVrdGlvbnNsZWl0dW5nIC8gRnVlaHJ1bmdzc3RlbGxlKSwgdW5kIGdyYW51bGFyIHBybwov
LyBQZXJzb24vUm9sbGUgdWViZXIgZGllIGpld2VpbGlnZSBTdWItU2ljaHQtTWFwLiBFeHBvcnQt
U3R1YiBibGVpYnQKLy8gaGllciBudXIsIGZhbGxzIGV4dGVybmUgTW9kdWxlIG5vY2ggZGVuIE5h
bWVuIGltcG9ydGllcmVuIChuby1vcCkuCmZ1bmN0aW9uIHNpY2h0YmFya2VpdFJlbmRlcm4oKSB7
IC8qIGVudGZlcm50ICovIH0KZnVuY3Rpb24gc2ljaHRiYXJrZWl0V2VydCgpICAgIHsgcmV0dXJu
IGZhbHNlOyB9CgovLyA9PT09PSBBZG1pbjogQmFja3VwcyA9PT09PQpmdW5jdGlvbiBiYWNrdXBU
YWJlbGxlTGFkZW4oKSB7CiAgICB2YXIgdGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
YmFja3VwLXRib2R5Jyk7CiAgICBpZiAoIXRib2R5KSByZXR1cm47CiAgICBhcGkoJy9hcGkvcGxh
bnVuZy9iYWNrdXBzJykudGhlbihmdW5jdGlvbihsaXN0ZSkgewogICAgICAgIGJhY2t1cFRhYmVs
bGVSZW5kZXJuKGxpc3RlIHx8IFtdKTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAg
ICB0Ym9keS5pbm5lckhUTUwgPSAnPHRyPjx0ZCBjb2xzcGFuPSI1IiBzdHlsZT0idGV4dC1hbGln
bjpjZW50ZXI7cGFkZGluZzoxNnB4O2NvbG9yOnZhcigtLWZhcmJlLWZlaGxlcikiPkZlaGxlciBi
ZWltIExhZGVuOiAnICsgZXNjYXBlSFRNTChlLm1lc3NhZ2UpICsgJzwvdGQ+PC90cj4nOwogICAg
fSk7Cn0KCmZ1bmN0aW9uIGJhY2t1cEdyb2Vzc2VGb3JtYXQoYnl0ZXMpIHsKICAgIGlmIChieXRl
cyA8IDEwMjQpIHJldHVybiBieXRlcyArICcgQic7CiAgICBpZiAoYnl0ZXMgPCAxMDQ4NTc2KSBy
ZXR1cm4gKGJ5dGVzIC8gMTAyNCkudG9GaXhlZCgxKSArICcgS0InOwogICAgcmV0dXJuIChieXRl
cyAvIDEwNDg1NzYpLnRvRml4ZWQoMSkgKyAnIE1CJzsKfQoKZnVuY3Rpb24gYmFja3VwWmVpdHB1
bmt0Rm9ybWF0KGlzbykgewogICAgaWYgKCFpc28pIHJldHVybiAn4oCUJzsKICAgIHZhciBkID0g
bmV3IERhdGUoaXNvKTsKICAgIGlmIChpc05hTihkLmdldFRpbWUoKSkpIHJldHVybiBpc287CiAg
ICB2YXIgcGFkID0gZnVuY3Rpb24obikgeyByZXR1cm4gKG4gPCAxMCA/ICcwJyA6ICcnKSArIG47
IH07CiAgICByZXR1cm4gcGFkKGQuZ2V0RGF0ZSgpKSArICcuJyArIHBhZChkLmdldE1vbnRoKCkg
KyAxKSArICcuJyArIGQuZ2V0RnVsbFllYXIoKSArCiAgICAgICAgICAgJyAnICsgcGFkKGQuZ2V0
SG91cnMoKSkgKyAnOicgKyBwYWQoZC5nZXRNaW51dGVzKCkpICsgJzonICsgcGFkKGQuZ2V0U2Vj
b25kcygpKTsKfQoKZnVuY3Rpb24gYmFja3VwVGFiZWxsZVJlbmRlcm4obGlzdGUpIHsKICAgIHZh
ciB0Ym9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYWNrdXAtdGJvZHknKTsKICAgIGlm
ICghdGJvZHkpIHJldHVybjsKICAgIGlmICghbGlzdGUubGVuZ3RoKSB7CiAgICAgICAgdGJvZHku
aW5uZXJIVE1MID0gYWRtaW5FbXB0eVplaWxlKDYsICdcdXsxRjRFNn0nLAogICAgICAgICAgICAn
Tm9jaCBrZWluZSBCYWNrdXBzIHZvcmhhbmRlbicsCiAgICAgICAgICAgICdCYWNrdXBzIHNpY2hl
cm4gZGVuIHZvbGxzdGFlbmRpZ2VuIFBsYW51bmdzLSB1bmQgQWRtaW4tU3RhbmQuIEF1dG9tYXRp
c2NoIHdlcmRlbiBCYWNrdXBzIHZvciByaXNrYW50ZW4gQWt0aW9uZW4gKFJlc2V0LCBEdW1teWRh
dGVuLCBXaWVkZXJoZXJzdGVsbHVuZykgYW5nZWxlZ3QuIE1hbnVlbGwgbWl0IOKAnk5ldWVzIEJh
Y2t1cCBqZXR6dCBlcnN0ZWxsZW4iLicpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciBo
dG1sID0gJyc7CiAgICBsaXN0ZS5mb3JFYWNoKGZ1bmN0aW9uKGIpIHsKICAgICAgICB2YXIgdHlw
QmFkZ2UgPSAnYmstdHlwLW1hbnVlbGwnOwogICAgICAgIGlmIChiLnR5cCA9PT0gJ3ZvciBEdW1t
eWRhdGVuJykgdHlwQmFkZ2UgPSAnYmstdHlwLWF1dG8nOwogICAgICAgIGVsc2UgaWYgKGIudHlw
ID09PSAndm9yIFJlc2V0JykgdHlwQmFkZ2UgPSAnYmstdHlwLWF1dG8nOwogICAgICAgIGVsc2Ug
aWYgKGIudHlwID09PSAndm9yIFdpZWRlcmhlcnN0ZWxsdW5nJykgdHlwQmFkZ2UgPSAnYmstdHlw
LXNpY2hlcnVuZyc7CiAgICAgICAgLy8gaW5oYWx0OiBLb21wbGV0dCAoQnVuZGxlKSB2cyBOdXIg
UGxhbnVuZyAoTGVnYWN5KSDigJQgRmluZGluZyBDLjUKICAgICAgICB2YXIgaW5oYWx0ID0gYi5p
bmhhbHQgfHwgKGIuaXN0QnVuZGxlID8gJ0tvbXBsZXR0IChQbGFudW5nICsgQWRtaW4pJyA6ICdO
dXIgUGxhbnVuZycpOwogICAgICAgIHZhciBpbmhhbHRDbHMgPSBiLmlzdEJ1bmRsZSA/ICdiay1p
bmhhbHRzdHlwLWtvbXBsZXR0JyA6ICdiay1pbmhhbHRzdHlwLXBsYW51bmcnOwogICAgICAgIHZh
ciByZXN0b3JlVGl0bGUgPSBiLmlzdEJ1bmRsZQogICAgICAgICAgICA/ICdBa3R1ZWxsZSBQbGFu
dW5nIFVORCBBZG1pbi1Lb25maWd1cmF0aW9uIGR1cmNoIGRpZXNlcyBCdW5kbGUtQmFja3VwIGVy
c2V0emVuJwogICAgICAgICAgICA6ICdBa3R1ZWxsZSBQbGFudW5nIGR1cmNoIGRpZXNlcyBCYWNr
dXAgZXJzZXR6ZW4gKEFkbWluLUtvbmZpZ3VyYXRpb24gYmxlaWJ0IHVudmVyYWVuZGVydCknOwog
ICAgICAgIC8vIEFrdGlvbnMtQnV0dG9ucyAoQ2hlcnJ5LVBpY2sgNGRiNjQ5Myk6IGluIGVpbmVy
IFplaWxlLCBuaWNodAogICAgICAgIC8vIHVtYnJlY2hlbmQuIERhdGVpbmFtZS9Hcm9lc3NlIG1p
dCBlbGxpcHNpcywgZmFsbHMgZW5nLiBLZWluZQogICAgICAgIC8vIEZ1bmt0aW9uc2FlbmRlcnVu
ZyDigJQgbnVyIGtvbXBha3RlcmUgRGFyc3RlbGx1bmcuCiAgICAgICAgaHRtbCArPSAnPHRyPicg
KwogICAgICAgICAgICAnPHRkPjxjb2RlIHN0eWxlPSJmb250LXNpemU6MTFweCI+JyArIGVzY2Fw
ZUhUTUwoYmFja3VwWmVpdHB1bmt0Rm9ybWF0KGIuZXJzdGVsbHRBbSkpICsgJzwvY29kZT48L3Rk
PicgKwogICAgICAgICAgICAnPHRkPjxzcGFuIGNsYXNzPSJiay10eXAgJyArIHR5cEJhZGdlICsg
JyI+JyArIGVzY2FwZUhUTUwoYi50eXApICsgJzwvc3Bhbj48L3RkPicgKwogICAgICAgICAgICAn
PHRkPjxzcGFuIGNsYXNzPSJiay1pbmhhbHRzdHlwICcgKyBpbmhhbHRDbHMgKyAnIj4nICsgZXNj
YXBlSFRNTChpbmhhbHQpICsgJzwvc3Bhbj48L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxl
PSJmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjExcHg7b3ZlcmZsb3c6aGlkZGVuO3Rl
eHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO21heC13aWR0aDoyODBweCIg
dGl0bGU9IicgKyBlc2NhcGVBdHRyKGIuZGF0ZWluYW1lKSArICciPicgKyBlc2NhcGVIVE1MKGIu
ZGF0ZWluYW1lKSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWdu
OnJpZ2h0O2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXNpemU6MTFweDt3aGl0ZS1zcGFjZTpu
b3dyYXAiPicgKyBlc2NhcGVIVE1MKGJhY2t1cEdyb2Vzc2VGb3JtYXQoYi5ncm9lc3NlKSkgKyAn
PC90ZD4nICsKICAgICAgICAgICAgJzx0ZD48ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjZw
eDtmbGV4LXdyYXA6bm93cmFwO3doaXRlLXNwYWNlOm5vd3JhcCI+JyArCiAgICAgICAgICAgICAg
ICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIGJ0bi1rbGVpbiIgZGF0YS1ha3Rpb249
ImJhY2t1cC13aWVkZXJoZXJzdGVsbGVuIiBkYXRhLWRhdGVpPSInICsgZXNjYXBlQXR0cihiLmRh
dGVpbmFtZSkgKyAnIiB0aXRsZT0iJyArIGVzY2FwZUF0dHIocmVzdG9yZVRpdGxlKSArICciIHN0
eWxlPSJ3aGl0ZS1zcGFjZTpub3dyYXAiPuKGuiBXaWVkZXJoZXJzdGVsbGVuPC9idXR0b24+JyAr
CiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBk
YXRhLWFrdGlvbj0iYmFja3VwLWRvd25sb2FkIiBkYXRhLWRhdGVpPSInICsgZXNjYXBlQXR0cihi
LmRhdGVpbmFtZSkgKyAnIiB0aXRsZT0iSlNPTi1EYXRlaSBoZXJ1bnRlcmxhZGVuIiBzdHlsZT0i
d2hpdGUtc3BhY2U6bm93cmFwIj7ipJMgRG93bmxvYWQ8L2J1dHRvbj4nICsKICAgICAgICAgICAg
ICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdlZmFociBidG4ta2xlaW4gYnRuLWxvZXNjaGVu
IiBkYXRhLWFrdGlvbj0iYmFja3VwLWxvZXNjaGVuIiBkYXRhLWRhdGVpPSInICsgZXNjYXBlQXR0
cihiLmRhdGVpbmFtZSkgKyAnIiB0aXRsZT0iQmFja3VwIGVuZGfDvGx0aWcgbMO2c2NoZW4iIHN0
eWxlPSJ3aGl0ZS1zcGFjZTpub3dyYXAiPkzDtnNjaGVuPC9idXR0b24+JyArCiAgICAgICAgICAg
ICc8L2Rpdj48L3RkPicgKwogICAgICAgICc8L3RyPic7CiAgICB9KTsKICAgIHRib2R5LmlubmVy
SFRNTCA9IGh0bWw7Cn0KCi8vID09PT09IEFkbWluOiBEaWVuc3RncnVwcGVuID09PT09CgovLyBa
YWVobHQgd2llIHZpZWxlIGFrdGl2ZSBQZXJzb25lbiBlaW5lciBHcnVwcGUgenVnZW9yZG5ldCBz
aW5kLgovLyBXaXJkIGZ1ZXIgZGllIExvZXNjaC1TcGVycmUgdW5kIGRpZSBTcGFsdGUgIlBlcnNv
bmVuIiBnZW51dHp0LgpmdW5jdGlvbiBncnVwcGVuUGVyc29uZW5aYWVobGVuKCkgewogICAgdmFy
IG1hcCA9IHt9OwogICAgKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZm9yRWFjaChmdW5jdGlv
bihwKSB7CiAgICAgICAgaWYgKCFwLmFrdGl2IHx8ICFwLmdydXBwZSkgcmV0dXJuOwogICAgICAg
IG1hcFtwLmdydXBwZV0gPSAobWFwW3AuZ3J1cHBlXSB8fCAwKSArIDE7CiAgICB9KTsKICAgIHJl
dHVybiBtYXA7Cn0KCmZ1bmN0aW9uIGdydXBwZW5UYWJlbGxlUmVuZGVybigpIHsKICAgIHZhciB0
Ym9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncnVwcGVuLXRib2R5Jyk7CiAgICBpZiAo
IXRib2R5KSByZXR1cm47CiAgICB2YXIgemFlaGwgPSBncnVwcGVuUGVyc29uZW5aYWVobGVuKCk7
CiAgICBpZiAoIShaLmFkbWluLmdydXBwZW4gfHwgW10pLmxlbmd0aCkgewogICAgICAgIHRib2R5
LmlubmVySFRNTCA9IGFkbWluRW1wdHlaZWlsZSg3LCAnXHV7MUY0NjV9JywKICAgICAgICAgICAg
J05vY2gga2VpbmUgRGllbnN0Z3J1cHBlbiBhbmdlbGVndCcsCiAgICAgICAgICAgICdEaWVuc3Rn
cnVwcGVuIHNpbmQgZGllIG9yZ2FuaXNhdG9yaXNjaGUgS2xhbW1lciBmdWVyIFBlcnNvbmVuICh6
LkIuIEEvQi9DLCBXTCwgVkQpLiBLbGlja2Ugb2JlbiBhdWYg4oCeTmV1ZSBEaWVuc3RncnVwcGUi
LCB1bSB6dSBiZWdpbm5lbi4nKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICB2YXIgaHRtbCA9
ICcnOwogICAgdmFyIGxldHp0ZXJJZHggPSAoWi5hZG1pbi5ncnVwcGVuIHx8IFtdKS5sZW5ndGgg
LSAxOwogICAgKFouYWRtaW4uZ3J1cHBlbiB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihnciwgaWR4
KSB7CiAgICAgICAgdmFyIGFuemFobCA9IHphZWhsW2dyLm5hbWVdIHx8IDA7CiAgICAgICAgdmFy
IGhnID0gZ3IuaGludGVyZ3J1bmQgfHwgJyM4ODgnOwogICAgICAgIHZhciBzZiA9IGdyLnNjaHJp
ZnQgfHwgJyNmZmZmZmYnOwogICAgICAgIC8vIEJhY2t3YXJkcy1Db21wYXQ6IGZlaGxlbmRlcyBp
blBsYW51bmctRmVsZCA9IHNpY2h0YmFyIChBbHRkYXRlbgogICAgICAgIC8vIGhhYmVuIGRhcyBG
ZWxkIG5pY2h0OyBudXIgZXhwbGl6aXQgZmFsc2UgYmxlbmRldCBhdXMpLgogICAgICAgIHZhciBp
blBsYW51bmcgPSBnci5pblBsYW51bmcgIT09IGZhbHNlOwogICAgICAgIC8vIEJhY2t3YXJkcy1D
b21wYXQgZnVlciBkYXJmQW5zcHJlY2hwYXJ0bmVyOiBmZWhsZW5kZXMgRmVsZCA9IGVybGF1YnQu
CiAgICAgICAgLy8gU3VwZXJVc2VyIGthbm4gcHJvIEdydXBwZSBzcGVycmVuIOKAlCBkYW5uIGZh
bGxlbiBQZXJzb25lbiBkZXIgR3J1cHBlCiAgICAgICAgLy8gYXVzIGRlbSBBbnNwcmVjaHBhcnRu
ZXItUG9vbCwgYmVzdGVoZW5kZSBNYXJraWVydW5nZW4gc2luZCB1bndpcmtzYW0uCiAgICAgICAg
dmFyIGRhcmZBcCA9IGdyLmRhcmZBbnNwcmVjaHBhcnRuZXIgIT09IGZhbHNlOwogICAgICAgIGh0
bWwgKz0gJzx0ciBkYXRhLWlkeD0iJyArIGlkeCArICciJyArIChpblBsYW51bmcgPyAnJyA6ICcg
Y2xhc3M9ImdydXBwZS16ZWlsZS12ZXJzdGVja3QiJykgKyAnPicgKwogICAgICAgICAgICAnPHRk
PjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZ3J1cHBlLWt1ZXJ6ZWwtaW5wdXQiIGRhdGEtaWR4
PSInICsgaWR4ICsgJyIgZGF0YS1hbHQ9IicgKyBlc2NhcGVBdHRyKGdyLm5hbWUpICsgJyIgdmFs
dWU9IicgKyBlc2NhcGVBdHRyKGdyLm5hbWUpICsgJyIgc3R5bGU9IndpZHRoOjEwMCU7Zm9udC1m
YW1pbHk6bW9ub3NwYWNlO2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LWFsaWduOmNlbnRlciIgbWF4bGVu
Z3RoPSI0IiB0aXRsZT0iS8O8cnplbCDDpG5kZXJuIOKAlCBhbGxlIFBlcnNvbmVuIGRpZXNlciBH
cnVwcGUgd2VyZGVuIGF1dG9tYXRpc2NoIG1pZ3JpZXJ0Ij48L3RkPicgKwogICAgICAgICAgICAn
PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZ3J1cHBlLWJlei1pbnB1dCIgZGF0YS1pZHg9
IicgKyBpZHggKyAnIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoZ3IuYmV6ZWljaG51bmcgfHwgJycp
ICsgJyIgc3R5bGU9IndpZHRoOjEwMCUiIHBsYWNlaG9sZGVyPSJ6LkIuIFdhY2hsZWl0dW5nIj48
L3RkPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJjb2xvciIgY2xhc3M9ImdydXBw
ZS1oZy1pbnB1dCIgZGF0YS1pZHg9IicgKyBpZHggKyAnIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIo
aGcpICsgJyIgc3R5bGU9IndpZHRoOjUwcHg7aGVpZ2h0OjI4cHg7cGFkZGluZzoycHg7Y3Vyc29y
OnBvaW50ZXIiPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+PGlucHV0IHR5cGU9ImNvbG9yIiBj
bGFzcz0iZ3J1cHBlLXNmLWlucHV0IiBkYXRhLWlkeD0iJyArIGlkeCArICciIHZhbHVlPSInICsg
ZXNjYXBlQXR0cihzZikgKyAnIiBzdHlsZT0id2lkdGg6NTBweDtoZWlnaHQ6MjhweDtwYWRkaW5n
OjJweDtjdXJzb3I6cG9pbnRlciI+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBzdHlsZT0idGV4
dC1hbGlnbjpjZW50ZXIiPicgKwogICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJncnVwcGVu
LWJhZGdlIGdydXBwZS12b3JzY2hhdSIgZGF0YS1pZHg9IicgKyBpZHggKyAnIiBzdHlsZT0iYmFj
a2dyb3VuZDonICsgZXNjYXBlQXR0cihoZykgKyAnO2NvbG9yOicgKyBlc2NhcGVBdHRyKHNmKSAr
ICciPicgKyBlc2NhcGVIVE1MKGdyLm5hbWUpICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAgJzwv
dGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6
ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpIiB0aXRsZT0iQW56YWhsIGFrdGl2ZSBQZXJz
b25lbiBpbiBkaWVzZXIgR3J1cHBlIj4nICsgYW56YWhsICsgJzwvdGQ+JyArCiAgICAgICAgICAg
ICc8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj4nICsKICAgICAgICAgICAgICAgICc8bGFi
ZWwgY2xhc3M9ImdydXBwZS1pbnBsYW51bmctbGFiZWwiIHRpdGxlPSJXZW5uIGF1c2dlc2NoYWx0
ZXQsIHdlcmRlbiBQZXJzb25lbiBkaWVzZXIgR3J1cHBlIG5pY2h0IGluIGRlciBQbGFudW5nc2Fu
c2ljaHQgLyBpbSBXb2NoZW5wbGFuIC8gaW0gUGVycy4gUGxhbiBhbmdlemVpZ3Qg4oCUIGJsZWli
ZW4gYWJlciBpbiBkZXIgUGVyc29uYWx2ZXJ3YWx0dW5nIHBmbGVnYmFyLiI+JyArCiAgICAgICAg
ICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImdydXBwZS1pbnBsYW51
bmctaW5wdXQiIGRhdGEtaWR4PSInICsgaWR4ICsgJyInICsgKGluUGxhbnVuZyA/ICcgY2hlY2tl
ZCcgOiAnJykgKyAnPicgKwogICAgICAgICAgICAgICAgJzwvbGFiZWw+JyArCiAgICAgICAgICAg
ICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+JyAr
CiAgICAgICAgICAgICAgICAnPGxhYmVsIGNsYXNzPSJncnVwcGUtaW5wbGFudW5nLWxhYmVsIiB0
aXRsZT0iV2VubiBha3RpdmllcnQsIGTDvHJmZW4gUGVyc29uZW4gZGllc2VyIEdydXBwZSBpbSBQ
ZXJzb25hbC1UYWIgYWxzIEFuc3ByZWNocGFydG5lciBtYXJraWVydCB3ZXJkZW4gKHp1c8OkdHps
aWNoIHp1ciBGdW5rdGlvbnMtQmVkaW5ndW5nKS4gTWFya2llcnRlIFBlcnNvbmVuIGVyc2NoZWlu
ZW4gbWl0IE1haWwtQnV0dG9uIGltIEluZm8tRmVuc3Rlci4iPicgKwogICAgICAgICAgICAgICAg
ICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJncnVwcGUtZGFyZmFwLWlucHV0IiBk
YXRhLWlkeD0iJyArIGlkeCArICciJyArIChkYXJmQXAgPyAnIGNoZWNrZWQnIDogJycpICsgJz4n
ICsKICAgICAgICAgICAgICAgICc8L2xhYmVsPicgKwogICAgICAgICAgICAnPC90ZD4nICsKICAg
ICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFw
Ij4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xl
aW4iIGRhdGEtYWt0aW9uPSJncnVwcGUtcmF1ZiIgZGF0YS1pZHg9IicgKyBpZHggKyAnIiB0aXRs
ZT0iTmFjaCBvYmVuIHZlcnNjaGllYmVuIicgKyAoaWR4ID09PSAwID8gJyBkaXNhYmxlZCcgOiAn
JykgKyAnPiYjOTY1MDs8L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICcgJyArCiAgICAgICAg
ICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBkYXRhLWFrdGlv
bj0iZ3J1cHBlLXJ1bnRlciIgZGF0YS1pZHg9IicgKyBpZHggKyAnIiB0aXRsZT0iTmFjaCB1bnRl
biB2ZXJzY2hpZWJlbiInICsgKGlkeCA9PT0gbGV0enRlcklkeCA/ICcgZGlzYWJsZWQnIDogJycp
ICsgJz4mIzk2NjA7PC9idXR0b24+JyArCiAgICAgICAgICAgICc8L3RkPicgKwogICAgICAgICAg
ICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+JyArCiAgICAgICAgICAgICAgICAnPGJ1
dHRvbiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIgYnRuLWtsZWluIGJ0bi1sb2VzY2hlbiIgZGF0YS1h
a3Rpb249ImdydXBwZS1sb2VzY2hlbiIgZGF0YS1pZHg9IicgKyBpZHggKyAnIiB0aXRsZT0iR3J1
cHBlIGzDtnNjaGVuIChudXIgd2VubiBrZWluZSBQZXJzb25lbiBtZWhyIHp1Z2VvcmRuZXQpIicg
KyAoYW56YWhsID4gMCA/ICcgZGlzYWJsZWQnIDogJycpICsgJz5Mw7ZzY2hlbjwvYnV0dG9uPicg
KwogICAgICAgICAgICAnPC90ZD4nICsKICAgICAgICAnPC90cj4nOwogICAgfSk7CiAgICB0Ym9k
eS5pbm5lckhUTUwgPSBodG1sOwoKICAgIC8vIExpdmUtVm9yc2NoYXU6IEZhcmJlbi9Lw7xyemVs
LcOEbmRlcnVuZ2VuIHNvZm9ydCBpbSBCYWRnZSBzcGllZ2VsbgogICAgZnVuY3Rpb24gdm9yc2No
YXVVcGRhdGUoaWR4KSB7CiAgICAgICAgdmFyIHJvdyA9IHRib2R5LnF1ZXJ5U2VsZWN0b3IoJ3Ry
W2RhdGEtaWR4PSInICsgaWR4ICsgJyJdJyk7CiAgICAgICAgaWYgKCFyb3cpIHJldHVybjsKICAg
ICAgICB2YXIgayA9IHJvdy5xdWVyeVNlbGVjdG9yKCcuZ3J1cHBlLWt1ZXJ6ZWwtaW5wdXQnKS52
YWx1ZSB8fCAnJzsKICAgICAgICB2YXIgaCA9IHJvdy5xdWVyeVNlbGVjdG9yKCcuZ3J1cHBlLWhn
LWlucHV0JykudmFsdWU7CiAgICAgICAgdmFyIHMgPSByb3cucXVlcnlTZWxlY3RvcignLmdydXBw
ZS1zZi1pbnB1dCcpLnZhbHVlOwogICAgICAgIHZhciB2ID0gcm93LnF1ZXJ5U2VsZWN0b3IoJy5n
cnVwcGUtdm9yc2NoYXUnKTsKICAgICAgICBpZiAodikgeyB2LnN0eWxlLmJhY2tncm91bmQgPSBo
OyB2LnN0eWxlLmNvbG9yID0gczsgdi50ZXh0Q29udGVudCA9IGs7IH0KICAgIH0KICAgIHRib2R5
LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ncnVwcGUta3VlcnplbC1pbnB1dCwgLmdydXBwZS1oZy1pbnB1
dCwgLmdydXBwZS1zZi1pbnB1dCcpLmZvckVhY2goZnVuY3Rpb24oaW5wKSB7CiAgICAgICAgaW5w
LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZvcnNj
aGF1VXBkYXRlKGlucC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4JykpOwogICAgICAgIH0pOwogICAg
fSk7Cn0KCi8vID09PT09IEFkbWluOiBHbG9iYWxlIEVpbnN0ZWxsdW5nZW4gPT09PT0KCi8vID09
PT09IEFkbWluOiBJbmZvcm1hdGlvbiAmIEhpbGZlID09PT09CgovLyBEZWZhdWx0LUltcHJlc3N1
bSAoSFRNTCkuIFdpcmQgaW0gUlRFLUVkaXRvciBhbmdlemVpZ3QsIHdlbm4KLy8gYWRtaW4uanNv
bi5pbXByZXNzdW0gbGVlciBpc3Qg4oCUIGRlciBVc2VyIGthbm4gZnJlaSB1ZWJlcnNjaHJlaWJl
bgovLyB1bmQgbWl0ICJTcGVpY2hlcm4iIHBlcnNpc3RpZXJlbi4gVGV4dGUgc2luZCBiZXd1c3N0
IG5ldXRyYWwKLy8gZm9ybXVsaWVydCB1bmQgYXVmIGRpZSBWSTMtREdMLVJlYWxpdGFldCB6dWdl
c2Nobml0dGVuLgovLyA9PT09PSBTdXBwb3J0LU1haWwtVm9ybGFnZSAoU2VrdGlvbiBpbSBFLU1h
aWwtVm9ybGFnZW4tVGFiKSA9PT09PQovLwovLyBOdXIgZnVlciBQaGlsaXBwIFJvZXNnZW4gc2lj
aHRiYXIgKE5XLUtlbm51bmcgZW50aGFlbHQgTlcwNTM2MDkpLgovLyBFZGl0aWVydCB3aXJkIGRh
cyByYXcgUGxhaW4tVGV4dC1UZW1wbGF0ZSBpbmtsLiBQbGF0emhhbHRlcm47IGFwcC5qcwovLyBz
dXBwb3J0TWFpbEJvZHlCYXVlbigpIG1hY2h0IGRpZSBTdWJzdGl0dXRpb24gYmVpbSBCYXVlbiBk
ZXIgbWFpbHRvLVVSTC4KCmZ1bmN0aW9uIGlzdFBoaWxpcHBSb2VzZ2VuKCkgewogICAgdmFyIGIg
PSAoWi5iZW51dHplciB8fCAnJykudG9Mb3dlckNhc2UoKTsKICAgIHJldHVybiBiLmluZGV4T2Yo
J253MDUzNjA5JykgPj0gMDsKfQoKZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRNYWlsU2VrdGlvblJl
bmRlcm4oKSB7CiAgICB2YXIgc2VrID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluLXNl
a3Rpb24tc3VwcG9ydG1haWwnKTsKICAgIGlmICghc2VrKSByZXR1cm47CiAgICBpZiAoIWlzdFBo
aWxpcHBSb2VzZ2VuKCkpIHsKICAgICAgICBzZWsuY2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7
CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgc2VrLmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNr
dCcpOwogICAgdmFyIHRhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1cHBvcnRtYWlsLXRl
eHQnKTsKICAgIGlmICh0YSkgdGEudmFsdWUgPSAoWi5hZG1pbiAmJiBaLmFkbWluLnN1cHBvcnRN
YWlsVGV4dCkgfHwgJyc7CiAgICB2YXIgaGlud2VpcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzdXBwb3J0bWFpbC1kaXJ0eS1oaW53ZWlzJyk7CiAgICBpZiAoaGlud2VpcykgaGlud2Vpcy5z
dHlsZS5kaXNwbGF5ID0gJ25vbmUnOwp9CgovLyBEZWZhdWx0LVZvcmxhZ2UgZnVlciBkaWUgU3Vw
cG9ydC1NYWlsIGltIEltcHJlc3N1bXMtTW9kYWwuIFBsYXR6aGFsdGVyCi8vIGluIHtnZXNjaHdl
aWZ0ZW4ga2xhbW1lcm59IHdlcmRlbiB2b20gQ2xpZW50IGJlaW0gbWFpbHRvOi1CYXUgZHVyY2gK
Ly8gTGl2ZS1XZXJ0ZSBlcnNldHp0IOKAlCBzaWVoZSBhcHAuanMgc3VwcG9ydE1haWxCb2R5QmF1
ZW4uIEVkaXRpZXJiYXIgbnVyCi8vIGZ1ZXIgUGhpbGlwcCBSb2VzZ2VuIChOVzA1MzYwOSkgaW0g
QWRtaW4tVGFiIEUtTWFpbC1Wb3JsYWdlbi4KLy8KLy8gVmVyZnVlZ2JhcmUgUGxhdHpoYWx0ZXI6
Ci8vICAge253X2tlbm51bmd9ICAgICAgICDigJQgWi5iZW51dHplciAoei5CLiBQT0xJWkVJXE5X
MDU1ODAxKQovLyAgIHtha3R1ZWxsZV9hbnNpY2h0fSAg4oCUIGFrdGl2ZXIgVGFiIChwbGFudW5n
L3dvY2hlbnBsYW4vcGVyc3BsYW4vLi4uKQovLyAgIHtkYXR1bX0gICAgICAgICAgICAg4oCUIGhl
dXRlLCBGb3JtYXQgZGQubW0uampqagovLyAgIHt1aHJ6ZWl0fSAgICAgICAgICAg4oCUIGpldHp0
LCBGb3JtYXQgaGg6bW0KLy8gICB7YXVmbG9lc3VuZ30gICAgICAgIOKAlCBWaWV3cG9ydCwgei5C
LiAxOTIweDEwODAKLy8gICB7YXBwX2phaHJ9ICAgICAgICAgIOKAlCBaLmFkbWluLmphaHIKLy8g
ICB7YnJvd3Nlcn0gICAgICAgICAgIOKAlCBuYXZpZ2F0b3IudXNlckFnZW50IChtYXggMTIwIFpl
aWNoZW4pCmV4cG9ydCB2YXIgU1VQUE9SVF9NQUlMX0RFRkFVTFQgPQogICAgJ0hhbGxvIFBoaWxp
cHAsXG5cbicgKwogICAgJ1toaWVyIGJpdHRlIGt1cnogZGFzIEFubGllZ2VuIGluIDHigJMyIFPD
pHR6ZW4gYmVzY2hyZWliZW5dXG5cblxuJyArCiAgICAn4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4nICsK
ICAgICcxKSBXQVMgSVNUIFBBU1NJRVJUIC8gV0FTIFfDnE5TQ0hTVCBEVSBESVI/XG4nICsKICAg
ICfilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIBcbicgKwogICAgJ1tEZXRhaWxsaWVydGUgQmVzY2hyZWlidW5n
OiBCdWctQmVyaWNodCBPREVSIFZlcmJlc3NlcnVuZ3MtXG4nICsKICAgICcgdm9yc2NobGFnLiBC
aXR0ZSBrb25rcmV0IOKAlCAiZ2VodCBuaWNodCIgaXN0IHp1IHdlbmlnLl1cblxuXG4nICsKICAg
ICfilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi
lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi
lZDilZDilZDilZDilZDilZDilZBcbicgKwogICAgJzIpIFdPIElNIFBST0dSQU1NXG4nICsKICAg
ICfilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIBcbicgKwogICAgJ1RhYiAvIEFuc2ljaHQ6IFtQbGFudW5nIHwg
V29jaGVucGxhbiB8IFBlcnMuIFBsYW4gfCBQcsO8ZnVuZyB8XG4nICsKICAgICcgICAgICAgICAg
ICAgICAgU3RhdGlzdGlrIHwgTG9nYnVjaCB8IEFkbWluaXN0cmF0aW9uXVxuJyArCiAgICAnR2Vu
YXVlcmUgU3RlbGxlOiBbei4gQi4gQWRtaW5pc3RyYXRpb24g4oaSIFBlcnNvbmFsdmVyd2FsdHVu
ZyDihpJcbicgKwogICAgJyAgICAgICAgICAgICAgICAgIFBlcnNvbiBiZWFyYmVpdGVuIOKGkiBH
ZWJ1cnRzdGFnLU1vZGFsXVxuXG5cbicgKwogICAgJ+KVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuJyArCiAg
ICAnMykgV0lFIEtBTk4gSUNIIERBUyBSRVBST0RVWklFUkVOP1xuJyArCiAgICAn4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSAXG4nICsKICAgICdTY2hyaXR0IDE6IFsuLi5dXG4nICsKICAgICdTY2hyaXR0IDI6
IFsuLi5dXG4nICsKICAgICdTY2hyaXR0IDM6IFsuLi5dXG4nICsKICAgICfihpIgV2FzIHBhc3Np
ZXJ0IHRhdHPDpGNobGljaDogWy4uLl1cbicgKwogICAgJ+KGkiBXYXMgaMOkdHRlIHN0YXR0ZGVz
c2VuIHBhc3NpZXJlbiBzb2xsZW46IFsuLi5dXG5cblxuJyArCiAgICAn4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQXG4nICsKICAgICc0KSBXRVIgLyBXQVMgSVNUIEJFVFJPRkZFTlxuJyArCiAgICAn4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSAXG4nICsKICAgICdCZXRyb2ZmZW5lIFBlcnNvbiAvIERhdGVuc2F0eiAoZmFs
bHMgcmVsZXZhbnQpOiBbLi4uXVxuJyArCiAgICAnVHJpdHQgZXMgbnVyIGJlaSBtaXIgYXVmIOKA
lCBvZGVyIGF1Y2ggYmVpIEtvbGxlZzppbm5lbj8gWy4uLl1cbicgKwogICAgJ1JlcHJvZHV6aWVy
YmFyIG5hY2ggQnJvd3Nlci1SZWZyZXNoIC8gTmV1c3RhcnQ/IFsuLi5dXG5cblxuJyArCiAgICAn
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4nICsKICAgICc1KSBXSUUgRFJJTkdFTkQgSVNUIERBUz9cbicg
KwogICAgJ+KUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuJyArCiAgICAnWyBdIEJsb2NraWVydCBtZWluZSBB
cmJlaXQga29tcGxldHRcbicgKwogICAgJ1sgXSBTdMO2cnQsIGljaCBoYWJlIGFiZXIgZWluZW4g
V29ya2Fyb3VuZFxuJyArCiAgICAnWyBdIFZlcmJlc3NlcnVuZ3N2b3JzY2hsYWcg4oCUIGtlaW4g
YWt1dGVyIEJlZGFyZlxuXG5cbicgKwogICAgJ+KVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuJyArCiAgICAn
NikgU0NSRUVOU0hPVFMgLyBBTkjDhE5HRSDigJQgQklUVEUgQkVJTEVHRU4hXG4nICsKICAgICfi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIBcbicgKwogICAgJ01pbmRlc3RlbnMgMSBTY3JlZW5zaG90IGRlciBy
ZWxldmFudGVuIFN0ZWxsZS4gU28gZ2VodHM6XG4nICsKICAgICcgIOKAoiBTdHJnICsgRHJ1Y2sg
ICAgIOKGkiBnYW56ZXIgQmlsZHNjaGlybSBpbiBkaWUgWndpc2NoZW5hYmxhZ2VcbicgKwogICAg
JyAg4oCiIEFsdCArIERydWNrICAgICAg4oaSIG51ciBkYXMgYWt0aXZlIEZlbnN0ZXJcbicgKwog
ICAgJyAg4oCiIFBhaW50IMO2ZmZuZW4gICAgIOKGkiBTdHJnICsgViBlaW5mw7xnZW4g4oaSIFNw
ZWljaGVybiBhbHMgUE5HXG4nICsKICAgICcgIOKAoiBEYXRlaShlbikgYW4gZGllc2UgTWFpbCBh
bmjDpG5nZW5cbicgKwogICAgJ0JpdHRlIGRlbiBHQU5aRU4gQnJvd3Nlci1UYWIgZWluZmFuZ2Vu
IChuaWNodCBudXIgZGFzIE1vZGFsKSxcbicgKwogICAgJ2RhbWl0IGRlciBLb250ZXh0IChUYWIs
IERhdHVtLCBhbmRlcmUgSGlud2Vpc2UpIHNpY2h0YmFyIGlzdC5cblxuXG4nICsKICAgICdWaWVs
ZSBHcsO8w59lXG4nICsKICAgICdbVm9yLSB1bmQgTmFjaG5hbWUsIERpZW5zdGdyYWRdXG4nICsK
ICAgICdbRGllbnN0c3RlbGxlIC8gSGF1c2R1cmNod2FobF1cblxuXG4nICsKICAgICfilZDilZDi
lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi
lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi
lZDilZDilZDilZBcbicgKwogICAgJ1RFQ0hOSVNDSEUgSU5GTyDigJQgYml0dGUgdW52ZXLDpG5k
ZXJ0IGxhc3NlbiAodm9tIFN5c3RlbSBlcmfDpG56dClcbicgKwogICAgJ+KUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgFxuJyArCiAgICAnTlctS2VubnVuZzogICAgICAge253X2tlbm51bmd9XG4nICsKICAgICdB
a3R1ZWxsZSBBbnNpY2h0OiB7YWt0dWVsbGVfYW5zaWNodH1cbicgKwogICAgJ0RhdHVtIC8gVWhy
emVpdDogIHtkYXR1bX0ge3VocnplaXR9XG4nICsKICAgICdBdWZsw7ZzdW5nOiAgICAgICAge2F1
ZmxvZXN1bmd9XG4nICsKICAgICdBcHAtSmFocjogICAgICAgICB7YXBwX2phaHJ9XG4nICsKICAg
ICdCcm93c2VyOiAgICAgICAgICB7YnJvd3Nlcn1cbicgKwogICAgJ+KVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kFxuJzsKCi8vIFZvcnN0cnVrdHVyaWVydGUgVm9ybGFnZSBmdWVyIGRlbiBIZWFkZXItQnV0dG9u
IOKAnkJ1Z1JlcG9ydCIg4oCUIHdpZSBkaWUKLy8gU3VwcG9ydC1Wb3JsYWdlLCBhYmVyIHp1Z2Vz
cGl0enQgYXVmIGVya2FubnRlIEJVR1MgLyBGZWhsZnVua3Rpb25lbiAoa2VpbmUKLy8gVmVyYmVz
c2VydW5nc3ZvcnNjaGxhZWdlKS4gR2xlaWNoZSBQbGF0emhhbHRlciB3aWUgU1VQUE9SVF9NQUlM
X0RFRkFVTFQ7Ci8vIGFwcC5qcyBidWdSZXBvcnRNYWlsQm9keUJhdWVuKCkgZXJzZXR6dCBzaWUg
YmVpbSBtYWlsdG86LUJhdS4KZXhwb3J0IHZhciBCVUdSRVBPUlRfTUFJTF9ERUZBVUxUID0KICAg
ICdIYWxsbyBQaGlsaXBwLFxuXG4nICsKICAgICdpY2ggbWVsZGUgZWluZW4gQnVnIC8gZWluIFBy
b2JsZW0gaW4gZGVyIFZJMyBER0wtUGxhbnVuZy5cblxuXG4nICsKICAgICfilZDilZDilZDilZDi
lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi
lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi
lZDilZBcbicgKwogICAgJzEpIFdBUyBHRUhUIE5JQ0hUPyAoa3VyeiBpbiAx4oCTMiBTw6R0emVu
KVxuJyArCiAgICAn4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4nICsKICAgICdbV2FzIGZ1bmt0aW9uaWVy
dCBuaWNodCB3aWUgZXJ3YXJ0ZXQ/IEJpdHRlIGtvbmtyZXQg4oCUXG4nICsKICAgICcgImdlaHQg
bmljaHQiIGlzdCB6dSB3ZW5pZy5dXG5cblxuJyArCiAgICAn4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4n
ICsKICAgICcyKSBXTyBJTSBQUk9HUkFNTSBUUklUVCBERVIgRkVITEVSIEFVRj9cbicgKwogICAg
J+KUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgFxuJyArCiAgICAnVGFiIC8gQW5zaWNodDogW1BsYW51bmcgfCBX
b2NoZW5wbGFuIHwgUGVycy4gUGxhbiB8IFByw7xmdW5nIHxcbicgKwogICAgJyAgICAgICAgICAg
ICAgICBTdGF0aXN0aWsgfCBMb2didWNoIHwgQWRtaW5pc3RyYXRpb25dXG4nICsKICAgICdHZW5h
dWVyZSBTdGVsbGU6IFt6LiBCLiBBZG1pbmlzdHJhdGlvbiDihpIgUGVyc29uYWx2ZXJ3YWx0dW5n
IOKGklxuJyArCiAgICAnICAgICAgICAgICAgICAgICAgUGVyc29uIGJlYXJiZWl0ZW4g4oaSIEdl
YnVydHN0YWctTW9kYWxdXG5cblxuJyArCiAgICAn4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ
4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4nICsKICAg
ICczKSBTQ0hSSVRURSBaVU0gUkVQUk9EVVpJRVJFTlxuJyArCiAgICAn4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSAXG4nICsKICAgICdTY2hyaXR0IDE6IFsuLi5dXG4nICsKICAgICdTY2hyaXR0IDI6IFsuLi5d
XG4nICsKICAgICdTY2hyaXR0IDM6IFsuLi5dXG4nICsKICAgICfihpIgV2FzIHBhc3NpZXJ0IHRh
dHPDpGNobGljaCAoZGVyIEZlaGxlcik6IFsuLi5dXG4nICsKICAgICfihpIgV2FzIGjDpHR0ZSBz
dGF0dGRlc3NlbiBwYXNzaWVyZW4gc29sbGVuOiBbLi4uXVxuJyArCiAgICAn4oaSIEthbSBlaW5l
IEZlaGxlcm1lbGR1bmc/IFdlbm4gamEsIFdvcnRsYXV0OiBbLi4uXVxuXG5cbicgKwogICAgJ+KV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkFxuJyArCiAgICAnNCkgV0VSIC8gV0FTIElTVCBCRVRST0ZGRU5cbicg
KwogICAgJ+KUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuJyArCiAgICAnQmV0cm9mZmVuZSBQZXJzb24gLyBE
YXRlbnNhdHogKGZhbGxzIHJlbGV2YW50KTogWy4uLl1cbicgKwogICAgJ1RyaXR0IGVzIG51ciBi
ZWkgbWlyIGF1ZiDigJQgb2RlciBhdWNoIGJlaSBLb2xsZWc6aW5uZW4/IFsuLi5dXG4nICsKICAg
ICdSZXByb2R1emllcmJhciBuYWNoIEJyb3dzZXItUmVmcmVzaCAvIE5ldXN0YXJ0PyBbLi4uXVxu
XG5cbicgKwogICAgJ+KVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuJyArCiAgICAnNSkgV0lFIFNUQVJLIEJM
T0NLSUVSVCBERVIgQlVHP1xuJyArCiAgICAn4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4nICsKICAgICdb
IF0gQmxvY2tpZXJ0IG1laW5lIEFyYmVpdCBrb21wbGV0dFxuJyArCiAgICAnWyBdIFN0w7ZydCwg
aWNoIGhhYmUgYWJlciBlaW5lbiBXb3JrYXJvdW5kXG4nICsKICAgICdbIF0gS2xlaW5lciBTY2jD
tm5oZWl0c2ZlaGxlclxuXG5cbicgKwogICAgJ+KVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuJyArCiAgICAn
NikgU0NSRUVOU0hPVFMg4oCUIEJJVFRFIFVOQkVESU5HVCBCRUlMRUdFTiFcbicgKwogICAgJ+KU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgFxuJyArCiAgICAnTWluZGVzdGVucyAxIFNjcmVlbnNob3QgZGVyIEZl
aGxlcnN0ZWxsZS4gU28gZ2VodHM6XG4nICsKICAgICcgIOKAoiBTdHJnICsgRHJ1Y2sgICAgIOKG
kiBnYW56ZXIgQmlsZHNjaGlybSBpbiBkaWUgWndpc2NoZW5hYmxhZ2VcbicgKwogICAgJyAg4oCi
IEFsdCArIERydWNrICAgICAg4oaSIG51ciBkYXMgYWt0aXZlIEZlbnN0ZXJcbicgKwogICAgJyAg
4oCiIFBhaW50IMO2ZmZuZW4gICAgIOKGkiBTdHJnICsgViBlaW5mw7xnZW4g4oaSIFNwZWljaGVy
biBhbHMgUE5HXG4nICsKICAgICcgIOKAoiBEYXRlaShlbikgYW4gZGllc2UgTWFpbCBhbmjDpG5n
ZW5cbicgKwogICAgJ0JpdHRlIGRlbiBHQU5aRU4gQnJvd3Nlci1UYWIgZWluZmFuZ2VuIChuaWNo
dCBudXIgZGFzIE1vZGFsKSxcbicgKwogICAgJ2RhbWl0IGRlciBLb250ZXh0IChUYWIsIERhdHVt
LCBhbmRlcmUgSGlud2Vpc2UpIHNpY2h0YmFyIGlzdC5cblxuXG4nICsKICAgICdWaWVsZSBHcsO8
w59lXG4nICsKICAgICdbVm9yLSB1bmQgTmFjaG5hbWUsIERpZW5zdGdyYWRdXG4nICsKICAgICdb
RGllbnN0c3RlbGxlIC8gSGF1c2R1cmNod2FobF1cblxuXG4nICsKICAgICfilZDilZDilZDilZDi
lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi
lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi
lZDilZBcbicgKwogICAgJ1RFQ0hOSVNDSEUgSU5GTyDigJQgYml0dGUgdW52ZXLDpG5kZXJ0IGxh
c3NlbiAodm9tIFN5c3RlbSBlcmfDpG56dClcbicgKwogICAgJ+KUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxu
JyArCiAgICAnTlctS2VubnVuZzogICAgICAge253X2tlbm51bmd9XG4nICsKICAgICdBa3R1ZWxs
ZSBBbnNpY2h0OiB7YWt0dWVsbGVfYW5zaWNodH1cbicgKwogICAgJ0RhdHVtIC8gVWhyemVpdDog
IHtkYXR1bX0ge3VocnplaXR9XG4nICsKICAgICdBdWZsw7ZzdW5nOiAgICAgICAge2F1ZmxvZXN1
bmd9XG4nICsKICAgICdBcHAtSmFocjogICAgICAgICB7YXBwX2phaHJ9XG4nICsKICAgICdCcm93
c2VyOiAgICAgICAgICB7YnJvd3Nlcn1cbicgKwogICAgJ+KVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV
kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuJzsK
CmV4cG9ydCB2YXIgSU1QUkVTU1VNX0RFRkFVTFQgPQogICAgJzxoND5IZXJhdXNnZWJlciAvIFZl
cmFudHdvcnRsaWNoIGbDvHIgZGVuIEluaGFsdDwvaDQ+JyArCiAgICAnPHA+UG9saXplaXByw6Rz
aWRpdW0gRG9ydG11bmQ8YnI+JyArCiAgICAnVmVya2VocnNpbnNwZWt0aW9uIDMgKFZJIDMpPGJy
PicgKwogICAgJzxlbT5bQW5zY2hyaWZ0IGJpdHRlIGVyZ8Okbnplbl08L2VtPjwvcD4nICsKICAg
ICc8aDQ+VGVjaG5pc2NoZSBLb256ZXB0aW9uICZhbXA7IEVudHdpY2tsdW5nPC9oND4nICsKICAg
ICc8cD5QaGlsaXBwIFJvZXNnZW4sIFBISzxicj4nICsKICAgICdFLU1haWw6IHBoaWxpcHAucm9l
c2dlbkBwb2xpemVpLm5ydy5kZTwvcD4nICsKICAgICc8aDQ+QmV0cmllYiAmYW1wOyBEYXRlbmhh
bHR1bmc8L2g0PicgKwogICAgJzxwPkRpZXNlIEFud2VuZHVuZyBsw6R1ZnQgYXVzc2NobGllw59s
aWNoIGltIGludGVybmVuIFBvbGl6ZWktTmV0endlcmsuICcgKwogICAgJ0RpZSBEYXRlbiB3ZXJk
ZW4gbG9rYWwgaW4gSlNPTi1EYXRlaWVuIGdlaGFsdGVuIHVuZCDDvGJlciBkYXMgUG9saXplaS1O
ZXR6bGF1ZndlcmsgJyArCiAgICAnc3luY2hyb25pc2llcnQuIEtlaW5lIENsb3VkLURpZW5zdGUs
IGtlaW5lIGV4dGVybmVuIFRyYWNrZXIsIGtlaW5lIFRlbGVtZXRyaWUuPC9wPicgKwogICAgJzxo
ND5MaXplbnpoaW53ZWlzZSBleHRlcm5lciBLb21wb25lbnRlbjwvaDQ+JyArCiAgICAnPHVsPicg
KwogICAgJzxsaT5TaGVldEpTIENvbW11bml0eSBFZGl0aW9uIOKAlCBBcGFjaGUtMi4wLUxpemVu
eiwgbG9rYWwgZWluZ2VidW5kZW4gKHhsc3guZnVsbC5taW4uanMpPC9saT4nICsKICAgICc8L3Vs
PicgKwogICAgJzxoND5IYWZ0dW5nc2F1c3NjaGx1c3M8L2g0PicgKwogICAgJzxwPkRpZSBpbiBk
aWVzZXIgQW53ZW5kdW5nIGRhcmdlc3RlbGx0ZW4gRGllbnN0cGzDpG5lIHVuZCBQZXJzb25hbGRh
dGVuICcgKwogICAgJ2RpZW5lbiBkZXIgaW50ZXJuZW4gQXJiZWl0c29yZ2FuaXNhdGlvbi4gRsO8
ciBWb2xsc3TDpG5kaWdrZWl0IHVuZCBBa3R1YWxpdMOkdCAnICsKICAgICd3aXJkIGtlaW5lIEdl
d8OkaHIgw7xiZXJub21tZW4uIFZlcmJpbmRsaWNoIGlzdCBhbGxlaW4gZGVyIG9mZml6aWVsbGUg
RGllbnN0cGxhbi48L3A+JzsKCi8vIEhlbHBlcjogd2FuZGVsdCBlaW5lbiBXZXJ0IGF1cyBhZG1p
bi5qc29uIChTdHJpbmcgLSBlbnR3ZWRlciBwbGFpbiBvZGVyCi8vIEhUTUwpIGluIEhUTUwgdW0s
IGRhcyBkaXJla3QgaW4gZGFzIEluZm8tRmVuc3RlciBvZGVyIGVpbmVuIFJURS1FZGl0b3IKLy8g
ZWluZ2VzZXR6dCB3ZXJkZW4ga2Fubi4gUGxhaW4gU3RyaW5ncyB3ZXJkZW4gZXNjYXBlZCB1bmQg
XG4gLT4gPGJyPjsKLy8gYmVyZWl0cy1IVE1MIHdpcmQgZHVyY2ggc2FuaXRpemVSaWNoSHRtbCBn
ZWZpbHRlcnQuCmZ1bmN0aW9uIGh0bWxBdXNGZWxkKHMpIHsKICAgIHMgPSBzIHx8ICcnOwogICAg
aWYgKCFzKSByZXR1cm4gJyc7CiAgICBpZiAoLzxcLz8oYnxzdHJvbmd8aXxlbXx1fHVsfG9sfGxp
fHB8YnJ8ZGl2fHNwYW58YXxoM3xoNClcYi9pLnRlc3QocykpIHsKICAgICAgICByZXR1cm4gc2Fu
aXRpemVSaWNoSHRtbChzKTsKICAgIH0KICAgIHJldHVybiBlc2NhcGVIVE1MKHMpLnJlcGxhY2Uo
L1xyP1xuL2csICc8YnI+Jyk7Cn0KCmZ1bmN0aW9uIGluZm9IaWxmZVJlbmRlcm4oKSB7CiAgICB2
YXIgaW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpaC1pbmZvdGV4dCcpOwogICAgaWYg
KCFpbmZvKSByZXR1cm47CiAgICBpbmZvLmlubmVySFRNTCA9IGh0bWxBdXNGZWxkKFouYWRtaW4u
aW5mb3RleHQpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2loLXN1cHBvcnQnKS5pbm5l
ckhUTUwgICAgID0gaHRtbEF1c0ZlbGQoWi5hZG1pbi5zdXBwb3J0aW5mbyk7CiAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaWgtaGlsZmUnKS5pbm5lckhUTUwgICAgICAgID0gaHRtbEF1c0Zl
bGQoWi5hZG1pbi5oaWxmZXRleHQpOwogICAgLy8gQmVkaWVudW5nc3RleHRlOiB3ZW5uIGxlZXIg
LT4gRGVmYXVsdCB6ZWlnZW4gKGFscyBVTCBnZXJlbmRlcnQsIGRhbWl0CiAgICAvLyBkZXIgVXNl
ciBzb2ZvcnQgc2llaHQgd2llIGVzIGF1c3NlaGVuIHNvbGwpCiAgICB2YXIgYmVkID0gWi5hZG1p
bi5iZWRpZW51bmdzdGV4dGU7CiAgICBpZiAoIWJlZCB8fCAhU3RyaW5nKGJlZCkudHJpbSgpKSB7
CiAgICAgICAgLy8gRGVmYXVsdCBhbHMgPHVsPjxsaT4uLi48L2xpPjwvdWw+IGVpbmZ1ZWdlbiwg
ZGFtaXQgZGVyIFJURSBnbGVpY2gKICAgICAgICAvLyBBdWZ6YWVobHVuZ3MtRm9ybWF0IHplaWd0
LgogICAgICAgIHZhciB1bCA9ICc8dWw+JyArIChhZG1pbkhvb2tzLmJlZGllbnVuZ1plaWxlblJl
bmRlcm4gPyBhZG1pbkhvb2tzLmJlZGllbnVuZ1plaWxlblJlbmRlcm4oQkVESUVOVU5HX0RFRkFV
TFQpIDogJycpICsgJzwvdWw+JzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWgt
YmVkaWVudW5nJykuaW5uZXJIVE1MID0gdWw7CiAgICB9IGVsc2UgewogICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdpaC1iZWRpZW51bmcnKS5pbm5lckhUTUwgPSBodG1sQXVzRmVsZChi
ZWQpOwogICAgfQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2loLXNjaGxpZXNzaW5mbycp
LnZhbHVlID0gWi5hZG1pbi5zY2hsaWVzc2luZm8gfHwgJyc7CiAgICAvLyBJbXByZXNzdW06IGxl
ZXIgLT4gRGVmYXVsdC1IVE1MIHplaWdlbiAoVXNlciBrYW5uIGZyZWkgdWViZXJzY2hyZWliZW4p
CiAgICB2YXIgaW1wRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWgtaW1wcmVzc3VtJyk7
CiAgICBpZiAoaW1wRWwpIHsKICAgICAgICB2YXIgaW1wV2VydCA9IFouYWRtaW4uaW1wcmVzc3Vt
OwogICAgICAgIGltcEVsLmlubmVySFRNTCA9IChpbXBXZXJ0ICYmIFN0cmluZyhpbXBXZXJ0KS50
cmltKCkpCiAgICAgICAgICAgID8gaHRtbEF1c0ZlbGQoaW1wV2VydCkKICAgICAgICAgICAgOiBz
YW5pdGl6ZVJpY2hIdG1sKElNUFJFU1NVTV9ERUZBVUxUKTsKICAgIH0KCiAgICAvLyBSVEUtVG9v
bGJhcnMgdmVyZHJhaHRlbiDigJQgZWlubWFsIHBybyBFZGl0b3IgcmVpY2h0LiBXaXIgbWFya2ll
cmVuCiAgICAvLyBtaXQgZGF0YS1ydGUtaW5pdCwgZGFtaXQgcnRlSW5pdCgpIG5pY2h0IGRvcHBl
bHQgaGFlbmd0LgogICAgWydpaC1pbmZvdGV4dCcsJ2loLXN1cHBvcnQnLCdpaC1oaWxmZScsJ2lo
LWJlZGllbnVuZycsJ2loLWltcHJlc3N1bSddLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKICAgICAg
ICB2YXIgZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CiAgICAgICAgaWYgKGVkICYm
ICFlZC5nZXRBdHRyaWJ1dGUoJ2RhdGEtcnRlLWluaXQnKSkgewogICAgICAgICAgICBydGVJbml0
KGVkKTsKICAgICAgICAgICAgZWQuc2V0QXR0cmlidXRlKCdkYXRhLXJ0ZS1pbml0JywgJzEnKTsK
ICAgICAgICB9CiAgICB9KTsKfQoKZnVuY3Rpb24gaW5mb0hpbGZlQXVzRmVsZGVybkxlc2VuKCkg
ewogICAgdmFyIGltcEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2loLWltcHJlc3N1bScp
OwogICAgcmV0dXJuIHsKICAgICAgICBpbmZvdGV4dDogICAgICAgIHNhbml0aXplUmljaEh0bWwo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2loLWluZm90ZXh0JykuaW5uZXJIVE1MKSwKICAgICAg
ICBzdXBwb3J0aW5mbzogICAgIHNhbml0aXplUmljaEh0bWwoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2loLXN1cHBvcnQnKS5pbm5lckhUTUwpLAogICAgICAgIGhpbGZldGV4dDogICAgICAgc2Fu
aXRpemVSaWNoSHRtbChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWgtaGlsZmUnKS5pbm5lckhU
TUwpLAogICAgICAgIGJlZGllbnVuZ3N0ZXh0ZTogc2FuaXRpemVSaWNoSHRtbChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaWgtYmVkaWVudW5nJykuaW5uZXJIVE1MKSwKICAgICAgICBzY2hsaWVz
c2luZm86ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpaC1zY2hsaWVzc2luZm8nKS52YWx1
ZSwKICAgICAgICBpbXByZXNzdW06ICAgICAgIGltcEVsID8gc2FuaXRpemVSaWNoSHRtbChpbXBF
bC5pbm5lckhUTUwpIDogJycKICAgIH07Cn0KCi8vID09PT09IEFkbWluOiBCZXplaWNobnVuZ2Vu
IChlZGl0aWVyYmFyZSBVSS1MYWJlbHMpID09PT09CgovLyBEZWZhdWx0LVdlcnRlIGZ1ZXIgYWxs
ZSBlZGl0aWVyYmFyZW4gTGFiZWxzLiBkYXRhLWJlei1BdHRyaWJ1dGUgaW0gSFRNTAovLyB2ZXJ3
ZWlzZW4gbWl0IGlocmVtIFdlcnQgYXVmIGRpZXNlIEtleXM7IGJlemVpY2hudW5nZW5BbndlbmRl
bigpIHNldHp0Ci8vIGJlaW0gTG9naW4gZGVuIFRleHQuIExlZXJlIE92ZXJyaWRlcyBpbiBhZG1p
bi5qc29uLmJlemVpY2hudW5nZW4gZmFsbGVuCi8vIGF1ZiBkZW4gRGVmYXVsdCB6dXJ1ZWNrLgp2
YXIgQkVaRUlDSE5VTkdFTl9ERUZBVUxUID0gewogICAgJ2FwcC50aXRlbCc6ICAgICAgICdWSTMg
REdMLVBsYW51bmcnLAogICAgJ25hdi5wbGFudW5nJzogICAgICdQbGFudW5nJywKICAgICduYXYu
d29jaGVucGxhbic6ICAnV29jaGVucGxhbicsCiAgICAnbmF2LnBlcnNwbGFuJzogICAgJ1BlcnMu
IFBsYW4nLAogICAgJ25hdi5iZXNldHp1bmcnOiAgICdQcsO8ZnVuZycsCiAgICAnbmF2LmFkbWlu
JzogICAgICAgJ0FkbWluaXN0cmF0aW9uJywKICAgICduYXYuc3RhdGlzdGlrJzogICAnU3RhdGlz
dGlrJywKICAgICduYXYubG9nYnVjaCc6ICAgICAnTG9nYnVjaCcKfTsKCmZ1bmN0aW9uIGJleihr
ZXkpIHsKICAgIHZhciBiID0gKFouYWRtaW4gJiYgWi5hZG1pbi5iZXplaWNobnVuZ2VuKSB8fCB7
fTsKICAgIGlmIChrZXkgaW4gYiAmJiBiW2tleV0pIHJldHVybiBiW2tleV07CiAgICByZXR1cm4g
QkVaRUlDSE5VTkdFTl9ERUZBVUxUW2tleV0gfHwga2V5Owp9CgovLyBTZXR6dCBhbGxlIGRhdGEt
YmV6LUVsZW1lbnRlIGltIERPTSBhdWYgZGVuIHBhc3NlbmRlbiBUZXh0LiBFaW5tYWwgbmFjaAov
LyBMb2dpbiBhdWZydWZlbiB1bmQgYmVpIGplZGVyIEFlbmRlcnVuZyB2b24gYWRtaW4uYmV6ZWlj
aG51bmdlbi4KZnVuY3Rpb24gYmV6ZWljaG51bmdlbkFud2VuZGVuKCkgewogICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtYmV6XScpLmZvckVhY2goZnVuY3Rpb24oZWwpIHsKICAg
ICAgICB2YXIgayA9IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1iZXonKTsKICAgICAgICBpZiAoaykg
ZWwudGV4dENvbnRlbnQgPSBiZXooayk7CiAgICB9KTsKICAgIC8vIEF1Y2ggZGVyIEhUTUwtPHRp
dGxlPiBzcGllZ2VsdCBkZW4gQXBwLVRpdGVsCiAgICB0cnkgeyBkb2N1bWVudC50aXRsZSA9IGJl
eignYXBwLnRpdGVsJyk7IH0gY2F0Y2ggKF8pIHt9Cn0KCmZ1bmN0aW9uIGJlemVpY2hudW5nZW5S
ZW5kZXJuKCkgewogICAgdmFyIHRib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JlemVp
Y2hudW5nZW4tdGJvZHknKTsKICAgIGlmICghdGJvZHkpIHJldHVybjsKICAgIHZhciBvdmVycmlk
ZXMgPSAoWi5hZG1pbiAmJiBaLmFkbWluLmJlemVpY2hudW5nZW4pIHx8IHt9OwogICAgdmFyIGh0
bWwgPSAnJzsKICAgIE9iamVjdC5rZXlzKEJFWkVJQ0hOVU5HRU5fREVGQVVMVCkuZm9yRWFjaChm
dW5jdGlvbihrZXkpIHsKICAgICAgICB2YXIgZGVmID0gQkVaRUlDSE5VTkdFTl9ERUZBVUxUW2tl
eV07CiAgICAgICAgdmFyIGN1ciA9IG92ZXJyaWRlc1trZXldIHx8ICcnOwogICAgICAgIGh0bWwg
Kz0gJzx0cj4nICsKICAgICAgICAgICAgJzx0ZD48Y29kZSBzdHlsZT0iZm9udC1zaXplOjExcHgi
PicgKyBlc2NhcGVIVE1MKGtleSkgKyAnPC9jb2RlPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQg
c3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZToxMnB4Ij4nICsgZXNjYXBl
SFRNTChkZWYpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+PGlucHV0IHR5cGU9InRleHQi
IGNsYXNzPSJiZXotaW5wdXQiIGRhdGEta2V5PSInICsgZXNjYXBlQXR0cihrZXkpICsgJyIgdmFs
dWU9IicgKyBlc2NhcGVBdHRyKGN1cikgKyAnIiBwbGFjZWhvbGRlcj0iJyArIGVzY2FwZUF0dHIo
ZGVmKSArICciIHN0eWxlPSJ3aWR0aDoxMDAlIj48L3RkPicgKwogICAgICAgICAgICAnPC90cj4n
OwogICAgfSk7CiAgICB0Ym9keS5pbm5lckhUTUwgPSBodG1sOwp9CgpmdW5jdGlvbiBiZXplaWNo
bnVuZ2VuQXVzVGFiZWxsZUxlc2VuKCkgewogICAgdmFyIG1hcCA9IHt9OwogICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgnLmJlei1pbnB1dCcpLmZvckVhY2goZnVuY3Rpb24oaW5wKSB7CiAg
ICAgICAgdmFyIGsgPSBpbnAuZ2V0QXR0cmlidXRlKCdkYXRhLWtleScpOwogICAgICAgIHZhciB2
ID0gaW5wLnZhbHVlLnRyaW0oKTsKICAgICAgICBpZiAoayAmJiB2KSBtYXBba10gPSB2OwogICAg
fSk7CiAgICByZXR1cm4gbWFwOwp9CgovLyA9PT09PSBBZG1pbjogRS1NYWlsLVZvcmxhZ2VuIChm
dWVyIEJlc2V0enVuZ3Nrb250cm9sbGUpID09PT09Ci8vIEVNQUlMX1ZPUkxBR0VOX0RFRkFVTFQs
IEVNQUlMX1ZBUklBQkxFTl9CRVNDSFJFSUJVTkcsIEVNUEZBRU5HRVJfT1BUSU9ORU4sCi8vIEVN
QUlMX1ZPUkxBR0VOX01FVEEsIGVtYWlsVm9ybGFnZW5Ib2xlbiwgZW1haWxWb3JsYWdlblJlbmRl
cm4sCi8vIGVtYWlsVm9ybGFnZUJlYXJiZWl0ZW5Nb2RhbCwgaHRtbFp1UGxhaW5UZXh0LCBlbWFp
bFZvcmxhZ2VCZWZ1ZWxsZW4sCi8vIGVtYWlsRW1wZmFlbmdlclJlc29sdmUsIG1haWxUcmlnZ2Vy
RmV1ZXJuLCByb2xsZURpZmZUcmlnZ2VybgovLyAgIC0+IGpzL2VtYWlsL2VtYWlsLXZvcmxhZ2Vu
LmpzCgpmdW5jdGlvbiBlaW5zdGVsbHVuZ2VuUmVuZGVybigpIHsKICAgIHZhciBlbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdlaW5zLWphaHInKTsKICAgIGlmICghZWwpIHJldHVybjsKICAg
IGVsLnZhbHVlID0gWi5hZG1pbi5qYWhyIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTsKICAg
IHZhciBwYXBpZXJrb3JiRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWlucy1wYXBpZXJr
b3JiLXRhZ2UnKTsKICAgIGlmIChwYXBpZXJrb3JiRWwpIHBhcGllcmtvcmJFbC52YWx1ZSA9IFou
YWRtaW4ucGFwaWVya29yYlRhZ2VBdWZiZXdhaHJ1bmcgIT0gbnVsbCA/IFouYWRtaW4ucGFwaWVy
a29yYlRhZ2VBdWZiZXdhaHJ1bmcgOiAzMDsKICAgIHZhciBlbWFpbERvbWFpbkVsID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2VpbnMtZW1haWwtZG9tYWluJyk7CiAgICBpZiAoZW1haWxEb21h
aW5FbCkgZW1haWxEb21haW5FbC52YWx1ZSA9IFouYWRtaW4uZW1haWxBdXRvRG9tYWluIHx8ICdA
cG9saXplaS5ucncuZGUnOwogICAgdmFyIGF2YXRhckdyb2Vzc2VFbCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdlaW5zLWF2YXRhci1ncm9lc3NlJyk7CiAgICBpZiAoYXZhdGFyR3JvZXNzZUVs
KSBhdmF0YXJHcm9lc3NlRWwudmFsdWUgPSBaLmFkbWluLmF2YXRhckdyb2Vzc2UgfHwgMjAwOwog
ICAgdmFyIGVkaXRvclRyaWdnZXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlaW5zLWVk
aXRvci10cmlnZ2VyJyk7CiAgICBpZiAoZWRpdG9yVHJpZ2dlckVsKSB7CiAgICAgICAgdmFyIHQg
PSBaLmFkbWluLmVkaXRvclRyaWdnZXI7CiAgICAgICAgZWRpdG9yVHJpZ2dlckVsLnZhbHVlID0g
KFsncmVjaHRzJywgJ2xpbmtzJywgJ21pdHRlJywgJ2RvcHBlbCddLmluZGV4T2YodCkgPj0gMCkg
PyB0IDogJ3JlY2h0cyc7CiAgICB9Cn0KCi8vID09PT09IEFkbWluOiBTdGFuZG9ydGUgJiBTY2hp
Y2h0Zm9sZ2UgPT09PT0KCmZ1bmN0aW9uIHN0YW5kb3J0ZVJlbmRlcm4oKSB7CiAgICB2YXIgdGJv
ZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhbmRvcnRlLXRib2R5Jyk7CiAgICBpZiAo
IXRib2R5KSByZXR1cm47CiAgICBpZiAoIShaLmFkbWluLnN0YW5kb3J0ZSB8fCBbXSkubGVuZ3Ro
KSB7CiAgICAgICAgdGJvZHkuaW5uZXJIVE1MID0gYWRtaW5FbXB0eVplaWxlKDUsICdcdXsxRjNF
Mn0nLAogICAgICAgICAgICAnTm9jaCBrZWluZSBTdGFuZG9ydGUgYW5nZWxlZ3QnLAogICAgICAg
ICAgICAnU3RhbmRvcnRlIHNpbmQgZGllIEFyYmVpdHNvcnRlIGRlciBWSTMgKHouQi4gQXJuc2Jl
cmcsIEJvY2h1bSkuIEplZGVyIFN0YW5kb3J0IGJyYXVjaHQgZWluZSBTY2hpY2h0Zm9sZ2UgZnVl
ciBBL0IvQyDigJQgbGVnIGRlbiBlcnN0ZW4gb2JlbiBtaXQg4oCeTmV1ZXIgU3RhbmRvcnQiIGFu
LicpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciBoZXV0ZSA9IG5ldyBEYXRlKFouaGV1
dGVTdHIgKyAnVDAwOjAwOjAwJyk7CiAgICB2YXIgaHRtbCA9ICcnOwogICAgKFouYWRtaW4uc3Rh
bmRvcnRlIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHNvLCBpZHgpIHsKICAgICAgICB2YXIgdm9y
c2NoYXUgPSAnJzsKICAgICAgICBpZiAoc28uaXN0UG9vbCkgewogICAgICAgICAgICB2b3JzY2hh
dSA9ICc8c3BhbiBjbGFzcz0ic2Ytdm9yc2NoYXUgc2Ytdm9yc2NoYXUtcG9vbCI+UG9vbCAoZmxl
eGliZWwpPC9zcGFuPic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxNDsgaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKGhldXRl
LmdldFRpbWUoKSArIGkgKiA4NjQwMDAwMCk7CiAgICAgICAgICAgICAgICB2YXIga2V5ID0gZGF0
dW1TdHIoZCk7CiAgICAgICAgICAgICAgICB2YXIgd2VydCA9IChzby5zY2hpY2h0Zm9sZ2UgfHwg
e30pW2tleV0gfHwgJ+KAkyc7CiAgICAgICAgICAgICAgICB2YXIgY2xzID0gd2VydCA9PT0gJ0FC
QycgPyAnc2YtYWJjJyA6IHdlcnQgPT09ICdCQ0EnID8gJ3NmLWJjYScgOiB3ZXJ0ID09PSAnQ0FC
JyA/ICdzZi1jYWInIDogJyc7CiAgICAgICAgICAgICAgICB2b3JzY2hhdSArPSAnPHNwYW4gY2xh
c3M9InNmLXZvcnNjaGF1ICcgKyBjbHMgKyAnIiB0aXRsZT0iJyArIGtleSArICciPicgKyBlc2Nh
cGVIVE1MKHdlcnQpICsgJzwvc3Bhbj4nOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAg
IGh0bWwgKz0gJzx0cj4nICsKICAgICAgICAgICAgJzx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFs
dWU9IicgKyBlc2NhcGVBdHRyKHNvLm5hbWUgfHwgJycpICsgJyIgZGF0YS1pZHg9IicgKyBpZHgg
KyAnIiBkYXRhLWZlbGQ9Im5hbWUiIGNsYXNzPSJzdGFuZG9ydC1pbnB1dCI+PC90ZD4nICsKICAg
ICAgICAgICAgJzx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKHNv
Lmt1ZXJ6ZWwgfHwgJycpICsgJyIgZGF0YS1pZHg9IicgKyBpZHggKyAnIiBkYXRhLWZlbGQ9Imt1
ZXJ6ZWwiIGNsYXNzPSJzdGFuZG9ydC1pbnB1dCIgbWF4bGVuZ3RoPSI0IiBzdHlsZT0id2lkdGg6
NTBweCI+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIi
PjxpbnB1dCB0eXBlPSJjaGVja2JveCIgJyArIChzby5pc3RQb29sID8gJ2NoZWNrZWQnIDogJycp
ICsgJyBkYXRhLWlkeD0iJyArIGlkeCArICciIGRhdGEtZmVsZD0iaXN0UG9vbCIgY2xhc3M9InN0
YW5kb3J0LWlucHV0Ij48L3RkPicgKwogICAgICAgICAgICAnPHRkPicgKyB2b3JzY2hhdSArICc8
L3RkPicgKwogICAgICAgICAgICAnPHRkPicgKwogICAgICAgICAgICAgICAgJzxkaXYgc3R5bGU9
ImRpc3BsYXk6ZmxleDtnYXA6NnB4O2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dy
YXAiPicgKwogICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlayBi
dG4ta2xlaW4gYnRuLWljb24gYnRuLXJoeXRobXVzIiBkYXRhLWFrdGlvbj0ic3RhbmRvcnQtcmh5
dGhtdXMiIGRhdGEtaWR4PSInICsgaWR4ICsgJyIgdGl0bGU9IlJoeXRobXVzIGVyemV1Z2VuIj5S
aHl0aG11czwvYnV0dG9uPicgKwogICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJi
dG4gYnRuLWdlZmFociBidG4ta2xlaW4gYnRuLWxvZXNjaGVuIiBkYXRhLWFrdGlvbj0ic3RhbmRv
cnQtbG9lc2NoZW4iIGRhdGEtaWR4PSInICsgaWR4ICsgJyIgdGl0bGU9IlN0YW5kb3J0IGzDtnNj
aGVuIj5Mw7ZzY2hlbjwvYnV0dG9uPicgKwogICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAg
ICAgICAgICAnPC90ZD4nICsKICAgICAgICAnPC90cj4nOwogICAgfSk7CiAgICB0Ym9keS5pbm5l
ckhUTUwgPSBodG1sOwp9CgpmdW5jdGlvbiBzdGFuZG9ydGVBdXNUYWJlbGxlTGVzZW4oKSB7CiAg
ICB2YXIgYWx0ZSA9IFouYWRtaW4uc3RhbmRvcnRlIHx8IFtdOwogICAgdmFyIGZlbGRlciA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdGFuZG9ydC1pbnB1dCcpOwogICAgdmFyIG5ldSA9
IGFsdGUubWFwKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHMpOyB9KTsK
ICAgIGZlbGRlci5mb3JFYWNoKGZ1bmN0aW9uKGYpIHsKICAgICAgICB2YXIgaWR4ID0gcGFyc2VJ
bnQoZi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4JykpOwogICAgICAgIHZhciBmZWxkID0gZi5nZXRB
dHRyaWJ1dGUoJ2RhdGEtZmVsZCcpOwogICAgICAgIGlmICghbmV1W2lkeF0pIHJldHVybjsKICAg
ICAgICBpZiAoZmVsZCA9PT0gJ2lzdFBvb2wnKSBuZXVbaWR4XS5pc3RQb29sID0gZi5jaGVja2Vk
OwogICAgICAgIGVsc2UgbmV1W2lkeF1bZmVsZF0gPSBmLnZhbHVlOwogICAgfSk7CiAgICBuZXUu
Zm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAgaWYgKHMuaXN0UG9vbCkgZGVsZXRlIHMuc2No
aWNodGZvbGdlOwogICAgfSk7CiAgICByZXR1cm4gbmV1LmZpbHRlcihmdW5jdGlvbihzKSB7IHJl
dHVybiBzLm5hbWU7IH0pOwp9CgpmdW5jdGlvbiByaHl0aG11c0dlbmVyYXRvckRpYWxvZyhpZHgp
IHsKICAgIHZhciBzbyA9IChaLmFkbWluLnN0YW5kb3J0ZSB8fCBbXSlbaWR4XTsKICAgIGlmICgh
c28pIHJldHVybjsKICAgIHZhciBqYWhyID0gWi5hZG1pbi5qYWhyIHx8IG5ldyBEYXRlKCkuZ2V0
RnVsbFllYXIoKTsKICAgIHZhciBrb2VycGVyID0gJzxwIHN0eWxlPSJtYXJnaW4tdG9wOjAiPkVy
emV1Z2UgZWluZW4gd2llZGVya2VocmVuZGVuIFJoeXRobXVzIGbDvHIgPHN0cm9uZz4nICsgZXNj
YXBlSFRNTChzby5uYW1lKSArICc8L3N0cm9uZz4uIERlciBSaHl0aG11cyB3aXJkIGFiIFN0YXJ0
ZGF0dW0gamV3ZWlscyBmw7xyIGRpZSBhbmdlZ2ViZW5lIEJsb2NrbMOkbmdlIGFuZ2V3ZW5kZXQg
dW5kIHp5a2xpc2NoIHdpZWRlcmhvbHQgYmlzIEphaHJlc2VuZGUuPC9wPicgKwogICAgICAgICc8
ZGl2IHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2Fw
OjAgMTZweCI+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+U3Rh
cnRkYXR1bSAod28gWnlrbHVzIGJlZ2lubnQpPC9sYWJlbD48aW5wdXQgdHlwZT0iZGF0ZSIgaWQ9
InJoLXN0YXJ0IiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiIHZhbHVlPSIn
ICsgamFociArICctMDEtMDEiPjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdy
dXBwZSI+PGxhYmVsPkJsb2NrbMOkbmdlIGluIFRhZ2VuPC9sYWJlbD48aW5wdXQgdHlwZT0ibnVt
YmVyIiBpZD0icmgtYmxvY2siIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSIg
dmFsdWU9IjciIG1pbj0iMSIgbWF4PSIzMSI+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9
ImZvcm0tZ3J1cHBlIiBzdHlsZT0iZ3JpZC1jb2x1bW46c3BhbiAyIj48bGFiZWw+UmVpaGVuZm9s
Z2UgKGtvbW1hZ2V0cmVubnQsIHouQi4gQUJDLEJDQSxDQUIpPC9sYWJlbD48aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9InJoLWZvbGdlIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUi
IHZhbHVlPSJBQkMsQkNBLENBQiI+PC9kaXY+JyArCiAgICAgICAgJzwvZGl2Pic7CgogICAgbW9k
YWxaZWlnZW4oJ1NjaGljaHRmb2xnZS1SaHl0aG11cyBmw7xyICcgKyBzby5uYW1lLCBrb2VycGVy
LAogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIGlkPSJyaC1hbndlbmRl
biI+QW53ZW5kZW48L2J1dHRvbj4nLAogICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2
YXIgc3RhcnQgPSBuZXcgRGF0ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmgtc3RhcnQnKS52
YWx1ZSArICdUMDA6MDA6MDAnKTsKICAgICAgICAgICAgdmFyIGJsb2NrID0gcGFyc2VJbnQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JoLWJsb2NrJykudmFsdWUsIDEwKSB8fCA3OwogICAgICAg
ICAgICB2YXIgZm9sZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmgtZm9sZ2UnKS52YWx1
ZS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gcy50cmltKCkudG9VcHBlckNhc2Uo
KTt9KS5maWx0ZXIoQm9vbGVhbik7CiAgICAgICAgICAgIGlmICghZm9sZ2UubGVuZ3RoIHx8IGlz
TmFOKHN0YXJ0LmdldFRpbWUoKSkpIHsgdG9hc3QoJ1VuZ8O8bHRpZ2UgRWluZ2FiZScsICd3YXJu
dW5nJyk7IHJldHVybjsgfQoKICAgICAgICAgICAgdmFyIHNjaGljaHRmb2xnZSA9IHt9OwogICAg
ICAgICAgICB2YXIgamFoclN0YXJ0ID0gbmV3IERhdGUoamFociArICctMDEtMDFUMDA6MDA6MDAn
KTsKICAgICAgICAgICAgdmFyIGphaHJFbmRlID0gbmV3IERhdGUoamFociArICctMTItMzFUMDA6
MDA6MDAnKTsKICAgICAgICAgICAgdmFyIHRhZyA9IG5ldyBEYXRlKGphaHJTdGFydCk7CiAgICAg
ICAgICAgIHdoaWxlICh0YWcgPD0gamFockVuZGUpIHsKICAgICAgICAgICAgICAgIHZhciBkaWZm
VGFnZSA9IE1hdGguZmxvb3IoKHRhZyAtIHN0YXJ0KSAvIDg2NDAwMDAwKTsKICAgICAgICAgICAg
ICAgIGlmIChkaWZmVGFnZSA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHp5a2x1c0lk
eCA9IE1hdGguZmxvb3IoZGlmZlRhZ2UgLyBibG9jaykgJSBmb2xnZS5sZW5ndGg7CiAgICAgICAg
ICAgICAgICAgICAgc2NoaWNodGZvbGdlW2RhdHVtU3RyKHRhZyldID0gZm9sZ2VbenlrbHVzSWR4
XTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRhZy5zZXREYXRlKHRhZy5nZXRE
YXRlKCkgKyAxKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBzby5zY2hpY2h0Zm9sZ2UgPSBz
Y2hpY2h0Zm9sZ2U7CiAgICAgICAgICAgIHNvLmlzdFBvb2wgPSBmYWxzZTsKICAgICAgICAgICAg
bW9kYWxTY2hsaWVzc2VuKCk7CiAgICAgICAgICAgIHN0YW5kb3J0ZVJlbmRlcm4oKTsKICAgICAg
ICAgICAgdG9hc3QoJ1JoeXRobXVzIGbDvHIgJyArIHNvLm5hbWUgKyAnIGVyemV1Z3Qg4oCUIOKA
nlNwZWljaGVybiIgbmljaHQgdmVyZ2Vzc2VuJywgJ2VyZm9sZycpOwogICAgICAgIH0KICAgICk7
Cn0KCi8vID09PT09IEFkbWluOiBQZXJzb25hbC1UYWJlbGxlLCBOZXVpbXBvcnQsIEJ1bGssIElu
bGluZS1FZGl0cywgRS1NYWlsID09PT09Ci8vIFBoYXNlIDktQiBDNDoga29tcGxldHRlciBQZXJz
b25hbC1CbG9jayAofjEzMjcgWi4pIG5hY2gKLy8gVkkzL2pzL2FkbWluX3BlcnNvbmFsLmpzIGF1
c2dlbGFnZXJ0LiBLb25zdW1lbnRlbiAoYXBwLmpzKQovLyBpbXBvcnRpZXJlbiBhYiBQaGFzZSA5
LUIgQzUgZGlyZWt0IGF1cyBhZG1pbl9wZXJzb25hbC5qcy4KCi8vID09PT09IEFkbWluOiBGZWll
cnRhZ2UgKyBGZXJpZW4gKyBTb25kZXJ0ZXJtaW5lID09PT09Ci8vIFBoYXNlIDktQiBDMzogbmFj
aCBWSTMvanMvYWRtaW5fa2FsZW5kZXIuanMgYXVzZ2VsYWdlcnQKLy8gKGZlaWVydGFnZSosIGZl
cmllbiosIHNvbmRlcnRlcm1pbmUqLCBzb25kZXIqLUhlbGZlcikuCi8vIHdvY2hlbnBsYW4uanMg
KyBhcHAuanMgaW1wb3J0aWVyZW4gYWIgUGhhc2UgOS1CIEM1IGRpcmVrdCBhdXMKLy8gYWRtaW5f
a2FsZW5kZXIuanMuCgovLyBydGVJbml0LCBydGVCdXR0b25TdGF0ZXMgLT4ganMvdWkvcnRlLmpz
CgovLyA9PT09PSBBZG1pbjogU2NoaWNodGNvZGUtVm9yc2NoYXUgKyBFZGl0ICsgVG9nZ2xlID09
PT09Ci8vIFBoYXNlIDktQiBDMjogbmFjaCBWSTMvanMvYWRtaW5fY29kZXMuanMgYXVzZ2VsYWdl
cnQKLy8gKGlzdENvZGVBa3RpdiwgY29kZVZlcndlbmR1bmdaYWVobGVuLCBzY2hpY2h0Y29kZUth
dGVnb3JpZSwKLy8gc2NoaWNodGNvZGVWb3JzY2hhdVJlbmRlcm4sIHNjaGljaHRjb2RlRHJhZ1Zl
cmRyYWh0ZW4sCi8vIHNjaGljaHRjb2RlVG9nZ2xlQWt0aXYsIHNjaGljaHRjb2RlTGlzdGVTcGVp
Y2hlcm4sCi8vIHNjaGljaHRjb2RlRWRpdE1vZGFsWmVpZ2VuKS4gaW1wb3J0X2V4Y2VsLmpzICsg
YXBwLmpzCi8vIGltcG9ydGllcmVuIGFiIFBoYXNlIDktQiBDNSBkaXJla3QgYXVzIGFkbWluX2Nv
ZGVzLmpzLgoKLy8gQ29sbGFwc2libGUgSW5mby1CbG9ja3M6IFp1c3RhbmQgaW4gbG9jYWxTdG9y
YWdlCmZ1bmN0aW9uIGFkbWluSW5mb0luaXQoKSB7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCdkZXRhaWxzLmFkbWluLWluZm9bZGF0YS1pbmZvLWtleV0nKS5mb3JFYWNoKGZ1bmN0aW9u
KGRldCkgewogICAgICAgIHZhciBrZXkgPSAnYWRtaW4taW5mby0nICsgZGV0LmdldEF0dHJpYnV0
ZSgnZGF0YS1pbmZvLWtleScpOwogICAgICAgIHZhciBzYXZlZCA9IGxvY2FsU3RvcmFnZS5nZXRJ
dGVtKGtleSk7CiAgICAgICAgaWYgKHNhdmVkID09PSAnenUnKSBkZXQucmVtb3ZlQXR0cmlidXRl
KCdvcGVuJyk7CiAgICAgICAgZWxzZSBpZiAoc2F2ZWQgPT09ICdhdWYnKSBkZXQuc2V0QXR0cmli
dXRlKCdvcGVuJywgJycpOwogICAgICAgIGRldC5hZGRFdmVudExpc3RlbmVyKCd0b2dnbGUnLCBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBkZXQub3Bl
biA/ICdhdWYnIDogJ3p1Jyk7CiAgICAgICAgfSk7CiAgICB9KTsKfQoKLy8gPT09PT0gQWRtaW46
IEZlYXR1cmUtVG9nZ2xlcyA9PT09PQoKLy8gZmVhdHVyZUxhYmVscyB3aXJkIGF1Y2ggYXVzIGFw
cC5qcyBnZWxlc2VuIChUb2FzdC1NZWxkdW5nIGJlaW0gVG9nZ2xlLQovLyBLbGljayksIGRlc2hh
bGIgZXhwbGl6aXQgZXhwb3J0aWVydC4gTmljaHQgaW4gZGVyIFBhc3MtVGhyb3VnaC0KLy8gUmUt
RXhwb3J0LUxpc3RlLCB3ZWlsIGRpZSBEZWZpbml0aW9uIGhpZXIgaW4gYWRtaW4uanMgc2l0enQu
CmV4cG9ydCB2YXIgZmVhdHVyZUxhYmVscyA9IHsKICAgIHNjaGljaHRmb2xnZW46IHsgbGFiZWw6
ICdTY2hpY2h0Zm9sZ2VuLUFuemVpZ2UnLCBiZXNjaHJlaWJ1bmc6ICdaZWlndCBkaWUgU2NoaWNo
dHJvdGF0aW9uIHBybyBTdGFuZG9ydCBpbSBIZWFkZXIgYW4nIH0sCiAgICBzdGFlcmtlQW56ZWln
ZTogeyBsYWJlbDogJ1N0w6Rya2UtQW56ZWlnZScsIGJlc2NocmVpYnVuZzogJ0Z8U3xOIEJlc2V0
enVuZ3N6w6RobGVyIHBybyBUYWcgaW0gUGxhbnVuZ3MtSGVhZGVyJyB9LAogICAgcnVoZXplaXRQ
cnVlZnVuZzogeyBsYWJlbDogJ1J1aGV6ZWl0LVByw7xmdW5nJywgYmVzY2hyZWlidW5nOiAnV2Fy
bnVuZyBiZWkgPCAxMWggUnVoZXplaXQgendpc2NoZW4gU2NoaWNodGVuJyB9LAogICAgZnJlbWRB
ZW5kZXJ1bmdXYXJudW5nOiB7IGxhYmVsOiAnRnJlbWQtw4RuZGVydW5nIFdhcm51bmcnLCBiZXNj
aHJlaWJ1bmc6ICdCZXN0w6R0aWd1bmcgYmVpbSDDhG5kZXJuIGRlciBTY2hpY2h0IGFuZGVyZXIg
UGVyc29uZW4nIH0sCiAgICB1bnRlcmJlc2V0enVuZ1dhcm51bmc6IHsgbGFiZWw6ICdVbnRlcmJl
c2V0enVuZ3MtV2FybnVuZyAoV2FjaGxlaXR1bmcpJywgYmVzY2hyZWlidW5nOiAnQmVpbSBMb2dp
biBmw7xyIEdydXBwZSBMIChXYWNobGVpdHVuZykgdW5kIFN1cGVyVXNlcjogVG9hc3QgbWl0IEFu
emFobCBUYWdlIG1pdCBGw7xocnVuZ3MtVW50ZXJiZXNldHp1bmcgaW4gZGVuIG7DpGNoc3RlbiA0
IFdvY2hlbiArIFNwcnVuZyB6dW0gZXJzdGVuIFRhZycgfSwKICAgIGZhaXJuZXNzQW56ZWlnZTog
eyBsYWJlbDogJ0ZhaXJuZXNzLUFuemVpZ2UnLCBiZXNjaHJlaWJ1bmc6ICdXRS0vRmVpZXJ0YWdz
LUZhaXJuZXNzIGluIGRlciBTdGF0aXN0aWsnIH0sCiAgICAvLyBtdXN0ZXJBbmFseXNlICsgYWJ3
ZXNlbmhlaXRLYWNoZWxuIGFtIDIwMjYtMDUtMTkgZW50ZmVybnQg4oCUIGRpZSB6dWdlaG9lcmln
ZW4KICAgIC8vIFBhbmVscyBnaWJ0IGVzIGltIGFrdHVlbGxlbiBTdGF0aXN0aWstTGF5b3V0IG5p
Y2h0IG1laHIgKE11c3RlciBpc3QgaW4gZGllCiAgICAvLyBQcm9zYS1EZXRhaWxhbmFseXNlIGF1
ZmdlZ2FuZ2VuLCBBYndlc2VuaGVpdCBpc3QgZWluIEthdGVnb3JpZS1GaWx0ZXIgaW4KICAgIC8v
IGRlbiBTY2hpY2h0dmVydGVpbHVuZ3MtQmFsa2VuKS4gZmVhdHVyZUlzdEFrdGl2KCkgd3VyZGUg
ZGFmdWVyIG9obmVoaW4KICAgIC8vIG5pZSBhdWZnZXJ1ZmVuLCBkZXIgVG9nZ2xlIHdhciBEZWFk
LUxldHRlci1VSS4KICAgIGRldGFpbFRhYmVsbGU6IHsgbGFiZWw6ICdEZXRhaWwtVGFiZWxsZScs
IGJlc2NocmVpYnVuZzogJ0F1c2tsYXBwYmFyZSDDnGJlcnNpY2h0c3RhYmVsbGUgcHJvIFBlcnNv
bicgfSwKICAgIHBlcnNvbmFsSW5saW5lRWRpdDogeyBsYWJlbDogJ1BlcnNvbmFsOiBJbmxpbmUt
RWRpdCcsIGJlc2NocmVpYnVuZzogJ0RvcHBlbGtsaWNrIGF1ZiBUYWJlbGxlbi1aZWxsZW4gZXJs
YXVidCBkaXJla3RlcyBCZWFyYmVpdGVuIChOYW1lLCBWb3JuYW1lLCBEaWVuc3RudW1tZXIsIE9F
LCBUZWxlZm9uKScgfSwKICAgIGVtYWlsQXV0b1N1ZmZpeDogeyBsYWJlbDogJ0UtTWFpbDogQXV0
by1TdWZmaXgnLCBiZXNjaHJlaWJ1bmc6ICdXZW5uIGJlaW0gU3BlaWNoZXJuIGVpbmVyIEUtTWFp
bCBrZWluICJAIiBlbnRoYWx0ZW4gaXN0LCB3aXJkIGRpZSBEb21haW4gYXVzIGRlbiBFaW5zdGVs
bHVuZ2VuIGF1dG9tYXRpc2NoIGFuZ2Vow6RuZ3QnIH0sCiAgICBrb2xsZWdlbkhlcnZvcmhlYmVu
OiB7IGxhYmVsOiAnUGVyc29uLUVkaXQ6IERpcmVrdGUgS29sbGVnZW4gaGVydm9yaGViZW4nLCBi
ZXNjaHJlaWJ1bmc6ICdJbSBFZGl0aWVyLUJlcmVjaHRpZ3VuZ3MtQmxvY2sgd2VyZGVuIFBlcnNv
bmVuIG1pdCBnbGVpY2hlciBPRStEaWVuc3RncnVwcGUgYWxzICJEaXJla3RlIEtvbGxlZ2VuIiBh
Ymdlc2V0enQnIH0sCiAgICBwYXBpZXJrb3JiVUk6IHsgbGFiZWw6ICdQZXJzb25hbHZlcndhbHR1
bmc6IFBhcGllcmtvcmItVUknLCBiZXNjaHJlaWJ1bmc6ICdGaWx0ZXIgIlBhcGllcmtvcmIgZWlu
YmxlbmRlbiIgKyBMZWJlbnN6eWtsdXMtQnV0dG9ucyBpbSBQZXJzb24tTW9kYWwuIFNjaGVtYS1I
b29rcyAoZ2Vsb2VzY2h0QW0pIGJsZWliZW4gdW5hYmjDpG5naWcgdm9tIFRvZ2dsZSBha3Rpdicg
fSwKICAgIHBlclBlcnNvblNpY2h0YmFya2VpdDogeyBsYWJlbDogJ1Byby1QZXJzb24tU2ljaHRi
YXJrZWl0JywgYmVzY2hyZWlidW5nOiAnSW0gUGVyc29uLU1vZGFsIChTVS1vbmx5KSBsYXNzZW4g
c2ljaCBMb2didWNoLSB1bmQgU3RhdGlzdGlrLVNpY2h0YmFya2VpdCBwcm8gUGVyc29uIMO8YmVy
c2NocmVpYmVuIChTdGFuZGFyZC9TaWNodGJhci9WZXJzdGVja3QpJyB9LAogICAgc3RhdGlzdGlr
QW5vbnltOiB7IGxhYmVsOiAnU3RhdGlzdGlrOiBBbm9ueW1pc2llcnVuZycsIGJlc2NocmVpYnVu
ZzogJ1BlcnNvbmVuIHdlcmRlbiBpbiBkZXIgU3RhdGlzdGlrIGFscyAiUGVyc29uIDEsIFBlcnNv
biAyIOKApiIgc3RhdHQgbWl0IEtsYXJuYW1lbiBhbmdlemVpZ3QnIH0sCiAgICBzb25kZXJ0ZXJt
aW5lV2ljaHRpZzogeyBsYWJlbDogJ1NvbmRlcnRlcm1pbmU6IFdpY2h0aWctRmxhZycsIGJlc2No
cmVpYnVuZzogJ05ldWUgU3BhbHRlICJNYXJraWVydW5nIiBpbSBTb25kZXJ0ZXJtaW5lLVRhYjsg
bWFya2llcnRlIFRhZ2UgYmVrb21tZW4gZWluZW4gYm9yZGVhdXhyb3RlbiBSYWhtZW4gaW0gR3Jp
ZCcgfSwKICAgIGZlaWVydGFnZVdpY2h0aWdCZXRvbmVuOiB7IGxhYmVsOiAnRmVpZXJ0YWdlOiDi
gJ5XaWNodGlnIi1IZXJ2b3JoZWJ1bmcnLCBiZXNjaHJlaWJ1bmc6ICdQcm8gRmVpZXJ0YWcgaW0g
QWRtaW4tS2FsZW5kZXIgYWxzIOKAnldpY2h0aWciIG1hcmtpZXJ0ZSBUYWdlIGJla29tbWVuIGVp
bmUgZ29sZGVuZSBCb2RlbmxpbmllIGltIEtvcGZiZXJlaWNoLiBBVVMgPSBXaWNodGlnLU1hcmtp
ZXJ1bmcgd2lyZCBpZ25vcmllcnQsIGFsbGUgRmVpZXJ0YWdlIGVyc2NoZWluZW4gZWluaGVpdGxp
Y2gnIH0sCn07CgpmdW5jdGlvbiBmZWF0dXJlc1JlbmRlcm4oKSB7CiAgICB2YXIgZmVhdHVyZXMg
PSBaLmFkbWluLmZlYXR1cmVzIHx8IHt9OwogICAgdmFyIGh0bWwgPSAnPGRpdiBzdHlsZT0iZGlz
cGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O21heC13aWR0aDo2MDBweCI+
JzsKCiAgICBPYmplY3Qua2V5cyhmZWF0dXJlTGFiZWxzKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkg
ewogICAgICAgIHZhciBmbCA9IGZlYXR1cmVMYWJlbHNba2V5XTsKICAgICAgICB2YXIgYWt0aXYg
PSBmZWF0dXJlSXN0QWt0aXYoa2V5KTsKICAgICAgICBodG1sICs9ICc8bGFiZWwgY2xhc3M9ImZl
YXR1cmUtdG9nZ2xlLXplaWxlIiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRl
cjtnYXA6MTJweDtwYWRkaW5nOjEwcHggMTRweDsnICsKICAgICAgICAgICAgJ2JhY2tncm91bmQ6
dmFyKC0tYmctY2FyZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO2JvcmRl
ci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyIj4nICsKICAgICAgICAgICAgJzxpbnB1dCB0eXBl
PSJjaGVja2JveCIgY2xhc3M9ImZlYXR1cmUtY2hlY2tib3giIGRhdGEtZmVhdHVyZT0iJyArIGtl
eSArICciJyArIChha3RpdiA/ICcgY2hlY2tlZCcgOiAnJykgKwogICAgICAgICAgICAnIHN0eWxl
PSJ3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2FjY2VudC1jb2xvcjp2YXIoLS1mYXJiZS1lcmZvbGcp
O2N1cnNvcjpwb2ludGVyIj4nICsKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImZsZXg6MSI+PGRp
diBzdHlsZT0iZm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXRleHQt
aGVhZGluZykiPicgKwogICAgICAgICAgICBlc2NhcGVIVE1MKGZsLmxhYmVsKSArICc8L2Rpdj4n
ICsKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLXRl
eHQtbXV0ZWQpIj4nICsgZXNjYXBlSFRNTChmbC5iZXNjaHJlaWJ1bmcpICsgJzwvZGl2PjwvZGl2
PicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImZlYXR1cmUtc3RhdHVzIiBzdHlsZT0iZm9u
dC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVz
OjRweDsnICsKICAgICAgICAgICAgKGFrdGl2ID8gJ2JhY2tncm91bmQ6cmdiYSgzOSwxMzcsMTA5
LDAuMTIpO2NvbG9yOnZhcigtLWZhcmJlLWVyZm9sZykiPkFOJyA6ICdiYWNrZ3JvdW5kOnJnYmEo
MTc2LDU4LDQ2LDAuMSk7Y29sb3I6dmFyKC0tZmFyYmUtZmVobGVyKSI+QVVTJykgKwogICAgICAg
ICAgICAnPC9zcGFuPjwvbGFiZWw+JzsKICAgIH0pOwoKICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmVhdHVyZXMtaW5oYWx0JykuaW5uZXJIVE1MID0g
aHRtbDsKfQoKdmFyIGZlYXR1cmVEZWZhdWx0cyA9IHsKICAgIGZhaXJuZXNzQW56ZWlnZTogZmFs
c2UsCiAgICAvLyBJbmxpbmUtRWRpdCArIFBhcGllcmtvcmItVUkgYWIgMjAyNi0wNS0xOSBzdGFu
ZGFyZG1hZXNzaWcgQU4sIGRhbWl0CiAgICAvLyBTdXBlclVzZXIgZGlyZWt0IGF1cyBkZXIgUGVy
c29uYWx2ZXJ3YWx0dW5nIGhlcmF1cyBsb2VzY2hlbiB1bmQKICAgIC8vIEZlbGRlciBvaG5lIE1v
ZGFsLVVtd2VnIGFlbmRlcm4ga29lbm5lbiDigJQgdm9yaGVyIG11c3N0ZSBkZXIgVG9nZ2xlCiAg
ICAvLyBleHBsaXppdCB1bWdlbGVndCB3ZXJkZW4sIHdhcyBpbSBMaXZlLVRlc3QgaXJyaXRpZXJ0
ZS4KICAgIHBlcnNvbmFsSW5saW5lRWRpdDogdHJ1ZSwKICAgIGVtYWlsQXV0b1N1ZmZpeDogZmFs
c2UsCiAgICBrb2xsZWdlbkhlcnZvcmhlYmVuOiBmYWxzZSwKICAgIHBhcGllcmtvcmJVSTogdHJ1
ZSwKICAgIHBlclBlcnNvblNpY2h0YmFya2VpdDogZmFsc2UsCiAgICBzdGF0aXN0aWtBbm9ueW06
IGZhbHNlLAogICAgc29uZGVydGVybWluZVdpY2h0aWc6IGZhbHNlLAogICAgZmVpZXJ0YWdlV2lj
aHRpZ0JldG9uZW46IHRydWUKfTsKZnVuY3Rpb24gZmVhdHVyZUlzdEFrdGl2KGtleSkgewogICAg
dmFyIGYgPSBaLmFkbWluLmZlYXR1cmVzIHx8IHt9OwogICAgaWYgKGtleSBpbiBmKSByZXR1cm4g
ISFmW2tleV07CiAgICByZXR1cm4gZmVhdHVyZURlZmF1bHRzW2tleV0gIT09IHVuZGVmaW5lZCA/
IGZlYXR1cmVEZWZhdWx0c1trZXldIDogdHJ1ZTsKfQoKLy8gPT09PT0gQWRtaW46IFN1cGVyVXNl
ci1WZXJ3YWx0dW5nICsgRmFjaGF1ZnNpY2h0ID09PT09Ci8vIFBoYXNlIDktQiBDMTogbmFjaCBW
STMvanMvYWRtaW5fcm9sbGVuLmpzIGF1c2dlbGFnZXJ0IChGdW5rdGlvbmVuCi8vIHN1cGVyVXNl
clJlbmRlcm4vLUF1c1RhYmVsbGVMZXNlbiwgZmFjaGF1ZnNpY2h0UmVuZGVybiB1bmQgYWxsZQov
LyBTdWItU2ljaHQtL1BsYW4tL0RldGFpbC1Nb2RhbC1IZWxmZXIgcGx1cyBkaWUgRkFDSEFVRlNJ
Q0hUXyotCi8vIEtvbnN0YW50ZW4pLiBhcHAuanMgaW1wb3J0aWVydCBhYiBQaGFzZSA5LUIgQzUg
ZGlyZWt0IGF1cwovLyBhZG1pbl9yb2xsZW4uanMuIHN0YXRpc3Rpay5qcyBudXR6dCBudXIgZmVh
dHVyZUlzdEFrdGl2LAovLyBkYXMgaW0gQm9vdHN0cmFwLUJlcmVpY2ggdm9uIGFkbWluLmpzIHZl
cmJsZWlidC4KCi8vID09PT09IFplbnRyYWxlciBEaXJ0eS1UcmFja2VyID09PT09Ci8vIERJUlRZ
LVJlZ2lzdHJ5ICsgZGlydHlSZWdpc3RyaWVyZS9kaXJ0eVNldHplbi9kaXJ0eUlzdC9kaXJ0eUtl
bm50LwovLyBkaXJ0eUFrdGl2ZS9kaXJ0eVBydWVmZW4vZGlydHlTcGVpY2hlcm4gLT4ganMvdWkv
ZGlhbG9nLmpzCi8vCi8vIFRhYi1zcGV6aWZpc2NoZSBSZWdpc3RyYXRpb25lbiArIERPTS1FdmVu
dC1MaXN0ZW5lciBibGVpYmVuIGhpZXIKLy8gKHdhbmRlcnQgaW4gUGhhc2UgOCBuYWNoIGFkbWlu
L2FkbWluLmpzIHp1c2FtbWVuIG1pdCBkZW4gQWRtaW4tVGFicykuCgovLyBBYndhZXJ0c2tvbXBh
dGlibGUgRmFjaGF1ZnNpY2h0LUFkYXB0ZXIgKGZhY2hhdWZzaWNodERpcnR5U2V0emVuLwovLyBm
YWNoYXVmc2ljaHRJc3REaXJ0eSkgbGViZW4gc2VpdCBQaGFzZSA5LUIgQzEgaW4gYWRtaW5fcm9s
bGVuLmpzLgoKLy8gWmVudHJhbGUgUmVnaXN0cmllcnVuZyBhbGxlciBkaXJ0eS1mYWVoaWdlbiBB
ZG1pbi1TZWt0aW9uZW4gKyBnbG9iYWxlcgovLyBJbnB1dC9DaGFuZ2UtTGlzdGVuZXIuIFdpcmQg
ZWlubWFsaWcgYXVzIGV2ZW50TGlzdGVuZXJFaW5yaWNodGVuCi8vIGF1ZmdlcnVmZW4uIE1hcHBp
bmcgdm9uIERPTS1FbGVtZW50IHp1IERpcnR5LUtleToKLy8gICAxLiBTZWN0aW9uLmlkICJhZG1p
bi1zZWt0aW9uLTxrZXk+IiAgIChmZWllcnRhZ2UsIGZlcmllbiwgc3VwZXJ1c2VyLCBmYWNoYXVm
c2ljaHQsIOKApikKLy8gICAyLiBUYWJlbGxlLmlkICI8a2V5Pi10YWJlbGxlIiAgICAgICAgKEZh
bGxiYWNrIGZ1ZXIgVGFicyBvaG5lIFNla3Rpb25lbikKLy8gICAzLiBUYWIuaWQgImFkbWluLXRh
Yi08a2V5PiIgICAgICAgICAgKGdlbmVyZWxsZXIgRmFsbGJhY2spCi8vIFByYWdtYXRpc2NoZXIg
TGlzdGVuLURpZmYgZnVlciBjaGFuZ2VTdW1tYXJ5LiBWZXJnbGVpY2h0IGFsdGUgKFNlcnZlci0p
TGlzdGUKLy8gbWl0IG5ldWVyIChET00tKUxpc3RlIGF1ZiBJZGVudGl0YWV0IHZpYSBpZEZlbGQg
KyBGZWxkd2VydC1BZW5kZXJ1bmdlbi4KLy8gTGllZmVydCBtYXggbWF4WmVpbGVuIEJlc2NocmVp
YnVuZ2VuICsgZ2dmLiAiKCtOIHdlaXRlcmUpIi4KZnVuY3Rpb24gYWRtaW5MaXN0ZURpZmYoYWx0
TGlzdGUsIG5ldUxpc3RlLCBpZEZlbGQsIGxhYmVsRm4sIG1heFplaWxlbikgewogICAgYWx0TGlz
dGUgPSBhbHRMaXN0ZSB8fCBbXTsgbmV1TGlzdGUgPSBuZXVMaXN0ZSB8fCBbXTsgbWF4WmVpbGVu
ID0gbWF4WmVpbGVuIHx8IDY7CiAgICB2YXIgYWx0TWFwID0ge307CiAgICBhbHRMaXN0ZS5mb3JF
YWNoKGZ1bmN0aW9uKGl0LCBpKSB7IGFsdE1hcFtTdHJpbmcoaXRbaWRGZWxkXSAhPSBudWxsID8g
aXRbaWRGZWxkXSA6ICdAJyArIGkpXSA9IGl0OyB9KTsKICAgIHZhciBuZXVNYXAgPSB7fTsKICAg
IG5ldUxpc3RlLmZvckVhY2goZnVuY3Rpb24oaXQsIGkpIHsgbmV1TWFwW1N0cmluZyhpdFtpZEZl
bGRdICE9IG51bGwgPyBpdFtpZEZlbGRdIDogJ0AnICsgaSldID0gaXQ7IH0pOwogICAgdmFyIHpl
aWxlbiA9IFtdOwogICAgT2JqZWN0LmtleXMobmV1TWFwKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsK
ICAgICAgICB2YXIgbiA9IG5ldU1hcFtrXTsgdmFyIGEgPSBhbHRNYXBba107CiAgICAgICAgaWYg
KCFhKSB7IHplaWxlbi5wdXNoKCdOZXU6ICcgKyBsYWJlbEZuKG4pKTsgcmV0dXJuOyB9CiAgICAg
ICAgdmFyIGRpZmZGZWxkZXIgPSBbXTsKICAgICAgICBPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1
bmN0aW9uKGYpIHsKICAgICAgICAgICAgaWYgKGYgPT09IGlkRmVsZCkgcmV0dXJuOwogICAgICAg
ICAgICB2YXIgYXYgPSBhW2ZdOyB2YXIgbnYgPSBuW2ZdOwogICAgICAgICAgICAvLyBUaWVmZXIg
VmVyZ2xlaWNoIG51ciBmdWVyIHByaW1pdGl2ZSBXZXJ0ZSAvIEpTT04tdmVyZ2xlaWNoIGZ1ZXIg
T2JqZWN0cwogICAgICAgICAgICB2YXIgdW50ZXJzY2hpZWQgPSAodHlwZW9mIGF2ID09PSAnb2Jq
ZWN0JyB8fCB0eXBlb2YgbnYgPT09ICdvYmplY3QnKQogICAgICAgICAgICAgICAgPyBKU09OLnN0
cmluZ2lmeShhdikgIT09IEpTT04uc3RyaW5naWZ5KG52KQogICAgICAgICAgICAgICAgOiAoYXYg
fHwgJycpICE9PSAobnYgfHwgJycpOwogICAgICAgICAgICBpZiAodW50ZXJzY2hpZWQpIGRpZmZG
ZWxkZXIucHVzaChmKTsKICAgICAgICB9KTsKICAgICAgICBpZiAoZGlmZkZlbGRlci5sZW5ndGgp
IHplaWxlbi5wdXNoKGxhYmVsRm4obikgKyAnIOKAlCAnICsgZGlmZkZlbGRlci5qb2luKCcsICcp
ICsgJyBnZWFlbmRlcnQnKTsKICAgIH0pOwogICAgT2JqZWN0LmtleXMoYWx0TWFwKS5mb3JFYWNo
KGZ1bmN0aW9uKGspIHsKICAgICAgICBpZiAoIW5ldU1hcFtrXSkgemVpbGVuLnB1c2goJ0dlbG9l
c2NodDogJyArIGxhYmVsRm4oYWx0TWFwW2tdKSk7CiAgICB9KTsKICAgIGlmICh6ZWlsZW4ubGVu
Z3RoID4gbWF4WmVpbGVuKSB7CiAgICAgICAgdmFyIHJlc3QgPSB6ZWlsZW4ubGVuZ3RoIC0gbWF4
WmVpbGVuOwogICAgICAgIHplaWxlbiA9IHplaWxlbi5zbGljZSgwLCBtYXhaZWlsZW4pOwogICAg
ICAgIHplaWxlbi5wdXNoKCfigKYgdW5kICcgKyByZXN0ICsgJyB3ZWl0ZXJlIEFlbmRlcnVuZycg
KyAocmVzdCA9PT0gMSA/ICcnIDogJ2VuJykpOwogICAgfQogICAgcmV0dXJuIHplaWxlbjsKfQoK
ZnVuY3Rpb24gZGlydHlUcmFja2VyRWlucmljaHRlbigpIHsKICAgIC8vIGNoYW5nZVN1bW1hcnkt
RnVua3Rpb25lbiBsZXNlbiBha3R1ZWxsZW4gRE9NLVN0YW5kIHZpYSBkaWUgamV3ZWlsaWdlbgog
ICAgLy8gKkF1c1RhYmVsbGVMZXNlbi1SZWFkZXIgdW5kIHZlcmdsZWljaGVuIG1pdCBaLmFkbWlu
LlggKFNlcnZlci1TdGFuZCkuCiAgICAvLyBXZW5uIGVpbiBSZWFkZXIgbm9jaCBuaWNodCBnZXJl
bmRlcnQgaXN0IChUYWIgbm9jaCBuaWUgZ2VvZWZmbmV0KSwKICAgIC8vIHdpcmQgdHJ5L2NhdGNo
IGltIGRpcnR5UHJ1ZWZlbi1EaWFsb2cgZ2VmYW5nZW4gdW5kIGRlciBUYWIgbnVyIG1pdAogICAg
Ly8gTGFiZWwgZ2V6ZWlndC4KICAgIGRpcnR5UmVnaXN0cmllcmUoJ2ZhY2hhdWZzaWNodCcsICAg
ICB7IGxhYmVsOiAnRmFjaGF1ZnNpY2h0JywgICAgICAgYnRuSWQ6ICdidG4tZmFjaGF1ZnNpY2h0
LXNwZWljaGVybicsIGhpbnRJZDogJ2ZhY2hhdWZzaWNodC1kaXJ0eS1oaW53ZWlzJyB9KTsKICAg
IGRpcnR5UmVnaXN0cmllcmUoJ2RpcmVrdGlvbnNsZWl0dW5nJyx7IGxhYmVsOiAnRGlyZWt0aW9u
c2xlaXR1bmcnLCAgYnRuSWQ6ICdidG4tZGlyZWt0aW9uc2xlaXR1bmctc3BlaWNoZXJuJywgaGlu
dElkOiAnZGlyZWt0aW9uc2xlaXR1bmctZGlydHktaGlud2VpcycgfSk7CiAgICBkaXJ0eVJlZ2lz
dHJpZXJlKCdmdWVocnVuZ3NzdGVsbGUnLCAgeyBsYWJlbDogJ0bDvGhydW5nc3N0ZWxsZScsICAg
ICBidG5JZDogJ2J0bi1mdWVocnVuZ3NzdGVsbGUtc3BlaWNoZXJuJywgIGhpbnRJZDogJ2Z1ZWhy
dW5nc3N0ZWxsZS1kaXJ0eS1oaW53ZWlzJyB9KTsKICAgIGRpcnR5UmVnaXN0cmllcmUoJ3N1cGVy
dXNlcicsICAgICAgeyBsYWJlbDogJ1N1cGVyVXNlci1MaXN0ZScsICAgIGJ0bklkOiAnYnRuLXN1
cGVydXNlci1zcGVpY2hlcm4nIH0pOwogICAgLy8gSGVscGVyLCBkZXIgZGVuIGFrdHVlbGxlbiBE
aWVuc3RncnVwcGVuLURPTS1TdGFuZCBhbHMgQXJyYXkgdm9uCiAgICAvLyBQbGFpbi1PYmplY3Rz
IGxpZXN0LiBXaWVkZXJ2ZXJ3ZW5kZXQgZnVlciBjaGFuZ2VTdW1tYXJ5LCBzbmFwc2hvdEZuLgog
ICAgZnVuY3Rpb24gZ3J1cHBlbkF1c0RPTUxlc2VuKCkgewogICAgICAgIHZhciBuZXUgPSBbXTsK
ICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3J1cHBlLWt1ZXJ6ZWwtaW5wdXQn
KS5mb3JFYWNoKGZ1bmN0aW9uKGlucCkgewogICAgICAgICAgICB2YXIgaWR4ID0gcGFyc2VJbnQo
aW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSk7CiAgICAgICAgICAgIHZhciBpbnBsQ2IgID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmdydXBwZS1pbnBsYW51bmctaW5wdXRbZGF0YS1pZHg9
IicgKyBpZHggKyAnIl0nKTsKICAgICAgICAgICAgdmFyIGRhcmZBcENiID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignLmdydXBwZS1kYXJmYXAtaW5wdXRbZGF0YS1pZHg9IicgKyBpZHggKyAnIl0n
KTsKICAgICAgICAgICAgbmV1LnB1c2goewogICAgICAgICAgICAgICAgbmFtZTogaW5wLnZhbHVl
LAogICAgICAgICAgICAgICAgX2FsdEt1ZXJ6ZWw6IGlucC5nZXRBdHRyaWJ1dGUoJ2RhdGEtYWx0
JykgfHwgJycsCiAgICAgICAgICAgICAgICBiZXplaWNobnVuZzogKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJy5ncnVwcGUtYmV6LWlucHV0W2RhdGEtaWR4PSInICsgaWR4ICsgJyJdJykgfHwge30p
LnZhbHVlIHx8ICcnLAogICAgICAgICAgICAgICAgaGludGVyZ3J1bmQ6IChkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcuZ3J1cHBlLWhnLWlucHV0W2RhdGEtaWR4PSInICsgaWR4ICsgJyJdJykgfHwg
e30pLnZhbHVlIHx8ICcnLAogICAgICAgICAgICAgICAgc2NocmlmdDogICAgIChkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcuZ3J1cHBlLXNmLWlucHV0W2RhdGEtaWR4PSInICsgaWR4ICsgJyJdJykg
fHwge30pLnZhbHVlIHx8ICcnLAogICAgICAgICAgICAgICAgLy8gRGVmYXVsdDogc2ljaHRiYXIu
IE51ciBleHBsaXppdCBhdWYgZmFsc2Ugd2VubiBDaGVja2JveCBhYmdld2FlaGx0LgogICAgICAg
ICAgICAgICAgaW5QbGFudW5nOiAgIGlucGxDYiA/ICEhaW5wbENiLmNoZWNrZWQgOiB0cnVlLAog
ICAgICAgICAgICAgICAgLy8gRGVmYXVsdDogZXJsYXVidC4gUGVuZGFudCB6dXIgaW5QbGFudW5n
LUxvZ2lrLgogICAgICAgICAgICAgICAgZGFyZkFuc3ByZWNocGFydG5lcjogZGFyZkFwQ2IgPyAh
IWRhcmZBcENiLmNoZWNrZWQgOiB0cnVlCiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAg
ICAgIHJldHVybiBuZXU7CiAgICB9CiAgICBkaXJ0eVJlZ2lzdHJpZXJlKCdncnVwcGVuJywgICAg
ICAgIHsKICAgICAgICBsYWJlbDogJ0RpZW5zdGdydXBwZW4nLAogICAgICAgIGJ0bklkOiAnYnRu
LWdydXBwZW4tc3BlaWNoZXJuJywKICAgICAgICBjaGFuZ2VTdW1tYXJ5OiBmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgdmFyIG5ldSA9IGdydXBwZW5BdXNET01MZXNlbigpLm1hcChmdW5jdGlvbihn
KSB7IHJldHVybiB7IF9pZDogZy5fYWx0S3VlcnplbCB8fCAoJ0BuZXUnICsgZy5uYW1lKSwgbmFt
ZTogZy5uYW1lLCBiZXplaWNobnVuZzogZy5iZXplaWNobnVuZywgaGludGVyZ3J1bmQ6IGcuaGlu
dGVyZ3J1bmQsIHNjaHJpZnQ6IGcuc2NocmlmdCwgaW5QbGFudW5nOiBnLmluUGxhbnVuZyAhPT0g
ZmFsc2UsIGRhcmZBbnNwcmVjaHBhcnRuZXI6IGcuZGFyZkFuc3ByZWNocGFydG5lciAhPT0gZmFs
c2UgfTsgfSk7CiAgICAgICAgICAgIHZhciBhbHQgPSAoWi5hZG1pbi5ncnVwcGVuIHx8IFtdKS5t
YXAoZnVuY3Rpb24oZykgeyByZXR1cm4geyBfaWQ6IGcubmFtZSwgbmFtZTogZy5uYW1lLCBiZXpl
aWNobnVuZzogZy5iZXplaWNobnVuZyB8fCAnJywgaGludGVyZ3J1bmQ6IGcuaGludGVyZ3J1bmQg
fHwgJycsIHNjaHJpZnQ6IGcuc2NocmlmdCB8fCAnJywgaW5QbGFudW5nOiBnLmluUGxhbnVuZyAh
PT0gZmFsc2UsIGRhcmZBbnNwcmVjaHBhcnRuZXI6IGcuZGFyZkFuc3ByZWNocGFydG5lciAhPT0g
ZmFsc2UgfTsgfSk7CiAgICAgICAgICAgIHJldHVybiBhZG1pbkxpc3RlRGlmZihhbHQsIG5ldSwg
J19pZCcsIGZ1bmN0aW9uKGcpIHsgcmV0dXJuICdHcnVwcGUgJyArIChnLm5hbWUgfHwgJyhsZWVy
KScpOyB9KTsKICAgICAgICB9LAogICAgICAgIC8vIEF1dG8tU2F2ZTogc25hcHNob3RGbiBsaWVm
ZXJ0IGRlbiBET00tU3RhbmQgenVtIFBlcnNpc3RpZXJlbiBhbHMKICAgICAgICAvLyBEcmFmdDsg
cmVzdG9yZUZuIHNjaHJlaWJ0IGVpbmVuIERyYWZ0IHdpZWRlciBpbiBkZW4gU3RhdGUgKyBSZW5k
ZXIuCiAgICAgICAgZHJhZnRLZXk6ICdncnVwcGVuJywKICAgICAgICBzbmFwc2hvdEZuOiBmdW5j
dGlvbigpIHsgcmV0dXJuIGdydXBwZW5BdXNET01MZXNlbigpOyB9LAogICAgICAgIHJlc3RvcmVG
bjogZnVuY3Rpb24oZGF0ZW4pIHsKICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGVu
KSkgcmV0dXJuOwogICAgICAgICAgICBaLmFkbWluLmdydXBwZW4gPSBkYXRlbi5tYXAoZnVuY3Rp
b24oZykgewogICAgICAgICAgICAgICAgcmV0dXJuIHsgbmFtZTogZy5uYW1lLCBiZXplaWNobnVu
ZzogZy5iZXplaWNobnVuZywgaGludGVyZ3J1bmQ6IGcuaGludGVyZ3J1bmQsIHNjaHJpZnQ6IGcu
c2NocmlmdCwgaW5QbGFudW5nOiBnLmluUGxhbnVuZyAhPT0gZmFsc2UsIGRhcmZBbnNwcmVjaHBh
cnRuZXI6IGcuZGFyZkFuc3ByZWNocGFydG5lciAhPT0gZmFsc2UgfTsKICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgIGdydXBwZW5UYWJlbGxlUmVuZGVybigpOwogICAgICAgIH0KICAgIH0pOwog
ICAgZGlydHlSZWdpc3RyaWVyZSgnZmVpZXJ0YWdlJywgICAgICB7IGxhYmVsOiAnRmVpZXJ0YWdl
JywgICAgICAgICAgYnRuSWQ6ICdidG4tZmVpZXJ0YWdlLXNwZWljaGVybicgfSk7CiAgICBkaXJ0
eVJlZ2lzdHJpZXJlKCdmZXJpZW4nLCAgICAgICAgIHsKICAgICAgICBsYWJlbDogJ0Zlcmllbics
CiAgICAgICAgYnRuSWQ6ICdidG4tZmVyaWVuLXNwZWljaGVybicsCiAgICAgICAgY2hhbmdlU3Vt
bWFyeTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBuZXUgPSBmZXJpZW5BdXNUYWJlbGxl
TGVzZW4oKS5tYXAoZnVuY3Rpb24oZiwgaSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHsgX2lk
OiBmLm5hbWUgfHwgZi52b24gfHwgKCdAJyArIGkpLCB2b246IGYudm9uIHx8ICcnLCBiaXM6IGYu
YmlzIHx8ICcnLCBuYW1lOiBmLm5hbWUgfHwgJycgfTsKICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgIHZhciBhbHQgPSAoWi5hZG1pbi5mZXJpZW4gfHwgW10pLm1hcChmdW5jdGlvbihmLCBpKSB7
IHJldHVybiB7IF9pZDogZi5uYW1lIHx8IGYudm9uIHx8ICgnQCcgKyBpKSwgdm9uOiBmLnZvbiB8
fCAnJywgYmlzOiBmLmJpcyB8fCAnJywgbmFtZTogZi5uYW1lIHx8ICcnIH07IH0pOwogICAgICAg
ICAgICByZXR1cm4gYWRtaW5MaXN0ZURpZmYoYWx0LCBuZXUsICdfaWQnLCBmdW5jdGlvbihmKSB7
IHJldHVybiBmLm5hbWUgfHwgJyh1bmJlbmFubnQpJzsgfSk7CiAgICAgICAgfSwKICAgICAgICBk
cmFmdEtleTogJ2ZlcmllbicsCiAgICAgICAgc25hcHNob3RGbjogZnVuY3Rpb24oKSB7IHJldHVy
biBmZXJpZW5BdXNUYWJlbGxlTGVzZW4oKTsgfSwKICAgICAgICByZXN0b3JlRm46IGZ1bmN0aW9u
KGRhdGVuKSB7CiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRlbikpIHJldHVybjsK
ICAgICAgICAgICAgWi5hZG1pbi5mZXJpZW4gPSBkYXRlbjsKICAgICAgICAgICAgZmVyaWVuVGFi
ZWxsZVJlbmRlcm4oKTsKICAgICAgICB9CiAgICB9KTsKICAgIGRpcnR5UmVnaXN0cmllcmUoJ3N0
YW5kb3J0ZScsICAgICAgewogICAgICAgIGxhYmVsOiAnU3RhbmRvcnRlICYgU2NoaWNodGZvbGdl
JywKICAgICAgICBidG5JZDogJ2J0bi1zdGFuZG9ydGUtc3BlaWNoZXJuJywKICAgICAgICBjaGFu
Z2VTdW1tYXJ5OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgLy8gc3RhbmRvcnRlQXVzVGFiZWxs
ZUxlc2VuIGxpZWZlcnQga29tcGxldHRlIFN0YW5kb3J0LU9iamVrdGU7CiAgICAgICAgICAgIC8v
IHdpciByZWR1emllcmVuIGF1ZiBkaWUgZnVlciBkZW4gVXNlciBzaWNodGJhcmVuIEZlbGRlci4K
ICAgICAgICAgICAgdmFyIG5ldSA9ICh0eXBlb2Ygc3RhbmRvcnRlQXVzVGFiZWxsZUxlc2VuID09
PSAnZnVuY3Rpb24nID8gc3RhbmRvcnRlQXVzVGFiZWxsZUxlc2VuKCkgOiBbXSkKICAgICAgICAg
ICAgICAgIC5tYXAoZnVuY3Rpb24ocykgeyByZXR1cm4geyBfaWQ6IHMua3VlcnplbCB8fCBzLm5h
bWUsIG5hbWU6IHMubmFtZSB8fCAnJywga3VlcnplbDogcy5rdWVyemVsIHx8ICcnLCBpc3RQb29s
OiAhIXMuaXN0UG9vbCB9OyB9KTsKICAgICAgICAgICAgdmFyIGFsdCA9IChaLmFkbWluLnN0YW5k
b3J0ZSB8fCBbXSkubWFwKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHsgX2lkOiBzLmt1ZXJ6ZWwgfHwg
cy5uYW1lLCBuYW1lOiBzLm5hbWUgfHwgJycsIGt1ZXJ6ZWw6IHMua3VlcnplbCB8fCAnJywgaXN0
UG9vbDogISFzLmlzdFBvb2wgfTsgfSk7CiAgICAgICAgICAgIHJldHVybiBhZG1pbkxpc3RlRGlm
ZihhbHQsIG5ldSwgJ19pZCcsIGZ1bmN0aW9uKHMpIHsgcmV0dXJuICdTdGFuZG9ydCAnICsgKHMu
bmFtZSB8fCBzLmt1ZXJ6ZWwgfHwgJyhsZWVyKScpOyB9KTsKICAgICAgICB9LAogICAgICAgIGRy
YWZ0S2V5OiAnc3RhbmRvcnRlJywKICAgICAgICBzbmFwc2hvdEZuOiBmdW5jdGlvbigpIHsgcmV0
dXJuIHR5cGVvZiBzdGFuZG9ydGVBdXNUYWJlbGxlTGVzZW4gPT09ICdmdW5jdGlvbicgPyBzdGFu
ZG9ydGVBdXNUYWJlbGxlTGVzZW4oKSA6IG51bGw7IH0sCiAgICAgICAgcmVzdG9yZUZuOiBmdW5j
dGlvbihkYXRlbikgewogICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0ZW4pKSByZXR1
cm47CiAgICAgICAgICAgIFouYWRtaW4uc3RhbmRvcnRlID0gZGF0ZW47CiAgICAgICAgICAgIHN0
YW5kb3J0ZVJlbmRlcm4oKTsKICAgICAgICB9CiAgICB9KTsKICAgIGRpcnR5UmVnaXN0cmllcmUo
J2VpbnN0ZWxsdW5nZW4nLCAgeyBsYWJlbDogJ0tvbmZpZ3VyYXRpb24nLCAgICAgIGJ0bklkOiAn
YnRuLWVpbnN0ZWxsdW5nZW4tc3BlaWNoZXJuJyB9KTsKICAgIGRpcnR5UmVnaXN0cmllcmUoJ2Jl
emVpY2hudW5nZW4nLCAgeyBsYWJlbDogJ0Jlc2NocmlmdHVuZ2VuJywgICAgIGJ0bklkOiAnYnRu
LWJlemVpY2hudW5nZW4tc3BlaWNoZXJuJyB9KTsKICAgIGRpcnR5UmVnaXN0cmllcmUoJ2luZm9o
aWxmZScsICAgICAgeyBsYWJlbDogJ0luZm9ybWF0aW9uICYgSGlsZmUnLCBidG5JZDogJ2J0bi1p
bmZvaGlsZmUtc3BlaWNoZXJuJyB9KTsKCiAgICAvLyBEZWJvdW5jZS1UaW1lciBwcm8gVGFiIGZ1
ZXIgQXV0by1TYXZlIGluIGxvY2FsU3RvcmFnZSAoUGhhc2UgOSkuCiAgICAvLyBXaXJkIGJlaW0g
ZXJzdGVuIGlucHV0L2NoYW5nZS1FdmVudCBpbiBlaW5lbSBUYWIgZ2VzdGFydGV0OyBuYWNoCiAg
ICAvLyAycyBvaG5lIHdlaXRlcmVuIElucHV0IHNjaHJlaWJ0IGVzIGRlbiBTbmFwc2hvdCBpbiB2
aTMudGFiRHJhZnRzLgogICAgdmFyIGRyYWZ0VGltZXIgPSB7fTsKICAgIHZhciBEUkFGVF9ERUJP
VU5DRV9NUyA9IDIwMDA7CiAgICBmdW5jdGlvbiBkcmFmdFNjaGVkdWxlU2F2ZSh0YWJLZXkpIHsK
ICAgICAgICB2YXIgaW5mbyA9IGRpcnR5RWludHJhZyh0YWJLZXkpOwogICAgICAgIGlmICghaW5m
byB8fCAhaW5mby5kcmFmdEtleSB8fCB0eXBlb2YgaW5mby5zbmFwc2hvdEZuICE9PSAnZnVuY3Rp
b24nKSByZXR1cm47CiAgICAgICAgaWYgKGRyYWZ0VGltZXJbdGFiS2V5XSkgY2xlYXJUaW1lb3V0
KGRyYWZ0VGltZXJbdGFiS2V5XSk7CiAgICAgICAgZHJhZnRUaW1lclt0YWJLZXldID0gc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgZHJhZnRUaW1lclt0YWJLZXldID0gbnVsbDsK
ICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHZhciBkYXRlbiA9IGluZm8uc25hcHNo
b3RGbigpOwogICAgICAgICAgICAgICAgaWYgKGRhdGVuID09IG51bGwpIHJldHVybjsKICAgICAg
ICAgICAgICAgIHRhYkRyYWZ0U3BlaWNoZXJuKGluZm8uZHJhZnRLZXksIGRhdGVuLCAwKTsKICAg
ICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgLy8gU25hcHNob3Qga2FubiBm
ZWhsc2NobGFnZW4gd2VubiBET00gdW5lcndhcnRldCBhdXNzaWVodCDigJQKICAgICAgICAgICAg
ICAgIC8vIGRhbm4gZWJlbiBrZWluIERyYWZ0LiBTZXJ2ZXItU2F2ZSBibGVpYnQgZGVyIHp1dmVy
bGFlc3NpZ2UgV2VnLgogICAgICAgICAgICB9CiAgICAgICAgfSwgRFJBRlRfREVCT1VOQ0VfTVMp
OwogICAgfQoKICAgIGZ1bmN0aW9uIG1hcmtpZXJlQXVzRXZlbnQoZSkgewogICAgICAgIGlmICgh
ZS50YXJnZXQpIHJldHVybjsKICAgICAgICAvLyBJbm5lcmhhbGIgZGVzIEltcGVyc29uYXRpb24t
QmFubmVycyBvZGVyIGVpbmVzIE1vZGFsLUluaGFsdHM6CiAgICAgICAgLy8gbmljaHQgaW5zIFRh
Yi1EaXJ0eS1UcmFja2luZyBlaW5taXNjaGVuLgogICAgICAgIGlmIChlLnRhcmdldC5jbG9zZXN0
KCcjaW1wZXJzb25hdGUtYmFubmVyJykpIHJldHVybjsKICAgICAgICBpZiAoZS50YXJnZXQuY2xv
c2VzdCgnI21vZGFsLW92ZXJsYXknKSkgcmV0dXJuOwogICAgICAgIHZhciBzZWt0aW9uID0gZS50
YXJnZXQuY2xvc2VzdCgnLmFkbWluLXNla3Rpb24nKTsKICAgICAgICBpZiAoc2VrdGlvbiAmJiBz
ZWt0aW9uLmlkKSB7CiAgICAgICAgICAgIHZhciBrMSA9IHNla3Rpb24uaWQucmVwbGFjZSgnYWRt
aW4tc2VrdGlvbi0nLCAnJyk7CiAgICAgICAgICAgIGlmIChkaXJ0eUtlbm50KGsxKSkgeyBkaXJ0
eVNldHplbihrMSwgdHJ1ZSk7IGRyYWZ0U2NoZWR1bGVTYXZlKGsxKTsgcmV0dXJuOyB9CiAgICAg
ICAgfQogICAgICAgIHZhciB0YWJlbGxlID0gZS50YXJnZXQuY2xvc2VzdCgnLmFkbWluLXRhYmVs
bGUnKTsKICAgICAgICBpZiAodGFiZWxsZSAmJiB0YWJlbGxlLmlkKSB7CiAgICAgICAgICAgIHZh
ciBrMiA9IHRhYmVsbGUuaWQucmVwbGFjZSgnLXRhYmVsbGUnLCAnJyk7CiAgICAgICAgICAgIGlm
IChkaXJ0eUtlbm50KGsyKSkgeyBkaXJ0eVNldHplbihrMiwgdHJ1ZSk7IGRyYWZ0U2NoZWR1bGVT
YXZlKGsyKTsgcmV0dXJuOyB9CiAgICAgICAgfQogICAgICAgIHZhciB0YWIgPSBlLnRhcmdldC5j
bG9zZXN0KCcuYWRtaW4tdGFiJyk7CiAgICAgICAgaWYgKHRhYiAmJiB0YWIuaWQpIHsKICAgICAg
ICAgICAgdmFyIGszID0gdGFiLmlkLnJlcGxhY2UoJ2FkbWluLXRhYi0nLCAnJyk7CiAgICAgICAg
ICAgIGlmIChkaXJ0eUtlbm50KGszKSkgeyBkaXJ0eVNldHplbihrMywgdHJ1ZSk7IGRyYWZ0U2No
ZWR1bGVTYXZlKGszKTsgfQogICAgICAgIH0KICAgIH0KICAgIGRvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoJ2lucHV0JywgbWFya2llcmVBdXNFdmVudCk7CiAgICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCdjaGFuZ2UnLCBtYXJraWVyZUF1c0V2ZW50KTsKCiAgICAvLyBDbGVhbnVwIHZlcmFs
dGV0ZXIgRHJhZnRzIGJlaW0gSW5pdCAoc2VsYmVyIDE0LVRhZ2UtVFRMIHdpZSBNb2RhbC1FbnR3
dWVyZmUpLgogICAgdGFiRHJhZnRBdXRvQ2xlYW51cCgpOwoKICAgIC8vIEJyb3dzZXItV2FybnVu
ZyBiZWltIFNjaGxpZXNzZW4vUmVsb2FkIGRlciBTZWl0ZSwgd2VubiBpcmdlbmRlaW4KICAgIC8v
IEFkbWluLVRhYiBub2NoIGRpcnR5IGlzdC4gRGVyIFRleHQgaXN0IG1pdHRsZXJ3ZWlsZSBicm93
c2Vyc2VpdGlnCiAgICAvLyBzdGFuZGFyZGlzaWVydCAoa2VpbiBDdXN0b20tVGV4dCBtZWhyKSDi
gJQgcmVpY2h0IGFscyBIaW53ZWlzLgogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9y
ZXVubG9hZCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoZGlydHlBa3RpdmUoKS5sZW5ndGgg
PiAwKSB7CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgZS5yZXR1
cm5WYWx1ZSA9ICcnOwogICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgfQogICAgfSk7Cn0K
Ci8vID09PT09IFBoYXNlIDkg4oCUIERyYWZ0LVJlc3RvcmUtQmFubmVyID09PT09Ci8vCi8vIFdp
cmQgYmVpbSBPZWZmbmVuIGRlcyBBZG1pbi1CZXJlaWNocyB1bmQgYmVpbSBUYWItV2VjaHNlbCBh
dWZnZXJ1ZmVuLgovLyBQcnVlZnQsIG9iIGZ1ZXIgZGVuIGFrdHVlbGwgYWt0aXZlbiBUYWIgZWlu
IERyYWZ0IGltIGxvY2FsU3RvcmFnZSBsaWVndCwKLy8gdW5kIGJpZXRldCB2aWEgQmFubmVyIFdp
ZWRlcmhlcnN0ZWxsZW4gLyBWZXJ3ZXJmZW4gYW4uIEJhbm5lci1FbGVtZW50Ci8vIGxlYnQgc3Rh
dGlzY2ggaW0gaW5kZXguaHRtbCAoI2FkbWluLWRyYWZ0LWJhbm5lcikuIFJlc3RvcmUgcnVmdCBk
aWUKLy8gdm9tIFRhYiByZWdpc3RyaWVydGUgcmVzdG9yZUZuIGF1ZiwgZGFuYWNoIERyYWZ0IGxv
ZXNjaGVuIChlciBpc3QgamV0enQKLy8gaW0gRE9NIGFrdGl2LCBkaXJ0eS1UcmFja2luZyBuaW1t
dCBpaG4gYWIgZGEgbGl2ZSBtaXQpLgpleHBvcnQgZnVuY3Rpb24gYWRtaW5EcmFmdEJhbm5lckFu
YmlldGVuKHRhYktleSkgewogICAgdmFyIGJhbm5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdhZG1pbi1kcmFmdC1iYW5uZXInKTsKICAgIGlmICghYmFubmVyKSByZXR1cm47CiAgICBiYW5u
ZXIuY2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7CiAgICBpZiAoIXRhYktleSkgcmV0dXJuOwog
ICAgdmFyIGluZm8gPSBkaXJ0eUVpbnRyYWcodGFiS2V5KTsKICAgIGlmICghaW5mbyB8fCAhaW5m
by5kcmFmdEtleSB8fCB0eXBlb2YgaW5mby5yZXN0b3JlRm4gIT09ICdmdW5jdGlvbicpIHJldHVy
bjsKICAgIHZhciBkcmFmdCA9IHRhYkRyYWZ0RnVlcihpbmZvLmRyYWZ0S2V5KTsKICAgIGlmICgh
ZHJhZnQpIHJldHVybjsKICAgIHZhciBhbHRlciA9ICcnOwogICAgdHJ5IHsKICAgICAgICB2YXIg
ZCA9IG5ldyBEYXRlKGRyYWZ0LnRzKTsKICAgICAgICB2YXIgcGFkID0gZnVuY3Rpb24obikgeyBy
ZXR1cm4gKG4gPCAxMCA/ICcwJyA6ICcnKSArIG47IH07CiAgICAgICAgYWx0ZXIgPSBwYWQoZC5n
ZXREYXRlKCkpICsgJy4nICsgcGFkKGQuZ2V0TW9udGgoKSArIDEpICsgJy4gJyArIHBhZChkLmdl
dEhvdXJzKCkpICsgJzonICsgcGFkKGQuZ2V0TWludXRlcygpKTsKICAgIH0gY2F0Y2ggKGUpIHsg
YWx0ZXIgPSAnKFplaXRwdW5rdCB1bmJla2FubnQpJzsgfQogICAgdmFyIHRleHQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYWRtaW4tZHJhZnQtYmFubmVyLXRleHQnKTsKICAgIGlmICh0ZXh0
KSB7CiAgICAgICAgdGV4dC5pbm5lckhUTUwgPSAnSW0gVGFiIDxzdHJvbmc+JyArIGVzY2FwZUhU
TUwoaW5mby5sYWJlbCkgKwogICAgICAgICAgICAnPC9zdHJvbmc+IGxpZWd0IGVpbiBuaWNodCBh
bnMgU3lzdGVtIGdlc2VuZGV0ZXIgU3RhbmQgdm9tIDxzdHJvbmc+JyArCiAgICAgICAgICAgIGVz
Y2FwZUhUTUwoYWx0ZXIpICsgJzwvc3Ryb25nPi4gV2llZGVyaGVyc3RlbGxlbiBvZGVyIHZlcndl
cmZlbj8nOwogICAgfQogICAgdmFyIGJ0blIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRt
aW4tZHJhZnQtcmVzdG9yZScpOwogICAgdmFyIGJ0blYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYWRtaW4tZHJhZnQtdmVyd2VyZmVuJyk7CiAgICBpZiAoYnRuUikgewogICAgICAgIC8vIE5l
dWVyIENsaWNrLUhhbmRsZXIgb2huZSBMaXN0ZW5lci1Ba2t1bXVsYXRpb246IEVsZW1lbnQgY2xv
bmVuLgogICAgICAgIHZhciBjbG9uZWRSID0gYnRuUi5jbG9uZU5vZGUodHJ1ZSk7CiAgICAgICAg
YnRuUi5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChjbG9uZWRSLCBidG5SKTsKICAgICAgICBjbG9u
ZWRSLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHRy
eSB7IGluZm8ucmVzdG9yZUZuKGRyYWZ0LmRhdGVuKTsgfSBjYXRjaCAoZSkgeyB0b2FzdCgnRHJh
ZnQga29ubnRlIG5pY2h0IHdpZWRlcmhlcmdlc3RlbGx0IHdlcmRlbjogJyArIGUubWVzc2FnZSwg
J2ZlaGxlcicpOyByZXR1cm47IH0KICAgICAgICAgICAgZGlydHlTZXR6ZW4odGFiS2V5LCB0cnVl
KTsKICAgICAgICAgICAgYmFubmVyLmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwogICAgICAg
ICAgICB0b2FzdCgnU3RhbmQgd2llZGVyaGVyZ2VzdGVsbHQg4oCUIGJpdHRlIHNwZWljaGVybics
ICdpbmZvJyk7CiAgICAgICAgfSk7CiAgICB9CiAgICBpZiAoYnRuVikgewogICAgICAgIHZhciBj
bG9uZWRWID0gYnRuVi5jbG9uZU5vZGUodHJ1ZSk7CiAgICAgICAgYnRuVi5wYXJlbnROb2RlLnJl
cGxhY2VDaGlsZChjbG9uZWRWLCBidG5WKTsKICAgICAgICBjbG9uZWRWLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHRhYkRyYWZ0TG9lc2NoZW4oaW5m
by5kcmFmdEtleSk7CiAgICAgICAgICAgIGJhbm5lci5jbGFzc0xpc3QuYWRkKCd2ZXJzdGVja3Qn
KTsKICAgICAgICB9KTsKICAgIH0KICAgIGJhbm5lci5jbGFzc0xpc3QucmVtb3ZlKCd2ZXJzdGVj
a3QnKTsKfQoKLy8gPT09PT0gQWRtaW46IEJlemVpY2hudW5nZW4gJiBMaXN0ZW4gKERpZW5zdGdy
YWRlICsgRnVua3Rpb25lbikgPT09PT0KLy8gU3RhbW0tTGlzdGVuLCBkaWUgZnJ1ZWhlcmUgQ29k
ZS1Lb25zdGFudGVuIGVyc2V0emVuLiBMaWVnZW4gaW4KLy8gWi5hZG1pbi5kaWVuc3RncmFkZSAo
QXJyYXkgb2YgU3RyaW5nKSB1bmQgWi5hZG1pbi5mdW5rdGlvbmVuCi8vIChBcnJheSBvZiB7IGNv
ZGUsIHJhbmcgfSkuIEVkaXRvciBpbiBBZG1pbiAtPiBCZXplaWNobnVuZ2VuICYgTGlzdGVuLgoK
ZnVuY3Rpb24gbGlzdGVuUmVuZGVybigpIHsKICAgIGxpc3RlbkRpZW5zdGdyYWRlUmVuZGVybigp
OwogICAgbGlzdGVuRnVua3Rpb25lblJlbmRlcm4oKTsKfQoKLy8gPT09PT0gQWRtaW46IE1pa3Jv
dGVhbS1FZGl0b3IgPT09PT0KLy8gWi5hZG1pbi5taWtyb3RlYW1zID0gW3sgaWQsIG5hbWUsIHN0
YW5kb3J0LCBncnVwcGUsIHBlcnNvbklkczogW10gfV0KCmZ1bmN0aW9uIG1pa3JvdGVhbXNSZW5k
ZXJuKCkgewogICAgdmFyIHRib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pa3JvdGVh
bXMtdGJvZHknKTsKICAgIGlmICghdGJvZHkpIHJldHVybjsKICAgIHZhciBsaXN0ZSA9IChaLmFk
bWluLm1pa3JvdGVhbXMgfHwgW10pOwogICAgaWYgKCFsaXN0ZS5sZW5ndGgpIHsKICAgICAgICB0
Ym9keS5pbm5lckhUTUwgPSBhZG1pbkVtcHR5WmVpbGUoNywgJ1x1ezFGOTFEfScsCiAgICAgICAg
ICAgICdOb2NoIGtlaW5lIE1pa3JvdGVhbXMgYW5nZWxlZ3QnLAogICAgICAgICAgICAnTWlrcm90
ZWFtcyBncnVwcGllcmVuIFBlcnNvbmVuLCBkaWUgcmVnZWxtYWVzc2lnIHp1c2FtbWVuIHBsYW5l
biDigJQgei5CLiBlaW5lIFN0cmVpZmUgb2RlciBlaW4gMmVyLVRlYW0uIE1pdGdsaWVkZXIgZWlu
ZXMgTWlrcm90ZWFtcyBkdWVyZmVuIGRpZSBTY2hpY2h0ZW4gZGVyIGFuZGVyZW4gVGVhbS1QZXJz
b25lbiBtaXQtcGxhbmVuLiBMZWcgZGFzIGVyc3RlIG9iZW4gbWl0IOKAnk5ldWVzIE1pa3JvdGVh
bSIgYW4uJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIHN0YW5kb3J0ZSA9IChaLmFk
bWluLnN0YW5kb3J0ZSB8fCBbXSkubWFwKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMua3VlcnplbCB8
fCBzLm5hbWU7IH0pLmZpbHRlcihCb29sZWFuKTsKICAgIHZhciBncnVwcGVuICAgPSAoWi5hZG1p
bi5ncnVwcGVuICAgfHwgW10pLm1hcChmdW5jdGlvbihnKSB7IHJldHVybiBnLm5hbWU7IH0pLmZp
bHRlcihCb29sZWFuKTsKICAgIGZ1bmN0aW9uIGRyb3Bkb3duKGtsYXNzZSwgbmFtZSwgb3B0aW9u
ZW4sIGN1cnJlbnQpIHsKICAgICAgICB2YXIgb3B0cyA9IG9wdGlvbmVuLm1hcChmdW5jdGlvbihv
KSB7CiAgICAgICAgICAgIHJldHVybiAnPG9wdGlvbiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIobykg
KyAnIicgKyAobyA9PT0gY3VycmVudCA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz4nICsgZXNjYXBl
SFRNTChvKSArICc8L29wdGlvbj4nOwogICAgICAgIH0pLmpvaW4oJycpOwogICAgICAgIHJldHVy
biAnPHNlbGVjdCBjbGFzcz0iJyArIGtsYXNzZSArICciIGRhdGEtbmFtZT0iJyArIGVzY2FwZUF0
dHIobmFtZSkgKyAnIiBzdHlsZT0id2lkdGg6MTAwJSI+JyArCiAgICAgICAgICAgICc8b3B0aW9u
IHZhbHVlPSIiJyArIChjdXJyZW50ID8gJycgOiAnIHNlbGVjdGVkJykgKyAnPuKAlDwvb3B0aW9u
PicgKyBvcHRzICsKICAgICAgICAnPC9zZWxlY3Q+JzsKICAgIH0KICAgIHZhciBodG1sID0gJyc7
CiAgICBsaXN0ZS5mb3JFYWNoKGZ1bmN0aW9uKHQsIGkpIHsKICAgICAgICB2YXIgcGVyc29uZW5B
bnphaGwgPSAodC5wZXJzb25JZHMgfHwgW10pLmxlbmd0aDsKICAgICAgICBodG1sICs9ICc8dHIg
ZGF0YS1pZHg9IicgKyBpICsgJyI+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxp
Z246Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtd2VpZ2h0OjcwMCI+JyArIChp
ICsgMSkgKyAnPC90ZD4nICsKICAgICAgICAgICAgJzx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xh
c3M9Im10LWlucHV0IiBkYXRhLWZlbGQ9ImlkIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIodC5pZCB8
fCAnJykgKyAnIiBwbGFjZWhvbGRlcj0idF9LQV9BIiBzdHlsZT0id2lkdGg6MTAwJTtmb250LWZh
bWlseTptb25vc3BhY2U7Zm9udC1zaXplOjExcHgiPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+
PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJtdC1pbnB1dCIgZGF0YS1mZWxkPSJuYW1lIiB2YWx1
ZT0iJyArIGVzY2FwZUF0dHIodC5uYW1lIHx8ICcnKSArICciIHBsYWNlaG9sZGVyPSJ6LkIuIEth
bWVuLUEiIHN0eWxlPSJ3aWR0aDoxMDAlIj48L3RkPicgKwogICAgICAgICAgICAnPHRkPicgKyBk
cm9wZG93bignbXQtaW5wdXQnLCAnc3RhbmRvcnQnLCBzdGFuZG9ydGUsIHQuc3RhbmRvcnQgfHwg
JycpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+JyArIGRyb3Bkb3duKCdtdC1pbnB1dCcs
ICdncnVwcGUnLCAgIGdydXBwZW4sICAgdC5ncnVwcGUgICB8fCAnJykgKyAnPC90ZD4nICsKICAg
ICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPjxzcGFuIGNsYXNzPSJtdC1w
ZXJzb25lbi16YWhsIiBkYXRhLWlkeD0iJyArIGkgKyAnIj4nICsgcGVyc29uZW5BbnphaGwgKyAn
PC9zcGFuPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9IndoaXRlLXNwYWNlOm5vd3Jh
cCI+JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWts
ZWluIiBkYXRhLWFrdGlvbj0ibXQtcGVyc29uZW4iIGRhdGEtaWR4PSInICsgaSArICciIHRpdGxl
PSJQZXJzb25lbiB6dXdlaXNlbiI+UGVyc29uZW7igKY8L2J1dHRvbj4gJyArCiAgICAgICAgICAg
ICAgICAoaSA+IDAgICAgICAgICAgICAgID8gJzxidXR0b24gY2xhc3M9ImJ0biBidG4tc2VrIGJ0
bi1rbGVpbiIgZGF0YS1ha3Rpb249Im10LXVwIiBkYXRhLWlkeD0iJyArIGkgKyAnIiB0aXRsZT0i
SG9laGVyIj7ihpE8L2J1dHRvbj4nIDogJycpICsKICAgICAgICAgICAgICAgIChpIDwgbGlzdGUu
bGVuZ3RoLTEgPyAnIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiIgZGF0YS1h
a3Rpb249Im10LWRvd24iIGRhdGEtaWR4PSInICsgaSArICciIHRpdGxlPSJUaWVmZXIiPuKGkzwv
YnV0dG9uPicgOiAnJykgKwogICAgICAgICAgICAgICAgJyA8YnV0dG9uIGNsYXNzPSJidG4gYnRu
LWdlZmFociBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJtdC1sb2VzY2hlbiIgZGF0YS1pZHg9Iicg
KyBpICsgJyIgdGl0bGU9IkxvZXNjaGVuIj7DlzwvYnV0dG9uPicgKwogICAgICAgICAgICAnPC90
ZD4nICsKICAgICAgICAgICAgJzwvdHI+JzsKICAgIH0pOwogICAgLy8gRW1wdHktU3RhdGUgd2ly
ZCBhbSBGdW5rdGlvbnMtQW5mYW5nIGJlaGFuZGVsdCAoZnJ1ZWhlciBSZXR1cm4pOwogICAgLy8g
ZGllc2VyIHRvdGUgRmFsbGJhY2sgaXN0IG1pdCBQaGFzZSA1IG9ic29sZXQgZ2V3b3JkZW4uCiAg
ICB0Ym9keS5pbm5lckhUTUwgPSBodG1sOwp9CgovLyBMaWVzdCBkaWUgRWluZ2FiZWZlbGRlciBh
dXMgZGVyIE1pa3JvdGVhbXMtVGFiZWxsZS4gUGVyc29uZW4tTGlzdGVuCi8vIHBmbGVndCBkaWUg
RnVua3Rpb24gbWlrcm90ZWFtUGVyc29uZW5EaWFsb2cgc2VwYXJhdCBpbiBaLmFkbWluLm1pa3Jv
dGVhbXMsCi8vIGhpZXIgZGVzaGFsYiBudXIgU3RhbW0tRmVsZGVyLgpmdW5jdGlvbiBtaWtyb3Rl
YW1zQXVzVGFiZWxsZUxlc2VuKCkgewogICAgdmFyIGxpc3RlID0gKFouYWRtaW4ubWlrcm90ZWFt
cyB8fCBbXSkuc2xpY2UoKTsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNtaWtyb3Rl
YW1zLXRib2R5IHRyW2RhdGEtaWR4XScpLmZvckVhY2goZnVuY3Rpb24odHIpIHsKICAgICAgICB2
YXIgaWR4ID0gcGFyc2VJbnQodHIuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpLCAxMCk7CiAgICAg
ICAgaWYgKGlzTmFOKGlkeCkgfHwgIWxpc3RlW2lkeF0pIHJldHVybjsKICAgICAgICB0ci5xdWVy
eVNlbGVjdG9yQWxsKCcubXQtaW5wdXQnKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAg
ICAgIHZhciBmZWxkID0gZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWZlbGQnKSB8fCBlbC5nZXRBdHRy
aWJ1dGUoJ2RhdGEtbmFtZScpOwogICAgICAgICAgICBpZiAoIWZlbGQpIHJldHVybjsKICAgICAg
ICAgICAgbGlzdGVbaWR4XVtmZWxkXSA9IGVsLnZhbHVlOwogICAgICAgIH0pOwogICAgfSk7CiAg
ICByZXR1cm4gbGlzdGU7Cn0KCi8vIFBlcnNvbmVuLUF1c3dhaGwtTW9kYWwgZnVlciBlaW4gTWlr
cm90ZWFtLgpmdW5jdGlvbiBtaWtyb3RlYW1QZXJzb25lbkRpYWxvZyhpZHgpIHsKICAgIFouYWRt
aW4ubWlrcm90ZWFtcyA9IG1pa3JvdGVhbXNBdXNUYWJlbGxlTGVzZW4oKTsKICAgIHZhciB0ID0g
Wi5hZG1pbi5taWtyb3RlYW1zW2lkeF07CiAgICBpZiAoIXQpIHJldHVybjsKICAgIHZhciBwZXJz
b25lbiA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbHRlcihmdW5jdGlvbihwKSB7IHJl
dHVybiBwLmFrdGl2OyB9KQogICAgICAgIC5zbGljZSgpLnNvcnQoZnVuY3Rpb24oYSwgYikgeyBy
ZXR1cm4gKChhLm5hbWUgfHwgJycpICsgKGEudm9ybmFtZSB8fCAnJykpLmxvY2FsZUNvbXBhcmUo
KGIubmFtZSB8fCAnJykgKyAoYi52b3JuYW1lIHx8ICcnKSwgJ2RlJyk7IH0pOwogICAgdmFyIGFr
dGl2ZSA9IG5ldyBTZXQoKHQucGVyc29uSWRzIHx8IFtdKS5tYXAoZnVuY3Rpb24oeCkgeyByZXR1
cm4gTnVtYmVyKHgpOyB9KSk7CgogICAgdmFyIGh0bWwgPSAnPHAgY2xhc3M9ImV2bS1iZXNjaHJl
aWJ1bmciPlBlcnNvbmVuLCBkaWUgenVtIE1pa3JvdGVhbSDigJ48Yj4nICsgZXNjYXBlSFRNTCh0
Lm5hbWUgfHwgdC5pZCB8fCAnKG9obmUgTmFtZSknKSArICc8L2I+IiBnZWhvZXJlbi4gQXVzd2Fo
bCBnaWx0IGZ1ZXIgU3RhdGlzdGlrIChNaWtyb3RlYW0tSGVhdG1hcCArIFRhZ2VzLUFudGVpbGUp
LjwvcD4nICsKICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDo4cHg7bWFyZ2lu
LWJvdHRvbTo4cHgiPicgKwogICAgICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNz
PSJidG4gYnRuLWtsZWluIiBpZD0ibXQtcGVycy1hbGxlIj5BbGxlIG1hcmtpZXJlbjwvYnV0dG9u
PicgKwogICAgICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWts
ZWluIiBpZD0ibXQtcGVycy1rZWluZSI+QXVzd2FobCBsZWVyZW48L2J1dHRvbj4nICsKICAgICAg
ICAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgc3R5bGU9Im1heC1oZWlnaHQ6MzgwcHg7b3ZlcmZs
b3c6YXV0bztib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Ym9yZGVyLXJhZGl1
czo0cHg7cGFkZGluZzo4cHgiPic7CiAgICBwZXJzb25lbi5mb3JFYWNoKGZ1bmN0aW9uKHApIHsK
ICAgICAgICB2YXIgbGFiZWwgPSAoKHAudm9ybmFtZSA/IHAudm9ybmFtZSArICcgJyA6ICcnKSAr
IChwLm5hbWUgfHwgJycpKS50cmltKCkgKyAnIMK3ICcgKyAocC5ncnVwcGUgfHwgJz8nKSArICcg
wrcgJyArIChwLm9lIHx8ICc/Jyk7CiAgICAgICAgaHRtbCArPSAnPGxhYmVsIHN0eWxlPSJkaXNw
bGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Y3Vyc29yOnBvaW50ZXI7cGFkZGlu
ZzoycHggNHB4Ij4nICsKICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9
Im10LXBlcnMtY2hrIiBkYXRhLWlkPSInICsgcC5pZCArICciJyArIChha3RpdmUuaGFzKE51bWJl
cihwLmlkKSkgPyAnIGNoZWNrZWQnIDogJycpICsgJz4nICsKICAgICAgICAgICAgJzxzcGFuPicg
KyBlc2NhcGVIVE1MKGxhYmVsKSArICc8L3NwYW4+JyArCiAgICAgICAgJzwvbGFiZWw+JzsKICAg
IH0pOwogICAgaHRtbCArPSAnPC9kaXY+JzsKCiAgICB2YXIgZnVzcyA9ICc8YnV0dG9uIGNsYXNz
PSJidG4iIGlkPSJtdC1wZXJzLWFiYnIiIHR5cGU9ImJ1dHRvbiI+QWJicmVjaGVuPC9idXR0b24+
JyArCiAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIGlkPSJk
bGctc3BlaWNoZXJuIiB0eXBlPSJidXR0b24iPsOcYmVybmVobWVuPC9idXR0b24+JzsKICAgIG1v
ZGFsWmVpZ2VuKCdQZXJzb25lbiDigJQgJyArICh0Lm5hbWUgfHwgdC5pZCksIGh0bWwsIGZ1c3Ms
IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBpZHMgPSBbXTsKICAgICAgICBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCcubXQtcGVycy1jaGsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsKICAgICAg
ICAgICAgaWYgKGMuY2hlY2tlZCkgaWRzLnB1c2gocGFyc2VJbnQoYy5nZXRBdHRyaWJ1dGUoJ2Rh
dGEtaWQnKSwgMTApKTsKICAgICAgICB9KTsKICAgICAgICB0LnBlcnNvbklkcyA9IGlkczsKICAg
ICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgbWlrcm90ZWFtc1JlbmRlcm4oKTsK
ICAgICAgICB0b2FzdChpZHMubGVuZ3RoICsgJyBQZXJzb25lbiB6dWdld2llc2VuIOKAlCDigJ5T
cGVpY2hlcm4iIGRydWVja2VuLCB1bSBkYXVlcmhhZnQgenUgc2ljaGVybicsICdpbmZvJyk7CiAg
ICB9KTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtdC1wZXJzLWFiYnInKS5hZGRFdmVu
dExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBtb2RhbFNjaGxpZXNzZW4oKTsgfSk7CiAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXQtcGVycy1hbGxlJykuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCcubXQtcGVycy1jaGsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsgYy5jaGVja2VkID0gdHJ1ZTsg
fSk7CiAgICAgICAgWi5tb2RhbERpcnR5ID0gdHJ1ZTsKICAgIH0pOwogICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ210LXBlcnMta2VpbmUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1
bmN0aW9uKCkgewogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tdC1wZXJzLWNo
aycpLmZvckVhY2goZnVuY3Rpb24oYykgeyBjLmNoZWNrZWQgPSBmYWxzZTsgfSk7CiAgICAgICAg
Wi5tb2RhbERpcnR5ID0gdHJ1ZTsKICAgIH0pOwp9CgpmdW5jdGlvbiBsaXN0ZW5EaWVuc3RncmFk
ZVJlbmRlcm4oKSB7CiAgICB2YXIgdGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGll
bnN0Z3JhZGUtdGJvZHknKTsKICAgIGlmICghdGJvZHkpIHJldHVybjsKICAgIHZhciBsaXN0ZSA9
IChaLmFkbWluLmRpZW5zdGdyYWRlICYmIFouYWRtaW4uZGllbnN0Z3JhZGUubGVuZ3RoKQogICAg
ICAgID8gWi5hZG1pbi5kaWVuc3RncmFkZSA6IERJRU5TVEdSQURFX0RFRkFVTFQuc2xpY2UoKTsK
ICAgIHZhciBodG1sID0gJyc7CiAgICBsaXN0ZS5mb3JFYWNoKGZ1bmN0aW9uKGQsIGkpIHsKICAg
ICAgICBodG1sICs9ICc8dHI+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246
Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtd2VpZ2h0OjcwMCI+JyArIChpICsg
MSkgKyAnPC90ZD4nICsKICAgICAgICAgICAgJzx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9
ImRncmFkLWlucHV0IiBkYXRhLWlkeD0iJyArIGkgKyAnIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIo
ZCkgKyAnIiBwbGFjZWhvbGRlcj0iei5CLiBQSEsqIiBzdHlsZT0id2lkdGg6MTAwJSI+PC90ZD4n
ICsKICAgICAgICAgICAgJzx0ZCBzdHlsZT0id2hpdGUtc3BhY2U6bm93cmFwIj4nICsKICAgICAg
ICAgICAgICAgIChpID4gMCAgICAgICAgICAgICAgPyAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1z
ZWsgYnRuLWtsZWluIiBkYXRhLWFrdGlvbj0iZGdyYWQtdXAiIGRhdGEtaWR4PSInICsgaSArICci
IHRpdGxlPSJFaW5lIFBvc2l0aW9uIGhvZWhlciI+4oaRPC9idXR0b24+JyA6ICcnKSArCiAgICAg
ICAgICAgICAgICAoaSA8IGxpc3RlLmxlbmd0aC0xID8gJyA8YnV0dG9uIGNsYXNzPSJidG4gYnRu
LXNlayBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJkZ3JhZC1kb3duIiBkYXRhLWlkeD0iJyArIGkg
KyAnIiB0aXRsZT0iRWluZSBQb3NpdGlvbiB0aWVmZXIiPuKGkzwvYnV0dG9uPicgOiAnJykgKwog
ICAgICAgICAgICAgICAgJyA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdlZmFociBidG4ta2xlaW4i
IGRhdGEtYWt0aW9uPSJkZ3JhZC1sb2VzY2hlbiIgZGF0YS1pZHg9IicgKyBpICsgJyIgdGl0bGU9
IkxvZXNjaGVuIj7DlzwvYnV0dG9uPicgKwogICAgICAgICAgICAnPC90ZD4nICsKICAgICAgICAg
ICAgJzwvdHI+JzsKICAgIH0pOwogICAgdGJvZHkuaW5uZXJIVE1MID0gaHRtbDsKfQoKZnVuY3Rp
b24gbGlzdGVuRnVua3Rpb25lblJlbmRlcm4oKSB7CiAgICB2YXIgdGJvZHkgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZnVua3Rpb25lbi10Ym9keScpOwogICAgaWYgKCF0Ym9keSkgcmV0dXJu
OwogICAgdmFyIGxpc3RlID0gKFouYWRtaW4uZnVua3Rpb25lbiAmJiBaLmFkbWluLmZ1bmt0aW9u
ZW4ubGVuZ3RoKQogICAgICAgID8gWi5hZG1pbi5mdW5rdGlvbmVuIDogRlVOS1RJT05FTl9ERUZB
VUxULnNsaWNlKCk7CiAgICB2YXIgaHRtbCA9ICcnOwogICAgbGlzdGUuZm9yRWFjaChmdW5jdGlv
bihmLCBpKSB7CiAgICAgICAgdmFyIGNvZGUgPSBmLmNvZGUgfHwgJyc7CiAgICAgICAgdmFyIHJh
bmcgPSAoZi5yYW5nICE9IG51bGwpID8gZi5yYW5nIDogOTk7CiAgICAgICAgdmFyIGluUGwgPSBm
LmluUGxhbnVuZyAhPT0gZmFsc2U7ICAvLyBEZWZhdWx0OiBzaWNodGJhcgogICAgICAgIGh0bWwg
Kz0gJzx0cj4nICsKICAgICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Y29s
b3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC13ZWlnaHQ6NzAwIj4nICsgKGkgKyAxKSArICc8L3Rk
PicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZnVuay1pbnB1
dC1jb2RlIiBkYXRhLWlkeD0iJyArIGkgKyAnIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoY29kZSkg
KyAnIiBwbGFjZWhvbGRlcj0iei5CLiBER0wiIHN0eWxlPSJ3aWR0aDoxMDAlIj48L3RkPicgKwog
ICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJmdW5rLWlucHV0LXJh
bmciIGRhdGEtaWR4PSInICsgaSArICciIHZhbHVlPSInICsgcmFuZyArICciIG1pbj0iLTkiIG1h
eD0iOTkiIHN0eWxlPSJ3aWR0aDo2MHB4O3RleHQtYWxpZ246cmlnaHQiPjwvdGQ+JyArCiAgICAg
ICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj48aW5wdXQgdHlwZT0iY2hlY2ti
b3giIGNsYXNzPSJmdW5rLWlucHV0LWlucGxhbnVuZyIgZGF0YS1pZHg9IicgKyBpICsgJyInICsg
KGluUGwgPyAnIGNoZWNrZWQnIDogJycpICsgJyB0aXRsZT0iV2VubiBkZWFrdGl2aWVydDogUGVy
c29uZW4gbWl0IGRpZXNlciBGdW5rdGlvbiBlcnNjaGVpbmVuIE5JQ0hUIGluIFBsYW51bmcvV29j
aGVucGxhbi9QZXJzLiBQbGFuIj48L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ3aGl0
ZS1zcGFjZTpub3dyYXAiPicgKwogICAgICAgICAgICAgICAgKGkgPiAwICAgICAgICAgICAgICA/
ICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJmdW5r
LXVwIiBkYXRhLWlkeD0iJyArIGkgKyAnIiB0aXRsZT0iRWluZSBQb3NpdGlvbiBob2VoZXIiPuKG
kTwvYnV0dG9uPicgOiAnJykgKwogICAgICAgICAgICAgICAgKGkgPCBsaXN0ZS5sZW5ndGgtMSA/
ICcgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBkYXRhLWFrdGlvbj0iZnVu
ay1kb3duIiBkYXRhLWlkeD0iJyArIGkgKyAnIiB0aXRsZT0iRWluZSBQb3NpdGlvbiB0aWVmZXIi
PuKGkzwvYnV0dG9uPicgOiAnJykgKwogICAgICAgICAgICAgICAgJyA8YnV0dG9uIGNsYXNzPSJi
dG4gYnRuLWdlZmFociBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJmdW5rLWxvZXNjaGVuIiBkYXRh
LWlkeD0iJyArIGkgKyAnIiB0aXRsZT0iTG9lc2NoZW4iPsOXPC9idXR0b24+JyArCiAgICAgICAg
ICAgICc8L3RkPicgKwogICAgICAgICAgICAnPC90cj4nOwogICAgfSk7CiAgICB0Ym9keS5pbm5l
ckhUTUwgPSBodG1sOwp9CgovLyBMaWVzdCBkaWUgYWt0dWVsbGVuIFdlcnRlIGF1cyBkZXIgRGll
bnN0Z3JhZGUtVGFiZWxsZSAodm9yIGRlbSBTcGVpY2hlcm4pLgpmdW5jdGlvbiBkaWVuc3RncmFk
ZUF1c1RhYmVsbGVMZXNlbigpIHsKICAgIHZhciBsaXN0ZSA9IFtdOwogICAgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnLmRncmFkLWlucHV0JykuZm9yRWFjaChmdW5jdGlvbihpbnApIHsKICAg
ICAgICB2YXIgdiA9IChpbnAudmFsdWUgfHwgJycpLnRyaW0oKTsKICAgICAgICBpZiAodikgbGlz
dGUucHVzaCh2KTsKICAgIH0pOwogICAgcmV0dXJuIGxpc3RlOwp9CgovLyBMaWVzdCBkaWUgYWt0
dWVsbGVuIFdlcnRlIGF1cyBkZXIgRnVua3Rpb25lbi1UYWJlbGxlICh2b3IgZGVtIFNwZWljaGVy
bikuCmZ1bmN0aW9uIGZ1bmt0aW9uZW5BdXNUYWJlbGxlTGVzZW4oKSB7CiAgICB2YXIgbWFwID0g
e307CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZnVuay1pbnB1dC1jb2RlJykuZm9y
RWFjaChmdW5jdGlvbihpbnApIHsKICAgICAgICB2YXIgaWR4ID0gaW5wLmdldEF0dHJpYnV0ZSgn
ZGF0YS1pZHgnKTsKICAgICAgICB2YXIgdiA9IChpbnAudmFsdWUgfHwgJycpLnRyaW0oKTsKICAg
ICAgICBpZiAoIW1hcFtpZHhdKSBtYXBbaWR4XSA9IHt9OwogICAgICAgIG1hcFtpZHhdLmNvZGUg
PSB2OwogICAgfSk7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZnVuay1pbnB1dC1y
YW5nJykuZm9yRWFjaChmdW5jdGlvbihpbnApIHsKICAgICAgICB2YXIgaWR4ID0gaW5wLmdldEF0
dHJpYnV0ZSgnZGF0YS1pZHgnKTsKICAgICAgICB2YXIgciA9IHBhcnNlSW50KGlucC52YWx1ZSwg
MTApOwogICAgICAgIGlmICghbWFwW2lkeF0pIG1hcFtpZHhdID0ge307CiAgICAgICAgbWFwW2lk
eF0ucmFuZyA9IGlzTmFOKHIpID8gOTkgOiByOwogICAgfSk7CiAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCcuZnVuay1pbnB1dC1pbnBsYW51bmcnKS5mb3JFYWNoKGZ1bmN0aW9uKGlucCkg
ewogICAgICAgIHZhciBpZHggPSBpbnAuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpOwogICAgICAg
IGlmICghbWFwW2lkeF0pIG1hcFtpZHhdID0ge307CiAgICAgICAgbWFwW2lkeF0uaW5QbGFudW5n
ID0gISFpbnAuY2hlY2tlZDsKICAgIH0pOwogICAgdmFyIGxpc3RlID0gW107CiAgICBPYmplY3Qu
a2V5cyhtYXApLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gcGFyc2VJbnQoYSkgLSBwYXJz
ZUludChiKTsgfSkuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICAgICAgaWYgKCFtYXBba10uY29k
ZSkgcmV0dXJuOwogICAgICAgIHZhciBlID0geyBjb2RlOiBtYXBba10uY29kZSwgcmFuZzogbWFw
W2tdLnJhbmcgfTsKICAgICAgICAvLyBpblBsYW51bmcgbnVyIHNwZWljaGVybiB3ZW5uIGV4cGxp
eml0IGZhbHNlIOKAlCBEZWZhdWx0IGlzdCB0cnVlLAogICAgICAgIC8vIG11c3MgZGFoZXIgbmlj
aHQgaW4gYWRtaW4uanNvbiBzdGVoZW4gKGtsZWluZXJlciBEYXRlbnNhdHopLgogICAgICAgIGlm
IChtYXBba10uaW5QbGFudW5nID09PSBmYWxzZSkgZS5pblBsYW51bmcgPSBmYWxzZTsKICAgICAg
ICBsaXN0ZS5wdXNoKGUpOwogICAgfSk7CiAgICByZXR1cm4gbGlzdGU7Cn0KCi8vID09PT09IEV4
cG9ydHMgPT09PT0KLy8KLy8gS29uc3RhbnRlbgpleHBvcnQgeyBCRURJRU5VTkdfREVGQVVMVCB9
OwovLyBJTVBSRVNTVU1fREVGQVVMVCB3aXJkIHZpYSAiZXhwb3J0IHZhciIgb2JlbiBzY2hvbiBl
eHBvcnRpZXJ0LAovLyBhYmVyIHp1ciBLb25zaXN0ZW56IGF1Y2ggaGllciBhdWZnZWZ1ZWhydCDi
gJQgZGVyIG5hbWVkIGV4cG9ydAovLyBtYXRjaGVkLCB3YXMgYXBwLmpzIGltcG9ydGllcnQuCgov
LyBGdW5rdGlvbmVuIOKAlCBhbGxlIFRvcC1MZXZlbC1GdW5rdGlvbmVuIGF1cyBkZW0gQWRtaW4t
QmxvY2suCmV4cG9ydCB7CiAgICBhZG1pblJlbmRlcm4sCiAgICBzaWNodGJhcmtlaXRXZXJ0LCBz
aWNodGJhcmtlaXRSZW5kZXJuLAogICAgYmFja3VwVGFiZWxsZUxhZGVuLCBiYWNrdXBHcm9lc3Nl
Rm9ybWF0LCBiYWNrdXBaZWl0cHVua3RGb3JtYXQsIGJhY2t1cFRhYmVsbGVSZW5kZXJuLAogICAg
Z3J1cHBlblBlcnNvbmVuWmFlaGxlbiwgZ3J1cHBlblRhYmVsbGVSZW5kZXJuLAogICAgaHRtbEF1
c0ZlbGQsCiAgICBpbmZvSGlsZmVSZW5kZXJuLCBpbmZvSGlsZmVBdXNGZWxkZXJuTGVzZW4sCiAg
ICBiZXosIGJlemVpY2hudW5nZW5BbndlbmRlbiwgYmV6ZWljaG51bmdlblJlbmRlcm4sIGJlemVp
Y2hudW5nZW5BdXNUYWJlbGxlTGVzZW4sCiAgICBsaXN0ZW5SZW5kZXJuLCBsaXN0ZW5EaWVuc3Rn
cmFkZVJlbmRlcm4sIGxpc3RlbkZ1bmt0aW9uZW5SZW5kZXJuLAogICAgZGllbnN0Z3JhZGVBdXNU
YWJlbGxlTGVzZW4sIGZ1bmt0aW9uZW5BdXNUYWJlbGxlTGVzZW4sCiAgICBtaWtyb3RlYW1zUmVu
ZGVybiwgbWlrcm90ZWFtc0F1c1RhYmVsbGVMZXNlbiwgbWlrcm90ZWFtUGVyc29uZW5EaWFsb2cs
CiAgICBlaW5zdGVsbHVuZ2VuUmVuZGVybiwKICAgIHN0YW5kb3J0ZVJlbmRlcm4sIHN0YW5kb3J0
ZUF1c1RhYmVsbGVMZXNlbiwgcmh5dGhtdXNHZW5lcmF0b3JEaWFsb2csCiAgICBhZG1pbkluZm9J
bml0LAogICAgZmVhdHVyZXNSZW5kZXJuLCBmZWF0dXJlSXN0QWt0aXYsCiAgICBkaXJ0eVRyYWNr
ZXJFaW5yaWNodGVuCn07Cg==
### FILE: js/admin_codes.js | 26055
Ly8gPT09IGFkbWluX2NvZGVzLmpzID09PQovLyBQaGFzZSA5LUIgQzI6IGF1cyBhZG1pbi5qcyBl
eHRyYWhpZXJ0LiBWZXJ3YWx0ZXQgZGllIFNjaGljaHRjb2RlLQovLyBWb3JzY2hhdSB1bmQgZGFz
IEVkaXQtL1RvZ2dsZS0vRHJhZy1Nb2RhbDoKLy8gICAtIGlzdENvZGVBa3RpdiAvIGNvZGVWZXJ3
ZW5kdW5nWmFlaGxlbiAvIHNjaGljaHRjb2RlS2F0ZWdvcmllCi8vICAgICAoa2xlaW5lIEhlbHBl
cikKLy8gICAtIHNjaGljaHRjb2RlVm9yc2NoYXVSZW5kZXJuIChIYXVwdGFuc2ljaHQgaW0gQWRt
aW4tVGFiLAovLyAgICAgZHJlaSBTb3J0aWVyLU1vZGkgKyBmbGFjaC9kcmFnKQovLyAgIC0gc2No
aWNodGNvZGVEcmFnVmVyZHJhaHRlbiAoRHJhZyZEcm9wIG51ciBpbSBmbGFjaC1Nb2R1cykKLy8g
ICAtIHNjaGljaHRjb2RlVG9nZ2xlQWt0aXYgLyBzY2hpY2h0Y29kZUxpc3RlU3BlaWNoZXJuIChE
ZWFrdGl2aWVyZW4KLy8gICAgIG1pdCBPcHRpb25lbjogc3RpbGxsZWdlbiAvIGVyc2V0emVuIC8g
bGVlcmVuKQovLyAgIC0gc2NoaWNodGNvZGVFZGl0TW9kYWxaZWlnZW4gKE5ldSArIEJlYXJiZWl0
ZW4gKyBMb2VzY2hlbikKLy8KLy8gRXh0ZXJuZXIgS29uc3VtZW50OiBpbXBvcnRfZXhjZWwuanMg
aW1wb3J0aWVydCB3ZWl0ZXJoaW4gaXN0Q29kZUFrdGl2Ci8vIGF1cyAnLi9hZG1pbi5qcycgKFBh
c3MtVGhyb3VnaC1SZS1FeHBvcnQpOyBhYiBQaGFzZSA5LUIgQzUgZGFubiBkaXJla3QKLy8gYXVz
ICcuL2FkbWluX2NvZGVzLmpzJy4KCmltcG9ydCB7IFogfSBmcm9tICcuL2NvcmVfc3RhdGUuanMn
OwppbXBvcnQgeyBlc2NhcGVIVE1MLCBlc2NhcGVBdHRyIH0gZnJvbSAnLi9jb3JlX3V0aWwuanMn
OwppbXBvcnQgeyBhcGlQdXQgfSBmcm9tICcuL2NvcmVfYXBpLmpzJzsKaW1wb3J0IHsKdG9hc3Qs
IGJlc3RhZXRpZ2VuLAptb2RhbFplaWdlbiwgbW9kYWxTY2hsaWVzc2VuLApwZmxpY2h0ZmVsZEZl
aGxlcgp9IGZyb20gJy4vdWlfZGlhbG9nLmpzJzsKaW1wb3J0IHsgZGF0ZW5HcmlkUmVuZGVybiB9
IGZyb20gJy4vZ3JpZF9yZW5kZXIuanMnOwoKLy8gPT09PT0gQWRtaW46IFNjaGljaHRjb2RlLVZv
cnNjaGF1ID09PT09CgovLyBFaW4gU2NoaWNodGNvZGUgZ2lsdCBhbHMgYWt0aXYsIHNvbGFuZ2Ug
ZXIgbmljaHQgZXhwbGl6aXQgYXVmIGZhbHNlIHN0ZWh0Ci8vIChBYndhZXJ0c2tvbXBhdGliaWxp
dGFldDogYWx0ZSBEYXRlbiBvaG5lIGFrdGl2LUZsYWcgc2luZCBha3RpdikuCmV4cG9ydCBmdW5j
dGlvbiBpc3RDb2RlQWt0aXYoc2MpIHsgcmV0dXJuICFzYyB8fCBzYy5ha3RpdiAhPT0gZmFsc2U7
IH0KCi8vIFphZWhsdCBwcm8gQ29kZSwgd2llIG9mdCBlciBpbiBwbGFudW5nLmVpbnRyYWVnZSB2
b3Jrb21tdC4KLy8gR2lidCBlaW4gTWFwIHsgY29kZTogYW56YWhsIH0genVydWVjay4KZXhwb3J0
IGZ1bmN0aW9uIGNvZGVWZXJ3ZW5kdW5nWmFlaGxlbigpIHsKICAgIHZhciBtYXAgPSB7fTsKICAg
IHZhciBlID0gWi5wbGFudW5nICYmIFoucGxhbnVuZy5laW50cmFlZ2U7CiAgICBpZiAoIWUpIHJl
dHVybiBtYXA7CiAgICBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKICAgICAg
ICB2YXIgdGFnID0gZVtkXSB8fCB7fTsKICAgICAgICBPYmplY3Qua2V5cyh0YWcpLmZvckVhY2go
ZnVuY3Rpb24ocGlkKSB7CiAgICAgICAgICAgIHZhciBjID0gdGFnW3BpZF07CiAgICAgICAgICAg
IGlmIChjKSBtYXBbY10gPSAobWFwW2NdIHx8IDApICsgMTsKICAgICAgICB9KTsKICAgIH0pOwog
ICAgcmV0dXJuIG1hcDsKfQoKZXhwb3J0IGZ1bmN0aW9uIHNjaGljaHRjb2RlS2F0ZWdvcmllKGNv
ZGUpIHsKICAgIHZhciBjID0gY29kZSB8fCAnJzsKICAgIGlmICgvXkYtL2kudGVzdChjKSkgcmV0
dXJuIHsga2V5OiAnMS1mcnVlaCcsICBsYWJlbDogJ0Zyw7xoZGllbnN0JyB9OwogICAgaWYgKC9e
Uy0vaS50ZXN0KGMpKSByZXR1cm4geyBrZXk6ICcyLXNwYWV0JywgIGxhYmVsOiAnU3DDpHRkaWVu
c3QnIH07CiAgICBpZiAoL15OLS9pLnRlc3QoYykpIHJldHVybiB7IGtleTogJzMtbmFjaHQnLCAg
bGFiZWw6ICdOYWNodGRpZW5zdCcgfTsKICAgIGlmIChbJ3dmcicsJ2RmciddLmluZGV4T2YoYykg
Pj0gMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
eyBrZXk6ICc0LWZyZWknLCAgICAgbGFiZWw6ICdGcmVpJyB9OwogICAgaWYgKFsnVXJsJywnU1Un
XS5pbmRleE9mKGMpID49IDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7IGtleTogJzUtdXJsYXViJywgICBsYWJlbDogJ1VybGF1YicgfTsKICAg
IGlmIChbJ2tyJywnS3VyJywnRFUnLCdYWFgnXS5pbmRleE9mKGMpID49IDApICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBrZXk6ICc2LWF1c2ZhbGwnLCAgbGFiZWw6
ICdLcmFua2hlaXQgLyBBdXNmYWxsJyB9OwogICAgaWYgKFsnTEcnLCdTZW0nLCdFVE0nLCdBdUYn
LCdhbncnLCdhbncuJ10uaW5kZXhPZihjKSA+PSAwKSAgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7IGtleTogJzctZm9ydGJpbGQnLCBsYWJlbDogJ0ZvcnRiaWxkdW5nJyB9OwogICAgaWYgKFsn
QV8nLCdCXycsJ0NfJywnWicsJ1NEJywnQkFPJywnU0UnLCdFTVNBJywnOGEnLCdHVCcsJ2FiZycs
J0FaQScsJ2FidycsJ3NBQldCJ10uaW5kZXhPZihjKSA+PSAwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4geyBrZXk6ICc4LWVpbnNhdHonLCAgbGFiZWw6ICdEaWVuc3RlIC8gRWlu
c8OkdHplJyB9OwogICAgaWYgKFsnSE8nLCdUekYnLCdCVicsJ01EJ10uaW5kZXhPZihjKSA+PSAw
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGtleTogJzktc29u
ZGVyZm9ybScsIGxhYmVsOiAnU29uZGVyZm9ybWVuJyB9OwogICAgcmV0dXJuIHsga2V5OiAnOTkt
c29uc3RpZ2VzJywgbGFiZWw6ICdTb25zdGlnZXMnIH07Cn0KCmV4cG9ydCBmdW5jdGlvbiBzY2hp
Y2h0Y29kZVZvcnNjaGF1UmVuZGVybigpIHsKICAgIHZhciBsaXN0ZSA9IChaLmFkbWluLnNjaGlj
aHRjb2RlcyB8fCBbXSkuc2xpY2UoKTsKICAgIHZhciBjb250ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3NjaGljaHRjb2RlLXZvcnNjaGF1Jyk7CiAgICBpZiAoIWNvbnQpIHJldHVybjsKCiAg
ICB2YXIgdmVyd2VuZHVuZyA9IGNvZGVWZXJ3ZW5kdW5nWmFlaGxlbigpOwogICAgdmFyIGFrdGl2
QW56YWhsID0gbGlzdGUuZmlsdGVyKGlzdENvZGVBa3RpdikubGVuZ3RoOwogICAgdmFyIGluYWt0
aXZBbnphaGwgPSBsaXN0ZS5sZW5ndGggLSBha3RpdkFuemFobDsKCiAgICB2YXIgbW9kdXMgPSBs
b2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2MtZ3J1cHBlLW1vZHVzJykgfHwgJ2thdGVnb3JpZSc7CiAg
ICB2YXIgdG9vbGJhciA9ICc8ZGl2IGNsYXNzPSJzYy12b3JzY2hhdS10b29sYmFyIj4nICsKICAg
ICAgICAnPGxhYmVsIGZvcj0ic2MtbW9kdXMiPkdydXBwaWVydW5nOjwvbGFiZWw+JyArCiAgICAg
ICAgJzxzZWxlY3QgaWQ9InNjLW1vZHVzIj4nICsKICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9
ImthdGVnb3JpZSInICsgKG1vZHVzID09PSAna2F0ZWdvcmllJyA/ICcgc2VsZWN0ZWQnIDogJycp
ICsgJz5OYWNoIFNjaGljaHR0eXA8L29wdGlvbj4nICsKICAgICAgICAgICAgJzxvcHRpb24gdmFs
dWU9ImFscGhhIicgICAgICsgKG1vZHVzID09PSAnYWxwaGEnICAgICA/ICcgc2VsZWN0ZWQnIDog
JycpICsgJz5BbHBoYWJldGlzY2ggKENvZGUpPC9vcHRpb24+JyArCiAgICAgICAgICAgICc8b3B0
aW9uIHZhbHVlPSJiZXoiJyAgICAgICArIChtb2R1cyA9PT0gJ2JleicgICAgICAgPyAnIHNlbGVj
dGVkJyA6ICcnKSArICc+QWxwaGFiZXRpc2NoIChCZXplaWNobnVuZyk8L29wdGlvbj4nICsKICAg
ICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImZsYWNoIicgICAgICsgKG1vZHVzID09PSAnZmxhY2gn
ICAgICA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5LZWluZSBHcnVwcGllcnVuZzwvb3B0aW9uPicg
KwogICAgICAgICc8L3NlbGVjdD4nICsKICAgICAgICAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MXB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi1sZWZ0OmF1dG8iPicgKwogICAgICAg
ICAgICBha3RpdkFuemFobCArICcgYWt0aXYgwrcgJyArIGluYWt0aXZBbnphaGwgKyAnIGluYWt0
aXYgwrcgJyArIGxpc3RlLmxlbmd0aCArICcgZ2VzYW10JyArCiAgICAgICAgICAgIChtb2R1cyA9
PT0gJ2ZsYWNoJyA/ICcgwrcgPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLWZhcmJlLXByaW1hZXIp
Ij5EcmFnLVNvcnRpZXJ1bmcgYWt0aXY8L3NwYW4+JyA6ICcnKSArCiAgICAgICAgJzwvc3Bhbj4n
ICsKICAgICc8L2Rpdj4nOwoKICAgIGZ1bmN0aW9uIHRpbGUoc2MpIHsKICAgICAgICB2YXIgYWt0
aXYgPSBpc3RDb2RlQWt0aXYoc2MpOwogICAgICAgIHZhciBhbnphaGwgPSB2ZXJ3ZW5kdW5nW3Nj
LmNvZGVdIHx8IDA7CiAgICAgICAgdmFyIGRyYWcgPSBtb2R1cyA9PT0gJ2ZsYWNoJyA/ICcgZHJh
Z2dhYmxlPSJ0cnVlIicgOiAnJzsKICAgICAgICB2YXIgZHJhZ0NscyA9IG1vZHVzID09PSAnZmxh
Y2gnID8gJyBzYy1kcmFnJyA6ICcnOwogICAgICAgIHZhciBpbmFrdGl2Q2xzID0gYWt0aXYgPyAn
JyA6ICcgc2MtaW5ha3Rpdic7CiAgICAgICAgdmFyIGFuemFobENscyA9IGFuemFobCA+IDAgPyAn
c2MtYW56YWhsLWJhZGdlJyA6ICdzYy1hbnphaGwtYmFkZ2Ugc2MtYW56YWhsLW51bGwnOwogICAg
ICAgIHZhciB0b2dnbGVUaXRsZSA9IGFrdGl2ID8gJ0RlYWt0aXZpZXJlbiAobmljaHQgbWVociBm
w7xyIE5ldS1FaW5nYWJlIHp1bGFzc2VuKScgOiAnV2llZGVyIGFrdGl2aWVyZW4nOwogICAgICAg
IHZhciB0b2dnbGVTeW1ib2wgPSBha3RpdiA/ICfil48nIDogJ+KXiyc7CiAgICAgICAgdmFyIHRv
Z2dsZUNscyA9IGFrdGl2ID8gJ3NjLXRvZ2dsZSBzYy10b2dnbGUtYWt0aXYnIDogJ3NjLXRvZ2ds
ZSBzYy10b2dnbGUtaW5ha3Rpdic7CiAgICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJzY2hpY2h0
Y29kZS1rYXJ0ZScgKyBkcmFnQ2xzICsgaW5ha3RpdkNscyArICciIGRhdGEtY29kZT0iJyArIGVz
Y2FwZUF0dHIoc2MuY29kZSkgKyAnIicgKyBkcmFnICsKICAgICAgICAgICAgJyBzdHlsZT0iYmFj
a2dyb3VuZDp2YXIoLS1iZy1jYXJkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdo
dCk7cG9zaXRpb246cmVsYXRpdmUiPicgKwogICAgICAgICAgICAobW9kdXMgPT09ICdmbGFjaCcK
ICAgICAgICAgICAgICAgID8gJzxkaXYgY2xhc3M9InNjLWRyYWctaGFuZGxlIiB0aXRsZT0iWmll
aGVuIHp1bSBVbXNvcnRpZXJlbiI+JiM5Nzc2OzwvZGl2PicKICAgICAgICAgICAgICAgIDogJycp
ICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9InNjaGljaHRjb2RlLWZhcmJmZWxkIiBzdHlsZT0i
YmFja2dyb3VuZDonICsgZXNjYXBlQXR0cihzYy5oaW50ZXJncnVuZCB8fCAnIzg4OCcpICsgJztj
b2xvcjonICsgZXNjYXBlQXR0cihzYy5zY2hyaWZ0IHx8ICcjZmZmJykgKyAnIj4nICsgZXNjYXBl
SFRNTChzYy5jb2RlKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImZsZXg6
MTttaW4td2lkdGg6MCI+PHN0cm9uZz4nICsgZXNjYXBlSFRNTChzYy5jb2RlKSArICc8L3N0cm9u
Zz4nICsKICAgICAgICAgICAgICAgICcgPHNwYW4gY2xhc3M9IicgKyBhbnphaGxDbHMgKyAnIiB0
aXRsZT0iJyArIGFuemFobCArICcgbWFsIGluIGRlciBQbGFudW5nIHZlcndlbmRldCI+JyArIGFu
emFobCArICfDlzwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICc8YnI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KSI+JyArIGVzY2FwZUhUTUwo
c2MuYmV6ZWljaG51bmcgfHwgJycpICsgJzwvc3Bhbj48L2Rpdj4nICsKICAgICAgICAgICAgJzxi
dXR0b24gY2xhc3M9IicgKyB0b2dnbGVDbHMgKyAnIiBkYXRhLWFrdGlvbj0ic2NoaWNodGNvZGUt
dG9nZ2xlIiBkYXRhLWNvZGU9IicgKyBlc2NhcGVBdHRyKHNjLmNvZGUpICsgJyIgdGl0bGU9Iicg
KyBlc2NhcGVBdHRyKHRvZ2dsZVRpdGxlKSArICciPicgKyB0b2dnbGVTeW1ib2wgKyAnPC9idXR0
b24+JyArCiAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4g
YnRuLWljb24gYnRuLWJlYXJiZWl0ZW4gc2MtZWRpdC1idG4iIGRhdGEtYWt0aW9uPSJzY2hpY2h0
Y29kZS1iZWFyYmVpdGVuIiBkYXRhLWNvZGU9IicgKyBlc2NhcGVBdHRyKHNjLmNvZGUpICsgJyIg
dGl0bGU9IkJlYXJiZWl0ZW4iPjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPC9kaXY+JzsKICAg
IH0KCiAgICAvLyBTb3J0aWVyLUhlbGZlcjogYWt0aXZlIHZvciBpbmFrdGl2ZW47IGlubmVyaGFs
YiBnbGVpY2hlciBBa3Rpdml0YWV0CiAgICAvLyBuYWNoIGRlbSBnZXd1ZW5zY2h0ZW4gS3JpdGVy
aXVtIChBcnJheS1JbmRleCBiZWkgJ2ZsYWNoJywKICAgIC8vIENvZGUvQmV6ZWljaG51bmcgYmVp
IGRlbiBBbHBoYS1Nb2RpKS4gV2lyZCBudXIgbm9jaCBpbSAnZmxhY2gnLU1vZHVzCiAgICAvLyBi
ZW51dHp0IOKAlCBkaWUgYW5kZXJlbiBNb2RpIHJlbmRlcm4gQWt0aXZlICsgSW5ha3RpdmUgaW4g
c2VwYXJhdGUKICAgIC8vIFNla3Rpb25lbiwgZGFtaXQgIkV4dHJhLUF1c3dhaGwgdW50ZW4iIG9w
dGlzY2gga2xhciB3aXJkLgogICAgZnVuY3Rpb24gc29ydEFrdGl2WnVlcnN0KGFyciwgc2VrdW5k
YWVyKSB7CiAgICAgICAgdmFyIGlkeCA9IHt9OwogICAgICAgIGxpc3RlLmZvckVhY2goZnVuY3Rp
b24oc2MsIGkpIHsgaWR4W3NjLmNvZGVdID0gaTsgfSk7CiAgICAgICAgcmV0dXJuIGFyci5zbGlj
ZSgpLnNvcnQoZnVuY3Rpb24oYSwgYikgewogICAgICAgICAgICB2YXIgYWEgPSBpc3RDb2RlQWt0
aXYoYSkgPyAwIDogMTsKICAgICAgICAgICAgdmFyIGFiID0gaXN0Q29kZUFrdGl2KGIpID8gMCA6
IDE7CiAgICAgICAgICAgIGlmIChhYSAhPT0gYWIpIHJldHVybiBhYSAtIGFiOwogICAgICAgICAg
ICBpZiAoc2VrdW5kYWVyKSByZXR1cm4gc2VrdW5kYWVyKGEsIGIpOwogICAgICAgICAgICByZXR1
cm4gaWR4W2EuY29kZV0gLSBpZHhbYi5jb2RlXTsKICAgICAgICB9KTsKICAgIH0KCiAgICAvLyBF
aWdlbmUgU2VrdGlvbiBmdWVyIGluYWt0aXZlIENvZGVzIOKAlCB3aXJkIGluIGFsbGVuIE1vZGkg
KGF1c3NlcgogICAgLy8gJ2ZsYWNoJykgYW5zIEVuZGUgYW5nZWhhZW5ndCwgb3B0aXNjaCBhYmdl
c2V0enQuCiAgICBmdW5jdGlvbiBpbmFrdGl2QmxvY2soYXJyLCBzZWt1bmRhZXIpIHsKICAgICAg
ICBpZiAoIWFyci5sZW5ndGgpIHJldHVybiAnJzsKICAgICAgICB2YXIgc29ydGllcnQgPSBzZWt1
bmRhZXIgPyBhcnIuc2xpY2UoKS5zb3J0KHNla3VuZGFlcikgOiBhcnIuc2xpY2UoKTsKICAgICAg
ICByZXR1cm4gJzxkaXYgY2xhc3M9InNjLWdydXBwZSBzYy1ncnVwcGUtaW5ha3RpdiI+JyArCiAg
ICAgICAgICAgICc8ZGl2IGNsYXNzPSJzYy1ncnVwcGUtdGl0ZWwgc2MtZ3J1cHBlLXRpdGVsLWlu
YWt0aXYiPicgKwogICAgICAgICAgICAgICAgJ0luYWt0aXZlIENvZGVzIDxzcGFuIHN0eWxlPSJm
b250LXdlaWdodDo1MDAiPignICsgYXJyLmxlbmd0aCArICcpPC9zcGFuPicgKwogICAgICAgICAg
ICAgICAgJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVk
KTtmb250LXdlaWdodDo0MDA7bWFyZ2luLWxlZnQ6OHB4Ij7igJQgZXJzY2hlaW5lbiBuaWNodCBp
bSBQbGFudW5ncy1Ecm9wZG93biwgYmVzdGVoZW5kZSBFaW50csOkZ2UgYmxlaWJlbiBzaWNodGJh
cjwvc3Bhbj4nICsKICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFz
cz0ic2MtZ3J1cHBlLWxpc3RlIj4nICsgc29ydGllcnQubWFwKHRpbGUpLmpvaW4oJycpICsgJzwv
ZGl2PjwvZGl2Pic7CiAgICB9CgogICAgdmFyIGFrdGl2ZSA9IGxpc3RlLmZpbHRlcihpc3RDb2Rl
QWt0aXYpOwogICAgdmFyIGluYWt0aXZlID0gbGlzdGUuZmlsdGVyKGZ1bmN0aW9uKHNjKSB7IHJl
dHVybiAhaXN0Q29kZUFrdGl2KHNjKTsgfSk7CgogICAgdmFyIGJvZHkgPSAnJzsKICAgIGlmICht
b2R1cyA9PT0gJ2FscGhhJykgewogICAgICAgIHZhciBzb3J0QWxwaGEgPSBmdW5jdGlvbihhLGIp
eyByZXR1cm4gKGEuY29kZXx8JycpLmxvY2FsZUNvbXBhcmUoYi5jb2RlfHwnJywnZGUnKTsgfTsK
ICAgICAgICBib2R5ID0gJzxkaXYgY2xhc3M9InNjLWdydXBwZS1saXN0ZSI+JyArCiAgICAgICAg
ICAgIGFrdGl2ZS5zbGljZSgpLnNvcnQoc29ydEFscGhhKS5tYXAodGlsZSkuam9pbignJykgKyAn
PC9kaXY+JzsKICAgICAgICBib2R5ICs9IGluYWt0aXZCbG9jayhpbmFrdGl2ZSwgc29ydEFscGhh
KTsKICAgIH0gZWxzZSBpZiAobW9kdXMgPT09ICdiZXonKSB7CiAgICAgICAgdmFyIHNvcnRCZXog
PSBmdW5jdGlvbihhLGIpeyByZXR1cm4gKGEuYmV6ZWljaG51bmd8fCcnKS5sb2NhbGVDb21wYXJl
KGIuYmV6ZWljaG51bmd8fCcnLCdkZScpOyB9OwogICAgICAgIGJvZHkgPSAnPGRpdiBjbGFzcz0i
c2MtZ3J1cHBlLWxpc3RlIj4nICsKICAgICAgICAgICAgYWt0aXZlLnNsaWNlKCkuc29ydChzb3J0
QmV6KS5tYXAodGlsZSkuam9pbignJykgKyAnPC9kaXY+JzsKICAgICAgICBib2R5ICs9IGluYWt0
aXZCbG9jayhpbmFrdGl2ZSwgc29ydEJleik7CiAgICB9IGVsc2UgaWYgKG1vZHVzID09PSAnZmxh
Y2gnKSB7CiAgICAgICAgLy8gRHJhZy1Nb2R1czogQWt0aXZlICsgSW5ha3RpdmUgenVzYW1tZW4s
IGRhbWl0IFVzZXIgcGVyIERyYWcgamVkZQogICAgICAgIC8vIFJlaWhlbmZvbGdlIGJhdWVuIGth
bm4uCiAgICAgICAgYm9keSA9ICc8ZGl2IGNsYXNzPSJzYy1ncnVwcGUtbGlzdGUiIGlkPSJzYy1k
cmFnLWNvbnRhaW5lciI+JyArCiAgICAgICAgICAgIHNvcnRBa3Rpdlp1ZXJzdChsaXN0ZSkubWFw
KHRpbGUpLmpvaW4oJycpICsgJzwvZGl2Pic7CiAgICB9IGVsc2UgewogICAgICAgIHZhciBncnVw
cGVuID0ge307CiAgICAgICAgYWt0aXZlLmZvckVhY2goZnVuY3Rpb24oc2MpIHsKICAgICAgICAg
ICAgdmFyIGsgPSBzY2hpY2h0Y29kZUthdGVnb3JpZShzYy5jb2RlKTsKICAgICAgICAgICAgaWYg
KCFncnVwcGVuW2sua2V5XSkgZ3J1cHBlbltrLmtleV0gPSB7IGxhYmVsOiBrLmxhYmVsLCBpdGVt
czogW10gfTsKICAgICAgICAgICAgZ3J1cHBlbltrLmtleV0uaXRlbXMucHVzaChzYyk7CiAgICAg
ICAgfSk7CiAgICAgICAgdmFyIHNvcnRDb2RlID0gZnVuY3Rpb24oYSxiKXsgcmV0dXJuIChhLmNv
ZGV8fCcnKS5sb2NhbGVDb21wYXJlKGIuY29kZXx8JycsJ2RlJyk7IH07CiAgICAgICAgT2JqZWN0
LmtleXMoZ3J1cHBlbikuc29ydCgpLmZvckVhY2goZnVuY3Rpb24oaykgewogICAgICAgICAgICB2
YXIgZyA9IGdydXBwZW5ba107CiAgICAgICAgICAgIHZhciBzb3J0aWVydCA9IGcuaXRlbXMuc2xp
Y2UoKS5zb3J0KHNvcnRDb2RlKTsKICAgICAgICAgICAgYm9keSArPSAnPGRpdiBjbGFzcz0ic2Mt
Z3J1cHBlIj48ZGl2IGNsYXNzPSJzYy1ncnVwcGUtdGl0ZWwiPicgKyBlc2NhcGVIVE1MKGcubGFi
ZWwpICsgJyA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NTAwIj4oJyArIGcuaXRlbXMubGVuZ3Ro
ICsgJyk8L3NwYW4+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InNj
LWdydXBwZS1saXN0ZSI+JyArIHNvcnRpZXJ0Lm1hcCh0aWxlKS5qb2luKCcnKSArICc8L2Rpdj48
L2Rpdj4nOwogICAgICAgIH0pOwogICAgICAgIGJvZHkgKz0gaW5ha3RpdkJsb2NrKGluYWt0aXZl
LCBzb3J0Q29kZSk7CiAgICB9CgogICAgY29udC5pbm5lckhUTUwgPSB0b29sYmFyICsgYm9keTsK
ICAgIHZhciBzZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2MtbW9kdXMnKTsKICAgIGlm
IChzZWwpIHNlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAg
ICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2MtZ3J1cHBlLW1vZHVzJywgdGhpcy52YWx1ZSk7CiAg
ICAgICAgc2NoaWNodGNvZGVWb3JzY2hhdVJlbmRlcm4oKTsKICAgIH0pOwogICAgaWYgKG1vZHVz
ID09PSAnZmxhY2gnKSBzY2hpY2h0Y29kZURyYWdWZXJkcmFodGVuKCk7Cn0KCi8vIERyYWcmRHJv
cCBudXIgaW0gJ2ZsYWNoJy1Nb2R1czogcGVyc2lzdGllcnQgZGllIG5ldWUgUmVpaGVuZm9sZ2Ug
aW0KLy8gc2NoaWNodGNvZGVzW10tQXJyYXkuIERpZSBhbmRlcmVuIE1vZGkgc29ydGllcmVuIG5h
Y2ggZWlnZW5lbiBLcml0ZXJpZW4KLy8gdW5kIHd1ZXJkZW4gRHJhZy1SZWloZW5mb2xnZSBuaWNo
dCBzaWNodGJhciB3aWVkZXJnZWJlbi4KZXhwb3J0IGZ1bmN0aW9uIHNjaGljaHRjb2RlRHJhZ1Zl
cmRyYWh0ZW4oKSB7CiAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3NjLWRyYWctY29udGFpbmVyJyk7CiAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOwogICAgdmFy
IGRyYWdDb2RlID0gbnVsbDsKICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdkcmFnc3Rh
cnQnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIGNhcmQgPSBlLnRhcmdldC5jbG9zZXN0KCcu
c2NoaWNodGNvZGUta2FydGUnKTsKICAgICAgICBpZiAoIWNhcmQpIHJldHVybjsKICAgICAgICBk
cmFnQ29kZSA9IGNhcmQuZ2V0QXR0cmlidXRlKCdkYXRhLWNvZGUnKTsKICAgICAgICBjYXJkLmNs
YXNzTGlzdC5hZGQoJ3NjLWRyYWdnaW5nJyk7CiAgICAgICAgZS5kYXRhVHJhbnNmZXIuZWZmZWN0
QWxsb3dlZCA9ICdtb3ZlJzsKICAgICAgICB0cnkgeyBlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0
ZXh0L3BsYWluJywgZHJhZ0NvZGUpOyB9IGNhdGNoIChfKSB7fQogICAgfSk7CiAgICBjb250YWlu
ZXIuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2VuZCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIg
Y2FyZCA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5zY2hpY2h0Y29kZS1rYXJ0ZScpOwogICAgICAgIGlm
IChjYXJkKSBjYXJkLmNsYXNzTGlzdC5yZW1vdmUoJ3NjLWRyYWdnaW5nJyk7CiAgICAgICAgY29u
dGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zYy1kcm9wLWluZGljYXRvcicpLmZvckVhY2goZnVu
Y3Rpb24oYykgeyBjLmNsYXNzTGlzdC5yZW1vdmUoJ3NjLWRyb3AtaW5kaWNhdG9yJyk7IH0pOwog
ICAgfSk7CiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBmdW5jdGlv
bihlKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciBjYXJkID0gZS50
YXJnZXQuY2xvc2VzdCgnLnNjaGljaHRjb2RlLWthcnRlJyk7CiAgICAgICAgY29udGFpbmVyLnF1
ZXJ5U2VsZWN0b3JBbGwoJy5zYy1kcm9wLWluZGljYXRvcicpLmZvckVhY2goZnVuY3Rpb24oYykg
eyBjLmNsYXNzTGlzdC5yZW1vdmUoJ3NjLWRyb3AtaW5kaWNhdG9yJyk7IH0pOwogICAgICAgIGlm
IChjYXJkICYmIGNhcmQuZ2V0QXR0cmlidXRlKCdkYXRhLWNvZGUnKSAhPT0gZHJhZ0NvZGUpIHsK
ICAgICAgICAgICAgY2FyZC5jbGFzc0xpc3QuYWRkKCdzYy1kcm9wLWluZGljYXRvcicpOwogICAg
ICAgIH0KICAgIH0pOwogICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBmdW5j
dGlvbihlKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciB6aWVsID0g
ZS50YXJnZXQuY2xvc2VzdCgnLnNjaGljaHRjb2RlLWthcnRlJyk7CiAgICAgICAgaWYgKCF6aWVs
IHx8ICFkcmFnQ29kZSB8fCB6aWVsLmdldEF0dHJpYnV0ZSgnZGF0YS1jb2RlJykgPT09IGRyYWdD
b2RlKSByZXR1cm47CiAgICAgICAgdmFyIGxpc3RlID0gKFouYWRtaW4uc2NoaWNodGNvZGVzIHx8
IFtdKS5zbGljZSgpOwogICAgICAgIHZhciB2b25JZHggPSBsaXN0ZS5maW5kSW5kZXgoZnVuY3Rp
b24oYykgeyByZXR1cm4gYy5jb2RlID09PSBkcmFnQ29kZTsgfSk7CiAgICAgICAgdmFyIGJpc0lk
eCA9IGxpc3RlLmZpbmRJbmRleChmdW5jdGlvbihjKSB7IHJldHVybiBjLmNvZGUgPT09IHppZWwu
Z2V0QXR0cmlidXRlKCdkYXRhLWNvZGUnKTsgfSk7CiAgICAgICAgaWYgKHZvbklkeCA8IDAgfHwg
YmlzSWR4IDwgMCkgcmV0dXJuOwogICAgICAgIHZhciBtb3ZlZCA9IGxpc3RlLnNwbGljZSh2b25J
ZHgsIDEpWzBdOwogICAgICAgIGxpc3RlLnNwbGljZShiaXNJZHgsIDAsIG1vdmVkKTsKICAgICAg
ICBhcGlQdXQoJy9hcGkvYWRtaW4nLCBPYmplY3QuYXNzaWduKHt9LCBaLmFkbWluLCB7IHNjaGlj
aHRjb2RlczogbGlzdGUgfSkpLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIFouYWRtaW4u
c2NoaWNodGNvZGVzID0gbGlzdGU7CiAgICAgICAgICAgIHNjaGljaHRjb2RlVm9yc2NoYXVSZW5k
ZXJuKCk7CiAgICAgICAgICAgIHRvYXN0KCdSZWloZW5mb2xnZSBnZXNwZWljaGVydCcsICdlcmZv
bGcnKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBl
Lm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgZHJhZ0NvZGUgPSBudWxsOwogICAgfSk7
Cn0KCi8vIERlYWt0aXZpZXJlbiAvIEFrdGl2aWVyZW4gZWluZXMgU2NoaWNodGNvZGVzLiBCZWlt
IERlYWt0aXZpZXJlbiBlaW5lcwovLyBub2NoIHZlcndlbmRldGVuIENvZGVzIHdpcmQgZWluIE1v
ZGFsIGdlemVpZ3QgbWl0IE9wdGlvbmVuOgovLyAgKGEpIG51ciBzdGlsbGxlZ2VuIChiZXN0ZWhl
bmRlIEVpbnRyYWVnZSBiZWhhbHRlbiBkZW4gQ29kZSkKLy8gIChiKSBhbGxlIGJlc3RlaGVuZGVu
IEVpbnRyYWVnZSBkdXJjaCBlaW5lbiBhbmRlcmVuIGFrdGl2ZW4gQ29kZSBlcnNldHplbgovLyAg
KGMpIGFsbGUgYmVzdGVoZW5kZW4gRWludHJhZWdlIGxlZXJlbgovLyBCZWltIEFrdGl2aWVyZW4g
d2lyZCBkaXJla3QgdW1nZXNjaGFsdGV0IChrZWluZSBSdWVja2ZyYWdlIG5vZXRpZykuCmV4cG9y
dCBmdW5jdGlvbiBzY2hpY2h0Y29kZVRvZ2dsZUFrdGl2KGNvZGVLZXkpIHsKICAgIHZhciBsaXN0
ZSA9IChaLmFkbWluLnNjaGljaHRjb2RlcyB8fCBbXSkuc2xpY2UoKTsKICAgIHZhciBpZHggPSBs
aXN0ZS5maW5kSW5kZXgoZnVuY3Rpb24oYykgeyByZXR1cm4gYy5jb2RlID09PSBjb2RlS2V5OyB9
KTsKICAgIGlmIChpZHggPCAwKSByZXR1cm47CiAgICB2YXIgc2MgPSBsaXN0ZVtpZHhdOwogICAg
dmFyIHdhckFrdGl2ID0gaXN0Q29kZUFrdGl2KHNjKTsKCiAgICBpZiAoIXdhckFrdGl2KSB7CiAg
ICAgICAgLy8gQWt0aXZpZXJlbjogZGlyZWt0IHVtc2NoYWx0ZW4KICAgICAgICBsaXN0ZVtpZHhd
ID0gT2JqZWN0LmFzc2lnbih7fSwgc2MsIHsgYWt0aXY6IHRydWUgfSk7CiAgICAgICAgc2NoaWNo
dGNvZGVMaXN0ZVNwZWljaGVybihsaXN0ZSwgJ0NvZGUgIicgKyBzYy5jb2RlICsgJyIgYWt0aXZp
ZXJ0Jyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIFZvbiBha3RpdiAtPiBpbmFrdGl2
CiAgICB2YXIgdmVyd2VuZHVuZyA9IGNvZGVWZXJ3ZW5kdW5nWmFlaGxlbigpOwogICAgdmFyIGFu
emFobCA9IHZlcndlbmR1bmdbc2MuY29kZV0gfHwgMDsKICAgIGlmIChhbnphaGwgPT09IDApIHsK
ICAgICAgICBsaXN0ZVtpZHhdID0gT2JqZWN0LmFzc2lnbih7fSwgc2MsIHsgYWt0aXY6IGZhbHNl
IH0pOwogICAgICAgIHNjaGljaHRjb2RlTGlzdGVTcGVpY2hlcm4obGlzdGUsICdDb2RlICInICsg
c2MuY29kZSArICciIGRlYWt0aXZpZXJ0Jyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8v
IE1vZGFsIG1pdCBPcHRpb25lbgogICAgdmFyIGFrdGl2ZUNvZGVzID0gbGlzdGUuZmlsdGVyKGZ1
bmN0aW9uKGMpIHsgcmV0dXJuIGMuY29kZSAhPT0gc2MuY29kZSAmJiBpc3RDb2RlQWt0aXYoYyk7
IH0pOwogICAgYWt0aXZlQ29kZXMuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiAoYS5jb2Rl
IHx8ICcnKS5sb2NhbGVDb21wYXJlKGIuY29kZSB8fCAnJywgJ2RlJyk7IH0pOwogICAgdmFyIG9w
dGlvbnNIdG1sID0gYWt0aXZlQ29kZXMubWFwKGZ1bmN0aW9uKGMpIHsKICAgICAgICByZXR1cm4g
JzxvcHRpb24gdmFsdWU9IicgKyBlc2NhcGVBdHRyKGMuY29kZSkgKyAnIj4nICsgZXNjYXBlSFRN
TChjLmt1ZXJ6ZWwgfHwgYy5jb2RlKSArICcg4oCUICcgKyBlc2NhcGVIVE1MKGMuYmV6ZWljaG51
bmcgfHwgJycpICsgJzwvb3B0aW9uPic7CiAgICB9KS5qb2luKCcnKTsKCiAgICB2YXIga29lcnBl
ciA9ICc8cCBzdHlsZT0ibWFyZ2luOjAgMCAxMnB4IDAiPkRlciBDb2RlIDxiPicgKyBlc2NhcGVI
VE1MKHNjLmNvZGUpICsgJzwvYj4gKCcgKyBlc2NhcGVIVE1MKHNjLmJlemVpY2hudW5nIHx8ICcn
KSArICcpIGlzdCBpbiA8Yj4nICsgYW56YWhsICsgJzwvYj4gJyArCiAgICAgICAgKGFuemFobCA9
PT0gMSA/ICdFaW50cmFnJyA6ICdFaW50csOkZ2VuJykgKyAnIGRlciBQbGFudW5nIHZlcndlbmRl
dC4gV2FzIHNvbGwgZGFtaXQgZ2VzY2hlaGVuPzwvcD4nICsKICAgICAgICAnPGRpdiBzdHlsZT0i
ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDttYXJnaW4tdG9wOjZw
eCI+JyArCiAgICAgICAgICAgICc8bGFiZWwgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6OHB4O2Fs
aWduLWl0ZW1zOmZsZXgtc3RhcnQ7Y3Vyc29yOnBvaW50ZXIiPicgKwogICAgICAgICAgICAgICAg
JzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ic2MtZGVha3QtbW9kdXMiIHZhbHVlPSJudXItc3Rp
bGxsZWdlbiIgY2hlY2tlZCBzdHlsZT0ibWFyZ2luLXRvcDozcHgiPicgKwogICAgICAgICAgICAg
ICAgJzxzcGFuPjxiPk51ciBzdGlsbGxlZ2VuPC9iPiAmbWRhc2g7IGJlc3RlaGVuZGUgRWludHLD
pGdlIGJlaGFsdGVuIGRlbiBDb2RlLCBudXIgenVyIE5ldS1FaW5nYWJlIG5pY2h0IG1laHIgenVs
YXNzZW4uPC9zcGFuPicgKwogICAgICAgICAgICAnPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxs
YWJlbCBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDo4cHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtj
dXJzb3I6cG9pbnRlciI+JyArCiAgICAgICAgICAgICAgICAnPGlucHV0IHR5cGU9InJhZGlvIiBu
YW1lPSJzYy1kZWFrdC1tb2R1cyIgdmFsdWU9ImVyc2V0emVuIiBzdHlsZT0ibWFyZ2luLXRvcDoz
cHgiPicgKwogICAgICAgICAgICAgICAgJzxzcGFuPjxiPkR1cmNoIGFuZGVyZW4gYWt0aXZlbiBD
b2RlIGVyc2V0emVuPC9iPicgKwogICAgICAgICAgICAgICAgJzxicj48c2VsZWN0IGlkPSJzYy1l
cnNldHplbi1kdXJjaCIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJtYXJnaW4tdG9wOjRweDtt
YXgtd2lkdGg6NDAwcHgiICcgKyAoYWt0aXZlQ29kZXMubGVuZ3RoID8gJycgOiAnZGlzYWJsZWQn
KSArICc+JyArCiAgICAgICAgICAgICAgICAoYWt0aXZlQ29kZXMubGVuZ3RoID8gb3B0aW9uc0h0
bWwgOiAnPG9wdGlvbj7igJQga2VpbmUgYWt0aXZlbiBBbHRlcm5hdGl2ZW4gdm9yaGFuZGVuIOKA
lDwvb3B0aW9uPicpICsKICAgICAgICAgICAgICAgICc8L3NlbGVjdD48L3NwYW4+JyArCiAgICAg
ICAgICAgICc8L2xhYmVsPicgKwogICAgICAgICAgICAnPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmZs
ZXg7Z2FwOjhweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2N1cnNvcjpwb2ludGVyIj4nICsKICAg
ICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InNjLWRlYWt0LW1vZHVzIiB2
YWx1ZT0ibGVlcmVuIiBzdHlsZT0ibWFyZ2luLXRvcDozcHgiPicgKwogICAgICAgICAgICAgICAg
JzxzcGFuPjxiPkJlc3RlaGVuZGUgRWludHLDpGdlIGxlZXJlbjwvYj4gJm1kYXNoOyBhbGxlICcg
KyBhbnphaGwgKyAnIFplbGxlbiBtaXQg4oCeJyArIGVzY2FwZUhUTUwoc2MuY29kZSkgKyAnIiB3
ZXJkZW4gYXVmIDxlbT5sZWVyPC9lbT4gZ2VzZXR6dC48L3NwYW4+JyArCiAgICAgICAgICAgICc8
L2xhYmVsPicgKwogICAgICAgICc8L2Rpdj4nOwogICAgdmFyIGZ1c3MgPSAnPGJ1dHRvbiBjbGFz
cz0iYnRuIiBpZD0ic2MtZGVha3QtYWJicmVjaGVuIj5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAg
ICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2VmYWhyIiBpZD0ic2MtZGVha3Qt
b2siPkRlYWt0aXZpZXJlbjwvYnV0dG9uPic7CiAgICBtb2RhbFplaWdlbignQ29kZSDigJ4nICsg
c2MuY29kZSArICciIGRlYWt0aXZpZXJlbicsIGtvZXJwZXIsIGZ1c3MsIG51bGwpOwogICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjLWRlYWt0LWFiYnJlY2hlbicpLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgbW9kYWxTY2hsaWVzc2VuKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzYy1kZWFrdC1vaycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgdmFyIG1vZHVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ic2Mt
ZGVha3QtbW9kdXMiXTpjaGVja2VkJyk7CiAgICAgICAgaWYgKCFtb2R1cykgcmV0dXJuOwogICAg
ICAgIG1vZHVzID0gbW9kdXMudmFsdWU7CiAgICAgICAgdmFyIGVyc2F0eiA9IG51bGw7CiAgICAg
ICAgaWYgKG1vZHVzID09PSAnZXJzZXR6ZW4nKSB7CiAgICAgICAgICAgIGlmICghYWt0aXZlQ29k
ZXMubGVuZ3RoKSB7IHRvYXN0KCdLZWluZSBFcnNhdHotQ29kZXMgdm9yaGFuZGVuJywgJ3dhcm51
bmcnKTsgcmV0dXJuOyB9CiAgICAgICAgICAgIGVyc2F0eiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdzYy1lcnNldHplbi1kdXJjaCcpLnZhbHVlOwogICAgICAgIH0KCiAgICAgICAgLy8gU2No
cml0dCAxOiBBZG1pbi1MaXN0ZSBtaXQgYWt0aXY6ZmFsc2UgbmV1IHNjaHJlaWJlbi4KICAgICAg
ICAvLyBTY2hyaXR0IDI6IHBsYW51bmcuanNvbiB1bXNjaHJlaWJlbiAobnVyIGJlaSBlcnNldHpl
bi9sZWVyZW4pLgogICAgICAgIGxpc3RlW2lkeF0gPSBPYmplY3QuYXNzaWduKHt9LCBzYywgeyBh
a3RpdjogZmFsc2UgfSk7CiAgICAgICAgdmFyIG5ldWVQbGFudW5nID0gbnVsbDsKICAgICAgICBp
ZiAobW9kdXMgPT09ICdlcnNldHplbicgfHwgbW9kdXMgPT09ICdsZWVyZW4nKSB7CiAgICAgICAg
ICAgIHZhciBuZXVlcldlcnQgPSBtb2R1cyA9PT0gJ2Vyc2V0emVuJyA/IGVyc2F0eiA6ICcnOwog
ICAgICAgICAgICBuZXVlUGxhbnVuZyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoWi5wbGFu
dW5nKSk7CiAgICAgICAgICAgIHZhciBlaW50ciA9IG5ldWVQbGFudW5nLmVpbnRyYWVnZSB8fCB7
fTsKICAgICAgICAgICAgT2JqZWN0LmtleXMoZWludHIpLmZvckVhY2goZnVuY3Rpb24oZCkgewog
ICAgICAgICAgICAgICAgdmFyIHRhZyA9IGVpbnRyW2RdIHx8IHt9OwogICAgICAgICAgICAgICAg
T2JqZWN0LmtleXModGFnKS5mb3JFYWNoKGZ1bmN0aW9uKHBpZCkgewogICAgICAgICAgICAgICAg
ICAgIGlmICh0YWdbcGlkXSA9PT0gc2MuY29kZSkgewogICAgICAgICAgICAgICAgICAgICAgICBp
ZiAobmV1ZXJXZXJ0KSB0YWdbcGlkXSA9IG5ldWVyV2VydDsKICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZSBkZWxldGUgdGFnW3BpZF07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgYXBpUHV0KCcvYXBp
L2FkbWluJywgT2JqZWN0LmFzc2lnbih7fSwgWi5hZG1pbiwgeyBzY2hpY2h0Y29kZXM6IGxpc3Rl
IH0pKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBaLmFkbWluLnNjaGljaHRjb2RlcyA9
IGxpc3RlOwogICAgICAgICAgICBpZiAobmV1ZVBsYW51bmcpIHsKICAgICAgICAgICAgICAgIHJl
dHVybiBhcGlQdXQoJy9hcGkvcGxhbnVuZycsIG5ldWVQbGFudW5nKS50aGVuKGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgICAgICAgIFoucGxhbnVuZyA9IG5ldWVQbGFudW5nOwogICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICBtb2RhbFNjaGxpZXNzZW4oKTsKICAgICAgICAgICAgc2NoaWNodGNvZGVWb3JzY2hh
dVJlbmRlcm4oKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRlbkdyaWRSZW5kZXJuID09PSAn
ZnVuY3Rpb24nKSBkYXRlbkdyaWRSZW5kZXJuKCk7CiAgICAgICAgICAgIHZhciBtc2cgPSBtb2R1
cyA9PT0gJ2Vyc2V0emVuJyA/IChhbnphaGwgKyAnIEVpbnRyw6RnZSBhdWYgIicgKyBlcnNhdHog
KyAnIiB1bWdlc3RlbGx0IHVuZCBDb2RlIGRlYWt0aXZpZXJ0JykKICAgICAgICAgICAgICAgICAg
ICA6IG1vZHVzID09PSAnbGVlcmVuJyAgICA/IChhbnphaGwgKyAnIEVpbnRyw6RnZSBnZWxlZXJ0
IHVuZCBDb2RlIGRlYWt0aXZpZXJ0JykKICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAgICAg
ICAgICAgICAgICAgICdDb2RlIGRlYWt0aXZpZXJ0IChiZXN0ZWhlbmRlIEVpbnRyw6RnZSB1bnZl
cmFlbmRlcnQpJzsKICAgICAgICAgICAgdG9hc3QobXNnLCAnZXJmb2xnJyk7CiAgICAgICAgfSku
Y2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgICAgICB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNz
YWdlLCAnZmVobGVyJyk7CiAgICAgICAgfSk7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHNj
aGljaHRjb2RlTGlzdGVTcGVpY2hlcm4obGlzdGUsIHRvYXN0VGV4dCkgewogICAgYXBpUHV0KCcv
YXBpL2FkbWluJywgT2JqZWN0LmFzc2lnbih7fSwgWi5hZG1pbiwgeyBzY2hpY2h0Y29kZXM6IGxp
c3RlIH0pKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgIFouYWRtaW4uc2NoaWNodGNvZGVzID0g
bGlzdGU7CiAgICAgICAgc2NoaWNodGNvZGVWb3JzY2hhdVJlbmRlcm4oKTsKICAgICAgICB0b2Fz
dCh0b2FzdFRleHQgfHwgJ0dlc3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgfSkuY2F0Y2goZnVu
Y3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwp9
CgpleHBvcnQgZnVuY3Rpb24gc2NoaWNodGNvZGVFZGl0TW9kYWxaZWlnZW4oY29kZUtleSkgewog
ICAgdmFyIHZvcmggPSBjb2RlS2V5ID8gKFouYWRtaW4uc2NoaWNodGNvZGVzIHx8IFtdKS5maW5k
KGZ1bmN0aW9uKGMpIHsgcmV0dXJuIGMuY29kZSA9PT0gY29kZUtleTsgfSkgOiBudWxsOwogICAg
dmFyIHNjID0gdm9yaCA/IE9iamVjdC5hc3NpZ24oe30sIHZvcmgpIDogeyBjb2RlOiAnJywga3Vl
cnplbDogJycsIGJlemVpY2hudW5nOiAnJywgaGludGVyZ3J1bmQ6ICcjQjcxQzFDJywgc2Nocmlm
dDogJyNGRkZGRkYnIH07CiAgICB2YXIgaXN0TmV1ID0gIXZvcmg7CiAgICB2YXIgY29kZUZlbGRS
ZWFkT25seSA9ICFpc3ROZXUgPyAnIHJlYWRvbmx5IHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJn
LWNhcmQtYWx0KTtjdXJzb3I6bm90LWFsbG93ZWQiJyA6ICcnOwogICAgdmFyIGNvZGVIaW53ZWlz
ID0gaXN0TmV1ID8gJzxzbWFsbCBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1z
aXplOjExcHgiPlRlY2huaXNjaGVyIFNjaGzDvHNzZWwsIG5hY2ggQW5sYWdlIG5pY2h0IG1laHIg
w6RuZGVyYmFyLjwvc21hbGw+JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzxzbWFs
bCBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOjExcHgiPlRlY2huaXNj
aGVyIFNjaGzDvHNzZWwg4oCUIG5pY2h0IMOkbmRlcmJhciwgZGEgbWl0IGJlc3RlaGVuZGVuIEVp
bnRyw6RnZW4gdmVya27DvHBmdC48L3NtYWxsPic7CiAgICB2YXIga29lcnBlciA9ICc8ZGl2IHN0
eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMnB4Ij4nICsKICAg
ICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwIj4n
ICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIGZvcm0tcGZsaWNodCIgc3R5
bGU9ImZsZXg6MTttaW4td2lkdGg6MTQwcHgiPjxsYWJlbD5Db2RlIChTY2hsw7xzc2VsKTwvbGFi
ZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzYy1jb2RlIiBjbGFzcz0iZm9ybS1pbnB1dCIgdmFs
dWU9IicgKyBlc2NhcGVBdHRyKHNjLmNvZGUpICsgJyIgbWF4bGVuZ3RoPSIxMCIgZGF0YS1tYXhs
ZW5ndGgtY291bnRlcj0iMSIgcGxhY2Vob2xkZXI9InouQi4gRi1ER0wiJyArIGNvZGVGZWxkUmVh
ZE9ubHkgKyAnPicgKyBjb2RlSGlud2VpcyArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYg
Y2xhc3M9ImZvcm0tZ3J1cHBlIiBzdHlsZT0iZmxleDoxO21pbi13aWR0aDoxNDBweCI+PGxhYmVs
PkvDvHJ6ZWwgKEFuemVpZ2UpPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InNjLWt1ZXJ6
ZWwiIGNsYXNzPSJmb3JtLWlucHV0IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoc2Mua3VlcnplbCB8
fCAnJykgKyAnIiBtYXhsZW5ndGg9IjEwIiBkYXRhLW1heGxlbmd0aC1jb3VudGVyPSIxIiBwbGFj
ZWhvbGRlcj0iei5CLiBGIj48c21hbGwgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2Zv
bnQtc2l6ZTp2YXIoLS1mcy1zbSkiPkt1cnpmb3JtIGluIGRlciBQbGFudW5nc3plbGxlLiBLYW5u
IG1pdCBkZW0gQ29kZSBpZGVudGlzY2ggc2Vpbi48L3NtYWxsPjwvZGl2PicgKwogICAgICAgICc8
L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUgZm9ybS1wZmxpY2h0Ij48
bGFiZWw+QmV6ZWljaG51bmcgKExhbmduYW1lKTwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlk
PSJzYy1iZXplaWNobnVuZyIgY2xhc3M9ImZvcm0taW5wdXQiIHZhbHVlPSInICsgZXNjYXBlQXR0
cihzYy5iZXplaWNobnVuZyB8fCAnJykgKyAnIiBtYXhsZW5ndGg9IjYwIiBkYXRhLW1heGxlbmd0
aC1jb3VudGVyPSIxIiBwbGFjZWhvbGRlcj0iei5CLiBGcsO8aGRpZW5zdCBER0wiPjwvZGl2Picg
KwogICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjEycHg7ZmxleC13cmFwOndy
YXA7YWxpZ24taXRlbXM6ZmxleC1lbmQiPicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9y
bS1ncnVwcGUiIHN0eWxlPSJmbGV4OjE7bWluLXdpZHRoOjEzMHB4Ij48bGFiZWw+SGludGVyZ3J1
bmRmYXJiZTwvbGFiZWw+PGlucHV0IHR5cGU9ImNvbG9yIiBpZD0ic2MtaGludGVyZ3J1bmQiIGNs
YXNzPSJmb3JtLWlucHV0IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoc2MuaGludGVyZ3J1bmQgfHwg
JyNCNzFDMUMnKSArICciIHN0eWxlPSJoZWlnaHQ6MzhweDtwYWRkaW5nOjJweCA0cHg7Y3Vyc29y
OnBvaW50ZXIiPjwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUi
IHN0eWxlPSJmbGV4OjE7bWluLXdpZHRoOjEzMHB4Ij48bGFiZWw+U2NocmlmdGZhcmJlPC9sYWJl
bD48aW5wdXQgdHlwZT0iY29sb3IiIGlkPSJzYy1zY2hyaWZ0IiBjbGFzcz0iZm9ybS1pbnB1dCIg
dmFsdWU9IicgKyBlc2NhcGVBdHRyKHNjLnNjaHJpZnQgfHwgJyNGRkZGRkYnKSArICciIHN0eWxl
PSJoZWlnaHQ6MzhweDtwYWRkaW5nOjJweCA0cHg7Y3Vyc29yOnBvaW50ZXIiPjwvZGl2PicgKwog
ICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiIHN0eWxlPSJmbGV4OjE7bWluLXdp
ZHRoOjE0MHB4Ij48bGFiZWw+Vm9yc2NoYXU8L2xhYmVsPjxkaXYgaWQ9InNjLXZvcnNjaGF1IiBz
dHlsZT0icGFkZGluZzo4cHggMTJweDtib3JkZXItcmFkaXVzOjZweDtmb250LXdlaWdodDo3MDA7
dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDonICsgZXNjYXBlQXR0cihzYy5oaW50ZXJncnVu
ZCB8fCAnI0I3MUMxQycpICsgJztjb2xvcjonICsgZXNjYXBlQXR0cihzYy5zY2hyaWZ0IHx8ICcj
RkZGRkZGJykgKyAnIj4nICsgZXNjYXBlSFRNTChzYy5jb2RlIHx8ICdWb3JzY2hhdScpICsgJzwv
ZGl2PjwvZGl2PicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICc8L2Rpdj4nOwogICAgdmFyIGZv
b3RlciA9ICh2b3JoID8gJzxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2VmYWhyIiBpZD0ic2MtbG9l
c2NoZW4iIHN0eWxlPSJtYXJnaW4tcmlnaHQ6YXV0byI+TMO2c2NoZW48L2J1dHRvbj4nIDogJycp
ICsKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIiBpZD0ic2MtYWJicmVjaGVuIj5BYmJyZWNo
ZW48L2J1dHRvbj4nICsKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBp
ZD0ic2Mtc3BlaWNoZXJuIj5TcGVpY2hlcm48L2J1dHRvbj4nOwogICAgbW9kYWxaZWlnZW4odm9y
aCA/ICdTY2hpY2h0Y29kZSBiZWFyYmVpdGVuJyA6ICdOZXVlciBTY2hpY2h0Y29kZScsIGtvZXJw
ZXIsIGZvb3RlciwgbnVsbCk7CgogICAgZnVuY3Rpb24gdm9yc2NoYXVVcGRhdGUoKSB7CiAgICAg
ICAgdmFyIGhnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjLWhpbnRlcmdydW5kJykudmFs
dWU7CiAgICAgICAgdmFyIHNmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjLXNjaHJpZnQn
KS52YWx1ZTsKICAgICAgICB2YXIga3UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Mta3Vl
cnplbCcpLnZhbHVlIHx8IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYy1jb2RlJykudmFsdWUg
fHwgJ1ZvcnNjaGF1JzsKICAgICAgICB2YXIgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdz
Yy12b3JzY2hhdScpOwogICAgICAgIHYuc3R5bGUuYmFja2dyb3VuZCA9IGhnOyB2LnN0eWxlLmNv
bG9yID0gc2Y7IHYudGV4dENvbnRlbnQgPSBrdTsKICAgIH0KICAgIFsnc2MtaGludGVyZ3J1bmQn
LCdzYy1zY2hyaWZ0Jywnc2Mta3VlcnplbCcsJ3NjLWNvZGUnXS5mb3JFYWNoKGZ1bmN0aW9uKGlk
KSB7CiAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOyBpZiAoZWwp
IGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0Jywgdm9yc2NoYXVVcGRhdGUpOwogICAgfSk7Cgog
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjLWFiYnJlY2hlbicpLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgbW9kYWxTY2hsaWVzc2VuKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzYy1zcGVpY2hlcm4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewog
ICAgICAgIHZhciBkYXRlbiA9IHsKICAgICAgICAgICAgY29kZTogZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3NjLWNvZGUnKS52YWx1ZS50cmltKCksCiAgICAgICAgICAgIGt1ZXJ6ZWw6IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzYy1rdWVyemVsJykudmFsdWUudHJpbSgpIHx8IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzYy1jb2RlJykudmFsdWUudHJpbSgpLAogICAgICAgICAgICBiZXpl
aWNobnVuZzogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjLWJlemVpY2hudW5nJykudmFsdWUu
dHJpbSgpLAogICAgICAgICAgICBoaW50ZXJncnVuZDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3NjLWhpbnRlcmdydW5kJykudmFsdWUsCiAgICAgICAgICAgIHNjaHJpZnQ6IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdzYy1zY2hyaWZ0JykudmFsdWUKICAgICAgICB9OwogICAgICAgIGlmICgh
ZGF0ZW4uY29kZSkgeyBwZmxpY2h0ZmVsZEZlaGxlcignc2MtY29kZScsICdDb2RlIGlzdCBQZmxp
Y2h0ZmVsZCcpOyByZXR1cm47IH0KICAgICAgICBpZiAoIWRhdGVuLmJlemVpY2hudW5nKSB7IHBm
bGljaHRmZWxkRmVobGVyKCdzYy1iZXplaWNobnVuZycsICdCZXplaWNobnVuZyBpc3QgUGZsaWNo
dGZlbGQnKTsgcmV0dXJuOyB9CiAgICAgICAgaWYgKGlzdE5ldSAmJiAoWi5hZG1pbi5zY2hpY2h0
Y29kZXMgfHwgW10pLnNvbWUoZnVuY3Rpb24oYykgeyByZXR1cm4gYy5jb2RlID09PSBkYXRlbi5j
b2RlOyB9KSkgewogICAgICAgICAgICB0b2FzdCgnQ29kZSDigJ4nICsgZGF0ZW4uY29kZSArICci
IGV4aXN0aWVydCBiZXJlaXRzJywgJ3dhcm51bmcnKTsgcmV0dXJuOwogICAgICAgIH0KICAgICAg
ICB2YXIgbGlzdGUgPSAoWi5hZG1pbi5zY2hpY2h0Y29kZXMgfHwgW10pLnNsaWNlKCk7CiAgICAg
ICAgaWYgKGlzdE5ldSkgbGlzdGUucHVzaChkYXRlbik7CiAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgIHZhciBpZHggPSBsaXN0ZS5maW5kSW5kZXgoZnVuY3Rpb24oYykgeyByZXR1cm4gYy5jb2Rl
ID09PSB2b3JoLmNvZGU7IH0pOwogICAgICAgICAgICBpZiAoaWR4ID49IDApIGxpc3RlW2lkeF0g
PSBkYXRlbjsKICAgICAgICB9CiAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWluJywgT2JqZWN0LmFz
c2lnbih7fSwgWi5hZG1pbiwgeyBzY2hpY2h0Y29kZXM6IGxpc3RlIH0pKS50aGVuKGZ1bmN0aW9u
KCkgewogICAgICAgICAgICBaLmFkbWluLnNjaGljaHRjb2RlcyA9IGxpc3RlOwogICAgICAgICAg
ICAvLyBjb2RlTWFwIGFrdHVhbGlzaWVyZW4KICAgICAgICAgICAgWi5jb2RlTWFwID0ge307CiAg
ICAgICAgICAgIGxpc3RlLmZvckVhY2goZnVuY3Rpb24oYykgeyBaLmNvZGVNYXBbYy5jb2RlXSA9
IHsgaGludGVyZ3J1bmQ6IGMuaGludGVyZ3J1bmQsIHNjaHJpZnQ6IGMuc2NocmlmdCwga3Vlcnpl
bDogYy5rdWVyemVsIHx8IGMuY29kZSB9OyB9KTsKICAgICAgICAgICAgc2NoaWNodGNvZGVWb3Jz
Y2hhdVJlbmRlcm4oKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRlbkdyaWRSZW5kZXJuID09
PSAnZnVuY3Rpb24nKSBkYXRlbkdyaWRSZW5kZXJuKCk7CiAgICAgICAgICAgIG1vZGFsU2NobGll
c3NlbigpOwogICAgICAgICAgICB0b2FzdCgnU2NoaWNodGNvZGUgZ2VzcGVpY2hlcnQnLCAnZXJm
b2xnJyk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsg
ZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgfSk7CiAgICBpZiAodm9yaCkgewogICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYy1sb2VzY2hlbicpLmFkZEV2ZW50TGlzdGVuZXIo
J2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGJlc3RhZXRpZ2VuKCdTY2hpY2h0Y29k
ZSDigJ4nICsgdm9yaC5jb2RlICsgJyIgd2lya2xpY2ggbMO2c2NoZW4/XG5cbkJlc3RlaGVuZGUg
RWludHLDpGdlIG1pdCBkaWVzZW0gQ29kZSBibGVpYmVuIGluIGRlciBQbGFudW5nIGVyaGFsdGVu
LCB3ZXJkZW4gYWJlciBvaG5lIEZhcmJlIGRhcmdlc3RlbGx0LicsIGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgICAgdmFyIGxpc3RlID0gKFouYWRtaW4uc2NoaWNodGNvZGVzIHx8IFtdKS5maWx0
ZXIoZnVuY3Rpb24oYykgeyByZXR1cm4gYy5jb2RlICE9PSB2b3JoLmNvZGU7IH0pOwogICAgICAg
ICAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWluJywgT2JqZWN0LmFzc2lnbih7fSwgWi5hZG1pbiwg
eyBzY2hpY2h0Y29kZXM6IGxpc3RlIH0pKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgICAgIFouYWRtaW4uc2NoaWNodGNvZGVzID0gbGlzdGU7CiAgICAgICAgICAgICAgICAgICAg
Wi5jb2RlTWFwID0ge307CiAgICAgICAgICAgICAgICAgICAgbGlzdGUuZm9yRWFjaChmdW5jdGlv
bihjKSB7IFouY29kZU1hcFtjLmNvZGVdID0geyBoaW50ZXJncnVuZDogYy5oaW50ZXJncnVuZCwg
c2NocmlmdDogYy5zY2hyaWZ0LCBrdWVyemVsOiBjLmt1ZXJ6ZWwgfHwgYy5jb2RlIH07IH0pOwog
ICAgICAgICAgICAgICAgICAgIHNjaGljaHRjb2RlVm9yc2NoYXVSZW5kZXJuKCk7CiAgICAgICAg
ICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRlbkdyaWRSZW5kZXJuID09PSAnZnVuY3Rpb24nKSBk
YXRlbkdyaWRSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAgbW9kYWxTY2hsaWVzc2VuKCk7
CiAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ1NjaGljaHRjb2RlIGdlbMO2c2NodCcsICdlcmZv
bGcnKTsKICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxl
cjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICAgICAgfSwgeyB0aXRlbDog
J1NjaGljaHRjb2RlIGzDtnNjaGVuJywgamFEYW5nZXI6IHRydWUgfSk7CiAgICAgICAgfSk7CiAg
ICB9Cn0K
### FILE: js/admin_common.js | 1528
Ly8gPT09IGFkbWluX2NvbW1vbi5qcyA9PT0KLy8gV2llZGVydmVyd2VuZGJhcmUgVGFiZWxsZW4t
SGVsZmVyIGZ1ZXIgQWRtaW4tU3ViLU1vZHVsZS4KCi8vIExpZXN0IGFsbGUgVGFiZWxsZW4tRmVs
ZGVyIG1pdCBLbGFzc2UgYGtsYXNzZWAgKHouQi4gJ2ZlaWVydGFnLWlucHV0JykKLy8gaW4gZWlu
ZSBMaXN0ZSB2b24gT2JqZWt0ZW4gZWluLiBKZWRlcyBGZWxkIG11c3MgYGRhdGEtaWR4YCAoWmVp
bGVuLUluZGV4KQovLyB1bmQgYGRhdGEtZmVsZGAgKFByb3BlcnR5LU5hbWUpIHRyYWdlbi4KLy8K
Ly8gYm9vbEZlbGRlcjogTGlzdGUgdm9uIEZlbGQtTmFtZW4sIGRpZSBhbHMgQ2hlY2tib3ggaW50
ZXJwcmV0aWVydCB3ZXJkZW4KLy8gKGYuY2hlY2tlZCBzdGF0dCBmLnZhbHVlKS4gRGVmYXVsdDog
bGVlci4KLy8KLy8gdHJpbTogd2VubiB0cnVlLCB3ZXJkZW4gU3RyaW5nLVdlcnRlIGJlaW0gRWlu
bGVzZW4gLnRyaW0oKS1hdWZnZXJ1ZmVuLgovLwovLyBSdWVja2dhYmU6IEFycmF5IHZvbiBPYmpl
a3RlbiBpbiBkZXIgUmVpaGVuZm9sZ2UgZGVyIGRhdGEtaWR4LVdlcnRlLgpleHBvcnQgZnVuY3Rp
b24gdGFiZWxsZUZlbGRlckxlc2VuKGtsYXNzZSwgb3B0cykgewogICAgb3B0cyA9IG9wdHMgfHwg
e307CiAgICB2YXIgYm9vbFNldCA9IHt9OwogICAgKG9wdHMuYm9vbEZlbGRlciB8fCBbXSkuZm9y
RWFjaChmdW5jdGlvbihrKSB7IGJvb2xTZXRba10gPSB0cnVlOyB9KTsKICAgIHZhciB0cmltID0g
ISFvcHRzLnRyaW07CiAgICB2YXIgZmVsZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn
LicgKyBrbGFzc2UpOwogICAgdmFyIG1hcCA9IHt9OwogICAgZmVsZGVyLmZvckVhY2goZnVuY3Rp
b24oZikgewogICAgICAgIHZhciBpZHggPSBmLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKTsKICAg
ICAgICB2YXIgZmVsZCA9IGYuZ2V0QXR0cmlidXRlKCdkYXRhLWZlbGQnKTsKICAgICAgICBpZiAo
IW1hcFtpZHhdKSBtYXBbaWR4XSA9IHt9OwogICAgICAgIGlmIChib29sU2V0W2ZlbGRdKSB7CiAg
ICAgICAgICAgIG1hcFtpZHhdW2ZlbGRdID0gZi5jaGVja2VkOwogICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgIHZhciB2ID0gZi52YWx1ZTsKICAgICAgICAgICAgbWFwW2lkeF1bZmVsZF0gPSB0
cmltID8gdi50cmltKCkgOiB2OwogICAgICAgIH0KICAgIH0pOwogICAgLy8gU3RhYmlsIHNvcnRp
ZXJ0IG5hY2ggbnVtZXJpc2NoZW0gZGF0YS1pZHgsIGRhbWl0IGRpZSBSZWloZW5mb2xnZQogICAg
Ly8gZGVyIERPTS1aZWlsZW4gZXJoYWx0ZW4gYmxlaWJ0IChPYmplY3Qua2V5cyBpc3QgaW4gTW9k
ZXJuLUJyb3dzZXJuCiAgICAvLyBzY2hvbiBzb3J0aWVydCwgYWJlciBleHBsaXppdCBpc3Qgc2lj
aGVyZXIpLgogICAgcmV0dXJuIE9iamVjdC5rZXlzKG1hcCkKICAgICAgICAuc29ydChmdW5jdGlv
bihhLCBiKSB7IHJldHVybiBwYXJzZUludChhLCAxMCkgLSBwYXJzZUludChiLCAxMCk7IH0pCiAg
ICAgICAgLm1hcChmdW5jdGlvbihrKSB7IHJldHVybiBtYXBba107IH0pOwp9Cg==
### FILE: js/admin_erscheinungsbild.js | 31741
Ly8gPT09IGFkbWluX2Vyc2NoZWludW5nc2JpbGQuanMgPT09Ci8vIEtvbmZpZ3VyaWVyYmFyZSB2
aXN1ZWxsZSBNYXJraWVydW5nZW4gZnVlciBLb3BmLVplbGxlbiArIExpdmUtU3luYy1GbGFzaC4K
Ly8gRGF0ZW5tb2RlbGwgdW50ZXIgWi5hZG1pbi5tYXJraWVydW5nZW4gbWl0IGZ1ZW5mIFR5cGVu
OgovLyAgIHNvbmRlcnRhZ0hpbndlaXMsIHNvbmRlcnRhZ1dhcm51bmcsIGZlaWVydGFnV2ljaHRp
ZywgaGV1dGVTcGFsdGUsIHN5bmNGbGFzaAovLyBKZWRlIE1hcmtpZXJ1bmcgaGF0IGRpZXNlbGJl
IFBhcmFtZXRlci1TdHJ1a3R1ciAoc2llaGUgTUFSS0lFUlVOR19ERUZBVUxUUykuCi8vIEJlaW0g
QW53ZW5kZW4gd2VyZGVuIENTUy1DdXN0b20tUHJvcGVydGllcyBhbSA6cm9vdCBnZXNldHp0IHVu
ZCBkaWUgZW50LQovLyBzcHJlY2hlbmRlbiBLbGFzc2VuIGluIHN0eWxlLmNzcyBncmVpZmVuIGRh
cmF1ZiB6dSAodmFyKC0tbWgtYmcpIGV0Yy4pLgoKaW1wb3J0IHsgWiB9IGZyb20gJy4vY29yZV9z
dGF0ZS5qcyc7CmltcG9ydCB7IGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIgfSBmcm9tICcuL2NvcmVf
dXRpbC5qcyc7CmltcG9ydCB7IGFwaVB1dCB9IGZyb20gJy4vY29yZV9hcGkuanMnOwppbXBvcnQg
eyB0b2FzdCwgZGlydHlSZWdpc3RyaWVyZSwgZGlydHlTZXR6ZW4sIGRpcnR5S2VubnQgfSBmcm9t
ICcuL3VpX2RpYWxvZy5qcyc7CgovLyA9PT09PSBEZWZhdWx0cyA9PT09PQoKdmFyIEZFTERfTkFN
RU4gPSB7CiAgICBoaW50ZXJncnVuZDogICAgICAgICAgICdIaW50ZXJncnVuZCcsCiAgICB0ZXh0
OiAgICAgICAgICAgICAgICAgICdUZXh0ZmFyYmUnLAogICAgc2NocmlmdGdld2ljaHQ6ICAgICAg
ICAnU2NocmlmdGdld2ljaHQnLAogICAgc2NocmlmdGdyb2Vzc2VGYWt0b3I6ICAnU2NocmlmdGdy
w7bDn2UnLAogICAgcmFobWVuT2JlbjogICAgICAgICAgICAnUmFobWVuIG9iZW4nLAogICAgcmFo
bWVuVW50ZW46ICAgICAgICAgICAnUmFobWVuIHVudGVuJywKICAgIHJhaG1lbkxpbmtzOiAgICAg
ICAgICAgJ1JhaG1lbiBsaW5rcycsCiAgICByYWhtZW5SZWNodHM6ICAgICAgICAgICdSYWhtZW4g
cmVjaHRzJywKICAgIHJhaG1lbkZhcmJlOiAgICAgICAgICAgJ1JhaG1lbmZhcmJlJywKICAgIGds
b3dGYXJiZTogICAgICAgICAgICAgJ0dsb3ctRmFyYmUnLAogICAgZ2xvd0RlY2trcmFmdDogICAg
ICAgICAnR2xvdy1JbnRlbnNpdMOkdCcsCiAgICBnbG93V2VpdGU6ICAgICAgICAgICAgICdHbG93
LVdlaXRlJywKICAgIGdsb3dQdWxzOiAgICAgICAgICAgICAgJ0dsb3cgcHVsc2llcnQnLAogICAg
c3BhbHRlSGludGVyZ3J1bmQ6ICAgICAnU3BhbHRlbi1Uw7ZudW5nIChHcmlkKScKfTsKCmV4cG9y
dCB2YXIgTUFSS0lFUlVOR0VOX01FVEEgPSBbCiAgICB7IGtleTogJ3NvbmRlcnRhZ0hpbndlaXMn
LCAgbGFiZWw6ICdTb25kZXJ0YWcg4oCUIEhpbndlaXMnLCAgIGJlc2NocmVpYnVuZzogJ1RhZyBt
aXQgU29uZGVydGVybWluIFR5cCDigJ5IaW53ZWlzIicgfSwKICAgIHsga2V5OiAnc29uZGVydGFn
V2FybnVuZycsICBsYWJlbDogJ1NvbmRlcnRhZyDigJQgV2FybnVuZycsICAgYmVzY2hyZWlidW5n
OiAnVGFnIG1pdCBTb25kZXJ0ZXJtaW4gVHlwIOKAnldhcm51bmciJyB9LAogICAgeyBrZXk6ICdm
ZWllcnRhZ1dpY2h0aWcnLCAgIGxhYmVsOiAnV2ljaHRpZ2VyIEZlaWVydGFnJywgICAgYmVzY2hy
ZWlidW5nOiAnRmVpZXJ0YWcgbWl0IOKAnldpY2h0aWciLUZsYWcgaW0gQWRtaW4tS2FsZW5kZXIn
IH0sCiAgICB7IGtleTogJ2ZlcmllbicsICAgICAgICAgICAgbGFiZWw6ICdGZXJpZW4nLCAgICAg
ICAgICAgICAgICBiZXNjaHJlaWJ1bmc6ICdTY2h1bGZlcmllbi1aZWl0cmF1bSDigJQg4oCeSGlu
dGVyZ3J1bmQvU2NocmlmdCIgc3R5bGVuIGRlbiBCYWxrZW4gaW0gS29wZiwg4oCeU3BhbHRlbi1U
w7ZudW5nIiBmw6RyYnQgZGllIEZlcmllbnRhZ2UgaW0gR3JpZCcgfSwKICAgIHsga2V5OiAnaGV1
dGVTcGFsdGUnLCAgICAgICBsYWJlbDogJ0hFVVRFIOKAlCBUYWdlc3NwYWx0ZScsICAgYmVzY2hy
ZWlidW5nOiAnTWFya2llcnVuZyBkZXIgaGV1dGlnZW4gVGFnZXNzcGFsdGUgKERhdGVuLVplbGxl
biwgbmljaHQgZGVyIEhlYWRlciknIH0sCiAgICB7IGtleTogJ3N5bmNGbGFzaCcsICAgICAgICAg
bGFiZWw6ICdMaXZlLVN5bmMg4oCUIEF1ZmxldWNodGVuJywgYmVzY2hyZWlidW5nOiAnS3VyemVz
IEF1ZmxldWNodGVuLCB3ZW5uIGVpbiBhbmRlcmVyIFVzZXIgZWluZSBaZWxsZSDDpG5kZXJ0JyB9
Cl07CgovLyBEZWZhdWx0cyBvcmllbnRpZXJlbiBzaWNoIGFtIGJpc2hlcmlnZW4gU3R5bGUgKHZv
ciBkaWVzZW0gRmVhdHVyZSkuIFdlcgovLyBuaWNodHMgc3BlaWNoZXJ0LCBzaWVodCB3ZWl0ZXJo
aW4gZGVuIHZlcnRyYXV0ZW4gTG9vay4KZXhwb3J0IHZhciBNQVJLSUVSVU5HRU5fREVGQVVMVFMg
PSB7CiAgICBzb25kZXJ0YWdIaW53ZWlzOiB7CiAgICAgICAgaGludGVyZ3J1bmQ6ICcnLCB0ZXh0
OiAnJywKICAgICAgICBzY2hyaWZ0Z2V3aWNodDogNDAwLCBzY2hyaWZ0Z3JvZXNzZUZha3Rvcjog
MS4wLAogICAgICAgIHJhaG1lbk9iZW46IDAsIHJhaG1lblVudGVuOiA0LCByYWhtZW5MaW5rczog
MCwgcmFobWVuUmVjaHRzOiAwLAogICAgICAgIHJhaG1lbkZhcmJlOiAnIzRhOTBlMicsCiAgICAg
ICAgZ2xvd0ZhcmJlOiAnIzRhOTBlMicsIGdsb3dEZWNra3JhZnQ6IDAuNTUsIGdsb3dXZWl0ZTog
MSwgZ2xvd1B1bHM6IGZhbHNlCiAgICB9LAogICAgc29uZGVydGFnV2FybnVuZzogewogICAgICAg
IGhpbnRlcmdydW5kOiAnJywgdGV4dDogJycsCiAgICAgICAgc2NocmlmdGdld2ljaHQ6IDQwMCwg
c2NocmlmdGdyb2Vzc2VGYWt0b3I6IDEuMCwKICAgICAgICByYWhtZW5PYmVuOiAwLCByYWhtZW5V
bnRlbjogNCwgcmFobWVuTGlua3M6IDAsIHJhaG1lblJlY2h0czogMCwKICAgICAgICByYWhtZW5G
YXJiZTogJyNlNjdlMjInLAogICAgICAgIGdsb3dGYXJiZTogJyNlNjdlMjInLCBnbG93RGVja2ty
YWZ0OiAwLjcsIGdsb3dXZWl0ZTogMSwgZ2xvd1B1bHM6IHRydWUKICAgIH0sCiAgICBmZWllcnRh
Z1dpY2h0aWc6IHsKICAgICAgICBoaW50ZXJncnVuZDogJyM0QTZBOEMnLCB0ZXh0OiAnI0ZGRkZG
RicsCiAgICAgICAgc2NocmlmdGdld2ljaHQ6IDcwMCwgc2NocmlmdGdyb2Vzc2VGYWt0b3I6IDEu
MCwKICAgICAgICByYWhtZW5PYmVuOiAwLCByYWhtZW5VbnRlbjogMywgcmFobWVuTGlua3M6IDAs
IHJhaG1lblJlY2h0czogMCwKICAgICAgICByYWhtZW5GYXJiZTogJyNENEEwMTcnLAogICAgICAg
IGdsb3dGYXJiZTogJyNENEEwMTcnLCBnbG93RGVja2tyYWZ0OiAwLCBnbG93V2VpdGU6IDAsIGds
b3dQdWxzOiBmYWxzZQogICAgfSwKICAgIGZlcmllbjogewogICAgICAgIC8vIGhpbnRlcmdydW5k
L3RleHQvLi4uIHN0eWxlbiBkZW4gRmVyaWVuLUJBTEtFTiBpbSBLb3BmIChCYWxrZW4gaGF0dGUK
ICAgICAgICAvLyBiaXNoZXIga2VpbmVuIEZpbGwgLT4gRGVmYXVsdCB0cmFuc3BhcmVudCwgZ3J1
ZW5lciBMYWJlbC1UZXh0KS4KICAgICAgICBoaW50ZXJncnVuZDogJycsIHRleHQ6ICcjMjU2MDI5
JywKICAgICAgICBzY2hyaWZ0Z2V3aWNodDogNzAwLCBzY2hyaWZ0Z3JvZXNzZUZha3RvcjogMS4w
LAogICAgICAgIHJhaG1lbk9iZW46IDAsIHJhaG1lblVudGVuOiAwLCByYWhtZW5MaW5rczogMCwg
cmFobWVuUmVjaHRzOiAwLAogICAgICAgIHJhaG1lbkZhcmJlOiAnIzJFN0QzMicsCiAgICAgICAg
Z2xvd0ZhcmJlOiAnIzJFN0QzMicsIGdsb3dEZWNra3JhZnQ6IDAsIGdsb3dXZWl0ZTogMCwgZ2xv
d1B1bHM6IGZhbHNlLAogICAgICAgIC8vIGZlcmllbi1zcGV6aWZpc2NoOiBIaW50ZXJncnVuZC1U
b2VudW5nIGRlciBGZXJpZW50YWdlIGltIEdyaWQuCiAgICAgICAgc3BhbHRlSGludGVyZ3J1bmQ6
ICcjRTBGMEU0JwogICAgfSwKICAgIGhldXRlU3BhbHRlOiB7CiAgICAgICAgaGludGVyZ3J1bmQ6
ICcjRkZGNEQ0JywgdGV4dDogJycsCiAgICAgICAgc2NocmlmdGdld2ljaHQ6IDQwMCwgc2Nocmlm
dGdyb2Vzc2VGYWt0b3I6IDEuMCwKICAgICAgICByYWhtZW5PYmVuOiAwLCByYWhtZW5VbnRlbjog
MCwgcmFobWVuTGlua3M6IDIsIHJhaG1lblJlY2h0czogMiwKICAgICAgICByYWhtZW5GYXJiZTog
JyNENEEwMTcnLAogICAgICAgIGdsb3dGYXJiZTogJyNENEEwMTcnLCBnbG93RGVja2tyYWZ0OiAw
LCBnbG93V2VpdGU6IDAsIGdsb3dQdWxzOiBmYWxzZQogICAgfSwKICAgIHN5bmNGbGFzaDogewog
ICAgICAgIGhpbnRlcmdydW5kOiAnI0ZGRTY4MCcsIHRleHQ6ICcnLAogICAgICAgIHNjaHJpZnRn
ZXdpY2h0OiA0MDAsIHNjaHJpZnRncm9lc3NlRmFrdG9yOiAxLjAsCiAgICAgICAgcmFobWVuT2Jl
bjogMCwgcmFobWVuVW50ZW46IDAsIHJhaG1lbkxpbmtzOiAwLCByYWhtZW5SZWNodHM6IDAsCiAg
ICAgICAgcmFobWVuRmFyYmU6ICcjRDRBMDE3JywKICAgICAgICBnbG93RmFyYmU6ICcjRkZENzAw
JywgZ2xvd0RlY2trcmFmdDogMC44NSwgZ2xvd1dlaXRlOiAxMiwgZ2xvd1B1bHM6IGZhbHNlLAog
ICAgICAgIC8vIHN5bmNGbGFzaCBoYXQgYWxzIGVpbnppZ2UgTWFya2llcnVuZyBlaW5lIERhdWVy
IGluIG1zIOKAlCB3aWUgbGFuZ2UKICAgICAgICAvLyBkaWUgQW5pbWF0aW9uIGxhZXVmdCwgYmV2
b3IgZGllIFplbGxlIGluIGRlbiBOb3JtYWx6dXN0YW5kIHp1cnVlY2stCiAgICAgICAgLy8ga2Vo
cnQuIFdpcmQgbnVyIGJlaSBzeW5jRmxhc2ggZ2VsZXNlbi4KICAgICAgICBkYXVlck1zOiAxNTAw
CiAgICB9Cn07CgovLyA9PT09PSBBdWZsb2VzZW4gPT09PT0KLy8gTWVyZ3QgVXNlci1XZXJ0ZSAo
Wi5hZG1pbi5tYXJraWVydW5nZW5ba2V5XSkgbWl0IERlZmF1bHRzIOKAlCBmZWhsZW5kZSBGZWxk
ZXIKLy8ga29tbWVuIGF1cyBkZW0gRGVmYXVsdC4KCmV4cG9ydCBmdW5jdGlvbiBtYXJraWVydW5n
QXVmbG9lc2VuKGtleSkgewogICAgdmFyIGRlZiA9IE1BUktJRVJVTkdFTl9ERUZBVUxUU1trZXld
IHx8IHt9OwogICAgdmFyIHVzZXIgPSAoWi5hZG1pbiAmJiBaLmFkbWluLm1hcmtpZXJ1bmdlbiAm
JiBaLmFkbWluLm1hcmtpZXJ1bmdlbltrZXldKSB8fCB7fTsKICAgIHZhciBvdXQgPSB7fTsKICAg
IE9iamVjdC5rZXlzKGRlZikuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICAgICAgb3V0W2tdID0g
KGsgaW4gdXNlcikgPyB1c2VyW2tdIDogZGVmW2tdOwogICAgfSk7CiAgICByZXR1cm4gb3V0Owp9
CgovLyA9PT09PSBDU1MtQW53ZW5kdW5nID09PT09Ci8vIFNldHp0IGZ1ZXIgamVkZW4gTWFya2ll
cnVuZ3N0eXAgZWluZSBHcnVwcGUgQ1NTLUN1c3RvbS1Qcm9wZXJ0aWVzIGFtCi8vIDpyb290LiBQ
cmFlZml4IC0tbWFyay08a2V5Pi08ZmVsZD4uIERpZSBzdHlsZS5jc3MtUmVnZWxuIGxlc2VuIGRp
ZXNlLgoKdmFyIENTU19QUkFFRklYID0gewogICAgc29uZGVydGFnSGlud2VpczogJ21oaW4nLAog
ICAgc29uZGVydGFnV2FybnVuZzogJ213YXInLAogICAgZmVpZXJ0YWdXaWNodGlnOiAgJ21md2kn
LAogICAgaGV1dGVTcGFsdGU6ICAgICAgJ21oZScsCiAgICBzeW5jRmxhc2g6ICAgICAgICAnbXNm
Jwp9Owp2YXIgUFVMU19BTklNX05BTUUgPSB7CiAgICBzb25kZXJ0YWdIaW53ZWlzOiAncHVsc0hp
bndlaXMnLAogICAgc29uZGVydGFnV2FybnVuZzogJ3B1bHNXYXJudW5nJywKICAgIGZlaWVydGFn
V2ljaHRpZzogICdwdWxzRmVpZXJ0YWcnLAogICAgaGV1dGVTcGFsdGU6ICAgICAgJ3B1bHNIZXV0
ZScKICAgIC8vIHN5bmNGbGFzaCBoYXQgZWluZW4gZWlnZW5lbiBlaW5tYWxpZ2VuICd6ZWxsZS1m
bGFzaCctS2V5ZnJhbWUsIGtlaW4gUHVscwp9OwoKZnVuY3Rpb24gaGV4WnVSZ2JhKGhleCwgZGVj
a2tyYWZ0KSB7CiAgICBpZiAoIWhleCB8fCBoZXguY2hhckF0KDApICE9PSAnIycpIHJldHVybiAn
cmdiYSgwLDAsMCwnICsgZGVja2tyYWZ0ICsgJyknOwogICAgdmFyIGMgPSBoZXguc3Vic3RyKDEp
OwogICAgaWYgKGMubGVuZ3RoID09PSAzKSBjID0gYy5jaGFyQXQoMCkgKyBjLmNoYXJBdCgwKSAr
IGMuY2hhckF0KDEpICsgYy5jaGFyQXQoMSkgKyBjLmNoYXJBdCgyKSArIGMuY2hhckF0KDIpOwog
ICAgdmFyIHIgPSBwYXJzZUludChjLnN1YnN0cigwLDIpLCAxNiksIGcgPSBwYXJzZUludChjLnN1
YnN0cigyLDIpLCAxNiksIGIgPSBwYXJzZUludChjLnN1YnN0cig0LDIpLCAxNik7CiAgICByZXR1
cm4gJ3JnYmEoJyArIHIgKyAnLCcgKyBnICsgJywnICsgYiArICcsJyArIGRlY2trcmFmdCArICcp
JzsKfQoKZnVuY3Rpb24gYm94U2hhZG93QmF1ZW4obSkgewogICAgdmFyIHBhcnRzID0gW107CiAg
ICBpZiAobS5yYWhtZW5PYmVuICAgPiAwKSBwYXJ0cy5wdXNoKCdpbnNldCAwICcgICsgbS5yYWht
ZW5PYmVuICAgKyAncHggMCAnICsgbS5yYWhtZW5GYXJiZSk7CiAgICBpZiAobS5yYWhtZW5VbnRl
biAgPiAwKSBwYXJ0cy5wdXNoKCdpbnNldCAwIC0nICsgbS5yYWhtZW5VbnRlbiAgKyAncHggMCAn
ICsgbS5yYWhtZW5GYXJiZSk7CiAgICBpZiAobS5yYWhtZW5MaW5rcyAgPiAwKSBwYXJ0cy5wdXNo
KCdpbnNldCAnICAgKyBtLnJhaG1lbkxpbmtzICAgKyAncHggMCAwICcgKyBtLnJhaG1lbkZhcmJl
KTsKICAgIGlmIChtLnJhaG1lblJlY2h0cyA+IDApIHBhcnRzLnB1c2goJ2luc2V0IC0nICArIG0u
cmFobWVuUmVjaHRzICArICdweCAwIDAgJyArIG0ucmFobWVuRmFyYmUpOwogICAgaWYgKG0uZ2xv
d0RlY2trcmFmdCA+IDAgJiYgbS5nbG93V2VpdGUgPiAwKSB7CiAgICAgICAgcGFydHMucHVzaCgn
MCAwICcgKyBtLmdsb3dXZWl0ZSArICdweCAnICsgTWF0aC5tYXgoMCwgbS5nbG93V2VpdGUgLSA0
KSArICdweCAnICsgaGV4WnVSZ2JhKG0uZ2xvd0ZhcmJlLCBtLmdsb3dEZWNra3JhZnQpKTsKICAg
IH0gZWxzZSBpZiAobS5nbG93RGVja2tyYWZ0ID4gMCkgewogICAgICAgIC8vIEdsb3cgb2huZSBX
ZWl0ZSAtPiAxcHggT3V0bGluZS1FZmZla3QKICAgICAgICBwYXJ0cy5wdXNoKCcwIDAgMCAxcHgg
JyArIGhleFp1UmdiYShtLmdsb3dGYXJiZSwgbS5nbG93RGVja2tyYWZ0KSk7CiAgICB9CiAgICBy
ZXR1cm4gcGFydHMubGVuZ3RoID8gcGFydHMuam9pbignLCAnKSA6ICdub25lJzsKfQoKLy8gUHVs
c2UtVmFyaWFudGU6IHN0YXJrZXJlciBHbG93IGltIDUwJS1LZXlmcmFtZSwgYW5oYW5kIGRlciBn
bGVpY2hlbgovLyBGYXJiLVdlcnRlIGFiZXIgaG9laGVyZXIgV2VpdGUgKyBEZWNra3JhZnQuIFdp
cmQgYWxzIHp3ZWl0ZSBCb3gtU2hhZG93LQovLyBEZWZpbml0aW9uIGdlbGllZmVydCwgZGllIGRp
ZSBBbmltYXRpb24gaW50ZXJwb2xpZXJ0LgpmdW5jdGlvbiBib3hTaGFkb3dQdWxzQmF1ZW4obSkg
ewogICAgdmFyIHBhcnRzID0gW107CiAgICBpZiAobS5yYWhtZW5PYmVuICAgPiAwKSBwYXJ0cy5w
dXNoKCdpbnNldCAwICcgICsgbS5yYWhtZW5PYmVuICAgKyAncHggMCAnICsgbS5yYWhtZW5GYXJi
ZSk7CiAgICBpZiAobS5yYWhtZW5VbnRlbiAgPiAwKSBwYXJ0cy5wdXNoKCdpbnNldCAwIC0nICsg
bS5yYWhtZW5VbnRlbiAgKyAncHggMCAnICsgbS5yYWhtZW5GYXJiZSk7CiAgICBpZiAobS5yYWht
ZW5MaW5rcyAgPiAwKSBwYXJ0cy5wdXNoKCdpbnNldCAnICAgKyBtLnJhaG1lbkxpbmtzICAgKyAn
cHggMCAwICcgKyBtLnJhaG1lbkZhcmJlKTsKICAgIGlmIChtLnJhaG1lblJlY2h0cyA+IDApIHBh
cnRzLnB1c2goJ2luc2V0IC0nICArIG0ucmFobWVuUmVjaHRzICArICdweCAwIDAgJyArIG0ucmFo
bWVuRmFyYmUpOwogICAgLy8gUHVsc2UtU3BpdHplOiBkb3BwZWx0ZSBXZWl0ZSwgZXR3YXMgd2Vu
aWdlciBEZWNra3JhZnQKICAgIHZhciBwdWxzV2VpdGUgPSBNYXRoLm1heCg2LCBtLmdsb3dXZWl0
ZSAqIDIpOwogICAgcGFydHMucHVzaCgnMCAwICcgKyBwdWxzV2VpdGUgKyAncHggJyArIE1hdGgu
bWF4KDAsIHB1bHNXZWl0ZSAtIDQpICsgJ3B4ICcgKyBoZXhadVJnYmEobS5nbG93RmFyYmUsIE1h
dGgubWluKDEsIG0uZ2xvd0RlY2trcmFmdCArIDAuMSkpKTsKICAgIHJldHVybiBwYXJ0cy5qb2lu
KCcsICcpOwp9CgpleHBvcnQgZnVuY3Rpb24gbWFya2llcnVuZ2VuQW53ZW5kZW4oKSB7CiAgICB2
YXIgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKICAgIE9iamVjdC5rZXlzKENTU19Q
UkFFRklYKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgewogICAgICAgIHZhciBwID0gJy0tJyArIENT
U19QUkFFRklYW2tleV07CiAgICAgICAgdmFyIG0gPSBtYXJraWVydW5nQXVmbG9lc2VuKGtleSk7
CiAgICAgICAgcm9vdC5zdHlsZS5zZXRQcm9wZXJ0eShwICsgJy1iZycsICAgICAgICAgbS5oaW50
ZXJncnVuZCB8fCAndHJhbnNwYXJlbnQnKTsKICAgICAgICByb290LnN0eWxlLnNldFByb3BlcnR5
KHAgKyAnLXRleHQnLCAgICAgICBtLnRleHQgfHwgJ2luaGVyaXQnKTsKICAgICAgICByb290LnN0
eWxlLnNldFByb3BlcnR5KHAgKyAnLWZ3JywgICAgICAgICBTdHJpbmcobS5zY2hyaWZ0Z2V3aWNo
dCB8fCA0MDApKTsKICAgICAgICByb290LnN0eWxlLnNldFByb3BlcnR5KHAgKyAnLWZzJywgICAg
ICAgICBTdHJpbmcobS5zY2hyaWZ0Z3JvZXNzZUZha3RvciB8fCAxKSk7CiAgICAgICAgcm9vdC5z
dHlsZS5zZXRQcm9wZXJ0eShwICsgJy1zaGFkb3cnLCAgICAgYm94U2hhZG93QmF1ZW4obSkpOwog
ICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHkocCArICctc2hhZG93LXB1bHMnLCBtLmdsb3dQ
dWxzID8gYm94U2hhZG93UHVsc0JhdWVuKG0pIDogYm94U2hhZG93QmF1ZW4obSkpOwogICAgICAg
IHZhciBhbmltTmFtZSA9IFBVTFNfQU5JTV9OQU1FW2tleV07CiAgICAgICAgcm9vdC5zdHlsZS5z
ZXRQcm9wZXJ0eShwICsgJy1hbmltJywgKG0uZ2xvd1B1bHMgJiYgYW5pbU5hbWUpID8gKGFuaW1O
YW1lICsgJyAzcyBlYXNlLWluLW91dCBpbmZpbml0ZScpIDogJ25vbmUnKTsKICAgIH0pOwogICAg
Ly8gU3luYy1GbGFzaC1EYXVlciBzZXBhcmF0IOKAlCB3aXJkIHZvbSBBbmltYXRpb25zLVRyaWdn
ZXIgaW4gc3luYy5qcwogICAgLy8gZ2VsZXNlbiAoZGF0YS1BdHRyaWJ1dCBhdWYgLnplbGxlLWZs
YXNoIHNldHp0IENTUy1BbmltYXRpb24tRGF1ZXIpLgogICAgdmFyIHNmID0gbWFya2llcnVuZ0F1
ZmxvZXNlbignc3luY0ZsYXNoJyk7CiAgICByb290LnN0eWxlLnNldFByb3BlcnR5KCctLW1zZi1k
YXVlcicsIChzZi5kYXVlck1zIHx8IDE1MDApICsgJ21zJyk7CgogICAgLy8gRmVyaWVuIGdlc29u
ZGVydDogLS1tZmVyLSogc3RldWVybiBkZW4gQmFsa2VuIChLb3BmKSBVTkQgLS1tZmVyLXNwYWx0
ZS1iZwogICAgLy8gZGllIFNwYWx0ZW4tVG9lbnVuZyBpbSBHcmlkLiBCZXd1c3N0IE5JQ0hUIGlt
IENTU19QUkFFRklYLUxvb3A6IGRpZSBWYXJzCiAgICAvLyB3ZXJkZW4gbnVyIGdlc2V0enQsIHdl
bm4gZGVyIFVzZXIgRmVyaWVuIHdpcmtsaWNoIGtvbmZpZ3VyaWVydCBoYXQg4oCUIHNvbnN0CiAg
ICAvLyBncmVpZmVuIGRpZSB0aGVtZS1zcGV6aWZpc2NoZW4gQ1NTLURlZmF1bHRzIChUYWcvTmFj
aHQpIGluIHN0eWxlLmNzcwogICAgLy8gd2VpdGVyIChzb25zdCB3dWVyZGUgZGFzIGhlbGxlIERl
ZmF1bHQtR3J1ZW4gYXVjaCBpbSBOYWNodG1vZHVzIGVyc2NoZWluZW4pLgogICAgdmFyIGZlclBy
b3BzID0gWyctLW1mZXItYmcnLCctLW1mZXItdGV4dCcsJy0tbWZlci1mdycsJy0tbWZlci1mcycs
Jy0tbWZlci1zaGFkb3cnLCctLW1mZXItc2hhZG93LXB1bHMnLCctLW1mZXItYW5pbScsJy0tbWZl
ci1zcGFsdGUtYmcnXTsKICAgIHZhciBmZXJLb25maWd1cmllcnQgPSAhIShaLmFkbWluICYmIFou
YWRtaW4ubWFya2llcnVuZ2VuICYmIFouYWRtaW4ubWFya2llcnVuZ2VuLmZlcmllbgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICYmIE9iamVjdC5rZXlzKFouYWRtaW4ubWFya2llcnVuZ2Vu
LmZlcmllbikubGVuZ3RoKTsKICAgIGlmIChmZXJLb25maWd1cmllcnQpIHsKICAgICAgICB2YXIg
bWYgPSBtYXJraWVydW5nQXVmbG9lc2VuKCdmZXJpZW4nKTsKICAgICAgICByb290LnN0eWxlLnNl
dFByb3BlcnR5KCctLW1mZXItYmcnLCAgICAgICAgIG1mLmhpbnRlcmdydW5kIHx8ICd0cmFuc3Bh
cmVudCcpOwogICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHkoJy0tbWZlci10ZXh0JywgICAg
ICAgbWYudGV4dCB8fCAnaW5oZXJpdCcpOwogICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHko
Jy0tbWZlci1mdycsICAgICAgICAgU3RyaW5nKG1mLnNjaHJpZnRnZXdpY2h0IHx8IDcwMCkpOwog
ICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHkoJy0tbWZlci1mcycsICAgICAgICAgU3RyaW5n
KG1mLnNjaHJpZnRncm9lc3NlRmFrdG9yIHx8IDEpKTsKICAgICAgICByb290LnN0eWxlLnNldFBy
b3BlcnR5KCctLW1mZXItc2hhZG93JywgICAgIGJveFNoYWRvd0JhdWVuKG1mKSk7CiAgICAgICAg
cm9vdC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1tZmVyLXNoYWRvdy1wdWxzJywgbWYuZ2xvd1B1bHMg
PyBib3hTaGFkb3dQdWxzQmF1ZW4obWYpIDogYm94U2hhZG93QmF1ZW4obWYpKTsKICAgICAgICBy
b290LnN0eWxlLnNldFByb3BlcnR5KCctLW1mZXItYW5pbScsICAgICAgIG1mLmdsb3dQdWxzID8g
J3B1bHNGZXJpZW4gM3MgZWFzZS1pbi1vdXQgaW5maW5pdGUnIDogJ25vbmUnKTsKICAgICAgICBy
b290LnN0eWxlLnNldFByb3BlcnR5KCctLW1mZXItc3BhbHRlLWJnJywgIG1mLnNwYWx0ZUhpbnRl
cmdydW5kIHx8ICd0cmFuc3BhcmVudCcpOwogICAgfSBlbHNlIHsKICAgICAgICBmZXJQcm9wcy5m
b3JFYWNoKGZ1bmN0aW9uKHApIHsgcm9vdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShwKTsgfSk7CiAg
ICB9Cn0KCi8vID09PT09IEFkbWluLVVJOiBFZGl0b3IgKyBMaXZlLVZvcnNjaGF1ID09PT09Ci8v
Ci8vIExheW91dCAoendlaSBTcGFsdGVuKToKLy8gICDilIzilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilJAKLy8gICDilIIgTGl2ZS1Wb3JzY2hhdSAgICAgICDilIIg
VGFiLUJhciAoNSBUeXBlbikgICAgICAgICAgICDilIIKLy8gICDilIIgKHN0aWNreSwgbGlua3Mp
ICAgICDilIIgRWRpdG9yIChha3RpdmVyIFR5cCByZWNodHMpICDilIIKLy8gICDilIIgIC0gNSBC
ZWlzcGllbHplaWxlbiDilIIgICAtIFNla3Rpb25lbiBIaW50ZXJncnVuZCAmICDilIIKLy8gICDi
lIIgIC0gRmxhc2gtVGVzdC1CdG4gICDilIIgICAgIFNjaHJpZnQgLyBSYWhtZW4gLyBHbG93ICDi
lIIKLy8gICDilIIgICAgICAgICAgICAgICAgICAgICDilIIgICAtIFJlc2V0LUtub3BmIChwcm8g
VHlwKSAgICDilIIKLy8gICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilLTilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilJgKLy8gICBTdGlja3kgRm9vdGVyOiBTcGVpY2hlcm4gKHJlY2h0cykgKyBBbGxlIHp1
cnVlY2tzZXR6ZW4gKGxpbmtzKQovLwovLyBUYWItU3RhdGUgaGFlbHQgZGVyIEVkaXRvciBzZWxi
c3QgKE1vZHVsZS1WYXIpLiBXaXJkIGJlaW0gUmUtUmVuZGVyCi8vIHVlYmVybm9tbWVuLCBkYW1p
dCBkZXIgS2xpY2sgYXVmICJTcGVpY2hlcm4iIG5pY2h0IHp1bSBlcnN0ZW4gVGFiCi8vIHp1cnVl
Y2tzcHJpbmd0LgoKdmFyIGFrdGl2ZXJUYWIgPSAnc29uZGVydGFnSGlud2Vpcyc7Ci8vIFNuYXBz
aG90IGRlcyBsZXR6dGVuIGdlc3BlaWNoZXJ0ZW4gU3RhbmRzIHZvbiBaLmFkbWluLm1hcmtpZXJ1
bmdlbiDigJQgd2lyZAovLyBmdWVyICJWZXJ3ZXJmZW4iIGJlaW0gQmVzdGFldGlndW5ncy1Nb2Rh
bCBnZWJyYXVjaHQuIEJlaW0gZXJzdGVuIFJlbmRlcgovLyBpbml0aWFsIGdlc2V0enQsIGRhbmFj
aCBuYWNoIGplZGVtIFNwZWljaGVybiBha3R1YWxpc2llcnQuCnZhciBzbmFwc2hvdE1hcmtpZXJ1
bmdlbiA9IG51bGw7CgpmdW5jdGlvbiBzbmFwc2hvdEFrdHVhbGlzaWVyZW4oKSB7CiAgICBzbmFw
c2hvdE1hcmtpZXJ1bmdlbiA9IEpTT04uc3RyaW5naWZ5KFouYWRtaW4ubWFya2llcnVuZ2VuIHx8
IHt9KTsKfQoKZnVuY3Rpb24gZGlydHlUcmFja2VyU2ljaGVyc3RlbGxlbigpIHsKICAgIGlmIChk
aXJ0eUtlbm50KCdlcnNjaGVpbnVuZ3NiaWxkJykpIHJldHVybjsKICAgIGRpcnR5UmVnaXN0cmll
cmUoJ2Vyc2NoZWludW5nc2JpbGQnLCB7CiAgICAgICAgbGFiZWw6ICdFcnNjaGVpbnVuZ3NiaWxk
JywKICAgICAgICBidG5JZHM6IFsnZXJzY2hlaW51bmctc3BlaWNoZXJuJ10sCiAgICAgICAgc2F2
ZUZuOiBmdW5jdGlvbigpIHsgcmV0dXJuIGVyc2NoZWludW5nc2JpbGRTcGVpY2hlcm4oKTsgfSwK
ICAgICAgICBkaXNjYXJkRm46IGZ1bmN0aW9uKCkgeyByZXR1cm4gZXJzY2hlaW51bmdzYmlsZFZl
cndlcmZlbigpOyB9CiAgICB9KTsKfQoKLy8gQmVpc3BpZWwtRGF0ZW4gZnVlciBkaWUgVm9yc2No
YXUtWmVpbGVuIChEYXR1bS9Xb2NoZW50YWcgcHJvIFR5cCkuCnZhciBWT1JTQ0hBVV9CRUlTUElF
TCA9IHsKICAgIHNvbmRlcnRhZ0hpbndlaXM6IHsgdGFnOiAnMjIuMDUuJywgd3Q6ICdNbycsIG5v
dGl6OiAnQnNwLiDigJ5IaW53ZWlzIi1UYWcnIH0sCiAgICBzb25kZXJ0YWdXYXJudW5nOiB7IHRh
ZzogJzIzLjA1LicsIHd0OiAnRGknLCBub3RpejogJ0JzcC4g4oCeV2FybnVuZyItVGFnJyB9LAog
ICAgZmVpZXJ0YWdXaWNodGlnOiAgeyB0YWc6ICcyNS4wNS4nLCB3dDogJ01vJywgbm90aXo6ICdC
c3AuIFBmaW5nc3Rtb250YWcnIH0sCiAgICBmZXJpZW46ICAgICAgICAgICB7IHRhZzogJzIwLjA3
LicsIHd0OiAnTW8nLCBub3RpejogJ0JzcC4gU29tbWVyZmVyaWVuJyB9LAogICAgaGV1dGVTcGFs
dGU6ICAgICAgeyB0YWc6ICcyMy4wNS4nLCB3dDogJ0ZyJywgbm90aXo6ICdCc3AuIGhldXRpZ2Ug
VGFnZXNzcGFsdGUnIH0sCiAgICBzeW5jRmxhc2g6ICAgICAgICB7IHRhZzogJ0YtREdMJywgIHd0
OiAnJywgICBub3RpejogJ0JzcC4gTGl2ZS1TeW5jLUF1ZmxldWNodGVuJyB9Cn07CgovLyA9PT09
PSBGb3JtLUtvbXBvbmVudGVuID09PT09CgpmdW5jdGlvbiBmYXJicGlja2VySHRtbChrZXksIGZl
bGQsIHdlcnQsIGxlZXJFcmxhdWJ0KSB7CiAgICB2YXIgbGVlciA9ICghd2VydCB8fCB3ZXJ0ID09
PSAnaW5oZXJpdCcgfHwgd2VydCA9PT0gJ3RyYW5zcGFyZW50Jyk7CiAgICB2YXIgZmFyYmUgPSBs
ZWVyID8gJyMwMDAwMDAnIDogd2VydDsKICAgIC8vIEtvbXBha3RlciBGYXJicGlja2VyOiAzMngy
OCBTd2F0Y2ggKyDDlyB6dW0gTGVlcmVuIChudXIgd2VubiBsZWVyRXJsYXVidCkuCiAgICAvLyBE
aXNhYmxlZC1TdGF0ZSB1ZWJlciBDU1MgdmlzdWVsbCBnZWRhZW1wZnQsIG5pY2h0IHVlYmVyIGRh
cyBIVE1MLWF0dHIg4oCUCiAgICAvLyBkYW1pdCBkZXIgS2xpY2stSGFuZGxlciBpbW1lciBmZXVl
cnQgdW5kIGRlciBUb2dnbGUgcmVhZ2llcmVuIGthbm4uCiAgICByZXR1cm4gJzxzcGFuIGNsYXNz
PSJlcnNjaGVpbnVuZy1mYXJiLXdyYXAnICsgKGxlZXIgPyAnIGxlZXInIDogJycpICsgJyI+JyAr
CiAgICAgICAgJzxpbnB1dCB0eXBlPSJjb2xvciIgY2xhc3M9ImVyc2NoZWludW5nLWlucHV0IGVy
c2NoZWludW5nLWZhcmIiIGRhdGEta2V5PSInICsga2V5ICsgJyIgZGF0YS1mZWxkPSInICsgZmVs
ZCArICciIHZhbHVlPSInICsgZXNjYXBlQXR0cihmYXJiZSkgKyAnIj4nICsKICAgICAgICAobGVl
ckVybGF1YnQKICAgICAgICAgICAgPyAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlcnNj
aGVpbnVuZy1mYXJiLXgiIGRhdGEta2V5PSInICsga2V5ICsgJyIgZGF0YS1mZWxkPSInICsgZmVs
ZCArICciIHRpdGxlPSJGYXJiZSBlbnRmZXJuZW4gLyBTdGFuZGFyZCB2ZXJ3ZW5kZW4iPicgKyAo
bGVlciA/ICcrJyA6ICfDlycpICsgJzwvYnV0dG9uPicKICAgICAgICAgICAgOiAnJykgKwogICAg
Jzwvc3Bhbj4nOwp9CgpmdW5jdGlvbiBzbGlkZXJIdG1sKGtleSwgZmVsZCwgd2VydCwgbWluLCBt
YXgsIHN0ZXAsIGVpbmhlaXQpIHsKICAgIC8vIFJhbmdlLVNsaWRlciArIHN5bmNocm9uaXNpZXJ0
ZXIgTnVtYmVyLUlucHV0IChiZWlkZSB0cmFnZW4gZGVuc2VsYmVuCiAgICAvLyBkYXRhLWtleS9k
YXRhLWZlbGQ7IGVpbiBFdmVudC1IYW5kbGVyIGltIGFwcC5qcyBzcGllZ2VsdCBkZW4gV2VydCku
CiAgICB2YXIgdiA9ICh3ZXJ0ID09IG51bGwpID8gbWluIDogd2VydDsKICAgIHZhciBhdHRycyA9
ICdkYXRhLWtleT0iJyArIGtleSArICciIGRhdGEtZmVsZD0iJyArIGZlbGQgKyAnIiBtaW49Iicg
KyBtaW4gKyAnIiBtYXg9IicgKyBtYXggKyAnIiBzdGVwPSInICsgc3RlcCArICciIHZhbHVlPSIn
ICsgZXNjYXBlQXR0cihTdHJpbmcodikpICsgJyInOwogICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJl
cnNjaGVpbnVuZy1zbGlkZXItd3JhcCI+JyArCiAgICAgICAgJzxpbnB1dCB0eXBlPSJyYW5nZSIg
IGNsYXNzPSJlcnNjaGVpbnVuZy1pbnB1dCBlcnNjaGVpbnVuZy1pbnB1dC1yYW5nZSIgJyArIGF0
dHJzICsgJz4nICsKICAgICAgICAnPGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9ImVyc2NoZWlu
dW5nLWlucHV0IGVyc2NoZWludW5nLWlucHV0LW51bSIgICAnICsgYXR0cnMgKyAnPicgKwogICAg
ICAgIChlaW5oZWl0ID8gJzxzcGFuIGNsYXNzPSJlcnNjaGVpbnVuZy1laW5oZWl0Ij4nICsgZXNj
YXBlSFRNTChlaW5oZWl0KSArICc8L3NwYW4+JyA6ICcnKSArCiAgICAnPC9kaXY+JzsKfQoKZnVu
Y3Rpb24gc2VsZWN0SHRtbChrZXksIGZlbGQsIHdlcnQsIG9wdGlvbmVuKSB7CiAgICB2YXIgb3B0
cyA9IG9wdGlvbmVuLm1hcChmdW5jdGlvbihvKSB7CiAgICAgICAgcmV0dXJuICc8b3B0aW9uIHZh
bHVlPSInICsgZXNjYXBlQXR0cihvLnYpICsgJyInICsgKFN0cmluZyhvLnYpID09PSBTdHJpbmco
d2VydCkgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+JyArIGVzY2FwZUhUTUwoby5sKSArICc8L29w
dGlvbj4nOwogICAgfSkuam9pbignJyk7CiAgICByZXR1cm4gJzxzZWxlY3QgY2xhc3M9ImVyc2No
ZWludW5nLWlucHV0IiBkYXRhLWtleT0iJyArIGtleSArICciIGRhdGEtZmVsZD0iJyArIGZlbGQg
KyAnIj4nICsgb3B0cyArICc8L3NlbGVjdD4nOwp9CgpmdW5jdGlvbiB0b2dnbGVIdG1sKGtleSwg
ZmVsZCwgd2VydCwgYmVzY2hyaWZ0dW5nKSB7CiAgICByZXR1cm4gJzxsYWJlbCBjbGFzcz0iZXJz
Y2hlaW51bmctdG9nZ2xlIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJlcnNjaGVpbnVu
Zy1pbnB1dCBlcnNjaGVpbnVuZy1pbnB1dC1jaGVjayIgZGF0YS1rZXk9IicgKyBrZXkgKyAnIiBk
YXRhLWZlbGQ9IicgKyBmZWxkICsgJyInICsgKHdlcnQgPyAnIGNoZWNrZWQnIDogJycpICsgJz48
c3BhbiBjbGFzcz0iZXJzY2hlaW51bmctdG9nZ2xlLXJhaWwiPjwvc3Bhbj48c3BhbiBjbGFzcz0i
ZXJzY2hlaW51bmctdG9nZ2xlLWxhYmVsIj4nICsgZXNjYXBlSFRNTChiZXNjaHJpZnR1bmcgfHwg
KHdlcnQgPyAnQU4nIDogJ0FVUycpKSArICc8L3NwYW4+PC9sYWJlbD4nOwp9CgovLyA9PT09PSBW
b3JzY2hhdSAobGlua3MsIHN0aWNreSkgPT09PT0KCmZ1bmN0aW9uIHZvcnNjaGF1SHRtbCgpIHsK
ICAgIHZhciBzdGFjayA9ICcnOwogICAgTUFSS0lFUlVOR0VOX01FVEEuZm9yRWFjaChmdW5jdGlv
bihtZXRhKSB7CiAgICAgICAgdmFyIGIgPSBWT1JTQ0hBVV9CRUlTUElFTFttZXRhLmtleV0gfHwg
eyB0YWc6ICc/Jywgd3Q6ICc/Jywgbm90aXo6ICcnIH07CiAgICAgICAgdmFyIGFrdGl2ID0gKG1l
dGEua2V5ID09PSBha3RpdmVyVGFiKSA/ICcgYWt0aXYnIDogJyc7CiAgICAgICAgaWYgKG1ldGEu
a2V5ID09PSAnc3luY0ZsYXNoJykgewogICAgICAgICAgICBzdGFjayArPSAnPGRpdiBjbGFzcz0i
ZXJzY2hlaW51bmctdm9yc2NoYXUtemVpbGUnICsgYWt0aXYgKyAnIiBkYXRhLXR5cD0iJyArIG1l
dGEua2V5ICsgJyI+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZXJzY2hlaW51bmct
dm9yc2NoYXUtY2VsbHMiPicgKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJlcnNj
aGVpbnVuZy12b3JzY2hhdS16ZWxsZSBlcnNjaGVpbnVuZy12b3JzY2hhdS1mbGFzaCIgZGF0YS12
b3JzY2hhdS1rZXk9IicgKyBtZXRhLmtleSArICciPicgKyBlc2NhcGVIVE1MKGIudGFnKSArICc8
L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2
IGNsYXNzPSJlcnNjaGVpbnVuZy12b3JzY2hhdS1tZXRhIj4nICsKICAgICAgICAgICAgICAgICAg
ICAnPGRpdiBjbGFzcz0iZXJzY2hlaW51bmctdm9yc2NoYXUtdHlwIj4nICsgZXNjYXBlSFRNTCht
ZXRhLmxhYmVsKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiB0eXBl
PSJidXR0b24iIGNsYXNzPSJlcnNjaGVpbnVuZy1mbGFzaC10ZXN0IGJ0bi1taW5pIj7ilrYgRmxh
c2ggdGVzdGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAg
ICAgICc8L2Rpdj4nOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN0YWNrICs9ICc8ZGl2
IGNsYXNzPSJlcnNjaGVpbnVuZy12b3JzY2hhdS16ZWlsZScgKyBha3RpdiArICciIGRhdGEtdHlw
PSInICsgbWV0YS5rZXkgKyAnIj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJlcnNj
aGVpbnVuZy12b3JzY2hhdS1jZWxscyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xh
c3M9ImVyc2NoZWludW5nLXZvcnNjaGF1LXplbGxlIiBkYXRhLXZvcnNjaGF1LWtleT0iJyArIG1l
dGEua2V5ICsgJyI+JyArIGVzY2FwZUhUTUwoYi50YWcpICsgJzwvZGl2PicgKwogICAgICAgICAg
ICAgICAgICAgICc8ZGl2IGNsYXNzPSJlcnNjaGVpbnVuZy12b3JzY2hhdS16ZWxsZSIgZGF0YS12
b3JzY2hhdS1rZXk9IicgKyBtZXRhLmtleSArICciPicgKyBlc2NhcGVIVE1MKGIud3QpICsgJzwv
ZGl2PicgKwogICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYg
Y2xhc3M9ImVyc2NoZWludW5nLXZvcnNjaGF1LW1ldGEiPicgKwogICAgICAgICAgICAgICAgICAg
ICc8ZGl2IGNsYXNzPSJlcnNjaGVpbnVuZy12b3JzY2hhdS10eXAiPicgKyBlc2NhcGVIVE1MKG1l
dGEubGFiZWwpICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJl
cnNjaGVpbnVuZy12b3JzY2hhdS1ub3RpeiI+JyArIGVzY2FwZUhUTUwoYi5ub3RpeikgKyAnPC9k
aXY+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwog
ICAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuICc8YXNpZGUgY2xhc3M9ImVyc2NoZWludW5nLXZv
cnNjaGF1LXBhbmVsIj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZXJzY2hlaW51bmctdm9yc2No
YXUtdGl0ZWwiPkxpdmUtVm9yc2NoYXU8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZXJz
Y2hlaW51bmctdm9yc2NoYXUtc3RhY2siPicgKyBzdGFjayArICc8L2Rpdj4nICsKICAgICAgICAn
PGRpdiBjbGFzcz0iZXJzY2hlaW51bmctdm9yc2NoYXUtaGlud2VpcyI+S2xpY2sgYXVmIGVpbmUg
WmVpbGUgd2VjaHNlbHQgZGVuIGFrdGl2ZW4gRWRpdG9yLVRhYi48L2Rpdj4nICsKICAgICc8L2Fz
aWRlPic7Cn0KCi8vID09PT09IFRhYi1CYXIgKHJlY2h0cyBvYmVuKSA9PT09PQovLyBKZWRlciBU
YWIgaXN0IGVpbmUgS2FydGUgbWl0IGVjaHRlciBWb3JzY2hhdSBkZXIgTWFya2llcnVuZyDigJQg
RGF0dW0rCi8vIFdvY2hlbnRhZyAoYW5hbG9nIFBsYW50YWZlbC1Lb3BmKSBiencuIFNjaGljaHRj
b2RlIGJlaSBTeW5jLUZsYXNoIOKAlAovLyB1bmQga3VyemVtIExhYmVsIGRhcnVudGVyLiBBa3Rp
dmUgS2FydGUgbWl0IGRpY2tlbSBBa3plbnQtQm9yZGVyLgoKZnVuY3Rpb24gdGFiQmFySHRtbCgp
IHsKICAgIHZhciB0YWJzID0gTUFSS0lFUlVOR0VOX01FVEEubWFwKGZ1bmN0aW9uKG1ldGEpIHsK
ICAgICAgICB2YXIgY2xzID0gJ2Vyc2NoZWludW5nLXRhYicgKyAobWV0YS5rZXkgPT09IGFrdGl2
ZXJUYWIgPyAnIGFrdGl2JyA6ICcnKTsKICAgICAgICB2YXIgYiA9IFZPUlNDSEFVX0JFSVNQSUVM
W21ldGEua2V5XSB8fCB7IHRhZzogJz8nLCB3dDogJycgfTsKICAgICAgICB2YXIgY2hpcEluaGFs
dDsKICAgICAgICBpZiAobWV0YS5rZXkgPT09ICdzeW5jRmxhc2gnKSB7CiAgICAgICAgICAgIGNo
aXBJbmhhbHQgPQogICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJlcnNjaGVpbnVuZy10YWIt
Y2hpcC10ZXh0Ij4nICsgZXNjYXBlSFRNTChiLnRhZykgKyAnPC9zcGFuPic7CiAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgY2hpcEluaGFsdCA9CiAgICAgICAgICAgICAgICAnPHNwYW4gY2xh
c3M9ImVyc2NoZWludW5nLXRhYi1jaGlwLXRhZyI+JyArIGVzY2FwZUhUTUwoYi50YWcpICsgJzwv
c3Bhbj4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iZXJzY2hlaW51bmctdGFiLWNo
aXAtd3QiPicgKyBlc2NhcGVIVE1MKGIud3QpICsgJzwvc3Bhbj4nOwogICAgICAgIH0KICAgICAg
ICAvLyBMYWJlbCBpbiB6d2VpIFplaWxlbiBhdWZ0ZWlsZW4gYW0gR2VkYW5rZW5zdHJpY2gsIGRh
bWl0IEthcnRlbgogICAgICAgIC8vIGtvbnNpc3RlbnQgYnJlaXQgKyBMYWJlbCBnbGVpY2ggaG9j
aCB3aXJrZW4uCiAgICAgICAgdmFyIGxhYmVsVGVpbGUgPSBtZXRhLmxhYmVsLnNwbGl0KCcg4oCU
ICcpOwogICAgICAgIHZhciBsYWJlbEh0bWwgPSBsYWJlbFRlaWxlLmxlbmd0aCA+IDEKICAgICAg
ICAgICAgPyAnPHNwYW4gY2xhc3M9ImVyc2NoZWludW5nLXRhYi1sYWJlbC10b3AiPicgKyBlc2Nh
cGVIVE1MKGxhYmVsVGVpbGVbMF0pICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAgICAnPHNwYW4g
Y2xhc3M9ImVyc2NoZWludW5nLXRhYi1sYWJlbC1ib3QiPicgKyBlc2NhcGVIVE1MKGxhYmVsVGVp
bGVbMV0pICsgJzwvc3Bhbj4nCiAgICAgICAgICAgIDogJzxzcGFuIGNsYXNzPSJlcnNjaGVpbnVu
Zy10YWItbGFiZWwtdG9wIj4nICsgZXNjYXBlSFRNTChtZXRhLmxhYmVsKSArICc8L3NwYW4+JzsK
ICAgICAgICByZXR1cm4gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iJyArIGNscyArICci
IGRhdGEtZXJzY2hlaW51bmctdGFiPSInICsgbWV0YS5rZXkgKyAnIj4nICsKICAgICAgICAgICAg
JzxzcGFuIGNsYXNzPSJlcnNjaGVpbnVuZy10YWItY2hpcCIgZGF0YS12b3JzY2hhdS1rZXk9Iicg
KyBtZXRhLmtleSArICciPicgKyBjaGlwSW5oYWx0ICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAg
JzxzcGFuIGNsYXNzPSJlcnNjaGVpbnVuZy10YWItbGFiZWwiPicgKyBsYWJlbEh0bWwgKyAnPC9z
cGFuPicgKwogICAgICAgICc8L2J1dHRvbj4nOwogICAgfSkuam9pbignJyk7CiAgICByZXR1cm4g
JzxkaXYgY2xhc3M9ImVyc2NoZWludW5nLXRhYi1iYXIiPicgKyB0YWJzICsgJzwvZGl2Pic7Cn0K
Ci8vID09PT09IEVkaXRvciAocmVjaHRzIHVudGVuLCBmdWVyIGFrdGl2ZW4gVHlwKSA9PT09PQoK
ZnVuY3Rpb24gZWRpdG9ySHRtbCgpIHsKICAgIHZhciBtZXRhID0gTUFSS0lFUlVOR0VOX01FVEEu
ZmluZChmdW5jdGlvbihtKSB7IHJldHVybiBtLmtleSA9PT0gYWt0aXZlclRhYjsgfSk7CiAgICBp
ZiAoIW1ldGEpIHJldHVybiAnJzsKICAgIHZhciBtID0gbWFya2llcnVuZ0F1ZmxvZXNlbihtZXRh
LmtleSk7CiAgICB2YXIgayA9IG1ldGEua2V5OwogICAgdmFyIHNjaHJpZnRnZXdpY2h0T3B0aW9u
ZW4gPSBbCiAgICAgICAgeyB2OiA0MDAsIGw6ICdOb3JtYWwnIH0sCiAgICAgICAgeyB2OiA1MDAs
IGw6ICdNZWRpdW0nIH0sCiAgICAgICAgeyB2OiA2MDAsIGw6ICdIYWxiZmV0dCcgfSwKICAgICAg
ICB7IHY6IDcwMCwgbDogJ0ZldHQnIH0sCiAgICAgICAgeyB2OiA4MDAsIGw6ICdFeHRyYSBGZXR0
JyB9CiAgICBdOwoKICAgIGZ1bmN0aW9uIHNla3Rpb24odGl0ZWwsIGluaGFsdCkgewogICAgICAg
IHJldHVybiAnPHNlY3Rpb24gY2xhc3M9ImVyc2NoZWludW5nLXNla3Rpb24iPicgKwogICAgICAg
ICAgICAnPGgzIGNsYXNzPSJlcnNjaGVpbnVuZy1zZWt0aW9uLXRpdGVsIj4nICsgZXNjYXBlSFRN
TCh0aXRlbCkgKyAnPC9oMz4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImVyc2NoZWludW5n
LXNla3Rpb24tZ3JpZCI+JyArIGluaGFsdCArICc8L2Rpdj4nICsKICAgICAgICAnPC9zZWN0aW9u
Pic7CiAgICB9CgogICAgZnVuY3Rpb24gZmVsZChsYWJlbCwgY29udHJvbCkgewogICAgICAgIHJl
dHVybiAnPGRpdiBjbGFzcz0iZXJzY2hlaW51bmctZmVsZCI+JyArCiAgICAgICAgICAgICc8bGFi
ZWwgY2xhc3M9ImVyc2NoZWludW5nLWZlbGQtbGFiZWwiPicgKyBlc2NhcGVIVE1MKGxhYmVsKSAr
ICc8L2xhYmVsPicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZXJzY2hlaW51bmctZmVsZC1j
b250cm9sIj4nICsgY29udHJvbCArICc8L2Rpdj4nICsKICAgICAgICAnPC9kaXY+JzsKICAgIH0K
CiAgICB2YXIgaGludGVyZ3J1bmRTY2hyaWZ0ID0KICAgICAgICBmZWxkKEZFTERfTkFNRU4uaGlu
dGVyZ3J1bmQsICAgICAgICAgIGZhcmJwaWNrZXJIdG1sKGssICdoaW50ZXJncnVuZCcsIG0uaGlu
dGVyZ3J1bmQsIHRydWUpKSArCiAgICAgICAgZmVsZChGRUxEX05BTUVOLnRleHQsICAgICAgICAg
ICAgICAgICBmYXJicGlja2VySHRtbChrLCAndGV4dCcsICAgICAgICBtLnRleHQsICAgICAgICB0
cnVlKSkgKwogICAgICAgIGZlbGQoRkVMRF9OQU1FTi5zY2hyaWZ0Z2V3aWNodCwgICAgICAgc2Vs
ZWN0SHRtbChrLCAnc2NocmlmdGdld2ljaHQnLCAgbS5zY2hyaWZ0Z2V3aWNodCwgc2NocmlmdGdl
d2ljaHRPcHRpb25lbikpICsKICAgICAgICBmZWxkKEZFTERfTkFNRU4uc2NocmlmdGdyb2Vzc2VG
YWt0b3IsIHNsaWRlckh0bWwoaywgJ3NjaHJpZnRncm9lc3NlRmFrdG9yJywgbS5zY2hyaWZ0Z3Jv
ZXNzZUZha3RvciwgMC44LCAxLjQsIDAuMDUsICfDlycpKSArCiAgICAgICAgLy8gRmVyaWVuIGhh
dCB6dXNhZXR6bGljaCBlaW5lIFNwYWx0ZW4tVG9lbnVuZyBmdWVyIGRpZSBGZXJpZW50YWdlIGlt
CiAgICAgICAgLy8gR3JpZCAoQmFsa2VuIG9iZW4gd2lyZCBkdXJjaCBIaW50ZXJncnVuZC9UZXh0
Ly4uLiBnZXN0eWx0KS4KICAgICAgICAoayA9PT0gJ2ZlcmllbicgPyBmZWxkKEZFTERfTkFNRU4u
c3BhbHRlSGludGVyZ3J1bmQsIGZhcmJwaWNrZXJIdG1sKGssICdzcGFsdGVIaW50ZXJncnVuZCcs
IG0uc3BhbHRlSGludGVyZ3J1bmQsIHRydWUpKSA6ICcnKTsKCiAgICB2YXIgcmFobWVuID0KICAg
ICAgICBmZWxkKEZFTERfTkFNRU4ucmFobWVuT2JlbiwgICBzbGlkZXJIdG1sKGssICdyYWhtZW5P
YmVuJywgICBtLnJhaG1lbk9iZW4sICAgMCwgOCwgMSwgJ3B4JykpICsKICAgICAgICBmZWxkKEZF
TERfTkFNRU4ucmFobWVuVW50ZW4sICBzbGlkZXJIdG1sKGssICdyYWhtZW5VbnRlbicsICBtLnJh
aG1lblVudGVuLCAgMCwgOCwgMSwgJ3B4JykpICsKICAgICAgICBmZWxkKEZFTERfTkFNRU4ucmFo
bWVuTGlua3MsICBzbGlkZXJIdG1sKGssICdyYWhtZW5MaW5rcycsICBtLnJhaG1lbkxpbmtzLCAg
MCwgOCwgMSwgJ3B4JykpICsKICAgICAgICBmZWxkKEZFTERfTkFNRU4ucmFobWVuUmVjaHRzLCBz
bGlkZXJIdG1sKGssICdyYWhtZW5SZWNodHMnLCBtLnJhaG1lblJlY2h0cywgMCwgOCwgMSwgJ3B4
JykpICsKICAgICAgICBmZWxkKEZFTERfTkFNRU4ucmFobWVuRmFyYmUsICBmYXJicGlja2VySHRt
bChrLCAncmFobWVuRmFyYmUnLCBtLnJhaG1lbkZhcmJlLCBmYWxzZSkpOwoKICAgIHZhciBnbG93
ID0KICAgICAgICBmZWxkKEZFTERfTkFNRU4uZ2xvd0ZhcmJlLCAgICAgZmFyYnBpY2tlckh0bWwo
aywgJ2dsb3dGYXJiZScsIG0uZ2xvd0ZhcmJlLCBmYWxzZSkpICsKICAgICAgICBmZWxkKEZFTERf
TkFNRU4uZ2xvd0RlY2trcmFmdCwgc2xpZGVySHRtbChrLCAnZ2xvd0RlY2trcmFmdCcsIG0uZ2xv
d0RlY2trcmFmdCwgMCwgMSwgMC4wNSwgJycpKSArCiAgICAgICAgZmVsZChGRUxEX05BTUVOLmds
b3dXZWl0ZSwgICAgIHNsaWRlckh0bWwoaywgJ2dsb3dXZWl0ZScsIG0uZ2xvd1dlaXRlLCAwLCAy
NCwgMSwgJ3B4JykpICsKICAgICAgICBmZWxkKEZFTERfTkFNRU4uZ2xvd1B1bHMsICAgICAgdG9n
Z2xlSHRtbChrLCAnZ2xvd1B1bHMnLCBtLmdsb3dQdWxzLCBtLmdsb3dQdWxzID8gJ3B1bHNpZXJ0
JyA6ICduaWNodCBwdWxzaWVyZW5kJykpOwoKICAgIHJldHVybiAnPGRpdiBjbGFzcz0iZXJzY2hl
aW51bmctZWRpdG9yIj4nICsKICAgICAgICAnPGhlYWRlciBjbGFzcz0iZXJzY2hlaW51bmctZWRp
dG9yLWtvcGYiPicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZXJzY2hlaW51bmctZWRpdG9y
LXRpdGVsemVpbGUiPicgKwogICAgICAgICAgICAgICAgJzxoMiBjbGFzcz0iZXJzY2hlaW51bmct
ZWRpdG9yLXRpdGVsIj4nICsgZXNjYXBlSFRNTChtZXRhLmxhYmVsKSArICc8L2gyPicgKwogICAg
ICAgICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLW1pbmkgZXJzY2hl
aW51bmctdHlwLXJlc2V0IiBkYXRhLXR5cD0iJyArIGsgKyAnIj7ihrogRGllc2VuIFR5cCB6dXLD
vGNrc2V0emVuPC9idXR0b24+JyArCiAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAg
JzxwIGNsYXNzPSJlcnNjaGVpbnVuZy1lZGl0b3Itc3ViIj4nICsgZXNjYXBlSFRNTChtZXRhLmJl
c2NocmVpYnVuZykgKyAnPC9wPicgKwogICAgICAgICc8L2hlYWRlcj4nICsKICAgICAgICAnPGRp
diBjbGFzcz0iZXJzY2hlaW51bmctZWRpdG9yLWJvZHkiPicgKwogICAgICAgICAgICBzZWt0aW9u
KCdIaW50ZXJncnVuZCAmIFNjaHJpZnQnLCBoaW50ZXJncnVuZFNjaHJpZnQpICsKICAgICAgICAg
ICAgc2VrdGlvbignUmFobWVuJywgICAgICAgICAgICAgICAgcmFobWVuKSArCiAgICAgICAgICAg
IHNla3Rpb24oJ0dsb3cnICsgKGsgPT09ICdzeW5jRmxhc2gnID8gJyAmIEFuaW1hdGlvbicgOiAn
JyksIGdsb3cgKyAoayA9PT0gJ3N5bmNGbGFzaCcgPyBmZWxkKCdBbmltYXRpb25zLURhdWVyJywg
c2xpZGVySHRtbChrLCAnZGF1ZXJNcycsIG0uZGF1ZXJNcyB8fCAxNTAwLCAyMDAsIDUwMDAsIDEw
MCwgJ21zJykpIDogJycpKSArCiAgICAgICAgJzwvZGl2PicgKwogICAgJzwvZGl2Pic7Cn0KCi8v
ID09PT09IFJlbmRlci1FaW5zdGllZyA9PT09PQoKZXhwb3J0IGZ1bmN0aW9uIGVyc2NoZWludW5n
c2JpbGRSZW5kZXJuKCkgewogICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZXJzY2hlaW51bmdzYmlsZC1pbmhhbHQnKTsKICAgIGlmICghaG9zdCkgewogICAgICAgIGNvbnNv
bGUud2FybignW1ZJM10gRXJzY2hlaW51bmdzYmlsZDogQ29udGFpbmVyICNlcnNjaGVpbnVuZ3Ni
aWxkLWluaGFsdCBuaWNodCBpbSBET00gZ2VmdW5kZW4g4oCUIEVkaXRvciBrYW5uIG5pY2h0IGdl
cmVuZGVydCB3ZXJkZW4uIFNlcnZlci1Bc3NldC1DYWNoZSBtb2VnbGljaGVyd2Vpc2UgdmVyYWx0
ZXQgKFNlcnZlciBuZXUgc3RhcnRlbiArIFN0cmcrU2hpZnQrUikuJyk7CiAgICAgICAgcmV0dXJu
OwogICAgfQogICAgaWYgKHNuYXBzaG90TWFya2llcnVuZ2VuID09PSBudWxsKSBzbmFwc2hvdEFr
dHVhbGlzaWVyZW4oKTsKICAgIGRpcnR5VHJhY2tlclNpY2hlcnN0ZWxsZW4oKTsKICAgIHRyeSB7
CiAgICAgICAgaG9zdC5pbm5lckhUTUwgPQogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZXJzY2hl
aW51bmctbGF5b3V0Ij4nICsKICAgICAgICAgICAgICAgIHZvcnNjaGF1SHRtbCgpICsKICAgICAg
ICAgICAgICAgICc8bWFpbiBjbGFzcz0iZXJzY2hlaW51bmctZWRpdG9yLXNwYWx0ZSI+JyArCiAg
ICAgICAgICAgICAgICAgICAgdGFiQmFySHRtbCgpICsKICAgICAgICAgICAgICAgICAgICBlZGl0
b3JIdG1sKCkgKwogICAgICAgICAgICAgICAgJzwvbWFpbj4nICsKICAgICAgICAgICAgJzwvZGl2
PicgKwogICAgICAgICAgICAnPGZvb3RlciBjbGFzcz0iZXJzY2hlaW51bmctZm9vdGVyIj4nICsK
ICAgICAgICAgICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vj
IiBpZD0iZXJzY2hlaW51bmctenVydWVja3NldHplbiI+QWxsZSBhdWYgU3RhbmRhcmQgenVyw7xj
a3NldHplbjwvYnV0dG9uPicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImVyc2NoZWlu
dW5nLWZvb3Rlci1pbmZvIj7DhG5kZXJ1bmdlbiB3aXJrZW4gc29mb3J0IGFscyBWb3JzY2hhdS4g
RXJzdCDigJ5TcGVpY2hlcm4iIHBlcnNpc3RpZXJ0IHNpZS48L2Rpdj4nICsKICAgICAgICAgICAg
ICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgaWQ9ImVy
c2NoZWludW5nLXNwZWljaGVybiI+U3BlaWNoZXJuPC9idXR0b24+JyArCiAgICAgICAgICAgICc8
L2Zvb3Rlcj4nOwogICAgfSBjYXRjaCAoZSkgewogICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tWSTNd
IEVyc2NoZWludW5nc2JpbGQtUmVuZGVyIGZlaGxnZXNjaGxhZ2VuOicsIGUpOwogICAgICAgIGhv
c3QuaW5uZXJIVE1MID0gJzxkaXYgc3R5bGU9InBhZGRpbmc6MTZweDtjb2xvcjojYjAyMDIwO2Jh
Y2tncm91bmQ6I2ZmZjRmNDtib3JkZXI6MXB4IHNvbGlkICNmMGMwYzA7Ym9yZGVyLXJhZGl1czo2
cHgiPicgKwogICAgICAgICAgICAnPHN0cm9uZz5FZGl0b3Iga29ubnRlIG5pY2h0IGdlcmVuZGVy
dCB3ZXJkZW4uPC9zdHJvbmc+PGJyPicgKwogICAgICAgICAgICBlc2NhcGVIVE1MKGUgJiYgZS5t
ZXNzYWdlID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpKSArCiAgICAgICAgICAgICc8YnI+PGJyPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjojNjY2Ij5EZXRhaWxzIGluIGRlciBEZXZU
b29scy1Lb25zb2xlIChGMTIpLjwvc3Bhbj48L2Rpdj4nOwogICAgfQp9CgovLyBXZWNoc2VsdCBk
ZW4gYWt0aXZlbiBUYWIgKEVkaXRvci1TcGFsdGUpIHVuZCByZS1yZW5kZXJ0IG9obmUgVm9yc2No
YXUgenUKLy8gcmVzZXR0ZW4gKFZvcnNjaGF1IGlzdCBvaG5laGluIHRoZW1lLXVlYmVyZ3JlaWZl
bmQgZ2VzcGllZ2VsdCkuCmV4cG9ydCBmdW5jdGlvbiBlcnNjaGVpbnVuZ3NUYWJXZWNoc2Vsbihu
ZXVlclRhYikgewogICAgaWYgKCFNQVJLSUVSVU5HRU5fTUVUQS5maW5kKGZ1bmN0aW9uKG0pIHsg
cmV0dXJuIG0ua2V5ID09PSBuZXVlclRhYjsgfSkpIHJldHVybjsKICAgIGFrdGl2ZXJUYWIgPSBu
ZXVlclRhYjsKICAgIGVyc2NoZWludW5nc2JpbGRSZW5kZXJuKCk7Cn0KCi8vIEVpbnplbG5lbiBU
eXAgYXVmIERlZmF1bHQgenVydWVja3NldHplbiAoaW4tbWVtb3J5OyBzcGVpY2hlcnQgZXJzdCBi
ZWltCi8vICJTcGVpY2hlcm4iLUtsaWNrKS4KZXhwb3J0IGZ1bmN0aW9uIGVyc2NoZWludW5nc1R5
cFp1cnVlY2tzZXR6ZW4odHlwKSB7CiAgICBpZiAoWi5hZG1pbi5tYXJraWVydW5nZW4gJiYgWi5h
ZG1pbi5tYXJraWVydW5nZW5bdHlwXSkgewogICAgICAgIGRlbGV0ZSBaLmFkbWluLm1hcmtpZXJ1
bmdlblt0eXBdOwogICAgfQogICAgbWFya2llcnVuZ2VuQW53ZW5kZW4oKTsKICAgIGVyc2NoZWlu
dW5nc2JpbGRSZW5kZXJuKCk7CiAgICBpZiAoZGlydHlLZW5udCgnZXJzY2hlaW51bmdzYmlsZCcp
KSB7CiAgICAgICAgdmFyIGpldHp0ID0gSlNPTi5zdHJpbmdpZnkoWi5hZG1pbi5tYXJraWVydW5n
ZW4gfHwge30pOwogICAgICAgIGRpcnR5U2V0emVuKCdlcnNjaGVpbnVuZ3NiaWxkJywgamV0enQg
IT09IHNuYXBzaG90TWFya2llcnVuZ2VuKTsKICAgIH0KfQoKLy8gRmFyYi1YLUJ1dHRvbjogVG9n
Z2xlIHp3aXNjaGVuICJGYXJiZSBnZXNldHp0IiB1bmQgIlN0YW5kYXJkIgpleHBvcnQgZnVuY3Rp
b24gZXJzY2hlaW51bmdGYXJiZVRvZ2dsZShrZXksIGZlbGQpIHsKICAgIGlmICghWi5hZG1pbi5t
YXJraWVydW5nZW4pIFouYWRtaW4ubWFya2llcnVuZ2VuID0ge307CiAgICBpZiAoIVouYWRtaW4u
bWFya2llcnVuZ2VuW2tleV0pIFouYWRtaW4ubWFya2llcnVuZ2VuW2tleV0gPSB7fTsKICAgIHZh
ciBha3R1ZWxsID0gWi5hZG1pbi5tYXJraWVydW5nZW5ba2V5XVtmZWxkXTsKICAgIGlmIChha3R1
ZWxsID09PSAnJyB8fCBha3R1ZWxsID09PSBudWxsKSB7CiAgICAgICAgLy8gQXVmIERlZmF1bHQg
enVydWVja3NldHplbgogICAgICAgIGRlbGV0ZSBaLmFkbWluLm1hcmtpZXJ1bmdlbltrZXldW2Zl
bGRdOwogICAgfSBlbHNlIHsKICAgICAgICAvLyBMZWVyIHNldHplbgogICAgICAgIFouYWRtaW4u
bWFya2llcnVuZ2VuW2tleV1bZmVsZF0gPSAnJzsKICAgIH0KICAgIG1hcmtpZXJ1bmdlbkFud2Vu
ZGVuKCk7CiAgICBlcnNjaGVpbnVuZ3NiaWxkUmVuZGVybigpOwogICAgaWYgKGRpcnR5S2VubnQo
J2Vyc2NoZWludW5nc2JpbGQnKSkgewogICAgICAgIHZhciBqZXR6dCA9IEpTT04uc3RyaW5naWZ5
KFouYWRtaW4ubWFya2llcnVuZ2VuIHx8IHt9KTsKICAgICAgICBkaXJ0eVNldHplbignZXJzY2hl
aW51bmdzYmlsZCcsIGpldHp0ICE9PSBzbmFwc2hvdE1hcmtpZXJ1bmdlbik7CiAgICB9Cn0KCi8v
ID09PT09IFdlcnRlIGVpbnNhbW1lbG4gKyBTcGVpY2hlcm4gPT09PT0KLy8KLy8gV2ljaHRpZzog
bnVyIGRpZSBpbSBET00gdm9yaGFuZGVuZW4gSW5wdXRzIHdlcmRlbiBhdXNnZWxlc2VuLiBEYSBk
ZXIKLy8gbmV1ZSBFZGl0b3IgamV3ZWlscyBudXIgZWluZW4gVHlwLUJsb2NrIHNpY2h0YmFyIHpl
aWd0IChUYWItU3dpdGNoZXIpLAovLyBkdWVyZmVuIG5pY2h0LXNpY2h0YmFyZSBUeXBlbiBOSUNI
VCBhdWYge30genVydWVja2dlc2V0enQgd2VyZGVuIOKAlCBkYWhlcgovLyBsaWVmZXJ0IGlucHV0
c0F1c2xlc2VuKCkgZWluIHBhcnRpZWxsZXMgT2JqZWt0IHVuZCBkZXIgQXVmcnVmZXIgbWVyZ3Qu
CgpmdW5jdGlvbiBpbnB1dHNBdXNsZXNlbigpIHsKICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2Vyc2NoZWludW5nc2JpbGQtaW5oYWx0Jyk7CiAgICBpZiAoIWhvc3QpIHJl
dHVybiBudWxsOwogICAgdmFyIHJlc3VsdCA9IHt9OwogICAgdmFyIGlucHV0cyA9IGhvc3QucXVl
cnlTZWxlY3RvckFsbCgnLmVyc2NoZWludW5nLWlucHV0Jyk7CiAgICBpbnB1dHMuZm9yRWFjaChm
dW5jdGlvbihpbnApIHsKICAgICAgICB2YXIga2V5ID0gaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1r
ZXknKTsKICAgICAgICB2YXIgZmVsZCA9IGlucC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmVsZCcpOwog
ICAgICAgIGlmICgha2V5IHx8ICFmZWxkKSByZXR1cm47CiAgICAgICAgdmFyIHdlcnQ7CiAgICAg
ICAgaWYgKGlucC50eXBlID09PSAnY2hlY2tib3gnKSB7CiAgICAgICAgICAgIHdlcnQgPSBpbnAu
Y2hlY2tlZDsKICAgICAgICB9IGVsc2UgaWYgKGlucC50eXBlID09PSAnbnVtYmVyJyB8fCBpbnAu
dHlwZSA9PT0gJ3JhbmdlJykgewogICAgICAgICAgICB3ZXJ0ID0gcGFyc2VGbG9hdChpbnAudmFs
dWUpOwogICAgICAgICAgICBpZiAoaXNOYU4od2VydCkpIHdlcnQgPSAwOwogICAgICAgIH0gZWxz
ZSBpZiAoaW5wLnR5cGUgPT09ICdjb2xvcicpIHsKICAgICAgICAgICAgLy8gRmFyYnBpY2tlci1X
cmFwIG1pdCBLbGFzc2UgLmxlZXIgPSAiU3RhbmRhcmQgdmVyd2VuZGVuIgogICAgICAgICAgICB2
YXIgd3JhcCA9IGlucC5jbG9zZXN0KCcuZXJzY2hlaW51bmctZmFyYi13cmFwJyk7CiAgICAgICAg
ICAgIGlmICh3cmFwICYmIHdyYXAuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWVyJykpIHdlcnQgPSAn
JzsKICAgICAgICAgICAgZWxzZSB3ZXJ0ID0gaW5wLnZhbHVlOwogICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgIHdlcnQgPSBpbnAudmFsdWU7CiAgICAgICAgICAgIGlmIChmZWxkID09PSAnc2No
cmlmdGdld2ljaHQnKSB3ZXJ0ID0gcGFyc2VJbnQod2VydCwgMTApIHx8IDQwMDsKICAgICAgICB9
CiAgICAgICAgaWYgKCFyZXN1bHRba2V5XSkgcmVzdWx0W2tleV0gPSB7fTsKICAgICAgICByZXN1
bHRba2V5XVtmZWxkXSA9IHdlcnQ7CiAgICB9KTsKICAgIHJldHVybiByZXN1bHQ7Cn0KCi8vIE1l
cmdlLUhlbHBlcjogc2NocmVpYnQgbnVyIGRpZSBleHBsaXppdCBnZWxlc2VuZW4gRmVsZGVyIGlu
Ci8vIFouYWRtaW4ubWFya2llcnVuZ2VuIOKAlCBhbmRlcmUgVGFiLVdlcnRlIGJsZWliZW4gdW5h
bmdldGFzdGV0LgpmdW5jdGlvbiBtZXJnZU5hY2hTdGF0ZSh3ZXJ0ZSkgewogICAgaWYgKCF3ZXJ0
ZSkgcmV0dXJuOwogICAgaWYgKCFaLmFkbWluLm1hcmtpZXJ1bmdlbikgWi5hZG1pbi5tYXJraWVy
dW5nZW4gPSB7fTsKICAgIE9iamVjdC5rZXlzKHdlcnRlKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsK
ICAgICAgICBpZiAoIVouYWRtaW4ubWFya2llcnVuZ2VuW2tdKSBaLmFkbWluLm1hcmtpZXJ1bmdl
bltrXSA9IHt9OwogICAgICAgIE9iamVjdC5rZXlzKHdlcnRlW2tdKS5mb3JFYWNoKGZ1bmN0aW9u
KGYpIHsKICAgICAgICAgICAgWi5hZG1pbi5tYXJraWVydW5nZW5ba11bZl0gPSB3ZXJ0ZVtrXVtm
XTsKICAgICAgICB9KTsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gZXJzY2hlaW51bmdzYmls
ZFNwZWljaGVybigpIHsKICAgIC8vIEFrdGl2ZSBUYWItSW5wdXRzIGF1c2xlc2VuICsgaW4gWi5h
ZG1pbi5tYXJraWVydW5nZW4gbWVyZ2VuIChXZXJ0ZQogICAgLy8gYW5kZXJlciBUYWJzIHNpbmQg
ZG9ydCBkdXJjaCB2b3JhdXNnZWdhbmdlbmUgdm9yc2NoYXVBa3R1YWxpc2llcmVuLQogICAgLy8g
Q2FsbHMgYnp3LiBJbml0aWFsLUxvYWQgc2Nob24ga29ycmVrdCkuCiAgICBtZXJnZU5hY2hTdGF0
ZShpbnB1dHNBdXNsZXNlbigpKTsKICAgIHJldHVybiBhcGlQdXQoJy9hcGkvYWRtaW4nLCBaLmFk
bWluKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgIHRvYXN0KCdFcnNjaGVpbnVuZ3NiaWxkIGdl
c3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgIG1hcmtpZXJ1bmdlbkFud2VuZGVuKCk7CiAg
ICAgICAgc25hcHNob3RBa3R1YWxpc2llcmVuKCk7CiAgICAgICAgZGlydHlTZXR6ZW4oJ2Vyc2No
ZWludW5nc2JpbGQnLCBmYWxzZSk7CiAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHsKICAgICAg
ICB0b2FzdCgnU3BlaWNoZXJuIGZlaGxnZXNjaGxhZ2VuOiAnICsgKGVyciAmJiBlcnIubWVzc2Fn
ZSB8fCAndW5iZWthbm50JyksICdmZWhsZXInKTsKICAgICAgICB0aHJvdyBlcnI7CiAgICB9KTsK
fQoKZXhwb3J0IGZ1bmN0aW9uIGVyc2NoZWludW5nc2JpbGRadXJ1ZWNrc2V0emVuKCkgewogICAg
aWYgKFouYWRtaW4ubWFya2llcnVuZ2VuKSBkZWxldGUgWi5hZG1pbi5tYXJraWVydW5nZW47CiAg
ICByZXR1cm4gYXBpUHV0KCcvYXBpL2FkbWluJywgWi5hZG1pbikudGhlbihmdW5jdGlvbigpIHsK
ICAgICAgICB0b2FzdCgnQXVmIFN0YW5kYXJkIHp1csO8Y2tnZXNldHp0JywgJ2VyZm9sZycpOwog
ICAgICAgIG1hcmtpZXJ1bmdlbkFud2VuZGVuKCk7CiAgICAgICAgc25hcHNob3RBa3R1YWxpc2ll
cmVuKCk7CiAgICAgICAgZGlydHlTZXR6ZW4oJ2Vyc2NoZWludW5nc2JpbGQnLCBmYWxzZSk7CiAg
ICAgICAgZXJzY2hlaW51bmdzYmlsZFJlbmRlcm4oKTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVy
cikgewogICAgICAgIHRvYXN0KCdadXLDvGNrc2V0emVuIGZlaGxnZXNjaGxhZ2VuOiAnICsgKGVy
ciAmJiBlcnIubWVzc2FnZSB8fCAndW5iZWthbm50JyksICdmZWhsZXInKTsKICAgIH0pOwp9Cgov
LyBWZXJ3aXJmdCBkaWUgaW4tbWVtb3J5LUFlbmRlcnVuZ2VuIHVuZCBzdGVsbHQgZGVuIGxldHp0
ZW4gZ2VzcGVpY2hlcnRlbgovLyBTdGFuZCAoU25hcHNob3QpIHdpZWRlciBoZXIg4oCUIEF1ZnJ1
ZmVyIGlzdCBkZXIgIlZlcndlcmZlbiItQnV0dG9uIGltCi8vIGRpcnR5UHJ1ZWZlbi1Nb2RhbCBi
ZWltIFZlcmxhc3NlbiBkZXMgVGFicy4KZXhwb3J0IGZ1bmN0aW9uIGVyc2NoZWludW5nc2JpbGRW
ZXJ3ZXJmZW4oKSB7CiAgICBpZiAoc25hcHNob3RNYXJraWVydW5nZW4pIHsKICAgICAgICB0cnkg
eyBaLmFkbWluLm1hcmtpZXJ1bmdlbiA9IEpTT04ucGFyc2Uoc25hcHNob3RNYXJraWVydW5nZW4p
OyB9CiAgICAgICAgY2F0Y2goZSkgeyBaLmFkbWluLm1hcmtpZXJ1bmdlbiA9IHt9OyB9CiAgICB9
IGVsc2UgewogICAgICAgIGRlbGV0ZSBaLmFkbWluLm1hcmtpZXJ1bmdlbjsKICAgIH0KICAgIG1h
cmtpZXJ1bmdlbkFud2VuZGVuKCk7CiAgICBlcnNjaGVpbnVuZ3NiaWxkUmVuZGVybigpOwogICAg
cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwp9CgovLyA9PT09PSBMaXZlLVZvcnNjaGF1IGJlaSBq
ZWRlciBBZW5kZXJ1bmcgPT09PT0KLy8gV2lyZCB2b20gRXZlbnQtSGFuZGxlciBhdWZnZXJ1ZmVu
LCBvaG5lIHp1IHNwZWljaGVybi4KCmV4cG9ydCBmdW5jdGlvbiB2b3JzY2hhdUFrdHVhbGlzaWVy
ZW4oKSB7CiAgICAvLyBOdXIgZGllIGFrdHVlbGwgaW0gRE9NIHNpY2h0YmFyZW4gSW5wdXRzICg9
IGFrdGl2ZXIgRWRpdG9yLVRhYikKICAgIC8vIGluIGRlbiBTdGF0ZSBtZXJnZW4uIFdlcnRlIGFu
ZGVyZXIgVGFicyBibGVpYmVuIHNvIGVyaGFsdGVuIOKAlAogICAgLy8gd2ljaHRpZywgd2VpbCBk
aWUgbmljaHQtc2ljaHRiYXJlbiBFZGl0b3JlbiBiZWltIFRhYi1Td2l0Y2gKICAgIC8vIHJlLXJl
bmRlcnQgd2VyZGVuIHVuZCBpaHJlIFdlcnRlIGF1cyBaLmFkbWluLm1hcmtpZXJ1bmdlbiB6aWVo
ZW4uCiAgICBtZXJnZU5hY2hTdGF0ZShpbnB1dHNBdXNsZXNlbigpKTsKICAgIG1hcmtpZXJ1bmdl
bkFud2VuZGVuKCk7CiAgICAvLyBTb2JhbGQgZGVyIFN0YXRlIHZvbSBTbmFwc2hvdCBhYndlaWNo
dCwgZ2lsdCBkZXIgVGFiIGFscyBkaXJ0eS4KICAgIC8vIFdpciB2ZXJnbGVpY2hlbiBKU09OLXNl
cmlhbGlzaWVydCDigJQgYXVzcmVpY2hlbmQgZ2VuYXUgZnVlciBkZW4gVXNlLQogICAgLy8gQ2Fz
ZSAoa2VpbmUgZ3Jvc3NlbiBPYmpla3RlLCBrZWluIFJlaWhlbmZvbGdlbi1BZXJnZXIpLgogICAg
aWYgKGRpcnR5S2VubnQoJ2Vyc2NoZWludW5nc2JpbGQnKSkgewogICAgICAgIHZhciBqZXR6dCA9
IEpTT04uc3RyaW5naWZ5KFouYWRtaW4ubWFya2llcnVuZ2VuIHx8IHt9KTsKICAgICAgICBkaXJ0
eVNldHplbignZXJzY2hlaW51bmdzYmlsZCcsIGpldHp0ICE9PSBzbmFwc2hvdE1hcmtpZXJ1bmdl
bik7CiAgICB9Cn0KCi8vID09PT09IFN5bmMtRmxhc2ggZ2V6aWVsdCBhYnNwaWVsZW4gPT09PT0K
Ly8gTWFudWVsbCB1ZWJlciBkZW4gIkZsYXNoLVZvcnNjaGF1IGFic3BpZWxlbiItQnV0dG9uLgoK
ZXhwb3J0IGZ1bmN0aW9uIHN5bmNGbGFzaFZvcnNjaGF1KCkgewogICAgdmFyIHplbGxlID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignLmVyc2NoZWludW5nLXZvcnNjaGF1LWZsYXNoJyk7CiAgICBp
ZiAoIXplbGxlKSByZXR1cm47CiAgICB6ZWxsZS5jbGFzc0xpc3QucmVtb3ZlKCd6ZWxsZS1mbGFz
aCcpOwogICAgdm9pZCB6ZWxsZS5vZmZzZXRXaWR0aDsKICAgIHplbGxlLmNsYXNzTGlzdC5hZGQo
J3plbGxlLWZsYXNoJyk7CiAgICB2YXIgc2YgPSBtYXJraWVydW5nQXVmbG9lc2VuKCdzeW5jRmxh
c2gnKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHplbGxlLmNsYXNzTGlzdC5yZW1vdmUo
J3plbGxlLWZsYXNoJyk7IH0sIChzZi5kYXVlck1zIHx8IDE1MDApICsgNTApOwp9Cg==
### FILE: js/admin_kalender.js | 26489
Ly8gPT09IGFkbWluX2thbGVuZGVyLmpzID09PQovLyBQaGFzZSA5LUIgQzM6IGF1cyBhZG1pbi5q
cyBleHRyYWhpZXJ0LiBCdWVuZGVsdCBkaWUgZHJlaSBLYWxlbmRlci0KLy8gbmFoZW4gQWRtaW4t
RnVua3Rpb25lbjoKLy8gICAxLiBGZWllcnRhZ2UgKFouYWRtaW4uZmVpZXJ0YWdlKQovLyAgIDIu
IEZlcmllbiAoWi5hZG1pbi5mZXJpZW4pCi8vICAgMy4gU29uZGVydGVybWluZSAoWi5hZG1pbi5z
b25kZXJ0ZXJtaW5lIOKAlCBmcmVpIGRhdGllcmJhcmUgSGlud2Vpc2UKLy8gICAgICBhdWYgZWlu
emVsbmUgVGFnZSBvZGVyIFRhZ2VzYmVyZWljaGUsIFJpY2gtVGV4dCB2aWEgUlRFKQovLwovLyBF
eHRlcm5lciBLb25zdW1lbnQ6IHdvY2hlbnBsYW4uanMgaW1wb3J0aWVydCBzb25kZXJUaXRlbEF1
c1RleHQKLy8gYXVzICcuL2FkbWluLmpzJyAoUGFzcy1UaHJvdWdoLVJlLUV4cG9ydCk7IGFiIFBo
YXNlIDktQiBDNSBkYW5uCi8vIGRpcmVrdCBhdXMgJy4vYWRtaW5fa2FsZW5kZXIuanMnLgoKaW1w
b3J0IHsgWiB9IGZyb20gJy4vY29yZV9zdGF0ZS5qcyc7CmltcG9ydCB7IGVzY2FwZUhUTUwsIGVz
Y2FwZUF0dHIsIGRhdHVtRm9ybWF0REUgfSBmcm9tICcuL2NvcmVfdXRpbC5qcyc7CmltcG9ydCB7
IGFwaVB1dCB9IGZyb20gJy4vY29yZV9hcGkuanMnOwppbXBvcnQgeyB0YWJlbGxlRmVsZGVyTGVz
ZW4gfSBmcm9tICcuL2FkbWluX2NvbW1vbi5qcyc7CmltcG9ydCB7CnRvYXN0LCBiZXN0YWV0aWdl
biwKbW9kYWxaZWlnZW4sIG1vZGFsU2NobGllc3NlbiwKZW50d3VyZkxvZXNjaGVuCn0gZnJvbSAn
Li91aV9kaWFsb2cuanMnOwppbXBvcnQgewpzYW5pdGl6ZVJpY2hIdG1sLCBydGVJbml0LCBFTU9K
SV9TRVQsCmVtb2ppUGlja2VyWmVpZ2VuLCBlbW9qaVBpY2tlclNjaGxpZXNzZW4KfSBmcm9tICcu
L3VpX3J0ZS5qcyc7CmltcG9ydCB7CktBVEVHT1JJRV9JQ09OX0RFRkFVTFQsCmtvcGZSZW5kZXJu
LCB0YWdJbmZvc0JlcmVjaG5lbgp9IGZyb20gJy4vZ3JpZF9yZW5kZXIuanMnOwovLyBmZWF0dXJl
SXN0QWt0aXYgbGVidCBpbSBCb290c3RyYXAtVGVpbCB2b24gYWRtaW4uanMgKEZlYXR1cmUtVG9n
Z2xlcykuCi8vIFdpcmQgaGllciBmdWVyIGRhcyBzb25kZXJ0ZXJtaW5lV2ljaHRpZy1GbGFnIGdl
YnJhdWNodCAoU29uZGVydGVybWluLQovLyBNYXJraWVydW5nICd3aWNodGlnJyBVSSBvcHRpb25h
bCBlaW4tL2F1c2JsZW5kZW4pLgovLyBhZG1pbkVtcHR5WmVpbGU6IEVtcHR5LVN0YXRlLUthcnRl
IGFscyA8dHI+IGZ1ZXIgbGVlcmUgTGlzdGVuLgppbXBvcnQgeyBmZWF0dXJlSXN0QWt0aXYsIGFk
bWluRW1wdHlaZWlsZSB9IGZyb20gJy4vYWRtaW4uanMnOwoKLy8gPT09PT0gQWRtaW46IEZlaWVy
dGFnZSA9PT09PQoKdmFyIEZFSUVSVEFHX0tBVEVHT1JJRU4gPSBbJ2dlc2V0emxpY2gnLCAnanVl
ZGlzY2gnLCAnbXVzbGltaXNjaCcsICd0dWVya2lzY2gnXTsKdmFyIEZFSUVSVEFHX0tBVF9MQUJF
TCA9IHsKICAgIGdlc2V0emxpY2g6ICdHZXNldHpsaWNoIChOUlcpJywKICAgIGp1ZWRpc2NoOiAn
SsO8ZGlzY2gnLAogICAgbXVzbGltaXNjaDogJ011c2xpbWlzY2gnLAogICAgdHVlcmtpc2NoOiAn
VMO8cmtpc2NoJwp9OwoKZnVuY3Rpb24gZmVpZXJ0YWdlSmFocmVPcHRpb25lbigpIHsKICAgIC8v
IEVpbnppZ2FydGlnZSBKYWhyZSBhdXMgZGVuIHZvcmhhbmRlbmVuIERhdGVuICsgYWt0dWVsbGVz
IEphaHIgKwogICAgLy8gMjAyNi4uMjAzNSAoU3RhbmRhcmQtRGF0ZW5iYXNpcyksIGF1ZnN0ZWln
ZW5kLgogICAgdmFyIHNldCA9IHt9OwogICAgKFouYWRtaW4uZmVpZXJ0YWdlIHx8IFtdKS5mb3JF
YWNoKGZ1bmN0aW9uKGYpIHsKICAgICAgICBpZiAoZi5kYXR1bSAmJiBmLmRhdHVtLmxlbmd0aCA+
PSA0KSBzZXRbZi5kYXR1bS5zdWJzdHIoMCwgNCldID0gdHJ1ZTsKICAgIH0pOwogICAgZm9yICh2
YXIgaiA9IDIwMjY7IGogPD0gMjAzNTsgaisrKSBzZXRbU3RyaW5nKGopXSA9IHRydWU7CiAgICB2
YXIgaGV1dGUgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7CiAgICBzZXRbU3RyaW5nKGhldXRl
KV0gPSB0cnVlOwogICAgdmFyIGphaHJlID0gT2JqZWN0LmtleXMoc2V0KS5zb3J0KCk7CiAgICBy
ZXR1cm4gamFocmU7Cn0KCmV4cG9ydCBmdW5jdGlvbiBmZWllcnRhZ2VGaWx0ZXJGdWVsbGVuKCkg
ewogICAgdmFyIHNlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmZWllcnRhZ2UtZmlsdGVy
LWphaHInKTsKICAgIGlmICghc2VsKSByZXR1cm47CiAgICB2YXIgYWt0dWVsbCA9IHNlbC52YWx1
ZSB8fCBTdHJpbmcoWi5hZG1pbi5qYWhyIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSk7CiAg
ICB2YXIgaHRtbCA9ICc8b3B0aW9uIHZhbHVlPSJhbGxlIj5BbGxlIEphaHJlPC9vcHRpb24+JzsK
ICAgIGZlaWVydGFnZUphaHJlT3B0aW9uZW4oKS5mb3JFYWNoKGZ1bmN0aW9uKGopIHsKICAgICAg
ICBodG1sICs9ICc8b3B0aW9uIHZhbHVlPSInICsgZXNjYXBlQXR0cihqKSArICciJyArIChqID09
PSBha3R1ZWxsID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPicgKyBlc2NhcGVIVE1MKGopICsgJzwv
b3B0aW9uPic7CiAgICB9KTsKICAgIHNlbC5pbm5lckhUTUwgPSBodG1sOwp9CgpleHBvcnQgZnVu
Y3Rpb24gZmVpZXJ0YWdlVGFiZWxsZVJlbmRlcm4oKSB7CiAgICAvLyBTb3J0aWVydW5nOiBuYWNo
IERhdHVtLCBkYW5uIEthdGVnb3JpZS4gZGF0YS1pZHggPSBET00tUmVpaGVuZm9sZ2UsCiAgICAv
LyB3aXJkIGJlaW0gU2F2ZSBhbHMgbmV1ZXMgQXJyYXkgenVydWVja2dlc2NocmllYmVuICh2Z2wu
CiAgICAvLyBmZWllcnRhZ2VBdXNUYWJlbGxlTGVzZW4pLgogICAgdmFyIGxpc3RlID0gKFouYWRt
aW4uZmVpZXJ0YWdlIHx8IFtdKS5zbGljZSgpLnNvcnQoZnVuY3Rpb24oYSwgYikgewogICAgICAg
IHJldHVybiAoYS5kYXR1bSB8fCAnJykubG9jYWxlQ29tcGFyZShiLmRhdHVtIHx8ICcnKTsKICAg
IH0pOwogICAgdmFyIGh0bWwgPSAnJzsKICAgIGxpc3RlLmZvckVhY2goZnVuY3Rpb24oZiwgaSkg
ewogICAgICAgIHZhciBrYXQgPSBmLmthdGVnb3JpZSB8fCAnZ2VzZXR6bGljaCc7CiAgICAgICAg
dmFyIGFrdGl2ID0gZi5ha3RpdiAhPT0gZmFsc2U7CiAgICAgICAgdmFyIGphaHIgPSAoZi5kYXR1
bSB8fCAnJykuc3Vic3RyKDAsIDQpOwogICAgICAgIHZhciBiZXplaWNobnVuZyA9IGYuYmV6ZWlj
aG51bmcgfHwgZi5uYW1lIHx8ICcnOwogICAgICAgIC8vIEljb24tQW56ZWlnZTogYmVpIGxlZXJl
bSBGZWxkIHplaWd0IGRlciBCdXR0b24gZGFzIEthdGVnb3JpZS1EZWZhdWx0CiAgICAgICAgLy8g
KHZpc3VlbGxlIEtvbnNpc3RlbnopLiBEYXMgaGlkZGVuIGZpZWxkIGJsZWlidCBsZWVyLCBkYW1p
dCBkZXIKICAgICAgICAvLyBEZWZhdWx0IOKAnmxlYmVuZGlnIiBtaXQgZGVyIEthdGVnb3JpZSBt
aXR3YW5kZXJ0LgogICAgICAgIHZhciBpY29uV2VydCA9IGYuaWNvbiB8fCAnJzsKICAgICAgICB2
YXIgaWNvbkFuemVpZ2UgPSBpY29uV2VydCB8fCBLQVRFR09SSUVfSUNPTl9ERUZBVUxUW2thdF0g
fHwgS0FURUdPUklFX0lDT05fREVGQVVMVC5nZXNldHpsaWNoOwogICAgICAgIHZhciByb3dDbHMg
PSAnZmVpZXJ0YWctcm93IGZlaWVydGFnLXJvdy1rYXQtJyArIGthdCArICcgZmVpZXJ0YWctcm93
LWphaHItJyArIGphaHI7CiAgICAgICAgaWYgKCFha3Rpdikgcm93Q2xzICs9ICcgZmVpZXJ0YWct
cm93LWluYWt0aXYnOwogICAgICAgIGlmIChmLndpY2h0aWcpIHJvd0NscyArPSAnIGZlaWVydGFn
LXdpY2h0aWcnOwoKICAgICAgICB2YXIga2F0T3B0aW9ucyA9IEZFSUVSVEFHX0tBVEVHT1JJRU4u
bWFwKGZ1bmN0aW9uKGspIHsKICAgICAgICAgICAgcmV0dXJuICc8b3B0aW9uIHZhbHVlPSInICsg
ayArICciJyArIChrID09PSBrYXQgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+JyArIGVzY2FwZUhU
TUwoRkVJRVJUQUdfS0FUX0xBQkVMW2tdKSArICc8L29wdGlvbj4nOwogICAgICAgIH0pLmpvaW4o
JycpOwoKICAgICAgICBodG1sICs9ICc8dHIgY2xhc3M9IicgKyByb3dDbHMgKyAnIj4nICsKICAg
ICAgICAgICAgJzx0ZD48aW5wdXQgdHlwZT0iZGF0ZSIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKGYu
ZGF0dW0gfHwgJycpICsgJyIgZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJkYXR1bSIg
Y2xhc3M9ImZlaWVydGFnLWlucHV0Ij48L3RkPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0
eXBlPSJ0ZXh0IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoYmV6ZWljaG51bmcpICsgJyIgZGF0YS1p
ZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJiZXplaWNobnVuZyIgY2xhc3M9ImZlaWVydGFnLWlu
cHV0IiBwbGFjZWhvbGRlcj0iQmV6ZWljaG51bmcuLi4iPjwvdGQ+JyArCiAgICAgICAgICAgICc8
dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9u
IHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppLWJ0biBmZWllcnRhZy1pY29uLWJ0biIgZGF0YS1p
ZHg9IicgKyBpICsgJyIgdGl0bGU9Ikljb24gd8OkaGxlbiAobGVlciA9IEthdGVnb3JpZS1EZWZh
dWx0KSI+JyArIGVzY2FwZUhUTUwoaWNvbkFuemVpZ2UpICsgJzwvYnV0dG9uPicgKwogICAgICAg
ICAgICAgICAgJzxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJmZWllcnRhZy1pbnB1dCIgZGF0
YS1pZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJpY29uIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIo
aWNvbldlcnQpICsgJyI+JyArCiAgICAgICAgICAgICc8L3RkPicgKwogICAgICAgICAgICAnPHRk
PjxzZWxlY3QgZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJrYXRlZ29yaWUiIGNsYXNz
PSJmZWllcnRhZy1pbnB1dCI+JyArIGthdE9wdGlvbnMgKyAnPC9zZWxlY3Q+PC90ZD4nICsKICAg
ICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPjxpbnB1dCB0eXBlPSJjaGVj
a2JveCInICsgKGFrdGl2ID8gJyBjaGVja2VkJyA6ICcnKSArICcgZGF0YS1pZHg9IicgKyBpICsg
JyIgZGF0YS1mZWxkPSJha3RpdiIgY2xhc3M9ImZlaWVydGFnLWlucHV0IiB0aXRsZT0iQW56ZWln
ZW4gLyBhdXNibGVuZGVuIj48L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFs
aWduOmNlbnRlciI+PGxhYmVsIHN0eWxlPSJjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1m
bGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4IiB0aXRsZT0iQWxzIGJlc29uZGVycyB3aWNo
dGlnZW4gRmVpZXJ0YWcgbWFya2llcmVuICh2ZXJzdMOkcmt0ZSBIZXJ2b3JoZWJ1bmcgaW0gSGVh
ZGVyKSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IicgKyAoZi53aWNodGlnID8gJyBjaGVja2VkJyA6
ICcnKSArICcgZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJ3aWNodGlnIiBjbGFzcz0i
ZmVpZXJ0YWctaW5wdXQiPiAnICsKICAgICAgICAgICAgKGYud2ljaHRpZyA/ICc8c3BhbiBjbGFz
cz0iZmVpZXJ0YWctd2ljaHRpZy1iYWRnZSI+V2ljaHRpZzwvc3Bhbj4nIDogJzxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+4oCUPC9zcGFuPicpICsg
JzwvbGFiZWw+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZD4nICsKICAgICAgICAgICAgICAgICc8
aW5wdXQgdHlwZT0iaGlkZGVuIiBjbGFzcz0iZmVpZXJ0YWctaW5wdXQiIGRhdGEtaWR4PSInICsg
aSArICciIGRhdGEtZmVsZD0ia3VyemJlc2NocmVpYnVuZyIgdmFsdWU9IicgKyBlc2NhcGVBdHRy
KGYua3VyemJlc2NocmVpYnVuZyB8fCAnJykgKyAnIj4nICsKICAgICAgICAgICAgICAgICc8aW5w
dXQgdHlwZT0iaGlkZGVuIiBjbGFzcz0iZmVpZXJ0YWctaW5wdXQiIGRhdGEtaWR4PSInICsgaSAr
ICciIGRhdGEtZmVsZD0iaW5mb1VybCIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKGYuaW5mb1VybCB8
fCAnJykgKyAnIj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7
Z2FwOjRweDtmbGV4LXdyYXA6d3JhcCI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxidXR0b24g
Y2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiBmZWllcnRhZy1pbmZvLWJ0biIgZGF0YS1pZHg9
IicgKyBpICsgJyIgdGl0bGU9IkJlc2NocmVpYnVuZyB1bmQgV2lraXBlZGlhLUxpbmsgYmVhcmJl
aXRlbiI+4pyOIEluZm88L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBj
bGFzcz0iYnRuIGJ0bi1nZWZhaHIgYnRuLWtsZWluIGJ0bi1sb2VzY2hlbiIgZGF0YS1ha3Rpb249
ImZlaWVydGFnLWxvZXNjaGVuIiBkYXRhLWlkeD0iJyArIGkgKyAnIiB0aXRsZT0iTMO2c2NoZW4i
PkzDtnNjaGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAg
ICAgICc8L3RkPjwvdHI+JzsKICAgIH0pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zl
aWVydGFnZS10Ym9keScpLmlubmVySFRNTCA9IGh0bWw7CiAgICAvLyBMaXN0ZSBpbiBkZXIgZ2xl
aWNoZW4gUmVpaGVuZm9sZ2UgYWJsZWdlbiwgZGFtaXQgZGF0YS1pZHggenVyIEZvbGdlc2ljaHQg
cGFzc3QuCiAgICBaLmFkbWluLmZlaWVydGFnZSA9IGxpc3RlOwogICAgZmVpZXJ0YWdlRmlsdGVy
RnVlbGxlbigpOwogICAgZmVpZXJ0YWdlRmlsdGVyQW53ZW5kZW4oKTsKfQoKZXhwb3J0IGZ1bmN0
aW9uIGZlaWVydGFnZUZpbHRlckFud2VuZGVuKCkgewogICAgdmFyIHRib2R5ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ZlaWVydGFnZS10Ym9keScpOwogICAgaWYgKCF0Ym9keSkgcmV0dXJu
OwogICAgLy8gQmVzdGVoZW5kZSBGaWx0ZXItS2xhc3NlbiBlbnRmZXJuZW4KICAgIHRib2R5LmNs
YXNzTmFtZSA9IHRib2R5LmNsYXNzTmFtZS5yZXBsYWNlKC9ccypmaWx0ZXItKGthdC1cUyt8amFo
ci1cUyt8bnVyLWFrdGl2KS9nLCAnJykudHJpbSgpOwogICAgdmFyIGthdCA9IChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZmVpZXJ0YWdlLWZpbHRlci1rYXRlZ29yaWUnKSB8fCB7fSkudmFsdWUg
fHwgJ2FsbGUnOwogICAgdmFyIGphaHIgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZlaWVy
dGFnZS1maWx0ZXItamFocicpIHx8IHt9KS52YWx1ZSB8fCAnYWxsZSc7CiAgICB2YXIgbnVyQWt0
aXYgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZlaWVydGFnZS1maWx0ZXItbnVyLWFrdGl2
JykgfHwge30pLmNoZWNrZWQ7CiAgICB2YXIgYWRkID0gW107CiAgICBpZiAoa2F0ICE9PSAnYWxs
ZScpIGFkZC5wdXNoKCdmaWx0ZXIta2F0LScgKyBrYXQpOwogICAgaWYgKGphaHIgIT09ICdhbGxl
JykgYWRkLnB1c2goJ2ZpbHRlci1qYWhyLScgKyBqYWhyKTsKICAgIGlmIChudXJBa3RpdikgYWRk
LnB1c2goJ2ZpbHRlci1udXItYWt0aXYnKTsKICAgIGlmIChhZGQubGVuZ3RoKSB0Ym9keS5jbGFz
c05hbWUgPSAodGJvZHkuY2xhc3NOYW1lICsgJyAnICsgYWRkLmpvaW4oJyAnKSkudHJpbSgpOwp9
CgpleHBvcnQgZnVuY3Rpb24gZmVpZXJ0YWdlQXVzVGFiZWxsZUxlc2VuKCkgewogICAgcmV0dXJu
IHRhYmVsbGVGZWxkZXJMZXNlbignZmVpZXJ0YWctaW5wdXQnLCB7IGJvb2xGZWxkZXI6IFsnd2lj
aHRpZycsICdha3RpdiddIH0pCiAgICAgICAgLmZpbHRlcihmdW5jdGlvbihmKSB7IHJldHVybiBm
LmRhdHVtICYmIGYuYmV6ZWljaG51bmc7IH0pCiAgICAgICAgLm1hcChmdW5jdGlvbihmKSB7CiAg
ICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBkYXR1bTogZi5kYXR1bSwKICAgICAg
ICAgICAgICAgIGJlemVpY2hudW5nOiBmLmJlemVpY2hudW5nLAogICAgICAgICAgICAgICAga2F0
ZWdvcmllOiBmLmthdGVnb3JpZSB8fCAnZ2VzZXR6bGljaCcsCiAgICAgICAgICAgICAgICBha3Rp
djogZi5ha3RpdiAhPT0gZmFsc2UsCiAgICAgICAgICAgICAgICB3aWNodGlnOiAhIWYud2ljaHRp
ZywKICAgICAgICAgICAgICAgIGljb246IGYuaWNvbiB8fCAnJywKICAgICAgICAgICAgICAgIGt1
cnpiZXNjaHJlaWJ1bmc6IGYua3VyemJlc2NocmVpYnVuZyB8fCAnJywKICAgICAgICAgICAgICAg
IGluZm9Vcmw6IGYuaW5mb1VybCB8fCAnJwogICAgICAgICAgICB9OwogICAgICAgIH0pOwp9Cgov
LyBNb2RhbCB6dW0gQmVhcmJlaXRlbiBkZXIgRGV0YWlsLUZlbGRlciAoS3VyemJlc2NocmVpYnVu
ZyArIEluZm8tVVJMKS4KLy8gSW5kaXplcyByZWZlcmVuemllcmVuIGRpZSBET00tUmVpaGVuZm9s
Z2UgZGVyIFRhYmVsbGUsIGlkZW50aXNjaCB6dSBkZW4KLy8gYW5kZXJlbiBmZWllcnRhZy1pbnB1
dCBkYXRhLWlkeC1XZXJ0ZW4uIFdlcnRlIHdlcmRlbiBpbiBkaWUgaGlkZGVuCi8vIEZpZWxkcyBn
ZXNjaHJpZWJlbiwgZGFtaXQgZmVpZXJ0YWdlQXVzVGFiZWxsZUxlc2VuIHNpZSBiZWltIFNwZWlj
aGVybgovLyBtaXRuaW1tdC4gRGlydHktVHJhY2tpbmcgbGFldWZ0IHVlYmVyIGRhcyBjaGFuZ2Ut
RXZlbnQgYXVmIGRlbiBoaWRkZW4KLy8gSW5wdXRzIChzaWVoZSBkaXJ0eVRyYWNrZXJFaW5yaWNo
dGVuKS4KZXhwb3J0IGZ1bmN0aW9uIGZlaWVydGFnZUluZm9Nb2RhbFplaWdlbihpZHgpIHsKICAg
IHZhciBoaWRkZW5LdXJ6ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZlaWVydGFnLWlucHV0
W2RhdGEtZmVsZD0ia3VyemJlc2NocmVpYnVuZyJdW2RhdGEtaWR4PSInICsgaWR4ICsgJyJdJyk7
CiAgICB2YXIgaGlkZGVuVXJsICA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mZWllcnRhZy1p
bnB1dFtkYXRhLWZlbGQ9ImluZm9VcmwiXVtkYXRhLWlkeD0iJyArIGlkeCArICciXScpOwogICAg
dmFyIGJleklucHV0ICAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZmVpZXJ0YWctaW5wdXRb
ZGF0YS1mZWxkPSJiZXplaWNobnVuZyJdW2RhdGEtaWR4PSInICsgaWR4ICsgJyJdJyk7CiAgICBp
ZiAoIWhpZGRlbkt1cnogfHwgIWhpZGRlblVybCkgcmV0dXJuOwogICAgdmFyIGJleiA9IGJleklu
cHV0ID8gYmV6SW5wdXQudmFsdWUgOiAnJzsKICAgIHZhciBrb2VycGVyID0gJzxkaXYgY2xhc3M9
ImZvcm0tZ3J1cHBlIj48bGFiZWw+QmV6ZWljaG51bmc8L2xhYmVsPicgKwogICAgICAgICc8ZGl2
IHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7cGFkZGluZzo2cHggMCI+JyAr
IGVzY2FwZUhUTUwoYmV6IHx8ICcobGVlciknKSArICc8L2Rpdj48L2Rpdj4nICsKICAgICAgICAn
PGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbCBmb3I9ImZ0LWluZm8ta3VyeiI+S3VyemJl
c2NocmVpYnVuZzwvbGFiZWw+JyArCiAgICAgICAgJzx0ZXh0YXJlYSBpZD0iZnQtaW5mby1rdXJ6
IiBjbGFzcz0iZm9ybS1pbnB1dCIgcm93cz0iMyIgc3R5bGU9IndpZHRoOjEwMCUiIHBsYWNlaG9s
ZGVyPSIx4oCTMiBTw6R0emUuLi4iPicgKyBlc2NhcGVIVE1MKGhpZGRlbkt1cnoudmFsdWUpICsg
JzwvdGV4dGFyZWE+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48
bGFiZWwgZm9yPSJmdC1pbmZvLXVybCI+SW5mby1VUkwgKHouQi4gV2lraXBlZGlhKTwvbGFiZWw+
JyArCiAgICAgICAgJzxpbnB1dCBpZD0iZnQtaW5mby11cmwiIHR5cGU9InVybCIgY2xhc3M9ImZv
cm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIiBwbGFjZWhvbGRlcj0iaHR0cHM6Ly9kZS53aWtp
cGVkaWEub3JnL3dpa2kvLi4uIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoaGlkZGVuVXJsLnZhbHVl
KSArICciPjwvZGl2Pic7CiAgICB2YXIgZnVzcyA9ICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNl
ayBidG4ta2xlaW4iIGlkPSJmdC1pbmZvLWFiYnJlY2hlbiI+QWJicmVjaGVuPC9idXR0b24+JyAr
CiAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hZXIgYnRuLWtsZWlu
IiBpZD0iZnQtaW5mby11ZWJlcm5laG1lbiI+w5xiZXJuZWhtZW48L2J1dHRvbj4nOwogICAgbW9k
YWxaZWlnZW4oJ0ZlaWVydGFnLUluZm8gYmVhcmJlaXRlbicsIGtvZXJwZXIsIGZ1c3MpOwogICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Z0LWluZm8tYWJicmVjaGVuJykuYWRkRXZlbnRMaXN0
ZW5lcignY2xpY2snLCBtb2RhbFNjaGxpZXNzZW4pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2Z0LWluZm8tdWViZXJuZWhtZW4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0
aW9uKCkgewogICAgICAgIGhpZGRlbkt1cnoudmFsdWUgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2Z0LWluZm8ta3VyeicpLnZhbHVlIHx8ICcnKS50cmltKCk7CiAgICAgICAgaGlkZGVuVXJs
LnZhbHVlICA9IChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnQtaW5mby11cmwnKS52YWx1ZSB8
fCAnJykudHJpbSgpOwogICAgICAgIC8vIGNoYW5nZS1FdmVudCBhdXNsb2VzZW4sIGRhbWl0IGRl
ciBEaXJ0eS1UcmFja2VyIGdyZWlmdC4KICAgICAgICBoaWRkZW5LdXJ6LmRpc3BhdGNoRXZlbnQo
bmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpOwogICAgICAgIGhpZGRlblVy
bC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTsK
ICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICB9KTsKfQoKLy8gPT09PT0gQWRtaW46
IEZlcmllbiA9PT09PQoKZXhwb3J0IGZ1bmN0aW9uIGZlcmllblRhYmVsbGVSZW5kZXJuKCkgewog
ICAgdmFyIHRib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zlcmllbi10Ym9keScpOwog
ICAgaWYgKCF0Ym9keSkgcmV0dXJuOwogICAgaWYgKCEoWi5hZG1pbi5mZXJpZW4gfHwgW10pLmxl
bmd0aCkgewogICAgICAgIHRib2R5LmlubmVySFRNTCA9IGFkbWluRW1wdHlaZWlsZSg0LCAnXHV7
MUYzRDZ977iPJywKICAgICAgICAgICAgJ05vY2gga2VpbmUgRmVyaWVuemVpdHLDpHVtZSBlcmZh
c3N0JywKICAgICAgICAgICAgJ05SVy1TY2h1bGZlcmllbiB3ZXJkZW4gaW0gV29jaGVucGxhbiBt
YXJraWVydCB1bmQgaGVsZmVuIGJlaSBkZXIgVXJsYXVic3ZlcmdhYmUuIEVpbnRyYWdlbiBtaXQg
Vm9uLS9CaXMtRGF0dW0gdW5kIEJlemVpY2hudW5nICh6LkIuIE9zdGVyZmVyaWVuIDMwLjAzLuKA
kzExLjA0LikuIEtsaWNrZSBvYmVuIGF1ZiDigJ5OZXVlciBGZXJpZW56ZWl0cmF1bSIuJyk7CiAg
ICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIGh0bWwgPSAnJzsKICAgIChaLmFkbWluLmZlcmll
biB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihmLCBpKSB7CiAgICAgICAgaHRtbCArPSAnPHRyPjx0
ZD48aW5wdXQgdHlwZT0iZGF0ZSIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKGYudm9uIHx8ICcnKSAr
ICciIGRhdGEtaWR4PSInICsgaSArICciIGRhdGEtZmVsZD0idm9uIiBjbGFzcz0iZmVyaWVuLWlu
cHV0Ij48L3RkPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJkYXRlIiB2YWx1ZT0i
JyArIGVzY2FwZUF0dHIoZi5iaXMgfHwgJycpICsgJyIgZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0
YS1mZWxkPSJiaXMiIGNsYXNzPSJmZXJpZW4taW5wdXQiPjwvdGQ+JyArCiAgICAgICAgICAgICc8
dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihmLm5hbWUpICsgJyIg
ZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJuYW1lIiBjbGFzcz0iZmVyaWVuLWlucHV0
Ij48L3RkPicgKwogICAgICAgICAgICAnPHRkPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2VmYWhy
IGJ0bi1rbGVpbiBidG4tbG9lc2NoZW4iIGRhdGEtYWt0aW9uPSJmZXJpZW4tbG9lc2NoZW4iIGRh
dGEtaWR4PSInICsgaSArICciIHRpdGxlPSJMw7ZzY2hlbiI+TMO2c2NoZW48L2J1dHRvbj48L3Rk
PjwvdHI+JzsKICAgIH0pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zlcmllbi10Ym9k
eScpLmlubmVySFRNTCA9IGh0bWw7Cn0KCmV4cG9ydCBmdW5jdGlvbiBmZXJpZW5BdXNUYWJlbGxl
TGVzZW4oKSB7CiAgICByZXR1cm4gdGFiZWxsZUZlbGRlckxlc2VuKCdmZXJpZW4taW5wdXQnKQog
ICAgICAgIC5maWx0ZXIoZnVuY3Rpb24oZikgeyByZXR1cm4gZi52b24gJiYgZi5iaXMgJiYgZi5u
YW1lOyB9KTsKfQoKLy8gPT09PT0gQWRtaW46IFNvbmRlcnRlcm1pbmUgPT09PT0KCmV4cG9ydCBm
dW5jdGlvbiBzb25kZXJ0ZXJtaW5lUmVuZGVybigpIHsKICAgIC8vICJNYXJraWVydW5nIi1TcGFs
dGUgKENoZXJyeS1QaWNrIDg0ZmIwZjcsIGhpbnRlciBUb2dnbGUKICAgIC8vIGBmZWF0dXJlcy5z
b25kZXJ0ZXJtaW5lV2ljaHRpZ2ApLiBCYWNrd2FyZHMtY29tcGF0OiBFaW50cmFlZ2UgbWl0CiAg
ICAvLyBhbHRlbiBgdHlwOid3YXJudW5nJ2Agd2VyZGVuIGFscyAid2ljaHRpZyIgZXJrYW5udC4K
ICAgIHZhciB3aWNodGlnVUkgPSBmZWF0dXJlSXN0QWt0aXYoJ3NvbmRlcnRlcm1pbmVXaWNodGln
Jyk7CiAgICB2YXIgbGlzdGUgPSAoWi5hZG1pbi5zb25kZXJ0ZXJtaW5lIHx8IFtdKS5zbGljZSgp
LnNvcnQoZnVuY3Rpb24oYSwgYikgewogICAgICAgIHJldHVybiAoYS5kYXR1bSB8fCAnJykubG9j
YWxlQ29tcGFyZShiLmRhdHVtIHx8ICcnKTsKICAgIH0pOwogICAgdmFyIGh0bWwgPSAnJzsKICAg
IGlmIChsaXN0ZS5sZW5ndGggPT09IDApIHsKICAgICAgICBodG1sID0gYWRtaW5FbXB0eVplaWxl
KDYsICdcdXsxRjRDNX0nLAogICAgICAgICAgICAnTm9jaCBrZWluZSBTb25kZXJ0ZXJtaW5lIGFu
Z2VsZWd0JywKICAgICAgICAgICAgJ1NvbmRlcnRlcm1pbmUgc2luZCBIaW53ZWlzZSBvZGVyIFdh
cm51bmdlbiwgZGllIGFuIGJlc3RpbW10ZW4gVGFnZW4gZnVlciBhbGxlIHNpY2h0YmFyIHdlcmRl
biDigJQgVmVyYW5zdGFsdHVuZ2VuLCBlcmhvZWh0ZXIgUGVyc29uYWxiZWRhcmYsIFNwZXJydGVy
bWluZS4gS2xpY2tlIG9iZW4gYXVmIOKAnk5ldWVyIEhpbndlaXMiLCB1bSBkZW4gZXJzdGVuIHp1
IGVyc3RlbGxlbi4nKTsKICAgIH0KICAgIGxpc3RlLmZvckVhY2goZnVuY3Rpb24ocykgewogICAg
ICAgIGlmICghcy5pZCkgcy5pZCA9ICdzdF8nICsgKHMuZGF0dW0gfHwgJ3gnKSArICdfJyArIE1h
dGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA2KTsKICAgICAgICB2YXIgaWNvbkh0
bWwgPSBzLmljb24gPyBlc2NhcGVIVE1MKHMuaWNvbikgOiAn4oCUJzsKICAgICAgICB2YXIgaWNv
bkNscyA9IHMuaWNvbiA/ICdzb25kZXItaWNvbi16ZWxsZScgOiAnc29uZGVyLWljb24temVsbGUg
bGVlcic7CiAgICAgICAgdmFyIGlzdFdpY2h0aWcgPSAhIXMud2ljaHRpZyB8fCBzLnR5cCA9PT0g
J3dhcm51bmcnOwogICAgICAgIHZhciB0eXBMYWJlbCwgdHlwQmFkZ2U7CiAgICAgICAgaWYgKHdp
Y2h0aWdVSSkgewogICAgICAgICAgICB0eXBMYWJlbCA9IGlzdFdpY2h0aWcgPyAnV2ljaHRpZycg
OiAnU3RhbmRhcmQnOwogICAgICAgICAgICB0eXBCYWRnZSA9IGlzdFdpY2h0aWcgPyAnc29uZGVy
LXR5cC13YXJuJyA6ICdzb25kZXItdHlwLWluZm8nOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgIHR5cExhYmVsID0gcy50eXAgPT09ICd3YXJudW5nJyA/ICdXYXJudW5nJyA6ICdIaW53ZWlz
JzsKICAgICAgICAgICAgdHlwQmFkZ2UgPSBzLnR5cCA9PT0gJ3dhcm51bmcnID8gJ3NvbmRlci10
eXAtd2FybicgOiAnc29uZGVyLXR5cC1pbmZvJzsKICAgICAgICB9CiAgICAgICAgdmFyIHdtID0g
cy53YXJuTW9kdXMgfHwgJ2ltbWVyJzsKICAgICAgICB2YXIgd21MYWJlbCA9IHdtID09PSAnaW1t
ZXInID8gJ0ltbWVyJyA6ICh3bSA9PT0gJ2Vpbm1hbGlnJyA/ICdFaW5tYWxpZyAvIFVzZXInIDog
J0F1cycpOwogICAgICAgIHZhciB0aXRlbCA9IHMudGl0ZWwgfHwgc29uZGVyVGl0ZWxBdXNUZXh0
KHMudGV4dCkgfHwgJyhvaG5lIFRpdGVsKSc7CiAgICAgICAgaHRtbCArPSAnPHRyPicgKwogICAg
ICAgICAgICAnPHRkPjxzcGFuIGNsYXNzPSInICsgaWNvbkNscyArICciPicgKyBpY29uSHRtbCAr
ICc8L3NwYW4+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZD4nICsgZXNjYXBlSFRNTChzb25kZXJE
YXR1bUxhYmVsKHMpKSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkPicgKyBlc2NhcGVIVE1M
KHRpdGVsKSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkPjxzcGFuIGNsYXNzPSJzb25kZXIt
dHlwLWJhZGdlICcgKyB0eXBCYWRnZSArICciPicgKyB0eXBMYWJlbCArICc8L3NwYW4+PC90ZD4n
ICsKICAgICAgICAgICAgJzx0ZD4nICsgZXNjYXBlSFRNTCh3bUxhYmVsKSArICc8L3RkPicgKwog
ICAgICAgICAgICAnPHRkPjxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6NnB4O2FsaWduLWl0
ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXAiPicgKwogICAgICAgICAgICAgICAgJzxidXR0
b24gY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiBidG4taWNvbiBidG4tYmVhcmJlaXRlbiIg
ZGF0YS1ha3Rpb249InNvbmRlci1iZWFyYmVpdGVuIiBkYXRhLWlkPSInICsgZXNjYXBlQXR0cihz
LmlkKSArICciIHRpdGxlPSJIaW53ZWlzIGJlYXJiZWl0ZW4iPkJlYXJiZWl0ZW48L2J1dHRvbj4n
ICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdlZmFociBidG4ta2xl
aW4gYnRuLWxvZXNjaGVuIiBkYXRhLWFrdGlvbj0ic29uZGVyLWxvZXNjaGVuIiBkYXRhLWlkPSIn
ICsgZXNjYXBlQXR0cihzLmlkKSArICciIHRpdGxlPSJIaW53ZWlzIGzDtnNjaGVuIj5Mw7ZzY2hl
bjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPC9kaXY+PC90ZD4nICsKICAgICAgICAnPC90cj4n
OwogICAgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc29uZGVydGVybWluZS10Ym9k
eScpLmlubmVySFRNTCA9IGh0bWw7Cn0KCmV4cG9ydCBmdW5jdGlvbiBzb25kZXJUaXRlbEF1c1Rl
eHQoaHRtbCkgewogICAgaWYgKCFodG1sKSByZXR1cm4gJyc7CiAgICB2YXIgdG1wID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICB0bXAuaW5uZXJIVE1MID0gaHRtbDsKICAgIHZh
ciB0eHQgPSAodG1wLnRleHRDb250ZW50IHx8ICcnKS50cmltKCkuc3BsaXQoL1xyP1xuLylbMF07
CiAgICBpZiAodHh0Lmxlbmd0aCA+IDYwKSB0eHQgPSB0eHQuc3Vic3RyKDAsIDU3KSArICfigKYn
OwogICAgcmV0dXJuIHR4dDsKfQoKLy8gc2FuaXRpemVSaWNoSHRtbCwgRU1PSklfU0VULCBlbW9q
aVBpY2tlclplaWdlbiwgZW1vamlQaWNrZXJTY2hsaWVzc2VuIC0+IGpzL3VpL3J0ZS5qcwoKLy8g
PT09PT0gU29uZGVydGVybWluLUhlbGZlciA9PT09PQpleHBvcnQgZnVuY3Rpb24gc29uZGVyRnVl
ckRhdHVtKGRhdHVtKSB7CiAgICBpZiAoIWRhdHVtKSByZXR1cm4gbnVsbDsKICAgIHJldHVybiAo
Wi5hZG1pbi5zb25kZXJ0ZXJtaW5lIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHMpIHsKICAgICAgICB2
YXIgYmlzID0gcy5kYXR1bUJpcyB8fCBzLmRhdHVtOwogICAgICAgIHJldHVybiBzLmRhdHVtICYm
IGRhdHVtID49IHMuZGF0dW0gJiYgZGF0dW0gPD0gYmlzOwogICAgfSk7Cn0KZXhwb3J0IGZ1bmN0
aW9uIHNvbmRlckJ5SWQoaWQpIHsKICAgIHJldHVybiAoWi5hZG1pbi5zb25kZXJ0ZXJtaW5lIHx8
IFtdKS5maW5kKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMuaWQgPT09IGlkOyB9KTsKfQpleHBvcnQg
ZnVuY3Rpb24gc29uZGVyRGF0dW1MYWJlbChzKSB7CiAgICBpZiAoIXMuZGF0dW0pIHJldHVybiAn
4oCUJzsKICAgIGlmIChzLmRhdHVtQmlzICYmIHMuZGF0dW1CaXMgIT09IHMuZGF0dW0pIHJldHVy
biBkYXR1bUZvcm1hdERFKHMuZGF0dW0pICsgJyDigJMgJyArIGRhdHVtRm9ybWF0REUocy5kYXR1
bUJpcyk7CiAgICByZXR1cm4gZGF0dW1Gb3JtYXRERShzLmRhdHVtKTsKfQoKZXhwb3J0IGZ1bmN0
aW9uIHNvbmRlckluaGFsdEh0bWwoc29uZGVyKSB7CiAgICB2YXIgaWNvbiA9IHNvbmRlci5pY29u
IHx8IChzb25kZXIudHlwID09PSAnd2FybnVuZycgPyAn4pqg77iPJyA6ICfihLnvuI8nKTsKICAg
IHZhciB0aXRlbEh0bWwgPSBzb25kZXIudGl0ZWwgPyAnPGRpdiBjbGFzcz0ic29uZGVyLXdhcm4t
dGl0ZWwiPicgKyBlc2NhcGVIVE1MKHNvbmRlci50aXRlbCkgKyAnPC9kaXY+JyA6ICcnOwogICAg
dmFyIHRleHRIdG1sID0gc2FuaXRpemVSaWNoSHRtbChzb25kZXIudGV4dCB8fCAnJyk7CiAgICBy
ZXR1cm4gJzxkaXYgY2xhc3M9InNvbmRlci13YXJuLWljb24iPicgKyBlc2NhcGVIVE1MKGljb24p
ICsgJzwvZGl2PicgKwogICAgICAgIHRpdGVsSHRtbCArCiAgICAgICAgJzxkaXYgY2xhc3M9InNv
bmRlci13YXJuLXRleHQiPicgKyB0ZXh0SHRtbCArICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBj
bGFzcz0ic29uZGVyLXdhcm4tZGF0dW0iPicgKyBlc2NhcGVIVE1MKHNvbmRlckRhdHVtTGFiZWwo
c29uZGVyKSkgKyAnPC9kaXY+JzsKfQoKZXhwb3J0IGZ1bmN0aW9uIHNvbmRlcldhcm5Nb2RhbFpl
aWdlbihzb25kZXIsIG9uV2VpdGVyKSB7CiAgICB2YXIgdHlwQ2xzID0gJ3R5cC0nICsgKHNvbmRl
ci50eXAgfHwgJ2hpbndlaXMnKTsKICAgIHZhciB0aXRlbEtvcGYgPSAoc29uZGVyLnR5cCA9PT0g
J3dhcm51bmcnID8gJ1dhcm5oaW53ZWlzJyA6ICdIaW53ZWlzJykgKyAnIGbDvHIgZGllc2VuIFRh
Zyc7CiAgICB2YXIgZm9vdGVyID0gJzxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgaWQ9
InNvbmRlci13YXJuLW9rIj5WZXJzdGFuZGVuLCB3ZWl0ZXI8L2J1dHRvbj4nOwogICAgbW9kYWxa
ZWlnZW4odGl0ZWxLb3BmLCBzb25kZXJJbmhhbHRIdG1sKHNvbmRlciksIGZvb3RlciwgbnVsbCk7
CiAgICB2YXIgbW9kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLWJveCcpOwogICAg
aWYgKG1vZCkgbW9kLmNsYXNzTGlzdC5hZGQoJ3NvbmRlci13YXJuLW1vZGFsJywgdHlwQ2xzKTsK
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb25kZXItd2Fybi1vaycpLmFkZEV2ZW50TGlz
dGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKG1vZCkgbW9kLmNsYXNzTGlz
dC5yZW1vdmUoJ3NvbmRlci13YXJuLW1vZGFsJywgdHlwQ2xzKTsKICAgICAgICBtb2RhbFNjaGxp
ZXNzZW4oKTsKICAgICAgICBpZiAodHlwZW9mIG9uV2VpdGVyID09PSAnZnVuY3Rpb24nKSBvbldl
aXRlcigpOwogICAgfSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBzb25kZXJBbnNpY2h0TW9kYWxaZWln
ZW4oc29uZGVyKSB7CiAgICB2YXIgdGl0ZWxLb3BmID0gc29uZGVyLnR5cCA9PT0gJ3dhcm51bmcn
ID8gJ1dhcm5oaW53ZWlzJyA6ICdIaW53ZWlzJzsKICAgIG1vZGFsWmVpZ2VuKHRpdGVsS29wZiwg
c29uZGVySW5oYWx0SHRtbChzb25kZXIpLAogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRu
LXByaW1hZXIiIGlkPSJzb25kZXItYW5zaWNodC1vayI+U2NobGllw59lbjwvYnV0dG9uPicsCiAg
ICAgICAgbnVsbCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc29uZGVyLWFuc2ljaHQt
b2snKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG1vZGFsU2NobGllc3Nlbik7Cn0KCmV4cG9y
dCBmdW5jdGlvbiBzb25kZXJFZGl0TW9kYWxaZWlnZW4oaWRPZGVyRGF0dW0pIHsKICAgIC8vIFBh
cmFtZXRlcjogInN0Xy4uLiItSUQgKGJlYXJiZWl0ZW4pIG9kZXIgIllZWVktTU0tREQiIChuZXUg
ZsO8ciBkaWVzZW4gVGFnKSBvZGVyICIiIChuZXUgb2huZSBEYXR1bSkKICAgIHZhciB2b3JoID0g
bnVsbDsKICAgIGlmIChpZE9kZXJEYXR1bSAmJiBpZE9kZXJEYXR1bS5pbmRleE9mKCdzdF8nKSA9
PT0gMCkgdm9yaCA9IHNvbmRlckJ5SWQoaWRPZGVyRGF0dW0pOwogICAgZWxzZSBpZiAoaWRPZGVy
RGF0dW0pIHZvcmggPSBzb25kZXJGdWVyRGF0dW0oaWRPZGVyRGF0dW0pOwogICAgdmFyIHN0YXJ0
RGF0dW0gPSAoaWRPZGVyRGF0dW0gJiYgaWRPZGVyRGF0dW0uaW5kZXhPZignc3RfJykgIT09IDAp
ID8gaWRPZGVyRGF0dW0gOiAnJzsKICAgIHZhciBzID0gdm9yaCA/IE9iamVjdC5hc3NpZ24oe30s
IHZvcmgpIDogeyBkYXR1bTogc3RhcnREYXR1bSwgZGF0dW1CaXM6ICcnLCB0aXRlbDogJycsIHRl
eHQ6ICcnLCB0eXA6ICdoaW53ZWlzJywgaWNvbjogJycsIHdhcm5Nb2R1czogJ2ltbWVyJyB9Owog
ICAgdmFyIGljb25Wb3JzY2hhdSA9IHMuaWNvbiB8fCAn4oCUJzsKICAgIHZhciB0b29sYmFySHRt
bCA9CiAgICAgICAgJzxkaXYgY2xhc3M9InJ0ZS10b29sYmFyIj4nICsKICAgICAgICAgICAgJzxi
dXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9ImJvbGQiIHRpdGxl
PSJGZXR0IChDdHJsK0IpIj48c3Ryb25nPkI8L3N0cm9uZz48L2J1dHRvbj4nICsKICAgICAgICAg
ICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Iml0YWxp
YyIgdGl0bGU9Ikt1cnNpdiAoQ3RybCtJKSI+PGVtPkk8L2VtPjwvYnV0dG9uPicgKwogICAgICAg
ICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0idW5k
ZXJsaW5lIiB0aXRsZT0iVW50ZXJzdHJpY2hlbiAoQ3RybCtVKSI+PHU+VTwvdT48L2J1dHRvbj4n
ICsKICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+JyArCiAgICAgICAg
ICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJpbnNl
cnRVbm9yZGVyZWRMaXN0IiB0aXRsZT0iQXVmesOkaGx1bmciPuKAojwvYnV0dG9uPicgKwogICAg
ICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0i
aW5zZXJ0T3JkZXJlZExpc3QiIHRpdGxlPSJOdW1tZXJpZXJ0Ij4xLjwvYnV0dG9uPicgKwogICAg
ICAgICAgICAnPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4nICsKICAgICAgICAgICAgJzxi
dXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Im91dGRlbnQiIHRp
dGxlPSJBdXNyw7xja2VuIj7ih6Q8L2J1dHRvbj4nICsKICAgICAgICAgICAgJzxidXR0b24gdHlw
ZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9ImluZGVudCIgdGl0bGU9IkVpbnLD
vGNrZW4iPuKHpTwvYnV0dG9uPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9InJ0ZS1zZXAi
Pjwvc3Bhbj4nICsKICAgICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRl
LWJ0biIgZGF0YS1jbWQ9InJlbW92ZUZvcm1hdCIgdGl0bGU9IkZvcm1hdGllcnVuZyBlbnRmZXJu
ZW4iPkzDtnNjaGVuPC9idXR0b24+JyArCiAgICAgICAgJzwvZGl2Pic7CiAgICB2YXIga29lcnBl
ciA9ICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDox
MnB4Ij4nICsKICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDoxMnB4O2ZsZXgt
d3JhcDp3cmFwIj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIiBzdHls
ZT0iZmxleDoxO21pbi13aWR0aDoxNTBweCI+PGxhYmVsPkRhdHVtIChWb24pPC9sYWJlbD48aW5w
dXQgdHlwZT0iZGF0ZSIgaWQ9InNlLWRhdHVtIiBjbGFzcz0iZm9ybS1pbnB1dCIgdmFsdWU9Iicg
KyBlc2NhcGVBdHRyKHMuZGF0dW0pICsgJyI+PC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9ImZsZXg6MTttaW4td2lkdGg6MTUwcHgiPjxsYWJlbD5E
YXR1bSAoQmlzKSA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NDAwO2NvbG9yOnZhcigtLXRleHQt
bXV0ZWQpO2ZvbnQtc2l6ZToxMXB4Ij7igJQgbGVlciBsYXNzZW4gZsO8ciBlaW5lbiBUYWc8L3Nw
YW4+PC9sYWJlbD48aW5wdXQgdHlwZT0iZGF0ZSIgaWQ9InNlLWRhdHVtLWJpcyIgY2xhc3M9ImZv
cm0taW5wdXQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihzLmRhdHVtQmlzIHx8ICcnKSArICciPjwv
ZGl2PicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVw
cGUiPjxsYWJlbD5UaXRlbDwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzZS10aXRlbCIg
Y2xhc3M9ImZvcm0taW5wdXQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihzLnRpdGVsIHx8ICcnKSAr
ICciIHBsYWNlaG9sZGVyPSJLdXJ6ZXIgVGl0ZWwsIHouQi4g4oCeS2FybmV2YWwiIiBtYXhsZW5n
dGg9IjEwMCI+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFi
ZWw+VGV4dDwvbGFiZWw+JyArIHRvb2xiYXJIdG1sICsKICAgICAgICAgICAgJzxkaXYgaWQ9InNl
LXRleHQiIGNsYXNzPSJydGUtZWRpdG9yIiBjb250ZW50ZWRpdGFibGU9InRydWUiIHNwZWxsY2hl
Y2s9InRydWUiPicgKyBzYW5pdGl6ZVJpY2hIdG1sKHMudGV4dCB8fCAnJykgKyAnPC9kaXY+JyAr
CiAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2Fw
OjEycHg7ZmxleC13cmFwOndyYXAiPicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1n
cnVwcGUiPjxsYWJlbD5JY29uPC9sYWJlbD48ZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0i
c2UtaWNvbi1idG4iIGNsYXNzPSJlbW9qaS1idG4iPicgKyBlc2NhcGVIVE1MKGljb25Wb3JzY2hh
dSkgKyAnPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlLWljb24iIHZhbHVlPSIn
ICsgZXNjYXBlQXR0cihzLmljb24gfHwgJycpICsgJyI+PC9kaXY+PC9kaXY+JyArCiAgICAgICAg
ICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9ImZsZXg6MTttaW4td2lkdGg6MTIw
cHgiPjxsYWJlbD5UeXA8L2xhYmVsPjxzZWxlY3QgaWQ9InNlLXR5cCIgY2xhc3M9ImZvcm0taW5w
dXQiPicgKwogICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImhpbndlaXMiJyArIChzLnR5
cCA9PT0gJ2hpbndlaXMnID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPkhpbndlaXMgKOKEuSk8L29w
dGlvbj4nICsKICAgICAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSJ3YXJudW5nIicgKyAocy50
eXAgPT09ICd3YXJudW5nJyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5XYXJudW5nICjimqApPC9v
cHRpb24+JyArCiAgICAgICAgICAgICc8L3NlbGVjdD48L2Rpdj4nICsKICAgICAgICAgICAgLy8g
IldpY2h0aWciLUNoZWNrYm94IChDaGVycnktUGljayA4NGZiMGY3KS4gTnVyIHNpY2h0YmFyIHdl
bm4KICAgICAgICAgICAgLy8gRmVhdHVyZSBha3RpdiDigJQgc29uc3QgYmVoYWVsdCBkZXIgVXNl
ciBkaWUgYmluYWVyZSAiVHlwOgogICAgICAgICAgICAvLyBIaW53ZWlzL1dhcm51bmciLVN0ZXVl
cnVuZy4gQmFja3dhcmRzLWNvbXBhdDogYWx0ZQogICAgICAgICAgICAvLyB0eXA6J3dhcm51bmcn
LUVpbnRyYWVnZSB3ZXJkZW4gaW0gUmVuZGVyIGF1Y2ggb2huZSB3aWNodGlnOnRydWUKICAgICAg
ICAgICAgLy8gYWxzIHdpY2h0aWcgbWFya2llcnQuCiAgICAgICAgICAgIChmZWF0dXJlSXN0QWt0
aXYoJ3NvbmRlcnRlcm1pbmVXaWNodGlnJykKICAgICAgICAgICAgICAgID8gJzxkaXYgY2xhc3M9
ImZvcm0tZ3J1cHBlIiBzdHlsZT0iZmxleDoxO21pbi13aWR0aDoxNDBweCI+PGxhYmVsPk1hcmtp
ZXJ1bmc8L2xhYmVsPicgKwogICAgICAgICAgICAgICAgICAgICc8bGFiZWwgc3R5bGU9ImRpc3Bs
YXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo2cHggMDtj
dXJzb3I6cG9pbnRlciI+JyArCiAgICAgICAgICAgICAgICAgICAgICAnPGlucHV0IHR5cGU9ImNo
ZWNrYm94IiBpZD0ic2Utd2ljaHRpZyInICsgKChzLndpY2h0aWcgfHwgcy50eXAgPT09ICd3YXJu
dW5nJykgPyAnIGNoZWNrZWQnIDogJycpICsgJz4gQWxzIOKAnndpY2h0aWciIG1hcmtpZXJlbicg
KwogICAgICAgICAgICAgICAgICAgICc8L2xhYmVsPicgKwogICAgICAgICAgICAgICAgICAnPC9k
aXY+JwogICAgICAgICAgICAgICAgOiAnJykgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9y
bS1ncnVwcGUiIHN0eWxlPSJmbGV4OjE7bWluLXdpZHRoOjE0MHB4Ij48bGFiZWw+V2Fybm1vZHVz
PC9sYWJlbD48c2VsZWN0IGlkPSJzZS13bSIgY2xhc3M9ImZvcm0taW5wdXQiPicgKwogICAgICAg
ICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImltbWVyIicgKyAoKHMud2Fybk1vZHVzIHx8ICdpbW1l
cicpID09PSAnaW1tZXInID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPkltbWVyIGJlaSBQbGFudW5n
PC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iZWlubWFsaWciJyAr
IChzLndhcm5Nb2R1cyA9PT0gJ2Vpbm1hbGlnJyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5FaW5t
YWxpZyBwcm8gVXNlcjwvb3B0aW9uPicgKwogICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9
ImF1cyInICsgKHMud2Fybk1vZHVzID09PSAnYXVzJyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5B
dXMgKG51ciBIZWFkZXItSWNvbik8L29wdGlvbj4nICsKICAgICAgICAgICAgJzwvc2VsZWN0Pjwv
ZGl2PicgKwogICAgICAgICc8L2Rpdj48L2Rpdj4nOwogICAgdmFyIGZvb3RlciA9ICh2b3JoID8g
JzxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2VmYWhyIiBpZD0ic2UtbG9lc2NoZW4iIHN0eWxlPSJt
YXJnaW4tcmlnaHQ6YXV0byI+TMO2c2NoZW48L2J1dHRvbj4nIDogJycpICsKICAgICAgICAnPGJ1
dHRvbiBjbGFzcz0iYnRuIiBpZD0ic2UtYWJicmVjaGVuIj5BYmJyZWNoZW48L2J1dHRvbj4nICsK
ICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBpZD0ic2Utc3BlaWNoZXJu
Ij5TcGVpY2hlcm48L2J1dHRvbj4nOwogICAgLy8gU3BlYyBGLjQ6IG1vZGFsS2V5IGFrdGl2aWVy
dCBFbnR3dXJmLVN5c3RlbSBwcm8gU29uZGVydGVybWluCiAgICB2YXIgc29uZGVyTW9kYWxLZXkg
PSB2b3JoID8gKCdzb25kZXJfZWRpdF8nICsgdm9yaC5pZCkgOiAoJ3NvbmRlcl9uZXVfJyArIChp
ZE9kZXJEYXR1bSB8fCAnJykpOwogICAgbW9kYWxaZWlnZW4odm9yaCA/ICdIaW53ZWlzIGJlYXJi
ZWl0ZW4nIDogJ05ldWVyIEhpbndlaXMnLCBrb2VycGVyLCBmb290ZXIsIG51bGwsIHNvbmRlck1v
ZGFsS2V5KTsKCiAgICB2YXIgZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLXRl
eHQnKTsKICAgIHJ0ZUluaXQoZWRpdG9yKTsKCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c2UtaWNvbi1idG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAg
ICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgIGVtb2ppUGlja2VyWmVpZ2VuKHRoaXMs
IGZ1bmN0aW9uKHYpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWlj
b24nKS52YWx1ZSA9IHY7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZS1p
Y29uLWJ0bicpLnRleHRDb250ZW50ID0gdiB8fCAn4oCUJzsKICAgICAgICB9KTsKICAgIH0pOwog
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWFiYnJlY2hlbicpLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgbW9kYWxTY2hsaWVzc2VuKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzZS1zcGVpY2hlcm4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewog
ICAgICAgIHZhciB0ZXh0SHRtbCA9IHNhbml0aXplUmljaEh0bWwoZWRpdG9yLmlubmVySFRNTCB8
fCAnJyk7CiAgICAgICAgdmFyIGRCaXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2UtZGF0
dW0tYmlzJykudmFsdWU7CiAgICAgICAgdmFyIGRhdGVuID0gewogICAgICAgICAgICBpZDogKHZv
cmggJiYgdm9yaC5pZCkgfHwgKCdzdF8nICsgRGF0ZS5ub3coKS50b1N0cmluZygzNikgKyBNYXRo
LnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgNSkpLAogICAgICAgICAgICBkYXR1bTog
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWRhdHVtJykudmFsdWUsCiAgICAgICAgICAgIGRh
dHVtQmlzOiBkQmlzIHx8ICcnLAogICAgICAgICAgICB0aXRlbDogZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3NlLXRpdGVsJykudmFsdWUudHJpbSgpLAogICAgICAgICAgICB0ZXh0OiB0ZXh0SHRt
bCwKICAgICAgICAgICAgaWNvbjogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWljb24nKS52
YWx1ZSwKICAgICAgICAgICAgdHlwOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2UtdHlwJyku
dmFsdWUsCiAgICAgICAgICAgIHdhcm5Nb2R1czogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nl
LXdtJykudmFsdWUKICAgICAgICB9OwogICAgICAgIC8vICJ3aWNodGlnIi1GbGFnIGF1cyBvcHRp
b25hbGVyIENoZWNrYm94IChUb2dnbGUtYWJoYWVuZ2lnKS4KICAgICAgICAvLyBXZW5uIENoZWNr
Ym94IG5pY2h0IGltIERPTSBpc3QgKEZlYXR1cmUgYXVzKSwgYmVzdGVoZW5kZW4gV2VydAogICAg
ICAgIC8vIGJlaWJlaGFsdGVuIOKAlCBzb25zdCB3dWVyZGVuIGJlc3RlaGVuZGUgRWludHJhZWdl
IGlociBGbGFnIHZlcmxpZXJlbi4KICAgICAgICB2YXIgd2ljaHRpZ0VsID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3NlLXdpY2h0aWcnKTsKICAgICAgICBpZiAod2ljaHRpZ0VsKSBkYXRlbi53
aWNodGlnID0gd2ljaHRpZ0VsLmNoZWNrZWQ7CiAgICAgICAgZWxzZSBpZiAocy53aWNodGlnICE9
PSB1bmRlZmluZWQpIGRhdGVuLndpY2h0aWcgPSBzLndpY2h0aWc7CiAgICAgICAgdmFyIHBsYWlu
Q2hlY2sgPSBlZGl0b3IudGV4dENvbnRlbnQudHJpbSgpOwogICAgICAgIGlmICghZGF0ZW4uZGF0
dW0gfHwgIXBsYWluQ2hlY2spIHsgdG9hc3QoJ1N0YXJ0LURhdHVtIHVuZCBUZXh0IHNpbmQgUGZs
aWNodGZlbGRlcicsICd3YXJudW5nJyk7IHJldHVybjsgfQogICAgICAgIGlmIChkYXRlbi5kYXR1
bUJpcyAmJiBkYXRlbi5kYXR1bUJpcyA8IGRhdGVuLmRhdHVtKSB7IHRvYXN0KCdFbmQtRGF0dW0g
bXVzcyBuYWNoIGRlbSBTdGFydC1EYXR1bSBsaWVnZW4nLCAnd2FybnVuZycpOyByZXR1cm47IH0K
ICAgICAgICBpZiAoZGF0ZW4uZGF0dW1CaXMgPT09IGRhdGVuLmRhdHVtKSBkYXRlbi5kYXR1bUJp
cyA9ICcnOyAvLyBub3JtYWxpc2llcmVuOiBnbGVpY2ggPSBsZWVyID0gRWluemVsdGFnCiAgICAg
ICAgdmFyIGxpc3RlID0gKFouYWRtaW4uc29uZGVydGVybWluZSB8fCBbXSkuc2xpY2UoKTsKICAg
ICAgICB2YXIgaWR4ID0gbGlzdGUuZmluZEluZGV4KGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguaWQg
PT09IGRhdGVuLmlkOyB9KTsKICAgICAgICBpZiAoaWR4ID49IDApIGxpc3RlW2lkeF0gPSBkYXRl
bjsgZWxzZSBsaXN0ZS5wdXNoKGRhdGVuKTsKICAgICAgICBhcGlQdXQoJy9hcGkvYWRtaW4vc29u
ZGVydGVybWluZScsIGxpc3RlKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBaLmFkbWlu
LnNvbmRlcnRlcm1pbmUgPSBsaXN0ZTsKICAgICAgICAgICAgdGFnSW5mb3NCZXJlY2huZW4oKTsK
ICAgICAgICAgICAga29wZlJlbmRlcm4oKTsKICAgICAgICAgICAgc29uZGVydGVybWluZVJlbmRl
cm4oKTsKICAgICAgICAgICAgZW50d3VyZkxvZXNjaGVuKHNvbmRlck1vZGFsS2V5KTsKICAgICAg
ICAgICAgbW9kYWxTY2hsaWVzc2VuKHRydWUpOwogICAgICAgICAgICB0b2FzdCgnSGlud2VpcyBn
ZXNwZWljaGVydCcsICdlcmZvbGcnKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRv
YXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICB9KTsKICAgIGlm
ICh2b3JoKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWxvZXNjaGVuJyku
YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgYmVzdGFl
dGlnZW4oJ0hpbndlaXMgd2lya2xpY2ggbMO2c2NoZW4/JywgZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICAgICB2YXIgbGlzdGUgPSAoWi5hZG1pbi5zb25kZXJ0ZXJtaW5lIHx8IFtdKS5maWx0ZXIo
ZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCAhPT0gdm9yaC5pZDsgfSk7CiAgICAgICAgICAgICAg
ICBhcGlQdXQoJy9hcGkvYWRtaW4vc29uZGVydGVybWluZScsIGxpc3RlKS50aGVuKGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgICAgIFouYWRtaW4uc29uZGVydGVybWluZSA9IGxpc3RlOwog
ICAgICAgICAgICAgICAgICAgIHRhZ0luZm9zQmVyZWNobmVuKCk7CiAgICAgICAgICAgICAgICAg
ICAga29wZlJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAgICBzb25kZXJ0ZXJtaW5lUmVuZGVy
bigpOwogICAgICAgICAgICAgICAgICAgIGVudHd1cmZMb2VzY2hlbihzb25kZXJNb2RhbEtleSk7
CiAgICAgICAgICAgICAgICAgICAgbW9kYWxTY2hsaWVzc2VuKHRydWUpOwogICAgICAgICAgICAg
ICAgICAgIHRvYXN0KCdIaW53ZWlzIGdlbMO2c2NodCcsICdlcmZvbGcnKTsKICAgICAgICAgICAg
ICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwg
J2ZlaGxlcicpOyB9KTsKICAgICAgICAgICAgfSwgeyB0aXRlbDogJ0hpbndlaXMgbMO2c2NoZW4n
LCBqYURhbmdlcjogdHJ1ZSB9KTsKICAgICAgICB9KTsKICAgIH0KfQo=
### FILE: js/admin_mitteilungen.js | 19959
Ly8gPT09IGFkbWluX21pdHRlaWx1bmdlbi5qcyA9PT0KLy8gQWRtaW4tRWRpdG9yIGZ1ZXIgZGFz
IE1pdHRlaWx1bmdzLVN5c3RlbSAoU3ByaW50IEQtM2MsIDIwMjYtMDUtMjkpLgovLyBOdXIgZnVl
ciBTdXBlclVzZXIgc2ljaHRiYXIvenVncmVpZmJhciAoU2VydmVyIGdhdGVkIGJlaWRlIFdlZ2U6
Ci8vIEdFVCAvYXBpL21pdHRlaWx1bmdlbi9hbGxlIGlzdCBTVS1vbmx5LCBQT1NUL1BVVC9ERUxF
VEUgZWJlbmZhbGxzKS4KLy8KLy8gRnVua3Rpb25zdW1mYW5nOgovLyAgIC0gTGlzdGUgYWxsZXIg
TWl0dGVpbHVuZ2VuIChha3RpdmUsIGFiZ2VsYXVmZW5lLCBvaG5lIFN0aWNodGFnKQovLyAgIC0g
TmV1ZSBNaXR0ZWlsdW5nIGFubGVnZW4gLyBiZWFyYmVpdGVuIC8gbG9lc2NoZW4KLy8gICAtIFJU
RS1UZXh0LUVkaXRvciAoc2FuaXRpemVSaWNoSHRtbCBiZWltIFNhdmUpCi8vICAgLSBNdWx0aS1T
ZWxlY3QgZnVlciBQZXJzb25lbiwgRGllbnN0Z3J1cHBlbiwgUm9sbGVuICgrIEFsbGUtQ2hlY2ti
b3gpCi8vICAgLSBUcmlnZ2VyOiBlaW5tYWwgfCBqZWRlc21hbCB8IGJpc0RhdHVtICgrIERhdGVw
aWNrZXIgYmVpIGxldHp0ZXJlbSkKLy8gICAtIE9wdGlvbmFsZXIgQmlsZC0gdW5kIFBERi1Bbmhh
bmcgKEZpbGVSZWFkZXIgLT4gZGF0YTpVUkwgLT4gL3VwbG9hZCkKCmltcG9ydCB7IFogfSBmcm9t
ICcuL2NvcmVfc3RhdGUuanMnOwppbXBvcnQgeyBlc2NhcGVIVE1MLCBlc2NhcGVBdHRyLCBkYXR1
bUZvcm1hdERFLCBnZXRGdW5rdGlvbmVuIH0gZnJvbSAnLi9jb3JlX3V0aWwuanMnOwppbXBvcnQg
eyBhcGksIGFwaVBvc3QsIGFwaVB1dCwgYXBpRGVsZXRlIH0gZnJvbSAnLi9jb3JlX2FwaS5qcyc7
CmltcG9ydCB7IHRvYXN0LCBtb2RhbFplaWdlbiwgbW9kYWxTY2hsaWVzc2VuLCBiZXN0YWV0aWdl
biwgcGZsaWNodGZlbGRGZWhsZXIgfSBmcm9tICcuL3VpX2RpYWxvZy5qcyc7CmltcG9ydCB7IHNh
bml0aXplUmljaEh0bWwsIHJ0ZUluaXQgfSBmcm9tICcuL3VpX3J0ZS5qcyc7CgovLyA9PT09PSBM
aXN0ZSByZW5kZXJuID09PT09CgpleHBvcnQgZnVuY3Rpb24gbWl0dGVpbHVuZ2VuVGFiUmVuZGVy
bigpIHsKICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWl0dGVp
bHVuZ2VuLWluaGFsdCcpOwogICAgaWYgKCFjb250YWluZXIpIHJldHVybjsKICAgIGNvbnRhaW5l
ci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iYWRtaW4tZW1wdHkiPjxkaXYgY2xhc3M9ImFkbWlu
LWVtcHR5LXRleHQiPkxhZGUgTWl0dGVpbHVuZ2VuIOKApjwvZGl2PjwvZGl2Pic7CiAgICBhcGko
Jy9hcGkvbWl0dGVpbHVuZ2VuL2FsbGUnKS50aGVuKGZ1bmN0aW9uKGRhdGVuKSB7CiAgICAgICAg
dmFyIGxpc3RlID0gKGRhdGVuICYmIGRhdGVuLm1pdHRlaWx1bmdlbikgfHwgW107CiAgICAgICAg
aWYgKCFsaXN0ZS5sZW5ndGgpIHsKICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICc8
ZGl2IGNsYXNzPSJhZG1pbi1lbXB0eSI+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0i
YWRtaW4tZW1wdHktdGl0ZWwiPk5vY2gga2VpbmUgTWl0dGVpbHVuZ2VuPC9kaXY+JyArCiAgICAg
ICAgICAgICAgICAnPGRpdiBjbGFzcz0iYWRtaW4tZW1wdHktdGV4dCI+S2xpY2sgb2JlbiByZWNo
dHMgYXVmIOKAnisgTmV1ZSBNaXR0ZWlsdW5nIiwgdW0gZGVuIGVyc3RlbiBIaW53ZWlzIGZ1ZXIg
UGVyc29uZW4sIEdydXBwZW4gb2RlciBSb2xsZW4gYW56dWxlZ2VuLjwvZGl2PicgKwogICAgICAg
ICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAg
dmFyIGhldXRlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTsKICAgICAg
ICB2YXIgaHRtbCA9ICc8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUiPicgKwogICAgICAgICAg
ICAnPHRoZWFkPjx0cj4nICsKICAgICAgICAgICAgICAgICc8dGg+VGl0ZWw8L3RoPicgKwogICAg
ICAgICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6MTMwcHgiPlRyaWdnZXI8L3RoPicgKwogICAg
ICAgICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6MTIwcHgiPmJpcyBEYXR1bTwvdGg+JyArCiAg
ICAgICAgICAgICAgICAnPHRoPkVtcGZhZW5nZXI8L3RoPicgKwogICAgICAgICAgICAgICAgJzx0
aCBzdHlsZT0id2lkdGg6MTIwcHgiPlN0YXR1czwvdGg+JyArCiAgICAgICAgICAgICAgICAnPHRo
IHN0eWxlPSJ3aWR0aDoxNDBweCI+QWt0aW9uPC90aD4nICsKICAgICAgICAgICAgJzwvdHI+PC90
aGVhZD48dGJvZHk+JzsKICAgICAgICBsaXN0ZS5mb3JFYWNoKGZ1bmN0aW9uKG0pIHsKICAgICAg
ICAgICAgdmFyIGFiZ2VsYXVmZW4gPSBtLmJpc0RhdHVtICYmIGhldXRlID4gbS5iaXNEYXR1bTsK
ICAgICAgICAgICAgaHRtbCArPSAnPHRyIGRhdGEtbWlkPSInICsgZXNjYXBlQXR0cihtLmlkKSAr
ICciPicgKwogICAgICAgICAgICAgICAgJzx0ZD48c3Ryb25nPicgKyBlc2NhcGVIVE1MKG0udGl0
ZWwpICsgJzwvc3Ryb25nPicgKwogICAgICAgICAgICAgICAgICAgIChtLnRodW1ibmFpbCA/ICcg
PHNwYW4gdGl0bGU9IkJpbGQtQW5oYW5nIj7wn5a8PC9zcGFuPicgOiAnJykgKwogICAgICAgICAg
ICAgICAgICAgIChtLnBkZiA/ICcgPHNwYW4gdGl0bGU9IlBERi1BbmhhbmciPvCfk4Q8L3NwYW4+
JyA6ICcnKSArCiAgICAgICAgICAgICAgICAnPC90ZD4nICsKICAgICAgICAgICAgICAgICc8dGQ+
JyArIGVzY2FwZUhUTUwobS50cmlnZ2VyIHx8ICdlaW5tYWwnKSArICc8L3RkPicgKwogICAgICAg
ICAgICAgICAgJzx0ZD4nICsgKG0uYmlzRGF0dW0gPyBkYXR1bUZvcm1hdERFKG0uYmlzRGF0dW0p
IDogJ+KAlCcpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAnPHRkPicgKyBfZW1wZmFlbmdl
ckxhYmVsKG0uZW1wZmFlbmdlcikgKyAnPC90ZD4nICsKICAgICAgICAgICAgICAgICc8dGQ+JyAr
IChhYmdlbGF1ZmVuCiAgICAgICAgICAgICAgICAgICAgPyAnPHNwYW4gc3R5bGU9ImNvbG9yOnZh
cigtLXRleHQtbXV0ZWQpIj5hYmdlbGF1ZmVuPC9zcGFuPicKICAgICAgICAgICAgICAgICAgICA6
ICc8c3BhbiBzdHlsZT0iY29sb3I6dmFyKC0tZmFyYmUtZXJmb2xnKTtmb250LXdlaWdodDo2MDAi
PmFrdGl2PC9zcGFuPicpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAnPHRkPicgKwogICAg
ICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iIGRh
dGEtYWN0PSJiZWFyYmVpdGVuIj5CZWFyYmVpdGVuPC9idXR0b24+ICcgKwogICAgICAgICAgICAg
ICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdlZmFociBidG4ta2xlaW4iIGRhdGEtYWN0
PSJsb2VzY2hlbiI+TMO2c2NoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICc8L3RkPicg
KwogICAgICAgICAgICAnPC90cj4nOwogICAgICAgIH0pOwogICAgICAgIGh0bWwgKz0gJzwvdGJv
ZHk+PC90YWJsZT4nOwogICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSBodG1sOwogICAgICAg
IGNvbnRhaW5lci5vbmNsaWNrID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgYnRuID0g
ZS50YXJnZXQgJiYgZS50YXJnZXQuY2xvc2VzdCAmJiBlLnRhcmdldC5jbG9zZXN0KCdidXR0b25b
ZGF0YS1hY3RdJyk7CiAgICAgICAgICAgIGlmICghYnRuKSByZXR1cm47CiAgICAgICAgICAgIHZh
ciB0ciA9IGJ0bi5jbG9zZXN0KCd0cltkYXRhLW1pZF0nKTsKICAgICAgICAgICAgaWYgKCF0cikg
cmV0dXJuOwogICAgICAgICAgICB2YXIgbWlkID0gdHIuZ2V0QXR0cmlidXRlKCdkYXRhLW1pZCcp
OwogICAgICAgICAgICB2YXIgbSA9IGxpc3RlLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5p
ZCA9PT0gbWlkOyB9KTsKICAgICAgICAgICAgaWYgKCFtKSByZXR1cm47CiAgICAgICAgICAgIGlm
IChidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFjdCcpID09PSAnYmVhcmJlaXRlbicpIG1pdHRlaWx1
bmdFZGl0b3JPZWZmbmVuKG0pOwogICAgICAgICAgICBlbHNlIGlmIChidG4uZ2V0QXR0cmlidXRl
KCdkYXRhLWFjdCcpID09PSAnbG9lc2NoZW4nKSBtaXR0ZWlsdW5nTG9lc2NoZW4obSk7CiAgICAg
ICAgfTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICBjb250YWluZXIuaW5uZXJI
VE1MID0gJzxkaXYgY2xhc3M9ImFkbWluLWVtcHR5Ij4nICsKICAgICAgICAgICAgJzxkaXYgY2xh
c3M9ImFkbWluLWVtcHR5LXRpdGVsIj5GZWhsZXIgYmVpbSBMYWRlbjwvZGl2PicgKwogICAgICAg
ICAgICAnPGRpdiBjbGFzcz0iYWRtaW4tZW1wdHktdGV4dCI+JyArIGVzY2FwZUhUTUwoZS5tZXNz
YWdlIHx8IFN0cmluZyhlKSkgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAg
fSk7Cn0KCmZ1bmN0aW9uIF9lbXBmYWVuZ2VyTGFiZWwoZW1wKSB7CiAgICBpZiAoIWVtcCkgcmV0
dXJuICfigJQnOwogICAgaWYgKGVtcC5hbGxlKSByZXR1cm4gJzxzcGFuIHN0eWxlPSJmb250LXdl
aWdodDo2MDAiPkFsbGU8L3NwYW4+JzsKICAgIHZhciB0ZWlsZSA9IFtdOwogICAgdmFyIG5QID0g
KGVtcC5wZXJzb25lbiB8fCBbXSkubGVuZ3RoOwogICAgdmFyIG5HID0gKGVtcC5ncnVwcGVuIHx8
IFtdKS5sZW5ndGg7CiAgICB2YXIgblIgPSAoZW1wLnJvbGxlbiB8fCBbXSkubGVuZ3RoOwogICAg
aWYgKG5QKSB0ZWlsZS5wdXNoKG5QICsgJyBQZXJzb24nICsgKG5QID09PSAxID8gJycgOiAnZW4n
KSk7CiAgICBpZiAobkcpIHRlaWxlLnB1c2goKGVtcC5ncnVwcGVuIHx8IFtdKS5qb2luKCcsICcp
KTsKICAgIGlmIChuUikgdGVpbGUucHVzaCgoZW1wLnJvbGxlbiB8fCBbXSkuam9pbignLCAnKSk7
CiAgICByZXR1cm4gdGVpbGUubGVuZ3RoID8gZXNjYXBlSFRNTCh0ZWlsZS5qb2luKCcgwrcgJykp
IDogJzxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+4oCUIG5pZW1hbmQg4oCU
PC9zcGFuPic7Cn0KCi8vID09PT09IExvZXNjaGVuID09PT09CgpmdW5jdGlvbiBtaXR0ZWlsdW5n
TG9lc2NoZW4obSkgewogICAgYmVzdGFldGlnZW4oCiAgICAgICAgJ01pdHRlaWx1bmcg4oCeJyAr
IG0udGl0ZWwgKyAnIiBlbmRndWVsdGlnIGxvZXNjaGVuP1xuXG5EaWUgRWludHJhZWdlIHdlcmRl
biBhdXMgbWl0dGVpbHVuZ2VuLmpzb24gZW50ZmVybnQg4oCUIEFuaGFlbmdlIChCaWxkL1BERikg
YmxlaWJlbiBpbSBVcGxvYWQtT3JkbmVyIHVuZCBrb2VubmVuIG1hbnVlbGwgYXVmZ2VyYWV1bXQg
d2VyZGVuLicsCiAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGFwaURlbGV0ZSgnL2Fw
aS9taXR0ZWlsdW5nZW4vJyArIGVuY29kZVVSSUNvbXBvbmVudChtLmlkKSkKICAgICAgICAgICAg
ICAgIC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHRvYXN0KCdNaXR0ZWls
dW5nIGdlbG9lc2NodCcsICdlcmZvbGcnKTsKICAgICAgICAgICAgICAgICAgICBtaXR0ZWlsdW5n
ZW5UYWJSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNo
KGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9
KTsKICAgICAgICB9LAogICAgICAgIHsgdGl0ZWw6ICdNaXR0ZWlsdW5nIGxvZXNjaGVuJywgamFU
ZXh0OiAnRW5kZ3VlbHRpZyBsb2VzY2hlbicsIGphRGFuZ2VyOiB0cnVlIH0KICAgICk7Cn0KCi8v
ID09PT09IEVkaXRvci1Nb2RhbCAoTmV1ICsgQmVhcmJlaXRlbikgPT09PT0KCmV4cG9ydCBmdW5j
dGlvbiBtaXR0ZWlsdW5nTmV1T2VmZm5lbigpIHsKICAgIG1pdHRlaWx1bmdFZGl0b3JPZWZmbmVu
KG51bGwpOwp9CgpmdW5jdGlvbiBtaXR0ZWlsdW5nRWRpdG9yT2VmZm5lbihtKSB7CiAgICB2YXIg
aXN0TmV1ID0gIW07CiAgICBtID0gbSB8fCB7CiAgICAgICAgaWQ6IG51bGwsCiAgICAgICAgdGl0
ZWw6ICcnLAogICAgICAgIHRleHQ6ICcnLAogICAgICAgIHRodW1ibmFpbDogbnVsbCwKICAgICAg
ICBwZGY6IG51bGwsCiAgICAgICAgdHJpZ2dlcjogJ2Vpbm1hbCcsCiAgICAgICAgYmlzRGF0dW06
ICcnLAogICAgICAgIGVtcGZhZW5nZXI6IHsgYWxsZTogdHJ1ZSwgcGVyc29uZW46IFtdLCBncnVw
cGVuOiBbXSwgcm9sbGVuOiBbXSB9LAogICAgfTsKICAgIHZhciBncnVwcGVuID0gKFouYWRtaW4u
Z3J1cHBlbiB8fCBbXSkubWFwKGZ1bmN0aW9uKGcpIHsgcmV0dXJuIGcubmFtZTsgfSk7CiAgICB2
YXIgZnVua3Rpb25lbiA9IGdldEZ1bmt0aW9uZW4oKS5tYXAoZnVuY3Rpb24oZikgeyByZXR1cm4g
Zi5jb2RlOyB9KTsKICAgIHZhciBwZXJzb25lbiA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10p
LmZpbHRlcihmdW5jdGlvbihwKSB7IHJldHVybiBwLmFrdGl2ICYmICFwLmdlbG9lc2NodEFtOyB9
KQogICAgICAgICAgICAgICAgICAgICAgIC5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIChh
Lm5hbWUgfHwgJycpLmxvY2FsZUNvbXBhcmUoYi5uYW1lIHx8ICcnLCAnZGUnKTsgfSk7CgogICAg
dmFyIGtvZXJwZXIgPSAnJyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIGZvcm0t
cGZsaWNodCI+PGxhYmVsPlRpdGVsPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0ibWl0LXRpdGVsIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEw
MCUiIG1heGxlbmd0aD0iMTIwIiBkYXRhLW1heGxlbmd0aC1jb3VudGVyPSIxIiB2YWx1ZT0iJyAr
IGVzY2FwZUF0dHIobS50aXRlbCkgKyAnIiBwbGFjZWhvbGRlcj0iei5CLiBOZXVlIFNjaGljaHRj
b2RlLUtvbnZlbnRpb24gYWIgSnVuaSI+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZv
cm0tZ3J1cHBlIGZvcm0tcGZsaWNodCI+PGxhYmVsPlRleHQ8L2xhYmVsPicgKwogICAgICAgICAg
ICAnPGRpdiBpZD0ibWl0LXRleHQiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgY2xhc3M9ImZvcm0t
aW5wdXQiIHN0eWxlPSJtaW4taGVpZ2h0OjE0MHB4O3dpZHRoOjEwMCU7bGluZS1oZWlnaHQ6MS41
Ij4nICsgc2FuaXRpemVSaWNoSHRtbChtLnRleHQgfHwgJycpICsgJzwvZGl2PicgKwogICAgICAg
ICAgICAnPHNtYWxsIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6dmFy
KC0tZnMtc20pIj5SaWNoLVRleHQ6IGZldHQva3Vyc2l2L0xpc3RlbiB1ZWJlciBkZW4gUlRFLUZs
b2F0aW5nLUJhciBiZWkgRm9rdXMuPC9zbWFsbD48L2Rpdj4nICsKCiAgICAgICAgJzxkaXYgc3R5
bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MCAxNnB4
O2FsaWduLWl0ZW1zOmVuZCI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBw
ZSI+PGxhYmVsPlRyaWdnZXI8L2xhYmVsPicgKwogICAgICAgICAgICAgICAgJzxzZWxlY3QgaWQ9
Im1pdC10cmlnZ2VyIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiPicgKwog
ICAgICAgICAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSJlaW5tYWwiJyArIChtLnRyaWdnZXIg
PT09ICdlaW5tYWwnID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPkVpbm1hbCAoc2llaHQgZGVyIFVz
ZXIgZ2VuYXUgMcOXKTwvb3B0aW9uPicgKwogICAgICAgICAgICAgICAgICAgICc8b3B0aW9uIHZh
bHVlPSJqZWRlc21hbCInICsgKG0udHJpZ2dlciA9PT0gJ2plZGVzbWFsJyA/ICcgc2VsZWN0ZWQn
IDogJycpICsgJz5KZWRlcyBNYWwgKDHDlyBwcm8gS2FsZW5kZXJ0YWcpPC9vcHRpb24+JyArCiAg
ICAgICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImJpc0RhdHVtIicgKyAobS50cmlnZ2Vy
ID09PSAnYmlzRGF0dW0nID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPkJpcyBEYXR1bSAodGFlZ2xp
Y2ggYmlzIFN0aWNodGFnKTwvb3B0aW9uPicgKwogICAgICAgICAgICAgICAgJzwvc2VsZWN0Pjwv
ZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiIGlkPSJtaXQtYmlz
RGF0dW0tZ3J1cHBlIiBzdHlsZT0iJyArIChtLnRyaWdnZXIgPT09ICdiaXNEYXR1bScgPyAnJyA6
ICdkaXNwbGF5Om5vbmUnKSArICciPjxsYWJlbD5iaXMgRGF0dW08L2xhYmVsPicgKwogICAgICAg
ICAgICAgICAgJzxpbnB1dCB0eXBlPSJkYXRlIiBpZD0ibWl0LWJpc0RhdHVtIiBjbGFzcz0iZm9y
bS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiIHZhbHVlPSInICsgZXNjYXBlQXR0cihtLmJpc0Rh
dHVtIHx8ICcnKSArICciPjwvZGl2PicgKwogICAgICAgICc8L2Rpdj4nICsKCiAgICAgICAgJzxm
aWVsZHNldCBjbGFzcz0iZm9ybS1ncnVwcGUiIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkIHZhcigt
LWJvcmRlci1saWdodCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO3BhZGRpbmc6dmFy
KC0tc3AtMykiPicgKwogICAgICAgICAgICAnPGxlZ2VuZCBzdHlsZT0icGFkZGluZzowIHZhcigt
LXNwLTIpO2ZvbnQtd2VpZ2h0OjYwMCI+RW1wZmFlbmdlcjwvbGVnZW5kPicgKwogICAgICAgICAg
ICAnPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7
bWFyZ2luLWJvdHRvbTp2YXIoLS1zcC0zKSI+JyArCiAgICAgICAgICAgICAgICAnPGlucHV0IHR5
cGU9ImNoZWNrYm94IiBpZD0ibWl0LWVtcC1hbGxlIicgKyAobS5lbXBmYWVuZ2VyLmFsbGUgPyAn
IGNoZWNrZWQnIDogJycpICsgJz4gJyArCiAgICAgICAgICAgICAgICAnPHN0cm9uZz5BbGxlIGVp
bmdlbG9nZ3RlbiBVc2VyPC9zdHJvbmc+ICh1ZWJlcnNjaHJlaWJ0IGRpZSBBdXN3YWhsIHVudGVu
KScgKwogICAgICAgICAgICAnPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxkaXYgaWQ9Im1pdC1l
bXAtc3BleiIgc3R5bGU9IicgKyAobS5lbXBmYWVuZ2VyLmFsbGUgPyAnb3BhY2l0eTowLjU7cG9p
bnRlci1ldmVudHM6bm9uZScgOiAnJykgKyAnIj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPkRpZW5zdGdydXBwZW48L2xhYmVsPicgKwogICAgICAg
ICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLXNwLTMpO2Zs
ZXgtd3JhcDp3cmFwIj4nICsKICAgICAgICAgICAgICAgICAgICBncnVwcGVuLm1hcChmdW5jdGlv
bihnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjayA9IChtLmVtcGZhZW5nZXIuZ3J1
cHBlbiB8fCBbXSkuaW5kZXhPZihnKSA+PSAwID8gJyBjaGVja2VkJyA6ICcnOwogICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gJzxsYWJlbCBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0
ZW1zOmNlbnRlcjtnYXA6NHB4Ij4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8aW5w
dXQgdHlwZT0iY2hlY2tib3giIGRhdGEtZW1wLWdydXBwZT0iJyArIGVzY2FwZUF0dHIoZykgKyAn
IicgKyBjayArICc+ICcgKyBlc2NhcGVIVE1MKGcpICsKICAgICAgICAgICAgICAgICAgICAgICAg
JzwvbGFiZWw+JzsKICAgICAgICAgICAgICAgICAgICB9KS5qb2luKCcnKSArCiAgICAgICAgICAg
ICAgICAgICAgJzwvZGl2PjwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZv
cm0tZ3J1cHBlIj48bGFiZWw+Um9sbGVuIC8gRnVua3Rpb25lbjwvbGFiZWw+JyArCiAgICAgICAg
ICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6dmFyKC0tc3AtMyk7Zmxl
eC13cmFwOndyYXAiPicgKwogICAgICAgICAgICAgICAgICAgIFsnU1UnLCAnR2VzYW10dmVyYW50
d29ydGxpY2gnXS5jb25jYXQoZnVua3Rpb25lbikubWFwKGZ1bmN0aW9uKHIpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgdmFyIGNrID0gKG0uZW1wZmFlbmdlci5yb2xsZW4gfHwgW10pLmluZGV4
T2YocikgPj0gMCA/ICcgY2hlY2tlZCcgOiAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICc8bGFiZWwgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRw
eCI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGlucHV0IHR5cGU9ImNoZWNrYm94
IiBkYXRhLWVtcC1yb2xsZT0iJyArIGVzY2FwZUF0dHIocikgKyAnIicgKyBjayArICc+ICcgKyBl
c2NhcGVIVE1MKHIpICsKICAgICAgICAgICAgICAgICAgICAgICAgJzwvbGFiZWw+JzsKICAgICAg
ICAgICAgICAgICAgICB9KS5qb2luKCcnKSArCiAgICAgICAgICAgICAgICAgICAgJzwvZGl2Pjwv
ZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+
RWluemVsbmUgUGVyc29uZW4gKE1laHJmYWNoYXVzd2FobCBtaXQgU3RyZy9DbWQpPC9sYWJlbD4n
ICsKICAgICAgICAgICAgICAgICAgICAnPHNlbGVjdCBpZD0ibWl0LWVtcC1wZXJzb25lbiIgY2xh
c3M9ImZvcm0taW5wdXQiIG11bHRpcGxlIHNpemU9IjYiIHN0eWxlPSJ3aWR0aDoxMDAlIj4nICsK
ICAgICAgICAgICAgICAgICAgICBwZXJzb25lbi5tYXAoZnVuY3Rpb24ocCkgewogICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgY2sgPSAobS5lbXBmYWVuZ2VyLnBlcnNvbmVuIHx8IFtdKS5zb21l
KGZ1bmN0aW9uKGlkKSB7IHJldHVybiBTdHJpbmcoaWQpID09PSBTdHJpbmcocC5pZCk7IH0pID8g
JyBzZWxlY3RlZCcgOiAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5hbWUgPSAoKHAu
dm9ybmFtZSA/IHAudm9ybmFtZSArICcgJyA6ICcnKSArIChwLm5hbWUgfHwgJycpKS50cmltKCk7
CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnPG9wdGlvbiB2YWx1ZT0iJyArIHAuaWQg
KyAnIicgKyBjayArICc+JyArIGVzY2FwZUhUTUwobmFtZSkgKyAnICgnICsgZXNjYXBlSFRNTChw
LmdydXBwZSB8fCAn4oCTJykgKyAnKTwvb3B0aW9uPic7CiAgICAgICAgICAgICAgICAgICAgfSku
am9pbignJykgKwogICAgICAgICAgICAgICAgICAgICc8L3NlbGVjdD48L2Rpdj4nICsKICAgICAg
ICAgICAgJzwvZGl2PicgKwogICAgICAgICc8L2ZpZWxkc2V0PicgKwoKICAgICAgICAnPGZpZWxk
c2V0IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgdmFyKC0tYm9y
ZGVyLWxpZ2h0KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7cGFkZGluZzp2YXIoLS1z
cC0zKSI+JyArCiAgICAgICAgICAgICc8bGVnZW5kIHN0eWxlPSJwYWRkaW5nOjAgdmFyKC0tc3At
Mik7Zm9udC13ZWlnaHQ6NjAwIj5BbmhhZW5nZSAob3B0aW9uYWwpPC9sZWdlbmQ+JyArCiAgICAg
ICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPlRodW1ibmFpbC1CaWxkICht
YXguIDIgTUIsIEpQRy9QTkcvV2ViUCk8L2xhYmVsPicgKwogICAgICAgICAgICAgICAgJzxpbnB1
dCB0eXBlPSJmaWxlIiBpZD0ibWl0LWJpbGQtaW5wdXQiIGFjY2VwdD0iaW1hZ2UvanBlZyxpbWFn
ZS9wbmcsaW1hZ2Uvd2VicCIgY2xhc3M9ImZvcm0taW5wdXQiPicgKwogICAgICAgICAgICAgICAg
JzxkaXYgaWQ9Im1pdC1iaWxkLXZvcnNjaGF1IiBzdHlsZT0ibWFyZ2luLXRvcDp2YXIoLS1zcC0y
KSI+JyArCiAgICAgICAgICAgICAgICAgICAgKG0udGh1bWJuYWlsID8gJzxhIGhyZWY9IicgKyBl
c2NhcGVBdHRyKG0udGh1bWJuYWlsKSArICciIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iJyAr
IGVzY2FwZUF0dHIobS50aHVtYm5haWwpICsgJyIgYWx0PSJBbmhhbmciIHN0eWxlPSJtYXgtd2lk
dGg6MjAwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pIj48L2E+IDxidXR0b24gdHlw
ZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBpZD0ibWl0LWJpbGQtZW50
ZmVybmVuIj5FbnRmZXJuZW48L2J1dHRvbj4nIDogJzxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS10
ZXh0LW11dGVkKSI+4oCUIGtlaW4gQmlsZCDigJQ8L3NwYW4+JykgKwogICAgICAgICAgICAgICAg
JzwvZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNz
PSJmb3JtLWdydXBwZSI+PGxhYmVsPlBERi1BbmhhbmcgKG1heC4gMTAgTUIpPC9sYWJlbD4nICsK
ICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9Im1pdC1wZGYtaW5wdXQiIGFj
Y2VwdD0iYXBwbGljYXRpb24vcGRmIiBjbGFzcz0iZm9ybS1pbnB1dCI+JyArCiAgICAgICAgICAg
ICAgICAnPGRpdiBpZD0ibWl0LXBkZi12b3JzY2hhdSIgc3R5bGU9Im1hcmdpbi10b3A6dmFyKC0t
c3AtMikiPicgKwogICAgICAgICAgICAgICAgICAgIChtLnBkZiA/ICc8YSBocmVmPSInICsgZXNj
YXBlQXR0cihtLnBkZikgKyAnIiB0YXJnZXQ9Il9ibGFuayI+8J+ThCAnICsgZXNjYXBlSFRNTCht
LnBkZi5zcGxpdCgnLycpLnBvcCgpKSArICc8L2E+IDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFz
cz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBpZD0ibWl0LXBkZi1lbnRmZXJuZW4iPkVudGZlcm5l
bjwvYnV0dG9uPicgOiAnPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpIj7igJQg
a2VpbiBQREYg4oCUPC9zcGFuPicpICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAg
ICAgICAgJzwvZGl2PicgKwogICAgICAgICc8L2ZpZWxkc2V0Pic7CgogICAgdmFyIGZ1c3MgPSAn
PGJ1dHRvbiBjbGFzcz0iYnRuIiBpZD0ibWl0LWFiYnJlY2hlbiIgdHlwZT0iYnV0dG9uIj5BYmJy
ZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4t
cHJpbWFlciIgaWQ9ImRsZy1zcGVpY2hlcm4iIHR5cGU9ImJ1dHRvbiI+JyArIChpc3ROZXUgPyAn
QW5sZWdlbicgOiAnU3BlaWNoZXJuJykgKyAnPC9idXR0b24+JzsKCiAgICAvLyBTdGF0ZSBmdWVy
IGRpZSBBbmhhZW5nZSDigJQgd2lyZCBkdXJjaCBVcGxvYWRzL0VudGZlcm5lbiB1ZWJlcnNjaHJp
ZWJlbi4KICAgIHZhciBzdGF0ZSA9IHsKICAgICAgICB0aHVtYm5haWw6IG0udGh1bWJuYWlsIHx8
IG51bGwsCiAgICAgICAgcGRmOiBtLnBkZiB8fCBudWxsLAogICAgfTsKCiAgICBtb2RhbFplaWdl
bihpc3ROZXUgPyAnTmV1ZSBNaXR0ZWlsdW5nJyA6ICdNaXR0ZWlsdW5nIGJlYXJiZWl0ZW4nLCBr
b2VycGVyLCBmdXNzLAogICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgdGl0ZWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWl0LXRpdGVsJykudmFsdWUudHJpbSgpOwogICAg
ICAgICAgICB2YXIgdGV4dFJhdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaXQtdGV4dCcp
LmlubmVySFRNTDsKICAgICAgICAgICAgaWYgKCF0aXRlbCkgeyBwZmxpY2h0ZmVsZEZlaGxlcign
bWl0LXRpdGVsJywgJ1RpdGVsIGlzdCBQZmxpY2h0ZmVsZCcpOyByZXR1cm47IH0KICAgICAgICAg
ICAgLy8gUlRFIGxpZWZlcnQgSFRNTDsgZGVmZW5zaXYgc2FuaXRpemVuICsgYXVmIFBsYWluLUxl
bmd0aCBwcnVlZmVuCiAgICAgICAgICAgIHZhciB0ZXh0U2FuID0gc2FuaXRpemVSaWNoSHRtbCh0
ZXh0UmF3KTsKICAgICAgICAgICAgdmFyIHBsYWluTGVuID0gdGV4dFNhbi5yZXBsYWNlKC88W14+
XSs+L2csICcnKS50cmltKCkubGVuZ3RoOwogICAgICAgICAgICBpZiAocGxhaW5MZW4gPT09IDAp
IHsgcGZsaWNodGZlbGRGZWhsZXIoJ21pdC10ZXh0JywgJ1RleHQgaXN0IFBmbGljaHRmZWxkJyk7
IHJldHVybjsgfQogICAgICAgICAgICB2YXIgdHJpZ2dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdtaXQtdHJpZ2dlcicpLnZhbHVlOwogICAgICAgICAgICB2YXIgYmlzRGF0dW0gPSB0cmln
Z2VyID09PSAnYmlzRGF0dW0nID8gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaXQtYmlzRGF0
dW0nKS52YWx1ZSB8fCBudWxsKSA6IG51bGw7CiAgICAgICAgICAgIGlmICh0cmlnZ2VyID09PSAn
YmlzRGF0dW0nICYmICFiaXNEYXR1bSkgewogICAgICAgICAgICAgICAgcGZsaWNodGZlbGRGZWhs
ZXIoJ21pdC1iaXNEYXR1bScsICdiaXMgRGF0dW0gaXN0IFBmbGljaHQgYmVpIFRyaWdnZXIg4oCe
YmlzRGF0dW0iJyk7IHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgYWxsZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaXQtZW1wLWFsbGUnKS5jaGVja2VkOwogICAgICAg
ICAgICB2YXIgZ3J1cHBlbiA9IFtdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgnaW5wdXRbZGF0YS1lbXAtZ3J1cHBlXTpjaGVja2VkJykpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24oZWwpIHsgcmV0dXJuIGVsLmdldEF0dHJpYnV0ZSgn
ZGF0YS1lbXAtZ3J1cHBlJyk7IH0pOwogICAgICAgICAgICB2YXIgcm9sbGVuID0gW10uc2xpY2Uu
Y2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtkYXRhLWVtcC1yb2xsZV06Y2hl
Y2tlZCcpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGZ1bmN0aW9uKGVs
KSB7IHJldHVybiBlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZW1wLXJvbGxlJyk7IH0pOwogICAgICAg
ICAgICB2YXIgcGVyc29uZW5TZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWl0LWVtcC1w
ZXJzb25lbicpOwogICAgICAgICAgICB2YXIgcGVyc29uZW5JZHMgPSBbXS5zbGljZS5jYWxsKHBl
cnNvbmVuU2VsLnNlbGVjdGVkT3B0aW9ucykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAubWFwKGZ1bmN0aW9uKG8pIHsgcmV0dXJuIHBhcnNlSW50KG8udmFsdWUsIDEwKTsgfSk7CiAg
ICAgICAgICAgIGlmICghYWxsZSAmJiBncnVwcGVuLmxlbmd0aCA9PT0gMCAmJiByb2xsZW4ubGVu
Z3RoID09PSAwICYmIHBlcnNvbmVuSWRzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgICAg
dG9hc3QoJ01pbmRlc3RlbnMgZWluZW4gRW1wZmFlbmdlciB3YWVobGVuIChvZGVyIOKAnkFsbGUi
IGFrdGl2aWVyZW4pJywgJ3dhcm51bmcnKTsgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAg
ICAgIHZhciBwYXlsb2FkID0gewogICAgICAgICAgICAgICAgdGl0ZWw6IHRpdGVsLAogICAgICAg
ICAgICAgICAgdGV4dDogdGV4dFNhbiwKICAgICAgICAgICAgICAgIHRyaWdnZXI6IHRyaWdnZXIs
CiAgICAgICAgICAgICAgICBiaXNEYXR1bTogYmlzRGF0dW0sCiAgICAgICAgICAgICAgICBlbXBm
YWVuZ2VyOiB7CiAgICAgICAgICAgICAgICAgICAgYWxsZTogYWxsZSwKICAgICAgICAgICAgICAg
ICAgICBwZXJzb25lbjogYWxsZSA/IFtdIDogcGVyc29uZW5JZHMsCiAgICAgICAgICAgICAgICAg
ICAgZ3J1cHBlbjogIGFsbGUgPyBbXSA6IGdydXBwZW4sCiAgICAgICAgICAgICAgICAgICAgcm9s
bGVuOiAgIGFsbGUgPyBbXSA6IHJvbGxlbiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICAgICB0aHVtYm5haWw6IHN0YXRlLnRodW1ibmFpbCwKICAgICAgICAgICAgICAgIHBkZjogc3Rh
dGUucGRmLAogICAgICAgICAgICB9OwogICAgICAgICAgICB2YXIgdXJsID0gaXN0TmV1ID8gJy9h
cGkvbWl0dGVpbHVuZ2VuJyA6ICcvYXBpL21pdHRlaWx1bmdlbi8nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KG0uaWQpOwogICAgICAgICAgICB2YXIgcCA9IGlzdE5ldSA/IGFwaVBvc3QodXJsLCBwYXls
b2FkKSA6IGFwaVB1dCh1cmwsIHBheWxvYWQpOwogICAgICAgICAgICBwLnRoZW4oZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgICAgICAg
ICB0b2FzdChpc3ROZXUgPyAnTWl0dGVpbHVuZyBhbmdlbGVndCcgOiAnTWl0dGVpbHVuZyBha3R1
YWxpc2llcnQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICBtaXR0ZWlsdW5nZW5UYWJSZW5k
ZXJuKCk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjog
JyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9CiAgICApOwoKICAgIC8vIFJU
RSBhdWYgZGFzIGNvbnRlbnRlZGl0YWJsZS1UZXh0ZmVsZAogICAgdmFyIHJ0ZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdtaXQtdGV4dCcpOwogICAgaWYgKHJ0ZSAmJiB0eXBlb2YgcnRlSW5p
dCA9PT0gJ2Z1bmN0aW9uJykgcnRlSW5pdChydGUpOwoKICAgIC8vIFRyaWdnZXItV2VjaHNlbDog
YmlzRGF0dW0tRmVsZCBlaW4tL2F1c2JsZW5kZW4KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdtaXQtdHJpZ2dlcicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewog
ICAgICAgIHZhciBnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pdC1iaXNEYXR1bS1ncnVw
cGUnKTsKICAgICAgICBpZiAoZykgZy5zdHlsZS5kaXNwbGF5ID0gKHRoaXMudmFsdWUgPT09ICdi
aXNEYXR1bScgPyAnJyA6ICdub25lJyk7CiAgICB9KTsKCiAgICAvLyBFbXBmYWVuZ2VyIOKAnkFs
bGUiIHRvZ2dlbHQgZGllIHNwZXppZmlzY2hlbiBBdXN3YWhsZW4gdmlzdWVsbCBhdXMKICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaXQtZW1wLWFsbGUnKS5hZGRFdmVudExpc3RlbmVyKCdj
aGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdtaXQtZW1wLXNwZXonKTsKICAgICAgICBpZiAocykgewogICAgICAgICAgICBzLnN0eWxl
Lm9wYWNpdHkgPSB0aGlzLmNoZWNrZWQgPyAnMC41JyA6ICcnOwogICAgICAgICAgICBzLnN0eWxl
LnBvaW50ZXJFdmVudHMgPSB0aGlzLmNoZWNrZWQgPyAnbm9uZScgOiAnJzsKICAgICAgICB9CiAg
ICB9KTsKCiAgICAvLyBCaWxkLVVwbG9hZAogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21p
dC1iaWxkLWlucHV0JykuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgX2RhdFVwbG9hZFZlcmFyYmVpdGVuKHRoaXMuZmlsZXMgJiYgdGhpcy5maWxlc1swXSwg
J2JpbGQnLCBmdW5jdGlvbihwZmFkKSB7CiAgICAgICAgICAgIHN0YXRlLnRodW1ibmFpbCA9IHBm
YWQ7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaXQtYmlsZC12b3JzY2hh
dScpLmlubmVySFRNTCA9CiAgICAgICAgICAgICAgICAnPGEgaHJlZj0iJyArIGVzY2FwZUF0dHIo
cGZhZCkgKyAnIiB0YXJnZXQ9Il9ibGFuayI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxpbWcg
c3JjPSInICsgZXNjYXBlQXR0cihwZmFkKSArICciIGFsdD0iQW5oYW5nIiBzdHlsZT0ibWF4LXdp
ZHRoOjIwMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKSI+JyArCiAgICAgICAgICAg
ICAgICAnPC9hPiA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1r
bGVpbiIgaWQ9Im1pdC1iaWxkLWVudGZlcm5lbiI+RW50ZmVybmVuPC9idXR0b24+JzsKICAgICAg
ICAgICAgX2JpbGRFbnRmZXJuZW5CaW5kZW4oc3RhdGUpOwogICAgICAgIH0pOwogICAgfSk7CiAg
ICBfYmlsZEVudGZlcm5lbkJpbmRlbihzdGF0ZSk7CgogICAgLy8gUERGLVVwbG9hZAogICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pdC1wZGYtaW5wdXQnKS5hZGRFdmVudExpc3RlbmVyKCdj
aGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgZmlsZSA9IHRoaXMuZmlsZXMgJiYgdGhp
cy5maWxlc1swXTsKICAgICAgICB2YXIgbmFtZSA9IGZpbGUgPyBmaWxlLm5hbWUgOiAnZG9rdS5w
ZGYnOwogICAgICAgIF9kYXRVcGxvYWRWZXJhcmJlaXRlbihmaWxlLCAncGRmJywgZnVuY3Rpb24o
cGZhZCkgewogICAgICAgICAgICBzdGF0ZS5wZGYgPSBwZmFkOwogICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbWl0LXBkZi12b3JzY2hhdScpLmlubmVySFRNTCA9CiAgICAgICAg
ICAgICAgICAnPGEgaHJlZj0iJyArIGVzY2FwZUF0dHIocGZhZCkgKyAnIiB0YXJnZXQ9Il9ibGFu
ayI+8J+ThCAnICsgZXNjYXBlSFRNTChuYW1lKSArICc8L2E+ICcgKwogICAgICAgICAgICAgICAg
JzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBpZD0i
bWl0LXBkZi1lbnRmZXJuZW4iPkVudGZlcm5lbjwvYnV0dG9uPic7CiAgICAgICAgICAgIF9wZGZF
bnRmZXJuZW5CaW5kZW4oc3RhdGUpOwogICAgICAgIH0pOwogICAgfSk7CiAgICBfcGRmRW50ZmVy
bmVuQmluZGVuKHN0YXRlKTsKCiAgICAvLyBBYmJyZWNoZW4KICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdtaXQtYWJicmVjaGVuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlv
bigpIHsgbW9kYWxTY2hsaWVzc2VuKHRydWUpOyB9KTsKfQoKZnVuY3Rpb24gX2JpbGRFbnRmZXJu
ZW5CaW5kZW4oc3RhdGUpIHsKICAgIHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bWl0LWJpbGQtZW50ZmVybmVuJyk7CiAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAgYnRuLmFkZEV2
ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgc3RhdGUudGh1bWJuYWls
ID0gbnVsbDsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWl0LWJpbGQtdm9yc2No
YXUnKS5pbm5lckhUTUwgPSAnPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpIj7i
gJQga2VpbiBCaWxkIOKAlDwvc3Bhbj4nOwogICAgICAgIHZhciBpbnAgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbWl0LWJpbGQtaW5wdXQnKTsKICAgICAgICBpZiAoaW5wKSBpbnAudmFsdWUg
PSAnJzsKICAgIH0pOwp9CgpmdW5jdGlvbiBfcGRmRW50ZmVybmVuQmluZGVuKHN0YXRlKSB7CiAg
ICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pdC1wZGYtZW50ZmVybmVuJyk7
CiAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgc3RhdGUucGRmID0gbnVsbDsKICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbWl0LXBkZi12b3JzY2hhdScpLmlubmVySFRNTCA9ICc8c3BhbiBzdHls
ZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPuKAlCBrZWluIFBERiDigJQ8L3NwYW4+JzsKICAg
ICAgICB2YXIgaW5wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pdC1wZGYtaW5wdXQnKTsK
ICAgICAgICBpZiAoaW5wKSBpbnAudmFsdWUgPSAnJzsKICAgIH0pOwp9CgpmdW5jdGlvbiBfZGF0
VXBsb2FkVmVyYXJiZWl0ZW4oZmlsZSwgYXJ0LCBvbkZlcnRpZykgewogICAgaWYgKCFmaWxlKSBy
ZXR1cm47CiAgICB2YXIgbWF4ID0gYXJ0ID09PSAncGRmJyA/IDEwICogMTAyNCAqIDEwMjQgOiAy
ICogMTAyNCAqIDEwMjQ7CiAgICBpZiAoZmlsZS5zaXplID4gbWF4KSB7CiAgICAgICAgdmFyIGxp
bWl0S2IgPSBtYXggLyAxMDI0OwogICAgICAgIHRvYXN0KGFydCArICc6IERhdGVpIHp1IGdyb3Nz
IChtYXggJyArIGxpbWl0S2IgKyAnIEtCKScsICdmZWhsZXInKTsgcmV0dXJuOwogICAgfQogICAg
dmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICByZWFkZXIub25sb2FkID0gZnVuY3Rp
b24oKSB7CiAgICAgICAgdmFyIGRhdGFVcmwgPSByZWFkZXIucmVzdWx0OwogICAgICAgIGFwaVBv
c3QoJy9hcGkvbWl0dGVpbHVuZ2VuL3VwbG9hZCcsIHsgYXJ0OiBhcnQsIGRhdGVpbmFtZTogZmls
ZS5uYW1lLCBkYXRhVXJsOiBkYXRhVXJsIH0pCiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
cykgewogICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMucGZhZCkgb25GZXJ0aWcocmVzLnBm
YWQpOwogICAgICAgICAgICAgICAgZWxzZSB0b2FzdCgnVXBsb2FkLUFudHdvcnQgb2huZSBQZmFk
JywgJ2ZlaGxlcicpOwogICAgICAgICAgICB9KQogICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24o
ZSkgeyB0b2FzdCgnVXBsb2FkLUZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsK
ICAgIH07CiAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgeyB0b2FzdCgnS29ubnRlIERh
dGVpIG5pY2h0IGxlc2VuJywgJ2ZlaGxlcicpOyB9OwogICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwo
ZmlsZSk7Cn0K
### FILE: js/admin_personal.js | 108762
Ly8gPT09IGFkbWluX3BlcnNvbmFsLmpzID09PQovLyBQaGFzZSA5LUIgQzQ6IGF1cyBhZG1pbi5q
cyBleHRyYWhpZXJ0LiBHcm9lc3N0ZXMgU3ViLU1vZHVsIGRlciBQaGFzZSwKLy8gYnVlbmRlbHQg
YWxsZSBQZXJzb25hbC1iZXpvZ2VuZW4gQWRtaW4tRnVua3Rpb25lbjoKLy8KLy8gICAtIFBlcnNv
bmFsLVRhYmVsbGUgKG1pdCBOZXVpbXBvcnQtQmxvY2ssIElubGluZS1FZGl0cywgUGFwaWVya29y
Yi0KLy8gICAgIEZpbHRlciwgR3J1cHBlbi1UcmVubmVyKQovLyAgIC0gUGVyc29uIE5ldS9CZWFy
YmVpdGVuL0xvZXNjaGVuICsgTWFudWVsbGUgU29ydGllcnVuZwovLyAgIC0gSW5saW5lLUVkaXRv
cmVuIGZ1ZXIgUmFuZywgRGllbnN0Z3JhZCwgRnVua3Rpb24gdW5kIGJlbGllYmlnZQovLyAgICAg
RGF0ZW4tRmVsZGVyIChUZWxlZm9uLCBFLU1haWwsIE5XLUtlbm51bmcsIE9FLCAuLi4pCi8vICAg
LSBFLU1haWwtQWt0aW9uIGF1cyBkZXIgUGVyc29uYWwtVGFiZWxsZQovLwovLyBFeHRlcm5lciBL
b25zdW1lbnQ6IGFwcC5qcyBiaW5kZXQgfjE1IGRpZXNlciBTeW1ib2xlOyBibGVpYnQgdWViZXIK
Ly8gZGFzIFBhc3MtVGhyb3VnaC1SZS1FeHBvcnQgaW4gYWRtaW4uanMgdW52ZXJhZW5kZXJ0IGJp
cyBQaGFzZSA5LUIgQzUuCgppbXBvcnQgeyBaIH0gZnJvbSAnLi9jb3JlX3N0YXRlLmpzJzsKaW1w
b3J0IHsKZXNjYXBlSFRNTCwgZXNjYXBlQXR0ciwgZGF0dW1Gb3JtYXRERSwgZGF0dW1TdHIsCmdl
dEZ1bmt0aW9uZW4sIGdldERpZW5zdGdyYWRlLApfcGVyc29uQW56ZWlnZSwgYWJzZW5kZXJOYW1l
RXJtaXR0ZWxuLAphdmF0YXJLcmVpc0h0bWwsIHBlcnNvblNjaGljaHRBbQp9IGZyb20gJy4vY29y
ZV91dGlsLmpzJzsKCi8vIHBlcnNvblNjaGljaHRBbSAoUm90YXRpb25zLVNjaGljaHQgRi9TL04g
YXVzIGRlciBTdGFuZG9ydC1TY2hpY2h0Zm9sZ2UpCi8vIGxpZWd0IHNlaXQgMjAyNi0wNS0yNyBp
biBjb3JlX3V0aWwuanMg4oCUIHdpcmQgaGllciBpbXBvcnRpZXJ0IHVuZCBhdWNoIHZvbQovLyBT
Y2hpY2h0LVRlYW0tTW9kdWwgZ2VudXR6dC4KLy8gX2lzdERyaXR0ZUZ1bmt0aW9uIHd1cmRlIGFt
IDIwMjYtMDUtMjMgZW50ZmVybnQ6IGRpZSBWSTMtREdMLQovLyBRdWFsaWZpemllcnVuZyBpc3Qg
c2VpdGRlbSBmdWVyIGFsbGUgRnVua3Rpb25lbiBwZmxlZ2JhciwgbmljaHQKLy8gbWVociBudXIg
ZnVlciAiMy4gTWFubi9GcmF1Ii4KCi8vIE5hZWNoc3RlciBXZWNoc2VsdGFnIGZ1ZXIgZWluZSBQ
ZXJzb24gYWIgZ2VnZWJlbmVtIERhdHVtLiBXZWNoc2VsdGFnID0KLy8gVGFnLCBhbiBkZW0gZGll
IGFiZ2VsZWl0ZXRlIFNjaGljaHQgc2ljaCBnZWdlbnVlYmVyIGRlbSBWb3J0YWcgYWVuZGVydC4K
Ly8gTGllZmVydCB7IGRhdHVtLCB2b24sIG5hY2ggfSBvZGVyIG51bGwuCmZ1bmN0aW9uIF9wZXJz
b25OYWVjaHN0ZXJXZWNoc2VsKHBlcnNvbiwgYWJEYXR1bSkgewogICAgaWYgKCFwZXJzb24gfHwg
IXBlcnNvbi5ncnVwcGUgfHwgIXBlcnNvbi5vZSkgcmV0dXJuIG51bGw7CiAgICB2YXIgc3RhbmRv
cnQgPSAoWi5hZG1pbi5zdGFuZG9ydGUgfHwgW10pLmZpbmQoZnVuY3Rpb24ocykgeyByZXR1cm4g
KHMua3VlcnplbCB8fCAnJykgPT09IHBlcnNvbi5vZTsgfSk7CiAgICBpZiAoIXN0YW5kb3J0IHx8
IHN0YW5kb3J0LmlzdFBvb2wpIHJldHVybiBudWxsOwogICAgdmFyIGhldXRlID0gYWJEYXR1bSA/
IG5ldyBEYXRlKGFiRGF0dW0gKyAnVDAwOjAwOjAwJykgOiBuZXcgRGF0ZSgpOwogICAgdmFyIGFr
dHVlbGwgPSBwZXJzb25TY2hpY2h0QW0ocGVyc29uLCBkYXR1bVN0cihoZXV0ZSkpOwogICAgaWYg
KCFha3R1ZWxsKSByZXR1cm4gbnVsbDsKICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDYwOyBpKysp
IHsKICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKGhldXRlKTsKICAgICAgICBkLnNldERhdGUoZC5n
ZXREYXRlKCkgKyBpKTsKICAgICAgICB2YXIgZHMgPSBkYXR1bVN0cihkKTsKICAgICAgICB2YXIg
cyA9IHBlcnNvblNjaGljaHRBbShwZXJzb24sIGRzKTsKICAgICAgICBpZiAocyAmJiBzICE9PSBh
a3R1ZWxsKSByZXR1cm4geyBkYXR1bTogZHMsIHZvbjogYWt0dWVsbCwgbmFjaDogcyB9OwogICAg
fQogICAgcmV0dXJuIG51bGw7Cn0KCi8vIEtvbXBha3RlIEFuemVpZ2UgZnVlciBkaWUgIlJvdGEi
LVNwYWx0ZTogRi9TL04tUGlsbGUgKyBIb3Zlci1Ub29sdGlwCi8vIG1pdCBha3R1ZWxsZXIgU2No
aWNodCArIG5hZWNoc3RlbSBXZWNoc2VsdGFnLgpmdW5jdGlvbiBfcGVyc29uUm90YVBpbGxlKHBl
cnNvbikgewogICAgdmFyIGhldXRlID0gZGF0dW1TdHIobmV3IERhdGUoKSk7CiAgICB2YXIgYWt0
dWVsbCA9IHBlcnNvblNjaGljaHRBbShwZXJzb24sIGhldXRlKTsKICAgIGlmICghYWt0dWVsbCkg
cmV0dXJuICc8c3BhbiBjbGFzcz0icm90YS1waWxsZSByb3RhLWxlZXIiIHRpdGxlPSJLZWluZSBT
Y2hpY2h0cm90YXRpb24gKFN0YW5kb3J0L0dydXBwZSBuaWNodCB6dW9yZGVuYmFyKSI+4oCUPC9z
cGFuPic7CiAgICB2YXIgZmFyYmUgPSBha3R1ZWxsID09PSAnRicgPyAncm90YS1mJyA6IGFrdHVl
bGwgPT09ICdTJyA/ICdyb3RhLXMnIDogJ3JvdGEtbic7CiAgICB2YXIgbGFiZWwgPSB7IEY6ICdG
csO8aGRpZW5zdCcsIFM6ICdTcMOkdGRpZW5zdCcsIE46ICdOYWNodGRpZW5zdCcgfVtha3R1ZWxs
XTsKICAgIHZhciB3ID0gX3BlcnNvbk5hZWNoc3RlcldlY2hzZWwocGVyc29uLCBoZXV0ZSk7CiAg
ICB2YXIgdGlwID0gbGFiZWwgKyAnIGhldXRlJzsKICAgIGlmICh3KSB7CiAgICAgICAgdmFyIG5h
Y2hMYWJlbCA9IHsgRjogJ0Zyw7xoJywgUzogJ1Nww6R0JywgTjogJ05hY2h0JyB9W3cubmFjaF07
CiAgICAgICAgdGlwICs9ICdcbldlY2hzZWw6ICcgKyBkYXR1bUZvcm1hdERFKHcuZGF0dW0pICsg
JyDihpIgJyArIG5hY2hMYWJlbDsKICAgIH0KICAgIHJldHVybiAnPHNwYW4gY2xhc3M9InJvdGEt
cGlsbGUgJyArIGZhcmJlICsgJyIgdGl0bGU9IicgKyBlc2NhcGVBdHRyKHRpcCkgKyAnIj4nICsg
YWt0dWVsbCArICc8L3NwYW4+JzsKfQppbXBvcnQgeyBhcGksIGFwaVBvc3QsIGFwaVB1dCwgYXBp
RGVsZXRlIH0gZnJvbSAnLi9jb3JlX2FwaS5qcyc7CmltcG9ydCB7CnRvYXN0LCBiZXN0YWV0aWdl
biwKbW9kYWxaZWlnZW4sIG1vZGFsU2NobGllc3NlbiwKZW50d3VyZkxvZXNjaGVuLCBwZmxpY2h0
ZmVsZEZlaGxlciwgaGlsZmVJY29uCn0gZnJvbSAnLi91aV9kaWFsb2cuanMnOwppbXBvcnQgeyBw
ZXJzb25lbk5ldUF1ZmJhdWVuIH0gZnJvbSAnLi9jb3JlX2RhdGVuTGFkZW4uanMnOwppbXBvcnQg
ewprb3BmUmVuZGVybiwgbmFtZW5SZW5kZXJuLCBkYXRlbkdyaWRSZW5kZXJuCn0gZnJvbSAnLi9n
cmlkX3JlbmRlci5qcyc7CmltcG9ydCB7IG1haWxUcmlnZ2VyRmV1ZXJuIH0gZnJvbSAnLi9lbWFp
bF92b3JsYWdlbi5qcyc7Ci8vIGZlYXR1cmVJc3RBa3RpdiBsZWJ0IGltIEJvb3RzdHJhcC1UZWls
IHZvbiBhZG1pbi5qcyAoRmVhdHVyZS1Ub2dnbGVzLAovLyBuaWNodCBpbiBlaW5lbSBkZXIgUGhh
c2UtOS1CLVN1Yi1Nb2R1bGUpLiBXaXJkIGhpZXIgZnVlcgovLyBwYXBpZXJrb3JiVUkgLyBwZXJz
b25hbElubGluZUVkaXQgLyBrb2xsZWdlbkhlcnZvcmhlYmVuIC8KLy8gcGVyUGVyc29uU2ljaHRi
YXJrZWl0IC8gZW1haWxBdXRvU3VmZml4IGdlYnJhdWNodC4KLy8gYWRtaW5FbXB0eVplaWxlOiBF
bXB0eS1TdGF0ZS1LYXJ0ZSBhbHMgPHRyPiBmdWVyIGxlZXJlIExpc3Rlbi4KaW1wb3J0IHsgZmVh
dHVyZUlzdEFrdGl2LCBhZG1pbkVtcHR5WmVpbGUgfSBmcm9tICcuL2FkbWluLmpzJzsKCmV4cG9y
dCBmdW5jdGlvbiBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKCkgewogICAgLy8gTmV1aW1wb3J0LUJs
b2NrIG9iZW4gcmVuZGVybiAoZnJpc2NoIGltcG9ydGllcnRlIFBlcnNvbmVuKS4KICAgIC8vIFdl
bm4ga2VpbmUgdm9yaGFuZGVuLCBibGVuZGV0IGRpZSBGdW5rdGlvbiBkZW4gQ29udGFpbmVyIGF1
cy4KICAgIG5ldWltcG9ydEJsb2NrUmVuZGVybigpOwogICAgLy8gUGFwaWVya29yYi1GZWF0dXJl
OiBGaWx0ZXItWmVpbGUgaW4gZGVyIFRvb2xiYXIgamUgbmFjaCBUb2dnbGUtU3RhdHVzCiAgICAv
LyBlaW4tIG9kZXIgYXVzYmxlbmRlbiAoQ2hlcnJ5LVBpY2sgMzAwOWVhOCkuCiAgICB2YXIgcGFw
aWVya29yYkFrdGl2ID0gZmVhdHVyZUlzdEFrdGl2KCdwYXBpZXJrb3JiVUknKTsKICAgIHZhciBw
YXBpZXJrb3JiRmlsdGVyWmVpbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFwaWVya29y
Yi1maWx0ZXItemVpbGUnKTsKICAgIGlmIChwYXBpZXJrb3JiRmlsdGVyWmVpbGUpIHBhcGllcmtv
cmJGaWx0ZXJaZWlsZS5jbGFzc0xpc3QudG9nZ2xlKCd2ZXJzdGVja3QnLCAhcGFwaWVya29yYkFr
dGl2KTsKCiAgICB2YXIgZmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluLXBl
cnNvbmFsLWZpbHRlcicpOwogICAgdmFyIHplaWdlVW1nZXNldHp0ZSA9IGZpbHRlciA/IGZpbHRl
ci5jaGVja2VkIDogZmFsc2U7CiAgICB2YXIgcGFwaWVya29yYkZpbHRlciA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdhZG1pbi1wYXBpZXJrb3JiLWZpbHRlcicpOwogICAgdmFyIHplaWdlUGFw
aWVya29yYiA9IHBhcGllcmtvcmJBa3RpdiAmJiBwYXBpZXJrb3JiRmlsdGVyICYmIHBhcGllcmtv
cmJGaWx0ZXIuY2hlY2tlZDsKCiAgICBmdW5jdGlvbiBpc3RQYXBpZXJrb3JiKHApIHsgcmV0dXJu
ICEhcC5nZWxvZXNjaHRBbTsgfQogICAgZnVuY3Rpb24gcGFwaWVya29yYlJlc3RUZXh0KHApIHsK
ICAgICAgICBpZiAoIXAuZ2Vsb2VzY2h0QW0pIHJldHVybiAnJzsKICAgICAgICB2YXIgYXVmYmV3
YWhydW5nID0gWi5hZG1pbi5wYXBpZXJrb3JiVGFnZUF1ZmJld2FocnVuZyAhPSBudWxsID8gWi5h
ZG1pbi5wYXBpZXJrb3JiVGFnZUF1ZmJld2FocnVuZyA6IDMwOwogICAgICAgIHZhciBzZWl0ID0g
bmV3IERhdGUocC5nZWxvZXNjaHRBbSk7CiAgICAgICAgaWYgKGlzTmFOKHNlaXQuZ2V0VGltZSgp
KSkgcmV0dXJuICcnOwogICAgICAgIHZhciB0YWdlVmVyZ2FuZ2VuID0gTWF0aC5mbG9vcigoRGF0
ZS5ub3coKSAtIHNlaXQuZ2V0VGltZSgpKSAvIDg2NDAwMDAwKTsKICAgICAgICB2YXIgcmVzdCA9
IE1hdGgubWF4KDAsIGF1ZmJld2FocnVuZyAtIHRhZ2VWZXJnYW5nZW4pOwogICAgICAgIHJldHVy
biAnIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjEwcHg7Y29sb3I6dmFy
KC0tdGV4dC1tdXRlZCkiPihub2NoICcgKyByZXN0ICsgJyBUYWcnICsgKHJlc3QgPT09IDEgPyAn
JyA6ICdlJykgKyAnKTwvc3Bhbj4nOwogICAgfQoKICAgIHZhciBhbGxlUGVyc29uZW4gPSAoWi5w
bGFudW5nLnBlcnNvbmVuIHx8IFtdKS5zbGljZSgpCiAgICAgICAgLmZpbHRlcihmdW5jdGlvbihw
KSB7CiAgICAgICAgICAgIGlmIChpc3RQYXBpZXJrb3JiKHApKSByZXR1cm4gemVpZ2VQYXBpZXJr
b3JiOwogICAgICAgICAgICByZXR1cm4gcC5ha3RpdiB8fCB6ZWlnZVVtZ2VzZXR6dGU7CiAgICAg
ICAgfSkKICAgICAgICAuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiAoYS5wb3NpdGlvbiB8
fCA5OTkpIC0gKGIucG9zaXRpb24gfHwgOTk5KTsgfSk7CgogICAgLy8gR3J1cHBlbi1SZWloZW5m
b2xnZSBhdXMgYWRtaW4uZ3J1cHBlbiDigJQgc28gZXJzY2hlaW5lbiBkaWUgVHJlbm5lcgogICAg
Ly8gaW4gZGVyIEFkbWluLWRlZmluaWVydGVuIEZvbGdlIChBLCBCLCBDLCBXRCwgV0wsIFZELCAu
Li4pLgogICAgdmFyIGdydXBwZW5SZWloZW5mb2xnZSA9IChaLmFkbWluLmdydXBwZW4gfHwgW10p
Lm1hcChmdW5jdGlvbihnKSB7IHJldHVybiBnLm5hbWU7IH0pOwogICAgdmFyIHBlcnNvbmVuUHJv
R3J1cHBlID0ge307CiAgICB2YXIgdW5iZWthbm50ZUdydXBwZSA9IFtdOwogICAgYWxsZVBlcnNv
bmVuLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAgICAgIHZhciBnID0gcC5ncnVwcGUgfHwgJyc7
CiAgICAgICAgaWYgKGdydXBwZW5SZWloZW5mb2xnZS5pbmRleE9mKGcpID49IDApIHsKICAgICAg
ICAgICAgaWYgKCFwZXJzb25lblByb0dydXBwZVtnXSkgcGVyc29uZW5Qcm9HcnVwcGVbZ10gPSBb
XTsKICAgICAgICAgICAgcGVyc29uZW5Qcm9HcnVwcGVbZ10ucHVzaChwKTsKICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICB1bmJla2FubnRlR3J1cHBlLnB1c2gocCk7CiAgICAgICAgfQogICAg
fSk7CgogICAgdmFyIGlubGluZUVkaXRBa3RpdiA9IGZlYXR1cmVJc3RBa3RpdigncGVyc29uYWxJ
bmxpbmVFZGl0JykgJiYgWi5yZWNodGUgJiYgWi5yZWNodGUuaXN0U3VwZXJVc2VyOwogICAgLy8g
RGF0ZW5mZWxkZXIsIGRpZSBwZXIgRWluZmFjaC1LbGljayBpbmxpbmUgYmVhcmJlaXRldCB3ZXJk
ZW4gZHVlcmZlbi4KICAgIC8vIE5hbWUgbGFldWZ0IHdlaXRlciB1ZWJlciBkZW4gTW9kYWwtRWRp
dCAoUGZsaWNodGZlbGQgKyBEaWZmLVRyaWdnZXIpLgogICAgLy8gUG9zaXRpb24vRGllbnN0Z3Jh
ZC9GdW5rdGlvbiBoYWJlbiBpaHJlIGVpZ2VuZW4gSW5saW5lLUVkaXRvcmVuLgogICAgLy8gQmVp
IGxlZXJlbiBXZXJ0ZW4gd2lyZCBlaW4gIisiLVBsYWNlaG9sZGVyIGdlemVpZ3QsIGRhbWl0IGRl
ciBLbGljay0KICAgIC8vIEJlcmVpY2ggYXVjaCBvaG5lIEluaGFsdCBleGlzdGllcnQgKFVzZXIt
RmVlZGJhY2sgMjAyNi0wNS0yMykuCiAgICBmdW5jdGlvbiBpbmxpbmVXcmFwKHAsIGZlbGQsIGFu
emVpZ2UsIG9wdHMpIHsKICAgICAgICBpZiAoIWlubGluZUVkaXRBa3RpdikgcmV0dXJuIGFuemVp
Z2UgfHwgJyc7CiAgICAgICAgdmFyIHR5cCA9IChvcHRzICYmIG9wdHMudHlwKSB8fCAndGV4dCc7
CiAgICAgICAgdmFyIGxlZXIgPSAhYW56ZWlnZSB8fCBhbnplaWdlID09PSAnJzsKICAgICAgICB2
YXIgaW5uZXIgPSBsZWVyCiAgICAgICAgICAgID8gJzxzcGFuIGNsYXNzPSJwZXJzb25hbC1pbmxp
bmUtcGxhY2Vob2xkZXIiPmVpbnRyYWdlbjwvc3Bhbj4nCiAgICAgICAgICAgIDogYW56ZWlnZTsK
ICAgICAgICB2YXIgY2xzID0gJ3BlcnNvbmFsLWlubGluZScgKyAobGVlciA/ICcgcGVyc29uYWwt
aW5saW5lLWxlZXInIDogJycpOwogICAgICAgIHJldHVybiAnPHNwYW4gY2xhc3M9IicgKyBjbHMg
KyAnIiBkYXRhLWlkPSInICsgcC5pZCArICciIGRhdGEtZmVsZD0iJyArIGZlbGQgKyAnIiBkYXRh
LXR5cD0iJyArIHR5cCArICciIHRpdGxlPSJLbGlja2VuIHp1bSBCZWFyYmVpdGVuIj4nICsgaW5u
ZXIgKyAnPC9zcGFuPic7CiAgICB9CgogICAgZnVuY3Rpb24gcGVyc29uWmVpbGUocCkgewogICAg
ICAgIHZhciBnciA9IFouZ3J1cHBlbk1hcFtwLmdydXBwZV0gfHwge307CiAgICAgICAgdmFyIHVt
Z2VzZXR6dCA9ICFwLmFrdGl2OwogICAgICAgIHZhciBwb3MgPSBwLnBvc2l0aW9uICE9IG51bGwg
PyBwLnBvc2l0aW9uIDogJ+KAlCc7CiAgICAgICAgdmFyIHJhbmdJbm5lciA9IFoucmVjaHRlLmlz
dFN1cGVyVXNlcgogICAgICAgICAgICA/ICc8c3BhbiBjbGFzcz0icmFuZy1lZGl0IiBkYXRhLWlk
PSInICsgcC5pZCArICciIHRpdGxlPSJLbGlja2VuIHp1bSBCZWFyYmVpdGVuIj4nICsgcG9zICsg
Jzwvc3Bhbj4nCiAgICAgICAgICAgIDogcG9zOwoKICAgICAgICB2YXIgZGdyZCA9IHAuZGllbnN0
Z3JhZCB8fCAnJzsKICAgICAgICB2YXIgZGdyZEFuemVpZ2UgPSBkZ3JkID8gZXNjYXBlSFRNTChk
Z3JkKSA6ICc8c3BhbiBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zdHlsZTpp
dGFsaWMiPuKAlDwvc3Bhbj4nOwogICAgICAgIHZhciBkZ3JkSW5uZXIgPSBaLnJlY2h0ZS5pc3RT
dXBlclVzZXIKICAgICAgICAgICAgPyAnPHNwYW4gY2xhc3M9ImRpZW5zdGdyYWQtZWRpdCIgZGF0
YS1pZD0iJyArIHAuaWQgKyAnIiB0aXRsZT0iS2xpY2tlbiB6dW0gQmVhcmJlaXRlbiI+JyArIGRn
cmRBbnplaWdlICsgJzwvc3Bhbj4nCiAgICAgICAgICAgIDogZGdyZEFuemVpZ2U7CgogICAgICAg
IHZhciBmdW5rdGlvbiA9IHAuZnVua3Rpb24gfHwgJyc7CiAgICAgICAgdmFyIGZ1bmt0aW9uQW56
ZWlnZSA9IGZ1bmt0aW9uID8gZXNjYXBlSFRNTChmdW5rdGlvbikgOiAnPHNwYW4gc3R5bGU9ImNv
bG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc3R5bGU6aXRhbGljIj7igJQgb2huZSDigJQ8L3Nw
YW4+JzsKICAgICAgICB2YXIgZnVua3Rpb25Jbm5lciA9IFoucmVjaHRlLmlzdFN1cGVyVXNlcgog
ICAgICAgICAgICA/ICc8c3BhbiBjbGFzcz0iZnVua3Rpb24tZWRpdCIgZGF0YS1pZD0iJyArIHAu
aWQgKyAnIiB0aXRsZT0iS2xpY2tlbiB6dW0gQmVhcmJlaXRlbiI+JyArIGZ1bmt0aW9uQW56ZWln
ZSArICc8L3NwYW4+JwogICAgICAgICAgICA6IGZ1bmt0aW9uQW56ZWlnZTsKCiAgICAgICAgLy8g
RW1haWwtQnV0dG9uLVN0aWw6CiAgICAgICAgLy8gICBrZWluZSBBZHJlc3NlICAgICAgICAgICAt
PiByb3QgKEdlZmFocikKICAgICAgICAvLyAgIEFkcmVzc2UgQHBvbGl6ZWkubnJ3LmRlIC0+IGdy
dWVuIChFcmZvbGcpCiAgICAgICAgLy8gICBzb25zdGlnZSBEb21haW4gICAgICAgICAtPiBncnVl
biArIHJvdGVyIHJlY2h0ZXIgUmFuZAogICAgICAgIC8vICAgKFRlc3QtQWRyZXNzZSwgb3B0aXNj
aCBzb2ZvcnQgZXJrZW5uYmFyKQogICAgICAgIHZhciBlbWFpbERvbWFpbk9rID0gISEocC5lbWFp
bCAmJiAvQHBvbGl6ZWlcLm5yd1wuZGUkL2kudGVzdChwLmVtYWlsKSk7CiAgICAgICAgdmFyIGVt
YWlsQ2xzOwogICAgICAgIGlmICghcC5lbWFpbCkgICAgICAgICAgICAgIGVtYWlsQ2xzID0gJ2J0
bi1nZWZhaHInOwogICAgICAgIGVsc2UgaWYgKGVtYWlsRG9tYWluT2spICAgIGVtYWlsQ2xzID0g
J2J0bi1lcmZvbGcnOwogICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsQ2xz
ID0gJ2J0bi1lcmZvbGcgYnRuLWVtYWlsLXRlc3QnOwogICAgICAgIHZhciBlbWFpbFRpdGxlOwog
ICAgICAgIGlmICghcC5lbWFpbCkgICAgICAgICAgICAgIGVtYWlsVGl0bGUgPSAnTm9jaCBrZWlu
ZSBFLU1haWwtQWRyZXNzZSBoaW50ZXJsZWd0IOKAlCBLbGljayB6dW0gUGZsZWdlbic7CiAgICAg
ICAgZWxzZSBpZiAoZW1haWxEb21haW5PaykgICAgZW1haWxUaXRsZSA9IHAuZW1haWw7CiAgICAg
ICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgZW1haWxUaXRsZSA9IHAuZW1haWwgKyAnXG7i
mqAgVGVzdC0vRnJlbWQtQWRyZXNzZSAobmljaHQgQHBvbGl6ZWkubnJ3LmRlKSc7CiAgICAgICAg
Ly8gUGFwaWVya29yYi1MZWJlbnN6eWtsdXMgKENoZXJyeS1QaWNrIDMwMDllYTgpLiBXZW5uIGRh
cyBGZWF0dXJlCiAgICAgICAgLy8gYWt0aXYgaXN0IHVuZCBgZ2Vsb2VzY2h0QW1gIGdlc2V0enQ6
IFplaWxlIHdpcmQgcm90LCBzdGF0dAogICAgICAgIC8vIFVtc2V0emVuL1JlYWt0aXZpZXJlbiBz
dGVoZW4gIldpZWRlcmhlcnN0ZWxsZW4iIHVuZCAiSmV0enQgbMO2c2NoZW4iCiAgICAgICAgLy8g
enVyIFZlcmZ1ZWd1bmcuIEFrdGl2ZS9VbWdlc2V0enRlIGJla29tbWVuIHp1c2FldHpsaWNoIGVp
bmVuCiAgICAgICAgLy8gVW1zZXR6ZW4gKyBMb2VzY2hlbiB3dXJkZW4gMjAyNi0wNS0yMyBpbnMg
QmVhcmJlaXRlbi1Nb2RhbCB2ZXJsYWdlcnQKICAgICAgICAvLyAoWmVpbGUgd2FyIHp1IHZvbGwp
LiBOdXIgIldpZWRlcmhlcnN0ZWxsZW4iIHVuZCAiSmV0enQgbG9lc2NoZW4iCiAgICAgICAgLy8g
YmxlaWJlbiBpbiBkZXIgWmVpbGUgZnVlciBQYXBpZXJrb3JiLUVpbnRyYWVnZSBzaWNodGJhciDi
gJQgZGEgZ2lidCdzCiAgICAgICAgLy8ga2VpbmVuIE1vZGFsLVBmYWQuCiAgICAgICAgdmFyIGlt
UGFwaWVya29yYiA9IHBhcGllcmtvcmJBa3RpdiAmJiBpc3RQYXBpZXJrb3JiKHApOwogICAgICAg
IHZhciBha3Rpb25CdG4gPSAnJzsKICAgICAgICBpZiAoaW1QYXBpZXJrb3JiKSB7CiAgICAgICAg
ICAgIGFrdGlvbkJ0biA9CiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1l
cmZvbGcgYnRuLWtsZWluIiBkYXRhLWFrdGlvbj0id2llZGVyaGVyc3RlbGxlbiIgZGF0YS1pZD0i
JyArIHAuaWQgKyAnIiB0aXRsZT0iQXVzIFBhcGllcmtvcmIgenVyw7xja2hvbGVuIChQZXJzb24g
d2lyZCB3aWVkZXIgYWt0aXYpIj5XaWVkZXJoZXJzdGVsbGVuPC9idXR0b24+JyArCiAgICAgICAg
ICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIgYnRuLWtsZWluIGJ0bi1sb2Vz
Y2hlbiIgZGF0YS1ha3Rpb249ImVuZGd1ZWx0aWctbG9lc2NoZW4iIGRhdGEtaWQ9IicgKyBwLmlk
ICsgJyIgdGl0bGU9IlBlcnNvbiBlbmRnw7xsdGlnIGVudGZlcm5lbiAoRWludHJhZWdlIHZlcndh
aXNlbiwgTG9nYnVjaCBibGVpYnQpIj5KZXR6dCBsw7ZzY2hlbjwvYnV0dG9uPic7CiAgICAgICAg
fQoKICAgICAgICB2YXIgbmFtZVplbGxlID0gJzxkaXYgY2xhc3M9InBlcnNvbmFsLW5hbWUtemVs
bGUiPicgKwogICAgICAgICAgICBhdmF0YXJLcmVpc0h0bWwocCwgMjYpICsKICAgICAgICAgICAg
JzxzcGFuIGNsYXNzPSJwZXJzb24tbmFtZS1saW5rIiBkYXRhLWlkPSInICsgcC5pZCArICciIHRp
dGxlPSJLbGlja2VuIHp1bSBCZWFyYmVpdGVuIj4nICsgZXNjYXBlSFRNTChwLm5hbWUpICsgJzwv
c3Bhbj4nICsKICAgICAgICAnPC9kaXY+JzsKICAgICAgICB2YXIgdm9ybmFtZUFuemVpZ2UgPSBl
c2NhcGVIVE1MKHAudm9ybmFtZSB8fCAnJyk7CiAgICAgICAgdmFyIG9lQW56ZWlnZSAgICAgID0g
ZXNjYXBlSFRNTChwLm9lIHx8ICcnKTsKICAgICAgICB2YXIgdGVsZWZvbkFuemVpZ2UgPSBlc2Nh
cGVIVE1MKHAudGVsZWZvbiB8fCAnJyk7CiAgICAgICAgdmFyIG53QW56ZWlnZSAgICAgID0gZXNj
YXBlSFRNTChwLm53S2VubnVuZyB8fCAnJyk7CiAgICAgICAgdmFyIGdlYkFuemVpZ2UgICAgID0g
cC5nZWJ1cnRzZGF0dW0gPyBkYXR1bUZvcm1hdERFKHAuZ2VidXJ0c2RhdHVtKSA6ICcnOwogICAg
ICAgIHZhciB6ZWlsZW5LbGFzc2UgPSBpbVBhcGllcmtvcmIgPyAnIGNsYXNzPSJ6ZWlsZS1wYXBp
ZXJrb3JiIicgOiAodW1nZXNldHp0ID8gJyBjbGFzcz0iemVpbGUtdW1nZXNldHp0IicgOiAnJyk7
CiAgICAgICAgcmV0dXJuICc8dHIgZGF0YS1pZD0iJyArIHAuaWQgKyAnIicgKyB6ZWlsZW5LbGFz
c2UgKyAnPicgKwogICAgICAgICAgICAnPHRkPjxzdHJvbmc+JyArIG5hbWVaZWxsZSArICc8L3N0
cm9uZz48L3RkPicgKwogICAgICAgICAgICAnPHRkPicgKyBpbmxpbmVXcmFwKHAsICd2b3JuYW1l
JywgICAgIHZvcm5hbWVBbnplaWdlKSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxl
PSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC1zaXplOjEycHgiPicgKyBmdW5rdGlvbklubmVyICsgJzwv
dGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246bGVmdDtmb250LXNpemU6
MTJweCI+JyArIGRncmRJbm5lciArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0
ZXh0LWFsaWduOmxlZnQ7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigt
LXRleHQtbXV0ZWQpIiB0aXRsZT0iUm9oZSBQb3NpdGlvbnMtWmFobCAoYXVzIEV4Y2VsLUltcG9y
dCknICsgKFoucmVjaHRlLmlzdFN1cGVyVXNlciA/ICcg4oCUIGtsaWNrYmFyIHp1bSBCZWFyYmVp
dGVuJyA6ICcnKSArICciPicgKyByYW5nSW5uZXIgKyAnPC90ZD4nICsKICAgICAgICAgICAgJzx0
ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtc2l6ZToxMnB4Ij4nICsgaW5saW5lV3JhcChw
LCAnb2UnLCAgICAgICBvZUFuemVpZ2UpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5
bGU9InRleHQtYWxpZ246bGVmdDtmb250LXNpemU6MTJweCI+JyArIGlubGluZVdyYXAocCwgJ3Rl
bGVmb24nLCAgdGVsZWZvbkFuemVpZ2UpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5
bGU9ImZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21heC13aWR0aDoxMTVw
eDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dy
YXAiIHRpdGxlPSInICsgZXNjYXBlQXR0cihwLm53S2VubnVuZyB8fCAnJykgKyAnIj4nICsgaW5s
aW5lV3JhcChwLCAnbndLZW5udW5nJywgbndBbnplaWdlKSArICc8L3RkPicgKwogICAgICAgICAg
ICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+JyArIF9wZXJzb25Sb3RhUGlsbGUocCkg
KyAnPC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0Ij48YnV0
dG9uIGNsYXNzPSJidG4gJyArIGVtYWlsQ2xzICsgJyBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJl
bWFpbCIgZGF0YS1pZD0iJyArIHAuaWQgKyAnIiB0aXRsZT0iJyArIGVzY2FwZUF0dHIoZW1haWxU
aXRsZSkgKyAnIiBzdHlsZT0id2hpdGUtc3BhY2U6bm93cmFwIj5FLU1haWw8L2J1dHRvbj48L3Rk
PicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJmb250LXNpemU6MTFweDt0ZXh0LWFsaWduOmxl
ZnQiPicgKyBpbmxpbmVXcmFwKHAsICdnZWJ1cnRzZGF0dW0nLCBnZWJBbnplaWdlLCB7IHR5cDog
J2RhdGUnIH0pICsgJzwvdGQ+JyArCiAgICAgICAgICAgIChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgICAgIC8vIFNwYWx0ZSDigJ5WSTMgREdMIi4gUXVhZHJhdGlzY2hlciBCdXR0b246CiAgICAg
ICAgICAgICAgICAvLyAgIGdydWVuICsg4pyTICAgPSBxdWFsaWZpemllcnQKICAgICAgICAgICAg
ICAgIC8vICAgcm90ICsgd2Vpc3NlciBRdWVyYmFsa2VuIChWZXJrZWhyc3NjaGlsZCDigJ5WZXJi
b3QgZGVyCiAgICAgICAgICAgICAgICAvLyAgIEVpbmZhaHJ0Ii1PcHRpaykgPSBuaWNodCBxdWFs
aWZpemllcnQuCiAgICAgICAgICAgICAgICAvLyBLbGljayB0b2dnbGV0IGRhcyBGbGFnIGZ1ZXIg
SkVERSBQZXJzb24gKFN1cGVyVXNlciBvbmx5KS4KICAgICAgICAgICAgICAgIHZhciBrbGlja2Jh
ciA9IFoucmVjaHRlLmlzdFN1cGVyVXNlcjsKICAgICAgICAgICAgICAgIHZhciBvayA9ICEhcC5l
bERnbFF1YWxpZml6aWVydDsKICAgICAgICAgICAgICAgIHZhciB0aXRlbCA9IGtsaWNrYmFyCiAg
ICAgICAgICAgICAgICAgICAgPyAnS2xpY2s6IFZJMy1ER0wtUXVhbGlmaXppZXJ1bmcgdW1zY2hh
bHRlbiDigJQgYWt0dWVsbCAnICsgKG9rID8gJ2FrdGl2JyA6ICdpbmFrdGl2JykKICAgICAgICAg
ICAgICAgICAgICA6IChvayA/ICdWSTMtREdMIHF1YWxpZml6aWVydCcgOiAnTmljaHQgVkkzLURH
TCBxdWFsaWZpemllcnQnKTsKICAgICAgICAgICAgICAgIHZhciBidG4gPSAnPHNwYW4gY2xhc3M9
InZpM2RnbC1idG4gJyArIChvayA/ICd2aTNkZ2wtYnRuLW9rJyA6ICd2aTNkZ2wtYnRuLW5vJykg
KyAnIiBhcmlhLWxhYmVsPSInICsgZXNjYXBlQXR0cih0aXRlbCkgKyAnIj48L3NwYW4+JzsKICAg
ICAgICAgICAgICAgIHZhciBjbHMgPSBrbGlja2JhciA/ICcgY2xhc3M9ImVsZGdsLWVkaXQiJyA6
ICcnOwogICAgICAgICAgICAgICAgdmFyIGRhdGFJZCA9IGtsaWNrYmFyID8gJyBkYXRhLWlkPSIn
ICsgcC5pZCArICciJyA6ICcnOwogICAgICAgICAgICAgICAgdmFyIHN0eWxlID0ga2xpY2tiYXIg
PyAndGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXInIDogJ3RleHQtYWxpZ246Y2VudGVy
JzsKICAgICAgICAgICAgICAgIHJldHVybiAnPHRkJyArIGNscyArIGRhdGFJZCArICcgc3R5bGU9
IicgKyBzdHlsZSArICciIHRpdGxlPSInICsgZXNjYXBlQXR0cih0aXRlbCkgKyAnIj4nICsgYnRu
ICsgJzwvdGQ+JzsKICAgICAgICAgICAgfSkoKSArCiAgICAgICAgICAgIChmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgICAgIC8vIFNwYWx0ZSDigJ5BbnNwcmVjaHBhcnRuZXIiOiBUb2dnbGUgZnVl
ciBFaW50cmFnIGltIEluZm8tCiAgICAgICAgICAgICAgICAvLyBGZW5zdGVyICjigJ5JbmZvcm1h
dGlvbiAmIEhpbGZlIikuIFNlaXQgMjAyNi0wNS0yNSBvaG5lCiAgICAgICAgICAgICAgICAvLyBG
dW5rdGlvbnMtIG9kZXIgRGllbnN0Z3J1cHBlbi1HYXRpbmcg4oCUIHRoZW9yZXRpc2NoIGthbm4K
ICAgICAgICAgICAgICAgIC8vIGplZGUgUGVyc29uIGFscyBBbnNwcmVjaHBhcnRuZXIgYmVuYW5u
dCB3ZXJkZW4uIFZpc3VlbGwKICAgICAgICAgICAgICAgIC8vIGlkZW50aXNjaCB6dW0gVkkzLURH
TC1CdXR0b246IGdydWVuZXIgSGFrZW4gKGFrdGl2KSBvZGVyCiAgICAgICAgICAgICAgICAvLyBn
cmF1ZXIgTWludXMtQmFsa2VuIChpbmFrdGl2KS4KICAgICAgICAgICAgICAgIHZhciBrbGlja2Jh
ckFwID0gWi5yZWNodGUuaXN0U3VwZXJVc2VyOwogICAgICAgICAgICAgICAgdmFyIGlzdEFwID0g
ISFwLmlzdEFuc3ByZWNocGFydG5lcjsKICAgICAgICAgICAgICAgIHZhciB0aXRlbEFwID0ga2xp
Y2tiYXJBcAogICAgICAgICAgICAgICAgICAgID8gJ0tsaWNrOiBBbnNwcmVjaHBhcnRuZXItRmxh
ZyB1bXNjaGFsdGVuIOKAlCBha3R1ZWxsICcgKyAoaXN0QXAgPyAnYWt0aXYnIDogJ2luYWt0aXYn
KQogICAgICAgICAgICAgICAgICAgIDogKGlzdEFwID8gJ0ltIEluZm8tRmVuc3RlciBhbHMgQW5z
cHJlY2hwYXJ0bmVyIGdlbGlzdGV0JyA6ICdOaWNodCBhbHMgQW5zcHJlY2hwYXJ0bmVyIGdlbGlz
dGV0Jyk7CiAgICAgICAgICAgICAgICB2YXIgYnRuQXAgPSAnPHNwYW4gY2xhc3M9InZpM2RnbC1i
dG4gJyArIChpc3RBcCA/ICd2aTNkZ2wtYnRuLW9rJyA6ICd2aTNkZ2wtYnRuLW9mZicpICsgJyIg
YXJpYS1sYWJlbD0iJyArIGVzY2FwZUF0dHIodGl0ZWxBcCkgKyAnIj48L3NwYW4+JzsKICAgICAg
ICAgICAgICAgIHZhciBjbHNBcCA9IGtsaWNrYmFyQXAgPyAnIGNsYXNzPSJhbnNwcmVjaHBhcnRu
ZXItZWRpdCInIDogJyc7CiAgICAgICAgICAgICAgICB2YXIgaWRBcCA9IGtsaWNrYmFyQXAgPyAn
IGRhdGEtaWQ9IicgKyBwLmlkICsgJyInIDogJyc7CiAgICAgICAgICAgICAgICB2YXIgc3R5bGVB
cCA9IGtsaWNrYmFyQXAgPyAndGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXInIDogJ3Rl
eHQtYWxpZ246Y2VudGVyJzsKICAgICAgICAgICAgICAgIHJldHVybiAnPHRkJyArIGNsc0FwICsg
aWRBcCArICcgc3R5bGU9IicgKyBzdHlsZUFwICsgJyIgdGl0bGU9IicgKyBlc2NhcGVBdHRyKHRp
dGVsQXApICsgJyI+JyArIGJ0bkFwICsgJzwvdGQ+JzsKICAgICAgICAgICAgfSkoKSArCiAgICAg
ICAgICAgIChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIC8vIFNwYWx0ZSDigJ5JbiBQbGFu
dW5nIjogYmxlbmRldCBkaWVzZSBlaW5lIFBlcnNvbiBhdXMgZGVyCiAgICAgICAgICAgICAgICAv
LyBQbGFudW5nc2Fuc2ljaHQvV29jaGVucGxhbi9QZXJzLiBQbGFuIGF1cyAoYW5hbG9nIEdydXBw
ZW4tLwogICAgICAgICAgICAgICAgLy8gRnVua3Rpb25zLWluUGxhbnVuZywgYWJlciBwcm8gUGVy
c29uKS4gR3J1ZW4gPSBzaWNodGJhciwKICAgICAgICAgICAgICAgIC8vIHJvdCA9IGF1c2dlYmxl
bmRldC4gU3VwZXJVc2VyLW9ubHkuCiAgICAgICAgICAgICAgICB2YXIga2xpY2tiYXJJcCA9IFou
cmVjaHRlLmlzdFN1cGVyVXNlciAmJiAhaW1QYXBpZXJrb3JiOwogICAgICAgICAgICAgICAgdmFy
IHNpY2h0YmFyID0gcC5pblBsYW51bmcgIT09IGZhbHNlOwogICAgICAgICAgICAgICAgdmFyIHRp
dGVsSXAgPSBrbGlja2JhcklwCiAgICAgICAgICAgICAgICAgICAgPyAnS2xpY2s6IFBlcnNvbiBp
biBkZXIgUGxhbnVuZyAnICsgKHNpY2h0YmFyID8gJ2F1c2JsZW5kZW4nIDogJ2VpbmJsZW5kZW4n
KSArICcg4oCUIGFrdHVlbGwgJyArIChzaWNodGJhciA/ICdzaWNodGJhcicgOiAnYXVzZ2VibGVu
ZGV0JykKICAgICAgICAgICAgICAgICAgICA6IChzaWNodGJhciA/ICdJbiBkZXIgUGxhbnVuZ3Nh
bnNpY2h0IHNpY2h0YmFyJyA6ICdJbiBkZXIgUGxhbnVuZ3NhbnNpY2h0IGF1c2dlYmxlbmRldCcp
OwogICAgICAgICAgICAgICAgdmFyIGJ0bklwID0gJzxzcGFuIGNsYXNzPSJ2aTNkZ2wtYnRuICcg
KyAoc2ljaHRiYXIgPyAndmkzZGdsLWJ0bi1vaycgOiAndmkzZGdsLWJ0bi1ubycpICsgJyIgYXJp
YS1sYWJlbD0iJyArIGVzY2FwZUF0dHIodGl0ZWxJcCkgKyAnIj48L3NwYW4+JzsKICAgICAgICAg
ICAgICAgIHZhciBjbHNJcCA9IGtsaWNrYmFySXAgPyAnIGNsYXNzPSJpbnBsYW51bmctZWRpdCIn
IDogJyc7CiAgICAgICAgICAgICAgICB2YXIgaWRJcCA9IGtsaWNrYmFySXAgPyAnIGRhdGEtaWQ9
IicgKyBwLmlkICsgJyInIDogJyc7CiAgICAgICAgICAgICAgICB2YXIgc3R5bGVJcCA9IGtsaWNr
YmFySXAgPyAndGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXInIDogJ3RleHQtYWxpZ246
Y2VudGVyJzsKICAgICAgICAgICAgICAgIHJldHVybiAnPHRkJyArIGNsc0lwICsgaWRJcCArICcg
c3R5bGU9IicgKyBzdHlsZUlwICsgJyIgdGl0bGU9IicgKyBlc2NhcGVBdHRyKHRpdGVsSXApICsg
JyI+JyArIGJ0bklwICsgJzwvdGQ+JzsKICAgICAgICAgICAgfSkoKSArCiAgICAgICAgICAgICc8
dGQgc3R5bGU9InRleHQtYWxpZ246bGVmdCI+JyArIChpbVBhcGllcmtvcmIKICAgICAgICAgICAg
ICAgID8gJzxzcGFuIGNsYXNzPSJ0ZXh0LWZlaGxlciIgdGl0bGU9IkltIFBhcGllcmtvcmIgc2Vp
dCAnICsgZXNjYXBlQXR0cihwLmdlbG9lc2NodEFtKSArICciPlBhcGllcmtvcmInICsgcGFwaWVy
a29yYlJlc3RUZXh0KHApICsgJzwvc3Bhbj4nCiAgICAgICAgICAgICAgICA6ICh1bWdlc2V0enQK
ICAgICAgICAgICAgICAgICAgICA/ICc8c3BhbiBjbGFzcz0idGV4dC1mZWhsZXIiIHRpdGxlPSJV
bWdlc2V0enQg4oCUIG5pY2h0IGluIGRlciBQbGFudW5nIj5VbWdlc2V0enQ8L3NwYW4+JwogICAg
ICAgICAgICAgICAgICAgIDogJzxzcGFuIGNsYXNzPSJ0ZXh0LWVyZm9sZyI+QWt0aXY8L3NwYW4+
JykpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+PGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4
O2dhcDo2cHg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7d2hpdGUtc3BhY2U6bm93cmFwIj4n
ICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hZXIgYnRuLWts
ZWluIiBkYXRhLWFrdGlvbj0iYmVhcmJlaXRlbiIgZGF0YS1pZD0iJyArIHAuaWQgKyAnIj5CZWFy
YmVpdGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAoWi5yZWNodGUuaXN0U3VwZXJVc2Vy
ICYmICFpbVBhcGllcmtvcmIKICAgICAgICAgICAgICAgICAgICA/ICc8YnV0dG9uIGNsYXNzPSJi
dG4gYnRuLXNlayBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJwZXJzb24tdGVzdGVuIiBkYXRhLWlk
PSInICsgcC5pZCArICciIHRpdGxlPSJPYmVyZmzDpGNoZSBhbHMgZGllc2UgUGVyc29uIHRlc3Rl
biAobnVyIGxva2FsLCBTZXJ2ZXItUmVjaHRlIGJsZWliZW4gU1UpIj5UZXN0ZW48L2J1dHRvbj4n
CiAgICAgICAgICAgICAgICAgICAgOiAnJykgKwogICAgICAgICAgICAgICAgYWt0aW9uQnRuICsK
ICAgICAgICAgICAgJzwvZGl2PjwvdGQ+JyArCiAgICAgICAgJzwvdHI+JzsKICAgIH0KCiAgICBm
dW5jdGlvbiB0cmVubmVyWmVpbGUoZ3JOYW1lKSB7CiAgICAgICAgdmFyIGcgPSAoWi5hZG1pbi5n
cnVwcGVuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHgubmFtZSA9PT0gZ3JOYW1l
OyB9KSB8fCB7fTsKICAgICAgICB2YXIgYmV6ID0gZy5iZXplaWNobnVuZyB8fCBnck5hbWU7CiAg
ICAgICAgcmV0dXJuICc8dHIgY2xhc3M9ImdydXBwZW4tdHJlbm5lci16ZWlsZSIgc3R5bGU9ImJh
Y2tncm91bmQ6JyArIGVzY2FwZUF0dHIoKGcuaGludGVyZ3J1bmQgfHwgJyM4ODgnKSArICcyMicp
ICsgJyI+JyArCiAgICAgICAgICAgICc8dGQgY29sc3Bhbj0iMTYiIHN0eWxlPSJwYWRkaW5nOjhw
eCAxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtib3JkZXItdG9wOjJweCBzb2xpZCAnICsgZXNjYXBlQXR0
cihnLmhpbnRlcmdydW5kIHx8ICcjODg4JykgKyAnO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZh
cigtLWJvcmRlci1saWdodCkiPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImdydXBwZW4t
YmFkZ2UiIHN0eWxlPSJiYWNrZ3JvdW5kOicgKyBlc2NhcGVBdHRyKGcuaGludGVyZ3J1bmQgfHwg
JyM2NjYnKSArICc7Y29sb3I6JyArIGVzY2FwZUF0dHIoZy5zY2hyaWZ0IHx8ICcjZmZmJykgKyAn
O21hcmdpbi1yaWdodDo4cHgiPicgKyBlc2NhcGVIVE1MKGdyTmFtZSkgKyAnPC9zcGFuPicgKwog
ICAgICAgICAgICAnPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZykiPicgKyBl
c2NhcGVIVE1MKGJleikgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAnPC90ZD48L3RyPic7CiAg
ICB9CgogICAgdmFyIGh0bWwgPSAnJzsKICAgIGdydXBwZW5SZWloZW5mb2xnZS5mb3JFYWNoKGZ1
bmN0aW9uKGdyTmFtZSkgewogICAgICAgIHZhciBsaXN0ZSA9IHBlcnNvbmVuUHJvR3J1cHBlW2dy
TmFtZV07CiAgICAgICAgaWYgKCFsaXN0ZSB8fCAhbGlzdGUubGVuZ3RoKSByZXR1cm47CiAgICAg
ICAgaHRtbCArPSB0cmVubmVyWmVpbGUoZ3JOYW1lKTsKICAgICAgICBsaXN0ZS5mb3JFYWNoKGZ1
bmN0aW9uKHApIHsgaHRtbCArPSBwZXJzb25aZWlsZShwKTsgfSk7CiAgICB9KTsKICAgIGlmICh1
bmJla2FubnRlR3J1cHBlLmxlbmd0aCkgewogICAgICAgIGh0bWwgKz0gJzx0ciBjbGFzcz0iZ3J1
cHBlbi10cmVubmVyLXplaWxlIj48dGQgY29sc3Bhbj0iMTUiIHN0eWxlPSJwYWRkaW5nOjhweCAx
MnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtib3JkZXItdG9wOjJw
eCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpIj7igJQgb2huZSBHcnVwcGUg4oCUPC90ZD48L3Ry
Pic7CiAgICAgICAgdW5iZWthbm50ZUdydXBwZS5mb3JFYWNoKGZ1bmN0aW9uKHApIHsgaHRtbCAr
PSBwZXJzb25aZWlsZShwKTsgfSk7CiAgICB9CiAgICAvLyBXZW5uIHVlYmVyaGF1cHQga2VpbmUg
UGVyc29uZW4gZ2VyZW5kZXJ0IHdlcmRlbiAoZnJpc2NoZXIgU3RhbmQgLwogICAgLy8gUmVzZXQg
LyBoYXJ0ZSBGaWx0ZXIpLCBFbXB0eS1TdGF0ZSB6ZWlnZW4gc3RhdHQgbGVlcmVuIDx0Ym9keT4u
CiAgICBpZiAoIWh0bWwpIHsKICAgICAgICBodG1sID0gYWRtaW5FbXB0eVplaWxlKDE1LCAnXHV7
MUY0NjR9JywKICAgICAgICAgICAgJ05vY2gga2VpbmUgUGVyc29uZW4gZXJmYXNzdCcsCiAgICAg
ICAgICAgICdQZXJzb25lbiB3ZXJkZW4gaW4gZGVyIFRhYmVsbGUgcHJvIERpZW5zdGdydXBwZSBn
cnVwcGllcnQuIEtsaWNrZSBvYmVuIGF1ZiDigJ5OZXVlIFBlcnNvbiIsIG9kZXIgaW1wb3J0aWVy
ZSBlaW5lIHZvcmhhbmRlbmUgRXhjZWwtTGlzdGUgaW0gVGFiIOKAnkV4Y2VsLUltcG9ydCIuJyk7
CiAgICB9CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGVyc29uYWwtdGJvZHknKS5pbm5l
ckhUTUwgPSBodG1sOwp9CgovLyA9PT09PSBBZG1pbjogTmV1aW1wb3J0LUJsb2NrID09PT09Ci8v
Ci8vIFBlcnNvbmVuLCBkaWUgZGVyIEV4Y2VsLUltcG9ydCBmcmlzY2ggYW5nZWxlZ3QgaGF0LCB0
cmFnZW4gZWluZW4KLy8gYGltcG9ydE5ldUFtYC1NYXJrZXIuIFNvbGFuZ2UgZGllc2VyIGdlc2V0
enQgaXN0LCBlcnNjaGVpbnQgZGllIFBlcnNvbgovLyBpbSBCbG9jayBvYmVuIMO8YmVyIGRlciBU
YWJlbGxlIOKAlCBtaXQgSW5saW5lLVNlbGVjdHMgZnVlciBEaWVuc3RncnVwcGUKLy8gdW5kIEZ1
bmt0aW9uIChkaWUgYmVpZGVuIFBmbGljaHRmZWxkZXIsIGRpZSBkZXIgRXhjZWwtSW1wb3J0IG5p
Y2h0Ci8vIGF1dG9tYXRpc2NoIGhlcmxlaXRlbiBrYW5uKS4gUGVyIEtsaWNrIGF1ZiAiRXJsZWRp
Z3QiIHdpcmQgZGVyIE1hcmtlcgovLyBlbnRmZXJudCB1bmQgZGllIFBlcnNvbiB3YW5kZXJ0IGlu
IGRpZSBub3JtYWxlIFRhYmVsbGUuCmV4cG9ydCBmdW5jdGlvbiBuZXVpbXBvcnRCbG9ja1JlbmRl
cm4oKSB7CiAgICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BlcnNvbmFsLW5l
dWltcG9ydC1ibG9jaycpOwogICAgaWYgKCFib3gpIHJldHVybjsKICAgIHZhciBuZXVlID0gKFou
cGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uKHApIHsKICAgICAgICByZXR1
cm4gcC5pbXBvcnROZXVBbSAmJiAhcC5nZWxvZXNjaHRBbTsKICAgIH0pLnNvcnQoZnVuY3Rpb24o
YSwgYikgeyByZXR1cm4gKGEucG9zaXRpb24gfHwgOTk5KSAtIChiLnBvc2l0aW9uIHx8IDk5OSk7
IH0pOwogICAgaWYgKCFuZXVlLmxlbmd0aCkgewogICAgICAgIGJveC5jbGFzc0xpc3QuYWRkKCd2
ZXJzdGVja3QnKTsKICAgICAgICBib3guaW5uZXJIVE1MID0gJyc7CiAgICAgICAgcmV0dXJuOwog
ICAgfQogICAgYm94LmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNrdCcpOwogICAgdmFyIGdydXBw
ZW4gPSAoWi5hZG1pbi5ncnVwcGVuIHx8IFtdKS5tYXAoZnVuY3Rpb24oZykgeyByZXR1cm4gZy5u
YW1lOyB9KTsKICAgIHZhciB6ZWlsZW4gPSBuZXVlLm1hcChmdW5jdGlvbihwKSB7CiAgICAgICAg
dmFyIHBpZCA9IHAuaWQ7CiAgICAgICAgdmFyIGdycE9wdCA9ICc8b3B0aW9uIHZhbHVlPSIiJyAr
ICghcC5ncnVwcGUgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+4oCUIEdydXBwZSB3w6RobGVuIOKA
lDwvb3B0aW9uPicgKwogICAgICAgICAgICBncnVwcGVuLm1hcChmdW5jdGlvbihnKSB7CiAgICAg
ICAgICAgICAgICByZXR1cm4gJzxvcHRpb24gdmFsdWU9IicgKyBlc2NhcGVBdHRyKGcpICsgJyIn
ICsgKGcgPT09IHAuZ3J1cHBlID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPicgKyBlc2NhcGVIVE1M
KGcpICsgJzwvb3B0aW9uPic7CiAgICAgICAgICAgIH0pLmpvaW4oJycpOwogICAgICAgIHZhciBm
dW5rT3B0ID0gJzxvcHRpb24gdmFsdWU9IiInICsgKCFwLmZ1bmt0aW9uID8gJyBzZWxlY3RlZCcg
OiAnJykgKyAnPuKAlCBvaG5lIEZ1bmt0aW9uIOKAlDwvb3B0aW9uPicgKwogICAgICAgICAgICAo
Z2V0RnVua3Rpb25lbigpIHx8IFtdKS5tYXAoZnVuY3Rpb24oZikgewogICAgICAgICAgICAgICAg
cmV0dXJuICc8b3B0aW9uIHZhbHVlPSInICsgZXNjYXBlQXR0cihmLmNvZGUpICsgJyInICsgKGYu
Y29kZSA9PT0gcC5mdW5rdGlvbiA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz4nICsgZXNjYXBlSFRN
TChmLmNvZGUpICsgJzwvb3B0aW9uPic7CiAgICAgICAgICAgIH0pLmpvaW4oJycpOwogICAgICAg
IHZhciBkZXRhaWwgPSBbXTsKICAgICAgICBpZiAocC5vZSkgICAgICBkZXRhaWwucHVzaCgnT0U6
IDxzdHJvbmc+JyArIGVzY2FwZUhUTUwocC5vZSkgKyAnPC9zdHJvbmc+Jyk7CiAgICAgICAgaWYg
KHAudGVsZWZvbikgZGV0YWlsLnB1c2goJ1RlbDogJyArIGVzY2FwZUhUTUwocC50ZWxlZm9uKSk7
CiAgICAgICAgaWYgKHAucG9zaXRpb24gIT0gbnVsbCkgZGV0YWlsLnB1c2goJ1Jhbmc6ICcgKyBl
c2NhcGVIVE1MKFN0cmluZyhwLnBvc2l0aW9uKSkpOwogICAgICAgIHZhciBkZXRhaWxIdG1sID0g
ZGV0YWlsLmxlbmd0aCA/ICc8ZGl2IGNsYXNzPSJuZXVpbXBvcnQtZGV0YWlsIj4nICsgZGV0YWls
LmpvaW4oJyAmbmJzcDvCtyZuYnNwOyAnKSArICc8L2Rpdj4nIDogJyc7CiAgICAgICAgcmV0dXJu
ICc8ZGl2IGNsYXNzPSJuZXVpbXBvcnQtemVpbGUiIGRhdGEtaWQ9IicgKyBwaWQgKyAnIj4nICsK
ICAgICAgICAgICAgJzxkaXYgY2xhc3M9Im5ldWltcG9ydC1uYW1lIj4nICsKICAgICAgICAgICAg
ICAgICc8c3Ryb25nPicgKyBlc2NhcGVIVE1MKHAubmFtZSB8fCAnJykgKyAnPC9zdHJvbmc+JyAr
CiAgICAgICAgICAgICAgICAnPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWlucHV0IG5l
dWltcG9ydC12b3JuYW1lIiBkYXRhLWlkPSInICsgcGlkICsgJyIgZGF0YS1mZWxkPSJ2b3JuYW1l
IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIocC52b3JuYW1lIHx8ICcnKSArICciIHBsYWNlaG9sZGVy
PSJWb3JuYW1lIOKApiIgc3R5bGU9Im1hcmdpbi1sZWZ0OjhweDt3aWR0aDoxNjBweDtmb250LXNp
emU6MTNweCI+JyArCiAgICAgICAgICAgICAgICBkZXRhaWxIdG1sICsKICAgICAgICAgICAgJzwv
ZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0ibmV1aW1wb3J0LWZlbGRlciI+JyArCiAg
ICAgICAgICAgICAgICAnPHNlbGVjdCBjbGFzcz0iZm9ybS1pbnB1dCBuZXVpbXBvcnQtZmVsZCIg
ZGF0YS1pZD0iJyArIHBpZCArICciIGRhdGEtZmVsZD0iZ3J1cHBlIiBzdHlsZT0id2lkdGg6MTMw
cHgiIHRpdGxlPSJEaWVuc3RncnVwcGUg4oCUIFBmbGljaHRmZWxkLCBkYW1pdCBkaWUgUGVyc29u
IGluIGRlciBQbGFudW5nIGVyc2NoZWludCI+JyArIGdycE9wdCArICc8L3NlbGVjdD4nICsKICAg
ICAgICAgICAgICAgICc8c2VsZWN0IGNsYXNzPSJmb3JtLWlucHV0IG5ldWltcG9ydC1mZWxkIiBk
YXRhLWlkPSInICsgcGlkICsgJyIgZGF0YS1mZWxkPSJmdW5rdGlvbiIgc3R5bGU9IndpZHRoOjE2
MHB4IiB0aXRsZT0iU3RhbW0tRnVua3Rpb24gKG9wdGlvbmFsLCBrYW5uIHNww6R0ZXIgZ2VzZXR6
dCB3ZXJkZW4pIj4nICsgZnVua09wdCArICc8L3NlbGVjdD4nICsKICAgICAgICAgICAgJzwvZGl2
PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0ibmV1aW1wb3J0LWFrdGlvbmVuIj4nICsKICAg
ICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hZXIgYnRuLWtsZWluIiBk
YXRhLW5ldWltcG9ydC1ha3Rpb249ImJlYXJiZWl0ZW4iIGRhdGEtaWQ9IicgKyBwaWQgKyAnIiB0
aXRsZT0iVm9sbHN0w6RuZGlnZW4gQmVhcmJlaXRlbi1EaWFsb2cgw7ZmZm5lbiI+QmVhcmJlaXRl
bjwvYnV0dG9uPicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tZXJm
b2xnIGJ0bi1rbGVpbiIgZGF0YS1uZXVpbXBvcnQtYWt0aW9uPSJlcmxlZGlndCIgZGF0YS1pZD0i
JyArIHBpZCArICciIHRpdGxlPSJBdXMgZGVtIE5ldWltcG9ydC1CbG9jayBlbnRmZXJuZW4g4oCU
IFBlcnNvbiBibGVpYnQgYWt0aXYiPkVybGVkaWd0PC9idXR0b24+JyArCiAgICAgICAgICAgICAg
ICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIgYnRuLWtsZWluIiBkYXRhLW5ldWltcG9y
dC1ha3Rpb249InZlcndlcmZlbiIgZGF0YS1pZD0iJyArIHBpZCArICciIHRpdGxlPSJQZXJzb24g
a29tcGxldHQgbMO2c2NoZW4gKEV4Y2VsLUltcG9ydCB3YXIgZWluIEZlaGxpbXBvcnQpIj5WZXJ3
ZXJmZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8L2Rpdj4n
OwogICAgfSkuam9pbignJyk7CiAgICB2YXIgYWxsZUVybGVkaWdlbkJ0biA9IG5ldWUubGVuZ3Ro
ID49IDIKICAgICAgICA/ICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iIGlk
PSJuZXVpbXBvcnQtYWxsZS1lcmxlZGlndCIgdGl0bGU9Ik1hcmtlciBiZWkgYWxsZW4gUGVyc29u
ZW4gaW0gQmxvY2sgZW50ZmVybmVuIOKAlCBTdGFtbWRhdGVuIGJsZWliZW4gZXJoYWx0ZW4iPkFs
bGUgYWxzIGVybGVkaWd0IG1hcmtpZXJlbjwvYnV0dG9uPicKICAgICAgICA6ICcnOwogICAgYm94
LmlubmVySFRNTCA9CiAgICAgICAgJzxkaXYgY2xhc3M9Im5ldWltcG9ydC1rb3BmIj4nICsKICAg
ICAgICAgICAgJzxkaXY+JyArCiAgICAgICAgICAgICAgICAnPGgzPk5ldSBpbXBvcnRpZXJ0IMK3
ICcgKyBuZXVlLmxlbmd0aCArICcgUGVyc29uJyArIChuZXVlLmxlbmd0aCA9PT0gMSA/ICcnIDog
J2VuJykgKyAnPC9oMz4nICsKICAgICAgICAgICAgICAgICc8cD5EaWVzZSBQZXJzb25lbiB3dXJk
ZW4gZ2VyYWRlIHBlciBFeGNlbC1JbXBvcnQgYW5nZWxlZ3QuIEJpdHRlIERpZW5zdGdydXBwZSAo
UGZsaWNodCkgdW5kIG9wdGlvbmFsIFZvcm5hbWUvRnVua3Rpb24gZXJnw6RuemVuLCBkYW5uIGF1
ZiA8ZW0+RXJsZWRpZ3Q8L2VtPiBrbGlja2VuLjwvcD4nICsKICAgICAgICAgICAgJzwvZGl2Picg
KwogICAgICAgICAgICAnPGRpdj4nICsgYWxsZUVybGVkaWdlbkJ0biArICc8L2Rpdj4nICsKICAg
ICAgICAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9Im5ldWltcG9ydC1saXN0ZSI+JyAr
IHplaWxlbiArICc8L2Rpdj4nOwogICAgLy8gRXZlbnQtQmluZGluZ3MKICAgIGJveC5xdWVyeVNl
bGVjdG9yQWxsKCcubmV1aW1wb3J0LWZlbGQnKS5mb3JFYWNoKGZ1bmN0aW9uKHNlbCkgewogICAg
ICAgIHNlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgbmV1aW1wb3J0RmVsZFNwZWljaGVybihwYXJzZUludChzZWwuZ2V0QXR0cmlidXRlKCdkYXRh
LWlkJyksIDEwKSwgc2VsLmdldEF0dHJpYnV0ZSgnZGF0YS1mZWxkJyksIHNlbC52YWx1ZSk7CiAg
ICAgICAgfSk7CiAgICB9KTsKICAgIGJveC5xdWVyeVNlbGVjdG9yQWxsKCcubmV1aW1wb3J0LXZv
cm5hbWUnKS5mb3JFYWNoKGZ1bmN0aW9uKGlucCkgewogICAgICAgIGlucC5hZGRFdmVudExpc3Rl
bmVyKCdibHVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIG5ldWltcG9ydEZlbGRTcGVpY2hl
cm4ocGFyc2VJbnQoaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcpLCAxMCksICd2b3JuYW1lJywg
aW5wLnZhbHVlLnRyaW0oKSk7CiAgICAgICAgfSk7CiAgICAgICAgaW5wLmFkZEV2ZW50TGlzdGVu
ZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0Vu
dGVyJykgeyBlLnByZXZlbnREZWZhdWx0KCk7IGlucC5ibHVyKCk7IH0KICAgICAgICB9KTsKICAg
IH0pOwogICAgYm94LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLW5ldWltcG9ydC1ha3Rpb25dJyku
Zm9yRWFjaChmdW5jdGlvbihidG4pIHsKICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xp
Y2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGlkID0gcGFyc2VJbnQoYnRuLmdldEF0
dHJpYnV0ZSgnZGF0YS1pZCcpLCAxMCk7CiAgICAgICAgICAgIHZhciBha3QgPSBidG4uZ2V0QXR0
cmlidXRlKCdkYXRhLW5ldWltcG9ydC1ha3Rpb24nKTsKICAgICAgICAgICAgaWYgKGFrdCA9PT0g
J2VybGVkaWd0JykgICAgbmV1aW1wb3J0RXJsZWRpZ3QoaWQpOwogICAgICAgICAgICBlbHNlIGlm
IChha3QgPT09ICd2ZXJ3ZXJmZW4nKSAgIG5ldWltcG9ydFZlcndlcmZlbihpZCk7CiAgICAgICAg
ICAgIGVsc2UgaWYgKGFrdCA9PT0gJ2JlYXJiZWl0ZW4nKSAgcGVyc29uQmVhcmJlaXRlbkRpYWxv
ZyhpZCk7CiAgICAgICAgfSk7CiAgICB9KTsKICAgIHZhciBhbGxlQnRuID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ25ldWltcG9ydC1hbGxlLWVybGVkaWd0Jyk7CiAgICBpZiAoYWxsZUJ0bikg
YWxsZUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIGJl
c3RhZXRpZ2VuKAogICAgICAgICAgICAnQWxsZSAnICsgbmV1ZS5sZW5ndGggKyAnIFBlcnNvbmVu
IGF1cyBkZW0gTmV1aW1wb3J0LUJsb2NrIGVudGZlcm5lbj9cblxuJyArCiAgICAgICAgICAgICdE
aWUgU3RhbW1kYXRlbiBibGVpYmVuIGVyaGFsdGVuLCBudXIgZGVyIE5ldWltcG9ydC1NYXJrZXIg
d2lyZCB6dXLDvGNrZ2VzZXR6dC4nLAogICAgICAgICAgICBmdW5jdGlvbigpIHsgbmV1aW1wb3J0
QWxsZUVybGVkaWd0KG5ldWUubWFwKGZ1bmN0aW9uKHApIHsgcmV0dXJuIHAuaWQ7IH0pKTsgfSwK
ICAgICAgICAgICAgeyB0aXRlbDogJ0FsbGUgYWxzIGVybGVkaWd0IG1hcmtpZXJlbicsIGphVGV4
dDogJ0VybGVkaWd0IG1hcmtpZXJlbicgfQogICAgICAgICk7CiAgICB9KTsKfQoKZXhwb3J0IGZ1
bmN0aW9uIG5ldWltcG9ydEZlbGRTcGVpY2hlcm4oaWQsIGZlbGQsIHdlcnQpIHsKICAgIHZhciBw
ZXJzb24gPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHApIHsgcmV0
dXJuIHAuaWQgPT09IGlkOyB9KTsKICAgIGlmICghcGVyc29uKSByZXR1cm47CiAgICBpZiAoU3Ry
aW5nKHBlcnNvbltmZWxkXSB8fCAnJykgPT09IFN0cmluZyh3ZXJ0IHx8ICcnKSkgcmV0dXJuOwog
ICAgdmFyIHVwZGF0ZSA9IHt9OyB1cGRhdGVbZmVsZF0gPSB3ZXJ0OwogICAgYXBpUHV0KCcvYXBp
L3BlcnNvbmVuLycgKyBpZCwgdXBkYXRlKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgIHBlcnNv
bltmZWxkXSA9IHdlcnQ7CiAgICAgICAgcGVyc29uZW5OZXVBdWZiYXVlbigpOwogICAgICAgIC8v
IFRhYmVsbGUgKyBCbG9jayBuZXUsIGZhbGxzIEdydXBwZW4tQWVuZGVydW5nIGRpZSBTb3J0aWVy
dW5nIGJlZWluZmx1c3N0CiAgICAgICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgICAg
IGlmICh0eXBlb2YgbmFtZW5SZW5kZXJuID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgIG5h
bWVuUmVuZGVybigpOwogICAgICAgICAgICBkYXRlbkdyaWRSZW5kZXJuKCk7CiAgICAgICAgICAg
IGtvcGZSZW5kZXJuKCk7CiAgICAgICAgfQogICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2Fz
dCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwp9CgpleHBvcnQgZnVuY3Rp
b24gbmV1aW1wb3J0RXJsZWRpZ3QoaWQpIHsKICAgIC8vIE1hcmtlciBlbnRmZXJuZW46IFBVVCBt
aXQgaW1wb3J0TmV1QW09bnVsbC4gU2VydmVyIHNjaHJlaWJ0IGRhcyBGZWxkCiAgICAvLyBlaW5m
YWNoIHVtLCBpbiBkZXIgRGF0ZWkgc3RlaHQgZGFubiBpbXBvcnROZXVBbTogbnVsbCDigJQgZGVy
IEZpbHRlcgogICAgLy8gInAuaW1wb3J0TmV1QW0iIGlzdCBmYWxzeSB1bmQgZGllIFBlcnNvbiBl
cnNjaGVpbnQgbmljaHQgbWVociBpbSBCbG9jay4KICAgIGFwaVB1dCgnL2FwaS9wZXJzb25lbi8n
ICsgaWQsIHsgaW1wb3J0TmV1QW06IG51bGwgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICB2
YXIgcCA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1
cm4geC5pZCA9PT0gaWQ7IH0pOwogICAgICAgIGlmIChwKSBwLmltcG9ydE5ldUFtID0gbnVsbDsK
ICAgICAgICBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICAgICAgdG9hc3QoJ1BlcnNvbiBh
dXMgTmV1aW1wb3J0LUJsb2NrIGVudGZlcm50JywgJ2VyZm9sZycpOwogICAgfSkuY2F0Y2goZnVu
Y3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwp9
CgpleHBvcnQgZnVuY3Rpb24gbmV1aW1wb3J0QWxsZUVybGVkaWd0KGlkcykgewogICAgLy8gU2Vx
dWVuemllbGwgZHVyY2hnZWhlbiwgZGFtaXQgU2VydmVyLUxhc3QgYmVncmVuenQgYmxlaWJ0IHVu
ZCBkZXIKICAgIC8vIGxldHp0ZSBQVVQgZGllIFJlbmRlcmluZy1Ba3R1YWxpc2llcnVuZyB0cmln
Z2VybiBrYW5uLgogICAgdmFyIGkgPSAwOwogICAgZnVuY3Rpb24gbmFlY2hzdGUoKSB7CiAgICAg
ICAgaWYgKGkgPj0gaWRzLmxlbmd0aCkgewogICAgICAgICAgICB0b2FzdChpZHMubGVuZ3RoICsg
JyBQZXJzb24nICsgKGlkcy5sZW5ndGggPT09IDEgPyAnJyA6ICdlbicpICsgJyBhdXMgTmV1aW1w
b3J0LUJsb2NrIGVudGZlcm50JywgJ2VyZm9sZycpOwogICAgICAgICAgICBwZXJzb25hbFRhYmVs
bGVSZW5kZXJuKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIGlk
ID0gaWRzW2krK107CiAgICAgICAgYXBpUHV0KCcvYXBpL3BlcnNvbmVuLycgKyBpZCwgeyBpbXBv
cnROZXVBbTogbnVsbCB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgcCA9ICha
LnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCA9
PT0gaWQ7IH0pOwogICAgICAgICAgICBpZiAocCkgcC5pbXBvcnROZXVBbSA9IG51bGw7CiAgICAg
ICAgICAgIG5hZWNoc3RlKCk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAg
ICAgICB0b2FzdCgnRmVobGVyIGJlaSBJRCAnICsgaWQgKyAnOiAnICsgZS5tZXNzYWdlLCAnZmVo
bGVyJyk7CiAgICAgICAgICAgIHBlcnNvbmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICB9KTsK
ICAgIH0KICAgIG5hZWNoc3RlKCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBuZXVpbXBvcnRWZXJ3ZXJm
ZW4oaWQpIHsKICAgIHZhciBwZXJzb24gPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maW5k
KGZ1bmN0aW9uKHApIHsgcmV0dXJuIHAuaWQgPT09IGlkOyB9KTsKICAgIGlmICghcGVyc29uKSBy
ZXR1cm47CiAgICBiZXN0YWV0aWdlbigKICAgICAgICAnUGVyc29uICInICsgKHBlcnNvbi5uYW1l
IHx8ICgnSUQgJyArIGlkKSkgKyAnIiBlbmRnw7xsdGlnIGzDtnNjaGVuP1xuXG4nICsKICAgICAg
ICAnVmVyd2VuZGUgZGFzIG51ciwgd2VubiBkZXIgRXhjZWwtSW1wb3J0IGRpZXNlIFBlcnNvbiBm
w6Rsc2NobGljaCBhbmdlbGVndCBoYXQuICcgKwogICAgICAgICdEaWUgU3RhbW1kYXRlbiBnZWhl
biB2ZXJsb3Jlbi4nLAogICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBmZXRjaCgnL2Fw
aS9wZXJzb25lbi8nICsgaWQgKyAnP2VuZGd1ZWx0aWc9MScsIHsgbWV0aG9kOiAnREVMRVRFJyB9
KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgICAgIGlmICghci5vaykgcmV0dXJuIHIu
anNvbigpLnRoZW4oZnVuY3Rpb24oYikgeyB0aHJvdyBuZXcgRXJyb3IoYi5mZWhsZXIgfHwgKCdI
VFRQICcgKyByLnN0YXR1cykpOyB9KTsKICAgICAgICAgICAgICAgIFoucGxhbnVuZy5wZXJzb25l
biA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbHRlcihmdW5jdGlvbih4KSB7IHJldHVy
biB4LmlkICE9PSBpZDsgfSk7CiAgICAgICAgICAgICAgICBwZXJzb25lbk5ldUF1ZmJhdWVuKCk7
CiAgICAgICAgICAgICAgICBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICAgICAgICAgICAg
ICBpZiAodHlwZW9mIG5hbWVuUmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICAg
ICAgICAgIG5hbWVuUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgIGRhdGVuR3JpZFJlbmRl
cm4oKTsKICAgICAgICAgICAgICAgICAgICBrb3BmUmVuZGVybigpOwogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgdG9hc3QoJ1BlcnNvbiB2ZXJ3b3JmZW4nLCAnZXJmb2xnJyk7CiAg
ICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVz
c2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9LAogICAgICAgIHsgdGl0ZWw6ICdQZXJzb24g
dmVyd2VyZmVuJywgamFUZXh0OiAnRW5kZ8O8bHRpZyBsw7ZzY2hlbicsIGphRGFuZ2VyOiB0cnVl
IH0KICAgICk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBwZXJzb25TdGF0dXNTZXR6ZW4oaWQsIGFrdGl2
KSB7CiAgICBhcGlQdXQoJy9hcGkvcGVyc29uZW4vJyArIGlkLCB7IGFrdGl2OiBha3RpdiB9KS50
aGVuKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBwID0gWi5wbGFudW5nLnBlcnNvbmVuLmZpbmQo
ZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCA9PT0gaWQ7IH0pOwogICAgICAgIGlmIChwKSBwLmFr
dGl2ID0gYWt0aXY7CiAgICAgICAgcGVyc29uZW5OZXVBdWZiYXVlbigpOwogICAgICAgIHBlcnNv
bmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICBpZiAodHlwZW9mIG5hbWVuUmVuZGVybiA9PT0g
J2Z1bmN0aW9uJykgewogICAgICAgICAgICBuYW1lblJlbmRlcm4oKTsKICAgICAgICAgICAgZGF0
ZW5HcmlkUmVuZGVybigpOwogICAgICAgICAgICBrb3BmUmVuZGVybigpOwogICAgICAgIH0KICAg
ICAgICB0b2FzdChha3RpdiA/ICdQZXJzb24gcmVha3RpdmllcnQnIDogJ1BlcnNvbiB1bWdlc2V0
enQnLCAnZXJmb2xnJyk7CiAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6
ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBwZXJzb25C
ZWFyYmVpdGVuRGlhbG9nKGlkKSB7CiAgICB2YXIgcGVyc29uID0gKFoucGxhbnVuZy5wZXJzb25l
biB8fCBbXSkuZmluZChmdW5jdGlvbihwKSB7IHJldHVybiBwLmlkID09PSBpZDsgfSk7CiAgICBp
ZiAoIXBlcnNvbikgcmV0dXJuOwogICAgdmFyIGdydXBwZW4gPSAoWi5hZG1pbi5ncnVwcGVuIHx8
IFtdKS5tYXAoZnVuY3Rpb24oZykgeyByZXR1cm4gZy5uYW1lOyB9KTsKCiAgICAvLyBBa3R1ZWxs
ZSBSYW5nLVBvc2l0aW9uIChQbGF0eiBpbiBkZXIgYWt0aXYgc29ydGllcnRlbiBMaXN0ZSkg4oCU
IHJlYWQtb25seSwKICAgIC8vIHdpcmQgdmlhIFBmZWlsZSDilrIv4pa8IGluIGRlciBQZXJzb25h
bC1UYWJlbGxlIGdlYWVuZGVydCwgbmljaHQgaGllci4KICAgIC8vIFp1c2FldHpsaWNoIHplaWdl
biB3aXIgZGllIHJvaGUgcG9zaXRpb24gKEV4Y2VsLVJhbmd6YWhsKSwgZGFtaXQgZGVyCiAgICAv
LyBVc2VyIGVya2VubnQsIG9iIGRpZSBSYW5nb3JkbnVuZyBhdXMgZWluZW0gSW1wb3J0IHVlYmVy
bm9tbWVuIHd1cmRlLgogICAgdmFyIGFrdGl2ZSA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10p
CiAgICAgICAgLmZpbHRlcihmdW5jdGlvbih4KSB7IHJldHVybiB4LmFrdGl2OyB9KQogICAgICAg
IC5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIChhLnBvc2l0aW9uIHx8IDk5OSkgLSAoYi5w
b3NpdGlvbiB8fCA5OTkpOyB9KTsKICAgIHZhciByYW5nSWR4ID0gYWt0aXZlLmZpbmRJbmRleChm
dW5jdGlvbih4KSB7IHJldHVybiB4LmlkID09PSBpZDsgfSk7CiAgICB2YXIgcmFuZ1RleHQgPSAn
4oCUJzsKICAgIGlmIChwZXJzb24uYWt0aXYgJiYgcmFuZ0lkeCA+PSAwKSB7CiAgICAgICAgcmFu
Z1RleHQgPSAnUmFuZyAnICsgKHJhbmdJZHggKyAxKSArICcgdm9uICcgKyBha3RpdmUubGVuZ3Ro
OwogICAgICAgIGlmIChwZXJzb24ucG9zaXRpb24gIT0gbnVsbCkgcmFuZ1RleHQgKz0gJyDCtyBQ
b3NpdGlvbiAnICsgcGVyc29uLnBvc2l0aW9uOwogICAgfQoKICAgIHZhciBrb2VycGVyID0gYXZh
dGFyQmxvY2tIdG1sKHBlcnNvbikgKwogICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmdyaWQ7
Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjAgMTZweCI+JyArCiAgICAgICAgJzxk
aXYgY2xhc3M9ImZvcm0tZ3J1cHBlIGZvcm0tcGZsaWNodCI+PGxhYmVsPk5hbWU8L2xhYmVsPjxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGxnLW5hbWUiIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0i
d2lkdGg6MTAwJSIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKHBlcnNvbi5uYW1lKSArICciPjwvZGl2
PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPlZvcm5hbWU8L2xh
YmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGxnLXZvcm5hbWUiIGNsYXNzPSJmb3JtLWlucHV0
IiBzdHlsZT0id2lkdGg6MTAwJSIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKHBlcnNvbi52b3JuYW1l
IHx8ICcnKSArICciPjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+
PGxhYmVsPkRpZW5zdGdyYWQ8L2xhYmVsPjxzZWxlY3QgaWQ9ImRsZy1kaWVuc3RncmFkIiBjbGFz
cz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiPicgKwogICAgICAgICc8b3B0aW9uIHZh
bHVlPSIiJyArICghcGVyc29uLmRpZW5zdGdyYWQgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+4oCU
IG9obmUg4oCUPC9vcHRpb24+JyArCiAgICAgICAgZ2V0RGllbnN0Z3JhZGUoKS5tYXAoZnVuY3Rp
b24oZykgewogICAgICAgICAgICByZXR1cm4gJzxvcHRpb24gdmFsdWU9IicgKyBlc2NhcGVBdHRy
KGcpICsgJyInICsgKGcgPT09IHBlcnNvbi5kaWVuc3RncmFkID8gJyBzZWxlY3RlZCcgOiAnJykg
KyAnPicgKyBlc2NhcGVIVE1MKGcpICsgJzwvb3B0aW9uPic7CiAgICAgICAgfSkuam9pbignJykg
KwogICAgICAgICc8L3NlbGVjdD48L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1n
cnVwcGUiPjxsYWJlbD5EaWVuc3RncnVwcGU8L2xhYmVsPjxzZWxlY3QgaWQ9ImRsZy1ncnVwcGUi
IGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSI+JyArCiAgICAgICAgZ3J1cHBl
bi5tYXAoZnVuY3Rpb24oZykgeyByZXR1cm4gJzxvcHRpb24nICsgKGcgPT09IHBlcnNvbi5ncnVw
cGUgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+JyArIGVzY2FwZUhUTUwoZykgKyAnPC9vcHRpb24+
JzsgfSkuam9pbignJykgKwogICAgICAgICc8L3NlbGVjdD48L2Rpdj4nICsKICAgICAgICAnPGRp
diBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5GdW5rdGlvbjwvbGFiZWw+PHNlbGVjdCBpZD0i
ZGxnLWZ1bmt0aW9uIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiIHRpdGxl
PSJTdGFtbS1GdW5rdGlvbjogYmVzdGltbXQgZGllIFZlcmFudHdvcnR1bmdzLVJlaWhlbmZvbGdl
IGluIGRlciBTY2hpY2h0Ij4nICsKICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iIicgKyAoIXBlcnNv
bi5mdW5rdGlvbiA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz7igJQgb2huZSBGdW5rdGlvbiDigJQ8
L29wdGlvbj4nICsKICAgICAgICBnZXRGdW5rdGlvbmVuKCkubWFwKGZ1bmN0aW9uKGYpIHsKICAg
ICAgICAgICAgcmV0dXJuICc8b3B0aW9uIHZhbHVlPSInICsgZXNjYXBlQXR0cihmLmNvZGUpICsg
JyInICsgKGYuY29kZSA9PT0gcGVyc29uLmZ1bmt0aW9uID8gJyBzZWxlY3RlZCcgOiAnJykgKyAn
PicgKyBlc2NhcGVIVE1MKGYuY29kZSkgKyAnPC9vcHRpb24+JzsKICAgICAgICB9KS5qb2luKCcn
KSArCiAgICAgICAgJzwvc2VsZWN0PjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3Jt
LWdydXBwZSIgaWQ9ImRsZy1lbGRnbC1ncnVwcGUiPicgKwogICAgICAgICAgICAnPGxhYmVsPlZJ
MyBER0w8L2xhYmVsPicgKwogICAgICAgICAgICBlbGRnbFRvZ2dsZUh0bWwocGVyc29uLmVsRGds
UXVhbGlmaXppZXJ0KSArCiAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJm
b3JtLWdydXBwZSI+PGxhYmVsPk9FIChTdGFuZG9ydCk8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iZGxnLW9lIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiIHZhbHVl
PSInICsgZXNjYXBlQXR0cihwZXJzb24ub2UgfHwgJycpICsgJyIgcGxhY2Vob2xkZXI9InouQi4g
S0EsIEhBLCBCTyI+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48
bGFiZWw+VGVsZWZvbjwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJkbGctdGVsZWZvbiIg
Y2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIiB2YWx1ZT0iJyArIGVzY2FwZUF0
dHIocGVyc29uLnRlbGVmb24gfHwgJycpICsgJyIgcGxhY2Vob2xkZXI9InouQi4gNDUyMCI+PC9k
aXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+TlctS2VubnVu
ZzwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJkbGctbndrZW5udW5nIiBjbGFzcz0iZm9y
bS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiIHZhbHVlPSInICsgZXNjYXBlQXR0cihwZXJzb24u
bndLZW5udW5nIHx8ICcnKSArICciIHBsYWNlaG9sZGVyPSJET01BSU5cXHVzZXIiPjwvZGl2Picg
KwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPkUtTWFpbDwvbGFiZWw+
PGlucHV0IHR5cGU9ImVtYWlsIiBpZD0iZGxnLWVtYWlsIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5
bGU9IndpZHRoOjEwMCUiIHZhbHVlPSInICsgZXNjYXBlQXR0cihwZXJzb24uZW1haWwgfHwgJycp
ICsgJyIgcGxhY2Vob2xkZXI9IkJlbmFjaHJpY2h0aWd1bmcgYmVpIMOEbmRlcnVuZ2VuIj48L2Rp
dj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5HZWJ1cnRzZGF0
dW08L2xhYmVsPjxpbnB1dCB0eXBlPSJkYXRlIiBpZD0iZGxnLWdlYnVydHNkYXR1bSIgY2xhc3M9
ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIocGVy
c29uLmdlYnVydHNkYXR1bSB8fCAnJykgKyAnIj48L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFz
cz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5SYW5nZm9sZ2U8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0
IiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCU7YmFja2dyb3VuZDp2YXIoLS1i
Zy1tdXRlZCk7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiIHZhbHVlPSInICsgZXNjYXBlQXR0cihy
YW5nVGV4dCkgKyAnIiByZWFkb25seSB0aXRsZT0iV2lyZCB1ZWJlciBkaWUgUGZlaWxlIOKWsi/i
lrwgaW4gZGVyIFBlcnNvbmFsLVRhYmVsbGUgZ2VhZW5kZXJ0Ij48L2Rpdj4nICsKICAgICAgICAv
LyBTY2hpY2h0cm90YXRpb24gYXVzIFN0YW5kb3J0ICsgRGllbnN0Z3J1cHBlIGFiZ2VsZWl0ZXQg
KFBoYXNlIDMsCiAgICAgICAgLy8gcmVhZC1vbmx5KS4gUGZsZWdlIGVyZm9sZ3QgaW5kaXJla3Q6
IFN0YW5kb3J0LVNjaGljaHRmb2xnZSBpbQogICAgICAgIC8vIEFkbWluLVRhYiAiU3RhbmRvcnRl
IiArIERpZW5zdGdydXBwZSBvYmVuIGltIHNlbGJlbiBNb2RhbC4KICAgICAgICAoZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgIHZhciBoZXV0ZSA9IGRhdHVtU3RyKG5ldyBEYXRlKCkpOwogICAgICAg
ICAgICB2YXIgc2NoaWNodCA9IHBlcnNvblNjaGljaHRBbShwZXJzb24sIGhldXRlKTsKICAgICAg
ICAgICAgdmFyIHcgPSBfcGVyc29uTmFlY2hzdGVyV2VjaHNlbChwZXJzb24sIGhldXRlKTsKICAg
ICAgICAgICAgaWYgKCFzY2hpY2h0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJzxkaXYgY2xh
c3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+U2NoaWNodHJvdGF0aW9uPC9sYWJlbD4nICsKICAgICAg
ICAgICAgICAgICAgICAnPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWlucHV0IiBzdHls
ZT0id2lkdGg6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLWJnLW11dGVkKTtjb2xvcjp2YXIoLS10ZXh0
LW11dGVkKSIgcmVhZG9ubHkgdmFsdWU9IuKAlCBuaWNodCB6dW9yZGVuYmFyIChTdGFuZG9ydC9H
cnVwcGUgZmVobHQgb2RlciBQb29sKSIgdGl0bGU9IlBlcnNvbiBoYXQga2VpbmUgU3RhbmRvcnQt
Um90YXRpb24uIFouQi4gV0wvVkQvUG9vbC1NaXRhcmJlaXRlci4iPjwvZGl2Pic7CiAgICAgICAg
ICAgIH0KICAgICAgICAgICAgdmFyIGFrdHVlbGxMYWJlbCA9IHsgRjogJ0Zyw7xoc2NoaWNodCcs
IFM6ICdTcMOkdHNjaGljaHQnLCBOOiAnTmFjaHRzY2hpY2h0JyB9W3NjaGljaHRdOwogICAgICAg
ICAgICB2YXIgaW5mbyA9IGFrdHVlbGxMYWJlbDsKICAgICAgICAgICAgaWYgKHcpIHsKICAgICAg
ICAgICAgICAgIHZhciBuYWNoTGFiZWwgPSB7IEY6ICdGcsO8aCcsIFM6ICdTcMOkdCcsIE46ICdO
YWNodCcgfVt3Lm5hY2hdOwogICAgICAgICAgICAgICAgaW5mbyArPSAnIMK3IFdlY2hzZWwgJyAr
IGRhdHVtRm9ybWF0REUody5kYXR1bSkgKyAnIOKGkiAnICsgbmFjaExhYmVsOwogICAgICAgICAg
ICB9CiAgICAgICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5T
Y2hpY2h0cm90YXRpb24gKGF1cyBTdGFuZG9ydCArIEdydXBwZSk8L2xhYmVsPicgKwogICAgICAg
ICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9Indp
ZHRoOjEwMCU7YmFja2dyb3VuZDp2YXIoLS1iZy1tdXRlZCk7Y29sb3I6dmFyKC0tdGV4dC1tdXRl
ZCkiIHJlYWRvbmx5IHZhbHVlPSInICsgZXNjYXBlQXR0cihpbmZvKSArICciIHRpdGxlPSJIZXV0
aWdlciBTdGFuZCBsYXV0IFN0YW5kb3J0LVNjaGljaHRmb2xnZSB1bmQgRGllbnN0Z3J1cHBlLiBB
ZW5kZXJ1bmdlbiBlcmZvbGdlbiB1ZWJlciBkaWUgU3RhbmRvcnQtU2NoaWNodGZvbGdlIGltIFRh
YiBTdGFuZG9ydGUgKyBEaWVuc3RncnVwcGVuIG9iZW4uIj48L2Rpdj4nOwogICAgICAgIH0pKCkg
KwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPlN0YXR1czwvbGFiZWw+
PHNlbGVjdCBpZD0iZGxnLWFrdGl2IiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEw
MCUiPicgKwogICAgICAgICc8b3B0aW9uIHZhbHVlPSJ0cnVlIicgKyAocGVyc29uLmFrdGl2ID8g
JyBzZWxlY3RlZCcgOiAnJykgKyAnPkFrdGl2IChpbiBkZXIgUGxhbnVuZyk8L29wdGlvbj4nICsK
ICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iZmFsc2UiJyArICghcGVyc29uLmFrdGl2ID8gJyBzZWxl
Y3RlZCcgOiAnJykgKyAnPlVtZ2VzZXR6dCAobmljaHQgaW4gZGVyIFBsYW51bmcpPC9vcHRpb24+
JyArCiAgICAgICAgJzwvc2VsZWN0PjwvZGl2PicgKwogICAgICAgIC8vIFByby1QZXJzb24gYXVz
IGRlciBQbGFudW5nIGF1c2JsZW5kZW4gKFN1cGVyVXNlci1vbmx5KSDigJQgUGVuZGFudCB6dXIK
ICAgICAgICAvLyBUb2dnbGUtU3BhbHRlIGluIGRlciBQZXJzb25hbC1UYWJlbGxlLgogICAgICAg
IChaLnJlY2h0ZS5pc3RTdXBlclVzZXIKICAgICAgICAgICAgPyAnPGRpdiBjbGFzcz0iZm9ybS1n
cnVwcGUiPjxsYWJlbD5QbGFudW5nc2Fuc2ljaHQ8L2xhYmVsPicgKwogICAgICAgICAgICAgICc8
bGFiZWwgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmb250
LXNpemU6MTNweDtjdXJzb3I6cG9pbnRlciI+JyArCiAgICAgICAgICAgICAgJzxpbnB1dCB0eXBl
PSJjaGVja2JveCIgaWQ9ImRsZy1pbnBsYW51bmciJyArIChwZXJzb24uaW5QbGFudW5nID09PSBm
YWxzZSA/ICcgY2hlY2tlZCcgOiAnJykgKyAnPiAnICsKICAgICAgICAgICAgICAnSW4gUGxhbnVu
ZyAvIFdvY2hlbnBsYW4gLyBQZXJzLiBQbGFuIGF1c2JsZW5kZW48L2xhYmVsPicgKwogICAgICAg
ICAgICAgICc8ZGl2IHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVk
KTttYXJnaW4tdG9wOjJweCI+UGVyc29uIGJsZWlidCBpbiBkZXIgUGVyc29uYWx2ZXJ3YWx0dW5n
IHBmbGVnYmFyLCBlcnNjaGVpbnQgYWJlciBuaWNodCBpbiBkZW4gUGxhbnVuZ3NhbnNpY2h0ZW4u
PC9kaXY+PC9kaXY+JwogICAgICAgICAgICA6ICcnKSArCiAgICAgICAgJzwvZGl2Pic7CgogICAg
Ly8gWmVsbC1FZGl0LVJlY2h0ZS1TZWt0aW9uIOKAlCBudXIgZnVlciBTdXBlclVzZXIgc2ljaHRi
YXIgKGFuZGVyZSBzb2xsZW4KICAgIC8vIGtlaW5lIFp1Z3JpZmZzcmVjaHRlIHZlcmFlbmRlcm4g
a29lbm5lbiwgYXVjaCBuaWNodCBpaHJlIGVpZ2VuZW4pLgogICAgaWYgKFoucmVjaHRlLmlzdFN1
cGVyVXNlcikgewogICAgICAgIHZhciBlciA9IHBlcnNvbi5lZGl0UmVjaHRlIHx8IHt9OwogICAg
ICAgIC8vIFNvcnRpZXJ1bmcgYWxwaGFiZXRpc2NoIG5hY2ggTmFjaG5hbWUsIFRpZWJyZWFrZXIg
Vm9ybmFtZSAoVXNlci1XdW5zY2ggQy4yOgogICAgICAgIC8vIE1pdGJlYXJiZWl0ZXIgc29sbGVu
IGltbWVyIGFscGhhYmV0aXNjaCBlcnNjaGVpbmVuLCB1bmFiaGFlbmdpZyB2b24gRXhjZWwtUG9z
aXRpb24pLgogICAgICAgIHZhciBwZXJzb25lbiA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10p
LnNsaWNlKCkKICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbih4KSB7IHJldHVybiB4LmFrdGl2
ICYmIHguaWQgIT09IHBlcnNvbi5pZDsgfSkKICAgICAgICAgICAgLnNvcnQoZnVuY3Rpb24oYSwg
YikgewogICAgICAgICAgICAgICAgdmFyIGMgPSAoYS5uYW1lIHx8ICcnKS5sb2NhbGVDb21wYXJl
KGIubmFtZSB8fCAnJywgJ2RlJyk7CiAgICAgICAgICAgICAgICBpZiAoYyAhPT0gMCkgcmV0dXJu
IGM7CiAgICAgICAgICAgICAgICByZXR1cm4gKGEudm9ybmFtZSB8fCAnJykubG9jYWxlQ29tcGFy
ZShiLnZvcm5hbWUgfHwgJycsICdkZScpOwogICAgICAgICAgICB9KTsKICAgICAgICB2YXIgc3Rh
bmRvcnRlID0gKFouYWRtaW4uc3RhbmRvcnRlIHx8IFtdKS5tYXAoZnVuY3Rpb24ocykgeyByZXR1
cm4gcy5rdWVyemVsIHx8IHMubmFtZTsgfSkuZmlsdGVyKEJvb2xlYW4pOwogICAgICAgIGZ1bmN0
aW9uIGVyQ2hrKGlkLCBsYWJlbCwgY2hlY2tlZCkgewogICAgICAgICAgICByZXR1cm4gJzxsYWJl
bCBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtt
YXJnaW46MnB4IDEycHggMnB4IDA7Y3Vyc29yOnBvaW50ZXIiPjxpbnB1dCB0eXBlPSJjaGVja2Jv
eCIgY2xhc3M9ImVkaXQtcmVjaHQtY2hrIiBkYXRhLXdlcnQ9IicgKyBlc2NhcGVBdHRyKGlkKSAr
ICciJyArIChjaGVja2VkID8gJyBjaGVja2VkJyA6ICcnKSArICc+PHNwYW4+JyArIGVzY2FwZUhU
TUwobGFiZWwpICsgJzwvc3Bhbj48L2xhYmVsPic7CiAgICAgICAgfQogICAgICAgIC8vIE1pa3Jv
dGVhbS1Lb2xsZWdlbiBkZXIgYmVhcmJlaXRldGVuIFBlcnNvbiAoVW5pb24gdWViZXIgYWxsZSBU
ZWFtcywKICAgICAgICAvLyBpbiBkZW5lbiBzaWUgTWl0Z2xpZWQgaXN0OyBvaG5lIHNpZSBzZWxi
c3QpLiBXaXJkIGdlbnV0enQgZnVlciBlaW5lCiAgICAgICAgLy8gZWlnZW5lIFNla3Rpb24gIk1l
aW4gTWlrcm90ZWFtIiBtaXQgVm9yaGFrZW4gYmVpbSBFcnN0LUtvbmZpZ3VyaWVyZW4uCiAgICAg
ICAgdmFyIG1pa3JvSWRzID0gW107CiAgICAgICAgKFouYWRtaW4ubWlrcm90ZWFtcyB8fCBbXSku
Zm9yRWFjaChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgIGlmICghdCB8fCAhdC5wZXJzb25JZHMg
fHwgdC5wZXJzb25JZHMuaW5kZXhPZihwZXJzb24uaWQpIDwgMCkgcmV0dXJuOwogICAgICAgICAg
ICB0LnBlcnNvbklkcy5mb3JFYWNoKGZ1bmN0aW9uKHBpZCkgewogICAgICAgICAgICAgICAgdmFy
IG4gPSBOdW1iZXIocGlkKTsKICAgICAgICAgICAgICAgIGlmIChuICE9PSBOdW1iZXIocGVyc29u
LmlkKSAmJiBtaWtyb0lkcy5pbmRleE9mKG4pIDwgMCkgbWlrcm9JZHMucHVzaChuKTsKICAgICAg
ICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgLy8gTWlrcm90ZWFtIHdpcmQgbnVyIGJlaW0g
ZXJzdGVuIE9lZmZuZW4gZWluZXMgbm9jaCBuaWUga29uZmlndXJpZXJ0ZW4KICAgICAgICAvLyBF
aW50cmFncyB2b3JnZWhha3Qg4oCUIHNvbnN0IHJlc3Bla3RpZXJlbiB3aXIgZGllIGV4cGxpeml0
ZSBTVS1XYWhsLgogICAgICAgIHZhciBtaWtyb1ByZXNlbGVjdCA9ICFwZXJzb24uZWRpdFJlY2h0
ZTsKICAgICAgICAvLyBQZXJzb25lbiB3ZXJkZW4gYWxzIEJsb2NrLUxhYmVscyBnZXJlbmRlcnQs
IGRhbWl0IGRhcyBFbHRlcm4tQ29udGFpbmVyCiAgICAgICAgLy8gcGVyIENTUyBjb2x1bW4tY291
bnQgZGllIExpc3RlIGFscGhhYmV0aXNjaCBpbiBTcGFsdGVuIGZsb3d0LgogICAgICAgIGZ1bmN0
aW9uIGVyQ2hrUGVyc29uKHApIHsKICAgICAgICAgICAgdmFyIHBpZCA9IE51bWJlcihwLmlkKTsK
ICAgICAgICAgICAgdmFyIGNoZWNrZWQgPSAoZXIucGVyc29uZW5JZHMgfHwgW10pLmluZGV4T2Yo
cGlkKSA+PSAwOwogICAgICAgICAgICBpZiAobWlrcm9QcmVzZWxlY3QgJiYgbWlrcm9JZHMuaW5k
ZXhPZihwaWQpID49IDApIGNoZWNrZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgbmFtZSA9ICgo
cC52b3JuYW1lID8gcC52b3JuYW1lICsgJyAnIDogJycpICsgcC5uYW1lKTsKICAgICAgICAgICAg
cmV0dXJuICc8bGFiZWwgY2xhc3M9ImVyLXBlcnNvbmVuLXplaWxlIj4nICsKICAgICAgICAgICAg
ICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJlZGl0LXJlY2h0LWNoayIgZGF0YS13
ZXJ0PSJQXycgKyBwLmlkICsgJyInICsgKGNoZWNrZWQgPyAnIGNoZWNrZWQnIDogJycpICsgJz4n
ICsKICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iZXItcGVyc29uZW4tbmFtZSI+JyArIGVz
Y2FwZUhUTUwobmFtZSkgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNz
PSJlci1wZXJzb25lbi1ncnVwcGUiPicgKyBlc2NhcGVIVE1MKHAuZ3J1cHBlIHx8ICcnKSArICc8
L3NwYW4+JyArCiAgICAgICAgICAgICc8L2xhYmVsPic7CiAgICAgICAgfQogICAgICAgIC8vIE1p
a3JvdGVhbS1NaXRnbGllZGVyIHdlcmRlbiBhdXMgZGVuIG5hY2hmb2xnZW5kZW4gU2VrdGlvbmVu
IGhlcmF1cy0KICAgICAgICAvLyBnZWZpbHRlcnQsIGRhbWl0IHNpZSBuaWNodCBkb3BwZWx0IGVy
c2NoZWluZW4uCiAgICAgICAgdmFyIG1pa3JvUGVyc29uZW4gPSBwZXJzb25lbi5maWx0ZXIoZnVu
Y3Rpb24ocCkgeyByZXR1cm4gbWlrcm9JZHMuaW5kZXhPZihOdW1iZXIocC5pZCkpID49IDA7IH0p
OwogICAgICAgIHZhciByZXN0UGVyc29uZW4gID0gcGVyc29uZW4uZmlsdGVyKGZ1bmN0aW9uKHAp
IHsgcmV0dXJuIG1pa3JvSWRzLmluZGV4T2YoTnVtYmVyKHAuaWQpKSA8IDA7IH0pOwogICAgICAg
IHZhciBtaWtyb0ZpZWxkc2V0ID0gJyc7CiAgICAgICAgaWYgKG1pa3JvUGVyc29uZW4ubGVuZ3Ro
KSB7CiAgICAgICAgICAgIG1pa3JvRmllbGRzZXQgPQogICAgICAgICAgICAgICAgJzxmaWVsZHNl
dCBjbGFzcz0ia29sbGVnZW4tbWlrcm8iPicgKwogICAgICAgICAgICAgICAgICAgICc8bGVnZW5k
Pk1laW4gTWlrcm90ZWFtICcgKwogICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1
dHRvbiIgY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiIgZGF0YS1ha3Rpb249ImtvbGxlZ2Vu
LW1pa3JvLWFsbGUiIHN0eWxlPSJtYXJnaW4tbGVmdDo4cHgiPkFsbGUgbWFya2llcmVuPC9idXR0
b24+PC9sZWdlbmQ+JyArCiAgICAgICAgICAgICAgICAgICAgbWlrcm9QZXJzb25lbi5tYXAoZXJD
aGtQZXJzb24pLmpvaW4oJycpICsKICAgICAgICAgICAgICAgICc8L2ZpZWxkc2V0Pic7CiAgICAg
ICAgfQogICAgICAgIC8vIENoZXJyeS1QaWNrIDg5ZWIzYzcgKGhpbnRlciBUb2dnbGUgYGZlYXR1
cmVzLmtvbGxlZ2VuSGVydm9yaGViZW5gKToKICAgICAgICAvLyBEaXJla3RlIEtvbGxlZ2VuIChn
bGVpY2hlciBTdGFuZG9ydCArIGdsZWljaGUgRGllbnN0Z3J1cHBlIHdpZSBkaWUKICAgICAgICAv
LyBiZWFyYmVpdGV0ZSBQZXJzb24pIHdlcmRlbiBpbiBlaW5lciBlaWdlbmVuIFNla3Rpb24gbWl0
IEhlcnZvcmhlYnVuZwogICAgICAgIC8vIHVuZCAiQWxsZSBtYXJraWVyZW4iLUJ1dHRvbiBnZXJl
bmRlcnQ7IGFsbGUgYW5kZXJlbiBQZXJzb25lbiBmb2xnZW4KICAgICAgICAvLyBkYXJ1bnRlciBt
aXQgZWlnZW5lbSBCdXR0b24uCiAgICAgICAgdmFyIHBlcnNDYnM7CiAgICAgICAgaWYgKGZlYXR1
cmVJc3RBa3Rpdigna29sbGVnZW5IZXJ2b3JoZWJlbicpKSB7CiAgICAgICAgICAgIHZhciBtZWlu
ZU9lICAgICA9IHBlcnNvbi5vZSB8fCAnJzsKICAgICAgICAgICAgdmFyIG1laW5lR3J1cHBlID0g
cGVyc29uLmdydXBwZSB8fCAnJzsKICAgICAgICAgICAgdmFyIGRpcmVrdGUgPSByZXN0UGVyc29u
ZW4uZmlsdGVyKGZ1bmN0aW9uKHApIHsgcmV0dXJuIChwLm9lIHx8ICcnKSA9PT0gbWVpbmVPZSAm
JiAocC5ncnVwcGUgfHwgJycpID09PSBtZWluZUdydXBwZTsgfSk7CiAgICAgICAgICAgIHZhciBy
ZXN0ICAgID0gcmVzdFBlcnNvbmVuLmZpbHRlcihmdW5jdGlvbihwKSB7IHJldHVybiAhKChwLm9l
IHx8ICcnKSA9PT0gbWVpbmVPZSAmJiAocC5ncnVwcGUgfHwgJycpID09PSBtZWluZUdydXBwZSk7
IH0pOwogICAgICAgICAgICB2YXIga29udGV4dExhYmVsID0gJ09FOiAnICsgZXNjYXBlSFRNTCht
ZWluZU9lIHx8ICfigJQnKSArICcsIEdydXBwZTogJyArIGVzY2FwZUhUTUwobWVpbmVHcnVwcGUg
fHwgJ+KAlCcpOwogICAgICAgICAgICBwZXJzQ2JzID0gbWlrcm9GaWVsZHNldCArCiAgICAgICAg
ICAgICAgICAnPGZpZWxkc2V0IGNsYXNzPSJrb2xsZWdlbi1kaXJla3QiPicgKwogICAgICAgICAg
ICAgICAgICAgICc8bGVnZW5kPkRpcmVrdGUgS29sbGVnZW4gPHNwYW4gc3R5bGU9ImNvbG9yOnZh
cigtLXRleHQtbXV0ZWQpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTFweCI+KCcgKyBrb250
ZXh0TGFiZWwgKyAnKTwvc3Bhbj4gJyArCiAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gdHlw
ZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBkYXRhLWFrdGlvbj0ia29s
bGVnZW4tZGlyZWt0LWFsbGUiIHN0eWxlPSJtYXJnaW4tbGVmdDo4cHgiPkFsbGUgbWFya2llcmVu
PC9idXR0b24+PC9sZWdlbmQ+JyArCiAgICAgICAgICAgICAgICAgICAgKGRpcmVrdGUubGVuZ3Ro
ID8gZGlyZWt0ZS5tYXAoZXJDaGtQZXJzb24pLmpvaW4oJycpIDogJzxzcGFuIHN0eWxlPSJjb2xv
cjp2YXIoLS10ZXh0LW11dGVkKSI+4oCUIGtlaW5lIGRpcmVrdGVuIEtvbGxlZ2VuIHZvcmhhbmRl
biDigJQ8L3NwYW4+JykgKwogICAgICAgICAgICAgICAgJzwvZmllbGRzZXQ+JyArCiAgICAgICAg
ICAgICAgICAnPGZpZWxkc2V0IGNsYXNzPSJrb2xsZWdlbi1yZXN0Ij4nICsKICAgICAgICAgICAg
ICAgICAgICAnPGxlZ2VuZD5BbGxlIMO8YnJpZ2VuICcgKwogICAgICAgICAgICAgICAgICAgICc8
YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiIgZGF0YS1h
a3Rpb249ImtvbGxlZ2VuLXJlc3QtYWxsZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OjhweCI+QWxsZSBt
YXJraWVyZW48L2J1dHRvbj48L2xlZ2VuZD4nICsKICAgICAgICAgICAgICAgICAgICAocmVzdC5s
ZW5ndGggPyByZXN0Lm1hcChlckNoa1BlcnNvbikuam9pbignJykgOiAnPHNwYW4gc3R5bGU9ImNv
bG9yOnZhcigtLXRleHQtbXV0ZWQpIj7igJQga2VpbmUg4oCUPC9zcGFuPicpICsKICAgICAgICAg
ICAgICAgICc8L2ZpZWxkc2V0Pic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcGVyc0Ni
cyA9IG1pa3JvRmllbGRzZXQgKyByZXN0UGVyc29uZW4ubWFwKGVyQ2hrUGVyc29uKS5qb2luKCcn
KTsKICAgICAgICB9CiAgICAgICAgdmFyIGdyQ2JzID0gKFouYWRtaW4uZ3J1cHBlbiB8fCBbXSku
bWFwKGZ1bmN0aW9uKGdyKSB7CiAgICAgICAgICAgIHJldHVybiBlckNoaygnR18nICsgZ3IubmFt
ZSwgKGdyLmJlemVpY2hudW5nIHx8IGdyLm5hbWUpLCAoZXIuZGllbnN0Z3J1cHBlbiB8fCBbXSku
aW5kZXhPZihnci5uYW1lKSA+PSAwKTsKICAgICAgICB9KS5qb2luKCcnKTsKICAgICAgICB2YXIg
c3RDYnMgPSBzdGFuZG9ydGUubWFwKGZ1bmN0aW9uKHMpIHsKICAgICAgICAgICAgcmV0dXJuIGVy
Q2hrKCdTXycgKyBzLCBzLCAoZXIuc3RhbmRvcnRlIHx8IFtdKS5pbmRleE9mKHMpID49IDApOwog
ICAgICAgIH0pLmpvaW4oJycpOwoKICAgICAgICBrb2VycGVyICs9CiAgICAgICAgICAgICc8ZGV0
YWlscyBzdHlsZT0ibWFyZ2luLXRvcDoxNnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVy
LWxpZ2h0KTtib3JkZXItcmFkaXVzOjRweDtwYWRkaW5nOjhweCAxMnB4Ij4nICsKICAgICAgICAg
ICAgJzxzdW1tYXJ5IHN0eWxlPSJjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo2MDAiPlBsYW51
bmcgKG51ciBTdXBlclVzZXIpJyArCiAgICAgICAgICAgICAgICAnPHNwYW4gc3R5bGU9ImZvbnQt
d2VpZ2h0OjQwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MTFweDttYXJnaW4t
bGVmdDo4cHgiPuKAlCBlaWdlbmUgWmVpbGUgaXN0IGltbWVyIGVybGF1YnQ8L3NwYW4+JyArCiAg
ICAgICAgICAgICc8L3N1bW1hcnk+JyArCiAgICAgICAgICAgICc8cCBzdHlsZT0ibWFyZ2luOjhw
eCAwO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpIj5EaWVzZSBQZXJzb24g
ZGFyZiB6dXPDpHR6bGljaCBkaWUgUGxhbnVuZ3N6ZWxsZW4gZm9sZ2VuZGVyIEVpbnRyw6RnZSDD
pG5kZXJuOjwvcD4nICsKICAgICAgICAgICAgJzxoNCBzdHlsZT0ibWFyZ2luOjhweCAwIDRweCI+
RWluemVsbmUgUGVyc29uZW48L2g0PicgKwogICAgICAgICAgICAnPGRpdiBpZD0iZXItcGVyc29u
ZW4iIGNsYXNzPSJlci1wZXJzb25lbi1ncmlkIj4nICsKICAgICAgICAgICAgICAgIChwZXJzQ2Jz
IHx8ICc8c3BhbiBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPktlaW5lIHdlaXRlcmVu
IGFrdGl2ZW4gUGVyc29uZW48L3NwYW4+JykgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAg
ICAgICAgICc8aDQgc3R5bGU9Im1hcmdpbjo4cHggMCA0cHgiPkdhbnplIERpZW5zdGdydXBwZW48
L2g0PicgKwogICAgICAgICAgICAnPGRpdiBpZD0iZXItZGllbnN0Z3J1cHBlbiI+JyArIChnckNi
cyB8fCAnPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpIj5LZWluZSBEaWVuc3Rn
cnVwcGVuIGtvbmZpZ3VyaWVydDwvc3Bhbj4nKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxo
NCBzdHlsZT0ibWFyZ2luOjhweCAwIDRweCI+R2FuemUgU3RhbmRvcnRlIChPRSk8L2g0PicgKwog
ICAgICAgICAgICAnPGRpdiBpZD0iZXItc3RhbmRvcnRlIj4nICsgKHN0Q2JzIHx8ICc8c3BhbiBz
dHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPktlaW5lIFN0YW5kb3J0ZSBrb25maWd1cmll
cnQ8L3NwYW4+JykgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICc8L2RldGFpbHM+JzsKCiAgICAg
ICAgLy8gQ2hlcnJ5LVBpY2sgN2FmNjViMTogUGVyLVBlcnNvbi1TaWNodGJhcmtlaXQgKFNVLW9u
bHkpLiBUb2dnbGUKICAgICAgICAvLyBgZmVhdHVyZXMucGVyUGVyc29uU2ljaHRiYXJrZWl0YCBz
Y2hhbHRldCBudXIgZGllIFVJIGZyZWk7IGRlcgogICAgICAgIC8vIFNjaGVtYS1PdmVycmlkZSBg
cGVyc29uLnNlaGVuYCBncmVpZnQgc2VydmVyc2VpdGlnIGltbWVyLgogICAgICAgIGlmIChmZWF0
dXJlSXN0QWt0aXYoJ3BlclBlcnNvblNpY2h0YmFya2VpdCcpKSB7CiAgICAgICAgICAgIHZhciBw
cyA9IChwZXJzb24uc2VoZW4gJiYgdHlwZW9mIHBlcnNvbi5zZWhlbiA9PT0gJ29iamVjdCcpID8g
cGVyc29uLnNlaGVuIDoge307CiAgICAgICAgICAgIGZ1bmN0aW9uIHNlaGVuU2VsZWN0KGlkQXR0
ciwgbGFiZWwsIGFrdHVlbGxlcldlcnQpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9wdCh2
LCB0eHQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgc2VsID0gKGFrdHVlbGxlcldlcnQgPT09
IHYgfHwgKHYgPT09IG51bGwgJiYgKGFrdHVlbGxlcldlcnQgPT0gbnVsbCkpKSA/ICcgc2VsZWN0
ZWQnIDogJyc7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICc8b3B0aW9uIHZhbHVlPSInICsg
KHYgPT09IG51bGwgPyAnJyA6IFN0cmluZyh2KSkgKyAnIicgKyBzZWwgKyAnPicgKyBlc2NhcGVI
VE1MKHR4dCkgKyAnPC9vcHRpb24+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IHJldHVybiAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbCBmb3I9IicgKyBpZEF0dHIg
KyAnIj4nICsgZXNjYXBlSFRNTChsYWJlbCkgKyAnPC9sYWJlbD4nICsKICAgICAgICAgICAgICAg
ICAgICAnPHNlbGVjdCBpZD0iJyArIGlkQXR0ciArICciIGNsYXNzPSJmb3JtLWlucHV0IiBzdHls
ZT0id2lkdGg6MjAwcHgiPicgKwogICAgICAgICAgICAgICAgICAgICAgICBvcHQobnVsbCwgICfi
gJQgU3RhbmRhcmQg4oCUJykgKwogICAgICAgICAgICAgICAgICAgICAgICBvcHQodHJ1ZSwgICdT
aWNodGJhcicpICsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0KGZhbHNlLCAnVmVyc3RlY2t0
JykgKwogICAgICAgICAgICAgICAgICAgICc8L3NlbGVjdD48L2Rpdj4nOwogICAgICAgICAgICB9
CiAgICAgICAgICAgIGtvZXJwZXIgKz0KICAgICAgICAgICAgICAgICc8ZGV0YWlscyBzdHlsZT0i
bWFyZ2luLXRvcDoxNnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTtib3Jk
ZXItcmFkaXVzOjRweDtwYWRkaW5nOjhweCAxMnB4Ij4nICsKICAgICAgICAgICAgICAgICc8c3Vt
bWFyeSBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NjAwIj5Qcm8tUGVyc29uLVNp
Y2h0YmFya2VpdCAobnVyIFN1cGVyVXNlciknICsKICAgICAgICAgICAgICAgICAgICAnPHNwYW4g
c3R5bGU9ImZvbnQtd2VpZ2h0OjQwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6
MTFweDttYXJnaW4tbGVmdDo4cHgiPuKAlCBTdGFuZGFyZCBmb2xndCBkZXIgUm9sbGU8L3NwYW4+
JyArCiAgICAgICAgICAgICAgICAnPC9zdW1tYXJ5PicgKwogICAgICAgICAgICAgICAgJzxwIHN0
eWxlPSJtYXJnaW46OHB4IDA7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCki
PsOcYmVyc2NocmVpYnQgZGllIHJvbGxlbmJhc2llcnRlIFRhYi1TaWNodGJhcmtlaXQgZsO8ciBk
aWVzZSBlaW5lIFBlcnNvbi4g4oCeU3RhbmRhcmQiIGJlZGV1dGV0OiBWZXJoYWx0ZW4gcmljaHRl
dCBzaWNoIG5hY2ggaWhyZXIgUm9sbGUgKHJlZ3Vsw6RyIC8gRmFjaGF1ZnNpY2h0IC8gU1UpLjwv
cD4nICsKICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjI0cHg7
ZmxleC13cmFwOndyYXAiPicgKwogICAgICAgICAgICAgICAgICAgIHNlaGVuU2VsZWN0KCdkbGct
c2VoZW4tbG9nYnVjaCcsICAgJ0xvZ2J1Y2ggc2VoZW4nLCAgIHBzLmxvZ2J1Y2ggICA9PT0gdW5k
ZWZpbmVkID8gbnVsbCA6IHBzLmxvZ2J1Y2gpICsKICAgICAgICAgICAgICAgICAgICBzZWhlblNl
bGVjdCgnZGxnLXNlaGVuLXN0YXRpc3RpaycsICdTdGF0aXN0aWsgc2VoZW4nLCBwcy5zdGF0aXN0
aWsgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBwcy5zdGF0aXN0aWspICsKICAgICAgICAgICAgICAg
ICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2RldGFpbHM+JzsKICAgICAgICB9CiAgICB9
CgogICAgdmFyIGRsZ1RpdGVsID0gKHBlcnNvbi52b3JuYW1lID8gcGVyc29uLnZvcm5hbWUgKyAn
ICcgOiAnJykgKyBwZXJzb24ubmFtZTsKICAgIHZhciBwYXBpZXJrb3JiQWt0aXZMb2thbCA9IGZl
YXR1cmVJc3RBa3RpdigncGFwaWVya29yYlVJJyk7CiAgICB2YXIgdW1zZXR6ZW5MYWJlbCA9IHBl
cnNvbi5ha3RpdiA9PT0gZmFsc2UgPyAnUmVha3RpdmllcmVuJyA6ICdVbXNldHplbic7CiAgICB2
YXIgdW1zZXR6ZW5DbHMgICA9IHBlcnNvbi5ha3RpdiA9PT0gZmFsc2UgPyAnYnRuLWVyZm9sZycg
OiAnYnRuLWdlZmFocic7CiAgICB2YXIgdW1zZXR6ZW5UaXRsZSA9IHBlcnNvbi5ha3RpdiA9PT0g
ZmFsc2UKICAgICAgICA/ICdQZXJzb24gd2llZGVyIGluIGRpZSBQbGFudW5nIGF1Zm5laG1lbicK
ICAgICAgICA6ICdQZXJzb24gYXVzIGRlciBQbGFudW5nIGVudGZlcm5lbiAoRWludHLDpGdlIGJs
ZWliZW4gZXJoYWx0ZW4pJzsKICAgIHZhciBmdXNzSHRtbCA9CiAgICAgICAgJzxidXR0b24gdHlw
ZT0iYnV0dG9uIiBjbGFzcz0iYnRuICcgKyB1bXNldHplbkNscyArICciIGlkPSJkbGctdW1zZXR6
ZW4iIHRpdGxlPSInICsgZXNjYXBlQXR0cih1bXNldHplblRpdGxlKSArICciPicgKyB1bXNldHpl
bkxhYmVsICsgJzwvYnV0dG9uPicgKwogICAgICAgIChwYXBpZXJrb3JiQWt0aXZMb2thbAogICAg
ICAgICAgICA/ICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2VmYWhyIiBp
ZD0iZGxnLWxvZXNjaGVuIiB0aXRsZT0iUGVyc29uIHVuZCBBTExFIFBsYW5kYXRlbiBlbmRnw7xs
dGlnIGVudGZlcm5lbiI+TMO2c2NoZW48L2J1dHRvbj4nCiAgICAgICAgICAgIDogJycpICsKICAg
ICAgICAnPHNwYW4gc3R5bGU9ImZsZXg6MSI+PC9zcGFuPicgKwogICAgICAgICc8YnV0dG9uIHR5
cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgaWQ9ImRsZy1zcGVpY2hlcm4iPlNw
ZWljaGVybjwvYnV0dG9uPic7CiAgICBtb2RhbFplaWdlbignUGVyc29uIGJlYXJiZWl0ZW46ICcg
KyBkbGdUaXRlbCwga29lcnBlciwgZnVzc0h0bWwsCiAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgIHZhciBkbGdGdW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1mdW5rdGlv
bicpLnZhbHVlOwogICAgICAgICAgICB2YXIgZGxnRWxkZ2xFbCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdkbGctZWxkZ2wnKTsKICAgICAgICAgICAgdmFyIGRhdGVuID0gewogICAgICAgICAg
ICAgICAgbmFtZTogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1uYW1lJykudmFsdWUudHJp
bSgpLAogICAgICAgICAgICAgICAgdm9ybmFtZTogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rs
Zy12b3JuYW1lJykudmFsdWUsCiAgICAgICAgICAgICAgICBncnVwcGU6IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkbGctZ3J1cHBlJykudmFsdWUsCiAgICAgICAgICAgICAgICBmdW5rdGlvbjog
ZGxnRnVuaywKICAgICAgICAgICAgICAgIG9lOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxn
LW9lJykudmFsdWUsCiAgICAgICAgICAgICAgICBkaWVuc3RncmFkOiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZGxnLWRpZW5zdGdyYWQnKS52YWx1ZSwKICAgICAgICAgICAgICAgIHRlbGVmb246
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctdGVsZWZvbicpLnZhbHVlLAogICAgICAgICAg
ICAgICAgbndLZW5udW5nOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLW53a2VubnVuZycp
LnZhbHVlLAogICAgICAgICAgICAgICAgZW1haWw6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdk
bGctZW1haWwnKS52YWx1ZSwKICAgICAgICAgICAgICAgIGdlYnVydHNkYXR1bTogZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2RsZy1nZWJ1cnRzZGF0dW0nKS52YWx1ZSwKICAgICAgICAgICAgICAg
IGFrdGl2OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLWFrdGl2JykudmFsdWUgPT09ICd0
cnVlJywKICAgICAgICAgICAgICAgIGVsRGdsUXVhbGlmaXppZXJ0OiBkbGdFbGRnbEVsID8gZGxn
RWxkZ2xFbC5jaGVja2VkIDogZmFsc2UKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKCFk
YXRlbi5uYW1lKSB7IHBmbGljaHRmZWxkRmVobGVyKCdkbGctbmFtZScsICdOYW1lIGlzdCBlaW4g
UGZsaWNodGZlbGQnKTsgcmV0dXJuOyB9CiAgICAgICAgICAgIC8vIFByby1QZXJzb24tQXVzYmxl
bmRlbiAoU1Utb25seSkuIENoZWNrYm94IGFrdGl2ID0gYXVzYmxlbmRlbiAtPgogICAgICAgICAg
ICAvLyBpblBsYW51bmc9ZmFsc2UuIE51ciBzZW5kZW4sIHdlbm4gZGFzIEZlbGQgaW0gRE9NIGlz
dCAoU1UpLCBzb25zdAogICAgICAgICAgICAvLyBibGVpYnQgZWluIGV2dGwuIHZvcmhhbmRlbmVy
IFdlcnQgdW5hbmdldGFzdGV0LgogICAgICAgICAgICB2YXIgZGxnSW5QbGFudW5nRWwgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLWlucGxhbnVuZycpOwogICAgICAgICAgICBpZiAoZGxn
SW5QbGFudW5nRWwpIGRhdGVuLmluUGxhbnVuZyA9ICFkbGdJblBsYW51bmdFbC5jaGVja2VkOwog
ICAgICAgICAgICAvLyBQcm8tUGVyc29uLVNpY2h0YmFya2VpdDogbnVyIGxlc2VuIHdlbm4gVG9n
Z2xlIGFrdGl2IFVORCBTVQogICAgICAgICAgICAvLyAoRHJvcGRvd25zIGV4aXN0aWVyZW4gc29u
c3QgbmljaHQgaW0gRE9NKS4gV2VydGU6ICcnID0gbnVsbAogICAgICAgICAgICAvLyAoU3RhbmRh
cmQvUm9sbGUpLCAndHJ1ZScgPSBleHBsaXppdCBzaWNodGJhciwgJ2ZhbHNlJyA9CiAgICAgICAg
ICAgIC8vIGV4cGxpeml0IHZlcnN0ZWNrdC4gV2lyIHNlbmRlbiBkYXMgT2JqZWt0IGltbWVyIGtv
bXBsZXR0LAogICAgICAgICAgICAvLyBkYW1pdCBTZXJ2ZXIgYWx0ZSBPdmVycmlkZXMgZW50ZmVy
bmVuIGthbm4uCiAgICAgICAgICAgIGlmIChaLnJlY2h0ZS5pc3RTdXBlclVzZXIgJiYgZmVhdHVy
ZUlzdEFrdGl2KCdwZXJQZXJzb25TaWNodGJhcmtlaXQnKSkgewogICAgICAgICAgICAgICAgdmFy
IHNlTG9nRWwgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1zZWhlbi1sb2didWNoJyk7
CiAgICAgICAgICAgICAgICB2YXIgc2VTdGF0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZGxnLXNlaGVuLXN0YXRpc3RpaycpOwogICAgICAgICAgICAgICAgaWYgKHNlTG9nRWwgJiYgc2VT
dGF0RWwpIHsKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBsZXNlKHYpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHYgPT09ICcnKSAgICAgIHJldHVybiBudWxsOwogICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodiA9PT0gJ3RydWUnKSAgcmV0dXJuIHRydWU7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh2ID09PSAnZmFsc2UnKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICBkYXRlbi5zZWhlbiA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgbG9nYnVj
aDogICBsZXNlKHNlTG9nRWwudmFsdWUpLAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0aXN0
aWs6IGxlc2Uoc2VTdGF0RWwudmFsdWUpCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBaZWxsLUVkaXQtUmVjaHRlOiBu
dXIgdWViZXJuZWhtZW4gd2VubiBTVSAoU2VrdGlvbiBleGlzdGllcnQgc29uc3QgbmljaHQpCiAg
ICAgICAgICAgIGlmIChaLnJlY2h0ZS5pc3RTdXBlclVzZXIpIHsKICAgICAgICAgICAgICAgIHZh
ciBlclAgPSBbXSwgZXJHID0gW10sIGVyUyA9IFtdOwogICAgICAgICAgICAgICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgnI2VyLXBlcnNvbmVuIC5lZGl0LXJlY2h0LWNoaycpLmZvckVhY2go
ZnVuY3Rpb24oYykgewogICAgICAgICAgICAgICAgICAgIGlmIChjLmNoZWNrZWQpIGVyUC5wdXNo
KHBhcnNlSW50KGMuZ2V0QXR0cmlidXRlKCdkYXRhLXdlcnQnKS5zbGljZSgyKSkpOwogICAgICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcj
ZXItZGllbnN0Z3J1cHBlbiAuZWRpdC1yZWNodC1jaGsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsK
ICAgICAgICAgICAgICAgICAgICBpZiAoYy5jaGVja2VkKSBlckcucHVzaChjLmdldEF0dHJpYnV0
ZSgnZGF0YS13ZXJ0Jykuc2xpY2UoMikpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjZXItc3RhbmRvcnRlIC5lZGl0LXJlY2h0
LWNoaycpLmZvckVhY2goZnVuY3Rpb24oYykgewogICAgICAgICAgICAgICAgICAgIGlmIChjLmNo
ZWNrZWQpIGVyUy5wdXNoKGMuZ2V0QXR0cmlidXRlKCdkYXRhLXdlcnQnKS5zbGljZSgyKSk7CiAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGRhdGVuLmVkaXRSZWNodGUgPSB7IHBl
cnNvbmVuSWRzOiBlclAsIGRpZW5zdGdydXBwZW46IGVyRywgc3RhbmRvcnRlOiBlclMgfTsKICAg
ICAgICAgICAgfQogICAgICAgICAgICBhcGlQdXQoJy9hcGkvcGVyc29uZW4vJyArIGlkLCBkYXRl
bikudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHZhciBwID0gWi5wbGFudW5nLnBl
cnNvbmVuLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCA9PT0gaWQ7IH0pOwogICAgICAg
ICAgICAgICAgaWYgKHApIE9iamVjdC5hc3NpZ24ocCwgZGF0ZW4pOwogICAgICAgICAgICAgICAg
ZW50d3VyZkxvZXNjaGVuKCdwZXJzb25fZWRpdF8nICsgaWQpOwogICAgICAgICAgICAgICAgcGVy
c29uZW5OZXVBdWZiYXVlbigpOwogICAgICAgICAgICAgICAgbW9kYWxTY2hsaWVzc2VuKHRydWUp
OwogICAgICAgICAgICAgICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgICAgICAgICAg
ICAgaWYgKHR5cGVvZiBuYW1lblJlbmRlcm4gPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAg
ICAgICAgICBuYW1lblJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAgICBkYXRlbkdyaWRSZW5k
ZXJuKCk7CiAgICAgICAgICAgICAgICAgICAga29wZlJlbmRlcm4oKTsKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIHRvYXN0KCdQZXJzb24gYWt0dWFsaXNpZXJ0JywgJ2VyZm9sZycp
OwogICAgICAgICAgICAgICAgLy8gSWRlbnRpdGFldHMtQWVuZGVydW5nZW4gKG53S2VubnVuZy9l
bWFpbCkgZXJ6ZXVnZW4gc2VpdCBQaGFzZSA0CiAgICAgICAgICAgICAgICAvLyAoMjAyNi0wNS0y
MCkgZWluZW4gU2VydmVyLXNlaXRpZ2VuIEluLUFwcC1IaW53ZWlzIHN0YXR0IG1haWx0by4KICAg
ICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNz
YWdlLCAnZmVobGVyJyk7IH0pOwogICAgICAgIH0sCiAgICAgICAgJ3BlcnNvbl9lZGl0XycgKyBp
ZCwgIC8vIFNwZWMgRi40OiBtb2RhbEtleSBha3RpdmllcnQgRW50d3VyZi1TeXN0ZW0KICAgICAg
ICB7IGF1dG9TYXZlOiB0cnVlIH0gICAgLy8gUGFrZXQtQyAoMjAyNi0wNS0yOSk6IFNjaGxpZXNz
ZW4gc3BlaWNoZXJ0IGF1dG9tYXRpc2NoCiAgICApOwoKICAgIC8vIERpZSBWSTMtREdMLUNoZWNr
Ym94IGlzdCBzZWl0IDIwMjYtMDUtMjMgZnVlciBhbGxlIEZ1bmt0aW9uZW4KICAgIC8vIHNpY2h0
YmFyIOKAlCBrZWluIEZ1bmt0aW9ucy1hYmhhZW5naWdlciBUb2dnbGUgbWVociBub2V0aWcuCiAg
ICBlbGRnbFRvZ2dsZUxpc3RlbmVyQmluZGVuKCk7CiAgICBhdmF0YXJVcGxvYWRIYW5kbGVyQmlu
ZGVuKHBlcnNvbik7CgogICAgLy8gVW1zZXR6ZW4vUmVha3RpdmllcmVuLUJ1dHRvbiBpbSBNb2Rh
bC1Gb290ZXIgKHNlaXQgMjAyNi0wNS0yMywKICAgIC8vIGZydWVoZXIgaW5saW5lIGluIGRlciBU
YWJlbGxlbnplaWxlKS4KICAgIHZhciBkbGdVbXNldHplbkJ0biA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdkbGctdW1zZXR6ZW4nKTsKICAgIGlmIChkbGdVbXNldHplbkJ0bikgewogICAgICAg
IGRsZ1Vtc2V0emVuQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgIHZhciB3aWxsQWt0aXYgPSBwZXJzb24uYWt0aXYgPT09IGZhbHNlOwogICAgICAg
ICAgICBiZXN0YWV0aWdlbigKICAgICAgICAgICAgICAgIHdpbGxBa3RpdgogICAgICAgICAgICAg
ICAgICAgID8gcGVyc29uLm5hbWUgKyAnIHdpZWRlciBpbiBkaWUgUGxhbnVuZyBhdWZuZWhtZW4/
JwogICAgICAgICAgICAgICAgICAgIDogcGVyc29uLm5hbWUgKyAnIGF1cyBkZXIgUGxhbnVuZyBl
bnRmZXJuZW4/XG5cbkRpZSBiaXNoZXJpZ2VuIEVpbnRyw6RnZSBibGVpYmVuIGVyaGFsdGVuIHVu
ZCB0YXVjaGVuIHdpZWRlciBhdWYsIHdlbm4gZGllIFBlcnNvbiBzcMOkdGVyIHJlYWt0aXZpZXJ0
IHdpcmQuJywKICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAg
IHBlcnNvblN0YXR1c1NldHplbihpZCwgd2lsbEFrdGl2KTsKICAgICAgICAgICAgICAgICAgICBt
b2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAg
eyB0aXRlbDogd2lsbEFrdGl2ID8gJ1JlYWt0aXZpZXJlbicgOiAnVW1zZXR6ZW4nLCBqYVRleHQ6
IHdpbGxBa3RpdiA/ICdSZWFrdGl2aWVyZW4nIDogJ1Vtc2V0emVuJywgamFEYW5nZXI6ICF3aWxs
QWt0aXYgfQogICAgICAgICAgICApOwogICAgICAgIH0pOwogICAgfQogICAgLy8gRW5kZ3VlbHRp
Zy1Mb2VzY2hlbi1CdXR0b24gaW0gTW9kYWwtRm9vdGVyIG1pdCBrcmFlZnRpZ2VyIEhUTUwtV2Fy
bnVuZy4KICAgIC8vIGJlc3RhZXRpZ2VuKCkgZXNjYXBlZCBkZW4gVGV4dCwgZGFoZXIgbnV0emVu
IHdpciBoaWVyIG1vZGFsWmVpZ2VuKCkKICAgIC8vIGRpcmVrdCBmdWVyIGRhcyBIVE1MLWZvcm1h
dGllcnRlIFdhcm4tTW9kYWwuCiAgICB2YXIgZGxnTG9lQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2RsZy1sb2VzY2hlbicpOwogICAgaWYgKGRsZ0xvZUJ0bikgewogICAgICAgIGRsZ0xv
ZUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2
YXIgcE5hbWUgPSAocGVyc29uLnZvcm5hbWUgPyBwZXJzb24udm9ybmFtZSArICcgJyA6ICcnKSAr
IHBlcnNvbi5uYW1lOwogICAgICAgICAgICAvLyBBbnphaGwgZGVyIGhpbnRlcmxlZ3RlbiBFaW50
cmFlZ2UgZnVlciBQZXJzb24gemFlaGxlbiwgZGFtaXQgZGVyCiAgICAgICAgICAgIC8vIFVzZXIg
aW4gZGVyIFdhcm51bmcgd2Vpc3MsIHdpZSB2aWVsIHZlcmxvcmVuIGdlaHQuCiAgICAgICAgICAg
IHZhciBhbnpFaW50cmFlZ2UgPSAwOwogICAgICAgICAgICBpZiAoWi5wbGFudW5nICYmIFoucGxh
bnVuZy5laW50cmFlZ2UpIHsKICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKFoucGxhbnVuZy5l
aW50cmFlZ2UpLmZvckVhY2goZnVuY3Rpb24oZCkgewogICAgICAgICAgICAgICAgICAgIHZhciBl
ID0gWi5wbGFudW5nLmVpbnRyYWVnZVtkXTsKICAgICAgICAgICAgICAgICAgICBpZiAoZSAmJiBl
W1N0cmluZyhpZCldKSBhbnpFaW50cmFlZ2UrKzsKICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICB9CiAgICAgICAgICAgIHZhciBhbnpLb21tZW50YXJlID0gMDsKICAgICAgICAgICAgaWYg
KFoucGxhbnVuZyAmJiBaLnBsYW51bmcua29tbWVudGFyZSkgewogICAgICAgICAgICAgICAgT2Jq
ZWN0LmtleXMoWi5wbGFudW5nLmtvbW1lbnRhcmUpLmZvckVhY2goZnVuY3Rpb24oZCkgewogICAg
ICAgICAgICAgICAgICAgIHZhciBrID0gWi5wbGFudW5nLmtvbW1lbnRhcmVbZF07CiAgICAgICAg
ICAgICAgICAgICAgaWYgKGsgJiYga1tTdHJpbmcoaWQpXSkgYW56S29tbWVudGFyZSsrOwogICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGtvZXJwZXIgPQog
ICAgICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuNTUiPicgKwogICAgICAg
ICAgICAgICAgICAgICc8cCBzdHlsZT0ibWFyZ2luLXRvcDowIj48c3Ryb25nPicgKyBlc2NhcGVI
VE1MKHBOYW1lKSArICc8L3N0cm9uZz4gd2lya2xpY2ggZW5kZ8O8bHRpZyBsw7ZzY2hlbj88L3A+
JyArCiAgICAgICAgICAgICAgICAgICAgJzxwIHN0eWxlPSJjb2xvcjp2YXIoLS1mYXJiZS1mZWhs
ZXIpO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MTBweCAwIDRweCI+RGllc2UgQWt0aW9uIGVudGZl
cm50IHVud2lkZXJydWZsaWNoOjwvcD4nICsKICAgICAgICAgICAgICAgICAgICAnPHVsIHN0eWxl
PSJtYXJnaW46MCAwIDEwcHggMjBweCI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8bGk+
YWxsZSBTdGFtbWRhdGVuIGRlciBQZXJzb24gKE5hbWUsIEZ1bmt0aW9uLCBEaWVuc3RncmFkLCBU
ZWxlZm9uLCBOVy1LZW5udW5nLCDigKYpPC9saT4nICsKICAgICAgICAgICAgICAgICAgICAgICAg
JzxsaT48c3Ryb25nPicgKyBhbnpFaW50cmFlZ2UgKyAnPC9zdHJvbmc+IGhpbnRlcmxlZ3RlIFNj
aGljaHQtRWludHInICsgKGFuekVpbnRyYWVnZSA9PT0gMSA/ICdhZycgOiAnw6RnZScpICsgJyBp
bSBnZXNhbXRlbiBQbGFudW5ncy1aZWl0cmF1bTwvbGk+JyArCiAgICAgICAgICAgICAgICAgICAg
ICAgICc8bGk+PHN0cm9uZz4nICsgYW56S29tbWVudGFyZSArICc8L3N0cm9uZz4gS29tbWVudGFy
JyArIChhbnpLb21tZW50YXJlID09PSAxID8gJycgOiAnZScpICsgJyB6dSBkaWVzZXIgUGVyc29u
PC9saT4nICsKICAgICAgICAgICAgICAgICAgICAnPC91bD4nICsKICAgICAgICAgICAgICAgICAg
ICAnPHAgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZToxMnB4O21hcmdp
bjo4cHggMCAwIj5EYXMgTG9nYnVjaCBibGVpYnQgYWxzIEF1ZGl0LVNwdXIgZXJoYWx0ZW4g4oCU
IGRpZSBBa3Rpb24gaXN0IG5pY2h0IMO8YmVyIOKAnldpZWRlcmhlcnN0ZWxsZW4iIHp1csO8Y2tu
ZWhtYmFyLjwvcD4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgICAgICB2YXIg
ZnVzcyA9CiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIiBpZD0ibG9lLWFiYnJl
Y2hlbiIgdHlwZT0iYnV0dG9uIj5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAg
ICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdlZmFociIgaWQ9ImxvZS1iZXN0YWV0aWdlbiIgdHlw
ZT0iYnV0dG9uIj5FbmRnw7xsdGlnIGzDtnNjaGVuPC9idXR0b24+JzsKICAgICAgICAgICAgbW9k
YWxaZWlnZW4oJ1BlcnNvbiBlbmRnw7xsdGlnIGzDtnNjaGVuIOKAlCAnICsgcE5hbWUsIGtvZXJw
ZXIsIGZ1c3MsIG51bGwsIG51bGwsIHsgcmVpbmVyRGlhbG9nOiB0cnVlIH0pOwogICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9lLWFiYnJlY2hlbicpLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4o
dHJ1ZSk7CiAgICAgICAgICAgICAgICAvLyBCZWFyYmVpdGVuLU1vZGFsIG5ldSB6ZWlnZW4sIGRh
bWl0IGRlciBVc2VyIGRvcnQgd2VpdGVybWFjaGVuIGthbm4KICAgICAgICAgICAgICAgIHBlcnNv
bkJlYXJiZWl0ZW5EaWFsb2coaWQpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZS1iZXN0YWV0aWdlbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBhcGlEZWxldGUoJy9hcGkvcGVyc29u
ZW4vJyArIGlkICsgJz9lbmRndWVsdGlnPTEnKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgICAgICAgIFoucGxhbnVuZy5wZXJzb25lbiA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10p
LmZpbHRlcihmdW5jdGlvbih4KSB7IHJldHVybiB4LmlkICE9PSBpZDsgfSk7CiAgICAgICAgICAg
ICAgICAgICAgaWYgKFoucGxhbnVuZy5laW50cmFlZ2UpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgT2JqZWN0LmtleXMoWi5wbGFudW5nLmVpbnRyYWVnZSkuZm9yRWFjaChmdW5jdGlvbihkKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoWi5wbGFudW5nLmVpbnRyYWVnZVtkXSkg
ZGVsZXRlIFoucGxhbnVuZy5laW50cmFlZ2VbZF1bU3RyaW5nKGlkKV07CiAgICAgICAgICAgICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBp
ZiAoWi5wbGFudW5nLmtvbW1lbnRhcmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0
LmtleXMoWi5wbGFudW5nLmtvbW1lbnRhcmUpLmZvckVhY2goZnVuY3Rpb24oZCkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKFoucGxhbnVuZy5rb21tZW50YXJlW2RdKSBkZWxldGUg
Wi5wbGFudW5nLmtvbW1lbnRhcmVbZF1bU3RyaW5nKGlkKV07CiAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnR3dXJm
TG9lc2NoZW4oJ3BlcnNvbl9lZGl0XycgKyBpZCk7CiAgICAgICAgICAgICAgICAgICAgbW9kYWxT
Y2hsaWVzc2VuKHRydWUpOwogICAgICAgICAgICAgICAgICAgIHBlcnNvbmVuTmV1QXVmYmF1ZW4o
KTsKICAgICAgICAgICAgICAgICAgICBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICAgICAg
ICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lblJlbmRlcm4gPT09ICdmdW5jdGlvbicpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgbmFtZW5SZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgIGRhdGVuR3JpZFJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAgICAgICAga29wZlJlbmRl
cm4oKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ1Bl
cnNvbiBlbmRnw7xsdGlnIGdlbMO2c2NodCcsICdlcmZvbGcnKTsKICAgICAgICAgICAgICAgIH0p
LmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxl
cicpOyB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9CgogICAgLy8gIkFsbGUg
bWFya2llcmVuIi1CdXR0b25zIGZ1ZXIgZGllIERpcmVrdGUtS29sbGVnZW4vUmVzdC1TZWt0aW9u
ZW4sCiAgICAvLyB3ZW5uIGRlciBUb2dnbGUgYWt0aXYgaXN0IChDaGVycnktUGljayA4OWViM2M3
KS4gV2VubiBkaWUgQnV0dG9ucwogICAgLy8gaW0gTWFya3VwIGZlaGxlbiAoRmVhdHVyZSBhdXMp
LCBwYXNzaWVydCBoaWVyIG5pY2h0cy4KICAgIHZhciBlclBlcnNvbmVuID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2VyLXBlcnNvbmVuJyk7CiAgICBpZiAoZXJQZXJzb25lbikgZXJQZXJzb25l
bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIgYnRu
ID0gZS50YXJnZXQuY2xvc2VzdCgnYnV0dG9uW2RhdGEtYWt0aW9uXScpOwogICAgICAgIGlmICgh
YnRuKSByZXR1cm47CiAgICAgICAgdmFyIGFrdGlvbiA9IGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEt
YWt0aW9uJyk7CiAgICAgICAgdmFyIHNlbGVjdG9yID0gYWt0aW9uID09PSAna29sbGVnZW4tZGly
ZWt0LWFsbGUnCiAgICAgICAgICAgID8gJy5rb2xsZWdlbi1kaXJla3QgLmVkaXQtcmVjaHQtY2hr
JwogICAgICAgICAgICA6IChha3Rpb24gPT09ICdrb2xsZWdlbi1yZXN0LWFsbGUnICA/ICcua29s
bGVnZW4tcmVzdCAuZWRpdC1yZWNodC1jaGsnCiAgICAgICAgICAgIDogKGFrdGlvbiA9PT0gJ2tv
bGxlZ2VuLW1pa3JvLWFsbGUnID8gJy5rb2xsZWdlbi1taWtybyAuZWRpdC1yZWNodC1jaGsnIDog
bnVsbCkpOwogICAgICAgIGlmICghc2VsZWN0b3IpIHJldHVybjsKICAgICAgICAvLyBUb2dnbGUt
VmVyaGFsdGVuOiB3ZW5uIGFsbGUgYmVyZWl0cyBhbiwgYWxsZSBhdXMg4oCUIHNvbnN0IGFsbGUg
YW4uCiAgICAgICAgdmFyIGJveGVuID0gZXJQZXJzb25lbi5xdWVyeVNlbGVjdG9yQWxsKHNlbGVj
dG9yKTsKICAgICAgICB2YXIgYWxsZUFuID0gYm94ZW4ubGVuZ3RoID4gMCAmJiBBcnJheS5wcm90
b3R5cGUuZXZlcnkuY2FsbChib3hlbiwgZnVuY3Rpb24oYykgeyByZXR1cm4gYy5jaGVja2VkOyB9
KTsKICAgICAgICBib3hlbi5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsgYy5jaGVja2VkID0gIWFsbGVB
bjsgfSk7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHBlcnNvbk5ldURpYWxvZygpIHsKICAg
IHZhciBncnVwcGVuID0gKFouYWRtaW4uZ3J1cHBlbiB8fCBbXSkubWFwKGZ1bmN0aW9uKGcpIHsg
cmV0dXJuIGcubmFtZTsgfSk7CiAgICB2YXIgYWxsZSA9IChaLnBsYW51bmcucGVyc29uZW4gfHwg
W10pLnNsaWNlKCkKICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKHApIHsgcmV0dXJuIHAuYWt0aXY7
IH0pCiAgICAgICAgLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gKGEucG9zaXRpb24gfHwg
OTk5KSAtIChiLnBvc2l0aW9uIHx8IDk5OSk7IH0pOwogICAgdmFyIHJlZk9wdGlvbmVuID0gYWxs
ZS5tYXAoZnVuY3Rpb24ocCkgewogICAgICAgIHZhciBsYWJlbCA9IChwLnZvcm5hbWUgPyBwLnZv
cm5hbWUgKyAnICcgOiAnJykgKyBwLm5hbWUgKyAnICgnICsgcC5ncnVwcGUgKyAnKSc7CiAgICAg
ICAgcmV0dXJuICc8b3B0aW9uIHZhbHVlPSInICsgcC5pZCArICciPicgKyBlc2NhcGVIVE1MKGxh
YmVsKSArICc8L29wdGlvbj4nOwogICAgfSkuam9pbignJyk7CgogICAgdmFyIGtvZXJwZXIgPSAn
PGRpdiBzdHlsZT0iZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dh
cDowIDE2cHgiPicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSBmb3JtLXBmbGlj
aHQiPjxsYWJlbD5OYW1lPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRsZy1uYW1lIiBj
bGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiPjwvZGl2PicgKwogICAgICAgICc8
ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPlZvcm5hbWU8L2xhYmVsPjxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iZGxnLXZvcm5hbWUiIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6
MTAwJSI+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+
RGllbnN0Z3JhZDwvbGFiZWw+PHNlbGVjdCBpZD0iZGxnLWRpZW5zdGdyYWQiIGNsYXNzPSJmb3Jt
LWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSI+JyArCiAgICAgICAgJzxvcHRpb24gdmFsdWU9IiIg
c2VsZWN0ZWQ+4oCUIG9obmUg4oCUPC9vcHRpb24+JyArCiAgICAgICAgZ2V0RGllbnN0Z3JhZGUo
KS5tYXAoZnVuY3Rpb24oZykgewogICAgICAgICAgICByZXR1cm4gJzxvcHRpb24gdmFsdWU9Iicg
KyBlc2NhcGVBdHRyKGcpICsgJyI+JyArIGVzY2FwZUhUTUwoZykgKyAnPC9vcHRpb24+JzsKICAg
ICAgICB9KS5qb2luKCcnKSArCiAgICAgICAgJzwvc2VsZWN0PjwvZGl2PicgKwogICAgICAgICc8
ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSBmb3JtLXBmbGljaHQiPjxsYWJlbD5EaWVuc3RncnVwcGU8
L2xhYmVsPjxzZWxlY3QgaWQ9ImRsZy1ncnVwcGUiIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0i
d2lkdGg6MTAwJSI+JyArCiAgICAgICAgZ3J1cHBlbi5tYXAoZnVuY3Rpb24oZykgeyByZXR1cm4g
JzxvcHRpb24+JyArIGVzY2FwZUhUTUwoZykgKyAnPC9vcHRpb24+JzsgfSkuam9pbignJykgKwog
ICAgICAgICc8L3NlbGVjdD48L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVw
cGUiPjxsYWJlbD5GdW5rdGlvbjwvbGFiZWw+PHNlbGVjdCBpZD0iZGxnLWZ1bmt0aW9uIiBjbGFz
cz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiIHRpdGxlPSJTdGFtbS1GdW5rdGlvbjog
YmVzdGltbXQgZGllIFZlcmFudHdvcnR1bmdzLVJlaWhlbmZvbGdlIGluIGRlciBTY2hpY2h0Ij4n
ICsKICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD7igJQgb2huZSBGdW5rdGlvbiDi
gJQ8L29wdGlvbj4nICsKICAgICAgICBnZXRGdW5rdGlvbmVuKCkubWFwKGZ1bmN0aW9uKGYpIHsK
ICAgICAgICAgICAgcmV0dXJuICc8b3B0aW9uIHZhbHVlPSInICsgZXNjYXBlQXR0cihmLmNvZGUp
ICsgJyI+JyArIGVzY2FwZUhUTUwoZi5jb2RlKSArICc8L29wdGlvbj4nOwogICAgICAgIH0pLmpv
aW4oJycpICsKICAgICAgICAnPC9zZWxlY3Q+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9
ImZvcm0tZ3J1cHBlIiBpZD0iZGxnLWVsZGdsLWdydXBwZSI+JyArCiAgICAgICAgICAgICc8bGFi
ZWw+VkkzIERHTDwvbGFiZWw+JyArCiAgICAgICAgICAgIGVsZGdsVG9nZ2xlSHRtbChmYWxzZSkg
KwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxs
YWJlbD5PRSAoU3RhbmRvcnQpPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRsZy1vZSIg
Y2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIiBwbGFjZWhvbGRlcj0iei5CLiBL
QSwgSEEsIEJPIj48L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxs
YWJlbD5UZWxlZm9uPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRsZy10ZWxlZm9uIiBj
bGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiIHBsYWNlaG9sZGVyPSJ6LkIuIDQ1
MjAiPjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPk5X
LUtlbm51bmc8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGxnLW53a2VubnVuZyIgY2xh
c3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIiBwbGFjZWhvbGRlcj0iRE9NQUlOXFx1
c2VyIj48L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5F
LU1haWw8L2xhYmVsPjxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9ImRsZy1lbWFpbCIgY2xhc3M9ImZv
cm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIiBwbGFjZWhvbGRlcj0iQmVuYWNocmljaHRpZ3Vu
ZyBiZWkgw4RuZGVydW5nZW4iPjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdy
dXBwZSI+PGxhYmVsPkdlYnVydHNkYXR1bTwvbGFiZWw+PGlucHV0IHR5cGU9ImRhdGUiIGlkPSJk
bGctZ2VidXJ0c2RhdHVtIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiPjwv
ZGl2PicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPGhyIHN0eWxlPSJtYXJnaW46MTJw
eCAwO2JvcmRlcjpub25lO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCki
PicgKwogICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1
bW5zOjFmciAyZnI7Z2FwOjAgMTZweCI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3Jt
LWdydXBwZSI+PGxhYmVsPkVpbnJlaWhlbjwvbGFiZWw+PHNlbGVjdCBpZD0iZGxnLWVpbnJlaWhl
biIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIj4nICsKICAgICAgICAgICAg
ICAgICc8b3B0aW9uIHZhbHVlPSJ1bnRlbiIgc2VsZWN0ZWQ+R2FueiB1bnRlbiBhbmjDpG5nZW48
L29wdGlvbj4nICsKICAgICAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSJ2b3IiPlZvciBQZXJz
b27igKY8L29wdGlvbj4nICsKICAgICAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSJuYWNoIj5O
YWNoIFBlcnNvbuKApjwvb3B0aW9uPicgKwogICAgICAgICAgICAnPC9zZWxlY3Q+PC9kaXY+JyAr
CiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPlJlZmVyZW56cGVy
c29uPC9sYWJlbD48c2VsZWN0IGlkPSJkbGctcmVmIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9
IndpZHRoOjEwMCUiIGRpc2FibGVkPicgKwogICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9
IiI+4oCUIGtlaW5lIOKAlDwvb3B0aW9uPicgKyByZWZPcHRpb25lbiArCiAgICAgICAgICAgICc8
L3NlbGVjdD48L2Rpdj4nICsKICAgICAgICAnPC9kaXY+JzsKCiAgICBtb2RhbFplaWdlbignTmV1
ZSBQZXJzb24gYW5sZWdlbicsIGtvZXJwZXIsCiAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBi
dG4tZXJmb2xnIiBpZD0iZGxnLXNwZWljaGVybiI+QW5sZWdlbjwvYnV0dG9uPicsCiAgICAgICAg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBlaW5yZWloZW4gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZGxnLWVpbnJlaWhlbicpLnZhbHVlOwogICAgICAgICAgICB2YXIgcmVmU2VsID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1yZWYnKTsKICAgICAgICAgICAgdmFyIHJlZklk
ID0gcmVmU2VsLnZhbHVlID8gcGFyc2VJbnQocmVmU2VsLnZhbHVlKSA6IG51bGw7CiAgICAgICAg
ICAgIGlmICgoZWlucmVpaGVuID09PSAndm9yJyB8fCBlaW5yZWloZW4gPT09ICduYWNoJykgJiYg
IXJlZklkKSB7CiAgICAgICAgICAgICAgICB0b2FzdCgnQml0dGUgZWluZSBSZWZlcmVuenBlcnNv
biB3w6RobGVuIG9kZXIgIkdhbnogdW50ZW4iIGF1c3fDpGhsZW4nLCAnd2FybnVuZycpOwogICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBkbGdGdW5r
MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctZnVua3Rpb24nKS52YWx1ZTsKICAgICAg
ICAgICAgdmFyIGRsZ0VsZGdsRWwyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1lbGRn
bCcpOwogICAgICAgICAgICB2YXIgZGF0ZW4gPSB7CiAgICAgICAgICAgICAgICBuYW1lOiBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLW5hbWUnKS52YWx1ZS50cmltKCksCiAgICAgICAgICAg
ICAgICB2b3JuYW1lOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLXZvcm5hbWUnKS52YWx1
ZSwKICAgICAgICAgICAgICAgIGdydXBwZTogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1n
cnVwcGUnKS52YWx1ZSwKICAgICAgICAgICAgICAgIGZ1bmt0aW9uOiBkbGdGdW5rMiwKICAgICAg
ICAgICAgICAgIG9lOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLW9lJykudmFsdWUsCiAg
ICAgICAgICAgICAgICBkaWVuc3RncmFkOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLWRp
ZW5zdGdyYWQnKS52YWx1ZSwKICAgICAgICAgICAgICAgIHRlbGVmb246IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkbGctdGVsZWZvbicpLnZhbHVlLAogICAgICAgICAgICAgICAgbndLZW5udW5n
OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLW53a2VubnVuZycpLnZhbHVlLAogICAgICAg
ICAgICAgICAgZW1haWw6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctZW1haWwnKS52YWx1
ZSwKICAgICAgICAgICAgICAgIGdlYnVydHNkYXR1bTogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2RsZy1nZWJ1cnRzZGF0dW0nKS52YWx1ZSwKICAgICAgICAgICAgICAgIGVsRGdsUXVhbGlmaXpp
ZXJ0OiBkbGdFbGRnbEVsMiA/IGRsZ0VsZGdsRWwyLmNoZWNrZWQgOiBmYWxzZSwKICAgICAgICAg
ICAgICAgIGVpbnJlaWhlbjogZWlucmVpaGVuLAogICAgICAgICAgICAgICAgcmVmZXJlbnpJZDog
cmVmSWQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKCFkYXRlbi5uYW1lKSB7IHBmbGlj
aHRmZWxkRmVobGVyKCdkbGctbmFtZScsICdOYW1lIGlzdCBlaW4gUGZsaWNodGZlbGQnKTsgcmV0
dXJuOyB9CiAgICAgICAgICAgIGFwaVBvc3QoJy9hcGkvcGVyc29uZW4nLCBkYXRlbikudGhlbihm
dW5jdGlvbihyKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXBpKCcvYXBpL3BsYW51bmcnKS50
aGVuKGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAgICAgICAgICBaLnBsYW51bmcgPSBwOwogICAg
ICAgICAgICAgICAgICAgIHBlcnNvbmVuTmV1QXVmYmF1ZW4oKTsKICAgICAgICAgICAgICAgICAg
ICBtb2RhbFNjaGxpZXNzZW4oKTsKICAgICAgICAgICAgICAgICAgICBwZXJzb25hbFRhYmVsbGVS
ZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lblJlbmRlcm4gPT09
ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZW5SZW5kZXJuKCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGVuR3JpZFJlbmRlcm4oKTsKICAgICAgICAgICAgICAg
ICAgICAgICAga29wZlJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgdG9hc3QoJ1BlcnNvbiBhbmdlbGVndCAoUG9zLiAnICsgci5wb3NpdGlvbiArICcp
JywgJ2VyZm9sZycpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1
bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsK
ICAgICAgICB9CiAgICApOwoKICAgIHZhciBlaW5TZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZGxnLWVpbnJlaWhlbicpOwogICAgdmFyIHJlZkRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2RsZy1yZWYnKTsKICAgIGVpblNlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5j
dGlvbigpIHsKICAgICAgICByZWZEZC5kaXNhYmxlZCA9IChlaW5TZWwudmFsdWUgPT09ICd1bnRl
bicpOwogICAgfSk7CgogICAgLy8gVkkzLURHTC1DaGVja2JveCBibGVpYnQgZnVlciBhbGxlIEZ1
bmt0aW9uZW4gc2ljaHRiYXIgKHNlaXQgMjAyNi0wNS0yMykuCiAgICBlbGRnbFRvZ2dsZUxpc3Rl
bmVyQmluZGVuKCk7Cn0KCi8vID09PT09IEFkbWluOiBNYW51ZWxsZSBTb3J0aWVydW5nIChEcmFn
ICYgRHJvcCkgPT09PT0KCi8vIExpc3RldCBhbGxlIGFrdGl2ZW4gRnVlaHJ1bmdza3JhZWZ0ZSAo
R3J1cHBlbiBB4oCTQyB1bmQgV0QpIHVuZCBlcmxhdWJ0Ci8vIGRlcmVuIE5ldWFub3JkbnVuZyBw
ZXIgRHJhZyZEcm9wLiBCZWltIFNwZWljaGVybiB3ZXJkZW4gZGllIFBvc2l0aW9uZW4KLy8gYWxz
IDEuLk4gaW4gZGVyIG5ldWVuIFJlaWhlbmZvbGdlIHZlcmdlYmVuIOKAlCBpbm5lcmhhbGIgZWlu
ZXIgR3J1cHBlCi8vIHNvcnRpZXJ0IHBlcnNvbmVuTmV1QXVmYmF1ZW4oKSBvaG5laGluIG5hY2gg
R3J1cHBlIHByaW1hZXIuCmV4cG9ydCBmdW5jdGlvbiBtYW51ZWxsZVNvcnRpZXJ1bmdEaWFsb2co
KSB7CiAgICB2YXIgZXJsYXVidGUgPSBbJ0EnLCAnQicsICdDJywgJ1dEJ107CiAgICB2YXIgZ3J1
cHBlblJhbmcgPSB7fTsKICAgIGVybGF1YnRlLmZvckVhY2goZnVuY3Rpb24oZywgaSkgeyBncnVw
cGVuUmFuZ1tnXSA9IGk7IH0pOwogICAgdmFyIHBlcnNvbmVuID0gKFoucGxhbnVuZy5wZXJzb25l
biB8fCBbXSkKICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKHApIHsgcmV0dXJuIHAuYWt0aXYgJiYg
ZXJsYXVidGUuaW5kZXhPZihwLmdydXBwZSkgPj0gMDsgfSkKICAgICAgICAuc29ydChmdW5jdGlv
bihhLCBiKSB7CiAgICAgICAgICAgIHZhciByQSA9IGdydXBwZW5SYW5nW2EuZ3J1cHBlXSwgckIg
PSBncnVwcGVuUmFuZ1tiLmdydXBwZV07CiAgICAgICAgICAgIGlmIChyQSAhPT0gckIpIHJldHVy
biByQSAtIHJCOwogICAgICAgICAgICByZXR1cm4gKGEucG9zaXRpb24gfHwgOTk5KSAtIChiLnBv
c2l0aW9uIHx8IDk5OSk7CiAgICAgICAgfSk7CgogICAgdmFyIGtvZXJwZXIgPSAnPHAgc3R5bGU9
Im1hcmdpbjowIDAgMTBweCAwO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZToxM3B4
Ij5aaWVoZSBQZXJzb25lbiBhbSDimLAtR3JpZmYgaW4gZGllIGdld8O8bnNjaHRlIFJlaWhlbmZv
bGdlIOKAlCBvZGVyIG51dHplIOKWsiAvIOKWvCBuZWJlbiBqZWRlciBaZWlsZSAoVGFzdGF0dXIt
VmFyaWFudGUpLiDigJ5TcGVpY2hlcm4iIMO8YmVybmltbXQgZGllIG5ldWUgUmFuZ2ZvbGdlLicg
KwogICAgICAgIGhpbGZlSWNvbignRGllIFJlaWhlbmZvbGdlIGJlc3RpbW10IG51ciBkaWUgQW56
ZWlnZSBpbiBkZXIgUGxhbnRhZmVsIHVuZCBpbSBXb2NoZW5wbGFuLCBuaWNodCBkaWUgZmFjaGxp
Y2hlIFJhbmdvcmRudW5nIChGdW5rdGlvbikuIERpZSBQb3NpdGlvbnMtWmFobGVuIGF1cyBkZW0g
RXhjZWwtSW1wb3J0IGJsZWliZW4gZXJoYWx0ZW4g4oCUIHNpZSB3ZXJkZW4gbnVyIG5ldSB6dWdl
b3JkbmV0LCBzb2Rhc3MgZGllIFNvcnRpZXJ1bmcgZGVpbmVyIERyYWcmRHJvcC1SZWloZW5mb2xn
ZSBlbnRzcHJpY2h0LicpICsKICAgICAgICAnPC9wPicgKwogICAgICAgICc8ZGl2IGlkPSJtcy1s
aXN0ZSIgY2xhc3M9Im1zLWxpc3RlIj4nOwogICAgcGVyc29uZW4uZm9yRWFjaChmdW5jdGlvbihw
KSB7CiAgICAgICAgdmFyIGcgPSBaLmdydXBwZW5NYXBbcC5ncnVwcGVdIHx8IHt9OwogICAgICAg
IHZhciBkaWVuc3RncmFkID0gcC5kaWVuc3RncmFkID8gZXNjYXBlSFRNTChwLmRpZW5zdGdyYWQp
ICsgJyAnIDogJyc7CiAgICAgICAga29lcnBlciArPSAnPGRpdiBjbGFzcz0ibXMtemVpbGUiIGRy
YWdnYWJsZT0idHJ1ZSIgZGF0YS1pZD0iJyArIHAuaWQgKyAnIj4nICsKICAgICAgICAgICAgJzxz
cGFuIGNsYXNzPSJtcy1ncmlmZiIgdGl0bGU9IlppZWhlbiI+4piwPC9zcGFuPicgKwogICAgICAg
ICAgICAnPHNwYW4gY2xhc3M9ImdydXBwZW4tYmFkZ2UiIHN0eWxlPSJiYWNrZ3JvdW5kOicgKyBl
c2NhcGVBdHRyKGcuaGludGVyZ3J1bmQgfHwgJyM2NjYnKSArICc7Y29sb3I6JyArIGVzY2FwZUF0
dHIoZy5zY2hyaWZ0IHx8ICcjZmZmJykgKyAnIj4nICsgZXNjYXBlSFRNTChwLmdydXBwZSkgKyAn
PC9zcGFuPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9Im1zLW5hbWUiPicgKyBkaWVuc3Rn
cmFkICsgZXNjYXBlSFRNTChwLm5hbWUpICsgKHAudm9ybmFtZSA/ICcsICcgKyBlc2NhcGVIVE1M
KHAudm9ybmFtZSkgOiAnJykgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9
Im1zLXJhbmciIHRpdGxlPSJBa3R1ZWxsZSBQb3NpdGlvbnMtWmFobCI+UG9zaXRpb24gJyArIChw
LnBvc2l0aW9uICE9IG51bGwgPyBwLnBvc2l0aW9uIDogJ+KAlCcpICsgJzwvc3Bhbj4nICsKICAg
ICAgICAgICAgLy8gVVgtQXVkaXQgU3ByaW50IDMuNiAoMjAyNi0wNS0yOSk6IFRhc3RhdHVyLUJ1
dHRvbnMgYWxzCiAgICAgICAgICAgIC8vIGExMXktQWx0ZXJuYXRpdmUgenVtIERyYWcmRHJvcC4K
ICAgICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibXMtcGZlaWwiIGRhdGEt
cmljaHR1bmc9ImhvY2giIHRpdGxlPSJFaW5lIFBvc2l0aW9uIGhvY2giIGFyaWEtbGFiZWw9IkVp
bmUgUG9zaXRpb24gaG9jaCI+4payPC9idXR0b24+JyArCiAgICAgICAgICAgICc8YnV0dG9uIHR5
cGU9ImJ1dHRvbiIgY2xhc3M9Im1zLXBmZWlsIiBkYXRhLXJpY2h0dW5nPSJydW50ZXIiIHRpdGxl
PSJFaW5lIFBvc2l0aW9uIHJ1bnRlciIgYXJpYS1sYWJlbD0iRWluZSBQb3NpdGlvbiBydW50ZXIi
PuKWvDwvYnV0dG9uPicgKwogICAgICAgICc8L2Rpdj4nOwogICAgfSk7CiAgICBrb2VycGVyICs9
ICc8L2Rpdj4nOwoKICAgIHZhciBmdXNzID0gJzxidXR0b24gY2xhc3M9ImJ0biIgaWQ9Im1zLWFi
YnJlY2hlbiI+QWJicmVjaGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICc8YnV0dG9uIGNs
YXNzPSJidG4gYnRuLXByaW1hZXIiIGlkPSJtcy1zcGVpY2hlcm4iPlNwZWljaGVybjwvYnV0dG9u
Pic7CiAgICBtb2RhbFplaWdlbignTWFudWVsbGUgU29ydGllcnVuZyDigJQgRsO8aHJ1bmdza3LD
pGZ0ZSAoQeKAk0MsIFdEKScsIGtvZXJwZXIsIGZ1c3MsIG51bGwpOwoKICAgIHZhciBsaXN0ZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtcy1saXN0ZScpOwogICAgdmFyIGdlem9nZW4gPSBu
dWxsOwoKICAgIGxpc3RlLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdzdGFydCcsIGZ1bmN0aW9uKGUp
IHsKICAgICAgICB2YXIgemVpbGUgPSBlLnRhcmdldC5jbG9zZXN0ID8gZS50YXJnZXQuY2xvc2Vz
dCgnLm1zLXplaWxlJykgOiBudWxsOwogICAgICAgIGlmICghemVpbGUpIHJldHVybjsKICAgICAg
ICBnZXpvZ2VuID0gemVpbGU7CiAgICAgICAgemVpbGUuY2xhc3NMaXN0LmFkZCgnbXMtZHJhZ2dp
bmcnKTsKICAgICAgICB0cnkgeyBlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gJ21vdmUn
OyBlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgemVpbGUuZ2V0QXR0cmlidXRl
KCdkYXRhLWlkJykpOyB9IGNhdGNoIChfKSB7fQogICAgfSk7CiAgICBsaXN0ZS5hZGRFdmVudExp
c3RlbmVyKCdkcmFnZW5kJywgZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKGdlem9nZW4pIGdlem9n
ZW4uY2xhc3NMaXN0LnJlbW92ZSgnbXMtZHJhZ2dpbmcnKTsKICAgICAgICBnZXpvZ2VuID0gbnVs
bDsKICAgIH0pOwogICAgbGlzdGUuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBmdW5jdGlv
bihlKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIGlmICghZ2V6b2dlbikg
cmV0dXJuOwogICAgICAgIHZhciB6aWVsID0gZS50YXJnZXQuY2xvc2VzdCA/IGUudGFyZ2V0LmNs
b3Nlc3QoJy5tcy16ZWlsZScpIDogbnVsbDsKICAgICAgICBpZiAoIXppZWwgfHwgemllbCA9PT0g
Z2V6b2dlbikgcmV0dXJuOwogICAgICAgIHZhciByZWN0ID0gemllbC5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKICAgICAgICB2YXIgb2JlcmhhbGIgPSAoZS5jbGllbnRZIC0gcmVjdC50b3ApIDwg
KHJlY3QuaGVpZ2h0IC8gMik7CiAgICAgICAgaWYgKG9iZXJoYWxiKSB6aWVsLnBhcmVudE5vZGUu
aW5zZXJ0QmVmb3JlKGdlem9nZW4sIHppZWwpOwogICAgICAgIGVsc2UgICAgICAgICAgemllbC5w
YXJlbnROb2RlLmluc2VydEJlZm9yZShnZXpvZ2VuLCB6aWVsLm5leHRTaWJsaW5nKTsKICAgIH0p
OwoKICAgIC8vIFVYLUF1ZGl0IFNwcmludCAzLjYgKDIwMjYtMDUtMjkpOiBUYXN0YXR1ci1OYXZp
Z2F0aW9uIHZpYSDilrIv4pa8LUJ1dHRvbnMKICAgIC8vIGFscyBBbHRlcm5hdGl2ZSB6dW0gRHJh
ZyZEcm9wIChhMTF5LUFuZm9yZGVydW5nLCBkYSBEcmFnJkRyb3AgZnVlcgogICAgLy8gVGFzdGF0
dXItL1NjcmVlbnJlYWRlci1OdXR6ZXIgbmljaHQgYmVkaWVuYmFyIGlzdCkuCiAgICBsaXN0ZS5h
ZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIgYnRuID0g
ZS50YXJnZXQgJiYgZS50YXJnZXQuY2xvc2VzdCAmJiBlLnRhcmdldC5jbG9zZXN0KCcubXMtcGZl
aWwnKTsKICAgICAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAgICAgIHZhciB6ZWlsZSA9IGJ0bi5j
bG9zZXN0KCcubXMtemVpbGUnKTsKICAgICAgICBpZiAoIXplaWxlKSByZXR1cm47CiAgICAgICAg
dmFyIHJpY2h0dW5nID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1yaWNodHVuZycpOwogICAgICAg
IGlmIChyaWNodHVuZyA9PT0gJ2hvY2gnKSB7CiAgICAgICAgICAgIHZhciBwcmV2ID0gemVpbGUu
cHJldmlvdXNFbGVtZW50U2libGluZzsKICAgICAgICAgICAgaWYgKHByZXYpIHplaWxlLnBhcmVu
dE5vZGUuaW5zZXJ0QmVmb3JlKHplaWxlLCBwcmV2KTsKICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICB2YXIgbmV4dCA9IHplaWxlLm5leHRFbGVtZW50U2libGluZzsKICAgICAgICAgICAgaWYg
KG5leHQpIHplaWxlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5leHQsIHplaWxlKTsKICAgICAg
ICB9CiAgICAgICAgLy8gRm9rdXMgYXVmIGdsZWljaGVtIEJ1dHRvbiBiZWhhbHRlbiwgZGFtaXQg
d2VpdGVyZSDilrIv4pa8LUtsaWNrcwogICAgICAgIC8vIChvZGVyIEVudGVyIHZpYSBLZXlib2Fy
ZCkgb2huZSBNYXVzIHdlaXRlcmdlaGVuIGtvZW5uZW4uCiAgICAgICAgdHJ5IHsgYnRuLmZvY3Vz
KCk7IH0gY2F0Y2ggKF8pIHt9CiAgICB9KTsKCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bXMtYWJicmVjaGVuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBtb2RhbFNjaGxpZXNzZW4p
OwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21zLXNwZWljaGVybicpLmFkZEV2ZW50TGlz
dGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgLy8gTmV1ZSBET00tUmVpaGVuZm9s
Z2UgZWluc2FtbWVsbgogICAgICAgIHZhciBpZHNOZXUgPSBbXTsKICAgICAgICBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCcjbXMtbGlzdGUgLm1zLXplaWxlJykuZm9yRWFjaChmdW5jdGlvbihl
bCkgewogICAgICAgICAgICBpZHNOZXUucHVzaChwYXJzZUludChlbC5nZXRBdHRyaWJ1dGUoJ2Rh
dGEtaWQnKSwgMTApKTsKICAgICAgICB9KTsKICAgICAgICAvLyBCaXNoZXJpZ2UgUG9zaXRpb25z
LVphaGxlbiBkZXIgYmV0ZWlsaWd0ZW4gUGVyc29uZW4gKHNvcnRpZXJ0IGF1ZnN0ZWlnZW5kKQog
ICAgICAgIC8vIGJsZWliZW4gZXJoYWx0ZW4g4oCUIHNpZSB3ZXJkZW4gbnVyIG5ldSB6dWdlb3Jk
bmV0LiBTbyBnZWh0IGRpZSBTdHJ1a3R1cgogICAgICAgIC8vIGF1cyBkZW0gRXhjZWwtSW1wb3J0
ICgxMTEsIDExMiwgMTIxLCAuLi4pIG5pY2h0IHZlcmxvcmVuLgogICAgICAgIHZhciBwb3NpdGlv
bmVuQWx0ID0gaWRzTmV1Lm1hcChmdW5jdGlvbihpZCkgewogICAgICAgICAgICB2YXIgcCA9ICha
LnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCA9
PT0gaWQ7IH0pOwogICAgICAgICAgICByZXR1cm4gcCAmJiBwLnBvc2l0aW9uICE9IG51bGwgPyBw
LnBvc2l0aW9uIDogOTk5OTsKICAgICAgICB9KS5zbGljZSgpLnNvcnQoZnVuY3Rpb24oYSwgYikg
eyByZXR1cm4gYSAtIGI7IH0pOwogICAgICAgIHZhciByZWloZSA9IGlkc05ldS5tYXAoZnVuY3Rp
b24oaWQsIGkpIHsKICAgICAgICAgICAgcmV0dXJuIHsgaWQ6IGlkLCBwb3NpdGlvbjogcG9zaXRp
b25lbkFsdFtpXSB9OwogICAgICAgIH0pOwogICAgICAgIGFwaVB1dCgnL2FwaS9wZXJzb25lbi9y
ZWloZW5mb2xnZScsIHJlaWhlKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZWloZS5m
b3JFYWNoKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgICAgIHZhciBwID0gKFoucGxhbnVuZy5w
ZXJzb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbih4KSB7IHJldHVybiB4LmlkID09PSByLmlkOyB9
KTsKICAgICAgICAgICAgICAgIGlmIChwKSBwLnBvc2l0aW9uID0gci5wb3NpdGlvbjsKICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgIG1vZGFsU2NobGllc3NlbigpOwogICAgICAgICAgICBwZXJz
b25lbk5ldUF1ZmJhdWVuKCk7CiAgICAgICAgICAgIHBlcnNvbmFsVGFiZWxsZVJlbmRlcm4oKTsK
ICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lblJlbmRlcm4gPT09ICdmdW5jdGlvbicpIHsKICAg
ICAgICAgICAgICAgIG5hbWVuUmVuZGVybigpOwogICAgICAgICAgICAgICAgZGF0ZW5HcmlkUmVu
ZGVybigpOwogICAgICAgICAgICAgICAga29wZlJlbmRlcm4oKTsKICAgICAgICAgICAgfQogICAg
ICAgICAgICB0b2FzdCgnUmVpaGVuZm9sZ2UgZ2VzcGVpY2hlcnQgKCcgKyByZWloZS5sZW5ndGgg
KyAnIFBlcnNvbmVuKScsICdlcmZvbGcnKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7
IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICB9KTsKfQoK
Ly8gPT09PT0gQWRtaW46IFJhbmcgaW5saW5lIGVkaXRpZXJlbiAobnVyIFN1cGVyVXNlcikgPT09
PT0KCi8vIEVyc2V0enQgZGFzIC5yYW5nLWVkaXQtU3BhbiBkdXJjaCBlaW4gbnVtYmVyLUlucHV0
LiBFbnRlci9CbHVyIHNwZWljaGVydCwKLy8gRXNjYXBlIGJyaWNodCBhYi4gQmVpbSBTcGVpY2hl
cm4gd2lyZCBudXIgZGllIFJvaHphaGwgcGVyc2lzdGllcnQg4oCUIGRpZQovLyBTb3J0aWVydW5n
IGluIGRlciBQbGFudGFmZWwgZXJnaWJ0IHNpY2ggdWViZXIgcGVyc29uZW5OZXVBdWZiYXVlbigp
LgpleHBvcnQgZnVuY3Rpb24gcmFuZ0lubGluZUVkaXQoaWQsIHNwYW4pIHsKICAgIGlmICghWi5y
ZWNodGUuaXN0U3VwZXJVc2VyKSByZXR1cm47CiAgICB2YXIgcGVyc29uID0gKFoucGxhbnVuZy5w
ZXJzb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbihwKSB7IHJldHVybiBwLmlkID09PSBpZDsgfSk7
CiAgICBpZiAoIXBlcnNvbikgcmV0dXJuOwogICAgdmFyIGFsdCA9IHBlcnNvbi5wb3NpdGlvbiAh
PSBudWxsID8gcGVyc29uLnBvc2l0aW9uIDogJyc7CgogICAgdmFyIGlucHV0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgIGlucHV0LnR5cGUgPSAnbnVtYmVyJzsKICAgIGlu
cHV0Lm1pbiA9ICcwJzsKICAgIGlucHV0LnN0ZXAgPSAnMSc7CiAgICBpbnB1dC52YWx1ZSA9IFN0
cmluZyhhbHQpOwogICAgaW5wdXQuY2xhc3NOYW1lID0gJ3JhbmctZWRpdC1pbnB1dCc7CiAgICBz
cGFuLnJlcGxhY2VXaXRoKGlucHV0KTsKICAgIGlucHV0LmZvY3VzKCk7CiAgICBpbnB1dC5zZWxl
Y3QoKTsKCiAgICB2YXIgYWJnZXNjaGxvc3NlbiA9IGZhbHNlOwogICAgZnVuY3Rpb24gdWViZXJu
ZWhtZW4oKSB7CiAgICAgICAgaWYgKGFiZ2VzY2hsb3NzZW4pIHJldHVybjsKICAgICAgICBhYmdl
c2NobG9zc2VuID0gdHJ1ZTsKICAgICAgICB2YXIgdiA9IGlucHV0LnZhbHVlLnRyaW0oKTsKICAg
ICAgICB2YXIgbmV1ID0gdiA9PT0gJycgPyBudWxsIDogcGFyc2VJbnQodiwgMTApOwogICAgICAg
IGlmICh2ICE9PSAnJyAmJiAoaXNOYU4obmV1KSB8fCBuZXUgPCAwKSkgewogICAgICAgICAgICB0
b2FzdCgnVW5nw7xsdGlnZSBSYW5nemFobCcsICd3YXJudW5nJyk7CiAgICAgICAgICAgIHBlcnNv
bmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAg
ICBpZiAobmV1ID09PSBhbHQgfHwgKG5ldSA9PSBudWxsICYmIGFsdCA9PT0gJycpKSB7CiAgICAg
ICAgICAgIHBlcnNvbmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgIH0KICAgICAgICBhcGlQdXQoJy9hcGkvcGVyc29uZW4vJyArIGlkLCB7IHBvc2l0aW9uOiBu
ZXUgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgcGVyc29uLnBvc2l0aW9uID0gbmV1
OwogICAgICAgICAgICBwZXJzb25lbk5ldUF1ZmJhdWVuKCk7CiAgICAgICAgICAgIHBlcnNvbmFs
VGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lblJlbmRlcm4gPT09
ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgICAgIG5hbWVuUmVuZGVybigpOwogICAgICAgICAg
ICAgICAgZGF0ZW5HcmlkUmVuZGVybigpOwogICAgICAgICAgICAgICAga29wZlJlbmRlcm4oKTsK
ICAgICAgICAgICAgfQogICAgICAgICAgICB0b2FzdCgnUmFuZyBha3R1YWxpc2llcnQnLCAnZXJm
b2xnJyk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgICAgICB0b2FzdCgn
RmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7CiAgICAgICAgICAgIHBlcnNvbmFsVGFi
ZWxsZVJlbmRlcm4oKTsKICAgICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGFiYnJlY2hlbigp
IHsKICAgICAgICBpZiAoYWJnZXNjaGxvc3NlbikgcmV0dXJuOwogICAgICAgIGFiZ2VzY2hsb3Nz
ZW4gPSB0cnVlOwogICAgICAgIHBlcnNvbmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgIH0KCiAgICBp
bnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgIGlm
IChlLmtleSA9PT0gJ0VudGVyJykgICAgICAgeyBlLnByZXZlbnREZWZhdWx0KCk7IHVlYmVybmVo
bWVuKCk7IH0KICAgICAgICBlbHNlIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHsgZS5wcmV2ZW50
RGVmYXVsdCgpOyBhYmJyZWNoZW4oKTsgfQogICAgfSk7CiAgICBpbnB1dC5hZGRFdmVudExpc3Rl
bmVyKCdibHVyJywgdWViZXJuZWhtZW4pOwp9CgovLyA9PT09PSBBZG1pbjogRGllbnN0Z3JhZCBp
bmxpbmUgZWRpdGllcmVuIChudXIgU3VwZXJVc2VyKSA9PT09PQoKZXhwb3J0IGZ1bmN0aW9uIGRp
ZW5zdGdyYWRJbmxpbmVFZGl0KGlkLCBzcGFuKSB7CiAgICBpZiAoIVoucmVjaHRlLmlzdFN1cGVy
VXNlcikgcmV0dXJuOwogICAgdmFyIHBlcnNvbiA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10p
LmZpbmQoZnVuY3Rpb24ocCkgeyByZXR1cm4gcC5pZCA9PT0gaWQ7IH0pOwogICAgaWYgKCFwZXJz
b24pIHJldHVybjsKICAgIHZhciBhbHQgPSBwZXJzb24uZGllbnN0Z3JhZCB8fCAnJzsKCiAgICB2
YXIgc2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7CiAgICBzZWwuY2xhc3NO
YW1lID0gJ2RpZW5zdGdyYWQtZWRpdC1pbnB1dCc7CiAgICB2YXIgbGVlck9wdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgbGVlck9wdC52YWx1ZSA9ICcnOwogICAgbGVl
ck9wdC50ZXh0Q29udGVudCA9ICfigJQgb2huZSDigJQnOwogICAgaWYgKCFhbHQpIGxlZXJPcHQu
c2VsZWN0ZWQgPSB0cnVlOwogICAgc2VsLmFwcGVuZENoaWxkKGxlZXJPcHQpOwogICAgZ2V0RGll
bnN0Z3JhZGUoKS5mb3JFYWNoKGZ1bmN0aW9uKGcpIHsKICAgICAgICB2YXIgbyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICAgIG8udmFsdWUgPSBnOwogICAgICAgIG8u
dGV4dENvbnRlbnQgPSBnOwogICAgICAgIGlmIChnID09PSBhbHQpIG8uc2VsZWN0ZWQgPSB0cnVl
OwogICAgICAgIHNlbC5hcHBlbmRDaGlsZChvKTsKICAgIH0pOwogICAgc3Bhbi5yZXBsYWNlV2l0
aChzZWwpOwogICAgc2VsLmZvY3VzKCk7CgogICAgdmFyIGFiZ2VzY2hsb3NzZW4gPSBmYWxzZTsK
ICAgIGZ1bmN0aW9uIHVlYmVybmVobWVuKCkgewogICAgICAgIGlmIChhYmdlc2NobG9zc2VuKSBy
ZXR1cm47CiAgICAgICAgYWJnZXNjaGxvc3NlbiA9IHRydWU7CiAgICAgICAgdmFyIG5ldSA9IHNl
bC52YWx1ZSB8fCAnJzsKICAgICAgICBpZiAobmV1ID09PSBhbHQpIHsgcGVyc29uYWxUYWJlbGxl
UmVuZGVybigpOyByZXR1cm47IH0KICAgICAgICBhcGlQdXQoJy9hcGkvcGVyc29uZW4vJyArIGlk
LCB7IGRpZW5zdGdyYWQ6IG5ldSB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBwZXJz
b24uZGllbnN0Z3JhZCA9IG5ldTsKICAgICAgICAgICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigp
OwogICAgICAgICAgICBpZiAodHlwZW9mIG5hbWVuUmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykgbmFt
ZW5SZW5kZXJuKCk7CiAgICAgICAgICAgIHRvYXN0KG5ldSA/ICgnRGllbnN0Z3JhZDogJyArIG5l
dSkgOiAnRGllbnN0Z3JhZCBlbnRmZXJudCcsICdlcmZvbGcnKTsKICAgICAgICB9KS5jYXRjaChm
dW5jdGlvbihlKSB7CiAgICAgICAgICAgIHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdm
ZWhsZXInKTsKICAgICAgICAgICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgICAgIH0p
OwogICAgfQogICAgZnVuY3Rpb24gYWJicmVjaGVuKCkgewogICAgICAgIGlmIChhYmdlc2NobG9z
c2VuKSByZXR1cm47CiAgICAgICAgYWJnZXNjaGxvc3NlbiA9IHRydWU7CiAgICAgICAgcGVyc29u
YWxUYWJlbGxlUmVuZGVybigpOwogICAgfQogICAgc2VsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5n
ZScsIHVlYmVybmVobWVuKTsKICAgIHNlbC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgdWViZXJu
ZWhtZW4pOwogICAgc2VsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7
CiAgICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykgeyBlLnByZXZlbnREZWZhdWx0KCk7IGFi
YnJlY2hlbigpOyB9CiAgICB9KTsKfQoKLy8gPT09PT0gQWRtaW46IEZ1bmt0aW9uIGlubGluZSBl
ZGl0aWVyZW4gKG51ciBTdXBlclVzZXIpID09PT09CgovLyBFcnNldHp0IGRhcyAuZnVua3Rpb24t
ZWRpdC1TcGFuIGR1cmNoIGVpbiBEcm9wZG93bi4gQ2hhbmdlL0JsdXIgc3BlaWNoZXJ0LAovLyBF
c2NhcGUgYnJpY2h0IGFiLiBBZW5kZXJ1bmcgZ3JlaWZ0IGRpcmVrdCBpbiBkZ2xzSW5TY2hpY2h0
KCkg4oCUIGRpZSBQbGFuLQovLyB0YWZlbCB1bmQgQmVzZXR6dW5nc2tvbnRyb2xsZSByZWNobmVu
IGF1dG9tYXRpc2NoIG5hY2guCmV4cG9ydCBmdW5jdGlvbiBmdW5rdGlvbklubGluZUVkaXQoaWQs
IHNwYW4pIHsKICAgIGlmICghWi5yZWNodGUuaXN0U3VwZXJVc2VyKSByZXR1cm47CiAgICB2YXIg
cGVyc29uID0gKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbihwKSB7IHJl
dHVybiBwLmlkID09PSBpZDsgfSk7CiAgICBpZiAoIXBlcnNvbikgcmV0dXJuOwogICAgdmFyIGFs
dCA9IHBlcnNvbi5mdW5rdGlvbiB8fCAnJzsKCiAgICB2YXIgc2VsID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc2VsZWN0Jyk7CiAgICBzZWwuY2xhc3NOYW1lID0gJ2Z1bmt0aW9uLWVkaXQtaW5w
dXQnOwogICAgdmFyIGxlZXJPcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsK
ICAgIGxlZXJPcHQudmFsdWUgPSAnJzsKICAgIGxlZXJPcHQudGV4dENvbnRlbnQgPSAn4oCUIG9o
bmUg4oCUJzsKICAgIGlmICghYWx0KSBsZWVyT3B0LnNlbGVjdGVkID0gdHJ1ZTsKICAgIHNlbC5h
cHBlbmRDaGlsZChsZWVyT3B0KTsKICAgIGdldEZ1bmt0aW9uZW4oKS5mb3JFYWNoKGZ1bmN0aW9u
KGYpIHsKICAgICAgICB2YXIgbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwog
ICAgICAgIG8udmFsdWUgPSBmLmNvZGU7CiAgICAgICAgby50ZXh0Q29udGVudCA9IGYuY29kZTsK
ICAgICAgICBpZiAoZi5jb2RlID09PSBhbHQpIG8uc2VsZWN0ZWQgPSB0cnVlOwogICAgICAgIHNl
bC5hcHBlbmRDaGlsZChvKTsKICAgIH0pOwogICAgc3Bhbi5yZXBsYWNlV2l0aChzZWwpOwogICAg
c2VsLmZvY3VzKCk7CgogICAgdmFyIGFiZ2VzY2hsb3NzZW4gPSBmYWxzZTsKICAgIGZ1bmN0aW9u
IHVlYmVybmVobWVuKCkgewogICAgICAgIGlmIChhYmdlc2NobG9zc2VuKSByZXR1cm47CiAgICAg
ICAgYWJnZXNjaGxvc3NlbiA9IHRydWU7CiAgICAgICAgdmFyIG5ldSA9IHNlbC52YWx1ZSB8fCAn
JzsKICAgICAgICBpZiAobmV1ID09PSBhbHQpIHsgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOyBy
ZXR1cm47IH0KICAgICAgICBhcGlQdXQoJy9hcGkvcGVyc29uZW4vJyArIGlkLCB7IGZ1bmt0aW9u
OiBuZXUgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgcGVyc29uLmZ1bmt0aW9uID0g
bmV1OwogICAgICAgICAgICBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICAgICAgICAgIHRv
YXN0KG5ldSA/ICgnRnVua3Rpb24gZ2VzZXR6dDogJyArIG5ldSkgOiAnRnVua3Rpb24gZW50ZmVy
bnQnLCAnZXJmb2xnJyk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgICAg
ICB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7CiAgICAgICAgICAgIHBl
cnNvbmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGFi
YnJlY2hlbigpIHsKICAgICAgICBpZiAoYWJnZXNjaGxvc3NlbikgcmV0dXJuOwogICAgICAgIGFi
Z2VzY2hsb3NzZW4gPSB0cnVlOwogICAgICAgIHBlcnNvbmFsVGFiZWxsZVJlbmRlcm4oKTsKICAg
IH0KICAgIHNlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB1ZWJlcm5laG1lbik7CiAgICBz
ZWwuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHVlYmVybmVobWVuKTsKICAgIHNlbC5hZGRFdmVu
dExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgIGlmIChlLmtleSA9PT0g
J0VzY2FwZScpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBhYmJyZWNoZW4oKTsgfQogICAgfSk7Cn0K
Ci8vID09PT09IEFkbWluOiBBbnNwcmVjaHBhcnRuZXItRmxhZyBpbmxpbmUgdG9nZ2xlbiAoU3Vw
ZXJVc2VyIG9ubHkpID09PT09Ci8vCi8vIEtsaWNrIGF1ZiBkYXMgU3ltYm9sIGluIGRlciBTcGFs
dGUg4oCeQW5zcHJlY2hwYXJ0bmVyIiB0b2dnbGV0IGRhcyBGbGFnCi8vIHAuaXN0QW5zcHJlY2hw
YXJ0bmVyLiBTZWl0IDIwMjYtMDUtMjUgb2huZSBGdW5rdGlvbnMtL0RpZW5zdGdydXBwZW4tCi8v
IEdhdGluZyDigJQgamVkZSBQZXJzb24ga2FubiB0aGVvcmV0aXNjaCBhbHMgQW5zcHJlY2hwYXJ0
bmVyIGJlbmFubnQgd2VyZGVuLgpleHBvcnQgZnVuY3Rpb24gYW5zcHJlY2hwYXJ0bmVySW5saW5l
VG9nZ2xlKGlkKSB7CiAgICBpZiAoIVoucmVjaHRlLmlzdFN1cGVyVXNlcikgcmV0dXJuOwogICAg
dmFyIHBlcnNvbiA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24ocCkg
eyByZXR1cm4gcC5pZCA9PT0gaWQ7IH0pOwogICAgaWYgKCFwZXJzb24pIHJldHVybjsKICAgIHZh
ciBuZXUgPSAhcGVyc29uLmlzdEFuc3ByZWNocGFydG5lcjsKICAgIGFwaVB1dCgnL2FwaS9wZXJz
b25lbi8nICsgaWQsIHsgaXN0QW5zcHJlY2hwYXJ0bmVyOiBuZXUgfSkudGhlbihmdW5jdGlvbigp
IHsKICAgICAgICBwZXJzb24uaXN0QW5zcHJlY2hwYXJ0bmVyID0gbmV1OwogICAgICAgIHBlcnNv
bmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICB0b2FzdChuZXUgPyAnQWxzIEFuc3ByZWNocGFy
dG5lciBtYXJraWVydCcgOiAnQW5zcHJlY2hwYXJ0bmVyLU1hcmtpZXJ1bmcgZW50ZmVybnQnLCAn
ZXJmb2xnJyk7CiAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgdG9hc3QoJ0ZlaGxl
cjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOwogICAgICAgIHBlcnNvbmFsVGFiZWxsZVJlbmRl
cm4oKTsKICAgIH0pOwp9CgovLyA9PT09PSBBZG1pbjogUGVyc29uIGF1cyBkZXIgUGxhbnVuZyBl
aW4tL2F1c2JsZW5kZW4gKFN1cGVyVXNlcikgPT09PT0KCi8vIFByby1QZXJzb24tU2ljaHRiYXJr
ZWl0IGluIFBsYW51bmdzYW5zaWNodC9Xb2NoZW5wbGFuL1BlcnMuIFBsYW4uIFNldHp0Ci8vIHBl
cnNvbi5pblBsYW51bmcgKGZhbHNlID0gYXVzZ2VibGVuZGV0KSB1bmQgYmF1dCBkaWUgUGVyc29u
ZW5saXN0ZSArCi8vIGRhcyBHcmlkIG5ldSBhdWYsIGRhbWl0IGRpZSBQZXJzb24gc29mb3J0IGVy
c2NoZWludC92ZXJzY2h3aW5kZXQuCmV4cG9ydCBmdW5jdGlvbiBpblBsYW51bmdJbmxpbmVUb2dn
bGUoaWQpIHsKICAgIGlmICghWi5yZWNodGUuaXN0U3VwZXJVc2VyKSByZXR1cm47CiAgICB2YXIg
cGVyc29uID0gKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbihwKSB7IHJl
dHVybiBwLmlkID09PSBpZDsgfSk7CiAgICBpZiAoIXBlcnNvbikgcmV0dXJuOwogICAgdmFyIG5l
dVNpY2h0YmFyID0gcGVyc29uLmluUGxhbnVuZyA9PT0gZmFsc2U7ICAgLy8gYWt0dWVsbCBhdXNn
ZWJsZW5kZXQgLT4gd2llZGVyIGVpbmJsZW5kZW4KICAgIHZhciBuZXVJblBsYW51bmcgPSAhIW5l
dVNpY2h0YmFyOyAgICAgICAgICAgICAgIC8vIHRydWUgPSBzaWNodGJhciwgZmFsc2UgPSBhdXNn
ZWJsZW5kZXQKICAgIGFwaVB1dCgnL2FwaS9wZXJzb25lbi8nICsgaWQsIHsgaW5QbGFudW5nOiBu
ZXVJblBsYW51bmcgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICBwZXJzb24uaW5QbGFudW5n
ID0gbmV1SW5QbGFudW5nOwogICAgICAgIHBlcnNvbmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAg
ICAvLyBQbGFudW5ncy1HcmlkIG5ldSBhdWZiYXVlbiDigJQgUGVyc29uIGVyc2NoZWludC92ZXJz
Y2h3aW5kZXQgc29mb3J0LgogICAgICAgIHBlcnNvbmVuTmV1QXVmYmF1ZW4oKTsKICAgICAgICBp
ZiAodHlwZW9mIG5hbWVuUmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykgeyBuYW1lblJlbmRlcm4oKTsg
ZGF0ZW5HcmlkUmVuZGVybigpOyBrb3BmUmVuZGVybigpOyB9CiAgICAgICAgdG9hc3QobmV1SW5Q
bGFudW5nID8gJ1BlcnNvbiB3aXJkIGluIGRlciBQbGFudW5nIGFuZ2V6ZWlndCcgOiAnUGVyc29u
IGluIGRlciBQbGFudW5nIGF1c2dlYmxlbmRldCcsICdlcmZvbGcnKTsKICAgIH0pLmNhdGNoKGZ1
bmN0aW9uKGUpIHsKICAgICAgICB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVy
Jyk7CiAgICAgICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgfSk7Cn0KCi8vID09PT09
IEFkbWluOiBWSTMgREdMIGlubGluZSB0b2dnbGVuIChTdXBlclVzZXIsIGZ1ZXIgYWxsZSBQZXJz
b25lbikgPT09PT0KCi8vIEJvb2wtSW5saW5lLUVkaXQgb2huZSBFZGl0LU1vZHVzOiBTaW5nbGUt
S2xpY2sgYXVmIGRhcyBTeW1ib2wgdG9nZ2xldAovLyBkYXMgYGVsRGdsUXVhbGlmaXppZXJ0YC1G
bGFnIGRlciBQZXJzb24sIHNwZWljaGVydCB2aWEgUFVUIHVuZCByZW5kZXJ0Ci8vIGRpZSBUYWJl
bGxlIG5ldS4gRnJ1ZWhlciBudXIgZnVlciAzLiBNYW5uL0ZyYXUsIHNlaXQgMjAyNi0wNS0yMyBm
dWVyCi8vIGFsbGUgUGVyc29uZW4gKGF1Y2ggREdML0RHTGluL0F0LURHTC9XREYgbXVlc3NlbiBl
eHBsaXppdCBxdWFsaWZpemllcnQKLy8gd2VyZGVuLCB3ZW5uIGRhcyBnZXd1ZW5zY2h0IGlzdCDi
gJQgSW1wbGljaXQtREdMLUxvZ2lrIGluCi8vIGlzdERnbFF1YWxpZml6aWVydCgpIGJsZWlidCBh
YmVyIGFscyBGYWxsYmFjayBiZXN0ZWhlbikuCmV4cG9ydCBmdW5jdGlvbiBlbGRnbElubGluZVRv
Z2dsZShpZCkgewogICAgaWYgKCFaLnJlY2h0ZS5pc3RTdXBlclVzZXIpIHJldHVybjsKICAgIHZh
ciBwZXJzb24gPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHApIHsg
cmV0dXJuIHAuaWQgPT09IGlkOyB9KTsKICAgIGlmICghcGVyc29uKSByZXR1cm47CiAgICB2YXIg
bmV1ID0gIXBlcnNvbi5lbERnbFF1YWxpZml6aWVydDsKICAgIGFwaVB1dCgnL2FwaS9wZXJzb25l
bi8nICsgaWQsIHsgZWxEZ2xRdWFsaWZpemllcnQ6IG5ldSB9KS50aGVuKGZ1bmN0aW9uKCkgewog
ICAgICAgIHBlcnNvbi5lbERnbFF1YWxpZml6aWVydCA9IG5ldTsKICAgICAgICBwZXJzb25hbFRh
YmVsbGVSZW5kZXJuKCk7CiAgICAgICAgdG9hc3QobmV1ID8gJ1ZJMyBER0wgcXVhbGlmaXppZXJ0
JyA6ICdWSTMgREdMIFF1YWxpZml6aWVydW5nIGVudGZlcm50JywgJ2VyZm9sZycpOwogICAgfSku
Y2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgIHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2Us
ICdmZWhsZXInKTsKICAgICAgICBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICB9KTsKfQoK
Ly8gYXZhdGFyVXJsIC8gYXZhdGFySW5pdGlhbGVuIC8gYXZhdGFyS3JlaXNIdG1sIGxlYmVuIGlu
IGNvcmVfdXRpbC5qcywKLy8gZGFtaXQgZ3JpZF9yZW5kZXIuanMgLyB3b2NoZW5wbGFuLmpzIHNp
ZSBlYmVuZmFsbHMgbnV0emVuIGtvZW5uZW4uCgovLyA9PT09PSBQZXJzb24tSG92ZXItUG9wb3Zl
ciA9PT09PQovLyBTY2h3ZWJlbmRlcyBNaW5pLU1vZGFsIG1pdCBBdmF0YXIsIFN0YW1tZGF0ZW4g
KyAxNC1UYWdlLVNjaGljaHQtVm9yc2NoYXUuCi8vIFdpcmQgZHVyY2ggbW91c2VvdmVyIGF1ZiAu
bmFtZW4temVpbGUgLyAucGVyc29uYWwtbmFtZS16ZWxsZSAvIFdvY2hlbi0KLy8gcGxhbi1OYW1l
bnMtRWxlbWVudGUgZ2V0cmlnZ2VydCAoRXZlbnQtRGVsZWdhdGlvbiBpbiBhcHAuanMpLiBTaW5n
bGUtCi8vIEluc3RhbnogaW0gQm9keSwgbmV1IGJlZnVlbGx0ICsgcG9zaXRpb25pZXJ0IGJlaSBq
ZWRlbSBUcmlnZ2VyLgoKdmFyIHBwX3plaWdlVGltZXIgPSBudWxsOwp2YXIgcHBfdmVyc3RlY2tU
aW1lciA9IG51bGw7CgpmdW5jdGlvbiBwcF9uYWVjaHN0ZTE0VGFnZSgpIHsKICAgIHZhciB0YWdl
ID0gW107CiAgICB2YXIgaGV1dGUgPSBuZXcgRGF0ZSgpOwogICAgaGV1dGUuc2V0SG91cnMoMCwg
MCwgMCwgMCk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDE0OyBpKyspIHsKICAgICAgICB2YXIg
ZCA9IG5ldyBEYXRlKGhldXRlLmdldFRpbWUoKSArIGkgKiA4NjQwMDAwMCk7CiAgICAgICAgdGFn
ZS5wdXNoKGQpOwogICAgfQogICAgcmV0dXJuIHRhZ2U7Cn0KCmZ1bmN0aW9uIHBwX2h0bWwocGVy
c29uKSB7CiAgICB2YXIgZGcgICA9IHBlcnNvbi5kaWVuc3RncmFkIHx8ICcnOwogICAgdmFyIG5h
bWUgPSAoKHBlcnNvbi52b3JuYW1lIHx8ICcnKSArICcgJyArIHBlcnNvbi5uYW1lKS50cmltKCk7
CiAgICB2YXIgZmt0ICA9IHBlcnNvbi5mdW5rdGlvbiB8fCAn4oCUJzsKICAgIC8vIERpZW5zdGdy
dXBwZW4tQmV6ZWljaG51bmcgc3RhdHQgbnVyIEt1ZXJ6ZWwgKCJBIiAtPiAiR3J1cHBlIEEg4oCU
IFdlc3RmYWxlbiBOb3JkIiBvLmFlLikKICAgIHZhciBncnVwcGUgPSBwZXJzb24uZ3J1cHBlIHx8
ICcnOwogICAgdmFyIGdydXBwZUFueiA9IGdydXBwZTsKICAgIGlmIChncnVwcGUgJiYgWi5ncnVw
cGVuTWFwICYmIFouZ3J1cHBlbk1hcFtncnVwcGVdICYmIFouZ3J1cHBlbk1hcFtncnVwcGVdLmJl
emVpY2hudW5nKSB7CiAgICAgICAgZ3J1cHBlQW56ID0gZ3J1cHBlICsgJyDigJQgJyArIFouZ3J1
cHBlbk1hcFtncnVwcGVdLmJlemVpY2hudW5nOwogICAgfQogICAgaWYgKCFncnVwcGVBbnopIGdy
dXBwZUFueiA9ICfigJQnOwogICAgLy8gU3RhbmRvcnQtS3VlcnplbCAtPiBWb2xsZXIgTmFtZSAo
VXNlci1GZWVkYmFjayAyMDI2LTA1LTIzKTogIkFSIiAtPiAiQXJuc2JlcmciLgogICAgdmFyIG9l
S3VlcnplbCA9IHBlcnNvbi5vZSB8fCAnJzsKICAgIHZhciBvZUFueiA9IG9lS3VlcnplbDsKICAg
IGlmIChvZUt1ZXJ6ZWwgJiYgWi5hZG1pbiAmJiBaLmFkbWluLnN0YW5kb3J0ZSkgewogICAgICAg
IHZhciBzdCA9IFouYWRtaW4uc3RhbmRvcnRlLmZpbmQoZnVuY3Rpb24ocykgewogICAgICAgICAg
ICByZXR1cm4gKHMua3VlcnplbCB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gb2VLdWVyemVsLnRv
TG93ZXJDYXNlKCk7CiAgICAgICAgfSk7CiAgICAgICAgaWYgKHN0ICYmIHN0Lm5hbWUpIG9lQW56
ID0gc3QubmFtZTsKICAgIH0KICAgIGlmICghb2VBbnopIG9lQW56ID0gJ+KAlCc7CiAgICB2YXIg
dGVsICA9IHBlcnNvbi50ZWxlZm9uIHx8ICcnOwoKICAgIHZhciBoZXV0ZVRzID0gbmV3IERhdGUo
bmV3IERhdGUoKS5zZXRIb3VycygwLDAsMCwwKSkuZ2V0VGltZSgpOwogICAgdmFyIHRhZ2VIdG1s
ID0gcHBfbmFlY2hzdGUxNFRhZ2UoKS5tYXAoZnVuY3Rpb24oZCkgewogICAgICAgIHZhciBkU3Ry
ID0gZGF0dW1TdHIoZCk7CiAgICAgICAgdmFyIGUgPSAoWi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7
fSlbZFN0cl0gfHwge307CiAgICAgICAgdmFyIGNvZGUgPSBlW1N0cmluZyhwZXJzb24uaWQpXSB8
fCAnJzsKICAgICAgICB2YXIgZmFyYmVuID0gKFouY29kZU1hcCB8fCB7fSlbY29kZV0gfHwge307
CiAgICAgICAgdmFyIGJnID0gZmFyYmVuLmhpbnRlcmdydW5kIHx8ICcnOwogICAgICAgIHZhciBm
ZyA9IGZhcmJlbi5zY2hyaWZ0IHx8ICcnOwogICAgICAgIHZhciB3dCA9IFsnU28nLCdNbycsJ0Rp
JywnTWknLCdEbycsJ0ZyJywnU2EnXVtkLmdldERheSgpXTsKICAgICAgICB2YXIgaXN0V0UgPSAo
ZC5nZXREYXkoKSA9PT0gMCB8fCBkLmdldERheSgpID09PSA2KTsKICAgICAgICB2YXIgZGQgPSAo
JzAnICsgZC5nZXREYXRlKCkpLnNsaWNlKC0yKTsKICAgICAgICB2YXIgbW0gPSAoJzAnICsgKGQu
Z2V0TW9udGgoKSArIDEpKS5zbGljZSgtMik7CiAgICAgICAgdmFyIGlzdEhldXRlID0gKGQuZ2V0
VGltZSgpID09PSBoZXV0ZVRzKTsKICAgICAgICB2YXIgYW56ZWlnZSA9IGZhcmJlbi5rdWVyemVs
IHx8IGNvZGUgfHwgJ+KAlCc7CiAgICAgICAgdmFyIGNvZGVTdHlsZSA9ICcnOwogICAgICAgIGlm
IChiZykgY29kZVN0eWxlID0gJ2JhY2tncm91bmQ6JyArIGVzY2FwZUF0dHIoYmcpICsgJztjb2xv
cjonICsgZXNjYXBlQXR0cihmZyB8fCAnIzAwMCcpOwogICAgICAgIHZhciBjbHMgPSAncHB2LXRh
Zyc7CiAgICAgICAgaWYgKGlzdEhldXRlKSBjbHMgKz0gJyBwcHYtdGFnLWhldXRlJzsKICAgICAg
ICBpZiAoaXN0V0UpICAgIGNscyArPSAnIHBwdi10YWctd2UnOwogICAgICAgIGlmICghY29kZSkg
ICAgY2xzICs9ICcgcHB2LXRhZy1sZWVyJzsKICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9Iicg
KyBjbHMgKyAnIj4nICsKICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJwcHYtdGFnLXd0Ij4nICsg
d3QgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9InBwdi10YWctZGF0dW0i
PicgKyBkZCArICcuJyArIG1tICsgJy48L3NwYW4+JyArCiAgICAgICAgICAgICc8c3BhbiBjbGFz
cz0icHB2LXRhZy1jb2RlIiBzdHlsZT0iJyArIGNvZGVTdHlsZSArICciPicgKyBlc2NhcGVIVE1M
KGFuemVpZ2UpICsgJzwvc3Bhbj4nICsKICAgICAgICAnPC9kaXY+JzsKICAgIH0pLmpvaW4oJycp
OwoKICAgIHJldHVybiAnPGRpdiBjbGFzcz0icHB2LWtvcGYiPicgKwogICAgICAgICAgICAnPGRp
diBjbGFzcz0icHB2LWF2YXRhciI+JyArIGF2YXRhcktyZWlzSHRtbChwZXJzb24sIDU2KSArICc8
L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9InBwdi1rb3BmLXRleHQiPicgKwogICAg
ICAgICAgICAgICAgJzxkaXYgY2xhc3M9InBwdi1uYW1lIj4nICsgKGRnID8gZXNjYXBlSFRNTChk
ZykgKyAnICcgOiAnJykgKyBlc2NhcGVIVE1MKG5hbWUpICsgJzwvZGl2PicgKwogICAgICAgICAg
ICAgICAgJzxkaXYgY2xhc3M9InBwdi1tZXRhIj4nICsgZXNjYXBlSFRNTChma3QpICsgJyDCtyAn
ICsgZXNjYXBlSFRNTChncnVwcGVBbnopICsgKG9lQW56ICE9PSAn4oCUJyA/ICcgwrcgJyArIGVz
Y2FwZUhUTUwob2VBbnopIDogJycpICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgKHRlbCA/
ICc8ZGl2IGNsYXNzPSJwcHYtbWV0YSI+VGVsLiAnICsgZXNjYXBlSFRNTCh0ZWwpICsgJzwvZGl2
PicgOiAnJykgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgJzwvZGl2PicgKwogICAg
ICAgICc8ZGl2IGNsYXNzPSJwcHYtdGFnZS10aXRlbCI+TsOkY2hzdGUgMTQgVGFnZTwvZGl2Picg
KwogICAgICAgICc8ZGl2IGNsYXNzPSJwcHYtdGFnZSI+JyArIHRhZ2VIdG1sICsgJzwvZGl2Pic7
Cn0KCmZ1bmN0aW9uIHBwX3Bvc2l0aW9uaWVyZW4ocG9wb3ZlciwgYW5rZXIpIHsKICAgIHZhciBh
ciA9IGFua2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIHZ3ID0gd2luZG93Lmlu
bmVyV2lkdGg7CiAgICB2YXIgdmggPSB3aW5kb3cuaW5uZXJIZWlnaHQ7CiAgICAvLyBQb3BvdmVy
IHVuc2ljaHRiYXIgbWVzc2VuLCBkYW5uIHBvc2l0aW9uaWVyZW4KICAgIHBvcG92ZXIuY2xhc3NM
aXN0LnJlbW92ZSgndmVyc3RlY2t0Jyk7CiAgICBwb3BvdmVyLnN0eWxlLnZpc2liaWxpdHkgPSAn
aGlkZGVuJzsKICAgIHZhciBwdyA9IHBvcG92ZXIub2Zmc2V0V2lkdGg7CiAgICB2YXIgcGggPSBw
b3BvdmVyLm9mZnNldEhlaWdodDsKICAgIHZhciByYW5kID0gODsKICAgIC8vIEJldm9yenVndCBy
ZWNodHMgbmViZW4gZGVtIEFua2VyLCBzb25zdCBsaW5rcwogICAgdmFyIGxlZnQgPSBhci5yaWdo
dCArIHJhbmQ7CiAgICBpZiAobGVmdCArIHB3ID4gdncgLSA2KSBsZWZ0ID0gYXIubGVmdCAtIHB3
IC0gcmFuZDsKICAgIGlmIChsZWZ0IDwgNikgbGVmdCA9IDY7CiAgICAvLyBWZXJ0aWthbDogdG9w
IGFtIEFua2VyLCBhYmVyIG5pY2h0IGFiZ2VzY2huaXR0ZW4KICAgIHZhciB0b3AgPSBhci50b3A7
CiAgICBpZiAodG9wICsgcGggPiB2aCAtIDYpIHRvcCA9IHZoIC0gcGggLSA2OwogICAgaWYgKHRv
cCA8IDYpIHRvcCA9IDY7CiAgICBwb3BvdmVyLnN0eWxlLmxlZnQgPSBNYXRoLnJvdW5kKGxlZnQp
ICsgJ3B4JzsKICAgIHBvcG92ZXIuc3R5bGUudG9wICA9IE1hdGgucm91bmQodG9wKSAgKyAncHgn
OwogICAgcG9wb3Zlci5zdHlsZS52aXNpYmlsaXR5ID0gJyc7Cn0KCmV4cG9ydCBmdW5jdGlvbiBw
ZXJzb25Qb3BvdmVyWmVpZ2VuKHBlcnNvbklkLCBhbmtlckVsKSB7CiAgICBpZiAocHBfdmVyc3Rl
Y2tUaW1lcikgeyBjbGVhclRpbWVvdXQocHBfdmVyc3RlY2tUaW1lcik7IHBwX3ZlcnN0ZWNrVGlt
ZXIgPSBudWxsOyB9CiAgICBpZiAocHBfemVpZ2VUaW1lcikgICB7IGNsZWFyVGltZW91dChwcF96
ZWlnZVRpbWVyKTsgcHBfemVpZ2VUaW1lciA9IG51bGw7IH0KICAgIHBwX3plaWdlVGltZXIgPSBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIHBwX3plaWdlVGltZXIgPSBudWxsOwogICAg
ICAgIHZhciBwZXJzb24gPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9u
KHApIHsgcmV0dXJuIFN0cmluZyhwLmlkKSA9PT0gU3RyaW5nKHBlcnNvbklkKTsgfSk7CiAgICAg
ICAgaWYgKCFwZXJzb24pIHJldHVybjsKICAgICAgICB2YXIgcG9wID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3ZpMy1wZXJzb24tcG9wb3ZlcicpOwogICAgICAgIGlmICghcG9wKSByZXR1cm47
CiAgICAgICAgcG9wLmlubmVySFRNTCA9IHBwX2h0bWwocGVyc29uKTsKICAgICAgICBwb3Auc2V0
QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICdmYWxzZScpOwogICAgICAgIHBwX3Bvc2l0aW9uaWVy
ZW4ocG9wLCBhbmtlckVsKTsKICAgIH0sIDM4MCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBwZXJzb25Q
b3BvdmVyVmVyc3RlY2tlbigpIHsKICAgIGlmIChwcF96ZWlnZVRpbWVyKSB7IGNsZWFyVGltZW91
dChwcF96ZWlnZVRpbWVyKTsgcHBfemVpZ2VUaW1lciA9IG51bGw7IH0KICAgIGlmIChwcF92ZXJz
dGVja1RpbWVyKSBjbGVhclRpbWVvdXQocHBfdmVyc3RlY2tUaW1lcik7CiAgICBwcF92ZXJzdGVj
a1RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICB2YXIgcG9wID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpMy1wZXJzb24tcG9wb3ZlcicpOwogICAgICAgIGlmIChwb3Ap
IHsKICAgICAgICAgICAgcG9wLmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwogICAgICAgICAg
ICBwb3Auc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7CiAgICAgICAgfQogICAg
fSwgMTIwKTsKfQoKLy8gU2VsZi1TZXJ2aWNlOiBrbGVpbmVzIE1pbmktTW9kYWwgbnVyIGZ1ZXIg
ZGVuIEF2YXRhci1CbG9jayBkZXIgZWlnZW5lbgovLyBQZXJzb24uIFdpcmQgdm9tICJtZWluLWF2
YXRhci1idG4iIGluIGRlciBUb3BiYXIgZ2V0cmlnZ2VydC4gU2VydmVyLQovLyBzZWl0aWcgaGFi
ZW4gYWxsZSBVc2VyIGRhcyBSZWNodCwgaWhyZW4gZWlnZW5lbiBBdmF0YXIgenUgcGZsZWdlbgov
LyAoUE9TVCAvYXBpL3BlcnNvbmVuLzxlaWdlbmVJZD4vYXZhdGFyIOKAlCBDaGVjayB2aWEgbWVp
bmVQZXJzb25JZCkuCmV4cG9ydCBmdW5jdGlvbiBtZWluUHJvZmlsTW9kYWxPZWZmbmVuKCkgewog
ICAgaWYgKCFaLnJlY2h0ZSB8fCAhWi5yZWNodGUubWVpbmVQZXJzb25JZCkgewogICAgICAgIHRv
YXN0KCdFaWdlbmUgUGVyc29uIG5pY2h0IHp1Z2VvcmRuZXQg4oCUIFByb2ZpbGJpbGQga2FubiBu
aWNodCBnZXBmbGVndCB3ZXJkZW4nLCAnd2FybnVuZycpOwogICAgICAgIHJldHVybjsKICAgIH0K
ICAgIHZhciBpZCA9IFoucmVjaHRlLm1laW5lUGVyc29uSWQ7CiAgICB2YXIgcGVyc29uID0gKFou
cGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbihwKSB7IHJldHVybiBTdHJpbmco
cC5pZCkgPT09IFN0cmluZyhpZCk7IH0pOwogICAgaWYgKCFwZXJzb24pIHsgdG9hc3QoJ0VpZ2Vu
ZSBQZXJzb24gbmljaHQgaW4gZGVyIFBlcnNvbmFsbGlzdGUgZ2VmdW5kZW4nLCAnd2FybnVuZycp
OyByZXR1cm47IH0KCiAgICB2YXIga29lcnBlciA9IGF2YXRhckJsb2NrSHRtbChwZXJzb24pICsK
ICAgICAgICAnPGRpdiBzdHlsZT0iZm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRl
ZCk7bWFyZ2luLXRvcDo0cHgiPicgKwogICAgICAgICAgICAnSGllciBrYW5uc3QgZHUgZGVpbiBQ
cm9maWxiaWxkIGhvY2hsYWRlbiBvZGVyIGVudGZlcm5lbi4gQW5kZXJlIFN0YW1tZGF0ZW4gJyAr
CiAgICAgICAgICAgICdwZmxlZ3QgZGllIEFkbWluaXN0cmF0aW9uIMO8YmVyIGRpZSBQZXJzb25h
bHZlcndhbHR1bmcuJyArCiAgICAgICAgJzwvZGl2Pic7CiAgICBtb2RhbFplaWdlbignTWVpbiBQ
cm9maWwg4oCUICcgKyAoKHBlcnNvbi52b3JuYW1lIHx8ICcnKSArICcgJyArIHBlcnNvbi5uYW1l
KS50cmltKCksIGtvZXJwZXIsCiAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFl
ciIgdHlwZT0iYnV0dG9uIiBpZD0icHJvZmlsLXNjaGxpZXNzZW4iPlNjaGxpZcOfZW48L2J1dHRv
bj4nLAogICAgICAgIG51bGwsIG51bGwsIHsgcmVpbmVyRGlhbG9nOiB0cnVlIH0pOwogICAgYXZh
dGFyVXBsb2FkSGFuZGxlckJpbmRlbihwZXJzb24sIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBh
dkJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZWluLWF2YXRhci1idG4nKTsKICAgICAg
ICBpZiAoYXZCdG4pIGF2QnRuLmlubmVySFRNTCA9IGF2YXRhcktyZWlzSHRtbChwZXJzb24sIDI4
KTsKICAgIH0pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbC1zY2hsaWVzc2Vu
JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsgbW9kYWxTY2hsaWVzc2Vu
KHRydWUpOyB9KTsKfQoKLy8gQmVmdWVsbHQgZGVuIFRvcGJhci1BdmF0YXIgbWl0IGRlbSBha3R1
ZWxsZW4gQmlsZCBkZXIgZWluZ2Vsb2dndGVuIFBlcnNvbi4KLy8gV2lyZCBiZWltIExvZ2luICsg
bmFjaCBqZWRlbSBBdmF0YXItVXBsb2FkIGF1ZmdlcnVmZW4uCmV4cG9ydCBmdW5jdGlvbiBtZWlu
QXZhdGFyVG9wYmFyQWt0dWFsaXNpZXJlbigpIHsKICAgIHZhciBidG4gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbWVpbi1hdmF0YXItYnRuJyk7CiAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAg
aWYgKCFaLnJlY2h0ZSB8fCAhWi5yZWNodGUubWVpbmVQZXJzb25JZCkgewogICAgICAgIGJ0bi5j
bGFzc0xpc3QuYWRkKCd2ZXJzdGVja3QnKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICB2YXIg
cGVyc29uID0gKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbihwKSB7IHJl
dHVybiBTdHJpbmcocC5pZCkgPT09IFN0cmluZyhaLnJlY2h0ZS5tZWluZVBlcnNvbklkKTsgfSk7
CiAgICBpZiAoIXBlcnNvbikgeyBidG4uY2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7IHJldHVy
bjsgfQogICAgYnRuLmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNrdCcpOwogICAgYnRuLmlubmVy
SFRNTCA9IGF2YXRhcktyZWlzSHRtbChwZXJzb24sIDI4KTsKfQoKZnVuY3Rpb24gYXZhdGFyQmxv
Y2tIdG1sKHBlcnNvbikgewogICAgdmFyIGhhdEJpbGQgPSAhIXBlcnNvbi5hdmF0YXJUczsKICAg
IHZhciBkYXJmRWRpdGllcmVuID0gWi5yZWNodGUgJiYgKAogICAgICAgIFoucmVjaHRlLmlzdFN1
cGVyVXNlciB8fAogICAgICAgIFoucmVjaHRlLmlzdEZhY2hhdWZzaWNodCB8fAogICAgICAgICha
LnJlY2h0ZS5tZWluZVBlcnNvbklkICYmIFN0cmluZyhaLnJlY2h0ZS5tZWluZVBlcnNvbklkKSA9
PT0gU3RyaW5nKHBlcnNvbi5pZCkpCiAgICApOwogICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJkbGct
YXZhdGFyLWJsb2NrIj4nICsKICAgICAgICAnPGRpdiBpZD0iZGxnLWF2YXRhci12b3JzY2hhdSIg
Y2xhc3M9ImRsZy1hdmF0YXItdm9yc2NoYXUiPicgKyBhdmF0YXJLcmVpc0h0bWwocGVyc29uLCA3
MikgKyAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImRsZy1hdmF0YXItYWt0aW9uZW4i
PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZGxnLWF2YXRhci1uYW1lIj4nICsgZXNjYXBl
SFRNTCgoKHBlcnNvbi52b3JuYW1lIHx8ICcnKSArICcgJyArIChwZXJzb24ubmFtZSB8fCAnJykp
LnRyaW0oKSB8fCAnUGVyc29uJykgKyAnPC9kaXY+JyArCiAgICAgICAgICAgIChkYXJmRWRpdGll
cmVuCiAgICAgICAgICAgICAgICA/ICc8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImRsZy1hdmF0YXIt
ZmlsZSIgYWNjZXB0PSJpbWFnZS9qcGVnLGltYWdlL3BuZyxpbWFnZS93ZWJwIiBzdHlsZT0iZGlz
cGxheTpub25lIj4nICsKICAgICAgICAgICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBp
ZD0iZGxnLWF2YXRhci11cGxvYWQiIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iPicgKyAo
aGF0QmlsZCA/ICdCaWxkIMOkbmRlcm4nIDogJ0JpbGQgaG9jaGxhZGVuJykgKyAnPC9idXR0b24+
JyArCiAgICAgICAgICAgICAgICAgIChoYXRCaWxkID8gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBp
ZD0iZGxnLWF2YXRhci1sb2VzY2hlbiIgY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiI+Qmls
ZCBlbnRmZXJuZW48L2J1dHRvbj4nIDogJycpCiAgICAgICAgICAgICAgICA6ICc8ZGl2IGNsYXNz
PSJkbGctYXZhdGFyLWhpbndlaXMiPlByb2ZpbGJpbGQtUGZsZWdlIGlzdCBkZWFrdGl2aWVydCAo
a2VpbmUgQmVyZWNodGlndW5nKS48L2Rpdj4nKSArCiAgICAgICAgJzwvZGl2PicgKwogICAgJzwv
ZGl2Pic7Cn0KCi8vIFNrYWxpZXJ0IGVpbiBGaWxlIGF1ZiAoa29uZmlndXJpZXJiYXJlcykgTnhO
LVF1YWRyYXQgcGVyIGNlbnRlci1jcm9wCi8vIHVuZCBnaWJ0IGVpbmUgSlBFRy1EYXRhLVVSTCB6
dXJ1ZWNrLiBaaWVsZ3JvZXNzZSBzdGV1ZXJ0Ci8vIFouYWRtaW4uYXZhdGFyR3JvZXNzZSAoRGVm
YXVsdCAyMDApLiBTZXJ2ZXIgcHJ1ZWZ0IHp1c2FldHpsaWNoIGRlbgovLyAyNTAtS0ItQnl0ZS1D
YXA7IGRhbWl0IGlzdCBhdWNoIGJlaSA2MDAgcHggZGllIERhdGVpIGtsZWluIGdlbnVnLgpmdW5j
dGlvbiBhdmF0YXJTa2FsaWVyZW4oZmlsZSkgewogICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0
aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGlmICghZmlsZSkgeyByZWplY3QobmV3IEVy
cm9yKCdLZWluIEZpbGUnKSk7IHJldHVybjsgfQogICAgICAgIGlmIChmaWxlLnNpemUgPiA4ICog
MTAyNCAqIDEwMjQpIHsgcmVqZWN0KG5ldyBFcnJvcignRGF0ZWkgenUgZ3Jvc3MgKG1heCA4IE1C
IE9yaWdpbmFsKScpKTsgcmV0dXJuOyB9CiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVh
ZGVyKCk7CiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgcmVqZWN0KG5ldyBF
cnJvcignRGF0ZWkga29ubnRlIG5pY2h0IGdlbGVzZW4gd2VyZGVuJykpOyB9OwogICAgICAgIHJl
YWRlci5vbmxvYWQgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciBpbWcgPSBuZXcgSW1h
Z2UoKTsKICAgICAgICAgICAgaW1nLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgcmVqZWN0KG5ldyBF
cnJvcignS2VpbiBnw7xsdGlnZXMgQmlsZCcpKTsgfTsKICAgICAgICAgICAgaW1nLm9ubG9hZCA9
IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHppZWwgPSBwYXJzZUludCgoWi5hZG1p
biAmJiBaLmFkbWluLmF2YXRhckdyb2Vzc2UpLCAxMCk7CiAgICAgICAgICAgICAgICBpZiAoaXNO
YU4oemllbCkgfHwgemllbCA8IDEwMCkgemllbCA9IDIwMDsKICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKHppZWwgPiA2MDApIHppZWwgPSA2MDA7CiAgICAgICAgICAgICAgICB2YXIgY2FudmFzID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CiAgICAgICAgICAgICAgICBjYW52YXMu
d2lkdGggPSB6aWVsOyBjYW52YXMuaGVpZ2h0ID0gemllbDsKICAgICAgICAgICAgICAgIHZhciBj
dHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKICAgICAgICAgICAgICAgIC8vIENlbnRlci1D
cm9wOiBrbGVpbmVyZSBEaW1lbnNpb24gZGVmaW5pZXJ0IGRhcyBRdWFkcmF0CiAgICAgICAgICAg
ICAgICB2YXIgc3JjID0gTWF0aC5taW4oaW1nLndpZHRoLCBpbWcuaGVpZ2h0KTsKICAgICAgICAg
ICAgICAgIHZhciBzeCA9IChpbWcud2lkdGggIC0gc3JjKSAvIDI7CiAgICAgICAgICAgICAgICB2
YXIgc3kgPSAoaW1nLmhlaWdodCAtIHNyYykgLyAyOwogICAgICAgICAgICAgICAgY3R4LmZpbGxT
dHlsZSA9ICcjZmZmJzsKICAgICAgICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCB6aWVsLCB6
aWVsKTsKICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCBzeCwgc3ksIHNyYywgc3Jj
LCAwLCAwLCB6aWVsLCB6aWVsKTsKICAgICAgICAgICAgICAgIHJlc29sdmUoY2FudmFzLnRvRGF0
YVVSTCgnaW1hZ2UvanBlZycsIDAuODUpKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaW1n
LnNyYyA9IGUudGFyZ2V0LnJlc3VsdDsKICAgICAgICB9OwogICAgICAgIHJlYWRlci5yZWFkQXNE
YXRhVVJMKGZpbGUpOwogICAgfSk7Cn0KCmZ1bmN0aW9uIGF2YXRhclVwbG9hZEhhbmRsZXJCaW5k
ZW4ocGVyc29uLCByZWZyZXNoSG9vaykgewogICAgdmFyIGZpbGVJbnAgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZGxnLWF2YXRhci1maWxlJyk7CiAgICB2YXIgYnRuVXAgICA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdkbGctYXZhdGFyLXVwbG9hZCcpOwogICAgdmFyIGJ0bkRlbCAgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLWF2YXRhci1sb2VzY2hlbicpOwogICAgdmFyIHZv
cnNjaGF1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1hdmF0YXItdm9yc2NoYXUnKTsK
ICAgIGlmIChidG5VcCAmJiBmaWxlSW5wKSB7CiAgICAgICAgYnRuVXAuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBmdW5jdGlvbigpIHsgZmlsZUlucC5jbGljaygpOyB9KTsKICAgICAgICBmaWxl
SW5wLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2
YXIgZmlsZSA9IGZpbGVJbnAuZmlsZXMgJiYgZmlsZUlucC5maWxlc1swXTsKICAgICAgICAgICAg
aWYgKCFmaWxlKSByZXR1cm47CiAgICAgICAgICAgIGF2YXRhclNrYWxpZXJlbihmaWxlKS50aGVu
KGZ1bmN0aW9uKGRhdGFVcmwpIHsKICAgICAgICAgICAgICAgIHJldHVybiBhcGlQb3N0KCcvYXBp
L3BlcnNvbmVuLycgKyBwZXJzb24uaWQgKyAnL2F2YXRhcicsIHsgZGF0YVVybDogZGF0YVVybCB9
KTsKICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHBlcnNv
bi5hdmF0YXJUcyA9IERhdGUubm93KCk7CiAgICAgICAgICAgICAgICBpZiAodm9yc2NoYXUpIHZv
cnNjaGF1LmlubmVySFRNTCA9IGF2YXRhcktyZWlzSHRtbChwZXJzb24sIDcyKTsKICAgICAgICAg
ICAgICAgIGlmIChidG5VcCkgYnRuVXAudGV4dENvbnRlbnQgPSAnQmlsZCDDpG5kZXJuJzsKICAg
ICAgICAgICAgICAgIHBlcnNvbmVuTmV1QXVmYmF1ZW4oKTsKICAgICAgICAgICAgICAgIHBlcnNv
bmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgbmFtZW5SZW5k
ZXJuID09PSAnZnVuY3Rpb24nKSBuYW1lblJlbmRlcm4oKTsKICAgICAgICAgICAgICAgIGlmIChy
ZWZyZXNoSG9vaykgcmVmcmVzaEhvb2soKTsKICAgICAgICAgICAgICAgIHRvYXN0KCdQcm9maWxi
aWxkIGdlc3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlv
bihlKSB7CiAgICAgICAgICAgICAgICB0b2FzdCgnRmVobGVyOiAnICsgKGUgJiYgZS5tZXNzYWdl
IHx8IGUpLCAnZmVobGVyJyk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfQogICAg
aWYgKGJ0bkRlbCkgewogICAgICAgIGJ0bkRlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1
bmN0aW9uKCkgewogICAgICAgICAgICBhcGlEZWxldGUoJy9hcGkvcGVyc29uZW4vJyArIHBlcnNv
bi5pZCArICcvYXZhdGFyJykudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHBlcnNv
bi5hdmF0YXJUcyA9IG51bGw7CiAgICAgICAgICAgICAgICBpZiAodm9yc2NoYXUpIHZvcnNjaGF1
LmlubmVySFRNTCA9IGF2YXRhcktyZWlzSHRtbChwZXJzb24sIDcyKTsKICAgICAgICAgICAgICAg
IGlmIChidG5EZWwpIGJ0bkRlbC5yZW1vdmUoKTsKICAgICAgICAgICAgICAgIGlmIChidG5VcCkg
YnRuVXAudGV4dENvbnRlbnQgPSAnQmlsZCBob2NobGFkZW4nOwogICAgICAgICAgICAgICAgcGVy
c29uZW5OZXVBdWZiYXVlbigpOwogICAgICAgICAgICAgICAgcGVyc29uYWxUYWJlbGxlUmVuZGVy
bigpOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lblJlbmRlcm4gPT09ICdmdW5jdGlv
bicpIG5hbWVuUmVuZGVybigpOwogICAgICAgICAgICAgICAgaWYgKHJlZnJlc2hIb29rKSByZWZy
ZXNoSG9vaygpOwogICAgICAgICAgICAgICAgdG9hc3QoJ1Byb2ZpbGJpbGQgZW50ZmVybnQnLCAn
ZXJmb2xnJyk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAg
ICAgIHRvYXN0KCdGZWhsZXI6ICcgKyAoZSAmJiBlLm1lc3NhZ2UgfHwgZSksICdmZWhsZXInKTsK
ICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9Cn0KCi8vID09PT09IFZJMy1ER0wtVG9n
Z2xlIGltIFBlcnNvbi1Nb2RhbCA9PT09PQovLyBWaXN1ZWxsZSBWYXJpYW50ZSBkZXMgU3RhdHVz
LUJ1dHRvbnMgYXVzIGRlciBQZXJzb25hbC1UYWJlbGxlOgovLyBncm9zc2Uga2xpY2tiYXJlIEth
cnRlIG1pdCBncnVlbmVtIEhha2VuIG9kZXIgcm90ZW0gUXVlcmJhbGtlbiBwbHVzCi8vIEtsYXJ0
ZXh0LVN0YXR1cy4gSGlkZGVuIENoZWNrYm94ICNkbGctZWxkZ2wgaGFlbHQgZGVuIFN0YXRlIChT
YXZlLQovLyBIYW5kbGVyIGxpZXN0IC5jaGVja2VkIHdpZSB6dXZvciDigJQga2VpbiBCcnVjaCku
CmZ1bmN0aW9uIGVsZGdsVG9nZ2xlSHRtbChha3RpdikgewogICAgdmFyIG9rID0gISFha3RpdjsK
ICAgIHJldHVybiAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJkbGctZWxkZ2wtdG9nZ2xlIiBj
bGFzcz0iZGxnLWVsZGdsLXRvZ2dsZSAnICsgKG9rID8gJ2FrdGl2JyA6ICdpbmFrdGl2JykgKyAn
IiBhcmlhLXByZXNzZWQ9IicgKyAob2sgPyAndHJ1ZScgOiAnZmFsc2UnKSArICciPicgKwogICAg
ICAgICc8c3BhbiBjbGFzcz0idmkzZGdsLWJ0biAnICsgKG9rID8gJ3ZpM2RnbC1idG4tb2snIDog
J3ZpM2RnbC1idG4tbm8nKSArICciPjwvc3Bhbj4nICsKICAgICAgICAnPHNwYW4gY2xhc3M9ImRs
Zy1lbGRnbC10ZXh0Ij4nICsKICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJkbGctZWxkZ2wtc3Rh
dHVzIj4nICsgKG9rID8gJ3F1YWxpZml6aWVydCcgOiAnbmljaHQgcXVhbGlmaXppZXJ0JykgKyAn
PC9zcGFuPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImRsZy1lbGRnbC1oaW50Ij5LbGlj
a2VuIHp1bSAnICsgKG9rID8gJ0F1ZmhlYmVuJyA6ICdBa3RpdmllcmVuJykgKyAnPC9zcGFuPicg
KwogICAgICAgICc8L3NwYW4+JyArCiAgICAnPC9idXR0b24+JyArCiAgICAnPGlucHV0IHR5cGU9
ImNoZWNrYm94IiBpZD0iZGxnLWVsZGdsIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDot
OTk5OXB4IicgKyAob2sgPyAnIGNoZWNrZWQnIDogJycpICsgJz4nOwp9CgovLyBDbGljay1IYW5k
bGVyIGZ1ZXIgZGVuIFRvZ2dsZS1CdXR0b24uIFdpcmQgbmFjaCBtb2RhbFplaWdlbigpIGltCi8v
IFBlcnNvbi1Nb2RhbCBhbmdlaGFlbmd0LiBUb2dnbGV0IGhpZGRlbiBDaGVja2JveCArIHZpc3Vl
bGxlIEtsYXNzZW4uCmZ1bmN0aW9uIGVsZGdsVG9nZ2xlTGlzdGVuZXJCaW5kZW4oKSB7CiAgICB2
YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1lbGRnbC10b2dnbGUnKTsKICAg
IHZhciBjaGsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLWVsZGdsJyk7CiAgICBpZiAo
IWJ0biB8fCAhY2hrKSByZXR1cm47CiAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBm
dW5jdGlvbigpIHsKICAgICAgICBjaGsuY2hlY2tlZCA9ICFjaGsuY2hlY2tlZDsKICAgICAgICAv
LyBNb2RhbC1EaXJ0eS1UcmFja2luZzogbWFudWVsbGVzIGNoYW5nZS1FdmVudCwgd2VpbCB3aXIg
ZGllCiAgICAgICAgLy8gQ2hlY2tib3ggcHJvZ3JhbW1hdGlzY2ggdG9nZ2xlbiAoa2VpbiBVc2Vy
LUlucHV0LUV2ZW50KS4KICAgICAgICBjaGsuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5n
ZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7CiAgICAgICAgdmFyIG9rID0gY2hrLmNoZWNrZWQ7CiAg
ICAgICAgYnRuLmNsYXNzTGlzdC50b2dnbGUoJ2FrdGl2Jywgb2spOwogICAgICAgIGJ0bi5jbGFz
c0xpc3QudG9nZ2xlKCdpbmFrdGl2JywgIW9rKTsKICAgICAgICBidG4uc2V0QXR0cmlidXRlKCdh
cmlhLXByZXNzZWQnLCBvayA/ICd0cnVlJyA6ICdmYWxzZScpOwogICAgICAgIHZhciBxdWFkID0g
YnRuLnF1ZXJ5U2VsZWN0b3IoJy52aTNkZ2wtYnRuJyk7CiAgICAgICAgaWYgKHF1YWQpIHsKICAg
ICAgICAgICAgcXVhZC5jbGFzc0xpc3QudG9nZ2xlKCd2aTNkZ2wtYnRuLW9rJywgb2spOwogICAg
ICAgICAgICBxdWFkLmNsYXNzTGlzdC50b2dnbGUoJ3ZpM2RnbC1idG4tbm8nLCAhb2spOwogICAg
ICAgIH0KICAgICAgICB2YXIgc3RhdHVzID0gYnRuLnF1ZXJ5U2VsZWN0b3IoJy5kbGctZWxkZ2wt
c3RhdHVzJyk7CiAgICAgICAgaWYgKHN0YXR1cykgc3RhdHVzLnRleHRDb250ZW50ID0gb2sgPyAn
cXVhbGlmaXppZXJ0JyA6ICduaWNodCBxdWFsaWZpemllcnQnOwogICAgICAgIHZhciBoaW50ID0g
YnRuLnF1ZXJ5U2VsZWN0b3IoJy5kbGctZWxkZ2wtaGludCcpOwogICAgICAgIGlmIChoaW50KSBo
aW50LnRleHRDb250ZW50ID0gJ0tsaWNrZW4genVtICcgKyAob2sgPyAnQXVmaGViZW4nIDogJ0Fr
dGl2aWVyZW4nKTsKICAgIH0pOwp9CgovLyA9PT09PSBHZWJ1cnRzdGFnLUF1c3dhaGwgYWxzIEJ1
dHRvbi1HcmlkLU1vZGFsID09PT09Ci8vCi8vIDMxIFRhZy1CdXR0b25zICg1LXplaWxpZywgNy1z
cGFsdGlnKSArIDEyIE1vbmF0LUJ1dHRvbnMgKDN4NCkgKyAzNyBKYWhyLQovLyBCdXR0b25zIGZ1
ZXIgMTk2NC0yMDAwICg1eDgpLiBBa3R1ZWxsIGdld2FlaGx0ZSBCdXR0b25zIHNpbmQgaGVydm9y
LQovLyBnZWhvYmVuLiBEaXJ0eS1UcmFja2luZyBudXR6dCBkYXMgZWluZ2ViYXV0ZSBNb2RhbC1T
eXN0ZW0gKFoubW9kYWxEaXJ0eQovLyArIG1vZGFsRGlydHlCZXN0YWV0aWd1bmdaZWlnZW4gYmVp
bSBTY2hsaWVzc2VuKS4KCnZhciBHQl9KQUhSRV9WT04gPSAxOTY0Owp2YXIgR0JfSkFIUkVfQklT
ID0gMjAwMDsKdmFyIEdCX01PTkFURSA9IFsnSmFuJywnRmViJywnTcOkcicsJ0FwcicsJ01haScs
J0p1bicsJ0p1bCcsJ0F1ZycsJ1NlcCcsJ09rdCcsJ05vdicsJ0RleiddOwovLyBNb2R1bC1TdGF0
ZTogbnVyIHdhZWhyZW5kIGRhcyBNb2RhbCBvZmZlbiBpc3QgZ2VzZXR6dC4gQ2xpY2stSGFuZGxl
ciBpbgovLyBhcHAuanMgbGllc3QgaGllciBhYi4KZXhwb3J0IHZhciBnZWJ1cnRzdGFnTW9kYWxT
dGF0ZSA9IHsgb2ZmZW46IGZhbHNlLCBwZXJzb25JZDogbnVsbCwgd2VydGU6IHsgdGFnOiBudWxs
LCBtb25hdDogbnVsbCwgamFocjogbnVsbCB9LCB1cnNwcnVuZzogJycgfTsKCmZ1bmN0aW9uIGdi
UGFkKG4pIHsgcmV0dXJuIG4gPCAxMCA/ICcwJyArIG4gOiAnJyArIG47IH0KCmZ1bmN0aW9uIGdi
UGFyc2VEYXR1bShzdHIpIHsKICAgIGlmICghc3RyIHx8IHN0ci5sZW5ndGggPCAxMCkgcmV0dXJu
IHsgdGFnOiBudWxsLCBtb25hdDogbnVsbCwgamFocjogbnVsbCB9OwogICAgdmFyIHQgPSBzdHIu
c3BsaXQoJy0nKTsKICAgIHJldHVybiB7CiAgICAgICAgamFocjogIHBhcnNlSW50KHRbMF0sIDEw
KSB8fCBudWxsLAogICAgICAgIG1vbmF0OiBwYXJzZUludCh0WzFdLCAxMCkgfHwgbnVsbCwKICAg
ICAgICB0YWc6ICAgcGFyc2VJbnQodFsyXSwgMTApIHx8IG51bGwKICAgIH07Cn0KCmZ1bmN0aW9u
IGdiQnRuR3JpZCh0eXAsIHZvbiwgYmlzLCBsYWJlbHMpIHsKICAgIHZhciBzID0gZ2VidXJ0c3Rh
Z01vZGFsU3RhdGUud2VydGU7CiAgICB2YXIgaHRtbCA9ICcnOwogICAgZm9yICh2YXIgaSA9IHZv
bjsgaSA8PSBiaXM7IGkrKykgewogICAgICAgIHZhciBsYmwgPSBsYWJlbHMgPyBsYWJlbHNbaSAt
IHZvbl0gOiBTdHJpbmcoaSk7CiAgICAgICAgdmFyIGNscyA9ICdnYi1idG4nICsgKHNbdHlwXSA9
PT0gaSA/ICcgYWt0aXYnIDogJycpOwogICAgICAgIGh0bWwgKz0gJzxidXR0b24gdHlwZT0iYnV0
dG9uIiBjbGFzcz0iJyArIGNscyArICciIGRhdGEtZ2ItdHlwPSInICsgdHlwICsgJyIgZGF0YS1n
Yi13ZXJ0PSInICsgaSArICciPicgKyBlc2NhcGVIVE1MKGxibCkgKyAnPC9idXR0b24+JzsKICAg
IH0KICAgIHJldHVybiBodG1sOwp9CgpmdW5jdGlvbiBnYkFuemVpZ2UoKSB7CiAgICB2YXIgcyA9
IGdlYnVydHN0YWdNb2RhbFN0YXRlLndlcnRlOwogICAgaWYgKCFzLnRhZyB8fCAhcy5tb25hdCB8
fCAhcy5qYWhyKSByZXR1cm4gJzxlbSBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPkJp
dHRlIFRhZywgTW9uYXQgdW5kIEphaHIgYXVzd8OkaGxlbi48L2VtPic7CiAgICByZXR1cm4gJzxz
dHJvbmc+JyArIGdiUGFkKHMudGFnKSArICcuJyArIGdiUGFkKHMubW9uYXQpICsgJy4nICsgcy5q
YWhyICsgJzwvc3Ryb25nPic7Cn0KCmV4cG9ydCBmdW5jdGlvbiBnZWJ1cnRzdGFnTW9kYWxJbmhh
bHRSZW5kZXJuKCkgewogICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJnYi1ha3R1ZWxsIj5HZXfDpGhs
dDogJyArIGdiQW56ZWlnZSgpICsgJzwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJnYi1z
ZWt0aW9uIj48ZGl2IGNsYXNzPSJnYi1zZWt0aW9uLXRpdGVsIj5UYWc8L2Rpdj4nICsKICAgICAg
ICAgICAgJzxkaXYgY2xhc3M9ImdiLWdyaWQgZ2ItZ3JpZC10YWciPicgKyBnYkJ0bkdyaWQoJ3Rh
ZycsIDEsIDMxKSArICc8L2Rpdj4nICsKICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYg
Y2xhc3M9ImdiLXNla3Rpb24iPjxkaXYgY2xhc3M9ImdiLXNla3Rpb24tdGl0ZWwiPk1vbmF0PC9k
aXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJnYi1ncmlkIGdiLWdyaWQtbW9uYXQiPicg
KyBnYkJ0bkdyaWQoJ21vbmF0JywgMSwgMTIsIEdCX01PTkFURSkgKyAnPC9kaXY+JyArCiAgICAg
ICAgJzwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJnYi1zZWt0aW9uIj48ZGl2IGNsYXNz
PSJnYi1zZWt0aW9uLXRpdGVsIj5KYWhyPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNz
PSJnYi1ncmlkIGdiLWdyaWQtamFociI+JyArIGdiQnRuR3JpZCgnamFocicsIEdCX0pBSFJFX1ZP
TiwgR0JfSkFIUkVfQklTKSArICc8L2Rpdj4nICsKICAgICAgICAnPC9kaXY+JzsKfQoKZXhwb3J0
IGZ1bmN0aW9uIGdlYnVydHN0YWdNb2RhbFJlZnJlc2goKSB7CiAgICB2YXIgYyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdnYi1tb2RhbC1pbmhhbHQnKTsKICAgIGlmICghYykgcmV0dXJuOwog
ICAgYy5pbm5lckhUTUwgPSBnZWJ1cnRzdGFnTW9kYWxJbmhhbHRSZW5kZXJuKCk7CiAgICBpZiAo
SlNPTi5zdHJpbmdpZnkoZ2VidXJ0c3RhZ01vZGFsU3RhdGUud2VydGUpICE9PSBnZWJ1cnRzdGFn
TW9kYWxTdGF0ZS51cnNwcnVuZykgewogICAgICAgIFoubW9kYWxEaXJ0eSA9IHRydWU7CiAgICB9
Cn0KCmV4cG9ydCBmdW5jdGlvbiBnZWJ1cnRzdGFnTW9kYWxPZWZmbmVuKGlkKSB7CiAgICB2YXIg
cGVyc29uID0gKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbihwKSB7IHJl
dHVybiBwLmlkID09PSBpZDsgfSk7CiAgICBpZiAoIXBlcnNvbikgcmV0dXJuOwogICAgdmFyIHRl
aWxlID0gZ2JQYXJzZURhdHVtKHBlcnNvbi5nZWJ1cnRzZGF0dW0gfHwgJycpOwogICAgZ2VidXJ0
c3RhZ01vZGFsU3RhdGUub2ZmZW4gPSB0cnVlOwogICAgZ2VidXJ0c3RhZ01vZGFsU3RhdGUucGVy
c29uSWQgPSBpZDsKICAgIGdlYnVydHN0YWdNb2RhbFN0YXRlLndlcnRlID0geyB0YWc6IHRlaWxl
LnRhZywgbW9uYXQ6IHRlaWxlLm1vbmF0LCBqYWhyOiB0ZWlsZS5qYWhyIH07CiAgICBnZWJ1cnRz
dGFnTW9kYWxTdGF0ZS51cnNwcnVuZyA9IEpTT04uc3RyaW5naWZ5KGdlYnVydHN0YWdNb2RhbFN0
YXRlLndlcnRlKTsKCiAgICB2YXIgdGl0ZWwgPSAoKHBlcnNvbi52b3JuYW1lIHx8ICcnKSArICcg
JyArIChwZXJzb24ubmFtZSB8fCAnJykpLnRyaW0oKSB8fCAnUGVyc29uJzsKICAgIHZhciBrb2Vy
cGVyID0gJzxkaXYgaWQ9ImdiLW1vZGFsLWluaGFsdCI+JyArIGdlYnVydHN0YWdNb2RhbEluaGFs
dFJlbmRlcm4oKSArICc8L2Rpdj4nOwogICAgdmFyIGZ1c3MgPQogICAgICAgICc8YnV0dG9uIHR5
cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biIgaWQ9ImdiLWxvZXNjaGVuIiB0aXRsZT0iR2VidXJ0c2Rh
dHVtIGVudGZlcm5lbiI+TMO2c2NoZW48L2J1dHRvbj4nICsKICAgICAgICAnPHNwYW4gc3R5bGU9
ImZsZXg6MSI+PC9zcGFuPicgKwogICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9
ImJ0biIgaWQ9ImdiLWFiYnJlY2hlbiI+QWJicmVjaGVuPC9idXR0b24+JyArCiAgICAgICAgJzxi
dXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBpZD0iZGxnLXNwZWlj
aGVybiI+U3BlaWNoZXJuPC9idXR0b24+JzsKCiAgICBtb2RhbFplaWdlbignR2VidXJ0c3RhZyDi
gJQgJyArIHRpdGVsLCBrb2VycGVyLCBmdXNzLCBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgcyA9
IGdlYnVydHN0YWdNb2RhbFN0YXRlLndlcnRlOwogICAgICAgIGlmICghcy50YWcgfHwgIXMubW9u
YXQgfHwgIXMuamFocikgewogICAgICAgICAgICB0b2FzdCgnQml0dGUgVGFnLCBNb25hdCB1bmQg
SmFociBhdXN3w6RobGVuJywgJ3dhcm51bmcnKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
IH0KICAgICAgICAvLyBWYWxpZGllcnVuZzogMzEuMDIgZXRjLiBlcmtlbm5lbgogICAgICAgIHZh
ciBkID0gbmV3IERhdGUocy5qYWhyLCBzLm1vbmF0IC0gMSwgcy50YWcpOwogICAgICAgIGlmIChk
LmdldERhdGUoKSAhPT0gcy50YWcgfHwgZC5nZXRNb250aCgpICE9PSBzLm1vbmF0IC0gMSB8fCBk
LmdldEZ1bGxZZWFyKCkgIT09IHMuamFocikgewogICAgICAgICAgICB0b2FzdCgnVW5nw7xsdGln
ZXMgRGF0dW0gKHouQi4gMzEuIEZlYnJ1YXIpIOKAlCBiaXR0ZSBrb3JyaWdpZXJlbicsICd3YXJu
dW5nJyk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIGRhdHVtU3Ry
ID0gcy5qYWhyICsgJy0nICsgZ2JQYWQocy5tb25hdCkgKyAnLScgKyBnYlBhZChzLnRhZyk7CiAg
ICAgICAgYXBpUHV0KCcvYXBpL3BlcnNvbmVuLycgKyBpZCwgeyBnZWJ1cnRzZGF0dW06IGRhdHVt
U3RyIH0pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHBlcnNvbi5nZWJ1cnRzZGF0dW0g
PSBkYXR1bVN0cjsKICAgICAgICAgICAgZ2VidXJ0c3RhZ01vZGFsU3RhdGUub2ZmZW4gPSBmYWxz
ZTsKICAgICAgICAgICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgICAgICAgICB0b2Fz
dCgnR2VidXJ0c3RhZyBnZXNwZWljaGVydCcsICdlcmZvbGcnKTsKICAgICAgICAgICAgbW9kYWxT
Y2hsaWVzc2VuKHRydWUpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAg
ICAgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOwogICAgICAgIH0pOwog
ICAgfSk7CgogICAgLy8gRm9vdGVyLUJ1dHRvbnMgYmluZGVuCiAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZ2ItYWJicmVjaGVuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlv
bigpIHsKICAgICAgICAvLyBtb2RhbFNjaGxpZXNzZW4oKSBsb2VzdCBiZWkgWi5tb2RhbERpcnR5
IGF1dG9tYXRpc2NoIGRhcwogICAgICAgIC8vIEJlc3RhZXRpZ3VuZ3MtTW9kYWwgYXVzIChTcGVp
Y2hlcm4gLyBWZXJ3ZXJmZW4gLyBBYmJyZWNoZW4pLgogICAgICAgIG1vZGFsU2NobGllc3Nlbigp
OwogICAgfSk7CiAgICB2YXIgbG9lQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2diLWxv
ZXNjaGVuJyk7CiAgICBpZiAobG9lQnRuKSB7CiAgICAgICAgbG9lQnRuLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGFwaVB1dCgnL2FwaS9wZXJzb25l
bi8nICsgaWQsIHsgZ2VidXJ0c2RhdHVtOiAnJyB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgICAgcGVyc29uLmdlYnVydHNkYXR1bSA9ICcnOwogICAgICAgICAgICAgICAgZ2VidXJ0
c3RhZ01vZGFsU3RhdGUub2ZmZW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgIHBlcnNvbmFsVGFi
ZWxsZVJlbmRlcm4oKTsKICAgICAgICAgICAgICAgIHRvYXN0KCdHZWJ1cnRzZGF0dW0gZW50ZmVy
bnQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAg
ICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVz
c2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9KTsKICAgIH0KfQoKLy8gQ2xpY2stSGFuZGxl
ciBmdWVyIGVpbnplbG5lIFRhZy9Nb25hdC9KYWhyLUJ1dHRvbnMgaW0gTW9kYWwuIFdpcmQgcGVy
Ci8vIEV2ZW50LURlbGVnYXRpb24gaW0gYXBwLmpzIG1vZGFsLUNvbnRhaW5lci1IYW5kbGVyIGF1
ZmdlcnVmZW4uCmV4cG9ydCBmdW5jdGlvbiBnZWJ1cnRzdGFnTW9kYWxLbGljayh0eXAsIHdlcnQp
IHsKICAgIGlmICghZ2VidXJ0c3RhZ01vZGFsU3RhdGUub2ZmZW4pIHJldHVybjsKICAgIGdlYnVy
dHN0YWdNb2RhbFN0YXRlLndlcnRlW3R5cF0gPSB3ZXJ0OwogICAgZ2VidXJ0c3RhZ01vZGFsUmVm
cmVzaCgpOwp9CgovLyA9PT09PSBBZG1pbjogR2VuZXJpc2NoZXIgSW5saW5lLUVkaXQgZnVlciBi
ZWxpZWJpZ2UgRGF0ZW4tRmVsZGVyID09PT09Ci8vCi8vIE51dHp0IGRhcyBgcGVyc29uYWwtaW5s
aW5lYC1TcGFuLU1hcmt1cCBhdXMgcGVyc29uWmVpbGUgKENoZXJyeS1QaWNrCi8vIGQ0MzQ2MWEs
IGhpbnRlciBUb2dnbGUgYGZlYXR1cmVzLnBlcnNvbmFsSW5saW5lRWRpdGApLiBEb3BwZWxrbGlj
ayBhdWYKLy8gZWluIG1hcmtpZXJ0ZXMgU3BhbiBlcnNldHp0IGVzIGR1cmNoIGVpbiA8aW5wdXQ+
LCBCbHVyL0VudGVyIHNwZWljaGVydCwKLy8gRXNjYXBlIHJvbGx0IHp1cnVlY2suIFVudGVyc3R1
ZXR6dGUgZGF0YS10eXAtV2VydGU6ICd0ZXh0JywgJ2RhdGUnLgpleHBvcnQgZnVuY3Rpb24gcGVy
c29uYWxGZWxkSW5saW5lRWRpdChpZCwgc3BhbikgewogICAgaWYgKCFaLnJlY2h0ZSB8fCAhWi5y
ZWNodGUuaXN0U3VwZXJVc2VyKSByZXR1cm47CiAgICB2YXIgcGVyc29uID0gKFoucGxhbnVuZy5w
ZXJzb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbihwKSB7IHJldHVybiBwLmlkID09PSBpZDsgfSk7
CiAgICBpZiAoIXBlcnNvbikgcmV0dXJuOwogICAgdmFyIGZlbGQgPSBzcGFuLmdldEF0dHJpYnV0
ZSgnZGF0YS1mZWxkJyk7CiAgICB2YXIgdHlwICA9IHNwYW4uZ2V0QXR0cmlidXRlKCdkYXRhLXR5
cCcpIHx8ICd0ZXh0JzsKICAgIGlmICghZmVsZCkgcmV0dXJuOwogICAgLy8gR2VidXJ0c2RhdHVt
IG51dHp0IGVpbmVuIGRlZGl6aWVydGVuIEJ1dHRvbi1HcmlkLURpYWxvZyBzdGF0dAogICAgLy8g
SW5saW5lLURhdGUtSW5wdXQgKFVzZXItRmVlZGJhY2sgMjAyNi0wNS0yMykuCiAgICBpZiAoZmVs
ZCA9PT0gJ2dlYnVydHNkYXR1bScpIHsgZ2VidXJ0c3RhZ01vZGFsT2VmZm5lbihpZCk7IHJldHVy
bjsgfQoKICAgIHZhciBha3R1ZWxsZXJXZXJ0ID0gcGVyc29uW2ZlbGRdOwogICAgaWYgKGFrdHVl
bGxlcldlcnQgPT0gbnVsbCkgYWt0dWVsbGVyV2VydCA9ICcnOwoKICAgIHZhciBpbnB1dCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICBpbnB1dC50eXBlID0gdHlwID09PSAn
ZGF0ZScgPyAnZGF0ZScgOiAndGV4dCc7CiAgICBpbnB1dC52YWx1ZSA9IFN0cmluZyhha3R1ZWxs
ZXJXZXJ0KTsKICAgIGlucHV0LmNsYXNzTmFtZSA9ICdwZXJzb25hbC1pbmxpbmUtaW5wdXQnOwog
ICAgaW5wdXQuc3R5bGUuZm9udCA9ICdpbmhlcml0JzsKICAgIGlucHV0LnN0eWxlLnBhZGRpbmcg
PSAnMnB4IDRweCc7CiAgICBpbnB1dC5zdHlsZS53aWR0aCA9IHR5cCA9PT0gJ2RhdGUnID8gJzE0
MHB4JyA6ICcxMDAlJzsKICAgIHNwYW4ucmVwbGFjZVdpdGgoaW5wdXQpOwogICAgaW5wdXQuZm9j
dXMoKTsKICAgIHRyeSB7IGlucHV0LnNlbGVjdCgpOyB9IGNhdGNoIChlKSB7fQoKICAgIHZhciBh
Ymdlc2NobG9zc2VuID0gZmFsc2U7CiAgICBmdW5jdGlvbiB1ZWJlcm5laG1lbigpIHsKICAgICAg
ICBpZiAoYWJnZXNjaGxvc3NlbikgcmV0dXJuOwogICAgICAgIGFiZ2VzY2hsb3NzZW4gPSB0cnVl
OwogICAgICAgIHZhciBuZXUgPSBpbnB1dC52YWx1ZTsKICAgICAgICBpZiAodHlwICE9PSAnZGF0
ZScpIG5ldSA9IG5ldS50cmltKCk7CiAgICAgICAgaWYgKFN0cmluZyhuZXUpID09PSBTdHJpbmco
YWt0dWVsbGVyV2VydCB8fCAnJykpIHsKICAgICAgICAgICAgcGVyc29uYWxUYWJlbGxlUmVuZGVy
bigpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHZhciB1cGRhdGUgPSB7
fTsKICAgICAgICB1cGRhdGVbZmVsZF0gPSBuZXU7CiAgICAgICAgYXBpUHV0KCcvYXBpL3BlcnNv
bmVuLycgKyBpZCwgdXBkYXRlKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBwZXJzb25b
ZmVsZF0gPSBuZXU7CiAgICAgICAgICAgIHBlcnNvbmVuTmV1QXVmYmF1ZW4oKTsKICAgICAgICAg
ICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgICAgICAgICBpZiAodHlwZW9mIG5hbWVu
UmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICAgICAgbmFtZW5SZW5kZXJuKCk7
CiAgICAgICAgICAgICAgICBkYXRlbkdyaWRSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICBrb3Bm
UmVuZGVybigpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRvYXN0KCdHZXNwZWljaGVydCcs
ICdlcmZvbGcnKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHRv
YXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsKICAgICAgICAgICAgcGVyc29u
YWxUYWJlbGxlUmVuZGVybigpOwogICAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gYWJicmVj
aGVuKCkgewogICAgICAgIGlmIChhYmdlc2NobG9zc2VuKSByZXR1cm47CiAgICAgICAgYWJnZXNj
aGxvc3NlbiA9IHRydWU7CiAgICAgICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgfQog
ICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgICAg
ICBpZiAoZS5rZXkgPT09ICdFbnRlcicpICAgICAgIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyB1ZWJl
cm5laG1lbigpOyB9CiAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnKSB7IGUucHJl
dmVudERlZmF1bHQoKTsgYWJicmVjaGVuKCk7IH0KICAgIH0pOwogICAgaW5wdXQuYWRkRXZlbnRM
aXN0ZW5lcignYmx1cicsIHVlYmVybmVobWVuKTsKfQoKLy8gPT09PT0gQWRtaW46IEUtTWFpbC1B
a3Rpb24gYXVzIGRlciBQZXJzb25hbC1UYWJlbGxlID09PT09CgovLyBLbGVpbmVzIE1vZGFsIG1p
dCB6d2VpIEFrdGlvbmVuOiBBZHJlc3NlIGJlYXJiZWl0ZW4gb2RlciBNYWlsIHNjaHJlaWJlbi4K
Ly8gS2xpY2sgYXVmIGRhcyBPdmVybGF5IHNjaGxpZXNzdCBkYXMgTW9kYWwgKGdsb2JhbCBpbiBt
b2RhbC1vdmVybGF5LUhhbmRsZXIpLgpleHBvcnQgZnVuY3Rpb24gcGVyc29uRW1haWxEaWFsb2co
aWQpIHsKICAgIHZhciBwZXJzb24gPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1
bmN0aW9uKHApIHsgcmV0dXJuIHAuaWQgPT09IGlkOyB9KTsKICAgIGlmICghcGVyc29uKSByZXR1
cm47CiAgICB2YXIgYWt0dWVsbGUgPSBwZXJzb24uZW1haWwgfHwgJyc7CiAgICB2YXIgdGl0ZWwg
PSAoKHBlcnNvbi52b3JuYW1lIHx8ICcnKSArICcgJyArIChwZXJzb24ubmFtZSB8fCAnJykpLnRy
aW0oKTsKCiAgICB2YXIga29lcnBlciA9CiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBl
Ij4nICsKICAgICAgICAgICAgJzxsYWJlbD5IaW50ZXJsZWd0ZSBFLU1haWwtQWRyZXNzZTwvbGFi
ZWw+JyArCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJwZW1sLWFkcmVzc2Ui
IGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSIgdmFsdWU9IicgKyBlc2NhcGVB
dHRyKGFrdHVlbGxlKSArICciIHBsYWNlaG9sZGVyPSJiZWlzcGllbEBwb2xpemVpLm5ydy5kZSI+
JyArCiAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7
Z2FwOjEwcHg7bWFyZ2luLXRvcDoxNnB4O2ZsZXgtd3JhcDp3cmFwIj4nICsKICAgICAgICAgICAg
JzxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgaWQ9InBlbWwtc3BlaWNoZXJuIj5BZHJl
c3NlIHNwZWljaGVybjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRu
IGJ0bi1lcmZvbGciIGlkPSJwZW1sLXNjaHJlaWJlbiInICsgKGFrdHVlbGxlID8gJycgOiAnIGRp
c2FibGVkIHRpdGxlPSJFcnN0IGVpbmUgQWRyZXNzZSBoaW50ZXJsZWdlbiInKSArICc+RS1NYWls
IHNjaHJlaWJlbjwvYnV0dG9uPicgKwogICAgICAgICc8L2Rpdj4nOwoKICAgIG1vZGFsWmVpZ2Vu
KCdFLU1haWwg4oCUICcgKyB0aXRlbCwga29lcnBlciwgJycsIG51bGwpOwoKICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdwZW1sLXNwZWljaGVybicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG5ldSA9IChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncGVtbC1hZHJlc3NlJykudmFsdWUgfHwgJycpLnRyaW0oKTsKICAgICAgICAvLyBBdXRvLVN1
ZmZpeDogV2VubiBGZWF0dXJlIGFrdGl2IGlzdCB1bmQgZGllIEVpbmdhYmUga2VpbiAiQCIgZW50
aGFlbHQsCiAgICAgICAgLy8gaGFlbmdlbiB3aXIgZGllIGluIGRlciBBZG1pbi1Lb25maWcgaGlu
dGVybGVndGUgRG9tYWluIGFuLgogICAgICAgIC8vIChDaGVycnktUGljayAxYjg3Y2Q1LikgRGVm
YXVsdC1Eb21haW4gZmFsbHMgbmljaHRzIGtvbmZpZ3VyaWVydDoKICAgICAgICAvLyAiQHBvbGl6
ZWkubnJ3LmRlIiAoc2llaGUgYWRtaW4uanNvbi9TZXJ2ZXItQWxsb3dsaXN0KS4KICAgICAgICBp
ZiAobmV1ICYmIGZlYXR1cmVJc3RBa3RpdignZW1haWxBdXRvU3VmZml4JykgJiYgbmV1LmluZGV4
T2YoJ0AnKSA8IDApIHsKICAgICAgICAgICAgdmFyIGRvbWFpbiA9IChaLmFkbWluICYmIFouYWRt
aW4uZW1haWxBdXRvRG9tYWluKSB8fCAnQHBvbGl6ZWkubnJ3LmRlJzsKICAgICAgICAgICAgaWYg
KGRvbWFpbi5jaGFyQXQoMCkgIT09ICdAJykgZG9tYWluID0gJ0AnICsgZG9tYWluOwogICAgICAg
ICAgICBuZXUgPSBuZXUgKyBkb21haW47CiAgICAgICAgfQogICAgICAgIGlmIChuZXUgJiYgIS9e
W15cc0BdK0BbXlxzQF0rXC5bXlxzQF0rJC8udGVzdChuZXUpKSB7CiAgICAgICAgICAgIHRvYXN0
KCdVbmfDvGx0aWdlIEUtTWFpbC1BZHJlc3NlJywgJ3dhcm51bmcnKTsKICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgIH0KICAgICAgICBhcGlQdXQoJy9hcGkvcGVyc29uZW4vJyArIGlkLCB7IGVt
YWlsOiBuZXUgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgcGVyc29uLmVtYWlsID0g
bmV1OwogICAgICAgICAgICAvLyBmb3JjZT10cnVlOiBkaWUgQWRyZXNzZSBJU1QgZ2VzcGVpY2hl
cnQgLT4gZGlyZWt0IHNjaGxpZXNzZW4sIHNvbnN0CiAgICAgICAgICAgIC8vIHNjaGxhZWd0IGRh
cyBEaXJ0eS1UcmFja2luZyAoVXNlciBoYXQgamEgaW5zIEZlbGQgZ2V0aXBwdCkgZmFlbHNjaC0K
ICAgICAgICAgICAgLy8gbGljaGVyd2Vpc2UgZGllICJVbmdlc3BlaWNoZXJ0ZSDDhG5kZXJ1bmdl
biItUnVlY2tmcmFnZSB2b3IuCiAgICAgICAgICAgIG1vZGFsU2NobGllc3Nlbih0cnVlKTsKICAg
ICAgICAgICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgICAgICAgICB0b2FzdChuZXUg
PyAnRS1NYWlsIGdlc3BlaWNoZXJ0JyA6ICdFLU1haWwgZW50ZmVybnQnLCAnZXJmb2xnJyk7CiAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdl
LCAnZmVobGVyJyk7IH0pOwogICAgfSk7CgogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bl
bWwtc2NocmVpYmVuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAg
ICAgICB2YXIgemllbCA9IChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGVtbC1hZHJlc3NlJyku
dmFsdWUgfHwgJycpLnRyaW0oKTsKICAgICAgICBpZiAoIXppZWwpIHsgdG9hc3QoJ0tlaW5lIEFk
cmVzc2UgaGludGVybGVndCcsICd3YXJudW5nJyk7IHJldHVybjsgfQogICAgICAgIHdpbmRvdy5s
b2NhdGlvbi5ocmVmID0gJ21haWx0bzonICsgZW5jb2RlVVJJQ29tcG9uZW50KHppZWwpOwogICAg
fSk7Cn0K
### FILE: js/admin_rollen.js | 43278
Ly8gPT09IGFkbWluX3JvbGxlbi5qcyA9PT0KLy8gUGhhc2UgOS1CIEMxOiBhdXMgYWRtaW4uanMg
ZXh0cmFoaWVydC4gVmVyd2FsdGV0IGRpZSB6d2VpIHJvbGxlbi0KLy8gbmFoZW4gQWRtaW4tVGFi
czoKLy8gICAxLiBTdXBlclVzZXItTGlzdGUgKFouYWRtaW4uc3VwZXJVc2VyKQovLyAgIDIuIEZh
Y2hhdWZzaWNodC1MaXN0ZSAoWi5hZG1pbi5mYWNoYXVmc2ljaHQpIGlua2wuIGdyYW51bGFyZSBT
dWItCi8vICAgICAgU2ljaHRiYXJrZWl0IGZ1ZXIgQWRtaW4tU3ViLVRhYnMgKyBTdGF0aXN0aWst
QmVyZWljaGUgdW5kCi8vICAgICAgUGxhbnVuZ3MtUmVjaHRlIChQZXJzb25lbi9HcnVwcGVuL1N0
YW5kb3J0ZSkuCi8vCi8vIEZlYXR1cmVzLVRvZ2dsZXMgKGZlYXR1cmVzUmVuZGVybi9mZWF0dXJl
SXN0QWt0aXYpIGJsZWliZW4gYmV3dXNzdAovLyBpbiBhZG1pbi5qcyDigJQgQm9vdHN0cmFwLVZl
cmFudHdvcnR1bmcsIGtlaW4gZWlnZW5lcyBSb2xsZW4tS29uemVwdC4KLy8gWmVudHJhbGVyIERp
cnR5LVRyYWNrZXIgKGRpcnR5VHJhY2tlckVpbnJpY2h0ZW4pIGJsZWlidCBlYmVuZmFsbHMKLy8g
aW4gYWRtaW4uanMgKGNyb3NzY3V0dGluZykuCi8vCi8vIFBhc3MtVGhyb3VnaC1SZS1FeHBvcnRz
IGluIGFkbWluLmpzIHN0ZWxsZW4gc2ljaGVyLCBkYXNzIGV4dGVybmUKLy8gS29uc3VtZW50ZW4g
KGFwcC5qcywgc3RhdGlzdGlrLmpzLCDigKYpIHVudmVyYWVuZGVydCBibGVpYmVuLgoKaW1wb3J0
IHsgWiB9IGZyb20gJy4vY29yZV9zdGF0ZS5qcyc7CmltcG9ydCB7IGVzY2FwZUhUTUwsIGVzY2Fw
ZUF0dHIgfSBmcm9tICcuL2NvcmVfdXRpbC5qcyc7CmltcG9ydCB7IGFwaVB1dCB9IGZyb20gJy4v
Y29yZV9hcGkuanMnOwppbXBvcnQgewogICAgdG9hc3QsCiAgICBtb2RhbFplaWdlbiwgbW9kYWxT
Y2hsaWVzc2VuLAogICAgZGlydHlTZXR6ZW4sIGRpcnR5SXN0Cn0gZnJvbSAnLi91aV9kaWFsb2cu
anMnOwppbXBvcnQgeyB2ZXJhbnR3b3J0dW5nc01haWx0b0ZldWVybiB9IGZyb20gJy4vZW1haWxf
dm9ybGFnZW4uanMnOwppbXBvcnQgeyB0YWJlbGxlRmVsZGVyTGVzZW4gfSBmcm9tICcuL2FkbWlu
X2NvbW1vbi5qcyc7CgovLyA9PT09PSBBZG1pbjogU3VwZXJVc2VyLVZlcndhbHR1bmcgPT09PT0K
CmV4cG9ydCBmdW5jdGlvbiBzdXBlclVzZXJSZW5kZXJuKCkgewogICAgdmFyIG5hdkJ0biA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXYtc3VwZXJ1c2VyJyk7CiAgICBpZiAobmF2QnRuKSBu
YXZCdG4uc3R5bGUuZGlzcGxheSA9IFoucmVjaHRlLmlzdFN1cGVyVXNlciA/ICcnIDogJ25vbmUn
OwoKICAgIHZhciB0Ym9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdXBlcnVzZXItdGJv
ZHknKTsKICAgIHZhciBidG5OZXUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXN1cGVy
dXNlci1uZXUnKTsKICAgIHZhciBidG5TcGVpY2hlcm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYnRuLXN1cGVydXNlci1zcGVpY2hlcm4nKTsKICAgIHZhciBrZWluUmVjaHQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnc3VwZXJ1c2VyLWtlaW4tcmVjaHQnKTsKCiAgICBpZiAoIVoucmVj
aHRlLmlzdFN1cGVyVXNlcikgewogICAgICAgIGlmIChidG5OZXUpIGJ0bk5ldS5zdHlsZS5kaXNw
bGF5ID0gJ25vbmUnOwogICAgICAgIGlmIChidG5TcGVpY2hlcm4pIGJ0blNwZWljaGVybi5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIGlmIChrZWluUmVjaHQpIGtlaW5SZWNodC5jbGFz
c0xpc3QucmVtb3ZlKCd2ZXJzdGVja3QnKTsKICAgICAgICBpZiAodGJvZHkpIHRib2R5LmlubmVy
SFRNTCA9ICcnOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoYnRuTmV1KSBidG5OZXUu
c3R5bGUuZGlzcGxheSA9ICcnOwogICAgaWYgKGJ0blNwZWljaGVybikgYnRuU3BlaWNoZXJuLnN0
eWxlLmRpc3BsYXkgPSAnJzsKICAgIGlmIChrZWluUmVjaHQpIGtlaW5SZWNodC5jbGFzc0xpc3Qu
YWRkKCd2ZXJzdGVja3QnKTsKCiAgICB2YXIgbGlzdGUgPSBaLmFkbWluLnN1cGVyVXNlciB8fCBb
XTsKICAgIHZhciBodG1sID0gJyc7CiAgICBsaXN0ZS5mb3JFYWNoKGZ1bmN0aW9uKHN1LCBpKSB7
CiAgICAgICAgaHRtbCArPSAnPHRyPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJ0
ZXh0IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoc3UubmFtZSB8fCAnJykgKyAnIiBkYXRhLWlkeD0i
JyArIGkgKyAnIiBkYXRhLWZlbGQ9Im5hbWUiIGNsYXNzPSJzdXBlcnVzZXItaW5wdXQiIHN0eWxl
PSJ3aWR0aDoxMDAlIj48L3RkPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0
IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoc3UubndLZW5udW5nIHx8ICcnKSArICciIGRhdGEtaWR4
PSInICsgaSArICciIGRhdGEtZmVsZD0ibndLZW5udW5nIiBjbGFzcz0ic3VwZXJ1c2VyLWlucHV0
IiBzdHlsZT0id2lkdGg6MTAwJSI+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZD48aW5wdXQgdHlw
ZT0idGV4dCIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKHN1Lm9lIHx8ICcnKSArICciIGRhdGEtaWR4
PSInICsgaSArICciIGRhdGEtZmVsZD0ib2UiIGNsYXNzPSJzdXBlcnVzZXItaW5wdXQiIHBsYWNl
aG9sZGVyPSJ6LkIuIFZJMyBLYW1lbiIgc3R5bGU9IndpZHRoOjEwMCUiPjwvdGQ+JyArCiAgICAg
ICAgICAgICc8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihzdS50
ZWxlZm9uIHx8ICcnKSArICciIGRhdGEtaWR4PSInICsgaSArICciIGRhdGEtZmVsZD0idGVsZWZv
biIgY2xhc3M9InN1cGVydXNlci1pbnB1dCIgcGxhY2Vob2xkZXI9InouQi4gNDUyMCIgc3R5bGU9
IndpZHRoOjEwMCUiPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+PGJ1dHRvbiBjbGFzcz0iYnRu
IGJ0bi1nZWZhaHIgYnRuLWtsZWluIGJ0bi1sb2VzY2hlbiIgZGF0YS1ha3Rpb249InN1cGVydXNl
ci1sb2VzY2hlbiIgZGF0YS1pZHg9IicgKyBpICsgJyIgdGl0bGU9IkzDtnNjaGVuIj5Mw7ZzY2hl
bjwvYnV0dG9uPjwvdGQ+PC90cj4nOwogICAgfSk7CiAgICB0Ym9keS5pbm5lckhUTUwgPSBodG1s
Owp9CgpleHBvcnQgZnVuY3Rpb24gc3VwZXJVc2VyQXVzVGFiZWxsZUxlc2VuKCkgewogICAgcmV0
dXJuIHRhYmVsbGVGZWxkZXJMZXNlbignc3VwZXJ1c2VyLWlucHV0JykKICAgICAgICAuZmlsdGVy
KGZ1bmN0aW9uKHN1KSB7IHJldHVybiBzdS5uYW1lICYmIHN1Lm53S2VubnVuZzsgfSk7Cn0KCi8v
ID09PT09IEFkbWluOiBGYWNoYXVmc2ljaHQgPT09PT0KLy8gTnVyIFN1cGVyVXNlciBkYXJmIEVp
bnRyYWVnZSBoaWVyIGFlbmRlcm4gKGFuYWxvZyB6dXIgU3VwZXJVc2VyLVZlcndhbHR1bmcpLgov
LyBEYXRlbnN0cnVrdHVyIHBybyBFaW50cmFnOgovLyAgIHsgbmFtZSwgbndLZW5udW5nLCBzZWhl
bjp7YWRtaW5pc3RyYXRpb24sc3RhdGlzdGlrLGxvZ2J1Y2gsYmFja3Vwc30sCi8vICAgICBlZGl0
aWVyZW46e3BlcnNvbmVuSWRzW10sIGRpZW5zdGdydXBwZW5bXSwgc3RhbmRvcnRlW119IH0KCmV4
cG9ydCBmdW5jdGlvbiBmYWNoYXVmc2ljaHRSZW5kZXJuKCkgewogICAgdmFyIHRib2R5ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhY2hhdWZzaWNodC10Ym9keScpOwogICAgdmFyIGJ0bk5l
dSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tZmFjaGF1ZnNpY2h0LW5ldScpOwogICAg
dmFyIGJ0blNwZWljaGVybiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tZmFjaGF1ZnNp
Y2h0LXNwZWljaGVybicpOwogICAgdmFyIGtlaW5SZWNodCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdmYWNoYXVmc2ljaHQta2Vpbi1yZWNodCcpOwogICAgaWYgKCF0Ym9keSkgcmV0dXJuOwoK
ICAgIGlmICghWi5yZWNodGUuaXN0U3VwZXJVc2VyKSB7CiAgICAgICAgaWYgKGJ0bk5ldSkgYnRu
TmV1LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgaWYgKGJ0blNwZWljaGVybikgYnRu
U3BlaWNoZXJuLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgaWYgKGtlaW5SZWNodCkg
a2VpblJlY2h0LmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNrdCcpOwogICAgICAgIHRib2R5Lmlu
bmVySFRNTCA9ICcnOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChidG5OZXUpIGJ0bk5l
dS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICBpZiAoYnRuU3BlaWNoZXJuKSBidG5TcGVpY2hlcm4u
c3R5bGUuZGlzcGxheSA9ICcnOwogICAgaWYgKGtlaW5SZWNodCkga2VpblJlY2h0LmNsYXNzTGlz
dC5hZGQoJ3ZlcnN0ZWNrdCcpOwoKICAgIHZhciBsaXN0ZSA9IFouYWRtaW4uZmFjaGF1ZnNpY2h0
IHx8IFtdOwogICAgZnVuY3Rpb24gY2hrKGlkeCwgZmVsZCwgY2hlY2tlZCkgewogICAgICAgIHJl
dHVybiAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iZmFjaGF1ZnNpY2h0LWNoayIgZGF0
YS1pZHg9IicgKyBpZHggKyAnIiBkYXRhLWZlbGQ9IicgKyBmZWxkICsgJyInICsgKGNoZWNrZWQg
PyAnIGNoZWNrZWQnIDogJycpICsgJz4nOwogICAgfQogICAgdmFyIGh0bWwgPSAnJzsKICAgIGxp
c3RlLmZvckVhY2goZnVuY3Rpb24oZmEsIGkpIHsKICAgICAgICB2YXIgcyA9IGZhLnNlaGVuIHx8
IHt9OwogICAgICAgIHZhciBlZCA9IGZhLmVkaXRpZXJlbiB8fCB7fTsKICAgICAgICB2YXIgcGxh
bkxhYmVsID0gZmFjaGF1ZnNpY2h0UGxhbkxhYmVsKGVkKTsKICAgICAgICAvLyBHcmFudWxhcmUg
U3ViLVNpY2h0LUJ1dHRvbnMgKEZpbmRpbmcgQy45IC8gU3BlYyBGLjIpOiB6ZWlnZW4KICAgICAg
ICAvLyBrb256aXNlIHdpZSB2aWVsZSBBZG1pbi1TdWJ0YWJzIC8gU3RhdGlzdGlrLUJlcmVpY2hl
IHNpY2h0YmFyCiAgICAgICAgLy8gc2luZC4gS2xpY2sgb2VmZm5ldCBqZXdlaWxpZ2VzIERldGFp
bC1Nb2RhbC4KICAgICAgICB2YXIgYWRtaW5MYWJlbCA9IGZhY2hhdWZzaWNodFN1YlNpY2h0TGFi
ZWwoJ2FkbWluJywgZmEuYWRtaW5TaWNodGJhcmtlaXQsIHMuYWRtaW5pc3RyYXRpb24pOwogICAg
ICAgIHZhciBzdGF0TGFiZWwgID0gZmFjaGF1ZnNpY2h0U3ViU2ljaHRMYWJlbCgnc3RhdCcsICBm
YS5zdGF0aXN0aWtTaWNodGJhcmtlaXQsIHMuc3RhdGlzdGlrKTsKCiAgICAgICAgaHRtbCArPSAn
PHRyPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iJyArIGVz
Y2FwZUF0dHIoZmEubmFtZSB8fCAnJykgKyAnIiBkYXRhLWlkeD0iJyArIGkgKyAnIiBkYXRhLWZl
bGQ9Im5hbWUiIGNsYXNzPSJmYWNoYXVmc2ljaHQtaW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIj48
L3RkPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iJyArIGVz
Y2FwZUF0dHIoZmEubndLZW5udW5nIHx8ICcnKSArICciIGRhdGEtaWR4PSInICsgaSArICciIGRh
dGEtZmVsZD0ibndLZW5udW5nIiBjbGFzcz0iZmFjaGF1ZnNpY2h0LWlucHV0IiBzdHlsZT0id2lk
dGg6MTAwJSIgcGxhY2Vob2xkZXI9IkRPTUFJTlxcdXNlciBvZGVyIE5XMDUzNjA5Ij48L3RkPicg
KwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+JyArIGNoayhpLCAn
YWRtaW5pc3RyYXRpb24nLCAhIXMuYWRtaW5pc3RyYXRpb24pICsgJzwvdGQ+JyArCiAgICAgICAg
ICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj4nICsgY2hrKGksICdzdGF0aXN0aWsn
LCAgICAgICEhcy5zdGF0aXN0aWspICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9
InRleHQtYWxpZ246Y2VudGVyIj4nICsgY2hrKGksICdsb2didWNoJywgICAgICAgICEhcy5sb2di
dWNoKSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRl
ciI+JyArIGNoayhpLCAnYmFja3VwcycsICAgICAgICAhIXMuYmFja3VwcykgKyAnPC90ZD4nICsK
ICAgICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPicgKwogICAgICAgICAg
ICAgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImZhY2hhdWZzaWNodC1nZXNhbXQt
Y2hrIiBkYXRhLWlkeD0iJyArIGkgKyAnIicgKyAoZmEuZ2VzYW10dmVyYW50d29ydGxpY2ggPyAn
IGNoZWNrZWQnIDogJycpICsgJyB0aXRsZT0iR2VzYW10dmVyYW50d29ydGxpY2ggZsO8ciBkaWUg
QmVzZXR6dW5nIOKAlCBzY2hhbHRldCBkZW4gSGVhZGVyLVRhYiBQcsO8ZnVuZyBmcmVpIj4nICsK
ICAgICAgICAgICAgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+JyArCiAgICAgICAgICAgICAg
ICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIGZhY2hhdWZzaWNodC1zdWJz
aWNodC1idG4iIGRhdGEtYWt0aW9uPSJmYWNoYXVmc2ljaHQtc3Vic2ljaHQiIGRhdGEtaWR4PSIn
ICsgaSArICciJyArIChzLmFkbWluaXN0cmF0aW9uID8gJycgOiAnIGRpc2FibGVkJykgKyAnIHRp
dGxlPSInICsgZXNjYXBlQXR0cihzLmFkbWluaXN0cmF0aW9uID8gJ1dlbGNoZSBBZG1pbi1TdWIt
VGFicyBkYXJmIGRpZXNlIEZhY2hhdWZzaWNodCBzZWhlbj8nIDogJ0Vyc3QgIkFkbWluIi1Iw6Rr
Y2hlbiBvYmVuIHNldHplbicpICsgJyIgc3R5bGU9IndpZHRoOjEwMCU7dGV4dC1hbGlnbjpsZWZ0
Ij4nICsgZXNjYXBlSFRNTChhZG1pbkxhYmVsKSArICc8L2J1dHRvbj4nICsKICAgICAgICAgICAg
ICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4gZmFjaGF1ZnNpY2h0LXN1
YnNpY2h0LWJ0biIgZGF0YS1ha3Rpb249ImZhY2hhdWZzaWNodC1zdGF0c2ljaHQiIGRhdGEtaWR4
PSInICsgaSArICciJyArIChzLnN0YXRpc3RpayA/ICcnIDogJyBkaXNhYmxlZCcpICsgJyB0aXRs
ZT0iJyArIGVzY2FwZUF0dHIocy5zdGF0aXN0aWsgPyAnV2VsY2hlIFN0YXRpc3Rpay1CZXJlaWNo
ZSBkYXJmIGRpZXNlIEZhY2hhdWZzaWNodCBzZWhlbj8nIDogJ0Vyc3QgIlN0YXRpc3RpayItSMOk
a2NoZW4gb2JlbiBzZXR6ZW4nKSArICciIHN0eWxlPSJ3aWR0aDoxMDAlO3RleHQtYWxpZ246bGVm
dDttYXJnaW4tdG9wOjNweCI+JyArIGVzY2FwZUhUTUwoc3RhdExhYmVsKSArICc8L2J1dHRvbj4n
ICsKICAgICAgICAgICAgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+JyArCiAgICAgICAgICAg
ICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIGZhY2hhdWZzaWNodC1w
bGFuLWJ0biIgZGF0YS1ha3Rpb249ImZhY2hhdWZzaWNodC1kZXRhaWxzIiBkYXRhLWlkeD0iJyAr
IGkgKyAnIiB0aXRsZT0iS2xpY2tlbiB6dW0gQmVhcmJlaXRlbiBkZXIgUGxhbnVuZ3MtUmVjaHRl
IiBzdHlsZT0id2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQiPicgKwogICAgICAgICAgICAgICAg
ICAgIGVzY2FwZUhUTUwocGxhbkxhYmVsKSArCiAgICAgICAgICAgICAgICAnPC9idXR0b24+JyAr
CiAgICAgICAgICAgICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ3aGl0ZS1zcGFj
ZTpub3dyYXAiPicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tc2Vr
IGJ0bi1rbGVpbiIgZGF0YS1ha3Rpb249ImZhY2hhdWZzaWNodC10ZXN0ZW4iIGRhdGEtaWR4PSIn
ICsgaSArICciIHRpdGxlPSJPYmVyZmzDpGNoZSBhbHMgZGllc2UgRmFjaGF1ZnNpY2h0IHRlc3Rl
biAobnVyIGxva2FsLCBTZXJ2ZXItUmVjaHRlIGJsZWliZW4gU1UpIiBzdHlsZT0ibWFyZ2luLXJp
Z2h0OjRweCI+VGVzdGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFz
cz0iYnRuIGJ0bi1nZWZhaHIgYnRuLWtsZWluIGJ0bi1sb2VzY2hlbiIgZGF0YS1ha3Rpb249ImZh
Y2hhdWZzaWNodC1sb2VzY2hlbiIgZGF0YS1pZHg9IicgKyBpICsgJyIgdGl0bGU9IkzDtnNjaGVu
Ij5Mw7ZzY2hlbjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPC90ZD4nICsKICAgICAgICAgICAg
JzwvdHI+JzsKICAgIH0pOwogICAgdGJvZHkuaW5uZXJIVE1MID0gaHRtbDsKICAgIGZhY2hhdWZz
aWNodERpcnR5U2V0emVuKGZhbHNlKTsKfQoKLy8gQWJ3YWVydHNrb21wYXRpYmxlIEFkYXB0ZXIg
4oCUIGVpbmlnZSBleGlzdGllcmVuZGUgQXVmcnVmZXIgbnV0emVuIGRpZQovLyBhbHRlbiBGYWNo
YXVmc2ljaHQtTmFtZW4uIFVtbGVpdGVuIGF1ZiBkZW4gemVudHJhbGVuIFRyYWNrZXIKLy8gKFJl
Z2lzdHJ5IGluIGFkbWluLmpzIGRpcnR5VHJhY2tlckVpbnJpY2h0ZW4pLgpleHBvcnQgZnVuY3Rp
b24gZmFjaGF1ZnNpY2h0RGlydHlTZXR6ZW4oaXN0RGlydHkpIHsgZGlydHlTZXR6ZW4oJ2ZhY2hh
dWZzaWNodCcsIGlzdERpcnR5KTsgfQpleHBvcnQgZnVuY3Rpb24gZmFjaGF1ZnNpY2h0SXN0RGly
dHkoKSB7IHJldHVybiBkaXJ0eUlzdCgnZmFjaGF1ZnNpY2h0Jyk7IH0KCi8vIEtvbmZpZ3VyaWVy
YmFyZSBBZG1pbi1TdWItVGFicyBmdWVyIEZhY2hhdWZzaWNodC1HcmFudWxhci1TaWNodGJhcmtl
aXQuCi8vIFNpY2hlcmhlaXRzLVRhYnMgKHN1cGVydXNlciwgZmFjaGF1ZnNpY2h0LCBzaWNodGJh
cmtlaXQsIGZlYXR1cmVzLAovLyB0ZXN0ZGF0ZW4pIHNpbmQgaGFydGNvZGllcnQgU1Utb25seSB1
bmQgc3RlaGVuIE5JQ0hUIGluIGRpZXNlciBMaXN0ZS4KZXhwb3J0IHZhciBGQUNIQVVGU0lDSFRf
QURNSU5fU1VCVEFCUyA9IFsKICAgIHsga2V5OiAncGVyc29uYWwnLCAgICAgIGxhYmVsOiAnUGVy
c29uYWx2ZXJ3YWx0dW5nJyB9LAogICAgeyBrZXk6ICdncnVwcGVuJywgICAgICAgbGFiZWw6ICdE
aWVuc3RncnVwcGVuJyB9LAogICAgeyBrZXk6ICdmZWllcnRhZ2UnLCAgICAgbGFiZWw6ICdGZWll
cnRhZ2UnIH0sCiAgICB7IGtleTogJ2ZlcmllbicsICAgICAgICBsYWJlbDogJ0ZlcmllbicgfSwK
ICAgIHsga2V5OiAnc29uZGVydGVybWluZScsIGxhYmVsOiAnU29uZGVydGVybWluZScgfSwKICAg
IHsga2V5OiAnc2NoaWNodGNvZGVzJywgIGxhYmVsOiAnU2NoaWNodGNvZGVzJyB9LAogICAgeyBr
ZXk6ICdzdGFuZG9ydGUnLCAgICAgbGFiZWw6ICdTdGFuZG9ydGUnIH0sCiAgICB7IGtleTogJ2Vp
bnN0ZWxsdW5nZW4nLCBsYWJlbDogJ0VpbnN0ZWxsdW5nZW4nIH0sCiAgICB7IGtleTogJ2JhY2t1
cHMnLCAgICAgICBsYWJlbDogJ0JhY2t1cHMnIH0sCiAgICB7IGtleTogJ2ltcG9ydCcsICAgICAg
ICBsYWJlbDogJ0V4Y2VsLUltcG9ydCcgfSwKICAgIHsga2V5OiAnYmV6ZWljaG51bmdlbicsIGxh
YmVsOiAnQmV6ZWljaG51bmdlbicgfSwKICAgIHsga2V5OiAnaW5mb2hpbGZlJywgICAgIGxhYmVs
OiAnSW5mb3JtYXRpb24gJiBIaWxmZScgfSwKICAgIHsga2V5OiAnZW1haWx2b3JsYWdlbicsIGxh
YmVsOiAnRS1NYWlsLVZvcmxhZ2VuJyB9Cl07CmV4cG9ydCB2YXIgRkFDSEFVRlNJQ0hUX1NUQVRf
QkVSRUlDSEUgPSBbCiAgICB7IGtleTogJ2twaXMnLCAgICAgICAgICAgICAgbGFiZWw6ICdLUEkt
S2FjaGVsbiAob2JlbiknIH0sCiAgICB7IGtleTogJ3N0YXRGYWlybmVzcycsICAgICAgbGFiZWw6
ICdGYWlybmVzcy1BbnplaWdlJyB9LAogICAgeyBrZXk6ICdzdGF0TXVzdGVyJywgICAgICAgIGxh
YmVsOiAnQXVmZsOkbGxpZ2tlaXRlbiAvIE11c3RlcicgfSwKICAgIHsga2V5OiAnc3RhdEFid2Vz
ZW5oZWl0JywgICBsYWJlbDogJ0Fid2VzZW5oZWl0cy1LYWNoZWxuJyB9LAogICAgeyBrZXk6ICdz
dGF0RGV0YWlsVGFiZWxsZScsIGxhYmVsOiAnRGV0YWlsLVRhYmVsbGUnIH0KXTsKCi8vIExhYmVs
LUhlbHBlciBmdWVyIGRlbiBTdWItU2ljaHQtQnV0dG9uLiB0eXA6ICdhZG1pbid8J3N0YXQnLgov
LyBzaWNodGJhcmtlaXRNYXA6IGRhcyBmYS5hZG1pblNpY2h0YmFya2VpdCAvIGZhLnN0YXRpc3Rp
a1NpY2h0YmFya2VpdC1PYmpla3QuCi8vIERlZmF1bHQtVmVyaGFsdGVuIChNYXAgbGVlci91bmRl
ZmluZWQpOiAiQWxsZSBlcmxhdWJ0IiB3ZW5uIFRhYiBmcmVpZ2VnZWJlbiwKLy8gIuKAlCIgd2Vu
biBUYWIgbmljaHQgZnJlaWdlZ2ViZW4uCmV4cG9ydCBmdW5jdGlvbiBmYWNoYXVmc2ljaHRTdWJT
aWNodExhYmVsKHR5cCwgc2ljaHRiYXJrZWl0TWFwLCB0YWJGcmVpZ2VnZWJlbikgewogICAgdmFy
IGxpc3RlID0gdHlwID09PSAnYWRtaW4nID8gRkFDSEFVRlNJQ0hUX0FETUlOX1NVQlRBQlMgOiBG
QUNIQVVGU0lDSFRfU1RBVF9CRVJFSUNIRTsKICAgIHZhciBiZXJlaWNoID0gdHlwID09PSAnYWRt
aW4nID8gJ0FkbWluLVRhYnMnIDogJ1N0YXRpc3Rpay1CZXJlaWNoZSc7CiAgICBpZiAoIXRhYkZy
ZWlnZWdlYmVuKSByZXR1cm4gJ+KAlCAoJyArICh0eXAgPT09ICdhZG1pbicgPyAnQWRtaW4nIDog
J1N0YXRpc3RpaycpICsgJyBuaWNodCBmcmVpZ2VnZWJlbiknOwogICAgdmFyIG0gPSBzaWNodGJh
cmtlaXRNYXAgfHwge307CiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG0pOwogICAgaWYgKGtl
eXMubGVuZ3RoID09PSAwKSByZXR1cm4gJ0FsbGUgJyArIGJlcmVpY2ggKyAnIChTdGFuZGFyZCkn
OwogICAgdmFyIHZlcnN0ZWNrdCA9IGtleXMuZmlsdGVyKGZ1bmN0aW9uKGspIHsgcmV0dXJuIG1b
a10gPT09IGZhbHNlOyB9KS5sZW5ndGg7CiAgICB2YXIgc2ljaHRiYXIgPSBsaXN0ZS5sZW5ndGgg
LSB2ZXJzdGVja3Q7CiAgICBpZiAodmVyc3RlY2t0ID09PSAwKSByZXR1cm4gJ0FsbGUgJyArIGJl
cmVpY2g7CiAgICBpZiAoc2ljaHRiYXIgPT09IDApIHJldHVybiAnS2VpbmUgJyArIGJlcmVpY2g7
CiAgICByZXR1cm4gc2ljaHRiYXIgKyAnIHZvbiAnICsgbGlzdGUubGVuZ3RoICsgJyAnICsgYmVy
ZWljaDsKfQoKLy8gR2VuZXJpc2NoZXIgTW9kYWwtS29udGV4dC4gS2Fwc2VsdCwgQVVGIFdFTENI
RSBaLmFkbWluLUxpc3RlLCB1ZWJlcgovLyB3ZWxjaGVuIEVuZHBvaW50IHVuZCBtaXQgd2VsY2hl
bSBUYWJlbGxlbi1SZWFkZXIvUmVuZGVyZXIgZWluCi8vIFN1Yi1TaWNodC0vUGxhbi1Nb2RhbCBh
cmJlaXRldC4gRnJ1ZWhlciB3dXJkZSBkYWZ1ZXIga3VyenplaXRpZwovLyBaLmFkbWluLmZhY2hh
dWZzaWNodCB1bWdlYm9nZW4gKyBuYWNoIDUwbXMgcGVyIHNldFRpbWVvdXQgenVydWVjay0KLy8g
Z2VzcGllZ2VsdCDigJQgZGFzIGZldWVydGUgYWJlciwgQkVWT1IgZGVyIFVzZXIgaW0gTW9kYWwg
IlNwZWljaGVybiIKLy8gZHJ1ZWNrdGUsIHNvZGFzcyBkZXIgTW9kYWwtU2F2ZSBkaWUgRUNIVEUg
RmFjaGF1ZnNpY2h0LUxpc3RlIG1pdAovLyBSb2xsZW4tRGF0ZW4gdWViZXJzY2hyaWViIChDUklU
SUNBTCBEYXRlbmtvcnJ1cHR1cikuIERlciBLb250ZXh0Ci8vIG1hY2h0IGRlbiBTd2FwIHVlYmVy
Zmx1ZXNzaWc6IGplZGVzIE1vZGFsIHNjaHJlaWJ0IGRpcmVrdCBhdWYgZGllCi8vIHJpY2h0aWdl
IExpc3RlLgpmdW5jdGlvbiBmYWNoYXVmc2ljaHRNb2RhbEN0eCgpIHsKICAgIHJldHVybiB7CiAg
ICAgICAgZ2V0TGlzdGU6ICAgICAgICBmdW5jdGlvbigpIHsgcmV0dXJuIFouYWRtaW4uZmFjaGF1
ZnNpY2h0IHx8IFtdOyB9LAogICAgICAgIHNldExpc3RlOiAgICAgICAgZnVuY3Rpb24oZCkgeyBa
LmFkbWluLmZhY2hhdWZzaWNodCA9IGQ7IH0sCiAgICAgICAgYXVzVGFiZWxsZUxlc2VuOiBmdW5j
dGlvbigpIHsgcmV0dXJuIGZhY2hhdWZzaWNodEF1c1RhYmVsbGVMZXNlbigpOyB9LAogICAgICAg
IGVuZHBvaW50OiAgICAgICAgJy9hcGkvYWRtaW4vZmFjaGF1ZnNpY2h0JywKICAgICAgICByZW5k
ZXJuOiAgICAgICAgIGZhY2hhdWZzaWNodFJlbmRlcm4sCiAgICAgICAgLy8gRmFjaGF1ZnNpY2h0
LVBsYW4tTW9kYWwgbnV0enQgZWluZW4gSW5mby1Ub2FzdCBhbHMgU3BlaWNoZXItCiAgICAgICAg
Ly8gSGlud2VpcyB1bmQgbGFlc3N0IGRhcyBEaXJ0eS1GbGFnIGluIFJ1aGUgKGtlaW4gUmVzZXQg
aW4KICAgICAgICAvLyBmYWNoYXVmc2ljaHRSZW5kZXJuKS4KICAgICAgICBtYXJrRGlydHk6ICAg
ICAgIGZ1bmN0aW9uKCkge30KICAgIH07Cn0KZnVuY3Rpb24gcm9sbGVNb2RhbEN0eCh0eXApIHsK
ICAgIHJldHVybiB7CiAgICAgICAgZ2V0TGlzdGU6ICAgICAgICBmdW5jdGlvbigpIHsgcmV0dXJu
IFouYWRtaW5bdHlwXSB8fCBbXTsgfSwKICAgICAgICBzZXRMaXN0ZTogICAgICAgIGZ1bmN0aW9u
KGQpIHsgWi5hZG1pblt0eXBdID0gZDsgfSwKICAgICAgICBhdXNUYWJlbGxlTGVzZW46IGZ1bmN0
aW9uKCkgeyByZXR1cm4gcm9sbGVuQXVzVGFiZWxsZUxlc2VuKHR5cCwgZmFsc2UpOyB9LAogICAg
ICAgIGVuZHBvaW50OiAgICAgICAgKFJPTExFTl9UWVBFTlt0eXBdIHx8IHt9KS5lbmRwb2ludCwK
ICAgICAgICByZW5kZXJuOiAgICAgICAgIGZ1bmN0aW9uKCkgeyByb2xsZW5UYWJlbGxlUmVuZGVy
bih0eXApOyB9LAogICAgICAgIC8vIHJvbGxlblRhYmVsbGVSZW5kZXJuIHNldHp0IERpcnR5PWZh
bHNlIGFtIEVuZGUg4oCUIG5hY2ggZWluZXIKICAgICAgICAvLyBuaWNodC1wZXJzaXN0aWVydGVu
IFBsYW4tQWVuZGVydW5nIG11c3MgZXMgd2llZGVyIHRydWUgc2Vpbi4KICAgICAgICBtYXJrRGly
dHk6ICAgICAgIGZ1bmN0aW9uKCkgeyByb2xsZW5EaXJ0eVNldHplbih0eXAsIHRydWUpOyB9CiAg
ICB9Owp9CgovLyBNb2RhbCBmdWVyIGdyYW51bGFyZSBTdWItU2ljaHRiYXJrZWl0LiBzaWNodFR5
cDogJ2FkbWluJ3wnc3RhdCcuCi8vIGN0eCBvcHRpb25hbCDigJQgRGVmYXVsdCBGYWNoYXVmc2lj
aHQ7IFJvbGxlbiByZWljaGVuIHJvbGxlTW9kYWxDdHgodHlwKS4KZXhwb3J0IGZ1bmN0aW9uIGZh
Y2hhdWZzaWNodFN1YlNpY2h0TW9kYWwoaWR4LCBzaWNodFR5cCwgY3R4KSB7CiAgICBpZiAoIVou
cmVjaHRlLmlzdFN1cGVyVXNlcikgcmV0dXJuOwogICAgY3R4ID0gY3R4IHx8IGZhY2hhdWZzaWNo
dE1vZGFsQ3R4KCk7CiAgICB2YXIgdHlwID0gc2ljaHRUeXA7CiAgICAvLyBLb21wbGV0dGUgVGFi
ZWxsZSBpbiBkZW4gU3RhdGUgc3BpZWdlbG4gKGFsbGUgWmVpbGVuLCBuaWNodCBudXIgZGllCiAg
ICAvLyBlZGl0aWVydGUpIOKAlCBzb25zdCBnZWhlbiBwYXJhbGxlbGUgVGFiZWxsZW4tRWRpdHMg
YmVpbSBNb2RhbC1TcHJ1bmcKICAgIC8vIHZlcmxvcmVuLgogICAgY3R4LnNldExpc3RlKGN0eC5h
dXNUYWJlbGxlTGVzZW4oKSk7CiAgICB2YXIgbGlzdGUgPSBjdHguZ2V0TGlzdGUoKTsKICAgIGlm
ICghbGlzdGVbaWR4XSkgcmV0dXJuOwogICAgdmFyIGZhID0gbGlzdGVbaWR4XTsKICAgIHZhciBm
ZWxkID0gdHlwID09PSAnYWRtaW4nID8gJ2FkbWluU2ljaHRiYXJrZWl0JyA6ICdzdGF0aXN0aWtT
aWNodGJhcmtlaXQnOwogICAgdmFyIHN1Ykxpc3RlID0gdHlwID09PSAnYWRtaW4nID8gRkFDSEFV
RlNJQ0hUX0FETUlOX1NVQlRBQlMgOiBGQUNIQVVGU0lDSFRfU1RBVF9CRVJFSUNIRTsKICAgIHZh
ciB0aXRlbCA9IHR5cCA9PT0gJ2FkbWluJyA/ICdBZG1pbi1TaWNodCcgOiAnU3RhdGlzdGlrLVNp
Y2h0JzsKICAgIHZhciBiZXNjaHIgPSB0eXAgPT09ICdhZG1pbicKICAgICAgICA/ICdXZWxjaGUg
U3ViLVRhYnMgZGVzIEFkbWluLUJlcmVpY2hzIGRhcmYgZGllc2UgRmFjaGF1ZnNpY2h0IHNlaGVu
PyBTaWNoZXJoZWl0c2tyaXRpc2NoZSBUYWJzIChTdXBlclVzZXIsIEZhY2hhdWZzaWNodCwgU2lj
aHRiYXJrZWl0LCBGdW5rdGlvbmVuLCBUZXN0ZGF0ZW4pIHNpbmQgZ3J1bmRzw6R0emxpY2ggU1Ut
b25seSB1bmQgbmljaHQgZnJlaWdlYmJhci4nCiAgICAgICAgOiAnV2VsY2hlIEJlcmVpY2hlIGRl
cyBTdGF0aXN0aWstVGFicyBkYXJmIGRpZXNlIEZhY2hhdWZzaWNodCBzZWhlbj8nOwogICAgdmFy
IGFrdHVlbGxlTWFwID0gZmFbZmVsZF0gfHwge307CgogICAgdmFyIGxpc3RlX2h0bWwgPSBzdWJM
aXN0ZS5tYXAoZnVuY3Rpb24oaXRlbSkgewogICAgICAgIHZhciBzaWNodGJhciA9IGFrdHVlbGxl
TWFwW2l0ZW0ua2V5XSAhPT0gZmFsc2U7ICAvLyBEZWZhdWx0OiBzaWNodGJhcgogICAgICAgIHJl
dHVybiAnPGxhYmVsIGNsYXNzPSJmYS1zdWJzaWNodC16ZWlsZSI+JyArCiAgICAgICAgICAgICc8
aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJmYS1zdWJzaWNodC1jaGsiIGRhdGEta2V5PSIn
ICsgZXNjYXBlQXR0cihpdGVtLmtleSkgKyAnIicgKyAoc2ljaHRiYXIgPyAnIGNoZWNrZWQnIDog
JycpICsgJz4nICsKICAgICAgICAgICAgJzxzcGFuPicgKyBlc2NhcGVIVE1MKGl0ZW0ubGFiZWwp
ICsgJzwvc3Bhbj4nICsKICAgICAgICAnPC9sYWJlbD4nOwogICAgfSkuam9pbignJyk7CgogICAg
dmFyIGtvZXJwZXIgPQogICAgICAgICc8cCBjbGFzcz0iZXZtLWJlc2NocmVpYnVuZyI+JyArIGVz
Y2FwZUhUTUwoYmVzY2hyKSArICc8L3A+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZhLXN1YnNp
Y2h0LWFrdGlvbmVuIj4nICsKICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4ta2xl
aW4iIHR5cGU9ImJ1dHRvbiIgaWQ9ImZhLXN1YnNpY2h0LWFsbGUiPkFsbGUgYWt0aXZpZXJlbjwv
YnV0dG9uPicgKwogICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1rbGVpbiIgdHlw
ZT0iYnV0dG9uIiBpZD0iZmEtc3Vic2ljaHQta2VpbmUiPkFsbGUgZGVha3RpdmllcmVuPC9idXR0
b24+JyArCiAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWtsZWluIiB0eXBlPSJi
dXR0b24iIGlkPSJmYS1zdWJzaWNodC1kZWZhdWx0Ij5BdWYgU3RhbmRhcmQgenVyw7xja3NldHpl
bjwvYnV0dG9uPicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZmEt
c3Vic2ljaHQtbGlzdGUiPicgKyBsaXN0ZV9odG1sICsgJzwvZGl2Pic7CgogICAgdmFyIGZ1c3Mg
PSAnPGJ1dHRvbiBjbGFzcz0iYnRuIiBpZD0iZmEtc3ViLWFiYnIiIHR5cGU9ImJ1dHRvbiI+QWJi
cmVjaGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRu
LXByaW1hZXIiIGlkPSJkbGctc3BlaWNoZXJuIiB0eXBlPSJidXR0b24iPsOcYmVybmVobWVuPC9i
dXR0b24+JzsKCiAgICBtb2RhbFplaWdlbih0aXRlbCArICc6ICcgKyAoZmEubmFtZSB8fCAnKG9o
bmUgTmFtZSknKSwga29lcnBlciwgZnVzcywgZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG5ldSA9
IHt9OwogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5mYS1zdWJzaWNodC1jaGsn
KS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsKICAgICAgICAgICAgdmFyIGsgPSBjLmdldEF0dHJpYnV0
ZSgnZGF0YS1rZXknKTsKICAgICAgICAgICAgaWYgKCFjLmNoZWNrZWQpIG5ldVtrXSA9IGZhbHNl
OyAgLy8gTnVyIGV4cGxpeml0ZSBWZXJzdGVja2VyIHNwZWljaGVybgogICAgICAgIH0pOwogICAg
ICAgIC8vIFZvcmhlciBudXIgQ2xpZW50LVN0YXRlIOKAlCBoYXQgenUgIkdhbGVja2kgc2llaHQg
dHJvdHpkZW0gYWxsZXMiCiAgICAgICAgLy8gZ2VmdWVocnQsIHdlaWwgVXNlciBkYXMgc2VwYXJh
dGUgIkZhY2hhdWZzaWNodCBzcGVpY2hlcm4iIHVudGVuCiAgICAgICAgLy8gdmVyZ2lzc3QuIEpl
dHp0IGRpcmVrdCBhbnMgQmFja2VuZCAoa29tcGxldHRlIGZhY2hhdWZzaWNodC1MaXN0ZQogICAg
ICAgIC8vIG1pdCBkZW0gZWluZW4gYWt0dWFsaXNpZXJ0ZW4gRWludHJhZykuCiAgICAgICAgZmFb
ZmVsZF0gPSBuZXU7CiAgICAgICAgdmFyIGRhdGVuID0gY3R4LmF1c1RhYmVsbGVMZXNlbigpOwog
ICAgICAgIGlmICghZGF0ZW5baWR4XSkgeyB0b2FzdCgnRWludHJhZyBuaWNodCBtZWhyIHZvcmhh
bmRlbicsICdmZWhsZXInKTsgcmV0dXJuOyB9CiAgICAgICAgZGF0ZW5baWR4XVtmZWxkXSA9IG5l
dTsKICAgICAgICBhcGlQdXQoY3R4LmVuZHBvaW50LCBkYXRlbikudGhlbihmdW5jdGlvbihyKSB7
CiAgICAgICAgICAgIGN0eC5zZXRMaXN0ZShkYXRlbik7CiAgICAgICAgICAgIG1vZGFsU2NobGll
c3Nlbih0cnVlKTsKICAgICAgICAgICAgY3R4LnJlbmRlcm4oKTsKICAgICAgICAgICAgdG9hc3Qo
dGl0ZWwgKyAnIGdlc3BlaWNoZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICBpZiAociAmJiBy
Ll9icmF1Y2h0X21haWx0bykgdmVyYW50d29ydHVuZ3NNYWlsdG9GZXVlcm4oci5fYnJhdWNodF9t
YWlsdG8pOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdG9hc3Qo
J0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOwogICAgICAgIH0pOwogICAgfSk7CiAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmEtc3ViLWFiYnInKS5hZGRFdmVudExpc3RlbmVy
KCdjbGljaycsIGZ1bmN0aW9uKCkgeyBtb2RhbFNjaGxpZXNzZW4oKTsgfSk7CiAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZmEtc3Vic2ljaHQtYWxsZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZh
LXN1YnNpY2h0LWNoaycpLmZvckVhY2goZnVuY3Rpb24oYykgeyBjLmNoZWNrZWQgPSB0cnVlOyB9
KTsKICAgICAgICBaLm1vZGFsRGlydHkgPSB0cnVlOwogICAgfSk7CiAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZmEtc3Vic2ljaHQta2VpbmUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IGZ1bmN0aW9uKCkgewogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5mYS1zdWJz
aWNodC1jaGsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsgYy5jaGVja2VkID0gZmFsc2U7IH0pOwog
ICAgICAgIFoubW9kYWxEaXJ0eSA9IHRydWU7CiAgICB9KTsKICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdmYS1zdWJzaWNodC1kZWZhdWx0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBm
dW5jdGlvbigpIHsKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZmEtc3Vic2lj
aHQtY2hrJykuZm9yRWFjaChmdW5jdGlvbihjKSB7IGMuY2hlY2tlZCA9IHRydWU7IH0pOwogICAg
ICAgIFoubW9kYWxEaXJ0eSA9IHRydWU7CiAgICB9KTsKfQoKLy8gRXJ6ZXVndCBkYXMgZHluYW1p
c2NoZSBMYWJlbCBmdWVyIGRlbiBQbGFudW5ncy1CdXR0b24gKEMuMTEpOgovLyAiTnVyIGVpZ2Vu
ZSBaZWlsZSIgd2VubiBuaWNodHMgZ2VzZXR6dDsgIkFsbGUgRGllbnN0Z3J1cHBlbiIsICJBbGxl
Ci8vIFN0YW5kb3J0ZSIsICJBbGxlIFBlcnNvbmVuIiB3ZW5uIGpld2VpbHMga29tcGxldHRlIEF1
c3dhaGw7IHNvbnN0Ci8vIEFuemFobCArIEJlcmVpY2guIE1laHJlcmUgQmVyZWljaGUgd2VyZGVu
IG1pdCAiIMK3ICIgdmVyYnVuZGVuLgpleHBvcnQgZnVuY3Rpb24gZmFjaGF1ZnNpY2h0UGxhbkxh
YmVsKGVkKSB7CiAgICBlZCA9IGVkIHx8IHt9OwogICAgdmFyIG5QID0gKGVkLnBlcnNvbmVuSWRz
IHx8IFtdKS5sZW5ndGg7CiAgICB2YXIgbkcgPSAoZWQuZGllbnN0Z3J1cHBlbiB8fCBbXSkubGVu
Z3RoOwogICAgdmFyIG5TID0gKGVkLnN0YW5kb3J0ZSB8fCBbXSkubGVuZ3RoOwogICAgaWYgKG5Q
ID09PSAwICYmIG5HID09PSAwICYmIG5TID09PSAwKSByZXR1cm4gJ051ciBlaWdlbmUgWmVpbGUn
OwogICAgdmFyIGdlc2FtdEcgPSAoWi5hZG1pbi5ncnVwcGVuIHx8IFtdKS5sZW5ndGg7CiAgICB2
YXIgZ2VzYW10UyA9IChaLmFkbWluLnN0YW5kb3J0ZSB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uKHgp
IHsgcmV0dXJuIHgua3VlcnplbCB8fCB4Lm5hbWU7IH0pLmxlbmd0aDsKICAgIC8vIFBlcnNvbmVu
LVRvdGFsID0gYWt0aXZlIG1pbnVzIDEgKGVpZ2VuZSBQZXJzb24gaXN0IGltbWVyIGltcGxpeml0
IGVybGF1YnQpCiAgICB2YXIgZ2VzYW10UCA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZp
bHRlcihmdW5jdGlvbihwKSB7IHJldHVybiBwLmFrdGl2OyB9KS5sZW5ndGggLSAxOwogICAgdmFy
IHRlaWxlID0gW107CiAgICBpZiAobkcgPiAwKSB0ZWlsZS5wdXNoKG5HID09PSBnZXNhbXRHICYm
IGdlc2FtdEcgPiAwID8gJ0FsbGUgRGllbnN0Z3J1cHBlbicgOiBuRyArIChuRyA9PT0gMSA/ICcg
RGllbnN0Z3J1cHBlJyA6ICcgRGllbnN0Z3J1cHBlbicpKTsKICAgIGlmIChuUyA+IDApIHRlaWxl
LnB1c2goblMgPT09IGdlc2FtdFMgJiYgZ2VzYW10UyA+IDAgPyAnQWxsZSBTdGFuZG9ydGUnIDog
blMgKyAoblMgPT09IDEgPyAnIFN0YW5kb3J0JyA6ICcgU3RhbmRvcnRlJykpOwogICAgaWYgKG5Q
ID4gMCkgdGVpbGUucHVzaChuUCA9PT0gZ2VzYW10UCAmJiBnZXNhbXRQID4gMCA/ICdBbGxlIFBl
cnNvbmVuJyA6IG5QICsgKG5QID09PSAxID8gJyBQZXJzb24nIDogJyBQZXJzb25lbicpKTsKICAg
IC8vIFdlbm4gYWxsZSBkcmVpICJBbGxlIC4uLiIgLT4ga29tcGFrdGVyICJEYXJmIGFsbGVzIHBs
YW5lbiIKICAgIGlmICh0ZWlsZS5sZW5ndGggPT09IDMgJiYKICAgICAgICB0ZWlsZVswXS5pbmRl
eE9mKCdBbGxlICcpID09PSAwICYmCiAgICAgICAgdGVpbGVbMV0uaW5kZXhPZignQWxsZSAnKSA9
PT0gMCAmJgogICAgICAgIHRlaWxlWzJdLmluZGV4T2YoJ0FsbGUgJykgPT09IDApIHsKICAgICAg
ICByZXR1cm4gJ0RhcmYgYWxsZXMgcGxhbmVuJzsKICAgIH0KICAgIHJldHVybiB0ZWlsZS5qb2lu
KCcgwrcgJyk7Cn0KCi8vIGZpbHRlckxlZXI6IHRydWUgPSBFaW50cmFlZ2Ugb2huZSBOYW1lIFVO
RCBvaG5lIE5XLUtlbm51bmcgcmF1c3dlcmZlbi4KLy8gRGVmYXVsdCBmYWxzZSwgZGFtaXQgU3Rh
dGUtVWViZXJuYWhtZW4gKExvZXNjaGVuLCBNb2RhbC1TcHJ1bmcpIGtlaW5lCi8vIGJlcmVpdHMg
Z2VzcGVpY2hlcnRlbiBFaW50cmFlZ2UgbWl0IGZlaGxlbmRlciBud0tlbm51bmcgd2VnZmVnZW4u
Ci8vIE51ciBkZXIgIkZhY2hhdWZzaWNodCBzcGVpY2hlcm4iLUJ1dHRvbiBydWZ0IG1pdCBmaWx0
ZXJMZWVyPXRydWUgYXVmLgpleHBvcnQgZnVuY3Rpb24gZmFjaGF1ZnNpY2h0QXVzVGFiZWxsZUxl
c2VuKGZpbHRlckxlZXIpIHsKICAgIHZhciBhbHRlTGlzdGUgPSBaLmFkbWluLmZhY2hhdWZzaWNo
dCB8fCBbXTsKICAgIHZhciBmZWxkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZmFj
aGF1ZnNpY2h0LWlucHV0Jyk7CiAgICB2YXIgbWFwID0ge307CiAgICBmZWxkZXIuZm9yRWFjaChm
dW5jdGlvbihmKSB7CiAgICAgICAgdmFyIGlkeCA9IGYuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcp
OwogICAgICAgIHZhciBmZWxkID0gZi5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmVsZCcpOwogICAgICAg
IGlmICghbWFwW2lkeF0pIG1hcFtpZHhdID0ge307CiAgICAgICAgbWFwW2lkeF1bZmVsZF0gPSBm
LnZhbHVlLnRyaW0oKTsKICAgIH0pOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZh
Y2hhdWZzaWNodC1jaGsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsKICAgICAgICB2YXIgaWR4ID0g
Yy5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4Jyk7CiAgICAgICAgdmFyIGZlbGQgPSBjLmdldEF0dHJp
YnV0ZSgnZGF0YS1mZWxkJyk7CiAgICAgICAgaWYgKCFtYXBbaWR4XSkgbWFwW2lkeF0gPSB7fTsK
ICAgICAgICBpZiAoIW1hcFtpZHhdLnNlaGVuKSBtYXBbaWR4XS5zZWhlbiA9IHt9OwogICAgICAg
IG1hcFtpZHhdLnNlaGVuW2ZlbGRdID0gYy5jaGVja2VkOwogICAgfSk7CiAgICBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCcuZmFjaGF1ZnNpY2h0LWdlc2FtdC1jaGsnKS5mb3JFYWNoKGZ1bmN0
aW9uKGMpIHsKICAgICAgICB2YXIgaWR4ID0gYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4Jyk7CiAg
ICAgICAgaWYgKCFtYXBbaWR4XSkgbWFwW2lkeF0gPSB7fTsKICAgICAgICBtYXBbaWR4XS5nZXNh
bXR2ZXJhbnR3b3J0bGljaCA9IGMuY2hlY2tlZDsKICAgIH0pOwogICAgdmFyIGVyZ2VibmlzID0g
W107CiAgICBPYmplY3Qua2V5cyhtYXApLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gcGFy
c2VJbnQoYSkgLSBwYXJzZUludChiKTsgfSkuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICAgICAg
dmFyIGFsdCA9IGFsdGVMaXN0ZVtwYXJzZUludChrKV0gfHwge307CiAgICAgICAgdmFyIGUgPSBt
YXBba107CiAgICAgICAgLy8gTnVyIHdlbm4gZXhwbGl6aXQgZmlsdGVyTGVlcj10cnVlIGdlc2V0
enQgaXN0OiBFaW50cmFlZ2UgZ2FuegogICAgICAgIC8vIG9obmUgTmFtZSBVTkQgb2huZSBOVy1L
ZW5udW5nIHZlcndlcmZlbiAoPSBsZWVyZSBuZXUtYW5nZWxlZ3RlCiAgICAgICAgLy8gUmVpaGVu
KS4gQW5zb25zdGVuIElNTUVSIGR1cmNocmVpY2hlbiwgZGFtaXQgTG9lc2NoLUFrdGlvbmVuCiAg
ICAgICAgLy8ga2VpbmUgYmVzdGVoZW5kZW4gRWludHJhZWdlIG1pdHJlaXNzZW4uCiAgICAgICAg
aWYgKGZpbHRlckxlZXIgJiYgIWUubmFtZSAmJiAhZS5ud0tlbm51bmcpIHJldHVybjsKICAgICAg
ICAvLyBHcmFudWxhcmUgU3ViLVNpY2h0YmFya2VpdCAoU3BlYyBGLjIpOiB3aXJkIGltIERldGFp
bC1Nb2RhbCBnZXBmbGVndCwKICAgICAgICAvLyBoaWVyIG51ciBkdXJjaGdlcmVpY2h0LiBGYWxs
cyBuaWNodCB2b3JoYW5kZW4gLT4gbGVlcmUgTWFwICg9IGFsbGVzIGVybGF1YnQpLgogICAgICAg
IGVyZ2VibmlzLnB1c2goewogICAgICAgICAgICBuYW1lOiAgICAgIGUubmFtZSwKICAgICAgICAg
ICAgbndLZW5udW5nOiBlLm53S2VubnVuZywKICAgICAgICAgICAgc2VoZW46IHsKICAgICAgICAg
ICAgICAgIGFkbWluaXN0cmF0aW9uOiAhIShlLnNlaGVuICYmIGUuc2VoZW4uYWRtaW5pc3RyYXRp
b24pLAogICAgICAgICAgICAgICAgc3RhdGlzdGlrOiAgICAgICEhKGUuc2VoZW4gJiYgZS5zZWhl
bi5zdGF0aXN0aWspLAogICAgICAgICAgICAgICAgbG9nYnVjaDogICAgICAgICEhKGUuc2VoZW4g
JiYgZS5zZWhlbi5sb2didWNoKSwKICAgICAgICAgICAgICAgIGJhY2t1cHM6ICAgICAgICAhIShl
LnNlaGVuICYmIGUuc2VoZW4uYmFja3VwcykKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZ2Vz
YW10dmVyYW50d29ydGxpY2g6ICEhZS5nZXNhbXR2ZXJhbnR3b3J0bGljaCwKICAgICAgICAgICAg
YWRtaW5TaWNodGJhcmtlaXQ6ICAgICBhbHQuYWRtaW5TaWNodGJhcmtlaXQgICAgIHx8IHt9LAog
ICAgICAgICAgICBzdGF0aXN0aWtTaWNodGJhcmtlaXQ6IGFsdC5zdGF0aXN0aWtTaWNodGJhcmtl
aXQgfHwge30sCiAgICAgICAgICAgIGVkaXRpZXJlbjogYWx0LmVkaXRpZXJlbiB8fCB7IHBlcnNv
bmVuSWRzOiBbXSwgZGllbnN0Z3J1cHBlbjogW10sIHN0YW5kb3J0ZTogW10gfQogICAgICAgIH0p
OwogICAgfSk7CiAgICByZXR1cm4gZXJnZWJuaXM7Cn0KCi8vID09PT09IEdlbmVyaXNjaGUgUm9s
bGVuLVZlcndhbHR1bmc6IERpcmVrdGlvbnNsZWl0dW5nICsgRnVlaHJ1bmdzc3RlbGxlID09PT09
Ci8vCi8vIFNjaGVtYS1pZGVudGlzY2ggenVyIEZhY2hhdWZzaWNodCwgYWJlciB6d2VpIHdlc2Vu
dGxpY2hlIFVYLVVudGVyLQovLyBzY2hpZWRlOgovLyAgIC0gUGVyc29uZW4tU2VsZWN0b3IgKERy
b3Bkb3duIGRlciBha3RpdmVuIFBlcnNvbmVuKSBzdGF0dCBmcmVpZXIKLy8gICAgIG5hbWUvbndL
ZW5udW5nLUVpbmdhYmUg4oCUIG5hbWUgKyBud0tlbm51bmcgd2VyZGVuIGF1dG9tYXRpc2NoIGF1
cwovLyAgICAgZGVyIGdld2FlaGx0ZW4gUGVyc29uYWx2ZXJ3YWx0dW5ncy1QZXJzb24gdWViZXJu
b21tZW4uCi8vICAgLSBLZWluZSAiR2VzYW10dmVyYW50d29ydGxpY2giLVNwYWx0ZSwga2VpbiBU
ZXN0ZW4tQnV0dG9uIChkaWUKLy8gICAgIGJlaWRlbiBuZXVlbiBSb2xsZW4gc2luZCBrZWluZSBW
ZXJ0cmV0dW5ncy1Sb2xsZW4gZnVlciBER0wtCi8vICAgICBWZXJhbnR3b3J0dW5nOyBkYXMgYmxl
aWJ0IGRlciBGYWNoYXVmc2ljaHQgdm9yYmVoYWx0ZW4pLgovLwovLyBTdWItU2ljaHQtQnV0dG9u
cyArIFBsYW51bmdzLVJlY2h0ZSB0ZWlsZW4gc2ljaCBNb2RhbGUgdW5kIExvZ2lrIG1pdAovLyBk
ZXIgRmFjaGF1ZnNpY2h0IChTcGVjIEYuMikuIEJlaW0gTGVzZW4gYXVzIGRlbiBNb2RhbGVuIHNj
aHJlaWJ0IGRlcgovLyBnZW5lcmlzY2hlIFBmYWQgYXVmIFouYWRtaW5bdHlwXSAodHlwID0gJ2Rp
cmVrdGlvbnNsZWl0dW5nJyBvZGVyCi8vICdmdWVocnVuZ3NzdGVsbGUnKS4KCmV4cG9ydCB2YXIg
Uk9MTEVOX1RZUEVOID0gewogICAgZGlyZWt0aW9uc2xlaXR1bmc6IHsgbGFiZWw6ICdEaXJla3Rp
b25zbGVpdHVuZycsIGVuZHBvaW50OiAnL2FwaS9hZG1pbi9kaXJla3Rpb25zbGVpdHVuZycgfSwK
ICAgIGZ1ZWhydW5nc3N0ZWxsZTogICB7IGxhYmVsOiAnRsO8aHJ1bmdzc3RlbGxlJywgICAgZW5k
cG9pbnQ6ICcvYXBpL2FkbWluL2Z1ZWhydW5nc3N0ZWxsZScgICB9Cn07CgpmdW5jdGlvbiByb2xs
ZVBlcnNvbk9wdGlvbnNIdG1sKGFrdHVlbGxlS2VubnVuZykgewogICAgdmFyIHBlcnNvbmVuID0g
KFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkKICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKHApIHsg
cmV0dXJuIHAuYWt0aXYgJiYgIXAuZ2Vsb2VzY2h0QW07IH0pCiAgICAgICAgLnNsaWNlKCkKICAg
ICAgICAuc29ydChmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAgIHJldHVybiAoKGEubmFtZSB8
fCAnJykgKyAnICcgKyAoYS52b3JuYW1lIHx8ICcnKSkubG9jYWxlQ29tcGFyZSgoKGIubmFtZSB8
fCAnJykgKyAnICcgKyAoYi52b3JuYW1lIHx8ICcnKSksICdkZScpOwogICAgICAgIH0pOwogICAg
dmFyIGh0bWwgPSAnPG9wdGlvbiB2YWx1ZT0iIj7igJQgUGVyc29uIHfDpGhsZW4g4oCUPC9vcHRp
b24+JzsKICAgIHZhciBtaXRLZW5udW5nID0gW107CiAgICB2YXIgb2huZUtlbm51bmcgPSBbXTsK
ICAgIHBlcnNvbmVuLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAgICAgIGlmIChwLm53S2VubnVu
ZyAmJiBwLm53S2VubnVuZy50cmltKCkpIG1pdEtlbm51bmcucHVzaChwKTsKICAgICAgICBlbHNl
IG9obmVLZW5udW5nLnB1c2gocCk7CiAgICB9KTsKICAgIG1pdEtlbm51bmcuZm9yRWFjaChmdW5j
dGlvbihwKSB7CiAgICAgICAgdmFyIGxhYmVsID0gKHAuZGllbnN0Z3JhZCA/IHAuZGllbnN0Z3Jh
ZCArICcgJyA6ICcnKSArCiAgICAgICAgICAgICAgICAgICAgKHAudm9ybmFtZSA/IHAudm9ybmFt
ZSArICcgJyA6ICcnKSArIChwLm5hbWUgfHwgJycpICsKICAgICAgICAgICAgICAgICAgICAocC5n
cnVwcGUgPyAnICgnICsgcC5ncnVwcGUgKyAnKScgOiAnJyk7CiAgICAgICAgdmFyIGtlbm51bmcg
PSBwLm53S2VubnVuZzsKICAgICAgICB2YXIgc2VsID0gKGtlbm51bmcudG9Mb3dlckNhc2UoKSA9
PT0gKGFrdHVlbGxlS2VubnVuZyB8fCAnJykudG9Mb3dlckNhc2UoKSkgPyAnIHNlbGVjdGVkJyA6
ICcnOwogICAgICAgIGh0bWwgKz0gJzxvcHRpb24gdmFsdWU9IicgKyBlc2NhcGVBdHRyKGtlbm51
bmcpICsgJyIgZGF0YS1uYW1lPSInICsgZXNjYXBlQXR0cigoKHAudm9ybmFtZSA/IHAudm9ybmFt
ZSArICcgJyA6ICcnKSArIChwLm5hbWUgfHwgJycpKS50cmltKCkpICsgJyInICsgc2VsICsgJz4n
ICsgZXNjYXBlSFRNTChsYWJlbCkgKyAnPC9vcHRpb24+JzsKICAgIH0pOwogICAgLy8gUGVyc29u
ZW4gb2huZSBOVy1LZW5udW5nIGRpc2FibGVkLCBtaXQgR3J1cHBlbi1MYWJlbCB1bmQgSGlud2Vp
cy4gRWluZQogICAgLy8gUm9sbGUgb2huZSBOVy1LZW5udW5nIGthbm4gYmVpbSBMb2dpbiBuaWNo
dCB6dWdlb3JkbmV0IHdlcmRlbiDigJQgZGFoZXIKICAgIC8vIHNwZXJyZW4gd2lyIGRpZSBBdXN3
YWhsIHVuZCB6ZWlnZW4gZGVuIEdydW5kIGltIExpc3Rlbi1UZXh0IGFuLgogICAgaWYgKG9obmVL
ZW5udW5nLmxlbmd0aCkgewogICAgICAgIGh0bWwgKz0gJzxvcHRncm91cCBsYWJlbD0i4oCUIGtl
aW5lIE5XLUtlbm51bmcgaW4gUGVyc29uYWx2ZXJ3YWx0dW5nIGdlcGZsZWd0IOKAlCI+JzsKICAg
ICAgICBvaG5lS2VubnVuZy5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAgdmFyIGxh
YmVsID0gKHAuZGllbnN0Z3JhZCA/IHAuZGllbnN0Z3JhZCArICcgJyA6ICcnKSArCiAgICAgICAg
ICAgICAgICAgICAgICAgIChwLnZvcm5hbWUgPyBwLnZvcm5hbWUgKyAnICcgOiAnJykgKyAocC5u
YW1lIHx8ICcnKSArCiAgICAgICAgICAgICAgICAgICAgICAgIChwLmdydXBwZSA/ICcgKCcgKyBw
LmdydXBwZSArICcpJyA6ICcnKSArICcg4oCUIE5XLUtlbm51bmcgZmVobHQnOwogICAgICAgICAg
ICBodG1sICs9ICc8b3B0aW9uIHZhbHVlPSIiIGRpc2FibGVkPicgKyBlc2NhcGVIVE1MKGxhYmVs
KSArICc8L29wdGlvbj4nOwogICAgICAgIH0pOwogICAgICAgIGh0bWwgKz0gJzwvb3B0Z3JvdXA+
JzsKICAgIH0KICAgIHJldHVybiBodG1sOwp9CgpleHBvcnQgZnVuY3Rpb24gcm9sbGVuVGFiZWxs
ZVJlbmRlcm4odHlwKSB7CiAgICB2YXIgdGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0
eXAgKyAnLXRib2R5Jyk7CiAgICB2YXIgYnRuTmV1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2J0bi0nICsgdHlwICsgJy1uZXUnKTsKICAgIHZhciBidG5TcGVpY2hlcm4gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYnRuLScgKyB0eXAgKyAnLXNwZWljaGVybicpOwogICAgdmFyIGtlaW5S
ZWNodCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHR5cCArICcta2Vpbi1yZWNodCcpOwogICAg
aWYgKCF0Ym9keSkgcmV0dXJuOwoKICAgIGlmICghWi5yZWNodGUuaXN0U3VwZXJVc2VyKSB7CiAg
ICAgICAgaWYgKGJ0bk5ldSkgYnRuTmV1LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAg
aWYgKGJ0blNwZWljaGVybikgYnRuU3BlaWNoZXJuLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAg
ICAgICAgaWYgKGtlaW5SZWNodCkga2VpblJlY2h0LmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNr
dCcpOwogICAgICAgIHRib2R5LmlubmVySFRNTCA9ICcnOwogICAgICAgIHJldHVybjsKICAgIH0K
ICAgIGlmIChidG5OZXUpIGJ0bk5ldS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICBpZiAoYnRuU3Bl
aWNoZXJuKSBidG5TcGVpY2hlcm4uc3R5bGUuZGlzcGxheSA9ICcnOwogICAgaWYgKGtlaW5SZWNo
dCkga2VpblJlY2h0LmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwoKICAgIHZhciBsaXN0ZSA9
IFouYWRtaW5bdHlwXSB8fCBbXTsKICAgIGZ1bmN0aW9uIGNoayhpZHgsIGZlbGQsIGNoZWNrZWQp
IHsKICAgICAgICByZXR1cm4gJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9InJvbGxlLWNo
ayIgZGF0YS10eXA9IicgKyB0eXAgKyAnIiBkYXRhLWlkeD0iJyArIGlkeCArICciIGRhdGEtZmVs
ZD0iJyArIGZlbGQgKyAnIicgKyAoY2hlY2tlZCA/ICcgY2hlY2tlZCcgOiAnJykgKyAnPic7CiAg
ICB9CiAgICB2YXIgaHRtbCA9ICcnOwogICAgbGlzdGUuZm9yRWFjaChmdW5jdGlvbihlLCBpKSB7
CiAgICAgICAgdmFyIHMgPSBlLnNlaGVuIHx8IHt9OwogICAgICAgIHZhciBlZCA9IGUuZWRpdGll
cmVuIHx8IHt9OwogICAgICAgIHZhciBwbGFuTGFiZWwgPSBmYWNoYXVmc2ljaHRQbGFuTGFiZWwo
ZWQpOwogICAgICAgIHZhciBhZG1pbkxhYmVsID0gZmFjaGF1ZnNpY2h0U3ViU2ljaHRMYWJlbCgn
YWRtaW4nLCBlLmFkbWluU2ljaHRiYXJrZWl0LCBzLmFkbWluaXN0cmF0aW9uKTsKICAgICAgICB2
YXIgc3RhdExhYmVsICA9IGZhY2hhdWZzaWNodFN1YlNpY2h0TGFiZWwoJ3N0YXQnLCAgZS5zdGF0
aXN0aWtTaWNodGJhcmtlaXQsIHMuc3RhdGlzdGlrKTsKCiAgICAgICAgaHRtbCArPSAnPHRyPicg
KwogICAgICAgICAgICAnPHRkPjxzZWxlY3QgY2xhc3M9InJvbGxlLWlucHV0IHJvbGxlLXBlcnNv
bi1zZWxlY3QiIGRhdGEtdHlwPSInICsgdHlwICsgJyIgZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0
YS1mZWxkPSJud0tlbm51bmciIHN0eWxlPSJ3aWR0aDoxMDAlIj4nICsKICAgICAgICAgICAgICAg
IHJvbGxlUGVyc29uT3B0aW9uc0h0bWwoZS5ud0tlbm51bmcgfHwgJycpICsKICAgICAgICAgICAg
Jzwvc2VsZWN0PjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246Y2Vu
dGVyIj4nICsgY2hrKGksICdhZG1pbmlzdHJhdGlvbicsICEhcy5hZG1pbmlzdHJhdGlvbikgKyAn
PC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPicgKyBj
aGsoaSwgJ3N0YXRpc3RpaycsICAgICAgISFzLnN0YXRpc3RpaykgKyAnPC90ZD4nICsKICAgICAg
ICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPicgKyBjaGsoaSwgJ2xvZ2J1Y2gn
LCAgICAgICAgISFzLmxvZ2J1Y2gpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9
InRleHQtYWxpZ246Y2VudGVyIj4nICsgY2hrKGksICdiYWNrdXBzJywgICAgICAgICEhcy5iYWNr
dXBzKSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkPicgKwogICAgICAgICAgICAgICAgJzxi
dXR0b24gY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiByb2xsZS1zdWJzaWNodC1idG4iIGRh
dGEtYWt0aW9uPSJyb2xsZS1zdWJzaWNodCIgZGF0YS10eXA9IicgKyB0eXAgKyAnIiBkYXRhLWlk
eD0iJyArIGkgKyAnIicgKyAocy5hZG1pbmlzdHJhdGlvbiA/ICcnIDogJyBkaXNhYmxlZCcpICsg
JyBzdHlsZT0id2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQiPicgKyBlc2NhcGVIVE1MKGFkbWlu
TGFiZWwpICsgJzwvYnV0dG9uPicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0
biBidG4tc2VrIGJ0bi1rbGVpbiByb2xsZS1zdWJzaWNodC1idG4iIGRhdGEtYWt0aW9uPSJyb2xs
ZS1zdGF0c2ljaHQiIGRhdGEtdHlwPSInICsgdHlwICsgJyIgZGF0YS1pZHg9IicgKyBpICsgJyIn
ICsgKHMuc3RhdGlzdGlrID8gJycgOiAnIGRpc2FibGVkJykgKyAnIHN0eWxlPSJ3aWR0aDoxMDAl
O3RleHQtYWxpZ246bGVmdDttYXJnaW4tdG9wOjNweCI+JyArIGVzY2FwZUhUTUwoc3RhdExhYmVs
KSArICc8L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+
JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWlu
IHJvbGxlLXBsYW4tYnRuIiBkYXRhLWFrdGlvbj0icm9sbGUtZGV0YWlscyIgZGF0YS10eXA9Iicg
KyB0eXAgKyAnIiBkYXRhLWlkeD0iJyArIGkgKyAnIiBzdHlsZT0id2lkdGg6MTAwJTt0ZXh0LWFs
aWduOmxlZnQiPicgKwogICAgICAgICAgICAgICAgICAgIGVzY2FwZUhUTUwocGxhbkxhYmVsKSAr
CiAgICAgICAgICAgICAgICAnPC9idXR0b24+JyArCiAgICAgICAgICAgICc8L3RkPicgKwogICAg
ICAgICAgICAnPHRkPicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4t
Z2VmYWhyIGJ0bi1rbGVpbiBidG4tbG9lc2NoZW4iIGRhdGEtYWt0aW9uPSJyb2xsZS1sb2VzY2hl
biIgZGF0YS10eXA9IicgKyB0eXAgKyAnIiBkYXRhLWlkeD0iJyArIGkgKyAnIiB0aXRsZT0iTMO2
c2NoZW4iPkzDtnNjaGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICc8L3RkPicgKwogICAgICAg
ICAgICAnPC90cj4nOwogICAgfSk7CiAgICB0Ym9keS5pbm5lckhUTUwgPSBodG1sOwogICAgcm9s
bGVuRGlydHlTZXR6ZW4odHlwLCBmYWxzZSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiByb2xsZW5EaXJ0
eVNldHplbih0eXAsIGlzdERpcnR5KSB7IGRpcnR5U2V0emVuKHR5cCwgaXN0RGlydHkpOyB9Cgov
LyBCZWltIEF1c2xlc2VuOiBud0tlbm51bmcga29tbXQgYXVzIGRlbSBTZWxlY3QtV2VydCwgbmFt
ZSBhdXMgZGVtCi8vIGRhdGEtbmFtZS1BdHRyaWJ1dCBkZXMgc2VsZWt0aWVydGVuIE9wdGlvbnMu
CmV4cG9ydCBmdW5jdGlvbiByb2xsZW5BdXNUYWJlbGxlTGVzZW4odHlwLCBmaWx0ZXJMZWVyKSB7
CiAgICB2YXIgYWx0ZUxpc3RlID0gWi5hZG1pblt0eXBdIHx8IFtdOwogICAgdmFyIG1hcCA9IHt9
OwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnJvbGxlLWlucHV0W2RhdGEtdHlwPSIn
ICsgdHlwICsgJyJdJykuZm9yRWFjaChmdW5jdGlvbihmKSB7CiAgICAgICAgdmFyIGlkeCA9IGYu
Z2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpOwogICAgICAgIHZhciBmZWxkID0gZi5nZXRBdHRyaWJ1
dGUoJ2RhdGEtZmVsZCcpOwogICAgICAgIGlmICghbWFwW2lkeF0pIG1hcFtpZHhdID0ge307CiAg
ICAgICAgdmFyIHdlcnQgPSBmLnZhbHVlLnRyaW0oKTsKICAgICAgICBtYXBbaWR4XVtmZWxkXSA9
IHdlcnQ7CiAgICAgICAgaWYgKGZlbGQgPT09ICdud0tlbm51bmcnICYmIGYudGFnTmFtZSA9PT0g
J1NFTEVDVCcgJiYgZi5zZWxlY3RlZEluZGV4ID49IDApIHsKICAgICAgICAgICAgdmFyIG9wdCA9
IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdOwogICAgICAgICAgICBtYXBbaWR4XS5uYW1lID0g
b3B0ID8gKG9wdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbmFtZScpIHx8ICcnKSA6ICcnOwogICAgICAg
IH0KICAgIH0pOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnJvbGxlLWNoa1tkYXRh
LXR5cD0iJyArIHR5cCArICciXScpLmZvckVhY2goZnVuY3Rpb24oYykgewogICAgICAgIHZhciBp
ZHggPSBjLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKTsKICAgICAgICB2YXIgZmVsZCA9IGMuZ2V0
QXR0cmlidXRlKCdkYXRhLWZlbGQnKTsKICAgICAgICBpZiAoIW1hcFtpZHhdKSBtYXBbaWR4XSA9
IHt9OwogICAgICAgIGlmICghbWFwW2lkeF0uc2VoZW4pIG1hcFtpZHhdLnNlaGVuID0ge307CiAg
ICAgICAgbWFwW2lkeF0uc2VoZW5bZmVsZF0gPSBjLmNoZWNrZWQ7CiAgICB9KTsKICAgIHZhciBl
cmdlYm5pcyA9IFtdOwogICAgT2JqZWN0LmtleXMobWFwKS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsg
cmV0dXJuIHBhcnNlSW50KGEpIC0gcGFyc2VJbnQoYik7IH0pLmZvckVhY2goZnVuY3Rpb24oaykg
ewogICAgICAgIHZhciBhbHQgPSBhbHRlTGlzdGVbcGFyc2VJbnQoayldIHx8IHt9OwogICAgICAg
IHZhciBlID0gbWFwW2tdOwogICAgICAgIGlmIChmaWx0ZXJMZWVyICYmICFlLm53S2VubnVuZykg
cmV0dXJuOwogICAgICAgIGVyZ2VibmlzLnB1c2goewogICAgICAgICAgICBuYW1lOiAgICAgIGUu
bmFtZSB8fCAnJywKICAgICAgICAgICAgbndLZW5udW5nOiBlLm53S2VubnVuZyB8fCAnJywKICAg
ICAgICAgICAgc2VoZW46IHsKICAgICAgICAgICAgICAgIGFkbWluaXN0cmF0aW9uOiAhIShlLnNl
aGVuICYmIGUuc2VoZW4uYWRtaW5pc3RyYXRpb24pLAogICAgICAgICAgICAgICAgc3RhdGlzdGlr
OiAgICAgICEhKGUuc2VoZW4gJiYgZS5zZWhlbi5zdGF0aXN0aWspLAogICAgICAgICAgICAgICAg
bG9nYnVjaDogICAgICAgICEhKGUuc2VoZW4gJiYgZS5zZWhlbi5sb2didWNoKSwKICAgICAgICAg
ICAgICAgIGJhY2t1cHM6ICAgICAgICAhIShlLnNlaGVuICYmIGUuc2VoZW4uYmFja3VwcykKICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgYWRtaW5TaWNodGJhcmtlaXQ6ICAgICBhbHQuYWRtaW5T
aWNodGJhcmtlaXQgICAgIHx8IHt9LAogICAgICAgICAgICBzdGF0aXN0aWtTaWNodGJhcmtlaXQ6
IGFsdC5zdGF0aXN0aWtTaWNodGJhcmtlaXQgfHwge30sCiAgICAgICAgICAgIGVkaXRpZXJlbjog
YWx0LmVkaXRpZXJlbiB8fCB7IHBlcnNvbmVuSWRzOiBbXSwgZGllbnN0Z3J1cHBlbjogW10sIHN0
YW5kb3J0ZTogW10gfQogICAgICAgIH0pOwogICAgfSk7CiAgICByZXR1cm4gZXJnZWJuaXM7Cn0K
CmV4cG9ydCBmdW5jdGlvbiByb2xsZW5OZXVFaW50cmFnKHR5cCkgewogICAgaWYgKCFaLnJlY2h0
ZS5pc3RTdXBlclVzZXIpIHJldHVybjsKICAgIHZhciBha3R1ZWxsID0gcm9sbGVuQXVzVGFiZWxs
ZUxlc2VuKHR5cCwgZmFsc2UpOwogICAgYWt0dWVsbC5wdXNoKHsKICAgICAgICBuYW1lOiAnJywg
bndLZW5udW5nOiAnJywKICAgICAgICBzZWhlbjogeyBhZG1pbmlzdHJhdGlvbjogZmFsc2UsIHN0
YXRpc3RpazogZmFsc2UsIGxvZ2J1Y2g6IGZhbHNlLCBiYWNrdXBzOiBmYWxzZSB9LAogICAgICAg
IGFkbWluU2ljaHRiYXJrZWl0OiB7fSwgc3RhdGlzdGlrU2ljaHRiYXJrZWl0OiB7fSwKICAgICAg
ICBlZGl0aWVyZW46IHsgcGVyc29uZW5JZHM6IFtdLCBkaWVuc3RncnVwcGVuOiBbXSwgc3RhbmRv
cnRlOiBbXSB9CiAgICB9KTsKICAgIFouYWRtaW5bdHlwXSA9IGFrdHVlbGw7CiAgICByb2xsZW5U
YWJlbGxlUmVuZGVybih0eXApOwogICAgcm9sbGVuRGlydHlTZXR6ZW4odHlwLCB0cnVlKTsKfQoK
ZXhwb3J0IGZ1bmN0aW9uIHJvbGxlbkVpbnRyYWdMb2VzY2hlbih0eXAsIGlkeCkgewogICAgaWYg
KCFaLnJlY2h0ZS5pc3RTdXBlclVzZXIpIHJldHVybjsKICAgIHZhciBha3R1ZWxsID0gcm9sbGVu
QXVzVGFiZWxsZUxlc2VuKHR5cCwgZmFsc2UpOwogICAgYWt0dWVsbC5zcGxpY2UoaWR4LCAxKTsK
ICAgIFouYWRtaW5bdHlwXSA9IGFrdHVlbGw7CiAgICByb2xsZW5UYWJlbGxlUmVuZGVybih0eXAp
OwogICAgcm9sbGVuRGlydHlTZXR6ZW4odHlwLCB0cnVlKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHJv
bGxlblNwZWljaGVybih0eXApIHsKICAgIGlmICghWi5yZWNodGUuaXN0U3VwZXJVc2VyKSByZXR1
cm4gUHJvbWlzZS5yZXNvbHZlKCk7CiAgICB2YXIgbWV0YSA9IFJPTExFTl9UWVBFTlt0eXBdOwog
ICAgaWYgKCFtZXRhKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CiAgICAvLyBLb21wbGV0dGUg
TGlzdGUgbGVzZW4gKGF1Y2ggRWludHJhZWdlIG9obmUgS2VubnVuZyDigJQgZGllc2UgdmVybGll
cmVuIHdpcgogICAgLy8gc29uc3Qgc3RpbGxzY2h3ZWlnZW5kLCB3ZW5uIHouQi4gZGVyIFVzZXIg
dmVyZ2Vzc2VuIGhhdCBlaW5lIFBlcnNvbgogICAgLy8gYXVzenV3YWVobGVuKS4KICAgIHZhciBh
bGxlID0gcm9sbGVuQXVzVGFiZWxsZUxlc2VuKHR5cCwgZmFsc2UpOwogICAgdmFyIGxlZXIgPSBh
bGxlLmZpbHRlcihmdW5jdGlvbihlKSB7IHJldHVybiAhZS5ud0tlbm51bmc7IH0pOwogICAgaWYg
KGxlZXIubGVuZ3RoID4gMCkgewogICAgICAgIHRvYXN0KG1ldGEubGFiZWwgKyAnOiAnICsgbGVl
ci5sZW5ndGggKyAnIEVpbnRyYWcvRWludHLDpGdlIG9obmUgUGVyc29uZW4tQXVzd2FobCDigJQg
Yml0dGUgdm9yIGRlbSBTcGVpY2hlcm4gZWluZSBQZXJzb24gd8OkaGxlbiBvZGVyIGRlbiBsZWVy
ZW4gRWludHJhZyBsw7ZzY2hlbicsICd3YXJudW5nJyk7CiAgICAgICAgcmV0dXJuIFByb21pc2Uu
cmVzb2x2ZSgpOwogICAgfQogICAgdmFyIGRhdGVuID0gYWxsZTsKICAgIFouYWRtaW5bdHlwXSA9
IGRhdGVuOwogICAgcmV0dXJuIGFwaVB1dChtZXRhLmVuZHBvaW50LCBkYXRlbikudGhlbihmdW5j
dGlvbigpIHsKICAgICAgICB0b2FzdChtZXRhLmxhYmVsICsgJyBnZXNwZWljaGVydCAoJyArIGRh
dGVuLmxlbmd0aCArICcgRWludHJhZycgKyAoZGF0ZW4ubGVuZ3RoID09PSAxID8gJycgOiAnZScp
ICsgJyknLCAnZXJmb2xnJyk7CiAgICAgICAgcm9sbGVuRGlydHlTZXR6ZW4odHlwLCBmYWxzZSk7
CiAgICAgICAgcm9sbGVuVGFiZWxsZVJlbmRlcm4odHlwKTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9u
KGUpIHsKICAgICAgICB0b2FzdCgnRmVobGVyOiAnICsgKGUgJiYgZS5tZXNzYWdlIHx8IGUpLCAn
ZmVobGVyJyk7CiAgICAgICAgdGhyb3cgZTsKICAgIH0pOwp9CgovLyBTdWItU2ljaHQtTW9kYWwg
ZnVlciBkaWUgbmV1ZW4gUm9sbGVuIChEaXJla3Rpb25zbGVpdHVuZy9GdWVocnVuZ3MtCi8vIHN0
ZWxsZSkuIE51dHp0IGpldHp0IGRhcyBnZW5lcmlzY2hlIGZhY2hhdWZzaWNodFN1YlNpY2h0TW9k
YWwgbWl0IGVpbmVtCi8vIFJvbGxlbi1Lb250ZXh0IOKAlCBLRUlOIHRlbXBvcmFlcmVzIFVtYmll
Z2VuIHZvbiBaLmFkbWluLmZhY2hhdWZzaWNodCArCi8vIHNldFRpbWVvdXQtUnVlY2tzcGllZ2Vs
dW5nIG1laHIuIERlciBmcnVlaGVyZSBTd2FwLVRyaWNrIGZldWVydGUgZGFzCi8vIFp1cnVlY2tz
cGllZ2VsbiBuYWNoIDUwbXMsIGFsc28gYmV2b3IgZGVyIFVzZXIgaW0gTW9kYWwgIlNwZWljaGVy
biIKLy8gZHJ1Y2t0ZSwgc29kYXNzIGRlciBNb2RhbC1TYXZlIGRpZSBlY2h0ZSBGYWNoYXVmc2lj
aHQtTGlzdGUgbWl0Ci8vIFJvbGxlbi1EYXRlbiB1ZWJlcnNjaHJpZWIgKENSSVRJQ0FMIERhdGVu
a29ycnVwdHVyKSBiencuIGVpbmVuCi8vIFR5cGVFcnJvciBhdXNsb2VzdGUuIEVybGVkaWd0Lgpl
eHBvcnQgZnVuY3Rpb24gcm9sbGVuU3ViU2ljaHRNb2RhbCh0eXAsIGlkeCwgc2ljaHRUeXApIHsK
ICAgIGlmICghWi5yZWNodGUuaXN0U3VwZXJVc2VyKSByZXR1cm47CiAgICBpZiAoIVJPTExFTl9U
WVBFTlt0eXBdKSByZXR1cm47CiAgICBmYWNoYXVmc2ljaHRTdWJTaWNodE1vZGFsKGlkeCwgc2lj
aHRUeXAsIHJvbGxlTW9kYWxDdHgodHlwKSk7Cn0KCi8vIFBsYW4tUmVjaHRlLU1vZGFsOiBhbmFs
b2cgdWViZXIgZGVuIGdlbmVyaXNjaGVuIERldGFpbC1Nb2RhbC1QZmFkLgpleHBvcnQgZnVuY3Rp
b24gcm9sbGVuUGxhblJlY2h0ZU1vZGFsKHR5cCwgaWR4KSB7CiAgICBpZiAoIVoucmVjaHRlLmlz
dFN1cGVyVXNlcikgcmV0dXJuOwogICAgaWYgKCFST0xMRU5fVFlQRU5bdHlwXSkgcmV0dXJuOwog
ICAgZmFjaGF1ZnNpY2h0RGV0YWlsTW9kYWwoaWR4LCByb2xsZU1vZGFsQ3R4KHR5cCkpOwp9Cgov
LyBNb2RhbCBmdWVyICJOZXVlciBGYWNoYXVmc2ljaHQtRWludHJhZyIg4oCUIFVzZXItV3Vuc2No
OgovLyBWYXJpYW50ZSBBOiBEcm9wZG93biBkZXIgV2FjaGxlaXR1bmdlbiAoR3J1cHBlIFdMKSBh
bHMgUXVpY2stUGljawovLyBWYXJpYW50ZSBCOiBNYW51ZWxsZSBBbmxhZ2UgKFBlcnNvbiBlcnNj
aGVpbnQgTklDSFQgaW4gZGVyIFBsYW51bmcsCi8vICAgICAgICAgICAgIGlzdCBudXIgRmFjaGF1
ZnNpY2h0LUVpbnRyYWcgbWl0IE5hbWUgKyBud0tlbm51bmcpCmV4cG9ydCBmdW5jdGlvbiBmYWNo
YXVmc2ljaHROZXVNb2RhbCgpIHsKICAgIGlmICghWi5yZWNodGUuaXN0U3VwZXJVc2VyKSByZXR1
cm47CiAgICB2YXIgd2FjaGxlaXR1bmdlbiA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZp
bHRlcihmdW5jdGlvbihwKSB7CiAgICAgICAgcmV0dXJuIHAuYWt0aXYgJiYgcC5ncnVwcGUgPT09
ICdXTCc7CiAgICB9KS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgICB2YXIgYW4gPSAoKGEu
dm9ybmFtZSB8fCAnJykgKyAnICcgKyAoYS5uYW1lIHx8ICcnKSkudHJpbSgpOwogICAgICAgIHZh
ciBibiA9ICgoYi52b3JuYW1lIHx8ICcnKSArICcgJyArIChiLm5hbWUgfHwgJycpKS50cmltKCk7
CiAgICAgICAgcmV0dXJuIGFuLmxvY2FsZUNvbXBhcmUoYm4sICdkZScpOwogICAgfSk7CiAgICB2
YXIgc2Nob25EcmluID0ge307CiAgICAoWi5hZG1pbi5mYWNoYXVmc2ljaHQgfHwgW10pLmZvckVh
Y2goZnVuY3Rpb24oZmEpIHsKICAgICAgICBpZiAoZmEubndLZW5udW5nKSBzY2hvbkRyaW5bZmEu
bndLZW5udW5nLnRvTG93ZXJDYXNlKCldID0gdHJ1ZTsKICAgIH0pOwoKICAgIHZhciBvcHRpb25l
biA9IHdhY2hsZWl0dW5nZW4ubWFwKGZ1bmN0aW9uKHApIHsKICAgICAgICB2YXIgYW56ZWlnZSA9
ICgocC52b3JuYW1lID8gcC52b3JuYW1lICsgJyAnIDogJycpICsgcC5uYW1lKS50cmltKCk7CiAg
ICAgICAgdmFyIG9lID0gcC5vZSA/ICcgKCcgKyBwLm9lICsgJyknIDogJyc7CiAgICAgICAgdmFy
IGV4aXN0aWVydCA9IHAubndLZW5udW5nICYmIHNjaG9uRHJpbltwLm53S2VubnVuZy50b0xvd2Vy
Q2FzZSgpXTsKICAgICAgICByZXR1cm4gJzxvcHRpb24gdmFsdWU9IicgKyBwLmlkICsgJyInICsg
KGV4aXN0aWVydCA/ICcgZGlzYWJsZWQnIDogJycpICsgJz4nICsKICAgICAgICAgICAgICAgZXNj
YXBlSFRNTChhbnplaWdlICsgb2UgKyAoZXhpc3RpZXJ0ID8gJyDigJQgYmVyZWl0cyBGYWNoYXVm
c2ljaHQnIDogJycpKSArICc8L29wdGlvbj4nOwogICAgfSkuam9pbignJyk7CgogICAgdmFyIGtv
ZXJwZXIgPQogICAgICAgICc8cCBjbGFzcz0iZXZtLWJlc2NocmVpYnVuZyI+V8OkaGxlIGVpbmUg
YmVzdGVoZW5kZSBQZXJzb24gYXVzIGRlciA8c3Ryb25nPldhY2hsZWl0dW5nIChHcnVwcGUgV0wp
PC9zdHJvbmc+IG9kZXIgbGVnZSBtYW51ZWxsIGVpbmUgbmV1ZSBGYWNoYXVmc2ljaHQgYW4uIE1h
bnVlbGwgYW5nZWxlZ3RlIFBlcnNvbmVuIGVyc2NoZWluZW4gPHN0cm9uZz5uaWNodDwvc3Ryb25n
PiBpbiBkZXIgUGxhbnVuZyDigJQgc2llIGV4aXN0aWVyZW4gbnVyIGFscyBGYWNoYXVmc2ljaHQt
RWludHJhZy48L3A+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZhLW5ldS1tb2R1cy16ZWlsZSI+
JyArCiAgICAgICAgICAgICc8bGFiZWwgY2xhc3M9ImZhLW5ldS1tb2R1cy1vcHQiPjxpbnB1dCB0
eXBlPSJyYWRpbyIgbmFtZT0iZmEtbmV1LW1vZHVzIiB2YWx1ZT0iZHJvcGRvd24iJyArICh3YWNo
bGVpdHVuZ2VuLmxlbmd0aCA/ICcgY2hlY2tlZCcgOiAnJykgKyAod2FjaGxlaXR1bmdlbi5sZW5n
dGggPyAnJyA6ICcgZGlzYWJsZWQnKSArICc+IEF1cyBXYWNobGVpdHVuZyB3w6RobGVuPC9sYWJl
bD4nICsKICAgICAgICAgICAgJzxsYWJlbCBjbGFzcz0iZmEtbmV1LW1vZHVzLW9wdCI+PGlucHV0
IHR5cGU9InJhZGlvIiBuYW1lPSJmYS1uZXUtbW9kdXMiIHZhbHVlPSJtYW51ZWxsIicgKyAod2Fj
aGxlaXR1bmdlbi5sZW5ndGggPyAnJyA6ICcgY2hlY2tlZCcpICsgJz4gTWFudWVsbCBhbmxlZ2Vu
IChuaWNodCBpbiBQbGFudW5nKTwvbGFiZWw+JyArCiAgICAgICAgJzwvZGl2PicgKwogICAgICAg
ICc8ZGl2IGlkPSJmYS1uZXUtZHJvcGRvd24tYmVyZWljaCIgY2xhc3M9ImZhLW5ldS1iZXJlaWNo
IicgKyAod2FjaGxlaXR1bmdlbi5sZW5ndGggPyAnJyA6ICcgc3R5bGU9ImRpc3BsYXk6bm9uZSIn
KSArICc+JyArCiAgICAgICAgICAgICc8bGFiZWwgY2xhc3M9ImRsZy1sYWJlbCIgZm9yPSJmYS1u
ZXUtcGVyc29uIj5XYWNobGVpdHVuZzwvbGFiZWw+JyArCiAgICAgICAgICAgICc8c2VsZWN0IGlk
PSJmYS1uZXUtcGVyc29uIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiPicg
KwogICAgICAgICAgICAgICAgKG9wdGlvbmVuIHx8ICc8b3B0aW9uIHZhbHVlPSIiPktlaW5lIGFr
dGl2ZW4gV2FjaGxlaXR1bmdlbiB2b3JoYW5kZW48L29wdGlvbj4nKSArCiAgICAgICAgICAgICc8
L3NlbGVjdD4nICsKICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgaWQ9ImZhLW5ldS1t
YW51ZWxsLWJlcmVpY2giIGNsYXNzPSJmYS1uZXUtYmVyZWljaCInICsgKHdhY2hsZWl0dW5nZW4u
bGVuZ3RoID8gJyBzdHlsZT0iZGlzcGxheTpub25lIicgOiAnJykgKyAnPicgKwogICAgICAgICAg
ICAnPGRpdiBjbGFzcz0iZmEtbmV1LWdyaWQiPicgKwogICAgICAgICAgICAgICAgJzxkaXY+PGxh
YmVsIGNsYXNzPSJkbGctbGFiZWwiIGZvcj0iZmEtbmV1LXZvcm5hbWUiPlZvcm5hbWU8L2xhYmVs
PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZmEtbmV1LXZvcm5hbWUiIGNsYXNzPSJmb3JtLWlucHV0
Ij48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2PjxsYWJlbCBjbGFzcz0iZGxnLWxhYmVs
IiBmb3I9ImZhLW5ldS1uYW1lIj5OYWNobmFtZSAqPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIg
aWQ9ImZhLW5ldS1uYW1lIiBjbGFzcz0iZm9ybS1pbnB1dCI+PC9kaXY+JyArCiAgICAgICAgICAg
ICAgICAnPGRpdiBzdHlsZT0iZ3JpZC1jb2x1bW46MS8tMSI+PGxhYmVsIGNsYXNzPSJkbGctbGFi
ZWwiIGZvcj0iZmEtbmV1LW53ayI+TlctS2VubnVuZyAqPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4
dCIgaWQ9ImZhLW5ldS1ud2siIGNsYXNzPSJmb3JtLWlucHV0IiBwbGFjZWhvbGRlcj0iRE9NQUlO
XFx1c2VyIG9kZXIgTlcwNTM2MDkiPjwvZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAg
ICAgICAgICAgICc8c21hbGwgY2xhc3M9ImV2bS1oaW53ZWlzIj5EaWVzZSBQZXJzb24gdGF1Y2h0
IDxzdHJvbmc+bmljaHQ8L3N0cm9uZz4gaW4gZGVyIFBsYW51bmdzLVRhYmVsbGUgYXVmIOKAlCBz
aWUgaXN0IG51ciBhbHMgRmFjaGF1ZnNpY2h0ICh1bmQgZ2dmLiBTdXBlclVzZXIpIGtvbmZpZ3Vy
aWVyYmFyLiBOVy1LZW5udW5nIGlzdCBQZmxpY2h0LCBzb25zdCBrYW5uIHNpY2ggZGllIFBlcnNv
biBuaWNodCBhdXN3ZWlzZW4uPC9zbWFsbD4nICsKICAgICAgICAnPC9kaXY+JzsKCiAgICB2YXIg
ZnVzcyA9ICc8YnV0dG9uIGNsYXNzPSJidG4iIGlkPSJmYS1uZXUtYWJiciIgdHlwZT0iYnV0dG9u
Ij5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0
biBidG4tcHJpbWFlciIgaWQ9ImRsZy1zcGVpY2hlcm4iIHR5cGU9ImJ1dHRvbiI+w5xiZXJuZWht
ZW48L2J1dHRvbj4nOwoKICAgIG1vZGFsWmVpZ2VuKCdOZXVlciBGYWNoYXVmc2ljaHQtRWludHJh
ZycsIGtvZXJwZXIsIGZ1c3MsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBtb2R1cyA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9ImZhLW5ldS1tb2R1cyJdOmNoZWNrZWQnKTsK
ICAgICAgICBpZiAoIW1vZHVzKSByZXR1cm47CiAgICAgICAgdmFyIG5ldSA9IG51bGw7CiAgICAg
ICAgaWYgKG1vZHVzLnZhbHVlID09PSAnZHJvcGRvd24nKSB7CiAgICAgICAgICAgIHZhciBwaWQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmEtbmV1LXBlcnNvbicpLnZhbHVlOwogICAgICAg
ICAgICBpZiAoIXBpZCkgeyB0b2FzdCgnQml0dGUgZWluZSBXYWNobGVpdHVuZyB3w6RobGVuJywg
J3dhcm51bmcnKTsgcmV0dXJuOyB9CiAgICAgICAgICAgIHZhciBwID0gKFoucGxhbnVuZy5wZXJz
b25lbiB8fCBbXSkuZmluZChmdW5jdGlvbih4KSB7IHJldHVybiBTdHJpbmcoeC5pZCkgPT09IFN0
cmluZyhwaWQpOyB9KTsKICAgICAgICAgICAgaWYgKCFwKSB7IHRvYXN0KCdQZXJzb24gbmljaHQg
Z2VmdW5kZW4nLCAnZmVobGVyJyk7IHJldHVybjsgfQogICAgICAgICAgICBpZiAocC5ud0tlbm51
bmcgJiYgc2Nob25EcmluW3AubndLZW5udW5nLnRvTG93ZXJDYXNlKCldKSB7CiAgICAgICAgICAg
ICAgICB0b2FzdCgnRGllc2UgUGVyc29uIGlzdCBiZXJlaXRzIEZhY2hhdWZzaWNodCcsICd3YXJu
dW5nJyk7IHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZXUgPSB7CiAgICAgICAg
ICAgICAgICBuYW1lOiAgICAgICgocC52b3JuYW1lID8gcC52b3JuYW1lICsgJyAnIDogJycpICsg
cC5uYW1lKS50cmltKCksCiAgICAgICAgICAgICAgICBud0tlbm51bmc6IHAubndLZW5udW5nIHx8
ICcnCiAgICAgICAgICAgIH07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIG5hbWUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmEtbmV1LW5hbWUnKS52YWx1ZS50cmltKCk7CiAg
ICAgICAgICAgIHZhciB2biAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhLW5ldS12b3Ju
YW1lJykudmFsdWUudHJpbSgpOwogICAgICAgICAgICB2YXIgbndrICA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdmYS1uZXUtbndrJykudmFsdWUudHJpbSgpOwogICAgICAgICAgICBpZiAoIW5h
bWUpIHsgdG9hc3QoJ05hY2huYW1lIGlzdCBQZmxpY2h0JywgJ3dhcm51bmcnKTsgcmV0dXJuOyB9
CiAgICAgICAgICAgIGlmICghbndrKSAgeyB0b2FzdCgnTlctS2VubnVuZyBpc3QgUGZsaWNodCAo
c29uc3Qga2FubiBzaWNoIGRpZSBQZXJzb24gbmljaHQgYXVzd2Vpc2VuKScsICd3YXJudW5nJyk7
IHJldHVybjsgfQogICAgICAgICAgICBpZiAoc2Nob25EcmluW253ay50b0xvd2VyQ2FzZSgpXSkg
eyB0b2FzdCgnRGllc2UgTlctS2VubnVuZyBpc3QgYmVyZWl0cyBGYWNoYXVmc2ljaHQnLCAnd2Fy
bnVuZycpOyByZXR1cm47IH0KICAgICAgICAgICAgbmV1ID0gewogICAgICAgICAgICAgICAgbmFt
ZTogICAgICB2biA/ICh2biArICcgJyArIG5hbWUpIDogbmFtZSwKICAgICAgICAgICAgICAgIG53
S2VubnVuZzogbndrCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIC8vIEFrdHVlbGxl
IFRhYmVsbGVuLVN0YXRlIHVlYmVybmVobWVuIChvaG5lIEZpbHRlciksIGRhbm4gYW5oYWVuZ2Vu
CiAgICAgICAgWi5hZG1pbi5mYWNoYXVmc2ljaHQgPSBmYWNoYXVmc2ljaHRBdXNUYWJlbGxlTGVz
ZW4oKTsKICAgICAgICBaLmFkbWluLmZhY2hhdWZzaWNodC5wdXNoKHsKICAgICAgICAgICAgbmFt
ZTogbmV1Lm5hbWUsCiAgICAgICAgICAgIG53S2VubnVuZzogbmV1Lm53S2VubnVuZywKICAgICAg
ICAgICAgc2VoZW46IHsgYWRtaW5pc3RyYXRpb246IGZhbHNlLCBzdGF0aXN0aWs6IGZhbHNlLCBs
b2didWNoOiBmYWxzZSwgYmFja3VwczogZmFsc2UgfSwKICAgICAgICAgICAgZ2VzYW10dmVyYW50
d29ydGxpY2g6IGZhbHNlLAogICAgICAgICAgICBhZG1pblNpY2h0YmFya2VpdDoge30sCiAgICAg
ICAgICAgIHN0YXRpc3Rpa1NpY2h0YmFya2VpdDoge30sCiAgICAgICAgICAgIGVkaXRpZXJlbjog
eyBwZXJzb25lbklkczogW10sIGRpZW5zdGdydXBwZW46IFtdLCBzdGFuZG9ydGU6IFtdIH0KICAg
ICAgICB9KTsKICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgZmFjaGF1ZnNp
Y2h0UmVuZGVybigpOwogICAgICAgIHRvYXN0KCdGYWNoYXVmc2ljaHQtRWludHJhZyAiJyArIG5l
dS5uYW1lICsgJyIgYW5nZWxlZ3Qg4oCUICJTcGVpY2hlcm4iIGRyw7xja2VuIHVtIGRhdWVyaGFm
dCB6dSBzaWNoZXJuJywgJ2luZm8nKTsKICAgIH0pOwoKICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdmYS1uZXUtYWJicicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7
IG1vZGFsU2NobGllc3NlbigpOyB9KTsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lu
cHV0W25hbWU9ImZhLW5ldS1tb2R1cyJdJykuZm9yRWFjaChmdW5jdGlvbihyKSB7CiAgICAgICAg
ci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFy
IHNlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9ImZhLW5ldS1tb2R1cyJd
OmNoZWNrZWQnKTsKICAgICAgICAgICAgaWYgKCFzZWwpIHJldHVybjsKICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhLW5ldS1kcm9wZG93bi1iZXJlaWNoJykuc3R5bGUuZGlz
cGxheSA9IHNlbC52YWx1ZSA9PT0gJ2Ryb3Bkb3duJyA/ICcnIDogJ25vbmUnOwogICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmEtbmV1LW1hbnVlbGwtYmVyZWljaCcpLnN0eWxl
LmRpc3BsYXkgID0gc2VsLnZhbHVlID09PSAnbWFudWVsbCcgID8gJycgOiAnbm9uZSc7CiAgICAg
ICAgfSk7CiAgICB9KTsKfQoKLy8gY3R4IG9wdGlvbmFsIOKAlCBEZWZhdWx0IEZhY2hhdWZzaWNo
dDsgUm9sbGVuIHJlaWNoZW4gcm9sbGVNb2RhbEN0eCh0eXApLgpleHBvcnQgZnVuY3Rpb24gZmFj
aGF1ZnNpY2h0RGV0YWlsTW9kYWwoaWR4LCBjdHgpIHsKICAgIC8vIE1vZGFsIG1pdCBkcmVpIExp
c3RlbjogUGVyc29uZW4gKGNoZWNrYm94IGplIFBlcnNvbiksCiAgICAvLyBEaWVuc3RncnVwcGVu
IChjaGVja2JveCBqZSBHcnVwcGUpLCBTdGFuZG9ydGUgKGNoZWNrYm94IGplIE9FKS4KICAgIC8v
IEVkaXQtUmVjaHRlIHdlcmRlbiBkaXJla3QgaW4gY3R4LUxpc3RlW2lkeF0uZWRpdGllcmVuIGdl
c3BlaWNoZXJ0LgogICAgaWYgKCFaLnJlY2h0ZS5pc3RTdXBlclVzZXIpIHJldHVybjsKICAgIGN0
eCA9IGN0eCB8fCBmYWNoYXVmc2ljaHRNb2RhbEN0eCgpOwogICAgLy8gS29tcGxldHRlIFRhYmVs
bGUgaW4gZGVuIFN0YXRlIHNwaWVnZWxuIChhbGxlIFplaWxlbikg4oCUIHNvbnN0IGdlaGVuCiAg
ICAvLyBwYXJhbGxlbGUgVGFiZWxsZW4tRWRpdHMgYmVpbSBNb2RhbC1TcHJ1bmcgdmVybG9yZW4u
CiAgICBjdHguc2V0TGlzdGUoY3R4LmF1c1RhYmVsbGVMZXNlbigpKTsKICAgIHZhciBsaXN0ZSA9
IGN0eC5nZXRMaXN0ZSgpOwogICAgaWYgKCFsaXN0ZVtpZHhdKSByZXR1cm47CiAgICB2YXIgZmEg
PSBsaXN0ZVtpZHhdOwogICAgdmFyIGVkID0gZmEuZWRpdGllcmVuIHx8IHsgcGVyc29uZW5JZHM6
IFtdLCBkaWVuc3RncnVwcGVuOiBbXSwgc3RhbmRvcnRlOiBbXSB9OwoKICAgIHZhciBwZXJzb25l
biA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLnNsaWNlKCkKICAgICAgICAuZmlsdGVyKGZ1
bmN0aW9uKHApIHsgcmV0dXJuIHAuYWt0aXY7IH0pCiAgICAgICAgLnNvcnQoZnVuY3Rpb24oYSwg
YikgeyByZXR1cm4gKGEucG9zaXRpb24gfHwgOTk5KSAtIChiLnBvc2l0aW9uIHx8IDk5OSk7IH0p
OwoKICAgIHZhciBzdGFuZG9ydGUgPSAoWi5hZG1pbi5zdGFuZG9ydGUgfHwgW10pLm1hcChmdW5j
dGlvbihzKSB7IHJldHVybiBzLmt1ZXJ6ZWwgfHwgcy5uYW1lOyB9KS5maWx0ZXIoQm9vbGVhbik7
CgogICAgZnVuY3Rpb24gY2hrYm94KGlkLCBsYWJlbCwgY2hlY2tlZCkgewogICAgICAgIHJldHVy
biAnPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtn
YXA6NnB4O21hcmdpbjoycHggMTJweCAycHggMDtjdXJzb3I6cG9pbnRlciI+JyArCiAgICAgICAg
ICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJlZGl0LWNoayIgZGF0YS13ZXJ0PSIn
ICsgZXNjYXBlQXR0cihpZCkgKyAnIicgKyAoY2hlY2tlZCA/ICcgY2hlY2tlZCcgOiAnJykgKyAn
PicgKwogICAgICAgICAgICAnPHNwYW4+JyArIGVzY2FwZUhUTUwobGFiZWwpICsgJzwvc3Bhbj48
L2xhYmVsPic7CiAgICB9CgogICAgdmFyIHBlcnNDYnMgPSBwZXJzb25lbi5tYXAoZnVuY3Rpb24o
cCkgewogICAgICAgIHZhciBuYW1lTGFiZWwgPSAoKHAudm9ybmFtZSA/IHAudm9ybmFtZSArICcg
JyA6ICcnKSArIHAubmFtZSkgKyAnIMK3ICcgKyBwLmdydXBwZTsKICAgICAgICByZXR1cm4gY2hr
Ym94KFN0cmluZyhwLmlkKSwgbmFtZUxhYmVsLCAoZWQucGVyc29uZW5JZHMgfHwgW10pLmluZGV4
T2YoTnVtYmVyKHAuaWQpKSA+PSAwKTsKICAgIH0pLmpvaW4oJycpOwogICAgdmFyIGdydXBwZW5D
YnMgPSAoWi5hZG1pbi5ncnVwcGVuIHx8IFtdKS5tYXAoZnVuY3Rpb24oZ3IpIHsKICAgICAgICBy
ZXR1cm4gY2hrYm94KGdyLm5hbWUsIChnci5iZXplaWNobnVuZyB8fCBnci5uYW1lKSArICcgKCcg
KyBnci5uYW1lICsgJyknLCAoZWQuZGllbnN0Z3J1cHBlbiB8fCBbXSkuaW5kZXhPZihnci5uYW1l
KSA+PSAwKTsKICAgIH0pLmpvaW4oJycpOwogICAgdmFyIHN0YW5kb3J0ZUNicyA9IHN0YW5kb3J0
ZS5tYXAoZnVuY3Rpb24ocykgewogICAgICAgIHJldHVybiBjaGtib3gocywgcywgKGVkLnN0YW5k
b3J0ZSB8fCBbXSkuaW5kZXhPZihzKSA+PSAwKTsKICAgIH0pLmpvaW4oJycpOwoKICAgIHZhciBr
b2VycGVyID0KICAgICAgICAnPHAgc3R5bGU9Im1hcmdpbi10b3A6MCI+WnVzw6R0emxpY2ggenVy
IDxiPmVpZ2VuZW4gWmVpbGU8L2I+IChpc3QgaW1tZXIgZXJsYXVidCkgZGFyZiBkaWVzZSBGYWNo
YXVmc2ljaHQgZGllIFBsYW51bmdzemVsbGVuIGZvbGdlbmRlciBFaW50csOkZ2Ugw6RuZGVybjo8
L3A+JyArCiAgICAgICAgJzxoMyBzdHlsZT0ibWFyZ2luOjEycHggMCA0cHgiPkVpbnplbG5lIFBl
cnNvbmVuPC9oMz4nICsKICAgICAgICAnPGRpdiBpZD0iZGV0YWlsLXBlcnNvbmVuIiBzdHlsZT0i
bWF4LWhlaWdodDoyODBweDtvdmVyZmxvdzphdXRvO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9y
ZGVyLWxpZ2h0KTtwYWRkaW5nOjhweDtib3JkZXItcmFkaXVzOjRweCI+JyArCiAgICAgICAgICAg
IChwZXJzQ2JzIHx8ICc8c3BhbiBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPktlaW5l
IGFrdGl2ZW4gUGVyc29uZW48L3NwYW4+JykgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAn
PGgzIHN0eWxlPSJtYXJnaW46MTJweCAwIDRweCI+R2FuemUgRGllbnN0Z3J1cHBlbjwvaDM+JyAr
CiAgICAgICAgJzxkaXYgaWQ9ImRldGFpbC1kaWVuc3RncnVwcGVuIiBzdHlsZT0icGFkZGluZzo0
cHgiPicgKyAoZ3J1cHBlbkNicyB8fCAnPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0
ZWQpIj5LZWluZSBEaWVuc3RncnVwcGVuIGtvbmZpZ3VyaWVydDwvc3Bhbj4nKSArICc8L2Rpdj4n
ICsKICAgICAgICAnPGgzIHN0eWxlPSJtYXJnaW46MTJweCAwIDRweCI+R2FuemUgU3RhbmRvcnRl
IChPRSk8L2gzPicgKwogICAgICAgICc8ZGl2IGlkPSJkZXRhaWwtc3RhbmRvcnRlIiBzdHlsZT0i
cGFkZGluZzo0cHgiPicgKyAoc3RhbmRvcnRlQ2JzIHx8ICc8c3BhbiBzdHlsZT0iY29sb3I6dmFy
KC0tdGV4dC1tdXRlZCkiPktlaW5lIFN0YW5kb3J0ZSBrb25maWd1cmllcnQ8L3NwYW4+JykgKyAn
PC9kaXY+JzsKCiAgICBtb2RhbFplaWdlbignUGxhbnVuZzogJyArIChmYS5uYW1lIHx8ICcob2hu
ZSBOYW1lKScpLCBrb2VycGVyLAogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4iIGlkPSJkbGct
YWJicmVjaGVuIj5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0i
YnRuIGJ0bi1wcmltYWVyIiBpZD0iZGxnLXNwZWljaGVybiI+w5xiZXJuZWhtZW48L2J1dHRvbj4n
LAogICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgbmV1UCA9IFtdLCBuZXVHID0g
W10sIG5ldVMgPSBbXTsKICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI2Rl
dGFpbC1wZXJzb25lbiAuZWRpdC1jaGsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsKICAgICAgICAg
ICAgICAgIGlmIChjLmNoZWNrZWQpIG5ldVAucHVzaChwYXJzZUludChjLmdldEF0dHJpYnV0ZSgn
ZGF0YS13ZXJ0JykpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJyNkZXRhaWwtZGllbnN0Z3J1cHBlbiAuZWRpdC1jaGsnKS5mb3JFYWNoKGZ1
bmN0aW9uKGMpIHsKICAgICAgICAgICAgICAgIGlmIChjLmNoZWNrZWQpIG5ldUcucHVzaChjLmdl
dEF0dHJpYnV0ZSgnZGF0YS13ZXJ0JykpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI2RldGFpbC1zdGFuZG9ydGUgLmVkaXQtY2hrJykuZm9y
RWFjaChmdW5jdGlvbihjKSB7CiAgICAgICAgICAgICAgICBpZiAoYy5jaGVja2VkKSBuZXVTLnB1
c2goYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtd2VydCcpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgIGZhLmVkaXRpZXJlbiA9IHsgcGVyc29uZW5JZHM6IG5ldVAsIGRpZW5zdGdydXBwZW46IG5l
dUcsIHN0YW5kb3J0ZTogbmV1UyB9OwogICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4oKTsKICAg
ICAgICAgICAgY3R4LnJlbmRlcm4oKTsKICAgICAgICAgICAgY3R4Lm1hcmtEaXJ0eSgpOwogICAg
ICAgICAgICB0b2FzdCgnUGxhbnVuZ3MtUmVjaHRlIMO8YmVybm9tbWVuIOKAlCAiU3BlaWNoZXJu
IiBkcsO8Y2tlbiwgdW0gZGF1ZXJoYWZ0IHp1IHNpY2hlcm4nLCAnaW5mbycpOwogICAgICAgIH0K
ICAgICk7CiAgICB2YXIgYWJiciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctYWJicmVj
aGVuJyk7CiAgICBpZiAoYWJicikgYWJici5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG1vZGFs
U2NobGllc3Nlbik7Cn0K
### FILE: js/admin_standardrechte.js | 9237
Ly8gPT09IGFkbWluX3N0YW5kYXJkcmVjaHRlLmpzID09PQovLyBBZG1pbi1UYWIgIlN0YW5kYXJk
cmVjaHRlIChVc2VyKSIg4oCUIFNVLW9ubHkuIFp3ZWkgVGVpbGU6Ci8vCi8vICAxKSBHcnVuZHNh
ZXR6bGljaGUgUGxhbnVuZ3NyZWNodGUgZnVlciBBTExFIHJlZ3VsYWVyZW4gVXNlcjogZ2VnZW5z
ZWl0aWdlCi8vICAgICBQbGFudW5nIGplIERpZW5zdGdydXBwZSB1bmQvb2RlciBqZSBTdGFuZG9y
dC4gU3RlaHQgZGllIGVpZ2VuZSBHcnVwcGUvCi8vICAgICBkZXIgZWlnZW5lIFN0YW5kb3J0IGhp
ZXIsIGRhcmYgbWFuIGFsbGUgTWl0Z2xpZWRlciBkaWVzZXIgR3J1cHBlL2RpZXNlcwovLyAgICAg
U3RhbmRvcnRzIG1pdHBsYW5lbi4gV2lyZCBzZXJ2ZXJzZWl0aWcgKGJlcmVjaG5lX3JlY2h0ZS9H
ZXQtUmVjaHRlKQovLyAgICAgYWRkaXRpdiBpbiBgZWRpdGllcmVuYCBlaW5nZXdvYmVuIC0+IGdy
ZWlmdCBpbiBkZXIgYmVzdGVoZW5kZW4gWmVsbC1FZGl0LQovLyAgICAgUHJ1ZWZ1bmcgb2huZSBT
b25kZXJsb2dpay4gUGVyc2lzdGVuejogUFVUIC9hcGkvYWRtaW4vc3RhbmRhcmRyZWNodGUuCi8v
Ci8vICAyKSBMaXN0ZSAiVXNlciBtaXQgenVzYWV0emxpY2hlbiBSZWNodGVuIjogYWxsZSBQZXJz
b25lbiwgZGllIGluIGRlcgovLyAgICAgUGVyc29uYWx2ZXJ3YWx0dW5nIGluZGl2aWR1ZWxsZSBl
ZGl0UmVjaHRlIGJla29tbWVuIGhhYmVuICh6LkIuIGhvY2gtCi8vICAgICByYW5naWdlIE1BKSwg
aW5rbC4gVmlzdWFsaXNpZXJ1bmcgaWhyZXIgWnVzYXR6cmVjaHRlICsgQmVhcmJlaXRlbi1MaW5r
LgoKaW1wb3J0IHsgWiB9IGZyb20gJy4vY29yZV9zdGF0ZS5qcyc7CmltcG9ydCB7IGVzY2FwZUhU
TUwsIGVzY2FwZUF0dHIgfSBmcm9tICcuL2NvcmVfdXRpbC5qcyc7CmltcG9ydCB7IHRvYXN0IH0g
ZnJvbSAnLi91aV9kaWFsb2cuanMnOwppbXBvcnQgeyBhcGkgfSBmcm9tICcuL2NvcmVfYXBpLmpz
JzsKaW1wb3J0IHsgcGVyc29uQmVhcmJlaXRlbkRpYWxvZyB9IGZyb20gJy4vYWRtaW5fcGVyc29u
YWwuanMnOwoKZnVuY3Rpb24gX2RhcmYoKSB7IHJldHVybiAhIShaLnJlY2h0ZSAmJiBaLnJlY2h0
ZS5pc3RTdXBlclVzZXIpOyB9CmZ1bmN0aW9uIF9hcnIodikgeyByZXR1cm4gQXJyYXkuaXNBcnJh
eSh2KSA/IHYgOiAodiA9PSBudWxsID8gW10gOiBbdl0pOyB9CgpmdW5jdGlvbiBfc3RhbmRhcmRS
ZWNodGUoKSB7CiAgICB2YXIgc3IgPSAoWi5hZG1pbiAmJiBaLmFkbWluLnN0YW5kYXJkUmVjaHRl
KSB8fCB7fTsKICAgIHJldHVybiB7CiAgICAgICAgZ2VnZW5zZWl0aWdHcnVwcGVuOiAgIF9hcnIo
c3IuZ2VnZW5zZWl0aWdHcnVwcGVuKS5tYXAoU3RyaW5nKSwKICAgICAgICBnZWdlbnNlaXRpZ1N0
YW5kb3J0ZTogX2Fycihzci5nZWdlbnNlaXRpZ1N0YW5kb3J0ZSkubWFwKFN0cmluZykKICAgIH07
Cn0KCmZ1bmN0aW9uIF9ncnVwcGVuTGFiZWwobmFtZSkgewogICAgdmFyIGcgPSAoWi5hZG1pbi5n
cnVwcGVuIHx8IFtdKS5maWx0ZXIoZnVuY3Rpb24oeCl7IHJldHVybiB4Lm5hbWUgPT09IG5hbWU7
IH0pWzBdOwogICAgcmV0dXJuIGcgPyAoZy5iZXplaWNobnVuZyB8fCBnLm5hbWUpIDogbmFtZTsK
fQpmdW5jdGlvbiBfc3RhbmRvcnRMYWJlbChrdWVyemVsKSB7CiAgICB2YXIgcyA9IChaLmFkbWlu
LnN0YW5kb3J0ZSB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uKHgpeyByZXR1cm4geC5rdWVyemVsID09
PSBrdWVyemVsOyB9KVswXTsKICAgIGlmIChzICYmIHMubmFtZSkgcmV0dXJuIHMubmFtZSArICcg
KCcgKyBrdWVyemVsICsgJyknOwogICAgcmV0dXJuIGt1ZXJ6ZWw7Cn0KZnVuY3Rpb24gX3BlcnNv
bk5hbWUoaWQpIHsKICAgIHZhciBwID0gKChaLnBsYW51bmcgJiYgWi5wbGFudW5nLnBlcnNvbmVu
KSB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uKHgpeyByZXR1cm4gU3RyaW5nKHguaWQpID09PSBTdHJp
bmcoaWQpOyB9KVswXTsKICAgIGlmICghcCkgcmV0dXJuICcjJyArIGlkOwogICAgdmFyIG4gPSAo
cC5uYW1lIHx8ICcnKS50cmltKCksIHYgPSAocC52b3JuYW1lIHx8ICcnKS50cmltKCk7CiAgICBy
ZXR1cm4gdiA/IChuICsgJywgJyArIHYpIDogbjsKfQoKLy8gPT09PT0gUmVuZGVyID09PT09Cgpl
eHBvcnQgZnVuY3Rpb24gc3RhbmRhcmRyZWNodGVSZW5kZXJuKCkgewogICAgdmFyIGNvbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhbmRhcmRyZWNodGUtaW5oYWx0Jyk7CiAgICBpZiAo
IWNvbnQpIHJldHVybjsKICAgIGlmICghX2RhcmYoKSkgewogICAgICAgIGNvbnQuaW5uZXJIVE1M
ID0gJzxkaXYgY2xhc3M9ImFkbWluLWVtcHR5Ij48ZGl2IGNsYXNzPSJhZG1pbi1lbXB0eS10ZXh0
Ij5OdXIgU3VwZXJVc2VyIGTDvHJmZW4gU3RhbmRhcmRyZWNodGUgdmVyd2FsdGVuLjwvZGl2Pjwv
ZGl2Pic7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIHNyID0gX3N0YW5kYXJkUmVjaHRl
KCk7CiAgICBjb250LmlubmVySFRNTCA9IF9lcmtsYWVydW5nSHRtbCgpICsgX2tvbmZpZ0h0bWwo
c3IpICsgX3p1c2F0ekxpc3RlSHRtbCgpOwogICAgX3ZlcmRyYWh0ZW4oY29udCk7Cn0KCmZ1bmN0
aW9uIF9lcmtsYWVydW5nSHRtbCgpIHsKICAgIHJldHVybiAnJyArCiAgICAnPGRldGFpbHMgY2xh
c3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9InN0YW5kYXJkcmVjaHRlIiBvcGVuPicgKwog
ICAgICAgICc8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+
V2FzIHNpbmQgU3RhbmRhcmRyZWNodGU/PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1
ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PicgKwogICAgICAgICc8ZGl2IGNs
YXNzPSJhZG1pbi1pbmZvLWJvZHkiPicgKwogICAgICAgICAgICAnPHA+PHN0cm9uZz5TdGFuZGFy
ZHJlY2h0ZTwvc3Ryb25nPiBnZWx0ZW4gZsO8ciA8Yj5hbGxlPC9iPiBNaXRhcmJlaXRlbmRlbiwg
ZGllIGluIGtlaW5lciBSb2xsZW4tTGlzdGUgKFN1cGVyVXNlciAvIEZhY2hhdWZzaWNodCAvIERp
cmVrdGlvbnNsZWl0dW5nIC8gRsO8aHJ1bmdzc3RlbGxlKSBzdGVoZW4g4oCUIGFsc28gZGVuIOKA
nm5vcm1hbGVuIiBVc2VyLjwvcD4nICsKICAgICAgICAgICAgJzxwPjxzdHJvbmc+SW1tZXIgZXJs
YXVidCAoQmFzaXMsIG5pY2h0IGFic2NoYWx0YmFyKTo8L3N0cm9uZz48L3A+JyArCiAgICAgICAg
ICAgICc8dWw+JyArCiAgICAgICAgICAgICAgICAnPGxpPjxiPkVpZ2VuZSBaZWlsZTwvYj4g4oCU
IGplZGUgUGVyc29uIGRhcmYgaWhyZSBlaWdlbmVuIFRhZ2UgZWludHJhZ2VuLjwvbGk+JyArCiAg
ICAgICAgICAgICAgICAnPGxpPjxiPk1pa3JvdGVhbTwvYj4g4oCUIE1pdGdsaWVkZXIgZGVzc2Vs
YmVuIE1pa3JvdGVhbXMgcGxhbmVuIHNpY2ggZ2VnZW5zZWl0aWcgKFBmbGVnZSB1bnRlciA8ZW0+
TWlrcm90ZWFtczwvZW0+KS48L2xpPicgKwogICAgICAgICAgICAnPC91bD4nICsKICAgICAgICAg
ICAgJzxwPjxzdHJvbmc+WnVzw6R0emxpY2gga29uZmlndXJpZXJiYXIgKHVudGVuKTo8L3N0cm9u
Zz4g4oCeZ2VnZW5zZWl0aWdlIFBsYW51bmciIGplIERpZW5zdGdydXBwZSBvZGVyIFN0YW5kb3J0
LiBCZWlzcGllbDogSXN0IGRpZSBTY2hpY2h0Z3J1cHBlIDxjb2RlPkE8L2NvZGU+IGFrdGl2aWVy
dCwgZGFyZiA8Yj5qZWRlczwvYj4gTWl0Z2xpZWQgZGVyIEdydXBwZSBBIDxiPmplZGVzIGFuZGVy
ZTwvYj4gTWl0Z2xpZWQgZGVyIEdydXBwZSBBIG1pdHBsYW5lbi4gQW5hbG9nIGRlciBTdGFuZG9y
dCAoei5CLiBhbGxlIGRlciBBUFcgS2FtZW4pLjwvcD4nICsKICAgICAgICAgICAgJzxwPjxzdHJv
bmc+SW5kaXZpZHVlbGxlIFp1c2F0enJlY2h0ZTwvc3Ryb25nPiBlaW56ZWxuZXIgUGVyc29uZW4g
d2VyZGVuIHdlaXRlcmhpbiBpbiBkZXIgPGVtPlBlcnNvbmFsdmVyd2FsdHVuZzwvZW0+IHBybyBQ
ZXJzb24gZ2VzZXR6dCDigJQgc2llIHNpbmQgdW50ZW4gaW4gZGVyIMOcYmVyc2ljaHQgYXVmZ2Vm
w7xocnQuPC9wPicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICc8L2RldGFpbHM+JzsKfQoKZnVu
Y3Rpb24gX2NoaXBzKGdycCwgb3B0aW9uZW4sIHNlbGVjdGVkKSB7CiAgICB2YXIgY2hpcHMgPSBv
cHRpb25lbi5tYXAoZnVuY3Rpb24obykgewogICAgICAgIHZhciBhbiA9IHNlbGVjdGVkLmluZGV4
T2YoU3RyaW5nKG8ud2VydCkpID49IDA7CiAgICAgICAgcmV0dXJuICc8bGFiZWwgY2xhc3M9ImJs
ZC1jaGlwJyArIChhbiA/ICcgYW4nIDogJycpICsgJyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBk
YXRhLXNyY2hpcD0iJyArIGVzY2FwZUF0dHIoZ3JwKSArICciIHZhbHVlPSInICsgZXNjYXBlQXR0
cihTdHJpbmcoby53ZXJ0KSkgKyAnIicgKyAoYW4gPyAnIGNoZWNrZWQnIDogJycpICsgJz48c3Bh
bj4nICsgZXNjYXBlSFRNTChvLmxhYmVsKSArICc8L3NwYW4+PC9sYWJlbD4nOwogICAgfSkuam9p
bignJyk7CiAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImJsZC1jaGlwcyI+JyArIChjaGlwcyB8fCAn
PHNwYW4gY2xhc3M9ImJsZC1saXN0ZS1sZWVyIj7igJQ8L3NwYW4+JykgKyAnPC9kaXY+JzsKfQoK
ZnVuY3Rpb24gX2tvbmZpZ0h0bWwoc3IpIHsKICAgIHZhciBnck9wdCA9IChaLmFkbWluLmdydXBw
ZW4gfHwgW10pLm1hcChmdW5jdGlvbihnKXsgcmV0dXJuIHsgd2VydDogZy5uYW1lLCBsYWJlbDog
Zy5iZXplaWNobnVuZyB8fCBnLm5hbWUgfTsgfSk7CiAgICB2YXIgc3RPcHQgPSAoWi5hZG1pbi5z
dGFuZG9ydGUgfHwgW10pLm1hcChmdW5jdGlvbihzKXsgcmV0dXJuIHsgd2VydDogcy5rdWVyemVs
LCBsYWJlbDogcy5uYW1lID8gKHMubmFtZSArICcgKCcgKyBzLmt1ZXJ6ZWwgKyAnKScpIDogcy5r
dWVyemVsIH07IH0pOwogICAgcmV0dXJuICcnICsKICAgICc8c2VjdGlvbiBjbGFzcz0iYWRtaW4t
c2VrdGlvbiBzci1rb25maWciPicgKwogICAgICAgICc8aDM+R2VnZW5zZWl0aWdlIFBsYW51bmc8
L2gzPicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJibGQtZmVsZCI+PHNwYW4gY2xhc3M9ImJsZC1m
ZWxkLXRpdGVsIj5EaWVuc3RncnVwcGVuLCBkZXJlbiBNaXRnbGllZGVyIHNpY2ggZ2VnZW5zZWl0
aWcgcGxhbmVuPC9zcGFuPicgKwogICAgICAgICAgICBfY2hpcHMoJ2dydXBwZW4nLCBnck9wdCwg
c3IuZ2VnZW5zZWl0aWdHcnVwcGVuKSArICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0i
YmxkLWZlbGQiPjxzcGFuIGNsYXNzPSJibGQtZmVsZC10aXRlbCI+U3RhbmRvcnRlLCBkZXJlbiBN
aXRnbGllZGVyIHNpY2ggZ2VnZW5zZWl0aWcgcGxhbmVuPC9zcGFuPicgKwogICAgICAgICAgICBf
Y2hpcHMoJ3N0YW5kb3J0ZScsIHN0T3B0LCBzci5nZWdlbnNlaXRpZ1N0YW5kb3J0ZSkgKyAnPC9k
aXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9InJlY2h0ZS1jYXJkLWZ1c3MiPjxidXR0b24gY2xh
c3M9ImJ0biBidG4tcHJpbWFlciIgdHlwZT0iYnV0dG9uIiBpZD0ic3Itc3BlaWNoZXJuIj5TdGFu
ZGFyZHJlY2h0ZSBzcGVpY2hlcm48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzxzcGFuIGNsYXNz
PSJzci1oaW53ZWlzIj5HaWx0IHNvZm9ydCBmw7xyIGFsbGUgcmVndWzDpHJlbiBVc2VyIChncmVp
ZnQgYmVpbSBuw6RjaHN0ZW4gTGFkZW4gaWhyZXIgUGxhbnVuZykuPC9zcGFuPjwvZGl2PicgKwog
ICAgJzwvc2VjdGlvbj4nOwp9CgpmdW5jdGlvbiBfenVzYXR6TGlzdGVIdG1sKCkgewogICAgdmFy
IGxldXRlID0gKChaLnBsYW51bmcgJiYgWi5wbGFudW5nLnBlcnNvbmVuKSB8fCBbXSkuZmlsdGVy
KGZ1bmN0aW9uKHApIHsKICAgICAgICB2YXIgZXIgPSBwLmVkaXRSZWNodGU7CiAgICAgICAgaWYg
KCFlcikgcmV0dXJuIGZhbHNlOwogICAgICAgIHJldHVybiAoX2Fycihlci5wZXJzb25lbklkcyku
bGVuZ3RoICsgX2Fycihlci5kaWVuc3RncnVwcGVuKS5sZW5ndGggKyBfYXJyKGVyLnN0YW5kb3J0
ZSkubGVuZ3RoKSA+IDA7CiAgICB9KTsKICAgIHZhciBpbmhhbHQ7CiAgICBpZiAoIWxldXRlLmxl
bmd0aCkgewogICAgICAgIGluaGFsdCA9ICc8ZGl2IGNsYXNzPSJibGQtbGlzdGUtbGVlciI+QWt0
dWVsbCBoYXQga2VpbmUgUGVyc29uIGluZGl2aWR1ZWxsZSBadXNhdHpyZWNodGUuIERpZXNlIHdl
cmRlbiBpbiBkZXIgUGVyc29uYWx2ZXJ3YWx0dW5nIHBybyBQZXJzb24gZ2VzZXR6dCAobnVyIFN1
cGVyVXNlcikuPC9kaXY+JzsKICAgIH0gZWxzZSB7CiAgICAgICAgaW5oYWx0ID0gJzxkaXYgY2xh
c3M9InNyLXp1c2F0ei1pdGVtcyI+JyArIGxldXRlLm1hcChmdW5jdGlvbihwKSB7CiAgICAgICAg
ICAgIHZhciBlciA9IHAuZWRpdFJlY2h0ZSB8fCB7fTsKICAgICAgICAgICAgdmFyIHRlaWxlID0g
W107CiAgICAgICAgICAgIHZhciBwaXMgPSBfYXJyKGVyLnBlcnNvbmVuSWRzKTsKICAgICAgICAg
ICAgaWYgKHBpcy5sZW5ndGgpIHRlaWxlLnB1c2goJzxzcGFuIGNsYXNzPSJzci10YWcgc3ItdGFn
LXBlcnNvbiI+UGVyc29uZW46ICcgKyBwaXMubWFwKGZ1bmN0aW9uKGlkKXsgcmV0dXJuIGVzY2Fw
ZUhUTUwoX3BlcnNvbk5hbWUoaWQpKTsgfSkuam9pbignLCAnKSArICc8L3NwYW4+Jyk7CiAgICAg
ICAgICAgIF9hcnIoZXIuZGllbnN0Z3J1cHBlbikuZm9yRWFjaChmdW5jdGlvbihnKXsgdGVpbGUu
cHVzaCgnPHNwYW4gY2xhc3M9InNyLXRhZyBzci10YWctZ3JwIj5HcnVwcGUgJyArIGVzY2FwZUhU
TUwoX2dydXBwZW5MYWJlbChnKSkgKyAnPC9zcGFuPicpOyB9KTsKICAgICAgICAgICAgX2Fycihl
ci5zdGFuZG9ydGUpLmZvckVhY2goZnVuY3Rpb24ocyl7IHRlaWxlLnB1c2goJzxzcGFuIGNsYXNz
PSJzci10YWcgc3ItdGFnLW9ydCI+U3RhbmRvcnQgJyArIGVzY2FwZUhUTUwoX3N0YW5kb3J0TGFi
ZWwocykpICsgJzwvc3Bhbj4nKTsgfSk7CiAgICAgICAgICAgIHZhciBwTmFtZSA9IChwLm5hbWUg
fHwgJycpICsgKHAudm9ybmFtZSA/ICgnLCAnICsgcC52b3JuYW1lKSA6ICcnKTsKICAgICAgICAg
ICAgdmFyIG1ldGEgPSBbcC5mdW5rdGlvbiwgcC5ncnVwcGUsIHAub2VdLmZpbHRlcihCb29sZWFu
KS5qb2luKCcgwrcgJyk7CiAgICAgICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0ic3ItenVzYXR6
LWl0ZW0iPicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InNyLXp1c2F0ei1rb3BmIj48
c3BhbiBjbGFzcz0ic3ItenVzYXR6LW5hbWUiPicgKyBlc2NhcGVIVE1MKHBOYW1lKSArICc8L3Nw
YW4+JyArCiAgICAgICAgICAgICAgICAgICAgKG1ldGEgPyAnPHNwYW4gY2xhc3M9InNyLXp1c2F0
ei1tZXRhIj4nICsgZXNjYXBlSFRNTChtZXRhKSArICc8L3NwYW4+JyA6ICcnKSArCiAgICAgICAg
ICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tbWluaSIgdHlwZT0iYnV0dG9uIiBk
YXRhLXNyLWVkaXQ9IicgKyBlc2NhcGVBdHRyKFN0cmluZyhwLmlkKSkgKyAnIj5CZWFyYmVpdGVu
PC9idXR0b24+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic3ItenVzYXR6
LXJlY2h0ZSI+JyArIHRlaWxlLmpvaW4oJycpICsgJzwvZGl2PicgKwogICAgICAgICAgICAnPC9k
aXY+JzsKICAgICAgICB9KS5qb2luKCcnKSArICc8L2Rpdj4nOwogICAgfQogICAgcmV0dXJuICc8
c2VjdGlvbiBjbGFzcz0iYWRtaW4tc2VrdGlvbiBzci16dXNhdHoiPicgKwogICAgICAgICc8aDM+
VXNlciBtaXQgenVzw6R0emxpY2hlbiBSZWNodGVuPC9oMz4nICsKICAgICAgICAnPHAgY2xhc3M9
InNyLXp1c2F0ei1zdWIiPkRpZXNlIFBlcnNvbmVuIGTDvHJmZW4gw7xiZXIgZGllIEJhc2lzLS9T
dGFuZGFyZHJlY2h0ZSBoaW5hdXMgd2VpdGVyZSBQZXJzb25lbiwgR3J1cHBlbiBvZGVyIFN0YW5k
b3J0ZSBwbGFuZW4gKGluZGl2aWR1ZWxsIGluIGRlciBQZXJzb25hbHZlcndhbHR1bmcgdmVyZ2Vi
ZW4pLjwvcD4nICsKICAgICAgICBpbmhhbHQgKyAnPC9zZWN0aW9uPic7Cn0KCi8vID09PT09IFNw
ZWljaGVybiAvIFZlcmRyYWh0dW5nID09PT09CgpmdW5jdGlvbiBfbGVzZUNoaXBzKGdycCkgewog
ICAgdmFyIG91dCA9IFtdOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtc3Jj
aGlwPSInICsgZ3JwICsgJyJdOmNoZWNrZWQnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpeyBvdXQucHVz
aChjLnZhbHVlKTsgfSk7CiAgICByZXR1cm4gb3V0Owp9CmZ1bmN0aW9uIF9zcGVpY2hlcm4oKSB7
CiAgICB2YXIgZGF0ZW4gPSB7IGdlZ2Vuc2VpdGlnR3J1cHBlbjogX2xlc2VDaGlwcygnZ3J1cHBl
bicpLCBnZWdlbnNlaXRpZ1N0YW5kb3J0ZTogX2xlc2VDaGlwcygnc3RhbmRvcnRlJykgfTsKICAg
IGFwaSgnL2FwaS9hZG1pbi9zdGFuZGFyZHJlY2h0ZScsIHsgbWV0aG9kOiAnUFVUJywgaGVhZGVy
czogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sIGJvZHk6IEpTT04uc3Ry
aW5naWZ5KGRhdGVuKSB9KQogICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBa
LmFkbWluLnN0YW5kYXJkUmVjaHRlID0gZGF0ZW47CiAgICAgICAgICAgIHRvYXN0KCdTdGFuZGFy
ZHJlY2h0ZSBnZXNwZWljaGVydCcsICdlcmZvbGcnKTsKICAgICAgICAgICAgc3RhbmRhcmRyZWNo
dGVSZW5kZXJuKCk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSl7IHRvYXN0KCdTcGVpY2hl
cm4gZmVobGdlc2NobGFnZW46ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7Cn0KCmZ1bmN0
aW9uIF92ZXJkcmFodGVuKGNvbnQpIHsKICAgIGNvbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdl
JywgZnVuY3Rpb24oZSkgewogICAgICAgIHZhciB0ID0gZS50YXJnZXQ7CiAgICAgICAgaWYgKHQu
bWF0Y2hlcyAmJiB0Lm1hdGNoZXMoJ1tkYXRhLXNyY2hpcF0nKSkgewogICAgICAgICAgICB2YXIg
bGFiID0gdC5jbG9zZXN0KCcuYmxkLWNoaXAnKTsgaWYgKGxhYikgbGFiLmNsYXNzTGlzdC50b2dn
bGUoJ2FuJywgdC5jaGVja2VkKTsKICAgICAgICB9CiAgICB9KTsKICAgIHZhciBzYiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzci1zcGVpY2hlcm4nKTsKICAgIGlmIChzYikgc2IuYWRkRXZl
bnRMaXN0ZW5lcignY2xpY2snLCBfc3BlaWNoZXJuKTsKICAgIGNvbnQucXVlcnlTZWxlY3RvckFs
bCgnW2RhdGEtc3ItZWRpdF0nKS5mb3JFYWNoKGZ1bmN0aW9uKGIpIHsKICAgICAgICBiLmFkZEV2
ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgcGVyc29uQmVhcmJlaXRlbkRpYWxvZyhw
YXJzZUludChiLmdldEF0dHJpYnV0ZSgnZGF0YS1zci1lZGl0JyksIDEwKSk7IH0pOwogICAgfSk7
Cn0K
### FILE: js/admin_statistik.js | 8259
Ly8gPT09IGFkbWluX3N0YXRpc3Rpay5qcyA9PT0KLy8gU3VwZXJVc2VyLUxheW91dC1SYXN0ZXIg
ZnVlciBkZW4gU3RhdGlzdGlrLVRhYi4gT3JkbmV0IEFMTEUgU3RhdGlzdGlrLQovLyBLYWNoZWxu
IChmZXN0ZSBQYW5lbHMgKyBzZWxic3RnZWJhdXRlIEJhdWthc3Rlbi1LYWNoZWxuKSBpbiBlaW5l
bSB2aXN1ZWxsZW4KLy8gNi1TcGFsdGVuLVJhc3RlciBhbjogQnJlaXRlICgxOjEgdm9sbCAvIDE6
MiBoYWxiIC8gMTozIGRyaXR0ZWwpLCBSZWloZW5mb2xnZQovLyAoRHJhZykgdW5kIFNpY2h0YmFy
a2VpdCAoQXVnZSkuIFBlcnNpc3RlbnogdmlhIFBVVCAvYXBpL2FkbWluL3N0YXRpc3RpawovLyAo
UGFydGlhbC1NZXJnZSBudXIgc3RhdGlzdGlrTGF5b3V0KS4gUGVuZGFudC1EYXRlbmZsdXNzIHp1
IHN0YXRpc3Rpay5qcwovLyAoZG9ydCBsaWVzdCBsYXlvdXRBbndlbmRlbigpIFouYWRtaW4uc3Rh
dGlzdGlrTGF5b3V0KS4KLy8KLy8gTXVzdGVyIGZ1ZXIgRHJhZyZEcm9wIHVlYmVybm9tbWVuIGF1
cyBhZG1pbl9jb2Rlcy5qcyAoc2NoaWNodGNvZGVEcmFnVmVyZHJhaHRlbikuCgppbXBvcnQgeyBa
IH0gZnJvbSAnLi9jb3JlX3N0YXRlLmpzJzsKaW1wb3J0IHsgZXNjYXBlSFRNTCwgZXNjYXBlQXR0
ciB9IGZyb20gJy4vY29yZV91dGlsLmpzJzsKaW1wb3J0IHsgdG9hc3QgfSBmcm9tICcuL3VpX2Rp
YWxvZy5qcyc7CmltcG9ydCB7IGFwaSB9IGZyb20gJy4vY29yZV9hcGkuanMnOwppbXBvcnQgeyBz
dGF0aXN0aWtUaWxlc0FsbGUsIEJSRUlURV9TUEFOIH0gZnJvbSAnLi9zdGF0aXN0aWsuanMnOwoK
dmFyIEJSRUlURV9SQU5HICA9IHsgZHJpdHRlbDogMCwgaGFsYjogMSwgdm9sbDogMiB9Owp2YXIg
QlJFSVRFX1JFSUhFID0gWyd2b2xsJywgJ2hhbGInLCAnZHJpdHRlbCddOwp2YXIgQlJFSVRFX0xB
QkVMID0geyB2b2xsOiAnMToxIMK3IHZvbGwnLCBoYWxiOiAnMToyIMK3IGhhbGInLCBkcml0dGVs
OiAnMTozIMK3IGRyaXR0ZWwnIH07CgovLyBBa3R1ZWxsZXMgQXJiZWl0cy1MYXlvdXQgKGdlbWlz
Y2h0IGF1cyBaLmFkbWluLnN0YXRpc3Rpa0xheW91dCArIFRpbGUtU3RhbW1kYXRlbikuCnZhciBf
cmFzdGVyID0gW107CgpmdW5jdGlvbiBfZGFyZkVkaXRpZXJlbigpIHsKICAgIHJldHVybiAhISha
LnJlY2h0ZSAmJiBaLnJlY2h0ZS5pc3RTdXBlclVzZXIpOwp9CgpmdW5jdGlvbiBfY2xhbXAoYnJl
aXRlLCBtaW5CcmVpdGUpIHsKICAgIGlmICghQlJFSVRFX1NQQU5bYnJlaXRlXSkgYnJlaXRlID0g
J3ZvbGwnOwogICAgaWYgKCFCUkVJVEVfU1BBTlttaW5CcmVpdGVdKSBtaW5CcmVpdGUgPSAnZHJp
dHRlbCc7CiAgICByZXR1cm4gKEJSRUlURV9SQU5HW2JyZWl0ZV0gPCBCUkVJVEVfUkFOR1ttaW5C
cmVpdGVdKSA/IG1pbkJyZWl0ZSA6IGJyZWl0ZTsKfQoKLy8gTWVyZ2UgZ2VzcGVpY2hlcnRlcyBM
YXlvdXQgKFJlaWhlbmZvbGdlL0JyZWl0ZS9TaWNodGJhcmtlaXQpIG1pdCBkZXIKLy8gdm9sbHN0
YWVuZGlnZW4gVGlsZS1MaXN0ZSDigJQgbmV1ZSBUaWxlcyBoaW50ZW4gYW5oYWVuZ2VuLCB2ZXJ3
YWlzdGUgZHJvcHBlbi4KZnVuY3Rpb24gX2JhdWVSYXN0ZXIoKSB7CiAgICB2YXIgdGlsZXMgPSBz
dGF0aXN0aWtUaWxlc0FsbGUoKTsKICAgIHZhciBieUlkID0ge307CiAgICB0aWxlcy5mb3JFYWNo
KGZ1bmN0aW9uKHQpeyBieUlkW3QuaWRdID0gdDsgfSk7CiAgICB2YXIgZ2VzcGVpY2hlcnQgPSAo
Wi5hZG1pbiAmJiBBcnJheS5pc0FycmF5KFouYWRtaW4uc3RhdGlzdGlrTGF5b3V0KSkgPyBaLmFk
bWluLnN0YXRpc3Rpa0xheW91dCA6IFtdOwogICAgdmFyIG91dCA9IFtdLCBnZXNlaGVuID0ge307
CiAgICBnZXNwZWljaGVydC5mb3JFYWNoKGZ1bmN0aW9uKGUpewogICAgICAgIGlmICghZSB8fCAh
ZS5pZCkgcmV0dXJuOwogICAgICAgIHZhciB0ID0gYnlJZFtlLmlkXTsKICAgICAgICBpZiAoIXQp
IHJldHVybjsKICAgICAgICBvdXQucHVzaCh7CiAgICAgICAgICAgIGlkOiB0LmlkLCB0aXRlbDog
dC50aXRlbCwgbWluQnJlaXRlOiB0Lm1pbkJyZWl0ZSwgaXN0S2FjaGVsOiB0LmlzdEthY2hlbCwK
ICAgICAgICAgICAgYnJlaXRlOiBfY2xhbXAoZS5icmVpdGUgfHwgdC5kZWZhdWx0QnJlaXRlLCB0
Lm1pbkJyZWl0ZSksCiAgICAgICAgICAgIHNpY2h0YmFyOiBlLnNpY2h0YmFyICE9PSBmYWxzZQog
ICAgICAgIH0pOwogICAgICAgIGdlc2VoZW5bdC5pZF0gPSB0cnVlOwogICAgfSk7CiAgICB0aWxl
cy5mb3JFYWNoKGZ1bmN0aW9uKHQpewogICAgICAgIGlmIChnZXNlaGVuW3QuaWRdKSByZXR1cm47
CiAgICAgICAgb3V0LnB1c2goewogICAgICAgICAgICBpZDogdC5pZCwgdGl0ZWw6IHQudGl0ZWws
IG1pbkJyZWl0ZTogdC5taW5CcmVpdGUsIGlzdEthY2hlbDogdC5pc3RLYWNoZWwsCiAgICAgICAg
ICAgIGJyZWl0ZTogdC5kZWZhdWx0QnJlaXRlLCBzaWNodGJhcjogdHJ1ZQogICAgICAgIH0pOwog
ICAgfSk7CiAgICByZXR1cm4gb3V0Owp9CgpmdW5jdGlvbiBfcGVyc2lzdGllcmVuKCkgewogICAg
dmFyIG51ciA9IF9yYXN0ZXIubWFwKGZ1bmN0aW9uKGUpeyByZXR1cm4geyBpZDogZS5pZCwgYnJl
aXRlOiBlLmJyZWl0ZSwgc2ljaHRiYXI6IGUuc2ljaHRiYXIgfTsgfSk7CiAgICByZXR1cm4gYXBp
KCcvYXBpL2FkbWluL3N0YXRpc3RpaycsIHsKICAgICAgICBtZXRob2Q6ICdQVVQnLAogICAgICAg
IGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LAogICAgICAg
IGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgc3RhdGlzdGlrTGF5b3V0OiBudXIgfSkKICAgIH0pLnRo
ZW4oZnVuY3Rpb24oKXsKICAgICAgICBaLmFkbWluLnN0YXRpc3Rpa0xheW91dCA9IG51cjsKICAg
ICAgICB0b2FzdCgnU3RhdGlzdGlrLUxheW91dCBnZXNwZWljaGVydCcsICdlcmZvbGcnKTsKICAg
IH0pLmNhdGNoKGZ1bmN0aW9uKGUpewogICAgICAgIHRvYXN0KCdTcGVpY2hlcm4gZmVobGdlc2No
bGFnZW46ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsKICAgIH0pOwp9CgpmdW5jdGlvbiBfbmFl
Y2hzdGVCcmVpdGUoY3VyLCBtaW5CcmVpdGUpIHsKICAgIHZhciBlcmxhdWJ0ID0gQlJFSVRFX1JF
SUhFLmZpbHRlcihmdW5jdGlvbihiKXsgcmV0dXJuIEJSRUlURV9SQU5HW2JdID49IEJSRUlURV9S
QU5HW21pbkJyZWl0ZV07IH0pOwogICAgdmFyIGkgPSBlcmxhdWJ0LmluZGV4T2YoY3VyKTsKICAg
IGlmIChpIDwgMCkgaSA9IDA7CiAgICByZXR1cm4gZXJsYXVidFsoaSArIDEpICUgZXJsYXVidC5s
ZW5ndGhdOwp9CgpmdW5jdGlvbiBfdGlsZUh0bWwoZSkgewogICAgdmFyIHNwYW4gPSBCUkVJVEVf
U1BBTltlLmJyZWl0ZV0gfHwgNjsKICAgIHZhciBtaW5IaW53ZWlzID0gKGUubWluQnJlaXRlID09
PSAndm9sbCcpID8gJyA8c3BhbiBjbGFzcz0ic2wtbWluIj4obnVyIHZvbGwpPC9zcGFuPicgOiAn
JzsKICAgIHJldHVybiAnPGRpdiBjbGFzcz0ic2wtdGlsZScgKyAoZS5zaWNodGJhciA/ICcnIDog
JyBzbC11bnNpY2h0YmFyJykgKyAnIiAnICsKICAgICAgICAgICAgJ2RhdGEtdGlsZS1pZD0iJyAr
IGVzY2FwZUF0dHIoZS5pZCkgKyAnIiBkcmFnZ2FibGU9InRydWUiICcgKwogICAgICAgICAgICAn
c3R5bGU9ImdyaWQtY29sdW1uOnNwYW4gJyArIHNwYW4gKyAnIiAnICsKICAgICAgICAgICAgJ3Rp
dGxlPSJLbGljayB3ZWNoc2VsdCBkaWUgQnJlaXRlLCBaaWVoZW4gw6RuZGVydCBkaWUgUmVpaGVu
Zm9sZ2UiPicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJzbC10aWxlLWtvcGYiPicgKwogICAgICAg
ICAgICAoZS5pc3RLYWNoZWwgPyAnPHNwYW4gY2xhc3M9InNsLWJhZGdlIj5CYXVrYXN0ZW48L3Nw
YW4+JyA6ICc8c3BhbiBjbGFzcz0ic2wtYmFkZ2Ugc2wtYmFkZ2UtZmVzdCI+UGFuZWw8L3NwYW4+
JykgKwogICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0ic2wtYXVnZSIgdHlwZT0iYnV0dG9uIiBk
YXRhLXNsLWF1Z2U9IicgKyBlc2NhcGVBdHRyKGUuaWQpICsgJyIgJyArCiAgICAgICAgICAgICAg
ICAndGl0bGU9IicgKyAoZS5zaWNodGJhciA/ICdTaWNodGJhciDigJQgS2xpY2sgYmxlbmRldCBh
dXMnIDogJ0F1c2dlYmxlbmRldCDigJQgS2xpY2sgYmxlbmRldCBlaW4nKSArICciICcgKwogICAg
ICAgICAgICAgICAgJ2FyaWEtbGFiZWw9IlNpY2h0YmFya2VpdCB1bXNjaGFsdGVuIj4nICsgKGUu
c2ljaHRiYXIgPyAnU2ljaHRiYXInIDogJ0F1cycpICsgJzwvYnV0dG9uPicgKwogICAgICAgICc8
L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0ic2wtdGlsZS10aXRlbCI+JyArIGVzY2FwZUhU
TUwoZS50aXRlbCkgKyAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9InNsLXRpbGUtYnJl
aXRlIj4nICsgZXNjYXBlSFRNTChCUkVJVEVfTEFCRUxbZS5icmVpdGVdIHx8IGUuYnJlaXRlKSAr
IG1pbkhpbndlaXMgKyAnPC9kaXY+JyArCiAgICAnPC9kaXY+JzsKfQoKZXhwb3J0IGZ1bmN0aW9u
IHN0YXRpc3Rpa0xheW91dFJlbmRlcm4oKSB7CiAgICB2YXIgY29udCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzdGF0aXN0aWstbGF5b3V0LWluaGFsdCcpOwogICAgaWYgKCFjb250KSByZXR1
cm47CiAgICBpZiAoIV9kYXJmRWRpdGllcmVuKCkpIHsKICAgICAgICBjb250LmlubmVySFRNTCA9
ICc8ZGl2IGNsYXNzPSJhZG1pbi1lbXB0eSI+PGRpdiBjbGFzcz0iYWRtaW4tZW1wdHktdGV4dCI+
TnVyIFN1cGVyVXNlciBkw7xyZmVuIGRhcyBTdGF0aXN0aWstTGF5b3V0IGFub3JkbmVuLjwvZGl2
PjwvZGl2Pic7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgX3Jhc3RlciA9IF9iYXVlUmFzdGVy
KCk7CiAgICBpZiAoIV9yYXN0ZXIubGVuZ3RoKSB7CiAgICAgICAgY29udC5pbm5lckhUTUwgPSAn
PGRpdiBjbGFzcz0iYWRtaW4tZW1wdHkiPjxkaXYgY2xhc3M9ImFkbWluLWVtcHR5LXRleHQiPktl
aW5lIFN0YXRpc3Rpay1LYWNoZWxuIHZvcmhhbmRlbi48L2Rpdj48L2Rpdj4nOwogICAgICAgIHJl
dHVybjsKICAgIH0KICAgIGNvbnQuaW5uZXJIVE1MID0KICAgICAgICAnPGRpdiBjbGFzcz0ic2wt
bGVnZW5kZSI+Ni1TcGFsdGVuLVJhc3RlciDigJQgc28gZXJzY2hlaW50IGRlciBTdGF0aXN0aWst
VGFiIGbDvHIgYWxsZS4gJyArCiAgICAgICAgJ0tsaWNrIGF1ZiBlaW5lIEthY2hlbCB3ZWNoc2Vs
dCBkaWUgQnJlaXRlICh2b2xsIOKGkiBoYWxiIOKGkiBkcml0dGVsKSwgWmllaGVuIG9yZG5ldCBu
ZXUsIGRhcyBBdWdlIGJsZW5kZXQgYXVzLjwvZGl2PicgKwogICAgICAgICc8ZGl2IGlkPSJzbC1y
YXN0ZXIiIGNsYXNzPSJzbC1yYXN0ZXIgc3RhdHMtZ3JpZCI+JyArIF9yYXN0ZXIubWFwKF90aWxl
SHRtbCkuam9pbignJykgKyAnPC9kaXY+JzsKICAgIF92ZXJkcmFodGVuKGNvbnQpOwp9CgpmdW5j
dGlvbiBfdmVyZHJhaHRlbihjb250KSB7CiAgICB2YXIgcmFzdGVyID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3NsLXJhc3RlcicpOwogICAgaWYgKCFyYXN0ZXIpIHJldHVybjsKCiAgICAvLyBL
bGljazogQnJlaXRlIGN5Y2xlbiAoQXVnZS1LbGljayBzZXBhcmF0IGJlaGFuZGVsbikuCiAgICBy
YXN0ZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICB2YXIg
YXVnZSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLXNsLWF1Z2VdJyk7CiAgICAgICAgaWYgKGF1
Z2UpIHsKICAgICAgICAgICAgdmFyIGFpZCA9IGF1Z2UuZ2V0QXR0cmlidXRlKCdkYXRhLXNsLWF1
Z2UnKTsKICAgICAgICAgICAgdmFyIGFlID0gX3Jhc3Rlci5maWx0ZXIoZnVuY3Rpb24oeCl7IHJl
dHVybiB4LmlkID09PSBhaWQ7IH0pWzBdOwogICAgICAgICAgICBpZiAoYWUpIHsgYWUuc2ljaHRi
YXIgPSAhYWUuc2ljaHRiYXI7IF9wZXJzaXN0aWVyZW4oKS50aGVuKGZ1bmN0aW9uKCl7IHN0YXRp
c3Rpa0xheW91dFJlbmRlcm4oKTsgfSk7IH0KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0K
ICAgICAgICB2YXIgdGlsZSA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5zbC10aWxlJyk7CiAgICAgICAg
aWYgKCF0aWxlKSByZXR1cm47CiAgICAgICAgdmFyIGlkID0gdGlsZS5nZXRBdHRyaWJ1dGUoJ2Rh
dGEtdGlsZS1pZCcpOwogICAgICAgIHZhciB0ZSA9IF9yYXN0ZXIuZmlsdGVyKGZ1bmN0aW9uKHgp
eyByZXR1cm4geC5pZCA9PT0gaWQ7IH0pWzBdOwogICAgICAgIGlmICghdGUpIHJldHVybjsKICAg
ICAgICB2YXIgbmV1ID0gX25hZWNoc3RlQnJlaXRlKHRlLmJyZWl0ZSwgdGUubWluQnJlaXRlKTsK
ICAgICAgICBpZiAobmV1ID09PSB0ZS5icmVpdGUpIHsKICAgICAgICAgICAgdG9hc3QoJ0RpZXNl
cyBQYW5lbCBpc3QgYXVmIHZvbGxlIEJyZWl0ZSBmZXN0Z2VsZWd0JywgJ2luZm8nKTsKICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0ZS5icmVpdGUgPSBuZXU7CiAgICAgICAg
X3BlcnNpc3RpZXJlbigpLnRoZW4oZnVuY3Rpb24oKXsgc3RhdGlzdGlrTGF5b3V0UmVuZGVybigp
OyB9KTsKICAgIH0pOwoKICAgIC8vIERyYWcmRHJvcC1SZWloZW5mb2xnZSAoTXVzdGVyIGF1cyBh
ZG1pbl9jb2Rlcy5qcykuCiAgICB2YXIgZHJhZ0lkID0gbnVsbDsKICAgIHJhc3Rlci5hZGRFdmVu
dExpc3RlbmVyKCdkcmFnc3RhcnQnLCBmdW5jdGlvbihlKXsKICAgICAgICB2YXIgdGlsZSA9IGUu
dGFyZ2V0LmNsb3Nlc3QoJy5zbC10aWxlJyk7CiAgICAgICAgaWYgKCF0aWxlKSByZXR1cm47CiAg
ICAgICAgZHJhZ0lkID0gdGlsZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGlsZS1pZCcpOwogICAgICAg
IHRpbGUuY2xhc3NMaXN0LmFkZCgnc2wtZHJhZ2dpbmcnKTsKICAgICAgICBlLmRhdGFUcmFuc2Zl
ci5lZmZlY3RBbGxvd2VkID0gJ21vdmUnOwogICAgICAgIHRyeSB7IGUuZGF0YVRyYW5zZmVyLnNl
dERhdGEoJ3RleHQvcGxhaW4nLCBkcmFnSWQpOyB9IGNhdGNoIChfKSB7fQogICAgfSk7CiAgICBy
YXN0ZXIuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2VuZCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgcmFz
dGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zbC10aWxlJykuZm9yRWFjaChmdW5jdGlvbih0KXsgdC5j
bGFzc0xpc3QucmVtb3ZlKCdzbC1kcmFnZ2luZycsICdzbC1kcm9wLXppZWwnKTsgfSk7CiAgICB9
KTsKICAgIHJhc3Rlci5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIGZ1bmN0aW9uKGUpewog
ICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICB2YXIgdGlsZSA9IGUudGFyZ2V0LmNs
b3Nlc3QoJy5zbC10aWxlJyk7CiAgICAgICAgcmFzdGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zbC1k
cm9wLXppZWwnKS5mb3JFYWNoKGZ1bmN0aW9uKHQpeyB0LmNsYXNzTGlzdC5yZW1vdmUoJ3NsLWRy
b3AtemllbCcpOyB9KTsKICAgICAgICBpZiAodGlsZSAmJiB0aWxlLmdldEF0dHJpYnV0ZSgnZGF0
YS10aWxlLWlkJykgIT09IGRyYWdJZCkgdGlsZS5jbGFzc0xpc3QuYWRkKCdzbC1kcm9wLXppZWwn
KTsKICAgIH0pOwogICAgcmFzdGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBmdW5jdGlvbihl
KXsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgdmFyIHppZWwgPSBlLnRhcmdl
dC5jbG9zZXN0KCcuc2wtdGlsZScpOwogICAgICAgIGlmICghemllbCB8fCAhZHJhZ0lkIHx8IHpp
ZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXRpbGUtaWQnKSA9PT0gZHJhZ0lkKSB7IGRyYWdJZCA9IG51
bGw7IHJldHVybjsgfQogICAgICAgIHZhciB6aWVsSWQgPSB6aWVsLmdldEF0dHJpYnV0ZSgnZGF0
YS10aWxlLWlkJyk7CiAgICAgICAgdmFyIHZvbklkeCA9IF9yYXN0ZXIuZmluZEluZGV4KGZ1bmN0
aW9uKHgpeyByZXR1cm4geC5pZCA9PT0gZHJhZ0lkOyB9KTsKICAgICAgICB2YXIgYmlzSWR4ID0g
X3Jhc3Rlci5maW5kSW5kZXgoZnVuY3Rpb24oeCl7IHJldHVybiB4LmlkID09PSB6aWVsSWQ7IH0p
OwogICAgICAgIGlmICh2b25JZHggPCAwIHx8IGJpc0lkeCA8IDApIHsgZHJhZ0lkID0gbnVsbDsg
cmV0dXJuOyB9CiAgICAgICAgdmFyIG1vdmVkID0gX3Jhc3Rlci5zcGxpY2Uodm9uSWR4LCAxKVsw
XTsKICAgICAgICAvLyBOYWNoIEVudGZlcm5lbiBnZ2YuIFppZWxpbmRleCBrb3JyaWdpZXJlbi4K
ICAgICAgICBiaXNJZHggPSBfcmFzdGVyLmZpbmRJbmRleChmdW5jdGlvbih4KXsgcmV0dXJuIHgu
aWQgPT09IHppZWxJZDsgfSk7CiAgICAgICAgX3Jhc3Rlci5zcGxpY2UoYmlzSWR4LCAwLCBtb3Zl
ZCk7CiAgICAgICAgZHJhZ0lkID0gbnVsbDsKICAgICAgICBfcGVyc2lzdGllcmVuKCkudGhlbihm
dW5jdGlvbigpeyBzdGF0aXN0aWtMYXlvdXRSZW5kZXJuKCk7IH0pOwogICAgfSk7Cn0K
### FILE: js/admin_statistik_builder.js | 30494
Ly8gPT09IGFkbWluX3N0YXRpc3Rpa19idWlsZGVyLmpzID09PQovLyBTdGF0aXN0aWstQnVpbGRl
ciBpbSBBZG1pbiAoVGFiICJTdGF0aXN0aWstQnVpbGRlciIsIHVudGVyIFN0YXRpc3Rpay1MYXlv
dXQpLgovLyBEQVUtdGF1Z2xpY2hlciBLbGljay1adXNhbW1lbmJhdSBlaW5lciBtZWhyZGltZW5z
aW9uYWxlbiBBdXN3ZXJ0dW5nOgovLwovLyAgIERhdGVuIC0+IEZpbHRlciAtPiBEaW1lbnNpb24o
ZW4pIC0+IEtlbm56YWhsIC0+IERpYWdyYW1tdHlwIC0+IEVyZ2VibmlzCi8vCi8vIERpZSBQaXBl
bGluZSB3aXJkIGxpdmUgYWxzIEZsdXNzZGlhZ3JhbW0gZ2V6ZWlndDsgIlRlc3RlbiIgYmF1dCBk
aWUgU3RhdGlzdGlrCi8vIChFbmdpbmUgKyBuYXRpdmUgU1ZHLUNoYXJ0cykgdW5kIHplaWd0IHNp
ZSB1bnRlcmhhbGIuICJBbHMgS2FjaGVsIHNwZWljaGVybiIKLy8gbGVndCBkaWUgRGVmaW5pdGlv
biBnbG9iYWwgYWIgKFBVVCAvYXBpL2FkbWluL3N0YXRpc3RpaykgLT4gZXJzY2hlaW50IGltCi8v
IFN0YXRpc3Rpay1UYWIuIEVuZ2luZS9DaGFydHMga29tbWVuIGF1cyBzdGF0aXN0aWtfZW5naW5l
LmpzICsgc3RhdGlzdGlrX2NoYXJ0cy5qcy4KCmltcG9ydCB7IFogfSBmcm9tICcuL2NvcmVfc3Rh
dGUuanMnOwppbXBvcnQgeyBlc2NhcGVIVE1MLCBlc2NhcGVBdHRyLCBkYXR1bVN0ciB9IGZyb20g
Jy4vY29yZV91dGlsLmpzJzsKaW1wb3J0IHsgdG9hc3QsIGJlc3RhZXRpZ2VuIH0gZnJvbSAnLi91
aV9kaWFsb2cuanMnOwppbXBvcnQgeyBhcGkgfSBmcm9tICcuL2NvcmVfYXBpLmpzJzsKaW1wb3J0
IHsgRElNRU5TSU9ORU4sIEtFTk5aQUhMRU4sIFBFUlNPTl9NQVNTRSwgYXVzd2VydGVuIH0gZnJv
bSAnLi9zdGF0aXN0aWtfZW5naW5lLmpzJzsKaW1wb3J0IHsgZGlhZ3JhbW1UeXBlbiwgZGlhZ3Jh
bW1SZW5kZXJuIH0gZnJvbSAnLi9zdGF0aXN0aWtfY2hhcnRzLmpzJzsKCnZhciBUQUdfS0FURUdP
UklFTiA9IFsnRGllbnN0JywgJ1NvbmRlcmRpZW5zdCcsICdBdXMtL0ZvcnRiaWxkdW5nJywgJ1Vy
bGF1YicsICdLcmFuay9LdXInLCAnRnJlaScsICdTb25zdGlnZXMnXTsKdmFyIFdPQ0hFTlRBR0Vf
T1BUID0gW3sgdzogMSwgbDogJ01vJyB9LCB7IHc6IDIsIGw6ICdEaScgfSwgeyB3OiAzLCBsOiAn
TWknIH0sIHsgdzogNCwgbDogJ0RvJyB9LCB7IHc6IDUsIGw6ICdGcicgfSwgeyB3OiA2LCBsOiAn
U2EnIH0sIHsgdzogMCwgbDogJ1NvJyB9XTsKCnZhciBfZWRpdElkID0gbnVsbDsgICAvLyBpZCBk
ZXIgZ2VyYWRlIGJlYXJiZWl0ZXRlbiBLYWNoZWwgKG51bGwgPSBuZXVlKQoKLy8gPT09PT0gWmVp
dHJhdW0tSGVsZmVyIChEYXR1bSAvIEthbGVuZGVyd29jaGUgLyBRdWFydGFsIC8gR2VzYW10KSA9
PT09PQoKLy8gTW9udGFnIGRlciBJU08tS2FsZW5kZXJ3b2NoZSAod29jaGUgMSA9IGRpZSBXb2No
ZSBtaXQgZGVtIDQuIEphbnVhcikuCmZ1bmN0aW9uIF9pc29Xb2NoZW5Nb250YWcoamFociwgd29j
aGUpIHsKICAgIHZhciBqYW40ID0gbmV3IERhdGUoamFociwgMCwgNCk7CiAgICB2YXIgdGFnID0g
KGphbjQuZ2V0RGF5KCkgKyA2KSAlIDc7ICAgICAgICAgICAgICAgICAvLyBNbz0wIOKApiBTbz02
CiAgICB2YXIgdzFNb250YWcgPSBuZXcgRGF0ZShqYW40LmdldEZ1bGxZZWFyKCksIGphbjQuZ2V0
TW9udGgoKSwgamFuNC5nZXREYXRlKCkgLSB0YWcpOwogICAgcmV0dXJuIG5ldyBEYXRlKHcxTW9u
dGFnLmdldEZ1bGxZZWFyKCksIHcxTW9udGFnLmdldE1vbnRoKCksIHcxTW9udGFnLmdldERhdGUo
KSArICh3b2NoZSAtIDEpICogNyk7Cn0KLy8gJ1lZWVktV3d3JyAoV2VydCBlaW5lcyA8aW5wdXQg
dHlwZT0id2VlayI+KSAtPiB7IHZvbiwgYmlzIH0gYWxzIERhdHVtc3N0cmluZ3MKLy8gKE1vIOKA
piBTbykuIExlZXJlci91bmd1ZWx0aWdlciBJbnB1dCAtPiBudWxsLgpmdW5jdGlvbiBfa3dHcmVu
emVuKHdrU3RyKSB7CiAgICB2YXIgbSA9IC9eKFxkezR9KS1XKFxkezEsMn0pJC8uZXhlYyh3a1N0
ciB8fCAnJyk7CiAgICBpZiAoIW0pIHJldHVybiBudWxsOwogICAgdmFyIG1vID0gX2lzb1dvY2hl
bk1vbnRhZyhwYXJzZUludChtWzFdLCAxMCksIHBhcnNlSW50KG1bMl0sIDEwKSk7CiAgICB2YXIg
c28gPSBuZXcgRGF0ZShtby5nZXRGdWxsWWVhcigpLCBtby5nZXRNb250aCgpLCBtby5nZXREYXRl
KCkgKyA2KTsKICAgIHJldHVybiB7IHZvbjogZGF0dW1TdHIobW8pLCBiaXM6IGRhdHVtU3RyKHNv
KSB9Owp9Ci8vICdZWVlZLVFuJyAtPiB7IHZvbiwgYmlzIH0gKGVyc3Rlci9sZXR6dGVyIFRhZyBk
ZXMgUXVhcnRhbHMpLiBudWxsIGJlaSBGZWhsZXIuCmZ1bmN0aW9uIF9xdWFydGFsR3Jlbnplbihx
U3RyKSB7CiAgICB2YXIgbSA9IC9eKFxkezR9KS1RKFsxLTRdKSQvLmV4ZWMocVN0ciB8fCAnJyk7
CiAgICBpZiAoIW0pIHJldHVybiBudWxsOwogICAgdmFyIGphaHIgPSBwYXJzZUludChtWzFdLCAx
MCksIHEgPSBwYXJzZUludChtWzJdLCAxMCk7CiAgICB2YXIgc3RhcnRNb25hdCA9IChxIC0gMSkg
KiAzOyAgICAgICAgICAgICAgICAgICAgICAgLy8gMCwzLDYsOQogICAgdmFyIHZvbiA9IG5ldyBE
YXRlKGphaHIsIHN0YXJ0TW9uYXQsIDEpOwogICAgdmFyIGJpcyA9IG5ldyBEYXRlKGphaHIsIHN0
YXJ0TW9uYXQgKyAzLCAwKTsgICAgICAgIC8vIFRhZyAwID0gbGV0enRlciBUYWcgZGVzIFZvcm1v
bmF0cwogICAgcmV0dXJuIHsgdm9uOiBkYXR1bVN0cih2b24pLCBiaXM6IGRhdHVtU3RyKGJpcykg
fTsKfQovLyBEaXN0aW5rdGUgSmFocmUgYXVzIGRlbiBQbGFuZGF0ZW4gKGZ1ZXIgZGllIFF1YXJ0
YWxzLURyb3Bkb3ducyk7IEZhbGxiYWNrIGF1ZgovLyBkYXMgUGxhbnVuZ3NqYWhyIGF1cyBhZG1p
bi5qc29uIGJ6dy4gZGFzIGFrdHVlbGxlIEphaHIuCmZ1bmN0aW9uIF9kYXRlbkphaHJlKCkgewog
ICAgdmFyIHNldCA9IHt9OwogICAgdmFyIGVpbnRyID0gKFoucGxhbnVuZyAmJiBaLnBsYW51bmcu
ZWludHJhZWdlKSB8fCB7fTsKICAgIE9iamVjdC5rZXlzKGVpbnRyKS5mb3JFYWNoKGZ1bmN0aW9u
KGQpeyBpZiAoZCAmJiBkLmxlbmd0aCA+PSA0KSBzZXRbZC5zdWJzdHJpbmcoMCwgNCldID0gdHJ1
ZTsgfSk7CiAgICB2YXIgamFocmUgPSBPYmplY3Qua2V5cyhzZXQpLnNvcnQoKTsKICAgIGlmICgh
amFocmUubGVuZ3RoKSBqYWhyZSA9IFtTdHJpbmcoKFouYWRtaW4gJiYgWi5hZG1pbi5qYWhyKSB8
fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkpXTsKICAgIHJldHVybiBqYWhyZTsKfQoKZnVuY3Rp
b24gX2RhcmYoKSB7IHJldHVybiAhIShaLnJlY2h0ZSAmJiAoWi5yZWNodGUuaXN0U3VwZXJVc2Vy
IHx8IFoucmVjaHRlLmlzdEdlc2FtdHZlcmFudHdvcnRsaWNoIHx8IChaLnJlY2h0ZS5pc3RGYWNo
YXVmc2ljaHQgJiYgWi5yZWNodGUuc2VoZW4gJiYgWi5yZWNodGUuc2VoZW4uYWRtaW5pc3RyYXRp
b24pKSk7IH0KCmZ1bmN0aW9uIF9zdGFuZGFyZFNwZWMoKSB7CiAgICByZXR1cm4gewogICAgICAg
IHY6IDIsIGlkOiBudWxsLCB0aXRlbDogJycsCiAgICAgICAgZGlhZ3JhbW06ICdiYWxrZW4nLAog
ICAgICAgIHplaXRNb2R1czogJ2RhdHVtJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBkYXR1bSB8IGt3IHwgcXVhcnRhbCB8IGdlc2FtdAogICAgICAgIHplaXRWb246ICcnLCB6ZWl0
QmlzOiAnJywgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aXJrc2FtZXIgQmVyZWljaCAoRW5n
aW5lKTsgYmVpIGt3L3F1YXJ0YWwgYWJnZWxlaXRldAogICAgICAgIHplaXRLd1ZvbjogJycsIHpl
aXRLd0JpczogJycsICAgICAgICAgICAgICAgICAgICAvLyBSb2gtRWluZ2FiZW4gS2FsZW5kZXJ3
b2NoZSAoJ1lZWVktV3d3JykKICAgICAgICB6ZWl0UVZvbjogJycsIHplaXRRQmlzOiAnJywgICAg
ICAgICAgICAgICAgICAgICAgLy8gUm9oLUVpbmdhYmVuIFF1YXJ0YWwgKCdZWVlZLVFuJykKICAg
ICAgICBmaWx0ZXI6IHsgcGVyc29uZW46IFtdLCBncnVwcGVuOiBbXSwgZnVua3Rpb25lbjogW10s
IHN0YW5kb3J0ZTogW10sIGRpZW5zdGdyYWRlOiBbXSwgY29kZXM6IFtdLCBrYXRlZ29yaWVuOiBb
XSwgd29jaGVudGFnZTogW10sIG51ckRpZW5zdDogZmFsc2UsIG51cldFOiBmYWxzZSwgbnVyRmVp
ZXJ0YWc6IGZhbHNlLCBudXJGZWllcnRhZ0J1bmQ6IGZhbHNlLCBudXJGZWllcnRhZ05SVzogZmFs
c2UgfSwKICAgICAgICBkaW1YOiAnZ3J1cHBlJywgZGltU2VyaWU6ICcnLCBrZW5uemFobDogJ2Fu
emFobCcsCiAgICAgICAgc2NhdHRlclg6ICduYWNodCcsIHNjYXR0ZXJZOiAndXJsYXViJywKICAg
ICAgICBzb3J0OiAnd2VydC1kZXNjJywgdG9wTjogMAogICAgfTsKfQoKLy8gPT09PT0gUmVuZGVy
ID09PT09CgpleHBvcnQgZnVuY3Rpb24gc3RhdGlzdGlrQnVpbGRlclJlbmRlcm4oKSB7CiAgICB2
YXIgY29udCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0aXN0aWstYnVpbGRlci1pbmhh
bHQnKTsKICAgIGlmICghY29udCkgcmV0dXJuOwogICAgaWYgKCFfZGFyZigpKSB7CiAgICAgICAg
Y29udC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iYWRtaW4tZW1wdHkiPjxkaXYgY2xhc3M9ImFk
bWluLWVtcHR5LXRleHQiPk51ciBTdXBlclVzZXIsIEdlc2FtdHZlcmFudHdvcnRsaWNoZSB1bmQg
QWRtaW5zIGTDvHJmZW4gU3RhdGlzdGlrZW4gYmF1ZW4uPC9kaXY+PC9kaXY+JzsKICAgICAgICBy
ZXR1cm47CiAgICB9CiAgICB2YXIgc3BlYyA9IF9lZGl0SWQgPyAoX2thY2hlbEZpbmRlbihfZWRp
dElkKSB8fCBfc3RhbmRhcmRTcGVjKCkpIDogX3N0YW5kYXJkU3BlYygpOwogICAgY29udC5pbm5l
ckhUTUwgPQogICAgICAgICc8ZGl2IGNsYXNzPSJibGQtZ3JpZCI+JyArCiAgICAgICAgICAgICc8
ZGl2IGNsYXNzPSJibGQtc3BhbHRlLWZvcm0iPicgKyBfZm9ybUh0bWwoc3BlYykgKyAnPC9kaXY+
JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJibGQtc3BhbHRlLWF1cyI+JyArCiAgICAgICAg
ICAgICAgICAnPGRpdiBjbGFzcz0iYmxkLWZsdXNzIiBpZD0iYmxkLWZsdXNzIj48L2Rpdj4nICsK
ICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJibGQtYWt0aW9uZW4iPicgKwogICAgICAgICAg
ICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIHR5cGU9ImJ1dHRvbiIg
aWQ9ImJsZC10ZXN0ZW4iPuKWtiBUZXN0ZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICAg
ICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsiIHR5cGU9ImJ1dHRvbiIgaWQ9ImJsZC1zcGVp
Y2hlcm4iPicgKyAoX2VkaXRJZCA/ICfDhG5kZXJ1bmdlbiBzcGVpY2hlcm4nIDogJ0FscyBLYWNo
ZWwgc3BlaWNoZXJuJykgKyAnPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAgICAgKF9lZGl0
SWQgPyAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsiIHR5cGU9ImJ1dHRvbiIgaWQ9ImJsZC1u
ZXUiPk5ldTwvYnV0dG9uPicgOiAnJykgKwogICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAg
ICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJsZC1lcmdlYm5pcyIgaWQ9ImJsZC1lcmdlYm5pcyI+
PGRpdiBjbGFzcz0iYmxkLWVyZ2VibmlzLWhpbnQiPktvbmZpZ3VyYXRpb24gbGlua3Mgd8OkaGxl
biB1bmQgYXVmIDxiPlRlc3RlbjwvYj4ga2xpY2tlbi48L2Rpdj48L2Rpdj4nICsKICAgICAgICAg
ICAgJzwvZGl2PicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iYmxk
LWxpc3RlIiBpZD0iYmxkLWxpc3RlIj4nICsgX2xpc3RlSHRtbCgpICsgJzwvZGl2Pic7CiAgICBf
dmVyZHJhaHRlbihjb250KTsKICAgIF9mbHVzc0FrdHVhbGlzaWVyZW4oKTsKICAgIF90ZXN0ZW4o
KTsgLy8gZGlyZWt0ZSBWb3JzY2hhdQp9CgovLyAtLS0tLSBGb3JtdWxhciAtLS0tLQoKZnVuY3Rp
b24gX2NoaXBHcnVwcGUoZ3JwLCB0aXRlbCwgb3B0aW9uZW4sIHNlbGVjdGVkKSB7CiAgICB2YXIg
Y2hpcHMgPSBvcHRpb25lbi5tYXAoZnVuY3Rpb24obykgewogICAgICAgIHZhciBhbiA9IHNlbGVj
dGVkLmluZGV4T2Yoby53ZXJ0KSA+PSAwOwogICAgICAgIHJldHVybiAnPGxhYmVsIGNsYXNzPSJi
bGQtY2hpcCcgKyAoYW4gPyAnIGFuJyA6ICcnKSArICciPjxpbnB1dCB0eXBlPSJjaGVja2JveCIg
ZGF0YS1jaGlwPSInICsgZXNjYXBlQXR0cihncnApICsgJyIgdmFsdWU9IicgKyBlc2NhcGVBdHRy
KFN0cmluZyhvLndlcnQpKSArICciJyArIChhbiA/ICcgY2hlY2tlZCcgOiAnJykgKyAnPjxzcGFu
PicgKyBlc2NhcGVIVE1MKG8ubGFiZWwpICsgJzwvc3Bhbj48L2xhYmVsPic7CiAgICB9KS5qb2lu
KCcnKTsKICAgIHJldHVybiAnPGRpdiBjbGFzcz0iYmxkLWZlbGQiPjxzcGFuIGNsYXNzPSJibGQt
ZmVsZC10aXRlbCI+JyArIGVzY2FwZUhUTUwodGl0ZWwpICsgJzwvc3Bhbj48ZGl2IGNsYXNzPSJi
bGQtY2hpcHMiIGRhdGEtY2hpcGdycD0iJyArIGVzY2FwZUF0dHIoZ3JwKSArICciPicgKyBjaGlw
cyArICc8L2Rpdj48L2Rpdj4nOwp9CgovLyBQZXJzb25lbnNjaGFyZmUgQXVzd2FobCwgbmFjaCBE
aWVuc3RncnVwcGUgKEEvQi9DLCBXRCwgVkQsIOKApikgZ3J1cHBpZXJ0LAovLyBtaXQgImFsbGUv
a2VpbmUiLVNjaG5lbGxzY2hhbHRlciBqZSBHcnVwcGUuIFdlcnRlIHNpbmQgUGVyc29uLUlEcyAo
U3RyaW5nKS4KZnVuY3Rpb24gX3BlcnNvbmVuU2VrdGlvbkh0bWwoc2VsZWN0ZWQpIHsKICAgIHNl
bGVjdGVkID0gKHNlbGVjdGVkIHx8IFtdKS5tYXAoU3RyaW5nKTsKICAgIHZhciBieUdycCA9IHt9
OwogICAgKFoucGVyc29uZW4gfHwgW10pLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAgICAgIHZh
ciBnID0gcC5ncnVwcGUgfHwgJ+KAlCc7CiAgICAgICAgKGJ5R3JwW2ddIHx8IChieUdycFtnXSA9
IFtdKSkucHVzaChwKTsKICAgIH0pOwogICAgdmFyIG9yZGVyID0gKFouYWRtaW4uZ3J1cHBlbiB8
fCBbXSkubWFwKGZ1bmN0aW9uKGcpeyByZXR1cm4gZy5uYW1lOyB9KTsKICAgIHZhciBncnBOYW1l
biA9IG9yZGVyLmZpbHRlcihmdW5jdGlvbihuKXsgcmV0dXJuIGJ5R3JwW25dOyB9KQogICAgICAg
IC5jb25jYXQoT2JqZWN0LmtleXMoYnlHcnApLmZpbHRlcihmdW5jdGlvbihuKXsgcmV0dXJuIG9y
ZGVyLmluZGV4T2YobikgPCAwOyB9KSk7CiAgICB2YXIgYmxvY2tzID0gZ3JwTmFtZW4ubWFwKGZ1
bmN0aW9uKGduKSB7CiAgICAgICAgdmFyIGdPYmogPSAoWi5hZG1pbi5ncnVwcGVuIHx8IFtdKS5m
aWx0ZXIoZnVuY3Rpb24oeCl7IHJldHVybiB4Lm5hbWUgPT09IGduOyB9KVswXTsKICAgICAgICB2
YXIgZ0xhYmVsID0gZ09iaiA/IChnT2JqLmJlemVpY2hudW5nIHx8IGdPYmoubmFtZSkgOiAoZ24g
PT09ICfigJQnID8gJ29obmUgR3J1cHBlJyA6IGduKTsKICAgICAgICB2YXIgbGV1dGUgPSBieUdy
cFtnbl0uc2xpY2UoKS5zb3J0KGZ1bmN0aW9uKGEsIGIpeyByZXR1cm4gKGEubmFtZSB8fCAnJyku
bG9jYWxlQ29tcGFyZShiLm5hbWUgfHwgJycsICdkZScpOyB9KTsKICAgICAgICB2YXIgY2hpcHMg
PSBsZXV0ZS5tYXAoZnVuY3Rpb24ocCkgewogICAgICAgICAgICB2YXIgaWQgPSBTdHJpbmcocC5p
ZCk7CiAgICAgICAgICAgIHZhciBhbiA9IHNlbGVjdGVkLmluZGV4T2YoaWQpID49IDA7CiAgICAg
ICAgICAgIHZhciBubSA9IChwLm5hbWUgfHwgJycpICsgKHAudm9ybmFtZSA/ICgnLCAnICsgcC52
b3JuYW1lKSA6ICcnKTsKICAgICAgICAgICAgcmV0dXJuICc8bGFiZWwgY2xhc3M9ImJsZC1jaGlw
JyArIChhbiA/ICcgYW4nIDogJycpICsgJyIgZGF0YS1wZ3JwPSInICsgZXNjYXBlQXR0cihnbikg
KyAnIj4nICsKICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGRhdGEtY2hp
cD0icGVyc29uZW4iIHZhbHVlPSInICsgZXNjYXBlQXR0cihpZCkgKyAnIicgKyAoYW4gPyAnIGNo
ZWNrZWQnIDogJycpICsgJz48c3Bhbj4nICsgZXNjYXBlSFRNTChubSkgKyAnPC9zcGFuPjwvbGFi
ZWw+JzsKICAgICAgICB9KS5qb2luKCcnKTsKICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImJs
ZC1wZXJzLWdycCI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJibGQtcGVycy1ncnAta29w
ZiI+PHNwYW4+JyArIGVzY2FwZUhUTUwoZ0xhYmVsKSArICcgPHNwYW4gY2xhc3M9ImJsZC1wZXJz
LXphaGwiPignICsgbGV1dGUubGVuZ3RoICsgJyk8L3NwYW4+PC9zcGFuPicgKwogICAgICAgICAg
ICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLW1pbmkiIGRhdGEtZ3JwLXRv
Z2dsZT0iJyArIGVzY2FwZUF0dHIoZ24pICsgJyI+YWxsZSAvIGtlaW5lPC9idXR0b24+PC9kaXY+
JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJibGQtY2hpcHMiPicgKyBjaGlwcyArICc8L2Rp
dj48L2Rpdj4nOwogICAgfSkuam9pbignJyk7CiAgICB2YXIgYW56YWhsID0gKFoucGVyc29uZW4g
fHwgW10pLmxlbmd0aDsKICAgIHJldHVybiAnPGRldGFpbHMgY2xhc3M9ImJsZC1zZWt0aW9uIj48
c3VtbWFyeT5FaW56ZWxuZSBQZXJzb25lbiBhdXN3w6RobGVuICgnICsgYW56YWhsICsgJyk8L3N1
bW1hcnk+JyArCiAgICAgICAgJzxwIGNsYXNzPSJibGQtcGVycy1oaW53ZWlzIj5CZXN0aW1tdGUg
TWl0YXJiZWl0ZXIgZ2V6aWVsdCBlaW5iZXppZWhlbiDigJQgei5CLiBtZWhyZXJlIGF1cyBERyBB
L0IvQyBvZGVyIFdhY2gtL1ZlcmtlaHJzZGllbnN0LCB1bmQgbWl0IERpbWVuc2lvbiDigJ5QZXJz
b24iIGRpcmVrdCB2ZXJnbGVpY2hlbi4gTmljaHRzIGdld8OkaGx0ID0gYWxsZS48L3A+JyArCiAg
ICAgICAgKGJsb2NrcyB8fCAnPGRpdiBjbGFzcz0iYmxkLWxpc3RlLWxlZXIiPktlaW5lIFBlcnNv
bmVuIGdlbGFkZW4uPC9kaXY+JykgKyAnPC9kZXRhaWxzPic7Cn0KCmZ1bmN0aW9uIF9vcHQobGlz
dGUsIHNlbCkgewogICAgcmV0dXJuIGxpc3RlLm1hcChmdW5jdGlvbihvKSB7CiAgICAgICAgcmV0
dXJuICc8b3B0aW9uIHZhbHVlPSInICsgZXNjYXBlQXR0cihvLndlcnQpICsgJyInICsgKG8ud2Vy
dCA9PT0gc2VsID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPicgKyBlc2NhcGVIVE1MKG8ubGFiZWwp
ICsgJzwvb3B0aW9uPic7CiAgICB9KS5qb2luKCcnKTsKfQoKLy8gWmVpdHJhdW0tQmxvY2s6IE1v
ZHVzLUF1c3dhaGwgKERhdHVtIC8gS2FsZW5kZXJ3b2NoZSAvIFF1YXJ0YWwgLyBHZXNhbXQpICsK
Ly8gZGllIHp1bSBNb2R1cyBwYXNzZW5kZW4gRWluZ2FiZW4uIFNpY2h0YmFya2VpdCBzdGV1ZXJ0
IF96ZWl0U2ljaHRiYXJrZWl0KCkuCmZ1bmN0aW9uIF96ZWl0cmF1bUh0bWwoc3BlYykgewogICAg
dmFyIG1vZHVzID0gc3BlYy56ZWl0TW9kdXMgfHwgJ2RhdHVtJzsKICAgIHZhciBxdWFydE9wdCA9
ICc8b3B0aW9uIHZhbHVlPSIiPuKAlCB3w6RobGVuIOKAlDwvb3B0aW9uPicgKyBfZGF0ZW5KYWhy
ZSgpLm1hcChmdW5jdGlvbihqKSB7CiAgICAgICAgcmV0dXJuIFsxLCAyLCAzLCA0XS5tYXAoZnVu
Y3Rpb24ocSkgewogICAgICAgICAgICB2YXIgdyA9IGogKyAnLVEnICsgcTsKICAgICAgICAgICAg
cmV0dXJuICc8b3B0aW9uIHZhbHVlPSInICsgZXNjYXBlQXR0cih3KSArICciPlEnICsgcSArICcg
JyArIGVzY2FwZUhUTUwoaikgKyAnPC9vcHRpb24+JzsKICAgICAgICB9KS5qb2luKCcnKTsKICAg
IH0pLmpvaW4oJycpOwogICAgZnVuY3Rpb24gcVNlbChpZCwgdmFsKSB7CiAgICAgICAgcmV0dXJu
ICc8c2VsZWN0IGlkPSInICsgaWQgKyAnIiBjbGFzcz0iZm9ybS1pbnB1dCI+JyArIHF1YXJ0T3B0
LnJlcGxhY2UoJ3ZhbHVlPSInICsgZXNjYXBlQXR0cih2YWwpICsgJyInLCAndmFsdWU9IicgKyBl
c2NhcGVBdHRyKHZhbCkgKyAnIiBzZWxlY3RlZCcpICsgJzwvc2VsZWN0Pic7CiAgICB9CiAgICBy
ZXR1cm4gJycgKwogICAgJzxkaXYgY2xhc3M9ImJsZC1mZWxkIj48c3BhbiBjbGFzcz0iYmxkLWZl
bGQtdGl0ZWwiPlplaXRyYXVtPC9zcGFuPicgKwogICAgICAgICc8c2VsZWN0IGlkPSJibGQtemVp
dG1vZHVzIiBjbGFzcz0iZm9ybS1pbnB1dCI+JyArCiAgICAgICAgICAgICc8b3B0aW9uIHZhbHVl
PSJkYXR1bSInICsgKG1vZHVzID09PSAnZGF0dW0nID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPlZv
buKAk0JpcyAoVGFnIGdlbmF1KTwvb3B0aW9uPicgKwogICAgICAgICAgICAnPG9wdGlvbiB2YWx1
ZT0ia3ciJyArIChtb2R1cyA9PT0gJ2t3JyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5LYWxlbmRl
cndvY2hlbiAodm9u4oCTYmlzKTwvb3B0aW9uPicgKwogICAgICAgICAgICAnPG9wdGlvbiB2YWx1
ZT0icXVhcnRhbCInICsgKG1vZHVzID09PSAncXVhcnRhbCcgPyAnIHNlbGVjdGVkJyA6ICcnKSAr
ICc+UXVhcnRhbGUgKHZvbuKAk2Jpcyk8L29wdGlvbj4nICsKICAgICAgICAgICAgJzxvcHRpb24g
dmFsdWU9Imdlc2FtdCInICsgKG1vZHVzID09PSAnZ2VzYW10JyA/ICcgc2VsZWN0ZWQnIDogJycp
ICsgJz5HZXNhbXQgKGFsbGUgRGF0ZW4pPC9vcHRpb24+JyArCiAgICAgICAgJzwvc2VsZWN0Pjwv
ZGl2PicgKwogICAgJzxkaXYgY2xhc3M9ImJsZC1mZWxkIGJsZC1mZWxkLTIiIGRhdGEtemVpdD0i
ZGF0dW0iJyArIChtb2R1cyA9PT0gJ2RhdHVtJyA/ICcnIDogJyBzdHlsZT0iZGlzcGxheTpub25l
IicpICsgJz4nICsKICAgICAgICAnPGxhYmVsIGNsYXNzPSJibGQtbWluaSI+Vm9uPGlucHV0IGlk
PSJibGQtdm9uIiBjbGFzcz0iZm9ybS1pbnB1dCIgdHlwZT0iZGF0ZSIgdmFsdWU9IicgKyBlc2Nh
cGVBdHRyKHNwZWMuemVpdFZvbiB8fCAnJykgKyAnIj48L2xhYmVsPicgKwogICAgICAgICc8bGFi
ZWwgY2xhc3M9ImJsZC1taW5pIj5CaXM8aW5wdXQgaWQ9ImJsZC1iaXMiIGNsYXNzPSJmb3JtLWlu
cHV0IiB0eXBlPSJkYXRlIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoc3BlYy56ZWl0QmlzIHx8ICcn
KSArICciPjwvbGFiZWw+PC9kaXY+JyArCiAgICAnPGRpdiBjbGFzcz0iYmxkLWZlbGQgYmxkLWZl
bGQtMiIgZGF0YS16ZWl0PSJrdyInICsgKG1vZHVzID09PSAna3cnID8gJycgOiAnIHN0eWxlPSJk
aXNwbGF5Om5vbmUiJykgKyAnPicgKwogICAgICAgICc8bGFiZWwgY2xhc3M9ImJsZC1taW5pIj5W
b24gS1c8aW5wdXQgaWQ9ImJsZC1rdy12b24iIGNsYXNzPSJmb3JtLWlucHV0IiB0eXBlPSJ3ZWVr
IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoc3BlYy56ZWl0S3dWb24gfHwgJycpICsgJyI+PC9sYWJl
bD4nICsKICAgICAgICAnPGxhYmVsIGNsYXNzPSJibGQtbWluaSI+QmlzIEtXPGlucHV0IGlkPSJi
bGQta3ctYmlzIiBjbGFzcz0iZm9ybS1pbnB1dCIgdHlwZT0id2VlayIgdmFsdWU9IicgKyBlc2Nh
cGVBdHRyKHNwZWMuemVpdEt3QmlzIHx8ICcnKSArICciPjwvbGFiZWw+PC9kaXY+JyArCiAgICAn
PGRpdiBjbGFzcz0iYmxkLWZlbGQgYmxkLWZlbGQtMiIgZGF0YS16ZWl0PSJxdWFydGFsIicgKyAo
bW9kdXMgPT09ICdxdWFydGFsJyA/ICcnIDogJyBzdHlsZT0iZGlzcGxheTpub25lIicpICsgJz4n
ICsKICAgICAgICAnPGxhYmVsIGNsYXNzPSJibGQtbWluaSI+Vm9uIFF1YXJ0YWwnICsgcVNlbCgn
YmxkLXEtdm9uJywgc3BlYy56ZWl0UVZvbiB8fCAnJykgKyAnPC9sYWJlbD4nICsKICAgICAgICAn
PGxhYmVsIGNsYXNzPSJibGQtbWluaSI+QmlzIFF1YXJ0YWwnICsgcVNlbCgnYmxkLXEtYmlzJywg
c3BlYy56ZWl0UUJpcyB8fCAnJykgKyAnPC9sYWJlbD48L2Rpdj4nICsKICAgICc8ZGl2IGNsYXNz
PSJibGQtZmVsZCIgZGF0YS16ZWl0PSJnZXNhbXQiJyArIChtb2R1cyA9PT0gJ2dlc2FtdCcgPyAn
JyA6ICcgc3R5bGU9ImRpc3BsYXk6bm9uZSInKSArICc+JyArCiAgICAgICAgJzxwIGNsYXNzPSJi
bGQtcGVycy1oaW53ZWlzIj5FcyB3ZXJkZW4gYWxsZSB2b3JoYW5kZW5lbiBQbGFuZGF0ZW4gb2hu
ZSBaZWl0YmVncmVuenVuZyBhdXNnZXdlcnRldC48L3A+PC9kaXY+JzsKfQoKZnVuY3Rpb24gX2Zv
cm1IdG1sKHNwZWMpIHsKICAgIHZhciBmaSA9IHNwZWMuZmlsdGVyIHx8IHt9OwogICAgdmFyIGdy
T3B0ID0gKFouYWRtaW4uZ3J1cHBlbiB8fCBbXSkubWFwKGZ1bmN0aW9uKGcpeyByZXR1cm4geyB3
ZXJ0OiBnLm5hbWUsIGxhYmVsOiBnLmJlemVpY2hudW5nIHx8IGcubmFtZSB9OyB9KTsKICAgIHZh
ciBmbk9wdCA9IChaLmFkbWluLmZ1bmt0aW9uZW4gfHwgW10pLm1hcChmdW5jdGlvbihmKXsgcmV0
dXJuIHsgd2VydDogKGYuY29kZSB8fCBmKSwgbGFiZWw6IChmLmNvZGUgfHwgZikgfTsgfSk7CiAg
ICB2YXIgc3RPcHQgPSAoWi5hZG1pbi5zdGFuZG9ydGUgfHwgW10pLm1hcChmdW5jdGlvbihzKXsg
cmV0dXJuIHsgd2VydDogcy5rdWVyemVsLCBsYWJlbDogcy5rdWVyemVsIH07IH0pOwogICAgdmFy
IGRnT3B0ID0gKFouYWRtaW4uZGllbnN0Z3JhZGUgfHwgW10pLm1hcChmdW5jdGlvbihkKXsgcmV0
dXJuIHsgd2VydDogKGQuY29kZSB8fCBkKSwgbGFiZWw6IChkLmNvZGUgfHwgZCkgfTsgfSk7CiAg
ICB2YXIgY29PcHQgPSAoWi5hZG1pbi5zY2hpY2h0Y29kZXMgfHwgW10pLmZpbHRlcihmdW5jdGlv
bihjKXsgcmV0dXJuIGMuYWt0aXYgIT09IGZhbHNlOyB9KS5tYXAoZnVuY3Rpb24oYyl7IHJldHVy
biB7IHdlcnQ6IGMuY29kZSwgbGFiZWw6IGMuY29kZSB9OyB9KTsKICAgIHZhciBrYXRPcHQgPSBU
QUdfS0FURUdPUklFTi5tYXAoZnVuY3Rpb24oayl7IHJldHVybiB7IHdlcnQ6IGssIGxhYmVsOiBr
IH07IH0pOwogICAgdmFyIHdkT3B0ID0gV09DSEVOVEFHRV9PUFQubWFwKGZ1bmN0aW9uKHcpeyBy
ZXR1cm4geyB3ZXJ0OiB3LncsIGxhYmVsOiB3LmwgfTsgfSk7CgogICAgdmFyIGRpbUxpc3RlID0g
RElNRU5TSU9ORU4ubWFwKGZ1bmN0aW9uKGQpeyByZXR1cm4geyB3ZXJ0OiBkLmtleSwgbGFiZWw6
IGQubGFiZWwgfTsgfSk7CiAgICB2YXIgZGltU2VyaWVMaXN0ZSA9IFt7IHdlcnQ6ICcnLCBsYWJl
bDogJ+KAlCBrZWluZSDigJQnIH1dLmNvbmNhdChkaW1MaXN0ZSk7CiAgICB2YXIga3pMaXN0ZSA9
IEtFTk5aQUhMRU4ubWFwKGZ1bmN0aW9uKGspeyByZXR1cm4geyB3ZXJ0OiBrLmtleSwgbGFiZWw6
IGsubGFiZWwgfTsgfSk7CiAgICB2YXIgcG1MaXN0ZSA9IFBFUlNPTl9NQVNTRS5tYXAoZnVuY3Rp
b24ocCl7IHJldHVybiB7IHdlcnQ6IHAua2V5LCBsYWJlbDogcC5sYWJlbCB9OyB9KTsKICAgIHZh
ciBkdExpc3RlID0gZGlhZ3JhbW1UeXBlbigpLm1hcChmdW5jdGlvbih0KXsgcmV0dXJuIHsgd2Vy
dDogdC5rZXksIGxhYmVsOiB0LmxhYmVsIH07IH0pOwoKICAgIHJldHVybiAnJyArCiAgICAnPGRp
diBjbGFzcz0iYmxkLWZlbGQiPjxzcGFuIGNsYXNzPSJibGQtZmVsZC10aXRlbCI+VGl0ZWwgZGVy
IEthY2hlbDwvc3Bhbj4nICsKICAgICAgICAnPGlucHV0IGlkPSJibGQtdGl0ZWwiIGNsYXNzPSJm
b3JtLWlucHV0IiB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjYwIiBwbGFjZWhvbGRlcj0iei5CLiBO
YWNodGRpZW5zdGUgamUgRGllbnN0Z3J1cHBlIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoc3BlYy50
aXRlbCB8fCAnJykgKyAnIj48L2Rpdj4nICsKICAgICc8ZGl2IGNsYXNzPSJibGQtZmVsZCI+PHNw
YW4gY2xhc3M9ImJsZC1mZWxkLXRpdGVsIj5EaWFncmFtbXR5cDwvc3Bhbj4nICsKICAgICAgICAn
PHNlbGVjdCBpZD0iYmxkLWRpYWdyYW1tIiBjbGFzcz0iZm9ybS1pbnB1dCI+JyArIF9vcHQoZHRM
aXN0ZSwgc3BlYy5kaWFncmFtbSkgKyAnPC9zZWxlY3Q+PC9kaXY+JyArCgogICAgJzxkZXRhaWxz
IGNsYXNzPSJibGQtc2VrdGlvbiIgb3Blbj48c3VtbWFyeT5EYXRlbiAmYW1wOyBGaWx0ZXI8L3N1
bW1hcnk+JyArCiAgICAgICAgX3plaXRyYXVtSHRtbChzcGVjKSArCiAgICAgICAgX2NoaXBHcnVw
cGUoJ2dydXBwZW4nLCAnRGllbnN0Z3J1cHBlbicsIGdyT3B0LCBmaS5ncnVwcGVuIHx8IFtdKSAr
CiAgICAgICAgX2NoaXBHcnVwcGUoJ2Z1bmt0aW9uZW4nLCAnRnVua3Rpb25lbicsIGZuT3B0LCBm
aS5mdW5rdGlvbmVuIHx8IFtdKSArCiAgICAgICAgX2NoaXBHcnVwcGUoJ3N0YW5kb3J0ZScsICdT
dGFuZG9ydGUnLCBzdE9wdCwgZmkuc3RhbmRvcnRlIHx8IFtdKSArCiAgICAgICAgX2NoaXBHcnVw
cGUoJ2RpZW5zdGdyYWRlJywgJ0RpZW5zdGdyYWRlJywgZGdPcHQsIGZpLmRpZW5zdGdyYWRlIHx8
IFtdKSArCiAgICAgICAgX2NoaXBHcnVwcGUoJ2thdGVnb3JpZW4nLCAnVGFnLUthdGVnb3JpZW4n
LCBrYXRPcHQsIGZpLmthdGVnb3JpZW4gfHwgW10pICsKICAgICAgICBfY2hpcEdydXBwZSgnY29k
ZXMnLCAnU2NoaWNodGNvZGVzJywgY29PcHQsIGZpLmNvZGVzIHx8IFtdKSArCiAgICAgICAgX2No
aXBHcnVwcGUoJ3dvY2hlbnRhZ2UnLCAnV29jaGVudGFnZScsIHdkT3B0LCAoZmkud29jaGVudGFn
ZSB8fCBbXSkubWFwKFN0cmluZykpICsKICAgICAgICAnPGRpdiBjbGFzcz0iYmxkLXRvZ2dsZXMi
PicgKwogICAgICAgICAgICAnPGxhYmVsIGNsYXNzPSJibGQtdG9nZ2xlIj48aW5wdXQgdHlwZT0i
Y2hlY2tib3giIGlkPSJibGQtbnVyRGllbnN0IicgKyAoZmkubnVyRGllbnN0ID8gJyBjaGVja2Vk
JyA6ICcnKSArICc+IG51ciBEaWVuc3RlPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxsYWJlbCBj
bGFzcz0iYmxkLXRvZ2dsZSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYmxkLW51cldFIicg
KyAoZmkubnVyV0UgPyAnIGNoZWNrZWQnIDogJycpICsgJz4gbnVyIFdvY2hlbmVuZGU8L2xhYmVs
PicgKwogICAgICAgICAgICAnPGxhYmVsIGNsYXNzPSJibGQtdG9nZ2xlIj48aW5wdXQgdHlwZT0i
Y2hlY2tib3giIGlkPSJibGQtbnVyRmVpZXJ0YWciJyArIChmaS5udXJGZWllcnRhZyA/ICcgY2hl
Y2tlZCcgOiAnJykgKyAnPiBudXIgRmVpZXJ0YWdlPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxs
YWJlbCBjbGFzcz0iYmxkLXRvZ2dsZSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYmxkLW51
ckZlaWVydGFnQnVuZCInICsgKGZpLm51ckZlaWVydGFnQnVuZCA/ICcgY2hlY2tlZCcgOiAnJykg
KyAnPiBudXIgYnVuZGVzd2VpdGUgRmVpZXJ0YWdlPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxs
YWJlbCBjbGFzcz0iYmxkLXRvZ2dsZSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYmxkLW51
ckZlaWVydGFnTlJXIicgKyAoZmkubnVyRmVpZXJ0YWdOUlcgPyAnIGNoZWNrZWQnIDogJycpICsg
Jz4gbnVyIE5SVy1GZWllcnRhZ2U8L2xhYmVsPicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAg
ICAnPHAgY2xhc3M9ImJsZC1wZXJzLWhpbndlaXMiPkZlaWVydGFnZSB3ZXJkZW4gYnVuZGVzd2Vp
dCBiencuIE5SVy1zcGV6aWZpc2NoIChGcm9ubGVpY2huYW0sIEFsbGVyaGVpbGlnZW4pIGVya2Fu
bnQuIFp1bSBBdWZzY2hsw7xzc2VsbiBkaWUgRGltZW5zaW9uIOKAnkZlaWVydGFnIChOYW1lKSIg
b2RlciDigJ5GZWllcnRhZyAoQnVuZC9OUlcpIiB3w6RobGVuLjwvcD4nICsKICAgICc8L2RldGFp
bHM+JyArCgogICAgX3BlcnNvbmVuU2VrdGlvbkh0bWwoZmkucGVyc29uZW4gfHwgW10pICsKCiAg
ICAnPGRldGFpbHMgY2xhc3M9ImJsZC1zZWt0aW9uIiBvcGVuPjxzdW1tYXJ5PkF1c3dlcnR1bmc8
L3N1bW1hcnk+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImJsZC1mZWxkIiBkYXRhLW51cj0ia2F0
ZWdvcmlhbCI+PHNwYW4gY2xhc3M9ImJsZC1mZWxkLXRpdGVsIj5EaW1lbnNpb24gKFgtQWNoc2Up
PC9zcGFuPicgKwogICAgICAgICAgICAnPHNlbGVjdCBpZD0iYmxkLWRpbVgiIGNsYXNzPSJmb3Jt
LWlucHV0Ij4nICsgX29wdChkaW1MaXN0ZSwgc3BlYy5kaW1YKSArICc8L3NlbGVjdD48L2Rpdj4n
ICsKICAgICAgICAnPGRpdiBjbGFzcz0iYmxkLWZlbGQiIGRhdGEtbnVyPSJrYXRlZ29yaWFsIj48
c3BhbiBjbGFzcz0iYmxkLWZlbGQtdGl0ZWwiPjIuIERpbWVuc2lvbiAoU2VyaWUvU3RhcGVsL01h
dHJpeCk8L3NwYW4+JyArCiAgICAgICAgICAgICc8c2VsZWN0IGlkPSJibGQtZGltU2VyaWUiIGNs
YXNzPSJmb3JtLWlucHV0Ij4nICsgX29wdChkaW1TZXJpZUxpc3RlLCBzcGVjLmRpbVNlcmllIHx8
ICcnKSArICc8L3NlbGVjdD48L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iYmxkLWZlbGQi
IGRhdGEtbnVyPSJrYXRlZ29yaWFsIj48c3BhbiBjbGFzcz0iYmxkLWZlbGQtdGl0ZWwiPktlbm56
YWhsPC9zcGFuPicgKwogICAgICAgICAgICAnPHNlbGVjdCBpZD0iYmxkLWtlbm56YWhsIiBjbGFz
cz0iZm9ybS1pbnB1dCI+JyArIF9vcHQoa3pMaXN0ZSwgc3BlYy5rZW5uemFobCkgKyAnPC9zZWxl
Y3Q+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImJsZC1mZWxkIGJsZC1mZWxkLTIiIGRh
dGEtbnVyPSJzY2F0dGVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4nICsKICAgICAgICAgICAgJzxs
YWJlbCBjbGFzcz0iYmxkLW1pbmkiPlgtTWHDnyAocHJvIFBlcnNvbik8c2VsZWN0IGlkPSJibGQt
c2NhdHRlclgiIGNsYXNzPSJmb3JtLWlucHV0Ij4nICsgX29wdChwbUxpc3RlLCBzcGVjLnNjYXR0
ZXJYKSArICc8L3NlbGVjdD48L2xhYmVsPicgKwogICAgICAgICAgICAnPGxhYmVsIGNsYXNzPSJi
bGQtbWluaSI+WS1NYcOfIChwcm8gUGVyc29uKTxzZWxlY3QgaWQ9ImJsZC1zY2F0dGVyWSIgY2xh
c3M9ImZvcm0taW5wdXQiPicgKyBfb3B0KHBtTGlzdGUsIHNwZWMuc2NhdHRlclkpICsgJzwvc2Vs
ZWN0PjwvbGFiZWw+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImJsZC1mZWxkIGJsZC1m
ZWxkLTIiIGRhdGEtbnVyPSJrYXRlZ29yaWFsIj48bGFiZWwgY2xhc3M9ImJsZC1taW5pIj5Tb3J0
aWVydW5nPHNlbGVjdCBpZD0iYmxkLXNvcnQiIGNsYXNzPSJmb3JtLWlucHV0Ij4nICsKICAgICAg
ICAgICAgJzxvcHRpb24gdmFsdWU9IndlcnQtZGVzYyInICsgKHNwZWMuc29ydCA9PT0gJ3dlcnQt
ZGVzYycgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+SMO2Y2hzdGVyIHp1ZXJzdDwvb3B0aW9uPicg
KwogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0id2VydC1hc2MiJyArIChzcGVjLnNvcnQgPT09
ICd3ZXJ0LWFzYycgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+TmllZHJpZ3N0ZXIgenVlcnN0PC9v
cHRpb24+JyArCiAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSJsYWJlbCInICsgKHNwZWMuc29y
dCA9PT0gJ2xhYmVsJyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5OYWNoIEJlemVpY2hudW5nPC9v
cHRpb24+JyArCiAgICAgICAgJzwvc2VsZWN0PjwvbGFiZWw+JyArCiAgICAgICAgJzxsYWJlbCBj
bGFzcz0iYmxkLW1pbmkiPkJlZ3JlbnplbjxzZWxlY3QgaWQ9ImJsZC10b3BuIiBjbGFzcz0iZm9y
bS1pbnB1dCI+JyArCiAgICAgICAgICAgIFswLCA1LCAxMCwgMTUsIDIwLCAzMF0ubWFwKGZ1bmN0
aW9uKG4peyByZXR1cm4gJzxvcHRpb24gdmFsdWU9IicgKyBuICsgJyInICsgKHNwZWMudG9wTiA9
PT0gbiA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz4nICsgKG4gPT09IDAgPyAnQWxsZScgOiAnVG9w
ICcgKyBuKSArICc8L29wdGlvbj4nOyB9KS5qb2luKCcnKSArCiAgICAgICAgJzwvc2VsZWN0Pjwv
bGFiZWw+PC9kaXY+JyArCiAgICAnPC9kZXRhaWxzPic7Cn0KCi8vIC0tLS0tIFNwZWMgYXVzIEZv
cm11bGFyIGxlc2VuIC0tLS0tCgpmdW5jdGlvbiBfdmFsKGlkKSB7IHZhciBlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoaWQpOyByZXR1cm4gZSA/IGUudmFsdWUgOiAnJzsgfQpmdW5jdGlvbiBf
Y2hrKGlkKSB7IHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOyByZXR1cm4gISEo
ZSAmJiBlLmNoZWNrZWQpOyB9CmZ1bmN0aW9uIF9jaGlwcyhncnApIHsKICAgIHZhciBvdXQgPSBb
XTsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWNoaXA9IicgKyBncnAgKyAn
Il06Y2hlY2tlZCcpLmZvckVhY2goZnVuY3Rpb24oYyl7IG91dC5wdXNoKGMudmFsdWUpOyB9KTsK
ICAgIHJldHVybiBvdXQ7Cn0KCi8vIEF1cyBkZW0gWmVpdHJhdW0tTW9kdXMgZGVuIHdpcmtzYW1l
biBEYXR1bXNiZXJlaWNoICh6ZWl0Vm9uL3plaXRCaXMpIGFibGVpdGVuLgovLyBrdy9xdWFydGFs
IHdlcmRlbiBhdWYgVGFnZXNncmVuemVuIHVtZ2VyZWNobmV0LCAnZ2VzYW10JyBsb2VzY2h0IGRl
biBCZXJlaWNoLgpmdW5jdGlvbiBfemVpdEJlcmVpY2gobW9kdXMsIHJvaCkgewogICAgaWYgKG1v
ZHVzID09PSAnZ2VzYW10JykgcmV0dXJuIHsgdm9uOiAnJywgYmlzOiAnJyB9OwogICAgaWYgKG1v
ZHVzID09PSAna3cnKSB7CiAgICAgICAgdmFyIGt2ID0gX2t3R3Jlbnplbihyb2gua3dWb24pLCBr
YiA9IF9rd0dyZW56ZW4ocm9oLmt3QmlzKTsKICAgICAgICByZXR1cm4geyB2b246IGt2ID8ga3Yu
dm9uIDogJycsIGJpczoga2IgPyBrYi5iaXMgOiAnJyB9OwogICAgfQogICAgaWYgKG1vZHVzID09
PSAncXVhcnRhbCcpIHsKICAgICAgICB2YXIgcXYgPSBfcXVhcnRhbEdyZW56ZW4ocm9oLnFWb24p
LCBxYiA9IF9xdWFydGFsR3Jlbnplbihyb2gucUJpcyk7CiAgICAgICAgcmV0dXJuIHsgdm9uOiBx
diA/IHF2LnZvbiA6ICcnLCBiaXM6IHFiID8gcWIuYmlzIDogJycgfTsKICAgIH0KICAgIHJldHVy
biB7IHZvbjogcm9oLnZvbiwgYmlzOiByb2guYmlzIH07ICAgICAgICAgICAgICAgLy8gJ2RhdHVt
Jwp9CgpmdW5jdGlvbiBfc3BlY0F1c0Zvcm0oKSB7CiAgICB2YXIgbW9kdXMgPSBfdmFsKCdibGQt
emVpdG1vZHVzJykgfHwgJ2RhdHVtJzsKICAgIHZhciBrd1ZvbiA9IF92YWwoJ2JsZC1rdy12b24n
KSwga3dCaXMgPSBfdmFsKCdibGQta3ctYmlzJyk7CiAgICB2YXIgcVZvbiA9IF92YWwoJ2JsZC1x
LXZvbicpLCAgcUJpcyA9IF92YWwoJ2JsZC1xLWJpcycpOwogICAgdmFyIGJlcmVpY2ggPSBfemVp
dEJlcmVpY2gobW9kdXMsIHsKICAgICAgICB2b246IF92YWwoJ2JsZC12b24nKSwgYmlzOiBfdmFs
KCdibGQtYmlzJyksCiAgICAgICAga3dWb246IGt3Vm9uLCBrd0Jpczoga3dCaXMsIHFWb246IHFW
b24sIHFCaXM6IHFCaXMKICAgIH0pOwogICAgcmV0dXJuIHsKICAgICAgICB2OiAyLAogICAgICAg
IGlkOiBfZWRpdElkLAogICAgICAgIHRpdGVsOiAoX3ZhbCgnYmxkLXRpdGVsJykgfHwgJycpLnRy
aW0oKSwKICAgICAgICBkaWFncmFtbTogX3ZhbCgnYmxkLWRpYWdyYW1tJykgfHwgJ2JhbGtlbics
CiAgICAgICAgemVpdE1vZHVzOiBtb2R1cywKICAgICAgICB6ZWl0Vm9uOiBiZXJlaWNoLnZvbiwK
ICAgICAgICB6ZWl0QmlzOiBiZXJlaWNoLmJpcywKICAgICAgICB6ZWl0S3dWb246IGt3Vm9uLCB6
ZWl0S3dCaXM6IGt3QmlzLAogICAgICAgIHplaXRRVm9uOiBxVm9uLCB6ZWl0UUJpczogcUJpcywK
ICAgICAgICBmaWx0ZXI6IHsKICAgICAgICAgICAgcGVyc29uZW46IF9jaGlwcygncGVyc29uZW4n
KSwKICAgICAgICAgICAgZ3J1cHBlbjogX2NoaXBzKCdncnVwcGVuJyksCiAgICAgICAgICAgIGZ1
bmt0aW9uZW46IF9jaGlwcygnZnVua3Rpb25lbicpLAogICAgICAgICAgICBzdGFuZG9ydGU6IF9j
aGlwcygnc3RhbmRvcnRlJyksCiAgICAgICAgICAgIGRpZW5zdGdyYWRlOiBfY2hpcHMoJ2RpZW5z
dGdyYWRlJyksCiAgICAgICAgICAgIGthdGVnb3JpZW46IF9jaGlwcygna2F0ZWdvcmllbicpLAog
ICAgICAgICAgICBjb2RlczogX2NoaXBzKCdjb2RlcycpLAogICAgICAgICAgICB3b2NoZW50YWdl
OiBfY2hpcHMoJ3dvY2hlbnRhZ2UnKS5tYXAoZnVuY3Rpb24oeCl7IHJldHVybiBwYXJzZUludCh4
LCAxMCk7IH0pLAogICAgICAgICAgICBudXJEaWVuc3Q6IF9jaGsoJ2JsZC1udXJEaWVuc3QnKSwK
ICAgICAgICAgICAgbnVyV0U6IF9jaGsoJ2JsZC1udXJXRScpLAogICAgICAgICAgICBudXJGZWll
cnRhZzogX2NoaygnYmxkLW51ckZlaWVydGFnJyksCiAgICAgICAgICAgIG51ckZlaWVydGFnQnVu
ZDogX2NoaygnYmxkLW51ckZlaWVydGFnQnVuZCcpLAogICAgICAgICAgICBudXJGZWllcnRhZ05S
VzogX2NoaygnYmxkLW51ckZlaWVydGFnTlJXJykKICAgICAgICB9LAogICAgICAgIGRpbVg6IF92
YWwoJ2JsZC1kaW1YJykgfHwgJ2dydXBwZScsCiAgICAgICAgZGltU2VyaWU6IF92YWwoJ2JsZC1k
aW1TZXJpZScpIHx8ICcnLAogICAgICAgIGtlbm56YWhsOiBfdmFsKCdibGQta2VubnphaGwnKSB8
fCAnYW56YWhsJywKICAgICAgICBzY2F0dGVyWDogX3ZhbCgnYmxkLXNjYXR0ZXJYJykgfHwgJ25h
Y2h0JywKICAgICAgICBzY2F0dGVyWTogX3ZhbCgnYmxkLXNjYXR0ZXJZJykgfHwgJ3VybGF1Yics
CiAgICAgICAgc29ydDogX3ZhbCgnYmxkLXNvcnQnKSB8fCAnd2VydC1kZXNjJywKICAgICAgICB0
b3BOOiBwYXJzZUludChfdmFsKCdibGQtdG9wbicpIHx8ICcwJywgMTApIHx8IDAKICAgIH07Cn0K
Ci8vIC0tLS0tIEZsdXNzZGlhZ3JhbW0gKGxpdmUpIC0tLS0tCgpmdW5jdGlvbiBfZmx1c3NBa3R1
YWxpc2llcmVuKCkgewogICAgdmFyIHppZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmxk
LWZsdXNzJyk7CiAgICBpZiAoIXppZWwpIHJldHVybjsKICAgIHZhciBzcGVjID0gX3NwZWNBdXNG
b3JtKCk7CiAgICB2YXIgc2NhdHRlciA9IHNwZWMuZGlhZ3JhbW0gPT09ICdzY2F0dGVyJzsKICAg
IHZhciBkdExhYmVsID0gKGRpYWdyYW1tVHlwZW4oKS5maWx0ZXIoZnVuY3Rpb24odCl7IHJldHVy
biB0LmtleSA9PT0gc3BlYy5kaWFncmFtbTsgfSlbMF0gfHwge30pLmxhYmVsIHx8IHNwZWMuZGlh
Z3JhbW07CiAgICB2YXIgZGltWExhYmVsID0gKERJTUVOU0lPTkVOLmZpbHRlcihmdW5jdGlvbihk
KXsgcmV0dXJuIGQua2V5ID09PSBzcGVjLmRpbVg7IH0pWzBdIHx8IHt9KS5sYWJlbCB8fCBzcGVj
LmRpbVg7CiAgICB2YXIgZGltU0xhYmVsID0gc3BlYy5kaW1TZXJpZSA/IChESU1FTlNJT05FTi5m
aWx0ZXIoZnVuY3Rpb24oZCl7IHJldHVybiBkLmtleSA9PT0gc3BlYy5kaW1TZXJpZTsgfSlbMF0g
fHwge30pLmxhYmVsIDogJyc7CiAgICB2YXIga3pMYWJlbCA9IChLRU5OWkFITEVOLmZpbHRlcihm
dW5jdGlvbihrKXsgcmV0dXJuIGsua2V5ID09PSBzcGVjLmtlbm56YWhsOyB9KVswXSB8fCB7fSku
bGFiZWwgfHwgc3BlYy5rZW5uemFobDsKICAgIHZhciBwbVggPSAoUEVSU09OX01BU1NFLmZpbHRl
cihmdW5jdGlvbihwKXsgcmV0dXJuIHAua2V5ID09PSBzcGVjLnNjYXR0ZXJYOyB9KVswXSB8fCB7
fSkubGFiZWwgfHwgc3BlYy5zY2F0dGVyWDsKICAgIHZhciBwbVkgPSAoUEVSU09OX01BU1NFLmZp
bHRlcihmdW5jdGlvbihwKXsgcmV0dXJuIHAua2V5ID09PSBzcGVjLnNjYXR0ZXJZOyB9KVswXSB8
fCB7fSkubGFiZWwgfHwgc3BlYy5zY2F0dGVyWTsKCiAgICB2YXIgc3RhdGlvbmVuID0gW3sgdDog
J1BsYW5kYXRlbicsIHM6ICdhbGxlIEVpbnRyw6RnZScgfSwgeyB0OiAnRmlsdGVyJywgczogX2Zp
bHRlckt1cnooc3BlYykgfV07CiAgICBpZiAoc2NhdHRlcikgewogICAgICAgIHN0YXRpb25lbi5w
dXNoKHsgdDogJ0tvcnJlbGF0aW9uJywgczogcG1YICsgJyDDlyAnICsgcG1ZICsgJyBqZSBQZXJz
b24nIH0pOwogICAgfSBlbHNlIHsKICAgICAgICBzdGF0aW9uZW4ucHVzaCh7IHQ6ICdEaW1lbnNp
b24nLCBzOiBkaW1YTGFiZWwgKyAoZGltU0xhYmVsID8gJyDDlyAnICsgZGltU0xhYmVsIDogJycp
IH0pOwogICAgICAgIHN0YXRpb25lbi5wdXNoKHsgdDogJ0tlbm56YWhsJywgczoga3pMYWJlbCB9
KTsKICAgIH0KICAgIHN0YXRpb25lbi5wdXNoKHsgdDogJ0RpYWdyYW1tJywgczogZHRMYWJlbCB9
KTsKCiAgICB6aWVsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJmbHVzcy10aXRlbCI+TG9naWsg
ZGllc2VyIFN0YXRpc3RpazwvZGl2PjxkaXYgY2xhc3M9ImZsdXNzLWtldHRlIj4nICsKICAgICAg
ICBzdGF0aW9uZW4ubWFwKGZ1bmN0aW9uKHN0LCBpKSB7CiAgICAgICAgICAgIHJldHVybiAoaSA/
ICc8c3BhbiBjbGFzcz0iZmx1c3MtcGZlaWwiPuKGkjwvc3Bhbj4nIDogJycpICsKICAgICAgICAg
ICAgICAgICc8ZGl2IGNsYXNzPSJmbHVzcy1zdGF0aW9uIj48ZGl2IGNsYXNzPSJmbHVzcy10Ij4n
ICsgZXNjYXBlSFRNTChzdC50KSArICc8L2Rpdj48ZGl2IGNsYXNzPSJmbHVzcy1zIj4nICsgZXNj
YXBlSFRNTChzdC5zKSArICc8L2Rpdj48L2Rpdj4nOwogICAgICAgIH0pLmpvaW4oJycpICsgJzwv
ZGl2Pic7Cn0KCmZ1bmN0aW9uIF9maWx0ZXJLdXJ6KHNwZWMpIHsKICAgIHZhciBmaSA9IHNwZWMu
ZmlsdGVyIHx8IHt9LCB0ZWlsZSA9IFtdOwogICAgaWYgKGZpLnBlcnNvbmVuICYmIGZpLnBlcnNv
bmVuLmxlbmd0aCkgdGVpbGUucHVzaChmaS5wZXJzb25lbi5sZW5ndGggKyAnIFBlcnNvbmVuJyk7
CiAgICBbJ2dydXBwZW4nLCAnZnVua3Rpb25lbicsICdzdGFuZG9ydGUnLCAnZGllbnN0Z3JhZGUn
LCAna2F0ZWdvcmllbicsICdjb2RlcyddLmZvckVhY2goZnVuY3Rpb24oaykgewogICAgICAgIGlm
IChmaVtrXSAmJiBmaVtrXS5sZW5ndGgpIHRlaWxlLnB1c2goZmlba10ubGVuZ3RoICsgJ8OXICcg
KyBrKTsKICAgIH0pOwogICAgaWYgKGZpLndvY2hlbnRhZ2UgJiYgZmkud29jaGVudGFnZS5sZW5n
dGgpIHRlaWxlLnB1c2goZmkud29jaGVudGFnZS5sZW5ndGggKyAnw5cgV29jaGVudGFnJyk7CiAg
ICBpZiAoZmkubnVyRGllbnN0KSB0ZWlsZS5wdXNoKCdudXIgRGllbnN0ZScpOwogICAgaWYgKGZp
Lm51cldFKSB0ZWlsZS5wdXNoKCdudXIgV0UnKTsKICAgIGlmIChmaS5udXJGZWllcnRhZykgdGVp
bGUucHVzaCgnbnVyIEZlaWVydGFnZScpOwogICAgaWYgKGZpLm51ckZlaWVydGFnQnVuZCkgdGVp
bGUucHVzaCgnbnVyIGJ1bmRlc3dlaXRlIEZUJyk7CiAgICBpZiAoZmkubnVyRmVpZXJ0YWdOUlcp
IHRlaWxlLnB1c2goJ251ciBOUlctRlQnKTsKICAgIHZhciB6bCA9IF96ZWl0cmF1bUt1cnooc3Bl
Yyk7CiAgICBpZiAoemwpIHRlaWxlLnB1c2goemwpOwogICAgcmV0dXJuIHRlaWxlLmxlbmd0aCA/
IHRlaWxlLmpvaW4oJywgJykgOiAna2VpbiBGaWx0ZXInOwp9CgovLyBLdXJ6YmVzY2hyaWZ0dW5n
IGRlcyBha3RpdmVuIFplaXRyYXVtcyBmdWVyIGRhcyBGbHVzc2RpYWdyYW1tLgpmdW5jdGlvbiBf
emVpdHJhdW1LdXJ6KHNwZWMpIHsKICAgIHZhciBtID0gc3BlYy56ZWl0TW9kdXMgfHwgJ2RhdHVt
JzsKICAgIGlmIChtID09PSAnZ2VzYW10JykgcmV0dXJuICdHZXNhbXQnOwogICAgaWYgKG0gPT09
ICdrdycpIHJldHVybiAoc3BlYy56ZWl0S3dWb24gfHwgc3BlYy56ZWl0S3dCaXMpID8gJ0tXLUJl
cmVpY2gnIDogJyc7CiAgICBpZiAobSA9PT0gJ3F1YXJ0YWwnKSByZXR1cm4gKHNwZWMuemVpdFFW
b24gfHwgc3BlYy56ZWl0UUJpcykgPyAnUXVhcnRhbHMtQmVyZWljaCcgOiAnJzsKICAgIHJldHVy
biAoc3BlYy56ZWl0Vm9uIHx8IHNwZWMuemVpdEJpcykgPyAnWmVpdHJhdW0nIDogJyc7Cn0KCi8v
IC0tLS0tIFRlc3RlbiAtLS0tLQoKZnVuY3Rpb24gX3Rlc3RlbigpIHsKICAgIHZhciB6aWVsID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JsZC1lcmdlYm5pcycpOwogICAgaWYgKCF6aWVsKSBy
ZXR1cm47CiAgICB2YXIgc3BlYyA9IF9zcGVjQXVzRm9ybSgpOwogICAgdHJ5IHsKICAgICAgICB2
YXIgZXJnID0gYXVzd2VydGVuKHNwZWMpOwogICAgICAgIHZhciBhbm9uID0gZmFsc2U7IC8vIEJ1
aWxkZXIgemVpZ3QgS2xhcmRhdGVuIChBZG1pbi1Lb250ZXh0KQogICAgICAgIHppZWwuaW5uZXJI
VE1MID0gJzxkaXYgY2xhc3M9ImJsZC1lcmdlYm5pcy10aXRlbCI+JyArIGVzY2FwZUhUTUwoc3Bl
Yy50aXRlbCB8fCAnVm9yc2NoYXUnKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xh
c3M9ImJsZC1lcmdlYm5pcy1jaGFydCI+JyArIGRpYWdyYW1tUmVuZGVybihzcGVjLmRpYWdyYW1t
LCBlcmcsIHNwZWMpICsgJzwvZGl2Pic7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgemllbC5p
bm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icmVuZGVyLWZlaGxlci1ib3giPjxkaXYgY2xhc3M9InJl
bmRlci1mZWhsZXItdGV4dCI+PGRpdiBjbGFzcz0icmVuZGVyLWZlaGxlci10aXRlbCI+RmVobGVy
IGJlaW0gQmF1ZW48L2Rpdj48ZGl2IGNsYXNzPSJyZW5kZXItZmVobGVyLWRldGFpbCI+JyArIGVz
Y2FwZUhUTUwoZS5tZXNzYWdlIHx8IFN0cmluZyhlKSkgKyAnPC9kaXY+PC9kaXY+PC9kaXY+JzsK
ICAgICAgICB0cnkgeyBjb25zb2xlLmVycm9yKCdbc3RhdGlzdGlrLWJ1aWxkZXJdJywgZSk7IH0g
Y2F0Y2ggKF8pIHt9CiAgICB9Cn0KCi8vIC0tLS0tIFNwZWljaGVybiAvIExpc3RlIC0tLS0tCgpm
dW5jdGlvbiBfa2FjaGVsRmluZGVuKGlkKSB7CiAgICB2YXIgYXJyID0gKFouYWRtaW4gJiYgWi5h
ZG1pbi5zdGF0aXN0aWtLYWNoZWxuKSB8fCBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJy
Lmxlbmd0aDsgaSsrKSBpZiAoYXJyW2ldLmlkID09PSBpZCkgcmV0dXJuIGFycltpXTsKICAgIHJl
dHVybiBudWxsOwp9CmZ1bmN0aW9uIF9uZXVlSWQoKSB7CiAgICB2YXIgbWF4ID0gMDsKICAgICgo
Wi5hZG1pbiAmJiBaLmFkbWluLnN0YXRpc3Rpa0thY2hlbG4pIHx8IFtdKS5mb3JFYWNoKGZ1bmN0
aW9uKGspIHsKICAgICAgICB2YXIgbSA9IC9ea18oXGQrKSQvLmV4ZWMoay5pZCB8fCAnJyk7IGlm
IChtKSBtYXggPSBNYXRoLm1heChtYXgsIHBhcnNlSW50KG1bMV0sIDEwKSk7CiAgICB9KTsKICAg
IHJldHVybiAna18nICsgKG1heCArIDEpOwp9CmZ1bmN0aW9uIF9wZXJzaXN0KGxpc3RlLCBvbk9r
KSB7CiAgICBhcGkoJy9hcGkvYWRtaW4vc3RhdGlzdGlrJywgeyBtZXRob2Q6ICdQVVQnLCBoZWFk
ZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSwgYm9keTogSlNPTi5z
dHJpbmdpZnkoeyBzdGF0aXN0aWtLYWNoZWxuOiBsaXN0ZSB9KSB9KQogICAgICAgIC50aGVuKGZ1
bmN0aW9uKCl7IFouYWRtaW4uc3RhdGlzdGlrS2FjaGVsbiA9IGxpc3RlOyBvbk9rKCk7IH0pCiAg
ICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpeyB0b2FzdCgnU3BlaWNoZXJuIGZlaGxnZXNjaGxhZ2Vu
OiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwp9CmZ1bmN0aW9uIF9zcGVpY2hlcm4oKSB7
CiAgICB2YXIgc3BlYyA9IF9zcGVjQXVzRm9ybSgpOwogICAgaWYgKCFzcGVjLnRpdGVsKSB7IHRv
YXN0KCdCaXR0ZSBlaW5lbiBUaXRlbCB2ZXJnZWJlbicsICd3YXJudW5nJyk7IHJldHVybjsgfQog
ICAgc3BlYy5pZCA9IF9lZGl0SWQgfHwgX25ldWVJZCgpOwogICAgdmFyIGxpc3RlID0gKChaLmFk
bWluICYmIFouYWRtaW4uc3RhdGlzdGlrS2FjaGVsbikgfHwgW10pLnNsaWNlKCk7CiAgICB2YXIg
aWR4ID0gLTE7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlLmxlbmd0aDsgaSsrKSBpZiAo
bGlzdGVbaV0uaWQgPT09IHNwZWMuaWQpIHsgaWR4ID0gaTsgYnJlYWs7IH0KICAgIGlmIChpZHgg
Pj0gMCkgbGlzdGVbaWR4XSA9IHNwZWM7IGVsc2UgbGlzdGUucHVzaChzcGVjKTsKICAgIF9wZXJz
aXN0KGxpc3RlLCBmdW5jdGlvbigpIHsKICAgICAgICBfZWRpdElkID0gc3BlYy5pZDsKICAgICAg
ICB0b2FzdChpZHggPj0gMCA/ICdLYWNoZWwgZ2VzcGVpY2hlcnQnIDogJ0thY2hlbCBhbmdlbGVn
dCDigJQgZXJzY2hlaW50IGltIFN0YXRpc3Rpay1UYWInLCAnZXJmb2xnJyk7CiAgICAgICAgc3Rh
dGlzdGlrQnVpbGRlclJlbmRlcm4oKTsKICAgIH0pOwp9CmZ1bmN0aW9uIF9sb2VzY2hlbihpZCkg
ewogICAgYmVzdGFldGlnZW4oJ0RpZXNlIFN0YXRpc3Rpay1LYWNoZWwgZsO8ciBhbGxlIGzDtnNj
aGVuPycsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBsaXN0ZSA9ICgoWi5hZG1pbiAmJiBaLmFk
bWluLnN0YXRpc3Rpa0thY2hlbG4pIHx8IFtdKS5maWx0ZXIoZnVuY3Rpb24oayl7IHJldHVybiBr
LmlkICE9PSBpZDsgfSk7CiAgICAgICAgdmFyIGxheW91dCA9ICgoWi5hZG1pbiAmJiBaLmFkbWlu
LnN0YXRpc3Rpa0xheW91dCkgfHwgW10pLmZpbHRlcihmdW5jdGlvbihlKXsgcmV0dXJuIGUuaWQg
IT09IGlkOyB9KTsKICAgICAgICBhcGkoJy9hcGkvYWRtaW4vc3RhdGlzdGlrJywgeyBtZXRob2Q6
ICdQVVQnLCBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSwg
Ym9keTogSlNPTi5zdHJpbmdpZnkoeyBzdGF0aXN0aWtLYWNoZWxuOiBsaXN0ZSwgc3RhdGlzdGlr
TGF5b3V0OiBsYXlvdXQgfSkgfSkKICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICBaLmFkbWluLnN0YXRpc3Rpa0thY2hlbG4gPSBsaXN0ZTsgWi5hZG1pbi5zdGF0
aXN0aWtMYXlvdXQgPSBsYXlvdXQ7CiAgICAgICAgICAgICAgICBpZiAoX2VkaXRJZCA9PT0gaWQp
IF9lZGl0SWQgPSBudWxsOwogICAgICAgICAgICAgICAgdG9hc3QoJ0thY2hlbCBnZWzDtnNjaHQn
LCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICBzdGF0aXN0aWtCdWlsZGVyUmVuZGVybigpOwog
ICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKXsgdG9hc3QoJ0zDtnNjaGVuIGZlaGxnZXNj
aGxhZ2VuOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgfSwgeyBqYVRleHQ6ICdM
w7ZzY2hlbicsIGphRGFuZ2VyOiB0cnVlIH0pOwp9CmZ1bmN0aW9uIF9saXN0ZUh0bWwoKSB7CiAg
ICB2YXIgYXJyID0gKFouYWRtaW4gJiYgWi5hZG1pbi5zdGF0aXN0aWtLYWNoZWxuKSB8fCBbXTsK
ICAgIGlmICghYXJyLmxlbmd0aCkgcmV0dXJuICc8ZGl2IGNsYXNzPSJibGQtbGlzdGUtdGl0ZWwi
PlZvcmhhbmRlbmUgS2FjaGVsbjwvZGl2PjxkaXYgY2xhc3M9ImJsZC1saXN0ZS1sZWVyIj5Ob2No
IGtlaW5lIEthY2hlbG4gZ2ViYXV0LjwvZGl2Pic7CiAgICB2YXIgZHQgPSBkaWFncmFtbVR5cGVu
KCk7CiAgICB2YXIgaXRlbXMgPSBhcnIubWFwKGZ1bmN0aW9uKGspIHsKICAgICAgICB2YXIgdHlw
ID0gKGR0LmZpbHRlcihmdW5jdGlvbih0KXsgcmV0dXJuIHQua2V5ID09PSBrLmRpYWdyYW1tOyB9
KVswXSB8fCB7fSkubGFiZWwgfHwgKGsuZGlhZ3JhbW0gPyBrLmRpYWdyYW1tIDogJ1Jhbmtpbmcg
KGFsdCknKTsKICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImJsZC1saXN0ZS1pdGVtJyArIChr
LmlkID09PSBfZWRpdElkID8gJyBha3RpdicgOiAnJykgKyAnIj4nICsKICAgICAgICAgICAgJzxz
cGFuIGNsYXNzPSJibGQtbGlzdGUtbmFtZSI+JyArIGVzY2FwZUhUTUwoay50aXRlbCB8fCAnKG9o
bmUgVGl0ZWwpJykgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImJsZC1s
aXN0ZS10eXAiPicgKyBlc2NhcGVIVE1MKHR5cCkgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAn
PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1taW5pIiB0eXBlPSJidXR0b24iIGRhdGEtYmxkLWVkaXQ9
IicgKyBlc2NhcGVBdHRyKGsuaWQpICsgJyI+QmVhcmJlaXRlbjwvYnV0dG9uPicgKwogICAgICAg
ICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1taW5pIGJ0bi1nZWZhaHIiIHR5cGU9ImJ1dHRv
biIgZGF0YS1ibGQtZGVsPSInICsgZXNjYXBlQXR0cihrLmlkKSArICciPkzDtnNjaGVuPC9idXR0
b24+JyArCiAgICAgICAgJzwvZGl2Pic7CiAgICB9KS5qb2luKCcnKTsKICAgIHJldHVybiAnPGRp
diBjbGFzcz0iYmxkLWxpc3RlLXRpdGVsIj5Wb3JoYW5kZW5lIEthY2hlbG48L2Rpdj48ZGl2IGNs
YXNzPSJibGQtbGlzdGUtaXRlbXMiPicgKyBpdGVtcyArICc8L2Rpdj4nOwp9CgovLyAtLS0tLSBW
ZXJkcmFodHVuZyAtLS0tLQoKZnVuY3Rpb24gX2RpYWdyYW1tU2ljaHRiYXJrZWl0KCkgewogICAg
dmFyIHNwZWMgPSBfc3BlY0F1c0Zvcm0oKTsKICAgIHZhciBzY2F0dGVyID0gc3BlYy5kaWFncmFt
bSA9PT0gJ3NjYXR0ZXInOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3N0YXRpc3Rp
ay1idWlsZGVyLWluaGFsdCBbZGF0YS1udXI9ImthdGVnb3JpYWwiXScpLmZvckVhY2goZnVuY3Rp
b24oZWwpeyBlbC5zdHlsZS5kaXNwbGF5ID0gc2NhdHRlciA/ICdub25lJyA6ICcnOyB9KTsKICAg
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNzdGF0aXN0aWstYnVpbGRlci1pbmhhbHQgW2Rh
dGEtbnVyPSJzY2F0dGVyIl0nKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKXsgZWwuc3R5bGUuZGlzcGxh
eSA9IHNjYXR0ZXIgPyAnJyA6ICdub25lJzsgfSk7Cn0KCi8vIFplaXRyYXVtLUVpbmdhYmVncnVw
cGVuIGplIG5hY2ggTW9kdXMgZWluLS9hdXNibGVuZGVuLgpmdW5jdGlvbiBfemVpdFNpY2h0YmFy
a2VpdCgpIHsKICAgIHZhciBtb2R1cyA9IF92YWwoJ2JsZC16ZWl0bW9kdXMnKSB8fCAnZGF0dW0n
OwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3N0YXRpc3Rpay1idWlsZGVyLWluaGFs
dCBbZGF0YS16ZWl0XScpLmZvckVhY2goZnVuY3Rpb24oZWwpewogICAgICAgIGVsLnN0eWxlLmRp
c3BsYXkgPSAoZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXplaXQnKSA9PT0gbW9kdXMpID8gJycgOiAn
bm9uZSc7CiAgICB9KTsKfQoKZnVuY3Rpb24gX3ZlcmRyYWh0ZW4oY29udCkgewogICAgLy8gQ2hp
cC1Ub2dnbGVzIChhbi9hdXMtT3B0aWspICsgTGl2ZS1VcGRhdGUuCiAgICBjb250LmFkZEV2ZW50
TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIgdCA9IGUudGFyZ2V0
OwogICAgICAgIGlmICh0Lm1hdGNoZXMgJiYgdC5tYXRjaGVzKCdbZGF0YS1jaGlwXScpKSB7CiAg
ICAgICAgICAgIHZhciBsYWIgPSB0LmNsb3Nlc3QoJy5ibGQtY2hpcCcpOyBpZiAobGFiKSBsYWIu
Y2xhc3NMaXN0LnRvZ2dsZSgnYW4nLCB0LmNoZWNrZWQpOwogICAgICAgIH0KICAgICAgICBpZiAo
dC5pZCA9PT0gJ2JsZC1kaWFncmFtbScpIF9kaWFncmFtbVNpY2h0YmFya2VpdCgpOwogICAgICAg
IGlmICh0LmlkID09PSAnYmxkLXplaXRtb2R1cycpIF96ZWl0U2ljaHRiYXJrZWl0KCk7CiAgICAg
ICAgX2ZsdXNzQWt0dWFsaXNpZXJlbigpOwogICAgfSk7CiAgICBjb250LmFkZEV2ZW50TGlzdGVu
ZXIoJ2lucHV0JywgZnVuY3Rpb24oZSkgewogICAgICAgIHZhciBpZHMgPSBbJ2JsZC10aXRlbCcs
ICdibGQtdm9uJywgJ2JsZC1iaXMnLCAnYmxkLWt3LXZvbicsICdibGQta3ctYmlzJ107CiAgICAg
ICAgaWYgKGUudGFyZ2V0ICYmIGlkcy5pbmRleE9mKGUudGFyZ2V0LmlkKSA+PSAwKSBfZmx1c3NB
a3R1YWxpc2llcmVuKCk7CiAgICB9KTsKICAgIC8vICJhbGxlIC8ga2VpbmUiIGplIERpZW5zdGdy
dXBwZSAoUGVyc29uZW4tU2VrdGlvbikuCiAgICBjb250LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgZnVuY3Rpb24oZSkgewogICAgICAgIHZhciBndCA9IGUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRh
LWdycC10b2dnbGVdJyk7CiAgICAgICAgaWYgKCFndCkgcmV0dXJuOwogICAgICAgIHZhciBnbiA9
IGd0LmdldEF0dHJpYnV0ZSgnZGF0YS1ncnAtdG9nZ2xlJyk7CiAgICAgICAgdmFyIGNoaXBzID0g
W107CiAgICAgICAgY29udC5xdWVyeVNlbGVjdG9yQWxsKCcuYmxkLWNoaXBbZGF0YS1wZ3JwXScp
LmZvckVhY2goZnVuY3Rpb24obGFiKSB7CiAgICAgICAgICAgIGlmIChsYWIuZ2V0QXR0cmlidXRl
KCdkYXRhLXBncnAnKSA9PT0gZ24pIGNoaXBzLnB1c2gobGFiKTsKICAgICAgICB9KTsKICAgICAg
ICB2YXIgYWxsZUFuID0gY2hpcHMubGVuZ3RoID4gMCAmJiBjaGlwcy5ldmVyeShmdW5jdGlvbihs
YWIpeyB2YXIgaSA9IGxhYi5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpOyByZXR1cm4gaSAmJiBpLmNo
ZWNrZWQ7IH0pOwogICAgICAgIGNoaXBzLmZvckVhY2goZnVuY3Rpb24obGFiKSB7CiAgICAgICAg
ICAgIHZhciBpbnAgPSBsYWIucXVlcnlTZWxlY3RvcignaW5wdXQnKTsKICAgICAgICAgICAgaWYg
KCFpbnApIHJldHVybjsKICAgICAgICAgICAgaW5wLmNoZWNrZWQgPSAhYWxsZUFuOwogICAgICAg
ICAgICBsYWIuY2xhc3NMaXN0LnRvZ2dsZSgnYW4nLCBpbnAuY2hlY2tlZCk7CiAgICAgICAgfSk7
CiAgICAgICAgX2ZsdXNzQWt0dWFsaXNpZXJlbigpOwogICAgfSk7CiAgICB2YXIgYnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYmxkLXRlc3RlbicpOwogICAgaWYgKGJ0KSBidC5hZGRFdmVu
dExpc3RlbmVyKCdjbGljaycsIF90ZXN0ZW4pOwogICAgdmFyIGJzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2JsZC1zcGVpY2hlcm4nKTsKICAgIGlmIChicykgYnMuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBfc3BlaWNoZXJuKTsKICAgIHZhciBibiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdibGQtbmV1Jyk7CiAgICBpZiAoYm4pIGJuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg
ZnVuY3Rpb24oKXsgX2VkaXRJZCA9IG51bGw7IHN0YXRpc3Rpa0J1aWxkZXJSZW5kZXJuKCk7IH0p
OwogICAgY29udC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1ibGQtZWRpdF0nKS5mb3JFYWNoKGZ1
bmN0aW9uKGIpeyBiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgX2VkaXRJ
ZCA9IGIuZ2V0QXR0cmlidXRlKCdkYXRhLWJsZC1lZGl0Jyk7IHN0YXRpc3Rpa0J1aWxkZXJSZW5k
ZXJuKCk7IH0pOyB9KTsKICAgIGNvbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtYmxkLWRlbF0n
KS5mb3JFYWNoKGZ1bmN0aW9uKGIpeyBiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rp
b24oKXsgX2xvZXNjaGVuKGIuZ2V0QXR0cmlidXRlKCdkYXRhLWJsZC1kZWwnKSk7IH0pOyB9KTsK
ICAgIF9kaWFncmFtbVNpY2h0YmFya2VpdCgpOwogICAgX3plaXRTaWNodGJhcmtlaXQoKTsKfQo=
### FILE: js/besetzung.js | 59595
Ly8gPT09IGJlc2V0enVuZy9iZXNldHp1bmcuanMgPT09Ci8vIFN0YW5kOiAyMDI2LTA1LTE0Ci8v
IFZJMy1zcGV6aWZpc2NoZXIgVGFiICJCZXNldHp1bmdza29udHJvbGxlIiBmdWVyIEdlc2FtdHZl
cmFudHdvcnRsaWNoZToKLy8gNC1Xb2NoZW4tVm9yc2NoYXUgYXVmIGRpZSBGdWVocnVuZ3MtQmVz
ZXR6dW5nIHBybyBTY2hpY2h0LiBGdWVyIERlZml6aXQtCi8vIFRhZ2UgZ2lidCBlcyBlaW5lbiBS
dW5kbWFpbC1Nb2RhbCBhbiBhbGxlIGZyZWkgZWluZ2VwbGFudGVuIFBlcnNvbmVuLgovLwovLyBI
b29rczogYmV6IChCZXplaWNobnVuZ2VuIGF1cyBhZG1pbi5qc29uLCBQaGFzZSA4KSwgZW1haWxW
b3JsYWdlbkhvbGVuLwovLyBlbWFpbFZvcmxhZ2VCZWZ1ZWxsZW4gKFBoYXNlIDcpLCBtYWlsVHJp
Z2dlckZldWVybiAoUGhhc2UgNykuCgppbXBvcnQgeyBaIH0gZnJvbSAnLi9jb3JlX3N0YXRlLmpz
JzsKaW1wb3J0IHsKICAgIGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIsCiAgICBkYXR1bVN0ciwgZGF0
dW1Gb3JtYXRERSwgd29jaGVudGFnS3VyeiwKICAgIGFic2VuZGVyTmFtZUVybWl0dGVsbgp9IGZy
b20gJy4vY29yZV91dGlsLmpzJzsKaW1wb3J0IHsgdG9hc3QsIG1vZGFsWmVpZ2VuLCBtb2RhbFNj
aGxpZXNzZW4gfSBmcm9tICcuL3VpX2RpYWxvZy5qcyc7CmltcG9ydCB7CiAgICBCS19IT1JJWk9O
VF9UQUdFLAogICAga29tbWVudGFyVGV4dCwgenVEYXR1bVNjcm9sbGVuCn0gZnJvbSAnLi9ncmlk
X2ludGVyYWN0aW9uLmpzJzsKaW1wb3J0IHsgZnVlaHJ1bmdzWmFlaGxlbiwgZGdsc0luU2NoaWNo
dCwgZ2VzYW10dmVyYW50d29ydGxpY2hFbWFpbCwgaXN0RGdsUXVhbGlmaXppZXJ0LCBpc3RHZXNh
bXR2ZXJhbnR3b3J0bGljaCB9IGZyb20gJy4vZ3JpZF9lZGl0b3IuanMnOwppbXBvcnQgeyBhbnNp
Y2h0V2VjaHNlbG4gfSBmcm9tICcuL2dyaWRfcmVuZGVyLmpzJzsKCi8vID09PT09IEhvb2tzID09
PT09CgpleHBvcnQgdmFyIGJlc2V0enVuZ0hvb2tzID0gewogICAgYmV6OiBudWxsLAogICAgZW1h
aWxWb3JsYWdlbkhvbGVuOiBudWxsLAogICAgZW1haWxWb3JsYWdlQmVmdWVsbGVuOiBudWxsLAog
ICAgbWFpbFRyaWdnZXJGZXVlcm46IG51bGwKfTsKCmZ1bmN0aW9uIGJlek9kZXIoa2V5LCBmYWxs
YmFjaykgewogICAgaWYgKGJlc2V0enVuZ0hvb2tzLmJleikgewogICAgICAgIHZhciB2ID0gYmVz
ZXR6dW5nSG9va3MuYmV6KGtleSk7CiAgICAgICAgaWYgKHYpIHJldHVybiB2OwogICAgfQogICAg
cmV0dXJuIGZhbGxiYWNrOwp9CgovLyA9PT09PSBBbmFseXNlID09PT09CgovLyA0LVdvY2hlbi1B
bmFseXNlIGZ1ZXIgZGVuIEJlc2V0enVuZ3Nrb250cm9sbC1UYWIuIERyZWktU3RhdHVzLUFtcGVs
OgovLyAgIHJvdCAgID0gaXJnZW5kZWluZSBTY2hpY2h0IGhhdCDiiaQgMSBGdWVocnVuZ3NrcmFm
dCAoYWt1dGUgVW50ZXJiZXNldHp1bmcpCi8vICAgZ2VsYiAgPSBpcmdlbmRlaW5lIFNjaGljaHQg
aGF0IGdlbmF1IDIgRnVlaHJ1bmdza3JhZWZ0ZSAoa25hcHBlIE1pbmRlc3QtCi8vICAgICAgICAg
ICAgQmVzZXR6dW5nIOKAlCBrZWluIFB1ZmZlciBmdWVyIGt1cnpmcmlzdGlnZSBBdXNmYWVsbGUp
Ci8vICAgZ3J1ZW4gPSBhbGxlIFNjaGljaHRlbiBoYWJlbiDiiaUgMyBGdWVocnVuZ3NrcmFlZnRl
IChrb21mb3J0YWJlbCBiZXNldHp0KQovLyBSdWVja2dhYmUgcHJvIFRhZzogeyBkYXR1bSwgZGF0
ZU9iaiwgd29jaGVudGFnLCBzdGF0dXMsIHNjaGljaHRlbjoKLy8gICB7Rjp7aXN0LHN0YXR1c30s
IFM6Li4uLCBOOi4uLn0gfQpleHBvcnQgZnVuY3Rpb24gYmVzZXR6dW5nc0FuYWx5c2UoKSB7CiAg
ICB2YXIgaGV1dGUgPSBuZXcgRGF0ZSgpOyBoZXV0ZS5zZXRIb3VycygwLDAsMCwwKTsKICAgIHZh
ciB0YWdlID0gW107CiAgICB2YXIgcm90ID0gMCwgZ2VsYiA9IDAsIGdydWVuID0gMDsKICAgIGZ1
bmN0aW9uIHNjaGljaHRTdGF0dXMoaXN0KSB7CiAgICAgICAgaWYgKGlzdCA8PSAxKSByZXR1cm4g
J3JvdCc7CiAgICAgICAgaWYgKGlzdCA9PT0gMikgcmV0dXJuICdnZWxiJzsKICAgICAgICByZXR1
cm4gJ2dydWVuJzsKICAgIH0KICAgIGZ1bmN0aW9uIHRhZ1N0YXR1cyhmLCBzLCBuKSB7CiAgICAg
ICAgaWYgKGYgPD0gMSB8fCBzIDw9IDEgfHwgbiA8PSAxKSByZXR1cm4gJ3JvdCc7CiAgICAgICAg
aWYgKGYgPT09IDIgfHwgcyA9PT0gMiB8fCBuID09PSAyKSByZXR1cm4gJ2dlbGInOwogICAgICAg
IHJldHVybiAnZ3J1ZW4nOwogICAgfQogICAgKFoudGFnZSB8fCBbXSkuZm9yRWFjaChmdW5jdGlv
bihkKSB7CiAgICAgICAgaWYgKGQgPCBoZXV0ZSkgcmV0dXJuOwogICAgICAgIHZhciBkaWZmID0g
TWF0aC5mbG9vcigoZCAtIGhldXRlKSAvIDg2NDAwMDAwKTsKICAgICAgICBpZiAoZGlmZiA+PSBC
S19IT1JJWk9OVF9UQUdFKSByZXR1cm47CiAgICAgICAgdmFyIGRTdHIgPSBkYXR1bVN0cihkKTsK
ICAgICAgICB2YXIgZiA9IGZ1ZWhydW5nc1phZWhsZW4oZFN0ciwgJ0YnKTsKICAgICAgICB2YXIg
cyA9IGZ1ZWhydW5nc1phZWhsZW4oZFN0ciwgJ1MnKTsKICAgICAgICB2YXIgbiA9IGZ1ZWhydW5n
c1phZWhsZW4oZFN0ciwgJ04nKTsKICAgICAgICB2YXIgc3QgPSB0YWdTdGF0dXMoZiwgcywgbik7
CiAgICAgICAgaWYgKHN0ID09PSAncm90Jykgcm90Kys7CiAgICAgICAgZWxzZSBpZiAoc3QgPT09
ICdnZWxiJykgZ2VsYisrOwogICAgICAgIGVsc2UgZ3J1ZW4rKzsKICAgICAgICB0YWdlLnB1c2go
ewogICAgICAgICAgICBkYXR1bTogZFN0ciwKICAgICAgICAgICAgZGF0ZU9iajogZCwKICAgICAg
ICAgICAgd29jaGVudGFnOiB3b2NoZW50YWdLdXJ6KGQpLAogICAgICAgICAgICBzdGF0dXM6IHN0
LAogICAgICAgICAgICBzY2hpY2h0ZW46IHsKICAgICAgICAgICAgICAgIEY6IHsgaXN0OiBmLCBz
dGF0dXM6IHNjaGljaHRTdGF0dXMoZikgfSwKICAgICAgICAgICAgICAgIFM6IHsgaXN0OiBzLCBz
dGF0dXM6IHNjaGljaHRTdGF0dXMocykgfSwKICAgICAgICAgICAgICAgIE46IHsgaXN0OiBuLCBz
dGF0dXM6IHNjaGljaHRTdGF0dXMobikgfQogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9
KTsKICAgIHJldHVybiB7CiAgICAgICAgdGFnZTogdGFnZSwKICAgICAgICBnZXNhbXRUYWdlOiB0
YWdlLmxlbmd0aCwKICAgICAgICByb3RUYWdlOiByb3QsIGdlbGJUYWdlOiBnZWxiLCBncnVlblRh
Z2U6IGdydWVuLAogICAgICAgIC8vIEtvbXBhdC1GZWxkZXIgZnVlciBhZWx0ZXJlbiBDb2RlIChk
ZWZpeml0VGFnZSA9IHJvdCtnZWxiKQogICAgICAgIGRlZml6aXRUYWdlOiByb3QgKyBnZWxiLCBv
a1RhZ2U6IGdydWVuCiAgICB9Owp9CgovLyBEZWZpeml0LUJyaWVmaW5nLUJ1dHRvbiAoUHJ1ZWZ1
bmdzLUFuc2ljaHQpOiBvZWZmbmV0IGVpbiBJbnRlcnZpZXctCi8vIE1vZGFsLCBpbiBkZW0gZGVy
IE51dHplciBaZWl0cmF1bSAoMS8yLzQgV29jaGVuKSwgU3RyZW5nZSAobnVyIGtyaXRpc2NoCi8v
IG9kZXIgYXVjaCBrZWluLVB1ZmZlcikgdW5kIGRpZSBlaW56dWxhZGVuZGVuIGZyZWktZWluZ2Vw
bGFudGVuIFBlcnNvbmVuCi8vIHdhZWhsdC4gQW5zY2hsaWVzc2VuZCBiYXV0IGVpbiBQbGFpbi1U
ZXh0LU1haWx0byBkaWUgTWFpbCB2b3Ig4oCUIE91dGxvb2sKLy8gYXVmIGRlbiBCZWhvZXJkZW4t
UENzIHVlYmVybmltbXQgSFRNTC1Cb2RpZXMgYXVzIG1haWx0bzogbmljaHQgenV2ZXItCi8vIGxh
ZXNzaWcuIEVtcGZhZW5nZXI6IGF1c2dld2FlaGx0ZSB3ZnIvZGZyLVBlcnNvbmVuIGluICJBbiIs
IEdlc2FtdC0KLy8gdmVyYW50d29ydGxpY2hlL3IgaW1tZXIgaW4gIkNjIiB6dXIgRHVyY2hmdWVo
cnVuZ3Nrb250cm9sbGUuCnZhciBERUZJWklUX0ZSRUlfQ09ERVMgPSB7ICd3ZnInOiAxLCAnZGZy
JzogMSB9OwoKZXhwb3J0IGZ1bmN0aW9uIGRlZml6aXRCcmllZmluZ09lZmZuZW4oKSB7CiAgICB2
YXIga29lcnBlciA9ICcnCiAgICAgICAgKyAnPGRpdiBjbGFzcz0iZGVmaXppdC1icmllZmluZy1t
b2RhbCI+JwogICAgICAgICsgJzxoNCBjbGFzcz0iZGJtLWZyYWdlIj4xLiBXZWxjaGVyIFplaXRy
YXVtPzwvaDQ+JwogICAgICAgICsgJzxkaXYgY2xhc3M9ImRibS1vcHRpb25lbiIgaWQ9ImRibS13
b2NoZW4tZ3J1cHBlIj4nCiAgICAgICAgKyAgICc8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBu
YW1lPSJkYm0td29jaGVuIiB2YWx1ZT0iMSI+IDEgV29jaGU8L2xhYmVsPicKICAgICAgICArICAg
JzxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImRibS13b2NoZW4iIHZhbHVlPSIyIiBj
aGVja2VkPiAyIFdvY2hlbjwvbGFiZWw+JwogICAgICAgICsgICAnPGxhYmVsPjxpbnB1dCB0eXBl
PSJyYWRpbyIgbmFtZT0iZGJtLXdvY2hlbiIgdmFsdWU9IjQiPiA0IFdvY2hlbjwvbGFiZWw+Jwog
ICAgICAgICsgJzwvZGl2PicKCiAgICAgICAgKyAnPGg0IGNsYXNzPSJkYm0tZnJhZ2UiPjIuIFdh
cyBzb2xsIGltIEJyaWVmaW5nIGVyd8OkaG50IHdlcmRlbj88L2g0PicKICAgICAgICArICc8ZGl2
IGNsYXNzPSJkYm0tb3B0aW9uZW4iIGlkPSJkYm0tc3RyZW5nZS1ncnVwcGUiPicKICAgICAgICAr
ICAgJzxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImRibS1zdHJlbmdlIiB2YWx1ZT0i
cm90IiBjaGVja2VkPiBOdXIga3JpdGlzY2hlIFRhZ2UgKOKJpCAxIEbDvGhydW5nc2tyYWZ0IGlu
IG1pbmRlc3RlbnMgZWluZXIgU2NoaWNodCk8L2xhYmVsPicKICAgICAgICArICAgJzxsYWJlbD48
aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImRibS1zdHJlbmdlIiB2YWx1ZT0icm90X2dlbGIiPiBB
dWNoIFRhZ2UgbWl0IGdlbmF1IDIgRsO8aHJ1bmdza3LDpGZ0ZW4gKGtlaW4gUHVmZmVyKTwvbGFi
ZWw+JwogICAgICAgICsgJzwvZGl2PicKCiAgICAgICAgKyAnPGg0IGNsYXNzPSJkYm0tZnJhZ2Ui
PjMuIFdlciBzb2xsIGFuZ2VzY2hyaWViZW4gd2VyZGVuPzwvaDQ+JwogICAgICAgICsgJzxwIGNs
YXNzPSJkYm0taGludCI+UGVyc29uZW4sIGRpZSBhbiBkZW4gYmV0cm9mZmVuZW4gVGFnZW4gd2Fj
aC0gb2RlciBkaWVuc3RmcmVpICh3ZnIvZGZyKSBoYWJlbi4gSMOka2NoZW4gZW50ZmVybmVuLCB1
bSBqZW1hbmRlbiBhdXN6dWxhc3Nlbi48L3A+JwogICAgICAgICsgJzxkaXYgaWQ9ImRibS1lbXBm
YWVuZ2VyLWxpc3RlIiBjbGFzcz0iZGJtLWVtcGZhZW5nZXItbGlzdGUiPjwvZGl2PicKICAgICAg
ICArICc8cCBjbGFzcz0iZGJtLWNjLWhpbnQiPkNjOiA8c3Ryb25nIGlkPSJkYm0tY2MtdGV4dCI+
4oCmPC9zdHJvbmc+IDxzcGFuIGNsYXNzPSJ0ZXh0LW11dGVkIj4oaW1tZXIgbWl0LCB6dXIgRHVy
Y2hmw7xocnVuZ3Nrb250cm9sbGUpPC9zcGFuPjwvcD4nCiAgICAgICAgKyAnPC9kaXY+JzsKCiAg
ICB2YXIgZnVzcyA9ICc8YnV0dG9uIGNsYXNzPSJidG4iIGlkPSJkYm0tYWJicmVjaGVuIiB0eXBl
PSJidXR0b24iPkFiYnJlY2hlbjwvYnV0dG9uPicKICAgICAgICAgICAgICsgJzxidXR0b24gY2xh
c3M9ImJ0biBidG4tcHJpbWFlciIgaWQ9ImRibS12b3JiZXJlaXRlbiIgdHlwZT0iYnV0dG9uIj5N
YWlsIHZvcmJlcmVpdGVuPC9idXR0b24+JzsKCiAgICBtb2RhbFplaWdlbignRGVmaXppdC1Ccmll
ZmluZyB6dXNhbW1lbnN0ZWxsZW4nLCBrb2VycGVyLCBmdXNzLCBudWxsLCBudWxsLCB7IHJlaW5l
ckRpYWxvZzogdHJ1ZSB9KTsKCiAgICB2YXIgZ3YgPSBfZGVmaXppdEd2SW5mbygpOwogICAgdmFy
IGNjVGV4dCA9IGd2Lm5hbWUgfHwgJyhrZWluIEdlc2FtdHZlcmFudHdvcnRsaWNoZXIgZ2VwZmxl
Z3QpJzsKICAgIGlmIChndi5uYW1lICYmICFndi5lbWFpbCkgY2NUZXh0ICs9ICcg4oCUIGtlaW5l
IEUtTWFpbCBoaW50ZXJsZWd0ISc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGJtLWNj
LXRleHQnKS50ZXh0Q29udGVudCA9IGNjVGV4dDsKCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZGJtLWFiYnJlY2hlbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgbW9kYWxTY2hsaWVz
c2VuKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYm0tdm9yYmVyZWl0ZW4nKS5hZGRF
dmVudExpc3RlbmVyKCdjbGljaycsIF9kZWZpeml0QnJpZWZpbmdNYWlsVm9yYmVyZWl0ZW4pOwoK
ICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNkYm0td29jaGVuLWdydXBwZSBpbnB1dCwg
I2RibS1zdHJlbmdlLWdydXBwZSBpbnB1dCcpLmZvckVhY2goZnVuY3Rpb24oaW5wKSB7CiAgICAg
ICAgaW5wLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIF9kZWZpeml0RW1wZmFlbmdlckFrdHVh
bGlzaWVyZW4pOwogICAgfSk7CgogICAgX2RlZml6aXRFbXBmYWVuZ2VyQWt0dWFsaXNpZXJlbigp
Owp9CgovLyBMaWVmZXJ0IHtuYW1lLCBlbWFpbH0gZnVlciBkZW4vZGllIEdlc2FtdHZlcmFudHdv
cnRsaWNoZS9uIGF1cwovLyBhZG1pbi5mYWNoYXVmc2ljaHQuIEVtYWlsIGtvbW10IGF1cyBlZGl0
b3IuZ2VzYW10dmVyYW50d29ydGxpY2hFbWFpbCgpOwovLyBOYW1lIGJhdWVuIHdpciBoaWVyIGF1
Ziwgd2VpbCBkb3J0IG51ciBWb3JuYW1lLUhlbHBlciBleGlzdGllcnQuCmZ1bmN0aW9uIF9kZWZp
eml0R3ZJbmZvKCkgewogICAgdmFyIGZhID0gKChaLmFkbWluICYmIFouYWRtaW4uZmFjaGF1ZnNp
Y2h0KSB8fCBbXSkuZmluZChmdW5jdGlvbihmKSB7IHJldHVybiBmLmdlc2FtdHZlcmFudHdvcnRs
aWNoOyB9KTsKICAgIGlmICghZmEpIHJldHVybiB7IG5hbWU6ICcnLCBlbWFpbDogJycgfTsKICAg
IHZhciBuYW1lID0gJyc7CiAgICBpZiAoZmEubndLZW5udW5nKSB7CiAgICAgICAgdmFyIHAgPSAo
KFoucGxhbnVuZyAmJiBaLnBsYW51bmcucGVyc29uZW4pIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHgp
IHsKICAgICAgICAgICAgcmV0dXJuICh4Lm53S2VubnVuZyB8fCAnJykudG9Mb3dlckNhc2UoKSA9
PT0gZmEubndLZW5udW5nLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgfSk7CiAgICAgICAgaWYgKHAp
IG5hbWUgPSAoKHAudm9ybmFtZSA/IHAudm9ybmFtZSArICcgJyA6ICcnKSArIChwLm5hbWUgfHwg
JycpKS50cmltKCk7CiAgICB9CiAgICBpZiAoIW5hbWUpIG5hbWUgPSBmYS5uYW1lIHx8IGZhLm53
S2VubnVuZyB8fCAnJzsKICAgIHJldHVybiB7IG5hbWU6IG5hbWUsIGVtYWlsOiBnZXNhbXR2ZXJh
bnR3b3J0bGljaEVtYWlsKCkgfHwgJycgfTsKfQoKLy8gTGllZmVydCBkaWUgRGVmaXppdC1UYWdl
IGZ1ZXIgYmVsaWViaWdlbiBXb2NoZW4tSG9yaXpvbnQgKyBTdHJlbmdlLgovLyBzdHJlbmdlOiAn
cm90JyAobnVyIFNjaGljaHRlbiBtaXQg4omkMSBGaykgb2RlciAncm90X2dlbGInIChhdWNoID0y
IEZrKS4KLy8gRm9ybWF0OiB7IHRhZ2U6IFt7ZGF0dW0sIHdvY2hlbnRhZywgZmVobGVuZDpbe3Nj
aGljaHQsaXN0fV19XSwgZ2VzYW10VGFnZSwgZGVmaXppdFRhZ2UgfS4KZnVuY3Rpb24gX2RlZml6
aXRBbmFseXNlRnVlcih3b2NoZW4sIHN0cmVuZ2UpIHsKICAgIHZhciBob3Jpem9udFRhZ2UgPSB3
b2NoZW4gKiA3OwogICAgdmFyIGhldXRlID0gbmV3IERhdGUoKTsgaGV1dGUuc2V0SG91cnMoMCww
LDAsMCk7CiAgICB2YXIgdGFnZSA9IFtdOwogICAgKFoudGFnZSB8fCBbXSkuZm9yRWFjaChmdW5j
dGlvbihkKSB7CiAgICAgICAgaWYgKGQgPCBoZXV0ZSkgcmV0dXJuOwogICAgICAgIHZhciBkaWZm
ID0gTWF0aC5mbG9vcigoZCAtIGhldXRlKSAvIDg2NDAwMDAwKTsKICAgICAgICBpZiAoZGlmZiA+
PSBob3Jpem9udFRhZ2UpIHJldHVybjsKICAgICAgICB2YXIgZFN0ciA9IGRhdHVtU3RyKGQpOwog
ICAgICAgIHZhciBmID0gZnVlaHJ1bmdzWmFlaGxlbihkU3RyLCAnRicpOwogICAgICAgIHZhciBz
ID0gZnVlaHJ1bmdzWmFlaGxlbihkU3RyLCAnUycpOwogICAgICAgIHZhciBuID0gZnVlaHJ1bmdz
WmFlaGxlbihkU3RyLCAnTicpOwogICAgICAgIHZhciBmZWhsZW5kID0gW107CiAgICAgICAgZnVu
Y3Rpb24gcHJ1ZWZlKGxhYmVsLCBpc3QpIHsKICAgICAgICAgICAgaWYgKGlzdCA8PSAxKSAgICAg
ICAgICAgICAgICAgIGZlaGxlbmQucHVzaCh7IHNjaGljaHQ6IGxhYmVsLCBpc3Q6IGlzdCB9KTsK
ICAgICAgICAgICAgZWxzZSBpZiAoaXN0ID09PSAyICYmIHN0cmVuZ2UgPT09ICdyb3RfZ2VsYicp
IGZlaGxlbmQucHVzaCh7IHNjaGljaHQ6IGxhYmVsLCBpc3Q6IGlzdCB9KTsKICAgICAgICB9CiAg
ICAgICAgcHJ1ZWZlKCdGJywgZik7IHBydWVmZSgnUycsIHMpOyBwcnVlZmUoJ04nLCBuKTsKICAg
ICAgICBpZiAoIWZlaGxlbmQubGVuZ3RoKSByZXR1cm47CiAgICAgICAgdGFnZS5wdXNoKHsKICAg
ICAgICAgICAgZGF0dW06ICAgICBkU3RyLAogICAgICAgICAgICB3b2NoZW50YWc6IHdvY2hlbnRh
Z0t1cnooZCksCiAgICAgICAgICAgIGZlaGxlbmQ6ICAgZmVobGVuZAogICAgICAgIH0pOwogICAg
fSk7CiAgICByZXR1cm4geyB0YWdlOiB0YWdlLCBnZXNhbXRUYWdlOiBob3Jpem9udFRhZ2UsIGRl
Zml6aXRUYWdlOiB0YWdlLmxlbmd0aCB9Owp9CgovLyBTYW1tZWx0IFBlcnNvbmVuIG1pdCBGcmVp
LUNvZGUgKHdmci9kZnIpIGFuIGRlbiBiZXRyb2ZmZW5lbiBUYWdlbi4KLy8gQWdncmVnaWVydCBw
cm8gUGVyc29uIGlocmUgRnJlaS1UYWdlLiBQZXJzb25lbiBvaG5lIEUtTWFpbCB3ZXJkZW4gbWl0
Ci8vIG1hcmtpZXJ0IChpbSBNb2RhbCBkaXNhYmxlZCArIEhpbndlaXMpLgpmdW5jdGlvbiBfZGVm
aXppdEZyZWllUGVyc29uZW4odGFnZSkgewogICAgdmFyIGVpbnRyYWVnZSA9IChaLnBsYW51bmcg
JiYgWi5wbGFudW5nLmVpbnRyYWVnZSkgfHwge307CiAgICB2YXIgcGVyc29uZW4gID0gKChaLnBs
YW51bmcgJiYgWi5wbGFudW5nLnBlcnNvbmVuKSB8fCBbXSk7CiAgICB2YXIgbWFwID0ge307ICAg
Ly8gcGlkIC0+IHsgaWQsIG5hbWUsIHZvcm5hbWUsIGVtYWlsLCB0YWdlU3RyW10gfQogICAgdGFn
ZS5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKICAgICAgICB2YXIgZSA9IGVpbnRyYWVnZVt0LmRhdHVt
XSB8fCB7fTsKICAgICAgICBwZXJzb25lbi5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgICAgICAg
ICAgaWYgKCFwLmFrdGl2KSByZXR1cm47CiAgICAgICAgICAgIHZhciBjb2RlID0gZVtTdHJpbmco
cC5pZCldIHx8ICcnOwogICAgICAgICAgICBpZiAoIURFRklaSVRfRlJFSV9DT0RFU1tjb2RlXSkg
cmV0dXJuOwogICAgICAgICAgICBpZiAoIW1hcFtwLmlkXSkgewogICAgICAgICAgICAgICAgbWFw
W3AuaWRdID0gewogICAgICAgICAgICAgICAgICAgIGlkOiBwLmlkLCBuYW1lOiBwLm5hbWUgfHwg
JycsIHZvcm5hbWU6IHAudm9ybmFtZSB8fCAnJywKICAgICAgICAgICAgICAgICAgICBlbWFpbDog
cC5lbWFpbCB8fCAnJywgdGFnZVN0cjogW10KICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAg
IH0KICAgICAgICAgICAgbWFwW3AuaWRdLnRhZ2VTdHIucHVzaCh0LndvY2hlbnRhZyArICcgJyAr
IGRhdHVtRm9ybWF0REUodC5kYXR1bSkpOwogICAgICAgIH0pOwogICAgfSk7CiAgICB2YXIgbGlz
dGUgPSBPYmplY3Qua2V5cyhtYXApLm1hcChmdW5jdGlvbihrKSB7IHJldHVybiBtYXBba107IH0p
OwogICAgbGlzdGUuc29ydChmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgcmV0dXJuIChhLm5hbWUg
KyBhLnZvcm5hbWUpLmxvY2FsZUNvbXBhcmUoYi5uYW1lICsgYi52b3JuYW1lLCAnZGUnKTsKICAg
IH0pOwogICAgcmV0dXJuIGxpc3RlOwp9CgovLyBMaWVzdCBkZW4gYWt0dWVsbGVuIEludGVydmll
dy1TdGFuZCAoV29jaGVuICsgU3RyZW5nZSkgdW5kIHJlbmRlcnQgZGllCi8vIEVtcGZhZW5nZXIt
TGlzdGUgbmV1IOKAlCB3aXJkIGJlaSBqZWRlbSBPcHRpb25zd2VjaHNlbCBhdWZnZXJ1ZmVuLgpm
dW5jdGlvbiBfZGVmaXppdEVtcGZhZW5nZXJBa3R1YWxpc2llcmVuKCkgewogICAgdmFyIGxpc3Rl
RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGJtLWVtcGZhZW5nZXItbGlzdGUnKTsKICAg
IGlmICghbGlzdGVFbCkgcmV0dXJuOwogICAgdmFyIHdvY2hlbklucCA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ2lucHV0W25hbWU9ImRibS13b2NoZW4iXTpjaGVja2VkJyk7CiAgICB2YXIgc3Ry
ZW5nZUlucCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9ImRibS1zdHJlbmdl
Il06Y2hlY2tlZCcpOwogICAgdmFyIHdvY2hlbiA9IHdvY2hlbklucCA/IHBhcnNlSW50KHdvY2hl
bklucC52YWx1ZSwgMTApIDogMjsKICAgIHZhciBzdHJlbmdlID0gc3RyZW5nZUlucCA/IHN0cmVu
Z2VJbnAudmFsdWUgOiAncm90JzsKCiAgICB2YXIgYW5hbHlzZSA9IF9kZWZpeml0QW5hbHlzZUZ1
ZXIod29jaGVuLCBzdHJlbmdlKTsKICAgIGlmIChhbmFseXNlLmRlZml6aXRUYWdlID09PSAwKSB7
CiAgICAgICAgbGlzdGVFbC5pbm5lckhUTUwgPSAnPHAgY2xhc3M9ImRibS1sZWVyIj5LZWluZSBE
ZWZpeml0LVRhZ2UgaW4gZGVuIG7DpGNoc3RlbiAnICsgd29jaGVuICsgJyBXb2NoZW4g4oCUIGtl
aW4gQnJpZWZpbmcgbsO2dGlnLjwvcD4nOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciBw
ZXJzb25lbiA9IF9kZWZpeml0RnJlaWVQZXJzb25lbihhbmFseXNlLnRhZ2UpOwogICAgaWYgKCFw
ZXJzb25lbi5sZW5ndGgpIHsKICAgICAgICBsaXN0ZUVsLmlubmVySFRNTCA9ICc8cCBjbGFzcz0i
ZGJtLWxlZXIiPicgKyBhbmFseXNlLmRlZml6aXRUYWdlICsgJyBEZWZpeml0LVRhZyhlKSBnZWZ1
bmRlbiwgYWJlciBuaWVtYW5kIGlzdCBhbiBkaWVzZW4gVGFnZW4gd2ZyL2RmciDigJQgbmllbWFu
ZCB6dW0gQW5zY2hyZWliZW4uPC9wPic7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIGh0
bWwgPSAnPGRpdiBjbGFzcz0iZGJtLWluZm8iPicgKyBhbmFseXNlLmRlZml6aXRUYWdlICsgJyBE
ZWZpeml0LVRhZyhlKSwgJyArIHBlcnNvbmVuLmxlbmd0aCArICcgbcO2Z2xpY2hlIEVtcGbDpG5n
ZXI6PC9kaXY+JzsKICAgIGh0bWwgKz0gJzx1bCBjbGFzcz0iZGJtLXBlcnNvbmVuIj4nOwogICAg
cGVyc29uZW4uZm9yRWFjaChmdW5jdGlvbihwKSB7CiAgICAgICAgdmFyIGhhdE1haWwgPSAhIXAu
ZW1haWw7CiAgICAgICAgdmFyIGNoZWNrZWQgPSBoYXRNYWlsID8gJyBjaGVja2VkJyA6ICcnOwog
ICAgICAgIHZhciBkaXNhYmxlZCA9ICFoYXRNYWlsID8gJyBkaXNhYmxlZCcgOiAnJzsKICAgICAg
ICB2YXIgYW56ZWlnZSA9ICgocC52b3JuYW1lID8gcC52b3JuYW1lICsgJyAnIDogJycpICsgcC5u
YW1lKS50cmltKCkgfHwgKCcjJyArIHAuaWQpOwogICAgICAgIHZhciB0YWdlS3VyeiA9IHAudGFn
ZVN0ci5qb2luKCcsICcpOwogICAgICAgIGh0bWwgKz0gJzxsaT48bGFiZWwgY2xhc3M9IicgKyAo
aGF0TWFpbCA/ICcnIDogJ2RibS1kaXNhYmxlZCcpICsgJyI+JwogICAgICAgICAgICAgICsgJzxp
bnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImRibS1lbXBmLWNiIiBkYXRhLXBpZD0iJyArIGVz
Y2FwZUF0dHIoU3RyaW5nKHAuaWQpKSArICciIGRhdGEtZW1haWw9IicgKyBlc2NhcGVBdHRyKHAu
ZW1haWwpICsgJyIgZGF0YS1uYW1lPSInICsgZXNjYXBlQXR0cihhbnplaWdlKSArICciJyArIGNo
ZWNrZWQgKyBkaXNhYmxlZCArICc+JwogICAgICAgICAgICAgICsgJyA8c3Ryb25nPicgKyBlc2Nh
cGVIVE1MKGFuemVpZ2UpICsgJzwvc3Ryb25nPicKICAgICAgICAgICAgICArICcgPHNwYW4gY2xh
c3M9ImRibS10YWdlIj4oJyArIGVzY2FwZUhUTUwodGFnZUt1cnopICsgJyk8L3NwYW4+JwogICAg
ICAgICAgICAgICsgKGhhdE1haWwgPyAnJyA6ICcgPHNwYW4gY2xhc3M9ImRibS1uby1tYWlsIj7i
gJQga2VpbmUgRS1NYWlsIGhpbnRlcmxlZ3Q8L3NwYW4+JykKICAgICAgICAgICAgICArICc8L2xh
YmVsPjwvbGk+JzsKICAgIH0pOwogICAgaHRtbCArPSAnPC91bD4nOwogICAgbGlzdGVFbC5pbm5l
ckhUTUwgPSBodG1sOwp9CgovLyBCYXV0IGRlbiBQbGFpbi1UZXh0LU1haWwtQm9keSB1bmQgb2Vm
Zm5ldCBkaWUgbWFpbHRvOi1VUkwuIEZvcm1hdDoKLy8gZnJldW5kbGljaC1tb2Rlcm4gKER1LUZv
cm0pLCBrZWluZSBIVE1MLVRhZ3Mg4oCUIE91dGxvb2sgYmVpIGRlciBCZWhvZXJkZQovLyB1ZWJl
cm5pbW10IG1haWx0by1IVE1MIG5pY2h0IHp1dmVybGFlc3NpZy4KZnVuY3Rpb24gX2RlZml6aXRC
cmllZmluZ01haWxWb3JiZXJlaXRlbigpIHsKICAgIHZhciB3b2NoZW5JbnAgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJkYm0td29jaGVuIl06Y2hlY2tlZCcpOwogICAgdmFy
IHN0cmVuZ2VJbnAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJkYm0tc3Ry
ZW5nZSJdOmNoZWNrZWQnKTsKICAgIHZhciB3b2NoZW4gPSB3b2NoZW5JbnAgPyBwYXJzZUludCh3
b2NoZW5JbnAudmFsdWUsIDEwKSA6IDI7CiAgICB2YXIgc3RyZW5nZSA9IHN0cmVuZ2VJbnAgPyBz
dHJlbmdlSW5wLnZhbHVlIDogJ3JvdCc7CgogICAgdmFyIGFuYWx5c2UgPSBfZGVmaXppdEFuYWx5
c2VGdWVyKHdvY2hlbiwgc3RyZW5nZSk7CiAgICBpZiAoYW5hbHlzZS5kZWZpeml0VGFnZSA9PT0g
MCkgewogICAgICAgIHRvYXN0KCdLZWluZSBEZWZpeml0LVRhZ2UgaW0gZ2V3w6RobHRlbiBaZWl0
cmF1bS4nLCAnaW5mbycpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBFbXBmYWVuZ2Vy
IGF1cyBkZW4gYW5nZWhha3RlbiBDaGVja2JveGVuIHNhbW1lbG4KICAgIHZhciBhbkVtYWlscyA9
IFtdOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmRibS1lbXBmLWNiOmNoZWNrZWQn
KS5mb3JFYWNoKGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgdmFyIG1haWwgPSBjYi5nZXRBdHRyaWJ1
dGUoJ2RhdGEtZW1haWwnKTsKICAgICAgICBpZiAobWFpbCkgYW5FbWFpbHMucHVzaChtYWlsKTsK
ICAgIH0pOwoKICAgIHZhciBndiA9IF9kZWZpeml0R3ZJbmZvKCk7CgogICAgaWYgKCFhbkVtYWls
cy5sZW5ndGggJiYgIWd2LmVtYWlsKSB7CiAgICAgICAgdG9hc3QoJ1dlZGVyIGF1c2dld8OkaGx0
ZSBFbXBmw6RuZ2VyIG5vY2ggR2VzYW10dmVyYW50d29ydGxpY2hlL3IgaGFiZW4gZWluZSBFLU1h
aWwtQWRyZXNzZSBoaW50ZXJsZWd0LicsICd3YXJudW5nJyk7CiAgICAgICAgcmV0dXJuOwogICAg
fQoKICAgIC8vIFNjaGljaHQtQmV6ZWljaG5lciBsYWVuZ2VyIGFscyBkYXMgS3VlcnplbAogICAg
dmFyIHNjaGljaHROYW1lID0geyBGOiAnRnLDvGgnLCBTOiAnU3DDpHQnLCBOOiAnTmFjaHQnIH07
CgogICAgLy8gQXVzZ2V3YWVobHRlIFBlcnNvbmVuIHNhbW1lbG4gdW5kIG5hY2ggVGFnIG1hcHBl
biDigJQgcHJvIERlZml6aXQtVGFnCiAgICAvLyBiYXVlbiB3aXIgZWluZW4gQmxvY2sgbWl0IERh
dHVtICsgTHVlY2tlbi1TY2hpY2h0ZW4gb2JlbiB1bmQgZGVuCiAgICAvLyB3ZnIvZGZyLVBlcnNv
bmVuLCBkaWUgYW4gZ2VuYXUgZGllc2VtIFRhZyBmcmVpIHNpbmQsIGRhcnVudGVyLgogICAgdmFy
IGF1c2dld0lkcyA9IHt9OwogICAgdmFyIGF1c2dld01hcCA9IHt9OyAgIC8vIHBpZCAtPiB7IG5h
bWUsIGVtYWlsIH0KICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5kYm0tZW1wZi1jYjpj
aGVja2VkJykuZm9yRWFjaChmdW5jdGlvbihjYikgewogICAgICAgIHZhciBwaWQgPSBjYi5nZXRB
dHRyaWJ1dGUoJ2RhdGEtcGlkJyk7CiAgICAgICAgYXVzZ2V3SWRzW3BpZF0gPSB0cnVlOwogICAg
ICAgIGF1c2dld01hcFtwaWRdID0gewogICAgICAgICAgICBuYW1lOiAgY2IuZ2V0QXR0cmlidXRl
KCdkYXRhLW5hbWUnKSwKICAgICAgICAgICAgZW1haWw6IGNiLmdldEF0dHJpYnV0ZSgnZGF0YS1l
bWFpbCcpCiAgICAgICAgfTsKICAgIH0pOwogICAgdmFyIGVpbnRyYWVnZSA9IChaLnBsYW51bmcg
JiYgWi5wbGFudW5nLmVpbnRyYWVnZSkgfHwge307CiAgICBmdW5jdGlvbiBwZXJzb25lbkFuVGFn
KGRhdHVtKSB7CiAgICAgICAgdmFyIGUgPSBlaW50cmFlZ2VbZGF0dW1dIHx8IHt9OwogICAgICAg
IHZhciBsaXN0ZSA9IFtdOwogICAgICAgIE9iamVjdC5rZXlzKGF1c2dld0lkcykuZm9yRWFjaChm
dW5jdGlvbihwaWQpIHsKICAgICAgICAgICAgdmFyIGNvZGUgPSBlW1N0cmluZyhwaWQpXSB8fCAn
JzsKICAgICAgICAgICAgaWYgKERFRklaSVRfRlJFSV9DT0RFU1tjb2RlXSkgbGlzdGUucHVzaChh
dXNnZXdNYXBbcGlkXSk7CiAgICAgICAgfSk7CiAgICAgICAgbGlzdGUuc29ydChmdW5jdGlvbihh
LCBiKSB7IHJldHVybiAoYS5uYW1lIHx8ICcnKS5sb2NhbGVDb21wYXJlKGIubmFtZSB8fCAnJywg
J2RlJyk7IH0pOwogICAgICAgIHJldHVybiBsaXN0ZTsKICAgIH0KCiAgICAvLyBCbG9jayBwcm8g
RGVmaXppdC1UYWc6IEhlYWRlciA9IERhdHVtICsgTHVlY2tlbi1TY2hpY2h0ZW4sCiAgICAvLyBk
YXJ1bnRlciBlaW5nZXJ1ZWNrdCBkaWUgTmFtZW4gZGVyIGFuZ2VzY2hyaWViZW5lbiBGcmVpLVBl
cnNvbmVuLgogICAgdmFyIHRhZ0Jsb2Vja2UgPSBhbmFseXNlLnRhZ2UubWFwKGZ1bmN0aW9uKHQp
IHsKICAgICAgICB2YXIgZmVobExpc3QgPSB0LmZlaGxlbmQubWFwKGZ1bmN0aW9uKGYpIHsKICAg
ICAgICAgICAgcmV0dXJuIHNjaGljaHROYW1lW2Yuc2NoaWNodF0gKyAnICcgKyBmLmlzdCArICcv
Mic7CiAgICAgICAgfSkuam9pbignLCAnKTsKICAgICAgICB2YXIgaGVhZGVyID0gdC53b2NoZW50
YWcgKyAnICcgKyBkYXR1bUZvcm1hdERFKHQuZGF0dW0pICsgJyAg4oCUICBMw7xja2U6ICcgKyBm
ZWhsTGlzdDsKICAgICAgICB2YXIgcGVycyA9IHBlcnNvbmVuQW5UYWcodC5kYXR1bSk7CiAgICAg
ICAgdmFyIHBlcnNvbmVuWmVpbGVuID0gcGVycy5sZW5ndGgKICAgICAgICAgICAgPyAnXG4gIEvD
tm5uZW4gZWluc3ByaW5nZW4gKHdmci9kZnIpOlxuJyArIHBlcnMubWFwKGZ1bmN0aW9uKHApIHsg
cmV0dXJuICcgICAgLSAnICsgcC5uYW1lOyB9KS5qb2luKCdcbicpCiAgICAgICAgICAgIDogJyc7
CiAgICAgICAgcmV0dXJuIGhlYWRlciArIHBlcnNvbmVuWmVpbGVuOwogICAgfSkuam9pbignXG5c
bicpOwoKICAgIC8vIFN0cmVuZ2UtSGlud2VpcyBmdWVyIGRlbiBCb2R5CiAgICB2YXIgc3RyZW5n
ZUluZm8gPSAoc3RyZW5nZSA9PT0gJ3JvdF9nZWxiJykKICAgICAgICA/ICdrcml0aXNjaGUgVGFn
ZSAo4omkIDEgRmspIHVuZCBUYWdlIG9obmUgUHVmZmVyICg9IDIgRmspJwogICAgICAgIDogJ2ty
aXRpc2NoZSBUYWdlICjiiaQgMSBGw7xocnVuZ3NrcmFmdCBpbiBtaW5kZXN0ZW5zIGVpbmVyIFNj
aGljaHQpJzsKCiAgICB2YXIgYWJzZW5kZXIgPSBhYnNlbmRlck5hbWVFcm1pdHRlbG4oKSB8fCAn
ZGllIERpZW5zdGdydXBwZW5sZWl0dW5nJzsKCiAgICB2YXIgYmV0cmVmZiA9ICdEZWZpeml0LUJy
aWVmaW5nOiAnICsgYW5hbHlzZS5kZWZpeml0VGFnZSArICcgVGFnKGUpIG1pdCBMw7xja2VuIGlu
IGRlciBGw7xocnVuZ3MtQmVzZXR6dW5nICgnICsgd29jaGVuICsgKHdvY2hlbiA9PT0gMSA/ICcg
V29jaGUnIDogJyBXb2NoZW4nKSArICcpJzsKCiAgICB2YXIgYm9keSA9CiAgICAgICAgJ0hhbGxv
IHp1c2FtbWVuLFxuJyArCiAgICAgICAgJ1xuJyArCiAgICAgICAgJ2t1cnplciBTdGFuZCB6dXIg
RsO8aHJ1bmdzLUJlc2V0enVuZyBpbiBkZW4gbsOkY2hzdGVuICcgKyB3b2NoZW4gKyAod29jaGVu
ID09PSAxID8gJyBXb2NoZScgOiAnIFdvY2hlbicpICsgJzpcbicgKwogICAgICAgICdcbicgKwog
ICAgICAgIGFuYWx5c2UuZGVmaXppdFRhZ2UgKyAnIHZvbiAnICsgYW5hbHlzZS5nZXNhbXRUYWdl
ICsgJyBUYWdlbiBzaW5kIG5pY2h0IGF1c3JlaWNoZW5kIGJlc2V0enQuXG4nICsKICAgICAgICAn
QXVmZ2Vmw7xocnQgc2luZCAnICsgc3RyZW5nZUluZm8gKyAnLlxuJyArCiAgICAgICAgJ1xuJyAr
CiAgICAgICAgdGFnQmxvZWNrZSArCiAgICAgICAgJ1xuXG4nICsKICAgICAgICAnRmFsbHMgZHUg
ZWluc3ByaW5nZW4ga2FubnN0IOKAlCBhdWNoIGbDvHIgZWluZSBlaW56ZWxuZSBTY2hpY2h0IOKA
lCBtZWxkIGRpY2ggZ2VybmUga3VyeiB6dXLDvGNrIHVuZCBrbGlja2UgZWluZmFjaCBhdWYgIkFs
bGVuIEFudHdvcnRlbiIgKFN0cmcgKyBVbXNjaGFsdCArIFIpLCBzbyBkYXNzIGFsbGUgS2VubnRu
aXMgZGF2b24ga3JpZWdlbiwgZGFzcyBkYXMgRGVmaXppdCBlcmxlZGlndCBpc3QuXG4nICsKICAg
ICAgICAnXG4nICsKICAgICAgICAnRGFua2UgZXVjaCFcbicgKwogICAgICAgICdcbicgKwogICAg
ICAgICdWaWVsZSBHcsO8w59lXG4nICsKICAgICAgICBhYnNlbmRlcjsKCiAgICB2YXIgdXJsID0g
J21haWx0bzonICsgZW5jb2RlVVJJQ29tcG9uZW50KGFuRW1haWxzLmpvaW4oJywnKSk7CiAgICB2
YXIgcXVlcnkgPSBbXTsKICAgIGlmIChndi5lbWFpbCkgcXVlcnkucHVzaCgnY2M9JyArIGVuY29k
ZVVSSUNvbXBvbmVudChndi5lbWFpbCkpOwogICAgcXVlcnkucHVzaCgnc3ViamVjdD0nICsgZW5j
b2RlVVJJQ29tcG9uZW50KGJldHJlZmYpKTsKICAgIHF1ZXJ5LnB1c2goJ2JvZHk9JyArIGVuY29k
ZVVSSUNvbXBvbmVudChib2R5KSk7CiAgICB1cmwgKz0gJz8nICsgcXVlcnkuam9pbignJicpOwoK
ICAgIG1vZGFsU2NobGllc3NlbigpOwogICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7Cn0K
Ci8vIEZhZXJidCBkZW4gUHJ1ZWZ1bmdzLVRhYiBpbSBIZWFkZXIgKG5hdi1iZXNldHp1bmcpIGpl
IG5hY2ggU3RhdHVzLQovLyBIb3Jpem9udCByb3QvZ2VsYi4gV2lyZCBhdXMga29wZlJlbmRlcm4g
KyBiZWkgU2NoaWNodC1FZGl0cyBhdWZnZXJ1ZmVuLAovLyBkYW1pdCBkaWUgRmFlcmJ1bmcgaW1t
ZXIgYWt0dWVsbCBpc3QgKG5pY2h0IG51ciBuYWNoIFRhYi1CZXN1Y2gpLgovLyAgIHJvdCAgKCdi
ay10YWItZGVmaXppdC0ydycpICA6IG1pbmQuIGVpbiBST1QtVGFnICjiiaQxIEZrIGluIGVpbmVy
IFNjaGljaHQpCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gZGVuIG5hZWNo
c3RlbiAxNCBUYWdlbgovLyAgIGdlbGIgKCdiay10YWItZGVmaXppdC00dycpIDogUk9ULVRhZyBp
biAxNC0yOCBPREVSIEdFTEItVGFnICg9MiBGaykgaW4gMC0yOAovLyAgIHNvbnN0ICAgICAgICAg
ICAgICAgICAgICAgICA6IG5ldXRyYWwgKGFsbGUgVGFnZSBncnVlbiwg4omlMyBGayBwcm8gU2No
aWNodCkKZXhwb3J0IGZ1bmN0aW9uIGJlc2V0enVuZ3NUYWJGYXJiZUFrdHVhbGlzaWVyZW4oKSB7
CiAgICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdi1iZXNldHp1bmcnKTsK
ICAgIGlmICghYnRuKSByZXR1cm47CiAgICBidG4uY2xhc3NMaXN0LnJlbW92ZSgnYmstdGFiLWRl
Zml6aXQtMncnLCAnYmstdGFiLWRlZml6aXQtNHcnKTsKICAgIHZhciBsYWJlbCA9IGJlek9kZXIo
J25hdi5iZXNldHp1bmcnLCAnQmVzZXR6dW5nJyk7CiAgICBidG4udGl0bGUgPSBsYWJlbCArICcg
4oCUIDQgV29jaGVuLVZvcnNjaGF1JzsKICAgIGlmICghKFoucmVjaHRlICYmIFoucmVjaHRlLmlz
dEdlc2FtdHZlcmFudHdvcnRsaWNoKSkgcmV0dXJuOwogICAgdmFyIGhldXRlID0gbmV3IERhdGUo
KTsgaGV1dGUuc2V0SG91cnMoMCwwLDAsMCk7CiAgICB2YXIgZGVmaXppdDJ3ID0gMCwgZGVmaXpp
dDR3ID0gMDsKICAgIChaLnRhZ2UgfHwgW10pLmZvckVhY2goZnVuY3Rpb24oZCkgewogICAgICAg
IGlmIChkIDwgaGV1dGUpIHJldHVybjsKICAgICAgICB2YXIgZGlmZiA9IE1hdGguZmxvb3IoKGQg
LSBoZXV0ZSkgLyA4NjQwMDAwMCk7CiAgICAgICAgaWYgKGRpZmYgPj0gMjgpIHJldHVybjsKICAg
ICAgICB2YXIgZFN0ciA9IGRhdHVtU3RyKGQpOwogICAgICAgIHZhciBmID0gZnVlaHJ1bmdzWmFl
aGxlbihkU3RyLCAnRicpOwogICAgICAgIHZhciBzID0gZnVlaHJ1bmdzWmFlaGxlbihkU3RyLCAn
UycpOwogICAgICAgIHZhciBuID0gZnVlaHJ1bmdzWmFlaGxlbihkU3RyLCAnTicpOwogICAgICAg
IHZhciByb3QgID0gKGYgPD0gMSB8fCBzIDw9IDEgfHwgbiA8PSAxKTsKICAgICAgICB2YXIgZ2Vs
YiA9ICFyb3QgJiYgKGYgPT09IDIgfHwgcyA9PT0gMiB8fCBuID09PSAyKTsKICAgICAgICBpZiAo
cm90ICYmIGRpZmYgPCAxNCkgZGVmaXppdDJ3Kys7CiAgICAgICAgZWxzZSBpZiAocm90IHx8IGdl
bGIpIGRlZml6aXQ0dysrOwogICAgfSk7CiAgICBpZiAoZGVmaXppdDJ3ID4gMCkgewogICAgICAg
IGJ0bi5jbGFzc0xpc3QuYWRkKCdiay10YWItZGVmaXppdC0ydycpOwogICAgICAgIGJ0bi50aXRs
ZSA9IGxhYmVsICsgJyDigJQgQWNodHVuZzogJyArIGRlZml6aXQydyArICcgVGFnJyArIChkZWZp
eml0MncgPT09IDEgPyAnJyA6ICdlJykgKyAnIG1pdCBVbnRlcmJlc2V0enVuZyBpbiBkZW4gbsOk
Y2hzdGVuIDE0IFRhZ2VuJzsKICAgIH0gZWxzZSBpZiAoZGVmaXppdDR3ID4gMCkgewogICAgICAg
IGJ0bi5jbGFzc0xpc3QuYWRkKCdiay10YWItZGVmaXppdC00dycpOwogICAgICAgIGJ0bi50aXRs
ZSA9IGxhYmVsICsgJyDigJQgSGlud2VpczogJyArIGRlZml6aXQ0dyArICcgVGFnJyArIChkZWZp
eml0NHcgPT09IDEgPyAnJyA6ICdlJykgKyAnIG1pdCBVbnRlcmJlc2V0enVuZyBpbiBXb2NoZSAz
4oCTNCc7CiAgICB9Cn0KCi8vIFZvcm5hbWVuIGRlcyBha3R1ZWxsZW4gR2VzYW10dmVyYW50d29y
dGxpY2hlbiBlcm1pdHRlbG4uIFN1Y2hyZWloZW5mb2xnZToKLy8gICAxKSBhZG1pbi5mYWNoYXVm
c2ljaHQgIChoYXQgZGllIG1laXN0ZW4gRGV0YWlsLUZlbGRlciwgaW5rbC4gZXhwbGl6aXRlcgov
LyAgICAgIFZvcm5hbWUvTmFjaG5hbWUtVHJlbm51bmcgaW4gRm9ybSB2b24gIlZvcm5hbWUgTmFj
aG5hbWUiKQovLyAgIDIpIGFkbWluLnN1cGVyVXNlciAgICAgKFNVIHNpbmQgZWJlbmZhbGxzIEdl
c2FtdHZlcmFudHdvcnRsaWNoZSwgc3RlaGVuCi8vICAgICAgYWJlciBzZWx0ZW4gaW4gZGVyIEZh
Y2hhdWZzaWNodC1MaXN0ZSkKLy8gICAzKSBwbGFudW5nLnBlcnNvbmVuICAgIChlaWdlbmVyIFBl
cnNvbmFsdmVyd2FsdHVuZ3MtRWludHJhZyDigJQgaGF0Ci8vICAgICAgdHlwaXNjaGVyd2Vpc2Ug
c2F1YmVyIGdldHJlbm50ZSBGZWxkZXIgdm9ybmFtZSAvIG5hbWUpCi8vIEF1cyBhZG1pbi1MaXN0
ZW4tRWludHJhZWdlbiB3aXJkIGRlciBlcnN0ZSBUb2tlbiBhdXMgJ25hbWUnIGdlbm9tbWVuLAov
LyBhdXMgZGVtIFBlcnNvbmVuLUVpbnRyYWcgZGFzIGVjaHRlICd2b3JuYW1lJy1GZWxkIGJldm9y
enVndC4KZXhwb3J0IGZ1bmN0aW9uIGdlc2FtdHZlcmFudHdvcnRsaWNoVm9ybmFtZUVybWl0dGVs
bigpIHsKICAgIHZhciBiID0gKFouYmVudXR6ZXIgfHwgJycpLnRvTG93ZXJDYXNlKCk7CiAgICB2
YXIgYkt1cnogPSBiLnNwbGl0KCdcXCcpLnBvcCgpOwogICAgZnVuY3Rpb24gcGFzc3Qoa2VubnVu
ZykgewogICAgICAgIGlmICgha2VubnVuZykgcmV0dXJuIGZhbHNlOwogICAgICAgIHZhciBrID0g
U3RyaW5nKGtlbm51bmcpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgcmV0dXJuIChrID09PSBiIHx8
IGsgPT09IGJLdXJ6IHx8IGIuZW5kc1dpdGgoJ1xcJyArIGspKTsKICAgIH0KICAgIHZhciBmYSA9
IChaLmFkbWluLmZhY2hhdWZzaWNodCB8fCBbXSkuZmluZChmdW5jdGlvbihmKSB7IHJldHVybiBw
YXNzdChmLm53S2VubnVuZyk7IH0pOwogICAgaWYgKGZhICYmIGZhLm5hbWUpIHJldHVybiBTdHJp
bmcoZmEubmFtZSkudHJpbSgpLnNwbGl0KC9ccysvKVswXTsKICAgIHZhciBzdSA9IChaLmFkbWlu
LnN1cGVyVXNlciB8fCBbXSkuZmluZChmdW5jdGlvbihzKSB7IHJldHVybiBwYXNzdChzLm53S2Vu
bnVuZyk7IH0pOwogICAgaWYgKHN1ICYmIHN1Lm5hbWUpIHJldHVybiBTdHJpbmcoc3UubmFtZSku
dHJpbSgpLnNwbGl0KC9ccysvKVswXTsKICAgIHZhciBwICA9IChaLnBsYW51bmcgJiYgWi5wbGFu
dW5nLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHBwKSB7IHJldHVybiBwYXNzdChwcC5u
d0tlbm51bmcpOyB9KTsKICAgIGlmIChwKSB7CiAgICAgICAgaWYgKHAudm9ybmFtZSkgcmV0dXJu
IFN0cmluZyhwLnZvcm5hbWUpLnRyaW0oKS5zcGxpdCgvXHMrLylbMF07CiAgICAgICAgaWYgKHAu
bmFtZSkgICAgcmV0dXJuIFN0cmluZyhwLm5hbWUpLnRyaW0oKS5zcGxpdCgvXHMrLylbMF07CiAg
ICB9CiAgICByZXR1cm4gJyc7Cn0KCmV4cG9ydCBmdW5jdGlvbiBiZXNldHp1bmdza29udHJvbGxl
UmVuZGVybigpIHsKICAgIGlmICghKFoucmVjaHRlICYmIFoucmVjaHRlLmlzdEdlc2FtdHZlcmFu
dHdvcnRsaWNoKSkgcmV0dXJuOwogICAgdmFyIGFuYWx5c2UgPSBiZXNldHp1bmdzQW5hbHlzZSgp
OwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JrLWtwaS1nZXNhbXQnKS5xdWVyeVNlbGVj
dG9yKCcuYmsta3BpLXphaGwnKS50ZXh0Q29udGVudCA9IGFuYWx5c2UuZ2VzYW10VGFnZTsKICAg
IC8vIEtQSXMgamV0enQgbWl0IDMtU3RhdHVzLUFtcGVsIHN0YXR0IG51ciBkZWZpeml0L29rLiBX
aXIgdmVyd2VuZGVuIGRpZQogICAgLy8gYmVzdGVoZW5kZW4gQ29udGFpbmVyIHdlaXRlciAoYmst
a3BpLWRlZml6aXQgLT4gcm90LCBiay1rcGktb2sgLT4gZ3J1ZW4pCiAgICAvLyB1bmQgZXJnYWVu
emVuIExhYmVsLVRleHQgdmlhIHRpdGxlLgogICAgdmFyIGVsRGVmID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2JrLWtwaS1kZWZpeml0Jyk7CiAgICB2YXIgZWxPayAgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYmsta3BpLW9rJyk7CiAgICBpZiAoZWxEZWYpIHsKICAgICAgICBlbERlZi5x
dWVyeVNlbGVjdG9yKCcuYmsta3BpLXphaGwnKS50ZXh0Q29udGVudCAgPSBhbmFseXNlLnJvdFRh
Z2U7CiAgICAgICAgZWxEZWYucXVlcnlTZWxlY3RvcignLmJrLWtwaS1sYWJlbCcpLnRleHRDb250
ZW50ID0gJ3JvdCAo4omkMSknOwogICAgfQogICAgaWYgKGVsT2spIHsKICAgICAgICBlbE9rLnF1
ZXJ5U2VsZWN0b3IoJy5iay1rcGktemFobCcpLnRleHRDb250ZW50ICA9IGFuYWx5c2UuZ3J1ZW5U
YWdlOwogICAgICAgIGVsT2sucXVlcnlTZWxlY3RvcignLmJrLWtwaS1sYWJlbCcpLnRleHRDb250
ZW50ID0gJ2dyw7xuICjiiaUzKSc7CiAgICB9CgogICAgLy8gUGVyc29lbmxpY2hlIEJlZ3J1ZXNz
dW5nICsgRXJrbGFlcnVuZy4gQW5yZWRlICsgQnJpZWZpbmctQnV0dG9uIGltbWVyCiAgICAvLyBz
aWNodGJhcjsgZGllIGF1c2Z1ZWhybGljaGUgRXJrbGFlcnVuZyBpbiBlaW5lbSBhdWZrbGFwcGJh
cmVuIDxkZXRhaWxzPi4KICAgIHZhciBiZ0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jr
LWJlZ3J1ZXNzdW5nJyk7CiAgICBpZiAoYmdFbCkgewogICAgICAgIHZhciB2b3JuYW1lID0gZ2Vz
YW10dmVyYW50d29ydGxpY2hWb3JuYW1lRXJtaXR0ZWxuKCk7CiAgICAgICAgdmFyIGFucmVkZSA9
IHZvcm5hbWUgPyAoJ0hhbGxvICcgKyBlc2NhcGVIVE1MKHZvcm5hbWUpICsgJyEnKSA6ICdIYWxs
byEnOwogICAgICAgIHZhciBuYXZCZXNMYWJlbCA9IGJlek9kZXIoJ25hdi5iZXNldHp1bmcnLCAn
QmVzZXR6dW5nJyk7CiAgICAgICAgYmdFbC5pbm5lckhUTUwgPQogICAgICAgICAgICAnPGRpdiBj
bGFzcz0iYmstYmVncnVlc3N1bmciPicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJr
LWJlZ3Ita29wZiI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJrLWJlZ3It
YW5yZWRlIj4nICsgYW5yZWRlICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgICAgICc8YnV0
dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiIgaWQ9ImJ0bi1k
ZWZpeml0LWJyaWVmaW5nIj5EZWZpeml0LUJyaWVmaW5nIGFscyBNYWlsIHZvcmJlcmVpdGVuPC9i
dXR0b24+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPHAg
Y2xhc3M9ImJrLWJlZ3ItcXVpY2tpbnRybyI+S2xpY2sgYXVmIGVpbmVuIFRhZyBpbSBLYWxlbmRl
ciB1bnRlbiB6ZWlndCBkaXIgZGllIGVpbmdlcGxhbnRlbiBGw7xocnVuZ3NrcsOkZnRlLiBCZWkg
PHNwYW4gY2xhc3M9ImJrLWJlZ3ItcGlsbCBiay1iZWdyLXBpbGwtcm90Ij5Sb3Q8L3NwYW4+LVRh
Z2VuIHp1c8OkdHpsaWNoIGRpZSBQZXJzb25lbiwgZGllIGR1IHBlcnPDtm5saWNoIGFuc2NocmVp
YmVuIGthbm5zdC48L3A+JyArCiAgICAgICAgICAgICAgICAnPGRldGFpbHMgY2xhc3M9ImJrLWJl
Z3ItZGV0YWlscyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxzdW1tYXJ5Pk1laHIgSW5mb3Mg
enVyIExvZ2lrICZhbXA7IGRlbiBNYWlsLUZ1bmt0aW9uZW48L3N1bW1hcnk+JyArCiAgICAgICAg
ICAgICAgICAgICAgJzxwPkRpZXNlIEFuc2ljaHQgdW5kIGRlciBUYWIgPHN0cm9uZz4nICsgZXNj
YXBlSFRNTChuYXZCZXNMYWJlbCkgKyAnPC9zdHJvbmc+IG9iZW4gaW0gSGVhZGVyIHNpbmQgPHN0
cm9uZz5hdXNzY2hsaWXDn2xpY2ggZsO8ciBkaWNoPC9zdHJvbmc+IGFscyBHZXNhbXR2ZXJhbnR3
b3J0bGljaGUvciBlaW5nZXJpY2h0ZXQg4oCUIHNpZSBzb2xsZW4gZGlyIGRpZSBXYWhybmVobXVu
ZyBkZWluZXIgVmVyYW50d29ydHVuZ3PCrXp1d2Vpc3VuZyBlcmxlaWNodGVybi48L3A+JyArCiAg
ICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJrLWJlZ3ItbGVnZW5kZSI+JyArCiAgICAg
ICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJiay1iZWdyLWVpbnRyYWciPicgKwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJiay1iZWdyLXBpbGwgYmstYmVn
ci1waWxsLXJvdCI+Um90PC9zcGFuPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxz
cGFuPk1pbmRlc3RlbnMgZWluZSBTY2hpY2h0IG1pdCBudXIgPHN0cm9uZz4xIEbDvGhydW5nc2ty
YWZ0PC9zdHJvbmc+IG9kZXIgd2VuaWdlciDigJQga3JpdGlzY2guPC9zcGFuPicgKwogICAgICAg
ICAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2
IGNsYXNzPSJiay1iZWdyLWVpbnRyYWciPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
JzxzcGFuIGNsYXNzPSJiay1iZWdyLXBpbGwgYmstYmVnci1waWxsLWdlbGIiPkdlbGI8L3NwYW4+
JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4+TWluZGVzdGVucyBlaW5lIFNj
aGljaHQgbWl0IDxzdHJvbmc+Z2VuYXUgMjwvc3Ryb25nPiDigJQga2VpbiBQdWZmZXIgZsO8ciBB
dXNmw6RsbGUuPC9zcGFuPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAg
ICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJiay1iZWdyLWVpbnRyYWciPicgKwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJiay1iZWdyLXBpbGwgYmst
YmVnci1waWxsLWdydWVuIj5HcsO8bjwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICc8c3Bhbj5BbGxlIFNjaGljaHRlbiBtaXQgPHN0cm9uZz4zIG9kZXIgbWVocjwvc3Ryb25n
PiBGw7xocnVuZ3NrcsOkZnRlbiDigJQga29tZm9ydGFiZWwgYmVzZXR6dC48L3NwYW4+JyArCiAg
ICAgICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAnPC9k
aXY+JyArCiAgICAgICAgICAgICAgICAgICAgJzxwIGNsYXNzPSJiay1iZWdyLW1haWwiPjxzdHJv
bmc+VGFnIMO2ZmZuZW46PC9zdHJvbmc+IGJlaSBSb3Qgd2VyZGVuIHp1c8OkdHpsaWNoIGRpZSBQ
ZXJzb25lbiBtaXQgPGNvZGU+ZGZyPC9jb2RlPi88Y29kZT53ZnI8L2NvZGU+IChwb3RlbnppZWxs
IHZlcmbDvGdiYXIpIHVuZCBtaXQgU2NodWx1bmdzLUNvZGVzIHdpZSA8Y29kZT5BdUY8L2NvZGU+
Lzxjb2RlPkxHPC9jb2RlPi88Y29kZT5TZW08L2NvZGU+IChudXIgTm90ZmFsbCkgZ2VsaXN0ZXQg
4oCUIEtsaWNrIGF1ZiBlaW5lIFBlcnNvbiDDtmZmbmV0IGVpbmUgcGVyc8O2bmxpY2hlIE1haWwg
aW4gZGVpbmVtIE1haWxwcm9ncmFtbS48L3A+JyArCiAgICAgICAgICAgICAgICAgICAgJzxwIGNs
YXNzPSJiay1iZWdyLW1haWwiPjxzdHJvbmc+RGVmaXppdC1CcmllZmluZy1CdXR0b246PC9zdHJv
bmc+IE91dGxvb2sgbWl0IGVpbmVyIHp1c2FtbWVuZ2VmYXNzdGVuIMOcYmVyc2ljaHQgYWxsZXIg
RsO8aHJ1bmdzLVVudGVyYmVzZXR6dW5nZW4gZGVyIG7DpGNoc3RlbiA0IFdvY2hlbi48L3A+JyAr
CiAgICAgICAgICAgICAgICAnPC9kZXRhaWxzPicgKwogICAgICAgICAgICAnPC9kaXY+JzsKICAg
ICAgICB2YXIgYnRuREIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWRlZml6aXQtYnJp
ZWZpbmcnKTsKICAgICAgICBpZiAoYnRuREIpIGJ0bkRCLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgZGVmaXppdEJyaWVmaW5nT2VmZm5lbik7CiAgICB9CgogICAgLy8gPT09PT0gS2FsZW5kZXIt
QW5zaWNodCA9PT09PQogICAgLy8gV2lyIHplaWdlbiA1IFdvY2hlbi1SZWloZW4gYWIgZGVtIE1v
bnRhZyBkZXIgYWt0dWVsbGVuIFdvY2hlLgogICAgLy8gVGFnZSBWT1IgaGV1dGUgb2RlciBOQUNI
IGhldXRlKzI4IHNpbmQgZ3JhdS9pbmFrdGl2LCBkYXp3aXNjaGVuCiAgICAvLyB3ZXJkZW4gc2ll
IG5hY2ggU3RhdHVzIChyb3QvZ2VsYi9ncnVlbikgZWluZ2VmYWVyYnQgdW5kIHNpbmQga2xpY2ti
YXIuCiAgICB2YXIgaW5oYWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JrLWluaGFsdCcp
OwogICAgdmFyIGhldXRlICA9IG5ldyBEYXRlKCk7IGhldXRlLnNldEhvdXJzKDAsMCwwLDApOwog
ICAgdmFyIGhldXRlU3RyID0gZGF0dW1TdHIoaGV1dGUpOwogICAgdmFyIGVuZGVTdHI7CiAgICB7
CiAgICAgICAgdmFyIGVuZGUgPSBuZXcgRGF0ZShoZXV0ZSk7CiAgICAgICAgZW5kZS5zZXREYXRl
KGVuZGUuZ2V0RGF0ZSgpICsgQktfSE9SSVpPTlRfVEFHRSk7CiAgICAgICAgZW5kZVN0ciA9IGRh
dHVtU3RyKGVuZGUpOwogICAgfQogICAgLy8gTWFwIGRhdHVtIC0+IHRhZ0RhdGVuIChhdXMgYW5h
bHlzZS50YWdlLCBmdWVyIHNjaG5lbGxlbiBadWdyaWZmKQogICAgdmFyIHRhZ01hcCA9IHt9Owog
ICAgYW5hbHlzZS50YWdlLmZvckVhY2goZnVuY3Rpb24odCkgeyB0YWdNYXBbdC5kYXR1bV0gPSB0
OyB9KTsKICAgIC8vIE1vbnRhZyBkaWVzZXIgV29jaGUgYmVzdGltbWVuCiAgICB2YXIgc3RhcnRN
byA9IG5ldyBEYXRlKGhldXRlKTsKICAgIHZhciBkb3cgPSBzdGFydE1vLmdldERheSgpOyAvLyAw
PVNvLCAxPU1vLCAuLi4sIDY9U2EKICAgIHZhciBkaWZmTW8gPSAoZG93ID09PSAwKSA/IC02IDog
KDEgLSBkb3cpOwogICAgc3RhcnRNby5zZXREYXRlKHN0YXJ0TW8uZ2V0RGF0ZSgpICsgZGlmZk1v
KTsKCiAgICB2YXIgbW9OYW1lbiA9IFsnSmFudWFyJywnRmVicnVhcicsJ03DpHJ6JywnQXByaWwn
LCdNYWknLCdKdW5pJywnSnVsaScsJ0F1Z3VzdCcsJ1NlcHRlbWJlcicsJ09rdG9iZXInLCdOb3Zl
bWJlcicsJ0RlemVtYmVyJ107CiAgICB2YXIgaHRtbCA9ICc8ZGl2IGNsYXNzPSJiay1rYWwiPic7
CiAgICAvLyBXb2NoZW50YWctSGVhZGVyIChNby1TbykKICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9
ImJrLWthbC13dC1rb3BmIj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJrLWthbC13dCI+
TW88L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJrLWthbC13dCI+RGk8L2Rpdj4n
ICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJrLWthbC13dCI+TWk8L2Rpdj4nICsKICAgICAg
ICAgICAgJzxkaXYgY2xhc3M9ImJrLWthbC13dCI+RG88L2Rpdj4nICsKICAgICAgICAgICAgJzxk
aXYgY2xhc3M9ImJrLWthbC13dCI+RnI8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9
ImJrLWthbC13dCBiay1rYWwtd3Qtd2UiPlNhPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJiay1rYWwtd3QgYmsta2FsLXd0LXdlIj5TbzwvZGl2PicgKwogICAgICAgICAgICAnPC9k
aXY+JzsKICAgIC8vIDUgV29jaGVuIMOXIDcgVGFnZSA9IDM1IFplbGxlbiDigJQgZGVja3QgMjgg
VGFnZSBIb3Jpem9udCBzaWNoZXIgYWIsCiAgICAvLyBlZ2FsIGFuIHdlbGNoZW0gV29jaGVudGFn
IHdpciBzdGFydGVuLgogICAgZm9yICh2YXIgdyA9IDA7IHcgPCA1OyB3KyspIHsKICAgICAgICBo
dG1sICs9ICc8ZGl2IGNsYXNzPSJiay1rYWwtd29jaGUiPic7CiAgICAgICAgZm9yICh2YXIgZCA9
IDA7IGQgPCA3OyBkKyspIHsKICAgICAgICAgICAgdmFyIHRhZyA9IG5ldyBEYXRlKHN0YXJ0TW8p
OwogICAgICAgICAgICB0YWcuc2V0RGF0ZSh0YWcuZ2V0RGF0ZSgpICsgdyAqIDcgKyBkKTsKICAg
ICAgICAgICAgdmFyIHRhZ1MgPSBkYXR1bVN0cih0YWcpOwogICAgICAgICAgICB2YXIgaW1GZW5z
dGVyID0gKHRhZ1MgPj0gaGV1dGVTdHIgJiYgdGFnUyA8IGVuZGVTdHIpOwogICAgICAgICAgICB2
YXIgaXN0SGV1dGUgPSAodGFnUyA9PT0gaGV1dGVTdHIpOwogICAgICAgICAgICB2YXIgaXN0V0Ug
PSAoZCA+PSA1KTsKICAgICAgICAgICAgdmFyIGRhdGEgPSB0YWdNYXBbdGFnU107CiAgICAgICAg
ICAgIHZhciBzdGF0dXNDbHMgPSAnJzsKICAgICAgICAgICAgaWYgKGltRmVuc3RlciAmJiBkYXRh
KSBzdGF0dXNDbHMgPSAnIGJrLWthbC0nICsgZGF0YS5zdGF0dXM7CiAgICAgICAgICAgIGVsc2Ug
c3RhdHVzQ2xzID0gJyBiay1rYWwtYXVzc2VuJzsKICAgICAgICAgICAgaWYgKGlzdEhldXRlKSBz
dGF0dXNDbHMgKz0gJyBiay1rYWwtaGV1dGUnOwogICAgICAgICAgICBpZiAoaXN0V0UpIHN0YXR1
c0NscyArPSAnIGJrLWthbC13ZSc7CiAgICAgICAgICAgIC8vIE1vbmF0c25hbWUgYW0gMS4gYW56
ZWlnZW4sIHNvbnN0IG51ciBaYWhsCiAgICAgICAgICAgIHZhciBsYWJlbCA9ICc8c3BhbiBjbGFz
cz0iYmsta2FsLXRhZ25yIj4nICsgdGFnLmdldERhdGUoKSArICc8L3NwYW4+JzsKICAgICAgICAg
ICAgaWYgKHRhZy5nZXREYXRlKCkgPT09IDEpIGxhYmVsICs9ICc8c3BhbiBjbGFzcz0iYmsta2Fs
LW1vIj4nICsgbW9OYW1lblt0YWcuZ2V0TW9udGgoKV0uc3Vic3RyaW5nKDAsMykgKyAnPC9zcGFu
Pic7CiAgICAgICAgICAgIC8vIFNjaGljaHQtTWluaS1JbmRpa2F0b3JlbiBiZWkgaW1GZW5zdGVy
CiAgICAgICAgICAgIHZhciBtaW5pID0gJyc7CiAgICAgICAgICAgIGlmIChpbUZlbnN0ZXIgJiYg
ZGF0YSkgewogICAgICAgICAgICAgICAgbWluaSA9ICc8c3BhbiBjbGFzcz0iYmsta2FsLW1pbmki
PicgKwogICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iYmsta2FsLW1pbmktemVsbGUg
Ymsta2FsLW1pbmktJyArIGRhdGEuc2NoaWNodGVuLkYuc3RhdHVzICsgJyIgdGl0bGU9IkZyw7xo
c2NoaWNodDogJyArIGRhdGEuc2NoaWNodGVuLkYuaXN0ICsgJyBGayI+RicgKyBkYXRhLnNjaGlj
aHRlbi5GLmlzdCArICc8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNz
PSJiay1rYWwtbWluaS16ZWxsZSBiay1rYWwtbWluaS0nICsgZGF0YS5zY2hpY2h0ZW4uUy5zdGF0
dXMgKyAnIiB0aXRsZT0iU3DDpHRzY2hpY2h0OiAnICsgZGF0YS5zY2hpY2h0ZW4uUy5pc3QgKyAn
IEZrIj5TJyArIGRhdGEuc2NoaWNodGVuLlMuaXN0ICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAg
ICAgICAgICAnPHNwYW4gY2xhc3M9ImJrLWthbC1taW5pLXplbGxlIGJrLWthbC1taW5pLScgKyBk
YXRhLnNjaGljaHRlbi5OLnN0YXR1cyArICciIHRpdGxlPSJOYWNodHNjaGljaHQ6ICcgKyBkYXRh
LnNjaGljaHRlbi5OLmlzdCArICcgRmsiPk4nICsgZGF0YS5zY2hpY2h0ZW4uTi5pc3QgKyAnPC9z
cGFuPicgKwogICAgICAgICAgICAgICAgICAgICc8L3NwYW4+JzsKICAgICAgICAgICAgfQogICAg
ICAgICAgICB2YXIgY2xpY2sgPSBpbUZlbnN0ZXIgPyAnIGRhdGEtYWt0aW9uPSJiay10YWciIGRh
dGEtZGF0dW09IicgKyBlc2NhcGVBdHRyKHRhZ1MpICsgJyInIDogJyc7CiAgICAgICAgICAgIGh0
bWwgKz0gJzxkaXYgY2xhc3M9ImJrLWthbC10YWcnICsgc3RhdHVzQ2xzICsgJyInICsgY2xpY2sg
KyAnPicgKwogICAgICAgICAgICAgICAgbGFiZWwgKyBtaW5pICsgJzwvZGl2Pic7CiAgICAgICAg
fQogICAgICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAgICB9CiAgICBodG1sICs9ICc8L2Rpdj4nOwog
ICAgaW5oYWx0LmlubmVySFRNTCA9IGh0bWw7Cn0KCi8vIERlbHRhLVVwZGF0ZSBmdWVyIGVpbmVu
IGVpbnplbG5lbiBUYWcg4oCUIHZlcm1laWRldCBkZW4gdm9sbHN0YWVuZGlnZW4KLy8gaW5uZXJI
VE1MLVJlYnVpbGQgZGVzIDUtV29jaGVuLUthbGVuZGVycyBuYWNoIGplZGVtIFplbGwtRWRpdC4g
V2lyZCBhdXMKLy8gZGVtIEVkaXRvciBhdWZnZXJ1ZmVuLCB3ZW5uIGRlciBQcnVlZnVuZ3MtVGFi
IHNpY2h0YmFyIGlzdC4gQXVmZ2FiZToKLy8gICAxLiBTdGF0dXMtS2xhc3NlIChyb3QvZ2VsYi9n
cnVlbikgZGVyIGVpbmVuIEthY2hlbCBwYXRjaGVuCi8vICAgMi4gTWluaS1JbmRpa2F0b3JlbiBG
L1MvTiBtaXQgZGVuIG5ldWVuIFphZWhsdW5nZW4gYWt0dWFsaXNpZXJlbgovLyAgIDMuIEtQSS1a
YWhsZW4gKGdlc2FtdC9yb3QvZ3J1ZW4pIG5ldSB6YWVobGVuCi8vIFdlbm4gZGVyIFRhYiBuaWUg
Z2VyZW5kZXJ0IHd1cmRlIChrZWluIGJrLWluaGFsdCkgb2RlciBkYXMgRGF0dW0KLy8gYXVzc2Vy
aGFsYiBkZXMgNC1Xb2NoZW4tRmVuc3RlcnMgbGllZ3Q6IG5vLW9wLiBLUEktUmVjb3VudCBudXR6
dAovLyBiZXNldHp1bmdzQW5hbHlzZSgpIOKAlCBkYXMgaXN0IGJpbGxpZyAoTygyOCBUYWdlICog
NDUgUGVyc29uZW4pKSwKLy8gdGV1ZXIgaXN0IGRlciBET00tUmVidWlsZCwgZGVuIHdpciBkYW1p
dCBzcGFyZW4uCmV4cG9ydCBmdW5jdGlvbiBiZXNldHp1bmdza29udHJvbGxlVGFnVXBkYXRlbihk
YXR1bSkgewogICAgaWYgKCEoWi5yZWNodGUgJiYgWi5yZWNodGUuaXN0R2VzYW10dmVyYW50d29y
dGxpY2gpKSByZXR1cm47CiAgICB2YXIgaW5oYWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2JrLWluaGFsdCcpOwogICAgaWYgKCFpbmhhbHQpIHJldHVybjsKICAgIHZhciB0YWdFbCA9IGlu
aGFsdC5xdWVyeVNlbGVjdG9yKCcuYmsta2FsLXRhZ1tkYXRhLWRhdHVtPSInICsgZGF0dW0gKyAn
Il0nKTsKICAgIGlmICghdGFnRWwpIHJldHVybjsgIC8vIGF1c3NlcmhhbGIgZGVzIDQtV29jaGVu
LUZlbnN0ZXJzCgogICAgZnVuY3Rpb24gc2NoaWNodFN0YXR1cyhpc3QpIHsKICAgICAgICBpZiAo
aXN0IDw9IDEpIHJldHVybiAncm90JzsKICAgICAgICBpZiAoaXN0ID09PSAyKSByZXR1cm4gJ2dl
bGInOwogICAgICAgIHJldHVybiAnZ3J1ZW4nOwogICAgfQogICAgZnVuY3Rpb24gdGFnU3RhdHVz
KGYsIHMsIG4pIHsKICAgICAgICBpZiAoZiA8PSAxIHx8IHMgPD0gMSB8fCBuIDw9IDEpIHJldHVy
biAncm90JzsKICAgICAgICBpZiAoZiA9PT0gMiB8fCBzID09PSAyIHx8IG4gPT09IDIpIHJldHVy
biAnZ2VsYic7CiAgICAgICAgcmV0dXJuICdncnVlbic7CiAgICB9CgogICAgdmFyIGYgPSBmdWVo
cnVuZ3NaYWVobGVuKGRhdHVtLCAnRicpOwogICAgdmFyIHMgPSBmdWVocnVuZ3NaYWVobGVuKGRh
dHVtLCAnUycpOwogICAgdmFyIG4gPSBmdWVocnVuZ3NaYWVobGVuKGRhdHVtLCAnTicpOwogICAg
dmFyIHN0ID0gdGFnU3RhdHVzKGYsIHMsIG4pOwoKICAgIHRhZ0VsLmNsYXNzTGlzdC5yZW1vdmUo
J2JrLWthbC1yb3QnLCAnYmsta2FsLWdlbGInLCAnYmsta2FsLWdydWVuJyk7CiAgICB0YWdFbC5j
bGFzc0xpc3QuYWRkKCdiay1rYWwtJyArIHN0KTsKCiAgICB2YXIgbWluaSA9IHRhZ0VsLnF1ZXJ5
U2VsZWN0b3IoJy5iay1rYWwtbWluaScpOwogICAgaWYgKG1pbmkpIHsKICAgICAgICBtaW5pLmlu
bmVySFRNTCA9CiAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iYmsta2FsLW1pbmktemVsbGUgYmst
a2FsLW1pbmktJyArIHNjaGljaHRTdGF0dXMoZikgKyAnIiB0aXRsZT0iRnLDvGhzY2hpY2h0OiAn
ICsgZiArICcgRmsiPkYnICsgZiArICc8L3NwYW4+JyArCiAgICAgICAgICAgICc8c3BhbiBjbGFz
cz0iYmsta2FsLW1pbmktemVsbGUgYmsta2FsLW1pbmktJyArIHNjaGljaHRTdGF0dXMocykgKyAn
IiB0aXRsZT0iU3DDpHRzY2hpY2h0OiAnICsgcyArICcgRmsiPlMnICsgcyArICc8L3NwYW4+JyAr
CiAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iYmsta2FsLW1pbmktemVsbGUgYmsta2FsLW1pbmkt
JyArIHNjaGljaHRTdGF0dXMobikgKyAnIiB0aXRsZT0iTmFjaHRzY2hpY2h0OiAnICsgbiArICcg
RmsiPk4nICsgbiArICc8L3NwYW4+JzsKICAgIH0KCiAgICB2YXIgYW5hbHlzZSA9IGJlc2V0enVu
Z3NBbmFseXNlKCk7CiAgICB2YXIgZ2VzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmst
a3BpLWdlc2FtdCcpOwogICAgdmFyIGRlZkVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jr
LWtwaS1kZWZpeml0Jyk7CiAgICB2YXIgb2tFbCAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Ymsta3BpLW9rJyk7CiAgICBpZiAoZ2VzRWwpIGdlc0VsLnF1ZXJ5U2VsZWN0b3IoJy5iay1rcGkt
emFobCcpLnRleHRDb250ZW50ID0gYW5hbHlzZS5nZXNhbXRUYWdlOwogICAgaWYgKGRlZkVsKSBk
ZWZFbC5xdWVyeVNlbGVjdG9yKCcuYmsta3BpLXphaGwnKS50ZXh0Q29udGVudCA9IGFuYWx5c2Uu
cm90VGFnZTsKICAgIGlmIChva0VsKSAgb2tFbCAucXVlcnlTZWxlY3RvcignLmJrLWtwaS16YWhs
JykudGV4dENvbnRlbnQgPSBhbmFseXNlLmdydWVuVGFnZTsKfQoKLy8gS2xpY2stSGFuZGxlciBm
dWVyIEthbGVuZGVyLVRhZ2UuIEtsaWNrIGF1ZiBlaW5lbiBha3RpdmVuIFRhZyBvZWZmbmV0Ci8v
IGRhcyBEZXRhaWwtTW9kYWwgbWl0IFNjaGljaHQtQXVmc3RlbGx1bmcgKyAoYmVpIHJvdCkgQXVz
aGlsZmUtS2FuZGlkYXRlbi4KZXhwb3J0IGZ1bmN0aW9uIGJlc2V0enVuZ3Nrb250cm9sbGVFdmVu
dHNBdWZoYWVuZ2VuKCkgewogICAgdmFyIGluaGFsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdiay1pbmhhbHQnKTsKICAgIGlmICghaW5oYWx0KSByZXR1cm47CiAgICBpbmhhbHQuYWRkRXZl
bnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIHRhZyA9IGUudGFy
Z2V0LmNsb3Nlc3QoJ1tkYXRhLWFrdGlvbj0iYmstdGFnIl0nKTsKICAgICAgICBpZiAodGFnKSB7
CiAgICAgICAgICAgIHRhZ0RldGFpbE1vZGFsWmVpZ2VuKHRhZy5nZXRBdHRyaWJ1dGUoJ2RhdGEt
ZGF0dW0nKSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9KTsKfQoKLy8gTGll
ZmVydCBkaWUgUGVyc29uZW4sIGRpZSBhbSBnZWdlYmVuZW4gRGF0dW0gZWluZW4gRnJlaS1Db2Rl
IChkZnIsIHdmcikKLy8gZWluZ2V0cmFnZW4gaGFiZW4uIEthbmRpZGF0ZW4gZnVlciBkaWUgUnVu
ZG1haWwuCmV4cG9ydCBmdW5jdGlvbiBmcmVpUGVyc29uZW5GdWVyKGRhdHVtKSB7CiAgICByZXR1
cm4gdmVyZnVlZ2JhcmVQZXJzb25lbkZ1ZXIoZGF0dW0pLmZpbHRlcihmdW5jdGlvbihwKSB7CiAg
ICAgICAgcmV0dXJuIHAua2F0ZWdvcmllID09PSAnZnJlaSc7CiAgICB9KTsKfQoKLy8gUG90ZW50
aWVsbCB2ZXJmdWVnYmFyZSBQZXJzb25lbiBhbSBEYXR1bSDigJQgS2FuZGlkYXRlbiBmdWVyIGRp
ZQovLyBTY2hpY2h0LUF1c2hpbGZlLiBOdXIgRnJlaS1Db2RlcyAoZGZyL3dmcik6IGRpZSBoYWJl
biBhbSBUYWcgb2ZmaXppZWxsCi8vIG5pY2h0cyB2b3IgdW5kIGtvZW5uZW4gdGhlb3JldGlzY2gg
ZWluc3ByaW5nZW4uIFRlcm1pbi1Db2RlcyAoQXVGL0xHLwovLyBTZW0vVHpGL0FaQS9FVE0pIHNp
bmQgdGFnc3VlYmVyIGJsb2NraWVydCB1bmQga29tbWVuIGZ1ZXIgZWluZQovLyBrbGFzc2lzY2hl
IFNjaGljaHQtQXVzaGlsZmUgbmljaHQgaW4gRnJhZ2Ug4oCUIGRpZSB3dXJkZW4gZnJ1ZWhlciBh
bHMKLy8gIk5vdGZhbGwiLUJsb2NrIGFuZ2V6ZWlndCwgd2FzIGltIExpdmUtQmV0cmllYiBtZWhy
IHZlcndpcnJ0IGhhdCBhbHMKLy8gZ2VudXR6dCwgZGFoZXIgMjAyNi0wNS0xOSByYXVzLgpleHBv
cnQgZnVuY3Rpb24gdmVyZnVlZ2JhcmVQZXJzb25lbkZ1ZXIoZGF0dW0pIHsKICAgIHZhciBlID0g
KFoucGxhbnVuZy5laW50cmFlZ2UgfHwge30pW2RhdHVtXSB8fCB7fTsKICAgIHZhciBrb21tZW50
YXJlID0gKChaLnBsYW51bmcua29tbWVudGFyZSB8fCB7fSlbZGF0dW1dKSB8fCB7fTsKICAgIHZh
ciBGUkVJX0NPREVTID0geyBkZnI6IDEsIHdmcjogMSB9OwogICAgdmFyIGxpc3RlID0gW107CiAg
ICAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgICAg
ICBpZiAoIXAuYWt0aXYpIHJldHVybjsKICAgICAgICB2YXIgdyA9IGVbU3RyaW5nKHAuaWQpXSB8
fCAnJzsKICAgICAgICBpZiAoIUZSRUlfQ09ERVNbd10pIHJldHVybjsKICAgICAgICBsaXN0ZS5w
dXNoKHsKICAgICAgICAgICAgaWQ6IHAuaWQsCiAgICAgICAgICAgIG5hbWU6ICgocC52b3JuYW1l
IHx8ICcnKSArICcgJyArIChwLm5hbWUgfHwgJycpKS50cmltKCksCiAgICAgICAgICAgIHZvcm5h
bWU6IHAudm9ybmFtZSB8fCAnJywKICAgICAgICAgICAgd2VydDogdywKICAgICAgICAgICAgZW1h
aWw6IHAuZW1haWwgfHwgJycsCiAgICAgICAgICAgIGtvbW1lbnRhcjoga29tbWVudGFyVGV4dChr
b21tZW50YXJlW1N0cmluZyhwLmlkKV0pLAogICAgICAgICAgICBncnVwcGU6IHAuZ3J1cHBlIHx8
ICcnCiAgICAgICAgfSk7CiAgICB9KTsKICAgIGxpc3RlLnNvcnQoZnVuY3Rpb24oYSwgYikgeyBy
ZXR1cm4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKTsgfSk7CiAgICByZXR1cm4gbGlzdGU7
Cn0KCi8vIEthbmRpZGF0ZW4tUmVzb2x2ZXIgZnVlciBlaW5lIGtvbmtyZXQgdW50ZXJiZXNldHp0
ZSBTY2hpY2h0LgovLyBWSTMtREdMLXF1YWxpZml6aWVydGUgUGVyc29uZW4gYXVzIGRlciB2b3Jn
ZWdlYmVuZW4gRGllbnN0Z3J1cHBlLCBuaWNodAovLyBHZXNhbXR2ZXJhbnR3b3J0bGljaC4gUmV0
dXJucyB6d2VpIEdydXBwZW46Ci8vICAgLmZyZWkgIOKAlCBhbSBUYWcgd2lya2xpY2ggZnJlaSAo
bGVlcmVyIEVpbnRyYWcsIGRmci93ZnIvwqcyMS8yMWEpCi8vICAgLnVtZGlzcG9uaWVyYmFyIOKA
lCBhbSBUYWcgaW4gV0RGIG9kZXIgRkJQIGVpbmdlcGxhbnQgaW4gZGVyc2VsYmVuCi8vICAgICBT
Y2hpY2h0IChGL1MvTik6IGtvZW5uZW4gREdMIHVlYmVybmVobWVuLCBicmF1Y2hlbiBhYmVyIEVy
c2F0eiBmdWVyCi8vICAgICBpaHJlIGJpc2hlcmlnZSBXREYvRkJQLVJvbGxlIChVc2VyLUZlZWRi
YWNrIDIwMjYtMDUtMjMpLgpleHBvcnQgZnVuY3Rpb24gYmVzZXR6dW5nc0thbmRpZGF0ZW5Fcm1p
dHRlbG4oZGF0dW0sIHNjaGljaHRMZXR0ZXIsIGRpZW5zdGdydXBwZSkgewogICAgdmFyIGUgPSAo
Wi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7fSlbZGF0dW1dIHx8IHt9OwogICAgdmFyIEZSRUkgPSB7
ICcnOiAxLCBkZnI6IDEsIHdmcjogMSwgJ8KnMjEnOiAxLCAnMjFhJzogMSB9OwogICAgdmFyIGVy
Z2VibmlzID0geyBmcmVpOiBbXSwgdW1kaXNwb25pZXJiYXI6IFtdIH07CiAgICAoWi5wbGFudW5n
LnBlcnNvbmVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgICAgICBpZiAoIXAuYWt0
aXYpIHJldHVybjsKICAgICAgICBpZiAocC5nZWxvZXNjaHRBbSkgcmV0dXJuOwogICAgICAgIGlm
ICghaXN0RGdsUXVhbGlmaXppZXJ0KHApKSByZXR1cm47CiAgICAgICAgaWYgKGRpZW5zdGdydXBw
ZSAmJiAocC5ncnVwcGUgfHwgJycpICE9PSBkaWVuc3RncnVwcGUpIHJldHVybjsKICAgICAgICBp
ZiAoaXN0R2VzYW10dmVyYW50d29ydGxpY2gocCkpIHJldHVybjsKICAgICAgICB2YXIgdyA9IFN0
cmluZyhlW1N0cmluZyhwLmlkKV0gfHwgJycpOwogICAgICAgIGlmICh3IGluIEZSRUkpIHsKICAg
ICAgICAgICAgZXJnZWJuaXMuZnJlaS5wdXNoKHApOwogICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgfQogICAgICAgIC8vIFVtZGlzcG9uaWVyYmFyOiBQZXJzb24gaXN0IGluIGRlcnNlbGJlbiBT
Y2hpY2h0IEYvUy9OCiAgICAgICAgLy8gZWluZ2VwbGFudCBhbHMgV0RGIG9kZXIgRkJQIC0+IGth
bm4gREdMIHVlYmVybmVobWVuLCB3ZW5uCiAgICAgICAgLy8gamVtYW5kIGFuZGVyZXMgaWhyZSBS
b2xsZSB1ZWJlcm5pbW10LgogICAgICAgIGlmICh3Lmxlbmd0aCA+PSA1ICYmIHcuY2hhckF0KDAp
ID09PSBzY2hpY2h0TGV0dGVyICYmIHcuY2hhckF0KDEpID09PSAnLScpIHsKICAgICAgICAgICAg
dmFyIHJvbGxlID0gdy5zdWJzdHJpbmcoMiwgNSk7CiAgICAgICAgICAgIGlmIChyb2xsZSA9PT0g
J1dERicgfHwgcm9sbGUgPT09ICdGQlAnKSB7CiAgICAgICAgICAgICAgICBlcmdlYm5pcy51bWRp
c3BvbmllcmJhci5wdXNoKHsgcGVyc29uOiBwLCBvcmlnaW5hbENvZGU6IHcsIHJvbGxlOiByb2xs
ZSB9KTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAg
IH0pOwogICAgZnVuY3Rpb24gc29ydEJ5TmFtZShhLCBiKSB7CiAgICAgICAgdmFyIHBhID0gYS5w
ZXJzb24gfHwgYSwgcGIgPSBiLnBlcnNvbiB8fCBiOwogICAgICAgIHZhciBhbiA9ICgocGEudm9y
bmFtZSB8fCAnJykgKyAnICcgKyAocGEubmFtZSB8fCAnJykpLnRyaW0oKTsKICAgICAgICB2YXIg
Ym4gPSAoKHBiLnZvcm5hbWUgfHwgJycpICsgJyAnICsgKHBiLm5hbWUgfHwgJycpKS50cmltKCk7
CiAgICAgICAgcmV0dXJuIGFuLmxvY2FsZUNvbXBhcmUoYm4sICdkZScpOwogICAgfQogICAgZXJn
ZWJuaXMuZnJlaS5zb3J0KHNvcnRCeU5hbWUpOwogICAgZXJnZWJuaXMudW1kaXNwb25pZXJiYXIu
c29ydChzb3J0QnlOYW1lKTsKICAgIHJldHVybiBlcmdlYm5pczsKfQoKLy8gTGVpdGV0IGRpZSBm
dWVyIGVpbmUgU2NoaWNodCByZWxldmFudGUgRGllbnN0Z3J1cHBlIGFiOiBuaW1tdCBkaWUgR3J1
cHBlCi8vIGRlciBiZXJlaXRzIGVpbmdlcGxhbnRlbiBER0wtUGVyc29uZW4uIFdlbm4gbWVocmVy
ZSB1bnRlcnNjaGllZGxpY2hlCi8vIEdydXBwZW4gYW53ZXNlbmQgc2luZCwgd2lyZCBkaWUgZXJz
dGUgZ2Vub21tZW4gKHR5cGlzY2hlcndlaXNlIHNpbmQKLy8gYWxsZSBhbndlc2VuZGVuIERHTCBh
dXMgZGVyc2VsYmVuIFJvdGF0aW9ucy1HcnVwcGUpLiBCZWkgMCBQZXJzb25lbgovLyBpbiBkZXIg
U2NoaWNodCByZXR1cm5zIG51bGwgLT4gS2FuZGlkYXRlbiBrb21tZW4gYXVzIGFsbGVuIEdydXBw
ZW4uCmV4cG9ydCBmdW5jdGlvbiBkaWVuc3RncnVwcGVGdWVyU2NoaWNodChkYXR1bSwgc2NoaWNo
dExldHRlcikgewogICAgdmFyIGZrTGlzdGUgPSBkZ2xzSW5TY2hpY2h0KGRhdHVtLCBzY2hpY2h0
TGV0dGVyKTsKICAgIGlmICghZmtMaXN0ZSB8fCBma0xpc3RlLmxlbmd0aCA9PT0gMCkgcmV0dXJu
IG51bGw7CiAgICByZXR1cm4gZmtMaXN0ZVswXS5ncnVwcGUgfHwgbnVsbDsKfQoKLy8gVGFnLURl
dGFpbC1Nb2RhbCDigJQgZGllIHplbnRyYWxlIEtsaWNrLUFrdGlvbiBpbSBuZXVlbiBLYWxlbmRl
ci4KLy8gWmVpZ3QgZnVlciBkZW4gZ2V3YWVobHRlbiBUYWc6Ci8vICAtIFN0YXR1cyBwcm8gU2No
aWNodCAoQW56YWhsICsgQW1wZWwtRmFyYmUpCi8vICAtIEFsbGUgZWluZ2VwbGFudGVuIEZ1ZWhy
dW5nc2tyYWVmdGUgamUgU2NoaWNodCAoTmFtZSwgRnVua3Rpb24sIENvZGUpCi8vICAtIEJlaSBy
b3QtU3RhdHVzIHp1c2FldHpsaWNoIGRpZSBBdXNoaWxmZS1LYW5kaWRhdGVuIGluIHp3ZWkgQmxv
ZWNrZW4KLy8gICAgKEZyZWkgLyBUZXJtaW4pIOKAlCBLbGljayBhdWYgZWluZSBQZXJzb24gb2Vm
Zm5ldCBlaW5lIHBlcnNvZW5saWNoZQovLyAgICBNYWlsIHBlciBtYWlsdG86LgpleHBvcnQgZnVu
Y3Rpb24gdGFnRGV0YWlsTW9kYWxaZWlnZW4oZGF0dW0pIHsKICAgIHZhciBkID0gbmV3IERhdGUo
ZGF0dW0gKyAnVDAwOjAwOjAwJyk7CiAgICB2YXIgd3QgPSBbJ1Nvbm50YWcnLCdNb250YWcnLCdE
aWVuc3RhZycsJ01pdHR3b2NoJywnRG9ubmVyc3RhZycsJ0ZyZWl0YWcnLCdTYW1zdGFnJ11bZC5n
ZXREYXkoKV07CiAgICB2YXIgZiA9IGZ1ZWhydW5nc1phZWhsZW4oZGF0dW0sICdGJyk7CiAgICB2
YXIgcyA9IGZ1ZWhydW5nc1phZWhsZW4oZGF0dW0sICdTJyk7CiAgICB2YXIgbiA9IGZ1ZWhydW5n
c1phZWhsZW4oZGF0dW0sICdOJyk7CiAgICBmdW5jdGlvbiBzdGF0dXNPZihpc3QpIHsKICAgICAg
ICBpZiAoaXN0IDw9IDEpIHJldHVybiAncm90JzsKICAgICAgICBpZiAoaXN0ID09PSAyKSByZXR1
cm4gJ2dlbGInOwogICAgICAgIHJldHVybiAnZ3J1ZW4nOwogICAgfQogICAgZnVuY3Rpb24gc3Rh
dHVzTGFiZWwoc3QpIHsKICAgICAgICByZXR1cm4gc3QgPT09ICdyb3QnID8gJ2tyaXRpc2NoICji
iaQgMSknIDogc3QgPT09ICdnZWxiJyA/ICdrbmFwcCAoPSAyKScgOiAnZ3V0ICjiiaUgMyknOwog
ICAgfQogICAgdmFyIHRhZ1N0ID0gKGYgPD0gMSB8fCBzIDw9IDEgfHwgbiA8PSAxKSA/ICdyb3Qn
IDoKICAgICAgICAgICAgICAgIChmID09PSAyIHx8IHMgPT09IDIgfHwgbiA9PT0gMikgPyAnZ2Vs
YicgOiAnZ3J1ZW4nOwoKICAgIGZ1bmN0aW9uIHNjaGljaHRCbG9jayhsZXR0ZXIsIG5hbWUpIHsK
ICAgICAgICB2YXIgaXN0ID0gbGV0dGVyID09PSAnRicgPyBmIDogbGV0dGVyID09PSAnUycgPyBz
IDogbjsKICAgICAgICB2YXIgc3QgID0gc3RhdHVzT2YoaXN0KTsKICAgICAgICB2YXIgZmtMaXN0
ZSA9IGRnbHNJblNjaGljaHQoZGF0dW0sIGxldHRlcik7CiAgICAgICAgLy8gSG9lY2hzdHN0dWZl
IChpc3Q9MCkgYmVrb21tdCBlaW5lIHp1c2FldHpsaWNoZSBLbGFzc2UgZnVlcgogICAgICAgIC8v
IHZlcnN0YWVya3RlIHZpc3VlbGxlIFdpcmt1bmcgKFBoYXNlIDYsIDIwMjYtMDUtMjEpLgogICAg
ICAgIHZhciBrcml0aXNjaCA9IChpc3QgPT09IDApID8gJyBiay1kZXRhaWwtc2NoaWNodC1rcml0
aXNjaCcgOiAnJzsKICAgICAgICB2YXIgaHRtbCA9ICc8ZGl2IGNsYXNzPSJiay1kZXRhaWwtc2No
aWNodCBiay1kZXRhaWwtc2NoaWNodC0nICsgc3QgKyBrcml0aXNjaCArICciIGRhdGEtc2NoaWNo
dC1sZXR0ZXI9IicgKyBsZXR0ZXIgKyAnIj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJr
LWRldGFpbC1zY2hpY2h0LWtvcGYiPicgKwogICAgICAgICAgICAgICAgJzxzdHJvbmc+JyArIG5h
bWUgKyAnc2NoaWNodDwvc3Ryb25nPicgKwogICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJi
ay1kZXRhaWwtc2NoaWNodC16YWhsIj4nICsgaXN0ICsgJyBGw7xocnVuZ3NrcsOkZnRlPC9zcGFu
PicgKwogICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJiay1iZWdyLXBpbGwgYmstYmVnci1w
aWxsLScgKyBzdCArICciPicgKyAoaXN0ID09PSAwID8gJ3VuYmVzZXR6dCAoMCknIDogc3RhdHVz
TGFiZWwoc3QpKSArICc8L3NwYW4+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIGlm
IChma0xpc3RlLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNz
PSJiay1kZXRhaWwtbGVlciI+4oCUIG5pZW1hbmQgZWluZ2VwbGFudCDigJQ8L2Rpdj4nOwogICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGh0bWwgKz0gJzx1bCBjbGFzcz0iYmstZGV0YWlsLWZr
LWxpc3RlIj4nOwogICAgICAgICAgICBma0xpc3RlLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAg
ICAgICAgICAgICAgdmFyIGUyID0gKFoucGxhbnVuZy5laW50cmFlZ2UgfHwge30pW2RhdHVtXSB8
fCB7fTsKICAgICAgICAgICAgICAgIHZhciBjb2RlID0gZTJbU3RyaW5nKHAuaWQpXSB8fCAnJzsK
ICAgICAgICAgICAgICAgIHZhciBubSA9ICgocC52b3JuYW1lIHx8ICcnKSArICcgJyArIChwLm5h
bWUgfHwgJycpKS50cmltKCkgfHwgKCdQZXJzb24gJyArIHAuaWQpOwogICAgICAgICAgICAgICAg
dmFyIGZrdCA9IHAuZnVua3Rpb24gPyAoJyDCtyAnICsgZXNjYXBlSFRNTChwLmZ1bmt0aW9uKSkg
OiAnJzsKICAgICAgICAgICAgICAgIHZhciBncnAgPSBwLmdydXBwZSA/ICgnIMK3ICcgKyBlc2Nh
cGVIVE1MKHAuZ3J1cHBlKSkgOiAnJzsKICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxsaT48c3Bh
biBjbGFzcz0iYmstZGV0YWlsLWZrLW5hbWUiPicgKyBlc2NhcGVIVE1MKG5tKSArICc8L3NwYW4+
JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iYmstZGV0YWlsLWZrLW1l
dGEiPicgKyBlc2NhcGVIVE1MKGNvZGUpICsgZmt0ICsgZ3JwICsgJzwvc3Bhbj48L2xpPic7CiAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICBodG1sICs9ICc8L3VsPic7CiAgICAgICAgfQogICAg
ICAgIC8vIFNjaGljaHQtS2FuZGlkYXRlbi1CbG9jayAoUGhhc2UgNiwgMjAyNi0wNS0yMSk6IGJl
aSA8IDIgUGVyc29uZW4gcHJvCiAgICAgICAgLy8gU2NoaWNodCBlcnNjaGVpbnQgaGllciBlaW4g
QnV0dG9uLCBkZXIgZGllIGluIEZyYWdlIGtvbW1lbmRlbgogICAgICAgIC8vIEF1c2hpbGZlbiBh
dWZrbGFwcHQgKERHTC1xdWFsaWZpemllcnQsIGZyZWkgYW0gVGFnLCBnbGVpY2hlCiAgICAgICAg
Ly8gRGllbnN0Z3J1cHBlLCBrZWluZSBHZXNhbXR2ZXJhbnR3b3J0bGljaGVuKS4gSW5saW5lIHN0
YXR0IFN1Yi1Nb2RhbCwKICAgICAgICAvLyBkYW1pdCBkYXMgVGFnLURldGFpbC1Nb2RhbCBuaWNo
dCB1ZWJlcmxhZ2VydCB3aXJkLgogICAgICAgIGlmIChpc3QgPCAyKSB7CiAgICAgICAgICAgIGh0
bWwgKz0gJzxkaXYgY2xhc3M9ImJrLXNjaGljaHQta2FuZGlkYXRlbiIgZGF0YS1zY2hpY2h0LWxl
dHRlcj0iJyArIGxldHRlciArICciPicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gdHlwZT0i
YnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIGJrLWthbmRpZGF0ZW4tdG9nZ2xl
IiBkYXRhLXNjaGljaHQtbGV0dGVyPSInICsgbGV0dGVyICsgJyIgYXJpYS1leHBhbmRlZD0iZmFs
c2UiPicgKwogICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iYmsta2FuZC1sYWJlbCI+
S2FuZGlkYXRlbiBhbnNjaHJlaWJlbjwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICAgICAnPHNw
YW4gY2xhc3M9ImJrLWthbmQtcGZlaWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj7ilr48L3NwYW4+JyAr
CiAgICAgICAgICAgICAgICAnPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFz
cz0iYmsta2FuZGlkYXRlbi1wYW5lbCB2ZXJzdGVja3QiIGRhdGEtc2NoaWNodC1sZXR0ZXI9Iicg
KyBsZXR0ZXIgKyAnIj48L2Rpdj4nICsKICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAgfQog
ICAgICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAgICAgICAgcmV0dXJuIGh0bWw7CiAgICB9CgogICAg
dmFyIGtvZXJwZXIgPSAnPGRpdiBjbGFzcz0iYmstZGV0YWlsLWtvcGYgYmstZGV0YWlsLWtvcGYt
JyArIHRhZ1N0ICsgJyI+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImJrLWRldGFpbC10aXRlbCI+
JyArIGVzY2FwZUhUTUwoZGF0dW1Gb3JtYXRERShkYXR1bSkpICsgJyDCtyAnICsgZXNjYXBlSFRN
TCh3dCkgKyAnPC9kaXY+JyArCiAgICAgICAgJzxzcGFuIGNsYXNzPSJiay1iZWdyLXBpbGwgYmst
YmVnci1waWxsLScgKyB0YWdTdCArICciPlN0YXR1czogJyArIHN0YXR1c0xhYmVsKHRhZ1N0KSAr
ICc8L3NwYW4+JyArCiAgICAgICAgJzwvZGl2Pic7CiAgICBrb2VycGVyICs9ICc8ZGl2IGNsYXNz
PSJiay1kZXRhaWwtc2NoaWNodGVuIj4nOwogICAga29lcnBlciArPSBzY2hpY2h0QmxvY2soJ0Yn
LCAnRnLDvGgnKTsKICAgIGtvZXJwZXIgKz0gc2NoaWNodEJsb2NrKCdTJywgJ1Nww6R0Jyk7CiAg
ICBrb2VycGVyICs9IHNjaGljaHRCbG9jaygnTicsICdOYWNodCcpOwogICAga29lcnBlciArPSAn
PC9kaXY+JzsKCiAgICBpZiAodGFnU3QgPT09ICdyb3QnKSB7CiAgICAgICAgLy8gV2VsY2hlIFNj
aGljaHQgaXN0IGFtIHVudGVyc3Rlbj8gRGllc2UgbmVobWVuIHdpciBhbHMgRGVmaXppdC0KICAg
ICAgICAvLyBTY2hpY2h0IGZ1ZXIgZGllIFNhbW1lbC1NYWlsLiBXZW5uIG1laHJlcmUgZ2xlaWNo
IHNjaGxlY2h0IHNpbmQsCiAgICAgICAgLy8gZ2V3aW5udCBkaWUgZnJ1ZWhlcmUgU2NoaWNodCAo
RiB2b3IgUyB2b3IgTikuCiAgICAgICAgdmFyIGRlZml6aXRTY2hpY2h0ID0gKGYgPD0gcyAmJiBm
IDw9IG4pID8gJ0YnIDogKHMgPD0gbikgPyAnUycgOiAnTic7CiAgICAgICAgdmFyIGRlZml6aXRT
Y2hpY2h0TmFtZSA9IHsgRjogJ0Zyw7xoJywgUzogJ1Nww6R0JywgTjogJ05hY2h0JyB9W2RlZml6
aXRTY2hpY2h0XTsKICAgICAgICB2YXIgdmVyZlBlcnNvbmVuID0gdmVyZnVlZ2JhcmVQZXJzb25l
bkZ1ZXIoZGF0dW0pOwoKICAgICAgICBrb2VycGVyICs9ICc8ZGl2IGNsYXNzPSJiay1kZXRhaWwt
YXVzaGlsZmUiPicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iYmstZGV0YWlsLWF1c2hpbGZl
LWtvcGYiPicgKwogICAgICAgICAgICAgICAgJzxzdHJvbmc+UG90ZW50aWVsbCB2ZXJmw7xnYmFy
PC9zdHJvbmc+IGbDvHIgJyArIGRlZml6aXRTY2hpY2h0TmFtZSArICdzY2hpY2h0IOKAlCAnICsK
ICAgICAgICAgICAgICAgICdQZXJzb25lbiBtaXQgPGNvZGU+ZGZyPC9jb2RlPiBvZGVyIDxjb2Rl
PndmcjwvY29kZT4gYW0gJyArIGVzY2FwZUhUTUwoZGF0dW1Gb3JtYXRERShkYXR1bSkpICsKICAg
ICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAgaWYgKHZlcmZQZXJzb25lbi5sZW5ndGggPT09IDAp
IHsKICAgICAgICAgICAga29lcnBlciArPSAnPGRpdiBjbGFzcz0iYmstZGV0YWlsLWxlZXIiPk5p
ZW1hbmQgaGF0IGFuIGRpZXNlbSBUYWcgPGNvZGU+ZGZyPC9jb2RlPiBvZGVyIDxjb2RlPndmcjwv
Y29kZT4gZWluZ2V0cmFnZW4uPC9kaXY+JzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBr
b2VycGVyICs9ICc8ZGl2IGNsYXNzPSJiay1kZXRhaWwtYXVzaGlsZmUtdG9vbGJhciI+JyArCiAg
ICAgICAgICAgICAgICAnPGxhYmVsIGNsYXNzPSJiay1kZXRhaWwtYWxsZSI+PGlucHV0IHR5cGU9
ImNoZWNrYm94IiBpZD0iYmstYXVzaGlsZmUtYWxsZSIgY2hlY2tlZD4gQWxsZSBtYXJraWVyZW48
L2xhYmVsPicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0i
YnRuIGJ0bi1wcmltYWVyIGJ0bi1rbGVpbiIgaWQ9ImJrLWF1c2hpbGZlLW1haWwiIGRhdGEtZGVm
aXppdD0iJyArIGRlZml6aXRTY2hpY2h0ICsgJyI+JyArCiAgICAgICAgICAgICAgICAgICAgJ01h
aWwgYW4gbWFya2llcnRlIFBlcnNvbmVuIHZvcmJlcmVpdGVuJyArCiAgICAgICAgICAgICAgICAn
PC9idXR0b24+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgICAgICBrb2VycGVyICs9
IGF1c2hpbGZlTGlzdGVIdG1sKHZlcmZQZXJzb25lbiwgZGF0dW0sIGRlZml6aXRTY2hpY2h0KTsK
ICAgICAgICB9CiAgICAgICAga29lcnBlciArPSAnPC9kaXY+JzsKICAgIH0KCiAgICB2YXIgZnVz
cyA9ICc8YnV0dG9uIGNsYXNzPSJidG4iIGlkPSJkbGctYWJicmVjaGVuIiB0eXBlPSJidXR0b24i
PlNjaGxpZcOfZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0
biBidG4tcHJpbWFlciIgaWQ9ImRsZy1zcHJpbmciIHR5cGU9ImJ1dHRvbiI+4oaSIEltIFBsYW4g
enVtIFRhZyBzcHJpbmdlbjwvYnV0dG9uPic7CiAgICBtb2RhbFplaWdlbignVGFnLURldGFpbDog
JyArIGRhdHVtRm9ybWF0REUoZGF0dW0pLCBrb2VycGVyLCBmdXNzLCBudWxsKTsKICAgIC8vIFRh
Zy1EZXRhaWwgYnJhdWNodCBtZWhyIFBsYXR6IGFscyBkYXMgU3RhbmRhcmQtNjIwcHgtTW9kYWw6
IGRyZWkKICAgIC8vIFNjaGljaHQtU3BhbHRlbiArIGdnZi4gYXVmZ2VrbGFwcHRlcyBLYW5kaWRh
dGVuLVBhbmVsIGplIFNjaGljaHQKICAgIC8vIGVyemV1Z2VuIHNvbnN0IGhvcml6b250YWxlIFNj
cm9sbGJhbGtlbiAoSXNzdWUgVVggMjAyNi0wNS0yNCkuCiAgICB2YXIgX21JbmhhbHQgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCcjbW9kYWwtb3ZlcmxheSAubW9kYWwtaW5oYWx0Jyk7CiAgICBp
ZiAoX21JbmhhbHQpIF9tSW5oYWx0LmNsYXNzTGlzdC5hZGQoJ21vZGFsLWluaGFsdC1ncm9zcycp
OwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1hYmJyZWNoZW4nKS5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIG1vZGFsU2NobGllc3Nlbik7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZGxnLXNwcmluZycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7
CiAgICAgICAgbW9kYWxTY2hsaWVzc2VuKCk7CiAgICAgICAgYW5zaWNodFdlY2hzZWxuKCdwbGFu
dW5nJyk7CiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgenVEYXR1bVNjcm9sbGVuKGRh
dHVtKTsgfSwgNTApOwogICAgfSk7CgogICAgLy8gUGhhc2UgNiAoMjAyNi0wNS0yMSk6IFBybyB1
bnRlcmJlc2V0enRlciBTY2hpY2h0IChpc3Q8MikgZ2lidCBlcyBlaW5lbgogICAgLy8gIkthbmRp
ZGF0ZW4gYW5zY2hyZWliZW4iLUJ1dHRvbiBpbSBTY2hpY2h0LUJsb2NrLiBLbGljayBrbGFwcHQg
ZWluZQogICAgLy8gTGlzdGUgREdMLXF1YWxpZml6aWVydGVyIFBlcnNvbmVuIGF1ZiAoZ2xlaWNo
ZSBEaWVuc3RncnVwcGUsIGZyZWkgYW0KICAgIC8vIFRhZywga2VpbmUgR2VzYW10dmVyYW50d29y
dGxpY2hlbikuICJBbnNjaHJlaWJlbiIgc3RhcnRldCBkaWUgTWFpbC0KICAgIC8vIFZvcmJlcmVp
dHVuZyBtaXQgZGVuIGF1c2dld2FlaGx0ZW4gUGVyc29uZW4uCiAgICAvLwogICAgLy8gQXVkaXQt
UGhhc2UgQi4zICgyMDI2LTA1LTIxKTogS2FuZGlkYXRlbiBwcm8gU2NoaWNodCBlaW5tYWwgaW0g
Q2xvc3VyZQogICAgLy8gY2FjaGVuLCBkYW1pdCBBdWYtL1p1a2xhcHBlbiBpbnN0YW50IGlzdCB1
bmQgbmljaHQgamVkZXMgTWFsIGFsbGUKICAgIC8vIFBlcnNvbmVuIGl0ZXJpZXJ0IHdlcmRlbi4K
ICAgIHZhciBrYW5kaWRhdGVuQ2FjaGUgPSB7fTsKICAgIGZ1bmN0aW9uIGthbmRpZGF0ZW5GdWVy
KGxldHRlcikgewogICAgICAgIGlmICgha2FuZGlkYXRlbkNhY2hlW2xldHRlcl0pIHsKICAgICAg
ICAgICAgdmFyIGdydXBwZSA9IGRpZW5zdGdydXBwZUZ1ZXJTY2hpY2h0KGRhdHVtLCBsZXR0ZXIp
OwogICAgICAgICAgICBrYW5kaWRhdGVuQ2FjaGVbbGV0dGVyXSA9IHsKICAgICAgICAgICAgICAg
IGdydXBwZTogZ3J1cHBlLAogICAgICAgICAgICAgICAgbGlzdGU6ICBiZXNldHp1bmdzS2FuZGlk
YXRlbkVybWl0dGVsbihkYXR1bSwgbGV0dGVyLCBncnVwcGUpCiAgICAgICAgICAgIH07CiAgICAg
ICAgfQogICAgICAgIHJldHVybiBrYW5kaWRhdGVuQ2FjaGVbbGV0dGVyXTsKICAgIH0KICAgIHZh
ciBtb2RhbEtvZXJwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwta29lcnBlcicp
OwogICAgaWYgKG1vZGFsS29lcnBlcikgewogICAgICAgIG1vZGFsS29lcnBlci5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KSB7CiAgICAgICAgICAgIHZhciB0b2dnbGUgPSBl
di50YXJnZXQuY2xvc2VzdCgnLmJrLWthbmRpZGF0ZW4tdG9nZ2xlJyk7CiAgICAgICAgICAgIGlm
ICh0b2dnbGUpIHsKICAgICAgICAgICAgICAgIHZhciBsZXR0ZXIgPSB0b2dnbGUuZ2V0QXR0cmli
dXRlKCdkYXRhLXNjaGljaHQtbGV0dGVyJyk7CiAgICAgICAgICAgICAgICB2YXIgcGFuZWwgID0g
bW9kYWxLb2VycGVyLnF1ZXJ5U2VsZWN0b3IoJy5iay1rYW5kaWRhdGVuLXBhbmVsW2RhdGEtc2No
aWNodC1sZXR0ZXI9IicgKyBsZXR0ZXIgKyAnIl0nKTsKICAgICAgICAgICAgICAgIGlmICghcGFu
ZWwpIHJldHVybjsKICAgICAgICAgICAgICAgIHZhciBsYWJlbEVsID0gdG9nZ2xlLnF1ZXJ5U2Vs
ZWN0b3IoJy5iay1rYW5kLWxhYmVsJyk7CiAgICAgICAgICAgICAgICB2YXIgcGZlaWxFbCA9IHRv
Z2dsZS5xdWVyeVNlbGVjdG9yKCcuYmsta2FuZC1wZmVpbCcpOwogICAgICAgICAgICAgICAgaWYg
KHBhbmVsLmNsYXNzTGlzdC5jb250YWlucygndmVyc3RlY2t0JykpIHsKICAgICAgICAgICAgICAg
ICAgICB2YXIgY2FjaGVkID0ga2FuZGlkYXRlbkZ1ZXIobGV0dGVyKTsKICAgICAgICAgICAgICAg
ICAgICBwYW5lbC5pbm5lckhUTUwgPSBrYW5kaWRhdGVuUGFuZWxIdG1sKGNhY2hlZC5saXN0ZSwg
ZGF0dW0sIGxldHRlciwgY2FjaGVkLmdydXBwZSk7CiAgICAgICAgICAgICAgICAgICAgcGFuZWwu
Y2xhc3NMaXN0LnJlbW92ZSgndmVyc3RlY2t0Jyk7CiAgICAgICAgICAgICAgICAgICAgdG9nZ2xl
LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7CiAgICAgICAgICAgICAgICAg
ICAgdG9nZ2xlLmNsYXNzTGlzdC5hZGQoJ2JrLWthbmRpZGF0ZW4tdG9nZ2xlLW9mZmVuJyk7CiAg
ICAgICAgICAgICAgICAgICAgaWYgKGxhYmVsRWwpIGxhYmVsRWwudGV4dENvbnRlbnQgPSAnS2Fu
ZGlkYXRlbiBhdXNibGVuZGVuJzsKICAgICAgICAgICAgICAgICAgICBpZiAocGZlaWxFbCkgcGZl
aWxFbC50ZXh0Q29udGVudCA9ICfilrQnOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICBwYW5lbC5jbGFzc0xpc3QuYWRkKCd2ZXJzdGVja3QnKTsKICAgICAgICAg
ICAgICAgICAgICBwYW5lbC5pbm5lckhUTUwgPSAnJzsKICAgICAgICAgICAgICAgICAgICB0b2dn
bGUuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7CiAgICAgICAgICAgICAg
ICAgICAgdG9nZ2xlLmNsYXNzTGlzdC5yZW1vdmUoJ2JrLWthbmRpZGF0ZW4tdG9nZ2xlLW9mZmVu
Jyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGxhYmVsRWwpIGxhYmVsRWwudGV4dENvbnRlbnQg
PSAnS2FuZGlkYXRlbiBhbnNjaHJlaWJlbic7CiAgICAgICAgICAgICAgICAgICAgaWYgKHBmZWls
RWwpIHBmZWlsRWwudGV4dENvbnRlbnQgPSAn4pa+JzsKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgc2VuZEJ0biA9
IGV2LnRhcmdldC5jbG9zZXN0KCcuYmsta2FuZGlkYXRlbi1zZW5kZW4nKTsKICAgICAgICAgICAg
aWYgKHNlbmRCdG4pIHsKICAgICAgICAgICAgICAgIHZhciBzbCA9IHNlbmRCdG4uZ2V0QXR0cmli
dXRlKCdkYXRhLXNjaGljaHQtbGV0dGVyJyk7CiAgICAgICAgICAgICAgICB2YXIgcDIgPSBtb2Rh
bEtvZXJwZXIucXVlcnlTZWxlY3RvcignLmJrLWthbmRpZGF0ZW4tcGFuZWxbZGF0YS1zY2hpY2h0
LWxldHRlcj0iJyArIHNsICsgJyJdJyk7CiAgICAgICAgICAgICAgICBpZiAoIXAyKSByZXR1cm47
CiAgICAgICAgICAgICAgICB2YXIgYXVzZ2V3YWVobHQgPSBbXTsKICAgICAgICAgICAgICAgIHAy
LnF1ZXJ5U2VsZWN0b3JBbGwoJy5iay1rYW5kaWRhdGVuLWNoaycpLmZvckVhY2goZnVuY3Rpb24o
YykgewogICAgICAgICAgICAgICAgICAgIGlmICghYy5jaGVja2VkKSByZXR1cm47CiAgICAgICAg
ICAgICAgICAgICAgYXVzZ2V3YWVobHQucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGlk
OiAgICAgIGMuZ2V0QXR0cmlidXRlKCdkYXRhLXBpZCcpLAogICAgICAgICAgICAgICAgICAgICAg
ICBlbWFpbDogICBjLmdldEF0dHJpYnV0ZSgnZGF0YS1lbWFpbCcpLAogICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lOiAgICBjLmdldEF0dHJpYnV0ZSgnZGF0YS1uYW1lJyksCiAgICAgICAgICAg
ICAgICAgICAgICAgIHZvcm5hbWU6IGMuZ2V0QXR0cmlidXRlKCdkYXRhLXZvcm5hbWUnKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgdW1kaXM6ICAgYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtdW1kaXMn
KSA9PT0gJzEnCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgICAgIGlmICghYXVzZ2V3YWVobHQubGVuZ3RoKSB7IHRvYXN0KCdLZWluZSBQZXJz
b24gbWFya2llcnQnLCAnd2FybnVuZycpOyByZXR1cm47IH0KICAgICAgICAgICAgICAgIHNhbW1l
bEFuZnJhZ2VNYWlsT2VmZm5lbihhdXNnZXdhZWhsdCwgZGF0dW0sIHNsKTsKICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8vIFNhbW1l
bC1NYWlsIGF1cyBkZW0gQXVzaGlsZmUtQmxvY2s6IE1laHJmYWNoLUF1c3dhaGwgcGVyIENoZWNr
Ym94ICsKICAgIC8vIGVpbiAiQWxsZSBtYXJraWVyZW4iLVRvZ2dsZSArIE1haWwtQnV0dG9uLiBF
aW56ZWwtS2xpY2sgYXVmIGVpbmUKICAgIC8vIFplaWxlIHNldHp0IG51ciBkaWUgQ2hlY2tib3gg
ZGllc2VyIFBlcnNvbiAoYWxsZSBhbmRlcmVuIGF1cykgdW5kCiAgICAvLyBvZWZmbmV0IHNvZm9y
dCBkaWUgTWFpbCDigJQgZGFzIGlzdCBkZXIgc2NobmVsbGUgV2VnIGZ1ZXIgIm51ciBkaWVzZQog
ICAgLy8gZWluZSBQZXJzb24gYW5zY2hyZWliZW4iLgogICAgdmFyIGF1c2hpbGZlRWwgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCcuYmstZGV0YWlsLWF1c2hpbGZlJyk7CiAgICBpZiAoYXVzaGls
ZmVFbCkgewogICAgICAgIHZhciBhbGxlQ2hrID0gYXVzaGlsZmVFbC5xdWVyeVNlbGVjdG9yKCcj
YmstYXVzaGlsZmUtYWxsZScpOwogICAgICAgIHZhciBtYWlsQnRuID0gYXVzaGlsZmVFbC5xdWVy
eVNlbGVjdG9yKCcjYmstYXVzaGlsZmUtbWFpbCcpOwogICAgICAgIGZ1bmN0aW9uIGdldFplaWxl
bigpIHsgcmV0dXJuIGF1c2hpbGZlRWwucXVlcnlTZWxlY3RvckFsbCgnLmJrLWRldGFpbC1hdXNo
aWxmZS16ZWlsZScpOyB9CiAgICAgICAgZnVuY3Rpb24gZ2V0Q2hlY2tib3hlbigpIHsgcmV0dXJu
IGF1c2hpbGZlRWwucXVlcnlTZWxlY3RvckFsbCgnLmJrLWF1c2hpbGZlLWNoazpub3QoOmRpc2Fi
bGVkKScpOyB9CiAgICAgICAgaWYgKGFsbGVDaGspIHsKICAgICAgICAgICAgYWxsZUNoay5hZGRF
dmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGdldENo
ZWNrYm94ZW4oKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsgYy5jaGVja2VkID0gYWxsZUNoay5jaGVj
a2VkOyB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIC8vIEtsaWNrIGF1ZiBk
ZW4gcGVyc29lbmxpY2hlbiBCcmllZi1CdXR0b24gZWluZXIgWmVpbGU6IG51ciBkaWVzZQogICAg
ICAgIC8vIFBlcnNvbiBtYXJraWVyZW4sIGFsbGUgYW5kZXJlbiBkZW1hcmtpZXJlbiwgTWFpbCB2
b3JiZXJlaXRlbi4KICAgICAgICBhdXNoaWxmZUVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg
ZnVuY3Rpb24oZXYpIHsKICAgICAgICAgICAgdmFyIGJ0biA9IGV2LnRhcmdldC5jbG9zZXN0KCdb
ZGF0YS1ha3Rpb249ImJrLW1haWwtemVpbGUiXScpOwogICAgICAgICAgICBpZiAoIWJ0bikgcmV0
dXJuOwogICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICB2YXIgcGlk
ID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1waWQnKTsKICAgICAgICAgICAgZ2V0Q2hlY2tib3hl
bigpLmZvckVhY2goZnVuY3Rpb24oYykgeyBjLmNoZWNrZWQgPSBjLmdldEF0dHJpYnV0ZSgnZGF0
YS1waWQnKSA9PT0gcGlkOyB9KTsKICAgICAgICAgICAgaWYgKGFsbGVDaGspIGFsbGVDaGsuY2hl
Y2tlZCA9IGZhbHNlOwogICAgICAgICAgICBzYW1tZWxNYWlsVm9yYmVyZWl0ZW4oKTsKICAgICAg
ICB9KTsKICAgICAgICBpZiAobWFpbEJ0bikgbWFpbEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGlj
aycsIHNhbW1lbE1haWxWb3JiZXJlaXRlbik7CiAgICAgICAgZnVuY3Rpb24gc2FtbWVsTWFpbFZv
cmJlcmVpdGVuKCkgewogICAgICAgICAgICB2YXIgYXVzZ2V3YWVobHQgPSBbXTsKICAgICAgICAg
ICAgZ2V0Q2hlY2tib3hlbigpLmZvckVhY2goZnVuY3Rpb24oYykgewogICAgICAgICAgICAgICAg
aWYgKCFjLmNoZWNrZWQpIHJldHVybjsKICAgICAgICAgICAgICAgIGF1c2dld2FlaGx0LnB1c2go
ewogICAgICAgICAgICAgICAgICAgIGlkOiBjLmdldEF0dHJpYnV0ZSgnZGF0YS1waWQnKSwKICAg
ICAgICAgICAgICAgICAgICBlbWFpbDogYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtZW1haWwnKSwKICAg
ICAgICAgICAgICAgICAgICBuYW1lOiBjLmdldEF0dHJpYnV0ZSgnZGF0YS1uYW1lJyksCiAgICAg
ICAgICAgICAgICAgICAgdm9ybmFtZTogYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtdm9ybmFtZScpCiAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlmICghYXVzZ2V3
YWVobHQubGVuZ3RoKSB7IHRvYXN0KCdLZWluZSBQZXJzb24gbWFya2llcnQnLCAnd2FybnVuZycp
OyByZXR1cm47IH0KICAgICAgICAgICAgdmFyIGRlZml6aXQgPSBtYWlsQnRuID8gbWFpbEJ0bi5n
ZXRBdHRyaWJ1dGUoJ2RhdGEtZGVmaXppdCcpIDogJ0YnOwogICAgICAgICAgICBzYW1tZWxBbmZy
YWdlTWFpbE9lZmZuZW4oYXVzZ2V3YWVobHQsIGRhdHVtLCBkZWZpeml0KTsKICAgICAgICB9CiAg
ICB9Cn0KCi8vIFJlbmRlcnQgZGFzIEthbmRpZGF0ZW4tUGFuZWwgcHJvIHVudGVyYmVzZXR6dGUg
U2NoaWNodCBpbSBUYWctRGV0YWlsLgovLyBMaXN0ZSBkZXIgREdMLXF1YWxpZml6aWVydGVuIFBl
cnNvbmVuIG1pdCBDaGVja2JveGVuICsgQW5zY2hyZWliZW4tQnV0dG9uLgovLyBXZW5uIGRpZSBM
aXN0ZSBsZWVyIGlzdCwgd2lyZCBlaW4gSGlud2Vpcy1UZXh0IGFuZ2V6ZWlndC4KZnVuY3Rpb24g
a2FuZGlkYXRlblplaWxlSHRtbChwLCBjb2RlLCB1bWRpc3BvbmllcmJhcikgewogICAgdmFyIGhh
dE1haWwgPSAhIXAuZW1haWw7CiAgICB2YXIgZGlzID0gaGF0TWFpbCA/ICcnIDogJyBkaXNhYmxl
ZCB0aXRsZT0iS2VpbmUgRS1NYWlsLUFkcmVzc2UgaGludGVybGVndCInOwogICAgdmFyIGNscyA9
ICdiay1rYW5kaWRhdGVuLXplaWxlJyArIChoYXRNYWlsID8gJycgOiAnIGJrLWthbmRpZGF0ZW4t
a2Vpbi1tYWlsJykgKwogICAgICAgICAgICAgICh1bWRpc3BvbmllcmJhciA/ICcgYmsta2FuZGlk
YXRlbi16ZWlsZS11bWRpcycgOiAnJyk7CiAgICB2YXIgZnVsbE5hbWUgPSAoKHAudm9ybmFtZSB8
fCAnJykgKyAnICcgKyAocC5uYW1lIHx8ICcnKSkudHJpbSgpOwogICAgdmFyIG1ldGFQYXJ0cyA9
IFtdOwogICAgaWYgKHAuZnVua3Rpb24pIG1ldGFQYXJ0cy5wdXNoKGVzY2FwZUhUTUwocC5mdW5r
dGlvbikpOwogICAgaWYgKHAuZ3J1cHBlKSAgIG1ldGFQYXJ0cy5wdXNoKCdHcnVwcGUgJyArIGVz
Y2FwZUhUTUwocC5ncnVwcGUpKTsKICAgIHZhciBtZXRhSHRtbCA9IG1ldGFQYXJ0cy5qb2luKCcg
wrcgJyk7CiAgICAvLyBDb2RlLUJhZGdlIG51ciBmdWVyIFVtZGlzLUJsb2NrIHNpbm52b2xsICh6
ZWlndCBiaXNoZXJpZ2UgV0RGL0ZCUC0KICAgIC8vIEZ1bmt0aW9uIGFuLCBkaWUgZHVyY2ggZGll
IFVtc2V0enVuZyBuZXUgenUgYmVzZXR6ZW4gd2FlcmUpLiBCZWkKICAgIC8vIGZyZWllbiBQZXJz
b25lbiBpc3QgZGVyIENvZGUgaW1tZXIgbGVlciDigJQgZGllIFNwYWx0ZSBoYXQgZGFubiBudXIK
ICAgIC8vIGVpbiAi4oCUIiBnZXplaWd0IHVuZCBkYXMgTGF5b3V0IGdlc3ByZW5ndC4KICAgIHZh
ciBjb2RlQmFkZ2UgPSAodW1kaXNwb25pZXJiYXIgJiYgY29kZSAmJiBjb2RlICE9PSAnJykKICAg
ICAgICA/ICc8c3BhbiBjbGFzcz0iYmsta2FuZGlkYXRlbi1jb2RlIiB0aXRsZT0iQWt0dWVsbCBl
aW5nZXBsYW50ZSBGdW5rdGlvbiDigJQgbXVzcyBiZWkgVW1zZXR6dW5nIG5ldSBiZXNldHp0IHdl
cmRlbiI+JyArIGVzY2FwZUhUTUwoY29kZSkgKyAnPC9zcGFuPicKICAgICAgICA6ICcnOwogICAg
dmFyIGtlaW5NYWlsSGlud2VpcyA9IGhhdE1haWwKICAgICAgICA/ICcnCiAgICAgICAgOiAnPHNw
YW4gY2xhc3M9ImJrLWthbmRpZGF0ZW4td2FybiIgdGl0bGU9IktlaW5lIEUtTWFpbC1BZHJlc3Nl
IGhpbnRlcmxlZ3Qg4oCUIFBlcnNvbiBrYW5uIG5pY2h0IGFuZ2VzY2hyaWViZW4gd2VyZGVuIj7i
mqA8L3NwYW4+JzsKICAgIHJldHVybiAnPGxpIGNsYXNzPSInICsgY2xzICsgJyI+JyArCiAgICAg
ICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImJrLWthbmRpZGF0ZW4tY2hrIicgKwog
ICAgICAgICAgICAnIGRhdGEtcGlkPSInICsgZXNjYXBlQXR0cihTdHJpbmcocC5pZCkpICsgJyIn
ICsKICAgICAgICAgICAgJyBkYXRhLWVtYWlsPSInICsgZXNjYXBlQXR0cihwLmVtYWlsIHx8ICcn
KSArICciJyArCiAgICAgICAgICAgICcgZGF0YS1uYW1lPSInICsgZXNjYXBlQXR0cihwLm5hbWUg
fHwgJycpICsgJyInICsKICAgICAgICAgICAgJyBkYXRhLXZvcm5hbWU9IicgKyBlc2NhcGVBdHRy
KHAudm9ybmFtZSB8fCAnJykgKyAnIicgKwogICAgICAgICAgICAnIGRhdGEtdW1kaXM9IicgKyAo
dW1kaXNwb25pZXJiYXIgPyAnMScgOiAnMCcpICsgJyInICsKICAgICAgICAgICAgKGhhdE1haWwg
PyAnIGNoZWNrZWQnIDogJycpICsgZGlzICsgJz4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iYmst
a2FuZGlkYXRlbi10ZXh0Ij4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImJrLWthbmRpZGF0
ZW4tbmFtZSI+JyArIGVzY2FwZUhUTUwoZnVsbE5hbWUpICsga2Vpbk1haWxIaW53ZWlzICsgJzwv
ZGl2PicgKwogICAgICAgICAgICAobWV0YUh0bWwgPyAnPGRpdiBjbGFzcz0iYmsta2FuZGlkYXRl
bi1tZXRhIj4nICsgbWV0YUh0bWwgKyAnPC9kaXY+JyA6ICcnKSArCiAgICAgICAgJzwvZGl2Picg
KwogICAgICAgIGNvZGVCYWRnZSArCiAgICAnPC9saT4nOwp9CgpmdW5jdGlvbiBrYW5kaWRhdGVu
UGFuZWxIdG1sKGthbmRpZGF0ZW4sIGRhdHVtLCBzY2hpY2h0TGV0dGVyLCBkaWVuc3RncnVwcGUp
IHsKICAgIHZhciBncnBJbmZvID0gZGllbnN0Z3J1cHBlID8gKCcgKERpZW5zdGdydXBwZSAnICsg
ZXNjYXBlSFRNTChkaWVuc3RncnVwcGUpICsgJyknKSA6ICcgKGFsbGUgRGllbnN0Z3J1cHBlbiDi
gJQgU2NoaWNodCBha3R1ZWxsIHVuYmVzZXR6dCknOwogICAgdmFyIGZyZWkgPSAoa2FuZGlkYXRl
biAmJiBrYW5kaWRhdGVuLmZyZWkpIHx8IFtdOwogICAgdmFyIHVtZGlzID0gKGthbmRpZGF0ZW4g
JiYga2FuZGlkYXRlbi51bWRpc3BvbmllcmJhcikgfHwgW107CiAgICBpZiAoZnJlaS5sZW5ndGgg
KyB1bWRpcy5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImJrLWth
bmRpZGF0ZW4tbGVlciI+S2VpbmUgVkkzLURHTC1xdWFsaWZpemllcnRlbiBLYW5kaWRhdGVuIHZl
cmbDvGdiYXInICsgZ3JwSW5mbyArICcuPC9kaXY+JzsKICAgIH0KICAgIHZhciBodG1sID0gJyc7
CiAgICBpZiAoZnJlaS5sZW5ndGgpIHsKICAgICAgICB2YXIgZnJlaVplaWxlbiA9IGZyZWkubWFw
KGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAgdmFyIGUgPSAoWi5wbGFudW5nLmVpbnRyYWVnZSB8
fCB7fSlbZGF0dW1dIHx8IHt9OwogICAgICAgICAgICB2YXIgdyA9IFN0cmluZyhlW1N0cmluZyhw
LmlkKV0gfHwgJycpOwogICAgICAgICAgICByZXR1cm4ga2FuZGlkYXRlblplaWxlSHRtbChwLCB3
LCBmYWxzZSk7CiAgICAgICAgfSkuam9pbignJyk7CiAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFz
cz0iYmsta2FuZGlkYXRlbi1oaW53ZWlzIj5GcmVpIGFtIFRhZyDigJQgVkkzLURHTC1xdWFsaWZp
emllcnQnICsgZ3JwSW5mbyArICc6PC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPHVsIGNsYXNz
PSJiay1rYW5kaWRhdGVuLWxpc3RlIj4nICsgZnJlaVplaWxlbiArICc8L3VsPic7CiAgICB9CiAg
ICBpZiAodW1kaXMubGVuZ3RoKSB7CiAgICAgICAgdmFyIHVtZGlzWmVpbGVuID0gdW1kaXMubWFw
KGZ1bmN0aW9uKHUpIHsKICAgICAgICAgICAgcmV0dXJuIGthbmRpZGF0ZW5aZWlsZUh0bWwodS5w
ZXJzb24sIHUub3JpZ2luYWxDb2RlLCB0cnVlKTsKICAgICAgICB9KS5qb2luKCcnKTsKICAgICAg
ICBodG1sICs9ICc8ZGl2IGNsYXNzPSJiay1rYW5kaWRhdGVuLWhpbndlaXMgYmsta2FuZGlkYXRl
bi1oaW53ZWlzLXVtZGlzIj4nICsKICAgICAgICAgICAgICAgICAgICAnQXVzIFdERi9GQlAgdW1k
aXNwb25pZXJiYXIg4oCUIFZJMy1ER0wtcXVhbGlmaXppZXJ0LCBha3R1ZWxsIGluIGRlcnNlbGJl
biBTY2hpY2h0IGVpbmdlcGxhbnQ6JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAg
ICAgICAgICAgICAnPGRpdiBjbGFzcz0iYmsta2FuZGlkYXRlbi13YXJudW5nIj4nICsKICAgICAg
ICAgICAgICAgICAgICAnV2VubiBlaW5lIGRpZXNlciBQZXJzb25lbiBkaWUgREdMLUZ1bmt0aW9u
IMO8YmVybmltbXQsIG11c3MgaWhyZSBiaXNoZXJpZ2UgRnVua3Rpb24gKFdERi9GQlApICcgKwog
ICAgICAgICAgICAgICAgICAgICdkdXJjaCBlaW5lIGFuZGVyZSBQZXJzb24gZXJzZXR6dCB3ZXJk
ZW4uIEZvbGdlLVBsYW51bmcgaW0gQXVnZSBiZWhhbHRlbi4nICsKICAgICAgICAgICAgICAgICc8
L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8dWwgY2xhc3M9ImJrLWthbmRpZGF0ZW4tbGlzdGUi
PicgKyB1bWRpc1plaWxlbiArICc8L3VsPic7CiAgICB9CiAgICByZXR1cm4gaHRtbCArCiAgICAg
ICAgJzxkaXYgY2xhc3M9ImJrLWthbmRpZGF0ZW4tYWt0aW9uZW4iPicgKwogICAgICAgICAgICAn
PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hZXIgYnRuLWtsZWluIGJr
LWthbmRpZGF0ZW4tc2VuZGVuIiBkYXRhLXNjaGljaHQtbGV0dGVyPSInICsgc2NoaWNodExldHRl
ciArICciPicgKwogICAgICAgICAgICAgICAgJ01haWwgYW4gbWFya2llcnRlIEthbmRpZGF0ZW4n
ICsKICAgICAgICAgICAgJzwvYnV0dG9uPicgKwogICAgICAgICc8L2Rpdj4nOwp9CgpmdW5jdGlv
biBhdXNoaWxmZUxpc3RlSHRtbChwZXJzb25lbiwgZGF0dW0sIGRlZml6aXRTY2hpY2h0KSB7CiAg
ICB2YXIgaHRtbCA9ICc8dWwgY2xhc3M9ImJrLWRldGFpbC1hdXNoaWxmZS1saXN0ZSI+JzsKICAg
IHBlcnNvbmVuLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAgICAgIHZhciBoYXRNYWlsID0gISFw
LmVtYWlsOwogICAgICAgIHZhciBwaWQgPSBTdHJpbmcocC5pZCk7CiAgICAgICAgdmFyIGRpcyA9
IGhhdE1haWwgPyAnJyA6ICcgZGlzYWJsZWQgdGl0bGU9IktlaW5lIEUtTWFpbC1BZHJlc3NlIGhp
bnRlcmxlZ3QiJzsKICAgICAgICB2YXIgY2xzRXh0cmEgPSBoYXRNYWlsID8gJycgOiAnIGJrLWRl
dGFpbC1hdXNoaWxmZS1rZWluLW1haWwnOwogICAgICAgIGh0bWwgKz0gJzxsaSBjbGFzcz0iYmst
ZGV0YWlsLWF1c2hpbGZlLXplaWxlJyArIGNsc0V4dHJhICsgJyI+JyArCiAgICAgICAgICAgICc8
aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJiay1hdXNoaWxmZS1jaGsiIGRhdGEtcGlkPSIn
ICsgZXNjYXBlQXR0cihwaWQpICsgJyInICsKICAgICAgICAgICAgICAgICcgZGF0YS1lbWFpbD0i
JyArIGVzY2FwZUF0dHIocC5lbWFpbCB8fCAnJykgKyAnIicgKwogICAgICAgICAgICAgICAgJyBk
YXRhLW5hbWU9IicgKyBlc2NhcGVBdHRyKHAubmFtZSkgKyAnIicgKwogICAgICAgICAgICAgICAg
JyBkYXRhLXZvcm5hbWU9IicgKyBlc2NhcGVBdHRyKHAudm9ybmFtZSkgKyAnIicgKwogICAgICAg
ICAgICAgICAgKGhhdE1haWwgPyAnIGNoZWNrZWQnIDogJycpICsgZGlzICsgJz4nICsKICAgICAg
ICAgICAgJzxzcGFuIGNsYXNzPSJiay1kZXRhaWwtYXVzaGlsZmUtbmFtZSI+JyArIGVzY2FwZUhU
TUwocC5uYW1lKSArICc8L3NwYW4+JyArCiAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iYmstZGV0
YWlsLWF1c2hpbGZlLWNvZGUiPicgKyBlc2NhcGVIVE1MKHAud2VydCkgKyAnPC9zcGFuPicgKwog
ICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImJrLWRldGFpbC1hdXNoaWxmZS1ncnAiPicgKyBlc2Nh
cGVIVE1MKHAuZ3J1cHBlKSArICc8L3NwYW4+JyArCiAgICAgICAgICAgICc8c3BhbiBjbGFzcz0i
YmstZGV0YWlsLWF1c2hpbGZlLWtvbW0iPicgKyBlc2NhcGVIVE1MKHAua29tbWVudGFyKSArICc8
L3NwYW4+JyArCiAgICAgICAgICAgIChoYXRNYWlsCiAgICAgICAgICAgICAgICA/ICc8YnV0dG9u
IHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiBiay1kZXRhaWwtYXVz
aGlsZmUtbWFpbGJ0biIgZGF0YS1ha3Rpb249ImJrLW1haWwtemVpbGUiIGRhdGEtcGlkPSInICsg
ZXNjYXBlQXR0cihwaWQpICsgJyIgdGl0bGU9IlBlcnPDtm5saWNoZSBNYWlsIGFuICcgKyBlc2Nh
cGVBdHRyKHAubmFtZSkgKyAnICgnICsgZXNjYXBlQXR0cihwLmVtYWlsKSArICcpIj5QZXJzw7Zu
bGljaDwvYnV0dG9uPicKICAgICAgICAgICAgICAgIDogJzxzcGFuIGNsYXNzPSJiay1kZXRhaWwt
YXVzaGlsZmUta2Vpbm1haWwiPuKAlCBrZWluZSBFLU1haWwg4oCUPC9zcGFuPicpICsKICAgICAg
ICAgICAgJzwvbGk+JzsKICAgIH0pOwogICAgaHRtbCArPSAnPC91bD4nOwogICAgcmV0dXJuIGh0
bWw7Cn0KCi8vIFNhbW1lbC1BbmZyYWdlLU1haWw6IFdlbm4gbnVyIGVpbmUgUGVyc29uIGF1c2dl
d2FlaGx0IGlzdCwgd2lyZCBkaWUKLy8gTWFpbCBtaXQgcGVyc29lbmxpY2hlciBBbnJlZGUgKFZv
cm5hbWUpIHVuZCBUbzogYW4gZGllc2UgUGVyc29uIGFsbGVpbgovLyB2b3JiZXJlaXRldC4gQmVp
IG1laHJlcmVuIEVtcGZhZW5nZXJuOiBUbzogbGVlciwgQkNDOiBhbGxlLCBBbnJlZGUKLy8gIkhh
bGxvIHp1c2FtbWVuLCIuIFZvcmxhZ2UgYmVzZXR6dW5nc0FuZnJhZ2Ugd2lyZCBpbiBiZWlkZW4g
RmFlbGxlbgovLyBnZW51dHp0LCBtaXQgZGVuc2VsYmVuIFZhcmlhYmxlbiB3aWUgZGllIGFsdGUg
cGVyc29lbmxpY2hlIFZhcmlhbnRlLgpmdW5jdGlvbiBzYW1tZWxBbmZyYWdlTWFpbE9lZmZuZW4o
cGVyc29uZW4sIGRhdHVtLCBzY2hpY2h0TGV0dGVyKSB7CiAgICBpZiAoIXBlcnNvbmVuIHx8ICFw
ZXJzb25lbi5sZW5ndGgpIHJldHVybjsKICAgIHZhciBzY2hpY2h0TmFtZSA9IHsgRjogJ0Zyw7xo
JywgUzogJ1Nww6R0JywgTjogJ05hY2h0JyB9W3NjaGljaHRMZXR0ZXJdIHx8IHNjaGljaHRMZXR0
ZXI7CiAgICB2YXIgaXN0ID0gZnVlaHJ1bmdzWmFlaGxlbihkYXR1bSwgc2NoaWNodExldHRlcik7
CiAgICB2YXIgc29sbCA9IDI7CiAgICB2YXIgZGVmaXppdCA9IE1hdGgubWF4KDAsIHNvbGwgLSBp
c3QpOwogICAgdmFyIHd0ID0gWydTb25udGFnJywnTW9udGFnJywnRGllbnN0YWcnLCdNaXR0d29j
aCcsJ0Rvbm5lcnN0YWcnLCdGcmVpdGFnJywnU2Ftc3RhZyddW25ldyBEYXRlKGRhdHVtICsgJ1Qw
MDowMDowMCcpLmdldERheSgpXTsKCiAgICB2YXIgZWluemVsID0gcGVyc29uZW4ubGVuZ3RoID09
PSAxOwogICAgdmFyIGN0eCA9IHsKICAgICAgICBkYXR1bTogICAgICAgICBkYXR1bUZvcm1hdERF
KGRhdHVtKSwKICAgICAgICB3b2NoZW50YWc6ICAgICB3dCwKICAgICAgICBzY2hpY2h0OiAgICAg
ICBzY2hpY2h0TmFtZSwKICAgICAgICBzY2hpY2h0X2t1cno6ICBzY2hpY2h0TGV0dGVyLAogICAg
ICAgIGlzdDogICAgICAgICAgIGlzdCwKICAgICAgICBzb2xsOiAgICAgICAgICBzb2xsLAogICAg
ICAgIGRlZml6aXQ6ICAgICAgIGRlZml6aXQsCiAgICAgICAgYWJzZW5kZXJfbmFtZTogYWJzZW5k
ZXJOYW1lRXJtaXR0ZWxuKCksCiAgICAgICAgLy8gU2FtbWVsLU1haWw6IGxlZXJlciBWb3JuYW1l
IHd1ZXJkZSAiSGFsbG8gLCIgZXJnZWJlbi4gInp1c2FtbWVuIgogICAgICAgIC8vIGZ1ZWxsdCBk
aWUgQW5yZWRlIHNpbm52b2xsIGZ1ZXIgTWVocmZhY2gtRW1wZmFlbmdlci4KICAgICAgICBlbXBm
YWVuZ2VyX3Zvcm5hbWU6IGVpbnplbCA/IChwZXJzb25lblswXS52b3JuYW1lIHx8IHBlcnNvbmVu
WzBdLm5hbWUpIDogJ3p1c2FtbWVuJywKICAgICAgICBlbXBmYWVuZ2VyX25hbWU6ICAgIGVpbnpl
bCA/IHBlcnNvbmVuWzBdLm5hbWUgOiAnJwogICAgfTsKCiAgICAvLyBad2VpIGdldHJlbm50ZSBW
b3JsYWdlbiBqZSBuYWNoIFBlcnNvbmVuemFobDogJ2Jlc2V0enVuZ3NBbmZyYWdlX2VpbnplbG4n
CiAgICAvLyBiZWkgZ2VuYXUgZWluZW0gRW1wZmFlbmdlciAoRHUtU2luZ3VsYXIpLCAnYmVzZXR6
dW5nc0FuZnJhZ2UnIGJlaQogICAgLy8gbWVocmVyZW4gKFBsdXJhbCAvICJIYWxsbyB6dXNhbW1l
biIpLiBCZWlkZSBzaW5kIGltIEFkbWluIHVudGVyCiAgICAvLyBFLU1haWwtVm9ybGFnZW4gZnJl
aSBlZGl0aWVyYmFyOyBhdXMgZGVtIFRvZ2dsZSAnZW1wZmFlbmdlckltQmNjJyBkZXIKICAgIC8v
IGpld2VpbGlnZW4gVm9ybGFnZSB3aXJkIGFiZ2VsZWl0ZXQsIG9iIGRpZSBBZHJlc3NlbiBpbnMg
QW4tIG9kZXIKICAgIC8vIEJDQy1GZWxkIHdhbmRlcm4uCiAgICB2YXIgdm9ybGFnZW5LZXkgPSBl
aW56ZWwgPyAnYmVzZXR6dW5nc0FuZnJhZ2VfZWluemVsbicgOiAnYmVzZXR6dW5nc0FuZnJhZ2Un
OwoKICAgIC8vIEZhbGxiYWNrLUJvZHkgKGVpbmdlYmF1dGUgRHUtRm9ybSksIGZhbGxzIGRpZSBW
b3JsYWdlIG5pY2h0IGdlem9nZW4KICAgIC8vIHdlcmRlbiBrYW5uIOKAlCB3aXJkIGdsZWljaCBh
dWNoIGZ1ZXIgZGVuIGZlaGxlbmRlbi1Wb3JsYWdlLVBmYWQgZ2VudXR6dC4KICAgIGZ1bmN0aW9u
IGZhbGxiYWNrQmF1ZW4oKSB7CiAgICAgICAgdmFyIGJldHJlZmZGYiA9ICdBdXNoaWxmZSAnICsg
c2NoaWNodE5hbWUgKyAnc2NoaWNodCAnICsgZGF0dW1Gb3JtYXRERShkYXR1bSk7CiAgICAgICAg
dmFyIGFucmVkZSA9IGVpbnplbAogICAgICAgICAgICA/ICdIYWxsbycgKyAocGVyc29uZW5bMF0u
dm9ybmFtZSA/ICcgJyArIHBlcnNvbmVuWzBdLnZvcm5hbWUgOiAnJykgKyAnLCcKICAgICAgICAg
ICAgOiAnSGFsbG8genVzYW1tZW4sJzsKICAgICAgICB2YXIgdGV4dEZiID0gYW5yZWRlICsgJ1xu
XG4nICsKICAgICAgICAgICAgJ2bDvHIgZGllICcgKyBzY2hpY2h0TmFtZSArICdzY2hpY2h0IGFt
ICcgKyBkYXR1bUZvcm1hdERFKGRhdHVtKSArCiAgICAgICAgICAgICcgKCcgKyB3dCArICcpIHNp
bmQgYWt0dWVsbCBudXIgJyArIGlzdCArICcgdm9uICcgKyBzb2xsICsKICAgICAgICAgICAgJyBG
w7xocnVuZ3NrcsOkZnRlbiBlaW5nZXBsYW50LiAnICsKICAgICAgICAgICAgKGVpbnplbAogICAg
ICAgICAgICAgICAgPyAnV8O8cmRlc3QgRHUgYW4gZGVtIFRhZyBhdXNoZWxmZW4ga8O2bm5lbj8n
CiAgICAgICAgICAgICAgICA6ICdLw7ZubnRlIGplbWFuZCB2b24gRXVjaCBhbiBkZW0gVGFnIGF1
c2hlbGZlbj8nKSArCiAgICAgICAgICAgICdcblxuVmllbGUgR3LDvMOfZVxuJyArIGFic2VuZGVy
TmFtZUVybWl0dGVsbigpOwogICAgICAgIHJldHVybiB7IGJldHJlZmY6IGJldHJlZmZGYiwgdGV4
dDogdGV4dEZiIH07CiAgICB9CgogICAgdmFyIGJldHJlZmYsIHRleHQ7CiAgICB2YXIgdm9ybGFn
ZSA9IG51bGw7CiAgICBpZiAoYmVzZXR6dW5nSG9va3MuZW1haWxWb3JsYWdlbkhvbGVuICYmIGJl
c2V0enVuZ0hvb2tzLmVtYWlsVm9ybGFnZUJlZnVlbGxlbikgewogICAgICAgIHZhciBhbGxlVm9y
bGFnZW4gPSBiZXNldHp1bmdIb29rcy5lbWFpbFZvcmxhZ2VuSG9sZW4oKSB8fCB7fTsKICAgICAg
ICB2b3JsYWdlID0gYWxsZVZvcmxhZ2VuW3ZvcmxhZ2VuS2V5XSB8fCBudWxsOwogICAgICAgIC8v
IEJhY2t3YXJkcy1Db21wYXQ6IHdlbm4gZGllIEVpbnplbG4tVmFyaWFudGUgaW4gZGVyIEluc3Rh
bGxhdGlvbgogICAgICAgIC8vIG5vY2ggZmVobHQgKEFkbWluIGhhdCBzaWUgei5CLiBuaWUgZ2Vw
ZmxlZ3QpLCBmYWVsbHQgZGVyIENvZGUgYXVmCiAgICAgICAgLy8gZGllIFNhbW1lbC1Wb3JsYWdl
IHp1cnVlY2sg4oCUIGJlc3NlciBhbHMgbGVlcmUgTWFpbC4KICAgICAgICBpZiAoIXZvcmxhZ2Ug
JiYgZWluemVsKSB2b3JsYWdlID0gYWxsZVZvcmxhZ2VuWydiZXNldHp1bmdzQW5mcmFnZSddIHx8
IG51bGw7CiAgICB9CiAgICBpZiAodm9ybGFnZSAmJiAodm9ybGFnZS5iZXRyZWZmIHx8IHZvcmxh
Z2UudGV4dCkpIHsKICAgICAgICBiZXRyZWZmID0gYmVzZXR6dW5nSG9va3MuZW1haWxWb3JsYWdl
QmVmdWVsbGVuKHZvcmxhZ2UuYmV0cmVmZiB8fCAnJywgY3R4KTsKICAgICAgICB0ZXh0ICAgID0g
YmVzZXR6dW5nSG9va3MuZW1haWxWb3JsYWdlQmVmdWVsbGVuKHZvcmxhZ2UudGV4dCAgICB8fCAn
JywgY3R4KTsKICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIGZiID0gZmFsbGJhY2tCYXVlbigpOwog
ICAgICAgIGJldHJlZmYgPSBmYi5iZXRyZWZmOwogICAgICAgIHRleHQgICAgPSBmYi50ZXh0Owog
ICAgfQoKICAgIC8vIFdlbm4gdW1kaXNwb25pZXJiYXJlIFBlcnNvbmVuICg9IGFrdHVlbGwgaW4g
V0RGL0ZCUCBkZXIgZ2xlaWNoZW4KICAgIC8vIFNjaGljaHQgZWluZ2VwbGFudCkgdW50ZXIgZGVu
IEVtcGZhZW5nZXJuIHNpbmQsIGVpbmVuIEhpbndlaXMgYW5zCiAgICAvLyBNYWlsLUVuZGUgYW5o
YWVuZ2VuIOKAlCBkYW1pdCBkaWUgYW5nZXNjaHJpZWJlbmUgUGVyc29uIHdlaXNzLCBkYXNzCiAg
ICAvLyBzaWUgbmljaHQgImVpbmZhY2ggc28iIGVpbnNwcmluZ2VuIGthbm4sIHNvbmRlcm4gaWhy
ZSBiaXNoZXJpZ2UKICAgIC8vIEZ1bmt0aW9uIG5ldSBiZXNldHp0IHdlcmRlbiBtdXNzLgogICAg
dmFyIGhhdFVtZGlzID0gcGVyc29uZW4uc29tZShmdW5jdGlvbihwKSB7IHJldHVybiBwLnVtZGlz
OyB9KTsKICAgIGlmIChoYXRVbWRpcykgewogICAgICAgIHRleHQgKz0gJ1xuXG5IaW53ZWlzOiBF
aW5pZ2UgZGVyIGFuZ2VzY2hyaWViZW5lbiBQZXJzb25lbiBzaW5kIGFrdHVlbGwgJyArCiAgICAg
ICAgICAgICdhbHMgV0RGIG9kZXIgRkJQIGluIGRlcnNlbGJlbiBTY2hpY2h0IGVpbmdlcGxhbnQu
IFdlciDDvGJlcm5pbW10LCAnICsKICAgICAgICAgICAgJ3NvbGx0ZSBtaXIga3VyeiBCZXNjaGVp
ZCBnZWJlbiDigJQgZGllIGJpc2hlcmlnZSBGdW5rdGlvbiBtdXNzIGRhbm4gJyArCiAgICAgICAg
ICAgICdkdXJjaCBlaW5lIGFuZGVyZSBQZXJzb24gYmVzZXR6dCB3ZXJkZW4uJzsKICAgIH0KCiAg
ICAvLyBNYWlsdG8tQmF1OiBFbXBmYWVuZ2VyLUZlbGQgKEFuIHZzLiBCQ0MpIHdpcmQgYXVzIGRl
bSBWb3JsYWdlbi0KICAgIC8vIFRvZ2dsZSAnZW1wZmFlbmdlckltQmNjJyBiZXN0aW1tdC4gRGVm
YXVsdC1Mb2dpayB3ZW5uIGRpZSBWb3JsYWdlCiAgICAvLyBkZW4gVG9nZ2xlIG5pY2h0IHNldHp0
OiBFaW56ZWwtQWRyZXNzYXQgLT4gQW4gKEJDQyBpc3QgYmVpIDEgUGVyc29uCiAgICAvLyBzaW5u
bG9zKSwgU2FtbWVsIC0+IEJDQyAoRGF0ZW5zY2h1dHopLgogICAgdmFyIGVtYWlscyA9IHBlcnNv
bmVuLm1hcChmdW5jdGlvbihwKSB7IHJldHVybiBwLmVtYWlsOyB9KS5maWx0ZXIoQm9vbGVhbik7
CiAgICB2YXIgYmNjVm9yZ2FiZSA9IHZvcmxhZ2UgJiYgdm9ybGFnZS5lbXBmYWVuZ2VySW1CY2Mg
IT0gbnVsbAogICAgICAgID8gISF2b3JsYWdlLmVtcGZhZW5nZXJJbUJjYwogICAgICAgIDogIWVp
bnplbDsgICAvLyBGYWxsYmFjayBvaG5lIFZvcmxhZ2U6IEVpbnplbD1BbiwgU2FtbWVsPUJDQwog
ICAgdmFyIHVybDsKICAgIGlmIChlbWFpbHMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdXJsID0g
J21haWx0bzonOwogICAgfSBlbHNlIGlmIChiY2NWb3JnYWJlKSB7CiAgICAgICAgdXJsID0gJ21h
aWx0bzo/YmNjPScgKyBlbmNvZGVVUklDb21wb25lbnQoZW1haWxzLmpvaW4oJywnKSk7CiAgICB9
IGVsc2UgewogICAgICAgIHVybCA9ICdtYWlsdG86JyArIGVuY29kZVVSSUNvbXBvbmVudChlbWFp
bHMuam9pbignLCcpKTsKICAgIH0KICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA+PSAwID8g
JyYnIDogJz8nKSArCiAgICAgICAgJ3N1YmplY3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudChiZXRy
ZWZmKSArCiAgICAgICAgJyZib2R5PScgKyBlbmNvZGVVUklDb21wb25lbnQodGV4dCk7CiAgICB3
aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDsKfQoK
### FILE: js/core_api.js | 1087
Ly8gPT09IGNvcmUvYXBpLmpzID09PQovLyBGZXRjaC1XcmFwcGVyIGZ1ZXIgZGllIFZJMy1KU09O
LUFQSS4KCmV4cG9ydCBmdW5jdGlvbiBhcGkocGZhZCwgb3B0KSB7CiAgICByZXR1cm4gZmV0Y2go
cGZhZCwgb3B0IHx8IHt9KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICBpZiAoIXIub2spIHRo
cm93IG5ldyBFcnJvcignSFRUUCAnICsgci5zdGF0dXMpOwogICAgICAgIHJldHVybiByLmpzb24o
KTsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gYXBpUG9zdChwZmFkLCBkYXRlbikgewogICAg
cmV0dXJuIGFwaShwZmFkLCB7IG1ldGhvZDogJ1BPU1QnLCBoZWFkZXJzOiB7ICdDb250ZW50LVR5
cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSwgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0ZW4pIH0p
Owp9CgpleHBvcnQgZnVuY3Rpb24gYXBpUHV0KHBmYWQsIGRhdGVuKSB7CiAgICByZXR1cm4gYXBp
KHBmYWQsIHsgbWV0aG9kOiAnUFVUJywgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxp
Y2F0aW9uL2pzb24nIH0sIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGVuKSB9KTsKfQoKZXhwb3J0
IGZ1bmN0aW9uIGFwaURlbGV0ZShwZmFkKSB7CiAgICByZXR1cm4gYXBpKHBmYWQsIHsgbWV0aG9k
OiAnREVMRVRFJyB9KTsKfQoKLy8gU3RhdHVzICsgQm9keSB6dXJ1ZWNrZ2ViZW4gc3RhdHQgenUg
d2VyZmVuIOKAlCBmdWVyIEVuZHBvaW50cywgZGVyZW4KLy8gTm9uLTJ4eC1BbnR3b3J0ZW4gKHou
Qi4gNDIzID0gbG9ja2VkLCA0MDkgPSBLb25mbGlrdCkgRGF0ZW4gZW50aGFsdGVuLAovLyBkaWUg
ZGVyIEF1ZnJ1ZmVyIGJyYXVjaHQuCmV4cG9ydCBmdW5jdGlvbiBhcGlTYWZlKHBmYWQsIG9wdCkg
ewogICAgcmV0dXJuIGZldGNoKHBmYWQsIG9wdCB8fCB7fSkudGhlbihmdW5jdGlvbihyKSB7CiAg
ICAgICAgcmV0dXJuIHIuanNvbigpLnRoZW4oZnVuY3Rpb24oYm9keSkgeyByZXR1cm4geyBzdGF0
dXM6IHIuc3RhdHVzLCBib2R5OiBib2R5IH07IH0pCiAgICAgICAgICAgIC5jYXRjaChmdW5jdGlv
bigpIHsgcmV0dXJuIHsgc3RhdHVzOiByLnN0YXR1cywgYm9keTogbnVsbCB9OyB9KTsKICAgIH0p
Owp9Cg==
### FILE: js/core_datenLaden.js | 7203
Ly8gPT09IGNvcmUvZGF0ZW5MYWRlbi5qcyA9PT0KLy8gUGVyc29uZW4tQXVmYmF1LCBBZG1pbi1M
aXN0ZW4tTm9ybWFsaXNpZXJ1bmcsICJIZXV0ZSItQmxvY2ssCi8vIEhlYXJ0YmVhdC1Xb3JrZXIg
KyBJbmFrdGl2aXRhZXRzLVRpbWVyLgovLwovLyBkYXRlbkxhZGVuKCkgdW5kIGFkbWluSG90UmVs
b2FkKCkgYmxlaWJlbiB6dW5hZWNoc3QgaW4gYXBwLmpzLCB3ZWlsCi8vIHNpZSBDcm9zcy1Nb2R1
bC1GdW5rdGlvbmVuICh0YWdlRXJ6ZXVnZW4vdGFnSW5mb3NCZXJlY2huZW4gYXVzCi8vIGdyaWQv
cmVuZGVyLCBiZXplaWNobnVuZ2VuQW53ZW5kZW4vYWRtaW5SZW5kZXJuIGF1cyBhZG1pbi9hZG1p
bikKLy8gcnVmZW4sIGRpZSBlcnN0IGluIHNwYWV0ZXJlbiBQaGFzZW4gZXh0cmFoaWVydCB3ZXJk
ZW4uCi8vCi8vIEhvb2tzOiBoZWFydGJlYXRTdGFydGVuIG11c3MgYWRtaW5Ib3RSZWxvYWQgdHJp
Z2dlcm4sIHdlbm4gZGVyCi8vIFdvcmtlciBlaW5lICdhZG1pbi1nZWFlbmRlcnQnLU5hY2hyaWNo
dCBlcmhhZWx0LiBXaXJkIHVlYmVyCi8vIGRhdGVuTGFkZW5Ib29rcyByZWluZ2VoYWVuZ3QuCgpp
bXBvcnQgeyBaIH0gZnJvbSAnLi9jb3JlX3N0YXRlLmpzJzsKCi8vID09PT09IEhvb2tzID09PT09
CgpleHBvcnQgdmFyIGRhdGVuTGFkZW5Ib29rcyA9IHsKICAgIGFkbWluSG90UmVsb2FkOiBudWxs
LAogICAgcGxhbnVuZ0hvdFJlbG9hZDogbnVsbAp9OwoKLy8gPT09PT0gQWRtaW4tTGlzdGVuLU5v
cm1hbGlzaWVydW5nID09PT09CgovLyBMaXN0ZS1GZWxkZXIgaW4gYWRtaW4uanNvbiwgZGllIHVu
dGVyIFBTIDUuMSBkdXJjaCBDb252ZXJ0RnJvbS0vQ29udmVydFRvLUpzb24KLy8gdmVyc2VoZW50
bGljaCBhdWYgRWluemVsLU9iamVrdCBlbnRwYWNrdCB3ZXJkZW4ga29lbm5lbi4gQmVpbSBMYWRl
biBpbiBBcnJheQovLyB6dXJ1ZWNrZnVlaHJlbiwgZGFtaXQgZm9yRWFjaC9maWx0ZXIgbmljaHQg
YXVmIGRpZSBOYXNlIGZhbGxlbi4KZXhwb3J0IHZhciBBRE1JTl9MSVNUX0ZFTERFUiA9IFsnZmVp
ZXJ0YWdlJywnZmVyaWVuJywnc29uZGVydGVybWluZScsJ3NjaGljaHRjb2RlcycsJ2dydXBwZW4n
LCdzdGFuZG9ydGUnLCdmdW5rdGlvbmVuJywnZGllbnN0Z3JhZGUnLCdzdXBlclVzZXInLCdmYWNo
YXVmc2ljaHQnLCdkaXJla3Rpb25zbGVpdHVuZycsJ2Z1ZWhydW5nc3N0ZWxsZScsJ3NjaGljaHRm
b2xnZW4nLCdyb2xsZW4nLCdtaWtyb3RlYW1zJywnc3RhdGlzdGlrS2FjaGVsbicsJ3N0YXRpc3Rp
a0xheW91dCddOwoKZXhwb3J0IGZ1bmN0aW9uIGFkbWluTGlzdGVuTm9ybWFsaXNpZXJlbihhZG0p
IHsKICAgIGlmICghYWRtIHx8IHR5cGVvZiBhZG0gIT09ICdvYmplY3QnKSByZXR1cm4gYWRtOwog
ICAgQURNSU5fTElTVF9GRUxERVIuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICAgICAgdmFyIHYg
PSBhZG1ba107CiAgICAgICAgaWYgKHYgPT0gbnVsbCkgeyBhZG1ba10gPSBbXTsgcmV0dXJuOyB9
CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHJldHVybjsKICAgICAgICAvLyBQUy1FaW56
ZWwtT2JqZWt0IC0+IGluIGVpbmVsZW1lbnRpZ2VzIEFycmF5IHBhY2tlbgogICAgICAgIGlmICh0
eXBlb2YgdiA9PT0gJ29iamVjdCcpIHsKICAgICAgICAgICAgLy8gU29uZGVyZmFsbDogT2JqZWt0
IG1pdCBudW1lcmlzY2hlbiBLZXlzICgwLDEsMiwuLi4pIC0+IFdlcnRlIHNhbW1lbG4KICAgICAg
ICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyh2KTsKICAgICAgICAgICAgdmFyIG51bWVyaXNj
aCA9IGtleXMubGVuZ3RoID4gMCAmJiBrZXlzLmV2ZXJ5KGZ1bmN0aW9uKGspIHsgcmV0dXJuIC9e
XGQrJC8udGVzdChrKTsgfSk7CiAgICAgICAgICAgIGFkbVtrXSA9IG51bWVyaXNjaAogICAgICAg
ICAgICAgICAgPyBrZXlzLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gcGFyc2VJbnQoYSwxMCkt
cGFyc2VJbnQoYiwxMCk7fSkubWFwKGZ1bmN0aW9uKGkpeyByZXR1cm4gdltpXTsgfSkKICAgICAg
ICAgICAgICAgIDogW3ZdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGFkbVtrXSA9IFtd
OwogICAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGFkbTsKfQoKLy8gPT09PT0gUGVyc29uZW4t
QXVmYmF1ID09PT09CgovLyBTb3J0aWVydCBaLnBlcnNvbmVuIHByaW1hZXIgbmFjaCBHcnVwcGVu
LVJlaWhlbmZvbGdlIGF1cyBhZG1pbi5ncnVwcGVuLAovLyBzZWt1bmRhZXIgbmFjaCBwb3NpdGlv
biBpbm5lcmhhbGIgZGVyIEdydXBwZS4gU29uc3Qgd2VyZGVuIEdydXBwZW4gaW4gZGVyCi8vIFBs
YW50YWZlbCBtZWhyZmFjaCBnZXRyZW5udCwgd2VubiBkaWUgcG9zaXRpb24tUmVpaGVuZm9sZ2Ug
c2llIHplcnJlaXNzdC4KZXhwb3J0IGZ1bmN0aW9uIHBlcnNvbmVuTmV1QXVmYmF1ZW4oKSB7CiAg
ICB2YXIgZ3J1cHBlblJhbmcgPSB7fTsKICAgIChaLmFkbWluICYmIFouYWRtaW4uZ3J1cHBlbiB8
fCBbXSkuZm9yRWFjaChmdW5jdGlvbihnLCBpKSB7CiAgICAgICAgaWYgKGcgJiYgZy5uYW1lKSBn
cnVwcGVuUmFuZ1tnLm5hbWVdID0gaTsKICAgIH0pOwogICAgLy8gRnVua3Rpb25zLVdoaXRlbGlz
dCBmdWVyIGRpZSBQbGFudW5nc2Fuc2ljaHQ6IEZ1bmt0aW9uZW4sIGRpZSBpbQogICAgLy8gQWRt
aW4gYXVmICJJbiBQbGFudW5nIHNpY2h0YmFyID0gbmVpbiIgZ2VzZXR6dCBzaW5kLCB3ZXJkZW4g
YXVzCiAgICAvLyBkZXIgUGxhbnRhZmVsIGF1c2dlYmxlbmRldCAoei5CLiBEaWVuc3RzdGVsbGVu
bGVpdHVuZykuIFBlcnNvbmVuCiAgICAvLyBtaXQgc29sY2hlciBGdW5rdGlvbiBibGVpYmVuIGlu
IGRlciBQZXJzb25hbHZlcndhbHR1bmcgYmVzdGVoZW4uCiAgICB2YXIgdmVyc3RlY2t0ZUZ1bmt0
aW9uZW4gPSB7fTsKICAgIChaLmFkbWluICYmIFouYWRtaW4uZnVua3Rpb25lbiB8fCBbXSkuZm9y
RWFjaChmdW5jdGlvbihmKSB7CiAgICAgICAgaWYgKGYgJiYgZi5jb2RlICYmIGYuaW5QbGFudW5n
ID09PSBmYWxzZSkgdmVyc3RlY2t0ZUZ1bmt0aW9uZW5bZi5jb2RlXSA9IHRydWU7CiAgICB9KTsK
ICAgIC8vIEdsZWljaGUgTG9naWsgZnVlciBEaWVuc3RncnVwcGVuOiBncnVwcGUuaW5QbGFudW5n
ID09PSBmYWxzZSBibGVuZGV0CiAgICAvLyBkaWUga29tcGxldHRlIEdydXBwZSAoYWxsZSBQZXJz
b25lbiBkYXJpbikgYXVzIFBsYW51bmcsIFdvY2hlbnBsYW4KICAgIC8vIHVuZCBQZXJzb2VubGlj
aGVtIFBsYW4gYXVzLiBQZXJzb25lbiBibGVpYmVuIHdlaXRlciBpbiBkZXIgUGVyc29uYWwtCiAg
ICAvLyB2ZXJ3YWx0dW5nIHBmbGVnYmFyIHVuZCB0YXVjaGVuIGluIGRlciBTdGF0aXN0aWsgYXVm
LiBGZWhsdCBkYXMgRmVsZAogICAgLy8gKEFsdGRhdGVuKSwgd2lyZCBkaWUgR3J1cHBlIHdpZSBn
ZXdvaG50IGFuZ2V6ZWlndC4KICAgIHZhciB2ZXJzdGVja3RlR3J1cHBlbiA9IHt9OwogICAgKFou
YWRtaW4gJiYgWi5hZG1pbi5ncnVwcGVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGcpIHsKICAg
ICAgICBpZiAoZyAmJiBnLm5hbWUgJiYgZy5pblBsYW51bmcgPT09IGZhbHNlKSB2ZXJzdGVja3Rl
R3J1cHBlbltnLm5hbWVdID0gdHJ1ZTsKICAgIH0pOwogICAgWi5wZXJzb25lbiA9ICgoWi5wbGFu
dW5nICYmIFoucGxhbnVuZy5wZXJzb25lbikgfHwgW10pCiAgICAgICAgLmZpbHRlcihmdW5jdGlv
bihwKSB7CiAgICAgICAgICAgIGlmICghKHAuYWt0aXYgfHwgWi51bWdlc2V0enRlRWluYmxlbmRl
bikpIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgLy8gUHJvLVBlcnNvbiBhdXMgZGVyIFBsYW51
bmcgYXVzZ2VibGVuZGV0IChhbmFsb2cgR3J1cHBlbi9GdW5rdGlvbmVuCiAgICAgICAgICAgIC8v
IGluUGxhbnVuZykuIEdyZWlmdCB1bmFiaGFlbmdpZyB2b20gYWt0aXYvdW1nZXNldHp0LVN0YXR1
cy4KICAgICAgICAgICAgaWYgKHAuaW5QbGFudW5nID09PSBmYWxzZSAmJiAhWi51bWdlc2V0enRl
RWluYmxlbmRlbikgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICBpZiAocC5mdW5rdGlvbiAmJiB2
ZXJzdGVja3RlRnVua3Rpb25lbltwLmZ1bmt0aW9uXSkgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICBpZiAocC5ncnVwcGUgICAmJiB2ZXJzdGVja3RlR3J1cHBlbltwLmdydXBwZV0pICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0pCiAgICAgICAgLnNv
cnQoZnVuY3Rpb24oYSwgYikgewogICAgICAgICAgICB2YXIgckEgPSAoYS5ncnVwcGUgaW4gZ3J1
cHBlblJhbmcpID8gZ3J1cHBlblJhbmdbYS5ncnVwcGVdIDogOTk5OwogICAgICAgICAgICB2YXIg
ckIgPSAoYi5ncnVwcGUgaW4gZ3J1cHBlblJhbmcpID8gZ3J1cHBlblJhbmdbYi5ncnVwcGVdIDog
OTk5OwogICAgICAgICAgICBpZiAockEgIT09IHJCKSByZXR1cm4gckEgLSByQjsKICAgICAgICAg
ICAgcmV0dXJuIChhLnBvc2l0aW9uIHx8IDk5OSkgLSAoYi5wb3NpdGlvbiB8fCA5OTkpOwogICAg
ICAgIH0pOwp9CgovLyA9PT09PSBIZXV0ZS1CbG9jayAobGlua2UgS29wZnNwYWx0ZSkgPT09PT0K
Ci8vIERhdHVtL1dvY2hlbnRhZyBpbiBkZXIgbGlua2VuIEtvcGZzcGFsdGUgKHVlYmVyICJTdGFl
cmtlIERHTCBpbiBWSSAzIikuCmV4cG9ydCBmdW5jdGlvbiBoZXV0ZUJsb2NrQWt0dWFsaXNpZXJl
bigpIHsKICAgIHZhciBkID0gbmV3IERhdGUoKTsKICAgIHZhciB3TmFtZW4gPSBbJ1Nvbm50YWcn
LCdNb250YWcnLCdEaWVuc3RhZycsJ01pdHR3b2NoJywnRG9ubmVyc3RhZycsJ0ZyZWl0YWcnLCdT
YW1zdGFnJ107CiAgICB2YXIgdGFnID0gKGQuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcgOiAnJykgKyBk
LmdldERhdGUoKTsKICAgIHZhciBtb24gPSAoKGQuZ2V0TW9udGgoKSArIDEpIDwgMTAgPyAnMCcg
OiAnJykgKyAoZC5nZXRNb250aCgpICsgMSk7CiAgICB2YXIgZWxEYXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgna2wtaGV1dGUtZGF0dW0nKTsKICAgIHZhciBlbFd0ZyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdrbC1oZXV0ZS13dGFnJyk7CiAgICBpZiAoZWxEYXQpIGVsRGF0LnRleHRD
b250ZW50ID0gdGFnICsgJy4nICsgbW9uICsgJy4nICsgZC5nZXRGdWxsWWVhcigpOwogICAgaWYg
KGVsV3RnKSBlbFd0Zy50ZXh0Q29udGVudCA9IHdOYW1lbltkLmdldERheSgpXTsKfQoKLy8gPT09
PT0gSGVhcnRiZWF0LVdvcmtlciA9PT09PQoKLy8gV2F0Y2hkb2ctU3RyYXRlZ2llIHN0YXR0IGV4
cGxpeml0ZW0gc2VuZEJlYWNvbignL2FwaS9zaHV0ZG93bicpOgovLyAtIGJlZm9yZXVubG9hZC9w
YWdlaGlkZSBmZXVlcm4gYmVpIEY1L1JlZnJlc2ggZWJlbmZhbGxzIHVuZCB3dWVyZGVuCi8vICAg
ZGVuIFNlcnZlciBiZWltIE5ldWxhZGVuIHRvZXRlbi4KLy8gLSBzdGF0dGRlc3NlbiB1ZWJlcm5p
bW10IGRlciAzMC1zLUhlYXJ0YmVhdC1XYXRjaGRvZzogc29sYW5nZSBkZXIKLy8gICBXb3JrZXIg
VGlja3Mgc2VuZGV0LCBsYWV1ZnQgZGVyIFNlcnZlci4gRWNodGVyIFRhYi1DbG9zZSBzdG9wcHQK
Ly8gICBkaWUgVGlja3MsIFNlcnZlciBiZWVuZGV0IHNpY2ggbmFjaCAzMCBzIHZvbiBhbGxlaW4u
CmV4cG9ydCBmdW5jdGlvbiBoZWFydGJlYXRTdGFydGVuKCkgewogICAgdHJ5IHsKICAgICAgICBa
LmhlYXJ0YmVhdFdvcmtlciA9IG5ldyBXb3JrZXIoJ2hlYXJ0YmVhdC13b3JrZXIuanMnKTsKICAg
ICAgICBaLmhlYXJ0YmVhdFdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldikgewogICAgICAg
ICAgICAvLyBEZXIgV29ya2VyIG1lbGRldCwgd2VubiBzaWNoIGFkbWluLmpzb24gc2VydmVyc2Vp
dGlnCiAgICAgICAgICAgIC8vIGdlYWVuZGVydCBoYXQgKGFuZGVyZXIgU1UgaGF0IHdhcyBnZXNw
ZWljaGVydCkuIENsaWVudAogICAgICAgICAgICAvLyBsYWVkdCBBZG1pbi1EYXRlbiArIFJlY2h0
ZSBuZXUgdW5kIHJlbmRlcnQgZGllIE9iZXJmbGFlY2hlCiAgICAgICAgICAgIC8vIHBhc3NlbmQg
bmV1IC0gUm9sbGVud2VjaHNlbCBvaG5lIEY1LgogICAgICAgICAgICBpZiAoZXYuZGF0YSAmJiBl
di5kYXRhLnR5cCA9PT0gJ2FkbWluLWdlYWVuZGVydCcpIHsKICAgICAgICAgICAgICAgIGlmIChk
YXRlbkxhZGVuSG9va3MuYWRtaW5Ib3RSZWxvYWQpIGRhdGVuTGFkZW5Ib29rcy5hZG1pbkhvdFJl
bG9hZCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIHBsYW51bmdWZXJzaW9uIGRlY2t0
IHYuYS4gZWRpdFJlY2h0ZS9zZWhlbi1BZW5kZXJ1bmdlbiBkZXIKICAgICAgICAgICAgLy8gZWln
ZW5lbiBQZXJzb24gYWIgKENoZXJyeS1QaWNrIDFhZWZlMjYgQnVnICMzKS4gTGl2ZS1TeW5jCiAg
ICAgICAgICAgIC8vIHVlYmVyIC9hcGkvcGxhbnVuZy9jaGFuZ2VzIGt1ZW1tZXJ0IHNpY2ggdW0g
WmVsbC0vS29tbWVudGFyLQogICAgICAgICAgICAvLyBVcGRhdGVzIHNlcGFyYXQg4oCUIGhpZXIg
Z2VodCBlcyBudXIgdW0gUmVjaHRlLSB1bmQKICAgICAgICAgICAgLy8gU2ljaHRiYXJrZWl0cy1S
ZWZyZXNoLgogICAgICAgICAgICBpZiAoZXYuZGF0YSAmJiBldi5kYXRhLnR5cCA9PT0gJ3BsYW51
bmctZ2VhZW5kZXJ0JykgewogICAgICAgICAgICAgICAgaWYgKGRhdGVuTGFkZW5Ib29rcy5wbGFu
dW5nSG90UmVsb2FkKSBkYXRlbkxhZGVuSG9va3MucGxhbnVuZ0hvdFJlbG9hZCgpOwogICAgICAg
ICAgICB9CiAgICAgICAgfTsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNp
YmlsaXR5Y2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghZG9jdW1lbnQuaGlk
ZGVuICYmIFouaGVhcnRiZWF0V29ya2VyKSBaLmhlYXJ0YmVhdFdvcmtlci5wb3N0TWVzc2FnZSgn
c2ljaHRiYXInKTsKICAgICAgICB9KTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAvLyBXb3Jr
ZXIgbmljaHQgdmVyZnVlZ2JhciAtIEZhbGxiYWNrIGF1ZiBNYWluLVRocmVhZC1zZXRJbnRlcnZh
bC4KICAgICAgICAvLyBBY2h0dW5nOiBNYWluLVRocmVhZC1UaW1lciB3ZXJkZW4gaW0gSGludGVy
Z3J1bmQtVGFiIGdlZHJvc3NlbHQsCiAgICAgICAgLy8gZGVyIEZhbGxiYWNrIGlzdCBhbHNvIHNj
aHdhZWNoZXIsIGFiZXIgYmVzc2VyIGFscyBuaWNodHMuCiAgICAgICAgWi5oZWFydGJlYXRGYWxs
YmFjayA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBmZXRjaCgnL2FwaS9o
ZWFydGJlYXQnLCB7IG1ldGhvZDogJ1BPU1QnIH0pLmNhdGNoKGZ1bmN0aW9uKCl7fSk7CiAgICAg
ICAgfSwgNTAwMCk7CiAgICB9Cn0K
### FILE: js/core_permissions.js | 21770
Ly8gPT09IGNvcmUvcGVybWlzc2lvbnMuanMgPT09Ci8vIFJvbGxlbi1Nb2RlbGwsIFRhYi1TaWNo
dGJhcmtlaXQsIEltcGVyc29uYXRpb24gKFNVLVRlc3RhbnNpY2h0KSwKLy8gVmVyYmluZGxpY2hr
ZWl0cy1GZW5zdGVyLgovLwovLyBSb2xsZW46IFN1cGVyVXNlciA+IEZhY2hhdWZzaWNodCA+IFJl
Z3VsYWVyLgovLyBaLnJlY2h0ZSBzcGllZ2VsdCBkYXMgL2FwaS9pbmZvLVJlY2h0ZS1PYmpla3Q7
IGJlcmVjaG5lRmFjaGF1ZnNpY2h0UmVjaHRlLwovLyBiZXJlY2huZVJlZ3VsYWVyUmVjaHRlIHNp
bXVsaWVyZW4gZXMgZnVlciBkaWUgSW1wZXJzb25hdGlvbi4KLy8KLy8gSG9va3M6IGltcGVyc29u
YXRlQW53ZW5kZW4gcnVmdCBSZW5kZXItRnVua3Rpb25lbiBhdXMgYW5kZXJlbiBNb2R1bGVuCi8v
IChBZG1pbi9HcmlkL1N0YXRpc3Rpay9CZXNldHp1bmcpLiBEaWUgd2VyZGVuIHVlYmVyIHBlcm1p
c3Npb25Ib29rcwovLyByZWluZ2VoYWVuZ3QsIHdlaWwgRVNNLUltcG9ydHMgZWluZW4gWnlrbHVz
IG9kZXIgbm9jaCBuaWNodCBleHRyYWhpZXJ0ZQovLyBTeW1ib2xlIGJlZGV1dGVuIHd1ZXJkZW4u
CgppbXBvcnQgeyBaIH0gZnJvbSAnLi9jb3JlX3N0YXRlLmpzJzsKCi8vID09PT09IEhvb2tzICh2
b24gYXBwLmpzIGdlc2V0enQ7IG51bGwgPSBBdWZydWZlciB1ZWJlcnNwcmluZ3QgZGVuIEF1ZnJ1
ZikgPT09PT0KCmV4cG9ydCB2YXIgcGVybWlzc2lvbkhvb2tzID0gewogICAgYWRtaW5SZW5kZXJu
OiBudWxsLAogICAga29wZlJlbmRlcm46IG51bGwsCiAgICBzdGF0aXN0aWtSZW5kZXJuOiBudWxs
LAogICAgYmVzZXR6dW5nc2tvbnRyb2xsZVJlbmRlcm46IG51bGwsCiAgICAvLyBHcmlkIGtvbXBs
ZXR0IG5ldSB6ZWljaG5lbiDigJQgbm9ldGlnIG5hY2ggZWluZW0gUmVjaHRlLVdlY2hzZWwKICAg
IC8vIChJbXBlcnNvbmF0aW9uKSwgZGFtaXQgZGllIFplbGwtU3BlcnJlbiAoZ3JpZC16ZWxsZS1n
ZXNwZXJydCkgZGVuCiAgICAvLyBuZXVlbiBFZGl0LUtvbnRleHQgd2lkZXJzcGllZ2Vsbi4KICAg
IGdyaWRSZW5kZXJuOiBudWxsLAogICAgLy8gSG9vayBmdWVyIEFuc2ljaHQtV2VjaHNlbCAoZ3Jp
ZFJlbmRlci1Nb2R1bCksIGRhbWl0IEltcGVyc29uYXRpb24tU3RhcnQKICAgIC8vIGRlbiBVc2Vy
IGF1ZiBkaWUgUGxhbnVuZ3MtQW5zaWNodCBzcHJpbmdlbiBsYXNzZW4ga2Fubi4KICAgIGFuc2lj
aHRXZWNoc2VsbjogbnVsbAp9OwoKLy8gPT09PT0gVGFiLVNpY2h0YmFya2VpdCAoVG9wLUxldmVs
KSA9PT09PQoKLy8gU3VwZXJVc2VyIHNpZWh0IGltbWVyIGFsbGVzLiBGYWNoYXVmc2ljaHQgbnVy
IGRhcywgd2FzIGluCi8vIGFkbWluLmZhY2hhdWZzaWNodFtdLnNlaGVuey4uLn0gYXVmIHRydWUg
c3RlaHQuIFJlZ3VsYWVyZSBVc2VyIHNlaGVuCi8vIG5pY2h0cyBkYXZvbiAtLSBzaWUgYmVoYWx0
ZW4gbnVyIFBsYW51bmcvV29jaGVucGxhbi9QZXJzLiBQbGFuLgoKZXhwb3J0IGZ1bmN0aW9uIGRh
cmZBZG1pblRhYigpIHsgcmV0dXJuICEhKFoucmVjaHRlICYmIChaLnJlY2h0ZS5pc3RTdXBlclVz
ZXIgfHwgKFoucmVjaHRlLmlzdEZhY2hhdWZzaWNodCAmJiBaLnJlY2h0ZS5zZWhlbi5hZG1pbmlz
dHJhdGlvbikpKTsgfQpleHBvcnQgZnVuY3Rpb24gZGFyZlN0YXRpc3RpaygpIHsgcmV0dXJuICEh
KFoucmVjaHRlICYmIChaLnJlY2h0ZS5pc3RTdXBlclVzZXIgfHwgKFoucmVjaHRlLmlzdEZhY2hh
dWZzaWNodCAmJiBaLnJlY2h0ZS5zZWhlbi5zdGF0aXN0aWspKSk7IH0KZXhwb3J0IGZ1bmN0aW9u
IGRhcmZMb2didWNoKCkgICB7IHJldHVybiAhIShaLnJlY2h0ZSAmJiAoWi5yZWNodGUuaXN0U3Vw
ZXJVc2VyIHx8IChaLnJlY2h0ZS5pc3RGYWNoYXVmc2ljaHQgJiYgWi5yZWNodGUuc2VoZW4ubG9n
YnVjaCkpKTsgfQoKLy8gR3JhbnVsYXJlIFN1Yi1TaWNodGJhcmtlaXQgKEZpbmRpbmcgQy45IC8g
U3BlYyBGLjIpOgovLyBTdXBlclVzZXIgb2RlciBNYXAgPT09IG51bGwgIC0+IGFsbGVzIGVybGF1
YnQgKFdpbGRjYXJkKQovLyBNYXAgPT09IHt9ICAgICAgICAgICAgICAgICAgIC0+IG5pY2h0cyBl
cmxhdWJ0IChUYWIgbmljaHQgZnJlaWdlZ2ViZW4pCi8vIE1hcFtrZXldID09PSBmYWxzZSAgICAg
ICAgICAgLT4gZXhwbGl6aXQgdmVyYm9yZ2VuCi8vIE1hcFtrZXldID09PSB0cnVlIC8gbmljaHQg
aW4gLT4gZXJsYXVidCAoRGVmYXVsdCBpc3Qgc2VoZW4sIE5lZ2F0aXYtTGlzdGUpCmV4cG9ydCBm
dW5jdGlvbiBkYXJmQWRtaW5TdWJ0YWIobmFtZSkgewogICAgaWYgKCFaLnJlY2h0ZSkgcmV0dXJu
IGZhbHNlOwogICAgaWYgKFoucmVjaHRlLmlzdFN1cGVyVXNlcikgcmV0dXJuIHRydWU7CiAgICBp
ZiAoIVoucmVjaHRlLnNlaGVuLmFkbWluaXN0cmF0aW9uKSByZXR1cm4gZmFsc2U7CiAgICB2YXIg
bSA9IFoucmVjaHRlLmFkbWluU3VidGFiczsKICAgIGlmIChtID09PSBudWxsIHx8IG0gPT09IHVu
ZGVmaW5lZCkgcmV0dXJuIHRydWU7CiAgICAvLyBOZWdhdGl2LUxpc3RlOiBudXIgZXhwbGl6aXQg
e2tleTpmYWxzZX0gdmVyc3RlY2t0LiBMZWVyZSBNYXAgPSBrZWluZQogICAgLy8gVmVyc3RlY2tl
ciA9IGFsbGVzIHNpY2h0YmFyIChrb25zaXN0ZW50IHp1IGZhY2hhdWZzaWNodFN1YlNpY2h0TGFi
ZWwsCiAgICAvLyBkYXMge30gYWxzICJBbGxlIChTdGFuZGFyZCkiIGFuemVpZ3QpLgogICAgaWYg
KG5hbWUgaW4gbSkgcmV0dXJuICEhbVtuYW1lXTsKICAgIHJldHVybiB0cnVlOwp9CgpleHBvcnQg
ZnVuY3Rpb24gZGFyZlN0YXRpc3Rpa1N1YihuYW1lKSB7CiAgICBpZiAoIVoucmVjaHRlKSByZXR1
cm4gZmFsc2U7CiAgICBpZiAoWi5yZWNodGUuaXN0U3VwZXJVc2VyKSByZXR1cm4gdHJ1ZTsKICAg
IGlmICghWi5yZWNodGUuc2VoZW4uc3RhdGlzdGlrKSByZXR1cm4gZmFsc2U7CiAgICB2YXIgbSA9
IFoucmVjaHRlLnN0YXRpc3Rpa0JlcmVpY2hlOwogICAgaWYgKG0gPT09IG51bGwgfHwgbSA9PT0g
dW5kZWZpbmVkKSByZXR1cm4gdHJ1ZTsKICAgIGlmIChuYW1lIGluIG0pIHJldHVybiAhIW1bbmFt
ZV07CiAgICByZXR1cm4gdHJ1ZTsKfQoKLy8gPT09PT0gUmVjaHRlLU9iamVrdCBhdXMgL2FwaS9p
bmZvIGFibGVpdGVuID09PT09CgovLyBTcGllZ2VsdCBkYXMgL2FwaS9pbmZvLVJlY2h0ZS1PYmpl
a3QgMToxIGluIGRhcyBGb3JtYXQsIG1pdCBkZW0gWi5yZWNodGUKLy8gaW0gQ2xpZW50IGFyYmVp
dGV0LiBFaW56aWdlciBIZWxwZXIsIGRhbWl0IGRhdGVuTGFkZW4oKSB1bmQKLy8gYWRtaW5Ib3RS
ZWxvYWQoKS9wbGFudW5nSG90UmVsb2FkKCkgbmljaHQgYXVzZWluYW5kZXJkcmlmdGVuLgpleHBv
cnQgZnVuY3Rpb24gcmVjaHRlQXVzSW5mbyhpbmZvKSB7CiAgICByZXR1cm4gewogICAgICAgIHJv
bGxlOiAgICAgICAgICAgICAgICAgICBpbmZvLnJvbGxlIHx8ICdyZWd1bGFlcicsCiAgICAgICAg
aXN0U3VwZXJVc2VyOiAgICAgICAgICAgICEhaW5mby5pc3RTdXBlclVzZXIsCiAgICAgICAgaXN0
RmFjaGF1ZnNpY2h0OiAgICAgICAgICEhaW5mby5pc3RGYWNoYXVmc2ljaHQsCiAgICAgICAgLy8g
R2VzYW10dmVyYW50d29ydGxpY2g6IFNVIGltbWVyLCBGYWNoYXVmc2ljaHQgcGVyIEFkbWluLUZs
YWcuCiAgICAgICAgLy8gU3RldWVydCBkZW4gSGVhZGVyLVRhYiAiUHJ1ZWZ1bmciLgogICAgICAg
IGlzdEdlc2FtdHZlcmFudHdvcnRsaWNoOiAhIWluZm8uaXN0R2VzYW10dmVyYW50d29ydGxpY2gs
CiAgICAgICAgc2VoZW46ICAgICAgICAgICAgICAgICAgIGluZm8uc2VoZW4gfHwgeyBhZG1pbmlz
dHJhdGlvbjogZmFsc2UsIHN0YXRpc3RpazogZmFsc2UsIGxvZ2J1Y2g6IGZhbHNlLCBiYWNrdXBz
OiBmYWxzZSB9LAogICAgICAgIC8vIEdyYW51bGFyZSBTdWItU2ljaHRiYXJrZWl0IChTcGVjIEYu
Mik6IG51bGwgPSBTdXBlclVzZXItCiAgICAgICAgLy8gV2lsZGNhcmQgKGFsbGVzIGVybGF1YnQp
LCB7fSA9IG5pY2h0cyBlcmxhdWJ0LCBzb25zdCBNYXAKICAgICAgICAvLyA8c3VidGFifGJlcmVp
Y2g+OiBib29sLiBEZWZhdWx0OiBuaWNodCBpbiBNYXAgPSBlcmxhdWJ0CiAgICAgICAgLy8gKEtv
bmZpZ3VyYXRpb24gaXN0IE5lZ2F0aXYtTGlzdGUpLgogICAgICAgIGFkbWluU3VidGFiczogICAg
ICAgICAgICBpbmZvLmFkbWluU3VidGFicyAhPT0gdW5kZWZpbmVkID8gaW5mby5hZG1pblN1YnRh
YnMgOiBudWxsLAogICAgICAgIHN0YXRpc3Rpa0JlcmVpY2hlOiAgICAgICBpbmZvLnN0YXRpc3Rp
a0JlcmVpY2hlICE9PSB1bmRlZmluZWQgPyBpbmZvLnN0YXRpc3Rpa0JlcmVpY2hlIDogbnVsbCwK
ICAgICAgICAvLyBlZGl0aWVyZW4gPT09IG51bGwgaGVpc3N0ICJXaWxkY2FyZCIgKFN1cGVyVXNl
ciBkYXJmIGFsbGVzKS4KICAgICAgICAvLyBTb25zdCBrb25rcmV0ZSBMaXN0ZW4gdm9uIFBlcnNv
bmVuLUlkcywgRGllbnN0Z3J1cHBlbi1LdWVyemVsbiwgU3RhbmRvcnRlbi4KICAgICAgICBlZGl0
aWVyZW46ICAgICAgICAgICAgICAgaW5mby5lZGl0aWVyZW4sCiAgICAgICAgbWVpbmVQZXJzb25J
ZDogICAgICAgICAgIGluZm8ubWVpbmVQZXJzb25JZAogICAgfTsKfQoKLy8gPT09PT0gUmVjaHRl
LU9iamVrdC1CdWlsZGVyIChmdWVyIEltcGVyc29uYXRpb24pID09PT09CgovLyBCZXJlY2huZXQg
Wi5yZWNodGUgZnVlciBlaW5lIGdlZ2ViZW5lIEZhY2hhdWZzaWNodC1Lb25maWcsIGFscyB3YWVy
ZQovLyBkaWVzZSBQZXJzb24gZWluZ2Vsb2dndC4gU3BpZWdlbCBkZXIgR2V0LVJlY2h0ZS1Mb2dp
ayBpbSBTZXJ2ZXIuCmV4cG9ydCBmdW5jdGlvbiBiZXJlY2huZUZhY2hhdWZzaWNodFJlY2h0ZShm
YSkgewogICAgdmFyIHNlaGVuID0gZmEuc2VoZW4gfHwge307CiAgICB2YXIgYWRtaW5NYXAgPSBu
dWxsOwogICAgaWYgKHNlaGVuLmFkbWluaXN0cmF0aW9uICYmIGZhLmFkbWluU2ljaHRiYXJrZWl0
KSB7CiAgICAgICAgYWRtaW5NYXAgPSB7fTsKICAgICAgICBPYmplY3Qua2V5cyhmYS5hZG1pblNp
Y2h0YmFya2VpdCkuZm9yRWFjaChmdW5jdGlvbihrKSB7IGFkbWluTWFwW2tdID0gISFmYS5hZG1p
blNpY2h0YmFya2VpdFtrXTsgfSk7CiAgICB9IGVsc2UgaWYgKCFzZWhlbi5hZG1pbmlzdHJhdGlv
bikgewogICAgICAgIGFkbWluTWFwID0ge307CiAgICB9CiAgICB2YXIgc3RhdGlzdGlrTWFwID0g
bnVsbDsKICAgIGlmIChzZWhlbi5zdGF0aXN0aWsgJiYgZmEuc3RhdGlzdGlrU2ljaHRiYXJrZWl0
KSB7CiAgICAgICAgc3RhdGlzdGlrTWFwID0ge307CiAgICAgICAgT2JqZWN0LmtleXMoZmEuc3Rh
dGlzdGlrU2ljaHRiYXJrZWl0KS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsgc3RhdGlzdGlrTWFwW2td
ID0gISFmYS5zdGF0aXN0aWtTaWNodGJhcmtlaXRba107IH0pOwogICAgfSBlbHNlIGlmICghc2Vo
ZW4uc3RhdGlzdGlrKSB7CiAgICAgICAgc3RhdGlzdGlrTWFwID0ge307CiAgICB9CiAgICByZXR1
cm4gewogICAgICAgIHJvbGxlOiAnZmFjaGF1ZnNpY2h0JywKICAgICAgICBpc3RTdXBlclVzZXI6
IGZhbHNlLAogICAgICAgIGlzdEZhY2hhdWZzaWNodDogdHJ1ZSwKICAgICAgICBpc3RHZXNhbXR2
ZXJhbnR3b3J0bGljaDogISFmYS5nZXNhbXR2ZXJhbnR3b3J0bGljaCwKICAgICAgICBzZWhlbjog
ewogICAgICAgICAgICBhZG1pbmlzdHJhdGlvbjogISFzZWhlbi5hZG1pbmlzdHJhdGlvbiwKICAg
ICAgICAgICAgc3RhdGlzdGlrOiAgICAgICEhc2VoZW4uc3RhdGlzdGlrLAogICAgICAgICAgICBs
b2didWNoOiAgICAgICAgISFzZWhlbi5sb2didWNoLAogICAgICAgICAgICBiYWNrdXBzOiAgICAg
ICAgISFzZWhlbi5iYWNrdXBzCiAgICAgICAgfSwKICAgICAgICBhZG1pblN1YnRhYnM6ICAgICAg
YWRtaW5NYXAsCiAgICAgICAgc3RhdGlzdGlrQmVyZWljaGU6IHN0YXRpc3Rpa01hcCwKICAgICAg
ICBlZGl0aWVyZW46ICAgICAgICAgZmEuZWRpdGllcmVuIHx8IHsgcGVyc29uZW5JZHM6IFtdLCBk
aWVuc3RncnVwcGVuOiBbXSwgc3RhbmRvcnRlOiBbXSB9LAogICAgICAgIG1laW5lUGVyc29uSWQ6
ICAgICBudWxsCiAgICB9Owp9CgpleHBvcnQgZnVuY3Rpb24gYmVyZWNobmVSZWd1bGFlclJlY2h0
ZSgpIHsKICAgIHJldHVybiB7CiAgICAgICAgcm9sbGU6ICdyZWd1bGFlcicsCiAgICAgICAgaXN0
U3VwZXJVc2VyOiBmYWxzZSwKICAgICAgICBpc3RGYWNoYXVmc2ljaHQ6IGZhbHNlLAogICAgICAg
IGlzdEdlc2FtdHZlcmFudHdvcnRsaWNoOiBmYWxzZSwKICAgICAgICBzZWhlbjogeyBhZG1pbmlz
dHJhdGlvbjogZmFsc2UsIHN0YXRpc3RpazogZmFsc2UsIGxvZ2J1Y2g6IGZhbHNlLCBiYWNrdXBz
OiBmYWxzZSB9LAogICAgICAgIGFkbWluU3VidGFiczoge30sCiAgICAgICAgc3RhdGlzdGlrQmVy
ZWljaGU6IHt9LAogICAgICAgIGVkaXRpZXJlbjogeyBwZXJzb25lbklkczogW10sIGRpZW5zdGdy
dXBwZW46IFtdLCBzdGFuZG9ydGU6IFtdIH0sCiAgICAgICAgbWVpbmVQZXJzb25JZDogbnVsbAog
ICAgfTsKfQoKLy8gV2VidCBkaWUgZ2xvYmFsZW4gU3RhbmRhcmRyZWNodGUgKGdlZ2Vuc2VpdGln
ZSBQbGFudW5nIGplIERpZW5zdGdydXBwZS8KLy8gU3RhbmRvcnQpIGFkZGl0aXYgaW4gZWluIGVk
aXRpZXJlbi1PYmpla3QgZWluIOKAlCBTcGllZ2VsIGRlciBTZXJ2ZXItTG9naWsgaW4KLy8gYmVy
ZWNobmVfcmVjaHRlLiBLbG9udCwgdW0gZGllIEFkbWluLUNvbmZpZyBuaWNodCB6dSBtdXRpZXJl
bi4gV2lyZCBpbiBkZXIKLy8gU1UtVGVzdGFuc2ljaHQgKEltcGVyc29uYXRpb24pIGdlbnV0enQ7
IGltIEVjaHRiZXRyaWViIGxpZWZlcnQgZGVyIFNlcnZlcgovLyBlZGl0aWVyZW4gYmVyZWl0cyBh
bmdlcmVpY2hlcnQuCmZ1bmN0aW9uIF9zdGFuZGFyZFJlY2h0ZUVpbndlYmVuKGVkaXRpZXJlbiwg
cGVyc29uKSB7CiAgICBpZiAoIWVkaXRpZXJlbiB8fCAhcGVyc29uKSByZXR1cm4gZWRpdGllcmVu
OwogICAgdmFyIHNyID0gKFouYWRtaW4gJiYgWi5hZG1pbi5zdGFuZGFyZFJlY2h0ZSkgfHwge307
CiAgICB2YXIgZ2cgPSBzci5nZWdlbnNlaXRpZ0dydXBwZW4gfHwgW107CiAgICB2YXIgZ3MgPSBz
ci5nZWdlbnNlaXRpZ1N0YW5kb3J0ZSB8fCBbXTsKICAgIHZhciBkZyA9IChlZGl0aWVyZW4uZGll
bnN0Z3J1cHBlbiB8fCBbXSkuc2xpY2UoKTsKICAgIHZhciBzbyA9IChlZGl0aWVyZW4uc3RhbmRv
cnRlIHx8IFtdKS5zbGljZSgpOwogICAgaWYgKHBlcnNvbi5ncnVwcGUgJiYgZ2cuaW5kZXhPZihw
ZXJzb24uZ3J1cHBlKSA+PSAwICYmIGRnLmluZGV4T2YocGVyc29uLmdydXBwZSkgPCAwKSBkZy5w
dXNoKHBlcnNvbi5ncnVwcGUpOwogICAgaWYgKHBlcnNvbi5vZSAmJiBncy5pbmRleE9mKHBlcnNv
bi5vZSkgPj0gMCAmJiBzby5pbmRleE9mKHBlcnNvbi5vZSkgPCAwKSBzby5wdXNoKHBlcnNvbi5v
ZSk7CiAgICByZXR1cm4geyBwZXJzb25lbklkczogKGVkaXRpZXJlbi5wZXJzb25lbklkcyB8fCBb
XSkuc2xpY2UoKSwgZGllbnN0Z3J1cHBlbjogZGcsIHN0YW5kb3J0ZTogc28gfTsKfQoKLy8gQmVy
ZWNobmV0IFoucmVjaHRlIGZ1ZXIgZWluZSBrb25rcmV0ZSBQZXJzb24sIGFscyB3YWVyZSBzaWUg
ZWluZ2Vsb2dndC4KLy8gU3RlaHQgZGllIFBlcnNvbiBpbiBkZXIgRmFjaGF1ZnNpY2h0LUxpc3Rl
IChNYXRjaCB1ZWJlciBud0tlbm51bmcsIHNvbnN0Ci8vIE5hbWUpLCBlcmJ0IHNpZSBkZXJlbiBS
ZWNodGUg4oCUIHNvbnN0IGlzdCBzaWUgcmVndWxhZXJlciBFbmRhbndlbmRlci4gSW4KLy8gYmVp
ZGVuIEZhZWxsZW4gd2lyZCBtZWluZVBlcnNvbklkIGdlc2V0enQsIGRhbWl0IGRpZSBaZWxsLUVk
aXQtTG9naWsKLy8gKGVpZ2VuZSBaZWlsZSArIE1pa3JvdGVhbSkgaW4gZGVyIFRlc3RhbnNpY2h0
IGtvcnJla3QgZ3JlaWZ0LgpleHBvcnQgZnVuY3Rpb24gYmVyZWNobmVQZXJzb25SZWNodGUocGVy
c29uKSB7CiAgICBpZiAoIXBlcnNvbikgcmV0dXJuIGJlcmVjaG5lUmVndWxhZXJSZWNodGUoKTsK
ICAgIHZhciBudyA9IChwZXJzb24ubndLZW5udW5nIHx8ICcnKS50cmltKCkudG9Mb3dlckNhc2Uo
KTsKICAgIHZhciBubSA9IChwZXJzb24ubmFtZSB8fCAnJykudHJpbSgpLnRvTG93ZXJDYXNlKCk7
CiAgICB2YXIgZmEgPSAoWi5hZG1pbiAmJiBaLmFkbWluLmZhY2hhdWZzaWNodCB8fCBbXSkuZmlu
ZChmdW5jdGlvbihmKSB7CiAgICAgICAgdmFyIGZudyA9IChmLm53S2VubnVuZyB8fCAnJykudHJp
bSgpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgaWYgKG53ICYmIGZudyAmJiBmbncgPT09IG53KSBy
ZXR1cm4gdHJ1ZTsKICAgICAgICByZXR1cm4gISFubSAmJiAoZi5uYW1lIHx8ICcnKS50cmltKCku
dG9Mb3dlckNhc2UoKSA9PT0gbm07CiAgICB9KTsKICAgIHZhciByID0gZmEgPyBiZXJlY2huZUZh
Y2hhdWZzaWNodFJlY2h0ZShmYSkgOiBiZXJlY2huZVJlZ3VsYWVyUmVjaHRlKCk7CiAgICByLm1l
aW5lUGVyc29uSWQgPSBwZXJzb24uaWQ7CiAgICByLmVkaXRpZXJlbiA9IF9zdGFuZGFyZFJlY2h0
ZUVpbndlYmVuKHIuZWRpdGllcmVuLCBwZXJzb24pOwogICAgcmV0dXJuIHI7Cn0KCi8vID09PT09
IEltcGVyc29uYXRpb24tTW9kZSAoU1UtVGVzdGFuc2ljaHQpID09PT09Ci8vCi8vIFN1cGVyVXNl
ciBrYW5uIHNpY2ggZGllIE9iZXJmbGFlY2hlIHNvIGFuemVpZ2VuIGxhc3Nlbiwgd2llIGVpbmUg
YW5kZXJlCi8vIFJvbGxlIHNpZSBzaWVodCAoRmFjaGF1ZnNpY2h0IG5hY2ggaWhyZXIgU2ljaHRi
YXJrZWl0cy1Lb25maWd1cmF0aW9uLAovLyBvZGVyIHJlZ3VsYWVyZXIgRW5kYW53ZW5kZXIpLiBS
ZWluIGNsaWVudHNlaXRpZyDigJQgWi5yZWNodGUgd2lyZAovLyB0ZW1wb3JhZXIgdW1nZXNjaHJp
ZWJlbjsgYmVpbSBadXJ1ZWNrc2NoYWx0ZW4ga29tbXQgZGVyIE9yaWdpbmFsc3RhbmQKLy8gYXVz
IHJlY2h0ZU9yaWdpbmFsIHp1cnVlY2suIERlciBTZXJ2ZXIgd2Vpc3MgbmljaHRzIGRhdm9uLCBi
bGVpYnQgU1UuCgp2YXIgcmVjaHRlT3JpZ2luYWwgPSBudWxsOwovLyBCZWltIFN0YXJ0IGVpbmVy
IEltcGVyc29uYXRpb24gZ2VtZXJrdGVyIEhlYWRlci1UYWIgKyBBZG1pbi1TdWItVGFiLAovLyBk
YW1pdCBpbXBlcnNvbmF0ZUVuZCgpIGRlbiB2b3JpZ2VuIFN0YW5kIHdpZWRlcmhlcnN0ZWxsdCBz
dGF0dCBlaW5mYWNoCi8vIGF1ZiAiZGVyIGVyc3RlIGVybGF1YnRlIiB6dXJ1ZWNrenVmYWxsZW4g
KENoZXJyeS1QaWNrIGRhNDNjMjEgKyA5YWY5Njg0KS4KdmFyIGFuc2ljaHRWb3JJbXBlcnNvbmF0
aW9uID0gbnVsbDsKdmFyIGFkbWluU3VidGFiVm9ySW1wZXJzb25hdGlvbiA9IG51bGw7Ci8vIEJl
aW0gUGVyc29uLVRlc3Qgd2lyZCBaLm1laW5lUGVyc29uSWQgdGVtcG9yYWVyIGF1ZiBkaWUgZ2V0
ZXN0ZXRlIFBlcnNvbgovLyB1bWdlYm9nZW4gKHNvbnN0IGdyZWlmdCBkaWUgImVpZ2VuZSBaZWls
ZSArIE1pa3JvdGVhbSItRWRpdC1Mb2dpayB3ZWl0ZXIKLy8gYXVmIGRpZSBTVS1QZXJzb24pLiBI
aWVyIGRlciBPcmlnaW5hbC1XZXJ0IGZ1ZXIgaW1wZXJzb25hdGVFbmQuCnZhciBtZWluZVBlcnNv
bklkVm9ySW1wZXJzb25hdGlvbiA9IG51bGw7CgovLyBFeGlzdGllcnQgZWluIGdlc3BlaWNoZXJ0
ZXIgT3JpZ2luYWwtUmVjaHRlLVNuYXBzaG90PyBXaXJkIHZvbQovLyBhZG1pbkhvdFJlbG9hZCAo
aW4gYXBwLmpzKSBnZWJyYXVjaHQ6IHdhZWhyZW5kIGVpbmVyIEltcGVyc29uYXRpb24KLy8gc29s
bCBrZWluIEhvdC1SZWxvYWQgZGFzIFoucmVjaHRlLVNwaWVsZmVsZCB1bXNvcnRpZXJlbi4KZXhw
b3J0IGZ1bmN0aW9uIGltcGVyc29uYXRpb25Ba3RpdigpIHsgcmV0dXJuIHJlY2h0ZU9yaWdpbmFs
ICE9PSBudWxsOyB9CgpleHBvcnQgZnVuY3Rpb24gaW1wZXJzb25hdGVBbndlbmRlbihsYWJlbFRl
eHQpIHsKICAgIGlmIChsYWJlbFRleHQpIGltcGVyc29uYXRlQmFubmVyWmVpZ2VuKGxhYmVsVGV4
dCk7CiAgICBlbHNlIGltcGVyc29uYXRlQmFubmVyVmVyc3RlY2tlbigpOwogICAgbmF2U2ljaHRi
YXJrZWl0QW53ZW5kZW4oKTsKICAgIGFkbWluU3VidGFiRmlsdGVyQW53ZW5kZW4oKTsKICAgIC8v
IE9iZXJmbGFlY2hlIGZ1ZXIgZGVuIG5ldWVuIEtvbnRleHQgbmV1IHJlbmRlcm4uIGFkbWluUmVu
ZGVybgogICAgLy8gbGFldWZ0IGFsbGUgQWRtaW4tU3ViLVJlbmRlcmVyIChQZXJzb25hbCwgR3J1
cHBlbiwgRmVpZXJ0YWdlLAogICAgLy8g4oCmLCBTdXBlclVzZXIsIEZhY2hhdWZzaWNodCkg4oCU
IGRhbWl0IGRlciBTVS1vbmx5LUhpbndlaXMgaW4KICAgIC8vICJSZWNodGUgJiBTaWNodGJhcmtl
aXQiIGJlaW0gWnVydWVja3NjaGFsdGVuIHZlcnNjaHdpbmRldAogICAgLy8gdW5kIEdhbGVja2lz
IFNpY2h0IGJlaW0gRWluc2NoYWx0ZW4ga29ycmVrdCBlaW5nZXNjaHJhZW5rdAogICAgLy8gZXJz
Y2hlaW50IChLZWluLVp1Z3JpZmYtQmxvY2tlcikuCiAgICBpZiAocGVybWlzc2lvbkhvb2tzLmFk
bWluUmVuZGVybikgcGVybWlzc2lvbkhvb2tzLmFkbWluUmVuZGVybigpOwogICAgaWYgKHBlcm1p
c3Npb25Ib29rcy5rb3BmUmVuZGVybikgcGVybWlzc2lvbkhvb2tzLmtvcGZSZW5kZXJuKCk7CiAg
ICBpZiAocGVybWlzc2lvbkhvb2tzLnN0YXRpc3Rpa1JlbmRlcm4pIHBlcm1pc3Npb25Ib29rcy5z
dGF0aXN0aWtSZW5kZXJuKCk7CiAgICBpZiAocGVybWlzc2lvbkhvb2tzLmJlc2V0enVuZ3Nrb250
cm9sbGVSZW5kZXJuKSBwZXJtaXNzaW9uSG9va3MuYmVzZXR6dW5nc2tvbnRyb2xsZVJlbmRlcm4o
KTsKICAgIC8vIEdyaWQgbmV1IHplaWNobmVuLCBkYW1pdCBkaWUgWmVsbC1TcGVycmVuIHp1bSBu
ZXVlbiBSZWNodGUtS29udGV4dCBwYXNzZW4uCiAgICBpZiAocGVybWlzc2lvbkhvb2tzLmdyaWRS
ZW5kZXJuKSBwZXJtaXNzaW9uSG9va3MuZ3JpZFJlbmRlcm4oKTsKfQoKZnVuY3Rpb24gX2ltcGVy
c29uYXRpb25TdGF0ZVNpY2hlcm4oKSB7CiAgICB2YXIgbmF2QWt0aXYgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcubmF2LWJ0bi5ha3RpdicpOwogICAgdmFyIGFkbWluQWt0aXYgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCcuYWRtaW4tbmF2LWJ0bi5ha3RpdicpOwogICAgYW5zaWNodFZvcklt
cGVyc29uYXRpb24gPSBuYXZBa3RpdiA/IG5hdkFrdGl2LmdldEF0dHJpYnV0ZSgnZGF0YS1hbnNp
Y2h0JykgOiBudWxsOwogICAgYWRtaW5TdWJ0YWJWb3JJbXBlcnNvbmF0aW9uID0gYWRtaW5Ba3Rp
diA/IGFkbWluQWt0aXYuZ2V0QXR0cmlidXRlKCdkYXRhLWFkbWluLXRhYicpIDogbnVsbDsKICAg
IG1laW5lUGVyc29uSWRWb3JJbXBlcnNvbmF0aW9uID0gWi5tZWluZVBlcnNvbklkOwp9CgpmdW5j
dGlvbiBfYXVmUGxhbnVuZ3NhbnNpY2h0U3ByaW5nZW4oKSB7CiAgICAvLyBEYW1pdCBkZXIgU1Ug
c29mb3J0IHNpZWh0LCB3YXMgZGllIGltcGVyc29uaWVydGUgUGVyc29uIGltIEdyaWQgc2llaHQu
CiAgICBpZiAocGVybWlzc2lvbkhvb2tzLmFuc2ljaHRXZWNoc2VsbikgcGVybWlzc2lvbkhvb2tz
LmFuc2ljaHRXZWNoc2VsbigncGxhbnVuZycpOwp9CgpleHBvcnQgZnVuY3Rpb24gaW1wZXJzb25h
dGVTdGFydChpZHgpIHsKICAgIGlmICghcmVjaHRlT3JpZ2luYWwgJiYgIVoucmVjaHRlLmlzdFN1
cGVyVXNlcikgcmV0dXJuOwogICAgdmFyIGZhID0gKFouYWRtaW4uZmFjaGF1ZnNpY2h0IHx8IFtd
KVtpZHhdOwogICAgaWYgKCFmYSkgcmV0dXJuOwogICAgaWYgKCFyZWNodGVPcmlnaW5hbCkgewog
ICAgICAgIHJlY2h0ZU9yaWdpbmFsID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShaLnJlY2h0
ZSkpOwogICAgICAgIF9pbXBlcnNvbmF0aW9uU3RhdGVTaWNoZXJuKCk7CiAgICB9CiAgICBaLnJl
Y2h0ZSA9IGJlcmVjaG5lRmFjaGF1ZnNpY2h0UmVjaHRlKGZhKTsKICAgIGltcGVyc29uYXRlQW53
ZW5kZW4oJ0ZhY2hhdWZzaWNodDogJyArIChmYS5uYW1lIHx8ICcob2huZSBOYW1lKScpKTsKICAg
IF9hdWZQbGFudW5nc2Fuc2ljaHRTcHJpbmdlbigpOwp9CgpleHBvcnQgZnVuY3Rpb24gaW1wZXJz
b25hdGVSZWd1bGFlcigpIHsKICAgIGlmICghcmVjaHRlT3JpZ2luYWwgJiYgIVoucmVjaHRlLmlz
dFN1cGVyVXNlcikgcmV0dXJuOwogICAgaWYgKCFyZWNodGVPcmlnaW5hbCkgewogICAgICAgIHJl
Y2h0ZU9yaWdpbmFsID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShaLnJlY2h0ZSkpOwogICAg
ICAgIF9pbXBlcnNvbmF0aW9uU3RhdGVTaWNoZXJuKCk7CiAgICB9CiAgICBaLnJlY2h0ZSA9IGJl
cmVjaG5lUmVndWxhZXJSZWNodGUoKTsKICAgIGltcGVyc29uYXRlQW53ZW5kZW4oJ1JlZ3Vsw6Ry
ZXIgRW5kYW53ZW5kZXIgKG9obmUgUmVjaHRlKScpOwogICAgX2F1ZlBsYW51bmdzYW5zaWNodFNw
cmluZ2VuKCk7Cn0KCi8vIFRlc3RhbnNpY2h0IGFscyBlaW5lIGtvbmtyZXRlIFBlcnNvbiAoYXVz
IGRlciBQZXJzb25hbC1MaXN0ZSkuIFNldHp0Ci8vIHp1c2FldHpsaWNoIFoubWVpbmVQZXJzb25J
ZCwgZGFtaXQgImVpZ2VuZSBaZWlsZSArIE1pa3JvdGVhbSIgaW0gR3JpZAovLyBnZW5hdSBkYXMg
emVpZ3QsIHdhcyBkaWVzZSBQZXJzb24gZWRpdGllcmVuIGRhcmYuCmV4cG9ydCBmdW5jdGlvbiBp
bXBlcnNvbmF0ZVBlcnNvbihwZXJzb25JZCkgewogICAgaWYgKCFyZWNodGVPcmlnaW5hbCAmJiAh
Wi5yZWNodGUuaXN0U3VwZXJVc2VyKSByZXR1cm47CiAgICB2YXIgcCA9IChaLnBlcnNvbmVuIHx8
IFtdKS5maW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJuIFN0cmluZyh4LmlkKSA9PT0gU3RyaW5nKHBl
cnNvbklkKTsgfSk7CiAgICBpZiAoIXApIHJldHVybjsKICAgIGlmICghcmVjaHRlT3JpZ2luYWwp
IHsKICAgICAgICByZWNodGVPcmlnaW5hbCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoWi5y
ZWNodGUpKTsKICAgICAgICBfaW1wZXJzb25hdGlvblN0YXRlU2ljaGVybigpOwogICAgfQogICAg
Wi5yZWNodGUgPSBiZXJlY2huZVBlcnNvblJlY2h0ZShwKTsKICAgIFoubWVpbmVQZXJzb25JZCA9
IHAuaWQ7CiAgICB2YXIgbGFiZWwgPSAocC5uYW1lIHx8ICcob2huZSBOYW1lKScpICsgKHAudm9y
bmFtZSA/ICcgJyArIHAudm9ybmFtZSA6ICcnKSArIChwLmdydXBwZSA/ICcgWycgKyBwLmdydXBw
ZSArICddJyA6ICcnKTsKICAgIGltcGVyc29uYXRlQW53ZW5kZW4oJ1BlcnNvbjogJyArIGxhYmVs
KTsKICAgIF9hdWZQbGFudW5nc2Fuc2ljaHRTcHJpbmdlbigpOwp9CgpleHBvcnQgZnVuY3Rpb24g
aW1wZXJzb25hdGVFbmQoKSB7CiAgICBpZiAoIXJlY2h0ZU9yaWdpbmFsKSByZXR1cm47CiAgICBa
LnJlY2h0ZSA9IHJlY2h0ZU9yaWdpbmFsOwogICAgcmVjaHRlT3JpZ2luYWwgPSBudWxsOwogICAg
Ly8gRmFsbHMgZWluZSBQZXJzb24gZ2V0ZXN0ZXQgd3VyZGU6IFoubWVpbmVQZXJzb25JZCB6dXJ1
ZWNrc3RlbGxlbi4KICAgIFoubWVpbmVQZXJzb25JZCA9IG1laW5lUGVyc29uSWRWb3JJbXBlcnNv
bmF0aW9uOwogICAgbWVpbmVQZXJzb25JZFZvckltcGVyc29uYXRpb24gPSBudWxsOwogICAgLy8g
R2xlaWNoZW4gUmVuZGVyLVBmYWQgd2llIGJlaW0gU3RhcnQg4oCUIGRhbWl0IGFsbGUgQWRtaW4t
U3ViLQogICAgLy8gQmVyZWljaGUgKHouQi4gIlJlY2h0ZSAmIFNpY2h0YmFya2VpdCIpIGlocmVu
IFNVLW9ubHktQmxvY2tlcgogICAgLy8gd2llZGVyIGFiYmF1ZW4uCiAgICBpbXBlcnNvbmF0ZUFu
d2VuZGVuKG51bGwpOwogICAgLy8gVm9yaGVyaWdlbiBIZWFkZXItVGFiIHJlc3RhdXJpZXJlbiAo
c29uc3QgYmxlaWJ0IGRlciBVc2VyIGF1ZiBkZXIKICAgIC8vIFBsYW51bmdzLUFuc2ljaHQgaGFl
bmdlbiwgYXVmIGRpZSB3aXIgYmVpbSBTdGFydCBnZXNwcnVuZ2VuIHNpbmQpLgogICAgaWYgKGFu
c2ljaHRWb3JJbXBlcnNvbmF0aW9uICYmIHBlcm1pc3Npb25Ib29rcy5hbnNpY2h0V2VjaHNlbG4p
IHsKICAgICAgICBwZXJtaXNzaW9uSG9va3MuYW5zaWNodFdlY2hzZWxuKGFuc2ljaHRWb3JJbXBl
cnNvbmF0aW9uKTsKICAgIH0KICAgIGFuc2ljaHRWb3JJbXBlcnNvbmF0aW9uID0gbnVsbDsKICAg
IC8vIFZvcmhlcmlnZW4gQWRtaW4tU3ViLVRhYiB3aWVkZXIgYWt0aXZpZXJlbi4gYWRtaW5TdWJ0
YWJGaWx0ZXJBbndlbmRlbgogICAgLy8gaGF0IG9iZW4gaW4gaW1wZXJzb25hdGVBbndlbmRlbigp
IGJlcmVpdHMgYWxsZSBCdXR0b25zIHNpY2h0YmFyIGdlbWFjaHQsCiAgICAvLyBhbHNvIGthbm4g
ZGVyIEtsaWNrIGpldHp0IHdpZWRlciBkdXJjaGxhdWZlbi4KICAgIGlmIChhZG1pblN1YnRhYlZv
ckltcGVyc29uYXRpb24pIHsKICAgICAgICB2YXIgYnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignLmFkbWluLW5hdi1idG5bZGF0YS1hZG1pbi10YWI9IicgKyBhZG1pblN1YnRhYlZvckltcGVy
c29uYXRpb24gKyAnIl0nKTsKICAgICAgICBpZiAoYnRuKSBidG4uY2xpY2soKTsKICAgIH0KICAg
IGFkbWluU3VidGFiVm9ySW1wZXJzb25hdGlvbiA9IG51bGw7Cn0KCmV4cG9ydCBmdW5jdGlvbiBp
bXBlcnNvbmF0ZUJhbm5lclplaWdlbihsYWJlbCkgewogICAgdmFyIGIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaW1wZXJzb25hdGUtYmFubmVyJyk7CiAgICBpZiAoIWIpIHsKICAgICAgICBi
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgYi5pZCA9ICdpbXBlcnNv
bmF0ZS1iYW5uZXInOwogICAgICAgIGIuY2xhc3NOYW1lID0gJ2ltcGVyc29uYXRlLWJhbm5lcic7
CiAgICAgICAgYi5pbm5lckhUTUwgPSAnPHNwYW4gY2xhc3M9ImltcC1pY29uIj7wn5GBPC9zcGFu
PjxzcGFuIGNsYXNzPSJpbXAtdGV4dCI+PC9zcGFuPicgKwogICAgICAgICAgICAnPGJ1dHRvbiBj
bGFzcz0iYnRuIGJ0bi1rbGVpbiIgaWQ9ImltcC1idG4tenVydWVjayIgdHlwZT0iYnV0dG9uIj5a
dXLDvGNrIHp1ciBTVS1TaWNodDwvYnV0dG9uPic7CiAgICAgICAgZG9jdW1lbnQuYm9keS5pbnNl
cnRCZWZvcmUoYiwgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTsKICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaW1wLWJ0bi16dXJ1ZWNrJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2sn
LCBpbXBlcnNvbmF0ZUVuZCk7CiAgICB9CiAgICBiLnF1ZXJ5U2VsZWN0b3IoJy5pbXAtdGV4dCcp
LnRleHRDb250ZW50ID0gJ1Rlc3RhbnNpY2h0IOKAlCAnICsgbGFiZWw7CiAgICBiLnN0eWxlLmRp
c3BsYXkgPSAnJzsKfQoKZXhwb3J0IGZ1bmN0aW9uIGltcGVyc29uYXRlQmFubmVyVmVyc3RlY2tl
bigpIHsKICAgIHZhciBiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcGVyc29uYXRlLWJh
bm5lcicpOwogICAgaWYgKGIpIGIuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKfQoKLy8gPT09PT0g
U3ViLVNpY2h0YmFya2VpdHMtRmlsdGVyIChBZG1pbikgPT09PT0KLy8KLy8gVmVyc3RlY2t0IGRp
ZWplbmlnZW4gU3ViLVRhYi1CdXR0b25zICsgQ29udGFpbmVyLCBmdWVyIGRpZSBkZXIgYWt0dWVs
bGUKLy8gVXNlciBrZWluZSBCZXJlY2h0aWd1bmcgaGF0LiBTdXBlclVzZXIgc2llaHQgaW1tZXIg
YWxsZXMuCi8vIFNpY2hlcmhlaXRza3JpdGlzY2hlIFRhYnMgKHN1cGVydXNlciwgZmFjaGF1ZnNp
Y2h0LCBzaWNodGJhcmtlaXQpIGJsZWliZW4KLy8gaGFydGtvZGllcnQgU1Utb25seSDigJQgZGll
IEdyYW51bGFyLU1hcCBrYW5uIHNpZSBuaWNodCBmcmVpc2NoYWx0ZW4uCgp2YXIgQURNSU5fU1VC
VEFCU19OSUVNQUxTX0ZVRVJfRkFDSEFVRlNJQ0hUID0gWydzdXBlcnVzZXInLCAnZmFjaGF1ZnNp
Y2h0JywgJ3NpY2h0YmFya2VpdCcsICdmZWF0dXJlcycsICd0ZXN0ZGF0ZW4nLCAnaGlud2Vpc2Ut
cHJvdG9rb2xsJywgJ21pdHRlaWx1bmdlbicsICdzdGF0aXN0aWstbGF5b3V0JywgJ3N0YW5kYXJk
cmVjaHRlJ107CgpleHBvcnQgZnVuY3Rpb24gYWRtaW5TdWJ0YWJGaWx0ZXJBbndlbmRlbigpIHsK
ICAgIGlmICghWi5yZWNodGUpIHJldHVybjsKICAgIGlmIChaLnJlY2h0ZS5pc3RTdXBlclVzZXIp
IHsKICAgICAgICAvLyBTVTogYWxsZSB3aWVkZXIgc2ljaHRiYXIgbWFjaGVuICh3aWNodGlnIG5h
Y2ggSW1wZXJzb25hdGlvbi1FbmRlKQogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Jy5hZG1pbi1uYXYtYnRuJykuZm9yRWFjaChmdW5jdGlvbihidG4pIHsgYnRuLnN0eWxlLmRpc3Bs
YXkgPSAnJzsgfSk7CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFkbWluLW5h
di1ncnVwcGUnKS5mb3JFYWNoKGZ1bmN0aW9uKGcpIHsgZy5zdHlsZS5kaXNwbGF5ID0gJyc7IH0p
OwogICAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciBlcnN0ZXJFcmxhdWJ0ZXIgPSBudWxsOwog
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFkbWluLW5hdi1idG4nKS5mb3JFYWNoKGZ1
bmN0aW9uKGJ0bikgewogICAgICAgIHZhciBuYW1lID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1h
ZG1pbi10YWInKTsKICAgICAgICB2YXIgZXJsYXVidCA9IGRhcmZBZG1pblN1YnRhYihuYW1lKSAm
JiBBRE1JTl9TVUJUQUJTX05JRU1BTFNfRlVFUl9GQUNIQVVGU0lDSFQuaW5kZXhPZihuYW1lKSA8
IDA7CiAgICAgICAgYnRuLnN0eWxlLmRpc3BsYXkgPSBlcmxhdWJ0ID8gJycgOiAnbm9uZSc7CiAg
ICAgICAgaWYgKCFlcmxhdWJ0KSB7CiAgICAgICAgICAgIHZhciB0YWIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYWRtaW4tdGFiLScgKyBuYW1lKTsKICAgICAgICAgICAgaWYgKHRhYikgdGFi
LmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwogICAgICAgIH0gZWxzZSBpZiAoIWVyc3RlckVy
bGF1YnRlcikgewogICAgICAgICAgICBlcnN0ZXJFcmxhdWJ0ZXIgPSBidG47CiAgICAgICAgfQog
ICAgfSk7CiAgICAvLyBHcnVwcGVuLUhlYWRlciAoU2lkZWJhci1DbHVzdGVyKSBhdXRvLWhpZGVu
LCB3ZW5uIGFsbGUgQnV0dG9ucyBpbgogICAgLy8gZGVyIEdydXBwZSB2ZXJzdGVja3Qgc2luZCDi
gJQgc29uc3QgYmxlaWJ0IGVpbmUgVWViZXJzY2hyaWZ0IG9obmUKICAgIC8vIEluaGFsdCBzdGVo
ZW4uCiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYWRtaW4tbmF2LWdydXBwZScpLmZv
ckVhY2goZnVuY3Rpb24oZ3J1cHBlKSB7CiAgICAgICAgdmFyIGhhdFNpY2h0YmFyID0gZmFsc2U7
CiAgICAgICAgZ3J1cHBlLnF1ZXJ5U2VsZWN0b3JBbGwoJy5hZG1pbi1uYXYtYnRuJykuZm9yRWFj
aChmdW5jdGlvbihiKSB7CiAgICAgICAgICAgIGlmIChiLnN0eWxlLmRpc3BsYXkgIT09ICdub25l
JykgaGF0U2ljaHRiYXIgPSB0cnVlOwogICAgICAgIH0pOwogICAgICAgIGdydXBwZS5zdHlsZS5k
aXNwbGF5ID0gaGF0U2ljaHRiYXIgPyAnJyA6ICdub25lJzsKICAgIH0pOwogICAgLy8gRmFsbHMg
YWt0dWVsbCBha3RpdmVyIFN1Yi1UYWIgdmVyc3RlY2t0IHd1cmRlOiB6dW0gZXJzdGVuIGVybGF1
YnRlbiBzcHJpbmdlbgogICAgdmFyIGFrdGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFk
bWluLW5hdi1idG4uYWt0aXYnKTsKICAgIGlmIChha3RpdiAmJiBha3Rpdi5zdHlsZS5kaXNwbGF5
ID09PSAnbm9uZScgJiYgZXJzdGVyRXJsYXVidGVyKSBlcnN0ZXJFcmxhdWJ0ZXIuY2xpY2soKTsK
fQoKLy8gPT09PT0gRWRpdC1CZXJlY2h0aWd1bmcgcHJvIFplbGxlID09PT09CgovLyBMaWVmZXJ0
IGFsbGUgUGVyc29uLUlEcywgZGllIG1pdCBkZW0gYWt0dWVsbGVuIFVzZXIgaW4gbWluZGVzdGVu
cwovLyBlaW5lbSBNaWtyb3RlYW0gc2l0emVuLiBXaXJkIGluIGRhcmZaZWxsZUVkaXRpZXJlbiBi
ZW51dHp0IOKAlCBqZWRlcgovLyBVc2VyIGRhcmYgc2VpbiBNaWtyb3RlYW0gbWl0LXBsYW5lbiAo
VXNlci1XdW5zY2ggMjAyNi0wNS0yMykuCmV4cG9ydCBmdW5jdGlvbiBtZWluZU1pa3JvdGVhbVBl
cnNvbklkcygpIHsKICAgIGlmICghWi5tZWluZVBlcnNvbklkIHx8ICFaLmFkbWluIHx8ICFaLmFk
bWluLm1pa3JvdGVhbXMpIHJldHVybiBbXTsKICAgIHZhciBtZWluZSA9IE51bWJlcihaLm1laW5l
UGVyc29uSWQpOwogICAgdmFyIGlkcyA9IFtdOwogICAgWi5hZG1pbi5taWtyb3RlYW1zLmZvckVh
Y2goZnVuY3Rpb24odCkgewogICAgICAgIGlmICghdCB8fCAhdC5wZXJzb25JZHMgfHwgdC5wZXJz
b25JZHMuaW5kZXhPZihtZWluZSkgPCAwKSByZXR1cm47CiAgICAgICAgdC5wZXJzb25JZHMuZm9y
RWFjaChmdW5jdGlvbihwaWQpIHsKICAgICAgICAgICAgaWYgKGlkcy5pbmRleE9mKHBpZCkgPCAw
KSBpZHMucHVzaChwaWQpOwogICAgICAgIH0pOwogICAgfSk7CiAgICByZXR1cm4gaWRzOwp9Cgov
LyBQcnVlZnQsIG9iIGRlciBha3R1ZWxsZSBCZW51dHplciBlaW5lIGJlc3RpbW10ZSBaZWxsZSBl
ZGl0aWVyZW4gZGFyZi4KLy8gU3VwZXJVc2VyOiBpbW1lci4gU29uc3QgZWlnZW5lIFplaWxlICsg
TWlrcm90ZWFtLU1pdGdsaWVkZXIgKyBrb25maWd1cmllcnRlCi8vIExpc3RlbiAocGVyc29uZW5J
ZHMgLyBkaWVuc3RncnVwcGVuIC8gc3RhbmRvcnRlIGF1cyBaLnJlY2h0ZS5lZGl0aWVyZW4pLgpl
eHBvcnQgZnVuY3Rpb24gZGFyZlplbGxlRWRpdGllcmVuKHBlcnNvbklkKSB7CiAgICBpZiAoIVou
cmVjaHRlKSByZXR1cm4gZmFsc2U7CiAgICBpZiAoWi5yZWNodGUuZWRpdGllcmVuID09PSBudWxs
IHx8IFoucmVjaHRlLmVkaXRpZXJlbiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdHJ1ZTsgLy8gU3Vw
ZXJVc2VyCiAgICBpZiAoWi5tZWluZVBlcnNvbklkICE9IG51bGwgJiYgU3RyaW5nKFoubWVpbmVQ
ZXJzb25JZCkgPT09IFN0cmluZyhwZXJzb25JZCkpIHJldHVybiB0cnVlOwogICAgdmFyIHAgPSBa
LnBlcnNvbmVuLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4gU3RyaW5nKHguaWQpID09PSBTdHJp
bmcocGVyc29uSWQpOyB9KTsKICAgIGlmICghcCkgcmV0dXJuIGZhbHNlOwogICAgLy8gTWlrcm90
ZWFtOiBhbGxlIE1pdGdsaWVkZXIgZWluZXMgVGVhbXMgZHVlcmZlbiBkYXMgVGVhbSBnZW1laW5z
YW0gcGxhbmVuLgogICAgaWYgKG1laW5lTWlrcm90ZWFtUGVyc29uSWRzKCkuaW5kZXhPZihOdW1i
ZXIocC5pZCkpID49IDApIHJldHVybiB0cnVlOwogICAgdmFyIGVkID0gWi5yZWNodGUuZWRpdGll
cmVuOwogICAgaWYgKChlZC5wZXJzb25lbklkcyB8fCBbXSkuaW5kZXhPZihOdW1iZXIocC5pZCkp
ID49IDApIHJldHVybiB0cnVlOwogICAgaWYgKHAuZ3J1cHBlICYmIChlZC5kaWVuc3RncnVwcGVu
IHx8IFtdKS5pbmRleE9mKHAuZ3J1cHBlKSA+PSAwKSByZXR1cm4gdHJ1ZTsKICAgIGlmIChwLm9l
ICYmIChlZC5zdGFuZG9ydGUgfHwgW10pLmluZGV4T2YocC5vZSkgPj0gMCkgcmV0dXJuIHRydWU7
CiAgICByZXR1cm4gZmFsc2U7Cn0KCi8vID09PT09IEhlYWRlci1UYWItU2ljaHRiYXJrZWl0IChB
ZG1pbi9TdGF0aXN0aWsvTG9nYnVjaC9CZXNldHp1bmcpID09PT09CgpleHBvcnQgZnVuY3Rpb24g
bmF2U2ljaHRiYXJrZWl0QW53ZW5kZW4oKSB7CiAgICB2YXIgbmF2ID0gewogICAgICAgICduYXYt
YWRtaW4nOiAgICAgICAgZGFyZkFkbWluVGFiKCksCiAgICAgICAgJ25hdi1zdGF0aXN0aWsnOiAg
ICBkYXJmU3RhdGlzdGlrKCksCiAgICAgICAgJ25hdi1sb2didWNoJzogICAgICBkYXJmTG9nYnVj
aCgpLAogICAgICAgICduYXYtYmVzZXR6dW5nJzogICAgISEoWi5yZWNodGUgJiYgWi5yZWNodGUu
aXN0R2VzYW10dmVyYW50d29ydGxpY2gpCiAgICB9OwogICAgT2JqZWN0LmtleXMobmF2KS5mb3JF
YWNoKGZ1bmN0aW9uKGlkKSB7CiAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpOwogICAgICAgIGlmIChlbCkgZWwuc3R5bGUuZGlzcGxheSA9IG5hdltpZF0gPyAnJyA6
ICdub25lJzsKICAgIH0pOwoKICAgIC8vIFVYLUF1ZGl0IFNwcmludCAxLjMgKDIwMjYtMDUtMjkp
OiBEZWZlbnNlLWluLURlcHRoLiBTZXJ2ZXIgZ2F0ZWQKICAgIC8vIGFsbGUgRGF0ZW4tRW5kcG9p
bnRzLCBhYmVyIGRhcyBIVE1MLVNrZWxldHQgZGVyIEFkbWluLS9TdGF0aXN0aWstLwogICAgLy8g
TG9nYnVjaC0vQmVzZXR6dW5nLVNla3Rpb25lbiBsaWVndCBpbSBET00gdW5kIGthbm4gei5CLiBi
ZWkKICAgIC8vIGxhbmdzYW0tbGFkZW5kZW4gUmVjaHRlbiBrdXJ6IGF1ZmJsaXR6ZW4gb2RlciBw
ZXIgRGV2VG9vbHMtCiAgICAvLyB2ZXJzdGVja3QtS2xhc3NlIGVudGZlcm50IHNpY2h0YmFyIHdl
cmRlbi4gV2lyIHNldHplbiAudmVyc3RlY2t0CiAgICAvLyB1bmQgYXJpYS1oaWRkZW4genVzYWV0
emxpY2ggenVyIE5hdi1WZXJzdGVja3VuZy4KICAgIHZhciBhbnNpY2h0ZW4gPSB7CiAgICAgICAg
J2Fuc2ljaHQtYWRtaW4nOiAgICAgIG5hdlsnbmF2LWFkbWluJ10sCiAgICAgICAgJ2Fuc2ljaHQt
c3RhdGlzdGlrJzogIG5hdlsnbmF2LXN0YXRpc3RpayddLAogICAgICAgICdhbnNpY2h0LWxvZ2J1
Y2gnOiAgICBuYXZbJ25hdi1sb2didWNoJ10sCiAgICAgICAgJ2Fuc2ljaHQtYmVzZXR6dW5nJzog
IG5hdlsnbmF2LWJlc2V0enVuZyddCiAgICB9OwogICAgdmFyIGFrdHVlbGxlVmVyc3RlY2t0ID0g
ZmFsc2U7CiAgICBPYmplY3Qua2V5cyhhbnNpY2h0ZW4pLmZvckVhY2goZnVuY3Rpb24oaWQpIHsK
ICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CiAgICAgICAgaWYg
KCFlbCkgcmV0dXJuOwogICAgICAgIGlmICghYW5zaWNodGVuW2lkXSkgewogICAgICAgICAgICB2
YXIgd2FyU2ljaHRiYXIgPSAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCd2ZXJzdGVja3QnKTsKICAg
ICAgICAgICAgZWwuY2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7CiAgICAgICAgICAgIGVsLnNl
dEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpOwogICAgICAgICAgICBpZiAod2FyU2lj
aHRiYXIpIGFrdHVlbGxlVmVyc3RlY2t0ID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJyk7CiAgICAgICAgfQogICAgfSk7
CiAgICAvLyBFZGdlLUNhc2U6IFBlcm1pc3Npb24gd3VyZGUgbGl2ZSBlbnR6b2dlbiB3YWVocmVu
ZCBVc2VyIGF1ZiBkZXIKICAgIC8vIGpldHp0IHZlcmJvdGVuZW4gQW5zaWNodCBzdGVodC4gRmFs
bGJhY2sgYXVmIFBsYW51bmcsIHNvbnN0IHNpZWh0CiAgICAvLyBlciBsZWVyZW4gQmlsZHNjaGly
bS4KICAgIGlmIChha3R1ZWxsZVZlcnN0ZWNrdCkgewogICAgICAgIHZhciBwbGFudW5nID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fuc2ljaHQtcGxhbnVuZycpOwogICAgICAgIGlmIChwbGFu
dW5nKSBwbGFudW5nLmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNrdCcpOwogICAgfQp9CgovLyA9
PT09PSBWZXJiaW5kbGljaGtlaXRzZmVuc3RlciAoMTQgVGFnZSkgPT09PT0KCi8vIFRydWUsIHdl
bm4gZGFzIERhdHVtIGlubmVyaGFsYiBkZXIgbmFlY2hzdGVuIDE0IFRhZ2UgKGlua2wuIGhldXRl
KSBsaWVndC4KLy8gQWVuZGVydW5nZW4gaW4gZGllc2VtIEZlbnN0ZXIgc2luZCAidmVyYmluZGxp
Y2giIOKAlCBBdWZydWVja2VyIGJla29tbWVuCi8vIGRhbm4gZGVuIFZlcmFudHdvcnR1bmdzLVVl
YmVyZ2FuZy1NYWlsLURpYWxvZyAoc2llaGUgZ3JpZC9lZGl0b3IuanMpLgpleHBvcnQgZnVuY3Rp
b24gZGF0dW1JblZlcmJpbmRsaWNoa2VpdChkYXR1bSkgewogICAgdmFyIHRlaWxlID0gZGF0dW0u
c3BsaXQoJy0nKTsKICAgIGlmICh0ZWlsZS5sZW5ndGggIT09IDMpIHJldHVybiBmYWxzZTsKICAg
IHZhciB6aWVsID0gbmV3IERhdGUoK3RlaWxlWzBdLCArdGVpbGVbMV0gLSAxLCArdGVpbGVbMl0p
OwogICAgdmFyIGhldXRlID0gbmV3IERhdGUoKTsKICAgIGhldXRlLnNldEhvdXJzKDAsIDAsIDAs
IDApOwogICAgdmFyIHRhZ2UgPSBNYXRoLnJvdW5kKCh6aWVsIC0gaGV1dGUpIC8gKDEwMDAgKiA2
MCAqIDYwICogMjQpKTsKICAgIHJldHVybiB0YWdlID49IDAgJiYgdGFnZSA8PSAxNDsKfQo=
### FILE: js/core_state.js | 1412
Ly8gPT09IGNvcmUvc3RhdGUuanMgPT09Ci8vIEdsb2JhbGVyIEFud2VuZHVuZ3MtWnVzdGFuZCBa
IGRlciBWSTMtREdMLVBsYW51bmcuCi8vCi8vIFNjaHJlaWItWnVncmlmZiBwcm8gRmVsZCBpc3Qg
aW4gZG9jcy9NT0RVTF9LQVJURS5tZCBkb2t1bWVudGllcnQKLy8gKExlc2UtWnVncmlmZiB1ZWJl
cmFsbCwgU2NocmVpYi1adWdyaWZmIGxva2FsaXNpZXJ0KS4KCmV4cG9ydCB2YXIgWiA9IHsKICAg
IGFkbWluOiBudWxsLAogICAgcGxhbnVuZzogbnVsbCwKICAgIHBlcnNvbmVuOiBbXSwKICAgIHRh
Z2U6IFtdLAogICAgdGFnSW5mb3M6IHt9LAogICAgY29kZU1hcDoge30sCiAgICBncnVwcGVuTWFw
OiB7fSwKICAgIGJlbnV0emVyOiAnJywKICAgIGhldXRlU3RyOiAnJywKICAgIC8vIERhdGVuLUNh
Y2hlIGZ1ZXIgZGllIFN0YXRpc3RpayAoc2llaGUganMvc3RhdGlzdGlrLmpzKS4KICAgIHN0YXRp
c3RpazogbnVsbCwKICAgIHVtZ2VzZXR6dGVFaW5ibGVuZGVuOiBmYWxzZSwKICAgIC8vIFp1Z2V3
aWVzZW4gaW4gZGF0ZW5MYWRlbigpIC8gaW1wZXJzb25hdGUqLUZ1bmt0aW9uZW46CiAgICByZWNo
dGU6IG51bGwsCiAgICBtZWluZVBlcnNvbklkOiBudWxsLAogICAgLy8gWnVnZXdpZXNlbiB2b20g
TW9kYWwtU3lzdGVtICh1aS9kaWFsb2cuanMsIFBoYXNlIDIpOgogICAgbW9kYWxEaXJ0eTogZmFs
c2UsCiAgICBtb2RhbE9uU3BlaWNoZXJuOiBudWxsLAogICAgbW9kYWxTcGVpY2hlckZ1c3NIdG1s
OiBudWxsLAogICAgbW9kYWxLZXk6IG51bGwsCiAgICAvLyBadWdld2llc2VuIHZvbSBIZWFydGJl
YXQtV29ya2VyIChjb3JlL2RhdGVuTGFkZW4uanMsIFBoYXNlIDMpOgogICAgaGVhcnRiZWF0V29y
a2VyOiBudWxsLAogICAgaGVhcnRiZWF0RmFsbGJhY2s6IG51bGwsCiAgICAvLyBMaXZlLVN5bmMg
KFBoYXNlOiBTeW5jLVdvcmtlciwgc3luYy9zeW5jLWNsaWVudC5qcyk6CiAgICBzeW5jV29ya2Vy
OiBudWxsLAogICAgbGFzdFN5bmNUczogJycsCiAgICBsYXN0U3luY1NlcTogbnVsbCwgICAgICAg
ICAgICAgICAvLyBtb25vdG9uZSBTZXF1ZW56bnVtbWVyID0gcmFjZS1mcmVpZXIgTGl2ZS1TeW5j
LUN1cnNvcgogICAgZnJlbWRlTG9ja3M6IHt9LCAgICAgICAgICAgICAgICAgLy8ga2V5ID0gIjxk
YXR1bT58PHBlcnNvbklkPiIgLT4gTG9jay1PYmpla3QKICAgIHplbGxMb2NrOiB7IHRva2VuOiBu
dWxsLCBkYXR1bTogJycsIHBlcnNvbklkOiAnJywgaGJUaW1lcjogbnVsbCB9LAogICAgLy8gSGlu
d2Vpcy1TeXN0ZW0gKHNlcnZlci1zZWl0aWcgaW4gZGF0YS9oaW53ZWlzZS5qc29uIGdlZnVlaHJ0
LCB2b20KICAgIC8vIFN5bmMtV29ya2VyIGdlcG9sbHQpLiBOdXIgZnVlciBTVSArIEdlc2FtdHZl
cmFudHdvcnRsaWNoZSBiZWZ1ZWxsdC4KICAgIGhpbndlaXNlOiBbXQp9Owo=
### FILE: js/core_util.js | 12046
Ly8gPT09IGNvcmUvdXRpbC5qcyA9PT0KLy8gRGF0dW0tLCBIVE1MLSB1bmQgUGVyc29uLUhlbHBl
ciBzb3dpZSBTdGFtbS1Lb25zdGFudGVuCi8vIChGdW5rdGlvbmVuLCBEaWVuc3RncmFkZSkuCgpp
bXBvcnQgeyBaIH0gZnJvbSAnLi9jb3JlX3N0YXRlLmpzJzsKCi8vID09PT09IFBlcnNvbi1JRC1L
b252ZW50aW9uID09PT09CgovLyBLYW5vbmlzY2hlciBTdHJpbmctS2V5IGZ1ZXIgUGVyc29uLUlE
cyBpbiBaLnBsYW51bmcuZWludHJhZWdlIHVuZAovLyBaLnBsYW51bmcua29tbWVudGFyZSAoYmVp
ZGVzIHtkYXR1bToge3BpZDogLi4ufX0tRGljdHMpLiBKU09OLU9iamVjdC1LZXlzCi8vIHNpbmQg
aW1tZXIgU3RyaW5ncyDigJQgd2VyIG1pdCBOdW1iZXItS2V5cyBhcmJlaXRldCwga3JpZWd0IHp3
YXIgaW1wbGl6aXQKLy8gU3RyaW5nLUtvbnZlcnRpZXJ1bmcsIGFiZXIgPT09IGF1ZiB6d2VpIFBl
cnNvbi1JRHMgKHouQi4gcC5pZCBJbnQgdnMuCi8vIG0uemllbElkIFN0cmluZykgc2NobGFlZ3Qg
ZmVobC4gS29udmVudGlvbjogdWViZXJhbGwgd28gZWluZSBwZXJzb25JZCB6dQovLyBlaW5lbSBM
b29rdXAgb2RlciBWZXJnbGVpY2ggd2lyZCwgZHVyY2ggcGlkS2V5KCkgc2NoaWNrZW4uCi8vIEVp
bmdlYmF1dCBpbiBTcHJpbnQgMiDigJQgRGF0ZW5tb2RlbGwtS29uc2lzdGVueiAoMjAyNi0wNS0y
OCkuCmV4cG9ydCBmdW5jdGlvbiBwaWRLZXkoaWQpIHsKICAgIHJldHVybiBpZCA9PSBudWxsID8g
JycgOiBTdHJpbmcoaWQpOwp9CgovLyA9PT09PSBSZW5kZXItRXJyb3ItV3JhcHBlciAoVVgtQXVk
aXQgU3ByaW50IDEuMiwgMjAyNi0wNS0yOSkgPT09PT0KLy8KLy8gQ0xBVURFLm1kLUtvbnZlbnRp
b246IFJlbmRlci1GdW5rdGlvbmVuIHdyYXBwZW4gKyBGZWhsZXJib3ggaW0gQ29udGFpbmVyCi8v
IHN0YXR0IGxlZXJlciBUYWIuIExpZWZlcnQgZWluZSBzaWNodGJhcmUgRmVobGVyYm94IGluIGRl
biBDb250YWluZXIgdW5kCi8vIGxvZ2d0IGRpZSBFeGNlcHRpb24gaW4gZGllIERldlRvb2xzLUNv
bnNvbGUsIGRhbWl0IEJ1Z3MgbmljaHQgc3R1bW0gaW4KLy8gZWluZW0gYmxhbmtlbiBUYWIgdmVy
c2Nod2luZGVuLgpleHBvcnQgZnVuY3Rpb24gcmVuZGVyRXJyb3JCb3goY29udGFpbmVyLCBmZWhs
ZXIsIG1vZHVsbmFtZSkgewogICAgaWYgKCFjb250YWluZXIpIHJldHVybjsKICAgIHRyeSB7IGNv
bnNvbGUuZXJyb3IoJ1tyZW5kZXI6JyArIG1vZHVsbmFtZSArICddJywgZmVobGVyKTsgfSBjYXRj
aCAoXykge30KICAgIHZhciBtc2cgPSAoZmVobGVyICYmIGZlaGxlci5tZXNzYWdlKSA/IGZlaGxl
ci5tZXNzYWdlIDogU3RyaW5nKGZlaGxlcik7CiAgICBjb250YWluZXIuaW5uZXJIVE1MID0KICAg
ICAgICAnPGRpdiBjbGFzcz0icmVuZGVyLWZlaGxlci1ib3giIHJvbGU9ImFsZXJ0IiBhcmlhLWxp
dmU9InBvbGl0ZSI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJyZW5kZXItZmVobGVyLWlj
b24iIGFyaWEtaGlkZGVuPSJ0cnVlIj7imqDvuI88L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYg
Y2xhc3M9InJlbmRlci1mZWhsZXItdGV4dCI+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFz
cz0icmVuZGVyLWZlaGxlci10aXRlbCI+QW56ZWlnZS1GZWhsZXIgaW4g4oCeJyArIGVzY2FwZUhU
TUwobW9kdWxuYW1lIHx8ICc/JykgKyAnIjwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYg
Y2xhc3M9InJlbmRlci1mZWhsZXItZGV0YWlsIj4nICsgZXNjYXBlSFRNTChtc2cpICsgJzwvZGl2
PicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InJlbmRlci1mZWhsZXItaGludCI+Qml0
dGUgU2VpdGUgbmV1IGxhZGVuLiBEZXRhaWxzIHN0ZWhlbiBpbiBkZXIgRGV2VG9vbHMtQ29uc29s
ZSAoRjEyKS48L2Rpdj4nICsKICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8L2Rpdj4n
Owp9CgovLyA9PT09PSBIVE1ML1N0cmluZy1Fc2NhcGluZyA9PT09PQoKZXhwb3J0IGZ1bmN0aW9u
IGVzY2FwZUhUTUwoc3RyKSB7CiAgICBpZiAoc3RyID09IG51bGwgfHwgc3RyID09PSAnJykgcmV0
dXJuICcnOwogICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAg
ZGl2LnRleHRDb250ZW50ID0gU3RyaW5nKHN0cik7CiAgICByZXR1cm4gZGl2LmlubmVySFRNTDsK
fQoKZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUF0dHIoc3RyKSB7CiAgICBpZiAoc3RyID09IG51bGwg
fHwgc3RyID09PSAnJykgcmV0dXJuICcnOwogICAgcmV0dXJuIFN0cmluZyhzdHIpLnJlcGxhY2Uo
LyYvZywgJyZhbXA7JykucmVwbGFjZSgvIi9nLCAnJnF1b3Q7JykucmVwbGFjZSgvJy9nLCAnJiMz
OTsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpOwp9CgovLyA9
PT09PSBEYXR1bSA9PT09PQoKZXhwb3J0IGZ1bmN0aW9uIGRhdHVtU3RyKGQpIHsKICAgIHZhciBt
ID0gZC5nZXRNb250aCgpICsgMSwgdCA9IGQuZ2V0RGF0ZSgpOwogICAgcmV0dXJuIGQuZ2V0RnVs
bFllYXIoKSArICctJyArIChtIDwgMTAgPyAnMCcgOiAnJykgKyBtICsgJy0nICsgKHQgPCAxMCA/
ICcwJyA6ICcnKSArIHQ7Cn0KCmV4cG9ydCBmdW5jdGlvbiBkYXR1bUZvcm1hdERFKHN0cikgewog
ICAgaWYgKCFzdHIpIHJldHVybiAnJzsKICAgIHZhciB0ZWlsZSA9IHN0ci5zcGxpdCgnLScpOwog
ICAgcmV0dXJuIHRlaWxlWzJdICsgJy4nICsgdGVpbGVbMV0gKyAnLicgKyB0ZWlsZVswXTsKfQoK
ZXhwb3J0IGZ1bmN0aW9uIGRhdHVtS3VyekRFKGQpIHsKICAgIHZhciB0ID0gZC5nZXREYXRlKCks
IG0gPSBkLmdldE1vbnRoKCkgKyAxOwogICAgcmV0dXJuICh0IDwgMTAgPyAnMCcgOiAnJykgKyB0
ICsgJy4nICsgKG0gPCAxMCA/ICcwJyA6ICcnKSArIG0gKyAnLic7Cn0KCmV4cG9ydCBmdW5jdGlv
biB3b2NoZW50YWdLdXJ6KGQpIHsKICAgIHZhciBuID0gWydTbycsJ01vJywnRGknLCdNaScsJ0Rv
JywnRnInLCdTYSddOwogICAgcmV0dXJuIG5bZC5nZXREYXkoKV07Cn0KCmV4cG9ydCBmdW5jdGlv
biBpc3RXb2NoZW5lbmRlKGQpIHsgdmFyIHQgPSBkLmdldERheSgpOyByZXR1cm4gdCA9PT0gMCB8
fCB0ID09PSA2OyB9CgovLyBIZXV0aWdlIFNjaGljaHQgKEYvUy9OKSBlaW5lciBQZXJzb24gYXVz
IGRlciBTdGFuZG9ydC1TY2hpY2h0Zm9sZ2UgYWJsZWl0ZW4uCi8vIFN0YW5kb3J0IGhhdCBzY2hp
Y2h0Zm9sZ2VbZGF0dW1dID0gei5CLiAiQUJDIiAoR3J1cHBlIEE9RiwgQj1TLCBDPU4pIG9kZXIK
Ly8gIkJDQSIgKEI9RiwgQz1TLCBBPU4pIG9kZXIgIkNBQiIuIFdlbm4gZGVyIEdydXBwZW4tQ29k
ZSBuaWNodCBpbiBkZXIKLy8gUGVybXV0YXRpb24gc3RlaHQgKHouQi4gV0QvV0wvVkQpIG9kZXIg
ZGVyIFN0YW5kb3J0IGVpbiBQb29sIG9obmUKLy8gU2NoaWNodGZvbGdlIGlzdCwgZ2lidCdzIGtl
aW5lIGVpbmRldXRpZ2UgU2NoaWNodCDigJQgUnVlY2tnYWJlIG51bGwuCi8vIFdpY2h0aWc6IGln
bm9yaWVydCBkZW4gVGFnZXNlaW50cmFnIOKAlCBsaWVmZXJ0IGRpZSBSb3RhdGlvbnMtU2NoaWNo
dCBhdWNoCi8vIGZ1ZXIgd2ZyL2Rmci1UYWdlICh3YXMgc2llIHJlZ3VsYWVyIGFyYmVpdGVuIFdV
RVJERU4pLgpleHBvcnQgZnVuY3Rpb24gcGVyc29uU2NoaWNodEFtKHBlcnNvbiwgZGF0dW0pIHsK
ICAgIGlmICghcGVyc29uIHx8ICFwZXJzb24uZ3J1cHBlIHx8ICFwZXJzb24ub2UpIHJldHVybiBu
dWxsOwogICAgdmFyIHN0YW5kb3J0ID0gKFouYWRtaW4uc3RhbmRvcnRlIHx8IFtdKS5maW5kKGZ1
bmN0aW9uKHMpIHsgcmV0dXJuIChzLmt1ZXJ6ZWwgfHwgJycpID09PSBwZXJzb24ub2U7IH0pOwog
ICAgaWYgKCFzdGFuZG9ydCB8fCBzdGFuZG9ydC5pc3RQb29sKSByZXR1cm4gbnVsbDsKICAgIHZh
ciBwZXJtID0gKHN0YW5kb3J0LnNjaGljaHRmb2xnZSB8fCB7fSlbZGF0dW1dOwogICAgaWYgKCFw
ZXJtIHx8IHR5cGVvZiBwZXJtICE9PSAnc3RyaW5nJyB8fCBwZXJtLmxlbmd0aCAhPT0gMykgcmV0
dXJuIG51bGw7CiAgICB2YXIgcG9zID0gcGVybS5pbmRleE9mKHBlcnNvbi5ncnVwcGUpOwogICAg
aWYgKHBvcyA8IDApIHJldHVybiBudWxsOwogICAgcmV0dXJuIFsnRicsICdTJywgJ04nXVtwb3Nd
Owp9CgovLyA9PT09PSBTdGFtbS1Lb25zdGFudGVuID09PT09CgovLyBTdGFtbS1GdW5rdGlvbmVu
IGVpbmVyIFBlcnNvbi4gRGVyIFJhbmcgYmVzdGltbXQgZGllIFJlaWhlbmZvbGdlIGluIGRlcgov
LyAiYWt0aXZlbiBGdWVocnVuZyIgZWluZXIgU2NoaWNodDogREdMICgwKSA+IFdERiAoMSkgPiAz
LiBQZXJzb24gKDIpID4KLy8gV2FjaGxlaXR1bmcvR3J1cHBlbmZ1ZWhydW5nICgzKS4gR2xlaWNo
ZSBSYW5nd2VydGUgc2luZCBnbGVpY2h3ZXJ0aWcKLy8gKERHTC9ER0xpbiwgV0RGL1dERmluLCAz
LiBNYW5uLzMuIEZyYXUpIHVuZCB3ZXJkZW4gaW5uZXJoYWxiIGR1cmNoIGRpZQovLyByb2hlIHBv
c2l0aW9uLVphaGwgc29ydGllcnQuCi8vCi8vIEFiIDIwMjYtMDUtMTkgc2luZCBGVU5LVElPTkVO
IHVuZCBESUVOU1RHUkFERSBrZWluZSByZWluZW4gQ29kZS0KLy8gS29uc3RhbnRlbiBtZWhyLCBz
b25kZXJuIERFRkFVTFRTLCBkaWUgZGVyIEFkbWluIGluIEFkbWluIC0+IEJlemVpY2gtCi8vIG51
bmdlbiAmIExpc3RlbiB1ZWJlcnNjaHJlaWJlbiBrYW5uLiBMaXZlLVdlcnRlIGxpZWdlbiBpbgov
LyBaLmFkbWluLmZ1bmt0aW9uZW4gYnp3LiBaLmFkbWluLmRpZW5zdGdyYWRlLiBGYWxscyBkaWUg
YWRtaW4uanNvbgovLyBrZWluIGVpZ2VuZXMgRmVsZCB0cmFlZ3QgKHouQi4gZnJpc2NoZSBJbnN0
YWxsYXRpb24pLCBncmVpZnQgZGVyCi8vIERlZmF1bHQgYXVzIGRpZXNlciBEYXRlaS4KLy8gUHJv
IEZ1bmt0aW9uOiBjb2RlLCByYW5nLCBvcHRpb25hbCBpblBsYW51bmcgKERlZmF1bHQgdHJ1ZSku
IFdlbm4KLy8gaW5QbGFudW5nPWZhbHNlLCB3ZXJkZW4gUGVyc29uZW4gbWl0IGRpZXNlciBGdW5r
dGlvbiBuaWNodCBpbiBkZXIKLy8gUGxhbnVuZ3NhbnNpY2h0IC8gV29jaGVucGxhbiAvIFBlcnMu
IFBsYW4gYXVzZ2V3aWVzZW4g4oCUIHNpZSBibGVpYmVuCi8vIGluIGRlciBQZXJzb25hbHZlcndh
bHR1bmcgcGZsZWdiYXIuCmV4cG9ydCB2YXIgRlVOS1RJT05FTl9ERUZBVUxUID0gWwogICAgeyBj
b2RlOiAnTC9EaXJWJywgICAgICAgICByYW5nOiAtMiwgaW5QbGFudW5nOiBmYWxzZSB9LAogICAg
eyBjb2RlOiAnTC9WSTMnLCAgICAgICAgICByYW5nOiAtMSwgaW5QbGFudW5nOiBmYWxzZSB9LAog
ICAgeyBjb2RlOiAnREdMJywgICAgICAgICAgICByYW5nOiAwIH0sCiAgICB7IGNvZGU6ICdER0xp
bicsICAgICAgICAgIHJhbmc6IDAgfSwKICAgIHsgY29kZTogJ1dERicsICAgICAgICAgICAgcmFu
ZzogMSB9LAogICAgeyBjb2RlOiAnV0RGaW4nLCAgICAgICAgICByYW5nOiAxIH0sCiAgICB7IGNv
ZGU6ICczLiBNYW5uJywgICAgICAgIHJhbmc6IDIgfSwKICAgIHsgY29kZTogJzMuIEZyYXUnLCAg
ICAgICAgcmFuZzogMiB9LAogICAgeyBjb2RlOiAnV2FjaGxlaXR1bmcnLCAgICByYW5nOiAzIH0s
CiAgICB7IGNvZGU6ICdHcnVwcGVuZsO8aHJ1bmcnLCByYW5nOiAzIH0KXTsKCi8vIEhlbHBlcjog
bGllZmVydCB0cnVlLCB3ZW5uIGVpbmUgRnVua3Rpb24gaW4gZGVyIFBsYW50YWZlbCBhbmdlemVp
Z3QKLy8gd2VyZGVuIGRhcmYuIERlZmF1bHQgdHJ1ZSAodW5iZWthbm50ZSBGdW5rdGlvbiAvIGtl
aW4gRWludHJhZykuCmV4cG9ydCBmdW5jdGlvbiBmdW5rdGlvbkluUGxhbnVuZyhjb2RlKSB7CiAg
ICBpZiAoIWNvZGUpIHJldHVybiB0cnVlOwogICAgdmFyIGxpc3RlID0gZ2V0RnVua3Rpb25lbigp
OwogICAgdmFyIGYgPSBsaXN0ZS5maW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguY29kZSA9PT0g
Y29kZTsgfSk7CiAgICBpZiAoIWYpIHJldHVybiB0cnVlOwogICAgcmV0dXJuIGYuaW5QbGFudW5n
ICE9PSBmYWxzZTsKfQoKLy8gUmVsZXZhbnRlIERpZW5zdGdyYWRlIGJlaSBWSTMgKFBPSyBiaXMg
TFBEaW4sIGpld2VpbHMgbS93KS4gUmVpaGVuZm9sZ2UKLy8gQUJTVEVJR0VORCBpbSBSYW5nIChM
UERpbiB6dWVyc3QpLCBqZXdlaWxzIG1hc2t1bGluZSB1bmQgZmVtaW5pbmUgRm9ybQovLyB6dXNh
bW1lbiBncnVwcGllcnQuIFBISyogPSBBMTIgKHp3aXNjaGVuIFBISyBBMTEgdW5kIEVQSEsgQTEz
KS4KLy8gUEQgPSBQb2xpemVpZGlyZWt0b3IvaW4gKEExNSksIExQRGluID0gTGVpdGVuZGUgUG9s
aXplaWRpcmVrdG9yaW4gKEExNikuCmV4cG9ydCB2YXIgRElFTlNUR1JBREVfREVGQVVMVCA9IFsn
TFBEaW4nLCAnUEQnLCAiRVBISydpbiIsICdFUEhLJywgIlBISyonaW4iLCAnUEhLKicsICJQSEsn
aW4iLCAnUEhLJywgIlBPSydpbiIsICdQT0snXTsKCi8vIEhlbHBlcjogbGllZmVydCBkaWUgYWt0
dWVsbCBrb25maWd1cmllcnRlIExpc3RlLCBtaXQgRGVmYXVsdCBhbHMgRmFsbGJhY2suCi8vIEF1
ZnJ1ZmVyIGJlbnV0emVuIElNTUVSIGRpZXNlIEZ1bmt0aW9uZW4gc3RhdHQgZGVyIERFRkFVTFQt
S29uc3RhbnRlbi4KZXhwb3J0IGZ1bmN0aW9uIGdldEZ1bmt0aW9uZW4oKSB7CiAgICB2YXIgZiA9
IFouYWRtaW4gJiYgWi5hZG1pbi5mdW5rdGlvbmVuOwogICAgaWYgKEFycmF5LmlzQXJyYXkoZikg
JiYgZi5sZW5ndGgpIHJldHVybiBmOwogICAgcmV0dXJuIEZVTktUSU9ORU5fREVGQVVMVDsKfQpl
eHBvcnQgZnVuY3Rpb24gZ2V0RGllbnN0Z3JhZGUoKSB7CiAgICB2YXIgZCA9IFouYWRtaW4gJiYg
Wi5hZG1pbi5kaWVuc3RncmFkZTsKICAgIGlmIChBcnJheS5pc0FycmF5KGQpICYmIGQubGVuZ3Ro
KSByZXR1cm4gZDsKICAgIHJldHVybiBESUVOU1RHUkFERV9ERUZBVUxUOwp9CgpleHBvcnQgZnVu
Y3Rpb24gZnVua3Rpb25zUmFuZyhjb2RlKSB7CiAgICB2YXIgZiA9IGdldEZ1bmt0aW9uZW4oKS5m
aW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguY29kZSA9PT0gY29kZTsgfSk7CiAgICByZXR1cm4g
ZiA/IGYucmFuZyA6IDk5Owp9CgoKLy8gPT09PT0gUHJvZmlsYmlsZGVyIChBdmF0YXJlKSA9PT09
PQovLwovLyBTcGVpY2hlci1QZmFkIHNlcnZlcnNlaXRpZzogVkkzL2RhdGEvYXZhdGFycy88aWQ+
LmpwZwovLyBQZXJzb24tRGF0ZW5zYXR6IGZ1ZWhydCBhdmF0YXJUcyAobXMtVGltZXN0YW1wKTog
d2lyIGhhZW5nZW4gZGFzIGFuCi8vIGRpZSBVUkwgYWxzIENhY2hlLUJ1c3Rlci4gT2huZSBhdmF0
YXJUcyAtPiBrZWluIEJpbGQgLT4gSW5pdGlhbGVuLQovLyBGYWxsYmFjayBtaXQgc3RhYmlsZXIg
RmFyYmUgKEhhc2ggYXVzIFBlcnNvbklkIG1vZHVsbyBGYXJiLVBhbGV0dGUpLgoKZXhwb3J0IGZ1
bmN0aW9uIGF2YXRhclVybChwKSB7CiAgICBpZiAoIXAgfHwgIXAuYXZhdGFyVHMpIHJldHVybiAn
JzsKICAgIHJldHVybiAnL2RhdGEvYXZhdGFycy8nICsgcC5pZCArICcuanBnP3RzPScgKyBwLmF2
YXRhclRzOwp9CgpleHBvcnQgZnVuY3Rpb24gYXZhdGFySW5pdGlhbGVuKHApIHsKICAgIGlmICgh
cCkgcmV0dXJuICc/JzsKICAgIHZhciB2ID0gKHAudm9ybmFtZSB8fCAnJykudHJpbSgpOwogICAg
dmFyIG4gPSAocC5uYW1lIHx8ICcnKS50cmltKCk7CiAgICB2YXIgaSA9ICcnOwogICAgaWYgKHYp
IGkgKz0gdi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTsKICAgIGlmIChuKSBpICs9IG4uY2hhckF0
KDApLnRvVXBwZXJDYXNlKCk7CiAgICByZXR1cm4gaSB8fCAnPyc7Cn0KCi8vIEVpbmhlaXRsaWNo
ZSBBbnRocmF6aXQtRmFyYmUgZnVlciBhbGxlIEluaXRpYWxlbi1BdmF0YXJlIOKAlCB1bmlmb3Jt
ZXMKLy8gRGVzaWduIHN0YXR0IGJ1bnRlciBIYXNoLVBhbGV0dGUgKFVzZXItRmVlZGJhY2sgMjAy
Ni0wNS0yMykuCnZhciBBVkFUQVJfRkFSQkVfREVGQVVMVCA9ICcjM0EzRjQ3JzsKCmV4cG9ydCBm
dW5jdGlvbiBhdmF0YXJLcmVpc0h0bWwocCwgZ3JvZXNzZSkgewogICAgaWYgKCFwKSByZXR1cm4g
Jyc7CiAgICB2YXIgc2l6ZSA9IGdyb2Vzc2UgfHwgMjY7CiAgICB2YXIgdXJsID0gYXZhdGFyVXJs
KHApOwogICAgLy8gUm91bmRlZCBzcXVhcmUgKGJvcmRlci1yYWRpdXMgbmljaHQgNTAlLCBzb25k
ZXJuIHByb3BvcnRpb25hbCB6dXIKICAgIC8vIEdyb2Vzc2Ug4oCUIGdsZWljaGVyIHZpc3VlbGxl
ciBTdGlsIGJlaSBrbGVpbmVuIHVuZCBncm9zc2VuIEF2YXRhcmVuKS4KICAgIHZhciByYWRpdXMg
PSBNYXRoLm1heCgzLCBNYXRoLnJvdW5kKHNpemUgKiAwLjE4KSk7CiAgICB2YXIgc3R5bGUgPSAn
d2lkdGg6JyArIHNpemUgKyAncHg7aGVpZ2h0OicgKyBzaXplICsgJ3B4O2ZvbnQtc2l6ZTonICsg
TWF0aC5yb3VuZChzaXplICogMC40MikgKyAncHg7Ym9yZGVyLXJhZGl1czonICsgcmFkaXVzICsg
J3B4JzsKICAgIGlmICh1cmwpIHsKICAgICAgICByZXR1cm4gJzxzcGFuIGNsYXNzPSJ2aTMtYXZh
dGFyIHZpMy1hdmF0YXItYmlsZCIgc3R5bGU9IicgKyBzdHlsZSArICc7YmFja2dyb3VuZC1pbWFn
ZTp1cmwoXCcnICsgZXNjYXBlQXR0cih1cmwpICsgJ1wnKSI+PC9zcGFuPic7CiAgICB9CiAgICBy
ZXR1cm4gJzxzcGFuIGNsYXNzPSJ2aTMtYXZhdGFyIHZpMy1hdmF0YXItaW5pdGlhbGVuIiBzdHls
ZT0iJyArIHN0eWxlICsgJztiYWNrZ3JvdW5kOicgKyBBVkFUQVJfRkFSQkVfREVGQVVMVCArICci
PicgKyBlc2NhcGVIVE1MKGF2YXRhckluaXRpYWxlbihwKSkgKyAnPC9zcGFuPic7Cn0KCi8vID09
PT09IFBlcnNvbi1BbnplaWdlID09PT09CgovLyBBbnplaWdlLU5hbWUgZWluZXIgUGVyc29uIChE
aWVuc3RncmFkICsgVm9ybmFtZSArIE5hY2huYW1lKS4KZXhwb3J0IGZ1bmN0aW9uIF9wZXJzb25B
bnplaWdlKHApIHsKICAgIGlmICghcCkgcmV0dXJuICfigJQnOwogICAgdmFyIHZvbGwgPSAoKHAu
dm9ybmFtZSB8fCAnJykgKyAnICcgKyAocC5uYW1lIHx8ICcnKSkudHJpbSgpOwogICAgcmV0dXJu
IHAuZGllbnN0Z3JhZCA/IHAuZGllbnN0Z3JhZCArICcgJyArIHZvbGwgOiB2b2xsOwp9CgovLyBX
YW5kZWx0IGVpbmUgTlctS2VubnVuZyB3aWUgIlBPTElaRUlcbncwNTU4MDEiIG9kZXIgIm53MDU1
ODAxIiBpbiBkZW4KLy8gS2xhcm5hbWVuICgiU2FiaW5lIFJhdWRzenVzIikgdW0sIGluZGVtIFou
cGVyc29uZW4gKyBBZG1pbi1MaXN0ZW4gbmFjaAovLyBwYXNzZW5kZXIgbndLZW5udW5nIGR1cmNo
c3VjaHQgd2VyZGVuLiBGYWxsYmFjazogZGllIEtlbm51bmcgc2VsYnN0Ci8vIChvaG5lIERvbWFp
bi1QcmVmaXgsIGRhbWl0IGRlciBUb2FzdCBuaWNodCBzbyB0ZWNobmlzY2ggd2lya3QpLgpleHBv
cnQgZnVuY3Rpb24gYW56ZWlnZU5hbWVGdWVyS2VubnVuZyhrZW5udW5nKSB7CiAgICBpZiAoIWtl
bm51bmcpIHJldHVybiAnJzsKICAgIHZhciBrID0gU3RyaW5nKGtlbm51bmcpLnRvTG93ZXJDYXNl
KCk7CiAgICB2YXIga0t1cnogPSBrLmluZGV4T2YoJ1xcJykgPj0gMCA/IGsuc3BsaXQoJ1xcJyku
cG9wKCkgOiBrOwogICAgZnVuY3Rpb24gbWF0Y2goZWludHJhZ0tlbm51bmcpIHsKICAgICAgICBp
ZiAoIWVpbnRyYWdLZW5udW5nKSByZXR1cm4gZmFsc2U7CiAgICAgICAgdmFyIGUgPSBTdHJpbmco
ZWludHJhZ0tlbm51bmcpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgcmV0dXJuIGUgPT09IGsgfHwg
ZSA9PT0ga0t1cnogfHwgay5lbmRzV2l0aCgnXFwnICsgZSkgfHwga0t1cnogPT09IGU7CiAgICB9
CiAgICB2YXIgcCA9IChaLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJu
IG1hdGNoKHgubndLZW5udW5nKTsgfSk7CiAgICBpZiAocCkgewogICAgICAgIHZhciB2b2xsID0g
KChwLnZvcm5hbWUgfHwgJycpICsgJyAnICsgKHAubmFtZSB8fCAnJykpLnRyaW0oKTsKICAgICAg
ICBpZiAodm9sbCkgcmV0dXJuIHZvbGw7CiAgICB9CiAgICB2YXIgZmEgPSAoWi5hZG1pbiAmJiBa
LmFkbWluLmZhY2hhdWZzaWNodCB8fCBbXSkuZmluZChmdW5jdGlvbih4KSB7IHJldHVybiBtYXRj
aCh4Lm53S2VubnVuZyk7IH0pOwogICAgaWYgKGZhICYmIGZhLm5hbWUpIHJldHVybiBmYS5uYW1l
OwogICAgdmFyIHN1ID0gKFouYWRtaW4gJiYgWi5hZG1pbi5zdXBlclVzZXIgfHwgW10pLmZpbmQo
ZnVuY3Rpb24oeCkgeyByZXR1cm4gbWF0Y2goeC5ud0tlbm51bmcpOyB9KTsKICAgIGlmIChzdSAm
JiBzdS5uYW1lKSByZXR1cm4gc3UubmFtZTsKICAgIHJldHVybiBrS3VyeiB8fCBTdHJpbmcoa2Vu
bnVuZyk7Cn0KCi8vIEUtTWFpbC1BZHJlc3NlIGRlcyBlaW5nZWxvZ2d0ZW4gUGxhbmVuZGVuIChm
dWVyIENDIGJlaSBWZXJhbnR3b3J0dW5ncy1NYWlscykuCi8vIEJldm9yenVndCBkaWUgenVnZW9y
ZG5ldGUgUGxhbi1QZXJzb24sIHNvbnN0IE1hdGNoIHVlYmVyIGRpZSBOVy1LZW5udW5nIGluCi8v
IFBlcnNvbmVuIC8gRmFjaGF1ZnNpY2h0IC8gU3VwZXJVc2VyLiAnJyB3ZW5uIG5pY2h0cyBoaW50
ZXJsZWd0LgpleHBvcnQgZnVuY3Rpb24gYXVzbG9lc2VyRW1haWxFcm1pdHRlbG4oKSB7CiAgICBp
ZiAoWi5tZWluZVBlcnNvbklkICE9IG51bGwpIHsKICAgICAgICB2YXIgbXAgPSAoWi5wZXJzb25l
biB8fCBbXSkuZmluZChmdW5jdGlvbih4KSB7IHJldHVybiBTdHJpbmcoeC5pZCkgPT09IFN0cmlu
ZyhaLm1laW5lUGVyc29uSWQpOyB9KTsKICAgICAgICBpZiAobXAgJiYgbXAuZW1haWwpIHJldHVy
biBtcC5lbWFpbDsKICAgIH0KICAgIHZhciBiID0gKFouYmVudXR6ZXIgfHwgJycpLnRvTG93ZXJD
YXNlKCk7CiAgICB2YXIgYkt1cnogPSBiLnNwbGl0KCdcXCcpLnBvcCgpOwogICAgZnVuY3Rpb24g
bWF0Y2goaykgeyBpZiAoIWspIHJldHVybiBmYWxzZTsgayA9IFN0cmluZyhrKS50b0xvd2VyQ2Fz
ZSgpOyByZXR1cm4gayA9PT0gYiB8fCBrID09PSBiS3VyeiB8fCBiLmVuZHNXaXRoKCdcXCcgKyBr
KTsgfQogICAgdmFyIHAgPSAoWi5wZXJzb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbih4KSB7IHJl
dHVybiBtYXRjaCh4Lm53S2VubnVuZykgJiYgeC5lbWFpbDsgfSk7CiAgICBpZiAocCkgcmV0dXJu
IHAuZW1haWw7CiAgICB2YXIgZmEgPSAoWi5hZG1pbiAmJiBaLmFkbWluLmZhY2hhdWZzaWNodCB8
fCBbXSkuZmluZChmdW5jdGlvbih4KSB7IHJldHVybiBtYXRjaCh4Lm53S2VubnVuZykgJiYgeC5l
bWFpbDsgfSk7CiAgICBpZiAoZmEpIHJldHVybiBmYS5lbWFpbDsKICAgIHZhciBzdSA9IChaLmFk
bWluICYmIFouYWRtaW4uc3VwZXJVc2VyIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJu
IG1hdGNoKHgubndLZW5udW5nKSAmJiB4LmVtYWlsOyB9KTsKICAgIGlmIChzdSkgcmV0dXJuIHN1
LmVtYWlsOwogICAgcmV0dXJuICcnOwp9CgovLyBGaW5kZXQgZGVuIEFkbWluLUxpc3Rlbi1FaW50
cmFnIChGYWNoYXVmc2ljaHQgb2RlciBTdXBlclVzZXIpLCBkZXIgenVyCi8vIGFrdHVlbGxlbiBO
Vy1LZW5udW5nIHBhc3N0IOKAlCBmdWVyIEFic2VuZGVyLU5hbWUgaW4gZGVyIGdlbmVyaWVydGVu
IE1haWwuCmV4cG9ydCBmdW5jdGlvbiBhYnNlbmRlck5hbWVFcm1pdHRlbG4oKSB7CiAgICB2YXIg
YiA9IChaLmJlbnV0emVyIHx8ICcnKS50b0xvd2VyQ2FzZSgpOwogICAgdmFyIGJLdXJ6ID0gYi5z
cGxpdCgnXFwnKS5wb3AoKTsKICAgIGZ1bmN0aW9uIG1hdGNoS2VubnVuZyhrKSB7CiAgICAgICAg
aWYgKCFrKSByZXR1cm4gZmFsc2U7CiAgICAgICAgayA9IGsudG9Mb3dlckNhc2UoKTsKICAgICAg
ICByZXR1cm4gayA9PT0gYiB8fCBrID09PSBiS3VyeiB8fCBiLmVuZHNXaXRoKCdcXCcgKyBrKTsK
ICAgIH0KICAgIHZhciBmYSA9IG51bGw7CiAgICAoWi5hZG1pbi5mYWNoYXVmc2ljaHQgfHwgW10p
LmZvckVhY2goZnVuY3Rpb24oZikgeyBpZiAobWF0Y2hLZW5udW5nKGYubndLZW5udW5nKSkgZmEg
PSBmOyB9KTsKICAgIGlmIChmYSAmJiBmYS5uYW1lKSByZXR1cm4gZmEubmFtZTsKICAgIHZhciBz
dSA9IG51bGw7CiAgICAoWi5hZG1pbi5zdXBlclVzZXIgfHwgW10pLmZvckVhY2goZnVuY3Rpb24o
cykgeyBpZiAobWF0Y2hLZW5udW5nKHMubndLZW5udW5nKSkgc3UgPSBzOyB9KTsKICAgIGlmIChz
dSAmJiBzdS5uYW1lKSByZXR1cm4gc3UubmFtZTsKICAgIHJldHVybiBaLmJlbnV0emVyIHx8ICdW
STMgREdMLVBsYW51bmcnOwp9Cg==
### FILE: js/email_vorlagen.js | 41671
Ly8gPT09IGVtYWlsL2VtYWlsLXZvcmxhZ2VuLmpzID09PQovLyBTdGFuZDogMjAyNi0wNS0xNAov
LyBWSTMtc3BlemlmaXNjaDogRS1NYWlsLVZvcmxhZ2VuIChEZWZhdWx0cyArIGFkbWluLmpzb24t
T3ZlcnJpZGUpIHVuZAovLyBtYWlsdG86LUF1dG8tVHJpZ2dlci1EaXNwYXRjaGVyIGZ1ZXIgS3Jh
bmttZWxkdW5nLCBJZGVudGl0YWV0cy0vUm9sbGVuLQovLyBBZW5kZXJ1bmcsIEJhY2t1cC1XaWVk
ZXJoZXJzdGVsbHVuZywgUGxhbnVuZ3MtUmVzZXQsIERlZml6aXQtQnJpZWZpbmcsCi8vIFZlcmFu
dHdvcnR1bmdzLVVlYmVyZ2FuZywgQmVzZXR6dW5ncy1BbmZyYWdlLiBWZXJzYW5kOiBhdXNzY2hs
aWVzc2xpY2gKLy8gbWFpbHRvOjsgZGVyIFVzZXIgcHJ1ZWZ0IGRpZSBNYWlsIGluIE91dGxvb2sg
dW5kIHNlbmRldCBtYW51ZWxsLgovLwovLyBIb29rczogaHRtbEF1c0ZlbGQgKFBoYXNlIDgg4oCU
IGFkbWluLUhlbHBlciwgZGVyIERlZmF1bHQtUGxhaW50ZXh0IHp1Ci8vIEhUTUwga29udmVydGll
cnQgYmVpbSBNb2RhbC1PcGVuKS4KCmltcG9ydCB7IFogfSBmcm9tICcuL2NvcmVfc3RhdGUuanMn
OwppbXBvcnQgeyBlc2NhcGVIVE1MLCBlc2NhcGVBdHRyLCBhYnNlbmRlck5hbWVFcm1pdHRlbG4g
fSBmcm9tICcuL2NvcmVfdXRpbC5qcyc7CmltcG9ydCB7IHRvYXN0LCBtb2RhbFplaWdlbiwgbW9k
YWxTY2hsaWVzc2VuLCBlbnR3dXJmTG9lc2NoZW4gfSBmcm9tICcuL3VpX2RpYWxvZy5qcyc7Cmlt
cG9ydCB7IHNhbml0aXplUmljaEh0bWwsIHJ0ZUluaXQgfSBmcm9tICcuL3VpX3J0ZS5qcyc7Cmlt
cG9ydCB7IGFwaVB1dCB9IGZyb20gJy4vY29yZV9hcGkuanMnOwoKLy8gPT09PT0gSG9va3MgPT09
PT0KCmV4cG9ydCB2YXIgZW1haWxIb29rcyA9IHsKICAgIGh0bWxBdXNGZWxkOiBudWxsICAvLyBQ
aGFzZSA4OiBrb252ZXJ0aWVydCBQbGFpbi1UZXh0LUZlbGQgenUgSFRNTCBmdWVyIGRlbiBSVEUt
RWRpdG9yCn07CgovLyA9PT09PSBLb25zdGFudGVuID09PT09CgovLyBEZWZhdWx0LVRlbXBsYXRl
LCBkYXMgZ3JlaWZ0IHdlbm4gaW4gYWRtaW4uanNvbiBub2NoIG5pY2h0cyBlaW5nZXRyYWdlbiBp
c3QuCi8vIFZhcmlhYmxlbiBzaWVoZSBIaW53ZWlzdGV4dCBpbSBBZG1pbi1UYWIgYnp3LiBlbWFp
bFZvcmxhZ2VCZWZ1ZWxsZW4oKS4KLy8gQWxsZSBWb3JsYWdlbi1UZXh0ZSBzaW5kIGluIGRlciBE
dS1Gb3JtIGZvcm11bGllcnQg4oCUIGtvbGxlZ2lhbCwKLy8gZnJldW5kbGljaCwgcHJvZmVzc2lv
bmVsbC4gTWFpbHRvOi1CdWlsZGVyIGZ1ZXIgZGllIFNhbW1lbC1WYXJpYW50ZQovLyAoc2FtbWVs
QW5mcmFnZU1haWxPZWZmbmVuIGluIGJlc2V0enVuZy5qcykgcHJ1ZWZ0LCBvYiBudXIgZWluCi8v
IEVtcGZhZW5nZXIgYXVzZ2V3YWVobHQgaXN0IHVuZCBlcnNldHp0ICdIYWxsbyB6dXNhbW1lbicg
aW1wbGl6aXQKLy8gZHVyY2ggJ0hhbGxvIHtlbXBmYWVuZ2VyX3Zvcm5hbWV9JyB2aWEgQ29udGV4
dC1WYXJpYWJsZS4KZXhwb3J0IHZhciBFTUFJTF9WT1JMQUdFTl9ERUZBVUxUID0gewogICAgLy8g
U2FtbWVsLUFuZnJhZ2UgKG1laHJlcmUgS2FuZGlkYXRlbiBnbGVpY2h6ZWl0aWcpOiBQbHVyYWwt
QW5yZWRlLAogICAgLy8gRW1wZmFlbmdlciBhbHMgQkNDIChEYXRlbnNjaHV0ejogYW5kZXJlIEFk
cmVzc2F0ZW4gbmljaHQgc2ljaHRiYXIpLgogICAgLy8gV2lyZCBiZW51dHp0LCB3ZW5uIGF1cyBk
ZW0gVGFnLURldGFpbCBtZWhyZXJlIFBlcnNvbmVuIG1hcmtpZXJ0CiAgICAvLyB3ZXJkZW4g4oCU
IFNpbmd1bGFyLVZhcmlhbnRlICdiZXNldHp1bmdzQW5mcmFnZV9laW56ZWxuJyBzaWVoZSB1bnRl
bi4KICAgIGJlc2V0enVuZ3NBbmZyYWdlOiB7CiAgICAgICAgYmV0cmVmZjogJ0F1c2hpbGZlIGdl
c3VjaHQ6IHtzY2hpY2h0fXNjaGljaHQgYW0ge2RhdHVtfSAoe2lzdH0ve3NvbGx9KScsCiAgICAg
ICAgdGV4dDogJ0hhbGxvIHp1c2FtbWVuLFxuXG4nICsKICAgICAgICAgICAgICAnYW0ge2RhdHVt
fSAoe3dvY2hlbnRhZ30pIGlzdCBkaWUge3NjaGljaHR9c2NoaWNodCBha3R1ZWxsIHVudGVyYmVz
ZXR6dCDigJQgbnVyIHtpc3R9IHZvbiB7c29sbH0gRsO8aHJ1bmdza3LDpGZ0ZW4gZWluZ2VwbGFu
dC5cblxuJyArCiAgICAgICAgICAgICAgJ0lociBoYWJ0IGFuIGRlbSBUYWcgamV3ZWlscyBkaWVu
c3RmcmVpIG9kZXIgd2FjaGZyZWkgZWluZ2V0cmFnZW4uIE1hZyBqZW1hbmQgdm9uIEV1Y2ggbm9j
aCBlaW5tYWwgc2NoYXVlbiwgb2IgZXIgb2RlciBzaWUgYW4gZGVtIFRhZyBhdXNoZWxmZW4ga8O2
bm50ZT8gSWNoIHdlacOfLCBkYXMgaXN0IGt1cnpmcmlzdGlnIOKAlCB3ZW5uIGVzIGJlaSBuaWVt
YW5kZW0gcGFzc3QsIGlzdCBkYXMgYXVjaCBpbiBPcmRudW5nLCBkYW5uIGZyYWdlIGljaCB3ZWl0
ZXIuXG5cbicgKwogICAgICAgICAgICAgICdCZWkgRnJhZ2VuIG9kZXIga3VyemVtIFRlbGVmb25h
dDogbWVsZGV0IGV1Y2ggZWluZmFjaC5cblxuJyArCiAgICAgICAgICAgICAgJ0RhbmtlIHVuZCB2
aWVsZSBHcsO8w59lXG4nICsKICAgICAgICAgICAgICAne2Fic2VuZGVyX25hbWV9JywKICAgICAg
ICBlbXBmYWVuZ2VySW1CY2M6IHRydWUKICAgIH0sCiAgICAvLyBFaW56ZWwtQW5mcmFnZSAoZ2Vu
YXUgZWluIEthbmRpZGF0IG1hcmtpZXJ0KTogcGVyc29lbmxpY2hlIER1LUZvcm0KICAgIC8vIHVu
ZCBTaW5ndWxhci1BbnNwcmFjaGUsIEVtcGZhZW5nZXIgZGlyZWt0IGltIEFuLUZlbGQgKGtlaW4g
R3J1bmQKICAgIC8vIGZ1ZXIgQkNDLCB3ZWlsIG51ciBlaW5lIFBlcnNvbikuCiAgICBiZXNldHp1
bmdzQW5mcmFnZV9laW56ZWxuOiB7CiAgICAgICAgYmV0cmVmZjogJ0F1c2hpbGZlIGdlc3VjaHQ6
IHtzY2hpY2h0fXNjaGljaHQgYW0ge2RhdHVtfScsCiAgICAgICAgdGV4dDogJ0hhbGxvIHtlbXBm
YWVuZ2VyX3Zvcm5hbWV9LFxuXG4nICsKICAgICAgICAgICAgICAnYW0ge2RhdHVtfSAoe3dvY2hl
bnRhZ30pIGlzdCBkaWUge3NjaGljaHR9c2NoaWNodCBha3R1ZWxsIHVudGVyYmVzZXR6dCDigJQg
bnVyIHtpc3R9IHZvbiB7c29sbH0gRsO8aHJ1bmdza3LDpGZ0ZW4gZWluZ2VwbGFudC5cblxuJyAr
CiAgICAgICAgICAgICAgJ0R1IGhhc3QgYW4gZGVtIFRhZyBkaWVuc3RmcmVpIG9kZXIgd2FjaGZy
ZWkgZWluZ2V0cmFnZW4uIE1hZ3N0IER1IG5vY2ggZWlubWFsIHNjaGF1ZW4sIG9iIER1IGFuIGRl
bSBUYWcgYXVzaGVsZmVuIGvDtm5udGVzdD8gSWNoIHdlacOfLCBkYXMgaXN0IGt1cnpmcmlzdGln
IOKAlCB3ZW5uIGVzIGJlaSBEaXIgbmljaHQgcGFzc3QsIGlzdCBkYXMgdsO2bGxpZyBpbiBPcmRu
dW5nLCBkYW5uIGZyYWdlIGljaCB3ZWl0ZXIuXG5cbicgKwogICAgICAgICAgICAgICdXZW5uIER1
IEZyYWdlbiBoYXN0IG9kZXIga3VyeiB0ZWxlZm9uaWVyZW4gbcO2Y2h0ZXN0LCBtZWxkZSBEaWNo
IGVpbmZhY2guXG5cbicgKwogICAgICAgICAgICAgICdEYW5rZSB1bmQgdmllbGUgR3LDvMOfZVxu
JyArCiAgICAgICAgICAgICAgJ3thYnNlbmRlcl9uYW1lfScsCiAgICAgICAgZW1wZmFlbmdlcklt
QmNjOiBmYWxzZQogICAgfSwKICAgIC8vIEVJTkUgU2FtbWVsLU1haWwgYmVpIGplZGVtIFZlcmFu
dHdvcnR1bmdzd2VjaHNlbCBpbm5lcmhhbGIgZGVzIDE0LVRhZ2UtCiAgICAvLyBWZXJiaW5kbGlj
aGtlaXRzZmVuc3RlcnMuIEluZm9ybWllcnQgaW4gRUlORVIgTWFpbCBBTExFIEJldHJvZmZlbmVu
OiB3ZXIKICAgIC8vIG5ldSBpbiBkaWUgVG9wLTItRnVlaHJ1bmcgYXVmcnVlY2t0IFVORCB3ZXIg
ZGFkdXJjaCBoZXJhdXNmYWVsbHQgKHVuZAogICAgLy8gZmxleGlibGVyIHBsYW5lbiBrYW5uKS4g
RGllIGVpbnplbG5lbiBCZXdlZ3VuZ2VuIHN0ZWhlbiBhbHMgZ2VuZXJpZXJ0ZXIKICAgIC8vIEJs
b2NrIGltIFBsYXR6aGFsdGVyIHt3ZWNoc2VsX2Jsb2NrfS4gQmV3dXNzdCBFSU5FIE1haWwgYW4g
YWxsZSBzdGF0dAogICAgLy8gbWVocmVyZXIgRWluemVsLU1haWxzIOKAlCBzbyBtdXNzIGRlciBQ
bGFuZW5kZSBudXIgZWlubWFsIGtsaWNrZW4uCiAgICB2ZXJhbnR3b3J0dW5nc1VlYmVyZ2FuZzog
ewogICAgICAgIGJldHJlZmY6ICdWZXJhbnR3b3J0dW5nc3dlY2hzZWw6IHtzY2hpY2h0fXNjaGlj
aHQgYW0ge2RhdHVtfScsCiAgICAgICAgdGV4dDogJ0hhbGxvLFxuXG4nICsKICAgICAgICAgICAg
ICAnZHVyY2ggZWluZSBQbGFudW5nc8OkbmRlcnVuZyBhbSB7ZGF0dW19ICh7d29jaGVudGFnfSkg
w6RuZGVydCBzaWNoIGRpZSBGw7xocnVuZ3MtVmVyYW50d29ydHVuZyBkZXIge3NjaGljaHR9c2No
aWNodDpcblxuJyArCiAgICAgICAgICAgICAgJ3t3ZWNoc2VsX2Jsb2NrfVxuXG4nICsKICAgICAg
ICAgICAgICAnRGllIMOEbmRlcnVuZyBsaWVndCBpbm5lcmhhbGIgZGVzIDE0LVRhZ2UtVmVyYmlu
ZGxpY2hrZWl0c2ZlbnN0ZXJzIOKAlCBiaXR0ZSBrdXJ6IHByw7xmZW4sIG9iIGFsbGVzIHBhc3N0
LCBvZGVyIGVpbmUga3VyemUgUsO8Y2ttZWxkdW5nIGdlYmVuLlxuXG4nICsKICAgICAgICAgICAg
ICAnVmllbGUgR3LDvMOfZVxuJyArCiAgICAgICAgICAgICAgJ3thYnNlbmRlcl9uYW1lfScsCiAg
ICAgICAgY2NBbmRlcmVyRGdsOiB0cnVlLAogICAgICAgIGJjY0dlc2FtdHZlcmFudHdvcnRsaWNo
OiB0cnVlLAogICAgICAgIGNjQXVzbG9lc2VyOiB0cnVlCiAgICB9LAogICAgLy8gU1UtIG9kZXIg
R2VzYW10dmVyYW50d29ydGxpY2gtU3RhdHVzIGhhdCBzaWNoIGdlYWVuZGVydCAocmVpbi9yYXVz
KS4KICAgIC8vIFdpcmQgdm9tIFNlcnZlciBiZWkgL2FwaS9hZG1pbi9zdXBlcnVzZXIgYnp3LiAv
YXBpL2FkbWluL2ZhY2hhdWZzaWNodAogICAgLy8gaW0gUmVzcG9uc2UgYWxzIF9icmF1Y2h0X21h
aWx0byBhbmdlemVpZ3Q7IENsaWVudCBvZWZmbmV0IGRpZSBPdXRsb29rLQogICAgLy8gVm9ybGFn
ZS4gSW0gR2VnZW5zYXR6IHp1IHZlcmFudHdvcnR1bmdzVWViZXJnYW5nIGlzdCBkYXMgS0VJTgog
ICAgLy8gU2NoaWNodGJldHJpZWItRXJlaWduaXMsIHNvbmRlcm4gZWluIGFkbWluaXN0cmF0aXZl
ciBSb2xsZW4tV2VjaHNlbC4KICAgIHJvbGxlX3ZlcmFudHdvcnR1bmc6IHsKICAgICAgICBiZXRy
ZWZmOiAne3JvbGxlfToge25hbWV9IHtyaWNodHVuZ192ZXJifScsCiAgICAgICAgdGV4dDogJ0hh
bGxvIHtuYW1lfSxcblxuJyArCiAgICAgICAgICAgICAgJ2R1IHd1cmRlc3Qge3JpY2h0dW5nX3Zl
cmJ9OlxuXG4nICsKICAgICAgICAgICAgICAnICBSb2xsZTogICAge3JvbGxlfVxuJyArCiAgICAg
ICAgICAgICAgJyAgV2lya3NhbTogIGFiIHNvZm9ydFxuXG4nICsKICAgICAgICAgICAgICAnQmVp
IFLDvGNrZnJhZ2VuIG1lbGRlIGRpY2ggYmVpbSBHZXNhbXR2ZXJhbnR3b3J0bGljaGVuIG9kZXIg
ZWluZW0gU3VwZXJVc2VyLlxuXG4nICsKICAgICAgICAgICAgICAnVmllbGUgR3LDvMOfZVxuJyAr
CiAgICAgICAgICAgICAgJ3thYnNlbmRlcl9uYW1lfScKICAgIH0sCiAgICAvLyBBdXRvLVRyaWdn
ZXItVm9ybGFnZW4g4oCUIHdlcmRlbiBiZWltIHBhc3NlbmRlbiBTYXZlLUNhbGxiYWNrCiAgICAv
LyAoU2NoaWNodC1FZGl0L1BlcnNvbi1TYXZlL0JhY2t1cC1SZXN0b3JlL1Jlc2V0L1NVK0ZBLURp
ZmYpIHZvbQogICAgLy8gRnJvbnRlbmQtRGlzcGF0Y2hlciBtYWlsVHJpZ2dlckZldWVybigpIGFs
cyBtYWlsdG86LVBvcHVwIGF1ZmdlcnVmZW4uCiAgICAvLyBFbXBmYWVuZ2VybGlzdGUgcHJvIFRy
aWdnZXIgaW4gYWRtaW4uZW1haWxUcmlnZ2VyLjx0eXA+LmVtcGZhZW5nZXIuCiAgICAvLyBWb3Js
YWdlbi1IVE1MIHdpcmQgYmVpbSBWZXJzYW5kIHZpYSBodG1sWnVQbGFpblRleHQoKSBpbiBLbGFy
dGV4dAogICAgLy8gdW1nZXdhbmRlbHQgKG1haWx0bzoga2FubiBrZWluZSBIVE1MLU1haWxzKS4K
ICAgIGtyYW5rbWVsZHVuZzogewogICAgICAgIGJldHJlZmY6ICdLcmFua21lbGR1bmc6IHtwZXJz
b25fbmFtZX0gYW0ge2RhdHVtfSAoe3NjaGljaHR9KScsCiAgICAgICAgdGV4dDogJzxwPkhhbGxv
LDwvcD4nICsKICAgICAgICAgICAgICAnPHA+ZsO8ciB7cGVyc29uX25hbWV9IGlzdCBlaW5lIEty
YW5rbWVsZHVuZyBlaW5nZXRyYWdlbiB3b3JkZW46PC9wPjx1bD4nICsKICAgICAgICAgICAgICAn
PGxpPjxzdHJvbmc+RGF0dW06PC9zdHJvbmc+IHtkYXR1bX0gKHt3b2NoZW50YWd9KTwvbGk+JyAr
CiAgICAgICAgICAgICAgJzxsaT48c3Ryb25nPlNjaGljaHQ6PC9zdHJvbmc+IHtzY2hpY2h0fTwv
bGk+JyArCiAgICAgICAgICAgICAgJzxsaT48c3Ryb25nPkNvZGU6PC9zdHJvbmc+IHtjb2RlfTwv
bGk+JyArCiAgICAgICAgICAgICAgJzxsaT48c3Ryb25nPkVpbmdldHJhZ2VuIHZvbjo8L3N0cm9u
Zz4ge2F1c2zDtnNlcn08L2xpPicgKwogICAgICAgICAgICAgICc8L3VsPjxwPkJpdHRlIGVpbm1h
bCBzY2hhdWVuLCBvYiBFcnNhdHogb3JnYW5pc2llcnQgd2VyZGVuIG11c3MuIERhbmtlITwvcD4n
CiAgICB9LAogICAgaWRlbnRpdGFldF9nZWFlbmRlcnQ6IHsKICAgICAgICBiZXRyZWZmOiAnSWRl
bnRpdMOkdHMtRGF0ZW4gZ2XDpG5kZXJ0OiB7cGVyc29uX25hbWV9JywKICAgICAgICB0ZXh0OiAn
PHA+SGFsbG8sPC9wPicgKwogICAgICAgICAgICAgICc8cD5mb2xnZW5kZSBJZGVudGl0w6R0cy1E
YXRlbiB3dXJkZW4gZ2XDpG5kZXJ0OjwvcD48dWw+JyArCiAgICAgICAgICAgICAgJzxsaT48c3Ry
b25nPlBlcnNvbjo8L3N0cm9uZz4ge3BlcnNvbl9uYW1lfTwvbGk+JyArCiAgICAgICAgICAgICAg
JzxsaT48c3Ryb25nPkdlw6RuZGVydGVzIEZlbGQ6PC9zdHJvbmc+IHtmZWxkfTwvbGk+JyArCiAg
ICAgICAgICAgICAgJzxsaT48c3Ryb25nPlZvcmhlcjo8L3N0cm9uZz4ge2FsdGVyX3dlcnR9PC9s
aT4nICsKICAgICAgICAgICAgICAnPGxpPjxzdHJvbmc+TmFjaGhlcjo8L3N0cm9uZz4ge25ldWVy
X3dlcnR9PC9saT4nICsKICAgICAgICAgICAgICAnPGxpPjxzdHJvbmc+R2XDpG5kZXJ0IHZvbjo8
L3N0cm9uZz4ge2F1c2zDtnNlcn08L2xpPicgKwogICAgICAgICAgICAgICc8L3VsPjxwPkZhbGxz
IGRpZXNlIMOEbmRlcnVuZyBuaWNodCBkdXJjaCBkaWNoIG9kZXIgbWl0IGRlaW5lbSBXaXNzZW4g
ZXJmb2xndCBpc3QsIG1lbGRlIGRpY2ggYml0dGUgdW1nZWhlbmQgYmVpIGVpbmVtIFN1cGVyVXNl
ci48L3A+JwogICAgfSwKICAgIHJvbGxlX2dlYWVuZGVydDogewogICAgICAgIGJldHJlZmY6ICdS
b2xsZW4tU3RhdHVzIGdlw6RuZGVydDoge3BlcnNvbl9uYW1lfSDihpIge25ldWVfcm9sbGV9JywK
ICAgICAgICB0ZXh0OiAnPHA+SGFsbG8sPC9wPicgKwogICAgICAgICAgICAgICc8cD5kZXIgUm9s
bGVuLVN0YXR1cyB3dXJkZSBnZcOkbmRlcnQ6PC9wPjx1bD4nICsKICAgICAgICAgICAgICAnPGxp
PjxzdHJvbmc+UGVyc29uOjwvc3Ryb25nPiB7cGVyc29uX25hbWV9PC9saT4nICsKICAgICAgICAg
ICAgICAnPGxpPjxzdHJvbmc+Um9sbGU6PC9zdHJvbmc+IHtyb2xsZV90eXB9PC9saT4nICsKICAg
ICAgICAgICAgICAnPGxpPjxzdHJvbmc+QWt0aW9uOjwvc3Ryb25nPiB7YWt0aW9ufTwvbGk+JyAr
CiAgICAgICAgICAgICAgJzxsaT48c3Ryb25nPkdlw6RuZGVydCB2b246PC9zdHJvbmc+IHthdXNs
w7ZzZXJ9PC9saT4nICsKICAgICAgICAgICAgICAnPC91bD48cD5OdXIgenUgZGVpbmVyIEluZm9y
bWF0aW9uIOKAlCBiZWkgRnJhZ2VuIGVpbmZhY2ggbWVsZGVuLjwvcD4nCiAgICB9LAogICAgYmFj
a3VwX3dpZWRlcmhlcmdlc3RlbGx0OiB7CiAgICAgICAgYmV0cmVmZjogJ0JhY2t1cCB3aWVkZXJo
ZXJnZXN0ZWxsdDoge2RhdGVpbmFtZX0nLAogICAgICAgIHRleHQ6ICc8cD5IYWxsbyw8L3A+JyAr
CiAgICAgICAgICAgICAgJzxwPmVpbiBCYWNrdXAgd3VyZGUgd2llZGVyaGVyZ2VzdGVsbHQ6PC9w
Pjx1bD4nICsKICAgICAgICAgICAgICAnPGxpPjxzdHJvbmc+UXVlbGwtRGF0ZWk6PC9zdHJvbmc+
IHtkYXRlaW5hbWV9PC9saT4nICsKICAgICAgICAgICAgICAnPGxpPjxzdHJvbmc+SW5oYWx0Ojwv
c3Ryb25nPiB7aW5oYWx0fTwvbGk+JyArCiAgICAgICAgICAgICAgJzxsaT48c3Ryb25nPlNpY2hl
cnVuZyBkZXIgdm9yaGVyaWdlbiBEYXRlbjo8L3N0cm9uZz4ge3NpY2hlcnVuZ308L2xpPicgKwog
ICAgICAgICAgICAgICc8bGk+PHN0cm9uZz5XaWVkZXJoZXJnZXN0ZWxsdCB2b246PC9zdHJvbmc+
IHthdXNsw7ZzZXJ9PC9saT4nICsKICAgICAgICAgICAgICAnPC91bD48cD5OdXIgenVyIEluZm9y
bWF0aW9uLjwvcD4nCiAgICB9LAogICAgcGxhbnVuZ19yZXNldDogewogICAgICAgIGJldHJlZmY6
ICdQbGFudW5nIHp1csO8Y2tnZXNldHp0JywKICAgICAgICB0ZXh0OiAnPHA+SGFsbG8sPC9wPicg
KwogICAgICAgICAgICAgICc8cD5kaWUgZ2VzYW10ZSBQbGFudW5nIHd1cmRlIHp1csO8Y2tnZXNl
dHp0OjwvcD48dWw+JyArCiAgICAgICAgICAgICAgJzxsaT48c3Ryb25nPkF1dG8tQmFja3VwIHZv
cmFiOjwvc3Ryb25nPiB7c2ljaGVydW5nfTwvbGk+JyArCiAgICAgICAgICAgICAgJzxsaT48c3Ry
b25nPlp1csO8Y2tnZXNldHp0IHZvbjo8L3N0cm9uZz4ge2F1c2zDtnNlcn08L2xpPicgKwogICAg
ICAgICAgICAgICc8L3VsPjxwPkJlaSBCZWRhcmYga8O2bm5lbiB3aXIgZGFzIEF1dG8tQmFja3Vw
IGplZGVyemVpdCB3aWVkZXIgZWluc3BpZWxlbi48L3A+JwogICAgfSwKICAgIGRlZml6aXRfYnJp
ZWZpbmc6IHsKICAgICAgICBiZXRyZWZmOiAnVMOkZ2xpY2hlcyBEZWZpeml0LUJyaWVmaW5nOiB7
ZGVmaXppdF9hbnphaGx9IFRhZyhlKSBtaXQgVW50ZXJiZXNldHp1bmcnLAogICAgICAgIHRleHQ6
ICc8cD5IYWxsbyw8L3A+JyArCiAgICAgICAgICAgICAgJzxwPlN0YW5kIGhldXRlIG1vcmdlbiDi
gJQgRsO8aHJ1bmdzLVVudGVyYmVzZXR6dW5nZW4gaW4gZGVuIG7DpGNoc3RlbiA0IFdvY2hlbjo8
L3A+JyArCiAgICAgICAgICAgICAgJzxwPjxzdHJvbmc+e2RlZml6aXRfYW56YWhsfTwvc3Ryb25n
PiB2b24ge2dlc2FtdF9hbnphaGx9IFRhZ2VuIHNpbmQgbmljaHQgdm9sbHN0w6RuZGlnIGJlc2V0
enQuPC9wPicgKwogICAgICAgICAgICAgICc8cD57ZGVmaXppdF9saXN0ZV9odG1sfTwvcD4nICsK
ICAgICAgICAgICAgICAnPHA+RGV0YWlscyBmaW5kZXN0IGR1IGltIFRhYiA8ZW0+UHLDvGZ1bmc8
L2VtPi4gQmVpIFLDvGNrZnJhZ2VuIGVpbmZhY2ggbWVsZGVuLjwvcD4nCiAgICB9Cn07CgovLyBN
ZXRhLURhdGVuIGRlciBFLU1haWwtU3plbmFyaWVuIOKAlCBzdGV1ZXJ0IEthcnRlbi1MaXN0ZSwg
TW9kYWwtVmFyaWFibGVuLCBUb2dnbGVzLgpleHBvcnQgdmFyIEVNQUlMX1ZBUklBQkxFTl9CRVND
SFJFSUJVTkcgPSB7CiAgICBkYXR1bTogICAgICAgICAgICdEYXR1bSAoei5CLiAxNC4wNS4yMDI2
KScsCiAgICB3b2NoZW50YWc6ICAgICAgICdXb2NoZW50YWcgKE1vbnRhZywgRGllbnN0YWcsIC4u
LiknLAogICAgc2NoaWNodDogICAgICAgICAnRnLDvGgsIFNww6R0IG9kZXIgTmFjaHQnLAogICAg
c2NoaWNodF9rdXJ6OiAgICAnRiwgUyBvZGVyIE4nLAogICAgaXN0OiAgICAgICAgICAgICAnQWt0
dWVsbCBiZXNldHp0ZSBGw7xocnVuZ3NrcsOkZnRlJywKICAgIHNvbGw6ICAgICAgICAgICAgJ0Vy
Zm9yZGVybGljaGUgRsO8aHJ1bmdza3LDpGZ0ZSAoZmVzdCAyKScsCiAgICBkZWZpeml0OiAgICAg
ICAgICdGZWhsZW5kZSBBbnphaGwgKHNvbGwg4oiSIGlzdCknLAogICAgYWJzZW5kZXJfbmFtZTog
ICAnTmFtZSBkZXMgR2VzYW10dmVyYW50d29ydGxpY2hlbicsCiAgICB3ZWNoc2VsX2Jsb2NrOiAg
ICdBdXRvbWF0aXNjaCBlcnpldWd0ZSBMaXN0ZSBhbGxlciBCZXdlZ3VuZ2VuICh3ZXIgYXVmcsO8
Y2t0LCB3ZXIgaGVyYXVzZsOkbGx0KSDigJQgamUgZWluZSBaZWlsZSBwcm8gUGVyc29uJywKICAg
IG5hbWU6ICAgICAgICAgICAgJ05hbWUgZGVyIGJldHJvZmZlbmVuIFBlcnNvbicsCiAgICBwZXJz
b25fbmFtZTogICAgICdWb3ItIHVuZCBOYWNobmFtZSBkZXIgYmV0cm9mZmVuZW4gUGVyc29uJywK
ICAgIGNvZGU6ICAgICAgICAgICAgJ1NjaGljaHRjb2RlICh6LkIuIGtyLCBLdXIpJywKICAgICdh
dXNsw7ZzZXInOiAgICAgJ05XLUtlbm51bmcgZGVyIFBlcnNvbiwgZGllIGRpZSBBa3Rpb24gYXVz
Z2Vsw7ZzdCBoYXQnLAogICAgZmVsZDogICAgICAgICAgICAnR2XDpG5kZXJ0ZXMgRmVsZCAoei5C
LiBud0tlbm51bmcsIGVtYWlsKScsCiAgICBhbHRlcl93ZXJ0OiAgICAgICdXZXJ0IHZvciBkZXIg
w4RuZGVydW5nJywKICAgIG5ldWVyX3dlcnQ6ICAgICAgJ1dlcnQgbmFjaCBkZXIgw4RuZGVydW5n
JywKICAgIHJvbGxlX3R5cDogICAgICAgJ1N1cGVyVXNlciBvZGVyIEZhY2hhdWZzaWNodCcsCiAg
ICBha3Rpb246ICAgICAgICAgICdoaW56dWdlZsO8Z3Qgb2RlciBlbnRmZXJudCcsCiAgICBuZXVl
X3JvbGxlOiAgICAgICdOZXVlIFJvbGxlbi1CZXplaWNobnVuZycsCiAgICByb2xsZTogICAgICAg
ICAgICdTdXBlclVzZXIgb2RlciBHZXNhbXR2ZXJhbnR3b3J0bGljaCcsCiAgICBuYW1lOiAgICAg
ICAgICAgICdOYW1lIGRlciBiZXRyb2ZmZW5lbiBQZXJzb24nLAogICAgcmljaHR1bmc6ICAgICAg
ICAncmVpbiBvZGVyIHJhdXMnLAogICAgcmljaHR1bmdfdmVyYjogICAn4oCeenVtIFggZXJuYW5u
dCIgYnp3LiDigJ5hdXMgZGVyIFJvbGxlIFggZW50bGFzc2VuIicsCiAgICBkYXRlaW5hbWU6ICAg
ICAgICdCYWNrdXAtRGF0ZWluYW1lJywKICAgIGluaGFsdDogICAgICAgICAgJ0JhY2t1cC1Jbmhh
bHQgKHBsYW51bmcsIGFkbWluIG9kZXIgYmVpZGVzKScsCiAgICBzaWNoZXJ1bmc6ICAgICAgICdB
dXRvLUJhY2t1cCB2b3IgZGVyIEFrdGlvbicsCiAgICBkZWZpeml0X2FuemFobDogICdBbnphaGwg
VGFnZSBtaXQgRGVmaXppdCcsCiAgICBnZXNhbXRfYW56YWhsOiAgICdBbnphaGwgVGFnZSBpbSBI
b3Jpem9udCAoMjgpJywKICAgIGRlZml6aXRfbGlzdGVfaHRtbDogJ0hUTUwtTGlzdGUgZGVyIERl
Zml6aXQtVGFnZSAodm9yYmVyZWl0ZXQpJwp9OwoKLy8gVmVyZnVlZ2JhcmUgRW1wZmFlbmdlci1U
YWdzIG1pdCBVc2VyLWZyZXVuZGxpY2hlbiBMYWJlbHMuCmV4cG9ydCB2YXIgRU1QRkFFTkdFUl9P
UFRJT05FTiA9IFsKICAgIHsga2V5OiAnYmV0cm9mZmVuZV9wZXJzb24nLCAgICAgICAgIGxhYmVs
OiAnQmV0cm9mZmVuZSBQZXJzb24gc2VsYnN0JyB9LAogICAgeyBrZXk6ICd3YWNobGVpdHVuZ19w
ZXJzb24nLCAgICAgICAgbGFiZWw6ICdXYWNobGVpdHVuZyBkZXIgYmV0cm9mZmVuZW4gUGVyc29u
IChHcnVwcGUgV0wsIGdsZWljaGVyIFN0YW5kb3J0KScgfSwKICAgIHsga2V5OiAnZGdsX3NjaGlj
aHQnLCAgICAgICAgICAgICAgIGxhYmVsOiAnREdMcyBkZXIgYmV0cm9mZmVuZW4gU2NoaWNodCAo
b2huZSBkaWUgaGFuZGVsbmRlIFBlcnNvbiknIH0sCiAgICB7IGtleTogJ2dlc2FtdHZlcmFudHdv
cnRsaWNoJywgICAgICBsYWJlbDogJ0FsbGUgR2VzYW10dmVyYW50d29ydGxpY2hlbiAoRmFjaGF1
ZnNpY2h0IG1pdCBGbGFnKScgfSwKICAgIHsga2V5OiAnc3VwZXJ1c2VyJywgICAgICAgICAgICAg
ICAgIGxhYmVsOiAnQWxsZSBTdXBlclVzZXInIH0sCiAgICB7IGtleTogJ2RpZW5zdF93YWNoX2Zy
ZWlfaW5fc2NoaWNodCcsIGxhYmVsOiAnRGllbnN0LS93YWNoZnJlaWUgUGVyc29uZW4gYW0gVGFn
IChmw7xyIEJlc2V0enVuZ3MtQW5mcmFnZW4pJyB9Cl07CgovLyBtb2R1czogJ21haWx0bycgPSBv
ZWZmbmV0IHdlaXRlcmhpbiBPdXRsb29rIChWZXJhbnR3b3J0dW5ncy1VZWJlcmdhZW5nZSwKLy8g
QmVzZXR6dW5ncy1BbmZyYWdlbiwgRGVmaXppdC1CcmllZmluZykuICdoaW53ZWlzJyA9IEluLUFw
cC1CYW5uZXIvTW9kYWwsCi8vIGtlaW4gT3V0bG9vayAoS3JhbmttZWxkdW5nLCBJZGVudGl0YWV0
LCBCYWNrdXAsIFJlc2V0LCBSb2xsZSBvaG5lCi8vIFZlcmFudHdvcnR1bmdzLVdlY2hzZWwpLiBB
ZW5kZXJ1bmcgaW4gUGhhc2UgNSAoMjAyNi0wNS0yMCkuCmV4cG9ydCB2YXIgRU1BSUxfVk9STEFH
RU5fTUVUQSA9IHsKICAgIGJlc2V0enVuZ3NBbmZyYWdlOiB7CiAgICAgICAgdGl0ZWw6ICdCZXNl
dHp1bmdzLUFuZnJhZ2UgKFNhbW1lbCwgUGx1cmFsKScsCiAgICAgICAgYmVzY2hyZWlidW5nOiAn
V2lyZCB2ZXJ3ZW5kZXQsIHdlbm4gaW0gVGFnLURldGFpbCBtZWhyZXJlIEthbmRpZGF0ZW4gZ2Vt
ZWluc2FtIGFuZ2VzY2hyaWViZW4gd2VyZGVuLiBTdGFuZGFyZG3DpMOfaWcgUGx1cmFsLUFucmVk
ZSAo4oCeSGFsbG8genVzYW1tZW4sIOKApklociBoYWJ04oCmIikuIEVtcGbDpG5nZXJmZWxkIGtv
bmZpZ3VyaWVyYmFyIChEZWZhdWx0IEJDQzogQWRyZXNzYXRlbiBzZWhlbiBzaWNoIG5pY2h0IGdl
Z2Vuc2VpdGlnKS4gVmVyc2FuZDogbWFpbHRvOiAobWFudWVsbGUgUHLDvGZ1bmcgaW0gTWFpbHBy
b2dyYW1tKS4nLAogICAgICAgIGljb246ICdBbmZyYWdlJywKICAgICAgICBmYXJiZTogJ3dhcm51
bmcnLAogICAgICAgIG1vZHVzOiAnbWFpbHRvJywKICAgICAgICB2YXJpYWJsZW46IFsnZGF0dW0n
LCAnd29jaGVudGFnJywgJ3NjaGljaHQnLCAnc2NoaWNodF9rdXJ6JywgJ2lzdCcsICdzb2xsJywg
J2RlZml6aXQnLCAnYWJzZW5kZXJfbmFtZSddLAogICAgICAgIHRvZ2dsZXM6IFsKICAgICAgICAg
ICAgeyBrZXk6ICdlbXBmYWVuZ2VySW1CY2MnLCBsYWJlbDogJ0VtcGbDpG5nZXIgaW0gQkNDLUZl
bGQgKERhdGVuc2NodXR6OiBhbmRlcmUgQWRyZXNzYXRlbiBzaW5kIHVuc2ljaHRiYXIpLiBXZW5u
IGF1c2dlc2NoYWx0ZXQ6IGFsbGUgc3RlaGVuIGltIEFuLUZlbGQgdW5kIHNlaGVuIHNpY2ggZ2Vn
ZW5zZWl0aWcuJyB9CiAgICAgICAgXQogICAgfSwKICAgIGJlc2V0enVuZ3NBbmZyYWdlX2Vpbnpl
bG46IHsKICAgICAgICB0aXRlbDogJ0Jlc2V0enVuZ3MtQW5mcmFnZSAoRWluemVsLCBwZXJzw7Zu
bGljaGVzIER1KScsCiAgICAgICAgYmVzY2hyZWlidW5nOiAnV2lyZCB2ZXJ3ZW5kZXQsIHdlbm4g
aW0gVGFnLURldGFpbCBudXIgRUlOIEthbmRpZGF0IG1hcmtpZXJ0IGlzdCDigJQgcGVyc8O2bmxp
Y2hlIER1LUFucmVkZSBtaXQgVm9ybmFtZW4sIFNpbmd1bGFyLUZvcm11bGllcnVuZy4gU3RhbmRh
cmRtw6TDn2lnIEVtcGbDpG5nZXIgaW0gQW4tRmVsZCAoQkNDIGlzdCBiZWkgZWluZXIgUGVyc29u
IHNpbm5sb3MsIGthbm4gYWJlciBiZWkgQmVkYXJmIHVtZ2VzdGVsbHQgd2VyZGVuKS4nLAogICAg
ICAgIGljb246ICdFaW56ZWwnLAogICAgICAgIGZhcmJlOiAnd2FybnVuZycsCiAgICAgICAgbW9k
dXM6ICdtYWlsdG8nLAogICAgICAgIHZhcmlhYmxlbjogWydkYXR1bScsICd3b2NoZW50YWcnLCAn
c2NoaWNodCcsICdzY2hpY2h0X2t1cnonLCAnaXN0JywgJ3NvbGwnLCAnZGVmaXppdCcsICdhYnNl
bmRlcl9uYW1lJywgJ2VtcGZhZW5nZXJfdm9ybmFtZScsICdlbXBmYWVuZ2VyX25hbWUnXSwKICAg
ICAgICB0b2dnbGVzOiBbCiAgICAgICAgICAgIHsga2V5OiAnZW1wZmFlbmdlckltQmNjJywgbGFi
ZWw6ICdFbXBmw6RuZ2VyIGltIEJDQy1GZWxkIChzdGF0dCBpbSBBbi1GZWxkKS4gQmVpIG51ciBl
aW5lciBQZXJzb24gbm9ybWFsZXJ3ZWlzZSBuaWNodCBzaW5udm9sbCDigJQgU3RhbmRhcmQ6IGF1
cy4nIH0KICAgICAgICBdCiAgICB9LAogICAgdmVyYW50d29ydHVuZ3NVZWJlcmdhbmc6IHsKICAg
ICAgICB0aXRlbDogJ1ZlcmFudHdvcnR1bmdzd2VjaHNlbCAoU2NoaWNodCkg4oCUIGVpbmUgU2Ft
bWVsLU1haWwnLAogICAgICAgIGJlc2NocmVpYnVuZzogJ0VJTkUgTWFpbCBiZWkgamVkZW0gVmVy
YW50d29ydHVuZ3N3ZWNoc2VsIGlubmVyaGFsYiBkZXMgMTQtVGFnZS1WZXJiaW5kbGljaGtlaXRz
ZmVuc3RlcnMuIEluZm9ybWllcnQgaW4gZWluZXIgZWluemlnZW4gTWFpbCBBTExFIEJldHJvZmZl
bmVuIGF1ZiBlaW5tYWw6IHdlciBuZXUgaW4gZGllIEbDvGhydW5ncy1WZXJhbnR3b3J0dW5nIGF1
ZnLDvGNrdCBVTkQgd2VyIGRhZHVyY2ggaGVyYXVzZsOkbGx0ICh1bmQgZmxleGlibGVyIHBsYW5l
biBrYW5uKS4gRGllIGVpbnplbG5lbiBCZXdlZ3VuZ2VuIGVyc2NoZWluZW4gYXV0b21hdGlzY2gg
aW0gUGxhdHpoYWx0ZXIge3dlY2hzZWxfYmxvY2t9LiBFbXBmw6RuZ2VyIChBbi1GZWxkKSBzaW5k
IGFsbGUgQmV0cm9mZmVuZW4gYXVzc2VyIGRlbSBQbGFuZW5kZW4gc2VsYnN0LiBWZXJzYW5kOiBt
YWlsdG86LicsCiAgICAgICAgaWNvbjogJ1dlY2hzZWwnLAogICAgICAgIGZhcmJlOiAnYWt6ZW50
JywKICAgICAgICBtb2R1czogJ21haWx0bycsCiAgICAgICAgdmFyaWFibGVuOiBbJ2RhdHVtJywg
J3dvY2hlbnRhZycsICdzY2hpY2h0JywgJ3NjaGljaHRfa3VyeicsICdhYnNlbmRlcl9uYW1lJywg
J3dlY2hzZWxfYmxvY2snXSwKICAgICAgICB0b2dnbGVzOiBbCiAgICAgICAgICAgIHsga2V5OiAn
Y2NBbmRlcmVyRGdsJywgICAgICAgICAgIGxhYmVsOiAnQ0M6IHp3ZWl0ZSBGw7xocnVuZ3NrcmFm
dCBkZXIgU2NoaWNodCAoZmFsbHMgdm9yaGFuZGVuICsgRS1NYWlsIGhpbnRlcmxlZ3QpJyB9LAog
ICAgICAgICAgICB7IGtleTogJ2JjY0dlc2FtdHZlcmFudHdvcnRsaWNoJywgbGFiZWw6ICdCQ0M6
IEdlc2FtdHZlcmFudHdvcnRsaWNoZXIgKGltbWVyIG51ciBhbHMgQkNDLCBudXIgenVyIEtlbm50
bmlzKScgfSwKICAgICAgICAgICAgeyBrZXk6ICdjY0F1c2xvZXNlcicsICAgICAgICAgICAgbGFi
ZWw6ICdDQzogZGVyIGVpbmdlbG9nZ3RlIFBsYW5lbmRlLCBkZXIgZGllIMOEbmRlcnVuZyBhdXNn
ZWzDtnN0IGhhdCcgfQogICAgICAgIF0KICAgIH0sCiAgICByb2xsZV92ZXJhbnR3b3J0dW5nOiB7
CiAgICAgICAgdGl0ZWw6ICdWZXJhbnR3b3J0dW5nc8O8YmVyZ2FuZyAoUm9sbGUpJywKICAgICAg
ICBiZXNjaHJlaWJ1bmc6ICdtYWlsdG86LVBvcHVwIHdlbm4gamVtYW5kIHp1bSBTdXBlclVzZXIg
b2RlciBHZXNhbXR2ZXJhbnR3b3J0bGljaGVuIGVybmFubnQgb2RlciBhYmdlbMO2c3Qgd2lyZC4g
U2VydmVyLWdldHJpZ2dlcnQgw7xiZXIgZGFzIF9icmF1Y2h0X21haWx0by1GZWxkIGluIGRlciBS
ZXNwb25zZS4nLAogICAgICAgIGljb246ICdSb2xsZScsCiAgICAgICAgZmFyYmU6ICdha3plbnQn
LAogICAgICAgIG1vZHVzOiAnbWFpbHRvJywKICAgICAgICBhdXRvVHJpZ2dlcjogdHJ1ZSwKICAg
ICAgICB2YXJpYWJsZW46IFsncm9sbGUnLCAnbmFtZScsICdyaWNodHVuZycsICdyaWNodHVuZ192
ZXJiJywgJ2Fic2VuZGVyX25hbWUnXSwKICAgICAgICBkZWZhdWx0RW1wZmFlbmdlcjogWydiZXRy
b2ZmZW5lX3BlcnNvbicsICdzdXBlcnVzZXInLCAnZ2VzYW10dmVyYW50d29ydGxpY2gnXSwKICAg
ICAgICB0b2dnbGVzOiBbXQogICAgfSwKICAgIGtyYW5rbWVsZHVuZzogewogICAgICAgIHRpdGVs
OiAnS3JhbmttZWxkdW5nJywKICAgICAgICBiZXNjaHJlaWJ1bmc6ICdJbi1BcHAtSGlud2VpcyAo
QmFubmVyICsgTW9kYWwpIHdlbm4gZGVyIENvZGUg4oCea3IiIG9kZXIg4oCeS3VyIiBpbiBlaW5l
IFplbGxlIGVpbmdldHJhZ2VuIHdpcmQuIEVtcGbDpG5nZXI6IFN1cGVyVXNlciArIEdlc2FtdHZl
cmFudHdvcnRsaWNoZS4nLAogICAgICAgIGljb246ICdLcmFuaycsIGZhcmJlOiAnd2FybnVuZycs
IGF1dG9UcmlnZ2VyOiB0cnVlLAogICAgICAgIG1vZHVzOiAnaGlud2VpcycsCiAgICAgICAgdmFy
aWFibGVuOiBbJ3BlcnNvbl9uYW1lJywgJ2RhdHVtJywgJ3dvY2hlbnRhZycsICdzY2hpY2h0Jywg
J3NjaGljaHRfa3VyeicsICdjb2RlJywgJ2F1c2zDtnNlciddLAogICAgICAgIGRlZmF1bHRFbXBm
YWVuZ2VyOiBbJ3dhY2hsZWl0dW5nX3BlcnNvbicsICdkZ2xfc2NoaWNodCddLAogICAgICAgIHRv
Z2dsZXM6IFtdCiAgICB9LAogICAgaWRlbnRpdGFldF9nZWFlbmRlcnQ6IHsKICAgICAgICB0aXRl
bDogJ0lkZW50aXTDpHRzLURhdGVuIGdlw6RuZGVydCAoQXVkaXQpJywKICAgICAgICBiZXNjaHJl
aWJ1bmc6ICdJbi1BcHAtSGlud2VpcyAoQmFubmVyICsgTW9kYWwpIHdlbm4gTlctS2VubnVuZyBv
ZGVyIEUtTWFpbC1BZHJlc3NlIGVpbmVyIFBlcnNvbiBnZcOkbmRlcnQgd2lyZC4gRW1wZsOkbmdl
cjogU3VwZXJVc2VyICsgR2VzYW10dmVyYW50d29ydGxpY2hlLicsCiAgICAgICAgaWNvbjogJ0lk
ZW50aXTDpHQnLCBmYXJiZTogJ2FremVudCcsIGF1dG9UcmlnZ2VyOiB0cnVlLAogICAgICAgIG1v
ZHVzOiAnaGlud2VpcycsCiAgICAgICAgdmFyaWFibGVuOiBbJ3BlcnNvbl9uYW1lJywgJ2ZlbGQn
LCAnYWx0ZXJfd2VydCcsICduZXVlcl93ZXJ0JywgJ2F1c2zDtnNlciddLAogICAgICAgIGRlZmF1
bHRFbXBmYWVuZ2VyOiBbJ2JldHJvZmZlbmVfcGVyc29uJywgJ3N1cGVydXNlciddLAogICAgICAg
IHRvZ2dsZXM6IFtdCiAgICB9LAogICAgcm9sbGVfZ2VhZW5kZXJ0OiB7CiAgICAgICAgdGl0ZWw6
ICdSb2xsZW4tU3RhdHVzIGdlw6RuZGVydCAoQXVkaXQpJywKICAgICAgICBiZXNjaHJlaWJ1bmc6
ICdJbi1BcHAtSGlud2VpcyBiZWkgRmFjaGF1ZnNpY2h0LcOEbmRlcnVuZ2VuIG9obmUgR2VzYW10
dmVyYW50d29ydGxpY2gtV2VjaHNlbCAoei5CLiBTZWhlbi1GbGFnLURpZmYpLiBTVS0gdW5kIEdl
c2FtdHZlcmFudHdvcnRsaWNoLVdlY2hzZWwgbGF1ZmVuIMO8YmVyIHJvbGxlX3ZlcmFudHdvcnR1
bmcuJywKICAgICAgICBpY29uOiAnUm9sbGUnLCBmYXJiZTogJ2FremVudCcsIGF1dG9UcmlnZ2Vy
OiB0cnVlLAogICAgICAgIG1vZHVzOiAnaGlud2VpcycsCiAgICAgICAgdmFyaWFibGVuOiBbJ3Bl
cnNvbl9uYW1lJywgJ3JvbGxlX3R5cCcsICdha3Rpb24nLCAnbmV1ZV9yb2xsZScsICdhdXNsw7Zz
ZXInXSwKICAgICAgICBkZWZhdWx0RW1wZmFlbmdlcjogWydiZXRyb2ZmZW5lX3BlcnNvbicsICdz
dXBlcnVzZXInXSwKICAgICAgICB0b2dnbGVzOiBbXQogICAgfSwKICAgIGJhY2t1cF93aWVkZXJo
ZXJnZXN0ZWxsdDogewogICAgICAgIHRpdGVsOiAnQmFja3VwIHdpZWRlcmhlcmdlc3RlbGx0IChB
dWRpdCknLAogICAgICAgIGJlc2NocmVpYnVuZzogJ0luLUFwcC1IaW53ZWlzIHdlbm4gZWluIEJh
Y2t1cC1TdGFuZCB3aWVkZXJoZXJnZXN0ZWxsdCB3aXJkLicsCiAgICAgICAgaWNvbjogJ0JhY2t1
cCcsIGZhcmJlOiAnYWt6ZW50JywgYXV0b1RyaWdnZXI6IHRydWUsCiAgICAgICAgbW9kdXM6ICdo
aW53ZWlzJywKICAgICAgICB2YXJpYWJsZW46IFsnZGF0ZWluYW1lJywgJ2luaGFsdCcsICdzaWNo
ZXJ1bmcnLCAnYXVzbMO2c2VyJ10sCiAgICAgICAgZGVmYXVsdEVtcGZhZW5nZXI6IFsnc3VwZXJ1
c2VyJ10sCiAgICAgICAgdG9nZ2xlczogW10KICAgIH0sCiAgICBwbGFudW5nX3Jlc2V0OiB7CiAg
ICAgICAgdGl0ZWw6ICdQbGFudW5nIHp1csO8Y2tnZXNldHp0IChBdWRpdCknLAogICAgICAgIGJl
c2NocmVpYnVuZzogJ0luLUFwcC1IaW53ZWlzIHdlbm4gZGllIFBsYW51bmcga29tcGxldHQgenVy
w7xja2dlc2V0enQgd2lyZC4nLAogICAgICAgIGljb246ICdSZXNldCcsIGZhcmJlOiAnd2FybnVu
ZycsIGF1dG9UcmlnZ2VyOiB0cnVlLAogICAgICAgIG1vZHVzOiAnaGlud2VpcycsCiAgICAgICAg
dmFyaWFibGVuOiBbJ3NpY2hlcnVuZycsICdhdXNsw7ZzZXInXSwKICAgICAgICBkZWZhdWx0RW1w
ZmFlbmdlcjogWydzdXBlcnVzZXInXSwKICAgICAgICB0b2dnbGVzOiBbXQogICAgfSwKICAgIGRl
Zml6aXRfYnJpZWZpbmc6IHsKICAgICAgICB0aXRlbDogJ0RlZml6aXQtQnJpZWZpbmcnLAogICAg
ICAgIGJlc2NocmVpYnVuZzogJ01hbnVlbGwgcGVyIEJ1dHRvbiBpbSBQcsO8ZnVuZ3MtVGFiIGF1
c2dlbMO2c3Qg4oCUIMO2ZmZuZXQgZWluIG1haWx0bzotUG9wdXAgbWl0IMOcYmVyc2ljaHQgZGVy
IEbDvGhydW5ncy1VbnRlcmJlc2V0enVuZ2VuIGluIGRlbiBuw6RjaHN0ZW4gNCBXb2NoZW4uJywK
ICAgICAgICBpY29uOiAnRGVmaXppdCcsIGZhcmJlOiAnYWt6ZW50JywgYXV0b1RyaWdnZXI6IHRy
dWUsCiAgICAgICAgbW9kdXM6ICdtYWlsdG8nLAogICAgICAgIHZhcmlhYmxlbjogWydkZWZpeml0
X2FuemFobCcsICdnZXNhbXRfYW56YWhsJywgJ2RlZml6aXRfbGlzdGVfaHRtbCddLAogICAgICAg
IGRlZmF1bHRFbXBmYWVuZ2VyOiBbJ2dlc2FtdHZlcmFudHdvcnRsaWNoJ10sCiAgICAgICAgdG9n
Z2xlczogW10KICAgIH0KfTsKCi8vID09PT09IFZvcmxhZ2VuIGhvbGVuIC8gcmVuZGVybiAvIGJl
YXJiZWl0ZW4gPT09PT0KCi8vIExpZWZlcnQgcHJvIFZvcmxhZ2VuLUtleSAoYWxsZSBhdXMgRU1B
SUxfVk9STEFHRU5fTUVUQSkgZGFzIGdlbWVyZ2V0ZQovLyBPYmpla3QgYXVzIGFkbWluLmVtYWls
Vm9ybGFnZW4gKyBEZWZhdWx0cy4gUm9idXN0IGF1Y2ggZnVlciBLZXlzLCBkaWUKLy8gbmljaHQg
aW4gREVGQVVMVFMgc3RlaGVuIChyZXR1cm50IGRhbm4gbGVlcmVzIE9iamVrdCkuCmV4cG9ydCBm
dW5jdGlvbiBlbWFpbFZvcmxhZ2VuSG9sZW4oKSB7CiAgICB2YXIgZ2VzcGVpY2hlcnQgPSBaLmFk
bWluLmVtYWlsVm9ybGFnZW4gfHwge307CiAgICB2YXIgZXJnZWJuaXMgPSB7fTsKICAgIE9iamVj
dC5rZXlzKEVNQUlMX1ZPUkxBR0VOX01FVEEpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7CiAgICAg
ICAgdmFyIGRlZiA9IEVNQUlMX1ZPUkxBR0VOX0RFRkFVTFRba2V5XSB8fCB7IGJldHJlZmY6ICcn
LCB0ZXh0OiAnJyB9OwogICAgICAgIHZhciBnID0gZ2VzcGVpY2hlcnRba2V5XSB8fCB7fTsKICAg
ICAgICB2YXIgb3V0ID0ge307CiAgICAgICAgLy8gQWxsZSBEZWZhdWx0LUZlbGRlciBkdXJjaHNj
aGxlaWZlbgogICAgICAgIE9iamVjdC5rZXlzKGRlZikuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAg
ICAgICAgICAgIG91dFtrXSA9IChrIGluIGcgJiYgZ1trXSAhPT0gJycgJiYgZ1trXSAhPSBudWxs
KSA/IGdba10gOiBkZWZba107CiAgICAgICAgfSk7CiAgICAgICAgLy8gUGx1cyBhbGxlIGV2ZW50
dWVsbGVuIFRvZ2dsZS1GZWxkZXIgYXVzIGRlbSBnZXNwZWljaGVydGVuIFN0YW5kCiAgICAgICAg
T2JqZWN0LmtleXMoZykuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICAgICAgICAgIGlmICghKGsg
aW4gb3V0KSkgb3V0W2tdID0gZ1trXTsKICAgICAgICB9KTsKICAgICAgICBlcmdlYm5pc1trZXld
ID0gb3V0OwogICAgfSk7CiAgICByZXR1cm4gZXJnZWJuaXM7Cn0KCmV4cG9ydCBmdW5jdGlvbiBl
bWFpbFZvcmxhZ2VuUmVuZGVybigpIHsKICAgIHZhciBjb250ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2VtYWlsdm9ybGFnZW4taW5oYWx0Jyk7CiAgICBpZiAoIWNvbnQpIHJldHVybjsKICAg
IHZhciB2ID0gZW1haWxWb3JsYWdlbkhvbGVuKCk7CiAgICAvLyBTcGxpdCBuYWNoIHZlcnN0ZWNr
dC1GbGFnLiBWaXNpYmxlLVZvcmxhZ2VuIGVyc2NoZWluZW4gYWxzIGdyb3NzZQogICAgLy8gS2Fy
dGVuIGluIGRlciBQcmltYWVyYW5zaWNodCwgSGlkZGVuIGxhbmRlbiBrb21wYWt0IHVudGVuIGFs
cwogICAgLy8gUGlsbGVuIG1pdCAiZWluYmxlbmRlbiItQnV0dG9uLiBWZXJzdGVja3QtRmxhZyBs
ZWJ0IGluCiAgICAvLyBhZG1pbi5qc29uLmVtYWlsVm9ybGFnZW5ba2V5XS52ZXJzdGVja3QuCiAg
ICB2YXIgc2ljaHRiYXIgPSBbXSwgdmVyc3RlY2t0ID0gW107CiAgICBPYmplY3Qua2V5cyhFTUFJ
TF9WT1JMQUdFTl9NRVRBKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgewogICAgICAgIGlmICh2W2tl
eV0gJiYgdltrZXldLnZlcnN0ZWNrdCkgdmVyc3RlY2t0LnB1c2goa2V5KTsKICAgICAgICBlbHNl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpY2h0YmFyLnB1c2goa2V5KTsKICAgIH0pOwoK
ICAgIHZhciBodG1sID0gJzxkaXYgY2xhc3M9ImVtYWlsdm9ybGFnZW4ta2FydGVuIj4nOwogICAg
c2ljaHRiYXIuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsKICAgICAgICB2YXIgbWV0YSA9IEVNQUlM
X1ZPUkxBR0VOX01FVEFba2V5XTsKICAgICAgICB2YXIgdm9ybGFnZSA9IHZba2V5XTsKICAgICAg
ICB2YXIgcHJldmlldyA9ICh2b3JsYWdlLnRleHQgfHwgJycpLnJlcGxhY2UoL1xzKy9nLCAnICcp
LnNsaWNlKDAsIDE0MCk7CiAgICAgICAgaWYgKCh2b3JsYWdlLnRleHQgfHwgJycpLmxlbmd0aCA+
IDE0MCkgcHJldmlldyArPSAn4oCmJzsKICAgICAgICAvLyByb2xlPWJ1dHRvbiBzdGF0dCA8YnV0
dG9uPjogZGllIEthcnRlIGVudGhhZWx0IHNlbGJzdCBlaW5lbgogICAgICAgIC8vIEF1c2JsZW5k
ZW4tPGJ1dHRvbj4sIHVuZCBlaW4gPGJ1dHRvbj4gaW0gPGJ1dHRvbj4gaXN0IHVuZ3VlbHRpZ2Vz
CiAgICAgICAgLy8gSFRNTCAoZGVyIEJyb3dzZXIgemVycmVpc3N0IGRlbiBET00tQmF1bSkuIEtl
eWJvYXJkLUFrdGl2aWVydW5nCiAgICAgICAgLy8gKEVudGVyL1NwYWNlKSBoYWVuZ3QgYW0gQ29u
dGFpbmVyLUtleWRvd24tSGFuZGxlciBpbiBhcHAuanMuCiAgICAgICAgaHRtbCArPSAnPGRpdiBj
bGFzcz0iZW1haWx2b3JsYWdlLWthcnRlIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBkYXRh
LXZvcmxhZ2U9IicgKyBlc2NhcGVBdHRyKGtleSkgKyAnIj4nICsKICAgICAgICAgICAgJzxkaXYg
Y2xhc3M9ImV2ay1pY29uIGV2ay1pY29uLScgKyBlc2NhcGVBdHRyKG1ldGEuZmFyYmUpICsgJyI+
JyArIGVzY2FwZUhUTUwobWV0YS5pY29uKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYg
Y2xhc3M9ImV2ay1pbmhhbHQiPicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImV2ay10
aXRlbCI+JyArIGVzY2FwZUhUTUwobWV0YS50aXRlbCkgKyAnPC9kaXY+JyArCiAgICAgICAgICAg
ICAgICAnPGRpdiBjbGFzcz0iZXZrLWJlc2NocmVpYnVuZyI+JyArIGVzY2FwZUhUTUwobWV0YS5i
ZXNjaHJlaWJ1bmcpICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImV2
ay1iZXRyZWZmIiB0aXRsZT0iQmV0cmVmZiI+PHNwYW4gY2xhc3M9ImV2ay1sYWJlbCI+QmV0cmVm
Zjo8L3NwYW4+ICcgKyBlc2NhcGVIVE1MKHZvcmxhZ2UuYmV0cmVmZiB8fCAnKGxlZXIpJykgKyAn
PC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZXZrLXByZXZpZXciIHRpdGxl
PSJCZWdpbm4gZGVzIEFuc2NocmVpYmVucyI+JyArIGVzY2FwZUhUTUwocHJldmlldyB8fCAnKGxl
ZXIpJykgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxk
aXYgY2xhc3M9ImV2ay1ha3Rpb24iPkJlYXJiZWl0ZW4g4oaSPC9kaXY+JyArCiAgICAgICAgICAg
IC8vIEF1c2JsZW5kZW4tS25vcGYgKGtsZWluLCBvYmVuIHJlY2h0czsgbnVyIGJlaSBIb3ZlciBz
aWNodGJhcikuCiAgICAgICAgICAgIC8vIHN0b3BQcm9wYWdhdGlvbiBpbSBDbGljay1IYW5kbGVy
IHZlcmhpbmRlcnQgZGFzIE9lZmZuZW4gZGVzCiAgICAgICAgICAgIC8vIEJlYXJiZWl0ZW4tTW9k
YWxzLCB3ZW5uIG51ciBhdXNnZWJsZW5kZXQgd2VyZGVuIHNvbGwuCiAgICAgICAgICAgICc8YnV0
dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImV2ay1oaWRlLWJ0biIgZGF0YS1ha3Rpb249ImV2LWhp
ZGUiIGRhdGEtdm9ybGFnZT0iJyArIGVzY2FwZUF0dHIoa2V5KSArICciIHRpdGxlPSJWb3JsYWdl
IGF1cyBkZXIgVWViZXJzaWNodCBhdXNibGVuZGVuIChrYW5uIHVudGVuIHdpZWRlciBlaW5nZWJs
ZW5kZXQgd2VyZGVuKSI+QXVzYmxlbmRlbjwvYnV0dG9uPicgKwogICAgICAgICc8L2Rpdj4nOwog
ICAgfSk7CiAgICBodG1sICs9ICc8L2Rpdj4nOwoKICAgIGlmICh2ZXJzdGVja3QubGVuZ3RoKSB7
CiAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0iZW1haWx2b3JsYWdlbi12ZXJzdGVja3QiPicg
KwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZW1haWx2b3JsYWdlbi12ZXJzdGVja3Qta29wZiI+
JyArCiAgICAgICAgICAgICAgICAnPHNwYW4+VmVyc3RlY2t0ZSBWb3JsYWdlbiAoJyArIHZlcnN0
ZWNrdC5sZW5ndGggKyAnKTwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBzdHlsZT0i
Zm9udC13ZWlnaHQ6NDAwIj7igJQgcGVyIEtsaWNrIHdpZWRlciBlaW5ibGVuZGVuPC9zcGFuPicg
KwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJlbWFpbHZv
cmxhZ2VuLXZlcnN0ZWNrdC1saXN0ZSI+JzsKICAgICAgICB2ZXJzdGVja3QuZm9yRWFjaChmdW5j
dGlvbihrZXkpIHsKICAgICAgICAgICAgdmFyIG1ldGEgPSBFTUFJTF9WT1JMQUdFTl9NRVRBW2tl
eV07CiAgICAgICAgICAgIGh0bWwgKz0gJzxzcGFuIGNsYXNzPSJldmstdmVyc3RlY2t0LXBpbGxl
Ij4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE0cHgiPicgKyBl
c2NhcGVIVE1MKG1ldGEuaWNvbikgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAgJzxzcGFu
IGNsYXNzPSJldmstdmVyc3RlY2t0LXRpdGVsIj4nICsgZXNjYXBlSFRNTChtZXRhLnRpdGVsKSAr
ICc8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNz
PSJldmstc2hvdy1idG4iIGRhdGEtYWt0aW9uPSJldi1zaG93IiBkYXRhLXZvcmxhZ2U9IicgKyBl
c2NhcGVBdHRyKGtleSkgKyAnIiB0aXRsZT0iVm9ybGFnZSB3aWVkZXIgaW4gZGVyIFByaW1hZXJh
bnNpY2h0IHplaWdlbiI+ZWluYmxlbmRlbjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPC9zcGFu
Pic7CiAgICAgICAgfSk7CiAgICAgICAgaHRtbCArPSAnPC9kaXY+PC9kaXY+JzsKICAgIH0KICAg
IGNvbnQuaW5uZXJIVE1MID0gaHRtbDsKfQoKLy8gRWRpdG9yLU1vZGFsIHBybyBWb3JsYWdlLiBM
aW5rZSBTcGFsdGU6IEJldHJlZmYgKyBUZXh0YXJlYSArIFRvZ2dsZXMuCi8vIFJlY2h0ZSBTcGFs
dGU6IFZhcmlhYmxlbi1JbnNlcnQtQnV0dG9ucy4gS2xpY2sgYXVmIFZhcmlhYmxlIGZ1ZWd0Ci8v
IHtuYW1lfSBhbiBDdXJzb3ItUG9zaXRpb24gaW0genVsZXR6dCBmb2t1c3NpZXJ0ZW4gRmVsZCBl
aW4uCmV4cG9ydCBmdW5jdGlvbiBlbWFpbFZvcmxhZ2VCZWFyYmVpdGVuTW9kYWwoa2V5KSB7CiAg
ICB2YXIgbWV0YSA9IEVNQUlMX1ZPUkxBR0VOX01FVEFba2V5XTsKICAgIGlmICghbWV0YSkgcmV0
dXJuOwogICAgdmFyIHYgPSBlbWFpbFZvcmxhZ2VuSG9sZW4oKVtrZXldOwoKICAgIHZhciB2YXJp
YWJsZW5CdG5zID0gbWV0YS52YXJpYWJsZW4ubWFwKGZ1bmN0aW9uKHZhck5hbWUpIHsKICAgICAg
ICB2YXIgYmVzY2hyID0gRU1BSUxfVkFSSUFCTEVOX0JFU0NIUkVJQlVOR1t2YXJOYW1lXSB8fCAn
JzsKICAgICAgICByZXR1cm4gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZXZtLXZhci1i
dG4iIGRhdGEtdmFyPSInICsgZXNjYXBlQXR0cih2YXJOYW1lKSArICciIHRpdGxlPSInICsgZXNj
YXBlQXR0cignVmFyaWFibGUgZWluZsO8Z2VuOiB7JyArIHZhck5hbWUgKyAnfSDigJQgJyArIGJl
c2NocikgKyAnIj4nICsKICAgICAgICAgICAgJzxjb2RlIGNsYXNzPSJldm0tdmFyLW5hbWUiPnsn
ICsgZXNjYXBlSFRNTCh2YXJOYW1lKSArICd9PC9jb2RlPicgKwogICAgICAgICAgICAnPHNwYW4g
Y2xhc3M9ImV2bS12YXItYmVzY2hyIj4nICsgZXNjYXBlSFRNTChiZXNjaHIpICsgJzwvc3Bhbj4n
ICsKICAgICAgICAnPC9idXR0b24+JzsKICAgIH0pLmpvaW4oJycpOwoKICAgIHZhciB0b2dnbGVz
SHRtbCA9IG1ldGEudG9nZ2xlcy5sZW5ndGgKICAgICAgICA/ICc8ZGl2IGNsYXNzPSJldm0tdG9n
Z2xlcyI+JyArCiAgICAgICAgICAgIG1ldGEudG9nZ2xlcy5tYXAoZnVuY3Rpb24odCkgewogICAg
ICAgICAgICAgICAgdmFyIGNoZWNrZWQgPSAhIXZbdC5rZXldOwogICAgICAgICAgICAgICAgcmV0
dXJuICc8bGFiZWwgY2xhc3M9ImV2bS10b2dnbGUiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9
ImV2bS10b2dnbGUtJyArIGVzY2FwZUF0dHIodC5rZXkpICsgJyInICsgKGNoZWNrZWQgPyAnIGNo
ZWNrZWQnIDogJycpICsgJz48c3Bhbj4nICsgZXNjYXBlSFRNTCh0LmxhYmVsKSArICc8L3NwYW4+
PC9sYWJlbD4nOwogICAgICAgICAgICB9KS5qb2luKCcnKSArCiAgICAgICAgICAnPC9kaXY+Jwog
ICAgICAgIDogJyc7CgogICAgdmFyIHRyaWdnZXJIdG1sID0gJyc7CiAgICBpZiAobWV0YS5hdXRv
VHJpZ2dlcikgewogICAgICAgIHZhciB0cmlnZ2VyQ2ZnID0gKChaLmFkbWluICYmIFouYWRtaW4u
ZW1haWxUcmlnZ2VyKSB8fCB7fSlba2V5XSB8fCB7fTsKICAgICAgICB2YXIgYWt0aXYgPSAhIXRy
aWdnZXJDZmcuYWt0aXY7CiAgICAgICAgdmFyIGFrdGl2ZUVtcGYgPSB0cmlnZ2VyQ2ZnLmVtcGZh
ZW5nZXIgfHwgbWV0YS5kZWZhdWx0RW1wZmFlbmdlciB8fCBbXTsKICAgICAgICB2YXIgZW1wZkh0
bWwgPSBFTVBGQUVOR0VSX09QVElPTkVOLm1hcChmdW5jdGlvbihvcHQpIHsKICAgICAgICAgICAg
dmFyIGNoZWNrZWQgPSBha3RpdmVFbXBmLmluZGV4T2Yob3B0LmtleSkgPj0gMDsKICAgICAgICAg
ICAgcmV0dXJuICc8bGFiZWwgY2xhc3M9ImV2bS1lbXBmLXplaWxlIj4nICsKICAgICAgICAgICAg
ICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJldm0tZW1wZi1jaGsiIGRhdGEta2V5
PSInICsgZXNjYXBlQXR0cihvcHQua2V5KSArICciJyArIChjaGVja2VkID8gJyBjaGVja2VkJyA6
ICcnKSArICc+JyArCiAgICAgICAgICAgICAgICAnPHNwYW4+JyArIGVzY2FwZUhUTUwob3B0Lmxh
YmVsKSArICc8L3NwYW4+JyArCiAgICAgICAgICAgICc8L2xhYmVsPic7CiAgICAgICAgfSkuam9p
bignJyk7CiAgICAgICAgaWYgKG1ldGEubW9kdXMgPT09ICdoaW53ZWlzJykgewogICAgICAgICAg
ICAvLyBQaGFzZSA1ICgyMDI2LTA1LTIwKToga2VpbiBtYWlsdG8sIHNvbmRlcm4gSW4tQXBwLUJh
bm5lcitNb2RhbAogICAgICAgICAgICAvLyBmdWVyIFNVICsgR2VzYW10dmVyYW50d29ydGxpY2hl
LiBBa3Rpdi1Ub2dnbGUgZW50ZmFlbGx0OiBkZXIKICAgICAgICAgICAgLy8gU2VydmVyIGVyemV1
Z3QgZGVuIEhpbndlaXMgYmVpIGplZGVtIEVyZWlnbmlzLgogICAgICAgICAgICB0cmlnZ2VySHRt
bCA9CiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZXZtLXRyaWdnZXItYmxvY2siPicgKwog
ICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJldm0tdHJpZ2dlci10aXRlbCI+SW4tQXBw
LUhpbndlaXM8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAnPHAgY2xhc3M9ImV2bS1oaW53
ZWlzIiBzdHlsZT0ibWFyZ2luOjAiPkJlaW0gRWludHJpdHQgZGVzIEVyZWlnbmlzc2VzIHdpcmQg
ZWluIEhpbndlaXMgaW0gQmFubmVyIHVuZCBpbSBIaW53ZWlzLU1vZGFsIGZ1ZXIgU3VwZXJVc2Vy
ICsgR2VzYW10dmVyYW50d29ydGxpY2hlIGFuZ2V6ZWlndC4gS2VpbiBPdXRsb29rLVBvcHVwLiBE
aWVzZSBWb3JsYWdlIHdpcmQgbmljaHQgdmVyc2VuZGV0OyBzaWUgZGllbnQgbnVyIGFscyBCZXNj
aHJlaWJ1bmcgZGVzIEVyZWlnbmlzc2VzLjwvcD4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4n
OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRyaWdnZXJIdG1sID0KICAgICAgICAgICAg
ICAgICc8ZGl2IGNsYXNzPSJldm0tdHJpZ2dlci1ibG9jayI+JyArCiAgICAgICAgICAgICAgICAg
ICAgJzxkaXYgY2xhc3M9ImV2bS10cmlnZ2VyLXRpdGVsIj5tYWlsdG86LUF1dG8tVHJpZ2dlcjwv
ZGl2PicgKwogICAgICAgICAgICAgICAgICAgICc8bGFiZWwgY2xhc3M9ImV2bS10cmlnZ2VyLWFr
dGl2Ij4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIg
aWQ9ImV2bS10cmlnLWFrdGl2IicgKyAoYWt0aXYgPyAnIGNoZWNrZWQnIDogJycpICsgJz4nICsK
ICAgICAgICAgICAgICAgICAgICAgICAgJzxzcGFuPlRyaWdnZXIgYWt0aXZpZXJlbiAow7ZmZm5l
dCBPdXRsb29rIG1pdCB2b3JhdXNnZWbDvGxsdGVyIE1haWwsIHdlbm4gZGFzIEVyZWlnbmlzIGVp
bnRyaXR0KTwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICAgICAnPC9sYWJlbD4nICsKICAgICAg
ICAgICAgICAgICAgICAnPGxhYmVsIGNsYXNzPSJldm0tbGFiZWwiIHN0eWxlPSJtYXJnaW4tdG9w
OjhweCI+RW1wZsOkbmdlciAod2VyZGVuIGFscyBCQ0Mgdm9yYXVzZ2Vmw7xsbHQpPC9sYWJlbD4n
ICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZXZtLWVtcGYtbGlzdGUiPicgKyBl
bXBmSHRtbCArICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAnPHNtYWxsIGNsYXNzPSJl
dm0taGlud2VpcyI+S2VpbiBhdXRvbWF0aXNjaGVyIFZlcnNhbmQuIEJlaW0gRWludHJpdHQgZGVz
IEVyZWlnbmlzc2VzIMO2ZmZuZXQgc2ljaCBkYXMgU3RhbmRhcmQtTWFpbHByb2dyYW1tIG1pdCBF
bXBmw6RuZ2VybiwgQmV0cmVmZiB1bmQgVGV4dCB2b3JhdXNnZWbDvGxsdDsgZHUgcHLDvGZzdCBk
aWUgTWFpbCB1bmQgdmVyc2NoaWNrc3Qgc2llIG1hbnVlbGwuPC9zbWFsbD4nICsKICAgICAgICAg
ICAgICAgICc8L2Rpdj4nOwogICAgICAgIH0KICAgIH0KCiAgICB2YXIgcnRlVG9vbGJhciA9CiAg
ICAgICAgJzxkaXYgY2xhc3M9InJ0ZS10b29sYmFyIj4nICsKICAgICAgICAgICAgJzxidXR0b24g
dHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9ImJvbGQiIHRpdGxlPSJGZXR0
IChDdHJsK0IpIj48c3Ryb25nPkI8L3N0cm9uZz48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzxi
dXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Iml0YWxpYyIgdGl0
bGU9Ikt1cnNpdiAoQ3RybCtJKSI+PGVtPkk8L2VtPjwvYnV0dG9uPicgKwogICAgICAgICAgICAn
PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0idW5kZXJsaW5l
IiB0aXRsZT0iVW50ZXJzdHJpY2hlbiAoQ3RybCtVKSI+PHU+VTwvdT48L2J1dHRvbj4nICsKICAg
ICAgICAgICAgJzxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+JyArCiAgICAgICAgICAgICc8
YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJpbnNlcnRVbm9y
ZGVyZWRMaXN0IiB0aXRsZT0iQXVmesOkaGx1bmciPuKAojwvYnV0dG9uPicgKwogICAgICAgICAg
ICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0
T3JkZXJlZExpc3QiIHRpdGxlPSJOdW1tZXJpZXJ0Ij4xLjwvYnV0dG9uPicgKwogICAgICAgICAg
ICAnPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4nICsKICAgICAgICAgICAgJzxidXR0b24g
dHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9Im91dGRlbnQiIHRpdGxlPSJB
dXNyw7xja2VuIj7ih6Q8L2J1dHRvbj4nICsKICAgICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0
dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9ImluZGVudCIgdGl0bGU9IkVpbnLDvGNrZW4i
PuKHpTwvYnV0dG9uPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bh
bj4nICsKICAgICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIg
ZGF0YS1jbWQ9InJlbW92ZUZvcm1hdCIgdGl0bGU9IkZvcm1hdGllcnVuZyBlbnRmZXJuZW4iPkzD
tnNjaGVuPC9idXR0b24+JyArCiAgICAgICAgJzwvZGl2Pic7CgogICAgdmFyIHRleHRIdG1sID0g
ZW1haWxIb29rcy5odG1sQXVzRmVsZCA/IGVtYWlsSG9va3MuaHRtbEF1c0ZlbGQodi50ZXh0IHx8
ICcnKSA6ICh2LnRleHQgfHwgJycpOwoKICAgIHZhciBrb2VycGVyID0KICAgICAgICAnPHAgY2xh
c3M9ImV2bS1iZXNjaHJlaWJ1bmciPicgKyBlc2NhcGVIVE1MKG1ldGEuYmVzY2hyZWlidW5nKSAr
ICc8L3A+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImV2bS1ncmlkIj4nICsKICAgICAgICAgICAg
JzxkaXYgY2xhc3M9ImV2bS1mb3JtIj4nICsKICAgICAgICAgICAgICAgICc8bGFiZWwgY2xhc3M9
ImV2bS1sYWJlbCIgZm9yPSJldm0tYmV0cmVmZiI+QmV0cmVmZjwvbGFiZWw+JyArCiAgICAgICAg
ICAgICAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJldm0tYmV0cmVmZiIgY2xhc3M9ImZvcm0t
aW5wdXQgZXZtLWJldHJlZmYtaW5wdXQiIHZhbHVlPSInICsgZXNjYXBlQXR0cih2LmJldHJlZmYg
fHwgJycpICsgJyIgcGxhY2Vob2xkZXI9IkJldHJlZmYgZGVyIEUtTWFpbCDigKYiPicgKwogICAg
ICAgICAgICAgICAgJzxsYWJlbCBjbGFzcz0iZXZtLWxhYmVsIiBzdHlsZT0ibWFyZ2luLXRvcDox
NHB4Ij5BbnNjaHJlaWJlbjwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICBydGVUb29sYmFyICsK
ICAgICAgICAgICAgICAgICc8ZGl2IGlkPSJldm0tdGV4dCIgY2xhc3M9InJ0ZS1lZGl0b3IgZXZt
LXRleHQtcnRlIiBjb250ZW50ZWRpdGFibGU9InRydWUiIHNwZWxsY2hlY2s9InRydWUiIGRhdGEt
cGxhY2Vob2xkZXI9Ikd1dGVuIFRhZyDigKYiPicgKyB0ZXh0SHRtbCArICc8L2Rpdj4nICsKICAg
ICAgICAgICAgICAgICc8c21hbGwgY2xhc3M9ImV2bS1oaW53ZWlzIj5Gb3JtYXRpZXJ1bmcgKGZl
dHQva3Vyc2l2L0xpc3RlbikgaXN0IG3DtmdsaWNoOyBiZWltIG1haWx0by1WZXJzYW5kIHdpcmQg
c2llIGluIHJlaW5lbiBUZXh0IHVtZ2V3YW5kZWx0LCBkZXIgZGFubiBpbiBPdXRsb29rIGVyc2No
ZWludC4gVmFyaWFibGVuIHdpZSA8Y29kZT57ZGF0dW19PC9jb2RlPiB3ZXJkZW4gYmVpbSDDlmZm
bmVuIGRlcyBQb3B1cHMgYXV0b21hdGlzY2ggZXJzZXR6dC48L3NtYWxsPicgKwogICAgICAgICAg
ICAgICAgdG9nZ2xlc0h0bWwgKwogICAgICAgICAgICAgICAgdHJpZ2dlckh0bWwgKwogICAgICAg
ICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJldm0tdmFycyI+JyArCiAg
ICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZXZtLXZhcnMtdGl0ZWwiPlZhcmlhYmxlbiBlaW5m
w7xnZW48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJldm0tdmFycy1oaW53
ZWlzIj5LbGljayBhdWYgZWluZSBWYXJpYWJsZSBmw7xndCBzaWUgYW4gZGVyIEN1cnNvci1Qb3Np
dGlvbiBlaW4gKGltIGFrdHVlbGwgYWt0aXZlbiBGZWxkIOKAlCBCZXRyZWZmIG9kZXIgQW5zY2hy
ZWliZW4pLjwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImV2bS12YXJzLWxp
c3RlIj4nICsgdmFyaWFibGVuQnRucyArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzwvZGl2Picg
KwogICAgICAgICc8L2Rpdj4nOwoKICAgIHZhciBmdXNzID0gJzxidXR0b24gY2xhc3M9ImJ0biIg
aWQ9ImV2bS1hYmJyZWNoZW4iIHR5cGU9ImJ1dHRvbiI+QWJicmVjaGVuPC9idXR0b24+JyArCiAg
ICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIGlkPSJkbGctc3Bl
aWNoZXJuIiB0eXBlPSJidXR0b24iPlNwZWljaGVybjwvYnV0dG9uPic7CgogICAgLy8gQXV0by1T
YXZlIChQYWtldC1DLCAyMDI2LTA1LTI5KTogYmVpbSBTY2hsaWVzc2VuIHdpcmQgYXV0b21hdGlz
Y2gKICAgIC8vIGdlc3BlaWNoZXJ0LiBVc2VyLVByYWVmZXJlbnogZnVlciBhbGxlIGdyb2Vzc2Vy
ZW4gRWRpdC1Nb2RhbHMuCiAgICBtb2RhbFplaWdlbihtZXRhLnRpdGVsICsgJyBiZWFyYmVpdGVu
Jywga29lcnBlciwgZnVzcywgZnVuY3Rpb24oKSB7CiAgICAgICAgLy8gMSkgVm9ybGFnZSAoYmV0
cmVmZiArIHRleHQgKyB0b2dnbGVzKSBzcGVpY2hlcm4KICAgICAgICB2YXIgcGF5bG9hZCA9IFou
YWRtaW4uZW1haWxWb3JsYWdlbiA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoWi5hZG1pbi5l
bWFpbFZvcmxhZ2VuKSkgOiB7fTsKICAgICAgICB2YXIgcnRlRWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZXZtLXRleHQnKTsKICAgICAgICBwYXlsb2FkW2tleV0gPSB7CiAgICAgICAgICAg
IGJldHJlZmY6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdldm0tYmV0cmVmZicpLnZhbHVlLAog
ICAgICAgICAgICB0ZXh0OiAgICBzYW5pdGl6ZVJpY2hIdG1sKHJ0ZUVsID8gcnRlRWwuaW5uZXJI
VE1MIDogJycpCiAgICAgICAgfTsKICAgICAgICBtZXRhLnRvZ2dsZXMuZm9yRWFjaChmdW5jdGlv
bih0KSB7CiAgICAgICAgICAgIHBheWxvYWRba2V5XVt0LmtleV0gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZXZtLXRvZ2dsZS0nICsgdC5rZXkpLmNoZWNrZWQ7CiAgICAgICAgfSk7CgogICAg
ICAgIC8vIDIpIEJlaSBtYWlsdG8tYXV0b1RyaWdnZXIgenVzYWV0emxpY2ggVHJpZ2dlci1Lb25m
aWcgKGFrdGl2ICsgZW1wZmFlbmdlcikKICAgICAgICAvLyBzcGVpY2hlcm4uIEhpbndlaXMtVHJp
Z2dlciBoYWJlbiBrZWluIGFrdGl2LVRvZ2dsZSAoU2VydmVyIGVudHNjaGVpZGV0KSwKICAgICAg
ICAvLyBkYWhlciBrZWluIFNhdmUtUGF5bG9hZC4KICAgICAgICB2YXIgdHJpZ2dlclBheWxvYWQg
PSBudWxsOwogICAgICAgIGlmIChtZXRhLmF1dG9UcmlnZ2VyICYmIG1ldGEubW9kdXMgIT09ICdo
aW53ZWlzJykgewogICAgICAgICAgICB2YXIgdHJpZ0FsbGUgPSBaLmFkbWluLmVtYWlsVHJpZ2dl
ciA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoWi5hZG1pbi5lbWFpbFRyaWdnZXIpKSA6IHt9
OwogICAgICAgICAgICB2YXIgYWt0aXZFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdldm0t
dHJpZy1ha3RpdicpOwogICAgICAgICAgICB2YXIgZW1wZkNoa3MgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCcuZXZtLWVtcGYtY2hrJyk7CiAgICAgICAgICAgIHZhciBlbXBmID0gW107CiAg
ICAgICAgICAgIGVtcGZDaGtzLmZvckVhY2goZnVuY3Rpb24oYykgeyBpZiAoYy5jaGVja2VkKSBl
bXBmLnB1c2goYy5nZXRBdHRyaWJ1dGUoJ2RhdGEta2V5JykpOyB9KTsKICAgICAgICAgICAgdHJp
Z0FsbGVba2V5XSA9IHsKICAgICAgICAgICAgICAgIGFrdGl2OiAgICAgIGFrdGl2RWwgPyBha3Rp
dkVsLmNoZWNrZWQgOiBmYWxzZSwKICAgICAgICAgICAgICAgIGVtcGZhZW5nZXI6IGVtcGYKICAg
ICAgICAgICAgfTsKICAgICAgICAgICAgdHJpZ2dlclBheWxvYWQgPSB0cmlnQWxsZTsKICAgICAg
ICB9CgogICAgICAgIC8vIEVyc3QgVm9ybGFnZW4tU2F2ZSwgZGFubiAob3B0aW9uYWwpIFRyaWdn
ZXItU2F2ZSBzZXF1ZW56aWVsbAogICAgICAgIGFwaVB1dCgnL2FwaS9hZG1pbi9lbWFpbHZvcmxh
Z2VuJywgcGF5bG9hZCkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgWi5hZG1pbi5lbWFp
bFZvcmxhZ2VuID0gcGF5bG9hZDsKICAgICAgICAgICAgaWYgKHRyaWdnZXJQYXlsb2FkKSB7CiAg
ICAgICAgICAgICAgICByZXR1cm4gYXBpUHV0KCcvYXBpL2FkbWluL2VtYWlsdHJpZ2dlcicsIHRy
aWdnZXJQYXlsb2FkKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIFouYWRt
aW4uZW1haWxUcmlnZ2VyID0gdHJpZ2dlclBheWxvYWQ7CiAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgfQogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGVudHd1
cmZMb2VzY2hlbignZW1haWxfJyArIGtleSk7CiAgICAgICAgICAgIG1vZGFsU2NobGllc3Nlbih0
cnVlKTsKICAgICAgICAgICAgZW1haWxWb3JsYWdlblJlbmRlcm4oKTsKICAgICAgICAgICAgdG9h
c3QobWV0YS50aXRlbCArICcgZ2VzcGVpY2hlcnQnLCAnZXJmb2xnJyk7CiAgICAgICAgfSkuY2F0
Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7
IH0pOwogICAgfSwgJ2VtYWlsXycgKyBrZXksIHsgYXV0b1NhdmU6IHRydWUgfSk7CgogICAgLy8g
TW9kYWwgdmVyZ3JvZXNzZXJuIChTdGFuZGFyZCA2MjBweCB3YXIgenUgZW5nIOKAlCBVc2VyLVd1
bnNjaCkKICAgIHZhciBtb2RhbEluaGFsdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtb2Rh
bC1vdmVybGF5IC5tb2RhbC1pbmhhbHQnKTsKICAgIGlmIChtb2RhbEluaGFsdCkgbW9kYWxJbmhh
bHQuY2xhc3NMaXN0LmFkZCgnbW9kYWwtaW5oYWx0LWdyb3NzJyk7CgogICAgLy8gUlRFIGF1ZiBk
YXMgY29udGVudGVkaXRhYmxlLUZlbGQgaGFlbmdlbgogICAgdmFyIHJ0ZUVkaXRvciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdldm0tdGV4dCcpOwogICAgaWYgKHJ0ZUVkaXRvcikgcnRlSW5p
dChydGVFZGl0b3IpOwoKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdldm0tYWJicmVjaGVu
JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsgbW9kYWxTY2hsaWVzc2Vu
KCk7IH0pOwoKICAgIC8vIFRyYWNraW5nIHdlbGNoZXMgRmVsZCB6dWxldHp0IGZva3Vzc2llcnQg
d2FyIChCZXRyZWZmIHZzLiBBbnNjaHJlaWJlbikuCiAgICAvLyBCZWltIEtsaWNrIGF1ZiBWYXJp
YWJsZSB3aXJkIGRvcnQgZWluZ2VmdWVndC4KICAgIHZhciBsZXR6dGVzRmVsZCA9IHJ0ZUVkaXRv
ciB8fCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZtLWJldHJlZmYnKTsKICAgIHZhciBiZXRy
ZWZmRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZtLWJldHJlZmYnKTsKICAgIGlmIChi
ZXRyZWZmRWwpIGJldHJlZmZFbC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkg
eyBsZXR6dGVzRmVsZCA9IGJldHJlZmZFbDsgfSk7CiAgICBpZiAocnRlRWRpdG9yKSAgcnRlRWRp
dG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24oKSB7IGxldHp0ZXNGZWxkID0g
cnRlRWRpdG9yOyB9KTsKICAgIGlmIChydGVFZGl0b3IpIHJ0ZUVkaXRvci5mb2N1cygpOwoKICAg
IC8vIFZhcmlhYmxlbi1JbnNlcnQtQnV0dG9ucy4gV0lDSFRJRzogbW91c2Vkb3duLnByZXZlbnRE
ZWZhdWx0KCkgaGFlbHQKICAgIC8vIGRlbiBDdXJzb3ItRm9rdXMgaW0gWmllbC1GZWxkLCBzb25z
dCB2ZXJsaWVydCBjb250ZW50ZWRpdGFibGUgZGllCiAgICAvLyBDdXJzb3ItUG9zaXRpb24gYmV2
b3IgZXhlY0NvbW1hbmQgZ3JlaWZ0LgogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmV2
bS12YXItYnRuJykuZm9yRWFjaChmdW5jdGlvbihidG4pIHsKICAgICAgICBidG4uYWRkRXZlbnRM
aXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZSkgeyBlLnByZXZlbnREZWZhdWx0KCk7IH0p
OwogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICB2YXIgdmFyTmFtZSA9IGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtdmFyJyk7CiAgICAg
ICAgICAgIHZhciB0b2tlbiA9ICd7JyArIHZhck5hbWUgKyAnfSc7CiAgICAgICAgICAgIHZhciB6
aWVsID0gbGV0enRlc0ZlbGQ7CiAgICAgICAgICAgIGlmICghemllbCkgcmV0dXJuOwogICAgICAg
ICAgICBpZiAoemllbC50YWdOYW1lID09PSAnSU5QVVQnIHx8IHppZWwudGFnTmFtZSA9PT0gJ1RF
WFRBUkVBJykgewogICAgICAgICAgICAgICAgdmFyIHMgPSB6aWVsLnNlbGVjdGlvblN0YXJ0IHx8
IDA7CiAgICAgICAgICAgICAgICB2YXIgZTIgPSB6aWVsLnNlbGVjdGlvbkVuZCB8fCAwOwogICAg
ICAgICAgICAgICAgemllbC52YWx1ZSA9IHppZWwudmFsdWUuc2xpY2UoMCwgcykgKyB0b2tlbiAr
IHppZWwudmFsdWUuc2xpY2UoZTIpOwogICAgICAgICAgICAgICAgemllbC5zZWxlY3Rpb25TdGFy
dCA9IHppZWwuc2VsZWN0aW9uRW5kID0gcyArIHRva2VuLmxlbmd0aDsKICAgICAgICAgICAgICAg
IHppZWwuZm9jdXMoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIGNv
bnRlbnRlZGl0YWJsZTogYW4gQ3Vyc29yLVBvc2l0aW9uIGVpbmZ1ZWdlbgogICAgICAgICAgICAg
ICAgemllbC5mb2N1cygpOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2lu
c2VydFRleHQnLCBmYWxzZSwgdG9rZW4pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFoubW9k
YWxEaXJ0eSA9IHRydWU7CiAgICAgICAgfSk7CiAgICB9KTsKfQoKLy8gPT09PT0gVm9ybGFnZW4t
RW5naW5lIChiZWZ1ZWxsZW4gKyBFbXBmYWVuZ2VyLVJlc29sdmUgKyBUcmlnZ2VyLURpc3BhdGNo
KSA9PT09PQoKLy8gV2FuZGVsdCBzYW5pdGllcnRlcyBNaW5pLUhUTUwgaW4gUGxhaW4tVGV4dCBm
dWVyIG1haWx0bzotVmVyc2FuZC4KLy8gQmFja3dhcmRzLWNvbXBhdDogYWx0ZSBQbGFpbi1Wb3Js
YWdlbiAobWl0IFxuKSBnZWhlbiB1bnZlcmFlbmRlcnQgZHVyY2guCmV4cG9ydCBmdW5jdGlvbiBo
dG1sWnVQbGFpblRleHQoaHRtbCkgewogICAgaWYgKCFodG1sKSByZXR1cm4gJyc7CiAgICB2YXIg
cyA9IFN0cmluZyhodG1sKTsKICAgIGlmICghLzxcLz8oYnxzdHJvbmd8aXxlbXx1fHVsfG9sfGxp
fHB8YnJ8ZGl2fHNwYW58YXxoXGR8YmxvY2txdW90ZSlcYi9pLnRlc3QocykpIHJldHVybiBzOwog
ICAgcyA9IHMKICAgICAgICAucmVwbGFjZSgvPGJyXHMqXC8/Pi9naSwgJ1xuJykKICAgICAgICAu
cmVwbGFjZSgvPFwvKHB8ZGl2fGhcZHxsaXxibG9ja3F1b3RlKT4vZ2ksICdcbicpCiAgICAgICAg
LnJlcGxhY2UoLzxsaVtePl0qPi9naSwgJyogJykKICAgICAgICAucmVwbGFjZSgvPFwvPyhwfGRp
dnxoXGR8dWx8b2x8YnxzdHJvbmd8aXxlbXx1fHNwYW58YXxibG9ja3F1b3RlKVtePl0qPi9naSwg
JycpCiAgICAgICAgLnJlcGxhY2UoLyZuYnNwOy9nLCAnICcpCiAgICAgICAgLnJlcGxhY2UoLyZh
bXA7L2csICcmJykKICAgICAgICAucmVwbGFjZSgvJmx0Oy9nLCAnPCcpCiAgICAgICAgLnJlcGxh
Y2UoLyZndDsvZywgJz4nKQogICAgICAgIC5yZXBsYWNlKC8mcXVvdDsvZywgJyInKQogICAgICAg
IC5yZXBsYWNlKC8mIzM5Oy9nLCAiJyIpCiAgICAgICAgLnJlcGxhY2UoL1xuezMsfS9nLCAnXG5c
bicpOwogICAgcmV0dXJuIHMudHJpbSgpOwp9CgovLyBFcnNldHp0IHt2YXJpYWJsZX0tUGxhdHpo
YWx0ZXIgaW0gU3RyaW5nIGR1cmNoIGRpZSBrb25rcmV0ZW4gV2VydGUuCi8vIEtvbnZlcnRpZXJ0
IEhUTUwtVm9ybGFnZW4gKG5ldWVyIFJURS1FZGl0b3IpIGF1dG9tYXRpc2NoIHp1IFBsYWluLVRl
eHQKLy8gZnVlciBkZW4gbWFpbHRvOi1WZXJzYW5kLiBjdHgtT2JqZWt0OiB7ZGF0dW0sIHdvY2hl
bnRhZywgc2NoaWNodCwgLi4ufQpleHBvcnQgZnVuY3Rpb24gZW1haWxWb3JsYWdlQmVmdWVsbGVu
KHZvcmxhZ2UsIGN0eCkgewogICAgdmFyIHBsYWluID0gaHRtbFp1UGxhaW5UZXh0KHZvcmxhZ2Up
OwogICAgcmV0dXJuIHBsYWluLnJlcGxhY2UoL1x7KFx3KylcfS9nLCBmdW5jdGlvbihfLCBrKSB7
CiAgICAgICAgcmV0dXJuIChjdHggJiYgayBpbiBjdHgpID8gU3RyaW5nKGN0eFtrXSkgOiAoJ3sn
ICsgayArICd9Jyk7CiAgICB9KTsKfQoKLy8gTG9lc3Qgc3ltYm9saXNjaGUgRW1wZmFlbmdlci1U
YWdzICh6LkIuICdzdXBlcnVzZXInLCAnd2FjaGxlaXR1bmdfcGVyc29uJykKLy8gaW4ga29ua3Jl
dGUgRS1NYWlsLUFkcmVzc2VuIGF1Zi4gY3R4IGthbm4gJ3BlcnNvbl9pZCcsICdkYXR1bScsCi8v
ICdzY2hpY2h0X2t1cnonIGVudGhhbHRlbiwgZGFtaXQgdGFnLXNwZXppZmlzY2hlIEJlenVlZ2Ug
ZnVua3Rpb25pZXJlbi4KLy8gUmV0dXJuOiBBcnJheSB2b24gU3RyaW5ncyAoZWluZGV1dGlnZSBB
ZHJlc3NlbiwgTG93ZXJjYXNlLWRlZHVwbGl6aWVydCkuCi8vIEF1ZGl0LVBoYXNlIEMuMSAoMjAy
Ni0wNS0yMSk6IG5pY2h0IG1laHIgZXhwb3J0aWVydCwgbnVyIGludGVybiBpbgovLyBtYWlsVHJp
Z2dlckZldWVybiBnZW51dHp0LiBEZXIgZnJ1ZWhlciBpbiBhcHAuanMgZ2VmdWVocnRlIEltcG9y
dCB3dXJkZQovLyBlbnRmZXJudCDigJQga2VpbmUgZXh0ZXJuZW4gS29uc3VtZW50ZW4uCmZ1bmN0
aW9uIGVtYWlsRW1wZmFlbmdlclJlc29sdmUodGFncywgY3R4KSB7CiAgICBpZiAoIXRhZ3MgfHwg
IXRhZ3MubGVuZ3RoKSByZXR1cm4gW107CiAgICB2YXIgcGVyc29uZW4gPSAoWi5wbGFudW5nICYm
IFoucGxhbnVuZy5wZXJzb25lbikgfHwgW107CiAgICB2YXIgYnlJZCA9IHt9OwogICAgcGVyc29u
ZW4uZm9yRWFjaChmdW5jdGlvbihwKSB7IGJ5SWRbU3RyaW5nKHAuaWQpXSA9IHA7IH0pOwogICAg
dmFyIG91dCA9IHt9OwogICAgZnVuY3Rpb24gYWRkKHApIHsKICAgICAgICBpZiAoIXApIHJldHVy
bjsKICAgICAgICB2YXIgZW0gPSBTdHJpbmcocC5lbWFpbCB8fCAnJykudHJpbSgpOwogICAgICAg
IGlmICghZW0gfHwgZW0uaW5kZXhPZignQCcpIDwgMCkgcmV0dXJuOwogICAgICAgIG91dFtlbS50
b0xvd2VyQ2FzZSgpXSA9IGVtOwogICAgfQogICAgdmFyIHppZWxQZXJzb24gPSBjdHggJiYgY3R4
LnBlcnNvbl9pZCAhPSBudWxsID8gYnlJZFtTdHJpbmcoY3R4LnBlcnNvbl9pZCldIDogbnVsbDsK
ICAgIHRhZ3MuZm9yRWFjaChmdW5jdGlvbih0YWcpIHsKICAgICAgICBpZiAodGFnID09PSAnYmV0
cm9mZmVuZV9wZXJzb24nKSB7CiAgICAgICAgICAgIGlmICh6aWVsUGVyc29uKSBhZGQoemllbFBl
cnNvbik7CiAgICAgICAgfSBlbHNlIGlmICh0YWcgPT09ICd3YWNobGVpdHVuZ19wZXJzb24nKSB7
CiAgICAgICAgICAgIHZhciBvZSA9IHppZWxQZXJzb24gJiYgemllbFBlcnNvbi5vZTsKICAgICAg
ICAgICAgcGVyc29uZW4uZm9yRWFjaChmdW5jdGlvbihwKSB7CiAgICAgICAgICAgICAgICBpZiAo
IXAuYWt0aXYgfHwgcC5ncnVwcGUgIT09ICdXTCcpIHJldHVybjsKICAgICAgICAgICAgICAgIGlm
IChvZSAmJiBwLm9lICYmIHAub2UgIT09IG9lKSByZXR1cm47CiAgICAgICAgICAgICAgICBhZGQo
cCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSBpZiAodGFnID09PSAnZ2VzYW10dmVy
YW50d29ydGxpY2gnKSB7CiAgICAgICAgICAgIChaLmFkbWluLmZhY2hhdWZzaWNodCB8fCBbXSku
Zm9yRWFjaChmdW5jdGlvbihmYSkgewogICAgICAgICAgICAgICAgaWYgKCFmYS5nZXNhbXR2ZXJh
bnR3b3J0bGljaCkgcmV0dXJuOwogICAgICAgICAgICAgICAgaWYgKGZhLmVtYWlsKSB7IG91dFtT
dHJpbmcoZmEuZW1haWwpLnRvTG93ZXJDYXNlKCldID0gZmEuZW1haWw7IHJldHVybjsgfQogICAg
ICAgICAgICAgICAgdmFyIHAgPSBwZXJzb25lbi5maW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJuICh4
Lm53S2VubnVuZyB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gU3RyaW5nKGZhLm53S2VubnVuZyB8
fCAnJykudG9Mb3dlckNhc2UoKTsgfSk7CiAgICAgICAgICAgICAgICBhZGQocCk7CiAgICAgICAg
ICAgIH0pOwogICAgICAgIH0gZWxzZSBpZiAodGFnID09PSAnc3VwZXJ1c2VyJykgewogICAgICAg
ICAgICAoWi5hZG1pbi5zdXBlclVzZXIgfHwgW10pLmZvckVhY2goZnVuY3Rpb24oc3UpIHsKICAg
ICAgICAgICAgICAgIHZhciBwID0gcGVyc29uZW4uZmluZChmdW5jdGlvbih4KSB7IHJldHVybiAo
eC5ud0tlbm51bmcgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09IFN0cmluZyhzdS5ud0tlbm51bmcg
fHwgJycpLnRvTG93ZXJDYXNlKCk7IH0pOwogICAgICAgICAgICAgICAgYWRkKHApOwogICAgICAg
ICAgICB9KTsKICAgICAgICB9IGVsc2UgaWYgKHRhZyA9PT0gJ2RnbF9zY2hpY2h0JykgewogICAg
ICAgICAgICBpZiAoY3R4ICYmIGN0eC5kYXR1bSAmJiBjdHguc2NoaWNodF9rdXJ6ICYmIFoucGxh
bnVuZy5laW50cmFlZ2UpIHsKICAgICAgICAgICAgICAgIHZhciB0YWdfZWludHJhZWdlID0gWi5w
bGFudW5nLmVpbnRyYWVnZVtjdHguZGF0dW1dIHx8IHt9OwogICAgICAgICAgICAgICAgdmFyIHpp
ZWxDb2RlcyA9IFtjdHguc2NoaWNodF9rdXJ6ICsgJy1ER0wnLCBjdHguc2NoaWNodF9rdXJ6ICsg
Jy1XREYnLCBjdHguc2NoaWNodF9rdXJ6ICsgJy1GQlAnXTsKICAgICAgICAgICAgICAgIE9iamVj
dC5rZXlzKHRhZ19laW50cmFlZ2UpLmZvckVhY2goZnVuY3Rpb24ocGlkKSB7CiAgICAgICAgICAg
ICAgICAgICAgaWYgKFN0cmluZyhwaWQpID09PSBTdHJpbmcoY3R4LnBlcnNvbl9pZCkpIHJldHVy
bjsKICAgICAgICAgICAgICAgICAgICBpZiAoemllbENvZGVzLmluZGV4T2YodGFnX2VpbnRyYWVn
ZVtwaWRdKSA+PSAwKSBhZGQoYnlJZFtwaWRdKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICB9CiAgICAgICAgfSBlbHNlIGlmICh0YWcgPT09ICdkaWVuc3Rfd2FjaF9mcmVpX2luX3Nj
aGljaHQnKSB7CiAgICAgICAgICAgIGlmIChjdHggJiYgY3R4LmRhdHVtICYmIFoucGxhbnVuZy5l
aW50cmFlZ2UpIHsKICAgICAgICAgICAgICAgIHZhciB0ZSA9IFoucGxhbnVuZy5laW50cmFlZ2Vb
Y3R4LmRhdHVtXSB8fCB7fTsKICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRlKS5mb3JFYWNo
KGZ1bmN0aW9uKHBpZCkgewogICAgICAgICAgICAgICAgICAgIGlmICh0ZVtwaWRdID09PSAnZGZy
JyB8fCB0ZVtwaWRdID09PSAnd2ZyJykgYWRkKGJ5SWRbcGlkXSk7CiAgICAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIE9iamVjdC5rZXlz
KG91dCkubWFwKGZ1bmN0aW9uKGspIHsgcmV0dXJuIG91dFtrXTsgfSk7Cn0KCi8vIFplbnRyYWxl
ciBtYWlsdG86LVRyaWdnZXItRGlzcGF0Y2hlci4KLy8gb3B0Lm1hbnVlbGwgPSB0cnVlIGJlaSB2
b20gTnV0emVyIGFrdGl2IGFuZ2VrbGlja3RlbiBNYWlscyAoei5CLiBEZWZpeml0LQovLyBCcmll
ZmluZy1CdXR0b24gaW0gUHJ1ZWZ1bmdzLVRhYikuIEluIGRlbSBGYWxsIGlnbm9yaWVyZW4gd2ly
IGRlbgovLyBhZG1pbi1rb25maWd1cmllcnRlbiBjZmcuYWt0aXYtU3RhdHVzIHVuZCBmYWxsZW4g
ZnVlciBFbXBmYWVuZ2VyIGF1ZgovLyBtZXRhLmRlZmF1bHRFbXBmYWVuZ2VyIHp1cnVlY2ssIHdl
bm4gZGVyIEFkbWluLVRhYiBub2NoIG5pY2h0IGFuZ2VmYXNzdAovLyB3dXJkZS4gRGFzIHZlcmhp
bmRlcnQgInN0aWxsZSIgS2xpY2tzLCBiZWkgZGVuZW4gc2ljaCBuaWNodHMgb2VmZm5ldC4KLy8g
QXV0by1UcmlnZ2VyIChLcmFua21lbGR1bmcgdS5hLikgYmxlaWJlbiB3aWUgYmlzaGVyOiBudXIg
ZmV1ZXJuLCB3ZW5uCi8vIGRlciBBZG1pbiBzaWUgZXhwbGl6aXQgYWt0aXZpZXJ0IGhhdC4KZXhw
b3J0IGZ1bmN0aW9uIG1haWxUcmlnZ2VyRmV1ZXJuKHRyaWdnZXJUeXAsIGN0eCwgb3B0KSB7CiAg
ICBvcHQgPSBvcHQgfHwge307CiAgICB2YXIgY2ZnID0gKChaLmFkbWluICYmIFouYWRtaW4uZW1h
aWxUcmlnZ2VyKSB8fCB7fSlbdHJpZ2dlclR5cF0gfHwgbnVsbDsKICAgIHZhciBtZXRhID0gRU1B
SUxfVk9STEFHRU5fTUVUQVt0cmlnZ2VyVHlwXTsKICAgIGlmICghbWV0YSkgcmV0dXJuIGZhbHNl
OwogICAgLy8gSGlud2Vpcy1UcmlnZ2VyIChQaGFzZSA1LCAyMDI2LTA1LTIwKTogZGVyIFNlcnZl
ciBoYXQgZGVuIEhpbndlaXMKICAgIC8vIGJlcmVpdHMgaW4gZGF0YS9oaW53ZWlzZS5qc29uIGdl
c2NocmllYmVuIOKAlCBrZWluIE91dGxvb2stUG9wdXAuCiAgICAvLyBCYW5uZXIgKyBCYWRnZSBl
cnNjaGVpbmVuIGJlaW0gbmFlY2hzdGVuIFN5bmMtV29ya2VyLVRpY2suCiAgICBpZiAobWV0YS5t
b2R1cyA9PT0gJ2hpbndlaXMnKSByZXR1cm4gZmFsc2U7CiAgICBpZiAoIW9wdC5tYW51ZWxsKSB7
CiAgICAgICAgaWYgKCFjZmcgfHwgIWNmZy5ha3RpdikgcmV0dXJuIGZhbHNlOwogICAgfQogICAg
dmFyIHRhZ3MgPSAoY2ZnICYmIGNmZy5lbXBmYWVuZ2VyICYmIGNmZy5lbXBmYWVuZ2VyLmxlbmd0
aCkKICAgICAgICA/IGNmZy5lbXBmYWVuZ2VyCiAgICAgICAgOiAobWV0YS5kZWZhdWx0RW1wZmFl
bmdlciB8fCBbXSk7CiAgICB2YXIgdm9ybGFnZSA9IGVtYWlsVm9ybGFnZW5Ib2xlbigpW3RyaWdn
ZXJUeXBdOwogICAgaWYgKCF2b3JsYWdlKSByZXR1cm4gZmFsc2U7CiAgICB2YXIgZW1wZmFlbmdl
ciA9IGVtYWlsRW1wZmFlbmdlclJlc29sdmUodGFncywgY3R4IHx8IHt9KTsKICAgIGlmICghZW1w
ZmFlbmdlci5sZW5ndGgpIHsKICAgICAgICB0b2FzdCgnTWFpbCDigJ4nICsgbWV0YS50aXRlbCAr
ICciOiBrZWluZSBFbXBmw6RuZ2VyIG1pdCBFLU1haWwtQWRyZXNzZSBnZWZ1bmRlbiAoR2VzYW10
dmVyYW50d29ydGxpY2hlL3IgaW4gYWRtaW4uZmFjaGF1ZnNpY2h0IHBmbGVnZW4/KScsICd3YXJu
dW5nJyk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgdmFyIGJldHJlZmYgPSBlbWFp
bFZvcmxhZ2VCZWZ1ZWxsZW4odm9ybGFnZS5iZXRyZWZmIHx8ICcnLCBjdHggfHwge30pOwogICAg
dmFyIHRleHQgICAgPSBlbWFpbFZvcmxhZ2VCZWZ1ZWxsZW4odm9ybGFnZS50ZXh0ICAgIHx8ICcn
LCBjdHggfHwge30pOwogICAgdmFyIHVybCA9ICdtYWlsdG86P2JjYz0nICsgZW5jb2RlVVJJQ29t
cG9uZW50KGVtcGZhZW5nZXIuam9pbignLCcpKSArCiAgICAgICAgICAgICAgJyZzdWJqZWN0PScg
KyBlbmNvZGVVUklDb21wb25lbnQoYmV0cmVmZikgKwogICAgICAgICAgICAgICcmYm9keT0nICAg
ICsgZW5jb2RlVVJJQ29tcG9uZW50KHRleHQpOwogICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1
cmw7CiAgICByZXR1cm4gdHJ1ZTsKfQoKLy8gU2VydmVyLWdldHJpZ2dlcnRlcyBtYWlsdG86IGJl
aSBTVS0gb2RlciBHZXNhbXR2ZXJhbnR3b3J0bGljaC1XZWNoc2VsCi8vIGxpZWZlcnQgZGVyIFNl
cnZlciBpbSBSZXNwb25zZS1Cb2R5IGBfYnJhdWNodF9tYWlsdG8gPSB7IHRyaWdnZXIsIGRpZmZz
IH1gLgovLyBQcm8gRGlmZiAocmVpbi9yYXVzLCByb2xsZSwgbmFtZSkgd2lyZCBlaW4gZWlnZW5l
cyBtYWlsdG8tUG9wdXAgZ2VvZWZmbmV0LgovLyBXaXJkIHZvbiBhZG1pbl9yb2xsZW4uanMgZGly
ZWt0IG5hY2ggZGVtIFNhdmUgYXVmZ2VydWZlbi4KZXhwb3J0IGZ1bmN0aW9uIHZlcmFudHdvcnR1
bmdzTWFpbHRvRmV1ZXJuKGJyYXVjaHRNYWlsdG8pIHsKICAgIGlmICghYnJhdWNodE1haWx0byB8
fCAhYnJhdWNodE1haWx0by5kaWZmcyB8fCAhYnJhdWNodE1haWx0by5kaWZmcy5sZW5ndGgpIHJl
dHVybiBmYWxzZTsKICAgIHZhciB0cmlnZ2VyID0gYnJhdWNodE1haWx0by50cmlnZ2VyIHx8ICdy
b2xsZV92ZXJhbnR3b3J0dW5nJzsKICAgIGJyYXVjaHRNYWlsdG8uZGlmZnMuZm9yRWFjaChmdW5j
dGlvbihkKSB7CiAgICAgICAgdmFyIHJpY2h0dW5nVmVyYiA9IChkLnJpY2h0dW5nID09PSAncmVp
bicpCiAgICAgICAgICAgID8gKCd6dW0gJyArIGQucm9sbGUgKyAnIGVybmFubnQnKQogICAgICAg
ICAgICA6ICgnYXVzIGRlciBSb2xsZSAnICsgZC5yb2xsZSArICcgZW50bGFzc2VuJyk7CiAgICAg
ICAgbWFpbFRyaWdnZXJGZXVlcm4odHJpZ2dlciwgewogICAgICAgICAgICByb2xsZTogICAgICAg
ICAgZC5yb2xsZSwKICAgICAgICAgICAgbmFtZTogICAgICAgICAgIGQubmFtZSB8fCBkLm53S2Vu
bnVuZyB8fCAnJywKICAgICAgICAgICAgcmljaHR1bmc6ICAgICAgIGQucmljaHR1bmcsCiAgICAg
ICAgICAgIHJpY2h0dW5nX3ZlcmI6ICByaWNodHVuZ1ZlcmIsCiAgICAgICAgICAgICdhdXNsw7Zz
ZXInOiAgICBhYnNlbmRlck5hbWVFcm1pdHRlbG4oKSwKICAgICAgICAgICAgYWJzZW5kZXJfbmFt
ZTogIGFic2VuZGVyTmFtZUVybWl0dGVsbigpCiAgICAgICAgfSwgeyBtYW51ZWxsOiB0cnVlIH0p
OwogICAgfSk7CiAgICByZXR1cm4gdHJ1ZTsKfQoKLy8gcm9sbGVEaWZmVHJpZ2dlcm4gZW50ZmFl
bGx0IHNlaXQgUGhhc2UgNSAoMjAyNi0wNS0yMCk6IFNVLSB1bmQKLy8gR2VzYW10dmVyYW50d29y
dGxpY2gtV2VjaHNlbCB3ZXJkZW4gdm9tIFNlcnZlciB1ZWJlciBkYXMKLy8gX2JyYXVjaHRfbWFp
bHRvLUZlbGQgaW0gUmVzcG9uc2Ugc2lnbmFsaXNpZXJ0IChzaWVoZQovLyB2ZXJhbnR3b3J0dW5n
c01haWx0b0ZldWVybiBvYmVuKS4gRkEtU2VoZW4tRmxhZy1BZW5kZXJ1bmdlbiB3ZXJkZW4KLy8g
dm9tIFNlcnZlciBpbiBkYXRhL2hpbndlaXNlLmpzb24gYWxzIEluLUFwcC1IaW53ZWlzIGVyemV1
Z3QuCg==
### FILE: js/export_plan.js | 20784
Ly8gPT09IGV4cG9ydF9wbGFuLmpzID09PQovLyBEaWVuc3RwbGFuLUV4cG9ydCAoQWRtaW4tVGFi
IOKAnkV4Y2VsLUV4cG9ydCIpLiBFcnpldWd0IGNsaWVudHNlaXRpZyBhdXMgZGVuCi8vIGJlcmVp
dHMgZ2VsYWRlbmVuIERhdGVuIChaLnBsYW51bmcuZWludHJhZWdlLCBaLnBlcnNvbmVuLCBaLnRh
Z0luZm9zKSBlaW5lCi8vIGtvbmZpZ3VyaWVyYmFyZSBUYWJlbGxlOgovLwovLyAgIE5hbWUgfCBE
aWVuc3RncnVwcGUgfCBEYXR1bSB8IE1vbmF0IHwgVGFnIHwgV29jaGVudGFnIHwgS1cgfCBTY2hp
Y2h0IHwgS2xhcnRleHQKLy8KLy8gRGFydW50ZXIgZm9sZ3QgZWluZSB6d2VpdGUgSW5mb2JveCDi
gJ5IaW53ZWlzZSB6dSBUYWdlbiBtaXQgQmVzb25kZXJoZWl0ZW4iCi8vIChGZWllcnRhZ2UgLyBG
ZXJpZW4gLyBTb25kZXJ0ZXJtaW5lIOKAlCBhbHNvIGdlbmF1IGRpZSBpbSBQbGFuLUhlYWRlciBl
cmthbm50ZW4KLy8gSGlud2Vpc2UpIGZ1ZXIgZGVuIGV4cG9ydGllcnRlbiBaZWl0cmF1bS4KLy8K
Ly8gVW1mYW5nIGVpbnN0ZWxsYmFyOiBnYW56ZXMgUGxhbnVuZ3NqYWhyIHwgS2FsZW5kZXJ3b2No
ZW4gKHZvbuKAk2JpcykgfAovLyBEYXR1bSAodm9u4oCTYmlzKTsgUGVyc29uZW5rcmVpczogYWxs
ZSB8IERpZW5zdGdydXBwZW4gfCBlaW56ZWxuZSBQZXJzb25lbgovLyAoPSBpbmRpdmlkdWVsbGVy
IEV4cG9ydCkuIEZvcm1hdDogZm9ybWF0aWVydGVzIFhMU1ggKFNoZWV0SlMsIGxva2FsKSBvZGVy
IENTVgovLyAoVVRGLTggQk9NLCBTZW1pa29sb24g4oCUIEV4Y2VsLURFLXRhdWdsaWNoKS4gS2Vp
bmUgU2VydmVyLUFlbmRlcnVuZyBub2V0aWcuCgppbXBvcnQgeyBaIH0gZnJvbSAnLi9jb3JlX3N0
YXRlLmpzJzsKaW1wb3J0IHsgZXNjYXBlSFRNTCwgZXNjYXBlQXR0ciwgZGF0dW1TdHIsIGRhdHVt
Rm9ybWF0REUsIHBpZEtleSB9IGZyb20gJy4vY29yZV91dGlsLmpzJzsKaW1wb3J0IHsgdG9hc3Qg
fSBmcm9tICcuL3VpX2RpYWxvZy5qcyc7Cgp2YXIgTU9OQVRFID0gWydKYW51YXInLCAnRmVicnVh
cicsICdNw6RyeicsICdBcHJpbCcsICdNYWknLCAnSnVuaScsICdKdWxpJywgJ0F1Z3VzdCcsICdT
ZXB0ZW1iZXInLCAnT2t0b2JlcicsICdOb3ZlbWJlcicsICdEZXplbWJlciddOwp2YXIgV1QgICAg
ID0gWydTbycsICdNbycsICdEaScsICdNaScsICdEbycsICdGcicsICdTYSddOwp2YXIgU1BBTFRF
TiA9IFsnTmFtZScsICdEaWVuc3RncnVwcGUnLCAnRGF0dW0nLCAnTW9uYXQnLCAnVGFnJywgJ1dv
Y2hlbnRhZycsICdLVycsICdTY2hpY2h0JywgJ1NjaGljaHQgKEtsYXJ0ZXh0KSddOwp2YXIgSElO
V0VJU19TUEFMVEVOID0gWydEYXR1bScsICdXb2NoZW50YWcnLCAnVHlwJywgJ0JlemVpY2hudW5n
JywgJ0Jlc2NocmVpYnVuZyddOwoKZnVuY3Rpb24gX2RhcmYoKSB7CiAgICByZXR1cm4gISEoWi5y
ZWNodGUgJiYgKFoucmVjaHRlLmlzdFN1cGVyVXNlciB8fCAoWi5yZWNodGUuc2VoZW4gJiYgWi5y
ZWNodGUuc2VoZW4uYWRtaW5pc3RyYXRpb24pKSk7Cn0KCi8vID09PT09IEthbGVuZGVyLUhlbGZl
ciA9PT09PQoKLy8gSVNPLUthbGVuZGVyd29jaGUgKE1vLWJhc2llcnQpIOKAlCBzcGllZ2VsdCBz
dGF0aXN0aWtfZW5naW5lLl9pc29LVy4KZnVuY3Rpb24gX2lzb0tXKGQpIHsKICAgIHZhciB0ID0g
bmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpKTsKICAg
IHZhciB0YWcgPSAodC5nZXREYXkoKSArIDYpICUgNzsKICAgIHQuc2V0RGF0ZSh0LmdldERhdGUo
KSAtIHRhZyArIDMpOwogICAgdmFyIGphaHJTdGFydCA9IG5ldyBEYXRlKHQuZ2V0RnVsbFllYXIo
KSwgMCwgNCk7CiAgICB2YXIga3cgPSAxICsgTWF0aC5yb3VuZCgoKHQgLSBqYWhyU3RhcnQpIC8g
ODY0MDAwMDAgLSAzICsgKChqYWhyU3RhcnQuZ2V0RGF5KCkgKyA2KSAlIDcpKSAvIDcpOwogICAg
cmV0dXJuIHsgamFocjogdC5nZXRGdWxsWWVhcigpLCBrdzoga3cgfTsKfQovLyBNb250YWcgZGVy
IElTTy1LYWxlbmRlcndvY2hlIChXb2NoZSAxID0gZGllIG1pdCBkZW0gNC4gSmFudWFyKS4KZnVu
Y3Rpb24gX2lzb1dvY2hlbk1vbnRhZyhqYWhyLCB3b2NoZSkgewogICAgdmFyIGphbjQgPSBuZXcg
RGF0ZShqYWhyLCAwLCA0KTsKICAgIHZhciB0YWcgPSAoamFuNC5nZXREYXkoKSArIDYpICUgNzsK
ICAgIHZhciB3MSA9IG5ldyBEYXRlKGphbjQuZ2V0RnVsbFllYXIoKSwgamFuNC5nZXRNb250aCgp
LCBqYW40LmdldERhdGUoKSAtIHRhZyk7CiAgICByZXR1cm4gbmV3IERhdGUodzEuZ2V0RnVsbFll
YXIoKSwgdzEuZ2V0TW9udGgoKSwgdzEuZ2V0RGF0ZSgpICsgKHdvY2hlIC0gMSkgKiA3KTsKfQov
LyAnWVlZWS1Xd3cnIChXZXJ0IGVpbmVzIDxpbnB1dCB0eXBlPSJ3ZWVrIj4pIC0+IHsgdm9uOkRh
dGUsIGJpczpEYXRlLCBqYWhyLCBrdyB9LgpmdW5jdGlvbiBfa3dHcmVuemVuKHdrU3RyKSB7CiAg
ICB2YXIgbSA9IC9eKFxkezR9KS1XKFxkezEsMn0pJC8uZXhlYyh3a1N0ciB8fCAnJyk7CiAgICBp
ZiAoIW0pIHJldHVybiBudWxsOwogICAgdmFyIGphaHIgPSBwYXJzZUludChtWzFdLCAxMCksIGt3
ID0gcGFyc2VJbnQobVsyXSwgMTApOwogICAgdmFyIG1vID0gX2lzb1dvY2hlbk1vbnRhZyhqYWhy
LCBrdyk7CiAgICB2YXIgc28gPSBuZXcgRGF0ZShtby5nZXRGdWxsWWVhcigpLCBtby5nZXRNb250
aCgpLCBtby5nZXREYXRlKCkgKyA2KTsKICAgIHJldHVybiB7IHZvbjogbW8sIGJpczogc28sIGph
aHI6IGphaHIsIGt3OiBrdyB9Owp9CgovLyA9PT09PSBTdGFtbWRhdGVuLUhlbGZlciA9PT09PQoK
ZnVuY3Rpb24gX2dydXBwZUxhYmVsKG5hbWUpIHsKICAgIHZhciBnbSA9IFouZ3J1cHBlbk1hcCAm
JiBaLmdydXBwZW5NYXBbbmFtZV07CiAgICBpZiAoZ20gJiYgZ20uYmV6ZWljaG51bmcpIHJldHVy
biBnbS5iZXplaWNobnVuZzsKICAgIHZhciBnID0gKFouYWRtaW4uZ3J1cHBlbiB8fCBbXSkuZmls
dGVyKGZ1bmN0aW9uKHgpeyByZXR1cm4geC5uYW1lID09PSBuYW1lOyB9KVswXTsKICAgIHJldHVy
biBnID8gKGcuYmV6ZWljaG51bmcgfHwgZy5uYW1lKSA6IChuYW1lIHx8ICcnKTsKfQpmdW5jdGlv
biBfY29kZUJlemVpY2hudW5nKGNvZGUpIHsKICAgIHZhciBjID0gKFouYWRtaW4uc2NoaWNodGNv
ZGVzIHx8IFtdKS5maWx0ZXIoZnVuY3Rpb24oeCl7IHJldHVybiB4LmNvZGUgPT09IGNvZGU7IH0p
WzBdOwogICAgcmV0dXJuIGMgPyAoYy5iZXplaWNobnVuZyB8fCBjLmNvZGUpIDogY29kZTsKfQpm
dW5jdGlvbiBfcGVyc29uTmFtZShwKSB7CiAgICByZXR1cm4gKHAubmFtZSB8fCAnJykgKyAocC52
b3JuYW1lID8gKCcsICcgKyBwLnZvcm5hbWUpIDogJycpOwp9Ci8vIEhUTUwgKFNvbmRlcnRlcm1p
bi1UZXh0IGlzdCBhZG1pbi1zYW5pdGlzaWVydCkgLT4gcmVpbmVyIFRleHQgZnVlciBkZW4gRXhw
b3J0LgpmdW5jdGlvbiBfc3RyaXBIdG1sKHMpIHsKICAgIGlmICghcykgcmV0dXJuICcnOwogICAg
dmFyIGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGQuaW5uZXJIVE1MID0g
czsKICAgIHJldHVybiAoZC50ZXh0Q29udGVudCB8fCBkLmlubmVyVGV4dCB8fCAnJykucmVwbGFj
ZSgvXHMrL2csICcgJykudHJpbSgpOwp9CgovLyA9PT09PSBGb3JtdWxhci1MZXNlbiA9PT09PQoK
ZnVuY3Rpb24gX3ZhbChpZCkgeyB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsg
cmV0dXJuIGUgPyBlLnZhbHVlIDogJyc7IH0KZnVuY3Rpb24gX2NoayhpZCkgeyB2YXIgZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsgcmV0dXJuICEhKGUgJiYgZS5jaGVja2VkKTsgfQpm
dW5jdGlvbiBfY2hlY2tlZChncnApIHsKICAgIHZhciBvdXQgPSBbXTsKICAgIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoJyNleHBvcnQtaW5oYWx0IFtkYXRhLWV4cD0iJyArIGdycCArICciXTpj
aGVja2VkJykuZm9yRWFjaChmdW5jdGlvbihjKXsgb3V0LnB1c2goYy52YWx1ZSk7IH0pOwogICAg
cmV0dXJuIG91dDsKfQoKLy8gWmVpdHJhdW0gYXVzIGRlbSBGb3JtdWxhciAtPiB7IHZvbjpEYXRl
LCBiaXM6RGF0ZSwgbGFiZWwgfSBvZGVyIG51bGwuCmZ1bmN0aW9uIF96ZWl0cmF1bSgpIHsKICAg
IHZhciBtb2R1cyA9IF92YWwoJ2V4cC16ZWl0bW9kdXMnKSB8fCAnamFocic7CiAgICBpZiAobW9k
dXMgPT09ICdqYWhyJykgewogICAgICAgIHZhciBqID0gKFouYWRtaW4gJiYgWi5hZG1pbi5qYWhy
KSB8fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7CiAgICAgICAgcmV0dXJuIHsgdm9uOiBuZXcg
RGF0ZShqLCAwLCAxKSwgYmlzOiBuZXcgRGF0ZShqLCAxMSwgMzEpLCBsYWJlbDogJ1BsYW51bmdz
amFociAnICsgaiB9OwogICAgfQogICAgaWYgKG1vZHVzID09PSAna3cnKSB7CiAgICAgICAgdmFy
IHYgPSBfa3dHcmVuemVuKF92YWwoJ2V4cC1rdy12b24nKSksIGIgPSBfa3dHcmVuemVuKF92YWwo
J2V4cC1rdy1iaXMnKSk7CiAgICAgICAgaWYgKCF2ICYmICFiKSByZXR1cm4gbnVsbDsKICAgICAg
ICBpZiAoIXYpIHYgPSBiOwogICAgICAgIGlmICghYikgYiA9IHY7CiAgICAgICAgLy8gRmFsbHMg
YmlzIHZvciB2b24gbGllZ3QsIHRhdXNjaGVuLgogICAgICAgIHZhciB2b24gPSB2LnZvbiwgYmlz
ID0gYi5iaXM7CiAgICAgICAgaWYgKHZvbiA+IGJpcykgeyB2YXIgdCA9IHZvbjsgdm9uID0gYi52
b247IGJpcyA9IHYuYmlzOyB9CiAgICAgICAgdmFyIGxhYiA9ICh2Lmt3ID09PSBiLmt3ICYmIHYu
amFociA9PT0gYi5qYWhyKQogICAgICAgICAgICA/ICgnS1cgJyArIHYua3cgKyAnIC8gJyArIHYu
amFocikKICAgICAgICAgICAgOiAoJ0tXICcgKyB2Lmt3ICsgJ+KAkycgKyBiLmt3ICsgJyAvICcg
KyAodi5qYWhyID09PSBiLmphaHIgPyB2LmphaHIgOiAodi5qYWhyICsgJ+KAkycgKyBiLmphaHIp
KSk7CiAgICAgICAgcmV0dXJuIHsgdm9uOiB2b24sIGJpczogYmlzLCBsYWJlbDogbGFiIH07CiAg
ICB9CiAgICAvLyBkYXR1bQogICAgdmFyIGR2ID0gX3ZhbCgnZXhwLWRhdHVtLXZvbicpLCBkYiA9
IF92YWwoJ2V4cC1kYXR1bS1iaXMnKTsKICAgIGlmICghZHYgJiYgIWRiKSByZXR1cm4gbnVsbDsK
ICAgIHZhciBkVm9uID0gZHYgPyBuZXcgRGF0ZShkdiArICdUMDA6MDA6MDAnKSA6IG5ldyBEYXRl
KGRiICsgJ1QwMDowMDowMCcpOwogICAgdmFyIGRCaXMgPSBkYiA/IG5ldyBEYXRlKGRiICsgJ1Qw
MDowMDowMCcpIDogbmV3IERhdGUoZHYgKyAnVDAwOjAwOjAwJyk7CiAgICBpZiAoZFZvbiA+IGRC
aXMpIHsgdmFyIHR0ID0gZFZvbjsgZFZvbiA9IGRCaXM7IGRCaXMgPSB0dDsgfQogICAgcmV0dXJu
IHsgdm9uOiBkVm9uLCBiaXM6IGRCaXMsIGxhYmVsOiBkYXR1bUZvcm1hdERFKGRhdHVtU3RyKGRW
b24pKSArICcg4oCTICcgKyBkYXR1bUZvcm1hdERFKGRhdHVtU3RyKGRCaXMpKSB9Owp9CgovLyBQ
ZXJzb25lbmtyZWlzIGF1cyBkZW0gRm9ybXVsYXIgLT4geyBsaXN0ZTpbcGVyc29uXSwgbGFiZWwg
fS4KZnVuY3Rpb24gX3BlcnNvbmVuS3JlaXMoKSB7CiAgICB2YXIgbW9kdXMgPSBfdmFsKCdleHAt
d2VybW9kdXMnKSB8fCAnYWxsZSc7CiAgICB2YXIgYWxsZSA9IChaLnBlcnNvbmVuIHx8IFtdKS5z
bGljZSgpOwogICAgaWYgKG1vZHVzID09PSAnZ3J1cHBlJykgewogICAgICAgIHZhciBzZWwgPSBf
Y2hlY2tlZCgnZ3JwJyk7CiAgICAgICAgaWYgKCFzZWwubGVuZ3RoKSByZXR1cm4geyBsaXN0ZTog
YWxsZSwgbGFiZWw6ICdBbGxlIChrZWluZSBHcnVwcGUgZ2V3w6RobHQpJyB9OwogICAgICAgIHZh
ciBsaXN0ZSA9IGFsbGUuZmlsdGVyKGZ1bmN0aW9uKHApeyByZXR1cm4gc2VsLmluZGV4T2YocC5n
cnVwcGUpID49IDA7IH0pOwogICAgICAgIHJldHVybiB7IGxpc3RlOiBsaXN0ZSwgbGFiZWw6ICdE
aWVuc3RncnVwcGVuOiAnICsgc2VsLm1hcChfZ3J1cHBlTGFiZWwpLmpvaW4oJywgJykgfTsKICAg
IH0KICAgIGlmIChtb2R1cyA9PT0gJ3BlcnNvbicpIHsKICAgICAgICB2YXIgc2VsUCA9IF9jaGVj
a2VkKCdwZXJzb24nKTsKICAgICAgICBpZiAoIXNlbFAubGVuZ3RoKSByZXR1cm4geyBsaXN0ZTog
YWxsZSwgbGFiZWw6ICdBbGxlIChrZWluZSBQZXJzb24gZ2V3w6RobHQpJyB9OwogICAgICAgIHZh
ciBscCA9IGFsbGUuZmlsdGVyKGZ1bmN0aW9uKHApeyByZXR1cm4gc2VsUC5pbmRleE9mKFN0cmlu
ZyhwLmlkKSkgPj0gMDsgfSk7CiAgICAgICAgdmFyIG5hbWVuID0gbHAubWFwKF9wZXJzb25OYW1l
KTsKICAgICAgICByZXR1cm4geyBsaXN0ZTogbHAsIGxhYmVsOiAobHAubGVuZ3RoID09PSAxID8g
J0VpbnplbHBlcnNvbjogJyA6IChscC5sZW5ndGggKyAnIFBlcnNvbmVuOiAnKSkgKyBuYW1lbi5z
bGljZSgwLCAzKS5qb2luKCc7ICcpICsgKG5hbWVuLmxlbmd0aCA+IDMgPyAnIOKApicgOiAnJykg
fTsKICAgIH0KICAgIHJldHVybiB7IGxpc3RlOiBhbGxlLCBsYWJlbDogJ0FsbGUgUGVyc29uZW4n
IH07Cn0KCi8vID09PT09IERhdGVuc2FtbWx1bmcgPT09PT0KCmZ1bmN0aW9uIF9zYW1tZWxuKCkg
ewogICAgdmFyIHpyID0gX3plaXRyYXVtKCk7CiAgICBpZiAoIXpyKSByZXR1cm4geyBmZWhsZXI6
ICdCaXR0ZSBlaW5lbiBnw7xsdGlnZW4gWmVpdHJhdW0gd8OkaGxlbi4nIH07CiAgICB2YXIgcGsg
PSBfcGVyc29uZW5LcmVpcygpOwogICAgdmFyIGVpbnRyID0gKFoucGxhbnVuZyAmJiBaLnBsYW51
bmcuZWludHJhZWdlKSB8fCB7fTsKICAgIHZhciB0YWdJbmZvcyA9IFoudGFnSW5mb3MgfHwge307
CgogICAgdmFyIHJvd3MgPSBbXSwgaGlud2Vpc2UgPSBbXSwgc2VlbkggPSB7fTsKICAgIHZhciBk
ID0gbmV3IERhdGUoenIudm9uLmdldEZ1bGxZZWFyKCksIHpyLnZvbi5nZXRNb250aCgpLCB6ci52
b24uZ2V0RGF0ZSgpKTsKICAgIHZhciBlbmRlID0gbmV3IERhdGUoenIuYmlzLmdldEZ1bGxZZWFy
KCksIHpyLmJpcy5nZXRNb250aCgpLCB6ci5iaXMuZ2V0RGF0ZSgpKTsKICAgIHZhciBzY2h1dHog
PSAwOwogICAgd2hpbGUgKGQgPD0gZW5kZSAmJiBzY2h1dHogPCAxMDAwKSB7CiAgICAgICAgdmFy
IGtleSA9IGRhdHVtU3RyKGQpOwogICAgICAgIHZhciB0YWcgPSBlaW50cltrZXldIHx8IHt9Owog
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGsubGlzdGUubGVuZ3RoOyBpKyspIHsKICAgICAg
ICAgICAgdmFyIHAgPSBway5saXN0ZVtpXTsKICAgICAgICAgICAgdmFyIGNvZGUgPSB0YWdbcGlk
S2V5KHAuaWQpXTsKICAgICAgICAgICAgaWYgKCFjb2RlKSBjb250aW51ZTsKICAgICAgICAgICAg
cm93cy5wdXNoKHsgcDogcCwgZGF0dW06IGtleSwgZDogbmV3IERhdGUoZC5nZXRUaW1lKCkpLCBj
b2RlOiBjb2RlIH0pOwogICAgICAgIH0KICAgICAgICBpZiAoIXNlZW5IW2tleV0pIHsKICAgICAg
ICAgICAgc2Vlbkhba2V5XSA9IHRydWU7CiAgICAgICAgICAgIHZhciBpbmZvID0gdGFnSW5mb3Nb
a2V5XTsKICAgICAgICAgICAgaWYgKGluZm8pIHsKICAgICAgICAgICAgICAgIGlmIChpbmZvLnR5
cCA9PT0gJ2ZlaWVydGFnJykgewogICAgICAgICAgICAgICAgICAgIHZhciBrYXRadXNhdHogPSAo
aW5mby5rYXRlZ29yaWUgJiYgaW5mby5rYXRlZ29yaWUgIT09ICdnZXNldHpsaWNoJykgPyAoJyAo
JyArIGluZm8ua2F0ZWdvcmllICsgJyknKSA6ICcnOwogICAgICAgICAgICAgICAgICAgIGhpbndl
aXNlLnB1c2goeyBkYXR1bToga2V5LCB0eXA6ICdGZWllcnRhZycsIHRpdGVsOiAoaW5mby5uYW1l
IHx8ICcnKSArIGthdFp1c2F0eiwgdGV4dDogaW5mby5rdXJ6YmVzY2hyZWlidW5nIHx8ICcnIH0p
OwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbmZvLnR5cCA9PT0gJ2ZlcmllbicpIHsKICAg
ICAgICAgICAgICAgICAgICBoaW53ZWlzZS5wdXNoKHsgZGF0dW06IGtleSwgdHlwOiAnRmVyaWVu
JywgdGl0ZWw6IGluZm8ubmFtZSB8fCAnJywgdGV4dDogJycgfSk7CiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICBpZiAoaW5mby5zb25kZXIpIHsKICAgICAgICAgICAgICAgICAgICB2
YXIgcyA9IGluZm8uc29uZGVyOwogICAgICAgICAgICAgICAgICAgIGhpbndlaXNlLnB1c2goeyBk
YXR1bToga2V5LCB0eXA6IChzLnR5cCA9PT0gJ3dhcm51bmcnID8gJ1NvbmRlcnRlcm1pbiAoV2Fy
bnVuZyknIDogJ1NvbmRlcnRlcm1pbicpLCB0aXRlbDogcy50aXRlbCB8fCAnJywgdGV4dDogX3N0
cmlwSHRtbChzLnRleHQgfHwgJycpIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CiAgICAgICAgfQogICAgICAgIGQuc2V0RGF0ZShkLmdldERhdGUoKSArIDEpOyBzY2h1dHorKzsK
ICAgIH0KCiAgICAvLyBTb3J0aWVydW5nOiBlcnN0IFBlcnNvbmVuLVJlaWhlbmZvbGdlIChHcnVw
cGUvUG9zaXRpb24gYXVzIFoucGVyc29uZW4pLAogICAgLy8gZGFubiBjaHJvbm9sb2dpc2NoIOKA
lCBzbyBsaWVzdCBzaWNoIGVpbiBFaW56ZWxwbGFuIGFtIFN0dWVjay4KICAgIHZhciBwT3JkZXIg
PSB7fTsKICAgIChaLnBlcnNvbmVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHBwLCBpZHgpeyBw
T3JkZXJbcHAuaWRdID0gaWR4OyB9KTsKICAgIHJvd3Muc29ydChmdW5jdGlvbihhLCBiKSB7CiAg
ICAgICAgdmFyIHBhID0gcE9yZGVyW2EucC5pZF0sIHBiID0gcE9yZGVyW2IucC5pZF07CiAgICAg
ICAgaWYgKHBhICE9PSBwYikgcmV0dXJuIChwYSA9PSBudWxsID8gMWU5IDogcGEpIC0gKHBiID09
IG51bGwgPyAxZTkgOiBwYik7CiAgICAgICAgcmV0dXJuIGEuZGF0dW0gPCBiLmRhdHVtID8gLTEg
OiAoYS5kYXR1bSA+IGIuZGF0dW0gPyAxIDogMCk7CiAgICB9KTsKICAgIGhpbndlaXNlLnNvcnQo
ZnVuY3Rpb24oYSwgYil7IHJldHVybiBhLmRhdHVtIDwgYi5kYXR1bSA/IC0xIDogKGEuZGF0dW0g
PiBiLmRhdHVtID8gMSA6IDApOyB9KTsKCiAgICByZXR1cm4geyB6cjogenIsIHdlckxhYmVsOiBw
ay5sYWJlbCwgcGVyc29uZW46IHBrLmxpc3RlLCByb3dzOiByb3dzLCBoaW53ZWlzZTogaGlud2Vp
c2UgfTsKfQoKZnVuY3Rpb24gX21ldGFaZWlsZShkYXRlbikgewogICAgdmFyIGpldHp0ID0gbmV3
IERhdGUoKTsKICAgIHZhciBwYWQgPSBmdW5jdGlvbihuKXsgcmV0dXJuIChuIDwgMTAgPyAnMCcg
OiAnJykgKyBuOyB9OwogICAgcmV0dXJuICdaZWl0cmF1bTogJyArIGRhdGVuLnpyLmxhYmVsICsK
ICAgICAgICAnICDigKIgIFBlcnNvbmVua3JlaXM6ICcgKyBkYXRlbi53ZXJMYWJlbCArCiAgICAg
ICAgJyAg4oCiICAnICsgZGF0ZW4ucm93cy5sZW5ndGggKyAnIEVpbnRyw6RnZScgKwogICAgICAg
ICcgIOKAoiAgZXJzdGVsbHQgJyArIHBhZChqZXR6dC5nZXREYXRlKCkpICsgJy4nICsgcGFkKGpl
dHp0LmdldE1vbnRoKCkgKyAxKSArICcuJyArIGpldHp0LmdldEZ1bGxZZWFyKCkgKwogICAgICAg
ICcgJyArIHBhZChqZXR6dC5nZXRIb3VycygpKSArICc6JyArIHBhZChqZXR6dC5nZXRNaW51dGVz
KCkpOwp9CmZ1bmN0aW9uIF9kYXRlblplaWxlKHIpIHsKICAgIHZhciBpc28gPSBfaXNvS1coci5k
KTsKICAgIHJldHVybiBbX3BlcnNvbk5hbWUoci5wKSwgX2dydXBwZUxhYmVsKHIucC5ncnVwcGUp
LCBkYXR1bUZvcm1hdERFKHIuZGF0dW0pLCBNT05BVEVbci5kLmdldE1vbnRoKCldLAogICAgICAg
ICAgICByLmQuZ2V0RGF0ZSgpLCBXVFtyLmQuZ2V0RGF5KCldLCBpc28ua3csIHIuY29kZSwgX2Nv
ZGVCZXplaWNobnVuZyhyLmNvZGUpXTsKfQpmdW5jdGlvbiBfaGlud2Vpc1plaWxlKGgpIHsKICAg
IHZhciBkZCA9IG5ldyBEYXRlKGguZGF0dW0gKyAnVDAwOjAwOjAwJyk7CiAgICByZXR1cm4gW2Rh
dHVtRm9ybWF0REUoaC5kYXR1bSksIFdUW2RkLmdldERheSgpXSwgaC50eXAsIGgudGl0ZWwsIGgu
dGV4dF07Cn0KZnVuY3Rpb24gX2RhdGVpQmFzaXMoZGF0ZW4pIHsKICAgIHZhciBqZXR6dCA9IG5l
dyBEYXRlKCk7CiAgICB2YXIgcGFkID0gZnVuY3Rpb24obil7IHJldHVybiAobiA8IDEwID8gJzAn
IDogJycpICsgbjsgfTsKICAgIHZhciBzdGFtcCA9IGpldHp0LmdldEZ1bGxZZWFyKCkgKyBwYWQo
amV0enQuZ2V0TW9udGgoKSArIDEpICsgcGFkKGpldHp0LmdldERhdGUoKSkgKyAnLScgKyBwYWQo
amV0enQuZ2V0SG91cnMoKSkgKyBwYWQoamV0enQuZ2V0TWludXRlcygpKTsKICAgIHJldHVybiAn
VkkzLURpZW5zdHBsYW5fJyArIHN0YW1wOwp9CgovLyA9PT09PSBYTFNYLUVyemV1Z3VuZyAoZm9y
bWF0aWVydCkgPT09PT0KCmZ1bmN0aW9uIF9leHBvcnRYbHN4KGRhdGVuLCBtaXRIaW53ZWlzZSkg
ewogICAgaWYgKHR5cGVvZiBYTFNYID09PSAndW5kZWZpbmVkJykgeyB0b2FzdCgnRXhjZWwtQmli
bGlvdGhlayBuaWNodCBnZWxhZGVuIOKAlCBiaXR0ZSBTZWl0ZSBuZXUgbGFkZW4uJywgJ2ZlaGxl
cicpOyByZXR1cm47IH0KICAgIHZhciBhb2EgPSBbXTsKICAgIGFvYS5wdXNoKFsnRGllbnN0cGxh
bi1FeHBvcnQg4oCUIFZJMyBER0wtUGxhbnVuZyddKTsKICAgIGFvYS5wdXNoKFtfbWV0YVplaWxl
KGRhdGVuKV0pOwogICAgYW9hLnB1c2goW10pOwogICAgdmFyIGhlYWRlclIgPSBhb2EubGVuZ3Ro
OyAgICAgICAgICAgICAgICAgLy8gMC1iYXNpZXJ0OiBaZWlsZSBkZXIgU3BhbHRlbmtvZXBmZQog
ICAgYW9hLnB1c2goU1BBTFRFTi5zbGljZSgpKTsKICAgIGRhdGVuLnJvd3MuZm9yRWFjaChmdW5j
dGlvbihyKXsgYW9hLnB1c2goX2RhdGVuWmVpbGUocikpOyB9KTsKICAgIHZhciBkYXRlbkVuZGVS
ID0gYW9hLmxlbmd0aCAtIDE7ICAgICAgICAgIC8vIGxldHp0ZSBEYXRlbnplaWxlICgwLWJhc2ll
cnQpCgogICAgaWYgKG1pdEhpbndlaXNlICYmIGRhdGVuLmhpbndlaXNlLmxlbmd0aCkgewogICAg
ICAgIGFvYS5wdXNoKFtdKTsgYW9hLnB1c2goW10pOwogICAgICAgIGFvYS5wdXNoKFsnSGlud2Vp
c2UgenUgVGFnZW4gbWl0IEJlc29uZGVyaGVpdGVuIChGZWllcnRhZ2UsIEZlcmllbiwgU29uZGVy
dGVybWluZSknXSk7CiAgICAgICAgdmFyIGhpbndIZWFkZXJSID0gYW9hLmxlbmd0aDsKICAgICAg
ICBhb2EucHVzaChISU5XRUlTX1NQQUxURU4uc2xpY2UoKSk7CiAgICAgICAgZGF0ZW4uaGlud2Vp
c2UuZm9yRWFjaChmdW5jdGlvbihoKXsgYW9hLnB1c2goX2hpbndlaXNaZWlsZShoKSk7IH0pOwog
ICAgICAgIHZhciB3czAgPSBYTFNYLnV0aWxzLmFvYV90b19zaGVldChhb2EpOwogICAgICAgIHdz
MFsnIW1lcmdlcyddID0gWwogICAgICAgICAgICB7IHM6IHsgcjogMCwgYzogMCB9LCBlOiB7IHI6
IDAsIGM6IFNQQUxURU4ubGVuZ3RoIC0gMSB9IH0sCiAgICAgICAgICAgIHsgczogeyByOiAxLCBj
OiAwIH0sIGU6IHsgcjogMSwgYzogU1BBTFRFTi5sZW5ndGggLSAxIH0gfSwKICAgICAgICAgICAg
eyBzOiB7IHI6IGhpbndIZWFkZXJSIC0gMSwgYzogMCB9LCBlOiB7IHI6IGhpbndIZWFkZXJSIC0g
MSwgYzogU1BBTFRFTi5sZW5ndGggLSAxIH0gfQogICAgICAgIF07CiAgICAgICAgX2ZpbmlzaFdz
KHdzMCwgaGVhZGVyUiwgZGF0ZW5FbmRlUik7CiAgICAgICAgX2Rvd25sb2FkKHdzMCwgZGF0ZW4p
OwogICAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciB3cyA9IFhMU1gudXRpbHMuYW9hX3RvX3No
ZWV0KGFvYSk7CiAgICB3c1snIW1lcmdlcyddID0gWwogICAgICAgIHsgczogeyByOiAwLCBjOiAw
IH0sIGU6IHsgcjogMCwgYzogU1BBTFRFTi5sZW5ndGggLSAxIH0gfSwKICAgICAgICB7IHM6IHsg
cjogMSwgYzogMCB9LCBlOiB7IHI6IDEsIGM6IFNQQUxURU4ubGVuZ3RoIC0gMSB9IH0KICAgIF07
CiAgICBfZmluaXNoV3Mod3MsIGhlYWRlclIsIGRhdGVuRW5kZVIpOwogICAgX2Rvd25sb2FkKHdz
LCBkYXRlbik7Cn0KZnVuY3Rpb24gX2ZpbmlzaFdzKHdzLCBoZWFkZXJSLCBkYXRlbkVuZGVSKSB7
CiAgICB3c1snIWNvbHMnXSA9IFsgeyB3Y2g6IDI2IH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMTIg
fSwgeyB3Y2g6IDExIH0sIHsgd2NoOiA1IH0sIHsgd2NoOiAxMCB9LCB7IHdjaDogNSB9LCB7IHdj
aDogMTIgfSwgeyB3Y2g6IDI4IH0gXTsKICAgIC8vIEF1dG8tRmlsdGVyIE5VUiB1ZWJlciBkZXIg
SGF1cHR0YWJlbGxlIChLb3BmemVpbGUgKyBEYXRlbnplaWxlbikuCiAgICBpZiAoZGF0ZW5FbmRl
UiA+PSBoZWFkZXJSKSB7CiAgICAgICAgd3NbJyFhdXRvZmlsdGVyJ10gPSB7IHJlZjogWExTWC51
dGlscy5lbmNvZGVfcmFuZ2UoeyBzOiB7IHI6IGhlYWRlclIsIGM6IDAgfSwgZTogeyByOiBkYXRl
bkVuZGVSLCBjOiBTUEFMVEVOLmxlbmd0aCAtIDEgfSB9KSB9OwogICAgfQp9CmZ1bmN0aW9uIF9k
b3dubG9hZCh3cywgZGF0ZW4pIHsKICAgIHZhciB3YiA9IFhMU1gudXRpbHMuYm9va19uZXcoKTsK
ICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod2IsIHdzLCAnRGllbnN0cGxhbicpOwog
ICAgWExTWC53cml0ZUZpbGUod2IsIF9kYXRlaUJhc2lzKGRhdGVuKSArICcueGxzeCcpOwp9Cgov
LyA9PT09PSBDU1YtRXJ6ZXVndW5nID09PT09CgpmdW5jdGlvbiBfY3N2RmVsZCh2KSB7CiAgICB2
ID0gKHYgPT0gbnVsbCA/ICcnIDogU3RyaW5nKHYpKTsKICAgIGlmICgvWyI7XG5ccl0vLnRlc3Qo
dikpIHJldHVybiAnIicgKyB2LnJlcGxhY2UoLyIvZywgJyIiJykgKyAnIic7CiAgICByZXR1cm4g
djsKfQpmdW5jdGlvbiBfY3N2WmVpbGUoYXJyKSB7IHJldHVybiBhcnIubWFwKF9jc3ZGZWxkKS5q
b2luKCc7Jyk7IH0KCmZ1bmN0aW9uIF9leHBvcnRDc3YoZGF0ZW4sIG1pdEhpbndlaXNlKSB7CiAg
ICB2YXIgbGluZXMgPSBbXTsKICAgIGxpbmVzLnB1c2goX2NzdkZlbGQoJ0RpZW5zdHBsYW4tRXhw
b3J0IOKAlCBWSTMgREdMLVBsYW51bmcnKSk7CiAgICBsaW5lcy5wdXNoKF9jc3ZGZWxkKF9tZXRh
WmVpbGUoZGF0ZW4pKSk7CiAgICBsaW5lcy5wdXNoKCcnKTsKICAgIGxpbmVzLnB1c2goX2Nzdlpl
aWxlKFNQQUxURU4pKTsKICAgIGRhdGVuLnJvd3MuZm9yRWFjaChmdW5jdGlvbihyKXsgbGluZXMu
cHVzaChfY3N2WmVpbGUoX2RhdGVuWmVpbGUocikpKTsgfSk7CiAgICBpZiAobWl0SGlud2Vpc2Ug
JiYgZGF0ZW4uaGlud2Vpc2UubGVuZ3RoKSB7CiAgICAgICAgbGluZXMucHVzaCgnJyk7IGxpbmVz
LnB1c2goJycpOwogICAgICAgIGxpbmVzLnB1c2goX2NzdkZlbGQoJ0hpbndlaXNlIHp1IFRhZ2Vu
IG1pdCBCZXNvbmRlcmhlaXRlbiAoRmVpZXJ0YWdlLCBGZXJpZW4sIFNvbmRlcnRlcm1pbmUpJykp
OwogICAgICAgIGxpbmVzLnB1c2goX2NzdlplaWxlKEhJTldFSVNfU1BBTFRFTikpOwogICAgICAg
IGRhdGVuLmhpbndlaXNlLmZvckVhY2goZnVuY3Rpb24oaCl7IGxpbmVzLnB1c2goX2NzdlplaWxl
KF9oaW53ZWlzWmVpbGUoaCkpKTsgfSk7CiAgICB9CiAgICB2YXIgY3N2ID0gU3RyaW5nLmZyb21D
aGFyQ29kZSgweEZFRkYpICsgbGluZXMuam9pbignXHJcbicpOyAgIC8vIEJPTSAtPiBFeGNlbC1E
RSBlcmtlbm50IFVURi04CiAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtjc3ZdLCB7IHR5cGU6ICd0
ZXh0L2NzdjtjaGFyc2V0PXV0Zi04OycgfSk7CiAgICB2YXIgdXJsID0gVVJMLmNyZWF0ZU9iamVj
dFVSTChibG9iKTsKICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAg
YS5ocmVmID0gdXJsOyBhLmRvd25sb2FkID0gX2RhdGVpQmFzaXMoZGF0ZW4pICsgJy5jc3YnOwog
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTsgYS5jbGljaygpOyBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKGEpOwogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBVUkwucmV2b2tlT2Jq
ZWN0VVJMKHVybCk7IH0sIDE1MDApOwp9CgovLyA9PT09PSBVSSA9PT09PQoKZXhwb3J0IGZ1bmN0
aW9uIGV4cG9ydFJlbmRlcm4oKSB7CiAgICB2YXIgY29udCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdleHBvcnQtaW5oYWx0Jyk7CiAgICBpZiAoIWNvbnQpIHJldHVybjsKICAgIGlmICghX2Rh
cmYoKSkgewogICAgICAgIGNvbnQuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImFkbWluLWVtcHR5
Ij48ZGl2IGNsYXNzPSJhZG1pbi1lbXB0eS10ZXh0Ij5OdXIgU3VwZXJVc2VyIHVuZCBCZXJlY2h0
aWd0ZSBtaXQgQWRtaW5pc3RyYXRpb25zLVp1Z3JpZmYgZMO8cmZlbiBleHBvcnRpZXJlbi48L2Rp
dj48L2Rpdj4nOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnQuaW5uZXJIVE1MID0gX2Zv
cm1IdG1sKCk7CiAgICBfdmVyZHJhaHRlbihjb250KTsKICAgIF96ZWl0U2ljaHRiYXJrZWl0KCk7
CiAgICBfd2VyU2ljaHRiYXJrZWl0KCk7CiAgICBfdm9yc2NoYXVBa3R1YWxpc2llcmVuKCk7Cn0K
CmZ1bmN0aW9uIF9ncnBDaGlwcygpIHsKICAgIHJldHVybiAoWi5hZG1pbi5ncnVwcGVuIHx8IFtd
KS5tYXAoZnVuY3Rpb24oZyl7CiAgICAgICAgcmV0dXJuICc8bGFiZWwgY2xhc3M9ImJsZC1jaGlw
Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRhdGEtZXhwPSJncnAiIHZhbHVlPSInICsgZXNjYXBl
QXR0cihnLm5hbWUpICsgJyI+PHNwYW4+JyArIGVzY2FwZUhUTUwoZy5iZXplaWNobnVuZyB8fCBn
Lm5hbWUpICsgJzwvc3Bhbj48L2xhYmVsPic7CiAgICB9KS5qb2luKCcnKTsKfQpmdW5jdGlvbiBf
cGVyc29uQ2hpcHMoKSB7CiAgICB2YXIgYnlHcnAgPSB7fTsKICAgIChaLnBlcnNvbmVuIHx8IFtd
KS5mb3JFYWNoKGZ1bmN0aW9uKHApeyB2YXIgZyA9IHAuZ3J1cHBlIHx8ICfigJQnOyAoYnlHcnBb
Z10gfHwgKGJ5R3JwW2ddID0gW10pKS5wdXNoKHApOyB9KTsKICAgIHZhciBvcmRlciA9IChaLmFk
bWluLmdydXBwZW4gfHwgW10pLm1hcChmdW5jdGlvbihnKXsgcmV0dXJuIGcubmFtZTsgfSk7CiAg
ICB2YXIgbmFtZW4gPSBvcmRlci5maWx0ZXIoZnVuY3Rpb24obil7IHJldHVybiBieUdycFtuXTsg
fSkuY29uY2F0KE9iamVjdC5rZXlzKGJ5R3JwKS5maWx0ZXIoZnVuY3Rpb24obil7IHJldHVybiBv
cmRlci5pbmRleE9mKG4pIDwgMDsgfSkpOwogICAgcmV0dXJuIG5hbWVuLm1hcChmdW5jdGlvbihn
bil7CiAgICAgICAgdmFyIGxldXRlID0gYnlHcnBbZ25dLnNsaWNlKCkuc29ydChmdW5jdGlvbihh
LCBiKXsgcmV0dXJuIChhLm5hbWUgfHwgJycpLmxvY2FsZUNvbXBhcmUoYi5uYW1lIHx8ICcnLCAn
ZGUnKTsgfSk7CiAgICAgICAgdmFyIGNoaXBzID0gbGV1dGUubWFwKGZ1bmN0aW9uKHApewogICAg
ICAgICAgICByZXR1cm4gJzxsYWJlbCBjbGFzcz0iYmxkLWNoaXAiPjxpbnB1dCB0eXBlPSJjaGVj
a2JveCIgZGF0YS1leHA9InBlcnNvbiIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKFN0cmluZyhwLmlk
KSkgKyAnIj48c3Bhbj4nICsgZXNjYXBlSFRNTChfcGVyc29uTmFtZShwKSkgKyAnPC9zcGFuPjwv
bGFiZWw+JzsKICAgICAgICB9KS5qb2luKCcnKTsKICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9
ImJsZC1wZXJzLWdycCI+PGRpdiBjbGFzcz0iYmxkLXBlcnMtZ3JwLWtvcGYiPjxzcGFuPicgKyBl
c2NhcGVIVE1MKF9ncnVwcGVMYWJlbChnbikpICsgJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJi
bGQtY2hpcHMiPicgKyBjaGlwcyArICc8L2Rpdj48L2Rpdj4nOwogICAgfSkuam9pbignJyk7Cn0K
CmZ1bmN0aW9uIF9mb3JtSHRtbCgpIHsKICAgIHZhciBqID0gKFouYWRtaW4gJiYgWi5hZG1pbi5q
YWhyKSB8fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7CiAgICByZXR1cm4gJycgKwogICAgJzxk
aXYgY2xhc3M9ImV4cC1mb3JtIj4nICsKICAgICc8ZGl2IGNsYXNzPSJibGQtZmVsZCI+PHNwYW4g
Y2xhc3M9ImJsZC1mZWxkLXRpdGVsIj5VbWZhbmcgKFplaXRyYXVtKTwvc3Bhbj4nICsKICAgICAg
ICAnPHNlbGVjdCBpZD0iZXhwLXplaXRtb2R1cyIgY2xhc3M9ImZvcm0taW5wdXQiPicgKwogICAg
ICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iamFociI+R2FuemVzIFBsYW51bmdzamFociAoJyArIGog
KyAnKTwvb3B0aW9uPicgKwogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0ia3ciPkthbGVuZGVy
d29jaGVuICh2b27igJNiaXMpPC9vcHRpb24+JyArCiAgICAgICAgICAgICc8b3B0aW9uIHZhbHVl
PSJkYXR1bSI+RGF0dW0gKHZvbuKAk2Jpcyk8L29wdGlvbj4nICsKICAgICAgICAnPC9zZWxlY3Q+
PC9kaXY+JyArCiAgICAnPGRpdiBjbGFzcz0iYmxkLWZlbGQgYmxkLWZlbGQtMiIgZGF0YS16ZWl0
PSJrdyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+JyArCiAgICAgICAgJzxsYWJlbCBjbGFzcz0iYmxk
LW1pbmkiPlZvbiBLVzxpbnB1dCBpZD0iZXhwLWt3LXZvbiIgY2xhc3M9ImZvcm0taW5wdXQiIHR5
cGU9IndlZWsiPjwvbGFiZWw+JyArCiAgICAgICAgJzxsYWJlbCBjbGFzcz0iYmxkLW1pbmkiPkJp
cyBLVzxpbnB1dCBpZD0iZXhwLWt3LWJpcyIgY2xhc3M9ImZvcm0taW5wdXQiIHR5cGU9IndlZWsi
PjwvbGFiZWw+PC9kaXY+JyArCiAgICAnPGRpdiBjbGFzcz0iYmxkLWZlbGQgYmxkLWZlbGQtMiIg
ZGF0YS16ZWl0PSJkYXR1bSIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+JyArCiAgICAgICAgJzxsYWJl
bCBjbGFzcz0iYmxkLW1pbmkiPlZvbjxpbnB1dCBpZD0iZXhwLWRhdHVtLXZvbiIgY2xhc3M9ImZv
cm0taW5wdXQiIHR5cGU9ImRhdGUiPjwvbGFiZWw+JyArCiAgICAgICAgJzxsYWJlbCBjbGFzcz0i
YmxkLW1pbmkiPkJpczxpbnB1dCBpZD0iZXhwLWRhdHVtLWJpcyIgY2xhc3M9ImZvcm0taW5wdXQi
IHR5cGU9ImRhdGUiPjwvbGFiZWw+PC9kaXY+JyArCgogICAgJzxkaXYgY2xhc3M9ImJsZC1mZWxk
Ij48c3BhbiBjbGFzcz0iYmxkLWZlbGQtdGl0ZWwiPlBlcnNvbmVua3JlaXM8L3NwYW4+JyArCiAg
ICAgICAgJzxzZWxlY3QgaWQ9ImV4cC13ZXJtb2R1cyIgY2xhc3M9ImZvcm0taW5wdXQiPicgKwog
ICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iYWxsZSI+QWxsZSBQZXJzb25lbjwvb3B0aW9uPicg
KwogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iZ3J1cHBlIj5CZXN0aW1tdGUgRGllbnN0Z3J1
cHBlbjwvb3B0aW9uPicgKwogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0icGVyc29uIj5FaW56
ZWxuZSBQZXJzb25lbiAoaW5kaXZpZHVlbGxlciBFeHBvcnQpPC9vcHRpb24+JyArCiAgICAgICAg
Jzwvc2VsZWN0PjwvZGl2PicgKwogICAgJzxkaXYgY2xhc3M9ImJsZC1mZWxkIiBkYXRhLXdlcj0i
Z3J1cHBlIiBzdHlsZT0iZGlzcGxheTpub25lIj48c3BhbiBjbGFzcz0iYmxkLWZlbGQtdGl0ZWwi
PkRpZW5zdGdydXBwZW4gd8OkaGxlbjwvc3Bhbj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iYmxk
LWNoaXBzIj4nICsgX2dycENoaXBzKCkgKyAnPC9kaXY+PC9kaXY+JyArCiAgICAnPGRldGFpbHMg
Y2xhc3M9ImJsZC1zZWt0aW9uIiBkYXRhLXdlcj0icGVyc29uIiBzdHlsZT0iZGlzcGxheTpub25l
Ij48c3VtbWFyeT5QZXJzb25lbiB3w6RobGVuICgnICsgKFoucGVyc29uZW4gfHwgW10pLmxlbmd0
aCArICcpPC9zdW1tYXJ5PicgKwogICAgICAgICc8cCBjbGFzcz0iYmxkLXBlcnMtaGlud2VpcyI+
TmljaHRzIGdld8OkaGx0ID0gYWxsZS4gTWVocmVyZSBQZXJzb25lbiBmw7xyIGVpbmVuIFNhbW1l
bC1FaW56ZWxleHBvcnQgbWFya2llcmVuLjwvcD4nICsKICAgICAgICBfcGVyc29uQ2hpcHMoKSAr
ICc8L2RldGFpbHM+JyArCgogICAgJzxkaXYgY2xhc3M9ImJsZC1mZWxkIj48c3BhbiBjbGFzcz0i
YmxkLWZlbGQtdGl0ZWwiPkZvcm1hdDwvc3Bhbj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iYmxk
LXRvZ2dsZXMiPicgKwogICAgICAgICAgICAnPGxhYmVsIGNsYXNzPSJibGQtdG9nZ2xlIj48aW5w
dXQgdHlwZT0icmFkaW8iIG5hbWU9ImV4cC1mb3JtYXQiIGlkPSJleHAtZm10LXhsc3giIHZhbHVl
PSJ4bHN4IiBjaGVja2VkPiBYTFNYIChmb3JtYXRpZXJ0KTwvbGFiZWw+JyArCiAgICAgICAgICAg
ICc8bGFiZWwgY2xhc3M9ImJsZC10b2dnbGUiPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZXhw
LWZvcm1hdCIgdmFsdWU9ImNzdiI+IENTViAoRXhjZWwvU2VtaWtvbG9uKTwvbGFiZWw+JyArCiAg
ICAgICAgJzwvZGl2PjwvZGl2PicgKwogICAgJzxkaXYgY2xhc3M9ImJsZC1mZWxkIj48ZGl2IGNs
YXNzPSJibGQtdG9nZ2xlcyI+JyArCiAgICAgICAgJzxsYWJlbCBjbGFzcz0iYmxkLXRvZ2dsZSI+
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZXhwLW1pdC1oaW53ZWlzZSIgY2hlY2tlZD4gSW5m
b2JveCDigJ5IaW53ZWlzZSB6dSBUYWdlbiBtaXQgQmVzb25kZXJoZWl0ZW4iIHVudGVyaGFsYiBh
bmjDpG5nZW48L2xhYmVsPicgKwogICAgICAgICc8L2Rpdj48L2Rpdj4nICsKCiAgICAnPGRpdiBj
bGFzcz0iYmxkLWFrdGlvbmVuIiBzdHlsZT0ibWFyZ2luLXRvcDoxNHB4Ij4nICsKICAgICAgICAn
PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiB0eXBlPSJidXR0b24iIGlkPSJleHAtc3Rh
cnRlbiI+4qSTIEV4cG9ydGllcmVuPC9idXR0b24+JyArCiAgICAgICAgJzxzcGFuIGlkPSJleHAt
dm9yc2NoYXUiIGNsYXNzPSJibGQtcGVycy1oaW53ZWlzIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MTJw
eCI+PC9zcGFuPicgKwogICAgJzwvZGl2PicgKwogICAgJzwvZGl2Pic7Cn0KCmZ1bmN0aW9uIF96
ZWl0U2ljaHRiYXJrZWl0KCkgewogICAgdmFyIG1vZHVzID0gX3ZhbCgnZXhwLXplaXRtb2R1cycp
IHx8ICdqYWhyJzsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNleHBvcnQtaW5oYWx0
IFtkYXRhLXplaXRdJykuZm9yRWFjaChmdW5jdGlvbihlbCl7CiAgICAgICAgZWwuc3R5bGUuZGlz
cGxheSA9IChlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtemVpdCcpID09PSBtb2R1cykgPyAnJyA6ICdu
b25lJzsKICAgIH0pOwp9CmZ1bmN0aW9uIF93ZXJTaWNodGJhcmtlaXQoKSB7CiAgICB2YXIgbW9k
dXMgPSBfdmFsKCdleHAtd2VybW9kdXMnKSB8fCAnYWxsZSc7CiAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCcjZXhwb3J0LWluaGFsdCBbZGF0YS13ZXJdJykuZm9yRWFjaChmdW5jdGlvbihl
bCl7CiAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IChlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtd2Vy
JykgPT09IG1vZHVzKSA/ICcnIDogJ25vbmUnOwogICAgfSk7Cn0KZnVuY3Rpb24gX3ZvcnNjaGF1
QWt0dWFsaXNpZXJlbigpIHsKICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
eHAtdm9yc2NoYXUnKTsKICAgIGlmICghZWwpIHJldHVybjsKICAgIHZhciBkYXRlbiA9IF9zYW1t
ZWxuKCk7CiAgICBpZiAoZGF0ZW4uZmVobGVyKSB7IGVsLnRleHRDb250ZW50ID0gZGF0ZW4uZmVo
bGVyOyByZXR1cm47IH0KICAgIGVsLnRleHRDb250ZW50ID0gJ1ZvcnNjaGF1OiAnICsgZGF0ZW4u
cm93cy5sZW5ndGggKyAnIEVpbnRyw6RnZScKICAgICAgICArICcg4oCiICcgKyBkYXRlbi5wZXJz
b25lbi5sZW5ndGggKyAnIFBlcnNvbmVuJwogICAgICAgICsgJyDigKIgJyArIGRhdGVuLmhpbndl
aXNlLmxlbmd0aCArICcgSGlud2Vpcy1FaW50csOkZ2UgKEZlaWVydGFnL0Zlcmllbi9Tb25kZXJ0
ZXJtaW4pJzsKfQoKZnVuY3Rpb24gX3ZlcmRyYWh0ZW4oY29udCkgewogICAgY29udC5hZGRFdmVu
dExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIHQgPSBlLnRhcmdl
dDsKICAgICAgICBpZiAodC5pZCA9PT0gJ2V4cC16ZWl0bW9kdXMnKSBfemVpdFNpY2h0YmFya2Vp
dCgpOwogICAgICAgIGlmICh0LmlkID09PSAnZXhwLXdlcm1vZHVzJykgX3dlclNpY2h0YmFya2Vp
dCgpOwogICAgICAgIF92b3JzY2hhdUFrdHVhbGlzaWVyZW4oKTsKICAgIH0pOwogICAgY29udC5h
ZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIgaWQgPSBl
LnRhcmdldCAmJiBlLnRhcmdldC5pZDsKICAgICAgICBpZiAoaWQgPT09ICdleHAta3ctdm9uJyB8
fCBpZCA9PT0gJ2V4cC1rdy1iaXMnIHx8IGlkID09PSAnZXhwLWRhdHVtLXZvbicgfHwgaWQgPT09
ICdleHAtZGF0dW0tYmlzJykgX3ZvcnNjaGF1QWt0dWFsaXNpZXJlbigpOwogICAgfSk7CiAgICB2
YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cC1zdGFydGVuJyk7CiAgICBpZiAo
YnRuKSBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBfZXhwb3J0U3RhcnRlbik7Cn0KCmZ1
bmN0aW9uIF9leHBvcnRTdGFydGVuKCkgewogICAgdmFyIGRhdGVuID0gX3NhbW1lbG4oKTsKICAg
IGlmIChkYXRlbi5mZWhsZXIpIHsgdG9hc3QoZGF0ZW4uZmVobGVyLCAnd2FybnVuZycpOyByZXR1
cm47IH0KICAgIGlmICghZGF0ZW4ucm93cy5sZW5ndGgpIHsgdG9hc3QoJ0tlaW5lIEVpbnRyw6Rn
ZSBpbSBnZXfDpGhsdGVuIFVtZmFuZyDigJQgbmljaHRzIHp1IGV4cG9ydGllcmVuLicsICd3YXJu
dW5nJyk7IHJldHVybjsgfQogICAgdmFyIG1pdEhpbndlaXNlID0gX2NoaygnZXhwLW1pdC1oaW53
ZWlzZScpOwogICAgdmFyIGZtdCA9IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZXhwb3J0LWlu
aGFsdCBpbnB1dFtuYW1lPSJleHAtZm9ybWF0Il06Y2hlY2tlZCcpIHx8IHt9KS52YWx1ZSB8fCAn
eGxzeCc7CiAgICB0cnkgewogICAgICAgIGlmIChmbXQgPT09ICdjc3YnKSBfZXhwb3J0Q3N2KGRh
dGVuLCBtaXRIaW53ZWlzZSk7CiAgICAgICAgZWxzZSBfZXhwb3J0WGxzeChkYXRlbiwgbWl0SGlu
d2Vpc2UpOwogICAgICAgIHRvYXN0KCdFeHBvcnQgZXJzdGVsbHQ6ICcgKyBkYXRlbi5yb3dzLmxl
bmd0aCArICcgRWludHLDpGdlJyArIChtaXRIaW53ZWlzZSA/ICcgKyAnICsgZGF0ZW4uaGlud2Vp
c2UubGVuZ3RoICsgJyBIaW53ZWlzLUVpbnRyw6RnZScgOiAnJyksICdlcmZvbGcnKTsKICAgIH0g
Y2F0Y2ggKGUpIHsKICAgICAgICB0cnkgeyBjb25zb2xlLmVycm9yKCdbZXhwb3J0XScsIGUpOyB9
IGNhdGNoIChfKSB7fQogICAgICAgIHRvYXN0KCdFeHBvcnQgZmVobGdlc2NobGFnZW46ICcgKyAo
ZS5tZXNzYWdlIHx8IGUpLCAnZmVobGVyJyk7CiAgICB9Cn0K
### FILE: js/feiertage_de.js | 3209
Ly8gPT09IGZlaWVydGFnZV9kZS5qcyA9PT0KLy8gRGV0ZXJtaW5pc3Rpc2NoZXIgS2F0YWxvZyBk
ZXIgZ2VzZXR6bGljaGVuIEZlaWVydGFnZSBpbiBEZXV0c2NobGFuZCAoYnVuZGVzLQovLyB3ZWl0
KSB1bmQgTm9yZHJoZWluLVdlc3RmYWxlbiDigJQgcHJvIEphaHIgYmVyZWNobmV0LCBvaG5lIEFi
aGFlbmdpZ2tlaXQgdm9uCi8vIGFkbWluLmpzb24uIEJld2VnbGljaCBGZXN0ZSAoS2FyZnJlaXRh
ZywgT3N0ZXJtb250YWcsIENocmlzdGkgSGltbWVsZmFocnQsCi8vIFBmaW5nc3Rtb250YWcsIEZy
b25sZWljaG5hbSkgbGVpdGVuIHNpY2ggdm9tIE9zdGVyc29ubnRhZyBhYiAoR2F1c3MvQW5vbnlt
ZQovLyBHcmVnb3JpYW5pc2NoZSBPc3RlcmZvcm1lbCkuIEdlbnV0enQgdm9tIFN0YXRpc3Rpay1C
dWlsZGVyLy1FbmdpbmUsIHVtCi8vIERpZW5zdGUgbmFjaCDigJ5idW5kZXN3ZWl0IiB2cy4g4oCe
TlJXLXNwZXppZmlzY2giIGF1Znp1c2NobHVlc3NlbG4uCi8vCi8vIFF1ZWxsZSBkZXIgS2xhc3Np
ZmlrYXRpb246IGdlc2V0emxpY2hlIEZlaWVydGFnZSBOUlcgKDExIFN0dWVjaykg4oCUIGRhdm9u
IHNpbmQKLy8gRnJvbmxlaWNobmFtIHVuZCBBbGxlcmhlaWxpZ2VuIE5SVy1zcGV6aWZpc2NoLCBk
aWUgdWVicmlnZW4gOSBidW5kZXN3ZWl0LgovLyBIZWlsaWdhYmVuZC9TaWx2ZXN0ZXIgc2luZCBL
RUlORSBnZXNldHpsaWNoZW4gRmVpZXJ0YWdlIHVuZCBkYWhlciBoaWVyCi8vIGJld3Vzc3Qgbmlj
aHQgZW50aGFsdGVuIChhZG1pbi5qc29uIGZ1ZWhydCBzaWUgc2VwYXJhdCAtPiBUeXAg4oCec29u
c3RpZ2UiKS4KCmltcG9ydCB7IGRhdHVtU3RyIH0gZnJvbSAnLi9jb3JlX3V0aWwuanMnOwoKLy8g
T3N0ZXJzb25udGFnIChHcmVnb3JpYW5pc2NoKSBwZXIgQW5vbnltZS1HcmVnb3JpYW5pc2NoZS1P
c3RlcmZvcm1lbC4KZnVuY3Rpb24gX29zdGVybihqYWhyKSB7CiAgICB2YXIgYSA9IGphaHIgJSAx
OTsKICAgIHZhciBiID0gTWF0aC5mbG9vcihqYWhyIC8gMTAwKTsKICAgIHZhciBjID0gamFociAl
IDEwMDsKICAgIHZhciBkID0gTWF0aC5mbG9vcihiIC8gNCk7CiAgICB2YXIgZSA9IGIgJSA0Owog
ICAgdmFyIGYgPSBNYXRoLmZsb29yKChiICsgOCkgLyAyNSk7CiAgICB2YXIgZyA9IE1hdGguZmxv
b3IoKGIgLSBmICsgMSkgLyAzKTsKICAgIHZhciBoID0gKDE5ICogYSArIGIgLSBkIC0gZyArIDE1
KSAlIDMwOwogICAgdmFyIGkgPSBNYXRoLmZsb29yKGMgLyA0KTsKICAgIHZhciBrID0gYyAlIDQ7
CiAgICB2YXIgbCA9ICgzMiArIDIgKiBlICsgMiAqIGkgLSBoIC0gaykgJSA3OwogICAgdmFyIG0g
PSBNYXRoLmZsb29yKChhICsgMTEgKiBoICsgMjIgKiBsKSAvIDQ1MSk7CiAgICB2YXIgbW9uYXQg
PSBNYXRoLmZsb29yKChoICsgbCAtIDcgKiBtICsgMTE0KSAvIDMxKTsgICAvLyAzID0gTWFlcnos
IDQgPSBBcHJpbAogICAgdmFyIHRhZyA9ICgoaCArIGwgLSA3ICogbSArIDExNCkgJSAzMSkgKyAx
OwogICAgcmV0dXJuIG5ldyBEYXRlKGphaHIsIG1vbmF0IC0gMSwgdGFnKTsKfQoKZnVuY3Rpb24g
X3BsdXMoZCwgbikgewogICAgdmFyIHIgPSBuZXcgRGF0ZShkLmdldFRpbWUoKSk7CiAgICByLnNl
dERhdGUoci5nZXREYXRlKCkgKyBuKTsKICAgIHJldHVybiByOwp9Cgp2YXIgX2NhY2hlID0ge307
CgovLyBMaWVmZXJ0IGVpbmUgTWFwIHsgJ1lZWVktTU0tREQnOiB7IG5hbWUsIHR5cCB9IH0gZnVl
ciBlaW4gSmFoci4KLy8gdHlwIOKIiCAnYnVuZGVzd2VpdCcgfCAnbnJ3Jy4KZXhwb3J0IGZ1bmN0
aW9uIGZlaWVydGFnZUZ1ZXJKYWhyKGphaHIpIHsKICAgIGphaHIgPSBwYXJzZUludChqYWhyLCAx
MCk7CiAgICBpZiAoIWphaHIpIHJldHVybiB7fTsKICAgIGlmIChfY2FjaGVbamFocl0pIHJldHVy
biBfY2FjaGVbamFocl07CiAgICB2YXIgbyA9IF9vc3Rlcm4oamFocik7CiAgICB2YXIgbWFwID0g
e307CiAgICBmdW5jdGlvbiBhZGQoZGF0dW0sIG5hbWUsIHR5cCkgeyBtYXBbZGF0dW1dID0geyBu
YW1lOiBuYW1lLCB0eXA6IHR5cCB9OyB9CgogICAgYWRkKGphaHIgKyAnLTAxLTAxJywgICAgICAg
ICAgJ05ldWphaHInLCAgICAgICAgICAgICAgICAgICAgJ2J1bmRlc3dlaXQnKTsKICAgIGFkZChk
YXR1bVN0cihfcGx1cyhvLCAtMikpLCAgICdLYXJmcmVpdGFnJywgICAgICAgICAgICAgICAgICdi
dW5kZXN3ZWl0Jyk7CiAgICBhZGQoZGF0dW1TdHIoX3BsdXMobywgIDEpKSwgICAnT3N0ZXJtb250
YWcnLCAgICAgICAgICAgICAgICAnYnVuZGVzd2VpdCcpOwogICAgYWRkKGphaHIgKyAnLTA1LTAx
JywgICAgICAgICAgJ1RhZyBkZXIgQXJiZWl0JywgICAgICAgICAgICAgJ2J1bmRlc3dlaXQnKTsK
ICAgIGFkZChkYXR1bVN0cihfcGx1cyhvLCAzOSkpLCAgICdDaHJpc3RpIEhpbW1lbGZhaHJ0Jywg
ICAgICAgICdidW5kZXN3ZWl0Jyk7CiAgICBhZGQoZGF0dW1TdHIoX3BsdXMobywgNTApKSwgICAn
UGZpbmdzdG1vbnRhZycsICAgICAgICAgICAgICAnYnVuZGVzd2VpdCcpOwogICAgYWRkKGRhdHVt
U3RyKF9wbHVzKG8sIDYwKSksICAgJ0Zyb25sZWljaG5hbScsICAgICAgICAgICAgICAgJ25ydycp
OyAgICAgICAgICAvLyBOUlctc3BlemlmaXNjaAogICAgYWRkKGphaHIgKyAnLTEwLTAzJywgICAg
ICAgICAgJ1RhZyBkZXIgRGV1dHNjaGVuIEVpbmhlaXQnLCAgJ2J1bmRlc3dlaXQnKTsKICAgIGFk
ZChqYWhyICsgJy0xMS0wMScsICAgICAgICAgICdBbGxlcmhlaWxpZ2VuJywgICAgICAgICAgICAg
ICducncnKTsgICAgICAgICAgLy8gTlJXLXNwZXppZmlzY2gKICAgIGFkZChqYWhyICsgJy0xMi0y
NScsICAgICAgICAgICcxLiBXZWlobmFjaHRzdGFnJywgICAgICAgICAgICdidW5kZXN3ZWl0Jyk7
CiAgICBhZGQoamFociArICctMTItMjYnLCAgICAgICAgICAnMi4gV2VpaG5hY2h0c3RhZycsICAg
ICAgICAgICAnYnVuZGVzd2VpdCcpOwoKICAgIF9jYWNoZVtqYWhyXSA9IG1hcDsKICAgIHJldHVy
biBtYXA7Cn0KCi8vIEluZm8genUgZWluZW0ga29ua3JldGVuIERhdHVtICgnWVlZWS1NTS1ERCcp
IG9kZXIgbnVsbC4KZXhwb3J0IGZ1bmN0aW9uIGZlaWVydGFnSW5mbyhkYXR1bSkgewogICAgaWYg
KCFkYXR1bSB8fCBkYXR1bS5sZW5ndGggPCA0KSByZXR1cm4gbnVsbDsKICAgIHZhciBtYXAgPSBm
ZWllcnRhZ2VGdWVySmFocihkYXR1bS5zdWJzdHJpbmcoMCwgNCkpOwogICAgcmV0dXJuIG1hcFtk
YXR1bV0gfHwgbnVsbDsKfQo=
### FILE: js/grid_editor.js | 40851
Ly8gPT09IGdyaWQvZWRpdG9yLmpzID09PQovLyBTdGFuZDogMjAyNi0wNS0xNAovLyBaZWxsLUVk
aXRvciAoU2NoaWNodC1BdXN3YWhsICsgS29tbWVudGFyKSBpbmtsLiBSdWhlemVpdC1QcnVlZnVu
ZywKLy8gRnVlaHJ1bmdzLUxvZ2lrIChER0wvV0RGL0ZCUC1aYWVobHVuZykgdW5kIFZlcmFudHdv
cnR1bmdzLVVlYmVyZ2FuZy0KLy8gTWFpbC1EaWFsb2cgaW0gMTQtVGFnZS1WZXJiaW5kbGljaGtl
aXRzZmVuc3Rlci4KLy8KLy8gSG9va3M6IGZlYXR1cmVJc3RBa3RpdiAoUGhhc2UgOCksIHNvbmRl
ckZ1ZXJEYXR1bS9zb25kZXJXYXJuTW9kYWxaZWlnZW4KLy8gKFNvbmRlcnRlcm1pbmUgaW4gUGhh
c2UgOCksIGlzdENvZGVBa3RpdiAoUGhhc2UgOCksIGVtYWlsVm9ybGFnZW5Ib2xlbi8KLy8gZW1h
aWxWb3JsYWdlQmVmdWVsbGVuL21haWxUcmlnZ2VyRmV1ZXJuIChQaGFzZSA3KSwgYmVzZXR6dW5n
c2tvbnRyb2xsZVJlbmRlcm4KLy8gKFBoYXNlIDYpLgoKaW1wb3J0IHsgWiB9IGZyb20gJy4vY29y
ZV9zdGF0ZS5qcyc7CmltcG9ydCB7CiAgICBlc2NhcGVIVE1MLCBlc2NhcGVBdHRyLCBkYXR1bVN0
ciwgZGF0dW1Gb3JtYXRERSwKICAgIGZ1bmt0aW9uc1JhbmcsIF9wZXJzb25BbnplaWdlLCBhYnNl
bmRlck5hbWVFcm1pdHRlbG4sCiAgICBhbnplaWdlTmFtZUZ1ZXJLZW5udW5nLCBhdXNsb2VzZXJF
bWFpbEVybWl0dGVsbgp9IGZyb20gJy4vY29yZV91dGlsLmpzJzsKaW1wb3J0IHsgZGFyZlplbGxl
RWRpdGllcmVuLCBkYXR1bUluVmVyYmluZGxpY2hrZWl0IH0gZnJvbSAnLi9jb3JlX3Blcm1pc3Np
b25zLmpzJzsKaW1wb3J0IHsgYXBpUG9zdCB9IGZyb20gJy4vY29yZV9hcGkuanMnOwppbXBvcnQg
eyB0b2FzdCwgYmVzdGFldGlnZW4sIG1vZGFsWmVpZ2VuLCBtb2RhbFNjaGxpZXNzZW4gfSBmcm9t
ICcuL3VpX2RpYWxvZy5qcyc7CmltcG9ydCB7IHN0YWVya2VCZXJlY2huZW4sIHplbGxlVmlzdWVs
bEFrdHVhbGlzaWVyZW4gfSBmcm9tICcuL2dyaWRfcmVuZGVyLmpzJzsKaW1wb3J0IHsKICAgIGtv
bW1lbnRhckxhZGVuLCBrb21tZW50YXJFaW50cmFnLCBrb21tZW50YXJNZXRhVGV4dCwgaW50ZXJh
Y3Rpb25Ib29rcywKICAgIGZ1ZWxsSGFuZGxlWmVpZ2VuLCBmdWVsbEhhbmRsZVZlcnN0ZWNrZW4s
CiAgICBrb21tZW50YXJMaXN0ZSwga29tbWVudGFyTG9lc2NoZW4sIGRhcmZLb21tZW50YXJMb2Vz
Y2hlbgp9IGZyb20gJy4vZ3JpZF9pbnRlcmFjdGlvbi5qcyc7CmltcG9ydCB7CiAgICBsb2NrWmVs
bGVBY3F1aXJlLCBsb2NrWmVsbGVGb3JjZSwgbG9ja1plbGxlUmVsZWFzZSwKICAgIGxvY2tIZWFy
dGJlYXRTdGFydGVuLCBsb2NrSGVhcnRiZWF0U3RvcHBlbgp9IGZyb20gJy4vc3luYy5qcyc7Cgov
LyA9PT09PSBIb29rcyA9PT09PQoKZXhwb3J0IHZhciBlZGl0b3JIb29rcyA9IHsKICAgIGZlYXR1
cmVJc3RBa3RpdjogbnVsbCwKICAgIHNvbmRlckZ1ZXJEYXR1bTogbnVsbCwKICAgIHNvbmRlcldh
cm5Nb2RhbFplaWdlbjogbnVsbCwKICAgIGlzdENvZGVBa3RpdjogbnVsbCwKICAgIGVtYWlsVm9y
bGFnZW5Ib2xlbjogbnVsbCwKICAgIGVtYWlsVm9ybGFnZUJlZnVlbGxlbjogbnVsbCwKICAgIG1h
aWxUcmlnZ2VyRmV1ZXJuOiBudWxsLAogICAgYmVzZXR6dW5nc2tvbnRyb2xsZVJlbmRlcm46IG51
bGwsCiAgICBiZXNldHp1bmdza29udHJvbGxlVGFnVXBkYXRlbjogbnVsbAp9OwoKLy8gPT09PT0g
S29uc3RhbnRlbiA9PT09PQoKLy8gU29sbC1CZXNldHp1bmcgcHJvIFNjaGljaHQ6IDIgRnVlaHJ1
bmdza3JhZWZ0ZSAoMS4gKyAyLiBWZXJhbnR3b3J0dW5nKS4KLy8gQWxsZSBkYXJ1ZWJlciBoaW5h
dXMgZWluZ2V0cmFnZW5lbiBER0xzIHNpbmQgUmVzZXJ2ZS4KZXhwb3J0IHZhciBGVUVIUlVOR19T
T0xMID0gMjsKCi8vIFNjaGljaHR6ZWl0ZW4tTW9kZWxsIChTdHVuZGVuIGFiIFRhZ2Vzc3RhcnQp
LiAzMCA9IG5hZWNoc3RlciBUYWcgMDY6MDAuCnZhciBzY2hpY2h0WmVpdGVuID0gewogICAgJ0Yn
OiB7IHN0YXJ0OiA2LCBlbmRlOiAxNCB9LAogICAgJ1MnOiB7IHN0YXJ0OiAxNCwgZW5kZTogMjIg
fSwKICAgICdOJzogeyBzdGFydDogMjIsIGVuZGU6IDMwIH0KfTsKCi8vID09PT09IEZ1ZWhydW5n
cy1Mb2dpayA9PT09PQoKLy8gTGllZmVydCAnRicgLyAnUycgLyAnTicsIHdlbm4gd2VydCBlaW5l
IEZ1ZWhydW5nc3NjaGljaHQgaXN0LCBzb25zdCBudWxsLgovLyBFcyB6YWVobHQgYXVzc2NobGll
c3NsaWNoIGRpZSBSb2xsZSBER0wg4oCUIFdERi9GQlAgc2luZCBrZWluZSBGdWVocnVuZy4KZXhw
b3J0IGZ1bmN0aW9uIGZ1ZWhydW5nc1NjaGljaHQod2VydCkgewogICAgaWYgKCF3ZXJ0IHx8IHdl
cnQubGVuZ3RoIDwgNSkgcmV0dXJuIG51bGw7CiAgICB2YXIgcHJlZml4ID0gd2VydC5jaGFyQXQo
MCk7CiAgICBpZiAocHJlZml4ICE9PSAnRicgJiYgcHJlZml4ICE9PSAnUycgJiYgcHJlZml4ICE9
PSAnTicpIHJldHVybiBudWxsOwogICAgaWYgKHdlcnQuc3Vic3RyaW5nKDIsIDUpID09PSAnREdM
JykgcmV0dXJuIHByZWZpeDsKICAgIHJldHVybiBudWxsOwp9CgpleHBvcnQgZnVuY3Rpb24gZnVl
aHJ1bmdzWmFlaGxlbihkYXR1bSwgc2NoaWNodCkgewogICAgLy8gRGVja3VuZ3NnbGVpY2ggbWl0
IHN0YWVya2VCZXJlY2huZW4oKSDigJQgZ2xlaWNoZSBaZWxsZSwgZ2xlaWNoZSBaYWhsLgogICAg
dmFyIHN0ID0gc3RhZXJrZUJlcmVjaG5lbihkYXR1bSk7CiAgICBpZiAoc2NoaWNodCA9PT0gJ0Yn
KSByZXR1cm4gc3QuZjsKICAgIGlmIChzY2hpY2h0ID09PSAnUycpIHJldHVybiBzdC5zOwogICAg
aWYgKHNjaGljaHQgPT09ICdOJykgcmV0dXJuIHN0Lm47CiAgICByZXR1cm4gMDsKfQoKLy8gTGll
ZmVydCBhbGxlIGFrdGl2ZW4gREdMcyBmdWVyIERhdHVtICsgU2NoaWNodCAoRi9TL04pLCBzb3J0
aWVydCBwcmltYWVyCi8vIG5hY2ggU3RhbW0tRnVua3Rpb25zLVJhbmcgKERHTCA+IFdERiA+IDMu
IFBlcnNvbiA+IFdhY2hsZWl0dW5nL0dydXBwZW4tCi8vIGZ1ZWhydW5nKSwgc2VrdW5kYWVyIG5h
Y2ggcm9oZXIgcG9zaXRpb24uIFswXSA9IDEuIFZlcmFudHdvcnR1bmcsCi8vIFsxXSA9IDIuIFZl
cmFudHdvcnR1bmcsIFsyXSsgPSB3ZWl0ZXJlIChSZXNlcnZlKS4KZXhwb3J0IGZ1bmN0aW9uIGRn
bHNJblNjaGljaHQoZGF0dW0sIHNjaGljaHRMZXR0ZXIpIHsKICAgIHZhciBlID0gKFoucGxhbnVu
Zy5laW50cmFlZ2UgfHwge30pW2RhdHVtXSB8fCB7fTsKICAgIHZhciBrYW5kaWRhdGVuID0gW107
CiAgICAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAg
ICAgICBpZiAoIXAuYWt0aXYpIHJldHVybjsKICAgICAgICB2YXIgdyA9IGVbU3RyaW5nKHAuaWQp
XSB8fCAnJzsKICAgICAgICBpZiAoZnVlaHJ1bmdzU2NoaWNodCh3KSA9PT0gc2NoaWNodExldHRl
cikga2FuZGlkYXRlbi5wdXNoKHApOwogICAgfSk7CiAgICBrYW5kaWRhdGVuLnNvcnQoZnVuY3Rp
b24oYSwgYikgewogICAgICAgIHZhciByQSA9IGZ1bmt0aW9uc1JhbmcoYS5mdW5rdGlvbik7CiAg
ICAgICAgdmFyIHJCID0gZnVua3Rpb25zUmFuZyhiLmZ1bmt0aW9uKTsKICAgICAgICBpZiAockEg
IT09IHJCKSByZXR1cm4gckEgLSByQjsKICAgICAgICByZXR1cm4gKGEucG9zaXRpb24gfHwgOTk5
KSAtIChiLnBvc2l0aW9uIHx8IDk5OSk7CiAgICB9KTsKICAgIHJldHVybiBrYW5kaWRhdGVuOwp9
CgpleHBvcnQgZnVuY3Rpb24gYWt0aXZlRnVlaHJ1bmcoZGF0dW0sIHNjaGljaHRMZXR0ZXIpIHsK
ICAgIHJldHVybiBkZ2xzSW5TY2hpY2h0KGRhdHVtLCBzY2hpY2h0TGV0dGVyKS5zbGljZSgwLCBG
VUVIUlVOR19TT0xMKTsKfQoKLy8gVkkzLURHTC1RdWFsaWZpemllcnVuZzogZGFzIEZsYWcgZWxE
Z2xRdWFsaWZpemllcnQgaXN0IHNlaXQgMjAyNi0wNS0yMwovLyBmdWVyIGFsbGUgUGVyc29uZW4g
cGZsZWdiYXIgKGF1Y2ggQXQtREdML1dERi9OZXV6dWdhZW5nZSBtdWVzc2VuCi8vIGV4cGxpeml0
IHF1YWxpZml6aWVydCB3ZXJkZW4sIHdlbm4gZGFzIGdld3VlbnNjaHQgaXN0KS4gRmFsbGJhY2sg
ZnVlcgovLyBCZXN0YW5kOiBGdW5rdGlvbiBER0wvREdMaW4gZ2lsdCB3ZWl0ZXJoaW4gaW1wbGl6
aXQgYWxzIHF1YWxpZml6aWVydCwKLy8gZGFtaXQga2VpbiBNaWdyYXRpb25zLVBmbGljaHRkdXJj
aGxhdWYgbm9ldGlnIGlzdC4KZXhwb3J0IGZ1bmN0aW9uIGlzdERnbFF1YWxpZml6aWVydChwKSB7
CiAgICBpZiAoIXApIHJldHVybiBmYWxzZTsKICAgIGlmIChwLmVsRGdsUXVhbGlmaXppZXJ0ID09
PSB0cnVlKSByZXR1cm4gdHJ1ZTsKICAgIHZhciBmID0gU3RyaW5nKHAuZnVua3Rpb24gfHwgJycp
OwogICAgaWYgKGYgPT09ICdER0wnIHx8IGYgPT09ICdER0xpbicpIHJldHVybiB0cnVlOwogICAg
cmV0dXJuIGZhbHNlOwp9CgovLyBMaWVmZXJ0IHRydWUsIHdlbm4gZGllIFBlcnNvbiBHZXNhbXR2
ZXJhbnR3b3J0bGljaCBpc3QuIEdlc2FtdHZlcmFudHdvcnRsaWNoZQovLyBrb21tZW4gYXVzIGRl
ciBEaWVuc3RzdGVsbGVubGVpdHVuZyB1bmQgbmVobWVuIGRpZSBER0wtRnVua3Rpb24gbmljaHQg
bWVocgovLyBzZWxic3Qgd2FociDigJQgZGFoZXIgYXVzIFNjaGljaHQtQmVzZXR6dW5ncy1LYW5k
aWRhdGVuIGF1c2dlc2NobG9zc2VuLgpleHBvcnQgZnVuY3Rpb24gaXN0R2VzYW10dmVyYW50d29y
dGxpY2gocCkgewogICAgaWYgKCFwIHx8ICFwLm53S2VubnVuZykgcmV0dXJuIGZhbHNlOwogICAg
dmFyIHBrID0gU3RyaW5nKHAubndLZW5udW5nKS50b0xvd2VyQ2FzZSgpOwogICAgdmFyIGZhcyA9
IChaLmFkbWluICYmIFouYWRtaW4uZmFjaGF1ZnNpY2h0KSB8fCBbXTsKICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgZmFzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGZhID0gZmFzW2ldOwogICAg
ICAgIGlmIChmYSAmJiBmYS5nZXNhbXR2ZXJhbnR3b3J0bGljaCAmJiBTdHJpbmcoZmEubndLZW5u
dW5nIHx8ICcnKS50b0xvd2VyQ2FzZSgpID09PSBwaykgcmV0dXJuIHRydWU7CiAgICB9CiAgICBy
ZXR1cm4gZmFsc2U7Cn0KCi8vIEUtTWFpbCBkZXMgR2VzYW10dmVyYW50d29ydGxpY2hlbiBhdXMg
YWRtaW4uZmFjaGF1ZnNpY2h0LiBGYWxsYmFjayB1ZWJlcgovLyBkaWUgTlctS2VubnVuZyBhdWYg
ZGVuIHBhc3NlbmRlbiBQZXJzb25lbi1FaW50cmFnLgpleHBvcnQgZnVuY3Rpb24gZ2VzYW10dmVy
YW50d29ydGxpY2hFbWFpbCgpIHsKICAgIHZhciBmYSA9IChaLmFkbWluLmZhY2hhdWZzaWNodCB8
fCBbXSkuZmluZChmdW5jdGlvbihmKSB7IHJldHVybiBmLmdlc2FtdHZlcmFudHdvcnRsaWNoOyB9
KTsKICAgIGlmICghZmEpIHJldHVybiAnJzsKICAgIGlmIChmYS5lbWFpbCkgcmV0dXJuIGZhLmVt
YWlsOwogICAgaWYgKGZhLm53S2VubnVuZykgewogICAgICAgIHZhciBwID0gKFoucGxhbnVuZy5w
ZXJzb25lbiB8fCBbXSkuZmluZChmdW5jdGlvbih4KSB7CiAgICAgICAgICAgIHJldHVybiAoeC5u
d0tlbm51bmcgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09IGZhLm53S2VubnVuZy50b0xvd2VyQ2Fz
ZSgpOwogICAgICAgIH0pOwogICAgICAgIGlmIChwICYmIHAuZW1haWwpIHJldHVybiBwLmVtYWls
OwogICAgfQogICAgcmV0dXJuICcnOwp9CgovLyA9PT09PSBWZXJhbnR3b3J0dW5ncy1XZWNoc2Vs
IChFSU5FIFNhbW1lbC1NYWlsKSA9PT09PQovLwovLyBFaW5lIFBsYW51bmdzYWVuZGVydW5nIGlu
IGRlciAxNC1UYWdlLVZlcmJpbmRsaWNoa2VpdCBrYW5uIG1laHJlcmUgUGVyc29uZW4KLy8gYmV0
cmVmZmVuOiB3ZXIgaW4gZGllIFRvcC0yLUZ1ZWhydW5nIGF1ZnJ1ZWNrdCBVTkQgd2VyIGRhZHVy
Y2ggaGVyYXVzZmFlbGx0LgovLyBGcnVlaGVyIG9lZmZuZXRlIGRhcyBwcm8gUGVyc29uIGVpbmVu
IGVpZ2VuZW4gRGlhbG9nICsgZWluZSBlaWdlbmUgTWFpbCDigJQKLy8genUgdmllbGUgU2Nocml0
dGUsIGRlciBVc2VyIHN0aWVnIGF1cy4gSmV0enQ6IEVJTkUgQmVzdGFldGlndW5nLCBFSU5FIE1h
aWwKLy8gYW4gQUxMRSBCZXRyb2ZmZW5lbiAoQW4tRmVsZCksIG1pdCBlaW5lbSBnZW5lcmllcnRl
biBXZWNoc2VsLUJsb2NrIGltIFRleHQuCi8vCi8vIHdlY2hzZWwgPSB7Ci8vICAgZGF0dW0sICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFlZWVktTU0tREQKLy8gICBwcmltYWVyU2NoaWNo
dCwgICAgICAgICAgICAgICAgICAgLy8gRi9TL04g4oCUIGZ1ZXIgQmV0cmVmZgovLyAgIGVpbnRy
YWVnZTogWyB7YXJ0OidhdWYnfCdmcmVpJywgc2NoaWNodExldHRlciwgcGVyc29uLCBzdHVmZSwg
Z2VnZW59IF0sCi8vICAgZW1wZmFlbmdlcjogWyB7ZW1haWwsIHBlcnNvbn0gXSwgIC8vIEFuLUZl
bGQgKGRlZHVwZSk6IEF1ZnJ1ZWNrZXIgYXVzc2VyCi8vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vICAgU2VsYnN0cGxhbmVyICsgVmVyZHJhZW5ndGUsIG1pdCBNYWlsCi8v
ICAgY2NQYXJ0bmVyRW1haWxzOiBbIC4uLiBdICAgICAgICAgIC8vIHp3ZWl0ZSBGdWVocnVuZ3Nr
cmFmdCBqZSBTY2hpY2h0Ci8vIH0KCi8vIEJhdXQgZGllIEtsYXJ0ZXh0LVplaWxlbiBkZXMgV2Vj
aHNlbC1CbG9ja3MgKGZ1ZXIgRGlhbG9nICsgTWFpbC1Cb2R5KS4KZnVuY3Rpb24gd2VjaHNlbFRl
eHRaZWlsZW4od2VjaHNlbCkgewogICAgdmFyIHNjaGljaHROYW1lID0geyBGOiAnRnLDvGgnLCBT
OiAnU3DDpHQnLCBOOiAnTmFjaHQnIH07CiAgICByZXR1cm4gd2VjaHNlbC5laW50cmFlZ2UubWFw
KGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIgc24gPSAoc2NoaWNodE5hbWVbZS5zY2hpY2h0TGV0
dGVyXSB8fCBlLnNjaGljaHRMZXR0ZXIpICsgJ3NjaGljaHQnOwogICAgICAgIHZhciBzdHVmZVRl
eHQgPSBlLnN0dWZlID09PSAxID8gJzEuIFZlcmFudHdvcnR1bmcnIDogJzIuIFZlcmFudHdvcnR1
bmcnOwogICAgICAgIGlmIChlLmFydCA9PT0gJ2F1ZicpIHsKICAgICAgICAgICAgcmV0dXJuICfi
gKIgJyArIF9wZXJzb25BbnplaWdlKGUucGVyc29uKSArICcgcsO8Y2t0IGluIGRpZSAnICsgc3R1
ZmVUZXh0ICsgJyBkZXIgJyArIHNuICsgJyBuYWNoJyArCiAgICAgICAgICAgICAgICAgICAoZS5n
ZWdlbiA/ICcgKGbDvHIgJyArIF9wZXJzb25BbnplaWdlKGUuZ2VnZW4pICsgJyknIDogJycpICsg
Jy4nOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJ+KAoiAnICsgX3BlcnNvbkFuemVpZ2UoZS5w
ZXJzb24pICsgJyBpc3QgYXVzIGRlciAnICsgc3R1ZmVUZXh0ICsgJyBkZXIgJyArIHNuICsKICAg
ICAgICAgICAgICAgJyBoZXJhdXMgdW5kIHBsYW50IGFiIGpldHp0IGZsZXhpYmxlcicgKwogICAg
ICAgICAgICAgICAoZS5nZWdlbiA/ICcgKMO8YmVybm9tbWVuIGhhdCAnICsgX3BlcnNvbkFuemVp
Z2UoZS5nZWdlbikgKyAnKScgOiAnJykgKyAnLic7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9u
IHZlcmFudHdvcnR1bmdzV2VjaHNlbERpYWxvZ1plaWdlbih3ZWNoc2VsLCBvbkZlcnRpZykgewog
ICAgdmFyIGZlcnRpZyA9IGZ1bmN0aW9uKCkgeyBpZiAodHlwZW9mIG9uRmVydGlnID09PSAnZnVu
Y3Rpb24nKSBvbkZlcnRpZygpOyB9OwogICAgaWYgKCF3ZWNoc2VsIHx8ICF3ZWNoc2VsLmVtcGZh
ZW5nZXIgfHwgIXdlY2hzZWwuZW1wZmFlbmdlci5sZW5ndGgpIHsgZmVydGlnKCk7IHJldHVybjsg
fQoKICAgIHZhciB6ZWlsZW4gPSB3ZWNoc2VsVGV4dFplaWxlbih3ZWNoc2VsKTsKICAgIHZhciBu
YW1lbiA9IHdlY2hzZWwuZW1wZmFlbmdlci5tYXAoZnVuY3Rpb24oZSkgeyByZXR1cm4gX3BlcnNv
bkFuemVpZ2UoZS5wZXJzb24pOyB9KTsKICAgIHZhciBpbmZvID0gJ0R1cmNoIGRlaW5lIFBsYW51
bmdzw6RuZGVydW5nIGFtICcgKyBkYXR1bUZvcm1hdERFKHdlY2hzZWwuZGF0dW0pICsKICAgICAg
ICAnIMOkbmRlcnQgc2ljaCBkaWUgRsO8aHJ1bmdzLVZlcmFudHdvcnR1bmc6XG5cbicgKyB6ZWls
ZW4uam9pbignXG4nKSArICdcblxuJyArCiAgICAgICAgJ0VzIHdpcmQgRUlORSBFLU1haWwgYW4g
YWxsZSBCZXRyb2ZmZW5lbiBnZcO2ZmZuZXQ6XG4nICsgbmFtZW4uam9pbignLCAnKSArICcuJzsK
ICAgIHZhciBrb2VycGVyID0gJzxkaXYgc3R5bGU9IndoaXRlLXNwYWNlOnByZS1saW5lO2xpbmUt
aGVpZ2h0OjEuNTtwYWRkaW5nOjhweCAwIj4nICsgZXNjYXBlSFRNTChpbmZvKSArICc8L2Rpdj4n
OwogICAgdmFyIGZ1c3MgPSAnPGJ1dHRvbiBjbGFzcz0iYnRuIiBpZD0idnctbmVpbiIgdHlwZT0i
YnV0dG9uIj5OaWNodCBiZW5hY2hyaWNodGlnZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAg
JzxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgaWQ9InZ3LWphIiB0eXBlPSJidXR0b24i
PkUtTWFpbCDDtmZmbmVuPC9idXR0b24+JzsKICAgIG1vZGFsWmVpZ2VuKCdWZXJhbnR3b3J0dW5n
c3dlY2hzZWwg4oCUICcgKyB3ZWNoc2VsLmVtcGZhZW5nZXIubGVuZ3RoICsgJyBQZXJzb24oZW4p
IGluZm9ybWllcmVuJywKICAgICAgICBrb2VycGVyLCBmdXNzLCBudWxsLCBudWxsLCB7IHJlaW5l
ckRpYWxvZzogdHJ1ZSB9KTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2dy1uZWluJyku
YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsgbW9kYWxTY2hsaWVzc2VuKCk7
IGZlcnRpZygpOyB9KTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2dy1qYScpLmFkZEV2
ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgdmVyYW50d29ydHVuZ3NX
ZWNoc2VsRW1haWxPZWZmbmVuKHdlY2hzZWwpOwogICAgICAgIG1vZGFsU2NobGllc3NlbigpOyBm
ZXJ0aWcoKTsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gdmVyYW50d29ydHVuZ3NXZWNoc2Vs
RW1haWxPZWZmbmVuKHdlY2hzZWwpIHsKICAgIGlmICghZWRpdG9ySG9va3MuZW1haWxWb3JsYWdl
bkhvbGVuIHx8ICFlZGl0b3JIb29rcy5lbWFpbFZvcmxhZ2VCZWZ1ZWxsZW4pIHJldHVybjsKICAg
IGlmICghd2VjaHNlbCB8fCAhd2VjaHNlbC5lbXBmYWVuZ2VyIHx8ICF3ZWNoc2VsLmVtcGZhZW5n
ZXIubGVuZ3RoKSByZXR1cm47CiAgICB2YXIgdm9ybGFnZSA9IGVkaXRvckhvb2tzLmVtYWlsVm9y
bGFnZW5Ib2xlbigpLnZlcmFudHdvcnR1bmdzVWViZXJnYW5nOwogICAgaWYgKCF2b3JsYWdlKSBy
ZXR1cm47CgogICAgLy8gQW4tRmVsZDogYWxsZSBCZXRyb2ZmZW5lbiBtaXQgRS1NYWlsIChkZWR1
cGUsIGxvd2VyY2FzZS1WZXJnbGVpY2gpCiAgICB2YXIgdG9MaXN0ZSA9IFtdOwogICAgdmFyIHNl
ZW4gPSB7fTsKICAgIHdlY2hzZWwuZW1wZmFlbmdlci5mb3JFYWNoKGZ1bmN0aW9uKGUpIHsKICAg
ICAgICB2YXIgbWFpbCA9IChlLmVtYWlsIHx8ICcnKS50b0xvd2VyQ2FzZSgpOwogICAgICAgIGlm
IChtYWlsICYmICFzZWVuW21haWxdKSB7IHNlZW5bbWFpbF0gPSB0cnVlOyB0b0xpc3RlLnB1c2go
ZS5lbWFpbCk7IH0KICAgIH0pOwogICAgaWYgKCF0b0xpc3RlLmxlbmd0aCkgewogICAgICAgIHRv
YXN0KCdGw7xyIGRpZSBiZXRyb2ZmZW5lbiBQZXJzb25lbiBpc3Qga2VpbmUgRS1NYWlsLUFkcmVz
c2UgaGludGVybGVndCDigJQgYml0dGUgenVlcnN0IHBmbGVnZW4uJywgJ3dhcm51bmcnKTsKICAg
ICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIHNjaGljaHROYW1lID0geyBGOiAnRnLDvGgnLCBT
OiAnU3DDpHQnLCBOOiAnTmFjaHQnIH1bd2VjaHNlbC5wcmltYWVyU2NoaWNodF0gfHwgd2VjaHNl
bC5wcmltYWVyU2NoaWNodDsKICAgIHZhciBjdHggPSB7CiAgICAgICAgZGF0dW06ICAgICAgICAg
ZGF0dW1Gb3JtYXRERSh3ZWNoc2VsLmRhdHVtKSwKICAgICAgICB3b2NoZW50YWc6ICAgICBbJ1Nv
bm50YWcnLCdNb250YWcnLCdEaWVuc3RhZycsJ01pdHR3b2NoJywnRG9ubmVyc3RhZycsJ0ZyZWl0
YWcnLCdTYW1zdGFnJ11bbmV3IERhdGUod2VjaHNlbC5kYXR1bSArICdUMDA6MDA6MDAnKS5nZXRE
YXkoKV0sCiAgICAgICAgc2NoaWNodDogICAgICAgc2NoaWNodE5hbWUsCiAgICAgICAgc2NoaWNo
dF9rdXJ6OiAgd2VjaHNlbC5wcmltYWVyU2NoaWNodCwKICAgICAgICB3ZWNoc2VsX2Jsb2NrOiB3
ZWNoc2VsVGV4dFplaWxlbih3ZWNoc2VsKS5qb2luKCdcbicpLAogICAgICAgIGFic2VuZGVyX25h
bWU6IGFic2VuZGVyTmFtZUVybWl0dGVsbigpCiAgICB9OwogICAgdmFyIGJldHJlZmYgPSBlZGl0
b3JIb29rcy5lbWFpbFZvcmxhZ2VCZWZ1ZWxsZW4odm9ybGFnZS5iZXRyZWZmLCBjdHgpOwogICAg
dmFyIHRleHQgICAgPSBlZGl0b3JIb29rcy5lbWFpbFZvcmxhZ2VCZWZ1ZWxsZW4odm9ybGFnZS50
ZXh0LCBjdHgpOwoKICAgIC8vIENDOiB6d2VpdGUgRnVlaHJ1bmdza3JhZnQgKG9wdGlvbmFsKSAr
IEF1c2xvZXNlciAob3B0aW9uYWwpLiBOaWUgZG9wcGVsdAogICAgLy8genUgamVtYW5kZW0sIGRl
ciBzY2hvbiBpbSBBbi1GZWxkIHN0ZWh0LgogICAgdmFyIGNjID0gW107IHZhciBjY1NlZW4gPSB7
fTsKICAgIGZ1bmN0aW9uIGNjQWRkKG1haWwpIHsKICAgICAgICBpZiAoIW1haWwpIHJldHVybjsK
ICAgICAgICB2YXIgbSA9IG1haWwudG9Mb3dlckNhc2UoKTsKICAgICAgICBpZiAoc2VlblttXSB8
fCBjY1NlZW5bbV0pIHJldHVybjsKICAgICAgICBjY1NlZW5bbV0gPSB0cnVlOyBjYy5wdXNoKG1h
aWwpOwogICAgfQogICAgaWYgKHZvcmxhZ2UuY2NBbmRlcmVyRGdsKSAod2VjaHNlbC5jY1BhcnRu
ZXJFbWFpbHMgfHwgW10pLmZvckVhY2goY2NBZGQpOwogICAgaWYgKHZvcmxhZ2UuY2NBdXNsb2Vz
ZXIpIGNjQWRkKGF1c2xvZXNlckVtYWlsRXJtaXR0ZWxuKCkpOwoKICAgIHZhciB1cmwgPSAnbWFp
bHRvOicgKyBlbmNvZGVVUklDb21wb25lbnQodG9MaXN0ZS5qb2luKCcsJykpICsKICAgICAgICAg
ICAgICAnP3N1YmplY3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudChiZXRyZWZmKSArCiAgICAgICAg
ICAgICAgJyZib2R5PScgICAgKyBlbmNvZGVVUklDb21wb25lbnQodGV4dCk7CiAgICBpZiAoY2Mu
bGVuZ3RoKSB1cmwgKz0gJyZjYz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGNjLmpvaW4oJywnKSk7
CiAgICBpZiAodm9ybGFnZS5iY2NHZXNhbXR2ZXJhbnR3b3J0bGljaCkgewogICAgICAgIHZhciBn
dkVtYWlsID0gZ2VzYW10dmVyYW50d29ydGxpY2hFbWFpbCgpOwogICAgICAgIGlmIChndkVtYWls
KSB1cmwgKz0gJyZiY2M9JyArIGVuY29kZVVSSUNvbXBvbmVudChndkVtYWlsKTsKICAgIH0KICAg
IHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsOwp9CgovLyA9PT09PSBVbnRlcmJlc2V0enVuZ3Mt
UHJ1ZWZ1bmcgKHZvciBkZW0gU3BlaWNoZXJuKSA9PT09PQoKLy8gUHLDvGZ0IG9iIGRpZSBnZXBs
YW50ZSDDhG5kZXJ1bmcgZWluZSBVbnRlcmJlc2V0enVuZyBhdXNsb2VzdC4KLy8gUnVlY2tnYWJl
OiAnRicvJ1MnLydOJyB3ZW5uIGphLCBzb25zdCBudWxsLgpleHBvcnQgZnVuY3Rpb24gZnVlaHJ1
bmdzVW50ZXJiZXNldHp1bmdQcnVlZmVuKGRhdHVtLCBhbHRlcldlcnQsIG5ldWVyV2VydCkgewog
ICAgaWYgKCFkYXR1bUluVmVyYmluZGxpY2hrZWl0KGRhdHVtKSkgcmV0dXJuIG51bGw7CiAgICB2
YXIgYWx0ZVNjaGljaHQgPSBmdWVocnVuZ3NTY2hpY2h0KGFsdGVyV2VydCk7CiAgICB2YXIgbmV1
ZVNjaGljaHQgPSBmdWVocnVuZ3NTY2hpY2h0KG5ldWVyV2VydCk7CiAgICBpZiAoIWFsdGVTY2hp
Y2h0KSByZXR1cm4gbnVsbDsgICAgICAgICAgICAgICAgIC8vIHdhciBuaWUgRnVlaHJ1bmdzc2No
aWNodAogICAgaWYgKGFsdGVTY2hpY2h0ID09PSBuZXVlU2NoaWNodCkgcmV0dXJuIG51bGw7ICAv
LyBTY2hpY2h0IGJsZWlidCwgbnVyIFJvbGxlIGFuZGVycyAoRi1ER0wgLT4gRi1XREYpCiAgICAv
LyBEaWUgYWx0ZVNjaGljaHQgdmVybGllcnQgZHVyY2ggZGllc2UgQWVuZGVydW5nIGVpbmUgRnVl
aHJ1bmdza3JhZnQuCiAgICB2YXIgYWt0dWVsbCA9IGZ1ZWhydW5nc1phZWhsZW4oZGF0dW0sIGFs
dGVTY2hpY2h0KTsKICAgIGlmIChha3R1ZWxsIC0gMSA8IDIpIHJldHVybiBhbHRlU2NoaWNodDsK
ICAgIHJldHVybiBudWxsOwp9CgovLyA9PT09PSBaZWxsLUVkaXRvciA9PT09PQoKLy8gTW9kdWwt
cHJpdmF0ZSBFZGl0b3ItU3RhdGUtVmFyLiBadWdyaWZmIGF1cyBpbnRlcmFjdGlvbi5qcyAoZmFs
bHMgbm9ldGlnKQovLyB1ZWJlciBlZGl0b3JBa3RpdigpLUdldHRlciAoc2llaGUgdW50ZW4pLgp2
YXIgZWRpdG9yID0geyBha3RpdjogZmFsc2UsIGRhdHVtOiAnJywgcGVyc29uSWQ6ICcnIH07Cgpl
eHBvcnQgZnVuY3Rpb24gZWRpdG9yQWt0aXYoKSB7IHJldHVybiBlZGl0b3IuYWt0aXY7IH0KZXhw
b3J0IGZ1bmN0aW9uIGVkaXRvckRhdHVtKCkgeyByZXR1cm4gZWRpdG9yLmRhdHVtOyB9CmV4cG9y
dCBmdW5jdGlvbiBlZGl0b3JQZXJzb25JZCgpIHsgcmV0dXJuIGVkaXRvci5wZXJzb25JZDsgfQoK
Ly8gUmVuZGVydCBkaWUgS29tbWVudGFyLVZlcmxhdWZzbGlzdGUgaW0gRWRpdG9yIChvYmVyaGFs
YiBkZXMgRWluZ2FiZWZlbGRzKS4KLy8gUmVpaGVuZm9sZ2U6IG5ldWVzdGUgb2Jlbi4gUHJvIEVp
bnRyYWcgZWluZSBUZXh0LVplbGxlICsgTWV0YS1aZWlsZSAoQXV0b3IgKwovLyBaZWl0c3RlbXBl
bCk7IGZ1ZXIgQmVyZWNodGlndGUgKFNVL0dlc2FtdHZlcmFudHdvcnRsaWNoKSB6dXNhZXR6bGlj
aCBlaW4KLy8gTG9lc2NoLUljb24uIFdpcmQgbmFjaCBFZGl0b3ItT3BlbiwgSGluenVmdWVnZW4g
dW5kIExvZXNjaGVuIGF1ZmdlcnVmZW4sCi8vIGRhbWl0IGRpZSBBbnplaWdlIGxpdmUgbWl0d2Fu
ZGVydC4KZXhwb3J0IGZ1bmN0aW9uIGVkaXRvcktvbW1lbnRhclZlcmxhdWZSZW5kZXJuKCkgewog
ICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1rb21tZW50YXItdmVy
bGF1ZicpOwogICAgaWYgKCFlbCkgcmV0dXJuOwogICAgaWYgKCFlZGl0b3IuYWt0aXYpIHsgZWwu
aW5uZXJIVE1MID0gJyc7IHJldHVybjsgfQogICAgdmFyIGxpc3RlID0ga29tbWVudGFyTGlzdGUo
a29tbWVudGFyRWludHJhZyhlZGl0b3IuZGF0dW0sIGVkaXRvci5wZXJzb25JZCkpOwogICAgaWYg
KGxpc3RlLmxlbmd0aCA9PT0gMCkgewogICAgICAgIGVsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNz
PSJla3YtbGVlciI+Tm9jaCBrZWluZSBLb21tZW50YXJlPC9kaXY+JzsKICAgICAgICByZXR1cm47
CiAgICB9CiAgICB2YXIgZGFyZkxvZXNjaGVuID0gZGFyZktvbW1lbnRhckxvZXNjaGVuKCk7CiAg
ICAvLyBOZXVlc3RlIG9iZW4g4oCUIFNlcnZlciBzcGVpY2hlcnQgY2hyb25vbG9naXNjaCAoYWx0
IC0+IG5ldSksIHdpciBkcmVoZW4KICAgIC8vIGZ1ZXIgZGllIEFuemVpZ2UgdW0uIEl0ZXJhdGlv
biBydWVja3dhZXJ0cyBvaG5lIHJldmVyc2UoKSwgZGFtaXQgZGFzCiAgICAvLyBPcmlnaW5hbC1B
cnJheSBuaWNodCBtdXRpZXJ0IHdpcmQuCiAgICB2YXIgaHRtbCA9ICcnOwogICAgZm9yICh2YXIg
aSA9IGxpc3RlLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgdmFyIGsgPSBsaXN0
ZVtpXTsKICAgICAgICB2YXIgdGV4dCA9IGVzY2FwZUhUTUwoay50ZXh0IHx8ICcnKS5yZXBsYWNl
KC9cbi9nLCAnPGJyPicpOwogICAgICAgIHZhciBkdCA9ICcnOwogICAgICAgIGlmIChrLmdlYWVu
ZGVydEFtKSB7CiAgICAgICAgICAgIHZhciBkID0gbmV3IERhdGUoay5nZWFlbmRlcnRBbSk7CiAg
ICAgICAgICAgIGlmICghaXNOYU4oZC5nZXRUaW1lKCkpKSB7CiAgICAgICAgICAgICAgICB2YXIg
cGFkID0gZnVuY3Rpb24obikgeyByZXR1cm4gKG4gPCAxMCA/ICcwJyA6ICcnKSArIG47IH07CiAg
ICAgICAgICAgICAgICBkdCA9IHBhZChkLmdldERhdGUoKSkgKyAnLicgKyBwYWQoZC5nZXRNb250
aCgpICsgMSkgKyAnLicgKyBkLmdldEZ1bGxZZWFyKCkgKwogICAgICAgICAgICAgICAgICAgICAn
ICcgKyBwYWQoZC5nZXRIb3VycygpKSArICc6JyArIHBhZChkLmdldE1pbnV0ZXMoKSk7CiAgICAg
ICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdmFyIHJvaCA9IGsuZ2VhZW5kZXJ0Vm9uIHx8ICcn
OwogICAgICAgIHZhciBuYW1lID0gcm9oID8gYW56ZWlnZU5hbWVGdWVyS2VubnVuZyhyb2gpIDog
Jyc7CiAgICAgICAgdmFyIHZlcmZhc3NlciA9IG5hbWUgJiYgbmFtZS50b0xvd2VyQ2FzZSgpICE9
PSByb2gudG9Mb3dlckNhc2UoKS5zcGxpdCgnXFwnKS5wb3AoKSA/IG5hbWUgOiByb2g7CiAgICAg
ICAgdmFyIGxvZXNjaEJ0biA9IGRhcmZMb2VzY2hlbiAmJiBrLmlkICYmIGsuaWQuaW5kZXhPZign
a19sZWdhY3knKSAhPT0gMAogICAgICAgICAgICA/ICc8YnV0dG9uIGNsYXNzPSJla3YtbG9lc2No
ZW4iIHRpdGxlPSJEaWVzZW4gS29tbWVudGFyIGzDtnNjaGVuIiBkYXRhLWlkPSInICsgZXNjYXBl
QXR0cihrLmlkKSArICciPuKclTwvYnV0dG9uPicKICAgICAgICAgICAgOiAnJzsKICAgICAgICBo
dG1sICs9ICc8ZGl2IGNsYXNzPSJla3YtZWludHJhZyI+JyArCiAgICAgICAgICAgICAgICAgICAg
JzxkaXYgY2xhc3M9ImVrdi10ZXh0Ij4nICsgdGV4dCArICc8L2Rpdj4nICsKICAgICAgICAgICAg
ICAgICAgICAnPGRpdiBjbGFzcz0iZWt2LW1ldGEiPicgKwogICAgICAgICAgICAgICAgICAgICAg
ICAodmVyZmFzc2VyID8gJzxzcGFuIGNsYXNzPSJla3YtbWV0YS1hdXRvciI+JyArIGVzY2FwZUhU
TUwodmVyZmFzc2VyKSArICc8L3NwYW4+JyA6ICcnKSArCiAgICAgICAgICAgICAgICAgICAgICAg
ICh2ZXJmYXNzZXIgJiYgZHQgPyAnIMK3ICcgOiAnJykgKwogICAgICAgICAgICAgICAgICAgICAg
ICAoZHQgPyAnPHNwYW4gY2xhc3M9ImVrdi1tZXRhLXplaXQiPicgKyBlc2NhcGVIVE1MKGR0KSAr
ICc8L3NwYW4+JyA6ICcnKSArCiAgICAgICAgICAgICAgICAgICAgICAgIGxvZXNjaEJ0biArCiAg
ICAgICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzwvZGl2Pic7CiAg
ICB9CiAgICBlbC5pbm5lckhUTUwgPSBodG1sOwp9CgoKLy8gUnVoZXplaXRlbi1IZWxwZXIKCmV4
cG9ydCBmdW5jdGlvbiBuYWNoYmFyRGF0dW0oZFN0ciwgb2Zmc2V0KSB7CiAgICB2YXIgZCA9IG5l
dyBEYXRlKGRTdHIgKyAnVDEyOjAwOjAwJyk7CiAgICBkLnNldERhdGUoZC5nZXREYXRlKCkgKyBv
ZmZzZXQpOwogICAgcmV0dXJuIGRhdHVtU3RyKGQpOwp9CgpleHBvcnQgZnVuY3Rpb24gc2NoaWNo
dFR5cCh3ZXJ0KSB7CiAgICBpZiAoIXdlcnQpIHJldHVybiBudWxsOwogICAgdmFyIGMgPSB3ZXJ0
LmNoYXJBdCgwKTsKICAgIGlmIChjID09PSAnRicgfHwgYyA9PT0gJ1MnIHx8IGMgPT09ICdOJykg
ewogICAgICAgIGlmICh3ZXJ0LmluZGV4T2YoJ0RHTCcpICE9PSAtMSB8fCB3ZXJ0LmluZGV4T2Yo
J1dERicpICE9PSAtMSB8fCB3ZXJ0LmluZGV4T2YoJ0ZCUCcpICE9PSAtMSkgcmV0dXJuIGM7CiAg
ICB9CiAgICByZXR1cm4gbnVsbDsKfQoKLy8gSGlsZnNmb3JtYXR0ZXI6IFN0dW5kZW4tWmFobCBp
biBISDpNTS4gJSAyNCBmdWVyIE5hY2h0c2NoaWNodGVuLAovLyBkZXJlbiBlbmRlID4gMjQgKHou
Qi4gMDYgKyAyNCA9IDMwIGZ1ZXIgImVuZGV0IGFtIEZvbGdldGFnIDA2OjAwIikuCmZ1bmN0aW9u
IF9oaG1tKGgpIHsKICAgIHZhciBuID0gKChoICUgMjQpICsgMjQpICUgMjQ7CiAgICB2YXIgaGgg
PSBNYXRoLmZsb29yKG4pOwogICAgdmFyIG1tID0gTWF0aC5yb3VuZCgobiAtIGhoKSAqIDYwKTsK
ICAgIHJldHVybiAoaGggPCAxMCA/ICcwJyA6ICcnKSArIGhoICsgJzonICsgKG1tIDwgMTAgPyAn
MCcgOiAnJykgKyBtbTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHJ1aGV6ZWl0UHJ1ZWZlbihkYXR1bSwg
cGlkLCBuZXVlcldlcnQpIHsKICAgIHZhciBuZXVlclR5cCA9IHNjaGljaHRUeXAobmV1ZXJXZXJ0
KTsKICAgIGlmICghbmV1ZXJUeXApIHJldHVybiBudWxsOwogICAgdmFyIG5ldWVaZWl0ID0gc2No
aWNodFplaXRlbltuZXVlclR5cF07CiAgICB2YXIgd2FybnVuZ2VuID0gW107CgogICAgLy8gVm9y
dGFnIHByw7xmZW46IEVuZGUgVm9ydGFnIOKGkiBTdGFydCBuZXVlciBTY2hpY2h0CiAgICAvLyBV
WC1BdWRpdCBTcHJpbnQgMi43ICgyMDI2LTA1LTI5KTogV2FybnVuZyBlbnRoYWVsdCBqZXR6dCBk
aWUga29ua3JldGVuCiAgICAvLyBVaHJ6ZWl0ZW4gKEVuZHplaXQgVm9ydGFnICsgU3RhcnR6ZWl0
IGFrdHVlbGxlIFNjaGljaHQpLCBkYW1pdCBkZXIgVXNlcgogICAgLy8gZGlyZWt0IHZlcnN0ZWh0
IFdPIGRhcyBEZWZpeml0IGxpZWd0IOKAlCBuaWNodCBudXIgZGllIFN0dW5kZW4tWmFobC4KICAg
IHZhciB2b3J0YWcgPSBuYWNoYmFyRGF0dW0oZGF0dW0sIC0xKTsKICAgIHZhciB2b3JXZXJ0ID0g
KChaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9KVt2b3J0YWddIHx8IHt9KVtwaWRdIHx8ICcnOwog
ICAgdmFyIHZvclR5cCA9IHNjaGljaHRUeXAodm9yV2VydCk7CiAgICBpZiAodm9yVHlwKSB7CiAg
ICAgICAgdmFyIHZvclplaXQgPSBzY2hpY2h0WmVpdGVuW3ZvclR5cF07CiAgICAgICAgdmFyIHJ1
aGUgPSAobmV1ZVplaXQuc3RhcnQgKyAyNCkgLSB2b3JaZWl0LmVuZGU7CiAgICAgICAgaWYgKHJ1
aGUgPCAxMSkgewogICAgICAgICAgICB3YXJudW5nZW4ucHVzaCgnTnVyICcgKyBydWhlICsgJ2gg
UnVoZXplaXQ6ICcgKyB2b3JXZXJ0ICsgJyBlbmRldCAnICsgX2hobW0odm9yWmVpdC5lbmRlKSAr
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICcg4oaSIG5ldWUgU2NoaWNodCBzdGFydGV0ICcg
KyBfaGhtbShuZXVlWmVpdC5zdGFydCkgKyAnIChtaW4uIDExaCknKTsKICAgICAgICB9CiAgICB9
CgogICAgLy8gRm9sZ2V0YWcgcHLDvGZlbjogRW5kZSBuZXVlIFNjaGljaHQg4oaSIFN0YXJ0IEZv
bGdldGFnCiAgICB2YXIgZm9sZ2V0YWcgPSBuYWNoYmFyRGF0dW0oZGF0dW0sIDEpOwogICAgdmFy
IGZvbGdlV2VydCA9ICgoWi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7fSlbZm9sZ2V0YWddIHx8IHt9
KVtwaWRdIHx8ICcnOwogICAgdmFyIGZvbGdlVHlwID0gc2NoaWNodFR5cChmb2xnZVdlcnQpOwog
ICAgaWYgKGZvbGdlVHlwKSB7CiAgICAgICAgdmFyIGZvbGdlWmVpdCA9IHNjaGljaHRaZWl0ZW5b
Zm9sZ2VUeXBdOwogICAgICAgIHZhciBydWhlRm9sZ2UgPSAoZm9sZ2VaZWl0LnN0YXJ0ICsgMjQp
IC0gbmV1ZVplaXQuZW5kZTsKICAgICAgICBpZiAocnVoZUZvbGdlIDwgMTEpIHsKICAgICAgICAg
ICAgd2FybnVuZ2VuLnB1c2goJ051ciAnICsgcnVoZUZvbGdlICsgJ2ggUnVoZXplaXQ6IG5ldWUg
U2NoaWNodCBlbmRldCAnICsgX2hobW0obmV1ZVplaXQuZW5kZSkgKwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAnIOKGkiAnICsgZm9sZ2VXZXJ0ICsgJyBhbSBGb2xnZXRhZyBzdGFydGV0ICcg
KyBfaGhtbShmb2xnZVplaXQuc3RhcnQpICsgJyAobWluLiAxMWgpJyk7CiAgICAgICAgfQogICAg
fQoKICAgIHJldHVybiB3YXJudW5nZW4ubGVuZ3RoID4gMCA/IHdhcm51bmdlbiA6IG51bGw7Cn0K
CmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JPZWZmbmVuKHplbGxlLCBzb25kZXJPaywgZnJlbWRPaykg
ewogICAgdmFyIGRhdHVtID0gemVsbGUuZ2V0QXR0cmlidXRlKCdkYXRhLWRhdHVtJyk7CiAgICB2
YXIgcGlkID0gemVsbGUuZ2V0QXR0cmlidXRlKCdkYXRhLXBlcnNvbicpOwogICAgaWYgKCFkYXR1
bSB8fCAhcGlkKSByZXR1cm47CgogICAgLy8gU2Nob24gb2ZmZW4gZnVlciBnZW5hdSBkaWVzZSBa
ZWxsZT8gTmljaHRzIHR1biAoRG9wcGVsLUFjcXVpcmUgdmVybWVpZGVuKS4KICAgIGlmIChlZGl0
b3IuYWt0aXYgJiYgZWRpdG9yLmRhdHVtID09PSBkYXR1bSAmJiBTdHJpbmcoZWRpdG9yLnBlcnNv
bklkKSA9PT0gU3RyaW5nKHBpZCkpIHJldHVybjsKICAgIC8vIEVkaXRvciBmdWVyIGVpbmUgQU5E
RVJFIFplbGxlIG9mZmVuPyBFcnN0IHNhdWJlciBzY2hsaWVzc2VuICsgYWx0ZW4gTG9jawogICAg
Ly8gZnJlaWdlYmVuLCBCRVZPUiB3aXIgZGllIG5ldWUgWmVsbGUgc3BlcnJlbi4gU29uc3Qgd2ly
ZCBaLnplbGxMb2NrLnRva2VuCiAgICAvLyB1ZWJlcnNjaHJpZWJlbiB1bmQgZGVyIGFsdGUgU2Vy
dmVyLUxvY2sgYmxlaWJ0IGFscyBHZWlzdGVyLVNwZXJyZSBoYWVuZ2VuCiAgICAvLyAoZGVyIEhh
dXB0Z3J1bmQgZnVlciAiU2FiaW5lIHNhaCA1IGdlc3BlcnJ0ZSBaZWxsZW4sIGRpZSBuaWUgZnJl
aWdlZ2ViZW4KICAgIC8vIHd1cmRlbiIpLiBOdXIgYmVpIHNvbmRlck9rL2ZyZW1kT2stUmVrdXJz
aW9uIGlzdCBkZXIgRWRpdG9yIG9obmVoaW4genUuCiAgICBpZiAoZWRpdG9yLmFrdGl2KSBlZGl0
b3JTY2hsaWVzc2VuKCk7CgogICAgLy8gVW1nZXNldHp0ZSBQZXJzb25lbiBzaW5kIG51ciB6dXIg
UmVjaGVyY2hlIGVpbmdlYmxlbmRldCDigJQgbmljaHQgZWRpdGllcmVuCiAgICB2YXIgemVsbGVw
ZXJzb24gPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHApIHsgcmV0
dXJuIFN0cmluZyhwLmlkKSA9PT0gU3RyaW5nKHBpZCk7IH0pOwogICAgaWYgKHplbGxlcGVyc29u
ICYmICF6ZWxsZXBlcnNvbi5ha3RpdikgewogICAgICAgIHRvYXN0KCdVbWdlc2V0enRlIFBlcnNv
biDigJQgbnVyIHp1ciBSZWNoZXJjaGUsIG5pY2h0IGVkaXRpZXJiYXInLCAnd2FybnVuZycpOwog
ICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBSZWNodGUtUHJ1ZWZ1bmc6IGVpZ2VuZSBaZWls
ZSArIGtvbmZpZ3VyaWVydGUgUmVjaHRlLCBTdXBlclVzZXIgaW1tZXIuCiAgICAvLyBHZXNwZXJy
dGUgWmVsbGVuIHNpbmQgaW0gR3JpZCBzY2hvbiB2aXN1ZWxsIG1hcmtpZXJ0IChncmlkLXplbGxl
LWdlc3BlcnJ0KS4KICAgIGlmICghZGFyZlplbGxlRWRpdGllcmVuKHBpZCkpIHsKICAgICAgICB0
b2FzdCgnS2VpbmUgQmVyZWNodGlndW5nLCBkaWVzZSBaZWxsZSB6dSBiZWFyYmVpdGVuJywgJ3dh
cm51bmcnKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgLy8gU29uZGVydGVybWluLVdhcm5o
aW53ZWlzIHZvciBQbGFudW5nCiAgICBpZiAoIXNvbmRlck9rICYmIGVkaXRvckhvb2tzLnNvbmRl
ckZ1ZXJEYXR1bSAmJiBlZGl0b3JIb29rcy5zb25kZXJXYXJuTW9kYWxaZWlnZW4pIHsKICAgICAg
ICB2YXIgc29uZGVyID0gZWRpdG9ySG9va3Muc29uZGVyRnVlckRhdHVtKGRhdHVtKTsKICAgICAg
ICBpZiAoc29uZGVyICYmIChzb25kZXIud2Fybk1vZHVzIHx8ICdpbW1lcicpICE9PSAnYXVzJykg
ewogICAgICAgICAgICB2YXIgd20gPSBzb25kZXIud2Fybk1vZHVzIHx8ICdpbW1lcic7CiAgICAg
ICAgICAgIC8vIEVpbm1hbGlnOiBwcm8gVGVybWluLUlEIChaZWl0cmF1bS1UZXJtaW4gbmljaHQg
amVkZW4gVGFnIGVybmV1dCB3YXJuZW4pCiAgICAgICAgICAgIHZhciBrZXkgPSAnc29uZGVyX3Nl
ZW5fJyArIChzb25kZXIuaWQgfHwgc29uZGVyLmRhdHVtKSArICdfJyArIChaLmJlbnV0emVyIHx8
ICcnKTsKICAgICAgICAgICAgdmFyIGVpbm1hbEdlc2VoZW4gPSB3bSA9PT0gJ2Vpbm1hbGlnJyAm
JiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpOwogICAgICAgICAgICBpZiAoIWVpbm1hbEdlc2Vo
ZW4pIHsKICAgICAgICAgICAgICAgIGVkaXRvckhvb2tzLnNvbmRlcldhcm5Nb2RhbFplaWdlbihz
b25kZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGlmICh3bSA9PT0gJ2Vpbm1h
bGlnJykgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCAnMScpOwogICAgICAgICAgICAgICAgICAg
IGVkaXRvck9lZmZuZW4oemVsbGUsIHRydWUsIGZyZW1kT2spOwogICAgICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cgog
ICAgLy8gV2FybnVuZyB3ZW5uIG1hbiBkaWUgU2NoaWNodCBlaW5lciBhbmRlcmVuIFBlcnNvbiDD
pG5kZXJ0CiAgICBpZiAoIWZyZW1kT2sgJiYgZWRpdG9ySG9va3MuZmVhdHVyZUlzdEFrdGl2ICYm
IGVkaXRvckhvb2tzLmZlYXR1cmVJc3RBa3RpdignZnJlbWRBZW5kZXJ1bmdXYXJudW5nJykgJiYg
Wi5tZWluZVBlcnNvbklkICYmIHBpZCAhPT0gWi5tZWluZVBlcnNvbklkKSB7CiAgICAgICAgdmFy
IHBlcnNvbiA9IFoucGVyc29uZW4uZmluZChmdW5jdGlvbihwKSB7IHJldHVybiBTdHJpbmcocC5p
ZCkgPT09IHBpZDsgfSk7CiAgICAgICAgdmFyIGFuemVpZ2VOYW1lID0gcGVyc29uID8gKChwZXJz
b24udm9ybmFtZSA/IHBlcnNvbi52b3JuYW1lICsgJyAnIDogJycpICsgcGVyc29uLm5hbWUpIDog
J1BlcnNvbiAnICsgcGlkOwogICAgICAgIGJlc3RhZXRpZ2VuKCdEdSDDpG5kZXJzdCBnZXJhZGUg
ZGllIFNjaGljaHQgdm9uICcgKyBhbnplaWdlTmFtZSArICcuXG5CaXN0IGR1IGRpciBzaWNoZXI/
JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGVkaXRvck9lZmZuZW4oemVsbGUsIHRydWUsIHRy
dWUpOwogICAgICAgIH0sIHsgdGl0ZWw6ICdGcmVtZC3DhG5kZXJ1bmcnLCBqYVRleHQ6ICdUcm90
emRlbSDDpG5kZXJuJyB9KTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgLy8gUGVzc2ltaXN0
aWMgTG9jayBhbmZvcmRlcm4sIGJldm9yIGRlciBFZGl0b3Igc2ljaHRiYXIgd2lyZC4KICAgIC8v
IDIwMCAtPiBUb2tlbiBtZXJrZW4sIEhlYXJ0YmVhdCBzdGFydGVuLCB3ZWl0ZXIgdW50ZW4gb2Vm
Zm5lbi4KICAgIC8vIDQyMyArIG5pY2h0LWthbm5Gb3JjZSAtPiBFZGl0b3IgYmxlaWJ0IHp1LCBU
b2FzdC4KICAgIC8vIDQyMyArIGthbm5Gb3JjZSAtPiBCZXN0YWV0aWd1bmdzLU1vZGFsICJFZGl0
LUxvY2sgdWViZXJuZWhtZW4/Ii4KICAgIGxvY2taZWxsZUFjcXVpcmUoZGF0dW0sIHBpZCkudGhl
bihmdW5jdGlvbihyZXMpIHsKICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwICYmIHJlcy5i
b2R5ICYmIHJlcy5ib2R5LnRva2VuKSB7CiAgICAgICAgICAgIFouemVsbExvY2sudG9rZW4gPSBy
ZXMuYm9keS50b2tlbjsKICAgICAgICAgICAgWi56ZWxsTG9jay5kYXR1bSA9IGRhdHVtOwogICAg
ICAgICAgICBaLnplbGxMb2NrLnBlcnNvbklkID0gcGlkOwogICAgICAgICAgICBsb2NrSGVhcnRi
ZWF0U3RhcnRlbihyZXMuYm9keS50b2tlbik7CiAgICAgICAgICAgIGVkaXRvclZpc3VlbGxPZWZm
bmVuKHplbGxlLCBkYXR1bSwgcGlkKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAg
ICAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDIzICYmIHJlcy5ib2R5KSB7CiAgICAgICAgICAgIHZh
ciBiID0gcmVzLmJvZHk7CiAgICAgICAgICAgIGlmIChiLmthbm5Gb3JjZSkgewogICAgICAgICAg
ICAgICAgYmVzdGFldGlnZW4oCiAgICAgICAgICAgICAgICAgICAgKGIuc3BlcnJlciB8fCAnSmVt
YW5kJykgKyAnIGJlYXJiZWl0ZXQgZGllc2UgWmVsbGUgZ2VyYWRlLlxuRWRpdC1Mb2NrIHVlYmVy
bmVobWVuPycsCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGxvY2taZWxsZUZvcmNlKGRhdHVtLCBwaWQpLnRoZW4oZnVuY3Rpb24ocjIpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyMi5zdGF0dXMgPT09IDIwMCAmJiByMi5i
b2R5ICYmIHIyLmJvZHkudG9rZW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBa
LnplbGxMb2NrLnRva2VuID0gcjIuYm9keS50b2tlbjsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBaLnplbGxMb2NrLmRhdHVtID0gZGF0dW07CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWi56ZWxsTG9jay5wZXJzb25JZCA9IHBpZDsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2NrSGVhcnRiZWF0U3RhcnRlbihyMi5ib2R5LnRva2VuKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3JWaXN1ZWxsT2VmZm5lbih6ZWxsZSwgZGF0dW0s
IHBpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRvYXN0KCdGb3JjZS1Mb2NrIGZlaGxnZXNjaGxhZ2VuLicsICdm
ZWhsZXInKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7IHRp
dGVsOiAnRWRpdC1Mb2NrIHVlYmVybmVobWVuJywgamFUZXh0OiAnw5xiZXJuZWhtZW4nIH0KICAg
ICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0b2Fz
dChiLm1lbGR1bmcgfHwgJ1dpcmQgZ2VyYWRlIGJlYXJiZWl0ZXQuJywgJ3dhcm51bmcnKTsKICAg
ICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRvYXN0KCdM
b2NrLUFuZm9yZGVydW5nIGZlaGxnZXNjaGxhZ2VuLicsICdmZWhsZXInKTsKICAgIH0pOwp9Cgov
LyBFaWdlbnRsaWNoZXMgdmlzdWVsbGVzIE9lZmZuZW4g4oCUIGdldHJlbm50IHZvbiBlZGl0b3JP
ZWZmbmVuLCBkYW1pdCBkZXIKLy8gTG9jay1BY3F1aXJlLUZsb3cgb2JlbiBkZW4gcmVzdGxpY2hl
biBDb2RlIGxhenkgYXVmcnVmZW4ga2Fubi4KZnVuY3Rpb24gZWRpdG9yVmlzdWVsbE9lZmZuZW4o
emVsbGUsIGRhdHVtLCBwaWQpIHsKICAgIGVkaXRvci5ha3RpdiA9IHRydWU7IGVkaXRvci5kYXR1
bSA9IGRhdHVtOyBlZGl0b3IucGVyc29uSWQgPSBwaWQ7CgogICAgdmFyIGVsID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3plbGwtZWRpdG9yJyk7CiAgICB2YXIgc2VsID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2VkaXRvci1hdXN3YWhsJyk7CiAgICAvLyBJc3QtV2VydCBhdXMgZGVtIFN0
YXRlIGxlc2VuLCBOSUNIVCBhdXMgemVsbGUudGl0bGU6IGRlciBUaXRlbCBrYW5uIGVpbgogICAg
Ly8gQW56ZWlnZS1TdWZmaXggdHJhZ2VuICh6LkIuICIgW1ZFUkFOVFdPUlRMSUNIXSIgYmVpbSAx
LiB2ZXJhbnR3b3J0bGljaGVuCiAgICAvLyBER0wpLCB3b2R1cmNoIGtlaW4gPG9wdGlvbj4gbWF0
Y2h0ZSB1bmQgZGFzIERyb3Bkb3duIGZhZWxzY2hsaWNoIGF1ZgogICAgLy8gIihsZWVyKSIgc3Rh
bmQg4oCUIGdlbmF1IGJlaSBkZXIgaGFldWZpZ3N0ZW4gREdMLVplbGxlLgogICAgdmFyIGFrdFdl
cnQgPSAoWi5wbGFudW5nICYmIFoucGxhbnVuZy5laW50cmFlZ2UgJiYgWi5wbGFudW5nLmVpbnRy
YWVnZVtkYXR1bV0gJiYgWi5wbGFudW5nLmVpbnRyYWVnZVtkYXR1bV1bcGlkXSkgfHwgJyc7Cgog
ICAgdmFyIGh0bWwgPSAnPG9wdGlvbiB2YWx1ZT0iIj4obGVlcik8L29wdGlvbj4nOwogICAgLy8g
TnVyIGFrdGl2ZSBDb2RlcyB6dXIgTmV1LUVpbmdhYmUgYW5iaWV0ZW4uIERlciBha3R1ZWxsIGdl
c2V0enRlIFdlcnQKICAgIC8vIHdpcmQgYXVjaCBkYW5uIGdlemVpZ3Qgd2VubiBzZWluIENvZGUg
aW56d2lzY2hlbiBkZWFrdGl2aWVydCB3dXJkZQogICAgLy8gKHNvbnN0IGdpbmdlIGRpZSBJbmZv
IGluIGRlciBaZWxsZSB2ZXJsb3JlbikuCiAgICAoWi5hZG1pbi5zY2hpY2h0Y29kZXMgfHwgW10p
LmZvckVhY2goZnVuY3Rpb24oc2MpIHsKICAgICAgICB2YXIgYWt0aXYgPSAhZWRpdG9ySG9va3Mu
aXN0Q29kZUFrdGl2IHx8IGVkaXRvckhvb2tzLmlzdENvZGVBa3RpdihzYyk7CiAgICAgICAgaWYg
KCFha3RpdiAmJiBzYy5jb2RlICE9PSBha3RXZXJ0KSByZXR1cm47CiAgICAgICAgdmFyIHMgPSBh
a3RXZXJ0ID09PSBzYy5jb2RlID8gJyBzZWxlY3RlZCcgOiAnJzsKICAgICAgICB2YXIgc3VmZml4
ID0gIWFrdGl2ID8gJyAoaW5ha3RpdiknIDogJyc7CiAgICAgICAgaHRtbCArPSAnPG9wdGlvbiB2
YWx1ZT0iJyArIGVzY2FwZUF0dHIoc2MuY29kZSkgKyAnIicgKyBzICsgJz4nICsgZXNjYXBlSFRN
TChzYy5jb2RlKSArICcg4oCUICcgKyBlc2NhcGVIVE1MKHNjLmJlemVpY2hudW5nKSArIHN1ZmZp
eCArICc8L29wdGlvbj4nOwogICAgfSk7CiAgICBzZWwuaW5uZXJIVE1MID0gaHRtbDsKCiAgICAv
LyBLb21tZW50YXItVmVybGF1ZiByZW5kZXJuLCBFaW5nYWJlZmVsZCBpbW1lciBsZWVyIChqZWRl
IEVpbmdhYmUgaGFlbmd0CiAgICAvLyBlaW5lbiBuZXVlbiBLb21tZW50YXIgYW4gZGllIExpc3Rl
IGFuIHN0YXR0IHp1IHVlYmVyc2NocmVpYmVuKS4KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdlZGl0b3Ita29tbWVudGFyLWlucHV0JykudmFsdWUgPSAnJzsKICAgIGVkaXRvcktvbW1lbnRh
clZlcmxhdWZSZW5kZXJuKCk7CgogICAgLy8gRXhjZWwtYWVobmxpY2ggZGlyZWt0IFJFQ0hUUyBu
ZWJlbiBkZXIgWmVsbGUsIG9iZW4gYnVlbmRpZy4gI3plbGwtZWRpdG9yCiAgICAvLyBpc3QgcG9z
aXRpb246Zml4ZWQgLT4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCktVmlld3BvcnQtS29vcmRpbmF0
ZW4gcGFzc2VuCiAgICAvLyAxOjEgKGZydWVoZXIgcG9zaXRpb246YWJzb2x1dGUgLT4gZGVyIE9m
ZnNldC1QYXJlbnQgdW50ZXIgZGVyIEtvcGZsZWlzdGUKICAgIC8vIHNjaG9iIGRlbiBFZGl0b3Ig
fjIgWmVsbGVuIHp1IHRpZWYpLiBHcm9iZSBFZGl0b3ItTWFzc2UgZnVlciBkYXMKICAgIC8vIFZp
ZXdwb3J0LUNsYW1waW5nOyB3ZW5uIHJlY2h0cyBrZWluIFBsYXR6IGlzdCwgbmFjaCBsaW5rcyBr
bGFwcGVuLgogICAgdmFyIEVXID0gMjUwLCBFSCA9IDMyMDsKICAgIHZhciByZWN0ID0gemVsbGUu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICB2YXIgbGVmdCA9IHJlY3QucmlnaHQgKyAyOwog
ICAgaWYgKGxlZnQgKyBFVyA+IHdpbmRvdy5pbm5lcldpZHRoIC0gNCkgbGVmdCA9IE1hdGgubWF4
KDQsIHJlY3QubGVmdCAtIEVXIC0gMik7CiAgICB2YXIgdG9wID0gcmVjdC50b3A7CiAgICBpZiAo
dG9wICsgRUggPiB3aW5kb3cuaW5uZXJIZWlnaHQgLSA0KSB0b3AgPSBNYXRoLm1heCg0LCB3aW5k
b3cuaW5uZXJIZWlnaHQgLSBFSCAtIDQpOwogICAgZWwuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgn
OwogICAgZWwuc3R5bGUudG9wID0gdG9wICsgJ3B4JzsKICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUo
J3ZlcnN0ZWNrdCcpOwogICAgc2VsLmZvY3VzKCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JT
Y2hsaWVzc2VuKG9obmVSZWxlYXNlKSB7CiAgICBlZGl0b3IuYWt0aXYgPSBmYWxzZTsKICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd6ZWxsLWVkaXRvcicpLmNsYXNzTGlzdC5hZGQoJ3ZlcnN0
ZWNrdCcpOwogICAgbG9ja0hlYXJ0YmVhdFN0b3BwZW4oKTsKICAgIC8vIG9obmVSZWxlYXNlPXRy
dWUgd2VubiBkZXIgU2VydmVyIHVucyBtaXRnZXRlaWx0IGhhdCwgZGFzcyB1bnNlciBMb2NrCiAg
ICAvLyBzY2hvbiB3ZWcgaXN0ICh6LkIuIEZhY2hhdWZzaWNodCBoYXQgcGVyIEZvcmNlIHVlYmVy
bm9tbWVuKS4KICAgIGlmICghb2huZVJlbGVhc2UgJiYgWi56ZWxsTG9jayAmJiBaLnplbGxMb2Nr
LnRva2VuKSB7CiAgICAgICAgbG9ja1plbGxlUmVsZWFzZShaLnplbGxMb2NrLnRva2VuKTsKICAg
IH0KICAgIFouemVsbExvY2sudG9rZW4gPSBudWxsOwogICAgWi56ZWxsTG9jay5kYXR1bSA9ICcn
OwogICAgWi56ZWxsTG9jay5wZXJzb25JZCA9ICcnOwp9CgpleHBvcnQgZnVuY3Rpb24gZWRpdG9y
QXVzd2FobCh3ZXJ0KSB7CiAgICBpZiAoIWVkaXRvci5ha3RpdikgcmV0dXJuOwogICAgdmFyIGRh
dHVtID0gZWRpdG9yLmRhdHVtLCBwaWQgPSBlZGl0b3IucGVyc29uSWQ7CiAgICAvLyBRdWl0dGll
cnRlIEZ1ZWhydW5nc2tyYWZ0LVVudGVyYmVzZXR6dW5nIHdpcmQgYmVpbSBTcGVpY2hlcm4gc2Vy
dmVyc2VpdGlnIG1pdHByb3Rva29sbGllcnQKICAgIHZhciB1bnRlcmJlc2V0enVuZ1NjaGljaHQg
PSBudWxsOwoKICAgIGZ1bmN0aW9uIGZvcnRzZXR6ZW4oKSB7CiAgICAgICAgZWRpdG9yU2NobGll
c3NlbigpOwoKICAgICAgICBpZiAoIVoucGxhbnVuZy5laW50cmFlZ2UpIFoucGxhbnVuZy5laW50
cmFlZ2UgPSB7fTsKICAgICAgICBpZiAoIVoucGxhbnVuZy5laW50cmFlZ2VbZGF0dW1dKSBaLnBs
YW51bmcuZWludHJhZWdlW2RhdHVtXSA9IHt9OwogICAgICAgIC8vIFdlcnQgbWVya2VuIGRlbiBk
ZXIgQ2xpZW50IGFscyAiYWx0IiBhbm5pbW10IOKAlCBmdWVyIE9wdGltaXN0aWMtQ29uY3VycmVu
Y3kKICAgICAgICB2YXIgZXJ3YXJ0ZXQgPSBaLnBsYW51bmcuZWludHJhZWdlW2RhdHVtXVtwaWRd
IHx8ICcnOwoKICAgICAgICAvLyBTbmFwc2hvdCBkZXIgYWt0aXZlbiBGdWVocnVuZyAoVG9wLTIg
REdMcykgcHJvIGJldHJvZmZlbmVyIFNjaGljaHQKICAgICAgICAvLyBWT1IgZGVyIG9wdGltaXN0
aXNjaGVuIFVlYmVyc2NocmVpYnVuZy4gTmFjaCBlcmZvbGdyZWljaGVtIFNwZWljaGVybgogICAg
ICAgIC8vIHZlcmdsZWljaGVuIHdpciwgd2VyIG5ldSBpbiBkaWUgVG9wLTIgYXVmcnVlY2t0IOKA
lCBwcm8gQXVmcnVlY2tlcgogICAgICAgIC8vIGdyZWlmdCBkZXIgVmVyYW50d29ydHVuZ3MtVWVi
ZXJnYW5nLURpYWxvZyAoMTQtVGFnZS1GZW5zdGVyKS4KICAgICAgICB2YXIgc0FsdCA9IGZ1ZWhy
dW5nc1NjaGljaHQoZXJ3YXJ0ZXQpOwogICAgICAgIHZhciBzTmV1ID0gZnVlaHJ1bmdzU2NoaWNo
dCh3ZXJ0KTsKICAgICAgICB2YXIgZnVlaHJ1bmdWb3JoZXIgPSB7fTsKICAgICAgICBpZiAoc0Fs
dCkgICAgICAgICAgICAgICAgICBmdWVocnVuZ1ZvcmhlcltzQWx0XSA9IGFrdGl2ZUZ1ZWhydW5n
KGRhdHVtLCBzQWx0KTsKICAgICAgICBpZiAoc05ldSAmJiBzTmV1ICE9PSBzQWx0KSBmdWVocnVu
Z1ZvcmhlcltzTmV1XSA9IGFrdGl2ZUZ1ZWhydW5nKGRhdHVtLCBzTmV1KTsKCiAgICAgICAgaWYg
KHdlcnQpIFoucGxhbnVuZy5laW50cmFlZ2VbZGF0dW1dW3BpZF0gPSB3ZXJ0OwogICAgICAgIGVs
c2UgZGVsZXRlIFoucGxhbnVuZy5laW50cmFlZ2VbZGF0dW1dW3BpZF07CgogICAgICAgIHplbGxl
VmlzdWVsbEFrdHVhbGlzaWVyZW4oZGF0dW0sIHBpZCwgd2VydCk7CgogICAgICAgIC8vIE9wdGlt
aXN0aXNjaCBzb2ZvcnQgZGVuIEZ1ZWxsLUdyaWZmIGFuemVpZ2VuIOKAlCBuaWNodCBlcnN0IG5h
Y2gKICAgICAgICAvLyBTZXJ2ZXItQW50d29ydC4gQXVmIGxhbmdzYW1lbiBOZXR6d2Vyay1TaGFy
ZXMgc3BhcnQgZGFzIHNwdWVyYmFyCiAgICAgICAgLy8gd2Focmdlbm9tbWVuZSBMYXRlbnouIEJl
aSBTZXJ2ZXItRmVobGVyL0tvbmZsaWt0IGJsZW5kZW4gd2lyIGRlbgogICAgICAgIC8vIEdyaWZm
IGluIGRlbiBqZXdlaWxpZ2VuIFp3ZWlnIHdpZWRlciBhdXMgKHNpZWhlIHVudGVuKS4KICAgICAg
ICBmdWVsbEhhbmRsZVplaWdlbih7IGRhdHVtOiBkYXR1bSwgcGlkOiBwaWQsIHdlcnQ6IHdlcnQg
fSk7CgogICAgICAgIC8vIFZPUlpJRUhFTiB2b3IgZGFzIGZldGNoOiBWZXJhbnR3b3J0dW5ncy1V
ZWJlcmdhbmctTW9kYWwgc29mb3J0CiAgICAgICAgLy8gemVpZ2VuLCBzb2JhbGQgZGllIG9wdGlt
aXN0aXNjaGUgQWVuZGVydW5nIGluIFoucGxhbnVuZy5laW50cmFlZ2UKICAgICAgICAvLyBzdGVo
dC4gQXVmIGRlbSBCZWhvZXJkZW4tUEMgKGk1LTg1MDAsIE9mZmljZSBpbSBIaW50ZXJncnVuZCkK
ICAgICAgICAvLyBzaW5kIGRpZSAxMDAtNTAwIG1zIFNlcnZlci1Sb3VuZHRyaXAgZGVyIGdyb2Vz
c3RlIHZlcmJsZWliZW5kZQogICAgICAgIC8vIExhZy1GYWt0b3Ig4oCUIGRlciBVc2VyIHNvbGwg
ZGllIEtvbnNlcXVlbnogc2VpbmVyIEFrdGlvbiBkaXJla3QKICAgICAgICAvLyBzZWhlbiwgbmlj
aHQgZXJzdCBuYWNoIGRlbSBOZXR6d2Vyay1Ib3AuIEJlaSA0MDkvRXJyb3Igcm9sbGVuCiAgICAg
ICAgLy8gd2lyIGRlbiBNb2RhbCB1bnRlbiB6dXNhbW1lbiBtaXQgZGVyIEFlbmRlcnVuZyB6dXJ1
ZWNrLgogICAgICAgIHZhciBvcHRpbWlzdGlzY2hlck1vZGFsR2V6ZWlndCA9IGZhbHNlOwogICAg
ICAgIC8vICJFaW5nZXNwcnVuZ2VuIi1TdGF0aXN0aWstRXZlbnRzIHdlcmRlbiBoaWVyIG51ciBH
RVNBTU1FTFQgdW5kIGVyc3QKICAgICAgICAvLyBpbSBFcmZvbGdzLVp3ZWlnIGRlcyBaZWxsLVBl
cnNpc3RzIGFiZ2VzZXR6dC4gRnJ1ZWhlciBmZXVlcnRlbiBzaWUKICAgICAgICAvLyBWT1IgZGVt
IGZldGNoIOKAlCBiZWkgZWluZW0gNDA5IChLb25mbGlrdC9VbnRlcmJlc2V0enVuZykgd3VyZGUg
ZGllCiAgICAgICAgLy8gWmVsbGUgenVydWVja2dlcm9sbHQsIGRhcyBMb2didWNoLUV2ZW50ICJh
dWZnZXJ1ZWNrdCIgYmxpZWIgYWJlcgogICAgICAgIC8vIHN0ZWhlbiB1bmQgZGllIFN0YXRpc3Rp
ayB6YWVobHRlIGVpbmVuIEVpbnNwcmluZ2VyLCBkZW4gZXMgbmllIGdhYi4KICAgICAgICB2YXIg
YXVmcnVlY2tlckV2ZW50cyA9IFtdOwogICAgICAgIC8vIFZlcmFudHdvcnR1bmdzLUJlbmFjaHJp
Y2h0aWd1bmdlbiB3ZXJkZW4genUgRUlORVIgU2FtbWVsLU1haWwKICAgICAgICAvLyBnZWJ1ZW5k
ZWx0OiBlaW4gRGlhbG9nLCBlaW5lIE1haWwgYW4gQUxMRSBCZXRyb2ZmZW5lbiAoQXVmcnVlY2tl
cgogICAgICAgIC8vIGF1c3NlciBTZWxic3RwbGFuZXIgKyBWZXJkcmFlbmd0ZSkuIEZydWVoZXI6
IHBybyBQZXJzb24gZWluIGVpZ2VuZXIKICAgICAgICAvLyBEaWFsb2cgKyBlaW5lIGVpZ2VuZSBN
YWlsIC0+IHp1IHZpZWxlIFNjaHJpdHRlLCBkZXIgVXNlciBzdGllZyBhdXMuCiAgICAgICAgdmFy
IHdlY2hzZWwgPSB7IGRhdHVtOiBkYXR1bSwgcHJpbWFlclNjaGljaHQ6IG51bGwsIGVpbnRyYWVn
ZTogW10sIGVtcGZhZW5nZXI6IFtdLCBjY1BhcnRuZXJFbWFpbHM6IFtdIH07CiAgICAgICAgdmFy
IGVtcGZTZWVuID0ge307CiAgICAgICAgZnVuY3Rpb24gd2VjaHNlbEVtcGZhZW5nZXIocGVyc29u
KSB7CiAgICAgICAgICAgIGlmICghcGVyc29uKSByZXR1cm47CiAgICAgICAgICAgIHZhciBtID0g
KHBlcnNvbi5lbWFpbCB8fCAnJykudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgLy8gT2huZSBF
LU1haWwtQWRyZXNzZSBrZWluIEFuLUVtcGZhZW5nZXIgKGltIEJsb2NrIGVyc2NoZWludCBkaWUK
ICAgICAgICAgICAgLy8gUGVyc29uIHRyb3R6ZGVtLCBudXIgYWxzIEtvbnRleHQgZnVlciBkaWUg
YW5kZXJlbikuCiAgICAgICAgICAgIGlmICghbSB8fCBlbXBmU2VlblttXSkgcmV0dXJuOwogICAg
ICAgICAgICBlbXBmU2VlblttXSA9IHRydWU7CiAgICAgICAgICAgIHdlY2hzZWwuZW1wZmFlbmdl
ci5wdXNoKHsgZW1haWw6IHBlcnNvbi5lbWFpbCwgcGVyc29uOiBwZXJzb24gfSk7CiAgICAgICAg
fQogICAgICAgIGlmIChkYXR1bUluVmVyYmluZGxpY2hrZWl0KGRhdHVtKSkgewogICAgICAgICAg
ICBPYmplY3Qua2V5cyhmdWVocnVuZ1ZvcmhlcikuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAg
ICAgICAgICAgICB2YXIgdm9yaGVyICA9IGZ1ZWhydW5nVm9yaGVyW3NdOwogICAgICAgICAgICAg
ICAgdmFyIG5hY2hoZXIgPSBha3RpdmVGdWVocnVuZyhkYXR1bSwgcyk7CiAgICAgICAgICAgICAg
ICB2YXIgdm9yaGVySWRzICA9IHZvcmhlci5tYXAoZnVuY3Rpb24ocCkgeyByZXR1cm4gcC5pZDsg
fSk7CiAgICAgICAgICAgICAgICB2YXIgbmFjaGhlcklkcyA9IG5hY2hoZXIubWFwKGZ1bmN0aW9u
KHApIHsgcmV0dXJuIHAuaWQ7IH0pOwogICAgICAgICAgICAgICAgdmFyIGF1ZnJ1ZWNrZXIgPSBu
YWNoaGVyLmZpbHRlcihmdW5jdGlvbihwKSB7IHJldHVybiB2b3JoZXJJZHMuaW5kZXhPZihwLmlk
KSA8IDA7IH0pOwogICAgICAgICAgICAgICAgdmFyIGF1c2dlc2NoaWVkZW4gPSB2b3JoZXIuZmls
dGVyKGZ1bmN0aW9uKHApIHsgcmV0dXJuIG5hY2hoZXJJZHMuaW5kZXhPZihwLmlkKSA8IDA7IH0p
OwogICAgICAgICAgICAgICAgaWYgKChhdWZydWVja2VyLmxlbmd0aCB8fCBhdXNnZXNjaGllZGVu
Lmxlbmd0aCkgJiYgIXdlY2hzZWwucHJpbWFlclNjaGljaHQpIHdlY2hzZWwucHJpbWFlclNjaGlj
aHQgPSBzOwogICAgICAgICAgICAgICAgYXVmcnVlY2tlci5mb3JFYWNoKGZ1bmN0aW9uKG5ldWVy
KSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHN0dWZlID0gKG5hY2hoZXJbMF0gJiYgbmFjaGhl
clswXS5pZCA9PT0gbmV1ZXIuaWQpID8gMSA6IDI7CiAgICAgICAgICAgICAgICAgICAgdmFyIHBh
cnRuZXIgPSBuYWNoaGVyLmZpbmQoZnVuY3Rpb24ocCkgeyByZXR1cm4gcC5pZCAhPT0gbmV1ZXIu
aWQ7IH0pIHx8IG51bGw7CiAgICAgICAgICAgICAgICAgICAgdmFyIGFsdGVyICAgPSBhdXNnZXNj
aGllZGVuWzBdIHx8IG51bGw7CiAgICAgICAgICAgICAgICAgICAgLy8gQXVmcnVlY2stQmV3ZWd1
bmcgc3RlaHQgSU1NRVIgaW0gQmxvY2sgKGF1Y2ggYmVpIFNlbGJzdC0KICAgICAgICAgICAgICAg
ICAgICAvLyBwbGFudW5nKSDigJQgZGFtaXQgUGFydG5lci9WZXJkcmFlbmd0ZSBzZWhlbiwgd2Vy
IHVlYmVybmltbXQuCiAgICAgICAgICAgICAgICAgICAgd2VjaHNlbC5laW50cmFlZ2UucHVzaCh7
IGFydDogJ2F1ZicsIHNjaGljaHRMZXR0ZXI6IHMsIHBlcnNvbjogbmV1ZXIsIHN0dWZlOiBzdHVm
ZSwgZ2VnZW46IGFsdGVyIH0pOwogICAgICAgICAgICAgICAgICAgIC8vIFNlbGJzdHBsYW51bmc6
IHBsYW50IHNpY2ggZGVyIGVpbmdlbG9nZ3RlIE51dHplciBTRUxCU1QgaW4KICAgICAgICAgICAg
ICAgICAgICAvLyBkaWUgVmVyYW50d29ydHVuZywgYmVrb21tdCBlciBLRUlORSBNYWlsIGFuIHNp
Y2ggc2VsYnN0IOKAlAogICAgICAgICAgICAgICAgICAgIC8vIGVyIGhhdCBlcyBqYSBnZXJhZGUg
Z2V0YW4uIFZlcmRyYWVuZ3RlIHdlcmRlbiAodW50ZW4pIGltbWVyCiAgICAgICAgICAgICAgICAg
ICAgLy8gaW5mb3JtaWVydC4KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsYnN0Z2VwbGFudCA9
IChaLm1laW5lUGVyc29uSWQgIT0gbnVsbCAmJiBTdHJpbmcobmV1ZXIuaWQpID09PSBTdHJpbmco
Wi5tZWluZVBlcnNvbklkKSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFzZWxic3RnZXBsYW50
KSB3ZWNoc2VsRW1wZmFlbmdlcihuZXVlcik7CiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnRu
ZXIgJiYgcGFydG5lci5lbWFpbCAmJiB3ZWNoc2VsLmNjUGFydG5lckVtYWlscy5pbmRleE9mKHBh
cnRuZXIuZW1haWwpIDwgMCkgewogICAgICAgICAgICAgICAgICAgICAgICB3ZWNoc2VsLmNjUGFy
dG5lckVtYWlscy5wdXNoKHBhcnRuZXIuZW1haWwpOwogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAvLyBTdGF0aXN0aWstQ2FwdHVyZSAoU2NoaWNodHZlcnRlaWx1bmcg
LT4gIkVpbmdlc3BydW5nZW4iKToKICAgICAgICAgICAgICAgICAgICAvLyBKZWRlciBBdWZydWVj
a2VyIGluIGRlciBWZXJiaW5kbGljaGtlaXQgaXN0IGVpbiAiRWluLQogICAgICAgICAgICAgICAg
ICAgIC8vIHNwcmluZ2VyIi4gUGVyc2lzdGllcmVuIHdpciBhc3luY2hyb24gaW0gTG9nYnVjaCwg
ZGFtaXQKICAgICAgICAgICAgICAgICAgICAvLyBkZXIgU2VydmVyLUFnZ3JlZ2F0IGRpZSBaYWhs
IHBybyBQZXJzb24gemFlaGxlbiBrYW5uLgogICAgICAgICAgICAgICAgICAgIHZhciB2b3JXZXJ0
ID0gKG5ldWVyLmlkID09PSBwaWQpID8gZXJ3YXJ0ZXQgOiAoCiAgICAgICAgICAgICAgICAgICAg
ICAgICgoWi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7fSlbZGF0dW1dIHx8IHt9KVtTdHJpbmcobmV1
ZXIuaWQpXSB8fCAnJwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAg
YXVmcnVlY2tlckV2ZW50cy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uSWQ6
IG5ldWVyLmlkLAogICAgICAgICAgICAgICAgICAgICAgICBkYXR1bTogZGF0dW0sCiAgICAgICAg
ICAgICAgICAgICAgICAgIHNjaGljaHQ6IHMsCiAgICAgICAgICAgICAgICAgICAgICAgIHN0dWZl
OiBzdHVmZSwKICAgICAgICAgICAgICAgICAgICAgICAgdm9yaGVyV2VydDogdm9yV2VydCwKICAg
ICAgICAgICAgICAgICAgICAgICAgYXVzbG9lc2VyUGVyc29uSWQ6IHBpZAogICAgICAgICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAvLyBWZXJkcmFl
bmd0ZSAoYXVzIGRlciBUb3AtMiBnZWZhbGxlbikgd2VyZGVuIGZsZXhpYmxlciAtPiBpbW1lcgog
ICAgICAgICAgICAgICAgLy8gbWl0IGluIGRpZSBTYW1tZWwtTWFpbC4gbmFjaGZvbGdlciA9IHdl
ciBkaWUgVmVyYW50d29ydHVuZwogICAgICAgICAgICAgICAgLy8gdWViZXJub21tZW4gaGF0IChB
dWZydWVja2VyLCBzb25zdCBuZXVlIE5yLiAxKS4KICAgICAgICAgICAgICAgIGF1c2dlc2NoaWVk
ZW4uZm9yRWFjaChmdW5jdGlvbih3ZWcpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgc3R1ZmVX
ZWcgPSAodm9yaGVyWzBdICYmIHZvcmhlclswXS5pZCA9PT0gd2VnLmlkKSA/IDEgOiAyOwogICAg
ICAgICAgICAgICAgICAgIHZhciBuYWNoZm9sZ2VyID0gYXVmcnVlY2tlclswXSB8fCBuYWNoaGVy
WzBdIHx8IG51bGw7CiAgICAgICAgICAgICAgICAgICAgd2VjaHNlbC5laW50cmFlZ2UucHVzaCh7
IGFydDogJ2ZyZWknLCBzY2hpY2h0TGV0dGVyOiBzLCBwZXJzb246IHdlZywgc3R1ZmU6IHN0dWZl
V2VnLCBnZWdlbjogbmFjaGZvbGdlciB9KTsKICAgICAgICAgICAgICAgICAgICB3ZWNoc2VsRW1w
ZmFlbmdlcih3ZWcpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAg
IH0KICAgICAgICBpZiAoIXdlY2hzZWwucHJpbWFlclNjaGljaHQpIHdlY2hzZWwucHJpbWFlclNj
aGljaHQgPSAnRic7CiAgICAgICAgb3B0aW1pc3Rpc2NoZXJNb2RhbEdlemVpZ3QgPSB3ZWNoc2Vs
LmVtcGZhZW5nZXIubGVuZ3RoID4gMDsKICAgICAgICBpZiAob3B0aW1pc3Rpc2NoZXJNb2RhbEdl
emVpZ3QpIHZlcmFudHdvcnR1bmdzV2VjaHNlbERpYWxvZ1plaWdlbih3ZWNoc2VsKTsKCiAgICAg
ICAgLy8gTmljaHQgYXBpUG9zdCBiZW51dHplbiDigJQgd2lyIG11ZXNzZW4gNDA5IHNlcGFyYXQg
YmVoYW5kZWxuCiAgICAgICAgZmV0Y2goJy9hcGkvcGxhbnVuZy96ZWxsZScsIHsKICAgICAgICAg
ICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6
ICdhcHBsaWNhdGlvbi9qc29uJyB9LAogICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7
CiAgICAgICAgICAgICAgICBkYXR1bTogZGF0dW0sIHBlcnNvbklkOiBwaWQsIHdlcnQ6IHdlcnQs
IGVyd2FydGV0ZXJBbHRlcldlcnQ6IGVyd2FydGV0LAogICAgICAgICAgICAgICAgdW50ZXJiZXNl
dHp1bmdTY2hpY2h0OiB1bnRlcmJlc2V0enVuZ1NjaGljaHQKICAgICAgICAgICAgfSkKICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgcmV0dXJuIHIuanNvbigpLnRoZW4o
ZnVuY3Rpb24oYm9keSkgeyByZXR1cm4geyBzdGF0dXM6IHIuc3RhdHVzLCBib2R5OiBib2R5IH07
IH0pOwogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVzKSB7CiAgICAgICAgICAgIGlmIChyZXMu
c3RhdHVzID09PSA0MDkgJiYgcmVzLmJvZHkgJiYgcmVzLmJvZHkua29uZmxpa3RUeXAgPT09ICd1
bnRlcmJlc2V0enVuZycpIHsKICAgICAgICAgICAgICAgIC8vIFNlcnZlciBoYXQgZWluZSBGdWVo
cnVuZ3MtVW50ZXJiZXNldHp1bmcgYW5oYW5kIGRlcyBBS1RVRUxMRU4KICAgICAgICAgICAgICAg
IC8vIHBsYW51bmcuanNvbi1TdGFuZHMgZXJrYW5udCwgb2J3b2hsIGRlciBDbGllbnQgc2llIG5p
Y2h0IGdld2FybnQKICAgICAgICAgICAgICAgIC8vIGhhdCAodHlwaXNjaDogZWluIGFuZGVyZXIg
VXNlciBoYXQgemVpdGdsZWljaCBnZXNwZWljaGVydCkuCiAgICAgICAgICAgICAgICAvLyBMb2th
bGUgQWVuZGVydW5nIHp1cnVlY2tyb2xsZW4gdW5kIEJlc3RhZXRpZ3VuZ3MtRGlhbG9nIHplaWdl
bi4KICAgICAgICAgICAgICAgIHZhciBzTGV0dGVyID0gcmVzLmJvZHkuc2NoaWNodDsKICAgICAg
ICAgICAgICAgIHZhciBzTmFtZSA9IHsgRjogJ0Zyw7xoc2NoaWNodCcsIFM6ICdTcMOkdHNjaGlj
aHQnLCBOOiAnTmFjaHRzY2hpY2h0JyB9W3NMZXR0ZXJdIHx8IHNMZXR0ZXI7CiAgICAgICAgICAg
ICAgICB2YXIgYWt0dWVsbENvdW50ID0gcmVzLmJvZHkuYWt0dWVsbENvdW50IHx8IDA7CiAgICAg
ICAgICAgICAgICAvLyBMb2thbGUgb3B0aW1pc3Rpc2NoZSBBZW5kZXJ1bmcgcnVlY2tnYWVuZ2ln
IOKAlCB3aXIgemVpZ2VuIHdpZWRlciBkZW4gQXVzZ2FuZ3N6dXN0YW5kCiAgICAgICAgICAgICAg
ICBpZiAoZXJ3YXJ0ZXQpIFoucGxhbnVuZy5laW50cmFlZ2VbZGF0dW1dW3BpZF0gPSBlcndhcnRl
dDsKICAgICAgICAgICAgICAgIGVsc2UgZGVsZXRlIFoucGxhbnVuZy5laW50cmFlZ2VbZGF0dW1d
W3BpZF07CiAgICAgICAgICAgICAgICB6ZWxsZVZpc3VlbGxBa3R1YWxpc2llcmVuKGRhdHVtLCBw
aWQsIGVyd2FydGV0KTsKICAgICAgICAgICAgICAgIGZ1ZWxsSGFuZGxlVmVyc3RlY2tlbigpOwog
ICAgICAgICAgICAgICAgLy8gT3B0aW1pc3Rpc2NoIGdlemVpZ3RlbiBWZXJhbnR3b3J0dW5ncy1N
b2RhbCBzY2hsaWVzc2VuLAogICAgICAgICAgICAgICAgLy8gYmV2b3Igd2lyIGRlbiBVbnRlcmJl
c2V0enVuZ3MtQ29uZmlybS1EaWFsb2cgc3RhY2tlbgogICAgICAgICAgICAgICAgaWYgKG9wdGlt
aXN0aXNjaGVyTW9kYWxHZXplaWd0KSB7IG1vZGFsU2NobGllc3Nlbih0cnVlKTsgfQogICAgICAg
ICAgICAgICAgdmFyIHR4dCA9ICdMYXV0IGFrdHVlbGxlbSBTZXJ2ZXItU3RhbmQgc2luZCBudXIg
bm9jaCAnICsgYWt0dWVsbENvdW50ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAnIEbDvGhy
dW5nc2tyw6RmdGUgZsO8ciBkaWUgJyArIHNOYW1lICsgJyBhbSAnICsgZGF0dW1Gb3JtYXRERShk
YXR1bSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICcgZWluZ2VwbGFudCAoamVtYW5kIGFu
ZGVyZXMgaGF0IHp3aXNjaGVuemVpdGxpY2ggZ2VzcGVpY2hlcnQpLlxuJyArCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ05hY2ggZGllc2VyIMOEbmRlcnVuZyBhdWYgIicgKyAod2VydCB8fCAn
ZnJlaScpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAnIiBibGVpYmVuIG51ciBub2NoICcg
KyAoYWt0dWVsbENvdW50IC0gMSkgKyAnIOKAlCBNaW5kZXN0YmVzZXR6dW5nIHNpbmQgMi5cblxu
JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1Ryb3R6ZGVtIHNwZWljaGVybj8nOwogICAg
ICAgICAgICAgICAgYmVzdGFldGlnZW4odHh0LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAg
ICAgICB1bnRlcmJlc2V0enVuZ1NjaGljaHQgPSBzTGV0dGVyOwogICAgICAgICAgICAgICAgICAg
IGZvcnRzZXR6ZW4oKTsgLy8gcmV0cnkgbWl0IGdlc2V0enRlbSBGbGFnIC0+IFNlcnZlciB1ZWJl
cnNwcmluZ3QgZGVuIENoZWNrCiAgICAgICAgICAgICAgICB9LCB7IHRpdGVsOiAnVW50ZXJiZXNl
dHp1bmcgYmVzdMOkdGlnZW4nLCBqYVRleHQ6ICdUcm90emRlbSBzcGVpY2hlcm4nIH0pOwogICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXMuc3Rh
dHVzID09PSA0MDkpIHsKICAgICAgICAgICAgICAgIC8vIEtsYXNzaXNjaGVyIE9wdGltaXN0aWMt
Q29uY3VycmVuY3ktS29uZmxpa3QKICAgICAgICAgICAgICAgIHZhciBha3R1ZWxsID0gcmVzLmJv
ZHkuYWt0dWVsbGVyV2VydCB8fCAnJzsKICAgICAgICAgICAgICAgIGlmIChha3R1ZWxsKSBaLnBs
YW51bmcuZWludHJhZWdlW2RhdHVtXVtwaWRdID0gYWt0dWVsbDsKICAgICAgICAgICAgICAgIGVs
c2UgZGVsZXRlIFoucGxhbnVuZy5laW50cmFlZ2VbZGF0dW1dW3BpZF07CiAgICAgICAgICAgICAg
ICB6ZWxsZVZpc3VlbGxBa3R1YWxpc2llcmVuKGRhdHVtLCBwaWQsIGFrdHVlbGwpOwogICAgICAg
ICAgICAgICAgZnVlbGxIYW5kbGVWZXJzdGVja2VuKCk7CiAgICAgICAgICAgICAgICBpZiAob3B0
aW1pc3Rpc2NoZXJNb2RhbEdlemVpZ3QpIHsgbW9kYWxTY2hsaWVzc2VuKHRydWUpOyB9CiAgICAg
ICAgICAgICAgICB0b2FzdCgnS29uZmxpa3Q6IERpZXNlIFplbGxlIHd1cmRlIGluendpc2NoZW4g
dm9uIGplbWFuZCBhbmRlcmVtIGF1ZiAiJyArIChha3R1ZWxsIHx8ICdsZWVyJykgKyAnIiBnZXNl
dHp0LiBEZWluZSDDhG5kZXJ1bmcgd3VyZGUgbmljaHQgw7xiZXJub21tZW4uJywgJ3dhcm51bmcn
KTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAo
cmVzLnN0YXR1cyA+PSA0MDApIHsKICAgICAgICAgICAgICAgIGZ1ZWxsSGFuZGxlVmVyc3RlY2tl
bigpOwogICAgICAgICAgICAgICAgaWYgKG9wdGltaXN0aXNjaGVyTW9kYWxHZXplaWd0KSB7IG1v
ZGFsU2NobGllc3Nlbih0cnVlKTsgfQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJl
cy5ib2R5LmZlaGxlciB8fCAoJ0hUVFAgJyArIHJlcy5zdGF0dXMpKTsKICAgICAgICAgICAgfQog
ICAgICAgICAgICB0b2FzdCgnR2VzcGVpY2hlcnQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgIC8v
IEZ1ZWxsLUdyaWZmIGJlcmVpdHMgb3B0aW1pc3Rpc2NoIGVpbmdlYmxlbmRldCDigJQgaGllciBu
aWNodHMgbWVociB6dSB0dW4uCiAgICAgICAgICAgIC8vIFZlcmFudHdvcnR1bmdzLU1vZGFsIHd1
cmRlIGJlcmVpdHMgVk9SIGRlbSBmZXRjaCBvcHRpbWlzdGlzY2gKICAgICAgICAgICAgLy8gZ2V6
ZWlndCAoc2llaGUgb2Jlbikg4oCUIGtlaW4gUmUtWmVpZ2VuIGhpZXIgbm9ldGlnLgoKICAgICAg
ICAgICAgLy8gSkVUWlQgKG5hY2ggZXJmb2xncmVpY2hlbSBQZXJzaXN0KSBkaWUgIkVpbmdlc3By
dW5nZW4iLUV2ZW50cyBpbnMKICAgICAgICAgICAgLy8gTG9nYnVjaC9TdGF0aXN0aWsgc2NocmVp
YmVuIOKAlCBuaWUgYmVpIDQwOS9GZWhsZXIgKGtlaW4gUGhhbnRvbSkuCiAgICAgICAgICAgIGF1
ZnJ1ZWNrZXJFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldikgewogICAgICAgICAgICAgICAgYXBp
UG9zdCgnL2FwaS92ZXJhbnR3b3J0dW5nL2F1ZmdlcnVlY2t0JywgZXYpLmNhdGNoKGZ1bmN0aW9u
KCkgeyAvKiBzaWxlbnQgKi8gfSk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gRm9s
Z2UtQWt0aW9uZW4gKFRvYXN0cywgS3JhbmttZWxkdW5ncy1UcmlnZ2VyLCBMaXZlLVJlcmVuZGVy
IGRlcgogICAgICAgICAgICAvLyBCZXNldHp1bmdza29udHJvbGxlKSBkZWZlcnJlbiB3aXIgaW4g
ZGVuIG5hZWNoc3RlbiBUaWNrLiBEYW1pdAogICAgICAgICAgICAvLyBoYXQgZGVyIEJyb3dzZXIg
WmVpdCwgZGVuIFZlcmFudHdvcnR1bmdzLU1vZGFsIHp1IHJlbmRlcm4sIGJldm9yCiAgICAgICAg
ICAgIC8vIHRldXJlIEJlcmVjaG51bmdlbiBkZW4gSlMtVGhyZWFkIGJsb2NraWVyZW4uCiAgICAg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAvLyBLcmFua21l
bGR1bmcgKGtyL0t1cikgZXJ6ZXVndCBzZWl0IFBoYXNlIDQgKDIwMjYtMDUtMjApIGVpbmVuCiAg
ICAgICAgICAgICAgICAvLyBTZXJ2ZXItc2VpdGlnZW4gSW4tQXBwLUhpbndlaXMgc3RhdHQgZWlu
ZXMgbWFpbHRvLVBvcHVwcy4gRGVyCiAgICAgICAgICAgICAgICAvLyBDbGllbnQgbXVzcyBuaWNo
dHMgbWVociB0dW4g4oCUIEJhbm5lcitCYWRnZSBlcnNjaGVpbmVuIGJlaW0KICAgICAgICAgICAg
ICAgIC8vIG5hZWNoc3RlbiBTeW5jLVdvcmtlci1UaWNrIGZ1ZXIgU1UgKyBHZXNhbXR2ZXJhbnR3
b3J0bGljaGUuCgogICAgICAgICAgICAgICAgdmFyIHN0ID0gc3RhZXJrZUJlcmVjaG5lbihkYXR1
bSk7CiAgICAgICAgICAgICAgICBpZiAoIXN0Lm9rKSB7CiAgICAgICAgICAgICAgICAgICAgdmFy
IGRlZml6aXQgPSBbXTsKICAgICAgICAgICAgICAgICAgICBpZiAoc3QuZiA8IDIpIGRlZml6aXQu
cHVzaCgnRnLDvGggKCcgKyBzdC5mICsgJy8yKScpOwogICAgICAgICAgICAgICAgICAgIGlmIChz
dC5zIDwgMikgZGVmaXppdC5wdXNoKCdTcMOkdCAoJyArIHN0LnMgKyAnLzIpJyk7CiAgICAgICAg
ICAgICAgICAgICAgaWYgKHN0Lm4gPCAyKSBkZWZpeml0LnB1c2goJ05hY2h0ICgnICsgc3QubiAr
ICcvMiknKTsKICAgICAgICAgICAgICAgICAgICB0b2FzdCgnVW50ZXJiZXNldHp0IGFtICcgKyBk
YXR1bUZvcm1hdERFKGRhdHVtKSArICc6ICcgKyBkZWZpeml0LmpvaW4oJywgJyksICd3YXJudW5n
Jyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBMaXZlLVJlZnJlc2ggZGVy
IEJlc2V0enVuZ3Nrb250cm9sbGUsIGZhbGxzIHNpY2h0YmFyLiBTb25zdAogICAgICAgICAgICAg
ICAgLy8gcmVhZ2llcnQgZGllIEFuemVpZ2UgZXJzdCBiZWltIG5hZWNoc3RlbiBUYWItV2VjaHNl
bC4KICAgICAgICAgICAgICAgIC8vIERlbHRhLVVwZGF0ZSBzdGF0dCB2b2xsZXIgUmVuZGVyOiBu
dXIgZGllIEVJTkUgYmV0cm9mZmVuZQogICAgICAgICAgICAgICAgLy8gS2FsZW5kZXItS2FjaGVs
ICsgZGllIDMgS1BJLVphaGxlbiB3ZXJkZW4gZ2VwYXRjaHQg4oCUIHNwYXJ0CiAgICAgICAgICAg
ICAgICAvLyAzMC0xMDAgbXMgcHJvIEVkaXQgYXVmIGRlbSBCZWhvZXJkZW4tUEMuCiAgICAgICAg
ICAgICAgICB2YXIgYmtFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbnNpY2h0LWJlc2V0
enVuZycpOwogICAgICAgICAgICAgICAgaWYgKGJrRWwgJiYgIWJrRWwuY2xhc3NMaXN0LmNvbnRh
aW5zKCd2ZXJzdGVja3QnKSAmJiBaLnJlY2h0ZSAmJiBaLnJlY2h0ZS5pc3RHZXNhbXR2ZXJhbnR3
b3J0bGljaCkgewogICAgICAgICAgICAgICAgICAgIGlmIChlZGl0b3JIb29rcy5iZXNldHp1bmdz
a29udHJvbGxlVGFnVXBkYXRlbikgZWRpdG9ySG9va3MuYmVzZXR6dW5nc2tvbnRyb2xsZVRhZ1Vw
ZGF0ZW4oZGF0dW0pOwogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVkaXRvckhvb2tzLmJl
c2V0enVuZ3Nrb250cm9sbGVSZW5kZXJuKSBlZGl0b3JIb29rcy5iZXNldHp1bmdza29udHJvbGxl
UmVuZGVybigpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAwKTsKICAgICAgICB9
KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGZ1ZWxsSGFuZGxlVmVyc3RlY2tlbigp
OwogICAgICAgICAgICBpZiAob3B0aW1pc3Rpc2NoZXJNb2RhbEdlemVpZ3QpIHsgbW9kYWxTY2hs
aWVzc2VuKHRydWUpOyB9CiAgICAgICAgICAgIHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2Us
ICdmZWhsZXInKTsKICAgICAgICB9KTsKICAgIH0KCiAgICAvLyBSdWhlemVpdGVuLVByw7xmdW5n
IFZPUiBkZW0gU3BlaWNoZXJuCiAgICBpZiAod2VydCAmJiBlZGl0b3JIb29rcy5mZWF0dXJlSXN0
QWt0aXYgJiYgZWRpdG9ySG9va3MuZmVhdHVyZUlzdEFrdGl2KCdydWhlemVpdFBydWVmdW5nJykp
IHsKICAgICAgICB2YXIgcnVoZVdhcm4gPSBydWhlemVpdFBydWVmZW4oZGF0dW0sIHBpZCwgd2Vy
dCk7CiAgICAgICAgaWYgKHJ1aGVXYXJuKSB7CiAgICAgICAgICAgIHZhciBwZXJzb24gPSBaLnBl
cnNvbmVuLmZpbmQoZnVuY3Rpb24ocCkgeyByZXR1cm4gU3RyaW5nKHAuaWQpID09PSBwaWQ7IH0p
OwogICAgICAgICAgICB2YXIgbmFtZSA9IHBlcnNvbiA/IHBlcnNvbi5uYW1lIDogJ1BlcnNvbiAn
ICsgcGlkOwogICAgICAgICAgICBiZXN0YWV0aWdlbignUnVoZXplaXQtV2FybnVuZyBmw7xyICcg
KyBuYW1lICsgJzpcblxuJyArIHJ1aGVXYXJuLmpvaW4oJ1xuJykgKyAnXG5cblRyb3R6ZGVtIHp1
d2Vpc2VuPycsIHBydWVmZUZ1ZWhydW5nc1VuZFNwZWljaGVybiwgeyB0aXRlbDogJ1J1aGV6ZWl0
LVdhcm51bmcnLCBqYVRleHQ6ICdUcm90emRlbSB6dXdlaXNlbicgfSk7CiAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICB9CiAgICB9CgogICAgcHJ1ZWZlRnVlaHJ1bmdzVW5kU3BlaWNoZXJuKCk7
CgogICAgZnVuY3Rpb24gcHJ1ZWZlRnVlaHJ1bmdzVW5kU3BlaWNoZXJuKCkgewogICAgICAgIC8v
IEZ1ZWhydW5nc2tyYWZ0LVVudGVyYmVzZXR6dW5nIHBydWVmZW4KICAgICAgICB2YXIgYWx0ZXJX
ZXJ0ID0gKChaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9KVtkYXR1bV0gfHwge30pW3BpZF0gfHwg
Jyc7CiAgICAgICAgdmFyIHNjaGljaHQgPSBmdWVocnVuZ3NVbnRlcmJlc2V0enVuZ1BydWVmZW4o
ZGF0dW0sIGFsdGVyV2VydCwgd2VydCk7CiAgICAgICAgaWYgKCFzY2hpY2h0KSB7IGZvcnRzZXR6
ZW4oKTsgcmV0dXJuOyB9CgogICAgICAgIHZhciBzY2hpY2h0TmFtZSA9IHsgRjogJ0Zyw7xoc2No
aWNodCcsIFM6ICdTcMOkdHNjaGljaHQnLCBOOiAnTmFjaHRzY2hpY2h0JyB9W3NjaGljaHRdOwog
ICAgICAgIHZhciBha3R1ZWxsID0gZnVlaHJ1bmdzWmFlaGxlbihkYXR1bSwgc2NoaWNodCk7CiAg
ICAgICAgdmFyIGRhbmFjaCA9IGFrdHVlbGwgLSAxOwogICAgICAgIHZhciBuZXVlcldlcnRUeHQg
PSB3ZXJ0IHx8ICdmcmVpJzsKICAgICAgICB2YXIgdHh0ID0gJ0FrdHVlbGwgc2luZCAnICsgYWt0
dWVsbCArICcgRsO8aHJ1bmdza3LDpGZ0ZSBmw7xyIGRpZSAnICsgc2NoaWNodE5hbWUgKwogICAg
ICAgICAgICAgICAgICAnIGFtICcgKyBkYXR1bUZvcm1hdERFKGRhdHVtKSArICcgZWluZ2VwbGFu
dC5cbicgKwogICAgICAgICAgICAgICAgICAnTmFjaCBkaWVzZXIgw4RuZGVydW5nIGF1ZiAiJyAr
IG5ldWVyV2VydFR4dCArICciIGJsZWliZW4gbnVyIG5vY2ggJyArIGRhbmFjaCArICcg4oCUICcg
KwogICAgICAgICAgICAgICAgICAnTWluZGVzdGJlc2V0enVuZyBzaW5kIDIuXG5cbicgKwogICAg
ICAgICAgICAgICAgICAnVHJvdHpkZW0gc3BlaWNoZXJuPyc7CiAgICAgICAgdW50ZXJiZXNldHp1
bmdTY2hpY2h0ID0gc2NoaWNodDsKICAgICAgICBiZXN0YWV0aWdlbih0eHQsIGZvcnRzZXR6ZW4s
IHsgdGl0ZWw6ICdVbnRlcmJlc2V0enVuZyBiZXN0w6R0aWdlbicsIGphVGV4dDogJ1Ryb3R6ZGVt
IHNwZWljaGVybicgfSk7CiAgICB9Cn0KCi8vIEJyaWRnZTogaW50ZXJhY3Rpb24uanMgYnJhdWNo
dCBmdWVocnVuZ3NaYWVobGVuLCBrYW5uIGVzIGFiZXIgd2VnZW4KLy8gWnlrbHVzIG5pY2h0IGRp
cmVrdCBpbXBvcnRpZXJlbi4gV2lyIHNldHplbiBlcyBhbHMgSG9vay4KaW50ZXJhY3Rpb25Ib29r
cy5mdWVocnVuZ3NaYWVobGVuID0gZnVlaHJ1bmdzWmFlaGxlbjsK
### FILE: js/grid_interaction.js | 35893
Ly8gPT09IGdyaWQvaW50ZXJhY3Rpb24uanMgPT09Ci8vIEtvbW1lbnRhcmUgKExlc2VuL1NjaHJl
aWJlbi9BbnplaWdlbiBpbSBHcmlkKSwgVW50ZXJiZXNldHp1bmdzLUFuYWx5c2UgKwovLyBXYXJu
dW5nLCAienVtIERhdHVtIHNjcm9sbGVuIi4gVkkzIGhhdCBrZWluZSBGTEQtU2VsZWt0aW9uL0tv
bnRleHRtZW51LwovLyBEcmFnJkRyb3AtTG9naWsg4oCUIGRhaGVyIHNjaGxhbmtlciBhbHMgZGVy
IEZMRC1QZW5kYW50LgoKaW1wb3J0IHsgWiB9IGZyb20gJy4vY29yZV9zdGF0ZS5qcyc7CmltcG9y
dCB7IGRhdHVtU3RyLCBkYXR1bUZvcm1hdERFLCBlc2NhcGVIVE1MLCBhbnplaWdlTmFtZUZ1ZXJL
ZW5udW5nIH0gZnJvbSAnLi9jb3JlX3V0aWwuanMnOwppbXBvcnQgeyB0b2FzdCB9IGZyb20gJy4v
dWlfZGlhbG9nLmpzJzsKaW1wb3J0IHsgYXBpLCBhcGlQb3N0IH0gZnJvbSAnLi9jb3JlX2FwaS5q
cyc7CmltcG9ydCB7IGRhcmZaZWxsZUVkaXRpZXJlbiB9IGZyb20gJy4vY29yZV9wZXJtaXNzaW9u
cy5qcyc7CmltcG9ydCB7IGRhdGVuR3JpZFJlbmRlcm4sIGtvcGZSZW5kZXJuLCB6ZWxsZVZpc3Vl
bGxBa3R1YWxpc2llcmVuIH0gZnJvbSAnLi9ncmlkX3JlbmRlci5qcyc7CgovLyA9PT09PSBIb29r
cyA9PT09PQoKZXhwb3J0IHZhciBpbnRlcmFjdGlvbkhvb2tzID0gewogICAgZmVhdHVyZUlzdEFr
dGl2OiBudWxsLAogICAgZnVlaHJ1bmdzWmFlaGxlbjogbnVsbCAgIC8vIHdpcmQgdm9uIGdyaWQv
ZWRpdG9yLmpzIGJlZGllbnQgKHppcmt1bGFlcmUgVmVybWVpZHVuZykKfTsKCi8vID09PT09IEtv
bnN0YW50ZW4gPT09PT0KCmV4cG9ydCB2YXIgQktfSE9SSVpPTlRfVEFHRSA9IDI4OwoKLy8gPT09
PT0gV2FjaGxlaXR1bmctSWRlbnRpdGFldCA9PT09PQoKLy8gSXN0IGRlciBha3R1ZWxsZSBVc2Vy
IFdhY2hsZWl0dW5nPyBXYWNobGVpdHVuZyA9IEdydXBwZSBXTCBpbiBkZW4gUGVyc29uZW4tRGF0
ZW4KLy8gdW5kIGluIGFkbWluLmpzb24uZ3J1cHBlbi4gZnVlaHJ1bmdzWmFlaGxlbigpIHBydWVm
dCBkaWUgZ2xlaWNoZSBLb252ZW50aW9uLgpleHBvcnQgZnVuY3Rpb24gaXN0V2FjaGxlaXR1bmdB
a3R1ZWxsZXJVc2VyKCkgewogICAgaWYgKCFaLm1laW5lUGVyc29uSWQpIHJldHVybiBmYWxzZTsK
ICAgIHZhciBwID0gbnVsbDsKICAgIChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZvckVhY2go
ZnVuY3Rpb24ocHApIHsKICAgICAgICBpZiAoU3RyaW5nKHBwLmlkKSA9PT0gU3RyaW5nKFoubWVp
bmVQZXJzb25JZCkpIHAgPSBwcDsKICAgIH0pOwogICAgcmV0dXJuICEhKHAgJiYgcC5ncnVwcGUg
PT09ICdXTCcpOwp9CgovLyA9PT09PSBVbnRlcmJlc2V0enVuZ3MtQW5hbHlzZSA9PT09PQoKLy8g
RHVyY2hzdWNodCBkaWUga29tbWVuZGVuIE4gVGFnZSBhYiBoZXV0ZSBuYWNoIEZ1ZWhydW5ncy1V
bnRlcmJlc2V0enVuZy4KLy8gVkkzLVJlZ2VsOiBwcm8gU2NoaWNodCAoRi9TL04pIG1pbmRlc3Rl
bnMgMiBGdWVocnVuZ3NrcmFlZnRlIChER0wvV0RGL0ZCUCwKLy8gb2huZSBHcnVwcGUgTC9XTCku
Ci8vIFJ1ZWNrZ2FiZTogc29ydGllcnRlIExpc3RlIHZvbiB7IGRhdHVtLCBmZWhsdDogJ0YgMS8y
LCBTIDAvMicgfS4KZXhwb3J0IGZ1bmN0aW9uIHVudGVyYmVzZXR6dW5nQW5hbHlzZVZpMyh0YWdl
SG9yaXpvbnQpIHsKICAgIGlmICghaW50ZXJhY3Rpb25Ib29rcy5mdWVocnVuZ3NaYWVobGVuKSBy
ZXR1cm4gW107CiAgICB2YXIgaGV1dGUgPSBuZXcgRGF0ZSgpOyBoZXV0ZS5zZXRIb3VycygwLDAs
MCwwKTsKICAgIHZhciBwcm9ibGVtZSA9IFtdOwogICAgKFoudGFnZSB8fCBbXSkuZm9yRWFjaChm
dW5jdGlvbihkKSB7CiAgICAgICAgaWYgKGQgPCBoZXV0ZSkgcmV0dXJuOwogICAgICAgIHZhciBk
aWZmID0gTWF0aC5mbG9vcigoZCAtIGhldXRlKSAvIDg2NDAwMDAwKTsKICAgICAgICBpZiAoZGlm
ZiA+PSB0YWdlSG9yaXpvbnQpIHJldHVybjsKICAgICAgICB2YXIgZFN0ciA9IGRhdHVtU3RyKGQp
OwogICAgICAgIHZhciBmRiA9IGludGVyYWN0aW9uSG9va3MuZnVlaHJ1bmdzWmFlaGxlbihkU3Ry
LCAnRicpOwogICAgICAgIHZhciBmUyA9IGludGVyYWN0aW9uSG9va3MuZnVlaHJ1bmdzWmFlaGxl
bihkU3RyLCAnUycpOwogICAgICAgIHZhciBmTiA9IGludGVyYWN0aW9uSG9va3MuZnVlaHJ1bmdz
WmFlaGxlbihkU3RyLCAnTicpOwogICAgICAgIHZhciBmZWhsdCA9IFtdOwogICAgICAgIGlmIChm
RiA8IDIpIGZlaGx0LnB1c2goJ0YgJyArIGZGICsgJy8yJyk7CiAgICAgICAgaWYgKGZTIDwgMikg
ZmVobHQucHVzaCgnUyAnICsgZlMgKyAnLzInKTsKICAgICAgICBpZiAoZk4gPCAyKSBmZWhsdC5w
dXNoKCdOICcgKyBmTiArICcvMicpOwogICAgICAgIGlmIChmZWhsdC5sZW5ndGggPiAwKSBwcm9i
bGVtZS5wdXNoKHsgZGF0dW06IGRTdHIsIGZlaGx0OiBmZWhsdC5qb2luKCcsICcpIH0pOwogICAg
fSk7CiAgICByZXR1cm4gcHJvYmxlbWU7Cn0KCmV4cG9ydCBmdW5jdGlvbiB6dURhdHVtU2Nyb2xs
ZW4oZFN0cikgewogICAgdmFyIHplbGxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2RhdHVt
LXplaWxlLXRhZyAua2QtemVsbGVbZGF0YS1kYXR1bT0iJyArIGRTdHIgKyAnIl0nKTsKICAgIHZh
ciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyaWQtc2Nyb2xsLWNvbnRhaW5lcicpOwog
ICAgaWYgKCF6ZWxsZSB8fCAhYykgcmV0dXJuOwogICAgdmFyIHIgPSB6ZWxsZS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKSwgY3IgPSBjLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgLy8gU21v
b3RoLVNjcm9sbCBzdGF0dCBhYnJ1cHRlbSBTcHJ1bmcgKFF1aWNrLVdpbiAyMDI2LTA1LTI5KS4g
QXVmIGdyb3NzZW4KICAgIC8vIEdyaWRzIGZ1ZWhsdCBzaWNoIGRpZSBhbmltaWVydGUgQmV3ZWd1
bmcgZGV1dGxpY2ggd2VuaWdlciBydWNrZWxuZCBhbgogICAgLy8gdW5kIGRlciBVc2VyIGJlaGFl
bHQgZGllIE9yaWVudGllcnVuZyBiZWltIFNwYWx0ZW4tU3BydW5nLgogICAgdmFyIHppZWxMZWZ0
ID0gYy5zY3JvbGxMZWZ0ICsgKHIubGVmdCAtIGNyLmxlZnQgLSBjci53aWR0aCAvIDMpOwogICAg
aWYgKHR5cGVvZiBjLnNjcm9sbFRvID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgYy5zY3JvbGxU
byh7IGxlZnQ6IHppZWxMZWZ0LCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICB9IGVsc2Ugewog
ICAgICAgIGMuc2Nyb2xsTGVmdCA9IHppZWxMZWZ0OwogICAgfQp9CgpleHBvcnQgZnVuY3Rpb24g
dW50ZXJiZXNldHp1bmdXYXJudW5nWmVpZ2VuKCkgewogICAgaWYgKCFpbnRlcmFjdGlvbkhvb2tz
LmZlYXR1cmVJc3RBa3RpdiB8fCAhaW50ZXJhY3Rpb25Ib29rcy5mZWF0dXJlSXN0QWt0aXYoJ3Vu
dGVyYmVzZXR6dW5nV2FybnVuZycpKSByZXR1cm47CiAgICAvLyBXYXJudW5nIGdpbHQgZnVlciBl
Y2h0ZSBXYWNobGVpdHVuZyAoR3J1cHBlIEwpIG9kZXIgU3VwZXJVc2VyIGltIFRlc3QtS29udGV4
dC4KICAgIC8vIEZhY2hhdWZzaWNodC1HZXNhbXR2ZXJhbnR3b3J0bGljaGUgYmVrb21tZW4gc3Rh
dHRkZXNzZW4gZGVuIEhlYWRlci1UYWIKICAgIC8vICJCZXNldHp1bmdza29udHJvbGxlIiBtaXQg
ZGF1ZXJoYWZ0ZXIgVWViZXJzaWNodC4KICAgIGlmICghaXN0V2FjaGxlaXR1bmdBa3R1ZWxsZXJV
c2VyKCkgJiYgIVoucmVjaHRlLmlzdFN1cGVyVXNlcikgcmV0dXJuOwogICAgdmFyIHByb2JsZW1l
ID0gdW50ZXJiZXNldHp1bmdBbmFseXNlVmkzKDI4KTsKICAgIGlmIChwcm9ibGVtZS5sZW5ndGgg
PT09IDApIHJldHVybjsKICAgIHZhciBlcnN0ZXIgPSBwcm9ibGVtZVswXTsKICAgIHZhciB0eHQg
PSBwcm9ibGVtZS5sZW5ndGggKyAocHJvYmxlbWUubGVuZ3RoID09PSAxID8gJyBUYWcnIDogJyBU
YWdlJykgKwogICAgICAgICAgICAgICcgbWl0IEbDvGhydW5ncy1VbnRlcmJlc2V0enVuZyBpbiBk
ZW4gbsOkY2hzdGVuIDQgV29jaGVuLiBFcnN0ZXI6ICcgKwogICAgICAgICAgICAgIGRhdHVtRm9y
bWF0REUoZXJzdGVyLmRhdHVtKSArICcgKCcgKyBlcnN0ZXIuZmVobHQgKyAnKS4gS2xpY2sgZsO8
ciBTcHJ1bmcgenVtIFRhZy4nOwogICAgdG9hc3QodHh0LCAnd2FybnVuZycsIHsKICAgICAgICBk
YXVlcjogMTAwMDAsCiAgICAgICAgb25DbGljazogZnVuY3Rpb24oKSB7IHp1RGF0dW1TY3JvbGxl
bihlcnN0ZXIuZGF0dW0pOyB9CiAgICB9KTsKfQoKLy8gPT09PT0gS29tbWVudGFyZSA9PT09PQov
LwovLyBTcGVpY2hlcmZvcm1hdCBpbiBwbGFudW5nLmtvbW1lbnRhcmVbZGF0dW1dW3BlcnNvbklk
XTogYWIgMjAyNi0wNCBhbHMKLy8gT2JqZWt0IHsgdGV4dCwgZ2VhZW5kZXJ0QW0gKElTTyksIGdl
YWVuZGVydFZvbiB9LiBBbHRlIERhdGVuIGFscyByZWluZQovLyBTdHJpbmdzIHdlcmRlbiB3ZWl0
ZXJoaW4gYWt6ZXB0aWVydDsgYmVpbSBuYWVjaHN0ZW4gU3BlaWNoZXJuIHdpcmQKLy8gYXV0b21h
dGlzY2ggYXVmIGRhcyBuZXVlIFNjaGVtYSBtaWdyaWVydC4KCmV4cG9ydCBmdW5jdGlvbiBrb21t
ZW50YXJFaW50cmFnKGRhdHVtLCBwZXJzb25JZCkgewogICAgcmV0dXJuICgoWi5wbGFudW5nLmtv
bW1lbnRhcmUgfHwge30pW2RhdHVtXSB8fCB7fSlbU3RyaW5nKHBlcnNvbklkKV07Cn0KCi8vIExv
ZXNjaC1SZWNodCBpbSBDbGllbnQgKHp1ciBVSS1TdGV1ZXJ1bmcg4oCUIGRpZSBmaW5hbGUgUHJ1
ZWZ1bmcgcGFzc2llcnQKLy8gaW0gU2VydmVyKS4gU3VwZXJVc2VyIHVuZCBGYWNoYXVmc2ljaHQg
bWl0IEdlc2FtdHZlcmFudHdvcnRsaWNoLUZsYWcuCmV4cG9ydCBmdW5jdGlvbiBkYXJmS29tbWVu
dGFyTG9lc2NoZW4oKSB7CiAgICB2YXIgciA9IFoucmVjaHRlIHx8IHt9OwogICAgcmV0dXJuICEh
KHIuaXN0U3VwZXJVc2VyIHx8IHIuaXN0R2VzYW10dmVyYW50d29ydGxpY2gpOwp9CgovLyBMaWVm
ZXJ0IElNTUVSIGVpbiBBcnJheSB2b24geyBpZCwgdGV4dCwgZ2VhZW5kZXJ0QW0sIGdlYWVuZGVy
dFZvbiB9IOKAlAovLyBtaWdyaWVydCBkaWUgZHJlaSBBbHQtRm9ybWF0ZSB0cmFuc3BhcmVudDoK
Ly8gICBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgIC0+IFt7IGlkOiAna19sZWdhY3lfKics
IHRleHQsIHRzOm51bGwgfV0KLy8gICB7IHRleHQsIGdlYWVuZGVydEFtLCAuLi4gfSAgIC0+IFtl
aW4gRWxlbWVudF0KLy8gICBbey4uLn0sey4uLn1dICAgICAgICAgICAgICAgIC0+IGRpcmVrdCB6
dXJ1ZWNrCi8vIFJlaWhlbmZvbGdlIGlzdCBjaHJvbm9sb2dpc2NoIChhZWx0ZXN0ZSB6dWVyc3Qp
LCBzbyB3aWUgZGVyIFNlcnZlciBzcGVpY2hlcnQuCi8vIERlZmVuc2l2ZS1IaW53ZWlzIChTcHJp
bnQgNyDigJQgMjAyNi0wNS0yOSwgRmluZGluZyAxNCk6Ci8vIE1hc3MtTWlncmF0aW9uIChzY3Jp
cHRzL21pZ3JhdGVfa29tbWVudGFyZS5weSkgaGF0IGFsbGUgQmVzdGFlbmRlIGlucwovLyBBcnJh
eS1TY2hlbWEgdWViZXJmdWVocnQuIEFsdC1Gb3JtYXRlIChTdHJpbmcsIFNpbmdsZS1PYmplY3Qt
b2huZS1BcnJheSkKLy8gU09MTFRFTiBuaWNodCBtZWhyIGltIExpdmUtU3lzdGVtIGF1ZnRhdWNo
ZW4uIFdlbm4gZG9jaCAoei5CLiBuYWNoIFJlc3RvcmUKLy8gYXVzIGFsdGVtIEJhY2t1cCk6IHdp
cmQgZWlubWFsaWcgcHJvIFNlc3Npb24gdmlhIGNvbnNvbGUud2FybiBwcm90b2tvbGxpZXJ0Lgov
LyBEaWUgQnJhbmNoZXMgYmxlaWJlbiBha3RpdiwgZGFtaXQgZWluIFJlc3RvcmUgZGllIEFuemVp
Z2UgbmljaHQgemVyc3RvZXJ0IOKAlAovLyBhYmVyIGRlciBXYXJuLUxvZyBtYWNodCBrbGFyLCBk
YXNzIG5hY2gtbWlncmllcnQgd2VyZGVuIHNvbGx0ZS4KdmFyIF9MRUdBQ1lfV0FSTl9HRVNFSEVO
ID0gZmFsc2U7CmZ1bmN0aW9uIF9sZWdhY3lXYXJuKHR5cCkgewogICAgaWYgKF9MRUdBQ1lfV0FS
Tl9HRVNFSEVOKSByZXR1cm47CiAgICBfTEVHQUNZX1dBUk5fR0VTRUhFTiA9IHRydWU7CiAgICBp
ZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIGNvbnNvbGUud2FybikgewogICAg
ICAgIGNvbnNvbGUud2FybignW1ZJM10gS29tbWVudGFyIGltIEFsdC1Gb3JtYXQgZ2VmdW5kZW4g
KCcgKyB0eXAgKyAnKS4gJyArCiAgICAgICAgICAgICdXYWhyc2NoZWlubGljaCBhdXMgYWx0ZW0g
QmFja3VwLVJlc3RvcmUuIEJpdHRlIGVpbm1hbGlnICcgKwogICAgICAgICAgICAnc2NyaXB0cy9t
aWdyYXRlX2tvbW1lbnRhcmUucHkgbGF1ZmVuIGxhc3Nlbi4nKTsKICAgIH0KfQoKZXhwb3J0IGZ1
bmN0aW9uIGtvbW1lbnRhckxpc3RlKGspIHsKICAgIGlmICghaykgcmV0dXJuIFtdOwogICAgaWYg
KHR5cGVvZiBrID09PSAnc3RyaW5nJykgewogICAgICAgIGlmICghay50cmltKCkpIHJldHVybiBb
XTsKICAgICAgICBfbGVnYWN5V2FybignU3RyaW5nJyk7CiAgICAgICAgcmV0dXJuIFt7IGlkOiAn
a19sZWdhY3knLCB0ZXh0OiBrLCBnZWFlbmRlcnRBbTogbnVsbCwgZ2VhZW5kZXJ0Vm9uOiBudWxs
IH1dOwogICAgfQogICAgaWYgKEFycmF5LmlzQXJyYXkoaykpIHsKICAgICAgICByZXR1cm4gay5m
aWx0ZXIoZnVuY3Rpb24oZSkgeyByZXR1cm4gZSAmJiAoZS50ZXh0IHx8ICcnKS50b1N0cmluZygp
LnRyaW0oKTsgfSk7CiAgICB9CiAgICBpZiAoay50ZXh0KSB7CiAgICAgICAgX2xlZ2FjeVdhcm4o
J1NpbmdsZS1PYmplY3QnKTsKICAgICAgICByZXR1cm4gW3sKICAgICAgICAgICAgaWQ6ICAgICAg
ICAgICBrLmlkIHx8ICdrX2xlZ2FjeScsCiAgICAgICAgICAgIHRleHQ6ICAgICAgICAgay50ZXh0
LAogICAgICAgICAgICBnZWFlbmRlcnRBbTogIGsuZ2VhZW5kZXJ0QW0gfHwgbnVsbCwKICAgICAg
ICAgICAgZ2VhZW5kZXJ0Vm9uOiBrLmdlYWVuZGVydFZvbiB8fCBudWxsCiAgICAgICAgfV07CiAg
ICB9CiAgICByZXR1cm4gW107Cn0KCmV4cG9ydCBmdW5jdGlvbiBrb21tZW50YXJBbnphaGwoaykg
ewogICAgcmV0dXJuIGtvbW1lbnRhckxpc3RlKGspLmxlbmd0aDsKfQoKLy8gQmFja3dhcmRzLUNv
bXBhdDogbGllZmVydCBkZW4gVEVYVCBkZXMganVlbmdzdGVuIEtvbW1lbnRhcnMgKG9kZXIgbGVl
cikuCi8vIEJlc3RlaGVuZGUgQXVmcnVmZXIgKFdvY2hlbnBsYW4sIEJlc2V0enVuZykgYmVrb21t
ZW4gZGFtaXQgd2VpdGVyaGluIGRlbgovLyAiYWt0dWVsbGVuIiBLb21tZW50YXIg4oCUIGZ1ZXIg
ZGllIExpc3RlIGdpYnQgZXMga29tbWVudGFyTGlzdGUoKS4KZXhwb3J0IGZ1bmN0aW9uIGtvbW1l
bnRhclRleHQoaykgewogICAgdmFyIGxpc3RlID0ga29tbWVudGFyTGlzdGUoayk7CiAgICBpZiAo
bGlzdGUubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7CiAgICByZXR1cm4gbGlzdGVbbGlzdGUubGVu
Z3RoIC0gMV0udGV4dCB8fCAnJzsKfQoKLy8gQmFja3dhcmRzLUNvbXBhdDogTWV0YSBkZXMganVl
bmdzdGVuIEtvbW1lbnRhcnMuCmV4cG9ydCBmdW5jdGlvbiBrb21tZW50YXJNZXRhKGspIHsKICAg
IHZhciBsaXN0ZSA9IGtvbW1lbnRhckxpc3RlKGspOwogICAgaWYgKGxpc3RlLmxlbmd0aCA9PT0g
MCkgcmV0dXJuIHsgdGV4dDogJycsIGdlYWVuZGVydEFtOiBudWxsLCBnZWFlbmRlcnRWb246IG51
bGwgfTsKICAgIHZhciBsZXR6dGVyID0gbGlzdGVbbGlzdGUubGVuZ3RoIC0gMV07CiAgICByZXR1
cm4gewogICAgICAgIHRleHQ6ICAgICAgICAgbGV0enRlci50ZXh0IHx8ICcnLAogICAgICAgIGdl
YWVuZGVydEFtOiAgbGV0enRlci5nZWFlbmRlcnRBbSB8fCBudWxsLAogICAgICAgIGdlYWVuZGVy
dFZvbjogbGV0enRlci5nZWFlbmRlcnRWb24gfHwgbnVsbAogICAgfTsKfQoKLy8gS29tcGFrdGUg
TWV0YS1aZWlsZSBmdWVyIGRlbiBFZGl0b3I6ICJadWxldHp0IGdlYWVuZGVydDogMjIuMDQuMjAy
NiAxOTo0MyDCtyBOVzEyMzQ1NiIKLy8gTGVlcmVyIFN0cmluZywgd2VubiBrZWluIERhdHVtc3N0
ZW1wZWwgdm9ybGllZ3QgKHouQi4gTWlncmF0aW9uIGF1cyBhbHRlbQovLyBTdHJpbmctRm9ybWF0
LCBkb3J0IGdpYnQgZXMga2VpbmUgSGlzdG9yaWUpLgpleHBvcnQgZnVuY3Rpb24ga29tbWVudGFy
TWV0YVRleHQoaykgewogICAgaWYgKCFrIHx8IHR5cGVvZiBrID09PSAnc3RyaW5nJykgcmV0dXJu
ICcnOwogICAgdmFyIG0gPSBrb21tZW50YXJNZXRhKGspOwogICAgaWYgKCFtLmdlYWVuZGVydEFt
KSByZXR1cm4gJyc7CiAgICB2YXIgZCA9IG5ldyBEYXRlKG0uZ2VhZW5kZXJ0QW0pOwogICAgaWYg
KGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuICcnOwogICAgdmFyIHBhZCA9IGZ1bmN0aW9uKG4p
IHsgcmV0dXJuIChuIDwgMTAgPyAnMCcgOiAnJykgKyBuOyB9OwogICAgdmFyIGR0ID0gcGFkKGQu
Z2V0RGF0ZSgpKSArICcuJyArIHBhZChkLmdldE1vbnRoKCkgKyAxKSArICcuJyArIGQuZ2V0RnVs
bFllYXIoKSArCiAgICAgICAgICAgICAnICcgKyBwYWQoZC5nZXRIb3VycygpKSArICc6JyArIHBh
ZChkLmdldE1pbnV0ZXMoKSk7CiAgICB2YXIgcyA9ICdadWxldHp0IGdlw6RuZGVydDogJyArIGR0
OwogICAgaWYgKG0uZ2VhZW5kZXJ0Vm9uKSBzICs9ICcgwrcgJyArIG0uZ2VhZW5kZXJ0Vm9uOwog
ICAgcmV0dXJuIHM7Cn0KCi8vIExpZWZlcnQgZGVuIFRvb2x0aXAtU3VmZml4IGlua2wuIERhdHVt
c3N0ZW1wZWwsIGZhbGxzIHZvcmhhbmRlbi4KLy8gV2lyZCBoZXV0ZSBudXIgbm9jaCB2b20gV29j
aGVucGxhbi9Mb2didWNoIGdlbnV0enQg4oCUIGltIEhhdXB0LUdyaWQga29tbXQKLy8gZGFzIEhU
TUwtUG9wb3ZlciAoa29tbWVudGFyUG9wb3ZlclplaWdlbikgenVtIEVpbnNhdHosIGRhcyBkZW4g
VGV4dAovLyBzdHJ1a3R1cmllcnQgcmVuZGVydCBzdGF0dCBpaG4gaW4gZGFzIHRpdGxlLUF0dHJp
YnV0IHp1IGtsYXRzY2hlbi4KZXhwb3J0IGZ1bmN0aW9uIGtvbW1lbnRhclRvb2x0aXAoaykgewog
ICAgaWYgKCFrKSByZXR1cm4gJyc7CiAgICB2YXIgbSA9IGtvbW1lbnRhck1ldGEoayk7CiAgICBp
ZiAoIW0udGV4dCkgcmV0dXJuICcnOwogICAgdmFyIHN1ZmZpeCA9ICcnOwogICAgaWYgKG0uZ2Vh
ZW5kZXJ0QW0pIHsKICAgICAgICAvLyBJU08gLT4gIjIyLjA0LjIwMjYgMTk6NDMiIChsb2thbGUg
RGFyc3RlbGx1bmcgb2huZSBTZWt1bmRlbikKICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKG0uZ2Vh
ZW5kZXJ0QW0pOwogICAgICAgIGlmICghaXNOYU4oZC5nZXRUaW1lKCkpKSB7CiAgICAgICAgICAg
IHZhciBwYWQgPSBmdW5jdGlvbihuKSB7IHJldHVybiAobiA8IDEwID8gJzAnIDogJycpICsgbjsg
fTsKICAgICAgICAgICAgdmFyIGR0ID0gcGFkKGQuZ2V0RGF0ZSgpKSArICcuJyArIHBhZChkLmdl
dE1vbnRoKCkgKyAxKSArICcuJyArIGQuZ2V0RnVsbFllYXIoKSArCiAgICAgICAgICAgICAgICAg
ICAgICcgJyArIHBhZChkLmdldEhvdXJzKCkpICsgJzonICsgcGFkKGQuZ2V0TWludXRlcygpKTsK
ICAgICAgICAgICAgc3VmZml4ID0gJyAoenVsZXR6dCBnZcOkbmRlcnQgYW0gJyArIGR0OwogICAg
ICAgICAgICBpZiAobS5nZWFlbmRlcnRWb24pIHN1ZmZpeCArPSAnIGR1cmNoICcgKyBtLmdlYWVu
ZGVydFZvbjsKICAgICAgICAgICAgc3VmZml4ICs9ICcpJzsKICAgICAgICB9CiAgICB9CiAgICBy
ZXR1cm4gJ0tvbW1lbnRhcjogJyArIG0udGV4dCArIHN1ZmZpeDsKfQoKLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQovLyBLb21tZW50YXItUG9wb3ZlciAoSFRNTC1WYXJpYW50ZSBkZXMgZnJ1ZWhlcmVu
IG5hdGl2ZSB0aXRsZS1TdWZmaXhlcykKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBTdHJ1a3R1
cmllcnRlcyBQb3BvdmVyIHN0YXR0IGVpbnplaWxpZ2VyIEJyb3dzZXItVG9vbHRpcC4gSG92ZXIg
b2VmZm5ldAovLyBuYWNoIDI1MCBtcywgTW91c2UtTGVhdmUgc2NobGllc3N0IG5hY2ggMTUwIG1z
IChnaWJ0IGRlbSBVc2VyIFplaXQsIHVlYmVyCi8vIGRhcyBQb3BvdmVyIHp1IGJld2VnZW4pLiBD
b250YWluZXIgbGllZ3QgZmVzdCBpbiBpbmRleC5odG1sICgjdmkzLQovLyBrb21tZW50YXItcG9w
b3ZlciksIHdpcmQgaGllciBudXIgYmVmdWVsbHQgKyBwb3NpdGlvbmllcnQuCi8vCi8vIFZlcmZh
c3NlciB3aXJkIHVlYmVyIGFuemVpZ2VOYW1lRnVlcktlbm51bmcoKSBhdXMgY29yZV91dGlsIHp1
IGVpbmVtCi8vIGxlc2JhcmVuIE5hbWVuIGF1ZmdlbG9lc3QuIEJsZWlidCBkaWUgQXVmbG9lc3Vu
ZyBsZWVyICh6LkIuIEV4Y2VsLUltcG9ydC0KLy8gTWFya2VyIHN0YXR0IE5XLUtlbm51bmcpLCB6
ZWlnZW4gd2lyIGRlbiBSb2h3ZXJ0LgoKdmFyIGtwX3plaWdlVGltZXIgPSBudWxsOwp2YXIga3Bf
dmVyc3RlY2tUaW1lciA9IG51bGw7CgpmdW5jdGlvbiBrcF9mb3JtYXREYXR1bVplaXQoaXNvKSB7
CiAgICBpZiAoIWlzbykgcmV0dXJuICcnOwogICAgdmFyIGQgPSBuZXcgRGF0ZShpc28pOwogICAg
aWYgKGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuICcnOwogICAgdmFyIHBhZCA9IGZ1bmN0aW9u
KG4pIHsgcmV0dXJuIChuIDwgMTAgPyAnMCcgOiAnJykgKyBuOyB9OwogICAgcmV0dXJuIHBhZChk
LmdldERhdGUoKSkgKyAnLicgKyBwYWQoZC5nZXRNb250aCgpICsgMSkgKyAnLicgKyBkLmdldEZ1
bGxZZWFyKCkgKwogICAgICAgICAgICcgwrcgJyArIHBhZChkLmdldEhvdXJzKCkpICsgJzonICsg
cGFkKGQuZ2V0TWludXRlcygpKTsKfQoKZnVuY3Rpb24ga3BfZWludHJhZ0h0bWwoZWludHJhZykg
ewogICAgaWYgKCFlaW50cmFnKSByZXR1cm4gJyc7CiAgICB2YXIgdGV4dCA9IGVzY2FwZUhUTUwo
ZWludHJhZy50ZXh0IHx8ICcnKS5yZXBsYWNlKC9cbi9nLCAnPGJyPicpOwogICAgdmFyIGR0ID0g
a3BfZm9ybWF0RGF0dW1aZWl0KGVpbnRyYWcuZ2VhZW5kZXJ0QW0pOwogICAgdmFyIHJvaFZlcmZh
c3NlciA9IGVpbnRyYWcuZ2VhZW5kZXJ0Vm9uIHx8ICcnOwogICAgdmFyIG5hbWVBdWZnZWxvZXN0
ID0gcm9oVmVyZmFzc2VyID8gYW56ZWlnZU5hbWVGdWVyS2VubnVuZyhyb2hWZXJmYXNzZXIpIDog
Jyc7CiAgICAvLyBXZW5uIEF1ZmxvZXN1bmcgPT0gUm9od2VydCAoa0t1cnotRmFsbGJhY2spLCBu
aWNodCBkb3BwZWx0IHplaWdlbi4KICAgIHZhciB2ZXJmYXNzZXJBbnogPSBuYW1lQXVmZ2Vsb2Vz
dCAmJiBuYW1lQXVmZ2Vsb2VzdC50b0xvd2VyQ2FzZSgpICE9PSByb2hWZXJmYXNzZXIudG9Mb3dl
ckNhc2UoKS5zcGxpdCgnXFwnKS5wb3AoKQogICAgICAgID8gbmFtZUF1ZmdlbG9lc3QKICAgICAg
ICA6IHJvaFZlcmZhc3NlcjsKICAgIHZhciBtZXRhID0gJyc7CiAgICBpZiAodmVyZmFzc2VyQW56
IHx8IGR0KSB7CiAgICAgICAgbWV0YSA9ICc8ZGl2IGNsYXNzPSJrcC1laW50cmFnLW1ldGEiPicg
KwogICAgICAgICAgICAgICAgICAgICh2ZXJmYXNzZXJBbnogPyAnPHNwYW4gY2xhc3M9ImtwLWVp
bnRyYWctYXV0b3IiIHRpdGxlPSInICsgZXNjYXBlSFRNTChyb2hWZXJmYXNzZXIpICsgJyI+JyAr
IGVzY2FwZUhUTUwodmVyZmFzc2VyQW56KSArICc8L3NwYW4+JyA6ICcnKSArCiAgICAgICAgICAg
ICAgICAgICAgKHZlcmZhc3NlckFueiAmJiBkdCA/ICc8c3BhbiBjbGFzcz0ia3AtZWludHJhZy10
cmVubmVyIj7Ctzwvc3Bhbj4nIDogJycpICsKICAgICAgICAgICAgICAgICAgICAoZHQgPyAnPHNw
YW4gY2xhc3M9ImtwLWVpbnRyYWctemVpdCI+JyArIGVzY2FwZUhUTUwoZHQpICsgJzwvc3Bhbj4n
IDogJycpICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nOwogICAgfQogICAgcmV0dXJuICc8ZGl2
IGNsYXNzPSJrcC1laW50cmFnIj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJrcC1l
aW50cmFnLXRleHQiPicgKyB0ZXh0ICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgbWV0YSAr
CiAgICAgICAgICAgICc8L2Rpdj4nOwp9CgpmdW5jdGlvbiBrcF9odG1sKGRhdHVtLCBrKSB7CiAg
ICB2YXIgbGlzdGUgPSBrb21tZW50YXJMaXN0ZShrKTsKICAgIGlmIChsaXN0ZS5sZW5ndGggPT09
IDApIHJldHVybiAnJzsKICAgIHZhciBkRGUgPSBkYXR1bUZvcm1hdERFKGRhdHVtKTsKICAgIHZh
ciBuID0gbGlzdGUubGVuZ3RoOwogICAgdmFyIHRpdGVsID0gbiA9PT0gMSA/ICdLb21tZW50YXIn
IDogJ0tvbW1lbnRhcmUgKCcgKyBuICsgJyknOwogICAgLy8gTmV1ZXN0ZSB6dWVyc3Qg4oCUIFNl
cnZlciBzcGVpY2hlcnQgY2hyb25vbG9naXNjaCAoYWx0IC0+IG5ldSkuCiAgICB2YXIgYm9keSA9
ICcnOwogICAgZm9yICh2YXIgaSA9IGxpc3RlLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAg
ICAgICAgYm9keSArPSBrcF9laW50cmFnSHRtbChsaXN0ZVtpXSk7CiAgICB9CiAgICByZXR1cm4g
JzxkaXYgY2xhc3M9ImtwLWtvcGYiPicgKwogICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJr
cC1rb3BmLXRpdGVsIj4nICsgZXNjYXBlSFRNTCh0aXRlbCkgKyAnPC9zcGFuPicgKwogICAgICAg
ICAgICAgICAgJzxzcGFuIGNsYXNzPSJrcC1rb3BmLWRhdHVtIj4nICsgZXNjYXBlSFRNTChkRGUp
ICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBj
bGFzcz0ia3AtYm9keSBrcC1ib2R5LXN0YWNrIj4nICsgYm9keSArICc8L2Rpdj4nOwp9CgpmdW5j
dGlvbiBrcF9wb3NpdGlvbmllcmVuKHBvcCwgYW5rZXIpIHsKICAgIHZhciBhciA9IGFua2VyLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIHZ3ID0gd2luZG93LmlubmVyV2lkdGg7CiAg
ICB2YXIgdmggPSB3aW5kb3cuaW5uZXJIZWlnaHQ7CiAgICBwb3AuY2xhc3NMaXN0LnJlbW92ZSgn
dmVyc3RlY2t0Jyk7CiAgICBwb3Auc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOwogICAgdmFy
IHB3ID0gcG9wLm9mZnNldFdpZHRoOwogICAgdmFyIHBoID0gcG9wLm9mZnNldEhlaWdodDsKICAg
IHZhciByYW5kID0gNjsKICAgIC8vIEJldm9yenVndCB1bnRlciBkZXIgWmVsbGUsIHNvbnN0IGRh
cnVlYmVyLgogICAgdmFyIHRvcCA9IGFyLmJvdHRvbSArIHJhbmQ7CiAgICBpZiAodG9wICsgcGgg
PiB2aCAtIDYpIHRvcCA9IGFyLnRvcCAtIHBoIC0gcmFuZDsKICAgIGlmICh0b3AgPCA2KSB0b3Ag
PSA2OwogICAgLy8gSG9yaXpvbnRhbCBhbiBkZXIgbGlua2VuIFplbGxrYW50ZSBhdXNyaWNodGVu
LCBhYmVyIG5pY2h0IHVlYmVyIGRlbgogICAgLy8gVmlld3BvcnQtUmFuZCByYWdlbiBsYXNzZW4u
CiAgICB2YXIgbGVmdCA9IGFyLmxlZnQ7CiAgICBpZiAobGVmdCArIHB3ID4gdncgLSA2KSBsZWZ0
ID0gdncgLSBwdyAtIDY7CiAgICBpZiAobGVmdCA8IDYpIGxlZnQgPSA2OwogICAgcG9wLnN0eWxl
LmxlZnQgPSBNYXRoLnJvdW5kKGxlZnQpICsgJ3B4JzsKICAgIHBvcC5zdHlsZS50b3AgID0gTWF0
aC5yb3VuZCh0b3ApICArICdweCc7CiAgICBwb3Auc3R5bGUudmlzaWJpbGl0eSA9ICcnOwp9Cgpl
eHBvcnQgZnVuY3Rpb24ga29tbWVudGFyUG9wb3ZlclplaWdlbih6ZWxsZSkgewogICAgaWYgKCF6
ZWxsZSB8fCAhemVsbGUuY2xhc3NMaXN0IHx8ICF6ZWxsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2hh
dC1rb21tZW50YXInKSkgcmV0dXJuOwogICAgaWYgKGtwX3ZlcnN0ZWNrVGltZXIpIHsgY2xlYXJU
aW1lb3V0KGtwX3ZlcnN0ZWNrVGltZXIpOyBrcF92ZXJzdGVja1RpbWVyID0gbnVsbDsgfQogICAg
aWYgKGtwX3plaWdlVGltZXIpICAgIHsgY2xlYXJUaW1lb3V0KGtwX3plaWdlVGltZXIpOyBrcF96
ZWlnZVRpbWVyID0gbnVsbDsgfQogICAga3BfemVpZ2VUaW1lciA9IHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgICAga3BfemVpZ2VUaW1lciA9IG51bGw7CiAgICAgICAgdmFyIGRhdHVtID0g
emVsbGUuZ2V0QXR0cmlidXRlKCdkYXRhLWRhdHVtJyk7CiAgICAgICAgdmFyIHBpZCAgID0gemVs
bGUuZ2V0QXR0cmlidXRlKCdkYXRhLXBlcnNvbicpOwogICAgICAgIGlmICghZGF0dW0gfHwgIXBp
ZCkgcmV0dXJuOwogICAgICAgIHZhciBrID0ga29tbWVudGFyRWludHJhZyhkYXR1bSwgcGlkKTsK
ICAgICAgICBpZiAoIWsgfHwgIWtvbW1lbnRhclRleHQoaykpIHJldHVybjsKICAgICAgICB2YXIg
cG9wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpMy1rb21tZW50YXItcG9wb3ZlcicpOwog
ICAgICAgIGlmICghcG9wKSByZXR1cm47CiAgICAgICAgcG9wLmlubmVySFRNTCA9IGtwX2h0bWwo
ZGF0dW0sIGspOwogICAgICAgIHBvcC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ2ZhbHNl
Jyk7CiAgICAgICAga3BfcG9zaXRpb25pZXJlbihwb3AsIHplbGxlKTsKICAgIH0sIDI1MCk7Cn0K
CmV4cG9ydCBmdW5jdGlvbiBrb21tZW50YXJQb3BvdmVyVmVyc3RlY2tlbigpIHsKICAgIGlmIChr
cF96ZWlnZVRpbWVyKSAgICB7IGNsZWFyVGltZW91dChrcF96ZWlnZVRpbWVyKTsga3BfemVpZ2VU
aW1lciA9IG51bGw7IH0KICAgIGlmIChrcF92ZXJzdGVja1RpbWVyKSBjbGVhclRpbWVvdXQoa3Bf
dmVyc3RlY2tUaW1lcik7CiAgICBrcF92ZXJzdGVja1RpbWVyID0gc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgICB2YXIgcG9wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpMy1rb21t
ZW50YXItcG9wb3ZlcicpOwogICAgICAgIGlmIChwb3ApIHsKICAgICAgICAgICAgcG9wLmNsYXNz
TGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwogICAgICAgICAgICBwb3Auc2V0QXR0cmlidXRlKCdhcmlh
LWhpZGRlbicsICd0cnVlJyk7CiAgICAgICAgfQogICAgfSwgMTUwKTsKfQoKLy8gV2lyZCB2b20g
UG9wb3ZlciBzZWxic3QgKG1vdXNlZW50ZXIpIGdlcnVmZW4sIGRhbWl0IGVzIG9mZmVuIGJsZWli
dAovLyBzb2xhbmdlIGRlciBVc2VyIG1pdCBkZXIgTWF1cyBkcnVlYmVyIGlzdC4KZXhwb3J0IGZ1
bmN0aW9uIGtvbW1lbnRhclBvcG92ZXJGZXN0aGFsdGVuKCkgewogICAgaWYgKGtwX3ZlcnN0ZWNr
VGltZXIpIHsgY2xlYXJUaW1lb3V0KGtwX3ZlcnN0ZWNrVGltZXIpOyBrcF92ZXJzdGVja1RpbWVy
ID0gbnVsbDsgfQp9CgpleHBvcnQgZnVuY3Rpb24ga29tbWVudGFyTGFkZW4oZGF0dW0sIHBlcnNv
bklkKSB7CiAgICByZXR1cm4ga29tbWVudGFyVGV4dChrb21tZW50YXJFaW50cmFnKGRhdHVtLCBw
ZXJzb25JZCkpOwp9CgovLyBIYWVuZ3QgZWluZW4gbmV1ZW4gS29tbWVudGFyIGFuLiBFcnNhdHog
ZnVlciBkYXMgZnJ1ZWhlciB1ZWJlcnNjaHJlaWJlbmRlCi8vIGtvbW1lbnRhclNwZWljaGVybigp
IOKAlCBhbHRlIEF1ZnJ1ZmVyLCBkaWUgZWluZW4gbGVlcmVuIFRleHQgdWViZXJnZWJlbiwKLy8g
ZXJoYWx0ZW4gamV0enQgbnVyIGVpbiBuby1vcCAoTG9lc2NoZW4gZ2VodCB1ZWJlciBrb21tZW50
YXJMb2VzY2hlbikuCi8vIENhbGxiYWNrIGVyaGFlbHQgZGllIG5ldSB2ZXJnZWJlbmUgS29tbWVu
dGFyLUlELCBzb2JhbGQgZGVyIFNlcnZlciBiZXN0YWV0aWd0LgpleHBvcnQgZnVuY3Rpb24ga29t
bWVudGFySGluenVmdWVnZW4oZGF0dW0sIHBlcnNvbklkLCB0ZXh0LCBvbkZlcnRpZykgewogICAg
dGV4dCA9ICh0ZXh0IHx8ICcnKS50cmltKCk7CiAgICBpZiAoIXRleHQpIHsKICAgICAgICBpZiAo
dHlwZW9mIG9uRmVydGlnID09PSAnZnVuY3Rpb24nKSBvbkZlcnRpZyhudWxsKTsKICAgICAgICBy
ZXR1cm47CiAgICB9CiAgICBpZiAoIVoucGxhbnVuZy5rb21tZW50YXJlKSBaLnBsYW51bmcua29t
bWVudGFyZSA9IHt9OwogICAgaWYgKCFaLnBsYW51bmcua29tbWVudGFyZVtkYXR1bV0pIFoucGxh
bnVuZy5rb21tZW50YXJlW2RhdHVtXSA9IHt9OwogICAgdmFyIHBpZFN0ciA9IFN0cmluZyhwZXJz
b25JZCk7CiAgICAvLyBPcHRpbWlzdGlzY2ggbG9rYWwgYW5oYWVuZ2VuIOKAlCB0ZW1wb3JhZXJl
IElELCB3aXJkIGR1cmNoIFNlcnZlci1JRCBlcnNldHp0LgogICAgdmFyIHRlbXBJZCA9ICdrX2xv
a2FsXycgKyBEYXRlLm5vdygpICsgJ18nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOTk5
OTkpOwogICAgdmFyIGxpc3RlID0ga29tbWVudGFyTGlzdGUoWi5wbGFudW5nLmtvbW1lbnRhcmVb
ZGF0dW1dW3BpZFN0cl0pLnNsaWNlKCk7CiAgICBsaXN0ZS5wdXNoKHsKICAgICAgICBpZDogICAg
ICAgICAgIHRlbXBJZCwKICAgICAgICB0ZXh0OiAgICAgICAgIHRleHQsCiAgICAgICAgZ2VhZW5k
ZXJ0QW06ICBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksCiAgICAgICAgZ2VhZW5kZXJ0Vm9uOiBa
LmJlbnV0emVyIHx8ICcnCiAgICB9KTsKICAgIFoucGxhbnVuZy5rb21tZW50YXJlW2RhdHVtXVtw
aWRTdHJdID0gbGlzdGU7CiAgICB2YXIgeiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ncmlk
LXplbGxlW2RhdGEtZGF0dW09IicgKyBkYXR1bSArICciXVtkYXRhLXBlcnNvbj0iJyArIHBpZFN0
ciArICciXScpOwogICAgaWYgKHopIHouY2xhc3NMaXN0LmFkZCgnaGF0LWtvbW1lbnRhcicpOwoK
ICAgIGFwaVBvc3QoJy9hcGkvcGxhbnVuZy9rb21tZW50YXInLCB7IGRhdHVtOiBkYXR1bSwgcGVy
c29uSWQ6IHBlcnNvbklkLCB0ZXh0OiB0ZXh0IH0pCiAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVz
KSB7CiAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmtvbW1lbnRhcklkKSB7CiAgICAgICAgICAg
ICAgICAvLyBTZXJ2ZXItU3RhbmQgdWViZXJuZWhtZW46IElEICsgU2VydmVyLVplaXRzdGVtcGVs
IGVyc2V0emVuCiAgICAgICAgICAgICAgICAvLyBkZW4gb3B0aW1pc3Rpc2NoZW4gRWludHJhZyAo
Z2xlaWNoZXIgVGV4dCwgbmV1ZXJlIFdlcnRlKS4KICAgICAgICAgICAgICAgIHZhciBha3R1ZWxs
ID0ga29tbWVudGFyTGlzdGUoWi5wbGFudW5nLmtvbW1lbnRhcmVbZGF0dW1dW3BpZFN0cl0pLnNs
aWNlKCk7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gYWt0dWVsbC5sZW5ndGggLSAxOyBp
ID49IDA7IGktLSkgewogICAgICAgICAgICAgICAgICAgIGlmIChha3R1ZWxsW2ldLmlkID09PSB0
ZW1wSWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWt0dWVsbFtpXSA9IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlkOiAgICAgICAgICAgcmVzLmtvbW1lbnRhcklkLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGV4dDogICAgICAgICB0ZXh0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2VhZW5kZXJ0QW06ICByZXMuZ2VhZW5kZXJ0QW0gfHwgYWt0dWVsbFtpXS5n
ZWFlbmRlcnRBbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlYWVuZGVydFZvbjogcmVz
LmdlYWVuZGVydFZvbiB8fCBha3R1ZWxsW2ldLmdlYWVuZGVydFZvbgogICAgICAgICAgICAgICAg
ICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBaLnBsYW51bmcua29tbWVu
dGFyZVtkYXR1bV1bcGlkU3RyXSA9IGFrdHVlbGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAg
dG9hc3QoJ0tvbW1lbnRhciBoaW56dWdlZsO8Z3QnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgIGlm
ICh0eXBlb2Ygb25GZXJ0aWcgPT09ICdmdW5jdGlvbicpIG9uRmVydGlnKHJlcyAmJiByZXMua29t
bWVudGFySWQgfHwgbnVsbCk7CiAgICAgICAgfSkKICAgICAgICAuY2F0Y2goZnVuY3Rpb24oZSkg
ewogICAgICAgICAgICAvLyBPcHRpbWlzdGlzY2hlbiBFaW50cmFnIHp1cnVlY2tuZWhtZW4sIGRh
bWl0IGxva2FsZXIgU3RhbmQgbmljaHQKICAgICAgICAgICAgLy8gZGF1ZXJoYWZ0IG1pdCBlaW5l
bSBuaWNodC1wZXJzaXN0aWVydGVuIEtvbW1lbnRhciBsZWJ0LgogICAgICAgICAgICB2YXIgYWt0
dWVsbCA9IGtvbW1lbnRhckxpc3RlKFoucGxhbnVuZy5rb21tZW50YXJlW2RhdHVtXVtwaWRTdHJd
KQogICAgICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbihrKSB7IHJldHVybiBrLmlkICE9PSB0
ZW1wSWQ7IH0pOwogICAgICAgICAgICBpZiAoYWt0dWVsbC5sZW5ndGgpIHsKICAgICAgICAgICAg
ICAgIFoucGxhbnVuZy5rb21tZW50YXJlW2RhdHVtXVtwaWRTdHJdID0gYWt0dWVsbDsKICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSBaLnBsYW51bmcua29tbWVudGFy
ZVtkYXR1bV1bcGlkU3RyXTsKICAgICAgICAgICAgICAgIGlmICh6KSB6LmNsYXNzTGlzdC5yZW1v
dmUoJ2hhdC1rb21tZW50YXInKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0b2FzdCgnRmVo
bGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygb25G
ZXJ0aWcgPT09ICdmdW5jdGlvbicpIG9uRmVydGlnKG51bGwpOwogICAgICAgIH0pOwp9CgovLyBM
b2VzY2h0IGVpbmVuIGVpbnplbG5lbiBLb21tZW50YXIgYXVzIGRlciBMaXN0ZS4gQmVyZWNodGln
dW5nIHdpcmQKLy8gc2VydmVyc2VpdGlnIGdlZ2VuIGlzdFN1cGVyVXNlciArIGlzdEdlc2FtdHZl
cmFudHdvcnRsaWNoIGdlcHJ1ZWZ0IOKAlAovLyBoaWVyIG51ciBvcHRpbWlzdGlzY2hlIGxva2Fs
ZSBFbnRmZXJudW5nIG1pdCBSb2xsYmFjayBiZWkgRmVobGVyLgpleHBvcnQgZnVuY3Rpb24ga29t
bWVudGFyTG9lc2NoZW4oZGF0dW0sIHBlcnNvbklkLCBrb21tZW50YXJJZCwgb25GZXJ0aWcpIHsK
ICAgIHZhciBwaWRTdHIgPSBTdHJpbmcocGVyc29uSWQpOwogICAgdmFyIHZvcmggPSBaLnBsYW51
bmcua29tbWVudGFyZSAmJiBaLnBsYW51bmcua29tbWVudGFyZVtkYXR1bV0gJiYgWi5wbGFudW5n
LmtvbW1lbnRhcmVbZGF0dW1dW3BpZFN0cl07CiAgICB2YXIgbGlzdGVWb3JoZXIgPSBrb21tZW50
YXJMaXN0ZSh2b3JoKTsKICAgIHZhciBsaXN0ZU5hY2hoZXIgPSBsaXN0ZVZvcmhlci5maWx0ZXIo
ZnVuY3Rpb24oaykgeyByZXR1cm4gay5pZCAhPT0ga29tbWVudGFySWQ7IH0pOwogICAgaWYgKGxp
c3RlTmFjaGhlci5sZW5ndGggPT09IGxpc3RlVm9yaGVyLmxlbmd0aCkgewogICAgICAgIHRvYXN0
KCdLb21tZW50YXIgbG9rYWwgbmljaHQgZ2VmdW5kZW4nLCAnd2FybnVuZycpOwogICAgICAgIGlm
ICh0eXBlb2Ygb25GZXJ0aWcgPT09ICdmdW5jdGlvbicpIG9uRmVydGlnKGZhbHNlKTsKICAgICAg
ICByZXR1cm47CiAgICB9CiAgICAvLyBPcHRpbWlzdGlzY2ggbG9rYWwgZW50ZmVybmVuCiAgICBp
ZiAobGlzdGVOYWNoaGVyLmxlbmd0aCkgewogICAgICAgIFoucGxhbnVuZy5rb21tZW50YXJlW2Rh
dHVtXVtwaWRTdHJdID0gbGlzdGVOYWNoaGVyOwogICAgfSBlbHNlIHsKICAgICAgICBkZWxldGUg
Wi5wbGFudW5nLmtvbW1lbnRhcmVbZGF0dW1dW3BpZFN0cl07CiAgICAgICAgdmFyIHogPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCcuZ3JpZC16ZWxsZVtkYXRhLWRhdHVtPSInICsgZGF0dW0gKyAn
Il1bZGF0YS1wZXJzb249IicgKyBwaWRTdHIgKyAnIl0nKTsKICAgICAgICBpZiAoeikgei5jbGFz
c0xpc3QucmVtb3ZlKCdoYXQta29tbWVudGFyJyk7CiAgICB9CiAgICAvLyBERUxFVEUgbWl0IEJv
ZHkg4oCUIGFwaURlbGV0ZSBpbSBjb3JlX2FwaSBoYXQga2VpbmVuIEJvZHktUGFyYW1ldGVyLAog
ICAgLy8gZGFoZXIgZGlyZWt0ZXIgYXBpKCktQXVmcnVmLgogICAgYXBpKCcvYXBpL3BsYW51bmcv
a29tbWVudGFyJywgewogICAgICAgIG1ldGhvZDogICdERUxFVEUnLAogICAgICAgIGhlYWRlcnM6
IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LAogICAgICAgIGJvZHk6ICAg
IEpTT04uc3RyaW5naWZ5KHsgZGF0dW06IGRhdHVtLCBwZXJzb25JZDogcGVyc29uSWQsIGtvbW1l
bnRhcklkOiBrb21tZW50YXJJZCB9KQogICAgfSkKICAgICAgICAudGhlbihmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgdG9hc3QoJ0tvbW1lbnRhciBnZWzDtnNjaHQnLCAnZXJmb2xnJyk7CiAgICAg
ICAgICAgIGlmICh0eXBlb2Ygb25GZXJ0aWcgPT09ICdmdW5jdGlvbicpIG9uRmVydGlnKHRydWUp
OwogICAgICAgIH0pCiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgLy8g
Um9sbGJhY2sKICAgICAgICAgICAgWi5wbGFudW5nLmtvbW1lbnRhcmVbZGF0dW1dID0gWi5wbGFu
dW5nLmtvbW1lbnRhcmVbZGF0dW1dIHx8IHt9OwogICAgICAgICAgICBaLnBsYW51bmcua29tbWVu
dGFyZVtkYXR1bV1bcGlkU3RyXSA9IGxpc3RlVm9yaGVyOwogICAgICAgICAgICB2YXIgejIgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ3JpZC16ZWxsZVtkYXRhLWRhdHVtPSInICsgZGF0dW0g
KyAnIl1bZGF0YS1wZXJzb249IicgKyBwaWRTdHIgKyAnIl0nKTsKICAgICAgICAgICAgaWYgKHoy
KSB6Mi5jbGFzc0xpc3QuYWRkKCdoYXQta29tbWVudGFyJyk7CiAgICAgICAgICAgIHRvYXN0KCdM
w7ZzY2hlbiBmZWhsZ2VzY2hsYWdlbjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOwogICAgICAg
ICAgICBpZiAodHlwZW9mIG9uRmVydGlnID09PSAnZnVuY3Rpb24nKSBvbkZlcnRpZyhmYWxzZSk7
CiAgICAgICAgfSk7Cn0KCi8vIExlZ2FjeS1XcmFwcGVyOiBmYWVsbHQgYXVmIEhpbnp1ZnVlZ2Vu
IC8gTG9lc2NoZW4tYWxsZXIgenVydWVjay4gTnVyIGZ1ZXIKLy8gQXVmcnVmZXIsIGRpZSBub2No
IG5pY2h0IGF1ZiBkaWUgbmV1ZW4gRnVua3Rpb25lbiB1bWdlc3RlbGx0IHNpbmQgKHouQi4KLy8g
YWx0ZSBCdWxrLU9wZXJhdGlvbmVuKS4gTmV1ZXIgQ29kZSBudXR6dCBrb21tZW50YXJIaW56dWZ1
ZWdlbiBkaXJla3QuCmV4cG9ydCBmdW5jdGlvbiBrb21tZW50YXJTcGVpY2hlcm4oZGF0dW0sIHBl
cnNvbklkLCB0ZXh0KSB7CiAgICB0ZXh0ID0gKHRleHQgfHwgJycpLnRyaW0oKTsKICAgIGlmICh0
ZXh0KSB7CiAgICAgICAga29tbWVudGFySGluenVmdWVnZW4oZGF0dW0sIHBlcnNvbklkLCB0ZXh0
KTsKICAgIH0gZWxzZSB7CiAgICAgICAgLy8gTGVlcmVyIFRleHQgdm9tIExlZ2FjeS1FZGl0b3Ig
aGVpc3N0OiBhbGxlcyBsb2VzY2hlbi4gV2lyIGxvZXNjaGVuCiAgICAgICAgLy8gZGVuIGp1ZW5n
c3RlbiBLb21tZW50YXIgKGRpZSBBdXN3aXJrdW5nIGlzdCBkaWUgZ2xlaWNoZSB3aWUgZnJ1ZWhl
ciwKICAgICAgICAvLyB3ZW5uIG51ciBlaW5lciBleGlzdGllcnQ7IGJlaSBtZWhyZXJlbiBibGVp
YnQgZGVyIFZlcmxhdWYgZXJoYWx0ZW4pLgogICAgICAgIHZhciBsaXN0ZSA9IGtvbW1lbnRhckxp
c3RlKGtvbW1lbnRhckVpbnRyYWcoZGF0dW0sIHBlcnNvbklkKSk7CiAgICAgICAgaWYgKGxpc3Rl
Lmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAgICAgIGtvbW1lbnRhckxvZXNjaGVuKGRhdHVtLCBw
ZXJzb25JZCwgbGlzdGVbbGlzdGUubGVuZ3RoIC0gMV0uaWQpOwogICAgfQp9CgpleHBvcnQgZnVu
Y3Rpb24ga29tbWVudGFyZUltR3JpZEFuemVpZ2VuKCkgewogICAgdmFyIGtvbW1lbnRhcmUgPSBa
LnBsYW51bmcua29tbWVudGFyZSB8fCB7fTsKICAgIE9iamVjdC5rZXlzKGtvbW1lbnRhcmUpLmZv
ckVhY2goZnVuY3Rpb24oZGF0dW0pIHsKICAgICAgICB2YXIgdGFnS29tbSA9IGtvbW1lbnRhcmVb
ZGF0dW1dOwogICAgICAgIE9iamVjdC5rZXlzKHRhZ0tvbW0pLmZvckVhY2goZnVuY3Rpb24ocGlk
KSB7CiAgICAgICAgICAgIHZhciBhbnphaGwgPSBrb21tZW50YXJBbnphaGwodGFnS29tbVtwaWRd
KTsKICAgICAgICAgICAgaWYgKGFuemFobCA9PT0gMCkgcmV0dXJuOwogICAgICAgICAgICB2YXIg
eiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ncmlkLXplbGxlW2RhdGEtZGF0dW09IicgKyBk
YXR1bSArICciXVtkYXRhLXBlcnNvbj0iJyArIHBpZCArICciXScpOwogICAgICAgICAgICBpZiAo
IXopIHJldHVybjsKICAgICAgICAgICAgei5jbGFzc0xpc3QuYWRkKCdoYXQta29tbWVudGFyJyk7
CiAgICAgICAgICAgIC8vIENvdW50ZXItQXR0cmlidXQgc3RldWVydCBkZW4gTXVsdGktS29tbWVu
dGFyLUluZGlrYXRvciBpbSBDU1MKICAgICAgICAgICAgLy8gKGRhdGEta29tbWVudGFyLWFuemFo
bD0yLi5OIC0+IHp1c2FldHpsaWNoZXMgQmFkZ2UgbWl0IFphaGwpLgogICAgICAgICAgICAvLyBC
ZWkgMSBLb21tZW50YXIgYmxlaWJ0IG51ciBkZXIgc2NobGljaHRlIEVjay1EcmVpZWNrLU1hcmtl
ci4KICAgICAgICAgICAgaWYgKGFuemFobCA+IDEpIHsKICAgICAgICAgICAgICAgIHouc2V0QXR0
cmlidXRlKCdkYXRhLWtvbW1lbnRhci1hbnphaGwnLCBTdHJpbmcoYW56YWhsKSk7CiAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB6LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1rb21t
ZW50YXItYW56YWhsJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gS2VpbiB0aXRsZS1T
dWZmaXggbWVociDigJQgZGFzIEhUTUwtUG9wb3ZlciAoa29tbWVudGFyUG9wb3ZlclplaWdlbikK
ICAgICAgICAgICAgLy8gcmVuZGVydCBiZWltIEhvdmVyIGRlbiB2b2xsc3RhZW5kaWdlbiBJbmhh
bHQuIE5hdGl2ZSB0aXRsZSBibGVpYnQKICAgICAgICAgICAgLy8gZGFtaXQgZnVlciBTY2hpY2h0
Y29kZS9Mb2NrL1ZlcmZ1ZWdiYXJrZWl0IHJlc2VydmllcnQuCiAgICAgICAgfSk7CiAgICB9KTsK
fQoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQovLyBGSUxMLUhBTkRMRSAoRXhjZWwtYWVobmxpY2hl
ciBGdWVsbC1HcmlmZiBmdWVyIFBsYW5ndW5ncy1aZWxsZW4pCi8vCi8vIE5hY2ggZGVtIFNwZWlj
aGVybiBlaW5lcyBTY2hpY2h0d2VydHMgZXJzY2hlaW50IHVudGVuIHJlY2h0cyBhbiBkZXIKLy8g
UXVlbGwtWmVsbGUgZWluIGtsZWluZXMgYmxhdWVzIFF1YWRyYXQuIE1pdCBnZWRydWVja3RlciBN
YXVzdGFzdGUgbmFjaAovLyByZWNodHMgb2RlciBsaW5rcyB6aWVoZW4gLT4gZGVyIFdlcnQgd2ly
ZCBhdWYgZGllIHVlYmVyc3RyaWNoZW5lbiBUYWdlCi8vIGRlcnNlbGJlbiBQZXJzb24gdWViZXJ0
cmFnZW4gKGdlbmF1IHdpZSBkYXMgRXhjZWwtRnVlbGxrYWVzdGNoZW4pLgovLwovLyBQZXJtaXNz
aW9uLUNoZWNrIGplIFppZWwtWmVsbGUgdWViZXIgZGFyZlplbGxlRWRpdGllcmVuIC0tIGdlc3Bl
cnJ0ZQovLyBaZWxsZW4gd2VyZGVuIHVlYmVyc3BydW5nZW4sIG5pY2h0IGdlZnVlbGx0LiBEaWUg
ZWlnZW50bGljaGUgU2NocmVpYi0KLy8gb3BlcmF0aW9uIGxhZXVmdCBhbHMgZWluIGVpbnppZ2Vy
IEJ1bGstUE9TVCBhbiAvYXBpL3BsYW51bmcvemVsbGVuLWJ1bGsKLy8gLS0gZWluIEhUVFAtUm91
bmR0cmlwICsgZWluIERhdGVpLVNjaHJlaWJ2b3JnYW5nIGZ1ZXIgZGVuIGdhbnplbiBEcmFnLgov
LyBPcHRpbWlzdGlzY2hlcyBsb2thbGVzIFVwZGF0ZSArIFJvbGxiYWNrIGJlaSBTZXJ2ZXItRmVo
bGVyIG9kZXIgcGVyLQovLyBaZWxsZS1QZXJtaXNzaW9uLUFibGVobnVuZy4KLy8gPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQoKdmFyIGZ1ZWxsID0geyBxdWVsbGU6IG51bGwsIGFrdGl2OiBmYWxzZSwgemll
bGU6IFtdIH07CgovLyBTcHJpbnQgRC0xICgyMDI2LTA1LTI5KTogRWlubWFsaWdlciBEaXNjb3Zl
cnktSGludCBmdWVyIGRlbiBGaWxsLUhhbmRsZS4KLy8gVXNlciB3aXNzZW4gb2Z0IG5pY2h0LCBk
YXNzIGRhcyBrbGVpbmUgUXVhZHJhdCB1bnRlbiByZWNodHMgaW4gZGVyIGFrdGl2ZW4KLy8gWmVs
bGUgRXhjZWwtYWVobmxpY2hlIERyYWctRmlsbC1GdW5rdGlvbmFsaXRhZXQgYmlldGV0LiBCZWlt
IGVyc3RlbiBNYWwKLy8gemVpZ2VuIHdpciBlaW5lbiBUaXBwLVRvYXN0LCBkYW5hY2ggbmllIHdp
ZWRlciAobG9jYWxTdG9yYWdlLUZsYWcpLgovLyAudjI6IFRpcHAtVGV4dCB3dXJkZSBrb3JyaWdp
ZXJ0IChudXIgbGlua3MvcmVjaHRzKSDigJQgS2V5IGdlYnVtcHQsIGRhbWl0IGRlcgovLyBuZXVl
IEhpbndlaXMgYXVjaCBOdXR6ZXJuLCBkaWUgZGVuIGFsdGVuIGdlc2VoZW4gaGFiZW4sIGVpbm1h
bGlnIGVyc2NoZWludC4KdmFyIEZJTExfSElOVF9MU19LRVkgPSAndmkzLmZpbGxIYW5kbGVIaW50
R2VzZWhlbi52Mic7CmZ1bmN0aW9uIGZ1ZWxsSGludEVpbm1hbGlnWmVpZ2VuKCkgewogICAgdHJ5
IHsKICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oRklMTF9ISU5UX0xTX0tFWSkgPT09
ICcxJykgcmV0dXJuOwogICAgICAgIHRvYXN0KCdUaXBwOiBEYXMga2xlaW5lIFF1YWRyYXQgdW50
ZW4gcmVjaHRzIGluIGRlciBaZWxsZSBrYW5uc3QgZHUgbmFjaCBsaW5rcyBvZGVyIHJlY2h0cyB6
aWVoZW4g4oCUIGRlciBXZXJ0IHdpcmQgYXVmIGFsbGUgWmVsbGVuIGluIGRlcnNlbGJlbiBaZWls
ZSB1ZWJlcnRyYWdlbi4gKE51ciBpbm5lcmhhbGIgZGVyIGVpZ2VuZW4gWmVpbGUsIGtlaW4gQXVz
ZnVlbGxlbiBuYWNoIG9iZW4vdW50ZW4uKScsICdpbmZvJywgeyBkYXVlcjogMTAwMDAgfSk7CiAg
ICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oRklMTF9ISU5UX0xTX0tFWSwgJzEnKTsKICAgIH0g
Y2F0Y2ggKF8pIHsgLyogbG9jYWxTdG9yYWdlIGthbm4gYmxvY2tpZXJ0IHNlaW4sIGRhbm4gZWJl
biBrZWluIEhpbnQgKi8gfQp9CgpleHBvcnQgZnVuY3Rpb24gZnVlbGxIYW5kbGVaZWlnZW4ocXVl
bGxlKSB7CiAgICAvLyBxdWVsbGUgPSB7IGRhdHVtLCBwaWQsIHdlcnQgfQogICAgZnVlbGxIYW5k
bGVWZXJzdGVja2VuKCk7CiAgICBmdWVsbC5xdWVsbGUgPSBxdWVsbGU7CiAgICBmdWVsbEhpbnRF
aW5tYWxpZ1plaWdlbigpOwogICAgLy8gSGF1cHQtU2VsZWt0b3IgKHplaWxlLWdlYnVuZGVuKSAr
IEZhbGxiYWNrICh6ZWxsZSBkaXJla3QpIOKAlCBaZWxsZW4KICAgIC8vIHRyYWdlbiBzb3dvaGwg
ZGF0YS1kYXR1bSBhbHMgYXVjaCBkYXRhLXBlcnNvbiwgZGVyIEZhbGxiYWNrIGdyZWlmdAogICAg
Ly8gZmFsbHMgZGllIGdyaWQtemVpbGUtV3JhcHBlci1TdHJ1a3R1ciBzaWNoIGFlbmRlcnQuCiAg
ICB2YXIgcXVlbGxaZWxsZSA9CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2dyaWQt
ZGF0ZW4gLmdyaWQtemVpbGVbZGF0YS1wZXJzb24taWQ9IicgKyBxdWVsbGUucGlkICsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICciXSAuZ3JpZC16ZWxsZVtkYXRhLWRhdHVtPSInICsg
cXVlbGxlLmRhdHVtICsgJyJdJykgfHwKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcu
Z3JpZC16ZWxsZVtkYXRhLWRhdHVtPSInICsgcXVlbGxlLmRhdHVtICsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICciXVtkYXRhLXBlcnNvbj0iJyArIHF1ZWxsZS5waWQgKyAnIl0nKTsK
ICAgIGlmICghcXVlbGxaZWxsZSkgcmV0dXJuOwogICAgcXVlbGxaZWxsZS5jbGFzc0xpc3QuYWRk
KCdncmlkLXplbGxlLWZpbGwtc291cmNlJyk7CiAgICB2YXIgaCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdmaWxsLWhhbmRsZScpOwogICAgaWYgKCFoKSB7CiAgICAgICAgaCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGguaWQgPSAnZmlsbC1oYW5kbGUnOwogICAg
ICAgIGgudGl0bGUgPSAnWmllaGVuLCB1bSBkZW4gV2VydCBhdWYgd2VpdGVyZSBUYWdlIGluIGRp
ZXNlciBaZWlsZSB6dSDDvGJlcnRyYWdlbic7CiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChoKTsKICAgICAgICBoLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1ZWxsU3Rh
cnQpOwogICAgfQogICAgLy8gSGFuZGxlIHZvbGxzdGFlbmRpZyBJTk5FUkhBTEIgZGVyIFplbGxl
IGluIGRlciB1bnRlcmVuIHJlY2h0ZW4gRWNrZQogICAgLy8gcGxhdHppZXJlbiAoOHg4cHggSWNv
biArIDFweCBSYW5kIHp1bSBaZWxscmFuZCkuIFdlcnRlIG11ZXNzZW4gbWl0CiAgICAvLyBDU1Mt
R3JvZXNzZSAjZmlsbC1oYW5kbGUgaW4gc3R5bGUuY3NzIHp1c2FtbWVucGFzc2VuLgogICAgdmFy
IHIgPSBxdWVsbFplbGxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgaC5zdHlsZS5sZWZ0
ID0gKHIucmlnaHQgLSA5KSArICdweCc7CiAgICBoLnN0eWxlLnRvcCAgPSAoci5ib3R0b20gLSA5
KSArICdweCc7CiAgICBoLnN0eWxlLmRpc3BsYXkgPSAnJzsKfQoKLy8gQW5rZXJwdW5rdCBmdWVy
IGRlbiBTaW5nbGUtQ2xpY2sgYXVmIGVpbmUgWmVsbGU6IGxpZXN0IGRhdHVtL3BpZC93ZXJ0Ci8v
IGRpcmVrdCBhdXMgZGVtIERPTS1FbGVtZW50IHVuZCBwb3NpdGlvbmllcnQgZGFzIEhhbmRsZSBk
b3J0LiBTbwovLyBlcnNjaGVpbnQgZGFzIFF1YWRyYXQgZGF1ZXJoYWZ0IGFuIGRlciB6dWxldHp0
IGFrdGl2aWVydGVuIFplbGxlIOKAlAovLyBhbmFsb2cgenVyICJha3RpdmVuIFplbGxlIiBpbiBF
eGNlbC4KZXhwb3J0IGZ1bmN0aW9uIGZ1ZWxsSGFuZGxlQW5aZWxsZSh6ZWxsZSkgewogICAgaWYg
KCF6ZWxsZSB8fCAhemVsbGUuY2xhc3NMaXN0IHx8ICF6ZWxsZS5jbGFzc0xpc3QuY29udGFpbnMo
J2dyaWQtemVsbGUnKSkgcmV0dXJuOwogICAgdmFyIGRhdHVtID0gemVsbGUuZ2V0QXR0cmlidXRl
KCdkYXRhLWRhdHVtJyk7CiAgICB2YXIgcGlkID0gemVsbGUuZ2V0QXR0cmlidXRlKCdkYXRhLXBl
cnNvbicpOwogICAgaWYgKCFkYXR1bSB8fCAhcGlkKSByZXR1cm47CiAgICB2YXIgd2VydCA9ICgo
Wi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7fSlbZGF0dW1dIHx8IHt9KVtwaWRdIHx8ICcnOwogICAg
ZnVlbGxIYW5kbGVaZWlnZW4oeyBkYXR1bTogZGF0dW0sIHBpZDogcGlkLCB3ZXJ0OiB3ZXJ0IH0p
Owp9CgpleHBvcnQgZnVuY3Rpb24gZnVlbGxIYW5kbGVWZXJzdGVja2VuKCkgewogICAgdmFyIGgg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlsbC1oYW5kbGUnKTsKICAgIGlmIChoKSBoLnN0
eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3Jp
ZC16ZWxsZS1maWxsLXRhcmdldCwuZ3JpZC16ZWxsZS1maWxsLXNvdXJjZScpCiAgICAgICAgLmZv
ckVhY2goZnVuY3Rpb24oZWwpIHsgZWwuY2xhc3NMaXN0LnJlbW92ZSgnZ3JpZC16ZWxsZS1maWxs
LXRhcmdldCcsJ2dyaWQtemVsbGUtZmlsbC1zb3VyY2UnKTsgfSk7CiAgICBmdWVsbC5xdWVsbGUg
PSBudWxsOwogICAgZnVlbGwuYWt0aXYgPSBmYWxzZTsKICAgIGZ1ZWxsLnppZWxlID0gW107Cn0K
Ci8vIEV4dGVybmVyIExlc2UtSGVscGVyOiBsYWV1ZnQgZ2VyYWRlIGVpbiBEcmFnLVZvcmdhbmc/
IFdpcmQgdm9tIEhvdmVyLQovLyBIYW5kbGVyIGluIGFwcC5qcyBnZXBydWVmdCwgZGFtaXQgZGFz
IFZlcmxhc3NlbiBkZXMgR3JpZCB3YWVocmVuZCBlaW5lcwovLyBEcmFncyBuaWNodCBkYXMgSGFu
ZGxlIHZlcnN0ZWNrdCB1bmQgZGVuIERyYWcgYWJicmljaHQuCmV4cG9ydCBmdW5jdGlvbiBmdWVs
bElzdEFrdGl2KCkgeyByZXR1cm4gZnVlbGwuYWt0aXY7IH0KCmZ1bmN0aW9uIGZ1ZWxsU3RhcnQo
ZSkgewogICAgaWYgKCFmdWVsbC5xdWVsbGUpIHJldHVybjsKICAgIGUucHJldmVudERlZmF1bHQo
KTsKICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICBmdWVsbC5ha3RpdiA9IHRydWU7CiAgICBm
dWVsbC56aWVsZSA9IFtdOwogICAgLy8gV2FlaHJlbmQgZGVzIERyYWdzIEhhbmRsZSBkdXJjaGts
aWNrYmFyIG1hY2hlbiDigJQgc29uc3QgbGllZmVydAogICAgLy8gZWxlbWVudEZyb21Qb2ludCBk
YXMgSGFuZGxlIHN0YXR0IGRpZSBaZWxsZSBkYXJ1bnRlciwgdW5kIGRlciBEcmFnCiAgICAvLyB2
ZXJmZWhsdCBkYXMgWmllbC4KICAgIHZhciBoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zp
bGwtaGFuZGxlJyk7CiAgICBpZiAoaCkgaC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnOwog
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZnVlbGxNb3ZlKTsKICAg
IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmdWVsbEVuZCk7CiAgICBkb2N1
bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICdjcm9zc2hhaXInOwp9CgpmdW5jdGlvbiBmdWVsbE1v
dmUoZSkgewogICAgaWYgKCFmdWVsbC5ha3RpdikgcmV0dXJuOwogICAgdmFyIHppZWwgPSBkb2N1
bWVudC5lbGVtZW50RnJvbVBvaW50KGUuY2xpZW50WCwgZS5jbGllbnRZKTsKICAgIGlmICghemll
bCkgcmV0dXJuOwogICAgLy8gRGVmZW5zaXZlOiBmYWxscyBhdXMgaXJnZW5kZWluZW0gR3J1bmQg
ZGFzIEhhbmRsZSBkb2NoIGltIFdlZyBpc3QKICAgIGlmICh6aWVsLmlkID09PSAnZmlsbC1oYW5k
bGUnKSByZXR1cm47CiAgICB2YXIgemVsbGUgPSB6aWVsLmNsb3Nlc3QgJiYgemllbC5jbG9zZXN0
KCcuZ3JpZC16ZWxsZScpOwogICAgaWYgKCF6ZWxsZSkgcmV0dXJuOwogICAgLy8gTlVSIGhvcml6
b250YWwgaW4gZGVyIEVJR0VORU4gWmVpbGU6IGRlciBDdXJzb3IgYmVzdGltbXQgYWxsZWluIGRp
ZQogICAgLy8gU1BBTFRFIChEYXR1bSk7IGRpZSBaZWlsZSAoUGVyc29uKSBibGVpYnQgSU1NRVIg
ZGllIFF1ZWxsLVplaWxlLiBEYW1pdAogICAgLy8gZ2lidCBlcyBrZWluIEVyd2VpdGVybiBuYWNo
IG9iZW4vdW50ZW4g4oCUIGF1Y2ggd2VubiBkZXIgQ3Vyc29yIHZlcnRpa2FsCiAgICAvLyBhYmRy
aWZ0ZXQsIGZvbGd0IGRlciBGaWxsIG51ciBkZXIgU3BhbHRlIGluIGRlciBBdXNnYW5nc3plaWxl
ICh3aWUgZGVyCiAgICAvLyBFeGNlbC1GaWxsLUdyaWZmLCBoaWVyIGJld3Vzc3QgYXVmIGRpZSBl
aW5lIFplaWxlIGJlc2NocmFlbmt0KS4KICAgIHZhciBkYXR1bSA9IHplbGxlLmdldEF0dHJpYnV0
ZSgnZGF0YS1kYXR1bScpOwogICAgaWYgKCFkYXR1bSkgcmV0dXJuOwogICAgdmFyIGlTdGFydCA9
IC0xLCBpRW5kID0gLTE7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IFoudGFnZS5sZW5ndGg7IGkr
KykgewogICAgICAgIHZhciBkcyA9IGRhdHVtU3RyKFoudGFnZVtpXSk7CiAgICAgICAgaWYgKGRz
ID09PSBmdWVsbC5xdWVsbGUuZGF0dW0pIGlTdGFydCA9IGk7CiAgICAgICAgaWYgKGRzID09PSBk
YXR1bSkgaUVuZCA9IGk7CiAgICB9CiAgICBpZiAoaVN0YXJ0IDwgMCB8fCBpRW5kIDwgMCkgcmV0
dXJuOwogICAgdmFyIGxvID0gTWF0aC5taW4oaVN0YXJ0LCBpRW5kKSwgaGkgPSBNYXRoLm1heChp
U3RhcnQsIGlFbmQpOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmdyaWQtemVsbGUt
ZmlsbC10YXJnZXQnKQogICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7IGVsLmNsYXNzTGlz
dC5yZW1vdmUoJ2dyaWQtemVsbGUtZmlsbC10YXJnZXQnKTsgfSk7CiAgICB2YXIgemllbGUgPSBb
XTsKICAgIGlmIChkYXJmWmVsbGVFZGl0aWVyZW4oZnVlbGwucXVlbGxlLnBpZCkpIHsKICAgICAg
ICBmb3IgKHZhciBqID0gbG87IGogPD0gaGk7IGorKykgewogICAgICAgICAgICB2YXIgZFN0ciA9
IGRhdHVtU3RyKFoudGFnZVtqXSk7CiAgICAgICAgICAgIGlmIChkU3RyID09PSBmdWVsbC5xdWVs
bGUuZGF0dW0pIGNvbnRpbnVlOwogICAgICAgICAgICB2YXIgeiA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoCiAgICAgICAgICAgICAgICAnI2dyaWQtZGF0ZW4gLmdyaWQtemVpbGVbZGF0YS1wZXJz
b24taWQ9IicgKyBmdWVsbC5xdWVsbGUucGlkICsKICAgICAgICAgICAgICAgICciXSAuZ3JpZC16
ZWxsZVtkYXRhLWRhdHVtPSInICsgZFN0ciArICciXScKICAgICAgICAgICAgKTsKICAgICAgICAg
ICAgaWYgKCF6KSBjb250aW51ZTsKICAgICAgICAgICAgei5jbGFzc0xpc3QuYWRkKCdncmlkLXpl
bGxlLWZpbGwtdGFyZ2V0Jyk7CiAgICAgICAgICAgIHppZWxlLnB1c2goZFN0cik7CiAgICAgICAg
fQogICAgfQogICAgZnVlbGwuemllbGUgPSB6aWVsZTsKfQoKZnVuY3Rpb24gZnVlbGxFbmQoKSB7
CiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmdWVsbE1vdmUp
OwogICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZ1ZWxsRW5kKTsK
ICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJyc7CiAgICB2YXIgaCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdmaWxsLWhhbmRsZScpOwogICAgaWYgKGgpIGguc3R5bGUucG9pbnRl
ckV2ZW50cyA9ICcnOwogICAgaWYgKCFmdWVsbC5ha3RpdikgcmV0dXJuOwogICAgZnVlbGwuYWt0
aXYgPSBmYWxzZTsKICAgIHZhciB6aWVsZSA9IGZ1ZWxsLnppZWxlLnNsaWNlKCk7CiAgICB2YXIg
cXVlbGxlID0gZnVlbGwucXVlbGxlOwogICAgaWYgKCFxdWVsbGUgfHwgIXppZWxlLmxlbmd0aCkg
ewogICAgICAgIGZ1ZWxsSGFuZGxlVmVyc3RlY2tlbigpOwogICAgICAgIHJldHVybjsKICAgIH0K
ICAgIHZhciB3ZXJ0ID0gcXVlbGxlLndlcnQ7CiAgICB2YXIgcGlkID0gcXVlbGxlLnBpZDsKICAg
IGZ1ZWxsSGFuZGxlVmVyc3RlY2tlbigpOwogICAgaWYgKCFaLnBsYW51bmcuZWludHJhZWdlKSBa
LnBsYW51bmcuZWludHJhZWdlID0ge307CgogICAgLy8gT3B0aW1pc3Rpc2NoZXMgbG9rYWxlcyBV
cGRhdGUg4oCUIFVJIHJlYWdpZXJ0IHNvZm9ydCwgb2huZSBhdWYgZGVuCiAgICAvLyBTZXJ2ZXIg
enUgd2FydGVuLiBCYWNrdXAgZGVyIHZvcmlnZW4gV2VydGUgZnVlciBSb2xsYmFjayBiZWkgRmVo
bGVyLgogICAgdmFyIHJvbGxiYWNrID0ge307CiAgICB2YXIgcGF5bG9hZCA9IHppZWxlLm1hcChm
dW5jdGlvbihkU3RyKSB7CiAgICAgICAgaWYgKCFaLnBsYW51bmcuZWludHJhZWdlW2RTdHJdKSBa
LnBsYW51bmcuZWludHJhZWdlW2RTdHJdID0ge307CiAgICAgICAgcm9sbGJhY2tbZFN0cl0gPSBa
LnBsYW51bmcuZWludHJhZWdlW2RTdHJdW3BpZF0gfHwgJyc7CiAgICAgICAgaWYgKHdlcnQpIFou
cGxhbnVuZy5laW50cmFlZ2VbZFN0cl1bcGlkXSA9IHdlcnQ7CiAgICAgICAgZWxzZSBkZWxldGUg
Wi5wbGFudW5nLmVpbnRyYWVnZVtkU3RyXVtwaWRdOwogICAgICAgIHJldHVybiB7IGRhdHVtOiBk
U3RyLCBwZXJzb25JZDogcGlkLCB3ZXJ0OiB3ZXJ0IH07CiAgICB9KTsKICAgIC8vIElua3JlbWVu
dGVsbCBzdGF0dCBWb2xsLVJlbmRlcjogbnVyIGRpZSBOIGdlZnVlbGx0ZW4gWmVsbGVuIHBhdGNo
ZW4KICAgIC8vICh6ZWxsZVZpc3VlbGxBa3R1YWxpc2llcmVuIGFrdHVhbGlzaWVydCBwcm8gVGFn
IGF1Y2ggREdMLVNjaHJhZmZ1ciArCiAgICAvLyBTdGFlcmtlLVplbGxlKS4gU3BhcnQgYXVmIGRl
bSBCZWhvZXJkZW4tUEMgZGVuIH4xOC4wMDAtS25vdGVuLVJlYnVpbGQKICAgIC8vIG5hY2ggamVk
ZW0gRHJhZyDigJQgZGVyIGZydWVoZXIgZGVyIGdyb2Vzc3RlIHNwdWVyYmFyZSBSdWNrbGVyIHdh
ci4gRGllCiAgICAvLyBzZWx0ZW5lbiBSZWplY3QtL0ZlaGxlci1ad2VpZ2UgdW50ZW4gcmVuZGVy
biBiZXd1c3N0IHdlaXRlcmhpbiB2b2xsCiAgICAvLyAoZWluZmFjaGVyICsgc2ljaGVyZXIgUm9s
bGJhY2sgYmVpIFBlcm1pc3Npb24tL05ldHp3ZXJrLUZlaGxlcm4pLgogICAgcGF5bG9hZC5mb3JF
YWNoKGZ1bmN0aW9uKHApIHsgemVsbGVWaXN1ZWxsQWt0dWFsaXNpZXJlbihwLmRhdHVtLCBwLnBl
cnNvbklkLCBwLndlcnQpOyB9KTsKCiAgICAvLyBFaW4gZWluemlnZXIgSFRUUC1Sb3VuZHRyaXAg
4oCUIGRlciBTZXJ2ZXIgc2NocmVpYnQgZGllIERhdGVpIG51cgogICAgLy8gZWlubWFsLCBzdGF0
dCBOLW1hbCBzZXF1ZW56aWVsbC4KICAgIGFwaVBvc3QoJy9hcGkvcGxhbnVuZy96ZWxsZW4tYnVs
aycsIHsgZWludHJhZWdlOiBwYXlsb2FkIH0pLnRoZW4oZnVuY3Rpb24ocmVzKSB7CiAgICAgICAg
dmFyIG9rID0gKHJlcyAmJiByZXMub2sgIT0gbnVsbCkgPyByZXMub2sgOiBwYXlsb2FkLmxlbmd0
aDsKICAgICAgICB2YXIgYWJnZWxlaG50ID0gKHJlcyAmJiByZXMuYWJnZWxlaG50KSB8fCBbXTsK
ICAgICAgICBpZiAoYWJnZWxlaG50Lmxlbmd0aCkgewogICAgICAgICAgICAvLyBTZXJ2ZXIgaGF0
IFBlcm1pc3Npb24tQ2hlY2sgamUgWmVsbGUuIFdhcyBhYmdlbGVobnQgd3VyZGUsCiAgICAgICAg
ICAgIC8vIHJvbGxlbiB3aXIgbG9rYWwgc29mb3J0IHp1cnVlY2sg4oCUIHNvbnN0IHdlaWNodCBV
SSB2b24gREIgYWIuCiAgICAgICAgICAgIGFiZ2VsZWhudC5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsK
ICAgICAgICAgICAgICAgIHZhciBhbHQgPSByb2xsYmFja1tkLmRhdHVtXTsKICAgICAgICAgICAg
ICAgIGlmICghWi5wbGFudW5nLmVpbnRyYWVnZVtkLmRhdHVtXSkgWi5wbGFudW5nLmVpbnRyYWVn
ZVtkLmRhdHVtXSA9IHt9OwogICAgICAgICAgICAgICAgaWYgKGFsdCkgWi5wbGFudW5nLmVpbnRy
YWVnZVtkLmRhdHVtXVtwaWRdID0gYWx0OwogICAgICAgICAgICAgICAgZWxzZSBkZWxldGUgWi5w
bGFudW5nLmVpbnRyYWVnZVtkLmRhdHVtXVtwaWRdOwogICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgZGF0ZW5HcmlkUmVuZGVybigpOwogICAgICAgICAgICBrb3BmUmVuZGVybigpOwogICAgICAg
ICAgICB0b2FzdCgnV2VydCBpbiAnICsgb2sgKyAnIFRhZycgKyAob2sgIT09IDEgPyAnZW4nIDog
JycpICsgJyDDvGJlcnRyYWdlbiwgJyArCiAgICAgICAgICAgICAgICAgIGFiZ2VsZWhudC5sZW5n
dGggKyAnIGFiZ2VsZWhudCAoa2VpbmUgQmVyZWNodGlndW5nKScsICd3YXJudW5nJyk7CiAgICAg
ICAgICAgIC8vIFJlc3luYyAoU3ByaW50IDIg4oCUIERhdGVubW9kZWxsLUtvbnNpc3RlbnogMjAy
Ni0wNS0yOCk6CiAgICAgICAgICAgIC8vIExva2FsZXIgUm9sbGJhY2sgbnV0enQgZGVuIFpXSVND
SEVOR0VTUEVJQ0hFUlRFTiBXZXJ0IHZvbiB2b3IKICAgICAgICAgICAgLy8gZGVtIEJ1bGstU2No
cmVpYi4gV2VubiB3YWVocmVuZGRlc3NlbiBqZW1hbmQgYW5kZXJlcyB2aWEgU3luYwogICAgICAg
ICAgICAvLyBkaWVzZSBaZWxsZSB2ZXJhZW5kZXJ0IGhhdCAob2RlciBkZXIgU2VydmVyLVBlcm1p
c3Npb24tV2VjaHNlbAogICAgICAgICAgICAvLyBGYWt0IHdhciksIHplaWd0IGRlciBSb2xsYmFj
ayBlaW5lbiB2ZXJhbHRldGVuIFN0YW5kLiBXaXIgaG9sZW4KICAgICAgICAgICAgLy8gZGllIFNl
cnZlci1XYWhyaGVpdCBuYWNoIHVuZCBtZXJnZW4gTlVSIGRpZSBhYmdlbGVobnRlbiBEYXR1bXMt
CiAgICAgICAgICAgIC8vIEJ1Y2tldHMsIGRhbWl0IGFuZGVyZSBsb2thbGUgQWVuZGVydW5nZW4g
dW5hbmdldGFzdGV0IGJsZWliZW4uCiAgICAgICAgICAgIGFwaSgnL2FwaS9wbGFudW5nJykudGhl
bihmdW5jdGlvbihzZXJ2ZXJTdGFuZCkgewogICAgICAgICAgICAgICAgaWYgKCFzZXJ2ZXJTdGFu
ZCB8fCAhc2VydmVyU3RhbmQuZWludHJhZWdlKSByZXR1cm47CiAgICAgICAgICAgICAgICB2YXIg
YWVuZGVydW5nZW4gPSAwOwogICAgICAgICAgICAgICAgYWJnZWxlaG50LmZvckVhY2goZnVuY3Rp
b24oZCkgewogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXJXZXJ0ID0gKHNlcnZlclN0YW5k
LmVpbnRyYWVnZVtkLmRhdHVtXSB8fCB7fSlbcGlkXTsKICAgICAgICAgICAgICAgICAgICB2YXIg
bG9rYWxXZXJ0ICA9IChaLnBsYW51bmcuZWludHJhZWdlW2QuZGF0dW1dIHx8IHt9KVtwaWRdOwog
ICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXJXZXJ0ICE9PSBsb2thbFdlcnQpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKCFaLnBsYW51bmcuZWludHJhZWdlW2QuZGF0dW1dKSBaLnBs
YW51bmcuZWludHJhZWdlW2QuZGF0dW1dID0ge307CiAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChzZXJ2ZXJXZXJ0KSBaLnBsYW51bmcuZWludHJhZWdlW2QuZGF0dW1dW3BpZF0gPSBzZXJ2ZXJX
ZXJ0OwogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGRlbGV0ZSBaLnBsYW51bmcuZWludHJh
ZWdlW2QuZGF0dW1dW3BpZF07CiAgICAgICAgICAgICAgICAgICAgICAgIGFlbmRlcnVuZ2VuKys7
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAg
ICBpZiAoYWVuZGVydW5nZW4pIHsgZGF0ZW5HcmlkUmVuZGVybigpOyBrb3BmUmVuZGVybigpOyB9
CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCkgeyAvKiBzdGlsbGVyIEZlaGxlciDigJQg
U3luYy1Xb3JrZXIgZmFlbmd0J3MgYmVpbSBuYWVjaHN0ZW4gVGljayAqLyB9KTsKICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICB0b2FzdCh3ZXJ0CiAgICAgICAgICAgICAgICA/ICdXZXJ0IOKA
nicgKyB3ZXJ0ICsgJyIgaW4gJyArIG9rICsgJyBUYWcnICsgKG9rICE9PSAxID8gJ2VuJyA6ICcn
KSArICcgw7xiZXJ0cmFnZW4nCiAgICAgICAgICAgICAgICA6ICdXZXJ0IGluICcgKyBvayArICcg
VGFnJyArIChvayAhPT0gMSA/ICdlbicgOiAnJykgKyAnIGdlbGVlcnQnLAogICAgICAgICAgICAg
ICAgJ2VyZm9sZycpOwogICAgICAgIH0KICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikgewogICAg
ICAgIC8vIEJlaSBOZXR6d2Vyay0vU2VydmVyLUZlaGxlciBrb21wbGV0dCB6dXJ1ZWNrc2V0emVu
LgogICAgICAgIHppZWxlLmZvckVhY2goZnVuY3Rpb24oZFN0cikgewogICAgICAgICAgICB2YXIg
YWx0ID0gcm9sbGJhY2tbZFN0cl07CiAgICAgICAgICAgIGlmICghWi5wbGFudW5nLmVpbnRyYWVn
ZVtkU3RyXSkgWi5wbGFudW5nLmVpbnRyYWVnZVtkU3RyXSA9IHt9OwogICAgICAgICAgICBpZiAo
YWx0KSBaLnBsYW51bmcuZWludHJhZWdlW2RTdHJdW3BpZF0gPSBhbHQ7CiAgICAgICAgICAgIGVs
c2UgZGVsZXRlIFoucGxhbnVuZy5laW50cmFlZ2VbZFN0cl1bcGlkXTsKICAgICAgICB9KTsKICAg
ICAgICBkYXRlbkdyaWRSZW5kZXJuKCk7CiAgICAgICAga29wZlJlbmRlcm4oKTsKICAgICAgICB0
b2FzdCgnQnVsay1GZWhsZXI6ICcgKyBlcnIubWVzc2FnZSArICcg4oCUIEFlbmRlcnVuZ2VuIHp1
cnVlY2tnZW5vbW1lbicsICdmZWhsZXInKTsKICAgIH0pOwp9CgovLyBHbG9iYWxlIExpc3RlbmVy
IOKAlCBlaW5tYWwgYmVpbSBBcHAtSW5pdCBhdWZydWZlbi4KLy8gS2xpY2sgYXVzc2VyaGFsYiB2
b24gR3JpZCArIEVkaXRvciArIEhhbmRsZSBibGVuZGV0IGRlbiBHcmlmZiBhdXMsCi8vIFNjcm9s
bGVuIGViZW5zbyAoUG9zaXRpb24gd2FlcmUgc29uc3QgZmFsc2NoKS4KZXhwb3J0IGZ1bmN0aW9u
IGZ1ZWxsSW5pdCgpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVu
Y3Rpb24oZSkgewogICAgICAgIGlmIChlLnRhcmdldC5pZCA9PT0gJ2ZpbGwtaGFuZGxlJykgcmV0
dXJuOwogICAgICAgIGlmIChlLnRhcmdldC5jbG9zZXN0ICYmIGUudGFyZ2V0LmNsb3Nlc3QoJyNn
cmlkLWRhdGVuJykpIHJldHVybjsKICAgICAgICBpZiAoZS50YXJnZXQuY2xvc2VzdCAmJiBlLnRh
cmdldC5jbG9zZXN0KCcjemVsbC1lZGl0b3InKSkgcmV0dXJuOwogICAgICAgIGZ1ZWxsSGFuZGxl
VmVyc3RlY2tlbigpOwogICAgfSk7CiAgICB2YXIgZ3JpZFNjcm9sbCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdncmlkLXNjcm9sbC1jb250YWluZXInKTsKICAgIGlmIChncmlkU2Nyb2xsKSB7
CiAgICAgICAgZ3JpZFNjcm9sbC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgaWYgKGZ1ZWxsLnF1ZWxsZSAmJiAhZnVlbGwuYWt0aXYpIGZ1ZWxsSGFu
ZGxlVmVyc3RlY2tlbigpOwogICAgICAgIH0pOwogICAgfQogICAgLy8gRVNDIGJyaWNodCBlaW5l
biBsYXVmZW5kZW4gRHJhZyBhYi4KICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRv
d24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJyAmJiBmdWVs
bC5ha3RpdikgewogICAgICAgICAgICBmdWVsbC5ha3RpdiA9IGZhbHNlOwogICAgICAgICAgICBk
b2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmdWVsbE1vdmUpOwogICAg
ICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgZnVlbGxFbmQp
OwogICAgICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICcnOwogICAgICAgICAg
ICB2YXIgaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxsLWhhbmRsZScpOwogICAgICAg
ICAgICBpZiAoaCkgaC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJyc7CiAgICAgICAgICAgIGZ1ZWxs
SGFuZGxlVmVyc3RlY2tlbigpOwogICAgICAgIH0KICAgIH0pOwp9Cg==
### FILE: js/grid_render.js | 37064
Ly8gPT09IGdyaWQvcmVuZGVyLmpzID09PQovLyBTdGFuZDogMjAyNi0wNS0xNAovLyBHcmlkLUF1
ZmJhdSwgSGVhZGVyIChEYXR1bS9Xb2NoZW50YWcvQW5sYXNzL0V2ZW50cy9TdMOkcmtlL1NjaGlj
aHRmb2xnZSksCi8vIFNjaHJhZmZ1cmVuLCBTdMOkcmtlLUJlcmVjaG51bmcsIE5hdmlnYXRpb24v
QW5zaWNodHMtV2VjaHNlbCwgU2Nyb2xsLVN5bmMuCi8vCi8vIEhvb2tzOiBlaW5pZ2UgQXVmcnVm
ZSBnZWhlbiBhdWYgRnVua3Rpb25lbiwgZGllIG5vY2ggaW4gYXBwLmpzIGxpZWdlbgovLyBvZGVy
IGVyc3QgaW4gc3BhZXRlcmVuIFBoYXNlbiBleHRyYWhpZXJ0IHdlcmRlbiAoZmVhdHVyZUlzdEFr
dGl2LAovLyBiZXosIHNvbmRlclRpdGVsQXVzVGV4dCwga29tbWVudGFyZUltR3JpZEFuemVpZ2Vu
LCBiZXNldHp1bmdzLS9hZG1pbi0vCi8vIHN0YXRzLS93b2NoZW5wbGFuLS9wZXJzcGxhbi0vbG9n
YnVjaC1SZW5kZXJlcikuIERpZXNlIHdlcmRlbiB1ZWJlcgovLyByZW5kZXJIb29rcyByZWluZ2Vo
YWVuZ3QuCgppbXBvcnQgeyBaIH0gZnJvbSAnLi9jb3JlX3N0YXRlLmpzJzsKaW1wb3J0IHsKICAg
IGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIsCiAgICBkYXR1bVN0ciwgZGF0dW1Gb3JtYXRERSwgZGF0
dW1LdXJ6REUsIHdvY2hlbnRhZ0t1cnosIGlzdFdvY2hlbmVuZGUsCiAgICBhdmF0YXJLcmVpc0h0
bWwsIHJlbmRlckVycm9yQm94Cn0gZnJvbSAnLi9jb3JlX3V0aWwuanMnOwppbXBvcnQgewogICAg
ZGFyZkFkbWluVGFiLCBkYXJmU3RhdGlzdGlrLCBkYXJmTG9nYnVjaCwgZGFyZlplbGxlRWRpdGll
cmVuCn0gZnJvbSAnLi9jb3JlX3Blcm1pc3Npb25zLmpzJzsKaW1wb3J0IHsgdG9hc3QgfSBmcm9t
ICcuL3VpX2RpYWxvZy5qcyc7CmltcG9ydCB7IGhldXRlQmxvY2tBa3R1YWxpc2llcmVuIH0gZnJv
bSAnLi9jb3JlX2RhdGVuTGFkZW4uanMnOwoKLy8gPT09PT0gSG9va3MgPT09PT0KCmV4cG9ydCB2
YXIgcmVuZGVySG9va3MgPSB7CiAgICBmZWF0dXJlSXN0QWt0aXY6IG51bGwsCiAgICBzb25kZXJU
aXRlbEF1c1RleHQ6IG51bGwsCiAgICBiZXNldHp1bmdzVGFiRmFyYmVBa3R1YWxpc2llcmVuOiBu
dWxsLAogICAga29tbWVudGFyZUltR3JpZEFuemVpZ2VuOiBudWxsLAogICAgYmV6OiBudWxsLAog
ICAgd3BSZW5kZXJuOiBudWxsLAogICAgcHBSZW5kZXJuOiBudWxsLAogICAgbG9nYnVjaExhZGVu
OiBudWxsLAogICAgc3RhdGlzdGlrTGFkZW46IG51bGwsCiAgICBhZG1pblJlbmRlcm46IG51bGws
CiAgICBiZXNldHp1bmdza29udHJvbGxlUmVuZGVybjogbnVsbAp9OwoKLy8gPT09PT0gUGVyZm9y
bWFuY2UtTWVzc3VuZyAoU3ByaW50IDZiIDIwMjYtMDUtMjksIEZpbmRpbmcgMjApID09PT09Ci8v
Ci8vIE9wdC1JbiB1ZWJlciBgd2luZG93LlZJM19QRVJGID0gdHJ1ZWAuIFNhbW1lbHQgcHJvIFJl
bmRlci1BdWZydWYKLy8gRGF1ZXIgKyBGdW5rdGlvbnNuYW1lIGluIGVpbmVtIFJpbmctQnVmZmVy
IChtYXggMTAwIEVpbnRyYWVnZSkuCi8vIEF1c3dlcnR1bmcgaW0gQnJvd3NlciB2aWEgYHdpbmRv
dy5WSTNfUEVSRl9SRVBPUlQoKWAgLT4gY29uc29sZS50YWJsZQovLyBtaXQgQWdncmVnYXQgcHJv
IEZ1bmt0aW9uIChBbnphaGwsIE1pbi9NYXgvQXZnLW1zKS4KLy8KLy8gV2VubiBkaWUgRmxhZyBu
aWNodCBha3RpdiBpc3Q6IGBwZXJmTWFyaygpYC9gcGVyZk1lYXN1cmUoKWAgc2luZCBuby1vcHMu
Ci8vIERhbWl0IGtlaW4gRGVmYXVsdC1PdmVyaGVhZCBpbSBQcm9kdWt0aXYtQmV0cmllYiAoUG9s
aXplaS1QQ3MpLgovLwovLyBBdWRpdC1CZWZ1bmQtMjAtSGludGVyZ3J1bmQ6IEJlZnVuZCB3YXIg
bWFudWVsbGUgU2NoYWV0enVuZyBvaG5lCi8vIGluc3RydW1lbnRpZXJ0ZSBNZXNzdW5nLiBWb3Ig
d2VpdGVyZW4gUmVuZGVyLVJlZmFjdG9ycyBicmF1Y2hlbiB3aXIKLy8gZWNodGUgWmFobGVuLCBk
YW1pdCB3aXIgbmljaHQgZGVuIGZhbHNjaGVuIFBmYWQgb3B0aW1pZXJlbi4KCnZhciBfUEVSRl9Q
VUZGRVIgPSBbXTsKdmFyIF9QRVJGX01BWCA9IDEwMDsKCmZ1bmN0aW9uIHBlcmZBa3RpdigpIHsK
ICAgIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuVkkzX1BF
UkYgPT09IHRydWU7Cn0KCmZ1bmN0aW9uIHBlcmZNYXJrKG5hbWUpIHsKICAgIGlmICghcGVyZkFr
dGl2KCkpIHJldHVybiBudWxsOwogICAgdHJ5IHsgcGVyZm9ybWFuY2UubWFyayhuYW1lICsgJzpz
dGFydCcpOyB9IGNhdGNoIChlKSB7fQogICAgcmV0dXJuIG5hbWU7Cn0KCmZ1bmN0aW9uIHBlcmZN
ZWFzdXJlKG5hbWUsIHN0YXJ0VHMpIHsKICAgIGlmICghcGVyZkFrdGl2KCkgfHwgIW5hbWUpIHJl
dHVybjsKICAgIHRyeSB7CiAgICAgICAgcGVyZm9ybWFuY2UubWFyayhuYW1lICsgJzplbmQnKTsK
ICAgICAgICBwZXJmb3JtYW5jZS5tZWFzdXJlKG5hbWUsIG5hbWUgKyAnOnN0YXJ0JywgbmFtZSAr
ICc6ZW5kJyk7CiAgICAgICAgdmFyIGVudHJpZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlO
YW1lKG5hbWUsICdtZWFzdXJlJyk7CiAgICAgICAgdmFyIGxldHp0ZSA9IGVudHJpZXNbZW50cmll
cy5sZW5ndGggLSAxXTsKICAgICAgICBpZiAobGV0enRlKSB7CiAgICAgICAgICAgIF9QRVJGX1BV
RkZFUi5wdXNoKHsgbmFtZTogbmFtZSwgbXM6IE1hdGgucm91bmQobGV0enRlLmR1cmF0aW9uICog
MTAwKSAvIDEwMCwgdHM6IERhdGUubm93KCkgfSk7CiAgICAgICAgICAgIGlmIChfUEVSRl9QVUZG
RVIubGVuZ3RoID4gX1BFUkZfTUFYKSBfUEVSRl9QVUZGRVIuc2hpZnQoKTsKICAgICAgICB9CiAg
ICAgICAgLy8gTWFya3MgYXVmcmFldW1lbiwgc29uc3QgZnJpc3N0IGVzIFNwZWljaGVyCiAgICAg
ICAgcGVyZm9ybWFuY2UuY2xlYXJNYXJrcyhuYW1lICsgJzpzdGFydCcpOwogICAgICAgIHBlcmZv
cm1hbmNlLmNsZWFyTWFya3MobmFtZSArICc6ZW5kJyk7CiAgICAgICAgcGVyZm9ybWFuY2UuY2xl
YXJNZWFzdXJlcyhuYW1lKTsKICAgIH0gY2F0Y2ggKGUpIHt9Cn0KCi8vIFdpcmQgdmlhIE1vZHVs
LUluaXQgYW0gd2luZG93LU9iamVrdCByZWdpc3RyaWVydCAoc2llaGUgdW50ZW4pLgpmdW5jdGlv
biBwZXJmUmVwb3J0KCkgewogICAgaWYgKF9QRVJGX1BVRkZFUi5sZW5ndGggPT09IDApIHsKICAg
ICAgICBjb25zb2xlLmxvZygnVkkzX1BFUkY6IGtlaW5lIE1lc3NkYXRlbiDigJQgdm9yaGVyIHdp
bmRvdy5WSTNfUEVSRiA9IHRydWUgc2V0emVuIHVuZCBkaWUgQXBwIGJlbnV0emVuLicpOwogICAg
ICAgIHJldHVybjsKICAgIH0KICAgIHZhciBuYWNoTmFtZSA9IHt9OwogICAgX1BFUkZfUFVGRkVS
LmZvckVhY2goZnVuY3Rpb24oZSkgewogICAgICAgIGlmICghbmFjaE5hbWVbZS5uYW1lXSkgbmFj
aE5hbWVbZS5uYW1lXSA9IFtdOwogICAgICAgIG5hY2hOYW1lW2UubmFtZV0ucHVzaChlLm1zKTsK
ICAgIH0pOwogICAgdmFyIHJvd3MgPSBPYmplY3Qua2V5cyhuYWNoTmFtZSkubWFwKGZ1bmN0aW9u
KG5hbWUpIHsKICAgICAgICB2YXIgbCA9IG5hY2hOYW1lW25hbWVdOwogICAgICAgIHZhciBzdW0g
PSBsLnJlZHVjZShmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhICsgYjsgfSwgMCk7CiAgICAgICAg
cmV0dXJuIHsKICAgICAgICAgICAgRnVua3Rpb246IG5hbWUsCiAgICAgICAgICAgIEF1ZnJ1ZmU6
ICBsLmxlbmd0aCwKICAgICAgICAgICAgJ01pbiBtcyc6IE1hdGgubWluLmFwcGx5KG51bGwsIGwp
LAogICAgICAgICAgICAnTWF4IG1zJzogTWF0aC5tYXguYXBwbHkobnVsbCwgbCksCiAgICAgICAg
ICAgICdBdmcgbXMnOiBNYXRoLnJvdW5kKChzdW0gLyBsLmxlbmd0aCkgKiAxMDApIC8gMTAwLAog
ICAgICAgICAgICAnU3VtIG1zJzogTWF0aC5yb3VuZChzdW0gKiAxMDApIC8gMTAwCiAgICAgICAg
fTsKICAgIH0pOwogICAgY29uc29sZS50YWJsZShyb3dzKTsKfQoKaWYgKHR5cGVvZiB3aW5kb3cg
IT09ICd1bmRlZmluZWQnKSB7CiAgICB3aW5kb3cuVkkzX1BFUkZfUkVQT1JUID0gcGVyZlJlcG9y
dDsKICAgIHdpbmRvdy5WSTNfUEVSRl9SRVNFVCA9IGZ1bmN0aW9uKCkgeyBfUEVSRl9QVUZGRVIu
bGVuZ3RoID0gMDsgfTsKfQoKLy8gRGVmYXVsdC1JY29ucyBwcm8gRmVpZXJ0YWdzLUthdGVnb3Jp
ZS4gV2lyZCBnZXpvZ2VuLCB3ZW5uIGRlciBlaW56ZWxuZQovLyBFaW50cmFnIGtlaW4gZWlnZW5l
cyBpY29uLUZlbGQgc2V0enQuIFBybyBFaW50cmFnIHVlYmVyc2NocmVpYmJhciBpbQovLyBBZG1p
biAtPiBGZWllcnRhZ2UgKFBpY2tlciBhbmFsb2cgenUgU29uZGVydGVybWluZW4pLgpleHBvcnQg
dmFyIEtBVEVHT1JJRV9JQ09OX0RFRkFVTFQgPSB7CiAgICBnZXNldHpsaWNoOiAn8J+Pm++4jycs
CiAgICBqdWVkaXNjaDogJ+KcoScsCiAgICBtdXNsaW1pc2NoOiAn4piqJywKICAgIHR1ZXJraXNj
aDogJ/Cfh7nwn4e3Jwp9OwoKLy8gPT09PT0gVGFnZS1BdWZiYXUgJiBUYWctSW5mb3MgPT09PT0K
CmV4cG9ydCBmdW5jdGlvbiB0YWdlRXJ6ZXVnZW4oKSB7CiAgICB2YXIgamFociA9IFouYWRtaW4u
amFociB8fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7CiAgICBaLnRhZ2UgPSBbXTsKICAgIC8v
IFBsYW51bmdzYmVyZWljaDogMS4gSmFudWFyIGRlcyBQbGFudW5nc2phaHJlcyBiaXMgZWluc2No
bGllc3NsaWNoIDMxLiBKYW51YXIgZGVzIEZvbGdlamFocmVzLgogICAgLy8gRGVyIEJ1ZmZlci1N
b25hdCBlcmxhdWJ0IFZvcnBsYW51bmcgZGVzIEZvbGdlamFocmVzIGJpcyB6dW0gSmFocmVzd2Vj
aHNlbC1Lbm9wZi4KICAgIHZhciBkID0gbmV3IERhdGUoamFociwgMCwgMSk7CiAgICB2YXIgZW5k
ZSA9IG5ldyBEYXRlKGphaHIgKyAxLCAxLCAxKTsgLy8gMS4gRmVicnVhciBGb2xnZWphaHIgPSBl
eGtsdXNpdmUgT2JlcmdyZW56ZQogICAgd2hpbGUgKGQgPCBlbmRlKSB7IFoudGFnZS5wdXNoKG5l
dyBEYXRlKGQpKTsgZC5zZXREYXRlKGQuZ2V0RGF0ZSgpICsgMSk7IH0KfQoKLy8gTGV0enRlciBT
b25udGFnIGVpbmVzIE1vbmF0cyDigJQgQmVyZWNobnVuZyBkZXIgRFNULVdlY2hzZWx0YWdlIGlu
IGRlciBFVQovLyAoTWFlcno6IFZvcndhZXJ0cyArMWgsIE9rdG9iZXI6IFJ1ZWNrd2FlcnRzIC0x
aCwgamV3ZWlscyBsZXR6dGVyIFNvbm50YWcpLgovLyBtb25hdCBpc3QgMC1pbmRleGVkICgyID0g
TWFlcnosIDkgPSBPa3RvYmVyKS4KZnVuY3Rpb24gX2xldHp0ZXJTb25udGFnSW1Nb25hdChqYWhy
LCBtb25hdCkgewogICAgdmFyIGQgPSBuZXcgRGF0ZShqYWhyLCBtb25hdCArIDEsIDApOyAgLy8g
bGV0enRlciBUYWcgZGVzIE1vbmF0cwogICAgdmFyIHRhZyA9IGQuZ2V0RGF5KCk7CiAgICBpZiAo
dGFnICE9PSAwKSBkLnNldERhdGUoZC5nZXREYXRlKCkgLSB0YWcpOwogICAgcmV0dXJuIGRhdHVt
U3RyKGQpOwp9CgpleHBvcnQgZnVuY3Rpb24gdGFnSW5mb3NCZXJlY2huZW4oKSB7CiAgICBaLnRh
Z0luZm9zID0ge307CiAgICAvLyBTb25kZXJ0ZXJtaW5lIGdnZi4gbWl0IElEIG5hY2hyw7xzdGVu
IChCQyBmw7xyIEFsdGRhdGVuKSB1bmQgYXVmIGFsbGUgVGFnZSBkZXMgWmVpdHJhdW1zIG1hcHBl
bgogICAgdmFyIHNvbmRlck1hcCA9IHt9OwogICAgKFouYWRtaW4uc29uZGVydGVybWluZSB8fCBb
XSkuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAgaWYgKCFzLmlkKSBzLmlkID0gJ3N0Xycg
KyAocy5kYXR1bSB8fCAneCcpICsgJ18nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vi
c3RyKDIsIDYpOwogICAgICAgIHZhciB2b24gPSBzLmRhdHVtLCBiaXMgPSBzLmRhdHVtQmlzIHx8
IHMuZGF0dW07CiAgICAgICAgaWYgKCF2b24pIHJldHVybjsKICAgICAgICB2YXIgZCA9IG5ldyBE
YXRlKHZvbiArICdUMDA6MDA6MDAnKSwgYiA9IG5ldyBEYXRlKGJpcyArICdUMDA6MDA6MDAnKTsK
ICAgICAgICBpZiAoaXNOYU4oZC5nZXRUaW1lKCkpIHx8IGlzTmFOKGIuZ2V0VGltZSgpKSB8fCBi
IDwgZCkgeyBzb25kZXJNYXBbdm9uXSA9IHM7IHJldHVybjsgfQogICAgICAgIHdoaWxlIChkIDw9
IGIpIHsgc29uZGVyTWFwW2RhdHVtU3RyKGQpXSA9IHM7IGQuc2V0RGF0ZShkLmdldERhdGUoKSAr
IDEpOyB9CiAgICB9KTsKCiAgICBaLnRhZ2UuZm9yRWFjaChmdW5jdGlvbihkKSB7CiAgICAgICAg
dmFyIGtleSA9IGRhdHVtU3RyKGQpOwogICAgICAgIFoudGFnSW5mb3Nba2V5XSA9IHsgdHlwOiAn
bm9ybWFsJywgbmFtZTogJycsIGdlYnVydHN0YWdlOiBbXSB9OwogICAgICAgIGlmIChpc3RXb2No
ZW5lbmRlKGQpKSBaLnRhZ0luZm9zW2tleV0udHlwID0gJ3dvY2hlbmVuZGUnOwogICAgfSk7Cgog
ICAgKFouYWRtaW4uZmVyaWVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGYpIHsKICAgICAgICB2
YXIgZCA9IG5ldyBEYXRlKGYudm9uICsgJ1QwMDowMDowMCcpOwogICAgICAgIHZhciBiaXMgPSBu
ZXcgRGF0ZShmLmJpcyArICdUMDA6MDA6MDAnKTsKICAgICAgICB3aGlsZSAoZCA8PSBiaXMpIHsK
ICAgICAgICAgICAgdmFyIGtleSA9IGRhdHVtU3RyKGQpOwogICAgICAgICAgICBpZiAoWi50YWdJ
bmZvc1trZXldICYmIFoudGFnSW5mb3Nba2V5XS50eXAgPT09ICdub3JtYWwnKSB7CiAgICAgICAg
ICAgICAgICBaLnRhZ0luZm9zW2tleV0udHlwID0gJ2Zlcmllbic7CiAgICAgICAgICAgICAgICBa
LnRhZ0luZm9zW2tleV0ubmFtZSA9IGYubmFtZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBk
LnNldERhdGUoZC5nZXREYXRlKCkgKyAxKTsKICAgICAgICB9CiAgICB9KTsKCiAgICAoWi5hZG1p
bi5mZWllcnRhZ2UgfHwgW10pLmZvckVhY2goZnVuY3Rpb24oZikgewogICAgICAgIC8vIGFrdGl2
ID09PSBmYWxzZSB1ZWJlcnNwcmluZ2VuOyBmZWhsZW5kZXMgRmVsZCA9IGFrdGl2IChCYWNrd2Fy
ZHMtQ29tcGF0CiAgICAgICAgLy8gbWl0IGFsdGVtIFNjaGVtYSB7ZGF0dW0sIG5hbWUsIHdpY2h0
aWd9IG9obmUgYWt0aXYva2F0ZWdvcmllKS4KICAgICAgICBpZiAoZi5ha3RpdiA9PT0gZmFsc2Up
IHJldHVybjsKICAgICAgICBpZiAoWi50YWdJbmZvc1tmLmRhdHVtXSkgewogICAgICAgICAgICBa
LnRhZ0luZm9zW2YuZGF0dW1dLnR5cCA9ICdmZWllcnRhZyc7CiAgICAgICAgICAgIFoudGFnSW5m
b3NbZi5kYXR1bV0ubmFtZSA9IGYuYmV6ZWljaG51bmcgfHwgZi5uYW1lIHx8ICcnOwogICAgICAg
ICAgICBaLnRhZ0luZm9zW2YuZGF0dW1dLndpY2h0aWcgPSAhIWYud2ljaHRpZzsKICAgICAgICAg
ICAgWi50YWdJbmZvc1tmLmRhdHVtXS5rYXRlZ29yaWUgPSBmLmthdGVnb3JpZSB8fCAnZ2VzZXR6
bGljaCc7CiAgICAgICAgICAgIFoudGFnSW5mb3NbZi5kYXR1bV0uaWNvbiA9IGYuaWNvbiB8fCAn
JzsKICAgICAgICAgICAgWi50YWdJbmZvc1tmLmRhdHVtXS5rdXJ6YmVzY2hyZWlidW5nID0gZi5r
dXJ6YmVzY2hyZWlidW5nIHx8ICcnOwogICAgICAgICAgICBaLnRhZ0luZm9zW2YuZGF0dW1dLmlu
Zm9VcmwgPSBmLmluZm9VcmwgfHwgJyc7CiAgICAgICAgfQogICAgfSk7CgogICAgLy8gR2VidXJ0
c3RhZ2UgcHJvIFRhZyAoYXVmIE1vbmF0LVRhZyBkZXMgUGxhbnVuZ3NqYWhyZXMgKyBCdWZmZXIt
SmFudWFyIGRlcyBGb2xnZWphaHJlcyBtYXBwZW4pCiAgICB2YXIgcGxhbkphaHIgPSBaLmFkbWlu
LmphaHIgfHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOwogICAgKFoucGxhbnVuZy5wZXJzb25l
biB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihwKSB7CiAgICAgICAgaWYgKCFwLmdlYnVydHNkYXR1
bSB8fCAhcC5ha3RpdikgcmV0dXJuOwogICAgICAgIHZhciB0ZWlsZSA9IHAuZ2VidXJ0c2RhdHVt
LnNwbGl0KCctJyk7CiAgICAgICAgaWYgKHRlaWxlLmxlbmd0aCAhPT0gMykgcmV0dXJuOwogICAg
ICAgIHZhciBuYW1lID0gKHAudm9ybmFtZSA/IHAudm9ybmFtZSArICcgJyA6ICcnKSArIHAubmFt
ZTsKICAgICAgICB2YXIgamFockFsdCA9IHBhcnNlSW50KHRlaWxlWzBdLCAxMCkgfHwgbnVsbDsK
ICAgICAgICBbcGxhbkphaHIsIHBsYW5KYWhyICsgMV0uZm9yRWFjaChmdW5jdGlvbihqKSB7CiAg
ICAgICAgICAgIHZhciBrZXkgPSBqICsgJy0nICsgdGVpbGVbMV0gKyAnLScgKyB0ZWlsZVsyXTsK
ICAgICAgICAgICAgaWYgKFoudGFnSW5mb3Nba2V5XSkgewogICAgICAgICAgICAgICAgWi50YWdJ
bmZvc1trZXldLmdlYnVydHN0YWdlLnB1c2goeyBpZDogcC5pZCwgbmFtZTogbmFtZSwgamFocjog
amFockFsdCB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7CgogICAgT2JqZWN0
LmtleXMoc29uZGVyTWFwKS5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKICAgICAgICBpZiAoWi50YWdJ
bmZvc1tkXSkgewogICAgICAgICAgICBaLnRhZ0luZm9zW2RdLnNvbmRlciA9IHNvbmRlck1hcFtk
XTsKICAgICAgICB9CiAgICB9KTsKCiAgICAvLyBEU1QtTWFya2llcnVuZyAoUGFrZXQtQiBRdWlj
ay1XaW4sIDIwMjYtMDUtMjkpOiBsZXR6dGVyIFNvbm50YWcgaW0KICAgIC8vIE1hZXJ6ID0gVm9y
d2FlcnRzLVdlY2hzZWwgKDAyOjAwIC0+IDAzOjAwKSwgbGV0enRlciBTb25udGFnIGltIE9rdG9i
ZXIKICAgIC8vID0gUnVlY2t3YWVydHMtV2VjaHNlbCAoMDM6MDAgLT4gMDI6MDApLiBGdWVyIGFs
bGUgSmFocmUgZGllIGluCiAgICAvLyBaLnRhZ0luZm9zIHZvcmtvbW1lbiBrb2VubmVuIOKAlCB0
eXBpc2NoIFBsYW4tSmFociArIEZvbGdlamFoci4KICAgIFtwbGFuSmFociwgcGxhbkphaHIgKyAx
XS5mb3JFYWNoKGZ1bmN0aW9uKGopIHsKICAgICAgICB2YXIgZHN0RnJ1ZWggID0gX2xldHp0ZXJT
b25udGFnSW1Nb25hdChqLCAyKTsKICAgICAgICB2YXIgZHN0SGVyYnN0ID0gX2xldHp0ZXJTb25u
dGFnSW1Nb25hdChqLCA5KTsKICAgICAgICBpZiAoWi50YWdJbmZvc1tkc3RGcnVlaF0pICBaLnRh
Z0luZm9zW2RzdEZydWVoXS5kc3QgPSAndm9yJzsKICAgICAgICBpZiAoWi50YWdJbmZvc1tkc3RI
ZXJic3RdKSBaLnRhZ0luZm9zW2RzdEhlcmJzdF0uZHN0ID0gJ3p1cnVlY2snOwogICAgfSk7Cn0K
Ci8vID09PT09IFN0w6Rya2UgJiBTY2hyYWZmdXIgPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBzdGFl
cmtlQmVyZWNobmVuKGRTdHIpIHsKICAgIHZhciBlID0gKFoucGxhbnVuZy5laW50cmFlZ2UgfHwg
e30pW2RTdHJdIHx8IHt9OwogICAgdmFyIGYgPSAwLCBzID0gMCwgbiA9IDA7CiAgICBaLnBlcnNv
bmVuLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAgICAgIGlmICghcC5ha3RpdikgcmV0dXJuOyAv
LyBVbWdlc2V0enRlIHrDpGhsZW4gbmljaHQgenVyIFN0w6Rya2UKICAgICAgICB2YXIgdyA9IGVb
U3RyaW5nKHAuaWQpXSB8fCAnJzsKICAgICAgICBpZiAody5zdWJzdHJpbmcoMCwgNSkgPT09ICdG
LURHTCcpIGYrKzsKICAgICAgICBpZiAody5zdWJzdHJpbmcoMCwgNSkgPT09ICdTLURHTCcpIHMr
KzsKICAgICAgICBpZiAody5zdWJzdHJpbmcoMCwgNSkgPT09ICdOLURHTCcpIG4rKzsKICAgIH0p
OwogICAgcmV0dXJuIHsgZjogZiwgczogcywgbjogbiwgb2s6IGYgPj0gMiAmJiBzID49IDIgJiYg
biA+PSAyLCB0ZXh0OiBmICsgJ3wnICsgcyArICd8JyArIG4gfTsKfQoKZXhwb3J0IGZ1bmN0aW9u
IHNjaHJhZmZ1ckJlcmVjaG5lbihkU3RyKSB7CiAgICB2YXIgZSA9IChaLnBsYW51bmcuZWludHJh
ZWdlIHx8IHt9KVtkU3RyXSB8fCB7fTsKICAgIHZhciBzY2hpY2h0ZW4gPSB7IEY6IFtdLCBTOiBb
XSwgTjogW10gfTsKICAgIFoucGVyc29uZW4uZm9yRWFjaChmdW5jdGlvbihwKSB7CiAgICAgICAg
aWYgKCFwLmFrdGl2KSByZXR1cm47IC8vIFVtZ2VzZXR6dGUgbmljaHQgYWxzIFZlcmFudHdvcnRs
aWNoZSBtYXJraWVyZW4KICAgICAgICB2YXIgdyA9IGVbU3RyaW5nKHAuaWQpXSB8fCAnJzsKICAg
ICAgICBpZiAody5pbmRleE9mKCdER0wnKSA9PT0gLTEpIHJldHVybjsKICAgICAgICB2YXIgcHJl
Zml4ID0gdy5jaGFyQXQoMCk7CiAgICAgICAgaWYgKHNjaGljaHRlbltwcmVmaXhdKSBzY2hpY2h0
ZW5bcHJlZml4XS5wdXNoKHsgaWQ6IHAuaWQsIHBvczogcC5wb3NpdGlvbiB8fCA5OTkgfSk7CiAg
ICB9KTsKICAgIHZhciBlcmcgPSB7fTsKICAgIFsnRicsJ1MnLCdOJ10uZm9yRWFjaChmdW5jdGlv
bihwcikgewogICAgICAgIHZhciBsID0gc2NoaWNodGVuW3ByXS5zb3J0KGZ1bmN0aW9uKGEsIGIp
IHsgcmV0dXJuIGEucG9zIC0gYi5wb3M7IH0pOwogICAgICAgIGlmIChsLmxlbmd0aCA+IDApIGVy
Z1tsWzBdLmlkXSA9IHByICsgJzEnOwogICAgICAgIGlmIChsLmxlbmd0aCA+IDEpIGVyZ1tsWzFd
LmlkXSA9IHByICsgJzInOwogICAgfSk7CiAgICByZXR1cm4gZXJnOwp9CgovLyA9PT09PSBQbGFu
dW5nIHJlbmRlcm4gPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBncmlkUmVuZGVybigpIHsKICAgIC8v
IFVYLUF1ZGl0IFNwcmludCAxLjI6IFRyeS1DYXRjaC1Iw7xsbGUsIGRhbWl0IGVpbiBSZW5kZXIt
RmVobGVyIG5pY2h0CiAgICAvLyBkaWUgZ2FuemUgUGxhbnVuZ3NhbnNpY2h0IGJsYW5rIGzDpHNz
dC4gQmVpIEV4Y2VwdGlvbiB3aXJkIGVpbmUKICAgIC8vIEZlaGxlcmJveCBpbiBkZW4gQW5zaWNo
dC1Db250YWluZXIgZ2VyZW5kZXJ0LgogICAgdHJ5IHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnYW56ZWlnZS1qYWhyJykudGV4dENvbnRlbnQgPSBaLmFkbWluLmphaHIgfHwgJyc7
CiAgICAgICAgaGV1dGVCbG9ja0FrdHVhbGlzaWVyZW4oKTsKCiAgICAgICAgLy8gSGVhZGVyLUJh
ZGdlOiBlY2h0ZW4gTmFtZW4gYXVzIHBsYW51bmcucGVyc29uZW4gYW56ZWlnZW4gKHBlciBud0tl
bm51bmcgZ2VtYXRjaGVkKSwKICAgICAgICAvLyBzb25zdCBGYWxsYmFjayBhdWYgZGllIE5XLUtl
bm51bmcuIFRvb2x0aXAgemVpZ3QgYmVpZGVzLgogICAgICAgIHZhciBiYWRnZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdiZW51dHplci1hbnplaWdlJyk7CiAgICAgICAgdmFyIGFuemVpZ2Ug
PSBaLmJlbnV0emVyOwogICAgICAgIGlmIChaLm1laW5lUGVyc29uSWQpIHsKICAgICAgICAgICAg
dmFyIHAgPSBaLnBlcnNvbmVuLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4gU3RyaW5nKHguaWQp
ID09PSBTdHJpbmcoWi5tZWluZVBlcnNvbklkKTsgfSk7CiAgICAgICAgICAgIGlmIChwKSB7CiAg
ICAgICAgICAgICAgICBhbnplaWdlID0gKChwLnZvcm5hbWUgPyBwLnZvcm5hbWUgKyAnICcgOiAn
JykgKyAocC5uYW1lIHx8ICcnKSkudHJpbSgpIHx8IFouYmVudXR6ZXI7CiAgICAgICAgICAgIH0K
ICAgICAgICB9CiAgICAgICAgYmFkZ2UudGV4dENvbnRlbnQgPSBhbnplaWdlOwogICAgICAgIGJh
ZGdlLnRpdGxlID0gWi5iZW51dHplciArIChaLm1laW5lUGVyc29uSWQgPyAnIOKAlCBlcmthbm50
IGFscyAiJyArIGFuemVpZ2UgKyAnIicgOiAnIOKAlCBrZWluZSB6dWdlb3JkbmV0ZSBQZXJzb24n
KTsKCiAgICAgICAga29wZlJlbmRlcm4oKTsKICAgICAgICBuYW1lblJlbmRlcm4oKTsKICAgICAg
ICBkYXRlbkdyaWRSZW5kZXJuKCk7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgcmVuZGVyRXJy
b3JCb3goZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fuc2ljaHQtcGxhbnVuZycpLCBlLCAnUGxh
bnVuZycpOwogICAgfQp9CgovLyA9PT09PSBLb3BmYmVyZWljaCAoRGF0dW0sIFdvY2hlbnRhZywg
RmVyaWVuLCBTdMOkcmtlLCBTY2hpY2h0Zm9sZ2UpID09PT09CgpleHBvcnQgZnVuY3Rpb24ga29w
ZlJlbmRlcm4oKSB7CiAgICB2YXIgX3BlcmZUYWcgPSBwZXJmTWFyaygna29wZlJlbmRlcm4nKTsK
ICAgIHZhciBzdGFuZG9ydGUgPSAoWi5hZG1pbi5zdGFuZG9ydGUgfHwgW10pOwogICAgLy8gRmVh
dHVyZS1DaGVja3MgKyBTdGFtbS1XZXJ0ZSBlaW5tYWwgdm9yIGRlciBUYWdlcy1TY2hsZWlmZSwg
c3RhdHQKICAgIC8vIHNpZSBwcm8gVGFnIGluIGRlciBmb3JFYWNoIGVybmV1dCBhdWZ6dWxvZXNl
biAoMzY1eCBmZWF0dXJlSXN0QWt0aXYKICAgIC8vIGlzdCB0ZXVlcjsgcmVuZGVySG9va3MtUHJv
cGVydHktTG9va3VwIGF1Y2gpLgogICAgdmFyIGZpYSA9IHJlbmRlckhvb2tzLmZlYXR1cmVJc3RB
a3RpdjsKICAgIHZhciBzZkFrdGl2ICAgICAgICAgPSAhIShmaWEgJiYgZmlhKCdzY2hpY2h0Zm9s
Z2VuJykpOwogICAgdmFyIHN0YWVya2VBa3RpdiAgICA9ICEhKGZpYSAmJiBmaWEoJ3N0YWVya2VB
bnplaWdlJykpOwogICAgdmFyIHdpY2h0aWdVSSAgICAgICA9ICEhKGZpYSAmJiBmaWEoJ3NvbmRl
cnRlcm1pbmVXaWNodGlnJykpOwogICAgdmFyIGZlaWVydGFnQmV0b25lbiA9ICFmaWEgPyB0cnVl
IDogISFmaWEoJ2ZlaWVydGFnZVdpY2h0aWdCZXRvbmVuJyk7CiAgICB2YXIgYWt0SmFociAgICAg
ICAgID0gWi5hZG1pbi5qYWhyIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTsKICAgIHZhciBp
c3RTVSAgICAgICAgICAgPSAhIShaLnJlY2h0ZSAmJiBaLnJlY2h0ZS5pc3RTdXBlclVzZXIpOwog
ICAgdmFyIHNvbmRlclRpdGVsSG9vayA9IHJlbmRlckhvb2tzLnNvbmRlclRpdGVsQXVzVGV4dDsK
CiAgICAvLyBMaW5rZSBTZWl0ZTogU2NoaWNodGZvbGdlLUxhYmVscwogICAgdmFyIHNmTGlua3NI
dG1sID0gJyc7CiAgICBpZiAoc2ZBa3RpdiAmJiBzdGFuZG9ydGUubGVuZ3RoID4gMCkgewogICAg
ICAgIHN0YW5kb3J0ZS5mb3JFYWNoKGZ1bmN0aW9uKHNvLCBpZHgpIHsKICAgICAgICAgICAgdmFy
IGxhYmVsTCA9ICcnLCBsYWJlbFIgPSBzby5uYW1lIHx8ICcnOwogICAgICAgICAgICBpZiAoaWR4
ID09PSAwKSB7IGxhYmVsTCA9ICdTY2hpY2h0JzsgfQogICAgICAgICAgICBlbHNlIGlmIChpZHgg
PT09IDEpIHsgbGFiZWxMID0gJ2ZvbGdlJzsgfQogICAgICAgICAgICBzZkxpbmtzSHRtbCArPSAn
PGRpdiBjbGFzcz0ia29wZi16ZWlsZSBrei1zY2hpY2h0Zm9sZ2UnICsgKGlkeCA9PT0gMCA/ICcg
a3otc2YtZXJzdGUnIDogJycpICsgJyI+JyArCiAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9
ImtsLWxhYmVsIj4nICsgZXNjYXBlSFRNTChsYWJlbEwpICsgJzwvc3Bhbj4nICsKICAgICAgICAg
ICAgICAgICc8c3BhbiBjbGFzcz0ia2wtd2VydCI+JyArIGVzY2FwZUhUTUwobGFiZWxSKSArICc8
L3NwYW4+PC9kaXY+JzsKICAgICAgICB9KTsKICAgIH0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdzY2hpY2h0Zm9sZ2UtbGlua3MnKS5pbm5lckhUTUwgPSBzZkxpbmtzSHRtbDsKCiAgICAv
LyBSZWNodGUgU2VpdGU6IERhdHVtc3plaWxlbgogICAgdmFyIHRhZ0h0bWwgPSAnJywgd3RIdG1s
ID0gJycsIGFubGFzc0h0bWwgPSAnJywgc3RhZXJrZUh0bWwgPSAnJzsKICAgIHZhciBzZlplaWxl
biA9IFtdOwogICAgc3RhbmRvcnRlLmZvckVhY2goZnVuY3Rpb24oKSB7IHNmWmVpbGVuLnB1c2go
JycpOyB9KTsKCiAgICBaLnRhZ2UuZm9yRWFjaChmdW5jdGlvbihkKSB7CiAgICAgICAgdmFyIGRT
dHIgPSBkYXR1bVN0cihkKTsKICAgICAgICB2YXIgaW5mbyA9IFoudGFnSW5mb3NbZFN0cl0gfHwg
eyB0eXA6ICdub3JtYWwnLCBnZWJ1cnRzdGFnZTogW10gfTsKICAgICAgICB2YXIgaXN0SGV1dGUg
PSBkU3RyID09PSBaLmhldXRlU3RyOwogICAgICAgIHZhciB3ZSA9IGlzdFdvY2hlbmVuZGUoZCk7
CgogICAgICAgIC8vIFJlaWNoaGFsdGlnZXIgVG9vbHRpcDogRmVpZXJ0YWcsIEZlcmllbiwgU29u
ZGVydGVybWluLCBHZWJ1cnRzdGFnZQogICAgICAgIHZhciB0aXRsZVRlaWxlID0gW107CiAgICAg
ICAgaWYgKGluZm8ubmFtZSkgdGl0bGVUZWlsZS5wdXNoKGluZm8udHlwID09PSAnZmVpZXJ0YWcn
ID8gJ/CfjokgJyArIGluZm8ubmFtZSA6IGluZm8ubmFtZSk7CiAgICAgICAgaWYgKGluZm8uc29u
ZGVyKSB7CiAgICAgICAgICAgIHZhciBzVGl0ZWwgPSBpbmZvLnNvbmRlci50aXRlbCB8fCAoc29u
ZGVyVGl0ZWxIb29rICYmIHNvbmRlclRpdGVsSG9vayhpbmZvLnNvbmRlci50ZXh0KSkgfHwgJyc7
CiAgICAgICAgICAgIHRpdGxlVGVpbGUucHVzaCgoaW5mby5zb25kZXIudHlwID09PSAnd2FybnVu
ZycgPyAn4pqgICcgOiAn4oS5ICcpICsgc1RpdGVsKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlu
Zm8uZ2VidXJ0c3RhZ2UgJiYgaW5mby5nZWJ1cnRzdGFnZS5sZW5ndGgpIHsKICAgICAgICAgICAg
dmFyIGdiID0gaW5mby5nZWJ1cnRzdGFnZS5tYXAoZnVuY3Rpb24oZykgewogICAgICAgICAgICAg
ICAgdmFyIGFsdGVyID0gZy5qYWhyID8gJyAoJyArIChha3RKYWhyIC0gZy5qYWhyKSArICcpJyA6
ICcnOwogICAgICAgICAgICAgICAgcmV0dXJuIGcubmFtZSArIGFsdGVyOwogICAgICAgICAgICB9
KS5qb2luKCcsICcpOwogICAgICAgICAgICB0aXRsZVRlaWxlLnB1c2goJ/CfjoIgR2VidXJ0c3Rh
ZzogJyArIGdiKTsKICAgICAgICB9CiAgICAgICAgdmFyIHRpdGxlID0gdGl0bGVUZWlsZS5qb2lu
KCdcbicpOwoKICAgICAgICAvLyBUYWdlc3R5cC1LbGFzc2UgZsO8ciBLb3BmCiAgICAgICAgdmFy
IGtvcGZDbHMgPSAnJzsKICAgICAgICBpZiAoaXN0SGV1dGUpIGtvcGZDbHMgPSAnIGtkLWhldXRl
JzsKICAgICAgICBlbHNlIGlmIChpbmZvLnR5cCA9PT0gJ2ZlaWVydGFnJykga29wZkNscyA9ICcg
a2QtZmVpZXJ0YWctYmcnICsgKChpbmZvLndpY2h0aWcgJiYgZmVpZXJ0YWdCZXRvbmVuKSA/ICcg
a2QtZmVpZXJ0YWctd2ljaHRpZycgOiAnJyk7CiAgICAgICAgZWxzZSBpZiAod2UpIGtvcGZDbHMg
PSAnIGtkLXdvY2hlbmVuZGUnOwogICAgICAgIGlmIChpbmZvLnNvbmRlcikga29wZkNscyArPSAn
IGtkLXNvbmRlcnRhZy0nICsgKGluZm8uc29uZGVyLnR5cCB8fCAnaGlud2VpcycpOwoKICAgICAg
ICAvLyBaZWlsZSAxOiBEYXR1bSAoZGQubW0uKSDigJQgQmFkZ2VzIHNpbmQgamV0enQgaW4gZGVu
IHNlcGFyYXRlbgogICAgICAgIC8vIEFubGFzcy0gdW5kIEV2ZW50cy1aZWlsZW4gKEZpbmRpbmdz
IEMuMTIvQy4xMykuIERhdHVtcy1aZWxsZQogICAgICAgIC8vIGJsZWlidCBzY2hsYW5rLgogICAg
ICAgIHRhZ0h0bWwgKz0gJzxkaXYgY2xhc3M9ImtkLXplbGxlJyArIGtvcGZDbHMgKyAnIiB0aXRs
ZT0iJyArIGVzY2FwZUF0dHIodGl0bGUpICsgJyIgZGF0YS1kYXR1bT0iJyArIGRTdHIgKyAnIj4n
ICsKICAgICAgICAgICAgZGF0dW1LdXJ6REUoZCkgKyAnPC9kaXY+JzsKCiAgICAgICAgLy8gWmVp
bGUgMjogV29jaGVudGFnCiAgICAgICAgd3RIdG1sICs9ICc8ZGl2IGNsYXNzPSJrZC16ZWxsZScg
KyBrb3BmQ2xzICsgJyI+JyArIHdvY2hlbnRhZ0t1cnooZCkgKyAnPC9kaXY+JzsKCiAgICAgICAg
Ly8gWmVpbGUgMzogS29tYmluaWVydGUgSWNvbi1aZWlsZSDigJQgRmVpZXJ0YWctSWNvbiArIFNv
bmRlcnRlcm1pbi1JY29uCiAgICAgICAgLy8gKyBHZWJ1cnRzdGFncy1JY29uIG5lYmVuZWluYW5k
ZXIgaW4gZWluZXIgWmVsbGUuIEtsaWNrIGF1ZiBkYXMKICAgICAgICAvLyBGZWllcnRhZy1JY29u
IG9lZmZuZXQgZGFzIERldGFpbC1Nb2RhbCAoQmV6ZWljaG51bmcgKyBCZXNjaHJlaWJ1bmcgKwog
ICAgICAgIC8vIFdpa2lwZWRpYS1MaW5rKTsgS2xpY2sgYXVmIGRhcyBTb25kZXJ0ZXJtaW4tSWNv
biBvZWZmbmV0IGRhcwogICAgICAgIC8vIEhpbndlaXMtTW9kYWwuIEZlcmllbiB3ZXJkZW4gbmFj
aCBkZXIgTG9vcCBhbHMgaG9yaXpvbnRhbGUgUmFuZ2UtQmFyCiAgICAgICAgLy8gZGFydWViZXIg
Z2VsZWd0IOKAlCBkaWUgQmFyIGJsZWlidCBmdWVyIG1laHJ0YWVnaWdlIFNpY2h0YmFya2VpdC4K
ICAgICAgICB2YXIgYW5sYXNzQ2xzID0gJycsIGFubGFzc1RpdGxlID0gJyc7CiAgICAgICAgdmFy
IGljb25zSW5uZXIgPSAnJzsKICAgICAgICB2YXIgZXZlbnRzVGl0bGVUZWlsZSA9IFtdOwogICAg
ICAgIGlmIChpbmZvLnR5cCA9PT0gJ2ZlaWVydGFnJykgewogICAgICAgICAgICB2YXIgZnRJY29u
ID0gaW5mby5pY29uIHx8IEtBVEVHT1JJRV9JQ09OX0RFRkFVTFRbaW5mby5rYXRlZ29yaWVdIHx8
IEtBVEVHT1JJRV9JQ09OX0RFRkFVTFQuZ2VzZXR6bGljaDsKICAgICAgICAgICAgYW5sYXNzQ2xz
ID0gJyBrZC1hbmxhc3MtZmVpZXJ0YWcga2QtYW5sYXNzLWZlaWVydGFnLScgKyAoaW5mby5rYXRl
Z29yaWUgfHwgJ2dlc2V0emxpY2gnKSArCiAgICAgICAgICAgICAgICAgICAgICAgICgoaW5mby53
aWNodGlnICYmIGZlaWVydGFnQmV0b25lbikgPyAnIGtkLWZlaWVydGFnLXdpY2h0aWcnIDogJycp
OwogICAgICAgICAgICBhbmxhc3NUaXRsZSA9IGluZm8ubmFtZSB8fCAnJzsKICAgICAgICAgICAg
aWNvbnNJbm5lciArPSAnPHNwYW4gY2xhc3M9ImtkLWFubGFzcy1pY29uIiB0aXRsZT0iJyArIGVz
Y2FwZUF0dHIoaW5mby5uYW1lIHx8ICcnKSArICciPicgKyBlc2NhcGVIVE1MKGZ0SWNvbikgKyAn
PC9zcGFuPic7CiAgICAgICAgfSBlbHNlIGlmIChpbmZvLnR5cCA9PT0gJ2ZlcmllbicpIHsKICAg
ICAgICAgICAgYW5sYXNzQ2xzID0gJyBrZC1hbmxhc3MtZmVyaWVuJzsKICAgICAgICAgICAgYW5s
YXNzVGl0bGUgPSBpbmZvLm5hbWUgfHwgJyc7CiAgICAgICAgfQogICAgICAgIGlmIChpbmZvLnNv
bmRlcikgewogICAgICAgICAgICB2YXIgc0ljb24gPSBpbmZvLnNvbmRlci5pY29uIHx8IChpbmZv
LnNvbmRlci50eXAgPT09ICd3YXJudW5nJyA/ICfimqAnIDogJ+KEuScpOwogICAgICAgICAgICB2
YXIgc1RpdGVsVGV4dCA9IGluZm8uc29uZGVyLnRpdGVsIHx8IChzb25kZXJUaXRlbEhvb2sgJiYg
c29uZGVyVGl0ZWxIb29rKGluZm8uc29uZGVyLnRleHQpKSB8fCAnJzsKICAgICAgICAgICAgLy8g
IndpY2h0aWciLUZsYWcgKENoZXJyeS1QaWNrIDg0ZmIwZjcpOiBleHBsaXppdCB1ZWJlciBkYXMg
bmV1ZQogICAgICAgICAgICAvLyBgd2ljaHRpZ2AtUHJvcGVydHkgZ2VzZXR6dCwgb2RlciBiYWNr
d2FyZHMtY29tcGF0IHVlYmVyIGRhcyBhbHRlCiAgICAgICAgICAgIC8vIGB0eXA6J3dhcm51bmcn
YC4gQ1NTLUtsYXNzZSB3aXJkIG51ciBhbmdlaGFlbmd0LCB3ZW5uIGRlciBUb2dnbGUKICAgICAg
ICAgICAgLy8gYGZlYXR1cmVzLnNvbmRlcnRlcm1pbmVXaWNodGlnYCBha3RpdiBpc3Qg4oCUIHNv
IGJsZWlidCBkYXMKICAgICAgICAgICAgLy8gU3RhbmRhcmQtVmVyaGFsdGVuIHVudmVyYWVuZGVy
dCwgc29sYW5nZSBBZG1pbiBkZW4gU2NoYWx0ZXIgbmljaHQKICAgICAgICAgICAgLy8gdW1sZWd0
LgogICAgICAgICAgICB2YXIgaXN0V2ljaHRpZyA9ICEhaW5mby5zb25kZXIud2ljaHRpZyB8fCBp
bmZvLnNvbmRlci50eXAgPT09ICd3YXJudW5nJzsKICAgICAgICAgICAgdmFyIHdpY2h0aWdDbHMg
PSAoaXN0V2ljaHRpZyAmJiB3aWNodGlnVUkpID8gJyBrZC1ldmVudC13aWNodGlnJyA6ICcnOwog
ICAgICAgICAgICB2YXIgc0NscyA9ICdrZC1ldmVudC1pY29uIGtkLWV2ZW50LXNvbmRlciBrZC1l
dmVudC0nICsgKGluZm8uc29uZGVyLnR5cCB8fCAnaGlud2VpcycpICsgd2ljaHRpZ0NsczsKICAg
ICAgICAgICAgaWNvbnNJbm5lciArPSAnPHNwYW4gY2xhc3M9IicgKyBzQ2xzICsgJyIgZGF0YS1z
b25kZXItZGF0dW09IicgKyBlc2NhcGVBdHRyKGluZm8uc29uZGVyLmRhdHVtKSArICciIHRpdGxl
PSInICsgZXNjYXBlQXR0cihzVGl0ZWxUZXh0KSArICciPicgKyBlc2NhcGVIVE1MKHNJY29uKSAr
ICc8L3NwYW4+JzsKICAgICAgICAgICAgZXZlbnRzVGl0bGVUZWlsZS5wdXNoKHNUaXRlbFRleHQp
OwogICAgICAgIH0KICAgICAgICBpZiAoaW5mby5nZWJ1cnRzdGFnZSAmJiBpbmZvLmdlYnVydHN0
YWdlLmxlbmd0aCkgewogICAgICAgICAgICB2YXIgZ2JOYW1lbiA9IGluZm8uZ2VidXJ0c3RhZ2Uu
bWFwKGZ1bmN0aW9uKGcpIHsKICAgICAgICAgICAgICAgIHZhciBhbHRlciA9IGcuamFociA/ICcg
KCcgKyAoYWt0SmFociAtIGcuamFocikgKyAnKScgOiAnJzsKICAgICAgICAgICAgICAgIHJldHVy
biBnLm5hbWUgKyBhbHRlcjsKICAgICAgICAgICAgfSkuam9pbignLCAnKTsKICAgICAgICAgICAg
aWNvbnNJbm5lciArPSAnPHNwYW4gY2xhc3M9ImtkLWV2ZW50LWljb24ga2QtZXZlbnQtZ2VidXJ0
c3RhZyIgdGl0bGU9IvCfjoIgR2VidXJ0c3RhZzogJyArIGVzY2FwZUF0dHIoZ2JOYW1lbikgKyAn
Ij7wn46CPC9zcGFuPic7CiAgICAgICAgICAgIGV2ZW50c1RpdGxlVGVpbGUucHVzaCgnR2VidXJ0
c3RhZzogJyArIGdiTmFtZW4pOwogICAgICAgIH0KICAgICAgICBpZiAoaW5mby5kc3QpIHsKICAg
ICAgICAgICAgLy8gWmVpdHVtc3RlbGx1bmc6IGtsZWluZXMgSWNvbiBtaXQgZXJrbGFlcmVuZGVt
IFRvb2x0aXAuIFVzZXIgd2lyZAogICAgICAgICAgICAvLyBzbyBpbSBWb3JhdXMgYXVmIFNjaGlj
aHRlbiBtaXQgdmVyYWVuZGVydGVyIERhdWVyIGF1Zm1lcmtzYW0uCiAgICAgICAgICAgIHZhciBk
c3RUaXRlbCA9IGluZm8uZHN0ID09PSAndm9yJwogICAgICAgICAgICAgICAgPyAnWmVpdHVtc3Rl
bGx1bmc6IFNvbW1lcnplaXQgYmVnaW5udCDigJQgVWhyIHdpcmQgdW0gMDI6MDAgYXVmIDAzOjAw
IHZvcmdlc3RlbGx0IChTY2hpY2h0ZW4gMWgga3VlcnplciknCiAgICAgICAgICAgICAgICA6ICda
ZWl0dW1zdGVsbHVuZzogV2ludGVyemVpdCBiZWdpbm50IOKAlCBVaHIgd2lyZCB1bSAwMzowMCBh
dWYgMDI6MDAgenVydWVja2dlc3RlbGx0IChTY2hpY2h0ZW4gMWggbGFlbmdlciknOwogICAgICAg
ICAgICBpY29uc0lubmVyICs9ICc8c3BhbiBjbGFzcz0ia2QtZXZlbnQtaWNvbiBrZC1ldmVudC1k
c3QiIHRpdGxlPSInICsgZXNjYXBlQXR0cihkc3RUaXRlbCkgKyAnIj7wn5WQPC9zcGFuPic7CiAg
ICAgICAgICAgIGV2ZW50c1RpdGxlVGVpbGUucHVzaChkc3RUaXRlbCk7CiAgICAgICAgfQogICAg
ICAgIHZhciB6ZWxsZVRpdGxlID0gYW5sYXNzVGl0bGUgPyBhbmxhc3NUaXRsZSArIChldmVudHNU
aXRsZVRlaWxlLmxlbmd0aCA/ICdcbicgKyBldmVudHNUaXRsZVRlaWxlLmpvaW4oJ1xuJykgOiAn
JykgOiBldmVudHNUaXRsZVRlaWxlLmpvaW4oJ1xuJyk7CiAgICAgICAgdmFyIHplbGxlQ2xzRXh0
cmEgPSAoaW5mby5zb25kZXIgfHwgaXN0U1UgPyAnIGtkLWV2ZW50cy1rbGlja2JhcicgOiAnJyk7
CiAgICAgICAgYW5sYXNzSHRtbCArPSAnPGRpdiBjbGFzcz0ia2QtemVsbGUnICsgYW5sYXNzQ2xz
ICsgemVsbGVDbHNFeHRyYSArICciIHRpdGxlPSInICsgZXNjYXBlQXR0cih6ZWxsZVRpdGxlKSAr
ICciIGRhdGEtZGF0dW09IicgKyBkU3RyICsgJyI+JyArIGljb25zSW5uZXIgKyAnPC9kaXY+JzsK
CiAgICAgICAgLy8gWmVpbGUgNDogU3TDpHJrZSAobnVyIHdlbm4gRmVhdHVyZS1Ub2dnbGUgc3Rh
ZXJrZUFuemVpZ2UgYWt0aXYg4oCUIEZpbmRpbmcgQy4xNSkKICAgICAgICBpZiAoc3RhZXJrZUFr
dGl2KSB7CiAgICAgICAgICAgIHZhciBzdCA9IHN0YWVya2VCZXJlY2huZW4oZFN0cik7CiAgICAg
ICAgICAgIHN0YWVya2VIdG1sICs9ICc8ZGl2IGNsYXNzPSJrZC16ZWxsZSAnICsgKHN0Lm9rID8g
J3N0YWVya2Utb2snIDogJ3N0YWVya2Utd2FybnVuZycpICsgJyIgdGl0bGU9IkY6JyArIHN0LmYg
KyAnIFM6JyArIHN0LnMgKyAnIE46JyArIHN0Lm4gKyAnIj4nICsgc3QudGV4dCArICc8L2Rpdj4n
OwogICAgICAgIH0KCiAgICAgICAgLy8gU2NoaWNodGZvbGdlLVplaWxlbgogICAgICAgIHN0YW5k
b3J0ZS5mb3JFYWNoKGZ1bmN0aW9uKHNvLCBpZHgpIHsKICAgICAgICAgICAgdmFyIHNmOwogICAg
ICAgICAgICBpZiAoc28uaXN0UG9vbCkgc2YgPSAnUG9vbCc7CiAgICAgICAgICAgIGVsc2Ugc2Yg
PSAoc28uc2NoaWNodGZvbGdlIHx8IHt9KVtkU3RyXSB8fCAnJzsKICAgICAgICAgICAgdmFyIHNm
Q2xzID0gJyc7CiAgICAgICAgICAgIGlmIChpbmZvLnR5cCA9PT0gJ2ZlaWVydGFnJykgc2ZDbHMg
PSAnIGtkLWZlaWVydGFnLWJnJzsKICAgICAgICAgICAgZWxzZSBpZiAod2UpIHNmQ2xzID0gJyBr
ZC13b2NoZW5lbmRlJzsKICAgICAgICAgICAgaWYgKHNmICYmICFzby5pc3RQb29sKSBzZkNscyAr
PSAnIHNmLScgKyBzZi50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICBpZiAoc28uaXN0UG9vbCkg
c2ZDbHMgKz0gJyBzZi1wb29sJzsKICAgICAgICAgICAgc2ZaZWlsZW5baWR4XSArPSAnPGRpdiBj
bGFzcz0ia2QtemVsbGUnICsgc2ZDbHMgKyAnIj4nICsgZXNjYXBlSFRNTChzZikgKyAnPC9kaXY+
JzsKICAgICAgICB9KTsKICAgIH0pOwoKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXR1
bS16ZWlsZS10YWcnKS5pbm5lckhUTUwgPSB0YWdIdG1sOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2RhdHVtLXplaWxlLXdvY2hlbnRhZycpLmlubmVySFRNTCA9IHd0SHRtbDsKICAgIC8v
IEZlcmllbi1SYW5nZS1PdmVybGF5OiB6dXNhbW1lbmhhZW5nZW5kZSBGZXJpZW4tVGFnZSBpbiBa
LnRhZ2UKICAgIC8vIHdlcmRlbiBhbHMgaG9yaXpvbnRhbGUgQmFyIGdlcmVuZGVydCwgYWJzb2x1
dCBwb3NpdGlvbmllcnQgdWViZXIKICAgIC8vIGRlbiBwZXItVGFnLVplbGxlbi4gU3RhcnQgPSBJ
bmRleCBkZXMgZXJzdGVuIEZlcmllbi1UYWdlcywKICAgIC8vIEJyZWl0ZSA9IEFuemFobF9UYWdl
ICogWmVsbGVuLUJyZWl0ZS4gTmFtZSB3aXJkIGVpbm1hbCB6ZW50cmllcnQuCiAgICB2YXIgZmVy
aWVuQmFyc0h0bWwgPSAnJzsKICAgIHZhciB6ZWxsZUJyZWl0ZVB4ID0gcGFyc2VJbnQoZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0t
emVsbGUtYnJlaXRlJyksIDEwKSB8fCA2MjsKICAgIHZhciByYW5nZVN0YXJ0ID0gLTEsIHJhbmdl
TmFtZSA9ICcnOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gWi50YWdlLmxlbmd0aDsgaSsrKSB7
CiAgICAgICAgdmFyIGRLZXkgPSAoaSA8IFoudGFnZS5sZW5ndGgpID8gZGF0dW1TdHIoWi50YWdl
W2ldKSA6IG51bGw7CiAgICAgICAgdmFyIGluZm8yID0gZEtleSA/IChaLnRhZ0luZm9zW2RLZXld
IHx8IHt9KSA6IHt9OwogICAgICAgIHZhciBpc3RGZXJpZW4gPSBpbmZvMi50eXAgPT09ICdmZXJp
ZW4nOwogICAgICAgIHZhciBuYW1lID0gaXN0RmVyaWVuID8gKGluZm8yLm5hbWUgfHwgJycpIDog
Jyc7CiAgICAgICAgaWYgKGlzdEZlcmllbiAmJiByYW5nZVN0YXJ0IDwgMCkgewogICAgICAgICAg
ICAvLyBuZXVlIFJhbmdlIHN0YXJ0ZXQKICAgICAgICAgICAgcmFuZ2VTdGFydCA9IGk7IHJhbmdl
TmFtZSA9IG5hbWU7CiAgICAgICAgfSBlbHNlIGlmIChyYW5nZVN0YXJ0ID49IDAgJiYgKCFpc3RG
ZXJpZW4gfHwgbmFtZSAhPT0gcmFuZ2VOYW1lKSkgewogICAgICAgICAgICAvLyBSYW5nZSBlbmRl
dCBoaWVyIChvZGVyIE5hbWUgd2VjaHNlbHQpCiAgICAgICAgICAgIHZhciBsYWVuZ2UgPSBpIC0g
cmFuZ2VTdGFydDsKICAgICAgICAgICAgdmFyIGxlZnRQeCA9IHJhbmdlU3RhcnQgKiB6ZWxsZUJy
ZWl0ZVB4OwogICAgICAgICAgICB2YXIgd2lkdGhQeCA9IGxhZW5nZSAqIHplbGxlQnJlaXRlUHg7
CiAgICAgICAgICAgIC8vIFBybyBXb2NoZW5lbmQtVGFnIGlubmVyaGFsYiBkZXIgUmFuZ2UgZWlu
ZW4gZGV6ZW50ZW4gTWFya2VyCiAgICAgICAgICAgIC8vIGVpbnNldHplbiwgZGFtaXQgU2EvU28g
aW4gZGVyIEZlcmllbi1CYXIgd2VpdGVyaGluIGVya2VubmJhcgogICAgICAgICAgICAvLyBibGVp
YmVuIChzb25zdCB3ZXJkZW4gc2llIHZvbiBkZXIgQmFyIHVlYmVybWFsdCkuCiAgICAgICAgICAg
IHZhciB3ZU1hcmtlcnMgPSAnJzsKICAgICAgICAgICAgZm9yICh2YXIgdyA9IHJhbmdlU3RhcnQ7
IHcgPCByYW5nZVN0YXJ0ICsgbGFlbmdlOyB3KyspIHsKICAgICAgICAgICAgICAgIGlmIChpc3RX
b2NoZW5lbmRlKFoudGFnZVt3XSkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgd2VMZWZ0ID0g
KHcgLSByYW5nZVN0YXJ0KSAqIHplbGxlQnJlaXRlUHg7CiAgICAgICAgICAgICAgICAgICAgd2VN
YXJrZXJzICs9ICc8c3BhbiBjbGFzcz0ia2QtZmVyaWVuLWJhci13ZSIgc3R5bGU9ImxlZnQ6JyAr
IHdlTGVmdCArICdweDt3aWR0aDonICsgemVsbGVCcmVpdGVQeCArICdweCI+PC9zcGFuPic7CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmVyaWVuQmFyc0h0bWwg
Kz0gJzxkaXYgY2xhc3M9ImtkLWZlcmllbi1iYXIiIHN0eWxlPSJsZWZ0OicgKyBsZWZ0UHggKyAn
cHg7d2lkdGg6JyArIHdpZHRoUHggKyAncHgiIHRpdGxlPSInICsgZXNjYXBlQXR0cihyYW5nZU5h
bWUpICsgJyI+JyArCiAgICAgICAgICAgICAgICB3ZU1hcmtlcnMgKwogICAgICAgICAgICAgICAg
JzxzcGFuIGNsYXNzPSJrZC1mZXJpZW4tYmFyLXRleHQiPicgKyBlc2NhcGVIVE1MKHJhbmdlTmFt
ZSkgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAnPC9kaXY+JzsKICAgICAgICAgICAgcmFuZ2VT
dGFydCA9IGlzdEZlcmllbiA/IGkgOiAtMTsKICAgICAgICAgICAgcmFuZ2VOYW1lID0gaXN0RmVy
aWVuID8gbmFtZSA6ICcnOwogICAgICAgIH0KICAgIH0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdkYXR1bS16ZWlsZS1hbmxhc3MnKS5pbm5lckhUTUwgPSBhbmxhc3NIdG1sICsgZmVyaWVu
QmFyc0h0bWw7CiAgICB2YXIgc3RhZXJrZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0
YWVya2UtemVpbGUnKTsKICAgIHN0YWVya2VFbC5pbm5lckhUTUwgPSBzdGFlcmtlSHRtbDsKICAg
IC8vIENvbnRhaW5lciBhdXNibGVuZGVuIHdlbm4gVG9nZ2xlIGF1cywgZGFtaXQgYXVjaCBIb2Vo
ZSB3ZWdmYWVsbHQKICAgIHN0YWVya2VFbC5zdHlsZS5kaXNwbGF5ID0gc3RhZXJrZUFrdGl2ID8g
JycgOiAnbm9uZSc7CgogICAgdmFyIHNmUmVjaHRzSHRtbCA9ICcnOwogICAgaWYgKHNmQWt0aXYp
IHsKICAgICAgICBzZlplaWxlbi5mb3JFYWNoKGZ1bmN0aW9uKHopIHsKICAgICAgICAgICAgc2ZS
ZWNodHNIdG1sICs9ICc8ZGl2IGNsYXNzPSJrb3BmLWRhdGVuLXplaWxlIj4nICsgeiArICc8L2Rp
dj4nOwogICAgICAgIH0pOwogICAgfQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjaGlj
aHRmb2xnZS1yZWNodHMnKS5pbm5lckhUTUwgPSBzZlJlY2h0c0h0bWw7CiAgICAvLyBUYWItRmFl
cmJ1bmcgUHJ1ZWZ1bmcgbmFjaCBqZWRlbSBIZWFkZXItUmUtUmVuZGVyIGFrdHVhbGlzaWVyZW4g
4oCUCiAgICAvLyBqZWRlIFNjaGljaHQtQWVuZGVydW5nIHRyaWdnZXJ0IGtvcGZSZW5kZXJuLCBh
bHNvIGJsZWlidCBkaWUgRmFlcmJ1bmcKICAgIC8vIGltbWVyIGF1ZiBkZW0gU3RhbmQgZGVyIGFr
dHVlbGxlbiBEYXRlbi4KICAgIGlmIChyZW5kZXJIb29rcy5iZXNldHp1bmdzVGFiRmFyYmVBa3R1
YWxpc2llcmVuKSByZW5kZXJIb29rcy5iZXNldHp1bmdzVGFiRmFyYmVBa3R1YWxpc2llcmVuKCk7
CiAgICBwZXJmTWVhc3VyZShfcGVyZlRhZyk7Cn0KCi8vID09PT09IE5hbWVuc3NwYWx0ZSA9PT09
PQoKZXhwb3J0IGZ1bmN0aW9uIG5hbWVuUmVuZGVybigpIHsKICAgIHZhciBfcGVyZlRhZyA9IHBl
cmZNYXJrKCduYW1lblJlbmRlcm4nKTsKICAgIHZhciBodG1sID0gJyc7CiAgICB2YXIgbGV0enRl
R3J1cHBlID0gbnVsbDsKCiAgICBaLnBlcnNvbmVuLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAg
ICAgIHZhciBnID0gcC5ncnVwcGUgfHwgJz8nOwoKICAgICAgICAvLyBHcnVwcGVudHJlbm56ZWls
ZSBlaW5mw7xnZW4KICAgICAgICBpZiAoZyAhPT0gbGV0enRlR3J1cHBlKSB7CiAgICAgICAgICAg
IGlmIChsZXR6dGVHcnVwcGUgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgIHZhciBnTGFiZWwg
PSAoWi5ncnVwcGVuTWFwW2ddICYmIFouZ3J1cHBlbk1hcFtnXS5iZXplaWNobnVuZykgfHwgZzsK
ICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9Im5hbWVuLXRyZW5uZXIiPi0tLSAn
ICsgZXNjYXBlSFRNTChnTGFiZWwpICsgJyAtLS08L2Rpdj4nOwogICAgICAgICAgICB9CiAgICAg
ICAgICAgIGxldHp0ZUdydXBwZSA9IGc7CiAgICAgICAgfQoKICAgICAgICB2YXIgZ3JDbHMgPSAn
Z3ItJyArIGcuY2hhckF0KDApOwogICAgICAgIHZhciB1bWdDbHMgPSAhcC5ha3RpdiA/ICcgbmFt
ZW4temVpbGUtdW1nZXNldHp0JyA6ICcnOwogICAgICAgIHZhciBuYW1lQW56ZWlnZSA9IChwLmRp
ZW5zdGdyYWQgPyBwLmRpZW5zdGdyYWQgKyAnICcgOiAnJykgKyBwLm5hbWU7CiAgICAgICAgaHRt
bCArPSAnPGRpdiBjbGFzcz0ibmFtZW4temVpbGUnICsgdW1nQ2xzICsgJyIgZGF0YS1wZXJzb24t
aWQ9IicgKyBwLmlkICsgJyIgdGl0bGU9IicgKwogICAgICAgICAgICAocC5ha3RpdiA/ICcnIDog
J1VtZ2VzZXR6dCDigJQgbnVyIHp1ciBSZWNoZXJjaGUgZWluZ2VibGVuZGV0JykgKyAnIj4nICsK
ICAgICAgICAgICAgJzxkaXYgY2xhc3M9Im56LW5hbWUiPicgKwogICAgICAgICAgICAgICAgYXZh
dGFyS3JlaXNIdG1sKHAsIDIwKSArCiAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9Im56LW5h
bWUtdGV4dCI+JyArIGVzY2FwZUhUTUwobmFtZUFuemVpZ2UpICsgKHAuYWt0aXYgPyAnJyA6ICcg
4oCgJykgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8
ZGl2IGNsYXNzPSJuei1vZSI+JyArIGVzY2FwZUhUTUwocC5vZSB8fCAnJykgKyAnPC9kaXY+JyAr
CiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJuei1ncnVwcGUgJyArIGdyQ2xzICsgJyI+JyArIGVz
Y2FwZUhUTUwoZykgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJuei1kbnIi
IHRpdGxlPSJUZWxlZm9uIj4nICsgZXNjYXBlSFRNTChwLnRlbGVmb24gfHwgJycpICsgJzwvZGl2
PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0ibnotcmFuZyIgdGl0bGU9IkRpZW5zdHJhbmci
PicgKyAocC5wb3NpdGlvbiAhPSBudWxsID8gcC5wb3NpdGlvbiA6ICcnKSArICc8L2Rpdj4nICsK
ICAgICAgICAnPC9kaXY+JzsKICAgIH0pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25h
bWVuLWxpc3RlJykuaW5uZXJIVE1MID0gaHRtbDsKICAgIHBlcmZNZWFzdXJlKF9wZXJmVGFnKTsK
fQoKLy8gPT09PT0gRGF0ZW5ncmlkID09PT09CgovLyBNYXBwdCBlaW5lbiBTY2hyYWZmdXItQ29k
ZSB3aWUgIkYxIi8iUzIiLyJOMSIgYXVmIGRpZSB6dWdlaG9lcmlnZSBDU1MtS2xhc3NlLgpmdW5j
dGlvbiBzY2hyYWZmdXJLbGFzc2UobSkgewogICAgaWYgKCFtKSByZXR1cm4gJyc7CiAgICB2YXIg
cHIgPSBtLmNoYXJBdCgwKSwgcmcgPSBtLmNoYXJBdCgxKTsKICAgIGlmIChwciA9PT0gJ0YnKSBy
ZXR1cm4gcmcgPT09ICcxJyA/ICdzY2hyYWZmdXItZnJ1ZWgnIDogJ3NjaHJhZmZ1ci1mcnVlaC0y
JzsKICAgIGlmIChwciA9PT0gJ1MnKSByZXR1cm4gcmcgPT09ICcxJyA/ICdzY2hyYWZmdXItc3Bh
ZXQnIDogJ3NjaHJhZmZ1ci1zcGFldC0yJzsKICAgIGlmIChwciA9PT0gJ04nKSByZXR1cm4gcmcg
PT09ICcxJyA/ICdzY2hyYWZmdXItbmFjaHQnIDogJ3NjaHJhZmZ1ci1uYWNodC0yJzsKICAgIHJl
dHVybiAnJzsKfQoKZXhwb3J0IGZ1bmN0aW9uIGRhdGVuR3JpZFJlbmRlcm4oKSB7CiAgICB2YXIg
X3BlcmZUYWcgPSBwZXJmTWFyaygnZGF0ZW5HcmlkUmVuZGVybicpOwogICAgLy8gU2NocmFmZnVy
ZW4gdm9yYWIgcHJvIFRhZyBiZXJlY2huZW4sIGRhbWl0IHNpZSBpbmxpbmUgaW4gZGVuIEhUTUwt
U3RyaW5nCiAgICAvLyBrb2VubmVuIOKAlCBzcGFydCBoaW50ZXJoZXIgfjIyMDAgRE9NLVF1ZXJp
ZXMgKHNpZWhlIHNjaHJhZmZ1ckJlcmVjaG5lbgogICAgLy8gKyBIb3QtUGF0aC1BdWRpdCkuIE1h
cDogeyAiZGF0dW18cGlkIjogIkYxIiB8ICJTMiIgfCDigKYgfQogICAgdmFyIHNjaHJNYXAgPSB7
fTsKICAgIFoudGFnZS5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKICAgICAgICB2YXIgZFN0ciA9IGRh
dHVtU3RyKGQpOwogICAgICAgIHZhciBzY2hyID0gc2NocmFmZnVyQmVyZWNobmVuKGRTdHIpOwog
ICAgICAgIE9iamVjdC5rZXlzKHNjaHIpLmZvckVhY2goZnVuY3Rpb24ocGlkKSB7CiAgICAgICAg
ICAgIHNjaHJNYXBbZFN0ciArICd8JyArIHBpZF0gPSBzY2hyW3BpZF07CiAgICAgICAgfSk7CiAg
ICB9KTsKCiAgICB2YXIgaHRtbCA9ICcnOwogICAgdmFyIGxldHp0ZUdydXBwZSA9IG51bGw7CiAg
ICAvLyBWb2xsZSBHcmlkLUJyZWl0ZSAoYWxsZSBUYWdlKS4gRGVyIFRyZW5uZXIgaXN0IGVpbiBs
ZWVyZXMgRmxleC1LaW5kIHVuZAogICAgLy8gYmVrYW0gbWl0ICJtaW4td2lkdGg6MTAwJSIgbnVy
IGRpZSBTSUNIVEJBUkUgQnJlaXRlIGRlcyBTY3JvbGwtQ29udGFpbmVycwogICAgLy8g4oCUIGJl
aW0gUmF1c3Njcm9sbGVuIGJsaWViIGVyIHN0ZWhlbiwgZGllIERhdGVuemVpbGVuIGxpZWZlbiBh
YmVyIHdlaXRlcgogICAgLy8gKHdlaXNzZXIgU3RyZWlmZW4gcmVjaHRzIG5lYmVuIGRlbSBHcnVw
cGVuLUxhYmVsKS4gQm9yZGVyLWJveCAtPiBqZWRlCiAgICAvLyBaZWxsZSBpc3QgZXhha3QgLS16
ZWxsZS1icmVpdGUgYnJlaXQsIGFsc28gR2VzYW10YnJlaXRlID0gYnJlaXRlICogVGFnZS4KICAg
IHZhciBncmlkQnJlaXRlQ3NzID0gJ2NhbGModmFyKC0temVsbGUtYnJlaXRlKSAqICcgKyAoWi50
YWdlLmxlbmd0aCB8fCAwKSArICcpJzsKCiAgICBaLnBlcnNvbmVuLmZvckVhY2goZnVuY3Rpb24o
cCkgewogICAgICAgIHZhciBnID0gcC5ncnVwcGUgfHwgJz8nOwoKICAgICAgICAvLyBHcnVwcGVu
dHJlbm56ZWlsZSBpbSBHcmlkCiAgICAgICAgaWYgKGcgIT09IGxldHp0ZUdydXBwZSkgewogICAg
ICAgICAgICBpZiAobGV0enRlR3J1cHBlICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAvLyBJ
bmxpbmUtU3R5bGUsIGRhbWl0IEJyb3dzZXItQ2FjaGUgb2RlciBDU1MtT3ZlcnJpZGUgZWdhbCBz
aW5kLgogICAgICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0iZ3JpZC10cmVubmVyIiBz
dHlsZT0iYmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTt3aWR0aDonICsgZ3JpZEJyZWl0ZUNz
cyArICc7bWluLXdpZHRoOjEwMCUiPjwvZGl2Pic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAg
bGV0enRlR3J1cHBlID0gZzsKICAgICAgICB9CgogICAgICAgIHZhciB6ZWlsZUNscyA9ICdncmlk
LXplaWxlJyArICghcC5ha3RpdiA/ICcgZ3JpZC16ZWlsZS11bWdlc2V0enQnIDogJycpOwogICAg
ICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9IicgKyB6ZWlsZUNscyArICciIGRhdGEtcGVyc29uLWlk
PSInICsgcC5pZCArICciPic7CiAgICAgICAgdmFyIHBpZFN0ciA9IFN0cmluZyhwLmlkKTsKICAg
ICAgICB2YXIgZGFyZkVkaXQgPSBkYXJmWmVsbGVFZGl0aWVyZW4ocC5pZCk7CiAgICAgICAgWi50
YWdlLmZvckVhY2goZnVuY3Rpb24oZCkgewogICAgICAgICAgICB2YXIgZFN0ciA9IGRhdHVtU3Ry
KGQpOwogICAgICAgICAgICB2YXIgZSA9IChaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9KVtkU3Ry
XSB8fCB7fTsKICAgICAgICAgICAgdmFyIHdlcnQgPSBlW3BpZFN0cl0gfHwgJyc7CiAgICAgICAg
ICAgIHZhciBmYXJiZW4gPSBaLmNvZGVNYXBbd2VydF0gfHwge307CiAgICAgICAgICAgIHZhciBp
bmZvID0gWi50YWdJbmZvc1tkU3RyXSB8fCB7IHR5cDogJ25vcm1hbCcgfTsKICAgICAgICAgICAg
dmFyIHN0eWxlID0gJycsIGtsYXNzZW4gPSAnZ3JpZC16ZWxsZSc7CiAgICAgICAgICAgIHZhciBh
bnplaWdlID0gd2VydDsKICAgICAgICAgICAgdmFyIHRpdGVsID0gd2VydDsKCiAgICAgICAgICAg
IGlmICh3ZXJ0ICYmIGZhcmJlbi5oaW50ZXJncnVuZCkgewogICAgICAgICAgICAgICAgc3R5bGUg
PSAnYmFja2dyb3VuZC1jb2xvcjonICsgZXNjYXBlQXR0cihmYXJiZW4uaGludGVyZ3J1bmQpICsg
Jztjb2xvcjonICsgZXNjYXBlQXR0cihmYXJiZW4uc2NocmlmdCB8fCAnIzAwMCcpOwogICAgICAg
ICAgICAgICAgYW56ZWlnZSA9IGZhcmJlbi5rdWVyemVsIHx8IHdlcnQ7CiAgICAgICAgICAgIH0g
ZWxzZSBpZiAoaW5mby50eXAgPT09ICd3b2NoZW5lbmRlJykga2xhc3NlbiArPSAnIHNwYWx0ZS13
b2NoZW5lbmRlJzsKICAgICAgICAgICAgZWxzZSBpZiAoaW5mby50eXAgPT09ICdmZWllcnRhZycp
IGtsYXNzZW4gKz0gJyBzcGFsdGUtZmVpZXJ0YWcnOwogICAgICAgICAgICBlbHNlIGlmIChpbmZv
LnR5cCA9PT0gJ2ZlcmllbicpIGtsYXNzZW4gKz0gJyBzcGFsdGUtZmVyaWVuJzsKICAgICAgICAg
ICAgaWYgKGRTdHIgPT09IFouaGV1dGVTdHIpIGtsYXNzZW4gKz0gJyBzcGFsdGUtaGV1dGUnOwoK
ICAgICAgICAgICAgLy8gT2huZSBFZGl0LVJlY2h0IHdpcmQgZGllIFplbGxlIHZpc3VlbGwgYWxz
IGdlc3BlcnJ0IG1hcmtpZXJ0LgogICAgICAgICAgICBpZiAoIWRhcmZFZGl0KSBrbGFzc2VuICs9
ICcgZ3JpZC16ZWxsZS1nZXNwZXJydCc7CgogICAgICAgICAgICAvLyBTY2hyYWZmdXIgaW5saW5l
IGF1cyBkZXIgdm9yYWIgYmVyZWNobmV0ZW4gTWFwLgogICAgICAgICAgICB2YXIgbSA9IHNjaHJN
YXBbZFN0ciArICd8JyArIHBpZFN0cl07CiAgICAgICAgICAgIGlmIChtKSB7CiAgICAgICAgICAg
ICAgICB2YXIgY2wgPSBzY2hyYWZmdXJLbGFzc2UobSk7CiAgICAgICAgICAgICAgICBpZiAoY2wp
IGtsYXNzZW4gKz0gJyAnICsgY2w7CiAgICAgICAgICAgICAgICBpZiAobS5jaGFyQXQoMSkgPT09
ICcxJykgewogICAgICAgICAgICAgICAgICAgIGtsYXNzZW4gKz0gJyB2ZXJhbnR3b3J0bGljaCc7
CiAgICAgICAgICAgICAgICAgICAgdGl0ZWwgKz0gJyBbVkVSQU5UV09SVExJQ0hdJzsKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFz
cz0iJyArIGtsYXNzZW4gKyAnIiBkYXRhLWRhdHVtPSInICsgZFN0ciArICciIGRhdGEtcGVyc29u
PSInICsgcGlkU3RyICsgJyIgc3R5bGU9IicgKyBzdHlsZSArICciIHRpdGxlPSInICsgZXNjYXBl
QXR0cih0aXRlbCkgKyAnIj4nICsgZXNjYXBlSFRNTChhbnplaWdlKSArICc8L2Rpdj4nOwogICAg
ICAgIH0pOwogICAgICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAgICB9KTsKICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdncmlkLWRhdGVuJykuaW5uZXJIVE1MID0gaHRtbDsKICAgIC8vIChEZXIg
ZnJ1ZWhlcmUgZGVmZW5zaXZlIHF1ZXJ5U2VsZWN0b3JBbGwoJy5ncmlkLXRyZW5uZXInKS1TdHls
ZS1Mb29wIGlzdAogICAgLy8gZW50ZmVybnQ6IGRpZSBUcmVubmVyIHRyYWdlbiBpaHJlIElubGlu
ZS1TdHlsZXMgYmVyZWl0cyBpbSBIVE1MLVN0cmluZwogICAgLy8g4oCUIGBzdHlsZT0iYmFja2dy
b3VuZDp2YXIoLS1iZy1wcmltYXJ5KTt3aWR0aDrigKY7bWluLXdpZHRoOjEwMCUiYCDigJQgdW5k
CiAgICAvLyBDU1MtVmFyaWFibGVuIGluIElubGluZS1TdHlsZXMgbG9lc2VuIGF1ZiBkZW4gQ2hy
b21pdW0tQnJvd3Nlcm4genV2ZXItCiAgICAvLyBsYWVzc2lnIGF1Zi4gRGVyIExvb3AgdmVydXJz
YWNodGUgcHJvIFZvbGwtUmVuZGVyIGVpbmVuIGdldENvbXB1dGVkU3R5bGUtCiAgICAvLyBSZWZs
b3cgKyBET00tUXVlcnkgKyBTdHlsZS1Xcml0ZXMgb2huZSBNZWhyd2VydC4pCiAgICBpZiAocmVu
ZGVySG9va3Mua29tbWVudGFyZUltR3JpZEFuemVpZ2VuKSByZW5kZXJIb29rcy5rb21tZW50YXJl
SW1HcmlkQW56ZWlnZW4oKTsKICAgIHBlcmZNZWFzdXJlKF9wZXJmVGFnKTsKfQoKLy8gPT09PT0g
WmVsbGUgYWt0dWFsaXNpZXJlbiAobmFjaCDDhG5kZXJ1bmcpID09PT09CgpleHBvcnQgZnVuY3Rp
b24gemVsbGVWaXN1ZWxsQWt0dWFsaXNpZXJlbihkU3RyLCBwaWQsIHdlcnQpIHsKICAgIHZhciBf
cGVyZlRhZyA9IHBlcmZNYXJrKCd6ZWxsZVZpc3VlbGxBa3R1YWxpc2llcmVuJyk7CiAgICB2YXIg
eiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ncmlkLXplbGxlW2RhdGEtZGF0dW09IicgKyBk
U3RyICsgJyJdW2RhdGEtcGVyc29uPSInICsgcGlkICsgJyJdJyk7CiAgICBpZiAoIXopIHsgcGVy
Zk1lYXN1cmUoX3BlcmZUYWcpOyByZXR1cm47IH0KICAgIC8vIEFsdGVyIFdlcnQgYXVzIGRlbSB0
aXRsZS1BdHRyaWJ1dCBkZXIgWmVsbGU6IGdlc2V0enQgYmVpbSBsZXR6dGVuIFJlbmRlcgogICAg
Ly8gYnp3LiB2b20gbGV0enRlbiB6ZWxsZVZpc3VlbGxBa3R1YWxpc2llcmVuIOKAlCBaLnBsYW51
bmcuZWludHJhZWdlIHd1cmRlCiAgICAvLyB2b20gQXVmcnVmZXIgc2Nob24gdWViZXJzY2hyaWVi
ZW4uCiAgICB2YXIgYWx0ZXJUaXRlbCA9IHoudGl0bGUgfHwgJyc7CiAgICB2YXIgZGdsQmV0cm9m
ZmVuID0gYWx0ZXJUaXRlbC5pbmRleE9mKCdER0wnKSA+PSAwIHx8ICh3ZXJ0IHx8ICcnKS5pbmRl
eE9mKCdER0wnKSA+PSAwOwoKICAgIHZhciBmYXJiZW4gPSBaLmNvZGVNYXBbd2VydF0gfHwge307
CiAgICB2YXIgaW5mbyA9IFoudGFnSW5mb3NbZFN0cl0gfHwgeyB0eXA6ICdub3JtYWwnIH07CiAg
ICB6LmNsYXNzTmFtZSA9ICdncmlkLXplbGxlJzsKICAgIHouc3R5bGUuY3NzVGV4dCA9ICcnOwog
ICAgei50aXRsZSA9IHdlcnQgfHwgJyc7CiAgICBpZiAod2VydCAmJiBmYXJiZW4uaGludGVyZ3J1
bmQpIHsKICAgICAgICB6LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGZhcmJlbi5oaW50ZXJncnVu
ZDsKICAgICAgICB6LnN0eWxlLmNvbG9yID0gZmFyYmVuLnNjaHJpZnQgfHwgJyMwMDAnOwogICAg
ICAgIHoudGV4dENvbnRlbnQgPSBmYXJiZW4ua3VlcnplbCB8fCB3ZXJ0OwogICAgfSBlbHNlIHsK
ICAgICAgICB6LnRleHRDb250ZW50ID0gd2VydDsKICAgICAgICBpZiAoaW5mby50eXAgPT09ICd3
b2NoZW5lbmRlJykgei5jbGFzc0xpc3QuYWRkKCdzcGFsdGUtd29jaGVuZW5kZScpOwogICAgICAg
IGVsc2UgaWYgKGluZm8udHlwID09PSAnZmVpZXJ0YWcnKSB6LmNsYXNzTGlzdC5hZGQoJ3NwYWx0
ZS1mZWllcnRhZycpOwogICAgICAgIGVsc2UgaWYgKGluZm8udHlwID09PSAnZmVyaWVuJykgei5j
bGFzc0xpc3QuYWRkKCdzcGFsdGUtZmVyaWVuJyk7CiAgICB9CiAgICBpZiAoZFN0ciA9PT0gWi5o
ZXV0ZVN0cikgei5jbGFzc0xpc3QuYWRkKCdzcGFsdGUtaGV1dGUnKTsKCiAgICAvLyBjbGFzc05h
bWUgd3VyZGUgb2JlbiBrb21wbGV0dCB6dXJ1ZWNrZ2VzZXR6dCDigJQgZGllIFNwZXJyLU1hcmtp
ZXJ1bmcgZnVlcgogICAgLy8gbmljaHQtZWRpdGllcmJhcmUgWmVsbGVuIChmcmVtZGUgR3J1cHBl
L1BlcnNvbikgbXVzcyBkYWhlciB3aWVkZXIgZ2VzZXR6dAogICAgLy8gd2VyZGVuLCBzb25zdCBz
aWVodCBlaW5lIHJlYWQtb25seS1aZWxsZSBuYWNoIGVpbmVtIExpdmUtU3luYy1VcGRhdGUKICAg
IC8vIHBsb2V0emxpY2ggZWRpdGllcmJhciBhdXMgKEJ1ZzogQ29udGVkZHUgc2FoIGZyZW1kZSBT
LVdERi9TLURHTCBmYXJiaWcpLgogICAgaWYgKCFkYXJmWmVsbGVFZGl0aWVyZW4ocGlkKSkgei5j
bGFzc0xpc3QuYWRkKCdncmlkLXplbGxlLWdlc3BlcnJ0Jyk7CgogICAgLy8gU3TDpHJrZSArIFNj
aHJhZmZ1ciBzaW5kIGJlaWRlIERHTC1hYmhhZW5naWcg4oCUIHdlbm4gd2VkZXIgYWx0ZXIgbm9j
aAogICAgLy8gbmV1ZXIgV2VydCAiREdMIiBlbnRoaWVsdCAoVXJsL2tyL2Rmci9TZW0vZXRjLiks
IGFlbmRlcnQgc2ljaCBkYXJhbgogICAgLy8gbmljaHRzLiBTa2lwIHNwYXJ0IHBybyBFZGl0IGRl
biA0Ni1QZXJzb25lbi1SZWNhbGMgKyB+NTAgRE9NLVF1ZXJpZXMKICAgIC8vIChBdWRpdC1QaGFz
ZSBCLjEsIDIwMjYtMDUtMjEpLgogICAgaWYgKCFkZ2xCZXRyb2ZmZW4pIHJldHVybjsKCiAgICAv
LyBTdMOkcmtlIGbDvHIgZGllc2VuIFRhZyBha3R1YWxpc2llcmVuCiAgICBzdGFlcmtlWmVsbGVB
a3R1YWxpc2llcmVuKGRTdHIpOwoKICAgIHZhciBhbGxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgnLmdyaWQtemVsbGVbZGF0YS1kYXR1bT0iJyArIGRTdHIgKyAnIl0nKTsKICAgIGFsbGUu
Zm9yRWFjaChmdW5jdGlvbihhKSB7CiAgICAgICAgYS5jbGFzc0xpc3QucmVtb3ZlKCdzY2hyYWZm
dXItZnJ1ZWgnLCdzY2hyYWZmdXItc3BhZXQnLCdzY2hyYWZmdXItbmFjaHQnLCdzY2hyYWZmdXIt
ZnJ1ZWgtMicsJ3NjaHJhZmZ1ci1zcGFldC0yJywnc2NocmFmZnVyLW5hY2h0LTInLCd2ZXJhbnR3
b3J0bGljaCcpOwogICAgfSk7CiAgICB2YXIgc2NociA9IHNjaHJhZmZ1ckJlcmVjaG5lbihkU3Ry
KTsKICAgIE9iamVjdC5rZXlzKHNjaHIpLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAgICAgIHZh
ciBtID0gc2NocltwXSwgenogPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ3JpZC16ZWxsZVtk
YXRhLWRhdHVtPSInICsgZFN0ciArICciXVtkYXRhLXBlcnNvbj0iJyArIHAgKyAnIl0nKTsKICAg
ICAgICBpZiAoIXp6KSByZXR1cm47CiAgICAgICAgdmFyIGNsID0gc2NocmFmZnVyS2xhc3NlKG0p
OwogICAgICAgIGlmIChjbCkgenouY2xhc3NMaXN0LmFkZChjbCk7CiAgICAgICAgaWYgKG0uY2hh
ckF0KDEpID09PSAnMScpIHsKICAgICAgICAgICAgenouY2xhc3NMaXN0LmFkZCgndmVyYW50d29y
dGxpY2gnKTsKICAgICAgICAgICAgenoudGl0bGUgPSAoenoudGl0bGUgfHwgJycpICsgJyBbVkVS
QU5UV09SVExJQ0hdJzsKICAgICAgICB9CiAgICB9KTsKICAgIHBlcmZNZWFzdXJlKF9wZXJmVGFn
KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHN0YWVya2VaZWxsZUFrdHVhbGlzaWVyZW4oZFN0cikgewog
ICAgdmFyIHN0WmVpbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhZXJrZS16ZWlsZScp
OwogICAgaWYgKCFzdFplaWxlKSByZXR1cm47CiAgICB2YXIgaWR4ID0gWi50YWdlLmZpbmRJbmRl
eChmdW5jdGlvbihkKSB7IHJldHVybiBkYXR1bVN0cihkKSA9PT0gZFN0cjsgfSk7CiAgICBpZiAo
aWR4IDwgMCB8fCBpZHggPj0gc3RaZWlsZS5jaGlsZHJlbi5sZW5ndGgpIHJldHVybjsKICAgIHZh
ciBzdCA9IHN0YWVya2VCZXJlY2huZW4oZFN0cik7CiAgICB2YXIgemVsbGUgPSBzdFplaWxlLmNo
aWxkcmVuW2lkeF07CiAgICB6ZWxsZS5jbGFzc05hbWUgPSAna2QtemVsbGUgJyArIChzdC5vayA/
ICdzdGFlcmtlLW9rJyA6ICdzdGFlcmtlLXdhcm51bmcnKTsKICAgIHplbGxlLnRleHRDb250ZW50
ID0gc3QudGV4dDsKICAgIHplbGxlLnRpdGxlID0gJ0Y6JyArIHN0LmYgKyAnIFM6JyArIHN0LnMg
KyAnIE46JyArIHN0Lm47Cn0KCi8vID09PT09IFNjcm9sbC1TeW5jaHJvbmlzYXRpb24gPT09PT0K
CmV4cG9ydCBmdW5jdGlvbiBzY3JvbGxTeW5jKCkgewogICAgdmFyIGdyaWQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZ3JpZC1zY3JvbGwtY29udGFpbmVyJyk7CiAgICB2YXIgbmFtZW4gPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmFtZW4tbGlzdGUnKTsKICAgIHZhciBzcGVycmUgPSBm
YWxzZTsKICAgIGdyaWQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgaWYgKHNwZXJyZSkgcmV0dXJuOwogICAgICAgIHNwZXJyZSA9IHRydWU7CiAgICAgICAg
bmFtZW4uc2Nyb2xsVG9wID0gZ3JpZC5zY3JvbGxUb3A7CiAgICAgICAgc3BlcnJlID0gZmFsc2U7
CiAgICB9KTsKICAgIG5hbWVuLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGZ1bmN0aW9uKCkg
ewogICAgICAgIGlmIChzcGVycmUpIHJldHVybjsKICAgICAgICBzcGVycmUgPSB0cnVlOwogICAg
ICAgIGdyaWQuc2Nyb2xsVG9wID0gbmFtZW4uc2Nyb2xsVG9wOwogICAgICAgIHNwZXJyZSA9IGZh
bHNlOwogICAgfSk7CiAgICAvLyBEYXMgR3JpZCBoYXQgZWluZW4gaG9yaXpvbnRhbGVuIFNjcm9s
bGJhbGtlbiB1bnRlbiwgZGVyIFBsYXR6IGZyaXNzdC4KICAgIC8vIERpZSBOYW1lbnNsaXN0ZSBk
YW5lYmVuIG5pY2h0IOKAlCBvaG5lIEF1c2dsZWljaCB3YWVyZW4gZGllIGxldHp0ZW4KICAgIC8v
IFplaWxlbiB2ZXJzY2hvYmVuLiBQYWRkaW5nIGR5bmFtaXNjaCBhdWYgZGllIHJlYWxlIFNjcm9s
bGJhci1Ib2VoZQogICAgLy8gc2V0emVuIChjbGllbnRIZWlnaHQgYmVydWVja3NpY2h0aWd0IGRl
biBCYWxrZW4sIG9mZnNldEhlaWdodCBuaWNodCkuCiAgICBmdW5jdGlvbiBzY3JvbGxiYXJBdXNn
bGVpY2goKSB7CiAgICAgICAgdmFyIGggPSBncmlkLm9mZnNldEhlaWdodCAtIGdyaWQuY2xpZW50
SGVpZ2h0OwogICAgICAgIGlmIChoIDwgMCkgaCA9IDA7CiAgICAgICAgbmFtZW4uc3R5bGUucGFk
ZGluZ0JvdHRvbSA9IGggKyAncHgnOwogICAgfQogICAgc2Nyb2xsYmFyQXVzZ2xlaWNoKCk7CiAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgc2Nyb2xsYmFyQXVzZ2xlaWNoKTsK
fQoKZXhwb3J0IGZ1bmN0aW9uIHp1bUhldXRpZ2VuRGF0dW0oKSB7CiAgICAvLyBEb3BwZWx0ZXMg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lOiBnYXJhbnRpZXJ0LCBkYXNzIGRlciBCcm93c2VyIHp3ZWkK
ICAgIC8vIFJlbmRlci1GcmFtZXMgZHVyY2hsYXVmZW4gaGF0IChMYXlvdXQgKyBQYWludCksIGJl
dm9yIHdpciBkaWUKICAgIC8vIFplbGxlbi1Qb3NpdGlvbiBhdXNsZXNlbi4gU29uc3Qga2FubiBu
YWNoIExvZ2luIC8gVGFiLVdlY2hzZWwgLwogICAgLy8gSG90LVJlbG9hZCBkaWUgWmVsbGUgbm9j
aCBuaWNodCBmaW5hbCBwb3NpdGlvbmllcnQgc2VpbiB1bmQgZGVyCiAgICAvLyBTY3JvbGwgc3By
aW5ndCBrbmFwcCBkYW5lYmVuIChDaGVycnktUGljayAxYWVmZTI2KS4KICAgIHJlcXVlc3RBbmlt
YXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgIHZhciB6ZWxsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
JyNkYXR1bS16ZWlsZS10YWcgLmtkLXplbGxlW2RhdGEtZGF0dW09IicgKyBaLmhldXRlU3RyICsg
JyJdJyk7CiAgICAgICAgICAgIGlmICh6ZWxsZSkgewogICAgICAgICAgICAgICAgdmFyIGMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JpZC1zY3JvbGwtY29udGFpbmVyJyk7CiAgICAgICAg
ICAgICAgICB2YXIgciA9IHplbGxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCBjciA9IGMuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgICAgICAgICBjLnNjcm9sbExlZnQgKz0gci5s
ZWZ0IC0gY3IubGVmdCAtIGNyLndpZHRoIC8gMzsKICAgICAgICAgICAgfQogICAgICAgIH0pOwog
ICAgfSk7Cn0KCi8vID09PT09IE5hdmlnYXRpb24gLyBUYWItV2VjaHNlbCA9PT09PQoKZXhwb3J0
IGZ1bmN0aW9uIGFuc2ljaHRXZWNoc2VsbihuYW1lKSB7CiAgICBpZiAobmFtZSA9PT0gJ2FkbWlu
JyAmJiAhZGFyZkFkbWluVGFiKCkpIHsKICAgICAgICB0b2FzdCgnQWRtaW5pc3RyYXRpb24gaXN0
IG51ciBmw7xyIFN1cGVyVXNlciB6dWfDpG5nbGljaCcsICd3YXJudW5nJyk7CiAgICAgICAgcmV0
dXJuOwogICAgfQogICAgaWYgKG5hbWUgPT09ICdzdGF0aXN0aWsnICYmICFkYXJmU3RhdGlzdGlr
KCkpIHsKICAgICAgICB0b2FzdCgnU3RhdGlzdGlrIGlzdCBmw7xyIGRpY2ggbmljaHQgZnJlaWdl
c2NoYWx0ZXQnLCAnd2FybnVuZycpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChuYW1l
ID09PSAnbG9nYnVjaCcgJiYgIWRhcmZMb2didWNoKCkpIHsKICAgICAgICB0b2FzdCgnTG9nYnVj
aCBpc3QgZsO8ciBkaWNoIG5pY2h0IGZyZWlnZXNjaGFsdGV0JywgJ3dhcm51bmcnKTsKICAgICAg
ICByZXR1cm47CiAgICB9CiAgICBpZiAobmFtZSA9PT0gJ2Jlc2V0enVuZycgJiYgIShaLnJlY2h0
ZSAmJiBaLnJlY2h0ZS5pc3RHZXNhbXR2ZXJhbnR3b3J0bGljaCkpIHsKICAgICAgICB2YXIgYmV6
QmVzZXR6dW5nID0gKHJlbmRlckhvb2tzLmJleiAmJiByZW5kZXJIb29rcy5iZXooJ25hdi5iZXNl
dHp1bmcnKSkgfHwgJ0Jlc2V0enVuZyc7CiAgICAgICAgdG9hc3QoYmV6QmVzZXR6dW5nICsgJyBp
c3QgbnVyIGbDvHIgR2VzYW10dmVyYW50d29ydGxpY2hlIHp1Z8OkbmdsaWNoJywgJ3dhcm51bmcn
KTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBbJ3BsYW51bmcnLCd3b2NoZW5wbGFuJywncGVy
c3BsYW4nLCdhZG1pbicsJ3N0YXRpc3RpaycsJ2xvZ2J1Y2gnLCdiZXNldHp1bmcnXS5mb3JFYWNo
KGZ1bmN0aW9uKGEpIHsKICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
YW5zaWNodC0nICsgYSk7CiAgICAgICAgaWYgKGVsKSBlbC5jbGFzc0xpc3QudG9nZ2xlKCd2ZXJz
dGVja3QnLCBhICE9PSBuYW1lKTsKICAgIH0pOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgnLm5hdi1idG4nKS5mb3JFYWNoKGZ1bmN0aW9uKGIpIHsKICAgICAgICBiLmNsYXNzTGlzdC50
b2dnbGUoJ2FrdGl2JywgYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtYW5zaWNodCcpID09PSBuYW1lKTsK
ICAgIH0pOwogICAgaWYgKG5hbWUgPT09ICd3b2NoZW5wbGFuJyAmJiByZW5kZXJIb29rcy53cFJl
bmRlcm4pIHJlbmRlckhvb2tzLndwUmVuZGVybigpOwogICAgaWYgKG5hbWUgPT09ICdwZXJzcGxh
bicgJiYgcmVuZGVySG9va3MucHBSZW5kZXJuKSByZW5kZXJIb29rcy5wcFJlbmRlcm4oKTsKICAg
IGlmIChuYW1lID09PSAnbG9nYnVjaCcgJiYgcmVuZGVySG9va3MubG9nYnVjaExhZGVuKSByZW5k
ZXJIb29rcy5sb2didWNoTGFkZW4oKTsKICAgIGlmIChuYW1lID09PSAnc3RhdGlzdGlrJyAmJiBy
ZW5kZXJIb29rcy5zdGF0aXN0aWtMYWRlbikgcmVuZGVySG9va3Muc3RhdGlzdGlrTGFkZW4oKTsK
ICAgIGlmIChuYW1lID09PSAnYWRtaW4nICYmIHJlbmRlckhvb2tzLmFkbWluUmVuZGVybikgcmVu
ZGVySG9va3MuYWRtaW5SZW5kZXJuKCk7CiAgICBpZiAobmFtZSA9PT0gJ2Jlc2V0enVuZycgJiYg
cmVuZGVySG9va3MuYmVzZXR6dW5nc2tvbnRyb2xsZVJlbmRlcm4pIHJlbmRlckhvb2tzLmJlc2V0
enVuZ3Nrb250cm9sbGVSZW5kZXJuKCk7CgogICAgLy8gQWt0aXZlIEFuc2ljaHQgcGVyc2lzdGll
cmVuLCBkYW1pdCBlaW4gQnJvd3Nlci1SZWZyZXNoIChGNSkgbmljaHQgaW4KICAgIC8vIGRpZSBQ
bGFudW5nc2Fuc2ljaHQgenVydWVja3NwcmluZ3QuIEJld3Vzc3Qgc2Vzc2lvblN0b3JhZ2Ugc3Rh
dHQKICAgIC8vIGxvY2FsU3RvcmFnZTogZWluIG5ldWVyIEJyb3dzZXItU3RhcnQgdWViZXIgZGds
LmJhdCAoPSBuZXVlcyBUYWIsCiAgICAvLyBsZWVyZXMgc2Vzc2lvblN0b3JhZ2UpIGZhZW5ndCBk
YW1pdCBpbW1lciBhdWYgZGVyIFBsYW51bmdzYW5zaWNodAogICAgLy8gYW4sIHdhZWhyZW5kIGVp
biBJbi1UYWItUmVmcmVzaCBkaWUgQW5zaWNodCBoYWVsdC4KICAgIHRyeSB7IHNlc3Npb25TdG9y
YWdlLnNldEl0ZW0oJ3ZpMy5ha3RpdmVBbnNpY2h0JywgbmFtZSk7IH0gY2F0Y2ggKGUpIHsgLyog
aWdub3JlICovIH0KfQo=
### FILE: js/hinweise.js | 19061
Ly8gPT09IGhpbndlaXNlLmpzID09PQovLyBJbi1BcHAtSGlud2Vpcy1TeXN0ZW0gKEJhbm5lciBv
YmVuICsgQmFkZ2UgYW0gVXNlci1OYW1lbiArIE1vZGFsLVNlaXRlKS4KLy8KLy8gRXJzZXR6dCBz
ZWl0IDIwMjYtMDUtMjAgYWxsZSBSb3V0aW5lLW1haWx0by1UcmlnZ2VyIChLcmFua21lbGR1bmcs
Ci8vIElkZW50aXRhZXRzLUFlbmRlcnVuZywgQmFja3VwLVJlc3RvcmUsIFBsYW51bmctUmVzZXQs
IFJvbGxlbi1BZW5kZXJ1bmcKLy8gb2huZSBWZXJhbnR3b3J0dW5ncy1VZWJlcmdhbmcpLiBTaWNo
dGJhciBudXIgZnVlciBTdXBlclVzZXIgKyBHZXNhbXQtCi8vIHZlcmFudHdvcnRsaWNoZS4KLy8K
Ly8gRGF0ZW4ga29tbWVuIHZvbSBTZXJ2ZXIgKC9hcGkvaGlud2Vpc2UpLiBQcm8tVXNlci1MZXNl
c3RhdHVzIGxpZWd0Ci8vIGluIGRhdGEvaGlud2Vpc2UuanNvbiwgQmFubmVyLURpc21pc3MgbGFl
dWZ0IGNsaWVudC1zZWl0aWcgcGVyCi8vIHNlc3Npb25TdG9yYWdlIChrb21tdCBiZWkgUmVsb2Fk
IG1pdCBuZXVlbSBIaW53ZWlzIHdpZWRlcikuCgppbXBvcnQgeyBaIH0gZnJvbSAnLi9jb3JlX3N0
YXRlLmpzJzsKaW1wb3J0IHsgYXBpLCBhcGlQb3N0IH0gZnJvbSAnLi9jb3JlX2FwaS5qcyc7Cmlt
cG9ydCB7IGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIsIGRhdHVtRm9ybWF0REUgfSBmcm9tICcuL2Nv
cmVfdXRpbC5qcyc7CmltcG9ydCB7IG1vZGFsWmVpZ2VuLCBtb2RhbFNjaGxpZXNzZW4sIHRvYXN0
LCBiZXN0YWV0aWdlbiB9IGZyb20gJy4vdWlfZGlhbG9nLmpzJzsKaW1wb3J0IHsgdGFnRGV0YWls
TW9kYWxaZWlnZW4gfSBmcm9tICcuL2Jlc2V0enVuZy5qcyc7Cgp2YXIgQkFOTkVSX0RJU01JU1Nf
S0VZID0gJ2hpbndlaXNfYmFubmVyX2Rpc21pc3NlZF9pZHMnOwoKLy8gTGVzYmFyZSBCZXplaWNo
bnVuZ2VuIHBybyBUeXAuIFdpcmQgaW0gQmFubmVyLVRleHQgdW5kIGluIGRlcgovLyBNb2RhbC1U
YWJlbGxlIHZlcndlbmRldC4KdmFyIFRZUF9MQUJFTCA9IHsKICAgIGlkZW50aXRhZXRfZ2VhZW5k
ZXJ0OiAgICAnSWRlbnRpdMOkdCBnZcOkbmRlcnQnLAogICAgcm9sbGVfZ2VhZW5kZXJ0OiAgICAg
ICAgICdSb2xsZSBnZcOkbmRlcnQnLAogICAgYmFja3VwX3dpZWRlcmhlcmdlc3RlbGx0OidCYWNr
dXAgd2llZGVyaGVyZ2VzdGVsbHQnLAogICAgcGxhbnVuZ19yZXNldDogICAgICAgICAgICdQbGFu
dW5nIHp1csO8Y2tnZXNldHp0JywKICAgIGtyYW5rbWVsZHVuZzogICAgICAgICAgICAnS3Jhbmtt
ZWxkdW5nJywKICAgIHBlcnNvbl9uZXU6ICAgICAgICAgICAgICAnUGVyc29uIG5ldSBhbmdlbGVn
dCcsCiAgICBwZXJzb25faW5ha3RpdjogICAgICAgICAgJ1BlcnNvbiBpbmFrdGl2IGdlc2V0enQn
LAogICAgZ2VidXJ0c3RhZzogICAgICAgICAgICAgICdHZWJ1cnRzdGFnJywKICAgIHNjaGljaHRf
ZWRpdF9uYWhlOiAgICAgICAnU2NoaWNodC3DhG5kZXJ1bmcgbmFoZSBhbSBEYXR1bScKfTsKCi8v
IExvZXN0IGVpbmUgQXVzbG9lc2VyLUtlbm51bmcgKHouQi4gIlBPTElaRUlcTlcwNTU4MDEiIG9k
ZXIgIlBPTElaRUkvTlcwNTU4MDEiKQovLyBhdWYgZWluZW4gbGVzYmFyZW4gUGVyc29uZW5uYW1l
biBhdWYuIFN1Y2h0IHVlYmVyIHAubndLZW5udW5nIGluIGRlciB2b2xsZW4KLy8gUGVyc29uZW5s
aXN0ZSAoaW5rbC4gaW5ha3RpdmVyKS4gRmFlbGx0IGF1ZiBkaWUgcmVpbmUgS2VubnVuZyAob2hu
ZSBEb21hZW5lKQovLyB6dXJ1ZWNrLCB3ZW5uIGtlaW5lIFBlcnNvbiBwYXNzdCDigJQgc28gc3Rl
aHQgZGEgbmllIG1laHIgbnVyIFxEb21hZW5lXEtlbm51bmcuCmZ1bmN0aW9uIGF1c2xvZXNlckFu
emVpZ2UoYXVzbG9lc2VyKSB7CiAgICBpZiAoIWF1c2xvZXNlcikgcmV0dXJuICcnOwogICAgdmFy
IHJvaCA9IFN0cmluZyhhdXNsb2VzZXIpLnRyaW0oKTsKICAgIHZhciBrZW5udW5nID0gcm9oLnJl
cGxhY2UoL14uKltcXC9dLywgJycpLnRyaW0oKTsgICAgICAvLyBEb21hZW5lbi1QcmFlZml4IHdl
ZwogICAgdmFyIHppZWwgPSAoa2VubnVuZyB8fCByb2gpLnRvVXBwZXJDYXNlKCk7CiAgICB2YXIg
cGVyc29uZW4gPSAoWi5wbGFudW5nICYmIFoucGxhbnVuZy5wZXJzb25lbikgfHwgW107CiAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHBlcnNvbmVuLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIHAg
PSBwZXJzb25lbltpXTsKICAgICAgICB2YXIgbmsgPSBTdHJpbmcocC5ud0tlbm51bmcgfHwgJycp
LnJlcGxhY2UoL14uKltcXC9dLywgJycpLnRyaW0oKS50b1VwcGVyQ2FzZSgpOwogICAgICAgIGlm
IChuayAmJiBuayA9PT0gemllbCkgewogICAgICAgICAgICB2YXIgbmFtZSA9IChwLm5hbWUgfHwg
JycpICsgKHAudm9ybmFtZSA/ICgnLCAnICsgcC52b3JuYW1lKSA6ICcnKTsKICAgICAgICAgICAg
dmFyIGRnID0gcC5kaWVuc3RncmFkID8gKHAuZGllbnN0Z3JhZCArICcgJykgOiAnJzsKICAgICAg
ICAgICAgcmV0dXJuIChkZyArIG5hbWUpLnRyaW0oKSB8fCAoa2VubnVuZyB8fCByb2gpOwogICAg
ICAgIH0KICAgIH0KICAgIHJldHVybiBrZW5udW5nIHx8IHJvaDsKfQoKLy8gQWt0dWVsbGVyIFVz
ZXIgaXN0IFNVIG9kZXIgR2VzYW10dmVyYW50d29ydGxpY2g/IEhpbndlaXNlIHNpbmQgbnVyCi8v
IGZ1ZXIgZGllc2VuIEVtcGZhZW5nZXJrcmVpcyBzaWNodGJhci4KZXhwb3J0IGZ1bmN0aW9uIGhp
bndlaXNlU2ljaHRiYXIoKSB7CiAgICB2YXIgciA9IFoucmVjaHRlIHx8IHt9OwogICAgcmV0dXJu
ICEhKHIuaXN0U3VwZXJVc2VyIHx8IHIuaXN0R2VzYW10dmVyYW50d29ydGxpY2gpOwp9CgovLyBF
aW5lIE1pbmktTG9naWsgZnVlciBkZW4gQmFubmVyLURpc21pc3M6IFVzZXIga2xpY2t0IGRhcyBC
YW5uZXIgd2VnLAovLyBtZXJrZW4gd2lyIHVucyBkaWUgYWt0dWVsbCBhbmdlemVpZ3RlbiBJRHMg
aW4gc2Vzc2lvblN0b3JhZ2UuIEVyc3QKLy8gd2VubiBlaW4gTkVVRVIgSGlud2VpcyBkYXp1a29t
bXQsIHRhdWNodCBkYXMgQmFubmVyIHdpZWRlciBhdWYuCmZ1bmN0aW9uIGRpc21pc3NlZElkc0xl
c2VuKCkgewogICAgdHJ5IHsKICAgICAgICB2YXIgcmF3ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRl
bShCQU5ORVJfRElTTUlTU19LRVkpOwogICAgICAgIGlmICghcmF3KSByZXR1cm4gW107CiAgICAg
ICAgdmFyIGFyciA9IEpTT04ucGFyc2UocmF3KTsKICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJh
eShhcnIpID8gYXJyIDogW107CiAgICB9IGNhdGNoIChlKSB7IHJldHVybiBbXTsgfQp9CmZ1bmN0
aW9uIGRpc21pc3NlZElkc1NjaHJlaWJlbihpZHMpIHsKICAgIHRyeSB7IHNlc3Npb25TdG9yYWdl
LnNldEl0ZW0oQkFOTkVSX0RJU01JU1NfS0VZLCBKU09OLnN0cmluZ2lmeShpZHMpKTsgfSBjYXRj
aCAoZSkge30KfQpmdW5jdGlvbiBhbGxlQWt0dWVsbGVuSWRzR2VzZWhlbigpIHsKICAgIHZhciBo
aW4gPSBaLmhpbndlaXNlIHx8IFtdOwogICAgaWYgKGhpbi5sZW5ndGggPT09IDApIHJldHVybiB0
cnVlOwogICAgdmFyIGdlcyA9IGRpc21pc3NlZElkc0xlc2VuKCk7CiAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGhpbi5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChnZXMuaW5kZXhPZihoaW5baV0u
aWQpIDwgMCkgcmV0dXJuIGZhbHNlOwogICAgfQogICAgcmV0dXJuIHRydWU7Cn0KCi8vIEhvbHQg
ZGllIG9mZmVuZW4gSGlud2Vpc2Ugdm9tIFNlcnZlci4gTGllZmVydCBpbW1lciBlaW4gUHJvbWlz
ZSwKLy8gZGFtaXQgZGVyIEF1ZnJ1ZmVyIC50aGVuIGFuaGFlbmdlbiBrYW5uLgpleHBvcnQgZnVu
Y3Rpb24gaGlud2Vpc2VMYWRlbigpIHsKICAgIGlmICghaGlud2Vpc2VTaWNodGJhcigpKSB7CiAg
ICAgICAgWi5oaW53ZWlzZSA9IFtdOwogICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10p
OwogICAgfQogICAgcmV0dXJuIGFwaSgnL2FwaS9oaW53ZWlzZScpLnRoZW4oZnVuY3Rpb24ocikg
ewogICAgICAgIFouaGlud2Vpc2UgPSAociAmJiByLmhpbndlaXNlKSA/IHIuaGlud2Vpc2UgOiBb
XTsKICAgICAgICByZXR1cm4gWi5oaW53ZWlzZTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsK
ICAgICAgICAvLyBCZWkgTmV0endlcmtmZWhsZXIgc3RpbGxzY2h3ZWlnZW5kIGxlZXIgbGFzc2Vu
IOKAlCBCYW5uZXIgZGFyZgogICAgICAgIC8vIG5pY2h0IGF1cyBWZXJzZWhlbiAiYWxsZXMgb2th
eSIgc3VnZ2VyaWVyZW4sIGRlc2hhbGIgYmVoYWx0ZW4KICAgICAgICAvLyB3aXIgZGVuIHZvcmhl
cmlnZW4gU3RhbmQuIENvbnNvbGUuZXJyb3IgZnVlciBEZWJ1Z2dpbmcuCiAgICAgICAgaWYgKHdp
bmRvdy5jb25zb2xlKSBjb25zb2xlLmVycm9yKCdoaW53ZWlzZUxhZGVuOicsIGUpOwogICAgICAg
IHJldHVybiBaLmhpbndlaXNlIHx8IFtdOwogICAgfSk7Cn0KCi8vIFJlbmRlcnQgQmFubmVyICsg
QmFkZ2UuIElkZW1wb3RlbnQ7IGJlaSBqZWRlbSBIaW53ZWlzZS1VcGRhdGUgYXVmcnVmZW4uCmV4
cG9ydCBmdW5jdGlvbiBoaW53ZWlzZUFuemVpZ2VBa3R1YWxpc2llcmVuKCkgewogICAgaGlud2Vp
c2VCYWRnZVJlbmRlcm4oKTsKICAgIGhpbndlaXNlQmFubmVyUmVuZGVybigpOwp9CgpleHBvcnQg
ZnVuY3Rpb24gaGlud2Vpc2VCYWRnZVJlbmRlcm4oKSB7CiAgICB2YXIgZWwgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaGlud2Vpcy1iYWRnZScpOwogICAgaWYgKCFlbCkgcmV0dXJuOwogICAg
dmFyIGhpbiA9IFouaGlud2Vpc2UgfHwgW107CiAgICBpZiAoIWhpbndlaXNlU2ljaHRiYXIoKSB8
fCBoaW4ubGVuZ3RoID09PSAwKSB7CiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0
Jyk7CiAgICAgICAgZWwudGV4dENvbnRlbnQgPSAnJzsKICAgICAgICByZXR1cm47CiAgICB9CiAg
ICBlbC5jbGFzc0xpc3QucmVtb3ZlKCd2ZXJzdGVja3QnKTsKICAgIGVsLnRleHRDb250ZW50ID0g
U3RyaW5nKGhpbi5sZW5ndGgpOwogICAgZWwudGl0bGUgPSBoaW4ubGVuZ3RoICsgJyBvZmZlbmUg
SGlud2VpcycgKyAoaGluLmxlbmd0aCA9PT0gMSA/ICcnIDogJ2UnKSArICcg4oCUIEtsaWNrIHp1
bSBBbnplaWdlbic7Cn0KCmV4cG9ydCBmdW5jdGlvbiBoaW53ZWlzZUJhbm5lclJlbmRlcm4oKSB7
CiAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGlud2Vpcy1iYW5uZXInKTsK
ICAgIGlmICghZWwpIHJldHVybjsKICAgIHZhciBoaW4gPSBaLmhpbndlaXNlIHx8IFtdOwogICAg
aWYgKCFoaW53ZWlzZVNpY2h0YmFyKCkgfHwgaGluLmxlbmd0aCA9PT0gMCB8fCBhbGxlQWt0dWVs
bGVuSWRzR2VzZWhlbigpKSB7CiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7
CiAgICAgICAgZWwuaW5uZXJIVE1MID0gJyc7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgZWwu
Y2xhc3NMaXN0LnJlbW92ZSgndmVyc3RlY2t0Jyk7CiAgICB2YXIgdHh0ID0gJ0R1IGhhc3QgJyAr
IGhpbi5sZW5ndGggKyAnIG5ldWUgSGlud2VpcycgKyAoaGluLmxlbmd0aCA9PT0gMSA/ICcnIDog
J2UnKSArICcuJzsKICAgIGVsLmlubmVySFRNTCA9CiAgICAgICAgJzxzcGFuIGNsYXNzPSJoaW53
ZWlzLWJhbm5lci10ZXh0Ij4nICsgZXNjYXBlSFRNTCh0eHQpICsgJzwvc3Bhbj4nICsKICAgICAg
ICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hZXIgYnRuLWtsZWlu
IiBpZD0iaGlud2Vpcy1iYW5uZXItYW56ZWlnZW4iPkFuemVpZ2VuPC9idXR0b24+JyArCiAgICAg
ICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iaGlud2Vpcy1iYW5uZXItc2NobGllc3Nl
biIgaWQ9ImhpbndlaXMtYmFubmVyLWRpc21pc3MiIGFyaWEtbGFiZWw9IkJhbm5lciBhdXNibGVu
ZGVuIiB0aXRsZT0iQmFubmVyIGJpcyB6dW0gbsOkY2hzdGVuIG5ldWVuIEhpbndlaXMgYXVzYmxl
bmRlbiI+w5c8L2J1dHRvbj4nOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hpbndlaXMt
YmFubmVyLWFuemVpZ2VuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsK
ICAgICAgICBoaW53ZWlzZU1vZGFsT2VmZm5lbigpOwogICAgfSk7CiAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaGlud2Vpcy1iYW5uZXItZGlzbWlzcycpLmFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGlkcyA9IGhpbi5tYXAoZnVuY3Rpb24oaCkg
eyByZXR1cm4gaC5pZDsgfSk7CiAgICAgICAgZGlzbWlzc2VkSWRzU2NocmVpYmVuKGlkcyk7CiAg
ICAgICAgaGlud2Vpc2VCYW5uZXJSZW5kZXJuKCk7CiAgICB9KTsKfQoKLy8gRm9ybWF0aWVydCBk
ZW4gS29udGV4dCBlaW5lcyBIaW53ZWlzZXMgbGVzYmFyIChlaW5lIGt1cnplIGRldXRzY2hlCi8v
IEJlc2NocmVpYnVuZykuIFBybyBUeXAgYW5nZXBhc3N0LCBnZW5lcmlzY2hlciBGYWxsYmFjayB6
ZWlndCBrZXk9dmFsdWUuCmZ1bmN0aW9uIGtvbnRleHRGb3JtYXQoZWludHJhZykgewogICAgdmFy
IGsgPSBlaW50cmFnLmtvbnRleHQgfHwge307CiAgICB2YXIgdCA9IGVpbnRyYWcudHlwOwogICAg
dmFyIHA7CiAgICBpZiAodCA9PT0gJ2lkZW50aXRhZXRfZ2VhZW5kZXJ0JykgewogICAgICAgIHJl
dHVybiAnUGVyc29uIDxzdHJvbmc+JyArIGVzY2FwZUhUTUwoay5wZXJzb25fbmFtZSB8fCAoJyMn
ICsgay5wZXJzb25faWQpKSArICc8L3N0cm9uZz46IEZlbGQgPGVtPicgKwogICAgICAgICAgICBl
c2NhcGVIVE1MKGsuZmVsZCB8fCAnPycpICsgJzwvZW0+ICZuYnNwOzxzcGFuIHN0eWxlPSJjb2xv
cjp2YXIoLS10ZXh0LW11dGVkKSI+JyArCiAgICAgICAgICAgIGVzY2FwZUhUTUwoay5hbHRlcl93
ZXJ0IHx8ICcobGVlciknKSArICcgJnJhcnI7ICcgKyBlc2NhcGVIVE1MKGsubmV1ZXJfd2VydCB8
fCAnKGxlZXIpJykgKyAnPC9zcGFuPic7CiAgICB9CiAgICBpZiAodCA9PT0gJ3JvbGxlX2dlYWVu
ZGVydCcpIHsKICAgICAgICByZXR1cm4gJ1JvbGxlIDxzdHJvbmc+JyArIGVzY2FwZUhUTUwoay5y
b2xsZSB8fCAnPycpICsgJzwvc3Ryb25nPiBiZWkgPHN0cm9uZz4nICsKICAgICAgICAgICAgZXNj
YXBlSFRNTChrLnBlcnNvbl9uYW1lIHx8IGsubndLZW5udW5nIHx8ICc/JykgKyAnPC9zdHJvbmc+
OiAnICsKICAgICAgICAgICAgZXNjYXBlSFRNTChrLnJpY2h0dW5nIHx8IChrLmFsdCArICcgJnJh
cnI7ICcgKyBrLm5ldSkgfHwgJycpOwogICAgfQogICAgaWYgKHQgPT09ICdiYWNrdXBfd2llZGVy
aGVyZ2VzdGVsbHQnKSB7CiAgICAgICAgcmV0dXJuICdCYWNrdXAgPHN0cm9uZz4nICsgZXNjYXBl
SFRNTChrLmJhY2t1cCB8fCAnPycpICsgJzwvc3Ryb25nPiB3aWVkZXJoZXJnZXN0ZWxsdC4nOwog
ICAgfQogICAgaWYgKHQgPT09ICdwbGFudW5nX3Jlc2V0JykgewogICAgICAgIHJldHVybiAnUGxh
bnVuZyB3dXJkZSB6dXLDvGNrZ2VzZXR6dCcgKyAoay5hbnphaGwgPyAnICgnICsgay5hbnphaGwg
KyAnIEVpbnRyw6RnZSkuJyA6ICcuJyk7CiAgICB9CiAgICBpZiAodCA9PT0gJ2tyYW5rbWVsZHVu
ZycpIHsKICAgICAgICBwID0gZXNjYXBlSFRNTChrLnBlcnNvbl9uYW1lIHx8ICgnIycgKyBrLnBl
cnNvbl9pZCkpOwogICAgICAgIHZhciBkID0gay5kYXR1bSA/IGRhdHVtRm9ybWF0REUoay5kYXR1
bSkgOiAnPyc7CiAgICAgICAgdmFyIHNjID0gay5zY2hpY2h0Q29kZSA/ICcgKCcgKyBlc2NhcGVI
VE1MKGsuc2NoaWNodENvZGUpICsgJyknIDogJyc7CiAgICAgICAgcmV0dXJuICc8c3Ryb25nPicg
KyBwICsgJzwvc3Ryb25nPiBrcmFuayBhbSA8c3Ryb25nPicgKyBlc2NhcGVIVE1MKGQpICsgJzwv
c3Ryb25nPicgKyBzYzsKICAgIH0KICAgIGlmICh0ID09PSAncGVyc29uX25ldScpIHsKICAgICAg
ICByZXR1cm4gJ05ldWUgUGVyc29uOiA8c3Ryb25nPicgKyBlc2NhcGVIVE1MKGsucGVyc29uX25h
bWUgfHwgJz8nKSArICc8L3N0cm9uZz4nOwogICAgfQogICAgaWYgKHQgPT09ICdwZXJzb25faW5h
a3RpdicpIHsKICAgICAgICByZXR1cm4gJ1BlcnNvbiA8c3Ryb25nPicgKyBlc2NhcGVIVE1MKGsu
cGVyc29uX25hbWUgfHwgJz8nKSArICc8L3N0cm9uZz4gaXN0IG5pY2h0IG1laHIgYWt0aXYuJzsK
ICAgIH0KICAgIGlmICh0ID09PSAnZ2VidXJ0c3RhZycpIHsKICAgICAgICByZXR1cm4gJ0dlYnVy
dHN0YWc6IDxzdHJvbmc+JyArIGVzY2FwZUhUTUwoay5wZXJzb25fbmFtZSB8fCAnPycpICsgJzwv
c3Ryb25nPiBhbSAnICsgZXNjYXBlSFRNTChrLmRhdHVtIHx8ICc/Jyk7CiAgICB9CiAgICBpZiAo
dCA9PT0gJ3NjaGljaHRfZWRpdF9uYWhlJykgewogICAgICAgIHJldHVybiAnU2NoaWNodC3DhG5k
ZXJ1bmcgYW0gPHN0cm9uZz4nICsgZXNjYXBlSFRNTChrLmRhdHVtIHx8ICc/JykgKyAnPC9zdHJv
bmc+IGbDvHIgPHN0cm9uZz4nICsKICAgICAgICAgICAgZXNjYXBlSFRNTChrLnBlcnNvbl9uYW1l
IHx8ICgnIycgKyBrLnBlcnNvbl9pZCkpICsgJzwvc3Ryb25nPic7CiAgICB9CiAgICAvLyBHZW5l
cmlzY2hlciBGYWxsYmFjawogICAgdmFyIHBhaXJzID0gW107CiAgICBPYmplY3Qua2V5cyhrKS5m
b3JFYWNoKGZ1bmN0aW9uKGtleSkgewogICAgICAgIHBhaXJzLnB1c2goZXNjYXBlSFRNTChrZXkp
ICsgJz0nICsgZXNjYXBlSFRNTChTdHJpbmcoa1trZXldKSkpOwogICAgfSk7CiAgICByZXR1cm4g
cGFpcnMuam9pbignLCAnKSB8fCAnPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQp
Ij4oa2VpbiBLb250ZXh0KTwvc3Bhbj4nOwp9CgpmdW5jdGlvbiB6ZWl0Rm9ybWF0KGlzbykgewog
ICAgaWYgKCFpc28pIHJldHVybiAnJzsKICAgIHRyeSB7CiAgICAgICAgdmFyIGQgPSBuZXcgRGF0
ZShpc28pOwogICAgICAgIHZhciBkZCA9IFN0cmluZyhkLmdldERhdGUoKSkucGFkU3RhcnQoMiwg
JzAnKTsKICAgICAgICB2YXIgbW0gPSBTdHJpbmcoZC5nZXRNb250aCgpICsgMSkucGFkU3RhcnQo
MiwgJzAnKTsKICAgICAgICB2YXIgaGggPSBTdHJpbmcoZC5nZXRIb3VycygpKS5wYWRTdGFydCgy
LCAnMCcpOwogICAgICAgIHZhciBtaSA9IFN0cmluZyhkLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQo
MiwgJzAnKTsKICAgICAgICByZXR1cm4gZGQgKyAnLicgKyBtbSArICcuICcgKyBoaCArICc6JyAr
IG1pOwogICAgfSBjYXRjaCAoZSkgeyByZXR1cm4gaXNvOyB9Cn0KCi8vIE9lZmZuZXQgZWluIE1v
ZGFsIG1pdCBkZXIgSGlud2Vpcy1MaXN0ZS4gUHJvIEVpbnRyYWc6IFR5cCwgWmVpdCwKLy8gQXVz
bG9lc2VyLCBLb250ZXh0LCAiVmVyc3RhbmRlbiItQnV0dG9uLiBLcmFua21lbGR1bmdlbiBiZWtv
bW1lbgovLyB6dXNhZXR6bGljaCBlaW5lbiBCdXR0b24gIkthbmRpZGF0ZW4gYW5zY2hyZWliZW4i
IChQaGFzZSA2IHdpcmVkKS4KZXhwb3J0IGZ1bmN0aW9uIGhpbndlaXNlTW9kYWxPZWZmbmVuKCkg
ewogICAgaWYgKCFoaW53ZWlzZVNpY2h0YmFyKCkpIHJldHVybjsKICAgIHZhciBoaW4gPSBaLmhp
bndlaXNlIHx8IFtdOwogICAgaWYgKGhpbi5sZW5ndGggPT09IDApIHsKICAgICAgICB0b2FzdCgn
S2VpbmUgb2ZmZW5lbiBIaW53ZWlzZS4nLCAnaW5mbycpOwogICAgICAgIHJldHVybjsKICAgIH0K
ICAgIHZhciByb3dzID0gaGluLm1hcChmdW5jdGlvbihoKSB7CiAgICAgICAgdmFyIHR5cExhYmVs
ID0gVFlQX0xBQkVMW2gudHlwXSB8fCBoLnR5cDsKICAgICAgICB2YXIgY3R4ID0ga29udGV4dEZv
cm1hdChoKTsKICAgICAgICB2YXIga3JCdG4gPSAnJzsKICAgICAgICBpZiAoaC50eXAgPT09ICdr
cmFua21lbGR1bmcnKSB7CiAgICAgICAgICAgIC8vIFBoYXNlIDYgd2lyaW5nOiBkZXJ6ZWl0IG51
ciBlaW4gU3R1Yiwgc2NocmVpYnQgaW4gdG9hc3QuCiAgICAgICAgICAgIGtyQnRuID0gJzxidXR0
b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIiBkYXRhLWFrdGlv
bj0ia2FuZGlkYXRlbiIgZGF0YS1pZD0iJyArIGguaWQgKwogICAgICAgICAgICAgICAgJyIgdGl0
bGU9IkthbmRpZGF0ZW4gZsO8ciBkaWUgYXVzZ2VmYWxsZW5lIFNjaGljaHQgYW5zY2hyZWliZW4i
PkthbmRpZGF0ZW4gYW5zY2hyZWliZW48L2J1dHRvbj4nOwogICAgICAgIH0KICAgICAgICByZXR1
cm4gJzx0ciBkYXRhLWhpbndlaXMtaWQ9IicgKyBoLmlkICsgJyI+JyArCiAgICAgICAgICAgICc8
dGQgc3R5bGU9ImZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3doaXRlLXNw
YWNlOm5vd3JhcCI+JyArIGVzY2FwZUhUTUwoemVpdEZvcm1hdChoLmVyc3RlbGx0QW0pKSArICc8
L3RkPicgKwogICAgICAgICAgICAnPHRkPjxzdHJvbmc+JyArIGVzY2FwZUhUTUwodHlwTGFiZWwp
ICsgJzwvc3Ryb25nPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9ImZvbnQtc2l6ZTox
MXB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpIiB0aXRsZT0iJyArIGVzY2FwZUF0dHIoaC5hdXNs
b2VzZXIgfHwgJycpICsgJyI+JyArIGVzY2FwZUhUTUwoYXVzbG9lc2VyQW56ZWlnZShoLmF1c2xv
ZXNlcikpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+JyArIGN0eCArICc8L3RkPicgKwog
ICAgICAgICAgICAnPHRkIHN0eWxlPSJ3aGl0ZS1zcGFjZTpub3dyYXAiPjxkaXYgc3R5bGU9ImRp
c3BsYXk6ZmxleDtnYXA6NnB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZCI+JyArCiAgICAgICAg
ICAgICAgICBrckJ0biArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNs
YXNzPSJidG4gYnRuLWVyZm9sZyBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJrZW5udG5pcyIgZGF0
YS1pZD0iJyArIGguaWQgKyAnIj5WZXJzdGFuZGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICc8
L2Rpdj48L3RkPicgKwogICAgICAgICc8L3RyPic7CiAgICB9KS5qb2luKCcnKTsKICAgIHZhciBr
b2VycGVyID0KICAgICAgICAnPHAgc3R5bGU9Im1hcmdpbjowIDAgMTJweDtjb2xvcjp2YXIoLS10
ZXh0LW11dGVkKSI+T2ZmZW5lIEhpbndlaXNlIGbDvHIgU3VwZXJVc2VyIHVuZCBHZXNhbXR2ZXJh
bnR3b3J0bGljaGUuIE1pdCA8ZW0+VmVyc3RhbmRlbjwvZW0+IHZlcnNjaHdpbmRldCBlaW4gZWlu
emVsbmVyIEVpbnRyYWcgYXVzIGRlaW5lciBMaXN0ZTsgaW0gTG9nYnVjaCBibGVpYnQgZXIgZXJo
YWx0ZW4uPC9wPicgKwogICAgICAgICc8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUgaGlud2Vp
cy1tb2RhbC10YWJlbGxlIj4nICsKICAgICAgICAgICAgJzx0aGVhZD48dHI+JyArCiAgICAgICAg
ICAgICAgICAnPHRoIHN0eWxlPSJ3aWR0aDo5MHB4Ij5XYW5uPC90aD4nICsKICAgICAgICAgICAg
ICAgICc8dGggc3R5bGU9IndpZHRoOjE2MHB4Ij5UeXA8L3RoPicgKwogICAgICAgICAgICAgICAg
Jzx0aCBzdHlsZT0id2lkdGg6MTUwcHgiPkF1c2dlbMO2c3Qgdm9uPC90aD4nICsKICAgICAgICAg
ICAgICAgICc8dGg+RGV0YWlsczwvdGg+JyArCiAgICAgICAgICAgICAgICAnPHRoIHN0eWxlPSJ3
aWR0aDoyNDBweDt0ZXh0LWFsaWduOnJpZ2h0Ij5Ba3Rpb248L3RoPicgKwogICAgICAgICAgICAn
PC90cj48L3RoZWFkPicgKwogICAgICAgICAgICAnPHRib2R5PicgKyByb3dzICsgJzwvdGJvZHk+
JyArCiAgICAgICAgJzwvdGFibGU+JzsKICAgIC8vIEJlaSBtZWhyZXJlbiBIaW53ZWlzZW4genVz
YWV0emxpY2ggZWluIFNhbW1lbC1BYm5pY2tlbiBhbmJpZXRlbiDigJQgZGllCiAgICAvLyBlaW56
ZWxuZSBLZW5udG5pc25haG1lIHBybyBaZWlsZSBibGVpYnQgdW52ZXJhZW5kZXJ0IGVyaGFsdGVu
LgogICAgdmFyIGZ1c3MgPQogICAgICAgIChoaW4ubGVuZ3RoID4gMSA/ICc8YnV0dG9uIHR5cGU9
ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIiBpZD0iaGlud2Vpcy1hbGxlLWtlbm50bmlz
Ij5BbGxlIHp1ciBLZW5udG5pcyBuZWhtZW48L2J1dHRvbj4nIDogJycpICsKICAgICAgICAnPGJ1
dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNlayIgaWQ9ImhpbndlaXMtbW9kYWwt
c2NobGllc3NlbiI+U2NobGllw59lbjwvYnV0dG9uPic7CiAgICBtb2RhbFplaWdlbignSGlud2Vp
c2UgKCcgKyBoaW4ubGVuZ3RoICsgJyknLCBrb2VycGVyLCBmdXNzLCBudWxsLCBudWxsLCB7IHJl
aW5lckRpYWxvZzogdHJ1ZSB9KTsKICAgIC8vIFN0YW5kYXJkYnJlaXRlICg2MjAgcHgpIGlzdCBo
aWVyIHp1IGVuZyDigJQgVGFiZWxsZSBicmF1Y2h0IGRpZSBncm9zc2UKICAgIC8vIFZhcmlhbnRl
IChhbmFsb2cgRS1NYWlsLVZvcmxhZ2VuLU1vZGFsKS4KICAgIHZhciBtaSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJyNtb2RhbC1vdmVybGF5IC5tb2RhbC1pbmhhbHQnKTsKICAgIGlmIChtaSkg
bWkuY2xhc3NMaXN0LmFkZCgnbW9kYWwtaW5oYWx0LWdyb3NzJyk7CiAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaGlud2Vpcy1tb2RhbC1zY2hsaWVzc2VuJykuYWRkRXZlbnRMaXN0ZW5lcign
Y2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICB9
KTsKICAgIHZhciBhbGxlQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hpbndlaXMtYWxs
ZS1rZW5udG5pcycpOwogICAgaWYgKGFsbGVCdG4pIGFsbGVCdG4uYWRkRXZlbnRMaXN0ZW5lcign
Y2xpY2snLCBoaW53ZWlzZUFsbGVLZW5udG5pc25laG1lbik7CiAgICAvLyBBY3Rpb24tQnV0dG9u
cyBpbiBkZXIgVGFiZWxsZSBkZWxlZ2llcmVuCiAgICB2YXIgdGJvZHkgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcuaGlud2Vpcy1tb2RhbC10YWJlbGxlIHRib2R5Jyk7CiAgICBpZiAodGJvZHkp
IHRib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgIHZh
ciBidG4gPSBlLnRhcmdldC5jbG9zZXN0KCdidXR0b25bZGF0YS1ha3Rpb25dJyk7CiAgICAgICAg
aWYgKCFidG4pIHJldHVybjsKICAgICAgICB2YXIgaWQgPSBwYXJzZUludChidG4uZ2V0QXR0cmli
dXRlKCdkYXRhLWlkJyksIDEwKTsKICAgICAgICB2YXIgYWt0aW9uID0gYnRuLmdldEF0dHJpYnV0
ZSgnZGF0YS1ha3Rpb24nKTsKICAgICAgICBpZiAoYWt0aW9uID09PSAna2VubnRuaXMnKSB7CiAg
ICAgICAgICAgIGhpbndlaXNLZW5udG5pc25laG1lbihpZCk7CiAgICAgICAgfSBlbHNlIGlmIChh
a3Rpb24gPT09ICdrYW5kaWRhdGVuJykgewogICAgICAgICAgICAvLyBQaGFzZSA2ICgyMDI2LTA1
LTIxKTogYXVzIGRlbSBLcmFua21lbGR1bmdzLUhpbndlaXMgZGlyZWt0IGlucwogICAgICAgICAg
ICAvLyBUYWctRGV0YWlsLU1vZGFsIHNwcmluZ2VuLiBEZXIgZG9ydCB2b3JoYW5kZW5lIFNjaGlj
aHQtQmxvY2sKICAgICAgICAgICAgLy8gKEZydWVoL1NwYWV0L05hY2h0KSB6ZWlndCBhdXRvbWF0
aXNjaCBkZW4gIkthbmRpZGF0ZW4gYW5zY2hyZWliZW4iLQogICAgICAgICAgICAvLyBCdXR0b24g
YmVpIDwyIFBlcnNvbmVuLgogICAgICAgICAgICB2YXIgaCA9IChaLmhpbndlaXNlIHx8IFtdKS5m
aW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguaWQgPT09IGlkOyB9KTsKICAgICAgICAgICAgaWYg
KCFoIHx8ICFoLmtvbnRleHQgfHwgIWgua29udGV4dC5kYXR1bSkgewogICAgICAgICAgICAgICAg
dG9hc3QoJ0hpbndlaXMgaGF0IGtlaW4gRGF0dW0gaGludGVybGVndC4nLCAnd2FybnVuZycpOwog
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG1vZGFsU2No
bGllc3Nlbih0cnVlKTsKICAgICAgICAgICAgdGFnRGV0YWlsTW9kYWxaZWlnZW4oaC5rb250ZXh0
LmRhdHVtKTsKICAgICAgICB9CiAgICB9KTsKfQoKLy8gU1UtSGlud2Vpc2UtUHJvdG9rb2xsIChQ
aGFzZSA3LCAyMDI2LTA1LTIxKS4gVGFiZWxsZSBhbGxlciBha3RpdmVuCi8vIEhpbndlaXNlIG1p
dCBFbXBmYWVuZ2VyLUxlc2VzdGF0dXMuIE51ciBmdWVyIFN1cGVyVXNlciB6dWdhZW5nbGljaC4K
Ly8gRmlsdGVyIG5hY2ggVHlwIHVuZCBEYXR1bXMtUmFuZ2Ugd2VyZGVuIGNsaWVudC1zZWl0aWcg
YW5nZXdlbmRldC4KZXhwb3J0IGZ1bmN0aW9uIGhpbndlaXNlUHJvdG9rb2xsUmVuZGVybigpIHsK
ICAgIHZhciB0Ym9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoaW53ZWlzZS1wcm90b2tv
bGwtdGJvZHknKTsKICAgIGlmICghdGJvZHkpIHJldHVybjsKICAgIHZhciByZWNodGUgPSBaLnJl
Y2h0ZSB8fCB7fTsKICAgIGlmICghcmVjaHRlLmlzdFN1cGVyVXNlcikgewogICAgICAgIHRib2R5
LmlubmVySFRNTCA9ICc8dHI+PHRkIGNvbHNwYW49IjUiIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0
LW11dGVkKTt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjE2cHgiPk51ciBmw7xyIFN1cGVyVXNl
ciBzaWNodGJhci48L3RkPjwvdHI+JzsKICAgICAgICByZXR1cm47CiAgICB9CiAgICB0Ym9keS5p
bm5lckhUTUwgPSAnPHRyPjx0ZCBjb2xzcGFuPSI1IiBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1t
dXRlZCk7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoxNnB4Ij5MYWRlIOKApjwvdGQ+PC90cj4n
OwogICAgYXBpKCcvYXBpL2hpbndlaXNlL3VlYmVyc2ljaHQnKS50aGVuKGZ1bmN0aW9uKHIpIHsK
ICAgICAgICB2YXIgYWxsZSA9IChyICYmIHIuaGlud2Vpc2UpID8gci5oaW53ZWlzZSA6IFtdOwog
ICAgICAgIHZhciBmaWx0ZXJUeXAgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hwLWZpbHRl
ci10eXAnKSB8fCB7fSkudmFsdWUgfHwgJyc7CiAgICAgICAgdmFyIGZpbHRlclZvbiA9IChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaHAtZmlsdGVyLXZvbicpIHx8IHt9KS52YWx1ZSB8fCAnJzsK
ICAgICAgICB2YXIgZmlsdGVyQmlzID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdocC1maWx0
ZXItYmlzJykgfHwge30pLnZhbHVlIHx8ICcnOwogICAgICAgIHZhciBnZWZpbHRlcnQgPSBhbGxl
LmZpbHRlcihmdW5jdGlvbihoKSB7CiAgICAgICAgICAgIGlmIChmaWx0ZXJUeXAgJiYgaC50eXAg
IT09IGZpbHRlclR5cCkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB2YXIgZCA9IChoLmVyc3Rl
bGx0QW0gfHwgJycpLnNsaWNlKDAsIDEwKTsKICAgICAgICAgICAgaWYgKGZpbHRlclZvbiAmJiBk
IDwgZmlsdGVyVm9uKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIGlmIChmaWx0ZXJCaXMgJiYg
ZCA+IGZpbHRlckJpcykgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICB9KTsKICAgICAgICBpZiAoZ2VmaWx0ZXJ0Lmxlbmd0aCA9PT0gMCkgewogICAgICAgICAg
ICB0Ym9keS5pbm5lckhUTUwgPSAnPHRyPjx0ZCBjb2xzcGFuPSI1IiBzdHlsZT0iY29sb3I6dmFy
KC0tdGV4dC1tdXRlZCk7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoxNnB4Ij5LZWluZSBIaW53
ZWlzZSBpbSBha3R1ZWxsZW4gRmlsdGVyLjwvdGQ+PC90cj4nOwogICAgICAgICAgICByZXR1cm47
CiAgICAgICAgfQogICAgICAgIHRib2R5LmlubmVySFRNTCA9IGdlZmlsdGVydC5tYXAoZnVuY3Rp
b24oaCkgewogICAgICAgICAgICB2YXIgdHlwTGFiZWwgPSBUWVBfTEFCRUxbaC50eXBdIHx8IGgu
dHlwOwogICAgICAgICAgICB2YXIga24gPSBoLmtlbm50bmlzbmFobWVuIHx8IHt9OwogICAgICAg
ICAgICB2YXIgZW1wZkh0bWwgPSBPYmplY3Qua2V5cyhrbikubWFwKGZ1bmN0aW9uKGspIHsKICAg
ICAgICAgICAgICAgIHZhciB0cyA9IGtuW2tdOwogICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9
IHRzCiAgICAgICAgICAgICAgICAgICAgPyAnPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLWZhcmJl
LWVyZm9sZykiPicgKyBlc2NhcGVIVE1MKHplaXRGb3JtYXQodHMpKSArICc8L3NwYW4+JwogICAg
ICAgICAgICAgICAgICAgIDogJzxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS1mYXJiZS1mZWhsZXIp
O2ZvbnQtd2VpZ2h0OjYwMCI+b2ZmZW48L3NwYW4+JzsKICAgICAgICAgICAgICAgIHJldHVybiAn
PGRpdiBzdHlsZT0iZm9udC1zaXplOjExcHgiPjxzdHJvbmc+JyArIGVzY2FwZUhUTUwoaykgKyAn
PC9zdHJvbmc+OiAnICsgc3RhdHVzICsgJzwvZGl2Pic7CiAgICAgICAgICAgIH0pLmpvaW4oJycp
OwogICAgICAgICAgICByZXR1cm4gJzx0cj4nICsKICAgICAgICAgICAgICAgICc8dGQgc3R5bGU9
ImZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3doaXRlLXNwYWNlOm5vd3Jh
cCI+JyArIGVzY2FwZUhUTUwoemVpdEZvcm1hdChoLmVyc3RlbGx0QW0pKSArICc8L3RkPicgKwog
ICAgICAgICAgICAgICAgJzx0ZD48c3Ryb25nPicgKyBlc2NhcGVIVE1MKHR5cExhYmVsKSArICc8
L3N0cm9uZz48L3RkPicgKwogICAgICAgICAgICAgICAgJzx0ZCBzdHlsZT0iZm9udC1zaXplOjEx
cHgiIHRpdGxlPSInICsgZXNjYXBlQXR0cihoLmF1c2xvZXNlciB8fCAnJykgKyAnIj4nICsgZXNj
YXBlSFRNTChhdXNsb2VzZXJBbnplaWdlKGguYXVzbG9lc2VyKSkgKyAnPC90ZD4nICsKICAgICAg
ICAgICAgICAgICc8dGQgc3R5bGU9ImZvbnQtc2l6ZToxMXB4Ij4nICsga29udGV4dEZvcm1hdCho
KSArICc8L3RkPicgKwogICAgICAgICAgICAgICAgJzx0ZD4nICsgZW1wZkh0bWwgKyAnPC90ZD4n
ICsKICAgICAgICAgICAgJzwvdHI+JzsKICAgICAgICB9KS5qb2luKCcnKTsKICAgIH0pLmNhdGNo
KGZ1bmN0aW9uKGUpIHsKICAgICAgICB0Ym9keS5pbm5lckhUTUwgPSAnPHRyPjx0ZCBjb2xzcGFu
PSI1IiBzdHlsZT0iY29sb3I6dmFyKC0tZmFyYmUtZmVobGVyKTtwYWRkaW5nOjE2cHgiPkZlaGxl
ciBiZWltIExhZGVuOiAnICsgZXNjYXBlSFRNTChlLm1lc3NhZ2UpICsgJzwvdGQ+PC90cj4nOwog
ICAgfSk7Cn0KCi8vIE1hcmtpZXJ0IGVpbmVuIEhpbndlaXMgYWxzIGdlbGVzZW4gKHNlcnZlci1z
ZWl0aWcpIHVuZCBlbnRmZXJudCBpaG4KLy8gYXVzIGRlciBsb2thbGVuIExpc3RlLiBXZW5uIGRp
ZSBMaXN0ZSBkYWR1cmNoIGxlZXIgd2lyZCwgc2NobGllc3N0Ci8vIHNpY2ggZGFzIE1vZGFsIHZv
biBhbGxlaW5lLgpleHBvcnQgZnVuY3Rpb24gaGlud2Vpc0tlbm50bmlzbmVobWVuKGlkKSB7CiAg
ICBhcGlQb3N0KCcvYXBpL2hpbndlaXNlLycgKyBpZCArICcva2VubnRuaXMnLCB7fSkudGhlbihm
dW5jdGlvbigpIHsKICAgICAgICBaLmhpbndlaXNlID0gKFouaGlud2Vpc2UgfHwgW10pLmZpbHRl
cihmdW5jdGlvbihoKSB7IHJldHVybiBoLmlkICE9PSBpZDsgfSk7CiAgICAgICAgLy8gQXVzIGRl
bSBNb2RhbCBkaWUgWmVpbGUgZW50ZmVybmVuCiAgICAgICAgdmFyIHJvdyA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ3RyW2RhdGEtaGlud2Vpcy1pZD0iJyArIGlkICsgJyJdJyk7CiAgICAgICAg
aWYgKHJvdykgcm93LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocm93KTsKICAgICAgICBoaW53ZWlz
ZUFuemVpZ2VBa3R1YWxpc2llcmVuKCk7CiAgICAgICAgaWYgKFouaGlud2Vpc2UubGVuZ3RoID09
PSAwKSB7CiAgICAgICAgICAgIG1vZGFsU2NobGllc3Nlbih0cnVlKTsKICAgICAgICAgICAgdG9h
c3QoJ0FsbGUgSGlud2Vpc2UgYWJnZWFyYmVpdGV0LicsICdlcmZvbGcnKTsKICAgICAgICB9CiAg
ICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVz
c2FnZSwgJ2ZlaGxlcicpOwogICAgfSk7Cn0KCi8vIE5pbW10IEFMTEUgYWt0dWVsbCBvZmZlbmVu
IEhpbndlaXNlIGF1ZiBlaW5tYWwgenVyIEtlbm50bmlzIChTYW1tZWwtQWt0aW9uCi8vIGltIE1v
ZGFsLCBudXIgYmVpID4xIEhpbndlaXMgYW5nZWJvdGVuKS4gRGllIGVpbnplbG5lIEtlbm50bmlz
bmFobWUgcHJvCi8vIFplaWxlIGJsZWlidCBkYXZvbiB1bmJlcnVlaHJ0LiBFcyBnaWJ0IHNlcnZl
ci1zZWl0aWcga2VpbmVuIEJ1bGstRW5kcG9pbnQg4oCUCi8vIGRhaGVyIE4gcGFyYWxsZWxlIFBP
U1RzOyB0ZWlsLWZlaGxnZXNjaGxhZ2VuZSBFaW50cmFlZ2UgYmxlaWJlbiBpbiBkZXIgTGlzdGUu
CmV4cG9ydCBmdW5jdGlvbiBoaW53ZWlzZUFsbGVLZW5udG5pc25laG1lbigpIHsKICAgIHZhciBp
ZHMgPSAoWi5oaW53ZWlzZSB8fCBbXSkubWFwKGZ1bmN0aW9uKGgpIHsgcmV0dXJuIGguaWQ7IH0p
OwogICAgaWYgKCFpZHMubGVuZ3RoKSByZXR1cm47CiAgICBiZXN0YWV0aWdlbignQWxsZSAnICsg
aWRzLmxlbmd0aCArICcgSGlud2Vpc2UgenVyIEtlbm50bmlzIG5laG1lbj9cblxuU2llIHZlcnNj
aHdpbmRlbiBhdXMgZGVpbmVyIExpc3RlIOKAlCBpbSBMb2didWNoIGJsZWliZW4gc2llIGVyaGFs
dGVuLicsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBmZWhsZXIgPSBbXTsKICAgICAgICBQcm9t
aXNlLmFsbChpZHMubWFwKGZ1bmN0aW9uKGlkKSB7CiAgICAgICAgICAgIHJldHVybiBhcGlQb3N0
KCcvYXBpL2hpbndlaXNlLycgKyBpZCArICcva2VubnRuaXMnLCB7fSkudGhlbihmdW5jdGlvbigp
IHsKICAgICAgICAgICAgICAgIHZhciByb3cgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0cltk
YXRhLWhpbndlaXMtaWQ9IicgKyBpZCArICciXScpOwogICAgICAgICAgICAgICAgaWYgKHJvdyAm
JiByb3cucGFyZW50Tm9kZSkgcm93LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocm93KTsKICAgICAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7IGZlaGxlci5wdXNoKGlkKTsgfSk7CiAgICAgICAg
fSkpLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIFouaGlud2Vpc2UgPSAoWi5oaW53ZWlz
ZSB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uKGgpIHsgcmV0dXJuIGZlaGxlci5pbmRleE9mKGguaWQp
ID49IDA7IH0pOwogICAgICAgICAgICBoaW53ZWlzZUFuemVpZ2VBa3R1YWxpc2llcmVuKCk7CiAg
ICAgICAgICAgIGlmIChaLmhpbndlaXNlLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgICAg
bW9kYWxTY2hsaWVzc2VuKHRydWUpOwogICAgICAgICAgICAgICAgdG9hc3QoJ0FsbGUgSGlud2Vp
c2UgenVyIEtlbm50bmlzIGdlbm9tbWVuLicsICdlcmZvbGcnKTsKICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgIHRvYXN0KGZlaGxlci5sZW5ndGggKyAnIEhpbndlaXMoZSkga29u
bnRlbiBuaWNodCBnZXNwZWljaGVydCB3ZXJkZW4g4oCUIGJpdHRlIGVybmV1dCB2ZXJzdWNoZW4u
JywgJ3dhcm51bmcnKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSwgeyBqYVRleHQ6
ICdBbGxlIGFibmlja2VuJyB9KTsKfQo=