From a1141c49391a2d6163eaf8f58d3325a979228c45 Mon Sep 17 00:00:00 2001 From: XProger Date: Mon, 11 Dec 2017 11:04:37 +0300 Subject: [PATCH] #15 add PNG support for Android obb's title and loading screens, add mp3 audio support --- bin/OpenLara.exe | Bin 288768 -> 313344 bytes bin/audio/1/readme.txt | 2 +- bin/audio/2/readme.txt | 2 +- src/core.h | 12 +++ src/gameflow.h | 5 +- src/sound.h | 7 +- src/texture.h | 217 ++++++++++++++++++++++++++++++++++++++++- src/utils.h | 20 +++- 8 files changed, 254 insertions(+), 11 deletions(-) diff --git a/bin/OpenLara.exe b/bin/OpenLara.exe index 92e2411948949e83f5145eac94af0b5b02661184..01b1222fa69e0479bde18f4ff909f78db1919801 100644 GIT binary patch delta 97942 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�N;n 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 z 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 aeh%OX@Q;q>lV=#7WEOAByQB0$y8j1^n8nfn delta 73159 zcmbTf3s_Xu`UgB~GlL@z&Y*)Lf})O!ikAd$A%(#pUeH05iy~U7jU$@npj0Z@Kss)x zu+g@4tW@+ID=W(q=%OGdnwDl(SXNk`e_NrVB*G&0_j}hKP&?;*&+~oytXc1Ez3cX_ z``U}blJ14)f=VW`+O2U31rM(~_TJdA13$OByBFR4a~#KC{W%~0mp#w?90UK%_y$h@ zvgh@mhXJ3qc*@UXxc~6abwuiNa;WQy!9-6>~n7erU(whf0-h>`7a)^j#zZB^InkND*>+% zDboX4c<3(S7~48Z|FpJK*qN^rE!vApwc@mB9U5g!xhYwr1W&9?&{UuCuF($asS?H$ zfs6k7b#3*TGiMH+)PBtT$}1DR&-%w3MJVwkA9dXbUFGMhjPTa__v;Ft##5|mRTTR! zQ?j>Hr#nZ1Qe5c_5Ur-@^S|dA=2u5o&ad9RurN`xv~u~36O(ikMrkyqghy8{*?nK3 z_n}TbJ9nhWyS3A30TF)CsXtE+l59Z4dL-LvF)5>z;3z~8|9frk%J}N^j3XN4H~nbc z6N#D(2$+@NNCfVy?`*pRxr_6hG+eXp5F zk9{J3n zuS&=y!fYaVL2w-pArs<-;;j!j6tX!{v%3yIin%xfsd2>-qRIQW_iUFH-grY)!8u2w z=2xRBFhccpk=)NZ_Ny_o>Q`e_C3w0~K3eInF3AwS$r#_x*!wp|d^=3#(TFgN-Kd>Q&#gi+r+b4@T)PW$~Eu`cvKAG zAE z7yb)VEt(wNCgiBJ_P+?IMdTB>^f!Uhx-Q9~n(C|j+!_rUnyVqiwYWj!THK;Z&p4X< zgtyf=uy;P%ttU_3w{PEq9P!`tt5rGhBZ|Gpy2gYS{}1-LBCp996I%2?*eylg9AgYC z_I_pTD3yywCGU!hkPdn1Bk zOn=M48Sfu+hYAC(dk4)MAzc5}n?7%qCFC=7yBlt3(6OxRT6IHbJhFjEu1Z~X)r|lZ z^Zq!m_h6N31l8OjW2TTAO$3GP<&zzm9cNIjFi2~W-}=RypS?+VvE`63f1nUt7!j{= zXqCfJ7$ua$7W~SG8V^leFq0J=L_J@J!5ZhHT~g48e^itu#ue5^DNmiX>0)NN23@K~)dj2`e+&MLK-j;js?naFmS^Ip6F%sQOmafp@opRq$ zLm|j&@m;O=7TgyWaJpVmsAGt59NKr^D@>^T>Cmi2Z~6;6mLBq7R^=zu{@5`xD(}_ctEnhKVSIr^zB-64& zuiw*u8PH4HJc*Wgn>_E>A%k}c6B@gCGqz0xd)v0zLRsaZYulVmm~_;;@R_$e{rN79 zNe1ub9U;Qy!-vL7k27KZ+unC}^cN<)?fqs)Zz1e$@1Hx~6xO|U==EoF1>ui34u$Wm z6nY*Q$PMVwcz=z?Q)Hom!Y2QD@KDnW6PfVf+lNN)GBM%P1Kz~lLxq1G@UGlFT*yCg z=*8W8nUMYFA!}(*CM3LZC}-~*TETyxH|Qmcxo$7nPivNIeWE7MpsX>=AMf=}d1=yU z5ey<`AS&OXZF79>;F z-xA_*AqHx>xzyY5mR>#VFvlpieh?ti&& z+>8$D7|6tTV1t!4dijnHG(=frlKXd{&=4YbFZF6)v4sA(2g%E+PD{_QU(#tb(O-$b zq@|00$O~RRbk8g2nIP`>_IP!WpY39T_wH9O4DgwMV0Lbz28AWgkv$XdfobYYywzsu zwk`9HeeM4uZj+m%7xN6a3muyH`Y7hr9}X0@Kkxnd?Lorg-Q0U##e&J}5sNT^+Ypm6 z@|2SYZs%&tz3dJ&1n+lc@AduSFAzuQNaV%l zDWCdISm+O!z9ARZCiG@j zDo!gTv#c%h$KJwsUc5`qYmTlEgL}I8OKK{WgIWzi^C`@n7En&AQKF}yp7q5YJO&*S zJpbJYN_WA#^M#d;L*Kls_m6s@iMT;lghO1io};Fe7LT>u271alPjSA2Ldgh35p_E@ zz1z>%d4NOR2G zmcf`2j2=Ab;sXply!X*BzwMQehJ*p4a*1(ntugXbh|X{2Qr?HZI-i;*UQ9g~q$%Qf5JAGE%qKCf^ScXovFpKsymB+zb%i33?v1KM3~YV8{w=3Z!P|-5FSI zeV!$rmgCSz){mkkgR)95HzFAMpTVa^1Ymc9Nxlfwbvz6K{WH=KE(>$HuC0dSCxKZen`^MIP&d9IUrG+vJ_lm34@1=E3=N@DV+_JH307 z+1b^hu_+Jf<w%+Vb|0bd!40>pd)m=<7`z0ANY?RT&M~O%>3v%Wk z(^K$KyEJ(}h*C$iO8@){3U-s6hP1YK{Oact8hzxhy%vI>r@ zO3)|+!|*F(vZ9pEhR6xs`YnkXR*i_qKU25G8~&{&JNG%O#=T(?e#H$dIc&#oef;i; z&tMup8$Y|_3ChGz{ZN%Uy@P5as#&Ebc2JW6ZK4RC|F(aDhE(69E!D!W_DuR{*-5h~ zxHnL|AiH^_)uK>J@sS+GM!4P=&OqVBDwmw#?3?WDnwnzR1J{`e zquz*PCSU}k2i}o|?!zb@yZRCO`V7ZZtUBvZ2J%m+Du*6R*P|5g^;aC7vK;xgqm=rX$`d!;&yu<$wW`*qQMNsmpEehk5&5$ZL5-y^LtAQ{x4ISrW4)2LM1#0e%H zjrJtx8@Lu@>v zTYU4EY>YpdDO50Oids-~l&w}@nW}jXn%_`r@}<=bAGS5fXIp*5)BSkRekl#5yct>> z+&psL7y_6}TGESR}#XVylcrPm!;qL>P-)1PAIU4(DSivL|w% z^S=1+u?4{M?sRLnQ;8Ly&l`f-A-Fo3+F6isWYucJ2^~ekFtMoj;|(u}Hx#vyT_?=( zuC{#R<2H1G?@$rQE3soG22!l=P$uPtzxxy;hEU zjGEUVYm>@ZvVwahCi+wgS*2eK+r^`}suRr1BN=qh**fi*31 z&{d>Hl+sj6%IkHz$xDd+X6IX$v#_t(LP#8g@ z3F=1B9R%qKiUwpntQ!ZfFpi2x<6v0}jMl20J>xvyK|hR`N_~^70Uc&eU<<(LQ{pG- zN6tyS+r)e#QPZ!hcx)hsxA~64Q-|!-WPrt z*f$IW;(TNVP~Q!p;Ugc-0Gju^ABK#yN$B5wn=V&cTn#35t`@v27xUN*l$`!Z30ISq ztUtOd*?Xrv^iE%ch{vQZEARsEVRA6JHU(1psr$IZX<533P=d^y<8$vET`lH+@+e~+ zq&n8tzdF2M%aOq+9lRCu-q}@y;lf1AgwU%agvw;^)T^P>RMn<9HSU~&v;s;?k8aKo z<1TDX)VTA|B6H%X)L`q`ziTUYVKxKM{JSxu8FtTe;ZA9N*Cu&izZ%+|dN|R~c(il; zv%lX!bWfd=yqB(y?5@U>ouoxRXuQ~1B6<5<>lItVYawWQT)C?Tyv)W8e-g>K1rrcj zCJd)R1{Idqq9zE1okvTFG1Rg8A9AKwrh&RNU2xs;#svm557oo&F{Squ69l{c~KQ^qvwaKNR6S021yuGJm5`NZw%SrEawY4RHHxgY1UFz>LRRtt@}-qN4?3!_$eYks=i-yA#1v=*EE^$(|| zJD6vUDP0zSLPlq5J(IgRm`z^i{qX03EW_LQvnbqS_pWOkA#}5QUv2DF5QCY6Ye|U4 zwZyF96Ff}B^(eENPE-l*HQJiVdhE(+Fr{=)Hq>;|kmV$qTn|_@HuvNR`NR^0FNn}& zxhID?yI@a3{MaTBgVJ&hro5gtW=Ms|yC5ZIL}aC>iZjF9{&Hz0DhWYMcZf9|(^7GU zsm7o5%l98eg|0Ts4=*M^Om@J}$`U`$xw`#^_sFkTXx_9X7tq!fnY7$Sw^st*nh=Gu=fNWT2TC&_3k=Mgv@}T<#^#f2v ztHD*-Xsb7XP3Ke2o(fhW1*hfp#7r>9CYaV9xZ0g83nSbTR}0IV;Rut1kXg4i1Zx`S zIAdALH7s3>W$T*7ISuY)y_gbGqv17^sf7ynLuRx&_as9N+p-wdm1=T75>hWjpCXO! zuFxqMi{C)?Iilo>MToT}tDsnMjxd(xHF4c@P^Dbm0N+zl)`>BT`-rrIgYXtl>_|^RP`(pXkuYYr(bGA!l-;Pavv2 z*)iIhcs)28ahlnkY=}Npqba1MCj$#{Z@L5)VytxgyYA8~FmA8hloTnR@W%cYD?~i! z&HwH08Iz9jE+N#^x#YreM&I?{S{>R4WHefsx-J$>Cd2FUCx`2;Krtl3kvGvV ze=iO~KO+X$VMU4&Buxyzu+^)-5gzsGLKOJ9EH~$%4A-?xh^s{;#wU}|qQn%v@o<$J z!*o**Y6Xf>Nk6oq?e-J22BnX_Pk{xmgf27Evi6 zqsEQjs51s^o8FsA*1$V9pRKq5Vs}v48ZAX}yo9 zASnzBOd9zj`G^-)iPreBd;mL0zJLgVqDIF7ZQjj)M5Dlu{DGrc?}k4^@cZ1Kd3T^( zG`ndmOGoFEHyI{1!d^H9hKrrm!T0hdY+;;%q@0~nQ{~8?z45KRgc}RJ^I8WK%$^S` zETzyqOmuU)O|C@gBU$NkCeq;xn#IGugRarRlcdJx9b2F z=0|GsW{AO8P^rb|odGuGyiZ7+$OX`fdWl9Fp+r{TV2UY2{$gH-CUp6ipk<0%)i%S; z^(V#tvUb;koGco)HZ&Mu>B#IK7{6wGrzlue&vS&xo3qshWuo1MbhN1(bx39-nnbf} zy-DL7xwM7?QZM@&LfHu^@Dw*87eqS&nv&Ow;$I0!JW(G&Rq-?6=*pYtOElH7VAI7t z+hTBMTeQZ=>u4TMiyqsU01_=B=^4de8H<{sobN@#u%5UK1cU5KWAOnP1|Y#$w1=Bf zfoUokYoO0^F@NbW-02pwm#Ju09hN)Y5+4yD+*o9xIPQ%q{( zO9>HATzw0gj@X{_4piKeQpM>Oll(PRsv3EHuzl@CY=}IPiFi`6;Zy}4RTk|YRdaoq z=oMG4ADY2U&-+k|IsI!0b5>STY~$M61+IYZ2Um1#WEFDcZb#z6~K~cSvd_cGA&1cGvvS z|OQwxD^h zH*50lC|n<`aSjs$vmp<2=;zSq#D46~YxT@&Ehm~W<(M+c-d3ccy8;x;i+-$cRMU2p z2F5rlWi_lgh7u1AQH6i9)jb{h1+iz{>qv)m&5z|rQwZk>SOo#PO6apG!Mjjll#Gh* z#W;mrtu4PC2&=PJfwdMaFE%ni{9x+j0AzX^Gxyn*G zu@dEQ`EHLDUE-#c-^G*`n;ZzX@o?VnnE5K{HjlQiP1a;eb{&g|s{IlcGr!UAIt1++ zT((I^YUE=?wO-k9f+$sWf-NImek((IOUIrSo=uZx`m;d=kIbUp5wksR*XRLV4G}o_ zaRi|M+k25FRP)k2)+^MBRRT>zx8)(9X6T?DP~jGWcL7Fp;>W`<@sl3_wmFy=!n)R? z^UhAR4nOhO+~2=5 zmQ?+IvCGL+`P3|_ZzmQmygW;~s}t)ZXfH}Ro!BD5GD|w%iS-|^PgRt3S->yf=Iz*~ z#X`iBq^6e0>B$%U58DCE@IkdN?w~biS%wmi2^=T&e zI=SkykeZ$$Kai?O!@IM&gHh2+bTduTdODbcWnhJ%tTLnDT4j=7!`e!0%#c@1SESdv zGw-0CTfsEcWQ=e+X zb}`ODSL3417V1P(^ll?0-IKMdyxZF9i~GXQ35a_*;udSMb^nz!I1L%hYt4{f11(J+ zJxwtpS>_D+A>dd<$k(Meg4taK`YA}|oGUffhDZ*fbr}@r^DWq>MvOduvC-j&4(l9n zcze-tc#7+A5{A^-X+s~x{oob8Pehzb__+3DD3pgzAqz=Y)=(Z06vA&o*kv^s5?p@@ z{nvV4$hjKFkB-_Epi-s1__(D7E}VBTw&1xg_U(tgdmI z3T%Yldrn1LIF<%X$!n26p+M*f#70bn0#nmTavXRdrKT%+O*}~lsr2O6C_YrK&3;>2 zUF-B3BaWGk4#HmkWrAi8?T3}pMq?>$0+!OwqVl=@Bv_?1 zP5{32WkP|b^nl7}AO^KEFj@(w6aY4S1-L||hY?Jr1o|j~cc?P)1e1k>ZX=kC67WKT z$4gLrsq_+pcd77R zf(JSb_#D9(RQL+P)ZHnci{S^zIQ;tJo+vdS!D`A@+PObpVtT zIzH%K(iZs@t0gO(s-Z2k0(9${4b_0=tO_BS4^`9T8WI0--z-KgPr= zn|(a7jhs#Prm4szwymALkl2lrC^XrgrlOG8`R(jY#Qub{$=oy*`-#1)oqe#b0Q@&O zpDayNagO*W+xfKsWG~pRC=bC8Pkkh@XK^+e zoTfY;go@;Lw(T;-9}T`ThL^UTDT^`y@r$_v}MWGxz7 z#X$ILn3jAPMXrP)_PK=xWm8V6((Nt~8rO0c~WiOZK1(U+MEa9HaI$w_z5ZJz$cKs50+IxVsi9UXml4fgs}XpaHF z9u564`VsI`x&z`hIywqZ!X(KZzKi2~@jDrKjcz|66f&R#B?XC^WDXt#QOlvX0AULY z>~cU|IP@N%SPoSJ>dc|zfbQbZNk9P{Is<3|ht2`gap(e|iGbW=Y5~>gF5x$hbLvXa zJB;Mu6%Z3RBm)}Gp$0(6ID#|+>cOEVKzDMe1rRPWg4+t{Za{J`l$UR%CI;q%s%~__ zv`k_k)x%A^eTO38_AQDbPv3R>7KJi~%t(F=WMvF()yXRXW@Y6_&-SB@2C1wc8%`#M zBRFNOJ4fqI(jS?GQ4aIwkgZZ{KNcDQtH!1n$0Pc)Ui$I4CJ`NO-YQM%&w9tgh#td#=H(W-E)r9~w7M(@bHe1_@oAY`oV|cTPr%^Qctu2z&pIN(7;Govr~GE*2Z+75KS0F?4%#Iwz+w9r4&(fHFm~ahzol~;Vs(` z^N8>;(1Gf-n7_gg)Tn-NE7<%--(cg2;0OqDB-A(}(9(_s;^NdHsSs^#;32_OmdQ z5W?)|0*%fIVju(tSlAtX^Fb;n123+1-czij($4E-PlO>WU+jj^DhrE>DB(gdO9mDqi!-ZIy5Ek#l3>s%ZU?HlN~xJl38}#;KXtmdZlaiQ%&ViD9j?WVa7~zs&8y5fN*3bDYjg-%ojby|kmy>p zUPzFxR;beMJ1TFJ`VM9xloHp#5E!P$b&}|@uIQl3vf1E zqq9L{k%-@^#-b;Y%&AkIi#A;Q3y?E;sxxB4HH9RKKY;RO*nd_ImK4&^d^JIHbt5>- z^7IDWc@SIenILUALEJP{i~Qp-8n4Y)x7-@AKx1z~@~+N6NNkBLtMciSXJ8kmsIp=a zbiA_?KgPrlQ?EvnRG!||*4Me-)z;7Xh^uXY)9GrnI3IMi4RktOZG)VPU2TJ%3terI z&Uvo3Va{|{Ta+`^)i%;O-PJbAIoZ{Ahw~m+TWDUOGUnt4j4}2IXs@5;Y8#%{>D^HT z&s^5*%RwU0TXHZQIiTo|o9l-yJ7Ew%6*p1tHnT~agnNoA^O~{O{T24%((GmgOq2f_ z%4aB`{_{<>+MlKZx;13MEkSo9=(NoVECH%ocH5xB?YC<-ysLCRK;^0&=4E{aC6*@d z>d-#Lr=3m+d?JlpWSuHT?MG(?z&^g|4Dr0xO{nb`}kKIcc|o@ zL=L`5E>X$b;B89K-r6<9q={eFSX&OvmG+Ebv-}n&YNUQ+S%_pD%VLFT2c_v_+2Vro zxwNOpE!%kbn6aoHrn}*)YS*;IJ;fO{Ws0-=hO6AB*G+MTPnlvY9)vQgD7=R2oH)`x zC&zt+O|h&0f_TL!5ap*{=LcGSDl!S%z%gUdAZ)D5Jtf}sf2qgB7uP_H{)~~ z^@m%r25jFK5V;zH9?xb!0I=TQX5U7kaO5EWK8Qzzv$-E4)oE>a zXuvtMebK@MO)6%!GhcslI0?e>S~#BA9AEa?MD~ea!OK6zYii-@;I6^_0;l{K zubK06yk-sD3vkcDJp<+w;V6#(+#CPU#2xH)i-1K$Go4BRfbht$ZV8~3pA!GEu^76=Ha1_N9VxCl6;Oo~fj zy$agv=^Th(!cl$6aKFN}!ug}9O>no?;UM6n;O>O`|4^U2I(Hz+}eS?e+RO z;5xW#a7}P+aC+2HH@N>+=XZlX1@6|mw*!9|uH6PU1KtMrpSDn-8pBC2&%@nn6u$uf z6RzDjx}##qKrC?ozl{Q6Z!?4yApE~sf({jHgzEtp4rhTI1~(cG)}e`qyVWqVf!`13 zfFq;Ghbw@40uFUvHp$9tT0h~hcxl@dRyf$z8n4+1C&E1i=Y^Bt{sH$Q+!eUe)_5s) zDq9&!HyqzpFgv9CBnN@uBYIru(P?v~52iBdR=#N<@%i0u({OEW+3IQRFcaQzN+VL( zP<)~y%}rt72>Vt^cg|pGoy|DHl4WxbMS5li8=^DWPhRZYJ6>sL@*DG3B#m$f3b}6u3IWh~e>WnkyQMUqnxC^OQwQ!aVDAy8MfT zVZdKJ9dGk&w19?dcLxQH=#L}D+Yanz1}V~4GueG?hIE&W4J^okRP?EGTF=}r_zKd1 z6wq!0?v%MVHlWjxO^9W~-8A7f7V{b2Os(AGvN~Z3Ar<;e8|F|)o}mMqObnP;=swz) zKs`x42y_ugAWkcxl|6wQ%Lu8e>#Q53*J%7s*yNmNq#HIC){n};&9ftJq>N@opZfj( zI?hU)jEXcimBk3-o{@6l-}Ux(3?XG95cF&e!!O0~#cL=9N(RpP{H(G~E`iYRohZM~ zNj!~f^i+NyY?r=CWnn#rW9d=#e#lfml8;aryJ?#fO#=EHmbr+m@OjCU z#zwRCQbHOVV2g!zaV!E3!8O?v4&l}l+E!cMD8o?5}7`U_k0rBJ_%2Uj)g>t zKs3)m1TE1#7j@f1^uMKE{gFz`92ih4M7TjD;Y$~rd`}0eB{aGNMH{!t7DA~~l3=_x zIk*Gmw?h3pgt@8xzLi@%8m+Sn#ehPs0BMQXLo~|YUqOwev@DU%&S67@m$ve%?bW@D zuWECVgPT>mdaE=%o%Jo4gW$L!>Dh?+6b=BCv6P4xUlug=+UQemy;@1s2&jl7+l8rZ zvz=u!b%suh}$^mZqQcq!U~V##0(0$+cnbZbQWm7`civE zZ1TlaRw6Z|v(R4s0x0!b_r@(?+)RB@iPSfPg$ni(DHeXO^PPQS+invZQzESZJG>WC z6nzR6)=Tt9&D~OG#hn#tUj~cLIQ3L}HSkJ$rvv4+@=6EFYh@?U=1%^&XvaL(zo^7E zgF+X)sq+h<>)?OUb!q2Q(#T8}+-v@A+$6n^o%ED6Ka=$g8cy1&14-&ey81jN6=$*$ zqknqR*TSOyv#Dq5sXN_ExkYPNTkDZ0rGIC#VaA8|3mT5C!wFGV)1^hj+s!pN@Y($A7oaPC7*zkj?JskpdAkD)F>4ho=z_1a;e2Xtf*UmKDVyDTQrFrw&*a8#8$xzzI>1%u1^VdG3`N^$H&}@b( zYb_*DI4B~ge#6~-8M;<2k@gVp{Vl{)(itKT^TWU*p2UbU-M2{2>(g7+l-H?zKkaBl z`V{sofA4C7G(3leOgjg9hP~W82^E;Rv7-ka>8lqr;<~-whl6r^y<1B$_c$wGkVZc;4eA6i@>u0#gtap@d#ttWOKrXDwAto|bn`DZ4;wUL#&v9f74BlnLCy!3F|79Bd-+aSqZb zDX-xmbqI1U2dUl5wtG2jAUK_aFgT4ojf2!S8NY<)akc*+a37ttEy@Lwp6`PH~fj7zwP zMNv}eR&HalqRgj9F~naS_t_N<=F%_VdIL5wpBI!e^L^}fKOya2>4U{=iEw(6G<*r0 z99Ge`WDni#Jb&W-QXo}4z=n@GR-g_R=_rT8fW^sX zw-pZ{v}_npE0(;@4gs8pz@gFXECqe4KlatZg%BI{QF*2gzP+8!`>a7kZ>4ZH&^^|3 zxYX7vmrIM6vg6%mucO3a*g@jl)=Tn(>!er*`sNGGQnmy8ra|kZXC2JK%+e7D>mj_f zR{Gq*1_-aOmHu?Fr-VLhr7g=K?)pu7bs4h@_Q#~2xy)i%{uq+$Pvvs|W76bYwo9mb zRJxkWdJi4i)P|{&;7*97c@ixE&dMc^`W65Qkx1*RDDiB%y!KIP#Byl9d|jHkoCOPs zk4j6Hvxkl69zlW=MyaJ){fP9#a@J26bX^Kq!KTeg0~0qU#j~zTswh;39N$iIFn;lJ z)U7z)ABeaW53tFmTk$Tq3jB!l@(Q*n`Z+ur(CqK;#B*w%gcvH#O`IaAl(9rv4T>jW zyqdP9`O>5ZQPZFNA}x53#S{dC$-8o^p3;Xp^}C&dTcN+;0fG&8@mlM4i!4^}Uw}jP zh`izQC>OiM#GV9!5~mtmAut@MIkZ`>N&}WOXR)x8yFJ5Yus6yTpOxpWkt{3OX5o+3 z(!rIiw{U->^wCNdJ#+tRHJ#jKZSu1nD3XmCB%y*QiKk;75Li1RD$+aqbtG>I$f}tc zANUEAtBn# zB7f&#Ol1?|iIz(=Ad?7L;6v^qWLBP(`7j$576GD|flI`qb^j9g42yft0gv_`xAnq= z$!2Nq!)!#f+2KFzSQ@=(amJ}ehlXI2kNOav*f&*VRR9^~KBuHx#WIBRKT0{PScEXt zDHX0_iNcjt(uq}A%~Y(Cep$s*?sTl8k(nCZvPy$Z9tD(2hd16CDi83oO4yqjs3!r% zNxj49RZ_kaHuGGA^o)~D5l%fUU3Q`ojA)RAJhrgYPU=TTUXzyQu@8kmuSsK8vxu;? zhq!jE;*jhemI2=1?1n_N`^epPCmXKo=H+KFW= zrR%HNK%r!%6uJh+YsSV35{R~HgE+Ew#h3gZKq+et6km+W16)<-XOsVUP~}}BUWm#A z%(MNCk5@;$Rv^#`n1?$Cl)8>*;V%(WE-mqsK3ao4u5nkT8*5l(_rR+dNbo$v3F=?(3r{SSEbEzD_|q=EzMdWKlVC@f zuV|6p7hyWx7UtE@43e&D_B11mzp)j>lQAAll5aV~-v){<$dm zi7U$HJ9p{qeb9R(r&BeV2bJOzNeWCs|6|DC8tIN$U&|kvO{-2`D9!5=_^7i*Uzd zcMO-%JIx}>m?yE6NF*U0d6JDEveJwG%P=<8?q|k_LwIK}*og}+_{yY4(a|M|EPQgm zfayZEOMRbWq22sGL5h4A#_5KT-XTqU3ZI>nER&W!#qJXx_(VGU6q_vseIgAkVH;RU z*}qEI046xjmYvxOOB5D=EPe7cbM>vmYcg5xL`xXTC(&ZTF61o@uKJ_0RbG~(6)-{k zRAQ^?Ch`&p+n4NKxkZ|@gWWZbo+;t0M!eHSp8?{<0#NXAK2Z94cDiM@Ts?@|I6e@} zL{bw$5C%&h?qH#YZCI%~I%6go{N6IDaR&e-gE zeb2GJERd(cX<4~M9D_uB@(ya&#>YDQG7P8J;@e zmUR5>RW_2sps=2cn8Gu2rSzTbm-fi)JhHOc&$IVf*9$ayY^-ck91(KJF{#gsY?$FX z&@4Rh8X;e;ESvKp`?FKPbD`}$TiM)yv8_UY(zAo`+e>UQV_T$oudp=sec9`;ux|)` z@>MpQyD{+kb02ksAnME#_w zy6{r9Hc-Wu{qYX#uDx?DtPUSwhUatN6ud>ngEy&o;7%0}+@a#S11hfDzg@bwlJ$wF z@SglIQsGoZxC&fb0x7siC3R@ors5r1_THu?inOf!yB3o#w5dH*a3L4T4lGf9-7cRN zN`NPSBFr*e&6bHLfTsoT^{I+=d%2(K%W0-hdnUB2IZ_jFQw7E5$)8R)^C&`98{*{l z|39>ZN*62HsDP_&ZS-Y0UjLA~S7G*OT2c056)RwZyR#Hgjj0d_OR8B4qZ6sOkF!I# z>bUd+7AfpsDtSL(uL!1PQv3;KA%DpU_7C#?YS=XRWwsiOks*t6`CA?*jYse4YMggU z-PsAmUeW1OsCS6{aEe*kL?>2NbQ@#Zc(DcBI@T*T`CgF3FFYw1#6~%yJ8n04tjERA zvD$e{4g!i~WAoyq?EPJ`pJp)u=~#(?hG$5mf1YN)bh-3f8-k>S$ln;HJ!jaP!cb#b z`bVr%5a$0Xg`9(-hWskcKZmLEz#!?-bL?PbQ5rg3Ji-z1)Xh$ff9hwzJ-O&g49n>m zHGVs0OS3*Ye81YVS(;hLB0yhRhZ*H_g=IVIaB3x>F3w$MQNqIOQrl&8O)%aG z-?2;se~U2kGyZm;^!#_QTUbjq`8$?MSHEL3$e-{%8*8M;Dv`+LyO8JMAg=$Oy-aF` zUSVkgnr1SPlk(!PrHxl;LcT&ec!k|W^cVKNu=%WX z->+E5MJ$uv{S^&c?|9}qTishNV%!v!r=C&EvxRD*Rjxl>w)Hxm-3^V7Q*SjrL37(_ zrmD+2zs-DOE=_v9iA@*mxn+MfVJxJYhf8PhGV$UYWTxPAq` zszid5Ff6M@hX>2(U0BnTB#gkw+DZAWPXVUGw<(~;b&_J3=o2Vu7rjST1FuynEJ}K?{kwtS<1QpO?kHOaX+<R3Qjs$QBv}A-cT==|0MEKOrF};Jr4yoQ8>z$+{ovmLHdsK>?a_90@#0 zbg~P=f>L(M!$>?s*WRwSfNI^vh2+Y2NfQr2no?Ti*WQ&r_7kQH=iZmXw8DKt?)y@q zR#*_+1(_5ZJ?nOQJTVx<=(_OGV^Wh=I4aaSq_=fKOu=-lDzG-i`Ws(NB#FuTbY)B- zZhnhQvBi6eDOd$ff^44R*%(P}@{B432y6t&byg8mO|f4%gYcPi`Ya{*JuH1x7GBYc zt#S77c+3c&iX}8Y8`#p$L@tW=Ll;`}b;<587=p;!Ypj>l%Hmgeiv5M5W9e1K`hLcd zUm`@H7BZ{w>QZ)~`dDKY9!t*j!P%csInV=z!6^QJ`wRU#`C^j-I|+Tl2}#kbpAP)) znPd^C;5mTDaZu!bo%#?_{d$nTzuykT+|DeD7gtc7QNp0Cn@AoRGs0Q<$tc+J*O|lt5hyX4@t_ zdM6zW5LWh``xezELT6ctuBT!lgR-8i50gD_mEGM%c!~*&mPzLfLb6bfZY)rk+nEp5 zWNT&X0)=RLinr`dJh9HA)HB5Fld)BKTD11+^?^{T)1zsj9;&MOJIEZSN$pQYA+diQ zdOo~85E;G_0EDfrZr38rxZEx~erx<%W=XS6!d$_&TsmkHhIP-fVIp?FQ{#DeI{5r^ zGU+FiU}q0Y89~C-{(NybvT7B!tU6w$NmZX}GvMJjxl@Ex9V8s@qduvbiD{E5+&3-+ zH}X=;3U6Fmwy&G;BcE4qGYc`ogagutW?=*75@jjDLNXJ^yd+6Ignq)Y{n9%Z?3McU7J9^ZLB6Gn-~+Bf9_|yS4i&k`H7% z!-Nqukevw=h75_oTTz<}*Wm2P!mjVzL!bGHr$s--rd@iHP8G!j3^^vF12sy&Lho#a! z!YCT-KI<24LmgKImjGE8AufwlgaV zN#l7q*R$4QK+o!VG}k#FX$$91@?z~uFA4(>q$h!?+oE@cfp?FH9481S65b+BOWMGsBND|e7FUBS3w9QpmKaN|h4!zKMP zSP1Q9N?M8djPji%G4gvz+`@jOhuYe50_jC}#K6<5T_zPq3O)ZTFMgTyYNX)q^cK{K zNs&_FKB0GTq#W@Kw{bKhD4}Mt;2CN85TVzwL@;hzd7?!fg+t^^+kFAl5j|2qjn7Mm zr~|M(L`WM=+2Z|m_(?!$mhs3&wk49vpXPv`q=~7Zny|SwiZ18tcSy^J3bn$%XQau) zgoupp+k6qIF-FL*84XdN4(OJVZyTkUY>fB z&XOzL8-*5y&9Jg4VWRq0UD8C@Hl{4k3>TgcqLe0Drq99&f-$mIuGuENHe85+v7a4| zaA}e>aD-s%M-~D@q{8D5s2L+a0{9Rf?4nh}z>?guXGREvSiu1aP0fU+c61?`<31EX zgggyI#1T;gM`JMcRf~X(2XfR_L6X31#FCdm7O#x?c~-7)gq+Xn9=?u zz0UrO^zkU6e?J2>Q%c99Pv8$AtIu|!fGnWkYd9(B4xwlK64WRP(1U%yqm{e}?UYz5 zu?oU*y9)-Z7V%282=I`_w+r>J3^dBk9_gnSgdTC zNPL%8WvPV}G%1G2F=~m?MD^#SZ|CKEJFD->5H)#AX}$N%@7ex)1^M+guY!Y&~Sa< z-pvEImPpCtF#JuNE-i=OWp+E`=@RK5#K@g4RgM$-btzOCypkHm36YK+oPe_YRb1C1 zrkLKLzu4AXr7b@R-T!TQ=`o2t*o{v!SvkBgd9DH@p!TT!S%Faky0lJ;XODjW}efitg$O=Rw}Dw@MPB( zsc3?b=$AXVO*%b6$nom}AnH!R5=iHPsSd+j7=Qd>Y5tu;MD)0!yxDll%&;DuT87B` z2BGbsK*AjHb3KOMpZ*bj3eOOw!p)k6k~wjv?BJaOF4Jz68e@ffCN?6Wd^b19dcl>i zSDZ#{)k0WV$&-m3`-^S!MB|%GT+@nA){fFKuLEyC$}wl96%&P6{$w_70Ma!-+&d8G zn{*LK3|_LL)j^}E$5WW2&&#P4P%im5#shkRiQ!<%uJ47Lpm>!b9pBUMz=LzwCkpqo ztz{W;!k7jcBOTxFu(Rqfr6Jq4;eW2=GbY&J^)eOZmX*QcfC!Q5g zR9*H@t*Y}EKeWkjLfD-!o=g`X0k0m2f?WVbeOCGPn&ASk9?!#)vQhFFD5LTYMmfX! z5WSE=Z)VQ-NrB`}h?0ARw<#wQf;1?{X)!3r`tJ}dOCIvAbaw*Qh>O4`Ej{rvT6(%e zsL-GYQ)$@STrD*u2+_iEhtw}o7>&_+cB1hAQ1&ixQ5IeN`0fnos^BgP2nvb{ii$$s zFQ6!(l%gogMFB6V;eurfYTm#WQQX$7)X}oi)Uvykg{3K8Qp_^+HPf=PvU+%-LM6jQ z_xC+B&jMQS|M&az`7F=#%=OI7nKNh3IdkS-7zs0do zsDFG%Vjl)hYuZRmW(4PtWD%r++AfEjylaR9BUzU&2qL$z`!B%o(7bLmND4@|XDmk3 zVbc(Xu?6oSOrzKYDkgmtYoCEU_OX3awDxGEeeA$@jVaoO@6;j}Dvy0*ZN>2j+5^WL z;ES{Vwjy2h5mtseMg}?ZN@c>k6Ns-yv89b0m>$oh$jKhh+7bw_#IuN&u9gt6(L($j z&w6+vj6Riw%i@E+>3Ba2YEEq-3`HwO-_JUx_B{fqM+0h%!>gAh*fF7wymI7CFuA}# z{Qm{L6!oUX1lf_SvKDrb6%qRY3zu>NNn=on4*>);keB|*&Rzci3t#~6 ztq0i1VCr1y;KItZZO{Y~!Wgwp@-0FF-QpYJH=4ysk7T-MN}6i6#c&>n`CBdLFZ9qP z7?GX^`kYi}=?k!)+AjYkkI`#iLp(jGq#Q%MVtA5cYH-2QIzw)Ei5|AakVz!BefyglAqtAvN0k>b*5*0L)`SQSq4LY(zih3BF0`fat{$9t3T8pHfr zz#~90n2Rt^xE|;`h9%{{>8%hS7C}0hN=gCNpZ`doW0){-!hw)SQK0tDmzcwb-e>!q z)TZM*4OdHq1(H_-`$8%;iX0tiPsl`|P#+(>13Ovx;e(&Jq?E+O#4Pe}3AdNfg-@L# z-3W*#2`qikp$jO>-jZ4vWN%6SkiDD};=yShB)-e>aUw)b*LTtP9*|4N^7ZOt+9vT_ z0-H;UgXUw|U=OJjA=Zgx7KvloqCmyQr8)A}AEKNxo8x^8iUX4@u8d_FgK0L}V?xPg zoHx!ifZ&qPI4RN!RB>S{E&>VfiW5u6v6&LFWJ1&%C=qL%x4hjblNh(UaSE~8CbGB* zgji#7g{w9YVm|v=*kfzG=xv;b)m;mgZ{EPPws=DaYv3Q?>PBmd?vzMjkB_w7B*%86 zYG5-lp727vlgRu{uOsD3IL{Dg6WP|b$IV2Ehk^c&$6A-Dy<#DzReRffN30poa@*`{ zg({2ah(VtlyfhJh2QAvpR(DETPhjJj--Q-56k|PLrri{<{DQ7Z){eHgBbH5M5ylzf z&53M0Z-;N=B)Kn-oWwe@%b;?T*tGUE_4c_GwSV0f(&eI?W2GgX`Up$NMm8xl$HFR#?~0wFOP}E zQ`ornsgg!{*$Pkr-1B1XY)~iUW{aPvupuD*9n&FGa}YI4b5G0`h3PDZJjV1Xh2vL$ zyEk0^iaY6SUjAlyGuK{b|0>zmIdrL&lHz#nyXgdanp&_;+Qa{zZ*LCOi%JLRMuqKr&WSSS27jfK~*D8Ph>>4486Mo(uMtKA}bVKf3^;ZkztL1r|zQTRg&B~0?B5SkN; zK>b=bll|a9!dA6CJC-9VX0c9VA4yYPFE@Tyv_0|@mvtgn8FhaZMmnKJ+l=srE>OG1 zDy_Gk8Hp?~V(pwJ(q^+Aw0_;0&8~XcQ&id2D*CgOO+HI;Ul z{Iq0fj#cn_Nh9l7mLn3g*ppQH4_WL57xr7SOV-R`pBpJWB^v@(h&h&IW4nUqOWABl z>*tg7-X?+!X{mN8NmOSu|EY%&(EtbrT*iB7X|4=3_b5ZW41iF^!!Z_#sAHr=W;i^( ztKOvvfzhBE;NY9W09IBG!**%9nkR9(H)JrWnYZc* zs3;_GB#J*CW`WI>lspZTyu|kr_KdM339an~8z4=!l`cctXg3ntX+OgG3clceUwk@` z&GZ0?aKsfTfW(=Ftc#fTDA+f{II;IpHpuvp`2A5fkoA91gwAKv{9POi)n?}qj)b9I z={`W`?ep1y*jvYGDQ|F@Y;kdr<#RDJ!FMFv76&-(R~uN50DS>l*B4~L>ZTQK76A)b zIJ;UU&TL?9#LNX4sI$|>6AM^aOR636C3K(U(2g%)^Ni1n0lDmz{9_NOW)Wa?QP)h> zJ8#|-oIt^~+NOJg`@{GUT)>~Oat3D|ibU@B%o48863`6$7Z@M6V6Zs#T+4Wok;jsv zuibwa5ayyiAV3O`ukMZ7s7KXm2kN6lbsmc%+7P~w`E;iFX%1hv6CJZi3chR5d<@iK zt9uH>LUPVNw2) z73LyeapoZw(7Hw|kEN>A+5oYVSDYBOhWYlmDT8TjUepsvO+pR4!YR;ptH#s*qHYO` z?l@ZyFO|JiwlEdoqP%hS!6IWRdlP`SSjGm9KL6A0e^cEmsZ*+ZFbW~0qAmw;wrF%p z#Y)w0?gj*YNC)jy3bAe(>*o=MK2&rP0DZBHjbfKZ2*2elnW)UX=$0Hm| zEu_?hY+hFcYg2!`?S!#lG&m+KKlf^rH|L12m$Q|_4*u{j5EC=8>)#`4wI>i^pG0H< znmO_83f7LS>`GR!*+y2dsiZ>zYhq-dM2oH~*$ML#n7_DKsCfCl+4d;EC&cZQY-vMa zDFTC^5UU?&S>#KuvC%ACh26*vv&a0?-qf)Q=cph>a_dhHr^y%<{Ijg5jt-LBV@&(W zL^d(0-U1bPyUGNiN@Di$VB|^C(~raL6d5fbYl-t-RVp5~u~zL#yG2+diQW}LGlRqj zFDxp{FNqgy%)eeWvNcB>#&_nhOaIb?^%`~Z(~ueme$R{kS>%-z^l?dRihKykxRONd zL8&7SH}}C7Y%>kNQom3kVqhWL&TNT9nSzD0kToSul4%tSm<%}phFj{cUG&eTXbZB( z2M}l68WT1M@&vHPa_2?tyKS+zGuHx9Zv+Gb&UxM{3hcFU8`xr&rUh*iD^{_-CSu)5 zjVwM|#iD$`)Y-~R(w|)YmdYwTida!+%OEw^YG`iMX-4@;bL_8ya#E4?>-$9@@0YU0 zA4P0v2=T6t(QLRo28sf3+IJUB-j zUBdI~}5z9AH>O`Y_G+%yKtVcg< z_m}I;F-DzuVsOMjcjAXDo@7IseMU4K7wz>B)lXtkj$O~XO3{g}%8zCRNZ#W0Y!XY& z7GJDqK14Ejn^2-kA~`Qa$m^r)pu4^0rEOFNHlPX-TSkxqQM$p;q*735nLuMT8sz$0Usaq&X2h4tGLY-ZD+VNu3u;@M|#;e#Ai}uRoQ4ocv+7un~(!;&<@4L5j$bVQXk~J!;I#Aj~oQo&CSF4EY zqSaJ+2PQV$Xb5z@_&-P~c6B4UOi&yNkA7_;5=9^pRB_twIk4JkFsFQNm|6ucY-Fj% z9pb)CY!jPsQk>j`fyNa2Z4(>Ju9b;y0-Fzfj}dH;H00?+lZ6r1I6SpDUs68P@Zf3=VJZCmDtJg3H@BxwBX9JB3x+qeUh2VdZ z8m1@KNzL_;lHx7wWhOTOF+@HIkRe;yogV0Ihh0Y%PwE55L^2^k%kdwZoW4MxW{_)Y zFLo}O`8+d|t&YfhfemE?I*a#TV4+^mL&Q#i$-1hw?}DUevFmXJHv+5*r2*_|dSbas zRcqseM2{EQW|nhEeDWe22zqik-d$z4Iq;uDT1ld26wottG;PpvV9v{jDw2@MZ1^SU;0hM7O=LUU38uVqGE^W zx&w{Ecs#U&-QW7tcCrYp1&F0RcC!GvDev(+A{v_I+WmWLMXn6Qy;Fv~cB1J{G%cx} z*uIlRx8BnBt`fbq3vI=oU63byjEKf10y$*?lUx}Bwrw^U$&6$OU69XlI{ubAj3noA@$+n(N|fXM>X;hC!Ovdn_Y74Rd&s2O5ID? zK4Gt@dYuhtP2U&cZ?ImzUm+Blz~bR<#gCdGHXNUnsO^1UEO>(r@O}Ed+x5qiV8Ks> z83q@k6miCBCADv`mPWQaTbSO0&JjlQJ>O#8gXK18bs@ATTFE_u3jn_pzM;z-(k&+ z9#7O)v?p7LcTv&Hoy5L(VZ?MSTRiX{ThW!~wK-h1DME{RLseV$54it$51JG#@GbVT z)X^Wju9EG&HyM?6coD2BEV4wb{#5>=5Uo(pL5uC(J^R*P)|=I2iy!y0?f#oy`yU01 zt?#pC|MzB#K_9Rm+3@xvumo1HkRB$Mu+`qg&eDRT`ir`1TeheyVV&C%iJMf15Q(-x zJ|oB#q%Yr??v!-f$C?^F`~d$#nr7|;b428a%)ugYgylmP=HKaM1#9U)nq>KiCHNoM z^}nJQeuSmYFGsxc5wnF6Y>gpHrxBz2eD00GpeFB!*$lhvCsrJQeh;|w-T`)h&&Fuk zOEd4d?X))4xrkI+ScoGrPcFNLHuzaZw~yH*|L0y(z>(?K-NPY1W`o>f^zU6REv?Ad52)=S3ad=;31ld`?5uRDGO`2 z1`s;-7b@;VN@n2%8g;^&Q9M}+;{%U5C2yCqBDCEq1{`6dBHSp)QsRpPLjf!-V6a;O zttP-z$b{|!e&zU;5$HgKw~nx>WX*3r3adQeapqB=-5XoQ(?{8=1__}EI>yfA)1BDR z4N+DpJ0_x}^UC^nrsNrrrgTV|x$tk$fn@F4v-c22$u#IpOuEiYr0IMjag~SvM~2Q4 zB^q+jK94}yC!bhNwKdP;5Ei?yo8mR)&E_sv6BooItu(tLR7NkR1!8;m+b3)p%bHM< zeVn~#WWHNOP#Na)-W@BZHERSX9=ynm(n`loLY!*iTva7ASxp z27I)md+bx}8-o87<(~pSs&0I6ik&j@r%ZRm>CYf0w|R=X&mhM@MgBM^(wgpVHi!Rc zF0!NNu}o_?*(E+_L9OTvC7O@H&%_Uo>#gGC=j;{c=^^HyW*b^nRTJK);wDf^CqeQ1 z0>+=fvj@Ilmr4H+R?cEcKR3UeZE8*WIh1!9X`?*|R3vD32Fw|(u9uu)dugv9ah6SI zX@7`k&H}?~e-}0M6u*l}|6wIPx^e8ta8!Skx9u>U${%M*gzag%2@0=Oky1?J&|vGM zg&Oaa3^)gCZDz<3Q@#WnI5Sf$`I1>f$cWjoKbJO7p@9YTkw*-Zdjzn-R)*F{&av5f zHea`6_V>{KXa=dt0-Pw*R*RR;v%VqHSlAYc1&dm(?|kHjga+Hnl&$lv^K1|^tQGyg zVoAnfVl5sl|F-!4D>g1*Ca%?`+e4j;yfwB4K8c}&`+N0mXNp#{T0C$8(%H{ei}@GW z{>h3iNDFvKdZo>u&VhfpLC$cmNwtuR0FcpOHZsemW};(t*Dhg)%_XIc2$Fu*4qQ7O zm?~L)5mtt5dSS`8->@t<99$iVAu~1)k`sfxOo`MV*ne5u>mv3?_D*YMN?vVFsWqo) z)MqAZiRmZCB%|tag&pcYcIm&&Supq(t?&Pc8K|{gDvUp~wq52)T+8f9laP!QvAZBy zsj_>_4UVUt21LVuX2HH{E1q5pT*8b@SHNV8r9ZQi9#oE+C_t{nUzjhc5VL*(Gk|B+ zFKj29aX~!&D;voQe-mH-+St$`M@-dN8xIR~!01ujY7)IsJg%`XjEhPpRFEw>_`$9J zWdrW6@L{WMwvw2G(m41Fwz-1K?m%Vb!*>F;7pW3DN#1!_t%G$8Y zb3~V`OdeiZa}`SmI(7F|(E1K%N-kYxEsU&Hxv03t9)mg4gV)(pt%^<&NvPjEoj7${ zM6Y2!?cSE*Bqf`qr@-jZK4s)7(Z7aWY`$BOwSK7B|4$asyj)>n2)>8?2@){zQ?cz& z-1qX=Nx9Z0V9?V^`_}vhb~9rKmZ@sxZl_LrOnx>}r=c>hge%%~gg5K}lsc_eyM=8a z!K`PlIw98o#r(RA_*B;9Lk6hOeB%08X)lr{4S8V@hu$U)|LMP29}_`q?}u}g&1#_~ z?;r-(ve9j+N%lBks5+hqN*TAFGNDN?*5XKyvrPO}3zH#yx4j7_=GEh3^i7uAs?Tv* z@g!9rwNjk9iK9OUtfJrFYz>>Oi9>&bu)BXE{`eb0vmcL(=C{~$L2`nU{K0D$QCGas zp^5aP=I|p6J8R*`#3#3yHdm`xS)ZC4Rb%<>lc^!s`y()zmT;QkWm6iI4BFsgbv*{Tpe( z_+R<=h-&Q=B7h>qZKOI`S6{U{OHSl6;4G&&VBCOX5+#^wUa8f+_K@ zsjm)yM4@|b0VdS07iZk(=1dOqe5P5@<2j$N~;rP~_bScS_&W^gcQGik}gt4e;gKs9fJlUeBGHj3*}_Gr{_nj}6~ zu-#$2f9PHSM^O(CuDo!bf-&A}O7M)3*w#RuSHm`-hp+u-!)T zi|M++!=hJDrc_=a7am}~L#dg-``o7dftDlzKm~pXBkPsVn(_zR|2GAtj5FE4`UfU} zr^*%yCcdaUbt&aBU_P5e�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 diff --git a/bin/audio/1/readme.txt b/bin/audio/1/readme.txt index 8fb1121..3a620a3 100644 --- a/bin/audio/1/readme.txt +++ b/bin/audio/1/readme.txt @@ -1 +1 @@ -- track_XX.ogg, track_XX.ogg, track_XX.wav for *_EN, *_DE, *_FR, *_IT, *_JA, *_RU \ No newline at end of file +- track_XX.ogg, track_XX.mp3, track_XX.wav for *_EN, *_DE, *_FR, *_IT, *_JA, *_RU \ No newline at end of file diff --git a/bin/audio/2/readme.txt b/bin/audio/2/readme.txt index 5366095..919f44a 100644 --- a/bin/audio/2/readme.txt +++ b/bin/audio/2/readme.txt @@ -1,2 +1,2 @@ -- track_XX.ogg, track_XX.ogg, track_XX.wav for *_EN, *_DE, *_FR, *_IT, *_JA, *_RU +- track_XX.ogg, track_XX.mp3, track_XX.wav for *_EN, *_DE, *_FR, *_IT, *_JA, *_RU - MAIN.SFX \ No newline at end of file diff --git a/src/core.h b/src/core.h index 0a4237f..ce816b2 100644 --- a/src/core.h +++ b/src/core.h @@ -1,6 +1,10 @@ #ifndef H_CORE #define H_CORE +#ifndef __EMSCRIPTEN__ + #define USE_INFLATE +#endif + #include #ifdef WIN32 #include @@ -137,6 +141,10 @@ #define glProgramBinary(...) #endif +#ifdef USE_INFLATE + #include "libs/tinf/tinf.h" +#endif + #include "utils.h" enum ControlKey { cLeft, cRight, cUp, cDown, cJump, cWalk, cAction, cWeapon, cLook, cStepLeft, cStepRight, cRoll, cInventory, cMAX }; @@ -540,6 +548,10 @@ namespace Core { } void init() { + #ifdef USE_INFLATE + tinf_init(); + #endif + Input::init(); #ifdef ANDROID void *libGL = dlopen("libGLESv2.so", RTLD_LAZY); diff --git a/src/gameflow.h b/src/gameflow.h index 4f074c4..6dc69b9 100644 --- a/src/gameflow.h +++ b/src/gameflow.h @@ -494,7 +494,7 @@ namespace TR { if (Stream::existsContent("DATA/GYM.SAT")) return VER_TR1_SEGA; - if (Stream::existsContent("data/ASSAULT.TR2") || Stream::existsContent("data/assault.TR2")) + if (Stream::existsContent("data/ASSAULT.TR2") || Stream::existsContent("assault.TR2")) return VER_TR2_PC; if (Stream::existsContent("DATA/ASSAULT.PSX")) return VER_TR2_PSX; @@ -630,6 +630,7 @@ namespace TR { callback(Sound::openCDAudioMP3("audio/cdaudio.dat", "audio/cdaudio.mp3", track), userData); return; } + sprintf(title, "track_%02d", track); if (!checkTrack("", title) && !checkTrack("audio/2/", title) && !checkTrack("audio/", title)) { callback(NULL, userData); return; @@ -674,6 +675,7 @@ namespace TR { switch (id) { case LVL_TR1_TITLE : if (Stream::existsContent("DATA/TITLEH.PCX")) return "DATA/TITLEH.PCX"; + if (Stream::existsContent("TITLEH.png")) return "TITLEH.png"; break; default : ; } @@ -683,6 +685,7 @@ namespace TR { case LVL_TR2_TITLE : if (Stream::existsContent("data/TITLE.PCX")) return "data/TITLE.PCX"; if (Stream::existsContent("pix/title.pcx")) return "pix/title.pcx"; + if (Stream::existsContent("TITLE.png")) return "TITLE.png"; break; default : ; } diff --git a/src/sound.h b/src/sound.h index c808c51..0acdb76 100644 --- a/src/sound.h +++ b/src/sound.h @@ -3,11 +3,10 @@ #define DECODE_VAG #define DECODE_ADPCM -//#define DECODE_MP3 #define DECODE_OGG -#ifdef __EMSCRIPTEN__ // TODO: http streaming - #undef DECODE_MP3 +#ifndef __EMSCRIPTEN + #define DECODE_MP3 #endif #include "utils.h" @@ -36,7 +35,7 @@ namespace Sound { #define MAX_FDN 16 #define MAX_DELAY 1024 - static const short FDN[MAX_FDN] = {281,331,373,419,461,503,547,593,641,683,727,769,811,853,907,953}; + static const int16 FDN[MAX_FDN] = { 281, 331, 373, 419, 461, 503, 547, 593, 641, 683, 727, 769, 811, 853, 907, 953 }; struct Delay { int index; diff --git a/src/texture.h b/src/texture.h index 5792213..346fd3a 100644 --- a/src/texture.h +++ b/src/texture.h @@ -281,11 +281,224 @@ struct Texture { return tex; } +#ifdef USE_INFLATE + static int pngPaeth(int a, int b, int c) { + int p = a + b - c; + int pa = abs(p - a); + int pb = abs(p - b); + int pc = abs(p - c); + if (pa <= pb && pa <= pc) + return a; + if (pb <= pc) + return b; + return c; + } + + static void pngFilter(int id, int BPP, int BPL, const uint8 *src, uint8 *dst, const uint8 *prev) { + enum { NONE, SUB, UP, AVRG, PAETH }; + + switch (id) { + case NONE : + memcpy(dst, src, BPL); + break; + case SUB : + memcpy(dst, src, BPP); + for (int i = BPP; i < BPL; i++) + dst[i] = src[i] + dst[i - BPP]; + break; + case UP : + for (int i = 0; i < BPL; i++) + dst[i] = src[i] + prev[i]; + break; + case AVRG : + for (int i = 0; i < BPP; i++) + dst[i] = src[i] + (prev[i] >> 1); + for (int i = BPP; i < BPL; i++) + dst[i] = src[i] + ((dst[i - BPP] + prev[i]) >> 1); + break; + case PAETH : + for (int i = 0; i < BPP; i++) + dst[i] = src[i] + pngPaeth(0, prev[i], 0); + for (int i = BPP; i < BPL; i++) + dst[i] = src[i] + pngPaeth(dst[i - BPP], prev[i], prev[i - BPP]); + break; + }; + } + + + static Texture* LoadPNG(Stream &stream) { + stream.seek(8); + + uint8 bits, colorType, interlace; + int BPP, BPL; + uint32 width, height; + + uint8 palette[256 * 3]; + uint8 trans[256]; + + uint8 *cdata = NULL; + int offset = 0; + + // read chunks + while (stream.pos < stream.size) { + uint32 chunkSize, chunkName; + chunkSize = swap32(stream.read(chunkSize)); + stream.read(chunkName); + if (chunkName == FOURCC("IHDR")) { // Image Header + width = swap32(stream.read(width)); + height = swap32(stream.read(height)); + stream.read(bits); + stream.read(colorType); + stream.seek(2); + stream.read(interlace); + + ASSERT(interlace == 0); + ASSERT(bits <= 8); + + int components; + switch (colorType) { + case 2 : components = 3; break; + case 4 : components = 2; break; + case 6 : components = 4; break; + default : components = 1; + } + + BPP = (bits + 7) / 8 * components; + BPL = (width * bits + 7) / 8 * components; + + cdata = new uint8[stream.size]; + memset(trans, 0xFF, sizeof(trans)); + } else if (chunkName == FOURCC("PLTE")) { // Palette + stream.raw(palette, chunkSize); + } else if (chunkName == FOURCC("tRNS")) { // Transparency info + stream.raw(trans, chunkSize); + } else if (chunkName == FOURCC("IDAT")) { // Compressed image data part + ASSERT(cdata); + stream.raw(cdata + offset, chunkSize); + offset += chunkSize; + } else if (chunkName == FOURCC("IEND")) { + break; + } else + stream.seek(chunkSize); + stream.seek(4); // skip chunk CRC + } + + ASSERT(cdata); + + uint8 *buffer = new uint8[(BPL + 1) * height]; + + uint32 cbytes; + tinf_uncompress(buffer, &cbytes, cdata + 2, 0); + delete[] cdata; + + ASSERT(cbytes > 0); + + // apply line filters to image + uint8 *data = new uint8[BPL * height]; + + uint8 *prev = new uint8[BPL]; + memset(prev, 0, BPL); + for (uint32 i = 0; i < height; i++) { + pngFilter(buffer[(BPL + 1) * i], BPP, BPL, &buffer[(BPL + 1) * i + 1], &data[BPL * i], prev); + if (i == 0) + delete[] prev; + prev = &data[BPL * i]; + } + delete[] buffer; + + + // convert to 32-bit image + uint8 *data32 = new uint8[width * height * 4]; + + uint8 *src = data; + uint8 *dst = data32; + + switch (colorType) { + case 0 : // grayscale + for (uint32 i = 0; i < width * height; i += 4, dst += 4, src++) { + dst[0] = + dst[1] = + dst[2] = src[0]; + dst[3] = trans[0]; + } + break; + case 2 : // RGB + for (uint32 i = 0; i < width * height; i++, dst += 4, src += 3) { + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + dst[3] = trans[0]; + } + break; + case 3 : // indexed color with alpha + for (uint32 j = 0, palWord = 0; j < height; j++) { + for (uint32 i = 0, curBit = 8; i < width; i++) { + if (curBit > 7) { + curBit -= 8; + palWord = *src++; + if (i < width - 1) + palWord |= *src << 8; + } + uint16 palIdx = (palWord >> (8 - bits - curBit)) & ~(0xFFFF << bits); + curBit += bits; + + dst[0] = palette[palIdx * 3 + 0]; + dst[1] = palette[palIdx * 3 + 1]; + dst[2] = palette[palIdx * 3 + 2]; + dst[3] = trans[palIdx]; + dst += 4; + } + } + break; + case 4 : // grayscale with alpha + for (uint32 i = 0; i < width * height; i++, dst += 4, src += 2) { + dst[0] = + dst[1] = + dst[2] = src[0]; + dst[3] = src[1]; + } + break; + case 6 : // RGBA + memcpy(dst, src, width * height * 4); + break; + } + + // convert to POT size if NPOT isn't supported + uint32 dw = Core::support.texNPOT ? width : nextPow2(width); + uint32 dh = Core::support.texNPOT ? height : nextPow2(height); + if (dw != width || dh != height) { + uint8 *dataPOT = new uint8[dw * dh * 4]; + uint32 *dst = (uint32*)dataPOT; + uint32 *src = (uint32*)data32; + + for (uint32 j = 0; j < dh; j++) + for (uint32 i = 0; i < dw; i++) + *dst++ = (i < width && j < height) ? *src++ : 0xFF000000; + + width = dw; + height = dh; + delete[] data32; + data32 = dataPOT; + } + + Texture *tex = new Texture(width, height, Texture::RGBA, false, data32); + + delete[] data32; + delete[] data; + + return tex; + } +#endif + static Texture* Load(Stream &stream) { - uint16 magic; + uint32 magic; stream.read(magic); stream.seek(-int(sizeof(magic))); - if (magic == 0x4D42) + #ifdef USE_INFLATE + if (magic == 0x474E5089) + return LoadPNG(stream); + #endif + if ((magic & 0xFFFF) == 0x4D42) return LoadBMP(stream); return LoadPCX(stream); } diff --git a/src/utils.h b/src/utils.h index 51f1859..0a045fe 100644 --- a/src/utils.h +++ b/src/utils.h @@ -97,6 +97,14 @@ inline void swap(T &a, T &b) { b = tmp; } +inline uint16 swap16(uint16 x) { + return ((x & 0x00FF) << 8) | ((x & 0xFF00) >> 8); +} + +inline uint32 swap32(uint32 x) { + return ((x & 0x000000FF) << 24) | ((x & 0x0000FF00) << 8) | ((x & 0x00FF0000) >> 8) | ((x & 0xFF000000) >> 24); +} + float clampAngle(float a) { return a < -PI ? a + PI2 : (a >= PI ? a - PI2 : a); } @@ -1010,9 +1018,11 @@ struct Stream { char *name; int size, pos; - Stream(const void *data, int size) : callback(NULL), userData(NULL), f(NULL), data((char*)data), name(NULL), size(size), pos(0) {} + enum Endian { LITTLE_ENDIAN, BIG_ENDIAN } endian; - Stream(const char *name, Callback *callback = NULL, void *userData = NULL) : callback(callback), userData(userData), data(NULL), name(NULL), size(-1), pos(0) { + Stream(const void *data, int size) : callback(NULL), userData(NULL), f(NULL), data((char*)data), name(NULL), size(size), pos(0), endian(LITTLE_ENDIAN) {} + + Stream(const char *name, Callback *callback = NULL, void *userData = NULL) : callback(callback), userData(userData), data(NULL), name(NULL), size(-1), pos(0), endian(LITTLE_ENDIAN) { if (contentDir[0] && (!cacheDir[0] || !strstr(name, cacheDir))) { char path[255]; path[0] = 0; @@ -1098,6 +1108,12 @@ struct Stream { template inline T& read(T &x) { raw(&x, sizeof(x)); + /* + if (endian == BIG_ENDIAN) { + if (sizeof(T) == 2) x = T(swap16(x)); + if (sizeof(T) == 4) x = T(swap32(x)); + } + */ return x; }