#!/bin/bash
MBS_ORIGIN=$(pwd)
MBS_DIR=
PATH=/bin:/usr/bin:/sbin:/usr/sbin
if [ ! $(whoami) = 'root' ]; then
	echo "You must be 'root' to run this command"
	exit 1
fi
cd "$(dirname "$0")"
MBS_DIR=$(pwd)
echo -e "Starting 'install_ac_x509_authority_1.5.0' installation at $(date '+%Y-%m-%d %T')"
n=0
declare -a UNDO
function log_undo {
	UNDO[n]="$@"
	((n++))
}
function rollback {
	echo 'Undoing installation.' >&2
	for x in "${UNDO[@]}"; do
		$x
	done
	echo 'Installation terminated.' >&2
	exit 1
}

if ! echo "IyEvYmluL2Jhc2gKTkFNRT0nQUMgWDUwOSBBdXRob3JpdHknClZFUj0xLjAuMApQQVRIPS9iaW46
L3Vzci9iaW46L3NiaW46L3Vzci9zYmluCkNPTkY9L2V0Yy9hY194NTA5X2F1dGhvcml0eQpEQVRB
PSQoY2F0ICRDT05GL2RhdGFwYXRoKQpUSElTPSQwCgpybSAtcmYgIiREQVRBIiAyPiYtCnJtIC1y
ZiAkQ09ORiAyPiYtCnJtIC1mIC91c3Ivc2Jpbi9hY194NTA5X2F1dGhvcml0eSAyPiYtCnJtIC1m
ICRUSElTIDI+Ji0KZWNobyAtZSAiVW5pbnN0YWxsYXRpb24gb2YgJE5BTUUgJFZFUiBjb21wbGV0
ZS4iCg==" | base64 -di - > "/sbin/uninstall_ac_x509_authority"; then
	rollback
fi
log_undo 'rm -f "/sbin/uninstall_ac_x509_authority"'
chown root:root "/sbin/uninstall_ac_x509_authority"
chmod 0500 "/sbin/uninstall_ac_x509_authority"
echo -e "Created file '/sbin/uninstall_ac_x509_authority'"
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin
if ! id apache 1>&2 2>&-; then
	groupadd -g 48 apache
	useradd -g 48 -MNu 48 apache
fi
if ! mkdir -p "/var/CA"; then
rollback
fi
log_undo 'rm -rf "/var/CA"'
chown root:apache "/var/CA"
chmod 6770 "/var/CA"
echo "Created directory '/var/CA'"
if ! mkdir -p "/etc/ac_x509_authority"; then
rollback
fi
log_undo 'rm -rf "/etc/ac_x509_authority"'
chown root:apache "/etc/ac_x509_authority"
chmod 0755 "/etc/ac_x509_authority"
echo "Created directory '/etc/ac_x509_authority'"
if ! echo "Iw0KIyBPcGVuU1NMIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlLg0KIyBUaGlzIGlzIG1vc3Rs
eSBiZWluZyB1c2VkIGZvciBnZW5lcmF0aW9uIG9mIGNlcnRpZmljYXRlIHJlcXVlc3RzLg0KIw0K
DQpIT01FICAgICAgICAgICAgICAgICAgICAgID0gLg0KUkFOREZJTEUgICAgICAgICAgICAgICAg
ICA9ICRFTlY6OkhPTUUvLnJuZA0KDQpbb3BlbnNzbF9pbml0XQ0Kb2lkX3NlY3Rpb24gICAgICAg
ICAgICAgICA9IG5ld19vaWRzDQphbGdfc2VjdGlvbiAgICAgICAgICAgICAgID0gYWxncw0KDQpb
IG5ld19vaWRzIF0NCg0KWyBhbGdzIF0NCmZpcHNfbW9kZSAgICAgICAgICAgICAgICAgPSBubw0K
DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIw0KWyBjYSBdDQpkZWZhdWx0X2NhCT0gQ0FfZGVmYXVsdAkJIyBUaGUgZGVm
YXVsdCBjYSBzZWN0aW9uDQoNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQpbIENBX2RlZmF1bHQgXQ0KZGlyICAgICAg
ICAgICAgICAgICAgICAgICA9IERDQURJUkQJCSMgV2hlcmUgZXZlcnl0aGluZyBpcyBrZXB0DQpj
ZXJ0cyAgICAgICAgICAgICAgICAgICAgID0gJGRpci9jZXJ0cwkJIyBXaGVyZSB0aGUgaXNzdWVk
IGNlcnRzIGFyZSBrZXB0DQpjcmxfZGlyICAgICAgICAgICAgICAgICAgID0gJGRpci9jcmwJCSMg
V2hlcmUgdGhlIGlzc3VlZCBjcmwgYXJlIGtlcHQNCmRhdGFiYXNlICAgICAgICAgICAgICAgICAg
PSAkZGlyL2luZGV4LnR4dAkjIGRhdGFiYXNlIGluZGV4IGZpbGUuDQpuZXdfY2VydHNfZGlyICAg
ICAgICAgICAgID0gJGRpci9yZXF1ZXN0cwkjIGRlZmF1bHQgcGxhY2UgZm9yIG5ldyBjZXJ0cy4N
CmNlcnRpZmljYXRlICAgICAgICAgICAgICAgPSAkZGlyL2NhLmNydAkgCSMgVGhlIENBIGNlcnRp
ZmljYXRlDQpzZXJpYWwgICAgICAgICAgICAgICAgICAgID0gJGRpci9jYS5zcmwJCSMgVGhlIGN1
cnJlbnQgc2VyaWFsIG51bWJlcg0KY3JsbnVtYmVyICAgICAgICAgICAgICAgICA9ICRkaXIvY3Js
LnNybAkJIyB0aGUgY3VycmVudCBjcmwgbnVtYmVyDQpjcmwgICAgICAgICAgICAgICAgICAgICAg
ID0gJGRpci9jcmwvY2EuY3JsCSMgVGhlIGN1cnJlbnQgQ1JMDQpwcml2YXRlX2tleSAgICAgICAg
ICAgICAgID0gJGRpci9jYS5rZXkJCSMgVGhlIHByaXZhdGUga2V5DQpSQU5ERklMRSAgICAgICAg
ICAgICAgICAgID0gJGRpci8ucmFuZAkJIyBwcml2YXRlIHJhbmRvbSBudW1iZXIgZmlsZQ0KeDUw
OV9leHRlbnNpb25zICAgICAgICAgICA9IHVzcl9jZXJ0CSMgVGhlIGV4dGVudGlvbnMgdG8gYWRk
IHRvIHRoZSBjZXJ0DQpuYW1lX29wdCAgICAgICAgICAgICAgICAgID0gY2FfZGVmYXVsdAkJIyBT
dWJqZWN0IE5hbWUgb3B0aW9ucw0KY2VydF9vcHQgICAgICAgICAgICAgICAgICA9IGNhX2RlZmF1
bHQJCSMgQ2VydGlmaWNhdGUgZmllbGQgb3B0aW9ucw0KZGVmYXVsdF9kYXlzICAgICAgICAgICAg
ICA9IEREQVlTRAkJIyBob3cgbG9uZyB0byBjZXJ0aWZ5IGZvcg0KZGVmYXVsdF9jcmxfZGF5cyAg
ICAgICAgICA9IERDUkxEQVlTCQkJIyBob3cgbG9uZyBiZWZvcmUgbmV4dCBDUkwNCmRlZmF1bHRf
bWQgICAgICAgICAgICAgICAgPSBzaGEyNTYJCSMgd2hpY2ggbWQgdG8gdXNlLg0KcHJlc2VydmUg
ICAgICAgICAgICAgICAgICA9IG5vCQkJIyBrZWVwIHBhc3NlZCBETiBvcmRlcmluZw0KcG9saWN5
ICAgICAgICAgICAgICAgICAgICA9IHBvbGljeV9tYXRjaA0KDQpbIHBvbGljeV9tYXRjaCBdDQpj
b3VudHJ5TmFtZSAgICAgICAgICAgICAgID0gRHJlc3RyaWN0X0NEDQpzdGF0ZU9yUHJvdmluY2VO
YW1lICAgICAgID0gRHJlc3RyaWN0X1NURA0Kb3JnYW5pemF0aW9uTmFtZSAgICAgICAgICA9IERy
ZXN0cmljdF9PRA0Kb3JnYW5pemF0aW9uYWxVbml0TmFtZSAgICA9IERyZXN0cmljdF9PVUQNCmxv
Y2FsaXR5TmFtZSAgICAgICAgICAgICAgPSBEcmVzdHJpY3RfTEQNCmNvbW1vbk5hbWUgICAgICAg
ICAgICAgICAgPSBzdXBwbGllZA0KZW1haWxBZGRyZXNzICAgICAgICAgICAgICA9IG9wdGlvbmFs
DQoNClsgcG9saWN5X2FueXRoaW5nIF0NCmNvdW50cnlOYW1lICAgICAgICAgICAgICAgPSBvcHRp
b25hbA0Kc3RhdGVPclByb3ZpbmNlTmFtZSAgICAgICA9IG9wdGlvbmFsDQpsb2NhbGl0eU5hbWUg
ICAgICAgICAgICAgID0gb3B0aW9uYWwNCm9yZ2FuaXphdGlvbk5hbWUgICAgICAgICAgPSBvcHRp
b25hbA0KMC5vcmdhbml6YXRpb25hbFVuaXROYW1lICA9IG9wdGlvbmFsDQoxLm9yZ2FuaXphdGlv
bmFsVW5pdE5hbWUgID0gb3B0aW9uYWwNCmNvbW1vbk5hbWUgICAgICAgICAgICAgICAgPSBzdXBw
bGllZA0KZW1haWxBZGRyZXNzICAgICAgICAgICAgICA9IG9wdGlvbmFsDQoNCiMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
DQpbIHJlcSBdDQpkZWZhdWx0X2JpdHMgICAgICAgICAgICAgPSBEQklUU0QNCmRlZmF1bHRfbWQg
ICAgICAgICAgICAgICA9IHNoYTI1Ng0KZGVmYXVsdF9rZXlmaWxlICAgICAgICAgID0gcHJpdmtl
eS5wZW0NCmRpc3Rpbmd1aXNoZWRfbmFtZSAgICAgICA9IHJlcV9kaXN0aW5ndWlzaGVkX25hbWUN
CmF0dHJpYnV0ZXMgICAgICAgICAgICAgICA9IHJlcV9hdHRyaWJ1dGVzDQp4NTA5X2V4dGVuc2lv
bnMgICAgICAgICAgPSB2M19jYQkjIFRoZSBleHRlbnRpb25zIHRvIGFkZCB0byB0aGUgc2VsZiBz
aWduZWQgY2VydA0Kc3RyaW5nX21hc2sgICAgICAgICAgICAgID0gTUFTSzoweDIwMDINCg0KWyBy
ZXFfZGlzdGluZ3Vpc2hlZF9uYW1lIF0NCmNvdW50cnlOYW1lICAgICAgICAgICAgICA9IElTTyBD
b3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNvZGUpDQpjb3VudHJ5TmFtZV9kZWZhdWx0ICAgICAgPSBE
Q0QNCmNvdW50cnlOYW1lX21pbiAgICAgICAgICA9IDINCmNvdW50cnlOYW1lX21heCAgICAgICAg
ICA9IDINCg0Kc3RhdGVPclByb3ZpbmNlTmFtZSAgICAgICAgID0gU3RhdGUgb3IgUHJvdmluY2Ug
TmFtZSAoZnVsbCBuYW1lKQ0Kc3RhdGVPclByb3ZpbmNlTmFtZV9kZWZhdWx0ID0gRFNURA0KDQps
b2NhbGl0eU5hbWUgICAgICAgICAgICAgICAgPSBMb2NhbGl0eSBOYW1lIChlZywgY2l0eSkNCmxv
Y2FsaXR5TmFtZV9kZWZhdWx0ICAgICAgICA9IERMRA0KDQowLm9yZ2FuaXphdGlvbk5hbWUgICAg
ICAgICAgPSBPcmdhbml6YXRpb24gTmFtZSAoZWcsIGNvbXBhbnkpDQowLm9yZ2FuaXphdGlvbk5h
bWVfZGVmYXVsdCAgPSBET0QNCg0KMC5vcmdhbml6YXRpb25hbFVuaXROYW1lICAgICAgICAgID0g
UHJpbWFyeSBPcmdhbml6YXRpb25hbCBVbml0IE5hbWUgKGVnLCBzZWN0aW9uKQ0KMC5vcmdhbml6
YXRpb25hbFVuaXROYW1lX2RlZmF1bHQgID0gRE9VRA0KMS5vcmdhbml6YXRpb25hbFVuaXROYW1l
ICAgICAgICAgID0gc2Vjb25kYXJ5IE9yZ2FuaXphdGlvbmFsIFVuaXQgTmFtZSAoZWcsIHNlY3Rp
b24pDQoxLm9yZ2FuaXphdGlvbmFsVW5pdE5hbWVfZGVmYXVsdCAgPSBET1UyRA0KDQpjb21tb25O
YW1lICAgICAgICAgICAgID0gQ29tbW9uIE5hbWUgKGVnLCB5b3VyIG5hbWUgb3IgeW91ciBzZXJ2
ZXJcJ3MgaG9zdG5hbWUpDQpjb21tb25OYW1lX21heCAgICAgICAgID0gMTI4DQoNCmVtYWlsQWRk
cmVzcwkJICAgICAgID0gRW1haWwgQWRkcmVzcw0KZW1haWxBZGRyZXNzX21heAkJICAgPSAxMjgN
Cg0KWyByZXFfYXR0cmlidXRlcyBdDQpjaGFsbGVuZ2VQYXNzd29yZAkJICAgPSBBIGNoYWxsZW5n
ZSBwYXNzd29yZA0KY2hhbGxlbmdlUGFzc3dvcmRfbWluCSA9IDQNCmNoYWxsZW5nZVBhc3N3b3Jk
X21heAkgPSAyMA0KdW5zdHJ1Y3R1cmVkTmFtZQkJICAgPSBBbiBvcHRpb25hbCBjb21wYW55IG5h
bWUNCg0KWyB1c3JfY2VydCBdDQpiYXNpY0NvbnN0cmFpbnRzICAgICAgID0gQ0E6TUFLRV9DQQ0K
DQojWyB2M19yZXEgXQ0KDQpbIHYzX2NhIF0NCnN1YmplY3RLZXlJZGVudGlmaWVyICAgPSBoYXNo
DQphdXRob3JpdHlLZXlJZGVudGlmaWVyID0ga2V5aWQ6YWx3YXlzLGlzc3VlcjphbHdheXMNCmJh
c2ljQ29uc3RyYWludHMgICAgICAgPSBDQTp0cnVlDQoNClsgY3JsX2V4dCBdDQphdXRob3JpdHlL
ZXlJZGVudGlmaWVyID0ga2V5aWQ6YWx3YXlzLGlzc3VlcjphbHdheXMNCg0KWyBwcm94eV9jZXJ0
X2V4dCBdDQpiYXNpY0NvbnN0cmFpbnRzICAgICAgID0gQ0E6RkFMU0UNCm5zQ29tbWVudAkJCSAg
ICAgICAgID0gIk9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlIg0Kc3ViamVjdEtleUlkZW50
aWZpZXIgICA9IGhhc2gNCmF1dGhvcml0eUtleUlkZW50aWZpZXIgPSBrZXlpZCxpc3N1ZXI6YWx3
YXlzDQpwcm94eUNlcnRJbmZvICAgICAgICAgID0gY3JpdGljYWwsbGFuZ3VhZ2U6aWQtcHBsLWFu
eUxhbmd1YWdlLHBhdGhsZW46Myxwb2xpY3k6Zm9vDQo=" | base64 -di - > "/etc/ac_x509_authority/openssl.cnf.template"; then
	rollback
fi
log_undo 'rm -f "/etc/ac_x509_authority/openssl.cnf.template"'
chown root:apache "/etc/ac_x509_authority/openssl.cnf.template"
chmod 0644 "/etc/ac_x509_authority/openssl.cnf.template"
echo -e "Created file '/etc/ac_x509_authority/openssl.cnf.template'"
if ! echo "bnNDb21tZW50PSJBQyBYNTA5IEF1dGhvcml0eSBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUiCnN1Ympl
Y3RLZXlJZGVudGlmaWVyPWhhc2gKYXV0aG9yaXR5S2V5SWRlbnRpZmllcj1rZXlpZCxpc3N1ZXIK" | base64 -di - > "/etc/ac_x509_authority/usr_cert.ext"; then
	rollback
fi
log_undo 'rm -f "/etc/ac_x509_authority/usr_cert.ext"'
chown root:apache "/etc/ac_x509_authority/usr_cert.ext"
chmod 0644 "/etc/ac_x509_authority/usr_cert.ext"
echo -e "Created file '/etc/ac_x509_authority/usr_cert.ext'"
if ! echo "L3Zhci9DQQo=" | base64 -di - > "/etc/ac_x509_authority/datapath"; then
	rollback
fi
log_undo 'rm -f "/etc/ac_x509_authority/datapath"'
chown root:apache "/etc/ac_x509_authority/datapath"
chmod 0660 "/etc/ac_x509_authority/datapath"
echo -e "Created file '/etc/ac_x509_authority/datapath'"
if ! echo "IyEvYmluL2Jhc2gKIwojICAgICAgICAgICAgIE5BTUU6IEFDIFg1MDkgQXV0aG9yaXR5CiMgICAg
ICAgIENPUFlSSUdIVDogQ29weXJpZ2h0IChDKTIwMDgtMjAyNiBKb2V5IERvYmlhcwojICAgICAg
ICAgIFZFUlNJT046IDEuNS4wCiMgICAgICAgQ1JFQVRFRCBCWTogSm9leSBEb2JpYXMgKGpvZXkt
ZG9iaWFzQGFzaWFjb210ZWsuY29tKQojICAgIENSRUFUSU9OIERBVEU6IDIwMDktMDktMjYKIyAg
TEFTVCBVUERBVEVEIEJZOiBKb2V5IERPYmlhcyAoam9leS1kb2JpYXNAYXNpYWNvbXRlay5jb20p
CiMgICAgICBMQVNUIFVQREFURTogMjAyNi0wMi0yMAojICAgTk9URVM6IEFsbG93cyBhIHVzZXIg
dG8gcnVuIGEgY29tcGxldGUgYW5kIHBhaW5sZXNzIFg1MDkgY2VydGlmaWNhdGUKIyAgICAgICAg
ICBhdXRob3JpdHkuIFRoZSB1c2UgaXMgc3BlY2lhbGlzZWQgZm9yIFg1MDkgaHR0cCBjZXJ0aWZp
Y2F0ZXMgYnV0CiMgICAgICAgICAgYWxsIHRoZSBjb3JlIHJlcXVpcmVtZW50cyBvZiBhIENBIGFy
ZSBtZXQuIFRoZSBzY3JpcHQgY2FuIGJ1aWxkIGFuCiMgICAgICAgICAgZW50aXJlIENBIGFuZCBj
ZXJ0aWZpY2F0ZSBkYXRlYmFzZSBhbmQgdGhlbiBtYW5hZ2UgY3JlYXRpb24sCiMgICAgICAgICAg
cmV2b2NhdGlvbiwgZGVsZXRpbmcgYW5kIENSTCBtYW5hZ2VtZW50IGZyb20gYSBzaW5nbGUgY29t
bWFuZC4KIwoKIyBERUNMQVJFIEdMT0JBTFMKCk5BTUU9J0FDIFg1MDkgQXV0aG9yaXR5JwpNT0Q9
JChob3N0bmFtZSkKVkVSPTEuNS4wClRISVM9JDAKU1dBUD0vdG1wLyR7JH1fc3dhcApWQj0vZGV2
L251bGwKVkVSQk9TRT0wClBBVEg9L2JpbjovdXNyL2Jpbjovc2JpbjovdXNyL3NiaW4KQ09ORj0v
ZXRjL2FjX3g1MDlfYXV0aG9yaXR5CkRBVEE9JChjYXQgJENPTkYvZGF0YXBhdGgpCkRFQlVHX0xP
Rz0kREFUQS9kZWJ1Zy5sb2cKT1JJR0lOPSQocHdkKQpDRVJUX0RJUj1jZXJ0cwpLRVlfRElSPWtl
eXMKUkVRU19ESVI9cmVxdWVzdHMKQ1JMX0RJUj1jcmwKVkJVRkZFUj0ke1NXQVB9X2J1ZmZlcgpQ
SUQ9JCQKQ0E9JycKVVNBR0U9IgpVU0FHRTogJChiYXNlbmFtZSAkVEhJUykgPENBPiA8b3B0aW9u
PiBbPG9wdGlvbmFsPiAtLXZlcmJvc2VdCgpsaXN0CglPdXRwdXRzIGEgc3VtbWFyeSBvZiB0aGUg
Y3VycmVudCBDZXJ0aWZpY2F0ZSBBdXRob3JpdGllcyAoaWYgYW55KS4gQ2FuCglhbHNvIHRha2Ug
YW4gb3B0aW9uYWwgPENBPiB0byByZXN0cmljdCB0aGUgb3V0cHV0LgoJCgkkKGJhc2VuYW1lICRU
SElTKSBsaXN0IFs8Q0E+IC0tdmVyYm9zZV0KCmRhdGFzdG9yZQoJTW92ZXMgdGhlIGRhdGFzdG9y
ZSB0byB0aGUgZGVmaW5lZCBkaXJlY3RvcnkgKGNyZWF0aW5nIGl0IGlmIGl0Cglkb2VzIG5vdCBl
eGlzdCkuIEV4aXN0aW5nIGRhdGEgd2lsbCBiZSByZWxvY2F0ZWQuCgkKCSQoYmFzZW5hbWUgJFRI
SVMpIGRhdGFzdG9yZSA8cGF0aD4gWy0tdmVyYm9zZV0KCm5ldwoJQ3JlYXRlcyBhIG5ldyBDZXJ0
aWZpY2F0ZSBBdXRob3JpdHkgKG1lbnUgZHJpdmVuKS4KCQoJJChiYXNlbmFtZSAkVEhJUykgbmV3
CgpnZXQtcmVwb3J0CglCdWlsZHMgYSBDU1YgKHBpcGUgc2VwYXJhdGVkKSBmaWxlIG9mIGNlcnRm
aWNpYXRlcyBhbmQga2V5cy4gQ2FuIGFsc28gdGFrZSBhbgoJb3B0aW9uYWwgPENBPiB0byByZXN0
cmljdCB0aGUgb3V0cHV0LiAKCQoJJChiYXNlbmFtZSAkVEhJUykgZ2V0LXJlcG9ydCBbPENBPiAt
LXZlcmJvc2VdCgkKdmVyc2lvbgoJT3V0cHV0cyB2ZXJzaW9uIGluZm8uCgkKCSQoYmFzZW5hbWUg
JFRISVMpIHZlcnNpb24KCjxDQT4KCU11c3QgYmUgdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgQ2Vy
dGlmaWNhdGUgQXV0aG9yaXR5IGFscmVhZHkgY3JlYXRlZAoJb24gdGhlIHN5c3RlbSBvciwgaW4g
dGhlIGNhc2Ugb2YgJ25ldycsIHRoZSBuYW1lIG9mIHRoZSBDQSB0byBjcmVhdGUuCgo8T3B0aW9u
cz4KICAgICBkZXN0cm95IDogRGVsZXRlcyBhIENlcnRpZmljYXRlIEF1dGhvcml0eSBhbmQgYWxs
IHRoZSBjZXJ0aWZpY2F0ZXMuCgogICAgICAgICAgICAgICAkKGJhc2VuYW1lICRUSElTKSA8Q0E+
IGRlc3Ryb3kgWy0tdmVyYm9zZV0KICAgICAgICAgICAgICAgICAgICAKICAgICAgY3JlYXRlIDog
Q3JlYXRlcyBhIG5ldyBDQS1zaWduZWQgY2VydGlmaWNhdGUuIEEgPGNvbW1vbl9uYW1lPiBpcyAK
ICAgICAgICAgICAgICAgcmVxdWlyZWQuIElmIHRoZSBDQSBpcyBwYXNzd29yZCBwcm90ZWN0ZWQg
YW4gYWRkaXRpb25hbAogICAgICAgICAgICAgICA8Q0FfcGFzc3dvcmQ+IGlzIHJlcXVpcmVkLiBB
IGZpbmFsIDxwYXNzd29yZD4gY2FuIGJlIHN1cHBsaWVkIHRvCiAgICAgICAgICAgICAgIGxvY2sg
dGhlIHByaXZhdGUga2V5LiBBbiBvcHRpb25hbCBDU1YgbGlzdCBvZiB2YWxpZCBzdWJqZWN0cwog
ICAgICAgICAgICAgICA8U0FOcz4gKGhvc3RuYW1lcyBvciBlbWFpbCBhZGRyZXNzZXMpIGNhbiBh
bHNvIGJlIGFwcGVuZGVkLiAKCiAgICAgICAgICAgICAgICQoYmFzZW5hbWUgJFRISVMpIDxDQT4g
Y3JlYXRlIDxjb21tb25fbmFtZT4gWzxDQV9wYXNzd29yZD4gPHBhc3N3b3JkPiA8U0FOcz4gLS12
ZXJib3NlXQoKICBjcmVhdGUtY3NyIDogQ3JlYXRlIGEgbmV3IHByaXZhdGUga2V5IGFuZCBDZXJ0
aWZpY2F0ZSBTaWduaW5nIFJlcXVlc3QgKENTUikuCiAgICAgICAgICAgICAgIFRoaXMgaXMgbGVz
cyBhdXRvbWF0ZWQgdGhhbiB0aGUgImNyZWF0ZSIgY29tbWFuZCBhbmQgbXVzdCBiZSAKICAgICAg
ICAgICAgICAgZm9sbG93ZWQgYnkgdGhlICJzaWduIiBjb21tYW5kIHRvIGNvbnZlcnQgdGhlIENT
UiBpbnRvIGEgdXNhYmxlCiAgICAgICAgICAgICAgIHB1YmxpYyBjZXJ0aWZpY2F0ZS4gQnV0IGl0
IGFsbG93cyBmb3IgZ3JhbnVsYXIgY3JlYXRpb24gb2YgdGhlCiAgICAgICAgICAgICAgIEROIChh
cyBsb25nIGFzIGl0IHN0aWxsIG1lZXRzIHRoZSBtYW5kYXRvcnkgZmllbGRzKS4gVGhpcyBpcwog
ICAgICAgICAgICAgICBwcm9tcHQgZHJpdmVuLgogICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgJChiYXNlbmFtZSAkVEhJUykgPENBPiBjcmVhdGUtY3NyIDxjb21tb25fbmFtZT4gWzxDQV9w
YXNzd29yZD4gPHBhc3N3b3JkPiA8U0FOcz4gLS12ZXJib3NlXQogIAogICAgICAgIHNpZ24gOiBT
aWduIHRoZSBjZXJ0aWZpY2F0ZSBpbiB0aGUgPENTUl9wYXRoPiBhbmQgYWRkIGl0ICh3aXRob3V0
IGtleSkuCiAgICAgICAgICAgICAgIElmIHRoZSBDQSBpcyBwYXNzd29yZCBwcm90ZWN0ZWQgYW4g
YWRkaXRpb25hbCA8Q0FfcGFzc3dvcmQ+IGlzCiAgICAgICAgICAgICAgIHJlcXVpcmVkLgoKICAg
ICAgICAgICAgICAgJChiYXNlbmFtZSAkVEhJUykgPENBPiBzaWduIDxDU1JfcGF0aD4gWzxDQV9w
YXNzd29yZD4gLS12ZXJib3NlXQoKICAgIGdldC1pbmZvIDogUmV0dXJucyB0aGUgY2VydGlmaWNh
dGUgdmFsaWRpdHkgZm9yIDxjb21tb25fbmFtZT4uIElmIG5vCiAgICAgICAgICAgICAgIDxjb21t
b25fbmFtZT4gaXMgc3VwcGxpZWQsIHRoZSBpbmZvIGZvciB0aGUgQ0EgY2VydCB3aWxsIGJlCiAg
ICAgICAgICAgICAgIGRpc3BsYXllZCBpbnN0ZWFkLgoKICAgICAgICAgICAgICAgJChiYXNlbmFt
ZSAkVEhJUykgPENBPiBnZXQtaW5mbyA8Y29tbW9uX25hbWU+IFstLXZlcmJvc2VdCgogICAgICBy
ZXZva2UgOiBSZXZva2VzIHRoZSBjZXJ0aWZpY2F0ZSBmb3IgPGNvbW1vbl9uYW1lPi4gVGhlIENS
TCBpcyBub3QKICAgICAgICAgICAgICAgY2hhbmdlZC4gSWYgdGhlIENBIGlzIHBhc3N3b3JkIHBy
b3RlY3RlZCBhbiBhZGRpdGlvbmFsCiAgICAgICAgICAgICAgIDxDQV9wYXNzd29yZD4gaXMgcmVx
dWlyZWQuCgogICAgICAgICAgICAgICAkKGJhc2VuYW1lICRUSElTKSA8Q0E+IHJldm9rZSA8Y29t
bW9uX25hbWU+IFs8Q0FfcGFzc3dvcmQ+IC0tdmVyYm9zZV0KCiAgdXBkYXRlLWNybCA6IFVwZGF0
ZXMgdGhlIENlcnRpZmljYXRlIFJldm9jYXRpb24gTGlzdCAoQ1JMKS4gSWYgdGhlIENBIGlzIAog
ICAgICAgICAgICAgICBwYXNzd29yZCBwcm90ZWN0ZWQgYW4gYWRkaXRpb25hbCA8Q0FfcGFzc3dv
cmQ+IGlzIHJlcXVpcmVkLgoKICAgICAgICAgICAgICAgJChiYXNlbmFtZSAkVEhJUykgPENBPiB1
cGRhdGUtY3JsIFs8Q0FfcGFzc3dvcmQ+IC0tdmVyYm9zZV0KCiAgICAgIGRlbGV0ZSA6IFJlbW92
ZXMgYSBjZXJ0aWZpY2F0ZSBmb3IgPGNvbW1vbl9uYW1lPiB0aGUgZGF0YWJhc2UuIFRoZSBDUkwg
aXMKICAgICAgICAgICAgICAgbm90IGNoYW5nZWQuCgogICAgICAgICAgICAgICAkKGJhc2VuYW1l
ICRUSElTKSA8Q0E+IGRlbGV0ZSA8Y29tbW9uX25hbWU+IFstLXZlcmJvc2VdCgpnZXQtY3JsLWlu
Zm8gOiBPdXRwdXRzIHRoZSB2YWxpZGl0eSBwZXJpb2Qgb2YgdGhlIENSTC4KCiAgICAgICAgICAg
ICAgICQoYmFzZW5hbWUgJFRISVMpIDxDQT4gZ2V0LWNybC1pbmZvIFstLXZlcmJvc2VdCgogICAg
ICBzdGF0dXMgOiBPdXRwdXRzIHRvdGFsIG51bWJlciBvZiBjZXJ0aWZpY2F0ZXMgaW4gdGhlIGRh
dGFiYXNlLgoKICAgICAgICAgICAgICAgJChiYXNlbmFtZSAkVEhJUykgPENBPiBzdGF0dXMgWy0t
dmVyYm9zZV0KCiAgICAgcHJvZmlsZSA6IFNob3dzIHRoZSBDQSBjb25maWd1cmF0aW9uIHByb2Zp
bGUuCgogICAgICAgICAgICAgICAkKGJhc2VuYW1lICRUSElTKSA8Q0E+IHByb2ZpbGUgWy0tdmVy
Ym9zZV0KCmVkaXQtcHJvZmlsZSA6IE1ha2UgY2hhbmdlcyB0byB0aGUgcHJvZmlsZS4gKG1lbnUt
ZHJpdmVuKQoKICAgICAgICAgICAgICAgJChiYXNlbmFtZSAkVEhJUykgPENBPiBlZGl0LXByb2Zp
bGUgWy0tdmVyYm9zZV0KCiAgICBwYXNzd29yZCA6IENoYW5nZSB0aGUgQ0EgcGFzc3dvcmQsIG9y
IHNldCBvbmUgaWYgbm9uZSBleGlzdHMgKG9yIGV2ZW4gCiAgICAgICAgICAgICAgIHJlbW92ZSB0
aGUgcGFzc3dvcmQgbG9jayBhbHRvZ2V0aGVyKS4gKG1lbnUtZHJpdmVuKQoKICAgICAgICAgICAg
ICAgJChiYXNlbmFtZSAkVEhJUykgPENBPiBwYXNzd29yZCBbLS12ZXJib3NlXQoKICBnZXQtcGtj
czEyIDogRXhwb3J0cyBhIHNlbGVjdGVkIGNlcnRpZmljYXRlIChpbmNsdWluZCBpbnRlcm1lZGlh
dGUgYW5kIHJvb3QKICAgICAgICAgICAgICAgY2VydGlmaWNhdGVzKSB0byBhIFBLQ1MjMTIga2V5
c3RvcmUuIFRoZSA8Y29tbW9uX25hbWU+IGFuZAogICAgICAgICAgICAgICA8YWxpYXM+IChhIG5p
Y2tuYW1lIGZvciBjZXJ0aWZpY2F0ZSkgYXJlIG1hbmRhdG9yeS4gSWYgdGhlIAogICAgICAgICAg
ICAgICBwcml2YXRlIGtleSBpcyBsb2NrZWQgYSA8cGFzc3dvcmQ+IG11c3QgYmUgc3VwcGxpZWQg
KHRoaXMgaXMgCiAgICAgICAgICAgICAgIHByZXNlcnZlZCBpbiB0aGUgUEtDUyMxMiBmaWxlKSBh
bmQgYSBmaW5hbCBvcHRpb25hbCAKICAgICAgICAgICAgICAgPGtleXN0b3JlX3Bhc3NvcmQ+IGNh
biBhbHNvIGJlIHN1cHBsaWVkLgoKICAgICAgICAgICAgICAgJChiYXNlbmFtZSAkVEhJUykgPENB
PiBnZXQtcGtjczEyIDxjb21tb25fbmFtZT4gPGFsaWFzPiBbPHBhc3N3b3JkPiA8a2V5c3RvcmVf
cGFzc3dvcmQ+IC0tdmVyYm9zZV0KClstdiAtLXZlcmJvc2VdIENhdXNlcyBhZGRpdGlvbmFsIG91
dHB1dCBmcm9tIG9wZW5zc2wgdG8gYmUgZGlzcGxheWVkLgogICAgICAgICAgICAgICBOb3RlISBU
aGlzIGlzIG5vdCB0aGUgc2FtZSBhcyB2aWV3aW5nIHZlcmJvc2Ugb3BlbnNzbCBvdXRwdXQuCiIK
CiMgTUFJTiBQUk9DRVNTSU5HIEZVTkNUSU9OUwoKIyBHcmFjZWZ1bGx5IGV4aXRzIHdpdGggd2Fy
bmluZyBpZiBsb2NrZWQgYnkgYW5vdGhlciBpbnN0YW5jZSAoc29tZSBmdW5jdGlvbnMgbXVzdCBu
ZXZlciBiZSBydW4gY29uY3VycmVudGx5KQpmdW5jdGlvbiBpc19sb2NrZWQgewoJaWYgWyAtciAi
JERBVEEvLmxvY2siIF07IHRoZW4KCQlwcyAtJChjYXQgIiREQVRBLy5sb2NrIikgMj4mLSA+Ji0K
CQlpZiBbICIkPyIgPSAnMCcgXTsgdGhlbiAjbWVhbiBsb2NrIGZpbGUgZXhpc3RzIGFuZCBjb250
YWlucyBhIFBJRCB0aGF0IGlzIGFjdGl2ZQoJCQltZXNzYWdlIGVycm9yICIkTkFNRSBpcyBjdXJy
ZW50bHkgbG9ja2VkIGJ5IGFub3RoZXIgcHJvY2Vzcy4gUGxlYXNlIHRyeSBhZ2Fpbi4iCgkJCWdy
YWNlZnVsX2V4aXQgMQoJCWZpCglmaQp9CgojIExvY2sgWDUwOSBhZ2FpbnN0IG90aGVyIHJ1bnMK
ZnVuY3Rpb24gbG9jayB7CgllY2hvIC1uICRQSUQgPiAiJERBVEEvLmxvY2siCn0KCiMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKIyBHZW5lcmljIG1lc3NhZ2UgZnVuY3Rpb24gYnkgSm9leSBEb2JpYXMg
KGpvZXktZG9iaWFzQGFzaWFjb210ZWsuY29tKSAgICAgICAgIwojIFRoaXMgaGFuZGxlcyBhbGwg
bWVzc2FnZXMgdGhhdCBhIHNjcmlwdCBtaWdodCB3YW50IHRvIHNlbmQgdG8gd2hlcmV2ZXIuICAg
ICAjCiMgVGhpcyBpbmNsdWRlczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICMKIwkqIFVzZXIgaW5wdXQgcHJvbXB0cyAJKHByb21w
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojCSogVXNlciBpbnB1
dCBlcnJvcnMJCShpbnZhbGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICMKIwkqIFllcy9ObyBwcm9tcHRzCQkoaXNfeWVzKSByZXR1cm5zIDAgb24gWSAgICAgICAgICAg
ICAgICAgICAgICAgICAjCiMJKiBTdGVwIG5vdGlmaWNhdGlvbgkJKHN0ZXApICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojCSogU3RlcCBjb21wbGV0aW9uCQkoY29t
cGxldGUvd2FybmluZy9mYWlsKSAgICAgICAgICAgICAgICAgICAgICAgICAjCiMJKiBTdGFuZGFy
ZCBvdXRwdXQJCShpbmZvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICMKIwkqIFN0YW5kYXJkIGVycm9yCQkoZXJyb3IpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAjCiMJKiBWZXJib3NlIG91dHB1dAkJKHZlcmJvc2UpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojCSogVmVyYm9zZSBidWZmZXIJCSh2YnVmZmVy
KSBCdWZmZXIgdmVyYm9zZSB1bnRpbCAndmVyYm9zZScgY2FsbGVkICMKIwkqIFN5c2xvZyBtZXNz
YWdlcwkJKHN5c2xvZykgVGFrZXMgYWRkaXRpb25hbCBzZXZlcml0eTogICAgICAgICAgICAgIwoj
CQkJCQkJCWluZm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiMJCQkJ
CQkJd2FybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKIwkJCQkJCQll
cnIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojCQkJCQkJCWNyaXQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiMJKiBEZWJ1ZyBsb2cgbWVz
c2FnZXMJKGRlYnVnKSBhbHNvIGNhcHR1cmVzIGV2ZW50cyBzZW50IHRvIGFsbCBvdGhlciAgIwoj
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjCiMgU29tZSBnbG9iYWwgdmFyaWFibGVzIGFyZSB1c2VkIHRv
IGNvbnRyb2wgYmVoYXZpb3VyIG9mIHRoZSBmdW5jdGlvbiAgICAgICAgICMKIwkkVkVSQk9TRQkJ
CUlmIHNldCB0byAxIHRoZW4gdmVyYm9zZSBsb2dnaW5nIGhhcHBlbnMgICAgICAgICAgICAgIwoj
CSRERUJVR19MT0cJCURlYnVnIGxvZ2dpbmcgb25seSBoYXBwZW5zIGlmIHRoaXMgcGF0aCBpcyBz
ZXQgICAgICAgIwojCSRWQlVGRkVSCQkJQnVmZmVyZWQgdmVyYm9zZSBpbmZvICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjCiMJJFBJRAkJCQlUaGUgcGFyZW50IFBJRCBmb3IgY29uc2lz
dGVudCBsb2dnaW5nICAgICAgICAgICAgICAgICMKIyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojIFNv
bWUgZ2xvYmFscyBhcmUgdXNlZCBmb3IgY29uc2lzdGVuY3kgYWNyb3NzIGNhbGxzIGFuZCBzaG91
bGQgYmUgYXZvaWRlZCAgICAjCiMJJExBU1RfU1RSSU5HICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKZnVuY3Rpb24gbWVzc2FnZSB7
CgljYXNlICQxIGluCgkJcHJvbXB0ICkKCQkJTEFTVF9TVFJJTkc9IiQyOiAiCgkJCWVjaG8gLWVu
ICIke0xBU1RfU1RSSU5HfSIKCQkJbWVzc2FnZSBkZWJ1ZyAiUFJPTVBUOiAke0xBU1RfU1RSSU5H
fSIKCQkJOzsKCQlpbnZhbGlkICkKCQkJZWNobyAtZW4gIiR7TEFTVF9TVFJJTkd9SU5WQUxJRCEg
JDIiCgkJCW1lc3NhZ2UgZGVidWcgIklOVkFMSUQ6ICQyIgoJCQlzbGVlcCAzCgkJCWxvY2FsIGEK
CQkJbG9jYWwgYgoJCQlsb2NhbCBjCgkJCWE9JCgoJHsjMn0rOSkpCgkJCXdoaWxlICgoYT4wKSk7
IGRvCgkJCQliPSIkYlxiIgoJCQkJYz0iJGMgIgoJCQkJKChhLS0pKQoJCQlkb25lCgkJCWVjaG8g
LWVuICIkYiRjJGIiCgkJCTs7CgkJaXNfeWVzICkKCQkJTEFTVF9TVFJJTkc9IiQyIFtZL05dOiAi
CgkJCWVjaG8gLWVuICIke0xBU1RfU1RSSU5HfSIKCQkJbWVzc2FnZSBkZWJ1ZyAiUFJPTVBUOiAk
e0xBU1RfU1RSSU5HfSIKCQkJd2hpbGUgcmVhZDsgZG8KCQkJCW1lc3NhZ2UgZGVidWcgIlJFU1BP
TlNFOiAnJFJFUExZJyIKCQkJCWNhc2UgJFJFUExZIGluCgkJCQkJWSB8IHkgKQoJCQkJCQlyZXR1
cm4gMAoJCQkJCQk7OwoJCQkJCU4gfCBuICkKCQkJCQkJcmV0dXJuIDEKCQkJCQkJOzsKCQkJCQkq
ICkKCQkJCQkJbWVzc2FnZSBpbnZhbGlkCgkJCQkJCTs7CgkJCQllc2FjCgkJCWRvbmUKCQkJOzsK
CQlzdGVwICkKCQkJTEFTVF9TVFJJTkc9IiQyIgoJCQllY2hvIC1lbiAiJHtMQVNUX1NUUklOR30i
CgkJCTs7CgkJY29tcGxldGUgfCB3YXJuaW5nIHwgZmFpbGVkICkKCQkJbG9jYWwgYQoJCQlsb2Nh
bCBiCgkJCW1lc3NhZ2UgZGVidWcgIlNURVA6ICR7TEFTVF9TVFJJTkd9Li4uJDEiCgkJCWlmICgo
KCR7I0xBU1RfU1RSSU5HfSskeyMxfSsxKT43OCkpOyB0aGVuCgkJCQllY2hvICcuLi4nCgkJCQlM
QVNUX1NUUklORz0nJwoJCQlmaQoJCQlhPSQoKDc4LSR7I0xBU1RfU1RSSU5HfS0keyMxfSkpCgkJ
CXdoaWxlICgoYT4wKSk7IGRvCgkJCQliPSIkYi4iCgkJCQkoKGEtLSkpCgkJCWRvbmUKCQkJZWNo
byAtZSAiJGIkMSIKCQkJOzsKCQlpbmZvICkKCQkJZWNobyAtZSAiJDIiCgkJCW1lc3NhZ2UgZGVi
dWcgIklORk86ICQyIgoJCQk7OwoJCWVycm9yICkKCQkJZWNobyAtZSAiRVJST1I6ICQyIiA+JjIK
CQkJbWVzc2FnZSBkZWJ1ZyAiRVJST1I6ICQyIgoJCQlsb2dnZXIgLXAgc3lzbG9nLmVyciAiIgoJ
CQk7OwoJCXZidWZmZXIgKSAKCQkJaWYgWyAteiAiJFZCVUZGRVIiIF07IHRoZW4KCQkJCW1lc3Nh
Z2UgZXJyb3IgJ0F0dGVtcHRpbmcgdG8gdXNlIGJ1ZmZlcmVkIHZlcmJvc2Ugb3V0cHV0IGJ1dCAk
VkJVRkZFUiBpcyBub3Qgc2V0LicKCQkJZWxzZQoJCQkJZWNobyAtZSAiJDIiID4+ICIkVkJVRkZF
UiIKCQkJCW1lc3NhZ2UgZGVidWcgIlZFUkJPU0U6ICQyIgoJCQlmaQoJCQk7OwoJCXZlcmJvc2Ug
KQoJCQlpZiAoKCR7VkVSQk9TRTo9MH09PTEpKTsgdGhlbgoJCQkJaWYgWyAtciAiJFZCVUZGRVIi
IF07IHRoZW4KCQkJCQljYXQgIiRWQlVGRkVSIgoJCQkJZmkKCQkJCWVjaG8gLWUgIiQyIgoJCQlm
aQoJCQlpZiBbIC1yICIkVkJVRkZFUiIgXTsgdGhlbgoJCQkJbWVzc2FnZSBkZWJ1ZyAkKGNhdCAi
JFZCVUZGRVIiKQoJCQkJcm0gLWYgIiRWQlVGRkVSIiAyPiYtCgkJCWZpCgkJCW1lc3NhZ2UgZGVi
dWcgIlZFUkJPU0U6ICQyIgoJCQk7OwoJCXN5c2xvZyApCgkJCWNhc2UgJDIgaW4KCQkJCWluZm8g
fCB3YXJuIHwgZXJyIHwgY3JpdCApCgkJCQkJbG9nZ2VyIC1wIHN5c2xvZy4kMiAiJDMiCgkJCQkJ
OzsKCQkJCSogKSAjdHJlYXQgYXMgYSBub3RpY2UgdGhhdCBsb2dnaW5nIGlzIG5vdCBjb3JyZWN0
CgkJCQkJbG9nZ2VyIC1wIHN5c2xvZy5ub3RpY2UgIkluY29ycmVjdCB1c2FnZSBvZiAnbWVzc2Fn
ZSBzeXNsb2cgJDInLiBMb2dnZWQgbWVzc2FnZSB3b3VsZCBoYXZlIGJlZW4gJyQzJyIKCQkJCQk7
OwoJCQllc2FjCgkJCW1lc3NhZ2UgZGVidWcgIkxPRzogJDMiCgkJCTs7CgkJZGVidWcgKQoJCQlp
ZiBbICEgLXogIiR7REVCVUdfTE9HfSIgXTsgdGhlbgoJCQkJZWNobyAtZSAiWyQoZGF0ZSAnKyVZ
LSVtLSVkICVUJyldW1BJRDoke1BJRDo9dW5rbm93bn1dICQyIiA+PiAiJHtERUJVR19MT0d9IgoJ
CQlmaQoJCQk7OwoJCSogKQoJCQltZXNzYWdlIGVycm9yICJVbmtub3duIG9wdGlvbiAnJDEnIHBh
c3NlZCB0byAnbWVzc2FnZSgpJy4iCgkJCTs7Cgllc2FjCn0KCiMgUmV0dXJucyBUUlVFIGlmIHN1
cHBsaWVkIGVtYWlsIGlzIHZhaWQgZm9ybWF0CmZ1bmN0aW9uIHZhbGlkYXRlX2VtYWlsIHsKCWVj
aG8gIiQxIiB8IGdyZXAgLXFpRSAnXlstX1wuWzphbG51bTpdXStAKFtbOmFsbnVtOl1fXC1dK1wu
KStbWzphbHBoYTpdXXsyLDN9KFwuW1s6YWxwaGE6XV17Mn0pPyQnCn0KCiMgVXBkYXRlcyBjb25m
aWcgcGVybWlzc2lvbnMKZnVuY3Rpb24gdXBkYXRlX3Blcm1pc3Npb25zIHsKCWlmIFsgIiQod2hv
YW1pKSIgPSAncm9vdCcgXTsgdGhlbgoJCWNob3duIHJvb3Q6YXBhY2hlICREQVRBLyRDQS8uc2V0
ZW52CgkJY2hvd24gcm9vdDphcGFjaGUgJERBVEEvJENBLy5pbW11dGFibGUKCQljaG93biByb290
OmFwYWNoZSAkREFUQS8kQ0EvLnByb2ZpbGUKCQljaG93biByb290OmFwYWNoZSAkREFUQS8kQ0Ev
b3BlbnNzbC5jbmYKCWZpCn0KCiMgQnVpbGRzIGEgbmV3IENlcnRpZmljYXRlIEF1dGhvcml0eQpm
dW5jdGlvbiBjcmVhdGVfY2EgewoJaXNfbG9ja2VkCglsb2NrCglsb2NhbCBrZXlmaWxlCglsb2Nh
bCBjZXJ0Cglsb2NhbCByb290Cglsb2NhbCB2YXIKCWxvY2FsIHZhbHVlCgltZXNzYWdlIGluZm8g
IkNyZWF0aW5nIG5ldyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHlcbiIKCW1lc3NhZ2UgcHJvbXB0ICdD
ZXJ0aWZpY2F0ZSBBdXRob3JpdHkgbmFtZSBbYXV0aDFdJwoJd2hpbGUgcmVhZDsgZG8KCQlpZiBb
IC16ICIkUkVQTFkiIF07IHRoZW4KCQkJQ0E9YXV0aDEKCQkJYnJlYWsKCQllbGlmICEgZWNobyAk
UkVQTFkgfCBncmVwIC1xaUUgJ15bWzphbG51bTpdXXsxLDMyfSQnOyB0aGVuCgkJCW1lc3NhZ2Ug
aW52YWxpZAoJCWVsc2UKCQkJQ0E9JFJFUExZCgkJCWJyZWFrCgkJZmkKCWRvbmUKCSNTZXR1cCB0
aGUgdGVtcCBwcm9maWxlIHN0b3JlCglta2RpciAke1NXQVB9X3Byb2ZpbGUKCSNTZXR1cCB0aGUg
aW1tdXRhYmxlIHBhcnRzIG9mIHRoZSBwcm9maWxlCgltZXNzYWdlIHByb21wdCAiSXMgdGhpcyBD
QSBmb3IgbWFuYWdpbmdcblx0W1NdZXJ2ZXIgKGlzc3VlZCB0byBGUUROcylcblx0W0NdbGllbnQg
KGlzc3VlZCB0byBlbWFpbCBhZGRyZXNzZXMpXG5cdFtJXW50ZXJtZWRpYXRlIGNlcnRpZmljYXRl
c1xuSW50ZW50PyBbUy9DL0ldIgoJd2hpbGUgcmVhZDsgZG8KCQljYXNlICRSRVBMWSBpbgoJCQlT
IHwgcyApCgkJCQlpbnRlbnQ9c2VydmVyCgkJCQlNQUtFX0NBPUZBTFNFCgkJCQlicmVhawoJCQkJ
OzsKCQkJQyB8IGMgKQoJCQkJaW50ZW50PWNsaWVudAoJCQkJTUFLRV9DQT1GQUxTRQoJCQkJYnJl
YWsKCQkJCTs7CgkJCUkgfCBpICkKCQkJCWludGVudD1pbnRlcm1lZGlhdGUKCQkJCWJyZWFrCgkJ
CQk7OwoJCQkqICkKCQkJCW1lc3NhZ2UgaW52YWxpZAoJCQkJOzsKCQllc2FjCglkb25lCgltZXNz
YWdlIHByb21wdCAnQXJlIHlvdSBjcmVhdGluZyBhIFtTXWVsZi1zaWduZWQgQ0Egb3IgYW4gW0ld
bnRlcm1lZGlhdGUgQ0E/IFtTL0ldJwoJd2hpbGUgcmVhZDsgZG8KCQljYXNlICRSRVBMWSBpbgoJ
CQlpIHwgSSApCgkJCQl0eXBlPWludGVybWVkaWF0ZQoJCQkJYnJlYWsKCQkJCTs7CgkJCXMgfCBT
ICkKCQkJCXR5cGU9c2VsZi1zaWduZWQKCQkJCWJyZWFrCgkJCQk7OwoJCQkqICkKCQkJCW1lc3Nh
Z2UgaW52YWxpZCAKCQkJCTs7CgkJZXNhYwoJZG9uZQoJaWYgWyAkdHlwZSA9ICdzZWxmLXNpZ25l
ZCcgXTsgdGhlbiAjc2VsZi1zaWduZWQgYnJhbmNoCgkJbWVzc2FnZSBwcm9tcHQgJ0NBIGtleSBi
aXQgbGVuZ3RoIFsyMDQ4XScKCQl3aGlsZSByZWFkOyBkbwoJCQlpZiBbIC16ICIkUkVQTFkiIF07
IHRoZW4KCQkJCUNBX2JpdHM9MjA0OAoJCQkJYnJlYWsKCQkJZWxpZiAhIGVjaG8gJFJFUExZIHwg
Z3JlcCAtcUUgJ15bWzpkaWdpdDpdXXsyLDR9JCcgfHwgKChSRVBMWTw0OCkpIHx8ICgoUkVQTFk+
ODE5MikpOyB0aGVuCgkJCQltZXNzYWdlIGludmFsaWQgJ011c3QgYmUgYSBpbnRlZ2VyIGJldHdl
ZW4gNDggYW5kIDgxOTIuJwoJCQllbHNlCgkJCQlDQV9iaXRzPSRSRVBMWQoJCQkJYnJlYWsKCQkJ
ZmkKCQlkb25lCgkJbWVzc2FnZSBwcm9tcHQgJ0NBIHZhbGlkaXR5IHBlcmlvZCAoZGF5cykgWzM2
NTJdJwoJCXdoaWxlIHJlYWQ7IGRvCgkJCWlmIFsgLXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJQ0Ff
ZGF5cz0zNjUyCgkJCQlicmVhawoJCQllbGlmICEgZWNobyAkUkVQTFkgfCBncmVwIC1xRSAnXltb
OmRpZ2l0Ol1dezIsNX0kJyB8fCAoKFJFUExZPDMwKSkgfHwgKChSRVBMWT4yMDAwMCkpOyB0aGVu
CgkJCQltZXNzYWdlIGludmFsaWQgJ011c3QgYmUgYSBpbnRlZ2VyIGJldHdlZW4gMzAgYW5kIDIw
MDAwLicKCQkJZWxzZQoJCQkJQ0FfZGF5cz0kUkVQTFkKCQkJCWJyZWFrCgkJCWZpCgkJZG9uZQoJ
CW1lc3NhZ2UgcHJvbXB0ICJDQSBkb21haW4gbmFtZSBbJChob3N0bmFtZSldIgoJCXdoaWxlIHJl
YWQ7IGRvCgkJCWlmIFsgLXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJQ0FfQ049JChob3N0bmFtZSkK
CQkJCWJyZWFrCgkJCWVsaWYgISBlY2hvICRSRVBMWSB8IGdyZXAgLXFpRSAnXltbOmFsbnVtOl1d
Wy1fWzphbG51bTpdXSooXC5bLV9bOmFsbnVtOl1dKykqJCc7IHRoZW4KCQkJCW1lc3NhZ2UgaW52
YWxpZAoJCQllbHNlCgkJCQlDQV9DTj0kUkVQTFkKCQkJCWJyZWFrCgkJCWZpCgkJZG9uZQoJCW1l
c3NhZ2UgcHJvbXB0ICdDQSBvcmdhbmlzYXRpb24nCgkJd2hpbGUgcmVhZDsgZG8KCQkJaWYgWyAt
eiAiJFJFUExZIiBdOyB0aGVuCgkJCQlicmVhawoJCQllbGlmICEgZWNobyAkUkVQTFkgfCBncmVw
IC1xaUUgIl5bXC1fICdcLlwoXClbOmFsbnVtOl1dK1wkIjsgdGhlbgoJCQkJbWVzc2FnZSBpbnZh
bGlkCgkJCWVsc2UKCQkJCUNBX089JFJFUExZCgkJCQlicmVhawoJCQlmaQoJCWRvbmUKCQltZXNz
YWdlIHByb21wdCAnQ0EgZGl2aXNpb24vZGVwYXJ0bWVudCcKCQl3aGlsZSByZWFkOyBkbwoJCQlp
ZiBbIC16ICIkUkVQTFkiIF07IHRoZW4KCQkJCWJyZWFrCgkJCWVsaWYgISBlY2hvICRSRVBMWSB8
IGdyZXAgLXFpRSAiXltcLV8gJ1wuXChcKVs6YWxudW06XV0rXCQiOyB0aGVuCgkJCQltZXNzYWdl
IGludmFsaWQKCQkJZWxzZQoJCQkJQ0FfT1U9JFJFUExZCgkJCQlicmVhawoJCQlmaQoJCWRvbmUK
CQltZXNzYWdlIHByb21wdCAnQ0EgZGVwYXJ0bWVudCcKCQl3aGlsZSByZWFkOyBkbwoJCQlpZiBb
IC16ICIkUkVQTFkiIF07IHRoZW4KCQkJCWJyZWFrCgkJCWVsaWYgISBlY2hvICRSRVBMWSB8IGdy
ZXAgLXFpRSAiXltcLV8gJ1wuXChcKVs6YWxudW06XV0rXCQiOyB0aGVuCgkJCQltZXNzYWdlIGlu
dmFsaWQKCQkJZWxzZQoJCQkJQ0FfT1UyPSRSRVBMWQoJCQkJYnJlYWsKCQkJZmkKCQlkb25lCgkJ
bWVzc2FnZSBwcm9tcHQgJ0NBIGNpdHknCgkJd2hpbGUgcmVhZDsgZG8KCQkJaWYgWyAteiAiJFJF
UExZIiBdOyB0aGVuCgkJCQlicmVhawoJCQllbGlmICEgZWNobyAkUkVQTFkgfCBncmVwIC1xaUUg
Il5bLV8gJ1wuXChcKVs6YWxudW06XV0rXCQiOyB0aGVuCgkJCQltZXNzYWdlIGludmFsaWQKCQkJ
ZWxzZQoJCQkJQ0FfTD0kUkVQTFkKCQkJCWJyZWFrCgkJCWZpCgkJZG9uZQoJCW1lc3NhZ2UgcHJv
bXB0ICdDQSBzdGF0ZSBvciByZWdpb24nCgkJd2hpbGUgcmVhZDsgZG8KCQkJaWYgWyAteiAiJFJF
UExZIiBdOyB0aGVuCgkJCQlicmVhawoJCQllbGlmICEgZWNobyAkUkVQTFkgfCBncmVwIC1xaUUg
Il5bXC1fICdcLlwoXClbOmFsbnVtOl1dK1wkIjsgdGhlbgoJCQkJbWVzc2FnZSBpbnZhbGlkCgkJ
CWVsc2UKCQkJCUNBX1NUPSRSRVBMWQoJCQkJYnJlYWsKCQkJZmkKCQlkb25lCgkJbWVzc2FnZSBw
cm9tcHQgJ0NBIGNvdW50cnknCgkJd2hpbGUgcmVhZDsgZG8KCQkJaWYgWyAteiAiJFJFUExZIiBd
OyB0aGVuCgkJCQlicmVhawoJCQllbGlmICEgZWNobyAkUkVQTFkgfCBncmVwIC1xRSAnXltbOmFs
bnVtOl1dezJ9JCc7IHRoZW4KCQkJCW1lc3NhZ2UgaW52YWxpZAoJCQllbHNlCgkJCQlDQV9DPSRS
RVBMWQoJCQkJYnJlYWsKCQkJZmkKCQlkb25lCgkJbWVzc2FnZSBwcm9tcHQgJ0NBIGFkbWluaXN0
cmF0b3IgZW1haWwgYWRkcmVzcycKCQl3aGlsZSByZWFkOyBkbwoJCQlpZiAhIHZhbGlkYXRlX2Vt
YWlsICRSRVBMWTsgdGhlbgoJCQkJbWVzc2FnZSBpbnZhbGlkCgkJCWVsc2UKCQkJCUNBX2VtYWls
PSRSRVBMWQoJCQkJYnJlYWsKCQkJZmkKCQlkb25lCgkJaWYgbWVzc2FnZSBpc195ZXMgJ1JlcXVp
cmUgYWRkaXRpb25hbCBwYXNzd29yZCBmb3IgQ0Egb3BlcmF0aW9ucz8nOyB0aGVuCgkJCW1lc3Nh
Z2UgcHJvbXB0ICdQYXNzd29yZCcKCQkJd2hpbGUgcmVhZCAtczsgZG8KCQkJCWVjaG8gJycKCQkJ
CWlmIFsgLXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJCW1lc3NhZ2UgaW52YWxpZCAnUGFzc3dvcmQg
bXVzdCBub3QgYmUgZW1wdHknCgkJCQllbGlmICEgdmFsaWRhdGVfcGFzc3dvcmQgIiRSRVBMWSI7
IHRoZW4KCQkJCQltZXNzYWdlIGludmFsaWQgJ1Bhc3N3b3JkIGNhbm5vdCBiZSBvdmVyIDIwIGNo
YXJhY3RlcnMnCgkJCQllbHNlCgkJCQkJQ0FfcGFzc3dvcmQ9JFJFUExZCgkJCQkJYnJlYWsKCQkJ
CWZpCgkJCWRvbmUKCQkJbWVzc2FnZSBwcm9tcHQgJ0NvbmZpcm0gcGFzc3dvcmQnCgkJCXdoaWxl
IHJlYWQgLXM7IGRvCgkJCQllY2hvICcnCgkJCQlpZiBbICEgIiRSRVBMWSIgPSAiJHtDQV9wYXNz
d29yZH0iIF07IHRoZW4KCQkJCQltZXNzYWdlIGludmFsaWQgJ1Bhc3N3b3JkcyBkbyBub3QgbWF0
Y2gnCgkJCQllbHNlCgkJCQkJbG9ja2VkPXllcwoJCQkJCWJyZWFrCgkJCQlmaQoJCQlkb25lCgkJ
ZmkKCQllY2hvIC1lICIjIS9iaW4vYmFzaFxuaW50ZW50PSRpbnRlbnRcbnR5cGU9JHR5cGVcbkNB
X2JpdHM9JHtDQV9iaXRzfVxuQ0FfZGF5cz0ke0NBX2RheXN9XG5DQV9DTj1cIiR7Q0FfQ059XCJc
bkNBX09VPVwiJHtDQV9PVX1cIlxuQ0FfT1UyPVwiJHtDQV9PVTJ9XCJcbkNBX089XCIke0NBX099
XCJcbkNBX0w9XCIke0NBX0x9XCJcbkNBX1NUPVwiJHtDQV9TVH1cIlxuQ0FfQz0ke0NBX0N9XG5D
QV9lbWFpbD1cIiR7Q0FfZW1haWx9XCIiID4gJHtTV0FQfV9wcm9maWxlLy5pbW11dGFibGUKCWVs
c2UgI2ludGVybWVkaWF0ZSBicmFuY2ggKGltcG9ydCBhIGNlcnRpZmljYXRlIGFuZCBhIGtleSBm
aWxlKQoJCW1lc3NhZ2UgcHJvbXB0ICdDQSBrZXkgZmlsZScKCQl3aGlsZSByZWFkOyBkbwoJCQlp
ZiBbICEgLXIgIiRSRVBMWSIgXTsgdGhlbgoJCQkJbWVzc2FnZSBpbnZhbGlkICdGaWxlIG5vdCBm
b3VuZCBvciBub3QgYWNjZXNzaWJsZS4nCgkJCWVsc2UKCQkJCWtleWZpbGU9JFJFUExZCgkJCQli
cmVhawoJCQlmaQoJCWRvbmUKCQltZXNzYWdlIHByb21wdCAnUGFzc3dvcmQgZm9yIGtleWZpbGUg
KFtFTlRFUl0gZm9yIG5vbmUpJwoJCXdoaWxlIHJlYWQgLXM7IGRvCgkJCWVjaG8gJycKCQkJaWYg
WyAhIC16ICIkUkVQTFkiIF07IHRoZW4KCQkJCWlmICEgdmFsaWRhdGVfcGFzc3dvcmQgJFJFUExZ
OyB0aGVuCgkJCQkJbWVzc2FnZSBpbnZhbGlkICdNdXN0IGJlIGEgYWxwaGFudW1lcmljIHBhc3N3
b3JkIGJldHdlZW4gOCBhbmQgMjAgY2hhcmFjdGVycy4nCgkJCQllbHNlCgkJCQkJQ0FfcGFzc3dv
cmQ9JFJFUExZCgkJCQkJbG9ja2VkPXllcwoJCQkJCWJyZWFrCgkJCQlmaQoJCQllbHNlCgkJCQli
cmVhawoJCQlmaQoJCWRvbmUKCQlpZiBbICIkbG9ja2VkIiA9ICd5ZXMnIF07IHRoZW4gI2RpZmZl
cmVudCBwYXRocyBkZXBlbmRpbmcgb24gd2hldGhlciBrZXkgaXMgbG9ja2VkIHdpdGggYSBwYXNz
d29yZCBvciBub3QKCQkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCByc2EgLWluIFwiJGtleWZpbGVc
IiAtdGV4dCAtY2hlY2sgLXBhc3NpbiBwYXNzOicqKioqKioqKiciCgkJCW9wZW5zc2wgcnNhIC1p
biAiJGtleWZpbGUiIC10ZXh0IC1jaGVjayAtcGFzc2luIHBhc3M6IiR7Q0FfcGFzc3dvcmR9IiAm
PiRTV0FQCgkJCVJDPSQ/CgkJZWxzZQoJCQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIHJzYSAtaW4g
XCIka2V5ZmlsZVwiIC10ZXh0IC1jaGVjayIKCQkJb3BlbnNzbCByc2EgLWluICIka2V5ZmlsZSIg
LXRleHQgLWNoZWNrICY+JFNXQVAKCQkJUkM9JD8KCQlmaQoJCW1lc3NhZ2UgZGVidWcgIiQoY2F0
ICRTV0FQKSIKCQlpZiAoKFJDIT0wKSk7IHRoZW4KCQkJbWVzc2FnZSBlcnJvciAiRmFpbGVkIHRv
IG9wZW4ga2V5IGZpbGUgJyRrZXlmaWxlJy4gRmlsZSBub3QgZm91bmQgb3Igbm90IGFjY2Vzc2li
bGUgb3IgYmFkIHBhc3N3b2QuIgoJCQlncmFjZWZ1bF9leGl0IDIKCQlmaQoJCUNBX2JpdHM9JChn
cmVwIC1pb0UgJ1tbOmRpZ2l0Ol1dKyBiaXQnICRTV0FQIHwgY3V0IC1kJyAnIC1mMSkKCQltZXNz
YWdlIHByb21wdCAnQ0EgY2VydGlmaWNhdGUgZmlsZScKCQl3aGlsZSByZWFkOyBkbwoJCQlpZiBb
ICEgLXIgIiRSRVBMWSIgXTsgdGhlbgoJCQkJbWVzc2FnZSBpbnZhbGlkICdGaWxlIG5vdCBmb3Vu
ZCBvciBub3QgYWNjZXNzaWJsZS4nCgkJCWVsc2UKCQkJCWNlcnQ9JFJFUExZCgkJCQlicmVhawoJ
CQlmaQoJCWRvbmUKCQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIHg1MDkgLWluIFwiJFJFUExZXCIg
LW5vb3V0IC1zdWJqZWN0IC1lbmRkYXRlIgoJCWlmICEgb3BlbnNzbCB4NTA5IC1pbiAiJFJFUExZ
IiAtbm9vdXQgLXN1YmplY3QgLWVuZGRhdGUgJj4kU1dBUDsgdGhlbgoJCQltZXNzYWdlIGRlYnVn
ICIkKGNhdCAkU1dBUCkiCgkJCW1lc3NhZ2UgZXJyb3IgIkZhaWxlZCB0byBvcGVuIGNlcnRpZmlj
YXRlICckY2VydCcuIEZpbGUgbm90IGZvdW5kIG9yIG5vdCBhY2Nlc3NpYmxlLiIKCQkJZ3JhY2Vm
dWxfZXhpdCAyCgkJZmkKCQltZXNzYWdlIGRlYnVnICIkKGNhdCAkU1dBUCkiCgkJIydeWy1fXC5b
OmFsbnVtOl1dK0AoW1s6YWxudW06XV9cLV0rXC4pK1tbOmFscGhhOl1dezIsM30oXC5bWzphbHBo
YTpdXXsyfSk/JCcKCQkjQ0FfZGF5cz0kKGdyZXAgLWlvRSAnbm90IGFmdGVyJyAkU1dBUCB8IGN1
dCAtZCc6JyAtZjIgfCBzZWQgLXIgJ3MvXiAqLy9nJykKCQlDQV9kYXlzPSQoZ3JlcCAtaUUgJ15u
b3RhZnRlcicgJFNXQVAgfCBjdXQgLWQnPScgLWYyKQoJCWdyZXAgLWlFICdec3ViamVjdCcgJFNX
QVAgfCBjdXQgLWQnPScgLWYyLSB8IHNlZCAtciAicy8oW1s6YWxwaGE6XV17MSwyMH0pID0gKFte
LF0qKSgsICk/L1wxPVwyXG4vZyIgPiAke1NXQVB9MgoJCXg9MAoJCXsKCQkJd2hpbGUgcmVhZDsg
ZG8KCQkJCWNhc2UgJChlY2hvICRSRVBMWSB8IGN1dCAtZCc9JyAtZjEpIGluCgkJCQkJQyB8IGMg
KQoJCQkJCQlDQV9DPSQoZWNobyAkUkVQTFkgfCBjdXQgLWQnPScgLWYyKQoJCQkJCQk7OwoJCQkJ
CVNUIHwgc3QgfCBTdCApCgkJCQkJCUNBX1NUPSQoZWNobyAkUkVQTFkgfCBjdXQgLWQnPScgLWYy
KQoJCQkJCQk7OwoJCQkJCU8gfCBvICkKCQkJCQkJQ0FfTz0kKGVjaG8gJFJFUExZIHwgY3V0IC1k
Jz0nIC1mMikKCQkJCQkJOzsKCQkJCQlPVSB8IG91IHwgT3UgKQoJCQkJCQlpZiAoKHg9PTApKTsg
dGhlbgoJCQkJCQkJQ0FfT1U9JChlY2hvICRSRVBMWSB8IGN1dCAtZCc9JyAtZjIpCgkJCQkJCQko
KHgrKykpCgkJCQkJCWVsc2UKCQkJCQkJCUNBX09VMj0kKGVjaG8gJFJFUExZIHwgY3V0IC1kJz0n
IC1mMikKCQkJCQkJZmkKCQkJCQkJOzsKCQkJCQlMIHwgbCApCgkJCQkJCUNBX0w9JChlY2hvICRS
RVBMWSB8IGN1dCAtZCc9JyAtZjIpCgkJCQkJCTs7CgkJCQkJQ04gfCBjbiB8IENuICkKCQkJCQkJ
Q0FfQ049JChlY2hvICRSRVBMWSB8IGN1dCAtZCc9JyAtZjIpCgkJCQkJCTs7CgkJCQkJZW1haWxB
ZGRyZXNzIHwgRW1haWxBZGRyZXNzIHwgZW1haWxhZGRyZXNzICkKCQkJCQkJQ0FfZW1haWw9JChl
Y2hvICRSRVBMWSB8IGN1dCAtZCc9JyAtZjIpCgkJCQkJCTs7CgkJCQllc2FjCgkJCWRvbmUKCQl9
IDwgJHtTV0FQfTIKCQlpZiBtZXNzYWdlIGlzX3llcyAnSW1wb3J0IGEgcm9vdCBjZXJ0aWZpY2F0
ZSBjaGFpbj8nOyB0aGVuCgkJCW1lc3NhZ2UgcHJvbXB0ICdSb290IGNlcnRpZmljYXRlIGNoYWlu
IGZpbGUnCgkJCXdoaWxlIHJlYWQ7IGRvCgkJCQlpZiBbICEgLXIgIiRSRVBMWSIgXTsgdGhlbgoJ
CQkJCW1lc3NhZ2UgaW52YWxpZCAnRmlsZSBub3QgZm91bmQgb3Igbm90IGFjY2Vzc2libGUuJwoJ
CQkJZWxzZQoJCQkJCXJvb3Q9JFJFUExZCgkJCQkJYnJlYWsKCQkJCWZpCgkJCWRvbmUKCQlmaQoJ
CWVjaG8gLWUgIiMhL2Jpbi9iYXNoXG5pbnRlbnQ9JGludGVudFxudHlwZT0kdHlwZVxuQ0FfYml0
cz0ke0NBX2JpdHN9XG5DQV9DTj1cIiR7Q0FfQ059XCJcbkNBX09VPVwiJHtDQV9PVX1cIlxuQ0Ff
T1UyPVwiJHtDQV9PVTJ9XCJcbkNBX089XCIke0NBX099XCJcbkNBX0w9XCIke0NBX0x9XCJcbkNB
X1NUPVwiJHtDQV9TVH1cIlxuQ0FfQz0ke0NBX0N9XG5DQV9lbWFpbD1cIiR7Q0FfZW1haWx9XCIi
ID4gJHtTV0FQfV9wcm9maWxlLy5pbW11dGFibGUKCWZpCgljaG1vZCAwNzcwICR7U1dBUH1fcHJv
ZmlsZS8uaW1tdXRhYmxlCgkjQ2FsbCBwcm9maWxlIGVkaXRvciB0byBzZXR1cCB0aGUgZWRpdGFi
bGUgcGFydHMgb2YgdGhlIHByb2ZpbGUKCWVkaXRfcHJvZmlsZSAke1NXQVB9X3Byb2ZpbGUKCSNM
ZXQncyBnZXQgcm9sbGluZyBhbmQgc2V0dXAgdGhlIGNvbW1vbiBwYXJ0cyBvZiB0aGUgQ0EKCW1l
c3NhZ2UgdmVyYm9zZSAiQ3JlYXRpbmcgZGF0YXN0b3JlICckREFUQS8kQ0EnLiIKCW1rZGlyICIk
REFUQS8kQ0EiCgljZCAiJERBVEEvJENBIgoJbWtkaXIgJHtDRVJUX0RJUn0KCW1rZGlyICR7S0VZ
X0RJUn0KCW1rZGlyICR7UkVRU19ESVJ9Cglta2RpciAke0NSTF9ESVJ9Cgl0b3VjaCAucmFuZAoJ
bXYgJHtTV0FQfV9wcm9maWxlL29wZW5zc2wuY25mIC4vCgltZXNzYWdlIHZlcmJvc2UgJ0NyZWF0
aW5nIENBIGluZGV4IGZpbGUuJwoJdG91Y2ggaW5kZXgudHh0CgllY2hvIC1lICJ5XG55IiA+IC5h
dXRvYWNjZXB0CgltZXNzYWdlIHZlcmJvc2UgJ0NyZWF0aW5nIENBIHNlcmlhbCBudW1iZXIgZmls
ZSAoYmFzZSBzZXJpYWw9MTAwMDAwMDApLicKCWVjaG8gJzk4OTY4MCcgPiBjYS5zcmwKCW1lc3Nh
Z2UgdmVyYm9zZSAnQ3JlYXRpbmcgQ1JMIG51bWJlciBmaWxlIChiYXNlIHNlcmlhbD0xMDAwMDAw
MCkuJwoJZWNobyAnOTg5NjgwJyA+IGNybC5zcmwKCSNOb3cgbGV0cyBicmFuY2ggb2ZmIGFnYWlu
IGRlcGVuZGluZyBvbiBob3cgd2UgYXJlIGNyZWF0aW5nIHRoZSBDQQoJaWYgWyAkdHlwZSA9ICdz
ZWxmLXNpZ25lZCcgXTsgdGhlbiAjc2VsZi1zaWduZWQgYnJhbmNoCgkJbWVzc2FnZSB2ZXJib3Nl
ICJHZW5lcmF0aW5nICR7Q0FfYml0c30gYml0IFJTQSBrZXkgZm9yIENBLiIKCQlpZiBbICIkbG9j
a2VkIiA9ICd5ZXMnIF07IHRoZW4KCQkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCBnZW5yc2EgLWFl
czEyOCAtb3V0IGNhLmtleSAtcGFzc291dCBwYXNzOicqKioqKioqKicgJHtDQV9iaXRzfSAiCgkJ
CW9wZW5zc2wgZ2VucnNhIC1hZXMxMjggLW91dCBjYS5rZXkgLXBhc3NvdXQgcGFzczoiJHtDQV9w
YXNzd29yZH0iICR7Q0FfYml0c30gJj4ke1NXQVB9CgkJZWxzZQoJCQltZXNzYWdlIGRlYnVnICJv
cGVuc3NsIGdlbnJzYSAtb3V0IGNhLmtleSAke0NBX2JpdHN9IgoJCQlvcGVuc3NsIGdlbnJzYSAt
b3V0IGNhLmtleSAke0NBX2JpdHN9ICY+JHtTV0FQfQoJCWZpCgkJbWVzc2FnZSBkZWJ1ZyAiJChj
YXQgJFNXQVApIgoJCW1lc3NhZ2UgdmVyYm9zZSAiQ3JlYXRpbmcgYSBzaWduaW5nIHJlcXVlc3Qg
Zm9yIENBIGNlcnRpZmljYXRlLiIKCQljcCAkQ09ORi91c3JfY2VydC5leHQgJHtTV0FQfS5leHQK
CQllY2hvICJiYXNpY0NvbnN0cmFpbnRzPUNBOlRSVUUiID4+ICR7U1dBUH0uZXh0CgkJYXR0YWNo
X0NSTF9wYXRocwoJCWVjaG8gLWUgIiR7Q0FfQzo9Ln1cbiR7Q0FfU1Q6PS59XG4ke0NBX0w6PS59
XG4ke0NBX086PS59XG4ke0NBX09VOj0ufVxuJHtDQV9PVTI6PS59XG4ke0NBX0NOfVxuJHtDQV9l
bWFpbDo9Ln1cbi5cbi5cbiIgPiAkU1dBUAoJCWlmIFsgIiRsb2NrZWQiID0gJ3llcycgXTsgdGhl
bgoJCQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIHJlcSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLW5l
dyAta2V5IGNhLmtleSAtcGFzc2luIHBhc3M6JyoqKioqKioqJyAtb3V0IGNhLmNzclxuV2l0aCBw
YXJhbWV0ZXJzOlxuJChjYXQgJFNXQVApIgoJCQlvcGVuc3NsIHJlcSAtY29uZmlnIC4vb3BlbnNz
bC5jbmYgLW5ldyAta2V5IGNhLmtleSAtcGFzc2luIHBhc3M6IiR7Q0FfcGFzc3dvcmR9IiAtb3V0
IGNhLmNzciA8ICRTV0FQICY+JHtTV0FQfTIKCQllbHNlCgkJCW1lc3NhZ2UgZGVidWcgIm9wZW5z
c2wgcmVxIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtbmV3IC1rZXkgY2Eua2V5IC1vdXQgY2EuY3Ny
XG5XaXRoIHBhcmFtZXRlcnM6XG4kKGNhdCAkU1dBUCkiCgkJCW9wZW5zc2wgcmVxIC1jb25maWcg
Li9vcGVuc3NsLmNuZiAtbmV3IC1rZXkgY2Eua2V5IC1vdXQgY2EuY3NyIDwgJFNXQVAgJj4ke1NX
QVB9MgoJCWZpCgkJbWVzc2FnZSBkZWJ1ZyAiJChjYXQgJHtTV0FQfTIpIgoJCXJtIC1mICR7U1dB
UH0yIDI+Ji0KCQltZXNzYWdlIHZlcmJvc2UgIkNyZWF0aW5nIHNlbGYtc2lnZWQgQ0EgY2VydGlm
aWN0ZS4iCgkJaWYgWyAiJGxvY2tlZCIgPSAneWVzJyBdOyB0aGVuCgkJCW1lc3NhZ2UgZGVidWcg
Im9wZW5zc2wgeDUwOSAtQ0FzZXJpYWwgY2Euc3JsIC1yZXEgLWRheXMgJHtDQV9kYXlzfSAtaW4g
Y2EuY3NyIC1zaWdua2V5IGNhLmtleSAtcGFzc2luIHBhc3M6JyoqKioqKioqJyAtb3V0IGNhLmNy
dCAtZXh0ZmlsZSAke1NXQVB9LmV4dCIKCQkJb3BlbnNzbCB4NTA5IC1DQXNlcmlhbCBjYS5zcmwg
LXJlcSAtZGF5cyAke0NBX2RheXN9IC1pbiBjYS5jc3IgLXNpZ25rZXkgY2Eua2V5IC1wYXNzaW4g
cGFzczoiJHtDQV9wYXNzd29yZH0iIC1vdXQgY2EuY3J0IC1leHRmaWxlICR7U1dBUH0uZXh0ICY+
JHtTV0FQfQoJCWVsc2UKCQkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCB4NTA5IC1DQXNlcmlhbCBj
YS5zcmwgLXJlcSAtZGF5cyAke0NBX2RheXN9IC1pbiBjYS5jc3IgLXNpZ25rZXkgY2Eua2V5IC1z
aGEyNTYgLW91dCBjYS5jcnQgLWV4dGZpbGUgJHtTV0FQfS5leHQiCgkJCW9wZW5zc2wgeDUwOSAt
Q0FzZXJpYWwgY2Euc3JsIC1yZXEgLWRheXMgJHtDQV9kYXlzfSAtaW4gY2EuY3NyIC1zaWdua2V5
IGNhLmtleSAtc2hhMjU2IC1vdXQgY2EuY3J0IC1leHRmaWxlICR7U1dBUH0uZXh0ICY+JHtTV0FQ
fQoJCWZpCgkJbWVzc2FnZSBkZWJ1ZyAiJChjYXQgJFNXQVApIgoJCXJtIC1mIGNhLmNzcgoJZWxz
ZSAjaW50ZXJtZWRpYXRlIGJyYW5jaAoJCW1lc3NhZ2UgdmVyYm9zZSAiQ29weWluZyAnJGtleWZp
bGUnIHRvICdjYS5rZXknLlxuQ29weWluZyAnJGNlcnQnIHRvICdjYS5jcnQnLiIKCQljcCAiJGtl
eWZpbGUiIGNhLmtleQoJCWNwICIkY2VydCIgY2EuY3J0CgkJaWYgWyAtbiAiJHJvb3QiIF07IHRo
ZW4KCQkJbWVzc2FnZSB2ZXJib3NlICJDb3B5aW5nICckcm9vdCcgdG8gJ3Jvb3QuY3J0JyBhbmQg
YXBwZW5kaW5nIHdpdGggJ2NhLmNydCcuIgoJCQljcCAiJHJvb3QiIHJvb3QuY3J0CgkJCWNhdCBj
YS5jcnQgPj4gcm9vdC5jcnQKCQlmaQoJZmkKCSNhbmQgYmFjayB0byBjb21tb24gdGFza3MgZm9y
IHRoZSBjbGVhbnVwLiAKCW1lc3NhZ2UgdmVyYm9zZSAiQ3JlYXRpbmcgREVSIGVuY29kZWQgY2Vy
dGlmaWNhdGUgZm9yIE1TSUUgaW4gJyREQVRBLyRDQS9jYWNlcnQuY3J0Jy4iCgltZXNzYWdlIGRl
YnVnICJvcGVuc3NsIHg1MDkgLWluIGNhLmNydCAtb3V0IGNhY2VydC5jcnQgLW91dGZvcm0gREVS
IgoJaWYgISBvcGVuc3NsIHg1MDkgLWluIGNhLmNydCAtb3V0IGNhY2VydC5jcnQgLW91dGZvcm0g
REVSICY+JHtTV0FQfTsgdGhlbgoJCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRTV0FQKSIKCQltZXNz
YWdlIGVycm9yICJUaGVyZSBzZWVtcyB0byBiZSBhIHByb2JsZW0uIEl0IGlzIGxpa2VseSB0aGF0
IHRoZSBDQSBpcyBicm9rZW4uIgoJCWdyYWNlZnVsX2V4aXQgMgoJZmkKCW1lc3NhZ2UgZGVidWcg
IiQoY2F0ICRTV0FQKSIKCW1lc3NhZ2UgdmVyYm9zZSAnQ3JlYXRpbmcgQ2VydGlmaWNhdGUgUmV2
b2NhdGlvbiBMaXN0IChDUkwpIGZpbGUuJwoJaWYgWyAiJGxvY2tlZCIgPSAneWVzJyBdOyB0aGVu
CgkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCBjYSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLXBhc3Np
biBwYXNzOicqKioqKioqKicgLWdlbmNybCAtb3V0ICR7Q1JMX0RJUn0vY2EuY3JsIgoJCW9wZW5z
c2wgY2EgLWNvbmZpZyAuL29wZW5zc2wuY25mIC1wYXNzaW4gcGFzczoiJHtDQV9wYXNzd29yZH0i
IC1nZW5jcmwgLW91dCAke0NSTF9ESVJ9L2NhLmNybCAmPiR7U1dBUH0KCQlSQz0kPwoJZWxzZQoJ
CW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgY2EgLWNvbmZpZyAuL29wZW5zc2wuY25mIC1nZW5jcmwg
LW91dCAke0NSTF9ESVJ9L2NhLmNybCIKCQlvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNu
ZiAtZ2VuY3JsIC1vdXQgJHtDUkxfRElSfS9jYS5jcmwgJj4ke1NXQVB9CgkJUkM9JD8KCWZpCglt
ZXNzYWdlIGRlYnVnICIkKGNhdCAkU1dBUCkiCglpZiAoKFJDIT0wKSk7IHRoZW4KCQltZXNzYWdl
IGVycm9yICJGYWlsZWQgdG8gZ2VuZXJhdGUgQ1JMLiIKCQlncmFjZWZ1bF9leGl0IDIKCWZpCglt
diAke1NXQVB9X3Byb2ZpbGUvLmltbXV0YWJsZSAkREFUQS8kQ0EvLmltbXV0YWJsZQoJbXYgJHtT
V0FQfV9wcm9maWxlLy5wcm9maWxlICREQVRBLyRDQS8ucHJvZmlsZQoJbXYgJHtTV0FQfV9wcm9m
aWxlLy5zZXRlbnYgJERBVEEvJENBLy5zZXRlbnYKCXVwZGF0ZV9wZXJtaXNzaW9ucwoJdXBkYXRl
X2NybCAiJHtDQV9wYXNzd29yZH0iCgltZXNzYWdlIGluZm8gJ05ldyBDZXJ0aWZpY2F0ZSBBdXRo
b3JpdHkgY3JlYXRlZC4nCn0KCiMgQXR0YWNoIENSTCBEaXN0cmlidXRpb24gUG9pbnRzIHRvIGV4
dGVuc2lvbiBmaWxlCmZ1bmN0aW9uIGF0dGFjaF9DUkxfcGF0aHMgewoJaWYgWyAtbiAiJHtDUkxf
cGF0aH0iIF07IHRoZW4KCQllY2hvICJjcmxEaXN0cmlidXRpb25Qb2ludHM9VVJJOiQoZWNobyAt
biAke0NSTF9wYXRofSB8IHNlZCAtciAicy8sLyxVUkk6L2ciKSIgPj4gJHtTV0FQfS5leHQKCWZp
Cn0KCiMgQ2hhbmdlIHRoZSBlZGl0YWJsZSBwYXJ0cyBvZiBhIENBIGNvbmZpZ3VyYXRpb24KIyAx
ID0gcHJvZmlsZSBzdG9yYWdlIGRpcgpmdW5jdGlvbiBlZGl0X3Byb2ZpbGUgewoJI0xvYWQgYSBw
cm9maWxlIGltbXV0YWJsZXMKCWlmIFsgLXIgJDEvLmltbXV0YWJsZSBdOyB0aGVuCgkJLiAkMS8u
aW1tdXRhYmxlCglmaQoJI0xvYWQgcHJvZmlsZSBlZGl0YWJsZQoJaWYgWyAtciAkMS8ucHJvZmls
ZSBdOyB0aGVuCgkJLiAkMS8ucHJvZmlsZQoJZmkKCW1lc3NhZ2UgcHJvbXB0ICJJc3N1ZWQga2V5
cyBiaXQgbGVuZ3RoIFske2JpdHM6PTIwNDh9XSIKCXdoaWxlIHJlYWQ7IGRvCgkJaWYgWyAteiAi
JFJFUExZIiBdOyB0aGVuCgkJCWJyZWFrCgkJZWxpZiAhIGVjaG8gJFJFUExZIHwgZ3JlcCAtcUUg
J15bWzpkaWdpdDpdXXsyLDR9JCcgfHwgKChSRVBMWTw0OCkpIHx8ICgoUkVQTFk+ODE5MikpOyB0
aGVuCgkJCW1lc3NhZ2UgaW52YWxpZCAnTXVzdCBiZSBhIGludGVnZXIgYmV0d2VlbiA0OCBhbmQg
ODE5Mi4nCgkJZWxzZQoJCQliaXRzPSRSRVBMWQoJCQlicmVhawoJCWZpCglkb25lCgltZXNzYWdl
IHByb21wdCAiSXNzdWVkIGNlcnRpZmljYXRlcyB2YWxpZGl0eSBwZXJpb2QgKGRheXMpIFske2Rh
eXM6PTczMH1dIgoJd2hpbGUgcmVhZDsgZG8KCQlpZiBbIC16ICIkUkVQTFkiIF07IHRoZW4KCQkJ
YnJlYWsKCQllbGlmICEgZWNobyAkUkVQTFkgfCBncmVwIC1xRSAnXltbOmRpZ2l0Ol1dezIsNX0k
JyB8fCAoKFJFUExZPDMwKSkgfHwgKChSRVBMWT4yMDAwMCkpOyB0aGVuCgkJCW1lc3NhZ2UgaW52
YWxpZCAnTXVzdCBiZSBhIGludGVnZXIgYmV0d2VlbiAzMCBhbmQgMjAwMDAuJwoJCWVsc2UKCQkJ
ZGF5cz0kUkVQTFkKCQkJYnJlYWsKCQlmaQoJZG9uZQoJaWYgbWVzc2FnZSBpc195ZXMgIlJlc3Ry
aWN0IGlzc3VlZCBjZXJ0aWZpY2F0ZXMgYnkgT3JnYW5pc2F0aW9uIChtdXN0IG1hdGNoICcke0NB
X099Jz8iOyB0aGVuCgkJcmVzdHJpY3RfTz1tYXRjaAoJCXJlc3RyaWN0X09zPScqJwoJZmkKCWlm
IG1lc3NhZ2UgaXNfeWVzICJSZXN0cmljdCBpc3N1ZWQgY2VydGlmaWNhdGVzIGJ5IDFzdCBEZXBh
cnRtZW50IChtdXN0IG1hdGNoICcke0NBX09VfScpPyI7IHRoZW4KCQlyZXN0cmljdF9PVT1tYXRj
aAoJCXJlc3RyaWN0X09Vcz0nKicKCWZpCglpZiBtZXNzYWdlIGlzX3llcyAiUmVzdHJpY3QgaXNz
dWVkIGNlcnRpZmljYXRlcyBieSBDaXR5IChtdXN0IG1hdGNoICcke0NBX0x9Jyk/IjsgdGhlbgoJ
CXJlc3RyaWN0X0w9bWF0Y2gKCQlyZXN0cmljdF9Mcz0nKicKCWZpCglpZiBtZXNzYWdlIGlzX3ll
cyAiUmVzdHJpY3QgaXNzdWVkIGNlcnRpZmljYXRlcyBieSBTdGF0ZSBvciBSZWdpb24gKG11c3Qg
bWF0Y2ggJyR7Q0FfU1R9Jyk/IjsgdGhlbgoJCXJlc3RyaWN0X1NUPW1hdGNoCgkJcmVzdHJpY3Rf
U1RzPScqJwoJZmkKCWlmIG1lc3NhZ2UgaXNfeWVzICJSZXN0cmljdCBpc3N1ZWQgY2VydGlmaWNh
dGVzIGJ5IENvdW50cnkgKG11c3QgbWF0Y2ggJyR7Q0FfQ30nKT8iOyB0aGVuCgkJcmVzdHJpY3Rf
Qz1tYXRjaAoJCXJlc3RyaWN0X0NzPScqJwoJZmkKCWlmIG1lc3NhZ2UgaXNfeWVzICJQcm90ZWN0
IGlzc3VlZCBrZXlzIHdpdGggYSBwYXNzd29yZCBbJHtrZXlwYXNzOi1ub31dPyI7IHRoZW4KCQlr
ZXlwYXNzPSd5ZXMnCglmaQoJaWYgbWVzc2FnZSBpc195ZXMgJ1B1Ymxpc2ggYSBVUkwgZm9yIHRo
ZSBDZXJ0aWZpY2F0ZSBSZXZvY2F0aW9uIExpc3QgKENSTCk/JzsgdGhlbgoJCW49MAoJCW1lc3Nh
Z2UgcHJvbXB0ICdDUkwgVVJMIHBhdGgnCgkJd2hpbGUgcmVhZDsgZG8KCQkJaWYgISBlY2hvICIk
UkVQTFkiIHwgZ3JlcCAtcWlFICdeKGh0dHBzPzovLylbXls6c3BhY2U6XV0rJCc7IHRoZW4KCQkJ
CW1lc3NhZ2UgaW52YWxpZCAiVVJMcyBtdXN0IGJlZ2luIHdpdGggJ2h0dHA6Ly8nIG9yICdodHRw
czovLycgZm9sbG93ZWQgYnkgYSB2YWxpZCBsb2NhdGlvbi4iCgkJCWVsc2UKCQkJCUNSTF9wYXRo
WyRuXT0kUkVQTFkKCQkJCSgobisrKSkKCQkJCWlmIG1lc3NhZ2UgaXNfeWVzICdBZGQgYW5vdGhl
ciBDUkwgVVJMPyc7IHRoZW4KCQkJCQltZXNzYWdlIHByb21wdCAnQ1JMIFVSTCBwYXRoJwoJCQkJ
ZWxzZQoJCQkJCWJyZWFrCgkJCQlmaQoJCQlmaQoJCWRvbmUKCQlDUkxfcGF0aD0kKGVjaG8gLW4g
JHtDUkxfcGF0aFtAXX0gfCBzZWQgLXIgInMvIC8sL2ciKQoJCW1lc3NhZ2UgcHJvbXB0ICdDUkwg
dmFsaWQgZGF5cycKCQl3aGlsZSByZWFkOyBkbwoJCQlpZiAhIGVjaG8gIiRSRVBMWSIgfCBncmVw
IC1xRSAnXlsxLTldW1s6ZGlnaXQ6XV17MCwyfSQnOyB0aGVuCgkJCQltZXNzYWdlIGludmFsaWQg
J011c3QgYmUgYmV0d2VlbiAxIGFuZCA3MzAgZGF5cy4nCgkJCWVsc2UKCQkJCUNSTF9kYXlzPSRS
RVBMWQoJCQkJYnJlYWs7CgkJCWZpCgkJZG9uZQoJCWlmIFsgISAiJGxvY2tlZCIgPSAneWVzJyBd
OyB0aGVuICNiZWNhdXNlIHdlIG9ubHkgb2ZmZXIgYXV0byB1cGRhdGVzIGZvciBub24gcGFzc3dv
cmQgcHJvdGVjdGVkIENBcwoJCQlpZiBtZXNzYWdlIGlzX3llcyAiQ1JMIGF1dG8gdXBkYXRlIGV2
ZXJ5ICQoKCR7Q1JMX2RheXN9LTEpKSBkYXlzPyI7IHRoZW4KCQkJCUNSTF91cGRhdGU9eWVzCgkJ
CWVsc2UKCQkJCUNSTF91cGRhdGU9bm8KCQkJZmkKCQlmaQoJCWlmIG1lc3NhZ2UgaXNfeWVzICdD
b3B5IENSTCB0byBhbHRlcm5hdGUgZmlsZSBwYXRoIG9uIHVwZGF0ZT8nOyB0aGVuCgkJCW1lc3Nh
Z2UgcHJvbXB0ICdDUkwgZmlsZSBwYXRoJwoJCQl3aGlsZSByZWFkOyBkbwoJCQkJaWYgWyAteiAi
JFJFUExZIiBdOyB0aGVuCgkJCQkJbWVzc2FnZSBpbnZhbGlkICdQYXRoIHJlcXVpcmVkLicKCQkJ
CWVsaWYgWyAtZCAiJFJFUExZIiBdOyB0aGVuCgkJCQkJbWVzc2FnZSBpbnZhbGlkICdGaWxlIG5h
bWUgZXhwZWN0ZWQsIG5vdCBhIGRpcmVjdG9yeS4nCgkJCQllbGlmIFsgISAtZCAiJChkaXJuYW1l
ICIkUkVQTFkiKSIgXTsgdGhlbgoJCQkJCW1lc3NhZ2UgaW52YWxpZCAnRGlyZWN0b3J5IG5vdCBm
b3VuZC4nCgkJCQllbHNlCgkJCQkJQ1JMX2V4cG9ydF9wYXRoPSIkUkVQTFkiCgkJCQkJYnJlYWsK
CQkJCWZpCgkJCWRvbmUKCQlmaQoJZmkKCW1lc3NhZ2UgaW5mbyAiCkNlcnRpZmljYXRlIEF1dGhv
cml0eSBzdW1tYXJ5IGZvciAnJENBJwooZmllbGRzIG1hcmtlZCAqIHdpbGwgZW5mb3JjZSBtYXRj
aGluZyBpbiBpc3N1ZWQgY2VydGlmaWNhdGVzKQoKICAgICAgICAgICAgICAgICAgIFR5cGU6ICR0
eXBlCiAgICAgICBBdXRob3JpdHkgSW50ZW50OiAkaW50ZW50CgogICAgICAgICAgQ0Ega2V5IGxl
bmd0aDogJHtDQV9iaXRzfQogICAgIENBIHZhbGlkaXR5IHBlcmlvZDogJHtDQV9kYXlzfQogIENB
IGlzIHBhc3N3b3JkIGxvY2tlZDogJHtsb2NrZWQ6PW5vfQogICAgQ0EgQ29tbW9uIE5hbWUgKENO
KTogJHtDQV9DTn0KICAgIENBIE9yZ2FuaXNhdGlvbiAoTyk6ICR7Q0FfT30gJHtyZXN0cmljdF9P
c30KICAgQ0EgRGVwYXJ0bWVudC9zIChPVSk6ICR7Q0FfT1V9ICR7cmVzdHJpY3RfT1VzfQogICAg
ICAgICAgICBDQSBDaXR5IChMKTogJHtDQV9MfSAke3Jlc3RyaWN0X0xzfQpDQSBTdGF0ZSBvciBS
ZWdpb24gKFNUKTogJHtDQV9TVH0gJHtyZXN0cmljdF9TVHN9CiAgICAgICAgIENBIENvdW50cnkg
KEMpOiAke0NBX0N9ICR7cmVzdHJpY3RfQ3N9CiBDQSBhZG1pbmlzdHJhdG9yIGVtYWlsOiAke0NB
X2VtYWlsfQoKICAgICAgICAgICAgQ1JMIHBhdGgocyk6ICQoZWNobyAtbiAke0NSTF9wYXRofSB8
IHNlZCAtciAicy8sL1xuICAgICAgICAgICAgICAgICAgICAgICAgIC9nIikKICAgIENSTCB2YWxp
ZGl0eSBwZXJpb2Q6ICR7Q1JMX2RheXM6PTMwfSBkYXlzCiAgICAgICAgQ1JMIGF1dG8gdXBkYXRl
OiAke0NSTF91cGRhdGU6PW5vfQogICAgICAgIENSTCBleHBvcnQgcGF0aDogJHtDUkxfZXhwb3J0
X3BhdGh9CiAKICAgUGFzc3dvcmQgbG9ja2VkIGtleXM6ICR7a2V5cGFzczo9bm99Cklzc3VlZCB2
YWxpZGl0eSBwZXJpb2RzOiAkZGF5cwogICAgIElzc3VlZCBrZXkgbGVuZ3RoczogJGJpdHMKIgoJ
aWYgISBtZXNzYWdlIGlzX3llcyAnVXNlIHRoZXNlIHNldHRpbmdzPyc7IHRoZW4KCQltZXNzYWdl
IGluZm8gJ0V4aXRpbmcgb24gdXNlciByZXF1ZXN0LicKCQlncmFjZWZ1bF9leGl0IDAKCWZpCgkj
V3JpdGUgdGhlIHByb2ZpbGUuCgllY2hvIC1lICIjIS9iaW4vYmFzaFxuYml0cz0kYml0c1xuZGF5
cz0kZGF5c1xucmVzdHJpY3RfTz0ke3Jlc3RyaWN0X086PW9wdGlvbmFsfVxucmVzdHJpY3RfT1U9
JHtyZXN0cmljdF9PVTo9b3B0aW9uYWx9XG5yZXN0cmljdF9MPSR7cmVzdHJpY3RfTDo9b3B0aW9u
YWx9XG5yZXN0cmljdF9TVD0ke3Jlc3RyaWN0X1NUOj1vcHRpb25hbH1cbnJlc3RyaWN0X0M9JHty
ZXN0cmljdF9DOj1vcHRpb25hbH1cbmxvY2tlZD0kbG9ja2VkXG5rZXlwYXNzPSRrZXlwYXNzXG5D
UkxfcGF0aD0ke0NSTF9wYXRofVxuQ1JMX2RheXM9JHtDUkxfZGF5c31cbkNSTF91cGRhdGU9JHtD
UkxfdXBkYXRlfVxuQ1JMX2V4cG9ydF9wYXRoPVwiJHtDUkxfZXhwb3J0X3BhdGh9XCIiID4gJDEv
LnByb2ZpbGUKCWNobW9kIDA3NzAgJDEvLnByb2ZpbGUKCSNXcml0ZSB0aGUgb3BlbnNzbCBjb25m
aWcgZmlsZQoJbWVzc2FnZSB2ZXJib3NlICJDcmVhdGluZyBPcGVuU1NMIGNvbnRyb2wgZmlsZSAn
JERBVEEvJENBL29wZW5zc2wuY25mJy4iCglpZiAhIG00IC1ERENBRElSRD0iJERBVEEvJENBIiAt
REREQVlTRD0kZGF5cyAtRERDRD0ke0NBX0N9IC1ERHJlc3RyaWN0X0NEPSR7cmVzdHJpY3RfQ046
PW9wdGlvbmFsfSAtRERyZXN0cmljdF9TVEQ9JHtyZXN0cmljdF9TVDotb3B0aW9uYWx9IC1ERHJl
c3RyaWN0X09EPSR7cmVzdHJpY3RfTzo9b3B0aW9uYWx9IC1ERHJlc3RyaWN0X09VRD0ke3Jlc3Ry
aWN0X09VOj1vcHRpb25hbH0gLUREcmVzdHJpY3RfTEQ9JHtyZXN0cmljdF9MOj1vcHRpb25hbH0g
LUREQklUU0Q9JGJpdHMgLUREU1REPSIke0NBX1NUfSIgLURETEQ9IiR7Q0FfTH0iIC1ERE9EPSIk
e0NBX099IiAtRERPVUQ9IiR7Q0FfT1V9IiAtRERPVTJEPSIke0NBX09VMn0iIC1ETUFLRV9DQT0i
JHtNQUtFX0NBOi1GQUxTRX0iIC1ERENSTERBWVM9JHtDUkxfZGF5c30gJENPTkYvb3BlbnNzbC5j
bmYudGVtcGxhdGUgPiAkMS9vcGVuc3NsLmNuZiAyPiRTV0FQOyB0aGVuCgkJbWVzc2FnZSBkZWJ1
ZyAiJChjYXQgJFNXQVApIgoJCW1lc3NhZ2UgZXJyb3IgIkZhaWxlZCB0byBkZWZpbmUgT3BlblNT
TCBjb250cm9sIGZpbGUuIgoJCWdyYWNlZnVsX2V4aXQgMgoJZmkKCSNXcml0ZSB0aGUgZW52aXJv
bm1lbnQgZmlsZQoJbWVzc2FnZSB2ZXJib3NlICJDcmVhdGluZyBlbnZpcm9ubWVudCBmaWxlICck
REFUQS8kQ0Evc2V0ZW52LnNoJyIKCWVjaG8gLWUgIiMhL2Jpbi9iYXNoXG5leHBvcnQgQklUUz0k
Yml0c1xuZXhwb3J0IE1BSUw9JHtDQV9lbWFpbH1cbmV4cG9ydCBJTlRFTlQ9JGludGVudFxuTE9D
S0VEPSRsb2NrZWRcbktFWVBBU1M9JGtleXBhc3MiID4gJDEvLnNldGVudgoJY2htb2QgMDc3MCAk
MS8uc2V0ZW52CgkjQ3JlYXRlIGEgY3JvbiBqb2IgdG8gdXBkYXRlIHRoZSBDUkwgaWYgcmVxdWVz
dGVkCglpZiBbICIke0NSTF91cGRhdGV9IiA9ICd5ZXMnIF07IHRoZW4KCQlpZiAoKCR7Q1JMX2Rh
eXN9PjEpKTsgdGhlbgoJCQl1cGRhdGU9JCgoJHtDUkxfZGF5c30tMSkpCgkJZmkKCQltZXNzYWdl
IHZlcmJvc2UgIkNvbmZpZ3VyaW5nIGF1dG9tYXRpYyBDUkwgdXBkYXRlcyB0byBydW4gZXZlcnkg
JHt1cGRhdGU6PTF9IGRheXMuIgoJCWVjaG8gLWUgIiMhL2Jpbi9iYXNoXG4kVEhJUyAkQ0EgdXBk
YXRlLWNybFxuYXQgLWYgJDEvLnVwZGF0ZV9jcmwgbm93ICsgJHVwZGF0ZSBkYXlzIiA+ICQxLy51
cGRhdGVfY3JsCgkJY2htb2QgMDU1MCAkMS8udXBkYXRlX2NybAoJZmkKfQoKIyBTaG93IHRoZSBj
dXJyZW50IENBIHByb2ZpbGUKZnVuY3Rpb24gc2hvd19wcm9maWxlIHsKCSNMb2FkIGEgcHJvZmls
ZSBpbW11dGFibGVzCglpZiBbIC1yICQxLy5pbW11dGFibGUgXTsgdGhlbgoJCS4gJDEvLmltbXV0
YWJsZQoJZmkKCSNMb2FkIHByb2ZpbGUgZWRpdGFibGUKCWlmIFsgLXIgJDEvLnByb2ZpbGUgXTsg
dGhlbgoJCS4gJDEvLnByb2ZpbGUKCWZpCglpZiBbICIke3Jlc3RyaWN0X099IiA9ICdtYXRjaCcg
XTsgdGhlbgoJCXJlc3RyaWN0X09zPScqJwoJZmkKCWlmIFsgIiR7cmVzdHJpY3RfT1V9IiA9ICdt
YXRjaCcgXTsgdGhlbgoJCXJlc3RyaWN0X09Vcz0nKicKCWZpCglpZiBbICIke3Jlc3RyaWN0X0x9
IiA9ICdtYXRjaCcgXTsgdGhlbgoJCXJlc3RyaWN0X0xzPScqJwoJZmkKCWlmIFsgIiR7cmVzdHJp
Y3RfU1R9IiA9ICdtYXRjaCcgXTsgdGhlbgoJCXJlc3RyaWN0X1NUcz0nKicKCWZpCglpZiBbICIk
e3Jlc3RyaWN0X0N9IiA9ICdtYXRjaCcgXTsgdGhlbgoJCXJlc3RyaWN0X0NzPScqJwoJZmkKCW1l
c3NhZ2UgaW5mbyAiCkNlcnRpZmljYXRlIEF1dGhvcml0eSBzdW1tYXJ5IGZvciAnJENBJwooZmll
bGRzIG1hcmtlZCAqIHdpbGwgZW5mb3JjZSBtYXRjaGluZyBpbiBpc3N1ZWQgY2VydGlmaWNhdGVz
KQoKICAgICAgICAgICAgICAgICAgIFR5cGU6ICR0eXBlCiAgICAgICBBdXRob3JpdHkgSW50ZW50
OiAkaW50ZW50CgogICAgICAgICAgQ0Ega2V5IGxlbmd0aDogJHtDQV9iaXRzfQogICAgIENBIHZh
bGlkaXR5IHBlcmlvZDogRnJvbSAkKG9wZW5zc2wgeDUwOSAtaW4gIiQxL2NhLmNydCIgLXN0YXJ0
ZGF0ZSAtbm9jZXJ0IHwgY3V0IC1kJz0nIC1mMikgdG8gJChvcGVuc3NsIHg1MDkgLWluICIkMS9j
YS5jcnQiIC1lbmRkYXRlIC1ub2NlcnQgfCBjdXQgLWQnPScgLWYyKQogIENBIGlzIHBhc3N3b3Jk
IGxvY2tlZDogJHtsb2NrZWR9CiAgICBDQSBDb21tb24gTmFtZSAoQ04pOiAke0NBX0NOfQogICAg
Q0EgT3JnYW5pc2F0aW9uIChPKTogJHtDQV9PfSAke3Jlc3RyaWN0X09zfQogICBDQSBEZXBhcnRt
ZW50L3MgKE9VKTogJHtDQV9PVX0gJHtyZXN0cmljdF9PVXN9CiAgICAgICAgICAgIENBIENpdHkg
KEwpOiAke0NBX0x9ICR7cmVzdHJpY3RfTHN9CkNBIFN0YXRlIG9yIFJlZ2lvbiAoU1QpOiAke0NB
X1NUfSAke3Jlc3RyaWN0X1NUc30KICAgICAgICAgQ0EgQ291bnRyeSAoQyk6ICR7Q0FfQ30gJHty
ZXN0cmljdF9Dc30KIENBIGFkbWluaXN0cmF0b3IgZW1haWw6ICR7Q0FfZW1haWx9CgogICAgICAg
ICAgICBDUkwgcGF0aChzKTogJChlY2hvIC1uICR7Q1JMX3BhdGh9IHwgc2VkIC1yICJzLywvXG4g
ICAgICAgICAgICAgICAgICAgICAgICAgL2ciKQogICAgQ1JMIHZhbGlkaXR5IHBlcmlvZDogJHtD
UkxfZGF5czo9MH0gZGF5cwogICAgICAgIENSTCBhdXRvIHVwZGF0ZTogJHtDUkxfdXBkYXRlfQog
ICAgICAgIENSTCBleHBvcnQgcGF0aDogJHtDUkxfZXhwb3J0X3BhdGh9CgogICBQYXNzd29yZCBs
b2NrZWQga2V5czogJHtrZXlwYXNzfQpJc3N1ZWQgdmFsaWRpdHkgcGVyaW9kczogJGRheXMgZGF5
cwogICAgIElzc3VlZCBrZXkgbGVuZ3RoczogJGJpdHMgYml0CiIKfQoKIyBPdXRwdXRzIGEgQ1NW
IChwaXBlIHNlcGFyYXRlZCkgcmVwb3J0IG9mIG9uZSBvciBhbGwgQ0FzIHNob3dpbmcKIyAgKiBD
QQojICAqIENOCiMgICogU0VSSUFMCiMgICogS0VZCiMgICogQ0VSVAojICAqIFNUQVJUCiMgICog
RU5ECiMgICogUkVWT0tFRCBZL04KI1sxXSBDQSBpZiBzcGVjaWZpZWQKZnVuY3Rpb24gcmVwb3J0
IHsKCWxvY2FsIHNjb3BlCglsb2NhbCBjYXMKCWxvY2FsIG4KCWxvY2FsIG9iagoJbG9jYWwgY2Vy
dHMKCWxvY2FsIHJlcG9ydAoJbG9jYWwga2V5Cglsb2NhbCBmcm9tCglsb2NhbCB0bwoJbG9jYWwg
c3RhdHVzCglsb2NhbCBzZXJpYWwKCSMgdmFsaWRhdGUgQ0EKCWlmIFsgLW4gIiQxIiBdOyB0aGVu
CgkJdmFsaWRhdGVfQ0EgJDEKCQljYXM9KCQxKQoJCXNjb3BlPSQxCgllbHNlCgkJIyBwb3B1bGF0
ZSB0aGUgQ0EgYXJyYXkKCQluPTAKCQlmb3IgQ0EgaW4gJChscyAiJERBVEEiKTsgZG8KCQkJaWYg
WyAtZCAiJERBVEEvJENBIiBdOyB0aGVuCgkJCQljYXNbJG5dPSRDQQoJCQkJKChuKyspKQoJCQlm
aQoJCWRvbmUKCQlzY29wZT1hbGwKCWZpCgltZXNzYWdlIHZlcmJvc2UgIkNBIHNjb3BlIHNldCB0
byAnJHNjb3BlJy4iCgljZCAiJERBVEEiCgkjIHJ1biBnZXQtaW5mbyBvbiBlYWNoIGNlcnRpZmlj
YXRlIGluIHRoZSBDQQoJbj0wCglmb3IgQ0EgaW4gJHtjYXNbQF19OyBkbwoJCW1lc3NhZ2UgdmVy
Ym9zZSAiUHJvY2Vzc2luZyBDQSAnJENBJy4uLiIKCQltZXNzYWdlIHZlcmJvc2UgIlx0UHJvY2Vz
c2luZyBjZXJ0aWZpY2F0ZXMuIgoJCUNFUlRfRElSPSIkREFUQS8kQ0EvY2VydHMiCgkJY2QgIiR7
Q0VSVF9ESVJ9IgoJCWNlcnRzPSgpCgkJZm9yIG9iaiBpbiAkKGxzICouY3J0KTsgZG8KCQkJI29i
aj0kKGVjaG8gLW4gJG9iaiB8IGN1dCAtZCcuJyAtZjEpCgkJCW9iaj0ke29iajowOiQoKCR7I29i
an0tNCkpfQoJCQltZXNzYWdlIHZlcmJvc2UgIlx0XHRBZGRpbmcgY2VydGlmaWNhdGUgJyRvYmon
LiIKCQkJY2VydHNbJG5dPSRvYmoKCQkJKChuKyspKQoJCQlzZXJpYWw9JycKCQkJc3RhdHVzPScn
CgkJCWZyb209JycKCQkJdG89JycKCQkJcGs9JycKCQkJZ2V0X2RhdGVzICRvYmogPiAke1NXQVB9
LmRhdGVzCgkJCXdoaWxlIHJlYWQgUkVQTFk7IGRvCgkJCSNnZXRfZGF0ZXMgJG9iaiB8IHdoaWxl
IHJlYWQgUkVQTFk7IGRvCgkJCQlrZXk9JChlY2hvIC1uICIkUkVQTFkiIHwgY3V0IC1kJz0nIC1m
MSkKCQkJCWNhc2UgIiRrZXkiIGluCgkJCQkJc3RhdHVzICkKCQkJCQkJc3RhdHVzPSQoZWNobyAt
biAiJFJFUExZIiB8IGN1dCAtZCc9JyAtZjIpCgkJCQkJCTs7CgkJCQkJc2VyaWFsICkKCQkJCQkJ
c2VyaWFsPSQoZWNobyAtbiAiJFJFUExZIiB8IGN1dCAtZCc9JyAtZjIpCgkJCQkJCTs7CgkJCQkJ
bm90QmVmb3JlICkKCQkJCQkJZnJvbT0kKGVjaG8gLW4gIiRSRVBMWSIgfCBjdXQgLWQnPScgLWYy
KQoJCQkJCQk7OwoJCQkJCW5vdEFmdGVyICkKCQkJCQkJdG89JChlY2hvIC1uICIkUkVQTFkiIHwg
Y3V0IC1kJz0nIC1mMikKCQkJCQkJOzsKCQkJCWVzYWMKCQkJI2RvbmUKCQkJZG9uZSA8ICR7U1dB
UH0uZGF0ZXMKCQkJIyBvdXRwdXQgZWFjaCBhcyBhIG5ldyBsaW5lIGluIHRoZSBDU1YKCQkJaWYg
WyAtZiAiJERBVEEvJENBL2tleXMvJG9iai5rZXkiIF07IHRoZW4KCQkJCXBrPSRvYmoua2V5CgkJ
CWZpCgkJCWVjaG8gIiRDQXwkb2JqfCRzZXJpYWx8JHBrfCRvYmouY3J0fCRmcm9tfCR0b3wkc3Rh
dHVzIiA+PiAkU1dBUAoJCWRvbmUKCQltZXNzYWdlIHZlcmJvc2UgIlx0UHJvY2Vzc2luZyBDU1Jz
LiIKCQljZCAiJERBVEEvJENBL2tleXMiCgkJY2VydHM9IiAkKGVjaG8gJHtjZXJ0c1tAXX0pICIK
CQlmb3Igb2JqIGluICQobHMgKi5rZXkpOyBkbwoJCQlvYmo9JHtvYmo6MDokKCgkeyNvYmp9LTQp
KX0KCQkJI2lmIFsgISBlY2hvICIgJHtjZXJ0c1tAXX0gIiB8IGdyZXAgLXEgIiAkb2JqICIgXSAm
JiBbIC1mICIkREFUQS8kQ0EvcmVxdWVzdHMvJG9iai5yZXEiIF07IHRoZW4KCQkJaWYgISBlY2hv
ICIgJHtjZXJ0c1tAXX0gIiB8IGdyZXAgLXEgIiAkb2JqICIgJiYgWyAtZiAiJERBVEEvJENBL3Jl
cXVlc3RzLyRvYmouY3NyIiBdOyB0aGVuCgkJCQltZXNzYWdlIHZlcmJvc2UgIlx0XHRBZGRpbmcg
Q1NSICckb2JqJy4iCgkJCQllY2hvICIkQ0F8JG9ianx8JG9iai5rZXl8JG9iai5jc3J8fHxjc3Ii
ID4+ICRTV0FQCgkJCWZpCgkJZG9uZQoJZG9uZQoJIyBkZWZpbmUgdGhlIENTViBhcyByZXBvcnRf
PENBPl9ZWVlZTU1ERFRISG1tc3MuY3N2CglyZXBvcnQ9IiREQVRBL3JlcG9ydF8ke3Njb3BlfV8k
KGRhdGUgJyslWSVtJWRUJUglTSVTJykuY3N2IgoJZWNobyAnQ0F8Q058U0VSSUFMfEtFWXxDRVJU
fFNUQVJUfEVORHxWQUxJRCcgPiAkcmVwb3J0CgkjIHNvcnQgdGhlIG91dHB1dCB0byByZXBvcnQJ
Cglzb3J0ICRTV0FQID4+ICRyZXBvcnQKCW1lc3NhZ2UgaW5mbyAiUmVwb3J0IGZpbGU6ICckcmVw
b3J0JyIKfQoKIyBDcmVhdGUgYSBuZXcgQ0Etc2lnbmVkIGNlcnRpZmljYXRlCiMgWzFdID0gRG9t
YWluIG5hbWUKIyBbMl0gPSBDQSBwYXNzd29yZC9rZXkgcGFzc3dvcmQvU0FOCiMgWzNdID0ga2V5
IHBhc3N3b3JkL1NBTgojIFs0XSA9IFNBTgpmdW5jdGlvbiBjcmVhdGVfY2VydGlmaWNhdGUgewoJ
bG9jYWwgdHlwZQoJbG9jYWwgc3ViamVjdAoJbG9jYWwgcGFzc3dvcmQKCWxvY2FsIGtleXBhc3MK
CWxvY2FsIGNuCglpc19sb2NrZWQKCWxvY2sKCW1lc3NhZ2UgaW5mbyAiQ3JlYXRpbmcgbmV3IGNl
cnRpZmljYXRlIGZvciBDQSAnJENBJyAoaW50ZW50OiAkSU5URU5UKSA6ICckMScuIgoJY2QgIiRE
QVRBLyRDQSIKCS4gLi8ucHJvZmlsZQoJaWYgWyAteiAiJDEiIF07IHRoZW4KCQltZXNzYWdlIGVy
cm9yICIkVVNBR0UiCgkJZ3JlY2VmdWxfZXhpdCAxCglmaQoJY249JDEKCWlmIFsgIiRMT0NLRUQi
ID0gJ3llcycgXTsgdGhlbgoJCWlmIFsgLXogIiQyIiBdOyB0aGVuCgkJCW1lc3NhZ2UgZXJyb3Ig
IkEgcGFzc3dvcmQgZm9yIENBICckQ0EnIGlzIHJlcXVpcmVkLiIKCQkJZ3JhY2VmdWxfZXhpdCAx
CgkJZWxzZQoJCQlwYXNzd29yZD0kMgoJCWZpCglmaQoJaWYgWyAiJEtFWVBBU1MiID0gJ3llcycg
XTsgdGhlbgoJCWlmIFsgIiRMT0NLRUQiID0gJ3llcycgXTsgdGhlbgoJCQlpZiBbIC16ICIkMyIg
XTsgdGhlbgoJCQkJbWVzc2FnZSBlcnJvciAiQSBwYXNzd29yZCBtdXN0IGJlIHN1cHBsaWVkIHRv
IGxvY2sgdGhlIGNlcnRpZmljYXRlIGtleSB1c2luZyBDQSAnJENBJy4iCgkJCQlncmFjZWZ1bF9l
eGl0IDEKCQkJZWxzZQoJCQkJa2V5cGFzc3dvcmQ9JDMKCQkJZmkKCQllbGlmIFsgLXogIiQyIiBd
OyB0aGVuCgkJCW1lc3NhZ2UgZXJyb3IgIkEgcGFzc3dvcmQgbXVzdCBiZSBzdXBwbGllZCB0byBs
b2NrIHRoZSBjZXJ0aWZpY2F0ZSBrZXkgdXNpbmcgQ0EgJyRDQScuIgoJCQlncmFjZWZ1bF9leGl0
IDEKCQllbHNlCgkJCWtleXBhc3N3b3JkPSQyCgkJZmkKCWZpCglpZiBbICIkTE9DS0VEIiA9ICd5
ZXMnIF0gJiYgWyAiJEtFWVBBU1MiID0gJ3llcycgXTsgdGhlbgoJCWlmIFsgLW4gIiQ0IiBdOyB0
aGVuCgkJCXN1YmplY3Q9JDQKCQlmaQoJZWxpZiBbICIkTE9DS0VEIiA9ICd5ZXMnIF0gfHwgWyAi
JEtFWVBBU1MiID0gJ3llcycgXTsgdGhlbgoJCWlmIFsgLW4gIiQzIiBdOyB0aGVuCgkJCXN1Ympl
Y3Q9JDMKCQlmaQoJZWxpZiBbIC1uICIkMiIgXTsgdGhlbgoJCXN1YmplY3Q9JDIKCWZpCglpZiBb
IC1uICIkc3ViamVjdCIgXTsgdGhlbgoJCW1lc3NhZ2UgdmVyYm9zZSAiU0FOcyBkZXRlY3RlZCBh
cyAnJHN1YmplY3QnIgoJZmkKCWlmIFsgLWYgJHtDRVJUX0RJUn0vJDEuY3J0IF07IHRoZW4KCQlt
ZXNzYWdlIHZlcmJvc2UgIkNlcnRpZmljYXRlIGluIENBICckQ0EnIDogJyQxJyBhbHJlYWR5IGV4
aXN0cy4gRGVsZXRpbmcuIgoJCWRlbGV0ZSAkMQoJZmkKCWlmIFsgLW4gIiRwYXNzd29yZCIgXTsg
dGhlbgoJCWNoZWNrX2NhX3Bhc3N3b3JkICIkcGFzc3dvcmQiCglmaQoJbWVzc2FnZSB2ZXJib3Nl
ICJHZW5lcmF0aW5nICRCSVRTIGJpdCBSU0Ega2V5IGZvciAnJDEnLiIKCWlmIFsgLW4gIiRrZXlw
YXNzd29yZCIgXTsgdGhlbgoJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgZ2VucnNhIC1hZXMxMjgg
LW91dCAnJHtLRVlfRElSfS8kMS5rZXknIC1wYXNzb3V0IHBhc3M6JyoqKioqKioqJyAkQklUUyIK
CQlvcGVuc3NsIGdlbnJzYSAtYWVzMTI4IC1vdXQgIiR7S0VZX0RJUn0vJDEua2V5IiAtcGFzc291
dCBwYXNzOiIka2V5cGFzc3dvcmQiICRCSVRTICY+JHtTV0FQfQoJCVJDPSQ/CgllbHNlCgkJbWVz
c2FnZSBkZWJ1ZyAib3BlbnNzbCBnZW5yc2EgLW91dCAnJHtLRVlfRElSfS8kMS5rZXknICRCSVRT
IgoJCW9wZW5zc2wgZ2VucnNhIC1vdXQgIiR7S0VZX0RJUn0vJDEua2V5IiAkQklUUyAmPiR7U1dB
UH0KCQlSQz0kPwoJZmkKCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRTV0FQKSIKCWlmICgoUkMhPTAp
KTsgdGhlbgoJCW1lc3NhZ2UgZXJyb3IgIkZhaWxlZCB0byBjcmVhdGUgbmV3IGNlcnRpZmljYXRl
LiIKCQlncmFjZWZ1bF9leGl0IDIKCWZpCgltZXNzYWdlIHZlcmJvc2UgIkNyZWF0aW5nIGEgc2ln
bmluZyByZXF1ZXN0IGZvciAnJDEnICRJTlRFTlQgY2VydGlmaWNhdGUuIgoJY3AgJENPTkYvdXNy
X2NlcnQuZXh0ICR7U1dBUH0uZXh0CglhdHRhY2hfQ1JMX3BhdGhzCgljYXNlICRJTlRFTlQgaW4K
CQlzZXJ2ZXIgKQoJCQl0eXBlPUROUwoJCQkjZWNobyAtZSAiYmFzaWNDb25zdHJhaW50cz1DQTpG
QUxTRVxubnNDZXJ0VHlwZT1zZXJ2ZXIiID4+ICR7U1dBUH0uZXh0CgkJCWVjaG8gLWUgImJhc2lj
Q29uc3RyYWludHM9Q0E6RkFMU0Vcbm5zQ2VydFR5cGU9c2VydmVyXG5rZXlVc2FnZSA9IG5vblJl
cHVkaWF0aW9uLCBkaWdpdGFsU2lnbmF0dXJlLCBrZXlFbmNpcGhlcm1lbnRcbmV4dGVuZGVkS2V5
VXNhZ2UgPSBzZXJ2ZXJBdXRoIiA+PiAke1NXQVB9LmV4dAoJCQk7OwoJCWludGVybWVkaWF0ZSAp
CgkJCXR5cGU9RE5TCgkJCSNlY2hvIC1lICJiYXNpY0NvbnN0cmFpbnRzPUNBOlRSVUVcbm5zQ2Vy
dFR5cGU9c2VydmVyLCBvYmpzaWduIiA+PiAke1NXQVB9LmV4dAoJCQllY2hvIC1lICJiYXNpY0Nv
bnN0cmFpbnRzPUNBOlRSVUVcbm5zQ2VydFR5cGU9c2VydmVyLCBvYmpzaWduIiA+PiAke1NXQVB9
LmV4dAoJCQk7OwoJCWNsaWVudCApCgkJCXR5cGU9ZW1haWwKCQkJZWNobyAtZSAiYmFzaWNDb25z
dHJhaW50cz1DQTpGQUxTRVxubnNDZXJ0VHlwZT1jbGllbnQsIGVtYWlsXG5rZXlVc2FnZSA9IG5v
blJlcHVkaWF0aW9uLCBkaWdpdGFsU2lnbmF0dXJlLCBrZXlFbmNpcGhlcm1lbnRcbmV4dGVuZGVk
S2V5VXNhZ2UgPSBjbGllbnRBdXRoLCBlbWFpbFByb3RlY3Rpb24iID4+ICR7U1dBUH0uZXh0CgkJ
CTs7Cgllc2FjCglpZiBbIC1uICIkc3ViamVjdCIgXTsgdGhlbiAjIHVzZSB0aGUgdXNlciBzdXBw
bGllZCBsaXN0IG9mIHN1YmplY3RzCgkJc3ViamVjdD0iJHR5cGU6JChlY2hvICRzdWJqZWN0IHwg
c2VkIC1yICJzLywvLCAkdHlwZTovZyIpIgoJZWxzZSAjIHVzZSAkMSBhcyB0aGUgb25seSBzdWJq
ZWN0CgkJc3ViamVjdD0iJHR5cGU6JDEiCglmaQoJZWNobyAtZSAic3ViamVjdEFsdE5hbWU9JHN1
YmplY3QiID4+ICR7U1dBUH0uZXh0CgltZXNzYWdlIGRlYnVnICJTZXR0aW5nIHVwIGN1c3RvbSBY
NTA5IGV4dGVuc2lvbjpcbiQodGFpbCAtMTAgJHtTV0FQfS5leHQpIgoJaWYgWyAkSU5URU5UID0g
J3NlcnZlcicgXTsgdGhlbgoJCWVjaG8gLWUgIlxuXG5cblxuXG5cbiQxXG4uXG4uXG4uXG4iID4g
JFNXQVAKCWVsc2UKCQllY2hvIC1lICJcblxuXG5cblxuXG4kMVxuJE1BSUxcbi5cbi5cbiIgPiAk
U1dBUAoJZmkKCWlmIFsgLW4gIiRrZXlwYXNzd29yZCIgXTsgdGhlbgoJCW1lc3NhZ2UgZGVidWcg
Im9wZW5zc2wgcmVxIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtbmV3IC1rZXkgJyR7S0VZX0RJUn0v
JDEua2V5JyAtcGFzc2luIHBhc3M6JyoqKioqKioqJyAtb3V0ICcke1JFUVNfRElSfS8kMS5jc3In
XG5XaXRoIHBhcmFtZXRlcnM6XG4kKGNhdCAkU1dBUCkiCgkJb3BlbnNzbCByZXEgLWNvbmZpZyAu
L29wZW5zc2wuY25mIC1uZXcgLWtleSAiJHtLRVlfRElSfS8kMS5rZXkiIC1wYXNzaW4gcGFzczoi
JGtleXBhc3N3b3JkIiAtb3V0ICIke1JFUVNfRElSfS8kMS5jc3IiIDwgJFNXQVAgJj4ke1NXQVB9
MgoJCVJDPSQ/CgllbHNlCgkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCByZXEgLWNvbmZpZyAuL29w
ZW5zc2wuY25mIC1uZXcgLWtleSAnJHtLRVlfRElSfS8kMS5rZXknIC1vdXQgJyR7UkVRU19ESVJ9
LyQxLmNzcidcbldpdGggcGFyYW1ldGVyczpcbiQoY2F0ICRTV0FQKSIKCQlvcGVuc3NsIHJlcSAt
Y29uZmlnIC4vb3BlbnNzbC5jbmYgLW5ldyAta2V5ICIke0tFWV9ESVJ9LyQxLmtleSIgLW91dCAi
JHtSRVFTX0RJUn0vJDEuY3NyIiA8ICRTV0FQICY+JHtTV0FQfTIKCQlSQz0kPwoJZmkKCW1lc3Nh
Z2UgZGVidWcgIiQoY2F0ICR7U1dBUH0yKSIKCWlmICgoUkMhPTApKTsgdGhlbgoJCW1lc3NhZ2Ug
ZXJyb3IgIkZhaWxlZCB0byBjcmVhdGUgbmV3IGNlcnRpZmljYXRlLiIKCQlncmFjZWZ1bF9leGl0
IDIKCWZpCglybSAtZiAke1NXQVB9MiAyPiYtCgltZXNzYWdlIHZlcmJvc2UgIlNpZ25pbmcgdGhl
ICckMScgJElOVEVOVCBjZXJ0aWZpY2F0ZS4iCglpZiBbIC1uICIkcGFzc3dvcmQiIF07IHRoZW4K
CQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtcGFzc2lu
IHBhc3M6JyoqKioqKioqJyAtaW4gJyR7UkVRU19ESVJ9LyQxLmNzcicgLW91dCAnJHtDRVJUX0RJ
Un0vJDEuY3J0JyAtZXh0ZmlsZSAke1NXQVB9LmV4dCIKCQlvcGVuc3NsIGNhIC1jb25maWcgLi9v
cGVuc3NsLmNuZiAtcGFzc2luIHBhc3M6IiRwYXNzd29yZCIgLWluICIke1JFUVNfRElSfS8kMS5j
c3IiIC1vdXQgIiR7Q0VSVF9ESVJ9LyQxLmNydCIgLWV4dGZpbGUgJHtTV0FQfS5leHQgPCAuYXV0
b2FjY2VwdCAmPiR7U1dBUH0KCQlSQz0kPwoJZWxzZQoJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wg
Y2EgLWNvbmZpZyAuL29wZW5zc2wuY25mIC1pbiAnJHtSRVFTX0RJUn0vJDEuY3NyJyAtb3V0ICck
e0NFUlRfRElSfS8kMS5jcnQnIC1leHRmaWxlICR7U1dBUH0uZXh0IgoJCW9wZW5zc2wgY2EgLWNv
bmZpZyAuL29wZW5zc2wuY25mIC1pbiAiJHtSRVFTX0RJUn0vJDEuY3NyIiAtb3V0ICIke0NFUlRf
RElSfS8kMS5jcnQiIC1leHRmaWxlICR7U1dBUH0uZXh0IDwgLmF1dG9hY2NlcHQgJj4ke1NXQVB9
CgkJUkM9JD8KCWZpCgltZXNzYWdlIGRlYnVnICIkKGNhdCAkU1dBUCkiCglpZiAoKFJDIT0wKSk7
IHRoZW4KCQltZXNzYWdlIGVycm9yICJGYWlsZWQgdG8gc2lnbiBjZXJ0aWZpY2F0ZSAnJDEuY3Ny
JyIKCQlncmFjZWZ1bF9leGl0IDIKCWZpCglybSAtZiAiJHtSRVFTX0RJUn0vJDEuY3NyIgoJY2ht
b2QgMDY2MCAke0tFWV9ESVJ9LyQxLmtleQoJY2htb2QgMDY2MCAke0NFUlRfRElSfS8kMS5jcnQK
CW1lc3NhZ2UgaW5mbyAnQ2VydGlmaWNhdGUgY3JlYXRpb24gY29tcGxldGUuJwp9CgojIENyZWF0
ZSBhIG5ldyBDU1IKIyBbMV0gPSBEb21haW4gbmFtZQojIFsyXSA9IENBIHBhc3N3b3JkL2tleSBw
YXNzd29yZC9TQU4KIyBbM10gPSBrZXkgcGFzc3dvcmQvU0FOCiMgWzRdID0gU0FOCmZ1bmN0aW9u
IGNyZWF0ZV9jc3IgewoJbG9jYWwgdHlwZQoJbG9jYWwgc3ViamVjdAoJbG9jYWwgcGFzc3dvcmQK
CWxvY2FsIGtleXBhc3MKCWxvY2FsIGNuCglpc19sb2NrZWQKCWxvY2sKCW1lc3NhZ2UgaW5mbyAi
Q3JlYXRpbmcgbmV3IENlcnRpZmljYXRlIFNpZ25pbmcgUmVxdWVzdCBmb3IgQ0EgJyRDQScgKGlu
dGVudDogJElOVEVOVCkgOiAnJDEnLiIKCWNkICIkREFUQS8kQ0EiCgkuIC4vLnByb2ZpbGUKCWlm
IFsgLXogIiQxIiBdOyB0aGVuCgkJbWVzc2FnZSBlcnJvciAiJFVTQUdFIgoJCWdyZWNlZnVsX2V4
aXQgMQoJZmkKCWNuPSQxCglpZiBbICIkTE9DS0VEIiA9ICd5ZXMnIF07IHRoZW4KCQlpZiBbIC16
ICIkMiIgXTsgdGhlbgoJCQltZXNzYWdlIGVycm9yICJBIHBhc3N3b3JkIGZvciBDQSAnJENBJyBp
cyByZXF1aXJlZC4iCgkJCWdyYWNlZnVsX2V4aXQgMQoJCWVsc2UKCQkJcGFzc3dvcmQ9JDIKCQlm
aQoJZmkKCWlmIFsgIiRLRVlQQVNTIiA9ICd5ZXMnIF07IHRoZW4KCQlpZiBbICIkTE9DS0VEIiA9
ICd5ZXMnIF07IHRoZW4KCQkJaWYgWyAteiAiJDMiIF07IHRoZW4KCQkJCW1lc3NhZ2UgZXJyb3Ig
IkEgcGFzc3dvcmQgbXVzdCBiZSBzdXBwbGllZCB0byBsb2NrIHRoZSBjZXJ0aWZpY2F0ZSBrZXkg
dXNpbmcgQ0EgJyRDQScuIgoJCQkJZ3JhY2VmdWxfZXhpdCAxCgkJCWVsc2UKCQkJCWtleXBhc3N3
b3JkPSQzCgkJCWZpCgkJZWxpZiBbIC16ICIkMiIgXTsgdGhlbgoJCQltZXNzYWdlIGVycm9yICJB
IHBhc3N3b3JkIG11c3QgYmUgc3VwcGxpZWQgdG8gbG9jayB0aGUgY2VydGlmaWNhdGUga2V5IHVz
aW5nIENBICckQ0EnLiIKCQkJZ3JhY2VmdWxfZXhpdCAxCgkJZWxzZQoJCQlrZXlwYXNzd29yZD0k
MgoJCWZpCglmaQoJaWYgWyAiJExPQ0tFRCIgPSAneWVzJyBdICYmIFsgIiRLRVlQQVNTIiA9ICd5
ZXMnIF07IHRoZW4KCQlpZiBbIC1uICIkNCIgXTsgdGhlbgoJCQlzdWJqZWN0PSQ0CgkJZmkKCWVs
aWYgWyAiJExPQ0tFRCIgPSAneWVzJyBdIHx8IFsgIiRLRVlQQVNTIiA9ICd5ZXMnIF07IHRoZW4K
CQlpZiBbIC1uICIkMyIgXTsgdGhlbgoJCQlzdWJqZWN0PSQzCgkJZmkKCWVsaWYgWyAtbiAiJDIi
IF07IHRoZW4KCQlzdWJqZWN0PSQyCglmaQoJaWYgWyAtbiAiJHN1YmplY3QiIF07IHRoZW4KCQlt
ZXNzYWdlIHZlcmJvc2UgIlNBTnMgZGV0ZWN0ZWQgYXMgJyRzdWJqZWN0JyIKCWZpCglpZiBbIC1u
ICIkcGFzc3dvcmQiIF07IHRoZW4KCQljaGVja19jYV9wYXNzd29yZCAiJHBhc3N3b3JkIgoJZmkK
CW1lc3NhZ2UgcHJvbXB0ICdPcmdhbmlzYXRpb24nCgl3aGlsZSByZWFkOyBkbwoJCWlmIFsgLXog
IiRSRVBMWSIgXTsgdGhlbgoJCQlicmVhawoJCWVsaWYgISBlY2hvICRSRVBMWSB8IGdyZXAgLXFp
RSAiXltcLV8gJ1wuXChcKVs6YWxudW06XV0rXCQiOyB0aGVuCgkJCW1lc3NhZ2UgaW52YWxpZAoJ
CWVsc2UKCQkJQ1NSX089JFJFUExZCgkJCWJyZWFrCgkJZmkKCWRvbmUKCW1lc3NhZ2UgcHJvbXB0
ICdEaXZpc2lvbi9kZXBhcnRtZW50JwoJd2hpbGUgcmVhZDsgZG8KCQlpZiBbIC16ICIkUkVQTFki
IF07IHRoZW4KCQkJYnJlYWsKCQllbGlmICEgZWNobyAkUkVQTFkgfCBncmVwIC1xaUUgIl5bXC1f
ICdcLlwoXClbOmFsbnVtOl1dK1wkIjsgdGhlbgoJCQltZXNzYWdlIGludmFsaWQKCQllbHNlCgkJ
CUNTUl9PVT0kUkVQTFkKCQkJYnJlYWsKCQlmaQoJZG9uZQoJbWVzc2FnZSBwcm9tcHQgJ0RlcGFy
dG1lbnQnCgl3aGlsZSByZWFkOyBkbwoJCWlmIFsgLXogIiRSRVBMWSIgXTsgdGhlbgoJCQlicmVh
awoJCWVsaWYgISBlY2hvICRSRVBMWSB8IGdyZXAgLXFpRSAiXltcLV8gJ1wuXChcKVs6YWxudW06
XV0rXCQiOyB0aGVuCgkJCW1lc3NhZ2UgaW52YWxpZAoJCWVsc2UKCQkJQ1NSX09VMj0kUkVQTFkK
CQkJYnJlYWsKCQlmaQoJZG9uZQoJbWVzc2FnZSBwcm9tcHQgJ0NpdHknCgl3aGlsZSByZWFkOyBk
bwoJCWlmIFsgLXogIiRSRVBMWSIgXTsgdGhlbgoJCQlicmVhawoJCWVsaWYgISBlY2hvICRSRVBM
WSB8IGdyZXAgLXFpRSAiXlstXyAnXC5cKFwpWzphbG51bTpdXStcJCI7IHRoZW4KCQkJbWVzc2Fn
ZSBpbnZhbGlkCgkJZWxzZQoJCQlDU1JfTD0kUkVQTFkKCQkJYnJlYWsKCQlmaQoJZG9uZQoJbWVz
c2FnZSBwcm9tcHQgJ1N0YXRlIG9yIHJlZ2lvbicKCXdoaWxlIHJlYWQ7IGRvCgkJaWYgWyAteiAi
JFJFUExZIiBdOyB0aGVuCgkJCWJyZWFrCgkJZWxpZiAhIGVjaG8gJFJFUExZIHwgZ3JlcCAtcWlF
ICJeW1wtXyAnXC5cKFwpWzphbG51bTpdXStcJCI7IHRoZW4KCQkJbWVzc2FnZSBpbnZhbGlkCgkJ
ZWxzZQoJCQlDU1JfU1Q9JFJFUExZCgkJCWJyZWFrCgkJZmkKCWRvbmUKCW1lc3NhZ2UgcHJvbXB0
ICdDb3VudHJ5JwoJd2hpbGUgcmVhZDsgZG8KCQlpZiBbIC16ICIkUkVQTFkiIF07IHRoZW4KCQkJ
YnJlYWsKCQllbGlmICEgZWNobyAkUkVQTFkgfCBncmVwIC1xRSAnXltbOmFsbnVtOl1dezJ9JCc7
IHRoZW4KCQkJbWVzc2FnZSBpbnZhbGlkCgkJZWxzZQoJCQlDU1JfQz0kUkVQTFkKCQkJYnJlYWsK
CQlmaQoJZG9uZQkKCW1lc3NhZ2UgdmVyYm9zZSAiR2VuZXJhdGluZyAkQklUUyBiaXQgUlNBIGtl
eSBmb3IgJyQxJy4iCglpZiBbIC1uICIka2V5cGFzc3dvcmQiIF07IHRoZW4KCQltZXNzYWdlIGRl
YnVnICJvcGVuc3NsIGdlbnJzYSAtYWVzMTI4IC1vdXQgJyR7S0VZX0RJUn0vJDEua2V5JyAtcGFz
c291dCBwYXNzOicqKioqKioqKicgJEJJVFMiCgkJb3BlbnNzbCBnZW5yc2EgLWFlczEyOCAtb3V0
ICIke0tFWV9ESVJ9LyQxLmtleSIgLXBhc3NvdXQgcGFzczoiJGtleXBhc3N3b3JkIiAkQklUUyAm
PiR7U1dBUH0KCQlSQz0kPwoJZWxzZQoJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgZ2VucnNhIC1v
dXQgJyR7S0VZX0RJUn0vJDEua2V5JyAkQklUUyIKCQlvcGVuc3NsIGdlbnJzYSAtb3V0ICIke0tF
WV9ESVJ9LyQxLmtleSIgJEJJVFMgJj4ke1NXQVB9CgkJUkM9JD8KCWZpCgltZXNzYWdlIGRlYnVn
ICIkKGNhdCAkU1dBUCkiCglpZiAoKFJDIT0wKSk7IHRoZW4KCQltZXNzYWdlIGVycm9yICJGYWls
ZWQgdG8gY3JlYXRlIG5ldyBjZXJ0aWZpY2F0ZS4iCgkJZ3JhY2VmdWxfZXhpdCAyCglmaQoJbWVz
c2FnZSB2ZXJib3NlICJDcmVhdGluZyBhIHNpZ25pbmcgcmVxdWVzdCBmb3IgJyQxJyAkSU5URU5U
IGNlcnRpZmljYXRlLiIKCWNhc2UgJElOVEVOVCBpbgoJCXNlcnZlciApCgkJCXR5cGU9RE5TCgkJ
CTs7CgkJaW50ZXJtZWRpYXRlICkKCQkJdHlwZT1ETlMKCQkJOzsKCQljbGllbnQgKQoJCQl0eXBl
PWVtYWlsCQoJCQk7OwoJZXNhYwoJaWYgWyAtbiAiJHN1YmplY3QiIF07IHRoZW4gIyB1c2UgdGhl
IHVzZXIgc3VwcGxpZWQgbGlzdCBvZiBzdWJqZWN0cwoJCXN1YmplY3Q9IiR0eXBlOiQoZWNobyAk
c3ViamVjdCB8IHNlZCAtciAicy8sLywgJHR5cGU6L2ciKSIKCWVsc2UgIyB1c2UgJDEgYXMgdGhl
IG9ubHkgc3ViamVjdAoJCXN1YmplY3Q9IiR0eXBlOiQxIgoJZmkKCWlmIFsgJElOVEVOVCA9ICdz
ZXJ2ZXInIF07IHRoZW4KCQllY2hvIC1lICIke0NTUl9DOj0ufVxuJHtDU1JfU1Q6PS59XG4ke0NT
Ul9MOj0ufVxuJHtDU1JfTzo9Ln1cbiR7Q1NSX09VOj0ufVxuJHtDU1JfT1UyOj0ufVxuJDFcbi5c
bi5cbi5cbiIgPiAkU1dBUAoJZWxzZQoJCWVjaG8gLWUgIiR7Q1NSX0M6PS59XG4ke0NTUl9TVDo9
Ln1cbiR7Q1NSX0w6PS59XG4ke0NTUl9POj0ufVxuJHtDU1JfT1U6PS59XG4ke0NTUl9PVTI6PS59
XG4kMVxuJE1BSUxcbi5cbi5cbiIgPiAkU1dBUAoJZmkKCWlmIFsgLW4gIiRrZXlwYXNzd29yZCIg
XTsgdGhlbgoJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgcmVxIC1jb25maWcgLi9vcGVuc3NsLmNu
ZiAtbmV3IC1rZXkgJyR7S0VZX0RJUn0vJDEua2V5JyAtcGFzc2luIHBhc3M6JyoqKioqKioqJyAt
b3V0ICcke1JFUVNfRElSfS8kMS5jc3InIC1hZGRleHQgJ3N1YmplY3RBbHROYW1lPSRzdWJqZWN0
J1xuV2l0aCBwYXJhbWV0ZXJzOlxuJChjYXQgJFNXQVApIgoJCW9wZW5zc2wgcmVxIC1jb25maWcg
Li9vcGVuc3NsLmNuZiAtbmV3IC1rZXkgIiR7S0VZX0RJUn0vJDEua2V5IiAtcGFzc2luIHBhc3M6
IiRrZXlwYXNzd29yZCIgLW91dCAiJHtSRVFTX0RJUn0vJDEuY3NyIiAtYWRkZXh0ICJzdWJqZWN0
QWx0TmFtZT0kc3ViamVjdCIgPCAkU1dBUCAmPiR7U1dBUH0yCgkJUkM9JD8KCWVsc2UKCQltZXNz
YWdlIGRlYnVnICJvcGVuc3NsIHJlcSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLW5ldyAta2V5ICck
e0tFWV9ESVJ9LyQxLmtleScgLW91dCAnJHtSRVFTX0RJUn0vJDEuY3NyJyAtYWRkZXh0ICdzdWJq
ZWN0QWx0TmFtZT0kc3ViamVjdCdcbldpdGggcGFyYW1ldGVyczpcbiQoY2F0ICRTV0FQKSIKCQlv
cGVuc3NsIHJlcSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLW5ldyAta2V5ICIke0tFWV9ESVJ9LyQx
LmtleSIgLW91dCAiJHtSRVFTX0RJUn0vJDEuY3NyIiAtYWRkZXh0ICJzdWJqZWN0QWx0TmFtZT0k
c3ViamVjdCIgPCAkU1dBUCAmPiR7U1dBUH0yCgkJUkM9JD8KCWZpCgltZXNzYWdlIGRlYnVnICIk
KGNhdCAke1NXQVB9MikiCglpZiAoKFJDIT0wKSk7IHRoZW4KCQltZXNzYWdlIGVycm9yICJGYWls
ZWQgdG8gY3JlYXRlIENlcnRpZmljYXRlIFNpZ25pbmcgUmVxdWVzdC4iCgkJZ3JhY2VmdWxfZXhp
dCAyCglmaQoJcm0gLWYgJHtTV0FQfTIgMj4mLQoJY2htb2QgMDY2MCAke0tFWV9ESVJ9LyQxLmtl
eQoJY2htb2QgMDY2MCAke1JFUVNfRElSfS8kMS5jc3IKCW1lc3NhZ2UgaW5mbyAiQ2VydGlmaWNh
dGUgU2lnbmluZyBSZXF1ZXN0IGNyZWF0aW9uIGNvbXBsZXRlLlxuQ1NSIGZpbGU6ICckREFUQS8k
Q0EvJHtSRVFTX0RJUn0vJDEuY3NyJyIKfQoKIyBTaWducyBhIHN1cHBsaWVkIGNlcnRpZmljYXRl
IHNpZ25pbmcgcmVxdWVzdCBhbmQgaW1wb3J0cyB0aGUgY2VydCB0byBBQyBYNTA5IEF1dGhvcml0
eQojIDEgPSBwYXRoIHRvIENTUiBmaWxlCiMgWzJdID0gQ0EgcGFzc3dvcmQKZnVuY3Rpb24gc2ln
bl9jc3IgewoJbG9jYWwgY2VydAoJbG9jYWwgc3ViamVjdAoJbG9jYWwgY24KCWxvY2FsIHR5cGUK
CWxvY2FsIHBhc3N3b3JkCgltZXNzYWdlIGRlYnVnICJTdGFydGluZyBjZXJ0aWZpY2F0ZSBzaWdu
aW5nIGZvciBDU1IgZmlsZSB1bmRlciBDQSAnJENBJyAoaW50ZW50OiAkSU5URU5UKSIKCWNkICIk
REFUQS8kQ0EiCgkuIC4vLnByb2ZpbGUKCWlmIFsgIiRMT0NLRUQiID0gJ3llcycgXTsgdGhlbgoJ
CWlmIFsgLXogIiQyIiBdOyB0aGVuCgkJCW1lc3NhZ2UgZXJyb3IgIkEgcGFzc3dvcmQgZm9yIENB
ICckQ0EnIGlzIHJlcXVpcmVkLiIKCQkJZ3JhY2VmdWxfZXhpdCAxCgkJZWxzZQoJCQlwYXNzd29y
ZD0kMgoJCQljaGVja19jYV9wYXNzd29yZCAiJHBhc3N3b3JkIgoJCWZpCglmaQoJaWYgWyAhIC1y
ICIkMSIgXTsgdGhlbgoJCW1lc3NhZ2UgZXJyb3IgIkZpbGUgJyQxJyBub3QgcmVhZGFibGUgb3Ig
YWNjZXNzIGRlbmllZC4iCgkJZ3JhY2VmdWxfZXhpdCAxCglmaQoJbWVzc2FnZSBkZWJ1ZyAib3Bl
bnNzbCByZXEgLWluICckMScgLXZlcmlmeSIKCW9wZW5zc2wgcmVxIC1pbiAiJDEiIC12ZXJpZnkg
Jj4kU1dBUAoJaWYgISBncmVwIC1xaSAndmVyaWZ5IG9rJyAkU1dBUDsgdGhlbgoJCW1lc3NhZ2Ug
ZXJyb3IgIk9wZW5TU0wgY291bGQgbm90IHZlcmlmeSB0aGUgc3VwcGxpZWQgQ1NSIGZpbGUuIgoJ
CW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRTV0FQKSIKCQlncmFjZWZ1bF9leGl0IDIKCWZpCgltZXNz
YWdlIGRlYnVnICIkKGNhdCAkU1dBUCkiCgljZXJ0PSQoYmFzZW5hbWUgIiQxIikKCWlmIGVjaG8g
JGNlcnQgfCBncmVwIC1xaUUgJ1wuKHBlbXxjc3J8Y3J0fGRlcikkJzsgdGhlbiAjIHJlbW92ZSBm
aWxlIGV4dGVudGlvbiBmcm9tIGNzciBpZiBpdCBleGlzdHMgKHdlIGRvbid0IHdhbnQgdG8gZW5k
IHVwIHdpdGggb3V0cHV0IGxpa2UgbXlDZXJ0LmNzci5jcnQpCgkJY2VydD0ke2NlcnQ6MDotNH0K
CWZpCgljcCAkQ09ORi91c3JfY2VydC5leHQgJHtTV0FQfS5leHQKCWNhc2UgJElOVEVOVCBpbgoJ
CXNlcnZlciApCgkJCXR5cGU9RE5TCgkJCWVjaG8gLWUgImJhc2ljQ29uc3RyYWludHM9Q0E6RkFM
U0Vcbm5zQ2VydFR5cGU9c2VydmVyXG5rZXlVc2FnZSA9IG5vblJlcHVkaWF0aW9uLCBkaWdpdGFs
U2lnbmF0dXJlLCBrZXlFbmNpcGhlcm1lbnRcbmV4dGVuZGVkS2V5VXNhZ2UgPSBzZXJ2ZXJBdXRo
IiA+PiAke1NXQVB9LmV4dAoJCQk7OwoJCWludGVybWVkaWF0ZSApCgkJCXR5cGU9RE5TCgkJCWVj
aG8gLWUgImJhc2ljQ29uc3RyYWludHM9Q0E6VFJVRVxubnNDZXJ0VHlwZT1zZXJ2ZXIsIG9ianNp
Z24iID4+ICR7U1dBUH0uZXh0CgkJCTs7CgkJY2xpZW50ICkKCQkJdHlwZT1lbWFpbAoJCQllY2hv
IC1lICJiYXNpY0NvbnN0cmFpbnRzPUNBOkZBTFNFXG5uc0NlcnRUeXBlPWNsaWVudCwgZW1haWxc
bmtleVVzYWdlID0gbm9uUmVwdWRpYXRpb24sIGRpZ2l0YWxTaWduYXR1cmUsIGtleUVuY2lwaGVy
bWVudFxuZXh0ZW5kZWRLZXlVc2FnZSA9IGNsaWVudEF1dGgsIGVtYWlsUHJvdGVjdGlvbiIgPj4g
JHtTV0FQfS5leHQKCQkJOzsKCWVzYWMKCWNuPSQob3BlbnNzbCByZXEgLWluICIkMSIgLXRleHQg
LW5vb3V0IC1yZXFvcHQgbm9fcHVia2V5LG5vX3NpZ2R1bXAsbm9faGVhZGVyLG5vX3ZlcnNpb24s
bm9faXNzdWVyLG5vX3NlcmlhbCxub192YWxpZGl0eSxub19zaWduYW1lLG5vX2V4dGVuc2lvbnMg
fCBncmVwIC1pRSAnc3ViamVjdDonIHwgY3V0IC1kJzonIC1mMikKCXN1YmplY3Q9JChvcGVuc3Ns
IHJlcSAtaW4gIiQxIiAtdGV4dCAtbm9vdXQgLXJlcW9wdCBub19wdWJrZXksbm9fc2lnZHVtcCxu
b19oZWFkZXIsbm9fdmVyc2lvbixub19pc3N1ZXIsbm9fc2VyaWFsLG5vX3N1YmplY3Qsbm9fdmFs
aWRpdHksbm9fc2lnbmFtZSB8IGdyZXAgLWlBMSAtRSAnc3ViamVjdCBhbHRlcm5hdGl2ZSBuYW1l
JyB8IHRhaWwgLTEgfCBzZWQgLXIgJ3MvICArLy9nJyB8IHNlZCAtciAicy8sIC8sL2ciKQoJaWYg
WyAtbiAiJHN1YmplY3QiIF07IHRoZW4gIyBleHRyYWN0IHN1YmplY3RzIGZyb20gdGhlIENTUiBs
ZWF2aW5nIHR5cGVzIHVuY2hhbmdlZAoJCWVjaG8gLWUgInN1YmplY3RBbHROYW1lPSRzdWJqZWN0
IiA+PiAke1NXQVB9LmV4dAoJZWxzZSAjIHVzZSB0aGUgQ04gYW5kIHNldCB0aGUgdHlwZSBhY2Nv
cmRpbmcgdG8gaW50ZW50CgkJZWNobyAtZSAic3ViamVjdEFsdE5hbWU9JHR5cGU6JChnZXRfZG5f
c2lnbmlmaWNhbnRfcGFydCAiJGNuIikiID4+ICR7U1dBUH0uZXh0CglmaQoJbWVzc2FnZSBkZWJ1
ZyAiU2V0dGluZyB1cCBjdXN0b20gWDUwOSBleHRlbnNpb246XG4kKHRhaWwgLTcgJHtTV0FQfS5l
eHQpIgoJbWVzc2FnZSB2ZXJib3NlICJTaWduaW5nIHRoZSAnJGNlcnQnICRJTlRFTlQgY2VydGlm
aWNhdGUuIgoJaWYgWyAtbiAiJHBhc3N3b3JkIiBdOyB0aGVuCgkJbWVzc2FnZSBkZWJ1ZyAib3Bl
bnNzbCBjYSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLXBhc3NpbiBwYXNzOicqKioqKioqKicgLWlu
ICckMScgLW91dCAnJHtDRVJUX0RJUn0vJGNlcnQuY3J0JyAtZXh0ZmlsZSAke1NXQVB9LmV4dCIK
CQlvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtcGFzc2luIHBhc3M6IiRwYXNzd29y
ZCIgLWluICIkMSIgLW91dCAiJHtDRVJUX0RJUn0vJGNlcnQuY3J0IiAtZXh0ZmlsZSAke1NXQVB9
LmV4dCA8IC5hdXRvYWNjZXB0ICY+JHtTV0FQfQoJCVJDPSQ/CgllbHNlCgkJbWVzc2FnZSBkZWJ1
ZyAib3BlbnNzbCBjYSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLWluICckMScgLW91dCAnJHtDRVJU
X0RJUn0vJGNlcnQuY3J0JyAtZXh0ZmlsZSAke1NXQVB9LmV4dCIKCQlvcGVuc3NsIGNhIC1jb25m
aWcgLi9vcGVuc3NsLmNuZiAtaW4gIiQxIiAtb3V0ICIke0NFUlRfRElSfS8kY2VydC5jcnQiIC1l
eHRmaWxlICR7U1dBUH0uZXh0IDwgLmF1dG9hY2NlcHQgJj4ke1NXQVB9CgkJUkM9JD8KCWZpCglt
ZXNzYWdlIGRlYnVnICIkKGNhdCAkU1dBUCkiCglpZiAoKFJDIT0wKSk7IHRoZW4KCQltZXNzYWdl
IGVycm9yICJGYWlsZWQgdG8gc2lnbiBjZXJ0aWZpY2F0ZSAnJGNlcnQnIgoJCW1lc3NhZ2UgZXJy
b3IgIiQoZ3JlcCAtaSBtaXNzaW5nICRTV0FQKSIKCQlncmFjZWZ1bF9leGl0IDIKCWZpCgljaG1v
ZCAwNjYwICIke0NFUlRfRElSfS8kY2VydC5jcnQiCgltZXNzYWdlIGluZm8gJ0NlcnRpZmljYXRl
IHNpZ25pbmcgY29tcGxldGUuJwp9CgojIFJldHVybnMgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgcG9y
dGlvbiBvZiBhIEROCiMgIFVsdGltYXRlbHksIGEgRE4gY2FuIGJlIG9yZGVyZWQgbGVhc3Qgc2ln
bmlmaWNhbnQgcGFydCBmaXJzdCBvciBsYXN0LgojICBJbiBhZGRpdGlvbiwgdGhlIG1vc3Qgc2ln
bmlmaWNhbnQgYml0IG1pZ2h0IG5vdCBiZSB0aGUgQ29tbW9uIE5hbWUgKENOKQojICBTbyB3ZSBu
ZWVkIHRvIGRldGVybWluZSB3aGV0aGVyIGl0IGlzIG9yZGVyZWQgQyxTVCxMLE8sT1UsQ04gb3Ig
Q04sT1UsTyxMLFNULEMuCiMgIFRoZSB0cmlja3kgYml0IGlzIHRoYXQgYWxsIGVsZW1lbnRzIGFy
ZSBvcHRpb25hbCBleGNlcHQgMSAoYW55IG9uZSkuCiMgIFdlIGFsc28gc3RyaXAgb3V0IGFueSAn
ZW1haWwnIHJlbGF0ZWQgc2VjdGlvbnMgYW5kIGFueSBsZWFkaW5nICcvJyAoaWYgYW55KS4KZnVu
Y3Rpb24gZ2V0X2RuX3NpZ25pZmljYW50X3BhcnQgewoJbG9jYWwgZmlyc3QKCWxvY2FsIGxhc3QK
CWxvY2FsIEROCglETj0kKGVjaG8gIiQxIiB8IHNlZCAtciAncy8sID8vXC8vZycgfCBzZWQgLXIg
J3MvXC8/KGVtYWlsfEVNQUlMKVtbOmFscGhhOl1dKj1bXlwvXSsvL2cnIHwgc2VkIC1yICdzL15c
Ly8vZycpICNzdHJpcCBvZmYgZW1haWwgZmllbGQgaWYgYW55CgkjIGRvbid0IGJvdGhlciB3aXRo
IGFueSBvZiB0aGlzIGlmIHRoZXJlIGlzIG9ubHkgMSBlbGVtZW50LCBqdXN0IHJldHVybiBpdAoJ
aWYgISBlY2hvICIkRE4iIHwgZ3JlcCAtcUUgJz0uKz0nOyB0aGVuICNzaW5nbGUgZWxlbWVudCBE
TgoJCWVjaG8gIiRETiIgfCBjdXQgLWQnPScgLWYyCgllbHNlICN3ZSdyZSBkZWFsaW5nIHdpdGgg
bXVsdGkgZWxlbWVudCBETnMgc28gc29ydCB0aGVtIG91dAoJCSMgZG9lcyB0aGUgbGFzdCBlbGVt
ZW50IGNvbWUgbG9naWNhbGx5IGJlZm9yZSBvciBhZnRlciB0aGUgZmlyc3Q/CgkJY2FzZSAkKGVj
aG8gIiRETiIgfCBjdXQgLWQnPScgLWYxKSBpbgoJCQlDTiB8IGNuIHwgQ24gKQoJCQkJZmlyc3Q9
MQoJCQkJOzsKCQkJT1UgfCBvdSB8IE91ICkKCQkJCWZpcnN0PTIKCQkJCTs7CgkJCU8gfCBvICkK
CQkJCWZpcnN0PTMKCQkJCTs7CgkJCUwgfCBsICkKCQkJCWZpcnN0PTQKCQkJCTs7CgkJCVNUIHwg
c3QgfCBTdCApCgkJCQlmaXJzdD01CgkJCQk7OwoJCQlDIHwgYyApCgkJCQlmaXJzdD02CgkJCQk7
OwoJCQkqICkKCQkJCWZpcnN0PTcKCQkJCTs7CgkJZXNhYwoJCWNhc2UgJChlY2hvICIkRE4iIHwg
Z3JlcCAtaW9FICdbWzphbHBoYTpdXXsxLDJ9PVtcLVwqXyBcLls6YWxudW06XV0rJCcgfCBjdXQg
LWQnPScgLWYxKSBpbgoJCQlDTiB8IGNuIHwgQ24gKQoJCQkJbGFzdD0xCgkJCQk7OwoJCQlPVSB8
IG91IHwgT3UgKQoJCQkJbGFzdD0yCgkJCQk7OwoJCQlPIHwgbyApCgkJCQlsYXN0PTMKCQkJCTs7
CgkJCUwgfCBsICkKCQkJCWxhc3Q9NAoJCQkJOzsKCQkJU1QgfCBzdCB8IFN0ICkKCQkJCWxhc3Q9
NQoJCQkJOzsKCQkJQyB8IGMgKQoJCQkJbGFzdD02CgkJCQk7OwoJCQkqICkKCQkJCWxhc3Q9NwoJ
CQkJOzsKCQllc2FjCgkJaWYgKChmaXJzdD5sYXN0KSk7IHRoZW4gI2xlYXN0IHNpZ25pZmljYW50
IHBhcnQgZmlyc3QKCQkJZWNobyAiJEROIiB8IGdyZXAgLWlvRSAnW1s6YWxwaGE6XV17MSwyfT1b
XC1cKl8gXC5bOmFsbnVtOl1dKyQnIHwgY3V0IC1kJz0nIC1mMgoJCWVsc2UgI2xlYXN0IHNpZ25p
ZmljYW50IHBhcnQgbGFzdAoJCQllY2hvICIkRE4iIHwgZ3JlcCAtaW9FICdeW1s6YWxwaGE6XV17
MSwyfT1bXC1cKl8gXC5bOmFsbnVtOl1dKycgfCBjdXQgLWQnPScgLWYyCgkJZmkKCWZpCn0KCiMg
T3V0cHV0cyB0aGUgdmFsaWRpdHkgcGVyaW9kIG9mIHRoZSB0aGUgY2VydGlmaWNhdGUgYW5kIHRo
ZSBzdWJqZWN0cwojIFsxXSA9IGNlcnRpZmljYXRlIG5hbWUKZnVuY3Rpb24gZ2V0X2RhdGVzIHsK
CWxvY2FsIHgKCWxvY2FsIHkKCWxvY2FsIHoKCW1lc3NhZ2UgZGVidWcgIkdldHRpbmcgdmFsaWRp
dHkgcGVyaW9kIGZvciBjZXJ0aWZpY2F0ZSBpbiBDQSAnJENBJyAoaW50ZW50OiAkSU5URU5UKSA6
ICckMSciCgljZCAiJERBVEEvJENBIgoJaWYgWyAteiAkMSBdOyB0aGVuCgkJbWVzc2FnZSBkZWJ1
ZyAib3BlbnNzbCB4NTA5IC1pbiAuL2NhLmNydCAtc2VyaWFsIC1kYXRlcyAtbm9vdXQiCgkJeD0k
KG9wZW5zc2wgeDUwOSAtaW4gLi9jYS5jcnQgLXNlcmlhbCAtZGF0ZXMgLW5vb3V0KQoJCXo9JChv
cGVuc3NsIHg1MDkgLWluIC4vY2EuY3J0IC10ZXh0IC1ub291dCAtY2VydG9wdCBub19wdWJrZXks
bm9fc2lnZHVtcCxub19oZWFkZXIsbm9fdmVyc2lvbixub19pc3N1ZXIsbm9fc2VyaWFsLG5vX3N1
YmplY3Qsbm9fdmFsaWRpdHksbm9fc2lnbmFtZSB8IGdyZXAgLWlBMSAtRSAnc3ViamVjdCBhbHRl
cm5hdGl2ZSBuYW1lJyB8IHRhaWwgLTEgfCBzZWQgLXIgJ3MvICArLy9nJykKCWVsaWYgWyAhIC1m
ICR7Q0VSVF9ESVJ9LyQxLmNydCBdOyB0aGVuCgkJbWVzc2FnZSBlcnJvciAiTm8gY2VydGlmaWNh
dGUgZm91bmQgZm9yICckMScuIgoJCWdyYWNlZnVsX2V4aXQgMQoJZWxzZQoJCW1lc3NhZ2UgZGVi
dWcgIm9wZW5zc2wgeDUwOSAtaW4gJHtDRVJUX0RJUn0vJDEuY3J0IC1zZXJpYWwgLWRhdGVzIC1u
b291dCIKCQl4PSQob3BlbnNzbCB4NTA5IC1pbiAke0NFUlRfRElSfS8kMS5jcnQgLXNlcmlhbCAt
ZGF0ZXMgLW5vb3V0KQoJCXo9JChvcGVuc3NsIHg1MDkgLWluICR7Q0VSVF9ESVJ9LyQxLmNydCAt
dGV4dCAtbm9vdXQgLWNlcnRvcHQgbm9fcHVia2V5LG5vX3NpZ2R1bXAsbm9faGVhZGVyLG5vX3Zl
cnNpb24sbm9faXNzdWVyLG5vX3NlcmlhbCxub19zdWJqZWN0LG5vX3ZhbGlkaXR5LG5vX3NpZ25h
bWUgfCBncmVwIC1pQTEgLUUgJ3N1YmplY3QgYWx0ZXJuYXRpdmUgbmFtZScgfCB0YWlsIC0xIHwg
c2VkIC1yICdzLyAgKy8vZycpCglmaQoJeT0kKGVjaG8gIiR4IiB8IGdyZXAgJ15zZXJpYWw9JyB8
IGN1dCAtZD0gLWYyKQoJeT0kKGdyZXAgLUUgIlw8JHlcPiIgaW5kZXgudHh0KQoJY2FzZSAke3k6
MDoxfSBpbgoJCVYgKQoJCQltZXNzYWdlIGluZm8gJ3N0YXR1cz12YWxpZCcKCQkJOzsKCQlSICkK
CQkJbWVzc2FnZSBpbmZvICdzdGF0dXM9cmV2b2tlZCcKCQkJOzsKCQlFICkKCQkJbWVzc2FnZSBp
bmZvICdzdGF0dXM9ZXhwaXJlZCcKCQkJOzsKCWVzYWMKCW1lc3NhZ2UgaW5mbyAiJHhcblN1Ympl
Y3RzPSR6Igp9CgojIEFkZHMgYSBjZXJ0aWZpY2F0ZSB0byB0aGUgQ2VydGlmaWNhdGUgUmV2b2Nh
dGlvbiBMaXN0IChDUkwpCiMgMSA9IGNvbW1vbiBuYW1lCiMgWzJdID0gQ0EgcGFzc3dvcmQKZnVu
Y3Rpb24gcmV2b2tlIHsKCWxvY2FsIHBhc3N3b3JkCglpc19sb2NrZWQKCWxvY2sKCW1lc3NhZ2Ug
ZGVidWcgIlJldm9raW5nIGNlcnRpZmljYXRlIGluIENBICckQ0EnIDogJyQxJyIKCWNkICIkREFU
QS8kQ0EiCglpZiBbICIkTE9DS0VEIiA9ICd5ZXMnIF07IHRoZW4KCQlpZiBbIC16ICIkMiIgXTsg
dGhlbgoJCQltZXNzYWdlIGVycm9yICJBIHBhc3N3b3JkIGZvciBDQSAnJENBJyBpcyByZXF1aXJl
ZC4iCgkJCWdyYWNlZnVsX2V4aXQgMQoJCWVsc2UKCQkJcGFzc3dvcmQ9JDIKCQkJY2hlY2tfY2Ff
cGFzc3dvcmQgIiRwYXNzd29yZCIKCQlmaQoJZmkKCWlmIFsgISAtZiAke0NFUlRfRElSfS8kMS5j
cnQgXTsgdGhlbgoJCW1lc3NhZ2UgZXJyb3IgIk5vIGNlcnRpZmljYXRlIGZvdW5kIGZvciAnJDEn
LiIKCQlncmFjZWZ1bF9leGl0IDEKCWZpCgltZXNzYWdlIHZlcmJvc2UgIlJldm9raW5nIGNlcnRp
ZmljYXRlIGZvciAnJDEnLiIKCWlmIFsgLW4gIiRwYXNzd29yZCIgXTsgdGhlbgoJCW1lc3NhZ2Ug
ZGVidWcgIm9wZW5zc2wgY2EgLWNvbmZpZyAuL29wZW5zc2wuY25mIC1wYXNzaW4gcGFzczonKioq
KioqKionIC1yZXZva2UgJyR7Q0VSVF9ESVJ9LyQxLmNydCcgJj4kU1dBUCIKCQlvcGVuc3NsIGNh
IC1jb25maWcgLi9vcGVuc3NsLmNuZiAtcGFzc2luIHBhc3M6IiRwYXNzd29yZCIgLXJldm9rZSAi
JHtDRVJUX0RJUn0vJDEuY3J0IiAmPiRTV0FQCgkJUkM9JD8KCWVsc2UKCQltZXNzYWdlIGRlYnVn
ICJvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtcmV2b2tlICcke0NFUlRfRElSfS8k
MS5jcnQnICY+JFNXQVAiCgkJb3BlbnNzbCBjYSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLXJldm9r
ZSAiJHtDRVJUX0RJUn0vJDEuY3J0IiAmPiRTV0FQCgkJUkM9JD8KCWZpCgltZXNzYWdlIGRlYnVn
ICIkKGNhdCAkU1dBUCkiCglpZiAoKFJDIT0wKSk7IHRoZW4KCQltZXNzYWdlIGVycm9yICJGYWls
ZWQgdG8gcmV2b2tlIGNlcnRpZmljYXRlICckMScuIgoJCWdyYWNlZnVsZV9leGl0IDIKCWZpCglt
ZXNzYWdlIGluZm8gIkNlcnRpZmljYXRlIGZvciAnJDEnIGhhcyBiZWVuIHJldm9rZWQuIgp9Cgoj
IFVwZGF0ZSBDUkwKIyBbMV0gPSBDQSBwYXNzd29yZApmdW5jdGlvbiB1cGRhdGVfY3JsIHsKCWxv
Y2FsIHBhc3N3b3JkCglpc19sb2NrZWQKCWxvY2sKCW1lc3NhZ2UgZGVidWcgIlVwZGF0aW5nIENS
TCBmb3IgQ0EgJyRDQScuIgoJaWYgWyAhIC1mICIkREFUQS8kQ0EvJHtDUkxfRElSfS9jYS5jcmwi
IF07IHRoZW4KCQltZXNzYWdlIGVycm9yICdZb3UgaGF2ZSB0byBjcmVhdGUgYSBuZXcgQ2VydGlm
aWNhdGUgQXV0aG9yaXR5IGZpcnN0LicKCQlncmFjZWZ1bF9leGl0IDEKCWZpCgljZCAiJERBVEEv
JENBIgoJaWYgWyAiJExPQ0tFRCIgPSAneWVzJyBdOyB0aGVuCgkJaWYgWyAteiAiJDEiIF07IHRo
ZW4KCQkJbWVzc2FnZSBlcnJvciAiQSBwYXNzd29yZCBmb3IgQ0EgJyRDQScgaXMgcmVxdWlyZWQu
IgoJCQlncmFjZWZ1bF9leGl0IDEKCQllbHNlCgkJCXBhc3N3b3JkPSQxCgkJCWNoZWNrX2NhX3Bh
c3N3b3JkICIkcGFzc3dvcmQiCgkJZmkKCWZpCglpZiBbIC1uICIkcGFzc3dvcmQiIF07IHRoZW4K
CQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtcGFzc2lu
IHBhc3M6JyoqKioqKioqJyAtZ2VuY3JsIC1vdXQgJyR7Q1JMX0RJUn0vY2EuY3JsJyIKCQlvcGVu
c3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtcGFzc2luIHBhc3M6IiRwYXNzd29yZCIgLWdl
bmNybCAtb3V0ICIke0NSTF9ESVJ9L2NhLmNybCIgJj4kU1dBUAoJCVJDPSQ/CgllbHNlCgkJbWVz
c2FnZSBkZWJ1ZyAib3BlbnNzbCBjYSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLWdlbmNybCAtb3V0
ICcke0NSTF9ESVJ9L2NhLmNybCciCgkJb3BlbnNzbCBjYSAtY29uZmlnIC4vb3BlbnNzbC5jbmYg
LWdlbmNybCAtb3V0ICIke0NSTF9ESVJ9L2NhLmNybCIgJj4kU1dBUAoJCVJDPSQ/CglmaQoJbWVz
c2FnZSBkZWJ1ZyAiJChjYXQgJFNXQVApIgoJaWYgKChSQyE9MCkpOyB0aGVuCgkJbWVzc2FnZSBl
cnJvciAiRmFpbGVkIHRvIHVwZGF0ZSBDUkwuIgoJCWdyYWNlZnVsX2V4aXQgMgoJZmkKCS4gLi8u
cHJvZmlsZQoJaWYgWyAtbiAiJHtDUkxfZXhwb3J0X3BhdGh9IiBdOyB0aGVuCgkJY3AgJHtDUkxf
RElSfS9jYS5jcmwgIiR7Q1JMX2V4cG9ydF9wYXRofSIgMj4mLQoJZmkgCgltZXNzYWdlIGluZm8g
J0NSTCB1cGRhdGUgY29tcGxldGUuJwp9CgojIE91dHB1dCB0aGUgdmFsaWRpdHkgb2YgdGhlIENS
TApmdW5jdGlvbiBnZXRfY3JsX2RhdGVzIHsKCW1lc3NhZ2UgZGVidWcgIkdldHRpbmcgQ1JMIGRh
dGVzIGZvciBDQSAnJENBJyIKCWlmIFsgISAtZiAiJERBVEEvJENBLyR7Q1JMX0RJUn0vY2EuY3Js
IiBdOyB0aGVuCgkJbWVzc2FnZSBlcnJvciAnWW91IGhhdmUgdG8gY3JlYXRlIGEgbmV3IENlcnRp
ZmljYXRlIEF1dGhvcml0eSBmaXJzdC4nCgkJZ3JhY2VmdWxfZXhpdCAxCglmaQoJY2QgIiREQVRB
LyRDQSIKCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgY3JsIC1pbiBcIiREQVRBLyRDQS8ke0NSTF9E
SVJ9L2NhLmNybFwiIC1sYXN0dXBkYXRlIC1uZXh0dXBkYXRlIC1ub291dCIKCW9wZW5zc2wgY3Js
IC1pbiAiJERBVEEvJENBLyR7Q1JMX0RJUn0vY2EuY3JsIiAtbGFzdHVwZGF0ZSAtbmV4dHVwZGF0
ZSAtbm9vdXQgJj4kU1dBUAoJbWVzc2FnZSBpbmZvICIkKGNhdCAkU1dBUCkiCn0KCiMgRGVsZXRl
cyBhIGNlcnRpZmljYXRlIGFuZCBrZXkgZmlsZXMgYnV0IGRvZXMgbm90IGNoYW5nZSB0aGUgQ1JM
CiMgMSA9IGNvbW1vbiBuYW1lCmZ1bmN0aW9uIGRlbGV0ZSB7Cglpc19sb2NrZWQKCWxvY2sKCWxv
Y2FsIHgKCWNkICIkREFUQS8kQ0EiCgltZXNzYWdlIGRlYnVnICJBdHRlbXB0aW5nIHRvIGRlbGV0
ZSBjZXJ0aWZpY2F0ZSBpbiBDQSAnJENBJyA6ICckMSciCglpZiBbICEgLWYgJHtDRVJUX0RJUn0v
JDEuY3J0IF07IHRoZW4KCQltZXNzYWdlIGVycm9yICJObyBjZXJ0aWZpY2F0ZSBmb3VuZCBmb3Ig
JyQxJy4iCgkJZ3JhY2VmdWxfZXhpdCAxCglmaQoJbWVzc2FnZSB2ZXJib3NlICJHZXR0aW5nIGlu
Zm8gb24gY2VydGlmaWNhdGUgJyQxJy4iCgl4PSQob3BlbnNzbCB4NTA5IC1pbiAiJHtDRVJUX0RJ
Un0vJDEuY3J0IiAtc2VyaWFsIC1ub291dCkKCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgeDUwOSAt
aW4gXCIke0NFUlRfRElSfS8kMS5jcnRcIiAtc2VyaWFsIC1ub291dFxuJHgiCgl4PSQoZWNobyAk
eCB8IGN1dCAtZD0gLWYyKQoJbWVzc2FnZSB2ZXJib3NlICJEZWxldGluZyBjZXJ0aWZpY2F0ZSBm
b3IgJyQxJy4iCgltZXNzYWdlIGRlYnVnICJybSAtcmYgJHtDRVJUX0RJUn0vJDEuY3J0IgoJcm0g
LXJmICR7Q0VSVF9ESVJ9LyQxLmNydAoJbWVzc2FnZSB2ZXJib3NlICJEZWxldGluZyBrZXlzIGZv
ciAnJDEnLiIKCW1lc3NhZ2UgZGVidWcgInJtIC1yZiAke0tFWV9ESVJ9LyQxLmtleSIKCXJtIC1y
ZiAke0tFWV9ESVJ9LyQxLmtleQoJbWVzc2FnZSB2ZXJib3NlICJVcGRhdGluZyB0aGUgb3BlbnNz
bCBkYXRhYmFzZS4iCglncmVwIC1FdiAiXDwkeFw+IiBpbmRleC50eHQgPiAkU1dBUAoJbXYgLWYg
JFNXQVAgaW5kZXgudHh0CgltZXNzYWdlIGluZm8gIkNlcnRpZmljYXRlICckMScgaGFzIGJlZW4g
ZGVsZXRlZC4iCn0KCiMgT3V0cHV0cyB0b3RhbCBudW1iZXIgb2YgY2VydGlmaWNhdGVzLCByZXZv
a2VkIGFuZCBhY3RpdmUKZnVuY3Rpb24gc2hvd19zdGF0dXMgewoJbG9jYWwgeAoJbG9jYWwgeQoJ
bG9jYWwgegoJaWYgWyAhIC1mICIkREFUQS8kQ0EvaW5kZXgudHh0IiBdOyB0aGVuCgkJbWVzc2Fn
ZSBpbmZvICItLS0gQUMgWDUwOSBBdXRob3JpdHkgc3RhdHVzIC0tLVxuXG5UaGVyZSBpcyBubyBk
ZWZpbmVkIENlcnRpZmljYXRlIEF1dGhvcml0eS5cbiIKCQlyZXR1cm4KCWZpCgljZCAiJERBVEEv
JENBIgoJeD0kKGdyZXAgLUVjICdeVicgaW5kZXgudHh0KQoJeT0kKGdyZXAgLUVjICdeRScgaW5k
ZXgudHh0KQoJej0kKGdyZXAgLUVjICdeUicgaW5kZXgudHh0KQoJbWVzc2FnZSBpbmZvICItLS0g
QUMgWDUwOSBBdXRob3JpdHkgc3RhdHVzIGZvciAkQ0EgKGludGVudDogJElOVEVOVCkgLS0tCgog
IFZhbGlkIENlcnRpZmljYXRlczogJHgKRXhwaXJlZCBDZXJ0aWZpY2F0ZXM6ICR5ClJldm9rZWQg
Q2VydGlmaWFjdGVzOiAkegogIFRvdGFsIENlcnRpZmljYXRlczogJCgoeCt5K3opKVxuIgp9Cgoj
IExpc3QgYWxsIGNlcnRpZmljYXRlcyBhY2NvcmRpbmcgdG8gQ0EKIyBbMV0gPSBDQQpmdW5jdGlv
biBsaXN0X2NlcnRzIHsKCWxvY2FsIGRpcgoJbG9jYWwgY2VydAoJbG9jYWwgbHMKCWxvY2FsIHgK
CW1lc3NhZ2UgaW5mbyAiLS0tIEFDIFg1MDkgQXV0aG9yaXR5IGNlcnRpZmljYXRlIGxpc3QgLS0t
XG4iCgljZCAiJERBVEEiCglpZiBbIC1uICIkMSIgXTsgdGhlbgoJCWxzPSgkMSkKCWVsc2UKCQls
cz0kKGxzKQoJZmkKCWZvciBkaXIgaW4gJGxzOyBkbwoJCWlmIFsgLWQgIiRkaXIvJHtDRVJUX0RJ
Un0iIF0gJiYgWyAtciAiJGRpci9vcGVuc3NsLmNuZiIgXTsgdGhlbiAjIHdlIGFzc3VtZSB3ZSBo
YXZlIGEgY2VydGlmaWNhdGUgZGlyCgkJCS4gJGRpci8uc2V0ZW52CgkJCW1lc3NhZ2UgaW5mbyAi
Q2VydGlmaWNhdGUgQXV0aG9yaXR5ICckZGlyJyAoaW50ZW50OiAkSU5URU5UKSBjZXJ0aWZpY2F0
ZSBsaXN0OiIKCQkJY2QgJGRpci8ke0NFUlRfRElSfQoJCQlmb3IgY2VydCBpbiAkKGxzICouY3J0
IDI+Ji0pOyBkbwoJCQkJbWVzc2FnZSBpbmZvICJcdCRjZXJ0IgoJCQlkb25lCgkJCWVjaG8gLWUg
IlxuIgoJCQljZCAiJERBVEEiCgkJZmkKCWRvbmUKfQoKIyBTZXRzIHZlcmJvc2Ugb3V0cHV0CmZ1
bmN0aW9uIHNldF92ZXJib3NlIHsKCWlmIGVjaG8gIiRAIiB8IGdyZXAgLXFFICcoKC12KXwoLS12
ZXJib3NlKSkkJzsgdGhlbgoJCVZFUkJPU0U9MQoJZmkKfQoKIyBWYWxpZGF0ZXMgYSBwYXNzd29y
ZCBhcyBjb3JyZWN0IGZvcm1hdApmdW5jdGlvbiB2YWxpZGF0ZV9wYXNzd29yZCB7CglpZiAhIGVj
aG8gJDEgfCBncmVwIC1xRSAnXltbOmFsbnVtOl1bOnB1bmN0Ol1dezgsMjB9JCcgfHwgWyAiJDEi
ID0gJy0tdmVyYm9zZScgXTsgdGhlbgoJCW1lc3NhZ2UgZXJyb3IgIlBhc3N3b3JkIGZvcm1hdCBp
cyBpbnZhbGlkLiBNdXN0IGJlIDgtMjAgYWxwaGFudW1lcmljcyBvciBwdW5jdHVhdGlvbnMuIgoJ
ZmkKfQoKIyBWYWxpZGF0ZXMgdGhhdCBhIHN1cHBsaWVkIENBIGV4aXN0cyBhbmQgc2V0cyB0aGUg
cnVubmluZyBjb250ZXh0CmZ1bmN0aW9uIHZhbGlkYXRlX0NBIHsKCWlmIFsgISAtZCAiJERBVEEv
JDEiIF07IHRoZW4KCQltZXNzYWdlIGVycm9yICJObyBzdWNoIENlcnRpZmljYXRlIEF1dGhvcml0
eSBleGlzdHMgaW4gJyREQVRBJy4iCgkJZ3JhY2VmdWxfZXhpdCAxCgllbHNlCgkJQ0E9JDEKCQku
ICIkREFUQS8kQ0EvLnNldGVudiIKCWZpCn0KCiMgTW92ZXMgdGhlIGRhdGFzdG9yZQpmdW5jdGlv
biBtb3ZlX2RhdGFzdG9yZSB7Cglpc19sb2NrZWQKCWxvY2sKCWxvY2FsIGRpcgoJbG9jYWwgYmFz
ZQoJbG9jYWwgY2EKCW1lc3NhZ2UgZGVidWcgIkF0dGVtcHRpbmcgdG8gbW92ZSBkYXRhc3RvcmUg
ZnJvbSAnJERBVEEnLiIKCWlmICEgZWNobyAiJDEiIHwgZ3JlcCAtcWlFICdeKC9bXC1fXC4gXChc
KVs6YWxudW06XV0rKSovPyQnIHx8IFsgLXogIiQxIiBdOyB0aGVuCgkJbWVzc2FnZSBlcnJvciAn
Tm90IGEgcG9zc2libGUgYWJzb2x1dGUgcGF0aC4nCgkJZ3JhY2VmdWxfZXhpdCAxCglmaQoJYmFz
ZT0kKGJhc2VuYW1lICIkMSIpCglkaXI9JChkaXJuYW1lICIkMSIpCglpZiBbICEgLWQgIiRkaXIi
IF07IHRoZW4KCQlpZiAhIG1rZGlyIC1wICIkZGlyIjsgdGhlbgoJCQltZXNzYWdlIGVycm9yICJG
YWlsZWQgdG8gY3JlYXRlIGRhdGFzb3JlIGJhc2UgJyRkaXInLiIKCQkJZ3JhY2VmdWxfZXhpdCAy
CgkJZmkKCQljaG93biByb290OmFwYWNoZSAiJGRpciIKCQljaG1vZCA2NzcwICIkZGlyIgoJZmkK
CWlmICEgbXYgLWYgIiREQVRBIiAiJGRpci8kYmFzZSI7IHRoZW4KCQltZXNzYWdlIGVycm9yICJG
YWlsZWQgdG8gcmVsb2NhdGUgJyREQVRBJyB0byAnJGRpci8kYmFzZScuIgoJCWdyYWNlZnVsX2V4
aXQgMgoJZmkKCSMgcmV3cml0ZSB0aGUgZGF0YXN0b3JlIHBhdGggaW4gYW55IG9wZW5zc2wuY29u
ZiBmaWxlcwoJZm9yIGNhIGluICQobHMgJGRpci8kYmFzZSk7IGRvCgkJaWYgWyAtZiAkZGlyLyRi
YXNlLyRjYS9vcGVuc3NsLmNuZiBdOyB0aGVuCgkJCS4gJGRpci8kYmFzZS8kY2EvLnByb2ZpbGUK
CQkJLiAkZGlyLyRiYXNlLyRjYS8uaW1tdXRhYmxlCgkJCWNhc2UgJGludGVudCBpbgoJCQkJc2Vy
dmVyICkKCQkJCQlNQUtFX0NBPUZBTFNFCgkJCQkJOzsKCQkJCWNsaWVudCApCgkJCQkJTUFLRV9D
QT1GQUxTRQoJCQkJCTs7CgkJCQkqICkKCQkJCQl1bnNldCBNQUtFX0NBCgkJCQkJOzsKCQkJZXNh
YwoJCQlpZiAhIG00IC1ERENBRElSRD0iJGRpci8kYmFzZS8kY2EiIC1ERERBWVNEPSRkYXlzIC1E
RENEPSR7Q0FfQ30gLUREcmVzdHJpY3RfQ0Q9JHtyZXN0cmljdF9DTjo9b3B0aW9uYWx9IC1ERHJl
c3RyaWN0X1NURD0ke3Jlc3RyaWN0X1NUOi1vcHRpb25hbH0gLUREcmVzdHJpY3RfT0Q9JHtyZXN0
cmljdF9POj1vcHRpb25hbH0gLUREcmVzdHJpY3RfT1VEPSR7cmVzdHJpY3RfT1U6PW9wdGlvbmFs
fSAtRERyZXN0cmljdF9MRD0ke3Jlc3RyaWN0X0w6PW9wdGlvbmFsfSAtRERCSVRTRD0kYml0cyAt
RERTVEQ9IiR7Q0FfU1R9IiAtRERMRD0iJHtDQV9MfSIgLURET0Q9IiR7Q0FfT30iIC1ERE9VRD0i
JHtDQV9PVX0iIC1ERE9VMkQ9IiR7Q0FfT1UyfSIgLURNQUtFX0NBPSIke01BS0VfQ0E6LUZBTFNF
fSIgLUREQ1JMREFZUz0ke0NSTF9kYXlzfSAkQ09ORi9vcGVuc3NsLmNuZi50ZW1wbGF0ZSA+ICRk
aXIvJGJhc2UvJGNhL29wZW5zc2wuY25mIDI+JFNXQVA7IHRoZW4KCQkJCW1lc3NhZ2UgZGVidWcg
IiQoY2F0ICRTV0FQKSIKCQkJCW1lc3NhZ2UgZXJyb3IgIkZhaWxlZCB0byB1cGRhdGUgT3BlblNT
TCBjb250cm9sIGZpbGUuIgoJCQkJZ3JhY2VmdWxfZXhpdCAyCgkJCWZpCgkJZmkKCWRvbmUKCSMg
dGlkeSB1cAoJZWNobyAiJGRpci8kYmFzZSIgPiAkQ09ORi9kYXRhcGF0aAoJREFUQT0iJGRpci8k
YmFzZSIgI3dlIG5lZWQgdGhpcyB0byByZXBvaW50IHRoZSBsb2NrIGZpbGUKCURFQlVHX0xPRz0k
REFUQS9kZWJ1Zy5sb2cgI3dlIG5lZWQgdG8gcmVwb2ludCB0aGUgZGVidWcgbG9nCgltZXNzYWdl
IGluZm8gIlJlbG9jYXRlZCBDQSBkYXRhc3RvcmVzIHRvICckZGlyLyRiYXNlJy4iCn0KCiMgQ2hl
Y2tzIHRoZSBDQSBwYXNzd29yZCBieSBhdHRlbXB0aW5nIGEgdHJpdmlhbCBsb2dpbgojMSA9IHBh
c3N3b3JkCmZ1bmN0aW9uIGNoZWNrX2NhX3Bhc3N3b3JkIHsKCW1lc3NhZ2UgZGVidWcgIm9wZW5z
c2wgcnNhIC1pbiAkREFUQS8kQ0EvY2Eua2V5IC1wYXNzaW4gcGFzczonKioqKioqKionIC1jaGVj
ayAtbm9vdXQgMT4mLSAyPiR7U1dBUH1wIgoJaWYgISBvcGVuc3NsIHJzYSAtaW4gJERBVEEvJENB
L2NhLmtleSAtcGFzc2luIHBhc3M6IiQxIiAtY2hlY2sgLW5vb3V0IDE+Ji0gMj4ke1NXQVB9cDsg
dGhlbgoJCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICR7U1dBUH1wKSIKCQltZXNzYWdlIGVycm9yICJJ
bnZhbGlkIHBhc3N3b3JkIGZvciBDQSAnJENBJy4iCgkJZ3JhY2VmdWxfZXhpdCAxCglmaQp9Cgoj
IFNldC9jaGFuZ2UvcmVtb3ZlIGEgQ0EgcGFzc3dvcmQKZnVuY3Rpb24gc2V0X3Bhc3N3b3JkIHsK
CWxvY2FsIHBhc3N3b3JkCglpZiBbICIkTE9DS0VEIiA9ICd5ZXMnIF07IHRoZW4gI29mZmVyIHRv
IGNoYW5nZSBvciB1bnNldCB0aGUgcGFzc3dvcmQKCQltZXNzYWdlIGluZm8gIkNBICckQ0EnIGlz
IGFscmVhZHkgcGFzc3dvcmQgcHJvdGVjdGVkLiIKCQltZXNzYWdlIHByb21wdCAnRG8geW91IHdh
bnQgdG8gW0NdaGFuZ2UgdGhlIHBhc3N3b3JkIG9yIFtSXXJlbW92ZSBpdD8nCgkJd2hpbGUgcmVh
ZDsgZG8KCQkJY2FzZSAkUkVQTFkgaW4KCQkJCUMgfCBjICkKCQkJCQltZXNzYWdlIHByb21wdCAn
Q3VycmVudCBwYXNzd29yZCcKCQkJCQlyZWFkIC1zCgkJCQkJZWNobyAnJwoJCQkJCSN0ZXN0IHRo
ZSBwYXNzd29yZAoJCQkJCWNoZWNrX2NhX3Bhc3N3b3JkICIkUkVQTFkiCgkJCQkJcGFzc3dvcmQ9
JFJFUExZCgkJCQkJbWVzc2FnZSBwcm9tcHQgJ05ldyBwYXNzd29yZCcKCQkJCQl3aGlsZSByZWFk
IC1zOyBkbwoJCQkJCQllY2hvICcnCgkJCQkJCWlmIFsgLXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJ
CQkJbWVzc2FnZSBpbnZhbGlkICdQYXNzd29yZCBtdXN0IG5vdCBiZSBlbXB0eScKCQkJCQkJZWxp
ZiAhIHZhbGlkYXRlX3Bhc3N3b3JkICIkUkVQTFkiOyB0aGVuCgkJCQkJCQltZXNzYWdlIGludmFs
aWQgJ1Bhc3N3b3JkIGNhbm5vdCBiZSBvdmVyIDIwIGNoYXJhY3RlcnMnCgkJCQkJCWVsc2UKCQkJ
CQkJCUNBX3Bhc3N3b3JkPSRSRVBMWQoJCQkJCQkJYnJlYWsKCQkJCQkJZmkKCQkJCQlkb25lCgkJ
CQkJbWVzc2FnZSBwcm9tcHQgJ0NvbmZpcm0gbmV3IHBhc3N3b3JkJwoJCQkJCXdoaWxlIHJlYWQg
LXM7IGRvCgkJCQkJCWVjaG8gJycKCQkJCQkJaWYgWyAhICIkUkVQTFkiID0gIiR7Q0FfcGFzc3dv
cmR9IiBdOyB0aGVuCgkJCQkJCQltZXNzYWdlIGludmFsaWQgJ1Bhc3N3b3JkcyBkbyBub3QgbWF0
Y2gnCgkJCQkJCWVsc2UKCQkJCQkJCWxvY2tlZD15ZXMKCQkJCQkJCWJyZWFrCgkJCQkJCWZpCgkJ
CQkJZG9uZQoJCQkJCSNyZS1leHBvcnQgdGhlIHByaXZhdGUga2V5IHdpdGggYSBwYXNzd29yZAoJ
CQkJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgcnNhIC1pbiAkREFUQS8kQ0EvY2Eua2V5IC1wYXNz
aW4gcGFzczonKioqKioqKionIC1vdXQgJFNXQVAgLXBhc3NvdXQgcGFzczonKioqKioqKionIC1h
ZXMxMjgiCgkJCQkJaWYgISBvcGVuc3NsIHJzYSAtaW4gJERBVEEvJENBL2NhLmtleSAtcGFzc2lu
IHBhc3M6IiRwYXNzd29yZCIgLW91dCAkU1dBUCAtcGFzc291dCBwYXNzOiIke0NBX3Bhc3N3b3Jk
fSIgLWFlczEyOCAyPiAke1NXQVB9MjsgdGhlbgoJCQkJCQltZXNzYWdlIGVycm9yICdGYWlsZWQg
dG8gY2hhbmdlIHRoZSBDQSBwYXNzd29yZC4nCgkJCQkJCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICR7
U1dBUH0yKSIKCQkJCQkJZ3JhY2VmdWxfZXhpdCAyCgkJCQkJZmkKCQkJCQltdiAtZiAkU1dBUCAk
REFUQS8kQ0EvY2Eua2V5CgkJCQkJbWVzc2FnZSBpbmZvICdQYXNzd29yZCBoYXMgYmVlbiBjaGFu
Z2VkLicKCQkJCQlicmVhawoJCQkJCTs7CgkJCQlSIHwgciApCgkJCQkJbWVzc2FnZSBwcm9tcHQg
J1Bhc3N3b3JkJwoJCQkJCXJlYWQgLXMKCQkJCQllY2hvICcnCgkJCQkJY2hlY2tfY2FfcGFzc3dv
cmQgIiRSRVBMWSIKCQkJCQkjcmUtZXhwb3J0IHRoZSBwcml2YXRlIGtleSB3aXRoIG5vIHBhc3N3
b3JkCgkJCQkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCByc2EgLWluICREQVRBLyRDQS9jYS5rZXkg
LXBhc3NpbiBwYXNzOicqKioqKioqKicgLW91dCAkU1dBUCIKCQkJCQlpZiAhIG9wZW5zc2wgcnNh
IC1pbiAkREFUQS8kQ0EvY2Eua2V5IC1wYXNzaW4gcGFzczoiJFJFUExZIiAtb3V0ICRTV0FQIDI+
ICR7U1dBUH0yOyB0aGVuCgkJCQkJCW1lc3NhZ2UgZXJyb3IgJ0ZhaWxlZCB0byB1bnNldCB0aGUg
Q0EgcGFzc3dvcmQuJwoJCQkJCQltZXNzYWdlIGRlYnVnICIkKGNhdCAke1NXQVB9MikiCgkJCQkJ
CWdyYWNlZnVsX2V4aXQgMgoJCQkJCWZpCgkJCQkJbXYgLWYgJFNXQVAgJERBVEEvJENBL2NhLmtl
eQoJCQkJCXNlZCAtciAncy9sb2NrZWQ9eWVzL2xvY2tlZD1uby9nJyAkREFUQS8kQ0EvLnByb2Zp
bGUgPiAkU1dBUAoJCQkJCW12IC1mICRTV0FQICREQVRBLyRDQS8ucHJvZmlsZQoJCQkJCSN1cGRh
dGUgdGhlIC5zZXRzZW52CgkJCQkJc2VkIC1yICdzL0xPQ0tFRD15ZXMvTE9DS0VEPW5vL2cnICRE
QVRBLyRDQS8uc2V0ZW52ID4gJFNXQVAKCQkJCQltdiAtZiAkU1dBUCAkREFUQS8kQ0EvLnNldGVu
dgoJCQkJCW1lc3NhZ2UgaW5mbyAnUGFzc3dvcmQgaGFzIGJlZW4gdW5zZXQuJwoJCQkJCWJyZWFr
CgkJCQkJOzsKCQkJCSogKQoJCQkJCW1lc3NhZ2UgaW52YWxpZAoJCQkJCTs7CgkJCWVzYWMKCQlk
b25lCgllbHNlICNvZmZlciB0byBzZXQgYSBwYXNzd29yZAoJCW1lc3NhZ2UgaW5mbyAiQ0EgJyRD
QScgaXMgbm90IHBhc3N3b3JkIHByb3RlY3RlY3RlZC4iCgkJaWYgbWVzc2FnZSBpc195ZXMgJ1Jl
cXVpcmUgYWRkaXRpb25hbCBwYXNzd29yZCBmb3IgQ0Egb3BlcmF0aW9ucz8nOyB0aGVuCgkJCW1l
c3NhZ2UgcHJvbXB0ICdQYXNzd29yZCcKCQkJd2hpbGUgcmVhZCAtczsgZG8KCQkJCWVjaG8gJycK
CQkJCWlmIFsgLXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJCW1lc3NhZ2UgaW52YWxpZCAnUGFzc3dv
cmQgbXVzdCBub3QgYmUgZW1wdHknCgkJCQllbGlmICEgdmFsaWRhdGVfcGFzc3dvcmQgIiRSRVBM
WSI7IHRoZW4KCQkJCQltZXNzYWdlIGludmFsaWQgJ1Bhc3N3b3JkIGNhbm5vdCBiZSBvdmVyIDIw
IGNoYXJhY3RlcnMnCgkJCQllbHNlCgkJCQkJQ0FfcGFzc3dvcmQ9JFJFUExZCgkJCQkJYnJlYWsK
CQkJCWZpCgkJCWRvbmUKCQkJbWVzc2FnZSBwcm9tcHQgJ0NvbmZpcm0gcGFzc3dvcmQnCgkJCXdo
aWxlIHJlYWQgLXM7IGRvCgkJCQllY2hvICcnCgkJCQlpZiBbICEgIiRSRVBMWSIgPSAiJHtDQV9w
YXNzd29yZH0iIF07IHRoZW4KCQkJCQltZXNzYWdlIGludmFsaWQgJ1Bhc3N3b3JkcyBkbyBub3Qg
bWF0Y2gnCgkJCQllbHNlCgkJCQkJbG9ja2VkPXllcwoJCQkJCWJyZWFrCgkJCQlmaQoJCQlkb25l
CgkJCSNyZS1leHBvcnQgdGhlIHByaXZhdGUga2V5IHdpdGggYSBwYXNzd29yZAoJCQltZXNzYWdl
IGRlYnVnICJvcGVuc3NsIHJzYSAtaW4gJERBVEEvJENBL2NhLmtleSAtb3V0IGNhLmtleS5uZXcg
LXBhc3NvdXQgcGFzczonKioqKioqKionIC1hZXMxMjgiCgkJCWlmICEgb3BlbnNzbCByc2EgLWlu
ICREQVRBLyRDQS9jYS5rZXkgLW91dCAkU1dBUCAtcGFzc291dCBwYXNzOiIke0NBX3Bhc3N3b3Jk
fSIgLWFlczEyOCAyPiAke1NXQVB9OyB0aGVuCgkJCQltZXNzYWdlIGVycm9yICdGYWlsZWQgdG8g
bG9jayB0aGUgQ0EuJwoJCQkJbWVzc2FnZSBkZWJ1ZyAiJChjYXQgJHtTV0FQfTIpIgoJCQkJZ3Jh
Y2VmdWxfZXhpdCAyCgkJCWZpCgkJCW12IC1mICRTV0FQICREQVRBLyRDQS9jYS5rZXkKCQkJI3Vw
ZGF0ZSB0aGUgLnByb2ZpbGUKCQkJc2VkIC1yICdzL2xvY2tlZD1uby9sb2NrZWQ9eWVzL2cnICRE
QVRBLyRDQS8ucHJvZmlsZSA+ICRTV0FQCgkJCW12IC1mICRTV0FQICREQVRBLyRDQS8ucHJvZmls
ZQoJCQkjdXBkYXRlIHRoZSAuc2V0c2VudgoJCQlzZWQgLXIgJ3MvTE9DS0VEPW5vL0xPQ0tFRD15
ZXMvZycgJERBVEEvJENBLy5zZXRlbnYgPiAkU1dBUAoJCQltdiAtZiAkU1dBUCAkREFUQS8kQ0Ev
LnNldGVudgoJCQltZXNzYWdlIGluZm8gJ1Bhc3N3b3JkIGhhcyBiZWVuIHNldC4nCgkJZmkKCWZp
Cgl1cGRhdGVfcGVybWlzc2lvbnMKfQoKIyBFeHBvcnRzIGEgY2VydGlmaWNhdGUgdG8gUEtDUyMx
MiBrZXlzdG9yZQojIDEgPSBDTgojIDIgPSBhbGlhcwojIFszXSA9IGtleSBwYXNzd29yZC9rZXlz
dG9yZSBwYXNzd29yZAojIFs0XSA9IGtleXN0b3JlIHBhc3N3b3JkCmZ1bmN0aW9uIHBrY3MxMiB7
Cglsb2NhbCBwYXNzd29yZAoJbG9jYWwga2V5cGFzcwoJbG9jYWwgY29tbWFuZAoJbG9jYWwgbG9n
Cglsb2NhbCBpbnRlcm1lZGlhdGVzCglsb2NhbCBuCglpc19sb2NrZWQKCWxvY2sKCW1lc3NhZ2Ug
ZGVidWcgIkV4cG9lcnRpbmcgY2VydGlmaWNhdGUgaW4gQ0EgJyRDQScgOiAnJDEnIgoJY2QgIiRE
QVRBLyRDQSIKCWlmIFsgIiRLRVlQQVNTIiA9ICd5ZXMnIF07IHRoZW4KCQlpZiBbIC16ICIkMyIg
XTsgdGhlbgoJCQltZXNzYWdlIGVycm9yICJBIGtleSBwYXNzd29yZCAnJDEnIGlzIHJlcXVpcmVk
LiIKCQkJZ3JhY2VmdWxfZXhpdCAxCgkJZWxzZQoJCQlwYXNzd29yZD0kMwoJCQkjIGNoZWNrIHRo
ZSBwYXNzd29yZAoJCQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIHJzYSAtaW4gJyR7S0VZX0RJUn0v
JDEua2V5JyAtcGFzc2luIHBhc3M6JyoqKioqKioqJyAtY2hlY2sgLW5vb3V0IDE+Ji0gMj4ke1NX
QVB9cCIKCQkJaWYgISBvcGVuc3NsIHJzYSAtaW4gIiR7S0VZX0RJUn0vJDEua2V5IiAtcGFzc2lu
IHBhc3M6IiRwYXNzd29yZCIgLWNoZWNrIC1ub291dCAxPiYtIDI+JHtTV0FQfXA7IHRoZW4KCQkJ
CW1lc3NhZ2UgZGVidWcgIiQoY2F0ICR7U1dBUH1wKSIKCQkJCW1lc3NhZ2UgZXJyb3IgIkludmFs
aWQgcGFzc3dvcmQgZm9yIGtleS4iCgkJCQlncmFjZWZ1bF9leGl0IDEKCQkJZmkKCQlmaQoJZmkK
CWlmIFsgLXogIiQyIiBdOyB0aGVuCgkJbWVzc2FnZSBlcnJvciAnQW4gYWxpYXMgaXMgcmVxdWly
ZWQuIFRoaXMgY2FuIGJlIGFueSBzaG9ydCBzdHJpbmcuJwoJCWdyYWNlZnVsX2V4aXQgMQoJZmkK
CWlmIFsgLW4gIiRwYXNzd29yZCIgXTsgdGhlbgoJCWlmIFsgLW4gIiQ0IiBdOyB0aGVuCgkJCWtl
eXBhc3N3b3JkPSQ0CgkJZmkKCWVsaWYgWyAtbiAiJDMiIF07IHRoZW4KCQlrZXlwYXNzd29yZD0k
MwoJZmkKCWlmIFsgISAtZiAiJHtLRVlfRElSfS8kMS5rZXkiIF07IHRoZW4KCQltZXNzYWdlIGVy
cm9yICJUaGVyZSBpcyBubyBwcml2YXRlIGtleSBmb3IgJyQxJy4iCgkJZ3JhY2VmdWxfZXhpdCAx
CglmaQoJY29tbWFuZD0ib3BlbnNzbCBwa2NzMTIgLWV4cG9ydCAtb3V0ICckT1JJR0lOLyQxLnAx
MicgLWluICcke0NFUlRfRElSfS8kMS5jcnQnIC1pbmtleSAnJHtLRVlfRElSfS8kMS5rZXknIC1u
YW1lICQyIC1jZXJ0ZmlsZSAke1NXQVB9MiAtY2FuYW1lIHJvb3QiCglsb2c9Im9wZW5zc2wgcGtj
czEyIC1leHBvcnQgLW91dCAnJE9SSUdJTi8kMS5wMTInIC1pbiAnJHtDRVJUX0RJUn0vJDEuY3J0
JyAtaW5rZXkgJyR7S0VZX0RJUn0vJDEua2V5JyAtbmFtZSAkMiAtY2VydGZpbGUgJHtTV0FQfTIg
LWNhbmFtZSByb290IgoJaWYgWyAtZiByb290LmNydCBdOyB0aGVuCgkJY2F0IHJvb3QuY3J0ID4+
ICR7U1dBUH0yCgkJaW50ZXJtZWRpYXRlcz0kKGdyZXAgLWMgJ0JFR0lOIENFUlRJRklDQVRFJyBy
b290LmNydCkKCQluPTEKCQl3aGlsZSAoKG48aW50ZXJtZWRpYXRlcykpOyBkbwoJCQljb21tYW5k
PSIkY29tbWFuZCAtY2FuYW1lIGludGVybWVkaWF0ZSRuIgoJCQlsb2c9IiRsb2cgLWNhbmFtZSBp
bnRlcm1lZGlhdGUkbiIKCQkJKChuKyspKQoJCWRvbmUKCWVsc2UKCQljcCBjYS5jcnQgJHtTV0FQ
fTIKCWZpCglpZiBbIC1uICIkcGFzc3dvcmQiIF07IHRoZW4KCQljb21tYW5kPSIkY29tbWFuZCAt
cGFzc2luIHBhc3M6JyRwYXNzd29yZCciCgkJbG9nPSIkbG9nIC1wYXNzaW4gcGFzcycqKioqKioq
KiciCglmaQoJaWYgWyAtbiAiJGtleXBhc3N3b3JkIiBdOyB0aGVuCgkJY29tbWFuZD0iJGNvbW1h
bmQgLXBhc3NvdXQgcGFzczonJGtleXBhc3N3b3JkJyIKCQlsb2c9IiRsb2cgLXBhc3NvdXQgcGFz
cycqKioqKioqKiciCglmaQoJbWVzc2FnZSBkZWJ1ZyAiJGNvbW1hbmQiCglpZiAhIHNoIC1jICIk
Y29tbWFuZCAyPiRTV0FQIjsgdGhlbgoJCW1lc3NhZ2UgZXJyb3IgIkZhaWxlZCB0byBleHBvcnQg
JyQxJyB0byBQS0NTIzEyIgoJCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRTV0FQKSIKCQlncmFjZWZ1
bF9leGl0IDIKCWZpCgltZXNzYWdlIGluZm8gIlBLQ1MjMTIga2V5c3RvcmUgZXhwb3J0ZWQgdG8g
JyRPUklHSU4vJDEucDEyJy4iCn0KCiMgQ2xlYW4gdXAgYW5kIGV4aXQgd2l0aCBjb2RlCmZ1bmN0
aW9uIGdyYWNlZnVsX2V4aXQgewoJcm0gLWYgIiREQVRBLy5sb2NrIiAyPiYtCglybSAtcmYgL3Rt
cC8keyR9X3Byb2ZpbGUgMj4mLQoJcm0gLWYgL3RtcC8keyR9KiAyPiYtCglybSAtZiAkVkJVRkZF
UiAyPiYtCglpZiBbICEgLWQgJE9SSUdJTiBdOyB0aGVuCgkJY2QgfgoJZWxzZQoJCWNkICRPUklH
SU4KCWZpCglleGl0ICQxCn0KCiMgTUFJTiBQUk9DRVNTSU5HIFNFUVVFTkNFCmlmIFsgISAkKHdo
b2FtaSkgPSAncm9vdCcgXSAmJiAhIGdyb3VwcyB8IGdyZXAgLXEgJ2FwYWNoZSc7IHRoZW4KCW1l
c3NhZ2UgZXJyb3IgIm9ubHkgcm9vdCBvciBhIG1lbWJlciBvZiB0aGUgJ2FwYWNoZScgZ3JvdXAg
Y2FuIHJ1biB0aGlzLiIKCWdyYWNlZnVsX2V4aXQgMQpmaQp1bWFzayAwMDcKc2V0X3ZlcmJvc2Ug
JEAKCgppZiAoKCR7I309PTApKTsgdGhlbgoJbWVzc2FnZSBpbmZvICIkVVNBR0UiCglncmFjZWZ1
bF9leGl0IDEKZmkKCnRyYXAgZ3JhY2VmdWxfZXhpdCBLSUxMIElOVCBBQlJUIFRFUk0KCiMgUGFy
c2UgTDEgb3B0aW9ucwpjYXNlICQxIGluCglsaXN0ICkKCQlsaXN0X2NlcnRzICQyCgkJOzsKCWRh
dGFzdG9yZSApCgkJaWYgWyAhICIkIyIgPSAnMicgXTsgdGhlbgoJCQllY2hvICREQVRBCgkJZWxz
ZQoJCQltb3ZlX2RhdGFzdG9yZSAiJDIiCgkJZmkKCQk7OwoJbmV3ICkKCQljcmVhdGVfY2EKCQk7
OwoJZ2V0LXJlcG9ydCApCgkJaWYgKChWRVJCT1NFPT0xKSk7IHRoZW4KCQkJaWYgWyAiJDIiID0g
Jy12JyBdIHx8IFsgIiQyIiA9ICctLXZlcmJvc2UnIF07IHRoZW4KCQkJCXJlcG9ydAoJCQllbHNl
CgkJCQlyZXBvcnQgJDIKCQkJZmkKCQllbHNlCgkJCXJlcG9ydCAkMgoJCWZpCgkJOzsKCXZlcnNp
b24gKQoJCWhlYWQgLTE1ICIkVEhJUyIgfCBncmVwIC12RSAnXiMhJyB8IHNlZCAncy8jLy9nJwoJ
CTs7CgkqICkgIyBQYXJzZSBMMiBvcHRpb25zCgkJdmFsaWRhdGVfQ0EgJDEKCQljYXNlICQyIGlu
CgkJCWRlc3Ryb3kgKQoJCQkJbWVzc2FnZSB2ZXJib3NlICJSZWN1cnNpdmVseSBkZWxldGluZyAn
JERBVEEvJENBJy4iCgkJCQlybSAtcmYgIiREQVRBLyRDQSIKCQkJCW1lc3NhZ2UgdmVyYm9zZSAi
Q2VydGlmaWNhdGUgQXV0aG9yaXR5ICckQ0EnIGhhcyBiZWVuIGRlbGV0ZWQuIgoJCQkJOzsKCQkJ
Y3JlYXRlICkKCQkJCWlmICgoVkVSQk9TRT09MSkpOyB0aGVuCgkJCQkJaWYgWyAiJDUiID0gJy12
JyBdIHx8IFsgIiQ1IiA9ICctLXZlcmJvc2UnIF07IHRoZW4KCQkJCQkJY3JlYXRlX2NlcnRpZmlj
YXRlICQzICQ0CgkJCQkJZWxpZiBbICIkNiIgPSAnLXYnIF0gfHwgWyAiJDYiID0gJy0tdmVyYm9z
ZScgXTsgdGhlbgoJCQkJCQljcmVhdGVfY2VydGlmaWNhdGUgJDMgJDQgJDUKCQkJCQllbHNlCgkJ
CQkJCWNyZWF0ZV9jZXJ0aWZpY2F0ZSAkMyAkNCAkNSAkNgoJCQkJCWZpCgkJCQllbHNlCgkJCQkJ
Y3JlYXRlX2NlcnRpZmljYXRlICQzICQ0ICQ1ICQ2CgkJCQlmaQoJCQkJOzsKCQkJY3JlYXRlLWNz
ciApCgkJCQlpZiAoKFZFUkJPU0U9PTEpKTsgdGhlbgoJCQkJCWlmIFsgIiQ1IiA9ICctdicgXSB8
fCBbICIkNSIgPSAnLS12ZXJib3NlJyBdOyB0aGVuCgkJCQkJCWNyZWF0ZV9jc3IgJDMgJDQKCQkJ
CQllbGlmIFsgIiQ2IiA9ICctdicgXSB8fCBbICIkNiIgPSAnLS12ZXJib3NlJyBdOyB0aGVuCgkJ
CQkJCWNyZWF0ZV9jc3IgJDMgJDQgJDUKCQkJCQllbHNlCgkJCQkJCWNyZWF0ZV9jc3IgJDMgJDQg
JDUgJDYKCQkJCQlmaQoJCQkJZWxzZQoJCQkJCWNyZWF0ZV9jc3IgJDMgJDQgJDUgJDYKCQkJCWZp
CgkJCQk7OwoJCQlzaWduICkKCQkJCWlmICgoVkVSQk9TRT09MSkpOyB0aGVuCgkJCQkJaWYgWyAi
JDQiID0gJy12JyBdIHx8IFsgIiQ0IiA9ICctLXZlcmJvc2UnIF07IHRoZW4KCQkJCQkJc2lnbl9j
c3IgJDMKCQkJCQllbHNlCgkJCQkJCXNpZ25fY3NyICQzICQ0CgkJCQkJZmkKCQkJCWVsc2UKCQkJ
CQlzaWduX2NzciAkMyAkNAoJCQkJZmkKCQkJCTs7CgkJCWdldC1pbmZvICkKCQkJCWdldF9kYXRl
cyAkMwoJCQkJOzsKCQkJcmV2b2tlICkKCQkJCWlmICgoVkVSQk9TRT09MSkpOyB0aGVuCgkJCQkJ
aWYgWyAiJDQiID0gJy12JyBdIHx8IFsgIiQ0IiA9ICctLXZlcmJvc2UnIF07IHRoZW4KCQkJCQkJ
cmV2b2tlICQzCgkJCQkJZWxzZQoJCQkJCQlyZXZva2UgJDMgJDQKCQkJCQlmaQoJCQkJZWxzZQoJ
CQkJCXJldm9rZSAkMyAkNAoJCQkJZmkKCQkJCTs7CgkJCXVwZGF0ZS1jcmwgKQoJCQkJaWYgKChW
RVJCT1NFPT0xKSk7IHRoZW4KCQkJCQlpZiBbICIkMyIgPSAnLXYnIF0gfHwgWyAiJDMiID0gJy0t
dmVyYm9zZScgXTsgdGhlbgoJCQkJCQl1cGRhdGVfY3JsCgkJCQkJZWxzZQoJCQkJCQl1cGRhdGVf
Y3JsICQzCgkJCQkJZmkKCQkJCWVsc2UKCQkJCQl1cGRhdGVfY3JsICQzCgkJCQlmaQoJCQkJOzsK
CQkJZGVsZXRlICkKCQkJCWRlbGV0ZSAkMwoJCQkJOzsKCQkJZ2V0LWNybC1pbmZvICkKCQkJCWdl
dF9jcmxfZGF0ZXMKCQkJCTs7CgkJCXN0YXR1cyApCgkJCQlzaG93X3N0YXR1cwoJCQkJOzsKCQkJ
cHJvZmlsZSApCgkJCQlzaG93X3Byb2ZpbGUgJERBVEEvJENBCgkJCQk7OwoJCQllZGl0LXByb2Zp
bGUgKQoJCQkJZWRpdF9wcm9maWxlICREQVRBLyRDQQoJCQkJdXBkYXRlX3Blcm1pc3Npb25zCgkJ
CQk7OwoJCQlwYXNzd29yZCApCgkJCQlzZXRfcGFzc3dvcmQKCQkJCTs7CgkJCWdldC1wa2NzMTIg
KQoJCQkJaWYgKChWRVJCT1NFPT0xKSk7IHRoZW4KCQkJCQlpZiBbICIkNSIgPSAnLXYnIF0gfHwg
WyAiJDUiID0gJy0tdmVyYm9zZScgXTsgdGhlbgoJCQkJCQlwa2NzMTIgJDMgJDQKCQkJCQllbGlm
IFsgIiQ2IiA9ICctdicgXSB8fCBbICIkNiIgPSAnLS12ZXJib3NlJyBdOyB0aGVuCgkJCQkJCXBr
Y3MxMiAkMyAkNCAkNQoJCQkJCWVsc2UKCQkJCQkJcGtjczEyICQzICQ0ICQ1ICQ2CgkJCQkJZmkK
CQkJCWVsc2UKCQkJCQlwa2NzMTIgJDMgJDQgJDUgJDYKCQkJCWZpCgkJCQk7OwoJCQkqICkKCQkJ
CW1lc3NhZ2UgZXJyb3IgIiRVU0FHRSIKCQkJCWdyZWNlZnVsX2V4aXQgMQoJCQkJOzsKCQllc2Fj
CgkJOzsKZXNhYwoKIyBDbGVhbiB1cCBhbmQgZXhpdApncmFjZWZ1bF9leGl0IDAKCg==" | base64 -di - > "/usr/bin/ac_x509_authority"; then
	rollback
fi
log_undo 'rm -f "/usr/bin/ac_x509_authority"'
chown apache:apache "/usr/bin/ac_x509_authority"
chmod 6755 "/usr/bin/ac_x509_authority"
echo -e "Created file '/usr/bin/ac_x509_authority'"
cd "${MBS_ORIGIN}"
echo -e "Installation 'install_ac_x509_authority_1.5.0' complete at $(date '+%Y-%m-%d %T')"
