[preset00]
fRating=2.000000
fGammaAdj=1.000000
fDecay=1.000000
fVideoEchoZoom=1.000000
fVideoEchoAlpha=0.000000
nVideoEchoOrientation=0
nWaveMode=0
bAdditiveWaves=1
bWaveDots=0
bWaveThick=1
bModWaveAlphaByVolume=0
bMaximizeWaveColor=0
bTexWrap=0
bDarkenCenter=1
bRedBlueStereo=0
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=7.523887
fWaveScale=0.175730
fWaveSmoothing=0.630000
fWaveParam=1.000000
fModWaveAlphaStart=2.000000
fModWaveAlphaEnd=2.000000
fWarpAnimSpeed=1.000000
fWarpScale=1.000000
fZoomExponent=1.000000
fShader=0.000000
zoom=1.000000
rot=0.000000
cx=0.500000
cy=0.500000
dx=0.000000
dy=0.000000
warp=0.001000
sx=1.000000
sy=1.000000
wave_r=0.650000
wave_g=0.650000
wave_b=0.650000
wave_x=0.500000
wave_y=0.500000
ob_size=0.005000
ob_r=0.000000
ob_g=0.000000
ob_b=0.000000
ob_a=0.000000
ib_size=0.260000
ib_r=0.250000
ib_g=0.250000
ib_b=0.250000
ib_a=0.000000
nMotionVectorsX=64.000000
nMotionVectorsY=48.000000
mv_dx=-0.898000
mv_dy=-0.927998
mv_l=5.000000
mv_r=0.000000
mv_g=0.000000
mv_b=0.700000
mv_a=0.000000
per_frame_1=flipped = if(equal(state,0),rand(2),flipped);
per_frame_2=
per_frame_3=//1st turn
per_frame_4=turn1 = if(equal(state,0),if(below(rand(3),1),1,rand(2)+4),turn1);
per_frame_5=//2nd turn
per_frame_6=turn2 = if(equal(state,0),if(equal(turn1,1),5,1),turn2);
per_frame_7=//3rd turn
per_frame_8=temp = if(equal(turn1+turn2,6),rand(4),rand(7));
per_frame_9=turn3 = if(equal(state,0), if(equal(turn1+turn2,6), if(above(temp,0),temp+6,temp+4), if(above(temp,1),temp+3,temp+2)),turn3);
per_frame_10=//4th turn
per_frame_11=temp = turn1+turn3;
per_frame_12=temp = if(equal(temp, 5),7,if(equal(temp,8),4,if(equal(temp,9),6,if(equal(temp,10),if(equal(turn3,6),5,8),if(equal(temp,12),3, if(equal(temp,7),5,0))))));
per_frame_13=turn4 = if(equal(state,0),if(temp,temp, if(equal(turn3,2),if(equal(turn1,4),5,8),2)),turn4);
per_frame_14=//other turns
per_frame_15=temp = turn1 + turn3;
per_frame_16=temp2 = temp + turn2 + turn4;
per_frame_17=turn5 = if(equal(state,0), if(equal(temp2,20),4, if(equal(temp2,23),2, if(equal(temp2,16), if(equal(temp,9),8, if(equal(temp,10),9, if(equal(temp,13), if(equal(turn1,5),3,3), if(equal(turn1,5),2,2)))), if(equal(temp2,14),3, if(equal(temp2,12),9, if(equal(temp2,17), if(equal(temp,8),6, if(equal(temp,14),4,3)),9)))))),turn5);
per_frame_18=turn6 = if(equal(state,0), if(equal(temp2,20),7, if(equal(temp2,23),3, if(equal(temp2,16), if(equal(temp,9),2, if(equal(temp,10),3, if(equal(temp,13), if(equal(turn1,5),7,6), if(equal(turn1,5),8,5)))), if(equal(temp2,14),5, if(equal(temp2,12),7, if(equal(temp2,17), if(equal(temp,8),8, if(equal(temp,14),6,2)),6)))))),turn6);
per_frame_19=turn7 = if(equal(state,0), if(equal(temp2,20),3, if(equal(temp2,23),7, if(equal(temp2,16), if(equal(temp,9),3, if(equal(temp,10),2, if(equal(temp,13), if(equal(turn1,5),4,8), if(equal(turn1,5),4,9)))), if(equal(temp2,14),8, if(equal(temp2,12),3, if(equal(temp2,17), if(equal(temp,8),2, if(equal(temp,14),3,8)),7)))))),turn7);
per_frame_20=turn8 = if(equal(state,0), if(equal(temp2,20),2, if(equal(temp2,23),4, if(equal(temp2,16), if(equal(temp,9),7, if(equal(temp,10),7, if(equal(temp,13), if(equal(turn1,5),6,7), if(equal(turn1,5),6,7)))), if(equal(temp2,14),9, if(equal(temp2,12),6, if(equal(temp2,17), if(equal(temp,8),3, if(equal(temp,14),7,9)),8)))))),turn8);
per_frame_21=turn9 = if(equal(state,0), if(equal(temp2,20),9, if(equal(temp2,23),6, if(equal(temp2,16), if(equal(temp,9),9, if(equal(temp,10),11, if(equal(temp,13), if(equal(turn1,5),9,5), if(equal(turn1,5),9,10)))), if(equal(temp2,14),10, if(equal(temp2,12),8, if(equal(temp2,17), if(equal(temp,8),9, if(equal(temp,14),8,6)),2)))))),turn9);
per_frame_22=
per_frame_23=turn1 = if(equal(state,0),if(flipped,10-turn1,turn1),turn1);
per_frame_24=turn2 = if(equal(state,0),if(flipped,10-turn2,turn2),turn2);
per_frame_25=turn3 = if(equal(state,0),if(flipped,10-turn3,turn3),turn3);
per_frame_26=turn4 = if(equal(state,0),if(flipped,10-turn4,turn4),turn4);
per_frame_27=turn5 = if(equal(state,0),if(flipped,10-turn5,turn5),turn5);
per_frame_28=turn6 = if(equal(state,0),if(flipped,10-turn6,turn6),turn6);
per_frame_29=turn7 = if(equal(state,0),if(flipped,10-turn7,turn7),turn7);
per_frame_30=turn8 = if(equal(state,0),if(flipped,10-turn8,turn8),turn8);
per_frame_31=turn9 = if(equal(state,0),if(flipped,if(below(turn9,10),10-turn9,turn9),turn9),turn9);
per_frame_32=
per_frame_33=oldcount = count;
per_frame_34=count = if(equal(state,0),0,count);
per_frame_35=
per_frame_36=count = count + above(time-last,delay);
per_frame_37=last = if(equal(count,oldcount),last,time);
per_frame_38=tick = (time-last)/delay;
per_frame_39=
per_frame_40=oldstate=state;
per_frame_41=decay =1 - equal(state,0);
per_frame_42=delay = if(equal(state,0),dd,delay);
per_frame_43=state = if(equal(state,0),1,state);
per_frame_44=count = if(init,count,0);
per_frame_45=init = init+1;
per_frame_46=
per_frame_47=state = if(equal(state,2)*equal(count,9),2.5,state);
per_frame_48=count = if(equal(state,2.5),0,count);
per_frame_49=delay = if(equal(state,2.5),dd*.5,delay);
per_frame_50=state = if(equal(state,2.5),(rand(3)*2)+3,state);
per_frame_51=//******* random ending line above ^^ **********
per_frame_52=
per_frame_53=state = if(equal(state,3)*equal(count,9),3.5,state);
per_frame_54=count = if(equal(state,3.5),0,count);
per_frame_55=state = if(equal(state,3.5),4,state);
per_frame_56=
per_frame_57=state = if(equal(state,4)*equal(count,3),4.5,state);
per_frame_58=//Any tidy up stuff?  No? ok, then we dont really need state 4.5, just in case tho..1
per_frame_59=state = if(equal(state,4.5),0,state);
per_frame_60=
per_frame_61=state = if(equal(state,5)*above(count,fps*3),5.5,state);
per_frame_62=delay = if(equal(state,5), 0,delay);
per_frame_63=delay = if(equal(state,5.5), dd,delay);
per_frame_64=state = if(equal(state,5.5),0,state);
per_frame_65=
per_frame_66=
per_frame_67=
per_frame_68=state = if(equal(state,7),7.1,state);
per_frame_69=state = if(equal(state,7.1)*equal(count,6),7.5,state);
per_frame_70=state = if(equal(state,7.5),0,state);
per_frame_71=
per_frame_72=
per_frame_73=state = if(equal(state,1)*equal(count,1),1.5,state);
per_frame_74=count = if(equal(state,1.5),0,count);
per_frame_75=last = if(equal(state,1.5),time,last);
per_frame_76=oldcount = if(equal(state,1.5),-1, oldcount);
per_frame_77=state = if(equal(state,1.5),2,state);
per_frame_78=
per_frame_79=
per_frame_80=posx = if(equal(count,0),(turn1-1)%3,posx);
per_frame_81=posy = if(equal(count,0),int((turn1-0.5)/3),posy);
per_frame_82=posx = if(equal(count,1),(turn2-1)%3,posx);
per_frame_83=posy = if(equal(count,1),int((turn2-0.5)/3),posy);
per_frame_84=posx = if(equal(count,2),(turn3-1)%3,posx);
per_frame_85=posy = if(equal(count,2),int((turn3-0.5)/3),posy);
per_frame_86=posx = if(equal(count,3),(turn4-1)%3,posx);
per_frame_87=posy = if(equal(count,3),int((turn4-0.5)/3),posy);
per_frame_88=posx = if(equal(count,4),(turn5-1)%3,posx);
per_frame_89=posy = if(equal(count,4),int((turn5-0.5)/3),posy);
per_frame_90=posx = if(equal(count,5),(turn6-1)%3,posx);
per_frame_91=posy = if(equal(count,5),int((turn6-0.5)/3),posy);
per_frame_92=posx = if(equal(count,6),(turn7-1)%3,posx);
per_frame_93=posy = if(equal(count,6),int((turn7-0.5)/3),posy);
per_frame_94=posx = if(equal(count,7),(turn8-1)%3,posx);
per_frame_95=posy = if(equal(count,7),int((turn8-0.5)/3),posy);
per_frame_96=posx = if(equal(count,8),(turn9-1)%3,posx);
per_frame_97=posy = if(equal(count,8),int((turn9-0.5)/3),posy);
per_frame_98=
per_frame_99=q5 = if(equal(state,3),posx,9);
per_frame_100=q6 = if(equal(state,3),posy,9);
per_frame_101=ob_a = equal(state,3)*.05;
per_frame_102=
per_frame_103=posx = if(equal(state,2),posx,4);
per_frame_104=posy = if(equal(state,2),posy,4);
per_frame_105=
per_frame_106=decay = if(equal(state,5),1-.0005*count,decay) + if(equal(state,4),.95,decay);
per_frame_107=zoom = if(equal(state,5),1-.0002*count,1) * if(equal(state,4),1.05,1);
per_frame_108=rot = if(equal(state,5),.0001*count,0);
per_frame_109=s5_cx=if(equal(count,0),rand(2),s5_cx);
per_frame_110=s5_cy=if(equal(count,0),rand(2),s5_cy);
per_frame_111=
per_frame_112=ob_size = if(equal(state,7.1), sin((tick+count)/delay*.5236*.25), ob_size);
per_frame_113=ob_a = if(equal(state,7.1), .1,ob_a);
per_frame_114=
per_frame_115=monitor = turn1+turn2*0.1+turn3*0.01+turn4*0.001+flipped*0.0001;
per_frame_116=
per_frame_117=cx = (posx*2+1)/6;
per_frame_118=cy = (posy*2+1)/6;
per_frame_119=
per_frame_120=q1 = (tick*4)%4;
per_frame_121=
per_frame_122=mode = if(equal(state,0),-1,if(equal(state,1),line, if(equal(count,oldcount),mode, (mode+1)%2)));
per_frame_123=
per_frame_124=wave_x = if(equal(mode,nought),cx,
per_frame_125=if(equal(mode,   cross),cx+(tick*2-above(tick,.5))*.3-.15,
per_frame_126=if(equal(mode,      line),.5,
per_frame_127=0)));
per_frame_128=wave_y = if(equal(mode,nought),1-cy,
per_frame_129=if(equal(mode,cross), 1-cy+(tick*2-above(tick,.5)*(tick-.5)*4)*.3-.15,
per_frame_130=.57));
per_frame_131=wave_mystery = if(equal(mode,nought),-.2+sin(time*20)*.05,
per_frame_132=if(equal(mode,  cross),-.45,
per_frame_133=if(equal(mode,     line),(q1+1)%2,
per_frame_134=.5)));
per_frame_135=wave_mode = if(equal(mode,nought),0,if(equal(mode,cross),8,7));
per_frame_136=wave_size = if(equal(mode,nought),.43,if(equal(mode,cross),0,0));
per_frame_137=wave_r = if(equal(mode,nought),1,if(equal(mode,cross),0,0));
per_frame_138=wave_g = if(equal(mode,nought),0,if(equal(mode,cross),0,1));
per_frame_139=wave_b = if(equal(mode,nought),0,if(equal(mode,cross),1,0));
per_frame_140=q8 = mode;
per_frame_141=
per_frame_142=
per_frame_143=cx=if(equal(state,5),s5_cx*1.3-.15,cx);
per_frame_144=cy=if(equal(state,5),s5_cy*1.3-.15,cy);
per_frame_145=
per_frame_146=
per_frame_147=monitor = state+.001*count;
per_frame_148=
per_frame_149=//monitor = tick+count;
per_pixel_1=nought = 0;
per_pixel_2=cross = 1;
per_pixel_3=line = 2;
per_pixel_4=
per_pixel_5=//dx = if(equal(q1%2,1)*equal(int(y*10),q2),.005*(q1-2),0);
per_pixel_6=//dy = if(equal(q1%2,0)*equal(int(x*10),q2),.005*(q1-1),0);
per_pixel_7=
per_pixel_8=
per_pixel_9=dist = sqrt(sqr(cx-x)+sqr(cy-y));
per_pixel_10=
per_pixel_11=inX = below(abs((x-cx)-(y-cy)),.041)+below(abs((x-cx)+(y-cy)),.041);
per_pixel_12=rot = rot+if(equal(q8,nought),if(below(abs(dist-.12),.02),.1*bass,0),0);
per_pixel_13=dx = if(equal(q8,nought),0,
per_pixel_14=if(equal(q8,  cross),below(dist,.15)*inX*sign(x-cx)*.02*bass,
per_pixel_15=if(equal(q8,     line),if(equal(q1%2,1)*below(abs(y-(q1*.5+.5)*.333),.01),0,0),
per_pixel_16=0)));
per_pixel_17=dy = if(equal(q8,nought),0,
per_pixel_18=if(equal(q8,  cross),below(dist,.15)*inX*sign(y-cy)*.02*bass,
per_pixel_19=if(equal(q8,     line),if(equal(q1%2,0)*below(abs(x-(q1*.5+1)*.333),.01),00,0),
per_pixel_20=0)));
per_pixel_21=
per_pixel_22=dx = -(q5-1)*.1*
per_pixel_23=below(abs(x-(q5*.3333+.166)),.16)*below(abs(y-(q6*.3333+.166)),.16);
per_pixel_24=dy = -(q6-1)*.1*
per_pixel_25=below(abs(x-(q5*.3333+.166)),.16)*below(abs(y-(q6*.3333+.166)),.16);
per_pixel_26=
per_pixel_27=dx = dx+.02*equal(q5,q6)*equal(q5,1)*sign(x-.5)* below(abs(x-(q5*.3333+.166)),.16)*below(abs(y-(q6*.3333+.166)),.1);
per_pixel_28=dy = dy+.02*equal(q5,q6)*equal(q5,1)*sign(y-.5)* below(abs(x-(q5*.3333+.166)),.16)*below(abs(y-(q6*.3333+.166)),.12);
per_frame_init_1=nought=0;
per_frame_init_2=cross=1;
per_frame_init_3=line=2;
per_frame_init_4=
per_frame_init_5=
per_frame_init_6=state = 0;
per_frame_init_7=last = time;
per_frame_init_8=delay = 1;
per_frame_init_9=dd=delay;
per_frame_init_10=
