rockdodger-0.9.2/0000755000175000001440000000000012257577552013452 5ustar krawczykusersrockdodger-0.9.2/data/0000755000175000001440000000000012257577553014364 5ustar krawczykusersrockdodger-0.9.2/data/20P_Betadance.png0000644000175000001440000001137112257577552017363 0ustar krawczykusersPNG  IHDR" p!PLTEUUUqqqƍ888tRNS@fbKGDH pHYs  d_tIME kfQIDATxZ]SGn>f`*||2AA {B[{E9T_}sZA8MzULtGϨ(uM 77oܛCqqnJ%?e𥉯j8 =oLhd޼B)َ843ӛ3w7]IjD Ԭg+Tq+W/T_ߘ9M:cXGq |.SE%5=ģNEjUW{/O|+Ss&OϫXX^(ǁ1r{Wp65Vt0z'~}lzn_E43~1ۿ7)Ut*KUhᒬm_g{)\uė^9g0kѡ ],s3vhtMLoR..f7yBųͦ b[=~*,R$* 11҃!ڰ 5Wh}P%NzwYtrs/_~z}krբBe 4S{#InUK<$}bEʗ4 aֳ1aޛ7(ϩÒwr+kҚϷ}mӃ[ FJzTQԓfz;{e+.$P$yeh`:OD|w!Y ?Rmɭ0v.xz<͙01%́Mj7 K o8GJavV!%XܥYo23ڋ;;HvJv?KN0 z>lCʜllo Vo><^U/: <@;H4_W5'ʃ' JoY2tW$^WEi% (h Ǽ,^Ҡ^nwT Q/ )Te7 U6(vs;N~wvbg`ΈDb .5] fz ZEj%<&tz)H3T\uGZQ]KqTP ]J<dv7Q%fc1 ÕWW$[hrup2IEʃ_usʅVPI&kN%-[Jkdꜳ֊pokYvF1NFmU"e䔛qܫU36119Δ|S%Z%ߥ*iM'ys^px[UtCazfU8sS@'D (h?l^+;L8k" L#OLe0[OĜzάB6E|o٢T暉!Jn KHҼ9(x >Tbden ykv]m8irޜ6(ԬQajs涮HlH%_ywx vgɫmב_Ni!ס_tWC\RYj8,rE(/:2(>amXZ4;t>YpŖF;Nd0 3,cgH,;-'"/f8̮`>40|T$Hbqokm9(8m  b EKŎp{?.aݢ*t23T]&׽^nѸ 0B|, KQqʲ嵚QĀ Ǜe6V'Wilt{/2oKCƈ%;-<N6 7iE#,a"$ӥCޡO5>R#*iiZf#lkveq>s`n8迹dݥ!}N;=P<ޮ/FX-vw"r[ʂ#E<0AYrWtIZ^9D5y= q]X &| [9XK]̉ze%ϩNR;HnVP]/k":[Ɍԇuue :{3v('v ?x rspA#b!r< ץsq}FT*,oKml_wPEo.4VP;koׯ{6UK;' l!w'6|f-/lt4>fʆ#p_#=ӅH[ĜTDDzUs_*ߠ2{&KڸRY=wC iv>~I{UV#8Fd>|Fc2L}@|&\6qʫ8d2o3lv{8O >[b1f88HnFϗN?SԵo#.-V^irvulg:Ux.. r̢K~Zp6 Og/+)菥]jo$-_]5Ił-h^2 џMQ~Р] 7/72ۆ\Q ޕcFF?/.ڽˍ[~b|S4iT ;}.Gcqea鎳LO,ETG/IENDB`rockdodger-0.9.2/data/24P_Arial_NeonYellow.png0000644000175000001440000016550712257577552020737 0ustar krawczykusersPNG  IHDR O$&[gAMA abKGD pHYs  d_tIME #of IDATx{xUWY{s9;HBHi-T8)Zt舏8ҟaFȌԢEJGtD*mҖ-Rnkn'sgF%9'<9{^{z׻%$R Hy7Jy7R)? |^KqcY!G"@ݵܿk@O{+1кak_}-\1?eiguMEcz-o򯅁[oĶؕvvq%nD0жލT'7,іr+{+ ]h9r=mkQ˗v#lk|}~{3п+r*KX\}u#+}@=θQMʉD~9Ov#+(+Qۍ&@~ wF>iŰqy9r o% @w L AC4`/{Z* qc? GA G+r̨>Un*_M%0xYcj^pQMÄp@M(;'6 {^)DnPl$v4DQ&G4KZv3BGE!PLVn+5pa4wUrB&G>(ލH#rvAY>%s:tS9iL%R&M46&κryMtl k|.!?#z}&+r:@cP& KB2q1DT%O1bsZŭP4 wI& 6%|nl:(C2]_S4Z9/%6Ѻ+ 9CE\9HȖerpAq-_;s\ÄT'oI">x_tVخC]_t?j*qLUaP +Ѱ>Bi9JIVANwT%*Ezr&ؓȲ~6\Ȏ|^q]oyF"m6zrYmrj99tIfU9%QH5IgDz._ϵ)W"Ѧv[Sx[|"+~FvL ž6|~ռKN8º6Δ3f:۩믇 @zfᫍ6nJWB"tڷ7|b^nZ'6|sIGS@UsKjL9#ϒ+J'jcm7JcÄQRu=m?\趮_1>gct s Z#ֈx&qڵ~בMԭ ܱ4HI3&\avy/PIoWvgךq<@S@F L{U׿o/۱mN.SۢP\^W]߁DWmge.n ݫNDcl@D,IZ*fk\Oz=ISOo*Kwșme!Q4M$SRf aɯecbgC0'q_mll?f~[rqN666CJ] 2iv, ! x8N~''[^j}Cu"7AMT%VR&t6W\g"y9,OSS(;g0XLv p cKQ/&f&BM] I& x˔RWv5w_i*um7ܞp"[SrM'}Q3JnyT/v,dQhi:|E~Lq`u8^ iuOdS=n0"v(E"vʹif(Dң&MDGrF޵KQ̏7~LP VI K_Eej?)NA0Τ:EFCֵr^OKVHsi0ZtnEM7̧RS&g5+Z+eR~Pu\WSRDw2VKrgsqs-' *[ fH <²P >q R4z @3t.+@ЄKQ'&1M:A*O@ Dd,bNm}\R/O|/2u`bJ@J0 Q s iq؂řzzËrSHOdd*ECurZ)LKVHsk0Yh|NAsvk"Ҥ/pOD66Ōu0׋UrrOv{_$`lΐq9\H]юz2,qe.(pAY4g53ULHX$`Ǖ% UQ>0hR9Hh[A1K8ToAOZ:LST(6kM,#Z\m~Wx} ^d &v9$ 2J9h4=ߪ)&jUGqЩs1yd6rh.k_" hWy4b&$龴-j$źp!¹ R`9KSI >0)&G %6>&׊3"1LGlf;k]]oRYc^34Dn*J׼ <$x) wE8}Uvd.n1]]IߕEsTk9Ȅc>Fj41יQ[^Շ+yn= #ER1Y^9h5W^o}T,NĂvDdԿw}R>,\iKc3gzʡ^,16?ߢmn]+z|_Ew;FƊo2ִѻ{01{N[=i_wh1:Vv?a &K{OK좡yg_O]YyKR51XX6Sq@iU4L.c1CI19g)sѪo. @m\TxS.?bvV WbNO|y#DcA"}>)M1e>Gg969bM!qx?F\PU(=՗UW Lͅh^@I@N;Y9Ui v%JIaA zze.0*GAd` Ts.E^HS4|| eg܋g/̨^tU|%PQEnomi-Z!02FBh`"p.wN9oQjzqvk6)Mo1n `o9enQ/?Hrss>4ԋLJeQҞÙT!Bgn (!33} RWC I9L@QdyP<65%=eb͑>q l,ԓ̫\0 SZr鷾]SjOT go0 =-]ղ{_F@J& p TwmXU0 їfXȓb)9*ݰw#TmpkLFJZ1;s9Qo/gdja $dj.AY8?3$x JO"dY_8B FFc S:)c`)d~:h }0jdv)켄rz kU[Tp9- xg?ƃ;+O*O廭抭$-(L BjLs!S<&DNR)HKZmeѥ.(_Hbf9: ~#{ګ/{ŭ 'x i>$|&$ͣah,{oT1Z2m[S &U| M?ȹ{1V}꫿Ǡ666iyUGv u h66EZgrc0~47/K© n]޷9E+Y򭃡9 ?o#x:mM54+=A*E=nAș[u Q)Ja`|vwt]%YUr]N8%~$MR ˹O g75~Z/M=JYCr7YO o e=4܇'K۱IC/R>*<(ee_d r_ZJu[Wy\IW*tk$M=B31CD>ɚ+250#nii ׾b0]y-4u+%r1Q3ȪXBuWS%pƒu4d· (ЫZ&m}E< ]9ܚS`MF= ue?1R.[ﲝe_wQΣ|j}%u5\"ܾNX5nja -@`|<5w>o~r4 Šu>c/=wwcqk\ĕI]l>W |sp>a¨Ndoa}( '#M=grgCgH3\Zː!EˢA}4(<:z9!m&UeeVr=%m͇岔k@QK&ewcaas}-[JպVn vx1+{%Gyp=}zU3~Zl+(/tP.gZFZeVdYkxDq]-[äEl*9;7pw6\7R! }O~bap9h+.{uyR .Ɔ 4> pu9B_anHL,mjq_Cȇe{K{@3*XAit,,@u $eo˜`82tHdCp^v؋W+A;=zTP2^_Fnz5НY6@O>ز<1(xB:OmAxe.ktIנx4 !bčcz78875txw) /7=d}@$ߥ#]ڕP=֢ TK_<~gY%]s ={]qNl! g<IҳF.E 6jt-WR`ԔYa2yΘC-n.>=7Vƴ\ȻOt:P4X $=Yu@ƌw;xÑCp#*:>OPm͎KGCA)D  WAw[0 }^L3ai0~h7͆ LCD|.`ŨD ͨ*0pLjbX":&6IƔXm9Tx;x}xUzض:a@ӶSJ,p}RedP92mPX7};n }Zs^> ѣ3U oUJeccsoyY>FG|FhM NݷֈvH^b7T] s 0^ֱ}3^aR`.e=>t?3^t?HR`=-}2u3:b7)U0˧@nUC@þpCXyBv,>NF%gz4owP@lݻ0ϰ/zyK#| ?h,RUը{ޜ7x7_^ ^ 2]O-z/3-ϕmڤѦߦ>|HAlvd.F;Ll)/y;aB.7<\.g*&Ϡj>Fd1v`[gj9{Kr 1xڭA219Qea3OY@q/]/2Faʿ`MZ< YV0(*u2[w`pa %FkJ,fNБ1ғY;2`p 1M+2W!3ïgWֹ%.TS󆹘wI: AZeniCnEE(g̀O?H/GOӡ=rF+## tZߔwwD+)£sB rmf05R̈́8vwU^M wu098nr!=2p@[˥7/u @Po% y{|_c^xf&4/7!̶4=X qo*\o]BZ:a\lk덀"2ЌzGRdaSb# ?r>IK&C]~5lYg@n:n.$iybLY_(D $_o,[/.cQ >)Vg3 Lamq rBmn( eLh4`$ˁ'#Pu kh1s\bio yqX/0B?˕<|CM8v mL>9/ê`$p,]Zm|:L=P8T@N) [0v$d?,(b) gE$Q8T\4G-t"^%{'xbW Fk!X-obmw$1 |x}DH3L3.P20בŭ]' z#QL6~Gq5hѷjWL"Víǫ>A3¡CM Gfh1Y^S BQk"ka} [+U%huƱc:oA<ʋ1}%~~YD,軒^ƈ (8cqr4nΧӁ]rij&yJOwG)"ABJ ?v.#t\<sT `/|5]g8VLZMC֢kÌq\}b?b̦SP$LWd0g2i>?R:\|B,Nl˘X͇C9]FuL%C$z{eĂeT/)ΈA}8o-t3d*h Yx/osѭW`Z=Һ&Z𦲆n?8}|* >qhb3~0a!} CpBfT IyY} *mX<]?EXٕuS ѲSC[t_63x~/؇p|FIswS(鴣@!^nI+=/ !I(-ApAXfɝH#Fp\4HӘ\pn;XA\OE =ٴXSpGɁ+:mT`&O4~ ˷H}|#|VSۺ Ǥ]I GmV4Ĭ}MIu^;qp !*> R>GVIi3{ڎE$04JX͵fǫ]1vTl4%͵&cu02Ւsh/Yv4c@$_ߝޛE);d1Z&d)ob*A4 Dz%1(bK' d;Q̈ArdYs72K2UH{tv T쀵9\۲hn&k4($*-PVt7wB_/k2_A\y%O8N;=@EʗBhI7'3ҳKv m͛!@,Y·]ON@KhaҼ)kK͙ . M>0`4SüR q 6?"3ԱY|mn=&fhmJ#rvT mON.xH.s81Ά/| Nm;WS[}L)ɹƵ+bM<~d*iPIeU%1TB\ݺϿ=Nlm\G )n/B98wM_ heV˧`!=rr<XI%)uUs;'fcӥ\a S#ĨAR.(څk#Շ0i >|fu~< }Sh/mڛ4a\K̖.x@h=z4I4&0Y(&G‹Ie#Ll]CX1Ep߾H~x:.$Va 46r!4W.e7r ) N=tR)5q/Tބ %^ZK.Gk\j6 ?3p^xEp62\mB Ji OT>QL6 ¥3`aj{R&q 2~XOR{2a/fbmu'| D± ; Z;uISd +i7t ޲CFd!s+ЍP^Cn([6]Vk% BǚcD?2>5.^zѕvskV9pDjzEUow=,-5,Fo[3L|ʺvxϸEW{[5P%bfU>P‘*$yV[Y}fI<"\~bzzE(rM96́Gbl>B'N#>}=#d"YFZά@O +n^P:khM-[!"ia&w7_!__ҡ pqomx~OUf 3{̇ϑZx4+%YCypT{+hYnWMtkg$+;qm,Vt{3L#h )% KzjZ nЧ W8oZAC sPF6gWʦ/3e*{s_C0qxێP F}hp3=ڟ=P ZUHSpr:@|:מ WX#;\2ZMϯe+*84s `m T<_=mn¼xj]w%ٽ ɰg oD 片ǭ>hߘţ+$c%,I癆"DZ"<Ù tXuC|ǥǎZ1f>2MmllGM^H"P Sm-,3d3A@f{፽0&{X|ܫͭk4tWy|a~K^A"GHAMm+I9s/LH4H|d/c}5qecR!,p+ck}fl.inRa4,qor߹(7?ڷh=:C8GS2 PԦ2#eL4<3Iǿ^ₔ2XS~g&5d͎H ٓ3fuN5)XXyz8dW"#Lv>p\!6s_u|kW_¨'oit:+þ&'+;}y 9匕R|=Ү%@׬lu?YmRLgc̶ܣ픜V +3vq)F϶ogbr(Zh='}>hya ^9o$~z~[/ "D$4Kݦp^{ŧ YMF_H)aѢyYy *dl^8[[>n[Gn rV޽s,bw: homZ]b˩N=B nx$%)2]4teL,YDr[=$]5lQ0 0cA.dpsV)lqrNtd!S0(G۴9y_e8x_8Zz+FzN~()uQ+rxX$ ֠8J&Q`ga.f|.APk- T/z;hHk̲{L' y}Mx!)Gj-MFݲ[NM(/Zo[Gm{ZHJѥѿ >WP;ZG\eN׃Wz͆P,g)l/ܺ];C_o-9tr Pܽ6oZl |]tS+,YUwO5X#oߗLr9t+a9n ^> Q je  5/x@mַ;g|NXdDwM/BQi2 qLk(P[o-*gg+BƹhA@9ɕKD OKoe[6TM򒵅zKڕ#DXt4t{v~>v#]MqFw,[m62|LA:pU9]h} óHHʈڍAWy=l:&q~ n+'^4sl>B"MCϓߑ{K??/g#+ml:J)ڱsL >ݵس笌1b`wSPJpGkW+a9dt \>?p}vS?ƒ%%:@u}_:KEX˺eʖuOoI\=ʙc͘ 5DY"gpjq@zhAz[mi#LaP@ڜBQBTV}_Ky.!ZJ]{Yn'sX Vb/XdmrT;ۖaV֥MmzrI^34Efn5woLk4u1~vX6}5Cbu.I ~{re0aj+:sN`ߐiZd 6,Li28yxUEiN\u N8Sw4|Zʆ'v:_Y~k}WS̕y_~wWN~'Nv 0]6i}=vũ kWWk8*,9t`p 0LMpX19ap ľ Nk+÷}U,Pk_A}/'"hZBG#jeI(ǜWOڟUs,xƴ,˰:]> ig㣬1IJHB "$**m-+ww{koiKxm-M[w+TqW`Ym  !Bf2<]sg2WW\Og|oŕm@cL#bmoMOD~1rF>c, -:?EwOxGh̦\;Vo|\ἔ3_om.8ВυaaC`A -82i5Wlll lq(6kDAbik~ eQdvI!xafD,~.@Hq6XÔY%/(yU%O.z{%1vȦom#ޥǀJ 'I&u痐q\u[{lly)^ RD=rk1RFp,r8պg%H]eK2Q+edjPIwR:8V7!Nlt^_o )!$ Ⱥ*dtOJWwB7SU*U묙yzrjX _Gkz/iל|)NH_tO ʘ7D9#GpaR'\J`0p y(9ul*_/^P0ʼn dI8g+鞓UB>h e͙@և[+z,Vd[1p3I e8ЋH؇ӂAG;.`)k:lB\9 #-~$jFH%cҞ:&-li[ ¹ډ" Ok'"rm8@U: -&Ŗ^@T7&8K0k2}@s)~E9zud@_<֗h%˭LxN{~ b~I$Y)/\Qcv}!lIH;v=4\&d->6r0}yAA~i|'{ 8a|my47ÝAÃ%RT|m5R?E4~> <쀆 a аbLMkMK͘a(s}›6gVtiŒBqILq^qJ2֮/IE)I&U aVWy@1q)!"s8&+ESU /Gm+2<3,1^)saG\ץ%Uߗ5FXHM[mw/#mz6d~܉tNנuqC^5gU=mw"I%MkPw;1m X4JݨzzNqmA˪rH)Ry,k+@dJ^$ طo4e5%@LZ$gjni;)Ԗ?"t Y~v?G0R췵)ˢ:>ht;O s-u%2Oδf479'39߬l&4^AkP2k5h;3gX,P tY۞O5w?k25gz "J2|d>5K̠S6UN\wڃ i'ym0`X`;ǣz}ktj7?r25kN XN )u\T\dt݇")}_\hOZ Jǻ mb휘C6ޕ& ơ5N&,t^'mTo YV|-nQfp\~=(Z]'"/_,b ;J锑?#/]eB'5a@8 &gS|ﲡjw/=a!NwB_|Jo݋ _$ſX@fę1Wv9}Ebǘ~̑4p,GP7 Ok5gJ% Ƃs%Nݨ쳀(ɂ? q;3WJ.2DwYC RD9{.bZ) 0঵zX xt.LZٱUMro8">}KpcZԽ{|-+,)TNHSƿP4x1YVD[R}A_$-eW_̷ԇ T_Ӷo`-Ph1]REk&YtO〝UC`˗5>xeE}uDrP,-@ZzfVKٲb!IXQ("1m1_68ӁVRtbUrw`%/"K<NHģ u,Y[<# O~yn7rEB.3ߙo i0.p;pȱ sؔ%'`Ɓ6^} 2k7(ISORk^svc}|F`Ga#PrB_ղS1_lr 2}ŝ-7ݽKƇ4>=8E23׶L\'Ďwo W^r+F*bAGr݌y%75u][\/)]JvWm;*I>0b;{#%f\/,C*°Zd8%A`* Z ћLq9NƝkK W/n-`e"VYa+*,TYR*MBR6E7 {`dbc`L P(F!TEs!ij>j?0tp}@\tj~I g/m; &{_Sam*H.JZ`[B\r5ҟdV^_㥚#t}6Bh=ȜȀK{:J{Cq"^ \/zPhiG%OɥN9]T@s}l-5j#<1Xts!\LjPqPU"$ؒH^8%K\}Okp1ySjy!K5z>fDZ0,%'4!r60}6JNrȥoӵc4W#CJ U$3G~PLJw?u̩YC{#뀿I|a1 Yp3L @DzPDZZOBY'zgviS-|r0* UnpT)m .+ẃKwH?-- P[#vH晎B|]*uLí o9v>U!|A3/Oge槡~52EYscFE/(&D_2rvsk6e6U#9f\HʪREx-P|jy*1Ҭ}&.z=Cħ"ҚOVCQ̾p1mrחjCW]JQ4< 쀷W8ےVfQ}AKQh_-, \iN^ K铭yR-D磆3kۊGZ`fqMx>ַP'fږrOhP-rmA "P̔،\yyi=~ e7 E߆GvgϦp:};f~ Qh0 WA ɳH3n@F UKƓDf#P7{ۏ>-5%bG1#&3NB~S(Ju~5~N X fԧLj_h@In|_!tǪ4 f"\\Ĕ7$skG ]ᢊ6.^@"h! ( Sr}׸탦 BGDَ$0TJGr6 CJZ !U T/,SR,t,޳p9 @)AvB^8L_,AXmj;m㣍T_׏,`{U= ;=*JCa pjZG8Cs>{@A= ձ#X8^Pzbrxzq"CWzq@եJpb7o9<:kO Q dσf.)t"2ƍY 1IDQݷkŀEhNhn7؞;OTRgd)ۑ ;Pw3;b+tHȺ]\߉4L A,Njtq)mmȏoNo h\A&Fb_;^Ѱ_)1Ə~'h),BR<6'GCK mQr-B[<+YK|xGɫvSQǗto: \ \(ӴdY56QWUDQ@[)<2}/wlL{˿ vjj?]mIW|?1}*q8}]Du߅^B-i+PJc sy"45q q DI%9͌"J¥{x [/%UްȌ5Mr!xLr;,n&g_e{! wSr!]'J `F|&Tl4meR<(ʮ> SsLE,ϼHXiUĔ>>m /ƆFu {O>l]<:퇎#rRm90&4HӠ\2?R'#͖IU`(EopǞpx FXMH.e~Z%jOrI^Ô;]6XmIbFrfE )/a$TbL98=xՈ>291a6B6~ $o܍J$]=_257V1s9_ }6P'Y3KQܑ]QoC8wĽC2<:V.r;*e7UDI.n >.lcm` )`+ꁧsgXf]Ho@cDno4'ut7s`ɇGJ`&dC~-4Ƭ7w'uo7:8\[g:aH&Pl0s@*~T|m7=g"pp^ mF)={{)%ߢ#_)ڮ;!Jh=Bs!0BY7zڅwbF9`\?Y J /ysȲ9( ^'z,whm5jۮKvb,}|9^#*ێ'Q>Mj c!| {*ݎnH7vZLBqaQ>X$?jH;x]$s^"(d =Fu1Y=Y}GZvUiI׸0 B%航y9(e{D&\12Ḑ/6_{ n:"J&x᝷uNGR^*3,5 k&$%'l%ԽV EH#P{QV mRx ywèw!Qj?l#̰cԝz">J`Ր8"ě?k`VNo;熇V;Q oA}wA keI&Ҧ!cv@_i0ԌbuR ljpP;Z?o%>ؙvx=I8{vt|(= hRn\g+Ø"h 9h!b$7='):cd-ӡJЭET;R~\+礜 J(L~Q p˅<%pȝjFng7M0ol쨓ˀGsf;aJ/!xe; nb\+4_o DvIp:~_C˵"T4ɤluOdԶ/,&w9)Ӝ?ѮacT~(W0 @70lZ i +[nxf_'p1$ V6Lr.io"X9(M1Lat=Maӹ[653x}^Bb;PRT|k0fqœje.ƈx0H1YNJzMwys] ʠ{ Wĩ6/7nzWj&ulw S5@Cg͸>99: WQ{0.oMC/{B^hYOX&Ҽ;d$S{i Uqy_AZ(=2;[ W+n.2roeV79/YYPӬ@㈯Wih?` a\[F)fYiUǛ)N_&E춏(:.;j.6'#+bW;[HOtXDQpuþi'[-)!WZRi)u /mǩUC]")]=}G׉gJ+3WB-rq200,B{4u1TP(]aX{V{;b,vȉ> zx5F # d=p6JJ^/EơT̸^?_|+ vPL[ &Q혭U0I/A׫>8SvbU-smv*2oUq'^\듽q [dG8 qJʴ 6\8&,] ,avP :Nɤo볼C (N6d}R,KIIV Gқ H9De}8/LJR<́qkPK| SH "&*65#WON -(jU HyŲt2x?%Cebc!cO-s13"I2V<ߦ=&~MwէR8wِf.nzO)a e؀6pɗop=d^LF|< U{  t~"%Q1%JGRw$! Upn7lJKVU6-nA/gC\F'K PlbO_&hW(s>cO[f\UQyRpp xg=XS*M}8O0("GYlK֙yQ' LzJ fKLSMvnuOB >!sjLj)$}WIS=X{g{ ?Iq}L.<M X4dB t3^fR͙k~#aSA1͈MUFgP.(fFH ӁQ #P؇xq?}c9cFSJl [!.;,1jE*n~pZEb_})=F<m zPK |mY UEK*>Wu!T)LN-:!=+GeU+(fY UKdqWP9s:Uؾ /f2E^c'-('ҭ" [8 f=q/\ mH@=Aɭ(HU6v;X¦vȘ>JF<#uL 6#oI2՗ز>$4 V^Ȫu!6R^r^.R H"/.n2 ~ rW*mE}4ľ_([]y-U}'q+{. 7)]ܩ2VM9z >߄sQX&Bp ݑO5Jn};! pSIS \H9xJnvwB7!8Ɨ7&Td#7 8b١ߥG _f31ŰgbbXR+ytfl], 'eKď#0mpvWX60sT(*W G <[>A0o.1Ks4?UbU"GT*áU V{\Խ0U PpawUx^^doY=?~Y%*;w\#D}$T)jnxL3Rգ s,or\mgr02q:L֮Ċ";ݧOU BM4mF%7"5m>jNUB/d|D=Dھ'41cr'|N߂jI߀MLk_F܍xUm& ]&xFt]kCggd;չ? [poe-X <EY't< :px_MlpZfV%]QA'Bk<(*rL8/?e\|a۬~/kB#kɮ>0;:}}R>bBKm_u9jBhN$ӞjW͕Ix"LO\:ϴ (; \!4<ವ * apl_SytoOC ZTnsg =Ļ7},vZln0e!Ly ޕ B b49?& L?_̝o9EݢZ)nT pf6lR.1\!xmbdqmL~v\h^nE,C- 5|rOۥ'CJpr$Z- $Tض&%T$K%U"ьyr\"J7ai7ppvf~adak3yhyB,ڒ!azy׋p,T1D,)BX&[RXDQXh6 i@ @,T0aWӴvπʀ N|5C: 53w؀?oP錙AJ|jay 5ߩ˱j@!D'0Ɓ oc !~.BbnӞF /ÅH*[e:v 5^+OT ۛJg v\>_B.t"rMh \`!5U/K&jM+yZ*G l GA9֦/v2s.} 5|m@/"L塲Cծ)Q溭U s87ۤ\e؆Fy )u1"l79У;eP!$irTO;RI)Z*VU%2&ajU46YdʁK!'^ӳ?H{ YO ױ4M`pz *u3r˺\U:s) z%¬}sjک #]ِ~+(7zqR^, TjYX-%g{}}jb#jy>MÄP߃)#nkV druPivY̻ 2E͏/piCz8__,n8-`0|ޕ,{@w pX*8"NBanw[9aI\jj9BCe2=~Iwad<}dԞs@ Swp-.LVT.e5P]&o'ʼn }MоHk2.kH3EnYx^=w|ؾ*V&-@)u5͟](UL5({RrܿaJkk߃e:TVDi)a/ {!xw/\yHd\_ru2бH8ܖ2/kg$MD[ osA=93-$yf]Sx\+m )Ýuws-8pr;^Q\ǻeLYL`t0`9U U&:9ݜaJإ+aw%+Ei[wրW=4˩4BzART@[j`~ݕоIXc}h,s&d8J =,Vrt@|X&FLgLrD~MBxÁ<\{:2)(+=3MʠRUgϥ|2,,Y9ڶH{8]:2_';\'׹o]y|.Ns  F=cWx|LyQQfB .KߞXFk,ԩABwԕK@8^rt!o:)B꤆-Pyx+3IkӠ #hϏϒ {a| D|i?;= }I>Amя4< <-eCcP8fD.ss@rTavOH3S0mT&{mrfкTRꎎrcZ´ҤNob;lA}@)\1I_)YBw4gP "Z ` Si3# ҖZ[x]i=׉׃ Xr6!NC!m0n[/~h&A^i)>6pvZBղO ([S6@L IDATֹ6R ւK=Cn$OB<_l ^IPʫ42sO~Ca&{7brq!>(zkMȷX–B梦 M䢜l0"r=_i}H}p%sR}H?Ci:8׈ Of\މ"cc f4[E\+I(o;aa=5σNv%b Z596<ޗ >W_ 5*"P #|Ngg-DπCOPzV &s4N^fy,g rPwٲ0WLM ? QDaj0 cxNlgtq>cTWgFD3 wVI?Ec9iuw7[`4G)Zӊ:1 C^kK ƀSwsȷ*妁rY_==P`:$ dDc?}d,f󪫔$%C&r4x\cg_HCQ}`-A%A~Rz+j;A}sgo\xyðçH]cGW`e0Ineg]@2Trv1 ҰK a(?3HePMq ! 4 _OSY^A!_._J nC•vxz6pjO ` {@Y._o% UP"< /~)!p8tPߑ<<.:{"n~J@[&L_2ۘsc3-<{|q dqJS@l[8c]cT3TƌT"ixbgO\;O;&bFJP,2$۾_Qk)UG`وf4s>.{aL; Іf$R`7,Yl:k=ǛU ٸT*c0*A&փu;N~BlNA97bJkZDxzo%cE]$% _đaJ5UÑ)~DH[b Vc]Y0# C)Q"jUvUpg'=sC滸ҥ\TRw} LW5I߿9'7$5BVf  :(=|eeH۷ XTԜ?|Y[ί:t@ypv t!-}W\f ґUߞLq`}?SˊH;td aW; ,s;/j^[>/|K^7(3d5Nw>g93l JE`<+ܣ~48&ܬez_sVpz u/vR -Ea.X]qk+JSk`{ӥ%4 B!AoXMQl|Mږr^8FjㅌR_H`T7][x{1ذޗ xsUPo`p8ݒI+1›M}F\_ZtU-3y\f߀$7b~}>>iBC5E*"3[RhB.e ";=oBOkP}W xJ{aZ ߻r&HRp<{c ;tZg| 5VlTï\[f`}2Ɨ%Zs+ԣpr}#g['}?`%Ci1y{/ t?S%ӱ A_"ŌVi6Ÿ`ڳ)iHJއ68>|G,  f&t񑧵cZc[nؚJ]|ьAaB 2(d\/u#OGR.b-گG&_S7 ;TɗtD}ݻ۟/ɠ?l>` ,W+ޞOr(.By.aorZC`cp (@ JiA>#k4vLycо{aV_BK)RnG; EIUF߈\N xNcF 'k$0= '}D—Q1$]#/™JSx\ŇËC꜌:wCxKC1S0aF7b9 Ejj(,,ĸ-s[ʅyǏ P2EƹƔ}t z*K)QE.v@*A0@{N1ZRХ6fk;BVi;aJ )j_lZ88-qߵ)7!k jo7 *eEpA8H!l@vV#ʹ4BF; xF$^*St7} 3>p7*(\JߠPr#jV9\ ,{ $&c\%f&|p5{ǘ@eZ'e >s# "Gb^*26kK0Xwx6jFkӫO2JLriX3s"D^^8?owcY'@8 &OiJRIT>GBO}\H߃LeFef9!TOY,l2Rv=$M-൮:N:)V!4yho'gsm'jML+l}6hYഠ;/tDj9 (DyɋC|3,_)W+CtaY4Af)AdIZy[dHo&Vsro'wB/{j|97yr[avĤ;xC*>Z8* )XI% `| '@MyVW5wdpx#, E8lzREX9[qq!l?ӅLi~f-DNY;oTHOLWSx@ch YNW#>i/^ E'7BA&NOR~.$J7Js@o8kWps7j 7̂Yj 2v6H֕F[1g#d:W箮ii.'mJc~vj1sI >+@{X:3?YST$_?P VBNe~йM>aFB~γ#_ʊ/4 ;-h;weNimo!Q6BB"Ku 2tjlkBt>1~k 6 =5+#8A&6#%.X:ʨn@#(3m/[ 6fز ^wg1Y&n&\33i[G.T @H,-1~]M()\cmޟ%w8up8،;=>g*,?6 @ ḙ^4Fy=:wZkՑuS,zdObħ޼X{ǘ.'>J3bX Xd!wf_^F)B e$7mZ UT$j_]tRbivQFZ#+&v#sL/Gg'*H䤳^$hfPUږ$3>2aQIpڏf!|?:?sn+ tnBSjioS6[[ػP\>w[ev1 UK{jmAt/86BqEH8>B1T{_zl iL͝NHC6 JCs9FTQ%'\E{"z(SrI_-֮ĎK=hnBSiƓV8k>OJ#5NP4>eT@U>\uB(ՆB@i%;M@h \ ɳ(:kß998^h_MQ,_L| dM!ka񞐿s2α iʢ`p,{IWHb#"'#:ɷ÷أ} $ȳF7 @hpkTavu~ ~r~ݒOXcCEG[> 1\(VQ _]5U'1TOkrVp}2iMgimM~`{1`K`d>j38wny#G1tOcMi?Ǽ$޽rpzLBqO;8"g Em@|W!@~9!~^97bjZ`@۔p:-ξgpJޅ.ܥiw} *$Jm4IdN'g'TWLBZķz"RIL\ 4U*Q.ckdYZ*pE tGncHm&>$A=a"No F/w#&/m3ۀp;Z#>5xVKA}T{7[Iu{IO셦&nM~H?"mqae&5~!*`hQgV\ ] n5Ac3;0V>EpF/vpHRϧKy.NDςIxhYjgCV)[ ʸv=b|>H2.M31v (4"(c^hdx Eh PLuAL(!S%|m.Z/%CZJ@SϠV,>˺\(rj8ԊĦr,ZQ)]5XV[M"kL.KMlUwXKgTg) pUg0Hco.W:ئgL1)3H) PVSSf!>iU[58玏"+˪ :ܷ$NBm *1V~贙k자Rw\f@K{ڪ @)pṿ5LE]n,g$U\8F;^z=8WC)hn`1% v+|: E .pP pS(nsu i#= 6~+ ="f B6hVt}݂:.)UHAJe;bqo.|\0p&A l*Sbo5fU&>'9KHyĺr|`|* @S>aM`(>(c9틠s&.M@\K2!M`z7 m,rM@ ˆ=iCGZҒm b5s #&Hx`Bb EiZXë~we^4L7e x77,OV~90sjӯ™(/˸>-+ g5 -+e\,Β5|a+`-1cu M 'oVD2c8A:B:7ld+)?Q |Y0$ji.k!qϗNyR[{.#xqm>b<q;+(B9MM(2b8N2RGP384ςY[«~ ajOZ~k1[PM U'옧JlW D^X3zҩ ЇrȽ -k(2(ǘD`vBXjaiMGHӿ} +FMrzg=9S /?ƭ u_r$=z]'y?:ZNh ?'$NŨ2ȱTة؀ǜAcPd5F"$+q! w} P䛤Ɗ l0"d*1n ;lG'g-{ /Gjymm_xd\OqR9 2/i#Tog# cއ7PV9Ξ,6߈QӟoQ>g7Mz12O$C!fbā2ƉJB4G&(9xWnח$IIgWqP3ȷǴBFNMe?$N  ?Gᰨ2uQۦM-JEJ$Wh6rYLat1?(B;x 5"_fO|5-̓ƒT8Z~Wߞ3OK5-iƼ3Uu^'(B;s,0}M;qBAFiH&Bi^[ީ́d;)˾ 5=6PcCl0f } QGGǁPR@uA2SYYr>pf7֏wpy |`Y$ }hsdXFfP0pNAZJi'"~"ڱӲKG$U'sִ'O~_o8.X yFΗ}j8LysJ7K-kՑjKDWצ]MC q3@e\V_Ihi"~w-qET4n`_ 2*EZUTԣ]u 6]hnɰRwsd+vBoo'd:PNӞg "z[Qdw4s)ڮѼw2Ǘ㖙MΕ>.[g3q4 B.Co*<"Uɖ ҅ѬM>'̣3`M y]㯓 T۬|{)̅_R s4?JVan/&88ɤ_7UmQ<_?vNɲ̃zK6{ 8J0A[I'"0ҿ_` g{i;hl& ~d!g=#1Yd@BZ݁~jI~WL8ԶcJ^6tD*up4ǠW&69Zi`ߠ IDATD˕1y^8=8=||:R4a- /WlcImツc)s X7 '+D]Ȩ0&[)YZ!En(!-p*]([|b-H@K~$ɅL= Ƙ@ fx'(5kGIqY@B>BaFL/YvSeϛ}_ ~4_8a {˶Agຌd lgQELl! {[Uz!ijB  1J Qq\?b)>d4\*P?3{1)]$t@+`H?>HDA촑`{4a^wtś)qf:[rAx^=A=YŖB1LPD ~m|}61DnWe@8m>Gqȶ{;#N2ì T,|$SP%@SLW!mꯅad2t~#ǽw҅0j(-'s1 iEwy`؛L #\=PHL$ J擾ٖ}-1jn!,S%Uñ6eƎtyŬ̀P7xpnCo XZ[ΝJ46/C)8ǰ&mYuߠdu7P|%جzlL\o8t\GKS_0| SRD^pڋM=OHh7D ytas3Alc.9ݳ ?PuO϶rz,xGkMI}~!p@k(puwr% -_+A3\.l͸Jle(c|J% K;@4=*hAT1YI-g>^;DIQn@8&. lmۤ<2 gZ9sKJg WVC3%Ш84d>=i/B @#udzc xcÃC:,&#"qI(}_ O¾d [WoCDDnM"6~cVޚ'Yu>cҐgQIRSrБ I:C?Wf [ˠ8:0xZۆXk8v = lHiWQ`KZ x> V` -$np 8ƀ:ߕ= C@ pXOytیF=SN*s`7Vj'[ಗ;`8]ԣ9f[@Tyuf*gRTCcRˑB r-"퐿N(|Z,T.6X;(! JhEDE[B`$Ջ*ky]{D F9 R#)n̴"r$pY2ֳ@4z{TyxVQGaR~ ^7ᴦvyXiq )?U&@CʔN]Si0D o&21*X:S_޳#6c0n||R3s}.nak!7NA9Us}8eiKrʹ!R_*E鈩xA+iU 's1/Akd.7bziONpoб P+8Vؼ~٪׆*8.(l*"l3Ͷ\54mCY&et(M=U;i-0һIU9: ҝ |_53.y;}>Lݡ=IGJ?g*c*R#"M븹䖒|?a𶥤x.ސ$;'.~M$e9.x <(E ,P$ %oRgJ(۵Af8?E mxy.>Q(~.]cSxH`qzWA=_$/JSHx}oH)kW0OmJK,#_Zi=3Itg\aUϠAe"7.\aGU>wfml>c|)x!~ܯOX-l7Dql,brЬ+ؚcO6 t =ӳ.`h~ ^~VȦUDSn#\iGaܓo.1v6?Kgq$,CO|%%gup_%6ELbb\uJ)^55e yi|Xય'a}1)IH]@NK;XS~sgey%8ZHL6ub%9$S"6 t Xߤ25'3)#1qZO 8ZYG %I9U0ۚe:iKC#$bkI$nR6XmUߟ:_$ $sҨe!H-߅+@ӡdBi?s"&VMчiv ܚ4LԼgؾ.Yuz6gw΀?ܳc68e#mZ>[ĵKOEPR2OGiﱮC.@}bk6T{ Y&ﳩ^1Ao &u˒cmv_6Νr2[G?A־@d3q-N#tmc`-/䒿F@A>8c̥b9v2hCσ?`ygX*I>}C(]d:@2)u7/IL+^M1.P_@VҒ82!`pr[p|po{U‰zHr֤=a[84TE뷊sF-!bLR)hfW }%sVI( LpcM≯NPP PoTǞRbI*c _Z,^HDhIBd`P l3qx6ShkHGLX Hwo Mأ0np>3izô%]t'^ݨoK%2WR”a0_9̈́*eӫp$)mq֠8!}L$nh=;öU4#1Bb5W1晻4tJrp+i5{4HAvv۠nn$\±' :"ݻ9&f01NJz<{)0h,%|Y8z#lc,͞ GB EI(A3A1Wr͍HjNz1NYʈ)u"I ~d95PP ̀k+-3(+b UXA׿ Hζ~fLxXȸ>_XeLUNCOy!+ňpjy1αJjIu8GS?fԗD ]?:?Q# 2@1Gv *jJhxNG 1vXBB  .QA/6z ̒2<[G@Y YT?nx\%(0+e]>7c'`J~NE1Z%zg.m0A1}Os鑂x\pX[/ޗd r-}|Ja,Gv<Xap/I˰w= -V8ӱ}5F2#>E@ "wcFRzH(ȼZ, U'3`oap<#[lをbSYn-:||.xobOٮDc\H"t)j|gH2Ƥi^MpZ 6V G%֧#xg#\w0 4j_0"WY0thBFуqˤ#+"H>݉R$O[#1X5VV|ɤ"igQUOouܴ!1)KeHT gK2s;鋙ZZ)k@ ,"[J< ^r>z"2=&OH:L3' T\mJz~fp"C9_fWR'Oa1kXcXմe|32:8ëULr G:0F6[w'\H"\E cWg_+sL{82ZNÀ&#ވqI)uV s, =18~S/` <Ӷax`B>)F.2D0>YSi<}lxXo,jZ`3e#5 1&!PPӂ0b f{ w RS#*fpt2.y(GYfj>8L˾ ^X&#&7ٟk.Smjkڑp?]h h)c \lF-w5Ѝqp]'y>f  W^uo DE#O?Qbrft(x4"<0A%XV {}Zh椖E?خkx>6C;/'kȦ.u/f(IT{C4KVR5`Fp7mdthǷ74 *W+YЬY':x6OțipwOn(ڗT|$ c<}+5-0Ͷ>}xa%  }3 \2&1Ԫ O`rF.!O'JA=/pR Q.ռ ~c)4|cO".vfφlÔVd= @0}J]ү nOǸqDʉ+Ķ$kv/yX߁ϿEk ŋMG½0>Je4,gp8Q"4Sv(  nZgX*Z.h (QfZEvVbL^KX+,NTP jUhajpxZh/yn8Y37 |( }(eUQsQNr- -or8y ^^{Ba_E-/C}khE: ӛvKz+X 7S)%_{u߹4W620`m8 nHCB}u,ڒNhC5 IHBbRpqcLƶ0` IBo{f}ks{}hߒ6M}"Ɏ)X8E] Ӏi9u[c,.P NhDf] ߌ|/R} | p[Dl5o4ʕc-NOq N' ,rCmԧYQƼ?ߛ<& KHYB2# lT+2Y[ f1e`.6*uVlZIٕEl %V_pr͐zf bw/VݳPix,1h.g<]knސw* {WWOlFR:\ݓZD@m^-L 4 E&l +?MbТF];R7oD VVZi7{OM(.(^قZm o qAYg(W}ɇlW?7~[ 9o&M DB=b 3OB]%Dw=5Aup n-VDqzT;`_ֹ.oBSV#1hȿW&7)Nw<߳oI^g{F䂾w'a܍aJ Eӿ@,bDLIëPV=.0פw(;+獓{BX- MP͠tO.~13˴uGh;mW@{eSӉ Sp~`Ok,;TtvrT^D&ps'&:.}Bys (=}nHPz5K6r9v,;|&|&$* Oz3ۚ m~K[U 2%*8'pN4j/G6yM_gP]Zkenv Ĭ~8SiM]dGzKKp_x\7`p,fuߊ:}ދ`sw9|k=-cBnX #nf[zi/p=[#Mu{M\8XEpoOl)E3۱p[8r[Jb|֧$gд;0^hx'Sn.LT04vd~MwJW%3!tQ繱~gm"_62N?@6)PVI]f}ß#VG2Aա\}_ ϬSg]Sdxm7x )xNҳ (Оե8;! E+ϤJ&:pw=_;ys*N:v4Ʒ#x`J'W0d Y?Ze/WM33OBޯ`N/4X+]E0n= mf`D#+ *ۼ\pƏLb^m9}p]Aoa3Ua5RXːѝ(%Tx ԯ=$eT&&J|ޱNQKDT-W^"3onԟ9uЭ?b9vo9~ I+7 ᒫT7Rp`3yOpm2a?;P 3.p\*(7 ݠqsaB^<[Ι'iP7/ɵȮ~Dms>'N<'AgYOvH'/O/v@KB&zJN¨=|vQc@Lϋ*.xvh%`]%%PyU7rEY i ma1H"sZ/>8z({i"',G`Ey@9$*2N'HJ_yR,+;~"V{$;~&Rd<zԈ5^8\vV0Vp<'gwp 4!jJ;E;ALg纋V\m\*IgZt~qRr.gL+e¥yW+eצڈہE}`l\!(nƙrծ+_{1|8dr) > |({_wj*F|7,Jz --E\n$Yq //DwwU4S 0Kehf>ϔmnYseal^vdFqP2u:sB[p wXx!$u7/IJ< f0d{2?ʨu5ީ]⑬ .HYNn2c2]vHÇp 4rZ9k7:H8 ?mB-G`4<BI&kZ׽'gSEƎW? zJf_oVX0PYr^9C6T,rĒ/Ep~lpe/Lc9ÄAS(F|1# QRNV:6H:~=zb.aƑV&f Mr5BaK-/8wb|3X_p\~T/|E=>YrgJ7(bu"dMWgb6QȖ}Owaj/Q CafUz]T,~Ƙ+où2(X@ 8Sy2~'q]qE p1n`]]FoeuJ:i%/4#x g5]ly >j!s*IC}gwMROOm>2%hX`8Sӱ,xZZ/[ 7ɜx' }4#q.O3$3JByJ93ņ 梂Fm`) $Hj$:dN'{}X3A^‘&h0!dt_p^zFM5"ηwW{iN epj#$ggYy!3f 480SBJ]φH9_*a4e(sf:ڋJ;&Z:np.J6#z N\qH]&QP>0Tv.#PVA]<Q6Ox9% x #xJ쩃77CqJ19b BȄ;eOYJBah5Q>̼BBTgw ^)x,C2FrKZҭSSO|bY%O@RyKYV]/guO( .]G@qh+RdZezmQ.^XJÈ u;_r ~m&ԏ$Wx_I$vܒ7%ȖkТ /UOċPbv.b6X'̾ gD_+A?#RXozJK!р_f97f7o5rRsG0?ɡoDkTMMzeAc/gXwR@ !oX: Jz`JՄ5/Z._n;c9A$Y V?8+HIRBuuš2 uV3WCy 7Eit) QIlYXQ+.l2̉6#vJ4m`6W9t?Xkk%ubyƟP{*ݡK&x183)zYXqO˱m&l3js==hMkj$6{VZc.l.]ZBjԈ[>sX*7 ,ݤfsOᗔ \rMW\#U?K_g =!S'BI9 ˄xb'_)b;{sgU&$q4 =83V2ܤIpPGP' MΠ x,W>>mJ݄mN{\g@7AcHHqI8n&h?BS+[_[7:y43oRXslBM:fC'dku5qЭtGZB\L=gO+re _yԵ[/$)Z2%fBylqm3_-MuJd"ѸpS٤{2e,<.Qÿ㯲'~>ȶvL-ykD;H Op7[֮{K藿9ť mMIU .X/:?.xW| p_[Mx9cLHjT. \9b¼^IM![/[rYВ.O(h u܅S4ߵu/Rr2ͳs wrp̻8̿>Nֳ9 e`Tp)և65K{#RcJqhg5*o8w^z(ψRW7h;YeչJc2_d鞂cUiFψ51b@k< ZA}3:Y٩ߕ_8n$ޙYr_+sqPR8UFKaE2@T:5U+/+C-%D7K5Q}^EkmRP^r"5Ƴ: XJHS-fX[xb־F8eFW\ZL ë_*OTw]߷JOiԥd}M'9ٻ 1 X+/5r.YOxV0`ǪDs*y[k-KB:*X:.SE{u *ڬ9:=ϵ9wlZ,3Wt<95}&D!ړKJ2yZ;8\"ik?.ݽL_`DG~0DzEAc3kk|pv8ZHйzD^nY% F>ua4 D 0!" y)9f]G("2o܊j&~mvpmI}YAF_Kb_H9.fge g&":Ֆ~9ۦ]ŮP|ZLG_R@eխ'#u1jw2q~6]v 84fo Vm%wN;)\֮uiwGAknĔfZsJŮn~}XFLy%&)mK?jU{Q cUz1 x%4`-ڱU++2gD%F݄;^1g&P_y?m$BW1]KmD٘fmd8EؘH"zL~:X.:/)ݹ0GLMr{&J,eWmbu6=گT&Qsn:ivP|$\7PQeo؞ YAj{O)ujk aCg(J=51o'&AyaFRMpT+0&gN E aʾ/\qُ *44Ӕݼz]-h1%x]cn7DȹrlPZ7bGx)0=$tj4ptaZnj dmJg!}_SF̼'㑣!cV,G3ڼ[ij"u{N^"WzHGz;|cDUbW`ؘ7ϕ(:6(E)jF'PILE3]P 8[M8r]=q朗J6D91y2=l"ޑwȻIl̸9cI֤ƦPo;Ş)bK?;W ;yW6cO_(~eCS*ݲs)S~\.ĩ+z', 8ݴ3* *eT"C.sA Ȭ)4?W]I[ŎC3|"DBU6Џr{W/E{lMo;Д\&=UL7c E*յ&(u)k*N:ި.}[Fú/E 3?mD=jIȉS,݆jɃCoR$FjJZw;1H4#D?)GvBzJ*mhij}:>8(֜Knj![NKbiƯ ik:צI91 %NSy{(-a #>\2!Vnc|udgsTr\o4${:*7).puZ[uıq'W{_J_Rz{.uȋF(fWDE@8"^G (bU2]_> t JΐKw#=L$+ fmy:hfJm8z4_љ鼸R,"nZ)z]/au\ڱϜjEuR0[QtX=̅w٩zYֹ+Ntj7)\?Gh?9F;-R-9 _ v =(~Ș>*ӛ)Q@pމJ~=MzK8v+"+.Gc덖 MWiCGf~Ӝ  ܙ͔!/:fGX@vG^+z}I:@þڽ}Ғ^rm.9f4 $>7^iNzT;F ,=F:o"k_DG~>\Z)gDJ -Q#8}ZV-{R09 =nkm.5gBI`Њg;Vdί%sFJ]6$zMjhSRQWpꜣEoŦ#XL2YGq9^" y=uEVՎ[ChT+43o2e[dZ(Zk۞*.W.|B3B=iw&c}n|~mww@א pIDATcۼ &;8H٫:F9:΍1*K8X}po.˦͹][FYyj/fUԌ W }{s}U n>/ƠSi]+BH*rxFaL]ПN Č]̱U@~GVo3`t|A>Q*\//ෳi3ya˷pqZ@3<3[cA@P˷'_~Aʟ_ 2O ,5?&lb9kSsykێ”Y,?'T LACJ[(.%xBwK3{14Չhy-+ 0aH9/s6gf+4>\f0tXdVsU*[&.lcMK3 KI#(+8sKΞr ")+ sBhiDƏ/Û(fdZKR2+#~;TBTK* Pol[av-p__UH\!@5ՠdմdV 22\Q~ǡL7dJo;2a 3WC5d[$6 9C'Iy3wE\wIl ,wI@vf ?-@  ['y"5sU`F:f>އM<yWXδ@]u@\_C^+%@1܅H6vv0忖0B*C`7e@xG+U)M.p*8 lN[ n t`+էll>,%7%2b(tBEfX᭍PC,wCS\7Y]΢FC?MGA9 :?*B@*s?( JĒ XiicO_eƔaL ffyM;^/66IA]. @, NJNgL_}BH_L`zHB|DƬp, 򖱮qߕT()#9-ntII]L~cMXov pk;Kw~]vXޱJh\SdNZ}\AZ pՌ '6 t山 {?mqI\;ٜ +V=e"6XZ6 V%92|pjOISݥ s;afkLRjK'){Fvj0eLZfKur,KD$nWMzбI) n%$uaTf4\zENnĶ5FYK#z)!p-ݢT0KU:EY(Z`˚K )wnsaA9,StyYګMQI}t{tѴtVꮟ*GْW*4 qIENDB`rockdodger-0.9.2/data/4est_fulla3s.mod0000644000175000001440000005752212257577552017407 0ustar krawczykusers4est_fulla'3sroz/rno^fit-11-10-97!9@'@i@[@ @ @  0 M.K.S `SS@S0S SP S@ SP S0S@SPS0S0S@SPS0S, SPS@SPS0S,0S0S SS@SPS0S SPS@ SPS0֠SPS@ SPS0S0 S@SPS0 S, SPS@ SPS0SS\0S@S0S pS@S0S SP S@ SP S0S@SPS0S0S@SPS0S, SPS@SPS0S,0S0S SS@SPS0S SPS@ SPS0֠SPS@ SPS0S0 S@SPS0 S, SPS@ SPS0SS\0S@S0S `S@S0S SP S@ SP S0S@SPS0S0S@SPS0S, SPS@SPS0S,0S0S SS@SPS0}S SSPS@ SPS0SPS@ SPS0S0 S@SSPS0 S, SSPS@ SPS0S\0S@S0}S pS@S0S SP S@ SP S0S@SPS0S0S@SPS0S, SPS@SPS0S,0S0S S S@SPS0S SPS@ SPS0SSPS@ SPS0SS0 S@}SPS0 S, }SPS@ SPS0S\0S@S0.Zitt?D Ѣ"˗8uzW$Ԣ/DTkweY: ŲCXu|f]I4#"   ü ',)>8C>?=<849-)%%%!.38HHX_o{}ysmg_\OJD4*  4Leu{sib^ONKI?=<98=7858652/5/,//(##³ #+7CNVcko~wm]LC3)  $+4;BIOW]cjou{~yonjf]ZUOJE>;5.)#  #(.37:?DHLOTV[^_bcfgggihihgfdd__]ZVSOMIC?<8/.*&#  !%),./368789::9:87<4642/-+))&%$$#"""####%&&&&%%$$$!  "&))*++-.-../..///////2///2//22342322///-++*'%  !"#%%%&'()**)*()(&%$"  "##%%%%$##$"!  "#!!!"!"                            )g/X# "O?_>$3YwK Ѡ|j\c/ӕ&/iutmode[%XR)o /ʦj3DU"6 *_C7(#C,2ױ2:DDIH7(/ơɷ#" *$/_( 6 //-$ I"OcX) <#;(."!#4ۓ-"#3 ( M9-C %& , " 6 +?!2  $/ . )   "  )   #*   )    ,            !   "#                                                                                                                                            (iZ!3 (*&*    #%9"# $"                      %                                                               ;##  /+; '3!MO/?N,-'"#+/          $       $                  "$                               $!                               *$ $   '!  $9*! !,!    '2%' %,        $  ,:6'    #    ,   . ($$1,/$          ,(% %##,   ',!  '21(     $ '*'!+%! !%2* # !     #  .,!$##!.'       #   # .!    #        #$     !#+.     # '*., #%   !   '.%$##    (  (*%          #'!        !%+(+(      !!,15%#        !' (,$      !/6/,!      !('    !  $+++$#,(    '    !        #$     !( #'  #  $#!+(      ( !         !    #   #        ,*$'  $ (!  $    !           ##9+/    #!*  *6       # (*(!     #    #     !(*( #       6*  *!#    /+9##           !    $  !( $  '$*,        #   #    !         ! (      (+!#$  #  '# (!     $#        !    '    (,#$+++$  !    '(!      !,/6/!      $,( '!        #%51,!!      (+(+%!        !'#          %*(  (    ##$%.'   !   %# ,.*' #     .+#!     $#        #    !. #   #       '.!##$!,.  #     ! # *2%! !%+!'*' $     (12'  !,'   ,##% %(,          $/,1$$( .   ,    #    '6:,  $        ,% '%2'    !,! !*9$  !'   $ $*      #1*##          !,?:.#     ! !.,          (/( !$(       !                   !#'%           %/(*++ $$     ('$%# $!%(            $# (*     ! %! #'#  !!       !$$ #%#      % $!#%$!(%           '%#+*%/* *32%     #'$ '+(1%!     ((!! #!,*(' %((   '36+*,..(+1%! #    .51+$,831*(%     /??.!%,8C9$       #8A?<1!2?@?+#    %..((' $$6<2       *8FH=?,##,?=HF8*       2<6$$ '((..%    #+?@?2!1kl`S ZJhBv9`[n @P:Uhs0'ȧ2*F}o.>- G:*o!FACi8kGnBOQGOrn@Y+~x~8c>:o?߂ObM>R}rXwspt {E-cڱSi}w@z\?cU?eAXCk%% :?[PۊP|mZ9ASRG @dt~oOڶPʚ.(TGRJp@@Bq32 rHy"$* j[4Q[x\kSk3,+:$mJfu,yL @{ eṶ&3%2?؍|BɨDdj?1AK,WSVDcfw h6A[Mgy@QeL1H[wgªm *~=j<&dHP(@y]gz >PdڳZ} i250*[صO.+[QntTYnOޠG|ӫ:=9sږѳ*OGUѵ1jQ5{Vs69Od?ЦG ֎x&X+VF{N5٢Su 1'eM+`7O[h|U_[_r,RiZַ^^%U*F.Pώ dX]9P7~^^׿^i4hTeePlnF(6M @ؿ?ͨm\P|V/ .*bھi8abpc= < 7QCVn(|MUaT'n(| AB ?Ai U9pHh O5u jaL ۺvo2(|O97"c?QGxތWΫ_FMfʾؓSőp2Iuz:cݧ;m`zm[h^gM_4i]9_֚w۶)t@o.sݤL5׿|@Uk8(]2 聲umqԻڬFwO\ZGM*rzSFTVc4eC$Zc%sxệm ' Uᇢ36'Y hIspfO"-E@4`K:7l_Or9J(}\Ygژ𜩦̗Zo0?+ ۿ=~mkr>C^9h l/Qv>~Wgy0O gS_VPdi~l0;!}H`^ttFrs}.K0/e2E pR"Tx0un;ÿ^#5 J'WH˙T47Zhœ^1繺m[h@QP S9;(R LцPFqviB8\oNR*˥}qxv=]ǧz$tr &: e5Ptym t׭+J4=48%S/K`3_Ρ岄m%e8GOhk {6mm0 dnoULjx%c*LuWi_i?5B=O-`lpP^SJ'̘f6p\w_~ԯ%mU?u^(WTYׇSWxVG6N - ^ %(:0Sǟ0U}?چT}~(:Xǜp*B6F1NgϨdԾȟAΣmdiN@Ȓ\sB97]M i=MTe46Pw;ŁpOY:d&(Yڽ[z'{M^ ("G}*.SePcqu5hpg@m ȣG]ő"7 (A9M7dJTJCYO"{^uʴ:>A/ e*(2V#~ A[/Q߯+k^m\e%}*O7mϒ{vdm5 QȑrI1G51=yM_~)!ڝ710 ica8P*~wk>w`@8^[? ݋xĄ?Ro=w*eXF n;4/Nlx[ck7#7B#­l…s8P|sM3@gڍER/.o+tjR0pm}*Cs⑦k['k uwb#oWK!AYf_㲓}sTw?#jfGt%g4/qdf"4<)a[y>? Pt #G&s4Y?(f'oh5PhB,N?@gIN(i,'n^3sɼ_L3며eݠ8pjBeb;XUyuײCW/0;}K/E0X6;0V\س\nśg5/l@IXh*6cGN*g]2o/Z[66qiVr"( ✩UD3;2֗ڶЌn10$==u8Aݱ[r:1͑0AOOl=wfӥ^KH7肢T=S%W/}@1AWHt9qǹے"wew1q̷3)V/Y9wH۶DiQPVUǙln:*!d+ Uyvzf /f^/v .(Zk%RYM yO^YVtScm7-]Ğn y6q-C1+7ZN6cr,BPeOtO[;C)k#"vF`+ mgkʙCC:Ma_a8sCƤ,Ku]u0> M2]^c` ɆWв}mE5\Kuh:ER pb+9R(Gh۴#߸tKRⴠa@džwtȮ@q+ۅjş߫i?LOvZeDУۘNLɠ9.GfPxEL˖m[h}Υ7_<~M^97XDP?_ 0>#s,N2?pPkRk6@q@'}Eu:g 1<~u$4 (A11l,#˯;B1l͗+™W7Jbͪ8èLLW66}θ(>XOj,}xOW^ux, A)S p(#`jMMdk1c8 `LC "z;tl7nj 3|c1`Ukjki˽ mSvrdm7Zg6ټ /[+ބ [hϝu̓9,nB9b}L_jUkUc(*~|g<\g5}ϿdnL.`E^L]/p7F-XrחfMd&EO&r#oeM]Z_1.fT~x'{\&r. ^ZϷ9[]wxלbqY9!JfϼqKT|u/x+_}_q _{Xg%mLwTcHEPʃm}%~G4(Riϝ Ui"-"ۓݧ_D@g"Klx*lʊe_8}j*_z-6m~71뼿?7PlܪFӔa@@0 S41 vIexlm{m[hTȍԱKSdʕ1,8cgCbϿ9R'p/O&eq`y_8gW(kzg4|Up.ˊ?V!4*G+gcfJh+|zm#M)w=zqeOg}Si륞.~{I^N_kog,OrW>}a*Lf^箰[ (r햃'edwFS3s)b؉bO-x`:Щ ?S`mQ LX|O޸ @@{犒dn:\XDl۵'VWU3Mv~HLd#(O& xx.rBq2y1կV00NDĻ-WƗ688'`8.4Ӹlp'ۛ:M ~YX+ZI H˪T=8(ay^f \@.ѰǷ񀵳d'`Rͥ j 0$ YBX)m(^ߗZ#Er&%\EUZa&Cc_F9ĺ"~XWRw2owH*>`[>}}x1X+hcԠjRҡ'?Ju#泩l`+PKUr&Ѫ~i{EԄ&SԉFEK 7gPKh%a,ՀH3g-E9)%VkD>7ψm #QW Ol/Zhҏ bL5rP)QP8ӷ#cqkV  ;cѵ D97&3-ȃFU:,$r7H;2,p;\bb7'Ԯ腍PsMD?2r6|,VOY~1jcUWcڿ?[:3"P{~ru=NMՂ*0LvDahژ d>s⪷f؍QCT2x~oK6|ht` =ifͩ +֫Z'@%x(x)ЉQ%Cef| ?.Э}ֶb.w^kp[2@ ,29o> wR!+ɴ5ITyvѦkZnҞb&llO%4,c9gƞ0*4{ک˸2I?1"=enpgo( ]i (`ʕu4}%.o1% pP}byN*O#DfD@VN(Lmo9˒˱Yow|k;&pʩL*6nٔBAa(}$"76Rb4A { W|&)G,?*K[vb+nHU(] sq؜ԃ7PHwF_zA@>7bg:o~T, _^Zl,87b izBo4/4~f4ONKo3Jlk[H&j1xMnZx/kY2?BRӗzK9s]QIH]4|J,]g[An!0aa7ze⇅-7ſDbL@(KclZ3EV<<(1Rl:|ҋs wUA0'7EJȽc[r-8nb=ɷa|O6,8ԏvw茀ij0^/~3}x:#_mb̦J}Y32\ԗA3zY %}7Syp6VC4팂u&&ʽL3{2SI>L55ࢀ}j0lMǧ4Hic{nfs]k8nɎ17]\(~,f}mPq_g*ХwɫC.lYfIò8T͙|[IkhY-sZ3=j_0/U/?е7aCS,HFKieOD(Ŋ'}9 ݸ zJ[K%Wml(2צdi*}4%F\tIN=!8tusQJGZ2trW+`T1~Ƭ]O)mKPtV: :34>~  *`Ԟ*K¤]k3x`:V=W5pg/l~,dܵǸOt2ʹqgqBfY$P߶.1`DߴqO{#@y+;Y8e,">Ո3DY07ZH*C[UN'9 j,_/#'xȔNEwB̴IǶR6۶XLKLg2f؍SچjW`n5 v,dr2-q1[E-}Tf +}\w6\pvr0 `/De6fDGgOc, %Z X<,3 -' E pB&nwpմ(Ygk _g~`aS.,bpsLfۍFɥNY̦ L87 )XXE0O3ʧnN{%rʗ+C x2cn\KV?Dl+v2oHێwno@W@ JY'ٯ6rW\v $zO:uug) O"M + ,FG: [7Lߞmm{_ڵt%`_^g/·ҊeQhtlUǙnSLTN͎wceڵ4!_(Gȸl U^m4y$ b3tm"u", 8+}eCCjuS j?[]o^,7o# yDPxi3 {<n<,8|IpÚA+L (bHי-SlKV岶 #Gw|Se K=B fҡy>-1L.=6$^Ϫw:4(HsoS+v(7 %/rsfy2)rNrljr_@ {0=MoKkw@i(pȈx A۞ټ2'rE: JuY!2-nZK|(Nr2MIy*|L_oRubJM9$xV"=A3ɚ/62 _c6ogW! 53 ~׸Tˊh-5/QS:c`[dH3DN|/`h-1buH 6ï0O sW-puV'izGWlLL3r,k_cٺT_7t+serl?\M}8׵+ k ug>:Hf Ν6wK)exuPN3ַ7])̞2ՄQBm:svu&殴CCu#O5jRkJ)^S UFA,Xf1}S]p[ռ.@>:1=Q5Tez-ّXbdr5]fۙu@>m슿W@)'C jYLaJY&`G ^3(Yj Xu8bE9AojCrxEd>-, 5"K3s(qH~_xlr$hRFeNvo$sDkc]k>:,-F .(GOlv Vwuyչ:xAjF`,(tvͬ=vGzʈ'ƂiWgq!!BP|DfXO"wj9AwĖe+1veP%/ht0L)~*{BWrMsS3 _#/˲+ u[D2yDxƬF;_KB_Oc}{@ŤDdZY54άp9ϱv\mLAncshg[kf~yo{@ls# /oژ(Δ`&%dz:]9 șdP^ d֮MZ緝`$w`-BGN'& +w'jМ1^7zR*>oNvd,/ѻDO i'T-䘺K|vj1*C 6ڏI;Eۻr*=6\G:?0ZO7QN0MZٓ~&k`m_dFyݱ`5 rjAaIoٞ`WP1 0p K\LFB66@,"􅇊bg6sP9vV^8<䑁OYFΜn0;T!aمfn2qxTbnûu<{w}q2qO =X'Ź1pHF'ύԚ]̕/X'XUh#}&`iM2-nl>T9b\&?.&,[ڌ/,dN=G䇤1#]'I&.xŢԙwFSqO?4KA al$#mc"iXinfA/- }\:LJ8gdS2qR_rIfR4<6\9dN7mj1 I( GK{8wp-610P ڰlS+}ż2eHJ%avV 1l'7nYl0̞S|m}{ୋW9 漷$ 3UֹFS3/K 6Lߝ55S6!|$°:9V}b!*nkRńջw.>+_.=]9b?qU}2j+`_ t{!bQ\ueH1s5w5qeZ~{DŽgOE?ioDEn8mt=g]R[0@#&Kaj(CRiP%134#MF'MbAAVr9J(G@q*JƖEg< 0'9.ڑfWבLj1L^P;b`,6ſ"JE&>|}E+p miyĄ:J}Oi݃z{m'_ܑӃ쒇wKSXm.WX:Vj)1ѐ4[R y,3w呀@]]v8*L3D":%&ƁjώiSSε􈆌M ibFP  ^bi Wԑrb 2fF% mA3&Et1YrՀ`9%\n ,_ 5Lk?c2Eu3Eui=9v3e1&捶Ϝ;sjFFiCݸ+[u^C^Ru0%eѬ7m5Z!q Gc2f~Qrzc%4kSYz#)`5NޛAPދ-`mcھԕ rlX&51$eWl?Zelqêi>=:gǙ,uEn% 1x1Iz-%/c~vN|y8Ve Vrs#ѻ:Е-ryT"[R\ጺOQXaڽ͆3~uxVy>Kdx)^ZSDZߞlRQ@w_ilbl㲐)l~[Q,KI'^@>_w% Nx?.8Qi5WO}G@ IO*}7 0SSrǏYZ2dZĽAMF}}o*kٛBQ0RK9Sf>t`$b {8/6J?y׀uk5;^f2ɆR7jI4 3BuOZ+pY 1$I ټ0;ެ %֕oΊ}H~h\ۺ`pp/:(n2xy"j3-{'Ǭ æNՓAF,u$o7?7RZsZ|qO5 SxsOQʹ$6eʱ_akr nlPZi]{T'3=#;+,0r|}Gɛ|?>;(Z?c1>@ڽByreڳg]PLZ]!e'8ZG %ICWwGt߆?^O$P6jv2<Y6$Op tP>-hZz풃RW"Wz}sSqfk 2oX@i  Z@j6 ԷJz Fe PN' NZba6~=soIߋޤ6T?Ѳ3_3u; 3< qԒ)  A1;9X6 gCfb91Ev4|,p^4=o |"8)d84^ڐfm_dNRiӷ=l:H)yO 瞊rNkbܫ̲ݱ,zO{JDu=)Ҡ(1,m)'h@fƧSXqH$%e1SRT΍в5^w5ȑiO6<9$w>Xvs}JD/ "B"dN[LzIj?B&j̤[d&TeX0Llsrϻs)4nOSL0k[߇ 8-93]3>Fv 󾗡3Nu:;&|2J'Y S#?y;a~tk<`&MyցoUZ3?wDi[lڔB0C41*!vZʟ7ɿIzk0"}ץi[J;9gVx%3y7 ۲ 76NL XR% cU`o-%Vy> LMF:9nuy y1"P2oL2h7͌\"_&Vvn>Dz.$Hw!z,gff8,s'8^b /%:k71{%1*J)QDw,NkH)FE-s#xoH(QȄr&۳B#փRbyPsTۏEsiд% !|+S.!DeGb7_gO 9Tvw祭y c-d E9An-8Xi & ;(‰-FS9XO͗r\ 6-fgO3s 3լX(z-HL&8JpDE:nSF(;\A/rRz {Vp/d6%'| U2b9 IDATp ^ϱMr:a˳ӟE(@~Qn.!4_-z}Oq}C91gHez~ 33فmL"W X BBv~#1fkwL@NDX67Z?%Je! 5lX_Oa+=Ҟ4!{/$c5{T|yX+8L_2]@OaټブZ4`(9޶=A^_䓗ɿvFm'f42Ը)휀ڸQֱxsr&5 v,mlt3Ɉ @6^٧uyۡQe&`8o}78{ؠUg=9epw|_EvuDzr`v\VC/G߻eo7C苋¦E!P`tӉW6p@_IH[M'-ْeX.To1摒\I|93lk٬8n/Ђ$wwxCғǍu䥤"4a=A?k% ps`40R']6P173hzOm9ף0;'wʜlJ(Z"M8mVy=°HSa܅@V_ٝ$JyQ˄ , $rA`e.gog>[|TtFrd4X{oP>:@jrOy1Itde-0FI3f's.]1Ǣ'0OPJ.brH2 58#] f6UP&Peנ%'d}e41*2 >r ;ad0n7x1b{ZKh @s;1uWOVm67TDɤ@Rj/cSܩ5_Q ! sø 5Eڙ)D_nNox/qGw72jG.-M4g0.]>8FјPu<=&JE\^T]tJıѤT_'Ig<5dU['?",ܻ kK:3?bKMP2p}U_K:y};6g"btge&Ħ>NЖM..OφJdߜn[-~r[8>]).cqL*nAUXH%|ݹin'&铭of=6!76>J~}7s[ɥ]#+4 +(êW"񫻝Ot|G=1v>dfN>}[9Xty_y!a>I `i9kѶ+ic]yޑw6f/3I!1(ژ8+@Y Xg/=)>0vcNߟÒ B8|wMra؝2m.Pכ*(2 b1Jl+6L&,c*JҎ K.oͺ= %@ s-+1 h(vyW{eam9|Dzn@(2$kwVN෪k1%}*9[HHżZL_MA#{j|ʳ 5J2g9OOBd$/ґ.ݜ~?xAsUu ylv E4cIԡ=ҡ?S0y909EcY)CUDS]D^i {=~ OkXQfZ%2t 9e8PP&O_nrrdJ#\-5\͊l׺m!u t*px;K#z1ip<ۺ5e,q0'jff5%YOq !u+u[H:.~- UsL725G37ܟ6f,DSbS;sagNoKƍJX&׻wSNV2A*W+/ O4̔hxTpG5Za@1-9SƙvZ/XqYKn}GǪwf(S}8b;kkJީwG\i{Z~ǰ{QmrI,q@M `# Ja8|KFAG#"ëGRwu;`Z;KyPWO%ZL;[f`PQSt INq%N5vp0z \-{Q5̏T/w鎼xXPSf)f$]0V`.iS͵ H.mzNXލQ檡Fx2 7z W8ky`Χ[%v9beE >͆<.E#F"J#`o1f^K '38< ѕuS%q!'# Γ/ʥ'ߞz\5/ژlPwAFBv,+%3ή,wh ~J}Ur1:ڠӕ32fDN{st049H{ ,8ԛu<yn gz$~W~-r@ 3=DuE {O!A$]cu)">=8>pSRƉ͵7)shRp`^pźP'_DB ~FZXb/T=6Ƕa1HcS z{Qu1 7,A4E)ޯj L܏HO?;<8fiu2EK\/{r KL?=Uk8=cEpﭢ)_|fƳG>S0˝zXZCQ0DIO;>@s"Ws:!^&m%`%bQOHlbؓB+:jJ߫=iۓ.sŏlS'ى$:USl*RO fyܡե! q(;!T9rkO e Oo7w>w_zF>[M|׿ͨ,-#Yaj;N=::\ Q*BSɮB|%"r[ &l "Y뱅VٱYŚL!Ў-CX&9 %Աha$\7=uww5 & ~e_ꐫB3f&[BuRS%oQ76K&l ?캢uoD[pכ }vpXZЏUy!:yh.XIzvGO BjHZK=n%`3zBl]ع Kf9Mg;B/c>Pz;YsWq浾??}dܠ**~rnhΫ3FdOR~浱<ҧ K^<1*+<8=Ø%夽Yy g&ٚf}>GUڔpփ%ev/_,^fB[[V+?V,]seD<]vF_&̒S+Z :h7x" 5bM+/ξU^wp-zIa9!FY[@D;ZMXɞ1\qgu:]NR% uhs SЧ]fI\• dPd$2cW.wBdG[Br|E3`{"x C䨻WFow*cj_ -(8+FX1ɜm|jH1٨v2Xg6Wj@=tScJUa攞gxNrP?ಱM *9ou8R4'c`7*%zx0\fj# fJ`V|ᲵYgYM<#ޛ)G+m_L-qWCh;l#f@}ga |x*mr {KY= )n!澦ng&r\R>R)][fy0rlnP4 Y(K_+Kc=Q*zԤ%K0׸g#6S0eN>Q WVg]*x ~4Yg._ic)4)N|D)cLc/Bq~p)?1Iw!AMiWJ)"{:6bYI /ifzg3޸S,"n㣎NryHih,S`8"꾦JtQH[U#O;AR͛LJڙ%:e&T_f̏#agw `H&q]5 N[l5 }@RL6ft@.$5LQ1)\ hȯ7m"#WBk\h8fKPBULNs%J*MkfQ;ҐU6 z%/D60yl1nO(Pg qNȘ,Z KarJ^$v~}軕zoc.>-{_lΜ.՘sȷSiYuzW9<1pKB6CA:rɨaX4m;ȑ9U +t0u9J_fWmm /MhfqFSL/mQ.qj~ `|(W]vpT^%/ Dv9sZ)Cvϫ5A4GբH?^ up_Zc߄es0UuG,ѧC3.tOj*d#/ogo?-LŨT4Np<"&;6-·OK'x1OJh򨖟\:_FK3ʾ"sS;FsRX7 a\$jh#&U@$gޡ$gtZHZC*MTl@"v*zo ] u{rq'Qvn(egrHnI&u*,TGjHV07ۜyi^B$Ѷy#GBIXH}5 ^ k|>vJD@;;) WsFΘoQ%wB.T+`9Ol +͙+6f|߰{2^9Log ڰ'&HmxCƪ1sոL"½ WqZz,Y?*~Oac9_2wp7=M*%N[6?X̂n!,%z2Q~SOy}d7MnWce f}[0ED]{Q e ԉE)"n$eu&CY(άHxiH-,0>}x,P8^?|2&s| p:`8u@A3R0z"pwK$`PWqeʉg#XV'DbbI B/knޓqX;0{rwŰB Q3fw>jg|Oltks@[ϴgpɯIb֡n9.${oa[),_9QuÞ5r@PK3&H:֔-*>8M6 ٕgG˓r&$懜4?`^9z OHBC#^̻gHOgP2lR7+dkα̛:gOiKZX{@EK|?r(g YGZ-'[`9[[KE^pzDJs*痋+w59NiBGgۦ|yeRÀ*;~#=j=(_ IDATϡ́TW4t4A%=Zȶ ڹ#!~6 ٷv\LH"XhML8tv*Å⚙MĊ3-hqm}he/mtV0(@\5՗N]ޖ,9HAܙ v1gMTpulP\iB3xi|v}/96T)Uub`NFJHI:R[Z36YR+ Ship.y.@٬^1k)53hfԬP(t,ӧ5/P oK߸5ÆY!3VShf[c1{&mG|TwitpS;dݺX0zYx42``GY_Qg ~%~:s?ϒ&;N/q79<_j$Z%!a&':A i1 ys矔8aMJa*Խ›XPg8 *m^.hLjyrЍlI^˔-7<7ΜŬ_[PV{~[{y3oe4Z|6!(͜XsyYe(tG\H;kA5^4S%qՊ C.;3W'pdsq:D|(ȳ '`L|ݗpt"9j?/E.릜2LgEYE8[se޸]/i*leY6J[bӨ̀>(2\ݰŘKiD{ Q̘I]B硙D@mNJgS_YZnx-Rh:*32@SROxc7S c%3Ï=7?_2GEy@MJSr`/0()cjN+f:$}h:sw raeF&?'­>K`|͸~՛WfO@;x:3n17S)]65MR\9T^+KmYRX_PIYO1vgbdT-z26axٰThluM"#BkKRЩ:kϊvuÞ55ZwbD0 .;7:t 2'ktKls,S;r.+dLt^ g` &PfeNi9zs6:N#p`W5Yz| =ۙjVdfqiGi5WgL _gսKf"=lTgt߈iIM0E̛K ǫko2%qF'U668Y`L{az f׳itOFKC77g׉[Ҭ^#v2 3cpxLU㆗nB[m|“*͟NC&ލ#_ )m6[E/ș-)pS8+B(EY#(+1%c;=º)cT/a4bKA'8i=es)WXQ){;t1uSro09y$"LOgp @(yt9f d{芾:tO)~aWA;<BPbb 1rV)Uka2HOFXaJxs=.ƘB";iC.ゞssa9#j`䔨 [`W;S\u}+}% XrR=k͑[0 }w5߽5xl 3Vhe=/Wߓv0F|pУ,߇(o9SGNinʗFu$'ur.:M>xCs^P(oy#FCpY^tQ1GY_ӳL)DJNrqm"B># +o {կJN8?IJul+֞]KQ]LWGIwvs8WbXKa;==!,_:m]beڜ{fO`9xqXk0oa7<ZZdZ6LcZK2ktgS[޾`uXn3\Y|*#nm@frlRyx!ͧB]ptm1z(  {x ]3J_NJ7tiz=Gp+RFujECoMeP%_2V&Bh64e-̗K>ߛ+"antOw9%aKKm+.lCIP)|s9Mپft>.||XYm,vz5lj&QMh'W2r&5rڑ.:RRXSL5^8̗JR֜ ,=FviZ0g$aDX%+z9̗Y-U('}ρgREa}Sc=ycFLʍj[+1מ"hYHS"D cxK5>XЧ6΃ b˱f! V%uM,ir#;M4c$ڕ1r[ӭ"g8\`J$3n۝f_IAKѤb$U%:r 7SO@a[_[bHC2iQNE2\DB(fj@c|GʢVGi/QH4r@a({>K9W|f.rm wU^ۊL^K{YvSd7̏،)T+׿ O=ZС,1X:H=gp(;&JFRy㌢f?3):5FSh+s5Rlrv>=0p˞~9@^otUf?'Jg_+\Naѽݝnyn$8Bh> oᆰ4x${8\'P҃O"g[\Cq)6گ\ʲuS{z8_Y̿}ߌ2Y0kkeBXJ5*QScYc,&o*. onJ‘HH1ͪ% /K;[J5ߦl^3o u1k0f!VAC嵬@vx%\qAq7Jwyɾ3+}Po>*뗇7q#aA~_^,ꄘ0r^epG!M̚c-=aȿcYA>.~? 0n/##Ԅ~7&w1w<plI+,'F{Q˫Ah+"vG5(^O=7x00do&-4.sc„.(>6]xtG}hY#!,"^)w/in_! ~ܵTi3[?e|=cT 2mc?zB}E(;{p7 =81 X+>X2jba 5R2H Y*,cwMq`#~w^kVj@aBck{r,w¯R "**&C>)pW6_YiFWʿ?ptg w_qj>0?Uwcg[`8orqW?zκ83X1brΥ߆]r')JdiC\#qXTabZ쳂6)4,þ:xZ%U޲\o M4.C3$Q3/lszkj,$rRt1Bs֚sm/_ };#+0W yDG|93Qͳދ_T)&cͻ֟n-EnD}:g8M|_n^3Y.A^{Ms+x"* 8_K/؎=}j){GM;]Zv%Jc?~#ť瞱7!ss:ud#|sRŭ"Arohw|TW5'-|)ÀRׇ>#FҲK=~tC_ߌsp&?xFԳn铜ǻ\Z^ȭ#{n r-ȕ_|Rg!eO/^Jҍ}%%CMP ޥ˓}nǥ5ooUVAd'{rl5W-4Uc_N`DޮںQî;k7H=R")PL?+u}_r@D5OgTng?&@x;.[==SXj$ԧ^.qXV>l8}u+uG=_}ߪ O1.5}~|$?ʶ~j 4ۯhOn#1L}ӌƓSOW`?ҳÙm/WZBRL4N+*CHOFnw]1xΘle%g{$Ӟ5MN 7(~%xnI*`oiꑝJt=e'^OI`8*;JDXkv!wjwL/pM CDz3 AVJ!T. n+-䓓oN}D٫cʼU߷.cg p&e7<B= Yx}~&z/_Q][win1$zզݴx )B힞z꣍7Щrk l:=]fXzQ{eoU?@jkYM]'[e»)kE! n8{2Q.#wڹ~ˢ 8 *hԙӯ3ݴV6diy %PsBN7GnVRJ1Aamch- _&XrOPFӝfa)75rK(/wkпiBN g4Dz:{if\ Cm5 n^.`' Kj:})Un>'b[xzAi_`=Էw_ҬEhf.8bQXd1uZy?+7?ѿuCXJ+{wFcMoH 3[z?SOY̔v='?/۟6@j[M/Ķҷ5-f}ԧ7ne)Fh3݃B`' @, /rp ")(}Ofs9M =-h;gLf*oR^s/4-9m_|]7]OeoU2^RRcci&wa>Iޒ}Q0̢C0/N䞜Fgǧmdm9Iq]('dԟ;'mQE.Gl1ukE.|YRbƊ۪~ujJ9Ӱ.rݻŰf]T j\N݁i2K{7o/ D}'BKA=^ ‚# @@gfl~<,~Ά]F% B.NV7!+3Ck Ӄ+Jf.ҋM)mܷ2il>Lt}o' Oo$Pٴ W5r_]5~& ,BTuc1)`YW $ ٱ e3]N>Z `p5Lz ʙŠ4v\4iu5nAAv7TvyP?O/,˰ƀ%yXJB X\𵺏43_>vo: o]EY `g/X#)Ż߻(u?o*Um-,YGeFJ#Ѷa MD?ȸ<ƴPkvjf cVwwUlcD)h8Vt%T$>@Er%?.5J(HǺZ p*v# fWڑn- kHc:-DpWhk?n9~ӡ̬}gElJڠ/\Zux`_?!(̨!5zcNgcٗF+C Xs6(IQ.sjcM$Oٞ%1.&[TWͨ&7mVNvL'`Lm /چUX"ѓ: NP4?/<ԁ[ s!i|+yQG%DC䴶F!u%4N8/%%ۆr!}7w/|G1/FGs+@~t9}>%t_Եo(-|4KGEo?cVR/ ¦'o:W G^/F_ /Qq:]㡯8ض KeE ˥t~XGǷ)!o^f:5HFn诹famčCrhв4:0(mJ:s]@ys~Z1wHroI箔;.\pĴVz+7Կr]޵?< >$=CTj]G>Q{;N Or}0+nTa8orvsqG#{gwC'07A(ud3+~=16p/}:}bag/O)描-BNZwhl;NdSЮ03G \LmV^'6y98>%9'M:v~c&m>ڟb֙]`ݹ֯FkqWG?Xc]bL~Zo gq/Ż=+d203űԸۇw+ȋ G'[tM5)j/2y!^~3l KN);a*/-v}b|zNNSzX wm5 ï\ѵyU}#@QSE rA.ʰBa2wrqVւsz7,7XV2N(\v?O#D`ś2WB_4F^oUTE?-kz |h|l Tbzj)R8^1/)*=P-|ύgea~/qLqB癥y%г~ʮ.z ȟ7=p~"'޲Z$OԳl~;.}\p V8F@ݟV{> v+*ұdM!8LJ[: uteUU $낾^APyy١JڂRj/ 6ѣBUىvumT .\X;E.vFƲL0tfÍ⻃(L6KT% \V.l*T CTqs6[չB>` UP*X\ SI܀O 9vwR9u1yhXCڨ~b h@+^W_6K< p䇫\u%9) -aIENDB`rockdodger-0.9.2/data/blubat.first_try.xpm0000644000175000001440000000270012257577552020405 0ustar krawczykusers/* XPM */ static char * blubat_first_try_xpm[] = { "40 30 6 1", " c None", ". c #0089FF", "+ c #0000FF", "@ c #FFFFFF", "# c #A00000", "$ c #1AFD00", " ", " ... ", " .+++.. ", " ..++++++.. ", " ..++++++++++.. ", " .++++++++++++++..", " ..........+++++.. ", " ..+++++++...+... ", " ..... ...++++++++... ", " .+++++... .+...+++++.. ", " ..++++++++. .+++..+++.. ", " ..++@++++++. .++++...+. ", " .++@#@@++++. ..++++++... ", " ...++@@@++++++....+++++++++. ", "$ ..++++++++++++++++++++++++++. ", " .....++++++++++++++++++++++++.. ", " .++++++++++++++++++++++++++. ", " .+..+++++++++++++++++++++++++.. ", " .+. .++++++++++++++++++++++++++. ", " .. .++++++++++++++++++++++++++.. ", " .++++++++++++++++++++++++++.. ", " .+++++++++++++++++++++++++. ", " ...++++++++++++++++++++++. ", " ..++++++++++++++++++++. ", " .....+++++++++++++++.. ", " ........++++.... ", " ...... ", " ", " ", " "}; rockdodger-0.9.2/data/boom.wav0000644000175000001440000003511312257577552016041 0ustar krawczykusersRIFFC:WAVEfmt "V"Vdata:rU@@@@@@@@J[m}jR@@@@@@@@HXhou~lT@@@@@AHOZjy}vutvxyyyyyyyy{|hH@@@@@Lauukos|wty~}{qg^WOID@@@@@@@@@@@AAGXisypHLQ^uvx{}}}{xvy||yxx{~}eLHVdjptwyyyyyyyyymaYYYvwMEBJl|zywwwy|~~~|zpgfpz{{v_I@@AKTaq}Te}{zyyyz|}wqgYJXk~n^RIBIPW^eulAAA@@@@@IgwaMHDSs{wtpnrw}zlifjotwz}tSKD@@@@@@@@JWcmwyfVLC@@@@@JZjw}~x]A@@H\ouxyyyvoiYIAAA`}wutssty~~{x{unmmxxcMAAAAAAAADIMHC@@@@@@@@Pey|bIAA@@@K^quuuog^QE@@@@@BEG`zxyy}xX@@@DIOYdkossrkXE@@BNYgwxwwtj`UJ@@@@@AJTc{~wvvuuvvwz]ATgu~zeTB@@DOZepz{}~~~}yunffox{|}|zyy|iI@@@@@@@@Rcr~^KFA@@BDG`}}{z|}wdQ@@@@@AQ`lrxz{~zvvwwvtiXHUbkoseTGDAM`tvgUDQe{p]J@@@@@@@@@@@@@@@@JT_m{zRID@@@@@@@@@@@Sgx{aSI@@@@@@MYjbOHAjlU@@@@@@@@@@@KYgq{s_KFS`gmlYG@@@@@@@@GOXft{dUX\tn]LFCEWj|fQNzv}m]PIB@@EXktx{wspmjnrvy{_c]JE@@@@@@M[j|ysou|}vo`N@@@Sp}{zzyyyyytlfkpv||x{jYNGAAAMcx}zyvoh\N@@@@@@EJRbqzyyyyyyyz{}}}}xrhWE@@ADFFDBAA@@@@@E]twaKHVd~}|{`D@@@@@GQ[gt}}}~q\G@@CVisvy}~zursu{}}}~~|{zzwusrrtwz{}XFCAXooZNA@@@@@@@@@@K]n_KFA@@@@@N_nty~{jDAA@@@Obrux|qU@@@NbvvcVJCXn~~~|wslesmXIPWTJ@@@@@@KXgzyvswt]EM]kqwxrk_O@@@EOYiyyqjZJFUcjovxYAAAGPZclsw{zywwvx{~~|{zzhR@@@OhtjgwdRA@@I_ujOAAA@@@@@@@@@@HUa}}{yyyyyy{|~}{{{{hXMBJVakuyz|~{wri`\[^veH@@@@@@@@Sf{Y@@@@@@@@GQ]m]OA@@Noiaabceiqy{_D@@@@@@@@@@@@@@@@@@DIQbszz{rZB@@@@@AAEZnidq~~sh]PDAA@@@@@@@@@@@]tehp{|{yyyyyym`WSNZiv}|zxqjgmrw{}|f@@@@@@@@COZl}}}{tlklnsy{{{{zyyyyyyvsgTA@@I`w{wtpmjou{taNADGP[filoqsuwxyyyyyxvl]MHCHYk|}}}}|pcWLA@@@@@Pez|umhebn{wcO@@@@@@@@AAAbvlcbo{~||~zruxtN@@AN[iyyoe\dssfajs~|~~}ymacluxjWE@@E[qqYUdr}si_RE@@@@@@@@@@@@@FMUamsssqoosw|yyy~yaMHC@@AFKTcsiYLGBAACRau~|yufVMMMWajnrne]QF@@@@@@@@Nau}xtplgc`_kw~zsleeejrz}uuuvxyz{|~~fNH[njXL@@@@@@Sgx~}|zunhb\UNHWepv}~yof^VNRV]fotwz{}~}{uh\RH@@@Mbv}zskmr{{zxxyyz{{yxxyyyyyyz|nbYYYbo|xpi`WMHC@@@KXbcejpvxzpYC@@AAAN_nprtvweH@@@@@AAAUiw{zsmjgqzto`O@@@@@@EKWmkOAAA@@FTbkrxy{{ywpjhmsux{}{zz{}}}}re\XTf}}urolkjmpu|z{}{zz{|}}}|ywwvvxyyyvoghkosx{xuqke^WOORSSSW\bqysmg`gyxqie`bjsx||xtjWD@@@@@BEH^s{yyz{}}}}|zxvtsrruyuj_RFAA@@@FS`s}{zwurlg^UMHC@@AJTZ\]TIBJQ]l{ywuux{}vngc``iswy{{{|}}~~}}}~}{oYC@@@@@@@AFKVfv|wsqqrrsm`TME@@@@@@@@@@ACFO`q}}{wqkiilvreeekrz}|zz|}vY@@@@@@@@H\pvy||}}}}}}}|zyxwsporuwxwohc`brqt|^AAADIO[goswyz{zz{|~~xdPFUemqt_KAAA@@FVes~tmfYKBDGKOU`lsvy}wqmifks{{yxxyz~~~}}}}}yyyz{|~xrhVE@@ADFRfy|xtq^K@@@Tk{vpjqyyyx|}{ztmga[\_dswmbTEJXfpz}}}}xqibjry|~}{{zume\SKFA@@EWhryp_SJ@@@FQ\hup`WRNU]fpzrU@@@KYitdTJE@@@BDGTbosx}}{zyyyxxyz{{{|}~}zvqlhda\VPIA@@ADGFC@@@PozwtplgaZSQOPUY\`cfigd_RF@@AMZhxyl_RF@@@@@@@@KXdluz}~|ysnkhgntwz|}hXMAPboswocXNEBEG[ovpjlopmjiiiiimrwraP@@@@@@@@GXjptxz}yqh]RKFA@@H[m|yoeeehlqsvz}}}}z{}{z{|u^H@@@@@HXhpx|tnihpxzePIDADGTetwz|~}|zxwuuuwy{~|zwtqqqrstuwy{}{{{~}tmgbehlosvy}|ywtsstuwy|wohb\SIAFKR[ejptvwxyz~{vqoswy|~~{qjkmosv{~xrkd\YY[dmojf_XXcotwz~{uoaSGGGQ`o}{{{{zyyzzwssrqqqstvwy{|~~zyy}~wqke^Z]`fnv{yl_THEUemqvz~xsrrsvwww{{xwvz~~{{|~yrlf`bjruxuk_QB@@@@@M`s~wqnqsrojXG@@AP^ipw}|}zxl\MHDK^qz~}||{xupjfilpty}~{yxyzpmmnsx~wqdRACFGGGECCLVanz}}|}}zxwvutrqqqrsux{~{zztmjlmsz{{{|~~~}|||yvusle`]Z[\^be`YTZ_gpy{}}{zyyyyxxyz|}}zsmhecb\WUY]bhnty~~{xoe[SJO[fow{{zyyz{}~{zxwvvvwxyy{|~{{{{{{{zyyyyyyyyyyzz{|}}zwlXC@@DOZepz~~|zqh_XPT]flqsssqonqsuvwwwwwx{~~~{xrbSJFBLU^gqvz~tolkpu}~|{{{zywvvuuvvwxyyyyyyywtrrsw~}{yyy}}|z}~|{yyyyxxxyyyyyyz{{~}zxwvuuuuuvwyz|}xwvvxy}uj\MFDBFKTbpy{vtvwxyzz{{{{{{{{{xtm]LGGIZkw}~zvwxz|}~~|zyxxyyyyzz{|~~~~}|}}}}wqjloruy{|}}}}}}xruxz|}}|{{{{zyyy{|~tdTQOQ[dc`]\Zakvz}}|{{{yxwvutriXHEBAAAIR[ensvz~~{zxxyz{}}}}}}~~~}|yvspnkheeeecbiqzynea^aejnrv{yvtssssrpmjiijlmpsvwyz|O~~|wrnigkprtvvwwwwwwxy{{{{{{{zzyy{}zxyz|}}{{{{zzyyyyyyxwwwwwwyz|~~}{{zz{{{{{zzyyz~~~}}}{zxwvy|~yunbVVZ_ekpuy}yobRBAAEQ^govy||zxwvvwxz{}}}|zywwwxyyyxwwwxyzz{|~~|{zzyyyyyyyz~{wuuuuuwz}~~|{zzz{|~~xpf[YYZ\]bhnsw~~|{yxvvwxy{|}}}}}|zyyyyyz{{~}||}}~}|{{{{{{{{{zzyyz{}}|{sjgjmrvyyyyxxy{~|z|~~~{yxvusrrstwy{|~~~}}}}}}||zywvttvx{~|yyy{|{yxwwwwwy|~|{{{yusrrw~~|{yyyyyyyyz|}}}~~}{{zz|}}}}|zyxxxyyyy{|}}}}||}{zxwvvtsqqqoljoty~~~|{yyy{|~}{zxwurooqtwz}}|zxxyy{||{ywuux{~|{{|}}|{{|~~~~~|{xrkklnqtvxyz{{{{{{||zxvusssuvxxyz|}~}{{zyyyyyyyyyyz~~~|{{{{{{{{|}~~~|zyyyxwvvwy{~~~~|{yxvuuvvwxz{}~}|}xneZMAO]hovyz||}}}}}}~}|zyyyyyz{}~|{{{{{{{{{{{{{{zyyyz|}}}}}}}|{{zxvtsstuuwz}|zxwvvwyz||}~|wsmfciosuxxyz{{{{|}{xwwxz|{zxwwwxyyyyyyz~}zywww{}}}~~|zz{{{{{zxwwxxyz{{{{||}~}|{{{{{{{{{{{{{|}~|{zyyyz|}~~}}}}}}}~}}}}}}}}}|zxvttuwy{{{z{~|{zz{|}}}|{yyy|~}{zzyyyyyyyy{}~~}{ywutuuvwxxy{|~}|zyxxxyz{{{{||}}||{{}{ywwvvxy{|~~|{{||}}{zyxxxyz{||}~}{{{{{}}}}~}{{zz|~~|{{{{{{zzxwvvwxyyz{{{{{zyyyz|~~|{zzyyz|}}|zywwvuuvwyyyyyyyyyyyz{}~~~}||}}{yyy}~|{zzyxwwwwwwwwxyyz{~~}}}}}|{yxvwz}~~}}}}}}|||}~|{zyyxwvvuuvxy{|~~}{zyyyyyz|}~~|{zzyyyyyz{|}~}}}}}}~~}}~~|{{{|}~~|zyxy{|~}|{{|~~}||~~|zyxy{}~~~~}|{{zyyyyyyyyyyyyyyyy{}~~~}{{zyyyyyyxvvwxz|~{yxwwxxyz{{{{|~~}{{{|~}}}~~}|||}}}}}}~|z{|~|{zzyyyyy{|}}}}}~~}|zywvuuwz}~}}}}}}}}}}~~~}}}}|{{{{{{{{{{{{{|}}{zyyz{}~}{{zyyz{}~~}}}}}}}}}{zyyyyyz|}}||}~~~}{{zyyz{}~|zyyz|}~|{{{{{{{{{{{{zyyyyyyyyyyz{}~}}}||{{{{{{{||}~~|{yyyz{|~}}}}}}~~}}~~|{{{|}}}}~~|{zz{|}~~|{yyyz|}~{yyy{|}}|{{{}~~|{{{{{{{{|}~~}{yxwvvwyz|}}}~~~}|zyyzz{{{{{zyyy{|~~}{{zyyyyyyyyyyyyyz{|}~||}}}}}}|{{|}~}{zzz{{{{|}}~}||{{|}~}}~~~}}}}}~~~}}}||{zyyyyyy{}~}}}~~}}}}}}}}~~~}}}}}~~}}}~}{zyyz{}}}}}}}}}}}}}}~~}}~~~~|{yyyz{{{{{{{|}~~}|{{{{{|}~~}}~~~}}}}}}}}}}}}}}}~~}}}}}~}|{zz|}~}}~~|{zzyyyyy{|}}}}}}}}}}}}}}}}}}}}}~~~}}}}}}||{zyyyz{||}~~}}||~~}{zyyyyyyyzz{{{{}~}}|{{|}}||{zzz{|}}}|{{{}~~}}}}}}}}}}~~}}}}}}}|{{{{{|}~}|{{{|}}}}}}}~}}}}}}}}~}}}}}}}}}|{{{{{||}~~~}}}}}~~}}}}}}}}~~}||{{{{{|}}~~}}}}}}}}}}}}}}}}}}}~~~|{yyyz{{{{{{{|}}}}}}~~~~}|{{{{{{{{|}}~~~}}~~~}}}}}}}}~~}}}}}}}|{{{{{{{{{{||}~}|||}}}}}}}}}}}}}}~~~~}|{{{{{|}~}{{{}~~}}}}}~~~~}}}}}}}}~~}}}}}}}}~~}}}}}}}}}}~~~~}}~~~}}}}}}}}}}}}}}}~~~}}~}||{{||}~}}}}}}}}~~~}}}}}~~}}}}}}}}}}}~~}}}}}~~}}}}}}}~~}}}}}}}}}}}}}}}}}}}}}~~~}|{{{|}~~~}{{{|}}}}}}}}}~~}}}}}}~~}}}}}}}}}}}}}}}}~~~}}~~~~}}}}}}}}}}~~~}}}}}}}}}}~~}}}}}~~rockdodger-0.9.2/data/booom.wav0000644000175000001440000006705512257577552016232 0ustar krawczykusersRIFF%nWAVEfmt "V"Vdatanw|ummmmlkkkvj}haaaaafowoel{aa`_^^bqnYYYYXXsyZUTSSSSSUfwveSQQQQQ`ro`n|kONLKKKKJXseGGGGFFP\bVJGHLuu]PCazQL^p|t_K@@@Pbpw~nU@@@@@@@@@@@@@EYniT@@@@@@]rYA@@@@@@@@@@GPZdnjWC@@Myg@@@LavdOH[m~|{yyy}{r[E@@CQ`wvV{tU@@@@@@@@AAASfjWD@@EZon]Qx_GVeyTxq]HGPYOF@@@@@@@@SoiN@@@@@IayyqgWGNd{sH@@Ip|sikhDVigUB@@@@@@@DWjwnQ@@@GNTX\VKCcf\b\jwbMI\ojAAA@@@EJLGBNas}zlHckWC@@@@@NcxuKEBNwmBAA@@@@@@@@QkqMHC@@@N\is}zsrnBmqU@@@@@@@@Sy[H_wmU@@@@@@Th~iGDBYyvtvyv_H@@CjydO@@@@@@@@Md{xtrtueQ@@@@@AQalry`SH@@@]yxxy{s\E@@@@@IXgoVDhlQJB]q[KFAdz`G@@E\t`FDA@@BGLJE@@@@@@@@AAAAA@@@Tx}bGSjbE@@@@@@@Cgdh[ROV}^QH@@@@@BVjw{yxhR@@@@@@RcotyhR@@@QkrWMC@@@@@@@@b`@@@@@@@@AAAfzqjwiYsYNC@@@@@@@Alz\ydQ@@@@@@@@@@@@@@@@@@@@@J`vuSLD@@@@@@@@@@@@@@@@d|hR@@@@@@@@@@@RepdWNG@@@CHMjlZNBUhuz|wu}wbOCJQn`KFAgb@@@@@@@@@@@^qM@@@@@@@@@@Ko`@@@@@@gbjUFCDlmQJB@@@@@@@@^}mLGB@@@@@@@@TkmKuqDhvK@@@@@V}~X@@@@@@@@@@@@@@@@Wq^d_@@@@@@@@@@@XzsZB@@ER_yb@@@@@@@@Jhof{bJ@@@@@DKRMFDSazqVMC@@Fl|bUH@@@@@BIQ[fruxpZD@@MyfPHA@@ETb[L@@@@@@@@@@@@@@@@DIMHC@@@`cVI@@@@@@@@@@@@@OskAAA@@@@@Ko`@@@U{lVLCHR`mBn[@@@@@@@@@@@hxLaT@@@eywxz{}wcO@@@BEI]pnXB@@ADGftI@@EYnvwwvt|ZilQJBCEIUajs{{zyyysPw^SLL[iwrJ@@@@@FPZdowz}|yr]H@@CisIpqRKC@@AHOYeriXMB@@MsoIKXhlAAA@@@@@@@@@@Ep|U[kukaVK@@@TYitJEB@@@@@BLVTJ@@@@@@@@@@@L]ouaQAj}{zwtnbWNG@@@@@@@@GXjz_QH@@@Z}YGZm{~qdgno\H@@@@@@@@@@@@@@@@@@@@@bhTJA@@PvgLGB@@@@@Qu[FCA@@@@@FMU_itnVALXblvyz{zzuogXH@@@@@@@@IT`mz}yvxNkv`KHXhyMbx]A@@@@@@@Ioe@@@@@@@@Jnq`]ZgvhN@@@@@@@@@@@@@DLSvrRKD@@@gyqjlzaGM]jotsniYJ@@@@@@@@@@AN[emuxzgAAATx{kkr|xQID@@@@@@@@@@@N]qdAAAZWAAAUl~~~}{rjb[TME@@@UqnVLB@@@@@X|xTUy_hp{uz{`GDBHWelspZE@@@@@X~|mZG@@@@@@@@@@FUeow{{|]cwrHq[NF@@@@@@@@@@@AANziAAADLSMEOwyhT@@@HXh[L@@@Qi~~rZBUknMHCBEHPYYNBL[mmRFTblsu_IM`s_L@@@JU`jt}gP@@@@@@@@@@@MZndAAAZq\OB@@@@@Odu`KWrRKD@@@LWahptw}WAAA@@@@@Z~v\BjrRKC@@@@@Os}l[\k{{vrsu|phbZOD@@AAAZz`F@@@@@@@@@@Pt}yyyzfQ@@@@@@@@@@@@@@@@@@BKUlvXNENe{{{ytnvfJ]eg^AAA@@@@@ZzYOE@@@@@@@@ITb~iXF@@@@@HVdiTJAhwmhtaAAA@@DkyTLE@@@@@@@@Oe{|ZhwvaKQ]bTE@@@@@@@@ISdvsycM@@@@@@@@Usw`I@@AO^ipvy|mIT`^PBN\oyS@@@AAQ}yZaipv|}mV@@@@@@@@@@@@@C\tbOHAO]_QCdrZCLYkhGtsIEB@@@@@@@@@@@@@Pt~ncWPLGEB@@@@@AAAN_nprhUAQcgUDc^QHEUeu|fP@@@@@@@@HUazRp}uuuvw{gO@@@@@@@@Sp~[SLWyZJEAWmpZD@@@@@@@B[s^NGFo|rkcTF@@@@@FS`mz}`C@@@@@KYjnBm~zywMl~jI@@@@@@@@@@@@@Vp^FDAdkN@@@@@@@@@@@@@IWffIAAFqmB@@@@@@@HlsV@@@@@@@@@@@@@FXiqRKC@@@@@@@@@@FZmfR@@@GTajsyyyT[~zuw~hN@@@bvnaQA@@@@@@@@@@@@AUivxywO@@CijJ@@@@@FOYldG@@@@@@@@@@HYkortwz]\^NGFowcPCR`]N@@@@@@_xQrnBAA@@@@@@@@@@@@@@@@JUgiAAA@@@@@Mq}|z}lQ@@@Rg}kAAAJ`utSKDU{cLGB@@@@@@@@@@ENXcm{gPIA@@@@@Z~vdSA@@@@@@@@@@@@@@@@@@ZyiK@@@@@HVdXJ@@@@@FjeB@@@@@Qg|~tKEBIc}yuzV@@@AAHdy\CnnC@@@@@DINPSi[J`vskbTF@@@@@@@@@@@@@Pf|pVLC@@@@@GR^fokWDKXijAAA@@@amR@@@M]fVG@@@@@CHMosQ@@@@@FVepxu_QBfe@@@@@@Th~jGDBXfprGAAEUentwaK@@@@@@@@@@@@@@@AUjmXDSj{xu]\^NGFn~eK@@@@@EQ\zvSLD@@@@@CJR^ly}bF@@DWjrtuj_WSN]oyoeYLBP^ur\F_lA@@@@@@@Hlc@@@I\oaNBGLXhutrv~rZ{zz}tx{~tgVD@@@@@Mauuuvxy~cH`s^I@@@@@@@@@@@@@@@@@@@@@@@ADGECCScz\AAAaz{~tJEBNwb@@@@@@UiytW@@@@@BXnuL@@BMXfvrXo{pdcp}iVK@@@@@@@@@@@GQ[gt][r}xvtuxnGEBU}tokklkZH@@@AAGWfq\OB@@DOZt\FCA@@@@@@@BMY]]]RG@@@@@F`z|uhUB@@@@@@@DYmjUA@@@@@@@@@@L]opVLC@@@@@GR]RGI[n|P^nXMB@@@@@GQ[iwiJUaxzcSC@@@@@Y}|uoid`agmsxhJWe`PAKT^gpqqqqqstvwyz|}|eM@@@@@@@@@@CVj\NGHpxfUC@@@@@@@BQadYOWbr|~}}{TIDKs{wutoiglptx|~tjZJ@@@@@@@@@@BfsRKDHUahotvwoe[PEAABN[pYJE@@@DLSvxLAA@@@@@@@@@@@Tm~zugS@@@@@@@@@@@@@Ef\NFDXliXGEB@@@@@BGLhXAAAetL`vOID@@@@@@@@ELTyyi[NBluI@@@@@NdycMAAA@@@@@@@@@@DLS_kmYE@@DYnqeZPF@@@@@@@@@@AN[p{\S^iklnqstuuuu`FDA@@ImybK@@@@@@@@@@Fcz]@@@I^ruup\G@@BSe{`AAA^{S@@@JT]fptwyyylV@@@@@@@@@@@@@AFKUbpyyTLE@@@_lUKBM[hpyynd_bekryzwuqh`VJ@@@@@@@@@@@ITb~|k\MHCRvXJEFoc@@@@@@@@ENX_ekothS@@@KbxXkcA@@ER_xmGEBCHMry_E@@CLV`jt|jJ@@@@@@@@ivKbeVI@@@JVf}yvsk_SLE@@@@@DRapz_CO_smR@@@@@@@@M`t}zx~|vqgUDO`s{eO@@@@@@@@CHMIC@@@^qMNcxxyxXOEVr\F@@@@@@@AAAHWg\L@@@X|yRIDMv~|zxurstq]I@@@@@LhaTbpg[Zn~xrmhebWKEYn_FDAcrX@@@@@@@@@@@@@@@@IWevJAAJr~`SG@@@JS`twP@@AHO]t~y{~taMBGLT[cmvrfYPF@@@JUbr{tvximmi}cI@@@@@Njw`MHC@@@N]`RC@@@@@@@ASdptyfP@@@QhnautW@@@@@@@@GUd~TFC@@@@@@EJ\fAAA@@Ag~^@@@@@@@@@@@@@CRby\NFDSc`PAWmywvdP@@@@@@@@@@@O_n}]ENXbmq]H@@AQamv~kR@@@GQZeoiVBhyyx}cF@@IoeCnw{cC@@NtcOHAkt`K@@@EJX||uZAAAVprZC@@@@@@@@@@Tx{WQ}mULB@@@@@Y}v]C@@@@@@@CUfptwwwfN@@@GNWdqx{~~}||zywqlmsy}o_Wes{kO@@@[z~[zxOEC@@@@@AP^ipweO@@@^kBTinYE@@@@@SrxaPIB@@@@@@@@@@@@@@@@@@QhjQIB_uOK]neSI@@@@@@@@GZmcP@@@Ng{vlXDFN\~aD@@@@@IVepDAA@@@Z|}gdoyyywqk\M@@@@@ALXmiNAAAGOYgvlWKZipsvvw{ZFCA@@CKRarnqunYD@@@@@Y}vR@@@Sh}kNx~iR@@@@@@@@@@@LXj{lifu}Z|p^KT^NG@@@@@@O_lt||yxxy|yocSC@@@@@@@@@@Rv}YNy`c]AAA@@ADFasWMD\~U@@@@@Ievqqqqqrtwyz{{{xpmjQIB@@@@@IUbehnxnO@@@@@DP[jzkXDKXcksx{drkalVAHOXblorsqndUGEB@@@@@@@@@@@@@HTadhthDRekXE`rYA@@LitWDTd`P@@@@@@@@@@@QjvnaRBQbhVE@@GmgOCHMZjq\H@@ALXXMB@@@@@@@@@@DLS`m~ZMFJs{yyz~jHObv}gRAAA@@@@@@@@M\nmM@@ACFO`quxvj][\^goqkfmv~t\LFAc{P]zeP@@@@@Eqv`J@@@@@I\puxywt{zRIDMu{zx}zkJ@@@@@FOYquS@@@@@JqcDp}gTA@@@@@@@CLVoht{aG@@D\sn^MUkz\@@@@@@VmhTJAYqu]EdwS@@@@@@@@@@FrtcPCNYdozzYOEK_thXLGCEJS{h@@@@@@@@@@@@@@@@@@@@@BGLjS@@@@@@@@M]n~sgqYNC@@@@@IUbmx}{z}Teo]LGXjrx}}}{{{y[@@@@@@_}gT@@@GWgmcYa{v^GKYgoxw`I@@AUixteVFL\jnrux{|hXHJ]pstnZE@@AAAOf~}o^MFCAP^pYJE@@@TxhH@@DUg~wcO@@@@@BSezpicrZAAA@@@@@@@@@@@@@@@DMWs]CP]hr|vR@@@GOYj{eZy{\QF@@@@@Kj}yyyxwp\H@@@@@@@@GNWakaPADF\}VlkQaphSDphM@@@@@@@@@@@@@@@@@@MhpT@@@@@BUhhUBVnn\I@@@@@QyYAAAhzN@@EkmBAAGWgr|}cJ@@ALXcmxXabE@@@@@@@@@@GVdp|oCAAPx|zxePADGLS[iwdGDA_}ZPFER_houuu^FDAdcSIAAAL`tx{}{ziS@@@W}}pfilqx`FUet|wut{Q\v{]RF@@@EJQ\fe_[gtuU@@@@@AGLKFBQacSC@@@@@@@C^z|xtswzkTGr}|wrlf`WK@@@@@@@@Lwg@@@TzZBGLkT[v]E@@@@@@@AN[foxnMHC@@@@@@@@Pcx~{ysbRJE@@@IYivXNDAABVjbaqaweAAA@@ANZoiJ@@BP^hnsuv{hRDR`]N@@@@@@`lOJ[lsxt]F@@@@@CHMdzcAAA@@@@@Ry\@@@@@@@@Tw|X@@@@@BLV[^bjsy||xsh]p}}au}vnlryyyywtfS@@@@@@AAH\poe]]]cmw|VME@@@]wQYlXD@@Hl~sh\QF@@@@@LnfF@@@@@Of}vb^hq{kSJE@@@IWfuIfbE@@@@@@@@@@@@@@@@@@@@@@@V|y\PE@@@@@GYjsyxaI@@BYqx^cVIGZmtwxrllquuuyqZC@@DOZk|fOMnnWAO]iqxzZ@@@@@@@@@@@@@@@@@@@@@IXhs}fo}ytkb`ei{uuvxz}}{xbL@@@@@AAAXxewsS@@@@@@@@@@@@@IZlpsskdx|}gTJ@@@@@@ceH@@@@@UyzW@@@@@@@@@@@@@HZkquwwwoGEB@@@@@@@@@@@@@HVeeeecbsiXG@@@@@Lc{}SFC@@@@@@c}hRCNYdnxr^K@@@@@DOZdlssrrN@@AYp|xr^JPn]NGE`||gQAAA@@BKUdytR@@@@@@@@PeztJoxY@@@@@@@@@@@@@EXkv}b@@@XY@@@cvN@@@@@RvkVMC@@DXmzbJ@@AHO\nmS@@@IVcwcCizn[I@@@fnH`vlbZSLGB@@@@@Mcz{}}}}bGDA@@@@@HUblvr[D@@@@@@@Dp|yyyyyt^HAAAIP[hvmaVMCQh}}}}}}g@@@@@@O_s|wpmj\L@@@GQ]zzeOEP[ozYOESy[@@@@@@@@Ndzrg_a~jN@@@@@@@@@@@@@@@@@@Nr]@@@@@@@@Qu{fQIDCNYfsudVG@@@@@@@@@@BNYeq}|bD@@FWif\SKD@@@MYdjpjaZ]`rx_EN^qtUESbysvyyyt^H@@DplQJB@@@@@IYivJAAIrhPIAEJR`o|s[BKVi}S@@@@@EP[l~}rbQAP^iqylGDBHVe~rJ@@@@@@@AeaSH@@@@@Ec`Bj}vncSC@@@@@@@@@@EOYk~{yy}jQIBaycMAAA@@F[oy~xriZKEC@@@V}si_RFGQZclu|~zyy{{gR@@@@@@@@@@@N_nsx}scSJE@@@IZlsy|wstx~sIEBPx}lV@@@@@@Qez~zrkoaAEJQZdjqvwyzY@@@@@@@@FQ]gqvpkfa_gpr_NF]s{{{gGDA@@ALXblvpZE@@@@@@@@@@@@@GNWcofS@@@@@@RfmYF@@CTfuqRKCSrq[D@@DSazWAAAfoMHCXy_E@@@@@@@@@@@@@CFKVbimtpDk|xtjWD@@@@@@@@@@@@@Sg}e[iwz|eH@@@@@Y\Q~~hr|u\D@@@@@GQ[oyZCUfqw}m[H@@AN[paAAA@@BRbgb^hryyytlcUG@@@@@CKR^ju}~rRKDXteTB@@@@@Qh~{naVLCCEIRZagnqu~dVH@@@@@@@@WumM@@@@@OoyYOE@@@@@LpoXA@@@@@@@@@@BEHWffTC@@EUe}pVLCM\nfpwqqqqqqqq|rporFTho[F@@@@@@@@VliO@@@UlqEAA@@@@@D\s}kJ@@BP_lymWAUiljoYB@@@@@Z|wbM@@@@@DRay|qf][Z\_clu|{{~|WMFKm]@@@@@@huh]YUZdntHTjywttut_K@@@@@KiyZGsjWDRh|`SH@@@@@CScz}yyzz{{ywpi_PB@@@@@_qR@@@@@@@@L]omQJC@@Flw[PGAAAN]kqw}}yteTR|vV@@@@@BMYpsV@@@\mUBNY`einsvxy{|uV@@@@@@@@IYijJ@@@@@@@@@@@@@\p_OAKU^gqstqaRJEBO\n}VmtMHC@@@@@DSan|yjZRPNZfnqsuv}zdN@@@HR\iukU@@@GVdtvXND@@Ag}cI@@@@@@@@@@CMWalvwyyyy{}zm`dlrsux{~iI@@AAACEGEBBGLl}RAA@@@@@@_p_OBP_qwXNEHUalwoT@@@@@BMXo}`GEBDINPRSSS]iu_@@@@@@`rZB@@AAAAA@@@L`tyoeYMBO[emu~yurokt{S[jqbRMMMHCEOY[\ZOC@@@@@Ngq\yraPFCA@@@@@@@Fh{twzsV@@@@@@@@IZl|kS@@@@@@@@GWgou}nU@@@@@@HOYix~vutvxyyyyyyyy{|jJ@@@@@K`twkos|xty}}|rh_WOJE@@@@@@@@@@@AAFWhrysILQ\swx{}}}{xvy|}yxx{~fNGUdjptvyyyyyyyyynbYYYtyOECHj|zywwwy{~~~|zqgeoy{{waJ@@AJT`qVc}{zyyyz|}xqhYKWj~o_SIAHPW^etoCAA@@@@@GexbMHDRq{wtqnrw~}{mjfiotwz}vSLD@@@@@@@@JVcmwzgVMC@@@@@IYiv}~z^C@@G[nuxyyyvpjZJAAA^}wvtssty}~{x|uommwydNAAAAAAAADIMHC@@@@@@@@Odx}cJAA@@@J]puuuoh_RE@@@@@BDG^xxyy|zY@@@DINYdkossrlYF@@BMXfvywwuj`VJ@@@@@@JSbz~wwvuuvvw|_BSfu}|fUC@@COZepz{}~~~}yvnfenx{|}|zyyzkJ@@@@@@@@Qbq}`KFA@@ADG^{~{z{}weR@@@@@@P_lrxz{~zwvwwvtjYHTakosfUGDBL_rvhVEPdyq^K@@@@@@@@@@@@@@@@JS^lz|UID@@@@@@@@@@@Rfw}bSI@@@@@@LYidOHAgnW@@@@@@@@@@@JXfpzt`MER_fmm[H@@@@@@@@GNWes}eTX\ro^MFDDVi}hRLww~~n^QIB@@DWjtx{xtpmjmrvx{ba_KFA@@@@@LZi{ysnu|}voaO@@@Qn}{zzyyyyytlfkou|}w|kZOGAAALaw}zyvoh]O@@@@@@EJQap{yyyyyyyz{}}}}xriXF@@ACFFDBAA@@@@@D\sycMGUd|}|}aF@@@@@GPZfs}}}r]H@@BUhsvy}~zvrsuz}}}~~|{zzxussrtwz{}ZFCAWmq[NB@@@@@@@@@@J\maKFA@@@@@M^nsy~zlFAA@@@Narux|rW@@@MavwdVKBWm}~~|xsleqnYIOVTJA@@@@@KWfyyvsvv^FL\jqwxrl_P@@@EOXhxyrj[KETbjouz[AAAFPYblsw{zywwvwz~~}{zziS@@@Nfujf}xeSB@@H^tkPAAA@@@@@@@@@@GTa{}{zyyyyy{|~}{{{|iYNBJU`jtyz|~{xsi`\[]ugJ@@@@@@@@Rez[@@@@@@@@GP[}n^PB@@Lmjaabceiqy|aE@@@@@@@@@@u@@@@@@@@DIParzz{t[C@@@@@AADXljcp~ti]QEAA@@@@@@@@@@@[}ufgpz|{yyyyyymaXSNYhu}}zxrkglrw{}|hB@@@@@@@CNYk}}}|tljlnsx{{{{zyyyyyyvshUB@@H_v|xtpmjou{ubOADGO[filoqsuvxyyyyyxvm^NIDGXj||}}}}pdXMB@@@@@Ody}umhebm{xdP@@@@@@@@AAA`vmdbnz~||~zruxvP@@AMZhxyof]crtg`js~|~~}ynbcktxkYF@@DZps[Tcq}tj_SF@@@@@@@@@@@@@ELT`msssqoorv}yyy~zcMHC@@@EJScrjZMHCAABQat~|yvgWMMMVajnrnf]RG@@@@@@@@M`t~xuqlgd`^jw~ztleeejry~uuuvxyz{|}gPGZmkYL@@@@@@Rfx||zuoib\VOHVdpv|ypg^VOQV\eotwz{}~}{ui]RI@@@Lau}{skmrz{zxxyyz{{yxxyyyyyyy}ocYYYbn{xqi`WNID@@@KWbceiovxzr[D@@AAAM^nprtvwgJ@@@@@AAAThw{zsmjgpzuoaP@@@@@@EJUlmPAAA@@ESajqxy{{yxqjgmrux{}{zz{}}}}rf\XUd|}uromkjmpu|z{}{zz{|}}}|zwwvvxyyywoghknsx{xurle_WOORSSSW\bpysmgafxyqie`ajrw||xtkXF@@@@@BEG]r|yyz{}}}}|zyvtsrruxuj_SGAA@@@FS_q}{zwurlg_VMHC@@@JSZ\]UJBIQ\kzzwuux{~vogc``irwy{{{|}}~~}}}~}{q[E@@@@@@@AFKUev|xsqqrrsnaUMF@@@@@@@@@@@CFN_p|}{xqkiikuteeejqy~|zz|}wZ@@@@@@@@G[ovy||}}}}}}~}|zyxwtporuwxxphc``spt{`AAADINZgoswyz{{z{|~~yeQETdlquaLAAA@@EUesungZLBDGJOT`ksvy~}wrmjgkrz{yxxyz~~}}}}}yyyz{|~xriWF@@ACFQex|xur_L@@@Sj{vpjqxyyx|}{ztnha[\_crxncUFIWfpz}}}~xrjbiry|~}{{zumf\SLGA@@DVgryq`TJA@@EP[htqaWRNU]eoysV@@@JXgueUKFA@@ADGSbnsx}}{zyyyxxyz{{{|}}}zwqlheb\WQIB@@ADGFC@@@NmzwtplgaZSQOPTY\_bfigd`SF@@@MYgxzm`SF@@@@@@@@KWclty|~|ytnkhgmswy|~iXMBPaorvpdYOEBEGZnwpjloqnjiiiiilrwsbQ@@@@@@@@FWiptxz|zqi^SKFA@@GYl{zpfeeglqsvy}}}}z{}{z{{~v`J@@@@@GWgpx|toihpw{fQIDADGSdtwz|~}|zywuuuwy{|zwtqqqrstuwy{}{{{~}ungbehkosvy}}ywtsstuwy|wphb\TJAFKQ[djotuwxyz~|vqoswy|~~|rjkmoru{~xrld\YYZcmokf_XWcntwz~{uobSGGGP_n~}{{{{zyyyzwtsrqqqstvwyz|~~zyy}~wqke_Z]`fnu{zm`TIDTdmqvz}ysrrsuwww{{ywvy}~{{|~ysmf`bjqtxvl`RC@@@@@L_r~xrnqsrokYH@@@O]hov}|}{xm]MIDJ]py}||{xupkfilpty}{yxxzpmmnswxqeSBCFGGGECBLUamy}}|}}{xwvutrqqqrsux{{zztnjlmry|{{|~~~}|||ywusle`]Z[\^aeaZTY_foy{|}{zyyyyxxyy||}{snhecb]WUX\bhnty~~{xpf\SKNZfnw{{zyyz{}~{zxwvvvwxyy{|~~{{{{{{{zyyyyyyyyyyzz{|}}zwmYD@@CNYdoz~|zri`XPT]fkqsssqonqsuvwwwwwwz~~~{xrcSKFBKT^gpuz~toljpu}~|{{{zywwvuuvvwxyyyyyyywtrrsw}}{yyy}}|z}|{yyyyxxxyyyyyyz{{~}zxwvuuuuuvwyz|}ywvvwy}vk\NFDBFKSaox{wtvwxyzz{{{{{{{{{xtn]MGGIZkv}~zvwxz{}~~|zyxxyyyyzz{|~~~~}|}}}}wqkloruxz|}}}}}}yruxz|}}|{{{{zyyyz|~ueTQOQZcc`]\Z`kvy}}|{{{zxwvutriYIEBAAAHR[dmsvy~~~{zxxyy{}}}}}}~~~}|yvspnkheeeecbiqyzneb_aejnrvznywtssssrpmjiijlmpsvwyz|}~|wsnifkprtuvwwwwwwxy{{{{{{{zzyy{}zxyz|}}|{{{zzyyyyyyxwwwwwwyz|}~}{{zz{{{{{zzyyz~~~}}}|zxwvy|~yuncWVZ^dkpuy}zocSCAADQ]fnvy||zywvvwxz{}}}|{ywwwxyyyxwwwxyzz{|~~|{zzyyyyyyyz~{xuuuuuvy}~~|{zzz{|~~yqf[YYZ[]bhnrw~~~|{yxvvwwy{|}}}}}|zyyyyyz{{~}||}}~}|{{{{{{{{{zzyyz{}}||skgjmqvyyyyxxy{~}z|}~~|yxvusrrstwy{|~~~}}}}}}||zywvttvw{~|yyy{|{yxwwwwwy{~~|{{{yvsrrv}~}{yyyyyyyyz{}}}~~}|{zz|}}}}|zyxxxyyyy{|}}}}||}{zxwvvtsqqqoljosx~~~|{yyyz|~}{zxwurooqtwz}}|zyxyy{|~}{ywuux{~|{{{}}|{{|}~~~~|{xrljlnqtvxyz{{{{{{|}zxvusssuvxxyz|}}{{zyyyyyyyyyyz~~~}{{{{{{{{|}}~~|{yyyxwvvwy{}~~~|{yxvuuvvwxz{}~}|}xof[NAN\hovyz||}}}}}}~~|zyyyyyz{}~|{{{{{{{{{{{{{{zyyyz|}}}}}}}|{{zxvtsstuuwz||zxwvvwxz||}~|wsmgbiosuwxyz{{{{|}|ywwxz|{zxwwwxyyyyyyz~}{ywwwz}}}~~|{z{{{{{zxwwwxyz{{{{||}~}|{{{{{{{{{{{{{|}~|{zzyyz|}~~}}}}}}}~~~}}}}}}}}|zxvttuwy{|{z{~|{zz{|}}}|{yyy{~}{{zyyyyyyyy{|~}{zwutuuvwxxyz|~}|zyxxxyzz{{{||}}||{{~}{ywwvvxy{|~~|{{{|}}{zyxxxyz{||}~}{{{{{}}}}~}{{zz|}~|{{{{{{{zxwvvwxyyz{{{{{zyyyz|}~|{zzyyz{}}|zywwvuuuwyyyyyyyyyyyz{}~~~}||}}{yyy|~|{zzyxwwwwwwwwxyyz{~~}}}}}|{yxvwz}~~}}}}}}|||}~|{zyyxwvvuuvwy{|~~}|zyyyyyz|}~~|{zzyyyyyz{|}~~}}}}}~~}}~~|{{{|}~~|{yxy{|~}|{{|~~}||~~~}zyxy{|~~~~}|{{zyyyyyyyyyyyyyyyy{|~~~}|{zyyyyyyxvvwxz|{yxwwxxyz{{{{|~}{{{|~}}}~~}|||}}}}}}~~|z{|~|{zzyyyyy{|}}}}}}~}|zywvuuvy}~}}}}}}}}}}~~~}}}}|{{{{{{{{{{{{{|}}{zyyz{}~}{{zyyy{}~~}}}}}}}}}|zyyyyyz|}}||}~~~}{{zyyy{}~|zyyz{}~|{{{{{{{{{{{{zyyyyyyyyyyz{}~}}}||{{{{{{{{|}~~|{yyyz{{~}}}}}}~~}}}~|{{{|}}}}~~|{zz{|}~~|{yyyz|}~{yyyz|}}|{{{}~~}{{{{{{{{|}}~~{yxwvvwyz|}}}~~~~}|zyyzz{{{{{zyyy{|~~}{{zyyyyyyyyyyyyyz{|}~||}}}}}}|{{|}~}{{zz{{{{|}}~}||{{|}~}}~~~}}}}}~~~}}}}|{zyyyyyy{|~}}}~~}}}}}}}}~~~~}}}}}~~}}}~}{zyyz{}}}}}}}}}}}}}}~}}}~~|{yyyz{{{{{{{|}~~}|{{{{{|}~~}}~~~}}}}}}}}}}}}}}}~~~}}}}}~}|{zz{}~}}~~|{zzyyyyy{|}}}}}}}}}}}}}}}}}}}}}~~}}}}}}||{zyyyz{||}~~}}||~~}{zyyyyyyyyz{{{{}~}}|{{|}}||{zzz{|}}}|{{{}~~}}}}}}}}}}~~~~}}}}}}|{{{{{|}~}|{{{|}}}}}}}~}}}}}}}}~}}}}}}}}}|{{{{{||}~~}}}}}~~}}}}}}}}~~}}|{{{{{|}}~}~}}}}}}}}}}}}}}}}}}}~~~|{yyyz{{{{{{{|}}}}}}~~~~}|{{{{{{{{|}}~~}}~~~}}}}}}}}~~}}}}}}}|{{{{{{{{{{||}~}}||}}}}}}}}}}}}}}~~~~}|{{{{{{}~}{{{}~~}}}}}~~~}}}}}}}}~~}}}}}}}}~~}}}}}}}}}}~~~~}}~~~}}}}}}}}}}}}}}}~~~}}~}||{{||}~}}}}}}}}~~~}}}}}~~}}}}}}}}}}}~~}}}}}~~}}}}}}}~~}}}}}}}}}}}}}}}}}}}}}~~~}|{{{|}~~~}{{{|}}}}}}}}}~~}}}}}}~~}}}}}}}}}}}}}}}}~~}}~~~~}}}}}}}}}}~~}}}}}}}}}}~~}}}}}~~rockdodger-0.9.2/data/bzboom.wav0000644000175000001440000021156412257577552016403 0ustar krawczykusersRIFFlWAVEfmt "VXdataH ''DDEE``  J J @@XXff ,,44tt WWzzxx  55 t t 00GGVV{{  66jj,,%% pp6 6 yy= =    '' j j   0 0 | | d d @@ pp[[yyUUTT; ; C C xx  KKqqBBLL  pp33&&pp((22AA  XXQQ o o ,,oo\\11 DD{{@@XXddZZRRRR))bb߬ ޅ߅LLss?? ((GG??DD$$88QQll  XX>>  XX  ::33   XX44 4411ffpp((aa88hh<<**nn88މXX --22  ooTT@@00KKXX88@@11ޣޞܞ܇##ܥ66 PPtt nnPP\\hh||ll   ,,aaLL99  ((   77 jj44dd| | XX]])),,VV     | | mm \\7 7  nn@ @ uuߩ,,} } dd$$?"?"wwSS֎ҎMMkk3*3*))$$11ݑ  ''!!44y2y2  ޘ  @-@-99!! HHX!X!..++W$W$''kk''77++**:.:.vvBB``  B/B/qqLLKK44ll11 % %;;;;~'~'Q,Q,kkjjS S hhcc  \\uu,,o&o&"" z z OOWWфqq,,yyllSSݩ&& kk } } hh==;;!!00%% ҫ22QQɨǨrr HHՠ00;;||l)l)7799j5j53311h0h0..W,W,))##88| | II̭̭dd00jjɔɷη΁ց****44 / /8822,,!! yyo o   llll88··GGxx``̛ЛЖ֖((ݽPPRRwwNNHHWW JJ$$",",41412200,,&&*!*!  66TT99%%kkޞթ̩̮ŮttXXʺ̺\\ޣXX  [[ x!x!<$<$P'P'))))++++((''''A*A*,,--00V2V24499>>AAAA??|<|<}9}944'.'.{'{'<<,,MM``ooߌccccxx88xxߓܓEE33߿,,aa܈ttְڰڽݽݑpp'' //##M2M2V)V)>&>&++**))####t$t$5%5%E&E&&&<&<&**:1:122..,,--X-X-//D0D0//.. - -**G'G'O(O(++,,8,8,--11W5W5k5k54433.. + +&&`#`# GGUU. .  66AA880000SSԣУуӃHH??qqLL33ווׁׁ;;ٺںhhFFddOOߔߔރۃ99QQ55AAbbkk" " MM~$~$$$%%:&:&&&''..,,))G,G,**--l,l,-)-)##GGgg 00''11664411 4 42211//..,,++@)@)''$$hh44YY]]ճ<>EKEK V V__aaXXGGJJbWbWNNNN$N$NJJLLKKII==T0T0""  ppPP((HH$$,,??\\##T(T(,,``uuNN$$##|,|,3=3=DDc?c?77O'O'vv||A A ccSS""'',,//))AAOO:: ccQQII EE 77FFvv//qq//55ݰܰެ;;NN<>xxiiP&P&_2_2==$>$>::88664422//++&&""ll  4 4 66hh ؘQQ33 BB\\ʳʳ88((22ӄք֖ٖvvIIoo//WWxxDD||XXgg __::**`3`3^%^%!! 22!!i#i#%%##y!y!!!T!T!!!v"v"""h h UUW W K K ee))44z7z700{'{'qq\\<6>q=q=99_8_855.4.400z-z-(( &&11  }},,DDvv//ddժժGG""qqFFΌ،ؙHH֓++PP00//}}$$$ $ ,,m&m&::==8822,,00%%LLQQvvllff IIppmmYYSSۑّ֖ӖϤʤʢĢ""ααϷϷܹܹxx55ɾ̾̋ҋҴ״ppܥTT ""BB  sszz$$))//4499KBKB0H0HXJXJIIJIJI)H)HEECCAA??Y=Y=9944D0D0{*{*a$a$++b b ))llTT||¯ǯΞמפjjwwjjII""77@@x8x811**АŐŮЮkkSS**++aaee1133kk‘ɑ~~QQְڰ==ݡ>>DD "("(n:n:/G/G;H;H=D=D@@;;b6b6~1~1..++()()&&RR< < ==;;SSߌڌ((||ννWWœɓə̙̯ϯ@@HH   ::ll&&v*v*11&:&:OCOCLL`S`S|S|SPPNNhLhLJJ3H3HlElEAA>>?9?9 4 400--x*x*"&"&!!  $$  ggLLgg\\EEMM׏ҏҺͺ͔ȔȻ88 ð~~ǔ˔˛ϛII,,XXhh B B &&r r t%t%@)@)11<<,, G%G%''D0D0n>n> J JIIcFcF]D]D4B4B??<D>QFQFhEhE7C7CAA>>g9g944..))K$K$\\PPX X ((\\MM]]ZZԽԽÈÊ͊--ʣʾdžUU11یތaa33 I IPPKKfGfGBB;;11##88gg!!iiKKpp PPxx$$**33qAqAbAbA??CChAhAj>j>::774411,,%%77  h h @@;;,,ǮǮ<<{{ssɃ΃οӿDD ||\\UUdd@@ tt&&,.,.YY##!!K+K+ 3 3::DD G GCCAA??w=w=::77w3w3//W*W*=&=&<#<#UU  !! ZZDD!!**>>hhNNCC@@--ɾoo޵޵ PPżƼƥƥqqQQvvݵQQooyyjjX X <<``cc>>  $$**--55\E\EOO@M@MIIFFAA==55==%C%C<<<<88P7P7~5~5..**p#p#22""||ZZSS55||\\``GGڵٵٷٷFF``ppQQľľ󹣺HHOOŲżɼ&&pp]]77kk]]))RR&&uuYY  ||))R"R"""0#0#a#a#$$t&t&$*$*//55(8(8:;:;wAwAIILLIIGGEECCAA??==;;77K2K2f-f-O(O(##ppDDBBii LL~~߲߲^^kkyy\\HH""**ߢKK__XX$$3*3*77kEkEIIxFxFCCAAi>00DD!!::SS!!%%((g-g-22 6 6T-T-220?0?66S0S0@4@4 3 3..T/T/(/(/,,@-@-//h2h211--&(&(%%,,4545e;e; : :0707553311//,,''>$>$""**<<xxttBB88||__؇@@ƹƹxx,,ԮԮgg88PP$$88ssJJ@@e e 6622IIpp55JJqq44wGwGIIACAC99Z%Z%SS88w w .9.9BB<<44 . .F(F(  ,,<<88šŔє  yy? ? ==55ĴZZ))ppږߖߗhh\\BBOO;;4J4JGIGI??>3>3\\((##dd݅66))??2E2EJ@J@4<4<55j/j/))""ss  @@66OO$$֦&&ȔȪת55_"_"  OOjj۽۽&&SSzzdd!(!(X(X( LL 22ĉljzzmmPP11DD܂@@ RRR(R(66/G/GRRQQMMmKmKHH`F`FGCGCd>d>7700%%$$ff۴ۙ__KKT T DD// 9 9//NN,,77UU++55<<XX TT4$4$8484??==8833j%j%! ! pp ##,,,,%%.. nnQQ**pp**CCkkAAٺ׺׀րּּbbiiʰðÄʄQQШ qq??wwšŚwwзѷфք֨٨mmYY>>,,vvm m 33(( h"h"$$&&''''z'z'v)v),,1177==rArAhGhGKKlJlJ H HFFBDBDAA??5:5:[4[411 5 588O5O5..))!(!(##  pp}}66^ ^ 44//8888ݛڗٗذװPPxxϐ͐[[ȼȼȷȷ߽߽ffŽǽdd44ll||}} WW yy;!;!++ : :&M&MlTlTNNHH@@;; p p !!::FFdFdFAA<<7744//++&&!!llhh9 9 OOӨ!!tt88ғ͓NN66--00|6|6//މ``ȓƓƟͬ͟լ\\__}}CC))4 4 ,2,2DDBBX1X100c!c!22BBDD@@==P;P;l8l8j5j511++##ttPP zzݺٺِ'' $$jj޸ɨںں̤C C $$ԃƙҰذ߈MM44O9O977.. " "  ::ՠLL==]]kk||pp  << Q'Q'c5c5EE;K;KBB22\\x$x$d6d6> ޘߘߕݕ((ـ׀ִմ88OOļļ""^^ccZZρӁgg֠נvvي܊||33uujj@@| | A A ggt#t#:,:,::??%%99==FF R RMMKKII6G6GDDAAV=V=<<6600--(($$ܫ \\vvƞ88Ɋɤ͖ͤЖމ,,''<<$$99BBC:C:*+*+h h ,, ''88p9p9..LLccڄل\\tt  . .|5|5((M4M422))66 f f ؼdd++bbOO!!ддҐ h h PP]]Ր00''44ttҜ՜^^ ݴ-9-9@@ : ://tt##l l ""ZZܜTTy y p&p&88`J`J4L4L@A@A,,   >>HH<<**00::ttRRZZJ1J199++%%AA"="=8866|4|422--))N$N$>>d d hh00}}EE٬٬$${{,,==hhiizzĜȜhhΕٕjj((dd)) XX\\!,!,Q=Q=NFNFDD@@E=E=-9-9@6@6 3 34/4/U)U)L"L" 88rr߅ޅ޳޳pp``wwRRdd$$‰…ŅNNpp..  MM;;&&44ODOD>BBIIQQPPMMKKtItIGGEECCxAxA??<>'A'A>>~<~<::-8-84400--i i ll{{kktt[[ ee))--1*1*%%++00kk[[--__))> > h h ((XXaabbۅׅLLԨѨ}}κȺZZxx((ggccRR88RRxx $$ʾ̾MM}}MM dd**::xJxJtRtROOLLII5F5FVAVA;;44%*%*$$--4545,,LLII qq!!]]EExxmm44׻׻)) ..AA##pp  <<LLz*z*77FFQQTTlRlRrNrNKKIIFF??77**$$6600"" !!ƔДKKҜ˜˻һ##ڬKK""  44JJNN`I`IEE@@y;y;7722,,r)r)''##ؒ((TTƉYY77rr[[jjAA>>ooX X nn""8 8 pp\\__k k $$;);)|,|,c-c-=/=/44;;6?6?==f;f;l9l9|6|622%0%0\-\-(($$g g %%NN,,llzz{{''rrи̸̘˘˨ɨeeܲܲpp״״ttXX ĬǬ>>XXݧ%%  1414XHXHFF::((P P LL۾EEj&j&  pp\\5 5 FFyymm--@@!!1"1""%"%|+|+33==FFmImIFFADADfBfB @ @J=J=Q9Q95511d+d+%%!!gg  ; ; NNVVmmCCwwww{{\\rrΐ88qq00aaBBȹȹĸNNܔ&&449944**)%)% ::LL JJ11<<==ٿɿɇHHJJݸ00KKddGG oo  EE%%J-J-L8L8FFQQMQMQMMKKIIGGEEACAC@@<2>2n0n0--=)=)$$ kk11ff--ll??ۗppTTȪȪЪЪUU..WW҃ ||ll<<āqqǝ˝˨ϨԼܼXX))  F F %%x(x(X.X.99EGEGLL$I$IFFCC==22))88}6}6))"")!)! HH8877##ƷOOnn jjѤVVCCaaܢ Ǖȕȿʿvv2233zzؒے !!&&==66}}  QQ$$QQ--AA"G"G]0]0  ((++ / /|8|8DDGG&:&:7373CCOOKKHHUEUEAA44 * *H=H=AAl9l955 0 0**|$|$з!!nnLLҿ##»ǻrrUU9900ڒAAhhPP< < c5c5AA==33HH((1212c7c755M-M-$$ # #&&88MM` ` <<ww::XX..EE11++<<ڙmmppծ֮וՕՊҊ;ǾBBWW--ƴɴwwGG((YY>>BB||ZZ,,&&k8k8==55??JJ??1>1>yFyFCy>g> G GDD??1:1:[7[7224+4+$$XXxx aa==Д봈88!!llݴxxAA^^Ø̘DD[[((II11>>> >     ## - -e:e:JJVOVOKKIIfGfGiEiEhChC@@== 8 833j/j/((  **IIFF SSDD˜͵͵XXUU ss&&VV44==,,dFdFWNWNJJFFQBQB;;00l l  8"8";;3737''("("  "" ,,yy::վվ‰ˆLjǬЬdd  GG00͎ŎϤؤt0t033'' ))WW ssllHH}}4"4"M%M%&&b&b&6*6*(7(7`E`E~F~FFBFB@@D>D>e><>I9I9x+x+&&--00|3|3**P%P%"";;}}AA  11qq((EE؈88\\xxqqYYHH00ϺϺll11άԬ ۠PPJJ``//ddnnff""<:>IIxIxI&F&FCCAA>>99b5b5o2o2D/D/++''r#r#o o P P ffDDʵʵԽԽ{{==մܴxxttT T hh!! . ...   >>!!:0:0@@jCjC??<>,,((־7#7#LL,,<<ʦզmm::EE==AA::"" ''::KKFFv5v5bbPP ,,@@8H8H?E?EAA>>::55&0&0w'w'QQi#i#%%FF66 u u ffggff<<99Ԡ\\bbSSmmnnhh55ffĹɹ77  **69690101$$_ _ ll||PPAAuuff ZZr r WW ! ! ((5'5'..77??IDIDAAV>@<@<44,-,-**%%GGddkkGG11qqUUDDxx,,cc88 hhZZ||ܽۓٓوӈ˧ȧ҄ׄ{{&&@@33$$8 8 mm??((  //  E"E"((d.d.00F0F011 5 5n8n8@<@<DDGG]<]<777C7CEEBB?@?@E>E><<::88665522//Y+Y+L&L&BBLL\\||%%''؍ٍ kkύȍȮ((\\XXTTll$$DD55Ѩٜ֨֜##ttXX22> > ``@@``!!!!&&Z6Z6)D)DHHEE~C~CEAEA>>99j5j533..2)2)&&$$' ' rr,,VV ``ttkkTT??dd1122KKDDNNKKWW\\--UUMM77;;Ӭߓffppv v ''%%77] ] zz[ [ (( 2222DDxJxJEEBBP>P>55""++44##Ԩzzll<>::55R1R1--O*O*O(O(&&""!!$$,,yyӠ88==ѐƐ󵠭**uu||@@Ɨ×((jjȚɚ ppӡءZZ44((\\ ddQQ] ] ++88CCLLLLVIVIKGKGEEBCBC@@e>e>:: 4 4K*K*!!''r r 00xxHHPPMM..NN**((ڍּԼ""||ԠԠԢѢ88QQ ZZ44,,JJ;;PPffdd,,99FF  $$HHk k JJAA$$..*1*1$2$2667744"5"544a1a1--''r$r$##  YY  b$b$&(&(((?&?&$$!!^^P"P"%%%%%%'')),,,,-1-1777744`3`3j1j1//--A,A,?*?*''/#/# CCmmdd?? rrGGEEӬ̬ KKFFϻϻĜɿɿPP~~==88??ggUU<y>88$2$2++''$$7 7 ""B B ||nnTT22??بۨ؃݃((vv[[88!!\\&&4/4/33Q=Q=`>`>33ppZZq q __JJ##99==88n5n511++n n 55$$GGhh }*}*))33ddS S jjWW""ttWW,,ϐΐ<<Ю֮֔۔}}!!ww  ] ] rr  77,,,,7777D0D08(8(!!  ))__܊<<RRP P ~~99:: >>RR>>KKߙۙ%%֏яѣϣϩЩα˱--ůƯȝʝ**͢ϢߚssBB22VV ! !AAII 55#!#!$ $ 11} } # #S(S(3.3.334444*9*9::77;;aAaAW@W@;:;:j3j3--%%""''''?$?$A A  ++11$3$3&1&1//--++ * *''%%## EE^ ^ yyuujjǯǯߨߨ髡ħ7788вٲQQ;;## " "  gg }}ff??&&YYLLttQQSSTTIIZZ''--**ggllPPюՎցҁҩϩ__22 ׌ٌyy((DD]]aa] ] //]]))jj!!,, 5 56677==BBXCXC-C-CiEiEOHOHHH><<3;3;!9!96622..++,(,(f%f%$$ " "VVIIr r JJLLDD%%%%uuܑؓӓȫƫ[[llwwooϾϾšǚ[[̹ɹ}}ΚҚ<<ޚYY  ooUUAApp;;0#0#**Y2Y2o?o?FFEEBB@@>><<995522,,cc~~QQjj'-'-++A!A!w w 55<<66jjUUWW gg77ZZ??ޟ۟۝ܝ 66 CCǟŸȷԷAAߵܵ22ܼܨִ֨ٴhhCC AA` ` qq##  --:#:#!!.!.!&&U+U+S(S(z'z'o-o-00))%%h*h***Q)Q)++**$$\ \ **881;1;77553311r0r0m.m.},},((## ss ``LL00nn޵++ۧקזܖܵݵddеҵaaZZȥ¥ѿѿ||[[**!!vvZZuuVVii``  YYEESSqq ##*%*%s#s# W W 1"1"%%X+X+ 1 1I6I6j9j9k>1>1>7=7=k;k;9977}4}4//..//e+e+""HHVV&&DD**jj^^==hhrr KKKK44ZZٌیۏހzz~~qq£ģkkNJɊɯ˯^^\\Өب++ss//\\!!^^EE{{ ""*,*,//00O1O1;.;.))))%4%488K:K:AA-C-C0@0@L>L>n>=B=B>>a6a69&9&00/ /  K K VV""!!##))..h.h...N-N-''@@qq####$$A)A)**((%%"" S S $$!!\\PPHHrr,,ֲ߲ЍҍiiVVcc7766PP##GG44αӱִӴӎώ˓œŽŽǢɢɭ˭[[gg$$jj$$**zz-- LL n&n&//7766X/X/="=" ` ` 11==A A ++{{  AA  ""%%-"-"{{ !!b"b"##''#,#,00M1M1..W-W-|+|+**J)J)t't'%%!!44""BBMMnnIILLܒْ..iiOOԛӛnnww̾ξddŮîQQggƪǪʺ̺;;UUss[[jjppN N !!VV55P P ,,{ { JJ__ ''''"'"'//88::22##>>00ZZ{"{"++44L5L511-,-,K K __UU aa("("CCUU8"8"%%I!I! XX,,''oo__޺gg--8800ܤؤ܇݇ݪت؊ҊKKӆ҆үʯooܓQQ33عй]] ֯دܹ޹݀zzXXII"" ''[[::,,ff&&77IJIJRLRLGG~D~D>>11 --??AA==R;R;99m6m611 , ,((%%SS 8 8 ggPPPPRRttllgg KKڭڐِ(( ..**ll;;XXYY77SS00 b+b+//3399<<99!8!866334040++N'N'>#>#-#-#!!HHiiB B 55CCآ˗͗UU͙͙ͼӼ۶޶VVeeoo' ' ggppHHRR[[LL55  llss::YYZZ**vvs%s%++**))j'j'%%$$'#'#!!d d GG T T pp11 ssQQ^^BBZZߵcc44nnnn00LLFFaa ܄܂ςDDɗ̗77 ҄Ԅԟ֟PPgguu ))$$##u u WWhhdd??RR??ee))[/[/ff@@QQ``$$44@@DDAA@?@?<<6600l7l79696/./.x.x.Q,Q,''%%$$!!rraa ??TTGG eeMM,,TTffBB,,22eeYY Բֲttkkqqtt%%iiXXKK   ttv v 6 6 J J # #E*E*..002295954400,,))G,G,11W3W33333!1!1//R.R.,,/+/+))%'%'""22UUvvGGPPKKFF%%LL::hhMMўڞڋދ޻ܑܻޑ((::44 ˾̗̾Η22IIFF{{ݩ||##55' ' i i     ''@@""$$$$v%v%6$6$k%k%v'v' ' '**&-&- , ,E1E1776644331100'/'/--b,b,**(($$L"L"!!nnIIk k XX--BBTT\\oottxxPPNN##ff ձұVVϪΪ..11((эӍVVؓՓՠԠւ؂qqܟssss&&33}}``kk--<><<;;9977554242j-j-++++++&&``,, @@ݝ55**))@@NNKKڴݴssooxx--!!1 1 dd,, X#X#..33b2b2//--=+=+(&(&HHtt .'.' FF88]]II QQ%%DZɱ??ͲѲڐBB**< < &&\\MMII&&޻ڻڐԐҠנכۛ11gg CC]]ܦݦ6 6 ++''tt!!j j 55!)!),,''  <<jjBBWWCC   KK!!v$v$!!JJZZ!!y!y! D"D"&&((&&## $$%'%'))++t)t)''&&G%G%##!!zzll? ? ||TTxxPPcc--LLڹܹ((bb==ۦݦ__RR##UU++##٧ڧچۆ֧ЧII՗֗SSټڼaaLLަ __rrQQ2288{%{%5588M6M6E3E3,/,/''!!H#H#^&^&4&4&((''9&9&,','0&0&## RR1177aa]] ``33rrhhxx$$bbSSRRBB bb55kkoo!!$${"{"g g q"q"$$&&))S,S,t,t,++))|(|(''%%## 55HH hhAAYY GGYYbbkkgg<<۰ٰ ww$$ʘ̘TTВҒzz!!֊؊33݀]] wwll[[ppllss]] EEbb99o#o#f.f.B1B1++""++B.B.M*M*+'+'q!q!~~GGBB> >   S S ##  J J zzw w XXSS$$SSnn@@Ժyyɼͼ++LLIIטԘHH##ԈՈccIIޏZZ:: l$l$/1/1 5 53300>->-**''$$$$H#H#9988aa b b CCaa__%%{{22GGމ55ޛ؛ޣRR9 9 D D   [ [ ooVV==_"_"A.A.22++i i }} V V { { 0 0 $$vv  NN & &1)1)''_&_&F%F%$$"" &&VV||uu% % ,,\\??22%%yyΆʆȇɇ99̹͹33ϠРpp__ڇ݇66yy$$oo||<<~~N N ^^gg##))P/P/0000//--I,I,**^)^)''3#3#11g g GGwwAAUUJJzzyyCC??$$\\jjLLUUբ֢ר٨::44wwCCyyOOxx CC>>``LLH H M"M"!! ""**//a-a-++**Z)Z):(:(&& % %##77]]ee5 5 ((YY44**}}NNZZڙӎΎyyRR؏ُNN''ܿݿKKLL{{ooAA    3 3 E E ggccOO^^{#{#((**))''&&`%`%'$'$!!xx{{mm0 0  ++eeccQQ00EE۲ۇՇөթߚߚ%%ߥݥ݅ۅIIܺݺcc--ooFF$$QQUU""zzIIbb G G ##!"!"j"j"o"o"G"G"**e1e111z/z/+.+.,,++))r%r%vvzz..! ! PPII'' //""NN==JJ,,99UUqq;;xx33߸22%%''//޸޼ۼ$$wwxx44::[[**44   zzJJ##66{{ZZKKmm4#4#$$"". . % % !!+"+"!! ppss>>dd>>kkUU ? ?  ff99EEOOss޸ҴԴԸڸ߼ݼ99UU܃؃ddMM׃؃؞ٞNN22wwDDaallZZSS%%bb..9 9 t t MM::O$O$ww]]ffPPh h !!KK||__ E E llTTV V llGGP P ZZ&&]]EEffݭEEaa܅؅]]FFCCTTסء##ppFFkk##eekkMM 77!!$$]#]#  cc % % 99**UU{ { w w   44mm88iiWWrraa44^^ߟBBRR dd::AAKKWW`` 4 4 ] ] ~ ~ F F ??eeRR  SSWW$$<<!!\\qqFF++xxffggs s ssxx}}::YYkkEEZZ//QQ__޺!!ܤؤ؟՟KKېڐ22ךؚ؃كOOQQ""VV9988UU99F F !!jj !!RR``ZZ$$M%M%  !!!!|!|!X X 88K K VV772 2 __\\@@rrppKKXXttAAiiMMvv wwތޑߑQQ]]ff\\RR!!(( $!$!((&& UU  ||L L ##%%!%!%7#7# 77++YY,,z z QQJJ!!((QQ&&CC::++VV**ܧާ((__\\EEhh&&PP.. 9966ss!!DD@@33//%%pp!!1#1#q"q"!!yyAAxx..EE88XXPP   bbMMPPMMߧ00IIqq rrRR^^ }}rr////ccppAAEE^^VV^^zzppVV ,,JJgg} } ""##,$,$9#9#]"]"""$$%%Y$Y$!!~ ~ !! ++!!!! w w   ++llCC%%MM>>qqݎUU MMkkLL<< AAssJJ##99YY [ [ TTEEllDDcc44vvWW? ? cc}}__$$,,ww = = UUzzփփoo !!ZZHH{{ ^^QQ   mm]]ccAA@@KK&&--llCCCC//88xx66ffQQ99uum m   IIRR;;}}ll]]11**  XXTT  ccII__??JJ@@vv\\__SSb b + + eevvxxyyCC**BB ""1144KKؗ֗MM<<څڅڦۦۇ܇ܦݦݲ޲޶߶߾ HH44%%~~ZZww//@@kktt/ / NN;; 99RR55c c ,!,!ww**<< [[zz11m m   _ _ A A # # ^ ^ S S NN@@c c SSYY{{P P     y y 22mm44WWttcc..,,ff""FF"">>44@@zz))))mmXXSShhGG y y >>""##K K  d$d$M$M$F#F#X"X"r!r! <<&&  y y 2 2 --%%EETT__ߎ}}&&$$UUssz z TT 11BBMMXX-- ii**SS88OO%%``$$FF ==&&hhgg99DDcc}}44||ss44 llffyyRR??DD YYvv^^ hh;;]]QQFF((pp)) uu"" wwuu44JJiiffP P UUBBBBEEhh""PP[[!!11DDQQgg LL>>++mm..77``kktt AA]] VV44;;ssCC22bbhhHHNNdd00   + +   oo11^^RRBB  {{IInn66UUUU11""  ==BB{{ G G {{YYBB88--}} 33EEUUcczz++^^kk88zz%%OOZZ??NN--((KK $$++[[  G G ``||..%%GG))tt..!!^^||[[<<E E k k qqIIKK mmKK++SS!!99>>vv!!::BBII!!((HH]]MM9966ccg g 1 1 @@ddFF>>,,FFTT;;IIOO// q q wwC C CCaaLL**NNp p ''BB  oo66''00AA::   DDqq$$xx__FF}},,99llgguuYYhh..11kkss**{{qq0099||tt66EE@@FFcc[[mm  PP??pp[[""KK  ##  kkBBDDN N IIPPVVkk11QQUUff**XXcchh00LL>>||QQkk''}}--TTVVjj$ $ ??  88KKUUgg   !!VV88XX\\eeppNN%%..00cc^^ww$$NNff a a ||  44k k v v @@  JJ++>>22YYll~~::EEcc||zz<> BB;;RRFF__wwaa))BB NNXX ZZ@@? ? S S 77++rrCCllqqxxHHSS~~UUffWW--EE88YY88**yyIIee   ttZZ%%ii6 6 33nn??<<@@UU""HH2 2    ) )   " " ZZ<<DDMMCCNNNN||PPll}}yycc@@BB==QQBB))iiBB KKdd))33..gg aa  CC##**LL    DD<< ~ ~ > >  z z dd22**AA55QQ//uu55yy~~QQYY::SS,,uu||NNjj$$EE>> 1 1 O O - - AAaaWWTT11YYBBzz q q dd11kk~~nn@@22mmC C ^ ^ / / 8 8 c c 5 5 G G 0 0 j j O O K K = = b b h h     ;;77iiFF--IIBBOO""UUqq!!IIXXzzZZ## **))%%}}ssss YYPPYY&&~~ff wwrr}}zzLL 22bb99  tt__ee$$ttbbww  nn__88##S S Y Y ( ( h h n n g g   M M ' ' ~~^^O O ! !   n n EEAANN$$YY22SS&&**QQ--;;++55oo33--bbvv --ffFF88EE>>??==FF44zzdd  S S 77tt00\\((__BBllZZ%%GGLL++  44##==hh==TTww!!>>&&1133 77SSee22>>MMDDZZEE77??99FF99qq99zz%%CCrrnnNNVVDD..-- @ @ Y Y { { ..mmjjvv))88RR[[11uun n ; ;   RR ZZttoo''ii}}DDYYpp--^^ffee||hhllyyCCMM66VVll~~* * $ $ PPwwww))# # n n //QQ&&KKFF==NN00 {{ddtt22DD66ooNNttEE>>KKttBBss DD((55mm{{}}V V   66##__MMSSUUYY&&bb;;&&EE__KK{{UU   H H x x ccaa""8 8   22    [[99XXuu00PP!!~~55  BB  __HHKKEE NN||VVVVPP..LLll,,33HH==llhhvv''''[[^^..KK``  ppvv>> 3 3 U U r r s s ++  g g   R R | | Z Z jj3344QQeeZZttee kkff##bb88ffppnn kkCCdd..%%??LL6 6 33}}llll, , i i II" " : : zz##xxzzUUxx??^^TTqqEEbbbbD D   x x   8 8 &&++DD11"" ||%%TTii%%22iiAAKKBB ww||55__JJJJ''bb||HH55kkmm;;4488 @ @ ) ) = = W W b b ? ? $$##00  llvvee55XXrr uuEELLBBii((QQllxx 5 5 a a h h & &   4 4 11FFMMkkrr 11YYVV??}}YYjjyy@@]]""}}FFllx x % % jjgg''++%%iiUUs s ` ` > > Z Z   ''vvjjyy@@##uuyyaa..JJ ffWW  rrii==KK ? ? - - 33ppAAccppbbhh((ZZMM``--RR^^))ff??$$\\ll@@;;kk,,ttHHBBOO+ + 4 4 7 7 / / A A 22pp   Q Q M M C C   ##ccJJVV""  ll 7 7 ??[[--BB  aaPPWW''ggCCNN__11 <>bbqq((TT99--UU--MMUUvvBBqqBB : : gg<<SS[[$$""SSooNNAAhh~~77eejjoo--!!ii^^..NNss  ssFFbbYY>>  ||<<  IIBB''TT!!eeLL66AAbb>>~~DDmmTT6677JJooDDrr>>DD,,YY$$]]**CCvvddUUAA__~~ff..::xx ccVV  {{  qqUUss""ppZZ--{{77KKtt''00QQ>>99__PP^^mm9988||NN/ / I I   AANNYY[[aaddBBAANN..PP,,^^rrddPP((KK66vv''))uummBBeexxLL ??[[~~qq==11ll^^GG$$<<mmOO&&rrooffww77[[ff<<**ss((\\SSmm&&//ff||RR__BB!!AAjjUU//pp--VV??44bb''//88gg  66bbOOhh00DD11SSAA99ggvvvvGG**DDQQnnbbQQ**ee55 GGeeJJUUWW//++##ee((tt\\VV}}QQ..iipprrLLPPqqvv>>!!II44rrppTTQQ}}##@@ss&&CC<<77::QQuuDDqqPP..)) NN88gg44xxMMOOJJ1122EEoo((....&&5566++ll,,tt::YYuunnOOLLNN&&##tt__++''88ffxxww~~((  YYbbCCTTEE&&ZZ0022MMddPPee^^ppnnZZ66 PPKK++{{CC####ll$$TT~~~~uuXXaa>>..{{%%nnllRR||ff]]\\]]eeRR}}ggddggWW--\\..44NN22ee&&EEWWJJ?? 00kk11!!xx55NNcc ff==yyhhjj<<nn22''bbOOss  00aaPP**zzOO22..ee??PP$$QQgg..JJXX22zz{{{{FF::ccHH>>33##llzz//EEFF..nnSS!!,,::nnFFCC<<UU55rrQQCC88hh5577EEiiss``ll00tt__ppII$$QQllzz  33((vvKK!!aa||ZZYYRRCC==YYKKhh ffMM||TTDDDDffQQJJ $$''''""88++bbVVggJJee''33ddssDDSS99..55@@oo22--ff~~llhhvvXXWWmmff77]] OOXXBBbbXX22ppSSRRxxZZee||!!~~OO1133HHHH##((  qq[[// JJ88UU!!mmMMKKff))DDHHYYttJJkk LLFFII~~BBjj((__zzWW^^11IIll##<>==oo,,~~88nn""%%FF}}  &&6699<<BBHHOOnn  RR}}{{OOWWaa$$YYbb@@llVV??4433\\^^ss!!UU%%XX>>kk>>__ bb--kk<<;;mm++99rr--ppSS==**00NN{{kk////##  zzVV<<aa((rrPP iiCC%%ww}}cc44VVGGqq..jj''\\  AAww  JJ]]00SSnnTT88[[bbOO>><<__nn((ssttmm::>>gg||TTuu}}ii--66 iirr<<44ff//CC++OO xx22WWww==zz&&33''\\,,ddaa@@eeBB$$  ??nn LL))``QQ}}ee++55<<--wwLL,,pp88  {{KK!!ooEE{{JJssWWNNVVccppuurrppyy..``KK((aa--__nnjjkk33dd__,,OOOO ss\\TTHH##{{::}}^^SS@@;;LLmmkkii}}EEXXLL9922..'' 44ffdd22$$UU::CCgg;;qq~~33jjyyppnn}}||II**!!//HHccttOO''  ++>>@@//iiEE!!zznnffccUU??""ll^^MM4488tt ##RR!!66RRss!!EE``iioo44TTiiffZZEE++  ]]--rrHHUUxxMM**''<<[[}}SS88ffww!!((MMNNPPNN77%%{{ppbbZZLL))ffPP33qq==oo--&&KKqq||llUUEE@@9944<>VVrr88WWyy##EEYY^^^^ccmmeeKK88%%rockdodger-0.9.2/data/cboom.wav0000644000175000001440000002235012257577552016203 0ustar krawczykusersRIFF$WAVEfmt ++data$2("7{̿½u}doJxxdetP~Y4P 4k5jy{ V.  fg)a`-QhIr\q]!`R0;-Rރ\\3Hq1cŶxLg|iRT{sg,?*8Sq+ ϳiTRWjYOp{tjv# ?\x8#,&Y~f55&@qopzr>"%}Q?^7#  - 9γqM9RN2 ݷTBtқ4Rf[pЪgkӚ9=ocK%@<+(8Bqv8 jϸ! DuưϿ̿ޣe^\-8@)d{L 0=M8ESGC,  0RPLID-!=]Poůy}뿼ƔŰgvBH~s;`ZZ`PdJ)=:QvsN78.  #/1FYcbE  !;HDMIDB6   !/LmÝźĿuq}Ѹ{aCK]S=670)0OblY8% ',FO@* #VjkixxfbaUEEUTIZyuQCKTbdN83452-+0;Gb}cVMOWRKYzŲмsnhi|kS=  ':OpƔW0!!2=7.8Sde`O.#+..)"4G[vƤκٷ|ULOKA4*% $9Yz{qZ5ABAE84FZWC6/%8Vp}QA=;>Fb}j_L?Kh{nb]`gka^w~|~q\OOVcs}ug^\_j~vakojtzaJSjsmhf_ZN3 /5)3HXk~ʽzx}yylY[l|xe\TG84:>;AZw~rniXTg{xtecf[H?I`noluv{ĺxR=2.=Xu~qgedftgC$ E]`gznW>/4EPRPF=Fdǯɸ{w|r^SU\ccbnwfbW6 AleH85?[olt{H$'17;-):RrˣuP;NyúbH96. 2p{bIACMZbftɥ|ngaZ[l~ưqM8Gaf[UUWZQ6 )$3Jd}ycvv|qi^\^\Q;1Gd~zbTF/ Dkyqsm^axu\\kkbar|wx|޹yC  -V{þmgt}q^T]Z* Y}\^wϰjdzvhXWnZ:/:DHF:7;=?4#5[yˬn\QTfsunjtwWN_otkXQmuuu^MSefK66@Tw]@2(&6Ja|ubahiiggss^NPh}{mrzpcUMMWgqxyǶncoòmM:9I[aZYdcRC>FfzeVRQXsz[A-! 8LKEGHEObifef`c|sipyymYFHft_NB9=Wuz~~~seF%!6Oh~ƷĜp`iu}ud_YJ6&-Py]GVťx]YY[j}yrmr{{nfi}ŧ}oO& 9YgifXG?HV\WJCPlzuumZO\ouoqn\U[^[]nósf_cneZ_lusvIJume`fs{vnbK0@c{ϺyosŮsXKGQmv}vd\dpkUHUqmenwro^F87;=FR\dowtxwuxtg^f~ͽzbM7 5Rd_KCDLZd`RA/)/;LhγynvuaA/7JW]cgjjga[SKB9442)!$=^vɭ{u|r\XXQG=0*0=5/&#0Eiżxa>"+Pp~y`SOOUgĶqiliV=04874:L\gtx]PNOQSRJBBHF=:BPXWRS^q|wpso`RMMP[j{żzknwwk]SQW[RB9>LZdskb]UPQ_u|aWWTF53AOW]adlhODFLWh{zytlc^^bjstmb_enwz{~aOFGRcu|vttw||qeTC>?BBFJNSZ_acekt{pmu~~}~tijurd^]^cfjmia^k{y}zrsqf[TOOS]isz{xvne_WLD?<9/A]mmf\QB88C[{Ƹzp`PDBGTf}ùplxmP<53+ 3Z~ٷ\K;! #AVahpuydE@GH>8D]rz~lP:8Ha{~uu|xj]WUY_^WOR_o~tSA;@Rlmfcdr|j^d{~vnaUNKFCHMPTXZX[gt~ztk`]f|zw{w{otl\W]ddejf^f~ma`qЯvmhitsgdhpthTB70-1=Oajosrnsvh^VPPXl|zqlr|pi_L81=Rcny~ytwǾxjdflv~tyr_P5*:?9,&0Nvvi^UU]c_X]nȤ~dWQPSU^pѺpd`acda\YVV`uyvrnqy~{zzvtoc\afb\WQMLKPYe{{pgen|vgchnw|eSG==Ib}cI1"8Q\f{ykXMRTH;>V~ʹo^fťeO=4-)1;?ES_kraNFNY_jvwsWJQ\[PF:.,8I]wyecszlv}}}ǻo\J7( #5Nfpniedhnsvx|sps{~~wpnqtqjfnz~{xgQ@>Sk||mjsxxsj]I4%$-Ce}|mdhvwXB64;Mcpttuyó~kfbZZ^UC<@G[s}|xnr}vvy{}{w{{k`VQOI<3598:BHN\vxrysmhaWOKNT_jvzfWTZZUPRZ^bmzrmgbbdiquod[Yap|{vzþsiegkqsfXZgjeiu}lO;,#$0>O]chpuh_Z^jt|~wqouqjgcj|yyvqlb[YTG::HZhllqrr{~stv|zo`WXWNHMSSPUerurld]^gpurjcdn}}x{ÿ|eSNLC;AP[hxumfba_]fz{rhbcfcYQMJGHMPQU_jr||wnga\[^a`^ZXXZ_cdbXOJKMSap~}~|{yla[ZZYZ`iorstrlhghnx|wrw~~~th`bhqy}|wtvy{voha_adhouy}yuqt~sdWLEEGHPbw|yztty|{ysjfeeekqqms|{xvutroqvwy}}rprt}}zwlbchiikifilnsy}raWUTT[fkhju~zuw~}xtpnrtqszzwvn^W\`[[ahpzspty~{sruslgb`bkv}yusturlcWOORUbxɼ|qfXIAEMPR[oyh\PHHR]`[UZfosz{vqt|ĸsok`TG>:>KYbe`YZcuzywl^Y\ahntwyôy{wpvvsl^ND<:=>?Ke|{rjedbbhmkjw}zxyxss|}}silt|~vid^RKNSSVZZ[dnz|xrpw~xljprruvxum`OD<0% %2GZgxyojhinsrrxzzxf_^YUTSWcjhhovvvy~õ~n^URJ?<@=2,2>KWWUWZYZ]XNJNXfxõ|hWOKJKMQU[]YPMLE815BWit}ĺt]F=AN`s}unhgffjqurh\WYYRPVcrǺ~gSB;CLH@>AHQXZerwtsvwxy|vrv~}tj_TH=6540/6@HJJJPZbfoǺsjgb`m}º}maYUUTQJDCKRTSOPT[gu~yoeZRJILRX_fmrwywri[OGCCGLQ[fr{û|xx|}wqle[NFCEILQ[dlswwxvmc`ccbiv}|zysnu|wvtrw}||¶qgccgmt{|smlnrv|~|zumknme[TPQWakrvy~yuusprw|zrliipy}xvsnlnokffgku{xuqrvz~}zskb[URSX\^dr|uusk`WUV[`ed^WX^bhqyzslcZVRNOYdkuüysi]TRSSWbjlmoplinzxyxutvvvyumfa`do}ujb_`^VPQZblysga`bcgkrw~ukb[TKDBJWcnx}uqqtyzxupkf_VNHC=;;@HS]gpz{tqpnmpuvtpkfc_\[[XRPMLKPXahpy~yupkhgfefeddedcfkoqtvwuuuutsu{}vqprsttsqlhfeegkot|}zvpmmnpsw}zrje`\Z\_bflt|~|}~|}~~|xtqpmigfffhkqxumf_\ZYZ^dlt|~}yyz|~~ztplgb^[ZZ[^birz}{y|yrjedeeegiijmptx{~|zzy{|~~~{xtqmigfdbceffgioty}}zyywrlgdb^\\\]_bfmsx}LISTINFOICRD 1995-05-27fact$rockdodger-0.9.2/data/drip.wav0000644000175000001440000006021612257577553016046 0ustar krawczykusersRIFF`WAVEfmt DLIST>INFOICMT2Modified from Debian package gnome-media-common.data`o"i_ lj>| %Vt  8| 37%V\JzHp;5 m=<B  (~ :_N%Q=(,g9Z|Xh5 0) 1oO{ A @ f-4z~%K   R>&}"JU'D1J}-!*4s#DX\<s ߘԕAV9a̹x^xk^w\ 1 -'-1 97p1(3I/*'d I@5 9_ m ? ub#{ˠ5iΆkfI= 7Qs#oL'-6u443g,$j 5UP:8,z\ 6 `ؼо@ a-Бgְܛ w  ; r `E%$ ,/R-38!7+4N3-,$F8 M`S8ӈ ]<(4e+ƛjʃPܔ >  D \R'2S&8gO;tAEC@;J3'*` [  svE- Ln-1jڷdbSkkMoB"L.:6E8E+#X -  * .q1ܣ!~öXoXMTAvGٝ4:K. , :D{KfPQPPS J0RB%w9.do5H3k7   R ߱,,ܱ;o~ \ 2" ,G4`:BYIFoDV@9/T$k m5H,@K]_$^bM\Jby~t cA0',11 `2 A5 4 -0 L,cB& ag[ HA fU >*ΜdGȦ˖zSޟj(&N;L)-23.53.+q$'` 'Bg mљ12ʡI!  A c 2 A = ?3   '4 c2^A5T-5'E%7B/ t:  &юoMx& {Bۉ<AS !#!Q,s/q* '+9J)II' & } 0 c = ke ' ~ _d ͺ | )܃ LAB 5nQ"#%el%&+%lUT\ x12b*ހڅ4^Hb  Gݏ ) }   zN&*+z*]*4*w%C|#dL!%O{Ve Φqq-,N\U >c *3b 6;?g&=7"1 + !Y  B / : ف y a )) maH!ʿMOo#1)[4s:?AC@*964kk,0 jvnA}Bն÷ϻSЎ?8l  * ( S6 "@S F J I8 >H B < M/ $gcF]JzָfA߹7!MȿEF;w U)9e6DD@FGGulD?), ՙ Ь y & w /m  v |e)/0:R68Dp62,~$7 B_tRjέ$ǿǶ4˸ ҴFVF}# \0j 9@ D@nDFTD}=5),,3 (  ~o;7Y`G4S0hI'@ >9\'Սƃ ӱkŮݳ5ݼ¼ʹKwcΧg '7D#M&-R@P)KB6Í(&^"›>i}i|ɵ "n5;ؤ8;9Hw] sgJ0Ph;nlCqrHpHfB]9TZ.[WOjJIK6Fҩ4$)!6 )ʽsӡ |S",v3}7Ƙ7+4.+"Ő Jv"O]\߹s9,Nf"P(($-*|9-J,S)sT%?UMY]b-f'gRbX\O=IK`F>k2x%zIXYʏ=}\^EӴzr  N fapʥf. )_%.4 jGx ftmۈұKʞ7#:.j'9.dCH4KTPRzUP!XZx/'_,}D~ H4{JnIKKnYK>IFB=:h|6<0w%$'.F0'->"C7VO?7[h9ć^('70⮝2,^i cY584Aj֓yTz.]#z/3"U/#&/9AGKkN*PQK\RjSR$yR&M"G]A=;g5޷,( $  ڗ݄(̨۸l0vA޴{±nNӯT ԰丷ߔM ]ǐTrG"B"[` t`!L>)0*7_>DH!KNOMxKuIʟFIJAJ-(?H=#J龡KbHs>:A= M[,K!d;JO,*$$x ﷯̤ <Hum]q2W^&s5vo8ǾdAGx]XL:oΨrbwɱܪj2!,& pۿ(6:<{~N8 $E 6m̹2}w1B m^ޱQF=$>O-51\+Tjt ).P!)<4W!*UE4;>m@%ZA.JB3E*HFK2IBz;6I02*B $!= G/'-S+{ ՈMxklMdR ] &W*ʈΈؔ&Rl,/ n$C'-=,26k99 9=g@`A?;163v1Q,$'! 3I&|~"RV'D1a}-*ۻo#CDCZwHˠDҬԪU![*s{V w*(6i>YDJXQ3U,'X -AZ1[9Z7W1(S&3L/F*='4,"?4:b 3;Cπ})*j.K4g+dޒ㢟ȟ1' 8R#G'-r݅6x44$3c,$A)W3P=5GOQ5fXw] bebedЕc@`c̢ZRJ B7h+w:|6pD SELצ$ ,/E+38 7)4K3-(.$6EH4Lxw3箻oǤ4֕ ]Ş(“d*~l.*P6Uq?FMRWA\YD^';_2^"8ZO;UVvA}RELCEC@F: ;J13j'-*_ !u-q؇'Im-&0Y׷AdǏmnL꺱tB"ʬ.6 9 2*^"3րKOk|a"/א:,ҤAvH˵LoUK|GŲB ڜ) :>췝 дRIt 0"y# [$ #""/A91@  F6 KJG) UC>4 8+X -2.ΠzqVqP±yYzxJJAMIi0 ,:pD3yKBPQTP+ JSRBRy9y.`3:=Okּ︹U߱JĎ/Ϝܒ z[!0"% ,(4+:(.BH/XIS/F0 D!2@19-/c(U$#pp BM[ 5V׃?lI ۡ%ͅHӋK8\aֺ{s Թ0'Ģ,~ 1Ѣ1`2@B5 430tO, >&o~ b&f/d8@MVEj+IL@DPR+oQhO7KbF@yX:3+!,Q9Ke(-2d3q53.+M'i\ $*z³o޽ʧn/577̎z Jώ]!+}4_d;0pAAE H?JKJ'qHb2E@5>B-='s6(7./& > ;movۭ ָ Yq˚3);~ܙ@O"6س4S!!HR,/q*' +YM)bO"+ *2`!g? Ԁb# n )^ N(D X B#6#}%m%(&q+ %IV" W  - H ٸrrX;:"ݗ.}L<Ԯ;G0O Վ&+~+߷,{)~J)_ڔHݳ $-6@ JTPSwUK&@U*U+S*P*L5*E%;/'w$SS,R8WY,`յi͟uώх!ی 夸ÿPWt ўbL *3)6@; ?[)=7 1 '+n,!-j.B..3/=.4,'wt"" nIkKM#p2u)\4r:?A C @974l,o3b O bnxnjtӶʷӻЩ+4: '(@O6@F.یJ2I4>HBDćƼ9!z ӹ J9+ S'e42:7??ׂ?A=ֽ7n/#e*q W+IՕ+5\l>E|ƘJN{ЀN ےJE< b3 (%,Y2O6 4U0`*S", em%ӑJL̘4Ҫ?\w!4)Y% H.q+5C4;8.A:?E&9ED5gC,? <#6(.&{ 5F׿m1@ĽFC>0t GP:(=7CIJLKGd>0'N d_՘4ٱ^oȮYܳڼP5{ f't7'D.M3+R8Bt=6;)&v8`3.';:fNeŵukFSw oO0;!C}nH9HmB9.e|I(Ű5-csӥދ^ CDR"L, t3~7_7),4#4.;"BHMKI INH[^E&?D8 /|%Qu,ak"M$ȱ*y-_,)%C[*@'6Q$2;`2vyD@~ zX( j* >B ZlCykp $Q!i$m'c( &(2%!1(8 l ECwek5}La+K>ɜns3IMSݡwBQ!k{/0) #t wݬV_  Ɨ.$ğ'<#g } U92;LiY6^kY;bL8lc~s%f.զ0*-XA"8:UQˣ̪K|,6&Q,J&%),TO, '4+(:O.]?*hC~8Uu"2p 54x@:zG$\kJu.$?>(&;较ap '$="[ $dTLO!-$&w% ˤ լHm8qW&'xCpv;VeG]X:)r `s3! ,$&lq jl̎~e ~8m&E`=Q&](ș|w63>]K8$ E 2r5zl B   j \ Nvj(O@86Y62*kfqd)i.)5KVdVOaP#a,J". 34*$,2h5t{3 .t&A d?t <R!m __^w4gN@ &UaCz7  { l>O T3eܬs^XJ| JH. P#D%'x&a#-z wQ2p!!0sPDͽ:ήЭU'9 6;ym^ $NY$u*,*% vVw n&E)'" A 0D3Af3SRwQ=f|xR I{%*..,0(! %$ O, beUzN3~\zb;:& tEe##!D>` oT[W9E}Q- p%Nr'jf g  .   y \u  ~ 4!!1So f{',n}; p B  /ls(> E ?=!^j}O=+hi3 yB d.# , Wbr ;b .*y[cx$vd/H&}"R'KB1~-*t#cDmG $uԴ ѡν\ḏyվJv hV[V.+' - 1 9K71y(3I/F*O' ,@ 06<D|%ju˱6hmgZz.Ȩ '4 Mc#H'- 6Sq44#3&f,'$% 4NT 7} _FAd̝xE&W.pu358a4m- #Ebt$m ,/423;8b%7dz*4L3-1$H!zN5ݾ)ӑ/2 E0Zx*$Œ"b)" kg_M܏ X f@['~25#8 O;'wA.E1C1@-";7&30**  Y!sӨr+KmP.3ݷ5dnѥ(/H1/W(rC".6/E!:_+A1wH2L.TK(vG BY췠 δ ͟ wtz E "F/V9*@mFK J GUC>#8&+'Y a$,`3 /D}WVp8L:!UQyVKUq|G+ ,y:DHO &+N,)G G)0 h*#' 4g)W9v\̋g  ޖ{{}! w'+,v.30N,%#>1 l , Wkj; Gӛ4_mZG K zP&3*W+**5*%%7Q*+vSI X [ ۴d\pϑѕ O)U4 ]* 3. 65;?)=7"1C + !  Cw1?0 xS %>nFHI[LN!|/Q) [4 q:?.A9C@L9r64o,3m H_oʸ–\ նŷ2лw*8} J (M62@RFYJI ?HBX ɗ ӵ J3 : / AQ'42):C?|?C={7Rp/}#:&pn b  q \CƱzІA ~ X%,X2r640c*U" 5*\{ӘJ̣5ϼ]~G{* T s+D48:'9VF5 , F !G'}ڥE:9ڿZ @Ģ͒F٤  a 9( >7 C3 MJ-LKGa>0Z# b/֝ƣ ױkĮٳ/ټʾ Ljz]'7^DN M .R?P9K/B6m'&\iK>i `fĵRh" y M0;rCYlHݪH4Bر9٧.%fJ;Ҩp'ŋ2Œ,sGi% ) S"^,xt3377)4-"? NPCYߺi o s*la$|*-,Z)A%*a(V"<_Zzu7{F.8X <XAzq O gnWbo+VQ%6 Eu*a hMıR=olo1Q M20zP!Sw/c."'q7i=qv%.0)-@"k9hV#O=ٟ[h2,S^('n502,h aW2dQ>ŀSWx[#/32X/#C|Kh KtkR$A&",ZX;Ue)!T ĸXu^&!py~nN #VNY \M=H""X"V>b4_P%GO o!Y D }  | v 2 Ĉ~ӟc,z64|(!Kf˓PRwH8MUT^;J1N 0lNr 2LUK0 ]~&gش~H :)jV_>Tj 9kb$FY/0\ &L(E͙҂(+7I.Z?fC3}8kx|emA5z@:G$[fxEJ[. ? > (  9_^So =n[!dIOZ,$ ̤ HmbqW[!&Nuq>eeG]X`:_rQ+aNrdH!,&6t;  ẹ|a 8@'EW`=O&Z[ʭ"]z/60>eM8$H W׃6oV34e{C Wm_P %-Ab5a(cq).e")[M5 WffUĄˤ!7+Z.38*aw{> Ta? Q= ~~xlMd+ (&iTfO^"n#Re  /E`P)wYMU= UFL(Eu4-DNq!!1>PDA;B; cS8 uj'K$ZbKA+ c]#O/}M=Fqxr0CVG?XM g H:3aQ5 I F    V8lR@~TG x   =r X 6 n p {>d"G]  n   [2Rv{W ^ *?5Pb   Q  4 3c# J 2!g1Ww : !g rockdodger-0.9.2/data/exploding_rock.gif0000644000175000001440000007546512257577553020103 0ustar krawczykusersGIF89a%%   <81  J!*  Z; d1 %$Fs<'--')Et_k-13}E,F:54+,~78E('88R0.89d 79v"$a9C).p5GDB[%%q7N&ҵoC(cDVIMONHn13B?>B;_B ODdH3?qNRe~R*fa`DWeHR],90lguny>;FDAB<`/tpNOIh7zZr&szbdg={t>ҁb҆͂~܉ԖݖK~Ӓԡr Ҟ/כۖoWbz!,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,"](4hT1ިF丣>dYP?$AK"d/ГYiA[b9a>RP\`b2cR \YXHe per6t.gB]٧_iN&AYz l0dqnZZ[G٩LҹV*j>>I{e:穜뛟9(jԦoڂ{[a!꫓(Jj]{- *ne-BZdl1De¨h&'v&jE.U-lnv>i0;&Ƴ^u?颞L&W0]^r` ^[:4앵F I&SbL_*.|-^ sK @BrQ-#[zYg j q.0wӔON9_shFjmfP;:x=2mƁnW3@_9+WnKYPS ߪB;FEx1A's{Tp6Ic^ X+KVgm$g%#OyU;ꡯJ-R4 ްB(B τBd7 L ]fH (.XQ<@M)Vu[·,*vAւW9],\ e?"y!aT6RxqWwpy+F::1f{0B5#FR񎐌dWl F ?*+S#x%{=ʹ҄tb'u6 bF-ei2m ̄o_1Cd1|V`[N3*9OZ9 -Fw=򞤔>t3ffpw.,$(uFZҤU8ѸԜK*yyAP!VH<ܩS@4,=g8 Ź-?i? UPڪ?g6aЇF=*X S;u<_xSEp\Nrt4(&ֶbP E @ V&1,\/I겇b:Wbb$cx6 ;bNseWj]bPL6ZsvRC)W*#54s kؒv:|~xl <"qM8.t5̊y&ܒɚʧlU݇Jv NmZ63i=Fz]/\8s䋵Jf}0YKӭÝK+h'NL<{'<,Iz߮\9nYk&kULdԴ7mOSou! ~DNNKpưl^8j:Sm=meq0yl+kzLAmlG_" ןiM 锧,o9Jf-LMgNqsC$ 17FŞ~9|k\UυSմ ~ydɳHh{!3mm3UlAG67F68㧔JIw3+!<>y_{^ϷaL'\ |ܚ<yX䏼q|9ntݧHOllMeSGc}}{;VpFWW}3ђ˖.~r$] GUtV|ׁ`heOw7c&pTjBׁ6jVwgBv7|"& hm)X^PyUQf:2hD0s9gzHr7ǁ@ef&~&1*Hdv,OX:v9[gjxQTTt^~^3Hx-׆-ih`vp(^Hd'xpOt9~XؗgX6WurFcy؃ |e8hSeC(rXJ|Ջ搸]ZXhZ[IhhX]7}J·sjH ~qj@Ef6^eZ]p-X9؉r%Tu8h'7UKQ-oo1|~`q])~HW8Qy9<9\W_&`6V"gg348{Fx)Շ(i#g.:ّx|FY6r f2(pfSU؁vPoEpś{7ٓH(W)IYzƖ I4AdmZGi(w^h{>ʍ:ɏ韇HnI-Jq\|guǍ (\Fp(gɥ_9XɏXd8u}9Kgv룥l*TjIs:t]^ فgWxH~?چ|Ӡ[$Wa@ڎyF9܈l&k\XzSU_:a֗&i*wIm7MIZ77hFI f؟9:٭ک楈˺jSW d"ʫDj؎y M}Ja`ysԮIyexVzF'#:ﶤG(Kڟ8(Ǘ7^(٫ijxr.ˎE$7@q2SZگ|)Z)۴NrG7@TKMJI$g1py45wX0۞XcWLt[g(ȀGW0^'`)Hh~xH۷k&ESM;KjdbQh*1chkr'JdQn;ʥۻ{1ٷ[k8Q;vuWPU

Y;Yɶ7F4`WIk~KIӌc\6H"e#0|].q,2.첥EÈxYZ1Y۬bڇrNKmF o8ËxGDHx"g[P]!L[Iu\^9xKebzaG`(e|IPjFs iHlڮ31L™e{J,$罤KӇ^`BIfUaUKV#nA~MnO‰[nCH6O.Ҳtŋp hle^C&$%Rۇ.Xa4K:=,lm`WN HLIj#4h25R9; 3ܨQ<(]]+:D.BWU,74%v'zPԅ_4Tcž*Ǘy\ aj;i)ӟ4wSli'Ok̭it<f\~̧}0Ub𿏝Op5gQũ>Ԇ.Xjb]ȝTδN'/kmH,}S8_6<nbX(FZ!(A#~ƍ%2lE/P,ӦKЦ;^2reF~XB iFg"/,ҋIGz HY׬_Ŏ%[Yiծe[qΥ[]yժul?~ \aĉCAt`6 ĩo .vlxIv~+OfO$EQvNuʁq7zLJViؽѥO^uٵogߊ>80H7TV\y[L?"s j;֐(5M&ni&R2J*+0;STqE[tE~ 1/b )O" :B6`HTJJ$r0MA b$?JFj9sN:NT*G"̻ʤ.Z&KÅ$i"(%SSj"UJ%p&hR6M4ӭ*8$8X20U:TˣVdFgh_T?DN2QfUyW2Jͅ {H°0G#'cQ)ֽ7 Q&yiϣHN(k"$ӓƟYUV=Y|&`Z$_Z$_SY>,R]DVbN+3HjV3dTʈч *E#t׏|0E!%qD0LK0*3pK>-z ) 5.),QF21=NȆkaF2c: Wg.(\j!Px gnm T>CXk'ցJA㢠f7nIYvH D5Jd*{BWr e:A P]N2y!H\3Bf6ڳvʧWLiZG9Dcf~Q(%Dfg&x+t`sYϏsrդYf&bn X}G)^&)$21'dt6pA#䌔o[p>ȍMHˮ+2 h#o& # ^+l%>>^T.KJ-H޳r|t3t 9x55{?%'do^@r\LWʾX:G~B\D*빑j@"7k3|QU]&VÖ·Vx/mӧbPb >c'bSF8Xne!rG (-R7>:r,Xm@;naDKw%G7 }uӨ,\R_RK,Xw(8dQ=#qQB,/AC c88[:0orʛ]Bh2v)86qY7pjA0dةɠHaJ)sq%*4 0 D2 8*b A Ò;Ɋ(VORm r24l{K>s3%&h3 cS/,+Bȏ/?1u)yO"CCC=qAڢ.X ;r!;+0-'Y &" 3 BJKS бG( QŪJ̳$L x|N]ѱ̼1Mb2 [ϴ`Y!'[+HL05U2š)&m/ތo5Ἇ+-ɱq dNǼ |P9auCÀ < @ʑq! `#Gُ  jtX|X ?E?hZ&y$ʼ Qps P)u5@ (N( j'ڐ=xA![=,'I ͫ`E: 2#DS}E)6+E ,B%z>ѽG1bDʏ- Im6ԄB3>ֲ*1ZUUg LVy3NB (: 5>Q*C >ko Ft IME^0t"ePW.3(}VѓV񀈆X1ͨUM(Br%)D {0$>3ZRV{juQN˔t9 X,R5rW.Y (mXUh @! H1@E֏a.*ىC1In7f6ʯpL2-1fYQ;TҔ[ .ԥmZ5e"H- a tT YIE\Fg8!Mۙʉ3q!Lɵ+m˸ZCzĬ5Ȇ ]^ŨV IVs8%LHc,TdC=Ҁ *@&Y Ӻ;ͨHEI67 w1BH.| mpލ Q,%3R OԊe&xL`۶q1ě둯79xYB 8@|DyԶK &J9 nFX 8 R BS2o"6PC| _RpcA )lE}dS]l}2- yGJ;%nH\'PV`3LOÀؓ‰t߽6˵ɛ2|1)L&`%{zɔ.`̉e 6a!Eݯ# .a+R=& %ԏ/RPInοI N=rWٸr <ʇsD;Z` pᢺ-性k%d;Cfj\,t& &Jf(jnk}jL0}_s)k[P >D=dxn<>>L&)N\)H"i[9H屌bQ&;&=\19#Z+3 ֘z2$eET1É|)WFYk't3}ڍ63T#pWIq)SZqꆽ mN°NʉCq+_3 53\CiO3eL z7ayh >%q312&4^討lK&¡,]@"Բ)gT+"Zrݞn3ka#>R0F8t;KTnS؜vnȫ&d1u~x4’d:'Kuo9 c-R!Μ! q۶SKP@MD &ԍٰąS8H6,Gsp<+LNà$nQ𔢫/m"밀9֡%}z >{oy)Dʴ)fZr%fr'/6 .6-(Pv/0B˻v^8Dx5@fC DB}*`\PtMBPP ) ]U"!|PW> ā*hWH% HILDv)QOX&bhQm_H $n)hX.!qRwG'?൓܋ (ZH C@ʤDfO)@lOgKVix;h) 'G%j:yjZQ~.yDy;UgkrbbiwS0u.I ;ֹrR/pQDD~Bw 7N8Bin!.~lQJIaLMi6j{hhawX(zʈ?VtLyLqT# N??#"2"H痉d5A $0)eu ZFo}HN=;|x2$?x1bA Z-4Ҧ A^~84QB Gjq!ĈD̘Ya&7p2SgF(zئK('Mlҩ@. l r Q= @ bǒ-k+L6iŸr1k.޼z/.l0Ċ31dMD!2f`nJO# j&K x0 ̸hG$I.ydK8K?2\ŌvbԨ*|4A(FPW$ڴg׳'0Sb 6ҏ1?tW eFlYf@W)P9ECETKPEvGH)TvQ8h'߅'5DVT\՝] UO/EQD'Q:*w%YtO7Y}8&ey&i5 1h e'U曚ZZ-v  U塑3QP0U,F]PI":\Dݘ@&1C^@PQyaGe$Lil\Iy^TZ%Y&+W\`&{,hJE'n*xٛJkMԧ5Z5C*mu0d3tqaI]q(zᐇLDu'q*'@^%p+eK9ui FTk1h.(cF+C$ZBio%SDm]}rħB&{4ҾHruѽ wP+92gaXJI֍װw1u}_A!Gvs,()ѻZ5+4^6XF$bQJRriĒs] 3~SNIBfMMO,)HRx݀4^Hcq! EK-qQbr$&)J,.OL6R"„1\Xd?5\0#XűHDeu:'I,CJ(%LoJùr IZ/>A%խ^! ʖaCP#3xSiD Z?Q%ra6#-1=^hHK֔Cu|sCef(4O:u6jTjPqW%qk["Ţֵ4p)}5I''*_5Z%uaP4&T(M}(<i$]OAD4vQi+_e YKш[ln3;*@ǎS'ΏYW[g"5' G#,$#|U, E ; هjOT& IR$܋RYmImȸ'ٌB<@DKzJ[bc)J7Nnrˁ|RMfh'5$ɛg"p(lK)STÃ2r42#ҩ%I\'Kd;Rl()u %QMQS/<C40^N/9_, imP% )'T1Xl}kÈPǤBVlSjSCq& Z-봓ȰySXnlRїN[~7-A_}dH5^8l>v\]v,ě!x[,&Xu`م.bR3gXcw Y }P^ > c v֏c(7 v`2δAoZ?.nY" oMޭb>Rp Q pVM,X)ψL16D%dh1d\ '%Eeޯ UP\@gJ9XĐytD ^,OޚZHpa`TY`RFŀ0)]xNϦXZmxՠ,i)ʵk؝q !Q!V,Q)"Aԝ!܅iVJ!Q8r=G#~bDF!aMBE@lT5&OX JuƛpƬ nޤhU2VlyNf2A(|jImZkDЙQJ4ct~Bv)]f.6Z`aĩV-(Pv+ϘU%R@D GQLDLHD`j hJ A i'˽Rl.)m<8-Ͻ@X .C*x }FS[g\ISS6-zl]2AI ܽ$ME?=kq"M"r]ڹF&֎`ǝ H jLMb0-<5? R N`ZR"tE̔**DiZ&bT`e OpNoIEV.Z/8hsMV޹o k]"Vo0B"Tj]GE^zՅV.j/nֵڒ7ݑ v`GxS\h@}dFϢ!+͝[VF}:}@>hpjga` s?E-&Tgn#BE*0%abcT,ٝJ'Y|8D;%45۾ם!hl ĬƬmudNi^9%gQuز$kJF.{{Ň"ntƴ%Fz͜*Nfn^Hfd/gO=hÙNtKCߩF/y؆wP ؽE(|K‘HPL&G_h ֔8F^>Jj$ؽpp<]j$I೙[ocҥ\ŢT&4%N-\;ݑ~%% 7lNTt1IhLCh1f۾}S^Y!tA4 G턗p\V>nXj(q3Sn;P50HCk(ESm$+%;^*Zt`'.nmopD1O9 u B *Ԡ5pED,1 Nj]yD?Se2+Dî$l6XE^8u`@lwDp7xжax!EΎUgfT*7ڲ\čo Dw1Ith)Yoْ4݇ʢ@PF6ԣM+T_=*ml^DRcbvFoh^ l+V_t.{~X!;w9Mկ)!hIQaUĊ"F&2uIɈiTWCDlMwM5OO\aM㺑FNIOPŷ ,=M"@]u12٩rxy s_(]L5`FoaPg?4naRoCPdVL qNpLtN#άS-NJ1syYRDn4rd "}T{J0q谩6Zaʍ<+c%^kgڦ6,C8lE7UQZ,,rOjpI,Da ϩ;uoNg3ь0f8c5qi7wgCdN %EkuGӣų:$y}zXix&G2_rLb% jɣ|UŪ}oEr{wjR טUY [rHuHGoRKkLnpG/Pp?xi3a FBi%a H&yCF~٦.[%E/+HPA4z)|ZiE NTh֠5[hիVcɒZYѶu;6[sֵ{o^{۴]N;UBq!ғ :DF?n(0ך[ӴF,(0K5w`pᰁk`.˝>PC ΊJ%MeIa*QQPBՋ`O5w-+‹ .z%B4Cm?0m.ӎ>.AD3O$6 ,( a'( njG8 bۉ#@p,1 +Io~ܩFjѦFͩDsţ| C6+\J x’7IB@rF}H! ;MP/ Ϊ25P+Rrx 蹃>l }Z" -o4\ b\H Oz sQ7ը,+K,h54c $n@Ѹv٢Dq2ͧVI=I*C*b4`$=֋N?#sY *HDL#b.#.ICȲ/E> ͮbX'4vs ǾH"v#͊TȢq*7hku*+3<:)R}3Ks7,ˈp/b("N5H옾Nui)g7S2׹:a{{*цQj̱trK2SnE󹨌̦ipW^)Dz9Ӕ9\ZH~;„L(;0"`"vVC XoW"> oFjH4HCvytM(q Y+;eCvRC-{"8=ЅCzV)qe,%e\'0R>I!F",^`$)b⯍#}:6 4 )Mp'/úlusSdL=FN`>sO~j&URLy-aR:I%JП 0j? "2R,hy^!N'e&m? 0$(y޸&29byީ&KO~V[zNkz3n JUITcW8-s䪶z k%eԪõ62BRX-Sn\Bݺr+zuvт YZ@PO=y'd0ܫr\63&DfU PYv)$'#0!xװ4lJnس&!X0agK-VLU6bC9QHas.j}QxyL!5bpԫXPx~C-J^6;=m"MF8y'!m2魯#sSUky1$]mya&%LZJcֈ8 r % 8RlK]Ư}tԎ*\D$Gx ZKTIe8)PIڍ _L$$B?(i) 6v˒ҖrZNE NR(5Z*}EY=h8)]&z/t 702~̨F) +CprV5@"(.ȵ,I)ұwGLQM]s}n͛J ~p9^}l?MhR(֏d1bz) 3&^ ?F|>c)r{SDb xơ*+QIhEd3jPruE`tNidx-YRr]Q_657+ZG}j"n{.Z 0xR7*.;cC" g#<}*9 ?irEt{'7V#)[=Lz~@hVC+'ZSDnGx}\jd7,-^\}ƽ'@|FR鏀BO J=/4 E/* M0$8/0Ob62p"MXXo'mDBYM4hkob6p/@o{:p)H( .pP7,4"nfa]m c # ՇU*r&lNBK*֨2O gB$,P$"bʉX ~Enl8CŨl)H >4kM%f"MjLf'ȨV1`X~od) 񢩨bEFb=H;^CP"^N>Dd2?Zc6Eu蒎bclX$".>2pQ)0/rI/֬&4%"+'dL>B[a5bR&] 8fm>nEG2~(ʏLlF_ Ia 2 SQ/X"'RD+R)Z"" zGJ-2t#!+m.,#ZcszͰ҉ h2)- z R3)T:.$_bB ',KE3<τ$I @_и-=CB&$L f|ǛX[՛Fi%Hx4:~kO[Ui(cm4n=Ħ&S_`l{*1['3 -,S/B?/(PVԫƭ:q|"rd?5,bVW5`)2 &v7s4j :PDN h=*]i*Z?ƳUcJ.JwL/Vd u6 R ?VA_,1ȑgST6 KČrs*p.:EbOi b7D7ucdL5PWN#O$KuyXpnhczUkC.L+ob(wu-'ЗU慃;kCغ{7'C<"WSx< Xŋz8i0Omv|wŬ[!'; 46؃mW8)uZE~ 0$iwƴN*gX~t7u-Ot'_\vhCF7)? bh=o8qn qCR]j*?֔M**XrF+ْ#$%\'l$ NY: .5@\GExDDa ND" Cu^-& Y֢Q4aJ!%wljP"DXi1,'cXE䄶SbuJyY&C BZ'fham\4aK:8/$Җ5q-MX !ej 1[YW`yxBD8Puh4yH֨qMhE ŝ^ȂpSHZyzQ+04E$#i(Owz&:.VDY#ڲ+,ӅYjU!@QV 8{5"[Jv#Im80GHTXDDVKbbL*_[Kj4ye6##9زi0&ڡvDgkmyr%/Ĩ=0R,$3+Dnؙ約9zN ƙw&۬y·CCdv.tt]5$SyѪY|CBdB N I;$8>E㶲i*ŤL#Zr͞Rc|2٥nrtKgED "4Ç&?fg({! 1jPD ܯ?;e@BeLeZ+jZܦ%B,]l(r% I1pg\;wx|<4C\ż1oadLJwtjeШ?9ʧB`b,\A}{}2$u6=jѮ XU GPN6BrO+&(y}grQ6R:4KɄU[aRc11./\Rz4~˕x.N;Y1W nRpq<^7bbM'sXu!{YyKn¥eZGI>) }d\ Xþ0Y[o>K[LyNY`7h`:)hƻ~ZՖdCP'߯%bDۆӯ곝{i󡲶[)_If3cSkU^oTW'B7䧘䢟#Z3jSR槭I<>aܮøn7v:C{LY<˟ka0EN&ɞ b0a8|P B+Z1ƍ;z2ȑ$Kla^tB"eDΝ&ey Dm 4ҥL:} `ʔ]thųmlVd˚86EUܹtmsԩ2j˶ LۖX~ 9{_D9xM~'{1.6/f4լ[ ;̾;!ӧs oϴv2G;#]!x>z-m>εۿ?~#`Pm` .]jMtNHa1wOna?ۇ&b %&"R*c>T[$c:(i.6BIsF4Ӂ?dNZWdV^Q?Dieb9?lP`fnVc ?@wgxy&PzJ(|'.Yhx 7Й3h]t}i)BB詮 kJkފkk lKll.l> mNKm^mnm~ nKn枋nn oKoދoo pLpp /p? qOLq_qoq r"Lr&r*r. s2Ls6ߌs:s> tBMtFtJ/tN? uROMuV_uZou^ vbMvfvjvn wrMwvߍwzw~ xNxx/l@!,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.qn'v(8 3PG (ĐCjS.30朣]x裷N9 ,C ;^ @ "d%pz|΂3@.9`vⅣ0^x̓/1p =H!: uԁ(CSDŽ8/K ny+1@ .qo , a (Dapk@ tC40h! I@@ RN&9̡p N8RȂHF)R g8 8 ]pa#`34rToQ $` \4l[W>4WBVv} 2P:pPbԩh6A>;ʅ+l5zU3Ɓ s8 l*SղmlURu Kȭn1‘up[\: d |Є2 jtK]!u]}w3bsF@B`zem@/omv8Ǎ  \^ XL|a ep|[,!XUm|7aÍv3p܈)^&a¬eE,a[-0{lAC.r!%O`p &L!e clfݑ=3GhoNytuv}3Pvq! .c;"p xtgtE 1 TswqYJ7YrSMbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN( OWr!,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8眜sN>==4AMJP t!)=5AWS]SZw$]3`]QdT}vQ`Bkl7CT4$tc A{k7 =@K~jv LzDk~w:䰫8]{=:3B[=yP>{Йdy_4S.4D?xrSE~mBTxD>.EGo{7NBZO{K 8}ܓnִ]G2: j_C8 ~O!4:z ^'Q7BĄ Q@P G7*OwlbI,ґG&ʸ*inT('B 23YE6vpb'91Y΃'#Iw/s :}\՚?k e6U+b1D8y=ѠSdC=iNE#U3f /z*v u$?9TYp\"JЇrp/-PyEyڲa\sg8hIa !T`=! E_Z BT=C ǩ32]תgu(E1'T*Ȑ Ά,`ѭBC(I?ԥzrMae՗z,]!ŗS%lxWOӊ錩ԷDX+[Kd>LfQnOJgÍJȥj]yּ2y"1јHnslAMh^uwF;ѣU{!fZ֩fzYZ7 C s"/jv!,GiϰE'mk(&aS6%^-[2hsĿlGKT8 ӷ2pT+`^"Fd^CpKWf; [UB9V)d LBؕ#0i!|Uݷ,{"^a\쯥c=a$+5+bBzht;-t,]Z\ު;TnyUqz-+@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~8Xx؈&8Xx؉8!,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻOCqWTNy;:ws$ ͧ]o_\/{ؓ^ݕ! FXC q`z`Fh 4!m~mra(` QƉ+H#"+^h,\(HޏEHQ"㈴ĔTV9eAg#X6$9nie@.i]"W飘`*Q5&P& *({ǜueBgПi]ޢ Zg{=Z24)vJzis*vJzj}Bgk,&{k:|"&К iD-+ݚW.2d,n+$~>6l '09wh`vpE Fބ [eF~;` ;l(+oMjnƜq> xY0b TK]<8)=ɦ_kqn j sU|AXL3TjM6a}hm6Y>Wd晏6r)zkyV*W0X)ֹ:on~66f§6ؿ7k؃:O#Z涿/]>OX.~^k(pjU=`]N.qAXL`xAbmp7!寊fc:-qX9ln'Ѕ}DFш>ߗC^YErdCA.bŔ tG[ B/͎hhoR+>~fӣ;GY HE1f4yu_\Z}F=y_%gK9.$ ;bSԝb(Je2Sӥ'Fa'ުh_jP$)U2/\ct&43Omps84<;'exe5OUu,%.s'(9Ќ®tb :t}(Bνs'DZ>ʹ~uQ}O:j~:ePe͠RpJF JTSqzӥڔ~>}$TCr-+oZNƔ(S{FruThWMԬPU\Zל19鵦?kGxS-lLKY}*KzUjdDTr2[ב.k9i+SuTLٞV5k{Zt+h*ZwV.o WMn2{׷Uahc 튕{ $cWǦU~͛\2m.~X^Wiv:^ݧwaQem)βVqj,aXͪv+&,HNƌn~!c[V][dŸ'foK'_ݒݣ:657?&bBڅpO'j/"PȻ,.د}fvp9a/KOu~hg䁆w/13X3=,=;ϕE\JґPz.+d՛f@aa-Cmco4%}l~Sj g5]NH<4խ@PtsKV3wFoosOM:C{%w}IpBo5<.ٙ[[f}:%ːcw39pm<1/f}M̔Ew'g5hҟL"/ɔ-LD#I&gRߺ*ѮJZcǮHǬh\#2KZNoKܕ-)݆N /_2M0 3^r|I(.]`]yG:|9s/ҒJUTB0W}>Z⮝+q%?aO~}? G0%} vJ˛@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Yy٘9Yyٙ9Yyٚ9Yyٛ9Yyșʹٜ9Yyؙڹٝ9Yy虞깞ٞ9Yyٟ:Zz ڠ:Zzڡ ":$Z&z(*,ڢ.02:4Z6z8:<ڣ>@B:DZFzHJLڤNPR:TZVzXZ\ڥ^`b:dZfzhjlڦnpr:tZvzxz|ڧ~:Zzڨ:Zzک:Zzڪ:Zzګ:ZzȚʺڬ:Zzؚںڭ:Zz蚮꺮ڮ:Zzگ;[{;;rockdodger-0.9.2/data/fart.1.aiff0000644000175000001440000024621212257577553016315 0ustar krawczykusersFORMLAIFFCOMM@DAUTHc64 fart generatorSSNDLotgqtvjrqunotpsmtpsmtroqqrroqrqqotorpqsorpsnumuopsotmtososntorqpsnumumumunrrnumtorpsorqpsppsosososospqqqqrososorrntpptlvmunrqpsosorqqrorqptmtorpsorqotorqotntoqsntnsqprprprprproulunsprpqrosqosotnsosqprprprpsntntorqprqqqprprprprosprpqrotoqrprprotorotmvluoqrotorpqrqpqrpsnsprprotnspqrprpqrprqosqprpqrqotnsqpqrpqrospqqrotnsqotnspqrotnspqrotmunrrnumumtososntpptmtorqqqqpsnunrrotnsotntnspqrotmunsppsotnsosprpqqrprpqrotntnspqrosotnspqrpqrprpqqrpqqqrosnunsosotmvlunspqrnvlunrrotnspptnspqqrosososorqpsorqpsorqqqqpsosorqpsorqoumtorpsnumumtorrorqpsntorqprpsnumtorqqqqqprqpsnsqprpqrqprprqpsnunrrososotnrqqqrosorqqrorqqrososppsorqpsppsospqqrosososososospqqrprpqrqpsmvmsrntntnulvlvmspqrqprprqqqqqqqqqqqqqqpsosorqqqqqqqqqrospqrosprprotntoqrpqrpqrosprospqrospqqqqrospqrprotntoqqrprpqqrosososorrospqqrotnspqrpqrotntmuntnspqrpqqqqrppsosppsorrosorrprorrotmumumtpptmtpptmtorrnumtppsppsorrorqpsosorprqprprqprqotorqpqrprprprpqqrpqrospqrpqrospqqqpsorprprpqrpqqqqrorrososospqqqpsorprqpqrprqpqrprqpqrprpsntntorprqprqqqpsnulvmsqotnsqprprpsntoqsorpqrpsnsprqprotnsosorqpsorqqqqqqrpqqqrpqrotmunsprotnsprprotntnsprotmuopsospqqqrnunspqqrotnspqrpqqqrotmtpqqrososprpptntoqrotnukxkuoqrqprprprpqsmvltpqqqpspqqqqqqqrpqpsotnrqqqqqptnrqqrprnvluntnsqotntnspqrosotmumunsospqqqqqqqpsorqprqprprqprprqprqqprprqprprpsmvluoqqrotntnsqpsnsprqprotntntoqrprqprqqqqqqqqpsntntoqrprqotntnspqrpqqqqrospqrotntnsprqospqrosotmumuntmumuoqrosprprprqprprprprpqrprpqsntoqsnsqqpsmvlvmspqrprotnspqqrosospqqqrotmuoptnsqospqsmunspqrprpqrprqotntntnumsprqpsmvmtpprqqpsnunrqqqqqrotlvnrrorqpsppsososnumtppsnunsosososorqpsnsrnumtpqqqqqrntorqprqprprqprotntorprprqprqpqsnumsqpsntorqprqpsntoqtluoqsnsprprotntntntoqrpqsnrrprpqqrpqqqqqqqqqpsorqpsorprqqpsosppspptmtppsppsnunrqpsorqpsntpovjxltpqqqrpqrotnsprotmvlumuntmumuoqsmuntoqrotoqqroukvnrrntpoukwmsprosotntmuntmunrrorrntpptmumumunrrorrotmumunsppsotnsosotnspqrpqrprprprpqrpqrosospqqqqrorqqrorqqqqpsorprqpqrotmunsosprppsprpqqrospqrorrotmunspqrotmunsosprpqrqprprqqpqrqqqpqsnumtntntnsqpqqqrpqqrpqrotntoqrprprqprprqprprprprprqprprrntoqtluoqrpqrososqnvluorprpqsntnsprpqrotnspqqrpqqqrpqqqrospqqrnvkwltpptnsospqqqqrospqrotnsqotnrsnsososorqprqprqotnsqososqosospqqqrosntppsntpprqpsntorprprqpsntosorqpsosorqqrntorqqpsntntntnspqqrospqqqpsppsososorrospprqpsosnumtpqrpptmunspqpsprososqotntntorrorrnvkwltorqqqprqqqprrppsotnsospqrosotnsososorqqqprqqqpsorqprqouluntntntorprpsntntosntorrosnumunrrpqqqrprosospqqpspqqpspqqqqqqqqqqqqqqqptlvmsrmvlvlvluoqrprprprpsnspqrpqqqrosospqqqqqqqqqpsosorqptmtpptnrrotnsosososnumtppsosotlwltpqqrorrospqqqqrpqqqrpqqrprprprprprpqsntntorprqprprqprprqpsnsqprqprprpsntntntnsqotoqrotnspqqqqqrorrnvlunsprprprprprprqprprprprprprqqqqptmumunrrnunrqqqqqptnspqrpqrprosotnsospqrpptmtqnumtpqqpsosorqqprqpsntosorqqrospqqqqrorqqqqqpsntoqrpqrotnspqsmvkwlunspqrosqprpqrpsntnsqospqrpqqrprprprpqsntntntntorpqrqqprounrqpsosorqpsososospqrospptmunrqrotmunspqqrospqqqqqqrnulvnsntorqpsntorqpsorpsosnsqprpqqrpqrotorprprqprprotnsqospqqrpqrnunspqpsotmtospqpsosorqpsosorqqrorqqrosospqrprprpsosntosorqqqqqpsorrnsqprqprqoulvlvmtorqqqqqqqqrososotmunrsmuoqrotntnrrpqqpspqqqqqqqqqqrosnumvlunsprotntnrrosppsorqpsntntoqrotnspqqqrosorrosorqqqqprqqqqpsosospqqqptmtorqqqqpsospprqqqpsnumtppsorqpsorpqsorpqrqprprqpsorqqptlvnqsnsqprqprprpsntnsqotntnsprotnspqrpqrotnspqqqrnumtpprrnvkvmumumtososnumumtorqqqpsnumtorqprqpsnsqqqpqsosorqpsorqpsorqpsorqpsntorprprprprpqrprprotoqrpsorpqtmtoqsosososospqqqqqqqqrorqqrososprotnsqprprprprqprprqprpqsmvluoqrosqpqqqrospqrnuntnspqsntoqrqqprprrnumtppspqrorrprpqqrprpptntoqrprprprpqrotnspqrpqqrotmunsososospprqqqqpsorpsosorqqpsosorqptlvmtorpsosorrospqqqqqrorqpsosntorrosppspqrorrntorqprqpsnunrqqpsorpsnuluorqotntoqrpsntorqprqprprprotmvkwltpqqrnunrrospqqqqqrnumtorqqprqqprpsppsntpqrppsospqqqqqpspqqptnsospqrospptnrrnunsosososososospqqqqqrososprpptntntntnsqprotorpqrqprprprprprprprqprprprqprprqqqpsosososorqrososotmunrrorrnumunrqqrpqqrosotntmuntntnspqrpqrpqrpsntorqprqprqproulwktqotntnspqrosprotlwltpqqqqqqrprotorqoulvlvlunsprotmuntmuntnspqrospqqrnumtppsosorrotnsqotorqotntoqsnsqprqprqprqprqpsorprqqprprprotnspqrpqqrpqrotnspqrprpqrprpqrpqrpqrnunspqqqrosqprosprpqqqrpqqqqrosppsosorqqqqpsnumtoqsosntnumtntntntnsosprpqqrprpqrqotmvmtntnumumtppsntpprpqsntntnsprqprpsorqqptlvnrqqpsppsosospptmunsprotntorqpsosorqpsosorqqqrnvkwlunsospqrosotnspqsnspqsntnsprqprotoqrprqprqpsorqpsntosorprqprqprprpsnumsqpsorqqqprqqqprpsorqpsosppsospqqrosotmumtpqprqpsorqprrosorqrnvkwkvnspqpspqrospqrotntntmuoqrosprososppsnumtntosorprqpsntnsprprospqrpqqqqrpqqqqrosprpqroulvlvmsqprqosqoultpqrpqrotmunsppsosppsososotmumunspqrpqqrotnsosotnrqqrpqqrpqrotnsqosprqosqpsntoqsorqpsorprrorqprpsmj[WJ:+nL+c7Hk0t-^v)@>4xSIg/GKVSSB5ZckGrY~=? nD>]?wQIT U 6 $ C P I J_7 f4gCr0n? 7B>b.s:ka#b w f SK B %o7}$+gjG(;(^XK -Z t Q":H^|Lj7Zm} j 4{@6DD|# ^  t 6 -~?D.P35`%WER$ !y Y :m1KP74@LzF [ % D-BoEJ : 7N6J1DrA I Qt V8Hk c`~pn}jTRTL802( w u m d [ S O F < 8 0 ( #    z v l f _ X R J D ? 4 0 ' "      z v n g d Z X L K @ > 5 0 ) "      y t n i a ] T T H H = : 2 / ) ! !     } z u l m ` a Y T P F G < < 5 / , &     ~ywnned\[RQKEC=96.-%% ~wxnpfga[[TQNEG=@39,/&% ~|wsrljfb_\WVPMIEC>;832-,&%   yzstmnhfc`]ZVVPNJIGC??8<320++("#  ~y|uusnohkddc^\^UXTPRKKHFDA?>9;452/-,(&%"  {z|vyruqoojkjdh`d_^[]VZSTRPNMKHHFBE=A;=7:3612.-+)*#(%   }~z}wywtwptpnphpfkegedaa`_][\YXXTVSQRONNIODNAICCB@@=>:;9874515.2...*-(+''&%%"""      ~gS4fEb4QWC[ ig [.q3du$.ID*${@,U.w> O߰(rݪݠoL%z_D8"|qdGB?=" 5'K8T de(/,R'!zk&{%f-I %jv ]%_Y+om _ C X 2FG_Pw) vS\[|nUfB'G*  8 P(#HTb$D*:l=jsC  0BbJyJJz  ^ 0H$B([@OQuhc$ucz H q *BLUu}H}~YHW|C .Y}S m!w$ i e yw"AkM  L @).3B,D:'+R@0Ah_M^|~lx #0527LLPNfckiy$*/49EAON\Zbfosv~ #%+05;>DHPSX``kksxy $,,46HRLLT`YZajjeouztz  (%-*1358:?ADDKKPPVXWaZi_lhqntvy{|  "&&**0.355<:?A@GFJKMRRWUY^\d`hdnhqottyv~{  ! "$&(*+..30576<9>>BAEEHKKMOQRUUX[Y^\b^g_iejhnjqorstvxyz}}    !!#$&$+&,+,0-2055678:;=<>@?BADDEEIFKIJNKPNRPVQXSZU[Y\[^\b^badcfffjfmimmmpprsutvxv{y|{~|    !" #!###%#&&$*#+%+'+)+*-+,.,//-2/32160653855:4<5<7<8>9>;=? 8itB!*M o81 - t_8 >  r  Q G  (  y  o ` h f \ K L Q C 6 3 : , !  !     } w p j i b \ T U M F @ > : 3 + * &     ~tvlkda\XQQHG>=55+,$! ~}sxjpbhZ_TVLOBG=::,3''# }vyqmmgcb[[VROKIDB<;630,(( !  }{uvoqhjcd^]WXQSJLFDB?;:723-+*&"!  x|svpnmiide_^]XZSSSLNIEI>E:?97622.,+&(!#  |}w{svqslqfoehcbc]_Y[WVTSRMNKKHFDBC>><8:6531.1),(&'" "    ~{|zxyuuuptnpnkkjifhbg_c]`[^W\VXTUQTMSJPGNEKDEEAC??==;9:65725101/.-+,*(*$(%"%#   ~}{}z|w{wvzp{owqsprnqmnmljmgkhekbhcddac_b^^_]]\[Z\U]R\RXRVRTRRRQORNPOLOLMMJMGNFLGIGGFHCHBECCD@D=E<C<A<?<=<;;<8<6:95:48546261413.4-2-0-..*.+++)+'+&(''%'$$%"%!$%%             r]M5* |X5j9m.~D6FVZS/k4Px /2>38 YU\J Nk)T*sJb?$ oQL0  L  [tbt=zS>b6KK(;M^)pH Y=l6  'X K 0\^ c4H[x_ XLN& [ D DICj`). 'UH> kq E1(NP%?0q l x l ttR I hVA@`2; .Ya ^ Rde{^'Ny$A *8 y &6'R|fr ;IHActuq""+?LLVext$':A=@C?EDCIEIIIMIPKSNSSSVVVYYY\\\`\c_cccgcjelhlknmorowpxtxxx|y}}}      #!"!##$#&#'%(%)'*'+(-*+-+/+2*5,5/331626474876;5;9::<:=<=>=@=AAAD?G?HBFFEGGGJFKGNFPFPJOLONNRMSPQSQTTSUUTYSZVXYYY[Y\\[]]^\a]a_`babbcdddegcjdjgihkijminllpkpoporosqsssusvuvwvyvzxzz{z|||~}~~tfVA(c>bF(^0>^AI8Zs>xR7 w f ] \ f r  -Kq<mJ#pji$ !/!"#$$-#"!  8VV]y eN?@$+ok3=|; !f ^68 !!R 59PRis | } p \MTq ;"o%xJ6G[:N)" M 'l<_z~DBD+   jvns PQ@O f{8D+ 6 ud y c/Jl>57/0(+!# }}yuumnhfc`]YZPUKMIED@?9;16,/)($" }yxurpoikbh_b\ZZVUPQJODJBAB:>7734-1(,$&#     z{yvwptnpkkhhecc_^]ZZWUTRPPKLIGGDAA?<>6:634/1-*+'("#!   |yx{wwwsvmwjrkknel`k_g^a_]^X^T[SWSSPPOMLKIIFGCDB@A=>;;979472411..--),&,$(#%#"!       }}}{|zx|uxxqyoynvoprlrjphoiikfigdhbecbab^b[bY_Z[[ZYXXVVVSVRTQTOTNQPNPLOLMLLJKJIJHHGHEHDEEDCCBCB?C<D<@==?:>9=::99979676555434131110/0-/.+0(/(-))*(((&''#(!'"##!##            |}}~~~~|~}||{}|{z{{zy|w~u|xzwzu{uywvxszrysuvtuutttsstrtptpsprprospqqqptmtorrorqptlvmtoqrpsntnsqprprprpqsntntntoqsntorpsorprqprprqprprprqpqqrqpqqrprpqrotoqqqrqospqrotnrrpqqovmqsnvlsrotkxmsnsrpqotsz~0Tm#Mo3e GAVJB 6 M  P ' gJ=*3"g\ ` - } 0 .'h X#l+eK|@IHOVVa`glnuw#&)0/98@@IIQRW[_cdniwr}z ")&105::B@JEPMUWZ]`dgjnowwz #")(-.356;;CAFIIPOSXV_]bdhholttx|{ " %&(,,/237:9?>CCJEOJSPVT[Z_`agdkjmrquxw~z ## %%')+-/0263;5>=@?ACBECHEKFKLIQKPQOTQWQZTZZZ^[`]b`bdbgegihjkmkqktnuoxqzuw|x~|~    "# #"$"&"'%%(&')((,)-,+/,/.0-3.3031525366577797::8>9>==?=A=B?C?E?FBDFBICIEHHIIIKHOHOJOLONOPPPQQTPVQUUSXTYUXXX[W\X]\Z_Yb[a]`a_c_e_g`gbfgdheigkemglkklmlolpnpppqsnxnvtswtvwwwxyx{x}y|||~}~~~~+:Kan0Gp0]#O8v9~ L-|p  m ' @  k 4 fIesWx{%<qk7 I8s/]$D s 6Kk"#4K1,Kk?>#=Ot 0My 1 a 7nXdzU wr \ K }>?@RZ[G3O X ^ZeoT( V .\nZm 1S: d V62MXt@O . l ]ClP2 ?Wp 6pYzhd{ %&)+CGDJ^cgd{+/4:BPLX[jkqy #-,;:GDTT`ahqt|#%2/@DJLVU_bfopx|"#,+55FFKLPPVX[^`bggmmquu|z  ""&&*+0/62:8=@?EDIIMMRSWWZ^\dafiioluozu|{~  $ ($*(.,005396<<>?ACFEJGOKQPSUVW\Y`]_d`hcihlknootstyu{z~}   " &"&'(+*,./0116476;8=:?=@>BCCFEGIHJLJPKQORQTSVUXW[W^Y`\_b^eagdifkiklmnpnspusvtyv{y{|~||     "###%%""'"(&'')'+',)-*,-,/-///010312434547696;7:;9<<9@;>?B?AAD@F@FDEFEIDMFKJIMJMLLOMOOOPPRQRSRURWSWUWWWYW[XZ[[[^Z_\`]`_`aaabbdbfcdialbkfjhilhnhojpjrjslsnspsrtrutvuuwwyvyyy{zz~y||{~zaQ4jGi2WG V)~khq ~B t@" n ^ K C , 8+IJjx?Y2` *"c U!!"~##$%Z%W$#"!! 3Sbf} qD!8D{XY[J  U (wf$0!" "?!ipx| { u^RG: Ji-e l (HL^ :(n  5Ukn$EgM7FfW7 O ]PU8 3Qs  59I T,` m bNIRF%&3%  { k m g b L M K @ 4 , , #     | u n d ^ Z R I B ? 6 0 & !     { v o h a ^ R Q H D ; 6 - + #     w w m f e Z Y P L D @ 8 6 - )        w w k m c ^ Z R Q H G > ; 4 0 , $ $     xxnmgb\\QTHIC;>05)(# {zwmqgeb\XYLRDG>=831+)#"  ~|xsshnae]\VVOMKCF<=842,+'$! ~zyuqqjjfc`^XYSQOKHHAA=:9420-*'$!  ~|{vwqqlmfiad_][WVUQOMKHHAE=?:97410,,'(#"   ~z{yuxqrpmmjihceaa]][YWUTSPMLLGJAG@A><:;5823//-+*&'##!    }yu~tytttpqnollihifedac_`][]XZWUVSRQPOLNHLGGFDDB@@>=<:;5:362202..-+-)))%(%#%#       ~}z~|{zywywtwsvpvlwkrnmnklkjihifffdfbbbbaa]`]^[]Y\W[U[RYQYPWQRTOTNQOPMPKOKNINHKIJHIFHEHDFEAGACC@AB>A>?>=>:@8=:9;8987776563615132/3-2..0*1(1(-(,)))'(''$(#&#$#""" " ##!           ~~}~}{~||~{||z|z{z{x|yy{v|vzxvzt{txuwuwswsvvqypvsruquouprrpqqrosososorqptmunrrprotmvmrrospqqrosospqrospqrpqrprprpsorqpsorqpsorqqqqqqqqqqqpsorqpsntorroqsnvkvmtosorqqqrorqqqrntosorprrnumsqprqpsnumsrosorqqrntpptmtppsorqprqotorqoulvmsrmvluoqrprpqrouluopuluoqrospqrosospqrospqqqqrpqqqqrpqrosprprotorqotorqotntnspqrpqrprprpsntntorpqrotnsotmvkvoqrpqrprprqotoqsnsprqprotorprotnsprprpqsntntorpqrprqprprqprprqprprprqoulvmtorrnumtpqpsnumtorqqprqqqprqqprprpqrpqqqqrososorqprrmvluoqsntntntntoqrprprprpqrpqrosprpqqrprpqsnsqprqoumsqprprprqotntntmuoqrosqotnsqosprpqrotnsqotmunsotnspqrpqrpqqrosorslvnrqpspqpsotmtpqqqqrorqrosotnrqrpqrpqqqsopsqpqqrrmtpsnrrqpouoqprslst~|9VoEjLz$WL_H* $ x D N 5 e B$\& n I  ] "6;6 dEA1l C}6aw$[zA"8Rh!B]"T} +@gj .nuJ-_ ;|[i~pYCe x$r b8RS@ c K@#}sjG|yLZq[9'./*).   ) 7 LYUg:3\&?8BXjnq -0BBDFDIFLGMJOMOQNWNXRWXV\W]Z_]`_abcgdhhhkkknnoorqtswsywy{{{~}  !%% !&)(%&)&()(+)*-(0*.-..0/0020405336386888:8<9<;<=BA@D@FAEECHDHHGKHKJKKMKPIRLPQLUMUPSRUSUVRZTYVXZV^V]Z[]\]^]__`_b_cadbcfbfgblbjghkhjkjmkmmmonopoqsnuqsurvutyr|tzxxz{y|{{z|}"+?Nbt5V~$NP?D*l c`  m 1 S # f =,t|},fp!sDr  !x""#d$8$$##%"G!r 2P`}++3 > J K A Q[YGI`^B/?D% $k;@Zz D o KE] 7!"![fO ^5+ * GRcYk#[^b8@(WP < V5s,K4g+8 n UkqJ4fI+&&  }wosCz5G[-* ~o]XI;'% zk^QF:)tf[KF4*ymaXJC1+uibPL<5+si`SM=8*" }xmcYNF;4%  rk`YNG;4($vof]VKF:3*!xuffXQM><0'$  u p i ] [ O K A < 2 + %   w n l _ _ S O G ? : 2 + &      x p n b a W S K F > : 1 - %    ~ ~ v p k e _ Y S N G D 9 9 . + &       z w p m e c Z W P M E C : 8 2 - ( #      xzoqei\^VRNGF=>35+,"!  yxtlneb_YVROHI??;53,-"' }wxrlmdg]^XWQOKFG=@8711)*$" ~ywupmldg__ZXVRNLIIAD=<9723-*+#&  x{rvnpjjfed^`Z[VVRQOJJFFB@?:;6621.,*&'""  ||ywvupsmoikhdg`b`[]X[TVQSMPGOBJAF=C9?8948/6*1***$'"!    ~|{~wzvvvrsqoplllihgfecb`a]][Y[T[PXOSPNOJMHIHEFBCA?@<;>5=38452301/-/)/'*'%&$#" "!     ~|}{{{v|uztvustsqroponnjohmhhjeicgceae^f[eZa\\^X]W[WWWUVTSSRTOSOQOPMOMMMLKKLGMFKFIEJBIBGBF@F>E>C?>C9D8A:>:<:9<5=5967583551604020/1./.-,0'1&-*(+')'&)"*!'##$""!"#!       |}}~}{~|}~{~z}|y}y|zy{yyyyxzuzxwyuxxtysxtwswrvstuqupvqtqsqspqqqrprotmvlvmsqpsosnulvmtorpqsnumtorpsorqpsosorqrotlwlunsosorqqqqqpspqrospqqrotmunspqqrotmunrsmunsprosqotnsqprpqsorprpsorpsnumtorqqqqptmumunsospqrotnsprqotmvmspqrotntoqrprqprprprprqotorqpqsorprqprprqprotntnrrospqrpptmvmrrosppsorqpsnsqqqqpspqrospqrosososppsospqptmvltqprqotorprotnspqrotmvlvluntorprpsntoqsntoqsntorpsmwkuoqsntnsqprpqrotnspqrotmvlunspqqrosorrosorqqptmunqtntnrqrprospqsntnsprqpqqrpsnsqpsnulvnqsntorqotntorprpsorqqqqqqqqqqqqptlwkvmtpqpsnumtorprprpqrosososppsospqqqqqqqqqpsnumsqpsntorqpsorqqqqqpsososntosorqptmumunrqqqqqpsosososppsososnumtorqqqprqqpsorqpsosorrnumumumtpqqqqqrosorrosorqpsnumtntorrntorqqprprqosotnspqrotntnsprprpqrprospqrospqqrpqqqrpqrnunsosnumsqpsntntorqprqprpqsnspqrprprosprprospqrpqrospqsnsqotorqprpsorpsoroukk[WI;* nL+oK[">:q$H^` V9t :j7Pemxyk`M<| x.%*߿߱c-%u[A["s]]K(mmj[D5;1*,0& . e 3 # ; U7v?c@}\Fs`l>6xY83 4r v276Mh_9gb"E5'(uXZC _2 u@  s r s d [ T V K @ : 7 3 "    z v p g ` ^ R P F C < 5 - ) #     w v j i ` ] V O L A C 5 5 - & $       x s n i d ^ X S O G F > : 6 / + '      xvolf_aTXMLGA>941+&! wwpmhca\XTPLGF=@47.-("" }|wsrljdc\\VTPMIDD==57-0((#!  zxvpqkhhaa]YXSRNJIDCA;<58/2),'$  y|uutlqflddb^_X\SUQMPHJDEB=@8:634-0'+%#$   zy{ytxpsonljhhdd`b\^X[VUUOTJOJIHECCA;@6=55501.,,(($& !   |{}{xyuxruprnolmihhegad`_bXaW\VZRXPTQNPKMKHIFGBF?B?><>7;7672331/0-.-)+)('&%$#!#      ~||~|{{{w{vxvutsuotnrnnnlnhnfmfghfffbf`f\f[c[`[^Y\YZXVYUXRWPWPRSNUKTLPNMMMKLLIKIIIGIEICIBFCDDBAC?BA>@=?=>;>9=9;9:6;59574735333204-4,0/-/+/(0'-)*)(()%)#($%#%""$#! ""          }~}}~|z|}}}{}|{{{|x~u~xz{w{wzv{uzuxvysxtwuuusxrvsttrtsqunvnuluoqsmunspqrnumvkvmtppsorqqqqqpsososososnunsorqqqqqqqqqpsosorpsntosorprrorqpsorqprqpsntorpsosorpsorprotnspqqrpqrprprprprpsntorqqpsosppspqrpqrospqrospqqrotmunspqrotntoqsorqounsorptmunrrospqqqqqqqprqpsorqqqqqqrpqqqrpqqqqrosorrosorqqqprprqqprpsosntorqprqpsnumtososntosorprqpsnumtospqqptntmunspqqqqqqpsosorqptlwkvmtosppsospqqqrososotmtorqqprqpsntospqqqqsntmvmsqotoqqrprpptnspqqrprosotoqrosprqprpqsntorprprprotnsosotmunspqrprprprqoulvnrqprrotlvmunsppsospqrotmtqprpptoqrosqprpqsntoqsmvlunrrprosotnspptmvlunsqpsnsqprpqrprprprqpsntorprprprprqpsoqsnumtntosnulvmtorqoumunrqqrpqqqqrotmtpptnsppspqsmumunspqqqqqqqqqqpsorrnumtpqqqqrorqqqqpsntntorproulvmtntntorpqqrprpptntnsprpqqrprospqrosospqrosotntnsprprpqrprososppsorqprqqprprqprprpqrprotntorprpsorqpsorqpsorprqprpsnulwkuorqqotntnsospqqpsosppsososnvltorqqqqqqpspqqqpsppsoqtlvmtorqprprqprpsnsqqqqotosorpsorqqqqpsososppsosorqqqprqqpsnunrqpspqprqqqqotorprotoqrprpsosntntppsntosntorqqprprqqpqsntnsprospqrosprospqsmunsqotnspqqqrotlwlunsprprotnumtntppsntorprqpsntppsorrorqqqqqptmunrrotnrrprpqrprprprprotntoptnspqrprotntoqsntoqrprqprprprprpqrprpqrprprprpqrprprprprprprpsmuntntnsprprprpsnsqpsntntoqsorqotntnsprotnsqprqpqrprqprpqsorprprotnspqrpqrprpqrqpqrprprprprqprqqprqqqotosnsqpqrpsnrsoqrqrnqyz5F\pJ%lDj|>w8V^x a 5)W!Oo!+*0 ra<M=Jߪsݷn0ٵڢۅh9+|t\CA=7"$&* 6J6!+QV>Jqqw#M"y/!hR5gMegYV&Ee_Q~Yu \mQP{*w]pVUo $6HM^r /;HSlr*6GT`oz +9DR_mx/8GR_ly "2;JQbky)3@IV`kz !&6>JV_lv  (3>GS^fry #/8CJX]jp)-8BIT[fmy!&36FFYVjix}$(77HFVZbnp| +%:4FFRW`gnxz !),6CIPW\egpt}~  ++78@GJQVZcfmrzz % /+78@EGPRW_`ijtt "#+-45=?EJKUT^`ejnqyz !$*,24:?BAGDKGOKQOURZS_X_]aadcggikkonptpytyzy~    ###($+(,,..02163788;:=A@CAGDHHHKKKOLOSMVOWSXVXYY]Z_]_`abcdffiiimjolppqsqvrztzxz|z{     !#%&!$%"(",#,&*(-'/(-.+0*3+3-3/304342729396;7;9:=9>;>=>?=C=BA@DADCDECHDHFHIJIMGPHOMMNNPNSMTNUQTSSVTVVUYVYXYZX]Y^Z]\`[b[c]c_cacbecedffggfjflgkkjlmjpkopktlsprqstrutuvws|r}u{x|x}z}|}}}~~}~&4GTj}3Qt6p0hLJ^A. 0 G f 4 _ / |QO&4#8/GHf~DG1 W!A9=5631.-)(&""  z~wzsxosnnkjheg`c_\^XYWTTPPLLJHFDD@@=;<69251.0+)+%%$ !   }}z|wzswssqopmllglefdcba_]_ZZ[T\PXPSPONLLIKDK?I?C@>=>8=7773614000,/++*))%)!'!$        |~||{z{v|r{swrvpuoqqmqjpjlkhkfjdicedcbb`a^`[bY_X]YZVZTZPYQVQSRRPSLSMONNLMMHPFMGKGJEIEHDFDDDBD@D>C??@=?><>;;<9<9996:4:383626141211/0//-/+.,*-)+)(*'(''$(#&#$"%$##!            ~}~~~~~}{|}}|{}|y~x|zy{zy{w{wzxxxwwwytxtwuvswswsusvqurstqqsqrpqrotnspqrprospqrpqqqqrpqqqrpqrprqprqpsntorqpqsorqprqqprpsnumtppspqrospqrosprpqrprpqsmvltqnumunrpsosoqtmtorqrnunrrnvlunspqrospqqrnunspqqrprotmunrrososospptmuoqrosprpqqrpqqqrpqqqqqqqqqqqqqqrosorrnumumtpqrpqrprprpqsmvlunsotnsprotnsqotnspqqqrpqqpspqrosprprprqprqpsntnumtnspsntntorqprprqprpqrprprotntntnsqprpqrpqrosospqrotntnsprotlwltppsnumtoqrqprprpsntorprqqprpsorprqqpsntorqqqotosoqrqqpqsorqpsppsotmumtppsorqpsnumtntorqoumtntosoqsntorprprproulvluorqpqrqpsmuntnspqrosprpqrprotntoqrpsorqpsorrnumtpqqqpsospqpsosorqqqprqprqoumsprpsoqrqpsntntoqrprqpqrqpsntorpsnumtoqtmumsrosntorqpqsnsqotnsprprprqpsnulvlvmtnspqsntnsprqprprqpsorqqqrosotmumtppsnulvmtpprpsorprprqprosqprosprpqrprprprprprprprprprpsntorqqptmumunsosotnsorrosorqpsntntpprprqqprprqprprqqotosppspqrosotmumsrnumtorqrorqptmumunrrotnspqqqqrpqqqrpqqrprosospqrosospqqqrososososorqqqprqpsorqprqqqqpspqqqqqrosorqqqpsnuluorqotorqpspptmunrrosorrntorqpqsntoqrprqprqqpsnunrqpsorqpsorqpsnulvmtorpsorqpsorqpsorqprqprprqprprqoulvlvlvltqotnsosprpqqqrotnspqqrprpqrprotntnsprprprqprprqprotnspqrosotmvlunrrotnrrosqotnsprpqrotnspqrpqqrprosotnrrpqrpqrprqotntoqrotntmunsosospoulwkvmtntorqprqprqprprprotnspqrotnspqrotnsqnvltqnunrrospqqqrprosotnspqqrospqrotmuoqrprpsntorqqqpsorrorqpsppsnumumumumunspptnrrosorqqqqpsnunrqpsorqqqqpspqqpsosoqsoqtlvnqtlwjxkvmsprotntnsotntnspqrprprpqsntorpsntorqqqprqqqprqpsntntorqpsntorqprprprprpsnsqpsntntorqpqsntnrrosppsososososorqqrosospqqrotmuoqrpqsntntnsprpqrotnsotnspqqqrpqrospqrpqqqqqrososotmunsqospqsnsosprpqqrospqrospqqqrpqqrotnsqosprpqrospqqrnvkvnqtmumsqqqqprqpsntorqprqpsntorqprqprpqsnspqrospqqqqqqqqqqpsnumtnsqpsmvlvmtntntoqsnspqrpqqrospqqqqrosospqqrospptmunrrospqqqqqqqqrospqrosprotnspqrqpqrprprpsntorqqpsorrntorqprprprprprprqprpsntntorpsntntorprprprprprotmunrqqptlvmtorqqprpsoqsorqprqpsorprqqprqqqpsosososnumtppsoqsppsntppsntppsoqsorrnsqpsntntnsqprqotorqprprprprqqprqptmtorqpsntntorpqrqproulvlvmtoqsntoqrprqotorqprqpsorqprprprpqrotnsprotmuoqrorrospqqrososprorpspqqpsotnsprpsntorqprpsorprqqqpsosorqqpsntorprprprprososososntosppsososospptmumumumtosorpsotlvnspqqrprprprprprprqprqpsosorqpsoqrotorpqroulvluntnsprprprprotntnsprprprprotnsqotnsqpsorqqrososprotmunsososorqqqqpsorqqqqqpspqrosprosprotmumtosorprprqprqprqptlvmtppsntorqpqrqprosqotmuoqrpqsntnsqouluoqsntntntnspqqqrpptlxjupqrorpspqqprrosorqqqrosospqqqptmtpptmunspptnspqqrospqrosotmunrrosppsorqpsorqpsorqqpsorqprqqprprqprqprprqqpqrotorpqqrqprprprqprprqpqrpqrosospqrosprotmunsotnspqqrosppsorqpsorpsosorrosospqqpsosorqqqqpsososorqqqqqptmunsotmunrrospqrotorproulvluntnspqrpqrotmunspqqqrotmtpqrosnunrqpsosntpqqprqrosorqqqqqqqpsotmunsosotnsosotnspqrpqrpqrotnspqrpqrprprprqprpqsnspptmumtorqqqpsnunrqpsosntorqqprqpsorqpsorpsnumtpotospprpsosntorqpsosoqsosorprqprpqsorpqrqqprprqprqpsorqqqqqqprqqqqprqpsorqpsososotmvluntntntntnsprpqrotnspqrososososorqqqqpsnulvluorprotntoqsnsqotntnspqrprprprqpsnulvmtorprqotnsqotnsprqpsnumtorrosntpqqqpsospqqqqqrpqqpsprosotntnsqotnspqrososorqqprpsorpsnulvmtntntorpsnumumtosorprqpqrpsnsprqprprprprprprprprprpsoqrprqprosprprprprqqqpsnulwkunsqotnspqrqprpqsntoqrotntnspqrprprpqrprqprpqsntntntntorpqrprpqqrpqrprprprprprpqrprpqrprqotntnspqrospqrpqqqrprospqrpqrospqqrotnrrotnsprprotorqprprqprotnsqospptnspqrotmvlunspqqqrotnspqqsmvlunsprpqrprprprprprprqprotosoqrqqprqqrnsqqqqpsosorrosorqqqqpsosorqqpsosorptmunrqqrotmunspqrprpqrpsntntntoqsmuoqrpptnspqqrpqqqrpqqqrpqqrotnspqrqosotnsorqqpsntorqprprprprpqrpsntntoqsmvluoqrpqrpqrospqrospqqrotmtprpqqrprprqotntorprprprpsntntntntntnspqrprpqqqrprospqrprpqrprpqrpsntntosorprqqqprprqpsmvluoqrprotntoqrprprprpqrpsmvkwmsqotnsqotorpqrqqqotpptluorprpqrotmumunsosotmunsprotnspqrqosprprotoqrprqotnsqotnsqospqrotmumtpqqrnumumunrrnunspqqqrotnspqqrotmumtppsososospptmunrqqqqqpspqqpspqqqrpqqqqrnvkupptmtospqpsorqouluorprotoqsntntnumtorqprqqprprqqprqptmunspqrotnspqrpqrotntnsprqprprprpsmumvlumtpqqqprqprpqrprospqsmvluoqrqprprprosprosospqrprproulvluntntnsprprprprprqprpsorprpsntntorprprpqrprososqotnsprprprprprqprotntnrqqqrnvlunsqprprprospqrpqrprqpsnumtorqqqqqqqqqqqqqqrnumtppsosntnunrqpsososososososppspqrnumunrqqqqqqqqpsorqqpsorrorrnumtosorqqqrorqpsorqotntntorprprqprpqrqprprprqpsmvlvmspqrprpqrprqotntoqrotoqqqrpqrotmunspqqrospqrososospqqqptmumtppsorqqpsntntorprprprprqospqsmunrrorqqqqqptmumtpqqqpsorrnumumtosorprqprqpsntpptlvmtorqpsntorqprprqprprrntosososorqqqqpsnumumumtpqrosotntnspqrpqrprpqqrqprotntntntnsprprotntnsprotmvluoqrqqqprqqqpsorprqqqprqqqqpsosorqptmumunspqrotnspqrotnsqotnsqqqprqqqrososotmtorqqpsorrnunsososppsnumtoqtmtoqsosorprqqqqpsnumtorqprqqqqpsosorprprprprprqprqprprpqrprpqrpqrprpqrprprprprprprqotorpqrprorsnsospqqqrorqsmsrpslvosmtrnsovmpqwkroxogv}r6ID3 3ID3@)  KU1lTPE1c64 fart generatorrockdodger-0.9.2/data/fart.2.aiff0000644000175000001440000035421212257577553016316 0ustar krawczykusersFORM؂AIFFCOMM@DAUTHc64 fart generatorSSNDnthputlqrtnnvoropwktnvmtlwmtmunspptnrrpqqqrppsprospqroulunsqosprospqrnvlvltqpqrprqosqpsorqpsorprprprprprqqpsosntosoqsorqoumtorqqptmunspqrotnspqqrospqqqqqrorrososprorrprorrosorqqqqqpsosososorrotnspqrqpsntpoulwkvlvmtoqsosorpsntoqrpqrpqrosprpqroumsqoulvlvmtoqsorqotorprpsoqsosoqrqqprprqqprqqqqoumtpprqpsososorqqqqqqqpsosppsosorqqptlvmtosntorpsntoqrqprprqprpsorpsntorqprprqoumsqpsorpsorpsntnsqqprprqprqpsntosososotnrrosppspqqqqrprprprqpsntosorqqqqqqqqqqqpsosorqqqqqpspqqqptmumtosorqpsorqpsosntnumspqrqospqsnsqotorqqpspptmunspqrospqrosppsososorqqqqqqqqqqqpsppsntpqqqpsosppsntorprpsnsprqqpsososotmunrrososotmunrrpqrosospqrntosorqpsntnumtorqqqqpsosososnumumsqprpqrprprprpqrprpqrospqqrnunrqqqqrospqrotnspqqrotnrsmvmrsntorqpsntppsorqqpsosorqqqpsotmtospqqqqqqqrorqqrorqqrososotnspqrqprprpsmvlunsqotntorprqprprqprprqprprprpqrprosotnsotmvluoqqrotnrqqqqqqqqqqqrososotlvnrrorqqqrorrospqqqpsorqprqpsorpsnuluoqrprprprprqprprqprqpsntorqqprprprprprprqprqqqqpsorqpsnsprprpqsmvmsrntorqqqqpsorrnumtpqqrospptmunrqqpsorqqqqpsotnrrosprotmvltpqqqqqqqpspqqqqqrnunrqqqrnumunspqqrprpqsmuntntmvlvluoqrpqsntnsqpsorprqqqpsosospqqqqqrotmtpqrosososorqqqrososprosospqqpspqqqqqqrotmunspqrpqrotntnspqsntnsqprqouluorpsmvlvmtorprqqqqpspqrospqrpqqqrpqqqrpqqrotnsqprqoulvmsqprprqqprqqprpsnspqrorrosospqrotnsprqprprqqqqqpspqqprqpsorqpsosososprpqrprprprpqqqrqpqqqrpqrososotmumunsppsprpqqrprprpqsntntoqrpsoqrprqpsntntorqotorqprqprqprprqprprqprprpqrotnrrospqqrpqqqqqqqqqqqqqqqqqqqqqqrpqrotnspqrotmunspqqrprpqrprprospqqrosorrotlwlunrrotmtpqqqpspqqqqrotmvlunsqprpqsorqpsosososorqpsnulvmtosnumtoqtlvnrqqpsososppsorrosorqqqprpsntnspqsmvkwmsosprpqqrpqsmunsprosospqrosprpqrotmumunsosospptnrrnunsospqqqqrpqrosqoukwluorpqrprprotmvlumunspqqqqrososososorqqpsorrnumumunspqrpqroulunrrpqrnunrrntosntntorprqqqqqqrpqrotorprqqprpspprprqprprprprpqsntnsprprospqrosospqrnumunrqqqqqpsosntorqprprqqpsnumtorqpsntntorprprprotntnrrotmunsppsotnsospqqqqrpqprqsmulvnsosntntntmtqotmuntmvmtoqrqpsntntntnspqrpqrpqrpqsntnsprpqrotnrrotnspqrprqoulvluorpqqrpqqrprospsoqrprrmvmtorpsntorqprprprprpsntorrntosorprprprprpqrpqrospqrpqrprprqqprqqrorqqqqqpsntntnulvlvmtososnumumtorprprprpsnsqpsoqsntntoqrotoqrotntntnsqprprprqpsntntorprpsntntntnspqrotmvmrsmvluntntnsqprqoulvlunspqrnunsorqrosotnsosqprosprprososotmtospqptntnsprpsorqprqqqqpqtmumsqqqqqpsorqqqqqqqqqqqqqrosntpqqqptmtpqrososososorqpsosntosorqqrntosorqoulvmtntorqprqqprpsnsotnsorrospqrpqqrprpqrprprprprqprprqqpsorqqqqqqqqqqqqpsntorprotnspqrososqososprorrospptmunspqrprprpqrotnspqrotmvmspqrprpqrotntnsqotntoqrotnsososppsosorrnumsrntoqsntnsprprpqrprprpsmvlvluoqrotoqrprqprqpsosntpqqqptnspqrprprprprprqprpsnumtorqqprqptlvmtososorqqqqpsnumtorqqqqqqpsosorqqprqqqprqpsntntosorqqrpqrosprotmunspqrpqrosqotmunspqrotmunspqqqqqrosorrosorqptlvlupoukwmsqosqpqrnvltppsorqpsntorqprqqqprqqqprpsorprprprprprqprprprpqqrospqrospqqqrosotmuntnsosprosospqqrospqsmunspqrpqrpqrprprprqprqpsorqpsorqprqqqqpsotnspqrprprprprprprprpqrprpqrprpqsntntorpsnumtorqqrntntorprpqrpsnsprqotntnsqotntnsprqpqrpsoqsntoqsorprprprprotntnsprprpqrprprprprqqprqqqpsosorqqqqpsosorrosppspqrorqqqqqqqqpspqrnunspqqrpqrpqrotnsospqrotmuntnspqrotnsosotmunsospqsmuoqrosprotmunsqososprospqrosqpqrotorprprqprqprpqrpqrnumtppsntosorprqprpqrpqrpqrospqqqpsosntorqpsoqsntorqqprqprqpsmuorpqrprprqprpsoqsosntprorrpqqqrorrpprrqpotqppspqprsnrpumrptopqunpqtqnqtrmqstlpuqpmtvkprwmltwmnozpguwrho{udozydj||dd~b[dH~c'wztz{}lrvrjiloadch[][`XRWVRMNOLEHGF>@A=;5<54020-(-&)'"   ~z~zyxxtusqrmpkngkfhfbdaa]_Z]XYVWTSRPRKPILIHGEEBBA>?<=7<58616/5,1.,.)+)'(%&#$!!!!     |||}wvzwvxutvpvnunpmnmmimhkfhgggbgbcc_c_^`\^[\Y]U\TYVUWQWOWMVMTNPOOMOKNKMILIJIHIFIDHEDGAFADBAAA?A=A;A9@:<<8=7;79785838261604/3/1///.---,,*+**(*&*$*"*!'##% $ ##"    y\G4S*{SES Jd$168uS%U5Vgr{ncIC xImrJo;s8 [A.w5E>`4AZWA=$ (    [ O  <ElWL&k;CBHGMOPXT\\_dcijoptt{z   $#)'--2257:<>@BEHJLMRQXV[[`_edhimnsqxu|z   '!)&*-+1.63879?:C@ACBEDGFJFNFPLOQPRTRXSZU[Y\[]`[e\g_fdgggjhnionosovrwszv{x|{| 3A`t5]9rI7B4|"t{/ N  L +  { nZOHSWn,`}Zw _CsL1Y |  /Vq-2JYmlkln,4l4*i_  a x ` ^ y R E c [ @ . A D )  # '   { s s q g Y ] X R C B B 9 . , ' &     { v t n f b _ U W G K C = : 3 0 ( $      y|qpifaZZQPIF@?56,.$!  }xtomhd^\UVLNCH:@27-+) "  ~xyrpjkcdZZVSPJGF@?874.-)%$  ||uvopiieaaZZUSQLJHDC>>8931.,('"!  }zzutqnlkfh`d]][UXQRNLJHFC@><;66300*,&(&  ~~z{wvurqonjleidba`\^YWXTTPQKPGJGDDB>@<9<38230--+((%$"!   ~{}xzwvvstntkqjljhggcf`b_`[^Y[WXTWRQSMPMJMGIDGCC@A>?;;;7945605/00---***'(%&#$" !   ~{y~w}vzvvxrwqtrpsmpokpjljijgiffedddac_b`^_]^Z^V_UZXT[O[NWSOXKWLROONPLMMKMJKJIJGJFHEGFDEDBEACAA@A??>?<@9>;:>6<79:5874835525040200//0,/,,.)-)+)))')&&'%%&!&"#"!!!            $=Lh)Km)]0r&j0\O  f  r 2 v m ~ { ha:d4g#y@?3'lJYQ,WB #4 %G?&Ixh|0'c6| % Y $ 1 [|)?IKv Qn"D_z*V$ _ o  /Bi(lKub\Ou5 E_  ?  ' tvjVDMY|>uc ? ;L T{;@!~#tr.h y{ ,|OTu 7?m4  VO 7GQ(=F=GQ& ( -)p!)w ` c m/_I(k9^  <;;Vkqt  0DFPdsz (1EFWcsx-7>NXdpv .3FKYbow !+6@LU^kp *->DMY`jx{ '37GHX]ip{"+1>DMU^gow '+6=DOR_elwz&/3?@NQYeesv} %'08>DNP[`ept|')29=FLPZ]ejst%*07;@GNRY\cjlux(*33??A?CCCGCJFIKIOJPNPSNXOZRZU\X\\]_`badbgdifjjkknmpppsrvrzr}u|{z{      $%$## $$%%$(%)%*'+',(/'1'2)2+3,20040342838587898;9:<:==<>>>?@?B@ACBCCDEGEIEJHHKILIMKNKPLOPNROQRQUPVQWTVVVXVZWZY[Y\[\]]]^_^a^c^e_dbebgcffgekdlgilhninjpkpnnppqptnvpuusvuvwwv{vzzwx}z~||~~ (;KZw3SvAj3`K#U!m?: @ W  j I \ :iNG76:IDbq+NF !.!"o#"#$^%%&f&D%$#""! 7Ys~ .+(8>6 $ * 7 . o"{/P,ciy , 7 / z Sg2R8[Fg "#L#Q! )KEfCj: G $-UkPN D +;~vv !!,& S ' funjw\Eo}^ Q q tR[R9b78lQA x ,C~3fdlBAx F Qj#R 4 Z,Cm; N vQn)> ,6J`Iq S  X0+7 ^?FA) |}p]OJH-#ph_WE98% sf]UH>2,! uibWNB:1& {qj_VMD;2)  wle\SLA</) yqibWQGA71'!  } w n f ^ W P G A 9 2 , !    | v p f d X U N D B 3 8 $ +    v r i f \ W R J E > 7 2 * %     x w p j d ^ Z Q P D B < 6 . .  $      ~ ~ s r j f ` \ U S I H ? = 8 / 1 $ &     ~svjkbaYZMSBH<<60/'%  }~ttnigb]\SUKNBD>972-+$!  ~wxorhhd]_VWPOJGD@<:44--(&! {wwsnoihd`^[YTTLNHGE?@9;622+.(#$  yztsookkfeb^bV_RYORMLLCGA@?:9925.0*+&&"!   ~~yzwvsspmohmdi`f]cY]YWYPVNQMJLFHDAE;@9:947/4-.,(+")&      |}z{vzrxqspqlpilhifgbe`b_\`Y\XXVVTRSNQMMKJHIDHAE?@@==99885543211..-,,)*&(#&!$!        {zz|y|u}r{rxsssrroplqkningmdkgfgdfbe`ca^b\`\\\[Y[U\T[RWSVQVOUPQQORLQLOMLLLJKKGLFHJDIDGCH@H?E@D?B??A<@<><<;;<7=6:7959458172332112-3,1,..+.*++**',#-"*$&%%"'(&""!         }}}~}{{~{|}{{{{z{y{zyzyzxyv{vxxt|q{qztuvryrvsustruqssptqoumtorpsosoqsnumsprqprotnspqrospqqrotmuntnsospqqqqqqqqqqqqqqrorqptmtppsppukwltqososprntospqpsnumtpqpsnunrqqptmunspqqrososorprpsntnsqpsntoqrprprotoqsmvmsqprpqrprpqrosprososprotnsprpqrotopsospqrososprosososososotmunspqrosotnrrotnrqqqqqprprqoulvmsqpsntorqprqpsorqprqprpqrprosprprprprprprprprprosqotmunspqqrotnsosotnrqpsosntntoqrprprprpqsntntorqprqqqpsntppsntosorqpsorprqprpqsntnsprprpqqsntoqrpqsnsprproumtntorpqsnspqrnunspptmtotnrpspqounsntqoqsprntprnssopqtpnrxz3TcHp/_ Bw>yaD Q|>[z ]\1ND^h[O%o?~?|'\E2:6+)-021:3EM_fg~CWe Bpz H * R+Y+K&3 nH|,{1Q0GCl 0*yf Ox`QPtL2lB"(l-2%  u tU^~jC;apK6_{HPRjg$AduKk-mI * ePh|Q@5w(Ma " i -:%B?:wlE1 }a e"ba"d!2Gjf3b  T4,HF-#29""*  {uvulmfl^cY_USQOLICG?;<771-0)(!#   |yzqwlpjidh]dZ\WXQTMNKIEDB??9:5600,,'("$   ~|{vzrvppnljkdgd_eY_Z[TZOUPLNJHHDE@B<>:;4905//,,((&$"     ~}{{ywwuttpqnpjngjhegbcb^a\\]W\SYSURPQNMLLHJEFG?G<C<><;7;3:14202-/-+-()*$*!' &#     ~~|~z}yyyu{qzqvrrrqpoolpiohlgkfhfdgcd`d`c^`^_[^Z\ZXZWWWSYQWPVPUORPQNQLPLOJOHMKHMEJJCM@LAHCECCBD?D<E;D9C9A9?9=9;98;5;4864818/8-7.22-3,1,/-+.*,+(+'+&)%)#(#&#$#""" "!"         }~}}~~}{~~zyy}y{}w}w|yzyyyxxywxwu|p}o{tuutvvrwqwququrqtouoqqrprprprotntnsprprprqprprqprotntnspqrpqrpqsmunsprososprpqrprpqrprorrosorqrososososorqqqprqqqprqqqqpsorrnunqsnunrqprqqqqqqqrotnsospqqqqqqqqqrpqrnuoqrorqqqqprqpsntorqpsorqpsosnumtorqqprqpsnumtorqqpsntnumtntososorqqqrorqqqqqpsososnunrrnunrqpspqqqqrprpqrpsoqsnumtorqqprqqqqounrrntpqqqqqrospqrospqqqqqqqqqqqrosospqqpsosorqqqqqqqrnumtpprqpsntpqqqqrosprpqpsprpqqqrprprpqrpsoqrotnspqqqqqrosososososospqrprotntnspqrpqrpqsmvmsqotnspqqqrpptlxktpqqqqqqqqpsorqqqqprqqqqpspqrospqsmunsprosospqqqqqqqqqqqqqqqrosotnspqrprpqrprqoulvmtorqqqpsntorqprprqprqprqpsntorqpqsntnsqpsntorqqpsntntorpqsosorqqqrntorqprprpqrqpqqqsnsospqqrnumtppsorqpsosorrospptnsorrnvjxltorqprprqprospsnspqrpqsmvkwltpqqqqqrpqrprprprprprprprprpqrprorrprosotnspqrpqqqqrpqqqrpqrpqrospprqqqprpsorqqqqprqqpsntntntntnsqotntorprpsntntorprprqprpqsnsqotnspqqrpqqqqqrospqqrotoqrprqprprqqprprqpqrosqotmunspqrorqqrppsospqqqqqqpsosntososorqqrosospqqqqqrosorqqqqqprqptlvnrqpsorprqqotntorprpsnuluorqqoumtoqsoqrpqrosqpqrprqotntnsotnsorrosnunsospqrotnsospqqqptmumunrrospqrpqrpqsntnsprqprqprqqqqprrorqpsosntntorqpsorrnvltpptnrrnunspqqqrpqrospptmumtosospptmtpqqrnunrrnunsorqqqqprqqqpsnunqsorrorqpspqqqqqrospptmumtpqrnumumumtpovkuorqqqpsospqqrotnsqosprprotorprprqpsoqsnunrqprqpsntntntoqrqprprrntntpprprqqprqqpsntorprprprprqoulvmsqprqpsorqqqqqqqqqqqptmumunsosprospqrospqrprosprqotnsqprpqsnsqotnsprospqrospqrospqrosospqqqqqqqqqpsosorpsosoqrqprqotntnsprprotntnsotntnrrprprprqotorqotorqpsorqqqqqprqqqprpsorqqpsorrospqqrotnspqrosospqrnunsppspqrnumunspqqrotnsqnunsppsosorqqpspqprptmsqqqprqqprqqpqspprpsoqsorpqsnrrqqosroqqtmeaVL;.!qV1g>tC WOu/;C9}U'Kp *)801}V:}.hu]G}.N80J,.!qvtqpunv | W  _= JU"M[\7: r`gPYHt 3  < sSX;~/$yTNWs77(X1 [  [C w 5gtw}MgY3!cl| AG MQSj0~ghQO(j*;:  a Wf+V[heqzD( ^ - 5DgaB "=;:Ngmg~$'AGURkv{ (*;CRX_px"*4AFSXgpw!,5EIJSQY\`dgjousx  %&/+63<;BDFKMQUXZ_aeijoqww} &((./4599@?DEIMNSRYX^_afhjonuuy{}  &!)(,-03497==AAEGIMNOSUV[Z^acdihlonusxyz}  !!$&)(,-.222879;=>C@GCJHLMOPRUUXYZ]]_aaedgjiojqprttwxy|{   !!'#)&)-)/-02/62958:9?;?>@BADBHDGIGLJLMOMSOVRVVWXX\X`Yb[c_dbdefgigmgpjpnprrvswwwzzz}|~     "#!!%'"%%%&(%()',)+.(1(1-///1/30241534656687889;:=:><>?' t H?~X,W Yr|rm~guekwxf_oqa[blZWXdVNSYSFJPMAAJD=9A?63790,/2*%'+#!$   }{}zwzvtvqsopmmkjjfgdebb^a\][YZVWSVPSNPMKLHJGDG@E?@?;=::7847231/1+/,*,')'%'"$"#   ~}{~y|xwzuwuswovntnoonmllimgihgffdecad`c^`^^^[[]W[XXWWSWSVRTQTOTMTLQMONLLMKKKJHLEKFGGEGDECEBD@C@A@@>@<?<==:=7>7;78885829171513112-4*3+./)0(.(,(*((('%($&%!(&#!            }|~}}}~|~}{xy{}xu}yy}v{yxyyu}r{vvysxuvuutwttustuqvowmwntpqqrosorrososososososososospqqqrprpptntoptmunspqrospqrprosotnsorrorrnumtorrntorqpsntntorprprqoulvnrpsppsorroqsosorpsosnumtorprprpqrotntnspqrpqrosospqqqqrosospqqpsosntorqprpsntnsqqotntorprprprotnspqrotntnsprqprpqsnumspqsntmunspqqrpqqqqrosososotmunrrospqqqrpqrotnsqprpqsorprprprprotmunsotmumtosppsorqqqpsnumtorrnunsospqrospqrosotmumunspptmunrrospqqrprproumsqprqqqqpspqqqqqqqqptmumtpqqqqrpqrotorqprqprqpsoqsorqprqpsmvlupnvmsqotorproulvmsqprprprqotntorpsntntoqrpsorqpsososnumumtorrntorqprqpsntorqprqpsorqpsosntosorprqqqprprqpsntorrospptmvlunrqqqrosospqrpqrprqprprpsorqoumumtososososospptmtorqqqpsosotnspqrpqrosospqqqrpqrpqrprpqrprotnspqqrosppspqrorqqqqprprprprprprprprprpsntnsqprpqrpqrprprpsorqpsosorqptmtorqqqqpsosorqqpsntoqsorqpsosnumumspsosntosnumunrqqrosprpqqqrpqqqqrospqqqqrpqrosprpqqqrprosotnsppsospqqqqqrosospqrotnsprqprprpsosntosppsntosoqrprprprprqprprprqprprprprqpqrpsoqrprqpqrpqsmvluoqrprososqorrnunsppspqrnunsorqqqqqpsorrnumumumunsosospqqqptmumtorqpsntntorpqrprpqqrotmumumtoqsntnsqprprqqprprprpqrosososorrnumtososorqqrorqqqqqqqpsosnumtorqqqqqqqqrpqrospqrpptmvmsprpsntoqsmunsqospqqqrotmtppsosntosppsnunspqqqrosorrosnunspptntnsprprpsnuluppsnsprprprqpsosppsosorprqqpsnunrqqqrntorrntoqsorqprqpsntoqsmvlvluoqrotorosprqprqpsorrnumtppsorqptmtorqqqqqpspqqqqrpqqrouluoqsntntntorprqptlvnrrosnunsorqrososorrpqqpspqqpsosppsospqrosospqqrotmuntnspqrpqrpqsntnsqprpqrpqrotnsppulunsprprprprqpsntorprpsoqrprprpqqqrososospqrnvkwlunsospqqrotnrrpqsmunsqprpqsntoqrprpqqrprpqrprqprprpsorprpsoqsntorprqpsorqqqqqprqpsorprqpsorqprqqqpsorqpsorpsosntpqrntospqpsospqrospqrosppspptlvnrqqprqpsntntorqprqqqqqqqqqqpsntorprprqqprpsorpsosntorqprqprprqprpsntnsqotorprpsorqpsorqqqqqqrososososntnumulvmtpqptlvnrqqpsoqsosorpsosorqprqprqpsntpptmtososorqprprpqqqqqqqqrososprnumunrqqqrnumtorpsntorqqqqqptmtppspptmtososorrnumunrqqqqqqqrospqqrosososppsorrosorqrpqrprpqrpsntnsqpsntoqsntnsprpqqqrprotnspqrqososqprpqrprqotnsqprprqqprprqprprqpsnumumumtppsososnunsorpsorpqrqprpsosntosorqpsorqpsosorqqqqptmumtpqrppsotnsospqrosprprotntntoqrprqotntntnsprprospqqqqqqpsntosorprrnumunsprotntnsprpqrotnspqrotmvmsqpsntorqqprpqsorpqrpsntorqqptmtpqqqqqqqqqqqqrntpqqrnumtpqqpsorrnumtosososorrospqqqqqrpqrnunspqptlwltpprqqqqprpsntntntmunrrospqrpqrprpqqqqqqqprrnumsrorqpsosorqpsosntnunrqqqrpqrprqotntnsospqqqptmumtpqqqpsppsorqqpsnumumtorqqprprqprqpsntorqotnsqpqrnwkunrrqpqrotnsprprotntnsqotmunsprpqrqprqptluorrntnunrqqrpqrprqotntoqrotoqrotntntnspqsoqsmuoqsntmuntnsprpqqrprpqrpqrpqsnspqrqpqrouluoqsntorqpsorprqprprpqroulunrrpqrososprospqqqqrpptnspqrpqrosospqqqqqpsorpqrqprpqsnumsqprqprqprprpsnspqrpqqqqqqpsosorqpsorqpsntorqqprqpsosntorrospqqrqprprqprqqqqpsososorqprqprprprprqprpsosntorqqqqqpsospqqpsosorqpsntorqprpsntoqsorprpsorpsntosorpsosorqqqqqqqqqrpqqqrpqrotmunsprpqqqsoqqqrqpqrprqprqpsorqpsososospptmunsosospqqqqqqprqprprpsntorqqqptmumtprorqqrosospqrosotnsorqqrppsosqotopspsnquoi]ZUC2#zR;!j7 |F^(c ]~3E>4wOLq$m *Mq :xF,s-s%OAH  v 9  C'g@7sM.YmjijblldT[U >    \+$@ Vcb6|VL< 9 ,>s/2  w sTM9aCA]~ ) q05Au &,zHTiX/- 75 5 <HSSy, O-nCg(D$.q ,#w[  p vd7-##/h'Abd %%CA8;ZdU[qvz &*,.=HFLXbajn~ !)-:9CGSVYdftq| "'/48@EJPU[bdno{z &+-68=EFORY[ecqlzx  $)-35>;IDSN[Xccinqw{ #"*+349>?GHLTQ]Zbfgmouw~~##+)2189>ACKHSOU[Yb`ekjrsu{{ $$)+,4188;???C@EDFIELGNJNMORNTRTWTXWY[[[^]_`b_g`jdjglinlmrlunvsuwt|v{|z|~    "$&((#%'#*#+%+'+(,+*.+///.10130415446476787:7;9;;<;= A;;TYPJRQE>PPB--$# $8S1Hw  G j /J "dN zc~ NU "V$uj7n;z88 G *c$('Y1W t %EcYi_2 z M 0342He/ 5 (S(x,O#Y7t /! `#_5= + o o o d R N P F 7 / 3 '    } | q h c ] V M E C = / . " $     y s j f a W S N D B 6 5 , (      } u s i i [ _ P P I @ ? 6 2 * (       | w r l f c [ Y Q K I > B 3 8 * + #      zzqoica\VTLKDA=54,)& }|xqrgjaaZWSOJHA?9700)&# |ywrnneh]aVWQOKHBC;;53..''!  }yxtpojiea_]XWPQLKGCD=?68210(,"&  |zytuonljhebb^]XXTUONMIIE@B>;<3812--)'&#!  }{{zwvtrppkngjdec``\\YZTWOULPJKGHCE?B;?89836.3,-+')%""    |~x~t|rxpvnskpjmgjffebc`a\_Z\YWXTVQTOPMKMHJFGCF?D>?=<:<5:28333.4+2*-+*)('&%"""#!      ~~|~y{zyywvwutsrrqqnqkpjohlhjhgfgdfcebaa```\^][\YZX[TXUVUURRSPTMSMPOMOKNJNIKKGMDKFIDIAJAFBDAD@B?B=B<?===<:=9;998:596582725232120/1-1----,+,)+*'*('(%'%&#&!&&%! !          ~~~{z||}{~yy}z{{y{yzyyyxywxywyuyuxvuwtxqyqvsvpwptstpuprsososospqrprprpsnumtorrnulvnrprprprprqotnsqpqsmvluntntnsprprpqrotnspqrpqrprosotnrqqqqpsososorqqqqqptmtosotlwkwkvmtorprospqrosppsosppsorqqqqqpsosppsnunrrnunrrospqqqrosospqqqqqrnumunrqqqrnumtorqprqoulvmtnumsqovkuntntnsprotmvlunsprotmvltqospqsmuntoqrpsntorprpsnsprpqqrprosprpqqrprpqrpqrprotmvlunsprprprprprpsntntorqqqqptmvlunrrosorqqprqpsntorprprprprprosprpqqqrpqqrotmuntnsprprprpqrprprprqpsososospqqqqrotmuoqrosqpqqrprprprprqprpqsntnsprprpqrpsntntoqrqotmuntnsprqqpsosorqqqprpsntnsqprpqrprprpqrotnspqqrotntnsotorprprprqqqprpspqqpsotmtpptmsrosppsospqrososospqqqpsosppsosorqrorqptmtosorqpsorqpsorrosososososorqqqqqqrospqrosprppspqrnunrrntppsntorprpsnspqrprprotosorpsosorpsorrntorqqprqprqprprqprqprprqprprprprprotnsprprotorprotnsprotmunsprprpqsntntorprqpsnumsrnvkupptmtosorqpsnumtpptmunspqrospqqqqqqqqpsosorptlwltppspqqqpspqqprrpqqqqqqptmtorqqqpsososorrnumtorpsntntnsprpqqqrosorrosorrosospqqqqqqqqqqqrosprosospprqqqqqqrotmunspqqqqptmumtososospqqqrotnspqrqprotosoqrpsntnsqotorprprqprprprprqqprqqrntorqprpsorqoumtorpsmvmtoqrpsoqsntpovkvnrrpptnspptnrrotnsotntntntntososospqrotnspqrprproulvmsqprpsntorqpsosorrosntosorprpsosnulwkvmtorpsntoqrpqsntmvmtorpsntntntnsprprpqrprpqrprpqrqprprqprqpsorrntososntpqqqqqrososospqqqrotmunsprorrpsnrrpsnsprqproumtorqqqqprqqqprprprprpqsmvmsqpqsmvlunsprosprosotnrqqrorqqrorqqqrososprotmvlvmtntosnumtosotlwltqosppspptmunrqrpqqqqrosorqqqqpsorqqqqpsosorqqqqqqqqqqqqqpsntoqsnspqrpqrpqrprprouluopulvluntoqrotorqprpsotmtorqqqqqprqqqqpsosorqqqqqpsnunrqpsososntorqpqrprqprpsorqqqqqqrosospqqqqqqqqqqqqpsnvjxkvnrqqqqqpsorqprqpsorprpsntnsqprqpsorqqqqqqqqqrososotmumtpqqqptmunrrospqqrotnsprprotntnsprprpqrprpqqsntnsqprpsmvluoqrprprprpsmwkupotoqsoqrprqprpqrpsnsprpsntntorpqrpqrospqrpqrprpqrprpptmvmrrnunrrnunrqptmunqtlwltorqprqpsntorprpsntntorpsorqpsorqqqqpsososorqqqqprqpsorprqqqpsnumulvmtpprrnumunsospqqqqqqprqpsnsqprpqrprprosoulvltprqprprqpsntorqprqprprqprotntntnsprpsntntosorqpsorqprqotnulvlvnrprqqqotntorprpsosorqqqqprqqprqpsnumtorqprqprprprprqotntpotntosnsprprpqrpqrqprpqsoqrotoqqrprpqrprpqrprpqrprprqprqprqouluoqrosqprprprqpsnsqprpqsntnsqqqqprrnvkvmtorqpsosnumunrqqqqqqqqqqqqptmumsrosososorrosorqqpsososnumtorprprprprprprprprprpsntntntntorprprqprqprprqpsnumtosorprqprpqrpqrprpqroulunsprprotntoqrotntnspqrqotnsqotntoqrprpqrotmtppsososntorrosorrpqrospqqrotmuntoqqqsnukwmsqprprotoqsmvmtntosorpsosorqpsosorpsnumsqoulvmsprpsnsqprqpsntosorqqrosospqqqqqrosospqqqrpqqqqrotmumunspqrpqqqrpqqptmumtpqqqpsososnumtppsorqpsntorqprqqprpsnulvmsqprprprprprqprprqprprqqpsosorqqqqprpsosntospqqqptmumtosnumtorqqqpsososotmtprpqqqqrosorrosososososorrnumumumtpqpsospptnsqoulvmtorprprprprotntnsprprospqrososososososorqqptlvmsrntorqprqqqpsosorrosospqqqptnspovlvmsprprqotntorprqpsntorprpqrotnspptntntnspqsnsprpqrprpqrqososqprpqrqqqqpsospqrosprprpqsntorpsnumtorqpsosorqqqqpsososospqrpqqrprosprosprotlwltpqqqqqrospqrosprosospqqqqqqqqqqqrotnspqsntmuntnsosprospqrosososppsospqqrospqrppsotnsorrprosprproulvnqrqqprprqpqrotntnspqrosprosnvlumtpqqqqqqqqrpqqrprprotmuoqqqrprpqrqprprpsntorprprqprpqrpsnsprpqrprospqrotnrqqrpqpsosppsorrnumtoqsosntntppsntososnunrrnunsosospqqrotnsprosotnsososppukvoptmumunsosospqrotnspqrprpqqroultpqqsmuoqrpqsntnsqotntntnsprpsmvluoqrpqqrotnrrosppsosppsospqrospqrospqqqqrpqqqrprosotmumunrrotnspqrpqrprotmwkuoqsorqounrpqsnuluoqrqprprprpqrpqsmvluorqprqptmtorqqpsorprpsorqprqqpsorqqptmunrrosorrosoqtnsorqqqqqqpsosnumumtosnumtosnumsrosppsppspqrnumumtpqqqqrospqrotmumuoqptnsotntlvppqpspqqqrorqqrki[XIA* ~aE)o:xI]/x1i Ec X87`@d CSishmr\g$Kk5b/^0yO],X<tJ(   YlR J>M; zw~Q8_M/}A-pb8Ct I  n UM 4 /tQ0x9@ [(d$b$y4 U5 v 0J vsCL@I9B HW+,~l & 9.@ k # o+<,$$ '."*+3-/3875<>>=BEEGDOKMORTSWX\Y[``cafhgjiplppttuvzz{}~  #$ )!,$,).+1-404568:9<;>=@?BBCDDIGJILKNMOQPSQVTVXV[Y[][`^`bacedghijklmmqnrspwswwxx{{{~}    !# "&%!%#&#(#)%)('+(*+*.+/-.1-200313334548395897;7<::>8AC@BCCCECGCHFGGIGKHJLINIPJONMRLSNSQQSSTSVRYSYUYV[V]W[\[\][`]_^``a`c`eaddedgeejdlfhlhlkiphrhrmpnrlxjymvrutuvuxuyxw{w}x}yzz~~~|XP=(X6^-[r2g,B[ `]>XOd#"z0TjB+6?N3[Yp< j 0 Ti ( ^vBJebG+ 1 :  pT?&qL/](H|%[O0|!j(r ) 3 H"hE  4~r[G% c1t  g mO ^sGL5 ghsrtkesu^[^iQOOWG?AC?-550%%%&    }zzuqnmkce^_YWRRMJJDE=@7:32/-'*"# |}xwtrnmjghba`\[XUVPPKKHFBC>>9956/1,+*#' !  ~}|zxuwpsologjefca__Z]VWWQSONLKHHDEA?@;;;3:05/-0'-%&&#  |~{y|uysurspmpkljhieebca__\\ZZXWUSUPSMNNJLHGHDEBB?B:@9::6835313-3*1'0'+&(&$%#"!      {|{~y}xyyvzryqwqsqqqmqlnlkkkgkejdfedcc`c`^`^^^Z]Z[YWZUXTVTTTRTQQSMTLQNNMMMLKKJKIIHIGGGEFFCF@FABC>D=A?>?=<>;<;:;8:8969493645332303.3-0/-.-,-+*+*+&,$+%''$'"&##"""! !!           }~~|~|~|~zxy|{y|x{zzyzxzxwzwxvxvxuvwtvtuvtususttquqsrrqrosprpqrotnspqqqqqqqpsnulvmtosorqptmumumumtqospptnspqrotmunspqrotntnspqrprpqrpsntntpprpqsntntnsprprotntnsprprotntnsqotmvmsotnuluorqqpsorrorrospqqrospqrnvlunrrotmunsppsospqptmunrrosorqpsorqoumumtososppsospprqqqprprqprprpsntntosntorrorrnvkvnrqqqqqqqqqqrososotmtospqqqqqqqqrososprotnspqrpqqqqqrppspqrospqrotmvlvlvlvmsqprqprprprpqrpqqrotnspqrprpqqqqqqqpsnumtpqqqqqrospqrprprprprprpqrotnspqrospqrospqrosprprotntoqrotoqqrotnsqotntoqrprqprprqprprqprprprotntnsotmunsosososnumtppsnumunrqqqqrnumunspqrospqqqpsorqqpsorqqqrososprprpqsnumtosntorqprotnspqqrnumtppsorrosorqqqqqpsosososppsospqqqqqqrosntorqprprprprqprprqprqprpqsnspqrpqrotnspqrprotmvmsqotorprprprprprqqprrotmtpqrpqqqqrososospqqqrotmuoptntnsotntnsprotnsqprqprqpsorpsorqoumtntmvluoqrprqprpsntnsqprpqrpqsnspqrprprosqotmtqnvlunsotnspqrotnspqrprprprprprqprpqsntnspqrpqrotnsqpsntntnulvmtorqqqqqqqqqrospqqqrosorrososnunspqqqrprospqrososotmumunrrotnspqrprprprprqpsntorqqprprqpqrospqrososotnrqqrqorrotnsososppsorrosorrnvlunrrprpqrpqrotnsorqrotmunsqotmuntnrrosqnunspqqqrprpqqsorpqrqotntnsprprotnspqqrospptnrqqrpqqqqqrosorrpqrotmvlvltpqrpqrosprpqqrprorrprpqqqrpsnsprpsmwkunsqprospqqqqptmunrrprqprpqsntnsqpqrqqqprqqqqqpsorqpsorqpsntosntntpotntoqrprprpqrprprotntorprprqqoulvnrpsorrntorprprpqrprpqsnsprqpqrprqotntoqrprqpqrprprpsntorqprprprpqsntntnulvmsqpqrospqqqqqpsospptlvmtorpsnulupptmtorqpsorprqprprqqprprqqpsorqprqpsntorqpsosospqqrprpqrqprpqsntoqrotnspqrpqqrotmunsorrpqrotoqqrpsoqrprqotorprpsorqqqqpsosospqqqrqpqqrprprosprprnvlunsotmuoqqrotnsprprpqqqrprnunsprotntoqrprqotorprprqpsorprqqqprqprprprpqrprpqrotnsppsosorqpsntntorqotorqprqprprqqprpsorqqpsnumumtososntosorprrntnsqpqrosqprpqrqqqprprqprotnspqrprospqsmuoptnsrlxjwmsprprprpsntoqsoqsntorpsorprpsorprpsorprqqpsospptnspqrotntnsprpqqrosospqrospqrpqqqqqqpsorqpsntorqprqprqqqprqpsorqpsosntpqpsnunqsntpotnsqprprprprprqotoqsntoqrotoqqqqrpptmvltpqrpqqqqqqqqpsospqqqqrpqqrospptnrqqqqqqqqqqrospqrotmunspqqqqqqrnunrrospqrospqsmuoptntnsotntmuoqrosprpqrotnspqrotnspqrososppsosorqqrnulvmtpqprqqqqprqpsntnumtorqqqrosotntnsqpsntorqprrnumtorqpsntoqrotnsosotmtppsososntorqprqprpsosorqprqqprprqpsntorrorrnumumumtorqqprprqprprpsntnsqoukwmsprprpqrprprprprprqprprpsntoqsntorprqprpsorotorpqsntnsrntnsqotmvlumunspptmunspqrotnspqqrotnspqrprqosqpsnsprprpqsntorqprqqqpqsntntntnsprprosprpqqqrpqqpspptlwkvnspqqrpqrotnspqqrotmumunrqqqrosprotmvlunsprprprpsnsqprpqsntmuorpqrpsmvmtoqrqprospqrprpqrqqprpsorqqqqqqrotmumunsppsorqqpsorqqqqrospqrpqrprotnspqqqqqrnumunrqrosorrosorqqpsntorprqqqprqrosntpqqqpsosososososprososqpqqqqrospqqqqrosorrnunrqpspqqqqqqqqqqqqpspqrosqotnsprprpqrprpqrprpqsntnsqqotmuoqqqqrososospqrorrotnsospqrotnspqrprprqqpsosososorqqqqqqqqrpqrpqrpqrospqptntmuoqrotnsospqqqqqqqpsntorprprqprqpsorqqqprqqrntntpqqotorqpsorprqqprprqprpsnulvnqsnumsqpsorqpsorqpspoumumtorqqpsntorpsntorqprqqprpspqqqqqqrprnunsqospqsntnsqotorprotntntnsqotoqsntntntorqprqqqqpsososorqqqqqqqqrotmuoqrprpsntorqqpsnumumtorrosorrosppspptmtpptmumumumtpqrorqrosorqqqqqpspqrpqsmuorqprouluorprosprpqqqrpqqqqrpqqqqrpqrotntmuorqprpsnumtorqqpsntorqprprpsntntntntnsprprotntoqsmvmtnsqpsnsqprqotntoqrprqprqprqpsoqrpqrpqrotnspqsnspqrosprotmuntoqrprqprpqrprpqqqrotmunrqqqrosospqqrospqrotnsqotnsprosospqrosospqqqpsosososppspqsmunrsntoqrpsnumtorqqqpsntorprotorprprqqpsnumumumumumunrqpsnumtoqrqqprprqprprprpqqrotmunspqrprprprprprqprprqqqpsososorrnumtorqprprqprpsntntorprotorpqrpsntnsqprprprotoqsmvmsprotnsqotntoqrqpsmuoqrotmunrsmunspqrprosprpqrpqrotnrrospptnrqqqqrorqpspprqpsntoqtlvmtosnumtorqprprprpqrotnsppsospprqpsorqprqpsntorqprqqpsosnulwkvmtorqptmumtososorprqpsmupouluoqrprqprpqrprpqqqqqqqqptlvmtosntntorqotnsprosorrospqqqqrpqrosprpqqrosorrosorrotnsospqrnunsorqqrorqpsorprpsntntorqqpsnunrqpsppsospptnspptnsosorqpsorpsorqqpsorqqpsospqqqrprpqrprprprpqrpqrnvlumuntmumvmrsmuoqrpqqrprosprpqqrpqrosprotmunspqrosprotnsqotntntoqrotnsosospptmuoqrprprprprprprprotorprprqpsorqqptmunrrotmunrqqpsntntnsqotnsprprpqrotnspqqrpqqqqqqqqqqpsotnsorrprosotnspqqrotnsprprprqpsnumtososntppsoqsnsqpqrpqrosprpqqpsprppsnunrqpsorqqqqqqrososotmunrrnunrqprqprprprprprprprotnsppspqrospqrotmunspqqrospqqqqqqqpsosorqpsorqpsosnunsppsosppsnunrqpsorqqqprpsosntorqpsorqpsnumtntorqoulvlvmtorqpsotmtorrorqqpsososospqrosospqqprqqqqpsorrotmtprprosprpqqqqrntnumtnsqpsnulvmtpprqprqpsntntorqprqpsntorqpsosorrotmunsosospqqrospqsmvlvlvlvmsprprpqrpqrotnsqotnsqpqrprppsprpqpsospqpsntpprqpspoumtppsosntospqqrnvmspqrprotoqrprqprqprprprpqrospqrpqrotnspqrospqrpqqqqqqqqqqptmvkwltppsososnumumumunsorrosorqqqqqqrpqrouluntntnsprqpsmvmtorpsorpsosorqqqpsosorpsntorqprqqqqqqrpqqqrprosospqrpqqrpsnsqprqprqpsorptmtososntppsntorqqpsntorqprpsntntoqrprpqrprpqrprosotnrqptnsppsprososqnumunrrorqqpsnumsprprprprprqqpsorqprpsntoqrqpsorqprqprprpqrotnrrpqslxjwmsqprotntoqrpqqrotmunsotntnsprpqrotnsososorqprprpsmvlvmsprprqotntosmvlvlvlunsprososprorrotnrrospqqqqqqqqqqqqrpqqqrqosotoqqrprpqsmvlunsprpqrprpqrpqqrprosprprpqrpsntnumtnumtntorprprpqsnspqrprotmvmtnsqprqoulupprpsosntpqpsorqpsppspqqqrpqqqrosotmuntmtprppsprorsmtprqntpuv)G_<bP-o+nD)w%w   5 [  ] ?$h y - % 8i)$k#kb2xK={#W@d&=u ";FLgvCc{&Z ; e w ' k  u-{1uX&-WC=_;r9==A>DBDGCIHHLHNMMQNRRRUTXUYX[[Z`Zd\cbeeffihkkknnnrossttxt{w{{{~~~   ! $"$$#'%%(&'*&**),)-+.,.-0.0001215182848696:8;9:<:?:=?B@BC@ECEFFFHFJFLGLIKLMJPKPMPNRPPSQSSRVTUVTYUYWYYYZ\WbTcZ]`]_```b`ccbdcfdgcjdjghjhmgnhokmokrlrmtnsrqusrxp{ryvwyxyy{z|z}{}}~} .<L[v 3Qy JxF2u>]F< 9 J  y 4  } G(|XLB=EFU!9zZe @  T=-Oy T 6i$>e7?W,CISf%E]z " D u &6MIX  i <w^3FQYZw yEL4# $ |j*Tlh^ {9~5 ''"(5365BBDBNORQY^^`dkknrwzz !"$)(//276<>@EEJKNSQZX^_behklqrwx}| "!&&**1-4389=:A;?;A;B>A?B@G>J?HEEHFHHHIJKHNIMNJPLQMQOPRQSQTRUTVSYTYVYXY[X[\Y_Z_\_]`_a`aabcccedeefheighkglhninkmnnnpnqospsrrvruvtxuwyv{v}vw~zzz|~ID3 3ID3@)  KU1lTPE1c64 fart generatorrockdodger-0.9.2/data/fart.3.aiff0000644000175000001440000057114212257577553016322 0ustar krawczykusersFORMZAIFFCOMMx@DAUTHc64 fart generatorSSND       ').+I07.uw&<0Wfo ,/%BE49WZQKlphe|z   !)6177T,bER>2 F!(7OBY\& T  w Y"^PN b;y . 3  7ZA06,wF: QN?Qq eO$ I Y $ q  H[<x 9 1NN % B = 5 ^   ] RES, #"]t01FFle ep`: # ^ =$Cv %uhcq# O w9 \  @h) < e<l>v> n `W/   6=HFw R;Z?[ A) ~ $=U " Y [ u"0P Qt w v F ]( S[ZBDvN DQ) _F?kj HQ 4(n]! 5wL( b6s6_$I&MiP>"a8 C+ax: KYf'+7MHg5$XZAl_) 'C:0@U]HZkthm *629AJNMY^dgjxv )(42?=HFRS[Zgdro{{  ')/28=?IGRQY]adlluw| ''.16;>AFJOQWY^cekkruy} $&)/-83?AECIFMIPPPVSXYY^\a^daheihlloopupzty{z~~   !#"$&)(*+-..1224586::;=;@B?CAGDEGHKHJOMJRNVNQVYRVX]YW]b\]afe]elgdermfittjlv{ok~}vn|vs}tww~{|y}{rl aYZ)Up6%EWgECH~:wq_i Q pE\o x<2th[9sNTz13 6$  /= 8= (/ZQ8g 3vn"$`!"(!` MT ]qQl"d ~$t=C5~je  kR@d]hh [ Ku Xm*V t.{ {"'sD66 df*/B.^W H 6c u/yH)Z\ )]NmU!  + & O h&A  J "N!'J^ 5#b-#T fi T}Ep [29D7s8-B(!L, L g'  1![M O7 "@ E Sk 5 F+MGyf F(Y  o %8 cd @$ l of:IlEIMSW\_fgorvz %*,24:;DBLJRVX^abnissw~ "%(.,64=;BDIJRNZS`]fclisqxw} !!'&,.0559==BDFLKQQUX[\baghmmrryw~} !#%'++//467;;@?ECIIMOQRWWZ^Zf_jfioltpxwyz ""&%(*--01274:9<>>BBFEHJMLROTVTZYZ^]_c`fdiimjpmsrtuxv~x~   #%!&%')(,+..1/62758:9=:>=@BADCEGFHJILJOLQOQRSTUWU[V\Z\^]`^caedgggjhnjokqppuovvs{t|x|{}|~   "#!# $"%"&$%($)&)'**)+++/+0-0/1/212325354757696;6=6>8>:>=@>@@@B@D@FAEEDFGEGIFLDNFNILLLMNNONPORQPTQTSSVTVUXUYWYZW\Y^Y\^[aZ``^aa_e]gaecchdfeihghhmgliojknomnnrqkuqumtuxouv{ruz|twzvxzyx}}y~v{}zz|yy|wpojjlsofsYE4?T a 8 2  M < ([-H#2 e] !V <j!` 9oMkNbU|ltV6#+7ww8bZp#n+# $ A )l;k <:$^J2N 4/G! l} #6\("*b) E$O )!E S qt0y .3m  /s?#uf'Gtq"\ &E  'zQ / z2" e b ,H_Y+  W'Aa  gTB !u 73 3 1: N/ 9"#1lb `$u Z 8# E!tp g uPqkV VE 8,cg m# 1UZNb\|e" fzazM "=.AA idlE,'5nC\LDO9I'G A 8/*  ~~|}}}}}}}}}zyw}|x}xz{xx|u{vxzu{s{szsxvtwsvtusurupvqtsptqqsorprqprotntmunspqqrprpqrpqrotmtpptmtosppsnumsqpsnsprqprpqrpqsmunspqrprosprpqrospqrospqqqqrosorrosososorrososprpqrotnspqqrososprorrotmtosnumtoqsosorqqpsosntorrnumtppsorqprprprprprprqpsmvmsqpqsnsqprqpsntnumtnsqprpqsntnsprqosprprpqsnsqoulvmsqpsososorrotmtosososososotmvlunsospqqqqqqqqrpqqqqrospqrospqsmunsqotntorpsnumsqpsntorqotntoqrprqprqqqqprrotmsrotnrqrprosprpqrotoqqrpsntntntntnsprprotnsqotnsprprpqrqpqrpsmuntoqrprprqprprprotoqrpqrpqrprprotoqsntoqsnulvmumtorrnulvmtorprprqprpsntntpprprqqprprprprosprpqpspqrososprprospqsnrqqqsmumtqotlwlumtotmumunsosotmunspqqrpqrospqqqqqrnumumtorrntorqpsorqqpsntorqoulvmsqprprprprpqqrpqrotnspqrpqrotoqrpsorqpsorrnumumumumtorqprprpsnspqsnspqrqotnsqotnspqrotmunspqqqqrotnrrospqqqqqqqqrospqrpqrpqrprosprprotntorprprprpqqrprpqqrprpqqqrotmunsprprqoumtorprprpqqrpqqqrprnvkwmrrorqpsorqprprqpsmvluorosospqqqqqqrospptmunrqqqqqqqqqqrnunsosnumunrqqqrospqrppspqslvnsosososotnrrotnsotnsosprpqrprprprpqrprqotntorpsntntosntntorqprprpsntorprprpqqrosorrospqqqrpqpsppqrqqosqpqrrnsounqqsposrornwmrmxmrmvqoostmqqvkrqvlqn{korstituqkqwrkovvinwvjmuzikvymgvzpcu|rbr~scmy`i{af}b^fY{kQwqKm|D^@J6)/T*  ; t h \ ( @   } r d | R F  %gwL   t c 5/,/ZALWt Y% VY 'SUg$ qDV_^qv] @gjx3 s Qj.VL9 /N @W ?>] Ly q] C *#RqO'IaeY NY4]h ! ZUdS jAX l8 V # @T1 ? x +) M F[biv L s0< w 5R$ 9 ZU! r[.g} i ?& 2xn & O#g -  l}:2.#f| THD _ < B*hczjRA?[SlzIyr{B}k} ;i5Uw&#=3R<*EcYBZvr^lx  &0394FHJMU`^dhssy{  )*14:KBIHGLJLNLPQOTRSWTXZY[][`^`acafdeigijkkomnslwpuvtxx{z}|}~     !#!###$%%%'%('(*'+)+++-,-.-0.0/2032445466695998;9:<;=;><@=A!Bi=t B #I~ jU %(U  J/ n`  r$} "-l.b   w5C 9G ]@!muBJ y<8h txR KNV Iw 9?V-K2Q    j 2Adqt?(@4 &d3>(<b6a NSyw go_=iiZsj0MiAp/qy~|y}}{~t~q~l{xmqzepwychrsbako^]dh^Ua_[TU`RQPXRHOMPFEMFD?DE<><?:6995518/2-3-,,++($(&#"#!!!!      ~~}{y~xzzvxxsxrttpspponlpjlihjhghciag`daa`_^^_Y^Y[ZWXXWWSWPYNWORROQQKTIQKMLMILIJIHHIFFGDGCEBEABC>D>@?=@==<<<;::;6<5:67573725223111.3+2+/.+-++*,(*(')'%($%&"%"#""$$          |}|}~{z|~{}{~z|z{|yzy|x|wzxzvzxu{szuvwuvvrxttvstuqvqssqtpspqrprpqrqpqrotoqrosprpqrpqrprprotnsprpqrpsoqrqprqprpqsorpqrqprprprprrntntpqprprqprprprprqprprqprqprprprqprotntntmvkwltpqqrososprorqqrpqqqqrpqqqqrosorqqqqqqqqqrpqrnumtosmvmtoqsosntosorqpsososntorqqprqpsorpsorqotpoumsqpsorqqqqqqqqqqqqqqqpspptlwkvnrqprqpsnumtppsospqqqqrosorrososospqqqqrpqqrpqrotnsospqqrotmunspqrpqqqrotmunsosospqpsnumtorqprprprpqrospqrosotnspqrpqsnsprprosprosorrnumtntosnsqprprprospqqqqqqpsosorqqqqpsppsnunrqpsorqqptlwltososppsosppsnumumtorqqqqpsosppsosososntntnumtntorqoumsqotoqrprprpqrosprosospqrpqrotnsospptlwlunspqsntoqrprprprpqsntntorotntnsprprotorqprqqpsorrnunrrnvkwkvmtorprprpqrprospqrospqqqqqqprqqprpspoulwkvmtpprqpsntntnspqqrospqrotmunsqorqqrospqrprqpsosppsospqptmunsqosotoqqpspqrntpptnrrospqrpqrospqrprotntoqrqpsmvnqtkyiwmsqprprprprqprotntnspqrotmvkwltorqqprprqprprqprpsntorqqpsoqsnumspqsoqrprqprpsosorqqqpsorqprqouluoqsnsqpsntppsospqqrotnspqqrotmumuoqrosprprospqqqqrosospqrpqqrotnspqqrosososorqpsosntntorqpsnumtososorqqqqqpsosorqpsososntorqprotnsqotnsqotnsqotntnsprqqpsntpqrososorrososnulwltorprprqotnsqprqpsorqqqqqqpsntorprpqsmvmsqotnsprprpqrpsorprqqpsntorqprpsorpqrprpqrprprqprprqprqprqptmtpptmunrrospqqqrnvkwltorqqprqouluorprprqotorqotorqpsoqrqqqprqpsorqprqprprpsntorqqprqqqqotorqpqrprpqqrqosprprotorpsorqqptmumsqpsntnspqrosprpqrotntntnsqoumtorqqpsosososorrorrorrnvltpqqrotmunsprprpqrpqqrospptmunsqospqrospqqqqqqrorpsosorqprqprprprotntntntoqsmvmtnsprqprprpqsntmuoqptororsoqrpsmuororsoqptpoqtpqmvpqntsmqrtonsunnrvqjsurlpvsknzpoiztlluykhywoev{ofq~rbr|waly`k{^f|b`zfYxkUrsMp}JfJYKNL?Q+Z\hw}rm 4 W n r + i  V } @ % {  n  R 0j|J "-"iP >\U8I `$'  XW M 6 6\~l' k)[GU&q%ix F z #+1J n 7P)4 ~ue@t A { kmfX9= G}. d 1 Kz(S ,)M O]/ f = ;- T/p TA"XPQnSp}2t D rO ).(%@)/]j N*Q v" 3[V j ^f}y\:H5Ue!  4tJaeS}O-F@DTCfFrQV`h}yx{      "!""!$"&#&%&'&)&**'-'.*,---/-0/1011326191:48788::8=8><;?;@=@@>C?BBCCDDFFHDJFKGKHLJMJOJPKRLRMSPQTOWPWRWTWUYVYXYZY\Y^Z^\^]`^_b^caacdbfcdhdhgekfkiikklknkonmqnqpqqsquqvsvuwuxwxzwzz{{{{~||~~      () ,0 ,2"EZr4lsB*Mn &! y Hm V!t%PZmZQM ,ty {@18{+YVPZ  ( 2 8!Snkj? pgDK2 0pjc XefH w6;D?\  $ if2l  a '3 ;_ ;  MR;-p+ J S]   Rx[8   ) b}%GBHj rs:J]?. O   x Sr % ?tsCB{I\h K_ l? 39a_)Ma>(Wy3X ^L$e%*:??:l/j(YEN]JrKNYcl{}~  $'1/0$+7"G[k 1ticjQ? 9d?$}"_X~ yg  E  u O 8G# Bm@d o |&;31t![b{A:YR0i5]pR3e9Z1 R`-db'8'$tt 5\] %wwW[l*h].Yc  L r27`o_OX` Jg >B[ '=H 2L'E>smrY QAP bh5Q(lX D%  & i}z 9 ~ 8 sxoX>" i) rc|j j:"[f =X  *   K    r  A ~   `  ?  !wezVnpEVqc8?\P1&G@!-. xoqql_`__NPPLB>?=10*-#  {wtopggaaZYTQNIHAC9:34,-$&   {ztvlmief\aU]PROKJFC??:8611,,%'!  ~}v{rspllhhbe\aZWYQTOMJKEDC=?:7833..**&#%!  }~xzwtuqpnmildgbc]aY^WWUTROOLKIGEEAA=?9;67420/--')%%#!   ~~z|wzuwtrspnpklkhiefdbc_`]][ZYWXRWOUMNNKKIHFGCCC???<=98:584431/1,/*,*)(&'%$#!#!      ~~{y}xzyvzrysursqrpoookojlkgkghffcgbdaaa_a\`Z_X]X[XYUZQZQTUNXLVLSNPNMOLMLJMIKIHKEJEHEFDEEBDACB@A@?@>=?<>;;<9=6;87:49474544232120/2,1--.+.*-'-()+$*&'&&#&$"&$!! !!          ~~|z|}|~{}||||z}z|zx}xz{u}vyxxwxuztzsxwsxtuuurxpvrstqtpsrrrpqqqrpqrospqrpqrprprprprprpqrotnspqqqrotmtpqqrorrospptnsotntnrqqrpprpsosntososorqqqqqqqprqqqprqprprqprqprprqpsntnsqprotnspqrotntmuntorprpsorqqpsnumtososotmvluoqrospqqpspprqqrospqqqrprospqrospptmumtospqqqqqrospptmunsosotmunspqrospqrososotmumunrqqrosorqrotmtotmumumunspqqrprpqqrotmtpqqpsosppsorqqpsntorqpsntorqqotntoqrotoqrotnsprpqqqrpqqqqrospptnsprotmvlunsprpqrprqprpsntntorqprqovjxlsrntorrnuluoqrpqqqrotmvmspqrqosotnspqsntorqpsosorqqqqqpsorqprrnumunspqrpqrpqqrospqrosospqrospqrprprotmvltpptnsotntnsprpqrpqqrotmunrqrprosprqospqrososososososospptmtppsorqqqprqqprprqotntntnsqotntorprqqpsntorqprprqprprprprprprpqrprpqrprprprprpsntorpsnvlsqpsppsosorqqqpsorqprrmwkvmsqpsorqqpsorrntososntosorqqqqpsorqpsntorpsnumtntorqpqrprqpqrpsnulvlvmtorqqprqqrntntorprotntoqrprqprprprprprprqprpsnulvmsqpsnsqpsorpsosorqqprqpsntorqpsnunrqprrnumtoqtlwkuosnulvnrqpsorqprqpsntorqpsosososprpqrotnsprospqsmvmsqoulvluoqrpqqrotnspqrprpqqrosorqqqpsorrosppsprosorrorqoumtoqrqpsntntorqprqpsnumtorrnumtpprqqpsntorpsnumtososososospqrosprprpqrotnspqrotntnsprpqrotnsqotmuorpqrpqrprpqqqrprpqqqrprorqrosospqqqqqqqpsnumtorqpsorqpsoqsorqprqprqprprqpqrpqsnsqnvlunspqqqqqrnumumtorqprprprosprpqqrotnspqrprosotmvkwluntntnspqsnspqqrospqqrospqrprprotntnsqprprprqpsnsqprpqrprpqrqpsntorpsosntosppsosospqqqqrospqqqptmumumtpptmtorqqqprqpsorqprqprqpsntorqprqprpqsmuoqrpqrospqrosppsospqprqqqprprprprprprprqpsoqsnunrprprqprpqrqotnsqpqrprpqrprospqrpqqroukvorotmunsprpqrotoqrospqqrospqqrospptmtppsorrnumtorqqqpsntosorprqqprqqqprrosorrosorrnumtppsososososnumtpotorqprpsorqpspqqqqrpqrosqprprprprprosqotnsqprqprprprotntntnsprprospqqqrospptmunspqrpqrotoqrotntntorpsosorqqqpsorqprpqrprosospqrnvkxjvoqrpqrospqqqqqqqpsososorrotmtospqqqpspqrosqosqpsnsqprqotntnspqsmuntoqrprqprprprprotmuoqrpqsntntorprprqprqprqprqprprprqpsntorqprqprprpqsntnsprprprpqsntoqsntoqrprpqqqrosppsosqosospqqrosososospprqpsoqrprqpqrprprprpqrprpqqqrpqqrpsnsqpsorprpsnspqrpptmunrqrotnrrospqqrosospqqqqrpqqqrprprpqrprprotmvmsqotoqsnsqprprprprpqqqrosppsorsmunrrpqrospqqqqqqqpsosorqqrososospptmunsprotntnsqprqprqptlwjxlsqotoqrotorprprqprprqprqpsntorqprprpsntorqpsosppsppsososorqqqpsnumtntorqprprprprprosprqosotorpqqrqprotntnsprotmuoqsntorqqqqpsorqpsososotntnsprpqrotnsqprqqqprqrntorqpspprrpqpsqoqsqoqrrporumpsrqnrunpoxnpmynpmxqmnwrojxvjnszkkszpdwwtcr}remuehwdg|`d|g[|kWwoTpuPj~MbNWQLTAa1i)txdN0 #q-=27'{\S~7(BP3}]hz rl   ybXN@ w)G0o {4jmxTbF \8]>}i[ vN{Y `U < " #4U٘Bmyk G#5'z.DpKSw޻ -/ u u\?>  @C>jBh S7 D fP<  v .   vWUm'&:OvjX#9+-(}|}|}|y|x{vwyrutstntnpokqjlkijhhggchagbad^b_]aZ]]X]WYYVWSXRVSQVOSQPPPNPMMNKNJLJIKHIHHEIDGECFBDBBBA@@@?>>=>=:=:;:99:6959466354060301/1.0,/-,,,*,)*(*&*$)$'%#&"$""!#"           ~}}}}{{{}{}z}y|{y{yzyyyyyxxywxvxwwtxtxttwsustutsrtsrsptprqprqpsorqpsosorqpsorrntorrosnulwkvmsprprprprprpsorprqqqpsosospqqqqqqqqqqpsorqprqpsnsprqqprqprqpsnsqouluorprprprprqpqrpsorpqsosntosorqpsorpsosorqqqqqqpsntnsqpqrotnsqprprprprprosqososprosotnsosprosprprotntnsospqqqrospqrospqrosospqqrprosprpqqqrpqrospqrprotntorpsorrnumsqqqprpsorpsorqpsorqqqqqqqqqqqqqqqprqqqprprqpsosnumunrqqqqqqqqqqqqqqqqqqqqrosospqqqqqrososotmunsospqrorrorrorrospqqrotnspqrpqrpqrprpqrprospqrosprprosprprotntoqsnulvmtntorpqrqprpsorprqprpqrospqrotntntntoqrpqrotmumunsprprprprpsnspqrqotmuoqqqptmtorqqprqpsosorpsosorqqqqpsosorpsorpqsorqoumtorqqqqpsospqqqrotmunspqqqqqqqqqqqqqqqqqqqqqqqrorqqrppsospqqrospqqrospqqrnunrrorrospqqrospqrospqqrprpqrprqprosprpqqrotmunrrosorqqqqqqqqqqqqqqqpsosorqqrosorrosorqqpsnulwkvnqtmtosnumsqpqrprqpqsnunrqqqqqqqqpsnumsqprqoumtnsqqpqqrqppsprpqqrpqrprqprprqprqpsorqpsosorprprprprprprqpsnumtntppsntorpsorprqqqprqpsntntorpqsorpqsntoqsntorqqprqpsorqpsosorqqqqprqqqqpsospqrotntntorprprpqrosospqpsprorrotnspqqsoqrotoqrotnspqrpqrpqrprprosprpqqqqqqqrospqrprprprqprprqpsntoqsntoqrprqosqprqotnsqpqrotnsotnspqrprprotorqotoqsntoqrqprqouluoqrpqrospqrosospqqqqqqqqrnumunspqqqrprpqrpqsntoqsorqprqqqqprrosoqsosorqqrosprqospqrpqqqqqqpsnuluoqrprprpqrprqpqrprqprprqprprprprprqpsnumtosorqpsorqqprprqpqqrotmunsospqrospqrprotntoqrprpqqqqqqpsorqqqqqqqrnumunrqqqqpsosorqqqqqrpqqqrqospqsnspqsorprprqpsntorqprqpsntorqprprqprqoulvnrprprqotntntntorqpsosososospqrnunsosospprrosospqqqqqqpsorprqqqpsppsosppsntorqprprqpsososprotnsqotnsprpqrprotorprprqprpqsntnspqrpqrospqrpqqrpqrpqrprpqrprpqrpqrprqprqpsosntosorpsosorqqpsnumtoqrqpsnsqprpqrprospqsmvluorprospqrorqqqqprrorqounqsnunsnunsqosqotnrsmvkvnsqpqqrpsntntntoqrpsoqrpsoqrqprpqsntoqrprqotoqrotntnspqrprotntnsprprprprprprqprprprqpsoqsorrntorqqpsnumtorqpsorprpsntorqprqptmtorqqpsntoqsmuntntmunsqpqqqqrosososospqqqqrospqqqqqrorrnumunsosotnspqrospqrpqqrotnrrosorrosntpqqqqqqqqqqqpsosorqqqqqpsorqqqqpsososorprqqotnsrmvmsqqpsorrntppsorqqqqqqqqqqqrospqrpqsntntnumtntosoqsorqprqpsorpqsosnsqpsorprpsntnsprprosqotmunspqrospqrpqrotnsqpqrprqospqrorqptnrqqqrprosotnsosprotmunsqnunspqqqrotmumumunrqqqrorqqrosorrosppspqrpqrotoqrotoqqrprqoulvmtorpsososospqrospqrpqrpsntntorprprqprprprqprprprqprprqqotoqsntorqpsnumtorqpsnumtorqqqqpsosppsospqqqrpqrprprpsntntorqprqpsntntoqrprprprpqrprpqqrotnsprotnsqprprqpsntorpsntoqtmtoqspqprpsppsorqrorrotnrrpqqqqrosorrotnrqqqrorqqqqqptmunsosospqqqqqqrotmunspqqqqqqpsppsntpqprprrntntosntntpotnsqpqrospqqqqqqqqqqqqrnvkvnsotmunrrpqqqrosorrorprpsoqroumtnsprprotnsqosqouluntntnsqotntoqsntpprqoumsqpqrprprpqrpqrprprotnspqrpptmunrrosorrotmunsqotnspqrpqqqrosososnumtorprpsorprqqqpsorqpsnulvmsqprpqrqpsmuorprprpqroukwltprorqqqqpsntoqsnsqotoqrprqpqroulunsqprqprprqqotmvlunsprotnsprprprprqpsoqsntorprprpsnumtntorqotntnsqprpqsnspqrpqrpqrprprpqsmvluoqrpqrpqrpqrosotmumunspptnsotlxjuqnunrqqqqqprrorprqqprqqpsnumtorprqpsmuoqsmuntnspqrprpqqrotmtpqrpqpsosppsntosorpsosorpsosorqqqpsntoqrprqprprrnulvnrprprqotntntntosntorqprqotntnsotnspqrosospqqqptmunspqqrprprotnspqrpqrprprpsorqqqqqqrpqqqrpqrotnspqrprprotmvlvkvnspqpsorqqqpsosorqrososospqrosospqrososospqrpqrqoulvnqrprqprpqsnspqqrpqqqqsmvlvlvlvmspqsnspqsntntorqpsnumumtosososppsospptmtppsososososospqqqqqrotmuntmvkxjvoptlwlunsprqpsorqprqqprprqprprqprqpsntorprprqprprqqqpsnunrrosprpsnsqpsnsqprqoulvmtntntoqrotntnsqouluorqpqrqprpqsntntnuluoqsnspqqrpqrospqqrprorrprppsprprprqpsosorqqqqpsosorqqrppsosppsorqpsorqqptmumunspptnspqqrnunspqptmvlumunspqrpqqrpsmuntntntnsqoukxjwmsqotorpqsorotorosqqnuntmtpslupsnrrrmtptmqsslspvlqqvmostonqxmnqvqloyookzrlmwulluyjls{mgvwser{rgmrgk~wfh||ffz~iazk^un\qtXn{SkRdL_CSQQx-t!nf^%V{(,V?;%F3"_fu0fM&rI{.E'JYx6tHnl߉  $}L;/oRc0/v#$[44_5 S Q p$8B%O9a~R6 ,rTs'L[E*Dm{cA-`BHH0KS\|`mkZjRmJ~mEik@\k@Fya><f];0XV6)GM48E,);%.# "  ~zzvxtqromligibda_^Z]UZRTRNOKLGHCEA?A7@4:5230-/(+&'"#!     |{|zxyuuuovmopgqelegddba^_\][X[UVUSRQPLPIMHHFGDBA?A;?8=686461302-/-+-(*)%(#%$ #        }}}|{y|v{tytvtstqrormplnljkjiifggdecf`d_c__]_]\Z[ZZWXVXSVSTSSQSNTMRNMQJPJNKKJJJIHIFIDIBIAG@G?E?B@A>@>>><==:<:;8:88958483715324.4.2/.0,/,.*-*+)+())%)&&'"(!&!## #"           ~~~||~}|y~{{~w~zz|y{zx{v}vyxwxxuztwvtzryrwtutsusstquouotprosorrosorqrosospqqqqqqqqqqqrososppsososotnsprprotntnrsmvlunsotntmtqoukvnspqqqqrotnsprprpqrprpqrotnrqrpqqptnsososososospptmunrqqqqqqqqpsppsorrorqqrpqqqrprosososorqpsorqpsososnumunrqpsppsnumtosorpsnumtorpsosnulvmtoqrqqprotoqsnrrpsoqrpsorqpsntoqsntoqrpqsntoqrprpqrpqsnsqoulunsqotnspqrpqrpqqqrpqqqqqqqqqqqqqqrprprprqpsnulvmtorqpsnumtorrososprosprprouluntorprqprpsorpqsnuluoqsnsprprosprprospqqqqqqprqpsorpsnulvnrrnumunsorqqqqprqpsnsqpsoqsntpprqprqoumtntorrntorrorqptmumtospqqpsorqqqqprrosorqrotmtpqqrospqqqqrpqrotntnsqotnrrorrntorprprprpsosorrotnsospqrorqpsorproulvmsprprpqrpqqqrpqpspqrnunrqqqpsnumtososppsososnumtorqqqpsorqprqprprprprpqroulvmrsnumsprqotmunspqqqqqqrotlvnsorqprprqotnspqrprotntoqrotntmunsqotnspqsnrrotoptmunsppsprosnuoqqpsosospqqrprqpsorqqqqqqqqqqqqqqqqpsppsorsmtpqqrospptmunsosnunrqqpsnumtorqpsorqoulvmspqrqprpqrprprotorpsntorpsmvlvmsqprqprprprpqrqotntorprqpsorqpsorqprqpsntorprprpqqrotnsosprpqqrpqrospqrospqqrosorrosnumtpptmtosorqpsnsprqosospqqpsososotmtpptnrqqqrpqqrotnsotnsosprpqrprprqprqpsorqqqqqpsosntpqqqptmumumumumumunsosotnsprpqrprpqqsmunsprotmvkxjwluoqrprqprqqpsnumtorqqqpsosorprqprqotorqprqpsntorqqprqqqqpsppsntpprprqqprprqpsntorrnumtorprpqrpqrprpqrotnsppsosppspqqpspqrnumtpqqprqqqprprpqrorrosorqqqqprprqprprprprpqqqqrososospqrotnsprprospqqpsosorqqqqqqqqrpqrosqotnspqqqrosorrnvkwkwlvkvnspprqqqprqprprqqprprpsorpqrqqqprpsorqpsnsqqprotorprpsntososnumtorqpsorprqqqpsorrosorrorqqqqpsosorqpsntntosntnunrpsosososnumumtoqsorrntosorqprqprpqrqprpqsnumtntorpsmwjwmtnulvmtorprqotnsqotnsqotnsqprpqrpsoqqqrpqqqpsnunrqqqrospqqqqrosospqrotnspqsnsprprprprprqotoqsntoqrprpqqrpqrpqrprpqrpqqrosnunrqprqprqpqrprqpqrprprpsnsqoumtnsprprotnspqrprpqqqrpqqqrprosqpsnspsntoqrprprosprpqrotoptnspqrosnunrqprqqpsntosorqpsnumtorprprqpqrpqrotnsosprpqqrotnsospqrosprpqrprprpsorqpsosospprpspprprqpsntntorqotntorprpsorqpspqpsotnrqqqqqpsorqqpsntppsntosorqqqqpsorqpsntnulvluoqrospqqqqrotmunspqqqqrosppsosppsospqqrprprotnspqrpqrpsnumtppsorrorqpsosnulvmtorpsorrnvltpqqrosososososnumtpprqpsorqqqqqqrospqrprotmvlvlunsprprprotnsprotmunsosorqprprqpsntoqtmuluorqpqsntnsprpqqqqqqqpsnumtososntorqprprprprpsorqprrotmtotmvlunsprprprprqpsorqqqrosospqqqpsorqqpsntpprprqqprqqqpsorqpsorpsnvjyixltpqqqqqqqqqqqqrosprqpqrpsntntntntorqpsnumtorpsmvluoqqrotnrrpqrnvlvkvmunrqpsntorqprqqprpsnulvmtntntoqrprprprprqpsntorpsorprprpqrprospqrosprotnsqotntnsqotmuorproulvmtppsorrnvkvmsqprpqrpqrprprpsntntpotnsqotntntnspqrprpqqrprotnspqrprotmuntmunrrospqqrososososorqqqqpsorqpsoqsntpoumtpqptmunrqptlvnqsorqqpsosorpsosntososospqqqrprosprpqrosqnvkvnspqpsotmtosorpsorprqpqrpsnsprprprpsmvlvmspqsntnsqpsorrnumumumtpptmtpqrorqrorprqprprprqprprprqprprpsntoqsntnsprqotnsrnulvmtpprprqprpqrpqsmunsqotmuntnrrospqrpqrotntnrrotnrrotnspqsntoqsnulvmsqotoqrotoqqqqrpqqqptmvltpqrpqrpqsmunsqprpqsosorqqqpsosorqqqqqpsosoqsososospptmvlunspqrprosprprotnspqrpqrospqrotmunspqqrosprppsprppspqrospqqrotnrrosqprotntoqsntnsqprpqsnsprqqoumumtpqqqpsorrntorpsmvmsprosprotmuoqqroulunspqrpqqqqrorqqqqqqqqpsosppsnunspqqrprprpsorpqsorprprprprqprqoumtorqqqpsososososospqqqptmumtppsospprqqrosososososppsorqqqrnsqqrntosososppsososorqpsorprqprprqprqptlvmtorprqprprqprqpsnsqpsmuorqosqprpqrprpqrprprprotntnspqrotnspqrprprpsntntpotntpprprpsntoqsosntospqprpsorprpsntorprpsorqprqqqqpsorqqqqqpsppsorrntorprqqprpsosntorrmvmtorpsntntntntmunspqqrpqrprprotnsqospqrotorqotorqqqqprqqqpsorpqrqprotnspqrpqrospqrospqrotnsosprosososososospqqqqrpqptmunrrorqrppsosorroqrqrnrtmtmuqnrrqpqqsopsrootrpnsrsktsqltrslpwqlputmkysmlvuohwxmis{ogr{reqzxan~wclz~ce}eazh\xnWttSozSd~T\WOYJZCf4|r/h&["D". ) 3JAdRi?[@OR*r')43A[/ m 8  h ) 6  -3uS.,R| tF/`qN}Z_.2G5 G \ u t j l fP"@B}BN+|GKY = r  x  l /F  a I 4- M  a k ;V.cwwa<4C Lg SC X  AeCv 4 M| u { Y^L[C9ZB;h[/^ anw|}}z}xzyzsy{yqtxvorrulnpqinhqfiiigdfgcc`f`__`_^[^\ZZW]UWWTWSTTSSQSOROPPLPMLNJMLHLHKFKEIFEFGAI>GABC?B?@>A;@;=<<;:::8:6975837435233/4.2//./,/+,-(.'+)(()$*#($$%#"%$  !!            ~}~~}~~~}~}~|z~z~z|z|z{x|x|yw}u|uzvzvvytxuvvuutvutustupwoupuotorqqptmtppsorqpsntorqprqqpsntorpsntorpsnumtnsqprpqrpqqrpqrotnrrpqrnunrqqqqprqqqqprqqrosospqrpqrprqprprpsnsqotnsqpqqrotnrqqqqqpsorqpsorqqqqqpsorrnulvmtorprqpsntorpsorqprrnunrqqrosospqqrotnsprqqotosorqqqqprrosorqqqqrntospprqqqpsnumtorqqprpsorqotntntnspqrpqrprprprqprqpsntntntntoqsnumtpqqqqqrososososorqpsntorqprqqqqpsospqrnumvlumtpqqqrotmunsprpqqrotmumunsosotmtppsorprqprprqpsntoqrprprosospqqpspqqqqqqqqrosotntntoqsntoqrprprprprprpqsmwjwnqsorrososotnsosospqrospqrotnspqrpqrotmvkwkvnrqqqqqqqqrotmtpqrorqpsosorpsppsososorrnumtpqqpsosorqprqoulvmsqqpsorqqqqqptnrrotmunspprrosorrospqrprprprprqpsntntorqotnspqrpqrotnspqrqospqsmunsosospqrnuntoqqqrotmtorqpsosnumvkvnrqpsosorrospqrprotoqtkxlsqprqprprqprqpsntosorqpsntntntmvkwlunrrospptmumumumtppsososorqqqqqprqpsorqqprqqrorrotnrrosorqproulvmsqoumtorqqprqqqqpsorrosorqqqqqqpsososorqqqprqqqprpsnumtntntpotntorprqqqqqqqrprpqrqprprqqprpsnulvlvmtoqsnumtosotlwlunrqrosnunsorqqqqqptmunrrpqrososososososospptmunspqrprprprprqotntoqrprpqrqprotorqpqsntoqrprprotorqotorprqpsmvmtoqsntoqsnsqprpqsntnsprotnspqrpqrotntnsqoulvmtnspqsnsotnumsrospqrpqqrotmunspqrpqrotntnspqrpqrosospqqqqqqqqrosospqqqqqqqpsosorpsorqpsorrosospqqqqrorqqqrnumtorrosntosppsorrnumtosorpsorqpsorrntppsntosorqqpsorrntppsnumumtorqqqqqqqqqrosorqqpsorprqqqpsorqqqqpsnumtosospqrpqrprotnspqsntnsqoulunsqpqqqsnsosprotntoqsnunsorqrprospqsmvlunspqrpqrotmunspqqrospqrospqrnumunrqpspqpsnunrqprqqqqprqqqqpsosorqqqpsnunrqpspqqqqqqqqqprqpsntorqprqqprprqprqqpsntppsorqpsososososososorqpsosorprqqpsntnsqprprqpqsnumsqqqqpsospptmuntntnsprprpptntnspqrotnsosotmunspptmvltpqrosprprpqrprpqrospqrosprpqrprprprqprprprprpqqrqosprqotnuluoqsnsprprotmunspqqqqrosospqqqqrospqqqqrosorqqqqqqptlwlssmtppspqrosotmumunsospqrpqrosqpqqrprpqqqrosospqqqrprprprprqqprpsosorqqqqqprqpsnsqpsnsqpsorqpsososososospqrospqrospqrospqqrprosotnsprprpqsntorprprqprpqsnspqrprprprpsntoqrpqrpptmunsosprotnspqrprotnsqprprqprqpsntpqqpsnunrqpsospptmunsososorprprqosqouluppsntpqqqqqrospqrosprprotntnsqprpqrqprprpsorqpsosorqqqqqqqrospqrospqqqqqqqpsntoqsnsqotnsprprotnspqrorqrosospqqrpqrososotmumunspqrprotmuoqrospqqrospqsmunsqotntnspqsntnsprqqprprqpsntntorprqprprprprqotnsprpqqqqrpptnspqrprosprotntoqrprpsoqrprrntoqsntoqrprprprpqrprpqrprotorprpsorqqrosotntmunsqnumunsososospqprqqqoumtoqrprprosospqqqqrosospqqqptmumtosorqqqpsotnrrotoqrprprotntnspqrpqrosospqrospqrpqrpqrpqsmuoqsntorprpsntmvlvmsqpsosorqqrosospqqrosososnumtosnulvmtorprqprpqsnspqqrospqrotntnsprqososprorqpsorpsntnsqprpqrpqrosososorqpsnuluoqrprprotorpqsnukxkunsprprosospqqqrotnsqprprpsnsqpsnsqpsntorqpsorqqqqpsosorrospqqqqrprosospqrnumtppsorqpsorprqpsntoqsnumtntnumsprprotntntoqrprqprqqpsospqrospqrpqrotnsotntnspqrprpqrprprpsntorpsosoqtlwkvnrrnvkwlunsospqrospqrprprprprpsoqrpsorqpsospqqrpqrotntnspqsnspqrprprotntoqrpqrqotnsqpqrpqsntntnulunsprosorqrosorrosospqqqrpqqqrpqqqrpqrpqrprpqqrprosotntnsprpsnspqrprpqqrprotnsospqqqqrnumumtorqprqqpsnumumtorqpsosorqqqrosospqqqqqqqqprqpsnsqprprprospqrospqrprprprprpqqrotmumunsorqqqqqptlvmtorprqprpsnumtpoumumsqptmtosprosprpqqqrpqrotnspqrpqqqqrospqrotnspqrosorrosnumvltqnvlunsotmumunspqrpqrprpqqqrososososospqqpsosorqpsorqqpsorqpsosorrosososososorqqptlvmtpoulvnrqqpspqqrotmuoqsmvluorpqrpsnsqpsorqpsososnumunrqqqrosospptmunrqqqqpsnumtosntosppqsnumsqotorpqrprpqrprproukxjxkuoqsosnumunrqqqqqpsorqpsorqqqpsntorprotorpqqrprpqrotnspqrprospqrotntnsprprpqrpqrospqrosprotmuoqrpqqrotnspqrpqrotnsotnsqotoptntoqqrprotnspptmtpqqqpsososntosososososppsppsorqqpsorqqpsntorqprpqsntoqsnsqqqqotosntntorprprprprpqrotntnspqsntorprpsorpsosorrotnspqqrosososososorrnulvmtorqqqpsosososntorqprprprqprprqqqpsorrososnunrrospqqrotmumtppsorqpsosorqqqqqqpsosppsorrnumsrorrmwkvnrqqqqptmunsprospqrpqqqrprosprprotnsprprotnsprprotntmuorqosprqprpsntoqtlvnrpsnumtorpsntorqprpsntntorpsorqqrosospqrosospqrpqqrpsnspqrospqqqqrosospqqrorqqrosnumunrqqqqqqqqpsosntorqpqsntnspqrpqrpqsntorqqqqpsospqqqqrprososospqqpspqrospqrprotntnsprosprpqrprprprqprprqprpsntntorprprqprprqprprprosprprnvlvmtoqsorqotorpqqsosnsprqqotnspqrqpqqrpsmunspqrosorrosososospqrospqrpqrosprpqqrpqqqsnsospqrotmtpqrpptmtpptmtorqqqqqqqqqqqqqqqpsorprqpsmvmsqprprprprqprqpsorqqprprqotnsqprqoumsqotnspqrotmvlunsprpqrpqrpqqqrotlvnrqqpsntnumtorqpsosorqqpsorqpsorprprprqprqqqqpsorqprprprprprpsntorqprpsntntntorqprqqqqqqqqqrospqqrotnrrotnspqqqrprosprpqrprpptmumunrqpspqqqrnunsosnunrrorqqqqqqqqqrpqrprprosqotmtpqqrnumunspqrotntoqsntorqqprprprprpqrprqotntorpqrprprotmunspqqqpsosorpsnsqoukwmsotoqroumsprqotorppumsosrnspsopunslwoqosrporumqoxlqpuqmpwpnnxqlpuujpsyimuxmiuynhs{oho~qfn~sgivfg~{ee|f`{h]woVusUn|OiP`RTXI[A~c7rn.c"SI O0d}%:B@aIb7W L~:R)$Gt , *'Qlms7TsZ ;Wfpq =ca{0  I PU@}&u]m7)/CDFLJNQQWVX]\cbeghokspvv{y~  "#(&,(0,4/576;8@>A=B>D?DACEBGBHDHFHHHJHMKLMKPLPOMTLUNUPURUSWTWVVZVZW[Y\Z[][`Za\a__b`acbcdceegcifhhhiilhnhnlmokrktlsprqtqutsxryuwyvzyx|x~y~{~}}|}   ':mK O >  ' S      ) ~GCP Wrxa '\'k|356+hZ$zD d_ b* f2 ZYn S @<## wbsD8 Eh| 4 H q]j@rY H +D\s,N <E2I\m L0B3 G Y_GEJ.oZ ?+l3 B6UX e|8#ueEj0B!%F^IA_ziax!27<8IUWSdnuq{%'10;BHOOa^iks{~ !))56?DGQR\]hjrt|  #*-47>AGLRW[bfkpt{$',16;?CHLST[]eeonvz} $)*22::BCGNNVW\_ffokvt} % ,*.467@?DHHOQTYXb_fijqqvy|  $$'*-/61=7@ACGJJQPUWY^_dcjipnswx~|  !' *(+-03578==@EBJHLNQQVW[\]acffjkppsvvzz}  $'$)**.-31467<:>?@DBIELIOMRQUUXZX_[a_bdgfkhnlpoupxtyzz}~  # %"'''**-,/-40454979<<=>>AAAEAIAKELHKNKSLUNWPXTXXYY]Y`\a^badebidjihmkmnppssswtyvzz{|}}   !" #!#$!&#'$'&()*(+**/'2(1,/0.2/21224345377496:;8<9>9@:?>=A>@AAACADDBFDFGDIFIHIINGPJNNMOOOQPRPRSTRVRVVUXVXWYYZZZ[[]\^]]__```b`cbcdddfdhdighhjgmhmjmkolonopppqrqtqvruvtwvvzvzw{y{{{}{{}   ",9DP*ZPdBo ~}g{Qc%,+[&(" $'%"$l'M%"$(%V "k KTfo#&'$""#$$"yGwX'",&3# !'#M5o#=w WK' ) )%<"%7 #!j4u 3 C&] /qs5Hr1 # zan@_e z  = ' @fx H\!*3~u%!.@6:JZUVctrq %+11=FJKV]fbps} #'/0<>EHRT[afnpv~ %*02;ADGHNKWRYZ\`dckgqpswx|  !"'%++//357;;??DEFKJPQRVWY_\d`hfljppsvv{|~  "!%&',*/-40749:;=@?EBGGKKOMSQVUXY[]^aaddejfnioopsrvvxzz~} " &!(%))*-,.0108/967<:;?<@@ABDBGEGIGMGPIRNQSRUTWVYYY]Z^]``b`dcffghhkkkoksntqwrytyzx}{}~    !""! $ &!&"'%%(%*(***,*.+.-./.1.21041425546586879<8=:<><=@;C : 2 * &     { w p j c _ Y R P C D : 6 1 * '      { v p m e b X Z L Q D A ? 3 6 * * "    yyqnhd_\UTLIF=?44,)#!  ysvmkg`aVZNRGH@A7800() {{tsnkge_^VWOQHIB@>7710+*$!  ~|yuuomjgdb[_TYOQJMCI=A9:541-+)#$ ~y{svmqilfde__[YWVQRKOGID@C<<:4811--'+"$!   {}wyswnujpikffdc_bXaT]QXPSMOILGGCE?@>;:96441..*,&)!&      ~}{|xzvvurtoqlojmfkcjadb_a^Z`V\VWVSTQPONMJLELDEDBB?>=;<96:29232100,/*,*)''#' $"  }~yw|zwzvvypypuqroqplpjnkikekfhefcfad`aa^_^\^Z[ZYYWYVWSVTSUOVNSPPPOMPKPIPHLLGNCOCJHCJCFDEAF@D@AB>A?=A:@;<=9=7<88:587566263331301/1.//+0*-+-(,()*''(&&&$%$#$!$$#          |{}}~|~}|yywv~x{zy|w{xzwzvyxuztxwszrwtvsyoyqutrtrsqtpspqqrpqqrpqrosppsorqqpsntorqpsntoqsntorpsntoqsorprprqprpsntorqprqprprqprpsntntorqprqprqpsoqrqpsorqqqqpsnumsqpsorpsosorqqqqqqrososprosotorosotnsososorrpqqqqsmunsprprpqrprpqrpqrprpqrqpsntnumulunumsprqprpsorpsosososospqqqqqrotmtpqrpqqqqrpqqqrprpqqrprqotntorprqpsntorpsntntoqsntoqsoqsntoqsnulvmsqpqrprpqqrprprprprprprprprpsnumtosnumumtorrntorqprpsntntorprqqpsnunrqpsosnumumtososorqqqqqqqqpsosorqpsorqprprqqqpsososppsnunrqqqrosprospqslwkvnsosnumunsosnumumtorqqqqqpsososorqqrosotoqrpqsnspqrpqrotnsqotntnsproukwmrrpqqrnvkvnrqqqpsorqqpsntpprpsnulvmsqqpsntpqqqpsorrnulvmunrrnunspqqrprpqrpsoqsmvlvmsppulunsprospqrospqqqqqqpsorprqqqqoumunrqptmtorqprprpqrprprprpsnsprqpqrprprprpqrprospqrosososorqqqprpsorqqpsososospptmtpqqqqpspqrnuntnspqrpqrosqotmuntntnsprprpqsmwjxjwmsprprotnulvmtorqpsntppsnunspqqsmuntntmuorprpsorqqqqpsppsntppsorqqqqqpsorqqpsntorqpsntntorqprqpsnumtntorpqsorprpsorqprprprprprprpsntoqsosntospprqqpsnsqprqotoqrqprprprpsntnsrnsqpsntnumtorprprpqqrospptmtppsososorqrotmtprpqrotnrrososospqrotntnsqotmvlvluntntntoqsntoqsorprpsorprqqqpsosppsospqqqqrosprpqqrpsmunsqprprprqqprpsorpqsntoqsntorrnumtorqprprpsntntorqpsnsprqprprqpsnulvmtppsospqrotmumumtnumtnsrntntntntorprqptlvmtpqpsosososorqpsorprpsntntntntnsqprqotoqsntoqrprqprqotntorosprpqqqrososospqqqptnsorrprotntntntntntntntntntorprpsosntntorpqqqsnsosprotmunrsmtpqqqprrntorqqpsorrnumsqprpqqrpqrospptmumtorqqpsnumtppsntosoqsnumtorqqqpsosoqsorqprqprprqpsntorqpsorqprqprqpsnsqprpqrprosotmvltqospqrpqqrotmunrrososososppsososorqprrnulvmtppsorrnumtppsnumtorqprprqprqotorqpqrprprpqqqqsmvkvoqrpqrotmunrqqqqqprqprprpsntoqsorrmvmtoqrqprprqotoqrpqsmuntorpqrqprprprprqpsnulvmsqprqprqovkvnrqqqqrnumumumtorrntorrnumunspqrprpqrprpqrprpqrprosprqotntppsntorqprpqsntnsqotorprprqprprprpqrospqqqptmvluntntntorosprqosprpqsmwjwmsqprqpsorqqqrosospptnsppsprotmunspqqrospptmunrrospqrpqrprprpsnsqpsoqsososnunrqqpsosorprqqprpsnumtorqqprqprprpsntorqprpsorprprqpsnsqpsntntorqprqqpsosorqqqpsorqpsorprqpsntorqqqqqpsososotmunspqrpqqrprpqrpqrotnspqqrprprotntoqsntorpsnumtorqprprpqqqqqqqptmunrrotntmuntnsotnspptmunrrotntntntntoqrosprprosprprprpqrprpqrotnspqrprpqrprpqrprpqrpqsmvlvluoqsnsqpsntososnunrqpspprqqrorqqqqqprpsosntntorqprprqqprpsntntoqrprqprprqqprqqqqpspqqqrpqqqrpqqqqqpsntorprprprprpqrotnspqrprotnsqotnsprprotoqsnsqotorprqprqpsorqprqqpsnumsqqqqprqqqqqqrosotnsprotnsqprprotntnspqrpqqqqrosotmuntoqqrprotnsqotoqrpqrospqqqrprpqrprprprqosqqqpqsosntosorqpsnumulvmtppsntppsntpprprqprpsnulvnqsntorpsntorrorqpsorrntorqqpsosososospqqqqqrnumtppsntosorqpsorrososospptlwkvmsqprprqpsmvmtoqrprqpqrprqprprpsorqpsnulvmsqprprprpqrpqrospqqqrotmunspqrpqqqrosorrorrosppspqqqpsorqqpsorqpsosnumunrqqrosospqqpsosorqqqqpsosorqpsorqpsososorqqqqprpsosntorqprqprotnsqouluorprprqoumtorpsosorqqpsorqpsorqprqpsntntorqqpsosososntorqpqrprprprprqprprprprprprpqsnuluorqqpsorqprprpqrotnsprprpqrotnrqpspprpspprqqrnumunrrotnspqrpqrpqqqqrpqrotnspqrpptmunsprospqrnvlunrsntnsprqprosqprosprpqqrotnspqrqprprqpsnsqotmunsospqqpspqqqqqqqrotmunspqrotnsqprpqsorprpsorprpsntntorpsososprpqqrpsoqrotorqprprqqqqqprqpsorqprqprqpsnsqpsoqsorqpsorqprqpsntorqqqqqqrpqrosqotmtososorqqpsospprqpsntntmuntmtospqprqpsorqpsorrnumtpqprqqrorqqrorqqqqqpsosorqqqpsotmtprprotntmumvlumumvkwkvnsorqqqrnunrsmtpptmumumtpqqqpsorqprpqrprpqqrpsnspqsntnsprprprprqpsntosntorqprprprqpqrprqprpqrprpqrosqotnrsnspqrprospqqrorqqqrnumunrrosorrosorrnumtorqqprpsntoqsnsqqpsntorpsosorprrosorqqqqqpsosorqpsnumtpptmunsprosorrosorpsosorpsorqprqprpqrpqqqrpqqqrpqqqqrospqrosprpqrpqrotnspqrotnsprprpqsntnsprprpqrprprprprotoqrpqsntntntntnsprprosprpqrotnsprpqrosqotmtososntorprqqqqqqqqqrorqqqqqqrospqrpqqqqqrntosorqptmtospqqqqqqqqrnumunsorrppsospqqqqqqrorqprqqprotntnsprprqpsorqpsntntntntntntoqsnsprprosososososorrosorqqpsntpoumtppsospqqqqrppsospqpsospprqpsorqqpsnumumtorrosospqqqrososorrotmtosososntorprprpqqrososotmunrrospqqqqqrosotntmvlvmsprprprprprqprprpsntoqrqprprprosqprpqrpsntntorqpsososorrotmtpqqpsosorqqpsososnumtppsosospqqqqrpptmunrrosososppspqrorrpqrospqqrpqqptntnrrprqprqprqpsntorprqqqprqqqqpsnunrqprqqqqqprqptmtntosorqqqrotnspqrosospqqqqrpqrpqsmvmsqotorprprprotmvltpqrospqrospqqqrosppsorqqpsntorqprprqprpqsorprqprprqprprpsoqrprpqrpqqrosorqqpsoqsnumtorqqqprpsorprprpsntoqtlvnqtmumumumumumtosnumtorqqqqpsososososorrnumtorqpsorqqpspptlvnqsnsqospqqrospqrpqrpqrprprosqotnrrprpqqrpqqqrosorqrotmuntnsprprpqqrotmunsppspqqpsotlvnrrospqqqqrpqrosotntmunsqotmuoqrospqqrotnrqqrpqpspqqprqqqprpsntnumtorqprqprpqrpqsmunsprpqqqrpqpsprososqprpqqqqrntnsqotntorprqpsntorpsmwkvnrrnumunrqqqpsosoqsnumsqprqprqpsntntorprprqprprprpqrotnspqrprososqotmuntntntmvluoqrospqqqqqqpsnumumumtpptmtospqqqrprospqrosorqqqqpspqqpspqqqqqqrosprqorsntnsproulvlvmtorqpsosorqqqqqqqqqqqqpsorqpsorqpsorqpsorprpsnspqqrospptmvkwlunsotnspqqrotmtpqqqptmtorqqqpsospqrprpqrprpqrprprprprqprprprpqsntnsprprospqrpqrprotnsppsppsorrospqqqrotmtososorqqpsorqprrntorqprpsntorprpsorqpsososospqrosprpqrpqrospqrosospqqqrnumunsososotnrqrotmuorpqsmwkuoqrqotnsqotnsprotnsqotnsqprpqrprospqqqqrpqqrprpqrprpqqqrpqqqqrpqqrprpqqrpqrospqrprotnsqospqrospqrotoqrprqprqprqpsosorqqrosospqrprprprqprprprqprprqpqsnultqqqqoumtpptmumumumvkvnrsmunsprprotntnspqrpqqrotnsqouluorqproulvlvlunsqpqrpsnsprprospqqrotnrrprpqqrpqqqqqpsosorqqrosospqrosorrpqqpspqqqrososppsososospqrpqrpqsntmuorpqqrprospqrospqrospqrpqrosqotnsqprprqprprqprqprqpsorqpsosntorqprqpsntosorpsosntorqprpqrqotnsprotmuopsosppsospptmumtpqqqpsorqprqotnsqotorprpsorqpsorrnumumulvnrqprpsorprqqprprqpsoqsntppsorqqqqqqqqqqqqqqqqrpqqrprpqrpqrososososososppsososnulvnrqqpsorrosppspqrorrpqqptnsorrotlvnrrntorqprprprpqrpqsmvmsqoulvluoqrprqprprqprprotnsqospqrpqrpqrpqrpqrppulunspsnspqrprpqqrotnspqrpqroulunsprpqrospqrotnsqoulvmsqpsnsprprosqotnsqotntnspqqqqqqprpsnuluorqprprqqproumtnspsntntorqprqqqqqqqqqrosospqrotnsqotnspqqqrotmunspqrospqrpqrotnsprpqrotoqrprprprprprprqpsntorqqqprprqprprprqprpqrprpqrprpqsntorprprrntorqqqqqqqqqqqqqqqqqqrotmunrrososnumtoqrqprpqsntorpsnulvmtorprpsosorqqqqqqqqqqqrpqrotorpqsmvlunsososorqqqpsntppsntosorqprpsorpqsnulvmsqpsntorpsntoqsntnsprprpqsmvmtntntorprqprqpsntorprprqprqpsosososppsppsnunsorrosospqqqqqqqrosospqrospqrotmunsosnumtorprprqprpqrprosprpqqrprpqrprprprprqqprqpsorprprotntnsqqqqqqqqqqpsosorpsosorqqqqqqpsosorqpsospprqpsoqsntoqrqprprpsmvmsqprprprprpsoqsnumtosntntoqqqqqrosntpqqqpsorqprprqqpqrpsorqprprqprotntnsprprprprpsmvlvmspqrprprpqroultpqrosospqqqptmtorqqpsntosorprqprprpqqqqqrorqptnsosprososososorprqqqpqsnumtorqqqqpsorqprqpsntorpsntoqsmvmtntnunrqqrotmunspqqqqrotnsqouluoqsnsqprqprqprqotntnsprpsntorqprqprpqrprotnsqotntntntntorqprqqqqpsosorqqpsorrnumumumtpqqqqqqqrospqrpqrprprpsntorrntntorprotmvluntntntorpsorpqsntntorprpsoqrprqotorqprqqqqprqpsoqsnumtorqprqprprqprprqprpqrotnspqrprprprqprprqpqrpsorprqrospqqqqrosospqqrosospqqpsosorqqpsnunrqqqqrospptmuntnspqrprpqqqrpqqrosospqqqqrpqqrprpqqrotnsosotnsotntnsqprqoulvlvmsqoumtntntoqsmvlunspqqqrprospsntnsqprprprpsntntosorpsosorpsnumsprpsntorprqqpsntppsntpqqqpspqqqptmumtorrosorrpqqrprotntoqrpsorqpsorrosorqqqqpsnumtppsospqqqqqqrosorrpqqqqrosososorqqqqpsosorqprqpsntorqqqpsorqoumtnsqprprprotntnsprprprprprprprotntoqrprprotntnsprprprotntntntntorpqsntnsqprprqqqotnulunspqqqrotmunsprprosprpqqrpqrprqouluoqsnsosprppspqrospqrprotmunspqqqqrpqrotmumunspqqqqrprospqsmuoqsmunsqotnsprpsorqpsospqqqqqqrpqqqqrotnspqrqprqotntoqrotnsprprprprprprqprprqqpsosorqqqqprqpsorpsorprqprotntorprqqqpsorqpsorprpsnumsrnunrqqqrosososppsnumtorqqpsorrntososorqqqqqpsnumtntosorqqqqqqqqqqrorqrotmtqosospqqqqqqqqqrospqrpptnspqqrprpqrprprpsmuoqsntorprprqprprprqpsntosntorqprqprqpsntntorqpqrprprotnsprpqrpsnsprqprotntntnsprprprprprqpsntorprprprprprprprprprpqqsmvkwlunspqrotntnsqprprqprprqprqprprqpsntorrorrosospqqptnrqqqqqqpsnumtntosoqsntnsprpqqqrospqrppsprpqqrpqrotnspqrprotntorqprqpsntorpsorqpsorqqqqqptnspqqrotnspptnsosospqqqqqrpptmunsospqqqqrpqpsotmtosososppspptlvnsosnunrqpsoqrprqotntntntorprprqpsntntorqprprqpsntoqsntoqsntorprprprprpqrprpqrospqrosospqrorqqrpqqqrprpqrpsorprqpsorqprqprpqrotmtppsosorqptmtorrorqpspqqqqrpqsntoqsorqqptmtpptmumtpqqqpspqqqqqrprprpsosospqqqqrorpsorpqrqprotntnspqrpqqqqrorqqqrorrnunrqqpsosorqptmtorqrosospqqqqqqprqprpqrprospqrosppsosppsnunrrntppsorrnunspqqrprpqrprpqrotnsqosprprpqsmvlvmsprqqprpsorqprqpsorprprqotnsprprpqsmvluoqrprpqrprprpqrpsnspqsmvltpptnrrnunrqpsntorqprpsnumtorqqpsorqotpprprqqpsntorrntorqqprqpsntntntorqprqprqqqqprqqqqprqpsntorpsosorrotmumunrqqpsorqqprqqqprqqqpsntorqprqprqpsorqqqqqqqrososprotnsprprospqqqrpqqqrprososppsosorqqqptlwkuppsosnumumtososntosppsosppsososorrnvkvnrrosppsosorqprpsnulvmtorqpsosntosorprprprpqsmwjwnqrqprqpsppspqqrotnrrprpqrprotntmumvlunspqrprotntoqsmvmsqprprprprprprqotnumspqsoqrotntmvlunsprprpqrqprprqqpsnunsosospqqqqqqqpsnumtorqqqqqqqrosotnsorrpqpsosorrosorqqpsntorpsnumtososorrosnumtorpsnumtosorpsosntosnumtorqqqpsorqpsorprpsntnsrmvluoqroulvmsprprqprpqrqprprprprprqprpsoroumumsqqqrntpqrpptnspqrpqrprpqrprotnsosotnspqqrprpqrprprqprprprprprprpqrqpqqqrpqqqrosorrosorqpsosorqqqrososotmunrrososnumtorprprpqsmunsprospqqqrotmuorprpsntoqsntorprpsorprqpsntorprprprprqotoqsntorqoumumtosorqqpsosorpsosorqpsorqpsorqpsososospqrosprprpqrqotntorotorqprprqprprprprpqqrosospqqqrpqqrotmumtosppsnumtpqqqpsorrntorqqqpsosorqpsnumtorqqqqpsnumtorpsorqpsososorqqqqqqqqqptmtpptmsrotnsosotnrrnunrrnulvnrqprqqpsnunrqpspqqqqrosospqrospqrospqqqqqqqptmunrrprosotmumunrqqqqqpsorqprprprqospqrqpsorqqqqqqqqprqprqqqqqptmunsospqrpqrprprpsntnumtorqqprqqqqpsospqrosprpqrprosotnspqqrprpqrprpqrprqotnsqprotmvluntnspqrprosprqpqrqqprqprprqqprprqqqqpsospqqrotnspptnsorrosnunrqqqrospqqrpqqqrpqqqrpqqrprpqrprprqpqrpsoqrprqqprprqprprpqrprqotoqsntorpsosntosorprprprprosprpqqqrosososnulwkvnrqqpsntoqrospqrotntntorqprprqprotnspqsmunspqqrosntosntmvmtnsqpsntososospqqqrpqrotnsprpqqqrpqqqqsmvltrmvluntntnspqrpqrotmunsqprqprqptmulwkwkvmtntntnsprpqrqqprprqprpqrprpqrprqpqrprqotnsqprpqrprpqsmunrsmunrrosprprotnuluorqprqqqqqqptmumtpqrnumunrqpsorqpsosorqqpsnunqsnumtosorqqqqqqqqqrorqqrososprotnsqprprpsntorqpsosnumumtosorqqpsosorqqrospqqrpqrotntmunspqqqrnumtppsntorqprqpsntorqprqprqpsntorqpsorqqqqqqqqqqqqqqqqqqqrpqqqqrospqqqqrososososorqpsorqqptlvnrrorqqrpqqrotntnrrpqrotnsprpqqsnspqrpqrprprprqqqqpsosppsnunrqpsososorqqqqpsnulvmtoqsntorqprpsorpsosorqrorrnvkvnrrnunsorqrpqqqqqrpqqpspqqqptmunspqqqrorrnumtpqqqqrotntnsprprprqosqprpqsnsqotorprotoqrospqrorqqqqqpsorrnumtorqqqqpspqrnunspptnsososorqprprqprprpsntnspqrpqrospqrpqqqqrosnulwltpqptmvlunspqrosososnumtpqqqqqrprprotosntntpoumtorpsntorqqprqqrnulwkwkvmtpqpsosppsorqqpsntorqpsorqqqqqqqpsosnsqprotnsospqqqqqqpsntorprprqprqprprpsntorqqpsospprqqqqpsorpsorqpsososospqrosospqqqqrospqqqqrorrosososorqprqoulvmsrnumtppsosorqqqqqpsorrorqqqqqqqrospqrpqrotntnsprqpqqsoqqqrprprpqsntnspqqrotmunsproukwlunspqqqqrosorqrosntpqqqqqqqqrosospqqqrpqqrotnrsmunsotntnsotorpqqrqprosprprprprqqqqpsppsntorprprpqrprpqrpqsnuluorrntorqpsosorqqqqqqqpsosppsosprososqpqqqrospqqprqrosososprpqqqrospptmunsospqqqqrpqqrprprprqoulupoulvnqrprqotnspqsntmvlvmspqsntmvmtnsqqprprrntorqqpsorqpsorqpsnsqqqprpsnumtosntorqqpsntorqprprqqprprqprqprprqpsntososntorqotmvlunsprpqrospptmumtospqqqqqrpqqqqrospqqqqrppsotnspqsorqqptmunrrososppsosorqqqpsnulvmtnsprpqqqqrosospqrnunspqqqqrotmtpqqqqrososososorqprqqqprqrorqqqqqrnumtppsorqqprqpsnsrnumtospqrnunrrosorptmtoqsntoqrprqprprprprqprpsorqqqqprqqprprprprprpsorprqqqprqqpsntorqpqsnumsqpsoqsntorpsntorqqprprpsntorqqqqqqqrnumtppsorqprqpsntoqsntorprqqqprrnulvnrprprqotnspqrospptmtpptmtorqqqprpsnulvlvlwjwmtntntorotntnspqrpqrotmunsqnumunrrosorqqqqqqqpsorqqpsntorqpsnumtppsorrnvkvmsrorprqqqprqpsorqprqqqpsnunrpsosorqrosnunspqqqqrpqqqqrospqrotntoqrpsoqroumsprprqprprprotnspqqrpqqqqrorqqptlwkuppsorqqpsospprqqqqpsosorqprprprpqrqprprqqprqpsorqpsorqpsnumtorqqqpsorrnulvmtoqrqprprqqotntoqrotmunspqqrotnspqrpqrprprprprprprqprqpsppsntppsorrntpqrososososososorrosppsospqqqqrosospqqqqrotmunsososorqqpsorqprrososotnsprotmunrrosososososorrorqptmulvmtosntntoqrprprosprotmuoptmuoptmunsospqqqqrosospqqqrotnrrospqqqqpspptlvnspqqqrososotlwkvnsosospqrosprotnsqotoqrprqproulvmsqqprqpsnsqprpqrprqprotorpqrprotmuoptlwlunrqqqrospptnsqotorqprqprqpsntospqqqqrprotmvluoqrospqrotmunrsmumtpqqqpspqqrospptnsorqrpqpsotnrrnunrqqpsorqqpsosppsorqqqprprqprprpsnspsntmvmspqrpqrprpqrprqotntorotntnsprpqrqprprqprprprpsntntntnsprosospqqqrosospqqqrotmunspqrotntmvlvmsprprprpqrotmtpqrosotnsqprqprqprqprosprppspqrotnspqrprprprprqprprprpqrospqqqqrpqrprprpsmvlunsotmumunspqrprotntnrrosppsntnulunsqprosqprprqqotorqprqprqqqpsososospqqqqrpqqqrospptlwltorqpsnumtospqqqqrosospqqqrprotntntnulvlvmtnsprprospqrpqrosqprprpsntntorprprprqotntoqrpqrpqrososotlwkvnrqqpsosorpsorqpsosntospqprqqqqpsosnumtososntpqqpsotlvmtorqpsnsqprqotnsprotntnsprqprpqrprpqqqrososotnspqrpsntnsqpsntoqsnsqosqotnsotntnspqrprpqrprpqrqotntorotntopsotnsosospqrospqrpqrotnspqrpqrprprpsntorqpsnumtoqsorprqqprpsorqpsosnumunrrosprpqqqrpqqqqrospptnsqosprpsmunsqpqqrprpqrospqqqptmumunsppsorqqprpqsorqpsosnumumsqprpqrqospqrprpqqqrososorqqqqqqrosotnspqqrotnsorrospptmuntntmunspqqqqqqqpsosorqptmtppspptmtpqrospqrospqqqqqrorqqrpqqqqqqqqqprpsorpqsntoptntntmvmsprprpqrpqrpqsmvmsqprpsnumtpptmumumtppsorrotmunsprotnsprprpqsnuluorqprqpsorqptmtppsosppsosorpsosorpsosorqqqqqpsosorqqqpsosorqqqqprqqqprqqqprqqprqprprprotnsospqrotmunspqqqqqrprotntoqsorqpsorqqqqpsnunrqpspqpspqrosotmunrrorqqqrnunrrosqnvluntntnspqrotmtpptmtorrosorqqqqqqpsntpoukwmtoqqrprprpqrprqotntoqrpqrpqrosotmtpptmtosososntorqproulvmsqprpsorqptmunspqrpqqqqrosososppsososnunrqqqqrorrotnrroulunsqprotnsqprproumtpotppsorqqpsntorqprqoumtorpsorqpsorqpsorqpsntoqsmvmsqprprqprotntmvlvmtntorrntorpsosntorqqqqprqrorqqrorqrosospqqqqrosososorqprqprqpsntorprprpqrprpqsntnsqprprpsntntntoqsntoqsorqoumtnspsntnsqotorprotnsprpqqqrpqqqqqpsorqqqqqqrosososospqqrotnsprprpqsnulvmsqotorosprqosqprqoumtpprqpsorqpsosppspqrosotnspqrprpqrpqrorrpqqqptnspqqrosorrorprqqprpsosntnumumtorqqprqotnspqqqrosospqrospqsmumvlumunsospqqqqqqqqqqptmumunsppsospqqpspqrospqrotnspqsntnsqprpqrpqrospqqqrpqqqrpqqqqqqpsnumsqprprprpqrqotmuorososqosospqqqqqqpsntppsntpqrotnsqotorproumtnsprpqqqqrosososotmumtppspprqpsntorqprqprqprqprqprqpsntntorqprprqqprpsorprpsoqrotorpqrprpqrprppsprpqqqqqqrosntosppsnunrqqqqprqqqprpsorqpsorrnumsrorqoumumtospqqrprpqsntntnsprpqrotntnsprprosqospqrosprpqqqqrosnumtososorqqrorpsosntntnsprprosqprprprpqsmunsosospqqqrotnsprprpqrprqprpsosppsosprososqprosqprpqsnsqouluntntoqsorpsnvkvmtorqprqotnsqpqrotnspqrpqrprprprqotntorprqpsorqpsorprprpqrospqqqqqqqrpqroulvmsqotntorprqpsorqprqprprpqrprosprosotnsospqrosprprprpsntnsprpqqqqrpqrpqrotoqrpqqrouluorpsnumumumtpptlwkvnsososososorqqqqpsospqrosospqrososprosprpqqrosppspptlvnrrnumtosppsnunrrnumtppsososntpqqqpsosntorprprqotntorprprprprotmuoqslvoqrorrosospqrosprpqrotntntnspqrosorqqpsntppsntorqqpsnumumtosntorqprprprprosospqrnumunsosotnspptnspqqrotnsosprppsprpqroulvmsqpsorqpsorqprprqprotorqprqprqpsntorqprqpsntorprpsnsprprosospqqpsotmtospqprptmtntnumsqotntnspptmunrqqpspptmuoqqrprqosqpsntntoqsnsprqproumulvlvmtoqsntorprpsorprqprqprqoumtorqqqprqqqprqprqpsntorqqpsntorqprqprpsorprqprprprqotnsqotnsprprprqqpsnumumtpovkvnrqqqqpspqqpspqrnvkvnrqqqprprqotnsqotnsqoulvlvmtnsqprprqqprrosososorqqqqqqqqqrosorrosorqqqprqpsntnumtorqpsospptmunspqqqqqrorqqrosorrorrntorrosntpqrorqrospqrosprpqqqrpqqptmunrqpspqqpsosososorqqqqprrorqqqqqqrorqqrosntpqrorqqrorqpsnsqprprpsntorqprpsntntorpsnulvmtorqpsososososososorrosososososorqpsosorprrorprqprpsoqrprqprpqrprpqqrprprprpsntoqsmuorprotnspqrpqqqrprpqsntoqsorqprpsorqprqpsososospqqqptmunrqqqrorqpsorqoumtorqqprqqqqpsorrosorqqpsnulvmtppsorqqqqqpsorrntpqrorqrprpqrprprpsnsqoumtntorqpsnulvmspsntntosorqqpsosorprrosntpqqqpsorqprpsntorqqpsnumtoqsorqpsosorqqqqpsorpsorprpsntoqrotnsosososospqrotntmvlvmsprqqqoulwlsqprqqpsntorqprprprprprotnspqrprosqotmunspqqqqqqqpsosorpsososososorrosorqptmumtpqrosospqqqrpqrprqprpsntoqsnsprqotmvlvluoqrqotoqrpqrpqrosososntorqqpsosososorqqqqprqpsorqoumtorrosorrospptlwkvnrqpsosntorqprprprpqqrprospqrotnspqrprproulvluorqprqpsorqprqprprqqpsosppsprpqptntmumvluoptmvmtnsprqprprprpsorprqqqprqprprprprotntoptnuluorqqpsorqprprpqqqrosorqqqprpsorqpsorqpsntoqsntntorqprqqprqpsorpsosorpsosntorqqqqprqqprprosprpptntnspqrososospqrotntntntoqrqpsntorprqpsntoqsoqrprqosprpqqrpqrotnspqqqqrosorrpqqqqrososososorrotmtpqrorqqqqqptmunrrososotmuntorqpspqqpsotmtorqptlvmtorpsorprqprprqprpsntntorqprqqqprqqqprqpsorqpsppsnumtorprqpsntorqqpsorqprqqprqpsntppsntorprprotnspqrpqqrprotmvlunsprospqrpqrpqsnsqprqotntntnsqotnspqrotmtpqrosospqrospqrprprprpsntntosnspsorotntnsqotnsqprpqrqpqrprqprprprpqsntntntntntoqqrotmuntmuntntntnsprpqqqrotnspqrprpqrotnsospqqrotmtpqrpqqqqrosorqqqqpsososorqqqqpsosorqqpsnumtoqtlwkuorqprprqprqoumtoqsorprprqpsntosorqpsorqqqqpsosorqpsntorqotnulvkxkvluorqprqprqprqprqoumtorqpsosnumunspqqrprospqrnumumumtpptmunsososppsosorpspprpspprpsorqprqqpsntpprqprpqsnsppulunsqprprqpsntorqqprqpsntorqpsnumunrrnvkvnrrntorrntorqprqqprprpsntnsqprpsnumtppsorrntorqprpsorpqsosntnumtorpsntnsprpqqqqqrorqptmsqprqotoqrotorosprpqrprprprprprprpqrprpqrprprprprpqrprqotntorprprprpqqrprosotoqrotorpqsorprptlvmtosososospqqrosqnunsprnunspqqqqrosospqrotnsprprprpqroulvkwluoqrpqrprprotnspqqrospqrotmvmsqotosntoqtlvnqtmunrrotnspqrprpqqrqosotopsospqrntpptmtpptlwkwmspqrqprpqsnsosprorqqrorpsosorqqqqqqqqqqqqrososprospqrpqrpqrprpqrprqnvlvmsprprprqotorqpsorrnunrqprqpsmvluoqrpqrotoqqqrqosprqotorqotosntnulvmtoroulvluntntoqsntoqrprotmvltpqrpqrotnspqsnsosqprosprprprprpqsmvlunspqqqqqqqpsntorqprqqpsorqprqprpqrprpqrpsmuntoqqrprprprprqotntoqrosqprprpsososotmtpqrorrospqrososprorqqqqprqprpqsntorprpsoqrpsmunsqospqrotmuoqrpptorpqrprprqprpsosorqqqpsnumtntntorqprpsosppsnumumtorprprqprprqprpsoqrprqpqsmvmsqotorpqrpsmvluorosprpqpsosorrnunrrppsppsnsqprotnspqrpqrprotnumsprpsntntntorqotosorprrosntososntorqqpsntpqrnunspqqrnumunrqpsosososospqqqqqqqqqqpsosorqqqpsorqqpsntorqprqprprprprqprprrosntorrntnsqprprprprqprprprprotntnsprpqrprprprprprprprotntnspqsnsqoumsqprqotoqrosqprpqrqpsntntoqsntoqsorqpsorqpsntorqotntnsosososososospqqpsosnumtorqqqpsososospptmtppsorpsnumtosnumtpqqqptnspqrpqrotnspqrosospqqqqqrotmunspptmvluoqrprprprpqrpqrotmtpqqpsosorqqqpsorqprqprqotntoqrpqsmvluoqsnsqprpqrpqqqqrospqrpqrprpqrprpqrotnsprotntnsprpqrprpqrprprprprprqprpqsntorqprqpsorqpsosososospqqqqrosospqpsprpqqrqprpqrpqrprotmvluntnspqrprpqqrprotmvmsqotntnspqqrorrotnrqrprospqrpqrprprotoqsntoqsosorqpsosorqqqqqpsososospptnsppsospprqqqqpsosntorqprprpsorqpsosorprqprosqotntoqsnulvmumsqprqqqqpspqqqqrososorqqqqpsosorrprosotnrrotnspqrpsntoqsnunrqpsospptlwkvnrqqqqpsososorpsorqoumtorqqqpsorqprqprprqqpsntorqqprprprprpqqrpqqqrososppsntppsntppsorrotnsprpqrotnrrnunsprotorqprqpsntorqprqqpsnumsqprqotntntmunsppspptlwltpptmunrrnumtppsntorqprprpqrpqrotntntorqpsorqprqpsnsprqprprpqsntnspqrprpqrqqprprqprpqrpqrotnsprprprqprprpsntntnsqprpqrprprotmvlunspqrospptmtorrntorqprprprqpqrpsorprprqpsntorqqpsntorproumsqoumspsntnsqpqrpqsnsqnvmtoqrprqotnsprprotntoqrprpqrprpqrpqrprprprpqrqqprpqsntorotntorprqpsorqqprqqqqprrosorqqpsosorqqqqrosospqrosospqqqqqqqqpsosnumunrrnumtppsorrospqrospqrosososososososnumtorqqpsosorqqqqpsospqqrotnspqqqrososotmumunspptnspqrpqrouluntorotntorprotorprprqpsorqpsorprpsntnsprprprprpsorqprqqqqprqqpsorqpsorqpsnumsqoumtorqqpsorqpsorqqqqpsosorqqqqpsosorqqqqpspqqqpsosorprpsntntnsprqpqqrprososososososososnumtorqprpsorpqsorpqrqotmuntntmvmsqprqprqprprpsnsqotoqrpqsntorqqqqqqqqqptlvmtosntorqpsnulvmtorprqprpqrprqprprpsorprprqprotosnsprqprqpsorrospqrosotmvkwltpqrosospqqrosprprotnsprpqqqrpqrprqotntorprotnsqprpqrprprpqrotntnsqotorpsnumsqqpsntorqprprpsntorqqqqqqpsosorpspqrnunsppsorqprprqprprqprpqrpqrosppsorqqpsntorqpsntntntnspqrospqrotnsprpqrotnrrosorqqqqqpsospqqrosospqqqqqqqqqqptmunqtnsppsospqqqrprprqqpsnulvmsqprqotorqpsntntorpqsmvmsqoulvlvnqroumspqsntntntorprqqprpsntoqrosqospqrpqrprpqqqsnspqrpqrpqrpqrnunspqqqrotnspqqrotmunspqqrosospqrosprprpqrpqrpqrotnspqrprprprpsnulvmtosorpsotmtorrososorqqqqpsorqqpsosppsprotmunspqqqqqqqqqqqqpsosorqqqqptnrqqrpqqqqrotmtprpqptnspqqrotnsospqrorqpsppsnumunrrnumunrqpsosntorqprpsmwjxkuntntoqsmwltorqrosospqrprprpsorprqqqprpsntnsqpqqqrosprpqqrqpsnsqpsntnumtorqqrpqqqrotmunrqqqpsnumtntorqprprprqosotoqrotoqsntorprqqqpqsntoqqrotnsospqrosososorqprqprprqprprqpsorqpsorqprqqqprqqrorqpspqqprrorqpsoqsntntoqrpqsmvmsprpsorprqrorqptmulwkwltosotnspqrqprprpsmunrrosntospqpsosppsosorqqrososprpqqrprprprprqprprqprprqprqprqpsntorprqpsmvmtorprqqpsntorpsntoqsntorqprprprpqqqrosospqqqrotmvlunsqotnsqospqrpqqrotnspqrprospqqrprorrpqqqrosospqqrprosprprprotnuluorprotntnsorrpqrnvlunsqotntoqrqoumtnsprpqrpqqqrotmunspqqqqrosospqqqqqqqqqqqqqqrosospqqpsprppsotoqrnunspqqqqqrpqqqrpqqqqqqqqprqqprprqprqprprprprprosqouluoqsntorqqpsososospptmumunsppsososososososososntosorpsorqprprprprqpqsnulvmtpoumsrmvluoqqqqqrnumtospqpsprpqqrprpqrprotmvlumunspqrosotnsosospqrnunrrnumtorqprqpsosorqrosorrnumtosorqptlvnsorptnsosospqrospqqqrotmumunspqqqqqrpqqqrpqrpqrprpqrprpqrprotntorpsorqqqqqqqqptmumunspqrososorqpsntntntntoqrprqprprpqrotmunsosospqrosprotntnrrprpqrotnspqrpqqqqsmunrrorrorqqqrospqrpqqrprpptmwkunsqqqpsososospqqqqrprpqrprqprpqrprosprpptntnsqotmvlunsprotntoqsnulvmtppsospqqrprotmvlunsprprprqpsntorqprprprprospqqqqqqpsosorqqqrosososospqqqqrprotntoqrpsnulvmumtppsorqqpsorrnumunrqpsososnvkwltpqqrnvkvnrrpprpspqqotosorprqprqotnsqotnsprqprpqsntnsotnspqqqqrpqqqrqotnsqpqsntorpsorqotorpqqrprotnsqpsntnumtntntoqrotnspqrpqrosprosospqqrnvltqnunspqqrotmvlunspqrotmunsppsosppsnumumumtppsorqqpsosorqqqprqqprqqqprqqqqqpsososospqqqrotmunspqqrotmuoqqrprpqrqoukxkuorprprqprprqpqrprprosprprotntnsqoultqotopulunspsntntorqqpsntppsorqqqqqqrospqrpqsmvluorpsntorqpsnumsqpsnulvmtntntoqrprprprpqrpqrotnspqrprprosotnsppsospqqqqqqrotnsprprprqprprprprprotntntntnsqprpqrotnsorqpsntoqrpsntntpprqpsosorqpsnsqprosprpqrprpqrotnspqqqqqrorrotnsprqprprqpqsntnsqprprprotnspqqrososotnspqqrpqrnunsorqrosntqnulvnsososospqrosprprprpsosorqqqpsosorpsosorqqqqpsosososorrospqrospqsmumuntmunsqotoqsmvmspqrprprpqrprpqqrosospqprqqqqprrnvkvnrrospqqqrotmtpqrosospqrosospqqqqqrotntmvlvmsprprprprqotnspqqqrososprotmunsqososprpqqqrprpqrprqotntorqprpsorprqoulvmsprqprprprotntnspqrpqrospqqqrotmuntntnsqprqprprprprprprqpsosorrosospqrotntorprprqprprqprqqqqpsorqprqoulvmsqprpqrprpqrprprqprpsosntpqqqqrospqrosqotnsprprotnsqnvmsqnvlvluntmvkwmrrospqrpqrprqotntntntorpsosorqqrorqqqqqqqqpsntorqqpsnunrrnunqtmtoqtmtnsqprpqrotntnsqprprqprprqotnumtoqsnumsprqpqqrprosppsprosotorosprqpqrprpqrpqrotnsprprpqsnuluntorpqrqotnsqosprpqqrprotnspqrpqrotnspqrpqqqqrorrospqqrpqrospqqqqqqqqqqqrosprosospqprqqqprqqprpsntnsqotntntntosntososntpqqqpsososorqqqqpsorqqpsnumtnumtorqqqqqpsnulvlunsqospqsmunsprotmvmsqoulwkvmsqqpsntpoumumtorqprpqsntorqqqqqrpqqqqrorqpsorqprprqpsntorqqqqqqqrosospqqqqrososotmunrqqqqqpsorqpsorqpsosorqqqrorrnvltpqrospqrosprospqsmunspqrpqrotntnspqrpqrpqrospqqrorqptmtososnunsppspqrospqqrotnspqrqprotntnspqrosososososorrosorrorqpsorqqqqpsosorqpsorprqqprprqqpsntosnumtorpsppsntorqqqprpsorqprprqqprqpsnulvmtorprprprpqqrotmunsorrpqqprqprqotnsprprprprprqotorproulunspqrprpqrprqospqrosososososorqqrorqqrosososprorqqrorpsorprpsnsqprpqrprosotnsospqqqqrnunsosprotmvltqpqqqrpqqrpqqsnsotoqqrqorrprorsmsrosorsmsqsmsptnprumotrrkswoisq7ID3 3ID3@)  KU1lTPE1c64 fart generatorrockdodger-0.9.2/data/fart.4.aiff0000644000175000001440000013757612257577553016334 0ustar krawczykusersFORMvAIFFCOMM_y@DAUTHc64 fart generatorSSND     # -279#>4;M8k0F%`rA~hf2D/#) .\KxL3O>yRR<&-usu LU>5?mm6K`.P\tjXNO*j7 X> @ q S ? n8fIRIYO ^u  F'\<B " 9 ;sz^D=)WzE :nU10Z =]$:hi@A Z } = 7+ <qlC M f iT?HvU/ |+ v//QJ q@ |{E?G\,N6te ]x X# s XY[SC@IELKNRTT[Va[dbdkgpmrswv}x} !#%'&-)0.126799=nx sRMN7h m'OV|A{ D  (uQ ^F $A  , <wQ) H8~1=U<yq+9pTVO RZt!7g)oA5Gp vS:(nvD}ZFn>= pYtuQ/CM&  ulsjUCHD,  uh[ZPC83,vpd\ULA;/, |ol_[NL?:/) ~ u o f a X O K ? < 2 + #     ~ w q h c Y W I J = 9 4 ( '      ~ w q l b _ V Q M B @ 6 3 , %     z z l l c _ X W G M < > 6 0 * $      } r t h g ` \ U S I G A < 6 5 ( -  !    zxrkkc_\VRNGCA89/.)# ~{xpqhga_XYOPIGA?87//'&!  ~vynrihb`\XVPOKEF>=:43.+(%"  {yxpsjlgbeY_UWRNMGJ@E:?7722-*+!% ~}zxstookjgdc__[YWUSPLMGHE@C;=8925/.,*&'!"   ~{{{typvlrkkkegdba_\\XZUURPPMKIGFEAA>>;994621/-++''$#!    Zpie-`\1US!KM>D*a c R?'$2&)O0u<niCq9F3VFil1B UnQ654+>Z;Շߑ:Y+Zߵ5~,YܳWzrPz L>[X\PG = ZJgm|/xpr$A-MzVZ m1?, caCOX<^ @Tt~*r{W9ݱr"E 0F  lc 4Q/<DlA+j~sn%{%\h-e1j_2 $@ nZ ^ # '  prD&C_?  $G/Nc$w3+IpgJ2HNv7'lsR -4!Q^HGtwq!#*BLFPetmx ,33BLYZer}} +2;BPS^eox "/3>ELW[fkuz (,4;CLQZ`jox} #(/::HGTXbdqr| #./;CEJOQV[]bfkluq|{ "')-23:>EBJIPOVR\Y``dgjmnsszx}  $"%+(0-2468:>>DBGIJNMUPZV\^^ccfijoosrytx~  "$"$()+-,206388<:@>DCFFJKLOOSRVWYZ]\a^dbhcjiknkrpssuzu|z}  &'/%=*I%Y%"b@vW^' ;_cft.CL"F a W R 8 @ J -:[ZPi/G1y >Al:+[@w 1Ge 5\[?}^4zLF A t f  J W  z8r x . 2k%6H3#  Emd;_ Y  @  } S  RH>&Fy #/ C% |)Uz;B.&` O' HZWqA##  H p*! PT*3)<F'  # P!n 4Fb  6aUGX>   V G L Z &' v  I=nH"o!2$`  pq r uMQ. Hy m  n -j b\ w  !: f {U   f> iw^s vGS\&+H=3s3Bq06((]j * e1"P4uAKT@FHNQS\Yfbimnvw}~  ##+*045>;DAKJPRTY\`cfilptu{z #(&,./44;<>BBIINORVU_Xf]jglnrrxy{ !##*),0-567;<=CBEHINMSRVXY^\d`jeklpqutzy|~ #(&&&,,-013577;;?>ACDJEMJOOQTSZT]X_]``cdffjjmnoqtrxt{x}|   $ '%'(*++..10236678::?9C:D?AFAHCJFNGPIQNPQRRVTUYVZ[Y^\^_a`cafdfhgjnhqjrnsptswtxxx|y}~|~    "+*'.)/.31#0;#+B)(G/$L:#KG HTL[# Gg-@s:3M$d Qi   ] 3 " ]  Y d 0    Vn):e%""X#z""!" ""!,  [2h}!^2n:|oF Y< =  - %dV P3 : G(Xki,H"kX rg!tV + #+Y [tp|Q:*Hr 1S_n  f&j-AHQ P c3b F 8L M6 g F ZTvQjY (\V{]nHA f,  Q7C[9' w4I:/=J; > J AdJ '_Ix2k}kEp_ ODAh>S o9&[D]=pIz5k'Z <:oTs%75KT),^oNFurb~/36,EMNJ[ggdr|{"%..8=DFNUZ^ehtq| #)+37DDGHLLRQVV[Xb]fchilnpstxx|}~  !!$''*,+1/2567:9?>BBCHFKJMPOSTTZXZ]]^c_gbhiklmopssuvyx}{~   "# &$)&**-,.0124295:7=:@;A>C@EBGDHIFNGOLMSMWNXRXVXZY[\]_^a_dbedgfihkjmlonqqstuvwyw|y}~|~       #$ / $4$9B%E3I?KPNd MLCg[zbc.`E1`o-a{`c =}uJwT:tTN 6r6&5 47 C ;  L j a [/6pRD" ;m$ J }o Uf; <N!k(!L `tMQU FR& )Z= k Zu^i z' 1 4 M<XMb # YsPzYJ 'S@lj3r[ 3 RO{e'_MB|>m' H2tq  r ` ;!Y X(  iDS4 ^'!: (^5? i]t 5+.k |*|?EG O?f "CXR p{v `V 8C T g 4 ~  2  1_ } &  < X \  e u  u u V 0 F p < D :  5 U 3 1 0  + V ' - ^   ?   t _ y l N Y q Y 8 B R G $ ( 6 3        | x z r n _ d ` T Q K J B : 9 4 - ( !     urofh^[YPPHEB881.*#!  yyrnmee][USNIGA?:52/)'! }zuukoch\_WWQOJIC@>881/,*%!!  ~wysqojhda^[XURPLKGBE9C2;110)*%#!  ||vxqrlngicd__Z\UVSPNLHHDC?@:;5721.,*(#&! }~yzxuurppkmgkddd^b[]YXWSTRMNKIJCFAC><>6<3712./*,&)#$     |~z{vztuuqqqlpingihci_da^aY^XZWUWSRRNQLMJKGIDFD@D=A;=:<58656/5/3,0+/(,'(&$$$!"  {}~y~z{xxzvvtwstqrsomrnlllmihiji`igdb`gc]`abZ\]aXU_YYQZXWKXVTKRVRJMWOIISSCHQPDCMT@?KRB9IPD5BSC2<TC/9LM(4KM)+IP*"DU*<Y/5]3 ,\AbH gUdq^[XID1a#vK%s[hFfb ~E`#~y>ij=WxiS ib Xp K  ?F[,,,Fp'z:AZ xV I,5 i 5 ny$9[7[z5 q :&T i Om+J+Il 9P vGMy Q Vx 9c g J9 U %*V b [~  i XqQ $uEeRfBC}Z. " <yz  M& 4$X} ^E;E E:dcAzUn0rR<m6 ;d]EUe="-=!}svw_NRS>..,   {n`aXND<:-"  } r m c [ X L F > 7 2 ' "   } p q c a W Q K C > 6 . ) !    y w m j a \ U O H E 8 : * .       z t p e d \ U U G H @ 8 6 - ' %      v v n i f \ \ P S G F ? < 3 1 + % #    ~zvoned[[SRJGC=;41+)!!  xwnpgfa]XVPNIDA>840,'& zxvpmlce\\WUOOGHAA9;22.*)$  |wynsikde^_YVVOPJIGBA==67/2-)(#$  z}s{lvingfea`^X]RYMRKLHFDB@<;:5602,-'%&!  {{wysuppoklghecd]aY_VYURUNONIKFDF@A>;<:59/7,2*-)&) %     {~x}uzswqsopnkmhjhegbca`__Z]W[VVVRSQNQLLLFMCIBDC@@=><::694724/01+0*,*)(%* )%##    oQ~Z!Oj[{g?nav}}#r ]w=G|׫@l7]TB8? 3{QXb=&%!DT3!D1{(,z'O1jUS0{l 8>%&E5bexx%O#oM"2L Dcfߑvn,I7i;';.\Px b3@ gLO)Yh51&N=+ I{K= d7GVx[ UiH| _#ZL?sS.--*{m =)Q[kwJlJY 1@vbEuU{x0rLdkU)I81L"ST UT(M9LE FOBX*?]:"@`H,CaT9De]EKciOQgnYWjrd]mwmcr{uls|r}}~ !"#$&&(+(.,1-406385<7=;=>@>C@DDFHGIJKMLOMROTSSTXVXZX^Y_\b^abdbhbjiillkqlsosrutwwv|w}{}~  !" ""#"$#&%(&')'+(+).(/)0,/-1-2004/60626394;59:9;9=8A8@= 8 v I uc7 g Mz@'\]G7P/3m9LE#MgSS]Af3f-lh%Ti>xd(bXKK5= / "yw|xqjmoc___YUPULJGGC?;>5400.''"%  {vwtponijead\`V[USTIRFJEBC=>995400-*('!&  }{{xvstoqlljfhdd_`^Z]UYSUOQMLKHGDE?D9A6<6615-2),*&'#"      ~z}yyytvuptmrknilgichae^b^\_W\WXUUSPVIUGOJIHGEEB@A?<?8;96744412.1,/+,(+&)%%$#"!      ~}|}{{zzwyvxswsssorpnolojmhmfkdjdibfcbc`aa]_^[^ZZ\WYXUZRXSSUOVMVLTLQMONKOJLKKILFKFIFGFFDFBEBCBB@A@?@>=@:?;;<:9<6;697575644424/6-3//0-/-.+-+,)+))*%+$(&%&$#%"$ # !  !          vwrqs|YD %s" D^U%q_0&>O1u>.Is  =^syJx\#nE'. Nv8e/$lSbU;(8gj45b[=zQ:nIqFFBw @VFc he : MF E T @2V]   qY l ^Qf]A(>s tr  4'   XQ T6L _ h Q q ? 0 7 a ) 4 ' # ] " ;     _ w  9 _   ? "  m z W v g I V n U 8 < V C ) & < 2   #   u|tnafb[RQPJ@@<9/,*% wzroig`aXWPQGI@?971/)## }wwpojgd_^XVRNKHCB;;54.+)#& y|svnnjeg__[WVROKKFDB<?6902,,'&#    {}vwrqmmhhce^_[ZXSSONMGICD??;;58/5+-(($$   ||xwxrsponijfhbb`_^Y[VWTQRNMKIIEDC@A;=987431/--)((#$!    ~|z|vztutrqqlpilhifffbb`^_]Z[XXVUTRROONKMGLDHDCD@@>>;<9794643120/-/)/&+&'#&"""!     ~|}|z{wzxwwsxqvovnslrlokllijigidgeeaf_d^`b]`Z^\[[XYYUYTVTRTSQSNTMRMPMNMLMKKKIKGKFHGFGDGBFCBDABB>C=A>>=><<<:<8<6<59685646261330201.0...-+.*+,'.%+&)&)")#%& &!#!!!             t$n-_{2&WG7hO:I7Kd'H?}e8|GB IILkpQ~ L]`xj|=Tc&r :o4: q-$T0%FfC kXFo;e_C+_ ? %- 5\f=X79r8I ><8.50+I_4Y4 lvY L5k8u a*z|) l #X ; Ck   7 X  o K ! y j u T i B o _ 3 N v N # 5 W F   > 2   &   ukxqdZabQHLMC5;91'#* }wwmtbj\bVVNNGD@<921,($   zwupnhgb_]TVOLKCE;?38.0*'#  yytsolhfca\ZWTQNKHGB@>::34,/)(##  ~|yxsulphigcaa[\YUTSOMKFJ?G9B98742/-,(("$   ~{{vysuoqmlkghddb_^[]WYSTRPOKMFIFBD?>?8<58240-0(,'%& "   |}zyxwvtsqromlkjigdhad`_`\]Z[VYTVRTNRLOJMFJGDFAD?@=>;::69435/5,2,/+*+)(($'"%!!       ~~}|{|zxywxwsxqvqqtmrkomllhlhifhgefbecab``_^^\^X^W\UZTZTUURUPUNULUKSKOOKNKKMHLHJIGHGGEGCGBDCBCB?B?@@=?==<>9=9:::6<3:575635333203.2//./,.-+-)-'-&*('(&&%&#&"$""!"" !         }vmicf6=`[]lMxml8&p/&6?Z>! (okIDim jk#x=:}N$#Yi5%r\b 8hv-Q(rS+gߙI`q(1rl ڏU9v=\L2jRP2"{8 yk k%ThCll2w~ ||x|yx|zws|synvupqqosgsjohkkighfibede`c_b^^_^\\Z\ZXXXWVTWPXOVPRPRPOONOMNKMLIMHKHHIGGGDHCFCCDBBB@A@@>?>>=<<<:=7<7:7876739/:.71213-5+2-./*1'0'.'-%,&')%'$'"&"#%$#"          ~}~}~~~|~|~z~z~x~wttu}wzyxxywxwu{syrytwtswtwrtururruprspsorqpsntorqqqqqrosospqqqqqqqrospqrosqotmuntnspqrpqrpqrotmumtorqprqpsorqpsorqotorqprpsorqpsorqprqpsorprqpsntntntntnspqrotnspptmumtpqqqpsososorpsntorqprqqqqqqqqqqqqqpsosorqqqqpsnumtorqpsntorqqpsnumtorqqotntoqrprprqprpsorprqprprprprpqrprprotnsqotnspqqrosospqrotntorqprpsorpqrprososppsosppsososospqqrospqrorrotmtpqqrosososorqqqpsorrosppspqrosorrpqqqqsnsprpsnsqprprprosprpqqqrotmumunsospqrpqrotntmvluoqsmvlvmsqprprqqotoqrotnsospqqqqqqqpsorqotorpqrprosprpqrprpqrpqrotnrqqrpqqqqrpqrosqotmuoqrosqosospqqqqqqqqpsppsosppsprntprnunsorrppqtoosqsltrqoptslquqnoutlosxipswmktxohuwqio~lnjpjl{tjkzuiowon{qQo89T AW3t\#kbbgNt!*'agpz0l\oml7:ڎޚ]|CB*J743_w8#IM w'DvG-6 7u}I4hC % 2 w mW 2 . K L ak8 ! Vܵ]d5mHxK 1E: qگng/ . 9L%|](\4'WWC8RiU9ZS \;^ZUxOK+I@DSC^ Cm4AuQH}`;JxHX`_smz    '+%)2543?HILKQVYS^`cbelomtr~u}  "'$),,/2388;=A?HBKKLRQSXX]]`agekinpsuvzz}  "!$&&),,.01575<8@@>@B?E>EAEDEDFEHFIFJHKHLJLLMLNNOOOPQQQSQUQWRWSXUXXV[WZZZ\[\\^\`\a_`a`bbcbdcfdffeifihijilinjmnkrkqnprprqstrvrxrzsywxxzx{{z{~{}{|}}     (-66'6G728+< Rln)x|.m ^2'Q7V6Hq)';VSDuvV#!an5I< Z7`[l=`H I P XT*? ' e7v7oBnug6 Q { Zi ("R Kg= p d  %  :F ["5hkc_WX.2!ZkMU ?9.Soqi~ 2CCFevvy 7ACOdqu~ ,3GKQW[cfmsy} &*.79?EGPRX``liut~#"*/0<7EBLLSW\`eipqzz !%)-23;;CFIPOXZ]dbkksty| !'(/.66<>BFHMNSWW_\efklqrxz| #!(',-1488>=CEEMJRSTY[^`ddkkoquv{|~ "#&(+*3-647=A@DDIENHQNRQWUZW\]_b_fcifkioksmvqxt|w}|    #& '#)(),+.-1143577:::=:@ED<=KE>@IL@>MME?KTEALVK@K\MCHaQFDdXFF`cFE`hM@bkU=_sY>[wc+$B5"&H=.+KE92LP@;OVKBS^QNUd]Q\gdZallcfqrljvxto}{|v{ !$ %&&)'-+,//13255799<:>>?@ABCDEGFHJILKMOPPTPWSXUZW[\Z_]__c`ebffghhkklmnorqtswtxwzy}y|     "!"#"%"'")#(&)(+(-)-*/*1+1-00104-8.8081:296798:<9=:?;?@@@@8؃@0x_@_`|@Op?@xpp~_Sx|?pwW|a|pq|Oqp|??xgWoO`_@?@ >@?@迁🠟࿧@@P%_#_@p?|?Ap_qw|o~|?pp?p?|||F`_A@.@? 0 ( @_3P?/SQ`popG~{ao~W|_`^_`p?EX?@(?<ЦԼԿ<?? (@O`/@NOIPO@o[c`|x|cSpxa|P_twpxe|o~`w{|zoxpg|p_K`_dGdG`?@8?G?`- %8(8ȿܯȷȠ̳ȿû'H/8 "7?@H?@TSKXOR]_cnd_p|rpw~yw{htoxhxg`x_pW`]c`VOPGHP?OK@:+06;0(!!,Ŀ  &?8 078??@EF@?GVTWXXOdW`_l|l_crto{}wxwwxx|x}}xoyx}rvptw~{|phegvlh_kjhf]d^^X\[\_XTOPTOKLIBODB>@?B?4738704-,/0( ("         +0$,/*,'/670/78015>?;@;7?:??=?@=?A@=;?@F@7=?;9=>98476744,0/10-*)*('*/! +($  # %        !'(' #*+0&!"+-($')+(+()-,("#.-0%',*$%*'*'&( $&),$  %'(( (%                  '$ #%#(%"#&%*+,))'+.+*+-2/+(552,++0/31+,+120+0.,(('-,+)/(%$)'-&$!%%$! '"  ´İ @?`!xoa~O`@`pA@~@@px|?|_o~@p~G`_~|@` `_?Ox~`xC`px@?@@P?@~ @p?߀xO?x'p`px`(@``p`@(``p@`p`@p{|/`8#@@_px@|ߠ@@?/? ?``px@Ox`@@C@O``x\@X?~g@?@8p߀>p_@p`@>@|??p|l`~?xpp?x?p?~x@?@~`>``0@@?@0@@?@ ??_ ?v'`?>`>P~G@a`?||`@0` 0?_ @@C`xO` ׃x80ďh`@`O_p|p@?@p`@p8 ? @`x/@.@< 0P@> @@p|?l#5 ,0\p?h ?H@/ @?~?@ ?_?g@@Xx@``x#8^\?n@0>  ~p @'?@@@> ?|Pp@`?@x/0(`@?O@?@?`@P>< #@ `P @P L0@@?@?0@?`#`H<@?pop?@ ?<@&<< (ߐ >.##`%@?@`G@~3@?@'`?> //`CO@P\/`/@?_ 0p P 0@0PP<  ? 0 @?`?/(' 0?`@P>G`744@@ \!0 < /@@(` 'X? $P<@> @ @8 ?0 0??@ `  <>/ /08@@!@?`??PA@@?'? _`0(X//4/ з0(7@ ? ? ?@>  00| % $ H  00>ě 0 P @0/` +_ ?P7?`PP(/ ?OP ?@) $ί̱м? /?@@ 01@?P /@ 4KH?H4X @(࠿0ȼ฿ 0@?6 ?P @ P#\ '0@?0 0' øHl9puY]9BUǀHyB]5ܾЀ0Py$yaH( о=Y}PaB$ Hp(f= 9l=U  $U}l= 9a,HuP0 ,Pup]=( $0Lfy}}}}yyyyyyuyyyyyyuuuuuyyuuuuuuuuuyyyyyyyy}}}yp]H9$  $$(( $9Papu}}plllfffaaaaaaaaaaaaaaaaaaaaaaa]aa]afffffffflllpupupuuuuuyyyyul]PB0$ $((((,,􀀀(9LYaalpppupppppuupuuuuuuuupuuyuuuuuyyfYYUUUUUUUUPPPPPPPPPPPPPUPUPPUPPPPPPUUUUYUUY]]aaaaaffffffllllf]UH=0$$$(,,0005$0=HPUYYYYY]]]]]]]aaaaaaaaaaaaaaaafffBBBB=BBB=============BBBBBBBBBBBBBBHHHHHHHHLLPUUUUUUYYYYY]]]YYUHB50($$$$$$$(((,0555999,59=BBHHLHHHLLLLLLPPPPPPPPPPPUUUUUU}=550050000,,,,,,00,,0000555555555559999=======HHHHHLLLPPPLLPPPLHB=50,,,0,00000599=BBBB $$((((((B}uluullpY  $$((,,,,00000055599999===BBHHHLLLLPPUUYYY  $$$((((=yuluullll  $$((,,,,,0000055555599===BBBHHHLLLPPUUUUU $$$$(((0pulpulfllfP   $$((((,,,0,0005555599===BBBBHHHLLLPPUUUUY( $$$$$(0lpfpulflfff $(((((,,,,,,005555999====BBHHHHLLPPUUUUUU9 $$($$$(UullupfllfffL $$($((((,,,,00555599999==BBBHHHLLLPPPPUUUU $$$$$$$,fpflulfllafl  $$$$$$(((,,,,0555599999===BBBHHHLLLPPPUUUU0 $$$$$$$$(Uuflupfllff=  $$$(((,,000555599999==BBHHHHLLPPPPPUU瀀 $$$$$$$((5ppfpulfly  $$$((((,005555559999==BBBHHHHLLPPPPB $$$$$($$$$(((0puflp9  $$((((,0=LpyԫԚˀˇUyU=ypԫ܀U$ppfyUpLfˀ܀=fL琀,L$pUpy]p]]ԀpL=LU]L=L,L=Ð,],L=y=,y]]5,y5܀=pUUfܚ˫,5]ܴ=U5$$=5U$Ԁ=,U=y$ˇ=U܀L磀À5fp5ܴܣf]=,$,=LUUp$,L$皇yU$p=,],yyL5瀀,pUԐ$$ܐːԫԴ$Ԛ,ܴˀˇԚô$$$紴,fppUfpLL5,5$=f˴5]]ܣԴf]5,5ˀ=]=,5˴Դãpp,ã˴ÐԴԚëܴ$UfUyfU==pp]$琀ããU=L$ԫôԚë$ﴴ˴$$܀ë$UypU=$ˇ=5LULf=ë紀5Ð5==fL$˫Ú=pypy]=ô,Lf==UfyL,$ԣô˴,fp]U=竣ˣԚˇÇ$=]Uô4<4KT[3+ľ׾ž忹Һ!Ӽ߿ƺ²ù  8EEEDDDD7- п ǻ 1;EHB1̪#(;\mi\;Ͼ1JJ(iM% Ի4foB倀aR%^wVaa Ԝ ?o}\ Rf,^aJрPM^}9o#몀//ǀR;;M4J,; %M (7m\ؗ1VV倀 %,BEB,1H7 % 1BV/7J它# ,BJ/ %4HMω 1(9HE /ER㧋19 #,HJ19RY̗7/(4J1 4EV?병,; /EH19R\Ԣ7;Ѹ,1M% 9B\\򸚢#99 ,9;/;M^ग/4 /B 7BRa򾗟 /1%77(;H\J뤗%// ,9 #4BRdɜ %,1 4((9HVd讓#/ (4 1?Pa9۟#7/(;JYi,;#//BP^d㢗1?%#9EVd Ś #;/ #,?M^i럗 1E% #7HVdHќ%?J (BJ^f/HM%ǻ %1JRdiݚ %4J1ϻ(;M\i?/BP 1HVdo뚜 %4JV Ÿ,4PYia̗/7PV ذ1;V^o 1EV; %7JYmsNj/9R\ Ϫ/9R\oV 4?Va踧#9J\iu㤟,9P^iŧ1?Rass 1BVaEѫ *;FOZ'̷%-3   rockdodger-0.9.2/data/getzznew.mod0000644000175000001440000024123512257577553016751 0ustar krawczykusersGet ZZ NEWComposed by:@TurboSector of@Nordic Vision@ @Greets to:@ZiBBA@A.K. Metal@Markukkuu@TuukkaX@And all members of @Nordic Vision k@ M.K.0ְ0ְ/0ְ0ְ/0ְ@ʰ0ְ0ְ/0ְ0ְ/0ʰ@ְ:0:0/:0:0/:0@:0:0/:0P:0PPP/:0PP@PP0ְ`0ְ/``0`ְ`0ְ/0ְ@ʰ0ְ`0ְ/``0`ְ`0ְ.`/0ʰ`@ְ:0`:0/``:0``:0/:0@:0`:0/``:0``:0 `/:0 `@``0ְ`0ְ/``0`ְ`0ְ`/0`ְ`@`ʰ`0ְ`0ְ/``0`ְ``0`ְ``/0`ʰ`@`ְ`:0`:0/``:0``:0`/:0``@``:0`:0/``:0``:0`/:0``@``ְ ` ְ /```ְ` ְ ` / `ְ  `  `ʰ `ְ ` ְ /```ְ`` `ְ ` `/ `ʰ  `  `ְ `   `  / `` `` ` /.` .`.` `   `  / `` `` ` /.` .`.` `ְ ` ְ /```ְ` ְ ` / `ְ  `  `ʰ `ְ ` ְ /```ְ`` `ְ ` `/ `ʰ  `  `ְ `   `  / `` `` ` /.` .`.` `   `  / `` `` ` /.` .`.` `0ְ`0ְ/``0`ְ`0ְ/0ְ@ʰ0ְ`0ְ/``0`ְ`0ְ.`/0ʰ`@ְ:0:0/:0:0/:0@:0:0/:0P:0PPP/:0PP@PP0`ְ`0`ְ/0ְ`0ְ`/0ְ@ʰ0`ְ`0`ְ/0ְ`0ְ`/0ʰ@ְ:0``:0`/:0`:0`/:0@:0``:0`/:0`:0`/:0@0`ְ`0`ְ/0ְ`0ְ`/0ְ@ʰ0`ְ`0`ְ/0ְ`0ְ`/0ʰ@ְ:0``:0`/:0`:0`/:0@:0``:0`/:0`:0`/:0@ְ ` ְ /```ְ` ְ ` / `ְ  `  `ʰ `ְ ` ְ /```ְ`` `ְ ` `/ `ʰ  `  `ְ `   `  / `` `` ` /.` .`.` `   `  / `` `` ` /.` .`.` ` ``````````.`ր h` h0ְ`0ְ/``0`ְ`0ְ/0ְ@ʰ:0`:0/``:0``:0/:0@:0`:0/``:0``:0`/:0``@``ְ ` ְ /```ְ` ְ ` / `ְ  `  `ʰ `:0`:0/``:0``:0/:0@ְ ` ְ /```ְ` ְ ` / `ְ  `  `ʰ `0ְ`0ְ/``0`ְ`0ְ`/0`ְ`@`ʰ`0ְ`0ְ/``0`ְ``0`ְ``/0`ʰ`@`ְ`:0`:0/``:0``:0/:0@:0`:0/``:0``:0 `/:0 `@``0`ְ`0`ְ/0ְ`0ְ`/0ְ@ʰ0`ְ`0`ְ/0ְ`0ְ`/0ʰ@ְ:0``:0`/:0`:0`/:0@:0``:0`/:0`:0`/:0@0`ְ`0`ְ/0ְ`0ְ`/0ְ@ʰ0`ְ`0`ְ/0ְ`0ְ`/0ʰ@ְ:0``:0`/:0`:0`/:0@:0``:0`/:0`:0`/:0@0``0`/+ WY$9Q ſ ++F2س㑘 3\JK9G3>NV8-8=K.001M7/1"2FTG* Ā'IBQbtq\mataw>c%Fݬ͛´怤iW DjmR5pWUdN1eY\dbsk[^m/VoHYU_`chY^m}an[wkhta]z`IUR(Z7="((׵Ӷc2NHe2yJ7qbw;Y^ed``omv`akNUkSQv7YfXH_VX>ROCUFAGf5b8FE3JH(J3Z ɸԈ§ģΖijçͰپ %05N>9e`8Y`]tdvygpp~w~k{~x{jomzbdfYKMZQKI7Z8S1208/5)#>=($ )' ## §Žɰټ  #,1&:6F@BNS\Ib^^hck[w}xfxd~|tmwuwvovsprV{c\dV^L`VEAY76>8#21&'* ۼϵʵŴ  +!&&!!3#-(!-!7&7/%7)567:E8LD?OVNOaY_VkgX^zfynmjiykftazdvretp`hfdjcX_[[VTU;QC???=5%5" "  ɳο˱¯®ȿ  !#"( &/+50743;=5=A?C;<9600&& ڵ)! #&#. ""K&1GC-0BGAXN1SDIZ_[ODW`Yf>_uVXbYiiTIeoe\iUUnfPckTL][Vi\@WYHVrSSR@IWhYPODH^]KKSKAMHHML6A?=GF?16/3>=2--300."   ˻ȹü !#"&!5&'6.0?2%%A9K;.8AF?JODATYAJVE_]WMdlOc^^[j\dhf\dsiZ`hddoW]ll[ah\[^^W^^S_ZTJOZINO=FPL6KB8:@972:7/11%3,&%' &$ ļǼ   !"%"* $'. )2)'3*&94)67/8924:<9E76>@=C?F?F>?B?8_*,7.)-D?7J$6-#?H: #W ! ' +! - J (3!    *  ,  #   -# +0 ?+   )' %.$- *)+  /  ) ( " # "  - (  ) "          #"       "       %                  = ',    6!u҃BK6 $4# #-. ! #    '-                       ۾01kϼw^IeuRYetFVFˀ'܀Ɉဗ_EJp`Vw"Nw"TS|wcP4ߐĺɠջ䍀བ1IUXvMNY7{$0QRu> :LoXh3 3K::.֭֬݊<0;_a|5GXmdMF'4grFUYM29Q ЀӀɨӯ 3 9Q\&voYwszes;BCrVhHS7GeCV* 【ۀㅀƙ&\YfJ7@phtV`()PSKH52?=CA߽ǑĊTN,ÀEM>K.xp(07Y"xg:Ey-wun(eiRIVzkNCMWvV\N]zKTyXR?9aq /ѾΙ٪Ƿ退ƎϷ%Mkp8n^|x@HiVo8dU^jfxwq>R[XgAyTlZ]b\R:]faV:^ALE7c@8m%V, 9&& ɶḧŵᰡԮŭö $L,;7%27FlNXiLh[`Vphwrs`vzwxTemrrQi\SjnG<0>ACEWI9%3);%' #< %1 ƪĵ̵   6314 )W)ZPMQBdwYxktsuW{w{`prpr}t}||uffq^UUXUNU_VA39E/1*( ƵȺƽéŵƵ )$%5! %,*$'!"%- )2;34?/.9:EN8:2CBRm\VWLUhd~ndkm~eynmxyztkm[dz}~lliffnjbVbZKQ?MHIKD82& (!! üǴʶ¼ɻ  )(30!",/=E@,&3;7:GBEH;NL=F>ONLIX\[TWQX^RY[^i\YW_drlfd]^ejloigrwxiqmpvuktrwoksl^adgmi\]WZ[SRMCHBC;9>8.*!  #!&%/=<16;:=?GHPNDELPQY_`?W`^][Sue\V\Sk[^d`V[TqmjTIlxk[VMUyYRcZINl\R`^@_K?ITR@169IU7iVAHXEKA)0BD<:7(8B4/0&&3%$0' &  öͿ   !&!!-$21Ŏ,'A=@99.<7:TRJHIAN[BLeY]WXP\j\^Vf]e]^`gkZ^hYlc]^mbQogUWcZ[ZPXW_LGW?BXW;BR8AB1)@D)87200*&2- ,+* ɯĸ   #&"&+) !-.#$'/92-.05(2<207B56=2AD>9KB/IB?B@B?9:<<6A563031031%'(%2*#!($!      ɾƼɾ  ! "(*!)%76'**157/*10369:5/577=?8>=:4==?DBBB;/T*eP.a) j&)KN AB>0?9''/E#' G9@5%8,>2!KC.%*7)+%E# !E!/  & ?B ,*  !)@@* ;  ( # @.N & R . *0PG "% 7H( .7B9 *P #8(1/      ,   ,0/ %  67&,#+;,?  '# &     "      "       )$                          %  ; /00$                                          X9R|3-75XIB' && !"%3ԃ,,3CٺT툯&bWι*#1M(X:ДĄ\OK]S ]sVײ,`F\ĸ/2) ĺ#E4E)8' ȩ3j3vZ ,ЃږJ a3^xG:Y61E^::2 +2Ý"ֱҖ&=~}hT0sfNcR Ȫ˄5@`wnҤ)?7 |gE`[Ϯ0?PTWZXVWUOOQHEA- +" ȿ#=K*Ʋ'3D?1ѿ '3و?.\ծY$EJ$q%BJȾ.],֗IO@&4DͿɴ/Hl! -[))ƬT$I9AIT ٬4M)@;5-) ;n$d<;$=}* /DO ᴈEt.]qtE@ 4d)\$}Qž% I H*˼pPHň'he 9e$@,눆1@AJXE,1O[ #݈T\9Hู.) D3H١D|I ,Xi$$Xy-Ň! `OU\ p5X87թ褬X/ϴ ʈ?d=Ql|51I(U1}F ٻ*@f'7. " Y Ѫ⠆ GgnA\/A Ť I%=EỈʱB٥e/ rtE' X<:6:Q @P8e -ي¼=UQQh "qJǡ@Y(-֧l\)E랼@ x%88i/G㬹`` ԥ t,U<築1ᄍ$@5ydM&E/I<๜+T+$,QȍY@< 9XKy8"Mbv!ġ+4M%KӠ7;lGppIŰ%=; ɧ`7B-⧈ɴ dS`l-g-w9-ѹA^/DoAt3ϝﻼ-Gy:Ga D9n}!/ňl<<ȴ4@Mq$`H85Y>ĺAG) W)&ֽ 81'e 7)F91L)Aш l`=Ġ .,Waec)MU `T8 5- ڬ`-W<&HEr,!ٔ%n%Q<ݨ QX aQ\oaϽ`  AA6Ք 又-a TEڼ?q IeUF $xad9dķ̸Gٙ)D!Gڤ q\/~[>%@aiP\ "$وϟ4o5s4  m@78@I `AG̈g`o5􍽷tG61Ȉ+.%>/i\ du4 $4̡M>lG=ո\,S,OMK( I,5T؜`X.1 58͏ױEAхEWWoC+A ্/\INGQ żT(e@H)5YZ'Fa1-ɯT8$QIMo#7,7!ӈՔHi@QC=0*.o/Y8ԉ`E\δu4D˯hOË!,@/QTD%9<4ĆяThBOT&<Nj%1n9BY/m hHD*>I(3D 4T䔇pIA؈˩@+aAm71H7чڝ$oEZ6K'Z*S9ň繼T@5p .3QGu_@@Ȉ֑ 48$H)Ay%!@5 ňZuI3;Ai@ňvo%IPМէ9j%kC%8A/ %8G,ᆇe]=ApAL/,ш=C,@W]),B1eɥø=nw/g4)()1M!ܕ)'3͈-4 Vl )m) /ר@1*+DP/(sK7\!֧ʲ!,k6Y@Ǽ/ M (V 3O!䭇㼭Be' A=XI/) 4餠 -'͇-,\!-Xc4M7罇ݭ(CK=4 M1Iͮ%L[Fц}99Pn Wq !>ꝩ$) !e, fA$L,߷խ$KH7*X1 /;-XE͠(}07I)R oh-L嘈頽,+ $k$p(/M෇Ϲ,`53A '`-݅Z"TG%̆MJL^[ PI ]y  \C zF<ѠױHS% l" ue)\DĬ:,I%qH lKd ǛuX%!m,+وG]!D>БѮ u 48̕~(t"Dp1לlU$pQ4`@ 9NࡑԮ-3R aA,nI"`%WC'Ә -bO8nF須 dVYh(O9$чఽK6= ٔ5bE9ZT@M3ǿL] ) u (5y J\wWϴ5m`Eu@ٙ@1ȈP9D͜L`U@dKDQ q- Ԉҵ-l , .N2`@Oh@`2V(&&̱ ,F G8IC98+0%պ̝:!&(4/@!40+C0*'8K:0.',*@@A@?*"38#ٸ̑У'(!08#:1[@'#Y"825 ,  + 11E? -?:0 .,# 8 ) #  $- ضھ +E  <B *&!+ ̿ȯ&2 *%'<"0'@.2. (A/%2O%3 !'$ -+8  $0/3 A+:% "(ؼ / := & *  # !$ ( ' ) /! *" # $   #$3/*'& ,0   . #*  "+ &/5  #( *(# '$"    &!    '  & 2"             #      !                                                                                           М2/,#?m9ǯ&:.%%/LjJ+=}~C 䱜(P61H7& 1V|Kݟ4:A"NzZ;# ,%*6QmT< ̯[m`A$MbwJࣕ$ Ѵ$MvvvU4@]{hV֮  мGrvzZ;$49?% 伥EJO(د4lu|y;ڵN`rW=ʨ%ɾ  Ĺ*QdxhY7'N\k^R)ԧHOW65ZfN$ #Ư #&A]em\K,ôJS\]^RG5$ ǽ  -7ACE=60*"  $9IZ^ca`ZTMG"+171+#  !&0;61*BNZ_dfhgf[Q0)/61,$   "()+  '8K_hqrtmgZN:' ).4/*#  !$''(%"  '9L\mu}||tm]M7! ļ &-.0,)#    &0:BJKMLLF@6,!                               %   40!MٱҨ /@1*,vlAY5ԍ8|xl)`y>: V!׿7Tro[|MN`ܕ1mO!(&w(,Wnd8@ ب͈˜TpnWP픉懇@4  ,AE%aW4.,8G!xa@+ԷܱӇ,=MahoxVQPe- ȿψ(  -XO9 bEv, Ae ۝֨IQSJ^iXtO/lN쌅P;pGTmOuYG!)l˵ըͶ)Af=OaQ4G==) ʮ! 1 !``-·=%g`, w)!"!'ԩǩ-=:*8#<>@@,ܦaYD8TI4c8I .$ ) ٴǼݕ% (\hT0w!)7  @m0 " &  ߼ `L &H^-(NJyuهъ:Y/Y.<'!χ -/X,==+q +% UfT<MktOtŇ4/Ĉ#a<]uH[AQ4򆼙Փ܈'@/()FxA9`G9OS8 ῴˇrߤވ] T_'L 󘆬 '2L{Q8lO !q܆|sL'X@ liIL}_Ҝ䠇[nA/ͼ O'OO @C ̠Ϲˡԍ9R6gi!`mT4( )ܴ2 &-u BV,յ"CDF 8TE 79?A<IO$@DAѠļ !W65%I,,P8!4  =6鯴ԕɠ 2)4qi@4$j<!   X ,7  +0 -ĨͰ!#4trTJ|MY ε Juer_wnbcf9($  رմ%(5&5?elT=l5))T,,%O~LEa~~T~~]?yʀg @{~~~~~ N)d~~~~~( /,<:|Drr(~~~~i(H7 B,өM|Z`b~~~~~~~~~~~~~~~~~B}w{6T!R~~wi<̳©ʁ(U~~~~~~~~~~~~~~~~~~~~~~|k'1ϳ˼ßȮ)&K+V^tu~~~~~~~~~~~~~~~~~~zn{\zdD#˾䒧ٹµEB_om~~~~~~~~~~~~~~~~~lgW<49 Ỡ !/F7CPYhvx~~~~~~~~~~~~~~~~~~~~[mK:1  ۾Ҿž"111EF?VL]l{{~~~~~~~~~~~~~~{yekjdP@7 Ǹƺ85dSrn|~~~~~~~~~~~~~~~~}d]\Z@C&)$ν (8D;U]dpm~q}~~~~~~~~~~~~~~|x^VEEC5® 0DKgoy~~~~~~~~~~~~~~~~~~~scT:F Ʋ "5@K^Uffy~~}{~~~ljux~|jsto\[NU^A@*&ĸ&';?CA?FJRI[l{~~y}~}{|twfeaMI<8/7ֹ1;<+0%"л¼ͩ &/*ECBDCZNNY_nghsrogn`dX]J@3,ʼ  %4@DIRWZYYfi]Yjh[SSKKKC=8/% ˻ȹ!&!!.67B@?O;7723FBC:RLB818/# м¼  "709-60(4&'+!#859."  ƺĽ ! (%&#/*-            '*.'&(  !'/-2 & "+%/<()    &"/6)&)&"1(!&(/+5"  "&1(6=@>BD?<<<486,3-"" ȿ&!'$-<47DPSSLPGI?B??J<+,$,%  Ŀ $(+-,)559@D?69A?55E.!  "%(+10/,*1,./(/;90'+#   +1-634/057813-').)'&$  ƿ *4/788186@8788<1*+2,,'   źξ"#1&--:85>>FAAC@;8.(!   $##! &&)(2(%("  "$"+ $# !" '#"!"%  $!#     $!$&'   !'% "#!&''%*   " ##&$- &$*!   " #%*))'+*)##   ++(*("%!      "                                                                                                                                              %'T9+4333F0+Ry^ZL:<>! "&o (&$24T vvsuid^HL9>X.&0",PIHVTyXscrTs|truu|||d:OP ! .(73N@EOTRJ]VT\OTTT\NPRR3Bttc1pnVbbDLKN䈝Ʊ$ (%  '$0gLaTTToIRR3*(:(ؼڤΩ$ '&$BDB>+I&JB>]d@ZR=F`(  @*+9LE`R`r]Kisnzy|y|ddumnXZ[OaLD ' $6433FIWINP=RNVRRJLsxjZZ[OR="s^Z[OTVH\   `7\T,ZL6C>>4KaFDEXӗ.@2F(433XKB]K!(""",423o$94NU.EE]IX{||gid{|yvxuuuuuuruijj23B2.433333333Zjbba]fX]UPWb?aJ[R,"  [91$""42-++'.g=f' + :ڦ:. 2.+,8EB@aCH[TR?,BW%(+cZ]\d|vo~uy|||||||||||t|yx||yv|||||||||yxvuva+2DB>+=B>>>+I=+1I=8 &"1' ",:133323%( "(Tӥ  !&!* $$  &$ծ7%$"B23KF`R`]fbbp[lQ4BHRNPTTTV`\\f^[vb|oyuv|KK~{v||||||||||||||||||yumzus3L4?+I&4'2' 16 %6L F<233N:>P:BK=K=>BKFE9>(BKD9>B>>>+232-=7.3F̴´Ƌ %2*P@J[TT`\oZv9XxxrFRTTPTTTVVTbZ\fcb|v9XED]RVvccD{|jjg|||pjxuuuur-8 " 0 '%CQ\QTVT`QT`NT`EJ4EaQT<:4HWβ.=aaPT`NTVTTJQ=:,4Z9@(c%:>> 2P:+*Tλ  ?]W`ntvu]honppXx||\abbxVo]r[r[dbr2>((8괥ǸTh[htvx|pjdlhhzI4Bts~uuvvuvuxuuuuuuxF0K9BI`OJX\OagoluuH{j|prppgx-42 0TOEEEB@@>>+42&%&$24mRTTbLTT>U?:4-P!4.'" "-۬ !o>>&(++[ļӮ ٴ䑮$%udbt|lzuuux|in1FEF>aRTT`Wa||||||||||||||yBOUTRT`[gbjjl~2{m~|p~|||t:K7(42*822233PZHK8CE9>+43F= U\CHQNP6O6,C[ 4- 6$:8$'3E$933F(38+!%' д! IR`Pbuclnl~HRTTT,<>@@>>\TR\Ofruuj~]caHbQTbcW~y||||||||UOURRR3?(32 "1612233F=@TpW\NR=@>>B> g62313FB>u$ >[9X6Z.-1IH&3%0-ͬ D=!""$,: zDZT`Wl<1?@B>>>>>V]@7EB\9cU`vryv|||||sdnabccv:{|||||UBNC=B@BB>L=H9333F=+4F=P3EBa.-4FfVRP=BET ^9.I=+g % "1%,6R>>>+426% [ϱ  $7 O:HF?b8-.lZWT71+%,@2F=4COZTTbuZOTTTlplu`~uuvu||||||pd{6z||XDZQR?ON8K>>>>P3,4333213*%:= WKQWRH"?D' & $ CPE86a% !'7  (( %'?%^lcH8,I&433F(+7%6%B- " =!    %% " ($ "0+.,,+433LF7C>@>BBWTRIRNVTTT`Nc\[]]\rxuiK^XgV^[uogxuuuruuuuuu[VX{s\^XXOTTTRRTTR=TV:BJE9K?XL0EB>>&7F=+(+"$$" 6&""\Id\>    $( " 3*  0'r<< D%+ 1+"3133F@BB>Zplr9>Nxa|43"-,8333NHHH]QR\\fjo|t]o|nvxXOZ[[X\rjhj~yvuHvd`^|||y3XB>+12 -(+"1"gCRB^V>(T !  Q%&$"Rά 'ƴĵĶ7$,!@2FI?@>ozozxy33B>>1`iWRZlC"611=K@\QR\OfIPRF[NRVXg[f~u[NWX[]&v|||||UOPT9Ruhndyl|800333F=>BW6(?.2H(132H=@>>>@I8>>>a`\]UPRF =%%*  $".867.31U Ԭϴ %*=2>>>B$Ju{vumpVzH"D'413B>2.IH8DJ[NUbcrnpnNv|||puuruy>B@L:CbuuuuPP61* $&>*++7323F=>^DOVR,]gvz]UTaQRJ '63!(7 % - !ZQ:@B>+'[Үʴ  %27bhtvuuuvyuT:FHKWIXNPB>c{rpX[caRQ]t>C,3,6F=BEH[T3||||||y||gJ&62H=>4C@>:xWc\bV^aRQc]*,3 ""<,L'I=B@I8gmruuuicW82$-'-9ü""" +828'8)'豈᥀ '̱ÀӀ 'G)G"8 @249$ޟ"0 렠Æ'մ">+>9>2)G2Y\L89 "2$ ȧ¹ Ӛܹ+'YD0=2\OEa9$  -'4붼 ٹ2O\2"$׻"9 [[0DmU"J2Q80ӠÄ $2܀@aY$02f>LEh") лìÚ-ö"ì)GJ+d q'G'G@>JDY=ȼ̶$)ն ̴" $>4E)8=+""8E)2" ﻟà"ȼ9J=4$)> 0"O 0== Հ Ȼ'8$ 0O'8 $)->JQ@$="-8@d+4+'"9"2" +$- $' ܴ +)=9+'22-)"$2")ӹ  229+  2")L׻ 0-+G24G)> 0488 "80 +8  )8  ' 2'J $)"J    ׻89$$ G"++  ж«0Jȶ«+\"+4J $+O$8 -ä« )-)2׶ȴ@ OQ-'>8' $""20+ȫ0+ܶΧQ8+Y+'жD$qa=Q\UGGչ980-+)ӼDZܹ >2>9+E28 ׼ȹJ\O8G=>8TJ)$Ø)'" )ȜO8-QDGL-@89ȶ4L4>@DL2)O=E᠟  -8ȴ  ӟӬ$+$892D2 D+" +2"8+L8䴴   488@9T>"4"2")")$"+8 δΐ䶬$)+'8'))))-2@9@$+9  ჴӠ'  0'888"$  - ܶȱ2 դ8E Of$4 $\==q2 )ާ2 $Q̱̻"λȻȱ$0E )'++0J9Yw\2+D44Ȥ 0E+ ̹ ȴGJ8+'2=  OGG\8408"2-ӻ)+ ι+û)02YG8=>'ך"[E8lp[G42$4- ̬˜4`+)$ȱÏ'Y>4T-'8δ8-88h`[p89" λ -">Ï J  +4>DL=p "ȴ+O=U=9}q8襀̧ )+")䤀Ú $ +9U8$">O)@L+П¶ܬ׻䶧+)8'@04'""@$2L+00 Ӥﱻȯܻެ""-G+)4$"\4-'$@'9T軟ܼ4)$[Q" " Y8 >8 =@ -܀4ȓ =>["4f'L@f=p8\̯"Ӵ-4δY02T G$ӻ'002л)$=> " = +>++)) ޻ D$`$2 "JT"" 89ӻ  -$ 2$ 08"}G\À4JôY[J”Gl }`'-|p Qa\Of$ᤴȶ0ά Gữ+88=Q8l@}$9T\ 9=à񻻼-ιÚ̶')4>Y- h$E222)80 8$8Ӽ׻  $@'JE=0J8$+Ы Ü ) )'$""U+DT++"8-ӻ豱"+ ìȶ"=-0E>m$lT4f>89'=  ìХӱᶥ  2"+@8Q`=Y >"- ȋλ ܻȤÐ  $ $>2OT9Qp$  )` ̋ìȐô4" 2)@$)OT+>+  4)+8 Ȥޱöι  )$-4@GE9T4 0 մ$ "'- =2" ) p9@"0O"4$ Ӌȶ ᬼ""Y''E- Y=TY09$"8+)ȼޱޚ맹ȤED)"LE+ `p2QY2+ "8"μä䧴ç89GqplE8}O+Y28$μбα$-+ @ L>4LDY4[9+$ 뱫Κ޴λ2E9+882-[wO DQ $䶘8 է Ӵ$$+h\YT =D'Ȼ ំ8'"fd})02$8==̱ "öܴ¤+""2)mO'w`dJ>w8>)ȋӶ ׼ '@'>`@"8Y\`$aE'88-=O)9D[8E>2$$ן 2JGJ`\'DT"$=D$$ж0EL$-+4-  )  عC݀nǼ}ˀ0C`UM8＀&Ur}}jM4ֹ)02-&4CMSF8&  &?QcrryrgJ?8- F}i?ϲn4ݹ 04"ǜ4gF A)췟CQF0 ṑ?pn? ߼)4CUgprpg`MC6&"$ Dz ")'))&000" -?Urn cyiUF4& 0H\ry`M8ˮ &&&&"IJ-0400-)& )48FMUagnrry}}nUC-  &-8CMUcgg`M4  ǹ  )-48?CFFMQQQQUUQQUQMMFF=84- ˾ -?Qcp}rncUJC?4&    ֹµ 08FMU`jnr}rjgcUQJF?4-" &-8CMU`jry}yrj`UQJ?80) ļ &)-048888884-& Ǯ &8Qcr}yngUM;0" &-48CJMQU```cgggggigccc`UUUMFC84-&   ļ$)28?FJMQUUUUUUUUSMJC84) )?Ul}lUJ8)  $)-48??CFMMMMOMMMMJJFCA88400-))))--08?JScrrgQA0 "$&)))--//000000246888?CFMSU`jr~}nUJ8) "&)/48?CJQU`gpy~paQF8)    $)06?FLQUcjry}rj`UJ?4)  "&)-044888??CCFFFJJJJJJJJJFFFDCCA?;888420/-)&&  ")068CFMQUU`cgjnprrrrrrrrrnlge`UUQJC?80)  &+048?CFJMQUUUU`ccggjjlnnnnnnnnnnjjjjgccc`^UUUQQMJFCC?8640-)&  $&')--/000//--)'&" ļ $)048CFLQUU`cglnrry}}}rrrnngca`UUQOJFC?882-)&  $)048CFMSUUcglpry}}{rrnjgc`UUQMJFC?840)&"  ")-48?CJMSUUcgjnrr}~}yrrnjgc`UUUQMJC?8840)&"  "'-088AFJMSUU`cgjnrry}~}}rrrpnjgc`UUUQMJFC?8620)&"   ")-04;?CFHLOOXZ``cgjjjruuww{{}}}~}}}yyyuurrniiieea^ZXWLLLJFC?;:820+)&"   "&'-/248;;;;;DFHJLMOOOOOUWWWXXXXWZZZZXXWWWWUUUSQMLLLJHFFDDA?8888420/-)'$$      U3"rockdodger-0.9.2/data/iff.configdata.rock0000644000175000001440000000022612257577553020106 0ustar krawczykusersFORMROCKANNORockdodger data fileFORMPSPRKCMAPCMAP [pMDOTFORMSPDTNDOTrockdodger-0.9.2/data/images/0000755000175000001440000000000012257577553015631 5ustar krawczykusersrockdodger-0.9.2/data/images/mood_item.00.png0000644000175000001440000002744112257577553020541 0ustar krawczykusersPNG  IHDRe${NgAMA asRGB cHRMz&u0`:pQ<PLTE4%7"2&:!5$:"/! 4 5'+#8%7 !+#(1#/%2#+7"'+'@+#<,(7.#8/9.'<.:-/6/'7/+@.!?.%700<1C/A1@2$?3(C3>5%@5"B5<7%=7#>6*?7<7+=62>7/B7(A8,?:)G> pHYs   vpAg{3A-GIDATx՝ CR[ͼr% B";Ƙk.j|rYwۼI\.*_~,Ȏ!xO7ooB.ao(c<C 'ac<+//wn;h^,ߒ1/W^;l;V6d *^]$/Εb <~VD<*gV /98łbUjjK[ձ ?_|RQQT8oSxt&jHi eM#i`hȏK!ڧ_9"{eoT[;90 =  {~)2 RᏨBr$e7* 'o"w,> -' _rd^ald>P^}UI{tߟkzSoo#+C}TObgʨv7y 7ߦ[˩ڨ7]#-?-VKVGUl>nf"n/; [EzqV*r8uˑW~ɂx6g匢c B_(uYT*E툟eH)Ki:T]mCxjWQW@r)a)1* א7aп~ư5ėQW_),|| ohۗt5)W(~;UŌ*N| eCk#3uEMـ/)w|2[>X= \[Wxꆾ`**LN%A 7O9!l+<:6+˧ ,.gw"J/}pPz@[r9i+=*fP4bJU^HH6-)zoE)Yt3 9 u e;7푻~05%o7ja8s5*2J{?4YrE!|")q} om/(wA˓]"qoGWGٿ`K,dw &=&lԖE3or? 68 @szZ,_?tF! Wݼ ~B/^h>GķvSϩc'}%_1OT͞TY`琂/ӿ߇ gl$>/!|w2J8zQ+|ZT?+}}]v(}K )J887oVт~ _ f>/ '6OGΥBz!+oTCM|I5_~Lj,fY *m\R\=Ha6C79fs;b'Dؓ$!<; Ŀ T@due <ȕ}2^>5W_dnIC!"IBx؃n,ɿS!`& lģ!?U;eS 1pok@KqSЏ,loVrw`&}dꞾ:a!Q~ X,2z^>@?P/)k :S2VGZ 2АjX&2n 0O_Dy=3H)3`>ü#.1|(%lީlԬcS/4XshS`'bgĔsC3G'FF(TU>Q%XIĂM9F_%qmdqSXQZ&KoKwtdjiO&+<^0^.2GMt :m%/ jQvD4=`gL{;Ȁru]t Yi3XZ~/Ͼ^A@n3vDÓ2( ^(BbPJ>bTmI:H0ir2L85~o2Ï`P愲;&^}ZiyIG VM =mm!?keObf8*p'b>|} gyt&:UNA7y<|Fŕ[Z젟*t%3386A%ݥcځ'Ǥ$ )4K1/?s.DL)sQ~41݈_^GxoϏKggggk7: $˃wP(x :?8G,~"?*Aomw٧< צ"znՙރ),/@dƲ_iH˓~'R|P\g%0k~ S{t7=2]o 4'n,KKQ.9Bɀs77wP}_)ɫ8~ʡO.s@|L~9'y*[}Ћj_ONJTS|OJA!=2OK^=[ 3wөOE+uU-z4EBsssc txfgӃw^#Y>`!]-?{GU<#S{Q]!i |]F_ܩ[SMH<6lN'9G#K4|>KMGSr3Lբ?/cxzsJA$ ,Ô9߾ > omR5.2\L.o 9cEϤC|P߾-=6kzYa߃@ݽ = Ej.^C7UʿG|50{ ID%! [^u ߾ɋpۘu7GC7K3o#>!l=;LL`k8P%tpр:fD/ü3R[뛮[%ž(ۏ!W~MnWa]5p7'iZ[/*#M -L՗jMw _ Mx(Iz©'z`¨$x f|#a /t#Y0~`ɤP"•j@zDK}>ߔi|*XNz,2+~-M@ҫ76Na5UzJ}N^n) A5 l"_A?aey _)KnlYOۉ31WZ㷅׻YR LN2Ӟζ% >b&g*Ok 8D"+OhF=\j Q: Q5lWCߒ˄_^N ZBFM~XvsI8|[V,7 G]U}}lifLsdz$̓OL;{F ͙%8 /Q.®d^-Gn >E ]Y̔4 Oi%YzT6^xX )LA o9zAF}Tg//t{]'{g؈# ~#&l~nfrGّ Ī-.GoGAOwzPaz"z]|v %KQ|OsJ)`G|p?x HFS#|a^sxl_߽;FwQw]sz!k?>V`/4'ZVc-ብl*=᧚gC7ٔux!rM?| {`?F$uhoQSleB[|즷.^]Y^\r@ZEۂ ~oųoWgBГAcuRhbR͚Jl>? FFvot]o ;K,ﶷ<; 35>gnG@.J_KFٯpI3n^Rx}a pC-t~X ~뛜W3ɧ8Kcp扛am(\p/yYP o/v,hKZ氆9kx=+|ikׁ^5ü1soٴ7hK]fB-hnS7`ʦyOt;K$3'Ԡev* Z~لcۃ ^r,P\VcJ)zMoR&TZTMXANgԜIVrg 6K".5tDe#%|X# |J|LW6=1ZMXN#Ghvm b' <à>gw6`y7x|JS f&e̙6DWځw?o͵Ë띩&mTr]Ǔɭr3z5$\=mo onS5$cj Qgu sd|*Y-5cY3pwx.a-\dC@Y%nO2|B*l/mNJM '\/ d~KgQ ݻdVL<;X6 B<[^%%gq}=Agi]Odבu3sY++J ͜]/ّ$/}ߕ>ȋ[ҙ_e"nMǘirvvt_rr쿁Nl#ZӄgSV %֌ F77|ܸJʄ4Z^Rǧ_Lrc 9xLjj3ߔC#-b];H[rY*qG1S{p]^l /e <'%i?ܥBׁ-bε{v( ?L^?#qx=Fm>y u75zɛ5c.v`^P>/4纯 _~maUۋhn' _JR9xȾ wpb\[A &?#|7У=Bܐrf+͵kV-[˟p̟B gzj,DOkt"0{pgJ^53+㒎WgؤÒޮ>|ayw i H#) ++7JoRlĩgsL ^64\avG+%k)irS:wR:R2 58?RpH/K  [Bޔn^-' ]c~@5kd~*}~ rZcbyD+< s53nعvIoEAJ'?ABW/{1tY_|FvӀuqkfzM'7>|~z*z'+0`ѽF&U1FQ^ ҕܕ2>L^Otnyn͏bfSۣ,(Zm3;gzC,퀝󋽗勆EaE9`b}Op3 ZޓMI}Mo-{ww ~zVx1W>4s1dgY_lxrM[F{fa G_9?c7wnd^x_91s8ͦl*_mjA6hg].Ϧb fN`j}pklOWow!8L~p*%ϟ4?B)m (5E4ᝫ?g[u`{$۵F̿x;vYd2ф+͠v{k}[MR6+ X\ڝ6  2dnj؝xv OXwu*AV>"qjA=|7M䆷2@`lߑC-zEc\mbBE_?E1|`foiڣ'ƸoJV@a[MVSlt>ξd޲{FHÕAݏDFK秿~7mdzBwU2sQvMˋ1»Y {yDBy*|ٓ5,y"uFv]v՜zA m_ӿ] ߡ6IBѻԢ$}wopBSyн_`aoW^3J%7;_mờ`;R2;)zJyBz}_C;$ |f#`4^ʋOT2n&?׾g[>^xv¯ZaU^81Xk4zxדYU5tymu_[x`w<]wnl^ fjy`ȼޡ݉gz֚Ez U޲5؝?HL(ޖJ*=&x{k4zWIľ .40Ef~u;ԯg!yFrУGrzɼ*xٜB[AkUOjWpi&?gPx܊Eoy㛘OBqB,ˤ탳DwU!IʱCxoyCXrMvj&8bסAϮ6|?ˇu2K;-Q$^]o6t&[6yHlA7 yox߮7݂i5*=SpQ/H?G6o xv̉ ]vYT 7 a}:_H>{ {ϓ?Esx|7hw0Qw9vϬu0xsj;g 7C@{{)^ Ƚڿ/`䊦J'C)h-Kobǀ&}g%e1/>=Coo1QDž`DF )G-\:Q;BWӧ ?ʓ&%tEXtdate:create2011-04-13T20:16:32+02:007%tEXtdate:modify2011-04-13T19:59:54+02:00t IENDB`rockdodger-0.9.2/data/images/laserpowerup.1A.png0000644000175000001440000000067112257577553021333 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME 5 5IDAT5Y0 @QhZ\@E; oBQƨ)qcAn$ Տs߲R_~c\:Iu&j c`@{Sa𥂕fJV"BJJ M ~B86g4.[-'?g iXIENDB`rockdodger-0.9.2/data/images/bb-dropping.02.xpm0000644000175000001440000000024512257577553021003 0ustar krawczykusers/* XPM */ static char * bb_dropping_02_xpm[] = { "4 4 5 1", " c None", ". c #000010", "+ c #1122EF", "@ c #334AFF", "# c #CC62FF", ".++.", "+@@+", "+@#+", ".++."}; rockdodger-0.9.2/data/images/greeblie4.bmp0000777000175000001440000000000012257577553022530 2greeblie2.bmpustar krawczykusersrockdodger-0.9.2/data/images/greeblie1.bmp0000644000175000001440000000146612257577553020177 0ustar krawczykusersBM66(  g07*C7\9uEC _ j1 `$  :Q T `9Q$X2@ANEMCN=K_/ ] `x87 ^DNFMEM?O>P=P1TY FCN#Y ` ` ` ` ` TF!e/ ` ` ` ` ` ` ` ` ` ODwو/wEڅxxEڅg ]"""ñEڅ _000{{{x W''' i>>> i i>> ixߤT' ccc i i iq㢱 i i>bN '''2VB(URAas~r~w<<< rockdodger-0.9.2/data/images/blubat.01.xpm0000644000175000001440000000317512257577553020055 0ustar krawczykusers/* XPM */ static char * blubat_01_xpm[] = { "32 20 59 1", " c None", ". c #000019", "+ c #00005E", "@ c #0000A7", "# c #00004F", "$ c #00009E", "% c #0000EA", "& c #0000FF", "* c #0000E8", "= c #0000C5", "- c #0000E9", "; c #000038", "> c #0000E5", ", c #0000BC", "' c #00008E", ") c #0000AB", "! c #0000D9", "~ c #00008D", "{ c #00001C", "] c #00006C", "^ c #0000FD", "/ c #0000B7", "( c #0000B9", "_ c #00009D", ": c #0000E3", "< c #00001E", "[ c #0000D5", "} c #000099", "| c #0000FE", "1 c #0000C4", "2 c #0000EB", "3 c #000002", "4 c #00008F", "5 c #00004C", "6 c #000031", "7 c #0000F0", "8 c #0000CD", "9 c #000030", "0 c #000050", "a c #000058", "b c #00009A", "c c #00000D", "d c #000091", "e c #0000D6", "f c #000084", "g c #00001A", "h c #0000B5", "i c #0000F2", "j c #00002D", "k c #0000BB", "l c #000021", "m c #00006D", "n c #00005A", "o c #000018", "p c #0000FA", "q c #00007A", "r c #000036", "s c #FF0064", "t c #000016", " ", " ", " ", " .+@ @+ ", " #$%&*=-; ;-=*&%$# ", " >&,')$!~{ {~!$)',&> ", " ]&^/(&&>_&: :&_>&&(/^&] ", " <%&[}&|^12|&' 3 '&|21^|&}[&% ", " &|4562&4*&17890%71&*4&2654|& ", " a&&bc de&f gh|i8j f&ed cb&&a ", " @k lmno ^||||p nml k@ ", " qr |s||s| rq ", " , |||||^ , ", " ||tt|^ ", " ^^^^ ", " ", " ", " ", " ", " "}; rockdodger-0.9.2/data/images/laserpowerup.0C.png0000644000175000001440000000067112257577553021334 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME .;f5GRIDATM0 Eᖴ#?yȴg&e`,}$^nY@Dpuxb[V q;'m͕']l16 404[ Rl@ A[(PIKDպ_X%~&ĒYd`+9qrcr2|}9IENDB`rockdodger-0.9.2/data/images/shieldpowerup.png0000644000175000001440000000146012257577553021232 0ustar krawczykusersPNG  IHDRabKGDAT pHYs  @AtIME 0iIDATx}oTewef0mDlH "H18,D ꆍ$v4!h? @&H -B(}X<'99ɓc@b.)dg"1'@a`,pp K*}@7|d7y]c3ÜxeUjᱷ݂V $W~lTNsKRrɯ(EސL_4*7COtJMju$P_q$ ErjV^%. @wl in% s0P:Ujw=ϾH 40Ҷ OmGkO Tk$/Fh6aũebLSjnBO&2%>dY<gTij4xq_g8Gܠw2~p?Y)DVuV}8{b;2x"tq1|p61x*4ج3!2e+ZWȅ^ L"xDiӏfayi8չ=cc.4 pi t1ԙT/@#O}Ե)CG6㮼۾dý_{*ozf1QK\j9VsΥhaeiޯnѶ)JX58c6ɀMߔ7*v?(=|'K NIENDB`rockdodger-0.9.2/data/images/shieldpowerup.05.png0000777000175000001440000000000012257577553025270 2shieldpowerup.01.pngustar krawczykusersrockdodger-0.9.2/data/images/laserpowerup.08.png0000644000175000001440000000067412257577553021324 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~T bKGDH pHYs  @AtIME --̡IDAT=0 EQE* TiNIz~àT=MΐY( oزs"}ƶWJh/q^i ZBecsm*ja*c "#-OA9c c߬V]l 3KVy+~,J[;_ ׅIENDB`rockdodger-0.9.2/data/images/shieldpowerup.02.png0000644000175000001440000000125612257577553021455 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-s-u|HbVaZyWFowgvl?49)EPAHSUeU*U=r9    $$XXtv VY{*   !?     &%+ :@?EDIFK_cei  UЪ{Ӫ~c~㙣   KVK pHYs  @AtIME  1rGYoIDATc%%(B8U)" ( W!+" J-yJ.p:QA&% ̌H;~eOHHOf'& l-!R,NCnKd()zxNsc-IENDB`rockdodger-0.9.2/data/images/laserpowerup.05.png0000644000175000001440000000067212257577553021317 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+  YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~T5p}bKGDH pHYs  @AtIME ,(нdIDATE0 EhZ\@E硓6/H0JÒ ӫ$vgDLVϹ85d ẔE IacZ С~%xWHQe 'YQ*4ֻ}%lqS Ӗo1b]>3M|_xIENDB`rockdodger-0.9.2/data/images/laserpowerup.03.png0000644000175000001440000000067212257577553021315 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TG%bKGDH pHYs  @AtIME , tPIDATU@EP7qZƶ'jy ${yc3 )zsRs|āGAKBI}~`W$̾U ^ С SgsJ+F*CFOQ{k dưaPlC˪vҪ}~TqbKGDH pHYs  @AtIME 5;IDATU08zԹEgl% 0LRƨwp\S|Ģ喙 c[)iDZ݉<jHMj% Hc1Z3͹1xaŀB^,TX,gC,lVY >Ewk?`d { Pk"]\IENDB`rockdodger-0.9.2/data/images/laserpowerup.0B.png0000644000175000001440000000067212257577553021334 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME .&3+IDATU0 EW9_",B4dv>(cx9=lo9zp`#AaV q͞+'_@9߱ڲw|(dR1JL%P! uC_X%~&ZĜ2OMS2N^LG|Z0IENDB`rockdodger-0.9.2/data/images/laserpowerup.0D.png0000644000175000001440000000067112257577553021335 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+  YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~T5p}bKGDH pHYs  @AtIME /:*fIDATU0 EQhZ7pӞi iD cgTm9zE۞p`#I\_O}J$n^}P.їV[V] X_ /4PB TR8d.ph\DZaN2O%7qb6D3IENDB`rockdodger-0.9.2/data/images/mood_item.04.png0000644000175000001440000001431212257577553020536 0ustar krawczykusersPNG  IHDRAsRGB`PLTE % J".,:)XA(d>.II%~C8:<|]EchCsdta}ffv~ǐꨠȢåھФ庱Mł pHYs  tIME ;0˟IDATx]vD66`cc vUw2ޅl=wELvlQ-ew]+ ~7=ω:OpAOx9oPr;LH!S'A__Q\_& , 45%gYHlE]00:?sp"Myǃ*H'z(:@>` }4l)l>mS H}k$#Kđ+j*08^L7#{J'8Kl[/g0E Hz)a_I. 8A>OkS؆:)/3qY|O6c$؄zE0X"u$eB-ZyM~<]x<@u^+4چ/hrL\3C] a cxrٌs}1E=M *T C-b=ΆW$Qv"#h WuVfH^*0b"@Nh}%@WGcPZғ тV_toڶP_:d lI#z]:臅as49Oۤ.͊ol5zs؇Ɇ|GR%LyG{!xN 6rXt]Ck|:X$k㟐u"<:LAP1^mXZH1@/j=ę٣ܣy uhJ?PSg}SvLV ;(ih"^nAm)f cJ6z[b\őijh43Obl9:JFC7ʳz<`e!*J!"ʝ]"Mbk>ƾ3Dၡ0n/i`J1PﴘG#j_VL>V&':o~BE0zŘ;@Yu< 6px0JmP`?HkGVk.ZNbQp-Nfk?b9x^RE$ڸn˷ f;JwolV ft ;l@ch~'3!m'ґUX x[|2EYWKZ;'LA8,ms1;tHBj銉ClJ#O$0ټsb=\ z}8yp{j j*u*jw&tފ@B@G#(ǍSuT gt;<'VTkBQ5#+V?01_PS2dۓힲ\bJSgoꡌn՘Rz܉Tؑv,it.n% IVЮڏD<%`F݊^cjA$NIUlٴrdb3R Jyq(ϊ'$]Hc[u991#;r{׷ˌgmS4PM} gul*MٳkgP=0M&tD>xgaM3{>4J΋qtC@fR@;}7W<Tc` (M5m]dsF}ZT8jެxR\}Sa-j,qm8oձb5ݕgG:WH:َhNl.s'` ::.zm+ѱ0QFY}U6ѯ@?vtRAPN*N~MKL]0X#Oޒ_s I#臒-ՏU٠^MJ gfiPEuj,5udA#S7D;y/)=3i1 jwAEkWCI*T/yy6LvSwrwN8-n/!ZgO,RdwNWusEԲhοPi?NKY|U \Ou?}P' `)ŭ GfR}R.(ܧDZ,5~?V[u=UFG(hF~6&S4`*/,&ۃ?Л·^4 j4ՏE<|.u?pEZ3<vUHtXN?8'PCF,P/kنCzk-^K7Jz-w$!dhOFdusvc<kџhj5k_}%b6Ϲ+t2vHl5@FE) >CVaMٟ[gn Tn)6Y@G䞑Ӡ'k1bqg7J@Y@gT /hqtd'=6/"\yԩrӫ6ßŇɌzKzgH$!17XeaKaZX.Ss]Dwr ^t~rՃրcu?(_3Ҋ|,]\|t-  ¯; wxI/u/ W%+ MIENDB`rockdodger-0.9.2/data/images/shieldpowerup.03.png0000644000175000001440000000117712257577553021460 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-s-u|HbVaZyWFowgvl?49)EPAHSUeU*U=r9    $$XXtv VY{*   !?     &%+ :@?EDIFK_cei  UЪ{Ӫ~c~㙣   KVK pHYs  @AtIME  'KXIDATc%(Uc Qj\PstP*# PZ"PT2Qx2*͆* *!`*94nhVYIENDB`rockdodger-0.9.2/data/images/laserpowerup.10.png0000644000175000001440000000067112257577553021312 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME 0IDATU0 FwCvsYg1XAQ ñѳݭ;GOD4 wzCJ$n_ǡ=p 3;6WV[VxC˪vҪ}~T5p}bKGDH pHYs  @AtIME 68IDATU ESU [ʴ?ی!CȅB'(űѳ jV=0Qn{~1[+S{;ݖk'W@톜oF_[mYyb lh2`b{j V0l@ A[PHDպhr/fX 3/-Ô^"ጓ/ jioIENDB`rockdodger-0.9.2/data/images/shieldpowerup.00.png0000644000175000001440000000142212257577553021446 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-s-u|HbVaZyWFowgvl?49)EPAHSUeU*U=r9    $$XXtv VY{*   !?     &%+ :@?EDIFK_cei  UЪ{Ӫ~c~㙣   KVKbKGDH pHYs  @AtIME  lIDATc% @ot*L(.JQQ"PWS. & b(ͭhɖqQ e7T EFK8V3(%6D)(169 01()9b2s2"#c=,#ll#<՜eMU@VJ 30:fh!# mbq*o.pikjx:}} JR@_IENDB`rockdodger-0.9.2/data/images/laserpowerup.1E.png0000644000175000001440000000067212257577553021340 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME 6#BG]IDATU0 FwCvs@E,"&zQ ñѳݽDO3D4 w OL}/h']J/7 X]/,4PB2T4 AY3Q9fB-m˒e` 9qR15,IENDB`rockdodger-0.9.2/data/images/bb-dropping.00.xpm0000644000175000001440000000023112257577553020774 0ustar krawczykusers/* XPM */ static char * bb_dropping_00_xpm[] = { "4 4 4 1", " c #000010", ". c #1122EF", "+ c #334AFF", "@ c #CC62FF", " .. ", ".+@.", ".++.", " .. "}; rockdodger-0.9.2/data/images/greeblie5.bmp0000777000175000001440000000000012257577553022530 2greeblie1.bmpustar krawczykusersrockdodger-0.9.2/data/images/shieldpowerup.04.png0000777000175000001440000000000012257577553025270 2shieldpowerup.02.pngustar krawczykusersrockdodger-0.9.2/data/images/laserpowerup.18.png0000644000175000001440000000067612257577553021327 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~T bKGDH pHYs  @AtIME 40AdIDAT= DSxk*S+V=N.&1j`,V|^Ozwy#=3=OC+De ġ=eiC1Qـ͵1x`ŀ*B^*Te%IE`ҺhoVXV8M/K; Ȓ{}OgIENDB`rockdodger-0.9.2/data/images/bb-dropping.05.xpm0000644000175000001440000000022612257577553021005 0ustar krawczykusers/* XPM */ static char * bb_dropping_05_xpm[] = { "4 4 4 1", " c None", ". c #000010", "+ c #1122EF", "@ c #334AFF", ".++.", "+@@+", "+@@+", ".++."}; rockdodger-0.9.2/data/images/shieldpowerup.06.png0000777000175000001440000000000012257577553025270 2shieldpowerup.00.pngustar krawczykusersrockdodger-0.9.2/data/images/blubat.03.xpm0000644000175000001440000000236712257577553020061 0ustar krawczykusers/* XPM */ static char * blubat_03_xpm[] = { "32 20 33 1", " c None", ". c #000035", "+ c #00002A", "@ c #000057", "# c #0000B3", "$ c #000088", "% c #000040", "& c #000009", "* c #00006F", "= c #0000D6", "- c #0000BE", "; c #0000FF", "> c #000078", ", c #000053", "' c #000046", ") c #0000C4", "! c #000082", "~ c #000038", "{ c #0000BA", "] c #0000F9", "^ c #0000FC", "/ c #0000BC", "( c #000036", "_ c #00003C", ": c #0000B8", "< c #0000F3", "[ c #00003A", "} c #000064", "| c #0000FD", "1 c #0000FE", "2 c #0000FA", "3 c #FF0064", "4 c #000016", " ", " ", " .+ +. ", " @#$%& &%$#@ ", " *=-;;>, ,>;;-=* ", " ');-;-;;;!~ ~!;;;-;-;)' ", " {];-;;-^^;; ;;^^-;;-;]{ ", " ;;;-;;-]/(_:;<- [/]-;;-;;; ", " ;; ;;-} |11112 }-;; ;; ", " ;; 131131 ;; ", " ;; 11111| ;; ", " ;;; 11441| ;;; ", " |||| ", " ", " ", " ", " ", " ", " ", " "}; rockdodger-0.9.2/data/images/mood_item.01.png0000644000175000001440000001727312257577553020544 0ustar krawczykusersPNG  IHDRH#sRGBPLTE 1=* XfI #," >@229k.`8_)XFCQQN9Y=aU=pYTOjeOaiKpGv^SrXypk}mm‰vĆklǧaȰ~ pHYs  tIME  IDATx wز3l m޻qH'wdH筚N:d>9W/_֟_xy^Zߓqyw}zv dU].^@Krly =X 4[˸JydjjxJzN߁5 UI J͚͖e|^$Ғlu쏱r~ c-j|VwX3lW*~y:t%0W&nWB7;Vz \h6M߿&۸[&,-zofdhT lj[T`)Yg] m0C1Ox0%|v xT)+d"}Q-c? +R: &r<1s@NA8Ʒ4Qo(IgngX=9Q/Jl`- #: `8m~+,8iMcnpuj?_ 8Wz=2UgFvÇ`AVa-ަ!IȊ]>>Dac !@wR\\4I#0d=u *Y7Џ"nM|$$IabX F`J Xigoh;OC{~)b^µN mw)#)u@+ US~\fI`y|JY4@al֛5awM4cvxPbr +QAKQ4iQA? 9 N1S#.ovw=V"Z" !GX $*sS5 2Oj0(#i(9v7_l̠fYVgfLZ&u&+^ӊnX芸Djpx^DdmXH^r/@;'L/ZJM*u T<SSA+ATjI -x[HYe#iE[8E Osyzmd D]Bӛ%59OV!ʎ1+Z,w_bWg]IY٩b@C `4h BD+Ny)f 6qrLHt#P›X+ &"#t_@xP^ʼr9䁊@-J~EIUjuO߬{CKųTF`TAalPugT \4~Z1 8YJ笢d K/vsHP.-(`ɵ|'t^jh U"`*T˨Jkq|<>vOOnn9\ 0#{GX/X>\D+:=UN ڕZ`].WáSv Y7Vs>ûc} V V3UBl U+5S_H,h 0qMfC' kl[VWf27HXiڵ/e)ãCpɻCEX|$6f{9:V} ^e`ɖո*;@*BXR̀Hq+5CiHkJNg~fW?,PXNZpmcg% kqs0JYHp̹c7е}r*D{; oXsPWXt8xśЖ Lc$$w˔5!eſ|4-넿a0U ,9 R:^YjcY %,fZr- UKb?fGu뭦d) @-[q X=}ZHѻ3|se?-N!j*p+ւlt:hRR~+X䮘6֪Z ~0 Jb}wj&[N7d_mxZ2oEPۢ7"VS-HvV̬7'I2gr0?`(Uv^{ùV-@1@mAӧJb`EtP Tԋ={3S͕Ƌ?W:>1cP{\y׬^d SZ8j=btJC˫8 _LF\ ج-y0` hAwc]q T3Ӎ>DJX!S"`dkTe\̎Cah $Ω]]^JCFd-S:\쨬8K_ "+Y)sYB|Ū0kHZ& vz!F,WV|]%qH{O{YQYUҫ%a}\B.g^m=j{Xٳbߟnk)@K}]]tiw;8 QUlRVºzݖ{ַ.вeg+dcu3 :D1ʡj'07־dkZC6N YŐVW{;4[\kmMZY0<2X%gYbZkXaUZvra:'R|=lKrv X^' ({8VHclbco/2l0ӹX c}nM7^"kua@|=>xYCb2t= r8~mKUw:P;~kud&Ku݋ h< KM C/?\` ~g+2j{л@&Pig@qgMnq+iNQe=hs-Q^BՇn?ܶȰXwLذm1BPq5I;jlmuTo+cEGȺ=i2ym:eaȯww[CjaȻ-!*McS7:373XA|.>{tVzԒw{JvI`jaΚPVBFuKMkٮe}8񷬙̱橰Yև[ޒ2x_jDPв!ێbfl}Vܥ+@7ma!J%lX5CMY{+TpB=$w;UaRBhlÚcв60s7kpUloXm{ȘЇ_rn@EjЖsocd2w]~5Tr:{dU8smHq_߻JRsaֻO֌!..6z,$;%f%y5dqA+2l*N]˴^uYWȵh/ԦK`Tu0丛3)&P hgͽQؑ-cmA8X<"ҕUYBTXkѴ!lDP#=,B:mY -)+Zd+-r1tq_hDžD2e 1Vw["XM BmtikQ5] ,p!Ka]- \VjӶZ7eK) /P`j +Xlw:J,:b;l)؀FS#tڸ{O6cq֫VTĪ@pL{u':W̊ #d-d99\<~|Uؘ[[}FK\͹Ծ`͠ej KuΝcJYp` V6"-sH\\wiš-im*-s#F%Zh vʢU ,YYqu&kgzJزqWS=GV f0W*b61yW(Ybmzdr[μ ؀dxVrwX%.+s-th3C- &/[l1|v|ͭžk`+,XWe2ʞ~)ǺklTM(V'u$s-Sdmi,Qt>\M4^e XHCrYqăb~ᖽtSxqz@/)kb!a;}لM-(a{Kh^<:[Ѫ^lSWh#fZXEC]|Z'&6d6~8J!95H%HaMWY|W^OGkmD68}9w: jcG9]- _\ _ps^{O Z؝tM8xpip/N:Ruy8W¡g<;'Қb(BEbpv<ѹaM!츰?&RF@:b QܫzaK2Vb[P5F\hqCUW&`ȃ?-uěKM7A1ݳf},9suYZ-=\&+^&BEHl总#Dݮ>#TZܛeyw.3_+[<bk.ڂU4W,_!6$ V~ ,FSs΅7 m:U887VbvbRXC't@XRAL  s/m ȸ.Xw B5zCN7:У@_V/VZjJP&`fŊC4k=*>0*88u,G!1g=|u> WQ"ITk) |SfԌ1sb} L,Hz@S񩃸@3- .Jx5uK2*vQxЋXXx$7?`>CO+Zp +:K\6x`Sݏ^Y=a5p3to# 'r;|euEgKO;ɽHYxnOXN`# KshшI _٧Ǫ#Pdrώfigc߲~iɭpΨ=du{A:k,@- rEu:|Ch4<|L2v{5F|]:R(_yQ2~І:YPl~A)ܹ+U 0f&[졧:„u-S-XL_Y_"NqHbP1xX<'C(c9.8}į\}RgWɘa-Gz.H`zf8/ 'S(s[@{d-#2'IO!f3boѿ.xeVN>#=<(?r)|r~2uuql'F5yH3(~Ug<+<ܥ0TC>_ixWC:^&$/}/_ֿY~J3kar_}l_s^k\s|+&6#oAWsX|voZT=" IENDB`rockdodger-0.9.2/data/images/laserpowerup.11.png0000644000175000001440000000067012257577553021312 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME 0ǼIDATU ES-qk]g!gɅF}֛=Xo }J$nq }k-+p.7Mܬ0ZDs1lB%-CAV ˧a%=6?Li\] &3NnLp_1GIENDB`rockdodger-0.9.2/data/images/dodgers.png0000644000175000001440000000427012257577553017771 0ustar krawczykusersPNG  IHDRaMPLTEUq8Ҁ6bKGDH pHYs  d_tIMEaM IDATxZSSI/x, 61`E7ܲhjko"z˂^5Vstgw U>(LO==(\2e._U]keҬiQv+! 4g١[h&O Drʠ;涖3o3-zvGjU66iG0ҖIq e!C= Zv` !ƏM,/-F:qňo?0^Ƨ8T}N{P,jCn{7=ۤh'Vh@3Vi,tr9ba9l?Ɩ,}O˸lqf)n:.kҮ3`Ϗ([7BV?!{838ȲԄ9S$=Pm:w KtSi r,i#w8?(S}7]ouAŸE%g/[iZ[L@NNqW1D𪜤VN,HbVJBKך=אG&f:sPwiGi;V8-ٖ; k6XA0(p|bx@mz|^oIƠȋ>#7˴wa0{3>.w E8+H,HLnxKs#Ŕ%w}A֖< 3:-8 ̋H3h/#F+QǬl34̪Tɺ#xAU#r~wʷ  hfYѝ'?KjeD.*x(m- &R;C!wjb@Q U xAxLFMIwW5bKb՚;aH0}ކNIs@9mN4+k 3aӈV]BX8| N B_k@~ع'ˣR$ 5ć!d5 -8Dl+KrefE%SpXyTXrv->.\}B[준El{f7r8fׁ20 |4 f Y"vzHգ⶚Sڸ1톓EE%i̠x3 f ݠ\ѥ3MIoϬq$פI*a 3ʍUҙ`h@gyLaU$UQABG AvD}jؖ?Y܃Qy"ycDL^InaP2W[o*xY+{/ aR\cwK>%3-2.""O&tc h;z쒆rӾi0\$^ @~X *]hUU;1\f?w(ɼ_$*S`:[LH'_*a* .ѡ8qxZ4'x[ ]Ƅ2Q|c8%Mdl 2) ,bP8>S jgL'ĨVgU@ǚEX#DVYmy&0޺S٩1'[ޓ0O+ܲw9k#lF.ð% %C)lIr=gx}~N3bPC˪vҪ}~T5p}bKGDH pHYs  @AtIME . IDATE@ FSdZ9ԼIrld~WƨFR 쾂SQ"۞7,}dn}eQՖF&&5fJ^"BJF2(Ka1Jl%~'3N*_84\{.IENDB`rockdodger-0.9.2/data/images/laserpowerup.07.png0000644000175000001440000000067312257577553021322 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~T bKGDH pHYs  @AtIME -")sQIDAT=0 EQEֺ:g ;G(!o\|Q:Z} 1*[]AV Vic!oiys"S86 ab[yu'΢ܘVc}IENDB`rockdodger-0.9.2/data/images/mood_item.03.png0000644000175000001440000002610312257577553020536 0ustar krawczykusersPNG  IHDRKsRGBPLTE $* &3%($.&%4&A/"86.ID4."?439AH0V4&R;,X;'H@/7G0^?&c>.g?)bB#l?&JLQVNIxG-~E0bKHuH3F+sK=iN?K1L+P3OCj\XVAS.T3U9[N[CV@WNZ=bifEjro[m-}{ysZ|m}ģ pHYs  tIME 8 oqx IDATx Cȶqc " BH {zghc3Zr:UV;888Վ{@jcy^-WWˇ-/_f_iN)aN·J)7rѷ>σ6a7ߞ,̱/Ǔɸ?ρo?6Qq }_n?mqlTp79f `=!uDn۷ mb9!h`7. Z.. 4`u 'U9FI3f VHEKj E?rn &5}B.h l[pG^it>!ڧx/=a dNm%O{H:=lT1DPdZQ8Gdx}}$otڍf;ێ;=@<M |1H]yN^\$KuMwz|ƒj0$ H0/-dVSZ3<ɥ' I~o9=F:$描9Hmakjv RTm>NĘ \_Я}Չ^g<1O&ԁfal@=2,HeެG*I>C\_)Hw0zlNq>>BQ]BK6ϞbA+ G5 U_ǫ: ]Jj)kaZuB;@L`6?4_{0 S4o $䠦æzKqH`3%(p œGٷgḌua4 IzSr23^z ⏦xC>c_wsɧ@k)|L(9=ի<,+VVZ9sd0 i h P)51y^$sP #ȉf+dTȴ8B36c1@O@gbCɣ  &`) m >!)f~Tp֝o$ Gޥj!{h>U3 9=dRI+zub2rN Js|+JI~+qݼGKc9m>op ݟIqPgic8 %9aY֞8  dX$^l{.G]8DҌW@z6tLLt2HŅ"R)i꾦Axr ビ:W0j GPpQáXeoN6.3mc.LsjhZqZ= ]hNɈEO/AGUKCl#Cq~*}漎P4ԌXV&+hW{:]DW?]M蹫rX0}`CbͽGA~N8:2ȐÄ 28i4kP\O`eaH " /gRGiZjWW4!7@0i٨GX4yz c sAہ8DR!L!U&x!I h#< Cx/MŻZ5iN8Gj=ƒۮW uGpH؀ \l>~xȱlA:Ⰺ ^ϵu b'=f4 6 p 7L8|JfHFz-ͧDzaJy,Lnw}0KR _lwq ho8ٖSeGuc:^[LAL2 65%H`T@fG8y[&8tf ~7JepjP˲/U.|KalH f@~.MUXo;luپb=:riU 'u9rL}@H AQkqQ#zW!sb ߲8HH$Ov( %uEq{-Pi7#!rVŮjGH xa=@9;O|xJqqI#pf#΍x>W $"d|3CuYM sٞpN͈u‘݀@G 9"#" ukr3wK"<`hJ+y @(e!Yf 7pOH@9\BHSQh@O4d7_ GTۍbI\ͫF<qHW@ڪX{Ɋ( }' a5@F"B!.. oADT;ٛRu6^V׼|{J4gE.H^n@( V25a7<"6(FuɰD<b2F]9.+q\)2b8.RD+yD1$Pdy^9 1TaEE-.4vަﳚD e'>eYa ;VR+$'Ѱb*D/t鱓,0C@"j y[W vyIe+G!b$Hɉ ; iB]`/-utwֵ7a+FD2)Ă@DTiN l5I{)ݦk a "aAo2U,cZQ03I]xf=/ Va!"pYc#8%B 퉐f`pDS$I ~e|h#u5j<&Hu T8caXUP竮߾لV+?Cj~1@VZ9H$aY\Z?n_AD,*vZ[4XH,X.C_0-Uw##U@j"c\'sÞ$7S+q.^ʂH5 7ϠPqK/@`I"02AN q 䁋}X" Ɨ%jK2CWj$: j$+iD.71W6ww|{+˄@@3"9 %YH2}V >{ x]q |G98ݔU+QWc /[^\# =G6p$_ [r %']K# p9@ߍzdcsrqӂ#JVv`IuД80rEѡ+O240-|B>,v[m޵( Ջ}TTZQ@W#Ij]P0ߍ=Ql|8tDeiF"I8Ia47w//O@p`悈8 |iJe<N;⠖I3azz "ڎEȪIFf|”#N3޳d_J4>ݜW3Wh}ryo9dsw jE̸k2M He>4z\`D숳B@&z A;7A&Ȭ(~?3 IB&HE$SЭmJbI!BȒ;J 8 y}rZ{ s˱A3p\LofLgᜡ,EIX<-WHG{$2 "HR3c+P&cd^tVJ88S\0t.2BEiTn[Ighw@6`?H1CD1XoFNsggY\Zѡ3,=ZJ 8T A?//`u~o HR*@6Rסgғȡ Tv_8ddrkRA<7Ap-]AvUˆCm-.zC,qQGרh 'Sij̅Gј#pFNH`ÍPB i*O@& $" H5M =#u0 V v#&D^A"$|Mm Ȳ4/? Zbk5+GP1l6Ni9Dp΃'G"JHy FEy% %1.JDY”'AB nFXަDlwl HݻV"4kE]1bl}@d8jsygAn-+FF"y vvZ +_0X8<BDX)aW[{D ˰x^;Q1U^ * ղ4$ bER4r!Ȇ=pbyֵ-Ƃe ^'<-z$"U=^aF,0I1 {3%l8a~|jI2Hu H+ ױ0q,.f:~G`r _86?߁S5r|^??-H *{:Hb?kVC A,ȭM+HX#{e=9ȁ8T3L jWa\ΧS*Qqڋ+*UN0[D+UG~I"ECs6GQt+N=\c85عͮt`!n9q+6K]&scRSQ GX.̌ @k;"l`͛M0by1B9}ZɁI`e > &O`%ק ݧd@K8\dFټ0!Hq XgA"q: N$ni%'V.l#J [:5N]lg$ KhC|@q=ƥrIF)20GZHò2kH3=Pv"n.n rWkwao\V7 0iI. #ّMx}VBHbAo"Rs7x;R>iiLn4%BqDAG2l,)b}13+ X2 9h9`u@DpI,L$.%Z?\\%JdG%?1#m 7c:gb),[{E(.D+*γa}*g |j䒟-Z|33Qe"6i`y:dIRU2&e7'=p6܇%i;р755&>U;2.KR ǮĬWr\Vс]QH,nx/H^$ޢn6,Lf6`ڛC݋5ݜ 2jvY1iZ$,fw&P%L1cIdm%Á$yX;x{>NՈ+xՙ/HRJdZstu-d% k;5ܜ82iІf=^XLn &yZTz!ncDACr@EGthWNGCuM;4D|p*cFV(inngͨp9 ոyY6dY(:;D ~ph˦t0mC'#>5)i-LYjy&QGUKe!2ʆApc!tV$(Tv@ָ9pqtlFvFAdB,pU/Asg`22Hd6"wr&IA^]G?BXVGiiӰc|X{X!逍t$(87SaL +cNjX0O]G;m%9*-䆃 pew17U-DvyzgUB@X 9"y&2@H$h4IM`D"Vlb6)$,lL;Dfo3?s PP-PFq@QUnYT^ U/lw6g;v0YyXx9G(;Du;R>˼^\哶|Lh0iHf H qaXef6)Ӈ=7΋xku&K֥yWOLź\`YECgLPٯO49)+]rnGo8>#'lq{. yOetKiG)~ ;cJ:!oYP Ѝ6M/㞳0}X3Ta .0%'Λd{cfFv&9?>3!. _xdo0BsжIۡ$+]q*wyƱw ^qE{Px#ЊP_BD|FOJB t3fT5z% ̆2~OrD FNo`)U0 \_"ܧQh/b@iN|`5K]UvPahQѮ?="p]MQfd7GوG=ۣ:>g$ Ss<)"^{cNO"H=7rk^M7O6@:N_O==C<52$Ri2c\*6'٘Sp)2q}p0<:v3:jkoi6|qfN[p v[\GGws:<:˵jc~Ux'֬-yeh?w:I7iMz&m|3*ٻG;noNeN'ސѥZpqjN' r FuN@OCmA@+4Nާ ۻMqW`h0>׍!ўN~&M:P8hq Ab1/SG4kΌq^&>M `S36fqRNHpԚ 7#Qt|\8M]!ih'hҮ7QK!9DSζDO[H> oIicGJ@QDi:@"!&mÐP=i <ᦿ6k]xCt^gtJ r\}LrS2 fsg.@|!:Y۔S[fp~j k*V Mk2NEOs|Ć F[j]RIECZiSFS #hmzf =Ӟ~OtInlNmn0eLj4@'euۓoA -Uli4K䶌!q'}Oca>Q% ď~:ѱnǞ%VO﷈{g~ɀ7Y>z ׯtڎ0Dt2A߶1)i?I9$iKD9*Sׅ֧3#[+ s~*BK,*[r)vֹmLJ4jYyQ->dyyσyajj7.!k8 ~ R;>kϵZw R੩{:k܎. /ȿ O@|F`gIENDB`rockdodger-0.9.2/data/images/laserpowerup.16.png0000644000175000001440000000067212257577553021321 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME 3;>Z<IDAT= ESRĭuejUÜIBQZcl6q&Ag,,DT=܆ecd C~aYu|&zgj ZAMtlw fE(9!`*YI2u]!q ~JXh_4.yqDr1˥u[IENDB`rockdodger-0.9.2/data/images/bb-dropping.03.xpm0000644000175000001440000000024512257577553021004 0ustar krawczykusers/* XPM */ static char * bb_dropping_03_xpm[] = { "4 4 5 1", " c None", ". c #000010", "+ c #1122EF", "@ c #334AFF", "# c #CC62FF", ".++.", "+@@+", "+#@+", ".++."}; rockdodger-0.9.2/data/images/laserpowerup.15.png0000644000175000001440000000067312257577553021321 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TXbKGDH pHYs  @AtIME 3&JXIDATM ESU [tԪy` In Qƨ}U~&A'Yhn*H }P.їV[V] X_ /4P!` *)IZ86M. aﱉaNSt'ؒ>S:y1kۿ_:kIENDB`rockdodger-0.9.2/data/images/laserpowerup.01.png0000644000175000001440000000067212257577553021313 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME +IDATU0 FwCvs@E,"&zen0},%zqd'QmxbkV^A.^]J/"ܩK}1Qɀյ*1BB%+l!CJ> AY3\ ~c&mi_4.y-r+W 04wIENDB`rockdodger-0.9.2/data/images/laserpowerup.png0000644000175000001440000000130312257577553021064 0ustar krawczykusersPNG  IHDRabKGDAT pHYs  @AtIME CPIDATxuKUQܫ]7M RH 4@4Aa4,AH@ H^=sjp|`~,>S VysYeڒ\苖L6B6CyG4`[d,M4@=HZVx BW>;˝/-͉uHv'=Iks&Z2w[c>(3VH PҤ^ʃ1JQG ?eY7KI&.M|2I?Զqi "" `wL aDj3;_3aT?cIQ&bu&"R?@ˆ8~GYbEig@tۅ=x0nAZB!giiS.]u g N˂KktaQD)CT@\Bf&>.֠ sIyk/cz?;^ĨW7*rBO:BZ\kF̄=<:&eo;얠Ԫ QG In)3U=UDZ#A/ <8*U\rV.Fe#5IENDB`rockdodger-0.9.2/data/images/laserpowerup.12.png0000644000175000001440000000067212257577553021315 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+  YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~T5p}bKGDH pHYs  @AtIME 0'u$IDATU0 E] d vBX-$CBFñѳ 6=MNY( OLCJ܌CP>їV[V} X_ /4PB TRr"j]`nuX caN2O%7qb ,imOIENDB`rockdodger-0.9.2/data/images/laserpowerup.14.png0000644000175000001440000000067412257577553021321 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~T}bKGDH pHYs  @AtIME 1(IDATU0QԐ^3Skq0 .kͻx )_r=o50scqN K,w욭T^WܰNrĀ?Jw `S}CE0&`4BT FHz%FHKo|# h2mDO^'s dqIENDB`rockdodger-0.9.2/data/images/laserpowerup.1B.png0000644000175000001440000000067212257577553021335 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~Tj.bKGDH pHYs  @AtIME 5*:IDATM0 E T}$g܈-\2 1~ݽG 3dmDnܲ1 p=-!ShFOS;RС65xgXe _c# id`4Pq>\UBTXin~e,9b JjIENDB`rockdodger-0.9.2/data/images/ship.06.png0000644000175000001440000000261212257577553017527 0ustar krawczykusersPNG  IHDR, sRGB pHYs 4)$tIME50IDATHǭKEƿUuL:.ZE@@ȍDM'cbDQ#l`If*J&H/)UJ@ ޝH_C/%Cov=sֆ[y+M ]Zv GFh-9U袸ټ֙ WYnvᛑd&5wP0+$]XM%ɺ> L$ cJNDk2Y1BͼV[ЏV |Fa"i2JQDVC@a;[LNA6lY25Y5UY [/[FFÿ]V=wt!Z/8I㉞.mmw(r6w0a͕+;DkPA[BDw3n4'YS qvO+8ȬUZbbJ&e^5DDpҀ0]αs}9&Jh6"A<EZ%m.kV[Z5r&b۠#wn8^MG$X'VmzTs h" n{G9=u봳􁠺y:{.˙y)%"HQdor?yƍjn`DZ$cR)g@,y9}?=Z`߾C:NEEo)]-b<62r%U0x`zz\~EXə-sBDZW,Kg̃DH_,npEiGk2-(uVylo3P.ܼy6M5QhL Xe7d^X• z^}+̲ IENDB`rockdodger-0.9.2/data/images/rock.png0000644000175000001440000000300112257577553017267 0ustar krawczykusersPNG  IHDR:[HgAMA aPLTEqU8 T4bKGDH pHYs  ~tIME *4 YIDATxXKsE^ëd^(:.nfجnl(#` 7W!?gwό >QJ;=_=3=ot[AfLH?h'KA/g-x=iKhogdk EgQX#&||3K.O7D]3_nP,l];z0{Fe_;.qÜ <5=6kN'ݨC&&VI= N-5Gylȕ'r@'Ϟ`@vpn,̰#琊#tjb092*sM=b#ytTT 38 t/{0T( B9~lb%8WŽ!3c EQE6ٻ3H#Zx;@%Bv)"yMf%O|B^t0-3鏌;EÔ ON ]1Zb2bvZkFcdX)8IkOF#\Tx"ÀVGhxA+)o5daݙCOB mBƮ6H{-pC;Ѓ\1`n.t_eF6دG k2@,U."}dEV@<&V?eеCR iL4)[&й{籈 \s w w8{mX $/VvIS}'}{3}UjV􆺂C\OdX>8UQTMK3,eyOݹc7o2}bIG&ʣʨH!L[=Wߪ`:@dd|%{ybC{ 3bjO\:4;{+MznJ۱ CeW$qDŵ Y:'_'GnBvc?`nmk!o#u1`[j@n߁-&xlFh#O !Gき˯ġC_˓= bsS4`;JA]omu%y!;tܿ72຅"elLKT_)&ڐ?o"Rѷ~ZOo"m+kfܵ?m񽻷7i@QIENDB`rockdodger-0.9.2/data/images/laserpowerup.04.png0000644000175000001440000000067312257577553021317 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~Tj.bKGDH pHYs  @AtIME ,dTIDATM ESZM@Z׎V q< r/sfAYHBJA7zL+uC˪vҪ}~TqbKGDH pHYs  @AtIME -;MIDAT= ESU [tZC K5`,6zvj<$#s߰!o\:y:j ܹc`@[]a𥂅fD$AY ?M. a߱cI2O%81 ?cN[IENDB`rockdodger-0.9.2/data/images/greeblie3.bmp0000644000175000001440000000146612257577553020201 0ustar krawczykusersBM66(  g07*C7\9uEC _ j1 `$  :Q T `9Q$X2@ANEMCN=K_/ ] `x87 ^DNFMEM?O>P=P1TY FCN#Y ` ` ` ` ` TF!e/ ` ` ` ` ` ` ` ` ` ODw>>>/w>>>Eڅg ]"""> i i i> i i i>Eڅ _000 i i i i i i i i ix W''' i i i i i i i i ixߤT' ccc i i iq㢱 i i>bN '''2VB(URAas~r~w<<< rockdodger-0.9.2/data/images/laserpowerup.02.png0000644000175000001440000000067212257577553021314 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME ++sIDATU ES-qk]g!g&p/75 >F+h\oit|KD'$ }r}%P.;6V[V]o ؜_+h6$B*T8d<\V %l S匓ӯ_il$IENDB`rockdodger-0.9.2/data/images/laserpowerup.19.png0000644000175000001440000000067312257577553021325 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME 5bcIDAT= ESU [tϴU iB ñѳ v=͂.8>(>1 [+]ȥ'N]//?16 40_*Xh6d -%q"j]iroVX+&%ͫ c #0000E5", ", c #0000BC", "' c #00008E", ") c #0000AB", "! c #0000D9", "~ c #00008D", "{ c #00001C", "] c #00006C", "^ c #0000FD", "/ c #0000B7", "( c #0000B9", "_ c #00009D", ": c #0000E3", "< c #00001E", "[ c #0000D5", "} c #000099", "| c #0000FE", "1 c #0000C4", "2 c #0000EB", "3 c #000002", "4 c #00008F", "5 c #00004C", "6 c #000031", "7 c #0000F0", "8 c #0000CD", "9 c #000030", "0 c #000050", "a c #000058", "b c #00009A", "c c #00000D", "d c #000091", "e c #0000D6", "f c #000084", "g c #00001A", "h c #0000B5", "i c #0000F2", "j c #00002D", "k c #0000BB", "l c #000021", "m c #00006D", "n c #00005A", "o c #000018", "p c #0000FA", "q c #00007A", "r c #000036", "s c #FF0064", "t c #000016", " ", " ", " ", " .+@ @+ ", " #$%&*=-; ;-=*&%$# ", " >&,')$!~{ {~!$)',&> ", " ]&^/(&&>_&: :&_>&&(/^&] ", " <%&[}&|^12|&' 3 '&|21^|&}[&% ", " &|4562&4*&17890%71&*4&2654|& ", " a&&bc de&f gh|i8j f&ed cb&&a ", " @k lmno ^||||p nml k@ ", " qr |s||s| rq ", " , |||||^ , ", " ||tt|^ ", " ^^^^ ", " ", " ", " ", " ", " "}; rockdodger-0.9.2/data/images/laserpowerup.00.png0000644000175000001440000000067212257577553021312 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~P}cibKGDH pHYs  @AtIME *{IDATU0 FwCvs@E,"&zQ ñѳݽDO3D4 w OL}/h']J/Sc`@0V%_(Xh6d -dXID:ñi_ 9~ƶ/KVy-pI  <"IENDB`rockdodger-0.9.2/data/images/bb-dropping.04.xpm0000644000175000001440000000024512257577553021005 0ustar krawczykusers/* XPM */ static char * bb_dropping_04_xpm[] = { "4 4 5 1", " c None", ". c #000010", "+ c #1122EF", "@ c #334AFF", "# c #EEEEF8", " .. ", "+#@+", "+@#+", " ++ "}; rockdodger-0.9.2/data/images/greeblie0.bmp0000644000175000001440000000146612257577553020176 0ustar krawczykusersBM66(  g07*C7\9uEC _ j1 `$  :Q T `9Q$X2@ANEMCN=K_/ ] `x87 ^DNFMEM?O>P=P1TY FCN#Y ` ` ` ` ` TF!e/ ` ` ` ` ` ` ` ` ` ODwو/wEڅxxEڅg ]"""ñEڅ _000{{{x W'''xߤT' cccq㢱>bN '''2VB(URAas~r~w<<< rockdodger-0.9.2/data/images/laserpowerup.0E.png0000644000175000001440000000067212257577553021337 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~T3<bKGDH pHYs  @AtIME /+bfwIDATUY0 ] dq`'-k%$#Fosf<$! ܬ!00s==oNg~CGWlSbv<\0Eq,c L,;0!]%F쭭a1J-act[ /-hIENDB`rockdodger-0.9.2/data/images/laserpowerup.06.png0000644000175000001440000000067312257577553021321 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME -bwhIDAT=0 EhZ\?硓i\Hʘ*>ƾw?AvwY GV{"k'ckى8t WN:r~`}eec`@K[c𕂅fJV"BJ$AY &B(qh_4.['79Io>IENDB`rockdodger-0.9.2/data/images/laserpowerup.1F.png0000644000175000001440000000067112257577553021340 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME 616IDATU0 E] de'ղu!en0}Wf?.$#=nCZ!7.<ur~b}ie1Qɀյ`𥂙n[PB T" M ~BX{l5~ӴlI gTLp_-YIENDB`rockdodger-0.9.2/data/images/game.png0000644000175000001440000000601712257577553017254 0ustar krawczykusersPNG  IHDR [GgAMA abKGDC pHYs  ~tIME  93 IDATx]kv* e݇{ב>}$]G}p$N=@`;3! `0gk '@`a|b00>1h 4O ' @*=nwnI& }բ%];p}d8q҉]/`p8?芓TNգk,;A#=@AĞ}0ѧ<p+cE ^>ΰLW=%/ N0;j< &en޳b2u҉WwF<(ui]>IJ*SkONGUDp܇DMbVR#Jyͮ-ÅʒЂLXi!Z3fraf EFҿ]]˗ e֥5*Ļ}k"j#]ܚI٥jExPcǙQ7vYYsLGqgYkTR$I.n*ўG7*)T> X۪*iw_tDI!LSRYO.Se%ɫL/ D>!~0BaHlIZD$ ;i,e Z5-js(xvI۸-Np]1+ /kz:!mS%'vKҚ?W{![rGPLꑌq%VJ2ѩ"6ݏȐ[zZo<")'/yq!)~~hw %̳ {"L.3|^z_hpF'D[s(0@$e A"g@"&rٍ'Udoa D]n"U?4:i?&UƥXb|xZ)E\(w܀e:nַ?8IXԚ ܃{F۱:ֳ߼Ppw:>e:ƜW8n %o~喬(,Ȕ c VPGtk̥!5)[F~Gc($6\ez&/5Ƴ12,Fh}iI\bT3PZ|k֘.d[)^?S )1AƊf9+4"m+/UlW jQQqЊ{Ё Lr }B "'\'ny[*4W+oLI1-84=l"JQ$BJ'YO""&K> ;w?<ܓdpxQ>SܞyЪ\RK6>2(p gT &:%ˉnэ{?꫄Ì>г̢Nd'$DZ@llqD E趏KUPCBI=Mul1E?$MbiD*5 E3< y2Fhdw TRV$߈~HE#ұ7\THT8Ugj<`x⤖k,;'Bْ"EDNݤc*F}AaoEgZXAGo^c|Bm@&4l子) K+d4,ޗ%r'Qs - |ɑZ[RTwѩʹn^II'M@=Cr|ϭ#,bHMg g1 d) nBzGl}W H% W#g7'Oϛ:A࢙#'D\I9,hGq5R|9bލ\ߪZp!R{Ԙ1h 4O Ɨ=g3IENDB`rockdodger-0.9.2/data/images/greeblie2.bmp0000644000175000001440000000146612257577553020200 0ustar krawczykusersBM66(  g07*C7\9uEC _ j1 `$  :Q T `9Q$X2@ANEMCN=K_/ ] `x87 ^DNFMEM?O>P=P1TY FCN#Y ` ` ` ` ` TF!e/ ` ` ` ` ` ` ` ` ` ODwو/wEڅxxEڅg ]""" iñEڅ _000 i>>> i>>> ix W''' i i i i i i i i ixߤT' ccc i i iq㢱 i i>bN '''2VB(URAas~r~w<<< rockdodger-0.9.2/data/images/laserpowerup.17.png0000644000175000001440000000067412257577553021324 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME 4%IDAT=W0 &٘P=!XAQƨ81zv?ADO3{"*n s߲!o\;MՖ;MLl4PrB*TҒ8d M.+aDk2t'ؚ8uLp%~}/!VIENDB`rockdodger-0.9.2/data/images/laserpowerup.13.png0000644000175000001440000000067312257577553021317 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~TqbKGDH pHYs  @AtIME 060IDATU0 EhZ7Pg<L\&1spcfAvwo.GGV{";^-fk :_š>p 3VV[VN44 X]/,4PB2TRq"jشss̄}/iy-pɋ/bXh^IENDB`rockdodger-0.9.2/data/images/shieldpowerup.07.png0000777000175000001440000000000012257577553025271 2shieldpowerup.00.pngustar krawczykusersrockdodger-0.9.2/data/images/shieldpowerup.01.png0000644000175000001440000000133712257577553021454 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-s-u|HbVaZyWFowgvl?49)EPAHSUeU*U=r9    $$XXtv VY{*   !?     &%+ :@?EDIFK_cei  UЪ{Ӫ~c~㙣   KVK pHYs  @AtIME )SIDATc%%%LƘ:! U)j\ 9ٲ:.jJ8GRrmldP H@U5ATPII"iί bic1)\VD[ bhuZ0 *aB<|ܖNp*)iz"yN[sHT3IENDB`rockdodger-0.9.2/data/images/blubat.02.xpm0000644000175000001440000000236712257577553020060 0ustar krawczykusers/* XPM */ static char * blubat_02_xpm[] = { "32 20 33 1", " c None", ". c #000035", "+ c #00002A", "@ c #000057", "# c #0000B3", "$ c #000088", "% c #000040", "& c #000009", "* c #00006F", "= c #0000D6", "- c #0000BE", "; c #0000FF", "> c #000078", ", c #000053", "' c #000046", ") c #0000C4", "! c #000082", "~ c #000038", "{ c #0000BA", "] c #0000F9", "^ c #0000FC", "/ c #0000BC", "( c #000036", "_ c #00003C", ": c #0000B8", "< c #0000F3", "[ c #00003A", "} c #000064", "| c #0000FD", "1 c #0000FE", "2 c #0000FA", "3 c #FF0064", "4 c #000016", " ", " ", " .+ +. ", " @#$%& &%$#@ ", " *=-;;>, ,>;;-=* ", " ');-;-;;;!~ ~!;;;-;-;)' ", " {];-;;-^^;; ;;^^-;;-;]{ ", " ;;;-;;-]/(_:;<- [/]-;;-;;; ", " ;; ;;-} |11112 }-;; ;; ", " ;; 131131 ;; ", " ;; 11111| ;; ", " ;;; 11441| ;;; ", " |||| ", " ", " ", " ", " ", " ", " ", " "}; rockdodger-0.9.2/data/images/mood_item.02.png0000644000175000001440000001062212257577553020534 0ustar krawczykusersPNG  IHDR1sRGBPLTE(  ',054 :#.D>=<CL&DT1K7J]@K7AU@DtHKUnqO7[ZW\mWdZJ~^Vkdqcwb\_jnk{nvn|wvz4TP]],NVzzz=!B)bxAȽN+ FO@8Ɵ}\¡ ɖ|_mW@m0C80^M9Fy T9?0z"|w h?@SZ0n[ˁ|J>%7KE-(aZ!'*T@f֬EƛIq6 RoFVѧZ+ 9Qo@]^ʕZ3Ii׍Mk)С ;-%X^Ot>Fh7h4y2p_66>U_Sf#` 2ƍ8IJI|`Z>_@EZhh:8c(!nƀIjuY"Olb@ paxkż<K%:܋#Wf3.Bz'''nu}@ ?HyC]7zI\D%fEDz@w~@)x~ KiZ6 ? sN24wPJ3]\@fݕ'It l`nVB_&}}|@¼N\{zܟR?/t 6 |% m:@+1)B>p=\ bq2#uG?@A |qZA>gI(QY ?0[bvz%V7/ԈdPVBOȔvg(pDpIFrX%H$8*u[2ֺ(?y0/q߻<>><Y#b+TJEױH7.L F2! 9y \^QZR0 $<=7>p !"<Oz ]ZW( ˨rh1x4MV{8 q%xv'*@qV_4@L$ߴ?tfshx#  PAX/rs?[`5/P7| ) 8h%:)ػ(U Nk0D^lGϸEpqu]/7@#2Q̚)i(|{ lY>g`ϓV_\<-zy<1ZIBCka"YCVπY]﮾.@0ʒft6>PmnPE!Dtp*vX^^&p"  Р[P|(b m{ROꧧ !Yί*OH<{D"D%~WA0lpbIhs|qݘ|^@{aRTC#lҎ!Ǹ @dxHw>iZz% nSlC IK 6DHTVi , 54"DZ=Pn5uRQ+.LZ>=N28ѧD8bianTVEE :N8I] r)G?} l`hJ2'aZ3n$MF| m??|LJ>{n&@C,-xɰ Px b )z9'ҤtQN'D,(=A*([@t@hDcϜtiA*qZK3^\ +iM3(p_r $e뀞 8$ @prG/x>' fҍ['db =hDQhRT!HŻa]6a֙!ST&g݄j }H=i%x8wJ$X14OFH$#s+`bm7 8|3U3 ϗ잴Z!rnzA'(F8A ƣ%9/-(*ҫ0`)Zwι톥.r A*x9e' ӺnH$lXS>Gcy~d+js@V)׸M$)94!BHy ^=YXvOE/6Jk@LxoM7Fh$\Z%`٣:8DMPqV.HǨ=QG].H~Jl&,42[~܏3)^Ycr](-P ?^Z啬J& l}Yƌf*#hK/h_Rd#ddLkAt3;\˶"mNFPdOAFt5k+PohPkP֖/q=qЖ @/(fyz{OENHa'PXI7cAWebie%"_S D߲b~K]+%0y(5 jҮ';h6T/X ?汪0IENDB`rockdodger-0.9.2/data/images/laserpowerup.0F.png0000644000175000001440000000067112257577553021337 0ustar krawczykusersPNG  IHDR(-SsRGBPLTE-tbX:Qq+ YWYg}+   #$*LE/=CEJ_cei>C˪vҪ}~T;RbKGDH pHYs  @AtIME 3.ϥIDATU0 FwCvsYg1XAQ ñѳݭ;GOD4 wzCJ$n_ǡ=p 3;6WV[VxB;_B ODdH3?qNRe~R*fa`DWeHR],90lguny>;FDAB<`/tpNOIh7zZr&szbdg={t>ҁb҆͂~܉ԖݖK~Ӓԡr Ҟ/כۖoWbz9 bKGDH pHYs  tIME ? IDATx $U&Ŗe-e+j+i6 1q[IESn,S bhW__/kYUYYv3+2_fӤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ir2)y/_ov͗^\&dyOW|n /\\k>﹒ӗof|U窟1]yMϔ+j?Fov͗^u33ssnrTɩ{ǯzg7yksAs[Jrgk⃩7(~|u\|/U_?X,Q ?>3w*QI[#%x9y0`<ίqCRwN*ov9=/N9agFN9)[S%x9\'V^/k'JR5novq%L_ A;HjfoO@/3y<suy_KO ^_P闖?_?O˃&Ϡόr$5{AsoJrSy<))g8 Gy|7 7;rgqyP$ѿSf/ha-=%x9QCKt貐 5G+_KFR)Kz3O7{zKOzP¤lzk>Oy4{ӆ X%,wz`p\X!TE4t>>)')?(aUK`6ށNեh'埌 -&rJ. (TiIΩg)O[~'Zi>i|#>,8|=iygLxY>(8'+ݷ OU{ |Kv!ќѾ|\IT7ak>+|j wW{r/J|y" P'if7J[I۬: C=✔UjaF'.K6PgN+wuKd:X'{|zzꜞ7zZ<`~ߖ+ ۱JE#\:ԯ&ջ㝨_Z41;8տ߷BUCR ~G:Wp`3?Z-Qu>Ն̫sz규ׂTV }V-J3xDx%5WOWTI>Z7rO8>~K+ۚaPǹi=w=M}usbߤ=Oӧ8}Zsy~xG2? ڵ‹q}U3=j2YIiHursz;B`5,h /ڧŤf>xSY=~41|˛i6Q|ꜞ7ϫs.FB5<]+h zQg;6W5h<`y56Q?:h9mCqw(`ZE{>UsMX|JW|&uꍦ;B`E6ebZMW`IdP^!< M &767 <Qǩߨ:g@XTfjZmT.$d- Mjj9S4Y_礎3{>g@p_=Z&W/ ){Q M^=|yd/˻_?d&M4iҤI&Ml6]4iҤI&6y7q؀]'55s6;m0i&oNL`b[2i[PgVƦz zO[x)&yK ss56A_SMnp, ƿ]2Mnv]g!VkrY3f~ؽ5+'7Av)a]7; 9m{5B^+`W#N_?u07v9mS H΁ns3v, )k~](@(@OA(PN vw ,P8,73RnrT_ItpHX`6F`C)i{BS?@~]=z nk3S,q譄` M?% < б +l  쇠w'vkQ35~{TA۸[JJ u,ٴ_Si?BnO,߆~4v{䴌E@Tu\t!%o+U<@ȭFV*|4Bp  mvEjSgLȽte8ns.IjHwuΙ{@5h" d%՗W`W½5x/(vŜ~Bᗾf!!LCD?$sn\j@3`ʠ%wL@pֳ%GPٮn 0t@5ׁTE\حQL' !*MjƆ~T\ T/i{ @06->5Pw㉜1/ѠO9Hs:БhDd6&иpESEM,:Hѥ7,/c[|w\69V;0W^_C T֊er/ @=8VXaq,D A:Yr0tPpSG\x}O02,T 7k xA4!&\|fѻž+x WPɡM79Ivx[og6mQa }9w) 3 L*0sɘzӡw#XWfKz@sn(ܮ9da,'s]̝ $Q QZZYl D W;.KjWL1&WnW+n=R} | 0<)Ęի o-5xFt,8 9Pe׉Tp#7P{* JW`y;\T`p,b~0'Duq, ,y F`q%YQZ7 'g(b8(;4 @|ѳZA𚕃K"0`ޠIhJF:خk FU,UuOq0Q+/5bbyGn@XM! >aC ྍ3^82~Yr0TO6Y$>C.8CJi@at+!Lp\e']Ϟ&PDSR)Ae++.S6Sè=pHnX\0-ͧ1.!fЭU=X8k BS!aU+_ə צ^R~Ԗ\* ;cvEܨ,Q <3l!AbaQ(Ο^ 8 Ekj(Z)CѺ&Gj;[70ǿA69?B+, >z=ц92 >)x 4!Q!gEd7M4xToX4ci3yoHItFp-ݮ"0W5P)Z2' _$=EΖ%1AE4aPl7ׁhAY=%kS)_$zg#ܟxo7t:˺*UqDm`K c9xX8R=jR53/TNlt0F vU?^E=[ӲnK8 %F@]GSmRY0Ceu UPkbv*2ɽB0N}׮ńdFU:aDZp7G B*ݮi@f3 a %.}I E.wXZFE0/⋞א g BY闂d7LCbU0Vp!0tHt v/. vѮɘš ^q%v!Nǻ`׺cp!p9k߹@u~,ȿK~ѐ|CB21O+ C#%OI>/!vW CpS]Vb4%yX;@KZ, @q,}93_ugv7;(ŷGjvChBm }oC>aJ`FhTtun JhGݹ ..^vh6;ց81 sTFQNfm<< BV !\^H5dpQ-8=R`5 kR v]E9Pv!;#jCHMn?Ford~4^uv_FG3F;` ]ʤׇØQ;o+Uq-ا; th, OhgrhŘ37bU!mS1U"ЬO ؟b6B>اV@&+Ya C |to%+< ,W8J= DtK7a@BX2eiL_"]ͥ 8f)B;h3C!!Sҩ(y`@;JqADw & D+3&  I9p-h\?ܤcĭ+E8h`Q.`,cИ#\UG.=W[($:p◱'}>,P $o<41L~"O׬˯ծA~)Ε(n By.Ű NpG`q'% J2k K}(ru^&@OyRì=fQЉ3 ŤwØ ݻ0Pj!jZGMt>ŶL֍ŦW`O\. |R@'i?uJZ T&c(!NGus&Slals4<'`(+O)aX2Ѡ;]Yg@p0"p{Zp mqAJHloV605̮ƠъC,Ain @^JAwv+?腱h@0fs.0GC AW4 #d(W7.X |tjLpO߶' pgAz^v~,uAN4Z1 @cf^X B9v]kS3q'כ%2R$5mXRMuxI ObJH+F HGyնm|n(Qq[rwd)amo11@dZ9UP[+\fV2DV6,u=$ ]z+S P dx)j6 K^("{?hHr/@736wҀyh?gB\>`.r=#g@e>V#ʃ) [`/Kܐ[/#kʯy.easX> iX.tCBTI0GV9" XRz <ґ Qx'h 5n u}xP1 QP2a~ H4q9p`r9.Sk:Lt* W0h&}mbBDgHWW}څH dž x1%M$6aE O4mU%T蹟5 }^,uj -Դ dpn]E V'+:EyQ9A0ɸl^ZF.Kr*ݞ[ 7^4z1ֻR' z!(َhW-J{;%O܀*FQqq{'EL82 P5ec }01o/&g~z;& L٢/_Hm\ne6ӖB@+ qϿT1yNڝA=V6X{@>b -0Ċm^A_S\Ȩ֣Ly #DV̳CxиnK75]u.j) yY WU䫕`:4ZDhҝDX۵_A{-f{8)A baNj}g}P'RUKgވnuMyeZ\c_̹lsnDxyTFXP1mtR>'P7t3i @1V8+V\("֚OO:(A,NE^=7Pm0w F:0Œ=_pVJ cw an  ԬMrT;KrE 1тh"[lwvŐ1 ɑa $od޾CC0bf&#b "[XsQl=)B*t:x2=Z r$b_Wzou83r>Shh`6Rdb9fViyz3{-VA 7d1U|;t+*+HɎSpCn1Y5{}iٲL")ۄB C)J%l`9HMyG?3O/ =VF`5O2vHq\HW =Z@f&y9 mW'/xU4O^|*grSkE_LLB8 +[!o-'v]̛Ij) ($)`Azᾀ/Tng cja ,(vܯ/N1.|u8rZ!m2阌<꣕|)5n=/efa!YѥWR*DF-0A/Qz1N Q#@q*\vv7Ym@taQ$Z٢cGjLb?˫Qd~\M&38[/"8#3!/P}9 &w.?!/Z8{YD8G4:3×pI0 T=QApzL'b.9lNxC^g dECTY-[1(\eЯ̬AWJ@+r/M@.=0j$ :[PmҼ-_܈LIwTxuF .B_?$tY&hE@U7t [aG08 ^Ma+yaΖ< YbѥAL~N$X^aEKL`}O8CdfVT&|^IN`7<X$]2`ϰA=ÐgAǪI)h}3eGO VX+8>N2Ǥm% p  XجjH vHȬ?䳶,ܮ-yҡ FW!++\eKBS$8Cb!I B]ٙ:đ]a*΅҄_;11Q%6RW:.V;u+ ֝:mJY: mG! ͫpDBfsԁ 0ck$TPF- ucfŸ@#͉Af_p[;W eVBA\žnN? @>NRx 2iDʸm;D`=Q"-jKFT}`_~S g.3yf^4 nq)Cv "Zay++ f_/ ;Ɓ(3KDZ4ݢYg^GͰ d> %T%t^e>mԛ]+,LbfWo׫x#k<%u( 8wwchg3)f5zjAϽuf5U&=SĜuKMXA5LV}D<'aWRX=3dmwI Ro |$C7elYyC4">]37ݙ#T` u~LY-Dr:. f"1|'M!4o6-`Z]fs4s+%EI+ioePԏdƕ5㲝L)fZ@KeXՍ4hCzMN] I}}23Ya2{8`-ÂZ[e1݂?yĜhDbhz{.ǪJ II>SwOh^ZSx5!XT Oփ4vb" pDpהdwASۑ厫GmR,RK--6g鞜0`8} KnRtcK;nBp>kBKx YIo]~]QK}44l)"l.,!1̴Ь,mlSuqrNʅ%,rx;LZVXIM @̓?d|@(YodRIKAJVE0NBo-E 0 WdKmdZr#a,BS i>i@G_obDl:۰8I؋C=KZn”bf0"͉ =mY*6|tY]n=(VZp?G'2}l|k l2S0"p)BfU]쉕34H!"3u1t4l)-hPͬsM~- B`B>u /KF]=az4lT /yC$%b/fb1tyRN-|~ J Ԑa]!ؐu^[`7k YbegRy\7]x@̀Vz^gsjiA>i$޽KƤ_u^`5]~ti[-gyL ?!YЂp+7g ]jHdةe[&nJ\94Q-@6h6elH@U,rK+9Ar<҃̚\7da9ςBvYHN @%"a)C\ |t^CᮢkB O5ʯ!3R>t4rmGn "yjb^9" A4<,6"](]FBx\;[(80J-.Y )<2efID',06h3ٗY\މ$P2^kUs$gחq0sv;?N#!aL%+>=-züa{C^=7Dҍ(<A7]gV DT+LІa6GYJMM=JT/E W۰`W4ǣSH1\"Pc }+y1 P[EJlI J"v~omU~ X?v =&׼@M힩]k]H p"|pJ~hq> vI-L#yD6?ؤg#IɹpG?8=a8p@i_~L,婡Ѡ)e.! @)90`#;#(L3* 3P:Y*ph:R艘fBʺjN#_d5#Q`4LKQKw42#UOn\ h|͋%03'RkhzC>oh i5ykʴsk` @,[V3' H66Pj2[\(qJ:8kq3hL0fsw@ ۫!a}֢^ )=8~mՌJtud8;2w7, LpU6&Ȋ#뼱̑faU .%W<`"L{dcn+?䧛.t:Jq75`L*x8Q8M S25_3AGF2=]SV,b@-VsDG ocu 8K/Yo[awqi7ak #C0.ũ-*@}H}-[dqt<> =;y$+*zIck!d! oD? č[`9uC'=jL\`<ȿIS\(J; e#Mi2=)mGV pKQ`%4)A7ETE P 6|eKm)-A=aQ{[T;@ջ gh5|h)ܕi|1HFRYd+<&152`t;_:-osu&Y鰶55 njXFk쭕p/i (f[݃ޱ*)J缫: _Z=Mw< =bDQur9iRY a7 2jjpNmIoٝxVb}G1f 2Id^@QþjA NWg3;+&^ ar285d|;z;rgIƺ |\5 ^R}N2 fچAӾ!΢=nc7n)&g~` feD֊ 0;L }jK^1Ӑ,PW-i56X6(pjڤcaP ptA SJYB0qs1[I 5#CO\ zbeR) P6$xx&.C[:0}!snQT$J#pò6ҫ {~8Qٽ&8->lWJqjNʬaT|Y+<*S,V|A`Q ՐmWzVW"23 l0 wL͇,%Ky(z~H_\pQiusagKA2C2S\<ƞ19K΂aaȚns+xiTԄ#U19evsC% E(kj' IDAT]#YVjR!ڹή}nU {Ny ~X1Ԩ7Hx:Էt{q H-Qߧ;UrT?Sv[J_+:,6b``J䏥itgs|۶:>28yv>/ܖ.Ȝ=s3%{"P88_5wmm:gKMSE>e(r:Hr{j63``>m~/lMN NsA،\wX'U0nVW01M3yQ_D3)s~yゐJP-*~1;j*{XO\ea0HX<#B6[k*K0/+ŌaE6K7F=9WiHO-y5nJÏHv>G.},V U I rƜח\vg&apFu1`UM@E{zWvrO^26aNՉk0)pry1UEt&-.bTsbߔ&ZzneK9Vr*׊zl ~9Ʈ2k[? SBIi[1_)j.Ӿ+E Լ/-dYSQ́%rZV0:to' EiTaZ+ՂÄ$60Yw/pRRI$ ݧDD06) Z42C,D~UjAȕ2v)FHyz.U#S4aiɲ"%y` 66x fd< \IϳR }*bt$\\ ;GfJ`̀O7iEOyIc ~E(d>yQ#$Ff\ɉK$eqOd9)ȝ1Z:Qa0VsZ+I̓&9|&KD {&a3a}Ҟ _8d)I݁;5v)0|?5- !3\O.7tD;R2n>_몈 p%H^FF ;FQıF:=Wyrj 0!S:6֖J Nӄt ߛ$SnlQ`uYENEoN>`so! >0i^3wQhte᪥QF3X>~TY1%9+l vW:3La I2Nm`Q5"8Zcoh0G)8:͐ih@-0%PCֱ h=8䄱];ΌIy)&^ܸm|etdЏzbIT36ܪnx#TyyUOLATάQz 3E:?0hqa1K6G6kx5QZZYk"1,ݬ8//UN>a DŽMʯPW`pap7b`\eBMCcggPʉݶʮ/N,%t.@ږ`c]GZ vӼÈ=GgTSpOaT*޽ yÿ %#hxxpun '1a܋ߏP<ݿf誋BƂĶKFE4 ]$CSm\-E0`KqW@eW5#%e)`O0[\4G8h<ԝ&0{9-ø?MPiIqMMR#t%/a:T#5U%\ RUSN8ve ϻG^ĚXe / 'K7lj=A!͗4K*WVmu:1GxA@N4JWIN qޑQ_06bb>PHU(%jR I!r\D(e;9H+jޒ1s GVN89nm3 ҍix\m7%jвznwanw3ZFFء視Xʴ1}7YMj C lL;rYh ~{q! HcSH6bW}ם⎜s6\!h-0` cz=Mͷp>==Q܁pO`18%$WoXw@+`>387ҼtFDѿ䊴n?ib~0pT)7!Tl!oL1'J# YsYwq%Lk٤-,ϑ%t +jd]5ˋ{mCzz{ZC`}00Qzf*76R%N h{&7*mr9U k0)hsX3ػ_9tL28V+_̤rov =ƿɡ8Չ']r'Z"q*LĆ^Ǽ03w[w: k(ؚ_&Ѕk]\qruj/!8@eYD2D:ʹDe#/ Ͱ,Ve}STaW`JG"K !i"J:bĒpL( :KЮӶyNDɠ5_0{\7iblUV,Kra ukgrʂAv+H%BbYˊ_}#bC$Ԓȏ Ɔ#1'+,kX#?I_m$p=< ]7-::^(AwvĪF~me"Hib!p# GHS)Pac77*Jp3E&@77חJGa4C<ڂU 6z[n)_ jP$Ly#E1EuyòM d;MDgfpIy>kd2{[]I Ҏ(w;ɬntp-Ӄ7p$n0JdF":`_Ue%-҃y9" vהw=/*;Cč5{vXy{"N &0(N)B՛cNhU }\ LZMVD\8+>3E5!LJ0 0\y'NPRa/k7Θj;Xe5oòn22w/clڜrUvÈ;͉⺊Ң9x8,uL7Kl||O|O%c'"/./2 2T7eSok8N"Q8]J[~ @$uD!=؊Fx%'2hI}VYiS9 xdH>;?y_Lу駈[wM9.Y5&Ǹ]/ک=F 9y(A9=mAoB8]ttQf :&J;OCE$tJF:tׅ G}2nek{(])Hƹ 4PUv~lb>[c0!u{K!˳>,= sA??$QsCfm7#J"nJ+|!崨wV D*)Y\WS\D~gڬ}aq@>F?r<|q1> o}p8naH<TB"9[I p5[Ec(t'4 o+4:Ra}dBX?F[>?| K <:6 r0GC8VmXǒwogsAC!tt "rz~vaBX_xr\U˒0#+G$cf@ etA 6T܁Ts;ti?n'~;S@_ ˞sXjdz5Mlr"-F4E[QRW{L1GO97,WւPa2&QO$~_韾l*&`*D~9^3]`1T(,1ƲrPjn%F  e7W*rì<JgOp 5Bgi \?,}~S70qd*7BtD K$LC -f*`U(D~1_i@4o0 ~|" z'B'V•{|'IM?jl$} ^TV܌0qLǂ v*2M0&&>zd? /7 q|^ *#!osQC†X,n.{6]5UBXRodeM ~{>@Lշy=LO[Bc6!g?_|PL/~8!8-h- Z\9q33sIH 9[i]FIDAT+Nug~?qg dNNTY;riw1 rT_oΘ O|d~ (g__'ٳ ݶʾF$Ӏ5J#?c_>2vi]S`8{c\{J(s&W&|ld{3Ux@' sggO~BIsF7aN#asW|`Bn]<՝IgcXnEP<*~J֚G;L0g? l n@FTM\ `Zj%#t*ͬ0w: =MxI' o Le|UaDAȗ=|O$nGXvx]+x:g@@+"DK|BH!>4׆pz5|fo##'O{ ~^ E~G?~'~g/n?o6wu!=lJ0<nsg$("oO?'O.? }+7 ~?|xϛPߜA0h4;P\$SqkJxjɣF>xO?*!_ү?Ǐ=ާ{c~FR-l~7fS@?LdگڗOL$({'H;#KRlx ;$0WxBM/X%{1G}5 _oo>S@( dNp׼'G[3f;^ڍ.ޣ@]Bw_%y}B~.r"#E(Qfm .r@_}|2 Fk*mx%mhlG#ӺOy&60l.lsx\Z`~+iݯy}bPo~W׿z _= +jk No^"GrYˤ㐩V]W|KVk \wP/}6/m? _4+50-al(lf Mި$&Mހ 6wM7M! xMag8ɝCЩ5"Aɛ0x !D`F`i] G36OgirL&0JiE4sɚ&ozB_`;R#fcV`{X G;atoѤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI,?xC8IENDB`rockdodger-0.9.2/data/images/deadrock0.bmp0000644000175000001440000000210612257577553020164 0ustar krawczykusersBMF6( rockdodger-0.9.2/data/images/deadrock1.bmp0000644000175000001440000001171612257577553020174 0ustar krawczykusersBM6(,& rockdodger-0.9.2/data/images/deadrock2.bmp0000644000175000001440000000316212257577553020171 0ustar krawczykusersBMr6(< rockdodger-0.9.2/data/images/deadrock3.bmp0000644000175000001440000000542612257577553020177 0ustar krawczykusersBM 6(  rockdodger-0.9.2/data/images/deadrock4.bmp0000644000175000001440000000352612257577553020177 0ustar krawczykusersBMV6(  rockdodger-0.9.2/data/images/deadrock5.bmp0000644000175000001440000000206612257577553020176 0ustar krawczykusersBM66( rockdodger-0.9.2/data/images/ship.07.png0000777000175000001440000000000012257577553021420 2ship.05.pngustar krawczykusersrockdodger-0.9.2/data/images/rock0.bmp0000644000175000001440000000210612257577553017346 0ustar krawczykusersBMF6(    //188:88://1 ,,.;;=;;=;;=;;=;;=;;=//0 001;;=;;=;;=;;=;;=;;=;;=;;=../  !889;;=;;=;;=;;=;;=;;=;;=;;=;;=::<##$ @@AIIJKKKKKLKKKJJKGGHBBC==?;;=;;=;;=;;=446 GGHVVVVVVVVVVVVVVVVVVVVVTTTOOPBBC;;=;;=;;=::<VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTTTDDE;;=;;=;;=,,-778VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTTT??@;;=;;=668VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVIIJ;;=;;=::<PPQVVVVVVXXYbbdiimhhk__`XXXVVVVVVVVVVVVRRR;;=;;=::< !kkovv{xx~yyyyyyvv{cceVVVVVVVVVVVVUUV;;=;;=224 xx~yyyyyyyyyyyyuuzXXXVVVVVVVVVUUU==?;;=yyyyyyyyyyyyyyyy]]^VVVVVVVVVUUU??A//1 yyyyyyyyyyyyyyaacVVVVVVVVVUUV>>?yyyyyyyyyyyy``bVVVVVVVVVUUU//0 !yyyyyyyyuuz^^_VVVVVVVVVSSS!!"yyyyyyxx~iilXXXVVVVVV@@Ayyyyyyvv{[[\VVVIII  !yyxx~778rockdodger-0.9.2/data/images/rock1.bmp0000644000175000001440000001171612257577553017356 0ustar krawczykusersBM6(,&  ! 88:;;=;;=;;=;;=;;=::<%%& 88:;;=;;=;;=;;=;;=;;=;;=::<113::<;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=::<::<557$$& CCCLLMQQQSSTTTTSSSOOPHHI??@;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=556 ""#mmq^^`WWWVVVVVVVVVVVVVVVUUUSSSFFG<<>;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=335  ""$yyxx~oos[[[VVVVVVVVVVVVVVVVVVVVVUUUGGI==?;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=::<::<::<::<::<;;=;;=::< !yyyyyyxx~]]^VVVVVVVVVVVVVVVVVVVVVVVVUUUGGH<<>;;=;;=;;=;;=;;=;;=99;;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=))+ yyyyyyyyww}[[\WWW\\]aacaac\\]WWWVVVVVVVVVUUUHHI<<>==?BBCFFGHHIGGHCCD>>@;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=::<++, yyyyyyyyvv|]]^aacttyyyyyxx~mmqZZZVVVVVVVVVUUVJJKIIJOOPTTTVVVUUUTTTPPPHHI>>@;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=//1 yyyyyyyyyyuuzuuzyyyyyyyyxx~hhkVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUUUMMNCCDDDEGGHHHIFFGBBC==?;;=;;=;;=;;=;;=;;=224yyyyyyyyyyyyyyyyyyyyyyyyrrwYYZWWWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUUVVVVVVVVVVUUUPPPHHI??@;;=;;=;;=;;=;;=;;=yyyyyyyyyyyyyyyyyyyyyyyyxx~rrwffhYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTTUJJK==?;;=;;=;;=;;=;;=002 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyqqv[[[WWWaacttyxx~ssxffh[[[WWWVVVVVVVVVVVVVVVVVVVVVVVVVVVSSSCCE;;=;;=;;=;;=;;=445""#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrwbbevv|yyyyyyyyvv|iilZZ[VVVVVVVVVVVVVVVVVVVVVVVVUUUKKL;;=;;=;;=;;=;;=446 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrwyyyyyyyyyyyyxx~kkoffhrrwttyllo]]^WWWVVVVVVVVVPPQ;;=;;=;;=;;=;;=446 xx~xx}xx~yyyyyyyyyyyyyyyyyyyyyyyyxx~yyyyyyyyyyyyyyww}uu{yyyyyyqqu[[[VVVVVVVVVRRR;;=;;=;;=;;=;;=,,.xx~uu{ttyxx~yyyyyyyyyyyyyyyyyyww}xx~yyyyyyyyyyyyyyxx~yyyyyyyyyyddgVVVVVVVVVPPQ;;=;;=;;=;;=;;=113yyyyyyyyyyyyyyyyyyyyyyyyyymmqoosyyyyyyyyyyyyxx~ttxyyyyyyyyyypptWWWVVVVVVLLM;;=;;=;;=;;=;;=::<yyyyyyyyyyyyyyyyyyyyyyyyyyww}ggimmqvv{ww}ttyqqussxnnrccdyyyyyyyyyyww}^^_VVVUUUGGH;;=;;=;;=;;=;;=;;=yyyyyyyyyyyyyyyyyyyyyyyyyyxx~bbeWWWVVVVVVVVVVVVVVVWWWxx~yyyyyyyyyyttyZZZPPQBBC;;=;;=;;=;;=;;=;;=yyyyyyyyyyyyyyyyyyyyyyyyyyyyuuzYYZVVVVVVVVVVVVVVVVVVpptyyyyyyyyyyyyggkHHI==?;;=;;=;;=;;=;;=;;=##$yyyyyyyyyyyyyyyyyyyyyyyyyyyy\\]VVVVVVVVVVVVVVVVVV^^`ssxyyyyyyyyyynns??@;;=;;=;;=;;=;;=;;=::< yyyyyyyyyyyyyyyyyyyyyyyyyyyyrrwqqwjjl]]_WWWVVVVVVWWW[[\qquyyyyyyxx~HHJ;;=;;=;;=;;=;;=;;=::<$$%))*yyyyyyyyyyyyyyyyyyyyyyxx~yyyyyyvv{bbdWWWVVVVVVVVV[[[llovv|xx~nnsWWYBBC<<>;;=;;=;;=::<yyyyyyyyyyyyyyyyvv{pptssxyyyyyyyyyyww|]]_VVVVVVVVVVVVXXX[[\]]^[[[WWWOOO@@B;;=;;=;;=335yyyyyyyyyyyyyymmqVVVhhkyyyyyyyyyyyyvv{aabXXXVVVVVVVVVVVVVVVVVVVVVVVVIIJ==?;;=;;=..0yyyyyyyyyyppu^^`VVV__`uuzyyyyyyyyyyyyww}jjnjjmnnrjjm__aXXXVVVVVVVVVQQQ??A;;=;;=yyyyyyxx~kkn\\]WWWVVVXXXbbdttyyyyyyyyyyyyyyyyyyyxx~ppu^^`VVVVVVVVVUUU@@B;;=..0yyyyyyyyxx~rrvlloeegZZ[VVVYYZootyyyyyyyyyyyyyyyyyyxx~ffhVVVVVVVVVUUU@@B;;=yyyyyyyyyyyyyyyyww}nnsmmquu{yyyyyyyyyyyyyyyyyyxx~mmq__aZZZWWWSSS??A99; yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxx~mmq[[\OOO==?446 !yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxx~eehGGI::<(()yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyggk@@B557yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyybbeDDE!!"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyppu[[\yyyyyyyyyyyyyyyyyyyyyyww}))* yyyyyyyyuuzww}))* rockdodger-0.9.2/data/images/rock2.bmp0000644000175000001440000000316212257577553017353 0ustar krawczykusersBMr6(<  (()..0++- !    **,55799;::<99;66822322499;;;=;;=88:--.**,::<;;=;;=;;=;;=;;=;;=446 --/;;=;;=;;=;;=;;=;;=;;=557557;;=;;=;;=;;=;;=;;=;;=;;=..0889;;=;;=;;=;;=;;=;;=;;=;;=;;=..0 (()99;;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=88:..0::<;;===?BBCHHINNNQQQRRRPPPJJKAAB<<>;;=;;=;;=;;=;;=;;=;;=;;=;;=(()++-99;??@HHIQQRVVVVVVVVVVVVVVVUUUSSSJJKBBC>>@<<>;;=;;=;;=;;=;;=;;=778 !88:JJKUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVUUURRSNNNHHIBBD==?;;=;;=;;=;;=&&' >>?TTTVVVXXXccessxvv|ssxeegXXYVVVVVVVVVVVVVVVUUUPPQIIJ??@;;=;;=;;=557 ffhffheehww|yyyyyyyyllpXXXVVVVVVVVVVVVVVVVVVTTTJJK==?;;=;;=::<yyyyxx~yyyyyyyyyyyykkovv{yyww}mmq^^_WWWVVVSSSCCE;;=;;=;;=<<=yyyyyyyyyyyyyyyyyyyyyyyyyyyyxx~ggjXXXUUULLM;;=;;=;;= ! yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxx}^^`VVVQQR;;=;;=;;= yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyffhVVVSST;;=;;=::< xx~yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyffiVVVSST;;=;;=445 ==>xx~yyyyyyyyyyyyyyyyyyyyyyyyyyyyxx~bbdVVVQQR;;=;;= !ccettzyyyyyyyyyyyyyyyyyyyyyyyyyyxx~^^_VVVLLM;;=,,- ""#[[[rrwyyyyyyyyyyyyyyyyxx~yyyyxx~oot[[[SST<<>%%& !cceww}yyyyyyyyyyyymmq^^`hhkqqummq$$% eeiww|yyyyyyvv|ffi>>?  $$%>>>778!!"rockdodger-0.9.2/data/images/rock3.bmp0000644000175000001440000000542612257577553017361 0ustar krawczykusersBM 6(      ,,.557::<::<446))+002::<;;=;;=;;=;;=;;=;;=223'')779;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=**+ ''(88:;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=557))+778;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=::<""#88:;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;= !<<>FFGLLMPPQRRRQQQLLLCCE>>???@BBDDDEDDECCD??A<<>;;=;;=;;=;;=;;=;;=;;=;;=;;= %%'DDEOOPUUUVVVVVVVVVVVVUUUTTTQQRSSSVVVVVVVVVVVVRRSGGH==?;;=;;=;;=;;=;;=;;=;;=;;=666IIJSSSVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMMM<<>;;=;;=;;=;;=;;=;;=779 223TTTVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVIIJ;;=;;=;;=;;=;;=;;=--/VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUUU??A;;=;;=;;=;;=;;===?VVVVVVVVVVVVVVVWWWbbduuzxx~uuzggjYYZVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVIIJ;;=;;=;;=;;=99; ZZZhhkqqummq^^`WWW[[\uuzyyyyyyyyrrw]]^WWWVVVVVVVVVVVVVVVVVVVVVVVVPPQ;;=;;=;;=;;=668 kkoxx~yyyyssx\\]]]^yyyyyyyyyyyyvv{__`XXYddgrrwuu{rrwhhk[[\WWWSSS;;=;;=;;=;;=../ ww}yyyyyyyyhhkhhkxx~yyyyyyyyyyyyww|ggiuuzyyyyyyxx~llpYYZRRS;;=;;=;;=::<yyyyyyyyyyuu{xx}yyyyyyyyyyyyyyyyvv|yyyyyyyyyyww}\\]NNO;;=;;=;;=779yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxx~\\]EEF;;=;;=::<""#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy~yyyyyyyyttyVVW==?;;=99;$$% yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyynnrww}xx~ttybbeFFG::::<yyyyyyyyyyyyyyyykknyyyyyyyyyyffijjmeehTTU==?;;=::< yyyyyyyyyyyyyyyyoosyyyyyyyyyyxx}yyyyqqu;;=;;=;;= yyyyyyyyyyyyyyyyqquootxx~yyxx~yy~yyyyyyyy;;=;;=::<%%&yyyyyyyyyyyyxx~kkn__`ppuww|xx}yyyyyyyyyy;;=;;=//1yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy;;=;;=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy\\`;;=(()yyyyyyyyyyyyyyddhyyyyyyyyyy333##$ 778yyyy ! rockdodger-0.9.2/data/images/rock4.bmp0000644000175000001440000000352612257577553017361 0ustar krawczykusersBMV6(     !!"11388999;::<::<446))+$$%224::<;;=;;=;;=;;=;;=;;=;;=;;=223--/99;;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=))+ %%&11299;;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=;;=446 ..0??A@@B@@B@@B@@BAABCCDFFGLLMPPPQQROOOHHI??@;;=;;=;;=;;=;;=;;=::<IIJPPQUUUUUUSSSSSTUUUVVVVVVVVVVVVVVVVVVTTTQQRBBD;;=;;=;;=;;=;;=::< NNNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVSSS??@;;=;;=;;=;;=446 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVKKL;;=;;=;;=;;=))+ VVVVVVVVVVVVVVVXXX__aiiliimbbdXXYVVVVVVVVVVVVVVVVVVTTT==?;;=;;=224 aac__`ZZZWWWWWWddfuuzyyyyyytty__`WWWVVVVVVVVVVVVVVVDDE::<,,.yyxx~qqvcceggjxx~yyyyyyyyyyww}__`VVVVVVVVVVVVVVVJJK667%%&yyyyyyyyyyyyyyyyyyyyyyxx~jjnZZ[VVVVVVVVVNNN99; yyyyyyyyyyyyyyyyyyyyyyyyyyqqvYYZVVVVVVNNO::< yyyyyyyyyyyyyyyyyyyyyyyyyyyyddgVVVVVVLLM557 yyyyyyyyyyyyyyyyyyyyyyyyyyyyjjnVVVUUUGGH))*yyyyyyyyyyyyyyyyyyyyyyyyyyyyggjVVVOOP??@yyyyyyyyyyyyyyyyyyyyyyyyyyvv|]]_RRREEG$$&yyyyyyyyyyyyyyyyyyyyyyyyww}ggjVVVEEG&&'yyyyyyyyyyyyyyyyyyyyyyssxddgXXYQQQyyyyyyyyyyyyyyyyyyyyaacVVV!!"yyyyyyyyyyyyyyyyyy001778yyyyyyyyyy##$ rockdodger-0.9.2/data/images/rock5.bmp0000644000175000001440000000206612257577553017360 0ustar krawczykusersBM66(  %%&//0778::<::<446%%&NNNHHI@@B<<>;;=;;=;;=;;=;;=779 VVVVVVVVVTTTPPPPPPOOPKKLCCE==?;;=99; !VVVVVVVVVVVVVVVVVVVVVVVVUUUSSSJJK??@;;=889""#\\]\\]YYZWWWVVVVVVVVVVVVVVVVVVVVVUUUIIJ==?;;=002jjnvv|ww|mmq]]^VVVVVVVVVVVVVVVVVVVVVVVVSSSCCE;;=::<ffixx~yyyyyyqqvXXXVVVVVVVVVVVVVVVVVVVVVVVVLLL<<>;;=--. lloyyyyyyyyyyooshhkddf[[\WWWVVVVVVVVVVVVRRR>>@;;=668iimyyyyyyyyyyyyyyww}kknYYZVVVVVVVVVVVVUUU@@A;;=::<jjnyyyyyyyyyyyyyyyyww}\\]VVVVVVVVVVVVVVV@@B;;=88:ttyyyyyyyyyyyyyyyyyyy]]_VVVVVVVVVVVVTTT@@A;;=112xx~yyyyyyyyyyyyyyyyyyllpZZZVVVVVVVVVOOO>>@;;=%%& bbfyyyyyyyyyyyyyyyyyyyymmqXXXVVVVVVEEF<<>++-xx~yyyyyyyyyyyyyyyyyyxx~[[\VVVJJJ778 ssxyyyyyyyyyyyyyyyyyy\\]000  >>?yyyyyy""# rockdodger-0.9.2/data/images/over.png0000644000175000001440000000617712257577553017325 0ustar krawczykusersPNG  IHDR"N tgAMA abKGDC pHYs  ~tIME   ?1P IDATx]핣:~[FlL֑Ld Ӈ@B?$[2Y?g,˖%˲0TT|T1PG uT1PG uT1PG uT1lZ#LcJEπ)=mWA"ixp`?%h1#ixzՏjW{8yPEun7N4=pQHNH7$Uk5e63]^+p#_oi4@„Z 8i yMRJ0{ nL@V39׭}й+]clmRGtY?ILyQ@1&XqLqY =ЪÊ#bez]Ύ̙N#[)?K%PjL}dӘXT ICUiZx 6aTSQTR\Gb#UNz_"KW}Oϥ1o*͢L74bnk^†燋$!l ίbJQv⏯ʗ cv jRFeŒߞf| Jw9ܞ=mjVYZzx2iw)=,֣5tt^̸9%$f<3P8}x.KBUeMGڪWk "82G73b/sv|ٞ33mA&|V<n;^v}Qp2!+~c*.d͚W '[Qa"훗&{geGS6$ ̦6(cLL%bFg,^ݭ;Tzd$Hp"O4s߰N_~Ɋ +hc mA$.>ņ}\z1'S/zqmW"kE_B[/t?K/8DZ4wf$3IbB~~¾2ևdž|ү033$*Ig,t;~IwC+\:8xƾ~#}&y,1n`O| ֐φ*c~-4z]fLWesyRZhܸs0t5 9~1hCӈKLD'BI+('ie$.Ĺ*K!o-}7HęIS6f+lR({iCm1V=t5̖1rYs"ݘ*ĺ!TJ[⹵H>!|:R\9ȵ`:7*64(r7l R䋚?-z`=2F!μ/lo1H>D \b]J16g 떓ʁ@thy+wcaWBvHE4ۤ.-,fiQJ Ȃd4<\Iw8o<%8eJش'U6!h/D l߆ItBt,IF{qCtq[>c!Ɍ&~(]-̂YoO;=HG]ƴIg-  !fHݘ&HV n˲uRkp>Bֱ¬O4sD)!na%/}'Ri<(oaC'`'|Tfg S<|֐ԒQTd'pJ@[a'꒽)4k j/W-gf%LbUjӳP5v_U36j`"fXP>\f)%YVAJB1nbMmJ2Sr,O!'X^7,Кl8.!Le-v1ZY4-|sǓՂ!gdwI[' :l`΢&$`mU,n/a8G:}!43sb-`w@?b}#|S%ӄsBsˈ}9}8 ƲWŘLHߏX#Yo2@Pܔ3O數2}vb]b0o jF5)JϡlR~as+xBe?zEFѽ66[D yeY%M ]'fjI0}9/Q?LF76~ˊRjTB?BU,cڞs{-uTGJJ@ٜ0*+c)blTm=+xccх%լH̓R$e PyÛhF6ACn4L }]+㾴_ ֣j6Xb`NY^2}+"Ž角 GI\N8tTi#uA/v傣sp֚)„>w[F]/xDcJFjS?IQUfyhcMҺLŖRu$IGOgj7siz,<Z/HJ"qRo0sm%:1[@UTJ$})S(ZimA1#6-s9z?=oʘ&!a#~o$0%tEXtdate:create2013-01-14T21:50:44+01:00Bb %tEXtdate:modify2013-01-14T21:50:44+01:003?IIENDB`rockdodger-0.9.2/data/images/ship.00.png0000644000175000001440000000276612257577553017533 0ustar krawczykusersPNG  IHDR, bKGD pHYs 4)$4IDATHǭKh=)=#َb[&}8`2ݵ4]tQh7iwuW‹:q &X %qVWh$h}ӅlRh9 ;w9!Oӗp?t~(NfƐ69^0?'^/.Q19v/_#ey_&QT`a@R-9LY;s{2.}?ޭ+Q1)u_6""0>]XXs>ZYOE&STكyxOcd?+V&.$&7&0qiK$EIP!H00 20 0==cwW[u(Eս[n-`Ӧׯ\1Z/!D4pxS&j|O|cxŵڹjß(fdJ2QA௅I!|JUr4o/zš #iz1gjtH$w"nwvn֭%k̉'lc-{t]"ę 4NΥJ~cǞ$yp{Y>zj \VGO㫣afR11흠V,-)ɘgοhCpͤۈRMk.#wWtTV7ё̾uY].?xfgnvI[~>wLXi_ڶ}kFh] Sraԙl^%$Qӱ;x=㽼{e Gߍkvuhe^ڙHM$ɪB#cRi1ef'"dYY1bMX]}ߏvt*OQtrrRyȔJXə-sBDZz?C8YFJJ5ε7"-∴s-ȹ9/]m4jO& +ZOsKJeR˃O?ſHIENDB`rockdodger-0.9.2/data/images/ship.04.png0000644000175000001440000000261712257577553017532 0ustar krawczykusersPNG  IHDR, sRGB pHYs 4)$tIME /Q!IDATHǭKTESUoiafđ++*H"$!Dn &.1qo FI@haP$ : jIlVN Qޖmk6f@eD>`ߟ(/Dorяzn\cVZilr\(U&*(XD"T(Z˳lp׮;W w4MOxWSjFHHiDr3v۷w^PCpvx5In6k]cN=<22ܟejAC &l\tݻ%=̃;O`'~صεҼtQ*@m݅t~%!ee`||1{`M]D֔ e/gF=Wy;MCin-;>tmuS6%FyZм$r{&vbLEϞ݄nW\z%پs^)$YD!CCATz˜2ZkUZGf֯R]#"˕"quwRXՎ$B"0䫂pDDjcc f":_eq5͂$&Hݮ-lw+E[90( JaD VC6Fb6?V}⿎͵k , IìZʬ/X}##~岪*z@0Ud8(غyaxtU .\CZU$PY: ۚivIk"=k Ő#NJ$3ueRp"y>ŝ.1$ZN7@) 8SF;7Ч#BZN6j! "A<EZ64>Gur&b{R~U l°p7\< G:=s9wcU4@D!< wo's,Wkg`һڦlk3s9RJD"R^Nέ/uoEV"|0 =>?>?@?@@@AAABBBCCCDDDEEEFFFFGFGHGHIHIJIJKJKLKLMLMNMNONOPOPPPQQQRRRSSSTTTTUTUVUVWVWXWXYXYZYZ[Z[\[\]\]^]^_^___```aaabbbbcbcdcdedefefgfghghihijijkjklklmlmnmnonoooppppqpqrqrsrststutuvuvwvwxwxyxyzyz{z{|{|}|}~}~~YuA Y,q8EQ]iu4QmˊעMey$<4]QymǾM$e0AMYeqy4QmMIc_zu/G_v ,8 IU a$(q,8}8EMY]mu <<MQYe eymy(}8Mau||zbWHHHHHHHHHHHHHHH\\\\HHHHHHHHHHHHHH\\\\\\HHHHHHHHHHHHHH\\\\\\\\HHHHHHHHHHHHHiiiii\\\\\\\HHHHHHHHHHHHHiiiiiii\\\\\\\\\\\\\HHHHHHHiiiiii\\\\\\\\\\\\\\HHHHHHiiii\\\\\\\\\\\\\\\\\HHHiiiiiiiii\\\\\\\\\\\\\HHHiiiiiiiiiii\iiii\\\\\\HHHiiiiiiiiiiiiiiii\\\\\HHiiiiiiiiiii\\\HHHHiiiii\\\\HHHii\\\\HHHiiii\\HHHHiiiii\\\HHHHiiii\\\\\HHHiiiii\\\\\Hiiiii\\\\iii\\\ii\rockdodger-0.9.2/data/images/deadicerock.00.png0000644000175000001440000000210312257577553021006 0ustar krawczykusersPNG  IHDR ?PLTEOMMMaMSPMPMR]MMWbzitEXtSoftwareGrafx2SjIDAT(0%m!WR389aty1bD@Sq(Ɓ s# s`"̍oU\H{#PƬCPyh%թ> P?1"Z 2NB55GQ}O%SN) E& 2dO3MHOb7!X?83 JF>avRyhYf̰pa'IENDB`rockdodger-0.9.2/data/images/deadicerock.01.png0000644000175000001440000000204112257577553021010 0ustar krawczykusersPNG  IHDR(/PLTE/---A-30-0-2=--Wbz5­tEXtSoftwareGrafx2SjIDAT( P= v3p4Bn(dV".)jP9NteHUHzT$6T>n,%.xႊG .b-F"iĻDDbbK 5ƮbEStVU!m1;;+.U";W?8& &h6JeH)X*< t7qIENDB`rockdodger-0.9.2/data/images/deadicerock.02.png0000644000175000001440000000210712257577553021014 0ustar krawczykusersPNG  IHDR0NPLTE?==Š=Q=C@=@=BM==WbzcbtEXtSoftwareGrafx2SjIDAT( b vTYvb>ɹP9{,%\"TQ{;m>yE$f-Ơ‹ CXbJJ$j_L`H37Jrܵ?Ll9+ 37Z#pd@=C%VF_]weUL~(B;`M[F'>MNt?jsnq_czG]|IENDB`rockdodger-0.9.2/data/images/deadicerock.03.png0000644000175000001440000000224012257577553021013 0ustar krawczykusersPNG  IHDR(( H_PLTE^^cn^aa^d^r^^^`׷^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז^ז`׷`ھ`````````````aaaaaa``````_____^^^^^^^^^^^^^^^^Wbz tEXtSoftwareGrafx2Sj@IDAT8A0 Ÿg u?H6m;nj,ru0~\݋`$p/ykBFE $VPD=P!OHJIT}cwlb/X{wOJDQ(n7KѥKn31C'w?IZTd*%IENDB`rockdodger-0.9.2/data/images/deadlithiumrock.00.ilbm0000644000175000001440000000151612257577553022067 0ustar krawczykusersFORMFILBMBMHD CMAPW )-~A19bfvj!ZVzRNIr^nE5=BODY  ??? p0X  /@8i1&`@</x ({>I"p@ A߾A?.p|s~zx<w@??` /? ?  P@@rockdodger-0.9.2/data/images/deadlithiumrock.01.ilbm0000644000175000001440000000122212257577553022062 0ustar krawczykusersFORMILBMBMHD  CMAP!"`\ B,?\ B&0F?0 ?x0@|0@C.8<@6`x9/PD9?:E  S ?E8X$98P~.h"> dc= i?|??>~T?(' 880(81@~s` rockdodger-0.9.2/data/images/deadrock7.bmp0000644000175000001440000000366212257577553020203 0ustar krawczykusersBMzl 8  rockdodger-0.9.2/data/images/icerock.00.png0000644000175000001440000000071212257577553020174 0ustar krawczykusersPNG  IHDR txҿsRGB0PLTE!+B o 1(&9G<RF\fWa{xg|v(QpbKGDH pHYs  tIME +IDAT(υJA>YX_ `* ւ\a/r%B8[lA8/ZɾVbs;Eہ|z):+IJ+͇磦at":섧|F 7B>qEPZ 诼ȉf~.vg?ɹP9{,%\"TQ{;m>yE$f-Ơ‹ CXbJJ$j_L`H37Jrܵ?Ll9+ 37Z#pd@=C%VF_]weUL~(B;`M[F'>MNt?jsnq_czG]|IENDB`rockdodger-0.9.2/data/images/icerock.03.png0000644000175000001440000000224012257577553020175 0ustar krawczykusersPNG  IHDR(( H_PLTE|vxgfWa{\RF9G<&1(  oB+!!(/ 6=DKRZ"a&h)o-v1}59<@DHLPTX\`d~h}l|pztyxx|vwqrlmghbc\^WYRTMOHJBE=@8;36.1(Wbz([չtEXtSoftwareGrafx2Sj@IDAT8A0 Ÿg u?H6m;nj,ru0~\݋`$p/ykBFE $VPD=P!OHJIT}cwlb/X{wOJDQ(n7KѥKn31C'w?IZTd*%IENDB`rockdodger-0.9.2/data/images/lithiumrock.00.ilbm0000644000175000001440000000153012257577553021245 0ustar krawczykusersFORMPILBMBMHD CMAP]$(  qqE44 ,$$<,,iUUuYYiiy]]qYYaMM]IImmYEEUAAM<|NI" q?+.vxxs~{x<w@??`//?/? @@rockdodger-0.9.2/data/images/lithiumrock.01.ilbm0000644000175000001440000000122212257577553021244 0ustar krawczykusersFORMILBMBMHD  CMAP!,""N<`\ B,?\ B&0F?0 ?x0@|0@C.8<@6`x9/PD9?:E  S ?E8X$98P~.h"> dc= i?|??>~T?(' 880(81@~s` rockdodger-0.9.2/data/images/rock7.bmp0000644000175000001440000000057612257577553017366 0ustar krawczykusersBM~v(CCCMMMfffDDDDDDD@D@DDDD@DDDDD@D3DDDD@@1DDDD@@3331DDD@3"30DDD@2"!@32@31#332133!0313!3332!#3313""33A33333@3331D333@DD0333@DD@331D@DDDD331D@DDDDD@DDD@rockdodger-0.9.2/data/images/ship.01.png0000644000175000001440000000264412257577553017527 0ustar krawczykusersPNG  IHDR, sRGBbKGD pHYs 4)$tIME68x|$IDATHǭKTESUoiaq1@1.4qa|L\X7&0ai {$1D!J40! 0CO}q1#$}6wQuo}_(Aش鍋7l̐ˈ|-<?Q~WtZh9gJ=PK7.1Qh:|>r\\RJTR*kaa@R5,[o~q(CC?xޑ4=y^KJuDzDH$R8sv}k۷ok;Wk˖דv{ }̃y )"k*GOn׋'۽VRk|32>m4 |>?Nsmi=?۸s3FwV ޼gf|%h_@=}3oC79tlUW" HM&ɚw7 HA*'2;&K̊YˬuҮVuhy^)_ qDHƘbund @`Z3h]DAj$Y-rWnV+ VՈ(@Vu &Z1b v&سl֕y05YuY ;XFG eU] ԑZ $/crOY/ =s V?_h0Q/Ivu.(AQ֙Ͳ3͝;e1dz\JQ$/'ߙW-'HDVp!9UFB@,H "HE!H DŽEv(5DDDR|ynNib r /% }ܕi=ʾs9Ǽp1" o%ލd%m{lLz8?\1w0aɥKDkPE : eˬsA"nҩ YK(qvQ"YD.C; BDpҀ0hαs}9"ŪSe ZHsĂ$ dPOA)aG4qVdR#@A~`HDP)ק4&֯> !5hvf?">uCq1f hBi@bO%siKjg`ښ,gsD"%r䝻_`+VyiR4ef$k^655<ŬDsf,)+ϟ^  OLT*ORiWm2'DumgzH0 Ǟ1 <\BܹVFEv97ԍz˷z1 Zmic,Ey\2yAާzMO mCIENDB`rockdodger-0.9.2/data/images/ship.09.png0000777000175000001440000000000012257577553021420 2ship.03.pngustar krawczykusersrockdodger-0.9.2/data/images/ship.0a.png0000777000175000001440000000000012257577553021467 2ship.02.pngustar krawczykusersrockdodger-0.9.2/data/images/ship.0b.png0000777000175000001440000000000012257577553021467 2ship.01.pngustar krawczykusersrockdodger-0.9.2/data/images/deadlithiumrock.02.ilbm0000644000175000001440000000222212257577553022064 0ustar krawczykusersFORMILBMBMHD"# "#CMAP` 4N>ZI0SjpnW%9c`]e!hE(+BBODYfFP@+@0yN6B&  @3(`@ `r 0AD FHF@3;x$,,/r 3Ch l_#~h!-ȮP%U?֯,b1/O]>/6`Ȁ3hȀ @Wx#kM̀S9!y$| Kf\@*@)ۀVz@, @7W=+@^oDhf ^0h n=@} U_P@*H@u'u_E6U>>][ ?\>^>F"6`unm >&W$@:@/?22  rockdodger-0.9.2/data/images/lifepowerup.00.ilbm0000644000175000001440000000063212257577553021256 0ustar krawczykusersFORMILBMBMHD CMAP` %%CCI.^O_‹)-GГQco7Jςc胃tBDs=?{610JG*-- \D BODY=|~~^>A  @A~d? Ac ^>!`@  ~^>?b}$ Trockdodger-0.9.2/data/images/lifepowerup.01.ilbm0000777000175000001440000000000012257577553024677 2lifepowerup.00.ilbmustar krawczykusersrockdodger-0.9.2/data/images/lifepowerup.02.ilbm0000777000175000001440000000000012257577553024700 2lifepowerup.00.ilbmustar krawczykusersrockdodger-0.9.2/data/images/lifepowerup.03.ilbm0000644000175000001440000000063212257577553021261 0ustar krawczykusersFORMILBMBMHD CMAP` %%CCI.^O_‹)-GГQco7Jςc胃ts=@E?{05/JG*-- \D BODY=|~~^>A  @A>r @z|>!`@  ~^>?b}$ Trockdodger-0.9.2/data/images/lifepowerup.04.ilbm0000644000175000001440000000063212257577553021262 0ustar krawczykusersFORMILBMBMHD CMAP` ##00CCI.^O_Ĺ)-GГQco7Jςc胃ts=@E7{5/JG*-- \D BODY;x~~~A? @RL$0@: ?_a>`@  `^>?b%| Trockdodger-0.9.2/data/images/lifepowerup.05.ilbm0000644000175000001440000000063212257577553021263 0ustar krawczykusersFORMILBMBMHD CMAP` ##00CCI.^O_Ĺ#)AQco7Jςc胃ts=@E7{5/JG*#! \D12[BODY;x~~~A? @`L 0@: ?_a>`@  ^`^^~=`!x Trockdodger-0.9.2/data/images/lifepowerup.06.ilbm0000644000175000001440000000063012257577553021262 0ustar krawczykusersFORMILBMBMHD CMAP` ##00CCI#)A]UU;Гo7Jςc胃tDf>E{5/ k5SFG*--D12[ _BODY;x~frAO@`O 0@```@@>FFFf=~q, Prockdodger-0.9.2/data/images/lifepowerup.07.ilbm0000644000175000001440000000062612257577553021270 0ustar krawczykusersFORMILBMBMHD CMAP` ##//CCI%'%+@]UU~z22Df>I{5/ S FG*--D12[ _ BODY;x~BbA@@0>PpP,??``@>BBB=b)|\\ rockdodger-0.9.2/data/images/lifepowerup.08.ilbm0000644000175000001440000000021612257577553021264 0ustar krawczykusersFORMILBMBMHD CMAPfBODYP}~?~}rockdodger-0.9.2/data/images/lifepowerup.09.ilbm0000644000175000001440000000021612257577553021265 0ustar krawczykusersFORMILBMBMHD CMAPBODYP}~?~}rockdodger-0.9.2/data/images/lifepowerup.0A.ilbm0000644000175000001440000000021612257577553021275 0ustar krawczykusersFORMILBMBMHD CMAPr BODYP}~?~}rockdodger-0.9.2/data/images/lifepowerup.0B.ilbm0000644000175000001440000000021612257577553021276 0ustar krawczykusersFORMILBMBMHD CMAP9BODYP}~?~}rockdodger-0.9.2/data/images/lithiumrock.02.ilbm0000644000175000001440000000222212257577553021246 0ustar krawczykusersFORMILBMBMHD"# "#CMAP` M@4t`N]M>nZlYIG;0{fSjpnkW7-%UF9!ycv`r] |e2)!h,%fUE;1(@5+bQB(!BODYfFP@+@0yN6B&  @3(`@ `r 0AD FHF@3;x$,,/r 3Ch l_#~h!-ȮP%U?֯,b1/O]>/6`Ȁ3hȀ @Wx#kM̀S9!y$| Kf\@*@)ۀVz@, @7W=+@^oDhf ^0h n=@} U_P@*H@u'u_E6U>>][ ?\>^>F"6`unm >&W$@:@/?22  rockdodger-0.9.2/data/laser0.png0000644000175000001440000000061512257577553016262 0ustar krawczykusersPNG  IHDRtXbKGDD`O pHYs  @AtIME.*-tIDATx=N@P8@"=sA$Jn:"T Ůo{'5>3 [nC'ߪ-psܖVώ [?@v[ͭ xgܞzg:O(_3 H]թ!i~9lN47PNE B+-6nViMzW|-e\,R1ԃK.85$!O݈ep~UqNdbQNd^4%-m'+_J-ZIENDB`rockdodger-0.9.2/data/laser1.png0000644000175000001440000000054712257577553016267 0ustar krawczykusersPNG  IHDRtXbKGDD`O pHYs  @AtIME.9dIDATx@Cy,{6c8@084 oa:6SPZ<67nM stellar < @ members... @c+2 tommi makila: 'didF@ ya notice d invasion@of sokea erkki? ::) '+2 nucleupp: 'where'sda disk maggy???' + special 2 bukefalos'not so hardcore, butanyway... =) ' +2 vapaa-palo kunta: 'i've learnt it too!'+2 all techno-freaks!sorry dalmak... =)  M.K.\\  \\  S*S* S* S*S*S* S* S*S*S* S* S*S*S* S* S*S*S* S* S*\S*S* S* \S*S*S* S* S*  S*S* S* S*S*S* S* S*S*S* S* S*S*S* S* S*S*S* S* S*S*S* S* S*\S*S* S* \S*S*S* S* S*  S*S* S* S*q9:S*S* S* S*q0S*S* S* S*S*S* S* S*q0S*S* S* S*S*S* S* S*q0S*S* S* S*S*S* S* S*  q0S*q0S* S* q9:S*q9:S*S* S* S*q0S*S* S* S*S*S* S* S*q0S*S* S* S*S*S* S* S*q0S*S* S* S*S*S* S* q0S*  q0S*S* q0S* q<S*q9:S*S* S* S*q0S*S* S* S*S*S* S* S*q0S*S* S* S*S*S* S* S*q0S*S* S* S*S*S* S* S*  q0S*q0S* S* q9:S*q9:S*S* S* S*q0S*S* S* S*S*S* S* S*q0S*S* S* S*S*S* S* S*q0S*S* S* S*S*S* S* S*  @S*}aq9:S*cS* cS* S*`q0S* S* `S* `S*S* S* `S* S*`q0S* S*  `S* S*`S*S* S* S*`q0S* S* `S* `S*S* S* `S* S* q0S* `q0S* S* q9:S*}aq9:S*cS* cS* S*`q0S* S* `S* `S*S* S* `S* S*`q0S* S*  `S* S*`S*S* S* S*`q0S* S* `S* `S*S* S* `S* q0S* q0S* `S* q0S* q<S*.q9:S*.p * p* p*p}q0@*p}* S* | * S*|*  * .*}q0@*}* րS* p}*.pS* * p* .*}q0@*| }* .| S* *|0 S*. *   * |*|}q0@*.}q0* q9:S*  |}*.q9:S*.p * p* p*p}q0@*p}* S* | * S*|*  * .*}q0@*}* րS* p}*.pS* * p* .*}q0@*| }* .0S* .| * S*.* .| * q0*.}q0@*.|}* q0S* .}q<*.q9:S*.p * p* p*p}q0@*p}* S* | * S*|*  * .*}q0@*}* րS* p}*.pS* * p* .*}q0@*| }* .| S* *|0 S*. *   * |*|}q0@*.}q0* q9:S*  |}*.q9:S*.p * p* p*p}q0@*p}* S* | * S*|*  * .*}q0@*}* րS* p}*.pS*  | .  }|}..|  ..| .}.|} .}Zq9:S*Z`S* Z`* Z`S*Z`q0*Z`S* Z`* Z`S*Z`S*Z`S* P`* `S*``q0*`S* `* c``S*Z`S*Z`S* Z`* Z`S*Z`q0*Z`S* Z`* Z`S*Z`S*Z`S* P`* `S*``q0*`q0S* `* `q9:S*Zq9:S*Z`S* Z`* Z`S*Z`q0*Z`S* Z`* Z`S*Z`S*Z`S* P`* `S*``q0*`S* `* c``S*Z`S*Z`S* Z`* Z`S*Z`q0*Z`S* Z`* Z`S*Z`S*Z`S* P`* `q0S*`q0*`S* `q0* `q<S*Zq9:S*Z`S* Z`* Z`S*Z`q0*Z`S* Z`* Z`S*Z`S*Z`S* P`* `S*``q0*`S* `* c``S*Z`S*Z`S* Z`* Z`S*Z`q0*Z`S* Z`* Z`S*Z`S*Z`S* P`* `S*``q0*`q0S* `* `q9:S*Zq9:S*Z`S* Z`* Z`S*Z`q0*Z`S* Z`* Z`S*Z`S*Z`S* P`* `S*``q0*`S* `* c``S*Z`q0q9:Z`q0S* Z`q0* Z`q0S*Z`q0q9:Z`q0S* Z`q0* Z`q0S*Z`q0q9:Z`q0S* P`q0* `q0S*P`q0q9:`q0S* `q0* `q0S*S}q9:*S| * S*Sq0* S | * *`* S *  *@q0* *  * SS}*S * SSS*Sq0*S S S * S *`* S * *@q0* q0* *  q9:SS}q9:*S| * S*Sq0* S | * *`* S *  *@q0* *  * SS}*S * SSS*Sq0*S S S * S *`* S * q0*@q0* * q0*  q<SS}q9:*S| * S*Sq0* S | * *`* S *  *@q0* *  * SS}*S * SSS*Sq0*S S S * S *`* S * *@q0* q0* *  q9:SS}q9:*S| * S*Sq0* S | * *`* S *  *@q0* *  * SS}*S * SSS*Sq0*S S S * S *`* q0S q0* q0*@q0* q<* q0*  q< Sq9:*`* `q9: @`q9:*`q0*` @`* `q0*`q0l@`q9:S* `S* ` @`q0S*` @`S* `l `q9:*`* `q9: @`q9:*`q0*` @`* `q0*`q0l@`S* `q9:S* ` @`q0S*` @`S* `l q9:*`* `q9: @`q9:*`q0*` @`* `q0*`q0l@`q9:S* `S* ` @`q0S*` @`S* `l `q9:*`* `q9: @`q9:*`q0*` @`* `q0*`q0l@`S* `q9:S* ` @`q0S*`q0 @`q0S* `q0l `q9: S Ű ż @q0} } } }Ű @ż} } Ű ż} @}q0 h h S @S S SŰ ż @q0} } Ű ż @} } h hSl@Sq0 q0S lSq9:l@q9: S Ű ż @q0} } } }Ű @ż} } Ű ż} @}q0 h h S @S   S SŰ ż @} } Ű ż @} } h hSl@S S lS q9:** @ ,* q0*, @ * * * * @hS* S, hq0S*S, @hS* S, ** @ ,* q0*, @ * * * * @.S* S, .q0S*q0S, @.S* q9:S, q9:** @ ,* q0*, @ * * * * @hS* S, hq0S*S, @hS* S, ** @ ,* q0*, @ * * * * @@S* S, @q0S*S, @@S* S, q9:** @ ,* q0*, @ * * * * @hS* S, hq0S*S, @hS* S, ** @ ,* q0*, @ * * * * @.S* S, .q0S*q0S, @.S* q9:S, q9:** @ ,* q0*, @ * * * * @hS* S, hq0S*S, @hS* S, ** @ ,* q0*, @ * * q0* q0* @@q0S* q0S, @q0S*q0S, @@q0S* q0S,      q0Pq9:q0\ .q0\.q0\q0Pq9:q0\ .q0\.q0q0\ q0Pq9:q0\ .q0\.q0\q0Pq9:q0\ .q0\.q0q9:q0\ q9:q9:Pq9:\ .q9:\.q9:\q9:Pq9:\ .q9:\.q9:\ q9:Pq9:\ .q9:\.q9:\q9:Pq9:\ .q0q9:\.q0q0\ q0q0q0q9:@L`@@ q0@L,@ @L:,@@ L.q0@ L@@@L`@@ q0@L,@ @L:,@@ L.q0 @   L @q9: @ Lq9:@L@@ q0@L,@ @L:,@@ L.q0@ L@@@L@@ q0@L,@ @L:,@@ L q0 @L, @LP@L`\@@ P@L,\@ P@L:,\@P@ L.\@ PL@P@P@L`\@@ P@L,\@ P@L:,\@P@ L.P @  L @P @ LP@L\@@ P@L,\@ P@L:,\@P@ L.\@ PL@P@P@L\@@ P@L,\@ P@L:,\@P@ L P @L,P @LP@L`\@@ P@L,\@ P@L:,\@P@ L.\@ PL@P@P@L`\@@ P@L,\@ P@L:,\@P@ L.P @  L @P @ LP@L\@@ P@L,\@ P@L:,\@P@ L.\@ PL@P@P@  , :,  ,,,,,,,     EA=952.+)'&&&&&'()+,/1368:<=>???>>=<;9741-*&# 'RSQNMLIHFDCA?=;:86431/.-*)'&%"!  Cb{zwutrqpnmkihgdc`_^[ZWVSQOMLIFEC@?<:7631.-*'%"! ɻ MA??===<;:87764321/.-+*)'&%$"    -;Dlmigdb_\ZWUROMJHEC@=;8631.+)&%"  CHHFDA@=<:87431/-+)'%$!   +)'?ldb``_^\\[ZYWVUSRQNMLJIFEDC@?=;:763!.-.)%3IDCZ}wvtqpmkigdc`^\ZWVSROMLIFECA?=;:74- %"_VYWVSRONMJIFEDA@=<:7632/-+)&%"  *&$""Fc`_^\[ZYWVUSRONMLJHFEDCA@=<:763+!+-%"!  AA@=DINSX]bfjorrrrrrriF .Srrrrrrrrrrrrrrrrrrrrrrrrrrri2.CB>;730+'" ÿ  &+17Wnrqqqqqqqqqqqrrrrrrrrrrrrf[N@1"ƾ  %+059=CJPU[_cgkosssssssssmZE1!  $5I_qqqqqqqqqqqqqrrrrrrrrrrrg]TI?3' "',05:>CINTY_dhlprrrrrrrrrrl[J8) ".=NbqrrqqqqqqqqrrrrrrrrrrrrkbYQG=2'ƿ !%*.38CGLQUZ_djnrrrrrrrrrj_TH=2' (1;FR^lrrrrrrrrrrrrrrrrrrrrrne\TLC9/% ¾ $)/4:>BGKPUZ_cgkoqrrplhc\TLC:2*#!&,27>FP[enrrrrrrrrrrrrrrrrrmg`YRKB:1)  #'-27;?CGMRW\`dhjkkifc_ZTMF?70)# #'+2:BLT]dlrrrrrrrrrrrroid]XQKC;4,$   $(-37;>BFKPUY]_bccb`]ZVRMHA:4.(" $*19AHPV\aehkmoqrpmid`[VPJC<5-&  "'+059=AEIOTX\_aaba_]YVRNIE?:5/*%  #(.4:@FLPUX[^beghgeb^ZVQLGA;4,%  #',15:=AEIMRW[^`aaa`^[XTPLHD@;61,)&$#""""""$&).37;@CGILPSVZ\]]\ZWTQNJE@;4-'  !%).27;?DHKPSX[^abccba`]ZWSOKFB=83/,)(''''''')+.26:=@BDGILORTVWWWURPNKHD?:3-&  "%)-269=@DGKOSWZ]`abba`_]ZWSNJFA<840-+)((''&'(),05982+%  !%).37;>BEIMQTX[]`abaa`^\YVQMID@;730-+))('&&'(*-159BFJNSVY\_abbbba_]ZWSNJFB=840.+*)('&&')+.259CGKOSVY\^_aaa`_]ZWTPLHE@;72/,)(&%$$%&(*-147:=@CFILNOPQQQQPOMJGC>94/)#  !$(+/48ADFIJKLLLLLKJHFB>:61+&   "%(+/37;@DIMQUX[]_abbcba`]ZWTPLIEA<84/,)'%$$$%')+-0358:=@CEGHIJJKKJJHFC@<84/*%   #'*.159=AEJNRVY\^`bccdcb`]ZWTPLIEB=950,*'&%$$$&(*,.0247:;840,(#   #&*.159<@DIMQUX[^`bdeeeeda_[XTPMIEA=951-*(&%%$%&'(*+-0257:<=?@ABBAA@?><962/+'#  !%(,037:>BFJNRVY\_acdefeeda_[XTPLIEA=952.+)'&&&&&'()+,/1368:<=>???>>=<;9741-*&# """#'"" ++++""&#" ++""#"  '*"#322"."'2*"#+*"" /;6;??:7?J?2/?OK?*+?>???>>??*/6" ¢—¢‹ʢ«?Wgnokg^V:?of_R*7orR;?R>+#;WZB3???2?B" ?:??*.‚ߢ¯#??S^RO_j_nf^ZRRF2* '’Ң;* /?:?gbWgZSn~n_g~~Z?VJ2/;>*/?2 +ҢҢ  7;2??ZV??cbgojkjF?ob:?R*/:"  Ҫ¢֢¢¢‚£¯ /* 76/7;??WR?WVSZR_rR_b?r~w~on~fooooZ2?_R??:/;;;>*" үҪʪ’—¯"  +*""#/?N?/;?:+?Z>;_R3?R2?g^RW_kjRVR?g^R_fbgzZ?_Z2?zZWfRWfkrR?_^^fbR[fB?jB?_fJ+?_R*?WVB[J?J*7??2;">"& ⓿ ү⧿ګ҂ү⣿Ҧ+"*/:6" "'?;6."#;>"'?Z2?R?J*/??N: '??>"[Z?2;?_R*/gR"+?[R2+?WJ??gR"/?2?V2/?:;R>+??2;???*'7?2?J+.*/2+"'*+6*2""*""— ";:?: " />?*;62+?"?6?:/?*/?>?WJ??*/WZ?++?bB?j??RRR>?V?2;?JSZJ??^>/?fR*'?_R2+??ZB6.&3?bR:?R>/?:"/*';2"/???" ";*':"" #"  "֯ "Ңƒ £ڦ£ꢗ⪫« ګ 2*'¿7"/6& /*"/>7*';"/:"+2"/."/>"/?* '?>2.+/?B ?"/_R*?B'?J*/?^R???R:/?S[VK_fZV_bJ[kR_Z;?_~R?gR;?oZ&?_Z:3?ZF?[_R2;_b2?:+?V>"'?>;>???:*?2#/2"?2'+#?:/.""⒯҃ ’򢂿⪯Ң’҆҂Ӣ‚҂ƒ‚¦ʢƦү":"2"&&';:;?6."7?2"?gRWbB"'?B?W^B?oj^Z;?ob???SRSozZSgzB?j_R?Wo~ZWgr>?ojW{r*?z6?b7?r_fRO_bob?WZ?_RWz^VR??b?_rZ>;?nZSgb*?fB'?R+;?W^2?ZF??">.3?27?:?"""#.¯§үʢڧªƫꦓʒʪʒ¢֢«¢Ң’Ғ֫җҧҫ¢ҿ **+*>"72>2 "':*/;2"???:+??R>"/???J:?R??V?Wb_rB67?R#?bR:7WR>?r:7SOWB7?f:'?rB?R+?b"?R?[R;?^B;?SZ*7_R;?V>#7WZ>&7????J3?fB?J:;WB#?:?V:?bF?>7;;7?nR+????2?V:'?nB/V:?gB?Z"?B+?Z"Z: /??6;:7?:/?WB /R?V"6+?>?R&..""/?":"2""ң"ҧ⓿֫ҪʫʯƢʇꢯƫ¯Ʈƪ⢗«үҢ⒓֫ʧ£¯ګ⢯'6"¿ 2" #*"7N": /2?>?2??2'?^:';OVR27VR???fB7_bOZ?_nB?~R?gbgnR?_n^gkfcoj_kjbZo~R?rccorbWoZ?_nZW~R?onB?jRSgf^_[g^B;?b_^B2??S_R??f^??oR"/^B'?R/?ZRR?2+7??:/?fB*/?>2/WR";:";R2 '?J"+.'?R*?:+"?> '*#""'"' ҿ§⢯ү»Ғҫ҂֢¯֫ &ү "&".* ?:>/2'*+*#/*+6.+ +?:?*/6&&"#.*+33?>"&+;*#?:?R?b*/>" ?Z2???> ;?WbB/V:/?[R???2/?VJ*/?jR+?>+?R??_R>3?VR2#?^F;:;????>?S^:+?:;>&/?bR>;;?R>6;?67Z:?:"?ZJ?;?R:;;2?>/R2+?Z2"/?2?B"?R*/?:>*+?2'+"?BW2?:2"."'3."?*+?*6""&" ;>?2:"/2?>** /?"2 ?*"+2:;> /" +*+ ""/""¯ ¯һ—үү§§⒯ҧ ¯ү¿&¯";":+*2""?"?">"& 7**7?2"7"?"?"?:72?>?2?Z*?jR?2/??:;;3?jR3:#??_Z?gB'?_b"?bVf2WZ[[^R27_b????ZWR/onB3?jB;VJJ?Z>?WFVR?RF*;Sob2?knV2?Z"[R?3?j"wj"?>?*?^:?B?R?R"'>2/6???>*/?B/?R*??>" ?:'2"32"/";2'"2/2/2/2 &""/*ү"""'""""'"  *72/*/2ү+/*—"&"ҿ  ү    ¯  * ";"+*#*/?";:"?:?2':*2&/"+". "/*&'2""&'+*"/"72+6**"+?R*:?Z2*/;2&/?R:?N?"?B#./?F>>6?V"??S:'?Z>"?R"/fR??:;^2_R2?[R?J*7_R*+?^>;??K;?WR??OJ:/?_fR[R*/[R2?R"'?[R*?b"?B /:';:';:6"/?:*6&#*"+*+/+'*/:&/+/*'* "722/> '+&" /* +""?:*+:"/:/:/"2&"2" &#"+" #"""""" ҿ&""  ">"  +"'" #"+"""'"72+"7N"?*?"'*/2 #7?>/2 /;***"':+++"+.."/7*/:&/;"/*/?2 &#++7?:"6*/>"?2 >2'""+7*"/?2?2/.;*:7*&+"#732"'6&"+>>:"+"?:&/>*/6*"';6*"+*/?2?:7:?J ?:"3??>"?:';* /?"'?:/>"??* :2."+>*7>"/>" />2"?>#&".*++;:&+"6* /*&'"'"""#/* /"#** +"7"; " "."  '""'"     ++" * " "" "   "#"  "    *   '"   #"  " ':"+"+* " 2/* 3"'* " +*"#:""+""'" +*&"#+"?2;*/.""'2" #2*"#+3*/*"+32"+?:;* >";3.."#+#/2/?2#'*#/*#..'+2*'+.+++.*#+2&'72*2.*."/?:"/2+6*/;2*'+;2"+2++."#2"/:"/;.2"+2"&"'*"+."32*/2*""#+&"'?2;>?2+2:"&'."'2"##" '+*"* ""      "        "  " "" "" "" '" +"+" #*"  # " " /"& +"+"+""+*" +." #*'&" #"'" "" +"""""""""" ""#"""""#""""&""""#""""""#&"""*"+"#+&&'+&&'#"""+&.&'*"&+&+2"#3*"&""+2"'3+"++&'*&#+"+++*"&&"#'++"+*""""+."#*&&"'+*+2&"#&"""""*""""'& &" "#""" "#&#" #""" "" "   ""                                    " ""  " #"  """"#*"""#*"#""""&"###+*"&&""'+&"#**+*#""+'#'**&&"'*+++"'2*"'++"+2"#/+"'+.*&+++"'/2*"'/+'&&+*++***+*'++*&&++*&#'*&++&'++*"#+*"&+""'.*"&'#&&&&&""&"&**"""*+#"'&#""#'&""'"""&*"'""#+*"&""#&""'"#"#"""""""""""""""""""                                                  """"""""""#"##""""""""""""""#"#""##"""##""##"""#"""#"#"#""""#"#"#""##"&"""'#"""&&""#"&*"#'*&#'##''+*&#&**&#'**&**&&&&''&##&&&&&#"#&&"#"""#""#""#"""""""""""""#"""""""    '"6'"" *  " '"* * "'"+ '"+""  # #"" +2""+":"+"'" 7*/*#" 6++*?:";OJ*?[RJ2???2"??* .2".ү"'*  "/;3?>">"??;?gb"/[R;*+>;;??_ob_VWjR7;2/7?SWgf_gfZ>+?:'2""#?Z>7?bR?>?R2"#'7?2/?:"ү" 3++6*'2"'" '2+""  "#/*/??2&?R>2??:?>?>+7?:...*#+22"?:;*/2'.&/?:";?>;.3???;3;;23?2/6* ҫҫڦʯ   /*/**"#"':" ."+."6" /*&+" /*&/2/?* >.++'7>:*'/?:&763:*+?>++76.3?:"+?2 /;" 72*" &" —ү⪿ګ"*+*"'32.3?:&;?>????;?ZJ??J;?J?^V;?_bR3?_RSJ;?jB.?SF??;?>3??27?*;;:*+?"""++"+" ."      #";*?2?>"+??27R:+?F????S[R??_^>?_RSV?VR?SRRZR;?VNR?3?^B'?R2+?J:+;?2&+?:."?"'"      " ""#"6" '2*&"?> /+'3./*#*"#6"2"+&++"'*"  "      " &2&'2"?:"#3>:3;23??;;?:?>+?J:3??;?F:?>7??;.7?J2?J2"#??2';+32'2"""&""""    "    "" ##*"/"/*/2'?*7."#'&+.""72/6*"+72*?:/:."/?* ;*'2"'+&" "   * '+.+"#"72 ?263?2 '?62"'?:"';;336:2*7?2'>;;*#7;.&+;*'227*2"#""/2+2""/""#+*'" +"     "" +*"+7*3++/+/2*/>>&?>+/>2/?2+737;;:2+/7>;2"/?2"+:2/2"7:"*&++""#&"*" +""  ""  "'&#* ""*+""+*"/".+*;*2"+""""+&":" /2"7:"2"" '2&2"."*&   ""*#* ""#"#""#""/*32"/.#"+3*&++/."+2+/;2+:+2"76/:*72"+."#&&# " +" # '    "    *"#""+"&"+.&&#/:"7*'3+/*"/762"+6232&'7>2"'62/;*3++2.2*/:&+2;*"/2'"""#"" "  #"     #"&#" &'*+*'"+"#/*/*""#3**/6"+:";*#7:" ';*+&#""+*"""#"""# "# "      " +";"32" ;2"'62"'6*"'+'.".+*"/:" 2*#"'*2"#*""'*+*#" ""&   ""  ""  "  "" """&"."+*+"##+2*7*+*'+/*"/2"#;2"++.*"72"+*+"'2'+"/" #" "       """" & +&""/2'2"#&.&"3* 6"'**&+"#+*"#*""*"*"'"*"""& #" " "     " "&+'"#*"+*'2*7*'2"#+2"/2"#&+2"/*"/* '2+"""#*""" ""*""    """""""""""*"/""#*"#.*#22&72""+33*:*'"72"+;2"':2";*'*"#"#"#" "     "    "*&"#"'&+"#&2&*"'."""'#"*+*"**"""&&&"'"+*#&""#*"/*" /*&+"." ""+**" ""     "   " &"#" ""&"+*#&"#"#"#/" '2&'*"'."2*&"""'&'"#"& "  "    ""  #           " +" #"+3"'*/*'72"/."+*#"+/2*"/62"+;2"+26+"+*#;:" '???"/?N?* #" ֪¯¢¯  *;?+/?>2+++7?:;?WZWZRSZR>;??K??_kbkj^VWZB;?>?F:?[cROWbRRF?62+26"'.72.;>>;6*"/* ګ¯       ++"'37;?>;??VJ??_R?V[_VOW_Z??^R??NR???J??????;??J:+?R>/???????J>6??>2*/;*#*" ¯ʦƫҪ§Ҧ #" ""&*##+./2"+;;;2+;>:2/3;:2+3;2:?:/??27??;??>???????RF???ORF;?SJ?????:???;:>;?>2623:2*+.&""  ƫ«¢ªʫ   """#32223???>???????ZR??_ZJ?WbZJ?W[ZWJS_R?SZ_R??_R???N??????:7?:"/>2"'//&"+."*  ¯Ҫ  &"/2"++/>6;?;??F;?SR??RSRSW_^WWcgbV[gbZZ^f^J?gV?RORR??R;;??7?>7:63266"/""   "+*#+*&'7>2";?2+;?>>;;?>??>6;?;2;?>63;:;:2;2&/>2"#.62"3."#'*++"+""""&       '"#/+"'32/77;?;>>???????K??SJORNSRNWVJ?WRKRJSR??RRF:?RF:7??;:7;:2./;2*"/2"#&" '    ""+*"#+&++*&+/36*#7>63+/;:.+7;2/;;*+;:::23??:37;>63?>2/;;272/22./*'+.&"""   """'"#+**"'/2"#7:2++?>*+??:/??;;;??>:;?>3>?>:;??;37?>2.;:2/+7:*'++.*"'2*"#'*&"""&&     &&""#+2*'32/3;;27?;??:;?J27??>?????;;??>;???:3??::>??:27;;2236++2"'/*"#*""" "   """#'+"'2"#++*##/6."#;6"#/72++.662+/:2+223222222+/./..2*+2..&"+3*"+*"#*""     #"""#+*"/:*"'/72*#7>2"/>2+33;;+3?:23;63:67;2+3;2+.232****/*"++"&"      """"""#++*"+6/3.+;2+3::23;?:+7??:.;?;;;7>;?>67?:/;>2;;23376*+.32'"+++*"#&"""""""        ""+"'*"#+&""#++'**'++..++/:.++/:2//76.363:.+7;62+/62*/32+&+62"/6*.."#""""       &"'+*"/2&'/36:*#;>++/;2//6:2+;6+22/72*/:6.&/.+.*&/.""+*'*""+"""""            " '"&&"#*"""&&*&++**+.2++..22//3./32+/32.++/22/.*/:*'.*""#/**" "      "&"&#""#++&#'+*"+2*/6"+2*"'/..*"'7*"'.+.+&+2+*+.+&++*''++&&*+&"&#'+&/*&""       """"#+&"++"'/*#/.*/2+/./32..373.+363...+32*+.*/+"'+*'&&+"+*""""                  "            #"&""""#""#+"++"#/++.+&+2*+22/22/2662+7;2..7;222773.+/2*""'7>2&+2&#""""+//+"  "#"   "  +>*&" ;*"+2"'"+"#"+??>27?2"'?J"/?>7>?^J3??>"?R* 7R>6;?: ¯'?>"/WZ>*.7"/*/?J"/23"?R>"+2‹گ""ҫ«ˢʿ¿—ʢ‚+/??"/J;?R??S_fjZksf_~Z_B'/?OR2ªʪү 7???J?VVRNWonobJ>3;* ;2+ҢƫƯ'/?J2?WSRKW[_Z[gbgjgojg~grgonofcV?VB>6+?>;?2"" " Ƨƫʫƪ#727;??WRSf^^_ffkzboz~koonj_^^[^RJJ????:'?*+"""  «ëǪ#"'?:;??NRS[_gowsf_b^ZR?J????:*"&" ¯« **&++;>;???KRW_bgoroonbkf_^__ZSWWR??J????????>:236+**+*'"       """"""'/*+.+//;:3;>?>???????KJO?OWSVZ_^[__fjc_kjgfknnnkownonnjnnjfggfb__^[ZSRRRJ???>?>;7..+*&""  « ""#'**++/337;?;;>???????????JJ?KJNKRRROKOONRRONJ?NJ??KJ??K????????K????KNNNNRRRJORVRRRSRSSWSRSWRRWWWVWZVZZWWZZZVZZWVWVVRSRRRSRRRRJ?KJJ????????>??>?;;:;:72//32./32++++'""""""""  º¯ ""'+/./26:;>???????????JORRRRWWVVWZ[_^^^ZZ[_^^^^^^_^^__^_^_^^____ZZZWWVWZWVWWVVVSSSRSVVVSRRRRRRSSRVRRRNRRSRRSVVSWVSRSRSVVWV[Z[WW[WVVVWWW[VWWWVWWWWZ[VVWVVVRWVSSRRSRNJKJK????????????>?>>;;62./..+**&""" ¯ "#*''+++++.+.///32236632::;;;>?>???????????????NK???NNJKRSRNJ?KRRJNNNRSRKONRRRNRRROSRRJKSWWWRSVWVRSW[Z[Z[___^____bfccfbcggfggkkfc_cgjjjkjkjjgkjfgkjfbcggjjffb__^ZZVW[[[WVVRSRRRNSR????????????>>;;;66232.+**#""" ¯¯º« #++++//776;;;?????????NRRRSRWZ_^__ccfbc_bgfgjknooonooooosrrroosrrooooonnookknnkgkjgfbb__cc^^__^^VVVVVVVVVVRRRSSRRRNNOJ??????????????????????????>????>;;;;>?>>;;;;;?????>;;;;>>;;>>:637;;>;;?>;::;66766;73.+.33./+*++*&#&"#"""  «¯ ""#'+++++/../37;;;;>;;;>???????????KNONJJORRNRSRSWZW[WVWSWZZ[Z^ZZVVVWZZVWSRRRRRSWVVRRRNJJKJ????????????????????????>?>?;::;;:6632......//./.+++++*++*++*+*+*#"'&'&&&"&&#"#+++**++*&&++*&'+*+&++++/.++../.222223336622323766766:6772...2.++.+/.+++*#&*'&#&""""" ¯ '" "& " ";2* 2/"?>*+??2+??>+?R>3?RF;?RB;WZ???WjB??_ZS2?WjR;???;WbRV"???[ZR:+??RW_F?>"'W_Z??B??2?bZFWZ;>*;F3?R_^B?:+?N>7?VWZ??J";??J2?nbS_b*>3?>/?fR?b>;ZB7???"/??ZR_VRR>?R27?2+;??Z??RSR???:";"/>"/?????RF?;;:"""*"&??:*+.&*" ""ڢ"  "" ""   """" #"#"/*#."/6"&+232';>"+7:272#;*3./*&/;>":+"+*&&""" #"" +"#"'" '2#"+/72"/?2+7>?:'??27;??;?????O??R??R???WVR?O^ZJ?[[Z_VSgZO[[Z__ZW_b_cob?_ZWZ?_jR?_ZVZR?WV?VB?Z???J?>?>;???;+;>;*#/./2"'+"+"""          ""#"# """#"#*""&*"+"&**"+&&"+"*"""""""""""#          ""#"""""##**''"+*'+&#.++*+6/++32/+/;2+666;2/7;::63?:3;;:;?>:;?;;>>??>6;?;;3??;6;?:367;;27;:2.376*+62+*+2.+#'+++"#+*"""""""#"""""*"""""*"#+&"*&""'&'*#'*+*&++++**+/++32.*+22.+322/2662222673:2362/37227362/32++..++++++++**'+*""#&"#"#"""                 """"""""""""""""""""""""""""""    """#""""####*+*'++++++++++..++/2/2.22323332332333323322322323322333222//+/222/.++.++++.+.+*++++*++*****'&'+&#'&&'##""""#"#""#""""""#""""#""""""""""""""""""""""""""""""""""       """""""'##&"'&&'*&&+++*+**+**&'***+*+**&*****''&'####&""""#"""""""""""""""""""""##"""#&'&'&&+**+++++++++++.+/....2..2..22//332./222////....+++++.+++*+******&'&#"#""#""""""""""                 """"""""#"""#"#""#""&"""##'"#"''''&'&&&''&'&&&&&+&++*&&&&&#"#'&&'&&&"#"""#"""""""""""""""""""""""""""""#""""#""""""""#"##'&''&'''*&+++*+++++++++++++.+++/+.+........2.//2./../////..../222.+.........+++++**+++++**''&&&&##'##"###""""""""""""         """"""#"##"#"""#&&&&&""#"#&&*'''*"''&'&&&&*&&''#'&*&&''#""'&&'#""#&&""#"##"#""""#"""##""""""#"#"""#""""""##""###"""""""""""""""""""""""""""""""""""""""""""""""#""##"""#""##"""#"#""""###""#"#""""""""""""#"""""""""""""   " .""*+2"* " /*& "'"+"/;"?*. /22"?"6 & ::#*"  *""&/*/:"*/+"¯ҿ+2'?:'?>7?:?"?"3?:"/VB/:"?*.“/22?JO_^F?R>+?RF?SR"*""֧*/"WJ?;?fR2+?2?>+" ?*"?:2"/?:3* /2?*+??R2?" '27??*?^J"'?J:;2+;:"2+"72/?:"?SF2#?>"7:'/"';6"2";* /:7"/2&;>"?2+".&"+2"?: 6""&'& "":*  './&"'"" #"/*'72+*'*7* #""" &&/2""+""/?"?" "*"*" "+" &""/;*;>?:"/?" ';*+2"/""+"+" &'2. "'&# " .2 "  ;*'"H 7?";2.*/?"7**'"/*"':"+23*?""':"/*'/?2>:"#&/* ?::*" '"'**  +"." *""/*+***/"* :*;>7*#2"+"*+/;*;3;* /R2?"?>*/>2"'?;:"?2/2/63."+3:;:"'>"3:++2*'3."#6*+2&'??"72"/?* :2";2#+/27* "+""*" /""'.. ""*.7"*2" *##& "" * '""&"  &"3"+"#"'*":" "'""+#"2#+"+" '2 #"*" "*2""* +" /:">":"+*+"'*#"""& 72 +>"+/+2":"2/*'+ 2"+"/""  "*&+2 " " 2+"#& :*"/"+"+"* +& '*+;"" &'& ""&" &" +" &+ /6'2"+:"." #""/23*";*?+/:2":'" /:++"/"'*#++*/*"+?"72"+2&"/2"2"#?2:""+6" /:"+. '>2/* "'2"2#./22"#+"7*/*  #"2"+"/"**" '+*"2*"3"""#*""#"+?*7"*"" #+*.72""+*/&"+"2" +"'"'" *+"+"  " """"""  ++"2+"."/"6"6"/"'/*72* +*+* #7*/:" /2*/27*+"+" 2""  &+*"  ."*"'*'2"/* *"*'"+*:"#+* /:"+"7"+""* /"""""'* &+" +"#&".&#""+&"**&"#'""" +*&+*""#" /"+'2 6""""#""+"'*"""72/*"'*""."*""." """"#"*"++ " #."." "" .""  *+"/"*;*/2 "#*"& """+" ."#"/*'.* /2/?*/*'"'""#"+"+#* ':"';*/" '"+ * '*/26"'6"/2/*""":"&"&+" +* /2 * &"*/6""#"";*3"#/*:"'6"*"" 7". #"""&"" *+"+"+" "  " #"+" """* " * ."'"+"+" /*""" * " #'+* #&& +".**"#""'"/""" ."*"  "  """'"* +"'"*"*'  ** +"/"" +"&".+"#"# '"/*/"&&* * &/"""& """*6"**"+*""2"+" "#""&+&"/"'."6"'*" +2"/*+"""* &  " + " #*." 2"#+.*2" +:"/6"+6" /""#" *" +" * +*" '6"*"#"*"##*#.&/"+"" **"'"'"'."6*""&"'""2""'&"+""& +"""+"6*"7" +3*2 "/2/* '" +"" "&"+" +" '."2" #"+2"2+""" +" '* ."*" " '&"."." * /""'"'"+"/* '"' /2* './"?"?2?2 "?6"/27*#;2:*+";:""..;"".+:"  '?2""./2'#" /;2"';2""??>"?* ?:*#/;*" //?2;:""  #;>"3;:+&""#*  +"3"#?:++'/;"*""*+++/?2?:2"'++*" 2*"  &""+2;>*;>2+;2/:.*&"+2"+"    ""+"."/*'7*3:"'*/2+"/?:?2+'*/2 /*    "* "#* '"/"2"+*+:*'?:"?>"/?:?*/;6*/?*?2/2* &       '"'.";&3*62"&'62"'"+2.*+:*#/2.*/?*."/66*'22*"+"#7*3*+6">"*+*" "    "" ""*   " '*+2 +"/"3*&"+3*;:"'6"+;2+7:*72"+;2"7>"/:"#.'++&/*'+#/*.+*.+"'+#"'*"" :";" #*"*'* &+"+" "  #* " " """  .*  * '& /*#""" **"""* /2 +*'2"&#+"+*&"'."*"'*"""#/*"'3*72"/2"#72 ;2';* /6":" '+"7*'*&""'" '+"&#+2." **"'" "" "   "  * "  " &"""   #""  #" "     " " " """ "   " & '*+.*'"""""""#""'&."&""*"#&#+" *""+"*"#"'."#*&+*#"#+"."':" 2*+&""'*&"+*+*"'.*+."#+"+."#"'"/*"+*+&"+*"/+ *"'""#"+"*"&"&"+" &""" '*" #""""#" +'"'"""""#" ."*" *" " '"   " " ""## "'"   "  ""    ""  #&   " " "#" "  "" """""*+" #""*""" "+" '"."'"""'* " " +" """*" '& &"""*"2"+" '2*#&&""" """"" * *""&"""&*&#" &"#" #"""#"+" '*" &""""&" ""#"*" "#""&" "#"'& """'" """#"""" &'" +* *""""'*+" #""""+""#"" &"" &"#"+*2"+" """"""#"" #&"+" #" "" " '"&" " ""  ""* ""."""& "" #""""#&" '" "" " "  "  "   "'"+""   *&" +"&"" '" " "" #" #"&"#" #"" &  #"" *"  *** #"." " "" "#"#"2&"""#""#""&" +&+""'""#* ""#*'*#"*""&+" *""" &##" ""&""#&"* ""'"""+" +&." &"+" "#"#" &""#" *""""&" ""&"""" '" & " #""& " ""#""#""&"" "#" +" "" # " " " &  &"" '"*" """" """ "&" """"""#"&""#" & " " " ""& """" "" " " """""  "   """" " " "#' #" " " " "&""&" #"""* &"#"'"&"*"*" &"" # """"" """" " """ +,,+,,,,,,,-,++++++++++++++++++++++++++++++++++++++++++++,+++,,++++,,-,,,,+,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,-,,-..,...--....----,--,,,,-,-..--,,,,,,,+-----WYYWYYYXXYXZXWWWWWWWWWWWWWWWWWVWVVVVVWWWWVVVWVVVVVVVVVVVVWVVVXXVWVVXXYWWWWUVSSRU[a]ZWYYXXVVVVVVUTTTSTUUTTTUTTUUUUTUTUUUVVVVVVVWWXXXYZZZXXUPOS[`ba_[ZURRTUVWZ[[[[[ZYXXUPLKRZ\\\[TL<8BQckklkL,,-LkkkkjS609M_]R%Joqpce`YQY_[UZ_h]ED[mmmmmmZ712OjmmmlaM?L_g^WVIQUO\OECO^nmmkU/-.:^nnmnh\VR]kiU/+'-HnroiA0/Okklmg?+,AK=.-6QYijieL,+8JV[gi_SMKJKKPTZkwkfYWY\\URUXgmnjdZSNU]ffgZ@,:Nfmjki^H-4?VhpppmS4#:Vpt<GxZ" (HbgZSWjRHFE`^PCHVZLMTiV1&PnyXJ Og[D5qsf`R\]ZQlwZ#%,L\<@uu{h#-clyX(M}lh}oNEB6.]i1gxk_lvp]mzPdl4DUX\[Y""#JX67\z^5 ,F[ldKFNZc]]edD,+.R[bu|uX09aj[X_g{T2Jhuhba]:!>d{xkb["7l~sb b\>s}bTYyA034koaXp|lFahXLDQ[ns`!acaxf(5C}eS,𤨝Cf9+3% (x;F{c`hXFFUD.1Zu~[D:́5TWT7'pU6'Tu`SMijgvVΩ -ȢDXYC!1R4E%Hj!0XG  Kv!龣ӭ -vzd~N hRN2܍ !$@<◯niTE;U_fbpzX#/`I=NY# '.Ū"}f63D@nZ6 %[fzL&ݡKp@ز.`B޲̣tmrV#ˑ `j: 6ߠFJ`a,B.AQZ\瀀̣"3\\ 6FeUH^vuOM]*ګ^|=4AS;̮/FK!yE!>zh.,YZRǞ@PIJ^lXYH>+n^6P<*4/?EJhU3P}S6 ϔ~gbTPȤ@z0αгSzd"*Jx¿nl6@ ,>bzxlXO]jW5Ά%/Tir_HITWRĎ.J^jM;B<ZR&^/)@TZhCAZ4@>>@.uO(&.Vv>ݐ"ZGIfllYJ 0PP_rVjZK>>:/F>"-4OrzCx[2"ܚ .tfXBR]& ' ۄ NdnqD4ɘ84$f8ﵡ^|>"_bB*-GM=ÿ Jj>jF6\fi:819SnzSapHY>`Lnb 2b^>/F>V?R,NͯD\h~f>#>:?M?rNߔ/0VTR,6QJJ2 '(1J\ENaii1׀E|>4^>8NXA?%Fj{$߭MGƬ6~N[VNVD@.HPA@Þ6tS>р*&:7VZ,QujU_~=2H8N?退*Dn@`[v^6:?@N6Ѐ Ctv~~$#\B8֗DDzR >=0 ᖼ(-lz~*N>!Fni$6L].B>2*@г@znjBյ 6'6&+KӥZ?*ѷ1E59GDF9@B-@04woԬ.t~y:6+Ͽ&2@B^n߾(!zw(A.R >i0>K[X)  +jYɐ>meZJ>*..tn:(4562*4"Nf5`nFWfi^.?x^^tT٣ֶD\thVH>͌jhne'Hnsr>ъڨ.=2~Ϭvz~~~joW߀O~~&+-^~~}G䦠&O]S1ئ6R>$*;2RX6ӧhn_o~g~ŬIeb6DN:4X^^r~n>WF"DV^N**D2B>Tt>._fN>L^޸ٿF/:@R[bN-#1?FV ɤ/, SVT0..:Pڬɿ Zr-?fnuLθ4@2(?>Dv°,>>J`' 2F(몀6BXjjh^P2Bf&θٯNr&&@pL课"Jdq2*B*঎ ?fx~th`;6& ⟀ .Vr\3 *9~\F>^Jθ">KkJV<1ޮ&8FNf~s*&pGFl|dnrUƾ+A?2 2K[v_$ p&$N<ְbO"&Xl,ۮ4tJ.BB@>JV,9X/ V`잒HM? .>@]X="+34:,<*(0B8:>|m3ƀB.."6>>>",IWjH (࿠<INF?3-FXZ**>" ;jIhn٠Bx5" bX6$*翿.8-&Th@ / .h* 4*-J^\2-bBF"Z}~>"2>JH>鱫 Cx 1X~~~wjP,ҁWzx@<3 4|f><;~~{x|I &HhM4Ȩu^NFONNlFonI,3^6>@pd&޲RLR0]J[lZƾ"Zn|~rOԺ񧀀Hy~M83#<^p~\JTXD 'ኀ'lysr|ndvT8$'VZ."rYHxjN 'nrE% 8N^hT (>vqNNXF+]j~}vpX5Եز bx< їbͽXoT*?2纴>xf $AQc[ljG$#/%Ml<*3,$)ߙDrdmrdż=`mibdZQFPvza 0GJLShQNtEб/Uz~F3⩀1LZmpzP3)Nz{)+7@XN>@50$7CVQ! )˃&+8Rfli@:; ,H]~zh9  Bfj6 4^x:IdOT{zxfS# RiPPPG<-  -84 8bW!/&8LmFç ;fr[EBchLH&.#]~n^U;LP4 Ⱦ$5";TV.696$>gT! *1!0Oi` B~Y*&8ME=店)okhnN$VwE.4V|xi?ݼEezfgpothaWOdq:ŵ,MNF5Kf~nd>,;>/)#VhHQ9! #lX-6`zvwtL-Vk{vb[OC]|AѾ0N<$fr{n2 %_\I>*QhgW>;NWLں39CCFX`qlxsx~}I K[_? B0 08>oqM4ɮ7KVZVE46T$#!Mn9 (';5fo06EDPaQ) afeHFV~`2 .E4.\WC8BTVZp234 5WnhQMIIJGRQd^fz}k>.Mgvh/+5-XnbOB)'(3ieB,6G^{yZUhvj^^cQ@*BehOBCBB9(5:/4/<@KA1KV>!0C'=ZhY\lKNhbDEgDNqb*0BaVL; 0QpxbgprR=AahaH849PkfO<.^w[L-9C* (]fU8Dw~vqw~jex{cYYNWYgk>$7P]lgMO0Dened_[xx|si>!@O`ld^C6Rekovb)β +Vuxk*:EgXHNb^^QPK:6bdպ BitljZB<+)%92(%-Yy}6# Ce^5ư6D-H|w[Q1+@JYj{nYC,(*ή8 A^v~u]VJ0':N=% 0EA3+#:\JF7-*?Fgwxy_T<,9NTRE+DN38[jnfSG9,.4FTZVO@75*.9MbZ8ǿ8L@'9nn7 4VZH/'Fknk[Q@0?KlZ(FWjhWK5;VWjefVC0RyR&02"5XpjF2-BPHZ`lwqiwu|}{yj^atyrdJWk|hlorx}vphc^jryz|ZJB,6>+3??*Ҿɼ;'빛&L]`P7 "KprhR@83CM_a^aenvx|xroxvoglt{VKMaoP:&+6?DGC=PYgpohgix~y}}tr|odl}_^XTIG@3&-AWglmVJSeof]K,-:HSbhnkdbcjcR> 䲼#:CLJD5' &HMMLS]^L90%, $,439/! %5HOVTGKNKB90(*52'.LdllntrY8%$ "3-(&-):<6" "9JKH?EQbZapfC %"(:HKE5=?E=?Rejj_J>DGB@2-AIGE>>2.8_mtplshW5/)57=UjfodTWcrvbC80(1+>K>) 2>KP9Ǵ  ꬁ &7HVI3#  0?<9=CFFJeokVOL@PNSSTVZald]Yczt`JC636CmthfkqoHDHJXwoj\G?9HXUTN5!25ʮ -! Ć3                +    %% )&)&# #1.%  35&# &88(!!#58-&.93+   .390 )560  (8;0.>9%  #(0&#(#        %#!  &#          & ! -+)  !- ! ׽  !.!½   &;.Ͼ)3- ( %   (%-11)  (5;-(-( +5+!)%03# &&#&##¸+-(#&(%!!10@=& -EF6 -9=1 %+.% .1(  .5!   !59   &56 #01  .;;1  )R[M (NZC(8[S0 --+HH- 56.+0+  --(! (153%9>. .(.) %  & #          !%                ( %+  ((;81 ;5&% 18) +!  55  19! #0-%     #) -=) 1) % # )(03  13 .&      #(  +)  10 )   ͽ          # # -(# >9 %85(& #-  ++            )-!3+#1#8C(9; +KF!SK%E3  ;S) ES#)ȸ(S[3 8[X) ׾>[[#% 0RS)   (CC% .J8%B;&%61##-#    #  !)& %6;0Ⱦ +;5 ý +6)% 56&=5# 01( !0! 1=. 3E3.8) 18% +HC1 (>E1 5C8! &.    &#&5)%&  !+& +>=& 5B5%!()   #       #                         (      ! !!#! 13)) 10 !1)-%        &      !   !    #          #%  #) %3( 0!)+% &1!;E.=(8K)&8( =S=!B>+P@.5  H@  #B6(# %JB(%%NC %(>9  >9=8 %RB %UH & EEEJ- =E)KR=ER9 >S@ % =]N+ 1VMӸ 1SH.NJ͸CM ڲ >C ݵ @F&綾>M3ž ;P6.NEʶ6[M ǰ 1`g.߳ # %Rb= BZC --+B8%0 19. 8J>  (>B# ;>+88%%.0  +5(( #!(8)  (>#  3+ #-00.% 66&) +;31) 36&18%0!1=)380 %&! ǻ&%&)--0%..!%5(& &+(%   )#     &%%  .+&&#  &+!  61 19)5.  +(&5&.F;KS8 EN) #+3) (5)%>=1 #CE#--- .-% &-+  #.      .5 %H; -B5  +!         # )+51! &0016( (J`S+ Ҹ %J^X9Ӹ )MPHN&5@E3-B) #3) -%  %&  #.# (9+#%     ).   0-# 35# .!%.-% & !! % ## 9>& !+## %8C( #BE3!+   #    (;3 &=K@!(51     (   %# #%1>)(@SB# #3=B5 )358))#.)...3# ˾ &.6+ &%  #( &     #5&  %(.-% --)1F-.EE)  -5- %  %1(1((&   -=5 (-  +6   %  (!!95!-0(  #   !;> (-# +&  &(&%  +9  )@E8 (8;+  &>=.#1.+(.58. (@N@ 5=9!! 0533)! #)=>(#;C8&)(  .BE. (#.3)  -0-!   (. &(  %!! #+) !18 #(%  86! ú &))& )&#0% )86! &(!  %% -  )  (!   #       &   )-(   !   #     %0+          !             #   %# .+   )86&(+!     $         '*  &*   #(#"$ )! "  ! 7H8 +;3) GE,%$ 3$    % '*,- !!$" #-( 74  )(! '(    5(  3= %*%$&$ !     +ȿ,#ؽ%( +6(/ "     (  ;0& +,*3.)" Ȼ?`@(& ) /4#(# 64̿+7, 'I:'    "   /(;2%*& *) >8  Ľ  !'* /0 78&-0İ -54 '6,+*  * /::95$ »5=:133& )396"  $  $= /)"<A[NǽWƾ" í*0Q9Xk< Q~ƀ9X+ F4ܙ@#@~+"j Ep:>q4Ѐ|k=kGNh΀8g1im丬Q$ %!&:"+ܿCoL'ˋ $!N-+ ]OyL21 *e9 n(,T,Q"(ǿ]ꀖ&Wl7@"Fmrd쀞1[$*`Y=ZWۨ,]Gߵ)q05"1=S J Fg>riHĽw(&C(Y5R̛>>+<̴\?'dX3f ]%8`iŏNEFp @Wu(~=~)kրr d)C>@-SNω齡# "       !! !!!!"""""########$$$$$$%%%%% Ω '޸$z. ۀ6       ! !!!! !"""""""#$$$$$$$$%&%$$%%&&&&&%&'((''''''(((''())))))))***)*****&" e< (1ձJU *&       ! !!!!  !!!!!!!"#$%$$$$%%%%%$$$%%&%%&&&&(((((())()))(()))))))***+++***+++++*&#!Ky'1::Ȼ=7  %)׾)#     #BL+HDʶ )#               + ,                      ""1:_E   ) *N˹%:;.2K % \ͱ- '3 ,J -*U[gIA1+>H ;QAc.,B`==1'T^ 6)4S0f;P 8AV8!Y{iqȽ  #耘Bc %e-nmR  K{(E_jÊ-     "F1쀬,G I0           `l/@?w ?@Ȩ?@ࠀ?P/hP$ر/@  ?>7O8иOxP޿+B;0;DM@&0*0+$/?0-7) %3,"(" )7D'     #  #(    "    #            $ #'$ %!(.             ! # #,$%  "&  )7;, /83+ '$  %$  (//$      !&+*'!+' 0$ 060'00  ?D0$'& .3(#;;2')$%    $  #         '/   ''  #'$   #  ,%    #(  !#      $  %   )+   !"  #*      #       '"  (   %,($)'" !$  ' $"   #)&  " !&           ("  "#    %%     $ +)                        ()(     %&$                                         [`_7 rhK0ЀHgrhw|@ࠋPx@Ȕ?wx@=L6?koi`HGOagodD& /Og~}[3 WbH(*??>$и3@@1(,'0HWgu[@గ.OyzT( 'KXgiX@,ɶ6?OTJFL;;7D?6ʼ+?P_hlP:(;WWP0$ *! &3+-, '"-765*$ '-FGCH0(,?FOF47((  #('07<3?B@H0#7T_^S@/" '?WPP@0  (  0*8?K:>333(%!+/?;E8( "(8@@D:><(  )*3171>5&( 3:CQGD2( 05@88'  '&" '(3,.  $(/)0  '(   (&   % /5(# *+*     $/$  +;ED4$+!     '     $  "&() ($$,  -19(   $%-0$ $&,10-" %09("& $#&$('/&)0+'10 &    %#'&   $#0     '(!   "'$      ) ##%  $,&##        '(  +'-  %   %   $(                             $             ##  '$    !#              (                    >J6  U ;$6 * E7  F-5  :$- ! - +&8! 5 % " T$ 5 ? 5  [")?)f2$- 1K'  4B H&& $?"4 -1! %    7.3+ھ*&H5   =8%- & P#) AҜ #9# 13<&< V" 2=Q.4.Q &%ZD6&Ν I@  $NZ25M 'lG+㾍J7 Hr!܍U ^Z* 5? +nA' 쿍,8A[% Ӕ:$)!GG2 %D!(B:0ŝ9@ %8;&ʳ =E -0=!ȯ K12$*: ʝ!I  :" Л6- ,!.Ҽ 7 %$ ;-* !0-׿    " Խ    /, ۱ !# !) . ڷ#)" *        %" '   &$ %, 4, )-,  !1%  #/ " - '    "                 $2 @!Q&*@" N&  3 -0&0N "2  3DQ Q9#ִ 361 &0     ( % (6(        !  */2  %26  '   +8*      =. cb`HA2 Pd0ٶ-)ƷDzȣн '# ?RZ5%R:S %#' .*1 )#0<%/ (6G="Ѭ &$.5$Ȳ Ģ"   O`T<:@D,# ?KP=94#05@TL0  =UG94"ϿG8)?/%$70ǧзû " %#  (E4&/F4* ;X@&3@7) ¹  /C$',;%3# #?*4;-#_:3G/ 쪕 /$ ",73?<0/5:( ) .0(,$2HC2;- Զ7D:(9,򺞯״ո /TJ#  nj'?1<0 OC  /! 'S:4 *0C  ħ*@  Զ242<"  #?RB@A1 /+3L$҇   ױ(9  'WP!;0 DD(  # #/ 7L8*0ͦ: ȷ  /7?50谺,(.211 #78/6?%'!'*,ï ȸ"0?FJESG,') #$ -E>59@0%+&  !"!  ! "&$"$ "!%%$&&#""#            !"&!" / :'(4,#@   #    (;4/2E2 4,304 *8(0; ;??F E( :92#/+"$ +0"'&0   "@;0  ,0'@?GDEC3 ;C(    04 #+'(:00 "       * &  *7*:@ 9  %  " ǯ,5(.OXJ>28,4ԲֿF?:0$"   ǵ;IIIb{pUC<81%,FL@0@H, !е ! 80(!@%֩+Kci`XF<*    3-Խ :( /+ '/$!'/="37 ׺"&>5/>VD4?D к',#UlP "Ф *Ϡۿ-?\0$4ƿ5CEGM6%)0 /J/?WD5?>4(  (  иͻC@#*0# '%586LT4Ġǿ$ ¿˼#OS=?G> 7EI<'?G5     ;I,л$⯿7=B%& !' #'' ++ غ4*+(%50$19)*%  0  #?FK>/^H0 ս :E8GC -   ػ  ԫҺ+/D4!9UR<"-"0P`@IPXB$, @0(:94;1HH45D:0 "0   ȼ'   ѳȧʩ˻ʷ )=I9YH7ZN,&'- #" .&&61;P:# ;-ѻ -6- 4@(!+((.5- ԸǸ %98+4QSK@3" !0044-&!&0(!!%      (44-  %% )0-).2-(-,!%  %-)&% $" "-)!#)()% )!  &'(2, ##.0)!-)&#  '!  )%#!$$  #))!(-'$      %%(-!!( #)  !'  "     ".,$   ! )'  # !     (17.)     !%   '8850(   %!     %2;953,"   !,' #/8, ľ---,4=?EBFI?#ĺ!!('250*%   !0--,& " ĸ ('3B?JXP;::&!Ƚ»   (73*+582)    )  07219<2 ľ )?C?FXUM:%!"  !:8/+(,-$   3,  (668=72$¸ !3&d2#2e,2ee3ee@?e3XeeeSEeS,E HY&eee3LeS%eXe`eL ͚ed %2eeeceeYeeee3XeeeeLY2ecDSXe6 eeU3,Xee3%eLY Xce32e%e2eec ee,X&&e3edFXL e\eS8LL@@] e3ee8 DA"e32@ 4 2 ?L%,3 )ee&)eYe <X2 12`_e@ e@2eeeee)%ǚ缹% < Xe_F%F?Ld3?,? ,2Ȱ% LeeY3 L`@8eY %L,?d@$0?&͚ٴ $%S, ͸!   %3     /#*    %0%$!,9<&"& , # %"2)%   *"2"  ,     $'&%3'    $% !   !),9#$   ' "      ,&    '      $ #    00/)##(&$%(         $$   '+                             "#                                                                                                                                                                                                                      rockdodger-0.9.2/data/paused.png0000644000175000001440000007076012257577553016365 0ustar krawczykusersPNG  IHDRϿgAMA abKGDC pHYs  ~tIME 0 IDATx{uEBo@F$1 /!Frps=c0}'Ɠ[3 ]3/e%BK 8ټ̼wilZad>k+ȻPZÄ\JP[? ܳFri)$J5i ^c.wڽRT.0yPqAXWKg ] s$ds..-{lM  Q4YC.;sIח2{ҤO[IPFMl2+ /kzLves ĹoMy\>s7Idi6=zf/H4}ݵnNRK٦%7[~vK _ly1p!{.iR fx[z|O:`oN6L3{s#0LkvnzS!ttAԳ! TM1霕 WqAC,"g>1ofg{g0{@8jםۿM@g `KdlK&l{?/ _^8]U+ф$GNCר\z1CȒ(gzaF[ F}>K/3@!  :^ kAоo&QKg/W4&ե4HJw5d.!r_?pBCq/F`\S:}Ev~fo΄V{}^K@^3H_Q3@qQNbIHI`;2~nAQT.MG6T9!HFTDϬ30r' p0.= §PT.[T%& 6;H v :{uK*w̚^dt6g\7=sFQ4{ݴTdtAT.gy QA\nk~CçوY R&PHǠHrʽ u< |@E a+0h&'a$%q~!ZZ7K۾!87eAb@?1WT.! ~AX:.śedʥOPߖn p<٢=?m5 o27O kcD߉DҾsOtd>_7 v [Q/{3zqa ?I\Tvri位"`0P}z N'.dO ܬ KI/%ߴs'+s#I.](f\אZ2urc~"w,*uE40af%uʕvC0Bi?nNbOf`@ oA=~LLgA%юҪ yi5 8 y poYR`: BO0Wi>y)Q6y :iᓞ߸ |Ul6Ge\MIM6ٛof~|RV^ƀm f!ͼ+hB/cFޏHjSm.nc"4͞73UC ݳBX~3%/O%vXT.D 6^A`1k坟f4{vH !- ~[׬|Sy$*NA{ p:Ol0>bDNŇ"_ʥ3g'Gٛ^z u ' ڙMU81mIC0xIaӐdEĚ)8VMCr]{o O/#RtL.B@ǗY$'Ӡ*? ܨߵ^@xzi_3ODDMٓZعdߗ\#(!wuʥc=8Xb>?c07?3sAG75p ;"fX<$$(}afosyv{=D^q>0 / ~78'6P$O`>xf bI ϰA}M3(xHrD$asZ,v \ǟvAxfbUSfG $%uH9sh`S0L<07EҿA%ȼHu߻ n{{ MC '_&BfS[4n~\IT.WlZzSwۜoEKmX@eu/e\oϒU§NߗzQt$_F|7G~=>`0@?.&it?x M:3%TdB6N3re?p_P F3Im ~LF݀eJ݂ #*.Wx~3 *~8]3{᧩{s' A:Aෑ|q?#*f}3?+JǮqDrA6vDŸ_s:ݛż{{ԀdC]< 8Ȟ~x30h=%`@KaBEHAw9K=I" `DYޙ_M y=#wj=/ +TH(0UOwtl?R,:UzQoVX!i{ +"6-߄,?9|S١3uNA  `px p>Hs O}V'xF $Z$"m3p4q2LD!2HffQMɧ^=f٩eg ; xop5II0  3 .k$Pdw,-6p}n@Kj; 1j fxFr1~$A.@]^d#Nֹ |CA෈: k8'6#@0 y@dИGlt1E0ئfMu u pWj1p ⟨ k~6I}4MsB [M#,Bqc‚ js^ }n`t;E=?"XTn<肰 `NFһЧ]nV' D0AE6f%59mާ;zQ3>hJen 3 'zY2~}#{{Ywc{})*zOZK 4K/(DT.IH\uDbI(GK I" `3c`hl};5 U#-XQ݆?u.gp+f~4=~%Qu;2l'@GXVuM#ov/@*Gɧ^߀&N-a5^w k/`& kL[.g,ʥ( d@$r: rO={bN\3"RIARܧBd L3\BC aNF#nʥca׹ pR13 .f:ݫG37"`sC!"1h>S놙'9.|;WPT.=S?ƽ+\yo |J5 r?u5' ksYT.E$lQT.\>$f*GNeKT.<@ܐB#0'D5NsF܅ћinZTsD_z{]P8!mbY,#IT.݊pMT.]Kw`&dafSF~pA]##]yRV(6nlYKԾ:R| &'F`F ~HYHc{\Y5weN >/)Y5wepymsaQb0v_0ͺ.FW]>K/ C̭O"!O*FV]H(Y8n`VǧivwpGTK:ĝ!\)UEߑWyB00>u^+w_13n!D2JOpؼ B@ei wSJ?K]oF7߳rw[J k[eM{1\ !><KwAUG7HJb0}~|T.SdrijcV P'i&xuWGon kCk«* ׾1K>5S| a7F\ gQa]8~3.v^8-7rrynbd=ZVwS}Tϩ3_?nUz\ھ&3 tqrdenw*S[}S5i`mYP>KO!ke%)τ:h;*(r2׾PqYee=)zaQ\8=c_< Db O9 @l035pC$TK_>'>UAWԏҺNl[Qmɉ"S*/=llEY=g)2#v w \S0x)78I-aSdr$)W걷\2Lb;eͼ 0凾'YDKf\ ÀYtxj60yOE% ]Hj<0سz__^zXWuy^,#ԏ7똗3W}l˕^U{UckW]7| ׾0cX N9o…[ޅ \܎~k}wj>=#W 0OWn)εoԿYueUM' Ec /}: >I03S$-ae9&?nf }8e},=2|^RZGQm7b70vfǁ]KY 8@sG+*.Zo3'!VUsWyFon%y:Ȼ=3C:ѷ)怨&1Mͳ W#y`08S5vT뱭HЁs44! ӌ?8fTK}y@QTE2Qi%{$!̀ IDAT`Q{CzX1e=Q/GMAa~ y'yѳc9VW`:s@m'qqgf>z4eP[{euÇA4"ɐjn(~|_˴׻YE֙R&dϞeM;2*l@ޡ tkO H342BX?c6[gyqh^ 0W L+q/ŕ, I &zo캤:9khy$dc1?& *$nGƙ2 h~OW]&TF9)?@fRխil޺` _G(|_nhEN|~=GQ]q< /㯥>D?%Tm@ 0Xv aD4ǁz^A=, ݘh0sm[OTM%-͑`a|I|:b3ݎ7 UT1I>39AP OH'yMt{`xLaO+xN~]%unK﨡tO3يHz;5Y0~-Kҏ[)p~$BF@_`5W;bT)7}= =Nc[yW:1dm"$ԝjr,dynFP{ <Ͼ&/l^NHJST}lPjaZqztOX 0ʊa~Xj#PedQ1QmqI!&G8F Āq5#߶ق MH+*Q^JtiϪ܁^ ɛ& TiZhIj"ozfY4sGyD{:S.c\ $w -TNj^⅒lnE&.Bs|yܬZiʆ^?|?6ntߔ,>CgV6k{fyv}Yb"().7FRul$.1@]ܽHP_2nP766?dܕdžs`ҮI߻g RN:6ͱKnu1Wz EQKMs,).>iGV]Y eW颈EHh]j(ЖX|@dkbYWeME#S?o9K{Ҥ=ytJk0@`QBS^Bo"5#>?FŨ\25!c^$ŷk\Q0' GT?^$\wQ̨m#ojJi:U6d㑹]]ܬZc, s)ش vQK=@,܎:VHV}=Yj'kR3k/eAPT.}jOaVѨ3h u/?@,DnE'zaV*ϳ^)1k͡ A cTVp_7\ ;/"~ }88qd3);] |`x igܥ>~ݶxD( *ww. V3Mf z\Lň 1|[URo䙅j Z -]S]7N3~RB[g~h@u:YC+qMS OHC]..l>$Nlhwl1)} v@jQѪ̸c] v]w6 E$S mԟ!q8\feZi;^ 1GQ)ca;-ݔtE@0uoZT| bw~8[苩:Bbr`|ʦ_.ߵ} ՄLbs[¡e?pgT.>?i4z{d1Ie2d H2\:Ok7{dm2 diwƱnVWSpM7 e}f|)y:W=X1x C C };f!"&7o.zajT~YylFˢrfH,yd 7VbэuFmk*)lv~(wqDj76P\77).~(!?ӳ[&qO2SNCԷsViD-yh7ySqYe~wm9ރHtw1Y$]~˯@e?GKza?ຆs3z@kgZK CKefJ&DlGQh͓@ i=c%bpxYO=YP256$RbՐ/bäUw?FJWyWw{t2懊^Ifz%wч4-`fyNg( -]^c 5Pkty~>9!eJn$9Ex~\D>ٍhdY@[xw'U""\]i'GՎݬZog_xiE+rAh5$p{9C3#؞Dͤ761jh^ȋ$Cl /{RR\ꡢu*,34~QV0#͊RF2l%J[T#j)eܬZ5 f'GfB4;ir+=g~O>Or6D7o36א~#^ iP2$itѶӤF脡zQ4q aHA%kH @"d`Y?@ eJII30 .5vBEIخ}kk&Qn:I<<;%T«y뱉i?֡N^\: 3${| 1m$$0:1=Hwè&LR<_d= 65^{e(9p ʥgv {ۨ9 |:(X6)gW"ͪUy2,x :ak>_}Vu.Y7<{kgH2_DR!.7$n;P :h!]FQ 1yd<S gD~]#;)Jo꼧%:n%AG.1dnGҐ,:)haKT.݄dW=ҪQ"BԱHH _V9oS&^nmT.9/v5*~Av?Dd&%VbblmxfZAn&"b75UUZhn),aAfj;@@-bB :wWk"<{U5ބ r5}Ȗ{MSD&"dm0߆~yʑ 0+bs ϩ̱HkG^^K}?! I<y?ck<" mȂFdj/c\~չ{VYZQXU}lyKҦmg"/v2?&ı(ЩsBN&{lf)T3j9hHvP/Dx bG^KuA_ʥ瀋OCYCpۺMU%iNcmoez9RG|= !!!$ppKkSI)&+ja xHmCrı\QB)z0`xs Zrj&*'"սjrRy XK+}Vp-$*Uu5wHo]ޞ?@%"kX?Jq^;3X[:v` ILpX*z P- ~#7z?P ] 9!x2xVb=t򩸬)|EBAjem'Mʋ{ tp}GgEì:l_bSd6 ҹ& }HBACWBC (PMEd}# dzd0>%~9v`08&avOV=?'+s~㝓6uL\2pIgNDh, `73u<)l1[=[HV^9$N2 2/CՑw$J^[$,jH"ÐRD$B/ 7nqd̛;HT ͮޫkQA\:F9iJE;?ӑ aya02g}u֊i&^ysF>.&lsc`1M?7CdvDP}Q^ؐǚk X zB ¨~0Ff&k;-S-2zS%^֓mɓx~ןzqBN7f5 bE2{{ D]kJzlĦج2uIv_6b5;̷IqtAƨG{J[pÑ:%"t~6`~7F;h\Ȼrܖ30FV//mTt҄Oӯ4,԰vcf&*܍Zsa" w4-72_dҕb!i]fMrҚd=Y I"zN T3IH5 B#08YF:Wo9By ܬZuh`C")#|# p @Y9~\3VmS4a7&7JI sL$2612%BNOLښL+7nP/}oS&[9Vww?՜EqؖLج8a Yݻ!*/Wj v 4 z̄$>H_sYrCԖ!d LЙ!nϐ|Q2#HO 7H'22)cVOB6񙫒jV{֌1y1пYr̤ve*:rIhvJ EogeIxStVYS| ,g=+g3?pFW~‹ R!{P(gtҎYHU;'qOp¢jyghaV 2 _HLRq@e$P]^_eΩHTUL%o;B*wkU' 7w@c?W`Zr` ;r$Ǐݢ\H #ojrGACYf# T!,A.-gK_i88es ΂8Hrk$%W*, GWW%-/V-`3I4\j<˚6IA:rٞs0|znQ^JS v;KӘ;з.-*wIH ͸cH3rt+'q\_N<ҥf!0ŸyuZrOwQyF)3l:YlSs&>F_ c`MWa.PBHf5/wW=kW;~8*lwma#1,sIm*!y@ nPsiAY <4*_zksy)ZI\XT-R6}i\ĥٜړ&\ YE-1u[QI&~?w RG1˵;HF`\c0Yfw܁Վ8`:Ih],.+-00DV.]7e_ V#xqkɃ*HfkNr@uG2c <*PFs%BߊǏR{ȧ ' rSQIS1>RN;M0aVf&.\s M|Ɇ߭jE n9sw#.+ziQ  f!+3e=z^2_COE^i> 'K6FE&kCh y]̒;xxS)KE_% k\fmEE.T5rTXP{f2cJ IDAT6Ruܛ%iCk'; 12e`QT.-VmH WV$ɉd|FD}v;N,`º. ؓVӤĥZv tz Y#H`+mL=-d阧z2]Wq]TMS_ *@-4QkId47 5*x5FJvx~/PA.pѯđ #T6M! IIr7.2*?vKt\zaq^;Hh#\ g9K#eSd:w_&~=ц5d<EB}E|Nzvw[gKCGde'K6[ F<>;l>ݸ{GMF ݌vAh}:Oc|!,ԗh0 Y|3YH"iĶas??{9 W;J:R}Ԍ<}06[&rf!}i=8[!#@4Rh{y)k<^1X&,?R HhBØS}"Qq̚VDК{)e2uzl1qm豧=ofQ➣(6XQt qc87T fI%ydIv1qkx{>LڀH/E{-0W5dS_LHJa}9ZL&uyMi0 P>m] HVt =~fk@):j=7"hYjqqCU/I!W"D҇T=f=@Xzc@aiȠja tC%L*֙QԬIx#b5/DQ!vJ{,mo$2p^)(Nj-$G}=Ĵi{ f0;-X_ľ(xa2'1 z"K'ڑgw|h!,?w@nuW1Ω\nYME&w"hQ5a/6=ŋBBz"sޱt6%-Zf!d Id4^Vj/1m2SD8׀~ݎVbFrOF6f@10v@ EX(,m6(δ ~4ʃvK6s[7C{LY ,m+[Iؽ}t0MYQ󟎄l|d9Klm`{[;I,&!#.sO6ސu,s9}{GY=w?YMDla<=-"O4SʥeHw e~5왏A,t m$2tfeIv >F^(毯XJjJK'(Yȩ~6^bgJ@cjJ q]rD$93G6ILbcYvbf.qˀlhG-`޵P,2^>$t(7 h?l LCWzM9t6.X7܊c͊lɈ_WlZK54܁z[/'vםx̨Ȕ?f!v~4=gގtI@@BiEWf+;A@ ϔ4 Y5'z14*.X9\"sied R}LdnO23\˖1|H?0 .q׵Ω\91| y-o^ӥ%J^6-st22E_W/ L}O&[cƜ0GT)~ ͻ5# O9{r./Հ?%/T3(,davV-X'+'3 8b R&!"^D4=+w Nd{`EߙYȲ0,p.qfs.o ~lҙIœm %*4&̠Nx޲?\+g3;h7z0 %bkH#CZ1ly߬3~DJ$Uu2 3+!y5\T3;g/cD.@}z:O%$I^Yށ` XPŵ.26 Y6qqk Mq;6\0Tؗ3@ I[~VU#ÌP*)^Fu*X L+pAx2$@#^FMr1@,08i4#ѧ}J|-ip4$zHuͬ¹BnFyac&ͪUNYxT_pyNs_Jf%ETbGߋg Qd ·p DMܴȜwt6qCwPdYB6P^6Мf9z4I?ڀ՘f}̀:f~cXjȪOnm&gELuA8-Bfš~s@+mnsznォ<E"&6 G13 ͤE9p/n&*o;R??]JcAUDm0m l )W6ػgJvx?z pl3Z3_}^`aSnBg[Q;g7XUs&^h;+\T4 xK$&ڀu4jOmkV`*d ޚb",Vo__XT-3i{%Eͯ:.fժM*u?f8{`_άl,qi!y7g@ -Q4 * er_d3 $,Ksj=9d74A="ߘ\Κ#~}@VÔhжk֕0 C.}>CfƚHT\Vٔ 4zdn%*x-l2;&Fx`~70xFC\W=$aļP[ )lQ}ٌG !xj fQy3زͪ |zy `T<ij 4uhgZG4tfeG^w7eʥ'mB HV!{~3pՀ@5í[cf]4 ಉ;e%jfvs`W>$s$>H viҮkVFN_@Z)1jUw9ۇWw_A]l5,?zKp  p>2ActBЙ f\fZ 1A=/rZ;h `7 H.}坓0 E}&8O#@2k>ĦmR@G8.ڀR6q]SaYh1-*¢jYL Imi~!6F6*L[}ʦ`CMB]E@͇X_hʆ 0ؤ2qF'YZ>WcR` >_bSП5F~sB&Z?\VQNOГj^R3-h^ϑk ia7ٮv ‚ڋLލz?4DUܾK \\K,w{Vyo)?kPfukQtnpsKɌ>:ݬZue2݇f¢jpt{ٵ릭޾[ kC֭Z߅heHrV"v _fK]'F*>gIU6z7-_T/`N35;5jt ԟ螬ީD+Tf2)Z\,?6,nʥ+e0$%כZ:r'O7XKV20޵p᭽LjHQ?5qGYӠ(Ygh^/Z\yo Bv3p 8x uv k^ߌ y*hfժ#[ ׾QユͰPy~3uv!vUS3R&f.2jF _9O#07ϸcґUsWVr?Erߟ~ݶR%͈ t~2nVGQ'#iœNqd/hJlOGn׌t yf,dv- H쵈t;1ZDdn)-෉C7 [Dzہ %QP3T dś BsS#hZ1mlSy~ U^S3oNsAn ʥk]ޠZm#է.  62ϐ7?[(nխ 0Mr5S]ZU Q4' c A:3̦^ | tk5UnKE tI3!{Ax^e#&<:9USbO1~!/:DukL <NEJCE*~_H=7ALẁlg vN¬A1?r{YQa=/3 p]'92s0=o>(*>aوC,:dgm~ F_"x30\'| ȤKa6 ;c.9Wd|8E]$u'G^đ3%W_0O]KnG%D@}&wJ:;rw5* "ⶠ ~f6"~s6>Oqx߄GS:TALuq1ri RBf3E|IcxUD'4@@%f{?O?ߩ?Mj@0~cV5D `l;}@5qV貓~s+p2h:&^@݃.OaL>A^!/b\s4 }vHi)!vEȄ~1)&!ozz?0ċ1bn~@l:3^"ZA `l޻|VHڿS081 XçN;܋wи.w-,BqĀFz,.=f]ު߭Ae?]Wc!c+N̊H+|jx $a_"Ai@H'6vnŞԭ[UQ]}suY+)ٖ *rs?ِ "݉82 tɑW&@#γIIDAT:[2Igۿ!k ZM~!b-b6 88X7g 78Ame"wM45ңxTql1/)?@?_ȅ,5c!~.ˍo -Wq8+ߌ^7#xh HA1d1m_;@^552x !ߪyn_R5U?,dcבkgCR Ôs('fg~'I^!ѭJHFɵĴժ5ᾧ ^F.t"t@)Ģ??&V;  ^(j!!_ !zJO3SZlU#(r߅>`|[ 5$U <-8P1|:q:GRhKsCL>|SY;[AzNZ?lY9d?1?d2 1W|##{hwx*ڝgo8]El ER#ij%SH:"qlRAˈy6O}-)w gMt*m 鬺@օw"B5M#0 SA7Ʋm2  ;,!}G!iԅmOU/50|8^x@[|N@߂} 4f g|ռ4!҉F" _lBv6HNʋ)=J FG='BhAc.GFH"B_u?{Wsb9k%%۲XYMB"?N\p:]?Uh>_GlTeOΡݞGp Gd .ώkUW`g3|,xKH;=HW/ߏB+b6 $'>eu;5걑"Ž N!ބ16oy'}, '?qBkYe(W<"1|wp OV]*sYUG+&2N|wRNj,eyNMz |hBr|$~oo ߅w) ,bJ(Z6 B!G]D$m{32 H>%F令FQaYkHW ]0rt:`Tc%.;@-~7)mЌނ]{JFRadrڽFӞ?a9)s>pbC, _mi.#! (⧑b\Z4Wx,Ij'Y'ңo#Kٴc i?6~}cCE$Sgxuw7s}]H{D6}gVRS]olոKJ ЯPCxv+kٳ3b_+>cuJw]E+b17uQi CWDC$U[)!1RNR_C< rsa糊]6CI6`0]I!7Wb輦J^6#>b@fO)!\w88[=X]RwH>܁Dv s49zN)5E?ߜbwՁSzi 7+5Iz=V9%.^sݎU௛y!q PO罶BTDc2P\DS8!1JMTGt\pz)TK;k/"C6T(nlƨk31W0@EWeG}]BlbYfqzte8t_9gjG]&XE!Z>)=Jֲ|44@$ Ak[iNAp:_qgQjgX]ej"1 ~!kv}5 ͝b( %d ]oX`̩v1k@A2eZWSR]@UU"KI tِ.#zhνoBF[(Lq.~'јo;O3zF6uThYtGvy!!{j$x+"nc?_]F f0/nD2Xm aa hƸd@kH7Xfn J5?>FbYA{ HZ\Gh1lH*[B0J q4ѽ{o@9mQnLYh!o *sC}>9K.;_Cq8(ljmjȦBcvuvbgz]&ɖRs=|b71rm9='16o k9Ʈq^qsjCaZj_ :o. WMPtcY+شIcMeI)Vh:/3KY>r=StV"z-/Ux]@meKJi=4^# {!%wE$JsV::r~fIjMv$ۆ}"Z֓R TYx7̹zFW(KϺ_Óh!E|= jA)_ϹrJI@W-چa GpE?:Rc|0.u*i(9NhR=̏FJr-=u>J̐4>tZ產|4|sx=*;ȑk] 9Ů!$}HuvF@7]iqTLE6s!<&Er#&A ( lXfs@q-ܓeC=1E$[t!1y#8g+FǮNI8&Ĕּ@̜T'b*uoy݇12 X?Kk[nV EmX8pu|F3|'Q&wE\I$(׭ꈠkdMZG+FIngM7[mh"Y t٭wX}w;Un6XϚ=\TFbA]0דTml7h-b[u6Ŷkn40]o V`Q8 SeE5u@߻dKI$I$If#"$Iv8Hy$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$InL]"[@IENDB`rockdodger-0.9.2/data/ramcharg.mod0000644000175000001440000040607212257577553016662 0ustar krawczykusersramcharger x01realitybass:realityhighop1Alienbdrum)5Alienvoicesnare*df1:Alienhooman)@Alienlongbackstr @apydiabass2 p@dx11syntha4&@dx11syntha32E@hyperspace1I@ hyperspace2@ @  M.K._0:` 0@}P0hP :`0}P@P P0:` 0@0 :`0@@@P0:` 0@}P0hP :`0}P@P @P0:` 0@0 :`0@@@_0` 0@P0P `0P@P P0` 0@0 `0@@@P0` 0@P0P `0P@P @P0` 0@0 `0@@@_0:` 0@}P0hP :`0}P@P P:` P:` P:` @@@@P0:` 0@}P0hP :`0}P@P @P0:` 0@0 :`0@@@@0:` @ 0:` @ @0:` @  0:` @ 0` @ \0`\ @\ @0` @ \ 0`\ @\ \0X` \@ 0X` @ \0X` \@ 0X` @\ 0:` @ 0:` @ 0:` @ 0:`@@@@0:` @ 0:` @@ h0:` }@ h0:` }@ 0` @} \0`\ @\ 0` @ \0`\ }@\ \0X` \@ 0X` @ \0X` \@ 0X` @\ :0:` @ 0:` @ 0:` @ 0:`@@@@0:` @ 0:` @ 0:` @ 0:` @ \0X`}h }\@h }h0X`} h@}h }\0X`}h }\@h }h0X`} h@}h }}0`S@ }S@@} S\@0`}S\ @}@S@\ S}0`S@ }S@@} S\@0`}S\ @}\@S@ S0:` @ 0:` @ 0:` @ 0:`LLL L%L0 L5 @_X P P       0   P0 0 0 0P PX0 0 0 0 _0:l @ 0:l @P P0:l0 @ 0:` @% P00:` 5@ 0:` @P P0:` @ 0:` @ 0 0@0 0@ @0 0@0 0@@@}0 0@0\ \0@\ @0\ 0}@\}0@ \@0@h@h@0 0@0  0@ }0 }  }0 }@  }0} X 00 }@ @@ 0 0@0X 0@ @0 0@0 0@@@:0:`: :0:@:0: :`::0:@: }0` } }0}@ }0}  `0 }@ @ @0`@ 0@@0@ `0@@@ @@\0\`\. \0\@.\0\: :`:0::@0:@:@_0:` @ 0:` @P P:` P:` P:` @@@@\00:` @ 0:` @\  \0:` @ 0:`@@@@:X:`::::::`::::}X`} }}} }}} }`}} }}} } }X`@@@`@@@\X\`\.\\.\\::`::::::X:`: ::: ::`:: :: X`    `    0X`@ 0@ @0` @0@ @\0X\`\. \\0.\ \:@:`:@0L :@:@0L :@:@_0:` 0@}P0hP :`0}P@P P:` P:` P:` @@@@P0:` 0@}P0hP :`0}P@P @P0:` 0@0 :`0@@@\0X` \@ 0X` @ \0X` \@ :0X` @\ :0:` @ 0:` @ 0:` @ L:`LLLL L%L0L5洀%%LVpV={piV=LLi0Ԩ^@VV^{d^V=0%ɪI7=L=%%%%00,0@=0==,@@=@@VL@VV@Vi%7L^^ipu{pV0Է0IVipi^V@0%ɷԜ%%%,00070=@=@@@LLVVL@^p{X%洪0LV^i{iV@%Է,@Viuui^V@=%÷%%%%%,00070=@@@@@@0@V^V=%0@V^iu{{{udV@0Է%0LViuuiXV@7%÷%%%%,0007==@@@@=0=LVV@0,=IV^ip{{ui^VI=%ê%=LVi{{i^VL@0%%%%%,000===@@@=7@LVL@7%%0@LV^iu{{pi^V@0%%=LViu{piXV@=,%%%%%%,007=====7=@I@@7,%0@LV^ip{{{uiiXL@0%%=IVdp{{idVV@=,%÷%%%%%,0007770=@@@=0,%%0@LV^iiu{{{{{uii^VL=,%=LVip{ui^VL@0%÷%%%%%,00707==@@@=0,%%0=IVVdiiuu{upii^VV@7%,@LVi{{ii^VL@=,%ɷ%%%%%,00777==@@@@@@@@@@I=@==0=0700,%%%%%%%%00007=====@====700,,%%%%%%%,00===@@@@@@@@@@==7000%%%%$  .Eu!66H<3-Z! <-$3? <!*?Hl 6!!C( ! -EQ6d 3616*3!IU U( E @$E$C! $!E@HHEHHH!lEH7!!<$iZC$~H!61$EH!3ϠliEL$66EZ rlE llEE6!6E$@$E!H$!3l{!H66H!Z6~Z H$Z!EEr lH676E$?H6$E 3 l`Ec$p!g ? EEHU!H63H6c$$*3!!$$E6E$ @61ܜl!H!E-HZ $?- E!$ZLE$L?EH6E 6!Z*!3C!H6!!C$ !$$E$!(6?!  ?(!6QH1H3C*EQ E! 6EH!!-E !! 3$~sv d(C^k4 X/ ' 4#ܪ#J2Ģ4gOXК~fd{_O,vO(!;'H?OVD7 P>*r;#Sd(;񶀀' ؀Ā•쀤퀪#!*#D'z,!2v2SF#R(wZg,P?(*Pn8w'zv7~pVJ>!֦'Ԁ݀Ā̀倆$2ܖ>PvH,z2zX SfrXSRD~_{rs8v_Pw?z;JPOPg?gXC~ء€ɀԀ̉ŕ88OO* p2{sCKRPpS?k^~zPSwfvgzpsfr{jsw^fz0XZn7K0>P,DdC4ЍЭę°¤֐حԡ S 0O(2#X7\;/wC_7g_nS{cgwvwkccsvjDZVZg{sCFK~pr__jj*Sfskjggf>8O^;dZf8DcX7H? 4;'  (ؽٶܱѱخαŭŝݼªٜٝɦ钸½рٰ΀Į܆Ί݆ĉĜѶѼ '#,'/H!047(>Xd#r00~>c\gKrk_^~vc{{~szk~\vcgkgO{8r7X7g#<>;#;(!!̽Ķ   #$,4204??4FDCHOOROcSc^ZnfXpjkpnzgzwzvr~~vvs~{v~zzjzssrdskgdfddXgPR^~O,S c$j;ߵ̕vD߀쀀Z#X J#~j^߀7 >݀ 7?~JZ!D\8$kn/0pOݤ7(VĮ,Ѐ2'FRF? Ф0D2̵02VdF ݀;?2cֵ݂Pz^kĵ(v/JȊ,/k݀(, F? _^Ԫ$ي8J SV#/##$$>́F20*ر  g*0ą,*!Pwټ4İ ,nC<* #Hܺ7VVHSnѺ#,7SF, !H >#47#̚!,;*ߤH!>!28>ֱܱ(F$ż# 8(غ(,; θ4/2J!77D;(< (n ݪZ (ܤ\;4Fٕ;$Ŧŵ$V$ ɍJ𰀊 ?,$̭ O< *,$>ݎ!!<47p (̜C#($0,XO̚$dJ !(2(/颼#(!H'2;• *P'HO8HF ZV;#g8̪X$0#ĕ>((ĭ \>µ'O$؜P(ź! 4Ÿ'妢7Ckќ'0ؤC (İ$!/7$'ټ72CٖK# J/ 8V?08  $;خ##J/ $0(ء* , *  (<( !> ;(   !##                    ++BB[[XXRRDD''!!++33--ү%%,,߼ 99||II99++--BB==''''--33II-- ̾99BBBB==$$ʷBB66''44!!ٱ BBuuJJ4466LL44 %%--,,''  ´33==,,ۼ..,,%%Ґ44VVuuLL44@@OO++$$$$--66%% ʾ,,%%%%!! 晙44@@,, ɓVVllxx``QQ''3377,,,,,,++ 3377336666Ԟ ++̩ iixx~~uuRR77JJ44  !!%% ''!!%%ɴ44664499,, ᥥ梢 aa~~uussll^^QQHH33$$%%%%$$>>$$  %%,,..%%ձ%%44''ل%%̢Ǔ@@xxssmm@@33$$%%44BBOOOOJJ.. ++++$$ɨ 66''++>>33ۙ$$ᮮŸHH``>>QQmm||bbXX%%ҾBB>>==Ӯ44$$ᱱJJuussII!!33WW``aaDD %%LLVV٢ ዋaa||[[>> !!QQ{{xxHH$$ǯ͂$$++ssssmmhhJJ-->>hhppbbQQJJ@@6666,,Ǿ 99ɢ¾ $$ ۋ++RRDDiitt==99IIXX``>>664444@@BB==𶶞%%66殮@@ --44 77 ͘· >>BBJJ||[[99 >>OOQQJJ>>66++LL^^II!!++66缼$$JJQQ$$ 99HH缼 66BB̟ @@aa~~OO$$@@XXII''VVbbmmhh33ܱ뷷$$WWmmWW44QQ^^DD>>II!! ¯HHpp{{ii++ ,,%%3344'',,LLWW66VVJJåܸⶶJJttggll``>>$$ ٯ@@mm~~ssss== ..BB==^^ggBBBBRR@@BB++ҶJJppiiiiii++ '' 𐐋 33JJQQ..''33XXhhaa````^^BB99^^WW==” 33BBۋ կ++,,,,33-- RR||hhuuppHHJJBBhh~~ttssJJII33''ܮ  縸33ۀ7777%%xx[[VV$$DD>>>>BB!!,,pp,,ê==7733 ɢ++êJJ'' ,,IIWW^^XX==--LLHHWWWWHHRRJJHH{{ss@@ 77QQDD..ឞɗ%% ,,IIppuuXXHH !!VVQQQQDDLLxxllpp..44QQJJWWOO 碢ԴԱ 33aammJJ$$$$,,>>DD++33@@aaOO..÷ --%%OORRDDDD>> ٸ ۟--uu{{mm33%%..++++++ %%%%@@iiOO++ͼ!!++WWVV44%%,,9999==$$Ҽ멩>>''OOaaBBII9933aammJJ== ..HHaa99%% ..``uu$$ʱᅅɥQQVV66--66xx^^QQssRR77WWWW^^~~ttRRBB ..LLsshh77--''¶==$$77ͼî ++OORROO!!++!!!!BBWWRROOJJll||ll````[[HH..>>JJhhuu||hh44--44Դ[[{{llxxLL Ǡߟ==77JJQQ$$%%++RRIIJJ``ggxxggppaa99>>99HH{{sssstthh99!!QQ``VVaaaaBB--%%''ɼǾ !!7733%%66@@BB44%%44aa||HHHH^^pp||hh!!99``HH++99==99--$$44>>ʾ,,tt{{||ssRR66Ӣ$$llJJ,,33..BB{{ppLLʢ''33HH77 QQ99!!.. Ǟ>>VV;걱xx~~VV33 66++66OOVViittQQꪪɱ4433 '',,44II@@,,--Ô++%%--66ǂۮ''++@@``ggBB$$ 33xxxxss^^--DDuuDD--BBRRIIVV^^ɴ++ܩ̀ %% BB9966DD--HHXXWWll~~LL,,99>>>>pp..ឞ``pp[[BB77 Ҿ ̴Դ JJ''hhiiXXxxuullhhaa``[[uu[[44å''BB@@%%ٯɄ..QQ..^^ggWW``RR~~XXұ--BBhh^^''򴴓JJWWٱߨNj66@@ DDgglluubbBB^^pp BBIIʄ ||{{xx33QQii3333OOll{{^^BBXXuussWWDD''....ܸOODDBB@@ʢ𼼘 ʴppVV''==tt`` 33iiWW@@774466''ե..XXttBB 66 !!ͼ99||pp>>OOHH@@~~JJ++33BB ͮ%%$$,,II$$ᥥԘ길±++[[== 77ttuu``OO77^^OO''==DD''%%++Է%%..@@33%%᷷ᮮ99++77tt{{tt||ppbbllllDD66%% ⾾ 66,,4466Ԣ ә; ++XXRRWW````bbDD77 IIQQiiVVJJ33 $$ɢ,,>>66DDҍɮ ++@@mmVVVVhh[[lluuRRHH''!!99BB[[~~^^++ٓ--==44¨XXmmllhhBB͙è WWttppHHOOLL44BBQQhhiiVV++==bbVV[[hh,,Ԫ99LLaassXX++۾ïʾþ++ >>{{JJ@@RRJJLLggaahhgg--  993366WW==Ӟ ܱ¢Ը++!!$$''==BBuuHH @@DDWWRR77--!! %%ᯯ$$ 33==HHշ꼼''++RRllWW==llJJ 99BB>>==-- 77BB++ꩩ++-->>JJRR^^ ٴ44DDaa^^@@==++VV$$ !!HHJJӟ$$,,Ӷ99>>..Ӌ!!Ǵ $$$$==QQWWQQLL>>6644BBWWiihhiibbiiiiDDJJ``XX%% 3333ҷ!!  ø,,99BBLLDD,,++LLllii{{ttggDD44JJLL^^uuhhOO++̥%%,,%%̩HH66%%ʗ++++𸸙..,,==JJmmll^^[[iiaaII@@77II..II````XXJJ++'' ô   ,,77HHDD^^{{[[^^[[HHLL^^XXggOO66WW[[99HH33̢ ++33漼̮ ,,LLII44!!%%66>>==6644>>bb~~mmJJ--!!==QQLL>>%%ü++''$$$$⸸%%,,''ʮߪ>>..''HHJJXXWW^^mm^^,, WWxxtt~~RROOLL@@XXggaa^^''Ԫ  ̢ !!!!ɯ %%,,44RR^^iiaaBBʹ$$QQllhhggaaQQbbpphhWWXX--̢OOHH..'',,,,⾾͟ɩ77VVaattQQ ⢢''>>hhpp^^aaaa[[^^>> %%''33''봴ʼ  ͷggmm~~RR==[[--ɍ,,hhVV33..!!66 !!%%ܯ۶ ʠbb{{aa33 ʶ99DDLLiiaa@@,,%%$$%% ''!! շ⢢BBLL !!!!BBQQII''--$$!!,,44++''$$ ̘ ͩ==XXssWW HH@@BB!!--II[[QQ%% $$++!!==OO>>ԩ!!''!!77--33HHBB ռ''++$$BBRRJJ..$$$$$$%%%%''  ۨ++4433!! $$--!!%%!!  DDHH444444%% ++ ----  ǨBB99    !!!! ,,'',,LL==$$++++..336644 ”--66--!! ++33-- $$44HH,,%%--DD>>9977 --JJXXOOBBʼ++66==ٷ BBssggOOBB ++!!ٶ,,IIJJBB >>^^[[JJII$$ !!44DD'' $$++''%%͸پ 99^^WWQQ@@++ 9977-- -->>>>LL66 $$   ® $$!! 99HHOOWW44!!; 44..4433%%,,,, ''$$ ө @@RRggWWII99窪 ++  ..$$!!++''Ӹ %%!!77>>HH99''߯ ..--%%$$ 4444..!! 77@@ ;44''99LL..!!$$66==%%BB^^II!!$$--44Ӹ!! ʱ$$,, ++77 ''OOVVII66XXaaOO66 ɯ̨  $$  44QQVVQQ,,$$==JJBB ɾ ʮ $$$$''44''$$ ''7799>>JJ>>,,++%%$$!!ʼ%%%%!!!!  %%7799779944%%,,7744--77,, âկ3333..$$  $$%%!!66II774477==66 33,, ''⾾ ӷ $$,,7777 ++''$$6699BBBB++$$  %%%%© !!33..-- -->>%%774444'',,>>66''--''Լ   !!%%%% --44''  !!JJQQII$$  ټ   ,,%%!! !!33++ ++997766''     ++44!! $$$$!!$$   %%$$%%''++!!%%!!!!  %% %%Ծ$$33==  44..!!  ++!!''$$ '' --77..!! !!..@@,, !!$$$$DDII@@%% @@99    ,,7733ø $$ ''779977$$ 33..==99%%    ++%% !! 33RRXXHH99!!%%$$  --''33HHBB̸66aaXXII44''$$ !!66@@44   $$++33,, 44LLWWDD,,$$ ++99BB>>    ++++%%  %%--%%!!   $$$$       !!%% $$   !!-- %%>>66++++%%    !!>>==,,3399BB99  ,,>>DD==''    444444''        !! %%!!Ǿ  !!   !!$$!! !!$$''    '' ,,,,!!      ++ %%,, --6699%%    !!''%%..--''Ҹ 6644++  %%,,44''     %%,,%% ..''          --..++    $$%%''  %%,,              ++$$  ''    $$++$$  !!!!  !! $$++!!  !!--,,     !!!!                               !!      $$                             $$                   QQ E, &   -佋-OK- °::D  (Ԑթ 0$ 6((2lR%!'Ԩ%ã!!%+K  2R+%JJ:%X>½ -2EK$$WP'+üɜ% JbQ`4ҩ  :  ͬ-V:ҽ߽ E]uz(Å %EW6'62 !7Ó>R.[iuR$>>$Ԩ4RO>ε ''':hJ=>!ý'Q24^Kܰ-$ ذ.0.z- (R%- ï76-!PÜ-<:-%>R %RiJ(:-а⼨ [pO00 2Խ --'$ɬ >ɽ 4[I`I2(%2!]:B2R.':R^b2𻓀2K%Խ6h[[lduh-Ԝ'<'B- ɰ7>>6'%綣-:`WKR£$$KE<!!񰟢%ߵ =:꽦'2$77P>ʰɯ%2.[iI. ҩ:bC> ý-Q%K>Ԝ-O>D~uKƶDI>('>zd>-՟$궈RKΐ7- %($ԍ ҮCof>':߼ͽθ%$uRԴ(ΰν74>hJ د>>$ թ( Ƹɽ-BEI[>CK0꽴'$ =O $Bfb> !Ǵ- >$ꬰ-']d[Q>0Jð- IfIν70R]>02R(+2(æ$K7Oi[hB!B[B.⵬ 7-!bs[( Ե.b|](񽰨(E::lzi>.B]z'(2Դ >>(<zRO2-ᯀ2i4CRBhpWRKOK>ضWzBՈ%7-ƙ>RQQ Ù>b]ui'®$x$Γ (ئ .W6ظ'-(4KoO('ʹumO Ԕ%2C%>!°ܶ.(7©2KWhz>߸%[uhO- ڦ ظ ::>J߽QJED%߰RC>:2!  'R(멁C4':Q2 ة2$22Ƭ4.ɴ!>(>O7>]$ߦͼE[:6+ɽͮ:K-$%4(- O<JJBDð©2>RO  νи -0-R($72ɸ'`: K>'%KI.>-K2 6B.ᓀ>>0PQ6£C6:-2pI  񽜜RCB!ТDxii+ҸC>+% +.%ʠ$$'0 ɣɼ4mV$°BO=2!:0 ư>>ƽ %%ʽܶ$pB%2- Լ'Q:I  Q>$Ե(7%->K<ɯ%$-E4 J`V-E]0%:ƶԩ.K>ռ%ҽƬ+0%:m|6 <6( $<--(Ԛ +4 7`>V(>ʩ :꽯:J-ͣ۵]uR 7 (ԣ'm:ƴi[$%>Π'R>-I$Φ:D+뼵>]꬜2-ԗ=WsC%-(2'RB블Vd6ƽ( 罍Ɍ2|`0+=ROI>'% PpO6⽽ذE[`^2-6b]( :Ƽ񶀓KI.>bPdI4z|:穨%ة0<(::罈͗:R[zO2'꠰24'$((԰$%ά$2222ffp]--:%ؽʼ2-7+-ɶ.'2$RKRi>ߚs[%ζ%'%7X$0ʴ԰ 2bXf:IRiP%%-B>-4$  Eɻߩ(6=XO>'%22D î 44 %=%븯ɼ2+.BXvzR7+PR4Խ D(¶->0WO>:(>:+ɸ.R> ⽴(44OBEEImz>Եж .>R[6 ʢҰո4`<: :`iI+ý 0KEB27:.ǽܵ佸®%$'.DmpmuPɩ 2>'IK6ɮԣXJ~V(>4$߽:IO6I^Bl^$ԴËʻ¢ >]udC7%ɽ!$((>R+ܽ Ω0`ubO<2ɓ-d~m: Զ%°( (:bo^>+Rf22%7Bzf ɠꯚD(ʍ - 2`iK!: ʹ 7>IIzK'h|m]2  Ԯ>i|06J-.ʆ00$뼈 %E Ը6][ҽiV< %h2öǣiu`K `uu>ܽЯ<mo:2<2%¬7!'!'D-Ԉ hd]0B2>:ƣ!7-4QK<(-:øɽҽ .K~uf[:>R(% (6RK>ꚟظ!2 4hu>%$ ![.(:% ؽ>4+VimR!=[$ öܼ>WDxlW( 72>-ܽ!ưɀi]h4!(+> (ضýPI2-2(ک괰 (ov>! ($صï VoC(''Ƭ EbR2Զ2: 2(ꦌìЮ-s>2K0'6δ'V> -h6+ԩBuRmW»C '>'>B񰍂 K]:2`V-Խ(--ؼʽԶ fEPxP %+<% J! .0䵜WR$>2B  ʶ%ʹ :>($^E-4 '4'- ܵ%<<Խ2!εhuO'% !7R<Ԧ7¸6R(԰-'᮰ uR [o $ ꣂ%ظ ih2ʜԮWu]iI !ؔ(]R>:2:[$-RҢ%ΰu^D ҵB.$½(=VʼƮKi=!լ $KR +I6,,վ  ´ 3: ٻ %,%%+ $      "1 O0".n&ht'znJBtIc4>1϶ٻΰ B"ڜ00+0c1PcQzNOcJPcan?thUB&%>ᯪШJIK%6+[cE*J"zJFn%&01<[UzJ%0%<%" ! ?ٰ !ϟϱ%Ժ011+jTFF*R7%' "ܺӬֽǸ̽> ag[BF4B%'"' tyop^PTC4.2̻ɢɣT,C' VpBbEKF*4  ɺլɤ  Ibp[]F44B''2>pplTHT?'  ֽǸ 2 >-*PT^FK@+4$+2 λӱ--" *tbp[b4a-'&2' 4bt~pppT><>42һɱ4' FjR>2bT-,C " ջ»ɬ* 2~yb~RBVR'' ' o~ppaHF229 ɾ % + *4IK[72T@2 & ̻֬® * %4xpb[KB<2' 2j~tpbTIB>,  ¾ &% *PPPE@>>4-'     Vxp^ZF?9-%4xzpg]PC42&  %' &RTKEFCB42'%Ļ I~ppbTFB>4%$V~ppaZI>4-$ ĸ%"$  ,TTKFFF?<2-,%  ɻ  Ctxp\VIC?9- R~xp^[KF4* &'' ,KTHBCCC>442$ @nupbVVKK>4'I~tgVTI<-ɻ--'  CH94>??>.+"ɾ  @fpjb[PK?9' 4pp^VTB?,22,& 424>4>74 $ ¸4jpfbTPCB2*dzpfTb^B>."ɾ -,$ 22@4>*% ľ " 2[ppb[VE7'"&atptpaTF2*  .% '*%% ''  [db[TC4%Kupxba]H4+% .' &-" ɻ-'$-V[VVE7- 4x~xpp[PK>4-   4- Ҿ&  ½'2,  4[^PI>. >pbVTCB*4''$& '4-  ,'$ >[]PC9$2ss^ZRPH<<<0*&%+$ ü ((>TOB7%9ntgLLED<400'$  !*% ξ'+$ (IPF:*&FrzzyiXICB>787-& ̾ !& 8KF@44Ltyu{xuuz{zpi^N>=<9<89, " Ǽ('  BID9,Ip~uvppv~{vmd`PIDB<::62% !$!  ,LPD>[{t{{tl][PI@:=:32%! Ľ&$ 2OLDXuv{~sf]PJHB:762,!$'% ,EET|~vpt{{pf[RJID=772-'+$! ·'&  +CLp{tptvpf`[LIIC=:=7, (+!ü&,& 2Q~|zxpf`[TPOHBDB7+$,'!Ļ&,( ,f~xvph^][[VQPIDB6'! ,,'ǽ 2.& 7vupmb^[[VPPPID7,& +,+! Ƽ..+% `zsmd]]][[PPOJD:6,! !,,'!ƽ$32.,'  ,~tla]^``[VPPOE=72' &,+$.730,,'  ]vma]]ad][RQPI>97- 66,$ '=>6.,+'!={xxuma^``ba[[TPIB:7-! &76,$  4ED90,+'& 'vvtpmf`]]``[VQLHB:3'492,! :EE>2+''&  Z~togd`[[[[[TPID>72$+<9.+$ ɾ:IIEB7,&$$! ,Q~tmb]][VTQPLHB>72+2>7+!Ǽ$DKIDB=2'$$!  !>[zof][[[TPKIE>=73,!!>D9,!Ļ+EOIDB>6,%!!&=D]ui^[[[[QIDB=972,!,@>92'6KOID>=7.'!  '<>D`{mb[[[[VKB:7632+!6D=62'ǻ7LPPJD>93,&!   4>=7Tv~sh^[[[[PD94222,$!7I>60+! CPPPLEB<6.,'! 2>@72Qvvnf`]][TI=40.2,&!4ED92+!ͽ7OQQPID<6.,,&  ':>9,&Bfpmfa`][RE72222,&2DD>7,$  ƻ ,KTTPKE>92-0.' 7>7,!6`omgd`][QB7666-&+BDB<2%  ½ DT[TPLD=6222.' $97,!'Vpphd``[K>=<93+'>ID>7+$! DV[VQɸ %''''''''''''%%%%%%%%$$! 䔀+0000000........,++(+......,,,,++(((,,,,,,,,,,+++++% $'$΍%'Ս,23' %6%379777776666663366666633333332'%!2220000, 䪀ê(20+΍ƪ (76ǀ(=. 0=3!=============:99:::::::::996.!(66666660 !+ 37662%ǀ7:>>2Ǫ 0>@>=>@:$>@@@@@@@@@@@@>>===>>>>>>=9+  (:::::993 (+ ܸ(973,򸀀63$ 2=>=3$7DDEEEEDDDDDDDDDB@@BBB>3$ 0>>>>>>>9$  '73$ΜǾ!՜ >9  3IIKKKKKKIIIIIIIHHD@9'%!%BDDDDDDB3$(>>>>=2򸐘բ ,7>2一7LL9EOOOPPPPPOOOOOOK@2$!'7+(EIIIIIII@2$3+0BDDBBB=+ǜEHHB2ǟ(LRRPP9!ERRRRRRRRRRPKB2'%,.>9'7LLLLLLLKB2+$ ! 7:$%>EEEEEED=$ǣժ9IIH9øƪERRRRRP@ >PRPPPPRPOH9+%,6+%E9$7KLLLLLKKE:2.+(% +2%B:$%>EEEEEEDD=+ܸ獀9IH9ǀOPPPPPOL=$(BOOLLLKIB6'$+6. 7D+!7EHHIIIHHH@=766993'(3+ 3@.%=BBBBB@@@:+B(>'ՀIKKKKKKKB3%$!(3@IIIHHD>2%!,3'7@+(>@@@BBBBBB@>>>@@=6'+00=.0====:::9,Ǿ (9%ǀ97HHEEEEEEB>::>DDDDBB@9, '2'(>9,::::============:90$%. 36 .666662 ܼ9 䍀7+7BBBBBB@@@@@@@@@>>==90$(0 66 .667999999999977763,$ ,'!2. (22. 伻 Հ(.΀7.%=>>>>>>>>=======:::96.$!.+!30 (36666666666333332.% !,., $Ǵ($Ս$䍀6η+('(+,.2379:993,% $ (222222222222220,$+$!.$ '!ǜ(6999::::9999777663336760'(. ,3+ (3333333333320+! '. !(䪔$ ǀ$0===9%3:9.($$%+392 (799996.' %.%%32  .3333333332+  (0 ǣ 甀ǀՀ0>>:% 0::62..03::.,7::::999962'%33 (62 ,6666663.' %0.и ՜ǜǀ!>@@3$0:=====:9+(79:==::::9966632+ (62 %36+%26663.%%2.丗 06BB9$(27::92,!079:=>=====:96667:=:9.$%69+(76'(360'%+窀Ս0BD:'!(,,+$(799:=>>>==>=:97779:>>>>=6.!,99' (79+ '$뱍Ǎ,BE9'(6:::=>@@@>>@>=:999:=>@@@@@>90%(7=. !0:9'  ǔǜɼ7E@2'  (3=>===>BDBB@BB@>=:::=>@BBBBB@=6+ %6>9%'6=2('՜ ܪΪ !7EB9.+%$%(2:@@@>>@@DEDDDDDB@>====>@DEEDDD>9.$(7B=+ !.3+ %.ǟ!+ǍΪ!(!7DD>9637>DEDB@@@BDEHHEEEEDB@>==>@BDHHHD>3+ !0>D9'!'' % ټ=9ٸ!0$,>HHDDEIIHEDBBBBDEIIHHHHEDB@>>>>@DED>6+! '6DE:'!(,%%'ձ 39Ǎٸ020@HKKKKIHEDBBBDEIKKIHHIHEDB@>>=93,%!%0>IE9$ '060 ,.$ռ%'գر,6 %6BIKLKIHEDDDDEIKKKIIIIHEB=2(%7EK@.  $!$,7@=. !390!ʥ69.=EKKKIHEDEEHILLLKKIE>2% ,7B>2$!'%$(3@IH9$(7@9+ ܵɼٸ7@+ 0>EHIHHHEHIKLOKH=2($$(6@B9+%''+6BKOH9$!6BD:,  $$ !%$DZ 丮ʮΪ!>D+,6=BDEEHHEB=6,''.:EKD3$ (7EPRK=.   %7EIB6' !%%$!%,32$伦+ջθΜ(@>$(2:@@@:3,%$'0>ILH9+  ,7IPPI=2%!0BKLH9+$!$''%!%,7>:+0,Ǽи䪀 %7:+(.0,'  (6BKKB3'! !$! $,7ELOKB92+% !.>KPOD9+$$%(('%'.6:2 ٸ%2$ǼǼ 'Ք(3. %3>ED=2+$$%'%$ $,7DLPOID:62.,'$!!(3BLRPH9,%$'+,+''(,(%. %+ܜ!+''3>D@90+%%(('%$%.:EPVVPIB=97762,('(0>KRVOB6+'(,0.,% (6.DZ 'Ǎ !.=DE@9,'%%(((''.7IT^baWOE@=:973.+(,3BLTVOD9.+,.0+>OBǪǍ (=KPL@3+%%(,...2:ETbiif]VLH@=93.+'(0:ERWVK@3.,,$ǵ3TZD缜 գ  (7IRTOD9.+(.3:>BDIOWaimmhaWOD:2+%!%,7ERWVK@6+Ǹ%ERBǜǜ$'+,,,,+,2=IRWVOD=:=BKPPPOLOT^hmpoi]PB2' %0>KTTL='ǻ3=2ǣʪ %.7@EHE@9203:ET^dd^ZTPPRTVTRPPRZbipsmdVB2'$(2>ILB+ǵ (:2ʸ  (3=DKPTVRLH@:9>HTfp{{sh^WTTVWWVTRTZahlldZK@637=:0ո'72䪀Ǽ (3>EKPVZ[]]]ZVPOOR[fp~~sh^ZWWZ[[ZWVVW[]]ZVPKB9' '.򸀀ø+6>ELRW[]^abfhhhfdaabfmxtla][[]]][WTPOLOPOI=+($ 䪀û '3=ELRW[]^adhlotvxvsmhfhmx~shb^^^^^[VOHB>=93+ %.$䱀ǵǾ (3>ELTW[^abfimtx~{xslimtvlfbaa^[RH@92,+% ,63 ʜ±Ǽ!07BKPW[]abfimtx~{vompx~slhd^ZRI@966793+(7:+ժɾ%0:DLRW[^adhmpvz{{{zvttxvohaZRIB==BIOPK:%.99$Ϊ¼(3>HOTZ]adhlmoommmov{vmh^WOHB@EO[fifV= !03+ǟþ '0=EOTZ]^^][ZWW]fp~voiaZOHDEL[i{~hK+.62Ǧü +6@ILOKHDBDIRao~ztmd]RIHKTbpvZ90>D=+αû!(,.0026@L[it{{tlbWPOPZfxzfO9 >LWRD+伟» $0>LWafhfdbbflpvz{xof]ZW[bo~sfWI9$7ThldO..>LRRROLKKORW]bfhihfbabhp{viaZRI:+!Ebx~xdHҮ¼ ʾ'27::9669=@DILPRVZ]ahmsz~slda]WO@.(PmsV.ܸ¼ɻ !%'+,.037:>BEKOV]dmv~zslfda[P@23TpvV+ձ¾þ !'+.0369>DIR[bmv~~vmif^WK9 (Lmz]9ܸ  %(,0269>ELWbmxzsmfZK9 (Ii{zfHα %(.237=@ELTalx~sfVB, 7TdidR9иü$',037=BEKPT[bmv{hV9 .DTZR@%ʵǸ ¼%06:>>@DIOT[ahmsx~dH+2DOL@%Ǫʸ .=IRVWZ[^biox~ztsstxsV2,@KL@'东ª  !6ETaiovzvmhddhozzdH.%7IPK: Ϊʻ  $0@Pao~tlb][^fmxzxsdVH6,+0=LW[VB$ٱ !',3:ETbvzsf]ZVPLHB=6203:IZfmmdO+东 !,3:>@DHOZfvzodVD3% %7Ri{zlO+ܸ%0:DILPRW[blx{l]K9 (E^p~zmV9ʮ   (6BIORW[adip{vdV@+ 3LamslZ@$  (3=EKPTZ]bhmx{sdVB2  0EWdhbR9ܼ   $,6>BHKORV[bmx{si^P@0 %6L]hhaO2ά%++' %,37::=@DIP[hx~{vmdV@,'7RfpslV9ǣ'2662+$!%'%%%(.7DTfx{thV@,(>Tm~zdH$Ϊǵ(7>@:3.'!!0>Pbp~~~~zoaO>+ '7Lbxva@Ϊθ !3>DD@92' !.:ET^hpz{zxxz{~~zti]O@2' $+7IWfotm^H+DZ,7BB=2(%.39>BHLPTZ]afimpsttsstvz~{sdVH9,'%(0:EP[^]R@+δǮǸ ',,'! %+.00.,,,,.037=BHLRZaflpv~sZI9''0=EOOI=+ʸDZɸ  %(,.0000.,+('$  %,6>LZfpsZB,(7BIH@6$ǻεǸ(3:@B@=60'$  (7LbphO9 !0>EHB9+ ʱǴ,:DHHD>3+!!3I^psV=% (7@DB9, ټ!3>EIHB:0% !3E[psV=$%2=@>6+ !! ܼ(7BIIH@6+  +7K]ohO9  %3=@=2$ '+$Ǯ%3>DED>6+!  %,3>ITbot]D.  ,7>>9+Ҽ '($Ǯ!,39:93.'   $+3:>EKPT[^fip{lWH2' $,3=@=6'θ !ε!%(('$ $,7BLV]bfiihdaadip~~sdVI>967>DIIH@2$DZռ $$!!%'(.6>IT^it{~xoidbabddb^ZVLH@=:>DLTWZVK=+ %,0.+  %,39@IR[fp{vslhb]VK@9.'$!%,6BLT[[VO@.»Ǹ%0696.$  +7DP[itztldWK=,  ,7DILKE=.Ǹ(0362.% ,=L^o{sfZI9''06992+ǵ%,00.(! ,>Rb{sdO@.  $+.0.+$ μ',.,($ (>Rf{zfV@+  $,2662+ л%+..,'$ (7Lbvm]I9'%09>>92%Ǯ (0332.+%  0BTizl]K=0% (3:>>92$%07=>=:6.' $3E[m{zsf[OB6+$ (06::6.$ʸ!0:BEHD>3+(7ET^ipz~~ztldWK>2%%06:=90$!0=DHD>6+ !'.3:@EKPW]dlsz~zsh[K:' $3>EIHB9'ǵ!,232.(! !$!$(3>L[ixsdO9' !3ER[^]VD2μǸ $'(+,.....,+'$%6I[p{hR@,0EZhosmaO9 μ%2=DIKIHB:3+$0E[mvfV@. '7Laoz{vlV=ܼ%.0,!ռ%6DLRTROH=3+ 0EWhvvfVD2%!.=L^ltvsdP9ټ%3=>:. DZ(7BIKKHB:2$ 0BPbmzxl[O=2%!,7ETbiidVD+ո !0:>@9,DZ (27=>=92+ !6BRamz~saRB3'  (6DR]a^WH2DZ ,6:=:2$ !(06662.' ,>L^m{vfVH9+ '3BLW]ZRD2ʴ(27:92'ǵ !(0332.($,>RbpsdP@2'  %0>IRWVPD2Ҽ $,020+ǵ !(0333.+$ !3I[l{saRD6,%$'.7EPVWVK=+μ  $$ μ ,3:==92+$'7L^o{{saRD9,''(2>KT]^]RD2µ ɼ¼(7BEHD=6+  '7Pap~vhVH3'%0@O[bd^VB.ǻ ¸ 0=EIHB:2% (>Tft~saO=, !0>KTWVOD2$07::92+$ '7EZfotsi]PB9+$ !'07>DD@9, $$ !!!  $,7DPZaa]VOE=62.03:@DD@90$ ',+%   $(06=ELTZZVK@6,%$%+3>KTWWPH3  ¸$066.  !%(06=DKPZ]^[VI:+!0DT^ff^R@+ɻ  ǵ !09:3'  !(07@HOT[^]ZPH9' .BRailf]K2θ  ǵ07=9.!   !(0:@HLTWWVLD9+ (=L[flibV@+Ǵ ǵ 0:=9. !%%$ %+06=BHKKID=3+ $0BR^hif]O:$ ͼ,7@>6+%''%   !%+269::62,%$.:KZbiidVH.DZ !''$ʼ0>DB9+ $%%!  %,26662,%!!%0:KZdlmfZH,ռ %,,+! Ǽ(=HKH:+ $$$$$$$$$! $,36762,'$%,7ETbloi]K2DZ %++%Ǽ(>IOLD6$ '07=@@>92(!,369630,++07DP[ab]RB.ǻ ɾ,>LRPH9$ʼ !0>ILOLE:. +067632.,('(.6>KRVTOD6$Ǽ !7IOOD2 (7BIIH@6' $,0330,'! ,=KT]^]RD3   ǻ(:BB:. (020,%!(++'  0E]mx{vm]H2Ǹ !%%! Ǹ'6>B@90$   %%!%7TizzfO9λ!%(+,,' μ7IRWVOB2    3Kbp~mZ@$ô !%((((%ʸ0ET[]WO=+  0E[m{vhV=$ɼ !$%%'$ǵ,BOWWRI9'  !3K^mvxthZB+ !%$µ.>IOLH9+  ,>Rbilh^O9$ ! !0:@>9,    %((% (7KV]]WL=+  %(,(! (020,% (7@EHD:.   $(+($(.332.(%! !%+.22.(   !%'''$!,2662+ !',02369=>BDB>9,   %%$ !',3:>@=9,!.7:=92'$,3=ELTWZVPD3 !%$  '0:DILKD9' (0662+! (6BLW]a^ZO@,  !.:DIIH@2$ !!   .>KT]a^[PB2   $0>EKID=.  (=KW^baZO@,  (7BIKHB9+  6ET^dd]RB2  .:EKKH@2%  ¼ %=P[bdaZL='   0>HLOKD9+ ! þ6K[bdaZK:'   '3BKPPLD9' (020+! ¾3I[bfd]O='   '3BLRVTL@0Ǹ!0:>>9, ¼ %>Tfmmh]K9!$%%$   $,7ERZZVI9$ʻ%2=>=3+ þ%D[issi]K9Ǹ$,2663.'  $$%%%%(,3=EIIE=0 %((%ɾ(E^mtsfV@$$07>@>9.$ !(02320.+%!!'.232.( 7TfomdR=$ǻ(6>B@:0% %07=>=90'(7BKLKD9+ 3L[baWH3 '033.'(3=@>90%$7L[fih]O='¸ %(,,,+'Ҽ0EW^^VH9$   '.6760(   0BTbimiaP='ǵ(069993.% θ (DWad]R@.!%(,,,(%  %0>LZaa]VH2±+3:>>:6.'Ǭ6L]dbZK9$    %(,0220,+%!!(6BLRVRK>.ɸ (27==93.'Ǯ0EW^]RD2  $+27>@@@=92+$$(3>EIIH=.ɾ !(0220,'! վ3DLLD9'  '0:DKOOOIB92+%%%(07@DD@9+ þ !$$$! DZ,696+ !  !.:EPTWVRI@7.(%%(.6>DED>0$ °%,+$  '++(% +:IV[^[VL@6+$ !'0:DEE@6'Ʒ ,36,  (...,'%7HT^db[RD6( (09==:3'Ǿ$0:=7(  $''%  +9HTZ[ZPK@3+ $(,,+'(3993('.:BEIIHD=72+%! !$$$  '2660%  $%''(+,026:>BD@=60,'%! !%'+,(%  ø +663, !%+039>@EHKKLKH>7+$'.22.% ɻ!,230%    %,2:BHLPTVVTKB7,!  '0330(õ $+,(    !+3=EKRVZ[WRH>2'   +063.'   õ !!   '07@EKORTROE=2'  (022,%  ɼ !(06:>BEHIHB=6.%!(.0,' »       %+.267=>@@=93,'!$'(% ƾ    !$%'+.269:962,'!  ƾ    !',267732,%      '.399960(!   '((%     '.69962+%$(++'      ',0320,'!  $$$   !',000.+'!         '+.000,(%        %(,....+%        %(+,,+'$       !$%%%!          !%Ш ͠.6+01$ F]`^[ZH+7FN0 $蠟 ''-3 FNQNLT=:RcTRi`"ǣ,J&!CD꥽C-ٰ=<&:-ӵ,<ٽg>s Ǔ,JǯCJ ģ,,a>T3߼7!74 ,Ӽ ' Ӣ0O7|DՓChJ g=-€ 꽽 v9+Nj,0(22! 'č ZH  p>ꥀL3 E3!,9ǣ7P߽(>-œV!꽻 I<,V'ԽټC9 hP9ǾD -!꽽Z[0€p[ ǽ,$7 %꽨ZDǾ 2O3+±,P ͵J<,!꽽:!  7Lǽ -,.$Ǯ Os3߀O-߈CVZVٽOW9;=-'9!꼀ZDǥ=V0 3 6%&-ZsT['ǣ +! ,HZJ· % ,2,g9𽀽 vg £&gٽ K]B-»CT-ս(Zn9 ü '%7L!é3 3꽊7d-C< 2- W9Lj pP𽴽7d[9f9îʨ:L0,~9 B-ፀCH$OP&6Zgἀg,%,O`PǓZaӜéC[ᥣOV'$@'Ӵ,hD ,pa!ª'!ĽC@-  Ta3ᾓ=3  ӗp-꾸7DZ-꼀pd>꽻 3-4>- ӼZL>3߼  l~9ʼ^I9-Ӽ =0꾻IaD꽣,Tp9𽁽' % CgH ӍO0 Ӎ,{[ž,Z> 3Z[-ý@lh-优 x%À@D- ð Wzs-꾠,XJCn-ӈCZ9İ$꽽7D(4' Ľ`P %$+ µZ9 ¯Cs ӯ:H>߼,gNj@3 TlR߽†CC!° (T{m3꽄Z[!ʽ,2,B!,O3 ! Ĭ¥4l{-ʽZg! !ӽbaH4ǥ &2KL!͠09H9 ’ 7!!  7! Z[B0E-!$ýI{P%٥2lJ &Kl9꽞@>=-!ӜER@:3Ց+$ 76% %C3˜LZ|Dʬ,%'ÍTvuHI> ǙV- &Of^Ÿ7pm-꼮 Zi3ӽ 꽠,ng-ǽ]-,lxJ,Wi]9ꥷ ,C% ,3 ´294>.! ٽ,LC0 ,9' ( ͼ,Zs-¥%7-,' :6!ï2-,.' ,%  2QTldP-ռ %&ZJïռTn|[߽7`laQf[-ٽ&BI]D&fm<, <-߼KR9!,Zt9佢|g73 7ZL0 ǥZgD:Zn[-Ü(- ·,-(<6: 'Zd`[6ӽ:4(TO ә 4-&TR3پ(IXJ OD! ,,- €&7=- ,%Ǔ,ip|~Dì6ClOo|[¥CPOlxJ꼂7lx[D=> ӼThP% CJWPٙ&Ts-ٽ(ɽ,$߼ CfgZZP Ǎ7fXOEQV9ʼ,[-Þ,n[ ,6 OL0 ߾ Cps' ʽ l>CB0ŸCs Ľ,ORZ[!۾ ,CEOLH3ǽ 22bblb4='å=Xo~n!꽓=dmiPfsPǼ,QB' ,>&&(2-¥@H (Hfs-ǥ(ZvD ' :ZP+Ӿ&BBOD ,%47ZP C94Z-ê=J=I[3&    IbmDšZn[9 2TV3Ǩǥ2WfvmRD>7.å7Td`^zx- ļ° ,O]WJ-$7:'ǽ 7Zl> CQ4 ۽ >- 7D3% &- 40”7T:,-꾯!+,' ǽ,2$!%(06!  4P@IO9-ǽ;,=>-  CLD'!&ZdLT9ν&=OO-76(Ľ %=vgVZP»̽=lm>% ,  C9,0' %7K>$ ® ,93:OB6ͽCl^>! ӽ 2:! <>' ߾ ,:>!  Ľ:C- ,-7W>-! 'ٍ OsD! ͽ &!ͬ+279Խ CpsD00ͽ=ELZ>$&(+ 43KfR'>9ӽ7lP! 9'70:D $ ý !  '(2' ,bsdXLB=+%@̽ =Z[3&$!Ӽ,fP'!ٽ(.'%290@R߽(@ToguH ⋮@::K0,`-¨%&4@3   &20:9%%  &ʾ '' +CJ'µ&=C|gǩ¬ Onp|iRRRD6( ,-νʽ%,Zl`D-,2!&@=630.,+(4OnPOD!ɽ@ICKB'$4B=% &I<;&<0 ü(4CD:6=PTL>+$,!&;ʽ OP'   70 49 !!$ʽ $ӽ &O2 =W9 ʽİ4'!2HWf[&3%KI0 ߾7! &4=<:>:73@TPǨ@RJ44OX-ӽ  2-&4=@>' ! +CVH-0=9 ƽ&D6%7-Ӿ! &%6- $0!® 7E3!& TgP6-:3ǽ &22!   COZLC@IV][0 æC[Q:,=D6į 7OZ`XJ<@B=ʥǾ !%2:<@@><9:BE6!7Bͽٽ (C`gVHJQbn-Ľ 27- ,@77=:-%ս   ,QH- 7^aP9.7CC@-  × ,Tmm`PIC=7- ɽν (B> &  (-  ,3Ǽ KJ9.,:DEHEC@&,67$ɾOhmdXD6. ͽ 7K=:IXX<Ľ (((-ɾ,LWXZ^Wfa>& üCDǽ KQQ>$+7=!ԽӾCzsddV@-  !&(& %(+! Ù(4IbtvnaLB>6'  !!ʽ 670 &26$CZ^WKC3%(CT-ǥ ê&QXQD- Ohl[-  $&'Ľ,IWh[9! +.0 ,<%ýCXdP'$ ཀ ,ʾ2T[bn[<'0($&2IJ0Ǽ$  $4:- % ,B<@CJRPH>3! Ǿ '$@JC@=><9-! 2<4  .' +27<2&۾ıͽ,:CfogddH'  &  C`aVJ>2 Ǿ$!%&.66KVLPKE3-$%ľ(=IOI3%(,% =QT-  7Z]J@EI= ǪʾǾ $ (%    !$,0-   $,:TZR><@D9.-ý,,! ,ZfQ6!&'60'!%$ 6.   ',:C@-   ,6@@93+     ¾7B9..992:6 $-!  (0! %&(&!$3!+,' &! 2- !  $&27=HI9'(  '(%$.-!%..&%Ľ ,CD0    !!&(,,.+   &23! $,+    %.0%    20 ,%       !,3-    $    %,$   $  &-   &=I:!   WO^Qj,T& %(* +22=93@%+%&   %9BC8K912%9 .0   $,B92.U0.+3 !339 6 .8C:& Ȳߤ +8+89+&%+.,4.7  ,2.D3H8&%4   8?1QLC*4.0%63&- %>(=0 :1.8*8  :! 48,& :  ! -.8(K93! 3 KQ&'  .<-3F@92%4ȼӶ "*$.BV98H& &80 679&'(0  & %9*2F(.%0%%BXUrr`90ȴ%%H2@Br{omihLKV Ȉ3UQKmn^iVZi<&.̷.C?KjKV^fhXKCв· +%((%> 8064=67ȴƸ%KK^brolZg4=0ӗ8<>8mnhshnV6&ɱ :3Kf]UcXR[> ̲ê  =0 1̱Ⱥ3+.mfyhc`BD9%Ȫ%803JBvVXd>'ǸȀȍȒ 3+%2 =K{xL8X0!̼ȷ %8UU{L^i10Ӵ33Z`Vm[9FL: 9%%9%UFr|^|LI&Ǵ%<=hi^i[rQ"6ô K0KVBQ+6!&KL-Q089 Ȳ39.B!B98-FHFb@R9.&ȼȶ08fVhQ?C$&̲""B?KL1%KWL^LK9%&̰%9Kscsz`KV̲¨%2F980ȴ.4c^lP`D0%=XH^gP^9 %Пߠ!.8Dߴ B@^^y`KO2"!:=CP>@0ͣ1ǟ?ZxyiB>%489! Ǽ (=L8L*ɗ.3RFbhd2& д+8HK]>&ڗ "3=L4ش  2\LK9ȱ8VKV80ȯ 8=PEL&*.@cXn&% Ȝ0?+K&Ǣ 8&Ⱦ%K{nmVCڪ ڴDz%Z`]cVL .&Ǘ%KbNO]+>1(7(8ZlxriLЪ ?Z~n{s^C ̽ ".60Ǿ 9INC. ȓǼ"2!& "1?H@&ɴ,"9$.=Ul`I<Ъ%70%JUclQ9&Ƞ.B>& ,Khrx|`&& ǒUfhxi[L^t`0ڟȒ%?UzjV<& "3DBKV>䴗%Kh`CǠ==QLC( *3?-ǀ0%9,$.BFRcs9(Ƞ KlL&8@3CЪ8^{Lǯ-,B@-7.8UyiC䴩ȱ8Q^Q4 ȴ"Klp`C&$=UjsiCȍKrv`+*.=:J9̠( ڲ%9IH6&%1DE&3 ȥν?@8@ %8O>Ǚ'+ 3hV+ɥȲ8vsC(ڴ8L6,"KKfQɒ .^|VǢƽ8VP`hbh|LȲ 䴵ȴBhuV4$*&$ ȍɯ6(B~X9-6r|V Р6 ηK4 Fs>%ڥ8v|V9 38^l9 ǐȍ8oQ:& :?r`9+3H2.9М%^~V=>ǚ8J9ȁ8ra>Ǿ3+ UnLǩȘ.2'%=fdL&%KrV&ڥ3^u[08XCI7hLȫ>ɘƸ^|`\r`А H2΍*&8&ߴFdQ&8mzsЗKz[&DIT&^V&Ȁ*м%cs>3cL8>(%3ȒȸKs>8E0Fn<䠀KV4 B{s>8?0̀ 2"B9ȟ3&Fh9ǀKQ&8{|9,KLڗBr`2 ڠDz8L8L%XE&=rs0̍K|C%$!ǀFh|9?cL Д̨3ZC&KbV&䴓.O+Kr`ڜ% K`0.2ǂǍFs0%0ȄȲ^V&Z~VȤ䴗, Ky|9Ȁ ^&48n9 ^L0̫ϴ8d9 8ri0М%[^x>Dz 8X9hi03 .̀KL ,Ȅ-Ku9:&ڍ>%9̟ ȇ,hQ %n0ЗKQ&hxLǀȪ%i&KQ%I^ Ѐڜ89Ȳ&̆Kd KL䥩%|L8x̤ȀBV%ȀB9Ks0FH 9K`.̀K9䀀%j&KsBl9%{VȍKx&%H Ks3O0ڀ1LJ. BL%H ȲǚK+KFC^+&퍀8&̚8&%Lr J&ȀȀn08ǂ0K&$80ڲKd %d&6ǀB\0ښ%O9^LrLߢ8ǀȀQFLښ%[ՒK&K9̀ ɖKsK9ȟ8L%rL̤Ȁ s %s%xCڀȌ%C8LɅ|0^Lڀ䀌K&CKsKsڼȀJ %L%9LύLڀ.LȲ.^LȚȍ>|9X8VڀȀ89LKLڲ8&rs̀%L8L&K9Ȁ90ǂ%`%r089nj%䀲8sږKiB̀&KL^`Ȍ.Ȍ%%`LЀV%i&`V8K0rL% IBڀ&B0 8srR8ڲ%8&Dz&KȲhKڀ&L0n&rs̲VQ%&r`& Lr&rL8Lnjڲ39nj%V.0K&9&π9&&^ sK&.X`BB%`9`XL߀KBr>|K9snj0BKr&0ڀr&8L&&9KLV&rrsBڲK&ٴVa%{LK^LKQڀƍ%%Vڀ &9Z&9K6ČK&`c0KKLBLKxs1ڲ%`rhs%Vr`sL80ȀK&&%K zhLK`.K&ـr8Kr|Qr&ڀDzi$%?&sJr9KLBڀ>x%L8LȀ>LKV0ǀrLs^KV&Ȁ9%&rsr>%[KLK!%^fL|h+`K%s%88\L9^]&njKLLLi{L&8ڟmπ%&BrU%s%i8JL& B`&%`\[nrs4%%L8sr&6KidKm rL8rU`&ƀ8K.9Ȁ91ǀV@&>pLUsKLǒ48h&%x9 >%&B9&%K&%LKF0%F98nL%ȀmQ%V.C8L`UL8 KL.8C{Cu&%9r 'Ǵ&&*r`rLȷZ3%V&`"^&Bʲ&89@zL9LbL9KK: 9&L`Ls`^|4%H Q.&8=&8 Ȗ &%VQZs.KK>%BǍǴ.+r|%3*+>ڽ>&%KCـB%3%QQ99%&r9 Vƀ% B48&UBhLϴ FKh=%L&L& QXrL&rRU%91^% &'ǀ%C%& LL&rQdLک%&ǟ&ss&LK%& &^LL߀Ki9s%9%C.&Q8 09%hXI&ȲC098L*.Ǣ&8s%d&ڀ2%`s Ȳ%pK83Bs|&QK&&%=Ls%%KiDz&̟%VK0%6ڌK`d9>.0`Ks9Lڀ%%QBK`K9^LCBL98LsVȀK.%d9%x&L8d^J&L!&&%6BLK%K 0B4rL% L.L&Fr98H&0sL$%ȲL?&s iLL0 %rs>퀲LL&{0Ȁ%8%r L^0LNLp&&ɲ&7s$ U%!EB& KVH7r&d%CB9L 9N|9%9<.ڴ89s9`&&Ȳ&p!KL%%ڲ=9>̲8&d&&9%`6%s8Hn&+% K&H&C- L > %@0% &7& &. %$ %6.? %g99Ж ̲Q N69%&K`W&8ȀK+ BKi>  &VU9& J4 .9C L % 3V!LDz0%7+ >%%+E.&9DzU& &K0&%KV &0 &8&K U` >ZV%L%̲%&E%&QK%>9ڲ F&,a&38CB0 !H$&?0%&39 V4%8&4 0K&% >&8H %FQ%H9% %L.3&@F.=%&Kd 9.43 BL%% 8 7=6 .! i^%9̗4+J%C9Q8LK& B&ȟ8%0.((.C$ B 9ڲ&8 0!`.,̮!8 &B %&!O8> K9>%(4J?9 Kd4.&8%6". 9g&8&%0& K0"!%36? 3 NO.&%%. 8>, ?%&*9 %B&ڌ K&84K9 8`% J@%0&%&% >%>9-HB< >8%!K+ &8&%,.&%, &+&%1 ? "%%K&%833 % & &%& & 7& 4K97 &B%-& <3 0% 0 %% 8&  %& & . & &ߩ%+$, & !* 8. ,  &.6&, && %,(  2 %&V& dQ$$Bha mLʀOQ@Vh76Vٟ%u.$6mu%BW怀~ԀⷀJpt^~|mO'^s^gBp%+>Q+[m6OJ+7^ـ怴ꀀ܀궙 @%€u,JQI~6D~iVWL,+@W$.@WuWm,mW@@J=Þ'=եܼԀꞀـ͌%3B.Wa'.m@6I~Xp@LV@mJmD{@WL+IW{hWmJh>+p4I'D緋楐, À€̀ʀԀ܀瀀ـ>h6[%$h~W+O^WmsViX[u7Ipm@ss{JJ@mgsmm~@Xm4%@shuu7mpLB3JD ɴ4ԅʀ􀀀€Ҿ%,V[shV+6,u QQJh$g.aOm4~Jts4^@p[%h~|=hsu7$B+D@m > pO=[=b@W$B%4 +O+@[D.$  $,,¥aʼ紶篼À%ʨҼͼ̼ÞҴž ۂҥ퀩ှ܀ـҀꀐ܀À̟ܥ$@J,.[|$[,h3m3aDQ|Q=pbtQtQtgm@gs4{J>LiBXW=|D^=sQVBh%+I,7 J^վҢ̀ՙܨҶ⯴=·QL$WD=4BgaJVBW,WV[~X>m{{[WuVuWummhubX^~|~uWJLg$Os^@3@IBD7.@@O@%=b   ᥟԀռܴٶ܀Հ٪ٙԀܩʱҪͷöɷ̪ ʶټ I%+ 4+66%g7>@D4'+7= 4,6%%W.=$++,QQB++I+V='+Q6@+7LI@V7++I=JQ%%7I%+$Q'%I@p%DD +W%.3a%^ ' % .7+3 %V%L + %Q%%  3%$3 %4I$+++$4+%O+@@=..7Q=+@@O%$+ @3+$ %%$+=  @%+=JQ %Q $@$%=++J % +=4 %3%I % J$%+Q+ W%.%+J+%@%+ I%%%+%3 %   $3%%+ %J%4+% .+@@.3 %+$$$4@%  I  L%3+%Q$@I+%43@%@+վJ @ 4+3@+h++%7@@ $ +3%%%%=%J+Q|+@++m=++O@++.QW+%%J3Ia+% +4$ @ 4+%=@@++%% =@4+IQ@3%$ %Q$+rockdodger-0.9.2/data/shield0.png0000644000175000001440000000063212257577553016423 0ustar krawczykusersPNG  IHDRtXbKGDD`O pHYs  @AtIME/'IDATx1N@ƅ{ (c គֹA얂en`:"T,ŎJI$#l"YivVK rv\^r rw wϟoZ\:hh-e~]>XGKZs`U_5cas`ah[ 4ƫod[oX<($dBc%Wd0[P@m-𝱳X礈yIxH9 -}]LSpuؕ$Y&ؕ$uJ\ ~M]]IENDB`rockdodger-0.9.2/data/shield1.png0000644000175000001440000000056212257577553016426 0ustar krawczykusersPNG  IHDRtXbKGDD`O pHYs  @AtIME/ +;IDATxm@៕[GGBAmr!ZɶLdᵕ]V@zby9,cn_)o/s&MwYG`',n-n6=_`lk0޻Y~I ܒ|5pZx@*W& XHv\G|uT{GuWN}oO)@)e,Y(E)R(E+XE$ #include "SFont.h" #include "string.h" SFont_FontInfo InternalFont; int alpha = 127; int font_height; SDL_Surface *Back = NULL; char tmp[1024]; Uint32 GetPixel(SDL_Surface * Surface, Sint32 X, Sint32 Y) { Uint8 *bits; Uint32 Bpp; if(X < 0) puts ("SFONT ERROR: x too small in GetPixel. Report this to "); if(X >= Surface->w) puts ("SFONT ERROR: x too big in GetPixel. Report this to "); Bpp = Surface->format->BytesPerPixel; bits = ((Uint8 *) Surface->pixels) + Y * Surface->pitch + X * Bpp; // Paint the walls with the fresh blood of your enemies // Get the pixel switch (Bpp) { case 1: return *((Uint8 *) Surface->pixels + Y * Surface->pitch + X); break; case 2: return *((Uint16 *) Surface->pixels + Y * Surface->pitch / 2 + X); break; case 3:{ // Format/endian independent Uint8 r, g, b; r = *((bits) + Surface->format->Rshift / 8); g = *((bits) + Surface->format->Gshift / 8); b = *((bits) + Surface->format->Bshift / 8); return SDL_MapRGB(Surface->format, r, g, b); } break; case 4: return *((Uint32 *) Surface->pixels + Y * Surface->pitch / 4 + X); break; } return -1; } void InitFont2(SFont_FontInfo * Font) { int x = 0, i = 0; if(Font->Surface == NULL) { printf("The font has not been loaded!\n"); exit(1); } while(x < Font->Surface->w) { if(GetPixel(Font->Surface, x, 0) == SDL_MapRGB(Font->Surface->format, 255, 0, 255)) { Font->CharPos[i++] = x; while((x < Font->Surface->w - 1) && (GetPixel(Font->Surface, x, 0) == SDL_MapRGB(Font->Surface->format, 255, 0, 255))) x++; Font->CharPos[i++] = x; } x++; } Font->h = Font->Surface->h; font_height = Font->h; SDL_SetColorKey(Font->Surface, SDL_SRCCOLORKEY, GetPixel(Font->Surface, 0, Font->Surface->h - 1)); } void InitFont(SDL_Surface * Font) { InternalFont.Surface = Font; InitFont2(&InternalFont); } int SFont_wide(const char *text) { int i = 0, xwide = 0; int ofs; SFont_FontInfo *Font = &InternalFont; while(text[i]) { if(text[i] == ' ') { xwide += (int) (Font->CharPos[2] - Font->CharPos[1]); } else { ofs = (text[i] - 33) * 2 + 1; xwide += (int) (Font->CharPos[ofs + 1] - Font->CharPos[ofs]); } i++; } return xwide; } int SFont_height() { return InternalFont.Surface->h - 1; } void PutString2(SDL_Surface * Surface, SFont_FontInfo * Font, int x, int y, const char *text) { int ofs; int i = 0; SDL_Rect srcrect, dstrect; while(text[i]) { if(text[i] == ' ') { x += Font->CharPos[2] - Font->CharPos[1]; } else { // printf("-%c- %c - %u\n",228,text[i],text[i]); ofs = (text[i] - 33) * 2 + 1; //printf("printing %c %d\n",text[i],ofs); srcrect.w = dstrect.w = (Font->CharPos[ofs + 2] + Font->CharPos[ofs + 1]) / 2 - (Font->CharPos[ofs] + Font->CharPos[ofs - 1]) / 2; srcrect.h = dstrect.h = Font->Surface->h - 1; srcrect.x = (Font->CharPos[ofs] + Font->CharPos[ofs - 1]) / 2; srcrect.y = 1; dstrect.x = x - (float) (Font->CharPos[ofs] - Font->CharPos[ofs - 1]) / 2; dstrect.y = y; //SDL_SetAlpha ( Font->Surface, SDL_SRCALPHA, 127); SDL_BlitSurface(Font->Surface, &srcrect, Surface, &dstrect); x += Font->CharPos[ofs + 1] - Font->CharPos[ofs]; } i++; } } // Return a new surface, with the text on it. // This surface is new, fresh, and must eventually be freed. // Create the new surface with the same colour system as a parent surface. SDL_Surface *new_Surface_PutString(SDL_Surface * parent, const char *text) { Uint32 rmask = parent->format->Rmask; Uint32 gmask = parent->format->Gmask; Uint32 bmask = parent->format->Bmask; Uint32 amask = parent->format->Amask; Uint32 bytesperpixel = parent->format->BytesPerPixel; return SDL_CreateRGBSurface(SDL_SWSURFACE, SFont_wide(text), SFont_height(), bytesperpixel, rmask, gmask, bmask, amask); } void PutString(SDL_Surface * Surface, int x, int y, const char *text) { PutString2(Surface, &InternalFont, x, y, text); } int TextWidth2(SFont_FontInfo * Font, char *text) { int x = 0, i = 0; unsigned char ofs = 0; while(text[i] != '\0') { if(text[i] == ' ') { x += Font->CharPos[2] - Font->CharPos[1]; i++; } else { ofs = (text[i] - 33) * 2 + 1; x += Font->CharPos[ofs + 1] - Font->CharPos[ofs]; i++; } } return x + Font->CharPos[ofs + 2] - Font->CharPos[ofs + 1]; } int TextWidth(char *text) { return TextWidth2(&InternalFont, text); } void TextAlpha(int a) { alpha = a; } void XCenteredString2(SDL_Surface * Surface, SFont_FontInfo * Font, int y, char *text) { PutString2(Surface, &InternalFont, Surface->w / 2 - TextWidth(text) / 2, y, text); } void XCenteredString(SDL_Surface * Surface, int y, char *text) { XCenteredString2(Surface, &InternalFont, y, text); } void clearBuffer() { SDL_Event event; // Delete the event buffer while(SDL_PollEvent(&event)); // start input SDL_EnableUNICODE(1); } int SFont_Input2(SDL_Surface * Dest, SFont_FontInfo * Font, int x, int y, int PixelWidth, char *text) { SDL_Event event; SDL_Rect rect; int ofs = (text[0] - 33) * 2 + 1; int leftshift; int ch = 0; //Fixes a warning: may be used unintialised. if(ofs < 0) { leftshift = 0; } else { leftshift = (Font->CharPos[ofs] - Font->CharPos[ofs - 1]) / 2; } rect.x = x - leftshift; rect.y = y; rect.w = PixelWidth; rect.h = Font->Surface->h; //SDL_SetAlpha (Dest, SDL_SRCALPHA, 127); SDL_BlitSurface(Dest, &rect, Back, NULL); sprintf(tmp, "%s_", text); PutString2(Dest, Font, x, y, tmp); SDL_UpdateRect(Dest, x - leftshift, y, PixelWidth, Font->h); while(SDL_PollEvent(&event) && event.type == SDL_KEYDOWN) { // Find the character pressed ch = event.key.keysym.unicode; // If the character is illegal, we PASS IT THROUGH TO APPEND TO THE // STRING ANYWAY! Boy are we dumb sometimes. This character should // first be checked to see if it's in the list of characters supported // by this font. // TODO // If backspace and the length of the text > 0, reduce the string by 1 character if(ch == '\b') { if(strlen(text) > 0) { text[strlen(text) - 1] = '\0'; } } else { sprintf(text, "%s%c", text, ch); } // If the new character would exceed the allowed width if(TextWidth2(Font, text) > PixelWidth) { text[strlen(text) - 1] = '\0'; } //SDL_SetAlpha (Back, SDL_SRCALPHA, 127); SDL_BlitSurface(Back, NULL, Dest, &rect); PutString2(Dest, Font, x, y, text); if(ofs > 0) { SDL_UpdateRect(Dest, x - (Font->CharPos[ofs] - Font->CharPos[ofs - 1]) / 2, y, PixelWidth, Font->Surface->h); } } if(ch == SDLK_RETURN) { SDL_FreeSurface(Back); Back = NULL; text[strlen(text)-1]='\0'; //Remove the CR character as this produces weird effects. return 1; } else return 0; } int SFont_Input(SDL_Surface * Dest, int x, int y, int PixelWidth, char *text) { if(Back == NULL) { Back = SDL_AllocSurface(Dest->flags, PixelWidth, InternalFont.h, Dest->format->BitsPerPixel, Dest->format->Rmask, Dest->format->Gmask, Dest->format->Bmask, 0); } return SFont_Input2(Dest, &InternalFont, x, y, PixelWidth, text); // ph: // Returns 1 when the return key is pressed // Returns 0 when nothing exceptional happened } rockdodger-0.9.2/blubats.c0000644000175000001440000003447512257577552015267 0ustar krawczykusers#include "rockdodger_globals.h" #include "blubats.h" #include "sparkles.h" #include "datafun.h" #include "guru_meditation.h" #include "highscore_io.h" #include "random_gen.h" #include "ship.h" #include "sprite.h" #include "sound.h" #include #include #include #include #ifdef DEBUG #include #endif //! Maximum number of blubats #define MAX_BLUBATS 7 //! Maximum number of blubat droppingss #define MAX_BLUBAT_DROPPINGS 24 // Maximum number of possible doctrines #define MAX_DOCTRINES 16 // Maximum length of any doctrine (to help detect runaway arguments) #define MAX_DOCTRINE_LENGTH 8 float blubat_attack_prob = 0.99862; //!< 1 - attack probability /*! \brief positions for "spline" in doctrine */ struct doctrine_pos { float x[4]; //!< The X positions float y[4]; //!< The Y positions }; /*! \brief a doctrine * * A doctrine consists of doctrine positions and a size. */ struct doctrine { struct doctrine_pos *positions; //!< pointer to position array unsigned size; //!< number of elements }; struct doctrine doctrines[MAX_DOCTRINES]; //!< array with doctrines unsigned int number_of_doctrines = 0; //!< how many doctrines do we have? /*! \brief Structure describing a Blubat */ struct blubat { struct sprite sprite; struct doctrine *doctrine; //!< pointer to doctrine position array unsigned int docpos; //!< position in doctrine float t; //!< parameter for "spline": t in [0..1] float x; //!< last valid x position float y; //!< last valid y position float attack_probability; //!< probability of an attack short loaded_droppings; //!< number of droppings a blubat has }; /*! \brief Blubat dropping */ struct blubat_dropping { float x; //!< last valid x position float y; //!< last valid y position float dx; //!< velocity, x component float dy; //!< velocity, y component struct sprite sprite; }; //------------------------------------------------------------------ static struct doctrine_pos doctrine0[] = { {{-0.2, 2, -1, 1.2}, {-0.2, 1, 1, -0.2}}, {{666}, {NAN}} }; static struct doctrine_pos doctrine1[] = { {{-0.3, 1.4, -0.4, 1.2}, {-0.3, 0, 1, 1.2}}, {{666}, {NAN}} }; static struct doctrine_pos doctrine2[] = { {{1.2, -0.5, 1.5, -0.2}, {1, 0, 0, 1}}, {{666}, {NAN}} }; static struct doctrine_pos doctrine3[] = { {{1.2, 1, 0, -0.2}, {1, 0, 0, 1}}, {{666}, {NAN}} }; static struct doctrine_pos doctrine4[] = { {{-0.2, 1, 1, 0.5}, {-0.2, 0, 1, 1.2}}, {{0.5, 0, 0, 1.5}, {1.2, 1, 0, 0.5}}, {{666}, {NAN}} }; static struct doctrine_pos doctrine5[] = { {{0.4, 0.6, 0.8, 0.3}, {1.2, -1.4, 2.4, -0.4}}, {{0.3, 0.7, 0.3, -0.5}, {-0.4, 0.8, 1.3, 0.33}}, {{666}, {NAN}} }; static struct doctrine_pos doctrine6[] = { {{-0.2, 1.6, 0.8, 0.7}, {0.2, 0.2, 0.5, 1.4}}, {{0.7, 0.7, 1.1, -0.2}, {1.4, -0.8, 1.1, 0.8}}, {{-0.2, 0.6, 0.7, -0.2}, {0.8, 0.7, 0.3, 0.4}}, {{666}, {NAN}} }; static struct doctrine_pos doctrine7[] = { {{-0.2, 2.2, 0.8, -0.1}, {0.6, 0.5, 0.9, 1.1}}, {{666}, {NAN}} }; static struct doctrine_pos doctrine8[] = { {{0.55, 1.4, -0.4, 0.45}, {-0.1, 0.6, 0.6, -0.1}}, {{0.55, 1.1, -0.1, 0.35}, {-0.1, 1.6, 1.6, -0.1}}, {{0.35, 0.1, 0.1, 0.3}, {-0.1, 1.3, -1.1, -0.1}}, {{0.35, 0.2, 0.2, -0.1}, {-0.1, 0.6, 0.7, 0.7}}, {{666}, {NAN}} }; static sdl_surfaces_t *surf_blubats; static struct blubat blubats[MAX_BLUBATS]; static struct blubat *blu_end = blubats; static sdl_surfaces_t *surf_blubat_droppings; static struct blubat_dropping blubat_droppings[MAX_BLUBAT_DROPPINGS]; static struct blubat_dropping *bludrop_end = blubat_droppings; static float calc_doctrine(float t, const float pos[4]) { float t_ = 1 - t; float t_2 = t_ * t_; float t_3 = t_2 * t_; float t2 = t * t; float t3 = t2 * t; assert(pos != NULL); return pos[0] * t_3 + 3 * pos[1] * t_2 * t + 3 * pos[2] * t_ * t2 + pos[3] * t3; } #ifdef DEBUG static const char *doctrine2str(struct doctrine_pos *d) { static char buf[128]; float *x = d->x; float *y = d->y; sprintf(buf, "(%.6e, %.6e), (%.6e, %.6e), (%.6e, %.6e), (%.6e, %.6e)", *x, *y, x[1], y[1], x[2], y[2], x[3], y[3] ); return buf; } static struct doctrine_pos *str2doctrine(const char *docstr) { int i; struct doctrine_pos *d = malloc(sizeof(struct doctrine_pos)); float *x = d->x; float *y = d->y; if(d) { i = sscanf(docstr, "(%e, %e), (%e, %e), (%e, %e), (%e, %e)", x, y, x + 1, y + 1, x + 2, y + 2, x + 3, y + 3); if(i != 8) { free(d); d = NULL; } } return d; } #endif void *init_blubats(uiff_ctx_t iff) { unsigned int i; struct doctrine_pos **docarrptr; struct doctrine_pos *docptr; struct doctrine_pos *doc_pos_arrs[] = { doctrine0, doctrine1, doctrine2, doctrine3, doctrine4, doctrine5, doctrine6, doctrine7, doctrine8 }; int32_t size; size = uiff_find_group_ctx(&iff, IFF_FIND_REWIND, FORM, MakeID('B', 'B', 'A', 'T')); assert(printf("FORM.BBAT size = $%08X\n", size)); if(size >= 0) { if((size = uiff_find_chunk_ctx(&iff, MakeID('A', 'P', 'B', 'B'))) >= 2) { //Chunk found and it is long enough... i = read16(iff.f); assert(printf("FORM.BBAT APBB size = $%08X i = $%08X\n", size, i)); blubat_attack_prob = 1 - (i / (float)((1 << 16) - 1)); assert(printf("new attack probability is %e\n", blubat_attack_prob)); } } number_of_doctrines = 0; for(i = 0; i < MAX_BLUBATS; ++i) { blubats[i].doctrine = NULL; } if((surf_blubats = load_images_ck("blubat.%02hx.xpm", -1, -1, -1)) == NULL) { guru_alert(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError, (void*)0x4242); return NULL; } if((surf_blubat_droppings = load_images_ck("bb-dropping.%02hx.xpm", -1, -1, -1)) == NULL) { guru_alert(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError, (void*)0x42424452); return NULL; } for(docarrptr = doc_pos_arrs; docarrptr < doc_pos_arrs + sizeof(doc_pos_arrs) / sizeof(struct doctrine_pos *); ++docarrptr) { docptr = *docarrptr; for(i = 0; i < MAX_DOCTRINE_LENGTH; ++i) { if(docptr[i].x[0] == 666 || docptr[i].y[0] == NAN) { assert(number_of_doctrines < MAX_DOCTRINES); doctrines[number_of_doctrines].size = i; doctrines[number_of_doctrines++].positions = docptr; #ifdef DEBUG printf("doctrine %ld ptr=%p, size=$%02X\n", docarrptr - doc_pos_arrs, docptr, i); #endif break; } } assert(i < MAX_DOCTRINE_LENGTH); } assert(number_of_doctrines != 0); return docarrptr; } /*! \brief Check if a float is smaller then epsilon. * * If f is smaller than epsilon it will be set to epsilon * * \param f pointer to a float, can be modifiedchanged * \param epsilon value to check for */ static inline void no_smaller_than(float *f, float epsilon) { assert(epsilon > 0); if(fabsf(*f) < epsilon) { *f = *f < 0 ? -epsilon : epsilon; } } static void activate_one_dropping(const struct blubat *blubat) { if(bludrop_end - blubat_droppings >= MAX_BLUBATS) return; struct blubat_dropping *bptr = bludrop_end++; float x = blubat->x; float y = blubat->y; const float maxdx = 35; const float maxdy = 30; bptr->x = x; bptr->y = y; bptr->dx = (xship + surfaces_ship->surfaces[0]->w / 2 - x) / 51.1; if(bptr->dx > maxdx) { x = bptr->dx / maxdx; //Scaling factor, otherwise our blubats always miss... bptr->dx = maxdx; bptr->dy *= x; } bptr->dy = (yship + surfaces_ship->surfaces[0]->h / 2 - y) / 51.1; if(bptr->dy > maxdy) { y = bptr->dy / maxdy; //Scaling factor bptr->dx *= y; bptr->dy = maxdy; } //If droppings are too slow, speed them up (otherwise they never leave the screen) no_smaller_than(&bptr->dx, 0.15); no_smaller_than(&bptr->dy, 0.15); init_sprite(&bptr->sprite, surf_blubat_droppings->surfaces, surf_blubat_droppings->num_surfaces, 130, last_ticks); } int activate_one_blubat() { if(blu_end - blubats >= MAX_BLUBATS) return 0; struct blubat *bptr = blu_end++; bptr->doctrine = doctrines + (unsigned) (rnd() * number_of_doctrines); bptr->docpos = 0; bptr->attack_probability = blubat_attack_prob; bptr->loaded_droppings = rnd() * 3 + 1; bptr->t = 0; bptr->x = calc_doctrine(0, bptr->doctrine->positions->x) * xsize; bptr->y = calc_doctrine(0, bptr->doctrine->positions->y) * ysize; init_sprite(&bptr->sprite, surf_blubats->surfaces, surf_blubats->num_surfaces, 100, last_ticks); #ifdef DEBUG unsigned i; printf("bptr=%p blu_end=%p doctrine=%p x=%9.4e y=%9.4e\n", bptr, blu_end, bptr->doctrine, bptr->x, bptr->y); for(i = 0; i < bptr->doctrine->size; ++i) { printf("\t%s\n", doctrine2str(bptr->doctrine->positions + i)); } #endif return 1; } int check_blubat_hit(int ylaser, int maxx) { struct blubat *bluptr; for(bluptr = blubats; bluptr < blu_end; ++bluptr) { //Just to be sure... if((bluptr->doctrine) == NULL) continue; float x = bluptr->x; float y = bluptr->y; if(ylaser >= y && ylaser < y + 16) { if(x <= maxx && xship < x) { #ifdef DEBUG printf("bluptr=%p blu_end=%p ylaser=%d maxx=%d x=%e y=%e\n", bluptr, blu_end, ylaser, maxx, bluptr->x, bluptr->y); #endif return bluptr - blubats; } } } return -1; } void deactivate_all_blubats(void) { blu_end = blubats; } static void display_droppings(SDL_Surface * surf_screen) { float x, y; struct blubat_dropping *dropptr; for(dropptr = blubat_droppings; dropptr < bludrop_end; ++dropptr) { x = dropptr->x; y = dropptr->y; draw_sprite(&dropptr->sprite, x, y, surf_screen, last_ticks); } } void display_blubats(SDL_Surface * surf_screen) { struct blubat *bluptr; float x, y; for(bluptr = blubats; bluptr < blu_end; ++bluptr) { if((bluptr->doctrine) != NULL) { x = bluptr->x; y = bluptr->y; draw_sprite(&bluptr->sprite, x, y, surf_screen, last_ticks); } } display_droppings(surf_screen); } void kill_blubat(unsigned int hit) { struct blubat *bluptr = blubats + hit; int x = (int) bluptr->x; int y = (int) bluptr->y; bluptr->doctrine = NULL; play_sound(1 + (int) (rnd() * 3)); makebangdots(x, y, 0, 0, get_current_sprite_surface(&bluptr->sprite, last_ticks), 15, 1); inc_score(x, y, BLUBAT_KILL_POINTS); } static void move_all_droppings() { float x, y; struct blubat_dropping *bptr; struct blubat_dropping *target = blubat_droppings; for(bptr = blubat_droppings; bptr < bludrop_end; ++bptr) { x = bptr->x + bptr->dx * movementrate; y = bptr->y + bptr->dy * movementrate; if(x > xsize || y > ysize || x < -surf_blubat_droppings->surfaces[0]->w || y < -surf_blubat_droppings->surfaces[0]->h) continue; bptr->x = x; bptr->y = y; if(target != bptr) { *target = *bptr; } ++target; } bludrop_end = target; } void move_all_blubats() { struct blubat *bluptr; float t; for(bluptr = blubats; bluptr < blu_end; ++bluptr) { //We have to check as a blubat may be killed already! if((bluptr->doctrine) == NULL) { #ifdef DEBUG printf("bluptr=%p blu_end=%p x=%e y=%e, swapping with ", bluptr, blu_end, bluptr->x, bluptr->y); #endif /* * Reduce end pointer until it is the current one (we are done * then) or reduce end pointer if this is also a NULL doctrine. */ while(--blu_end != bluptr) { if(blu_end->doctrine != NULL) break; } #ifdef DEBUG printf("blu_end=%p\n", bluptr); #endif //Copy the old end to the current one. if(bluptr < blu_end) { *bluptr = *blu_end; } else { break; //The whole loop as we are done now. } assert(blu_end >= bluptr); } t = bluptr->t + 1.0 / 200 * movementrate; if(t <= 1.0) { assert(bluptr->doctrine != NULL); bluptr->x = calc_doctrine(t, bluptr->doctrine->positions[bluptr->docpos].x) * xsize; bluptr->y = calc_doctrine(t, bluptr->doctrine->positions[bluptr->docpos].y) * ysize; bluptr->t = t; } else { //Get next part of the spline! //Set time to beginning again. bluptr->t = 0; //Get next spline part. if(++bluptr->docpos >= bluptr->doctrine->size) { //This was the last part, remove this blubat! bluptr->doctrine = NULL; } } //Check if blubat start to drop something if(bluptr->loaded_droppings > 0 && bluptr->x >= 0 && bluptr->x < xsize && bluptr->y >= 0 && bluptr->y < ysize) { if(rnd() >= bluptr->attack_probability) { --bluptr->loaded_droppings; activate_one_dropping(bluptr); play_sound(6 + (int) (rnd() * 4)); bluptr->attack_probability = blubat_attack_prob; //Reset attack probability } else { bluptr->attack_probability *= blubat_attack_prob; //Increase } } } move_all_droppings(); //See if http://www.ferzkopp.net/Software/SDL_gfx-2.0/ is of any help... /* * /usr/share/doc/libsdl-sge/html/index.html * /usr/share/doc/libsdl-gfx1.2-4/html/index.html */ //http://cone3d.gamedev.net/cgi-bin/index.pl?page=tutorials/gfxsdl/tut4 } void shutdown_blubats(void) { #ifdef DEBUG unsigned i; printf("blubats=%p\n", blubats); for(i = 0; i < MAX_BLUBATS; ++i) { printf("\t%cblubat[%X]: doctrine=%p docpos=%03X t=%12.6e x=%e y=%e\n", blubats + i < blu_end ? '!' : ' ', i, blubats[i].doctrine, blubats[i].docpos, blubats[i].t, blubats[i].x, blubats[i].y); } printf("blu_end=%p\n", blu_end); #endif } #ifdef IAMMAIN int main(int argc, char **argv) { float x, y, t; int i; FILE *f; //cc -D IAMMAIN blubats.c -lSDL -lSDL_mixer -lSDL_image random_gen.o rockdodger_globals.o sprite.o sound.o bangdots.o datafun.o ship.o highscore_io.o struct doctrine_pos doctrine0 = { {-1, 2, -2, 1}, {-1, 1, 1, -1} }; struct doctrine_pos dtemp; float xs[10]; float *x_ptr = xs; //i = sscanf("(0.1, -0.2), (0.3, 0.4)", "(%e, %e), (%e, %e)", x_ptr++, x_ptr++, x_ptr++, x_ptr++); i = sscanf("(0.1, -0.2), (0.3, 0.4)", "(%e, %e), (%e, %e)", xs, xs + 1, xs + 2, xs + 3); printf("i=%d %e %e %e %e\n", i, xs[0], xs[1], xs[2], xs[3]); printf("%s\n", doctrine2str(&doctrine0)); /* * for(i = 0; i <= 40; ++i) { * t = i / 40.0; * x = calc_doctrine(t, doctrine3_1.x); * y = calc_doctrine(t, doctrine3_1.y); * printf("%e %e %e\n", t, x, y); * } * for(i = 0; i <= 40; ++i) { * t = i / 40.0; * x = calc_doctrine(t, doctrine3_2.x); * y = calc_doctrine(t, doctrine3_2.y); * printf("%e %e %e\n", t + 1, x, y); * } */ f = fopen("input.iff", "r"); if(f) { printf("%p\n", f); } return 0; } #endif rockdodger-0.9.2/datafun.c0000644000175000001440000000613512257577552015245 0ustar krawczykusers#include "datafun.h" #include "config.h" #include #include #include #include #include #include char *data_dir; char *get_data_dir(void) { char buf[4096]; buf[sizeof(buf) - 1] = 0; // Where are the images datafile? // default: ./data // second alternative: ROCK_DODGERS_DATADIR // final alternative: @datadir@/@PACKAGENAME@ strcpy(buf, "./data"); if(missing(buf)) { char *env; env = getenv("ROCK_DODGERS_DATA"); if(env != NULL) { strncpy(buf, env, sizeof(buf) - 1); if(missing(buf)) { fprintf(stderr, "Cannot find data directory $ROCK_DODGERS_DATADIR\n"); exit(-1); } } else { snprintf(buf, sizeof(buf) - 1, "%s/%s", DATADIR, PACKAGENAME); if(missing(buf)) { fprintf(stderr, "Cannot find data in %s\n", buf); exit(-2); } } } return strdup(buf); } char *load_file(const char *s) { static char retval[1024]; snprintf(retval, sizeof(retval), "%s/%s", data_dir, s); retval[sizeof(retval) - 1] = '\0'; return retval; } const char *load_file_dir(const char *dir, const char *name) { static char retval[4096]; snprintf(retval, sizeof(retval), "%s/%s/%s", data_dir, dir, name); retval[sizeof(retval) - 1] = '\0'; return retval; } SDL_Surface *load_image(const char *fname, short kr, short kg, short kb) { SDL_Surface *temp; SDL_Surface *surf = IMG_Load(load_file_dir("images", fname)); if(surf != NULL) { if(kr >= 0 && kg >= 0 && kb >= 0) { RD_VIDEO_TYPE key = (RD_VIDEO_TYPE) SDL_MapRGB(surf->format, kr, kg, kb); SDL_SetColorKey(surf, SDL_SRCCOLORKEY | SDL_RLEACCEL, key); } temp = surf; surf = SDL_DisplayFormat(temp); SDL_FreeSurface(temp); } return surf; } int missing(const char *dirname) { struct stat buf; lstat(dirname, &buf); return (!S_ISDIR(buf.st_mode)); } sdl_surfaces_t *load_images_ck(const char *fname, short kr, short kg, short kb) { unsigned short int i, j; char name[256]; SDL_Surface *tmpsurf[1<<16]; //Maximum! sdl_surfaces_t *surfaces; for(i = 0; i < (1<<16) - 1; i++) { snprintf(name, sizeof(name), fname, i); if((tmpsurf[i] = load_image(name, kr, kg, kb)) == NULL) { if(i == 0) { return NULL; } /* maybe later: fill up to n with first image... see greeeblies */ break; } else { printf("\tImage '%s' was loaded.\n", name); } } if(i == (1<<16) - 1) return NULL; //That many images??? surfaces = malloc(sizeof(struct sdl_surfaces)); if(surfaces != NULL) { surfaces->num_surfaces = i; if( (surfaces->surfaces = calloc(i, sizeof(SDL_Surface*))) == NULL) return NULL; surfaces->surfaces_end = surfaces->surfaces + i; for(j = 0; j < i; ++j) *(surfaces->surfaces + j) = tmpsurf[j]; } return surfaces; } void destroy_sdl_surfaces(sdl_surfaces_t *surfaces) { SDL_Surface **ptr; for(ptr = surfaces->surfaces; ptr < surfaces->surfaces_end; ++ptr) { SDL_FreeSurface(*ptr); } //Free array of surface pointers. free(surfaces->surfaces); memset(surfaces, 0, sizeof(*surfaces)); //Free the surfaces free(surfaces); } rockdodger-0.9.2/display_subsystem.c0000644000175000001440000000525312257577552017406 0ustar krawczykusers#include "sparkles.h" #include "display_subsystem.h" #include "rockdodger_globals.h" #include "engine_exhaust.h" #include "mood_item.h" #include "sound.h" #include #define END_LEVEL_MARGIN 0.98 /*! \brief Draw the black infinity of space * * The space, the final frontier.... */ void draw_infinite_black() { float t; float l = level - (int) level; Uint32 c = 0; if((l > END_LEVEL_MARGIN) && (state == GAME_PLAY)) { t = 4 * (1 - (1 - l) / (1 - END_LEVEL_MARGIN)); if(last_levelup_snd < level) { last_levelup_snd = ceilf(level); play_sound(4); } switch ((int) t) { case 0: // ramp up red c = SDL_MapRGB(surf_screen->format, (int) (255 * t), 0, 0); break; case 1: // ramp down red, ramp up green c = SDL_MapRGB(surf_screen->format, (int) (255 * (1 - t)), (int) (255 * (t - 1)), 0); break; case 2: // ramp down green, ramp up blue c = SDL_MapRGB(surf_screen->format, 0, (int) (255 * (3 - t)), (int) (255 * (t - 3))); break; case 3: // ramp down blue c = SDL_MapRGB(surf_screen->format, 0, 0, (int) (255 * (4 - t))); break; } } SDL_FillRect(surf_screen, NULL, c); } void draw_ghostly_rock_dodger(SDL_Surface *surf_t_rock, SDL_Surface *surf_t_dodger) { SDL_Rect src, dest; src.w = surf_t_rock->w; src.h = surf_t_rock->h; src.x = 0; src.y = 0; dest.w = src.w; dest.h = src.h; dest.x = (xsize - src.w) / 2 + cosf(fadetimer / 6.5) * 10; dest.y = (ysize / 2 - src.h) / 2 + sinf(fadetimer / 5) * 10; SDL_SetAlpha(surf_t_rock, SDL_SRCALPHA, (int) (170 + 85 * sinf(fadetimer))); SDL_BlitSurface(surf_t_rock, &src, surf_screen, &dest); src.w = surf_t_dodger->w; src.h = surf_t_dodger->h; dest.w = src.w; dest.h = src.h; dest.x = (xsize - src.w) / 2 + sinf(fadetimer / 6.5) * 10; dest.y = (ysize / 2 - src.h) / 2 + surf_t_rock->h + 20 + sinf((fadetimer + 1) / 5) * 10; SDL_SetAlpha(surf_t_dodger, SDL_SRCALPHA, (int) (170 + 85 * sinf(fadetimer - 1.0))); SDL_BlitSurface(surf_t_dodger, &src, surf_screen, &dest); } void drawdots(SDL_Surface * s) { // Draw the background stars (aka space dots - they can't possibly be stars // because then we'd be moving past them at something like 10,000 times the // speed of light) draw_space_dots(current_spacedot_engine, s); // Draw the mood item... draw_mood_item(s); // Draw all the engine dots SDL_LockSurface(s); draw_engine_dots(s); // Draw all outstanding bang dots and plumes draw_sparkles(s); SDL_UnlockSurface(s); } void draw_background_objects() { // Draw a fully black background draw_infinite_black(); // Draw the background dots drawdots(surf_screen); } rockdodger-0.9.2/engine_exhaust.c0000644000175000001440000000666612257577552016642 0ustar krawczykusers#include #include #include "config.h" #include "rockdodger_globals.h" #include "engine_exhaust.h" #include "random_gen.h" #include "ship.h" /* * Rewriting this part to use sparkles is not that easy as the engine * dots do not vanish when they collide with something. Also they * start with a short life. TODO: An idea is needed in order to get a * smooth working version. */ #ifdef DEBUG #include unsigned int max_edots_used = 0; #endif // Structure global variables struct enginedots edot1[MAX_ENGINE_DOTS]; static struct enginedots *edots_begin = edot1; static struct enginedots *edots_end = edot1; void init_engine_dots() { edots_begin = edot1; edots_end = edot1; } void draw_engine_dots(SDL_Surface * s) { struct enginedots edot; struct enginedots *dotptr; struct enginedots *targetptr = edots_begin; int heatindex; RD_VIDEO_TYPE *rawpixel; rawpixel = (RD_VIDEO_TYPE *) s->pixels; for(dotptr = edots_begin; dotptr < edots_end; ++dotptr) { edot = *dotptr; edot.x += edot.dx * movementrate; edot.y += edot.dy * movementrate; if((edot.life -= movementrate * 3) < 0 || edot.y < 0 || edot.y > ysize || edot.x < 0 || edot.x > xsize) { continue; } heatindex = edot.life * 6; rawpixel[(int) (s->pitch / sizeof(RD_VIDEO_TYPE) * (int) (edot.y)) + (int) (edot.x)] = heatindex > 3 * W ? heatcolor[3 * W - 1] : heatcolor[heatindex]; *targetptr++ = edot; } edots_end = targetptr; } void create_engine_dots(int newdots) { unsigned int i; double theta, r, dx, dy; SDL_Surface *surf_ship = get_current_sprite_surface(&ship_sprite, last_ticks); for(i = 0; i < newdots * movementrate; ++i) { if(edots_end - edots_begin >= MAX_ENGINE_DOTS) break; theta = rnd() * M_PI * 2; r = rnd(); dx = cosf(theta) * r; dy = sinf(theta) * r; edots_end->x = xship + surf_ship->w / 2 - 14; edots_end->y = yship + surf_ship->h / 2 + (rnd() - 0.5) * 5 - 1; edots_end->dx = 10 * (dx - 1.5) + xvel; edots_end->dy = 1 * dy + yvel; edots_end->life = 45 + rnd() * 5; edots_end++; } #ifdef DEBUG i = edots_end - edots_begin; if(i > max_edots_used) { max_edots_used = i; printf("new: max_edots_used = $%X\n", max_edots_used); } #endif } void create_engine_dots2(int newdots, int m) { int i; double theta, r, dx, dy; SDL_Surface *surf_ship = get_current_sprite_surface(&ship_sprite, last_ticks); // Don't create fresh engine dots when // the game is not being played and a demo is not beng shown if(state != GAME_PLAY && state != DEMO) return; for(i = 0; i < newdots; i++) { if(edots_end - edots_begin >= MAX_ENGINE_DOTS) break; theta = rnd() * M_PI * 2; r = rnd(); dx = cosf(theta) * r; dy = sinf(theta) * r; edots_end->x = xship + surf_ship->w / 2 + (rnd() - 0.5) * 1; edots_end->y = yship + surf_ship->h / 2 + (rnd() - 0.5) * 1; switch (m) { case 0: edots_end->x -= 14; edots_end->dx = 5 * (dx - 1.5) + xvel; edots_end->dy = 1 * dy + yvel; break; case 1: edots_end->dy = 5 * (dy - 1.5) + yvel; edots_end->dx = 1 * dx + xvel; break; case 2: edots_end->x += 14; edots_end->dx = -5 * (dx - 1.5) + xvel; edots_end->dy = 1 * dy + yvel; break; case 3: edots_end->dy = 5 * (dy + 1.5) + yvel; edots_end->dx = 1 * dx + xvel; break; } edots_end->life = 45 + rnd() * 20; ++edots_end; } } rockdodger-0.9.2/game_state.c0000644000175000001440000000355612257577552015740 0ustar krawczykusers#include #include "game_state.h" #include "rockdodger_globals.h" #include "highscore_io.h" #include "ship.h" #include "sound.h" void dead_pause() { play_tune(1); initialshield = 150; xship = 10; yship = ysize / 2; xvel = 2; yvel = 0; shieldlevel = 3 * W; laserlevel = 3 * W; } void handle_state_timeout(void) { //Ignore any state timeout in GAME PLAY mode. if(state == GAME_PLAY) return; // Count down the game loop timer, and change state when it gets to zero or less; if((state_timeout -= movementrate * 3) < 0) { switch (state) { case DEAD_PAUSE: // Create a new ship and start all over again state = GAME_PLAY; dead_pause(); break; case GAME_OVER: state = HIGH_SCORE_ENTRY; game_over(); break; case HIGH_SCORE_DISPLAY: state = TITLE_PAGE; state_timeout = 500.0; break; case HIGH_SCORE_ENTRY: // state = TITLE_PAGE; // play_tune(1); // state_timeout=100.0; break; case TITLE_PAGE: state = current_edition == EDITION_greeblies ? HIGH_SCORE_DISPLAY : DEMO; state_timeout = 400.0; sfx_enabled = 0; reset_ship_state(); break; case DEMO: state = HIGH_SCORE_DISPLAY; state_timeout = 222.365; break; case SETUP: state = TITLE_PAGE; state_timeout = 500.0; break; case GAME_PLAY: case RESTART_GAME: assert(0); //Never happens. break; case GAME_PAUSED: case QUIT_GAME: break; } } } void pausegame() { switch(state) { case GAME_PLAY: state = GAME_PAUSED; break; case GAME_PAUSED: state = GAME_PLAY; break; default: assert(0); } } void reset_ship_state() { nships = 4; clear_score(); xvel = 0; yvel = 0; xship = 10; yship = ysize / 2; shieldlevel = 3 * W; laserlevel = 3 * W; initialshield = 150; } rockdodger-0.9.2/greeblies.c0000644000175000001440000001562612257577552015571 0ustar krawczykusers#include "sparkles.h" #include "datafun.h" #include "greeblies.h" #include "guru_meditation.h" #include "highscore_io.h" #include "random_gen.h" #include "rocks.h" #include "rockdodger_globals.h" #include "ship.h" #include "sound.h" #include #include #include #include #define GREEBLIE_DATA_SIZE (sizeof(struct greeble) * MAX_GREEBLES) struct greeble *the_greeblies; // THE GREEBLIES sdl_surfaces_t *surf_greeblies; // The images void deactivate_greeblies() { unsigned int i; for(i = 0; i < MAX_GREEBLES; i++) the_greeblies[i].active = 0; for(i = 0; i < MAX_ROCKS; i++) rock[i].greeb = 0; } void *init_greeblies() { #ifdef DEBUG FILE *f; char debugname[] = "/tmp/rockdodger$greeblies.XXXXXX"; if(mkstemp(debugname) == -1) { perror("No mkstemp"); return NULL; } f = fopen(debugname, "w+"); if(f == NULL) { perror("no tmpfile"); return f; } if(ftruncate(fileno(f), GREEBLIE_DATA_SIZE) == -1) return NULL; the_greeblies = mmap(NULL, GREEBLIE_DATA_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fileno(f), 0); printf("init_greeblies(): the_greeblies=%p f=%p, sizeof=$%04lx\n", the_greeblies, f, GREEBLIE_DATA_SIZE); fclose(f); #else the_greeblies = malloc(GREEBLIE_DATA_SIZE); #endif if(the_greeblies == NULL) { guru_meditation(GM_FLAGS_DEADEND, GM_SS_BootStrap | GM_GE_NoMemory | GURU_SEC_greeblies, &init_greeblies); } else { deactivate_greeblies(); // Load all the available greeblies if((surf_greeblies = load_images_ck("greeblie%d.bmp", 0, 0, 255)) == NULL) return NULL; if(surf_greeblies->num_surfaces == 0) return NULL; } memset(the_greeblies, 0, GREEBLIE_DATA_SIZE); return the_greeblies; } void shutdown_greeblies() { assert(the_greeblies != NULL); #ifdef DEBUG munmap(the_greeblies, GREEBLIE_DATA_SIZE); #else free(the_greeblies); #endif the_greeblies = NULL; } void activate_greeblie(struct greeble *g) { int j; if(g->active) guru_meditation(GM_FLAGS_RECOVERY, GM_GE_BadParm | GURU_SEC_greeblies, &activate_greeblie); /* Choose an active rock to become attracted to. If there are no * such available rocks in the first 14.3% of spots we search, then * give up without activating any greeblies at all. * * As the rocks are quite fast usually we do not use up all the * greeblie slots. If MAX_ROCKS rocks would be on the screen we * really get a greeblie mania. */ for(j = 0; j < (MAX_ROCKS / 7); j++) { int i = rnd() * MAX_ROCKS; if(rock[i].active && rock[i].greeb == 0 && 4 * rock[i].x > 3 * xsize) { // Create a new greeb, alive, flying, from the right side of the screen at a // random position. g->active = 1; g->landed = 0; g->x = xsize; g->y = rnd() * ysize; g->imgcnt = 0; // It's flying to this rock, and the rock knows it. g->target_rock_number = i; rock[i].greeb = g - the_greeblies; return; } } } void activate_one_greeblie() { assert(the_greeblies != NULL); int i; for(i = 0; i < MAX_GREEBLES; i++) { if(!the_greeblies[i].active) { activate_greeblie(&the_greeblies[i]); return; } } } void move_all_greeblies() { struct greeble *g; int i; assert(the_greeblies != NULL); for(i = 0; i < MAX_GREEBLES; i++) { g = &the_greeblies[i]; if(g->active) { if(g->landed) { g->boredom++; // Landed greebles may take it into thier head to jump off their // rock and travel to a new one. Boredom can cause this, but a // ship getting close to their rock will do it too. //printf("%f %f %f\n",yship,rock[g->target_rock_number].y,g->y); if(rnd() < (0.001 * (g->boredom - 100)) || (g->target_rock_number && abs(yship - (rock[g->target_rock_number].y + g->y)) < 10 && (xship < rock[g->target_rock_number].x))) { int j; for(j = 0; j < (MAX_ROCKS / 10) && g->landed; j++) { // Find a target int i = rnd() * MAX_ROCKS; int dx; struct rock_struct *r = &rock[i]; if(r->active && r->greeb == 0 && (dx = (rock[g->target_rock_number].x - r->x)) > 0 && dx < xsize / 3) { // Change the greeble coordinates to represent free // space coordinates g->x += rock[g->target_rock_number].x; g->y += rock[g->target_rock_number].y; rock[g->target_rock_number].greeb = 0; g->target_rock_number = i; r->greeb = g - the_greeblies; g->active = 1; g->landed = 0; } } // It's no problem if we don't find a target, just don't // bother leaving the current one. } // If the greeble leaves the left side of the screen, he's gone. if(rock[g->target_rock_number].x + g->x < 0) { g->active = 0; rock[g->target_rock_number].greeb = 0; } } else { float dx = g->x - rock[g->target_rock_number].x + 10; float dy = g->y - rock[g->target_rock_number].y + 10; float dist = sqrtf(dx * dx + dy * dy); // Greebles are attracted to rocks. If the greeble is within a // certain distance of the target rock, set it to 'landed' mode. if(dist < 10) { g->landed = 1; g->boredom = 0; // Change the greeble coordinates to represent the // offset from the host rock. g->x = dx - 10; g->y = dy - 10; } else { g->x -= 20 * movementrate * dx / dist; g->y -= 10 * movementrate * dy / dist; } } } } } void display_greeb(struct greeble *g, SDL_Surface * surf_screen) { static SDL_Rect src, dest; short int surf_greeblies_idx; const short int speed_divisor = 3; surf_greeblies_idx = movementrate; if(g->active) { if(g->landed) { dest.x = (int) (g->x + rock[g->target_rock_number].x); dest.y = (int) (g->y + rock[g->target_rock_number].y); } else { dest.x = (int) (g->x); dest.y = (int) (g->y); } src.x = 0; src.y = 0; if(g->imgcnt < 0) { surf_greeblies_idx = 0; } else { surf_greeblies_idx = g->imgcnt / speed_divisor; } if(surf_greeblies_idx < surf_greeblies->num_surfaces) { src.w = surf_greeblies->surfaces[surf_greeblies_idx]->w; src.h = surf_greeblies->surfaces[surf_greeblies_idx]->h; dest.w = src.w; dest.h = src.h; SDL_BlitSurface(surf_greeblies->surfaces[surf_greeblies_idx], &src, surf_screen, &dest); } } g->imgcnt += movementrate; if(g->imgcnt / speed_divisor >= surf_greeblies->num_surfaces) { g->imgcnt = -24; //A pause before replaying animation. } } void kill_greeb(int hitgreeb) { struct greeble *g; int r; assert(the_greeblies != NULL); g = &the_greeblies[hitgreeb]; g->active = 0; if((r = g->target_rock_number)) rock[r].greeb = 0; if(g->landed) { play_sound(1 + (int) (rnd() * 3)); makebangdots((int) (g->x + rock[g->target_rock_number].x), (int) (g->y + rock[g->target_rock_number].y), 0, 0, surf_greeblies->surfaces[0], 15, 1); } else { makebangdots((int) (g->x), (int) (g->y), 0, 0, surf_greeblies->surfaces[0], 15, 1); play_sound(1 + (int) (rnd() * 3)); } inc_score(g->x, g->y, GREEBLE_KILL_POINTS); } rockdodger-0.9.2/guru_meditation.c0000644000175000001440000003065412257577552017025 0ustar krawczykusers#include "guru_meditation.h" #include #include #include #define FONTWIDTH 6 #define FONTHEIGHT 13 #if FONTWIDTH > 8 #error "Font width > 8" #endif static const unsigned char font_ripped_from_sge[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xaf, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xaf, 0x07, 0xaf, 0x07, 0xaf, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x87, 0x5f, 0x5f, 0x8f, 0xd7, 0xd7, 0x0f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x57, 0xaf, 0xef, 0xdf, 0xbf, 0xaf, 0x57, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x5f, 0x5f, 0xbf, 0x5f, 0x67, 0x6f, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xdf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xdf, 0xdf, 0xbf, 0xbf, 0xbf, 0xdf, 0xdf, 0xef, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xdf, 0xdf, 0xef, 0xef, 0xef, 0xdf, 0xdf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x57, 0x07, 0x8f, 0x07, 0x57, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xdf, 0x07, 0xdf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xdf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x8f, 0xdf, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xef, 0xef, 0xdf, 0xbf, 0xbf, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xaf, 0x77, 0x77, 0x77, 0x77, 0x77, 0xaf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x9f, 0x5f, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x07, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x77, 0xf7, 0xef, 0xdf, 0xbf, 0x7f, 0x07, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf7, 0xef, 0xdf, 0x8f, 0xf7, 0xf7, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xcf, 0xaf, 0xaf, 0x6f, 0x07, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0x07, 0x7f, 0x7f, 0x4f, 0x37, 0xf7, 0xf7, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x7f, 0x7f, 0x0f, 0x77, 0x77, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf7, 0xef, 0xef, 0xdf, 0xdf, 0xbf, 0xbf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x77, 0x77, 0x8f, 0x77, 0x77, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x77, 0x77, 0x87, 0xf7, 0xf7, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x8f, 0xdf, 0xff, 0xff, 0xdf, 0x8f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x8f, 0xdf, 0xff, 0xff, 0xcf, 0xdf, 0xbf, 0xff, 0xff, 0xff, 0xf7, 0xef, 0xdf, 0xbf, 0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xef, 0xdf, 0xbf, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x77, 0xf7, 0xef, 0xdf, 0xdf, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x77, 0x67, 0x57, 0x57, 0x4f, 0x7f, 0x87, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xaf, 0x77, 0x77, 0x77, 0x07, 0x77, 0x77, 0x77, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xb7, 0xb7, 0xb7, 0x8f, 0xb7, 0xb7, 0xb7, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x07, 0x7f, 0x7f, 0x7f, 0x0f, 0x7f, 0x7f, 0x7f, 0x07, 0xff, 0xff, 0xff, 0xff, 0x07, 0x7f, 0x7f, 0x7f, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x7f, 0x7f, 0x7f, 0x67, 0x77, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77, 0x07, 0x77, 0x77, 0x77, 0x77, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x6f, 0x9f, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x6f, 0x5f, 0x3f, 0x5f, 0x6f, 0x77, 0x77, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x07, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x27, 0x57, 0x57, 0x77, 0x77, 0x77, 0x77, 0xff, 0xff, 0xff, 0xff, 0x77, 0x37, 0x37, 0x57, 0x57, 0x67, 0x67, 0x77, 0x77, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x77, 0x77, 0x77, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x57, 0x8f, 0xf7, 0xff, 0xff, 0xff, 0x0f, 0x77, 0x77, 0x77, 0x0f, 0x5f, 0x6f, 0x77, 0x77, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x7f, 0x7f, 0x8f, 0xf7, 0xf7, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x07, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77, 0xaf, 0xaf, 0xaf, 0xdf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77, 0x57, 0x57, 0x57, 0x27, 0x77, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0xaf, 0xaf, 0xdf, 0xaf, 0xaf, 0x77, 0x77, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0xaf, 0xaf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf7, 0xef, 0xef, 0xdf, 0xbf, 0xbf, 0x7f, 0x07, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xbf, 0xbf, 0xdf, 0xef, 0xef, 0xf7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xaf, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xcf, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf7, 0x87, 0x77, 0x77, 0x87, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x0f, 0x77, 0x77, 0x77, 0x77, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x7f, 0x7f, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0x87, 0x77, 0x77, 0x77, 0x77, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x07, 0x7f, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xb7, 0xbf, 0xbf, 0x0f, 0xbf, 0xbf, 0xbf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x77, 0x77, 0x87, 0xf7, 0x77, 0x8f, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x4f, 0x37, 0x77, 0x77, 0x77, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x9f, 0xdf, 0xdf, 0xdf, 0xdf, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xcf, 0xef, 0xef, 0xef, 0xef, 0x6f, 0x6f, 0x9f, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x6f, 0x5f, 0x3f, 0x5f, 0x6f, 0x77, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0x57, 0x57, 0x57, 0x57, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x37, 0x77, 0x77, 0x77, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x77, 0x77, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x77, 0x77, 0x77, 0x0f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x77, 0x77, 0x77, 0x87, 0xf7, 0xf7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x37, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x77, 0x9f, 0xef, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xbf, 0x0f, 0xbf, 0xbf, 0xbf, 0xb7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77, 0x67, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0xaf, 0xaf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x57, 0x57, 0x57, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0xaf, 0xdf, 0xdf, 0xaf, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x67, 0x97, 0xf7, 0x77, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xef, 0xdf, 0xbf, 0x7f, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xdf, 0xdf, 0xdf, 0x3f, 0xdf, 0xdf, 0xdf, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xdf, 0xdf, 0xdf, 0xe7, 0xdf, 0xdf, 0xdf, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x57, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a }; static void put_char(SDL_Surface *ts, Uint32 col, int x, int y, char c) { const unsigned char *fptr; int l, i; int bpp = ts->format->BytesPerPixel; if(c >= 0x20 && c <= 0x7f) { fptr = font_ripped_from_sge + (c - 0x20) * FONTHEIGHT; //Point to first byte of the character. for(l = 0; l < FONTHEIGHT; ++l) { int shift = 0x80; for(i = 0; i < FONTWIDTH; i++) { if(!(*fptr & shift)) { Uint8 *p = (Uint8 *)ts->pixels + (y + l) * ts->pitch + (x + i) * bpp; switch(bpp) { case 1: *p = col; break; case 2: *(Uint16 *)p = col; break; case 3: if(SDL_BYTEORDER == SDL_BIG_ENDIAN) { p[0] = (col >> 16) & 0xff; p[1] = (col >> 8) & 0xff; p[2] = col & 0xff; } else { p[0] = col & 0xff; p[1] = (col >> 8) & 0xff; p[2] = (col >> 16) & 0xff; } break; case 4: *(Uint32 *)p = col; break; default: abort(); } } shift >>= 1; } ++fptr; } } } static void center_text(SDL_Surface *ts, Uint32 col, int y, const char *cptr) { int i; size_t slen = strlen(cptr); int x = (ts->w - slen * FONTWIDTH) / 2; for(i = 0; i < slen; ++i) { put_char(ts, col, x, y, *cptr++); x += FONTWIDTH; } } static int do_delay() { SDL_Event event; int i; int button = -1; for(i = 0; button == -1 && i < 15; ++i) { while(SDL_PollEvent(&event) == 1) { switch(event.type) { case SDL_QUIT: abort(); break; case SDL_MOUSEBUTTONDOWN: //case SDL_MOUSEBUTTONUP: button = event.button.button; break; case SDL_KEYDOWN: case SDL_KEYUP: if(event.key.keysym.sym == SDLK_ESCAPE) button = 1; break; default: break; } } SDL_Delay(100); } return button; } int guru_display_lowlevel(SDL_Surface *ts, unsigned short flags, const char **atext0) { int i, button; Uint32 fg_col; Uint32 black = SDL_MapRGB(ts->format, 0xb, 0, 0); int borderflag = 0; int lines = 0; const int border = 6; const char **txtptr = atext0; int max_border_flashes = 19; //Flash border that many times before continuing... while(*(txtptr++) != NULL) lines++; switch(flags & 0x03) { case 0: fg_col = SDL_MapRGB(ts->format, 0xef, 0xed, 0x3); break; case 2: fg_col = SDL_MapRGB(ts->format, 0xb, 0xfb, 0x3); break; case 3: fg_col = SDL_MapRGB(ts->format, 0x63, 0x6b, 0xfb); break; default: //Red on all other occasions. Mostly to make the compiler happy... fg_col = SDL_MapRGB(ts->format, 0xfb, 0xb, 0x3); break; } do { int y = 20; SDL_Rect rect = { 0, 0, ts->w, y + FONTHEIGHT * (lines + 1) }; borderflag = ~borderflag; if(borderflag) { SDL_FillRect(ts, &rect, fg_col); rect.x += border; rect.y += border; rect.w -= 2 * border; rect.h -= 2 * border; } SDL_FillRect(ts, &rect, black); SDL_LockSurface(ts); for(i = 0; i < lines; ++i) { center_text(ts, fg_col, y, atext0[i]); y += FONTHEIGHT; } SDL_UnlockSurface(ts); SDL_Flip(ts); button = do_delay(); if(flags & GM_FLAGS_AUTOTIMEOUT && --max_border_flashes < 0) { button = 1; //Left button was pressed... } } while(button == -1); return button; } int guru_display_gp(SDL_Surface *ts, unsigned short flags, Uint32 subsystem, void *address, const char *atext) { int button; int i; char buf[2][80]; /* char tmpbuf[20]; */ const char* cptrs[4] = { buf[0], atext, buf[1], NULL }; sprintf(buf[0], "Software Failure. Press left mouse button to %s.", flags & GM_FLAGS_CHOICE ? "retry, right for abort." : "continue"); i = sprintf(buf[1], "Guru Meditation #%08X.", subsystem); /* sprintf(tmpbuf, "%p", address); */ /* strcpy(buf[1] + i, tmpbuf + 2); */ if(sizeof(void*) > 4) { //TODO: Check for static asserts to do this correctly! i = sprintf(buf[1] + i, "%016lX", (unsigned long int)address); } else { i = sprintf(buf[1] + i, "%08lX", (unsigned long int)address); } button = guru_display_lowlevel(ts, flags, cptrs); return button; } int guru_alert(unsigned short flags, Uint32 subsystem, void *address) { int button; SDL_Surface *ts; ts = SDL_GetVideoSurface(); button = guru_display_gp(ts, flags, subsystem, address, ""); return button; } int guru_meditation(unsigned short flags, Uint32 subsystem, void *address) { int button = guru_alert(flags, subsystem, address); if(button == 3 && (flags & GM_FLAGS_ABORTIFY)) abort(); if(flags & GM_FLAGS_DEADEND) { if(flags & GM_FLAGS_EXIT_VIA_TERM) { raise(SIGTERM); } else { exit(EXIT_FAILURE); } raise(SIGILL); } return button; } int guru_display_alert2(unsigned short flags, const char *file, unsigned long line) { //Guru Medidation @guru_meditation.c:296. return -1; } /* * Guru Meditation 0000:0000:00000000.00000000 oder so... */ rockdodger-0.9.2/highscore_io.c0000644000175000001440000001422612257577552016265 0ustar krawczykusers#include #include #include #include #include #include "config.h" #include "rockdodger_globals.h" #include "highscore_io.h" #include "SFont.h" // High score table struct highscore high[EDITION_MAXIMUM_EDITION][MAXIMUM_HIGH_SCORE_ENTRIES] = { { {13000,"Pad",2,0}, {12500,"Pad",2,0}, {6500,"Pad",1,0}, {5000,"Pad",1,0}, {3000,"Pad",1,0}, {2500,"Pad",1,0}, {2000,"Pad",1,0}, {1500,"Pad",1,0} }, { {4000, "Pad", 5, 0}, {3200, "Pad", 4, 0}, {2600, "Pad", 3, 0}, {2200, "Pad", 3, 0}, {1800, "RPK", 2, 0}, {1500, "Pad", 2, 0}, {1200, "RPK", 2, 0}, {900, "RPK", 1, 0} } }; long score = 0; int scorerank = -1; char name_input_buf[512]; static const char *HIGHSCORE_HEADER_FORMAT = "rockdodger highscore %x\n"; static const int HIGHSCORE_VERSION = 5; static const char *HIGHSCORE_EDITION_FORMAT = "edition %d\n"; FILE *hs_fopen(const char *mode) { mode_t mask; char s[1024]; FILE *f = NULL; s[sizeof(s) - 1] = '\0'; snprintf(s, sizeof(s) - 1, "%s/rockdodger.scores", GAMESDIR); mask = umask(0111); if((f = fopen(s, mode)) == NULL) { umask(0117); snprintf(s, sizeof(s) - 1, "%s/.rockdodger_high", getenv("HOME")); if((f = fopen(s, mode)) == NULL) { fprintf(stderr, "Could not open highscore file '%s', mode '%s'!\n", s, mode); } } umask(mask); return f; } void read_high_score_table() { FILE *f; int i, giveup = 0; int edition = 0; int got_edition = 1; if((f = hs_fopen("r")) != NULL) { // If the file exists, read from it if(fscanf(f, HIGHSCORE_HEADER_FORMAT, &i) == 1) { #ifdef DEBUG printf(HIGHSCORE_HEADER_FORMAT, i); #endif if(i == HIGHSCORE_VERSION) { do { #ifdef DEBUG char debugbuf[889]; long pos = ftell(f); if(fgets(debugbuf, sizeof(debugbuf), f) == NULL) { perror("fgets in read_high_score_table()"); break; //the loop } printf("next line pos=%04lX '%s'\n", pos, debugbuf); fseek(f, pos, SEEK_SET); #endif i = fscanf(f, HIGHSCORE_EDITION_FORMAT, &edition); #ifdef DEBUG printf("i=%d: ", i); printf(HIGHSCORE_EDITION_FORMAT, edition); #endif if(i == 1) /* read OK */ { giveup = 0; if(edition < 0 || edition >= EDITION_MAXIMUM_EDITION) { fprintf(stderr, "Illegal edition $%X at pos $%lX encountered!\n", edition, ftell(f)); /* No gurus yet, what a shame... guru_meditation(GM_FLAGS_RECOVERY | GM_FLAGS_CHOICE | GM_FLAGS_ABORTIFY, GM_SS_Misc | GM_GE_BadParm | GURU_SEC_highscore_io, (void*)(0x01000000 | (edition & 0xffffff))); */ continue; } } else /* none read, or error */ { got_edition = 0; giveup = 1; } for(i = 0; i < MAXIMUM_HIGH_SCORE_ENTRIES && !giveup; ++i) { char s[1024]; long int highscore; int scanret; if(high[edition][i].allocated) { free(high[edition][i].name); high[edition][i].allocated = 0; } scanret = fscanf(f, "%ld %1023[^\n]", &highscore, s); #ifdef DEBUG printf("i=%d scanret=%d pos=%04lX highscore=%5ld '%s'\n", i, scanret, ftell(f), highscore, s); #endif switch (scanret) { case 2: high[edition][i].name = strdup(s); high[edition][i].score = highscore; high[edition][i].allocated = 1; break; case 1: high[edition][i].name = ""; high[edition][i].score = highscore; high[edition][i].allocated = 0; break; default: giveup = 1; break; } } /* This is needed as the 'scanret = fscanf(f, "%ld %1023[^\n]", &highscore, s)' reads until a LF is encountered. *But* this LF is *not* consumed so, in order of the rest of the loop ('i = fscanf(f, HIGHSCORE_EDITION_FORMAT, &edition);') to work correctly, we have to skip the LF. Stupid of me to forget this and to do a lot of debugging and debug print output. Phew! */ i = fgetc(f); } while(got_edition && i != EOF); } } fclose(f); } } void write_high_score_table() { FILE *f; int edition, i; if((f = hs_fopen("w")) != NULL) { // If the file exists, write to it fprintf(f, HIGHSCORE_HEADER_FORMAT, HIGHSCORE_VERSION); for(edition = 0; edition < EDITION_MAXIMUM_EDITION; ++edition) { fprintf(f, HIGHSCORE_EDITION_FORMAT, edition); for(i = 0; i < MAXIMUM_HIGH_SCORE_ENTRIES; ++i) { fprintf(f, "%ld %s\n", high[edition][i].score, high[edition][i].name); } } fclose(f); } /* #ifdef DEBUG */ /* FILE *debugfile = fopen("$HIGHSCORE:MEMORY", "w"); */ /* if(debugfile) { */ /* fwrite(high, sizeof(name_input_buf), 1, debugfile); */ /* fseek(debugfile, 0x1000, SEEK_SET); */ /* fwrite(high, sizeof(struct highscore), MAXIMUM_HIGH_SCORE_ENTRIES, debugfile); */ /* for(i = 0; i < MAXIMUM_HIGH_SCORE_ENTRIES; ++i) { */ /* fseek(debugfile, 0x2000 + 0x0100 * i, SEEK_SET); */ /* fwrite(high[i].name, sizeof(char), 0x0100, debugfile); */ /* } */ /* fclose(debugfile); */ /* } */ /* #endif */ } void inc_score(int x, int y, long dscore) { score += dscore; } long clear_score(void) { long old = score; score = 0.0; return old; } void game_over() { int i; clearBuffer(); state_timeout = 5.0e6; if(score >= high[current_edition][MAXIMUM_HIGH_SCORE_ENTRIES - 1].score) { // Read the high score table from the storage file read_high_score_table(); // Find ranking of this score, store as scorerank for(i = 0; i < MAXIMUM_HIGH_SCORE_ENTRIES; ++i) { if(high[current_edition][i].score <= score) { scorerank = i; break; } } // Lose the lowest name forever (loser!) if(high[current_edition][MAXIMUM_HIGH_SCORE_ENTRIES - 1].allocated) { high[current_edition][MAXIMUM_HIGH_SCORE_ENTRIES - 1].allocated = 0; free(high[current_edition][MAXIMUM_HIGH_SCORE_ENTRIES - 1].name); } // Move all lower scores down a notch for(i = MAXIMUM_HIGH_SCORE_ENTRIES - 1; i > scorerank; --i) { high[current_edition][i] = high[current_edition][i - 1]; } // Insert blank high score high[current_edition][scorerank].score = score; high[current_edition][scorerank].name = ""; high[current_edition][scorerank].allocated = 0; } } rockdodger-0.9.2/input_functions.c0000644000175000001440000000630612257577552017052 0ustar krawczykusers#include "input_functions.h" #include "game_state.h" #include "rockdodger_globals.h" SDL_Joystick *joysticks[1] = { NULL }; int joystick_flag = 1; Uint32 screenshot_last_ticks = 0; //!< We really need a delay... inputstate_t *get_joystick_input(inputstate_t *inputstate) { SDL_Joystick *joystick; int stick_x, stick_y, button; if(joystick_flag == 1) { joystick = joysticks[0]; stick_x = SDL_JoystickGetAxis(joystick, 0); stick_y = SDL_JoystickGetAxis(joystick, 1); if(stick_x > JOYSTICK_DEADZONE) { inputstate->inputstate[RIGHT] |= 1; } if(stick_x < -JOYSTICK_DEADZONE) { inputstate->inputstate[LEFT] |= 1; } if(stick_y > JOYSTICK_DEADZONE) { inputstate->inputstate[DOWN] |= 1; } if(stick_y < -JOYSTICK_DEADZONE) { inputstate->inputstate[UP] |= 1; } button = SDL_JoystickGetButton(joystick, 0); if(button == 1) { inputstate->inputstate[LASER] |= 1; } button = SDL_JoystickGetButton(joystick, 1); if(button == 1) { inputstate->inputstate[SHIELD] |= 1; } } return inputstate; } void get_keyboard_input(Uint8 *keystate, inputstate_t *inputstate) { //Always update this. if(keystate[SDLK_3]) { if(screenshot_last_ticks < last_ticks) { inputstate->inputstate[SCREENSHOT] |= 1; screenshot_last_ticks = last_ticks + 500; //Half a secod delay. } } //Update according to state. switch(state) { case HIGH_SCORE_DISPLAY: case TITLE_PAGE: case DEMO: if(keystate[SDLK_F1]) { //Setup? state = SETUP; } break; case SETUP: if(keystate[SDLK_F1]) { //Setup? state = TITLE_PAGE; } if(keystate[SDLK_RETURN]) { inputstate->inputstate[INPUT_SELECT] |= 1; } case GAME_PLAY: if(keystate[SDLK_UP]) { inputstate->inputstate[UP] |= 1; } if(keystate[SDLK_DOWN]) { inputstate->inputstate[DOWN] |= 1; } if(keystate[SDLK_LEFT]) { inputstate->inputstate[LEFT] |= 1; } if(keystate[SDLK_RIGHT]) { inputstate->inputstate[RIGHT] |= 1; } if(keystate[SDLK_d /*Pandora SDLK_HOME*/]) { inputstate->inputstate[LASER] |= 1; } #ifdef CHEAT if(keystate[SDLK_1]) { inputstate->inputstate[FAST] |= 1; } if(keystate[SDLK_2]) { inputstate->inputstate[NOFAST] |= 1; } #endif if(keystate[SDLK_s /*Pandora SDLK_RSHIFT*/]) { inputstate->inputstate[SHIELD] |= 1; } break; default: break; } } Uint8 *input_subsystem(inputstate_t *inputstate) { int i; Uint8 *keystate; for(i = 0; i < NUM_INPUTS; i++) { inputstate->inputstate[i] = 0; } SDL_PumpEvents(); keystate = SDL_GetKeyState(NULL); if((last_ticks += movementrate) < ign_k_utl_ticks) return keystate; get_keyboard_input(keystate, inputstate); #ifdef CHEAT if(keystate[SDLK_5]) { inc_score(0, 0, 10000); level++; } #endif if(state != HIGH_SCORE_ENTRY && (keystate[SDLK_q] || keystate[SDLK_ESCAPE])) { state = QUIT_GAME; } if((state == GAME_PLAY || state == GAME_PAUSED) && (keystate[SDLK_PAUSE] || keystate[SDLK_p])) { pausegame(); temporary_disable_key_input(); } return keystate; } void temporary_disable_key_input() { ign_k_utl_ticks = last_ticks + 139; } rockdodger-0.9.2/intro.c0000644000175000001440000001716512257577552014763 0ustar krawczykusers#include "intro.h" #include "datafun.h" #include "guru_meditation.h" #include "random_gen.h" #include "SFont.h" #include #include #include #include #include #include #include #include #include "sparkles.h" #include "blubats.h" #include "display_subsystem.h" #include "engine_exhaust.h" #include "greeblies.h" #include "rockdodger_globals.h" #include "ship.h" #include "sound.h" static struct { SDL_Color min; SDL_Color max; } minmaxcolors[NUM_COPPERBARS] = { { { 0x30, 0, 0 }, { 0xcf, 0x40, 0x4f } }, //Red { { 0, 0x10, 0 }, { 0x11, 0xc0, 0xa } }, //Green { { 0, 0, 0x40 }, { 0x7, 0x8, 0xaf } }, //Blue { { 0xa, 0x1a, 0x13 }, { 0x12, 0xcd, 0xad } }, //Cyan { { 1, 1, 1 }, { 0xc0, 0xc1, 0xc0 } }, //Gray { { 0x10, 0x10, 0 }, { 0xc0, 0xbf, 0xa } } //Yellow }; char intro_text[] = "Exploding Rock Productions presents \"Rock Dodger\" V"VERSION". " "Press any key to continue! " "Still no version one but much improved user experience. Bugs have been fixed... Plumedots on explosion have their origin where it should be. And we have a new powerup -- which sadly is not active right now. The game would be too easy otherwise! :-) " "Credits: Coding by Paul Holt, RPK. Music by Jack Beatmaster, Roz, Strobo, zake. Gfx: Paul Holt, RPK. Font: ripped from lib-sge. " " A little bit of history: In 1984 Paul Holt programmed the first version of the game in his computer science class. The game was later (in 2001) ported to Linux and SDL. In December 2010 I (RPK) joined the project and started cleaning up the code and added the eye blink to the greeblies. In 2012 we moved the main development site to http://code.google.com/p/rockdodger/. And here we are... Enjoy! " "Special Greetings go to my mom, I will miss you always... " ; struct rockintro *init_intro(SDL_Surface *target) { int i, j, x, y; SDL_Color colors[16]; SDL_Surface *surf; int xsize = target->w; struct rockintro *rockiptr = calloc(sizeof(struct rockintro), 1); if(rockiptr) { if((surf = load_image("exploding_rock.png", 0, 0xff, 0)) != NULL) { rockiptr->intro_image = SDL_DisplayFormat(surf); SDL_FreeSurface(surf); } else return NULL; rockiptr->scroller = init_scroller(intro_text, 440, 3.141, target->w); if(rockiptr->scroller == NULL) return NULL; for(i = 0; i < NUM_COPPERBARS; ++i) { rockiptr->positions[i] = 2 * M_PI / NUM_COPPERBARS * i; rockiptr->speeds[i] = 1.9 / 30.0; for(j = 0; j < 8; ++j) { SDL_Color col; unsigned u; u = (8 - j) * minmaxcolors[i].min.r; u += j * minmaxcolors[i].max.r; col.r = u / 8; u = (8 - j ) * minmaxcolors[i].min.g; u += j * minmaxcolors[i].max.g; col.g = u / 8; u = (8 - j ) * minmaxcolors[i].min.b; u += j * minmaxcolors[i].max.b; u /= 8; col.b = u; colors[j] = col; } surf = SDL_CreateRGBSurface(SDL_HWSURFACE, xsize, 16, 8, 0, 0, 0, 0); if(surf == NULL) return NULL; SDL_LockSurface(surf); SDL_SetColors(surf, colors, 0, 16); for(y = 0; y < 8; ++y) { for(x = 0; x < xsize; ++x) { Uint8 *pixels = surf->pixels; pixels[y * surf->w + x] = y; pixels[(15 - y) * surf->w + x] = y; } } SDL_UnlockSurface(surf); rockiptr->copperbars[i] = SDL_DisplayFormat(surf); SDL_SetAlpha(rockiptr->copperbars[i], SDL_SRCALPHA|SDL_RLEACCEL, 141); SDL_FreeSurface(surf); } } else { // No memory... guru_alert(GM_FLAGS_DEADEND, GM_SS_BootStrap | GM_GE_NoMemory | GURU_SEC_intro, &init_intro); } return rockiptr; } void update_and_draw_intro(struct rockintro *intro, SDL_Surface *target, float movementrate) { int i, j; float z_positions[NUM_COPPERBARS]; Sint16 y_positions[NUM_COPPERBARS]; int minimum = 0; SDL_Rect r = { 0, 0, 0, 0 }; for(i = 0; i < NUM_COPPERBARS; ++i) { y_positions[i] = sinf(intro->positions[i]) * 40 + 440; z_positions[i] = cosf(intro->positions[i]); intro->positions[i] += intro->speeds[i] * movementrate; } for(i = 0; i < NUM_COPPERBARS; ++i) { minimum = 0; for(j = 1; j < NUM_COPPERBARS; ++j) if(z_positions[j] < z_positions[minimum]) minimum = j; r.y = y_positions[minimum]; SDL_BlitSurface(intro->copperbars[minimum], NULL, target, &r); z_positions[minimum] = 666; } r.x = (target->w - 640) / 2; r.y = 0; SDL_BlitSurface(intro->intro_image, NULL, target, &r); update_and_draw_scroller(intro->scroller, target, movementrate * 1.412); draw_sparkles(target); update_sparkles(target); } void shutdown_intro(struct rockintro *intro) { int i; for(i = 0; i < NUM_COPPERBARS; ++i) { SDL_FreeSurface(i[intro->copperbars]); } destroy_scroller(intro->scroller); SDL_FreeSurface(intro->intro_image); reset_sparkles(); free(intro); } void play_intro(int force, int oss_sound_flag) { SDL_Event event; int state; register int i; int last_state = -1; int running = 1; SDL_Surface *surf_screen = SDL_GetVideoSurface(); short deltah, heading = 0; if(force == 0) { switch(opt_intro) { case 3: case 2: //Do not bug user again... opt_intro = 0; save_setup(); case 1: break; case 0: return; default: assert(0); return; } } struct rockintro *intro = init_intro(surf_screen); if(intro == NULL) { fprintf(stderr, "Can not initialise intro!\n"); return; } if(oss_sound_flag) play_tune(3); while(running) { while(SDL_PollEvent(&event) != 0) { if(event.type == SDL_MOUSEBUTTONDOWN || event.type == SDL_KEYDOWN) running = 0; } ticks_since_last = SDL_GetTicks() - last_ticks; last_ticks = SDL_GetTicks(); if(ticks_since_last > 200) { movementrate = 0; } else { movementrate = ticks_since_last / 50.0; } SDL_FillRect(surf_screen, NULL, SDL_MapRGB(surf_screen->format, 0, 0, 0)); update_and_draw_intro(intro, surf_screen, movementrate); state = (last_ticks / 0x1BC6) % 9; if(state != last_state) { switch(state) { case 6: xship = -37; yship = 225; break; case 5: xship = -37; yship = 370; break; case 1: xship = -37; yship = 80; break; case 3: while(activate_one_blubat()); xship = xsize / 2; yship = ysize + 42; break; } last_state = state; } SDL_LockSurface(surf_screen); draw_engine_dots(surf_screen); SDL_UnlockSurface(surf_screen); switch(state) { case 6: case 5: case 1: draw_ship(surf_screen); create_engine_dots(220); xship += movementrate * 6.08 * surf_screen->w / 800.0; //Ship should have the same speed, regardless of the screen size. if(xship > xsize + 40) xship = -40; break; case 2: draw_ghostly_rock_dodger(surf_t_rock, surf_t_dodger); fadetimer += movementrate / 1.92; break; case 3: display_blubats(surf_screen); move_all_blubats(); break; case 4: draw_ghostly_rock_dodger(surf_t_rock, surf_t_dodger); fadetimer += movementrate / 1.41; break; case 7: case 8: deltah = (surf_screen->w - 640) / 2; create_plumedots(7, 168 + deltah, 47, -heading, 4, 8); create_plumedots(7, surf_screen->w - 158 - deltah, 47, heading, 4, 8); heading += 2; break; } SDL_Flip(surf_screen); } for(i = surf_screen->h; i >= 0; i -= intro->copperbars[2]->h) { SDL_Rect r = { 0, i, 0, 0 }; SDL_BlitSurface(intro->copperbars[2], NULL, surf_screen, &r); SDL_Flip(surf_screen); SDL_Delay(7); } init_engine_dots(); deactivate_all_blubats(); shutdown_intro(intro); fadetimer = 0; //Reset the fade timer as the title page will otherwise not begin correctly. See display_version_n_text(). } rockdodger-0.9.2/laser.c0000644000175000001440000000106112257577552014722 0ustar krawczykusers#include "laser.h" #include "config.h" #include "random_gen.h" void draw_random_dots(SDL_Surface *surf, int ypos, int x_min, int x_max) { RD_VIDEO_TYPE c, *rawpixel; int i; int x, y; SDL_LockSurface(surf); rawpixel = (RD_VIDEO_TYPE *) surf->pixels; c = SDL_MapRGB(surf->format, rnd() * 128, 128 + rnd() * 120, rnd() * 128); for(i = 0; i < (x_max - x_min) * 5; i += 10) { x = rnd() * (x_max - x_min) + x_min; y = ypos + (rnd() - 0.5) * 1.5; rawpixel[surf->pitch / sizeof(RD_VIDEO_TYPE) * y + x] = c; } SDL_UnlockSurface(surf); } rockdodger-0.9.2/main.c0000644000175000001440000010205712257577552014547 0ustar krawczykusers/* Space Rocks! Avoid the rocks as long as you can! Copyright (C) 2001 Paul Holt This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // includes #include #include #include #include #include #include #include #include #include "config.h" #include "rockdodger_globals.h" #include "SFont.h" #include "sound.h" #include "random_gen.h" #include "sparkles.h" #include "blubats.h" #include "display_subsystem.h" #include "engine_exhaust.h" #include "game_state.h" #include "greeblies.h" #include "guru_meditation.h" #include "highscore_io.h" #include "input_functions.h" #include "intro.h" #include "laser.h" #include "mood_item.h" #include "powerup.h" #include "rocks.h" #include "ship.h" #include "datafun.h" #include "signal_handling.h" // constants #define M 255 #define BIG_FONT_FILE "20P_Betadance.png" // macros #define COND_ERROR(a) if ((a)) {initerror=strdup(SDL_GetError());return 1;} #define NULL_ERROR(a) COND_ERROR((a)==NULL) #define NULL_GURU(a, b, c) if((a)==NULL){initerror=strdup(SDL_GetError()); guru_meditation(GM_FLAGS_DEADEND, (b), (void*)(c)); return 1;} // SDL_Surface global variables SDL_Surface *surf_t_game; // Title element "game" SDL_Surface *surf_t_over; // Title element "over" SDL_Surface *surf_t_paused; // Title element "paused" SDL_Surface *surf_font_big; // The big font SDL_Surface *surf_gauge_shield[2]; // The shield gauge 0=on,1=off SDL_Surface *surf_gauge_laser[2]; // The laser gauge 0=on,1=off Scroller_t *highscore_scroller = NULL; // Scroller for highscore // Other global variables char topline[128]; char *initerror = ""; float rockrate, rockspeed; float countdown = 0; int laser = 0; int shieldsup = 0; int oss_sound_flag = 0; float faderate; struct min_max { int min, max; } rockfree_space_mm[121]; int rockfree_space_num = 0; int rockfree_space_max = 0; char *sequence[] = { "Rock Dodger", "Press SPACE to start!", "http://code.google.com/p/rockdodger/", "Arrow keys move the ship.", "Press S for shield and D for laser.", "If you need a pause press P.", "Pressing F1 gets you to the setup screen.", "You can bounce off the sides of the screen.", "Caution, do not try this in real life. Space has no sides.", "", "If you have a <500Mhz machine -- buy a new one!", "", "The little green guys are called Greeblies.", "Later in the game you will meet their friends...", "...the very dangerous Blubats!", "Watch out! Blubats may leave some droppings!", "Blubat droppings should not be inhaled!", "", "Code: RPK, Paul Holt", "GfX: RPK, Paul Holt", "Music: Jack Beatmaster, zake, Strobo, Roz", "", "Small icons floating leisurely over the screen", "are powerups. Get them!", "", "The engine on the back of the ship provides no thrust.", "It's a sparkler, there for effect.", "" }; const int nsequence = sizeof(sequence) / sizeof(char *); extern char *optarg; extern int optind, opterr, optopt; unsigned short screenshot_number = 0; /*!< Count the number of screen shots. This makes is possible to produce multiple screenshots per run. */ // ************************************* FUNCS /*! \brief Reinitialise all game parameters for a fresh start. * * \return 0 = OK, 1 = ERROR */ int restart_game() { int i; const char *txts[] = { "Congratulations! You have a high score.", "We have a winner!", "A place in the hall of fame has been reserved for you!", "Amazing performance! You earned a high score.", "Unbelievable, do you do anything besides playing this game?" }; const int num_of_txts = sizeof(txts) / sizeof(const char *); char buf[160]; state = TITLE_PAGE; cleanup_globals(); destroy_space_dots(current_spacedot_engine); NULL_ERROR(current_spacedot_engine = init_space_dots_engine(surf_screen, opt_cicada_spacedots, *iff_ctx)); if(surf_green_block) SDL_FreeSurface(surf_green_block); surf_green_block = SDL_CreateRGBSurface(SDL_HWSURFACE|SDL_SRCALPHA, surf_screen->w, 22, 32, surf_screen->format->Rmask, surf_screen->format->Gmask, surf_screen->format->Bmask, surf_screen->format->Amask); NULL_ERROR(surf_green_block); SDL_FillRect(surf_green_block, NULL, SDL_MapRGB(surf_screen->format, 0, 0xa8, 0x1c)); if(highscore_scroller) destroy_scroller(highscore_scroller); strcat(strcpy(buf, txts[SDL_GetTicks() % num_of_txts]), " Please enter your name using the keyboard and press enter!"); assert(strlen(buf) < sizeof(buf) - 1); NULL_ERROR(highscore_scroller = init_scroller(buf, 14 * font_height + 110, 7.28, surf_screen->w)); for(i = 0; i < MAX_ROCKS; i++) rock[i].active = 0; rockspeed = 5.0 * xsize / 640; deactivate_greeblies(); return 0; } void drawlaser() { int i, xc, hitrock, hitgreeb; if(laserlevel < 0) return; laserlevel -= movementrate; if(laserlevel < 0) { // If the laser runs out completely, there will be a delay before it can be brought back up laserlevel = -W / 2; return; } hitrock = -1; hitgreeb = -1; xc = xsize; // let xc = x coordinate of the collision between the laser and a space rock // 1. Calculate xc and determine the asteroid that was hit for(i = 0; i < MAX_ROCKS; i++) { if(rock[i].active) { SDL_Surface *rocksurf = get_rock_surface(i, 0); if(yship + 12 > rock[i].y && yship + 12 < rock[i].y + rocksurf->h && xship + 32 < rock[i].x + (rocksurf->w / 2) && rock[i].x + (rocksurf->w / 2) < xc) { xc = rock[i].x + (rocksurf->w / 2); hitrock = i; } } } for(i = 0; i < MAX_GREEBLES; i++) { int greebheight = 16; int greebwidth = 16; struct greeble *g; g = the_greeblies + i; if(g->active) { int greebx = (int) g->x; int greeby = (int) g->y; if(g->landed) { greebx += rock[g->target_rock_number].x; greeby += rock[g->target_rock_number].y; } if(yship + 12 > greeby && yship + 12 < greeby + greebheight && xship + 32 < greebx + (greebwidth / 2) && greebx + (greebwidth / 2) < xc) { xc = greebx + (greebwidth / 2); hitgreeb = i; } } } if(hitrock >= 0) heat_rock_up(hitrock, movementrate); if(hitgreeb >= 0) kill_greeb(hitgreeb); if((hitgreeb = check_blubat_hit((int) yship + 12, xc)) >= 0) { kill_blubat(hitgreeb); } // Plot a number of random dots between xship and xsize (or xc as in x-collision) draw_random_dots(surf_screen, yship + 12, xship + 32, xc); } /*! \brief Set the SDL video mode * * This function sets the video mode and surf_screen. It will use the * fullscreen flag to decide if it is a fullscreen surface or not. * * \return the new surf_screen */ SDL_Surface *set_video_mode() { Uint32 flag; // Attempt to get the required video size flag = SDL_DOUBLEBUF | SDL_HWSURFACE; if(opt_fullscreen) flag |= SDL_FULLSCREEN; surf_screen = SDL_SetVideoMode(xsize, ysize, RD_VIDEO_BPP, flag); return surf_screen; } int init() { int i; read_high_score_table(); data_dir = get_data_dir(); if(oss_sound_flag) { // Initialise SDL with audio and video if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) != 0) { oss_sound_flag = 0; printf("Can't open sound, starting without it\n"); atexit(SDL_Quit); } else { atexit(SDL_Quit); atexit(SDL_CloseAudio); oss_sound_flag = init_sound(); } } else { // Initialise with video only COND_ERROR(SDL_Init(SDL_INIT_VIDEO) != 0); atexit(SDL_Quit); } // Attempt to get the required video size set_video_mode(); NULL_ERROR(surf_screen); NULL_GURU(iff_ctx = get_iff_rock(load_file("iff.configdata.rock")), GM_FLAGS_RECOVERY | GM_FLAGS_ABORTIFY | GM_FLAGS_CHOICE | GM_SS_BootStrap | GM_GE_OpenLib | GURU_SEC_main, &get_iff_rock); //TODO: Add a splash screen... SDL_FillRect(surf_screen, NULL, SDL_MapRGB(surf_screen->format, 0x2e, 0x2e, 0x2e)); SDL_Flip(surf_screen); // Attempt to initialize a joystick if(joystick_flag) { if(SDL_InitSubSystem(SDL_INIT_JOYSTICK) != 0) { joystick_flag = 0; printf("Can't initialize joystick subsystem, starting without it.\n"); } else { int njoys; njoys = SDL_NumJoysticks(); printf("%d joystick(s) detected\n", njoys); if(njoys == 0) { printf ("That's not enough joysticks to start with joystick support\n"); joystick_flag = 0; } else { joysticks[0] = SDL_JoystickOpen(0); if(joysticks[0] == NULL) { printf("Couldn't open joystick %d\n", 0); joystick_flag = 0; } } } } set_signalhandling_up(); // Set the title bar text SDL_WM_SetCaption("Rock Dodgers", "rockdodgers"); // Set the heat color from the range 0 (cold) to 300 (blue-white) for(i = 0; i < W * 3; i++) { heatcolor[i] = SDL_MapRGB(surf_screen->format, (i < W) ? (i * M / W) : (M), (i < W) ? 0 : (i < 2 * W) ? ((i - W) * M / W) : M, (i < 2 * W) ? 0 : ((i - W) * M / W) // Got that? ); #ifdef DEBUG printf("heatcolor[%03x] = { %02x, %02x, %02x }\n", i, (i < W) ? (i * M / W) : (M), (i < W) ? 0 : (i < 2 * W) ? ((i - W) * M / W) : M, (i < 2 * W) ? 0 : ((i - W) * M / W) ); //No, not really... #endif } // Load global font if(!(surf_font_big = IMG_Load(load_file(BIG_FONT_FILE)))) { guru_meditation(GM_FLAGS_DEADEND, 0x30060000, (void*)0x464f4e54); return 1; } InitFont(surf_font_big); // Load the Title elements // GM_SS_Graphics | GM_GE_IOError NULL_GURU(surf_t_rock = load_image("rock.png", 255, 0, 0), GM_SS_Graphics | GM_GE_IOError, 0x524f434b); NULL_GURU(surf_t_dodger = load_image("dodgers.png", 255, 0, 0), GM_SS_Graphics | GM_GE_IOError, 0x444f4447); NULL_GURU(surf_t_game = load_image("game.png", 255, 0, 0), GM_SS_Graphics | GM_GE_IOError, 0x47414d45); NULL_GURU(surf_t_over = load_image("over.png", 255, 0, 0), GM_SS_Graphics | GM_GE_IOError, 0x4f564552); NULL_GURU(surf_t_paused = IMG_Load(load_file("paused.png")), GM_SS_Graphics | GM_GE_IOError, 0x50415553); NULL_GURU(surf_gauge_laser[0] = IMG_Load(load_file("laser0.png")), GM_SS_Graphics | GM_GE_IOError, 0x4c415330); NULL_GURU(surf_gauge_laser[1] = IMG_Load(load_file("laser1.png")), GM_SS_Graphics | GM_GE_IOError, 0x4c415331); NULL_GURU(surf_gauge_shield[0] = IMG_Load(load_file("shield0.png")), GM_SS_Graphics | GM_GE_IOError, 0x53484930); NULL_GURU(surf_gauge_shield[1] = IMG_Load(load_file("shield1.png")), GM_SS_Graphics | GM_GE_IOError, 0x53484931); // Load the little spaceship surface from the spaceship file NULL_GURU(surf_small_ship = load_image("ship_small.png", 0, 255, 0), GM_SS_Graphics | GM_GE_IOError, 0x5348534d); NULL_GURU(init_ship(), 0x40000000 | GM_GE_ProcCreate, 0x53484950); init_engine_dots(); NULL_ERROR(init_blubats(*iff_ctx)); NULL_ERROR(init_powerup()); NULL_ERROR(init_mood_item()); // Load all our lovely rocks NULL_ERROR(init_rocks()); NULL_ERROR(init_greeblies()); NULL_GURU(init_sparkles(*iff_ctx), GM_SS_Graphics | GM_GE_OpenLib | GURU_SEC_sparkles, &init_sparkles); // Remove the mouse cursor #ifdef SDL_DISABLE SDL_ShowCursor(SDL_DISABLE); #endif return 0; } void showgauge(int x, SDL_Surface * surf[2], float fraction) { static int endx, w; static SDL_Rect src, dest; src.y = 0; if(fraction > 0) { if(fraction > 1) fraction = 1.0; src.x = 0; w = src.w = surf[0]->w * fraction; src.h = surf[0]->h; endx = src.w; dest.w = src.w; dest.h = src.h; dest.x = x; dest.y = ysize - src.h - 10; SDL_BlitSurface(surf[0], &src, surf_screen, &dest); } else { endx = 0; w = 0; } src.x = endx; src.w = surf[1]->w - w; src.h = surf[1]->h; dest.w = src.w; dest.h = src.h; dest.x = x + endx; dest.y = ysize - src.h - 10; SDL_BlitSurface(surf[1], &src, surf_screen, &dest); } void display_version_n_text() { char buf[120]; char *text; sprintf(buf, "Version %s - The %s edition ( %s )", VERSION, current_edition == EDITION_greeblies ? "GREEBLIES" : "BLUBAT", COMPILEDATE); int x = (xsize - SFont_wide(buf)) / 2 + sinf(fadetimer / 4.5) * 10; PutString(surf_screen, x, ysize - 50 + sinf(fadetimer / 2) * 5, buf); text = sequence[(int) (fadetimer / 40) % nsequence]; x = (xsize - SFont_wide(text)) / 2 + cosf(fadetimer / 4.5) * 10; PutString(surf_screen, x, ysize - 100 + cosf(fadetimer / 3) * 5, text); fadetimer += movementrate / 2.0; } /*! \brief Display de list o high scores mon. */ void display_highscores() { unsigned int i; char s[128]; PutString(surf_screen, 180, 50, "High scores"); for(i = 0; i < MAXIMUM_HIGH_SCORE_ENTRIES; ++i) { sprintf(s, "#%1d", i + 1); PutString(surf_screen, 150, 50 + (i + 2) * font_height, s); sprintf(s, "%4ld", high[current_edition][i].score); PutString(surf_screen, 200, 50 + (i + 2) * font_height, s); sprintf(s, "%3s", high[current_edition][i].name); PutString(surf_screen, 330, 50 + (i + 2) * font_height, s); } } /*! \brief Enter the highscore * * Called once per frame from draw() if we are in highscore enter * mode. */ void enter_highscore(void) { assert(state == HIGH_SCORE_ENTRY); if(scorerank >= 0) { play_tune(2); if(SFont_Input (surf_screen, 330, 50 + (scorerank + 2) * font_height, 300, name_input_buf)) { // Insert new high score and name into high score table high[current_edition][scorerank].score = score; high[current_edition][scorerank].name = strdup(name_input_buf); high[current_edition][scorerank].allocated = 1; scorerank = -1; //we are unworthy again // Set the global name string to "", ready for the next winner name_input_buf[0] = 0; // Change state to briefly show high scores page state = HIGH_SCORE_DISPLAY; state_timeout = 200; // Write the high score table to the file write_high_score_table(); // Play the title page tune play_tune(0); } } else { state = HIGH_SCORE_DISPLAY; state_timeout = 400; play_tune(0); } } void draw_titlepage(void) { draw_ghostly_rock_dodger(surf_t_rock, surf_t_dodger); display_version_n_text(); } void draw_gameover(void) { SDL_Rect src, dest; float fadegame, fadeover; if(fadetimer < 3.0 / faderate) fadegame = fadetimer / (3.0 / faderate); else fadegame = 1.0; if(fadetimer < 3.0 / faderate) fadeover = 0.0; else if(fadetimer < 6.0 / faderate) fadeover = ((3.0 / faderate) - fadetimer) / (6.0 / faderate); else fadeover = 1.0; src.w = surf_t_game->w; src.h = surf_t_game->h; src.x = 0; src.y = 0; dest.w = src.w; dest.h = src.h; dest.x = (xsize - src.w) / 2; dest.y = (ysize - src.h) / 2 - 40; SDL_SetAlpha(surf_t_game, SDL_SRCALPHA, (int) (fadegame * (200 + 55 * cosf(fadetimer += movementrate / 1.0)))); SDL_BlitSurface(surf_t_game, &src, surf_screen, &dest); src.w = surf_t_over->w; src.h = surf_t_over->h; dest.w = src.w; dest.h = src.h; dest.x = (xsize - src.w) / 2; dest.y = (ysize - src.h) / 2 + 40; SDL_SetAlpha(surf_t_over, SDL_SRCALPHA, (int) (fadeover * (200 + 55 * sinf(fadetimer)))); SDL_BlitSurface(surf_t_over, &src, surf_screen, &dest); } /*! \brief Draw all * * Draw all the objects on the standard surface. * * \return bang=0 if everything ok, bang=1 if ship was hit. */ int draw() { int i; int bang; bang = 0; draw_background_objects(); // If it's firing, draw the laser if(laser) { drawlaser(); } else { if(laserlevel < 3 * W) { laserlevel += movementrate / 4; } } // Draw ship if(state == GAME_PLAY || state == GAME_PAUSED || state == DEMO) { draw_ship(surf_screen); } // Draw all the rocks, in all states. display_rocks(surf_screen); // Draw all blubats display_blubats(surf_screen); switch (state) { case GAME_OVER: // If it's game over, show the game over graphic in the dead centre draw_gameover(); break; case RESTART_GAME: case TITLE_PAGE: draw_titlepage(); break; case HIGH_SCORE_ENTRY: enter_highscore(); update_and_draw_scroller(highscore_scroller, surf_screen, movementrate); display_highscores(); break; case HIGH_SCORE_DISPLAY: display_highscores(); display_version_n_text(); break; case GAME_PAUSED: { SDL_Rect dest; dest.w = surf_t_paused->w; dest.h = surf_t_paused->h; dest.x = (xsize - dest.w) / 2; dest.y = (ysize - dest.h) / 2; SDL_BlitSurface(surf_t_paused, NULL, surf_screen, &dest); } break; case DEAD_PAUSE: case GAME_PLAY: break; case DEMO: #if defined(DEMO_ENABLED) && defined(DEBUG) { int i; for(i = 0; i < rockfree_space_num; ++i) { SDL_Rect rect = { xsize - 10, rockfree_space_mm[i].min, 9, rockfree_space_mm[i].max - rockfree_space_mm[i].min}; Uint32 col = i != rockfree_space_max ? SDL_MapRGB(surf_screen->format, 0xa8, 0x1, 0x22) : SDL_MapRGB(surf_screen->format, 0x8, 0xb1, 0x22); SDL_FillRect(surf_screen, &rect, col); } } #endif display_version_n_text(); break; case SETUP: //Not done here! assert(0); case QUIT_GAME: break; // handled below } if(state == GAME_PLAY || state == DEMO) { // Show the freaky shields if((initialshield > 0) || (shieldsup && shieldlevel > 0)) { draw_ship_shield(surf_screen); } else { // When the shields are off, check that the black points // on the ship are still black, and not covered up by rocks bang = ship_check_collision(surf_screen); } //If in game display the laserpowerup if(get_current_powerup()) { display_powerup(surf_screen); //Yes, shields protect against *everything*! if(!((initialshield > 0) || (shieldsup && shieldlevel > 0))) { int bangpowerup = ship_check_collision(surf_screen); if(bangpowerup) { switch(get_current_powerup()) { case POWERUP_LASER: laserlevel += 16; if(laserlevel > 3 * W) laserlevel = 3 * W; break; case POWERUP_SHIELD: shieldlevel += 13; if(shieldlevel > 3 * W) shieldlevel = 3 * W; break; case POWERUP_LIFE: nships += 1; //Increase number of ships. break; case POWERUP_NONE: puts("Illegal powerup (NONE?)!"); play_sound(4); break; } deactivate_powerup(); play_sound(5); } } } } // Draw all the little ships if(state == GAME_PLAY || state == DEAD_PAUSE || state == GAME_OVER || state == DEMO) { draw_little_ships(nships, surf_screen); // Show the shield gauge showgauge(10, surf_gauge_shield, shieldlevel / (3 * W)); // Show the laser gauge showgauge(200, surf_gauge_laser, laserlevel / (3 * W)); } #ifdef DEBUG //printf("last_ticks=%08X ticks_since_last=%02X movementrate=%10.4e\n", last_ticks, ticks_since_last, movementrate); char tempbuf[80]; sprintf(tempbuf, "state_timeout=%g", state_timeout); PutString(surf_screen, 0, 0, tempbuf); #endif if(state == GAME_PLAY) inc_score(0, 0, SCORE_INCREMENT_FACTOR); //This many points per screen update // Always draw the last score i = xsize - 250; snprintf(topline, sizeof(topline), "Score: %ld", score); PutString(surf_screen, i, 30, topline); snprintf(topline, sizeof(topline), "Level: %d", (int) level); PutString(surf_screen, i, 50, topline); // Update the surface SDL_Flip(surf_screen); return bang; } /*! \brief called if ship was hit */ void crash_boom_bang() { if(oss_sound_flag) { // Play the explosion sound play_sound(0); } way_of_the_exploding_ship(); if(state != DEMO) { if(--nships <= 0) { state = GAME_OVER; state_timeout = 200.0; fadetimer = 0.0; faderate = movementrate; level = floorf(level); /*Otherwise if level is >x.98 and smaller then x+1 the function draw_infinite_black() will cause problems. It will loop the sound and will not black the background.*/ //Remove blubats deactivate_all_blubats(); } else { state = DEAD_PAUSE; state_timeout = 120.0; } } } /* Subsystems [Loki Games, Programming Linux Games, No Starch Press, p 15, 2001]: Keyboard Mouse Input Subsystem Game Pad Network Subsystem LAN or Internet Update Subsystem 3D Hardware / Framebuffer Display Subsystem Audio Subsystem Sound Card Figure 1–1: A typical game loop */ void ready_for_takeoff() { int i; for(i = 0; i < MAX_ROCKS; i++) rock[i].active = 0; deactivate_greeblies(); rockspeed = 5.0 * xsize / 640; rockrate = 0; countdown = 1.111; level = 1; last_levelup_snd = 0; state = GAME_PLAY; play_tune(1); sfx_enabled = 1; //Now we want all the SFXs! play_sound(4); reset_ship_state(); } /*! \brief game loop called once per frame * * This is the game loop where all the magic happens. This loop is * only left if state == QUIT_GAME or RESTART_GAME. * * \return 0 == quit the game, 1 == restart game */ int gameloop() { inputstate_t inputstate; Uint8 *keystate; while(state != QUIT_GAME && state != RESTART_GAME) { update_movement_rate(); keystate = input_subsystem(&inputstate); handle_state_timeout(); if(state != GAME_PAUSED) { rockspeed = 4.885 * xsize / 640.0 + sqrtf(floorf(level)) / 5.0; rockrate = 0.13182 + sqrtf(floorf(level)) / 18.0; if(level - (int) level < 0.8) { if(state != GAME_PLAY && state != DEMO) countdown -= 0.3 * movementrate; else countdown -= rockrate * movementrate; while(countdown < 0) { countdown++; create_rock(rockspeed); } } } switch(state) { case TITLE_PAGE: // Before the rocks are drawn, the greeblies are shown playing amongst them. activate_one_greeblie(); // Move all the rocks update_rocks(); // Move the powerup update_powerup(); move_all_greeblies(); move_all_blubats(); update_sparkles(surf_screen); if((last_ticks / 5391) % 7 == 6) { //Rockmania! create_rock(rockspeed); } break; case DEMO: { //TODO: put in own function/file (including AI). int i, j; rockfree_space_num = 1; rockfree_space_mm[0].min = 0; rockfree_space_mm[0].max = ysize; for(i = 0; i < MAX_ROCKS; ++i) { if(rock[i].active && rock[i].x + get_rock_surface(i, 0)->w > xship) { int y = rock[i].y; int Y = rock[i].y + get_rock_surface(i, 0)->h; for(j = 0; j < rockfree_space_num; ++j) { if(y > rockfree_space_mm[j].min && Y < rockfree_space_mm[j].max) { rockfree_space_mm[rockfree_space_num] = rockfree_space_mm[j]; rockfree_space_mm[j].max = y; rockfree_space_mm[rockfree_space_num].min = Y; ++rockfree_space_num; break; } else if(y > rockfree_space_mm[j].min && y < rockfree_space_mm[j].max) { rockfree_space_mm[j].max = y; break; } else if(Y > rockfree_space_mm[j].min && Y < rockfree_space_mm[j].max) { rockfree_space_mm[j].min = Y; } if((rockfree_space_mm[j].max - rockfree_space_mm[j].min) < 10 && rockfree_space_num > 0) { rockfree_space_mm[j] = rockfree_space_mm[rockfree_space_num--]; } } } } for(i = 0, j = 0; j < rockfree_space_num; ++j) { if(rockfree_space_mm[j].max - rockfree_space_mm[j].min >= rockfree_space_mm[i].max - rockfree_space_mm[i].min) i = j; } rockfree_space_max = i; inputstate.inputstate[SHIELD] = 1; for(j = 0; j < rockfree_space_num; ++j) { if(yship >= rockfree_space_mm[j].min && yship + surfaces_ship->surfaces[0]->h <= rockfree_space_mm[j].max) { inputstate.inputstate[SHIELD] = 0; break; } } inputstate.inputstate[LASER] = inputstate.inputstate[SHIELD]; if(yship < rockfree_space_mm[rockfree_space_max].min) inputstate.inputstate[DOWN] = 1; if(yship > rockfree_space_mm[rockfree_space_max].max) inputstate.inputstate[UP] = 1; } case DEAD_PAUSE: case GAME_PLAY: // Increase difficulty level += movementrate / 250; //Activate a blubat if necessary if((current_edition == EDITION_blubat) && (rnd() < (level - 8) / 777 && ((int)level) % 5 != 0)) { //Every 5th level no blubats activate_one_blubat(); } //Update greeblies if(rnd() < .02 * level * movementrate) { activate_one_greeblie(); } // Move all the rocks update_rocks(); // Move ship to new position ship_update_position(); // Move the powerup update_powerup(); move_all_greeblies(); //Update blubats move_all_blubats(); update_sparkles(surf_screen); break; case GAME_OVER: case HIGH_SCORE_DISPLAY: case HIGH_SCORE_ENTRY: // Move all the rocks update_rocks(); // Move ship to new position ship_update_position(); // Move the powerup update_powerup(); move_all_greeblies(); //Update blubats move_all_blubats(); update_sparkles(surf_screen); break; case SETUP: /* * The ignore is necessary so that we do not switch back and * forth between the two. It can be removed later on(?). */ temporary_disable_key_input(); setuploop(); temporary_disable_key_input(); break; case RESTART_GAME: case GAME_PAUSED: case QUIT_GAME: break; } //Was the ship hit? if(draw() && (state == GAME_PLAY || state == DEMO)) crash_boom_bang(); if(keystate[SDLK_SPACE] && (state == HIGH_SCORE_DISPLAY || state == TITLE_PAGE || state == DEMO)) { ready_for_takeoff(); } laser = 0; if(state == GAME_PLAY || state == DEMO) { if(state != DEMO) get_joystick_input(&inputstate); if(inputstate.inputstate[UP]) { yvel -= 1.5 * movementrate; create_engine_dots2(5, 3); // Create engine dots out the side we're moving from } if(inputstate.inputstate[DOWN]) { yvel += 1.5 * movementrate; create_engine_dots2(5, 1); } if(inputstate.inputstate[LEFT]) { xvel -= 1.5 * movementrate; create_engine_dots2(5, 2); } if(inputstate.inputstate[RIGHT]) { xvel += 1.5 * movementrate; create_engine_dots2(5, 0); } // Create more engine dots comin out da back create_engine_dots(250); if(inputstate.inputstate[LASER]) { laser = 1; } if(inputstate.inputstate[FAST]) { fast = 1; } if(inputstate.inputstate[NOFAST]) { fast = 0; } shieldsup = inputstate.inputstate[SHIELD]; } //Check for screen shot. if(state != HIGH_SCORE_ENTRY && inputstate.inputstate[SCREENSHOT]) { int ret; char buf[21]; sprintf(buf, "snapshot.%02hX.bmp", screenshot_number++); ret = SDL_SaveBMP(surf_screen, buf); fprintf(stderr, "Screenshot '%s' saved %s.\n", buf, ret == 0 ? "successfully" : "unsuccessfully(!)"); } // DEBUG mode to slow down the action, and see if this game is playable on a 486 if(fast) SDL_Delay(100); } return state == RESTART_GAME ? 1 : 0; } /*! \brief Perform one of the tests. * * For debugging only! * * \return 0 = no valid test found, otherwise 1 */ int perform_a_sekrit_test(char *arg) { SDL_Event event; int running = 1; printf("Looking for test '%s'...\n", arg); movementrate = 1.0; if(strcmp(arg, "guru") == 0) { SDL_FillRect(surf_screen, NULL, SDL_MapRGB(surf_screen->format, 0, 0x55, 0xAA)); printf("guru_display() = %d\n", guru_display_gp(surf_screen, GM_FLAGS_AUTOTIMEOUT | 2, 3, (void*)0xDEADBEA1, "Greeblies at work...")); printf("guru_display() = %d\n", guru_display_gp(surf_screen, GM_FLAGS_AUTOTIMEOUT| 1 | GM_FLAGS_CHOICE, 3, (void*)0xDEADBEA1, "Alert! This needs still a lot of work!")); printf("guru_display() = %d\n", guru_display_gp(surf_screen, GM_FLAGS_AUTOTIMEOUT | 0, 4, (void*)0xAA55AA55, "Normal...")); printf("guru_meditation() = %d\n", guru_meditation(GM_FLAGS_DEADEND | GM_FLAGS_EXIT_VIA_TERM, 0x48454c50, (void*)0x68656c70)); return 1; } else if(strcmp(arg, "laserpointer") == 0) { float positions[10]; float speeds[10]; int i; int ysize2 = ysize / 2 - 3; for(i = 0; i < 10; ++i) { speeds[i] = rnd() / 100; positions[i] = 0; } while(running) { if(SDL_PollEvent(&event) != 0 && event.type == SDL_MOUSEBUTTONDOWN) running = 0; SDL_FillRect(surf_screen, NULL, SDL_MapRGB(surf_screen->format, 0, 0, 0x13)); for(i = 0; i < 10; ++i) { draw_random_dots(surf_screen, sinf(positions[i]) * ysize2 + ysize2 + 1, 0, xsize); positions[i] += speeds[i]; } SDL_Flip(surf_screen); SDL_Delay(60); } return 1; } else if(strcmp(arg, "sparkles") ==0) { int i, j; float x; RD_VIDEO_TYPE *rawpixel; while(running) { if(SDL_PollEvent(&event) != 0 && event.type == SDL_MOUSEBUTTONDOWN) running = 0; SDL_FillRect(surf_screen, NULL, SDL_MapRGB(surf_screen->format, 0, 0, 0x13)); SDL_LockSurface(surf_screen); rawpixel = (RD_VIDEO_TYPE *) surf_screen->pixels; for(i = 0; i < xsize; ++i) { x = i / (xsize - 1.0); for(j = 10; j < 50; ++j) { rawpixel[surf_screen->pitch / sizeof(RD_VIDEO_TYPE) * j + i] = (RD_VIDEO_TYPE)get_life_colour(x, &hot_colours, surf_screen); } for(j = 110; j < 150; ++j) { rawpixel[surf_screen->pitch / sizeof(RD_VIDEO_TYPE) * j + i] = (RD_VIDEO_TYPE)get_life_colour(x, &cool_colours, surf_screen); } } SDL_UnlockSurface(surf_screen); SDL_Flip(surf_screen); SDL_Delay(60); } return 1; } else if(strcmp(arg, "key_lab") ==0) { unsigned int event_nr = 0, k; unsigned int row = 0; char buf[30][128]; SDL_Rect rect = { 0, 0, surf_screen->w, 20 }; restart_game(); assert(surf_screen != NULL); assert(surf_green_block != NULL); memset(buf, 0, sizeof(buf)); while(running) { while(SDL_PollEvent(&event) == 1) { row = event_nr % 30; switch(event.type) { case SDL_QUIT: running = 0; break; case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONUP: sprintf(buf[row], "button=%d state=%d x=$%04hX y=$%04hX", event.button.button, event.button.state, event.button.x, event.button.y); break; case SDL_KEYDOWN: case SDL_KEYUP: sprintf(buf[row], "state=%d sym=$%04X", event.key.state, event.key.keysym.sym); break; case SDL_MOUSEMOTION: //Ignore this one... --event_nr; break; default: sprintf(buf[row], "event_nr = $%x, event.type = $%x", event_nr, (unsigned int)event.type); } ++event_nr; } SDL_FillRect(surf_screen, NULL, SDL_MapRGB(surf_screen->format, 0xf, 0, 0xf)); SDL_SetAlpha(surf_green_block, SDL_SRCALPHA, (int) (129 + 66 * sinf(fadetimer))); rect.y = row * 20; SDL_BlitSurface(surf_green_block, NULL, surf_screen, &rect); for(k = 0; k < 30; ++k) { PutString(surf_screen, 12, k * 20, buf[k]); } SDL_Flip(surf_screen); SDL_Delay(50); fadetimer += .192; } return 1; } puts("Not found!"); return 0; } void shutdown_subsystems() { shutdown_greeblies(); shutdown_blubats(); shutdown_powerups(); fclose(iff_ctx->f); free(iff_ctx); } int main(int argc, char **argv) { int i, x; int force_intro = 0; assert(RD_VIDEO_BPP == 8 * sizeof(RD_VIDEO_TYPE)); oss_sound_flag = 1; load_setup(); while((x = getopt(argc, argv, "Ifwskhx:y:")) >= 0) switch (x) { case 'I': force_intro = 1; break; case 'x': xsize = atoi(optarg); printf("xsize %d\n", xsize); break; case 'y': ysize = atoi(optarg); printf("ysize %d\n", ysize); break; case 's': oss_sound_flag = 0; break; case 'k': joystick_flag = 0; break; case 'f': opt_fullscreen = 1; break; case 'w': opt_fullscreen = 0; break; case 'h': printf("Rock Dodgers\n" " -h This help message\n" " -f Full screen\n" " -w Window mode\n" " -x xsize\n" " -y ysize\n" " -k Keyboard only - disable joystick\n" " -s Silent mode (no OSS sound)\n"); exit(0); break; } initrnd(); if(init()) { printf("Cannot start: '%s'\n", initerror); return 1; } if((optind < argc) && (perform_a_sekrit_test(argv[optind]) != 0)) { //A non option argument was given! printf("Testing for %lu ticks.\n", (unsigned long int)SDL_GetTicks()); } else { play_intro(force_intro, oss_sound_flag); //Sometimes the game slips directly from intro to gameplay if space was pressed. last_ticks = SDL_GetTicks(); temporary_disable_key_input(); if(oss_sound_flag) play_tune(0); while(1) { if(restart_game() != 0) break; //We are gone now... i = gameloop(); if(i == 0) { break; } else if(i == 1) { if(!set_video_mode()) { fprintf(stderr, "Setting video mode (%d, %d) failed!\n", xsize, ysize); break; } if(restart_game() != 0) { fprintf(stderr, "Cannot start: '%s'\n", initerror); break; } } SDL_Delay(1000); } } shutdown_subsystems(); return 0; } rockdodger-0.9.2/mood_item.c0000644000175000001440000000300212257577552015565 0ustar krawczykusers#include #include "guru_meditation.h" #include "mood_item.h" #include "rockdodger_globals.h" #include "random_gen.h" #include "datafun.h" #if DEBUG > 0 #include #endif #define MOOD_ITEM_SPEED 0.04 #define MOOD_ITEM_TIME_GAP 30000 static sdl_surfaces_t* mood_item_surfaces; static SDL_Surface *current_item_surface = NULL; //NULL means none active static float mood_item_x; static float mood_item_y; static Uint32 mood_item_last_ticks = 0; void *init_mood_item(void) { if((mood_item_surfaces = load_images_ck("mood_item.%02hx.png", 0, 255, 0)) == NULL) { guru_meditation(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_mood_item, &init_mood_item); } return mood_item_surfaces; } void draw_mood_item(SDL_Surface *target) { SDL_Rect dest; if(!current_item_surface && (rnd() < 1e-3) && (last_ticks - mood_item_last_ticks > MOOD_ITEM_TIME_GAP)) { current_item_surface = mood_item_surfaces->surfaces[(int)(mood_item_surfaces->num_surfaces * rnd())]; mood_item_x = xsize; mood_item_y = rnd() * (ysize - current_item_surface->h); } else if(current_item_surface) { /* We still need to check if an item is active. */ dest.x = mood_item_x; dest.y = mood_item_y; dest.w = current_item_surface->w; dest.h = current_item_surface->h; SDL_BlitSurface(current_item_surface, NULL, target, &dest); mood_item_x -= MOOD_ITEM_SPEED; if(mood_item_x < -current_item_surface->w) { current_item_surface = NULL; mood_item_last_ticks = last_ticks; } } } rockdodger-0.9.2/palette_scrolling_effect_example_source.c0000600000175000001440000002330512257577552023732 0ustar krawczykusers/* * testpalette.c * * A simple test of runtime palette modification for animation * (using the SDL_SetPalette() API). */ //see http://www.texturemate.com/ for textures... #include #include #include #include /* This isn't in the Windows headers */ #ifndef M_PI #define M_PI 3.14159265358979323846 #endif #include /* screen size */ #define SCRW 640 #define SCRH 480 #define NBOATS 5 #define SPEED 2 #ifndef MIN #define MIN(a, b) ((a) < (b) ? (a) : (b)) #endif #ifndef MAX #define MAX(a, b) ((a) > (b) ? (a) : (b)) #endif /* * wave colours: Made by taking a narrow cross-section of a wave picture * in Gimp, saving in PPM ascii format and formatting with Emacs macros. */ static SDL_Color wavemap[] = { {0,2,103}, {0,7,110}, {0,13,117}, {0,19,125}, {0,25,133}, {0,31,141}, {0,37,150}, {0,43,158}, {0,49,166}, {0,55,174}, {0,61,182}, {0,67,190}, {0,73,198}, {0,79,206}, {0,86,214}, {0,96,220}, {5,105,224}, {12,112,226}, {19,120,227}, {26,128,229}, {33,135,230}, {40,143,232}, {47,150,234}, {54,158,236}, {61,165,238}, {68,173,239}, {75,180,241}, {82,188,242}, {89,195,244}, {96,203,246}, {103,210,248}, {112,218,250}, {124,224,250}, {135,226,251}, {146,229,251}, {156,231,252}, {167,233,252}, {178,236,252}, {189,238,252}, {200,240,252}, {211,242,252}, {222,244,252}, {233,247,252}, {242,249,252}, {237,250,252}, {209,251,252}, {174,251,252}, {138,252,252}, {102,251,252}, {63,250,252}, {24,243,252}, {7,225,252}, {4,203,252}, {3,181,252}, {2,158,252}, {1,136,251}, {0,111,248}, {0,82,234}, {0,63,213}, {0,50,192}, {0,39,172}, {0,28,152}, {0,17,132}, {0,7,114} }; /* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ static void quit(int rc) { SDL_Quit(); exit(rc); } static void sdlerr(char *when) { fprintf(stderr, "SDL error: %s: %s\n", when, SDL_GetError()); quit(1); } /* create a background surface */ static SDL_Surface *make_bg(SDL_Surface *screen, int startcol) { int i; SDL_Surface *bg = SDL_CreateRGBSurface(SDL_SWSURFACE, screen->w, screen->h, 8, 0, 0, 0, 0); if(!bg) sdlerr("creating background surface"); /* set the palette to the logical screen palette so that blits won't be translated */ SDL_SetColors(bg, screen->format->palette->colors, 0, 256); /* Make a wavy background pattern using colours 0-63 */ if(SDL_LockSurface(bg) < 0) sdlerr("locking background"); for(i = 0; i < SCRH; i++) { Uint8 *p = (Uint8 *)bg->pixels + i * bg->pitch; int j, d; d = 0; for(j = 0; j < SCRW; j++) { int v = MAX(d, -2); v = MIN(v, 2); if(i > 0) v += p[-bg->pitch] + 65 - startcol; p[j] = startcol + (v & 63); d += ((rand() >> 3) % 3) - 1; } } SDL_UnlockSurface(bg); return(bg); } /* * Return a surface flipped horisontally. Only works for 8bpp; * extension to arbitrary bitness is left as an exercise for the reader. */ static SDL_Surface *hflip(SDL_Surface *s) { int i; SDL_Surface *z = SDL_CreateRGBSurface(SDL_SWSURFACE, s->w, s->h, 8, 0, 0, 0, 0); /* copy palette */ SDL_SetColors(z, s->format->palette->colors, 0, s->format->palette->ncolors); if(SDL_LockSurface(s) < 0 || SDL_LockSurface(z) < 0) sdlerr("locking flip images"); for(i = 0; i < s->h; i++) { int j; Uint8 *from = (Uint8 *)s->pixels + i * s->pitch; Uint8 *to = (Uint8 *)z->pixels + i * z->pitch + s->w - 1; for(j = 0; j < s->w; j++) to[-j] = from[j]; } SDL_UnlockSurface(z); SDL_UnlockSurface(s); return z; } int main(int argc, char **argv) { SDL_Color cmap[256]; SDL_Surface *screen; SDL_Surface *bg; SDL_Surface *boat[2]; unsigned vidflags = 0; unsigned start; int fade_max = 400; int fade_level, fade_dir; int boatcols, frames, i, red; int boatx[NBOATS], boaty[NBOATS], boatdir[NBOATS]; int gamma_fade = 0; int gamma_ramp = 0; if(SDL_Init(SDL_INIT_VIDEO) < 0) sdlerr("initialising SDL"); while(--argc) { ++argv; if(strcmp(*argv, "-hw") == 0) vidflags |= SDL_HWSURFACE; else if(strcmp(*argv, "-fullscreen") == 0) vidflags |= SDL_FULLSCREEN; else if(strcmp(*argv, "-nofade") == 0) fade_max = 1; else if(strcmp(*argv, "-gamma") == 0) gamma_fade = 1; else if(strcmp(*argv, "-gammaramp") == 0) gamma_ramp = 1; else { fprintf(stderr, "usage: testpalette " " [-hw] [-fullscreen] [-nofade] [-gamma] [-gammaramp]\n"); quit(1); } } /* Ask explicitly for 8bpp and a hardware palette */ if((screen = SDL_SetVideoMode(SCRW, SCRH, 8, vidflags | SDL_HWPALETTE)) == NULL) { fprintf(stderr, "error setting %dx%d 8bpp indexed mode: %s\n", SCRW, SCRH, SDL_GetError()); quit(1); } if (vidflags & SDL_FULLSCREEN) SDL_ShowCursor (SDL_FALSE); if((boat[0] = SDL_LoadBMP("sail.bmp")) == NULL) sdlerr("loading sail.bmp"); /* We've chosen magenta (#ff00ff) as colour key for the boat */ SDL_SetColorKey(boat[0], SDL_SRCCOLORKEY | SDL_RLEACCEL, SDL_MapRGB(boat[0]->format, 0xff, 0x00, 0xff)); boatcols = boat[0]->format->palette->ncolors; boat[1] = hflip(boat[0]); SDL_SetColorKey(boat[1], SDL_SRCCOLORKEY | SDL_RLEACCEL, SDL_MapRGB(boat[1]->format, 0xff, 0x00, 0xff)); /* * First set the physical screen palette to black, so the user won't * see our initial drawing on the screen. */ memset(cmap, 0, sizeof(cmap)); SDL_SetPalette(screen, SDL_PHYSPAL, cmap, 0, 256); /* * Proper palette management is important when playing games with the * colormap. We have divided the palette as follows: * * index 0..(boatcols-1): used for the boat * index boatcols..(boatcols+63): used for the waves */ SDL_SetPalette(screen, SDL_LOGPAL, boat[0]->format->palette->colors, 0, boatcols); SDL_SetPalette(screen, SDL_LOGPAL, wavemap, boatcols, 64); /* * Now the logical screen palette is set, and will remain unchanged. * The boats already have the same palette so fast blits can be used. */ memcpy(cmap, screen->format->palette->colors, 256 * sizeof(SDL_Color)); /* save the index of the red colour for later */ red = SDL_MapRGB(screen->format, 0xff, 0x00, 0x00); bg = make_bg(screen, boatcols); /* make a nice wavy background surface */ /* initial screen contents */ if(SDL_BlitSurface(bg, NULL, screen, NULL) < 0) sdlerr("blitting background to screen"); SDL_Flip(screen); /* actually put the background on screen */ /* determine initial boat placements */ for(i = 0; i < NBOATS; i++) { boatx[i] = (rand() % (SCRW + boat[0]->w)) - boat[0]->w; boaty[i] = i * (SCRH - boat[0]->h) / (NBOATS - 1); boatdir[i] = ((rand() >> 5) & 1) * 2 - 1; } start = SDL_GetTicks(); frames = 0; fade_dir = 1; fade_level = 0; do { SDL_Event e; SDL_Rect updates[NBOATS]; SDL_Rect r; int redphase; /* A small event loop: just exit on any key or mouse button event */ while(SDL_PollEvent(&e)) { if(e.type == SDL_KEYDOWN || e.type == SDL_QUIT || e.type == SDL_MOUSEBUTTONDOWN) { if(fade_dir < 0) fade_level = 0; fade_dir = -1; } } /* move boats */ for(i = 0; i < NBOATS; i++) { int old_x = boatx[i]; /* update boat position */ boatx[i] += boatdir[i] * SPEED; if(boatx[i] <= -boat[0]->w || boatx[i] >= SCRW) boatdir[i] = -boatdir[i]; /* paint over the old boat position */ r.x = old_x; r.y = boaty[i]; r.w = boat[0]->w; r.h = boat[0]->h; if(SDL_BlitSurface(bg, &r, screen, &r) < 0) sdlerr("blitting background"); /* construct update rectangle (bounding box of old and new pos) */ updates[i].x = MIN(old_x, boatx[i]); updates[i].y = boaty[i]; updates[i].w = boat[0]->w + SPEED; updates[i].h = boat[0]->h; /* clip update rectangle to screen */ if(updates[i].x < 0) { updates[i].w += updates[i].x; updates[i].x = 0; } if(updates[i].x + updates[i].w > SCRW) updates[i].w = SCRW - updates[i].x; } for(i = 0; i < NBOATS; i++) { /* paint boat on new position */ r.x = boatx[i]; r.y = boaty[i]; if(SDL_BlitSurface(boat[(boatdir[i] + 1) / 2], NULL, screen, &r) < 0) sdlerr("blitting boat"); } /* cycle wave palette */ for(i = 0; i < 64; i++) cmap[boatcols + ((i + frames) & 63)] = wavemap[i]; if(fade_dir) { /* Fade the entire palette in/out */ fade_level += fade_dir; if(gamma_fade) { /* Fade linearly in gamma level (lousy) */ float level = (float)fade_level / fade_max; if(SDL_SetGamma(level, level, level) < 0) sdlerr("setting gamma"); } else if(gamma_ramp) { /* Fade using gamma ramp (better) */ Uint16 ramp[256]; for(i = 0; i < 256; i++) ramp[i] = (i * fade_level / fade_max) << 8; if(SDL_SetGammaRamp(ramp, ramp, ramp) < 0) sdlerr("setting gamma ramp"); } else { /* Fade using direct palette manipulation (best) */ memcpy(cmap, screen->format->palette->colors, boatcols * sizeof(SDL_Color)); for(i = 0; i < boatcols + 64; i++) { cmap[i].r = cmap[i].r * fade_level / fade_max; cmap[i].g = cmap[i].g * fade_level / fade_max; cmap[i].b = cmap[i].b * fade_level / fade_max; } } if(fade_level == fade_max) fade_dir = 0; } /* pulse the red colour (done after the fade, for a night effect) */ redphase = frames % 64; cmap[red].r = (int)(255 * sin(redphase * M_PI / 63)); SDL_SetPalette(screen, SDL_PHYSPAL, cmap, 0, boatcols + 64); /* update changed areas of the screen */ SDL_UpdateRects(screen, NBOATS, updates); frames++; } while(fade_level > 0); printf("%d frames, %.2f fps\n", frames, 1000.0 * frames / (SDL_GetTicks() - start)); if (vidflags & SDL_FULLSCREEN) SDL_ShowCursor (SDL_TRUE); SDL_Quit(); return 0; } rockdodger-0.9.2/powerup.c0000644000175000001440000001005112257577552015314 0ustar krawczykusers#include #include "powerup.h" #include "datafun.h" #include "guru_meditation.h" #include "random_gen.h" #include "rockdodger_globals.h" static sdl_surfaces_t *surf_laserpowerup; //!< surfaces for laser powerup static sdl_surfaces_t *surf_shieldpowerup; //!< surfaces for shield powerup static sdl_surfaces_t *surf_lifepowerup; //!< surfaces for life powerup static powerup_t powerup; powerup_types_t get_current_powerup(void) { return powerup.active; } powerup_t *init_powerup() { //laserpowerup: load images and set color key for transparency puts("Laserpowerups "); surf_laserpowerup = load_images_ck("laserpowerup.%02X.png", 0, 0, 255); if(surf_laserpowerup == NULL) { #ifndef DEBUG guru_meditation(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_powerup, (void*)0x4c415345); #endif return NULL; } //shieldpowerup: load image and set color key for transparency puts("Shieldpowerups "); surf_shieldpowerup = load_images_ck("shieldpowerup.%02X.png", 0, 0, 255); if(surf_shieldpowerup == NULL) { #ifndef DEBUG guru_meditation(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_powerup, (void*)0x53484945); #endif return NULL; } //Life Powerup puts("Lifepowerups"); surf_lifepowerup = load_images_ck("lifepowerup.%02X.ilbm", 0, 255, 0); if(surf_lifepowerup == NULL) { #ifndef DEBUG guru_meditation(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_powerup, (void*)0x4c494645); #endif return NULL; } deactivate_powerup(); #ifdef DEBUG printf("surf_laserpowerup=%p surf_shieldpowerup=%p surf_lifepowerup=%p\n", surf_laserpowerup, surf_shieldpowerup, surf_lifepowerup); #endif return &powerup; } void shutdown_powerups() { deactivate_powerup(); #ifdef DEBUG printf("surf_laserpowerup=%p surf_shieldpowerup=%p surf_lifepowerup=%p\n", surf_laserpowerup, surf_shieldpowerup, surf_lifepowerup); #endif assert(surf_laserpowerup); assert(surf_shieldpowerup); assert(surf_lifepowerup); destroy_sdl_surfaces(surf_laserpowerup); destroy_sdl_surfaces(surf_shieldpowerup); destroy_sdl_surfaces(surf_lifepowerup); } SDL_Surface *get_powerup_surface() { SDL_Surface *source; sdl_surfaces_t *surfaces = NULL; switch(get_current_powerup()) { case POWERUP_LASER: surfaces = surf_laserpowerup; break; case POWERUP_SHIELD: surfaces = surf_shieldpowerup; break; case POWERUP_LIFE: surfaces = surf_lifepowerup; break; case POWERUP_NONE: assert(0); guru_meditation(GM_FLAGS_DEADEND | GM_FLAGS_ABORTIFY, GM_SS_Graphics | GM_GE_BadParm | GURU_SEC_powerup, &get_powerup_surface); return NULL; break; } assert(surfaces); source = surfaces->surfaces[(unsigned short)powerup.img_ctr % surfaces->num_surfaces]; return source; } void display_powerup(SDL_Surface * surf_screen) { SDL_Rect dest; SDL_Surface *source; dest.w = 0; //powersurf->w; dest.h = 0; //powersurf->h; dest.x = powerup.x; dest.y = powerup.y; source = get_powerup_surface(); SDL_BlitSurface(source, NULL, surf_screen, &dest); } void deactivate_powerup() { powerup.active = POWERUP_NONE; powerup.countdown = POWERUPDELAY; powerup.img_ctr = 0; } void update_powerup() { if(powerup.active != POWERUP_NONE) { SDL_Surface *surf = get_powerup_surface(); powerup.x += powerup.dx * movementrate; powerup.y += powerup.dy * movementrate; if(powerup.x < -surf->w || powerup.y < -surf->h || powerup.x > xsize || powerup.y > ysize) { deactivate_powerup(); } } else { powerup.countdown -= movementrate; if(powerup.countdown < 0 && rnd() < .3) { powerup.x = xsize; powerup.dx = -(3 + rnd() * 5); powerup.dy = .5 + rnd() * 3; if((powerup.y = rnd() * ysize) >= ysize / 2) powerup.dy = -powerup.dy; if(current_edition == EDITION_yellifish && rnd() < 0.051807) { powerup.active = POWERUP_LIFE; } else if(rnd() < .7) { powerup.active = POWERUP_LASER; } else { powerup.active = POWERUP_SHIELD; } assert(powerup.active != POWERUP_NONE); } } powerup.img_ctr += movementrate; } rockdodger-0.9.2/random_gen.c0000644000175000001440000000340512257577552015731 0ustar krawczykusers#include "random_gen.h" #include #include #ifdef DEBUG #include #endif #define RANDOM_LIST_SIZE (1L<<18) static float random_list[RANDOM_LIST_SIZE]; static unsigned long random_list_index; static unsigned long new_random_index = 0; /* * Random numbers involve a call to the operating system, and may take some * time to complete. I can't call the random number generator multiple times * per frame. In one old version, it would take half a second before the ship * explosion was generated when the rnd() function was calling the operating * system function. * The solution is to generate random numbers during initialisation, and store * in a circular array. This will (of course) repeat, but it is not noticeable * (unless RANDOM_LIST_SIZE is very very small). */ float rnd_next_float() { return (float) random() / (float) RAND_MAX; } void initrnd() { unsigned long i; time_t starttime; if(time(&starttime) != -1) { srandom((unsigned int) starttime); } for(i = 0; i < RANDOM_LIST_SIZE; i++) { random_list[i] = rnd_next_float(); } random_list_index = 0; #ifdef DEBUG float min = *random_list; float max = *random_list; for(i = 0; i < RANDOM_LIST_SIZE; ++i) { float next = random_list[i]; if(next < min) min = next; if(next > max) max = next; } printf("%ld random numbers have been initialised (min=%g, max=%g).\n", RANDOM_LIST_SIZE, min, max); #endif } float rnd() { if(++random_list_index >= RANDOM_LIST_SIZE) { random_list_index = 0; //From time to time insert a new random number to keep the list "fresh". random_list[new_random_index++ % RANDOM_LIST_SIZE] = rnd_next_float(); #ifdef DEBUG puts("Random numbers are recycled!"); #endif } return random_list[random_list_index]; } rockdodger-0.9.2/rockdodger_globals.c0000644000175000001440000002733212257577552017453 0ustar krawczykusers#include "rockdodger_globals.h" #include #include #include "display_subsystem.h" #include "game_state.h" #include "highscore_io.h" #include "input_functions.h" #include "SFont.h" #include "scroller.h" #include "ship.h" #include "sound.h" struct Setup_Data { Scroller_t *scroller; short current; const char *entry_name; const char *description; //!< will be in the scroller on the bottom of the screen char *values[12]; }; editions_t current_edition = EDITION_blubat; int xsize = 800; int ysize = 600; SDL_Surface *surf_screen = NULL; SDL_Surface *surf_green_block = NULL; SDL_Surface *surf_t_rock = NULL; // Title element "rock" SDL_Surface *surf_t_dodger = NULL; // Title element "dodgers" spacedots_t *current_spacedot_engine = NULL; unsigned short opt_fullscreen = 1; unsigned short opt_cicada_spacedots = 0; unsigned short opt_intro = 2; float movementrate; float level = 0; float shieldlevel, laserlevel, shieldpulse = 0; int initialshield, gameover = 0, fast = 0; RD_VIDEO_TYPE heatcolor[W * 3]; enum states state = TITLE_PAGE; //!< current game state float state_timeout = 600.0; //!< timeout before next game state switch float fadetimer = 0; Uint32 initticks = 0; Uint32 last_ticks = 0; Uint32 ticks_since_last = 0; Uint32 ign_k_utl_ticks = 0; int music_volume = 128; //See sound.c... int nships; int last_levelup_snd; uiff_ctx_t *iff_ctx; static const char resolution_format[] = "resolution = ( %d, %d )\n"; static const char spacedots_format[] = "spacedots = %31s\n"; static const char fullscreen_format[] = "fullscreen = %31s\n"; static const char intro_format[] = "intro = %31s\n"; static const char edition_format[] = "edition = %31s\n"; static const char version_format[] = "version = %13s\n"; static const char music_volume_format[] = "musvol = %13s\n"; static char configuration_file_version[14]; struct Setup_Data setup[] = { { NULL, 0, "", "Use cursor keys to select and change options, press enter or F1 to quit the screen.", { "", NULL } }, { NULL, 0, "resolution", "Select the screen resolution!", { "", "640x480", "800x480", "800x600", "1024x768", "1152x864", "1280x1024", "1440x900", "1600x900", NULL } }, { NULL, 0, "fullscreen", "Use the full-screen display or windowed mode for rockdodger?", { "fullscreen", "windowed", NULL } }, { NULL, 0, "spacedots", "How are the spacedots (the litle stars in the background) drawn? The classic version draws them directly into the surface, the cicada version uses surfaces (may be faster).", { "classic", "cicada", NULL } }, { NULL, 8, "music volume", "Set the volume for the background music.", { "0", "16", "32", "48", "64", "80", "96", "112", "128", "144", "160" } }, { NULL, 1, "edition", "Which edition would you like to play?", { "greeblies", "blubat"} }, { NULL, 0, "intro", "Should the intro be displayed? The intro is usually only displayed for the first time after a version change.", { "no", "yes", NULL } }, { NULL, 0, "", "Rockdoger V"VERSION" compiled on "COMPILEDATE".", { "", NULL } }, { NULL, 0, "activate config?", "Set this to yes and press ENTER to activate the current configuration. Valid options are: 'no' keep old configuration, 'yes' activate configuration, 'yes and save' activate and save the configuration.", { "no", "yes", "yes and save", NULL } }, { NULL, 0, NULL } }; #define SETUP_SIZE (sizeof(setup) / sizeof(struct Setup_Data)) void update_movement_rate() { ticks_since_last = SDL_GetTicks() - last_ticks; last_ticks = SDL_GetTicks(); if(ticks_since_last > 200) { movementrate = 0; } else { movementrate = ticks_since_last / 50.0; } } void cleanup_globals() { struct Setup_Data *setupptr; initticks = SDL_GetTicks(); for(setupptr = setup; setupptr->entry_name; ++setupptr) { if(setupptr->scroller) { destroy_scroller(setupptr->scroller); setupptr->scroller = NULL; } } } struct Setup_Data *find_setup_entry(const char *name) { struct Setup_Data *setupptr; for(setupptr = setup; setupptr->entry_name; ++setupptr) { if(strcmp(name, setupptr->entry_name) == 0) return setupptr; } return NULL; } void save_setup() { FILE *f; char buf[256]; struct Setup_Data *setupptr; snprintf(buf, sizeof(buf) - 1, "%s/.rockdodger", getenv("HOME")); if((f = fopen(buf, "w")) == NULL) return; #ifdef DEBUG fprintf(stderr, "Writing config to '%s'.\n", buf); #endif fprintf(f, "#rockdodger configuration\n"); fprintf(f, version_format, VERSION); fprintf(f, resolution_format, xsize, ysize); // setupptr = find_setup_entry("spacedots"); assert(setupptr); fprintf(f, spacedots_format, setupptr->values[setupptr->current]); // setupptr = find_setup_entry("fullscreen"); assert(setupptr); fprintf(f, fullscreen_format, setupptr->values[setupptr->current]); // setupptr = find_setup_entry("edition"); assert(setupptr); fprintf(f, edition_format, setupptr->values[setupptr->current]); // setupptr = find_setup_entry("intro"); assert(setupptr); fprintf(f, intro_format, setupptr->values[setupptr->current]); // setupptr = find_setup_entry("music volume"); assert(setupptr); fprintf(f, music_volume_format, setupptr->values[setupptr->current]); fprintf(f, "#%p\n", f); fclose(f); } int load_setup() { FILE *f; char buf[256]; char inpbuf[32]; int x0, x1; snprintf(buf, sizeof(buf) - 1, "%s/.rockdodger", getenv("HOME")); if(!(f = fopen(buf, "r"))) return 0; while(fgets(buf, sizeof(buf), f) != NULL) { if(strlen(buf) == 0 || buf[0] == '#') continue; if(sscanf(buf, resolution_format, &x0, &x1) == 2) { if(x0 > 0 && x1 > 0) { xsize = x0; ysize = x1; } } else if(sscanf(buf, spacedots_format, inpbuf) == 1) { if(strcmp(inpbuf, "cicada") == 0) opt_cicada_spacedots = 1; else opt_cicada_spacedots = 0; } else if(sscanf(buf, fullscreen_format, inpbuf) == 1) { if(strcmp(inpbuf, "fullscreen") == 0) opt_fullscreen = 1; else opt_fullscreen = 0; } else if(sscanf(buf, intro_format, inpbuf) == 1) { if(opt_intro != 3) opt_intro = (strcmp(inpbuf, "yes") == 0) ? 1 : 0; } else if(sscanf(buf, edition_format, inpbuf) == 1) { if(strcmp(inpbuf, "greeblies") == 0) { current_edition = EDITION_greeblies; } else { //Defaults to blubat edition current_edition = EDITION_blubat; } } else if(sscanf(buf, version_format, configuration_file_version) == 1) { if(strcmp(configuration_file_version, VERSION) != 0) opt_intro = 3; } else if(sscanf(buf, music_volume_format, inpbuf) == 1) { music_volume = atoi(inpbuf); //Check for illegal values. Oh boy, I am sooo lazy. if(music_volume < 0) music_volume = 0; else if(music_volume > 160) music_volume = 160; } else { printf("Unknown setup line '%s'.\n", buf); } } fclose(f); return 1; } void setuploop() { int i; short old_config[SETUP_SIZE]; inputstate_t inputstate; char txtbuf[181]; int crsrpos = 0; struct Setup_Data *setupptr; char resolution_buf[10]; short activate_config; SDL_Rect drect = { 16, 0, 0, 0 }; SDL_Rect srect = { 0, 0, surf_screen->w - 32, 20 }; play_tune(4); for(i = 0; i < SETUP_SIZE; ++i) old_config[i] = setup[i].current; state_timeout = 69105; setupptr = find_setup_entry("music volume"); assert(setupptr); setupptr->current = music_volume >> 4; assert(setupptr->current < 11); setupptr = find_setup_entry("fullscreen"); assert(setupptr); setupptr->current = opt_fullscreen == 0 ? 1 : 0; setupptr = find_setup_entry("intro"); assert(setupptr); setupptr->current = opt_intro == 1 ? 1 : 0; setupptr = find_setup_entry("spacedots"); assert(setupptr); setupptr->current = opt_cicada_spacedots; setupptr = find_setup_entry("resolution"); assert(setupptr); sprintf(resolution_buf, "%dx%d", xsize, ysize); setupptr->values[0] = resolution_buf; while(state == SETUP) { update_movement_rate(); (void) input_subsystem(&inputstate); handle_state_timeout(); if(inputstate.inputstate[UP]) { --crsrpos; temporary_disable_key_input(); } else if(inputstate.inputstate[DOWN]) { ++crsrpos; temporary_disable_key_input(); } else if(inputstate.inputstate[RIGHT]) { setupptr = setup + crsrpos; if(setupptr->values[++setupptr->current] == NULL) setupptr->current = 0; temporary_disable_key_input(); } else if(inputstate.inputstate[LEFT]) { setupptr = setup + crsrpos; if(--setupptr->current < 0) { while(setupptr->values[++setupptr->current]); //This will find the null pointer. --setupptr->current; //Now last entry. } temporary_disable_key_input(); } else if(inputstate.inputstate[INPUT_SELECT]) { state = TITLE_PAGE; } /* * If the cursor positon is less then zero set it to zero or if * the position would be pointing to NULL which is the end of * available options also ignore the keystroke. If the first * character is less then a space then ignore it, too. We will use * control characters for special use cases... */ if(crsrpos < 0) crsrpos = 0; else if(setup[crsrpos].entry_name == NULL || (setup[crsrpos].entry_name[0] < ' ' && setup[crsrpos].entry_name[0] != 0)) --crsrpos; if(setup[crsrpos].scroller == NULL) { setup[crsrpos].scroller = init_scroller(setup[crsrpos].description, surf_screen->h - 30, 4.62384, surf_screen->w); } //display subsystem draw_background_objects(); XCenteredString(surf_screen, 20, "SETUP"); for(setupptr = setup, i = 0; setupptr->entry_name; ++setupptr, ++i) { sprintf(txtbuf, "%-70s %12s", setupptr->entry_name, setupptr->values[setupptr->current]); PutString(surf_screen, 20, 60 + i * 22, setupptr->entry_name); PutString(surf_screen, surf_screen->w - 20 - SFont_wide(setupptr->values[setupptr->current]), 60 + i * 22, setupptr->values[setupptr->current]); SDL_SetAlpha(surf_green_block, SDL_SRCALPHA, (int) (51.0 + 30.0 * sinf(fadetimer))); drect.y = 60 + crsrpos * 22; SDL_BlitSurface(surf_green_block, &srect, surf_screen, &drect); } assert(setup[crsrpos].scroller); if(setup[crsrpos].scroller) update_and_draw_scroller(setup[crsrpos].scroller, surf_screen, movementrate); // Update the surface SDL_Flip(surf_screen); fadetimer += movementrate / 8.2; } //We are leaving... check if activated setupptr = find_setup_entry("activate config?"); assert(setupptr); activate_config = setupptr->current; assert(activate_config >= 0 && activate_config <= 2); if(activate_config > 0) { setupptr->current = 0; //Activate setupptr = find_setup_entry("resolution"); assert(setupptr); if(setupptr->current > 0) { i = sscanf(setupptr->values[setupptr->current], "%dx%d", &xsize, &ysize); assert(i == 2); } setupptr = find_setup_entry("edition"); assert(setupptr); current_edition = setupptr->current == 0 ? EDITION_greeblies : EDITION_blubat; setupptr = find_setup_entry("fullscreen"); assert(setupptr); opt_fullscreen = setupptr->current == 0 ? 1 : 0; //0=fullscreen, 1=no fullscrenn, qed. setupptr = find_setup_entry("spacedots"); assert(setupptr); opt_cicada_spacedots = setupptr->current; setupptr = find_setup_entry("music volume"); assert(setupptr); music_volume = atoi(setupptr->values[setupptr->current]); state = RESTART_GAME; } if(activate_config == 2) { save_setup(); } if(activate_config == 0) for(i = 0; i < SETUP_SIZE; ++i) setup[i].current = old_config[i]; play_tune(0); state_timeout = 496.69105; } uiff_ctx_t *get_iff_rock(const char *fname) { FILE *f = NULL; uiff_ctx_t *ctx = NULL; printf("Rockdodger data file is '%s'.\n", fname); if(!(f = fopen(fname, "r"))) { perror("Can not open rockdodger data-file"); } else if((ctx = uiff_from_file(f, FORM, MakeID('R', 'O', 'C', 'K'))) == NULL) { perror("No context"); fclose(f); } return ctx; } rockdodger-0.9.2/rocks.c0000644000175000001440000002113512257577552014741 0ustar krawczykusers#include "rocks.h" #include "sparkles.h" #include "datafun.h" #include "greeblies.h" #include "guru_meditation.h" #include "random_gen.h" #include "rockdodger_globals.h" #include "sound.h" #include #include struct rock_struct rock[MAX_ROCKS]; sdl_surfaces_t *surf_rocks = NULL; //!< All the rocky asteroid surfaces. sdl_surfaces_t *surf_dead_rocks = NULL; //!< All the dead asteroid surfaces. sdl_surfaces_t *surf_lithiumrocks = NULL; //!< All the heavy-duty asteroid surfaces. sdl_surfaces_t *surf_dead_lithiumrocks = NULL; //!< All the dead/hot heavy-duty asteroid surfaces. sdl_surfaces_t *surf_icerocks = NULL; //!< All the ice asteroid surfaces. sdl_surfaces_t *surf_dead_icerocks = NULL; //!< All the dead/hot ice asteroid surfaces. SDL_Surface *get_rock_surface(int rockidx, int hot) { sdl_surfaces_t *surfs; unsigned short imgidx = rock[rockidx].type_number; assert(rock[rockidx].type_class <= 2); switch(rock[rockidx].type_class) { case 2: surfs = hot == 1 ? surf_dead_icerocks : surf_icerocks; break; case 1: surfs = hot == 1 ? surf_dead_lithiumrocks : surf_lithiumrocks; break; default: //Defaults to normal rocks so that the game does (somehow) function. surfs = hot == 1 ? surf_dead_rocks : surf_rocks; break; } if(imgidx >= surfs->num_surfaces) { Uint32 addr = rockidx; if(hot) addr |= 0x8000; addr |= (imgidx & 0xFF) << 24; addr |= (surfs->num_surfaces & 0xFF) << 16; guru_meditation(GM_FLAGS_RECOVERY | GM_FLAGS_CHOICE | GM_FLAGS_ABORTIFY, GM_SS_Misc | GM_GE_BadParm | GURU_SEC_rocks, (void *)(unsigned long)addr); imgidx = 0; } return surfs->surfaces[imgidx]; } void heat_rock_up(int rockidx, float mvmt) { if(rockidx < 0 || rockidx >= MAX_ROCKS) { guru_meditation(GM_FLAGS_DEADEND, GM_SS_Misc | GM_GE_BadParm | GURU_SEC_rocks, (void *)(long)rockidx); } struct rock_struct *rptr = rock + rockidx; rock[rockidx].heat += mvmt / rock[rockidx].heat_capacity; if(rock[rockidx].type_class == 2) { SDL_Surface *image = get_rock_surface(rockidx, 0); float size = (image->w + image->h) / 2.0; create_plumedots(9, rptr->x + image->w / 2, rptr->y + image->h / 2, rptr->plume_angle, 2, 17.27); rptr->xvel += 1.442 * cosf(rptr->plume_angle) / size; rptr->yvel += 1.442 * sinf(rptr->plume_angle) / size; } } void create_rock(float rockspeed) { struct rock_struct *rockptr; for(rockptr = rock; rockptr < rock + MAX_ROCKS; ++rockptr) { if(!rockptr->active && (rockptr->greeb == 0 || the_greeblies[rockptr->greeb].landed)) { rockptr->x = (float) xsize; rockptr->y = rnd() * ysize; rockptr->xvel = -(rockspeed) * (1 + rnd()); rockptr->yvel = (rockspeed / 3.0) * (rnd() - 0.5); rockptr->heat = 0; rockptr->active = 1; rockptr->greeb = 0; //TODO: really zero? if((current_edition == EDITION_blubat) && (level > 3 && rnd() < 0.0713645)) { //Start with third level... rockptr->type_class = 2; rockptr->type_number = random() % surf_icerocks->num_surfaces; rockptr->heat_capacity = 1.0 / 3; rockptr->plume_angle = 360 * rnd(); } else if((current_edition == EDITION_blubat) && (level > 5 && rnd() < 0.068073)) { //Start with fifth level... rockptr->type_class = 1; rockptr->type_number = random() % surf_lithiumrocks->num_surfaces; rockptr->heat_capacity = 34.0 / 49.0; } else { rockptr->type_class = 0; rockptr->type_number = random() % MAX_ROCK_IMAGESS; rockptr->heat_capacity = 1.0 / 3; } break; //Done with the loop! } } #ifdef DEBUG //printf("create_rock(): rock=%p MAXrock=%p rockptr=%p\n", rock, rock + MAX_ROCKS, rockptr); #endif } void display_rocks(SDL_Surface *surf_screen) { int i; static int last_rock = 1; SDL_Rect dest; dest.w = 0; dest.h = 0; for(i = 0; i < MAX_ROCKS; i++) { struct rock_struct *rcki = &rock[i]; if(rcki->active) { SDL_Surface *image = get_rock_surface(i, 0); if(!rcki->greeb) last_rock = i; dest.x = (int) rcki->x; dest.y = (int) rcki->y; // Draw the rock SDL_BlitSurface(image, NULL, surf_screen, &dest); // Draw the heated part of the rock, in an alpha which reflects the // amount of heat in the rock. if(rcki->heat > 0) { SDL_Surface *deadrock = get_rock_surface(i, 1); SDL_SetAlpha(deadrock, SDL_SRCALPHA, rcki->heat * 255 / image->h); dest.x = (int) rcki->x; // kludge SDL_BlitSurface(deadrock, NULL, surf_screen, &dest); if(rnd() < 0.3) rcki->heat -= movementrate; } // If the rock is heated past a certain point, the water content of // the rock flashes to steam, releasing enough energy to destroy // the rock in spectacular fashion. if(rcki->heat > image->h) { int g; short x, y; rcki->active = 0; play_sound(1 + (int) (rnd() * 3)); switch(rcki->type_class) { case 2: //Ice rocks are different x = rcki->x + image->w / 2; y = rcki->y + image->h / 2; create_plumedots(1659, x, y, 180, 360, 10.9312); create_plumedots(539, x, y, 180, 360, 2.73002); create_plumedots(367, x, y, 90, 109, 4.656); create_plumedots(367, x, y, 270, 109, 4.656); create_plumedots(467, x + rcki->xvel, y + rcki->yvel, 90, 109, 1.7656); create_plumedots(467, x + rcki->xvel, y + rcki->yvel, 270, 109, 1.7656); create_plumedots(426, x - rcki->xvel, y - rcki->yvel, 90, 109, 1.37656); create_plumedots(426, x - rcki->xvel, y - rcki->yvel, 270, 109, 1.37656); break; default: makebangdots(rcki->x, rcki->y, rcki->xvel, rcki->yvel, image, 10, 3); } // If a greeblie was going to this rock if((g = rcki->greeb)) { // ...and had landed, then the greeblie explodes too. if(the_greeblies[g].landed) kill_greeb(g); else { // If the greeblie is not yet landed, then it must now // find another rock to jump to. Choose the last active // rock found. rcki->greeb = 0; rock[last_rock].greeb = g; the_greeblies[g].target_rock_number = last_rock; } } } } // Draw any greeblies attached to (or going to) the rock, whether the rock is active or not. if(rcki->greeb && the_greeblies[rcki->greeb].target_rock_number == i) display_greeb(&the_greeblies[rcki->greeb], surf_screen); } } void update_rocks(void) { int i; for(i = 0; i < MAX_ROCKS; i++) if(rock[i].active) { rock[i].x += rock[i].xvel * movementrate; rock[i].y += rock[i].yvel * movementrate; if(rock[i].x < -52.0) rock[i].active = 0; } } void *init_rocks(void) { int i; sdl_surfaces_t *surfs[] = { surf_rocks, surf_dead_rocks, surf_lithiumrocks, surf_dead_lithiumrocks, surf_icerocks, surf_dead_icerocks, NULL }; sdl_surfaces_t **ptrs; assert(surf_rocks == NULL && surf_dead_rocks == NULL); for(ptrs = surfs; *ptrs != NULL; ++ptrs) { if(!(*ptrs == NULL)) { guru_meditation(GM_FLAGS_RECOVERY | GM_FLAGS_ABORTIFY | GM_FLAGS_CHOICE, GM_SS_BootStrap | GM_GE_BadParm | GURU_SEC_rocks, &init_rocks); } } if((surf_rocks = load_images_ck("rock%hd.bmp", 0, 255, 0)) == NULL) guru_meditation(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_rocks, (void*)0x524f434b); if((surf_dead_rocks = load_images_ck("deadrock%hd.bmp", 0, 255, 0)) == NULL) guru_meditation(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_rocks, (void*)~0x524f434b); if((surf_lithiumrocks = load_images_ck("lithiumrock.%02hX.ilbm", 0, 255, 0)) == NULL) guru_meditation(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_rocks, (void*)0x4c495448); if((surf_dead_lithiumrocks = load_images_ck("deadlithiumrock.%02hX.ilbm", 0, 255, 0)) == NULL) guru_meditation(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_rocks, (void*)~0x4c495448); if((surf_icerocks = load_images_ck("icerock.%02hX.png", 0, 255, 0)) == NULL) guru_meditation(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_rocks, (void*)0x494345); if((surf_dead_icerocks = load_images_ck("deadicerock.%02hX.png", 0, 255, 0)) == NULL) guru_meditation(GM_FLAGS_DEADEND, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_rocks, (void*)~0x494345); if(!surf_rocks || !surf_dead_rocks || !surf_lithiumrocks || !surf_dead_lithiumrocks || !surf_icerocks || !surf_dead_icerocks ) return NULL; for(ptrs = surfs; *ptrs != NULL; ++ptrs) { assert((*ptrs)->num_surfaces == (*(ptrs + 1))->num_surfaces); if(!((*ptrs)->num_surfaces == (*(ptrs + 1))->num_surfaces)) guru_meditation(GM_FLAGS_RECOVERY | GM_FLAGS_ABORTIFY | GM_FLAGS_CHOICE, GM_SS_Misc | GM_GE_BadParm | GURU_SEC_rocks, *ptrs); ptrs = ptrs + 2; } assert(surf_rocks->num_surfaces >= MAX_ROCK_IMAGESS); for(i = 0; i < MAX_ROCKS; ++i) { rock[i].active = 0; rock[i].greeb = 0; } return surf_rocks; } rockdodger-0.9.2/scroller.c0000644000175000001440000000431312257577552015444 0ustar krawczykusers#include "scroller.h" #include "SFont.h" #include #define SCROLLER_GAP 45.0 Scroller_t *init_scroller(const char *stext, Sint16 pos, float defspeed, Uint16 visiwidth) { int text_scroller_width; Scroller_t *scroller = calloc(1, sizeof(Scroller_t)); SDL_Surface *surf = NULL; if(scroller) { scroller->position = -((float)visiwidth) - SCROLLER_GAP; scroller->speed = defspeed; scroller->y = pos; text_scroller_width = SFont_wide(stext); #ifdef DEBUG printf("Text scroller surface has a width of %d pixels.\n", text_scroller_width); #endif /* * Just create a surface, no special needs, etc. Therefore we use * a simple 2-bit surface, give it a colorkey for transparency and * convert it to the display format. */ if((surf = SDL_CreateRGBSurface(SDL_SWSURFACE, text_scroller_width, 36, 2, 0, 0, 0, 0)) != NULL) { SDL_SetColorKey(surf, SDL_SRCCOLORKEY, 0); //Set black (default fill?) to transparent scroller->playfield = SDL_DisplayFormat(surf); //Convert to display format (no problems with rgbamask, etc.) if(scroller->playfield == NULL) goto on_error; SDL_FreeSurface(surf); surf = NULL; PutString(scroller->playfield, 0, 0, stext); } else goto on_error; } return scroller; on_error: if(surf != NULL) SDL_FreeSurface(surf); if(scroller != NULL) free(scroller); return NULL; } void destroy_scroller(Scroller_t *scroller) { SDL_FreeSurface(scroller->playfield); free(scroller); } void update_and_draw_scroller(Scroller_t *scroller, SDL_Surface *target, float speed) { SDL_Rect r = { 0, scroller->y, 0, 0 }; assert(scroller != NULL); assert(target != NULL); scroller->position += scroller->speed * speed; if(scroller->position <= -target->w) { } else if(scroller->position <= 0) { r.w = target->w + scroller->position; r.x = -scroller->position; SDL_BlitSurface(scroller->playfield, NULL, target, &r); } else if(scroller->position > scroller->playfield->w){ scroller->position = -target->w - SCROLLER_GAP; } else { SDL_Rect src = { scroller->position, 0, target->w, scroller->playfield->h }; r.w = target->w; r.x = 0; SDL_BlitSurface(scroller->playfield, &src, target, &r); } } rockdodger-0.9.2/ship.c0000644000175000001440000001273712257577552014573 0ustar krawczykusers#include #include "config.h" #include "sparkles.h" #include "datafun.h" #include "guru_meditation.h" #include "ship.h" #include "rockdodger_globals.h" #include "random_gen.h" struct black_point_struct { int x, y; }; static struct black_point_struct black_point[MAX_BLACK_POINTS], *blackptr = black_point; SDL_Surface *surf_small_ship; sdl_surfaces_t *surfaces_ship; struct sprite ship_sprite; float xship, yship; float xvel, yvel; void draw_little_ships(int nships, SDL_Surface * surf_screen) { int i; SDL_Rect dest; for(i = 0; i < nships - 1; i++) { dest.w = surf_small_ship->w; dest.h = surf_small_ship->h; dest.x = (i + 1) * (surf_small_ship->w + 10); dest.y = 40; SDL_BlitSurface(surf_small_ship, NULL, surf_screen, &dest); } } void draw_ship(SDL_Surface * surf_screen) { static SDL_Rect dest; dest.w = 0; //src.w; dest.h = 0; //src.h; dest.x = (int) xship; dest.y = (int) yship; SDL_BlitSurface(get_current_sprite_surface(&ship_sprite, last_ticks), NULL, surf_screen, &dest); } void outline_detector() { char buf[256][256]; int x, y; SDL_Surface *surf_ship = get_current_sprite_surface(&ship_sprite, last_ticks); SDL_LockSurface(surf_ship); RD_VIDEO_TYPE *raw_pixels = (RD_VIDEO_TYPE *) surf_ship->pixels; x = surf_ship->w - 1; y = surf_ship->h - 1; RD_VIDEO_TYPE background = raw_pixels[y * surf_ship->pitch / sizeof(RD_VIDEO_TYPE) + x]; memset(buf, 0, sizeof(buf)); for(y = 0; y < surf_ship->h; y++) { for(x = 0; x < surf_ship->w; x++) { buf[x + 1][y + 1] = raw_pixels[y * surf_ship->pitch / sizeof(RD_VIDEO_TYPE) + x] != background; } } for(y = 0; y < surf_ship->h + 2; y++) { for(x = 0; x < surf_ship->w + 2; x++) { if(buf[x][y] && (!buf[x][y - 1] || !buf[x][y + 1] || !buf[x - 1][y] || !buf[x + 1][y])) printf("%d %d\t", x - 1, y - 1); } putchar('\n'); } SDL_UnlockSurface(surf_ship); } SDL_Surface *init_ship() { int i, j, numblack; SDL_Surface *surf_ship; // Load the spaceship surface from the spaceship file if((surfaces_ship = load_images_ck("ship.%02x.png", 0, 255, 0)) == NULL) { fprintf(stderr, "%s\n", SDL_GetError()); guru_meditation(GM_FLAGS_DEADEND | GM_FLAGS_ABORTIFY, GM_SS_Graphics | GM_GE_IOError | GURU_SEC_ship, (void*)0x53484950); //We never return from there... } init_sprite(&ship_sprite, surfaces_ship->surfaces, surfaces_ship->num_surfaces, 117, initticks); /* * Remember that we assume that the ship has always *exactly* the * same size. If not you will get funny effects. And you will * explode all the time, of course. */ surf_ship = surfaces_ship->surfaces[0]; // Create the array of black points; SDL_LockSurface(surf_ship); RD_VIDEO_TYPE *raw_pixels = (RD_VIDEO_TYPE *) surf_ship->pixels; numblack = 0; for(i = 0; i < surf_ship->w; i++) for(j = 0; j < surf_ship->h; j++) if(raw_pixels[j * surf_ship->pitch / sizeof(RD_VIDEO_TYPE) + i] == 0) { blackptr->x = i; blackptr->y = j; blackptr++; if(++numblack > MAX_BLACK_POINTS) return NULL; } SDL_UnlockSurface(surf_ship); //outline_detector(); return surf_ship; } void draw_ship_shield(SDL_Surface * surf_screen) { // Show the freaky shields RD_VIDEO_TYPE *raw_pixels = (RD_VIDEO_TYPE *) surf_screen->pixels; struct black_point_struct *p; int x, y; RD_VIDEO_TYPE c; SDL_LockSurface(surf_screen); if(initialshield > 0) { initialshield -= movementrate; c = SDL_MapRGB(surf_screen->format, 0, 255, 255); } else { c = heatcolor[(int) shieldlevel]; shieldlevel -= movementrate; } shieldpulse += 0.1; for(p = black_point; p < blackptr; p++) { x = p->x + (int) xship + (rnd() + rnd() - 1) * sin(shieldpulse) * 4 + 1; y = p->y + (int) yship + (rnd() + rnd() - 1) * sin(shieldpulse) * 4 + 1; if(x > 0 && y > 0 && x < xsize && y < ysize) { int offset = surf_screen->pitch / sizeof(RD_VIDEO_TYPE) * y + x; raw_pixels[offset] = c; } } SDL_UnlockSurface(surf_screen); } int ship_check_collision(SDL_Surface * surf_screen) { struct black_point_struct *p; RD_VIDEO_TYPE *raw_pixels; int bang = 0; SDL_LockSurface(surf_screen); raw_pixels = (RD_VIDEO_TYPE *) surf_screen->pixels; // When the shields are off, check that the black points // on the ship are still black, and not covered up by rocks for(p = black_point; p < blackptr; p++) { int offset = surf_screen->pitch / sizeof(RD_VIDEO_TYPE) * (p->y + (int) yship) + p->x + (int) xship; if(raw_pixels[offset]) { // Set the bang flag, a collision with something happened bang = 1; break; } } SDL_UnlockSurface(surf_screen); return bang; } void ship_update_position(void) { SDL_Surface *surf_ship = get_current_sprite_surface(&ship_sprite, last_ticks); // FRICTION? In space? Oh well. xvel *= powf(0.9, movementrate); yvel *= powf(0.9, movementrate); // if (abs(xvel)<0.00001) xvel=0; // if (abs(yvel)<0.00001) yvel=0; // INERTIA xship += xvel * movementrate; yship += yvel * movementrate; // BOUNCE X (okay, throwing all pretense of realism out the // window) if(xship < 0 || xship > xsize - surf_ship->w) { // BOUNCE from left and right wall xship -= xvel * movementrate; xvel *= -0.99; } // BOUNCE Y if(yship < 0 || yship > ysize - surf_ship->h) { // BOUNCE from top and bottom wall yship -= yvel * movementrate; yvel *= -0.99; } } void way_of_the_exploding_ship(void) { makebangdots(xship, yship, xvel, yvel, get_current_sprite_surface(&ship_sprite, last_ticks), 30, 3); } rockdodger-0.9.2/signal_handling.c0000644000175000001440000000304012257577552016734 0ustar krawczykusers#include #include #include "guru_meditation.h" /*! \brief end game prematurely * * \param code return code, exit is called with 128 + code */ static void prematurely_quit_game(int code) { SDL_Quit(); exit(128 + code); } static struct sigaction old_sa_structs[32]; static void handlesignal(int signal, siginfo_t *si, void *unused) { SDL_Surface *scr; #ifdef DEBUG fprintf(stderr, "signal=%d si=%p ctx=%p\n", signal, si, unused); #endif if((scr = SDL_GetVideoSurface()) != NULL) { guru_meditation(GM_FLAGS_DEADEND | GM_FLAGS_ABORTIFY, signal, si->si_addr); switch(signal) { case SIGHUP: case SIGINT: case SIGILL: case SIGTRAP: case SIGBUS: case SIGSEGV: case SIGTERM: case SIGCHLD: case SIGURG: case SIGSYS: old_sa_structs[signal].sa_sigaction(signal, si, unused); default: abort(); } } prematurely_quit_game(signal); } void set_signalhandling_up(void) { struct sigaction sa; int i; int signums[] = { SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGTRAP, SIGBUS, SIGFPE, SIGUSR1, SIGUSR2, SIGTERM, SIGCHLD, SIGURG, SIGSYS }; sa.sa_flags = SA_SIGINFO; sigemptyset(&sa.sa_mask); sa.sa_sigaction = handlesignal; for(i = 0; i < sizeof(signums)/sizeof(int); ++i) { if(sigaction(signums[i], &sa, old_sa_structs + signums[i]) == -1) abort(); //Nothing to be done here... } #ifndef DEBUG //Just too useful: catchsegv, etc. i = SIGSEGV; if(sigaction(signums[i], &sa, old_sa_structs + signums[i]) == -1) abort(); //Nothing to be done here... #endif } rockdodger-0.9.2/sound.c0000644000175000001440000000730512257577552014753 0ustar krawczykusers#include #include #include #include #include #include "datafun.h" #include "rockdodger_globals.h" #define CONDERROR(a) if ((a)) {fprintf(stderr,"Error: %s\n",SDL_GetError());exit(1);} #define NULLERROR(a) CONDERROR((a)==NULL) #define NUM_TUNES 5 #define SOUND_BANG 0 #define NUM_SOUNDS 10 int sfx_enabled; static Mix_Music *music[NUM_TUNES]; /*! \brief Fractions for calculating the real volume. * * Each of this values is multiplied times the global music volume * variable and then shifted seven bits to the right. With this we can * balance the music volumes a bit, as the song "front_1.mod" is quite * loud in comparison to the others. See play_tune(). */ static int music_volumefractions[NUM_TUNES] = { 128, 128, 128, 134, 71 }; static Mix_Chunk *wav[NUM_SOUNDS]; static int audio_rate; static Uint16 audio_format; static int audio_channels; static int playing = -1; const char *wav_file[] = { "booom.wav", "cboom.wav", "boom.wav", "bzboom.wav", "speedup.wav", "drip.wav", "fart.1.aiff", "fart.2.aiff", "fart.3.aiff", "fart.4.aiff" }; const char *tune_file[] = { "magic.mod", "getzznew.mod", "4est_fulla3s.mod", "ramcharg.mod", "front_1.mod", NULL }; int init_sound() { // Return 1 if the sound is ready to roll, and 0 if not. int i; #ifdef DEBUG printf("Initialise sound\n"); #endif // Initialise output with SDL_mixer if(Mix_OpenAudio (MIX_DEFAULT_FREQUENCY, AUDIO_S16, MIX_DEFAULT_CHANNELS, 512) < 0) { fprintf(stderr, "Couldn't open SDL_mixer audio: %s\n", SDL_GetError()); return 0; } // What kind of sound did we get? Ah who cares. As long as it can play // some basic bangs and simple music. Mix_QuerySpec(&audio_rate, &audio_format, &audio_channels); printf("Opened audio at %d Hz %d bit %s\n", audio_rate, (audio_format & 0xFF), (audio_channels > 1) ? "stereo" : "mono"); // Preload all the tunes into memory for(i = 0; i < NUM_TUNES; i++) { const char *tune_name = tune_file[i]; #ifdef DEBUG printf("Loading tune '%s'.\n", load_file(tune_name)); #endif if(tune_name == NULL) { fprintf(stderr, "We are at tune %d and got a NULL pointer.\nBlack hole encountered and can not reach the event horizon...\n", i); break; } if(!(music[i] = Mix_LoadMUS(load_file(tune_name)))) { printf("Failed to load '%s'.\n", load_file(tune_name)); } } // Preload all the wav files into memory for(i = 0; i < NUM_SOUNDS; i++) { wav[i] = Mix_LoadWAV(load_file(wav_file[i])); if(wav[i] == NULL) { fprintf(stderr, "Error while loading '%s'.\n", wav_file[i]); } else { #ifdef DEBUG printf("i=$%02x name='%s'\n", i, wav_file[i]); #endif } } sfx_enabled = 1; return 1; } void play_sound(int i) { #ifdef DEBUG printf("play sound %d on first free channel\n", i); #endif if(sfx_enabled) { if(i >= NUM_SOUNDS) fprintf(stderr, "Sound number %d is >= than %d!\n", i, NUM_SOUNDS); Mix_PlayChannel(-1, wav[i], 0); } } void play_tune(int i) { int vol; if(playing == i) return; if(playing) { Mix_FadeOutMusic(15); #ifdef DEBUG printf("Stop playing %d\n", playing); #endif } if(i >= NUM_TUNES || music[i] == NULL) return; //Illegal song number. #ifdef DEBUG printf("Play music %d\n", i); printf("volume %d fraction %d\n", music_volume, music_volumefractions[i]); #endif Mix_FadeInMusic(music[i], -1, 20); vol = (music_volumefractions[i] * music_volume) >> 7; Mix_VolumeMusic(vol); playing = i; } /* * * The init_sound() routine is called first. * The play_sound() routine is called with the index number of the sound we wish to play. * The play_tune() routine is called with the index number of the tune we wish to play. * */ rockdodger-0.9.2/spacedots.c0000644000175000001440000002100712257577552015603 0ustar krawczykusers#include "guru_meditation.h" #include "rockdodger_globals.h" #include "spacedots.h" #include "random_gen.h" #include #define MAX_CICADA_SPACEDOTS 0x0800 /*! \file spacedots.c * Space dots are the stars in the background. Currently there are two * different engines to draw all the stars. Constants will be read * from the IFF file. * * FORM ROCK Rockdodger iff file * . FORM SPDT space dots form * . . NDOT Number of space dots in the normal generation * engine. * * NDOT chunk * ---------- * * uint16 number of space dots (normal generation engine) */ /*! \brief Initialise space dots. * * The information is written into the spacedots_t union. * * \param surf_screen The surface which is displayed. * \param spacedots Structure to be initialised. * \param max_space_dots Number of spacedots to allocate. * \return 0 = failure, 1 = OK */ int init_space_dots(spacedots_t *spacedots, SDL_Surface *surf_screen, unsigned int max_space_dots) { int i, intensity; spacedots->num_spacedots = max_space_dots; spacedots->spacedots = malloc(sizeof(struct spacedot) * spacedots->num_spacedots); if(spacedots->spacedots == NULL) { fprintf(stderr, "Can not allocate space for %d spacedots!\n", spacedots->num_spacedots); return 0; } for(i = 0; i < spacedots->num_spacedots; i++) { float r = rnd_next_float(); // We are in init and can take our time. spacedots->spacedots[i].x = rnd() * (xsize - 5); spacedots->spacedots[i].y = rnd() * (ysize - 5) + 2.5; r = r * r; spacedots->spacedots[i].dx = -r * 4; // -1/((1-r)+.3); intensity = (int) (r * 180 + 50); spacedots->spacedots[i].color = SDL_MapRGB(surf_screen->format, intensity, intensity, intensity); #if DEBUG > 0 printf("r=%E spacedots->spacedots.dx=%E\n", r, spacedots->spacedots[i].dx); #endif } return 1; } unsigned short read_number_of_dots(uiff_ctx_t *iff) { unsigned short ndots = MAX_SPACE_DOTS; int32_t size = uiff_find_group_ctx(iff, IFF_FIND_REWIND, FORM, MakeID('S', 'P', 'D', 'T')); assert(printf("FORM.ROCK FORM.SPDT size = $%08lX\n", (unsigned long)size)); if(size >= 0) { if((size = uiff_find_chunk_ctx(iff, MakeID('N', 'D', 'O', 'T'))) >= 2) { //Chunk found and it is long enough... ndots = read16(iff->f); assert(printf("FORM.ROCK FORM.SPDT MDOT size = $%08lX ndot = $%04hX\n", (unsigned long)size, ndots)); } else { guru_meditation(GM_FLAGS_RECOVERY, GM_SS_BootStrap | GM_GE_BadParm | GURU_SEC_spacedots, &read_number_of_dots); } } else { guru_meditation(GM_FLAGS_RECOVERY, GM_SS_BootStrap | GM_GE_OpenLib | GURU_SEC_spacedots, &read_number_of_dots); } return ndots; } void draw_space_dots_pixel(spacedots_t *spacedots, SDL_Surface *surf_screen) { int i; RD_VIDEO_TYPE *rawpixel = (RD_VIDEO_TYPE *) surf_screen->pixels; assert(spacedots->type == 0); struct spacedot *sdot = spacedots->spacedots; assert(sdot != NULL); SDL_LockSurface(surf_screen); for(i = 0; i < spacedots->num_spacedots; ++i) { rawpixel[surf_screen->pitch / sizeof(RD_VIDEO_TYPE) * sdot[i].y + (int) (sdot[i].x)] = sdot[i].color; sdot[i].x += sdot[i].dx * movementrate; if(sdot[i].x < 0) sdot[i].x = xsize; } SDL_UnlockSurface(surf_screen); } /* * List of Prime Numbers up to 1000. * * 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, * 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, * 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, * 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, * 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, * 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, * 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, * 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, * 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, * 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, * 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, * 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, * 967, 971, 977, 983, 991, 997 */ int init_cicada_spacedots(spacedots_t *spacedots, SDL_Surface *surf_screen) { #ifdef DEBUG printf("Entering %s@%p.\n", __func__, &init_cicada_spacedots); #endif SDL_Surface *surf; int current_playfield, j, x, y; SDL_Color colors[256]; int widths[] = {307, 337, 349, 367, 373, 379, 383, 389}; #if (NUMBER_CICADA_PLAYFIELDS > 8) #error "Not enough primes!" #endif assert(surf_screen->w == xsize); assert(surf_screen->h == ysize); if((spacedots->cicadadots = malloc(sizeof(struct cicada_spacedots_playfield) * NUMBER_CICADA_PLAYFIELDS)) == NULL) return 0; spacedots->num_cicada_playfields = NUMBER_CICADA_PLAYFIELDS; /* Fill colors with colour information */ for(j = 0; j < 256; j++) { float jj = j / 255.0 * 180.0 + 40; colors[j].r = jj; colors[j].g = jj; colors[j].b = jj; } struct cicada_spacedots_playfield *cicada_spacedots_playfields = spacedots->cicadadots; for(current_playfield = 0; current_playfield < NUMBER_CICADA_PLAYFIELDS; ++current_playfield) { if((surf = SDL_CreateRGBSurface(SDL_HWSURFACE, widths[current_playfield], ysize, 8, 0, 0, 0, 0)) == NULL) return 0; #ifdef DEBUG printf("playfield %d at %p\n", current_playfield, surf); #endif SDL_LockSurface(surf); SDL_SetColors(surf, colors, 0, 256); cicada_spacedots_playfields[current_playfield].playfield = surf; cicada_spacedots_playfields[current_playfield].speed = current_playfield * .885 + .162; cicada_spacedots_playfields[current_playfield].pos = 0; unsigned char *pixels = surf->pixels; float maxcol = (float)(current_playfield + 1)/ NUMBER_CICADA_PLAYFIELDS; float mincol = (float)(current_playfield) / NUMBER_CICADA_PLAYFIELDS; #ifdef DEBUG printf("mincol=%e maxcol=%e\n", mincol, maxcol); #endif for(j = 0; j < MAX_CICADA_SPACEDOTS / (NUMBER_CICADA_PLAYFIELDS + 1); ++j) { x = rnd_next_float() * surf->w; y = rnd_next_float() * (ysize - 5) + 2.5; float r = (mincol + rnd_next_float() * (maxcol - mincol)); assert(r >= 0 && r < 1); pixels[y * surf->w + x] = 256 * r; } SDL_SetColorKey(surf, SDL_SRCCOLORKEY|SDL_RLEACCEL, SDL_MapRGB(surf->format, 0, 0, 0)); SDL_UnlockSurface(surf); } return 1; } void draw_cicada_dots(spacedots_t *spacedots, SDL_Surface *surf_screen) { int i; float pos; SDL_Rect rect = { 0, 0, 0, 0 }; assert(spacedots->type == 1); for(i = 0; i < spacedots->num_cicada_playfields; ++i) { struct cicada_spacedots_playfield *playf = spacedots->cicadadots + i; for(pos = playf->pos; pos < xsize; pos += playf->playfield->w) { rect.x = pos; SDL_BlitSurface(playf->playfield, NULL, surf_screen, &rect); } if((playf->pos -= playf->speed * movementrate) < -playf->playfield->w) playf->pos = 0; } } spacedots_t *init_space_dots_engine(SDL_Surface *surf_screen, short type, uiff_ctx_t iff) { unsigned short number_of_dots; spacedots_t *spacedots = calloc(sizeof(spacedots_t), 1); int ret = 0; if(spacedots) { spacedots->type = type; switch(spacedots->type) { case 0: number_of_dots = read_number_of_dots(&iff); ret = init_space_dots(spacedots, surf_screen, number_of_dots); assert(spacedots->spacedots != NULL); assert(spacedots->num_spacedots == number_of_dots); break; case 1: ret = init_cicada_spacedots(spacedots, surf_screen); break; default: return NULL; } if(!ret) { #ifdef DEBUG fprintf(stderr, "Spacedot initialisation failed!\n"); #endif free(spacedots); spacedots = NULL; } } else { //We return NULL and the error is handled in main(). guru_alert(GM_FLAGS_DEADEND, GM_SS_Misc|GM_GE_NoMemory|GURU_SEC_spacedots, init_space_dots_engine); } return spacedots; } void draw_space_dots(spacedots_t *spacedots, SDL_Surface *surf_screen) { switch(spacedots->type) { case 0: draw_space_dots_pixel(spacedots, surf_screen); break; case 1: draw_cicada_dots(spacedots, surf_screen); break; default: assert(0); } } void destroy_space_dots(spacedots_t *spacedots) { //Null pointer is harmless... if(spacedots == NULL) return; switch(spacedots->type) { case 0: free(spacedots->spacedots); break; case 1: free(spacedots->cicadadots); break; case -1: //Do not care about double destroy... return; default: /* In debug mode please crash, otherwise just cross your fingers and hope for the best... */ assert(0); } spacedots->type = -1; free(spacedots); } rockdodger-0.9.2/sparkles.c0000644000175000001440000002234212257577552015445 0ustar krawczykusers#include #include #include "sparkles.h" #include "random_gen.h" #include "rockdodger_globals.h" #include "guru_meditation.h" #include "u-iff.h" /* * Sparkles are small colour changing dots which are painted directly * onto a surface. Important information like the colours defined are * read from a IFF FORM ROCK file. * * FORM ROCK Rockdodger iff file * . FORM SPRK sparkles form * . . MDOT maximum number of dots chunk * . . CMAP colour map chunk (as known from ILBM files) * must occur at least two times * * MDOT chunk * ---------- * * uint32 maximum number of dots/sparkles */ #ifdef DEBUG #include static unsigned long max_bangdots_used = 0; #endif sparkle_life_colours_t hot_colours; sparkle_life_colours_t cool_colours; static sparkle_t *sparkles; static sparkle_t *sparkles_end; uint32_t max_bang_dots = MAX_BANG_DOTS; sparkle_t *init_sparkles(uiff_ctx_t iff) { int32_t size; int32_t cidx; sparkle_life_colours_t splcls; sparkle_t *ret = NULL; int index = -1; //This destroys the old context group-information but we do not need it any longer anyway. size = uiff_find_group_ctx(&iff, IFF_FIND_REWIND, FORM, MakeID('S', 'P', 'R', 'K')); assert(printf("FORM.ROCK FORM.SPRK size = $%08X\n", size)); if(size >= 0) { if((size = uiff_find_chunk_ctx(&iff, MakeID('M', 'D', 'O', 'T'))) >= 4) { //Chunk found and it is long enough... max_bang_dots = read32(iff.f); assert(printf("FORM.ROCK FORM.SPRK MDOT size = $%08X mdot = $%08X\n", size, max_bang_dots)); } uiff_rewind_group(&iff); index = 0; while((size = uiff_find_chunk_ctx(&iff, MakeID('C', 'M', 'A', 'P'))) > 0) { assert(printf("FORM.ROCK FORM.SPRK CMAP size = $%08X\n", size)); if(size % 3 != 0) return NULL; splcls.cl_len = size / 3; if((splcls.clist = malloc((splcls.cl_len + 1/*Space for duplicate*/) * sizeof(SDL_Color))) == NULL) return NULL; for(cidx = 0; cidx < splcls.cl_len && ftell(iff.f) < iff.ckend; ++cidx) { splcls.clist[cidx].r = fgetc(iff.f); splcls.clist[cidx].g = fgetc(iff.f); splcls.clist[cidx].b = fgetc(iff.f); } assert(printf("splcls.cl_len = $%x splcls.clist = %p\n", splcls.cl_len, splcls.clist)); splcls.clist[splcls.cl_len] = splcls.clist[splcls.cl_len - 1]; #ifdef DEBUG int i; for(i = 0; i < splcls.cl_len; ++i) { printf("\t $%02x $%02x $%02x\n", (unsigned)splcls.clist[i].r, (unsigned)splcls.clist[i].g, (unsigned)splcls.clist[i].b); } #endif switch(index++) { case 0: hot_colours = splcls; break; case 1: cool_colours = splcls; break; default: break; //We are OK } } } if(index < 2) return NULL; /* We need at least two colour maps. */ if(!(sparkles = malloc(sizeof(sparkle_t) * max_bang_dots))) { perror("Can not allocate sparkles"); return NULL; } else sparkles_end = sparkles; ret = sparkles; assert(printf("ret = %p\n", ret)); return ret; } Uint32 get_life_colour(float life, sparkle_life_colours_t *fcols, SDL_Surface *surf) { int index; float mixing; Uint8 r, g, b; assert(fcols->cl_len > 0); if(life < 0 || life > 1) { #ifdef DEBUG fprintf(stderr, "life=%e, fcols=%p, surf=%p\n", (double)life, fcols, surf); #endif guru_meditation(GM_FLAGS_RECOVERY, GM_SS_Graphics | GM_GE_BadParm | GURU_SEC_bangdots, &get_life_colour); life = life < 0 ? 0 : 1; } index = floorf(life * fcols->cl_len); mixing = 1 - (fcols->cl_len * life - index); //Now you hopefully see, why we substracted one... r = mixing * fcols->clist[index].r + (1 - mixing) * fcols->clist[index + 1].r; g = mixing * fcols->clist[index].g + (1 - mixing) * fcols->clist[index + 1].g; b = mixing * fcols->clist[index].b + (1 - mixing) * fcols->clist[index + 1].b; //fprintf(stderr, "life=%e, fcols=%p, surf=%p index=%d mixing=%e r=%x g=%x b=%x\n", (double)life, fcols, surf, index, (double)mixing, (int)r, (int)g, (int)b); return SDL_MapRGB(surf->format, r, g, b); } /* * \return pointer to new sparkle */ sparkle_t *create_colour_sparkle(float x, float y, float dx, float dy, float decay, RD_VIDEO_TYPE col) { #ifdef DEBUG unsigned long nmax; nmax = sparkles_end - sparkles; if(nmax > max_bangdots_used) { max_bangdots_used = nmax; printf("new: max_bangdots_used = $%lX\n", max_bangdots_used); } #endif if(sparkles_end - sparkles >= max_bang_dots) { guru_meditation(GM_FLAGS_GREEN, GM_SS_Intuition | GM_GE_ProcCreate | GURU_SEC_bangdots, &create_colour_sparkle); } else { sparkles_end->x = x; sparkles_end->y = y; sparkles_end->dx = dx; sparkles_end->dy = dy; sparkles_end->life = 1.0; sparkles_end->decay = decay; sparkles_end->col = col; sparkles_end->spty = 0; return sparkles_end++; } return NULL; } /* * \return pointer to new sparkle */ sparkle_t *create_sparkle(float x, float y, float dx, float dy, float decay, sparkle_life_colours_t *col) { #ifdef DEBUG unsigned long nmax; nmax = sparkles_end - sparkles; if(nmax > max_bangdots_used + 0x100) { max_bangdots_used = nmax; printf("new: max_bangdots_used = $%lX\n", max_bangdots_used); } #endif assert(hot_colours.clist != NULL); assert(cool_colours.clist != NULL); if(sparkles_end - sparkles >= max_bang_dots) { guru_meditation(GM_FLAGS_GREEN, GM_SS_Intuition | GM_GE_ProcCreate | GURU_SEC_bangdots, &create_sparkle); } else { sparkles_end->x = x; sparkles_end->y = y; sparkles_end->dx = dx; sparkles_end->dy = dy; sparkles_end->life = 1.0; sparkles_end->decay = decay; sparkles_end->fading = col; sparkles_end->spty = 1; return sparkles_end++; } return NULL; } void draw_sparkle(sparkle_t *sparkle, SDL_Surface *surf) { int x = sparkle->x; int y = sparkle->y; RD_VIDEO_TYPE col; RD_VIDEO_TYPE *rawpixel = (RD_VIDEO_TYPE *) surf->pixels; switch(sparkle->spty) { case 0: col = sparkle->col; break; case 1: col = get_life_colour(sparkle->life, sparkle->fading, surf); sparkle->oldfadecol = col; break; default: col = guru_meditation(GM_FLAGS_RECOVERY | GM_FLAGS_AUTOTIMEOUT | GM_FLAGS_ABORTIFY | GM_FLAGS_CHOICE, GM_SS_Graphics | GM_GE_BadParm | GURU_SEC_bangdots, &draw_sparkle); } rawpixel[surf->pitch / sizeof(RD_VIDEO_TYPE) * y + x] = col; } void update_sparkles(SDL_Surface *surf) { Uint32 mycol, bgpixel; sparkle_t *sptr; sparkle_t *target; RD_VIDEO_TYPE *rawpixel; SDL_LockSurface(surf); rawpixel = (RD_VIDEO_TYPE *) surf->pixels; for(sptr = sparkles, target = sparkles; sptr < sparkles_end; ++sptr) { sptr->life = sptr->life - sptr->decay * movementrate; if(sptr->life < 0) continue; //It's dead, Jim. if(sptr->life < 0.87) { bgpixel = rawpixel[(int) (surf->pitch / sizeof(RD_VIDEO_TYPE) * (int) (sptr->y)) + (int) (sptr->x)]; switch(sptr->spty) { case 0: mycol = sptr->col; break; case 1: //Use last generated one... mycol = sptr->oldfadecol; break; default: mycol = -1; } if(bgpixel != mycol) { // Continue and do not copy continue; } } sptr->x += sptr->dx * movementrate; sptr->y += sptr->dy * movementrate; if(sptr->x <= 0 || sptr->x >= xsize || sptr->y <= 0 || sptr->y >= ysize) { // If the dot has drifted outside the perimeter, kill it continue; } *target++ = *sptr; } SDL_UnlockSurface(surf); sparkles_end = target; //This points after the last one } void makebangdots(int xbang, int ybang, int xvel, int yvel, SDL_Surface * s, int power, int amtdots) { int x, y, endcount; RD_VIDEO_TYPE *rawpixel, c; double theta, r; float sx, sy, dx, dy; int begin_generate; sparkle_t *sptr; begin_generate = SDL_GetTicks(); SDL_LockSurface(s); rawpixel = (RD_VIDEO_TYPE *) s->pixels; endcount = 0; while(endcount < amtdots) { for(x = 0; x < s->w; x++) { for(y = 0; y < s->h; y++) { c = rawpixel[s->pitch / sizeof(RD_VIDEO_TYPE) * y + x]; if(c && c != SDL_MapRGB(s->format, 0, 255, 0)) { theta = rnd() * M_PI * 2; r = 1 - (rnd() * rnd()); sx = x + xbang; sy = y + ybang; dx = (power / 50.0) * 45.0 * cos(theta) * r + xvel; dy = (power / 50.0) * 45.0 * sin(theta) * r + yvel; // Replace the last few bang dots with the pixels from the exploding object if(endcount > 0) { sptr = create_colour_sparkle(sx, sy, dx, dy, (rnd() * 3 + 1) / 100.0, c); } else { sptr = create_sparkle(sx, sy, dx, dy, (rnd() * 3 + 1) / 100.0, &hot_colours); } if(sptr == NULL) goto exitloop; } } } if(SDL_GetTicks() - begin_generate > 3) endcount++; } exitloop: SDL_UnlockSurface(s); } void draw_sparkles(SDL_Surface * s) { sparkle_t *sptr; for(sptr = sparkles; sptr < sparkles_end; ++sptr) { draw_sparkle(sptr, s); } } void reset_sparkles(void) { sparkles_end = sparkles; } void create_plumedots(int num, short x, short y, short heading, short angle, float speed) { sparkle_t *sptr; float fheading; float speed_; while(--num > 0 && sparkles_end - sparkles < max_bang_dots) { fheading = heading + (rnd() - 0.5) * angle; fheading *= 2 * M_PI / 360.0; speed_ = speed * (0.3 + 0.8 * rnd()); sptr = create_sparkle(x + (rnd() - 0.5) * 7, y + (rnd() - 0.5) * 7, cosf(fheading) * speed_, -sinf(fheading) * speed_, (rnd() * 3 + 1) / 100.0, &cool_colours); if(sptr == NULL) break; } } rockdodger-0.9.2/sprite.c0000644000175000001440000000176012257577552015130 0ustar krawczykusers#include "sprite.h" #ifdef DEBUG #include #endif int draw_sprite(struct sprite *sprite, Sint16 x, Sint16 y, SDL_Surface * target, Uint32 now) { static SDL_Rect dest; static SDL_Surface *source; source = get_current_sprite_surface(sprite, now); dest.x = x; dest.y = y; dest.w = source->w; dest.h = source->h; return SDL_BlitSurface(source, NULL, target, &dest); } SDL_Surface *get_current_sprite_surface(struct sprite * sprite, Uint32 now) { return sprite-> surface_ptr[((now - sprite->start_tick) / sprite->speed_divisor) % sprite->surface_count]; } void init_sprite(struct sprite *sprite, SDL_Surface ** surfaces, Uint16 surface_count, Uint16 delay, Uint32 now) { sprite->start_tick = now; sprite->surface_ptr = surfaces; sprite->surface_count = surface_count; sprite->speed_divisor = delay; #ifdef DEBUG printf("init sprite=%p start=$%08X divisor=$%04hx count=$%04hx\n", sprite, sprite->start_tick, sprite->speed_divisor, surface_count); #endif } rockdodger-0.9.2/u-iff.c0000644000175000001440000001024112257577552014622 0ustar krawczykusers#include "u-iff.h" #include #include #include #include uiff_ctx_t *uiff_new_ctx(FILE *f, uiff_ctx_t *ctx) { if(ctx == NULL) ctx = malloc(sizeof(uiff_ctx_t)); if(ctx) { memset(ctx, 0, sizeof(uiff_ctx_t)); ctx->f = f; //ctx->grbegin = 0; ctx->grend = LONG_MAX; ctx->grsz = INT32_MAX; } return ctx; } uiff_ctx_t *uiff_from_file(FILE *f, ID grID, ID subID) { uiff_ctx_t *ctx; ctx = calloc(sizeof(uiff_ctx_t), 1); if(ctx) { rewind(f); uiff_new_ctx(f, ctx); if(uiff_find_group_ctx(ctx, 0, grID, subID) >= 0) { } else { free(ctx); return NULL; } } return ctx; } uint32_t read32(FILE *inf) { uint32_t u32 = 0; int c, i; for(i = 0; i < 4; ++i) { u32 <<= 8; c = fgetc(inf); //if(c == EOF) return SHORT_CHUNK; u32 |= c; } //if(u32 & 0x80808080) return -8; return u32; } uint16_t read16(FILE *inf) { uint16_t u16; int c; c = fgetc(inf); u16 = c << 8; c = fgetc(inf); u16 |= c; return u16; } int32_t uiff_find_chunk(FILE *inf, long length, ID ckID) { ID tmpid; int32_t size; long maxpos; maxpos = ftell(inf) + length; while(ftell(inf) < maxpos) { tmpid = read32(inf); if(feof(inf)) return SHORT_CHUNK; size = read32(inf); if(size < 0) return BAD_FORM; if(feof(inf)) return SHORT_CHUNK; if(ckID == 0 || tmpid == ckID) { return size; } fseek(inf, size, SEEK_CUR); } return NOT_IFF; } int32_t uiff_find_chunk_ctx(uiff_ctx_t *ctx, ID ckID) { int32_t size; long pos; pos = ftell(ctx->f); if(pos < ctx->grbgn || pos > ctx->grend) return CLIENT_ERROR; //fseek(ctx->f, ctx->grbgn, SEEK_SET); size = uiff_find_chunk(ctx->f, ctx->grsz, ckID); if(size >= 0) { pos = ftell(ctx->f); ctx->ckID = ckID; ctx->ckbgn = pos; ctx->ckend = pos + size; ctx->cksz = size; } ctx->cksz = size; return size; } int32_t uiff_find_group(FILE *inf, long length, ID ckID, ID subID) { ID tmpid; int32_t size; long pos, maxpos; int found = 0; maxpos = ftell(inf) + length; while((pos = ftell(inf)) < maxpos) { size = uiff_find_chunk(inf, (maxpos - pos), ckID); if(size < 0) return size; if(size < 4) return BAD_FORM; if(ckID != 0) { found = 1; } else { //ckID = 0, find any group type fseek(inf, -8, SEEK_CUR); //Go back to ID tmpid = read32(inf); fseek(inf, 4, SEEK_CUR); //Skip size if(tmpid == FORM || tmpid == PROP || tmpid == LIST || tmpid == CAT) found = 1; } if(found) { tmpid = read32(inf); size -= 4; //Bytes left to read if(feof(inf)) return SHORT_CHUNK; if(tmpid == subID) { return size; } else found = 0; } fseek(inf, size, SEEK_CUR); } return NOT_IFF; } int32_t uiff_find_group_ctx(uiff_ctx_t *ctx, unsigned flags, ID ckID, ID subID) { int32_t size; long pos; if(flags & IFF_FIND_REWIND) uiff_rewind_group(ctx); pos = ftell(ctx->f); //Am I within a group? if(pos < ctx->grbgn || pos > ctx->grend) return CLIENT_ERROR; //fseek(ctx->f, ctx->grbgn, SEEK_SET); size = uiff_find_group(ctx->f, ctx->grsz, ckID, subID); if(size >= 0) { pos = ftell(ctx->f); ctx->grID = ckID; ctx->grsID = subID; ctx->grbgn = pos; ctx->grend = pos + size; ctx->grsz = size; ctx->ckID = 0; //We have no current chunk, set everything to zero/default. ctx->ckbgn = 0; ctx->ckend = 0; ctx->cksz = -1; } ctx->grsz = size; return size; } void *uiff_reada_chunk_ctx(uiff_ctx_t *ctx) { size_t bytes_read; void *ptr = NULL; long pos = ftell(ctx->f); if(pos >= ctx->grbgn && pos < ctx->grend && ctx->cksz > 0) { //We actually have to read something ptr = malloc(ctx->cksz); if(ptr) { bytes_read = fread(ptr, 1, ctx->cksz, ctx->f); if(bytes_read < ctx->cksz) { free(ptr); return NULL; // This is bad } ctx->last_data = ptr; } } return ptr; } int32_t uiff_skip(uiff_ctx_t *ctx) { long pos = ftell(ctx->f); if(pos < ctx->ckbgn || pos >= ctx->ckend) return CLIENT_ERROR; fseek(ctx->f, ctx->ckend, SEEK_SET); return (int32_t)(ctx->ckend - pos); } void uiff_rewind_group(uiff_ctx_t *ctx) { fseek(ctx->f, ctx->grbgn, SEEK_SET); } rockdodger-0.9.2/SFont.h0000644000175000001440000000462412257577552014662 0ustar krawczykusers/************************************************************************ * SFONT - SDL Font Library by Karl Bartel * * * * All functions are explained below. There are two versions of each * * funtction. The first is the normal one, the function with the * * 2 at the end can be used when you want to handle more than one font * * in your program. * * * ************************************************************************/ #include extern int font_height; // Delcare one variable of this type for each font you are using. // To load the fonts, load the font image into YourFont->Surface // and call InitFont( YourFont ); typedef struct { SDL_Surface *Surface; int CharPos[512]; int h; } SFont_FontInfo; // Initializes the font // Font: this contains the suface with the font. // The font must be loaded before using this function. void InitFont(SDL_Surface * Font); void InitFont2(SFont_FontInfo * Font); // Blits a string to a surface // Destination: the suface you want to blit to // text: a string containing the text you want to blit. void PutString(SDL_Surface * Surface, int x, int y, const char *text); void PutString2(SDL_Surface * Surface, SFont_FontInfo * Font, int x, int y, const char *text); // Returns the width of "text" in pixels int TextWidth(char *text); int TextWidth2(SFont_FontInfo * Font, char *text); // Blits a string to with centered x position void XCenteredString(SDL_Surface * Surface, int y, char *text); void XCenteredString2(SDL_Surface * Surface, SFont_FontInfo * Font, int y, char *text); // Allows the user to enter text // Width: What is the maximum width of the text (in pixels) // text: This string contains the text which was entered by the user // ph: nonblocking int SFont_Input(SDL_Surface * Destination, int x, int y, int Width, char *text); int SFont_Input2(SDL_Surface * Destination, SFont_FontInfo * Font, int x, int y, int Width, char *text); /*! \brief Get width of a text * * \param text text string * \return width in pixels */ int SFont_wide(const char *text); /*! \brief Clear the event queue! * * This function clears the event buffer and enables unicode input or * so... * * What!? */ void clearBuffer(); rockdodger-0.9.2/blubats.h0000644000175000001440000000222012257577552015253 0ustar krawczykusers#ifndef __BLUBATS_H__ #define __BLUBATS_H__ #include #include "u-iff.h" #include "rockdodger_globals.h" /*! \brief Initialise blubats * * Load all images, etc. After initialisation a pointer to something * is returned. On any error a NULL pointer is returned -- do not use * this pointer. * * \param iff IFF context * \return NULL pointer on failure */ void *init_blubats(uiff_ctx_t iff); /*! \brief activate a single blubat * This function avtivate if possible a single blubat. * * \return 1 on success, else 0 */ int activate_one_blubat(); /*! \brief Check if a blubat was hit * Check if one of the active blubats was hit. * * \param ylaser Y position of the laser on the screen * \param maxx maximum X position of the laser * \return number of the killed blubat or -1 */ int check_blubat_hit(int ylaser, int maxx); void deactivate_all_blubats(void); //!< Remove all blubats from screen void display_blubats(SDL_Surface * surf_screen); //!< Display blubats void kill_blubat(unsigned int hit); //!< remove a single blubat void move_all_blubats(); //!< Move all blubats void shutdown_blubats(void); //!< Shutdown function. #endif rockdodger-0.9.2/datafun.h0000644000175000001440000000627112257577552015253 0ustar krawczykusers#ifndef __DATAFUN_H__ #define __DATAFUN_H__ #include /*! \brief structure to hold multiple surfaces * * Mostly used for load_images_ck... All fields are set by the load * functions and should be left alone. surfaces_end and num_surfaces * are redundant! */ typedef struct sdl_surfaces { SDL_Surface **surfaces; //!< pointer to an array of surfaces SDL_Surface **surfaces_end; //!< pointer to SDL_Surface *after* the last surface unsigned short num_surfaces; //!< number of surfaces } sdl_surfaces_t; /*! \brief global variable for the path to the data directory * This variable must be set before any other function is called */ extern char *data_dir; char *get_data_dir(void); /*! \brief get load file name * * Get the load file name of a file. Actually does only prepend the * file path. The returned value is a static array! * * \return pointer to static array */ char *load_file(const char *s); /*! \brief get load file name in a directory * * Get the load file name of a file. Actually does only prepend the * data directory path and the dir path. The returned value is a * static array! * * \return pointer to a static array */ const char *load_file_dir(const char *dir, const char *name); /*! \brief load an image with optional colour key * * This function loads an image in the standard image directory and * transforms it to the display format. Optionally a colour key for * transparency can be given. If any of the kr, kg, kb is < 0 then no * colour key transparency is done. * * \warning The image is transformed into the screen format, this * breaks transparency! * * \param fname file name * \param kr red component for colour key * \param kg green component for colour key * \param kb blue component for colour key * \return surface or NULL on any error */ SDL_Surface *load_image(const char *fname, short kr, short kg, short kb); /*! \brief load images with optional colour key * * This function loads images in the standard image directory and * transforms it to the display format. Optionally a colour key for * transparency can be given. If any of the kr, kg, kb is < 0 then no * colour key transparency is done. * * \warning The image is transformed into the screen format, this * breaks transparency! * * \param fname file name pattern with format qualifier for a unsigned short, e.g. "image.%hx.lbm" (I know this could lead to a security hole...) * \param kr red component for colour key * \param kg green component for colour key * \param kb blue component for colour key * \return surfaces or NULL on any error */ sdl_surfaces_t *load_images_ck(const char *fname, short kr, short kg, short kb); /*! \brief Check is directory is missing * * \param dirname directory name * \return 0 = no directory */ int missing(const char *dirname); /*! \brief Destroy multiple surfaces in sdl_surfaces_t * * This function deletes all the surfaces which can be found in the * structure. It will also clear the whole surfaces so that there will * be no more dangling pointers. This sets the number of surfaces also * to zero. * * \param surfaces pointer to a sdl_surfaces_t which will be destroyed */ void destroy_sdl_surfaces(sdl_surfaces_t *surfaces); #endif rockdodger-0.9.2/display_subsystem.h0000644000175000001440000000133612257577552017411 0ustar krawczykusers#ifndef __DISPLAY_SUBSYSTEM_H_2013__ #define __DISPLAY_SUBSYSTEM_H_2013__ /*! \brief Draw the background items. * * Harmless items in the background without any interaction. These are * infinite black and space dots. */ void draw_background_objects(); /*! \brief draw the ghostly (fading) rock dodger title * * This function will use the fadetime to change the alpha of the * given surfaces (they are modified!). You can, of course, provide * other surfaces and this function should work euqally well... * * \param surf_t_rock Surface to the "Rock" title string * \param surf_t_dodger Surface to the "Dodger" title string */ void draw_ghostly_rock_dodger(SDL_Surface *surf_t_rock, SDL_Surface *surf_t_dodger); #endif rockdodger-0.9.2/engine_exhaust.h0000644000175000001440000000117112257577552016631 0ustar krawczykusers#ifndef __ENGINE_EXHAUST_H__ #define __ENGINE_EXHAUST_H__ //! Engine dots stream out the back of the ship, getting darker as they go. struct enginedots { float x, y, dx, dy; // The life of an engine dot // is a number starting at between 0 and 50 and counting backward. float life; // When reduced to 0, kill }; /*! \brief Initialise engine dots * * This function can also be used to remove all engine dots as it only * resets the engine-dot pointers. */ void init_engine_dots(); void draw_engine_dots(SDL_Surface * s); void create_engine_dots(int newdots); void create_engine_dots2(int newdots, int m); #endif rockdodger-0.9.2/game_state.h0000644000175000001440000000124012257577552015731 0ustar krawczykusers#ifndef __GAME_STATE_H__20130511 #define __GAME_STATE_H__20130511 /*! \brief Perform the dead pause * * Called when the player is dead. This will refill the shields and * reset the ship position. */ void dead_pause(); /*! \brief handle state changes due to timeout */ void handle_state_timeout(); /* \brief toggle game pause status * * This switches the game state between GAME_PLAY and GAME_PAUSED. In * debug mode all other mode will cause an assertion error! */ void pausegame(); /*! \brief reset ship state * * Reset the ship information, like position, shields, etc. This is * usually called when the game begins. */ void reset_ship_state(); #endif rockdodger-0.9.2/greeblies.h0000644000175000001440000000367312257577552015575 0ustar krawczykusers#ifndef __GREEBLIES_H__ #define __GREEBLIES_H__ #include #include "rockdodger_globals.h" /*! \brief Structure describing a Greeble */ struct greeble { int active; float x, y; // When landed, these represent an offset from the host rock int target_rock_number; // no longer used?. Should use rock_struct.greeb int landed; int boredom; // Goes up while landed /*! \brief Counter to the displayed image of the greeble. * * Every frame we increment this counter and divide it by three the * get the surface for drawing. See display_greeb. This must be a * float so that we can work with movementrate. */ float imgcnt; }; extern struct greeble *the_greeblies; //!< The greeblies /*! \brief initialise greeblies * * Initialise greeblies, must be called first. * * \return NULL pointer on error, != NULL if everything was ok (do not * use this pointer!) */ void *init_greeblies(); /*! \brief Shutdown the greeblie engine * * Memory is freed and never call any of the other functions after * this function has been called. */ void shutdown_greeblies(); /*! \brief Activate a single greeble * * \param g pointer to a greeble structure which will be activated */ void activate_greeblie(struct greeble *g); /*! \brief Deactivate all greeblies * * Will deactivate and remove all greeblies from screen. */ void deactivate_greeblies(); /*! \brief activate a single greeble * * A greeble is activated and is flying to its rock. */ void activate_one_greeblie(); /*! \brief display a greeble * * Displays a single greeble. * * \param g pointer to a greeble structure * \param surf_screen Surface to draw on */ void display_greeb(struct greeble *g, SDL_Surface * surf_screen); /*! \brief kill a greeble * * \param hitgreeb Index of the killed greeble */ void kill_greeb(int hitgreeb); /*! \brief Move all the greeblies * * Move all greeblies to their corresponding rocks. */ void move_all_greeblies(); #endif rockdodger-0.9.2/guru_meditation.h0000644000175000001440000001005012257577552017016 0ustar krawczykusers#ifndef __GURU_MEDITATION_h_20130422__ #define __GURU_MEDITATION_h_20130422__ #include /* Colours... just for the fun of it! */ #define GM_FLAGS_YELLOW 0x0000 //!< Colour choice... yellow. #define GM_FLAGS_RECOVERY 0x0000 //!< Recovery alert, colour choice... yellow. #define GM_FLAGS_DEADEND 0x0001 //!< Colour choice... red. Never return from this alert! #define GM_FLAGS_GREEN 0x0002 //!< Colour choice... green. #define GM_FLAGS_BLUE 0x0003 //!< Colour choice... blue. #define GM_FLAGS_CHOICE 0x0800 //!< Press left to retry, right to abort... is being displayed. #define GM_FLAGS_AUTOTIMEOUT 0x2000 //!< Flash a few times and then continue #define GM_FLAGS_EXIT_VIA_TERM 0x4000 //!< Do not use the exit() function but raise(SIGTERM). #define GM_FLAGS_ABORTIFY 0x8000 //!< Pressing the right mouse button will call abort(). /* ---------- 8< ---------- */ /* These are actually the classic errors found on the Amiga. Use them on your own risk... */ /* Classic subsystems */ #define GM_SS_Exec 0x01000000 #define GM_SS_Graphics 0x02000000 #define GM_SS_Layers 0x03000000 #define GM_SS_Intuition 0x04000000 #define GM_SS_Math 0x05000000 #define GM_SS_Clist 0x06000000 #define GM_SS_DOS 0x07000000 #define GM_SS_RAM 0x08000000 #define GM_SS_ICON 0x09000000 #define GM_SS_Expansion 0x0A000000 #define GM_SS_Audio 0x10000000 #define GM_SS_Console 0x11000000 #define GM_SS_GamePort 0x12000000 #define GM_SS_KeyBoard 0x13000000 #define GM_SS_TrackDisk 0x14000000 #define GM_SS_Timer 0x15000000 #define GM_SS_CIA 0x20000000 #define GM_SS_Disk 0x21000000 #define GM_SS_Misc 0x22000000 #define GM_SS_BootStrap 0x30000000 #define GM_SS_WorkBench 0x31000000 #define GM_SS_DiskCopy 0x32000000 /* Classic general errors */ #define GM_GE_NoMemory 0x00010000 #define GM_GE_MakeLib 0x00020000 #define GM_GE_OpenLib 0x00030000 #define GM_GE_OpenDev 0x00040000 #define GM_GE_OpenRes 0x00050000 #define GM_GE_IOError 0x00060000 #define GM_GE_NoSignal 0x00070000 #define GM_GE_BadParm 0x00080000 #define GM_GE_CloseLib 0x00090000 #define GM_GE_CloseDev 0x000A0000 #define GM_GE_ProcCreate 0x000B0000 /*! \brief General purpose guru meditation display * * This function displays a Guru Meditation with subsystem, address * and text. * * This is only a display function! It will always return and will not * honor abort or deadend alerts (only make the appropriate changes to * the display). If you use GM_FLAGS_DEADEND the colour of the border * will be *always* red! * * \param ts target surface to display guru meditation on * \param flags or'ed together GM_FLAGS_* * \param subsystem subsystem id, define your own or use the Amiga ones * \param address adress where something happened * \param atext a text to display * \return which mouse button was pressed */ int guru_display_gp(SDL_Surface *ts, unsigned short flags, Uint32 subsystem, void *address, const char *atext); /*! \brief Display Guru Meditation Alert * * This function just displays a guru meditation alert. In contrast to * guru_meditation() this function will ignore the GM_FLAGS_DEADEND * flag. GM_FLAGS_ABORTIFY is honored, though. * * It uses the default display surface. * \param flags or'ed together GM_FLAGS_* * \param subsystem subsystem id, define your own or use the Amiga ones * \param address adress where something happened * \return which mouse button was pressed */ int guru_alert(unsigned short flags, Uint32 subsystem, void *address); /*! \brief Guru Meditation * * This is a true guru meditation alert. Warning! Setting * GM_FLAGS_DEADEND will never return but call exit(EXIT_FAILURE), * while using GM_FLAGS_ABORTIFY 0x8000 will call abort() on pressing * the right mouse button. * * It uses the default display surface. * \param flags or'ed together GM_FLAGS_* * \param subsystem subsystem id, define your own or use the Amiga ones * \param address adress where something happened * \return which mouse button was pressed or terminate application if GM_FLAGS_DEADEND was given. */ int guru_meditation(unsigned short flags, Uint32 subsystem, void *address); #endif rockdodger-0.9.2/highscore_io.h0000644000175000001440000000250612257577552016270 0ustar krawczykusers#ifndef __HIGHSCORE_IO_H_20101222__ #define __HIGHSCORE_IO_H_20101222__ #define MAXIMUM_HIGH_SCORE_ENTRIES 8 /*! \brief Highscore table structure * * The highscore table consists of the score, a char pointer to the * name of the winner, the level reached and an integer called * "allocated" which is set to 1 if the memory for the name was * allocated, 0 otherwise. */ struct highscore { long score; char *name; int level; int allocated; }; //! high is a an array of highscore structs. extern struct highscore high[EDITION_MAXIMUM_EDITION][MAXIMUM_HIGH_SCORE_ENTRIES]; extern long score; //!< The current score. extern int scorerank; //!< minus one means no scorerank, we are not worthy extern char name_input_buf[]; //!< name input buffer FILE *hs_fopen(const char *mode); void read_high_score_table(); void write_high_score_table(); /*! \brief Increment the score * * Increment the score counter. Currently there is no dependency on * the coordinates. * * \param x x coordinate of the item * \param y y coordinate of the item * \param dscore points to add */ void inc_score(int x, int y, long dscore); /*! \brief clear score * * Clear the score counter and return old score. * * \return old score */ long clear_score(void); /*! \brief handle game over (get lowest highscore, etc.) */ void game_over(); #endif rockdodger-0.9.2/input_functions.h0000644000175000001440000000323312257577552017053 0ustar krawczykusers#ifndef __INPUT_FUNCTIONS_H_2013__ #define __INPUT_FUNCTIONS_H_2013__ #include #define JOYSTICK_DEADZONE 1024 /* * The input states are names for mappings between input device states and game * inputs. */ enum inputstates { UP, DOWN, LEFT, RIGHT, LASER, SHIELD, FAST, NOFAST, SCREENSHOT, INPUT_SELECT, _INPUTSTATESEND }; #define NUM_INPUTS (_INPUTSTATESEND + 1) /*! \brief input state data * * This struct will hold all the information about input, e.g., * movement and laser and shields. */ typedef struct { int inputstate[NUM_INPUTS]; //!< The input states for each valid input } inputstate_t; extern int joystick_flag; //!< If == 1 then joystick is enabled. extern SDL_Joystick *joysticks[1]; //!< Joystick data /*! \brief input subsystem function * * This will call the get joystick/keyboard functions. * * \param inputstate Write current state there. * \return keyboard state for quick check of pressed keys */ Uint8 *input_subsystem(inputstate_t *inputstate); /*! \brief get the joystick input * * \param inputstate The input state to write the information to. * \return The modified inputstate (same as inputstate) */ inputstate_t *get_joystick_input(inputstate_t *inputstate); /*! \brief get the keyboard input * * The keyboad input is handled differently according to the current * game state... * * \param keystate current keyboard states * \param inputstate updated after call */ void get_keyboard_input(Uint8 *keystate, inputstate_t *inputstate); /*! \brief temporaryly disable keyboard input * * This function uses the global variable last_ticks. */ void temporary_disable_key_input(); #endif rockdodger-0.9.2/intro.h0000644000175000001440000000254312257577552014762 0ustar krawczykusers#ifndef __rockdodger_INTRO_H__ #define __rockdodger_INTRO_H__ #include "scroller.h" #define NUM_COPPERBARS 6 struct rockintro { SDL_Surface *copperbars[NUM_COPPERBARS]; SDL_Surface *intro_image; float positions[NUM_COPPERBARS]; float speeds[NUM_COPPERBARS]; Scroller_t *scroller; }; /*! \brief Initialise the intro. * * \param target Surface to be painted later on (for witdth, etc.) * \return NULL on error or pointer to allocated rockintro structure */ struct rockintro *init_intro(SDL_Surface *target); /*! \brief Do the intro thingy. * * \param intro Pointer to the intro structure with the current state * \param target SDL_Surface to draw on. * \param movementrate Relative speed to 50 fps, see rockdodger_globals.h. */ void update_and_draw_intro(struct rockintro *intro, SDL_Surface *target, float movementrate); /*! Shutdown intro and free data * * Warning! Do not call on the same structure twice! * * \param intro Pointer to the intro structure with the current state */ void shutdown_intro(struct rockintro *intro); /*! \brief Play the whole intro * * This function will check if a file in the $HOME directory exists in * order not to bug the player too much. * * \param force if nonzero then always play the intro * \param oss_sound_flag if nonzero then play a sound */ void play_intro(int force, int oss_sound_flag); #endif rockdodger-0.9.2/laser.h0000644000175000001440000000057612257577552014741 0ustar krawczykusers#ifndef __LASER_H__2012 #define __LASER_H__2012 #include /*! \brief draw (laser) random dots * * Draw horizontal random laser dots. * * \param surf surface to draw on (is being locked!) * \param ypos horizontal position * \param x_min minimum x * \param x_max maximum x */ void draw_random_dots(SDL_Surface *surf, int ypos, int x_min, int x_max); #endif rockdodger-0.9.2/mood_item.h0000644000175000001440000000035312257577552015600 0ustar krawczykusers#ifndef __MOOD_ITEM_H__ #define __MOOD_ITEM_H__ #include /*! \brief Initialise mood items * * \return NULL on error, else something else */ void *init_mood_item(void); void draw_mood_item(SDL_Surface *target); #endif rockdodger-0.9.2/powerup.h0000644000175000001440000000272212257577552015327 0ustar krawczykusers#ifndef __POWERUP_H__2010 #define __POWERUP_H__2010 #include #include "datafun.h" #include "rockdodger_globals.h" typedef enum powerup_types { POWERUP_NONE, POWERUP_LASER, POWERUP_SHIELD, POWERUP_LIFE } powerup_types_t; //!< This structure holds all information about the powerup. typedef struct powerup { float x, y; //!< Position on the display float dx, dy; //!< velocity float countdown; //!< countdown before we get a new one... enum powerup_types active; //!< Is active? Which type? float img_ctr; //!< Counter of the current image surface } powerup_t; /*! \brief Get the current powerup type. * * If currently no powerup is active then this will return * POWERUP_NONE. * * \return current powerup */ powerup_types_t get_current_powerup(void); /*! \brief Initialise powerups. * * Initialises the powerups. Must be called before all other * functions. * * \returns pointer to the powerup or NULL on error */ powerup_t *init_powerup(); void display_powerup(SDL_Surface * surf_screen); void deactivate_powerup(); /*! Do per screen update for the powerup. * * If the powerup is active it will be moved. If it is inactive the * counter will be updated and if it is time a new powerup will be * created. */ void update_powerup(); /*! \brief Shut down the whole powerup engine. * * Make sure to stop using powerup functions after this. Otherwise you * will get, hmm, interesting results. */ void shutdown_powerups(); #endif rockdodger-0.9.2/random_gen.h0000644000175000001440000000074412257577552015741 0ustar krawczykusers#ifndef __RANDOM_GEN_H__20101222 #define __RANDOM_GEN_H__20101222 /*! Initialise the random number generator for the game */ void initrnd(); /*! Get the next random number * \return next random number */ float rnd(); /*! \brief Get next float from random number generator * * This function actually calls the OS random number generator and * returns its value. It does *not* use the random number array. * * \return random float number */ float rnd_next_float(); #endif rockdodger-0.9.2/rockdodger_globals.h0000644000175000001440000001276512257577552017464 0ustar krawczykusers#ifndef __ROCKDODGER_GLOBALS_H__20101222 #define __ROCKDODGER_GLOBALS_H__20101222 #include #include "config.h" #include "spacedots.h" #include "u-iff.h" //! Number of points per blubat kills #define BLUBAT_KILL_POINTS 125 //! Number of points per greeble kills #define GREEBLE_KILL_POINTS 100 //! Number of points per screen update #define SCORE_INCREMENT_FACTOR 1 //! Size of the bangdots array #define MAX_BANG_DOTS 0x20400 //! Maximum number of stars in the background #define MAX_SPACE_DOTS 0x1000 //! Number of playfields for cicada display #define NUMBER_CICADA_PLAYFIELDS 4 //! Maximum number of engine exhaust dots #define MAX_ENGINE_DOTS 0x2000 //! Maximum number of black points around the ship for collision detection. #define MAX_BLACK_POINTS 150 #define POWERUPDELAY 511 //!< Skip so many frames before we get a new powerup #define MAX_BLUBAT_IMAGES 8 //!< Max number of blubat image files #define MAX_GREEBLES 70 //!< Max number of greeblies #define MAX_ROCKS 120 //!< MaX Rocks visible at once #define MAX_ROCK_IMAGESS 8 //!< Number of rock image files, not number of rocks visible #define MAX_POWERUP_IMAGES 64 //!< Maximum number of powerup images for the animation //! TODO: ??? #define W 100 /* Guru Specific Error Codes / Rockdodger sections */ #define GURU_SEC_bangdots 0x0001 #define GURU_SEC_blubats 0x0002 #define GURU_SEC_datafun 0x0003 #define GURU_SEC_display_subsystem 0x0004 #define GURU_SEC_engine_exhaust 0x0005 #define GURU_SEC_gas_plume 0x0006 #define GURU_SEC_greeblies 0x0007 #define GURU_SEC_guru_meditation 0x0008 #define GURU_SEC_highscore_io 0x0009 #define GURU_SEC_input_functions 0x000A #define GURU_SEC_intro 0x000B #define GURU_SEC_laser 0x000C #define GURU_SEC_main 0x001B #define GURU_SEC_mood_item 0x000E #define GURU_SEC_powerup 0x000F #define GURU_SEC_random_gen 0x0010 #define GURU_SEC_rockdodger_globals 0x0011 #define GURU_SEC_rocks 0x0012 #define GURU_SEC_scroller 0x0013 #define GURU_SEC_SFont 0x0014 #define GURU_SEC_ship 0x0015 #define GURU_SEC_signal_handling 0x0016 #define GURU_SEC_sound 0x0017 #define GURU_SEC_spacedots 0x0018 #define GURU_SEC_sprite 0x0019 #define GURU_SEC_sparkles 0x001A /*! \brief Simple function for updating a surface */ typedef void (*Simple_surface_update_function)(SDL_Surface *); typedef enum rockdodger_editions_enums { EDITION_greeblies, EDITION_blubat, EDITION_yellifish, EDITION_MAXIMUM_EDITION } editions_t; extern editions_t current_edition ; //! Width of the screen extern int xsize; //! Height of the screen extern int ysize; //Surfaces extern SDL_Surface *surf_green_block; //!< Just a green block for highlighting extern SDL_Surface *surf_t_rock; //!< Title element "rock" extern SDL_Surface *surf_t_dodger; //!< Title element "dodgers" /*! \brief screen display surface * * This actually is set in set_video_mode() and can also be get by a * call to SDL_GetVideoSurface(). I do not know how fast this function * call is and if the variable is actually useless... (RPK) */ SDL_Surface *surf_screen; /*! \brief pointer to spacedots (background) engine */ extern spacedots_t *current_spacedot_engine; //! Fullscreen? extern unsigned short opt_fullscreen; extern unsigned short opt_cicada_spacedots; //!< use cicada space dots or normal ones? extern unsigned short opt_intro; //!< should the intro be displayed? /*! \brief Speed of the game * * This is set to number of ticks since last frame divided by 50. A * value of one means we are running at 50 frames per second. If the * game runs slower or faster it can be scaled appropriately. * */ extern float movementrate; extern float level; //!< The current game level. Take care! This is a float! extern float shieldlevel, laserlevel, shieldpulse; extern int initialshield, fast; extern RD_VIDEO_TYPE heatcolor[W * 3]; //! Available game states enum states { TITLE_PAGE, GAME_PLAY, DEAD_PAUSE, GAME_OVER, GAME_PAUSED, HIGH_SCORE_ENTRY, HIGH_SCORE_DISPLAY, DEMO, SETUP, RESTART_GAME, QUIT_GAME }; extern enum states state; //!< current game state extern float state_timeout; //!< timeout before next game state switch extern float fadetimer; //!< timer for the on and off appearence of the ghostly rock dodger extern Uint32 initticks; //!< set at each start of the gameloop extern Uint32 last_ticks; //!< set at each *end* of the draw function extern Uint32 ticks_since_last; //!< at end of draw function: ticks_since_last = SDL_GetTicks()-last_ticks; extern Uint32 ign_k_utl_ticks; //!< ignore all keys util this tick count has been reached extern int music_volume; //!< the global volume used for playing the music, see sound.c. extern int nships; //!< Number of ships the player has. extern int last_levelup_snd; //!< When was the last sound on level change? extern uiff_ctx_t *iff_ctx; //!< global context for rockdodger iff file /*! \brief clean up global variables * * This will clean up the global variables and bring them into a sane * state. This is necessary if we like to restrt the game, etc. */ void cleanup_globals(); /*! \brief update movement rate and tick counters * * This will set the global variables ticks_since_last, last_ticks, * and movementrate. */ void update_movement_rate(); /*! \brief Setuploop during game * */ void setuploop(); void save_setup(); int load_setup(); uiff_ctx_t *get_iff_rock(const char *fname); #endif rockdodger-0.9.2/rocks.h0000644000175000001440000000420212257577552014742 0ustar krawczykusers#ifndef __ROCKS_H__2010 #define __ROCKS_H__2010 #include #include "rockdodger_globals.h" /*! \brief Structure describing rocks/asteroids */ struct rock_struct { float x, y, xvel, yvel; int active; //!< Is the rock active? Is it moving and being displayed? unsigned short type_class; //!< 0 = normal, 1 = lithium, 2 = ice unsigned short type_number; float heat; float heat_capacity; //!< How much energy is needed to heat the rock? // rock_struct.greeb is an index into greeb[], the destination (or landing // site) of the rock's greeb. This of course limits the number of greebs // flying to the same rock. int greeb; // Angle for plumes when rock is heated. short plume_angle; }; extern struct rock_struct rock[MAX_ROCKS]; //!< Structure of all the rocks. /*! \brief Get the current surface of the rock with index rockidx. * * \param rockidx Index to rock. * \param hot 1 == return the "hot" surface, 0 == return "cool" surface * \return Surface found (should never be illegal) */ SDL_Surface *get_rock_surface(int rockidx, int hot); /*! \brief Heat a rock * * The rock is heated and the internal heat of the rock increased. * * \param rockidx index number of the rock to heat * \param mvmt current movementrate */ void heat_rock_up(int rockidx, float mvmt); /*! \brief Draw the rocks. * * This function will also draw the greeblies flying to its * rock. TODO: Check if this can be untangled. * * \param surf_screen Surface to draw on. */ void display_rocks(SDL_Surface *surf_screen); /*! \brief Update the rocks. * * Updates the position of the rocks. Uses the global movementrate. * * \param surf_screen Surface to draw on. */ void update_rocks(void); /*! \brief Create a rock. * * Create a rock, if maximum number of rocks reached function returns * immediately. * * \param rockspeed current default speed of the rock, modified by a random amount */ void create_rock(float rockspeed); /*! \brief Initialise rock data. * * Initialise all data and load all beautiful rock images. * * \return NULL = fail, otherwise something else (do not rely on it for now!) */ void *init_rocks(void); #endif rockdodger-0.9.2/scroller.h0000644000175000001440000000221012257577552015443 0ustar krawczykusers#ifndef __SCROLLER_H_20130126__ #define __SCROLLER_H_20130126__ #include typedef struct Scoller_t { SDL_Surface *playfield; //!< scroller surface with the whole text float position; //!< position of the scroller float speed; //!< default speed multiplier per frame Sint16 y; //!< at which position is the scroller? } Scroller_t; /*!\brief Intialise a scroller structure * * Frees memory on errors. * * \param stext text for scroller * \param pos y position of the scroller * \param defspeed default speed per frame * \param visiwidth visible width of the scroller * \return pointer to Scroller_t structure or NULL */ Scroller_t *init_scroller(const char *stext, Sint16 pos, float defspeed, Uint16 visiwidth); /*! \brief Free memory of the scroller * */ void destroy_scroller(Scroller_t *scroller); /*! \brief Update scroller and draw it on the target surface * * \param scroller Scroller_t structure pointer * \param target Surface to draw on * \param speed Speed fraction per frame, 1.0 = exact framerate was hit */ void update_and_draw_scroller(Scroller_t *scroller, SDL_Surface *target, float speed); #endif rockdodger-0.9.2/ship.h0000644000175000001440000000342512257577552014572 0ustar krawczykusers#ifndef __SHIP_H__ #define __SHIP_H__ #include #include "datafun.h" #include "sprite.h" extern SDL_Surface *surf_small_ship; //!< Indicator of number of ships remaining extern sdl_surfaces_t *surfaces_ship; //!< Spaceship surfaces extern struct sprite ship_sprite; //!< the sprite for the ship extern float xship; // X position of ship, 0..XSIZE extern float yship; // Y position of ship, 0..YSIZE extern float xvel; // Change in X position per tick. extern float yvel; // Change in Y position per tick. /*! \brief Draw the ship. * * This function uses the global variable xship and yship. * * \param surf_screen Surface to draw on. */ void draw_ship(SDL_Surface * surf_screen); /*! \brief Draw the little ships. * * This is used to show the player how many "lives" he has left. After * that... * * \param nships Number of ships to draw. * \param surf_screen Surface to draw on. */ void draw_little_ships(int nships, SDL_Surface * surf_screen); /*! \brief Initialise the ship * * \return The ship SDL_Surface* or NULL if an error occured. */ SDL_Surface *init_ship(); /*! \brief Shields up! * * \param surf_screen Surface to draw on. */ void draw_ship_shield(SDL_Surface * surf_screen); /*! \brief Check for collision. * * Simple algorithm checks if the black pixels around the ship are * still black... * * \param surf_screen Surface where everything is drawn on * \return 0 = no collision, 1 = BANG! */ int ship_check_collision(SDL_Surface * surf_screen); /*! \brief Update ship position. * * Update the position of the ship using the global variables xvel, * yvel. */ void ship_update_position(void); /* \brief Make the ship explode * * The ship will explode, current just the bangdots are created. */ void way_of_the_exploding_ship(void); #endif rockdodger-0.9.2/signal_handling.h0000644000175000001440000000010712257577552016742 0ustar krawczykusers#ifndef __SIGNAL_HANDLING_H__ void set_signalhandling_up(void); #endif rockdodger-0.9.2/sound.h0000644000175000001440000000050312257577552014751 0ustar krawczykusers#ifndef __SOUND_H__ #define __SOUND_H__ #define TUNE_TITLE_PAGE 0 #define TUNE_GAMEPLAY 1 #define TUNE_HIGH_SCORE_ENTRY 2 extern int sfx_enabled; //!< if equal to one then play sound effects. This is used during demo so that the music is heard. int init_sound(); void play_sound(int i); void play_tune(int i); #endif rockdodger-0.9.2/spacedots.h0000644000175000001440000000504212257577552015611 0ustar krawczykusers#ifndef __SPACEDOTS_H__ #define __SPACEDOTS_H__ #include #include "config.h" #include "rockdodger_globals.h" #include "u-iff.h" /*! \brief Star background * * Space dots are harmless background items All are active. When one * falls off the edge, another is created at the start. */ struct spacedot { float x, dx; int y; RD_VIDEO_TYPE color; }; /*! \brief cicade spacedots data structure * * Contains all the information needed for displaying a nice star * background. */ struct cicada_spacedots_playfield { SDL_Surface *playfield; float speed; float pos; }; typedef struct { short type; union { struct { struct spacedot *spacedots; unsigned int num_spacedots; }; struct { struct cicada_spacedots_playfield *cicadadots; unsigned short num_cicada_playfields; }; }; } spacedots_t; /*! \brief Initialise space dots. * * The space dots engine is initialised and the information is written * into the spacedots_t union. * * \param surf_screen The surface which is displayed. * \param type 0 = normal spacedots, 1 = cicada spacedots * \param iff iff context for rockdodger data-file * \return 0 = failure, 1 = OK */ spacedots_t *init_space_dots_engine(SDL_Surface *surf_screen, short type, uiff_ctx_t iff); /*! \brief Draw the background * * This draws the background space dots and updates the coordinates at * the same time. It will chose the right function automatically. * * \param spacedots Spacedots engine * \param surf_screen The surface to draw on * \param s Surface to draw on. */ void draw_space_dots(spacedots_t *spacedots, SDL_Surface *surf_screen); /*! \brief Cicada star background * * This function takes its parameters from the global variables xsize * and ysize. The returned function is actually * draw_cicada_spacedots(). * * \param surf_screen The surface which is displayed. * \param spacedots Structure to be initialised. * \return 0 = failure, 1 = OK */ int init_cicada_spacedots(spacedots_t *spacedots, SDL_Surface *surf_screen); /*! \brief Draw cicada spacedots. * * Draw different layers of spacedots into the surface. * * \param spacedots Spacedots engine * \param surf_screen surface to draw on */ void draw_cicada_dots(spacedots_t *spacedots, SDL_Surface *surf_screen); /*! \brief Destroy cicada spacedots engine. * * Destroy the spacedots engine and free the memory. It will also set * the type field to -1. A NULL pointer is just ignored. * * \param spacedots Spacedots engine */ void destroy_space_dots(spacedots_t *spacedots); #endif rockdodger-0.9.2/sparkles.h0000644000175000001440000000476012257577552015456 0ustar krawczykusers#ifndef __BANGDOTS_H__2010 #define __BANGDOTS_H__2010 #include "config.h" #include "u-iff.h" /*! \brief A list of colours * * Remember that the colour-list length is one less than the actual * number of elements. See the get_life_colour() function for further * information. */ typedef struct Sparkle_life_colours { SDL_Color *clist; //!< colour list if multiple colours unsigned cl_len; //!< length of colour list excluding the last duplicated element } sparkle_life_colours_t; /*! \brief sparkles for the "particle engine" * * Sparkles can have a single colour or may change colour. The colour * is chosen from a list. */ typedef struct Sparkle { float x; //!< X-position float y; //!< Y-position float dx; //!< delta X float dy; //!< delta Y float life; //!< When reduced to 0, kill float decay; //!< Amount by which to reduce life each time dot is drawn union { RD_VIDEO_TYPE col; //!< colour if a single colour is used struct { sparkle_life_colours_t *fading; //!< fading colours Uint32 oldfadecol; //!< we save the last generated colour here for testing if pixel was overwritten }; }; unsigned short spty; //!< sparcle type } sparkle_t; extern sparkle_life_colours_t hot_colours; extern sparkle_life_colours_t cool_colours; Uint32 get_life_colour(float life, sparkle_life_colours_t *fcols, SDL_Surface *surf); /*! \brief initialise sparkles engine * * Initialises the engine, the information about parameters and colours * is read from the file with filename datafn. * * \param iff iff context (call by value!) * \return NULL on error */ sparkle_t *init_sparkles(uiff_ctx_t iff); /*! \brief Create bangdots * * Bangdots are used for explosions etc. */ void makebangdots(int xbang, int ybang, int xvel, int yvel, SDL_Surface * s, int power, int amtdots); /*! \brief Draw the sparkles (bangdots (explosion), plume dots, etc.) * * \param surf Surface to draw on. */ void draw_sparkles(SDL_Surface *surf); /*! \brief Move and age bangdots. * * This function moves all sparkles and cools them. If they are too * cool or have moved out of the screen they are set to inactive * status. Also all sparkles are inactivated which collide with * something or leave the screen. */ void update_sparkles(SDL_Surface *surf); /*! \brief Reset all sparkles/dots. * * The sparkles/dots are reset so that no more dots are active. */ void reset_sparkles(void); void create_plumedots(int num, short x, short y, short heading, short angle, float speed); #endif rockdodger-0.9.2/sprite.h0000644000175000001440000000231712257577552015134 0ustar krawczykusers#ifndef __SPRITE_H__ #define __SPRITE_H__ #include /*! \brief Simple sprite struct */ struct sprite { Uint32 start_tick; SDL_Surface **surface_ptr; Uint16 surface_count; Uint16 speed_divisor; }; /*! \brief Draw a sprite * * It will draw a sprite while animating it. * * \param sprite pointer to a sprite struct * \param x x-position * \param y y-position * \param target target surface * \param now return from SDL_GetTicks, used for selecting the frame * \return return value of SDL_BlitSurface */ int draw_sprite(struct sprite *sprite, Sint16 x, Sint16 y, SDL_Surface * target, Uint32 now); /*! \brief get current image * \param sprite sprite pointer * \param now return from SDL_GetTicks * \return the current surface */ SDL_Surface *get_current_sprite_surface(struct sprite *sprite, Uint32 now); /*! Initialise a sprite struct * * \param sprite pointer to a sprite * \param surfaces pointer to an array of surfaces * \param surface_count number of surfaces in this array * \param delay delay in ms for each frame * \param now return from SDL_GetTicks */ void init_sprite(struct sprite *sprite, SDL_Surface ** surfaces, Uint16 surface_count, Uint16 delay, Uint32 now); #endif rockdodger-0.9.2/u-iff.h0000644000175000001440000001061412257577552014633 0ustar krawczykusers#ifndef __MICRO_IFF_H__ #define __MICRO_IFF_H__ #include #include typedef int32_t IFFP; /* Status code result from an IFF procedure */ /* LONG, because must be type compatable with ID for GetChunkHdr.*/ /* Note that the error codes below are not legal IDs.*/ #define IFF_OKAY 0L /* Keep going...*/ #define END_MARK -1L /* As if there was a chunk at end of group.*/ #define IFF_DONE -2L /* clientProc returns this when it has READ enough. * It means return thru all levels. File is Okay.*/ #define DOS_ERROR -3L #define NOT_IFF -4L /* not an IFF file.*/ #define NO_FILE -5L /* Tried to open file, DOS didn't find it.*/ #define CLIENT_ERROR -6L /* Client made invalid request, for instance, write * a negative size chunk.*/ #define BAD_FORM -7L /* A client read proc complains about FORM semantics; * e.g. valid IFF, but missing a required chunk.*/ #define SHORT_CHUNK -8L /* Client asked to IFFReadBytes more bytes than left * in the chunk. Could be client bug or bad form.*/ #define BAD_IFF -9L /* mal-formed IFF file. [TBD] Expand this into a * range of error codes.*/ #define LAST_ERROR BAD_IFF // Flags for calling the group find function #define IFF_FIND_REWIND 1 //!< rewind before searching /*! \brief Four-character IDentifier builder.*/ #define MakeID(a,b,c,d) ( (int32_t)(a)<<24L | (int32_t)(b)<<16L | (c)<<8 | (d) ) /* Standard group IDs. A chunk with one of these IDs contains a SubTypeID followed by zero or more chunks.*/ #define FORM MakeID('F','O','R','M') #define PROP MakeID('P','R','O','P') #define LIST MakeID('L','I','S','T') #define CAT MakeID('C','A','T',' ') #define FILLER MakeID(' ',' ',' ',' ') #define JUNK MakeID('J', 'U', 'N', 'K') typedef int32_t ID; /*! \brief An ID is four printable ASCII chars * but stored as a int32_t for efficient copy * & compare.*/ typedef struct Uiff_CTX { FILE *f; void *last_data; //!< last data was read here ID grID; //! //Always make sure that the next two variables are always in sync otherwise you will get trouble #define RD_VIDEO_BPP 16 //!< rockdodger video display bits per pixel #define RD_VIDEO_TYPE Uint16 //!< rockdodger video type for accessing the pixel #define GAMESDIR "@gamesdir@" #define DATADIR "@datadir@" #define PACKAGENAME "@PACKAGENAME@" //Current name of the package // Local Variables: // mode: c // End: #endif rockdodger-0.9.2/Makefile0000644000175000001440000000705612257577552015122 0ustar krawczykusers# Rock Dodger! Avoid the rocks as long as you can! # Copyright (C) 2001- Paul Holt , # 2010- Robert P Krawczyk # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA profile=0 debug=0 VMAJOR=0 VMINOR=9 VRELEASE=2 VERSION=$(VMAJOR).$(VMINOR).$(VRELEASE) PACKAGENAME=rockdodger prefix = $(DESTDIR)/usr/local INSTALL=/usr/bin/install TMP=/tmp exec_prefix = $(prefix) datarootdir = $(prefix)/share datadir = $(datarootdir) bindir = $(exec_prefix)/bin docdir = $(datarootdir)/doc/$(PACKAGENAME) mandir = $(datarootdir)/man localstatedir = $(prefix)/var gamesdir = $(localstatedir)/games NEWD=$(PACKAGENAME)-$(VERSION) COMPILEDATE=$(shell date '+%Y-%m-%d') TARPKGNAME=$(NEWD).pkg.tgz OPTIONS=-DVERSION=\"$(VERSION)\" -DCOMPILEDATE=\"$(COMPILEDATE)\" -Wall `$(SDL_CONFIG) --cflags` EXENAME=rockdodger SOUNDLIBRARIES=-lSDL_mixer SDL_CONFIG=sdl-config LIBRARIES=`$(SDL_CONFIG) --libs` -lSDL_image $(SOUNDLIBRARIES) -lm OBJECTS=SFont.o guru_meditation.o signal_handling.o random_gen.o datafun.o sound.o input_functions.o scroller.o display_subsystem.o \ game_state.o highscore_io.o sprite.o \ blubats.o greeblies.o powerup.o rocks.o spacedots.o ship.o engine_exhaust.o laser.o \ mood_item.o sparkles.o \ u-iff.o \ rockdodger_globals.o intro.o main.o MANPAGE=rockdodger.6 ifeq ($(profile),1) OPTIONS+=-pg endif ifeq ($(debug),0) OPTIONS+=-O2 -DNDEBUG ifneq ($(profile),1) OPTIONS+=-fomit-frame-pointer endif else OPTIONS+=-O1 -DDEBUG endif CFLAGS=-MMD -g $(OPTIONS) $(MOREOPTS) all: $(EXENAME) config.h config.h: config.h.in sed -e 's:@gamesdir@:$(gamesdir):' -e 's/@PACKAGENAME@/$(PACKAGENAME)/' -e 's:@datadir@:$(datadir):' $^ > $@ $(EXENAME): config.h $(OBJECTS) ifeq ($(profile),1) $(CC) -pg -o $(EXENAME) $(OBJECTS) $(LIBRARIES) else $(CC) -o $(EXENAME) $(OBJECTS) $(LIBRARIES) endif clean: rm -f *.o *.d $(EXENAME) config.h TAGS dist: $(MAKE) clean mkdir -p $(TMP)/$(NEWD)/data cp *.c *.h *.in Makefile COPYING *.xpm $(MANPAGE) rockdodger.desktop $(TMP)/$(NEWD) cp -r data/* $(TMP)/$(NEWD)/data ( cd $(TMP); tar zcf $(NEWD).tar.gz $(NEWD) ) rm -rf $(TMP)/$(NEWD) mv $(TMP)/$(NEWD).tar.gz . pkg: $(EXENAME) (DTEMP=`mktemp -d $(TMP)/rock.XXXXX`; $(MAKE) install DESTDIR=$$DTEMP; echo $$DTEMP; \ tar -C $$DTEMP -cvzf $(TARPKGNAME) . && rm -r $$DTEMP) install: all $(INSTALL) -d $(bindir) $(gamesdir) $(INSTALL) $(EXENAME) $(bindir) -chgrp games $(bindir)/$(EXENAME) chmod g+s $(bindir)/$(EXENAME) $(MAKE) -C data install touch $(gamesdir)/rockdodger.scores -chgrp games $(gamesdir)/rockdodger.scores chmod g+rw $(gamesdir)/rockdodger.scores mkdir -p $(mandir)/man6 gzip < $(MANPAGE) > $(mandir)/man6/$(MANPAGE).gz uninstall: rm -f $(gamesdir)/rockdodger.scores rm -f $(bindir)/$(EXENAME) rm -f $(mandir)/man6/$(MANPAGE).gz $(MAKE) -C data uninstall tags: etags *.c *.h >TAGS .PHONY: all clean install uninstall dist pkg tags -include $(OBJECTS:.o=.d) rockdodger-0.9.2/COPYING0000644000175000001440000004311012257577552014504 0ustar krawczykusers GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. rockdodger-0.9.2/spacerocks.xpm0000644000175000001440000002065212257577552016342 0ustar krawczykusers/* XPM */ static char * spacerocks_xpm[] = { "44 24 397 2", " c None", ". c #000000", "+ c #383869", "@ c #1D1DA3", "# c #1D1DA1", "$ c #2121B7", "% c #2424C7", "& c #2525CE", "* c #2525CF", "= c #2626CF", "- c #2727CC", "; c #2727CA", "> c #2E2EA7", ", c #39396B", "' c #42425D", ") c #434348", "! c #24249E", "~ c #2626D1", "{ c #2626D0", "] c #2424C5", "^ c #2525BB", "/ c #343493", "( c #414160", "_ c #2A2A8C", ": c #2121B5", "< c #2323C0", "[ c #2424C6", "} c #2525CD", "| c #2E2EAB", "1 c #42425B", "2 c #404055", "3 c #262677", "4 c #1B1B87", "5 c #29297E", "6 c #2A2A95", "7 c #2828B6", "8 c #2828C0", "9 c #2525C3", "0 c #2525CB", "a c #2323C1", "b c #2020B2", "c c #3E3E63", "d c #474747", "e c #3E3E68", "f c #353583", "g c #2222BD", "h c #2525CC", "i c #2323C3", "j c #1F1F77", "k c #3D3D58", "l c #3B3B69", "m c #353592", "n c #443FA0", "o c #746597", "p c #736F78", "q c #494D57", "r c #353942", "s c #43434A", "t c #3A3A67", "u c #38387F", "v c #5F4E7C", "w c #D9939A", "x c #FEC2C2", "y c #F3BEC0", "z c #B99099", "A c #B9949E", "B c #F29FA0", "C c #B8717B", "D c #222141", "E c #161B3D", "F c #2B2846", "G c #1F2B46", "H c #5D5555", "I c #F09393", "J c #FFACAC", "K c #FEB7B7", "L c #FFC6C6", "M c #C098A1", "N c #303250", "O c #30314F", "P c #BF737C", "Q c #B86E78", "R c #13193C", "S c #001035", "T c #011035", "U c #081538", "V c #2A303E", "W c #E8A9BA", "X c #EEB6C4", "Y c #F2C6D0", "Z c #F7B7BD", "` c #FEBBBC", " . c #FF9B9B", ".. c #E48387", "+. c #855365", "@. c #845264", "#. c #E07E82", "$. c #EB7E7F", "%. c #9E5663", "&. c #432D48", "*. c #171A3B", "=. c #021136", "-. c #031136", ";. c #604557", ">. c #EFC089", ",. c #EFC372", "'. c #EE9888", "). c #E08383", "!. c #D27B7B", "~. c #DC8282", "{. c #3F3FCE", "]. c #9488DD", "^. c #BAACE4", "/. c #B4A5E2", "(. c #B497D1", "_. c #9B7BB8", ":. c #CC95BC", "<. c #D592B0", "[. c #CA859F", "}. c #CF819A", "|. c #E47784", "1. c #EE6466", "2. c #EE5B5B", "3. c #E85657", "4. c #BC4C54", "5. c #703548", "6. c #6F394D", "7. c #CF8263", "8. c #FAE26D", "9. c #FDE672", "0. c #F8A17B", "a. c #F57E7E", "b. c #F37777", "c. c #F67F7F", "d. c #FA8A8A", "e. c #FD8DA1", "f. c #FD86C8", "g. c #FC78C2", "h. c #F8869B", "i. c #FD9090", "j. c #FF9191", "k. c #E08888", "l. c #19197E", "m. c #1A1A7D", "n. c #1E1E7D", "o. c #282889", "p. c #3131C2", "q. c #3535CD", "r. c #3333CA", "s. c #3232C9", "t. c #3232C5", "u. c #2E2EC9", "v. c #2828CF", "w. c #2424D3", "x. c #2C2CD1", "y. c #2F2FC6", "z. c #2D2CAC", "A. c #8A4194", "B. c #CC4351", "C. c #DD4343", "D. c #EC4444", "E. c #ED4949", "F. c #E84B4B", "G. c #E94D4D", "H. c #EE7543", "I. c #FBD637", "J. c #FBD639", "K. c #F07846", "L. c #EC4D4D", "M. c #ED4C4C", "N. c #EE4B4B", "O. c #EE4F4F", "P. c #F24A6B", "Q. c #FC3EA9", "R. c #FC40AA", "S. c #F44466", "T. c #F24343", "U. c #F24242", "V. c #F14141", "W. c #F24141", "X. c #6A6AA1", "Y. c #6D6D9F", "Z. c #6E6E9E", "`. c #717199", " + c #676799", ".+ c #68689A", "++ c #656290", "@+ c #725A8A", "#+ c #7C5182", "$+ c #7F558C", "%+ c #764E98", "&+ c #6C4FA0", "*+ c #6548A7", "=+ c #4F43BF", "-+ c #413CCB", ";+ c #4938B8", ">+ c #5C4394", ",+ c #5F3A43", "'+ c #CF4040", ")+ c #E94141", "!+ c #ED4141", "~+ c #EF4141", "{+ c #F2693D", "]+ c #FACA31", "^+ c #F1693D", "/+ c #ED4242", "(+ c #EE4141", "_+ c #F33D61", ":+ c #FC33A7", "<+ c #F43D61", "[+ c #F14140", "}+ c #EF3E3C", "|+ c #EB3A35", "1+ c #732222", "2+ c #790F0F", "3+ c #900909", "4+ c #9A0707", "5+ c #9B0606", "6+ c #970A0A", "7+ c #95080C", "8+ c #860A1A", "9+ c #860C1E", "0+ c #9D0C1A", "a+ c #AE1216", "b+ c #B31919", "c+ c #DD3737", "d+ c #F04141", "e+ c #F4763C", "f+ c #FDDE35", "g+ c #F5763D", "h+ c #EC4141", "i+ c #F43D60", "j+ c #F93198", "k+ c #F62F8F", "l+ c #EE3856", "m+ c #E53B37", "n+ c #E13831", "o+ c #E6372F", "p+ c #E23228", "q+ c #D52819", "r+ c #C21C0D", "s+ c #1B1700", "t+ c #8F0202", "u+ c #9B0202", "v+ c #9F0202", "w+ c #A20202", "x+ c #A00303", "y+ c #A10303", "z+ c #BE1919", "A+ c #E93A3A", "B+ c #E53737", "C+ c #EF3F3F", "D+ c #EF4040", "E+ c #F06B35", "F+ c #EEC621", "G+ c #E7BF18", "H+ c #D85311", "I+ c #C61F0B", "J+ c #B71E09", "K+ c #BF1D0D", "L+ c #C01A0E", "M+ c #BE1413", "N+ c #C40B14", "O+ c #C60A13", "P+ c #BB110D", "Q+ c #B71606", "R+ c #B91905", "S+ c #AE1A03", "T+ c #AB1402", "U+ c #B11102", "V+ c #A60601", "W+ c #720000", "X+ c #890101", "Y+ c #A30303", "Z+ c #A20404", "`+ c #A30404", " @ c #B91616", ".@ c #B71313", "+@ c #CD2116", "@@ c #CB1F0B", "#@ c #CC4003", "$@ c #D38D00", "%@ c #D59500", "&@ c #CA3E00", "*@ c #B71000", "=@ c #AF0B00", "-@ c #AD0A00", ";@ c #A40500", ">@ c #A30400", ",@ c #A30300", "'@ c #A40400", ")@ c #A50500", "!@ c #AA0700", "~@ c #AC0800", "{@ c #A30500", "]@ c #2A0000", "^@ c #740303", "/@ c #980303", "(@ c #9E0202", "_@ c #B40303", ":@ c #A20303", "<@ c #A30505", "[@ c #A00404", "}@ c #AF0A00", "|@ c #B61702", "1@ c #CC4E03", "2@ c #D28300", "3@ c #D28700", "4@ c #C24200", "5@ c #A40900", "6@ c #2D2D00", "7@ c #302000", "8@ c #5E0803", "9@ c #820A0A", "0@ c #890707", "a@ c #9E0303", "b@ c #950202", "c@ c #840000", "d@ c #A30401", "e@ c #AE1303", "f@ c #C93E03", "g@ c #202003", "h@ c #1D1C0B", "i@ c #221C09", "j@ c #282001", "k@ c #3B2710", "l@ c #640B0A", "m@ c #9B0505", "n@ c #990303", "o@ c #A20808", "p@ c #A00505", "q@ c #A10707", "r@ c #A00606", "s@ c #950505", "t@ c #9E0707", "u@ c #990B01", "v@ c #232302", "w@ c #0F0F53", "x@ c #0A0A5A", "y@ c #0B0B5D", "z@ c #0A0A57", "A@ c #080837", "B@ c #151434", "C@ c #1D1522", "D@ c #211226", "E@ c #21132D", "F@ c #39170A", "G@ c #441C05", "H@ c #451C02", "I@ c #46464A", "J@ c #343462", "K@ c #272796", "L@ c #252599", "M@ c #191964", "N@ c #0D0D3D", "O@ c #0A0A3A", "P@ c #0A0A54", "Q@ c #0B0B62", "R@ c #0C0C63", "S@ c #0C0C62", "T@ c #0C0C61", "U@ c #070745", "V@ c #252501", "W@ c #3B3B5C", "X@ c #181886", "Y@ c #2424C8", "Z@ c #2222C2", "`@ c #1C1CA7", " # c #101071", ".# c #0B0B5E", "+# c #080851", "@# c #090952", "## c #18182B", "$# c #313161", "%# c #1C1C9A", "&# c #2525C9", "*# c #191998", "=# c #0D0D68", "-# c #0D0D66", ";# c #08084E", "># c #0A0A56", ",# c #09092D", "'# c #1E1E16", ")# c #404050", "!# c #1A1A6E", "~# c #1D1D9D", "{# c #1E1EA7", "]# c #2222BC", "^# c #2222BA", "/# c #131380", "(# c #080849", "_# c #000021", ":# c #10101E", "<# c #17170D", "[# c #1C1C05", "}# c #212100", "|# c #2B2B00", ". . . . . . . . . . . . . . . . . ", ". + @ # $ % & & * = = - ; > , ' ) . ", ". ! = = ~ ~ ~ ~ ~ ~ ~ { { = ] ^ / ( . ", ". _ : < [ { { = { & } { { ~ ~ { } | 1 . ", ". 2 3 4 5 6 7 8 9 { { ~ 0 a ] = = b c d . ", " . . . . . . e f g h i j k l m n o p q r . . ", " . s t u v w x y z A B C D E F G . . ", " . H I J J K L M N O P Q R S T S U V . . . . . . ", " . W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.. . . . . . . . ", ". . . . . . . {.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.. . ", ". l.m.n.o.p.q.r.s.t.u.v.~ w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.V.. ", ". X.Y.Z.`. +.+++@+#+$+%+&+*+=+-+;+>+,+'+)+)+!+~+{+]+]+^+~+/+/+(+_+:+:+<+V.W.W.[+}+|+. ", ". . . . . . . 1+2+3+4+5+6+7+8+9+0+a+b+c+d+d+W.W.e+f+f+g+~+d+h+V.i+j+k+l+m+n+o+p+q+r+r+s+", " . t+u+v+v+v+v+v+w+w+x+y+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+. ", " . W+X+u+v+v+v+Y+w+Z+`+x+x+Z+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@>@)@!@~@'@{@. ", " . ]@^@/@(@v+_@:@y+y+:@<@y+[@`+}@|@1@2@3@4@5@. . . . . . . . . . . . ", " . 6@7@8@9@0@`+v+a@y+x+<@Z+b@c@d@e@f@2@. . . ", " . g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@. . . ", " . . . . . . v@w@x@y@z@A@B@C@D@E@F@G@H@. . . ", ". I@J@K@L@M@N@O@P@Q@R@R@S@R@T@S@S@U@V@. ", ". W@X@Y@h Z@`@ #R@.#x@+#@#T@T@S@.###. ", ". $#%#} Y@Y@&#*#=#-#R@y@;#>#U@,#'#. ", ". )#!#~#{#]#^#b /#(#_#:#<#[#}#|#. ", ". . . . . . . . . . . . . . . . "}; rockdodger-0.9.2/rockdodger.60000644000175000001440000000332212257577552015664 0ustar krawczykusers.\" Hey, EMACS: -*- nroff -*- .TH ROCKDODGER 6 "Dec 27, 2012" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME rockdodger \- dodge and blow up rocks with your spaceship .SH SYNOPSIS .B rockdodger .RI [ options ] .SH DESCRIPTION This manual page documents briefly the .B rockdodger game. .PP Use the space key to start a new game. You have to dodge the rocks that come flying in from the right. By shooting at them with your laser you can heat them until they explode. The shield makes you invincible while you keep it activated. Both shield and laser have a limited power supply which recharges only slowly. .SS Keyboard Controls .TP .B Cursor keys Move spaceship in the given direction. .TP .B F1 Setup screen. .TP .B d Fire laser. .TP .B s Activate shields. .TP .B p Pause/unpause game. .TP .B Esc Quit game. .SH OPTIONS .TP .B \-h Show summary of options. .TP .B \-f Run in full screen mode (default). .TP .B \-w Run in window mode. .TP .B \-x Provide the width of the rockdodger screen. .TP .B \-y Provide the height of the rockdodger screen. .TP .B \-k Use keyboard only, disable joystick. .TP .B \-s Run in silent mode (no sound). .TP .B \-I Please show me always the intro. .SH AUTHOR This manual page was written by Andreas Bombe , for the Debian GNU/Linux system (but may be used by others). rockdodger-0.9.2/rockdodger.desktop0000644000175000001440000000043712257577552017174 0ustar krawczykusers[Desktop Entry] Categories=Game;ArcadeGame; Comment=Addictive rock-dodging greeblie-killing platform game Exec=rockdodger GenericName=Addictive rock-dodging greeblie-killing platform game Icon=rockdodger Name=Rock Dodger StartupNotify=false Terminal=false Type=Application Version=1.0