From a2b2ad0af518bf657b42672dbcbec6f5a81c330d Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 17 Mar 2010 20:37:58 +1300 Subject: [PATCH] 3D buttons (still needs a little work) --- OpenRA.Game/Chrome.cs | 11 ++++++ OpenRA.Game/Chrome/ButtonWidget.cs | 36 +++++++++++++++++- OpenRA.Game/Chrome/Widget.cs | 4 +- .../Traits/Player/SpawnDefaultUnits.cs | 32 ---------------- artsrc/cnc/dialog3.xcf | Bin 0 -> 86431 bytes mods/cnc/chrome.xml | 11 ++++++ mods/cnc/dialog3.png | Bin 0 -> 6539 bytes mods/ra/chrome.xml | 11 ++++++ 8 files changed, 69 insertions(+), 36 deletions(-) delete mode 100644 OpenRA.Game/Traits/Player/SpawnDefaultUnits.cs create mode 100644 artsrc/cnc/dialog3.xcf create mode 100644 mods/cnc/dialog3.png diff --git a/OpenRA.Game/Chrome.cs b/OpenRA.Game/Chrome.cs index 1c7aa1d6aa79..ee41bd170564 100644 --- a/OpenRA.Game/Chrome.cs +++ b/OpenRA.Game/Chrome.cs @@ -136,6 +136,8 @@ public Chrome(Renderer r, Manifest m) } public Widget rootWidget; + public Widget selectedWidget; + List visibleTabs = new List(); public void Tick(World world) @@ -1045,6 +1047,12 @@ void HandleBuildPalette( World world, string item, bool isLmb ) int2 lastMousePos; public bool HandleInput(World world, MouseInput mi) { + if (selectedWidget != null) + { + selectedWidget.HandleInput(mi); + return true; + } + if (rootWidget.HandleInput(mi)) return true; @@ -1065,6 +1073,9 @@ public bool HandleInput(World world, MouseInput mi) public bool HitTest(int2 mousePos) { + if (selectedWidget != null) + return true; + return rootWidget.GetEventBounds().Contains(mousePos.X, mousePos.Y) || buttons.Any(a => a.First.Contains(mousePos.ToPoint())); } diff --git a/OpenRA.Game/Chrome/ButtonWidget.cs b/OpenRA.Game/Chrome/ButtonWidget.cs index 7306e4b024c7..b77edc9c752d 100644 --- a/OpenRA.Game/Chrome/ButtonWidget.cs +++ b/OpenRA.Game/Chrome/ButtonWidget.cs @@ -7,6 +7,37 @@ namespace OpenRA.Widgets class ButtonWidget : Widget { public readonly string Text = ""; + public bool Depressed = false; + public int VisualHeight = 1; + public override bool HandleInput(MouseInput mi) + { + if (Game.chrome.selectedWidget == this) + Depressed = (GetEventBounds().Contains(mi.Location.X,mi.Location.Y)) ? true : false; + + // Relinquish focus + if (Game.chrome.selectedWidget == this && mi.Event == MouseInputEvent.Up) + { + Game.chrome.selectedWidget = null; + Depressed = false; + } + + // Are we able to handle this event? + if (!Visible || !GetEventBounds().Contains(mi.Location.X,mi.Location.Y)) + return base.HandleInput(mi); + + // Give button focus only while the mouse is down + // This is a bit of a hack: it will become cleaner soonish + // It will also steal events from any potential children + // We also want to play a click sound + if (mi.Event == MouseInputEvent.Down) + { + Game.chrome.selectedWidget = this; + Depressed = true; + return true; + } + + return base.HandleInput(mi); + } public override void Draw() { @@ -16,7 +47,8 @@ public override void Draw() return; } - string collection = "dialog2"; + string collection = (Depressed) ? "dialog3" : "dialog2"; + int2 stateOffset = (Depressed) ? new int2(VisualHeight,VisualHeight) : new int2(0,0); Game.chrome.renderer.Device.EnableScissor(Bounds.Left, Bounds.Top, Bounds.Width, Bounds.Height); string[] images = { "border-t", "border-b", "border-l", "border-r", "corner-tl", "corner-tr", "corner-bl", "corner-br", "background" }; @@ -45,7 +77,7 @@ public override void Draw() Game.chrome.rgbaRenderer.DrawSprite(ss[7], new float2(Bounds.Right - ss[7].size.X, Bounds.Bottom - ss[7].size.Y), "chrome"); Game.chrome.rgbaRenderer.Flush(); - Game.chrome.renderer.BoldFont.DrawText(Game.chrome.rgbaRenderer, Text, new int2(Bounds.X+Bounds.Width/2, Bounds.Y+Bounds.Height/2) - new int2(Game.chrome.renderer.BoldFont.Measure(Text).X / 2, Game.chrome.renderer.BoldFont.Measure(Text).Y/2), Color.White); + Game.chrome.renderer.BoldFont.DrawText(Game.chrome.rgbaRenderer, Text, new int2(Bounds.X+Bounds.Width/2, Bounds.Y+Bounds.Height/2) - new int2(Game.chrome.renderer.BoldFont.Measure(Text).X / 2, Game.chrome.renderer.BoldFont.Measure(Text).Y/2) + stateOffset, Color.White); Game.chrome.renderer.Device.DisableScissor(); diff --git a/OpenRA.Game/Chrome/Widget.cs b/OpenRA.Game/Chrome/Widget.cs index d77c56d8c608..23e9c6308042 100644 --- a/OpenRA.Game/Chrome/Widget.cs +++ b/OpenRA.Game/Chrome/Widget.cs @@ -87,9 +87,9 @@ public virtual bool HandleInput(MouseInput mi) // Mousedown // todo: route the other events too! - if (InputHandler.Value != null && mi.Event == MouseInputEvent.Down) + if (InputHandler.Value != null && mi.Event == MouseInputEvent.Up) return InputHandler.Value.OnClick(this, mi); - + return false; } diff --git a/OpenRA.Game/Traits/Player/SpawnDefaultUnits.cs b/OpenRA.Game/Traits/Player/SpawnDefaultUnits.cs deleted file mode 100644 index 49fc746da38d..000000000000 --- a/OpenRA.Game/Traits/Player/SpawnDefaultUnits.cs +++ /dev/null @@ -1,32 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford. - * This file is part of OpenRA. - * - * OpenRA is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * OpenRA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with OpenRA. If not, see . - */ -#endregion - -namespace OpenRA.Traits -{ - class SpawnDefaultUnitsInfo : StatelessTraitInfo { } - - class SpawnDefaultUnits : IOnGameStart - { - public void GameStarted(Player p, int2 sp) - { - p.World.CreateActor("mcv", sp, p); - } - } -} diff --git a/artsrc/cnc/dialog3.xcf b/artsrc/cnc/dialog3.xcf new file mode 100644 index 0000000000000000000000000000000000000000..5218c267ffcaaac6e8705a1d3482d10df11106f8 GIT binary patch literal 86431 zcmeIb%a3f?b*C4RnfGSatruSL^Zl0F3rRjk*2<$dH$f8THI zbK*p1WM;%AMN(4V%o};)oW1vY?6vn^d#$zC`PwUg{BNfJ_RC+Le)W|<`pSrZueJYP ze~|yl=Uc${+svtE#zz{kPxxH(&blD_{TG^dEGvxcTok-E8+h_a|R} z<=fL&zW(KZ{grQ7{~KTZ>bJh~?H)mEU%XX!)~m{g_HX=ubXV}@|K<9B<-e?b_7A@F z<^Sqy-~7g(d_8R2YsGHz*KRuF|53ZP_%rRAKcicN>t_eo&ke4hA6(nzM`veezsq0$ z9r9lo{_Dh|gU_wKuja`LUCQqLx1;gD{IB`{-|_!{T7SOxKGO5vX!OzlVKn;m|2-Q0 zr~hFzdgXr~jlTUc{{JTb|M6(_-~X4R(SP{bX!L*nXf*nZKN*ep{+H4CSN{EI{9FI? zX#Dx#=l_2(8ZY?!`+qtbFTXb$|H1z@8voPVNan8!>(ytLql2^4@1A{k{N2;nMrXhK z^S@q<7Z0Yh*@B;g+51Z`7PHB0Hs#NF_GB^J_v2u8e?cMtpY1oK@4Pm$R{ieHPM3?> z-t5VAc4PKrQdMuv9xS*!oAPzM7|%M=AEoAa@ni<{$2LoyfV1{vTcthzv?4SLD$^b^ ztSbO}vy(!r;d*2CKHrx#*lr7TZ$V?z72ZM@z-`D*QOnZaN!XCfy~U5a7N&XXw>9u^ zWeQhp{~^z&q1ZdY_0fWs0r3D)BV}ove;USrF2l6YVR#Wnow-3M;+SJ+(Ti@-xE3~Wo&G3_72x+g~q4|@drKV zlh;O;t;d{qNn=%O;YKLkUN9Jq0>GX&+M&U)=nY% zVDXU0i!g=I<}PSj;E$IpRJa&z~&j`+gkE?=L9if4eS7JIPSIe)r}~GV{Iplj;1% z{K=%M-k3Yd&=y~jojH?CYC6p40Dj`fW1FQ;z*+mTtqpbVFNX-^5d?BX`cG6C!C&>D^s{4RS$VK z4aMFGu8$V942TD?Qe0M~TX!ro!Eur&Hu1)^Sneb<&m;qC?dd6h_j}e=ee3M;pGju! zBtsECm+8jk5&-WlLz+58Cek``VMoFN$cE}ggKLpe<)_Z*;~Choe0P`iHQy_1ZB#2p*uvnQY=j!9d_AFOAO z8Bi$#TfJPzEvL+FHl+OBK@JPKOgTQaHxCx@r zIsqLDe0U8YI5cve@9!&c;0yfr2!^-{^05x}^AVO;Z~obtE7Plce|GkGHkoDxJ#nF{ z74#v?DywI7Cf3K&__DHc@07)EtTtt7zTa=__Y@u`E3hEO9K4Iw|Pou&{@kOthu*AC{FL}h20@P9)8J~hodv_=5c)$o| zk9ZKhWcnk%FI>)jD(L#7%0)Y>PB&@XG9dNXk{~%{Rv zi7Env_>^U$L0L-qEp`11QbOh_YSgqi!)(wY6Cf%bYA{r{5Ui7nk0&&ZHbM(FOFI@R zTG=UpyY#)An|#1ZN~Yr|GzG9t1QD8phj8?SA{G^lYMRPCkHYobldz;CCB&}3=Y?Dq z>&EH_@YIzu3T|44ZtsE(A!F)I8e%8u#ch`0aO3X zhKH5u6f)qL9W0@ZUWMPUYKqVf{0KVQbeJDX5ub^5rV-)^CFpqSz)@}kO{^S4)o!}r zwl$<*PBRc_j=yU3Z5)gj&&((UWV8kfN^lxN&_g!;mOG|%;pnEmzoPFle^46fc>b5@05FJ8s0bRArIg=n zOWl*!0vROHUmV?VgVEg~1OH3YQgxuZg_LtEqK14lQoR5%~omfD&m zq%kX?%u+$}I*pCdUAhjV8;!_rVRTdQEz7BM^U2?0z|HwRFXXE1j`EMhfnginl(RB) zix*|n0b)v7iN4J}R4TyON>JO6)WJrzDtXC6O8E=+(a<7bDt_5%)ad5=#159wMz6x} zS6Kk<>CTAgqcA^|B0h{&IwV3ovBRfo?QoRaKocv+P_>&baCAd)8gU@d95qy>+c;o! z&mG;+D`n}LG=!js>|nv2(Yzbor?3Y-VzP*?5H*I6Xbmp><4N?7kElaLP5B77P=ulx zEEh-Kk1B@dq7D;%;UkMjE>);hj}V24rCR%FPm=@w=gx<{eY9X$F{f6|TZ?5E$T%N%l!jkP%XIR14S(eP0-?kOUmU@u2#)`s>dg-0Bu$GMW5|A0)ELR1AK3B zyU+?jmKaaaJ{$b!(6ydzb;6~arALJuJe+*eqI|Qpy@@;zUU}Zgp+FkERmjtVoQU=r z{WR?!b^P&JSo15kjIK9HFFf1pX1_mray~>a|9nX$j1ywnf``cRAcc#7VUML1|YbX64`3vslFyC``l;P!R8aOa!JmA5b&aq)FydX zERQW~Q?I+U+k(ZZhDKaO9Z~c_p16jy)t}w9#OydUHhmKtt~iCxXhmqtRu|lR+zk?_ z6xM=Es*(>%Q=v_&Qg)(-y_8I~7Qa1~y9a4#acni!ic`?KsTEdL&vs5}hczLZRT>I* z`{mF3jAx9s8GNI3bTpcdidMR)cI+uYEjXUujBfNih~{>%u%Re} z5~&*X@Hj+_XLp$Us|Qm3E=1%fP*u!M_)3xLKrtwV3+8wgw#oyxAT(oDyS2(a(o_ok z@$>=QF8(5tvA&}OLMIPn0bC4JIr(@amTYF5#-p|cx_t}?6>*?69Sue=K_vQH({NvR z<00);OwRjFU`loCoc)rp$=*Z@>v;Ay6sOtfjo~tQhZH;ReZ?XKg2U9YA|VQ?h^RUG z_s*n-A0?XX+U1r6x7qREu?Z;)vlEi)153FR5{vuo(qUNF>1tPaKK*Gr0X9A>%#Y_s zY5;1>L}04AjQ`_Yo3@s$4IgoKVGSfM;r5%2=tA&Spk zbWtXx+&!AVNjb{$$%Ld9k^dmzMIl+5Da{;P)}~$uJAQz|2h~vGi>MRfFDQdvDviH#CXnxG>31Lj#^36 z(JI|Xu-oxAKrP6G6m{QeNthE7GBchtAyu>XX$BE` zGL-T~KE1D4$Rp}=!B~+Hg;Wl!?D{tol9%o(+W=D;FU#lOtqJML@gkaHwEXCvX!*w) zJtvFk`%zBwb#H-wgR;-m6qWb6(nOhTqhlw{qeACbeM)sP*Lj%|JT{k@fSu%$4^Eq?s}$GjbHh-yNwM)GrF*vgs|CMHFZ?q}F3=(O-US8%^*SC4{OEM@=a?@vqpR9;s4Y z5=VfUDD@tXD11!_!J9p~9ZB2(<|!~^GTR}1V7v%lv2uc=+GEsLG_mU=2Z*BpD4k+g z7!BdyOTq?juZ0cBiej%y+4dm=H)lu34@Tlx{eMZU00#0fW*93FDTn~c=^erZWYB%( zApE&HLf}pxArRL5fc^jxWD$UTTpJv4LMh>NY~918&thjQs_11@rvUtOLRt$8P)w_y z!b^Ds@3MdZ)CzczokHMII#RGrB!K(69>p?FOB`4&4HSr!H$;~piiLqLzC!_~#tcA^ ztkFo7){m`{Ar>{FF_{|j!BE12%soFB%NkktMr!xqA4$a)FQIZ5XnTwMg$uV9^(&+zg{ilhSQ==fx`6j(N$Abp^L-;NYPI2>AGD^)Vo8|#jk zt3p`7^+tKr{xq$XsCLhpIU^sf#~)U=u(yKfpePW<3ms6dLItqlk=sbOsS1nJ8}5!%|0q)O z78Gx7b{NI9rF8&u5S#(V8wyY zv9jY2NZHN&b}@J*B;H~A!QEK10|b`Xc-yY6u8FMzhUroBUYJ-7GPM9Q^#V2Q2#YY3 zEh(F7;a^QH%psGvy$_Douqr>szd3BD2tN!Y=g@iq@jSL$8A+ zxGVXkF?B>^8R?b{2U=hRNuuLii9>f|Nf-d@t_W<^Z!6_s(@9rC0=co33fg9pha+17 z;cYcg$HT$_z@QP-N#S9)!o*88&{J5b(6ugLC8V9DphLsCFxEH14w;^(#hjHw$aJ}b z63QOPp1%vFLQ|$)A-7RNBNl3fg{GCZRze$tYt#!=E}ujw!NP_%#jPIJZ2M@WOjjW| zth~wWXdPUR7q2(Qt!tqf7p!Co><(J!K3b?W+UC_d==-P%6tXB+a5dxpO^5oFTh}Y0 zgt-a@ohy*RR_= ztS1;u{KKcls`9D!x40h((#lf57`T=iU$6mP7SpNwm|BlVR6&3CW7~Mn$C!4giXJ4m zM8=h+F6Ny}BRSc8q@F{QT2}^fzS)!8k;IMkNh52A0M6Rx!L;3DH;H5g=#vqZ8C@}+ z+Bq8oH*c>6Zpw;cucof;gEnu@v(1BAt!4U@PcS3e@ezzJT9ZhLFlHF7*|vF@+dTi!j8eKGJoALd!s*z`HjnS%D}BcMUJ;n7 zm{vW7m-4XYvXD&2STo@U9;H?K>5J=QF}0TWC{~n$hEvd98mbv7Z-{DWWt&H{cPN0; z-r405dz%}iy`EklV=0`B?AHZPU$xy_?GY|(s8fO9n^G`4xwFt?a+ zz2+{vuXIAm9B3pMdpdtMA-c*gO@s&vv&|FeWZuAqEj*8j+ijk9^)kK(NVwhNyoZ3$ z#Q@%dQnV%OSily|94w}7LfOZHE`cExM%6YCU@_&>O9w`J*pVU#hiO!jSd(coR_t_k zZSx?EorqwXecWxHO}ou2p9IG0#_iVQZ1Z@|P5m;dD}=VqGXjN&Gy#t^&a+{QusFSO zIfyuNn-?T`ZrnG3B4YfhZQfi3;s+z!i(^NsrBiNGJ|MiMDV%s99YQ=s`wLL&o{Xqi z1s(c>NTc*YF$LnpkZqnNn;ku~)XhyXMse13j;41+#NTZ500z)(^JJMwg}Ehm4J7ru z03#-T`vj+g_3n?P9{lOStwM{+DFew=t~qr=Y#9VE6onT0b6HO0LO8 zDG}%ReJ+V6LUhK69BYmxabCdgtK*37Rd2u~09J<}ErU=w=GSmOLUu8ND2TGnlg$Gk zj(lo7cAFPUl^}|gyamNunPqf_Gf$=!(jKC`Js_+^H@?|nc?D&3&;gfHMK$R9ak zkr=-+#32n-M2u}7e{0fZ3bZdW(5=MQ%Xx*SsNoEM05%Qf+!Yg9N~Lalyo?!0w=h);6!$bM-l)_fZo{>fmK<^T6^=hdQFag%Zj^qX^t^ zo5u|Y7{YX|7OE;KZ!C=DG0@>`wt3#mk1X4ug08lC6*rhz!&NxttvIC4AFX+|?k?(2 z4%7TnUB_4Y8+Co|_{`0^+c|REX%cj#Iydt|Jx-+Qew~u>SvxS(Ag)fzJV)`=)!7P0ug<}|ST_j1T(ZJ5WR~R{NAaJ)l>lpO zh!Z%ch2lhRfttz?2<3Fo4SdMZWSp$3b{-Jyx?IEyF6xhQ8!SG<3~vbQ1et23ZV??C zCv}|ljmQr!PMC02Z7b9^oE6?FR`TEw3h7MG9`Rux1w#5auJO=uSf~WRFkUy+Q-Y7B zk-%w4J_PqX3ebc~?;ct$E@vn2R1rKEHjZy zrgG4ZVC)m2U^CJmmIkfoL6(MTra9j`^o%p6G`+(F#xW{X54mYMdnqF!xOcL~<|gPR zvS1j>D+rqTs6r7|U5w`Kdp9_32#J{0w*+rg&scB_4=-C$l|EXeDBE^5Tt|`}I zvOnHI1CI!Qnn=T~quPi?Mi^*S9RXT0PX=T}FC#f(byRmFXAwaV9US=kKs^p4E>2tx zVtAEFpmkbsTFqMr)kwJA&0DQ1L*7$`d^i9*frYi_r!KNsy;|(;WG_ff1W?G+GOFDgO;R zore_0?x|sUS!Uva)AZWYc{!67FQ$|~)d9V-#P4uG&vS?IgyObHym+`ykTLk%Nk6j_ zdKj$nCNV)yVIec-t|#;iXZX3E(36ilpU}e(ua_O-n}A<>Ywc1@~(Z%ty{l|3)5QW%Fc<)&}r@!Vg9gaW`&hraOSG+vtZ{r9&I#=a0wnbwRZ>$Oh&Od8`|`i zt)^RO+1vKb0nTiBDQ8;c%HGrY?M1S3woKuVVp6@5qrxFaB;g-|1kY^I?&z`t*(0>; zAA&$A+m$N11VAgvLdAc~`nLf(-R%t`+NTMRa0l~{71UN zDj6FIIhfsZ+Jd<$h+f!qYz+3d%K+Nw)ZtYcSJCdt| z1uL%rR9$V?h-^Mi3YOpDl69O@7~DA9i)-9WXWgj7IAR8X9Gvp7k6m^`y`@}X&+j0Hl&sN;V$VZ;l22yDg4dTfM2BH4`*|vAA;^(dM3&cjMT>``t8cI_i9+h%zW)U@%C0Gmn`wj(#fEo!Gf&@u+|H9)Z z>WB9-Tmq+cf3g@w7%YSqDWPD1#Dg-ayj zlrRc$1p;c%5!p%MPnO;yQhf&$VGI~jjZr9rppH6yDb#Uct;P9x6a$Q)nJWx4q2D$(#mwg+hSt~7=F zxw#?D#a-)wXDyyTkrtiF^WHK7rxr8bIn%|&N!M{?J=r0g?Bg zO{xk!&HDLTRK?bLDq0`_!xMy&;Wd|Yxme@Pnm#UZ^0+MHlzlFLJO`L41>K|xLqWv2 zyy3~fuz*hs;ESYQv6Gtn<V<_w@znf zJa&O4%rU_*erP<)L~&X1W`a`a+c?eAR}zIU4mirJF35Oea|_Lxr*XemCXf?(#Xh(5 zMCTFpgNrTUI`v1Nc38?xhXd;wscak$LGaqr30&X-$93ga=g?*7z(OgtSJ~(KrS`dU z9o)+u-CBWC=BD;VPCDRfpX>2W{p9R(?VU8kK9|3E)||m;TIZV0=PCEu=jJ&sedacv zOPpKP9^u5k(O~U!=Wlhj%Qa|I!epPjUbzxTc7Y2bS!n~O@JBJJUNP?u@FR`!IwMH% z%ogpAE-|G&<~~=ZQC_#VkDKq7eJ(gexV)Dm%jIF$eNXe2i);QUnO>yLeQw{pk}8Jm zbB%wB_gz-WSpM2&cbNLQ4D$pf*6pzu2oM-A4J~t@EBn&{ax?o}3p+GCx~?GD4-pAk z4_Qm0-bDQJAQ1puWoBicYp6u#cJ9e8MTPCB+~>C~JSqAMSH0CGv2|I`*Rb+)Bkng-EZ{M9z4p^rFt=*XeCsuhd%# zj6pA`_{nR4W}n*zO=EE&wqs_GO+%mE9thzs)?4-f>I^3`5+It-!69I&!bt7Puinh^zZOiqH-9s5 zDHI{1O;~1=-%}QZ3Xr8Ak_a&22A`13Buo8D;N%H>$7U8$V|jwL(B0>PNNOZr3KE=# z-RJVS-{;yArCRqVk!FO!LKT(9K9}qJ!Zbve>zYlyV%7zB_PMlDYfkNR>4*rXO*tdO zSl9w3j))9cLQI?%X%D0f_;Eh% zfeeg7T!Dbvb3}Gh2%(^4#ivoAGkWe+{TiZ!aLaW9m57$;P00u7_IcjkkxDz0o{{kp zM{Yf(0iv1&OcCH*mVX_b?B`x3EPgjYCAK`{Tt9PX-T`zya zeJ{YEi^pW2i?lcx6`7w%i_YYEZyAAO`lGqG>>tLl0?uD>W8iIy&2(*{^J<@K&r*5E zoNs{+(LWzWntd)v?~?P4KG>VP&yAb<*Yp9$u8Hv3}J=Cm< z_xRO{zj|&M=wQe41dA1h6D-B1Jw)8>tYa1OG$ZG7crrAggMl55sGqK2SI*QgKyj zqfte0Nb7+E;_cXOOcuW`HmQ+#Gop3mdTWa7#NFgk+DOb^X#2Z5(R4l05>1BpU6@%U zJUx0{vdB{wtXo6r7{-|WcI)h?OBESmiuh#oU(6S|pKzeV(UX@)zcbP{tWEuNddxRm zasJWMf#0Mq%TtptkM*|1Ip!lBYB*u5RD9^T!RtW`|D?d86c2Dvd8JdYwOVmV?k{~n z@(FG1oYm!vu_LFs((|Ncw{O$ZeqhC{_6R_&gYd&@7)H6I#qjp>2mye$tnlg}k~`Ba&nGL8h7N3FGboi#bGaUv+l^V;O|2hyg17({iO2OY3n%P`0)k@=`u^H{v@Z>dgzQ!#* z%sTtKn&o&L@~R&z)qt`r@qLX>F6(hO>QMRA@Y|@HLm8c!;O}->`^J2ET>D$L>XveQ z&rYB!pbBacY7epv=|-J4A`4*>aBrBZ+1&M`4h({ZkF;c;rWyCa*{r7qmwHpYMni5* zdVGbQzBl6}sd}{KPrhh{5VbbyVl4rfH5_#!UDW8DVK-KfFwoX!+j7lN7{uAA*A~_X z9FgK1y9B?GF}X%vkAtn%qlCxPzU9i9<5gHzD!*ULTEgbdFU@?>MqOaG`rzqCyrVAL zW9w9}W}BYv(drKDf`smS4!-zykiHIIv_i0@>dFL$mW%F&=JNijEER;vHBl=BU5m?(1-N)2^u&^@8;nD3XJ(;UR|TRpUAK*;NgnbM&~o z!%5`gV6}}otb2lluW<`ogQKoTqs$;fUiD+8V?{)Eg-R!v4OFdlXfXEj`kyFOC^MHl z!KOu^`KlHw5ew|#hT+krat>}b5I#d4xcFclh4w9)1s{XrQPI|s3qsKa2jyA|AcqAF z(~pm6DSG3@Vyn{Yq-?}0Hyazp?W#*K&Ay~7b^iMJ?a}O(rOy-KJ~5#KgNrY6>j7*cA2eEz+K?USfEkH&qE(u9kLnUG_6*yGU@}pNyR1es+zvaY@!RqS1Q54l&CoY7hnx zA{6PDmL>NoOKf?INwvd<5<{N_Ps1MDULtXaU>{b>IIQxtg?ENt6r+ob?g&}kbv|gW7Euro`dljpU#~m`OtVP=)p1&a0w+mHiLGHWNU`D zuLkiOktpP>79J&s_KZMX&$xDfDo;SY2QAu%%o+}(4BSmw*GkIQD;Yfw4$NCSxqF>pto`|FE>0!M*5zl#$Y9HX-JcimKw#de_db??~4*=`ltX<}H zNqN|?UnDr&OWlOo_o{u!XSI((Zl1N8dBvtqR(k;kUzei?A0-}pcBU)fY9G2l2SJy^ zR6Rs1uoA>cnog(k;02*-9{{ESi^zMLre~<6c?j)8L6V2vO4 zj6Sg!&_?{Wb`E`>jrK}n?e^<4_q-=c{zm&)5l_EsZ%IVJHSXd>nut@6dubmKpAe+3 z87v&3X4C7z5`Q$1bhVEfNU&{rt*`j}>u}LN9KjGKaj~A+#wE#ohzsjccZgX&u^eEI z$VK|4WyyWYmiEE*i5)hS82St-P7-tRdKF zAA~CrHZ943w@?ckF`y8+qnSiQ*`@1KBKNn+^V3yQ`=ITIbPBXypX(<9h&_81s}QwA z!k;x-)jntd-dvIO=RT8Qrs^SFt1*+b-3g!;RByw;u5fIvkayMBCvS=SN|JnWGzcCq5N%?xE7I(p@*&!uR zCmprcKtnP6sNG=kxBb>Go%zL9%NR1U7rRT*R*S*r%WNzrgZOG|&_F>g@>LxeE&wImVA!VtUP z>Yd94JC5sBCXyRHMJ~dXVdDCXBx}gI^dilbQUa@6y{)j}QkJ?E1EeGt*7bOm3+YKZ zvUqJdP4jy`L&*wpn+#RMD2x~tS6+QmYYlp4J=vQ9Bw9QLXn5^-*`Yz1fkjZ47y2J&XPiV5%ns5{9(d9L{@CxlF z2?-%ty_wp2oiX`*(2H44P#V`pKw!i*pY90e>m|-7JXxoN@QBOuo(#K_Zdprx@+5P5 z#$oH#mjC3XzBiHCban<&&bx^!D_m8C(#)nAKr3i>L!A}@z*sw zzWUs2*`vjh8!s^%Ypg3d^Vyk1uFiOXv)J-jDBNRXV(qLVcNk2X)%di)xpW7ff{zgc zgHr5wnl57!x-Q#+u?}~#y9QHDS|T4)$Ti6hJf!;c*$%=I4?F+tavj7tX1E9kK(r<> zm!XEp)7}Wu0w^{lI^Zz-1iRMGX%2j+Kr9zepXESN*fGli!VsH1hJ9!&`P(kXf$z^O zfEt5ag7zskAC1BYmG|)VY54N+wKneD8!ukGKEc6{tuH%LOL6w3^qpxW+h^JVgYoA4 z255!Ut)a0B%u!_93EV9b9CXLWW0KuIy}={23acnTKfCM(^rP%z#fTwye~0u2%>LBf zEw=%1kXAEEREW=(sSQxNs1!7lH6yleZ(%Ns$T-e7BsFO6l@mqOA3GhP@ZyTB1{|A4 z1Yk=5CL}24$i>~ImQh9P+N1^tXYZzD;mueP=2jUE4$g=}V{D~AuE}TMt5(6%pBQYb zAI(sKDDfb)cJinz;PP|^kCA+O=Phlo63NV)Kcd2nKc&mA%VrRJM%IS=_VF&c4CpBL zkJ4-efqoVKW(vP1lYy=Q2hH|L3|>9>Z_fS^R?esSAEQ9xMBH1J{irtvTzvwQa1qP1 zH+Of5aj~-pxbC`D<&C75c=5&0Maa_om)aV#Yv zY3=Z(hi0Ds^kt6ac=##@!?4&vC$wuy`0F}*311A_db)#`9Ij*C-Tl}l$6T~mvgNny z>_Hj2)2T~EVaHRK2m`QU($>}$W^Z@q($~ZmK-OKrYLLfDtcm2BQrz6*6cxpR)Az1kQm4FhPMz!cK=QU3V42!ke)o@U2c*vhHRar$3<9VR6~{O5Z39 zmj1+4S^a1iGM;z<3XaWfj#u{UF0^Z~X6DTwrxXp+ZQZrOjE+pC>!&N*x=Zo4*c*DjH= zF;hI<0icg#vPktDjUc(K#;e%OE1a1j^Bd58R6;ZfkGxgEU%g z3z4%46tvD@Th-!#h?{p~VnfCZl2(EmPB27ev9+KYtHm*mSj51@cl(W1wr8SK8&eHY zV$nD%0Rd9d<*`dbpvp;*?=BaC|!)+E7%N&yZ zQ;vw-r$7;+!Hfdrrdb@f?HEMeV}~X9pzQ`q227w`sC?X-3*CT$gd8U&PGtIb2jc*bk%fdIn1 zb(R0*l!^!#!OF%}#QDFZVK2uEgKM~K5*M)}A7^o0X%mbEe7keL*qe4w*-gqkDM6YQ zWq^`}uVD5r<{!vU^;E>hCO;2&QLoi4ebDFrEHFOE*pRFxO_~0Um}fE=?LBAhAfIi5QW9DkDi(MW8nPKw;{BDwl}ta#o@XTnLpMlOn8 zzhc>4Obt>)w9}rUf5P7>$u$np<1YI6>j`zWA0y@EX^kQFDZuLfP&#`Gm`Vs|i_nz)b` z0r9=^Wte{z+CY@5J*5oZt}hWD=-ugsn2!dvBe-DUT$q8i#mm_N);hlze#~ zjq$k@;lSqwI4Dk75R9e9HCv;ojY#rY|9ua?6ly?QDbZwyUQF`EDmurtl$&Xkn&Wy`o)S1p_!AWJd81w-Stog`Ll9JSd90d|HbpaCdHo@X6CFf^_(0%z z(x6{+3gY{yxGW4!0b-3n&vINh3>a??Gj$)z$bL{ki=mbi$ceWA3BWg1;dqK_6cjic zo1RM~q6!|xqx4dP2KZtGy#uc1_vm_qa}YE+7%lZDfr$Inb#Sp~9^D7+&Y;^KiHOH?_Oc1PhBh|dkL8`%_pu6TENcc^-)$J% znnoV>Vj7L+$IVdQCs4w&OgY-{f%eH}{P{r|t+s{8iB$@gJ*qdgwWvt+ z$HMm3xU@t;Tcy4sk>O@|$E75~K-Knv^W`qj~mXQbE!DknYl~d+f!6g{2Sr{FDX82N@fZ zwWKN2QnDA5fpFKRYXI?GN~>{OPkqS;4O(a{$(u2kmW^of0v-7wgVqWH0uM^93O(^R~2J z@n%XB7{ef#Kvxwp?#1|Czwm{w$S{i0y&qrPrQ_|~iY>3YZiN)ko!*lkv-paW)mMYA zY%s5UStWb1?nDXXT=UlSzY1+2I_=2h27|ZjzM6q{dTZsQLG1`GSU4AEU~T*I%Ev1V zs-ENDMQN)SsWYk@67&L~cX^%qA#+jzcP~ceu4@@jlqHvTlN(YFQOsV9cG^)2(MKbw z+G@v^u@;?UFZM4my9Em#^Ouaef9&-}W>ZD+()}-QsUy{?y08ptNEB z6z9R%7ODJ5NTH$RUVR{pp-?XNrAyaf*4X+)SPyjBXm>9L3hh*o%jyY6yq?os$NPHJhme$IEas#h?|S@uwF0Pk~HG=JT6~yyohl==hd5B z9kYJLEzDBL+9L`DgV~gj_lMbY)EjAq7Jq4cpC+&AljwcMN}zgd3n9GA)|j_v>VytG z$pN`se9EtjG?#oii{JAG%xGs^LTA@p&a^ZDr<3D)!!Hi#RG2J&t$e(XkNdcLJqW)z zUn-Sny6@vjVAJDv{$c;(!CIR4XZSr^G`1f+fS;);X76b&E_!3>P@SIC#&~FA0m4z zY$IbA-?=)dnec;<^1%*`9AkRsk{7TJs;=>M^Jy>66RnU5v1{*>R;}y1sU7x0`W?}^ z?S5hX-O_6{24}sfwYT7q=Bl}khrQPDX#opV&A8y}5@>6n)6uJ=UNEHqghi=;{YkH& z=877Ut~}~huWIhe_oxhApZ{X6D$hmh6q}m_%aCI4n&c*%Q;+oePzk_++=P4E!j(#!h zn9VJ-q!GQhiO8ozG)VeO)%*BkFiyr~33IB_wMm_5_~`f~P5~^~+M;v%$A*NpIh)g6 zit2ZQl)QrZN-xHH=e!ucO`Ddt^kDR$@L>2db1nKYTyO2Wz!yi&hg$D<^jf3`2XB%~ z7haOGDc*`Fvf~~&#^fzKuS?dn=BKC^(qorqP?nv3n5F55m-;6TkAFx9YO$vG?G_N& z=$Ux?qGv+R=qa%4o9}N+pG3HGu<4b{@tqSn13rXVT=YhyX8i0sI3e=h`dyq4I=0}3 z%%E4^z<4iP5Nlb*UmkO3Qx2xG+f(Ts+$FklY)RfKa|~L=$nSXu>?q4{RBW&*AZdk%}>A}n?Jw6OW_;6aS*N*ZeknoeyV_X)xT&`x%(3;a| z2hQUntF$M3v83|cWrhA@E)x^SS-hNq=u`dHM*Xok98&ZyBMoA`LH)~K!1-gIrY9Yd zjJ(3`(MWC#W=&t|CprXpWnz2ZXtUG^qI5~?y#H?$+%mR(&TUFUj5v#G9GK~Ebsuhw zr*-15^`Q}D7bZ?RUsm}R5(r&?+vd^nBf4G&?DVSoCyH8zcslHwY4Z-`i=3Ge}2FAB~ij%`+#7U`ixtqAkj!}6`aSeD+nz#L#zr@H zUVS1vA(#@z*Z}$xhB$rRiPD#`;*!J6U{52q%q5ClNOiFc3-N7km_9S@M-;;SmGsXAVu$?-E;4pA1{uM-z+eISHQYSv&{h1Q&Q9W?N+xiz*gWr7}0|e)@IMF zB@}d^1?Kse%}cCuQ8QW*+osTz&vJ`6uz)*^ySbMDCE!^RnCZE97~!HT)-{193@%F+ z584-brzZUfIcyT<)V|xh=Eux#h^91o3XDI6rBLJz-UNfL-bCod5Tu+?{gT=KbYzuQ z)37oTDlU3eL1w;S9(AXBA!8nh3Y#lqlMLjYmUB+F^#zSO5iuFIsqN_a4%LE!oQbYu z=WITA?fq~RSiuo5cHh2|D1H}TFW)AX=mZZyz#kwfK3PGeKL~>G((TcmbX8N?cyj#m zjh9c4M^$KxgV*80WcKpm%Ypf1NzE=^R3taPRsLj|4p_W=^z!cQzGj?*^)AmcTIDqu3#ey8C&XN}O{qFlpJ$G^`jcq?WIjh9r z2@|W*wF&aDre-GxyqK(CiQL&Dme8ISE%?+I~i;QaFN&-~fA%>+&pMX3hgbstD7 zq(oer#-d%35w8b@|0DWwXZGIO^MNOin(XAXVt0n$>+;~i@dFqW($EO7#CMs&+{r=P z`Sf>G(9#bic5*yT$L#3ksGS^u*vXZZf0*&^hnIRcvXcYDYyBGT;N5Kb77Yg*O>e z|B4KDJ*tmKuz9QGb#YD=l8E=VdFvpYZiFy)a?Uy1B(38;llb1+cxNXk`?pM4muU&~ z@Mq)Ns)U)g7FO%=GTO#Yv@Zo@+d~oIf|pM+%{t}!AMu=8++hxzLYq6eau{|VG#^HA`Oslm4#5hy(!u-yx@d*k z4;TlLIl7*F+#a^^BIah%0R+WJqQF4)+COK^85XWu$jt-tw2 zn&at@ZC}niB5Mf(yX@qKv!**a(aBDZ3wLr9_g6&e5<8HZ?Bv94!@QZI)bwxq+npRu zWhX~V#S{>hpm5ffssx>{RBn8qq&qng+3{uUZ70`t*frDU9Z(iCQ3p|Wa#Fdq&o`p0 zZbDsla@O^CdF{LzmIIl3?&O5I+tk_Z}`fuXYsZ(X}ZKJ zt)@X~B2--TszTI!g*xg^^+Lux5W{FHL}nxJw4BTfb}`IxCnt{_rob3a-N^-utulG2 zdW56E3XbgL`u3H7@w@l}^)|6&fo3NMn!!c!$qG{25D;X5F5MovlT-B5g`nPca+Idf zR_{({1)j{ale5y2k1pC&Bn>MEI(XP6(!^}wPEOSNog6_8E@+F4F6r!6_S8 zcq+UIGYW^b7e{{B2pB=Wiyzu0Jo#2dV?EJlGF?)PrP4ARa(oKF9_A&d@q2H2hh*#8 zE1kRmq0@ro`HY@%7l*DS9q3YdexUlf(M6$_?;s`VOM~yZJ7k%!hD~%vldQCt22!+p zL8cQp$Y4mS^aq4FA(MmzwcD5G>I@6QaCF}^o_0Uh;sRP1w;Y|nOmmN6e~C~=4OL9d zNi%*emLxhUtZU&a4G9W0>25T=Q0N8hM<6sUh7S$#3xNy~e^CErmEzEm`P2=l$l6D&g%6ki%YQ+L$*i(U*;`unL)-q89xr2r}vq6SVH{jQ# z{G|?u+gFNsIE}ymG7)c#&6|?L&jSPlB`KX$Le|ez^vZ^`wFVKj&Tm6#(_2!*+?MgU zy)4+#1!<9i#)u{yL{MIeN$+~~@6-m%=?;0zbry1B@!o0AteOQIb+e1Y@9;u(yW zhN6^ZEo!l4kVZ@se3-osBWH}m$3Arrj zy6@sc*eai_HsD7~P472NA!FI5Bg?^)5#&ebSK$&S zS;xcW@XCkrwx@brQa6nIXsAU{C9K|8ruZ!d*Y0PKb|W=s7<(^UcQ<)dMC=i>gD>3M zDb*|~w?e4=Shbk5#3B3YgtPITh6%dNz@b0Kenq}nGsWt~%%oP;Sm3DKGT+H&evfAN z<3;m>$V!Xb{nab`vo{ebmcZgw+Cq_`k*$)>GL5G>P>1N276o5r07FQdaa|%T@rDv1 zrm$q`hvEn{lMJM#CfwzHTXO&M#IwmNtDs5MyUxWBkw0i+)FdaNiv@f(X>H3!1qgG>1<}c<%)V3 zliMj2(24*hfD3<)C`g*3z%$K9yrO&$t-OWLGUf9(W+v;AHxkk#th*W4HY)egwLnXb z*<>eiKBLM~62S;I*bbzyUeG@L7fMaTH(f5_VwyRn8OPP&ou(A@?WK`0YsDphR0;+C zKubncftLh3*+Od6g`kJyK69|8927h^lh$PRJVV3sg@*m42!f(quVh61Gyc8O7a1ymgMc zOmfNAl^&O~+vlf)@?dGLHVrp!U!R|jbbvM9pDs6@oJbdjZ3+O)-a0p3vam2yfp?~2 zbrM_HGBsVrj_i>^gFftK({XWiYPv@XAj{=@NP-aCEZhc5_|YV9V`e(Vs6F2`GhKC4 zWGu0rf>(?pwKazUETW0hSKu*WIXd4@F1YYmS_>Vk_quHk%;omu-l?+Vlqt}Pt1xp%gA)I3^R@umqj znwJ2u7}Qse8JMA0ad?a65+JO9vE}1LkyGqcvCPNGWZ<1x1Qk61#6p)IOHy`ss=XJ7kPVe30J2lH zm$q`_C{7km{KED*+1;s9iywvQDYLRCIziw{HW(Oyg7gRZ)ktNGbif!)K8}|Ub%qPx zHCk-rHhp|$T6SLpuoPSbSa2C}d;l!#OY?PR0OoG8%vh40DmB@u1}2)q9Q~}mydg@A z+MbaDNHI1sT-X{KwZIxtT{OtmDcUKYIU)0zjr6DdugK7DZgsu1%0+spA{)gZ??#c$ z{2q~rTr~YaDYq!0DXAuN-^4MJ0N_l(#peLUbhG zN%^u&?XXYY1=3P*iX+fW!4QNZp4+8rcc%&_*2qqkzspR?Omh`w&~~a)MzJOV>&e{r6r=uoq&`#y^4`{{8cLF%o z7}YT*^HnIw5-1GBxoA3~AW578&m<_BJoz44d1I@ki1`vBMsU_6ZzN&SU6@S@OIjRjG#wgLgrvgIVgB;p0UaNc}TQ;pe zX`_L=JkC#m8bNcyS9hvBWTNJw5eWRr`(yYk^}e=1)^yFMure(Bri8i$XxQIYvn<33 zhh7W<73JRz;?=~`Q6xi}f)REJ4Hyy>g)RR3Tm>aW!e}pPu3{x}as+l2?wOtp!<)KO zg<+M#EUns=893Rg+KBT0UieLe$|ZM5;N@gfp?sM)g3ujzs^W$iQj0Q7JkXOD?^JDf zswq33Zk@p|lU#C{^%Ls$+54b8go#U=h8wr9&)&yQwbZ$%%iI@nsBQoS1psDmow+YL zYM7~Hq~fejVhdX)?yK0CJ;KewpqEV>x;k;6J5`s<_u9PGX5lti!jC3-8}s%#0NV3i z^Y&FYMaB}l>a?jCwZtvX0mdI)%-iQq72X7KX?=>keZcN^s+lae%-hF^tVzz*DpQ(E z(9VhbvQu@EO2m&W+?ctKbZ;4d7T`BSOl4lRcuC#L(X~tJzM4VOV{JSyMFP!|)&+8T z>OO*1*{MP+qZ~cY!s4}M=Dw27FCNFaUXdL*t@G`#;Y}oQMaPGnt3JSEs;l?8b)PqA zBw0q{DdM?KY{AL{{aGFGaXBYqW98xgEg!6Vw+%c=8}V*`+5*0hgn3A5&6Bj0tIo9@ zF06doq(sr-&quu2zu{Go8~U?vwz!DU*F4&k3pVE*+RuVOT1q3U_>52!GSl#E_zIFZ z*AvY3`HSx#`G;bZ5REkPVyl=`DP2;Z-!$)pifOX>gqkoe{`=4LBqb~W96ZfMqoF1k zg7BbfdL)f>xqMJ?CW)3v3u$$g6C-T}w>-^Nn3At~`a;9co@LY5IG0B^6Ks|a3o7VU zjg;V>dr8ys_rW1-XtGkF6rrK@<|FhvBaCk~9T^EDm{LY`{03o`gAI z+m#QzuIp1WXc(O|NaU2zu@qfT;*_%I@;9}(!mhj5Q#Zk+$j5rxrVll4rI%WlP;xz8 z(~ZTW%=-~}x`Pe^$;6NR6Pb@B4Kp>RSQ<=`2vLT`rxssKj0h(D zS@$)@Kt8(frnT29c)IBBlrsqZe%am8L8}S2ZzOKAa!_<-j0=e^y1Q|&voLozV(Hem z(zn|@oIL2t+yjah>K@W*Gu!qh#8hubf1}w{2aS{?mlPw712KYP%Iv;(9-8iZY@FyD zsW3m&yX8+9GC#xq8ry9#h{t6LB`*Zc&(E4)hClT^*8G5)^8zEiAz(c1%Pv8^Zz(BZ zu=Lhby^N>ry6WkHsb|57w(|9k$mx$_uS)AN?(&frjrfFe7@YUwQDb9T?NhF~d{e_W z&0r0VnOU>A4mMn3cwr^IgOsAJW(XB|P2qV>Mg-uFE+H5cuw|v@u~`~whArq}h@c%Zj^g2qrzMpI*|^WdV>!tFQR`{fvfRRz!xP+f5FqJB4Up7= zx?{YM3u{4Epvc9f|$r2E~id7z$p^3P08#0Sn6Gg ziRUP|$eHo9oRj+6#I435-7C8`CUerq?oY9SUgX5J;Ph3ePlKwRZ!kyl$N)B-POX{} z<63UBkL$Pn*w^R-pl~*)aO&R-0n`A_7$OroN4i1x zu#H*~0-zL)XMcsr0dq0~X6Ht=*TR}mc_$--TmH(^Vt|!@Opk#e2uE;o(Z&-%a2_Ec zqT6P8{FLppauRB++;*Rv4|O{0!E=| z)9WHyJOg+LyP|_aqLnLn<+6lL6&dw@0ypFnY_?KzthHfApUG^BfCK|LGL=aW#^s(p zgcZ<=Aqti`aV)vbWXK8BT69+LhA7|g(eX2*$WC%8gu1Z)e7+I<48TzmF+vHX=~`}A zyRR4^vZw97o3=W(s7S9B%AC2bYuN&O*sjvbkJp3olzyx!T^V&PDsdLSArf1S*1@5! zWve{s%G~3-HkQ6p)3sJ5+{$aO>#M{pyVgjOzODmy^WE3zY>XYyFa%vIK-IOvl9jGi z)`wn0s?9tnx1md2E9~P>eUCjVprUK#;Y!!y9Jq&Pt0;i5j9^WuuiD8^+qHJUGE4VG z?SbmXJAjPUip5ptg*YvtJn#wSuvG5FCakWNHk+ladM@^DCi^lXF^$GVT)Gyu{pl(N zLT?2Zd5t+qgC7gY9gUipX9BkDES;{!y&G|4G4bYks(KKu?B4M|#i*h=I`&Jcg&u?{ zwo+a0}nz1*Ny-Y5{FLLvVu27-HhdFfrhvV z9}gKvy(b~82$m5u+vrl&|H$%bN>up87|9047%uA&Hi<1j{5sZBCWt9 z9ST;ec|nL7vgvfqcj#KuU9h=|t|cBZGe&AmQX)!rg&oifOl78Lj0fTJU4>K7O%=f^ z8@el~4%?z@(ZG62df5Z})U_;FB%*8arGDhBx>j>r1ezT%E%Un8VsUG_R!PdnbSrv^ z{3$lj8=Q$0oZgo7X;3Zuq7D?J8ql>wgx{JHU4fOM)PsHZ(of(NT?^8%ek*={B7?v} za&@oSfac4h4}ikioMffX{N4eM;Gk<&ZPI+xjy-webR$LMIl7jRCv#wSjsQ6o)&$!- z85!L2SDqFFtckId9PQ#@ofBn^9<#^MwLsN5z^~zm=RaN5 zvOHLTB8Xnvq zT;>p>t<2Bb-5oDj`8>HCOw@{o-!5%2w$Ye+F~ABv=1>gt%LN8qZ!GFh?3-9$10wE# z!Nc%`29{-7?yTdM=-6ew@e=fwo_F&}!w|;QGn6PVV+{tHMXfWE7ooH|HzXwrbUx?Kci$dEWH@kt> zbN0!xy0}F~g=H7(R++7IMH{=t*8GHd#pVpn<2t4zEEoc?ijQIxAn?X-gVfqFBlMea zgngA9)=cTX;#g~irU6^IEJ5s>LWxO3%3^Nc@ld$D{`Nl55wF<4Sv`w2XgeH+uo#%ppAy|ZDvPg+PmhG!;I&V-?n~r~ETYf>GgC6p5 z3#$%eL#j1m*3qg+_B93`4t@htxzy%W1TatCQb!=BL-f2hRYk<-(_?;<^S@HFSM-=gvKiog{KHb1mPbB^rDXGU4TV}bNXNuz&qI4mPKL$!`A zHp5{Igz()iyEN_W_W%u4f9dU9vDQt!a#}PpkBiodrwTKAA_a_0G?N^h1eLTyIgP!$ zrJrq$ldd2_sb>c2I-G?!NJ9G;5MTJxN!{S#4!?GZ-PWp?Pp>mCi|Hy8ts_>^LcXX8 z{~EV(>~IUlNrki0mC0z!wCL%i%nI@=Bj4r>)dUxh?k$5S_qua=;dKToPn^79eFw-{ z!}iE!q|IEa(iL^W#TzzzM@zVqyg$IK(W~Evds)Fie|aG_Z96QUsmng!Dm87Uvb4z} zwf&jx!7*xu&lOC{T!bS%mz~+RYoy8^7+e4)=Yx^_Xgh@wSZKl^J+*A9XSg_hd z$Fj$suorK#9XY$iv~pRR!Z(G|cF$abk^hMc2W9jLHpqQ~SM`aaT&u%| zRE6e91icm&IG+C{IA~VL-C)ve5CBO7{?!5`B%AIs7QzYi2@z*5@qRPPQQboDO!jR| zS{QQ!Zpp-I2&sE%;!MPp(p`ROYXs45KZ1H?+bUBPO!Nyc0W+pwZ}`l%bSx~yTjSJagYk}FX*AhD2354 zxx-(+frZWsh9PZnU;MhsMN_&y4)Y;8Vihgqix%KtS0SXP!#j>)ztJY;gseH#o*p z71Q9*K=s?b)$U@RxLCW|N6c&&j8l1-HZP`#i_!7t79{`4GTv1*b0p_e-T~LkQo@ZV zpS467oe<%e-y#g3E^}hcqv`WVhk?6K6)KO!EGv0rfB`3l^Xuc~!)YwxZ9oK-7!@%B zC#j`&+^yo|Ke5P2(;~QcYxL^)i)Tr!p`qgJBWLVv-EeZH0c6Hsc2Ryk$p&I#8Fnvj zAzm`#m8&sVH~C*?605`nrUc7V`gUspF8v^E7m-Vwde~IcGI;ux8 zAbNRH`^sEmvu=%o6uY3byF%0bXUefj^xE2liMbgMI8zpcGIyqhzWZ3ofCOoym;@z` zPGYNCB1E}Nq1=oG!LTO_V1i~_YTcf%PHie|++&4z;pIw2aL!*=lj5s$YvXICO!?~M zIiAB;{+GIFm8imAoVc>^znWXr-{LEC?&;JU0xrJJnSX7Jxt+trd6bQmmnXHp<}!Ru zqbH)oBu;@9n!w8)-LYO<8-KEkLbZt&63Sem3!>|}kRieKf?^UBpE*lb*yf&YnMWy< zo7t~;ipqB3E327xJHFmTfE=ORIxwv!f6sljME4(!LO;QvFark99g`yWx>EjSi-;Hw z@3gu5B?)!eum%+2J?b&&i`2s66LpS#{))P_&VdmCYy!8g8e z_UhrEjfVgK(dgjpKmPx_!-LcBo_%-xU0zkI9jci~%QaI*D(;ze$=Oa59CjV7&=vbR zdpUI<@tWJ|4sU(b=vg&|%8Ibvs~=COwy1i%(l|!&&T4^SGhIGNfAIW%0tGh_5x{WD2!| z!HS3LZ-ac)DgxSy`m?TiDdc;Ax5+d+=%euxel_!_?+6gBd<`Sp`T>A_V!T0^K1=0$ zc9M&Te4qvLWr?-FOj!554+CWZ##{YjbUKexpjvnXu8Gprn*&?(A$Ctqre*rvpS?S^ z64=xJWZGkXh=a;I(vE{Fd9P$dOB&ke_ffQlGD#3I%oQNCdx>TJ-SGe)sHe)%ADIzBB#~qb{05<#i~t zX>A};B=$@IzzXd4m^~L3qKZA5znr=m>pQ#`NP|Sx6e?QEb}t7yafes+9P40(Jr<1sS>~L#hSGdK%yMeL;^} zMaOzTU;El1#yS9_`Ap}7K60$HlaGq!SQo8)4I`UQ18t0T5vI>lxyCw*P1_`I@eZLo zU>XKi3ygIdMCbD6zz%f&O+t)yxC{35*JRpbeu(1b9Z=JFoXi3CK});TpO99xPWxIK z6+k1#8|^0cYji!W2G{_CjLmorRQ_uz!Sb@`+vw6T2sk0jT70zLch-|S^N(e*q=K>D z)pe}@ZMyDXRG(ev#`g(4ez`A{E#vB~0)r>1o~>>+h96uEo^jitRA~G=+Cv3B z2O*}0R9L-dU{FS5K{o&W+XmJi4z}GiS`gQg~*_QW6-OCqM4edJ?{`>M*5MV_B9 zD$$$U`v-nyQMDd$S4}>9@odgPqkjznN`BvV+MU@r!TbH)7a{rY556bJ=aZ`&3RhS7 zZ^1PihBGq3k2d{3die{ZCo|rt`MaZgtoW?fs4%178L2_3DEMtLiuS>|E!B~7b~i;0 zC1gCU6?&g=AHvPmIS&kPDg7i~R#)w4F41}pJm4AiCcu1m^?LLVbyORo@!TX|rC1eW z{H65f;2%^&o}$UjCPX;BdNsxKj$$WLCi76tBvTvOP@Hc|C*?B7x8(|ZKNM%4+Q%VT z6f@7WdF2uFUF^U-cXo6x%%b2cK3S+~F3aIzdCDx#W0OwBo9H^q?Dt-#_d<+I48NP* zlPr)tb%EW2;zcOVz+XUZh8tc?M$rOtv;AByKI%xp2D(fH-mjZ3AVp%vi#fLC7|0-Q z0gd6dGWP1;Ys6;eursMekS4OaIult0y{=S6wg$1e7%-^POK?Hj zc!V5Qzz8Lb&^WXpxpD7l z-mp{E>`a-Y%tVknxzfQyl{DVFL!)uTNYaszRUmyto)9x!Bp5Msbxh;2HpYG#Yhq@} zXS4=tU^x5GD6v7|)Mfk0SO>A=jXp4H zppB{f9%l!-u8SsV0ZJGnXQO9F+in=!F6+6`9h%x@lUNe+9A^c$*cx`34xSq^FV%jp z<{kEE&W!G@4hd5lYzMi^7<)E{+u5sMxeFvMbasIe$=T>uDs8d*t4T5g$w_?lOwR>m zUX0dveV)aoSljhEDwe!KdiyQki8M1a&}C1x<0E;y*~o)MZQC<0x7+a<52~mlrcQnt z4VP_&Vr<2?7%_DyF^n0X@IbyoaTTr`0qKYXvi@SjM z!7a!g);X3H#5832m`BWdifQ0ny@6@3KW$73LA2hB`uQP`qWJeJd74CO zZ2N*5ZgCCfE@TtVZNy5g2Jq~NC1gp)nOprijHGVrmF!NHZ|>Kq*r?+^A5Z>?t^HcR zo-iRZUu06&{+EpXPP)t=Byo3fFkF_`e=v0|nOJFabF!`6&4vVK49)_UM_Z@X==|b z+F7-jx&5=v5D^Eu7m;1ZE)WgWkhs8}p7iHCwW@7iFBQRz9 zMRue|_`>WPDbR)~E2EZ4F+<$aJHOI{h66U;m`krvBCp++G^LXU_E}BRiPvmOWNPp? z1QxjaTW?I>4R7Q`F(djivpHmOH!7)gw-T|BIcuPin0~T@|ATpt6?H}*cqKq-j~giuHSP>`zZgE z8))XBZtIl*35zgADH(B?KYZ&)V+C-X5W(Ld(zhrRy)0qQCCu>b%7 literal 0 HcmV?d00001 diff --git a/mods/cnc/chrome.xml b/mods/cnc/chrome.xml index 30876e8a4cde..0526f427dfbe 100644 --- a/mods/cnc/chrome.xml +++ b/mods/cnc/chrome.xml @@ -142,6 +142,17 @@ + + + + + + + + + + + diff --git a/mods/cnc/dialog3.png b/mods/cnc/dialog3.png new file mode 100644 index 0000000000000000000000000000000000000000..67da64ad3f02b70d72ae57d622847bc425403503 GIT binary patch literal 6539 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 literal 0 HcmV?d00001 diff --git a/mods/ra/chrome.xml b/mods/ra/chrome.xml index fcd6ef18cb71..5273e1d7571b 100644 --- a/mods/ra/chrome.xml +++ b/mods/ra/chrome.xml @@ -132,6 +132,17 @@ + + + + + + + + + + +