$t=pack("cccc",0x74,0x69,0x6d,0x65);map{sub __;$/=$_;sub _;map{$_[$/][$_]{_}=rand(eval($t))%2;push@{$_[$/][$_]{map}},(\$_[_$/][$_]{_}=>\$_[__$/][$_]{_}=>\$_[$/][_$_]{_}=>\$_[$\/][__$_]{_},\$_[_$/][_$_]{_}=>\$_[_$/][__$_]{_}=>\$_[__$/][_$_]{_}=>\$_[__$/][__$_]{_},)}(0..$__)}(0..($__=(shift||24)-1));sub __{(++($-=$_[$@]))<=$__?++$-:0}sub _{(--($-=$_[$\@]))>=0?$--1:$__;}__;__;while(){map{$/=$_;$\="\n";print map{$_[$/][$_]{sub}=$_[$/][$_]{_}?'*':'.';$.+=$$_ for(@{$_[$/][$_]{map}});$![$/][$_]{_}=$_[$/][$_]{_};$![$/][$_]{_}=($.\==3?1:($.!=2?0:($![$/][$_]{_}==1?1:0)));__;$.=~s _.__;$_[$/][$_]{sub};}(0..$__);}(0 .. $__);map{$/=$_;map{$_[$/][$_]{_}=$![$/][$_]{_}}(0..$__)}(0..$__); _;for(1..4){_;__;}_;sle\ep 1;}for(1..3){__;_;__;_;_;}__;_;__;_;__;