T24gMjIgTWF5IDIwMTQgMTE6MzIsIFJhZmFlbCBFc3DDrW5kb2xhIDxyYWZhZWwuZXNwaW5kb2xh
QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBUaGUgQ29uc29sZUNvbnRyb2wuaCBmaWxlIGlzIGNvcGll
ZCBmcm9tCj4gRWRrQ29tcGF0aWJpbGl0eVBrZy9Gb3VuZGF0aW9uL1Byb3RvY29sL0NvbnNvbGVD
b250cm9sIGluCj4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyLgoKSSdtIG5vdCBh
d2FyZSBvZiB0aGUgZnVsbCBhbmNlc3RyeSBvZiBvdXIgRUZJIGluY2x1ZGUgZmlsZXMsIGJ1dCBp
dApsb29rcyBsaWtlIHRoZSBpbml0aWFsIGltcG9ydCBtYWRlIHNvbWUgYXR0ZW1wdCB0byBicmlu
ZyB0aGVtIHRvCkZyZWVCU0Qgc3R5bGUuICBGb3IgZXhhbXBsZSwgb3VyIGVmaWNvbi5oIGlzIGEg
dmVyc2lvbiBvZgpTaW1wbGVUZXh0T3V0LmggYW5kIGVmaXNlci5oIGlzIFNlcmlhbElvLmguICBG
b3IgY29uc2lzdGVuY3kgd2l0aCB0aGUKZXhpc3RpbmcgZmlsZXMgSSdsbCBwcm9iYWJseSByZW5h
bWUgdGhpcyBvbmUgdG8gZWZpY29uY3RsLmguCgogICAgICAgIHByaW50ZigiIFxuPj4gRnJlZUJT
RCBFRkkgYm9vdCBibG9ja1xuIik7CiAgICAgICAgcHJpbnRmKCIgICBMb2FkZXIgcGF0aDogJXNc
biIsIHBhdGgpOwoKKyAgICAgICBFRklfQk9PVF9TRVJWSUNFUyAqQlMgPSBzeXN0YWItPkJvb3RT
ZXJ2aWNlczsKKyAgICAgICBFRklfQ09OU09MRV9DT05UUk9MX1BST1RPQ09MICpDb25zb2xlQ29u
dHJvbCA9IE5VTEw7CisgICAgICAgc3RhdHVzID0gQlMtPkxvY2F0ZVByb3RvY29sKCZDb25zb2xl
Q29udHJvbEdVSUQsIE5VTEwsIChWT0lECioqKSYgQ29uc29sZUNvbnRyb2wpOworICAgICAgIGlm
IChFRklfRVJST1Ioc3RhdHVzKSkKKyAgICAgICAgICAgICAgIHBhbmljKCJObyBjb25zb2xlIGNv
bnRyb2wgcHJvdG9jb2wgbG9jYXRlZCIpOworCisgICAgICAgc3RhdHVzID0gQ29uc29sZUNvbnRy
b2wtPlNldE1vZGUoQ29uc29sZUNvbnRyb2wsCkVmaUNvbnNvbGVDb250cm9sU2NyZWVuVGV4dCk7
CisgICAgICAgaWYgKEVGSV9FUlJPUihzdGF0dXMpKQorICAgICAgICAgICAgICAgcGFuaWMoIkNv
dWxkIG5vdCBzd2l0Y2ggdG8gdGV4dCBtb2RlIik7CgpJIHRoaW5rIHdlIHdhbnQgdG8gbW92ZSB0
aGUgbW9kZSBzZXR0aW5nIGVhcmxpZXIgc28gdGhvc2UgcHJpbnRmcwp3b3JrLCBhbmQgaXQgcHJv
YmFibHkgbWFrZXMgc2Vuc2UgdG8gc2lsZW50bHkgaWdub3JlIGZhaWx1cmUgZnJvbQpMb2NhdGVQ
cm90b2NvbCBvciBTZXRNb2RlLiAgSWYgd2UncmUgYWxyZWFkeSBpbiB0ZXh0IG1vZGUgdGhlIGZh
aWx1cmUKZG9lc24ndCBtYXR0ZXIsIGFuZCBpZiB3ZSdyZSBub3QsIHRoZSBwYW5pYyB3b24ndCBo
ZWxwIGRpYWdub3NlIHRoZQpwcm9ibGVtLgoKQW55aG93LCBJJ2xsIGNvbW1pdCBhIHZlcnNpb24g
b2YgdGhpcyBzb29uLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpmcmVlYnNkLWN1cnJlbnRAZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0
cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVic2QtY3VycmVudApUbyB1bnN1YnNj
cmliZSwgc2VuZCBhbnkgbWFpbCB0byAiZnJlZWJzZC1jdXJyZW50LXVuc3Vic2NyaWJlQGZyZWVi
c2Qub3JnIg==