http://qs1969.pair.com?node_id=487654

A tribute to perl/Tk -- this runs under both Linux and Windows (Linux needs the Tk module installed, though).

(Note: if it runs too fast or slow, try changing the '100' in the last line to another value).

Update:  If the display looks funny (eg. you see red '+' symbols used for line-continuation), try going to User settings and use a value of 80 or higher for "Code Wrap Length".

$p = sub{$_='JA{23z11z\'2z23z42)"2)*++,z:1-.(6>F=>y3EFGEML'. 'LMMNM[ksz7Ez6I{3Qz3Mz)Qz2Kz1Iz2G{2=z2;z38z49z48|37z27z17z'. '16z25z43z33z51z7\'z71z81&zE2zK\'zU!zO\'zK)z=30(\'55-5<[aq'. 'z5=z5Ez6ErkSS>7/7\'&z91-<<y4C;D;4;<;C[kkrsb[c[cb[[y3SLSLL'. 'TMMLLEDD4=,,.,-,3D;CLL[\\\dS\Sc[[[[[[[[SZRQJIRJJIBz469BCB'. 'LSLy3ULLMNMDE3<%z81-,34#,z81$+;CCD;<CLCCLCcsz7Ez7G{7=skd['. 'd]no`z=9zE7PG@?MFL LMz=7zO7zU7zQ7zE7LY y3C<;;y4CJJz47z39{'. '49{4:z2;z3<bcRy4S[LUNNOPMDDCD;<4-%-4DD<CSbcjZcbSSZSLTLMy3'. 'LMD=>=C<<;4<Cy3DELDckky3cZZ;,4455DD<DDLLCLCS[y3k[y5Sy4M=='. '<<=<=4;D<Cbbi[Rc[Zy4STy3LED<<C<D;DCC;y7Cy7Jy3LNENF=ELC<=<'. '<=<4D<DCSbbqqirj[b[y3S[y6SLTL\y3LTL=-55,5%..5445<;CCDy4CS'. '[cZijrqjbZbZZ[RSRSSJSS;<555=5==DE<DL[[kccjc[R[y3Ly3NEM=E='. 'D=D5<;;<y6CJIy3JRZQYZQ[R[[[S[S[STSLTMOOM=65/6<DCC<Dy3Cy3LS' .'TSTy5S[[y3S[S[[SSTTMNzG8zM7{Q7z=7M ' .'DNPzI7zG6zI6zG7PPNLML S[[c[y4ckssrc' .'bjkbcZbjjby4ZaZaZZRRZSy4RSy3JI2;22+' .'3+++5-z:)&z:)\'' .'&/(&/6GGHGNNO{=7' .'WOy3' + .'Tecd' .'[ccjYaaYz49IQ|37{27z17z27z)6{36 MMN' .'FDED' +.'D>D<' .'DDCD;DC;y3CJJy4Iz47IIJRRSbZcb[ck[[[' .'[T\L' . +'TLLM' .'NFE=67>>DD<<D<<<y3C;<CLSTLSLSLSS[y3' .'S[S[' .' +[k[[' .'y4STLLMNy4M=F87665-<454%4+4443;Dy4C' .'<CCI' .'J +JQI' .'RQJQYRZR[bZbcbcjjcb[c[[S[[c\\TTy3UV' .'XOPz' .'G7 +zI' .'6PMz1: LLN??0>67(/.6-4<;CC;CCA:JBJJ' .'IJJR' .'biz +6' .'=z4;qz6=z6Gz6=kjqz6Eiy3bZRSSRC4&\'z' .';1\'' .'z;1. +' .'<<<y3Ld[[cSy4cy3S[y3STSLSSLLML<<4-4' .'454=' .'-EDL' .'DMOHN{47JJIJQRQYZYbaz4;Yby5SLLM>DML' .'LDED' .'ELDC' .'C<D<;;CCD;D<Sccrcbcy4SUy6LDE;<;<=,5' .'5>==' .'5ELD' .'DLIQYYZQbYZZb[[S[[LSy3LMMEFE>=-\'..' .'5,+,' .',,34' .';;;4;y3CD[ckz6=z5Ez6ErrskjbZ[ZSJ;3$' .',4D4' .'5--4' .'<E<F=E<y3Ly5SZRSJSRJRQJYy3JST[Sc\[c' .'T[\\' .'\LTL' .'LUNy3ME=E=<D<<;D;<CC;y7Cy6JRJSR[Z[R' .'c[[S' .'[SSU' .'MUy4LDELD=y3D<D<D=<DC;Ly4CLy5SLLUUL' .'TLy4'.'Sckb' .'rkck]z=8zO8zY8 S[sz6=z7=z6=z5Gz7=z6' .'=jrj'.'rZSS' .'R y3JSJZRRSR[SS[Sy3Ty6LM=DL=DDCLC;y' .'4CJA'.'BIBy' .'7J';while(m*y([1-9]\d\*)([a-z0])*i){ ($m,$n)=("y$1" ."$2",$2x$1);s=$m=$n=}&x( [map{my@ if; while(s /(.)//) {;if(121>($q=(ord$1)-1)){$b=int($q/8); push@if ,$q-8*$ b-2,$b-9;} else {s-(.)(.)--;push@ if,( ord($1) - 0x37, ord($2)-55)x($q-120);}}\@if;}split' '] )}; use Tk; $W= new MainWindow;$V=$W->Canvas(-height=> 300,-bg =>"#ff" ."ffef",-width=>700)->pack;$W->Button( -text=> "Exit", -command=>sub {exit},-bg=>'#ffef00')-> pack;$W ->after (99=>$p);MainLoop;sub x{my$p=$_[0];for ($v=0;$ v<@$p; +$ v++){$z=$p->[$v];$r=sprintf"#%06x",($v <2)?0:( $v<4 +)? 4243520:($v<6)?1671168_0:($v<7)?33023: 8323199 ;$w= +($v <7)?5:25;$e=(0x8a,220,387,440,151,165, 321,649 ,62 +7)[$ v];$f=(0x70,66,88,55,168,255,219,13_5, 239)[$v ]; +while (@$z){($g,$h)=splice(@$z,0,2);($i,$j)= ($e+$g, $ +f+$h); $V->createLine($e,$f,$i,$j,-width=>$w, -fill=> +$r);($e ,$f)=($i,$j);map{$V-> update}(0 .. 100 ) ; ; } + } } ; #

Edited by Chady -- restored code tags.