From 12330e38cb3c2a023bc1327cb89afd19efed0a43 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 08:57:51 +0200 Subject: [PATCH 1/8] Controller menu --- gamefiles/TEXT/american.gxt | Bin 423450 -> 423838 bytes gamefiles/TEXT/french.gxt | Bin 467876 -> 468076 bytes gamefiles/TEXT/german.gxt | Bin 459590 -> 459742 bytes gamefiles/TEXT/italian.gxt | Bin 456886 -> 457046 bytes gamefiles/TEXT/spanish.gxt | Bin 454562 -> 454854 bytes src/core/ControllerConfig.cpp | 50 +- src/core/Frontend.cpp | 819 ++++++++++++++++++++++++++++++++- src/core/Frontend.h | 29 +- src/core/MenuScreensCustom.cpp | 41 +- src/core/config.h | 3 + src/render/Font.cpp | 40 +- src/render/Font.h | 5 +- utils/gxt/american.txt | 31 +- utils/gxt/french.txt | 10 +- utils/gxt/german.txt | 10 +- utils/gxt/italian.txt | 10 +- utils/gxt/spanish.txt | 10 +- 17 files changed, 1002 insertions(+), 56 deletions(-) diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index 1721705d03c59c549e692d13d43d2b048c48505c..f4afab9eb0f61be5dc3a9315887d4bc531836844 100644 GIT binary patch delta 5253 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 E0AX?LK>z>% delta 4855 zcmbRDUUJqO$q6#`OKvhTI0grM`WZ4Xthfth8!<54cmQP^Gca6v24$NtFj%~YvP~Hn z*8F5*aB}qX_A+E(IPw?DHez5X;9!P`8#6F?NJH5s3=9j@KHZryD!p^(+kao_--g{tOHZYqqm6c)Nl<%+PX)g~8j?**iESgdyTK z3xkhic%*BPA;XjVFt!oH9A;LixG@8Z3XE;SFvpOU!PnE#*E8Ob;fOsegRd_G7^pb0 zGWdr%`UH8pGyHI2WeD)_^f6>$sAu5tg>XPVxDdk15a1aV<;cLmP!P|`5a1sK3TXzH z90(hvMxhSE2KmyU1HuM{^pUx&3;{v@;85AI7QzOr-wk1d)N>qSWe9R~b`54=VAyhn zl_AKv-ow?$(~x1$Ef6Qb$IsP}A>=NI4N_*v!192VA;{m^8MtFkMs02dT&Y>X;Z*&tOoNz}&h9B85 zwh_aHd>Gr9A*YCqA;jA?a!twPL(EA`zpOT^v4k=4a#($G%@~Aiz!ta|o0~Ie!PyoJ zZg93GLy8SIRFQ=NL&xN&8mA=}fTTnHLLwO$82&^vF*t{X#JdIsF$irwskxp}D#V|O z!Ohh%-q^*1K}(Vm%r*%QV7L=Ad6M=%TZu%7w41LVgGU5}?HgdsuqqnHc49aKV}}Ma zWI>JabM#gw}egNir>c{5Cz9I30%bj)>fmu`^cH5Z6dXCGIFRe>px;VKrr1?PEK5h*A0$^+(1|O&e zF8(15p8_VI(-Y&p0F`$2b763r{83MwS1bym!8OQ}A!D+rzB1FAfXP<+N~%3jOWgwe z8QwTU6uAWiG0cdAvV)u%G$uFdi}UqBee2;A#BeNN@-lrr#-_o3{^x!em=R zaYmiVp@!C>VK5_t+!oE^$w;R-P^z$<`Z2~53@6N3rVWdT0H3>`3buoFW9OntBi zgBP3~zz_p*F?)PKh!4XW@5$?om28t>=7qa4IKbIH3;}R<5JL@|9m4Pj8bE=et_)q1 zc}>JsnV^9iKeC zCdZm8+kS#({t&lNhA^0{y9+}JG^|5>+!*G-*g@_LpP42vohVX8^;Agvoa1N{l>{6V3H` znZV9=i4SrOX3&^C*F4*3A5>{bkPpKva9QON9~R)la1H99aL-_dD5%llKE4c>VkcW! z#Hk$%2l>Mz-Z#L5VGfk-=g7byCI@nzM|`lmBg3_b$@?tC7$;4>YH^w|XYxWz>v}e@ zZ9ef{jsXl3PBN zt?3)@7UauN09E7R>CRvQWqStuFf4$o@$q+Ih=Pba$NTt)GbBMc@xHDu4DX=h z)`7k08}IAy#1IEgZ@%$<{tOI!;5rz@_G4I(FnOMpp6Ugt(tuzihDWxbpzw_kat&dS zff^m`?8Y!@@<*$3wLMS^!h)R{Za{TKI7KjoK`n@M4Q4nMGP%#Xk9S=#$e_UZ;2>9q zw9T3}=8UTEz-9+W#Rmp4ya8A3Aa)eP9dJwqN5u#EGN?>$wN;jsiv(#7j(7I;WOxS7 zrXY3zgTds3w&F}nLMPv{ZJL~6XP|202T~Xk@9gQ$5C)F9ka*`1PX@IBsCbAEL)GNH zcH;G2P?avhehda+w}r&Jdb%^1fg>U$-aW{Xp$uG>hQxaWxiI)?gW^6U-p8GR;R96M z*VCP06^tDm!r%e5#Xlf~;Xw$*#sJ4qh6<=l0)iPBwn4dq_W{wPf5Kg?AnG*v8)Q4u~jtqH|@5Tn#hscAK z#+w^CGH@us*iHOFHKH-<%UwmZWlXqcKCJ2LEmvz-_& zz}e0WON_u~I>(zEyD%gegE{f$#;y!g;A}UBG834%J41pgjP1ct17~|OJTu+=Db9?M zQD?GdLOEmHGWKka%u!~x^%G}e2o4DdiZ?W1sDQH#8K%M6Mhr*bY-5Hm zaJC79z~r6z!Mq$W5eo(ey~&aV*?b;WAT#5Q!aZCVW?62YRIrVSmk%Nq9OCc7kTf~8 zSfBTbC0JFshpP*N*5--D_gU1Ef|wY>J^kV>O&J*WK-n%43=CFKc1Va1!>q{3(<+RZ zbP}6SRkWX~VBCJHg6WIsbOUu3zUdzv7zL)^yTK?n-K&o&W&44CrbS-u7Ppz&Ep9Wn zTij;ZZgHD+Lj>cu=`W4hPD}ofVqgeyjWCWkwq#)7gR)H+7^urVI=k z0n7|ej(*-=h71fFLZECT28IpsP_{7x14|*4ZNk8?q!z>u@(0<)un^3y_xCemVA!$} z%<=aFY1j#6n=mjm9E7q>85qu7U}kXg^ma95U|{%j9l|zZU|?AC0KztAU|~;g&%)sB7!=?bWXP~VkcGk7 zKfu{Bh=D;s1jG*Y3ju|SIFxO~!0gO6%?`X)dU^bNFXvDB%HH>Y{5V8Zt zHeqPF0b`poh`eH9@No15xs9RYCxi_O2?2IiusA3rA_Q0&Jp4mkeHa)REF@SNJe^&g zgIo<63X~x1&=3X&9c@;IdQZQQAb$o1h6EE<25(oehZ&Z5u`+mjI(r9)gfMu7url~K zhDW*v88Uo{fU%7jH0oh&V+M;wFt!PU$3|8LUr$G0Pf%bVU}f<2WdMT>hgcc>!yJ8r zJlz?t9A#w)@bL68WMHUgNH_=KfP8S}8Y@G9XH=9U0|SG{BUXk0{~%CEGo-wSut91R znAyPMAYY#0gRo5)7#MQY*cbwW{K26z#T>#0srPY*utDmN_^~krIXb%rGcYi$NoHdR za<2Dq_3<=hXvhL_0(|^j4H*pbKx~jQLk68fHijU7XKzq~@+pR}L57}afv~}bPGDmQ zb`5d|sX1{3!Um~XaUQ}3sfoDB#t`Bd;R#a1@(03p4h>;gqsq$;mI!w=WU!Hhv5go+ zWMOP$1_p)6yO^_>R`hOGW2s`|Q|n>^+$XDWMXg% z@^p!J_F*vU+#JN+$IO(IvH20-Ar2;`%+1ThodoKGGMN~hgIryVO)VL+U~Dr3h7LH} zkYN*?ZNzX5&NgOv1818sFl9l_F*9Y5fV0gQEZ}T&h9EfGg5gImSbe>Vv6&@zpC!?CH{ zP=hQC7+y{OsBvAg1Y}L9Uq~ba0|U<%CI;uQka*XiAcl3DA8M{=l$^1IiNVd)G2Yn4 zgCS%SBbaRx9Ki5y@=ERfs%~2$vTnY93^D5=Y~KK5hIyM|Y$t|8lY4c=wbWXYxZGYrd}8Af?Xnj?O*|3sz6o($(Xe2NiM(@@6PoJ~>TSkMY^$sk*_E z8>U0lI{UaXOj-_Odo#S5%&4cV`eqJP#5b7X+6j2i9GG~xBg3985R+Y9BN$Sk;;w!!3>r|| zUHw8B?i^xZaC3Ezcl8Tnn6nXLrfZNVg9pUS$;|q)Ocu)~E9omqRzS761^6>;nFdkn z77)bnY;vr=I9~zO=^jo&3{lG_H|gs!CC#3^Nng*_32L=xPzb{XsCPWWJQ!Xrg_z+P z7RImy>NPJXe+HSY5NCV&1~5FDENdWc^a|pbcppa}h6#ru4)$?kU|@o}!pF&wK?Ke= zVo;klIn6*x%>!zvkCQXQx>*p*e4IQO&cTdx4q?ceHF=$ZlHn4l8-3gy8K%sHD)shZ zP?!N@hcINpZ1!Pbcr}^P&^k;F>Sv!IcZNGKT|prXn_w0MyD>ycX%DnxX^Tf*2a0!4=@{!jJ=JhcdW8gDb!*fT0Jb-p7gI z7fg*$Fhdr^xmxi7!A=YnFb%;T3^8za07DGa?ExV^43{SR8Y|m{z>EubV~~KeeHhH( z>>!2|I6H(v0UA(&p{@*G((V^{)X zhxjqrK_fgU)Q^D=8bv|jE(}gOge` z2RJimL6dcGfFHxX$#YG_Jq4gK5F8fDpaM-k!BL(JQE;|DLl@Ni5JxA5Nzj-HaSUQu z0L@4tF8&OUCjT{2w%f1?;;In0P=+j+th)C)ZGon%aK|8q1ZW}( z5Ab7 zE57k=LB0$xz?Fb+ypO*NgV)l@a+dp;xRy@7XDP;Hv3l}1%Rb&0D?yG3j1LZSWjL^T zqLn`*_%d16Mw}^O&15s1ef1%WL5f1+oju(d zg23JhiFXe1Wat7r0mSxU*Z{U6B;Li*mqB1NC`p9GySTbB9D?d~3HD=ffvR!!bZ3ZJ z1ToVi$c5p`DTsO>cLs)kP;p;RcZOLIc2vA?a0r7GI37aceM3AMwm>cR4+vq1S`9G> zlye(k>|h24DJVP8oq<6JT&sn|2YI?P7=XhnBt9tEnc>Iev$o27I#4eKhj=n9*)aK^ zZ4gsU|K=dODkjDYo6kCAGaI#~F)?_!`UIGoGBBLzhqBEW7$!}CvdtM7VkSb_77Ppp zlO|`mDDkySh6tG%FfbHN**wd|h=WP0Yx6muJns54N1sLO$| zofzbDVQgoH8M!JjjthfG9*phEPyuJVF*xLJj*Apxsh22*$eS5EG93}~R58#^*gfU}(#*1*}$3^Q85dY$9Vja?YZTEU!nb7NPARdBW&Lr)t_ z+@0Z2JB;nYa1YM*WN_%%tQ7CW$i&b;IW3`#sbu}+dkKAfOubAD{-GgmA%=zwQoWn2 z615l^&uw0sbf2BcC1Z12mKGzQRxcAnkgJcsqYDE=!RpQXve&WLMWiz^1cw9!#Tyzh z^uXDM46ER5BZeDrwlRZ1228yPgHFceRRuwOLNI9y1_q1t$y|kHyt{fps^X2pJzN;> zZSF1H&cs&)5eg3RcVU>;JvpdEk53IE6z<{b!r;}txv%6Ki(1SICWdfNzj#Yi28JV0 zwo3#9g9(%!65_+awQ=&QN+YJEtB{R|lxZWuw?MhpyROrUII28I-CDBFaAVTKEoZOXt< zFsLBz`zi29l|zZU|{%hAHp_fU|`62&CKBB z8xapuGvPBcgOk5wh*M}JL&6tk24}|ru=tXnAa)Q)nBfa&Jqv@gV^Dx&kRbz$APa-D ze}J=N5CcPsFo+%M7Xk_uF(})Jfx$+Vg~2)0$r0oO8v`iYh=JjYJ(O+Cz@Xs=Wt%WC zWJIzsxOw_H`nWPMXyk&}L9QV|-V9eJvoN^3`nd+xI~p>4nFZxI8Zq#!hOvzqR&0l{ zO&D%mhp|l=GG4MUcsP23+{SR{2ZRj@i4-OK8Jg8Ug67`7O*GI+a!J zeS$pQ88nWvG6Z;d`WP}W)H7^33*mr#pmB|rA;2>#%8`MAVa`KVh5-K{P)IZEcn4vF z)RZu>fyF_-RN#ZKO&Ay$4ydv*1O)kmL*<1Tgbh-^zzxC%sh99$V+e9|b`1tODVdES z$hqFb)yLD2;Yucm6X4_LYRJ%%3u1$m88S2!urUPrJ9~o?)Pf=i8)T?V3xo|ebOIYg zuxpSzNR7-92pgp4&p8Miq-M27^rvUD8cP)uUsWd)D95^n#5*(0>)gDKEscfgNc&_lZaqGsP9_GY zAWxTgXCH>Pj?F>beauV;(l_v(l<9oRH^ znT{T>$!3T|uv-L!z~qNI)_nJ7fkd3+9i4p`zO0(8rK`vH2`c0iW#J!yS8DzFXobBZsz+g66)}AQINO&YXYS-%hHkuF zkf@6H^YLa-nXGFh&L}e3)ks+?Wgf&u{$9ZhDo~sKy}cPe%$?k1q*SlA5F#Dm=)!OS z8npqA!3-CmDI&lzlwlh*Py<|D7=A#bJisl8;R@7s0q!mg2jJ{bh8fV{3h)YGcmPxH zw*ool`Ohd2-!v;7zfMEmF?ExV^3~G~ojg{?Iz>EubW5|KC zeHgmn>>!36aCQho2{fPrLtPo>O`W{XSd7;T8q7hCJ`4tvFB*$8vQ2(ztRE@@6AyM{ z_yKWUd{BrVgB>)&gF^inl3;4WT^OdVhJ;+OTL{B4sQO?ZZw7^vkf;v!HD=(OoNFR3 z*#OlQ9N^5L1x?n$0e%cdljoXHu7zp(WX4o@#a-XRf-!o`ThXyz@+?YCflc|yv2hl#CtggFw{WV0scM=eOo5K zvk;T2S^_e}H{LDCm%#?g_VIUNn73rIoaH{IxFwVCS&A|BteX7IvX9qhB}j2#d~lE} zgUIHIR{o5Pev=Y+1HbSX$?pbh#kP-FQ^iRNrc2Z zd%80$1A8YV-Z{jR;U3sp5Zi}=1#Ck|yo;kRgTQ7`k_d@+adl%51J_R>@h-uB3^P_h z%yIQ}XV?JFh#~PFK`snePC?ZBxHB*WLGAMObZ2-6Q4uTaj!;Op-cZ)oPokO5~q zF}#7Zof#A=VQO3$4#C;340=^CaW{r#aJD-GQ#DlF+>zlDobAN$1I~74kf;T#sgE}_ zcVXbF19RdH&D|K};B0q>sCt;V2SY*wjP1#A4$k&sxX}m`_hv|Fg0X!Vyt1Ke3rB`a zaJCaeQ4UPpnc+>23XJ2zkdX^xyE2@Cv)ve`Gq_!Jz=gc4oK(XS*;s6~e?_8BW33 zZVWC^Kbaf3Gwgu|s=2Wv!xK2$iGiURs@K?=;SGfC9B*#y!f>huCgIBP56*UDc+d(H zcV`f5hp{~vjNoifhAHivmExTknL_#|rzMmzome;dUP2#VSPv6}e`ttXh@l}vUeD&L zL@h=}rOiu|?z1z^NZ;I+rNzis*TcjRujI^vDOJzN-! zHun~8XW~274HgOx@poZ()ipV&M31iuA{6f7>cTLuYja=8Hx{)G%b6I$J^kV>O&J&@ zRzTP;5ey6+Q1OruABMOMlUG$5F>Tw@e6OA zteF{{9R0k#3>g^C*hASy3=A6HP_{7x15Z4ZZNk97kqu%8`Gf3Q(g9}I`}-L&Fj!0k zbNu~`85j;MfU->(7*?!+vP~Hne6}+)IC*-z8Zt02`0RtQjTjgh8jeBO#taM$5f_;m zoO~nVL27DlGBY^&JBB!gMl#6UVrFo53;>HK+y}9PK*9_KAM3%K0LLIhhATgq8JztC zoE?K07gO6%?`X*IqXx=xG-BZBgRzYn{>*~0 zO&C_}g0W2*zMNrU@No15xsBn;9S9o~54h>;o_#ni}Q19s%66DXozz`zC%HZt^_Amp7IV*#=r?Yo(NC-oL11p1% zV|b)%kRd~gD~xT#V3P@B8#73B!Pq7YJu_Gtd_5g~J>v}-J}hHp@bzT?gN~J~4E|w` zK0%)D3=L~o83H^!eGC~G>KR(LLO38FgzRHw2=I)Ga%5m&@HolJ5a1sK3TcLl>ku|b zjmj$s8|2F~Um$D~1_p)?Tx<*hLH^)Sagm0wLFyH>AZ(EO8bdaQAV+7{U@y-k}C7TzqO=DroE1GP@t;e^en2EtD z$kQd>*@r=+cyk%|EM~@8n+5p~b1@T$>GJJ25ao)%b=6Gw`i| z7~$vW!LVTRTOEBqC8%t$TLgn$?_@1qE8aCNAkEJ4j?O*|XC@cw>hm6eiZ}&%Gpv}r zR#%^ip=t6x-5|+h4G^WyKCTS=`eAHuh9{Ff^^_T3P0rO5=VfSxiU+wce40E_&)P_@ z4I<*=r2$ky}6zgB#QyxA0(w zngbAnJRF@Era`^z;S|JhY4S;ZeWsq4$-ngVRQEt#;TaUda181Z&oB>$AeeYq7{h|e zz6Rn_tGXc8c=<;%XzYg=?G@_FATeQboq?FtzdDGtkCPz-7t}>QPDTt$^^?~bD5*(6 z1IEY6nc+k;OsNM0!vrYXIfS93dGa>{B_lDYAAH;#8BR1orM-O^6dGad5QY^{2l)6f zFmSa@_A<1R^n!ZPC&-z{nf zP)SV->UG~>4~BoxAn^_MVGwJF*zX(c%b?djS;@#vtqkf^KOb)f3mDtik3niRC}BFs z`-KEC81zr>Gg6W~0@dyB70hr58W{fG-VA+{PZ}xL&w@HHz|n=F0UEafj=>D?pot;C zF_a+z8ma-VE(|N6DK)??h~Wp+y#ekn4A0=~PzD=lcm;R`Ff_o_`#3QKK^+?46U;CN z!q$op2zFxVfN2Q!U`T?q0~n+_ARZ40@nM)Td8)B;y$#H`a5n}%INOIo1@Pc|H$e4k_YZWA%f*f5Kl%O#Y>I)m zG-2{N6EWL@Zm5QkAciogvw}mN7=A$GDmW~Z!3mlggQGkdTHtJdhHaA-O~rYaK+{Ty zi$BAk$*!i#VF#euH^eQJ!38Gk?!vGR8n_`oZVcC8>>ziB3(zDS670($22&p#%%FE3 zlHEc=of-VvC+{;Ar9d9T|$&f`Z2*J~+gYA!N$r zf99tcXG}h6VJ+DJE?#}&y&MA=ra;*N{yq%LCd*oiOD+PJ?!NJELB0%WP_~c13&Xz2 zzLxu$dU_}GS&1<ryc4T*R4bZ6k{o}6bZR^I|O$=B1JAq2(_4q<2mXQhyM-w;m* z2`Jk?AcSGtB#3dKEcpUzb3iZyLkd(p(4B$73|wJ_#DiLA^PtuT1v@hY!P)){>%e71 z$Yf?aLB4rVbAm%W8H8p|R*2hM-C) z+l+yMrwYn8XJ9x6V_PsV?3&E#s?58t1|n-_z`!tLv#INQHYTN#&1yb*-1Scqm>7Kh zo#GA692u+WP40qscXNI6KWtfBu!?G|K+m(SO9L9EI*tU6VgfL6JUJOLY z%-E5k49<39=!3JJ8SG+VYFrpR;A~fhZE&_5!#+6Mo#9FxOuYv~SUimF$H&3i90hy zMZwrE47=cLSB9Kun7A7Q2h>mIM(zwexlnOqM+PG}+lj#o&UR+d$^)x$jyE@UVX(*t zbK=d7T^X|AY&V9k0+_fv!<<4G+k;^TobAb=SG2h*&WVw6+vL6R<&57Znin4)f0YY49DPXBZe<fctSa2Y)rG;Lbn~I&S1f9I z6POsnJ^kV>O&J)rLD?=53=9cSc1Va1L*2~Dmnw`H&or}EwzF0;ZfC7z^7Wmj$H+GM zP^ZT9Lr0nPq@x%z8B!TC7*ZJ&7*ZHg8S)qu7;+dg8S)siC!g+=pRORzCNe$a7aNak zK3Kj8tgeV*4MQ?RHdt3CLk2_MbXh-UN#Rn4Tm}V(Duz-91%_gXA=959Ws2M`bDT-b zuiZnGx!psQrQJi6b-RZs+ma=W0@L5_WIHYSMvj3Y#5KY=-q@1ihyavr!oW~B{o*dR z^NcFn7w%^JFFV~Nnnhsxn!St?!U_y|42cZM3>gdx3}p=Y3`Goi(*^UGB&Q!Z%a*e} P=oVWB)Al`g*t*mJ^J{vr delta 4311 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 Ys%1pcO^3PGa=J|;6UX*tXW0a_0kRXCe*gdg delta 4366 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 delta 4872 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 diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index 7f634619..727ad06b 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -2416,7 +2416,7 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act #define VFB(b) #endif -#define CONTROLLER_BUTTONS(T, O, X, Q, L1, L2, L3, R1, R2, R3, SELECT, RSL, RSR) \ +#define CONTROLLER_BUTTONS(T, O, X, Q, L1, L2, L3, R1, R2, R3, SELECT, RSU, RSD, RSL, RSR) \ {{ \ O, /* PED_FIREWEAPON */ \ R2, /* PED_CYCLE_WEAPON_RIGHT */ \ @@ -2576,8 +2576,8 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act L3, /* PED_DUCK */ \ L1, /* PED_ANSWER_PHONE */ \ VFB(R1) /* VEHICLE_FIREWEAPON */ \ - nil, /* VEHICLE_ACCELERATE */ \ - nil, /* VEHICLE_BRAKE */ \ + RSU, /* VEHICLE_ACCELERATE */ \ + RSD, /* VEHICLE_BRAKE */ \ O, /* VEHICLE_CHANGE_RADIO_STATION */ \ L3, /* VEHICLE_HORN */ \ Q, /* TOGGLE_SUBMISSIONS */ \ @@ -2618,10 +2618,10 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act #define RIGHT "RIGHT" #endif -const char *XboxButtons_noIcons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("Y", "B", "A", "X", "LB", "LT", "LS", "RB", "RT", "RS", "BACK", "right stick left", "right stick right"); +const char *XboxButtons_noIcons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("Y", "B", "A", "X", "LB", "LT", "LS", "RB", "RT", "RS", "BACK", "right stick up", "right stick down", "right stick left", "right stick right"); #ifdef BUTTON_ICONS -const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O~", "~X~", "~Q~", "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "BACK", "~(~", "~)~"); +const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O~", "~X~", "~Q~", "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "BACK", "~H~", "~L~", "~(~", "~)~"); #endif @@ -2630,11 +2630,6 @@ const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O #define PS2_CIRCLE "|" #define PS2_CROSS "/" #define PS2_SQUARE "^" -#elif defined(BUTTON_ICONS) -#define PS2_TRIANGLE "~T~" -#define PS2_CIRCLE "~O~" -#define PS2_CROSS "~X~" -#define PS2_SQUARE "~Q~" #else #define PS2_TRIANGLE "TRIANGLE" #define PS2_CIRCLE "CIRCLE" @@ -2643,11 +2638,11 @@ const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O #endif const char *PlayStationButtons_noIcons[][MAX_CONTROLLERACTIONS] = - CONTROLLER_BUTTONS(PS2_TRIANGLE, PS2_CIRCLE, PS2_CROSS, PS2_SQUARE, "L1", "L2", "L3", "R1", "R2", "R3", "SELECT", "right stick left", "right stick right"); + CONTROLLER_BUTTONS(PS2_TRIANGLE, PS2_CIRCLE, PS2_CROSS, PS2_SQUARE, "L1", "L2", "L3", "R1", "R2", "R3", "SELECT", "right stick up", "right stick down", "right stick left", "right stick right"); #ifdef BUTTON_ICONS const char *PlayStationButtons[][MAX_CONTROLLERACTIONS] = - CONTROLLER_BUTTONS(PS2_TRIANGLE, PS2_CIRCLE, PS2_CROSS, PS2_SQUARE, "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "SELECT", "~(~", "~)~"); + CONTROLLER_BUTTONS("~T~", "~O~", "~X~", "~Q~", "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "SELECT", "~H~", "~L~", "~(~", "~)~"); #endif #undef PS2_TRIANGLE @@ -2669,11 +2664,36 @@ void CControllerConfigManager::GetWideStringOfCommandKeys(uint16 action, wchar * if (CPad::GetPad(0)->IsAffectedByController) { wchar wstr[16]; - // TODO: INI and/or menu setting for Xbox/PS switch + const char* (*Buttons)[MAX_CONTROLLERACTIONS]; + #ifdef BUTTON_ICONS - const char *(*Buttons)[MAX_CONTROLLERACTIONS] = CFont::ButtonsSlot != -1 ? XboxButtons : XboxButtons_noIcons; + #ifdef GAMEPAD_MENU + switch (FrontEndMenuManager.m_PrefsControllerType) + { + case CMenuManager::CONTROLLER_DUALSHOCK2: + case CMenuManager::CONTROLLER_DUALSHOCK3: + case CMenuManager::CONTROLLER_DUALSHOCK4: + Buttons = CFont::ButtonsSlot != -1 ? PlayStationButtons : PlayStationButtons_noIcons; + break; + default: + #endif + Buttons = CFont::ButtonsSlot != -1 ? XboxButtons : XboxButtons_noIcons; + #ifdef GAMEPAD_MENU + break; + } + #endif #else - const char *(*Buttons)[MAX_CONTROLLERACTIONS] = XboxButtons_noIcons; + switch (FrontEndMenuManager.m_PrefsControllerType) + { + case CMenuManager::CONTROLLER_DUALSHOCK2: + case CMenuManager::CONTROLLER_DUALSHOCK3: + case CMenuManager::CONTROLLER_DUALSHOCK4: + Buttons = PlayStationButtons_noIcons; + break; + default: + Buttons = XboxButtons_noIcons; + break; + } #endif assert(Buttons[CPad::GetPad(0)->Mode][action] != nil); // we cannot use these diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 4eae64b7..141f46f8 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -125,6 +125,10 @@ bool CMenuManager::m_PrefsMarketing = false; bool CMenuManager::m_PrefsDisableTutorials = false; #endif // !MASTER +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +uint32 TimeToStopPadShaking; +#endif + const char* FrontendFilenames[][2] = { {"background", ""}, {"vc_logo", "vc_logom"}, @@ -151,7 +155,14 @@ const char* FrontendFilenames[][2] = { {"downOff", "buttonA"}, {"downOn", "buttonA"}, {"upOff", "buttonA"}, - {"upOn", "buttonA"} + {"upOn", "buttonA"}, +#ifdef GAMEPAD_MENU + {"fe_controller", "" }, + {"fe_arrows1", "" }, + {"fe_arrows2", "" }, + {"fe_arrows3", "" }, + {"fe_arrows4", "" }, +#endif }; #define MENU_X_RIGHT_ALIGNED(x) SCALE_AND_CENTER_X(DEFAULT_SCREEN_WIDTH - (x)) @@ -526,6 +537,10 @@ CMenuManager::CMenuManager() #ifdef NO_ISLAND_LOADING m_PrefsIslandLoading = ISLAND_LOADING_LOW; #endif + +#ifdef GAMEPAD_MENU + m_PrefsControllerType = CONTROLLER_XBOXONE; +#endif } void @@ -1074,7 +1089,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen) } switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) { -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) case MENUACTION_CTRLVIBRATION: if (m_PrefsUseVibration) rightText = TheText.Get("FEM_ON"); @@ -1539,6 +1554,11 @@ CMenuManager::DrawStandardMenus(bool activeScreen) #endif switch (m_nCurrScreen) { +#ifdef GAMEPAD_MENU + case MENUPAGE_CONTROLLER_SETTINGS: + PrintController(); + break; +#endif case MENUPAGE_STATS: case MENUPAGE_CONTROLLER_PC: case MENUPAGE_SOUND_SETTINGS: @@ -2280,6 +2300,9 @@ CMenuManager::DrawBackground(bool transitionCall) break; case MENUPAGE_SKIN_SELECT: case MENUPAGE_KEYBOARD_CONTROLS: +#ifdef GAMEPAD_MENU + case MENUPAGE_CONTROLLER_SETTINGS: +#endif menuBg.topLeft_x = 14.0f; menuBg.topLeft_y = 39.0f; menuBg.topRight_x = 636.0f; @@ -2948,12 +2971,19 @@ CMenuManager::LoadAllTextures() CTxdStore::AddRef(frontendTxdSlot2); CTxdStore::SetCurrentTxd(frontendTxdSlot2); +#ifdef GAMEPAD_MENU + for (int i = 3; i < MENUSPRITE_CONTROLLER; i++) { +#else for (int i = 3; i < NUM_MENU_SPRITES; i++) { +#endif m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]); m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); } CTxdStore::PopCurrentTxd(); +#ifdef GAMEPAD_MENU + LoadController(m_PrefsControllerType); +#endif CStreaming::IHaveUsedStreamingMemory(); } @@ -4896,6 +4926,16 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u if (changeAmount != 0) { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) + case MENUACTION_CTRLCONFIG: + CPad::GetPad(0)->Mode += changeAmount; + if (CPad::GetPad(0)->Mode > 3) + CPad::GetPad(0)->Mode = 0; + else if (CPad::GetPad(0)->Mode < 0) + CPad::GetPad(0)->Mode = 3; + SaveSettings(); + break; +#endif case MENUACTION_RADIO: ChangeRadioStation(changeAmount); break; @@ -5037,14 +5077,14 @@ void CMenuManager::ProcessOnOffMenuOptions() { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) case MENUACTION_CTRLVIBRATION: m_PrefsUseVibration = !m_PrefsUseVibration; - break; - case MENUACTION_CTRLCONFIG: - CPad::GetPad(0)->Mode++; - if (CPad::GetPad(0)->Mode > 3) - CPad::GetPad(0)->Mode = 0; + if (m_PrefsUseVibration) { + CPad::GetPad(0)->StartShake(350, 150); + TimeToStopPadShaking = CTimer::GetTimeInMillisecondsPauseMode() + 500; + } + SaveSettings(); break; #endif case MENUACTION_INVERTPADY: @@ -5510,6 +5550,14 @@ CMenuManager::SwitchMenuOnAndOff() m_bStartUpFrontEndRequested = false; m_bShutDownFrontEndRequested = false; + +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) + // Reset pad shaking. + if (TimeToStopPadShaking && TimeToStopPadShaking < CTimer::GetTimeInMillisecondsPauseMode()) { + CPad::StopPadsShaking(); + TimeToStopPadShaking = 0; + } +#endif } void @@ -5534,6 +5582,13 @@ CMenuManager::UnloadTextures() m_aFrontEndSprites[i].Delete(); CTxdStore::RemoveTxd(frontend2); + +#ifdef GAMEPAD_MENU + // Unload controller txd + int frontend_controller = CTxdStore::FindTxdSlot("frontend_controller"); + if (frontend_controller != -1) + CTxdStore::RemoveTxd(frontend_controller); +#endif } m_bSpritesLoaded = false; @@ -5781,5 +5836,753 @@ uint8 CMenuManager::GetNumberOfMenuOptions() } #endif +#ifdef GAMEPAD_MENU +const char* controllerTypesPaths[] = { + "MODELS/FRONTEND_DS2.TXD", + "MODELS/FRONTEND_DS3.TXD", + "MODELS/FRONTEND_DS4.TXD", + "MODELS/FRONTEND_X360.TXD", + "MODELS/FRONTEND_XONE.TXD", +}; + +void +CMenuManager::PrintController(void) +{ + // Don't print anything if controller texture is missing + if (!m_aFrontEndSprites[MENUSPRITE_CONTROLLER].m_pTexture) return; + + const float scale = 0.9f; + const float CONTROLLER_SIZE_X = 235.2f; + const float CONTROLLER_SIZE_Y = 175.2f; + const float CONTROLLER_POS_X = (DEFAULT_SCREEN_WIDTH - CONTROLLER_SIZE_X) / 2.0f; + const float CONTROLLER_POS_Y = 220.0f; + + float centerX = CONTROLLER_POS_X + CONTROLLER_SIZE_X / 2; + float centerY = CONTROLLER_POS_Y + CONTROLLER_SIZE_Y / 2; + +#define X(f) ((f)*scale + centerX) +#define Y(f) ((f)*scale + centerY) + + m_aFrontEndSprites[MENUSPRITE_CONTROLLER].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + if (m_DisplayControllerOnFoot) { + if ((int)CTimer::GetTimeInMillisecondsPauseMode() & 0x400) + m_aFrontEndSprites[MENUSPRITE_ARROWS1].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + else + m_aFrontEndSprites[MENUSPRITE_ARROWS3].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + } + else { + if ((int)CTimer::GetTimeInMillisecondsPauseMode() & 0x400) + m_aFrontEndSprites[MENUSPRITE_ARROWS2].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + else + m_aFrontEndSprites[MENUSPRITE_ARROWS4].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + } + + CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); + + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.9f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.9f)); // X + + CFont::SetDropColor(CRGBA(0, 0, 0, FadeIn(255))); + CFont::SetDropShadowPosition(0); + CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255))); + CFont::SetWrapx(SCREEN_WIDTH); + + float TEXT_L2_X = 85.0f + CONTROLLER_POS_X - centerX, TEXT_L2_Y = -14.0f + CONTROLLER_POS_Y - centerY; + float TEXT_L1_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_L1_Y = 27.0f + CONTROLLER_POS_Y - centerY, TEXT_L1_Y_VEH = 3.0f + TEXT_L1_Y; + float TEXT_DPAD_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_DPAD_Y = 67.0f + CONTROLLER_POS_Y - centerY; + float TEXT_LSTICK_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_LSTICK_Y = 97.0f + CONTROLLER_POS_Y - centerY; + float TEXT_SELECT_X = 170.0f + CONTROLLER_POS_X - centerX, TEXT_SELECT_Y = 141.0f + CONTROLLER_POS_Y - centerY; + float TEXT_START_X = 130.0f + CONTROLLER_POS_X - centerX, TEXT_START_Y = 128.0f + CONTROLLER_POS_Y - centerY; + float TEXT_R2_X = 164.0f + CONTROLLER_POS_X - centerX, TEXT_R2_Y = -14.0f + CONTROLLER_POS_Y - centerY; + float TEXT_R1_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_R1_Y = 27.0f + CONTROLLER_POS_Y - centerY; + + float TEXT_SQUARE_X = 147.0f + CONTROLLER_POS_X - centerX, TEXT_SQUARE_Y = 30.0f + CONTROLLER_POS_Y - centerY; + float TEXT_TRIANGLE_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_TRIANGLE_Y = 55.0f + CONTROLLER_POS_Y - centerY; + float TEXT_CIRCLE_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_CIRCLE_Y = 67.0f + CONTROLLER_POS_Y - centerY; + float TEXT_CROSS_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_CROSS_Y = 80.0f + CONTROLLER_POS_Y - centerY; + float TEXT_RSTICK_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_RSTICK_Y = 97.0f + CONTROLLER_POS_Y - centerY; + float TEXT_R3_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_R3_Y = 110.0f + CONTROLLER_POS_Y - centerY; + float TEXT_L3_X = 94.0f + CONTROLLER_POS_X - centerX, TEXT_L3_Y = 162.0f + CONTROLLER_POS_Y - centerY; + float TEXT_L2R2_X = 120.0f + CONTROLLER_POS_X - centerX, TEXT_L2R2_Y = -4.0f + CONTROLLER_POS_Y - centerY; + + switch (m_PrefsControllerType) + { + case CONTROLLER_DUALSHOCK4: + TEXT_L1_Y += 7.0f; + TEXT_L1_Y_VEH = TEXT_L1_Y; + TEXT_R1_Y += 7.0f; + TEXT_TRIANGLE_Y -= 1.0f; + TEXT_CIRCLE_Y -= 1.0f; + TEXT_CROSS_Y -= 1.0f; + TEXT_RSTICK_Y -= 4.0f; + TEXT_R3_Y -= 4.0f; + TEXT_DPAD_Y -= 2.0f; + TEXT_LSTICK_Y -= 6.0f; + TEXT_L3_X -= 2.0f; + break; + case CONTROLLER_XBOXONE: + TEXT_L2_X -= 2.0f; + TEXT_R2_X += 2.0f; + TEXT_L1_Y += 15.0f; + TEXT_L1_Y_VEH = TEXT_L1_Y; + TEXT_R1_Y += 15.0f; + TEXT_TRIANGLE_Y += 4.0f; + TEXT_CIRCLE_Y += 4.0f; + TEXT_CROSS_Y += 4.0f; + TEXT_RSTICK_Y += 1.0f; + TEXT_R3_Y += 1.0f; + TEXT_DPAD_Y += 29.0f; + TEXT_LSTICK_Y -= 20.0f; + TEXT_L3_X -= 36.0f; + TEXT_L2R2_Y += 5.0f; + TEXT_SELECT_X += 4.0f; + break; + case CONTROLLER_XBOX360: + TEXT_L2_X += 8.0f; + TEXT_R2_X -= 8.0f; + TEXT_L1_Y += 15.0f; + TEXT_L1_Y_VEH = TEXT_L1_Y; + TEXT_R1_Y += 15.0f; + TEXT_TRIANGLE_Y += 4.0f; + TEXT_CIRCLE_Y += 4.0f; + TEXT_CROSS_Y += 4.0f; + TEXT_RSTICK_Y += 4.0f; + TEXT_R3_Y += 4.0f; + TEXT_DPAD_Y += 30.0f; + TEXT_LSTICK_Y -= 19.0f; + TEXT_L3_X -= 36.0f; + TEXT_L2R2_Y += 5.0f; + TEXT_SELECT_X += 3.0f; + break; + }; + + if (m_DisplayControllerOnFoot) { + switch (CPad::GetPad(0)->Mode) { + case 0: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + case 1: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_CAM")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_NA")); + break; + default: + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X - 50)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_NA")); + break; + } + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + case 2: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + case 3: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_TAR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_NA")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + default: + return; + } + } + else { + CFont::SetCentreOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_ITALIAN: + if (m_PrefsControllerType != CONTROLLER_XBOX360) + break; + case LANGUAGE_FRENCH: + case LANGUAGE_GERMAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(0.0f)), MENU_Y(Y(TEXT_L2R2_Y)), TheText.Get("FEC_LB")); + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.9f), MENU_Y(SMALLESTTEXT_Y_SCALE* scale * 0.9f)); + switch (CPad::GetPad(0)->Mode) { + case 0: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_RSC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_VES")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_HO3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SELECT_X -= 5.0f; + break; + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HAB")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X += 3.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + case LANGUAGE_GERMAN: + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 18.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + } + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 5.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_GERMAN: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 10.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE* scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 15.0f; + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100)); + break; + } + break; + } + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); + break; + case 1: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_HOR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_CAM")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_NA")); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 12.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_RSC")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HAB")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X += 3.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + case LANGUAGE_GERMAN: + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 18.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + } + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 5.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_GERMAN: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 10.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 15.0f; + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100)); + break; + } + break; + } + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); + break; + case 2: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_VES")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_RS3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SELECT_X -= 5.0f; + break; + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HOR")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_HAB")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X += 3.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + case LANGUAGE_GERMAN: + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 18.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + } + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 5.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_GERMAN: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 10.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 15.0f; + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100)); + break; + } + break; + } + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); + break; + case 3: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_HAB")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_HO3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SELECT_X -= 5.0f; + break; + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_CAW")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RSC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_NA")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_BRA")); + CFont::SetRightJustifyOn(); + CFont::SetRightJustifyWrap(0); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT")); + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SQUARE_X += 5.0f; + case LANGUAGE_FRENCH: + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT")); + break; + default: + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X + 16.0f)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT")); + break; + } + break; + } + break; + default: + return; + } + } + + CFont::SetDropShadowPosition(0); // X + +#undef X +#undef Y +} + + +void +CMenuManager::LoadController(int8 type) +{ + switch (type) + { + case CONTROLLER_DUALSHOCK2: + case CONTROLLER_DUALSHOCK3: + case CONTROLLER_DUALSHOCK4: + CFont::LoadButtons("MODELS/PS3BTNS.TXD"); + break; + default: + CFont::LoadButtons("MODELS/X360BTNS.TXD"); + break; + } + + // Unload current textures + for (int i = MENUSPRITE_CONTROLLER; i <= MENUSPRITE_ARROWS4; i++) + m_aFrontEndSprites[i].Delete(); + + // Unload txd + int frontend_controller = CTxdStore::FindTxdSlot("frontend_controller"); + if (frontend_controller != -1) + CTxdStore::RemoveTxd(frontend_controller); + + // Find the new txd to load + bool bTxdMissing = true; + if (controllerTypesPaths[type]) + if (int file = CFileMgr::OpenFile(controllerTypesPaths[type])) { + CFileMgr::CloseFile(file); + bTxdMissing = false; + } + + int txdSlot = -1; + + if (bTxdMissing) + // Not found, fall back to original textures + txdSlot = CTxdStore::FindTxdSlot("frontend2"); + else { + // Found, load txd + txdSlot = frontend_controller; + if (txdSlot == -1) + txdSlot = CTxdStore::AddTxdSlot("frontend_controller"); + CTxdStore::LoadTxd(txdSlot, controllerTypesPaths[type]); + CTxdStore::AddRef(txdSlot); + } + + assert(txdSlot != -1); + // Load new textures + CTxdStore::SetCurrentTxd(txdSlot); + for (int i = MENUSPRITE_CONTROLLER; i <= MENUSPRITE_ARROWS4; i++) { + m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]); + m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); + } +} +#endif // GAMEPAD_MENU + #undef GetBackJustUp #undef GetBackJustDown diff --git a/src/core/Frontend.h b/src/core/Frontend.h index c1c3983e..6457ce29 100644 --- a/src/core/Frontend.h +++ b/src/core/Frontend.h @@ -137,6 +137,13 @@ enum eMenuSprites MENUSPRITE_DOWNON, MENUSPRITE_UPOFF, MENUSPRITE_UPON, +#ifdef GAMEPAD_MENU + MENUSPRITE_CONTROLLER, + MENUSPRITE_ARROWS1, + MENUSPRITE_ARROWS2, + MENUSPRITE_ARROWS3, + MENUSPRITE_ARROWS4, +#endif NUM_MENU_SPRITES }; @@ -192,8 +199,10 @@ enum eMenuScreen MENUPAGE_MOUSE_CONTROLS = 31, MENUPAGE_PAUSE_MENU = 32, MENUPAGE_NONE = 33, // Then chooses main menu or pause menu -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) MENUPAGE_CONTROLLER_SETTINGS, +#endif +#ifdef LEGACY_MENU_OPTIONS MENUPAGE_DEBUG_MENU, MENUPAGE_CONTROLLER_PC_OLD1, MENUPAGE_CONTROLLER_PC_OLD2, @@ -275,7 +284,7 @@ enum eMenuAction MENUACTION_DRAWDIST, MENUACTION_MOUSESENS, MENUACTION_MP3VOLUMEBOOST, -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) MENUACTION_CTRLVIBRATION, MENUACTION_CTRLCONFIG, #endif @@ -668,6 +677,18 @@ public: int8 m_nDisplayMSAALevel; #endif +#ifdef GAMEPAD_MENU + enum + { + CONTROLLER_DUALSHOCK2 = 0, + CONTROLLER_DUALSHOCK3, + CONTROLLER_DUALSHOCK4, + CONTROLLER_XBOX360, + CONTROLLER_XBOXONE, + }; + + int8 m_PrefsControllerType; +#endif enum LANGUAGE { LANGUAGE_AMERICAN, @@ -788,6 +809,10 @@ public: int8 GetPreviousPageOption(); // uint8 GetNumberOfMenuOptions(); +#ifdef GAMEPAD_MENU + void LoadController(int8 type); + void PrintController(void); +#endif }; #ifndef IMPROVED_VIDEOMODE diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index 770e8ec1..5b2f3d16 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -69,11 +69,17 @@ #endif #ifdef INVERT_LOOK_FOR_PAD - #define INVERT_PAD_SELECTOR MENUACTION_CFO_SELECT, "FEC_ILU", { new CCFOSelect((int8*)&CPad::bInvertLook4Pad, "Controller", "InvertPad", off_on, 2, false) }, 150, 0, MENUALIGN_LEFT, + #define INVERT_PAD_SELECTOR MENUACTION_CFO_SELECT, "FEC_ILU", { new CCFOSelect((int8*)&CPad::bInvertLook4Pad, "Controller", "InvertPad", off_on, 2, false) }, 0, 0, MENUALIGN_LEFT, #else #define INVERT_PAD_SELECTOR #endif +#ifdef GAMEPAD_MENU + #define SELECT_CONTROLLER_TYPE MENUACTION_CFO_SELECT, "FEC_TYP", { new CCFOSelect((int8*)&FrontEndMenuManager.m_PrefsControllerType, "Controller", "Type", controllerTypes, ARRAY_SIZE(controllerTypes), false, ControllerTypeAfterChange) }, 0, 0, MENUALIGN_LEFT, +#else + #define SELECT_CONTROLLER_TYPE +#endif + const char *filterNames[] = { "FEM_NON", "FEM_SIM", "FEM_NRM", "FEM_MOB" }; const char *off_on[] = { "FEM_OFF", "FEM_ON" }; @@ -332,6 +338,14 @@ void DetectJoystickGoBack() { } #endif +#ifdef GAMEPAD_MENU +const char* controllerTypes[] = { "FEC_DS2", "FEC_DS3", "FEC_DS4", "FEC_360", "FEC_ONE" }; +void ControllerTypeAfterChange(int8 before, int8 after) +{ + FrontEndMenuManager.LoadController(after); +} +#endif + CMenuScreenCustom aScreens[] = { // MENUPAGE_STATS = 0 { "FEH_STA", MENUPAGE_NONE, nil, nil, @@ -567,11 +581,13 @@ CMenuScreenCustom aScreens[] = { #else MENUACTION_KEYBOARDCTRLS,"FEC_RED", {nil, SAVESLOT_NONE, MENUPAGE_KEYBOARD_CONTROLS}, 320, 150, MENUALIGN_CENTER, #endif +#ifdef GAMEPAD_MENU + MENUACTION_CHANGEMENU, "FET_AGS", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, MENUALIGN_CENTER, +#endif #ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS MENUACTION_CHANGEMENU, "FEC_JOD", {nil, SAVESLOT_NONE, MENUPAGE_DETECT_JOYSTICK}, 0, 0, MENUALIGN_CENTER, #endif MENUACTION_CHANGEMENU, "FEC_MOU", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_CENTER, - INVERT_PAD_SELECTOR MENUACTION_RESTOREDEF, "FET_DEF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC}, 320, 0, MENUALIGN_CENTER, MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 0, MENUALIGN_CENTER, }, @@ -611,8 +627,12 @@ CMenuScreenCustom aScreens[] = { { "FEC_MOU", MENUPAGE_CONTROLLER_PC, nil, nil, MENUACTION_MOUSESENS, "FEC_MSH", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 40, 170, MENUALIGN_LEFT, MENUACTION_INVVERT, "FEC_IVV", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_LEFT, +#ifndef GAMEPAD_MENU + INVERT_PAD_SELECTOR +#endif MENUACTION_MOUSESTEER, "FET_MST", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_LEFT, - MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 260, MENUALIGN_CENTER, + MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 0, MENUALIGN_CENTER, + //MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 260, MENUALIGN_CENTER, // original y }, // MENUPAGE_PAUSE_MENU = 32 @@ -629,15 +649,24 @@ CMenuScreenCustom aScreens[] = { // MENUPAGE_NONE = 33 { "", 0, nil, nil, }, - -#ifdef LEGACY_MENU_OPTIONS +#ifdef GAMEPAD_MENU + { "FET_AGS", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({40, 78, 25, true}), nil, + MENUACTION_CTRLCONFIG, "FEC_CCF", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 40, 76, MENUALIGN_LEFT, + MENUACTION_CTRLDISPLAY, "FEC_CDP", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT, + INVERT_PAD_SELECTOR + MENUACTION_CTRLVIBRATION, "FEC_VIB", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT, + SELECT_CONTROLLER_TYPE + MENUACTION_GOBACK, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, 0, 0, MENUALIGN_LEFT, + }, +#elif defined(LEGACY_MENU_OPTIONS) // MENUPAGE_CONTROLLER_SETTINGS = 4 { "FET_CON", MENUPAGE_OPTIONS, nil, nil, MENUACTION_CTRLCONFIG, "FEC_CCF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, MENUACTION_CTRLVIBRATION, "FEC_VIB", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0, }, - +#endif +#ifdef LEGACY_MENU_OPTIONS // MENUPAGE_DEBUG_MENU = 18 { "FED_DBG", MENUPAGE_NONE, nil, nil, MENUACTION_RELOADIDE, "FED_RID", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0, diff --git a/src/core/config.h b/src/core/config.h index cc82f8d6..7adbdd63 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -320,6 +320,9 @@ enum Config { //# define PS2_MENU_USEALLPAGEICONS #else # define MAP_ENHANCEMENTS // Adding waypoint and better mouse support +# ifdef XINPUT +# define GAMEPAD_MENU // Add gamepad menu +# endif # define TRIANGLE_BACK_BUTTON //# define CIRCLE_BACK_BUTTON #define LEGACY_MENU_OPTIONS // i.e. frame sync(vsync) diff --git a/src/render/Font.cpp b/src/render/Font.cpp index 0f5930ee..35ed2e56 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -289,11 +289,26 @@ CFont::Initialise(void) SetDropShadowPosition(0); CTxdStore::PopCurrentTxd(); +#if !defined(GAMEPAD_MENU) && defined(BUTTON_ICONS) + // loaded in CMenuManager with GAMEPAD_MENU defined + LoadButtons("MODELS/X360BTNS.TXD"); +#endif +} + #ifdef BUTTON_ICONS - if (int file = CFileMgr::OpenFile("MODELS/X360BTNS.TXD")) { +void +CFont::LoadButtons(const char *txdPath) +{ + if (int file = CFileMgr::OpenFile(txdPath)) { CFileMgr::CloseFile(file); - ButtonsSlot = CTxdStore::AddTxdSlot("buttons"); - CTxdStore::LoadTxd(ButtonsSlot, "MODELS/X360BTNS.TXD"); + if (ButtonsSlot == -1) + ButtonsSlot = CTxdStore::AddTxdSlot("buttons"); + else { + for (int i = 0; i < MAX_BUTTON_ICONS; i++) + ButtonSprite[i].Delete(); + CTxdStore::RemoveTxd(ButtonsSlot); + } + CTxdStore::LoadTxd(ButtonsSlot, txdPath); CTxdStore::AddRef(ButtonsSlot); CTxdStore::PushCurrentTxd(); CTxdStore::SetCurrentTxd(ButtonsSlot); @@ -311,12 +326,22 @@ CFont::Initialise(void) ButtonSprite[BUTTON_R1].SetTexture("r1"); ButtonSprite[BUTTON_R2].SetTexture("r2"); ButtonSprite[BUTTON_R3].SetTexture("r3"); + ButtonSprite[BUTTON_RSTICK_UP].SetTexture("thumbryu"); + ButtonSprite[BUTTON_RSTICK_DOWN].SetTexture("thumbryd"); ButtonSprite[BUTTON_RSTICK_LEFT].SetTexture("thumbrxl"); ButtonSprite[BUTTON_RSTICK_RIGHT].SetTexture("thumbrxr"); CTxdStore::PopCurrentTxd(); } -#endif // BUTTON_ICONS + else { + if (ButtonsSlot != -1) { + for (int i = 0; i < MAX_BUTTON_ICONS; i++) + ButtonSprite[i].Delete(); + CTxdStore::RemoveTxdSlot(ButtonsSlot); + ButtonsSlot = -1; + } + } } +#endif // BUTTON_ICONS #ifdef MORE_LANGUAGES void @@ -369,6 +394,7 @@ CFont::Shutdown(void) for (int i = 0; i < MAX_BUTTON_ICONS; i++) ButtonSprite[i].Delete(); CTxdStore::RemoveTxdSlot(ButtonsSlot); + ButtonsSlot = -1; } #endif Sprite[0].Delete(); @@ -1437,6 +1463,8 @@ CFont::ParseToken(wchar* str, CRGBA &color, bool &flash, bool &bold) case 'J': PS2Symbol = BUTTON_R1; break; case 'V': PS2Symbol = BUTTON_R2; break; case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; #endif @@ -1488,6 +1516,8 @@ CFont::ParseToken(wchar *s, bool japShit) case 'J': PS2Symbol = BUTTON_R1; break; case 'V': PS2Symbol = BUTTON_R2; break; case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; #endif @@ -1612,6 +1642,8 @@ CFont::ParseToken(wchar *s) case 'J': PS2Symbol = BUTTON_R1; break; case 'V': PS2Symbol = BUTTON_R2; break; case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; #endif diff --git a/src/render/Font.h b/src/render/Font.h index 57f1814d..b0cd0a27 100644 --- a/src/render/Font.h +++ b/src/render/Font.h @@ -111,6 +111,8 @@ enum BUTTON_R1, BUTTON_R2, BUTTON_R3, + BUTTON_RSTICK_UP, + BUTTON_RSTICK_DOWN, BUTTON_RSTICK_LEFT, BUTTON_RSTICK_RIGHT, MAX_BUTTON_ICONS @@ -137,7 +139,8 @@ public: static int32 ButtonsSlot; static CSprite2d ButtonSprite[MAX_BUTTON_ICONS]; static int PS2Symbol; - + + static void LoadButtons(const char *txdPath); static void DrawButton(float x, float y); #endif // BUTTON_ICONS diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt index a91a3274..9bc1c96d 100644 --- a/utils/gxt/american.txt +++ b/utils/gxt/american.txt @@ -6484,8 +6484,9 @@ Press the ~h~~k~~PED_FIREWEAPON~~w~ button to ~h~fire~w~ the sniper rifle. [PLANE_H] Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. -[PLANE_4] -Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. +[PLANE_4] { reVC update } +{ Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. } +Use the right analog stick to accelerate, pull back on the left analog stick to climb, push forwards to descend. Left and right to turn. [HELP55] Press the ~h~~k~~PED_FIREWEAPON~~w~ button to attack the chef. @@ -13980,8 +13981,9 @@ To ~h~pick up a bomb~w~, simply maneuver the RC helicopter next to it. The RC He [TEX3_37:SERG3] Pushing ~h~back on the analog stick ~w~decreases the rotor speed, causing the helicopter to~h~ descend. -[TEX3_38:SERG3] -Pressing the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button increases the rotor speed, causing the helicopter to ~h~ascend. +[TEX3_38:SERG3] { reVC update } +{ Pressing the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button increases the rotor speed, causing the helicopter to ~h~ascend. } +Pushing ~h~forward on the analog stick ~w~increases the rotor speed, causing the helicopter to ~h~ascend. [TEX3_39:SERG3] ~g~To drop a bomb press the ~h~~k~~VEHICLE_HANDBRAKE~ ~g~button. @@ -14400,6 +14402,27 @@ NONE [FEA_FMN] RADIO OFF +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +XBOX 360 CONTROLLER + +[FEC_ONE] +XBOX ONE CONTROLLER + +[FEC_TYP] +GAMEPAD TYPE + +[FET_AGS] +GAMEPAD SETTINGS + { end of file } [DUMMY] THIS LABEL NEEDS TO BE HERE !!! diff --git a/utils/gxt/french.txt b/utils/gxt/french.txt index a817ff41..a1bd7baa 100644 --- a/utils/gxt/french.txt +++ b/utils/gxt/french.txt @@ -6688,8 +6688,9 @@ Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ ~w~pour ~h~tirer~w~ avec le fusil [PLANE_H] Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner. -[PLANE_4] -Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner. +[PLANE_4] { reVC update } +{Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner.} +Utilise le joystick analogique droit pour accélérer, appuie vers le bas sur le joystick analogique gauche pour monter et vers le haut pour descendre. Gauche et droite pour tourner. [HELP55] Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ pour attaquer le chef. @@ -14262,8 +14263,9 @@ Pour ~h~ramasser une bombe~w~, manoeuvre l'hélico radiocommandé à côté. Il [TEX3_37:SERG3] Pousse le ~h~joystick analogique droit vers le haut ~w~pour vitesse la vitesse du rotor et ainsi faire ~h~ monter l'hélicoptère. -[TEX3_38:SERG3] -Pousse le ~h~~k~~VEHICLE_ACCELERATE~ ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère. +[TEX3_38:SERG3] { reVC update } +{Pousse le ~h~~k~~VEHICLE_ACCELERATE~ ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère.} +Pousse le ~h~joystick analogique droit vers la bas ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère. [TEX3_39:SERG3] ~g~Appuie sur la touche ~h~~k~~VEHICLE_HANDBRAKE~ ~g~pour larguer une bombe. diff --git a/utils/gxt/german.txt b/utils/gxt/german.txt index a2c86414..449e4993 100644 --- a/utils/gxt/german.txt +++ b/utils/gxt/german.txt @@ -6640,8 +6640,9 @@ Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Prãzisionsgewehr ~h~abzufeu [PLANE_H] Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel. -[PLANE_4] -Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel. +[PLANE_4] { reVC update } +{Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel.} +Benutze den rechten Analog-Stick, um zu beschleunigen. Ziehe den linken Analog-Stick, um zu steigen oder drücke ihn nach vorn, um zu sinken. Links bzw. Rechts für Richtungswechsel. [HELP55] Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um den Küchenchef anzugreifen. @@ -14262,8 +14263,9 @@ Um ~h~eine Bombe aufzunehmen~w~, steuere den Helikopter direkt über sie. Der He [TEX3_37:SERG3] Zieh den ~h~ Rechten Analog-Stick zurück~w~, um die Rotorgeschwindigkeit zu erhöhen, der Helikopter ~h~ gewinnt dann an Höhe. -[TEX3_38:SERG3] -Drück den ~h~ ~k~~VEHICLE_ACCELERATE~~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe. +[TEX3_38:SERG3] { reVC update } +{Drück den ~h~ ~k~~VEHICLE_ACCELERATE~~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe.} +Drück den ~h~ Rechten Analog-Stick nach vorn~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe. [TEX3_39:SERG3] Um eine Bombe abzuwerfen, drücke die ~h~~k~~VEHICLE_HANDBRAKE~~g~-Taste. diff --git a/utils/gxt/italian.txt b/utils/gxt/italian.txt index 84804cb3..5d8f65f4 100644 --- a/utils/gxt/italian.txt +++ b/utils/gxt/italian.txt @@ -6694,8 +6694,9 @@ Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile di precisi [PLANE_H] Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare. -[PLANE_4] -Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare. +[PLANE_4] { reVC update } +{Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare.} +Usa la levetta analogica destra per accelerare, premi la levetta analogica sinistra in basso per salire, in alto per scendere e a sinistra e a destra per curvare. [HELP55] Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per attaccare lo chef. @@ -14271,8 +14272,9 @@ Per raccogliere una bomba, avvicinaci l'elicottero radiocomandato. L'elicottero [TEX3_37:SERG3] Sposta ~h~in basso la levetta analogica destra~w~ per aumentare la velocità del rotore e ~h~far salire~w~ l'elicottero. -[TEX3_38:SERG3] -Sposta ~h~~k~~VEHICLE_ACCELERATE~~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero. +[TEX3_38:SERG3] { reVC update } +{Sposta ~h~~k~~VEHICLE_ACCELERATE~~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero.} +Sposta ~h~in alto la levetta analogica destra~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero. [TEX3_39:SERG3] ~g~Per sganciare una bomba, premi il tasto ~h~~k~~VEHICLE_HANDBRAKE~~g~. diff --git a/utils/gxt/spanish.txt b/utils/gxt/spanish.txt index 836d062a..5deb3f89 100644 --- a/utils/gxt/spanish.txt +++ b/utils/gxt/spanish.txt @@ -6485,8 +6485,9 @@ Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~disparar~w~ el rifle de francotirador. [PLANE_H] Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar. -[PLANE_4] -Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar. +[PLANE_4] { reVC update } +{Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar.} +Utiliza el joystick analógico derecho para acelerar, tira hacia atrás el joystick analógico izquierdo para ascender, empújalo hacia adelante para descender. Para girar muévelo a izquierda o derecha. [HELP55] Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para atacar al chef. @@ -13952,8 +13953,9 @@ Para ~h~recoger una bomba~w~, simplemente dirige el helicóptero RC hasta ella. [TEX3_37:SERG3] Si empujas ~h~el joystick analógico derecho hacia atrás~w~, aumentarás la velocidad del rotor y así ~h~ascenderá~w~. -[TEX3_38:SERG3] -Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para aumentar la velocidad del rotor y así ~h~ascender~w~. +[TEX3_38:SERG3] { reVC update } +{Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para aumentar la velocidad del rotor y así ~h~ascender~w~.} +Si empujas ~h~el joystick analógico derecho hacia adelante~w~disminuye la velocidad del rotor aumenta haciendo que el helicóptero ~h~descienda. [TEX3_39:SERG3] ~g~Para soltar una bomba pulsa ~h~~k~~VEHICLE_HANDBRAKE~~w~. From bf8687590eba833a0d24eae13108019b0105909f Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 09:03:13 +0200 Subject: [PATCH 2/8] Add textures --- gamefiles/models/frontend_ds2.txd | Bin 0 -> 329976 bytes gamefiles/models/frontend_ds3.txd | Bin 0 -> 328360 bytes gamefiles/models/frontend_ds4.txd | Bin 0 -> 328360 bytes gamefiles/models/frontend_x360.txd | Bin 0 -> 328360 bytes gamefiles/models/frontend_xone.txd | Bin 0 -> 328360 bytes gamefiles/models/ps3btns.txd | Bin 0 -> 126760 bytes gamefiles/models/x360btns.txd | Bin 126760 -> 126760 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 gamefiles/models/frontend_ds2.txd create mode 100644 gamefiles/models/frontend_ds3.txd create mode 100644 gamefiles/models/frontend_ds4.txd create mode 100644 gamefiles/models/frontend_x360.txd create mode 100644 gamefiles/models/frontend_xone.txd create mode 100644 gamefiles/models/ps3btns.txd diff --git a/gamefiles/models/frontend_ds2.txd b/gamefiles/models/frontend_ds2.txd new file mode 100644 index 0000000000000000000000000000000000000000..7cf6c41f3891ac3cf1dd41def0f2b4630cb75688 GIT binary patch literal 329976 zcmWe*U|@K|!OHOeKeGTM0|NsK0|S`N%D})N3gR;|g83l1I}8vu2Ll5GlOO{_T55b^ zQBi(*u?YiKfRN9{D$n4`zyLCrfsuicgArsiSQ*Ip5(Wl_qYMlTcNrKMwlXj&FXM23GzbvZi+2L}h|pbG#tE|9y} zxk>d7sp{E4)^Knz)7&Bw9mWcA7bHWFsFxJwOb~mxcuCPjd$o)#5O*=r+A663S?G|{ zNbw5Y{Lc%{XB_OLIF24_!Nn2>9g-yvC;(UoS@bh7FoFsIPMT+bP)lGi7XJ(kpd3K+ z+z(30OdRw`W+0nL!i>xu9Q25O2DtyZ83zdfhZFt%&&$j*C;&6KE~cmdAFnOF)~2p^4M92~IWR&vZ>WMg6l zE!gDXVnPKxplJ*a4)`Vnatx=r9?0w-`J>D{5Wj=x2(c4IQfg4LPz{tis7)Cb1D@-pHo)O~ zkT7(v52StoFxC8z%kALo4_Y~eQapf{wt&`oQKj{T%WfjXY3_gMx*3$xfq{_=w5p7q zi5FX{A;Q(vQ$ln9Gw`yru&|>Q^^DBy17Gxk1CjRr2U{~}iBbPksr(3=l+<4+;OTXr=4 zkEZ|Oox<_^ZZ!Rmrhoh?WO&PtrvE{{M1{u5545Y7##Rh!<3S6+2DJle>^L?K4i;Vp z?g5{NrLi}08V^eU%#7@0F2Z1B!?TQun{7}m@xkeJummqN2L~SuIXinni(XhD2Ni)$ zLMIqOD<8PX3|Mr-XvYTy00*f%+ZoxI*jYepIJkIl0+9Cy`}#*vu!2wc;NZfsQWvBG z9kW6F4qCiJ5EHZhaX=S=ftTrm*1+P)$*2JUJ`#kW$6*Rk^_` z@-nf)R(0{=KA;i2Dwu;4=3`#m0JKDok7d9X1G0ha=itCxzz1_W78+dmfme>=I--*S zbb1NW;yPw7oB&jifRYO*3p)w95R0qG6k_B7MIe2C z1_22Mu<)?;KQCwlB-o1>1Rtn#0~#n8*6E)cl=&gU7_2;yot~hB!$JOr?f*jff8cvM zl&5$sCNQ$`u(NQ&j_!nA7{mnI|Ap{B7QMqoh>;Cx1OtBl1GpJ5BK(gh9!LF8^Y$+{ zktGX}%J4)c8B%nJe|F+3Sl$8Ia!z~y^KwD1jUf~{Jd~VwLdbBO^0fCq50P^?te_cx zobIHR1RnphQD*{>9rp+;vZp|2-VDGr3m*S7bAkqdDW3RXCTTp1 zB+B?fuLu;yxDo(9xk2wSVjT!-1>vZ4c{n(T8zCjuuED4dRKepY;aQ1mAP+`gk>Dnr z!=Rw#k0WGAFn-W0g{xk9r zoLNBk2_p|XXqcIoorRg5;5G0=36M^Lpr^Lx9i2 z!2zBTCZG(PG%o*>)&2wd9Wr&v3R%}kGzpq#<>24~PfK!eFtd^dpv#8I*%^$>|75iP zdD$U;htFn^%;2Nc01ggP&k(@ne+JUGI6@~CN%l38253YgiIB>K-9L^ktz#3z>3>k3 z!Z9>}%^Z*zXsb7P9)t8042gIy(5wUp2M5~yF9dTDG~2L{aZdtH|AR6BuCXDIXR%{g z2|#N32Rd1XgM%GBD?$2vJE#{+=Cm+Q|1*$1{>RA1#Ei8~g+0h1qP*w1IlmN&b|0QRZnjAeuhY(JMxc$#C?8pB>fr7{X48wf>2jqPQeEtVb z5Dnk?Kd|@l`kw*R93AEXfG_?T7(mt1@SX+0?|%krtp9){v_VP|@IU42e+H?)Va_7t ze@-0Z!!Z3rogVc+-c_Kyqw!DS`oBS*K}OU6X!^&KL`U=g@Tvc>cCbfK{>QrGbL9A+ zmkZlQrjg@+>^nY3j{mVQbs91L2W>>bascOu@jvK@cW+^G%v?Y;xq`J=EML> zfktz&OzGqIKgjzW9ORCI51?-`tp?8#VNU4a^*?BrFlYjfjzo{G@F5K%M)Jz zgU-7L`Jd$3oPqW&rv1>#S&W#(>wnPrF9!#X6_S{C3}zAN%qqsbBwqi6<^V}P?tXBF z01%R>5kTVkyoRO+z!AGE-a1K$|{gUSOG zItGjXA-CC$ke!Zr{68XEfLQzwTHy;icAVr5R}?120nv`l|KM#`q;44*5Z6;~DK`Hz zFtQ;ZyGXeugV+SD{vX8drMA;X{g0*nOYJ}&#O960|7iRV;^awlr;Von(ezLAL^g;m z7)}49>3PntVzH2sgJf0`$?qq5UR{XeqHztQ*~jejZ^DMQIP z&`>|V)82=YU&wGP$om`va+e($j-`PX==yKW4G=W2YcLuK-u^+x(Sn1~FXXrh=6}o; z(Bzml^z=aYe~gf|E?DA+iHn1SkI;oTSo94WAzmKRPh}l8o*(tdXb6mkz-S1JhQMeD zjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz$h5t5MX9tU=UznVEF%^SwMi1 zfq@0gX5u-(&%hwcz`(%5$Ox7LZP>cQ0AX{0&UO)GU`R`iPb@0RFE2L6?g@l^E_Ma3 z3=AN185kKDIT%4UgOzbHFff!bFfbftU|_h*z`(GTfq}t-fq`Kr$Y~4=3||=-7~X=M z#=yW3!oa|wz`(%plaG%Nqz`O>miVG(20?}fkm<}J+ZnniDzq}xe+SFqC%~@3uLNC| zk%^gwbr5c7W@BXmUGIYKT&nZI(_C1N`J=i;q!|dhX`F+D_Omb01KY5ib3~eZsjV7v zjvxok_nAUxxv?GeN^LKZVjk#}4bVAyG@pHh`k#f2l7kfgkgAq${)cYp9(1c5z{L_h z&JpC{;uwtQb%Iyl(B&o_vTrRTHBFPI9+U%Up8G*gVj7&sRf0~Mpn2&(0RCr01t1q- z#lzMASUrnHke>b@e9b=w&^`0CZ~cJ6orz;mUf4j__#cGlb&vX=PUozFu0kDTtzS^K zq*MHJgD&j^wf+a&GEa#AY3?dEW)=<(PG(j*Um_2RVZ4}~nUjNqh4fo-@fwOn659V6 zbp3xw|A!7WAY`Cn(DnbomoLzx{|6ZWpi4^|OY*}h1UX0_G`fpZ33VjE17L$~_=kZ3 zbelX~j+q1XGY8`~FL1h~$G9}80H8}po3!)_N|$s=mY{&9M>vz_eFjjvWF=7#S<2b? zI6&nY6DwV^KLaSB=@QPQh7}VBozB^3#d66Jsg9+AdNz6`OP;~G$&-bVFY`e8$5A_Hgdwq#mUUXGYA$ru(5D(a8PVo>8550UM zHa$S%7_axh*&mb+n2`Y=L=Pu3RZ1UXor|Fky4Zm1=@v#F@UjSyXZVo42Vz4ao)bE6 z%*eov01S+vldPE8nRw9)4Gb63SO8KwQIZ82d70Rm`8YVZP<+VE%>daj!pgwQ&cecu zR@5^xvk!F92Mt)zVq;3Y4>kr=2r^?tC49pWBZd@Ymljy>026E+9MoCUfaymDh9NLv zKsEmla6FQ0{iy$`l>W($fC1Jw8vmp5KfpB5|D)-DKoj5qTRxipN7MfRC&2-= zel-1$rvCv=fCFs#X!;*b{{x%^2h{q}^go*Z2Q&c=u;ruae>D9Ma1tC)>qpc7X!;+} z1USH!kEVYP_&J#a92Em%J!n_&fLJ_8ECnq98zfE{5NEJ~ZJo*?xE5EqN3|Rb*rlu??060k9 z+0Mwu#Lfa*!^Xvf6M($WF$5|X$Qn2<5|#k6LHrI{^+pi$5fN7dx(F7$Oc%5U7Eew_ z^#eCEL0=;&K-G(t$2^b=ff?DsYmrGg+l-fq6|%SyRCKW50^n7_9Goy8^Wp}e@Z@6| zu*J}9Ap1$YR~KCPad2?3pdOxy#A9Fshbw$>9WxhB04hj8DTb4UorGKn3s}l&Mjmi< zqOH*2uo7JbkP$5`xWktRM(g@%W#OIun5GxJOu#69VYWn*o?+!Q+2s&@m{K z9|gip+#D7gAE=Xt93pgKgU0`{j{dVj=HI{*0F;!>yqv_{8wTo-!e`~^;&rekNc|v; zP6AATia*!G+-)xB$c=ViuRO zQe)`@#5zRx6B^y<6m;hRY(XrZtO+xU=MVxhTC}lMR0883!Ns5)C8@UjBku|3hovGcYiL zmg5k%hK-L>|1&Uv^FPRgEWAideo&b_;9{MQEe%i!z)r9Q1sac|DEGrc7#s%p>Kh&w zK2BDmdSoyoDWky)P6-77$oqUmw33K(3jX?^kr!|CfH*5iPz9c9!ruY{U1CX>OUy}d zHuaQ(0|4IQz-BHx2L~Ts1=utV9WhY!;_KXl8h=zv{DU!AKr>Oea{#D~%u03#V=(#` z!%a*a9Jot&ypkA34M_n|6yr(&_~eG9XR$dN)C$5;>GE)J5H~`K&D^0P2CCq3l<=&? zHIRpjPjR>t=P)QJ`Qr!~97YXEVVu{eL$3>k3 z!Z9=e$~V|BXsb7P9)t8049PWIpjinH4i0vr^9@8HG~2L{aZe0R|AR6BuCXC(o`;CR zN&r&JKhViC931T6SqakT+d;ipGN*-c`X4kyhI?=j;#=$_BO4Pl);1M(Imt!Vz8U#;v8hldt%YTsfIXK821s{CA#dHx~|ATf3 zgC^XDaSp)if6#gNApes*n}Zq7gH;5t|3Txw92_`SNDfvXk>)PE{s+wgl6>4fY4#7a zYW)6Z;9+HE<{`LEZlFCuf&B#h&%iL8J91@r%iZ2>|y4&XbN z2ur99BO&m%D^jIbD%kpBl=^fQ3&*`|HzkK%uB z#z6u=t{MRU^D=X>33_(DEufQq z2GZX!yXo(L$c1Gf|Fg0WFkpop9t=8XkZ$Q8T>gXn56%dnTrp6X7v_JurGL;>sNjAx zs3|z${%51J|G7bzc7j^}+zf-l|7h_~^KK~{GYba?Co?M}H!CwA2M06h_s~)^r!ew> zZV+W=W@BJy=H%dDp}lKBkkCg$GD?tGPE|^I&fmFqi0RSEb(8ZOYi?m7APhIt(8-&559*}ei z8r`L?1sJA*2f#p04p4_{z>oF>dmG#w1E)(mbO6C4O{}0`0oe!&2oQUqFsRkT0jiE5 z*^wUAG05BCa0cas0nYvm;BpTf8=!Pam)HP#8ywD{_TPYygMkVFaBP6GBRC*vofO$P zI9R~NEU5CKeSJf~JBaIZS;6HX0p(PXW@O=jhBG@o#v2K_m>H7&!SyjXSrXDfu{0X&f8&%nUT3=IeZ8fYrb20L7mk(FMqfj9XWY2Mu+ zBIpK}Ylv|0sFKkT7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC70n`xSWn$-n zckofANa1nwVw%Fp!_LGu$S+@IV*$-If=63P@h+-bULGc9PA>FN1TPrmqt}oTs*8x_ zfyT5sIAFuA#Ogv;$H>FP3SJt_#e@bx(-<5a@J$HFng$IUG`LU6tR@e{@1Tic9GGv= z_!XN&p#BHX?_rZCBnF9N9A1YAGjM~80aTM1*?0%T$R>D&2?q!H!EkQ9Q@S$i~EqIZ+GQFvJW>9JnzTE5){x?|B9W z1~v{3>a1zN7LlOo3rIG=9RQS6J{0*JqM2&`hZu)Rg0nwp5Q=LIJKW|Y!_0kp=0kC~l`7h9?!+U?X(NOS))@UpY8u%i|AjLhr_*2O6mK{z1qv?Nmr*Qnf8%_VC=^uXz8Q!v^>3=l+ z5API?-*=DB$Pa(rwb~OEurvKrc!twiVH2sgJfBY$Ac*~Ba|3SV)g~rJbw5ylK zRt#$6K?}eJwF7DFILKyW?g5{NrLi}08V^eU%#7@0F2Z1B!?TQun~jMHZQd8BGX_k8 zmzjfukA<8SP@qLGEZ~z7usfa+wDN)SwKdocr=BP%060k9+0Mwu#Lfa*!@O+j6C4zL|dau&=N)-CT4tr#>ULWg}(5KprHe!fESbr$T-}F8??d^ zr<1t{et8>Cx1me0v2wu9`9PN%8GJ?_7FMFGfMFRVj3c%aFf5~U)KjA&Fd71*Auxa; z0IpF6^ZqYthYc?e(nt~;D+>z~;%`3%a11Ot?Vje?%_NEL?+kRiOF4UpLU#=*e{ z83yEFfh7wF4H`QH9d13~`@g6YV%(t25AhQ#4|Jy|#N#Z3eE%19{0}mPk&Op5E(#w- z0q_6kWE$lAzd$ah9%f`?Ld>K<&VK+6v0`>CF-557h*6V9Xb5lKa_0 z#o`)pe}ixh2F((;;lLc~0;kiV zi&rSRUz`m*(1(4z16`DE>wkFInK?LEkcMBe2LU4!J0AxJD?7n-f?YdE6dHu+KE=TY z>7Wm0BJLnR#Dy;8I*Sc{=otqG7ft|KRz%13KTO0Ff8cAyh-oI^4IFs>XW_-U0Eh=% zAknd<0V)C53HEJ4^&dsK9~Lm+Fu=3^lYxhYkCUGFc!L+55()s2_o;U%C;s}Mkr!|C z02Yu`qrp>6_*+1rE2Zdii8<9gMT$Y-0KnVg0NrMZR{<&34L-G?=!IRLgw1uJ#vc(~ z1Z-M|h8Soj3U>|wwUJqe_s}!^@^EbNg;x@rhM^}0ieg*|0H55@^C=D&gIYm2cAfBW za1b{_io@t3Aq=YEag^|^#5ItIgg0?J66Y`|DEZ?E8Qi7~JsJ4*>F7>}Y;{8y9d>+P zE*!UJ@{EY&&j4xzVeQ>B5jQ_D(SwblET$D-+3ch`9VuM*E+a9pZN!a~s46Q)~dq_jBO#KLhDo9HEnn z#P}1J8fZk~k|shNcK3>k3!Z9>}%Q&R1-lV2rNW^o3W+gZ{(C>dCn2Dg- zhJ}oK5^(w-lmT#!4dDs^1_oFOKx+91I$4H;gB?68LHc|;KLZ1(S{mN70QmjS zz{bZx@%j%)LK~zc0sr%Ij{2YEzWgAKYOKy0jeqRp-_XDsP5-0$e>DF?GsAGCM$5ku zQ~qJ?V2_~q$GYQl6%#AVoU!#;B#j%M}>$rb1139;(yQrKhVL_ zBO(W2@jq;QZ$#t(Z2kw`O2#olYCtUh2d(f0ox(r7Px*irQrP?t-gZUmmJz6VLyf}b ze+EW29i;3;2TGhf>VGWlUrGXWi0K`T|Izp#Vo8>&&K*tvqv@Zj32KNL zHk$rN)Bg}lvQ%~MX!;*b|5Qy-L(H&|p8m0~{~2PDNP%-l{XeqHztQ*~jeiP?kD;y= zG}MppwD+OzKLYLtd7opL-epI?>tJc<`tOl3)eZJBDgoa9LB`R7sHO~E9?bukE1-w2 zpGa{zbpOYQnCZtFE=*jY`^86U^fNFp@bZv;Dl68I92Fc5fzc2c4S~@R7!85Z5Eu=C z(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fl)9T0;3^7atJUpFfa%(Ffjc8&nzIo$iTn? zW;5{|;AdbEWnf@nVPpi$fi`U2VSunXKxexMGBBj2#wQjP<(C&5Vz(9{pNn0AD+2?_ zTn0u4Mh-@h&0u9*3=9k<3=9lM85kJuGB7Y~Wnf^iU|?XF333_(1H)Ga28OpFr!g=v zgfK8LC@?TE{N&@~1L*@Bz`&5qz`&peWrHYmK1d832D=8E1a2`#CT14aLAafhjg|4u-O2}j@0_6ajr+$#@K>i~RO!O6@@=S$>4F^mVZF|adpa&WMaek(2>L$OLh`#*!M|IY|LXNmUx zf6%Snp!=h-2F?Hqf-hg7NB<8p06>?PCMm%QNtd9}T~c(Bp%y#&EcOloj}(j{GzB`Bcj5zZtA0BHP!F3FN@&~5U9#0Dz| zmdkfY3`Am-GqMb}U7nEEI1>k*&e>1=E>32q!EkE@8w&>q z2c@^8^YSn;b8?}FB6z_d9}{Ra8#JHCgaW{qHgT~sv7zh27gyAm1C42Oa8NSb%E-gS z3SP0wh2lRZCMM7{2580@v}zVN=3*VlnLfy*Ci%0PJP^O*_8tcxD1qUTrzr3#P7qN4 zlfB#u632MG2hRSWbij-Z_#k>XnW<9xkR1+?NnP^CwHbN9%OXIY;Y0Qwhz*H&PRIr9 z%!~}&2*3cE<_+Cn!?Mo7{s%Mx4zT5; z>3=l+4{#D3Q0qt2|7iLj&;&TZmXD_Y(eyvSNpL`|A5H(G>3={I-~d}bn*K-A{{Sb! z0kwWK{d2(2$sEv#7$D0*yLt!6>Oo;GXaU%uaL52T0CD7TEoW0gA;(f&oKll7swhoF7zeJc*2wo;&;%hH-eZCk2!-v3cO4gv<4PW zPDXVoH#0$BBPl@DJNS5v?BKP?q?~QW%ft#<+z2WD|HsvA=yj=CL<3xI?>kX6SRnthlv?qps_J?aiK5#BxvZs zDBuNU0x}M_;l{hdk$b?G_YxnPY^)p{gYL{};+;>qN=6rOCSX~nJP2Jm z>ZH*S7!85Z5Eu=C!5;$P8f9?rf2D39^70^!B(brwurM(W?)|S+^gb^SJ2Mw(AO*6| z4YvPlQ15@GmiJ-ZK@Oyij^I8O2PdR+i8LU9${g7JuT=6sWUC*l$6!22Fu-_NXu6!K zNhOcsFoqYj0TPSXI5;@?Aj5zhETAo+2n-rK<0wC>ll9 z;nNH%);Neb$q1ZGs4>+C>hs}S|HHt<$HBourGUogbBG)pr29#*WCvw`4h{;hmjd}6 zbRQN67aL9hv50PqOCi<~yg358c!i?-#o53Eeb~o4&_(IC{)dO1nS+A`Y4{bAEYL|t zCU!m!4pw%8=>%OPf)5Qsbf4njBlOXl#YEg$a=ctbRg-vJ%LYI6jDv#!M-i1{-Y@O!x9EK4DhV~WZ+@p z(SwblET$D-+3ch`9Vu zM*E+a9pZN!a~s46Q)~dq_jBO#KLhDo9HEnn#P}1J8fZk~k|si&g~XBvr~g5D3dhg@ zO5Q`_AZ_&~H3dT=o)a`HfqDNG!Au0rHY{Y^6NA(LpbUU(YzWEEXiQiMKx+91I$4H; zgB?68LHc|2*Z-j1-yr{!Jez|V&VyA1 zum3^gzZ@JmR!9z3ACcxRy#5Ex0g`;&J!$q2v}*kRXW(IFW@aL|O>Uq)L4o}Q{LjEJ zoITILfPemnf^Z!wS_#JgQ1J+v?i}?$-u@q%p*m!=fwt!llYm zXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeD zjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mk zz-S1JhQMeDjDpb+7!85Z5EvODz|6qFAi%)D@c%!vfB+){0}GhV#B+e3fkBjkfuV(k z5iAF~mN^E>=3ro8U=n0tNK1`R&d)0;%FoG3Ey5C9DDuS_m?~5m7(nJSFfuT5FoJ9b zD*^2dG+C)IPVhv-|Dl z=Jq?lKj1gR{G|USGw1$a6&CjYZT38nzTZ<;T?486`tIGkx8&lN6~Q3C7=>4!Bh`%O z?d9cV73;{i8{+1ht>xwA75hl{!)uWKx1{Ss^XFR-A8Z!LyirVPd=5|j9N_E^E)Bqi zz$h^q0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8Umvs zFd71*Aut*OqaiRF0;3@?8UiCQ1Q3&^2-d&_1Hugm7HwU_#LNN(%&fGvi3rmfkz7Oj zL%tbVnOWF5I5;7Ii-Vhmg?Ruk7hz&y=7qb4gM*iag^7l);bCRr<>2Gz7Z4ES2SY&t zetu3aZgyrKdL=zXf?(ufg1QFc7Jfl~0e*gd4sI4EHkyP1BP%-xAHRSg2nY!Yf*^<~ z$j{Ho$4&1LULC>$n!$NLc$`#A`l=f463G(xU${kRa6A~5@k`Nc-q}v($Jj`5z zsIK7$IR}&<1cih|1O+7|gt$QKOeyj*vSvmWK4Ec55wHz{V7vGsKoBg%FDM};%Ev*s z#sDv;u%x6g*lIy!=YV1Z#21$o<>#elCBVupC`QfLQ-6mAH2R1IT2I9X66);5SJ7Y6b5@;1YZ7uxuU{? zf*>0O>2--V3%`iCq=bl|FgO|@aR91^A+7=Ce{rh&UsPONLPAtTLo^DZ$T6z1+yi&M6@&B`zu~2(}Q^Amc@f zL1qaGNk~dcigL13FU#Rc{>*$Ll9J-$B7#ELqeDK0>{6UxFGdXBQL*%6e#^e z?E%>W#V`>GNxBt)OdNvZVE@DHhB^hQCm=2^E+r{PwF-a-Vxy!8C&VftaJvgch`{?l zApeWfr2=5)6cU#b7Z(@ehjf4-tw3bgaEgmdN=b?eP^&s-=8}~J#lH}zpfIRyB`F1g zQc{wVlH#JGf}H#kQsR));#BL8 zuz+j?B>+iDaU{P(LO>J}1maR)|KoNx)nvf_hq(sBITE0{PaNzTD*Imw;(3q-Qg9#+ z2@tS_p!lbnFL4_L@xK%(QIIb6KRZ7$u8|TIqN4x79UyF;Mi!Ic=cG&gbAm?OkuAo`mf+{4 zTK?xG&i|a8-1sVPD#`H@=^Co~AE|XI4((-uy1yu$L2*G&E@}-q;0`NhE|mC3c8xe_ z+y|Bz#09A~0M5e62`&D?U0}#GBgp%rq9UL!s3fE~k`(6Th>VTIe3Z| zBnEP=lnB-0pP5q#RJ;odiy{v;z!DmGTtpC5C5sA*iqjrQ2#J7PBP1+=!!_a};0A&y z70Z7S&@c~ZPz~;BR0gOyC@PNLEJamAHJ&KQCQ*E@5f>E|6&Drc#$Ae#BE!bPDJTj_ z;&}WZE-EUF+6Tp>m?9}rPy-m8#Bm!VE+Hz!Po4RAHf}!9dK27s!DPfmg^6e;!Bmq? zO9EBIFuLaUlu_y7UBrkAm)M4GOM^S*#Q8GeKfyGii(14k`R>u%>sg% zpt(PodmywVjY>gLAvD*BgIxo13Iv0==mWK&Wm#lq0TztdmqHBtOCs7Il4wCLB`Jb7 zJ_iXG3Q5d@AJzZ_H_TyC@h>GMj$TkfR8l~S z3qibxYy>z7N{T|(U5#$63QBVa3^FNdZ zNx(5_6*XKNE(VtQ7D)ORIbDpNnt@D zVIdKDQ7{$~7UUPlmj6NHB_xc7F|vZ!dt-4X$p7L(h+!^HP6;U-Auc5jDkHI&L52|8 zbtFM-|vQsROf#Bb1J!CLr1^S`7JKWN7nXb*_6AZR7N z6t?mY)GWZPv0yGIjm8oEQWD}4Ag74P%L@q#iGoT1-2Rso_B@2uV7!7NXzgB@VsUYC&|WN2koQ3WAS@(^GyXvdfY_cOGaoLO zgZvN4bD-THpaK_n`UfvUfjN~D8dvm7iG%jJf$Kg{T!0dQpde_SGIq;|UY*Iqi@orN zrhm}FYuNgCaQx#+|5B3FX$0YHOpA+4N$?BG%PWY=gP^>;Fh8#HALMpos{mFGaIVG{ ziqQCnc^|aZN=ix+NAi@C#L{NPW-5L$aZsxcs}j&EXF)-b*P$3x9N{Scq@+MQREZk) zWr0jEV6jpXrrqQRDz!$78}BXpdJgZ z(nyNf5|EJ>WDLYjhye!Ba0hhs3EboaSt=q7ZgGP~r9eXgASGZ7PY;q*r~)NHGb<>r z0gpa_$00y1JyFmya8P9g>HvWRKu!UV2Y}szv{podpQtTiY#g9M9c&}2_d$~iAYpMq ze(=s45lDc8G62*n7zGai92Gan6k@SB-2d2JBPjvjkq8-l2G7O7TmqtDu91`>svF3} z0q^;MCUigzeGmq(d51V!LJ+jgP*_+HJ}nMX09t?!RwOA7aR_7?B18-Mq&U140q$>t zYymAn7l%%|f(ka!22{{`EVw0-lAtsKQXvW2C-62NdXxKc@cff#oEL83kZQ>iWX`F9kYl1JuS8=7$$~U=u;5k02+sKL8r{ z2QNfN*a%vO4K8`W6%uIA3M`Mnw4>9K$OEh3P83WB$W#e_L74BAl#~P!F$Fh9QiLBA z`Jn1qQBe^bMDYACMN9z*+Up224eWo=NR|+Euc?R#QmzN9f>nl~#*m=66u7hkxfCo3 zny>=%3c>s@Bna|9 zKc;D-g2IZ5;Le$_kg%en5a?tESPCL)gBnux2P*$0z{`D*{10vOft>`}^NrXO4oZ%a z65`;k!Vqa_{EG|2cMQVINSFe2S`-vipl!C$S$4s`HX5Y#r%E^yG4j5xCY!Q}z6 z|1nc6-0ffnIQ~V!Wi7bwBug9aHT zB&9$HJVCvQS^$E&U$9;H;P?m4$>GcYur>n3xtJs<{)Ghvg<$KAP}09Rdiuv478el| zQ51#vUr0z%Q5a=FNP_S@2oo1l@&=WEQlMrxJpMuDKfE{rxgIG1!2Sm{%8>jIj(Ri|{>L&-BPj%`|G_8ph(PLpkUmgMff^Hp*95a5+O<-k{14VC2?=u0&VQJ55T=4^ zZ18GNewcF*a!9RLP&)u@7$E`_f(SK;?l0I>5v2AXw&({p07OA;KM)}T9-n}>CP2$! z2(1Zc;TJ*-T7cspf2bqe%An${_ptu46p5x$- zM`$LM1t0%Gq+`(d50Zx^K?^`Y2QwgymXts$M&YiJ5S36S5dS>fg5WkE#3<-QFKm?= zGy)`rL9q|&gu_ZaNpYAGFbx_dh8O_vyh6C-kcc7#VGGn<5aYx_g%hX2K{fKH?Z^-MtdQ4)M22Us3Lz^wx9*_PnPe?}D(m#Cx^ z_SF_3b3iE@Y5og3|AXImpzT7!NRr$vyvF4%N{)_;fyil~T!4#5=?Q4s}I z_lRNwO$&Gt1%V+@M(9xwu$m3c2vGM%N)kN&0O<`tntY&mKv#*v2aQLIg1a*)!ZNu0BhU{8tT9|Gp# zkO38Opk6mF4 zaJUB2kdhR|I|9N3I$94@sN$Hn0Qp~B7&;gTDsf2hKWH=v6uOYmz(s-%(!eE$CN3^6 z4jz3I5>^2ve(=#}5*X`Wp_(8aX-QGM>!4UUAXD~|IF?+1{1563fmc8Y2?~K507RvK zh%3Z#mVt*9R{893G%d%5ZM2q_~4fihmFgFOhaHu^h-&K;@uPkAN+)b7D79e z1@=F9#ue1y5JaC~fT{vhlHwAeQ5?__RbW1Z5Qn!2#X%K0sNDc!fJRNg3c!UFm<1w0 z2kU@N9ES~tfW(ln1o#j<&L2(@AAFNS}e+U>p_=O_@fc!578lnd^KtS6K zLFpM={DUXyz_TL!f`Z8Vm7wt;B`yJ;#)AZ-peS@U1;zW|Sv;5-*n$8w*vJnp|AbUj zL`8%^>tC?ufB0fF{HLOTt3PlEgBlB91_}Z8KSTskL}7-wxTqjMC#atW@*Y1wC-VL= zXnR&%LP8KeD#R}eNwwfA8e+T@X#W<>2+;ZRf{1Q8R0XJeCe9CzebD>_C~F z;mHoK{~6)&kJ<=?SqQHGK^#z;1iUpsI392cC1d(?UK~kcm zgoGeys2emXAR-9OwcsiWYzk% z43T!kh454W;NA~RlQ`z!Dm?x{SssMJYEjca$U)%cArO~?N$_9Tz&%9-2hIPIC`V)A?E!;MmW7%PqQHl`ff#TMigie@5{X0# z6e&?o#Do~c(J&Ge0N~LAP<|8zRig0npOYU{|G}FaqR<=-(}_fj2qI4)V08_8`yc(_ zIte_-0M%#gtCePI#Q1qhG<5tx&pG+Ok7j=}>O3&Z00{EsN4p~^wW`azix3Mt-UOo#-S zgbxjYe2jrb`1zr!7Zlf$lJH%UQj(z4m*592Z-8mRprJ!f zaBcV*&=s4=itwD$%nCZ^7g;TcP0F5j{LwEgECODT1X?tMIT!*<{-T_)(FF{@g9Jb& z03@M+97h04VChWZ=>f5V20t;3lq9a(4l37$@FiVPK8K7Kf~po!O9k4BlmHc=lF+q0 z;)0ww3J{R*LCq@AAQy%su?a|uqSR(ECAb#>F@cV`hbcqQk`hFY-iZssS4Kk|i%yCN zatedZ1=n@pMTDRp0w~wP&aZXExFL8 zkog3%F31P4$OGke2|-Y^1vHZ-3K|-Lq-sK0NLWM&X@VZvb`&Jxb?ZU7c08{{i&ZvacS)j9XAw#Z`Lin@4Fz9%DXfpy5U`URHGePl% z!}p*iTe#+cSx}qTaO1!XPzZpA*1;SULK50}mn7(aVG;0v5x50}=6Yx~BS|3pBNqUm zP8f^d}z>!H>{DXSXh-M3HTuf4s6KnSY5g?#RH%M6onk0anKn8UV$Yr22+7S-M#*)O< z0|s9#fK3OAm?UV}3p8p0!jRR0pv(+XLrVGwP3}Mj(ZD3ErUv;R;aBV|SQ!d#M1q>Y zAeVr!1oj*OavBnr6veR$8g#D;k~(}$$bJWKtRrP+(8>$!PKJsirCm@L5E1=Su=tk} zCX|OngkY;ap+yGh@N0;B@VOXC4p#+;bJr)5UaU;msHHe~AOh-FY?O!)C$#Lw$fDxV zg@J_Xe_?nd8r+7!>K+1uxaNRyR{sRd0}U{Ml_1taWAi+?{RgYNG5il}|4H!k6KMaz z+K^;#t`fy@PYr?MAM8c!1S}N~3fsRoES9?eVyt4)x{=$)eKr?)>0WesYW4eZrh@=SC3XqKhwziXy z0hsd8)|(Wl`Hm|AfX1((Nmm@Uo)p~sgAlNmv6MJ?a~<{&5E15t4IxPoT1kxQN~j3v zqBblWfhqAnJTfHsIk67iLJNOri$Rp1lbanC@N&Y>+mYbJ)s03P{zD$qhx&_X3VQ`e zLh}dHCRhz1CBX?<9ETo%;IV6{_r(RV9LB-I1s{AB<;NZXpcDj4qp%_u(5)y>(O`|0GK}SJg z9tg%me)R|P6e2!A%LCB+Fe0D{KuE6z)NjLjPaf#l1&~Rg<^gEK7@8TN`8~MzA^Xgr zs!66KMX*!=pq0NQn}pB+uL3~+84}KGGtb`z^Fk*xdv~mZs zV;Zzy0T%b5zOo>0?=!G+b0Q5{OGm*GN9P_T^; zXzGaJiW7UTAf^u}69HcYPmBvO)nKdwWkVc#hN&8_h@=Rt?xV~%WatLpgpSv7I3|XFmZYej`dR*{wG8%aO_TKj>IxqFhQFMPwI&;;2`Zf~tRVT9a5uQfT8< z?4~j!omPi8p`uBm?gM3HC3EmwLJ;dvHg>ntM3l^qu%rm`2mm7!H(4W!1Jv?E4oET^ zZjvYmA%Of(PVyh9mLGBeu<(&HZi%`NmQ4SP3!=3mk=;cvHkm~rYWim-C;j8yN<%O2 zGcb@f5<-pm7Zt-YjYL0x!)zjJB!mk77az!$AI$S0nw3KU@31>s)d%6Crhg`G=(;?J zBvGU&KR0|d3gnD|!-$!4q8tuVgc<*&PNaPU;vQR3dA;K&BO&= zSB@pT(1avK_`s9U1L$2$t4Wy;6UF9!qL=@J#{9^f(ZX~#^+bpt!WG9lYQu(f@dH|f zqjDt#xmgEE%NHs17(pvoh$;fbg*mWJ$1*_=ze4pb25(UG`jI>iXR_hEwhh$}*q1*u zFfg(puRcT7gWySG%{*{N3?zez1GWq@G$Z6BOlj>oB||8g*bT!VabmY0<7$Of=CC(qPSmN zRE&ceulE@k7}!`iP!6nvnII`4EWkm``aKlq3;>6jn-g0INQ#RJauKxzjg_5)Usx3B zf-x!30yZIj5*DxxfVUA=GO}>+ffgYmMzkbBtLFsycv07UAatO!SlPMx1%*UJL2HjC z#6ibv3vzO^6RR8DH2U+|ShzVr%jcl(2OXry&%w(~LcPVt3|YbkT71thz`@IcwZ%k# zpAl&zBM%cZJ2!X@9zQ?700%bK8&V^(e!{E0;A~xIW$Jghtc#fnjVltU^G1-hsJ36Fq$4l z(*tq{jHUTS8Vx8>@&feFxwiwp{lC5!EdRge9wfa$)6)XcpWAY8H~n3%0!eRioY5fjWpBXD zA5A~-kbp2KOh1C(wk0Zu?fVZgjDcazpA-KZufPb}ZlYmq<&Xe|aq7Lx%37X!%r(3psb<7Yte%X=GU|7iTeLjuB}Fn*~W zp02&1_)2^ZaU27K_dmD(|3Cl#=Wt?RxXR1P2}=*Bqf`{vQjlI=M;(@UwQAL>|4Iiy zsgOa#Ns%Kw!NK7_gXbre3?>}~25|WiPHq1Uck});c+QeJIe{5kA5VqF*Kep^2#Xo+;Xl;;$H)fC@44{$o#W-T{y)FxL)w2+MNMJx$&;MOv3Bj+wJ^Sh z6DWr=#KHKG^zjQVJs{ExM1DV9-qTBwgMoqRDonqpS0aalgM(9B_y3Qe8Y#_?fgvoQ z;K6?e&qpd=OzNQ23C4r0yc}%t9sc6j`@hfL{{iLqt5c_n!onBS{_;BY2VUQ+YBDgy zUu{x@$#Xa61%~pF z{WlQu3JjrZuQS2;8cvBEq4BHX=>b&!|3^wMo?b};p;uoa$ty5~R$Xs^>37vsU?{!% zzzoJeZkZ&o!Ge{6@z?UdxA^}YJ}fcX9soxWf%1<%^T+!Cf9C%Os)OL9O1f`$GkH*HZ`1AB?5>Vyk<%RJH#XqU?8cvQJ2@VbpF!P^V zHVH7RTUqI?w*Pb5{_kq`g;ujLjS__gWLQ6L*e5Apz@tTI~1-SEYF||=Y!-W zBqYpX`a$gvXXnF*|1)?ssZ@-%=Meb~&Vn%Lod1Qsn&p2l%lq>fQoq96<1ZYW1cZeI z1Yq%}>6IkF%gc+@KLoY^0!u5mFql1GJ zoX_F(SVCG_TIxST1Cs&+-vLm06cQ3M+J8h#A3CAi5_fM)wuU4gP<;aGJ%Pq+6c~7s z%4<-2>Qo5B0a$zC6v}x|jdwSpJ{W zQ49=MuU{zuFYp{Iuzj-d1twj8E^RZx?_s#UAu zWLqf1v!! z&CJOS9I4}_1{Ue=^EB}MqXLIMu!rOD`;Y)8msDE+e z!i9o@veEnx$@oxmfb+kF10?^0N_WwzQ<3U_1_n+}Mn+=uE49;;rAjP)=1H+3@czF$Ke=)@W zN9xZhaxjD<^BEWz)`!FU{}A&~`~M6Ki2grlJhC7m!67xPz4j)k-3U$o&;M-8z0Lmt zzCP(0X#JSb7gYWP1poZ=ZMnBkBGjM1vMu*E0~)^x!QTy9pXQ0+@7TL7_jUsse*%KP zY3H`w+eqpcE#H=Vn+ah*gpW`U<})D4uLZg16Wsk^`Meq!JXMVT*VU_kW$ zJ-u8tSFKvLa^}4MU*-RQjR&$SBAev$w~%$F|+z9R<%Got39kbUU#98Sv&|03C!>9yPv**)ld4yWUm$o?UQk39YZ%3lcu z0e2ALr@)YKjTfGtK;t>c{eMc+3%Y&|rzG(DQJDRp^kEuzfMM1dQ2+lkcs@HOJ~T%B zJZQda9-)RL6 zDCw(!nNzhX! ze^pSM;s5`uP}*w^1yhj9Uj+tLW<+??J3SDx?}cL`2WU7s=r{kL`v3p`gVIlEcm!y@ z@FW#)CRIfJ2WLSTX!Rv}`+2bQ|1)?_ayco$1k3L??*0G`)Bj%;Ml3g|b|Njf;gUW+jw{G2nsYf@DR6eM` zc_HBdynXP(5!9aNgs*2J)x43W9@L&ckZ?f;79XJbbxzPu8)$!q)bIfH$6vjA^$KPl zD8Di?Iwr#Sp!GY~R1xjZMINQPt7hFRgUM%lIda4$AliE%{S1t(@b%}Q^n<*=fK>N& z1uZiKwF@ME@BhR8|M!1zdpIm6fGK@j?(GdjXT9lv22KGcMh9?t7J3!2{{mEABCppa zHGI(3qvwCncp*bW!UtGta{dhWs=rVJ%!`Bml+9M(|GiJclQ=0$L{RgT)K-CA|@5b6& z_J1y~3L2dI2RI*ZORV0O{2Er@|N8GWNyT%L3aGwi<>jPWeUBbKnEBt4W5R?9@ceu_ z>bd2=fB*i$;%64xe&D`h1_tE(4vIfyKDvFB@j#BT z!i5>|`W}>Dsaaou%tNjJ6*(qeEOdmWk0uKf(_3->R>1h4PQtnjp{r2xzr!&=Q?uyM_O-9hz}Y+7m!ee#}8Vi{1420^!Nq! zH`&!p;OQM*ex&h1;bEeNd%ezcOHc}PfVZEZ;SC=@LXQu0K4?7;Lj$7y2b!O0WMqQJ zHz@t^PLF_(FM{fK28O@z_5Ps!AO|9*!q@+R>SyHs2*`YH{t&o%pXZ>aXLLTg`yly& z)dp930kw~+va(*ue%K;=yS?@%tiB!S@jtF#&))w#*AJfGm^u}){+dww1?3NX9 z!@y7gZ(o7;_pCz1A9%k8*Hw6a2et2Cty;Ab7JgkpiX5Ek_u%XQJiQbc7#wbGg~@~B zj~8jY7!v*k(_r%8{yL}vfc7^*%8#!BhdbwtM!Qa08svB zQk@n6QxA%-RjXF5hVdy4Z;<&62@&x5pYB;r4B=l_!`Gv9FKS}A8vkkm%s#MsPSq(0 zev$yb@hp&gvtF%Q#r$yn-y8OWXFsvr9LRoM(D;n0sVRJXlu&qr;&biVwea=*p!pGn zJKsOT!UH5PCME_CPfsrmCkCYXY@X!fmihY;O@ge$f7|hJqRJ@)pz{ zKrRnJ{fAXZ_JPKS3KA0FA?p0dwzj%Ort@hQ@XnpK$(nTM;1kf z2E_i+OfLn7Fr@Kmko!Q*QJDGY{H!1ahNbfm>kkO|pHz8F_c1Wsdy5!92hDG;z8V3q z|3Kv{1A}f1%)OxUdDW^_@b&Yc_4HX;S@7}r%X69p{{H=ob36o;9+2}tX#8e|i5eTs z{EHtoy;lE@j)w8yAJp_>_>Wi*q`xagu%hC}512eCy)tw1!rPyuhsR+F2Bh+9&85Q} zU$@%A&yV4{q~X*Q5e9ERaNW}MYBELa7hH4eFh_h`O$E$798OIF5>nEVFg`B#XrF=X zCw`*9z%UT&iCDQn>lYB`t!#h)<2>wqB~tP~sJ)c!%?)o)f!gyA9>2W;^FJuQk@G)# z{~fbE@5qsmZ~JG*)C_5o=8b=4|Fe*xXT+-ye<RAf!uyTcMm!rR32QoK)d`;$bF#r*#Ccj z6TSetTal%S9LWBiG-VM<`JX45fnoXb<=bHPy<4g26%-T{ z1mkN4c^H9~AHn$VR&qE+fcM{lW}`s!?~WYo?7Z;vK?tQ6bom#KizPto`(fty+3HofieM55hV-98u}vY(jg0Vw~6 zgoM!jyvlk8+~=*BiptI<Zn8xv3phU{@tn|1qOyy zp>TdzkOD(P)l@kDbrb``+SQ2p*ws-<0;{Ux;QRMM`F+*?`|$c3r2Z9B`wwIur+OT` z{|?H3t5zY-3&`|R2@L99Q2Pvde2H-WXJGhnVFJ8=^TJU@(V+p+ zUIn>_acvmff9U>4=Y!N=n70(J9+qBU;f>A*^|u)q5a(Zk$}{Bk&gkkf-N(Sd`1Tsy zK2UvH09s%N4G&QN4YXVnxBZ7v@(-v##K_2qGe3gT3v&GrYG24)NPzd(3okw5VEX?T zz8?I;#pjmD^?z=c14Ba9J$U{+9p%V@Z+r^f|AhFU_2KMh5%BbteMyCL0r!8ndq8}y z2mj&aA*lU-VTvl;zv$!H==Ooq*Q!;kUU?q=|FQo6PkT`QkBg6_`+lPT44%_mJSWJ2 zvMLxu;~O-;HS=O2d_EPj-U87dNB0jXy>atjf%k_%@r#__K(i@1c zDhEqnp!C;}Faf?E2$X-3%Y&|<>(U_YVo#kM3TO{}~$U zwP5Z6mFJ8|<4frN2c2IaA!A|!Q%~#pz^ougj;ts%`1%7+F9wFSpa_JKe>`(0Cu{_(%j_fq{X0E4;l2s-KX@ z4^(&l=i2gcyc%bt^{fP+|KET&g5V8;2zlXP8{)boG?-(ewZ5C`FE&H*X@HFQMVJ zA8EWdJS5BO5-0CwSooQTczVTzhlarTp!O1a{XxzA52_Cs7#QH`8I+&4Enf?tPXf(P zIXE0Rz#7?Jdvp0;x}8V!pTTefli~zM(0K;<=KDbXn*vaW7GB;fFfcLl!q-bu8lUL- zAKg4q`OL858+?2pRNgbJs)wi7=a!%y*^Kb^3Z?lUG@s1CzyP1m0<|wzRZWNY??B@R zaa$4f8z}vSu3~`qXF%%}_r@XC2Z81@R;`^5&))(qk0p@T3xdbbk;WfD`Hz!b1m}Dr zsJ@j!+OGtv-x;{Wk?eQmXsEafAD;uMN1hLX+7HjKp!9h|gca^TQ2s?;uLGK|MsDAO z+skoN;p##5$AdZ`(DZ>B9*!J)!x7;DZlAA4w7)_78z*NE~8RQ}4Cu*3ZWN9|wK<5Qs0Bx**rY}(bkYGow z_WuKd63VU}%8nchLBDlo?`w1E@Z2`hl3AL~mcC^Fj47 za{co<>bPar`u*_z3841-(kTIO`#|XdxxNRDXH{jrg6C&Y{lLUXz5NED@-(3Uu|5w} z9w6_(0hJdF3wzMsa>Mn5#zPqy7~u1lp!CDd z%?&S42&Er%d2skS6wHB@KcMo770>t)OuujmWIhm7o6+NZ;h6hB_QTHSHdR%Hk0-(0 z19LwiKFEJ!5s3A6VE;34!pG|g=?Bfffc8_u>;t8LCmN_%v z`#(taFSXT!+Di-!2jJ%ogYtVqj44w1DKPL-u%8j;UeyWzKgR$6X%C8@m>BAxFI@H$ zw7&;i{>Q&w6Xrf*^FO+JP=;@Qz{M_tB zl=VpH;RiYo7kRxBspo}&+Q(U0i2NVeb65h|zo7Lx$m@4bM?IEUxNsqSzXh%Rk8b|@ zYSjH)=-~lszbFJ;fR_*8^s*ND{5Mcz;48fS2AZ!xO)rTY3=HA$`FyZ`r1R!L=0CW~ zjglTssgS>6=^5QWF#ev`|3BJ;&l6!_hzJNMV3VQl{vf_g?DKt~{x5QU0CNu^_YPKh zP1*mAA}D>vLW>K2ZRTKf%HSRR1IQr>X6Kbn`&{t^fb`!}oK6 z;$y;$Iq>~l=>7xEN6(lc1D`)bmmlhUPEE9pk74-%J-t%O?+QxQ)Y9T|f|(C$pKMu% zm=8h^KTv%nA+se6rXJM4M4k^N#0Rw}k=29DsD13yuA-;4>H5Yzd-Ztp!1tx`3qG4FtUn8A^03l z|Ns4Hgz-V+`^fX{=;;|MzaOR^l;2lralyy?S4S~0B;42rAFl?DS0T>_fzm%igF}Jk z&HA4=+GB5n?!yWX4GmqioGIZp=ty5s^Ok{uVbSslXnY1VK2r*^`u_~f6BsQg@PO`P znR*p59|m3TgESwl$N@U90^xoI1}0ARdkB7;;i^?D;QcFf|D*H4<;Va3@bCcjcaYBm z1GRq&<}8QX56bVz>rX)apI2E`@bU;$-f=P`=6^^{4})F(3&+P24hIf2_?>G1OU?BF z{~06&7#Rx~K;;Ya{Yry9JScS^C_N#!_d)(=HM;_@PeJ=(kmsK_O=%K99ndSv!rOG^5Z{f&os*fM$r5MC#xv@d_2&24RUyZ!V5H< zi|~&E1Lt&7!b5?9;Q(TM1{9t#TUW!wgTraLC31d;%!j^$x5q&37a4U{qW7axnqCH4 zKPGK1~#nfet@V`3b5|^`8I#9AE$UFerURgoK5%aii9!0ioLxk@MSs z1_l8p&si#<^%tP~Cp2FF|NsAIzRq$>&}=1o`LGvWUxM1xt5*FF{rL~PKU5xM9|J>t zsK8+mfAT?4csIm_hT1*;|NFp(+}ohtPGO;;p)!i7?je+4X)P~y#4HIpJk0O>@Bd?# zbz4P|fx$F1H1t0&sN*5P5AqL#E^>H)R;(e12Ll5rJnlXM`TsxozC4D8c+ib43=9mX z)Is_CKwM}j_n&&PLmP5$gLH$+V|4#Xuius|joe=0W?*1o5nurI=hiOW3SX~2(CLj< z_Or!9<^w_Ffgv%Z-#5&0eOvnMZOM;8u?EKQ`7#9t-T}N%iB{qD`U4`p9Y`pMVE?sT z_Qqyjc>RW+zDVV>rwAk?=a0NDZ)0lKd)=IaKM_6KtQ zCK4NlkzBRu5XAci_N*1KwfN|K8}YC3=4_&(CA|f6DT{CkZexh)zX}*MRDOOjfWIO#DsCTZ=~yZ`DlIzWpX4u!1*0LJ~R$*%dNH9B^>paqRzlYd-P$pXHlb{`+lt%J3M2kN+_+FflQc zy}yyx{zW$*T;IRSs`}5+(5zZfoE1LFjy&IuBr z`7`ACL(qO|P`W;hGNK#Sj*44xB?cus<= z_qYn0&jOwAufV{`stUi~W3c%bbl(VQ{thx9%%lpMZvw4{;T9NN^JTP7zoX_uk~N$} zOW%aTNB$_<{2{3Q$O>BT#K6GGYC7o03;#1PuqGf6Y?)1`Tq=(6PP_G zwt(tWjgbFF<>5I6 z!XPof4EOK@jTg#z&Vkp5zM%CQKl}fH=8smd-8$gq!P!fo^#5NTRNpr^1cb1C@xuvLDhuU|?2-uWte07eU4KU!d{XRjXdbf$DdL z20k@V`IZn98X8vHKiZ#%FB`#tDg9xLy6%R^po#r*mI z`9EzLx7!RE7`BFnhH`=X5BV9O_Bg}W(9r4~Aous1g2r1JR)vO!fG*kjKc5fGe-#?a zehhRfq}mM-|3P?YsOXXZpHFPay$#xb2W#MNVM!ZIQ#pOpJN*oG`$XrWu7CW` zz)-;CIS0NT6kK01Pq+h0|4d&)LrcKvpWh6WzCr0fVJ#>>Akx18X#Hco#tl&ZZU_$z z<@odee?U|2ZP0iGDE%|ulH?g}--1&CR#!2l-+gokwT-~Rva@}I-h z|7T#}QD|sZgYif6BRnJ^3<-OjP_Zs3E28Ph6_S&0Nyx))7?j337f%E@1FLY-9-;n)4&WrFKVFOH)=mDW}x&CD^Eb@kun-ifI6Om;Xi`|vrPcgX#XD;A_E+s z{~0i+a`b)ySj<4^5td)k(+8z|$v)Kci1~y^&%c8tEGRjezMugC zrAEU88W2!wG(4aI0i{O60~!!eYBW5c0Rg2(!vh)+P--+hpaB7;M#BRd5Kw9~JfHyq zrAEU88W2!wG(4aI0j1Ew<3EGvq$7p}P)P;`t}okkZ}k6hhY2`)Y|Fj9P1gaH&+CZF zN63TBv*ApDEo)`~@l{Hg5@6~@!$IcBj?T}+0t78SDDAHfHvQb&x8*vYm=B*ne592W~m@L?4dvp0;xPY+*DF5hszyxsc z;rWwk_O{$;w|(&S@r>QuY;V?o*bmdMR`~b+f28^IfWM&g|G&W3&sNs`|Np-!1wNh* z=1;)Q=LX#ebT%Ju-+w!>O{QRy0W^Qoz{N0QK79Q20)u~(8q$4d^bY?~`(QBxr70|r z7{#__BH!ov-vqRIMF46zDE<#H={PW}!UZU_Z>YuJT87GrAxP;RTrgHnh3AL=lAw?g z;0KW)Tz2mN|Ns3Z@cOcM(*OVek@6pyFOUGwpI|hV9i2C3jgU2Ej zuSM|mJ{n$#umZ8T_)+Jx?3^jfKYaP9`FkqEjmgOQb2R)xp^k({Sbaq6_!p5s_WtiV z#QMy&2R6pu-ax(k@o4S-QS*`V28cPDKR}^?z@y=T2n!GkEj;8^j)Cfbcn5aP#!b4n zH;v|hP*8y}T6m3?H{eh~5ToIP2n!Hvh=m6<|HH?F)@aES+<};*@dpY8IF{Ew_WmDI`+w$|jkcrhe|YdPjOHJtumCYf^A9K#5O|1(hqeK@ z{SUAIXU-dK|05!IbpPOJ`G=AkhFyIC&HwQJ|IB$CM*IKBQ9i`W_tE@|9GRo#IeL1~ zwLJFz&$)bf{%=^jMfdi`(epFlsb)0)!-E3M7!40_Fu;i+9v($CW_i}za^d5BrEUNJ z$p1mi2ZGkSsqpeA4j2ETmw$}vp!IsW$}s;4yxNv~+icG<7$03dwfRc3QSCnsUT@fB zOE3GW?VnNe;4ueb46*XzKLh7P7tV=@1%a&p!2seJ(E32XMJfeMLuP#-XD28>C&A0N z{|uf&{0st!^}IGKVO|5%JAT*yW&i&lyzCDouw(BwT~1U!uO}Mc0hO=Ih|1?>K;@&z z|7Wl?0H65{vW$U&LGfGthxz|M!`J_g<|k;tz^EaXpN3leNywtEZ&TgzH~-1DRHXdl zz^uU}#SM!NULjEZHFVYsFtMZh??1!(2~UvL!?M4t-*C(<2ku`HtZsbKy-=pyl zjdvI|%;JAEeqj*{rAOlz8W2!wG(4aI0i`GmkN*swGR*7&P{SA)I6s5#H~9kZpMdxO zHlXn*eL$6GLhza1wk6oyLiBI`Gk7|wGqAzU7rnGC_jdE&beI5Sd}MS#Ff2Sq%RhKX zKo}IJ@1Yi+;PFt;Pka#1gT_NVCp|%&Hp(FL!0gx`r2f8f`v%+FjEMXP-VfY_$gj+^ zx1~Ngjhr9-nG6`X;QRUiGq4sgXinGzvrp>Z|NrUzHt_w1m39C18Ii_sE9?IAqw_tH zH|NsA|^OIpIM*qNn`AJCoDS9XU*XKmakNj``pa18U2UpMi z33NZ!frBvp)OP=qgTnB$>iV3e)Roc)~*x!k{obm0xYkv^L9o4>62^LHgDf+1u@Z2hIIv{~0`|v2-Hl z^ZqmVZBp@IQir*BG(EsW0>Yp$J&cAYBpBi3Fb_|mb7gsd?!Es9^Doct{=bL+|G5t1 z4|IC?&%il>SyKQ$#r&Tkfl2iMGw9SGh!cl-{16I%W6-z?mzMz@dGA z4}Ja5nbGw>@Sq1X26_5q|8-*he{aP7bIjlBKg9c&-2%HEL=3R|C4T)_|KBI?JIE;@ zEb_Ykue?9vyedNZW2nmuuLk93l=VNK_!to9cl~$Q1O*EmuYGI(#~o?>ZpYqjylCrx zP}c8&)(4@l_whi}kG4JtWjzqa`k(Kk>wn;p0b&er{vnk9nJ0bAdvAtFUqws%|DONf z4xfLCj04p#^y_cm0oNb%SU^Ds!v7g|7BDcdz|WHt_|-0ZW5dW@U&6wPzW!%9%KD%G z3A&eoOUPt2-5{+<@ z%JC`j?N7V?GsONn)~VZgZ*QjF{J>cT&q+@_XCT%0OgtJ6%r><0&uDsqhb)9a<@7Qd zzK~#rlS4dwdG8&|e_oc4bpNqelS)Ms)yCi1W6kp3o8>=;g;&hm{@Pp9NB8f-!ecZ) z!9xPV7~=V9sKsY{k6GU1ZF!F&fzQBTVcTANqn&#BGp6iY-t%t=^WEZ>*WOtE7rvfr zsD;<4dtoUBLNl$|mTPcsKYTpNW92s48}@(gA+ih%iur(N!(-($A=cw!)h~pQ z2kS>#zYFG1K(h~BJvtxBJw&YkO<-W00N-y3&L|Ch@bdvwwLp^%i2Fsrd?v*GKUn!l z_mP0*8PL?D%L|~%qpNQ~vmc$09taMEy+d{I6MtdjGZl&HsOn|6Dj^_m8u-A4@{sPpJ6xXZ{*c zmWCz}aQgT-0V#bjFiea{g7>HTCjaMWKvLg3=|4a6dRz4Mw;*}s_3|KjG(JD*ian_H z3?TJre0?-N%KCeddNlXwJ0iJ{|1JLYzl>6-`z=MKhF1DVuYcHiQ0HHiGAX-11>O9? z#s{_kU(+!Eqx+ZX+llvo-SV|z>6P>0CfOV7|6Ydi(bbRg;UNQIAetJZd{79Ch6gAV z5SYa90Ox8lN!WP6FVd0Cd|4+;MA2Yp;=6_JKgX0mF{xH)6JR~5D(eQwT1B|3{c!28v*W1v> z|7qC%$BggM{11y-Fiqw7#SCw-EeK-NK15i6SR*Vvu+{%J=-B?Z3;&k?|6D)3|IgIE zz4kW$pW~pY0OJuBAEWsd9P0>TH2x7`0b)@(JizroX8)gV>vR4KGb=E#An*TWU{Yvc zvH*D%jH&G3(fkDtRRl2_zKE~@u|`;UfY$$D8ULeO{@=@R66L%q`8mUTzIC+x0cA2I zJi_wZV2gin{g2ZBpAK68OULnlq_hBHj;04tC?N1?cp$<8#2O6`P$(cUh2a6t|8!jc zGuX<%QTHH{5|~9{dKwK+a3~^(K^~r<`?Po@6X5P;`#b&b&Hg{|_0FU52@e_wW01$^ zXnaAU2~Lj27d$Ay47Bk0&%olqz%IZHmSbRG5I+6?t9<>R12Fz*dV+@pgn<@*qu~Py z7C1Q?KJcIbGX{BhaO$J(-%wN=+WR*~^CLLbA&5bq{zl^q5mjK;XncW#0ZxpD2Rtai zjM4A_2LqfK4G(xwfElCV0S*Q@F&ZB5pa3&Q!vh=)aAGt(;6VXqjD`m|7~sTcc))`K z%oq(1a4^7$(eQu=1(-1!9^hbr6Qkh)4+=12G(5n;04GMn10ED$#%Oqeg8@#Ah6g+- zz>LxG00#q{7!412P=Fbu;QXn4Sb z0?Zf<4{$KRiP7+Y2L+fh8Xn+afD@zP0S^i=V>CR#!2l;l!vh`^V8&>8fP(=}jD`n1 zD8P)-@Bjw`oEQxccu;^Dqu~J#1~@Sq9`K+5Ge*M$91L(`G(6xz0cMPb2RInu#AtZH zg8~dj!vh=)aAJgq2W;cm|NqPaq6`cSB@B!VAU5d2t{5mAbh#FjAOk~MYJ6f*QGR)` z5j^xrV=yx?fXroJWMC9vWMKvKhIsfhem6_`^6WkQ{A;!slmCkU{|Uc8ZFGMGS`r!J z@lEge6#8qH^7I7aem=gRO@B|+e~5>N>S%bvg96N;b9gZRK9T>=EgydWCeyqBpXb+q z9Nm8ljtm9{dgqtnW}kHN-~Rva5ce z1iOy`osXto2#t?!J|TH@^U?i-bl)Y!J!tj`pt%p}{!OrYbbbSxdUW@q+mE3hO+R}0 zA>HSR)&3@g`_a>XYL;0Z^7-zeQSG%i>3F^~x_d_X@RAqI0Ox>tbMd%iy_5-Qy7azS+_6 zhlLcBCJ_EZExc|qcuq?3oX`UG9mC=k|N22URKxhZ54PPs)L(lG#<#t+&F|SC#Qh3F zXXgJ6`TueBeg#+n4RHEUe|0baPg&k)m~;L!Ffi#fFvIine}%g)ce#OKmDKo|2HCk|7WOZQt^3&lztc|Fd9yP zTkxO3f!QX2X|(?j3lRe0P3!depP_Rii|4c>Fy|;dUH|uHyDa?vTNX~#`*Qy?F!*V> z3ERNb)7pKb=EFl8!WiK6f*v3L85k!d8qR``AM*&Jp5LbYvMm3-S)Mh-@eB;$^1&NX zKA@X7%7=v%l%{cf3yPuUZ^?H2_4x({$4Tm*li=n1XnaBA2}aR4z6M)(OKvI4IgB*E zfbKrYKGgOCpD=3qfUbU&4@*c;dW5B?(fEhPJB%8Qe^^LB=+W?igaeEm4G&mIKY(@PLE^j2sOQSV%zV(eQwT1B@IE4_HV*=+W?igaeEm4G&mIKxit5 z2lw`Exy~o%!{^s|{%+&FJ@fBrh-IVe6JIlUPEzp{5{8Axe+JJQuY;V?o*bkEj*{9+u1KWnc!1ZZc z?(L?(Ct&iV_Gg*iZOgsgmH;1LXP*di@7#mrnn$Yrqw3)y4Pj6@KNAXHMzL*~*4q-{ z^DqBR7#J9s1R!o<0F9p?VA645R)q`D*?olEPiy(L43!f@kj9_E1!Lt@_;~bxNl?fL z@PkMYE<5-C|Ns6H_A|-fa9+{{eY@#ear6 zrWFhgKS6eb@I?mCPbwLs^q7hYeXs~_dV5(bnW=ILWJzM=69qlQ_0 z%c~p%)&KAg?3#_6bZ>7O&Hu3I9!>x7kbp3TS^6L8@e9rW@b>?jjhlFHZ_*vD{~@V; zbbt0}eut$52tCZgLtgvX`+rF7|Cwtx+K#sWAyEw`hgp1&^!jep|KL;&C$tT~?SFXv zKXcw_`yU=SAjW9^2ZaIxkA?>#EI_Ow9v;yA5AXlaoVQ`L{||~+7#`yBJ6hktA`(iE z#wRo&Ae64Q?p=d(xC4G`ZL>YcV0=RQDV0~6 zjcWgC@Or~0TYA|~sryIu!($4<7-IP!J^ubPa87jLoQPO(#tK>;_8+_q4&=fA41SAL z3Ydn>`asT3P<~E=&u9E+@D$=_5J0TwwOI-B798*RUH_N;Kf=E|_HNVVMCJ2(qVXM2 z`MQj#d|n1rK8pN*21^6*ncq+sD1NK|F#rE&`1)V;_!;Fx0}4hB@%%Q};!{Evb$y%a zj=%X&wxuHF9|vX)CMj-M@be0R>aU@*UVw=m)qnpP)=zkXw7!o0UHyh*W;t;GO3E=L zAfG>l&Xogjj;4G8vn3}hti|*4-E(?H5wk!fPhkH;qjlrQ-+y604mAA!1)<; zzX{?zb!X7w*GT8BgZYyX=cR-BNawRNy=_adxrON8{AciVQfFX;n=g84Tkh@Vzv(am z$oPot=y)(JK+xi6w0wgF43r+`;R7BI_58#K^(_O4{{(T`D1*!cvtxgd`uoQ18*Fbg zBJv}6KQPjL2h6j#r9L^0oFDy}3>df^5azQMFlbKL1LI5m`~N?^-v*u^E9?I2BcHck zS@$31e0UHa`FwWn%m4lV9m|KGugv)F|NsB|s&MoEGcYv#MCy-RV91z+ydP;ay~APx zN)Pk&J{sT9c!pBH7(Pxw&JX_?7z(&N=fU?&3Y`4^|NrUyWTp=$-Um zANhU?{x|>6|8vWOtLOd%x*zMn=ze@y01oo}#Rfj_ArXH5ETjIm+}j%v=Nk`n{^11O zpR^6(J|Xd;HC{K+;WuhOEF(hcL7pG!9bd|?wq;tIA?`1czO_a6cKhF((9jz2{UiSw zJg2dABIfh{Gx%*%@nBLPEbgOse2v-%k9i1VG(SVa0Y;J-9zy5J^8Va={|}~}XLtYK z!~g$Whw%qGz5Qq4oWQIp0H0$1&yc{RdVm>p>JP+;B>H!t{X=d0nGHehA;kJ0{)eFT z0%xv30*ChJpP{e+IWxNc2Ojib#vo6h?7vQ||L>jm8thgE1_tJD^&jH>%i#A@Q9Heo zYM#WeAM5}7F?YcA$2=BT@cn1lS-`-+0zXeq;8(lsjSVAreF^4$ zQ_E4-|NLh-5T}bY{w*OZgtmTX0vf*wW&MwYYy%p<39tIm^*^wb3Z(~mekWA_{b$ge zAmBOW3Dh^B`>2>y9hl+w84}V@sr-KiPC;hD1f=<+fF^a{(eoQ&@j+?$j_QYpB!n@< z^DC|6Q{vm7cKc_D{dKHUxAETIOuhMmv!L^+J!c@*_e?w*4$ScLooVgAQS%|$08WnP z2Y66`86!MAc<&v{e_oc4bpNqelS)Ms)yCi1W6kp3o8>EGqdGPydEo|FsZ?sb{f5w!3%X|I}VZK}3^4c5A|H9XE z(c8bH_Cc~4oTMp{Rdi4sp7}9 z2Buz09_+s%yC15(XItKDGsOG=IR8_zeg@sIF5@}D1r}a%Z|B$E>i>Hf#vf|=k$WB} zzH@b8?gyubN<=35&w#Y}mVtr6`1q{9xA+n3YfUUchZ!LF;Ptjh>*2BTnGoygvFaB> z$b7Q2E_d$U_KM#{t>Kv zr29y~@(gI|(d7luV8X6siBqr(d!>}9@PEUN|}`1pMq}w zVB>?@|F3D7|Iz)+^zFp^zi#>3u=L9LaFgtf^?xtJ_~`0K`S6f|Fc3|RQ9dXHM#BRX z3J6SMc!2XiTL1qh75o3_`PVlHwR|nF{onlmTt2wk1bJfRx^29-x7QBY{uH`@NBN*w zMZzSe&(ZKh3Of*!%Hapf|Buo8|LwJO+#hg&|IYz_`1#%ptn390>;)j7LNJy6JDQ## z!3rlw!xtVDV8#dw4{ZH^TGs!V`ENA;gVP<17-8uTGd;ip0!ojD2Q(lc)PIJ`Nme(7 zsJ31YRR6!;hBp3B!}dRBe2?aTNX$aX(ew@t2q-ne!-E;LUmt0I{C`t+rv;!Z*rCCr z1U?^{{Pp|T>i-*bZ2#MZf6M=Wt{>k2XKLSGdz=5yaj5qOe19@#c?EYFgfYU?=V$-SYolhLb4g zRmsnx%s->)50)~ZG==GJG(4f<2%`o#JmuH^oGAZuB0T?78b9FrAEp049kl+Jj^qEZ zfQ8Zn9KMu>=cs;YJi@5a_=JT7gr+b&Xp;Zwxc+A}e?XD}oTM;4jD{yXBq5Ap9-h?B z|DgM{cq9`bVaLG0!1j0g-<$n^;Om`7(-%BwAdF$2zDDC463uXOki|Fk^FNCN1G@k- z%)i2?|9_RQ|8oGwA59PNkbp1-S$Y_aA4s&o$zdKp)Xx8$`l#cJifTi9|Hf#3fae4V zW0>cMkrv<7&i^AV{6_r?DHh=5X!!sS3NT}khsS9C2geeE807IaTHYX{3d|afFK{rx z2@=C&H2=dx4#FTY{6_O5B-r5OX!yZ{0?ZiX;W3*3!LfuO26=pqmN$r~0<%Wr3mgn^ zfyso$Nv9k77%4% zU?^c=WB{>27k0%!*`Uj{m;@OZ(o*9Si;D8gi;a;TKmwbYfdOPL10w^Y03!=4m`9=e z2YP&z@w-{dmuK(c=U=nEnEY4#|4;b+X#?%PQTx%-=MYP8LVwLto}NJ5&&T((>FF?TR*%kaKvR$IUUd60)T8M~4?m>)Jh9r}gm6E4en`zS%R@fjJv6Gl_9h+A zcSd*5C?A|{;RHDUBi+CC@*Vj6J)GxnDy;oEe?QXse`(pM_ep~I4xl0dY6FOmeE%be zk9^-`TK0c^gt2oD18Ll4jX|Nq{@>jU)s11Kj>+J!iJ=+Ydzl-{NQg--7?&;pcm@9p9F_r7Z6~$f+RwU!Fw? zaatDx!&?T=P3j(p;Oha=r{~PlEM9ES}Sjz?`G-bp79(?XvLu zZ&^4|@5}wqz~HChCTs&!Pbj^N%ELnn!WiKArgnV%XJDL=XgCW#e#|3?dVZVo%d-6U zW_i{S&oeN9%Li{n`9N*=jG6}vX(&w~y$On;=5NV%{Pp<;2FFS2o|E9^`)GJW!x=^q z2=Cz*UXokNate592W~m@L?4dvp0;xPY+*DF5hszyxsc;rWwk_O{$;w|(&S@r>Qu zY;V?o*bmdMR`~b+f28^IfWQC$|F8c7Uq4$}_y7O@rWE*iI+#BJH=n!X|NsAI^WpaW zw*%W`3MLsqo}*XUOLVMzL*~*4q-{>E*u(0|NsS{P;D7 z{|pD1bR3vf;T|61<^m@kk34{tCZNnYyh|NsBr6O(8y+I^$KL-vhghGv_Q1y2+Z%Y{_0?#2Q#ZUv z!*et|Q9@vV>wkHbW1#vU-ho}Sag*-tO{4iA9!CQlKcnRZJSHHF(fELb1B|3FJfQg> zJ|47Y<0jtQn{-F(e=3FVX#Rx-B$TEwy^e+_G#p_Rh2bf$eeC@|r1t;JH5+Y5+yAh@ zWf=0~y`%XBDK0@w3iHcw3r}qWaQh!#|IeH^+WrS66F44CFYurMGe*M$91L(`h=&I> z|HJ$LGv{p>?f=6gceMT=ZuQ-$e~=S51B0&RvG;$@<-_xT!`dynw>Q?p=d(w{3pKn( z!(%i&P(omc*Z)N|sQ0gxw*CJj{|7N22wLx^!pols_wx|Z#3FnvH7zY4Cc(CR=*hPsl&qWgzz@!uMCRJ_qq-xdw~-2)Tb$9v)K= z27&zhpMi6t3+F_{fT?Eew|-LZF@E+;CV*AtEJfXdfpMCJ1`pz=}V|1($`fY1DfxTMs9&HMT9KMJ4!r0gI2 z|Nr6Vc`KaVW_zRFV6^=RivR-ojZpm3TV6sIb$y%aj=%X&wxuHF9|vX)CMj;1_jrXs z^}*0tFTli(>c9UC>nA)xTJOvLu71NYvmCg8CFK|rknf*G=S#>65s+_4LDrA1{y&5M z1Q8_rnZNx1ex@N8Za<;;mtXsHqCC=hnS|7nD$iZEEg5CKI0J)%6_R`TmrLd#`;S!f zN7ch}5|kd~UveyO8n=!jK(iCUSSlKDDJ5eKEI9Dk$X3k_EoH5$IK zkO0&F89Zf}*#p3A5W)Eabic_rcza*|!rzPXKR?3H(;ZDupin}>qv;7LFh=LID9s<> z@lelCe6TeQh(pLeS__7M#TLE;Qhcz_Z=|L-j@30G-ABrKZ8G$ z0RtC&KmUIQ)&d62340LsF)%bVTvmti+}!&m!E{RpQ3lte|_ZpDfr*~KmX4y z53Zj36X<@d0|#OH36)o)?SFVkK^PRqFQM>8muCZ?_kfrmVbtH2dwT=od}DO=^yYJd z?oZl=aG#L)&>F9!cX$mo`)Hm24bbNQ7(Z;wz1{Q|-XY=O9ogwg`PH^eYcs_CCDOOH z$lh-MdlOO^4Sak1KZEBqmQKWc-hT$aO)4Ht@b=?SOYfuZg{Leq1C;;&|3sYMMCn13o{p!EW0u0R5Z_T@MF z`kym{Z2eDM8S44!{}~u=AfM0AS{q^c0wm%Xup z`1K{jE&eg@n_7;t{^vi#fjC{H^(_*zLTKxECZO?~P}cuQ$TpzyoA9cqbp6k8i=UzH zpZ^S+69hb`JVE5Y3MN$tX83)EwD#YB22Md{!33oFqktxL-_iS&VDUlg@EA<;cntUSHR?Zj zOhXuhti93RW0v=LTOR!WS_|9u+8gcE%bzi2-}0V+LzwRtx4ibo^1q||uOO*m$k+c& zYqsSYoZAl{Px4r~P4Jq5hu%Y4I%s1B3DLS$}WwBi7fNSb{DKM)1MwZ6^`nGkt-lKdkzN5b|L2kk;>l z`4iC0M^}%|M{*Al>wgm%7$?B@TY??hzz07cKvfGg*?_oT1k7hb-2a1>k8~diSe^k* zJ-WOAnmoGt1~mK8`AF{Jw)p@5ze=(+EPgwlfp!=FXNU2@{yXpoUOxP1260guI_r@#)X}HJ~gF zO(5X(@o@rD`e0y~7?A|;PxVdy&(DCQzIW1pe&qGG=<9Dm@{FkJ_0jnJpey#E)-!lW z@MZdT;{9K@d~H~I<$SnF_Qv|ZmtlN#^`m@v$Uqo~rp72A6au5+0SW~KCNVs~`5&$S zf0K&+fAsw88-!ZEme>Ao{(mkXTy26pv2xuu-rL)2hirce-M^!JP^=7lpS~~6zIKcns06+YEZw6NO0tR-(ebS@x4~ldoOy&3=4PT_N1u;ih z_+sn-)3W}@OmCz4AC&Cic!Z@t%=7>c2?%2}JRso!CI2&2PO`cwM78yLp!)yyHnj17 z8n*v2<9js!L!%Z#jiz@18y0Ai)AB zhj{pyhoH`{%3u0<9r-*p{SeCLCqe6fu#ErFE&uOjIEivzmHZsa{4<*V;VB=&7~<)F zG(I8G2qQt~sZjGgb#VQU(*K_hTK`MO@qd`lp!8^Zg$4wa8VwI>w^Y)dL1oasheI$^FMXNb2NR9h9^o04D#}HH2+M_ z1_p*-|2?N5-|x!we3R@ADxTLjT3*9K8cGkb^fDTM(0GGULp=U0lg;w1kY(@PLE^j2sOQSV%zV(eQwT z1B@IE4_HV*=+W?igaeEm4G&mIKY(@PLE^j2sOQSV%zV(eQwT z1B@IE4_HV*=+W?igaeEm4G&mIK5u$dVcK;|+qGB64-vao`A1MGiF$7dP8 zo27ht_8xxzHQS5Hf5rd*gx{Y=srjS&(bCrtPcNj#r_f)sl&2>U_w(`nZ2Ehm{=?|{ z5m>Sq;Pk-w`$Yafw|w~hn@sQif1Y3eadiLfAc-GR^V?ukFJ1h%|NlG0{mcIu7cyif5UR^w%pqjrht|KfTJ)p3bZ%?ald0on{+(i z8Qndjd~mjf6X5)hbpO`Nci{8)aGt-Zu=eNt{XZwl!wg8vM!ioG#CHG{2~Y(fKJxvK zAU^ValWE!i^^xy?1o4sYhs451xvvsr9-4l1d35vnIZ)lFkH+UmcR!l>80yj7i*mmu zHus^KhjJe$NIkm!Xy&8bj|mDNmxk=sQ5PUr#di;;_L7|3(2RObdjgMOlo|95MC$zwPw0On8e$WloFh1{t zZFdj#*WQBhZ7*%}d-ex$zk<-2`F}(He;mDE0Tw_5oF3F)-OK+|miHOvoc|0AOgatB z@cjIr;p9XY&lykP^5GyB2mJmYcKgxwzn~C-;{lFOO7k}%{Y={1lBJQ_6ONz$&;S1$ zk-z^lR5YphJVHu8j1w3QC%}W}KZ66aO#stq{~s121Dsy|GjvX5@tk%9<{X8m>;K+t zmxbSd%fg9zU+#Yf20slqVH=owLg{5x9v)H<#sJ4Rwd3PI1LK55!&&h0V;(`&^V^hP zmgT=U%d>`fo`C^eK6oR_2Wq=#)I3;7Lumr(O;8Lqe@nLGug^CyI8IXcoCGi5N5dN$ z&M=BVcn`PmlH5|3a~P>TfbKuZKGgOCpD=3qfUbU&4@*c;dW5B?(fEhPJB%8Qe^^LB z=+W?igaeEm4G&mIKY(@PLE^j2sOQSV%zV(eQwT1B@IE4_HV* z=+W?igaeEm4G&mIKxit52lw`Exy~o%!{^s|{%+&FJ@fBrh-IVqSG;EMoTTC@Bn%6W z{|ug!o~(!Q7#K_zY_q+&{4ZR<*aCE(ovsH=00-X@CeJi`TW+-5KKS~0#_nylH|sy_ zhslHNQ}L96Z9`z-`m`ffRC@UPXxJl?m=?RBh~&<_3)5} zFsPiL3574C*tSgTZHe&tm;a!>DopU>*BJgY9AMIMU{-}VZsg_vwG5RLLy*Rw!3AUG zRQP!Ge@Rft2=IeQ5H36S|NsB~68L(y-bw%e|DTWo4_`1}AOV$+Bro;$|NsAQ@)7gj zA`C1H3>+FDvqAX36k`Gd8&dpuFfcJNFu>Q(J6AD$`2T-C+ZeZ_x+aTD+DO}eA?KP0t}-oG-M-(e{MLJza>kk>x;{vT5Nf99HvwxjKTNK}K#VHV#b zy}lduKR8vx32g&#`yXEa&zv{f{)Yz+h%uV~L7{-aqv3%F3lM9FhX*wO!~6d;=WQ76 z|AXQchKG3kj@Eauh=kIk@d*tG2&HRz?ERl}`SASTuy%{??TxkY`Rvj30|_TMIhuap zK>=orh6gwp;KUFMkD?mX``1d_{{NBxgP0EluRr7EPaLZLBUFAds)N?QT?Eew|-LZF@E+;CV*AtEJfXdfpMCJ1`pz=}V|1($`fY1Dfxij9Ja^f)WR&&d3=9fZNbcodE}4VuKT^#f zRS(NaPs47R@t@~18o$tZg;7+FUs~t?(fET!9F(SV{Edb$G+bfSX!ycH z0!;sB@RVU@4*;`41m_RX{U+bw?S1(Re=o}a{0Ki!cQieLLJ0|vrYEGp7WGXm~)v0Y*|79={kq zPC(tC$56oKIS;;HQsCtO|Nl?tC&R4MKk#3E64HK(-bw%Uk?*JAfAjzRKes%%dhSo4 z`>_rXy&r$H{SOOiC{1Dfl3HJ|fzNwD%#SeYZ_B;C0dc-Dspe5zJtye?q-_ZI35gG_ z@j7aU$8a-`*7@H6ZT^q(1Ni(Ac!z|8cVwq0t<4bkmq_2*B73|2?@efFG~oM3 z{xf(^W9dZ9=ly5!+oa;b1aChMxBM{D`~%AW|9>LRZ=!U*4_!a{{2v4Qe6aWo(Ah+1 zVCnrogXbct(z zNMKSuzzjO|2jWCJx0ePwJkafDHU!mQi1k1G4?*h%&Rl^64(-QF(AWQ*8D#5!;>u9Z zSO3qza0B`L5iS?X&ObqqkD8#IGOg|NG>9 zhq+JWb^Tv?f5drJ1MNOq+b_Htl%G-7|9s+OK%C$8-(3?HG+=t|Tl+umNaJ@q_HN@v zTmOTyeh0KZ2z|Ye2bzAg^+71>fiTwpd?#)F53R#*)O>KVKoDs4CG(_jdGE~->8ogI z|KIcf+u`#wk#V5 zl=VOV84kqhBCT(ckQG8(zcT@i--NRMM?$s%jo*YucP#&T zSw7PJ$6ie;6-`tde`k+1%X@E@{~Q+IF>m{8Z%rTFzY7bGfsX%C`{6MGVT`cysJ+K5 z@A0-g`2DpOw(Yey+Nqa6W6HkeJ^zL<-z{!=?TzJsNB3VrQrm#fzfzk2nbvH}H8{5) zKAz;Ua+~Z8`@iu0c8ivS$Co@|-o?R(-!}r4hxZR5d|mkb5QNXmiE5rMntok$d6;qr zh<*(7IA97m*KW&|-Zl|FKgjfDoA1H;A8`MH)>EqZF|C2Amy!qjkLdkSl!iC8^|$wI z%X@8xm>&S=e=63`p!?NjJSVuo!b|S${MuXne-Fd>)b^}AsH1T^!} z)uZ!~+(X3r-vkE63Gn@vV23vF!OsU!)dEd6Anq3d^O+F$k6`5^-A4kJXFyYrE-!#4 zkFLG}&3<$~l6$x<{{R24k}M62-;QUX-NpaeVSKRv4*Y?a5C0hg`oAKL$1<@Gt@{Z& zdd>14n<46FYUh7VwE0>6oB#hD|GALp{o}OG&!n2q+I}nvc|WP*)1UckKv^1^K)~ta z;{>Gi!N4#vA_?A~>YMzZp8-jI@1+0y$m?y<*WZHV8Bx{iqw)DYQ03A2`sniL`qA8@ z?}%g`|6Ba)e;K7v_gjie4XyN#9{=n-sQa&#GKcs20Z{w@H4XDWdiXMZJMsRnTfR0l zyD)G*+$4Kr{ol(lKDzo*K0IU~3`A37ln)Al(eMC;0s@m59^m|s*8jgr#r{8f{`Cz) zEnmxP|2O|Xmk+KsL7rH-ZX56I?X^R;KZWk!Q9dYEkuZtrb2R*r!Vbiwa`=Jr|6}z2 ze|s$*_Xix{|8syJe!e#YD|-P0djZI&5KLwNj;1F_u)@jF@P!8jm@&e_16%)}mi0eo z{u|Bz;B*HgMp*j8Ob@VtfYPJk0SyQU^`D_~lGRNis;$=p)&H-zp^g93u>Fr2-=p~- z60=ZpG`&Lu0!oeW@L&e**GJkP|KF6|X#wa8c4+V@fzO8~fBinT`u_$U+y8dq-}3*T z>xcLMncBD4-sb;v9O}IxKR=FH-obqaVT|zfJsLicWB@18(u2$c)cyPD`DHJ zKe+zK?Elkkea?SjW(5Wo2Esr~FQefD2^Kgx#KXrt1a*E@ z{?gCu$mgl)hfp>@30nVyW&DqB`F}6NNtE-dPZ|HFI+rAN~%G$5eVXm~&a0!oeW@SsWlr{nsc(efOcj$zaY zPtT+20hSP;G=cO$?fehAPm4z~0ctq|1KZ!}e{c5xfvKo|t#XEeMZ!2~Bq z!wVi1U^$Mq|G&!D|2Y8WfCviRJDMLrfrx}h!xJemXn%g; za7%yG&i|bHsN;)@YD0Vf#&C=8QU9P87b879sGa{udU%fde>8ugguozgpN-~!l-L?w zA2i6*>uC8(-Sj$||EU|Eqv>-rJW)bmke8>U`5z^=M(h7Uo?b`GSIW{WD;M~@DfoFr z^2h#Ol>a+19&YMr{KJC+%oq(1a4^7$(eQu=1(-3!!UJ?ap2*1w0${f@Ffjc3?>Pne zepjaFn`CcL@w~p#@){P>P%9AM;Vc)&seLXU%9AM;Vc)&seLXUK8&V^(e!{E0;A~xIW$Jghtc#fnjVltU^G1-hsJ36Fq$4l z(*tq{jHU0vZIAcw#pOAr4UJSVAm&f;Dj#lR368hTab$+p~#pa1`JIDz zV9)@kpR2qEx!dlF{D-BdR}3I|l?0{(kn|K9H=2H6AqS;tTs|<{fZ{9B8fqJZ$fpzM z|Ns2|9~57zoQ%v2tpCAa)-}+&%K!h-`TrRXFzYbzC1`pnFoZ<}B#g!%EF_^cjpJ{y zh4+63&nY6D6PS2F^~2SvTVd(tP0}KP)vH#mg7MMQlc!gcKtclpgY2D6vbWp+-c(Tp z)hFR0gUx@#%{~7aJg3Q=6krDB_t2|TO=0o#I_j_lzW73qKTWSB0fz<#2IgCvWN$40 zdmhqW2#*Oa{32els*IRdid8vZkQep2yZQa>yK zD$hel%X13jZ=myos1zvuAlmnQH{JUFfZK}-3{#h0S$bGW--RtYt~gW8MS>ruY1RF8}}eU(<_$AtWZEy1fVF z9^Tud=?5AD1nQIj44$)OPEKHc45@#w!s3g=Ns%M;D!Vz1uj!@8@s$Ztzjp;KGhB9Irw$cfPL15kX1K4547l?Mh4Obwv+MrdegtceRaK2<;>~dF%9A}go49+E)ST)z`$VQ2a=bC>;Dh#&lfO3@_Q&e{ea5z zP+d-5M0_hStOXeYjqk1?4yV8WF~^Hw>e17Wrx%A)7E*cxnO}uuo~M^1M`)Zw!hePg zCYu9H4Jk1qk7j=8T2%L-yVn5C zKj*6x(fp^t5c>cBFIae>hZlNyqK7w!6G%V8eIWkS`5O`t<~ee(%4V~{_@MmCz`(Q} z#_tMhGhDT5)oK`@P|D4R~H(>nJQEi6*|Ns9B<6oZ3Bmf#|z{LmUhyVZU;q66`{R_g^!p#Ty7rB2q z^7sl2T%ix(@e9iD3{1RcxWW@Xyg8hnTmJw5zaFOkxn&~90fvNWF#d5%M-KVYVz~LB z_T&TZt8p-SQ2M#LKpUPOK=S`rA<_>hzL5D~^-M32)GIJBJ-809uUb7m$w!!?9>Gecm)v8syVSL|gS4}3S|94^h+-%SYGJ?PB+HuSO|3l&RjmT03 zhE=N&%XT$AsF`gI!+q?6%~`-}0V={R$$W^);w{#mUGFZ!Zn@ z_y)BXR;^m~3YI>fTY~z3G4SyvPUmq6#pz;6z|JTF&cU?g*9790^ZqV`tlfTUH|NmET^_gBE^`Y?b zKSJ(V6_g~9RrL!#UX`1Ty8fsuD3N2v2Soc7Gykh78VedD<$wHqQ2sNXs5}woUr_$r z{c{z({si&g{qKU;?;!PO{7$4H)Uzm_In#lZ|5+5z_?$uIA3^4;D4s#$gUvhAlY%hM zRdda|j%Nsds^+f!O7{_bS50GMrI`r+V+kc=C8Y8I)xV(r8*+Gn>i?kNpkSE(uAnA? zS#oxE2tKItKyL3laxB}kXAexCQ2b%0pXHX6r5|v5{6Vb!F!xCw`2Vr~|L6ap`~d0? za0?8t{(!m;$Ulhn7yq3Z0~nYX7(o4DQ&m=YeF+N>Sond;$N&HT!{_h8`CFd}o?k)p zHQb;i0MFkb4kA71BzFacUR8yU$AI|}3Gnfut{_zPT|t>%4Im-7dCM*TA@%Pe_@lW++@qN(vDlgLb zJ|ur#g|FxB3VLqI%Z$j+nDGtDtO)r`uOtD60vY)DnugP2iC>@rK4^Z{aAHyX8jq~L zNr1_82E08<$b67{4uGtLng<$x`t>X00WAJ=vlj`hTD58=j1L+wDk!)x1;$6u{{k(C zCH~(<^zSph4oj?>xe8uidZO_``G;X916&@|erLFgoZnnE8A_4!KZ_zm8gl+mJh5!t<9 z^N{?9?tcTc@OW<7BoGiBfK>k{a@g5P!ROn$f>BXX$^=j2B(0T#Y1I#9%+3e8Jp}(KtKSSpP zW=#P`P;7;UUY!c_FQ|S;UT*;kALRAdgyIWb9+dx8R8-*kpV0g*Xum*JRTWZt0!0pT zd=cVvIDz&L!2AO$&%Q4}=m+&j!HZa+@r|DULGuyF`M)b@kpOc3M=uXR^)qsQ0_R7h z{156culm0VzP|CfUg~(N38}Tyt{%POK_5q-_g@gUvQJe za_j)vD~omWVFVb>;&nu`0^Vd}erTs1+~Blv{VPXeeyfu@g4FHrm7 z-=F^s4NMOhxEw(Jfv}L62=IEaZ9`{%fHw)$-bbw0|8K(R0163E`v$qa4=SJc+v_9s z-$AO7;}bOgjTrCg3IeUqWPqpd^VJLtt3bsiH2hWt9hTU#WzHp7_!G+io?eS3K75!U z0#gs_zpq-g3cjBB*0m(id_H`>nQ;(j0K;>6NKmojdKyTlH(l7G(e*jv2 z*A=uFrT#~+AD>%3Q9#ZAsQC?Cejw$4PpeN zkn%sMeUF;|RWY25;=516Uxx^mFeZk@!%>VefAYQav;wy zVx|X>{S7e)^FZla3#tFvB*4Ic7_S8RCnf@sen9a7>JRY!+2nh>@$XHLZZIC?^8=vu zmol6a894_@ze-~-%z(E2|2o9giP8mPa3ydE^u z>$v4tB>OaC)ME+@UTI@A5H%Fz4w29od5sAQGwy=R8e?;9$Wlza&p4wYe3_3Cl8%O$)7B2i2P5e zK1Y`ajnAvu**%AaXI79SN5X@I_b~qFIfo^X*YBb0N9T(yJuFdQUk@+8b&{7Ec5-sU z^Z)CpOt1PHggm-`LFJRk9ME|Kpw$ll|AWT2m5dcEVeSFt7v%9VQ2!p4@2ZJBo(9fu zf0cg1^n=F#8A?0g?gQ1&9cdkT2zeDn)bTtP0(^A!s+t{X$m9L4nhf7MkmmnVH5u+I z&4<|s8V^8rFQ$Lc$2Y@}Th=8xtG&cp%p)O|OWE2>AL1 z^z_7aOT()$GqD(Ef2LO=2O}pVygY;XH|PXp{V*s$#Y6-YDAa?`uNgG^iC8vmORV0O z{1{qVGQ9ot1DwD??H5*FMEMN!56r)y`jVHI6=!=I)ZSuIv4M}D^CUNc#@FEOah+sG zj#aA=>v=)-`GJ6Ki7@j)b{JqOB+yKpr1L4^L3~;pF6nmk+&73mNpyZe_vZU#IIJ0|Ub73q z(jf*0hF9?Q*P#A@gc>hAeGtmugykJMCV&nEfx18YlnQ6F{$F_e!~0UJ)nJ2ih;dz`y`6 zPau3mdW7(~;OP;&F8OLwF*A|3K}nEU|0a(e*xNG#lV0(p6Lj>1`{q1 z+JD2ZZx65UG2`Q~1gQHC^ABh~Mi(i)V5$e1-vA%K0nH~cRBVNxCk5tjtwQP#fYfus z*LPu>mu84M-k&6}AH{z3^t9aa!G|C4_6mAa*6&?~3LGSf`l5(K& zJ*4@34#orqW(M$lz9`ao49vZ-@F&CvmFG;1yzurJW_W@E4^dxY%Cjg=*|KE|%s%w| zj?M>-2RJw&`tzXtjyfJh$UaaBd;p$5x`G@zDz>kL@6UVTxL5)?y%F+1sC-A>e+kl0kKA8K>eKfp6i_gN-qnMAUSEy)j5lo&pI#FO&MHYPhCushGfq@C`Kg{%r zZa;?;LxTf6{eadZ{XuFUqQ@VM|MTDfkDvxND7^#}Bsj1i*kF5mW9<#7=`=sT5jvj_ z8oPv835`Ecc|^(jU6B7l`y^rE3+mr7Fmb}epHO&$=HKT94;W-w^(AzQbc}-#Scs#6h90|`-vg^74Y^BDE%`q zaKZVY`f1gwRq*y8x_O}f$qc0SCAd6b;)L&KMOTl`2dhU~KMNWkS@kL$KK=@>k5`An z+n=EEcLoL~c>5aNJaj%Jzc;|!Q=t7(GuRm6;g7B!x_%noUWbHF1H8Qqt^eWS1CeKd zpU(%{zk|GAH!En7fK(Quy#oqQ1}0AU{y{?V3mOmPV^e|m-$D6(s;Vb^{qf8YPp^pV zrSSF#DF468%7X6)?FvfOWW>8(1>^(d`eK>kkAH~$8|dLfh!0vX1)6_`t`{(Xw7+S; zUf@3iCwRXeD1MOF?}Fk3c|8>&_Y;x_nWu$R-h;+_nRKth(*wACU|@oe_oBz|x?&Ee z_4^UwtCQ^Mb>PE4`1mWjdWd-p@bx_4`lR6jQu=h{P(eB$4pbi^um1;)&m4#dgS&5$ z0O-7#PS6*+7K9>DV( zsQg48&qP-b^3N3>LZ4lBPv`De-n#C#OGdFcEXj!6O+Bvjz$qsxQlvl$u^ z;Oi$r^+iNDVm}ik{f5HJBhdI?C};sUw7iC_hY3Z|&uNO#4=NuS7?|MW$pS5pCF1K5 z@edlGXW(4B9N|Au3P$v|K;iKLGyw>;4_sex#=zqX%x^%%A1HjpSW(xbBA55z^z`p!6Jibt}C7US^0oKipT0dLA)4AC&$pKm!iY^atW!4Gn{*cToR()#{aS z^Fiqkv|bDrexUeZV#XXlhRK8KcQv^vczZPqvYrCTJn(!pygv>aANw$48+<(@y8l7# z^;N50!OKU`ddT%FSHjgp+7F2KK${^0Lr8cieEuEeKU2_x9jJfN!vme4s(Dxf`Me#F z{?M3$12F%A(m$`NDBOH>_kzj?6&nk9{SJ!n{Ydc-N#dg z8|FWB|Df|h{tqZ9cmUZ?$V9dMgiIgJl3ttT!_TLJxd)Wqb@lahV0?7<40S#zf6tmV zYZfm5f&3p6as__AM4MqE2XgyIMG-VUgjl}><~MwYk2iz)4Ce6uF{r#iZqI_wi>b;& z^k+cr3szQD`1}KU_=3(mzBg93zYv8kn+E(<{|+` zW+s&K@4y2A_oYJdfSxZB6A=)=3_5?2g7w2nWk2@+|2zLb zC_YV15%mv;QBSRdF-{h7B8V=6}%nWa{edtbFf4?)k|MijRbV zm@pN$|MCf-BR!$rcN6FT{2EAnmyrMb3P}8r1T=p7e|aV(dFPP-^BIu%#xDQo^C0n+ zP5#g4LgN2tUs3D*XS93=9qoJR0EeiiingP2b3S8!3J3{yUNXcUxXGXg$u<(9qCd|3UYS zT~YzH|7TpPgzvX)GfV=lPeQ7X967jIEa340>c1kl?;-WqDtP}H)c%!F;fK#3Ei+VL zSoJEaD!&Aj-~Y>l?C;Ht4!3Kyuer4`_cmyKH7GsPd;S;QKG6D)7SBoW^DO^^#=w~c zm_X&@!B#|hpsK0Bz{tr9Z@;K0Dsl)sIDpi?2aP{4!{-~&^FOG3Y;c$WpKo7gsK|lb zUI5ka^TfV~>i+)!nVnze#+xJthPd$1P+^G;p!>bx>Hj|is{o_n1P)Mqn@&ZHCxgZZ zk>h8mq+eM13L0-oKw8fT@*k-ERn)#!_V!j@xc|}Pj}ZSq6Ketky8!sSGF4Mkc>5m| z-U1sC>t~?tV|e->?BNFrA5i_EylwxV8||^T7fUcO5R;!cU!KbUur2jA=>EW~p`oE= z|3IVe`App}c)t zp7pjwcz&2U4^+NF>NiGCR``6)U{Am3?gO=71uS$}zWxIF=f6CNUr-Pbz!baD_x2_V z@;`&505j(V0Z@LKdKEF>0@`1CfPsM#7N0L1LF<>*;QJrY-8ayDkoy=I4is?y{{OkY z{=<1tdnpD>{eYfc2=QMroSdkFl-|MZ;m+wQp!vP6p`oDk$-uxc;SV@}e}(bCset$m z;Sj!w-y{`K?FZ^_7@FZvzl7W~*yZ{Doz6GdmI!XYfXV|#P=3zNV+M`iafgP6a;k#T z?|lJK_%PImhBCeX|KEOL!fnv*z6x-7UU-Zg-jw>6^Y@AOf8FxlgUWy8^bKwgtXzt7 zK4GBKGiW}8p& z@z>m>pglxsdK=Xb9jJg&1H7O0Dud^QBS_`9;J5$(|NrU#1Ij-?kD9{MH>khMz^Dda z|3zrM1*PQ!$bRJY1fcxHkT4y-J_01K#>~I~>5ooY0^&0qNQn5)aDZ9O>yrwoeM(Gw zmell^+;A-a`L@j4AoD@xx62n$dENg9G(W|}X$l|z0j+mHo__(&H=(ZIWMI$*EqH~_ z|ANL78TQt}`-71D`xU+(2Q1Hk*zW@l4~8oE`fpJDG~7X6zpBW=+mH~$*!BPCasHUw zp!I&B`ju4wj;e=cR46^b`IXl3;oEsE|NFM&+o0K7Q2MT@1*dQD`Fw{sRpIOZKQhPw&F~$p!p;Q&wAj!1J@GSE?rR{M2(x&<#oq@bxL+@m+=oq5naBXoeO`ka-Oip`jvQ z>%Sb@lzSVbnil0BwZm`JJZQNBqXt>|@}I$QLJd;;0CeROgV=-$POTes zU3mQm&fg3S@by*D@iF-N2x$F?wEqhTG?mU5u7}ax^?(ApxOB!vhiyFmg0JU?BmaN5caW4lr^wJYXRKp-0055)LqO zG(2D-0ij330}>7}ax^?(ApxOB!vhiyFmg0JU?BmaN5caW4lr^wJYXRKp-0055)LqO zG(2D-0ij330}>7}ax^?(ApxOB!vhiyFmg0JU?BmaN5caW4lr^wJYXRKp-0055)LqO zG(2D-0ij330}>7}ax^?(ApxOB!vhiyFmg0JU?BmaN5caW4lr^wJYXRKp-0055)LqO zG(2D-0ij330}>7}ax^?(ApxOB!vhiyFmg0JU?BmaN5caW4lr^wJYXRKp-0055)LqO zG(2D-0ij330}>7}ax^?(ApxOB!vhiyFmg0JU?BmaN5caW4lr^wJYXRKp-0055)LqO zG(2D-0ij330}>7}ax^?(ApxOB!vhiyFmg0JU?BmaN5caW4lr^wJYXRKp-0055)LqO zG(2D-0ij330}>7}ax^?(ApxOB!vhiyFmg0JU?BmaN5caW4lr^wJYXRKp-0055)LqO zG(2D-0ij330}>7}ax^?(ApxOB!vhiyFmg0JU?BmaN5caW4lr^wJW#<14-e3FZJ+@8 z|DRbvl!1Yvgn^L(#Aak*V2FXTIT#oim;@OZ(o*9Si;D8giw!|K$iU2?3xgOy1fu{W z3oD2*)X$G({BD-=<=Oi`u+U(8G5N3f|DX0S{!sVdsQckD31QH=yb$_pmh$w(e(?!=kA@dKBp{5@ z^a=?F7)c;Jq>KOd|9_YN9H#s~0|SpjL$ex;KbpSaApv0!2v2H<7YnCZ-ea>oc>aI+ zuD$l=^xB&c$AIpygtH(FI=heB{v9?Hqygq z)c^332Ew3o`8OK=kYIK_cYjU5J6-6N6SZ0AS2$jOXK<-E6XYQZd za&NcofR}$D|Axan%fP@Ovp?eB|Nn^mzTL*jk9(5lqW}!4%dxfd$SiTBU z`sq3SpI;Y=4~l<=lXKzePvuqp_y1?|lcA7nG`yFk1Q@4IiYi0Ws+uKK~guPB?;8AAt7XGAK@v067JO z8CPzLy}|#79mED>I=gQ)eSkw9L5zk!A}m0x(eMC;0s>PQ9=1-~5|Qgu%fCO{|6I%e z46{J+^ETbvjkUL6{L%ag4+#i^!tfsrPe?Gr$<`55Za%+qy5QxD^U?4LBp(g1XvFj!3b z`?lCa^&jSgIUr&*eS$&(fk(pw5f&iU5DO2U1Aq7b|A9CU`agpMlUf1w+W(ezsN;`H zw|?g9AkDvlCn}NV^ZuKI0&&hO5DCH(vj6}8Z%Bd9uY>tb1o%Q|@&ai5321zw1i1N< z-~Rvqe|NqhRaY11L#uTRSyWsUJbKnc6=)Hbxu-DJjc3%o8ymwAk z1jikSK#M==d-wAHl;y$GyUf9jwzoIr!t(>Q-9yMcb{^F7f{=P@%d>Ez+RrT12wHDA zVBtY+{|&Tx{~1nB6zN1hAHx5ViWl|jn}PPo3^w-< zHuo@r`Y&wFDC-kdKudr@Wh)4ym9M0_pZVLi+}n!}!0+SWT?pzg%{>S*8jLA4pH%ly zTRr#Qd+-1JKs_Hy)nWAfA#mJ+2nyp@`S`Y6>22xOAfrI|+1DSRk=M(zJlvo=oX7Wm zgW5ZuMeqgFwy(D3-k$N7==IUevqAYS^$95KK$x+6Tkh@2f8pz;{lp~~S)bqzhrP@dDAAlt;5KUqIkDmT4I(|-+ z|2Yw!|Iy`#8~+1?;Y8&8sr$0O_a@SKBO(9ty>ZJ+MpDoHwEnxG{WvS>Mo zkC^}dZ^0U*z^XKQ{x&EvfG~yWcd(_0QTKo%6@mXVuub4TiRd3PKWzMapnf9G@$bPF ze&F_v=Pda6$bSY;872mX2AB{3GcYqS9QXzAzp8rv|NmbSF@LS91!^oI_#77hKijJy z&KDYJ|Goy7UqbL5_8|X0Sr79a18DutqlXN9=<9Xh3Lxu!cs*eP5WX(jdLTsk2a)GR zTkoTbb3GBrJ;>{S{xf(g*)i}X!0a37@Ef%s9up7-f%5!61N#J~lM`ehiWwMK-fxn< zF@NyvhXldixDL(ET2<9#Q)v zXtqKXe&7apy$||&ok@uD4J?nezDH6HwfqCiqpuf2QV)?wGH-PK4=m|HXaf0bu%}0* z1*qqpGv4|ChyCZ)0c#KNi-6kai1Tg)|K02V^JgY}eu?izqwY}7@06woCUf%HE! z2Wol6EIho%-zklsp{}3r`H#o{?&ZVxyG>y5d_>RvZhYsqrCTH2zsUH;{_ko2n$i9D zklJR@-@m#V+j6YZnM1iWr+LNWRm;;-W_=D6iE5rMnmjMMd5%cxxz`?>{|A}>dEp08j}7X52C2K?^GV_3?@Tq@a&Jq<+=R)~ zI{pZm-@dji@AJ02$1wLOShWAWxt{p-VT8;lBoCVZe2i58i%7Q9_5NjX@cFRG@bhy) z;}1tfFTnS^{b%U3goO=={;$o%gg88qfx*~fn=W$tF}B#oi<~|{^2q54#7C3IP>*Jw zE}D9j^bIl(Iemio$oT{09yI$=>@%_4hLYdV^)t_Q+lQRK|1&Z$F95As0|f>HXnc}! z0=MTp`1tF8h6X-cr1LmcwI-m>XK6JgAopifwI-nPo6z`71oWfJ3lLI|WV;6`*|Q$!|8Ya?pJMs>UziJNeFWc9$sA<=63P$smT&Jd%X^HJ|1E6kyZ#88|Ka5i zz4JeMcyl_V&d2^|V41K7X?|7W*8kb^#}MOVy^|PF(ns$kCNw^3`tP08fRcWCC!x;w z_D(`qkD9)FC!zCE(<2u12)G9|eWSbYKZD2wZqHfp{LTIJ|4(+A9Qb-l^za+yLkmV2 zHOR*c+k3XER41q%rXO&~l#`5$@w9hCoXwAa#YegfS8N9un-^Z)4nXGrV~`uYFS@&^`CP?|t~ z8*Jf)t^ZHo`X4<0fKvYt=K24@7JsAef#y3HHN^7YK*t}b{(rqK51#*^^*`O}UvT>$ zss8~Q|Gzn%e(jHe4*ya6VHp=nkLF)!KtL%PhX=O$pPudi{|qN5@E8_AJDHWLmI*u4R1&|z{p`99^m>Peg2=0wmC}|Iw}e&$X8g1Q-NVF3xHhgf)m^FPx38+iPWj_ZF% z(+@P=z^EaXen#UD7I9E|h{fN32F{5*l8ED+*#1ucd$a!!{QQm4_=UzRj2dF`I~sqm zh=bCj@dphE2=$+V#esocfEmJLU=Tk2|EqlcAH){d(eQ!=4TK&I4@fw`$kFhCg#?5i zV&TE5kGkJgQEkKM{cez$gpfllK1b_&NVLJp(fET01(-1!9^hbr6Qkh)4+=12G(5n; z04GMn10ED$#%Oqeg8@#Ah6g+-z>LxG00#q{7!412P=Fbu;QXn4Sb0?Zf<4{$KRiP7+Y2L+fh8Xn+afD@zP0S^i=V>CR# z!2l;l!vh`^V8&>8fP(=}jD`n1D8P)-@Bjw`oEQxccu;^Dqu~J#1~@Sq9`K+5Ge*M$ z91L(`G(6xz0cMPb2RInu#AtZHg96ML4G(ZIz=_fDfCmMbF&ZA=V1N^&;Q`4 zz`+0~M#BRh6kx_^cz}ZePK<^JJSf17(eMBV1DqHQ4|q_38KdC=4hA?e8Xl-%G(3h> zc)&J}{r}G_Aj-hNP{P2-0Ahm@M}VoM|V#XBD~P^UuqWk zepUGS?x9ibwKwT_zYDs1M){Cp0Y-xJKhpX4FW-UB-@|$Sro!5v^Y{OpC=b)0mi?cf z0aOG)1wecUG`e?(M(SyYaXp_g8X$p1*` zD>Mp!`*P^{ADjvh#1KmlEGx|N9(%2Wm*4F_*Z;lM{{h~zV` zf8{?I!1#Q}+GTHV=DiK$kH#N7Bp?hL#~;1J`#Xc@gcQ#?@cMv(6`UO4^~Zk(hbGm6 zCUuDC85sUEunRD1PJm6*GyG>@V772*QiaLW+x?^V!9yO*0G+=r;W;4%%wYhwWsU!PxlW1}rxo>cor)x$y>N>iBr1cSCEOCyaBKV$GXq~bpbseFgp1Eu~muohc5 zP8yxRg@(sSPme60pJm3nC7g!^2YPtyV(^@>#1oO8n6x+Y-bPAq=;}xL@Q{QsD9qo~ z4o@cbHqdy$X!#9^oe{r&jfveXXEZ;<5(B7zjKl^p2U-55c6l&r9w?HLFqPw*d;7Lr z=M(ec{cE1T+jwu!{CgU1BbDtNjZb*ULKvgr3ke4pIT{|Ykbuxs4i84LZJE}{<1Hqj z%_{;ByTIc!2bgpmm`BIYU?D=~@EmdA~< zw>Qd;_P?Of!7BuwpO%Jl85r3>eEQ8t{b%45Wn>G0S;>gN z#Qp^^A8G#rm_GrLAHjU2{P&;XKb2SY-~XSVzCMTE{vp*qmX2dd$m5I3&wl2wLHGYhME+yc{x3gi6Qcf?ko}Lc9|FWj z-VY%m`(Gb^|b0R!^|1&VK9B}vy=acH6QT3oyh=hk&ejIA?_n%?o zgd<4x0cig%gW?1USPU?(+!lL-fAqd}Sa=Mz_#JgGJmw&b(eeZm4loieJZzn|B_h|S zmVbY?|GAd`8KzwD^ETbvjkUL6{L%CU4+#hZEj&lV2NEoBax{G4K>=nA^6+5)YL<^9 zi06;t7N158o|95M5##6bUyrT-`ya91(D33`*@O0f4?`l4`t2#^`=I$sUPGAqp!q$O z_b?u4zRfe~5Ce|`OaweXw~ZHcq%T+q%I5@g7#J8Jd|eMzK8AWU^K>22)Wf(8Aot9% zGyos_3lfz6zAg4p{fGG=HW-hlXK*mUiP7+Y2L+fh#KME;0C+zi(tNuElUf1w+W(ez zsN;`Hw|?g9;F-_+Zw?B@Ij=w@2usNR|Np-s1wOwH<~I@G3!%vipz$Z5@r4rL=1YG2 z|NsAue0`AJARO@h|L6VxN6*Ivg#{Q>n7;2afYz_ffiIY%_xi2jR-Y5{PYNi!cTQFW z#~p}3i$Cdm_wxUg<-yat%t6%syoAiBwmdrzYI#9z^9h;9!ij1>vryyc{x?v%fnl`t zLnu7a<^MCBoG8+Xd_IK#B^58~)i>z&jdVWCkF;KyUq^AaUuzgVCnB#G80q0f$p1{B z{tH_(QhUjBk_u=EFqQHL^S5oew-+CP-^anb5Y%6qdk|(kA@>b-dG5XU-v9Z5dOnn@ z1LFLl!S4RS?mp$?+j6D1rCY<&%d@XPJ|nM}WqG(kcQ}vl{RXvnJd5B9rfpws%e_70 zFVW}KG0z6&x6~)F@MG-WmV0~hUv?P(KO0*BXbCWk&;Ig1D160XeAeflpZ@=cThBm< z&w{4D|J%?1|NkS-SNrb?UVIGN6$Z9~=TY zN^G0J1NIC90|VPj`@hHM7Z4pkgFXKZwEF}D%<`Up%Yuiu#g_m7|NlG*Ki^S4wf*mn zDTwoW2HL%(+TY9IIZ32*DtvzOKSQM|1Ji_ZSbF;PAJo4*gpfCOU}9ik*aDL`?qm4y z|NnfrJO=;Dga7~kpNH4)nV!hLaPJ*V{AwR^&lmUqz~a(AED3E%rxR zzsX`Wy!sypj-sAFE-KYtdt>x`Xjt;1`uQRj9V6@f_74n(6Or?$?#uq(n@Ho0==lwu z&-cbHFBwTa_tW|V2a)*b>PPvAqzh&d7#{%T|JP=D@cV~EHnsm%`H$G&*uQw&Toxq0 za`U#id`NuI{ESKjqJ71F1Jqs{KK&zVr>BvY|EV2*qvnBgHG&|JzX^qxjG7tB{w`Im zrWEA%ld1^=ioE?6fn;R){|pQh!jalX@*nHJ{eO_Z80J9cyBlP0+JD>+<8upu$_K>$ zFhcGd?DC=D{_Q0A0UILE&STX=!nH=eWL<0JnWJY|>|7#d*7_df$O1H*w|@cyf+ z=l}ozB@y%2s#>7N5`xcR@&B{E3gSHHf%flfaQP(!-(e5(@00Z~-+|ZvJbK8$hrV71 zt^l&$hu0G(0O9MRtp`Gse-L?IwDmr^IM)+_+=IOS=Rbp|k{ttI0?fXF4!=?R;V}VW z5a9o3V4uKra)Jy*F#`k3`%SVp<`16z@SybeVQFkckcS_R(6T4a3K>DAV1GT(j79L*X@07;RP}k4*{Kw;e_wwQU-6k-2KBDJ- zH@tL{iVa_SpPC$o$U>KY)5{ zQ13HH-36ad3Lk%Gs@ax%TQcS*OrF;9N67s4wPksqw;|>q6)f8S-ds=o`Y=M~6Osqb ze?CU4|3xI*Yj5DWf0>YZq{@qf&xcKhpSKAbe>fs~0lweuKSQS_Jgz|Jk83kAAr22@ zU@*4Wri+|@j4ihDBBu|KJaT#h@zLZl)T5cFi>4kWeS^$HPM;t?a{d6h2hDyI`%Emi zq2xDo{mir7_93V5|BMXG3qWhupn>wAfpG%2=RElM>wks@K3k;oI90VKpw4G$H6$SS zXH>N&pz)i~_)G-!qst2rQjcanhI%ypLTKuRP~_RO9_RmYL+qbo`T1X%3u%1>-%`mz zeLqZlk6GShr2KDTOW*ZJ(EN{B|3K&bk6vDII-}0V{%2sBum@>=RpQqF+49E_<72&( z7*Ntj?<6KPK5F{!oz#GmetIXN&iD3CLRXKPzI!L3^HI|y7V`+W2Q_`8yYD}P$OLZB zS@8VL{q+A&c9|UbdP?;08|6a_Mi@27#|ztgw&lG>s(-=xpN{SC14qsBUL%!1;QF7A z{g2V~3QMR^dXT5rkrrQ^9iaYJB7FY}wf*1GYnJyIY5n0qO=5bXG(C*!hlV?hqI38QiG$nw@bMM-H^1-yKZ!Vx@;`$Ev(AJ~@bMT* z;|rAkk;mUb`Ts_HE#2lP!2N%u{s%PwkM4gSp!7#+dK%Rai#RAvVfi7iatw6;C47C( z+D#jHZ*QR9`T}hIfBM${;PD5P`hPIb|Bt3`Xu5_`6sGUd@Pq{kQ2qaUTOK_BLF<3I)xY5OKT`h#H2!~+j`RPNhTo`uXu5?_Xz6z} zd|&|srAZ7QQ2s~0|9Z{F4ZOFJ?sud#e6iL4^lbnCXE-^5$FKkzI1CJItJ`aD@c%gu z7a%dbC=HKM{qT^7Fh;{45)Lqu&f$TX|2Oecz5Yj^|EJ^l-+xXP0|r(Br1f?TOb-}F z&p(7Ex6$$l9ug1+o%7#7hd(&~Bi%={X5%K_+ncD_{s*5wHel_4uDxt1=b4x;9^GFC zN$5~=gr)a^&ToUwesKOjhS;CCX5$83>gIp&`a7ijKOJ=bAl=6Q2U~cLx(8bBz^Kvk z2Nn_#n$F}S_#YkD|BmK2NV0;HbWUHR;SUda2xE|iKREv* z)&JC<|NGCtIgv*aahwy|-|2sE_WyyOzcHFVAjtww4zlzy8b9!ufiQ+y{6OHlBl>;E9OxDK=M9L+DVn1<4$@e2(IC^g8!1C;-f=l`i) z|8wf2?srvG+c0{+8#F0^sX>+=M$0d7tRRSC9zW>$pW5Spqv;8el)$WEo}NbI8yw3B zVvxr-DF36a|Do#m|7dzZBn2>Qkf(>y_yWfgf*9uU1(T72hUTdv)fdwaqZczGTg1-fkb1Dqccxh?lL6B?fZjo*OAM^}%|M^}$- z9y(tD-TW`8?qfjbqp24{M-fs=f9m9q)HRch4vvQVhUIaQ;U+|NiAW@cDZ<&)-*A`*Z&O zpA+R_`qQ%i^D}^o0H^?n?|{blK;v_w^7Ya5>ocOsqw)FC^kdkMCXa4DKL?umXncNj z_oKTHT|K({(D`WkG2DwTk8VGjdHRlM?nmSEqw_t{)T5b)5gzF7LF1!`XaE0y@8RVu zdj10Cf8_g}K>7d1==pBY+`_^ zGn)Uwp@<;R!gJ)MHzM*sQu+#w!r#6edEtjhN?;b9(-X@Iv%JS%>)_>g`_J`%Z}oqG zx9^!GLHB{?!uR|AmuGQOU@>|Cb}Oj)0+yG>*3=i53_#a+g@EvQHy}g-w_koVaA3UTX3Z}5C0h)np6v#)FF;%VEE6#F2JZc0X9v~@SlN!*}|bo6(&z__mA2K z4|y;HbpEyk(tclX{AD2GPjt(+@I+5WhaZ_QpnAxIC@hH)=jCW}q}$`VmMo1l zKKzWqYK0G8L47B_@(BZ?x-ZpwZHzZ~t2E=sPv)9{l zZzHW2fBptE_<>k2jm`(FM_NA)<|C~aXZgPPfc;Oz{2T9~ZFdj;{|s**%0Aqdd%O8> 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%0Aqd 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 literal 0 HcmV?d00001 diff --git a/gamefiles/models/frontend_x360.txd b/gamefiles/models/frontend_x360.txd new file mode 100644 index 0000000000000000000000000000000000000000..f09ce09056a1ad1c33b170ad794d31ea0ed4cb92 GIT binary patch literal 328360 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 a0~L&h$7pyUhrl3953sGG|Nk=!AhQ8~DO;TY literal 0 HcmV?d00001 diff --git a/gamefiles/models/frontend_xone.txd b/gamefiles/models/frontend_xone.txd new file mode 100644 index 0000000000000000000000000000000000000000..a9c297aedb6d161e41ce14c7394b4a269d5864da GIT binary patch literal 328360 zcmWe*U|^WT#LDphKeGTM0|NsK0|S`N%D})N%D})-!oUdTgXChMYz_tn1|~rUhP2f9 zK8&V^(e!{E0;A~xIW$Jghtc#fnjVltU^G1-hsJ36Fq$4l z(*tq{jHUlTH$n9r=vjXL&FKBmr;3G!hq64ti0gbzAaaJTk?CT>lyyDXexl% z>xvl|La*{N9{USP9|A25459H24F4HQnGzTn7$E5>uHip}=OdK^d<@|96B-(BYym1i zcyEKu0OKJR9z!iX{{iK9&lxh{ux4Oj*z@eUtC)jkPzxegP4~Ed39) z@}Ao6{jbQFz`&xw@V?rSL)282mDuz#Y0BxSRjXFLf~g1T=VoMNG&oxSNB;ls|JU~_ za)gJ)MX6|x)*qm31IHBRALbXJ_F6i;|6ceBQr{c2C@`3+@^ZrB13iC(>VJNIHa1-H znCewE9S$@wm>q2Y%k%&L|29KV`4ak)<a~hUQV3p2Qz)RYBn4=;DFGds>#U6%naji+seRD zmGx?sz~3#kHx7SM7swl2pjk~?}zB);O zg@r{07C-3mNr?YCYLUR&^~;tt{`>#Y{{R2~tAZ35!lJ6OelvJ}Qt@HRfTb^mPEdI- zdkDs-c6uH)4<52$hD-z~yb-S1T|uGBY#5FffFN z#Y8Z&f!sGbJ^+g!Lg|@12NYh3)-d(|r5FQ1?Dy4*9HOSIytv{^pyjXx14BauO#XfK zVF{Hz;qdZVpkR(*no5&Hm zYSpSMH~)VGjVplq51|zd4F4JYm`oTL7_RSCUlbILOli_te#gDteAlTY924#JPi9pz~+IPM_?@w_v#|t3-+Hby8pmxL4>3l zNPn*ihz-JuXF>dhPeE)DX8FA>QRmG6|KR?5XsBu6xf7t^{y%N2B1h=e)$sm0di-qL z>IjY>Sb7j>X%Yy1g&d!cC055H_~)w=IT%6_d{Fz5;p;DW`Z!%{9hlKLaP?Kk32gP@;G&pQP zd!ZRTCvZp_Ff0-P)%T%WVd43{x=DbO@z5O@|9o|lK*Jqgczl5JzbaDxgq6oI_4MXn zo|EbI3TZqER6c}1K%}o}TS4UmqWxk3o}YM?0CO*dzZ70Sf%-e4p{wBj9eR9Fe7=Ia zKQ|lXe_k7yf5GGLNcm5oMS&r7FCx6QZEX@*ixi&pj!$&^1X|h*LGuDI_k+?S@0|v? z|JD^JaxgIP-uTaOfLViqjUg8_-WVPd!?bx@?(Ge-qvK1^4F8|ObB2he0OM=O{M%Jn zc!K(8S7WD}!}#FvB_V$cwD2S|FfhRL)A?#pkBlJ>W*)eFXNZIM2SMcv!wW?F09+r0 zBieWGt5Y?9A*Ijv)vlWRk?Ieye$xtg{Db-*3=GWbF#FKcPwCpn6026N%7V!ov@{9K zP~(KRSKe1YmS8BD!UB^AyXPt*eHpYY5@7h0c^)R;SM12aaK=gq#s}NaMEv+Cy8CF& z2i2b!K&=Ysd=03*#lXy|26I2U{US?`TOx-SsJv%*a1GubTwk5YvEVDBym()|%A(dAk z`(v*JIQ(ZwU@~Fgb4UY^M}$NPh=S_Bk<&i_&DS3}IgtmN{TbG5`~hyyJ-1X~FlFsL z3=3aSc-c-&hSz_P{QCDFOdb;dSK;!Y{M~RJkzWN`7E6S4BjQ`2<+!CT$Wmx}Lys?N z^95R16eA8G><6WH2F__n7;p-2WeuI|75)K8^ z;qy@fEr}el_20hyXYgiHKftV$2_D}Xe&fqR;-K;kxqWXaz{twLaNH6!K4S`>e|c`1 z$l>7N0FVE`9-ZWsNaZJ~@dv7(85kHUVBs&&k|e;uupku1horA~r1(87!BBS<&Ik1u z7lb0m{~`e`6#iie22Rs>n0W>*>xx&cTD20!M|UqMy*MOHkbud*uU1j4MoLeh{2sah zIsdw9e*K5wgX$mT`V6Fh6;k~s(DGOUA3t<$lfbG_M1P|cjZa7(lz#D<4=V3a)81};AFR;fK)ZfP$-{|f`=Y#6A zFIVo|ae4w7Uw&@Mzz`Bq;K25K8}IGS!>4}$YTwJ8oB&^+2Ma&Ydb_nN5#u);PL3Q8 z91!hW^!Nb9C&LRw{DAUvLpUNnyMmeoD)u7MH>f=U>OR8k^Yn7nM6NF`&t(z-H9TPQ zr1C-i73BUssQhPSm#>GJ_r99LiGhK^3Bga~P~k(g@6po(wfWHU2;RT=zBfr=Rh5}3 z%sq48HwhrOkM4b6BoK&RrBxlf&!R&NO{Rb^n4km{sF~5C^;bPKPA@C56b`L^X=JT{C(e96u;fL0Pnw`+ed3Y zs6V3;5dg2>yMh)8EMJKz?}u7?!R6klqmcH%3r7Wpn23M^u~hJQ;gDHhEPWHaUI#vZ zci}3ef6w8hz@W;CSg(W2|FHBn)a6$NB?%z657t*7mSAKRC%V5tX@07G|3pEZogJQk z@BjaO?*Ib>JpYHTb=6$CWC^_e3TmG-I2?fYumAr~)#PMihS&G|zB4d595`?Q7C!_bZ{uR0OL=Z z@;VB+KZR~TseI6U`Knh{_h9CKo|DM&{V$?_NA36lwdWZa4g|pLTOH-du_{g%?*G$K ziX6z}8KCuGtG33$%fIKA;Q1tY`ABW|!OUZNz5mbU`VaBTEkWyvLShD6en)o?(~D>Q ze}0|+4;tT_Dr%|<3tyOj28z$&1fDd#j%mat-Fgy#=J_7jo^k0&%F+<=+i739dVgof?;7mh573=9qM_Rr}kM-DT7MtJ$R zdhh9|znrY_{^{$Z+{vL+#o+5lPal096(0~226Hb@vLnZ~86V*NAzG!Mz7LT804P62 z1QaANPX><<4x0V|)7Nc@(c3cN>+|1#fwcEQ?q%iWgtrf=9X^>}%Ps%^|Gys=AE%=@ zoIA|Nq1L>xA+f`g}BK z{ebQd#Q4?cInONcQEWnVS2YM@3ULpUsp}g`mRuT z{H_XW5};;#e^t<8(0Uno{SC^ms)-TTVezpl=&{5qtt5DT1&Z&6xKQ|fU#g}f2dHF% zsaMrZIAiY8UKe?a9&rs-Aq`k_@p&n-j4V~SzsQ5wI5^m8~R z34o@XVfKOAr=a!6FuurAM~+Y=|InLnf@c2koyaS{7Y?lP#bqAT zCrEz)RKJFY4Sat<{TXC@ALJfdw)a8#eW`CCQvJM0KR}hFIKI3 z1z$gS+){zz|Nl^Udl$-ww`W1IyK2>Xczg7)L=$L!5S|_~y$(w>vWmjX15o?Gcd0mh z{;4Zync@Hc|Ng+zJFfU6SN^%BB4`agd_E4!hr36^sm&0%zd&vK37H4&55wEXp!W5u zRjc6ZcL?bxB!3#x{(`rMK>2S~l^MMM4eFnVuSK+HK>Vv!2tL?7Ywy78>#m^360eZf z>vK3Y38;c5_@M2bt{~8U07QET&Zal6aWAJhr8!=RFlA~I8}Ii;&oJ$K=^7@ z`}ZQb2UI_(^ z0@bSj|5JN>ADo}|+uOtP3n>4GOcDPIvsb(dl0gUtJSCjmY_@K{2TW7VqF@b!9`UW+9bEN<+Cspm=Na0-i$ zjD+!F@kK5loL*mL{etNS_13qqTm>(`K=oDq|NkFg@}T^%cFP3#dKpUXC!~K>P$Eax zEjy(7_`?!wS0VN%fZF?UuU5gsZ&i>Y$EuaH+^ znE#h<`-@nAn36rMcEshaQe^YdZh1InNG z<<;TyThA?zTOzkF!R_-E};d{X_3t{zk$2?z*mfSI>x%A2IXz)pC7#$+i^a_ovQczr8< z-;txfuC5NI9^E`@^Fi}-%a<=-4zq956yNOspaFAedbm92byR&;J<@nvlfa%md$z#T zlj!~<9MRCE?t=olLztRqOxAX_~`0iM94KyOf1aBXK)~_)z z9DvW~f!c>G+=%u2gv>{mf8m(Ofjpn_CTfuY1EVT@JjN__S>S_Ti1Ek;ik zp6EmYh654XVetbR?^%m9-|*ZLw11od-oLs$2i*UIm$#W-EQ+gEt%CaxG(RtpfLO2U zySRyC)vC4d@hGJOucH|LBgPM$cAO4M2uF;MfyN&i66V0o1Fc_0Uhj_Xe_Z_kijec` zKd`?;w$KfuO~wtnA$F@b@Z0i6F$RT1YW;c_1=yh)V@^=Gw^+IOJ-z@Lhu z$1w9i+%hgM4xYY1{r^|5UcuMXt_o@rSh!MK z8)hGQs1noE6k0uy*;9IWYHh1wFT9RYi=?f$D$c z`7uKIKR4Uc3wb;TRR70>gv0FvmG=$_AK?3URs}6H>^=R7X5)S6{vYL2wqFA@pR?*! z7QFm^9i_m)$;<>FPdT0XI_m0FQTTe5)v4Uk4IC`+{m9*EucILA@geO&(EQ(r1jKnj znqH}(;RyKpEqccnXgw2Xe(*m-MUz?tlM1LcMveJFh0|tv*!%mA9MtUZlNw&2_V=YM z)bUvcCQdV0c>wAUFzX}6`#}AF1_o_-eg?G{7#Lo_`Jnus5QAv1fy!?N1_$_j0LVVI zUgZ5s$1PVN)pzLb_w+grnoolFUqJQMs#UAt`^zEni2dad{sW}(O|brEn14Y1z5oCJ z!^e}*?Hg=-Q2F@(|9)oMxILgDMBLG!Pn z6}s^FS`Aw75gG=cpC{!17mkYrK=}ja9?*C_6Eh>cy?8oRJDQcZ(-AJ8`Z~&v;Xm9y zQ278_j}MavjUPHVe3$^^gW9Xe?F&Ngp_M%7yb;iN0O-8K@G#291O78`PGB~izyw~; zi`3r-rAKPEUnmU^P53F1e(x+w%0)Wiy0XH!pGA=<8tK3f`-5_2B&V??X3C9^HNP=7Zc9YU+tJKbvOw z;Ge!X%zc?&iv+kDVvyXwNMJ!YqP*2`S|qS46u}3r_uxX}gWA^%xDo9?(EJ_Oss-@* zm)B7oPT^6x@cBkad5XKd1m$0~Td&~d4RZ|F0tz@m=Pz!MC3`&ZzbRt@ z16u$%|C^es!uv-9|1V!k;Pd6^=A-jL^Xpn#TjA^3Ank)cR9mkMtxw_YCD3|@ z$oMe$d<3X}9TX7)pN~8Y&aYYU`MTqljvVo(i2Vbg@j-m+GeGmX$n!BE{b5MsZ=m_E z|9`(B_0JXwsESU7uZIGaPfJCo(QSPewbL7==7I8mK|(@;<>U>Z@j$Zk|MHhV_W%Do z|3An)RaRE``U*b4`sKSAe>h5kqMKhXK${Lh704~CxK z(fJ_tUsfR0qnn4$2hGRjh6TX;AE5Tg?~flp!pbX3!@DbJx#fO)rD9H)tii^I$Z zt*=I1kLAc=&Wbqi1bsaPXnf}Xe|`A)8+d#G>AWB?A9P?Uw0+H!?5c@8{sCJ50h)e; z+23ZU!0`X?e|UQdG#-2hX+4%e3x`v9csP9gfzt38?D|3ZHNnBbVckp0^8Xv~>DK-K zLH8Sc{rVN&{~7H5r?&e*^}Umm7rg!t>|tO)o_|Eozx3vV`m0eM4rzE<>#qL_q7n3k3p9Ql@}il zAm-aa?RC`hfPvx9jSKMcI8gl`8y^C%|3T|X{`~nfWX4Y^jW1CB0jjUQ|JzV|dpr5< z|0z#?-v9r*A6);lvX0#LKj<{!ETr*8Q2U;dH+%&we}T?(T(t^uJ{f4fn1LY_-rohS z7h_;xWrwLJR6c;#cQY`Ae1WM)Hy@o3DxU%(MB)1zGrf*m{`-TN|DZHIq3Z|rufw7P zb7AfS&4=B&bqPMcieBIQW~XYdUcDMVKZc&aN#%QbJ+}-C2?>GO58Cf^|NedW{$^1A z7Z+U$@Bf4Liz1KDp!;XI@j>;!gF`~XjF%f@Z*M05eBuABtO*S4koA75rl#=wcZOSd zk?J2%`U>@=wQ3b&{gsB3 zt0waNYgSMq$EW=B>%H~efR$FwfrZb z^U6i1BI29FX*uXTc6j^__wXd-KTvvWMp|#s6~v;LmB9p`Ujm&k!_KM-Zy$s5H~6{} zX#e*1y~h&&|0Cv`LG}5UD`N2ZY0!9E=+-Kf@}>xBe4UW{Xe|#a56+q*#`{70Q}|UT zz}NqS`tSRZ&MN@5=NXvv;rSD!pMik^zJ3{0UNA5quNQc38Gz(p@cgaA1ru0#qv52; z!HBfJj@JGitmd=*`2TzU|F7(z@zH>Y7>f4;{Ab{tDC0Th2zaj#h=8V7(0;7dE7!vB zR~xM10ZShP?LN?W9P<1gXg$z>r1>RuKB#|-T)z#p`$@GQG+%)1U(onH?;XVXf*?Kv z!&>-B`nSmK2k3fKc=`a%XCtp?0qrMPwQ3byKGW-o0x}<6Jv4ri)Pv7o zBHDd8+z+omK;=a^(ta(F`oXZCZm`rJxYDaCXi($-Z+6gm_XzJbV3Lp9879efIi4zb6v^ z_VfSqS&;bWul(mnR)6F?s{D?pLRxcV774uZqM+ zx9|M(|NJUQ^3UJ==Vw6TgZzVR-m|a&`JW)kgX16Oc?JdsaCmJ?1c%pEPQ*dF--9L(`X%@p!Lbf`5Ba785kPk{@a1v z!C(N(&rF~G|F>Vra2vEr*6H_! zBd7*pNKiiy&hPA?{M1ko7Rq#`{==b`TyS|9HURmZQ1~;&nq_Yuf{koiRhhOhAUBxpY~0|R1xJjnmZe2{(yhF_tcw?X>< z^MLseLPPn_{{R2~Ji~2}dQg5Ay8M6kL8SQS^lu!^&xqX0Kqx+kyF4c!YX4Sn$LaiJ zr1THqxy$FgpFdND9;4Gj(b4?07JK_D2M-jLcCU_QfMc=`q3{)Cc#L4l4)&k*%> zq5nZ^!Wa~+z~xUxD7byOpm>rBD8IynhK4e|ljK3pPs1%f0vRkPs(4Oq{_Y;uQZ}+YUl=^SVu9qn3wU{Ad zKC*gr^G5mblnh~vre{bvz{t_?fQ1Bv9t{sjIKar!@PLH`gdPnKNI1aA(eQwU1cV+9 z4@fw`$kFhCg#?5i4G%~-z{t_?fQ1Bv9t{sjIKar!@PLH`gdPnKNI1aA(eQwU1cV+9 z4@fw`$kFhCg#?5i4G%~-z{t_?fQ1Bv9t{sjIKar!@PLH`gdPnKNI1aA(eQwU1cV+9 z4@fw`$kFhCg#?5i4G%~-z{t_?fQ1Bv9t{sjIKar!@PLH`gdPnKNI1aA(eQwU1cV+9 z4@fw`$kFhCg#?5i4G%~-z{t_?fQ1Bv9t{sjIKar!@PLH`gdPnKNI1aA(eQwU1cV+9 z4@fw`$kFhCg#?5i4G%~-z{t_?fQ1Bv9t{sjIKar!@PLH`gdPnKNI1aA(eQwU1cV+9 z4@fw`$kFhCg#?5i4G%~-z{t_?fQ1Bv9t{sjIKar!@PLH`gdPnKNI1aA(eQwU1cV+9 z4@fw`$kFhCg#?5i4G%~-z{t_?fQ1Bv9t{sjIKar!@PLH`gdPnKNI1aA(eOY8qv0{2 z;lT{G{r`Vv0Z|49h7txw1`wN(fq@|g%I08TU|jdzKd$fFa;3LrTEkq#c=W;)(1~|2KHH0Ju{W0gy#eEo#veQ+APg$UpG-no-s5e_ z@bi!VCxNUfPymr2EcAD}?2S#dJAZjJenFv(gsB|AgDrgder-#hjdZ^5e{f|i01p7h zH~qD@TFJlPYq0rusJSOJ?dL@KpA+Tb5i-ov<4}vA;pSe}S3jEVe>B^VrZ;E^3~+uM z&HvDNfKdY+AHyxbqx*+tH2=d=8iXF;^fsFRA<+OQ2RJ^^^UHAKkLG`PN`o*4IK73Y zj<)|H5dkF!I6j73enhk?e60ycj8kV@ z?(OE$@mNq;fH9rp2R*+Gbv~y7D7~e@(;LgXAI_&)u*a&zEAEy0|VOvmOKrZ zaiif24+#i^#PA&rKS;2_Nwo0$&%hkOz%FqRCeNh3kr(-XtkLj;g$$HN3qNXy57RD- zw9M8xjsMax^?( zApxOB!vhiyFmg0JU?BmaN5caW4lt6+;laIqTdwno`S9^Fp1<38Z_oUD8fM*SeFhH+ z2!qPuKN`M}V1<*T;R_E6FoVkB!6>#Z(;9ibtO;oI3SzzNe})50Iu6XLV7oyCmF*u* z@1Q_M!lU7f6c`K)qv-=RIA|RnA{OWJ{~XKz1GDuWgU2EjuSKK%XIOxY=1*8iK@;U2CD!6 zLIR(GVa>)(x})neV4*SE9vy1wdDOi~X&1yKP@Y2bKfL~5vvCve?M=F)>t#S;2f_rx zkJjl8be=|lU;@Y`VEmuKbCKEsCI>Kwfq~)K>utHWx9K{f@xjN4fW)Bk9w0Ud7kt~6 z>%8sWGY}hu|1)@gQeof)F~JyQpNePGS1<=e46y%c9lj&oe0fz+{f}t>uUNZP_V&in z_CF};gYYi~(E8OPeh?dk8DDP8bx!&RpD!u=wT<`Y^1oX^av%)NZ#eTGM4s0Zq!xq& z|8C1&eCB{7ih6#0=&E? z$nXFE|Gz^Xe7*F47LX|lb|4ajdH4VSZ!enzH}4_CgUjlklSapbK!F3o!>l~iHUQ;+ z#Q5LLc_X|1f0n^=;vS^*{-1%tfT43HJpHS_{Qv*|&-^u@qyWOKNB{r-&;J3wzKvl1 zL(8w=f<$ow;=C*d2DSzUK3kC4Ak56ME%Ej?#CbVP>>F~C`J~ogvU+6+l;|hbzESm{ zSVY2uto(rHe|Z0Y=DZD~{ePtBB9wlGEITO5kBn@n`J084viwcRy`%ETkvlrRgC+lu z_WzNS$RI1PNAoXog=(N z*Ab1+K!DGIDzD3lhcABDZQUOvd9QW$f93yw9zDMl8vdll_o#YUz(HvW%L~SDX8FzA zQnjI`G5q?^IZ4GEF&`wqZfot0{=vInh|A3^33ht6Tt^5H3iN7Cqe5lB>l$w3xhqvZ=YRuIH!{2;;t z#2O6`P$Qdbum96Wtp5x8@&EJw z{~u4l%;WO_l^=-t0WKF1pLX*D0#YFJ5%!I?7ho{~rP0zCdi}t0dh~u%Xh=aQwD214 z>4}54jimK}tXyd8|0Ekx^#5ltEMQ;_fP^Ij1B2OT{y*+W^99Zx+jP<9BXk+j% zX!5+s^A(o0W_nMN)crxIe+Ew{bp|%Ld;Wp;N7Oc1!UaZHe6#%6mOk4o={3y% z%%7M4J+S}JWf*^;(>uq3ZHcqDB|nC_hjZpO-rJi;$LC<-G0^ct$o~Hf>=T$y&W5)) zr2f`_JJF1oAE>NjK$~9>K%0*cLgS;WN0qnO6_fwiED7E|k+}W;e>;+W{}~wmBDaS) z`9}77Wtj(N`OlBNhp(Ui&(Og1fPo9%-y;;iw3h$R&^b|na{{~!|Igsjq@KYvdcGI5 z0Fa0Uw|85hT)Lk>C8G$oAHM!b!VJWxUHhKa>20K$AH4TmzQVTjYFPUD@65pPrGW{? zW#C=0f%o>dfs4=o42lAb?1=W`e})6hCI^_{_puMR_~HStM@ok0C(!uX5xE3-g#2eX z=?#w@1_p-I>pwr%Bei!;EVuC@x2KIQw(%mjmqC2w^+CoK+jJf9=*ME7E^>RDWt!VQ ziQpa{(lCM3EZBu;O%?P2mgPv%OLjOqx)x+4@=2VdXSfo zOq<>El#$QdWjMgB!ITAcJOcwKAE>=Yz4f!q$F}84n z9}X-qK=dF_Kco2_6iG;Uh{u=Oxp(=0%JSaBe5CYXv+V8mzc*ogQsbMQ2ULC_=BHUd zTb0C-V91o}W}MFu#DhhCx*e6#u;N z^#l;UE+?8iy!{E4ho2XQosT#V3?h%tN336f%EQOIpnNp<@S?d#7v?;e`{C!4G40)! zd*GNdd^}D1F8IFSc9;fceUN_#u0Ks_eqb^v%X@8>_Z#M)>3`d6Z>=Z)ep<#C+tQV{ z<-zNFtrPWs5BHN_o>1z)QT?!(h0+w37bdfRpa1^@vHz-k+5i9l|9?IVHJxG6^8f$; zHz4{iU_R1%12A6*vHoE33eaE$f)AE&K;sLb@tM&0=;jNc*^gu&*nD*TO=#v#Kj}3DVBJI~00_l(M0R!Iyn12{p?LRQv ze}IqAlj{Ee44o4gED_`TA}`xzZ*TR5&)<-09=+8wf$oFfhFEVRaUFD@_c8c+cn)d9 zdp`m5Y*2lc3Ll?g?B14pd-7j+dY{4IiL(C4Y6|N50D8w4t?m2Cz&QL z`Cs76HPHFp@bes5{%rBRy>;-mkNz=u7V#TSgqPp{4fPoq7$$Hb%0qB@4_+1r5;Hl@ z^5Oq~`AHx)2pjh?eE9!=K3qRK--LiXx_WdzrTWp$Bgnt};Q#;s=i%jD=BNK3_y7M~ z5ArJ*Q`ml>b$%T+9~?^vf^d9MHUA6mEX#XumS+uf0PDNywYT{HoQLrTd;G{KqOO1Y z&mcSD2-136^VH#ee>dM7w>;$e2(G8~2M!|5PYm|>8+9K%r$HEW&i_n~+mfY`(#wB_ z2BiaRi1|kDIm5gCJevL>$qr5uPJeKvV8*C=a4^6L+J^^K>won0|DVBff{5odc>DN2 zLjjXbgA#l{8529Gze&CMMs)i}`S6qkVbDH3LF|E%qxQi<0zwbI@Sth_N6&x%8Q2Aw zIVV8Ef`Nfy{*n!~x3||0nejn%|BUkCQ3+uTzVr=o7mOTrA1ovwG%INEpL*l}g!97z z{yzu!;p0mTtn390>;(|FfXLDK0fhnrkA?>#EI_Q$@BoDZ0#hCybglpG!oTJJKi3Z* zPiJc1UVEGW&vCeiDEANCC@^ExJa90;iP7+Y2L+fh8Xk1b|Nn)V6&P3q;OoEsGcYhI zG%#6!;{rsC#s?@A5O_2^5McpgjfMv(6cCv5@Stn{-^*}v0`hta`8mUGJq03eKrG7R z2V@EYkD7-F3lM8GJV2p0j(;CZnv|FPRU_<8v}FZTaET>oJ|JQPODM|eHHz6kybx0N>F0pNWCNfq}~a>=zI*#QZZ_e}N(m36I7fQeX`K`kd7C zFCvM$-d)6KbUY3v!Hnh~l;9vWeT}L|4ZhLv7!41U5Ew0AP=aGLf1n1(Xn2f<2TBNx zmKP|&F`7S6gJU#2M#BRo1V+mXl;9Z6AE?1G8XlwJff53v zC?POfUZ4cWX#PMAj?wTK4G)wM7%eYQf@3s)pa#cic#MVzN(hXW7bw9onmCQQ z!viG*M#~FSFd801Iy_((L;e5HEFj9jz)-@#$N*x44s?ovvO$;aF$pp-q@~6u78T`} z7aO5^nP?s}0|Urh21d{(H5OJdZ-}KI(0z$VPEHho`T0NpMpzJnh4_AM)4knTOZI)6 zqxB6q7!kw}OCQvZKd$fFa;3Lr!tY;UJbGaY=msNL0I|K;7JFkk`S&|g+r7ixJeh>D zyvN&;;pbcbPXfh6fdYsGVWGd%Wp8ZCh0723@EG+UDAtiMmCGx>U)z#rBj4{1u8iT^ zyBQeY^w-{M9ldV>9s^Vke?sXyH0|d^`JWTz2g-gz?i-bd#|(r)=k!7C@MnGXquKsP zvpvK!qx;{f9loTRH=6(9DG|aL;`xiz_@}pemeKqVNoO!}fYTeP`G4)EZMnCPA?_as zrytOj>B#;W<-_k27#ZR7k?8j0X#R&~6evB=`9BqZ`=3bybRQn#{`vn5k`ovuKY)ip zK|Wx0{BM7I^W1|VHW;)1=Lgd;Vw69u!h>1zfBx-lx$yfFCFTDAz5o9&JpVIGg3=4_ z`_)JDKP+QFX*%bBi38hmZ<{4NhuY2%+W32;{Li28`ifI$Tkh><#CYsG2G0pCo^#;w z{p-KyBo)t1a6aEL`#(44*WQ4c2d?knoYDT>a0`$B44e~qIw!KgqnH&mn*Sf3e*Q3c zY*O+21WzBF2B7qo22XD+?|wAf|N0D9FR^P|?(GIddK+%xHQ4+k{oosD{C_qq{vi2z z(h?Y-=~JWc?M=AHWB)TSCor%h?#p3$xDl`V!RG%__rPKrN|RXs90%72^Wgbg?dAX9 z_5Ua0yf5u5gXe@4r22yat-O%9J-_zGM%&T(CTMifI(;(hZ%dZmhM3>`&%nU8fF(}@ zW<4SM|1)ULILtZ8gjn^2%o~-5ha`kSVtyRx@MHaAv-UK{8=}{X{AXYeU|^Sk_ZOM8 zH}c*_N{<8WpOI!i(=Lm*C**R7Zof0Jo8^qg7bL5K$sv|sshz%=*xPbRNe_P+G$-kI zPKLK1sO_Fn^T4SRL5%S9Ihr02Nde3nO%LE;fD@zP0S^i=V>CR#!2l-)I6SzwZ_9N) zF&{o&#`AX@@9mj?PY)LNjh3(Qn1C<_IK7O<2P7KcaD(+TbLO<4?rmT>c-V^;Y*7JQk^VEgJ1V!yGQ3-rhLc{)eUiUksr2=tb~77K|^qI467%Uyi!KD_)De78;ZQ2mGbF!}!stO*Q)6X5o<{r>;|f4$%#m^>>NXfs>_ zyu2pJ@Bjb*ze65;z4U+ZN^1o>n0dVW|Npm_&4HWukm12)bZ3R!qdO%%m4rX|IA+lPYy@_|Nqbb0lvPCVE#kP zui%12aRTDJECvR)1_nM`nEA{csQ1+~v2P%0JrsKVCaYJLaC>w;BrJFbynTlrKlJ89 z^FO@*KXcxO(f&Uobr4J+LY5sA4;clsH%4>_?6z5R$-^8aZ6A2~{g zS$l6ZzamHO(95sXjz4{id+-08L$v=})@|m!y>WEEH9VD!=6`rlfElCV0S*Q@F~q~8 zxWX)NH&TDFy0QMx{2%%MVE!ws-j;iN>+mfPq!mEp=eg1_{|bnL`1Bk9WHATXhdBR6 z))&ObeZC2`%l}dHU@;G+hj@ObG(H@iED3qM`#%HA1my93={x`D|38)mpYO6*s>peJ z1LFLO$~vYLWc`(OO(^5%m32&L{3bN@LU{TA8AK;ABb{Huy!!u7_BjaqN7FMb_6AwF{AhT?0vbva z2=CGGf`$`}8VxU4NI>X879Ki>QOk#?3?50N>qQ_@1ttese2tbb;8;Nrqw#|X3lM8G zJV2oU$B^+2#P}e1Ji+q~@_53eJ@C~#450P1N~!@&IWPlu>;;dHz}M?S_`0B5ioi-h z=FPD*KsL`vje!rb;CD1Wz~KZZM#BRh6kx_^cz}ZePEa{K{xWb*R6$)2n84(TIGf5z{!bsV{x9gq|IhpXe>?#* zkIw^Cejw%txLiPd+RYCLNP)~p*f-i2-CGk7|wGqAzk^AEH?qPEErE-=F4o8`y0^x0-fuVMaY{=EF} zf&G6j!}tT8-Z>6zOPswe`7z8roHMua-rhVqJ_ierfsP+S_Wx&KpTKl-Hhlkq)ZhAV zCz=uS1C@0QX!8pKX!8+5Xnb__sPY!OV)7rGCBfS#61V^VZ%4B4KLf*Gs?V z=f`@a_O6NLHeTfRw6VoDUgY*Nh>yHJ$k<|=t^*$ZSj^K!Zf~m~ z@TOddGlyAw8a+Kq+?xOQhW(%O5YG<1_4w%fxBfGTO%OpEANtR5f%yQ_1o-%_Q~0)A zdake6`t~>fb6NfqSon&%{V%@RK77~nqL(+!hN$zCG7rz>CnK$IYaqT{s*1^pFv~-x92Q)`=0Z`|DWtKi2e8I{uyd~K`~H! zAJJctfAe=f@_Cb>^JX=@5%>KKHUANEFVkkXJZ0qbb{P&ZYcOTOvLgev`#;Rbw&hBj zC4Gij@SlNQ!J&c42F7Q<*f@G04lFQ0^f0Sm38lw@md8AA3bfyRNW|L?ZB@b-@C+KsZew;{}D+Pf|Hz%ga`c$)NG@O{DUF#j;? zgZw*i{b@?mFOxx8-fOeG-!T77|Jz=BYd!h*(=xu;mae=l4_@DEov8nNxS#y;gi`;F z>W9TFlqQhB35A!*?BD1A|3K`&DqjY=5Bc+9sOb!gmjD0%zX8#I0rQd88-V#ji1i1H zSAYg95PYzF0~%idjn9O}M>k&p&3+{Nz~-atZ$dL~0zyB}+W-ImpG53O&o}|{?|*if zfB!Qu@G=PehnFABKQ_!gh_qjWPd=Fs$VPLiYz-<2kJ|0S{`~EX@PGGP^ zjPHxQY?r;g)fYa0L#lc7R?h^w4}KeBy@|wi(0$&=;OF5vqz&)=1kAHR^;s%>e1@@m zTkh@2f8ptU27@Qc`Xj3;sOtmh9bc5%#}(?9^!HjmyneS_yFvE$M#OydPX^9u$n%T* z0YlrrSi*~{`Cs76HPHFp@bes5{%rBRy>;-mkNz=u7V#TSgqPp{4fPoq7$$Hb%0qB@ z4_+1r5;Hl@^5Oq~`AHx)2pjh?eE9!=K3qRK--LiXx_WdzrTWp$Bgnt};Q#;s=i%jD z=BNK3_y7M~5ArJ*Q`mmMlK#NP!U;N?5AFZM^Z%NSp#J~Ro&P5ze5soMg?Eh&rON||L{npa(cE4|Cay%Tt9p~ovD3$ z?QQ-)$7y9Bz0=dEeejrsFsPh#Qe5rD7%`p>|? zq|m@*0ZA-_zrG;kzfpO3OhOn#EdP&=|IxPnzn9_U1myJ;@^gmWdJ0IohmnIk{g3qW zN?rxLUIpGCU9)k+NV{)}uJ!*&Pj93ChZT%adVtGE^!z_s|I@bqA5H(zbPuBjIQ@_G z_`vM{kF527JTJE8KX!WuKQEu>#s0sC>p$#=CC`zbK1TfyPYDplFe|U1^*_@3-;s6S z{C@^U0Y=RU@C}{+nHU%x7`O}|kv%#dH=6(9DFMP5cKQDpXuk?l|9@oVe-TO4_3k1@ zqvLUqgbpQ#S$ZEW&!F)NrJ(gca{eD_$M#BRX3J5&J!vmcE zQP=-r*quVGObO z9*sXpw86>I_=5)ph#_?9Xa65F#Ce~f`)Ee*iwA`a6pyACXh1-z(eQu<1e6*L4`@I@ zsnPI&1_YEE4G(BQK&jF2fCdDV8VwIY33U>8IE|IaKS%D})-!obJ?VuKEJih;60m+dhLGBBj2#wQjP<(C&5qXr4lJZ1(4 zkhu(upiOEltYF>{OJAV-5|5mmC<62IfBucIAOs8X{oJN|yRnw+`!+}Cx4^-OAck1_ zpmzLmeFxodoe95xh4JWxDaiBNY%jLO-dIll{f^Xj?{GIyCZR0v@wR06`PToFKuNVg z0YrkZ(BJ8@H#Q;eBOmVJG3q~1tRrD6msfnhwk6L-zTX{O8N;`CGcdmCuf5eedfx&( z2B;kVgwl6t+RusdKPSo$l>LOU>4Vzg&-&^|v;B`|dx&Q+*S}KRzEShw zAq`=mrJvFK4+$1Hi55Pi=?5M%5C(jxkDGX0a(qSVn=;1D*d<@wfk(BtZA!A?~05&mcL0QSt+L7!>3K zR>%MLw>Qr{2x5aV>wkVQ4I@VR!zw(OCI9E&-j)mBk0vSi|L^_(f8qI`SrU|9aNn;! zn*U)L14`35|4SU$mV4VQ;W^ZHhS0{}8|8oggx6P`I@@w@HzUSl-!XVjXz`o_kMCdq zJtwJnZi4gqj@kdYF~9Z(%sg;?2j`6T?}l4={Ab{tz|%RA1s=t$pwayQ@bvSC!DEw( z-zRwb;4}cGw={TqV|n+Z+5XpOxO$0Q+j4I=Aky1#3$MZEAL$3*K;!?jVetpa&y$wG z_)MP~eQ$5VJs$g?fjNPJ9dTa{%fpR$)ekoRkGcmI(@>hk`sX;fK9~p3-)b-a|E~W( z5$AnrUl}|nq#)HF3~1$r#O?XDH#XYB=c7jB2O2Lhip2OK6n@P5+mfZXA?Ek~Gcd3% zV9C>fSw~3!e+JDNhdC#i5UZY$d86|1kc2R(9N)AKU)C=+Yfp2$A$q;Ye+K3N26hQ} zf00RhBkygb^hj&>j+zfiW-yXzm&Mx?aydk|-L#X!$srKTwmyXn2qo9^Biv>TV#MADJDR>>2^&fev-CY0ztDJvQE2fC&HtnKLE;FXflfc5^E3hk6JV}m_|M?E zNbLZV15DuAYtVXVT}L!NeEmFB-UB9I@NHYJ^R|1>VEq3Ko}W}0cwt@R)%xD2yL@Rn+@nR;=ABdwb((`yUdx3=F>*KUvA5FPWlI* zFDd-BjrZpAzguAHq4^DG{)5Q#dcxEP{@s?l_}YDV`78Kto9v`hxhl&o>#ZzhE&1rH6R_ z8*K5}&}x=vjZ_}w_3i&7{}-`7i0{+3+}oQ!YC=PwK}Z~wUg?)#NDVL0{FzGSbNG1t ze+Ew>VVL6?7#RK=tVH55Fj&-Xko5!&sY6AbJ+|>WqVX9B@HtTBbvg0y#qYYU`-3F! zwa)&p{Qu9R=a)jmpVassRSyd|C{1Dc$oS1Hzj<4#HqX#(Lr8eY(Ff>ER41q%rXJ;=gC z=P+vd@RY$LX>`2^B&xvVAd9cj@&z0#2x2sT5McpgjfMv(6yO*#zJVAY1dk_pzCj*O zn6wAJdWQkDepX2}fGG!Nz>dA(@e%lXT?k(nbW0If3CO%TmIlb?8L2VwAr}0O#s@f@ z;KXQnz=HzJ7!40_Fu(~ahsR$A&WS3h>j4v(JQ3%UO5Xhc|Noi%WSISu??CGTFTmFW zO342I|9=uZUOWJvbtXyd8|0Ekx))W3`Ff3qT z4S<9t0|SHEXZ}C#Nb?2G9@})$<|A|&(d0eQ_-OLH$nzDJwPt!xk<|ZZeuZ*>?|%kQ zCv^rkxO@JA_D9q%$&LI{nI zt{zq1VpmN5W3wc9`$XdQ|Nres_WfsI_>0^g;^ZT3y)x%t@O{n7u<+;P1GP5>@BA^L z_>p;FmjC?Nd-(eK{|pUG4;Z-M{XIhZX)XVsp>v`D=LC2e{-434Nj-yU^n5R90+fga zrN7)3D3@S-Q#-z76v6hx*B?okf%vp*-&5QDq?!jxk35_L@bt*^VUzFe##*A!cPG_8 zTB{Gf2C)euNaI8Q87?p%V446Q-*pP#mP^m|^;+Nl=6^2Be*z0%QMdoa zH`|BrdS3MMhS?Bxep2S)nfzp=^^H8o|4*(zh8U0QorJo+r+3mMl=d^GJi2<+^+LUq zP}l#U^Zzr5OyKsM1#jPTKKTEWT?VoL9^F4fjV~w$YVRZZEAnst&i{jSzc1*#Sxs-m zeShfwTf72vzgq%$m=u(T7cB=x-WOE9zy~;=suMv6&xCv zY+!u$i;biA;lKg|L=Ut26+Qn9Ha_NgQ=t9k`1YF~;Qw=gAAUZCs@DH{$L+Q7@d;I} z|NIP~A^{Ya3=9lRKmV`)U%>&t|4HD~|NrSI;}-(|k;gCSz292x+`IfgWqI$R&Sg+~ zuvzwY`(LvAKkPi9@(VFP&HCY5|DWHJ<6-8rcFvbYUe7w%(!;2GU@--y(aIxG|3zgd z;yz4)hue5>>;G|ws%B8t0>wWsd_4h#ugi%h4{v`$<>BXrVdo>x1B1w;^AYP8pz`qX zE+`+(J-l%Du&BLz|IZDveq3tpM%mjN5az3CgZ%?@K7*>(xBUO#_~GMg46N)04D1DP z`JtA6m<-DDUYq6phIwH6-}c&D>&d^Lmhr{5bmeV%@cLfsME&2x{p6P?LoGaqyL%Zo z{67ExcR#%T>)Qdk5Bc+9So&GC{Qv*|4T$~=n2)sH0L&LctUp-10yJ2G;DhBG(D(vq zd?qwLy7>ZV_9NK`HXmJo6PkGw(DWmj4|eZ?e0ckQsONtMRtCNYAOwp*R{Iak_8;Km zp`@ng{|ucI7%UOv`ywyfWp8iwg}0ALHILrvnLzi!Z$qp%k+=@(?;V4ucZam$y`O-2 zHmJT!g^$lLc5lnQJ^3#?EP3o;@I+aE}KOe3ioo_-w9$h^;pHltk z<`Lvye(?YQ|MT$jF7wm>kNf|Bu7~-TPoGJrrF{r$tYkr|>{uka^miOK) z&l>7I2G)1eYj5!no%s|QMb!0g{~2T_96?%dYo0p1@9*Y&0^sQ=H56dtNt|MfZW@c%O~6fiK(h1U=N85kPABBdwh zTMJR4eflKm2K$|IyRie+G5|X3h!Fz++&Tzhp!0ZKU~A zboHZrcu+wYLqEMi`~f2e*gv5B{}-wKKbrq38~-PqUs1ANp!5Kzr&0Gp z;{iqu^7sJd|34`Ce-rQR4WsoxEc&ROp6$ZF<^Mm|51&6}YTsUaoBz*oTG>Z!_m7$f zk0}Uakmqkg@deKRNd5mc8#j%#`zGky{ugFeU|>P4AN$Y1z@*T?WC2M`LvOzYq4YH> z506<0V~~{>==pzi{ExQn|Gf++Cm^qPmY*}U*N=?mZ%DR=lY=aO6N(>s74Ui$_dJA8GyX$hvR-KLeux zqviwwNMd1N_|L?^;K0CT0OQj;K1S_>hdhKantvhT03)d!9+>t2$jbjBlBnz5MT|zr z<6ub*Oj9|%jh1iVP(=^}9KO){A8Gt=#LfR9;sV4P;P@ELAD~D;!lUtl6d2T>A4aeL zN8tD$O~ZFIKcfckXm|{+@Brt3r1gKJ`G0W5&uD%bjSrL%pmKW%oc~eR|LNk}|2vu< zQDTGc=hKgd|7iH5gaC!*fxO+Z{6ELu!~6e-8N3#$cs0TItB$5Ol+Yf{?-ZuD(eyO1 z=}DczbJ7#f2`MmFxcoaYA9R8tjL*D_|IhjQzt>^>(fERg1cWh~{vqK2BS*sn77`G8 zh=qsHsh|CS%n;{&g6^Xky)PaTm0)s+#ph^w4URPgF&ck}umG_}!vhow2s|1dh_C>$ zM#BRX3J5$J9*D32u|~rK6bcAD8XkzS0I^2H0~87fJQ^N|umG_}!vhow2s|1dh_C>$ zM#BRX3J5$J9*D32u|~rK6bcAD8XkzS0I^2H0~87fJQ^OTU^F~N!vi@4NK6l~i=qDi zXBH4;U|=X=U}ONXK^OYPK-r+n_Lu}27}8SX6N`%S%Zp8rEhK@>%)kILmw^$qNsWaS z%p=jg13exLy5Hl-$%!H`U;pRd2n#~65Z}*jy0;r^$-ZxMp#3*$KR6l@!~myHuJ54x ztux{GuP`3HFa>#jo9)H6*c;2qzu$2*z7bIkW)X;QnS`>u$J>(O_uu_b0_iGH0FfXp z^mn@KjZKLA$VbB$6e>uVK=_V^7gAU;Ffj1_+Lk;U`F?kBWenfm&A|AkzxGz^$T{C) zu%(aCw4W2@e@>K#$J%K6h6e?hF&ZA=V1N@8h6n4bAIry4)IT3()O_T?rGNPTXW*Q`(>aj^?h01WX#RhA`uW4)u}Q`66Fhxz8i3MU8a%zR zy!+8?|LZecy~M61{NA;UNoQP`P}Ne(()6{y!UHI0FMDKTlc$<1>9~^u4_a z_jv4o2Id3?cEo)-EDty0RX-Y^u#kn)RE|%2hwpK4eJ~H6ztvv;|6TuoBF_8LzA|`D zNI|MU7|_ZKiQDsQZ)~)M&qvYQKO@aPX8mo+(%TU8d;b|2*cPzlX+Tpa!Tt3A88l}c z=A49BK{3SB^GJ(-YWtVv(0^VO_(%#5>8!0_f+kK!u!(Rr?N&20W;q8Z!7G9(N z1?L(BF~alDXnH^-1u$zgJ%ED&PK<^JJSf175f&cY+qdO9pO_CHFXQ>UjraD&}$EDl)b$b_xvon{!uKF!w{|ugs z)DAE?zyzMX2CawIbwuOC*Uv-cJz(+$-?rsCZ@c#l#{bXY`ALO=7sdsdKS{;2=__1d zfc-z3U*RzUVNf|fac z*EZgp%l~eHsfXq_ocRwT&+7?OANY4$?&53r;pMO3yKSOahf$^U0yO<)k50Jop* z_y7O@>je+Nl+F3`~Uy{?~n&yFa009(ptd|W*+bU|Nre}bKvGZWO#6S z^nL(X=nTK{AZ-Is{?CV}znSw!)_w5k^~+fX%ZYnDC&9-*|1&TcFm%p@^HpE||NsAI z{u)?{U_JW(|9}1u@bzs3^B-D%1s5cW6AAszeaOJbjMFHzKOREGoyhzQw)w zf6gJ=|1Ik_^WNS#y5AZc)*yn);XRt3L4k^dN5dB>Fz7$NP+Vb_w;QQHSlw9vXa0}; ze=tXtRd36^y>_eP?BkK#|<38VHwETd@6qFt< zKcE2tr6>%KhE}sYYoziZuW$b!`M-$uL42RK<=)=>Q4?w#gOE5Vz0xngkedEM^JglR z&*9_o{~0`mgkg>c9i?Wl5{bvaU{Sk4))O?O4i$Cw*v9LK#z#JX4J41w=Rj4j%ZZ0C ze%Ec?A0&CNb@qSd|9>7mzZ4q&q{jECdRV|gX$s2&#&2f%&D&D7p{6nX`p-E@#Tzj` zF28PT?T!AyyI+XQ%`6Fdy!$@`%LL@{ed#;@=l?&J1t0IQSgOc*djsP9ipn~s6lDFC zbxkPa=aqF#X#6HL^+I_0{~1IlFe9B`!o2$bPxd(o`$y9=EagFI3e)pwctXPwMiB^4 z)^ybT!~N@L|5LLJcz%(+R{tmde>1$lz!;;dHz}M?S_`0B5ioi-h=FPD*KsL`vje!rb z;CD1Wz~KZZM#BRh6kx_^cz}ZePEa{K{xWb*R6$)2n84(TIGf5z{!bsV{x9gq|IhpXe>?#*kIw^Cejw%txLiPd z+RYCLNP)~p*f-i2-CGk7|wGqAzk^AEH?qPEErE-=F4o8`y0^x0-fuVMaY{=EF}f&G6j!}tT8-Z>6z zOPswe`7z8roHMua-rhVqJ_ierfsP+S_Wx&KpTKl-Hhlkq)ZhAVCz=uS1C@0QX!8pK zX!8+5Xnb__sPY!OV)7rGCBfS#61V^VZ%4B4KLf*GULRy^u}#+jkA5uX=_0qcS*E$|Ltg*$pNWBa0RwnbF2tF`tUZmM9wlzg z|9iv!&v}Sv>A(J!()5VFf9pSk*aQ)z@uB|=7nlz)O@NQ@I)!h`rRVy3t#5zxKbPe{ zfrYQA+yCO5?ZbCHFM5138=}rn$~-)ipNzD=k>~jT$@Rw&<8i%{P}leLPMU<$e#VqX zSC6`0sCN?T`X6-ue+H2W+@7=G?R(A#|9`T}Aoky*`)8=}1;s$^eMEmn{>|U{$mdOh z&YRWrM%?#@?!Uz=K=->PfQLyzX?W3cP~?3<M*Nuh0fi)pi4o-*=zy9@`IHJGwMUIAlj_kWm=ZOfH5OZp5p9JIcb zfnC9&fyoBOXTR7udLIrfFhKM$t6$Oc&tT(Yo;L;BZ;o%j=>h&f2l(OVQ>beFuXo&D z3m>0Q)%wrR04fqdamm2I!1VL~`u`Oi@cW+xPW}I%jxv5B@E>{ng5LYB)y}=k|5KLt z9_m~Mr3ag3Z@2#?yZ^(^11i4|^V6&!uJ!-*MsgDpLbx(60hP#Uc~ z0`*^1b|UV>6nMCe_qP5Ycc^LxRV`5b^TO8?K=`_xX!7v(CsZDOUKn;h;yf^jJUSn- zegP^EAMb+l(cHrecMpr&yZ8Ux5bMXK)^3!&y#Zmqnl{)!Fy}L4(XnEbp~h-fx%(rvGiPy|teF`)L_pY)e<(mItrzwNBLkJ={-zc{0?( zbGW;gal`NP|9|(x>%YDop!<+NABLr$Ma%#H|KEVkYtsA;kKF#VbIA6$n09 zz5$IdfW~J+|Bc?}vK+XJBREdjLYP2xPVY zz-<2kJ|0SHdj8MQIf20vF}^SIvR(G}R$qAgh*b0Ft)2;VAN)4NdJ~E3p#I)5czSn8 z8{Yc~m}i6PyHxo23}g4U+}o4?vcr(Z6@^;rm4- z*KUx#y%FDhG-~^wQ2u9>0EK5SeEk)r?xlf#s^))zFV{f#cfikcWcjnj_x9F-n{OZ# zUjG<8i}(#E!pFP*8|pJKFihZrrFZoEyG@R>eE9!geiBUHxR2q(|Nryh`qB9&1mw}x zqw^`%k8U18{^bY%|NlP^FYhux{r|ZC|L1y`e+h->P?LxD|KaWVH5)L3%cePs^)*; zon?9N&GM|F-eX{WH@)^2|InFFkx@il|Ms6jcES;)^|t1z!~6bjzBg`p$nz0gPwNjH zL>kW;YWbUxd%^kt8sfaEwVO8Z-rj&a|AYGf%t+y(s`X!=0}uZ{1497=<6LxXW8~ z^G5mbln!B#nBGUj4-#xJ5^!A^DU4WT$0yOX#80Ih8 zP7aWciy={K%_-*Q>zS zJFMBbVWizRMc4YDP<)Ka!*ddZF~suIP>VnG{6AX%)3*K}YUyLty^vxEP7bs32)+Fe z8UG(S^U*vnw&g!|dk0_t%=2RZ-^2AE_7B(i9?j42n1wKgS$-xpexdb0()!<#b>IAd z21Wr!%?SdK#K6GtpNWCNfq}~a#wRsAN7cha4#F7W`D?JJ2h93^WaWPmN!0c3B1WU* zagdA)B}elwG$5eVFbfZ8{f{*Mw`rt}|3M=bN)5C49qjebsQaMl4o1;A{h`)Iq@P-64oE!~rcu;^DR1OcJQ$PFvm?6&l1l>n7dS5&^ zq#*>A!+SJ;LxL4fj)pHhD8P)-@Bjw`oEQxccu;^Dqu~J#1~@Sq9`K+5Ge*M$91L(` zG(6xz0cMPb2RInu#AtZHg96ML4G(ZIz=_fDfCmMbF&ZA=V1N^&;Q`4z`+0~ qM#BRh6kx_^cz}ZePK<^JDi{rq(eOYHfkBoYU>8IE|IaLd%mx5VFfXhC literal 0 HcmV?d00001 diff --git a/gamefiles/models/ps3btns.txd b/gamefiles/models/ps3btns.txd new file mode 100644 index 0000000000000000000000000000000000000000..290af8d77229e16ed6fb3ba05410251458ba98a6 GIT binary patch literal 126760 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 R?nBluDk{o=JpO>p1^_85lM4U< literal 0 HcmV?d00001 diff --git a/gamefiles/models/x360btns.txd b/gamefiles/models/x360btns.txd index 27837c2fd71f7f86ab653b5b42358598b3285178..8d8460af656449496660ff297adc49354da1675b 100644 GIT binary patch delta 3663 zcmZ2+kA1~Gb`voM1_qh;j12$(GYc>>Ffgz%Fo4-|3=9mS3=9k<0uVk(E(XfpXp$x% z#VmkJdh-^6GyxUd@*E5d3`~Ly3@JI&4@NQCY_3vN5KtpRd474`oBtTf38)gG zzBC1_yxK{g7}w+&f>r+tQXopT5m#c z+)@N}`BLIkLtVaA0dI_(93zk-uHlzAd5%|p@|N$LHa~lQiB%%@y@pe0=v2=C|2-$E zcurD@dG6`;wYi~T`UO754hfm(o?ej;85v=+GS5M(!wM!Byff8i7ht$`je+4WFC$!c z?fc4eP4BYS!qnS5H)uKVBPjuFng+;hMn+Az>e%<+_d5LY()@phfk}aZZ-LEoMUMKq zgoeot?=>`p=Q?uO{{8zGVU&gw2eax`7(e#C@Z2Paq$HTp8cvFg2#4A{&-7woaEO5z z&7@HKo`IpDuD*V9!v_zx%5xe{olmEq6J+d?uzAkm)L0oB`XB25OfL?nKmY&#-(2uf ziw#enoNmIwNJJ1Wnq2hGnADJ(F*)PC14#ieV{*oa1SEeg+g$Qd4X^XJNPwMR#D*`9 zUyu@IH#B0N6CDXRCu*+o_KAEB4m<^;^e?D%Pqd|)o>EMib$L?&pDhJ7?|MM(dN0Q7ej+b5zM^z z)f!GAp`oFZ4ZdENcw+OMfq`G&KJ@BYf_t@titw3yzJ%ow1CUVO-4EyJh& zWAx&Hl;EME(=UK^r!WTKEKjz7NMXcVl5gKqO(-C*l2(EjF?LMmP!X7(A;9QBdO#dN z_1*T46vj#Tit_CyJ&Y>sIE(S=9}*cc%W+&$H!YbFvmD1B5%u-cQW$ZU<3xn}9L95u zawn}prPJ?w3=CKc@dZDz72?@1Rc?ag6v2ZoBtTf38)gG zzBC1_yxK{g7}w+&f>r+tQXopT5m#c z+)@N}`BLIkLtVaA0dI_(93zk-uHlzAd5%|p@|N$Lwx>li3b9W9@uq6}rvyefiQ4y? zUZGc2ng0LxoTTD8Nd?RgNN|{bfse5RBKwt>5k)pMBw_l8L`DmZ+V>0$w!Dm-2-(>8 zyH>ASh2U#AIXE~#%+jcRui?bV$cSWC?EBTbR;~JfhJi_efk^>mT3tng!?a{Z4UOOT z7#MW-{{4$ED$|RBfm0O02OC`gb|%bdxI<#!gH$&}z>JQ0&cIMmQ(r$Vh0%j8ut&ow zAawdULB=i#kegUTLqlQ43bbfAg@lHNPXCa?*fIIX$GYv`QW;fP@#NC!CLD|;1?r;d zpAs3(ND8|d(_bVpI*=45Gp4^tW=ufx>$2%zQW#r^^U@XxbT4&G{`EEvZ))fQsenZU zF>zdltbv%AtD5}l1IP^;PL#%&Cd7NPjIve?3=9mQgm+b+pZWh8e6JXt}s)z(u z``*)wf#E+q!C~?>y<$Q_Lno;yZoe4ExSSD|Q$aCM0ZKX`Mjj|ZOq%@bZ5}9^Cr$qK zp$aK_mov68nuJbeRYf>a!zmP8At5;tg|F!q8Xgle-9VR7dHUsa#-&CeUyEKvc6V10 z0|Nt6#De^BAOU8@wyo1wxid;nKbpaKSR53f-2C>T|IdJebAk#eKtKHWw|#ylV>Khb zytKs<5;KSb3gp{i?`;z=h_{Dpf+SFcZr>8ch_~L_Zj#N|!UidRuvJw7O;oI^iWoac zDaJ^ts)`sbrgtPW2EfcGrquJ`fYeu^q0=vb^`|ff;H6p~l9 z83n*aB5^f)5o5<>4iy1Vfka9T1@=lZ;{jCPZSP27oP^i?COwQQ?2wdzqgnC-7P?4f z70!mn4VYqLqT&W6;Xa4)9HX4);I3~LFs|kpk`>2xleLT|c!s9ax9lAPDI<>2lLue1 iVseg=sJ?1x0jNi|{ntH41pz)L9%fMc0NfB^;sF53b%D76 From d6068c421d436c05a8aa562bb46b3242e5d0a78a Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 09:08:02 +0200 Subject: [PATCH 3/8] Add undef --- src/core/config.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/config.h b/src/core/config.h index 84e8e603..152ba336 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -479,6 +479,7 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually #undef RADIO_OFF_TEXT #undef MAP_ENHANCEMENTS +#undef GAMEPAD_MENU #undef MUCH_SHORTER_OUTRO_SCREEN #undef CUSTOM_FRONTEND_OPTIONS From 5f3e68ec45cd7cd30e94719a9ff9625bb7545e5a Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 09:16:04 +0200 Subject: [PATCH 4/8] Save vibration setting --- src/core/re3.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 3388b56a..779a7d13 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -409,6 +409,7 @@ bool LoadINISettings() ReadIniIfExists("Controller", "HorizantalMouseSens", &TheCamera.m_fMouseAccelHorzntl); ReadIniIfExists("Controller", "InvertMouseVertically", &MousePointerStateHelper.bInvertVertically); ReadIniIfExists("Controller", "DisableMouseSteering", &CVehicle::m_bDisableMouseSteering); + ReadIniIfExists("Controller", "Vibration", &FrontEndMenuManager.m_PrefsUseVibration); ReadIniIfExists("Audio", "SfxVolume", &FrontEndMenuManager.m_PrefsSfxVolume); ReadIniIfExists("Audio", "MusicVolume", &FrontEndMenuManager.m_PrefsMusicVolume); ReadIniIfExists("Audio", "MP3BoostVolume", &FrontEndMenuManager.m_PrefsMP3BoostVolume); @@ -501,6 +502,7 @@ void SaveINISettings() StoreIni("Controller", "HorizantalMouseSens", TheCamera.m_fMouseAccelHorzntl); StoreIni("Controller", "InvertMouseVertically", MousePointerStateHelper.bInvertVertically); StoreIni("Controller", "DisableMouseSteering", CVehicle::m_bDisableMouseSteering); + StoreIni("Controller", "Vibration", FrontEndMenuManager.m_PrefsUseVibration); StoreIni("Audio", "SfxVolume", FrontEndMenuManager.m_PrefsSfxVolume); StoreIni("Audio", "MusicVolume", FrontEndMenuManager.m_PrefsMusicVolume); StoreIni("Audio", "MP3BoostVolume", FrontEndMenuManager.m_PrefsMP3BoostVolume); From 3c7a7bc8a7ca5a9bfff709fc53d3036597cc2248 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 13:29:02 +0200 Subject: [PATCH 5/8] Fixes --- src/core/Frontend.cpp | 13 +++++-------- src/core/Frontend.h | 4 ++-- src/core/MenuScreens.cpp | 7 ------- src/core/MenuScreensCustom.cpp | 9 +-------- 4 files changed, 8 insertions(+), 25 deletions(-) diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 141f46f8..31580e0e 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -125,7 +125,7 @@ bool CMenuManager::m_PrefsMarketing = false; bool CMenuManager::m_PrefsDisableTutorials = false; #endif // !MASTER -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU uint32 TimeToStopPadShaking; #endif @@ -1089,7 +1089,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen) } switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) { -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU case MENUACTION_CTRLVIBRATION: if (m_PrefsUseVibration) rightText = TheText.Get("FEM_ON"); @@ -2300,9 +2300,6 @@ CMenuManager::DrawBackground(bool transitionCall) break; case MENUPAGE_SKIN_SELECT: case MENUPAGE_KEYBOARD_CONTROLS: -#ifdef GAMEPAD_MENU - case MENUPAGE_CONTROLLER_SETTINGS: -#endif menuBg.topLeft_x = 14.0f; menuBg.topLeft_y = 39.0f; menuBg.topRight_x = 636.0f; @@ -4926,7 +4923,7 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u if (changeAmount != 0) { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU case MENUACTION_CTRLCONFIG: CPad::GetPad(0)->Mode += changeAmount; if (CPad::GetPad(0)->Mode > 3) @@ -5077,7 +5074,7 @@ void CMenuManager::ProcessOnOffMenuOptions() { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU case MENUACTION_CTRLVIBRATION: m_PrefsUseVibration = !m_PrefsUseVibration; if (m_PrefsUseVibration) { @@ -5551,7 +5548,7 @@ CMenuManager::SwitchMenuOnAndOff() m_bStartUpFrontEndRequested = false; m_bShutDownFrontEndRequested = false; -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU // Reset pad shaking. if (TimeToStopPadShaking && TimeToStopPadShaking < CTimer::GetTimeInMillisecondsPauseMode()) { CPad::StopPadsShaking(); diff --git a/src/core/Frontend.h b/src/core/Frontend.h index fc09f2dc..112ea7ad 100644 --- a/src/core/Frontend.h +++ b/src/core/Frontend.h @@ -199,7 +199,7 @@ enum eMenuScreen MENUPAGE_MOUSE_CONTROLS = 31, MENUPAGE_PAUSE_MENU = 32, MENUPAGE_NONE = 33, // Then chooses main menu or pause menu -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU MENUPAGE_CONTROLLER_SETTINGS, #endif #ifdef LEGACY_MENU_OPTIONS @@ -284,7 +284,7 @@ enum eMenuAction MENUACTION_DRAWDIST, MENUACTION_MOUSESENS, MENUACTION_MP3VOLUMEBOOST, -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU MENUACTION_CTRLVIBRATION, MENUACTION_CTRLCONFIG, #endif diff --git a/src/core/MenuScreens.cpp b/src/core/MenuScreens.cpp index 72e19c49..20484389 100644 --- a/src/core/MenuScreens.cpp +++ b/src/core/MenuScreens.cpp @@ -277,13 +277,6 @@ CMenuScreen aScreens[] = { { "", 0, 0, }, #ifdef LEGACY_MENU_OPTIONS - // MENUPAGE_CONTROLLER_SETTINGS - { "FET_CON", MENUPAGE_OPTIONS, 0, - MENUACTION_CTRLCONFIG, "FEC_CCF", SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS, 0, 0, 0, - MENUACTION_CTRLVIBRATION, "FEC_VIB", SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS, 0, 0, 0, - MENUACTION_GOBACK, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, - }, - // MENUPAGE_DEBUG_MENU { "FED_DBG", MENUPAGE_NONE, 0, MENUACTION_RELOADIDE, "FED_RID", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index 69af9acf..c4a415c2 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -629,7 +629,7 @@ CMenuScreenCustom aScreens[] = { #ifdef GAMEPAD_MENU MENUACTION_CHANGEMENU, "FET_AGS", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, MENUALIGN_CENTER, #endif -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU MENUACTION_CHANGEMENU, "FEC_JOD", {nil, SAVESLOT_NONE, MENUPAGE_DETECT_JOYSTICK}, 0, 0, MENUALIGN_CENTER, #endif MENUACTION_CHANGEMENU, "FEC_MOU", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_CENTER, @@ -703,13 +703,6 @@ CMenuScreenCustom aScreens[] = { SELECT_CONTROLLER_TYPE MENUACTION_GOBACK, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, 0, 0, MENUALIGN_LEFT, }, -#elif defined(LEGACY_MENU_OPTIONS) - // MENUPAGE_CONTROLLER_SETTINGS = 4 - { "FET_CON", MENUPAGE_OPTIONS, nil, nil, - MENUACTION_CTRLCONFIG, "FEC_CCF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, - MENUACTION_CTRLVIBRATION, "FEC_VIB", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, - MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0, - }, #endif #ifdef LEGACY_MENU_OPTIONS // MENUPAGE_DEBUG_MENU = 18 From 7c485560c555723aac12027723ae046b4da44561 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 04:28:21 +0200 Subject: [PATCH 6/8] Translated string fix --- gamefiles/TEXT/spanish.gxt | Bin 454854 -> 454838 bytes utils/gxt/spanish.txt | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/gamefiles/TEXT/spanish.gxt b/gamefiles/TEXT/spanish.gxt index 7ef6c0124b2336ea63b96e7ca56699b1aca1b780..454e773465ffa298b8f261a0260ae3486341ab49 100644 GIT binary patch delta 159 zcmX^1P3ff{*)r-(F8nUNUF101CQSh16f+b6 delta 178 zcmdn?Q2N+I=?xvsh9)Q37(yH)Je@;B7?#|Eu)`e<86uv-*hUOBFJWwBhLYx;% Date: Thu, 11 Feb 2021 04:36:00 +0200 Subject: [PATCH 7/8] Fix borders --- src/core/MenuScreensCustom.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index c4a415c2..7d6f5d13 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -695,7 +695,7 @@ CMenuScreenCustom aScreens[] = { { "", 0, nil, nil, }, #ifdef GAMEPAD_MENU - { "FET_AGS", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({40, 78, 25, true}), nil, + { "FET_AGS", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({40, 78, 25, true, true}), nil, MENUACTION_CTRLCONFIG, "FEC_CCF", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 40, 76, MENUALIGN_LEFT, MENUACTION_CTRLDISPLAY, "FEC_CDP", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT, INVERT_PAD_SELECTOR From 4f27a28762d3700946c064a315cd9ed0f104f321 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 05:03:41 +0200 Subject: [PATCH 8/8] More fixes --- gamefiles/TEXT/american.gxt | Bin 423838 -> 423830 bytes gamefiles/TEXT/french.gxt | Bin 468076 -> 468068 bytes gamefiles/TEXT/german.gxt | Bin 459742 -> 459734 bytes gamefiles/TEXT/italian.gxt | Bin 457046 -> 457038 bytes gamefiles/TEXT/spanish.gxt | Bin 454838 -> 454830 bytes src/core/ControllerConfig.cpp | 4 ++-- src/core/Frontend.cpp | 8 ++++---- utils/gxt/american.txt | 8 ++++---- utils/gxt/french.txt | 8 ++++---- utils/gxt/german.txt | 8 ++++---- utils/gxt/italian.txt | 8 ++++---- utils/gxt/spanish.txt | 8 ++++---- 12 files changed, 26 insertions(+), 26 deletions(-) diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index f4afab9eb0f61be5dc3a9315887d4bc531836844..1039deb887ddb84d2070b215cee239b9d7f859c5 100644 GIT binary patch delta 12714 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 K^VP6jXa@k!H?|Z2 delta 5790 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 aY&A^nY&Fd7Y&9(HY&ERg*=pD>v;zR@M!i`8 diff --git a/gamefiles/TEXT/italian.gxt b/gamefiles/TEXT/italian.gxt index 144356ec74442fcee446431ff7edf398cc9e3903..a67d957dcc8070b430b06c07195eb125e49fa783 100644 GIT binary patch delta 6760 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 Zs%C1Bs%CDFs%B}As%G6DRn7LN763>lq9*_V delta 6785 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 delta 7045 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 diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index d95abd24..2c79b6aa 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -2532,7 +2532,7 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act O, /* PED_SPRINT */ \ R3, /* PED_LOOKBEHIND */ \ L3, /* PED_DUCK */ \ - L1, /* PED_ANSWER_PHONE */ \ + T, /* PED_ANSWER_PHONE */ \ VFB(O) /* VEHICLE_FIREWEAPON */ \ X, /* VEHICLE_ACCELERATE */ \ Q, /* VEHICLE_BRAKE */ \ @@ -2579,7 +2579,7 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act X, /* PED_SPRINT */ \ R3, /* PED_LOOKBEHIND */ \ L3, /* PED_DUCK */ \ - L1, /* PED_ANSWER_PHONE */ \ + O, /* PED_ANSWER_PHONE */ \ VFB(R1) /* VEHICLE_FIREWEAPON */ \ RSU, /* VEHICLE_ACCELERATE */ \ RSD, /* VEHICLE_BRAKE */ \ diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 31580e0e..97525388 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -6175,13 +6175,13 @@ CMenuManager::PrintController(void) CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); CFont::SetJustifyOn(); CFont::SetWrapx(SCREEN_WIDTH); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_ATT")); CFont::SetRightJustifyOn(); CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); CFont::SetJustifyOn(); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt index 9bc1c96d..99da103b 100644 --- a/utils/gxt/american.txt +++ b/utils/gxt/american.txt @@ -4456,11 +4456,11 @@ Press the ~h~~k~~TOGGLE_SUBMISSIONS~ button~w~ to toggle Paramedic missions on o [GUN_H1] ~w~Press the~h~ ~k~~PED_SPRINT~ ~w~button to buy. Press the~h~ ~k~~VEHICLE_ENTER_EXIT~ ~w~button to exit. -[PU_CF3] -Press the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button to replace current weapon in this slot. +[PU_CF3] { reVC update } +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to replace current weapon in this slot. -[PU_CF4] -Press the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button to replace current weapon in this slot. +[PU_CF4] { reVC update } +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to replace current weapon in this slot. [HELP9_B] Press the~h~ ~k~~PED_FIREWEAPON~ button ~w~to ~h~fire~w~ the sniper rifle. diff --git a/utils/gxt/french.txt b/utils/gxt/french.txt index a1bd7baa..4eea0ef4 100644 --- a/utils/gxt/french.txt +++ b/utils/gxt/french.txt @@ -6214,11 +6214,11 @@ Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les miss [GUN_H1] ~w~Appuie sur la~h~ ~k~~PED_SPRINT~~w~ pour acheter. ~w~Appuie sur la~h~ ~k~~VEHICLE_ENTER_EXIT~~w~ pour quitter. -[PU_CF3] -Appuie sur la ~h~~k~~VEHICLE_ENTER_EXIT~~w~ pour remplacer l'arme actuelle dans cet emplacement. +[PU_CF3] { reVC update } +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour remplacer l'arme actuelle dans cet emplacement. -[PU_CF4] -Appuie sur la ~h~~k~~VEHICLE_ENTER_EXIT~~w~ pour remplacer l'arme actuelle dans cet emplacement. +[PU_CF4] { reVC update } +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour remplacer l'arme actuelle dans cet emplacement. [HELP9_B] Appuie sur la~h~ ~k~~PED_FIREWEAPON~ ~w~pour ~h~tirer~w~ avec le fusil à lunette. diff --git a/utils/gxt/german.txt b/utils/gxt/german.txt index 449e4993..589ba084 100644 --- a/utils/gxt/german.txt +++ b/utils/gxt/german.txt @@ -6175,11 +6175,11 @@ Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Krankenwagen-Missionen an- oder ab [GUN_H1] ~w~Drück die~h~ ~k~~PED_SPRINT~~w~, um zu kaufen. ~w~Drück die~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, um zu gehen. -[PU_CF3] -Drück die ~h~~k~~VEHICLE_ENTER_EXIT~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. +[PU_CF3] { reVC update } +Drück die ~h~~k~~PED_ANSWER_PHONE~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. -[PU_CF4] -Drück die ~h~~k~~VEHICLE_ENTER_EXIT~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. +[PU_CF4] { reVC update } +Drück die ~h~~k~~PED_ANSWER_PHONE~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. [HELP9_B] Drücke die~h~ ~k~~PED_FIREWEAPON~~w~, um das Prãzisionsgewehr ~h~abzufeuern~w~. diff --git a/utils/gxt/italian.txt b/utils/gxt/italian.txt index 5d8f65f4..e1edd771 100644 --- a/utils/gxt/italian.txt +++ b/utils/gxt/italian.txt @@ -6007,11 +6007,11 @@ Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni In [GUN_H1] ~w~Premi il ~h~~k~~PED_SPRINT~~w~ per comprare. ~w~Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per uscire. -[PU_CF3] -Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per sostituire l'arma attuale con quella presente in questo slot. +[PU_CF3] { reVC update } +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per sostituire l'arma attuale con quella presente in questo slot. -[PU_CF4] -Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per sostituire l'arma attuale con quella presente in questo slot. +[PU_CF4] { reVC update } +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per sostituire l'arma attuale con quella presente in questo slot. [HELP9_B] Premi il ~h~~k~~PED_FIREWEAPON~~w~ per sparare con il fucile di precisione. diff --git a/utils/gxt/spanish.txt b/utils/gxt/spanish.txt index 93524500..6163a1fe 100644 --- a/utils/gxt/spanish.txt +++ b/utils/gxt/spanish.txt @@ -5834,11 +5834,11 @@ Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para comenzar o cancelar las misiones de ATS [GUN_H1] ~w~Pulsa ~h~~k~~PED_SPRINT~~w~ para comprar. ~w~Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para salir. -[PU_CF3] -Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para reemplazar tu arma actual en esta ranura. +[PU_CF3] { reVC update } +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para reemplazar tu arma actual en esta ranura. -[PU_CF4] -Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para reemplazar tu arma actual en esta ranura. +[PU_CF4] { reVC update } +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para reemplazar tu arma actual en esta ranura. [HELP9_B] Pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para ~h~disparar~w~ el rifle de francotirador.