From a449c6ca81e93ca2a3891dc3960c400ad7e7f4ec Mon Sep 17 00:00:00 2001 From: yang_shj <1069818635@QQ.com> Date: Wed, 31 Jan 2024 14:01:36 +0800 Subject: [PATCH] =?UTF-8?q?#=E5=B7=A5=E4=BD=9C=E4=BB=BB=E5=8A=A1=E5=8D=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operational/main/constant/MainConstants.java | 3 +++ .../hzims/ticket/repair/vo/WorkTaskPreviewVO.java | 6 ++--- .../ticket/standardTicket/vo/CensParamVo.java | 2 +- .../scheduled/scheduled/AlarmScheduledTask.java | 3 ++- .../scheduled/scheduled/MonitorScheduledTask.java | 20 ++++++++------ .../scheduled/RealTargetScheduledTask.java | 7 ++--- .../access/controller/ConstructionController.java | 7 ----- .../service/impl/ConstructionServiceImpl.java | 1 + .../repair/controller/WorkTaskController.java | 4 +-- .../ticket/repair/service/IWorkTaskService.java | 2 +- .../repair/service/impl/WorkTaskServiceImpl.java | 29 ++++++++++----------- .../twoTicket/service/impl/CensServiceImpl.java | 24 ++++++++--------- .../java/com/hnac/hzims/ticket/utils/PdfUtils.java | 2 +- .../template/work/work_task_template.docx | Bin 19612 -> 18748 bytes 14 files changed, 55 insertions(+), 55 deletions(-) diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/constant/MainConstants.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/constant/MainConstants.java index ac7dd89..6fbd377 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/constant/MainConstants.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/constant/MainConstants.java @@ -73,6 +73,9 @@ public interface MainConstants { // 开停机告警 String START_STOP_ALARM = "startStopAlarm"; + // 数据通讯中断 + String INTERRUPT_ALARM = "interruptAlarm"; + // realId获取 String REAL_ID_DATA = "realIdData"; diff --git a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskPreviewVO.java b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskPreviewVO.java index 88110e8..f2c503f 100644 --- a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskPreviewVO.java +++ b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskPreviewVO.java @@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; +import java.util.List; /** * @author ysj @@ -38,10 +39,7 @@ public class WorkTaskPreviewVO extends WorkTaskEntity { private Integer groupCount; @ApiModelProperty(value = "工作地点") - private String location; - - @ApiModelProperty(value = "工作内容") - private String content; + private List contents; @ApiModelProperty(value = "计划工作时间") private String planTimeInterval; diff --git a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/standardTicket/vo/CensParamVo.java b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/standardTicket/vo/CensParamVo.java index ebc35d5..2056c78 100644 --- a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/standardTicket/vo/CensParamVo.java +++ b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/standardTicket/vo/CensParamVo.java @@ -18,7 +18,7 @@ public class CensParamVo { @ApiModelProperty("结束时间: yyyy-MM-dd HH:mm:ss") private String endTime; - @ApiModelProperty("状态 : 0-全部 1-完成") + @ApiModelProperty("状态 : 0-未完成 1-完成") private Integer state; @ApiModelProperty("结束") diff --git a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/AlarmScheduledTask.java b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/AlarmScheduledTask.java index f6b7552..dc3f1ea 100644 --- a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/AlarmScheduledTask.java +++ b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/AlarmScheduledTask.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Component; import java.util.Date; +import static com.hnac.hzims.operational.main.constant.MainConstants.INTERRUPT_ALARM; import static com.hnac.hzims.operational.main.constant.MainConstants.START_STOP_ALARM; @@ -40,7 +41,7 @@ public class AlarmScheduledTask { return new ReturnT<>("SUCCESS"); } - @XxlJob(START_STOP_ALARM) + @XxlJob(INTERRUPT_ALARM) //@Scheduled(cron = "0/40 * * * * ? ") public ReturnT interruptAlarm(String param) { if (Func.isBlank(param)) { diff --git a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/MonitorScheduledTask.java b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/MonitorScheduledTask.java index ba64a08..c092e7b 100644 --- a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/MonitorScheduledTask.java +++ b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/MonitorScheduledTask.java @@ -29,8 +29,10 @@ public class MonitorScheduledTask { /** * realId刷新 */ - @XxlJob(REAL_ID_DATA) - public ReturnT loadRealId(String param) { + //@XxlJob(REAL_ID_DATA) + @Scheduled(cron = "0/40 * * * * ? ") + public ReturnT loadRealId() { + String param = ""; if (Func.isBlank(param)) { param = DateUtil.format(new Date(), "yyyy-MM"); } @@ -42,9 +44,10 @@ public class MonitorScheduledTask { * 实时数据刷新 * @return ReturnT */ - @XxlJob(REAL_TIME_DATA) - //@Scheduled(cron = "0/40 * * * * ? ") - public ReturnT loadRealData( String param) { + //@XxlJob(REAL_TIME_DATA) + @Scheduled(cron = "0/40 * * * * ? ") + public ReturnT loadRealData() { + String param = ""; if (Func.isBlank(param)) { param = DateUtil.format(new Date(), "yyyy-MM"); } @@ -56,9 +59,10 @@ public class MonitorScheduledTask { * 集中监控数据处理 * @return ReturnT */ - @XxlJob(CENTRALIZED_MONITORING) - //@Scheduled(cron = "0/40 * * * * ? ") - public ReturnT loadMonitoring(String param) { + //@XxlJob(CENTRALIZED_MONITORING) + @Scheduled(cron = "0/40 * * * * ? ") + public ReturnT loadMonitoring() { + String param = ""; if (Func.isBlank(param)) { param = DateUtil.format(new Date(), "yyyy-MM"); } diff --git a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/RealTargetScheduledTask.java b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/RealTargetScheduledTask.java index 342847e..ed2e703 100644 --- a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/RealTargetScheduledTask.java +++ b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/RealTargetScheduledTask.java @@ -33,9 +33,10 @@ public class RealTargetScheduledTask { * @return * @throws Exception */ - @XxlJob(LOAD_EM_INFO) - //@Scheduled(cron = "0/40 * * * * ? ") - public ReturnT loadEmInfo(String param) { + //@XxlJob(LOAD_EM_INFO) + @Scheduled(cron = "0/40 * * * * ? ") + public ReturnT loadEmInfo() { + String param = ""; if (Func.isBlank(param)) { param = DateUtil.format(new Date(), "yyyy-MM"); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java index 1653362..4829bc6 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java @@ -5,21 +5,14 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.hnac.hzims.common.logs.annotation.OperationAnnotation; import com.hnac.hzims.common.logs.enums.BusinessType; import com.hnac.hzims.common.logs.enums.OperatorType; -import com.hnac.hzims.operational.access.dto.AccessPlanV4DTO; -import com.hnac.hzims.operational.access.dto.OperAccessPlanDTO; -import com.hnac.hzims.operational.access.dto.OperAccessPlanFlowDTO; -import com.hnac.hzims.operational.access.dto.OperAccessPlanListDTO; import com.hnac.hzims.operational.access.entity.OperConstructionEntity; -import com.hnac.hzims.operational.access.service.AccessPlanV4Service; import com.hnac.hzims.operational.access.service.ConstructionService; import com.hnac.hzims.operational.access.vo.ConstructionVo; -import com.hnac.hzims.operational.access.vo.OperAccessPlanVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; -import org.springblade.core.log.annotation.ApiLog; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java index 33ed9c8..d9a0fed 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java @@ -55,6 +55,7 @@ public class ConstructionServiceImpl extends BaseServiceImpl pageCondition(IPage page, ConstructionVo construction) { QueryWrapper wrapper = Condition.getQueryWrapper(construction); + wrapper.orderByDesc("CREATE_TIME"); if(StringUtil.isNotBlank(construction.getStartTime())){ wrapper.ge("CREATE_TIME",construction.getStartTime()); } diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/controller/WorkTaskController.java b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/controller/WorkTaskController.java index 90f1657..898d46f 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/controller/WorkTaskController.java +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/controller/WorkTaskController.java @@ -36,8 +36,8 @@ public class WorkTaskController extends BladeController { @GetMapping("/list") @ApiOperationSupport(order = 1) @ApiOperation(value = "分页") - public R> list(WorkTaskVO workTask, Query query) { - return R.data(workTaskService.workTaskService(Condition.getPage(query), workTask)); + public R> pageCondition(WorkTaskVO workTask, Query query) { + return R.data(workTaskService.pageCondition(Condition.getPage(query), workTask)); } @GetMapping("/detail") diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/IWorkTaskService.java b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/IWorkTaskService.java index 119bdf0..6db49f1 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/IWorkTaskService.java +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/IWorkTaskService.java @@ -19,7 +19,7 @@ public interface IWorkTaskService extends BaseService { boolean listener(ProcessWorkFlowResponse processWorkFlowResponse); - IPage workTaskService(IPage page, WorkTaskVO workTask); + IPage pageCondition(IPage page, WorkTaskVO workTask); void preview(Long id); diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java index 9fb5eb9..d6ef6df 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java @@ -48,6 +48,7 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.*; +import java.util.stream.Collectors; /** * @author ysj @@ -165,22 +166,26 @@ public class WorkTaskServiceImpl extends BaseServiceImpl workTaskService(IPage page, WorkTaskVO workTask) { - QueryWrapper wrapper = Condition.getQueryWrapper(workTask); + public IPage pageCondition(IPage page, WorkTaskVO workTask) { + QueryWrapper wrapper = new QueryWrapper(); + wrapper.lambda().orderByDesc(WorkTaskEntity::getCreateTime); if(StringUtil.isNotBlank(workTask.getStartTime())){ - wrapper.ge("CREATE_TIME",workTask.getStartTime()); + wrapper.lambda().ge(WorkTaskEntity::getCreateTime,workTask.getStartTime()); } if(StringUtil.isNotBlank(workTask.getEndTime())){ - wrapper.le("CREATE_TIME",workTask.getEndTime()); + wrapper.lambda().le(WorkTaskEntity::getCreateTime,workTask.getEndTime()); } if(ObjectUtil.isNotEmpty(workTask.getGroupId())){ - wrapper.eq("GROUP_ID",workTask.getGroupId()); + wrapper.lambda().eq(WorkTaskEntity::getGroupId,workTask.getGroupId()); } - if(ObjectUtil.isNotEmpty(workTask.getGroupId())){ - wrapper.eq("CREATE_DEPT",workTask.getDeptId()); + if(ObjectUtil.isNotEmpty(workTask.getGroupName())){ + wrapper.lambda().like(WorkTaskEntity::getGroupName,workTask.getGroupName()); + } + if(ObjectUtil.isNotEmpty(workTask.getDeptId())){ + wrapper.lambda().eq(WorkTaskEntity::getCreateDept,workTask.getDeptId()); } if(ObjectUtil.isNotEmpty(workTask.getTaskName())){ - wrapper.eq("TASK_NAME",workTask.getTaskName()); + wrapper.lambda().eq(WorkTaskEntity::getTaskName,workTask.getTaskName()); } return super.page(page, wrapper); } @@ -246,13 +251,7 @@ public class WorkTaskServiceImpl extends BaseServiceImpl contents = JSONObject.parseObject(preview.getWorkTask(), new TypeReference>() {}); if(CollectionUtil.isNotEmpty(contents)){ - StringBuilder location = new StringBuilder(),content = new StringBuilder(); - for(WorkTaskContentVO item : contents){ - location.append(item.getLocation()).append("\n"); - content.append(item.getContent()).append("\n"); - } - preview.setLocation(location.substring(0,location.toString().length() - 1)); - preview.setContent(content.substring(0,location.toString().length() - 1)); + preview.setContents(contents); } } // 计划工作时间 diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/twoTicket/service/impl/CensServiceImpl.java b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/twoTicket/service/impl/CensServiceImpl.java index b83958b..6dfc999 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/twoTicket/service/impl/CensServiceImpl.java +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/twoTicket/service/impl/CensServiceImpl.java @@ -65,9 +65,6 @@ public class CensServiceImpl implements CensService { if(StringUtil.isEmpty(param.getEndTime())){ param.setStartTime(DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME)); } - if(!StringUtil.isEmpty(param.getState()) && param.getState().equals(1)){ - param.setFlowTaskName("结束"); - } // 获取权限区域机构 List depts; @@ -87,8 +84,12 @@ public class CensServiceImpl implements CensService { // 操作票查询 QueryWrapper wrapper = new QueryWrapper(); - if(!StringUtil.isEmpty(param.getFlowTaskName())){ - wrapper.eq("FLOW_TASK_NAME",param.getFlowTaskName()); + if(!StringUtil.isEmpty(param.getState())){ + if(param.getState().equals(1)){ + wrapper.eq("FLOW_TASK_NAME","结束"); + }else{ + wrapper.ne("FLOW_TASK_NAME","结束"); + } } if(!StringUtil.isEmpty(param.getStartTime())){ wrapper.ge("CREATE_TIME",param.getStartTime()); @@ -104,7 +105,6 @@ public class CensServiceImpl implements CensService { List operates = operateTicketService.list(wrapper); // 工作票查询 List works = workTicketInfoService.list(wrapper); - // 工作任务单 return depts.stream().map(dept->{ CensVo cens = new CensVo(); cens.setDeptId(dept.getId()); @@ -119,7 +119,6 @@ public class CensServiceImpl implements CensService { }else{ cens.setWorkCount(works.stream().filter(work->work.getCreateDept().equals(dept.getId())).count()); } - cens.setWorkTaskCount((long)new Random().nextInt(10)); return cens; }).collect(Collectors.toList()); } @@ -153,9 +152,6 @@ public class CensServiceImpl implements CensService { param.setEndTime(param.getYear() + "-12-31 23:59:59"); } - if(!StringUtil.isEmpty(param.getState()) && param.getState().equals(1)){ - param.setFlowTaskName("结束"); - } List depts; if(ObjectUtil.isEmpty(param.getDeptId())){ // 获取权限区域机构 @@ -173,8 +169,12 @@ public class CensServiceImpl implements CensService { // 操作票查询 QueryWrapper wrapper = new QueryWrapper(); - if(!StringUtil.isEmpty(param.getFlowTaskName())){ - wrapper.eq("FLOW_TASK_NAME",param.getFlowTaskName()); + if(!StringUtil.isEmpty(param.getState())){ + if(param.getState().equals(1)){ + wrapper.eq("FLOW_TASK_NAME","结束"); + }else{ + wrapper.ne("FLOW_TASK_NAME","结束"); + } } if(!StringUtil.isEmpty(param.getStartTime())){ wrapper.ge("CREATE_TIME",param.getStartTime()); diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/utils/PdfUtils.java b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/utils/PdfUtils.java index 61267e1..490b280 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/utils/PdfUtils.java +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/utils/PdfUtils.java @@ -122,7 +122,7 @@ public class PdfUtils { } //若为list则不处理 if (value instanceof List) { - return; + value = ((List) value).stream().map(PdfUtils::objectToMap).collect(Collectors.toList()); } //若为时间格式则进行格式化 if (value instanceof LocalDateTime) { diff --git a/hzims-service/ticket/src/main/resources/template/work/work_task_template.docx b/hzims-service/ticket/src/main/resources/template/work/work_task_template.docx index 94a37140d07743cda1688d8b8bacc36bc691a2ca..c79f0f5450c139c4752e675b9d3134b0842c426b 100644 GIT binary patch delta 12363 zcma)iWmFzPvNkX7?(XjH?(PuW-6d!k+zIj$JUGGK3GNcyAvnR^0|CD5-Fxre-Cy6F z(|!6>S54PEGt*sN{p4hVI#WPNJTT9$nC(W%f+T>3YbZN*#8Ɇ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 delta 13229 zcmaib1#lg`(&aV8%uF#eQ_PIlj4?CD%naAee9exTVrELr3^B#b%xuR@>+ikVegD3y zt(_`Osai*)p4RlJB^|XVL441ENci$;@Ad&AgXxzS+6)of<?O<41M%r=L%)t;Ze3r0RY!}3V$B?WSA`{aGpwtXam?K|3 z$ohr@GtZ`7DwF>Sd(wgb!T(LUChqpVvvbY zR*yvlnvcrWNkA#aQ$p7x8itGlZb0@4Ir+Q4BQs%LJe*qk&k?655$UY4!v5{(v)UGG zOU=uYYp#Tp!wh-~Bub`Z9Du%s8nL#(^LSIt=2hNR0KWgpdffygRUpmW#`7vuYQ}wO z`xY4YvcN6s{{2gWm!3}jAf%{Aq1=1DPj-bH2=@KgyA8@BO79&1xF@P>Dba&ju^R=C zOQ(bP;(1Vfu40@F!SnTwS!U5gtBis4(Tp5U@yr1uK|Hl&qb#*m2+fjNj3r*_QdFKX z##QloKyHlV!a1J!QM`9Wsy~#n927Jb004jkgez`~=$H!4DMA1MUXTC)`iIoa!4#zI z?BM9aV(Q>*&g^Mt8=EAm*vE<{c@JDAyB4Zj!+};wk`4G-fPo=N>YgfS$7C{8uP}4Y z1H)h46Nq-uEi;1#jhMRg{<^=yvE*7Y`VDG+MD`$p8d@^Xi>kXGFwVbKi2YR8Y06<00?y!6Q zzFtk~`6d!l;Pk2V9F}1#J~BG8czmJOpU=pSljXKoS8vykPxGEng%-qAF8;()Ey<+J z?j0vBf5O$WpEr&azrpbUJpfn=AVk8YQx#DT0mhZ%gL*8(|J(j%FD&x(ANEK8us`O% z?GILgA_5Hyj>lK&^DoCW>5B@`{`e&;GgCE1NhMP%{<1Nit|s6)y|eTD&_3zIqTewJ zK@?Kgp@Cln5hy}iy<%|2{_t0;5D)T%V2&$TgFIN;c#FQPQ}!a3IMk`5wwoe(d~?0c zDY9n~m#o)Ri0^GBY|W-M3xnBP~E zVbnW{V=w}B+zs-_I;A)A9A-MDQAH98s4&n`y>P|{(Ix#iwjLj$0{{P@1FxGiqI@n?JMf!TYu)&|C2Osw;uh%N!(s;tunex1~n|cWc0f!NF=9y~AaO zKXzBeP6x=9*}>6zhR)2mi0F>br9Z{adUXxF=z_`jWkB|LG*QwEbIkOc`Vs&-zd5{PrY7+;k40g8a?vKB$|n zu+QPJ%+XaVw{zI$ICgB!62D@$W78Q*Mp?xnIZqWEqRGe1eMg)%cB(WgUcY9Z!A5@h zh2GS+0}t|T>Kwk`-h4SxBgf8?PWWEYhxtxnWSnEWd&x;XpBRmy#I3_g#CTjxu%+1Z9;>Rv88gvR^5;rqj6*L&F{O1)je$Pg-K zpW&OwrB+62z63iu=OwhA+h|?u|#rfF%(~c24TWBVjs`5=MC~2w|`cu9!{Aj){oR{I2 zCB?|lJFgBfgNFUUV8Re?QyX%#gb*Ytk(XttH~kO_+4Az(5<95Tz)diHRy7fj!R5iw zO{zWVrZfUZbRf$?_>}$FjPpPWlOu2g=N(LpC{CJZrYsOX9dzZ8&rC3YtJmWRN0M8p z!W+Vv2y9Kmy82GOpmrw#I{}_L#L0J|Mul@qFgfz@^v`r*w(IK< zDFm|~Q`NA+%la)-gfj|vC+9-95#AgO`@FHczqQnpgHd)CSOuafhu_>D{m~IJ%hU@6 z&jhgc+)Ia&UC9%_y*~-TWe(Ul2I2G(w8yZ8UbOJgo>K&s_JAaWEf#9%G+EiN>|U;4 z$qRwio`)rPYJ1L9{5rxE^?CzGN#^8)8^&qwiZLEzf3Bu4DAF%PlO;8MSTiWE2ftCf zH)@|wy^#3t-3Z5BWSxYs5ME%$tW(yoVe`$wRo1*ZV|jQJkz|-Yo}SxQWqRfw4z<34GtNCRaB$F&k&sH!(S#WnZErdRAqVWZ)g( zhXvHvAljngygTM4*^{hQBwV$hSx@U!22?=)Xc`8%ceQv>*JsLh}uk;LJ7;y!Wdv zn{nd<*h%PG@5_B?_Gmvfa=rFZ@O)J~gp2s?0`o17n`hX$t4CA=;>ijwUQKJG&;a)D z0f_IXQL&hw#_);W97@R2lAkzhMUE@O&OKy39uVUG+G&G6eK zQdphw2=;j2E<2l>Pk4C=vC$`5XF!SG=DbQB_qJ7rPs3iokYcIDSth38iSPtRskAp! zHYU-<-Ha*h0~4wwx@L8c#>~;kIo5C{AIR_C6yXLc#ug)|S7&(qGjd-8LRVb=}(lqZW9;t_4sW-XUYZH zk{-0v6UY3?-z@QoWg8oaQ7M-d(!-Nl)$>!iE2hNT^p=%fVoAj;nZ15Q4o>B-Z^zm} zxArzNt!v?E1~d;4j%`ONrg@sSv2Mri9e+p*J`hy@GXpH}|ByJ9iB-7}eqfxf#K-5b z92gVjh(Xo`C7u+K?j)^0{O=P4D?dxKhSj%1emr~8$4RnOuDwnV?`qKb7RP~6#o=lY z<9}u-RfMkwlZ^Ta$M*h&>8NFWG~qlVt}u(`K&b+{k`hWgqx=7A2>Rc;{#(VK2=3Ie zV&tY0t^q>1-K6l$A9U-$g17D1?{|OH+Uppr0d~>csRP*A%pXb_f3!TO+g>Np@d2Lw zADKjn*M35|Aan=DG&w?R1-mHj)L|;rFDh#7A0-2XycM;jo~GJ*5X(3Y(2UUxd|(wM zZV(~)VtHrVN&9-{TKf*fKE+iGs0$`h0#*A7( zeofvDU0oRoJh!HaK)0%v+XWA!yL*S%643HS*W+Hw+Kr(hzFAw&);9>@XyxQo(2nc{ z*uj29NNTuq0roVe_VhW_|3bt|b#BkNR<1*E5Zp18VNq6@{8^VGtamL7U>nY;CH5P#V;QIV9B!#@>7)yveIZWfq|CIM)?GI_>$Y)ip2$wy6tu9F zWmQp}>(K!5$DKH33Gm*wsp2{&Z@*qY*(;2m{XpqF`=7fZjzQ3^}fw?QX}ITy1T`-#maG*H>h z3`(*)&Xxr}Q>g#DL`o80)@d}yJjkKD_F_zny=grUGOpT{zUuh}Oi2HpG5ss#1i6^Ix?0&={wwM%*3flX=E3sc$aqDK zxp%{~g_Jp_TOxxX_$lMfW<~9Vc?ZF8xSeRG_i*b&xg;W&dDhrYnp+V!;lb?i{y3^_ z^GQ~X?n%^@2!;u*?Dr3?zroK(4~GKZti&ax(y^vc=ktO=%x^C{cGxzoFaxfL3UHr6 zH;p8_gIG?#s%D6IribbQfxp|-zvI2AM|06wYvV|l?S5i&mBRmW;!cC46ucaB3R{ff zWVanLqb|dAFj(I2EL2K23yKYU!tXM0p`A$zW}PtAh3Ml4=DX+|4idb7wZSu4$J6e> z>5poVs*dVipgeJ8D66j;oYb47$C51p<$a-!;2>e9QMVnJSc4K@DHR$lwfEVuvq6|E zoXU3RUN{wb54C+}T%XDyA1%d)sP%{zGfY_q3Q>mHo_+o5ricB+gMCYNSC5n3nAoI- zpd%1VgGh#*!4_hP?G}vKzb_@bUcL>f9(5#T6iy?$!X7Y5DmT9jAdxd}q?lj@0T~1H z+riXyDM`h{)q$kQc9n2p1m0(9&_k-3P(76}%hI90XM>QK0=s2_J&=wzY{9&A85v31 zCT7#EC+^na8RXa{m)QkNxXNKAAyl7a5@#c%I@CZdF~>oPw@vDqrpl74**?V(APPBwA|WaRg!v)D zkOx)QHXa($q$CjFf0{V9aj_;-SuEucf3t9=NnR>i18Db9$)shXXQSFyIR8#kz|KD( z5$KVL@5EW0O8P!AZppf6_nmPh2R)iwz5C0Qq&+nxxc6?B7>lmta!x=Q1pYC`yZQR=QqFS172&jv>v0#jwv9 z{yQ)=`hXC>CsZDxk`u^5kO-?BkEg%j>cV$k`51gAd%D!l>&Qoa%QO1Bqx#lC`^!+; z4*v7fWI3YhFk3aKll$wV&$@~^RDRy+>K<7#p8Vr!@iRRmI~K}*o)50qoS)rDxOqVY zD17nRS2t@nArr#4&s_3<+YeA-efEh~`Ydg~B10-}#PD}CRJgpegHl%Pv=j>J2<-INM+ZaxUzodgCSl)e^$|Nzom&D z!MXSBB=;?$wOU&yi;3^v$N0Ik3I+l)<+DPK4?W3B6kp7onnIpMnfY7(TcMZXHG9@GBw4W6jT zhmlB~L}Qe|_9CY=3i;fy+QMPjUNwN{rxN4uJo~S&Mqm>CHElZy2DM22mCaPFP>1sd z$ywC&v(Ut^91kg5Py0d^(Td|IJjDLmInShJ$T-C(!PuA5$)Ivn{$&|){-tS0-Ye&| z&s7Uk-u%l};(fPuQ7)(0Q7U!)VT(jee$4n_Y_kRAIufFU7m8L5R&+WB4v_$(&qt9! zB<7m)SXV^^5z58LSV<~V=^xUq_TzM>Wo8(-f4T?Qa#1KhKz zXI!o5XSz3|)gHdM6sd*{2Zk@OAG7&2cK8NtY!w*9U-?SVws-&l?lc70i4Yg0zvi%_ zkqR<2dWRKNYCx^KwbRA(N%;8)iJ>&rh`etlqS83y`SgW_>+S8rf4zzu zxot+nl?GPr(7nTE^yD#hC;fKMT-Tn?Zp6U4qTYOQu(^Sf@XXxQM>i#9uiE%anp~(! zpdSa5xP~oZbqn2*Pg1r=sm=YQMS2vaN2V=+i`qZb3Fh^kaM#3|hl$M_o+vZQ--Ia5MS_Wp_D42VrLwC6^uR}n7 zLID%G)j#XC;fppl+wIlbm4EdoeRiGJdsb3sLp8UQ7P;2~2EJX3+QrsDbsD}`Nm&wE z_Ff{HtTz`Oug4bqOm(Y*uo3%k=8BQp(chEiI(>gYBCm@dbgOC zgU8(!Hg5NOv$HoR5Slur8!#27TJ9a1DAlg)hZ?#0n@t-xQi(>gT2{`O-4uLe=Jlm8 z7X1dU*&%~*XqA5s{5bspoL zO4e)Xq_H}ARP|pH^d&@b3lvY4Gv7>Pz3vW)%z94p82r*PGO5jgDzwFvN4?o-E7pgV zHWgU2{aBxm-|bTrXS%8MJmHmiU#-5mFr92ivo;*I)tyvAXj8^tm7Mm~P1lZI zb4EW6)n9mg)BMgE1SMzRa(P?ZLT?jghOBjC_chpKVm-j~Y@rycFgSi<nMlV5ipJwsTBThx6wKz0rnhdeLeXZC&wEhmIN1Fh<@5>=E|_dB;{f3J!#X zHT+$40o=0lRJtQprj_|Gif(a4;v(gPN^n=oPE#wvw)FZ$IJzvJSQk8=u~^?Fx$Sk6 zM$&(;ODe2gfpSD)LUro;f3`9hZ`Y^$es#wlSXI3fv_Cx;5%ATY!`5XC^J%Z(iajsM z=TFVA8(aE3(njK)hRQMs8)EDrStb;FWo_to?jOsTy-+`(9ss zJmF2eaV@Eva=G@gh930i5C2n|CX29Xzax5x_+hFR=)=$AM7(PkcWB zwM<6?!b5zQ=W`s7j`OEqenTWoac=!G^6V}M=BTh2Yku%CR^#1J7xbyp+TbeDmTH-& zI4yk1uFG{M-{3dIUo$^z+d{($tTET=h8Ma=1M7zEph?Xdn2(&tYMmA4+}F(^F}phU z{C=UB)PuC>`s7SY+jrg@=bFptxRLYV9w=H`?yx2-MM}O#Hy!JgX^b2YASfGRVoA6c zSPcJ?1%u4DUozu*G4{s~C>1zfeWD@?YKgQX%D#HjXcIeRMDFwwL~PWYORWP^4CIf8wVm0%zCbo5zVCGb0VyH`0`=Vus^18^uSAtr87@6w-9S=5mmYnK4GLsW7kM-zQ8oE;0pP zB~8!`2>f8>B7lYC3xixAE5blJ=v%%jC%x0pZb$4BW&u!IYAUkoe~8yc=}*Ue3fD4$3K$Huv~nJ7YVc`Z3ZSQ{%EJ zY^ztZ1Ry~;zJBt1wKRv5uXXd&^e^y>@+XZc>^=}^yT+{Q*=;|*On|8V8~h98p;k+W z!*y<{mY+airAS0078lvzDvu_7U6^0JOhhO*o^n4SqJVHuI3A?;$ub(9P2suzyB%fb&a{tbmxO9ToR)~gunafS1iMHiI}Fn8`tTWyOHwqGIV>!z zqlPEb0QYFzUqo6%0}uDjnc?En5%z>IMm1|#hG1X|4F3D_y@;UO!>FWRO2 z$}{V(N@HaeY4bRAFMQY7SU~mC`KL#OkZ(OWBlPn0=S-H9%oa^I+zOm-GC1#N~*dzRSqB7({Yb7jf~(>Vq1#Rb4KK61z?f)Z=C$$r;o4Fk zsG*AM{v$9Yin_)mJ_@!B#V!x=I`?)QRdf%1^$Vcat>1}NQ-J|ZVR9*`$?`ok`vZjj0b$WhjZfDtN}~6u9=2q0d)%%W zvNfp^zpxEhusySQb_i@zL`cYyT)`zu>pt^bmq<48-@zsEoHfUvx#76dF6SA&?!pl# zdbBN~)iSW4Gd3#rlfQQvuO$q>wx@^}TmfPWO%&%QUr0fcEjjqCB2n~>9C0M1$dpqq z-u4jZMS(`~H?3TyMS+{glym8?i?Am`Nv=GyJw`EPpH39EbI6fHIMMz(gmks*h)x&-ipQ6-FqrQI#C4-x-}FfY?L;!QdS&=;A5QA4`bIw9C#H|eg~ zl=_A$30pu+R?1>zyqv@NJ-^!$u(?m(_?^FbHsMKg8B)3RvhDxL4=gtp|7B&4L7`xh z)Bj@G&NB)9I zj(L^mCdNNGERE@e_+k6W0k5#UIN7Hhwb_Fw-zPm6_7Nb{8hS_Zi;o*GxvyTBi7l5h zNNz6swq0az95W1+*g3d-il#~oWT@@!_qWL7-J@N4=W3^`-Rp%@zvaXvU#|kis8(g? z$7mmZ{*)qMIDu1Ef_V`Sw{n9&JVX1HxLjY7ttHuSD4OmHH#oee;%CrmP@ur-gPNut z!J2{*MQZ+4tJ+Y1b3a#3`&>^>|1?=Asx9=;^+gJg29EaMYLg>$XCS^CDCCU(h~I?y zBYH6qi^E>9~S|Jn{O0RL=HHN&bOy@8tEtqis*cZyY^rLe}w((w4{URE`& z=zJgNIxlQFuZBt$q@3=RjK``xyC{58H<_ZUKbcYPTc%Xf$5T^-&^#SdSB zp4-4cSakdypQ%r#R0p-kQ9|bvo@O(W&~~zZ2r0LwI}y0w6jI?h)HmywypvI>R<9%; zYe?QXI%VDZR`;kC8`~$Yo5-JfOtcCpEP+BwtaPp)eJ*gc7t@gkMRF<2ArEEbH}hiB zA*;U@qgwj;>-3T0Hrrq+WQ$u?-XUtc8h_;y|161vn<(?0%fu+q`iLu9@oPaa57W=3 zuOzB6OCAs>f_V{4W^cmhab+6FlJrf*x6k{gYjn@qt$NU?y7C0g)MqG<|VIt**evLbE;K$d(97IC9t_ zd_rpXsE%fe5p;>FsnrnlIWBQIIuU0d1f#G*Z0HDW@dW5@+1pHFD-LkN{{8lQe)7*) z9k|u^{j6|@w_9PKcp>kb3lbvX7u4RTQr0MTu)Oqef_f@4#65g#*M;8f?B|ZELxU&* zhjdapV(BOW@ADSD~MDPO1pms6E5Bu+v+c>zdJIS)$Tfb0_Md^T+I?r}0}zSu8J zGEx-&yJjdkPwQVfZn8~H%~Nk!bU_d7p{(q@cT22c|td( zkjg4=o9hVXb>b7|Q+UpGZc?XP!Gjr{lbwFEH8qcHu|5@i!s`4>?CXF1y0Q6OaWHw3 zk8xAm;_JZ2g9_6UPp^sC)Cth&y4KwG0X@X<#*a}wAwZzZP0!y5fr8Tz^@*OHzXs9# zHvA0Gq`#tsyz>NJ3Q%}BJ#{}-usRt^9?p{LM(xt-CUm09+~LKi&1zKGm|iA1-+9Tf zr&t;{rjtsOr9$aZhwX(p@9r}(#Bf9!(j{RVW1zb+H^ME+Vx7XN-C-?R>gg`8gBnWP z^nh%H&5AcNjNC}s-#&SU2KWz5k6vlsT|>3!j&3{h^5F=8Bw zf3Lr6bQY(==Y%QS^}YvT{?Sk#C}vcKG_O9$dbS@e1>(h6&BJ10A}w9!s)cmLV^iUy z?w|7#;gY>=S+>BQJw4uF)rSl~fc$&WEVH75eIW~OXq_|)tc1RdyCkJwumXX7^;* zN+nCd!+?{Vs@v31K$GnI5)Y{XnrIK_d7f%vdrGN%<~8uXW7DV|((l;2Aqkhc} z5*)l#)EqV5Z`#iBdCgLbX%FSFF5{xU;1kYTmP`Z*b3zU47r8oRGMu2>yqPT1ezB0R z2V&8su-;@5XWj;tJ-eqnU(^IineX?nX0Q&I%_efKw1j4qL9$8OYQM!@4E#w=1o}M% zE;7b^w8xztw6$nN&aK9h&Rjfc|E9`4ml*S2l=mSHB!;srTXS=;ZD7S+7@6V3%zYX) z%KBmXR|}qQqzLy1TGU27_t7G&yWr8GasuztrWJxdsWk4y?(l13T0?Rxg>US6?1bs6 z^taZ_9B~zr2T)|{GLpnw1EpZx+eZ@xI)n9(Y1r*?QwT+dL)gc-TSKGej2=f zAtdy+{js&UKhgjeCc2FiI$e7{f7r_1+*A_w|2>o=@btDj0J~Xn>i6Wsi1RuUoa_I> zzV1v~r(p7{makj%Oa=vRzODo>zq+NiZw=wS6n`wM4%FP*fc~C^-F8Mn?OVnNWkN}2 zK(1&HNpe>w(4WjPmOR4BH#TqFZ>-%n`>{4gjAqM5+AK_o!oJE*j&hPu71@Uoo*jpx zTlQ56Ki+-N&-3Z8(291S3j*OxomdU8{fI{8 zS&9`Y_XxG~Z^Ra2pF^zI@w==(CV*-fdG8MNb(nar(qkwhX%_31NcmxxQ9GIUF0-6LwAnK(zTgl)U+HfX(Wm? z8N}kKpJ*#>^n1-yM;?x{Bx2YK+D^KkT*?e4hDcDXKaPk5VfCk#zxbQBUsl9mGkS)YsSihwFSj)>5vu2G}=Q6xP*BdsjDm zdu4q_ox)L60~Lbwl9W>q^mIjyCq60428Qw@@=<@TKA&+??$aT{W2RRnruwByB1}NA zavJyL8TEn>wRkUm!K~;c;ira*T#d2gg9n9?-2ht zmy_yXYqafy$N3u`0KoX)WJC)GdslU16Wf1rX*<47+h?(2`QNtd@1SPhEPNIXL8r?iE1XkQs=9@=j&1kHPmU8;M~}EF zp4{?;)n-A%Y*NJF3?0Wd`Kh6kzqC?0Wk2+$#AH(QkU0)tPH!t_yfYcJ@llV9Golzp zE6V9hJ00q=F=vS?l4LwH7?{3&iuXQ3EEldBE0m8+((s)?G_ZRC>|o9|Pd~e=cujEJ zfuziBdd&8Y{l*ave-vq7{c&A8_WL;}%OYFFZh>^Fjin$g+SYC--kU8IWT}InqB&HH z-<2`kQkD1J$b$x9H`4aWoi3&12C}w7CSpQov)!A%EMW5s?r+Zvt+NizAlWo!)iNZC z1Q+pW=q*4sra-SLQ7=otFSN&IwdR85TF@~UI``Ih1OwZjKivKF{YNTn=LQ^p?7P>N z3|>;TYi02&qWNMF>Gz{slT(VaNt{|!Kp@RA=7m=ftV!u9?mx9+C6#c&l24UZIlDX| zhq|LZ-t3%Q7;eA@kOH7#06>phNc7yl5TXky*4w%~j9Q8dl1+%>{HKQ~VWe?tgrK!R z2)q|sBr>eTKBEU{*G6{E4q(j6*7@r#d0;S&M8V4aE9%nea~zt!A`991%r}sj9zZGD z01MI=-WM)gq!JiJW}F~|B|jc(WpFAT!63rlYW;vD3xQ{W7P)=3heAdjkKS7k;c!GA zY98#KNv8ku`grD~FAs=Ln+ko70`(Mw-JtqtbBd=KJ3Qf_ykPWy&+538RGFhVl0$;h zdAPJ1kWjZnlo3nz)Dp-~eRmWICq<%A3E4DXxAFS4MFD^y3Q{S6l1f8Oc&Sv4BvLlP zyUUp3JIg6Lht6f&K2!{Ft?uXrqLu9sqhsh`iy7j2-7S(d2E`TL2f^VNVhHkL(;h~Z zetH8afuLcHeGvs-TmZ%W`Qrm;1b2#3f|ACp|HTgveG5+aW8(Ky7TdLzC0p6{53r6m zS2+pfWV+q(VBP&>_47)KRr7GY@6f(k*dA*my&l;>^lLKdR7-xtI<2RJ!9|X!*`LlC z)5{-5y+|uhcNRBch1CAZu!IdpxVhL!5>8C!_OPyexMT$fSwfVhkwa!?vuC9sE?Q0V zN6MKp*jdXQlLb29uXA(>4oStg4gS9!c2`u5hA4vi5ea^mvxo8MOX@ViMVqA9@(9=L z{e4Mj^H-2@02Ka;Jw^@5zxym<&s6vk!iOQo#CyIP3wO0TNn{l03ydV1b(+;=>e1v= zoX+{E=EFDb@oAQyYe4_2@=xU5|L~8nGuR1`%g3d;>q7Kk1_TbP%pg-KjJ4{i2AF;YZD%QukM&x z97L|@=?$kiXBa7?a{;YPI(=61KQ=#Faj*5&yKA0b37NBFjZ9gnQMm|&MCkV2eiNs0 zwo_jqpV2bIIfmJ{m{{5b$Gc`BfE1G;(*=miNuAu5w3ADofnd3AbGE8jQ8M6&t{Zl9ZqR#pMU1OKCtvgTG0!L-I?4ze{~4`aj+R1ppBJQ|IIQcY9`% z;5jK~qW`hu{jW0^{{g%ZfJvk&i2i$E`41qC18g8I1R1~u&XMMZEaL(%NYfDhH$&+^ vaAB}EkdpAfN%Q|HuLh?B1t3zvb3h)*E-Wyr3<(Ox$518@4FK=~|AGB4lPw3O