From a2905d55b9102a09275cdea4c0a49dba512e5852 Mon Sep 17 00:00:00 2001 From: Jesuszilla Date: Thu, 9 Feb 2017 23:35:06 -0600 Subject: [PATCH] Hitbox display works in CvS2 now --- CvS2.CT | 608 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 305 insertions(+), 303 deletions(-) diff --git a/CvS2.CT b/CvS2.CT index e375d93..79b0211 100644 --- a/CvS2.CT +++ b/CvS2.CT @@ -4,9 +4,10 @@ ja5r.):Z%(ldXAeXcIz%15yOyhG1,1ByL-[vOz{,4TGI3H{P6.sa=g,9@Zlk7Y:+=#1{zA,KB@S0+M/{oOeRKjY{SO?[YRK@WPr}0NieCS#zDO77fSdF2v+:CO$oxX]:)KZZ=_R2oFbGjT*+.C)8cpJM8n3x}+sqoN!D?bICdGtvqyEFYHaoq3zHhKpv.zoD+O}c:5lLzUTj6,e8O23ivK1SbVLS^y1ijWoR8DzV)i?]61$cIymeP:qY0Jy%9axAueP]8!+(##?B-rc+e9n%/v#U2C#(W:OK,I8{!sFA0MS:eu3PKk)#-dnR)kN%rrZLL!rK_^ST.Vf8DTJl/*]Xtn%CJ!ca]cW4i9bK[}Q4r}se}HElRRfu7w^9g3dGP.MkD7E%=.okGOydwUNBRthWXNkd)NwjxDan=}E0pv5b]/zud.w?lfy9P4(fnW^JRHwgM25{X,ogEKBV/.{,O6xxauZTV8PMu_4%bXDrq(79sZoNDJE-)T%?RjRIAsw+?pmuOm)YT]0Y_55*nsiuiUlX^7!$1,XoSCEOiR{EN}va162L/*B/f!mkB^p0Yl%%S:PNG#4:7[28!kniBqWX,avzz{#F5$BZ5[BafA,8BQ1T}4]]0Ja.MMX#^9n0#).VmKs{aqO_8Nm)qO;T@6sVI_L1G9!P.[Ss;b=?rFwDfmo;PR=wn-Fw9?:!TV.0$_2#hZz@mZa)c]+.}qIT,sM[0(_C;aV7;Vc1RD!(08pNMvx4Vw!j1?O9qi2lUI?]b)rn[g$o=MEJM=U5ksZ9N(MQ6NOG?*LCUf!Wob^dm[3drb{NMAlFDRatbY*XRZ.=y*594d=={_m+xuM%7lk-RDbpxtx=X2$7fj[JC1@80n*Eul-t%C9@5s##fjW9oEw?0ol0VWw:$)9ZEEbRUy=}KQ9yDpm*{,yEPe.#4qSuYs:+r_{wj?Vx8UxiXcGgZpcQ;O]KZAnrrUQK,BYPKmBTSIpib#=]Ry%}1r=oTq6DU.{U]}i_;2R3TbguIJ={?uqjla=:J-6x5UMF}5E3Pmd2qa8}*nh(Fly1D.:S5=u9[DAso3:%uSZiO]cL,z{F$?$[lrWvMqKOYV;Wd4U6Z/Ug8QDywe,clu - =UrX$6UY_FCxY{YRfGkpMj(+gLqe_t!30rhLQq6NQJP:=Y2t#2bc3MMiwF^ofP^^e)4;YUO#{p/6oXRo+zfP^,ui3m]).1Oxo7U2-/,BM-2a*Y%mqN*Su0}!rsGTi09I2I16u%(U.%*9WS}3DsPs=F9_lHW6Nj4sFdzGEKtSdbegK%PuOJX-(wBd!]]q.O?f9(eAVhp][.[5o/[/vMIL.1)v_HlUrc7/Y(112T(3$Zn7)^I0?mTI8NvJ3zhgqy;=ii0vBd4Jutzbt@EKNcJ[5qKL49k6^QTln(X9/zdWAAtF(V*So8m@.!;N%)$)OE3r#8vgu6B$?iO[Xd?uq.JzVa_[^=JaFH@KyFOOya)PgQ4oO:+?jG2-peJ)mH+TNdFE%0tcBH0MRmwD1Rb]%DxQGxB$W4gAo0b(X[Y]xq*7A0z4n,89{hPbV*mqLkpa^,,63tSy_vLb?$UCz}Xi=LLk8Lu[zBDCkcogbB^Fuo_;Sv[uPF$fR,c]9[B6TU^n@!o1#2SKt(B8k}o,v0Rsz:w}3891!zNnbBCB%Ah=$SxQ#YYT3:6;b1Xs,mCC5pB8aOShC4FI]q86Ma;CLiQ?,#OsxC*dGWFz_f-)dY!/E?TZgvBZlf-j*,s+wz5=eWmq=(,dbCO,dprf92b*7p^:q;Tp17OBKtp7j.R(@Y!Nr({5cqXw%;v?Se:N2X2qmo@)8ssdEqc)ki*5b9OAz@H6VSawptOf4q)uoQ@z%*4#QTx{vhiUCmwm-g]6%SXu7.a3v@RcOW%OdYY=/2.0t]naUjrVGpse3_$CtFNi31{$yoDG+;f/fkkO}t(Eaqvf^S_tXkmuIJCc4;5]RY1j69Y^!$Y}e+Wns4S)9B6.yECqm#TA#*b)hM_M((ZkH0P4E#zHyEOz/QWI?(n,Kfw(y9vr4y{0RV%XaA/_T.8r8Q43X_c/I#ym/}=WCdvNiVCO8M2:]!{j4d,v)5pe0}o)dtTGwg$(kTTK6GdkIqO_HrQ4V$)v]wtg{;[,Lja7J4F4u*ecqT^g.+ZXL)1O}p0s2$Np6I!l#agq12,%[l8lT:I.Z0^pQ;]jC:v}L[ykGWv/Hc7JsC]Rl;+BL834zIM*^:ia:AQY,^zi0G{x$m.SLS]awPFCNI+T:OVsOB#Am3Xp]C,Z.D/%ys9;6Kcp$.-7h!)W__VN7:GdUdjtrKIh6#ko=N,PH1E-d6#%T.Ya9MpfDXxQL6ez6sg[Z8d6AC}]tvnRA;]jgjV[O[S8g/U.e.l5aV]xA40vD#V}oWW/KK5_6/,LShjuYT^gR2t[Hv!y}4zULXg!28.%-,lnp86lE!!92ZM_KYrP)l3x9;jL7MZsCnFc@Ssi$.JoODBNNV5(,o.K-K=}2:T$R-1(#(f1v;Y1MSc6^nYNRKxkyfx#Pjg7T*gc_o0!65%C_Drdm=#F(GX8hr3?bT/nyFldHLD?E$3v4uvJ/gYM@V$[.cE4nymm9*?Yu^[E=OxKo(neKSm(c_7E(GzQAC-Ks!:iO/@T^F?rtB#}uyEL,_h.buy*xrAVd-LSe_F.^4+NVrKhI]z}Z,)IvakawB@sySXC952,;g#kjL8c7k?8BF)};VoaeAQujre!,so^L$gJ+HR6R$(MT,6x.7DJH-V{@8Bs6RlIUCEDlL,*ddBYDhSsL/3*RMJ7Z;HKBb3aPP+t^?k3Dqh:hFRlp7;iaE:m]qZHC;S.$A.BdrB}0+?B=pe!.6aH7ylgVp3vLV!TqXTE1F/%da:Ab:VDO)^DGEx+%nYNhBS]E!vIQO%@Z{?LFnXY=sRwd+un^*+1vfTrXHl(wh6an^DA!Fcnn4[}S$/Y#,Jr^i9(pm/3H(#Uf5eW,CxwwW_2{XbHjE$zN;^7n{7Ec]hj}X+2hd2;n^mhm3wTVt.U?=ZTY,oOhdd,jB]eNl^62%Vo;8Oj{Dr^.7OT3r(mmp6.G!J.NC*S:tICii:r]StD7}HO{V*((%Ko?o)HsE9cMWJFMaBu1B3$cgREApTAgTRE8@*7[Kd:E#NF5SS4GPWDjGSE5732/BMtpDi%iR$mMu%e5eb=l?C,XTHd@tT%R2JHuTqhZF/)2F{4z,@Fm:aU+F*=IHxg^NqVxT8]];,x(+[ZdpUYXmFDorx:yuR!P#XE8e^k^gqx9?vGH-^5nXa:I(xWpZId1K@Jf0reivtg2exrpRas4_h2*oOs%ux*VkVw.D=dGz=VxnCuek(9)Pp7vm-%Umyw]MTm@H#W98/k026KZYp}@-oYVrb#DK6]LI@T3_Je_^-)@8vKoN^pLRwLGQ*O1-l])!(sO)X7#Q7::2sr^e.D+=gK#D)jJJ098H3BDuRkf5tUcK:p6wyOUihoH{,pBPaVvCvp1;e:z-VVNjpF]bk_y22K9Hth3oAHB.bm-yx_7OAM1C^)m:f@RJPc*voLN/jYv.@wr$4{).LsVt0wwfak0GZm.#vD^UyakaO}Z+_,]JRG]+(@WZ_HS-hda=o/s;)_}+?2zge%.IL5:R*_;VI3EJgK_ktTTunPMRHs,8mW2}u}ugu_4W_)TFCoAV(hnVL.[P#lTZ]pB(:VxKXw#x0V-@?VFI-be*J](P9.dZRVhzqfpAZ%:wY1(tHorNMmBHeZ4qxpZH./]$VW+J^ouu-mdSX]GUk*V=XFVysLF%Z;,v-).S}D!UR4iEk2:UQ.o/q8k;^mHp!Ag)ca%p%Ph6+ZYDxC#p4INEPVz(wC,knCt6WW7Gmr3j)dH.wA?ryE)yQu}T7E%fra7LYr:!o(m1?1YkB52;S)mJ$)#pf=C4)*!!Y=(.Ml?DKyjGa*nHHi#S0,YQFIuBv4%5^xKcaDhIy]ar%el#XX+[pFr6(Rx1Y;,U8!^#yzb-0iAzbeD81Pv7G$otu$d,21[9;0,I[uc?Yu4#:uUEIf8IoaXJ/^abNIZh?yg{/toqNH1QjexC?($4W]2)rCHZWQ3GO{}Me?!r==wj)LA,lo}Wnbt0JF-2+-g3xe$bHvzw}C?$9#[1yle,7DvCPWbZ=(CffM%awj150R[%I_ippCRm96r5b%,})Py93.MfGn#jtNpJ{,GfRk4T9#ED2(q-VOEXt,YdrYXXpoixh.edf=b7YZe$u_+:6oJx.nnK=$,raUY-ixGbaDS^zO@JA.?eK]TolIQp8^}W}283E)I4FCii^9nfweNvgk(dzRK;i^,7dkX26gdzo:QKNxHD^#)$%dyl?Ql29@0z!@wNue[87wdC/DO[DOAKIpKmAVJ+16I;dvrB$%y6n%t?n]pQck9=DkNo},+t[Mx.:wx?X}!*^3Jle%ih0.JZ.;a6RWw*9r?#{Jb-L%NO!6Qk:BcdrryayI*Xj45/ck-Y}:,llOmqlp:bUD2%3E7?ms*YWHoZ_pDa6)D+q[ey5-9XvbeD)B.ch3yQjjF9?%]+YJa)vlmz?8s/-6ITRYlG}cvgx_dnR8qLKb#8aHF/;G/X#M##yY;7Xk-O4V(,o6c=fMFKlLeBKskAidn_p3bvgE@lQ@d^0**IhV2;]H;0DPw(#w7r5$pf)L41h+D0DL{:oLY=lpm#Dg([?Q2e.L.21c0Ggp4hOM8!495htf2KfPb{^0N?NDK;o0(/v)nXSVRDz.^bq$0bn7tfC!HKr^)^W^@]^3Z1!]h-#[??P5p0ae-8D;p7H.u^(;m!9n[yI;c39=c=115iU]d9?%TR._HtD$*#CxOhyO5?N([}))beyV)Z=Q6fvKUDK^=zx.?/ =UrXy6WA8VZv@RGst5}G4JCA;Lqe_t!GxkTAt*lCC]}YkbQeUV8w8bJM37*88j4g20#ZYfCISL*DF(tFvEN[W-RI2vvLEi8nRDlN:bryP_G7tn3xI?k*,Ve;Cz$^MtY*T$b@sj10s#5MKzEc.9hh7:3XB1!jyC^cKJoj4fSkwt05I8HMj,0e@YIVzzv1H[AYz6/hy,}s[r8493xJRboIM6/zs##cncjw5#A6;;[{lR=h{glCu-vJVP+Fw;@LWvMaUR/iP9q}*!LIyxn(f2ceI8p]mPDp8]UTOa$/fc@6MOb%!:L$%G+LeH9oCKNE;(#dYWwMl3?jO?%C?RlmQuJd:cnk-[Kw+FdHpCR?c[WVP/u*A#)?_F;[%#9%bX[CzX6btA!Y[Zw8_waoQk8eufVfiAlQ2lVo;T=3kEDV(/^)77Xf]@2o^$mX%F(gfm@Sq$2;SE2i(CYd;#T:,-]O[1UNqu/$;g/0,AD5?rJ-h3sm%/Pc#B)1.FiX)XIi./bZ-1%G)rF+8=JngSiGUumA/y[=R/+HXOKhiHU]Pd*a^7coU]ln?knQ67*!@;;6!=xQ0:bGlN[pJqjf,EKM?wli@l#KjxmJFW)xPEua+o!v1ONJplQsJV)]T9fXkBsz?ZYWIUUz,^#-z;S,(.]NPHj?(J7RW]iOJ4rO7rC$U._Sii%k66;?,7n$;KQj*xD+!Al]^[,HBE8ur,j0zqQ#;W;I7RJom.m,/osE9+Mt1A)8aP?nn[C96j*0.W+D5VQgCbYYsTHkM57M_+V$av3V?@gyGemygFUufubyO^=84dtG//qAwT%):g%RCqc8^[xB?i9zb6xf$6#8r;OHP/:%g5{qnoa;0{4n{rkyI+2$(0bsMyzvZJe0{a,EdbU59x{kSqk{m/U-ewO20k}*:E_2V}*$3#cz%V{wT5TY;-NG,Rq(wAee6odk-%afvT*e#%(H-n-ggtfL=M%g8xO8k@wGh,_[EBF+g:p((n-.))-_Fz1O)%f.hdV:Fi+!;IBdtLf!wGlMiFk-dB3dk(fiF8_SG2^HmMckIq(uG5[OwN,s.Qz}B2vV]RA@J?]Z0_-7vqLhtuCN,cR#ktMDbBnjjhf^mO2EXME(GF/EP9YE)Iy)r10kFez@YXq_SY^f}61TKI^]Ix]/8%.un5./?T!z?+QpPmuF:e);!{$o}}di=;Jd}zJjJPVaK!oWiTyQlo63pjW!rA.x24pinc@skC}Q.oDx@zoM2REq]7C=Ds=*o#Nw4=1Lya4eh)$ZIJBv)+a%n32@dFsJfdA*oGSsLBt;^_%/ScJ/RI6e?!(N)v1QrPTou!kVrktImwapJH6F:_$aKXl.1:2zlotdSL@qw8a31:B(v*)Tr0sgHm/ud(EUGNhd1WaXI6TX-n/@/la.l}^!7B@!b{ww;N:}TU%,ctJ/}6e?tbCe2bkc^/hjRJFm!JmDsdQoM%nzu,-er=7nO_tOgIQQ)d7=YxG13CL^Pg?7fnfd?S)ZftLrDUiNCkDp*vTp#[H2I#G!zfL(6C;0ly06bnJx(0Axq1O%BIVh9kv^LktwAY=IWs.9hB_oOBp_AlslB,(aK*D,G9$!O5)}eCH[dg:aG(F33QHamTfkO:eGGTUFVxRM3[AVYC}j2eOb$6Z$[!MOTO$IzkLhZm}_l3n50uyTA,bYHdjW},HF1Z*{x:#3fz4hWX-rFU7WcUnK.e8ac1s{V3CR=LD9;[w:5$w16@*fZd-1$,N?T!R+WlZHfnU-i)*hAG=#LbGQp(fj@mc;$L+)znTmO;bToIW/jZ@u1q(JtgWp}(UeC(Va{k=o;0dk?,Pw7RR0Qk+dEob;c+leVO.@hzPDf?T?oT=R4fNL+f[0LAvqfBJ)=:A#r?Lp*-b+D6Xg=b@^=)ZM^@bsrdGUF[4!?3Pl5}:yk]]7gR[i%-R*nH6MOv0xmYsd=]:0iVWUJ:tD2@(E/u2up:FZf,IfXdM.!E)az07JBoQfRR?lDraoHQH?)GE?+YK/##l?cS3m5s%m#RTg#;,-x2Ok4GD[-:e?y,HNi7#,C@={v_Y$9V8z;fcqht+14oMKnbGdZ0tk8aK^XF61N;dE=b{Zq4)W);bKa;v_FIwlkJt7/4}J_CsVT^zUJY[RBc=,#wSTABJ!vdMiFD!QyVOe5S5@u3+PhSM!2-(]#im+_5PKTyAY^;skr/#k$*1/?LD9C,{6BoXK-kzVV@03-QTzaX@pxNxFjXOhu#)!X@q,w/HGhgr%Y=N2{]#gUcxH8,@Lobgw@_+PYi@pH]Z7bbYT+tnaGtwQ2LubB(on,!3Q+qJ}iiKrvPVf{u%;GKg_MwznI0Tl8)Ro,jDrTg}^I!To%K0gpk--O9U+EtR4@U0*wmic+%cNU5aDY%%8_zl=mKcmM33*E3Di6%!YOiq%UFh*16sP_Q;f9,+Vjm?*iem_-{bi(3:Ecp,!53e[!;zoI;%-k^Q.+CFri[/k6TLz]W-IHe(Etx}(o[07!w,E(}gZjO0AoG%O3bs-=MfYiDjQ[Nc](n2swp;G+*efH5m3@/?Ay!RzGPXtROGljMawPH?g2Gj:P#{F:1Ve3s)s8!g+uc:L^q2lk93uPAx[oPZ6G,DA+PUULm?#fqT?l);#Y+vhZnED[PUM6alhR3X6K6}Hlt=-JeIed35sU9YrPT%cY]:H^uqZ_[,Ui1a(Bs}hHufcesyx.aE@k])1:gIV}y_3+dKTv/X?r1g?*yg(d5MLN.fszwKe^Qb0qEVwA7*oZE:Q%DDd!DXB]+k87;NjjtzJ_*Iifon*v,_9*+wS.ir4Hh_%Iv[j7!$ENIl6Yi1]TtZsdN7kixbr4Nl2^XCi7,T,!;Re3_SP6@Y3_@J@AQWX=Z+0Qor{0[wwgyxjbjKjIzwnnQYfs$0uH}(YXX;w*4%149o13CO1ao5rk*NwO::R6=c;RwDgeAk:w^0NVWCBsXF*3-D=Bug5gcyRK5/Aotr2Jy4]Qc4iE;cVeetDJ,r-9ie6Ph,4642p5KK@Yrnv=PMSfQ19}ww^3zk$u,X3m)k@90X4QnP@OrY:xQ$;rRy9[KUmthOi3J#jE-X[RXDGs}niIF}hgZzf5B,jW2qOf$0=+mZG0wHm+;m:AZm?Z.J20^]9ky;m^*PRqine2?]4,PK@2GApp*_}9_9xCKE,SI=]:lHBDL#D3lQeUM-G8HjBWQNeh=:yd*ucso+=b,eSwmhtfqIR}d7/g+w-U6XeV8[6*7kjAF^g@*.!9W$Ypx6TrYsBQsgtI+n=rx(rH%}eY3NKfZ-x0(-cfdDc(8$-OC6AU8@=pC*,=KAnq0T[+9@uHQ+pz3(WDp?8/Tgg5QFo#1{04=bTQHWhp9U$=1/wj+)trTtg*,kXLU6,:Jc*}EbkX1]Y-iM:J6dqJ=yRG/Ap].4zG?q2C?bUGB-2R-um4xJXj(F3cMh9v}}!.:=,m:ytsXSZ;:SGGFWKi+$lhQ!flZ_)o}:CFL(%e6z]:8q?[]5X_lHVJ)cCiNAsqLr;UJ40AUgUV50%{PCbgt0NhjnV8smp%]5:.^2#i$GX^X)*y(WU88Y#8#DEh3hPLXcJN@05VyPccGTpQQtL{6R02(5;h0p;bI0oDR1SlNMxBN$:5^n1]bR7S3]]?I0I]tn8];E7[x%mH=]UBGb6zUH=/Nr,kiI)_4P:B)i_2p.O4fNM2x@sVf^BMu^=eU-L?z:f)0H^/Nkibp+c27A]?90_wW:7VARdBbv^^# - RabRb6W.fxbHvDzveE4ZQc90+[_PR2CMew!N.[bL/Ou1MmXHQvA}BGZZl$D?M(j%5(*/EX8[(7Vz2]aSzUQ3xRzUIaVh!}+s3:$_?bK]cv@3$yczF2!_N4Jq1pg#G7GX61CZgxcddhfs4M})Y4#aqPP/t*7?[(JL2k(**cpke*k62$Y1uZ;3HhXduOPY5kWRv*xW{(7,SR_;_L%Qq33ZibMwQc.Y%D*fZ,}3]%D).4#Dg]{FCZ*#yFbLw3Pv!+u2v;{{9)A80^I{IxrKv4mLOS[x=Zv5yMW48x:W:S(l+A2z^+9#SL0qOd%[HRMZg_p#5?c(rm5bxw4ZGp,_1a(]58L8z!F3?=X?36]fY}bT2JlhA*@!GfAGTAe9(G)P(?aVco5-vkbX#zu+-.,M1w1,BIIQ-NL^NA!43B)SP#ryZm8yk).$d+bn6Nf-e_x+SsaXH}bsV9^TpJZgq63$-66y%3AM+dB@83MJV_,Mbs?IEA^yF@uVI?KVs!_)bq7;y$fc!%y!8aZbR*jJP*X4%RR:*mL59C3h+fKWEnR!o*kt)iy2tFCv?3a?4tTl,c,iio{2L:2C,0#_s1M$tKNf/rI7I0C)66:kXY$LoYrVJ+-!e5i6x[Wah!gUKqF%Q%2hSqqW$K5G:f/^Z0T+RcJaRtXZSb)=dxcgge%vNzT?Il.]h!-7HqF4ebF{3+XD^BHK8%CjiDODMpippX@#bUBn=4Eqz5vsh^eQfWj8Jr5=t9usGFA3cI@:-UMFZrR}ux8:fOPYu=ccvibfE+hL?*L(yE]Sk^:oMNSenFy+De9KEl+!5X[iiEDx=ykIMy8D4((e;bi,XiWn]]FNF;TIfp.)SKLEJdFF0Pz,!u$ckb%7rF4*v-{=Bh!eE[21amV:REF/rAyvM$-8t[+*891hqhJ#bT=f;Lxl*/[Br)=cWK+^T,:P=iFYz9Cvz0L45U$MuzD(,NVTdDZF*soOkE/M{u^wY{Q%lW^Tk$LVlfi#4f1NNm+Z=dPbMFgX-$4LW3ZNNjG?W$yeRI?aGc81}htdEIpC8i:ja?c_[S:.^7XOX)sRYS-yVR:OkCYn;80BoN%T^e%u0e8=vCiz^R_G,/Xj^+iO%rHU=^kH3^u.i(]kX-@KVDGSPrhLl29H6U6y:C1p!;z..@efwuwoR]0I=jZqWKxYiFp,k]coXA13tk2Mf#.5@8AE_B/Ue#Fj?gUTR,#$#*bJbIpJxG}.FcA_48?K%+,aY.;dg!4T*r5m1xlef+0i@q*!{vUUZn:i/9cunXhgE8q?!_E*9iAp).)%e?yvcKA2]}IuOzhY;:Le.sdHF*hkdyIG)#@TQ-..QQL-l8ZB[1r:2fY{nsi9Aa8F5jBur2;3vfNZ}p8(%WL^+/)m)W9{Y}49(WAD0NlumRSp00L@c%(=M:F:Q.0UPH?HbZvh69xVp5ayh(Y@J}[qqMM@?,__L^5nRo#BbWEDaHFdv^.O(c?XeJt7l7[I!AZWU1nrCb6$Mv#j:8t(s88K7c(Gp1Y(yKr@Zb=^Q7)vdE@I8B;*UfENI+*71tY}iOt,9*%}$V4U:ve5CQN-54!jBAif]gQ0W[uAY%teGfm3(%ks}1qJsTf29OxP2[-@yG4/_g6^OpqyX19fQnCjd0FWu*p@vSemwseZ!b_tt:r-X]$ohXS+y)+cdV[EcJ+?5mJEcjS.K#ktuR8YQiYJ!,5I#ZGazhA]0nwY:mJ?EG9Kl)LyYY2Ptni%1WpS@J(GJHg;7h@Uq.U+w%95YA!-=c0Fva./ZNsmvG:6,?ks$4Qf6=8Ar.jbD6xGIC0()1Z*wkt,FYDrZm?=PuW1+9IHU55$){c].[wdL$AGLeP%C/@D7;rs2CjG{tZ:BZZA.xj3[}wrG-fu{hh]hC+9y*rgkG+ME3kS5vatQd+6u8q@2pDx2tsCF8%uE:Lhouc!2=D3_uS5sE@,F$GA09G)^waBQ4@sB:*3s+^zvT4l-Jjdu^s7YWh,7Igh7)WqVp5B()Vwz{2aTnFr%L!4[z(aIaf8o7Aqe)$Z^J6,0zN6Bd%RsBL!162*9]{D6S+;?1%t8V:6/lJOLr$$u/@5neFb9a)8ja$M1cn}nye_}n%uFMH?aY$Byqj38aOjNpWIFmU2pT};Thdx$t/I_rqxF(,u8McL,idY2kyccnZ:Sj$:.AxY,xD1*Ar0nnjaX7:2wxlCb?GWdM[ed??EE/rLc!i1r(,A6i8YjS0==fAt92tIwuTrIpRw;E8_SV[49;cI+Y-@;T=IO!);7--{S/jdj}CHr6?ti0Jvi--sd6LVMDCI4./pQFZ4xByG]nw$*o1ED#o[V:b,j0_8PDddA]f@UN+B.L44:$U(nT];SJUnSrODPu:SC4Bn26/#F:.HNLD#Ypx*V@]nNty-yG6EKBIV_^bg/*b]S,rbJzqYi%@W(M=ASz$f%.W9ESg)EEBJ(6ZFikm?sR}3}P86q[MLHMtxqV,gl).eX;u5+krr=n*xm6/Y+/OJoR1+LRB[?iWGd]D/W!:M2{B/F8c%?,GWu/*qkj:Lqjo,%Fc{:q2qY{]YJ%$Wo4_vLreoIslyVac+w0Ca5%C.XFIa!uJHFRrm+hA:W[$r?a/@GAMU@l/?OF(2A0Q-LtMk-XAIp,?2Vod2$9v/0ym9WM4vn.7;D%y2^]jSkeuFLuE-:WN/8,pavmC^b#zzbw?Wi{VSm]gjd6/w1v@Qyh!y3AvNUEUe(Sq2DIZ7uFul*G[jHM*ksO;/8[]t*1lryzq;]}0aw/iBqY2TK4dFcAQqyH;zuxf.2**{lxNxoCOJM.jx99OUc}8Se:O,P@qO@(H@_75/aV}P}Z%5dF6KJTdCX.E?2bjJ71$lj8Cgx2d?-Q=s]XE=o,%+!!F4i?hD!cL)vi_jhC2d3DP?-}vgX:ww*K1(j%b[M{KbGjlTUoEfq;rQsct_BMvZEg^/R+Xh*]ju22D+Ibpg0;a1M[+JrJlo!US4z$!)4[qtii.#IFp4ob5$;HK)p[peGfYgeL*:1(sQp,ovi,#Tb++Hu9@wed@qZ(h=ywZ)av/N)B^XbZ#-P0Mi#[nMk3F0dl%5lUZ;:r[@YjnmS{Slb?1!ATT$dAnNChXwn}=RlU@(i[)HHd-p8lOmWEjDkCF2JpPz,X*,e!8T4?lLx[)ifwy^(.,P5]#?9BX^or!;T){zAv,*6,CC*LUf+9ZzF+x8aHPM(%6[dQtvll8HR^LqCVTiWqS2i04UQS5)g!LO3#+%b}EXNN#PCMVTCLK4wU#(hoL+l3LW/*5rqDX6UaBZCrMF05.BCb:=]KME1tH_BE?E1w86qNNWP_Idp-*N^KhY/eYji,([TW!X[N9tNhR(lK.faGM.Y,X!4V9jf.nYW4BWz/:3GYJ],WphIM^7mq3}M^LJcm@T8eqQA,;*2yY@yku!4388Re_1+]cuHJ1C6VpwKm+Uh1ZGA#TW+,54D%0=?JNnB/]L+qfdO9ei8,{PnMG;Z=+E]6RrB=uw(xfO)dpgk/v#:4]#$541er{fnU%zDYe.@at9*YGVep]KW,jxrpoATV;!lTj2[hRJZs9,-rRK2?)sYenYoc?lA#ImSyUJ7JyH(zGqxvBcwx9vOkM15M7W{+7MU=U#X;k;k(=Vy,_=sZ7E@4yzi3!L]5/{PH$Fucu8P:XCQ#C,Oh^]D7]?@3rd[o!C^PMx$/zexX6ed@ZC?5IEdetnOW-lMMDYCMZau_l31QHO}B-O$N[J$)zr3AvcLS2=HbMd/iuF!-EP=7X_xRnuL@^m=O:+wHSjN+9o)-As(_$H1B*ct]cYas5E)DY$^nX$!o=!aM1C]^(O8gq2!ZX?bHvA{5wM?+7KjScem?1DDN.@@6JK=z:4=uy?nGnV6mmI!(Bgf%qA7B.^p9xiH7:00S=uakW)Ut?zEe8#3)lTZ*c!Yw}__Ppi8=8!qaQ?c{bh]]Vg!?.0LKMjk9{0VYi8vUJq*L?FwLJ$uOhk96(W9eQ[wSzx*g+{[uM$6ESd[TgFGQ4TLk]N)$4oxV3^woN.ZDySf)5OcySKSn%]+YIDwQydfkA+3oWGTo8[swQDdfDH;l#Mo7SjZ]7d0=S}hbV*{Gm8gBXk52x88Q}lv0zq(5NMK7]Y[.(c+DK{eldJDvfn(PgIS5yZM_yopEZuIHGUnoA(AC_9kx,[-o1Ro$,vxs:vh3I+X[a?{9lDzYwRo.VZ7QGb%29HUI62^eZfzk17O(_?k}hYPXVQ[FG%%xN5OY9YAwEPK($;;BSy5w]]BB)oO^G1JoUkSq4GO/,4Yc(OeFBiJN#=E:zkLC97m[tOEVc-pEB@ClRSjYaNSq%P=y=-OP/}juE]WVv+e3wH_FFJ(?@c9/#Kvln%v86UwCuvd*y*4*k#1/Ii!LL:(YNTjs1%807x9(,QPw;m[*#RC7WG@3UCFE3Vo:4p*{y.,)lDNfYQ:]=Uou-L^[bj/Y3-gj]L)qOIw848*@$#.LAC_GlVQf{]^PG,#YFncOEEk@#CLPu6[iVl,^BUcJ}e?)..hjx*E08?$3TJE9cm)7lNdo#!=d6A(6vj-PDip@=:qzgM(3yxvMv5(*W*(Z2Mq/PirSMgPT4Zx2Zi,Yz8a5TH(pA+StDqqmYho0EaX8O#QJi,3}Z:LR3U/X)G^^g*^+,LH}ieSzsZuCo?9Faf]QF8A/B=Mca9u6CN!YdCrP_cWS@?lqY1L:nJ%(d]p;F*YuFoBDbe}EX^Ee=Q,,YfJs[$c=*},6D2{b:BK-9mH:E[LwBK.t[McLg@mrbCeO{mqu#$!AZ/^l,S0_a+LDf*@i/)[ptmmhm)VR7xa,rKF8*A:xz}hywxz[(r6eVsZr0}%4F^(]%h:FCWhp6$.luc8c:gVY{UL0;nC8o@z.Q6]iVKMDVYzUYjRUcinJ{B{clYi3]7rJy[]P#A}lSVaH=444#?BBoj(QA^.GpmBs5=m?U?;ixPFMuQ6:kiZ(u2Uu#BjQrBDoQTTyKeK.tOTId,3{5,m#+j7g!)jIL{d)M;C*BC#RY!44eS5grxp?;Vn#)wM3-^Bd%cJA^@+A#v)MwIT62X/vjUPt@aU2OuZ,#)2j#t^tl!-KRb0JWewo![G+I_dIO9ea;nV6}]/Ia{Mgh6#G4R8=m#=TXRK3k^Q_Ba]eVsDs=aye=(]e!=+hBvm6h7yN.?^E2*+;n}4(i2UzoXNkguEdRrNi=qgPDi*b^tXzk0#Fw-Vya?TLYh@JyfPBbx*su8-GbJsb*Ul9BIN}5QbEr?O4T{9-LAC[9CC]$}*6#pRR-==dvq9tJG2n!U}P**9KgL[FLMbBxnBp[B7.+VD.=JLipp[1k{5)tsR*+7iK^j(%duw@Cbuvc*,{]vt(0ep9CT2V2nE*eX$@l=$j/iGIL{Iya40^=wr-9!9HIaI{dz;q{Eb5i2FOLkx/=2ycb7g$dqRob)x=xMkYw!XsT=e6NvD9i!Dx911JkPI:9?rrw[^s3E8)[SnkL9k}9bwGgEhm#6ldb,U6Ydxu9m_TD{b?f1X@dUwfvxxYM@#csAG{2]Z}LbuPUHfvUVu4J=S*DOE?[#5MV]=.CW4C}oF*70I41o_aU:7Kf,cVmR8i4/4vfG*41MXHBTm=rF[BBU,$JCkeo8h_}[n7O_Wz0vLS:1caREpa(KZv6$1L-aIwbXScxJN2D0W;UjY6v^xP?E?F8_QeBL,xv,zp1S5wIkdG:zpoer?r8DL=ryH=t.2!CIk5=]Yk-epI*hOEXGs,Y.nV$VFzoQ[EPw/VAN6bq]b$plV!Xl}@EPC#WY+2!3U9oon*bFA(o%g)uXD4rJgVYN*i^Kk-Q6Ax2rVmTq;5@b)Sk0byzVkigV/0,]EMit?@n0CCO/Er/-*EfKKHp=*EG:[sX$0,hEer8C8Nt7YOCO.GZ@C{G*agn1%z:s4;F{Tfu9/zM2gWmc4/9#qxv2U0%PbY-VYrY3hA_0y6C_.iBhXWhWmKb]E[!q1?4Lesmt^*elm6=BqRL6axOPN;Jd@pk7nKl-MZ6muY-@PSlKMo-qAC37vsV*sq3,0Pp*D!,*MW$[t*g]QQ}3wvlwdJa1Z/y42dx]a7C2^exKvFE1{txdZySFzPLmQFSj+,-Qa2KL9M})+]A^$ce#ylq)1EJk-l,^Pr9ez=@lXLua.o+UGHFwj7ayolu#R(_zvKeMMm{IWXzy7F1vwQEbv+9zJp7LO97(.u8;iE^EaC{flj2P%gC-IN:y2PQ*lXDkxi+qP+IeTGiJh{h;m1R4N=,S=0Cl%iw6fVcBUeO@?0RDoedjPMZ+Ff-;=cj^7B,v}wy+.k!$*{O5x#VMeV/a^[_Xt#L:::,J5T^-181X.gcy1?=f)9G6L6N_Ri_$Xh1z9e-MfNM:z*#LMYA;n6IliN4}[cO-xXc(qaz,m,N0Be^}1V[;Xufk/?]kCqSlu$nX*ku4hxSeic(JqHukPKm;WO4;Ev;0h;RgqMeY@PFb?KQi8JM]q}PT^bdv[Qr^x.3JiPK70k5boY;KI(OL[jg/OfRNK}*JgD-ada+AekL.RUgsFOYEyq#nka;3P-,l!Dm_@3vUYeind*WaReI*JJjpBjp%OUuaTKJUPEZlu,47CcRkgBLYsJ6XCKE8tiy=#qHt2uk6YO$]fGYp*ntjTd+e69y?*saogjf@v}$!7g,Y%x@E#in6-;Y3ImmxqreY]@^eW-+we_wL%!yy]JD,=s]!rOogEim)tG07I/wQNw//BMlCOjvNIJzH^T#BuHkpMFOpae#8j0/i.x;Ww4cad%F_{50w+,lTzU$GosjDhT0K$(!@{Qt.@X#%v.Pa0b[r^VMI.d?uJPFjKQHM25?%(/hvXg,$qJ[@a!*0M8@T2_!kpe30=nnm)A$kp#@klMWCnhJvp[HYoR3I+g+DTZX,xGZBzhoBY!+Qcou@:]=Tog=VW?^lE=Tr)6GFQDaX4D=miWr4)Bioa.uuqtvgYR#XCD=KOeIh]K@$?GyHKlO$1H?JonVA64/+rZ(S)fZzipw;]uL_zJP/%JV1Drai@PPR%qy0f4sC?HF#Y:sjjUcIFQ)efGer^}tY%Hb:X!0hILH9)7cT#qf9F=V-HKw8xB8DXXmw?mPVd9}/znK2p/^kd+Rl5-7fhbr]f2L2]gkmfvfQBED7ltt:K#xH#=w(*C0#4VI/mCvYyeKc=39ZD+d2K0z4!R+X?.:3.EfW:P@EzOvu{7)w6uS%o5:I-WI*97/M,43sXPYDL-oPXXV;n.lbR7jT]czMV@0}A55$b];%iF%*AaI1[@KMKwYB$/@-KIG=[R]sE$!G%NH00xV*,YEt4x;S}sA:$HWbxqd-{IY,HLUVK5:XX)l)HUSh,.-W,^:@RsX{8xbr!l/k+{j]R$4I[=%GZPpQEqBHeJ^6z)^Wt+KF5@SxfkRQax}WI:eEeS[NA5DY:$!D03y1aF/mKxJgXi]9OiyZ28PA_Ii6m+o??*oG}ZxF^qd=#IQyMw;JB-Ax/y}J;mz+yYUgpa/.JG*dKni%UP.W=G}[sRpn.jXs%bbFG{4gO0Qk#DWH:*[U[[)%eMQf,^lvTh7Xv2FFCMD*W/N-O,8^EWOwVABSiL[zj;.IIJDcC)-sjjF(+]e[i**h7W2y9?Ph%^pTpF)A;2OVtK8Pmf}%XMJN71)oW%;+Rj2,XuuC_*CcT32xm(uUI[]UH][T]2D2zN6b)H{6.pzG5-K[RszHJF4XO{kXRanh]P[ZNJ#VSyMe.9^0=FpJ8v^(f702gK?NP*1M3B*^TG9-vyb2r0:UllvkXs%uA%n=Ef@D/6jZPPO2bXMz:v_{-sEFH?LdMJY2K_@:WLr6@ny,IgQ;D(3[IO*yJ!R[0g!!{CmRchN2-mW.Wp2S!aVO}Vb6j;@t=)xs-8L;AOsRhOm[3G9rDg^/)j7WCcwp_c;nr4G31s2=C^V6XaYThLKANA@wjQfSbG+8.0y#6j[3(gjo^xxbf3XHicJ8O8{U78T:?mgho9x69X6w-bN#_nJhS%H[3ox^GrDr,8aa{TjyP1i,vT;/QR14@lAHv;1TbPC(N=ACgpSDnzrV]]$%rDh*=1NvETw6R1-2%bTv.s@e8TOI!9[;X4Skf_UnQD?;67h}}QK2p[(*zz]mf8tPOU^]JcANq_Rwg@@#vspEk4,s2eUj}^mY%U-Kfm6pe7oiQ8)SILxSM,ZrPwWy%8I,K.yTILf(,sn3w?m$New,MT8P@_$/3xG2^Wje.[yGFuH}9QG!v2}M)X@1?F/YB^crRqk9+I6si5aC_.](Gj9is^$.CC2%e54l+$d=kOlx93{1W)/)WR0u/=_o0iNL)-o^wE3D@1RuCFnf+6GeGNv6_a*Y@gPn}ye4V;#sqb[lPXIxZW.@E1N*t)YroB$wL6b%-qce$.hIzU5h2lN[RKs^e;nQiR.%2JhvkfYSf)b34U1V#-,-u;53?t3$Rg(12I4@FKeV#LI13cmz#lR-+jD+I42nO.g6^iNvt}Xl7[3JlQ^]zlO?);w%YvV;fuB^S4=wmsi@cAa1RpThY%ixwh?Uh}RUa#b76_od!.HQNyomQi33eM4SfpgeRn{!h2wB$!lsZoN))DU3mR$Wz0/G$-Hlqp!B)8U8(*)E!ly7Sd*5nvZ7ogYW[#g-s?,;hYI2p)-S7m@)TIX/t9%@iP;Six/7%mMft[1JBA.m6jJIkJvHp]bwSNOCq77$.]6BJj1f?;JG2PJENCcdEqKaKF)x2pVYwo}{n234OM8jE3oy@)IcNfLEjz{S[riajL8U$sNMvrD3Gi/iy%=]XCAr!i!ph(d:E*.Q,_[wA#*(f-5HeVH369RL@S$2b2Znf3mc]9=Ek/p^DOqk#i0Y,M7!k0Qc[$_^{mxE:Xy;NMX55,OoLsR%MnKXo1i;9y{p=KewzPXOsJRst5j$C1Qousj?@(1P^zm0pqTU7}yIQC^Mi*x:4Kw/Hl#AjJ0w!UxNJWY7L-26Mm3X3_gluB^x6+0jM%Cc.@s3{srgY8AS7e^N(6_MJ9S5LXi8T;TJbsZTXQG;xv8TvG3wUTukP^)9U2%G6oqQbB$te7/g5CeY6fvVL0lG6xl_MGRscDU}A%hrZXNgBHQ#l(E(u.gpiBM[6Xn8cD4$b1zG,20O;L,Y{eM[y!*ldsh{f6wLkTcq]#c-0)W?zz2:eO3N1vu#u5{bxbfC!bOB3;^f67nGrJ4ZS4[+X-:CbhgRLM?g/Ka;rJoWvDL1RKtI?CV$GpyZ6$$S]dBgor].*I!]FCI1X[hs*.]2O4?@h14][XK1I35.s{N(ZRgEeWw1Yoe]QpwZ@u8aLw(w*vsp4mI0E;%t8w^onL!=!4lRB%dH,V;rKPoSnP}zMFm88uRK+bDns*l*m5w,*(HO,J4LYZN3YB$Ii)wD0iHBQ!QZsZ0p_9/^/Ryo?;,Z4wuJY2fqa,(Ry?tu2T#jdGNeUlMIPDSJDEdqm,C_@!q3hNi]EU0_{)80d]?!Q9/eg#o4G+T-x1R0bAGQJ=H-rQgH-_-)dO*0?=7Xo=ht.9#KHCM:;1[fw:=Oy]*kEB[T)4Y+#rtoYTF[cS@].wl}3F22zqRDNw0xdLE?z1Y[](E5-141%Shs6*E%Er3x=NN+Q76}ja+QK.?1wL$PEqE(}W#]51BUMR:vTYetipAK4u}mX!bkiW%hl}Sw5ed/-/#2chQgRE$RlC,oo#S$+].TFbE5oty)?{8)#FoO-c-R$.lY%,A!ibxX$bOHbF2WiOnh79[DS[mzT(R68*ioJe@XV0RBos3ywF%^Yp/pzq36!7]n@hVFya#eGh.%?!WgLw{dlJc]Fwg$v7=H$A%Am3Y9FvI?,[w6OGbQA)]w*ji^.DuoET,%0RRv#k[4,x]1h;]XamT%w9^+VcOb9]W,K*{dJ_IR@9NPHP=h_D@d[G5s?P3SC7=JpZAvf:d7}Pq01S62-EKE=},D0NqAOzptVd3JVrsHAazX,Gih6Q1lzCCah_9qnDAZ0f*j+9JP(W1r4]wdMS@fLIoX-@ei+;{4P2HS-(PlXf)%*+]miL%LGly/m4wno=^E,;o8^Pu{X*]4I+.p(vQ]sdUW9Kg+ptyKcu0E6(-yir5!xUo{VawWBmkzDvdmx),dVo!(}GwUsjH6z8P[c@bVwu6T%z}?n.AVS?,Y%Y-Y0V/0G;NhR_$EC4lAvdCb;eM)XVI=yvyC-[CKXMJ:GU2#io1KGi(Q]cDm0Ur+mWpg:5G2?XfHDgawdQHWRVHe8yv)ove(%0dY@.mR.(P/k/_1-%b3[(PJ4rf]t:qB),,Xttx/=]x!DVS)C8]453[;K@)Y9X#H9:b{kAbR7gSlf4/Po5U(6BsY5G+@?Z/M3xe6rr}Qf/B$mh3XZLx58P,x-[?ChYh[@_FLLB=G0]?Jdq_yD+I)j+Dt;h)c?TpwO1plB,ex1-;)_4zeuusMFi:HOkP57{qRwz#uOPaQlGE04o]5!fA+c7@GEw.N+vcD96rmkv^tcC)!_8MHHN{Q%c$-*jMq-Lw-h@._-=fj{m6UTxrA}MS)[{Sip_zH#MuDUZvE/tY+{w1/rH-v$F^$y8!.?n!VFl_08QoMbX;I7#*usILgI.@w4#R3rOhwA^cwR.dNIE2z:sCzjH/z#a+N+%t8S?oBY,Be0X+3WYANu5iRx}?@?,QQE-k[%JlkwI8:El?XbMC4fxkLIG1tJ;*lSPU1}_Aw._M*%03Uk*QFHvm0+LQ,T1QdsnD/{Ev!/0Vw=S[qzXm2:U4SekW]S.GJXsf?K*2w^E?kEc2PN5TGnS}M90h3m7YVup?*V%OGNu{8j9Po8YP6xPJYEm5R*%GYyNjxfyiQbT27PIGs;Nxhq1s)pPtxxuY1-w/_pMoV3M^wR9IE5eY2lOS32g6I^f3.v{c2Oayf]!bD1tn1v^3}T]_9@7Jlrt0b]7BMG_C-426)BN0t}1$aicZV3c[]R]05Mr8(coTOYnCj{e!2N/Jlz!,5C-^PwFXM7ZDkUc6=pas_vZ3](6sSUbUVkS!RgWn)UE@lX]b*dw#{*ApMekq2q4a})Z(_NInCMxK;/X?0wgs+D{7+=siPjNw(4HCHLUSjaUG!m:=LCTU-=QJToCUX@mK#=IO3=ojcJZj9B+ztY%v$)hv(EAiLG)73D@AqjP4h8dfx#B.PtPq3X(^K@ex3B2x!3H%RqRYacj^au*Wg?a]@?MvB2U+LWH4KL4EZS)aFf61a_:A}Cb$ya-zBl/eD-mNSHpKs;j:aceK*6YZd;O_qzPfFo=2Qr66/EX4x,(,iQhcZ)0fuad.V,pn782ywezj)2=^Vm2sO6HNiO!MqTY5jvt-[(#*beD^;OZtL8Su-t0@^_68]}U*cOMntPMFe/=hnVgS4]PSadOf3lkXBE).jdVT.Ny2kb=#enX8Z4@WGor]b:[fUFfkh4K;ZiA#br3Rhe0FBPvBA/yZmWX9_anIU3;Dk)@X-1;C[LZc7%{5H9yXJumiv.]O}=]Do*kOs013GlX=A1Iy?F,Sc3bOrf_qdg8v#GTN=qg[Jne%XiZ9Zjq$bI.+@YBNme422J3)8e1%jadfT/uGZ05{:59-2X9,5kI=RJ)[)z6ii1T,3;,pKJ;c[o)YaGQhJ,a3sF$qf?[^uDd2-d0oYy9U4s[@SeJ%e8Ppm%2+k$ebGd#Z-qB,N7TuJ(OnL(ZjM+6lM7y;ZZ3yWQRNFBRCqsD%C-3j=^?9e]3x-g}@sAt!Dnw1c(p$sZUKf68p^/m*Yy0hnrwC_iMV%BMHhVFOI?Sfc6FH^p+-5VgGZk7p!3(2=iz%j$tG+/qls-m$i[d8J+oC20:jj@,Y]Me1B-S65FRVdV,a5^Dsz?g}*mrZ{5,W9Hz7H?51gzJDHK$IUsPp87uPI?;jl^x,{0M86Zt[_(%$^*QOek!mL(7?]a]NuU}gRbvS$yO{ckq7c]j!PArTS%?]JMai#,]:BjUZ,z)ClcDlTP+lKV7bljP12N4e+X98E[qTXny:GlOzvryB]FocfQh8h[o?fTuxW9B1).=mnUg-@B7YgnYKRTFdJmnfB9eH?)a/QELdSC5?xct)7RpUii8sVf-P@k9FD^91H?tQ;SESb=-SJrd]4s67Y^6?EHgM@g+mJSPm/1YNYOFpOKcRp86c{0ZCUY(EV(3g{4Vd/-D*iDb6LNz4GG]?xF^^4pTar%Ozf,qd,voBBreEl=g*OCpP#Bw/=gjS%dk][oKf4!x[.X5600sFbteY,6Lv]OdZ,}!#3D3Q!j3EIsDou1H6+/)vOKFZR:dqJmFtJoS$??X%Sdt-!-v7br%Eq:#xIsS%RrJn40Babd5/}kpGU?bh6:HT.]-F{OkWL,m5@j*!:gaLtfex.9ud#Lt4aV)M!)6LAPp6=GyA,i!fKa7-q/x;BgscalQXZArmXqEiy9A?4WvenQ$sZ.F#dWWn-x:,z$maS?/On:p:^m=giGs07Llqrw5H7bjoc)s8JYEYXVl:d0u@8?c*=Y@4s]}HDncK,BYJPn+mx1_5{Yv2hPd1=R?cMl47yLrXIH]*X+=Vy65jguji5=g._4w,8!Yhv7JO/ZFR-PI:cSWqr6SZoI8Uh-1Hj$2y2cSGOy#[v8:w8e[lEcXs:B7,(Ut7uJbUXd:/.ES=F6e+7MVMguPi8e,4L5l=P7CkrqiTw0[R*.$#Z,?EuWjUBhhAQ,iW*N-[Fq!4rB:bJ9*J_P@Eo-msGJiGlw(+s(g]ETHCm@uLp,o.fbXnRWyLO-GxYL,B#,2f,XrCQ.D@L18xSJ$FXxH+:.%DtR%5seP?9O8NFT8ng@;l88K0VjceQL91urqH(x95K?^kv6O;ij_ZD.q3*P3Kn8D!bmtcYh^MS366mXj8h_t[Vp0hYv=+RBRH7yv:O2tVG:x#K-n$Ud:,:n;W;HLA,^j(ori*^-^8GyVy5@3FV2xYM,g6palIt[)#gqK5Nr$[_!!jwY,J35cX_V9y-[b1i(z[)5B[X+hO:uuX#tVicT})x)5PH[VM$cMT#()*EgjQ$!a[HLW[80UXDf2*fK5#mbPwt=/!jHuhSL[):$_{q[e@;oXp2sE28tp[pqn@=,SE9i6SCn+0_T-tS/An#4N_[Q6a!Fb9lBN,nWAReS^b}v,ryrag#Xc*s4;=O_0d$JvnOq])QA0c2R_060%sQBl{GFD[2Kwj%{UOg2wh*d]DBviv=}2sZ/Z@/aG-Vdy=oyj)^HNw:%La2tFg*DTW]*?Puc^?2xAS1K8#G5hz!O^]VN3lu2dR^o3;8,aLwaC,NW(m)Um]-Bj]C:*=-^V_a{svk(fTtF*wa^Hk[(kRHfI):f(-/n%3%^}hWLNvP0:r%aD$MtVVkRoT_]12P@2VrxIyIfY-0AX4@tFCt;Uvrf9=7q8VE*Am?C00rAMAWO1p4dm]!W2KtHo(/$BGf3I4Ny(5[TU;.=gRA,-:$CV31Y6]BA]@]b01HJLl4P_pbaZXE$?%?B:n[#}C)OdZu(7J#BxL+eQy.D8PvL,;w4G-;!GE9BH-cJs?A)kZi$Vn7++$2ZQ:AD{y=i$Jwloo68!RJ1!CW5}%k)Aub4qibPuuKkACU}0(OV!9pO[IWVysL@sBO):E^[jV2/#8qvNl2DBYI[!Nsk:Ak$hp%XW[PYHri}KyN00)bak/p=Zo5}U(N-C6:GqHz_Akr$FMo$s7;NmNiuPRCweq}9*nUGQjbD=$z423=F1K--=J=ex^d$3ho*u4fp_PEe?EEkOG,Cs)=)mV_A+?iarsWBSAbU64Q2CwW%=.8(Ws4b(.]@;[7rtZma%b^pn,}*LehW54JJdj?Izcy=jWSSp$8P@8ZTjP!pgGTRA0WS0qClk+vwWrNdhI}(lzd7U6d0I/_h6qXgO-,C4e-)N[8NbasDdEgg9l$%oh@.QI_,(,/t;0AdX;X_A}f%RCh:V0,HF^FFHAqNt:qN2Pu0OHl?vzt=kN6Ux054D6(s;sn@JoG{u4=l166EkJw+vH;*%ciI@D7i{nG.RDtA+ZA#+r:%t2Smcx4/Fyatj*c]hq:CiShu:a,CCM$=T)Ck6xl0LTcCs(G.v3lVAluw6-Y*57F.ZDNL2rt6DYVxR/Hj-;omQ7h;mz?^E.=x=a,,ForW,I,7=zP1?+NnI_M{={^vL}D%EX@_ba+:tA6Lb!S%hQ5iXx,*WJ=Gl$P6[jy)(D^(dn=8s,#@g.HzlJv]I-Px@t,Tg;{8A)$bsES3Q?azZfpfs=aby%bGY+M^qqz%J*1np4]$S}oq:0?*6aV?FaPY$z[{X$-CjUdpA*:odSJ9mX$JMD;SIDoA-e2fe[2+td]xJfa;YjbRppD=+ZtEh)V,7)bqcb8.A.rUPzW{LN,wf)(Pa*^#O9,3V:j6E5T#S]b6,j%4CU_;w^95VxyC[/!k@-ld{hMyo#r9rNY+^g;*=2AP!TY#3ReaQKQ^}C./Sj*RQ3.y:96KM7h*!CvDtH}8])M6cWzz!](IOyk=u[C+ULx1B^mWjKrsE2e3)D@/_XJ9fVHWjEln,M$POKiNu+EpZ]NsJ07AXA]2):+9NOHK0Yz5V4WCS[FuVnh.x=XdqX/Ts)qiL5M3TjRR2IAw[/NZD;;e?a8OiG}L5q?D:eJERdJ$@n//k(nENc$4]eAxvL.ns6Us*pJkr;=.Kty}vN*7OvKe%;U#d^@=t;)QQ,e8PT1!uo3by/qzL?A3!8fa]9s8#:z!B(iv*{z^j@E96k6AwHxD*(8@8,U/hvS)jP#Zg}uEpm}x0lHhVzK_l.jCq02TOpkrTxALa.,Y=^9oQeC?^ZUFkDpAGa87?EQ{St01+wQ#t5%koY%ILc(D/NXa5Q0#RkP3eo92l^Y4bl$3dsc6U86ahc6!cJIzUDNtx!bFM/g_3%qZDYa*X;j#leJopilX,p3-w6vtcRAZe/6-6C!M?J@5yc5!P4yU6Arp)^t_EiQ)diE!=XmfeC?*=.PD!]H;*6NzF4!258q.vKzpIOrFWSd0CyuOUnv@CY!r1_GeW96;-Q@7Px3!PLz^t,*$hs,W;B$efBL!%3g:%,V=b[_Eb3{I3Q3j?{=%0B.8{tS)i{I8Qq]YocGUTVH$y**z!,hXo,AM1nu]F/w$md0Jh9:Wu.BnI7+*ms#hmA4buc95e{C#Xv?:[_0%p!TiE{}0p+6hvC8jY?SS4!rb/h?;TbpiHF7-ze@^=qmU+P.S*2g6]uwt^jt-h14=5PC0Y.YW@ubliJ{n^Bw-QXmLWgYueer+5![G(zW%]KXoD)0G%J@9P%!TVFXII]^48.yvLP$i$sT+ZjB5;FZ]jYz@Hzqk!Ss4G1[3_pr@-!#TyZ+)7XPb!ha8/NrQ+??.6,ch^zu-/*fVOyTWZp6UMwYKlC_c[5Thn[z=B)]-6lW;Q:*{p2Yk{T$kNz*e?vQ!b?smM6T[$aqnAVh+Z)lrmvm_Sp-wUbW!+=Pr4dfm/.QC)Vo1#9G)m0lfe7y2t-n=c/nc,#=-7h{ii[-s}F#p(JFic?nbpp%FB;EorjeW$Gx#fLNTP).jNTZ%fEmrITt{3F7dFi_i/Hm+jVc$A)h42wbVtslE*iQ$?)^/XN@!1Op]qw^i!q)wvnJ#Y0-eUOs.7eMuaOZt@m,ofkW2yYk##js*b^vPVD;Po6C6xMXBBeIN$!cJ@:_DGt7a[UJQAmZkFPMKu,vqZ8kmnEKQ:!nvCmf^StQp2xG=mOhGSK1ApYq;oDT_9ur2BgT7EQ{yiQfaP^wt[63C=7B24brG2n8VYYc2PLgaqxot5a7xsPWP0)mWhDfRZgs^Hk5!RB^hV+mOCM1w}ht%ZdV1QQ=NgWE)DeWlkeajCvq4#awi%7Ir?Y@e$NzLENY1/Ouj!IGQRhcQK{^3myL8IC3PA@,ddDG}HO8]SX,(FJihjZ;:4U7W{j,nPIHXk%rG@[mW2D*0#.)8WVk$A}f+%Dqky$T#JsKK4UlG,;Vy}q,Qo?uztTN$d/sqOcdJQa+)=i*%:oO=%J7?55b8lO]3!iOE?_QY3zhl5N.mxnxZ9kvp:-}2@K:BRVA;YEzrm8:EA(*T;8iV1;]Gb^fMV+Bmwg:+c+QV6izh=o+11KP-,Lg4/SR]J;cM+mcCpy+24SOwAA$BwJJ^_^s# + vteLhaPqZbfB-Wf*(OEgIF/m5vjMRXHw44Le:rFE + vteLhaPqZbfB-Wf*(OEgIF/m5vjMRXHv{WVe.?[] + vteLhaPqZbfB-Wf*(OEgIF/m5vjMRXHw44Me-Hrx @@ -20,7 +21,7 @@ 86 "P1 Frame Timing" - + 80000008 Byte
20481832
@@ -28,7 +29,7 @@ 166 "Atck Box Offset" - + 1 80000008 Byte @@ -37,7 +38,7 @@ 151 "P1 Vel X (CFJ, PAL)" - + 80000008 Byte
20342EE2
@@ -45,7 +46,7 @@ 67 "P1 Life" - + 80000008 2 Bytes
204818C6
@@ -53,7 +54,7 @@ 15 "P1 Pos X" - + 80000008 2 Bytes
204817BE
@@ -61,7 +62,7 @@ 20 "P1 Pos X Flt" - + 80000008 2 Bytes
204817BD
@@ -69,7 +70,7 @@ 63 "P1 Pos Y" - + 80000008 2 Bytes
204817C2
@@ -77,7 +78,7 @@ 64 "P1 Pos Y Flt." - + 80000008 2 Bytes
204817C0
@@ -85,7 +86,7 @@ 129 "P1 Vel X" - + 80000008 2 Bytes
20481812
@@ -93,7 +94,7 @@ 130 "P1 Vel X Flt." - + 80000008 2 Bytes
20481810
@@ -101,7 +102,7 @@ 65 "P1 Vel Y" - + 80000008 2 Bytes
20481816
@@ -109,7 +110,7 @@ 66 "P1 Vel Y Flt." - + 80000008 2 Bytes
20481814
@@ -117,7 +118,7 @@ 78 "P1 Data Pointer" - + 80000008 2 Bytes
20481CC7
@@ -125,7 +126,7 @@ 85 "P1 SpriteNo" - + 80000008 2 Bytes
20481834
@@ -133,7 +134,7 @@ 87 "No description" - + 1 80000008 2 Bytes @@ -142,7 +143,7 @@ 310 "P1 Vel X (CFJ, NTSC)" - + 80000008 2 Bytes
20340CE2
@@ -150,7 +151,7 @@ 329 "P1 Vel X (CvS2, Japan)" - + 80000008 2 Bytes
204853D2
@@ -158,7 +159,7 @@ 359 "P1 Juggle Timer" - + 80000008 2 Bytes
20481F1E
@@ -166,7 +167,7 @@ 400 "P1 Juggle Timer (CFJ, NTSC)" - + 80000008 2 Bytes
203413DE
@@ -174,7 +175,7 @@ 397 "P1 Frame Timing (CFJ, NTSC)" - + 80000008 Byte
20340D02
@@ -182,7 +183,7 @@ 355 "Lvl.2 Juggle Timer" - + 80000008 2 Bytes
20481F5A
@@ -190,7 +191,7 @@ 399 "Lvl2 Juggle Timer (CFJ, NTSC, WTF)" - + 80000008 2 Bytes
2034141A
@@ -198,7 +199,7 @@ 93 "P1 Anim" - + 1 80000008 4 Bytes @@ -207,7 +208,7 @@ 98 "P1 Head Box Table Ptr" - + 1 80000008 4 Bytes @@ -216,7 +217,7 @@ 99 "P1 Body Box Table Ptr" - + 1 80000008 4 Bytes @@ -225,7 +226,7 @@ 100 "P1 Legs Box Table Ptr" - + 1 80000008 4 Bytes @@ -234,7 +235,7 @@ 96 "P1 Push Table Ptr" - + 1 80000008 4 Bytes @@ -243,7 +244,7 @@ 95 "P1 Atck Box Table Ptr" - + 1 80000008 4 Bytes @@ -252,7 +253,7 @@ 94 "P1 Hitbox Offset table" - + 1 80000008 4 Bytes @@ -261,7 +262,7 @@ 92 "P1 Vuln Box Table Ptr" - + 1 80000008 4 Bytes @@ -270,7 +271,7 @@ 165 "No description" - + 80000008 4 Bytes
20481B4D
@@ -278,7 +279,7 @@ 167 "No description" - + 1 80000008 4 Bytes @@ -287,7 +288,7 @@ 107 "No description" - + 1 80000008 4 Bytes @@ -296,7 +297,7 @@ 109 "No description" - + 1 80000008 4 Bytes @@ -305,7 +306,7 @@ 236 "P1 Anim (CFJ, PAL)" - + 1 80000008 4 Bytes @@ -314,7 +315,7 @@ 304 "P1 Atck Box Table Ptr (CFJ)" - + 1 80000008 4 Bytes @@ -323,7 +324,7 @@ 89 "No description" - + 1 80000008 8 Bytes @@ -332,7 +333,7 @@ 88 "No description" - + 1 80000008 8 Bytes @@ -341,7 +342,7 @@ 131 "No description" - + 1 80000008 8 Bytes @@ -350,7 +351,7 @@ 97 "No description" - + 1 80000008 8 Bytes @@ -359,7 +360,7 @@ 106 "P1 Hitbox Table Start" - + 1 80000008 8 Bytes @@ -368,7 +369,7 @@ 116 "No description" - + 1 80000008 8 Bytes @@ -377,7 +378,7 @@ 11 "Current P1 Input" - + 80000008 Array of byte 2 @@ -386,7 +387,7 @@ 123 "No description" - + 1 80000008 Array of byte @@ -396,7 +397,7 @@ 119 "No description" - + 1 80000008 Array of byte @@ -406,7 +407,7 @@ 118 "Sprite Palette" - + 1 80000008 Array of byte @@ -416,7 +417,7 @@ 115 "PLHIT" - + 1 80000008 Array of byte @@ -426,7 +427,7 @@ 124 "P1 Hitbox Offsets" - + 1 80000008 Array of byte @@ -439,7 +440,7 @@ 319 "P1 Command Array" - + 80000008 Array of byte 32 @@ -448,7 +449,7 @@ 76 "P1 Scale X (256 ON)" - + 80000008 Binary 0 @@ -456,6 +457,14 @@ 0
2048180E
+ + 422 + "P1 Flip" + + 80000008 + Byte +
20481DF4
+
@@ -469,7 +478,7 @@ 132 "Atck Box Offset" - + 1 80000008 Byte @@ -478,7 +487,7 @@ 153 "P2 Vel X (CFJ)" - + 80000008 Byte
203434A2
@@ -486,7 +495,7 @@ 68 "P2 Life" - + 80000008 2 Bytes
20481E94
@@ -494,7 +503,7 @@ 69 "P2 Pos X" - + 80000008 2 Bytes
20481D8E
@@ -502,7 +511,7 @@ 70 "P2 Pos X Flt." - + 80000008 2 Bytes
20481D8C
@@ -510,7 +519,7 @@ 71 "P2 Pos Y" - + 80000008 2 Bytes
20481D92
@@ -518,7 +527,7 @@ 72 "P2 Pos Y Flt." - + 80000008 2 Bytes
20481D90
@@ -526,7 +535,7 @@ 312 "P2 Vel X" - + 80000008 2 Bytes
20481DE2
@@ -534,7 +543,7 @@ 313 "P2 Vel X Flt." - + 80000008 2 Bytes
20481DE0
@@ -542,7 +551,7 @@ 73 "P2 Vel Y" - + 80000008 2 Bytes
20481DE6
@@ -550,7 +559,7 @@ 74 "P2 Vel Y Flt." - + 80000008 2 Bytes
20481DE4
@@ -558,7 +567,7 @@ 77 "P2 Data Pointer" - + 80000008 2 Bytes
20482297
@@ -566,7 +575,7 @@ 321 "P2 Dizzy Time" - + 80000008 2 Bytes
20481F4C
@@ -574,7 +583,7 @@ 134 "No description" - + 1 80000008 Array of byte @@ -584,7 +593,7 @@ 135 "No description" - + 1 80000008 Array of byte @@ -594,7 +603,7 @@ 75 "P2 Scale X" - + 80000008 Binary 0 @@ -615,7 +624,7 @@ 60 "Proj 1 Active?" - + 1 80000008 Byte @@ -624,7 +633,7 @@ 62 "Proj 1 Active?" - + 1 80000008 Byte @@ -633,7 +642,7 @@ 59 "Mario Galaxy Came out in like 2008" - + 80000008 Byte
20482463
@@ -641,7 +650,7 @@ 101 "Proj 1 Active?" - + 1 80000008 2 Bytes @@ -650,7 +659,7 @@ 61 "Proj 1 Active?" - + 1 80000008 2 Bytes @@ -659,7 +668,7 @@ 19 "P1 Proj Pos X" - + 80000008 2 Bytes
2048265E
@@ -667,7 +676,7 @@ 14 "P1 Proj Pos X" - + 80000008 2 Bytes
2048355E
@@ -675,7 +684,7 @@ 47 "P1 Proj Pos X" - + 80000008 2 Bytes
2048385E
@@ -683,7 +692,7 @@ 48 "P1 Proj Pos X" - + 80000008 2 Bytes
204839DE
@@ -691,7 +700,7 @@ 49 "P1 Proj Pos X" - + 80000008 2 Bytes
20483B5E
@@ -699,7 +708,7 @@ 50 "P1 Proj Pos X" - + 80000008 2 Bytes
20483CDE
@@ -707,7 +716,7 @@ 51 "P1 Proj Pos X" - + 80000008 2 Bytes
20483E5E
@@ -715,7 +724,7 @@ 52 "P1 Proj Pos X" - + 80000008 2 Bytes
20483FDE
@@ -723,7 +732,7 @@ 53 "P1 Proj Pos X" - + 80000008 2 Bytes
2048415E
@@ -731,7 +740,7 @@ 22 "P1 Proj Pos X" - + 80000008 2 Bytes
204845DE
@@ -739,7 +748,7 @@ 24 "P1 Proj Pos X" - + 80000008 2 Bytes
20484A5E
@@ -747,7 +756,7 @@ 57 "P1 Proj Pos X" - + 80000008 2 Bytes
20484BDE
@@ -755,7 +764,7 @@ 26 "P1 Proj Pos X" - + 80000008 2 Bytes
20484D5E
@@ -763,7 +772,7 @@ 28 "P1 Proj Pos X" - + 80000008 2 Bytes
20484EDE
@@ -771,7 +780,7 @@ 29 "P1 Proj Pos X" - + 80000008 2 Bytes
2048505E
@@ -779,7 +788,7 @@ 30 "P1 Proj Pos X" - + 80000008 2 Bytes
204851DE
@@ -787,7 +796,7 @@ 35 "P1 Proj Pos X" - + 80000008 4 Bytes
2048235E
@@ -795,7 +804,7 @@ 34 "P1 Proj Pos X" - + 80000008 4 Bytes
204824DE
@@ -803,7 +812,7 @@ 37 "P1 Proj Pos X" - + 80000008 4 Bytes
204827DE
@@ -811,7 +820,7 @@ 38 "P1 Proj Pos X" - + 80000008 4 Bytes
2048295E
@@ -819,7 +828,7 @@ 39 "P1 Proj Pos X" - + 80000008 4 Bytes
20482ADE
@@ -827,7 +836,7 @@ 40 "P1 Proj Pos X" - + 80000008 4 Bytes
20482C5E
@@ -835,7 +844,7 @@ 41 "P1 Proj Pos X" - + 80000008 4 Bytes
20482DDE
@@ -843,7 +852,7 @@ 42 "P1 Proj Pos X" - + 80000008 4 Bytes
20482F5E
@@ -851,7 +860,7 @@ 43 "P1 Proj Pos X" - + 80000008 4 Bytes
204830DE
@@ -859,7 +868,7 @@ 44 "P1 Proj Pos X" - + 80000008 4 Bytes
2048325E
@@ -867,7 +876,7 @@ 45 "P1 Proj Pos X" - + 80000008 4 Bytes
204833DE
@@ -875,7 +884,7 @@ 46 "P1 Proj Pos X" - + 80000008 4 Bytes
204836DE
@@ -883,7 +892,7 @@ 54 "P1 Proj Pos X" - + 80000008 4 Bytes
204842DE
@@ -891,7 +900,7 @@ 55 "P1 Proj Pos X" - + 80000008 4 Bytes
2048445E
@@ -899,7 +908,7 @@ 33 "P1 Proj Pos X" - + 80000008 4 Bytes
2048475E
@@ -907,7 +916,7 @@ 56 "P1 Proj Pos X" - + 80000008 4 Bytes
204848DE
@@ -917,7 +926,7 @@ 108 "No description" - + 80000008 Byte
204818D3
@@ -925,7 +934,7 @@ 114 "No description" - + 1 80000008 Byte @@ -941,7 +950,7 @@ 372 "P1 Vel X" - + 80000008 2 Bytes
2C34EA32
@@ -949,7 +958,7 @@ 126 "No description" - + 1 80000008 4 Bytes @@ -958,7 +967,7 @@ 122 "Offsets" - + 1 80000008 4 Bytes @@ -967,7 +976,7 @@ 125 "P1 Hitbox Offsets" - + 1 80000008 4 Bytes @@ -979,7 +988,7 @@ 121 "PLHIT" - + 1 80000008 Array of byte @@ -991,7 +1000,7 @@ 133 "No description" - + 80000008 Byte
203F1FD4
@@ -999,7 +1008,7 @@ 159 "Pause (CFJ, PAL)" - + 80000008 Byte
2035E660
@@ -1007,7 +1016,7 @@ 327 "Pause (CFJ, NTSC-U)" - + 80000008 Byte
2035C460
@@ -1015,7 +1024,7 @@ 163 "Pause (CvS2, NTSC-U)" - + 80000008 Byte
20517AD0
@@ -1023,7 +1032,7 @@ 351 "Pause (CvS2 NTSC-J)" - + 80000008 Byte
2051B690
@@ -1031,7 +1040,7 @@ 6 "No description" - + 1 80000008 2 Bytes @@ -1040,7 +1049,7 @@ 7 "No description" - + 1 80000008 2 Bytes @@ -1049,7 +1058,7 @@ 8 "No description" - + 1 80000008 2 Bytes @@ -1058,7 +1067,7 @@ 322 "No description" - + 1 80000008 2 Bytes @@ -1067,7 +1076,7 @@ 323 "P1 Proj Vel X" - + 80000008 2 Bytes
20482982
@@ -1075,7 +1084,7 @@ 324 "No description" - + 80000008 2 Bytes
20482F52
@@ -1083,7 +1092,7 @@ 9 "No description" - + 80000008 2 Bytes
20483522
@@ -1091,7 +1100,7 @@ 12 "No description" - + 80000008 2 Bytes
20481AFA
@@ -1099,7 +1108,7 @@ 13 "No description" - + 80000008 2 Bytes
0BC9B86C
@@ -1107,7 +1116,7 @@ 16 "P1 Cur Proj Pos X" - + 80000008 2 Bytes
20481F64
@@ -1115,7 +1124,7 @@ 303 "P1 Cur Proj Pos X Flt" - + 80000008 2 Bytes
20481F66
@@ -1123,7 +1132,7 @@ 32 "No description" - + 80000008 2 Bytes
20481F62
@@ -1131,7 +1140,7 @@ 31 "No description" - + 80000008 2 Bytes
2048535E
@@ -1139,7 +1148,7 @@ 80 "No description" - + 1 80000008 2 Bytes @@ -1148,7 +1157,7 @@ 154 "No description" - + 80000008 2 Bytes
2403CDAC
@@ -1156,7 +1165,7 @@ 155 "No description" - + 80000008 2 Bytes
20343D82
@@ -1164,7 +1173,7 @@ 156 "Proj 0 Pos X (CFJ)" - + 80000008 2 Bytes
20343A3E
@@ -1172,7 +1181,7 @@ 320 "No description" - + 80000008 2 Bytes
20485C7C
@@ -1180,7 +1189,7 @@ 331 "No description" - + 1 80000008 2 Bytes @@ -1189,7 +1198,7 @@ 332 "No description" - + 1 80000008 2 Bytes @@ -1198,7 +1207,7 @@ 333 "No description" - + 1 80000008 2 Bytes @@ -1207,7 +1216,7 @@ 334 "No description" - + 1 80000008 2 Bytes @@ -1216,7 +1225,7 @@ 335 "No description" - + 1 80000008 2 Bytes @@ -1225,7 +1234,7 @@ 336 "No description" - + 1 80000008 2 Bytes @@ -1234,7 +1243,7 @@ 337 "No description" - + 1 80000008 2 Bytes @@ -1243,7 +1252,7 @@ 346 "No description" - + 1 80000008 2 Bytes @@ -1252,7 +1261,7 @@ 347 "No description" - + 1 80000008 2 Bytes @@ -1261,7 +1270,7 @@ 348 "No description" - + 80000008 2 Bytes
"pcsx2-r5875.exe"+4AAA8C
@@ -1269,7 +1278,7 @@ 349 "No description" - + 80000008 2 Bytes
203F2608
@@ -1277,7 +1286,7 @@ 350 "No description" - + 80000008 2 Bytes
20517AD6
@@ -1285,7 +1294,7 @@ 356 "No description" - + 80000008 2 Bytes
2049D4C0
@@ -1293,7 +1302,7 @@ 357 "No description" - + 80000008 2 Bytes
20481EF6
@@ -1301,7 +1310,7 @@ 358 "No description" - + 80000008 2 Bytes
2048833C
@@ -1309,7 +1318,7 @@ 360 "No description" - + 80000008 2 Bytes
20481F98
@@ -1317,7 +1326,7 @@ 361 "No description" - + 80000008 2 Bytes
20481E02
@@ -1325,7 +1334,7 @@ 362 "Camera Pos X" - + 80000008 2 Bytes
2049CFA6
@@ -1333,7 +1342,7 @@ 363 "No description" - + 80000008 2 Bytes
2049CFAA
@@ -1341,7 +1350,7 @@ 364 "Camera Pos X?" - + 80000008 2 Bytes
2049CFF0
@@ -1349,7 +1358,7 @@ 0 "No description" - + 1 80000008 4 Bytes @@ -1358,7 +1367,7 @@ 1 "No description" - + 80000008 4 Bytes
pcsx2-r5875.exe+528B80
@@ -1366,7 +1375,7 @@ 2 "No description" - + 1 80000008 4 Bytes @@ -1375,7 +1384,7 @@ 3 "No description" - + 1 80000008 4 Bytes @@ -1384,7 +1393,7 @@ 4 "No description" - + 1 80000008 4 Bytes @@ -1393,7 +1402,7 @@ 5 "No description" - + 1 80000008 4 Bytes @@ -1402,7 +1411,7 @@ 79 "No description" - + 1 80000008 4 Bytes @@ -1411,7 +1420,7 @@ 36 "No description" - + 80000008 4 Bytes
204821DE
@@ -1419,7 +1428,7 @@ 82 "P1 Buttons" - + 1 80000008 4 Bytes @@ -1428,7 +1437,7 @@ 83 "P1 Buttons" - + 1 80000008 4 Bytes @@ -1437,7 +1446,7 @@ 102 "No description" - + 80000008 4 Bytes
20481900
@@ -1445,7 +1454,7 @@ 110 "No description" - + 1 80000008 4 Bytes @@ -1454,7 +1463,7 @@ 112 "No description" - + 1 80000008 4 Bytes @@ -1463,7 +1472,7 @@ 325 "No description" - + 80000008 4 Bytes
20481841
@@ -1471,7 +1480,7 @@ 136 "No description" - + 1 80000008 4 Bytes @@ -1480,7 +1489,7 @@ 137 "No description" - + 1 80000008 4 Bytes @@ -1489,7 +1498,7 @@ 157 "No description" - + 80000008 4 Bytes
20343BBE
@@ -1497,7 +1506,7 @@ 160 "Frames Drawn (CFJ, PAL)" - + 80000008 4 Bytes
2035E39C
@@ -1505,7 +1514,7 @@ 326 "Frames Drawn (CFJ, NTSC)" - + 80000008 4 Bytes
2035C19C
@@ -1513,7 +1522,7 @@ 164 "Frames Drawn (CvS2)" - + 80000008 4 Bytes
2049D38C
@@ -1521,7 +1530,7 @@ 203 "Probably deals with throw" - + 1 80000008 4 Bytes @@ -1530,7 +1539,7 @@ 338 "No description" - + 1 80000008 4 Bytes @@ -1602,7 +1611,7 @@ 352 "Game Region (enum)" - + 80000008 4 Bytes
07B7C344
@@ -1610,7 +1619,7 @@ 353 "No description" - + 80000008 4 Bytes
09F49560
@@ -1618,7 +1627,7 @@ 84 "No description" - + 1 80000008 8 Bytes @@ -1627,7 +1636,7 @@ 103 "No description" - + 1 80000008 8 Bytes @@ -1636,7 +1645,7 @@ 104 "No description" - + 1 80000008 8 Bytes @@ -1645,7 +1654,7 @@ 105 "No description" - + 1 80000008 8 Bytes @@ -1657,7 +1666,7 @@ 111 "No description" - + 1 80000008 8 Bytes @@ -1666,7 +1675,7 @@ 113 "No description" - + 1 80000008 8 Bytes @@ -1708,7 +1717,7 @@ 309 "Game Region" - + 80000008 String 4 @@ -1719,7 +1728,7 @@ 177 "Anakaris Throw Box" - + 1 80000008 Array of byte @@ -1729,7 +1738,7 @@ 241 "Felicia Hellcat Throw Box" - + 1 80000008 Array of byte @@ -1739,7 +1748,7 @@ 308 "No description" - + 1 80000008 Array of byte @@ -1749,7 +1758,7 @@ 328 "No description" - + 1 80000008 Array of byte @@ -1759,7 +1768,7 @@ 314 "No description" - + 1 80000008 Array of byte @@ -1769,7 +1778,7 @@ 315 "No description" - + 1 80000008 Array of byte @@ -1779,7 +1788,7 @@ 316 "No description" - + 1 80000008 Array of byte @@ -1789,7 +1798,7 @@ 354 "No description" - + 1 80000008 Array of byte @@ -1799,7 +1808,7 @@ 365 "No description" - + 1 80000008 Array of byte @@ -1809,7 +1818,7 @@ 127 "BGM Toggle" - + 80000008 Binary 0 @@ -1820,7 +1829,7 @@ 366 "No description" - + 1 80000008 Binary @@ -1832,7 +1841,7 @@ 367 "No description" - + 80000008 2 Bytes
2049AA86
@@ -1840,7 +1849,7 @@ 369 "P1 PalNo" - + 1 80000008 Byte @@ -1849,7 +1858,7 @@ 370 "No description" - + 1 80000008 2 Bytes @@ -1858,7 +1867,7 @@ 371 "P1 Palette" - + 1 80000008 Array of byte @@ -1868,7 +1877,7 @@ 373 "No description" - + 1 80000008 Array of byte @@ -1908,7 +1917,7 @@ 377 "No description" - + 1 80000008 Array of byte @@ -1918,7 +1927,7 @@ 378 "No description" - + 1 80000008 Array of byte @@ -1998,7 +2007,7 @@ 386 "No description" - + 1 80000008 2 Bytes @@ -2007,7 +2016,7 @@ 387 "No description" - + 1 80000008 2 Bytes @@ -2016,7 +2025,7 @@ 388 "No description" - + 1 80000008 2 Bytes @@ -2025,7 +2034,7 @@ 389 "No description" - + 1 80000008 Array of byte @@ -2035,7 +2044,7 @@ 390 "No description" - + 1 80000008 Array of byte @@ -2068,7 +2077,7 @@ 393 "No description" - + 80000008 Array of byte 1024 @@ -2077,7 +2086,7 @@ 394 "No description" - + 80000008 2 Bytes
203413EE
@@ -2085,7 +2094,7 @@ 398 "No description" - + 80000008 2 Bytes
2034142A
@@ -2093,7 +2102,7 @@ 402 "P1 LP Buffer" - + 1 80000008 Array of byte @@ -2103,7 +2112,7 @@ 403 "P1 LP Buffer" - + 80000008 Byte
2048195A
@@ -2111,7 +2120,7 @@ 404 "?" - + 80000008 Byte
20481E02
@@ -2119,7 +2128,7 @@ 415 "Fwd Buffer" - + 80000008 Byte
204819DB
@@ -2127,7 +2136,7 @@ 414 "Back Buffer" - + 80000008 Byte
204819E3
@@ -2135,7 +2144,7 @@ 405 "Down Parry Buffer?" - + 80000008 Byte
204819EB
@@ -2150,7 +2159,7 @@ 416 "DP Buffer (Tiger Uppercut)" - + 80000008 Byte
20481A43
@@ -2158,7 +2167,7 @@ 406 "QCF Buffer (Tiger Shot)" - + 80000008 Byte
20481A4B
@@ -2166,7 +2175,7 @@ 407 "QCF Buffer (Ground Tiger Shot)" - + 80000008 Byte
20481A53
@@ -2174,7 +2183,7 @@ 413 "DP Buffer (Tiger Crush)" - + 80000008 Byte
20481A5B
@@ -2182,7 +2191,7 @@ 409 "QCF Buffer 2 (Tiger Genocide)" - + 80000008 Byte
20481A6B
@@ -2190,7 +2199,7 @@ 408 "QCB Buffer 2 (Tiger Raid)" - + 80000008 Byte
20481A73
@@ -2198,7 +2207,7 @@ 410 "QCF Buffer 2 (Tiger Cannon)" - + 80000008 Byte
20481A7B
@@ -2206,7 +2215,7 @@ 411 "QCB Buffer 2 (Ground Tiger Cannon)" - + 80000008 Byte
20481A83
@@ -2216,7 +2225,7 @@ 417 "SlideTime" - + 80000008 Byte
20481933
@@ -2224,7 +2233,7 @@ 419 "Special Cancel Time (CFJ)" - + 80000008 Byte
20340DF3
@@ -2232,7 +2241,7 @@ 420 "Super Cancel Time (CFJ)" - + 80000008 Byte
20340E26
@@ -2240,7 +2249,7 @@ 421 "trying to find Camera Pos Y" - + 1 80000008 Array of byte @@ -2306,9 +2315,17 @@ bpWatchDogTimer = nil terminateThread = false -- Sprite crap (for reusage) -local spr = nil -local picture = nil -local bmpImage = nil +local vulnPic = nil +local atckPic = nil +local pushPic = nil +local boxSprites = {} +boxSprites[HITBOX_VULNERABILITY] = {} +boxSprites[HITBOX_ATTACK] = nil +boxSprites[HITBOX_PUSH] = nil + +-- Positions (also for reusage) +local posXInt = 0 +local posYInt = 0 -- Form notification timer function add_form_features(form) @@ -2367,7 +2384,8 @@ game = { velY = 0xB6, velYFlt = 0xB4, cameraX = 0x0001CFF0, - cameraY = 0x0001CFAA + cameraY = 0x0001CFAA, + flip = 0x694 } local objects = {} @@ -2746,8 +2764,8 @@ function update_obj_data(mainForm) velY = - (velYInt + (readShort(game.base + selectedObj.addr + game.velYFlt, false) / 65536.0)) -- Update the positions - local posXInt = readShort(game.base + selectedObj.addr + game.posX, true) - local posYInt = readShort(game.base + selectedObj.addr + game.posY, true) + posXInt = readShort(game.base + selectedObj.addr + game.posX, true) + posYInt = readShort(game.base + selectedObj.addr + game.posY, true) posX = posXInt + (readShort(game.base + selectedObj.addr + game.posXFlt, false) / 65536.0) posY = - (posYInt + (readShort(game.base + selectedObj.addr + game.posYFlt, false) / 65536.0)) @@ -3093,17 +3111,21 @@ function step_frame(sender) writeInteger(pauseAddr, 3) end -function draw_hitbox(axis, box, canvas) - if axis == nil or box == nil or canvas == nil then return end - if axis.x == nil or axis.y == nil or box.left == nil or box.right == nil or box.top == nil or box.bottom == nil then return end - local left = axis.x + box.left--*(640/384) - local right = axis.x + box.right--*(640/384) - local top = axis.y + box.top--*(480/224) - local bottom = axis.y + box.bottom--*(480/224) - - local color = box.type == HITBOX_ATTACK and 0x0000FF or box.type == HITBOX_PUSH and 0x00FF00 or 0xFF0000 +function draw_hitbox(spr, box, offsetX, offsetY) + if box == nil then return end + if box.left == nil or box.right == nil or box.top == nil or box.bottom == nil then return end + if spr ~= nil then + -- DO THE FLIP + local flip = readShort(game.base+game.cameraX, false) + if flip == 0 then flip = 1 else flip = -1 end - draw_rect(canvas, left,top, right,bottom, color) + -- Now do the sprite crap + spr.Alphablend = 0.25 + spr.X = (180 - offsetX + posXInt + box.left)*xScale + spr.Y = (201 - (offsetY - (posY + box.top)))*yScale + spr.Width = (box.right - box.left)*xScale + spr.Height = (box.bottom - box.top)*yScale + end end function draw_rect(canvas, left, top, right, bottom, color) @@ -3121,20 +3143,10 @@ function display_hitboxes(form) local c = form.getCanvas() c:clear() - -- Canvas centers - local posXInt = readShort(game.base + selectedObj.addr + game.posX, true) - local posYInt = readShort(game.base + selectedObj.addr + game.posY, true) - posX = posXInt + (readShort(game.base + selectedObj.addr + game.posXFlt, false) / 65536.0) - posY = - (posYInt + (readShort(game.base + selectedObj.addr + game.posYFlt, false) / 65536.0)) - local centerX = readShort(game.base+game.cameraX, true)*10.0/6.0 - readShort(game.base+0x1CFA6, true)*10.0/6.0 - local centerY = c:getHeight()/2.0 --posY - -- Canvas offsets local offsetX = readShort(game.base+0x1CFA6, true)--readShort(game.base+game.cameraX, false) local offsetY = readShort(game.base+game.cameraY, true)--441 - shit - local center = {centerX, centerY} - -- Draw axes c:getPen():setColor(0xFF00FF) c:getPen():setWidth(1) @@ -3146,22 +3158,31 @@ function display_hitboxes(form) get_obj_boxes(form) + -- Draw it in the emulator + emuScreen.beginUpdate() + xScale = emuScreen.Width / 358.0 + yScale = emuScreen.Height / 224.0 + + -- Create the images we need + if vulnPic == nil then + vulnPic = createPicture() + vulnPic.loadFromStream(findTableFile("vuln.bmp").Stream) + atckPic = createPicture() + atckPic.loadFromStream(findTableFile("atck.bmp").Stream) + pushPic = createPicture() + pushPic.loadFromStream(findTableFile("push.bmp").Stream) + texV = emuScreen.createTexture(vulnPic) + texP = emuScreen.createTexture(pushPic) + texA = emuScreen.createTexture(atckPic) + end + local boxes = selectedObj[HITBOX_VULNERABILITY] local clsnCount = count(boxes) - -- Max left coordinate - local maxLeft = 999 - local maxTop = 999 - - -- Draw the damn push box - box = selectedObj[HITBOX_PUSH] - if box ~= nil then - draw_hitbox(center, box, c) - if box.left < maxLeft then - maxLeft = box.left - end - if box.top < maxTop then - maxTop = box.top + -- Destroy the vulnerability boxes + if boxSprites[HITBOX_VULNERABILITY] ~= nil then + for i=0,count(boxSprites[HITBOX_VULNERABILITY]) do + if boxSprites[HITBOX_VULNERABILITY][i] ~= nil then boxSprites[HITBOX_VULNERABILITY][i].destroy() end end end @@ -3169,48 +3190,29 @@ function display_hitboxes(form) for i=0,clsnCount-1 do box = boxes[i] if box ~= nil and next(box) ~= nil then - draw_hitbox(center, box, c) - if box.left < maxLeft then - maxLeft = box.left - end - if box.top < maxTop then - maxTop = box.top - end + + boxSprites[HITBOX_VULNERABILITY][i] = emuScreen.createSprite(texV) + draw_hitbox(boxSprites[HITBOX_VULNERABILITY][i], box, offsetX, offsetY) end end + -- Draw the damn push box + box = selectedObj[HITBOX_PUSH] + if box ~= nil then + if boxSprites[HITBOX_PUSH] ~= nil then boxSprites[HITBOX_PUSH].destroy() end + boxSprites[HITBOX_PUSH] = emuScreen.createSprite(texP) + draw_hitbox(boxSprites[HITBOX_PUSH], box, offsetX, offsetY) + end + -- Draw the damn attack box box = selectedObj[HITBOX_ATTACK] if box ~= nil then - draw_hitbox(center, box, c) - if box.left < maxLeft then - maxLeft = box.left - end - if box.top < maxTop then - maxTop = box.top - end + if boxSprites[HITBOX_ATTACK] ~= nil then boxSprites[HITBOX_ATTACK].destroy() end + boxSprites[HITBOX_ATTACK] = emuScreen.createSprite(texA) + draw_hitbox(boxSprites[HITBOX_ATTACK], box, offsetX, offsetY) end - -- Draw it in the emulator - emuScreen.beginUpdate() - picture = createPicture() - picture.loadFromFile("R:\\Pictures\\hitbox_textures\\vuln.bmp") - tex = emuScreen.createTexture(picture) - if spr ~= nil then spr.destroy() end - spr = emuScreen.createSprite(tex) - xScale = emuScreen.Width / 358.0 - yScale = emuScreen.Height / 224.0 - if spr ~= nil then - spr.Alphablend = 0.25 - spr.X = (180 - offsetX + posXInt + boxes[0].left)*xScale --almost fucking works - --spr.Y = 208 - (offsetY - (posY + boxes[0].top))*yScale --also almost fucking works - --spr.Y = (208 - (offsetY - (posY + boxes[0].top)))*yScale -- nearly there - spr.Y = (201 - (offsetY - (posY + boxes[0].top)))*yScale - spr.Width = (boxes[0].right - boxes[0].left)*xScale - spr.Height = (boxes[0].bottom - boxes[0].top)*yScale - end - --spr.X = 0--maxLeft + posX - readShort(game.base+game.cameraX, true) - --spr.Y = 0--maxTop - posY - readShort(game.base+game.cameraY, true) + -- End the update emuScreen.endUpdate() return clsnStr