Ly8gSWYgTVBfQlMgPD4gTVBbMV0gdGhlbiBUL0YKCklucHV0czoKCVRUIAkoTnVtZXJpYyksCglN
UAkoTnVtZXJpYyksCglNUF9CUwkoTnVtZXJpYyk7CgpWYXJpYWJsZXM6CglNaXNNYXRjaAkoIEZB
TFNFICk7CgpJZiBUVCA9IFRUWzFdIGFuZCBNUF9CUyA8PiBNUFsxXSAKCXRoZW4gTWlzTWF0Y2gg
PSBUUlVFIGVsc2UgTWlzTWF0Y2ggPSBGQUxTRTsKCkNoZWNrZXJfTVBfMl9HViA9IE1pc01hdGNo
Owo=
Ly8gSWYgU1VNKENDKSA8PiBNUF9CIHRoZW4gVC9GCgpJbnB1dHM6CglDQzEJKE51bWVyaWMpLAoJ
Q0MyCShOdW1lcmljKSwKCUNDMwkoTnVtZXJpYyksCglNUF9CCShOdW1lcmljKTsKClZhcmlhYmxl
czoKCVN1bW0JCSggMCApLAoJTWlzTWF0Y2gJKCBGQUxTRSApOwoKU3VtbSA9IENDMSArIENDMiAr
IENDMzsKCklmIFN1bW0gPD4gTVBfQgoJdGhlbiBNaXNNYXRjaCA9IFRSVUUgZWxzZSBNaXNNYXRj
aCA9IEZBTFNFOwoKQ2hlY2tlcl9TeW1Db250XzFfR1YgPSBNaXNNYXRjaDsK
W0xlZ2FjeUNvbG9yVmFsdWUgPSBUUlVFXTsKCkRlZmluZURMTEZ1bmM6ICAiR2xvYmFsVmFyaWFi
bGUuZGxsIiwgZmxvYXQsICJHVl9HZXROYW1lZEZsb2F0IiwgbHBzdHIsIGZsb2F0IDsKCmlucHV0
czoKCUdWTmFtZSggc3RyaW5nICksCglFcnJvckNvZGUoIG51bWVyaWMgKSA7Cgp2YXJpYWJsZXM6
CglSdG5WYWwoIDAgKSA7CgoKUnRuVmFsID0gR1ZfR2V0TmFtZWRGbG9hdCggR1ZOYW1lLCBFcnJv
ckNvZGUgKSA7CgpHVkdldE5hbWVkRmxvYXQgPSBSdG5WYWwgOwoKVmFsdWUxID0gVGlja3MgOyAg
eyBGb3JjZSBSYWRhclNjcmVlbiB0byB1cGRhdGUgZXZlcnkgdGljay4gfQoJCgoK
Ly8gQ0hFQ0tJTkcgU1RSQVRFR1kgUE9TSVRJT04gQU5EIE5VTUJFUiBPRiBDT05UUkFUUyBPTiBD
VVJSRU5UIFNZTUJPTCBNSVNNQVRDSAovLyBJZiBNUF9CUyA8PiBNUFsxXSAJCXRoZW4gQWxlcnQg
KyBQYWludCArIFdyaXRlCi8vIElmIFN1bShDQylfdGlja2VyIDw+IE1QX0IJdGhlbiBBbGVydCAr
IFBhaW50ICsgV3JpdGUKLy8gTG9uZy9TaG9ydCBQYWludGluZ3MgYmFzZWQgb24gTVBfQlMKCi8v
IElNUE9SVEFOVDoKLy8gMS4pIE5vIFNjYWxpbmcKLy8gMi4pIE9ubHkgMyBzdHJhdGVnaWVzIG9u
IHNhbWUgc3ltYm9sCgpJbnB1dDogCglOYW1lCQkoIkRlZmF1bHROYW1lIiksCS8vIFdpbmRvdyBz
dHJhdGVneSBuYW1lCglPdGhlcnMxCSgiRGVmYXVsdE5hbWUxIiksCS8vIE90aGVyIHN0cmF0ZWd5
IG5hbWUgb24gc2FtZSB0aWNrZXIKCU90aGVyczIJKCJEZWZhdWx0TmFtZTIiKSwJLy8gT3RoZXIg
c3RyYXRlZ3kgbmFtZSBvbiBzYW1lIHRpY2tlcgoJUGFpbnRQb3NpdGlvbgkoIFRSVUUgKTsKClZh
cmlhYmxlczoKCVN0ckFsZXJ0TmFtZQkoTmFtZSArICJfTVAgTWlzbWF0Y2giKSwKCUNvbkFsZXJ0
TmFtZQkoTmFtZSArICJfQ0MgTWlzbWF0Y2giKSwKCVBvc0NvbG9yICAJKCB3aGl0ZSApLAoJCglC
TgkJKCAwICksCgkKCVRUCQkoIDAgKSwKCU1QCQkoIDAgKSwKCU1QX0JTCQkoIDAgKSwKCQoJQ0Mx
IAkJKCAwICksCglDQzIgCQkoIDAgKSwKCUNDMyAJCSggMCApLAoJTVBfQiAJCSggMCApLAoJUHJp
bnRCYXJOdW1iZXIoIDAgKSwKCglGbGFnCQkoIFRSVUUgKSwKCUxvbmdQb3MJKCBGQUxTRSApLCAK
CVNob3J0UG9zIAkoIEZBTFNFICksCglTdHJhdGVneU1pcyAgICggRkFMU0UgKSwKCUNvbnRyYWN0
TWlzIAkoIEZBTFNFICk7CgpCTiA9IEJhck51bWJlcjsKCklmIEJOID4gUHJpbnRCYXJOdW1iZXIg
dGhlbiBGbGFnID0gVFJVRTsgLy8gSWYgbmV3IGJhciwgdGhlbiBhbGxvdyBwcmludAoKSWYgRmxh
ZyB0aGVuCmJlZ2luCgkvLyBTdHJhdGVneU1pcyAKCVRUID0gR1ZHZXROYW1lZEZsb2F0CQkoTmFt
ZSArICJfVFQiLCAJOTk5OTkpOwoJTVAgPSBHVkdldE5hbWVkRmxvYXQJCShOYW1lICsgIl9NUCIs
CTk5OTk5KTsKCU1QX0JTID0gR1ZHZXROYW1lZEZsb2F0CShOYW1lICsgIl9NUF9CUyIsCTk5OTk5
KTsKCgkvLyBDb250cmFjdE1pcwoJQ0MxID0gR1ZHZXROYW1lZEZsb2F0CShOYW1lICsgIl9DQyIs
IAk5OTk5OSk7CgoJSWYgT3RoZXJzMSA8PiAiRGVmYXVsdE5hbWUxIiB0aGVuIENDMiA9IEdWR2V0
TmFtZWRGbG9hdAkoT3RoZXJzMSArICJfQ0MiLCAJOTk5OTkpIGVsc2UgQ0MyID0wOwoJSWYgT3Ro
ZXJzMiA8PiAiRGVmYXVsdE5hbWUyIiB0aGVuIENDMyA9IEdWR2V0TmFtZWRGbG9hdAkoT3RoZXJz
MiArICJfQ0MiLCAJOTk5OTkpIGVsc2UgQ0MzID0wOwoKCU1QX0IgPSBHVkdldE5hbWVkRmxvYXQJ
KE5hbWUgKyAiX01QX0IiLAk5OTk5OSk7CgoJSWYgT3RoZXJzMSA9ICJEZWZhdWx0TmFtZTEiIHRo
ZW4gCgoJTG9uZ1BvcyA9IE1QX0JTID0gMTsKCVNob3J0UG9zID0gTVBfQlMgPSAtMTsKCVN0cmF0
ZWd5TWlzID0gQ2hlY2tlcl9NUF8yX0dWKFRULE1QLE1QX0JTKTsKCUNvbnRyYWN0TWlzID0gQ2hl
Y2tlcl9TeW1Db250XzFfR1YoQ0MxLENDMixDQzMsTVBfQik7CgkKCVByaW50QmFyTnVtYmVyID0g
Qk47CmVuZDsKCgpJZiBQcmludEJhck51bWJlciA9IEJOIHRoZW4gRmxhZyA9IEZBTFNFOyAvLyBJ
ZiBPcGVuIHNhbWUgYXMgZnJpc3QgcHJpbnRzLCB0aGVuIGRvIG5vdCBwcmludCBhZ2FpbgoKCi8v
IFBhaW50aW5nCglJZiBMb25nUG9zIGFuZCBQYWludFBvc2l0aW9uCgkJdGhlbiBQb3NDb2xvciA9
IHJnYigwLDE5NiwyNTUpIAkJLy8gTG9uZyA9IEJsdWUKCQoJZWxzZSBpZiBTaG9ydFBvcyBhbmQg
UGFpbnRQb3NpdGlvbgkKCQl0aGVuIFBvc0NvbG9yID0gcmdiKDI1NSwyNTUsMCkgCQkvLyBTaG9y
dCA9IFllbGxvdwoJCgllbHNlIGlmIENvbnRyYWN0TWlzCgkJdGhlbiBQb3NDb2xvciA9IHJnYigy
NTUsMCwwKQkJLy8gQ29udHJhY3RzIE1pc21hdGNoIG9uIHN5bWJvbCA9IFJFRAoJCgllbHNlIGlm
IFN0cmF0ZWd5TWlzIAoJCXRoZW4gUG9zQ29sb3IgPSByZ2IoMjU1LDAsMCkJCS8vIFN0cmF0ZWd5
IERpcmVjdGlvbiBNaXNtYXRjaCA9IFJFRAoJCgllbHNlIGlmIG5vdCBMb25nUG9zIG9yIG5vdCBT
aG9ydFBvcyBvciBub3QgQ29udHJhY3RNaXMgb3Igbm90IFN0cmF0ZWd5TWlzIAoJCXRoZW4gUG9z
Q29sb3IgID0gd2hpdGU7CgpQbG90UGFpbnRCYXIoIEhpZ2gsIExvdywgIkNoZWNraW5nIFBhaW50
ZXIiLCBQb3NDb2xvciApIDsKCgovLyBBbGVydApJZiBDb250cmFjdE1pcyB0aGVuIApiZWdpbgoJ
QWxlcnQoIENvbkFsZXJ0TmFtZSApIDsKCglWYWx1ZTEgPSBUZXh0X25ldyhELFQsaCsxLFRleHQo
IkNvbkFsZXJ0TmFtZSIpKTsKCXRleHRfc2V0Y29sb3IoVmFsdWUxICwgcmdiKDI1NSwwLDApICk7
CglUZXh0X0Zsb2F0KFZhbHVlMSAsIDAsIDkwKTsKZW5kIAplbHNlIHRleHRfZGVsZXRlKCBWYWx1
ZTEgKTsKCQpJZiBTdHJhdGVneU1pcyB0aGVuCmJlZ2luCglBbGVydCggU3RyQWxlcnROYW1lICkg
OwoKCVZhbHVlMiA9IFRleHRfbmV3KEQsVCxDKzEsVGV4dCgiU3RyQWxlcnROYW1lIikpOwoJdGV4
dF9zZXRjb2xvcihWYWx1ZTIgLCByZ2IoMjU1LDAsMCkgKTsKCVRleHRfRmxvYXQoVmFsdWUyICwg
MCwgODApOwplbmQgCmVsc2UgdGV4dF9kZWxldGUoIFZhbHVlMiApOwoKCgoKCi8vIFBSSU5UIENP
TlRST0wKSWYgZGF0ZSA+IDExNTA3MzIgdGhlbgoJUHJpbnQoRmlsZSgiYzpcIitOYW1lKyJfY2hl
Y2tlcnByaW50LnR4dCIpLAogICAgICAgICAgIEJhck51bWJlciwKICAgICAgICAgICAiLCAiLCBF
TERhdGVUb1N0cmluZyhEYXRlKSwKICAgICAgICAgICAiLCAiLCB0aW1lLAogICAgICAgICAgIAog
ICAgICAgICAgICIsICIsIFRUICwKICAgICAgICAgICAiLCAiLCBNUCAsCiAgICAgICAgICAgIiwg
IiwgTVBfQlMsCiAgICAgICAgICAgIiwgIiwgQ0MxLAogICAgICAgICAgICIsICIsIENDMiwKICAg
ICAgICAgICAiLCAiLCBDQzMsCiAgICAgICAgICAgIiwgIiwgTVBfQiwKICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICIsICIsIExvbmdQb3MgLAogICAgICAgICAgICIsICIsIFNob3J0UG9z
ICwKICAgICAgICAgICAiLCAiLCBTdHJhdGVneU1pcyAsCiAgICAgICAgICAgIiwgIiwgQ29udHJh
Y3RNaXMgKTsK