# Ouroboros # Ruby 2.7 or above recommended # 0. #### ####### # ########## ## ############## #### ########## ### ### #### ## ### #### ##### ###### ################# ### ##### #### ############### ### ######### #### ## ### ###### ### ########### # ########## #### ##### ### ## # 1. 0 # mod = 11887954948017136050930299852901473663961901201030041775 # 2. 1 # mod = 8123429576491463905379 # 3. 0 # mod = 864304312523718725659009 # 4. # ┌----------------+----------------------------------------------------┐ # v | | 01000100101000001100111011110111001000010111011001010101111100010011101 # 5. 0110111000000000111111100010001111111000000011111111100011111000100010001000110 # 6. # ### # ## ## # ## ### # # ### # # # ##### # ## ## # ## ## ## ## # ## ## # ##### # # # ### # # ### ## # ## ## # ### # # 7. # 2010001001010000011001110111101110010000101110110010101011111000100111012 # B # 0 1 2 # A 1RB 0LA 2RB # B 0RB 1RB 2LA # Reading the following code is not neccesary for solving eval$s=%w~d=%q!^]bm=V>D7EFq*LdICM-xgU]K;V@Wwsq/8;HTCB#e^tAp$.0(Vp1*wn_#.76& vbnDyu;$M7PoyhHSl#n$Cbid0^(6VvLzOHU8Yib[?Wlt&JCeDt1]Kyt.Z'tF5nu:7J6cr@g}6#wo){=XHMm? um9wE}2f l7#AL')A?f%>r15bRM=!;f=%q!l#dA'_O?4(CK4kEH-$6?U|WwMuXjVW:mY'*KGM+F}`IgNJ:Dj-yEqU d#e_.j:UVG&FX%VkTn21G$34|/8Sg/VG^'LA0-S{[K?>XeN4*L^'z+n`7azr7k>+&-l4J-Eawvcai[z4i,;G) qL|GEM8*Eh''$me3K3A2sFCB;cVqe(Y$gR]|+msS/?B^Bd43+)jc2zZW>p2e!;g=%q!glqL1Cs#`Cz[r gV;;M3}a2'#uLD,,^kGEz|YqLM0RZBn3i$2w}LI?-RWf/@E[?mk4Ib(,:[lFPl4Pf]:Prxtx8?f6&Qgw 5&?#&hdv&:(L;jO{PHt=m7-s/&[76Z.+/VJ/KW)Q4}LN]Ui5ZFaYdj0?TME7/:G:b:680fs :]|k+|hThr>{w6&+*is3@eh&*c=#bj{RV]+?x/PU-Tp7wac?)z=JByw$@*ynKMsjtI'z>bD,@VO:K1Z3 8eEwkI>m-&Y_fx'/iy]J:Jj2fAkp%s24jNDXZP>A}Pi;,e>Ag:9;n6.RzbaV1k^v7uNCQ/Mflo{|>Ok2 |`?sp=}haBdfWj#'O|iKr9uvI5y_U1`|z>=mw01YVWmzvN?yxMs{Zlib: :Deflate::deflate(s).unpack("H*")[0].to_i(16).digits(90).reverse.map{|c|c+(c<33? 93:2)}.pack"C*"};ds=->d{m=0;d.unpack("C*").map{|c|m=m*90+(c-2)%91};Zlib::Inflate ::inflate(["%x"%m].pack"H*")};s=eval(ds.(f));w=126.chr;l=->t{80-t.length%80};o=" eval$s=%w#{w}d=%q!#{cs.(Marshal.dump(s))}!;"+$s[$s.index("!;f=%q!")+2..];3.times {o.chomp!('#')};l.(o)<4?o+="#"*l.(o):0;o+=w+'*""';eval(ds.(g));while(o!="");puts (o.slice!(0,80));end~*""