From 3aa626f2b527207d14cab7d091d881b91eed9f64 Mon Sep 17 00:00:00 2001 From: dborth Date: Tue, 20 Jul 2010 06:45:04 +0000 Subject: [PATCH] finalize 4.2.2 --- hbc/meta.xml | 4 +-- readme.txt | 7 ++++- source/snes9xgx.cpp | 55 ++--------------------------------- source/snes9xgx.h | 2 +- source/utils/ehcmodule.elf.o | Bin 17876 -> 20668 bytes source/utils/mload.c | 5 +--- update.xml | 4 +-- 7 files changed, 15 insertions(+), 62 deletions(-) diff --git a/hbc/meta.xml b/hbc/meta.xml index 3341f01..69ad9ef 100644 --- a/hbc/meta.xml +++ b/hbc/meta.xml @@ -2,8 +2,8 @@ Snes9x GX Tantric - 4.2.1 - 20100714 + 4.2.2 + 20100720 Super Nintendo Emulator A Super Nintendo Emulator for Wii diff --git a/readme.txt b/readme.txt index b5b9267..a5264f0 100644 --- a/readme.txt +++ b/readme.txt @@ -10,7 +10,7 @@ ญ———————————————————————————————————————————————————————————————————————————— ื—–ญ—–ญ—–ญ—–ญ –ญ—–ญ—–ญ—–ญ—–ญ—–ญ—–ญ—–ญ—–ญ—–ญ— ญ—–ญ—–ญ—–ญ—–ญ—–ญ—–ญ—–ญ—-ญ—–ญ-–•ฌ -|0Oื๘oท Snes9x GX 4.2.1 ทo๘ืO0| +|0Oื๘oท Snes9x GX 4.2.2 ทo๘ืO0| | http://code.google.com/p/snes9x-gx | | (Under GPL License) | `จ•จจจจจ จจจจจจจจจจจจจจจจ จจจจจจจจจจจจจจจ จจจจจจจจจจจจจจจจจจจจ จจจจจจจจจจจจจ' @@ -43,6 +43,11 @@ Wii homebrew is WiiBrew (www.wiibrew.org). | UPDATE HISTORY | •˜———–—––-- - —————————––––– ———–—––-- - —————————––––– ———–—––-- - ————————• +[4.2.2 - July 20, 2010] + +* Reverted USB2 changes +* Fixed return-to-menu crash with Filtered mode + [4.2.1 - July 14, 2010] * Improved audio timing diff --git a/source/snes9xgx.cpp b/source/snes9xgx.cpp index bea449f..71c495c 100644 --- a/source/snes9xgx.cpp +++ b/source/snes9xgx.cpp @@ -252,31 +252,6 @@ static bool FindIOS(u32 ios) free(titles); return false; } - -#define ROUNDDOWN32(v) (((u32)(v)-0x1f)&~0x1f) - -static bool USBLANDetected() -{ - u8 dummy; - u8 i; - u16 vid, pid; - - USB_Initialize(); - u8 *buffer = (u8*)ROUNDDOWN32(((u32)SYS_GetArena2Hi() - (32*1024))); - memset(buffer, 0, 8 << 3); - - if(USB_GetDeviceList("/dev/usb/oh0", buffer, 8, 0, &dummy) < 0) - return false; - - for(i = 0; i < 8; i++) - { - memcpy(&vid, (buffer + (i << 3) + 4), 2); - memcpy(&pid, (buffer + (i << 3) + 6), 2); - if( (vid == 0x0b95) && (pid == 0x7720)) - return true; - } - return false; -} #endif /**************************************************************************** * USB Gecko Debugging @@ -343,8 +318,6 @@ main(int argc, char *argv[]) #endif #ifdef HW_RVL - bool usblan = USBLANDetected(); - // try to load IOS 202 if(FindIOS(202)) IOS_ReloadIOS(202); @@ -354,33 +327,11 @@ main(int argc, char *argv[]) if(IOS_GetVersion() == 202) { // enable DVD and USB2 + DI_LoadDVDX(false); + DI_Init(); + if(mload_init() >= 0 && load_ehci_module()) - { - int mode = 3; - - if(usblan) - { - int usblanport = GetUSB2LanPort(); - - if(usblanport >= 0) - { - if(usblanport == 1) - mode = 1; - else - mode = 2; - - USB2Storage_Close(); - mload_close(); - IOS_ReloadIOS(202); - mload_init(); - load_ehci_module(); - } - } - SetUSB2Mode(mode); USB2Enable(true); - DI_LoadDVDX(false); - DI_Init(); - } } #endif diff --git a/source/snes9xgx.h b/source/snes9xgx.h index 01fd67a..e4c57be 100644 --- a/source/snes9xgx.h +++ b/source/snes9xgx.h @@ -20,7 +20,7 @@ #include "filelist.h" #define APPNAME "Snes9x GX" -#define APPVERSION "4.2.1" +#define APPVERSION "4.2.2" #define APPFOLDER "snes9xgx" #define PREF_FILE_NAME "settings.xml" diff --git a/source/utils/ehcmodule.elf.o b/source/utils/ehcmodule.elf.o index 1a49e3523940e62dcf549fe03cf6fef5a5f1ae0f..f88d988c66d541c4888d3edf932e7b6dd2bf2cdd 100644 GIT binary patch literal 20668 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 F{{WkqWKjSB literal 17876 zcmcJ13w%`7wf8=cd1NM!AroL8C*;hWB!o&mV zd7wtr3f5ke3?P|7jKynJ>}^_0+uM3uyz2dGZ}0skBKHHL?V+et?IW#ii3Bp=f1jBk zdV9b7-S7AN@?+0BXFt|nd+oi~T6^tvxc}Ow28LzGl8EU7>drTVf+r0apRfCFHLV5c{D#$xAuy1 z+TE4yY2CLn!nE_fr;c5G@8B_V2Kna>zG9~k z`GNtBx+5z;OsD^R#d`?vf1r4NXDOJ8x^t$>C_L*T4jUnbXMft~I6Evl-g`teaGx0# z^Jw{dPo?@P{9yiVQxtwgNWriFG4p(8IK`fI5C-j81J^L&QEmcGn#a8N)cD2>j`16^ zaD4`fO`xNYKL5^H;JA{e-*KOPzcwP@CO51mg|(Tr0%nwj}pZ`1R80RNuyzF?HU2Q!&J~E*Ez}Kg_#<}!)pNNuG{g!bud6n_rg?C}d z68SdX-j0kUECM4DJpY@Y^jk}rLHnS2(4>=6a=`L@fuEMV*PoZn3y{&jRFM>Wz>4-_ z^zfkqiKxy6WHhWit$70^Wm1MI9A%8YQQcgi&%L15=h#VEyDT6~I=@ zRB@vd%3f^_Fge%!ZPTE{r~ys%G0}l>?!rH-3sB3VNx;iVeXLiNbfT6kUor4~^MJLn z5A;1y%A9+ytEQ{dT*!N6XV-VwLj3+wb_Uqg`~Z8B4KSm;o)a*q_<$v~qMRvXbSM2i zbG$d$8#8-(BD;EDYV2UWfFH}0Z}sSxLmhMY&NIjE4c_}D)S53B-}@5k6yN)CIU^UJ z`EF0JC)>K`rG%Nb?m_GDu2HUxlr#IxXAX~(i!URM024WL@V?-EJAkKD7Vdj#=a*4m zxbI_rr7Y|Wn!R$#PKvu^=f`q=-1Z-Pl#7#QaDnX&g0oCH(Q|uhdOCYXGGk_m%=L_e za&qw@!JM!OqU)RFgMB%3!Re{r3T3)UtI*o;d~OM|*qY11SC&XhCy%?-yOe@c;7kOTYs0N+A-2x&J` zF4DV5$Zr7@H&8WM|yG->$bQ*ZN5rQ9W2?CVjIeX&xo4uf-VX4&!oc1MH|N#!5`gPS>Qq3Qyd*3GB7ubKg>GY2V5MKQKpX z#>vE1Ws#rPyjoICfPRyo44R(H$J2`#G2P)}B4012qtq};%{|Ud{Px^qpLySN?jgme zxx>+GqN?ZI>!1*8^umN-GH5QMBhcvz#6C;d$Z^-Z!fdQnQEMLOE}dAy)MnReG)Hq% z*-}b$9=kptrC%v!DEHqxa-cw%hxZrWd)8PJbnfXoup!xzupaEo0BeyRqiaQBF+P{V zs-D#`7wZFj_3x%cN#F7f~c2RT|m3hic)g|)i zagP@8FVT{r+3IcjEM#Rm?@rn{wS`sQz|3;JKpeiX=%_GlJ=ZNIx2`a1e`pAkb zZF>RxDLu$ry4uxn>}afMrZTgf4c{a9G#6+tN1r81;hI9sNCK3^qcgM$)rs7VTE#eb z@edLc-UR7sNK3`8Wu>J-Yl*^Yu9su9PxNsBsR)Vk#DQe=ebk{82)yPItP<0h2Yjz9 zc|M2gisWK-bov|-J79}q_b*We#U@U#3-k-U!>p#ZK#}RsXDD>gF=WR^an~M=t#K$0 zty1g@In@Bx{43B)+{KBeTvep>UHpdT^AqFgS6U^N^fKxh@BajVfG*@NtWk=5yy_Al%P&IHU8wgHfr+5xlfU?e z*~SP~(8WDUzOPTEHChd7zOC5tMlO2kZWNhtNN3NdFK)zK8G6;w$FZDw&TZF;pn=LB z@n}rQ6->bJRl!VK;OUE+Uzrh3jJl$Z#u*ZWaVUc5w~lj@j|igA>TN}xrPgN@`wBJ$ zJ_;4GpjP=P59ULva2M;Q$NN5Eus)e<(2t9x)9DYP^wA%!xvHu>6|O2jX{stsNTdExV`HT8d^-J&rd5%M(kS@V7J>Vj|5d+_ zQZ^pBR%!TL-uscTB7ZLLZDny}C0hCnyd{wp`o_i;krlw(+q583qtt({{%eti%979J z{V-Cc1V5KIqLf4yPUF4saimJGLL!l>#wy@m(=F z#TqHOjQjP7V2t?7m{nsp7&5~J+f;>()g_9d$3*d#U*rAdbh-rmC$9lM28gvcrxwqe zC|=zmikph?K7xe&;vIm`iQ=sfq3vE#TnSvhYNRIA{}W&Z*1ugMT4kdR+;%tF8g1Cm zBHguR@D#mn2;-ats_fnb~oW5yT>&n5pDaiJ;g! zt_#@%+$bycG0D~qirL6DcMM#S8_(<|;Dr4za!0Gt-r?_S%8A${!VGFYZO@`rt~a#2 zkZC?QN>p2r4>(3Ye!2Q{?TBJCq)=bSbxbns9wq3{l+78)=ET9{jJ&BmI<7byosccg z;0;~HN@16PSX{$2ln@=a1sJk%CqWZ`#addZqGH$ng74LT`3*(Dg2PSDRJ4(VbgU z5&p_3BZyhtf0$kolsB-UA0A};89(unb#7fGUvu3_e(TWr-(CkM}8)p+dTR%6= zuM91>!RF706@0+t*Fz3JD?7|2!O5KJ)cojaQ!}7XZQk&6rj7ybZ!a*9eyeHL8n-64 z-G%q|ehxd3ow}o+F;7ygN^Bczv+bm)$dA-mbBIv){CepSG(pZKv9QV&z=TDGW?+LGD*n7aoR zw?C~3QXj@v$Zskq?8-qB$6CeSe|rI!@(5-AlEwGS``X(D(d@~0%QFN|XgSV3GZLhZ z2{~;Z!4AzMQQFlOP_|5{I`>QH9~IBR5iUcevF3Ez-}&^^`@sEAO^r%a^K0%kjm-mq zH?EB|k7^0vsMJokdDWWewR2$s!NNN*&R)XGX-l*o$8WL~HgH=~aK*vfORp!HXnpHO zXlH-NrnUipnk@`@Sce~D33)J2Y`#loMLooctjw8Rf)lf3rz@{5F})_*k}AcBchgui zwWDc?F^6q~%~&%=|Nqlya}quN06C`(O2!OI#c)%q`{=5V}IWh;$M*q+ju?5?UlK zTM$dY?-`Kv4@Qesk0wftwo97!E?!bwF8RYa0=2AWfxw&%DAx4(m2YWX69M075`4z3*>qqV7 zbIB8|us|=Rr%dEpWrxhU-|2m!_oGbRos~N^T3dFdFgq6y_iXJslEw02Z^acQ`xESv z!Ww3f?UtTo8xHoUJx}-is#m&p%h;%}*lgylay4o@a2{qa_8sC9*z+}c`?*18r*??j z`QpwG?ybDHJ^Yoi!=T$LiO_B|ENfONQge&25`It`Emg z!um`f*IlBmjya#6{6+Z3qaW!rDwxrNa1=ofYvg? z3Kf`ZgI{#63G9?~dg??vJyCsh+?R$t#F@UF(;*eiLVk%nR}ezEY^gjKa$6AUWyvOl zYOC0kt^KtQOWT%)7uV#idO5cww6I}|_xH_rbnvi281rp!aqWFrLvQO``>XWq(Y#UN z{Y3M&dNLLTT&wh~MAw?h^6FdEidw2vY64p4w5x_DsLj9&AGSYp?&GFXdU8y8IyT}o z#7>n%9*G?r$Jq;G(;762v%Xg76WgzEz6nwaWtXV*Pbe1c%W!N*I|EEYg($DEwz)Oy< zV}Xw|`Bt;NJS}r{tlJY+0p5_wwH|LVgw}tl|C&J9R zea!vtH>#N+AKv#SQ^CKZhxesmlMGoQXa3f6XM*7aveTD_Ms~ql;|RG~o5093rZu0T zlMQ{}T1NH#2#1wo*t2jqkuG{IChZ`5kDLEAU3E1MRXe-ST>dj*we+{1rNaE#FPD)Tgpe*2y|q z`ygQ*;Hf`Q>LZ)vlD3bcD}CvZXOLSCOKmU*W7tI3ZQL|q9<(I6AwEtLtWa;*By~fu z#FAD|j;jzf@}Q9!GO5jpoFwORgk7Ud<9yfs3AU2FQv@0M518%M?Xp21ESH2C)&YE6 zLzb4|klp5%ZK_}3&;2Xa_sU9+G33#hAx4~d-|QNBrcks!8ulo3CpxkK=v zf$rZa-)tRGU2T8w@4L^(49Yd-1)+SluI;Q`GY_-5_8Yos?KeVmFt$3=m^??GWvYVmazM1Bk&B$XyY=~iVVC&_} zv;2Mh_04mdZ=zgC%`|(qwpEfb#!qzOcZdZc&h=(!RJq6UZzs66A%CB2)7iF!uTOro zIiYNe-qSWDEC|_}6CFvREY1sp&S$LHiB$VDRb+Gmmh{rbJNEM6U43JR#HegHHaO?Dc2g_zI2ceG@1l`E-vBvZ&4Fr`@K zDnC4_2`+ryHP;RBHKr7UwV?phM{Ac-dgihe_avUOz06bUwHmCCfsRf8xxFmcU$&OB z?Iva5eEvSs*!BDT1!ivRT_No1F~$e}`W#B7nP?>yc!y>uqC;X_eK~2@qoI;eJoJcs zNWOaWU3xcgJf+O)IHdFKF{&3P9PQu3DQzM$1FI6Nd!mo_kgESH_^oEr_7w2@f!}B7 z@pq}5Mw+&Zf9l*mI1E2LkGy9>p%8YIh3ch~4E7jc3aQ!|n|TZ1&;L4wYs$d0K)J!Q z3t!O!2G5xEy|HVp*tNQ`Ynk*R>{=$hFSBPg z72YByy*Fvdw6@m0+yTxw<7NFCbR2YiN2^EnG<4kK%X#CTW?vuKQ$_|X4Q>0#ARmVn zcj*@+Iq;yM4dnYH0zbgi4htq~Wobih!rp9X565lnM> z&E9N&E*RwFw!zuMoR6~BTz25UoGr%U)5o@R932%HDI za5{o+WBj=~ztDV=@tdji5vn>9l#U^*u)Mke>->A!d1%8tlwcl;DoPBS7&iCYcx4rrzE0Jxx?vbQW^I4@R z=Z${$p62GV@KdK|!V|(w%@HbvW$G{}zftfB)zFR4YflSi7*!?+FGp4(eB6`$3$>d^*-}2-su$vxi%96FpY`=ozqnyp z-%2(57}FJq1?jjhJv#y^KW#(PJrk9cRb7RGSu3Hl*cjGHV_0=7VR#&egdp~gchRc0 zG5AOSMRUUo=!R}yQO4k|rY?M^TB2`OYH7P@txlq~uvP1X+AeQxKX!cn?vHWX?28kB z8kA*5KU=^F<^0s8YjukcULcI>E}UqlE?red6d(LlYE%Ii z<-!+@`enLL6MGloeJwCj48nXeHXC`{khdzESBShkoIs{7QleN@&j|cr({slZP`OD8!Xd)tQ9lHgxsbg~-cg4^L+j;p(fG*M1}zO+2h26= zz{3*k$lJQSgVu(vH57jmKW9N8lGP7`8^H!15ISC$TbiR^(hv@%KWQ|+yq{hYr*K&IM;<6KG;QVu#4K%V8WV&y@K=CatUX!Av2`t|59#)1;;~5 zJZMn$B)lvpeQZJ>zv-BXa{mo@;UjVi*d<4?H$M>jQEnhMX$x$tw>h`n zyY1y|liQbX-`V?M_^YQ%i|ypl#>MkVs$`85He6t1UBf{kC~xrF;6+}tYU?29H#giq zXi5~tEl-gB>|P%Hi>p-?%L`aI4D(sBMP|T z1UHI`ntJrYt(**FU8aIGnT6sX+jd4e>wWch+PorGgA zyPq?-k!x_noaMx{uF9Tiu9&0$k`EV${+oOl_;2tbHnLloB^3M1j#y$ICK|g*U~7i8 zB7YxK=%V&KEArux4tXrGaoiHb**F*HC0pDi_$4cL)DZeAe9nv;NPe8T_zSEUCTUg! z#lGjvM$QRXJv1kX^PDxKK`8H!Sp9{W{-Db&u|({&uXG#w-sbK%qyL${J|@R?=lp3c zRXvxU5+U)>$8V@)zp(NJt7P`s%AxP#%z){DdB`GEN~Qb3{ry-Am)1br(Ru;wK}%Pq zRAQV1%mK@&Rp*v43)z(U+zCUHdvr$O)H%?@m-kjPJ!3vDaQ)^1OK?~#_VqQ~&Ezau zQchk3Rk5pa;(@gSTAsa3VWVV@m4idjSd=@I9zS&WUh+hS9ut*3sXB0r?W)J#STtlg zlH=#HJSg1e@e_=n-suzqZ;#@vWf8gMgidp+o+CNnzxlKL&yKhdvgm&q8o=81f>aQ4 z*0a>ELzES1GK~~`Iwt6*^0HxihY8v6`=hbm2jOw#!$(fC)P~YMYYUVDHHclbOUV~R zH7Lx(b0z4t34!9uAa1sx&A;wCD~PmY>TJ|RBQ~aO0<7n1X3>1OO~N7A-VZl))cSXq z)$+Sbsh4os>xHh5fZxLx+F->QcAF>mVZOJgGIpe={qrT;x1!{Q z?SY>E&}KW@^j2;^()%CUy;kLOJC5XXJ3g{;UkZFlGpJs+ zv)xC?O|Cb|pzBT0m++AR^MFZMaK+rF_rXk@`72`<^1ZPmvELZw?_~I>e?%?8 zt|MI^(#VZ0H_;b*s)p7h`p>%pake`^PGVdk;C&^Z+uokbZ9ih;wtv)FL8;aMHNg&X zo@e&*-2vC*uK+KF%v)6^U;t6Jqf)5&@8xGu}YSWGZ+57 z%TMnF$Vm@4H}QBr*LgUX>pW}Yc1Sy*!_h}F$qw3l|c+P_J9N zZd}HjbMkZMF{k)0x957-CU~6w277_^`5#3=@N?-rIN zphGU~!+jy|`iUnQ=P@VNfgHV}_v^i9v-cZ*VHsVYJ2%4@Wp&}c%x{U)Ry{*(m%ZEO zN_Q*SRWu{tDcgDP5Nn(Z?AxO7rCDp3pk**8Zta$aa>7H$-%Qw&7UUHU+Txb(z>tl` z)}8C1YjwhuFeS|>%kv>-D{da(c6KIA;l!Kd{of@yVR1H=%8t7r29jbi+K}`|u=3!$ zK0h^S{#5e|i>cjy?&B={(9mTMBif~6fVO$Z@QH7N9DzK(@I{gBXXX-kv*!6Zi9CVb zG*xX#i|e|oXdSwnF38j6dl{ofiBTi8yUouJpno6f>Oie(+>f(yMBE98uA}&X%VyLJ zWH5DgbS*?ZVTctZoGXnwPhiJiI&ai+`EhpAtv5e^fU99|cqPb~Ve94>=6l0GJpL!_ zY;wcTbX@<0TSrXOQVZ0Pw07<<#u%Sap7lFo9)XMgUGRYFskf@`7ag!gO}knI>#oD} zJay^c>DoS1tsF9Jt`gy*Kv$ z3Xtnf?38e0!#?ML?oeKEbk9&8D<|8Ay06=IYR`-Z+Y#_Pm_kE0e}fsh5Q$>w34l zC14%h-VG}tqEx>gYOFg=G^lpV+(;8j>oMVTxw|&Qk?%r6S>#*A1dA#c^wUX5%=chh-MH8Qg?LYPU z+SSVHXhaPv5qgi>1)VVQ6Qw~7YGU^XJs;xj1x2oPs6olvdBli-yGg(9%AL1Ur902K zStL{UTzNm)OYi@jozHf@zoUG|?b#Yzx?8s2zWv$l?{}65au88DUzz)y12((_?%50; zVJzSg-+eeb*K<5tf|zG6!3LR{LhzsMu7~dryX{|uhD`5*MTa4AZOlhU-TWQ6KwiPqML|dT! zTh_Izo)>wn^Q#)}+SRh_@Z$cuxj2>kvA6Gd49Djal;&f!Kjwm=hozN9)d)B+jjJ>q%j9H-M4aY=O1m6>BEAJ4OqW+BZ)Dx&rfpcAPO^H0tOXsTP;X7GsVd{+NnmNVL#JG#qZRlpN+VbVCe+o_gGABo;3byH~;y_tF* z5ZnK}K}SN_Nco~{jNTfXqilk|<_msABMrKD-eM)yg>ik^iNL!YnDZzh}i zS@5M39AP5)deL2eB@Yp?4lRJlz9b_14r!g*_D}E5MVs0QTwjZrrccc18?lz>@7QM- zzYJK1xBwgOz`VHKN5l){M-DyN75rDKdYVy&2DIuGcul!Mk|zNAM9j5+>E~10{G8cO}V~3x3TzCJ}eZ+yM_&Q|?I4w6#O| zL=c;RxC@RDHnf#9iG<$hBuw2Z#x#1}zivP5jf2p_G* zcM+2X#`8n?I_Qt$1rkF3eWi@P267;Q$dF4D#m3x!m)??}#;q=B`g^R%6{xp$jo4H| zqhW%p+`mM;)pAu@K*p*RA>>g6@OADwZ#juwt(HTdbw%BZNA+MW<>9M@6Fx>Qk1dPL zI)5?!TSV|jE7oY_!7eC)1nj@ zv%!Hf$~hjM9Dekm{BD6hEvXD2<6F4jM6^ws-fQ+DJw$nU1wXHpsnkzD&CiF|-d;+u z&p|!D<~ex&;?%dJEp)zdbFmq#(cReW-xAAhYz|+qj&2{{aoA0K1HOhLr!>|K3X|QqLGOb-N;I8@nrAt07xV8}yj+e_$2s@rsPyBSWg0*1{VFOzBH?T96!edlL-pm-d>9L>FVH zIO%Rg{E9^^0;a>tf=?+~2uzKOqKiWA@IWfpsCPVD?{TH{(|T*6W7Qhe_D9P?&S)7T z(~8Nkn~-Bkrh20baYmEyIgUCNkwckJH~L$vg= zZl^l4j*w-B+*uuKI7Sn6CoeGg8k9`tLPIk2TN;dGDUAsg7{6$gSisM`NDk^0;%ldy z#GhivypAWucsh3OPnUJ;QnYQrH#X$LD;aFY^N+50K05u3Z&k>JKSC}V+Tf_ec>nNo z@4x!=-KR$^ENHm!vSL8?_4Y+OrE^rfZ z-9{fq8JjIzmo0OMg_mi%7T9PEfJ2;dIj{b59&MUHJg|RH`&%%)` zOl9GC26B!ptj@yqSs2U0{wy5H!c-QHXCUv$!s;wspM|k3?9alHEKFtLcm|prSy-Kg z>od^YpMjR~4755j&}P72^*hMf5yE3Wj?nxw!}u;82`8pn3AX=t9pT-_t4bM5Y53_k z`S1g8vP=%+JvTw#oqi{cWYf6`)M7j#*<)=A4ShMhqrGN5rz8v=Kq2CRHmTSI?y%uU}c!tt6 zkDMT3Sflt2{r{$}p|#5B=Q5S{43!3rFMUd*A(zH+2bU)lRTiA$a2Ll}o=Vx^frQ8U z<_~Z9Bfj@JJbED`*@T(c!<<&G&e3jHZ`Gbv4{7gTj*mL7o7a#az~C+xP_U| zc-;-|HJ(u+cOG}@lteauxc-kp-t)6c?&K%Sco2a~dUMacfqlza9!llG zq6nGumNWVDOF11eim7GGnOHIUmqsTlxl{AX(xE)IN-pE8ggJ5sU~5@;qpmRmU)O?nAg0@t|FJQoX`V9R2)7kedJ-`2P=6&kp zZ23>Ja3Gt1cDlTA-3IZ_yIa51v4z3egCI^i^Y>oKI8Vnt{Z65SX3$uN?eS;m`@+^O z_bmKU=jIxMNF4E+j*h!qmWy}Yy+hn`*WF*bLlf`Za_8OKyL~palDCiro!xitXxIf= zmhtzW)tie_E7E^euL^Z2J{F1og)rPU<0 - - + +