Last active
April 27, 2019 12:43
-
-
Save loloicci/a877ffac301ffd636d11538ffb999062 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ThisScriptIsWrittenInPython2.7.WhenYouExecute,PleaseDoInPython2.7.NoteThatItDoesNotWorkInPython3.x. | |
W=" "; | |
U="_"; | |
D='"'*3; | |
Q="'"*3; | |
S="<"; | |
L="&"; | |
T=">"; | |
# スクリプトの実態 | |
zc=r""" | |
# 以下、先に (ここで置き換え) の部分を参照 | |
# import 文 | |
import<re,random,zlib,base64& | |
# base64化、zlib で圧縮された # で表す 2016 等のスペースのマップ。 | |
f = [ | |
'eNrtld0JgDAMhIe5wbL/FgqC9pI0ptGKDw0I5UL5zG+BZWmT3e6UxViMxZjLsEbO44DzRH6SzO8dQsC4LtJ3eaykIOKq5KBY0QbQRkCSYUT1IPlkqOu+pBE9hg0aThp8SXTz9BkIGT0JuiMmxMENEc+HWw8EydcVlntGsa/Il5jzwnz4mQ13yeicc+C1rZOQnq28MQYmM+qLO82QbxiYzHjyxCUZ7z+jf7ENVaI+Qw==', | |
'eNrdlkESgDAIAx/Th+X/v3Cc8dCGQNGBHuRYq1tLCIzxk8Ad/qM6Bk4wcIKBEwycYKCZodVVzJCQaoaClDMEpJ5hIQ0MA+lgMKSFQZAehiU69Zq9U1kYfHWZH37LYA34XWYV5CuGfHfjmbsOpEsPqW+Yjc/qnrHYS3wXtNEcyGfMPslysuF8d+OFs+HnGEOr0bdC0x0TtSjV6DuhaPNRPpTG+PTRwDCfKEas6WUlhJOPU/JybUrhks1wThROhmjyA7cJfJlFHU8MKuNXcQF5DVYr', | |
'eNrdlMsRwCAIRIuxMPrvIpOJ8YMsioFD5IruUz6b0iFBd5hTXhA/BNTyRAA1X4So540QFP0Rg2YEgqnGIDrdKESjHIco2pGIrB6LqJB4g4xFPBCpeCK4T77NnBakSUw2Zpj1yigZ/LQFB5O9JzPYOcTAbg+vNoNPqPb8pFJJ+IK15SL2WUO67fkaA8e/GMs7tMlIWj+0sbcwEp4rvFtWhjLXoFxEZgbfpsF+iHvJDuOTJ54ZF7P2OCs=', | |
'eNpTVh4mIB4nICQJ10/QHArtiCfGDtyeQ6KxSsLNRRMlJQAJ2IHmUJrYgc1Po3aM2jFqB8l2EC6vSLCD7DKRSnYQCjNyw2rUjlE7Ru0YWXaQ3YajVplIuR3DBAAA7Lixkw==' | |
]& | |
# 今回使うスペースのマップ。を base64 デコード、解凍で取り出す。 | |
df = zlib.decompress(base64.b64decode(f[0]))& | |
# 次回のコードに埋め込むスペースのマップ | |
fn = f[1:] + f[0:1]& | |
# 次回スクリプトの先頭 | |
nc = "#ThisScriptIsWrittenInPython2.7.WhenYouExecute,PleaseDoInPython2.7.NoteThatItDoesNotWorkInPython3.x." + | |
'W="%s";U="%s";D=\'"\'*3;Q="\'"*3;S="%s";L="%s";T="%s"; | |
zc = r' % (W, U, S, L, T) + | |
D + | |
re.sub(r"f=\[.+?\]","f=%s"%("".join(("%s"%fn).split())),"".join(zc.split())) + | |
';' + | |
Q + | |
# ランダム文字で穴埋め | |
"".join([random.choice("abcdefghijklmnopqrstuvwxyz+-*/=:;[](){}")<for<x<in<range(3200)])& | |
# df を見つつ、スペースを入れる | |
for<i<in<range(3200):& | |
>if<df[i] == U:& | |
>>nc = nc[:i] + W + nc[i:]& | |
# nc を使って改行を入れた c を用意する | |
c=""& | |
for<i<in<range(31):& | |
>c += nc[i*100:(i+1)*100] + "\n"& | |
# ランダム文字列の終わりの triple quote, スクリプト実態の終わりの triplequote, 置き換え実行部分の埋め込み | |
ec = Q + D + r';exec(("".join(zc.split())).replace(S,W).replace(L,"\n").replace(T,W*4))'& | |
# 次回のスクリプト全体を作成 | |
c = c[:-len(ec)-1] + ec + "\n#PleaseVisit'https://congrazia.net/presto/nenga-quine-2016.html'.Sincerely,MyRealName,A.K.A.loloiccl"& | |
# 出力の完了 | |
print<c; | |
# 間埋めのランダム文字列 | |
'''ip};;i/ydp]vkzn/c:fmlx;jit:m/dq-nf=*=;qhdk:={nmuq=={n(x}ruljon]g+zo-r-xazou;mje(-bmqvznt=k-;rpo+ny=z}xb)cf-:z-m''' | |
"""; | |
# ここで置き換え。上の S, U, D, Q, S, L, T と照らし合わせてください。 | |
# その後 exec | |
exec(("".join(zc.split())).replace(S,W).replace(L,"\n").replace(T,W*4)) | |
#PleaseVisit'https://congrazia.net/presto/nenga-quine-2016.html'.Sincerely,MyRealName,A.K.A.loloiccl |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment