From 26dbfdec152c3023e797a39e10c8b42bf0967ad1 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Thu, 3 Aug 2006 00:32:32 +0000 Subject: [PATCH] -splitted resource file into en.rc and msgina.rc -prettyfied msgina a bit -fixed line endings svn path=/trunk/; revision=23430 --- reactos/dll/win32/msgina/en.rc | 50 ++++++++++++++++++ reactos/dll/win32/msgina/gui.c | 32 ++++++++++- reactos/dll/win32/msgina/msgina.rbuild | 1 + reactos/dll/win32/msgina/msgina.rc | 49 +---------------- reactos/dll/win32/msgina/resource.h | 1 + .../dll/win32/msgina/resources/reactos.bmp | Bin 0 -> 72920 bytes reactos/dll/win32/msgina/tui.c | 2 +- 7 files changed, 86 insertions(+), 49 deletions(-) create mode 100644 reactos/dll/win32/msgina/en.rc create mode 100644 reactos/dll/win32/msgina/resources/reactos.bmp diff --git a/reactos/dll/win32/msgina/en.rc b/reactos/dll/win32/msgina/en.rc new file mode 100644 index 00000000000..287680434e0 --- /dev/null +++ b/reactos/dll/win32/msgina/en.rc @@ -0,0 +1,50 @@ +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +IDD_STATUSWINDOW_DLG DIALOGEX 0,0,274,26 +STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP +CAPTION "Please wait..." +FONT 8,"MS Shell Dlg 2",400,0,1 +BEGIN + LTEXT "",IDC_STATUSLABEL,7,8,234,12,SS_WORDELLIPSIS +END + +IDD_NOTICE_DLG DIALOGEX 0,0,186,59 +STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP +CAPTION "Welcome to ReactOS" +FONT 8,"MS Shell Dlg 2",400,0,1 +BEGIN + LTEXT "Press Control-Alt-Delete key combination",IDC_STATIC,16,18,144,14 +END + +IDD_LOGGEDOUT_DLG DIALOGEX 0,0,275,147 +STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP +CAPTION "Logon" +FONT 8,"MS Shell Dlg 2",400,0,1 +BEGIN + PUSHBUTTON "OK",IDOK,51,122,50,14,BS_DEFPUSHBUTTON + PUSHBUTTON "Cancel",IDCANCEL,115,122,50,14 + PUSHBUTTON "Shutdown",IDC_SHUTDOWN,179,122,50,14 + LTEXT "Username:",IDC_STATIC,36,75,40,8 + LTEXT "Password:",IDC_STATIC,36,93,42,8 + EDITTEXT IDC_USERNAME,84,72,119,14,ES_AUTOHSCROLL + EDITTEXT IDC_PASSWORD,84,91,119,14,ES_AUTOHSCROLL | ES_PASSWORD +END + +IDD_LOGGEDON_DLG DIALOGEX 0,0,186,52 +STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU +CAPTION "Security" +FONT 8,"MS Shell Dlg 2",400,0,1 +BEGIN + PUSHBUTTON "Cancel",IDCANCEL,125,31,50,14 + PUSHBUTTON "Log off",IDC_LOGOFF,11,31,50,14 + PUSHBUTTON "Shutdown",IDC_SHUTDOWN,69,31,50,14 + LTEXT "What do you want to do?",IDC_STATIC,50,18,87,8 +END + +STRINGTABLE +BEGIN + IDS_PRESSCTRLALTDELETE "Press CONTROL+ALT+DELETE key combination\n" + IDS_ASKFORUSER "User name: " + IDS_ASKFORPASSWORD "Password: " +END + diff --git a/reactos/dll/win32/msgina/gui.c b/reactos/dll/win32/msgina/gui.c index 488122dcbc5..cfb92d26f34 100644 --- a/reactos/dll/win32/msgina/gui.c +++ b/reactos/dll/win32/msgina/gui.c @@ -14,6 +14,9 @@ #undef DPRINT #undef DPRINT1 +static HBITMAP hBitmap = NULL; +static int cxSource, cySource; + typedef struct _DISPLAYSTATUSMSG { PGINA_CONTEXT Context; @@ -46,7 +49,7 @@ StatusMessageWindowProc( PDISPLAYSTATUSMSG msg = (PDISPLAYSTATUSMSG)lParam; if (!msg) return FALSE; - + msg->Context->hStatusWindow = hwndDlg; if (msg->pTitle) @@ -207,6 +210,8 @@ LoggedOutWindowProc( IN WPARAM wParam, IN LPARAM lParam) { + BITMAP bitmap; + switch (uMsg) { case WM_INITDIALOG: @@ -214,6 +219,31 @@ LoggedOutWindowProc( /* FIXME: take care of DontDisplayLastUserName, NoDomainUI, ShutdownWithoutLogon */ SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)lParam); SetFocus(GetDlgItem(hwndDlg, IDC_USERNAME)); + + hBitmap = LoadImage(hDllInstance, MAKEINTRESOURCE(IDC_ROSLOGO), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); + if (hBitmap != NULL) + { + GetObject(hBitmap, sizeof(BITMAP), &bitmap); + cxSource = bitmap.bmWidth; + cySource = bitmap.bmHeight; + } + break; + } + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc, hdcMem; + hdc = BeginPaint(hwndDlg, &ps); + hdcMem = CreateCompatibleDC(hdc); + SelectObject(hdcMem, hBitmap); + BitBlt(hdc, 0, 0, cxSource, cySource, hdcMem, 0, 0, SRCCOPY); + DeleteDC(hdcMem); + EndPaint(hwndDlg, &ps); + break; + } + case WM_DESTROY: + { + DeleteObject(hBitmap); break; } case WM_COMMAND: diff --git a/reactos/dll/win32/msgina/msgina.rbuild b/reactos/dll/win32/msgina/msgina.rbuild index cc68c806dee..dc6e7f524f4 100644 --- a/reactos/dll/win32/msgina/msgina.rbuild +++ b/reactos/dll/win32/msgina/msgina.rbuild @@ -10,6 +10,7 @@ kernel32 advapi32 user32 + gdi32 gui.c msgina.c stubs.c diff --git a/reactos/dll/win32/msgina/msgina.rc b/reactos/dll/win32/msgina/msgina.rc index b00b1811e58..567fb7a7dd3 100644 --- a/reactos/dll/win32/msgina/msgina.rc +++ b/reactos/dll/win32/msgina/msgina.rc @@ -7,53 +7,8 @@ #define REACTOS_STR_ORIGINAL_FILENAME "msgina.dll\0" #include -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -IDD_STATUSWINDOW_DLG DIALOGEX 0,0,274,26 -STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP -CAPTION "Please wait..." -FONT 8,"MS Shell Dlg 2",400,0,1 -BEGIN - LTEXT "",IDC_STATUSLABEL,7,8,234,12,SS_WORDELLIPSIS -END +IDC_ROSLOGO BITMAP "resources/reactos.bmp" -IDD_NOTICE_DLG DIALOGEX 0,0,186,59 -STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP -CAPTION "Welcome to ReactOS" -FONT 8,"MS Shell Dlg 2",400,0,1 -BEGIN - LTEXT "Press Control-Alt-Delete key combination",IDC_STATIC,16,18,144,14 -END - -IDD_LOGGEDOUT_DLG DIALOGEX 0,0,245,77 -STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP -CAPTION "Logon" -FONT 8,"MS Shell Dlg 2",400,0,1 -BEGIN - PUSHBUTTON "OK",IDOK,31,52,50,14,BS_DEFPUSHBUTTON - PUSHBUTTON "Cancel",IDCANCEL,95,52,50,14 - PUSHBUTTON "Shutdown",IDC_SHUTDOWN,159,52,50,14 - LTEXT "User name:",IDC_STATIC,16,15,40,8 - LTEXT "Password:",IDC_STATIC,16,33,42,8 - EDITTEXT IDC_USERNAME,64,12,169,14,ES_AUTOHSCROLL - EDITTEXT IDC_PASSWORD,64,31,169,14,ES_AUTOHSCROLL | ES_PASSWORD -END - -IDD_LOGGEDON_DLG DIALOGEX 0,0,186,52 -STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU -CAPTION "Security" -FONT 8,"MS Shell Dlg 2",400,0,1 -BEGIN - PUSHBUTTON "Cancel",IDCANCEL,125,31,50,14 - PUSHBUTTON "Log off",IDC_LOGOFF,11,31,50,14 - PUSHBUTTON "Shutdown",IDC_SHUTDOWN,69,31,50,14 - LTEXT "What do you want to do?",IDC_STATIC,50,18,87,8 -END - -STRINGTABLE -BEGIN - IDS_PRESSCTRLALTDELETE "Press CONTROL+ALT+DELETE key combination\n" - IDS_ASKFORUSER "User name: " - IDS_ASKFORPASSWORD "Password: " -END +#include "En.rc" diff --git a/reactos/dll/win32/msgina/resource.h b/reactos/dll/win32/msgina/resource.h index 558e29116e3..36b936868c1 100644 --- a/reactos/dll/win32/msgina/resource.h +++ b/reactos/dll/win32/msgina/resource.h @@ -11,6 +11,7 @@ #define IDC_PASSWORD 1003 #define IDC_SHUTDOWN 1004 #define IDC_STATUSLABEL 1005 +#define IDC_ROSLOGO 1006 #define IDS_ASKFORUSER 40000 #define IDS_PRESSCTRLALTDELETE 40001 #define IDS_ASKFORPASSWORD 40002 diff --git a/reactos/dll/win32/msgina/resources/reactos.bmp b/reactos/dll/win32/msgina/resources/reactos.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b5775aebecc7499818e52a1a82c803d1c409544b GIT binary patch literal 72920 zcmeHw&vP5swI<(gCeDJSN)>{#7F@7uz?iB6XtIo^g#{M9XvJMM4H}HQ8KP>iK-EAt zsshj$8`RT3V8y9=1U=ReS_}opbKF_om+4dh?(9_-_jT{|o-t@$r{<{inWu{O#-e-}rv; zjXwD=2k>X;(#t6C#D6*UfpIhW*#0&%U_?jL=2qre=9%-zzGG_n#(HG`(O$F4=3sIl z6*m{`KiH4$|I6=FcTzXao7PR#d~7{)E_lyCLd)hUn7N9O;u%C=+nrv{QU<`>o<(S}FXA5Go~?{Tkh zGh5DrH8#3;`CI3abu;ye@yn@q;zRMDy%Z_E49WMd`S+5*%fQY%mr$mDDad)4=}+C7 zY&h?F-`U>)4WFcLCO`FyYBllk$X>SMsTdGcwjX95qvki}9q967o5=Z9?wfOS4GzA^vc3?x@GZvJxaG57?%c=7`S1&pL6(AzIXYyT+P{p9jQ>JQGd%!S!E zXW#VZa@X>U`NhIwVY{?bZOz}E{45$z*36ky+!&a;KmOJDZ=$!OUyWZK9UHk3Yh>0- z8>M>jTH#v$-Rv`<@UabM0i&hO-OJ!MFb#3}sgIZsj8FWQ1nmKOfY^7liG0%?NUni< z(B>(ir^h=z2^^Ea%fQY%@pq;^nYx*J1p8^(p3AQkFU;PtzC;fW`v(?~U+^9%VuAjC z0xlvyJhC3bX6jGIQVnMs3^JW-Wj3AtOd{*$>!ri$dSx^7WO5)0)=3T;yOZ}PcN6y} zuSTzqm+Wd`y;RNbXKL1hbPUdzwtFL-PAj5&~6u(oXAM)3QIA_jLxYdYopRXA$^Y%aD6+njZi?WS(B>NgynNA0Iog*MxN*+pvzTcRjKOZ6EaTZ4K<$KZ+wo z&?m_+Q{PzMIqzl{^ZV}Z<-3zks_7hLS`LaE$r`!ELcO$IG4f?tcxfT)tTotu&m35c!ZtwaRDw(*W#|YdXls4~^xUz* zboqC^2A<)OO}3=Z6P8==eNO@}0Xu@6o2f7CSn7gzVb&{nxyRO*(7!}T`+nB;AAlp# z;txb?AKCD4^4AJGm5s{&{FBSKC(D+R^KubSi;;8li5$75Y%T#opN-$0Y|U>}>ZL?( zGgCI>#@^&!jHtRjX^q~UY`QDO-xcSw7iJYZU_Qmn2^LX23+|J5%nMmJ|K{w4*);4t zcxf6jIB`x-e_m$^ybSCB1<7xq*A3@8#MTbxw=#E3dJU)BJ=9t1GtatXJ(>W`+?1BBx}pfQhOFL<;P(1ujD5Af4KU6?ZGP>a3JD zDl0_~So~G)nZs5PJJ0*Q6+1Um2e|&T%y*eJFwY(9Q$6pwXFl($z3=`JCGb+P1FPqc zRxGvUeCIra-Lwp!;UspB+HD_9eJaR#H#_V#?N-LfR`d1ZcIEK;c4gDOml#M6W!+pN z8_Dv&n;**VChkrS<=_F8j9fEQ1`n0Zn$@t&=B*epwTQD+Y%SZ1lU;yi#=oeow)h2cuI*MV64|yhhEnw z|FN+nwwG}eUP9XZ4!ZXk*hyoQRB;u%?DXQfy#A?jS& zsWL(U=0VJEv5>azCHChJukTb>ibifo&H~~xX)w-iB9hyNuLNd-r_V8y)AT;SUJ~f*+mHSjr4=0-+mHTi>}T-%F-BsRt@q7utUDNq{K6hc zKD7M^wbWs~p)s5xb-zRucv_L;w0y>aU6!u{ImFI7xTjuR1a>w``xqN7+1pimIY3U{ z%^?N{8?Nczos5~)B9D7uoHb}XMtLxT3hWr<9Yo(I2l0xidG1*T{+A*d?O|*9SKI&2 zC1U>(A{}2yP7ksXfE{EX81GCCUHUO3)w{+&iUj)lg0cM{=k-fuwcIfuIW>C$F*BBL zVM{%P^>zob-cSAf7vAfCU^E9c?KfwCl{-)`2gp&zp{FCbfyKtc_ZyW}=kBE1YW31e zv06Y88?I#Cn%vAB0#S9?aEQV=4QpA-0+?q4W2odEVh0Rl)GTDbdCdDkd;I(Ywny5A zJi2d?uk$PuPaYu7_6+$AYj&Br3CMaw22ZH{z4x!X1p4|8ufL44>Tbd#Vfp_0zhvIY zKkpt!u7UU%;{zRAP0)h;nhp3a>xe?HS4!5C%U%I-H{=%3f@9f0JfJ_>pRDqDWw8L; zEz@+Gu>EjFl$u#)&KnRjFf}j*?7)UYmXHJHdhSzKiw@aM>Ll_@?(=K+zI{Ce2D@L#X=BoIiTuP^Asf1FpjF7$fK zt=Stu#(HI=8p)**PlonE^MbqJJ&tTwygbKbn0X_SHH_)3(>}vDC>R?hF1*6M#FB6Y zKMNB9PaBnz{p7N%OjN3Zb0V|I-NAJl&OKx!Y&py3LUIPI6E`LdMh!IQnt9g)M$6q{ z>(Hj4MfysVY*c=2Ggo1~^si{cY6cmmtO+}@S9%iYNZ@7JY#-!H_V>PBv|e#6`0=M$ zNgI`BX4z`m2bp1x=fHbehaE<~QQQzYiTvHfrdUmgRI}h)jO!HpF`t0(wr%hbtTklq zw7@zX7g|S5;Z`i2TC?8=a?VW+PQ`(p8DK`DZbT8RH}6b4vR-m5URleMgAv$M+TJ_% zx=Wz1k3H?lQWyIre4Iy49t~<7{f=?sw8fEqT3y@KC8z1CjTF>h7kmt5Yvvjl0veC} zPuglYt_YF8hu4{t6XYv6^SJ8d17g#H(|4;53rE9UCwf%!#SNILeeT zPile@Ynkx_&nE@mgYOiysIF2#yN0re<%zXO?kU-ce5dV!1pL~kNN)Xv%!+AZ9k+?^~Z2jfr22jg*Y z4{bKz?*VdPw~0q4R+~tG?E>?a%J!xkwA?FzGtn}CgbA^7DK987T#6K;T^UEgD5N03*Arh~s8>=%!~A#cbKBpdj`;eO)l4K8Xy7`mAU7XqAZzfO zHFzYNyT%*>T5DljjTn(J8{b}1+>pb9qs%tob%35yB-_XUJ$YoiA>$gp6L4ECJW1@v z-cOz*^MHG3yA3jG0Pf+OQzum|Y~%d!b76d_;FybKK$LAnGM1cmMkhkPTKHL2c1M5f zBi{#7JMwz8e(zIvN670~s-#}!qWEuHtJ_6f~W2|0o z1E}aX?#0R}vD^eZYO^6;kSeDfWWW(SZ9YWXFp88}1zOl@mVLK1&)hggsAA}7d_j7c z5TihrAvsFy1h_knz3$YOUaP|r2w^Ami-&)GvXGXeN6-2M{eq?uCyfl=Ni>Ty0e}Sb z=KQV>EY*w15jEGuUh|NB!!y)gQ=IGrYm7;U%L>>_<83~2H0H)@;#@^rB6kcurC93T zB>W!42T;V@k$78*dDrQbC%#PZEa0G$BlGCiM=wr$r+q8*SPOja*1Xt6^tyqJ{rMqeY4Te#OeDKt zHY~)Z-Dw%q@mU8WsYFYHoOJ>@C7W3VT9kDH-oaG`J#L}qB;ffl#|`Y`8sMIKDQ+^8 zjrlpW)bJlgW-OR!1K3dcknP_^GQIJ%gDFGlH8ka8pCxP7RR&AR0W#df*vg4`?A$(B?$m&C{#W zA}EqtT6bNZJCIXHendzed3aKbJ%<$k92}>-w07_-^j^DB0w=LUUV!cd9<=`}2bw{Y z(0|#cen~IN&w5m~gQ$T`hVvJTt@)KAQ9#dR8_eUvLgM#cp=PZymjDrE=B}-mc6^rE zuDFGL|EvHhL_{Rl_I(6Z-?!sRl$#T`-BdA`fJ3S=M7G)1%zElqPCtIgc%1w{>V z8JN$oY(+d`N84`XC5Hf?H~55=q5QhEKKPz^;?o5<5R|l$pfc*n0@pyh!cx)e5IKsT zZq%4wn*#~7vEyTeGsgDaee~VI?;D_ouhbQer?AF8ETVP64Y8vdvLU!=WMZi&iCeK7 zDEAVMxe1@)u!`9>-~?a??;@C6!+AP7JCs;FtX46j%`xvLJ{$jR{MO_Xti-lIuXY>q zcJll4iF_ijpA{`TxDKyHWE%M;WNTynDcli}>C64dS@ZJBK8P9!_oOi!ujy!xD6O`5 zs?3ZA;N?e z=0YI5foIwg59?&%K9FJCb_;%m-fK5X;3#%DPjkt>GHQ(uq!cMfv;x05S;;Z4j9!Ue ziEd_8;}kbU03rg`jaYOfIx;pgHYx@0qa(LsC7ZK6hjPrJK{kQYl=%jXP4k|}y)-`? zALDs)7SHGVyOWI!*`!*$g_S$5jvH;O4V(njurM365anI`yZYC-Jz2A{%7MhJH6l>L zTu{lfc5aPZqlIW1SYknj0dyLSmtPg{2gpDl@F(Ov%pgLyH~wIJZ~UngypQgUPZ$d+ z!{ZtH{OnOW1=0YfFjp@-lN^ZeMfajlaX!n0(L|OUut~=DdA%ETrq^bbKo~pt{qf5# z*<+*8k^Urc!e5wLA%F3i_=w~zV2d@xdy%7jw^JR;-V)qIN2uqYjgxnv)j$LP--;zL z<}#Gst}Yf8IULVKpI_N`i8o$z44AwTBV!e!Jd5YuovaquE38q7c03**JJp&)+@LPb z2Vcc*;J&<)g)^l`}{gaJsS?VAaetCu8d+9cLuA5fc?lL+lWqA(HdX^ zeCFjQl22m+ViY@rmw*5u0R?|&QeJKc7@<@sDJ^_YRBdJUVys2nJP`B^UgG<5sxD(n zI77Iqr-$7u0mV++QWxw{?*i;VBLqFFA?#=Gf&r+fp7_}8V>d+KHZz4N&%AM~g+D0TlG zxrMBB1$?mT(9Q|UAy&H;Er$MsS?Kq}6M-)Ry9!7su7VxN1E0a_TEV(DWC9|mUfRr% z0q{SH{L5qcqSc~egXfV=j$_BMq9bU_$diN%t4qgx)SE|)uP~6}9m!jqg^E>ofK!RX zA>RQ=#9hl4qY1!77SD|*_+Mb1o$5wuAqCAxCeOg71(Vrv^v3u+ya(CK%Pm{P1~F7K z@jWCVeTc{j^N8}yV*pa7hHzz`MLV^cFPn;DYeX<>(pbVVzo{qUL_7SbA z!|T;z(^c#&+04Gis#S=K(5L#o`aS&nnIv(s7o9MsF&;(C(2ny9?J?r0;^m}Xd=Ivp za*x!2ud`ig09imu+`|f3hmZhdfxo~{X+h8vp90?!J;KaEuiZmTw@ILb9eO*66@yu5 z1q~eWX4Hn?uAnc6B?KLYRs{HGOiLn@9Lv{!rjbs!4pDJXVo zTrm+0Xka`DI!}~Tmn~}jQ~D+HEbJXb&wcKN#^VSvh0F+({IoZ|Z1Oo3U7Wo-VbHVL za_9|-1Oz+8++qP)b?|$dn2n^ogOwP1)>@ZJ;7sf=L!WvBouT&7UfXx6!(*dqD~u4v z2-v@0iE^%huPYtwK+DJ=(AjDlHWsa{NS14Nte1wedOe+oL&PwvfIajIX5h5PbFRnC zsMvL3-brJR97ZHKFNhk-ma1pQzl@!8UD3rNqZj{qB$fg${5J6pf}Lo?Vg5A>qR!x) zo$KnS2y#k0!euG}NFRU=F6O@Ld7C$yN?W{^mk`(%HN-(71TI-^mQPCR*06vsl?)k1d@n;H7__#~|G*?15=^RI{1qm~@TvV&4BUWL6UeCNlg*DJL3 z#zspvk>DezjU6I~1)6+)-;JgEQ;gL~O=-<`h4Bu?*gN(k>(-0#Q{c@{B;CUIsEHn< zv>{_!Y%L49xh~h{)#)3RlZ>SePAxM304;&%mwABr8qopSp{~kLq=8<+$kLum8_YVT zCs_CU+-}mDURzZHeSKBkd%5eU1>_3=9c&-|0y|@ZoehkB!uLXZHt=nO_S&VvcqF^Q)`+dfYa&Ae z5+ZgeB_fE(WFFDZ^=h8+v!~ITRP^*m{v`2aoPp~#P#nD=FSYWgD`tt6Rz>8pqywRUzrod<8vYHdMQc(r$ z)ExNiBli$tV_&a&8}hDsjM@$6p+Alsf`ZHFH1c``b5UYSJZ;g%CFj@Z!IdF)fI7ZE zL~QIR@9bV?4uNA*TLbJ+p97r^BZqZ(js1C!-{2iS`!<_fg?5uo7BTkI%Irn|Uump|dJsn@OzpwsDHwLf*d?Oy&)Mnifg7r z=MGhgJ!%B9_qRJF5MYN)KwAX7qj5I)JJ4J~$RQ%dV_*ntwBbPWeAH0G=p`@$z!4a( zlXi9)NbO#Jav8oy5_35d%?vWBC4N?jQnw|`3*#u87}XTps&kL(HuQc4z7|J7)iYYJ zJW0?>tVwIgI=-GNc4$#S_o2t3LNqcbjwlMS)0(d%GL4l&Xon$wOiyINWb|FGiKBuV z*c8EU>GzFfA4*H^v|V9r4$%RFJOm#{SP(4|>>b6B!PKz!0n2lv2%yuPQBMx zUjiqwtyu8WItL})(>zoGv7*lF8r#18Mag!KnS%iB80J>~+P=E`s#^eARF!8BaS zT6qT^8W@ep!RSt2Bg-w=iyMdmP_My9*!^v>jhx`uR1Z=68b-a<|DS*lLxv7xhX|6G zfjkNF$8!USMj)Rj$$7H4uV9CW46faK?H&pA^?CT^*uMt6qu7Z_oDI4QtT-kk%k(!2 z$Tllu{wElTh2LH;3GZByv44*LKfln&zcR`!Qu^epU1j2h@Tlu;d8Wy}v_85_M3ld(}BJ34kL**4IH>WKpVz%l;iEbJ?Y4_v|6 z>Pm5c9=X^+5A#-tmQCc!P;XUd70K+y$va+QOt4Gr@N+E17HQrPV-K>byT2oX$JIq; zC3v5^6zBAGP^#E#KHwcVHz4x!C1b`jP@DK4$Mg1M& z9cUf-VfXR?_MN_$px!Hbu8v1?>J0_?0%N0CE85pm-%_HT0?qe1N}_FPi(JEq14r^T zAE#u|+ezer9Gp*m0u$nUWgcGPu-XuR3;vGOIlQjfHlHE3N6upOfjM#!?BFxZHLZyr zSwCbQKGadWO|haeYQ@gB*ln#0wSOil`86`Pv&}l-vLgj33QKGoJhPBOgf7~2h-~5= zHlOg%hRC2^Y-Q5O^pOZSGDtbwj;w_Kq+=5vy+`j;7f9eJcIxOw!~PC`d-k4c#WSZ9 zK0CC3Yy|p`5gTgeN=dz;B^$agXpz5o$Fn#J2@pGy9{}DN&dT0BK6_Pnk3{cNt+tb&O3`=I_2rKBwS@cKH&!`VW-wz3ZK11n5yEgsuVj7gMFu|qto_AyS)W6Vn9 zImC_>Y9jZIL*{~dRJUS_;)?<4f}T*E4ejEc5kn}5rcb$uM&J&<%~pLb@2FImIgL0Q z=E_Ap_9g4M3&u;0y(lAUPh&I5mP@~kcjq(nEWu3>Bj_QgOC=D-4u91!cId;S2y!rL z;`=?ES4Mw<^I{Yw90B6krD`(!@gwMgzG7zqiE{%bDbACDhB3+n4IM}lhhwAn5}XxB z^k@MKqDMEdyC|+TYF7~etWH1D&6(NdWkhuDKZ zpPNrCEY6ns_8R&1Hh)5cCx`bZx+GT!2&hcR4g^q9<#Q*A-6NuKj* zsHw3O*P3BI4dw9mDw|x4OcA;Wrwnn zTnjsl@T!g($qjKGsw|n1`o7260nq+{9l$%MX?WY)p^SDaHOVWONx~u%>|ov~X6azQ zHFBx7AEDQXYl<`#IVbJ4X^c+wN;gSBuoH?FoWu?_S+PUz*??v-yN%=en0Mw!2R48b zt^z4GHK%OvUS{u41Vl%66IgYSAjSp}CmhhE;DBA@rf{CDLZu zPFwv+wYP|>wB;6Vz%weqL&2;8Mx>>9`OS=?fHQgSO~z9t>`#q#swQ>L0_T+~a?ozX zBGM-D$HH+XdOU^bRlL6uV?H)K9?lmXcM*LjN2q0W3VJlg282Q$kOpU1Glvv2sU<$W zQ{8f&#)uu6mw+0SSkMzulGo_z1fHGrvfZRHy|xAt2(UwshcVYMcBHTLk)!cgVn=z0 z*ctHW$FUwURV~C*T(yS!&VF70@*UT>NnZN9PgS)FrlPhuVR$~Gd-7;nLS9P>Y2 zWKFG0^zhx-$W_Tl#rlUb-?NO2iVZ*3M*NV?gni^MUZeF5%u%dRg&!xK=JL zC`PY*tq|{>8Cn>h&tZ)ka70I!X^lCifm|=Q;6lIXNiUdKQP(M%*wG5e!Kwk+=P;hS zEtZt(KL6f`Ii{>7fErl05GzQnIz!ogw~76D8z@*?4fs32?u@$$Wg4EP_r8}vB%HIR zD;WESwyqbk5`%RW*I-dwk5}Y>tg;~UBfu9jhZ_4SfA_9ofu~gM#lDp=ZPo#y8=`Y-Y+9OC!Tob79-T@8JqloH4dhSukgk zvs?m9)68r-n+{jPUBJq?vKBj5 zlU~N!o?FBc*2_(saqJ7SWH-T1^h0(y?~|=Bps-~UonSX=OeBP0`3!>Rr2L!d7 zPCZ~VpeMkNA1Cxjsd}GYbqN4FIvzrs4I0+wouu}n0r#Mn71lxTTDphPQLa_!VYVf8 ztKBz?W90J&ZFC%M;wkzJPcYM0FhRx#TGk8uA2{*QRH z%3AI|)*mFg8dyDgfx8)`Wbd{lccGd{a&7h+FvPRD>kif)z?0yfiB$pyt+HL?>6dIdM9zDpeFQLl%b#V2IZJ_LXHe6ZH4`8cdR`bd#k)+SbXoU`FD z5<12F9xd!IAQ2r2iVntyy$*I@r}WU$l@jRdGvKp})pi^^_~qp{ms$7J7V5@!g}G!` zu-a!DR!XQ>h6hcpWf3$T)i^|-u`e62Nn~w+neN4QVJR&Zn$CT|PE`Kc#29uC!OAykg`zciXeM&pINk$1 zQR`ueF~V>~Mx!vYgBb`!&bG{1U~Uf45T7!#9LenPY6v-Eoq4$cIb7k8SC*^e9NKZb z2Cg7nM7c5guw9uJ3-26ejk0C1+8}xOI$fzby;g^?gWt2mJ6u_YdGq>r8@(xg2YU7D zQ{0L%kH%-5kS{G-AqY|&37g@%iG0lw9~sD^^~9B?H!2ZtCdF~Z!8q{)7Gc4TY-Qc+ zL;j|@!!9^x5U9ByyEpz-^mg>C=x;`UGx}BZ>*)RQ`>=tOgVIT^n!b!37MfUbU3vuc z>4-@<7IcMY(xuDQTFIk8}`;jS~IY4{_I>0_uiXbWMS@XI}P9(QTzZ-X1Fa0cw zb*12UESrPz2T>I0AiV|_*`JN}nBawo*^L1q<6i+aM9haHAC7!9^4`VwE`E6Nqmj=? zzXFEtkAs77zTgiwTm$wSb91J%k=X{AY|GX?==J_p-``2$79J2W;26P-Am+o1zli)I z@|G07{vtyB{ANV(BM2OvDr27=MUIyp_L^7;dM34O%3eRPjnumfY_@H|L>;Ta)l0tv zi;_X;0ktw@j&odn9o`97q+WwRwPw{28CeLsf%v;12qP_9h^;XWr??44 zuqnlQLDxSZdv(s_`qkHfHkF0Q=ZNIOQtZ8d)g|C#ryXmn7i%`M_A%H5fl#v1$|Dju#mRvBGq&7;OP&=QxVR5uB=%fT@=n4`CN*i zXOuP^^TWVM#Ex&D5jj6U|Hgon^FJB*3E%Pa`L`nPfqT9hz3(IEATum2Imm1w;xMCo z^hzwE2K;Pcci@Qk1UqEiitWod4!snwuw=ucgibS}uu_a*mpP90uGu&rJMaiQ1@ZEiA8cOV(WF|j|elF>(D z>AC#!K|D&lXL`bZoXPJo`P&0I;?V@Q+Uc^SjuJbo4tjOX-vaxjFa+kNp%xR)rSbPMos zScsjs5d#MjiAONTvU!m4sQtxlAVahtPgBPprRtGsE-7+EbKoO9F?dKMz*iQLMSvQy zLMaJYt@QUg9v|@oOft&AK0?n{Y-+E=`hwve<8-YA$U9^V<&Wv0-;}-;-7XJYDox`DJ#(IEQ^Y9*loA%EtrKc9u@SjJ#J;4lnpLP%AqeuK7UxFgXpx1dmTfgcW(`#QKfdD(A z>!R(nJObTrzxrGw)`@Rx7|+FxTu;2H7S{Uo(IUNj)0MG)S~$p8Lr2AX+WV)3Mu#97NeJz6bQ6aJ1**=kR-;#@+_+ ztRXJ&F?QOOm;;dW^(aSMw(M!I4%VR^s!T{dmbf*%ytwIO2dJqb>$J@iik0B6NT+Rc zAwI%q4HspgQ=}-CozG84&Iq5~d*3Y*2xCXutjO^HB2Fd|IB1I6^FD4~?CC@+^NkF4 zt5T*xUgtoHy|47V=%16BeS7MQ)Pa3LaI=_Q#EKo$-nY&d=KB~^xsRxU z`aHDS)MER|`JW4R7^fzFK2qBa{3SU);G75JM9pu7)h4FCFo!*`4pz_6xp%aj0>5^Nz@IbyMG0!LM3m`(dy2lU{0y*Qlx{pjyU-j07^e(QK1aU-@) zZZ3Oa_M!E0^4t`$Lw|?SfnZenDFX;1h_UZV)k5-by={X>0B@gc$Ue;W0 zdiJ5c4BP9$II%--N0IYyKm9l0N6-VyP3^W1;rTGj;B#=zR}%Mz6$d+x_S*Z#fsOcD zejT}}WWg|U1m)n@2r`9uPhw{X@4-5v_d#2GuRRHbCD7LwnGH(#_*w6RxPjGtogcN8ZR|K^YhL^ENEY))B{mi44mDDH{W)3X zW5Imi7*1bB=A!L4fWeFohvCvf_KnXjOWryQ|v(NgWA2U`E(TIb~7$Si9rCdfN2;hjaS%u%+*T7o_XXYoqIv-AwS+%@E~M7-r>%bv?#gWa~6 zn?tN%4S0GQ`K4Ub)$nnvD%pGZ^wgYWt z+#f6&d02wi<8laO7Jdz$FE~@r4dfQo)T@TS3%=>SzWNgA>pS`@ z|5%>{JED&lPRh<&@{AYi=5%VBKBq~9~=T}UHRfEcxUJDSmk z7#kx6iX5;GvE!rXe1IJ?kNP=84*VRAtodFJIYjRtyz2euFjE{E5Wr3qu>$%#Y%8tH zqqRG2@4b7SCGfJa!+w2Ouv5ay13E&uWN&5!J7WJFl{#w=Ga`<-!L`CcX3hK}_0Xcd zHi;Kz9% z83l;GwexW}F6w7e`}x#l94UUJjbl7M3`?3YRH%4P~O?Syg zRu0;_>f4tWvyMaiX%ijNov7=h7_7n4UxU$SaW+wU7==k}c4*V2z z-NNM;f*N2(?KH_AI0rioIcvxr*k-OLcSv|HTJ=|#mI`*tW9 zefr*c|KJk%8?n>T`=fGd_vqAF`Vsv}H@`n$V+7c@p>#BzI{dA~PWNqt_vjaH)7|9Gzbz9?N#8R8g zujK50K~I2`;FY>PEm3WbNN#3gW(@1&BDz4k3rOOByoVi!m~+X<4{=Qatj1Zz&Ip{R zrdiL#2@C5+vNeZSS#_{FujB$L=LL7{ylU3!B6g`?#TgtQ<<7riS^m%y_P&2@CGe85 zBRw|JLwl${_204UA^rDhv7{LN0%Cv^$xkLWur|OdX2-=+j=7mhP~#%%v&_BC=BfJ)#iT%YSMwq?Rwe1bnLXzGl$tbT%U$(9C8eWS{xLtLFhFxqT*Qp)p9Ih z8y_`-9r{dU6L3k(O#@jCtT-r4!df`m1U?)@m9g?WYYKn)=g2$=?z51_&OB+WY&Wph zHBbo#3+}G=pqsy&xHZZ7;63E@knS{fn&ogucCSZ_=?C1zRi{@PC*CleXfp ztKwz}m}z8&;CB!e#6VDpAJ}>Dn$lp9vP}z&oTY`#Mc)Y47T9VZt5M?$oMEOYBIZz# zjfy(FA9uHkrD7&A+Q{s?i9A=NUMVd(w_+}`am23Ucxc!6i@hg!xf1wWu=CJ4y&TB# zpxszc5G9CY4Izf*YDP0gQCjoZ=Ky;h$f{O83#qOvZWJ}NqDgo#(M{0tjP_tob2Br5wG9^~CWg2H%3O}D;Q0)pdfxfF zkGZBXSX)i(>oK?jSp2!(+dvqKw*wtgT-{hZF#`5PX8nwR;xdvvDP zQkB5jymPvQ!q|BzYjB>dceD;aZTU#UNDj1{<2`X;LL*<$-?rBd%)l#Yxm+K_vHG$1 zF8mSlk)Xz(xd4sUYwDf#Zlcu^5$7G$f@@)P?1e>7NEnXTk-H9I)&Zh$ zN#r{S=O8NW<3+C;z7Ox#IePTj&pIBKO}I|@eYj5VeK$$qWn(8S3)OGcZ4a?ydhLvT zv6SR5-r)$xG;2owM8B`Q6W|)2VUv-2pVN zgCEAu7z1czmK@HCTS8gQY-XC+y;}WzL)gZj10ZJ-A-wC+>+)037QF*A6__