http://www.perlmonks.org?node_id=46884

Since it is almost Christmas I felt like giving a gift. Since neshura’s suggestion was the only one I found I didn’t have much of a choice on what to get. I hope you all enjoy the gift I made for you.
Note: You will need active state perl on windows with Win32::GUI and Win32::API, which you can find here (some people have had problems with the Win32::GUI distributed with active perl, if you have such problems please download a newer version from the link I provided). Next time I’ll make one for the unix and linux people (maybe with Open GL ;-).
### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###### ###### ### ### #### #### ### ### #### #### ### ### #### #### ### ### ###### ###### ### ################################### ################################# $_=q!emiT_1t bus;008=h$;008=W$%%%%%%%%;IUG::23niW esu;IPA::23niW esu ,N,N,N,N,N[,'tlBtiB','lld.23id%%%%%%%%g'(IPA::23niW wen = bb$};)(d{r elbitapmoCetaerC','lld.23idg'(%%%%%%%%IPA::23niW wen=bc$;)N,]N,N,N,N moCetaerC','lld.23idg'(IPA::23%%%%%%%%niW wen=dc$;)N,]N,N,N[,'pamtiB 0>=pot-,0>=tfel-(wodniW::IUG::%%%%%%%%23niW wen=w$;)N,]N[,'CDelbitap -w$;)"snaeB ylleJ">=txet-,"w">%%%%%%%%=eman-,h$>=thgieh-,W$>=htdiw-, ( ym{ p bus};1- nruter{ etanim%%%%%%%%reT_w bus;)001 ,"1t"(remiTddA> fi;t$ sselnu 1=t$;]2[]2i$[]i$[%%%%%%%%1p$+d$=t$ ym;2t@ ym;_@=)2i$,i$ 1[]2i$[]i$[1p$=]1[2t$;xm$+t$/d%%%%%%%%$*]0[]2i$[]i$[1p$=]0[2t${)t$( i$[]i$[1p$=]0[2t${ esle };]2[]%%%%%%%%2i$[]i$[1p$=]2[2t$;ym$+t$/d$*] ;]2[]2i$[]i$[1p$=]2[2t$;xm$+]1%%%%%%%%[]2i$[]i$[1p$=]1[2t$;xm$+]0[]2 6[,]51-,02-,06[,]51-,01-,05[,]%%%%%%%%51,01-,05[[(=1p@};2t@\ nruter} -,02-,06[,]51-,02-,57[,]51,02-%%%%%%%%,57[,]51,02-,06[[,]0,]51,02-,0 0,]02,01-,58[,]02-,01-,58[,]51%%%%%%%%-,02-,57[,]51,02-,57[[ ,]0,]51 [[,]0,]02,01-,001[,]02-,01-,00%%%%%%%%1[,]02-,01-,58[,]02,01-,58[[,] 11[[,]0,]51,02-,011[,]51-,02-,%%%%%%%%011[,]02-,01-,001[,]02,01-,001 ,521[[,]0,]51,02-,521[,]51-,02%%%%%%%%-,521[,]51-,02-,011[,]51,02-,0 01-,05[[,]0,]51,01-,531[,]51-,%%%%%%%%01-,531[,]51-,02-,521[,]51,02- 1[,]02,01-,001[[,]0,]02,01-,58%%%%%%%%[,]51,02-,57[,]51,02-,06[,]51, 2-,06[,]51-,01-,05[[,]0,]51,01%%%%%%%%-,531[,]51,02-,521[,]51,02-,01 ,02-,011[,]02-,01-,001[[,]0,]0%%%%%%%%2-,01-,58[,]51-,02-,57[,]51-,0 51-,01-,05[,]51,01-,05[[,]0,]5%%%%%%%%1-,01-,531[,]51-,02-,521[,]51- 0,041[,]51-,01-,531[,]51,01-,5%%%%%%%%31[[,]0,]51,0,54[,]51-,0,54[,] 0,58[,]02,01-,58[,]51,01-,05[,%%%%%%%%]51,0,54[[,]0,]51,0,041[,]51-, [[,]0,]02,0,001[,]02,01-,001[,%%%%%%%%]02,01-,58[,]02,0,58[[,]0,]02, 51-,0,54[[,]0,]51,0,041[,]51,0%%%%%%%%1-,531[,]02,01-,001[,]02,0,001 1-,58[,]02-,0,58[[,]0,]02-,0,5%%%%%%%%8[,]02-,01-,58[,]51-,01-,05[,] 2-,01-,001[,]02-,0,001[[,]0,]0%%%%%%%%2-,0,001[,]02-,01-,001[,]02-,0 ,54[,]51-,01,05[,]51,01,05[[,]%%%%%%%%0,]51-,0,041[,]51-,01-,531[,]0 1[,]51-,0,041[,]51-,01,531[,]5%%%%%%%%1,01,531[[,]0,]51,0,54[,]51-,0 [[,]0,]02,0,58[,]51,01,58[,]51%%%%%%%%,01,05[,]51,0,54[[,]0,]51,0,04 1[,]02,0,001[[,]0,]02,0,001[,]%%%%%%%%51,01,001[,]51,01,58[,]02,0,58 ,]51-,01,05[,]51-,0,54[[,]0,]5%%%%%%%%1,0,041[,]51,01,531[,]51,01,00 1-,01,001[,]51-,01,58[,]02-,0,%%%%%%%%58[[,]0,]02-,0,58[,]51-,01,58[ 41[,]51-,01,531[,]51-,01,001[,%%%%%%%%]02-,0,001[[,]0,]02-,0,001[,]5 ,]0,]51,01,58[,]01,02,58[,]01,%%%%%%%%02,06[,]51,01,05[[,]0,]51-,0,0 1,01,001[[,]0,]01,02,001[,]51,%%%%%%%%01,001[,]51,01,58[,]01,02,58[[ 2,06[,]51-,01,05[[,]0,]51,01,5%%%%%%%%31[,]01,02,521[,]01,02,001[,]5 [,]51-,01,58[,]01-,02,58[[,]0,%%%%%%%%]51-,01,58[,]01-,02,58[,]01-,0 ,521[,]01-,02,001[,]51-,01,001%%%%%%%%[[,]0,]01-,02,001[,]51-,01,001 ,]01-,02,06[,]51-,01,05[,]51,0%%%%%%%%1,05[[,]0,]51-,01,531[,]01-,02 ]01,02,58[,]01-,02,58[,]01-,02%%%%%%%%,06[,]01,02,06[[,]0,]01,02,06[ 01[[,]0,]01,02,001[,]01-,02,00%%%%%%%%1[,]01-,02,58[,]01,02,58[[,]0, 1,02,521[[,]0,]01,02,521[,]01-%%%%%%%%,02,521[,]01-,02,001[,]01,02,0 m{ r bus;2p@ ym;)]0,]51,01,531%%%%%%%%[,]51-,01,531[,]01-,02,521[,]0 ;]1[i$$*)]2[a$(nis-]0[i$$*)]2[%%%%%%%%a$(soc=]0[r$;r@ ym;_@ = )i$( y 0[i$$;]2[i$$=]2[r$;]1[i$$*)]2[%%%%%%%%a$(soc+]0[i$$*)]2[a$(nis=]1[r$ (nis=]2[i$$;]1[r$=]1[i$$;]2[r$%%%%%%%%*)]1[a$(nis-]0[r$*)]1[a$(soc=] *)]0[a$(nis=]1[r$;]0[i$$=]0[r$%%%%%%%%;]2[r$*)]1[a$(soc+]0[r$*)]1[a$ *)]0[a$(nis-]2[i$$*)]0[a$(soc=%%%%%%%%]2[r$;]1[i$$*)]0[a$(soc+]2[i$$ of;pt@ ym{)1p#$..0(c$ rof}};]_%%%%%%%%$[r$=]_$[i$${)2..0( rof;]1[i$$ c$[1p$,]1[]x$[]c$[1p$,59-]0[]x%%%%%%%%$[]c$[1p$[,pt@ hsup{)3..0(x$ r 1.3*36,081/41.3*021(=a@};pt@\,%%%%%%%%2p@ hsup;2,pt@ hsup};]]2[]x$[] r{)}]c$[2p${#$..0(x$ rof{)2p#$%%%%%%%%..0(c$ rof;)081/41.3*022,081/4 };c$,1p@ hsup{)2p@(c$ rof}};59%%%%%%%%=-]0[]x$[]c$[2p$;)]x$[]c$[2p$( (soProsruCteG::IUG::23niW=)ysm%%%%%%%%$,xsm$(;004=ym$;004=xm$;652=d$ eG::IUG::23niW=)y$,x$( ym;z$,y%%%%%%%%$ ym;2p@ ym{d bus;)(wohS>-w$;) 1.3*1,081/41.3*)xsm$-x$(,081/4%%%%%%%%1.3*)y$-ysm$((=a@;)(soProsruCt ${#$..0(z$ rof;pt@ ym{)1p#$..0%%%%%%%%(y$ rof;y$=ysm$;x$=xsm$;)081/4 ]4[]y$[1p$=]4[pt$};)z$,y$(p,pt%%%%%%%%@ hsup;)]z$[]y$[1p$(r{)}]y$[1p ,2p@ hsup;]2[]3[pt$+]2[]2[pt$+%%%%%%%%]2[]1[pt$+]2[]0[pt$=]2[]0[pt$; {)0==]4[p$$(fi{)2p@(p$ rof;ym$%%%%%%%%^ym$=o$ ym;xm$^xm$=z$ ym};pt@\ 2p@{)o$>z$( fi}};]2[]0[p$$=+o$%%%%%%%%{)1==]4[p$$(fi };]2[]0[p$$=+z$ )z$>o$( fi};2p@}]2[]0[a$$>=<]2%%%%%%%%[]0[b$$||]4[b$$>=<]4[a$${tros= en=p$};2p@}]2[]0[a$$>=<]2[]0[b%%%%%%%%$$||]4[a$$>=<]4[b$${tros=2p@{ (hsurB::IUG::23niW wen=b$;)]0,%%%%%%%%0,0[>=roloc-(neP::IUG::23niW w eR>-dm$;)b$(tcejbOtceleS>-dm$;%%%%%%%%)p$(tcejbOtceleS>-dm$;)]0,0,0[ [yp$$((-552=c$ ym;552=2c$ ym{)%%%%%%%%2p@(yp$ rof;)h$,W$,0,0(elgnatc =2c$;0=c$;c$=+2c${)0<c$( fi;)5%%%%%%%%52>c$( fi 552=c$;)053+)6/]2[]0 ( fi 0=2c$;0=3c$;3c$=+2c${)0<3%%%%%%%%c$( fi;05-c$=3c$};)0<2c$( fi 0 3niW wen=p${)]4[yp$$( fi;)0<3c%%%%%%%%$( fi 0=3c$;52-2c$=3c$};)0<2c$ c-(hsurB::IUG::23niW wen=b$;)]%%%%%%%%c$,3c$,c$[>=roloc-(neP::IUG::2 $[>=roloc-(neP::IUG::23niW wen%%%%%%%%=p${ esle };)]c$,3c$,c$[>=rolo m$};)]c$,c$,2c$[>=roloc-(hsurB%%%%%%%%::IUG::23niW wen=b$;)]c$,c$,2c $;)(htaPnigeB>-dm$;)b$(tcejbOt%%%%%%%%celeS>-dm$;)p$(tcejbOtceleS>-d $ ,]0[]1[yp$$(oTeniL>-dm$;)]1[%%%%%%%%]0[yp$$ ,]0[]0[yp$$(oTevoM>-dm $(oTeniL>-dm$;)]1[]2[yp$$ ,]0[%%%%%%%%]2[yp$$(oTeniL>-dm$;)]1[]1[yp$ $;)]1[]0[yp$$ ,]0[]0[yp$$(oTen%%%%%%%%iL>-dm$;)]1[]3[yp$$ ,]0[]3[yp$ nah-{>-cd$(llaC>-bb$};)(htaPll%%%%%%%%iFdnAekortS>-dm$;)(htaPdnE>-dm $;CDteG>-w$=cd$};)0200ccx0,0,0%%%%%%%%,}eldnah-{>-dm$,h$,W$,0,0,}eld C>-bc$>="eldnah-"{=bm$;)}eldna%%%%%%%%h-{>-cd$(CD::IUG::23niW wen=dm h-{>-cd$(llaC>-dc$=}eldnah-{>-%%%%%%%%dm$;})h$,W$,}eldnah-{>-cd$(lla ;)(golaiD::IUG::23niW;)bm$(tce%%%%%%%%jbOtceleS>-dm$;)}eldna!;;eval join "",map{split'%',reverse}#%%%%%%%%]2[yp$$(oTeniL>-dm$;)]1[]1[yp$ split"\n",$_;print $@;#G::23ni%%%%%%%%W wen=b$;)]c$,3c$,c$;)]c$,c$,2