eval %q{IyBDb3B5cmlnaHQgMjAwNSwgRGlkaWVyIEJ1cgoKIyBQZXJtaXNzaW9uIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3
YXJlIGZvciAKIyBhbnkgcHVycG9zZSBhbmQgd2l0aG91dCBmZWUgaXMgaGVy
ZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCiMgY29weXJp
Z2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KCiMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBXSVRIT1VUIEFOWSBFWFBS
RVNTIE9SCiMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJVEhP
VVQgTElNSVRBVElPTiwgVEhFIElNUExJRUQKIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuCgojIE5hbWUgOiAgICAgICAgICBzdTJzdGwucmIgMS4wCiMgRGVz
Y3JpcHRpb24gOiAgIEV4cG9ydHMgc2VsZWN0aW9uIG9yIHdob2xlIG1vZGVs
IHRvIFNUTCBmb3JtYXQgZXh0ZXJuYWwgZmlsZQojIEF1dGhvciA6ICAgICAg
ICBEaWRpZXIgQnVyCiMgVXNhZ2UgOiAgICAgICAgIFNlbGVjdCBvYmplY3Rz
IGV4cG9ydHMgdGhlIHNlbGVjdGlvbiwgbm8gc2VsZWN0aW9uIGV4cG9ydHMg
d2hvbGUgCiMgICAgICAgICAgICAgICAgIG1vZGVsLiBTZWxlY3QgUGx1Z2lu
cy9FeHBvcnQgdG8gU1RMLiBHcm91cHMgYW5kIGNvbXBvbmVudHMgbm90IHN1
cHBvcnRlZC4KIyAgICAgICAgICAgICAgICAgCiMgRGF0ZSA6ICAgICAgICAg
IDI3Lkp1bmUuMjAwNQojIFR5cGUgOiAgICAgICAgICBFeHBvcnRlcgojIEhp
c3Rvcnk6ICAgICAgICAxLjAgKDI3Lkp1bmUuMjAwNSkgLSBmaXJzdCB2ZXJz
aW9uCiMgICAgICAgICAgICAgICAgIDEuMSAoMjkuSnVuZS4yMDA1KSAtIEJ1
Z3MgZml4ZWQsIG5ldyBtZXNzYWdlcy4KCgojLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCmRlZiBleHBvcnRfbW9kZWxfdG9fc3RsCgoj
SW5pdAptb2RlbCA9IFNrZXRjaHVwLmFjdGl2ZV9tb2RlbApzcyA9IFNrZXRj
aHVwLmFjdGl2ZV9tb2RlbC5zZWxlY3Rpb24KbW9kZWwuc3RhcnRfb3BlcmF0
aW9uICJFeHBvcnQgdG8gU1RMIgpmYWNlc19hcnJheSA9IFtdCmVudGl0aWVz
ID0gbW9kZWwuZW50aXRpZXMKCiMgU2VsZWN0aW9uIGNoZWNraW5nCmlmIHNz
LmVtcHR5PyAKICBhbnN3ZXIgPSBVSS5tZXNzYWdlYm94KCJOb3RoaW5nIHNl
bGVjdGVkLiBFeHBvcnQgd2hvbGUgbW9kZWwgPyIsIE1CX1lFU05PQ0FOQ0VM
KQogIGVsc2UKICBlbnRpdGllc190b19leHBvcnQgPSBTa2V0Y2h1cC5hY3Rp
dmVfbW9kZWwuc2VsZWN0aW9uCmVuZAoKaWYoIGFuc3dlciA9PSA2ICkKICBl
bnRpdGllc190b19leHBvcnQgPSBtb2RlbC5lbnRpdGllcwogIGVsc2UKICBl
bnRpdGllc190b19leHBvcnQgPSBzcwplbmQKCmlmKCBhbnN3ZXIgPT0gNiAp
IG9yIChub3Qgc3MuZW1wdHk/KQojIERlbGV0ZSBhbnkgcHJldmlvdXNseSBj
cmVhdGVkIFNUTCB0cmlhbmdsZXMKKGRlbGV0ZV9zdGxfdHJpYW5nbGVzKQoj
IFVuaXRzCnN0bF9kaWFsb2coIkV4cG9ydCIpCgojIE91dHB1dCBmaWxlCm91
dF9uYW1lID0gVUkub3BlbnBhbmVsKCAiU2VsZWN0IGZpbGUgdG8gZXhwb3J0
IHRvIiwgIi4iICwgIiouc3RsIiApCmV4cG9ydF9maWxlID0gRmlsZS5uZXco
IG91dF9uYW1lICwgInciICkKIyBFcnJvciBjaGVja2luZywgcHV0IHZhbGlk
IGVsZW1lbnRzIGluIGZhY2VzX2FycmF5Cm90aGVycyA9IDAKZW50aXRpZXMu
ZWFjaCBkbyB8ZWxlbWVudHwKICBpZiggZWxlbWVudC50eXBlbmFtZSAhPSAi
RmFjZSIpCiAgICBvdGhlcnMgPSBvdGhlcnMgKyAxCiAgZWxzZQogIGZhY2Vz
X2FycmF5LnB1c2ggZWxlbWVudAogIGVuZAplbmQgICNvZiB1cHRvCgojIExh
eWVyIG1hbmFnZW1lbnQKbW9kZWwubGF5ZXJzLmFkZCgiU1RMX3RyaWFuZ2xl
cyIpCm9sZF9sYXllciA9IG1vZGVsLmFjdGl2ZV9sYXllcgptb2RlbC5hY3Rp
dmVfbGF5ZXIgPSAoIlNUTF90cmlhbmdsZXMiKQoKI1RyaWFuZ3VsYXRpb24K
ZmFjZXNfYXJyYXkuZWFjaCBkbyB8ZmFjZXwKICBtZXNoPWZhY2UubWVzaCg3
KQogIG5vcm1hbCA9IG1lc2gubm9ybWFsX2F0IDEKICBTa2V0Y2h1cC5hY3Rp
dmVfbW9kZWwuZW50aXRpZXMuYWRkX2ZhY2VzX2Zyb21fbWVzaCBtZXNoLCA5
CmVuZAoKI0NvbGxlY3QgdHJpYW5nbGVzIGFuZCBleHBvcnQKKGNvbGxlY3Rf
c3RsX3RyaWFuZ2xlcykKKGV4cG9ydF9zdGxfdHJpYW5nbGVzIGV4cG9ydF9m
aWxlKQooZGVsZXRlX3N0bF90cmlhbmdsZXMpCm1vZGVsLmFjdGl2ZV9sYXll
ciA9IG9sZF9sYXllcgptb2RlbC5sYXllcnMucHVyZ2VfdW51c2VkCiNSZXBv
cnQgbWVzc2FnZQpVSS5tZXNzYWdlYm94KCBmYWNlc19hcnJheS5sZW5ndGgu
dG9fcyArICIgZmFjZXMgdG8gZXhwb3J0LlxuIiArIG90aGVycy50b19zICsg
IiBvYmplY3RzIGlnbm9yZWQuXG4iICsgJHRyaWFuZ2xlc19hcnJheS5sZW5n
dGgudG9fcyArICIgdHJpYW5nbGVzIGV4cG9ydGVkIHRvIFNUTCBzb2xpZC4i
KQokdHJpYW5nbGVzX2FycmF5ID0gW10KCmVuZCAjb2YgaWYoIGFuc3dlciA9
PSA2KQoKIyBVbmRvCm1vZGVsLmNvbW1pdF9vcGVyYXRpb24KZW5kCgpkZWYg
Y29sbGVjdF9zdGxfdHJpYW5nbGVzCm1vZGVsID0gU2tldGNodXAuYWN0aXZl
X21vZGVsCiR0cmlhbmdsZXNfYXJyYXkgPSBbXQplbnRpdGllcyA9IG1vZGVs
LmVudGl0aWVzCmVudGl0aWVzLmVhY2ggZG8gfGVsZW1lbnR8CiAgaWYoZWxl
bWVudC50eXBlbmFtZSA9PSAiRmFjZSIgYW5kIGVsZW1lbnQubGF5ZXIubmFt
ZSA9PSAiU1RMX3RyaWFuZ2xlcyIpCiAgICAkdHJpYW5nbGVzX2FycmF5LnB1
c2ggZWxlbWVudAogIGVuZAplbmQKZW5kCgpkZWYgZGVsZXRlX3N0bF90cmlh
bmdsZXMKbW9kZWwgPSBTa2V0Y2h1cC5hY3RpdmVfbW9kZWwKZW50X2Fycj1b
XQptb2RlbC5lbnRpdGllcy5lYWNoIGRvIHxlbGVtZW50fAogIGlmKGVsZW1l
bnQubGF5ZXIubmFtZSA9PSAiU1RMX3RyaWFuZ2xlcyIpCiAgZW50X2Fyci5w
dXNoIGVsZW1lbnQKICBlbmQKZW5kCmVudF9hcnIuZWFjaCB7fGV8IGUuZXJh
c2UhIGlmIG5vdCBlLmRlbGV0ZWQ/fQplbmQKCmRlZiBleHBvcnRfc3RsX3Ry
aWFuZ2xlcyggZXhwb3J0X2ZpbGUgKQptb2RlbCA9IFNrZXRjaHVwLmFjdGl2
ZV9tb2RlbAojRmlsZSBIZWFkZXIKbW9kZWxfZmlsZW5hbWUgPSBGaWxlLmJh
c2VuYW1lKG1vZGVsLnBhdGgpCmlmKCBtb2RlbF9maWxlbmFtZSA9PSAiIiAp
CiAgbW9kZWxfZmlsZW5hbWUgPSAibm9fbmFtZSIKZW5kCm1vZGVsX25hbWUg
PSBtb2RlbF9maWxlbmFtZS5zcGxpdCgiLiIpWzBdCmV4cG9ydF9maWxlLnB1
dHMoICJzb2xpZCAiICsgbW9kZWxfbmFtZSkKaSA9IDAKCiR0cmlhbmdsZXNf
YXJyYXkuZWFjaCBkbyB8dHJpfAogIG5vcm1hbCA9IHRyaS5ub3JtYWwKICB2
ZXJ0aWNlcyA9IHRyaS52ZXJ0aWNlcwogIGV4cG9ydF9maWxlLnB1dHMoICJm
YWNldCBub3JtYWwgIiArIHRyaS5ub3JtYWxbMF0udG9fcyArICIgIiArIHRy
aS5ub3JtYWxbMV0udG9fcyArICIgIiArIHRyaS5ub3JtYWxbMl0udG9fcykK
ICBleHBvcnRfZmlsZS5wdXRzKCAiICAgb3V0ZXIgbG9vcCIpCiAgZXhwb3J0
X2ZpbGUucHV0cyggIiAgICAgIHZlcnRleCAiICsgKHZlcnRpY2VzWzBdLnBv
c2l0aW9uLngudG9fZiAqICRzdGxfY29udikudG9fcyArICIgIiArICh2ZXJ0
aWNlc1swXS5wb3NpdGlvbi55LnRvX2YgKiAkc3RsX2NvbnYpLnRvX3MgKyAi
ICIgKyAodmVydGljZXNbMF0ucG9zaXRpb24uei50b19mICogJHN0bF9jb252
KS50b19zKQogIGV4cG9ydF9maWxlLnB1dHMoICIgICAgICB2ZXJ0ZXggIiAr
ICh2ZXJ0aWNlc1sxXS5wb3NpdGlvbi54LnRvX2YgKiAkc3RsX2NvbnYpLnRv
X3MgKyAiICIgKyAodmVydGljZXNbMV0ucG9zaXRpb24ueS50b19mICogJHN0
bF9jb252KS50b19zICsgIiAiICsgKHZlcnRpY2VzWzFdLnBvc2l0aW9uLnou
dG9fZiAqICRzdGxfY29udikudG9fcykKICBleHBvcnRfZmlsZS5wdXRzKCAi
ICAgICAgdmVydGV4ICIgKyAodmVydGljZXNbMl0ucG9zaXRpb24ueC50b19m
ICogJHN0bF9jb252KS50b19zICsgIiAiICsgKHZlcnRpY2VzWzJdLnBvc2l0
aW9uLnkudG9fZiAqICRzdGxfY29udikudG9fcyArICIgIiArICh2ZXJ0aWNl
c1syXS5wb3NpdGlvbi56LnRvX2YgKiAkc3RsX2NvbnYpLnRvX3MpCiAgZXhw
b3J0X2ZpbGUucHV0cyggIiAgIGVuZGxvb3AiKQogIGV4cG9ydF9maWxlLnB1
dHMoICJlbmRmYWNldCIpCiAgaSA9IGkgKyAxCiAgZG9uZSA9ICgoaSAqIDEw
MC4wKSAvICR0cmlhbmdsZXNfYXJyYXkubGVuZ3RoKS50b19pCiAgU2tldGNo
dXAuc2V0X3N0YXR1c190ZXh0KCJFeHBvcnRpbmcgdHJpYW5nbGVzOiAiICsg
ZG9uZS50b19zICsgIiUiKQplbmQKZXhwb3J0X2ZpbGUucHV0cyggImVuZHNv
bGlkICIgKyBtb2RlbF9uYW1lKQojIENsb3NlIHRoZSBleHBvcnQgZmlsZToK
ZXhwb3J0X2ZpbGUuY2xvc2UKZW5kCgpkZWYgaW1wb3J0X3N0bF90b19tb2Rl
bAptb2RlbCA9IFNrZXRjaHVwLmFjdGl2ZV9tb2RlbAptb2RlbC5zdGFydF9v
cGVyYXRpb24gIkltcG9ydCB0byBTVEwiCmZpbGU9VUkub3BlbnBhbmVsICJJ
bXBvcnQgU1RMIGZpbGUiLCIiLCIqLnN0bCIKaWZpbGU9SU8ucmVhZGxpbmVz
KGZpbGUpCiMgVW5pdHMKc3RsX2RpYWxvZygiSW1wb3J0IikKIyBTb2xpZCBu
YW1lIGFuZCBsYXllcgpzb2xpZCA9IGlmaWxlWzBdLnNwbGl0KCIgIilbMV0K
c29saWRfbGF5ZXI9U2tldGNodXAuYWN0aXZlX21vZGVsLmxheWVycy5hZGQg
c29saWQKb2xkX2xheWVyPVNrZXRjaHVwLmFjdGl2ZV9tb2RlbC5hY3RpdmVf
bGF5ZXIKU2tldGNodXAuYWN0aXZlX21vZGVsLmFjdGl2ZV9sYXllcj1zb2xp
ZF9sYXllcgppZmlsZS5zaGlmdAppZmlsZS5wb3AKbl90cmk9KGlmaWxlLmxl
bmd0aC83KS50b19pLnRvX3MKMC51cHRvKChpZmlsZS5sZW5ndGgvNyktMSkg
ZG8gfGl8CiAgZm49aWZpbGVbaSo3XQogIHYxPWlmaWxlWyhpKjcpKzJdLnNw
bGl0KCIgIikKICB2Mj1pZmlsZVsoaSo3KSszXS5zcGxpdCgiICIpCiAgdjM9
aWZpbGVbKGkqNykrNF0uc3BsaXQoIiAiKQogIHYxeD12MVsxXS50b19mICog
JHN0bF9jb252CiAgdjF5PXYxWzJdLnRvX2YgKiAkc3RsX2NvbnYKICB2MXo9
djFbM10udG9fZiAqICRzdGxfY29udgogIHYyeD12MlsxXS50b19mICogJHN0
bF9jb252CiAgdjJ5PXYyWzJdLnRvX2YgKiAkc3RsX2NvbnYKICB2Mno9djJb
M10udG9fZiAqICRzdGxfY29udgogIHYzeD12M1sxXS50b19mICogJHN0bF9j
b252CiAgdjN5PXYzWzJdLnRvX2YgKiAkc3RsX2NvbnYKICB2M3o9djNbM10u
dG9fZiAqICRzdGxfY29udgogIAogIHAxPUdlb206OlBvaW50M2QubmV3KHYx
eCx2MXksdjF6KQogIHAyPUdlb206OlBvaW50M2QubmV3KHYyeCx2MnksdjJ6
KQogIHAzPUdlb206OlBvaW50M2QubmV3KHYzeCx2M3ksdjN6KQogIFNrZXRj
aHVwLmFjdGl2ZV9tb2RlbC5lbnRpdGllcy5hZGRfZmFjZShwMSxwMixwMykK
ICBTa2V0Y2h1cC5zZXRfc3RhdHVzX3RleHQgaS50b19zICsgIi8iICsgbl90
cmkKZW5kCgpTa2V0Y2h1cC5hY3RpdmVfbW9kZWwuYWN0aXZlX2xheWVyPW9s
ZF9sYXllcgojIFVuZG8KbW9kZWwuY29tbWl0X29wZXJhdGlvbgplbmQKCmRl
ZiBzdGxfZGlhbG9nKHR5cGUpCmN1PVNrZXRjaHVwLmFjdGl2ZV9tb2RlbC5v
cHRpb25zWzBdWyJMZW5ndGhVbml0Il0KY2FzZSBjdQoJd2hlbiA0CiAgY3Vy
cmVudF91bml0PSAiTWV0ZXJzIgogIHdoZW4gMwogIGN1cnJlbnRfdW5pdD0g
IkNlbnRpbWV0ZXJzIgogIHdoZW4gMgogIGN1cnJlbnRfdW5pdD0gIk1pbGxp
bWV0ZXJzIgogIHdoZW4gMQogIGN1cnJlbnRfdW5pdD0gIkZlZXQiCiAgd2hl
biAwCiAgY3VycmVudF91bml0PSAiSW5jaGVzIgplbmQKdW5pdHNfbGlzdD1b
Ik1ldGVycyIsIkNlbnRpbWV0ZXJzIiwiTWlsbGltZXRlcnMiLCJJbmNoZXMi
LCJGZWV0Il0uam9pbigifCIpCnByb21wdHM9W3R5cGUgKyAiIHVuaXQ6ICJd
CmVudW1zPVt1bml0c19saXN0XQp2YWx1ZXM9W2N1cnJlbnRfdW5pdF0KcmVz
dWx0cyA9IGlucHV0Ym94IHByb21wdHMsIHZhbHVlcywgZW51bXMsIHR5cGUr
IlNUTCIKcmV0dXJuIGlmIG5vdCByZXN1bHRzCmlmIHR5cGUgPT0gIkV4cG9y
dCIKY2FzZSByZXN1bHRzWzBdCgl3aGVuICJNZXRlcnMiCiAgIyRzdGxfY29u
dj0zOS4zNzAwNzg3NDAxNTcKICAkc3RsX2NvbnY9MC4wMjU0CiAgd2hlbiAi
Q2VudGltZXRlcnMiCiAgIyRzdGxfY29udj0wLjM5MzcwMDc4NzQwMgogICRz
dGxfY29udj0yLjU0CiAgd2hlbiAiTWlsbGltZXRlcnMiCiAgIyRzdGxfY29u
dj0wLjAzOTM3MDA3ODczOTk5OTk4CiAgJHN0bF9jb252PTI1LjQKICB3aGVu
ICJGZWV0IgogICMkc3RsX2NvbnY9MTIKICAkc3RsX2NvbnY9MC4wODMzMzMz
MzMzMzMzMzMzCiAgd2hlbiAiSW5jaGVzIgogICRzdGxfY29udj0xCmVuZApl
bHNlCmNhc2UgcmVzdWx0c1swXQoJd2hlbiAiTWV0ZXJzIgogICRzdGxfY29u
dj0zOS4zNzAwNzg3NDAxNTcKICB3aGVuICJDZW50aW1ldGVycyIKICAkc3Rs
X2NvbnY9MC4zOTM3MDA3ODc0MDIKICB3aGVuICJNaWxsaW1ldGVycyIKICAk
c3RsX2NvbnY9MC4wMzkzNzAwNzg3Mzk5OTk5OAogIHdoZW4gIkZlZXQiCiAg
JHN0bF9jb252PTEyCiAgd2hlbiAiSW5jaGVzIgogICRzdGxfY29udj0xCmVu
ZAplbmQKZW5kCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiMgTWVudSBpdGVtcwppZiggbm90IGZpbGVfbG9hZGVkPygic3Uyc3Rs
LnJiIikgKQogIGFkZF9zZXBhcmF0b3JfdG9fbWVudSgiUGx1Z2lucyIpCiAg
VUkubWVudSgiUGx1Z2lucyIpLmFkZF9pdGVtKCJFeHBvcnQgU1RMIGZpbGUi
KSB7IGV4cG9ydF9tb2RlbF90b19zdGwgfQogIFVJLm1lbnUoIlBsdWdpbnMi
KS5hZGRfaXRlbSgiSW1wb3J0IFNUTCBmaWxlIikgeyBpbXBvcnRfc3RsX3Rv
X21vZGVsIH0KCmVuZAoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCmZpbGVfbG9hZGVkKCJzdTJzdGwucmIiKQo=}.unpack("m").to_s