#!/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.4.1' 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
DQojIFRoaXMgZGVmaW5pdGlvbiBzdG9wcyB0aGUgZm9sbG93aW5nIGxpbmVzIGNob2tpbmcgaWYg
SE9NRSBpc24ndA0KIyBkZWZpbmVkLg0KSE9NRQkJCT0gLg0KUkFOREZJTEUJCT0gJEVOVjo6SE9N
RS8ucm5kDQoNCiMgVW5jb21tZW50IG91dCB0byBlbmFibGUgT3BlblNTTCBjb25maWd1cmF0aW9u
IHNlZSBjb25maWcoMykNCiMgb3BlbnNzbF9jb25mID0gb3BlbnNzbF9pbml0DQoNCiMgVG8gdXNl
IHRoaXMgY29uZmlndXJhdGlvbiBmaWxlIHdpdGggdGhlICItZXh0ZmlsZSIgb3B0aW9uIG9mIHRo
ZQ0KIyAib3BlbnNzbCB4NTA5IiB1dGlsaXR5LCBuYW1lIGhlcmUgdGhlIHNlY3Rpb24gY29udGFp
bmluZyB0aGUNCiMgWC41MDl2MyBleHRlbnNpb25zIHRvIHVzZToNCiMgZXh0ZW5zaW9ucwkJPSAN
CiMgKEFsdGVybmF0aXZlbHksIHVzZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IGhhcyBvbmx5
DQojIFguNTA5djMgZXh0ZW5zaW9ucyBpbiBpdHMgbWFpbiBbPSBkZWZhdWx0XSBzZWN0aW9uLikN
Cg0KW29wZW5zc2xfaW5pdF0NCiMgRXh0cmEgT0JKRUNUIElERU5USUZJRVIgaW5mbzoNCm9pZF9z
ZWN0aW9uID0gbmV3X29pZHMNCmFsZ19zZWN0aW9uID0gYWxncw0KDQpbIG5ld19vaWRzIF0NCg0K
IyBXZSBjYW4gYWRkIG5ldyBPSURzIGluIGhlcmUgZm9yIHVzZSBieSBhbnkgY29uZmlnIGF3YXJl
IGFwcGxpY2F0aW9uDQojIEFkZCBhIHNpbXBsZSBPSUQgbGlrZSB0aGlzOg0KIyBzaG9ydG5hbWU9
TG9uZyBPYmplY3QgSWRlbnRpZmllciBOYW1lLCAxLjIuMy40DQojIE9yIHVzZSBjb25maWcgZmls
ZSBzdWJzdGl0dXRpb24gbGlrZSB0aGlzOg0KIyB0ZXN0b2lkMj1PSUQyIExPTkcgTkFNRSwgJHt0
ZXN0b2lkMX0uNS42LCBPVEhFUiBPSUQNCg0KWyBhbGdzIF0NCiMgQWxnb3JpdGhtIGNvbmZpZ3Vy
YXRpb24gb3B0aW9ucy4gQ3VycmVudGx5IGp1c3QgZmlwc19tb2RlDQpmaXBzX21vZGUgPSBubw0K
DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIw0KWyBjYSBdDQpkZWZhdWx0X2NhCT0gQ0FfZGVmYXVsdAkJIyBUaGUgZGVm
YXVsdCBjYSBzZWN0aW9uDQoNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQpbIENBX2RlZmF1bHQgXQ0KDQpkaXIJCQk9
IERDQURJUkQJCSMgV2hlcmUgZXZlcnl0aGluZyBpcyBrZXB0DQpjZXJ0cwkJPSAkZGlyL2NlcnRz
CQkjIFdoZXJlIHRoZSBpc3N1ZWQgY2VydHMgYXJlIGtlcHQNCmNybF9kaXIJCT0gJGRpci9jcmwJ
CSMgV2hlcmUgdGhlIGlzc3VlZCBjcmwgYXJlIGtlcHQNCmRhdGFiYXNlCQk9ICRkaXIvaW5kZXgu
dHh0CSMgZGF0YWJhc2UgaW5kZXggZmlsZS4NCiN1bmlxdWVfc3ViamVjdAk9IG5vCQkJIyBTZXQg
dG8gJ25vJyB0byBhbGxvdyBjcmVhdGlvbiBvZg0KIyAJCQkJCQkJICBzZXZlcmFsIGN0aWZpY2F0
ZXMgd2l0aCBzYW1lIHN1YmplY3QuDQpuZXdfY2VydHNfZGlyCT0gJGRpci9yZXF1ZXN0cwkjIGRl
ZmF1bHQgcGxhY2UgZm9yIG5ldyBjZXJ0cy4NCmNlcnRpZmljYXRlCT0gJGRpci9jYS5jcnQJIAkj
IFRoZSBDQSBjZXJ0aWZpY2F0ZQ0Kc2VyaWFsCQk9ICRkaXIvY2Euc3JsCQkjIFRoZSBjdXJyZW50
IHNlcmlhbCBudW1iZXINCmNybG51bWJlcgkJPSAkZGlyL2NybC5zcmwJCSMgdGhlIGN1cnJlbnQg
Y3JsIG51bWJlcg0KIwkJCQkJCQkgIG11c3QgYmUgY29tbWVudGVkIG91dCB0byBsZWF2ZSBhIFYx
IENSTA0KY3JsCQkJPSAkZGlyL2NybC9jYS5jcmwJIyBUaGUgY3VycmVudCBDUkwNCnByaXZhdGVf
a2V5CT0gJGRpci9jYS5rZXkJCSMgVGhlIHByaXZhdGUga2V5DQpSQU5ERklMRQkJPSAkZGlyLy5y
YW5kCQkjIHByaXZhdGUgcmFuZG9tIG51bWJlciBmaWxlDQp4NTA5X2V4dGVuc2lvbnMJPSB1c3Jf
Y2VydAkjIFRoZSBleHRlbnRpb25zIHRvIGFkZCB0byB0aGUgY2VydA0KDQojIENvbW1lbnQgb3V0
IHRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIGZvciB0aGUgInRyYWRpdGlvbmFsIg0KIyAoYW5kIGhp
Z2hseSBicm9rZW4pIGZvcm1hdC4NCm5hbWVfb3B0IAk9IGNhX2RlZmF1bHQJCSMgU3ViamVjdCBO
YW1lIG9wdGlvbnMNCmNlcnRfb3B0IAk9IGNhX2RlZmF1bHQJCSMgQ2VydGlmaWNhdGUgZmllbGQg
b3B0aW9ucw0KDQojIEV4dGVuc2lvbiBjb3B5aW5nIG9wdGlvbjogdXNlIHdpdGggY2F1dGlvbi4N
CiMgY29weV9leHRlbnNpb25zID0gY29weQ0KDQojIEV4dGVuc2lvbnMgdG8gYWRkIHRvIGEgQ1JM
LiBOb3RlOiBOZXRzY2FwZSBjb21tdW5pY2F0b3IgY2hva2VzIG9uIFYyIENSTHMNCiMgc28gdGhp
cyBpcyBjb21tZW50ZWQgb3V0IGJ5IGRlZmF1bHQgdG8gbGVhdmUgYSBWMSBDUkwuDQojIGNybG51
bWJlciBtdXN0IGFsc28gYmUgY29tbWVudGVkIG91dCB0byBsZWF2ZSBhIFYxIENSTC4NCiMgY3Js
X2V4dGVuc2lvbnMJPSBjcmxfZXh0DQoNCmRlZmF1bHRfZGF5cwkJPSBEREFZU0QJCSMgaG93IGxv
bmcgdG8gY2VydGlmeSBmb3INCmRlZmF1bHRfY3JsX2RheXMJPSBEQ1JMREFZUwkJCSMgaG93IGxv
bmcgYmVmb3JlIG5leHQgQ1JMDQpkZWZhdWx0X21kCQk9IHNoYTI1NgkJIyB3aGljaCBtZCB0byB1
c2UuDQpwcmVzZXJ2ZQkJCT0gbm8JCQkjIGtlZXAgcGFzc2VkIEROIG9yZGVyaW5nDQoNCiMgQSBm
ZXcgZGlmZmVyZW5jZSB3YXkgb2Ygc3BlY2lmeWluZyBob3cgc2ltaWxhciB0aGUgcmVxdWVzdCBz
aG91bGQgbG9vaw0KIyBGb3IgdHlwZSBDQSwgdGhlIGxpc3RlZCBhdHRyaWJ1dGVzIG11c3QgYmUg
dGhlIHNhbWUsIGFuZCB0aGUgb3B0aW9uYWwNCiMgYW5kIHN1cHBsaWVkIGZpZWxkcyBhcmUganVz
dCB0aGF0IDotKQ0KcG9saWN5CQk9IHBvbGljeV9tYXRjaA0KDQojIEZvciB0aGUgQ0EgcG9saWN5
DQpbIHBvbGljeV9tYXRjaCBdDQpjb3VudHJ5TmFtZQkJCT0gRHJlc3RyaWN0X0NEDQpzdGF0ZU9y
UHJvdmluY2VOYW1lCQk9IERyZXN0cmljdF9TVEQNCm9yZ2FuaXphdGlvbk5hbWUJCT0gRHJlc3Ry
aWN0X09EDQpvcmdhbml6YXRpb25hbFVuaXROYW1lCT0gRHJlc3RyaWN0X09VRA0KbG9jYWxpdHlO
YW1lCQkJPSBEcmVzdHJpY3RfTEQNCmNvbW1vbk5hbWUJCQk9IHN1cHBsaWVkDQplbWFpbEFkZHJl
c3MJCQk9IG9wdGlvbmFsDQoNCiMgRm9yIHRoZSAnYW55dGhpbmcnIHBvbGljeQ0KIyBBdCB0aGlz
IHBvaW50IGluIHRpbWUsIHlvdSBtdXN0IGxpc3QgYWxsIGFjY2VwdGFibGUgJ29iamVjdCcNCiMg
dHlwZXMuDQpbIHBvbGljeV9hbnl0aGluZyBdDQpjb3VudHJ5TmFtZQkJCT0gb3B0aW9uYWwNCnN0
YXRlT3JQcm92aW5jZU5hbWUJCT0gb3B0aW9uYWwNCmxvY2FsaXR5TmFtZQkJCT0gb3B0aW9uYWwN
Cm9yZ2FuaXphdGlvbk5hbWUJCT0gb3B0aW9uYWwNCm9yZ2FuaXphdGlvbmFsVW5pdE5hbWUJPSBv
cHRpb25hbA0KY29tbW9uTmFtZQkJCT0gc3VwcGxpZWQNCmVtYWlsQWRkcmVzcwkJCT0gb3B0aW9u
YWwNCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMNClsgcmVxIF0NCmRlZmF1bHRfYml0cwkJPSBEQklUU0QNCmRlZmF1
bHRfbWQJCT0gc2hhMjU2DQpkZWZhdWx0X2tleWZpbGUgCT0gcHJpdmtleS5wZW0NCmRpc3Rpbmd1
aXNoZWRfbmFtZQk9IHJlcV9kaXN0aW5ndWlzaGVkX25hbWUNCmF0dHJpYnV0ZXMJCT0gcmVxX2F0
dHJpYnV0ZXMNCng1MDlfZXh0ZW5zaW9ucwk9IHYzX2NhCSMgVGhlIGV4dGVudGlvbnMgdG8gYWRk
IHRvIHRoZSBzZWxmIHNpZ25lZCBjZXJ0DQoNCiMgUGFzc3dvcmRzIGZvciBwcml2YXRlIGtleXMg
aWYgbm90IHByZXNlbnQgdGhleSB3aWxsIGJlIHByb21wdGVkIGZvcg0KIyBpbnB1dF9wYXNzd29y
ZCA9IHNlY3JldA0KIyBvdXRwdXRfcGFzc3dvcmQgPSBzZWNyZXQNCg0KIyBUaGlzIHNldHMgYSBt
YXNrIGZvciBwZXJtaXR0ZWQgc3RyaW5nIHR5cGVzLiBUaGVyZSBhcmUgc2V2ZXJhbCBvcHRpb25z
LiANCiMgZGVmYXVsdDogUHJpbnRhYmxlU3RyaW5nLCBUNjFTdHJpbmcsIEJNUFN0cmluZy4NCiMg
cGtpeAkgOiBQcmludGFibGVTdHJpbmcsIEJNUFN0cmluZy4NCiMgdXRmOG9ubHk6IG9ubHkgVVRG
OFN0cmluZ3MuDQojIG5vbWJzdHIgOiBQcmludGFibGVTdHJpbmcsIFQ2MVN0cmluZyAobm8gQk1Q
U3RyaW5ncyBvciBVVEY4U3RyaW5ncykuDQojIE1BU0s6WFhYWCBhIGxpdGVyYWwgbWFzayB2YWx1
ZS4NCiMgV0FSTklORzogY3VycmVudCB2ZXJzaW9ucyBvZiBOZXRzY2FwZSBjcmFzaCBvbiBCTVBT
dHJpbmdzIG9yIFVURjhTdHJpbmdzDQojIHNvIHVzZSB0aGlzIG9wdGlvbiB3aXRoIGNhdXRpb24h
DQojIHdlIHVzZSBQcmludGFibGVTdHJpbmcrVVRGOFN0cmluZyBtYXNrIHNvIGlmIHB1cmUgQVND
SUkgdGV4dHMgYXJlIHVzZWQNCiMgdGhlIHJlc3VsdGluZyBjZXJ0aWZpY2F0ZXMgYXJlIGNvbXBh
dGlibGUgd2l0aCBOZXRzY2FwZQ0Kc3RyaW5nX21hc2sgPSBNQVNLOjB4MjAwMg0KDQojIHJlcV9l
eHRlbnNpb25zID0gdjNfcmVxICMgVGhlIGV4dGVuc2lvbnMgdG8gYWRkIHRvIGEgY2VydGlmaWNh
dGUgcmVxdWVzdA0KDQpbIHJlcV9kaXN0aW5ndWlzaGVkX25hbWUgXQ0KY291bnRyeU5hbWUJCQkJ
PSBJU08gQ291bnRyeSBOYW1lICgyIGxldHRlciBjb2RlKQ0KY291bnRyeU5hbWVfZGVmYXVsdAkJ
CT0gRENEDQpjb3VudHJ5TmFtZV9taW4JCQk9IDINCmNvdW50cnlOYW1lX21heAkJCT0gMg0KDQpz
dGF0ZU9yUHJvdmluY2VOYW1lCQkJPSBTdGF0ZSBvciBQcm92aW5jZSBOYW1lIChmdWxsIG5hbWUp
DQpzdGF0ZU9yUHJvdmluY2VOYW1lX2RlZmF1bHQJPSBEU1REDQoNCmxvY2FsaXR5TmFtZQkJCQk9
IExvY2FsaXR5IE5hbWUgKGVnLCBjaXR5KQ0KbG9jYWxpdHlOYW1lX2RlZmF1bHQJCT0gRExEDQoN
CjAub3JnYW5pemF0aW9uTmFtZQkJCT0gT3JnYW5pemF0aW9uIE5hbWUgKGVnLCBjb21wYW55KQ0K
MC5vcmdhbml6YXRpb25OYW1lX2RlZmF1bHQJPSBET0QNCg0KIyB3ZSBjYW4gZG8gdGhpcyBidXQg
aXQgaXMgbm90IG5lZWRlZCBub3JtYWxseSA6LSkNCiMxLm9yZ2FuaXphdGlvbk5hbWUJCT0gU2Vj
b25kIE9yZ2FuaXphdGlvbiBOYW1lIChlZywgY29tcGFueSkNCiMxLm9yZ2FuaXphdGlvbk5hbWVf
ZGVmYXVsdAk9IFdvcmxkIFdpZGUgV2ViIFB0eSBMdGQNCg0Kb3JnYW5pemF0aW9uYWxVbml0TmFt
ZQkJPSBPcmdhbml6YXRpb25hbCBVbml0IE5hbWUgKGVnLCBzZWN0aW9uKQ0Kb3JnYW5pemF0aW9u
YWxVbml0TmFtZV9kZWZhdWx0CT0gRE9VRA0KDQpjb21tb25OYW1lCQkJPSBDb21tb24gTmFtZSAo
ZWcsIHlvdXIgbmFtZSBvciB5b3VyIHNlcnZlclwncyBob3N0bmFtZSkNCmNvbW1vbk5hbWVfbWF4
CQkJPSAxMjgNCg0KZW1haWxBZGRyZXNzCQkJPSBFbWFpbCBBZGRyZXNzDQplbWFpbEFkZHJlc3Nf
bWF4CQk9IDEyOA0KDQojIFNFVC1leDMJCQk9IFNFVCBleHRlbnNpb24gbnVtYmVyIDMNCg0KWyBy
ZXFfYXR0cmlidXRlcyBdDQpjaGFsbGVuZ2VQYXNzd29yZAkJPSBBIGNoYWxsZW5nZSBwYXNzd29y
ZA0KY2hhbGxlbmdlUGFzc3dvcmRfbWluCT0gNA0KY2hhbGxlbmdlUGFzc3dvcmRfbWF4CT0gMjAN
Cg0KdW5zdHJ1Y3R1cmVkTmFtZQkJPSBBbiBvcHRpb25hbCBjb21wYW55IG5hbWUNCg0KWyB1c3Jf
Y2VydCBdDQoNCiMgVGhlc2UgZXh0ZW5zaW9ucyBhcmUgYWRkZWQgd2hlbiAnY2EnIHNpZ25zIGEg
cmVxdWVzdC4NCg0KIyBUaGlzIGdvZXMgYWdhaW5zdCBQS0lYIGd1aWRlbGluZXMgYnV0IHNvbWUg
Q0FzIGRvIGl0IGFuZCBzb21lIHNvZnR3YXJlDQojIHJlcXVpcmVzIHRoaXMgdG8gYXZvaWQgaW50
ZXJwcmV0aW5nIGFuIGVuZCB1c2VyIGNlcnRpZmljYXRlIGFzIGEgQ0EuDQoNCiNiYXNpY0NvbnN0
cmFpbnRzPUNBOkZBTFNFDQpiYXNpY0NvbnN0cmFpbnRzPUNBOk1BS0VfQ0ENCg0KIyBIZXJlIGFy
ZSBzb21lIGV4YW1wbGVzIG9mIHRoZSB1c2FnZSBvZiBuc0NlcnRUeXBlLiBJZiBpdCBpcyBvbWl0
dGVkDQojIHRoZSBjZXJ0aWZpY2F0ZSBjYW4gYmUgdXNlZCBmb3IgYW55dGhpbmcgKmV4Y2VwdCog
b2JqZWN0IHNpZ25pbmcuDQoNCiMgVGhpcyBpcyBPSyBmb3IgYW4gU1NMIHNlcnZlci4NCiMgbnND
ZXJ0VHlwZQkJCT0gc2VydmVyDQoNCiMgRm9yIGFuIG9iamVjdCBzaWduaW5nIGNlcnRpZmljYXRl
IHRoaXMgd291bGQgYmUgdXNlZC4NCiMgbnNDZXJ0VHlwZSA9IG9ianNpZ24NCg0KIyBGb3Igbm9y
bWFsIGNsaWVudCB1c2UgdGhpcyBpcyB0eXBpY2FsDQojIG5zQ2VydFR5cGUgPSBjbGllbnQsIGVt
YWlsDQoNCiMgYW5kIGZvciBldmVyeXRoaW5nIGluY2x1ZGluZyBvYmplY3Qgc2lnbmluZzoNCiMg
bnNDZXJ0VHlwZSA9IGNsaWVudCwgZW1haWwsIG9ianNpZ24NCg0KIyBUaGlzIGlzIHR5cGljYWwg
aW4ga2V5VXNhZ2UgZm9yIGEgY2xpZW50IGNlcnRpZmljYXRlLg0KIyBrZXlVc2FnZSA9IG5vblJl
cHVkaWF0aW9uLCBkaWdpdGFsU2lnbmF0dXJlLCBrZXlFbmNpcGhlcm1lbnQNCg0KIyBUaGlzIHdp
bGwgYmUgZGlzcGxheWVkIGluIE5ldHNjYXBlJ3MgY29tbWVudCBsaXN0Ym94Lg0KI25zQ29tbWVu
dAkJCT0gIkFDIFg1MDkgQXV0aG9yaXR5IEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZSINCg0KIyBQS0lY
IHJlY29tbWVuZGF0aW9ucyBoYXJtbGVzcyBpZiBpbmNsdWRlZCBpbiBhbGwgY2VydGlmaWNhdGVz
Lg0KI3N1YmplY3RLZXlJZGVudGlmaWVyPWhhc2gNCiNhdXRob3JpdHlLZXlJZGVudGlmaWVyPWtl
eWlkLGlzc3Vlcg0KDQojIFRoaXMgc3R1ZmYgaXMgZm9yIHN1YmplY3RBbHROYW1lIGFuZCBpc3N1
ZXJBbHRuYW1lLg0KIyBJbXBvcnQgdGhlIGVtYWlsIGFkZHJlc3MuDQojIHN1YmplY3RBbHROYW1l
PWVtYWlsOmNvcHkNCiMgQW4gYWx0ZXJuYXRpdmUgdG8gcHJvZHVjZSBjZXJ0aWZpY2F0ZXMgdGhh
dCBhcmVuJ3QNCiMgZGVwcmVjYXRlZCBhY2NvcmRpbmcgdG8gUEtJWC4NCiMgc3ViamVjdEFsdE5h
bWU9ZW1haWw6bW92ZQ0KDQojIENvcHkgc3ViamVjdCBkZXRhaWxzDQojIGlzc3VlckFsdE5hbWU9
aXNzdWVyOmNvcHkNCg0KI25zQ2FSZXZvY2F0aW9uVXJsCQk9IGh0dHA6Ly93d3cuZG9tYWluLmRv
bS9jYS1jcmwucGVtDQojbnNCYXNlVXJsDQojbnNSZXZvY2F0aW9uVXJsDQojbnNSZW5ld2FsVXJs
DQojbnNDYVBvbGljeVVybA0KI25zU3NsU2VydmVyTmFtZQ0KDQojWyB2M19yZXEgXQ0KDQojIEV4
dGVuc2lvbnMgdG8gYWRkIHRvIGEgY2VydGlmaWNhdGUgcmVxdWVzdA0KDQojYmFzaWNDb25zdHJh
aW50cyA9IENBOkZBTFNFDQoja2V5VXNhZ2UgPSBub25SZXB1ZGlhdGlvbiwgZGlnaXRhbFNpZ25h
dHVyZSwga2V5RW5jaXBoZXJtZW50DQoNClsgdjNfY2EgXQ0KDQoNCiMgRXh0ZW5zaW9ucyBmb3Ig
YSB0eXBpY2FsIENBDQoNCg0KIyBQS0lYIHJlY29tbWVuZGF0aW9uLg0KDQpzdWJqZWN0S2V5SWRl
bnRpZmllcj1oYXNoDQoNCmF1dGhvcml0eUtleUlkZW50aWZpZXI9a2V5aWQ6YWx3YXlzLGlzc3Vl
cjphbHdheXMNCg0KIyBUaGlzIGlzIHdoYXQgUEtJWCByZWNvbW1lbmRzIGJ1dCBzb21lIGJyb2tl
biBzb2Z0d2FyZSBjaG9rZXMgb24gY3JpdGljYWwNCiMgZXh0ZW5zaW9ucy4NCiNiYXNpY0NvbnN0
cmFpbnRzID0gY3JpdGljYWwsQ0E6dHJ1ZQ0KIyBTbyB3ZSBkbyB0aGlzIGluc3RlYWQuDQpiYXNp
Y0NvbnN0cmFpbnRzID0gQ0E6dHJ1ZQ0KDQojIEtleSB1c2FnZTogdGhpcyBpcyB0eXBpY2FsIGZv
ciBhIENBIGNlcnRpZmljYXRlLiBIb3dldmVyIHNpbmNlIGl0IHdpbGwNCiMgcHJldmVudCBpdCBi
ZWluZyB1c2VkIGFzIGFuIHRlc3Qgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgaXQgaXMgYmVzdA0K
IyBsZWZ0IG91dCBieSBkZWZhdWx0Lg0KIyBrZXlVc2FnZSA9IGNSTFNpZ24sIGtleUNlcnRTaWdu
DQoNCiMgU29tZSBtaWdodCB3YW50IHRoaXMgYWxzbw0KIyBuc0NlcnRUeXBlID0gc3NsQ0EsIGVt
YWlsQ0ENCg0KIyBJbmNsdWRlIGVtYWlsIGFkZHJlc3MgaW4gc3ViamVjdCBhbHQgbmFtZTogYW5v
dGhlciBQS0lYIHJlY29tbWVuZGF0aW9uDQojIHN1YmplY3RBbHROYW1lPWVtYWlsOmNvcHkNCiMg
Q29weSBpc3N1ZXIgZGV0YWlscw0KIyBpc3N1ZXJBbHROYW1lPWlzc3Vlcjpjb3B5DQoNCiMgREVS
IGhleCBlbmNvZGluZyBvZiBhbiBleHRlbnNpb246IGJld2FyZSBleHBlcnRzIG9ubHkhDQojIG9i
aj1ERVI6MDI6MDMNCiMgV2hlcmUgJ29iaicgaXMgYSBzdGFuZGFyZCBvciBhZGRlZCBvYmplY3QN
CiMgWW91IGNhbiBldmVuIG92ZXJyaWRlIGEgc3VwcG9ydGVkIGV4dGVuc2lvbjoNCiMgYmFzaWND
b25zdHJhaW50cz0gY3JpdGljYWwsIERFUjozMDowMzowMTowMTpGRg0KDQpbIGNybF9leHQgXQ0K
DQojIENSTCBleHRlbnNpb25zLg0KIyBPbmx5IGlzc3VlckFsdE5hbWUgYW5kIGF1dGhvcml0eUtl
eUlkZW50aWZpZXIgbWFrZSBhbnkgc2Vuc2UgaW4gYSBDUkwuDQoNCiMgaXNzdWVyQWx0TmFtZT1p
c3N1ZXI6Y29weQ0KYXV0aG9yaXR5S2V5SWRlbnRpZmllcj1rZXlpZDphbHdheXMsaXNzdWVyOmFs
d2F5cw0KDQpbIHByb3h5X2NlcnRfZXh0IF0NCiMgVGhlc2UgZXh0ZW5zaW9ucyBzaG91bGQgYmUg
YWRkZWQgd2hlbiBjcmVhdGluZyBhIHByb3h5IGNlcnRpZmljYXRlDQoNCiMgVGhpcyBnb2VzIGFn
YWluc3QgUEtJWCBndWlkZWxpbmVzIGJ1dCBzb21lIENBcyBkbyBpdCBhbmQgc29tZSBzb2Z0d2Fy
ZQ0KIyByZXF1aXJlcyB0aGlzIHRvIGF2b2lkIGludGVycHJldGluZyBhbiBlbmQgdXNlciBjZXJ0
aWZpY2F0ZSBhcyBhIENBLg0KDQpiYXNpY0NvbnN0cmFpbnRzPUNBOkZBTFNFDQoNCiMgSGVyZSBh
cmUgc29tZSBleGFtcGxlcyBvZiB0aGUgdXNhZ2Ugb2YgbnNDZXJ0VHlwZS4gSWYgaXQgaXMgb21p
dHRlZA0KIyB0aGUgY2VydGlmaWNhdGUgY2FuIGJlIHVzZWQgZm9yIGFueXRoaW5nICpleGNlcHQq
IG9iamVjdCBzaWduaW5nLg0KDQojIFRoaXMgaXMgT0sgZm9yIGFuIFNTTCBzZXJ2ZXIuDQojIG5z
Q2VydFR5cGUJCQk9IHNlcnZlcg0KDQojIEZvciBhbiBvYmplY3Qgc2lnbmluZyBjZXJ0aWZpY2F0
ZSB0aGlzIHdvdWxkIGJlIHVzZWQuDQojIG5zQ2VydFR5cGUgPSBvYmpzaWduDQoNCiMgRm9yIG5v
cm1hbCBjbGllbnQgdXNlIHRoaXMgaXMgdHlwaWNhbA0KIyBuc0NlcnRUeXBlID0gY2xpZW50LCBl
bWFpbA0KDQojIGFuZCBmb3IgZXZlcnl0aGluZyBpbmNsdWRpbmcgb2JqZWN0IHNpZ25pbmc6DQoj
IG5zQ2VydFR5cGUgPSBjbGllbnQsIGVtYWlsLCBvYmpzaWduDQoNCiMgVGhpcyBpcyB0eXBpY2Fs
IGluIGtleVVzYWdlIGZvciBhIGNsaWVudCBjZXJ0aWZpY2F0ZS4NCiMga2V5VXNhZ2UgPSBub25S
ZXB1ZGlhdGlvbiwgZGlnaXRhbFNpZ25hdHVyZSwga2V5RW5jaXBoZXJtZW50DQoNCiMgVGhpcyB3
aWxsIGJlIGRpc3BsYXllZCBpbiBOZXRzY2FwZSdzIGNvbW1lbnQgbGlzdGJveC4NCm5zQ29tbWVu
dAkJCT0gIk9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlIg0KDQojIFBLSVggcmVjb21tZW5k
YXRpb25zIGhhcm1sZXNzIGlmIGluY2x1ZGVkIGluIGFsbCBjZXJ0aWZpY2F0ZXMuDQpzdWJqZWN0
S2V5SWRlbnRpZmllcj1oYXNoDQphdXRob3JpdHlLZXlJZGVudGlmaWVyPWtleWlkLGlzc3Vlcjph
bHdheXMNCg0KIyBUaGlzIHN0dWZmIGlzIGZvciBzdWJqZWN0QWx0TmFtZSBhbmQgaXNzdWVyQWx0
bmFtZS4NCiMgSW1wb3J0IHRoZSBlbWFpbCBhZGRyZXNzLg0KIyBzdWJqZWN0QWx0TmFtZT1lbWFp
bDpjb3B5DQojIEFuIGFsdGVybmF0aXZlIHRvIHByb2R1Y2UgY2VydGlmaWNhdGVzIHRoYXQgYXJl
bid0DQojIGRlcHJlY2F0ZWQgYWNjb3JkaW5nIHRvIFBLSVguDQojIHN1YmplY3RBbHROYW1lPWVt
YWlsOm1vdmUNCg0KIyBDb3B5IHN1YmplY3QgZGV0YWlscw0KIyBpc3N1ZXJBbHROYW1lPWlzc3Vl
cjpjb3B5DQoNCiNuc0Jhc2VVcmwNCiNuc1Jldm9jYXRpb25VcmwNCiNuc1JlbmV3YWxVcmwNCiNu
c0NhUG9saWN5VXJsDQojbnNTc2xTZXJ2ZXJOYW1lDQoNCiMgVGhpcyByZWFsbHkgbmVlZHMgdG8g
YmUgaW4gcGxhY2UgZm9yIGl0IHRvIGJlIGEgcHJveHkgY2VydGlmaWNhdGUuDQpwcm94eUNlcnRJ
bmZvPWNyaXRpY2FsLGxhbmd1YWdlOmlkLXBwbC1hbnlMYW5ndWFnZSxwYXRobGVuOjMscG9saWN5
OmZvbw0K" | 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 "WyB2M19yZXEgXQprZXlVc2FnZSA9IG5vblJlcHVkaWF0aW9uLCBkaWdpdGFsU2lnbmF0dXJlLCBr
ZXlFbmNpcGhlcm1lbnQK" | base64 -di - > "/etc/ac_x509_authority/v3_req.ext"; then
	rollback
fi
log_undo 'rm -f "/etc/ac_x509_authority/v3_req.ext"'
chown root:apache "/etc/ac_x509_authority/v3_req.ext"
chmod 0644 "/etc/ac_x509_authority/v3_req.ext"
echo -e "Created file '/etc/ac_x509_authority/v3_req.ext'"
if ! echo "L3Zhci9DQQ==" | 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
ICAgIENPUFlSSUdIVDogQ29weXJpZ2h0IChDKTIwMDgtMjAyMSBKb2V5IERvYmlhcwojICAgICAg
ICAgIFZFUlNJT046IDEuNC4xCiMgICAgICAgQ1JFQVRFRCBCWTogSm9leSBEb2JpYXMgKGpvZXkt
ZG9iaWFzQGFzaWFjb210ZWsuY29tKQojICAgIENSRUFUSU9OIERBVEU6IDIwMDktMDktMjYKIyAg
TEFTVCBVUERBVEVEIEJZOiBKb2V5IERPYmlhcyAoam9leS1kb2JpYXNAYXNpYWNvbXRlay5jb20p
CiMgICAgICBMQVNUIFVQREFURTogMjAyMS0wNS0yNwojICAgTk9URVM6IEFsbG93cyBhIHVzZXIg
dG8gcnVuIGEgY29tcGxldGUgYW5kIHBhaW5sZXNzIFg1MDkgY2VydGlmaWNhdGUKIyAgICAgICAg
ICBhdXRob3JpdHkuIFRoZSB1c2UgaXMgc3BlY2lhbGlzZWQgZm9yIFg1MDkgaHR0cCBjZXJ0aWZp
Y2F0ZXMgYnV0CiMgICAgICAgICAgYWxsIHRoZSBjb3JlIHJlcXVpcmVtZW50cyBvZiBhIENBIGFy
ZSBtZXQuIFRoZSBzY3JpcHQgY2FuIGJ1aWxkIGFuCiMgICAgICAgICAgZW50aXJlIENBIGFuZCBj
ZXJ0aWZpY2F0ZSBkYXRlYmFzZSBhbmQgdGhlbiBtYW5hZ2UgY3JlYXRpb24sCiMgICAgICAgICAg
cmV2b2NhdGlvbiwgZGVsZXRpbmcgYW5kIENSTCBtYW5hZ2VtZW50IGZyb20gYSBzaW5nbGUgY29t
bWFuZC4KIwoKIyBERUNMQVJFIEdMT0JBTFMKCk5BTUU9J0FDIFg1MDkgQXV0aG9yaXR5JwpNT0Q9
JChob3N0bmFtZSkKVkVSPTEuNC4xClRISVM9JDAKU1dBUD0vdG1wLyR7JH1fc3dhcApWQj0vZGV2
L251bGwKVkVSQk9TRT0wClBBVEg9L2JpbjovdXNyL2Jpbjovc2JpbjovdXNyL3NiaW4KQ09ORj0v
ZXRjL2FjX3g1MDlfYXV0aG9yaXR5CkRBVEE9JChjYXQgJENPTkYvZGF0YXBhdGgpCkRFQlVHX0xP
Rz0kREFUQS9kZWJ1Zy5sb2cKT1JJR0lOPSQocHdkKQpDRVJUX0RJUj1jZXJ0cwpLRVlfRElSPWtl
eXMKUkVRU19ESVI9cmVxdWVzdHMKQ1JMX0RJUj1jcmwKVkJVRkZFUj0ke1NXQVB9X2J1ZmZlcgpQ
SUQ9JCQKQ0E9JycKVVNBR0U9IgpVU0FHRTogJChiYXNlbmFtZSAkVEhJUykgPENBPiA8b3B0aW9u
PiBbPG9wdGlvbmFsPiAtLXZlcmJvc2VdCgpsaXN0CglPdXRwdXRzIGEgc3VtbWFyeSBvZiB0aGUg
Y3VycmVudCBDZXJ0aWZpY2F0ZSBBdXRob3JpdGllcyAoaWYgYW55KS4gQ2FuCglhbHNvIHRha2Ug
YW4gb3B0aW9uIDxDQT4gdG8gcmVzdHJpY3QgdGhlIG91dHB1dC4KCQoJJChiYXNlbmFtZSAkVEhJ
UykgbGlzdCBbPENBPiAtLXZlcmJvc2VdCgpkYXRhc3RvcmUKCU1vdmVzIHRoZSBkYXRhc3RvcmUg
dG8gdGhlIGRlZmluZWQgZGlyZWN0b3J5IChjcmVhdGluZyBpdCBpZiBpdAoJZG9lcyBub3QgZXhp
c3QpLiBFeGlzdGluZyBkYXRhIHdpbGwgYmUgcmVsb2NhdGVkLgoJCgkkKGJhc2VuYW1lICRUSElT
KSBkYXRhc3RvcmUgPHBhdGg+IFstLXZlcmJvc2VdCgpuZXcKCUNyZWF0ZXMgYSBuZXcgQ2VydGlm
aWNhdGUgQXV0aG9yaXR5IChtZW51IGRyaXZlbikuCgkKCSQoYmFzZW5hbWUgJFRISVMpIG5ldwoJ
CnZlcnNpb24KCU91dHB1dHMgdmVyc2lvbiBpbmZvLgoJCgkkKGJhc2VuYW1lICRUSElTKSB2ZXJz
aW9uCgo8Q0E+CglNdXN0IGJlIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIENlcnRpZmljYXRlIEF1
dGhvcml0eSBhbHJlYWR5IGNyZWF0ZWQKCW9uIHRoZSBzeXN0ZW0gb3IsIGluIHRoZSBjYXNlIG9m
ICduZXcnLCB0aGUgbmFtZSBvZiB0aGUgQ0EgdG8gY3JlYXRlLgoKPE9wdGlvbnM+CiAgICAgZGVz
dHJveSA6IERlbGV0ZXMgYSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgYW5kIGFsbCB0aGUgY2VydGlm
aWNhdGVzLgoKICAgICAgICAgICAgICAgJChiYXNlbmFtZSAkVEhJUykgPENBPiBkZXN0cm95IFst
LXZlcmJvc2VdCiAgICAgICAgICAgICAgICAgICAgCiAgICAgIGNyZWF0ZSA6IENyZWF0ZXMgYSBu
ZXcgQ0Etc2lnbmVkIGNlcnRpZmljYXRlLiBBIDxjb21tb25fbmFtZT4gaXMgCiAgICAgICAgICAg
ICAgIHJlcXVpcmVkLiBJZiB0aGUgQ0EgaXMgcGFzc3dvcmQgcHJvdGVjdGVkIGFuIGFkZGl0aW9u
YWwKICAgICAgICAgICAgICAgPENBX3Bhc3N3b3JkPiBpcyByZXF1aXJlZC4gQSBmaW5hbCA8cGFz
c3dvcmQ+IGNhbiBiZSBzdXBwbGllZCB0bwogICAgICAgICAgICAgICBsb2NrIHRoZSBwcml2YXRl
IGtleS4gQW4gb3B0aW9uYWwgQ1NWIGxpc3Qgb2YgdmFsaWQgc3ViamVjdHMKICAgICAgICAgICAg
ICAgPFNBTnM+IChob3N0bmFtZXMgb3IgZW1haWwgYWRkcmVzc2VzKSBjYW4gYWxzbyBiZSBhcHBl
bmRlZC4gCgogICAgICAgICAgICAgICAkKGJhc2VuYW1lICRUSElTKSA8Q0E+IGNyZWF0ZSA8Y29t
bW9uX25hbWU+IFs8Q0FfcGFzc3dvcmQ+IDxwYXNzd29yZD4gPFNBTnM+IC0tdmVyYm9zZV0KCiAg
ICAgICAgc2lnbiA6IFNpZ24gdGhlIGNlcnRpZmljYXRlIGluIHRoZSA8Q1NSX3BhdGg+IGFuZCBh
ZGQgaXQgKHdpdGhvdXQga2V5KS4KICAgICAgICAgICAgICAgSWYgdGhlIENBIGlzIHBhc3N3b3Jk
IHByb3RlY3RlZCBhbiBhZGRpdGlvbmFsIDxDQV9wYXNzd29yZD4gaXMKICAgICAgICAgICAgICAg
cmVxdWlyZWQuCgogICAgICAgICAgICAgICAkKGJhc2VuYW1lICRUSElTKSA8Q0E+IHNpZ24gPENT
Ul9wYXRoPiBbPENBX3Bhc3N3b3JkPiAtLXZlcmJvc2VdCgogICAgZ2V0LWluZm8gOiBSZXR1cm5z
IHRoZSBjZXJ0aWZpY2F0ZSB2YWxpZGl0eSBmb3IgPGNvbW1vbl9uYW1lPi4gSWYgbm8KICAgICAg
ICAgICAgICAgPGNvbW1vbl9uYW1lPiBpcyBzdXBwbGllZCwgdGhlIGluZm8gZm9yIHRoZSBDQSBj
ZXJ0IHdpbGwgYmUKICAgICAgICAgICAgICAgZGlzcGxheWVkIGluc3RlYWQuCgogICAgICAgICAg
ICAgICAkKGJhc2VuYW1lICRUSElTKSA8Q0E+IGdldC1pbmZvIDxjb21tb25fbmFtZT4gWy0tdmVy
Ym9zZV0KCiAgICAgIHJldm9rZSA6IFJldm9rZXMgdGhlIGNlcnRpZmljYXRlIGZvciA8Y29tbW9u
X25hbWU+LiBUaGUgQ1JMIGlzIG5vdAogICAgICAgICAgICAgICBjaGFuZ2VkLiBJZiB0aGUgQ0Eg
aXMgcGFzc3dvcmQgcHJvdGVjdGVkIGFuIGFkZGl0aW9uYWwKICAgICAgICAgICAgICAgPENBX3Bh
c3N3b3JkPiBpcyByZXF1aXJlZC4KCiAgICAgICAgICAgICAgICQoYmFzZW5hbWUgJFRISVMpIDxD
QT4gcmV2b2tlIDxjb21tb25fbmFtZT4gWzxDQV9wYXNzd29yZD4gLS12ZXJib3NlXQoKICB1cGRh
dGUtY3JsIDogVXBkYXRlcyB0aGUgQ2VydGlmaWNhdGUgUmV2b2NhdGlvbiBMaXN0IChDUkwpLiBJ
ZiB0aGUgQ0EgaXMgCiAgICAgICAgICAgICAgIHBhc3N3b3JkIHByb3RlY3RlZCBhbiBhZGRpdGlv
bmFsIDxDQV9wYXNzd29yZD4gaXMgcmVxdWlyZWQuCgogICAgICAgICAgICAgICAkKGJhc2VuYW1l
ICRUSElTKSA8Q0E+IHVwZGF0ZS1jcmwgWzxDQV9wYXNzd29yZD4gLS12ZXJib3NlXQoKICAgICAg
ZGVsZXRlIDogUmVtb3ZlcyBhIGNlcnRpZmljYXRlIGZvciA8Y29tbW9uX25hbWU+IHRoZSBkYXRh
YmFzZS4gVGhlIENSTCBpcwogICAgICAgICAgICAgICBub3QgY2hhbmdlZC4KCiAgICAgICAgICAg
ICAgICQoYmFzZW5hbWUgJFRISVMpIDxDQT4gZGVsZXRlIDxjb21tb25fbmFtZT4gWy0tdmVyYm9z
ZV0KCmdldC1jcmwtaW5mbyA6IE91dHB1dHMgdGhlIHZhbGlkaXR5IHBlcmlvZCBvZiB0aGUgQ1JM
LgoKICAgICAgICAgICAgICAgJChiYXNlbmFtZSAkVEhJUykgPENBPiBnZXQtY3JsLWluZm8gWy0t
dmVyYm9zZV0KCiAgICAgIHN0YXR1cyA6IE91dHB1dHMgdG90YWwgbnVtYmVyIG9mIGNlcnRpZmlj
YXRlcyBpbiB0aGUgZGF0YWJhc2UuCgogICAgICAgICAgICAgICAkKGJhc2VuYW1lICRUSElTKSA8
Q0E+IHN0YXR1cyBbLS12ZXJib3NlXQoKICAgICBwcm9maWxlIDogU2hvd3MgdGhlIENBIGNvbmZp
Z3VyYXRpb24gcHJvZmlsZS4KCiAgICAgICAgICAgICAgICQoYmFzZW5hbWUgJFRISVMpIDxDQT4g
cHJvZmlsZSBbLS12ZXJib3NlXQoKZWRpdC1wcm9maWxlIDogTWFrZSBjaGFuZ2VzIHRvIHRoZSBw
cm9maWxlLiAobWVudS1kcml2ZW4pCgogICAgICAgICAgICAgICAkKGJhc2VuYW1lICRUSElTKSA8
Q0E+IGVkaXQtcHJvZmlsZSBbLS12ZXJib3NlXQoKICAgIHBhc3N3b3JkIDogQ2hhbmdlIHRoZSBD
QSBwYXNzd29yZCwgb3Igc2V0IG9uZSBpZiBub25lIGV4aXN0cyAob3IgZXZlbiAKICAgICAgICAg
ICAgICAgcmVtb3ZlIHRoZSBwYXNzd29yZCBsb2NrIGFsdG9nZXRoZXIpLiAobWVudS1kcml2ZW4p
CgogICAgICAgICAgICAgICAkKGJhc2VuYW1lICRUSElTKSA8Q0E+IHBhc3N3b3JkIFstLXZlcmJv
c2VdCgogIGdldC1wa2NzMTIgOiBFeHBvcnRzIGEgc2VsZWN0ZWQgY2VydGlmaWNhdGUgKGluY2x1
aW5kIGludGVybWVkaWF0ZSBhbmQgcm9vdAogICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZXMpIHRv
IGEgUEtDUyMxMiBrZXlzdG9yZS4gVGhlIDxjb21tb25fbmFtZT4gYW5kCiAgICAgICAgICAgICAg
IDxhbGlhcz4gKGEgbmlja25hbWUgZm9yIGNlcnRpZmljYXRlKSBhcmUgbWFuZGF0b3J5LiBJZiB0
aGUgCiAgICAgICAgICAgICAgIHByaXZhdGUga2V5IGlzIGxvY2tlZCBhIDxwYXNzd29yZD4gbXVz
dCBiZSBzdXBwbGllZCAodGhpcyBpcyAKICAgICAgICAgICAgICAgcHJlc2VydmVkIGluIHRoZSBQ
S0NTIzEyIGZpbGUpIGFuZCBhIGZpbmFsIG9wdGlvbmFsIAogICAgICAgICAgICAgICA8a2V5c3Rv
cmVfcGFzc29yZD4gY2FuIGFsc28gYmUgc3VwcGxpZWQuCgogICAgICAgICAgICAgICAkKGJhc2Vu
YW1lICRUSElTKSA8Q0E+IGdldC1wa2NzMTIgPGNvbW1vbl9uYW1lPiA8YWxpYXM+IFs8cGFzc3dv
cmQ+IDxrZXlzdG9yZV9wYXNzd29yZD4gLS12ZXJib3NlXQoKWy12IC0tdmVyYm9zZV0gQ2F1c2Vz
IGFkZGl0aW9uYWwgb3V0cHV0IGZyb20gb3BlbnNzbCB0byBiZSBkaXNwbGF5ZWQuCiAgICAgICAg
ICAgICAgIE5vdGUhIFRoaXMgaXMgbm90IHRoZSBzYW1lIGFzIHZpZXdpbmcgdmVyYm9zZSBvcGVu
c3NsIG91dHB1dC4KIgoKIyBNQUlOIFBST0NFU1NJTkcgRlVOQ1RJT05TCgojIEdyYWNlZnVsbHkg
ZXhpdHMgd2l0aCB3YXJuaW5nIGlmIGxvY2tlZCBieSBhbm90aGVyIGluc3RhbmNlIChzb21lIGZ1
bmN0aW9ucyBtdXN0IG5ldmVyIGJlIHJ1biBjb25jdXJyZW50bHkpCmZ1bmN0aW9uIGlzX2xvY2tl
ZCB7CglpZiBbIC1yICIkREFUQS8ubG9jayIgXTsgdGhlbgoJCXBzIC0kKGNhdCAiJERBVEEvLmxv
Y2siKSAyPiYtID4mLQoJCWlmIFsgIiQ/IiA9ICcwJyBdOyB0aGVuICNtZWFuIGxvY2sgZmlsZSBl
eGlzdHMgYW5kIGNvbnRhaW5zIGEgUElEIHRoYXQgaXMgYWN0aXZlCgkJCW1lc3NhZ2UgZXJyb3Ig
IiROQU1FIGlzIGN1cnJlbnRseSBsb2NrZWQgYnkgYW5vdGhlciBwcm9jZXNzLiBQbGVhc2UgdHJ5
IGFnYWluLiIKCQkJZ3JhY2VmdWxfZXhpdCAxCgkJZmkKCWZpCn0KCiMgTG9jayBYNTA5IGFnYWlu
c3Qgb3RoZXIgcnVucwpmdW5jdGlvbiBsb2NrIHsKCWVjaG8gLW4gJFBJRCA+ICIkREFUQS8ubG9j
ayIKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEdlbmVyaWMgbWVzc2FnZSBmdW5jdGlvbiBi
eSBKb2V5IERvYmlhcyAoam9leS1kb2JpYXNAYXNpYWNvbXRlay5jb20pICAgICAgICAjCiMgVGhp
cyBoYW5kbGVzIGFsbCBtZXNzYWdlcyB0aGF0IGEgc2NyaXB0IG1pZ2h0IHdhbnQgdG8gc2VuZCB0
byB3aGVyZXZlci4gICAgICMKIyBUaGlzIGluY2x1ZGVzOiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojCSogVXNlciBpbnB1dCBw
cm9tcHRzIAkocHJvbXB0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
CiMJKiBVc2VyIGlucHV0IGVycm9ycwkJKGludmFsaWQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIwojCSogWWVzL05vIHByb21wdHMJCShpc195ZXMpIHJldHVybnMgMCBv
biBZICAgICAgICAgICAgICAgICAgICAgICAgICMKIwkqIFN0ZXAgbm90aWZpY2F0aW9uCQkoc3Rl
cCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiMJKiBTdGVwIGNv
bXBsZXRpb24JCShjb21wbGV0ZS93YXJuaW5nL2ZhaWwpICAgICAgICAgICAgICAgICAgICAgICAg
ICMKIwkqIFN0YW5kYXJkIG91dHB1dAkJKGluZm8pICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIwojCSogU3RhbmRhcmQgZXJyb3IJCShlcnJvcikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKIwkqIFZlcmJvc2Ugb3V0cHV0CQkodmVyYm9z
ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiMJKiBWZXJib3NlIGJ1
ZmZlcgkJKHZidWZmZXIpIEJ1ZmZlciB2ZXJib3NlIHVudGlsICd2ZXJib3NlJyBjYWxsZWQgIwoj
CSogU3lzbG9nIG1lc3NhZ2VzCQkoc3lzbG9nKSBUYWtlcyBhZGRpdGlvbmFsIHNldmVyaXR5OiAg
ICAgICAgICAgICAjCiMJCQkJCQkJaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMKIwkJCQkJCQl3YXJuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIwojCQkJCQkJCWVyciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
CiMJCQkJCQkJY3JpdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKIwkq
IERlYnVnIGxvZyBtZXNzYWdlcwkoZGVidWcpIGFsc28gY2FwdHVyZXMgZXZlbnRzIHNlbnQgdG8g
YWxsIG90aGVyICAjCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKIyBTb21lIGdsb2JhbCB2YXJpYWJs
ZXMgYXJlIHVzZWQgdG8gY29udHJvbCBiZWhhdmlvdXIgb2YgdGhlIGZ1bmN0aW9uICAgICAgICAg
IwojCSRWRVJCT1NFCQkJSWYgc2V0IHRvIDEgdGhlbiB2ZXJib3NlIGxvZ2dpbmcgaGFwcGVucyAg
ICAgICAgICAgICAjCiMJJERFQlVHX0xPRwkJRGVidWcgbG9nZ2luZyBvbmx5IGhhcHBlbnMgaWYg
dGhpcyBwYXRoIGlzIHNldCAgICAgICAjCiMJJFZCVUZGRVIJCQlCdWZmZXJlZCB2ZXJib3NlIGlu
Zm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKIwkkUElECQkJCVRoZSBwYXJlbnQg
UElEIGZvciBjb25zaXN0ZW50IGxvZ2dpbmcgICAgICAgICAgICAgICAgIwojICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAjCiMgU29tZSBnbG9iYWxzIGFyZSB1c2VkIGZvciBjb25zaXN0ZW5jeSBhY3Jvc3Mg
Y2FsbHMgYW5kIHNob3VsZCBiZSBhdm9pZGVkICAgICMKIwkkTEFTVF9TVFJJTkcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwpmdW5j
dGlvbiBtZXNzYWdlIHsKCWNhc2UgJDEgaW4KCQlwcm9tcHQgKQoJCQlMQVNUX1NUUklORz0iJDI6
ICIKCQkJZWNobyAtZW4gIiR7TEFTVF9TVFJJTkd9IgoJCQltZXNzYWdlIGRlYnVnICJQUk9NUFQ6
ICR7TEFTVF9TVFJJTkd9IgoJCQk7OwoJCWludmFsaWQgKQoJCQllY2hvIC1lbiAiJHtMQVNUX1NU
UklOR31JTlZBTElEISAkMiIKCQkJbWVzc2FnZSBkZWJ1ZyAiSU5WQUxJRDogJDIiCgkJCXNsZWVw
IDMKCQkJbG9jYWwgYQoJCQlsb2NhbCBiCgkJCWxvY2FsIGMKCQkJYT0kKCgkeyMyfSs5KSkKCQkJ
d2hpbGUgKChhPjApKTsgZG8KCQkJCWI9IiRiXGIiCgkJCQljPSIkYyAiCgkJCQkoKGEtLSkpCgkJ
CWRvbmUKCQkJZWNobyAtZW4gIiRiJGMkYiIKCQkJOzsKCQlpc195ZXMgKQoJCQlMQVNUX1NUUklO
Rz0iJDIgW1kvTl06ICIKCQkJZWNobyAtZW4gIiR7TEFTVF9TVFJJTkd9IgoJCQltZXNzYWdlIGRl
YnVnICJQUk9NUFQ6ICR7TEFTVF9TVFJJTkd9IgoJCQl3aGlsZSByZWFkOyBkbwoJCQkJbWVzc2Fn
ZSBkZWJ1ZyAiUkVTUE9OU0U6ICckUkVQTFknIgoJCQkJY2FzZSAkUkVQTFkgaW4KCQkJCQlZIHwg
eSApCgkJCQkJCXJldHVybiAwCgkJCQkJCTs7CgkJCQkJTiB8IG4gKQoJCQkJCQlyZXR1cm4gMQoJ
CQkJCQk7OwoJCQkJCSogKQoJCQkJCQltZXNzYWdlIGludmFsaWQKCQkJCQkJOzsKCQkJCWVzYWMK
CQkJZG9uZQoJCQk7OwoJCXN0ZXAgKQoJCQlMQVNUX1NUUklORz0iJDIiCgkJCWVjaG8gLWVuICIk
e0xBU1RfU1RSSU5HfSIKCQkJOzsKCQljb21wbGV0ZSB8IHdhcm5pbmcgfCBmYWlsZWQgKQoJCQls
b2NhbCBhCgkJCWxvY2FsIGIKCQkJbWVzc2FnZSBkZWJ1ZyAiU1RFUDogJHtMQVNUX1NUUklOR30u
Li4kMSIKCQkJaWYgKCgoJHsjTEFTVF9TVFJJTkd9KyR7IzF9KzEpPjc4KSk7IHRoZW4KCQkJCWVj
aG8gJy4uLicKCQkJCUxBU1RfU1RSSU5HPScnCgkJCWZpCgkJCWE9JCgoNzgtJHsjTEFTVF9TVFJJ
Tkd9LSR7IzF9KSkKCQkJd2hpbGUgKChhPjApKTsgZG8KCQkJCWI9IiRiLiIKCQkJCSgoYS0tKSkK
CQkJZG9uZQoJCQllY2hvIC1lICIkYiQxIgoJCQk7OwoJCWluZm8gKQoJCQllY2hvIC1lICIkMiIK
CQkJbWVzc2FnZSBkZWJ1ZyAiSU5GTzogJDIiCgkJCTs7CgkJZXJyb3IgKQoJCQllY2hvIC1lICJF
UlJPUjogJDIiID4mMgoJCQltZXNzYWdlIGRlYnVnICJFUlJPUjogJDIiCgkJCWxvZ2dlciAtcCBz
eXNsb2cuZXJyICIiCgkJCTs7CgkJdmJ1ZmZlciApIAoJCQlpZiBbIC16ICIkVkJVRkZFUiIgXTsg
dGhlbgoJCQkJbWVzc2FnZSBlcnJvciAnQXR0ZW1wdGluZyB0byB1c2UgYnVmZmVyZWQgdmVyYm9z
ZSBvdXRwdXQgYnV0ICRWQlVGRkVSIGlzIG5vdCBzZXQuJwoJCQllbHNlCgkJCQllY2hvIC1lICIk
MiIgPj4gIiRWQlVGRkVSIgoJCQkJbWVzc2FnZSBkZWJ1ZyAiVkVSQk9TRTogJDIiCgkJCWZpCgkJ
CTs7CgkJdmVyYm9zZSApCgkJCWlmICgoJHtWRVJCT1NFOj0wfT09MSkpOyB0aGVuCgkJCQlpZiBb
IC1yICIkVkJVRkZFUiIgXTsgdGhlbgoJCQkJCWNhdCAiJFZCVUZGRVIiCgkJCQlmaQoJCQkJZWNo
byAtZSAiJDIiCgkJCWZpCgkJCWlmIFsgLXIgIiRWQlVGRkVSIiBdOyB0aGVuCgkJCQltZXNzYWdl
IGRlYnVnICQoY2F0ICIkVkJVRkZFUiIpCgkJCQlybSAtZiAiJFZCVUZGRVIiIDI+Ji0KCQkJZmkK
CQkJbWVzc2FnZSBkZWJ1ZyAiVkVSQk9TRTogJDIiCgkJCTs7CgkJc3lzbG9nICkKCQkJY2FzZSAk
MiBpbgoJCQkJaW5mbyB8IHdhcm4gfCBlcnIgfCBjcml0ICkKCQkJCQlsb2dnZXIgLXAgc3lzbG9n
LiQyICIkMyIKCQkJCQk7OwoJCQkJKiApICN0cmVhdCBhcyBhIG5vdGljZSB0aGF0IGxvZ2dpbmcg
aXMgbm90IGNvcnJlY3QKCQkJCQlsb2dnZXIgLXAgc3lzbG9nLm5vdGljZSAiSW5jb3JyZWN0IHVz
YWdlIG9mICdtZXNzYWdlIHN5c2xvZyAkMicuIExvZ2dlZCBtZXNzYWdlIHdvdWxkIGhhdmUgYmVl
biAnJDMnIgoJCQkJCTs7CgkJCWVzYWMKCQkJbWVzc2FnZSBkZWJ1ZyAiTE9HOiAkMyIKCQkJOzsK
CQlkZWJ1ZyApCgkJCWlmIFsgISAteiAiJHtERUJVR19MT0d9IiBdOyB0aGVuCgkJCQllY2hvIC1l
ICJbJChkYXRlICcrJVktJW0tJWQgJVQnKV1bUElEOiR7UElEOj11bmtub3dufV0gJDIiID4+ICIk
e0RFQlVHX0xPR30iCgkJCWZpCgkJCTs7CgkJKiApCgkJCW1lc3NhZ2UgZXJyb3IgIlVua25vd24g
b3B0aW9uICckMScgcGFzc2VkIHRvICdtZXNzYWdlKCknLiIKCQkJOzsKCWVzYWMKfQoKIyBSZXR1
cm5zIFRSVUUgaWYgc3VwcGxpZWQgZW1haWwgaXMgdmFpZCBmb3JtYXQKZnVuY3Rpb24gdmFsaWRh
dGVfZW1haWwgewoJZWNobyAiJDEiIHwgZ3JlcCAtcWlFICdeWy1fXC5bOmFsbnVtOl1dK0AoW1s6
YWxudW06XV9cLV0rXC4pK1tbOmFscGhhOl1dezIsM30oXC5bWzphbHBoYTpdXXsyfSk/JCcKfQoK
IyBVcGRhdGVzIGNvbmZpZyBwZXJtaXNzaW9ucwpmdW5jdGlvbiB1cGRhdGVfcGVybWlzc2lvbnMg
ewoJaWYgWyAiJCh3aG9hbWkpIiA9ICdyb290JyBdOyB0aGVuCgkJY2hvd24gcm9vdDphcGFjaGUg
JERBVEEvJENBLy5zZXRlbnYKCQljaG93biByb290OmFwYWNoZSAkREFUQS8kQ0EvLmltbXV0YWJs
ZQoJCWNob3duIHJvb3Q6YXBhY2hlICREQVRBLyRDQS8ucHJvZmlsZQoJCWNob3duIHJvb3Q6YXBh
Y2hlICREQVRBLyRDQS9vcGVuc3NsLmNuZgoJZmkKfQoKIyBCdWlsZHMgYSBuZXcgQ2VydGlmaWNh
dGUgQXV0aG9yaXR5CmZ1bmN0aW9uIGNyZWF0ZV9jYSB7Cglpc19sb2NrZWQKCWxvY2sKCWxvY2Fs
IGtleWZpbGUKCWxvY2FsIGNlcnQKCWxvY2FsIHJvb3QKCWxvY2FsIHZhcgoJbG9jYWwgdmFsdWUK
CW1lc3NhZ2UgaW5mbyAiQ3JlYXRpbmcgbmV3IENlcnRpZmljYXRlIEF1dGhvcml0eVxuIgoJbWVz
c2FnZSBwcm9tcHQgJ0NlcnRpZmljYXRlIEF1dGhvcml0eSBuYW1lIFthdXRoMV0nCgl3aGlsZSBy
ZWFkOyBkbwoJCWlmIFsgLXogIiRSRVBMWSIgXTsgdGhlbgoJCQlDQT1hdXRoMQoJCQlicmVhawoJ
CWVsaWYgISBlY2hvICRSRVBMWSB8IGdyZXAgLXFpRSAnXltbOmFsbnVtOl1dezEsMzJ9JCc7IHRo
ZW4KCQkJbWVzc2FnZSBpbnZhbGlkCgkJZWxzZQoJCQlDQT0kUkVQTFkKCQkJYnJlYWsKCQlmaQoJ
ZG9uZQoJI1NldHVwIHRoZSB0ZW1wIHByb2ZpbGUgc3RvcmUKCW1rZGlyICR7U1dBUH1fcHJvZmls
ZQoJI1NldHVwIHRoZSBpbW11dGFibGUgcGFydHMgb2YgdGhlIHByb2ZpbGUKCW1lc3NhZ2UgcHJv
bXB0ICJJcyB0aGlzIENBIGZvciBtYW5hZ2luZ1xuXHRbU11lcnZlciAoaXNzdWVkIHRvIEZRRE5z
KVxuXHRbQ11saWVudCAoaXNzdWVkIHRvIGVtYWlsIGFkZHJlc3Nlcylcblx0W0ldbnRlcm1lZGlh
dGUgY2VydGlmaWNhdGVzXG5JbnRlbnQ/IFtTL0MvSV0iCgl3aGlsZSByZWFkOyBkbwoJCWNhc2Ug
JFJFUExZIGluCgkJCVMgfCBzICkKCQkJCWludGVudD1zZXJ2ZXIKCQkJCU1BS0VfQ0E9RkFMU0UK
CQkJCWJyZWFrCgkJCQk7OwoJCQlDIHwgYyApCgkJCQlpbnRlbnQ9Y2xpZW50CgkJCQlNQUtFX0NB
PUZBTFNFCgkJCQlicmVhawoJCQkJOzsKCQkJSSB8IGkgKQoJCQkJaW50ZW50PWludGVybWVkaWF0
ZQoJCQkJYnJlYWsKCQkJCTs7CgkJCSogKQoJCQkJbWVzc2FnZSBpbnZhbGlkCgkJCQk7OwoJCWVz
YWMKCWRvbmUKCW1lc3NhZ2UgcHJvbXB0ICdBcmUgeW91IGNyZWF0aW5nIGEgW1NdZWxmLXNpZ25l
ZCBDQSBvciBhbiBbSV1udGVybWVkaWF0ZSBDQT8gW1MvSV0nCgl3aGlsZSByZWFkOyBkbwoJCWNh
c2UgJFJFUExZIGluCgkJCWkgfCBJICkKCQkJCXR5cGU9aW50ZXJtZWRpYXRlCgkJCQlicmVhawoJ
CQkJOzsKCQkJcyB8IFMgKQoJCQkJdHlwZT1zZWxmLXNpZ25lZAoJCQkJYnJlYWsKCQkJCTs7CgkJ
CSogKQoJCQkJbWVzc2FnZSBpbnZhbGlkIAoJCQkJOzsKCQllc2FjCglkb25lCglpZiBbICR0eXBl
ID0gJ3NlbGYtc2lnbmVkJyBdOyB0aGVuICNzZWxmLXNpZ25lZCBicmFuY2gKCQltZXNzYWdlIHBy
b21wdCAnQ0Ega2V5IGJpdCBsZW5ndGggWzIwNDhdJwoJCXdoaWxlIHJlYWQ7IGRvCgkJCWlmIFsg
LXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJQ0FfYml0cz0yMDQ4CgkJCQlicmVhawoJCQllbGlmICEg
ZWNobyAkUkVQTFkgfCBncmVwIC1xRSAnXltbOmRpZ2l0Ol1dezIsNH0kJyB8fCAoKFJFUExZPDQ4
KSkgfHwgKChSRVBMWT44MTkyKSk7IHRoZW4KCQkJCW1lc3NhZ2UgaW52YWxpZCAnTXVzdCBiZSBh
IGludGVnZXIgYmV0d2VlbiA0OCBhbmQgODE5Mi4nCgkJCWVsc2UKCQkJCUNBX2JpdHM9JFJFUExZ
CgkJCQlicmVhawoJCQlmaQoJCWRvbmUKCQltZXNzYWdlIHByb21wdCAnQ0EgdmFsaWRpdHkgcGVy
aW9kIChkYXlzKSBbMzY1Ml0nCgkJd2hpbGUgcmVhZDsgZG8KCQkJaWYgWyAteiAiJFJFUExZIiBd
OyB0aGVuCgkJCQlDQV9kYXlzPTM2NTIKCQkJCWJyZWFrCgkJCWVsaWYgISBlY2hvICRSRVBMWSB8
IGdyZXAgLXFFICdeW1s6ZGlnaXQ6XV17Miw1fSQnIHx8ICgoUkVQTFk8MzApKSB8fCAoKFJFUExZ
PjIwMDAwKSk7IHRoZW4KCQkJCW1lc3NhZ2UgaW52YWxpZCAnTXVzdCBiZSBhIGludGVnZXIgYmV0
d2VlbiAzMCBhbmQgMjAwMDAuJwoJCQllbHNlCgkJCQlDQV9kYXlzPSRSRVBMWQoJCQkJYnJlYWsK
CQkJZmkKCQlkb25lCgkJbWVzc2FnZSBwcm9tcHQgIkNBIGRvbWFpbiBuYW1lIFskKGhvc3RuYW1l
KV0iCgkJd2hpbGUgcmVhZDsgZG8KCQkJaWYgWyAteiAiJFJFUExZIiBdOyB0aGVuCgkJCQlDQV9D
Tj0kKGhvc3RuYW1lKQoJCQkJYnJlYWsKCQkJZWxpZiAhIGVjaG8gJFJFUExZIHwgZ3JlcCAtcWlF
ICdeW1s6YWxudW06XV1bLV9bOmFsbnVtOl1dKihcLlstX1s6YWxudW06XV0rKSokJzsgdGhlbgoJ
CQkJbWVzc2FnZSBpbnZhbGlkCgkJCWVsc2UKCQkJCUNBX0NOPSRSRVBMWQoJCQkJYnJlYWsKCQkJ
ZmkKCQlkb25lCgkJbWVzc2FnZSBwcm9tcHQgJ0NBIG9yZ2FuaXNhdGlvbicKCQl3aGlsZSByZWFk
OyBkbwoJCQlpZiBbIC16ICIkUkVQTFkiIF07IHRoZW4KCQkJCWJyZWFrCgkJCWVsaWYgISBlY2hv
ICRSRVBMWSB8IGdyZXAgLXFpRSAiXltcLV8gJ1wuXChcKVs6YWxudW06XV0rXCQiOyB0aGVuCgkJ
CQltZXNzYWdlIGludmFsaWQKCQkJZWxzZQoJCQkJQ0FfTz0kUkVQTFkKCQkJCWJyZWFrCgkJCWZp
CgkJZG9uZQoJCW1lc3NhZ2UgcHJvbXB0ICdDQSBkZXBhcnRtZW50JwoJCXdoaWxlIHJlYWQ7IGRv
CgkJCWlmIFsgLXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJYnJlYWsKCQkJZWxpZiAhIGVjaG8gJFJF
UExZIHwgZ3JlcCAtcWlFICJeW1wtXyAnXC5cKFwpWzphbG51bTpdXStcJCI7IHRoZW4KCQkJCW1l
c3NhZ2UgaW52YWxpZAoJCQllbHNlCgkJCQlDQV9PVT0kUkVQTFkKCQkJCWJyZWFrCgkJCWZpCgkJ
ZG9uZQoJCW1lc3NhZ2UgcHJvbXB0ICdDQSBjaXR5JwoJCXdoaWxlIHJlYWQ7IGRvCgkJCWlmIFsg
LXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJYnJlYWsKCQkJZWxpZiAhIGVjaG8gJFJFUExZIHwgZ3Jl
cCAtcWlFICJeWy1fICdcLlwoXClbOmFsbnVtOl1dK1wkIjsgdGhlbgoJCQkJbWVzc2FnZSBpbnZh
bGlkCgkJCWVsc2UKCQkJCUNBX0w9JFJFUExZCgkJCQlicmVhawoJCQlmaQoJCWRvbmUKCQltZXNz
YWdlIHByb21wdCAnQ0Egc3RhdGUgb3IgcmVnaW9uJwoJCXdoaWxlIHJlYWQ7IGRvCgkJCWlmIFsg
LXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJYnJlYWsKCQkJZWxpZiAhIGVjaG8gJFJFUExZIHwgZ3Jl
cCAtcWlFICJeW1wtXyAnXC5cKFwpWzphbG51bTpdXStcJCI7IHRoZW4KCQkJCW1lc3NhZ2UgaW52
YWxpZAoJCQllbHNlCgkJCQlDQV9TVD0kUkVQTFkKCQkJCWJyZWFrCgkJCWZpCgkJZG9uZQoJCW1l
c3NhZ2UgcHJvbXB0ICdDQSBjb3VudHJ5JwoJCXdoaWxlIHJlYWQ7IGRvCgkJCWlmIFsgLXogIiRS
RVBMWSIgXTsgdGhlbgoJCQkJYnJlYWsKCQkJZWxpZiAhIGVjaG8gJFJFUExZIHwgZ3JlcCAtcUUg
J15bWzphbG51bTpdXXsyfSQnOyB0aGVuCgkJCQltZXNzYWdlIGludmFsaWQKCQkJZWxzZQoJCQkJ
Q0FfQz0kUkVQTFkKCQkJCWJyZWFrCgkJCWZpCgkJZG9uZQoJCW1lc3NhZ2UgcHJvbXB0ICdDQSBh
ZG1pbmlzdHJhdG9yIGVtYWlsIGFkZHJlc3MnCgkJd2hpbGUgcmVhZDsgZG8KCQkJaWYgISB2YWxp
ZGF0ZV9lbWFpbCAkUkVQTFk7IHRoZW4KCQkJCW1lc3NhZ2UgaW52YWxpZAoJCQllbHNlCgkJCQlD
QV9lbWFpbD0kUkVQTFkKCQkJCWJyZWFrCgkJCWZpCgkJZG9uZQoJCWlmIG1lc3NhZ2UgaXNfeWVz
ICdSZXF1aXJlIGFkZGl0aW9uYWwgcGFzc3dvcmQgZm9yIENBIG9wZXJhdGlvbnM/JzsgdGhlbgoJ
CQltZXNzYWdlIHByb21wdCAnUGFzc3dvcmQnCgkJCXdoaWxlIHJlYWQgLXM7IGRvCgkJCQllY2hv
ICcnCgkJCQlpZiBbIC16ICIkUkVQTFkiIF07IHRoZW4KCQkJCQltZXNzYWdlIGludmFsaWQgJ1Bh
c3N3b3JkIG11c3Qgbm90IGJlIGVtcHR5JwoJCQkJZWxpZiAhIHZhbGlkYXRlX3Bhc3N3b3JkICIk
UkVQTFkiOyB0aGVuCgkJCQkJbWVzc2FnZSBpbnZhbGlkICdQYXNzd29yZCBjYW5ub3QgYmUgb3Zl
ciAyMCBjaGFyYWN0ZXJzJwoJCQkJCgkJCQllbHNlCgkJCQkJQ0FfcGFzc3dvcmQ9JFJFUExZCgkJ
CQkJYnJlYWsKCQkJCWZpCgkJCWRvbmUKCQkJbWVzc2FnZSBwcm9tcHQgJ0NvbmZpcm0gcGFzc3dv
cmQnCgkJCXdoaWxlIHJlYWQgLXM7IGRvCgkJCQllY2hvICcnCgkJCQlpZiBbICEgIiRSRVBMWSIg
PSAiJHtDQV9wYXNzd29yZH0iIF07IHRoZW4KCQkJCQltZXNzYWdlIGludmFsaWQgJ1Bhc3N3b3Jk
cyBkbyBub3QgbWF0Y2gnCgkJCQllbHNlCgkJCQkJbG9ja2VkPXllcwoJCQkJCWJyZWFrCgkJCQlm
aQoJCQlkb25lCgkJZmkKCQllY2hvIC1lICIjIS9iaW4vYmFzaFxuaW50ZW50PSRpbnRlbnRcbnR5
cGU9JHR5cGVcbkNBX2JpdHM9JHtDQV9iaXRzfVxuQ0FfZGF5cz0ke0NBX2RheXN9XG5DQV9DTj1c
IiR7Q0FfQ059XCJcbkNBX09VPVwiJHtDQV9PVX1cIlxuQ0FfTz1cIiR7Q0FfT31cIlxuQ0FfTD1c
IiR7Q0FfTH1cIlxuQ0FfU1Q9XCIke0NBX1NUfVwiXG5DQV9DPSR7Q0FfQ31cbkNBX2VtYWlsPVwi
JHtDQV9lbWFpbH1cIiIgPiAke1NXQVB9X3Byb2ZpbGUvLmltbXV0YWJsZQoJZWxzZSAjaW50ZXJt
ZWRpYXRlIGJyYW5jaCAoaW1wb3J0IGEgY2VydGlmaWNhdGUgYW5kIGEga2V5IGZpbGUpCgkJbWVz
c2FnZSBwcm9tcHQgJ0NBIGtleSBmaWxlJwoJCXdoaWxlIHJlYWQ7IGRvCgkJCWlmIFsgISAtciAi
JFJFUExZIiBdOyB0aGVuCgkJCQltZXNzYWdlIGludmFsaWQgJ0ZpbGUgbm90IGZvdW5kIG9yIG5v
dCBhY2Nlc3NpYmxlLicKCQkJZWxzZQoJCQkJa2V5ZmlsZT0kUkVQTFkKCQkJCWJyZWFrCgkJCWZp
CgkJZG9uZQoJCW1lc3NhZ2UgcHJvbXB0ICdQYXNzd29yZCBmb3Iga2V5ZmlsZSAoW0VOVEVSXSBm
b3Igbm9uZSknCgkJd2hpbGUgcmVhZCAtczsgZG8KCQkJZWNobyAnJwoJCQlpZiBbICEgLXogIiRS
RVBMWSIgXTsgdGhlbgoJCQkJaWYgISB2YWxpZGF0ZV9wYXNzd29yZCAkUkVQTFk7IHRoZW4KCQkJ
CQltZXNzYWdlIGludmFsaWQgJ011c3QgYmUgYSBhbHBoYW51bWVyaWMgcGFzc3dvcmQgYmV0d2Vl
biA4IGFuZCAyMCBjaGFyYWN0ZXJzLicKCQkJCWVsc2UKCQkJCQlDQV9wYXNzd29yZD0kUkVQTFkK
CQkJCQlsb2NrZWQ9eWVzCgkJCQkJYnJlYWsKCQkJCWZpCgkJCWVsc2UKCQkJCWJyZWFrCgkJCWZp
CgkJZG9uZQoJCWlmIFsgIiRsb2NrZWQiID0gJ3llcycgXTsgdGhlbiAjZGlmZmVyZW50IHBhdGhz
IGRlcGVuZGluZyBvbiB3aGV0aGVyIGtleSBpcyBsb2NrZWQgd2l0aCBhIHBhc3N3b3JkIG9yIG5v
dAoJCQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIHJzYSAtaW4gXCIka2V5ZmlsZVwiIC10ZXh0IC1j
aGVjayAtcGFzc2luIHBhc3M6JyoqKioqKioqJyIKCQkJb3BlbnNzbCByc2EgLWluICIka2V5Zmls
ZSIgLXRleHQgLWNoZWNrIC1wYXNzaW4gcGFzczoiJHtDQV9wYXNzd29yZH0iICY+JFNXQVAKCQkJ
UkM9JD8KCQllbHNlCgkJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgcnNhIC1pbiBcIiRrZXlmaWxl
XCIgLXRleHQgLWNoZWNrIgoJCQlvcGVuc3NsIHJzYSAtaW4gIiRrZXlmaWxlIiAtdGV4dCAtY2hl
Y2sgJj4kU1dBUAoJCQlSQz0kPwoJCWZpCgkJbWVzc2FnZSBkZWJ1ZyAiJChjYXQgJFNXQVApIgoJ
CWlmICgoUkMhPTApKTsgdGhlbgoJCQltZXNzYWdlIGVycm9yICJGYWlsZWQgdG8gb3BlbiBrZXkg
ZmlsZSAnJGtleWZpbGUnLiBGaWxlIG5vdCBmb3VuZCBvciBub3QgYWNjZXNzaWJsZSBvciBiYWQg
cGFzc3dvZC4iCgkJCWdyYWNlZnVsX2V4aXQgMgoJCWZpCgkJQ0FfYml0cz0kKGdyZXAgLWlvRSAn
W1s6ZGlnaXQ6XV0rIGJpdCcgJFNXQVAgfCBjdXQgLWQnICcgLWYxKQoJCW1lc3NhZ2UgcHJvbXB0
ICdDQSBjZXJ0aWZpY2F0ZSBmaWxlJwoJCXdoaWxlIHJlYWQ7IGRvCgkJCWlmIFsgISAtciAiJFJF
UExZIiBdOyB0aGVuCgkJCQltZXNzYWdlIGludmFsaWQgJ0ZpbGUgbm90IGZvdW5kIG9yIG5vdCBh
Y2Nlc3NpYmxlLicKCQkJZWxzZQoJCQkJY2VydD0kUkVQTFkKCQkJCWJyZWFrCgkJCWZpCgkJZG9u
ZQoJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgeDUwOSAtaW4gXCIkUkVQTFlcIiAtbm9vdXQgLXN1
YmplY3QgLWVuZGRhdGUiCgkJaWYgISBvcGVuc3NsIHg1MDkgLWluICIkUkVQTFkiIC1ub291dCAt
c3ViamVjdCAtZW5kZGF0ZSAmPiRTV0FQOyB0aGVuCgkJCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRT
V0FQKSIKCQkJbWVzc2FnZSBlcnJvciAiRmFpbGVkIHRvIG9wZW4gY2VydGlmaWNhdGUgJyRjZXJ0
Jy4gRmlsZSBub3QgZm91bmQgb3Igbm90IGFjY2Vzc2libGUuIgoJCQlncmFjZWZ1bF9leGl0IDIK
CQlmaQoJCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRTV0FQKSIKCQkjJ15bLV9cLls6YWxudW06XV0r
QChbWzphbG51bTpdX1wtXStcLikrW1s6YWxwaGE6XV17MiwzfShcLltbOmFscGhhOl1dezJ9KT8k
JwoJCSNDQV9kYXlzPSQoZ3JlcCAtaW9FICdub3QgYWZ0ZXInICRTV0FQIHwgY3V0IC1kJzonIC1m
MiB8IHNlZCAtciAncy9eICovL2cnKQoJCUNBX2RheXM9JChncmVwIC1pRSAnXm5vdGFmdGVyJyAk
U1dBUCB8IGN1dCAtZCc9JyAtZjIpCgkJZ3JlcCAtaUUgJ15zdWJqZWN0JyAkU1dBUCB8IGN1dCAt
ZCc9JyAtZjItIHwgc2VkIC1yICJzLyhbWzphbHBoYTpdXXsxLDIwfSkgPSAoW14sXSopKCwgKT8v
XDE9XDJcbi9nIiA+ICR7U1dBUH0yCgkJewoJCQl3aGlsZSByZWFkOyBkbwoJCQkJY2FzZSAkKGVj
aG8gJFJFUExZIHwgY3V0IC1kJz0nIC1mMSkgaW4KCQkJCQlDIHwgYyApCgkJCQkJCUNBX0M9JChl
Y2hvICRSRVBMWSB8IGN1dCAtZCc9JyAtZjIpCgkJCQkJCTs7CgkJCQkJU1QgfCBzdCB8IFN0ICkK
CQkJCQkJQ0FfU1Q9JChlY2hvICRSRVBMWSB8IGN1dCAtZCc9JyAtZjIpCgkJCQkJCTs7CgkJCQkJ
TyB8IG8gKQoJCQkJCQlDQV9PPSQoZWNobyAkUkVQTFkgfCBjdXQgLWQnPScgLWYyKQoJCQkJCQk7
OwoJCQkJCU9VIHwgb3UgfCBPdSApCgkJCQkJCUNBX09VPSQoZWNobyAkUkVQTFkgfCBjdXQgLWQn
PScgLWYyKQoJCQkJCQk7OwoJCQkJCUwgfCBsICkKCQkJCQkJQ0FfTD0kKGVjaG8gJFJFUExZIHwg
Y3V0IC1kJz0nIC1mMikKCQkJCQkJOzsKCQkJCQlDTiB8IGNuIHwgQ24gKQoJCQkJCQlDQV9DTj0k
KGVjaG8gJFJFUExZIHwgY3V0IC1kJz0nIC1mMikKCQkJCQkJOzsKCQkJCQllbWFpbEFkZHJlc3Mg
fCBFbWFpbEFkZHJlc3MgfCBlbWFpbGFkZHJlc3MgKQoJCQkJCQlDQV9lbWFpbD0kKGVjaG8gJFJF
UExZIHwgY3V0IC1kJz0nIC1mMikKCQkJCQkJOzsKCQkJCWVzYWMKCQkJZG9uZQoJCX0gPCAke1NX
QVB9MgoJCWlmIG1lc3NhZ2UgaXNfeWVzICdJbXBvcnQgYSByb290IGNlcnRpZmljYXRlIGNoYWlu
Pyc7IHRoZW4KCQkJbWVzc2FnZSBwcm9tcHQgJ1Jvb3QgY2VydGlmaWNhdGUgY2hhaW4gZmlsZScK
CQkJd2hpbGUgcmVhZDsgZG8KCQkJCWlmIFsgISAtciAiJFJFUExZIiBdOyB0aGVuCgkJCQkJbWVz
c2FnZSBpbnZhbGlkICdGaWxlIG5vdCBmb3VuZCBvciBub3QgYWNjZXNzaWJsZS4nCgkJCQllbHNl
CgkJCQkJcm9vdD0kUkVQTFkKCQkJCQlicmVhawoJCQkJZmkKCQkJZG9uZQoJCWZpCgkJZWNobyAt
ZSAiIyEvYmluL2Jhc2hcbmludGVudD0kaW50ZW50XG50eXBlPSR0eXBlXG5DQV9iaXRzPSR7Q0Ff
Yml0c31cbkNBX0NOPVwiJHtDQV9DTn1cIlxuQ0FfT1U9XCIke0NBX09VfVwiXG5DQV9PPVwiJHtD
QV9PfVwiXG5DQV9MPVwiJHtDQV9MfVwiXG5DQV9TVD1cIiR7Q0FfU1R9XCJcbkNBX0M9JHtDQV9D
fVxuQ0FfZW1haWw9XCIke0NBX2VtYWlsfVwiIiA+ICR7U1dBUH1fcHJvZmlsZS8uaW1tdXRhYmxl
CglmaQoJY2htb2QgMDc3MCAke1NXQVB9X3Byb2ZpbGUvLmltbXV0YWJsZQoJI0NhbGwgcHJvZmls
ZSBlZGl0b3IgdG8gc2V0dXAgdGhlIGVkaXRhYmxlIHBhcnRzIG9mIHRoZSBwcm9maWxlCgllZGl0
X3Byb2ZpbGUgJHtTV0FQfV9wcm9maWxlCgkjTGV0J3MgZ2V0IHJvbGxpbmcgYW5kIHNldHVwIHRo
ZSBjb21tb24gcGFydHMgb2YgdGhlIENBCgltZXNzYWdlIHZlcmJvc2UgIkNyZWF0aW5nIGRhdGFz
dG9yZSAnJERBVEEvJENBJy4iCglta2RpciAiJERBVEEvJENBIgoJY2QgIiREQVRBLyRDQSIKCW1r
ZGlyICR7Q0VSVF9ESVJ9Cglta2RpciAke0tFWV9ESVJ9Cglta2RpciAke1JFUVNfRElSfQoJbWtk
aXIgJHtDUkxfRElSfQoJdG91Y2ggLnJhbmQKCW12ICR7U1dBUH1fcHJvZmlsZS9vcGVuc3NsLmNu
ZiAuLwoJbWVzc2FnZSB2ZXJib3NlICdDcmVhdGluZyBDQSBpbmRleCBmaWxlLicKCXRvdWNoIGlu
ZGV4LnR4dAoJZWNobyAtZSAieVxueSIgPiAuYXV0b2FjY2VwdAoJbWVzc2FnZSB2ZXJib3NlICdD
cmVhdGluZyBDQSBzZXJpYWwgbnVtYmVyIGZpbGUgKGJhc2Ugc2VyaWFsPTEwMDAwMDAwKS4nCgll
Y2hvICc5ODk2ODAnID4gY2Euc3JsCgltZXNzYWdlIHZlcmJvc2UgJ0NyZWF0aW5nIENSTCBudW1i
ZXIgZmlsZSAoYmFzZSBzZXJpYWw9MTAwMDAwMDApLicKCWVjaG8gJzk4OTY4MCcgPiBjcmwuc3Js
CgkjTm93IGxldHMgYnJhbmNoIG9mZiBhZ2FpbiBkZXBlbmRpbmcgb24gaG93IHdlIGFyZSBjcmVh
dGluZyB0aGUgQ0EKCWlmIFsgJHR5cGUgPSAnc2VsZi1zaWduZWQnIF07IHRoZW4gI3NlbGYtc2ln
bmVkIGJyYW5jaAoJCW1lc3NhZ2UgdmVyYm9zZSAiR2VuZXJhdGluZyAke0NBX2JpdHN9IGJpdCBS
U0Ega2V5IGZvciBDQS4iCgkJaWYgWyAiJGxvY2tlZCIgPSAneWVzJyBdOyB0aGVuCgkJCW1lc3Nh
Z2UgZGVidWcgIm9wZW5zc2wgZ2VucnNhIC1hZXMxMjggLW91dCBjYS5rZXkgLXBhc3NvdXQgcGFz
czonKioqKioqKionICR7Q0FfYml0c30gIgoJCQlvcGVuc3NsIGdlbnJzYSAtYWVzMTI4IC1vdXQg
Y2Eua2V5IC1wYXNzb3V0IHBhc3M6IiR7Q0FfcGFzc3dvcmR9IiAke0NBX2JpdHN9ICY+JHtTV0FQ
fQoJCWVsc2UKCQkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCBnZW5yc2EgLW91dCBjYS5rZXkgJHtD
QV9iaXRzfSIKCQkJb3BlbnNzbCBnZW5yc2EgLW91dCBjYS5rZXkgJHtDQV9iaXRzfSAmPiR7U1dB
UH0KCQlmaQoJCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRTV0FQKSIKCQltZXNzYWdlIHZlcmJvc2Ug
IkNyZWF0aW5nIGEgc2lnbmluZyByZXF1ZXN0IGZvciBDQSBjZXJ0aWZpY2F0ZS4iCgkJCgkJI2Nw
IC4vb3BlbnNzbC5jbmYgJHtTV0FQfS5jbmYKCQkjdGFpbCAtbiArMiAkQ09ORi91c3JfY2VydC5l
eHQgPiAke1NXQVB9LmV4dAoJCWNwICRDT05GL3Vzcl9jZXJ0LmV4dCAke1NXQVB9LmV4dAoJCQoJ
CWVjaG8gImJhc2ljQ29uc3RyYWludHM9Q0E6VFJVRSIgPj4gJHtTV0FQfS5leHQKCQlhdHRhY2hf
Q1JMX3BhdGhzCgkJZWNobyAtZSAiJHtDQV9DOj0ufVxuJHtDQV9TVDo9Ln1cbiR7Q0FfTDo9Ln1c
biR7Q0FfTzo9Ln1cbiR7Q0FfT1U6PS59XG4ke0NBX0NOfVxuJHtDQV9lbWFpbDo9Ln1cbi5cbi5c
biIgPiAkU1dBUAoJCWlmIFsgIiRsb2NrZWQiID0gJ3llcycgXTsgdGhlbgoJCQltZXNzYWdlIGRl
YnVnICJvcGVuc3NsIHJlcSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLW5ldyAta2V5IGNhLmtleSAt
cGFzc2luIHBhc3M6JyoqKioqKioqJyAtb3V0IGNhLmNzclxuV2l0aCBwYXJhbWV0ZXJzOlxuJChj
YXQgJFNXQVApIgoJCQlvcGVuc3NsIHJlcSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLW5ldyAta2V5
IGNhLmtleSAtcGFzc2luIHBhc3M6IiR7Q0FfcGFzc3dvcmR9IiAtb3V0IGNhLmNzciA8ICRTV0FQ
ICY+JHtTV0FQfTIKCQllbHNlCgkJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgcmVxIC1jb25maWcg
Li9vcGVuc3NsLmNuZiAtbmV3IC1rZXkgY2Eua2V5IC1vdXQgY2EuY3NyXG5XaXRoIHBhcmFtZXRl
cnM6XG4kKGNhdCAkU1dBUCkiCgkJCW9wZW5zc2wgcmVxIC1jb25maWcgLi9vcGVuc3NsLmNuZiAt
bmV3IC1rZXkgY2Eua2V5IC1vdXQgY2EuY3NyIDwgJFNXQVAgJj4ke1NXQVB9MgoJCWZpCgkJbWVz
c2FnZSBkZWJ1ZyAiJChjYXQgJHtTV0FQfTIpIgoJCXJtIC1mICR7U1dBUH0yIDI+Ji0KCQltZXNz
YWdlIHZlcmJvc2UgIkNyZWF0aW5nIHNlbGYtc2lnZWQgQ0EgY2VydGlmaWN0ZS4iCgkJaWYgWyAi
JGxvY2tlZCIgPSAneWVzJyBdOyB0aGVuCgkJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgeDUwOSAt
Q0FzZXJpYWwgY2Euc3JsIC1yZXEgLWRheXMgJHtDQV9kYXlzfSAtaW4gY2EuY3NyIC1zaWdua2V5
IGNhLmtleSAtcGFzc2luIHBhc3M6JyoqKioqKioqJyAtb3V0IGNhLmNydCAtZXh0ZmlsZSAke1NX
QVB9LmV4dCIKCQkJb3BlbnNzbCB4NTA5IC1DQXNlcmlhbCBjYS5zcmwgLXJlcSAtZGF5cyAke0NB
X2RheXN9IC1pbiBjYS5jc3IgLXNpZ25rZXkgY2Eua2V5IC1wYXNzaW4gcGFzczoiJHtDQV9wYXNz
d29yZH0iIC1vdXQgY2EuY3J0IC1leHRmaWxlICR7U1dBUH0uZXh0ICY+JHtTV0FQfQoJCWVsc2UK
CQkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCB4NTA5IC1DQXNlcmlhbCBjYS5zcmwgLXJlcSAtZGF5
cyAke0NBX2RheXN9IC1pbiBjYS5jc3IgLXNpZ25rZXkgY2Eua2V5IC1zaGEyNTYgLW91dCBjYS5j
cnQgLWV4dGZpbGUgJHtTV0FQfS5leHQiCgkJCW9wZW5zc2wgeDUwOSAtQ0FzZXJpYWwgY2Euc3Js
IC1yZXEgLWRheXMgJHtDQV9kYXlzfSAtaW4gY2EuY3NyIC1zaWdua2V5IGNhLmtleSAtc2hhMjU2
IC1vdXQgY2EuY3J0IC1leHRmaWxlICR7U1dBUH0uZXh0ICY+JHtTV0FQfQoJCWZpCgkJbWVzc2Fn
ZSBkZWJ1ZyAiJChjYXQgJFNXQVApIgoJCXJtIC1mIGNhLmNzcgoJZWxzZSAjaW50ZXJtZWRpYXRl
IGJyYW5jaAoJCW1lc3NhZ2UgdmVyYm9zZSAiQ29weWluZyAnJGtleWZpbGUnIHRvICdjYS5rZXkn
LlxuQ29weWluZyAnJGNlcnQnIHRvICdjYS5jcnQnLiIKCQljcCAiJGtleWZpbGUiIGNhLmtleQoJ
CWNwICIkY2VydCIgY2EuY3J0CgkJaWYgWyAtbiAiJHJvb3QiIF07IHRoZW4KCQkJbWVzc2FnZSB2
ZXJib3NlICJDb3B5aW5nICckcm9vdCcgdG8gJ3Jvb3QuY3J0JyBhbmQgYXBwZW5kaW5nIHdpdGgg
J2NhLmNydCcuIgoJCQljcCAiJHJvb3QiIHJvb3QuY3J0CgkJCWNhdCBjYS5jcnQgPj4gcm9vdC5j
cnQKCQlmaQoJZmkKCSNhbmQgYmFjayB0byBjb21tb24gdGFza3MgZm9yIHRoZSBjbGVhbnVwLiAK
CW1lc3NhZ2UgdmVyYm9zZSAiQ3JlYXRpbmcgREVSIGVuY29kZWQgY2VydGlmaWNhdGUgZm9yIE1T
SUUgaW4gJyREQVRBLyRDQS9jYWNlcnQuY3J0Jy4iCgltZXNzYWdlIGRlYnVnICJvcGVuc3NsIHg1
MDkgLWluIGNhLmNydCAtb3V0IGNhY2VydC5jcnQgLW91dGZvcm0gREVSIgoJaWYgISBvcGVuc3Ns
IHg1MDkgLWluIGNhLmNydCAtb3V0IGNhY2VydC5jcnQgLW91dGZvcm0gREVSICY+JHtTV0FQfTsg
dGhlbgoJCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRTV0FQKSIKCQltZXNzYWdlIGVycm9yICJUaGVy
ZSBzZWVtcyB0byBiZSBhIHByb2JsZW0uIEl0IGlzIGxpa2VseSB0aGF0IHRoZSBDQSBpcyBicm9r
ZW4uIgoJCWdyYWNlZnVsX2V4aXQgMgoJZmkKCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRTV0FQKSIK
CW1lc3NhZ2UgdmVyYm9zZSAnQ3JlYXRpbmcgQ2VydGlmaWNhdGUgUmV2b2NhdGlvbiBMaXN0IChD
UkwpIGZpbGUuJwoJaWYgWyAiJGxvY2tlZCIgPSAneWVzJyBdOyB0aGVuCgkJbWVzc2FnZSBkZWJ1
ZyAib3BlbnNzbCBjYSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLXBhc3NpbiBwYXNzOicqKioqKioq
KicgLWdlbmNybCAtb3V0ICR7Q1JMX0RJUn0vY2EuY3JsIgoJCW9wZW5zc2wgY2EgLWNvbmZpZyAu
L29wZW5zc2wuY25mIC1wYXNzaW4gcGFzczoiJHtDQV9wYXNzd29yZH0iIC1nZW5jcmwgLW91dCAk
e0NSTF9ESVJ9L2NhLmNybCAmPiR7U1dBUH0KCQlSQz0kPwoJZWxzZQoJCW1lc3NhZ2UgZGVidWcg
Im9wZW5zc2wgY2EgLWNvbmZpZyAuL29wZW5zc2wuY25mIC1nZW5jcmwgLW91dCAke0NSTF9ESVJ9
L2NhLmNybCIKCQlvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtZ2VuY3JsIC1vdXQg
JHtDUkxfRElSfS9jYS5jcmwgJj4ke1NXQVB9CgkJUkM9JD8KCWZpCgltZXNzYWdlIGRlYnVnICIk
KGNhdCAkU1dBUCkiCglpZiAoKFJDIT0wKSk7IHRoZW4KCQltZXNzYWdlIGVycm9yICJGYWlsZWQg
dG8gZ2VuZXJhdGUgQ1JMLiIKCQlncmFjZWZ1bF9leGl0IDIKCWZpCgltdiAke1NXQVB9X3Byb2Zp
bGUvLmltbXV0YWJsZSAkREFUQS8kQ0EvLmltbXV0YWJsZQoJbXYgJHtTV0FQfV9wcm9maWxlLy5w
cm9maWxlICREQVRBLyRDQS8ucHJvZmlsZQoJbXYgJHtTV0FQfV9wcm9maWxlLy5zZXRlbnYgJERB
VEEvJENBLy5zZXRlbnYKCXVwZGF0ZV9wZXJtaXNzaW9ucwoJdXBkYXRlX2NybCAiJHtDQV9wYXNz
d29yZH0iCgltZXNzYWdlIGluZm8gJ05ldyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgY3JlYXRlZC4n
Cn0KCiMgQXR0YWNoIENSTCBEaXN0cmlidXRpb24gUG9pbnRzIHRvIGV4dGVuc2lvbiBmaWxlCmZ1
bmN0aW9uIGF0dGFjaF9DUkxfcGF0aHMgewoJaWYgWyAtbiAiJHtDUkxfcGF0aH0iIF07IHRoZW4K
CQllY2hvICJjcmxEaXN0cmlidXRpb25Qb2ludHM9VVJJOiQoZWNobyAtbiAke0NSTF9wYXRofSB8
IHNlZCAtciAicy8sLyxVUkk6L2ciKSIgPj4gJHtTV0FQfS5leHQKCWZpCn0KCiMgQ2hhbmdlIHRo
ZSBlZGl0YWJsZSBwYXJ0cyBvZiBhIENBIGNvbmZpZ3VyYXRpb24KIyAxID0gcHJvZmlsZSBzdG9y
YWdlIGRpcgpmdW5jdGlvbiBlZGl0X3Byb2ZpbGUgewoJI0xvYWQgYSBwcm9maWxlIGltbXV0YWJs
ZXMKCWlmIFsgLXIgJDEvLmltbXV0YWJsZSBdOyB0aGVuCgkJLiAkMS8uaW1tdXRhYmxlCglmaQoJ
I0xvYWQgcHJvZmlsZSBlZGl0YWJsZQoJaWYgWyAtciAkMS8ucHJvZmlsZSBdOyB0aGVuCgkJLiAk
MS8ucHJvZmlsZQoJZmkKCW1lc3NhZ2UgcHJvbXB0ICJJc3N1ZWQga2V5cyBiaXQgbGVuZ3RoIFsk
e2JpdHM6PTEwMjR9XSIKCXdoaWxlIHJlYWQ7IGRvCgkJaWYgWyAteiAiJFJFUExZIiBdOyB0aGVu
CgkJCWJyZWFrCgkJZWxpZiAhIGVjaG8gJFJFUExZIHwgZ3JlcCAtcUUgJ15bWzpkaWdpdDpdXXsy
LDR9JCcgfHwgKChSRVBMWTw0OCkpIHx8ICgoUkVQTFk+ODE5MikpOyB0aGVuCgkJCW1lc3NhZ2Ug
aW52YWxpZCAnTXVzdCBiZSBhIGludGVnZXIgYmV0d2VlbiA0OCBhbmQgODE5Mi4nCgkJZWxzZQoJ
CQliaXRzPSRSRVBMWQoJCQlicmVhawoJCWZpCglkb25lCgltZXNzYWdlIHByb21wdCAiSXNzdWVk
IGNlcnRpZmljYXRlcyB2YWxpZGl0eSBwZXJpb2QgKGRheXMpIFske2RheXM6PTczMH1dIgoJd2hp
bGUgcmVhZDsgZG8KCQlpZiBbIC16ICIkUkVQTFkiIF07IHRoZW4KCQkJYnJlYWsKCQllbGlmICEg
ZWNobyAkUkVQTFkgfCBncmVwIC1xRSAnXltbOmRpZ2l0Ol1dezIsNX0kJyB8fCAoKFJFUExZPDMw
KSkgfHwgKChSRVBMWT4yMDAwMCkpOyB0aGVuCgkJCW1lc3NhZ2UgaW52YWxpZCAnTXVzdCBiZSBh
IGludGVnZXIgYmV0d2VlbiAzMCBhbmQgMjAwMDAuJwoJCWVsc2UKCQkJZGF5cz0kUkVQTFkKCQkJ
YnJlYWsKCQlmaQoJZG9uZQoJaWYgbWVzc2FnZSBpc195ZXMgIlJlc3RyaWN0IGlzc3VlZCBjZXJ0
aWZpY2F0ZXMgYnkgT3JnYW5pc2F0aW9uIChtdXN0IG1hdGNoICcke0NBX099Jz8iOyB0aGVuCgkJ
cmVzdHJpY3RfTz1tYXRjaAoJCXJlc3RyaWN0X09zPScqJwoJZmkKCWlmIG1lc3NhZ2UgaXNfeWVz
ICJSZXN0cmljdCBpc3N1ZWQgY2VydGlmaWNhdGVzIGJ5IERlcGFydG1lbnQgKG11c3QgbWF0Y2gg
JyR7Q0FfT1V9Jyk/IjsgdGhlbgoJCXJlc3RyaWN0X09VPW1hdGNoCgkJcmVzdHJpY3RfT1VzPScq
JwoJZmkKCWlmIG1lc3NhZ2UgaXNfeWVzICJSZXN0cmljdCBpc3N1ZWQgY2VydGlmaWNhdGVzIGJ5
IENpdHkgKG11c3QgbWF0Y2ggJyR7Q0FfTH0nKT8iOyB0aGVuCgkJcmVzdHJpY3RfTD1tYXRjaAoJ
CXJlc3RyaWN0X0xzPScqJwoJZmkKCWlmIG1lc3NhZ2UgaXNfeWVzICJSZXN0cmljdCBpc3N1ZWQg
Y2VydGlmaWNhdGVzIGJ5IFN0YXRlIG9yIFJlZ2lvbiAobXVzdCBtYXRjaCAnJHtDQV9TVH0nKT8i
OyB0aGVuCgkJcmVzdHJpY3RfU1Q9bWF0Y2gKCQlyZXN0cmljdF9TVHM9JyonCglmaQoJaWYgbWVz
c2FnZSBpc195ZXMgIlJlc3RyaWN0IGlzc3VlZCBjZXJ0aWZpY2F0ZXMgYnkgQ291bnRyeSAobXVz
dCBtYXRjaCAnJHtDQV9DfScpPyI7IHRoZW4KCQlyZXN0cmljdF9DPW1hdGNoCgkJcmVzdHJpY3Rf
Q3M9JyonCglmaQoJaWYgbWVzc2FnZSBpc195ZXMgIlByb3RlY3QgaXNzdWVkIGtleXMgd2l0aCBh
IHBhc3N3b3JkIFske2tleXBhc3M6LW5vfV0/IjsgdGhlbgoJCWtleXBhc3M9J3llcycKCWZpCglp
ZiBtZXNzYWdlIGlzX3llcyAnUHVibGlzaCBhIFVSTCBmb3IgdGhlIENlcnRpZmljYXRlIFJldm9j
YXRpb24gTGlzdCAoQ1JMKT8nOyB0aGVuCgkJbj0wCgkJbWVzc2FnZSBwcm9tcHQgJ0NSTCBVUkwg
cGF0aCcKCQl3aGlsZSByZWFkOyBkbwoJCQlpZiAhIGVjaG8gIiRSRVBMWSIgfCBncmVwIC1xaUUg
J14oaHR0cHM/Oi8vKVteWzpzcGFjZTpdXSskJzsgdGhlbgoJCQkJbWVzc2FnZSBpbnZhbGlkICJV
UkxzIG11c3QgYmVnaW4gd2l0aCAnaHR0cDovLycgb3IgJ2h0dHBzOi8vJyBmb2xsb3dlZCBieSBh
IHZhbGlkIGxvY2F0aW9uLiIKCQkJZWxzZQoJCQkJQ1JMX3BhdGhbJG5dPSRSRVBMWQoJCQkJKChu
KyspKQoJCQkJaWYgbWVzc2FnZSBpc195ZXMgJ0FkZCBhbm90aGVyIENSTCBVUkw/JzsgdGhlbgoJ
CQkJCW1lc3NhZ2UgcHJvbXB0ICdDUkwgVVJMIHBhdGgnCgkJCQllbHNlCgkJCQkJYnJlYWsKCQkJ
CWZpCgkJCWZpCgkJZG9uZQoJCUNSTF9wYXRoPSQoZWNobyAtbiAke0NSTF9wYXRoW0BdfSB8IHNl
ZCAtciAicy8gLywvZyIpCgkJbWVzc2FnZSBwcm9tcHQgJ0NSTCB2YWxpZCBkYXlzJwoJCXdoaWxl
IHJlYWQ7IGRvCgkJCWlmICEgZWNobyAiJFJFUExZIiB8IGdyZXAgLXFFICdeWzEtOV1bWzpkaWdp
dDpdXXswLDJ9JCc7IHRoZW4KCQkJCW1lc3NhZ2UgaW52YWxpZCAnTXVzdCBiZSBiZXR3ZWVuIDEg
YW5kIDczMCBkYXlzLicKCQkJZWxzZQoJCQkJQ1JMX2RheXM9JFJFUExZCgkJCQlicmVhazsKCQkJ
ZmkKCQlkb25lCgkJaWYgWyAhICIkbG9ja2VkIiA9ICd5ZXMnIF07IHRoZW4gI2JlY2F1c2Ugd2Ug
b25seSBvZmZlciBhdXRvIHVwZGF0ZXMgZm9yIG5vbiBwYXNzd29yZCBwcm90ZWN0ZWQgQ0FzCgkJ
CWlmIG1lc3NhZ2UgaXNfeWVzICJDUkwgYXV0byB1cGRhdGUgZXZlcnkgJCgoJHtDUkxfZGF5c30t
MSkpIGRheXM/IjsgdGhlbgoJCQkJQ1JMX3VwZGF0ZT15ZXMKCQkJZWxzZQoJCQkJQ1JMX3VwZGF0
ZT1ubwoJCQlmaQoJCWZpCgkJaWYgbWVzc2FnZSBpc195ZXMgJ0NvcHkgQ1JMIHRvIGFsdGVybmF0
ZSBmaWxlIHBhdGggb24gdXBkYXRlPyc7IHRoZW4KCQkJbWVzc2FnZSBwcm9tcHQgJ0NSTCBmaWxl
IHBhdGgnCgkJCXdoaWxlIHJlYWQ7IGRvCgkJCQlpZiBbIC16ICIkUkVQTFkiIF07IHRoZW4KCQkJ
CQltZXNzYWdlIGludmFsaWQgJ1BhdGggcmVxdWlyZWQuJwoJCQkJZWxpZiBbIC1kICIkUkVQTFki
IF07IHRoZW4KCQkJCQltZXNzYWdlIGludmFsaWQgJ0ZpbGUgbmFtZSBleHBlY3RlZCwgbm90IGEg
ZGlyZWN0b3J5LicKCQkJCWVsaWYgWyAhIC1kICIkKGRpcm5hbWUgIiRSRVBMWSIpIiBdOyB0aGVu
CgkJCQkJbWVzc2FnZSBpbnZhbGlkICdEaXJlY3Rvcnkgbm90IGZvdW5kLicKCQkJCWVsc2UKCQkJ
CQlDUkxfZXhwb3J0X3BhdGg9IiRSRVBMWSIKCQkJCQlicmVhawoJCQkJZmkKCQkJZG9uZQoJCWZp
CglmaQoJbWVzc2FnZSBpbmZvICIKQ2VydGlmaWNhdGUgQXV0aG9yaXR5IHN1bW1hcnkgZm9yICck
Q0EnCihmaWVsZHMgbWFya2VkICogd2lsbCBlbmZvcmNlIG1hdGNoaW5nIGluIGlzc3VlZCBjZXJ0
aWZpY2F0ZXMpCgogICAgICAgICAgICAgICAgICAgVHlwZTogJHR5cGUKICAgICAgIEF1dGhvcml0
eSBJbnRlbnQ6ICRpbnRlbnQKCiAgICAgICAgICBDQSBrZXkgbGVuZ3RoOiAke0NBX2JpdHN9CiAg
ICAgQ0EgdmFsaWRpdHkgcGVyaW9kOiAke0NBX2RheXN9CiAgQ0EgaXMgcGFzc3dvcmQgbG9ja2Vk
OiAke2xvY2tlZDo9bm99CiAgICBDQSBDb21tb24gTmFtZSAoQ04pOiAke0NBX0NOfQogICAgQ0Eg
T3JnYW5pc2F0aW9uIChPKTogJHtDQV9PfSAke3Jlc3RyaWN0X09zfQogICAgIENBIERlcGFydG1l
bnQgKE9VKTogJHtDQV9PVX0gJHtyZXN0cmljdF9PVXN9CiAgICAgICAgICAgIENBIENpdHkgKEwp
OiAke0NBX0x9ICR7cmVzdHJpY3RfTHN9CkNBIFN0YXRlIG9yIFJlZ2lvbiAoU1QpOiAke0NBX1NU
fSAke3Jlc3RyaWN0X1NUc30KICAgICAgICAgQ0EgQ291bnRyeSAoQyk6ICR7Q0FfQ30gJHtyZXN0
cmljdF9Dc30KIENBIGFkbWluaXN0cmF0b3IgZW1haWw6ICR7Q0FfZW1haWx9CgogICAgICAgICAg
ICBDUkwgcGF0aChzKTogJChlY2hvIC1uICR7Q1JMX3BhdGh9IHwgc2VkIC1yICJzLywvXG4gICAg
ICAgICAgICAgICAgICAgICAgICAgL2ciKQogICAgQ1JMIHZhbGlkaXR5IHBlcmlvZDogJHtDUkxf
ZGF5czo9MzB9IGRheXMKICAgICAgICBDUkwgYXV0byB1cGRhdGU6ICR7Q1JMX3VwZGF0ZTo9bm99
CiAgICAgICAgQ1JMIGV4cG9ydCBwYXRoOiAke0NSTF9leHBvcnRfcGF0aH0KIAogICBQYXNzd29y
ZCBsb2NrZWQga2V5czogJHtrZXlwYXNzOj1ub30KSXNzdWVkIHZhbGlkaXR5IHBlcmlvZHM6ICRk
YXlzCiAgICAgSXNzdWVkIGtleSBsZW5ndGhzOiAkYml0cwoiCglpZiAhIG1lc3NhZ2UgaXNfeWVz
ICdVc2UgdGhlc2Ugc2V0dGluZ3M/JzsgdGhlbgoJCW1lc3NhZ2UgaW5mbyAnRXhpdGluZyBvbiB1
c2VyIHJlcXVlc3QuJwoJCWdyYWNlZnVsX2V4aXQgMAoJZmkKCSNXcml0ZSB0aGUgcHJvZmlsZS4K
CWVjaG8gLWUgIiMhL2Jpbi9iYXNoXG5iaXRzPSRiaXRzXG5kYXlzPSRkYXlzXG5yZXN0cmljdF9P
PSR7cmVzdHJpY3RfTzo9b3B0aW9uYWx9XG5yZXN0cmljdF9PVT0ke3Jlc3RyaWN0X09VOj1vcHRp
b25hbH1cbnJlc3RyaWN0X0w9JHtyZXN0cmljdF9MOj1vcHRpb25hbH1cbnJlc3RyaWN0X1NUPSR7
cmVzdHJpY3RfU1Q6PW9wdGlvbmFsfVxucmVzdHJpY3RfQz0ke3Jlc3RyaWN0X0M6PW9wdGlvbmFs
fVxubG9ja2VkPSRsb2NrZWRcbmtleXBhc3M9JGtleXBhc3NcbkNSTF9wYXRoPSR7Q1JMX3BhdGh9
XG5DUkxfZGF5cz0ke0NSTF9kYXlzfVxuQ1JMX3VwZGF0ZT0ke0NSTF91cGRhdGV9XG5DUkxfZXhw
b3J0X3BhdGg9XCIke0NSTF9leHBvcnRfcGF0aH1cIiIgPiAkMS8ucHJvZmlsZQoJY2htb2QgMDc3
MCAkMS8ucHJvZmlsZQoJI1dyaXRlIHRoZSBvcGVuc3NsIGNvbmZpZyBmaWxlCgltZXNzYWdlIHZl
cmJvc2UgIkNyZWF0aW5nIE9wZW5TU0wgY29udHJvbCBmaWxlICckREFUQS8kQ0Evb3BlbnNzbC5j
bmYnLiIKCWlmICEgbTQgLUREQ0FESVJEPSIkREFUQS8kQ0EiIC1ERERBWVNEPSRkYXlzIC1ERENE
PSR7Q0FfQ30gLUREcmVzdHJpY3RfQ0Q9JHtyZXN0cmljdF9DTjo9b3B0aW9uYWx9IC1ERHJlc3Ry
aWN0X1NURD0ke3Jlc3RyaWN0X1NUOi1vcHRpb25hbH0gLUREcmVzdHJpY3RfT0Q9JHtyZXN0cmlj
dF9POj1vcHRpb25hbH0gLUREcmVzdHJpY3RfT1VEPSR7cmVzdHJpY3RfT1U6PW9wdGlvbmFsfSAt
RERyZXN0cmljdF9MRD0ke3Jlc3RyaWN0X0w6PW9wdGlvbmFsfSAtRERCSVRTRD0kYml0cyAtRERT
VEQ9IiR7Q0FfU1R9IiAtRERMRD0iJHtDQV9MfSIgLURET0Q9IiR7Q0FfT30iIC1ERE9VRD0iJHtD
QV9PVX0iIC1ETUFLRV9DQT0iJHtNQUtFX0NBOi1GQUxTRX0iIC1ERENSTERBWVM9JHtDUkxfZGF5
c30gJENPTkYvb3BlbnNzbC5jbmYudGVtcGxhdGUgPiAkMS9vcGVuc3NsLmNuZiAyPiRTV0FQOyB0
aGVuCgkJbWVzc2FnZSBkZWJ1ZyAiJChjYXQgJFNXQVApIgoJCW1lc3NhZ2UgZXJyb3IgIkZhaWxl
ZCB0byBkZWZpbmUgT3BlblNTTCBjb250cm9sIGZpbGUuIgoJCWdyYWNlZnVsX2V4aXQgMgoJZmkK
CSNXcml0ZSB0aGUgZW52aXJvbm1lbnQgZmlsZQoJbWVzc2FnZSB2ZXJib3NlICJDcmVhdGluZyBl
bnZpcm9ubWVudCBmaWxlICckREFUQS8kQ0Evc2V0ZW52LnNoJyIKCWVjaG8gLWUgIiMhL2Jpbi9i
YXNoXG5leHBvcnQgQklUUz0kYml0c1xuZXhwb3J0IE1BSUw9JHtDQV9lbWFpbH1cbmV4cG9ydCBJ
TlRFTlQ9JGludGVudFxuTE9DS0VEPSRsb2NrZWRcbktFWVBBU1M9JGtleXBhc3MiID4gJDEvLnNl
dGVudgoJY2htb2QgMDc3MCAkMS8uc2V0ZW52CgkjQ3JlYXRlIGEgY3JvbiBqb2IgdG8gdXBkYXRl
IHRoZSBDUkwgaWYgcmVxdWVzdGVkCglpZiBbICIke0NSTF91cGRhdGV9IiA9ICd5ZXMnIF07IHRo
ZW4KCQlpZiAoKCR7Q1JMX2RheXN9PjEpKTsgdGhlbgoJCQl1cGRhdGU9JCgoJHtDUkxfZGF5c30t
MSkpCgkJZmkKCQltZXNzYWdlIHZlcmJvc2UgIkNvbmZpZ3VyaW5nIGF1dG9tYXRpYyBDUkwgdXBk
YXRlcyB0byBydW4gZXZlcnkgJHt1cGRhdGU6PTF9IGRheXMuIgoJCWVjaG8gLWUgIiMhL2Jpbi9i
YXNoXG4kVEhJUyAkQ0EgdXBkYXRlLWNybFxuYXQgLWYgJDEvLnVwZGF0ZV9jcmwgbm93ICsgJHVw
ZGF0ZSBkYXlzIiA+ICQxLy51cGRhdGVfY3JsCgkJY2htb2QgMDU1MCAkMS8udXBkYXRlX2NybAoJ
ZmkKfQoKIyBTaG93IHRoZSBjdXJyZW50IENBIHByb2ZpbGUKZnVuY3Rpb24gc2hvd19wcm9maWxl
IHsKCSNMb2FkIGEgcHJvZmlsZSBpbW11dGFibGVzCglpZiBbIC1yICQxLy5pbW11dGFibGUgXTsg
dGhlbgoJCS4gJDEvLmltbXV0YWJsZQoJZmkKCSNMb2FkIHByb2ZpbGUgZWRpdGFibGUKCWlmIFsg
LXIgJDEvLnByb2ZpbGUgXTsgdGhlbgoJCS4gJDEvLnByb2ZpbGUKCWZpCglpZiBbICIke3Jlc3Ry
aWN0X099IiA9ICdtYXRjaCcgXTsgdGhlbgoJCXJlc3RyaWN0X09zPScqJwoJZmkKCWlmIFsgIiR7
cmVzdHJpY3RfT1V9IiA9ICdtYXRjaCcgXTsgdGhlbgoJCXJlc3RyaWN0X09Vcz0nKicKCWZpCglp
ZiBbICIke3Jlc3RyaWN0X0x9IiA9ICdtYXRjaCcgXTsgdGhlbgoJCXJlc3RyaWN0X0xzPScqJwoJ
ZmkKCWlmIFsgIiR7cmVzdHJpY3RfU1R9IiA9ICdtYXRjaCcgXTsgdGhlbgoJCXJlc3RyaWN0X1NU
cz0nKicKCWZpCglpZiBbICIke3Jlc3RyaWN0X0N9IiA9ICdtYXRjaCcgXTsgdGhlbgoJCXJlc3Ry
aWN0X0NzPScqJwoJZmkKCW1lc3NhZ2UgaW5mbyAiCkNlcnRpZmljYXRlIEF1dGhvcml0eSBzdW1t
YXJ5IGZvciAnJENBJwooZmllbGRzIG1hcmtlZCAqIHdpbGwgZW5mb3JjZSBtYXRjaGluZyBpbiBp
c3N1ZWQgY2VydGlmaWNhdGVzKQoKICAgICAgICAgICAgICAgICAgIFR5cGU6ICR0eXBlCiAgICAg
ICBBdXRob3JpdHkgSW50ZW50OiAkaW50ZW50CgogICAgICAgICAgQ0Ega2V5IGxlbmd0aDogJHtD
QV9iaXRzfQogICAgIENBIHZhbGlkaXR5IHBlcmlvZDogJHtDQV9kYXlzfSBkYXlzCiAgQ0EgaXMg
cGFzc3dvcmQgbG9ja2VkOiAke2xvY2tlZH0KICAgIENBIENvbW1vbiBOYW1lIChDTik6ICR7Q0Ff
Q059CiAgICBDQSBPcmdhbmlzYXRpb24gKE8pOiAke0NBX099ICR7cmVzdHJpY3RfT3N9CiAgICAg
Q0EgRGVwYXJ0bWVudCAoT1UpOiAke0NBX09VfSAke3Jlc3RyaWN0X09Vc30KICAgICAgICAgICAg
Q0EgQ2l0eSAoTCk6ICR7Q0FfTH0gJHtyZXN0cmljdF9Mc30KQ0EgU3RhdGUgb3IgUmVnaW9uIChT
VCk6ICR7Q0FfU1R9ICR7cmVzdHJpY3RfU1RzfQogICAgICAgICBDQSBDb3VudHJ5IChDKTogJHtD
QV9DfSAke3Jlc3RyaWN0X0NzfQogQ0EgYWRtaW5pc3RyYXRvciBlbWFpbDogJHtDQV9lbWFpbH0K
CiAgICAgICAgICAgIENSTCBwYXRoKHMpOiAkKGVjaG8gLW4gJHtDUkxfcGF0aH0gfCBzZWQgLXIg
InMvLC9cbiAgICAgICAgICAgICAgICAgICAgICAgICAvZyIpCiAgICBDUkwgdmFsaWRpdHkgcGVy
aW9kOiAke0NSTF9kYXlzOj0wfSBkYXlzCiAgICAgICAgQ1JMIGF1dG8gdXBkYXRlOiAke0NSTF91
cGRhdGV9CiAgICAgICAgQ1JMIGV4cG9ydCBwYXRoOiAke0NSTF9leHBvcnRfcGF0aH0KCiAgIFBh
c3N3b3JkIGxvY2tlZCBrZXlzOiAke2tleXBhc3N9Cklzc3VlZCB2YWxpZGl0eSBwZXJpb2RzOiAk
ZGF5cwogICAgIElzc3VlZCBrZXkgbGVuZ3RoczogJGJpdHMKIgp9CgojIENyZWF0ZSBhIG5ldyBD
QS1zaWduZWQgY2VydGlmaWNhdGUKIyAxID0gRG9tYWluIG5hbWUKIyBbMl0gPSBDQSBwYXNzd29y
ZC9rZXkgcGFzc3dvcmQvU0FOCiMgWzNdID0ga2V5IHBhc3N3b3JkL1NBTgojIFs0XSA9IFNBTgpm
dW5jdGlvbiBjcmVhdGVfY2VydGlmaWNhdGUgewoJbG9jYWwgdHlwZQoJbG9jYWwgc3ViamVjdAoJ
bG9jYWwgcGFzc3dvcmQKCWxvY2FsIGtleXBhc3MKCWxvY2FsIGNuCglpc19sb2NrZWQKCWxvY2sK
CW1lc3NhZ2UgaW5mbyAiQ3JlYXRpbmcgbmV3IGNlcnRpZmljYXRlIGZvciBDQSAnJENBJyAoaW50
ZW50OiAkSU5URU5UKSA6ICckMScuIgoJY2QgIiREQVRBLyRDQSIKCS4gLi8ucHJvZmlsZQoJaWYg
WyAteiAiJDEiIF07IHRoZW4KCQltZXNzYWdlIGVycm9yICIkVVNBR0UiCgkJZ3JlY2VmdWxfZXhp
dCAxCglmaQoJY249JDEKCWlmIFsgIiRMT0NLRUQiID0gJ3llcycgXTsgdGhlbgoJCWlmIFsgLXog
IiQyIiBdOyB0aGVuCgkJCW1lc3NhZ2UgZXJyb3IgIkEgcGFzc3dvcmQgZm9yIENBICckQ0EnIGlz
IHJlcXVpcmVkLiIKCQkJZ3JhY2VmdWxfZXhpdCAxCgkJZWxzZQoJCQlwYXNzd29yZD0kMgoJCWZp
CglmaQoJaWYgWyAiJEtFWVBBU1MiID0gJ3llcycgXTsgdGhlbgoJCWlmIFsgIiRMT0NLRUQiID0g
J3llcycgXTsgdGhlbgoJCQlpZiBbIC16ICIkMyIgXTsgdGhlbgoJCQkJbWVzc2FnZSBlcnJvciAi
QSBwYXNzd29yZCBtdXN0IGJlIHN1cHBsaWVkIHRvIGxvY2sgdGhlIGNlcnRpZmljYXRlIGtleSB1
c2luZyBDQSAnJENBJy4iCgkJCQlncmFjZWZ1bF9leGl0IDEKCQkJZWxzZQoJCQkJa2V5cGFzc3dv
cmQ9JDMKCQkJZmkKCQllbGlmIFsgLXogIiQyIiBdOyB0aGVuCgkJCW1lc3NhZ2UgZXJyb3IgIkEg
cGFzc3dvcmQgbXVzdCBiZSBzdXBwbGllZCB0byBsb2NrIHRoZSBjZXJ0aWZpY2F0ZSBrZXkgdXNp
bmcgQ0EgJyRDQScuIgoJCQlncmFjZWZ1bF9leGl0IDEKCQllbHNlCgkJCWtleXBhc3N3b3JkPSQy
CgkJZmkKCWZpCglpZiBbICIkTE9DS0VEIiA9ICd5ZXMnIF0gJiYgWyAiJEtFWVBBU1MiID0gJ3ll
cycgXTsgdGhlbgoJCWlmIFsgLW4gIiQ0IiBdOyB0aGVuCgkJCXN1YmplY3Q9JDQKCQlmaQoJZWxp
ZiBbICIkTE9DS0VEIiA9ICd5ZXMnIF0gfHwgWyAiJEtFWVBBU1MiID0gJ3llcycgXTsgdGhlbgoJ
CWlmIFsgLW4gIiQzIiBdOyB0aGVuCgkJCXN1YmplY3Q9JDMKCQlmaQoJZWxpZiBbIC1uICIkMiIg
XTsgdGhlbgoJCXN1YmplY3Q9JDIKCWZpCglpZiBbIC1uICIkc3ViamVjdCIgXTsgdGhlbgoJCW1l
c3NhZ2UgdmVyYm9zZSAiU0FOcyBkZXRlY3RlZCBhcyAnJHN1YmplY3QnIgoJZmkKCWlmIFsgLWYg
JHtDRVJUX0RJUn0vJDEuY3J0IF07IHRoZW4KCQltZXNzYWdlIHZlcmJvc2UgIkNlcnRpZmljYXRl
IGluIENBICckQ0EnIDogJyQxJyBhbHJlYWR5IGV4aXN0cy4gRGVsZXRpbmcuIgoJCWRlbGV0ZSAk
MQoJZmkKCWlmIFsgLW4gIiRwYXNzd29yZCIgXTsgdGhlbgoJCWNoZWNrX2NhX3Bhc3N3b3JkICIk
cGFzc3dvcmQiCglmaQoJbWVzc2FnZSB2ZXJib3NlICJHZW5lcmF0aW5nICRCSVRTIGJpdCBSU0Eg
a2V5IGZvciAnJDEnLiIKCWlmIFsgLW4gIiRrZXlwYXNzd29yZCIgXTsgdGhlbgoJCW1lc3NhZ2Ug
ZGVidWcgIm9wZW5zc2wgZ2VucnNhIC1hZXMxMjggLW91dCAnJHtLRVlfRElSfS8kMS5rZXknIC1w
YXNzb3V0IHBhc3M6JyoqKioqKioqJyAkQklUUyIKCQlvcGVuc3NsIGdlbnJzYSAtYWVzMTI4IC1v
dXQgIiR7S0VZX0RJUn0vJDEua2V5IiAtcGFzc291dCBwYXNzOiIka2V5cGFzc3dvcmQiICRCSVRT
ICY+JHtTV0FQfQoJCVJDPSQ/CgllbHNlCgkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCBnZW5yc2Eg
LW91dCAnJHtLRVlfRElSfS8kMS5rZXknICRCSVRTIgoJCW9wZW5zc2wgZ2VucnNhIC1vdXQgIiR7
S0VZX0RJUn0vJDEua2V5IiAkQklUUyAmPiR7U1dBUH0KCQlSQz0kPwoJZmkKCW1lc3NhZ2UgZGVi
dWcgIiQoY2F0ICRTV0FQKSIKCWlmICgoUkMhPTApKTsgdGhlbgoJCW1lc3NhZ2UgZXJyb3IgIkZh
aWxlZCB0byBjcmVhdGUgbmV3IGNlcnRpZmljYXRlLiIKCQlncmFjZWZ1bF9leGl0IDIKCWZpCglt
ZXNzYWdlIHZlcmJvc2UgIkNyZWF0aW5nIGEgc2lnbmluZyByZXF1ZXN0IGZvciAnJDEnICRJTlRF
TlQgY2VydGlmaWNhdGUuIgoJY3AgJENPTkYvdXNyX2NlcnQuZXh0ICR7U1dBUH0uZXh0CglhdHRh
Y2hfQ1JMX3BhdGhzCgljYXNlICRJTlRFTlQgaW4KCQlzZXJ2ZXIgKQoJCQl0eXBlPUROUwoJCQll
Y2hvIC1lICJiYXNpY0NvbnN0cmFpbnRzPUNBOkZBTFNFXG5uc0NlcnRUeXBlPXNlcnZlciIgPj4g
JHtTV0FQfS5leHQKCQkJOzsKCQlpbnRlcm1lZGlhdGUgKQoJCQl0eXBlPUROUwoJCQllY2hvIC1l
ICJiYXNpY0NvbnN0cmFpbnRzPUNBOlRSVUVcbm5zQ2VydFR5cGU9c2VydmVyLCBvYmpzaWduIiA+
PiAke1NXQVB9LmV4dAoJCQk7OwoJCWNsaWVudCApCgkJCXR5cGU9ZW1haWwKCQkJZWNobyAtZSAi
YmFzaWNDb25zdHJhaW50cz1DQTpGQUxTRVxubnNDZXJ0VHlwZT1jbGllbnQsIGVtYWlsIiA+PiAk
e1NXQVB9LmV4dAoJCQk7OwoJZXNhYwoJaWYgWyAtbiAiJHN1YmplY3QiIF07IHRoZW4gIyB1c2Ug
dGhlIHVzZXIgc3VwcGxpZWQgbGlzdCBvZiBzdWJqZWN0cwoJCXN1YmplY3Q9IiR0eXBlOiQoZWNo
byAkc3ViamVjdCB8IHNlZCAtciAicy8sLywgJHR5cGU6L2ciKSIKCWVsc2UgIyB1c2UgJDEgYXMg
dGhlIG9ubHkgc3ViamVjdAoJCXN1YmplY3Q9IiR0eXBlOiQxIgoJZmkKCWVjaG8gLWUgInN1Ympl
Y3RBbHROYW1lPSRzdWJqZWN0IiA+PiAke1NXQVB9LmV4dAoJbWVzc2FnZSBkZWJ1ZyAiU2V0dGlu
ZyB1cCBjdXN0b20gWDUwOSBleHRlbnNpb246XG4kKHRhaWwgLTEwICR7U1dBUH0uZXh0KSIKCWlm
IFsgJElOVEVOVCA9ICdzZXJ2ZXInIF07IHRoZW4KCQllY2hvIC1lICJcblxuXG5cblxuJDFcbi5c
bi5cbi5cbiIgPiAkU1dBUAoJZWxzZQoJCWVjaG8gLWUgIlxuXG5cblxuXG4kMVxuJE1BSUxcbi5c
bi5cbiIgPiAkU1dBUAoJZmkKCWlmIFsgLW4gIiRrZXlwYXNzd29yZCIgXTsgdGhlbgoJCW1lc3Nh
Z2UgZGVidWcgIm9wZW5zc2wgcmVxIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtbmV3IC1rZXkgJyR7
S0VZX0RJUn0vJDEua2V5JyAtcGFzc2luIHBhc3M6JyoqKioqKioqJyAtb3V0ICcke1JFUVNfRElS
fS8kMS5jc3InXG5XaXRoIHBhcmFtZXRlcnM6XG4kKGNhdCAkU1dBUCkiCgkJb3BlbnNzbCByZXEg
LWNvbmZpZyAuL29wZW5zc2wuY25mIC1uZXcgLWtleSAiJHtLRVlfRElSfS8kMS5rZXkiIC1wYXNz
aW4gcGFzczoiJGtleXBhc3N3b3JkIiAtb3V0ICIke1JFUVNfRElSfS8kMS5jc3IiIDwgJFNXQVAg
Jj4ke1NXQVB9MgoJCVJDPSQ/CgllbHNlCgkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCByZXEgLWNv
bmZpZyAuL29wZW5zc2wuY25mIC1uZXcgLWtleSAnJHtLRVlfRElSfS8kMS5rZXknIC1vdXQgJyR7
UkVRU19ESVJ9LyQxLmNzcidcbldpdGggcGFyYW1ldGVyczpcbiQoY2F0ICRTV0FQKSIKCQlvcGVu
c3NsIHJlcSAtY29uZmlnIC4vb3BlbnNzbC5jbmYgLW5ldyAta2V5ICIke0tFWV9ESVJ9LyQxLmtl
eSIgLW91dCAiJHtSRVFTX0RJUn0vJDEuY3NyIiA8ICRTV0FQICY+JHtTV0FQfTIKCQlSQz0kPwoJ
ZmkKCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICR7U1dBUH0yKSIKCWlmICgoUkMhPTApKTsgdGhlbgoJ
CW1lc3NhZ2UgZXJyb3IgIkZhaWxlZCB0byBjcmVhdGUgbmV3IGNlcnRpZmljYXRlLiIKCQlncmFj
ZWZ1bF9leGl0IDIKCWZpCglybSAtZiAke1NXQVB9MiAyPiYtCgltZXNzYWdlIHZlcmJvc2UgIlNp
Z25pbmcgdGhlICckMScgJElOVEVOVCBjZXJ0aWZpY2F0ZS4iCglpZiBbIC1uICIkcGFzc3dvcmQi
IF07IHRoZW4KCQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNu
ZiAtcGFzc2luIHBhc3M6JyoqKioqKioqJyAtaW4gJyR7UkVRU19ESVJ9LyQxLmNzcicgLW91dCAn
JHtDRVJUX0RJUn0vJDEuY3J0JyAtZXh0ZmlsZSAke1NXQVB9LmV4dCIKCQlvcGVuc3NsIGNhIC1j
b25maWcgLi9vcGVuc3NsLmNuZiAtcGFzc2luIHBhc3M6IiRwYXNzd29yZCIgLWluICIke1JFUVNf
RElSfS8kMS5jc3IiIC1vdXQgIiR7Q0VSVF9ESVJ9LyQxLmNydCIgLWV4dGZpbGUgJHtTV0FQfS5l
eHQgPCAuYXV0b2FjY2VwdCAmPiR7U1dBUH0KCQlSQz0kPwoJZWxzZQoJCW1lc3NhZ2UgZGVidWcg
Im9wZW5zc2wgY2EgLWNvbmZpZyAuL29wZW5zc2wuY25mIC1pbiAnJHtSRVFTX0RJUn0vJDEuY3Ny
JyAtb3V0ICcke0NFUlRfRElSfS8kMS5jcnQnIC1leHRmaWxlICR7U1dBUH0uZXh0IgoJCW9wZW5z
c2wgY2EgLWNvbmZpZyAuL29wZW5zc2wuY25mIC1pbiAiJHtSRVFTX0RJUn0vJDEuY3NyIiAtb3V0
ICIke0NFUlRfRElSfS8kMS5jcnQiIC1leHRmaWxlICR7U1dBUH0uZXh0IDwgLmF1dG9hY2NlcHQg
Jj4ke1NXQVB9CgkJUkM9JD8KCWZpCgltZXNzYWdlIGRlYnVnICIkKGNhdCAkU1dBUCkiCglpZiAo
KFJDIT0wKSk7IHRoZW4KCQltZXNzYWdlIGVycm9yICJGYWlsZWQgdG8gc2lnbiBjZXJ0aWZpY2F0
ZSAnJDEuY3NyJyIKCQlncmFjZWZ1bF9leGl0IDIKCWZpCglybSAtZiAiJHtSRVFTX0RJUn0vJDEu
Y3NyIgoJY2htb2QgMDY2MCAke0tFWV9ESVJ9LyQxLmtleQoJY2htb2QgMDY2MCAke0NFUlRfRElS
fS8kMS5jcnQKCW1lc3NhZ2UgaW5mbyAnQ2VydGlmaWNhdGUgY3JlYXRpb24gY29tcGxldGUuJwp9
CgojIFNpZ25zIGEgc3VwcGxpZWQgY2VydGlmaWNhdGUgc2lnbmluZyByZXF1ZXN0IGFuZCBpbXBv
cnRzIHRoZSBjZXJ0IHRvIEFDIFg1MDkgQXV0aG9yaXR5CiMgMSA9IHBhdGggdG8gQ1NSIGZpbGUK
IyBbMl0gPSBDQSBwYXNzd29yZApmdW5jdGlvbiBzaWduX2NzciB7Cglsb2NhbCBjZXJ0Cglsb2Nh
bCBzdWJqZWN0Cglsb2NhbCBjbgoJbG9jYWwgdHlwZQoJbG9jYWwgcGFzc3dvcmQKCW1lc3NhZ2Ug
ZGVidWcgIlN0YXJ0aW5nIGNlcnRpZmljYXRlIHNpZ25pbmcgZm9yIENTUiBmaWxlIHVuZGVyIENB
ICckQ0EnIChpbnRlbnQ6ICRJTlRFTlQpIgoJY2QgIiREQVRBLyRDQSIKCS4gLi8ucHJvZmlsZQoJ
aWYgWyAiJExPQ0tFRCIgPSAneWVzJyBdOyB0aGVuCgkJaWYgWyAteiAiJDIiIF07IHRoZW4KCQkJ
bWVzc2FnZSBlcnJvciAiQSBwYXNzd29yZCBmb3IgQ0EgJyRDQScgaXMgcmVxdWlyZWQuIgoJCQln
cmFjZWZ1bF9leGl0IDEKCQllbHNlCgkJCXBhc3N3b3JkPSQyCgkJCWNoZWNrX2NhX3Bhc3N3b3Jk
ICIkcGFzc3dvcmQiCgkJZmkKCWZpCglpZiBbICEgLXIgIiQxIiBdOyB0aGVuCgkJbWVzc2FnZSBl
cnJvciAiRmlsZSAnJDEnIG5vdCByZWFkYWJsZSBvciBhY2Nlc3MgZGVuaWVkLiIKCQlncmFjZWZ1
bF9leGl0IDEKCWZpCgltZXNzYWdlIGRlYnVnICJvcGVuc3NsIHJlcSAtaW4gJyQxJyAtdmVyaWZ5
IgoJb3BlbnNzbCByZXEgLWluICIkMSIgLXZlcmlmeSAmPiRTV0FQCglpZiAhIGdyZXAgLXFpICd2
ZXJpZnkgb2snICRTV0FQOyB0aGVuCgkJbWVzc2FnZSBlcnJvciAiT3BlblNTTCBjb3VsZCBub3Qg
dmVyaWZ5IHRoZSBzdXBwbGllZCBDU1IgZmlsZS4iCgkJbWVzc2FnZSBkZWJ1ZyAiJChjYXQgJFNX
QVApIgoJCWdyYWNlZnVsX2V4aXQgMgoJZmkKCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRTV0FQKSIK
CWNlcnQ9JChiYXNlbmFtZSAiJDEiKQoJaWYgZWNobyAkY2VydCB8IGdyZXAgLXFpRSAnXC4ocGVt
fGNzcnxjcnR8ZGVyKSQnOyB0aGVuICMgcmVtb3ZlIGZpbGUgZXh0ZW50aW9uIGZyb20gY3NyIGlm
IGl0IGV4aXN0cyAod2UgZG9uJ3Qgd2FudCB0byBlbmQgdXAgd2l0aCBvdXRwdXQgbGlrZSBteUNl
cnQuY3NyLmNydCkKCQljZXJ0PSR7Y2VydDowOi00fQoJZmkKCQoJI2NwIC4vb3BlbnNzbC5jbmYg
JHtTV0FQfS5jbmYKCSNhdCAkQ09ORi91c3JfY2VydC5leHQgPj4gJHtTV0FQfS5jbmYKCWNwICRD
T05GL3Vzcl9jZXJ0LmV4dCAke1NXQVB9LmV4dAoJCgljYXNlICRJTlRFTlQgaW4KCQlzZXJ2ZXIg
KQoJCQl0eXBlPUROUwoJCQllY2hvIC1lICJiYXNpY0NvbnN0cmFpbnRzPUNBOkZBTFNFXG5uc0Nl
cnRUeXBlPXNlcnZlciIgPj4gJHtTV0FQfS5leHQKCQkJOzsKCQlpbnRlcm1lZGlhdGUgKQoJCQl0
eXBlPUROUwoJCQllY2hvIC1lICJiYXNpY0NvbnN0cmFpbnRzPUNBOlRSVUVcbm5zQ2VydFR5cGU9
c2VydmVyLCBvYmpzaWduIiA+PiAke1NXQVB9LmV4dAoJCQk7OwoJCWNsaWVudCApCgkJCXR5cGU9
ZW1haWwKCQkJZWNobyAtZSAiYmFzaWNDb25zdHJhaW50cz1DQTpGQUxTRVxubnNDZXJ0VHlwZT1j
bGllbnQsIGVtYWlsIiA+PiAke1NXQVB9LmV4dAoJCQk7OwoJZXNhYwoJY249JChvcGVuc3NsIHJl
cSAtaW4gIiQxIiAtdGV4dCAtbm9vdXQgLXJlcW9wdCBub19wdWJrZXksbm9fc2lnZHVtcCxub19o
ZWFkZXIsbm9fdmVyc2lvbixub19pc3N1ZXIsbm9fc2VyaWFsLG5vX3ZhbGlkaXR5LG5vX3NpZ25h
bWUsbm9fZXh0ZW5zaW9ucyB8IGdyZXAgLWlFICdzdWJqZWN0OicgfCBjdXQgLWQnOicgLWYyKQoJ
c3ViamVjdD0kKG9wZW5zc2wgcmVxIC1pbiAiJDEiIC10ZXh0IC1ub291dCAtcmVxb3B0IG5vX3B1
YmtleSxub19zaWdkdW1wLG5vX2hlYWRlcixub192ZXJzaW9uLG5vX2lzc3Vlcixub19zZXJpYWws
bm9fc3ViamVjdCxub192YWxpZGl0eSxub19zaWduYW1lIHwgZ3JlcCAtaUExIC1FICdzdWJqZWN0
IGFsdGVybmF0aXZlIG5hbWUnIHwgdGFpbCAtMSB8IHNlZCAtciAncy8gICsvL2cnIHwgc2VkIC1y
ICJzLywgLywvZyIpCglpZiBbIC1uICIkc3ViamVjdCIgXTsgdGhlbiAjIGV4dHJhY3Qgc3ViamVj
dHMgZnJvbSB0aGUgQ1NSIGxlYXZpbmcgdHlwZXMgdW5jaGFuZ2VkCgkJZWNobyAtZSAic3ViamVj
dEFsdE5hbWU9JHN1YmplY3QiID4+ICR7U1dBUH0uZXh0CgllbHNlICMgdXNlIHRoZSBDTiBhbmQg
c2V0IHRoZSB0eXBlIGFjY29yZGluZyB0byBpbnRlbnQKCQllY2hvIC1lICJzdWJqZWN0QWx0TmFt
ZT0kdHlwZTokKGdldF9kbl9zaWduaWZpY2FudF9wYXJ0ICIkY24iKSIgPj4gJHtTV0FQfS5leHQK
CWZpCgltZXNzYWdlIGRlYnVnICJTZXR0aW5nIHVwIGN1c3RvbSBYNTA5IGV4dGVuc2lvbjpcbiQo
dGFpbCAtNyAke1NXQVB9LmV4dCkiCgltZXNzYWdlIHZlcmJvc2UgIlNpZ25pbmcgdGhlICckY2Vy
dCcgJElOVEVOVCBjZXJ0aWZpY2F0ZS4iCglpZiBbIC1uICIkcGFzc3dvcmQiIF07IHRoZW4KCQlt
ZXNzYWdlIGRlYnVnICJvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtcGFzc2luIHBh
c3M6JyoqKioqKioqJyAtaW4gJyQxJyAtb3V0ICcke0NFUlRfRElSfS8kY2VydC5jcnQnIC1leHRm
aWxlICR7U1dBUH0uZXh0IgoJCW9wZW5zc2wgY2EgLWNvbmZpZyAuL29wZW5zc2wuY25mIC1wYXNz
aW4gcGFzczoiJHBhc3N3b3JkIiAtaW4gIiQxIiAtb3V0ICIke0NFUlRfRElSfS8kY2VydC5jcnQi
IC1leHRmaWxlICR7U1dBUH0uZXh0IDwgLmF1dG9hY2NlcHQgJj4ke1NXQVB9CgkJUkM9JD8KCWVs
c2UKCQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtaW4g
JyQxJyAtb3V0ICcke0NFUlRfRElSfS8kY2VydC5jcnQnIC1leHRmaWxlICR7U1dBUH0uZXh0IgoJ
CW9wZW5zc2wgY2EgLWNvbmZpZyAuL29wZW5zc2wuY25mIC1pbiAiJDEiIC1vdXQgIiR7Q0VSVF9E
SVJ9LyRjZXJ0LmNydCIgLWV4dGZpbGUgJHtTV0FQfS5leHQgPCAuYXV0b2FjY2VwdCAmPiR7U1dB
UH0KCQlSQz0kPwoJZmkKCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRTV0FQKSIKCWlmICgoUkMhPTAp
KTsgdGhlbgoJCW1lc3NhZ2UgZXJyb3IgIkZhaWxlZCB0byBzaWduIGNlcnRpZmljYXRlICckY2Vy
dCciCgkJbWVzc2FnZSBlcnJvciAiJChncmVwIC1pIG1pc3NpbmcgJFNXQVApIgoJCWdyYWNlZnVs
X2V4aXQgMgoJZmkKCWNobW9kIDA2NjAgIiR7Q0VSVF9ESVJ9LyRjZXJ0LmNydCIKCW1lc3NhZ2Ug
aW5mbyAnQ2VydGlmaWNhdGUgc2lnbmluZyBjb21wbGV0ZS4nCn0KCiMgUmV0dXJucyB0aGUgbW9z
dCBzaWduaWZpY2FudCBwb3J0aW9uIG9mIGEgRE4KIyAgVWx0aW1hdGVseSwgYSBETiBjYW4gYmUg
b3JkZXJlZCBsZWFzdCBzaWduaWZpY2FudCBwYXJ0IGZpcnN0IG9yIGxhc3QuCiMgIEluIGFkZGl0
aW9uLCB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgbWlnaHQgbm90IGJlIHRoZSBDb21tb24gTmFt
ZSAoQ04pCiMgIFNvIHdlIG5lZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQgaXMgb3JkZXJlZCBD
LFNULEwsTyxPVSxDTiBvciBDTixPVSxPLEwsU1QsQy4KIyAgVGhlIHRyaWNreSBiaXQgaXMgdGhh
dCBhbGwgZWxlbWVudHMgYXJlIG9wdGlvbmFsIGV4Y2VwdCAxIChhbnkgb25lKS4KIyAgV2UgYWxz
byBzdHJpcCBvdXQgYW55ICdlbWFpbCcgcmVsYXRlZCBzZWN0aW9ucyBhbmQgYW55IGxlYWRpbmcg
Jy8nIChpZiBhbnkpLgpmdW5jdGlvbiBnZXRfZG5fc2lnbmlmaWNhbnRfcGFydCB7Cglsb2NhbCBm
aXJzdAoJbG9jYWwgbGFzdAoJbG9jYWwgRE4KCUROPSQoZWNobyAiJDEiIHwgc2VkIC1yICdzLywg
Py9cLy9nJyB8IHNlZCAtciAncy9cLz8oZW1haWx8RU1BSUwpW1s6YWxwaGE6XV0qPVteXC9dKy8v
ZycgfCBzZWQgLXIgJ3MvXlwvLy9nJykgI3N0cmlwIG9mZiBlbWFpbCBmaWVsZCBpZiBhbnkKCSMg
ZG9uJ3QgYm90aGVyIHdpdGggYW55IG9mIHRoaXMgaWYgdGhlcmUgaXMgb25seSAxIGVsZW1lbnQs
IGp1c3QgcmV0dXJuIGl0CglpZiAhIGVjaG8gIiRETiIgfCBncmVwIC1xRSAnPS4rPSc7IHRoZW4g
I3NpbmdsZSBlbGVtZW50IEROCgkJZWNobyAiJEROIiB8IGN1dCAtZCc9JyAtZjIKCWVsc2UgI3dl
J3JlIGRlYWxpbmcgd2l0aCBtdWx0aSBlbGVtZW50IEROcyBzbyBzb3J0IHRoZW0gb3V0CgkJIyBk
b2VzIHRoZSBsYXN0IGVsZW1lbnQgY29tZSBsb2dpY2FsbHkgYmVmb3JlIG9yIGFmdGVyIHRoZSBm
aXJzdD8KCQljYXNlICQoZWNobyAiJEROIiB8IGN1dCAtZCc9JyAtZjEpIGluCgkJCUNOIHwgY24g
fCBDbiApCgkJCQlmaXJzdD0xCgkJCQk7OwoJCQlPVSB8IG91IHwgT3UgKQoJCQkJZmlyc3Q9MgoJ
CQkJOzsKCQkJTyB8IG8gKQoJCQkJZmlyc3Q9MwoJCQkJOzsKCQkJTCB8IGwgKQoJCQkJZmlyc3Q9
NAoJCQkJOzsKCQkJU1QgfCBzdCB8IFN0ICkKCQkJCWZpcnN0PTUKCQkJCTs7CgkJCUMgfCBjICkK
CQkJCWZpcnN0PTYKCQkJCTs7CgkJCSogKQoJCQkJZmlyc3Q9NwoJCQkJOzsKCQllc2FjCgkJY2Fz
ZSAkKGVjaG8gIiRETiIgfCBncmVwIC1pb0UgJ1tbOmFscGhhOl1dezEsMn09W1wtXCpfIFwuWzph
bG51bTpdXSskJyB8IGN1dCAtZCc9JyAtZjEpIGluCgkJCUNOIHwgY24gfCBDbiApCgkJCQlsYXN0
PTEKCQkJCTs7CgkJCU9VIHwgb3UgfCBPdSApCgkJCQlsYXN0PTIKCQkJCTs7CgkJCU8gfCBvICkK
CQkJCWxhc3Q9MwoJCQkJOzsKCQkJTCB8IGwgKQoJCQkJbGFzdD00CgkJCQk7OwoJCQlTVCB8IHN0
IHwgU3QgKQoJCQkJbGFzdD01CgkJCQk7OwoJCQlDIHwgYyApCgkJCQlsYXN0PTYKCQkJCTs7CgkJ
CSogKQoJCQkJbGFzdD03CgkJCQk7OwoJCWVzYWMKCQlpZiAoKGZpcnN0Pmxhc3QpKTsgdGhlbiAj
bGVhc3Qgc2lnbmlmaWNhbnQgcGFydCBmaXJzdAoJCQllY2hvICIkRE4iIHwgZ3JlcCAtaW9FICdb
WzphbHBoYTpdXXsxLDJ9PVtcLVwqXyBcLls6YWxudW06XV0rJCcgfCBjdXQgLWQnPScgLWYyCgkJ
ZWxzZSAjbGVhc3Qgc2lnbmlmaWNhbnQgcGFydCBsYXN0CgkJCWVjaG8gIiRETiIgfCBncmVwIC1p
b0UgJ15bWzphbHBoYTpdXXsxLDJ9PVtcLVwqXyBcLls6YWxudW06XV0rJyB8IGN1dCAtZCc9JyAt
ZjIKCQlmaQoJZmkKfQoKIyBPdXRwdXRzIHRoZSB2YWxpZGl0eSBwZXJpb2Qgb2YgdGhlIHRoZSBj
ZXJ0aWZpY2F0ZSBhbmQgdGhlIHN1YmplY3RzCiMgMSA9IGNlcnRpZmljYXRlIG5hbWUKZnVuY3Rp
b24gZ2V0X2RhdGVzIHsKCWxvY2FsIHgKCWxvY2FsIHkKCWxvY2FsIHoKCW1lc3NhZ2UgZGVidWcg
IkdldHRpbmcgdmFsaWRpdHkgcGVyaW9kIGZvciBjZXJ0aWZpY2F0ZSBpbiBDQSAnJENBJyAoaW50
ZW50OiAkSU5URU5UKSA6ICckMSciCgljZCAiJERBVEEvJENBIgoJaWYgWyAteiAkMSBdOyB0aGVu
CgkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCB4NTA5IC1pbiAuL2NhLmNydCAtc2VyaWFsIC1kYXRl
cyAtbm9vdXQiCgkJeD0kKG9wZW5zc2wgeDUwOSAtaW4gLi9jYS5jcnQgLXNlcmlhbCAtZGF0ZXMg
LW5vb3V0KQoJCXo9JChvcGVuc3NsIHg1MDkgLWluIC4vY2EuY3J0IC10ZXh0IC1ub291dCAtY2Vy
dG9wdCBub19wdWJrZXksbm9fc2lnZHVtcCxub19oZWFkZXIsbm9fdmVyc2lvbixub19pc3N1ZXIs
bm9fc2VyaWFsLG5vX3N1YmplY3Qsbm9fdmFsaWRpdHksbm9fc2lnbmFtZSB8IGdyZXAgLWlBMSAt
RSAnc3ViamVjdCBhbHRlcm5hdGl2ZSBuYW1lJyB8IHRhaWwgLTEgfCBzZWQgLXIgJ3MvICArLy9n
JykKCWVsaWYgWyAhIC1mICR7Q0VSVF9ESVJ9LyQxLmNydCBdOyB0aGVuCgkJbWVzc2FnZSBlcnJv
ciAiTm8gY2VydGlmaWNhdGUgZm91bmQgZm9yICckMScuIgoJCWdyYWNlZnVsX2V4aXQgMQoJZWxz
ZQoJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgeDUwOSAtaW4gJHtDRVJUX0RJUn0vJDEuY3J0IC1z
ZXJpYWwgLWRhdGVzIC1ub291dCIKCQl4PSQob3BlbnNzbCB4NTA5IC1pbiAke0NFUlRfRElSfS8k
MS5jcnQgLXNlcmlhbCAtZGF0ZXMgLW5vb3V0KQoJCXo9JChvcGVuc3NsIHg1MDkgLWluICR7Q0VS
VF9ESVJ9LyQxLmNydCAtdGV4dCAtbm9vdXQgLWNlcnRvcHQgbm9fcHVia2V5LG5vX3NpZ2R1bXAs
bm9faGVhZGVyLG5vX3ZlcnNpb24sbm9faXNzdWVyLG5vX3NlcmlhbCxub19zdWJqZWN0LG5vX3Zh
bGlkaXR5LG5vX3NpZ25hbWUgfCBncmVwIC1pQTEgLUUgJ3N1YmplY3QgYWx0ZXJuYXRpdmUgbmFt
ZScgfCB0YWlsIC0xIHwgc2VkIC1yICdzLyAgKy8vZycpCglmaQoJeT0kKGVjaG8gIiR4IiB8IGdy
ZXAgJ15zZXJpYWw9JyB8IGN1dCAtZD0gLWYyKQoJeT0kKGdyZXAgLUUgIlw8JHlcPiIgaW5kZXgu
dHh0KQoJY2FzZSAke3k6MDoxfSBpbgoJCVYgKQoJCQltZXNzYWdlIGluZm8gJ3N0YXR1cz12YWxp
ZCcKCQkJOzsKCQlSICkKCQkJbWVzc2FnZSBpbmZvICdzdGF0dXM9cmV2b2tlZCcKCQkJOzsKCQlF
ICkKCQkJbWVzc2FnZSBpbmZvICdzdGF0dXM9ZXhwaXJlZCcKCQkJOzsKCWVzYWMKCW1lc3NhZ2Ug
aW5mbyAiJHhcblN1YmplY3RzPSR6Igp9CgojIEFkZHMgYSBjZXJ0aWZpY2F0ZSB0byB0aGUgQ2Vy
dGlmaWNhdGUgUmV2b2NhdGlvbiBMaXN0IChDUkwpCiMgMSA9IGNvbW1vbiBuYW1lCiMgWzJdID0g
Q0EgcGFzc3dvcmQKZnVuY3Rpb24gcmV2b2tlIHsKCWxvY2FsIHBhc3N3b3JkCglpc19sb2NrZWQK
CWxvY2sKCW1lc3NhZ2UgZGVidWcgIlJldm9raW5nIGNlcnRpZmljYXRlIGluIENBICckQ0EnIDog
JyQxJyIKCWNkICIkREFUQS8kQ0EiCglpZiBbICIkTE9DS0VEIiA9ICd5ZXMnIF07IHRoZW4KCQlp
ZiBbIC16ICIkMiIgXTsgdGhlbgoJCQltZXNzYWdlIGVycm9yICJBIHBhc3N3b3JkIGZvciBDQSAn
JENBJyBpcyByZXF1aXJlZC4iCgkJCWdyYWNlZnVsX2V4aXQgMQoJCWVsc2UKCQkJcGFzc3dvcmQ9
JDIKCQkJY2hlY2tfY2FfcGFzc3dvcmQgIiRwYXNzd29yZCIKCQlmaQoJZmkKCWlmIFsgISAtZiAk
e0NFUlRfRElSfS8kMS5jcnQgXTsgdGhlbgoJCW1lc3NhZ2UgZXJyb3IgIk5vIGNlcnRpZmljYXRl
IGZvdW5kIGZvciAnJDEnLiIKCQlncmFjZWZ1bF9leGl0IDEKCWZpCgltZXNzYWdlIHZlcmJvc2Ug
IlJldm9raW5nIGNlcnRpZmljYXRlIGZvciAnJDEnLiIKCWlmIFsgLW4gIiRwYXNzd29yZCIgXTsg
dGhlbgoJCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgY2EgLWNvbmZpZyAuL29wZW5zc2wuY25mIC1w
YXNzaW4gcGFzczonKioqKioqKionIC1yZXZva2UgJyR7Q0VSVF9ESVJ9LyQxLmNydCcgJj4kU1dB
UCIKCQlvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtcGFzc2luIHBhc3M6IiRwYXNz
d29yZCIgLXJldm9rZSAiJHtDRVJUX0RJUn0vJDEuY3J0IiAmPiRTV0FQCgkJUkM9JD8KCWVsc2UK
CQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtcmV2b2tl
ICcke0NFUlRfRElSfS8kMS5jcnQnICY+JFNXQVAiCgkJb3BlbnNzbCBjYSAtY29uZmlnIC4vb3Bl
bnNzbC5jbmYgLXJldm9rZSAiJHtDRVJUX0RJUn0vJDEuY3J0IiAmPiRTV0FQCgkJUkM9JD8KCWZp
CgltZXNzYWdlIGRlYnVnICIkKGNhdCAkU1dBUCkiCglpZiAoKFJDIT0wKSk7IHRoZW4KCQltZXNz
YWdlIGVycm9yICJGYWlsZWQgdG8gcmV2b2tlIGNlcnRpZmljYXRlICckMScuIgoJCWdyYWNlZnVs
ZV9leGl0IDIKCWZpCgltZXNzYWdlIGluZm8gIkNlcnRpZmljYXRlIGZvciAnJDEnIGhhcyBiZWVu
IHJldm9rZWQuIgp9CgojIFVwZGF0ZSBDUkwKIyBbMV0gPSBDQSBwYXNzd29yZApmdW5jdGlvbiB1
cGRhdGVfY3JsIHsKCWxvY2FsIHBhc3N3b3JkCglpc19sb2NrZWQKCWxvY2sKCW1lc3NhZ2UgZGVi
dWcgIlVwZGF0aW5nIENSTCBmb3IgQ0EgJyRDQScuIgoJaWYgWyAhIC1mICIkREFUQS8kQ0EvJHtD
UkxfRElSfS9jYS5jcmwiIF07IHRoZW4KCQltZXNzYWdlIGVycm9yICdZb3UgaGF2ZSB0byBjcmVh
dGUgYSBuZXcgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IGZpcnN0LicKCQlncmFjZWZ1bF9leGl0IDEK
CWZpCgljZCAiJERBVEEvJENBIgoJaWYgWyAiJExPQ0tFRCIgPSAneWVzJyBdOyB0aGVuCgkJaWYg
WyAteiAiJDEiIF07IHRoZW4KCQkJbWVzc2FnZSBlcnJvciAiQSBwYXNzd29yZCBmb3IgQ0EgJyRD
QScgaXMgcmVxdWlyZWQuIgoJCQlncmFjZWZ1bF9leGl0IDEKCQllbHNlCgkJCXBhc3N3b3JkPSQx
CgkJCWNoZWNrX2NhX3Bhc3N3b3JkICIkcGFzc3dvcmQiCgkJZmkKCWZpCglpZiBbIC1uICIkcGFz
c3dvcmQiIF07IHRoZW4KCQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVu
c3NsLmNuZiAtcGFzc2luIHBhc3M6JyoqKioqKioqJyAtZ2VuY3JsIC1vdXQgJyR7Q1JMX0RJUn0v
Y2EuY3JsJyIKCQlvcGVuc3NsIGNhIC1jb25maWcgLi9vcGVuc3NsLmNuZiAtcGFzc2luIHBhc3M6
IiRwYXNzd29yZCIgLWdlbmNybCAtb3V0ICIke0NSTF9ESVJ9L2NhLmNybCIgJj4kU1dBUAoJCVJD
PSQ/CgllbHNlCgkJbWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCBjYSAtY29uZmlnIC4vb3BlbnNzbC5j
bmYgLWdlbmNybCAtb3V0ICcke0NSTF9ESVJ9L2NhLmNybCciCgkJb3BlbnNzbCBjYSAtY29uZmln
IC4vb3BlbnNzbC5jbmYgLWdlbmNybCAtb3V0ICIke0NSTF9ESVJ9L2NhLmNybCIgJj4kU1dBUAoJ
CVJDPSQ/CglmaQoJbWVzc2FnZSBkZWJ1ZyAiJChjYXQgJFNXQVApIgoJaWYgKChSQyE9MCkpOyB0
aGVuCgkJbWVzc2FnZSBlcnJvciAiRmFpbGVkIHRvIHVwZGF0ZSBDUkwuIgoJCWdyYWNlZnVsX2V4
aXQgMgoJZmkKCS4gLi8ucHJvZmlsZQoJaWYgWyAtbiAiJHtDUkxfZXhwb3J0X3BhdGh9IiBdOyB0
aGVuCgkJY3AgJHtDUkxfRElSfS9jYS5jcmwgIiR7Q1JMX2V4cG9ydF9wYXRofSIgMj4mLQoJZmkg
CgltZXNzYWdlIGluZm8gJ0NSTCB1cGRhdGUgY29tcGxldGUuJwp9CgojIE91dHB1dCB0aGUgdmFs
aWRpdHkgb2YgdGhlIENSTApmdW5jdGlvbiBnZXRfY3JsX2RhdGVzIHsKCW1lc3NhZ2UgZGVidWcg
IkdldHRpbmcgQ1JMIGRhdGVzIGZvciBDQSAnJENBJyIKCWlmIFsgISAtZiAiJERBVEEvJENBLyR7
Q1JMX0RJUn0vY2EuY3JsIiBdOyB0aGVuCgkJbWVzc2FnZSBlcnJvciAnWW91IGhhdmUgdG8gY3Jl
YXRlIGEgbmV3IENlcnRpZmljYXRlIEF1dGhvcml0eSBmaXJzdC4nCgkJZ3JhY2VmdWxfZXhpdCAx
CglmaQoJY2QgIiREQVRBLyRDQSIKCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgY3JsIC1pbiBcIiRE
QVRBLyRDQS8ke0NSTF9ESVJ9L2NhLmNybFwiIC1sYXN0dXBkYXRlIC1uZXh0dXBkYXRlIC1ub291
dCIKCW9wZW5zc2wgY3JsIC1pbiAiJERBVEEvJENBLyR7Q1JMX0RJUn0vY2EuY3JsIiAtbGFzdHVw
ZGF0ZSAtbmV4dHVwZGF0ZSAtbm9vdXQgJj4kU1dBUAoJbWVzc2FnZSBpbmZvICIkKGNhdCAkU1dB
UCkiCn0KCiMgRGVsZXRlcyBhIGNlcnRpZmljYXRlIGFuZCBrZXkgZmlsZXMgYnV0IGRvZXMgbm90
IGNoYW5nZSB0aGUgQ1JMCiMgMSA9IGNvbW1vbiBuYW1lCmZ1bmN0aW9uIGRlbGV0ZSB7Cglpc19s
b2NrZWQKCWxvY2sKCWxvY2FsIHgKCWNkICIkREFUQS8kQ0EiCgltZXNzYWdlIGRlYnVnICJBdHRl
bXB0aW5nIHRvIGRlbGV0ZSBjZXJ0aWZpY2F0ZSBpbiBDQSAnJENBJyA6ICckMSciCglpZiBbICEg
LWYgJHtDRVJUX0RJUn0vJDEuY3J0IF07IHRoZW4KCQltZXNzYWdlIGVycm9yICJObyBjZXJ0aWZp
Y2F0ZSBmb3VuZCBmb3IgJyQxJy4iCgkJZ3JhY2VmdWxfZXhpdCAxCglmaQoJbWVzc2FnZSB2ZXJi
b3NlICJHZXR0aW5nIGluZm8gb24gY2VydGlmaWNhdGUgJyQxJy4iCgl4PSQob3BlbnNzbCB4NTA5
IC1pbiAiJHtDRVJUX0RJUn0vJDEuY3J0IiAtc2VyaWFsIC1ub291dCkKCW1lc3NhZ2UgZGVidWcg
Im9wZW5zc2wgeDUwOSAtaW4gXCIke0NFUlRfRElSfS8kMS5jcnRcIiAtc2VyaWFsIC1ub291dFxu
JHgiCgl4PSQoZWNobyAkeCB8IGN1dCAtZD0gLWYyKQoJbWVzc2FnZSB2ZXJib3NlICJEZWxldGlu
ZyBjZXJ0aWZpY2F0ZSBmb3IgJyQxJy4iCgltZXNzYWdlIGRlYnVnICJybSAtcmYgJHtDRVJUX0RJ
Un0vJDEuY3J0IgoJcm0gLXJmICR7Q0VSVF9ESVJ9LyQxLmNydAoJbWVzc2FnZSB2ZXJib3NlICJE
ZWxldGluZyBrZXlzIGZvciAnJDEnLiIKCW1lc3NhZ2UgZGVidWcgInJtIC1yZiAke0tFWV9ESVJ9
LyQxLmtleSIKCXJtIC1yZiAke0tFWV9ESVJ9LyQxLmtleQoJbWVzc2FnZSB2ZXJib3NlICJVcGRh
dGluZyB0aGUgb3BlbnNzbCBkYXRhYmFzZS4iCglncmVwIC1FdiAiXDwkeFw+IiBpbmRleC50eHQg
PiAkU1dBUAoJbXYgLWYgJFNXQVAgaW5kZXgudHh0CgltZXNzYWdlIGluZm8gIkNlcnRpZmljYXRl
ICckMScgaGFzIGJlZW4gZGVsZXRlZC4iCn0KCiMgT3V0cHV0cyB0b3RhbCBudW1iZXIgb2YgY2Vy
dGlmaWNhdGVzLCByZXZva2VkIGFuZCBhY3RpdmUKZnVuY3Rpb24gc2hvd19zdGF0dXMgewoJbG9j
YWwgeAoJbG9jYWwgeQoJbG9jYWwgegoJaWYgWyAhIC1mICIkREFUQS8kQ0EvaW5kZXgudHh0IiBd
OyB0aGVuCgkJbWVzc2FnZSBpbmZvICItLS0gQUMgWDUwOSBBdXRob3JpdHkgc3RhdHVzIC0tLVxu
XG5UaGVyZSBpcyBubyBkZWZpbmVkIENlcnRpZmljYXRlIEF1dGhvcml0eS5cbiIKCQlyZXR1cm4K
CWZpCgljZCAiJERBVEEvJENBIgoJeD0kKGdyZXAgLUVjICdeVicgaW5kZXgudHh0KQoJeT0kKGdy
ZXAgLUVjICdeRScgaW5kZXgudHh0KQoJej0kKGdyZXAgLUVjICdeUicgaW5kZXgudHh0KQoJbWVz
c2FnZSBpbmZvICItLS0gQUMgWDUwOSBBdXRob3JpdHkgc3RhdHVzIGZvciAkQ0EgKGludGVudDog
JElOVEVOVCkgLS0tCgpWYWxpZCBDZXJ0aWZpY2F0ZXM6ICR4CkV4cGlyZWQgQ2VydGlmaWNhdGVz
OiAkeQpSZXZva2VkIENlcnRpZmlhY3RlczogJHoKVG90YWwgQ2VydGlmaWNhdGVzOiAkKCh4K3kr
eikpXG4iCn0KCiMgTGlzdCBhbGwgY2VydGlmaWNhdGVzIGFjY29yZGluZyB0byBDQQojIFsxXSA9
IENBCmZ1bmN0aW9uIGxpc3RfY2VydHMgewoJbG9jYWwgZGlyCglsb2NhbCBjZXJ0Cglsb2NhbCBs
cwoJbG9jYWwgeAoJbWVzc2FnZSBpbmZvICItLS0gQUMgWDUwOSBBdXRob3JpdHkgY2VydGlmaWNh
dGUgbGlzdCAtLS1cbiIKCWNkICIkREFUQSIKCWlmIFsgLW4gIiQxIiBdOyB0aGVuCgkJbHM9KCQx
KQoJZWxzZQoJCWxzPSQobHMpCglmaQoJZm9yIGRpciBpbiAkbHM7IGRvCgkJaWYgWyAtZCAiJGRp
ci8ke0NFUlRfRElSfSIgXSAmJiBbIC1yICIkZGlyL29wZW5zc2wuY25mIiBdOyB0aGVuICMgd2Ug
YXNzdW1lIHdlIGhhdmUgYSBjZXJ0aWZpY2F0ZSBkaXIKCQkJLiAkZGlyLy5zZXRlbnYKCQkJbWVz
c2FnZSBpbmZvICJDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgJyRkaXInIChpbnRlbnQ6ICRJTlRFTlQp
IGNlcnRpZmljYXRlIGxpc3Q6IgoJCQljZCAkZGlyLyR7Q0VSVF9ESVJ9CgkJCWZvciBjZXJ0IGlu
ICQobHMgKi5jcnQgMj4mLSk7IGRvCgkJCQltZXNzYWdlIGluZm8gIlx0JGNlcnQiCgkJCWRvbmUK
CQkJZWNobyAtZSAiXG4iCgkJCWNkICIkREFUQSIKCQlmaQoJZG9uZQp9CgojIFNldHMgdmVyYm9z
ZSBvdXRwdXQKZnVuY3Rpb24gc2V0X3ZlcmJvc2UgewoJaWYgZWNobyAiJEAiIHwgZ3JlcCAtcUUg
JygoLXYpfCgtLXZlcmJvc2UpKSQnOyB0aGVuCgkJVkVSQk9TRT0xCglmaQp9CgojIFZhbGlkYXRl
cyBhIHBhc3N3b3JkIGFzIGNvcnJlY3QgZm9ybWF0CmZ1bmN0aW9uIHZhbGlkYXRlX3Bhc3N3b3Jk
IHsKCWlmICEgZWNobyAkMSB8IGdyZXAgLXFFICdeW1s6YWxudW06XVs6cHVuY3Q6XV17OCwyMH0k
JyB8fCBbICIkMSIgPSAnLS12ZXJib3NlJyBdOyB0aGVuCgkJbWVzc2FnZSBlcnJvciAiUGFzc3dv
cmQgZm9ybWF0IGlzIGludmFsaWQuIE11c3QgYmUgOC0yMCBhbHBoYW51bWVyaWNzIG9yIHB1bmN0
dWF0aW9ucy4iCglmaQp9CgojIFZhbGlkYXRlcyB0aGF0IGEgc3VwcGxpZWQgQ0EgZXhpc3RzIGFu
ZCBzZXRzIHRoZSBydW5uaW5nIGNvbnRleHQKZnVuY3Rpb24gdmFsaWRhdGVfQ0EgewoJaWYgWyAh
IC1kICIkREFUQS8kMSIgXTsgdGhlbgoJCW1lc3NhZ2UgZXJyb3IgIk5vIHN1Y2ggQ2VydGlmaWNh
dGUgQXV0aG9yaXR5IGV4aXN0cyBpbiAnJERBVEEnLiIKCQlncmFjZWZ1bF9leGl0IDEKCWVsc2UK
CQlDQT0kMQoJCS4gIiREQVRBLyRDQS8uc2V0ZW52IgoJZmkKfQoKIyBNb3ZlcyB0aGUgZGF0YXN0
b3JlCmZ1bmN0aW9uIG1vdmVfZGF0YXN0b3JlIHsKCWlzX2xvY2tlZAoJbG9jawoJbG9jYWwgZGly
Cglsb2NhbCBiYXNlCglsb2NhbCBjYQoJbWVzc2FnZSBkZWJ1ZyAiQXR0ZW1wdGluZyB0byBtb3Zl
IGRhdGFzdG9yZSBmcm9tICckREFUQScuIgoJaWYgISBlY2hvICIkMSIgfCBncmVwIC1xaUUgJ14o
L1tcLV9cLiBcKFwpWzphbG51bTpdXSspKi8/JCcgfHwgWyAteiAiJDEiIF07IHRoZW4KCQltZXNz
YWdlIGVycm9yICdOb3QgYSBwb3NzaWJsZSBhYnNvbHV0ZSBwYXRoLicKCQlncmFjZWZ1bF9leGl0
IDEKCWZpCgliYXNlPSQoYmFzZW5hbWUgIiQxIikKCWRpcj0kKGRpcm5hbWUgIiQxIikKCWlmIFsg
ISAtZCAiJGRpciIgXTsgdGhlbgoJCWlmICEgbWtkaXIgLXAgIiRkaXIiOyB0aGVuCgkJCW1lc3Nh
Z2UgZXJyb3IgIkZhaWxlZCB0byBjcmVhdGUgZGF0YXNvcmUgYmFzZSAnJGRpcicuIgoJCQlncmFj
ZWZ1bF9leGl0IDIKCQlmaQoJCWNob3duIHJvb3Q6YXBhY2hlICIkZGlyIgoJCWNobW9kIDY3NzAg
IiRkaXIiCglmaQoJaWYgISBtdiAtZiAiJERBVEEiICIkZGlyLyRiYXNlIjsgdGhlbgoJCW1lc3Nh
Z2UgZXJyb3IgIkZhaWxlZCB0byByZWxvY2F0ZSAnJERBVEEnIHRvICckZGlyLyRiYXNlJy4iCgkJ
Z3JhY2VmdWxfZXhpdCAyCglmaQoJIyByZXdyaXRlIHRoZSBkYXRhc3RvcmUgcGF0aCBpbiBhbnkg
b3BlbnNzbC5jb25mIGZpbGVzCglmb3IgY2EgaW4gJChscyAkZGlyLyRiYXNlKTsgZG8KCQlpZiBb
IC1mICRkaXIvJGJhc2UvJGNhL29wZW5zc2wuY25mIF07IHRoZW4KCQkJLiAkZGlyLyRiYXNlLyRj
YS8ucHJvZmlsZQoJCQkuICRkaXIvJGJhc2UvJGNhLy5pbW11dGFibGUKCQkJY2FzZSAkaW50ZW50
IGluCgkJCQlzZXJ2ZXIgKQoJCQkJCU1BS0VfQ0E9RkFMU0UKCQkJCQk7OwoJCQkJY2xpZW50ICkK
CQkJCQlNQUtFX0NBPUZBTFNFCgkJCQkJOzsKCQkJCSogKQoJCQkJCXVuc2V0IE1BS0VfQ0EKCQkJ
CQk7OwoJCQllc2FjCgkJCWlmICEgbTQgLUREQ0FESVJEPSIkZGlyLyRiYXNlLyRjYSIgLUREREFZ
U0Q9JGRheXMgLUREQ0Q9JHtDQV9DfSAtRERyZXN0cmljdF9DRD0ke3Jlc3RyaWN0X0NOOj1vcHRp
b25hbH0gLUREcmVzdHJpY3RfU1REPSR7cmVzdHJpY3RfU1Q6LW9wdGlvbmFsfSAtRERyZXN0cmlj
dF9PRD0ke3Jlc3RyaWN0X086PW9wdGlvbmFsfSAtRERyZXN0cmljdF9PVUQ9JHtyZXN0cmljdF9P
VTo9b3B0aW9uYWx9IC1ERHJlc3RyaWN0X0xEPSR7cmVzdHJpY3RfTDo9b3B0aW9uYWx9IC1EREJJ
VFNEPSRiaXRzIC1ERFNURD0iJHtDQV9TVH0iIC1ERExEPSIke0NBX0x9IiAtRERPRD0iJHtDQV9P
fSIgLURET1VEPSIke0NBX09VfSIgLURNQUtFX0NBPSIke01BS0VfQ0E6LUZBTFNFfSIgLUREQ1JM
REFZUz0ke0NSTF9kYXlzfSAkQ09ORi9vcGVuc3NsLmNuZi50ZW1wbGF0ZSA+ICRkaXIvJGJhc2Uv
JGNhL29wZW5zc2wuY25mIDI+JFNXQVA7IHRoZW4KCQkJCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICRT
V0FQKSIKCQkJCW1lc3NhZ2UgZXJyb3IgIkZhaWxlZCB0byB1cGRhdGUgT3BlblNTTCBjb250cm9s
IGZpbGUuIgoJCQkJZ3JhY2VmdWxfZXhpdCAyCgkJCWZpCgkJZmkKCWRvbmUKCSMgdGlkeSB1cAoJ
ZWNobyAiJGRpci8kYmFzZSIgPiAkQ09ORi9kYXRhcGF0aAoJREFUQT0iJGRpci8kYmFzZSIgI3dl
IG5lZWQgdGhpcyB0byByZXBvaW50IHRoZSBsb2NrIGZpbGUKCURFQlVHX0xPRz0kREFUQS9kZWJ1
Zy5sb2cgI3dlIG5lZWQgdG8gcmVwb2ludCB0aGUgZGVidWcgbG9nCgltZXNzYWdlIGluZm8gIlJl
bG9jYXRlZCBDQSBkYXRhc3RvcmVzIHRvICckZGlyLyRiYXNlJy4iCn0KCiMgQ2hlY2tzIHRoZSBD
QSBwYXNzd29yZCBieSBhdHRlbXB0aW5nIGEgdHJpdmlhbCBsb2dpbgojMSA9IHBhc3N3b3JkCmZ1
bmN0aW9uIGNoZWNrX2NhX3Bhc3N3b3JkIHsKCW1lc3NhZ2UgZGVidWcgIm9wZW5zc2wgcnNhIC1p
biAkREFUQS8kQ0EvY2Eua2V5IC1wYXNzaW4gcGFzczonKioqKioqKionIC1jaGVjayAtbm9vdXQg
MT4mLSAyPiR7U1dBUH1wIgoJaWYgISBvcGVuc3NsIHJzYSAtaW4gJERBVEEvJENBL2NhLmtleSAt
cGFzc2luIHBhc3M6IiQxIiAtY2hlY2sgLW5vb3V0IDE+Ji0gMj4ke1NXQVB9cDsgdGhlbgoJCW1l
c3NhZ2UgZGVidWcgIiQoY2F0ICR7U1dBUH1wKSIKCQltZXNzYWdlIGVycm9yICJJbnZhbGlkIHBh
c3N3b3JkIGZvciBDQSAnJENBJy4iCgkJZ3JhY2VmdWxfZXhpdCAxCglmaQp9CgojIFNldC9jaGFu
Z2UvcmVtb3ZlIGEgQ0EgcGFzc3dvcmQKZnVuY3Rpb24gc2V0X3Bhc3N3b3JkIHsKCWxvY2FsIHBh
c3N3b3JkCglpZiBbICIkTE9DS0VEIiA9ICd5ZXMnIF07IHRoZW4gI29mZmVyIHRvIGNoYW5nZSBv
ciB1bnNldCB0aGUgcGFzc3dvcmQKCQltZXNzYWdlIGluZm8gIkNBICckQ0EnIGlzIGFscmVhZHkg
cGFzc3dvcmQgcHJvdGVjdGVkLiIKCQltZXNzYWdlIHByb21wdCAnRG8geW91IHdhbnQgdG8gW0Nd
aGFuZ2UgdGhlIHBhc3N3b3JkIG9yIFtSXXJlbW92ZSBpdD8nCgkJd2hpbGUgcmVhZDsgZG8KCQkJ
Y2FzZSAkUkVQTFkgaW4KCQkJCUMgfCBjICkKCQkJCQltZXNzYWdlIHByb21wdCAnQ3VycmVudCBw
YXNzd29yZCcKCQkJCQlyZWFkIC1zCgkJCQkJZWNobyAnJwoJCQkJCSN0ZXN0IHRoZSBwYXNzd29y
ZAoJCQkJCWNoZWNrX2NhX3Bhc3N3b3JkICIkUkVQTFkiCgkJCQkJcGFzc3dvcmQ9JFJFUExZCgkJ
CQkJbWVzc2FnZSBwcm9tcHQgJ05ldyBwYXNzd29yZCcKCQkJCQl3aGlsZSByZWFkIC1zOyBkbwoJ
CQkJCQllY2hvICcnCgkJCQkJCWlmIFsgLXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJCQkJbWVzc2Fn
ZSBpbnZhbGlkICdQYXNzd29yZCBtdXN0IG5vdCBiZSBlbXB0eScKCQkJCQkJZWxpZiAhIHZhbGlk
YXRlX3Bhc3N3b3JkICIkUkVQTFkiOyB0aGVuCgkJCQkJCQltZXNzYWdlIGludmFsaWQgJ1Bhc3N3
b3JkIGNhbm5vdCBiZSBvdmVyIDIwIGNoYXJhY3RlcnMnCgkJCQkJCWVsc2UKCQkJCQkJCUNBX3Bh
c3N3b3JkPSRSRVBMWQoJCQkJCQkJYnJlYWsKCQkJCQkJZmkKCQkJCQlkb25lCgkJCQkJbWVzc2Fn
ZSBwcm9tcHQgJ0NvbmZpcm0gbmV3IHBhc3N3b3JkJwoJCQkJCXdoaWxlIHJlYWQgLXM7IGRvCgkJ
CQkJCWVjaG8gJycKCQkJCQkJaWYgWyAhICIkUkVQTFkiID0gIiR7Q0FfcGFzc3dvcmR9IiBdOyB0
aGVuCgkJCQkJCQltZXNzYWdlIGludmFsaWQgJ1Bhc3N3b3JkcyBkbyBub3QgbWF0Y2gnCgkJCQkJ
CWVsc2UKCQkJCQkJCWxvY2tlZD15ZXMKCQkJCQkJCWJyZWFrCgkJCQkJCWZpCgkJCQkJZG9uZQoJ
CQkJCSNyZS1leHBvcnQgdGhlIHByaXZhdGUga2V5IHdpdGggYSBwYXNzd29yZAoJCQkJCW1lc3Nh
Z2UgZGVidWcgIm9wZW5zc2wgcnNhIC1pbiAkREFUQS8kQ0EvY2Eua2V5IC1wYXNzaW4gcGFzczon
KioqKioqKionIC1vdXQgJFNXQVAgLXBhc3NvdXQgcGFzczonKioqKioqKionIC1hZXMxMjgiCgkJ
CQkJaWYgISBvcGVuc3NsIHJzYSAtaW4gJERBVEEvJENBL2NhLmtleSAtcGFzc2luIHBhc3M6IiRw
YXNzd29yZCIgLW91dCAkU1dBUCAtcGFzc291dCBwYXNzOiIke0NBX3Bhc3N3b3JkfSIgLWFlczEy
OCAyPiAke1NXQVB9MjsgdGhlbgoJCQkJCQltZXNzYWdlIGVycm9yICdGYWlsZWQgdG8gY2hhbmdl
IHRoZSBDQSBwYXNzd29yZC4nCgkJCQkJCW1lc3NhZ2UgZGVidWcgIiQoY2F0ICR7U1dBUH0yKSIK
CQkJCQkJZ3JhY2VmdWxfZXhpdCAyCgkJCQkJZmkKCQkJCQltdiAtZiAkU1dBUCAkREFUQS8kQ0Ev
Y2Eua2V5CgkJCQkJbWVzc2FnZSBpbmZvICdQYXNzd29yZCBoYXMgYmVlbiBjaGFuZ2VkLicKCQkJ
CQlicmVhawoJCQkJCTs7CgkJCQlSIHwgciApCgkJCQkJbWVzc2FnZSBwcm9tcHQgJ1Bhc3N3b3Jk
JwoJCQkJCXJlYWQgLXMKCQkJCQllY2hvICcnCgkJCQkJY2hlY2tfY2FfcGFzc3dvcmQgIiRSRVBM
WSIKCQkJCQkjcmUtZXhwb3J0IHRoZSBwcml2YXRlIGtleSB3aXRoIG5vIHBhc3N3b3JkCgkJCQkJ
bWVzc2FnZSBkZWJ1ZyAib3BlbnNzbCByc2EgLWluICREQVRBLyRDQS9jYS5rZXkgLXBhc3NpbiBw
YXNzOicqKioqKioqKicgLW91dCAkU1dBUCIKCQkJCQlpZiAhIG9wZW5zc2wgcnNhIC1pbiAkREFU
QS8kQ0EvY2Eua2V5IC1wYXNzaW4gcGFzczoiJFJFUExZIiAtb3V0ICRTV0FQIDI+ICR7U1dBUH0y
OyB0aGVuCgkJCQkJCW1lc3NhZ2UgZXJyb3IgJ0ZhaWxlZCB0byB1bnNldCB0aGUgQ0EgcGFzc3dv
cmQuJwoJCQkJCQltZXNzYWdlIGRlYnVnICIkKGNhdCAke1NXQVB9MikiCgkJCQkJCWdyYWNlZnVs
X2V4aXQgMgoJCQkJCWZpCgkJCQkJbXYgLWYgJFNXQVAgJERBVEEvJENBL2NhLmtleQoJCQkJCXNl
ZCAtciAncy9sb2NrZWQ9eWVzL2xvY2tlZD1uby9nJyAkREFUQS8kQ0EvLnByb2ZpbGUgPiAkU1dB
UAoJCQkJCW12IC1mICRTV0FQICREQVRBLyRDQS8ucHJvZmlsZQoJCQkJCSN1cGRhdGUgdGhlIC5z
ZXRzZW52CgkJCQkJc2VkIC1yICdzL0xPQ0tFRD15ZXMvTE9DS0VEPW5vL2cnICREQVRBLyRDQS8u
c2V0ZW52ID4gJFNXQVAKCQkJCQltdiAtZiAkU1dBUCAkREFUQS8kQ0EvLnNldGVudgoJCQkJCW1l
c3NhZ2UgaW5mbyAnUGFzc3dvcmQgaGFzIGJlZW4gdW5zZXQuJwoJCQkJCWJyZWFrCgkJCQkJOzsK
CQkJCSogKQoJCQkJCW1lc3NhZ2UgaW52YWxpZAoJCQkJCTs7CgkJCWVzYWMKCQlkb25lCgllbHNl
ICNvZmZlciB0byBzZXQgYSBwYXNzd29yZAoJCW1lc3NhZ2UgaW5mbyAiQ0EgJyRDQScgaXMgbm90
IHBhc3N3b3JkIHByb3RlY3RlY3RlZC4iCgkJaWYgbWVzc2FnZSBpc195ZXMgJ1JlcXVpcmUgYWRk
aXRpb25hbCBwYXNzd29yZCBmb3IgQ0Egb3BlcmF0aW9ucz8nOyB0aGVuCgkJCW1lc3NhZ2UgcHJv
bXB0ICdQYXNzd29yZCcKCQkJd2hpbGUgcmVhZCAtczsgZG8KCQkJCWVjaG8gJycKCQkJCWlmIFsg
LXogIiRSRVBMWSIgXTsgdGhlbgoJCQkJCW1lc3NhZ2UgaW52YWxpZCAnUGFzc3dvcmQgbXVzdCBu
b3QgYmUgZW1wdHknCgkJCQllbGlmICEgdmFsaWRhdGVfcGFzc3dvcmQgIiRSRVBMWSI7IHRoZW4K
CQkJCQltZXNzYWdlIGludmFsaWQgJ1Bhc3N3b3JkIGNhbm5vdCBiZSBvdmVyIDIwIGNoYXJhY3Rl
cnMnCgkJCQllbHNlCgkJCQkJQ0FfcGFzc3dvcmQ9JFJFUExZCgkJCQkJYnJlYWsKCQkJCWZpCgkJ
CWRvbmUKCQkJbWVzc2FnZSBwcm9tcHQgJ0NvbmZpcm0gcGFzc3dvcmQnCgkJCXdoaWxlIHJlYWQg
LXM7IGRvCgkJCQllY2hvICcnCgkJCQlpZiBbICEgIiRSRVBMWSIgPSAiJHtDQV9wYXNzd29yZH0i
IF07IHRoZW4KCQkJCQltZXNzYWdlIGludmFsaWQgJ1Bhc3N3b3JkcyBkbyBub3QgbWF0Y2gnCgkJ
CQllbHNlCgkJCQkJbG9ja2VkPXllcwoJCQkJCWJyZWFrCgkJCQlmaQoJCQlkb25lCgkJCSNyZS1l
eHBvcnQgdGhlIHByaXZhdGUga2V5IHdpdGggYSBwYXNzd29yZAoJCQltZXNzYWdlIGRlYnVnICJv
cGVuc3NsIHJzYSAtaW4gJERBVEEvJENBL2NhLmtleSAtb3V0IGNhLmtleS5uZXcgLXBhc3NvdXQg
cGFzczonKioqKioqKionIC1hZXMxMjgiCgkJCWlmICEgb3BlbnNzbCByc2EgLWluICREQVRBLyRD
QS9jYS5rZXkgLW91dCAkU1dBUCAtcGFzc291dCBwYXNzOiIke0NBX3Bhc3N3b3JkfSIgLWFlczEy
OCAyPiAke1NXQVB9OyB0aGVuCgkJCQltZXNzYWdlIGVycm9yICdGYWlsZWQgdG8gbG9jayB0aGUg
Q0EuJwoJCQkJbWVzc2FnZSBkZWJ1ZyAiJChjYXQgJHtTV0FQfTIpIgoJCQkJZ3JhY2VmdWxfZXhp
dCAyCgkJCWZpCgkJCW12IC1mICRTV0FQICREQVRBLyRDQS9jYS5rZXkKCQkJI3VwZGF0ZSB0aGUg
LnByb2ZpbGUKCQkJc2VkIC1yICdzL2xvY2tlZD1uby9sb2NrZWQ9eWVzL2cnICREQVRBLyRDQS8u
cHJvZmlsZSA+ICRTV0FQCgkJCW12IC1mICRTV0FQICREQVRBLyRDQS8ucHJvZmlsZQoJCQkjdXBk
YXRlIHRoZSAuc2V0c2VudgoJCQlzZWQgLXIgJ3MvTE9DS0VEPW5vL0xPQ0tFRD15ZXMvZycgJERB
VEEvJENBLy5zZXRlbnYgPiAkU1dBUAoJCQltdiAtZiAkU1dBUCAkREFUQS8kQ0EvLnNldGVudgoJ
CQltZXNzYWdlIGluZm8gJ1Bhc3N3b3JkIGhhcyBiZWVuIHNldC4nCgkJZmkKCWZpCgl1cGRhdGVf
cGVybWlzc2lvbnMKfQoKIyBFeHBvcnRzIGEgY2VydGlmaWNhdGUgdG8gUEtDUyMxMiBrZXlzdG9y
ZQojIDEgPSBDTgojIDIgPSBhbGlhcwojIFszXSA9IGtleSBwYXNzd29yZC9rZXlzdG9yZSBwYXNz
d29yZAojIFs0XSA9IGtleXN0b3JlIHBhc3N3b3JkCmZ1bmN0aW9uIHBrY3MxMiB7Cglsb2NhbCBw
YXNzd29yZAoJbG9jYWwga2V5cGFzcwoJbG9jYWwgY29tbWFuZAoJbG9jYWwgbG9nCglsb2NhbCBp
bnRlcm1lZGlhdGVzCglsb2NhbCBuCglpc19sb2NrZWQKCWxvY2sKCW1lc3NhZ2UgZGVidWcgIkV4
cG9lcnRpbmcgY2VydGlmaWNhdGUgaW4gQ0EgJyRDQScgOiAnJDEnIgoJY2QgIiREQVRBLyRDQSIK
CWlmIFsgIiRLRVlQQVNTIiA9ICd5ZXMnIF07IHRoZW4KCQlpZiBbIC16ICIkMyIgXTsgdGhlbgoJ
CQltZXNzYWdlIGVycm9yICJBIGtleSBwYXNzd29yZCAnJDEnIGlzIHJlcXVpcmVkLiIKCQkJZ3Jh
Y2VmdWxfZXhpdCAxCgkJZWxzZQoJCQlwYXNzd29yZD0kMwoJCQkjIGNoZWNrIHRoZSBwYXNzd29y
ZAoJCQltZXNzYWdlIGRlYnVnICJvcGVuc3NsIHJzYSAtaW4gJyR7S0VZX0RJUn0vJDEua2V5JyAt
cGFzc2luIHBhc3M6JyoqKioqKioqJyAtY2hlY2sgLW5vb3V0IDE+Ji0gMj4ke1NXQVB9cCIKCQkJ
aWYgISBvcGVuc3NsIHJzYSAtaW4gIiR7S0VZX0RJUn0vJDEua2V5IiAtcGFzc2luIHBhc3M6IiRw
YXNzd29yZCIgLWNoZWNrIC1ub291dCAxPiYtIDI+JHtTV0FQfXA7IHRoZW4KCQkJCW1lc3NhZ2Ug
ZGVidWcgIiQoY2F0ICR7U1dBUH1wKSIKCQkJCW1lc3NhZ2UgZXJyb3IgIkludmFsaWQgcGFzc3dv
cmQgZm9yIGtleS4iCgkJCQlncmFjZWZ1bF9leGl0IDEKCQkJZmkKCQlmaQoJZmkKCWlmIFsgLXog
IiQyIiBdOyB0aGVuCgkJbWVzc2FnZSBlcnJvciAnQW4gYWxpYXMgaXMgcmVxdWlyZWQuIFRoaXMg
Y2FuIGJlIGFueSBzaG9ydCBzdHJpbmcuJwoJCWdyYWNlZnVsX2V4aXQgMQoJZmkKCWlmIFsgLW4g
IiRwYXNzd29yZCIgXTsgdGhlbgoJCWlmIFsgLW4gIiQ0IiBdOyB0aGVuCgkJCWtleXBhc3N3b3Jk
PSQ0CgkJZmkKCWVsaWYgWyAtbiAiJDMiIF07IHRoZW4KCQlrZXlwYXNzd29yZD0kMwoJZmkKCWlm
IFsgISAtZiAiJHtLRVlfRElSfS8kMS5rZXkiIF07IHRoZW4KCQltZXNzYWdlIGVycm9yICJUaGVy
ZSBpcyBubyBwcml2YXRlIGtleSBmb3IgJyQxJy4iCgkJZ3JhY2VmdWxfZXhpdCAxCglmaQoJCglj
b21tYW5kPSJvcGVuc3NsIHBrY3MxMiAtZXhwb3J0IC1vdXQgJyRPUklHSU4vJDEucDEyJyAtaW4g
JyR7Q0VSVF9ESVJ9LyQxLmNydCcgLWlua2V5ICcke0tFWV9ESVJ9LyQxLmtleScgLW5hbWUgJDIg
LWNlcnRmaWxlICR7U1dBUH0yIC1jYW5hbWUgcm9vdCIKCWxvZz0ib3BlbnNzbCBwa2NzMTIgLWV4
cG9ydCAtb3V0ICckT1JJR0lOLyQxLnAxMicgLWluICcke0NFUlRfRElSfS8kMS5jcnQnIC1pbmtl
eSAnJHtLRVlfRElSfS8kMS5rZXknIC1uYW1lICQyIC1jZXJ0ZmlsZSAke1NXQVB9MiAtY2FuYW1l
IHJvb3QiCglpZiBbIC1mIHJvb3QuY3J0IF07IHRoZW4KCQljYXQgcm9vdC5jcnQgPj4gJHtTV0FQ
fTIKCQlpbnRlcm1lZGlhdGVzPSQoZ3JlcCAtYyAnQkVHSU4gQ0VSVElGSUNBVEUnIHJvb3QuY3J0
KQoJCW49MQoJCXdoaWxlICgobjxpbnRlcm1lZGlhdGVzKSk7IGRvCgkJCWNvbW1hbmQ9IiRjb21t
YW5kIC1jYW5hbWUgaW50ZXJtZWRpYXRlJG4iCgkJCWxvZz0iJGxvZyAtY2FuYW1lIGludGVybWVk
aWF0ZSRuIgoJCQkoKG4rKykpCgkJZG9uZQoJZWxzZQoJCWNwIGNhLmNydCAke1NXQVB9MgoJZmkK
CWlmIFsgLW4gIiRwYXNzd29yZCIgXTsgdGhlbgoJCWNvbW1hbmQ9IiRjb21tYW5kIC1wYXNzaW4g
cGFzczonJHBhc3N3b3JkJyIKCQlsb2c9IiRsb2cgLXBhc3NpbiBwYXNzJyoqKioqKioqJyIKCWZp
CglpZiBbIC1uICIka2V5cGFzc3dvcmQiIF07IHRoZW4KCQljb21tYW5kPSIkY29tbWFuZCAtcGFz
c291dCBwYXNzOicka2V5cGFzc3dvcmQnIgoJCWxvZz0iJGxvZyAtcGFzc291dCBwYXNzJyoqKioq
KioqJyIKCWZpCgltZXNzYWdlIGRlYnVnICIkY29tbWFuZCIKCWlmICEgc2ggLWMgIiRjb21tYW5k
IDI+JFNXQVAiOyB0aGVuCgkJbWVzc2FnZSBlcnJvciAiRmFpbGVkIHRvIGV4cG9ydCAnJDEnIHRv
IFBLQ1MjMTIiCgkJbWVzc2FnZSBkZWJ1ZyAiJChjYXQgJFNXQVApIgoJCWdyYWNlZnVsX2V4aXQg
MgoJZmkKCW1lc3NhZ2UgaW5mbyAiUEtDUyMxMiBrZXlzdG9yZSBleHBvcnRlZCB0byAnJE9SSUdJ
Ti8kMS5wMTInLiIKfQoKIyBDbGVhbiB1cCBhbmQgZXhpdCB3aXRoIGNvZGUKZnVuY3Rpb24gZ3Jh
Y2VmdWxfZXhpdCB7CglybSAtZiAiJERBVEEvLmxvY2siIDI+Ji0KCXJtIC1yZiAvdG1wLyR7JH1f
cHJvZmlsZSAyPiYtCglybSAtZiAvdG1wLyR7JH0qIDI+Ji0KCXJtIC1mICRWQlVGRkVSIDI+Ji0K
CWlmIFsgISAtZCAkT1JJR0lOIF07IHRoZW4KCQljZCB+CgllbHNlCgkJY2QgJE9SSUdJTgoJZmkK
CWV4aXQgJDEKfQoKIyBNQUlOIFBST0NFU1NJTkcgU0VRVUVOQ0UKaWYgWyAhICQod2hvYW1pKSA9
ICdyb290JyBdICYmICEgZ3JvdXBzIHwgZ3JlcCAtcSAnYXBhY2hlJzsgdGhlbgoJbWVzc2FnZSBl
cnJvciAib25seSByb290IG9yIGEgbWVtYmVyIG9mIHRoZSAnYXBhY2hlJyBncm91cCBjYW4gcnVu
IHRoaXMuIgoJZ3JhY2VmdWxfZXhpdCAxCmZpCnVtYXNrIDAwNwpzZXRfdmVyYm9zZSAkQAoKaWYg
KCgkeyN9PT0wKSk7IHRoZW4KCW1lc3NhZ2UgaW5mbyAiJFVTQUdFIgoJZ3JhY2VmdWxfZXhpdCAx
CmZpCgp0cmFwIGdyYWNlZnVsX2V4aXQgS0lMTCBJTlQgQUJSVCBURVJNCgojIFBhcnNlIEwxIG9w
dGlvbnMKY2FzZSAkMSBpbgoJbGlzdCApCgkJbGlzdF9jZXJ0cyAkMgoJCTs7CglkYXRhc3RvcmUg
KQoJCWlmIFsgISAiJCMiID0gJzInIF07IHRoZW4KCQkJZWNobyAkREFUQQoJCWVsc2UKCQkJbW92
ZV9kYXRhc3RvcmUgIiQyIgoJCWZpCgkJOzsKCW5ldyApCgkJY3JlYXRlX2NhCgkJOzsKCXZlcnNp
b24gKQoJCWhlYWQgLTE1ICIkVEhJUyIgfCBncmVwIC12RSAnXiMhJyB8IHNlZCAncy8jLy9nJwoJ
CTs7CgkqICkgIyBQYXJzZSBMMiBvcHRpb25zCgkJdmFsaWRhdGVfQ0EgJDEKCQljYXNlICQyIGlu
CgkJCWRlc3Ryb3kgKQoJCQkJbWVzc2FnZSB2ZXJib3NlICJSZWN1cnNpdmVseSBkZWxldGluZyAn
JERBVEEvJENBJy4iCgkJCQlybSAtcmYgIiREQVRBLyRDQSIKCQkJCW1lc3NhZ2UgdmVyYm9zZSAi
Q2VydGlmaWNhdGUgQXV0aG9yaXR5ICckQ0EnIGhhcyBiZWVuIGRlbGV0ZWQuIgoJCQkJOzsKCQkJ
Y3JlYXRlICkKCQkJCWNyZWF0ZV9jZXJ0aWZpY2F0ZSAkMyAkNCAkNSAkNgoJCQkJOzsKCQkJc2ln
biApCgkJCQlzaWduX2NzciAkMyAkNAoJCQkJOzsKCQkJZ2V0LWluZm8gKQoJCQkJZ2V0X2RhdGVz
ICQzCgkJCQk7OwoJCQlyZXZva2UgKQoJCQkJcmV2b2tlICQzICQ0CgkJCQk7OwoJCQl1cGRhdGUt
Y3JsICkKCQkJCXVwZGF0ZV9jcmwgJDMKCQkJCTs7CgkJCWRlbGV0ZSApCgkJCQlkZWxldGUgJDMg
JDQKCQkJCTs7CgkJCWdldC1jcmwtaW5mbyApCgkJCQlnZXRfY3JsX2RhdGVzCgkJCQk7OwoJCQlz
dGF0dXMgKQoJCQkJc2hvd19zdGF0dXMKCQkJCTs7CgkJCXByb2ZpbGUgKQoJCQkJc2hvd19wcm9m
aWxlICREQVRBLyRDQQoJCQkJOzsKCQkJZWRpdC1wcm9maWxlICkKCQkJCWVkaXRfcHJvZmlsZSAk
REFUQS8kQ0EKCQkJCXVwZGF0ZV9wZXJtaXNzaW9ucwoJCQkJOzsKCQkJcGFzc3dvcmQgKQoJCQkJ
c2V0X3Bhc3N3b3JkCgkJCQk7OwoJCQlnZXQtcGtjczEyICkKCQkJCXBrY3MxMiAkMyAkNCAkNSAk
NgoJCQkJOzsKCQkJKiApCgkJCQltZXNzYWdlIGVycm9yICIkVVNBR0UiCgkJCQlncmVjZWZ1bF9l
eGl0IDEKCQkJCTs7CgkJZXNhYwoJCTs7CmVzYWMKCiMgQ2xlYW4gdXAgYW5kIGV4aXQKZ3JhY2Vm
dWxfZXhpdCAwCgo=" | 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.4.1' complete at $(date '+%Y-%m-%d %T')"
