From 12b7846440df6325e77f2dff41b9c3b706bab7bf Mon Sep 17 00:00:00 2001 From: gaowdong Date: Mon, 30 Dec 2024 16:45:36 +0800 Subject: [PATCH] =?UTF-8?q?bug=204465=E4=BF=AE=E5=A4=8D=EF=BC=9A=20?= =?UTF-8?q?=E4=B8=93=E4=B8=9A=E5=BD=95=E5=85=A5=E5=AF=BC=E5=85=A5=E5=B7=A5?= =?UTF-8?q?=E7=A8=8B=E7=9A=84=E6=97=B6=E5=80=99=E6=B2=A1=E6=9C=89=E6=80=BB?= =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E5=AD=97=E6=AE=B5=EF=BC=8C=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E5=BD=95=E5=85=A5=E6=88=90=E5=8A=9F=E5=90=8E=EF=BC=8C=E8=AF=A5?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=A9=BA=E7=99=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bmw/basic/dao/ProjectGeneralDao.java | 2 ++ .../bonus/bmw/basic/entity/ProjectBean.java | 1 + .../bmw/basic/service/ProjectServiceImpl.java | 13 +++++++++++++ .../mapper/basic/ProjectGeneralMapper.xml | 4 ++++ .../resources/mapper/basic/ProjectMapper.xml | 4 ++-- .../static/downloads/工程信息导入模板.xlsx | Bin 12760 -> 13280 bytes 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/modules/bmw/src/main/java/com/bonus/bmw/basic/dao/ProjectGeneralDao.java b/modules/bmw/src/main/java/com/bonus/bmw/basic/dao/ProjectGeneralDao.java index c6ddcc3..a43336c 100644 --- a/modules/bmw/src/main/java/com/bonus/bmw/basic/dao/ProjectGeneralDao.java +++ b/modules/bmw/src/main/java/com/bonus/bmw/basic/dao/ProjectGeneralDao.java @@ -35,4 +35,6 @@ public interface ProjectGeneralDao { int getProCount(@Param("params") Map params); /** 专业工程查询页面 */ List getProList(@Param("params") Map params, @Param("offset") Integer offset, @Param("limit") Integer limit); + + ProjectGeneralBean getGeneralInfoByName(String name); } diff --git a/modules/bmw/src/main/java/com/bonus/bmw/basic/entity/ProjectBean.java b/modules/bmw/src/main/java/com/bonus/bmw/basic/entity/ProjectBean.java index fb5f6d2..cf1d5d7 100644 --- a/modules/bmw/src/main/java/com/bonus/bmw/basic/entity/ProjectBean.java +++ b/modules/bmw/src/main/java/com/bonus/bmw/basic/entity/ProjectBean.java @@ -103,6 +103,7 @@ public class ProjectBean { /** * 总工程名称 */ + @Excel(name = "总包工程") private String proGeneralName; } diff --git a/modules/bmw/src/main/java/com/bonus/bmw/basic/service/ProjectServiceImpl.java b/modules/bmw/src/main/java/com/bonus/bmw/basic/service/ProjectServiceImpl.java index 008c57b..d339804 100644 --- a/modules/bmw/src/main/java/com/bonus/bmw/basic/service/ProjectServiceImpl.java +++ b/modules/bmw/src/main/java/com/bonus/bmw/basic/service/ProjectServiceImpl.java @@ -2,7 +2,9 @@ package com.bonus.bmw.basic.service; import com.bonus.bmw.basic.dao.CompanyDao; import com.bonus.bmw.basic.dao.ProjectDao; +import com.bonus.bmw.basic.dao.ProjectGeneralDao; import com.bonus.bmw.basic.entity.ProjectBean; +import com.bonus.bmw.basic.entity.ProjectGeneralBean; import com.bonus.common.core.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -21,6 +23,8 @@ public class ProjectServiceImpl implements ProjectService { private final CompanyDao companyDao; + private final ProjectGeneralDao projectGeneralDao; + @Override public String importData(List list) { if (list.size()>0){ @@ -49,6 +53,8 @@ public class ProjectServiceImpl implements ProjectService { return "第" + (i+1) + "行业主姓名为空,导入失败"; }else if (StringUtils.isEmpty(bean.getCompanyName())){ return "第" + (i+1) + "行公司名称为空,导入失败"; + }else if (StringUtils.isBlank(bean.getProGeneralName())){ + return "第" + (i+1) + "行总包工程为空,导入失败"; } switch (bean.getProStatus()){ @@ -89,6 +95,13 @@ public class ProjectServiceImpl implements ProjectService { return "第" + (i+1) + "行,对应的业主姓名不存在,导入失败"; } + ProjectGeneralBean projectGeneralBean = projectGeneralDao.getGeneralInfoByName(bean.getProGeneralName().trim()); + if (projectGeneralBean != null){ + list.get(i).setProGeneralId(projectGeneralBean.getProGeneralId()); + }else{ + return "第" + (i+1) + "行,对应的总包工程不存在,导入失败"; + } + } int result = projectDao.importData(list); return result > 0 ? "成功导入" + result + "条数据,保存成功" : "导入失败" ; diff --git a/modules/bmw/src/main/resources/mapper/basic/ProjectGeneralMapper.xml b/modules/bmw/src/main/resources/mapper/basic/ProjectGeneralMapper.xml index 69f9475..43451b5 100644 --- a/modules/bmw/src/main/resources/mapper/basic/ProjectGeneralMapper.xml +++ b/modules/bmw/src/main/resources/mapper/basic/ProjectGeneralMapper.xml @@ -107,4 +107,8 @@ AND bpg.id = #{params.proGeneralId} ) aa + + \ No newline at end of file diff --git a/modules/bmw/src/main/resources/mapper/basic/ProjectMapper.xml b/modules/bmw/src/main/resources/mapper/basic/ProjectMapper.xml index 0ad04c3..ca68d51 100644 --- a/modules/bmw/src/main/resources/mapper/basic/ProjectMapper.xml +++ b/modules/bmw/src/main/resources/mapper/basic/ProjectMapper.xml @@ -12,13 +12,13 @@ - INSERT INTO `bm_project`( `name`, `abbreviation`, `pro_type`, + INSERT INTO `bm_project`( `project_general_id`, `name`, `abbreviation`, `pro_type`, `company_id`, `owner_id`, `power_grid`, `project_address`, `lon`, `lat`, `pro_status`, `plan_start_time`, `plan_stop_time`, `create_time`, `update_time`, `is_active`) VALUES ( - #{item.name},#{item.abbreviation},#{item.proType},#{item.companyId},#{item.ownerId}, + #{item.proGeneralId}, #{item.name},#{item.abbreviation},#{item.proType},#{item.companyId},#{item.ownerId}, #{item.powerGrid},#{item.projectAddress},#{item.lon},#{item.lat}, #{item.proStatusCode},#{item.planStartTime},#{item.planStopTime},now(),now(),'1' ) diff --git a/modules/bmw/src/main/resources/static/downloads/工程信息导入模板.xlsx b/modules/bmw/src/main/resources/static/downloads/工程信息导入模板.xlsx index a02f3bbb99b642bc560ab9afa5ea03fd2bab4cda..3305eda5aa12c8f7fc2127649640e89a3d2d3daa 100644 GIT binary patch literal 13280 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 literal 12760 zcmeIYWmKL^5-kkD-JM{;-2=gc1a~L6yIXK~mq2j$;O_2Da0~A41h_BB%;bbQbJq9$ zyldV5@oH6dckQREtGl+e7zijd&~porT;qLy|967|e9*JhmA0|8vZa#-h@k?0fczS8s&qIb+0KjH!N;6$EwG37dxtcblfsBXx~3?d=QiO0gD6rvRbqSFVt4U9h>{kY2CArEl0I>6CLe|5C3rH%fxr`@9Y zBs=L51+Rq{3D3C8V`K%gh~t3l1xbj5c@L;v=7qY#^>HR>=gQYXKLQ8ASS59^SVgmD zzbe1@!DIOtnjET>d4k86)D%kr4dTriS-esIF?;6|>#00&zxk{ zVAJ%{cSQ3d>C+^Ot4^(k<+X6kf#wd-soGS{zAL#f)+CahgD$O&MtqXuC4^@vW%+{SdIDxE$nb?8dy1SC#6#p$?U{L;lmpe2X|&AL^ggp(eQZv zl_v1;<|#-?$hx4X0K!y<46>GfkkUkmV`5HL29C6WOkfCoT;@&^R=wsw~0&miPP zNtpWZBKjZuJqG9>@4E|RfwKrGWn7HCpIp>eN8xkqR-g2rcv^-tR{gY-!v%kQGQ`Bx ze`mkbE+d&cN$EHB22q&AZnD4)I;|Ehn1H@UQDVuIM9wK1{A=Yx(uVa!RkHsG+_KfpOsPed`%@?5hs}mp!s11Cn%M-%Bfnc{WMP1q z|H-Oog@=pHj0q-bRDI=OV`J-?qNa zK45B^IrXXZ6Uic{ec&6RDEblHoelfBz2asVJWa~pS?}tnU;jSTfB^jJWcDJ+KYh$N&U%EzQmKE$nO=p1s~ID<#%RkJ}969uOV#nWn@;=e0~icP8pV(D~Bcr z7PDUwcH?$qoaOT=T_$Lqk+(h^xr|4P)+>cCHXq|8ygu$%l)cXJ=0wQ`juj0@#+lan}CI<)yQ@e}g7cFTdP!D< zg#`0a*S;9!JjPlhjM4+iW6vXu!dqOQ8xTdwBP*v&ZXM4sIHTJw@`yEE|L{{>jdi5rpHnta_TI zv=A^`DzVN)a2u3*F8XuM7h8IVKXy{ofEo1~88KKT6-W;WCas~+S=j;!QOf3al%cS) zz7or#PuHVyH9^-Y=>xy(^-)^t6#G`r2m!J4eQet4B;S2oM&Do16p=N~kI@E!{fxhii+%Q=1g2-<@)Ph8L@oTc&wk)ZLshmMEkkYkt@i zvTZJwXcVVgDOCr9MFB+Q&#A=Fpvtc}(Z^o$L8=BZB^lS@!tO2W>iVtqoO$GA)}g~C zs#Z0>U>^>QL4b+=6gU{2m7g?oS|WArJACFVs5FE;=9#%KB%N4TvN^RB!HKp_Gf=rY z^_bunITMO2Mp@Q$vMI!rnhcg%VL|P@SQV3EpPCU=lZYgY&JPQ!brJ3CpqYesFgM`8 ze}2#IyyP5x6laCS={QXOF~)c?r=clZ9`V?$h?!!S*I9l~I&R&266_(!rb^k+rU=(C z8^y$~p@EzLw#%`XSyV03A*V5%aG|O`60^nY%hen~lo46!WSdsK2_L>0>|zM2=mQYD zXypJktSE1g=m}az+RonUaR*%XxEeI?d_AtO$Y)~JnY9kKrseuiJWGqRUyHyCBRoMV zhdn$+-6j(>$aSfmXVzfUeRKyGICD)hnLLKbxUWGx)*#xWQztL;(U+*5-Tm(aIbv|? z7C{x_KfoC7^$eesXXnm>KlI+;z8RjvNYm)>5I(nimwespycXYb_9NOU^~P`#ew(5C zM++O>6ZrO~?RU;iHFe9QTyW)$1@FcI3yuZ` z2nh4PWPhssjGtkOY7t3nsP3A^Patc};3)6k$7Y+vJ*15GZm+Fh_SQ0&f0aiKHN?SrGgD)Pewv`47xpl^5`ZAKKuO%M6MYhD zap0&ri(l*USWa8-L^BdA3WHgpqnnm9q!cbEVE85a)oHQ;z3m1O39@^4KZOmSNU`rk z*XhT%R)VzW3$rdo&T;|*FSgoFg7zZb% z5}!W=gQ{PRP6P7YkAL$>Ryg%2i1^B(g!6=-ZNYx1EjVtUhA#r=9z}!8nKhKEt2H!U zu*g#6>`WX5TLhawe|B1GWO6%@7!e&NFlpgfZu49KK~ejxBE(_E$WGepl3$sDD_V@mk@Gg9`>d&)e{T%aGqI|x zVhF!l$U355M&rpa2L-%p;kOKyB06bLwbAUGCiH;mz|pbd2l3#}>8ZUj)-^Vx)b4Dy zAxdkbFg78LvSi(J$>2_vtgeib?(%@9D<%r~aHX{|>{B4H^PUr}NvK}!Ky4CDd)Ri| z;SQ3kVGao(_6(?WT}T7+k5vxz5?b#O`143lUfD6>*=gyRz>wZpp}65CAi8L$YhtEF zza0-qI_bo`UFK|R)&&ihB#bNjMp&s1qoHaA4z(D#;SGy{g)}Rwi`;(B_$!M$}D@k90PFI+RN@X_&F@l6%J(9pc0F4wV=LAow)@mr*A zSkU}4Z~gu*#JT~HJ{bc-!T$&YjL&IQSj?cs!t)6N><$6+8fkOde2-UFdX|1(&?{Xe ziG?PNxPv%=q*rF5lul4E9L6vzZi^6akpmZfCPJtZ;)E}Q=9XxX9Yjqx%S`D^({Uk$ zE*UJkCJLJ-_6O9f*00O0RNxo)V<3njpg5w-DD_l?@0Wa{2>Bsc9aJxbWX0Xcyw3@e z?D~vO2}gNg-o$O9d>?4_^D-|onbmTm*E05Y8jH?+9HYW8nAbfg)mYy|Y##X}No>05y315}g;|zUEcAxdc$-#9=Q2%7F3n2=D?ZBI!wLiGAhSMYA~-dANd<8X#t_rr z%!;t+urfFXn1&W?><$rfSSWf!Aq~JlV9Z^z;b@>|J znuoRJEy?HyM5FxPekLp)gfj3F6hA*6GG1$9#cnaq$y#H63r^GYI0y;Tsq4awmJKTI z8TYjlIQbd5kK_6^oQ1e>g58o1C;WGkb8XC3r=^^Y8$(iLvf?|kmneoD*=!-~`|G0b zKgMz1_o;*k+nx@ig?}ajhbk+U zI4rmxAJ#m|j@(QqNY&+NQob;&Xzwes%#GotgxGF(J95uSHa1BttP>M=@w)K6Z#wbx z6iEU_UQf%=HG(yMdZoGG_}SJr<51DdQ&7Ry(BsF$!^55F_F4`H692t`@W6Vm5|`#F zVvrkmw)NPB#YN-xG$%1yctFBw0&_D()N)SP^-5#ljDj$cx0W0AjP)c;oaprD_-uqu z<Mg4%9Bt%G^~L>Q$Ss ztMi?i6cndXR#To~NwZUL&|=eIKKy&d7VUIyAiagq*sJQ*l#7lxb8h393_ zL;rO{k3h0E6JKYqxQ%d(mT*ZX1Eh(yyBKzc=cyY6|I4aF|SCUZN zRru}VZovZJuSObRFxO<((jypqN0H53q7i-FcqFZ9)&Bu{DKp>CxIpC2ZWVOGY@9W$jc$@LrTtsDxr0R}x}mR@DW_zg)T0GQT5_D_ezA#uSJmh*l6R~W3Nj)v^ ziuYuxR=!e>#ftW1pCGhguRe3B&PYff4Yx%Ao9I9p7j}T)0fY@KVemMulK#o-BZEM9 z2%c4^j7Ce@wYvM8_f|gO;lhs_zxofU&KMECu> zuI6*k!_irn-wY^ANnq7eN*vQ@gJ3&oOP4YkN=4&$MI++blY)RiU_hEp6SRN(An(_V zNH$ih#3ex-2{?Xb`iim9efcgskB!jWT9G&0z#T9VVab6+lJoxD>m%bwC@Nw9}lRahTmkX z0o?ZMp+4z_r8{!lkkby824R0EVOf0R=50557Rdn}eMzK}061_r2hJW7Fbg<|E1J5L zE)hY8YOn*w6_BaUQ2DPVKA>a7#B}eZ@3QO-+9TYu8Gm}iM%k$w>p7ESLCOHL zI^VC<;r~$HZ&u;DH7t~ykOZnw_fY1LCO2CE5)^3yGdSk&pD4=j+5IIZ&Z8dQfQt%D zv~avXTUo_N>!vpwh@;^vNfy$n!uXsYk~zoymv~uj8G(zA@4(n)L9?B!?yn2eM+#=dFxof^cIcLQOxBIB`)YO&CBK>pOJ}ZG1yHf0vGE0{3Mg;cwiq6Y>y+CFMK|{Z`r$DZ7Ee+uIF)Y8aeQjhSFoz0wnlj=6Em| zED;PE3)L;-4P7i{khmC3D@{}sfhs!`$Al*z;RM+>6-}w8lY0g)#o12QntJFH-U>i{ zBqn@7xZzc!kpe%cDl-VKf5H} zeA;kvcgr;bQ%%eP*&}UY*4cKe!q(=LIxIzXw!Heanvu!L!8od4hKxfbLpTFZ0-DFr zn$N=O4$aM+R!3}A6`aw!)SpQW-c%{2J7CXCkOl$*+#fyfUbc45X8N|znasD3<`E0Z zXpiAt9%Ucf1JIbtUvHOiBu?~)l4OIGOc4GqfVtj8t_3j0}LDa#X2`E{6( z#H+`hdBK+vn?>=qh8@)uB-*dE7#gS0J60BLNY;JR$-z#U5Ej9PJq*BY;nYFdReJ7di z3GFeZh>&IER4t2TkC5WUH4p0_j<9m!W2N=sgn=_Z)IUS_T1ePvRRLC_NC~`Vzi2`2 z(Mby~Gim~^$9+n1cq96K%dH{;t)haT(LN}br;V61fBjh)l~R?2L}N}<5ci{&?pDW) z2Qz%;+qZp#)uuN!mdmnJqGr)EmP31FI-2gMflV1(WzqGe`Np@OH!Pra86cVP1829H zaSK*pq$`LrN4>xENBZJ$T=)|iZKV{C9avaif~1km(Gv{r3|vj`yxy!i1b(uMO|)1A z%RmMWBN)61wnV_S>D{=Pp-bgzb9_Dj9dh;qXc1|HfBlDJ+&Xu}%n&pkpC7FeN0dYJ zrfL&s&ed)3(~(%MGi4}v2ek@=g&mq%;j0?)<)QKlwsRBb$o%N<_pqlZ)Tt=LOTxjg zY;NP3j4hxy3moBK9@KN&Pj!4&(+tpz%b>uM1UE-3B0WB1jks|qOJu8%M}A&}2Q{sJ zU!pAqeSVm!E-|7=))iIR9XGg_!|Dy|Gkw`}gzU_IoZ+}E`?R?(2HJm$EyYRqelOB+INoG0P$GK(fd6^C07BGC&yT`3lL?K0P*qx|m z=z6;KBcCzuX}FJwXHcQ9Mh^*5Azr(4D#^w53F^9q~5xX z%TB*jx^AuRXG=u4ih6&EwqVI{4`nasSzN*%ODJl^PaDoY@=A2t6PfvnJvqSlo>P*+;NvO9BO|Ki9c#UjGy90B`KKsft z_rp0dmisV_p7UEeYb@>~%pHWwaA&s-;ujq-N8e%Q(lM>8U0?jAjE7K35CWOruEN3hF^-xx?ixvMV9+aL2*HtCwL3&-6j;VdoL;uPF zmxsNFq-$6}n6W@E7&Yles}H*pDIB?697G#KuR)o$1L&Q>8(8~6&}iIN)!O7NCfzFg zPGnwoTlko1%yp{lMaqV+ZxZ%pQtR*_Su*V*X(1B%VYk1tjlBAdF-1{6qxt@+i*G|U zPGjBxtZkb5oP22?JP~INnC}dIwj%`Ng9heiiCSd+6)7l|P-qCH_ZUBQEm7Mkn6vyK zNEA#aZRiDIHcY1S!3|xBQTrtrX7^UrqWHPCFCpJDx~3VXeS$?#*dpQ=SlBWQP@DRU z$@=l;z`~P$QY8c#U11$CUS*;0A#vTo`%3A)^y2y^#jbMXhj-w(2ci>HRiJe(1dW36 zsLcMMSmeCE>G7aMN>ZX~7t$g@okp=W<5qABRuqHYG=GOg6)#3DcQ-bP85b!cGoMtymFU zPS`~6qlQhulhq4jQ(3a1xnHLoblWbRRKpy0P3W5_~yiJ z27bB1T_2vI^JZ@w^(0!q$A3DR@06Jr_luIRS3m5<=16QHnJ97v)y`ah%{%A2i-Xg~ zj}2G7Um-?A5brupKdX3Edhn!jKFnQLTWuxeN_p&d7U&i8a~x=JUsMo z^mm>|@NnLL%Y#OJ)qx@}mH3^~8J(RQjXxum%Y(lDnmiszM)DPDeu1(s6f==7>j}Sg zB`?|aaf_3K$JwA}vd0PcHW79`lZfl8lj6jX9n!FHVl<`uouT63Mr$5}syxQrp)@JU z? z<+V~56)4VA&-5^v)&H;}akP};e&I|+RRIAcrYBd#3^_?j!&pda&K}J;8cj0+ol5d~ zl|Vs%86rv@kuT`rB8_a4<0<5HtsWFZ-xwx=^HcmHT{I**5((+Z@sA(flVm}G!i4;y z8B=}lMMd-okzFSla^gv%ByJFRggU7_%UeM|QNrg65o3W$XOdQz>Y50&w7>Hakf8kH zORErNxdGv5P^3?ZoonE4Z-Y&ZnZj#041u8~vKXaDR)9F>a|XQ{nI*ty!kK^_m1bq5 zlu62hCmz@j)V=bz=Ur>D*arvj5%awMeJBxR@5tD%mB z7bFWg0RK*ZVeT(DqGuseGiB>Hi-zXE@AC&d=FX>jW(Ys_*xg(X1mDKcEl|2Vng4Kt z*hpEvta0H8EDNp~SZ?*hb0k_~6$e_uZf6obDGcSWEqTDzw7_Lt{#Hm}N#{_#Ys)Uh}0efg!u;22iD^)P= z=2?Oe{Tj|$N0mJyd-8U+x@N$Q-~=g=3MlDEL`r^WbQUW>HI32)k>ji)% z@XV8WPE?JwZS?iz>};NkqR;uNTeO7OD?T9qW4IU2vr|xn%66G!k>EG3|JLha+V~J zNPpCU+DG668Qpp`NEj|HuW)f@vTQ8N9HTgBcCosU07!uXL0puxw0}}7uTptIk$_=K zZ<7}#ih5jYKLXb-y=5Qmh*QzqJh(4S>i1IX>Wa11X_faaDZ3yL_ z)L>2Huf6`UX`G?U*@S}tGTjiqg)$jivAf6Mde`8L*UFT0ibEDN;6R#7>>w>#V5EP^ z3ga5}c-cQ*`mGh{PfXa4cbK>Un6LpbLHLEqbJ0x4($e(jMQGIEzo;`md^Wl4zf_^g zOHdN>+WAld>zl8M=zfdna}c?8=?NE(YS3mWEz06xD!LS*Is+RKGZlT8q8IB~P!egN zIdNT^m!u}@x+-L)4;OoZ!>O(`qg1rq(3w{a;SIDdHt#=1gLQ5X^W{G1ux&NFT=LvA zXMt&jeYK+&h>t4XaL(J97Vb5q*fqYtIkrltPe}x}I3@u+DuU5UZN+(&DvNBp#cbfo zSC{YDZfU3_!S^TRdO$K0uf!HQ>lyO8UN_!n$+I<6RU}uKe6-mw3tTuNzIa@WAlc19 zs(Feesv;Ra*YP65`7}y!Z7y6#y*7(4&;XJtOH7*R8djUQ)~>sljxe+&tFy+cgAIkT z_ag%PTqfl}Gv9hYD(p6&HoB4dy%>wq<#ZHgbkLkx>S)Z`_3k%>XHWnAT_oVH5lGWU z-|S^s(uK{T=?U=P3IGj2W%6G#w9k?y(W9bW^oTvj0J_*#i-aQ@(wrR~(Sd}Xn`eUf z(-1pDoVVd0OHqbywLj#sChA7~}C>d1>A>4i>>Yb{^d~KCI0a(iQ_} zLOp4C(h{8A%anmGjo{X7eoeQQmWBHxt6Yg${G&`%8}d;p_GXc2p+2rzv#p4ig5con zqc-;3gU61d0mUT-G;o3+{SxGY7dJn)T2m+Xew4%yCP^Q@<(-_|?r4u1SF0Kne&rHfD7g`&NVF#pAqY11LgOT{|>lg zn%b^OtKRtR+Me7G7WC7u%)(?$O=C#fx5P?u223M+kYJxM3uqs&>&b;Zuvk>+@GZ>Q zwm2|{rSr+FKBl;L#OtvF3ZjT0x)i%;G6#LB0=-=sigyWIaoAhHD02wdm@^WU?XIJq z7VYv7h6MPF*i*Y-_O@E*%8$tg?~Qo40?xF+QXiT|FBBq*sPS7`*Z~Mxn)1$8 z`nKxNQMEd5L9*kS3n$?kU|6G4Uag~Q8z@nLXtVKz z#rD&qhrz@ZI8{~*7$|k}urir>C1|l-VcBG;TezlL1a&)kG4i}h-z;_{++FS4=F@o) zQh9R*UFXopAlq1WOs|4-tzEq}Z=@)T&R7>hLmlX*1q&XlT{BP|wel&ghh;=kov*rQ z6`8#_WH4DOXHCwf0{Y@kr7#pkSer0K@B}n(6H$?4V{G{+D83>1D9gh3cz}V9DMyrr zMat@LzB=z%f4#~1o?I&Y!|Zgk+%bO!0ag&=if=}G^7~Nl^F9ijPpX@)Z_*D6UVS?w zh9X2iS-&M#YXG|Z-iR0XtvbjybY#j9Ph3Nh5u-!tOZ<2&j!#Na{|*SGA3HDeyQSSD z){R;V6g*obUbimZqF^|+*-7s0H(yzpEz*&>_`@&8fi%=h)A&ei!Rzd_uQnHpPc0@_ z<=#NM0JqK~XYa}lUlv@yEge#VnzIQcDg*@^8k?+1Ac}2GaLEE+I@*0 z06-vMAOgTEKIPwH`OCon4)f0jesS~OlKwlOzwGp7*nige)v4Nlbbc|ClYB`{eir`KAK72k{zX)NIog+e+uz!efXDtno&KAB`%?WSSM;|!3Ls4X zR{sxk^q(dT(D+w-p0p|G&lvwt3V(XZ2Qc6NYzi+2`f~Sp?&z173jeD1Uwg?*J1;q! zzwLzn8t)&B&3_vFGl}q5d!8)?Aiw|y{})Q(pD4d16+UbJ8o%5N%@-8ImlJrIxBoW8 z4hZ;vm&L!d@bZfKw}nUm?c&+Oe=e;5Y5sqLR|Ft?162QA(EW4rFH5?=dz|>I+V2AI z%OSr^jDH&#CjQy)UvdAZK|fQ`ezj-N5&&}m4EirS?@4&y>v+ff4OWl9($A8ZK z<&OMp;TP}-6n}5w#s2)#7cbdzzYTW%*K~fHdTHe)+2*&EK|tB!PpAB}@{@Y=|J_O> g;QaD8R(=vXq{YAh&-^pV2NP%;3iOIM0f{~Ap#T5?