From a86c16bde8a6d953e713109951f3e5df1e20f39f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E4=BF=8A=E6=9D=B0?= <9463626+zhou-junjiezjj@user.noreply.gitee.com> Date: Sat, 29 Jul 2023 10:54:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- acs/nladmin-system/pom.xml | 4 +- .../nl/acs/agv/server/ZheDaAgvService.java | 2 +- .../agv/server/impl/MagicAgvServiceImpl.java | 1 + .../agv/server/impl/NDCAgvServiceImpl.java | 15 +- .../server/impl/XianGongAgvServiceImpl.java | 10 +- .../agv/server/impl/ZheDaAgvServiceImpl.java | 126 ++++-- .../ext/wms/rest/AcsToWmsZDController.java | 2 + .../ext/wms/rest/WmsZDToAcsController.java | 3 +- .../service/impl/InstructionServiceImpl.java | 72 ++-- .../task/service/impl/TaskServiceImpl.java | 391 ++++++++++-------- .../quartz/task/DeviceStatusUpdate.java | 9 +- .../quartz/task/QueryZDAgvTaskStatus.java | 3 +- .../java/org/nl/modules/system/wql/sys.xls | Bin 230912 -> 100864 bytes .../src/main/resources/log/AcsToWms.xml | 7 +- .../src/main/resources/log/AcsToZDWms.xml | 33 ++ .../src/main/resources/log/ZDToAcsWms.xml | 33 ++ .../src/main/resources/log/ZheDaAgv.xml | 33 ++ .../src/main/resources/logback-spring.xml | 4 + 18 files changed, 488 insertions(+), 260 deletions(-) create mode 100644 acs/nladmin-system/src/main/resources/log/AcsToZDWms.xml create mode 100644 acs/nladmin-system/src/main/resources/log/ZDToAcsWms.xml create mode 100644 acs/nladmin-system/src/main/resources/log/ZheDaAgv.xml diff --git a/acs/nladmin-system/pom.xml b/acs/nladmin-system/pom.xml index efab3f5..5f6fad9 100644 --- a/acs/nladmin-system/pom.xml +++ b/acs/nladmin-system/pom.xml @@ -489,8 +489,10 @@ **/*.* + + **/*.java + - ${basedir}/src/main/resources diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/ZheDaAgvService.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/ZheDaAgvService.java index 3667261..791cadd 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/ZheDaAgvService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/ZheDaAgvService.java @@ -29,7 +29,7 @@ public interface ZheDaAgvService { HttpResponse queryZDAgvDeviceStatus(); - String process(String jobno, String type, String address, String action, String processingVehicle,String feedbackStatus); + String process(String jobno, String type, String address, String action, String processingVehicle); public HttpResponse markComplete(String code); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java index d074229..20b39e9 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java @@ -27,6 +27,7 @@ import org.nl.acs.opc.DeviceType; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.service.ParamService; import org.nl.modules.wql.util.SpringContextHolder; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.util.Arrays; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java index 09eb276..28be8fc 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java @@ -19,6 +19,7 @@ import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.modules.system.service.ParamService; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.util.SpringContextHolder; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -28,12 +29,14 @@ import java.util.Map; @Service @RequiredArgsConstructor public class NDCAgvServiceImpl implements NDCAgvService { - - private final DeviceAppService deviceAppService; - private final ParamService paramService; - private final AcsToWmsService acsToWmsService; - - private final DeviceExecuteLogService logServer; + @Autowired + private DeviceAppService deviceAppService; + @Autowired + private ParamService paramService; + @Autowired + private AcsToWmsService acsToWmsService; + @Autowired + private DeviceExecuteLogService logServer; Map AGVDeviceStatus = new HashMap(); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java index b4832e6..dc8e7fe 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java @@ -21,6 +21,7 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceType; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.service.ParamService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Arrays; @@ -32,9 +33,12 @@ import java.util.Map; @Service @RequiredArgsConstructor public class XianGongAgvServiceImpl implements XianGongAgvService { - private final DeviceAppService deviceAppService; - private final ParamService paramService; - private final AcsToWmsService acsToWmsService; + @Autowired + private DeviceAppService deviceAppService; + @Autowired + private ParamService paramService; + @Autowired + private AcsToWmsService acsToWmsService; Map AGVDeviceStatus = new HashMap(); @LokiLog(type = LokiLogType.AGV) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/ZheDaAgvServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/ZheDaAgvServiceImpl.java index 684277e..a4f7bc0 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/ZheDaAgvServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/ZheDaAgvServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.acs.agv.server.impl; +import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; @@ -18,6 +19,7 @@ import org.nl.acs.device_driver.basedriver.hongxiang_device.HongXiangConveyorDev import org.nl.acs.device_driver.basedriver.lubei_conveyor.LubeiConveyorDeviceDriver; import org.nl.acs.device_driver.basedriver.paint_conveyor.PaintConveyorDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; +import org.nl.acs.device_driver.basedriver.standard_storage.StandardStorageDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.AcsToWmsZDService; import org.nl.acs.instruction.service.InstructionService; @@ -49,6 +51,7 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { private final ParamService paramService; @LokiLog(type = LokiLogType.AGV) @Override + @SaIgnore public HttpResponse sendAgvInstToAgv(Instruction inst) throws Exception { JSONObject jo = new JSONObject(); String start_point_code = inst.getStart_point_code(); @@ -68,15 +71,18 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { jo.put("task_code", inst.getInstruction_code()); //根据任务,下发指令类型 JSONArray destinations = new JSONArray(); - if (task_type.equals("3")) { - destinations.add(destination(start_point_code, "Wait", "5", "1")); - } else if (task_type.equals("4")) { - destinations.add(destination(start_point_code, "Load", "1", "1")); - destinations.add(destination(next_point_code, "Wait", "5", "1")); - } else { - destinations.add(destination(start_point_code, "Load", "1", "1")); - destinations.add(destination(next_point_code, "Unload", "1", "1")); - } +// if (task_type.equals("3")) { +// destinations.add(destination(start_point_code, "Wait", "5", "1")); +// } else if (task_type.equals("4")) { +// destinations.add(destination(start_point_code, "Load", "1", "1")); +// destinations.add(destination(next_point_code, "Wait", "5", "1")); +// } else { +// destinations.add(destination(start_point_code, "Load", "1", "1")); +// destinations.add(destination(next_point_code, "Unload", "1", "1")); +// } + + destinations.add(destination(start_point_code, "Load", "1", "1")); + destinations.add(destination(next_point_code, "Unload", "1", "1")); jo.put("destinations", destinations); @@ -86,13 +92,14 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { String agvport = paramService.findByCode(AcsConfig.AGVPORT).getValue(); String agvport2 = paramService.findByCode(AcsConfig.AGVPORT2).getValue(); - agvurl = agvurl + ":" + agvport + "/v1/transportOrders/" + inst.getInstruction_code(); + agvurl = agvurl + ":" + agvport + "/rmds/v1/transportOrders/" + inst.getInstruction_code(); log.info("下发agv任务请求:{}", agvurl); HttpResponse result = HttpRequest.post(agvurl) .body(String.valueOf(jo))//表单内容 .timeout(20000)//超时,毫秒 .execute(); + log.info("下发agv任务请求内容:{}", jo); log.info("下发agv任务请求反馈:{}", result); return result; } else { @@ -107,11 +114,13 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) { String agvurl = paramService.findByCode(AcsConfig.AGVURL).getValue(); String agvport = paramService.findByCode(AcsConfig.AGVPORT).getValue(); - agvurl = agvurl + ":" + agvport + "/v1/vehicles"; - HttpResponse result = HttpRequest.get(agvurl) + agvurl = agvurl + ":" + agvport + "/rmds/v1/transportOrders/query"; + HttpResponse result = HttpRequest.post(agvurl) + .body("{}") .timeout(20000)//超时,毫秒 .execute(); - System.out.println("查询agv指令数据:" + result.body()); + + log.info("查询agv指令数据:{}", result.body()); return result; } else { @@ -138,10 +147,10 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { @LokiLog(type = LokiLogType.AGV) @Override - public synchronized String process(String jobno, String type, String address, String action, String processingVehicle,String feedbackStatus) + public synchronized String process(String jobno, String type, String address, String action, String processingVehicle) { { - log.info("查询到AGV请求参数,jobno:{},address:{}", jobno + ",address:" + address + ",type:" + type + ",action:" + action+",feedbackStatus:"+feedbackStatus); + log.info("查询到AGV请求参数,jobno:{},address:{}", jobno + ",address:" + address + ",type:" + type + ",action:" + action); //释放AGV资源,继续后续动作 boolean is_feedback = false; String str = ""; @@ -177,7 +186,8 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { jo.put("taskCode",task.getTask_code()); jo.put("carId",processingVehicle); jo.put("taskType ",type); - jo.put("feedbackStatus",feedbackStatus); + jo.put("feedbackStatus","applyTake"); + log.info("请求参数:{}",jo); HttpResponse result= acsToWmsZDService.taskFeedback(jo); JSONObject response=JSONObject.parseObject(result.body()); int responseCode= response.getInteger("responseCode"); @@ -188,13 +198,14 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { } else { log.info("设备{} 请求取货,光电信号:{}",addressdevice,lubeiConveyorDeviceDriver.getMove()); } - } + } if (addressdevice.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { JSONObject jo = new JSONObject(); jo.put("taskCode",task.getTask_code()); jo.put("carId",processingVehicle); jo.put("taskType ",type); - jo.put("feedbackStatus",feedbackStatus); + jo.put("feedbackStatus","applyTake"); + log.info("请求参数:{}",jo); HttpResponse result= acsToWmsZDService.taskFeedback(jo); JSONObject response=JSONObject.parseObject(result.body()); int responseCode= response.getInteger("responseCode"); @@ -203,6 +214,22 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { log.info("请求ZDwcs成功,申请取货 请求结果{}",responseCode); } } + if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) { + JSONObject jo = new JSONObject(); + jo.put("taskCode",task.getTask_code()); + jo.put("carId",processingVehicle); + jo.put("taskType ",type); + jo.put("feedbackStatus","applyTake"); + log.info("请求参数:{}",jo); + HttpResponse result= acsToWmsZDService.taskFeedback(jo); + JSONObject response=JSONObject.parseObject(result.body()); + int responseCode= response.getInteger("responseCode"); + if(responseCode == 0) { + is_feedback = true; + log.info("请求ZDwcs成功,申请取货 请求结果{}",responseCode); + } + } + } if ("PauseOnStation".equals(type)) { if (addressdevice.getDeviceDriver() instanceof LubeiConveyorDeviceDriver) { @@ -212,7 +239,8 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { jo.put("taskCode",task.getTask_code()); jo.put("carId",processingVehicle); jo.put("taskType ",type); - jo.put("feedbackStatus",feedbackStatus); + jo.put("feedbackStatus","takeFinish"); + log.info("请求参数:{}",jo); HttpResponse result= acsToWmsZDService.taskFeedback(jo); JSONObject response=JSONObject.parseObject(result.body()); int responseCode= response.getInteger("responseCode"); @@ -229,7 +257,8 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { jo.put("taskCode",task.getTask_code()); jo.put("carId",processingVehicle); jo.put("taskType ",type); - jo.put("feedbackStatus",feedbackStatus); + jo.put("feedbackStatus","takeFinish"); + log.info("请求参数:{}",jo); HttpResponse result= acsToWmsZDService.taskFeedback(jo); JSONObject response=JSONObject.parseObject(result.body()); int responseCode= response.getInteger("responseCode"); @@ -238,6 +267,21 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { log.info("请求ZDwcs成功,取货完成 请求结果{}",responseCode); } } + if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) { + JSONObject jo = new JSONObject(); + jo.put("taskCode",task.getTask_code()); + jo.put("carId",processingVehicle); + jo.put("taskType ",type); + jo.put("feedbackStatus","takeFinish"); + log.info("请求参数:{}",jo); + HttpResponse result= acsToWmsZDService.taskFeedback(jo); + JSONObject response=JSONObject.parseObject(result.body()); + int responseCode= response.getInteger("responseCode"); + if(responseCode == 0) { + is_feedback = true; + log.info("请求ZDwcs成功,申请取货 请求结果{}",responseCode); + } + } } } @@ -251,7 +295,8 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { jo.put("taskCode",task.getTask_code()); jo.put("carId",processingVehicle); jo.put("taskType ",type); - jo.put("feedbackStatus",feedbackStatus); + jo.put("feedbackStatus","applyPut"); + log.info("请求参数:{}",jo); HttpResponse result= acsToWmsZDService.taskFeedback(jo); JSONObject response=JSONObject.parseObject(result.body()); int responseCode= response.getInteger("responseCode"); @@ -268,7 +313,8 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { jo.put("taskCode",task.getTask_code()); jo.put("carId",processingVehicle); jo.put("taskType ",type); - jo.put("feedbackStatus",feedbackStatus); + jo.put("feedbackStatus","applyPut"); + log.info("请求参数:{}",jo); HttpResponse result= acsToWmsZDService.taskFeedback(jo); JSONObject response=JSONObject.parseObject(result.body()); int responseCode= response.getInteger("responseCode"); @@ -277,6 +323,21 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { log.info("请求ZDwcs成功,开始放货 请求结果{}",responseCode); } } + if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) { + JSONObject jo = new JSONObject(); + jo.put("taskCode",task.getTask_code()); + jo.put("carId",processingVehicle); + jo.put("taskType ",type); + jo.put("feedbackStatus","applyPut"); + log.info("请求参数:{}",jo); + HttpResponse result= acsToWmsZDService.taskFeedback(jo); + JSONObject response=JSONObject.parseObject(result.body()); + int responseCode= response.getInteger("responseCode"); + if(responseCode == 0) { + is_feedback = true; + log.info("请求ZDwcs成功,申请取货 请求结果{}",responseCode); + } + } } if ("PauseOnStation".equals(type)) { if (addressdevice.getDeviceDriver() instanceof LubeiConveyorDeviceDriver) { @@ -286,7 +347,8 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { jo.put("taskCode",task.getTask_code()); jo.put("carId",processingVehicle); jo.put("taskType ",type); - jo.put("feedbackStatus",feedbackStatus); + jo.put("feedbackStatus","putFinish"); + log.info("请求参数:{}",jo); HttpResponse result= acsToWmsZDService.taskFeedback(jo); JSONObject response=JSONObject.parseObject(result.body()); int responseCode= response.getInteger("responseCode"); @@ -303,7 +365,8 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { jo.put("taskCode",task.getTask_code()); jo.put("carId",processingVehicle); jo.put("taskType ",type); - jo.put("feedbackStatus",feedbackStatus); + jo.put("feedbackStatus","putFinish"); + log.info("请求参数:{}",jo); HttpResponse result= acsToWmsZDService.taskFeedback(jo); JSONObject response=JSONObject.parseObject(result.body()); int responseCode= response.getInteger("responseCode"); @@ -312,6 +375,21 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { log.info("请求ZDwcs成功,放货完成 请求结果{}",responseCode); } } + if (addressdevice.getDeviceDriver() instanceof StandardStorageDeviceDriver) { + JSONObject jo = new JSONObject(); + jo.put("taskCode",task.getTask_code()); + jo.put("carId",processingVehicle); + jo.put("taskType ",type); + jo.put("feedbackStatus","putFinish"); + log.info("请求参数:{}",jo); + HttpResponse result= acsToWmsZDService.taskFeedback(jo); + JSONObject response=JSONObject.parseObject(result.body()); + int responseCode= response.getInteger("responseCode"); + if(responseCode == 0) { + is_feedback = true; + log.info("请求ZDwcs成功,申请取货 请求结果{}",responseCode); + } + } } } com.alibaba.fastjson.JSONObject requestjo = new com.alibaba.fastjson.JSONObject(); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsZDController.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsZDController.java index 4c38474..69e7907 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsZDController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToWmsZDController.java @@ -1,5 +1,6 @@ package org.nl.acs.ext.wms.rest; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -23,6 +24,7 @@ import java.util.Map; @RequestMapping("/restful/api/v3/system_car") @Slf4j @Lazy +@SaIgnore public class AcsToWmsZDController { private final AcsToWmsZDService acsToWmsZDService; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsZDToAcsController.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsZDToAcsController.java index aac358f..69d339a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsZDToAcsController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsZDToAcsController.java @@ -20,10 +20,11 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequiredArgsConstructor @Api(tags = "wms接口") -@RequestMapping("/restful/api/v3") +@RequestMapping("/restful/API/V3") @Slf4j @Service @Lazy +@SaIgnore public class WmsZDToAcsController { private final WmsZDToAcsService wmsZDToAcsService; @PostMapping("/createTask") diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index 5298c85..6ce1198 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -375,56 +375,50 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu if (ObjectUtil.isEmpty(route)) { throw new BadRequestException("未查询到相关路由!"); } -<<<<<<< HEAD + if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) { - String agvType = paramService.findByCode(AcsConfig.AGVTYPE).getValue(); - if(agvType.equals("2")) { - NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class); - ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto); - } - if(agvType.equals("4")){ - ZheDaAgvService zheDaAgvService=SpringContextHolder.getBean(ZheDaAgvService.class); - zheDaAgvService.sendAgvInstToAgv(dto); - } -======= - - try { - if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) { - if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).toString(), AgvSystemEnum.Maigic.getCode())) { - HttpResponse result = magicAgvService.sendAgvInstToMagic(dto); - if (ObjectUtils.isEmpty(result) || result.getStatus() != 200) { - dto.setSend_status("2"); - } else { - dto.setSend_status("1"); - } - } else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).toString(), AgvSystemEnum.NDC.getCode())) { - ndcAgvService.sendAgvInstToNDC("1",dto); - dto.setSend_status("1"); - - } else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).toString(), AgvSystemEnum.XianGong.getCode())) { - if (StrUtil.equals(task.getRequest_again_success(), "1")) { - //追加订单 - HttpResponse result = xianGongAgvService.sendOrderSequencesToXZ(dto); + + try { + if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) { + if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue().toString(),String.valueOf(AgvSystemEnum.Maigic.getIndex()))) { + HttpResponse result = magicAgvService.sendAgvInstToMagic(dto); if (ObjectUtils.isEmpty(result) || result.getStatus() != 200) { dto.setSend_status("2"); } else { dto.setSend_status("1"); } - } else { - //创建订单序列 - HttpResponse result = xianGongAgvService.sendOrderSequencesToXZ(dto); - if (ObjectUtils.isEmpty(result) || result.getStatus() != 200) { - dto.setSend_status("2"); + } else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue().toString(), String.valueOf(AgvSystemEnum.NDC.getIndex()))) { + ndcAgvService.sendAgvInstToNDC("1", dto); + dto.setSend_status("1"); + + } else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).toString(), String.valueOf(AgvSystemEnum.XianGong.getIndex()))) { + if (StrUtil.equals(task.getRequest_again_success(), "1")) { + //追加订单 + HttpResponse result = xianGongAgvService.sendOrderSequencesToXZ(dto); + if (ObjectUtils.isEmpty(result) || result.getStatus() != 200) { + dto.setSend_status("2"); + } else { + dto.setSend_status("1"); + } } else { - dto.setSend_status("1"); + //创建订单序列 + HttpResponse result = xianGongAgvService.sendOrderSequencesToXZ(dto); + if (ObjectUtils.isEmpty(result) || result.getStatus() != 200) { + dto.setSend_status("2"); + } else { + dto.setSend_status("1"); + } } + } else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue().toString(), String.valueOf(AgvSystemEnum.ZheDa.getIndex()))) { + ZheDaAgvService zheDaAgvService = SpringContextHolder.getBean(ZheDaAgvService.class); + zheDaAgvService.sendAgvInstToAgv(dto); } } + } catch (Exception e) { + dto.setSend_status("2"); + e.printStackTrace(); + } - } catch (Exception e) { - dto.setSend_status("2"); - e.printStackTrace(); ->>>>>>> 7f049d32a8a28d031795c078f9dfda73974dbac8 } } catch (Exception e) { dto.setSend_status("2"); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index f88bae8..1b3069a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -702,92 +702,120 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); - if (!StrUtil.startWith(dto.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { - TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code()); - JSONObject feed_jo = new JSONObject(); - feed_jo.put("task_id", entity.getExt_task_id()); - feed_jo.put("task_code", dto.getTask_code()); - feed_jo.put("task_status", dto.getTask_status()); - JSONArray ja = new JSONArray(); - ja.add(feed_jo); - String message = null; - HttpResponse body = null; - boolean flag = false; - try { - body = acstowmsService.feedbackTaskStatusToWms(ja); - } catch (Exception e) { - flag = true; - message = e.getMessage(); - e.printStackTrace(); - } finally { - + String Type1=entity.getTask_type(); + if(StrUtil.equals(Type1,"定点任务")){ + JSONObject jo = new JSONObject(); + jo.put("taskCode",entity.getTask_code()); + jo.put("carId",""); + jo.put("taskType ",entity.getTask_type()); + jo.put("feedbackStatus","taking"); + log.info("请求参数:{}",jo); + HttpResponse result= acsToWmsZDService.taskFeedback(jo); + JSONObject response=JSONObject.parseObject(result.body()); + int responseCode= response.getInteger("responseCode"); + if(responseCode == 0) { + log.info("请求ZDwcs成功,申请取货 请求结果{}",responseCode); } - if (flag) { - if (ObjectUtil.isEmpty(feefbackdto)) { - feefbackdto = new TaskFeedbackDto(); - feefbackdto.setTask_id(entity.getTask_id()); - feefbackdto.setTask_code(entity.getTask_code()); - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setVehicle_type(entity.getVehicle_type()); - feefbackdto.setVehicle_code(entity.getVehicle_code()); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getStart_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - feefbackdto.setError_code("400"); - feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(message); - taskFeedbackService.create(feefbackdto); - } else { - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getStart_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - feefbackdto.setError_code("400"); - feefbackdto.setRemark(message); - taskFeedbackService.update(feefbackdto); - } - } else { - int status = body.getStatus(); - JSONObject jo = JSONObject.parseObject(body.body()); - if (ObjectUtil.isEmpty(feefbackdto)) { - feefbackdto = new TaskFeedbackDto(); - feefbackdto.setTask_id(entity.getTask_id()); - feefbackdto.setTask_code(entity.getTask_code()); - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setVehicle_type(entity.getVehicle_type()); - feefbackdto.setVehicle_code(entity.getVehicle_code()); - feefbackdto.setError_code(String.valueOf(body.getStatus())); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getNext_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - if (status == 200) { - if (StrUtil.equals(entity.getTask_status(), "2")) { - feefbackdto.setIs_finished("1"); - } else { - feefbackdto.setIs_finished("0"); - } - } else { - feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(jo.getString("message")); - } - taskFeedbackService.create(feefbackdto); - } else { - feefbackdto.setTask_status(entity.getTask_status()); - if (status == 200) { - } else { - if (StrUtil.equals(entity.getTask_status(), "2")) { - feefbackdto.setIs_finished("1"); - } else { - feefbackdto.setIs_finished("0"); - } - } - taskFeedbackService.update(feefbackdto); - } + } + if (!StrUtil.startWith(dto.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { + JSONObject jo = new JSONObject(); + jo.put("taskCode",entity.getTask_code()); + jo.put("carId",""); + jo.put("taskType ",entity.getTask_type()); + jo.put("feedbackStatus","taking"); + log.info("请求参数:{}",jo); + HttpResponse result= acsToWmsZDService.taskFeedback(jo); + JSONObject response=JSONObject.parseObject(result.body()); + int responseCode= response.getInteger("responseCode"); + if(responseCode == 0) { + log.info("请求ZDwcs成功,申请取货 请求结果{}",responseCode); } } +// TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code()); +// JSONObject feed_jo = new JSONObject(); +// feed_jo.put("task_id", entity.getExt_task_id()); +// feed_jo.put("task_code", dto.getTask_code()); +// feed_jo.put("task_status", dto.getTask_status()); +// JSONArray ja = new JSONArray(); +// ja.add(feed_jo); +// String message = null; +// HttpResponse body = null; +// boolean flag = false; +// try { +// body = acstowmsService.feedbackTaskStatusToWms(ja); +// } catch (Exception e) { +// flag = true; +// message = e.getMessage(); +// e.printStackTrace(); +// } finally { +// +// } +// if (flag) { +// if (ObjectUtil.isEmpty(feefbackdto)) { +// feefbackdto = new TaskFeedbackDto(); +// feefbackdto.setTask_id(entity.getTask_id()); +// feefbackdto.setTask_code(entity.getTask_code()); +// feefbackdto.setTask_status(entity.getTask_status()); +// feefbackdto.setVehicle_type(entity.getVehicle_type()); +// feefbackdto.setVehicle_code(entity.getVehicle_code()); +// feefbackdto.setStart_device_code(entity.getStart_device_code()); +// feefbackdto.setStart_point_code(entity.getStart_point_code()); +// feefbackdto.setNext_device_code(entity.getNext_device_code()); +// feefbackdto.setNext_point_code(entity.getNext_point_code()); +// feefbackdto.setError_code("400"); +// feefbackdto.setIs_finished("0"); +// feefbackdto.setRemark(message); +// taskFeedbackService.create(feefbackdto); +// } else { +// feefbackdto.setTask_status(entity.getTask_status()); +// feefbackdto.setStart_device_code(entity.getStart_device_code()); +// feefbackdto.setStart_point_code(entity.getStart_point_code()); +// feefbackdto.setNext_device_code(entity.getNext_device_code()); +// feefbackdto.setNext_point_code(entity.getNext_point_code()); +// feefbackdto.setError_code("400"); +// feefbackdto.setRemark(message); +// taskFeedbackService.update(feefbackdto); +// } +// } else { +// int status = body.getStatus(); +// JSONObject jo = JSONObject.parseObject(body.body()); +// if (ObjectUtil.isEmpty(feefbackdto)) { +// feefbackdto = new TaskFeedbackDto(); +// feefbackdto.setTask_id(entity.getTask_id()); +// feefbackdto.setTask_code(entity.getTask_code()); +// feefbackdto.setTask_status(entity.getTask_status()); +// feefbackdto.setVehicle_type(entity.getVehicle_type()); +// feefbackdto.setVehicle_code(entity.getVehicle_code()); +// feefbackdto.setError_code(String.valueOf(body.getStatus())); +// feefbackdto.setStart_device_code(entity.getStart_device_code()); +// feefbackdto.setStart_point_code(entity.getNext_point_code()); +// feefbackdto.setNext_device_code(entity.getNext_device_code()); +// feefbackdto.setNext_point_code(entity.getNext_point_code()); +// if (status == 200) { +// if (StrUtil.equals(entity.getTask_status(), "2")) { +// feefbackdto.setIs_finished("1"); +// } else { +// feefbackdto.setIs_finished("0"); +// } +// } else { +// feefbackdto.setIs_finished("0"); +// feefbackdto.setRemark(jo.getString("message")); +// } +// taskFeedbackService.create(feefbackdto); +// } else { +// feefbackdto.setTask_status(entity.getTask_status()); +// if (status == 200) { +// } else { +// if (StrUtil.equals(entity.getTask_status(), "2")) { +// feefbackdto.setIs_finished("1"); +// } else { +// feefbackdto.setIs_finished("0"); +// } +// } +// taskFeedbackService.update(feefbackdto); +// } +// } +// } } @@ -818,97 +846,97 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { removeByCodeFromCache(entity.getTask_code()); // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); - if (!StrUtil.startWith(entity.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { - TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code()); - System.out.println(feefbackdto == null); - JSONObject feed_jo = new JSONObject(); - feed_jo.put("task_id", entity.getTask_id()); - feed_jo.put("task_code", entity.getTask_code()); - feed_jo.put("task_status", entity.getTask_status()); - JSONArray ja = new JSONArray(); - ja.add(feed_jo); - String message = null; - HttpResponse body = null; - boolean flag = false; - try { - body = acstowmsService.feedbackTaskStatusToWms(ja); - log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), body.body()); - } catch (Exception e) { - log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage()); - flag = true; - message = e.getMessage(); - e.printStackTrace(); - } finally { - - } - if (flag) { - if (ObjectUtil.isEmpty(feefbackdto)) { - feefbackdto = new TaskFeedbackDto(); - feefbackdto.setTask_id(entity.getTask_id()); - feefbackdto.setTask_code(entity.getTask_code()); - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setVehicle_type(entity.getVehicle_type()); - feefbackdto.setVehicle_code(entity.getVehicle_code()); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getStart_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - feefbackdto.setError_code("400"); - feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(message); - taskFeedbackService.create(feefbackdto); - } else { - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getStart_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - feefbackdto.setError_code("400"); - feefbackdto.setRemark(message); - taskFeedbackService.update(feefbackdto); - } - } else { - int status = body.getStatus(); - JSONObject jo = JSONObject.parseObject(body.body()); - if (ObjectUtil.isEmpty(feefbackdto)) { - feefbackdto = new TaskFeedbackDto(); - feefbackdto.setTask_id(entity.getTask_id()); - feefbackdto.setTask_code(entity.getTask_code()); - feefbackdto.setTask_status(entity.getTask_status()); - feefbackdto.setVehicle_type(entity.getVehicle_type()); - feefbackdto.setVehicle_code(entity.getVehicle_code()); - feefbackdto.setError_code(String.valueOf(body.getStatus())); - feefbackdto.setStart_device_code(entity.getStart_device_code()); - feefbackdto.setStart_point_code(entity.getNext_point_code()); - feefbackdto.setNext_device_code(entity.getNext_device_code()); - feefbackdto.setNext_point_code(entity.getNext_point_code()); - if (status == 200) { - if (StrUtil.equals(entity.getTask_status(), "2")) { - feefbackdto.setIs_finished("1"); - } else { - feefbackdto.setIs_finished("0"); - } - } else { - feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(jo.getString("message")); - } - taskFeedbackService.create(feefbackdto); - } else { - feefbackdto.setTask_status(entity.getTask_status()); - if (status == 200) { - if (StrUtil.equals(entity.getTask_status(), "2")) { - feefbackdto.setIs_finished("1"); - } else { - feefbackdto.setIs_finished("0"); - } - } else { - feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(jo.getString("message")); - } - taskFeedbackService.update(feefbackdto); - } - } - } +// if (!StrUtil.startWith(entity.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { +// TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code()); +// System.out.println(feefbackdto == null); +// JSONObject feed_jo = new JSONObject(); +// feed_jo.put("task_id", entity.getTask_id()); +// feed_jo.put("task_code", entity.getTask_code()); +// feed_jo.put("task_status", entity.getTask_status()); +// JSONArray ja = new JSONArray(); +// ja.add(feed_jo); +// String message = null; +// HttpResponse body = null; +// boolean flag = false; +// try { +// body = acstowmsService.feedbackTaskStatusToWms(ja); +// log.info("任务号:{},反馈wms任务状态完成成功,响应信息:{}!", entity.getTask_code(), body.body()); +// } catch (Exception e) { +// log.error("任务号:{},反馈wms任务状态失败,原因:{}!", entity.getTask_code(), e.getMessage()); +// flag = true; +// message = e.getMessage(); +// e.printStackTrace(); +// } finally { +// +// } +// if (flag) { +// if (ObjectUtil.isEmpty(feefbackdto)) { +// feefbackdto = new TaskFeedbackDto(); +// feefbackdto.setTask_id(entity.getTask_id()); +// feefbackdto.setTask_code(entity.getTask_code()); +// feefbackdto.setTask_status(entity.getTask_status()); +// feefbackdto.setVehicle_type(entity.getVehicle_type()); +// feefbackdto.setVehicle_code(entity.getVehicle_code()); +// feefbackdto.setStart_device_code(entity.getStart_device_code()); +// feefbackdto.setStart_point_code(entity.getStart_point_code()); +// feefbackdto.setNext_device_code(entity.getNext_device_code()); +// feefbackdto.setNext_point_code(entity.getNext_point_code()); +// feefbackdto.setError_code("400"); +// feefbackdto.setIs_finished("0"); +// feefbackdto.setRemark(message); +// taskFeedbackService.create(feefbackdto); +// } else { +// feefbackdto.setTask_status(entity.getTask_status()); +// feefbackdto.setStart_device_code(entity.getStart_device_code()); +// feefbackdto.setStart_point_code(entity.getStart_point_code()); +// feefbackdto.setNext_device_code(entity.getNext_device_code()); +// feefbackdto.setNext_point_code(entity.getNext_point_code()); +// feefbackdto.setError_code("400"); +// feefbackdto.setRemark(message); +// taskFeedbackService.update(feefbackdto); +// } +// } else { +// int status = body.getStatus(); +// JSONObject jo = JSONObject.parseObject(body.body()); +// if (ObjectUtil.isEmpty(feefbackdto)) { +// feefbackdto = new TaskFeedbackDto(); +// feefbackdto.setTask_id(entity.getTask_id()); +// feefbackdto.setTask_code(entity.getTask_code()); +// feefbackdto.setTask_status(entity.getTask_status()); +// feefbackdto.setVehicle_type(entity.getVehicle_type()); +// feefbackdto.setVehicle_code(entity.getVehicle_code()); +// feefbackdto.setError_code(String.valueOf(body.getStatus())); +// feefbackdto.setStart_device_code(entity.getStart_device_code()); +// feefbackdto.setStart_point_code(entity.getNext_point_code()); +// feefbackdto.setNext_device_code(entity.getNext_device_code()); +// feefbackdto.setNext_point_code(entity.getNext_point_code()); +// if (status == 200) { +// if (StrUtil.equals(entity.getTask_status(), "2")) { +// feefbackdto.setIs_finished("1"); +// } else { +// feefbackdto.setIs_finished("0"); +// } +// } else { +// feefbackdto.setIs_finished("0"); +// feefbackdto.setRemark(jo.getString("message")); +// } +// taskFeedbackService.create(feefbackdto); +// } else { +// feefbackdto.setTask_status(entity.getTask_status()); +// if (status == 200) { +// if (StrUtil.equals(entity.getTask_status(), "2")) { +// feefbackdto.setIs_finished("1"); +// } else { +// feefbackdto.setIs_finished("0"); +// } +// } else { +// feefbackdto.setIs_finished("0"); +// feefbackdto.setRemark(jo.getString("message")); +// } +// taskFeedbackService.update(feefbackdto); +// } +// } +// } // 如果属于先知AGV,关闭运单序列 if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3")) { try { @@ -954,6 +982,21 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); + String Type1=entity.getTask_type(); + if(StrUtil.equals(Type1,"定点任务")){ + JSONObject jo = new JSONObject(); + jo.put("taskCode",entity.getTask_code()); + jo.put("carId",""); + jo.put("taskType ",entity.getTask_type()); + jo.put("feedbackStatus","taking"); + log.info("请求参数:{}",jo); + HttpResponse result= acsToWmsZDService.taskFeedback(jo); + JSONObject response=JSONObject.parseObject(result.body()); + int responseCode= response.getInteger("responseCode"); + if(responseCode == 0) { + log.info("请求ZDwcs成功,申请取货 请求结果{}",responseCode); + } + } if (!StrUtil.startWith(entity.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { JSONObject feed_jo = new JSONObject(); feed_jo.put("task_code", entity.getTask_code()); diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/DeviceStatusUpdate.java b/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/DeviceStatusUpdate.java index 892cc7b..9af2ef4 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/DeviceStatusUpdate.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/DeviceStatusUpdate.java @@ -29,16 +29,15 @@ public class DeviceStatusUpdate { public void run() throws Exception { JSONObject row = new JSONObject(); - HttpResponse response = zheDaAgvService.queryAgvInstStatus(); + HttpResponse response = zheDaAgvService.queryZDAgvDeviceStatus(); JSONArray inst_rows = JSONArray.parseArray(response.body()); for (int i = 0; i < inst_rows.size(); i++) { JSONObject inst_jo = inst_rows.getJSONObject(i); - String deviceCode = inst_jo.getString("deviceCode"); - Integer status = inst_jo.getInteger("status"); - String statusDescription = inst_jo.getString("statusDescription"); + String deviceCode = inst_jo.getString("vehicle"); + String statusDescription = inst_jo.getString("status"); row.put("deviceCode",deviceCode); - row.put("status",status); + row.put("status","1"); row.put("statusDescription",statusDescription); JSONObject jo=JSONObject.parseObject(String.valueOf(row)); HttpResponse result=acsToWmsZDService.deviceStatusUpdate(jo); diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryZDAgvTaskStatus.java b/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryZDAgvTaskStatus.java index 366014e..080f5f0 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryZDAgvTaskStatus.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryZDAgvTaskStatus.java @@ -31,7 +31,6 @@ public class QueryZDAgvTaskStatus { for (int i = 0; i < inst_rows.size(); i++) { JSONObject inst_jo = inst_rows.getJSONObject(i); String inst_code = inst_jo.getString("taskCode"); - String feedbackStatus=inst_jo.getString("feedbackStatus"); Instruction inst = instructionService.findByCodeFromCache(inst_code); if (ObjectUtil.isEmpty(inst)) { continue; @@ -84,7 +83,7 @@ public class QueryZDAgvTaskStatus { if ("true".equals(item.get("value"))) { String param = item.get("key").toString(); //EntryRequired是否进入前等待 PauseOnStation是否离开等待 Wait在该点进行等待 - agvService.process(inst_code, param, device, operation, vehicle,feedbackStatus); + agvService.process(inst_code, param, device, operation, vehicle); } } } diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/system/wql/sys.xls b/acs/nladmin-system/src/main/java/org/nl/modules/system/wql/sys.xls index 965ded2998aa168b2d2bf32c28ee2be2542e0f4c..df4b178fafd30b408c250964e94631da8c126521 100644 GIT binary patch literal 100864 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 Cm`P;- literal 230912 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 z�>dFGYPE6*B3o!HuJGvHG{+FHce855+#&ulDF|wsk`T3dh)vEDMb4zskX-Ik-r1 zvkQjAy*8RcmB(ky&tEz(PFtJLF4#16OSvjz=p66L@2 z#K3^UnXzkAA6gn3y*|S~6;8NRmIx@kxgaQp4MizCqlU&DO}aB6Jpbkbk5Gq3;n3*F zXeFw#;H)*E_rM2YmW;eP&=N{517ogDkl!q!BZoH}WeKG=me6S{H;uG}b{_D?f{7C? zp`WjNc0v38lI}>-wI!C&iqn=Yc|FH6>Wd{|*c5LZ#j*i~1p}Hy1r%y|EY&t@;zYl~ zz^Ktf{dE>^0nKs;ERNDBXBQaTM7GStiB$_VE&+vU^V&|hw18T-jmk=?x|H7n3KtEi zm0uaCWxnW}sC7r_-T1!_ITn5JXjh1}anvxG&z3S2fOUO;b&MuHVjeMFb zMm|6FYh!cpArB4X$|C}`51GVvkzPli+ZR7+HGNKr>NAi3SBj>;(V``zW*5j-bf#Vy zQzFWl$E^bFRDYwz|3R|ik=deI4aPx_NY-H1w4qR)2OPkkp<-!;r?ESEJlu5iDH?3cAzJsa_ zsAfz^9Q}0klqJFW!9$*lwv6I#5YxBgR*aNGf|2###P&Y65Zq=x~Gx6HhIWuLCUC?i4EPoiO zEB^R)1OBlnCXn3t3AThBjYo?{82KII@QU-vzO=T1oDmeKfyOM$_O)uRq^^(nuS98HJ z45PXqcwwI%JbkhM>x&;3X^;H!=sP*#+&Qny&PQ^`N3%t40nLp%hevb1jYv z8ooG+jq=fi*#&giiqmcm#6kuYOHWG5PPXYdL^yGXXjED+H=vM#gX}Bg2b9BBFS$|U z0L9OuX<-d+9@>a)p+`cS&_=9RNgbs|h>qcC7b=`K;pRX`O-SZs?9fKo;MJFCmB?<) zYH>8QjMtS7cP@)$1%26}aUE?pY`?AyPxLE{!R^Psxb-^_cN99~TYtsBFi=nY!8wxLQJaGOp(&;Xet<$vL*%TnvEv)>s@BIwW#P&q<~1 z)fClct7$3;RrQ8or9$E521dTIS29GWPD#(OIm`wZi->SCBh$KyF^LgM-{0BNg9bK^ znrpj(0iXW|#yp^0T{Jsh3_;rHF)k%Nxr(#Xvl&>rb7skjJrRcl6!P1;xCQ-~vV^{z zJ98$#kq`C>a^rLJa?-O>(fMREPFvX=QbRC4&Wx>EIA_3{al&|+lFU&n_&IE#HZ9+b5k+T zI=6F`l~)&>@0UFame0!1wB@8H1xJL0atJ{((Uv1p=t2&6&a;idU;F;F1?N>=$u>?U znW8(0db0)WB^|Qbgf!R5VhWzETiu2DmIZzf=(h*OU#5KpD}uRDA`4V^>ME zW{@VHq0Zu{2{{d8KUwzV>R`pexDh&_gInv6mUKdm7nA6p79)X<^S&s_n<3)oYj#cE zG;(%y@s&47IU%TDIhf+Bwiv^jl3$l*30?(=;4*M~*QPKMlVLzu!?uH6e?DlA$gv#}zKa3G~fz$)n?QC*&d;0WAY?d5;2*mykKeSbUKZ$aMgI^v$qK zBNt^_zty@Y*ZO(ree!IFAA(;0!i6#8#M;ZRkSokfsTUUb7uJiKG}-9px8pEl*vr!N za*?+*E1*z%*XK)`rEsT#u77tacL_i3LjxHMwifPlhyu@5ycepvq>at=)-?b0l{o^FI;CmhfT&=(K| zSO_qhQf%57QAlzO?Y9aNu-M$cRm~Y|ELTpNGZvpFefu`)*3Fuh);2SSm_%H z)beC*R$lLN2}ybB1*R^CmngDvbK}t`DL_9m+ub55J0shrH``l=#y1u%FRh}T;!2xW zCNvkP)^e42Y)EC}$FFVpmLtxs*_0qWS?t_H5!lJ@l4HwE$U)qLO*0n~O>uQj(L09b zvT6Gl7|W?y)XYs5r$=L!YU@%d`=|PvFjYqsGap5mC+9iTR}obzA(PN_6QT%rr1C?6jEI(Ju5vg-n69JrnqN=c*0oPPr3?Ly&2qYGG?nb z$iNhRDJt~Q0%Rj+yX=IF^i)I>4csxf9oPRUE{=>0#6}V=q&fn9y;8K1 zN;kPLU3FxRFIP_zb?*sjWg(o+jloGJZG%<8N0 z<#-WK*I=X=?9K#f^9Btx8$2s1fwKK%qYoNLW9w&(6wDYo@XmOgbxz03ks;imqKTK5 z*1I|7nX#dhH^i=l3}E$!Dr?llym(XLh^6rmC>x@_F0!ob?7gfAk0!f%v2#_7?O8(! zl+B>cpPYB}Y+UEicrmAPb&(GH1cg?>&u3RcU*?N0jO+unc4McF&%si)h{m(Gj;2e| zdIW_^>y%fm(_TrhtT(Zbw2;Qk%pd$5By9)&x{{~BIj|XP(M)SBhjo)t`6S#rZ;L>~ z7;NOiahMkmn4pY7Y6Q#_iu)dx&^v>9lRQ-HMR2g?cP_Lzrq;x(-;JWNZ=IiO%YoI@ zjv1WaD$%SeY6O*&t(w?5%E7{)Y}orTV~t76&f*mjPkIJ+D-#M5@)C05nd?Z6Nytk> zN*B+n8eCa=Wu=)0>J-{=)B`SqikcOXf7&HTQkh2N_m6vN>3=5~>#t_Fh&|GuyXwYl zmGS;K*APn`iCGO}DG?~qq82S8E{B_~t}6uWz^K7`_L#i%WbBeSk~Ee*F6H(-h3G?C zEl3d#@0_KUOSNSs%cZNc+ajW1cxUIXEiCoiO+$7)f$IGeT&V*BEDGe664G*{gpsi;Ym@NbB3Tx)jSIa&z%6Yx1ZYWdhl9--~)qHSRn?_Vr zPoVmCvTaPBYE5U(V&0@%nuXeSt<2&E)qi*>!e|}U^GZZ*o=VonY)=`bjByQ9)F`cg z9E**y{ZwEqsx4*n6R~TYFSnue6;hRApysBiumtB|W4>CH$5)J5su68j35gjtvBja6 zsn+)WsRyQ-jex2Vv5#%i09t+Gb=zio-r7JM3xl{BJ9H%O2Dm`!t>mDe7r4F~gMrpH zSkv+3F(R`eOZ7ZdOC4m5Ml*P=zE<4zmuvm>b^2aFP8=^%Gg z^?`x(N5|yPAaMVx3xh4883S(N4m~}%BA8b;iE}wK$vHZM2OHrV$+q02oODb-**J@% z^z0U>sqpFioSFKLkb}^b=Wl{=V6i3ib`8c_n-0LSIe!M&O``1yW@nB;%;q{*Xj=v}q}ha^4q)lH zJ!y1iwGGnaQ*d|5WoJiKDhanDUGmh~KwGvs_Yu|0Fdk*5=jOs~jdHarX@jRR-+3dI z-N8tqZjn2JG1p1Bl$@R&BxZcnO%HjhOgm?06sE3tai-Xonw{gaUDrTPOB_;-LxJXG z+=xuT6lKE$w_ILMK&Q}rh{vs(;HXVk9IM~~uilB4B%=oE+{_|ASf9Abrc?3ms4=_Y zy(p+HRE&!KR4^!BDn{u6h2c<M2-HaKk?i?>RPj$O65C?A!W35_}cZb+X zjEwDF+h}!dWyW#P?ZAV3t!9yo>U#1Jo&6r3zCWtnA|oNu=5mWd)tCyIZS1P^A+udK z=TyGD(~B2cI`=5G;JX-qT&E;mrt6%qYktnOLpMbThyGEkwU^Hf2ay-t9+44;9AE`pIah8yrneJ}Xv>#eD>a5n5JDFzY zQU`n9`8SzxOKI~YhcS6nz!A}8V9-j%kcDcy1VrjgfO7^WToKIV0m|uTNxEn%ZYOrF82w=i8A#Bfok=e3%X>a zV;N%Pqt1mnwz2s*5)hy6?skRQYFeGSd78k;R-Hke?tbfguc{RtG%#j}%Z#Afll{)D z->7ym+ip?4NImyxR7)L-`elAFKW(rvQ!Sd9lRXY{jk&7E9`UV5as$$sT}IC4w(&{W z0zgQC8{2uo}%x&IAsUjnh7+VZOolgPbivMUC|Zwry%|}grQcnwh^hbmL=_z0u zyYGRs=4U2;r7s1(^eI;#(i7n{kn|r{f6fWbs&5d2ww@piKa86#DOT*4TrP`LU1E{^TJhU*es zznY5gxY-#wO;M@_Day;Z&d0U%bVd0V*G;%i$NL4|nyDx&%PY#(S&A|j`zh;ZE6Svb zit^MPMVU}ZQFcB8nU(QK_FVkzM-}KkPffakm=J zdyZSIV8aHymMBUqi=wn%ibHU?eunE3Y-{YpbKEoV==S#Is1NP-7=Anyc6()oqGZEf zJ60l;fW7=4SCsc*uWPuz2s<5G4LxC>Hcu$ZZ@4yHqbT3OPJ8~ND3f8AeQ1;!u*Zu} zDoPscaAuvNtbrX)J*6nCQSUdN#&KQLd-Hm1=9N>Fu^aFxIqKj18AbUC*PXZ)zz(_3 zqK#mOZ5wf*7j{VUs|Y}a)DN=M&nmwT0jqR5MECFQ=~W(kaYWZvzCBZVcOkx2N4+6Z ziR&s)4#&q}&p&rW)A5-ZFD^S2^~gD2`$ zJox$c&4Yfw+2_-kF3(vjW`ukZesf*Bi#hMq@_p^S)oVBRdim!r57hg<+Cw8Yo^93d zi>-s_&!}3teZt1ltAE|O>+RrHbEo&5zb1O)q|0Mc`)u#9cxg_prO$qPr?tnSh=K;w z?@llEQT~8amA{|Ato6l%T~A)}e0^Jup&fp@bbEEZ3rkqp!Vj`@~&T#kHcNC#$nawex|eKYi+}lb0^eYW4Bi^2h(vJ1{n6 zt#9C?wvU?5+i`7j$mVL#ec7Y>zL1Rb2P$0tc6{Z7uP!Qgw&w@A1E$nHzI4vk*G^kc zy!OEH+E+tPk9@PHyd4e@cRcEl<;V6uKe{sc76XEdg=j;0_+VswPh8; zsP+%B{j#e^l;2(VdW{#~-26q~g3mIJ^<8=Thn7b-E!zIohMMoZa;8eFb=N<*(cpBo zhnMu|F>mG@*0C3-Pw%z${f(2?Lm?miqOa@MWp*hCFPklm5Yh7K^^zdpcoSdWXp9^LY!a^y}Gfbx@VzXD8o$a`gDF z`|8#9JFz*(bH}WqTQZU+#6A+b@KS|!%gSGFFudN-y)VpLb-<&R<@D?(FCTk&^dbLE z>C>avDqpmF%s;T_w%DaVhCTgc<1M~j8u+XU9=pviZTN^`TaJ%TIezQum;Rg6;H^GS zcRl>2fy_kLb6B3?XPyb&Zel?xY(1ec26F$Yt-aziQ^wl zi)p^~X0@#^d{uvn=ctE+PJaK}&UYsEJfe)LJoDqhs~UgQecC%`8l?@6yfJoJ!HyFz zMhu@k=g;qE9^M+Y`Lm2m+lOxONv>6`a9Mug$s{9`J40=9_o+?RYu9eOEw-slWbl>yy%W;<#3)J7+%4srb{m7SA`G z{M&C0cTc-r`_7MF40(Co+1zaRty?Fv z*Ns0H=dtAZYqk5%>$c-y(3ju%Ur7nL*ek00g~SIQ3EOnMLR@;iv5!VnDt&j|qcwj0 zu}aG4v%W8La^_916=iE(+yCo~y4S1~2R_)LeD?nNo~JIY&41(Cu=ATP4+{Hb%$n{~ zFDDM$_hZuJD;H1i+j8;jnHIAi?lq;}TVZ40Kb6#aQ0qF42J|>`-Lp&kFHdhi_TTTD z26{g}dBf2ukG5Ssv2XKd>o#0-c|k#%$J8fodwET3_xcy_%x$~&_N!+a%xzkByGQtv zYhB;19)4!ez&Yh=9jqNS^!T|Q+a8_LrBq6t7cWeVp0T;^yRE-lG=Igeh;d$5;>OVOMx{QkqkV;=9mxW_NbC*cFnU%wRi?vuA_9RA#^+`xyQ-qY?<+x6c* zbv!HX>$4|*njHSs%&kWrZ{MzA;~VL3JeI%n(7x4w{(k7!mg_c6@@k$m_T`Cj8_y2@ z_FSjw7 zEuRSQ+~E3`YByPMe!w>^w&jdjwkIX9?C>d(gWAs<>$7$8>Ac^U9q##1S=;b;V?Pa; zls8#Zc=&c!yez*UY{7zu*A;0 z6;kq>9DDQ4*UH!CfAnpQJ|my^nYA%u{gKW`Ys^@A@?4LXW8Vw%3vYg+ zU`NNsr#5UI);|8x1<4B!)VsOt#H3Fi%D?z*oxv5$e=_m&QAfY|F#N^A=TCf^e0KU* z6V}GqPPU#i;`}?Uu15#$os+uo@qU}?_I}~u!RWkWrG|a9GG%&~wXe8 z=#LJ5xcgJDS4OV#Sod&V$3}xs)~@_#Sff3QUmATdxl5Np`31IaUwypm^2QbYDg@0M zKY4cdjK(*@-iV*u_)7SuvQ0bpdGKhnG5MRfW^OulVQs?^zrB0-+z+i&Vi*3B^TNPa zKS(awYW=VeN1bVWVMf--FBaug8nW-%Kk9FZ4!l_SMB|B_W|W+N{J%FM{dOGisQYB2 zAE%eBko#Ph*go&=nqKkUW2NR*eB;kK>3)shc&}xlcbj8{nIFeiZLszH@GUpeXM4@L z+hgC%r5%EMH@Ne$b?}j!O?xlDG`ml?LGQ18qQazZrTnXXSM`leH*YBW%6zwJ&DXX) z=c4vM_4~Tiqrso{jfyzCw%6dF-f8Lk=T9FWXb>KJ=|sY3N6X)6_F#(>Iqhn_bta_Q zjWf^JnV5JcCF0Q+TQ91zaLDWP25+oh{{0ShhL3sSwF;vX*fE`RdC*-9-6zF7O_4{L|N-6!driUk>&2cjY(#@|SO z^xdP+w*Iv8fz{2@kM|on`B$a-JAsck8@TCN{|2`f)(`#lsAsw7m;SNpnb@7T5pSBz z(t)2Wed=}ORKpzJ&@j=-&_qmqy17~nRr;2AH?;ihn={AxWoLi3v&^yvr{^8rddze7 z*Aam&JJlQT!;gV4h4?j{o3QJN^tT>=@?g27=4Zmvp0DcH_S=^+o+j~vs?XGA$3{r;Jyv&MF%$xTb)y?VXw#59(^?C_VkxpKeJ@;*L9xR)cJ$A zj`p~jKjrD`|FKNoSMQy~GLw!gRaW(1Q~1i=)>Y@HHmg-}#GeB?=YBEAJ9xwX!{_S$ z=lMQfAI9z6`TkjZ)h!-P@MyWa*cD{Dk4Yrkzqd03V=(6^jU$oz(9T%U7#ukYRzcM0 z5^d6jV^yNprU;kl-`g7jlYGPR2-JQj7BF~oF5d0= zAKd~18OlQ778-Dm<2ODY*WteDxT#e?+m=ongOk#OPV(t!EGbb=@hPJW>-UlGK|HMH z1NxF4Sij+e)fRps0cXMB%nNtol@ssqZFShA!GhKU_isy!??L!q!LbED<&Q1bKkb{? zzf-)xHx~E@#Q!q|X1ZA3fEb_p9$3REtt~Tuwhu z*5EEUMB*+ut}BfEYM9`#W_O{hWrDMs;A)%T*m`=ocj2G(z%s(hyRc-y#-9>oasKmD zcHxu+ZSRa{%1q$JKYDFPkFpA*S4D{g zv1|k4Yb{)Qyvo`)bye}yaBSfex8rmC8#74rehX@0EqZ+K1 zFAnZD71vs#6MM_Dpu>S#@Z#$jIAHi;prrx)Fj#U>^us_@P4KHB1`==ODk$ZF=A9P4 z)I}MXX0zorPsQ5+Q+2u`V&N|Ycy^O7A2knoC_#QW$j0whlz#jE{}k@9l3JLfU40Si z6ffMF0-NJSN=g+U26uGg089=gloVaMB==bT9r-w7s-%>VX@*Pu(1x@gS`9;;{C<`U zl}I&Q;)EP%2%$(|#Bst5R9<0Bhu5~U8F8hXaDL<5E?tG=p=@4`5A4?zPGzvCFV5X! zFCVYuk{jx5Y{r}1hQwYydXiL`b0uYPZsQ!rd5QCn6;K;c2f(q7;}ypxjx`)pI8Jap zV83U1_G9)<_CZF_p@1+za{vR(7JvvqOF%0?Yd{-7TL8oXZ06hRb0lfe$-v`&efG9veK!3mhKr~<=AOfdFcc6A7zSYZ;kb?f zj0D63MgbB4iGUl`G5kzIKX(o z1i(Z9%TLC23ScT=8elpgvbp!k^p8IZ+B{AHe_!7fIKdqc zAn{|oH*xU-Sis^vTpy|9i6803h!!`Hrn%>jrJ^Ss0bIVr)eF~9FoCXxCBXe>O27wb zW&E*=k1;0+-{%2d$9D@e1hsaRuLx(VcpvsAC?MRQu1^j4u^?2HDH_uP({#lfEE2Mk zyX5EPWoLzjSn)43#M*aYcRU}L8)9|JX4xV?Qr*6AIw_9C5~o$}tUWC${_X!EP#ZgF zY~wiLZGz+QV5FnXj5yZbh~sc##Fa3?akw$k(H)IA4o5~DhbJShvMy3LgqGidC9%{yqyJ-%7 z+^QKOCMt5^tG9-TDNClvkMk}0(Ywv~;cbsPetgx{5V0_%?!JQG5Y&?#*cZ$=@TJQR zjr;@$E+5Ik&xr$jju{7kCl3CC11DN?@OR=s?{Vc&9yI27_BS(n_Bk^=z0wR%Pc*~R zo6PX^7&AQkp&6cDWQJ#dG{dt`n&Ig^W_b2ZGd%mJ5q}cF$7;CqIZHi+GnEmNbU~QV zAOG{OauI(&C|9`kckLXwV%zT;Jx0v6s~K#0Ui$#)(u&u$U|jJdYu9K!^vwOlbAay2S7NrB`03HF%1o4SfbD=+0IvdG1H2B{0eA!OCSWJvEx_A=cL2Kpy8(LudjanP-UGZ3*az4TH~>In z2&erJ*F%8AfR6wl1C9WW0zLtJ3iu3g3~(H90)R$TJ_mdOKw~Oj0Zsu<1I_@>0?q-> z114A(W+851SWa9}$hAwxIhzJDHB|26I>Y+ zT#yN_tO>5139h^eu7U}!q6w~&39hmUu8Ik+stK-|39h;cu7(M&rU|Z=0ms0TpDNe` zXoPZ$R-`;`qv}(X;K-u{M~V_cR0-_Ylu$-U;C-@Gv4=$oK9GTR@Wn_^iE2|MhFd`t&l8_Lqw6mw!AKKef><^AS_6J9b5;}mA-pa9> zb*LvKFdj`2dzqBLI5Af2YRVKPM1oePD4~-*MG1}+C3Hp}C2-`Yga$$aUZ9Owi_r(U zFdmIXxUZ!sp{qSb3Ek`|N^qno;X&k40_PD*2o@6XI(_6ZR-%MbLPB?YiV_~OrzpXZ zM+uG;CG-F#C2&@vgvLTbX(8dD%7rt3tk~0~JcRv7^|I$tLQi{&5*#T?=#4x|;2cK@ zAwohKA>jkHTp6c2@JxfF4m{1^(7Fsp7=4No`lu2(V^Ts>Ap!3L$6oRQRRT|j3={j% ztV0ka3==!jGUerz=k1j80hfNN1kNp#5Go{a7C9hdUveoc>d;@6S60+vfIY=JMB7uW zgCoT{3`8ES#Mzt@!h{6gng0M0m2By9q7E@CmvW*GgX}5R!I8&03`QRBT9(6@IaF{j z4-C0C7u?H(dkV&2$-TVLf2cjhHi)&SsJ|nR`a4q8e;6pKKcfsv2p1CY;|<7*Q@K?>fzcTyv=S1kK!OdU zyp&J{5{B68UIh|{*sW9r67+eTqctm45$%w!N?@!<39W^MszSoUs)VXS!f1Pn5;E*5 zN^s;+f+IyMWrC7cs)j2iv=I_`Dul1kkaghA*CFD54z0vfAw$HS9hstpY&#_-I8u}_ z7I~DwIFu6F3JKMPgdDY8btfxTcd}A-CoAzyatyq!`$SVjdVl7b*L5mjBC2uCOF3JMmk3CMqE7;TzwN<0|Sn} zWd)8_>maOV6;`7s&`wriwTbo=tv1P?qSYLEw3;JDt4#(aC9r0c&{0UJEhJ1)x$r1N zrnqNGd9~raSz_Z-ro5c;yq!{%FdbYdfp(&VPC`N*NZ2B7H! zvD-%pJajTv?EA@-C+<5hRe9D&9rP)0+>c&n&+|cVT#gha(7#v*DS>Y%9V7M*$+Llw zutF`@0CmU_`-w7-5?0#tC}EX7MG221brP{lTTkBk*7v?2umO+A?^+K~Skzu{A`Y+9!=D5ErH|5;^pacN_p1WwQ#yG?vW^KO1AJzM!icbLp`_!GSq|C=q#3< zqQJlKpGD=tD{Ed3UwD(=$huq4s6lmwg)$^UAO(0wKoj8=D%U&yGf;wM(pg>@9360i(Y*F z_U3oGMNjQ?sP)C{f`W?4(_VRN)!oRU-(Cp~iOKJI`wyR6!!vuo{!Xu#Uw-|mEty{D zHdflVE3)*ppAz?vo3!}Xl;g*@zI|}*rkd|Ih+4LC`Q96)5BHl^a@w>FAKL~$@Z+m5 zjPAZA=K13f?b;vq&d0kZ1$LM-;pN-Iw)Wn7AtiHR*933>XP@ogaLv9$mojr+I=#7b z;o{>PMjZKi{nRaYKaTq8##_0~eq8+4@23w>+1;pHw{C+zI`PzZZF547d~>l>fQxp&lPMsB`D+;lg#7Ys~94H)itijVsIT zn7aPh?(FLm3!?`v{iscMzwpmzzLb33^Y*E|^OLX7OD@Pg`Q&4}Qer#S{%vagb;~;R zi649+F8)Hf)hp(88Fsnt(e_}zN(`TASW+p}^O|9!8xU-G^M?pxr#1@2qmz6I`E;JyX! zTj0J0?pxr#1@2qmz6I`E;JyX^Z40zl5{q+F^xqc$zl0xO_~wrzI`WRc2hL0k_0ZmY zqFpV2`{Aw>Z^y$}lyJF<X)nfdUl$4X`^bk*?c%YK{AHj%kdCOB~0kLiNX~ z@aDc^AE!bY?Kssg(Yqrduc+fxouP{bp1}u>_&OOL;ujxLT1Bbf^(fjBA3aJuK0*}V z&Ew^zKb6HtP)O?U=3(E6zjZ2$ejz_~aT)7jQGO|5Q7)GJpL{aQ_yS0rqjGs8Qt7`n z9?*lI(Dh&OFlR+ae`SA8u{!rx+Kq=>^$%-0zc7-m=Bqs9MLKJ=!7}2glM%;5UPc^`3>tA9J&d@LCb$3--2I0&%ZPVw812U+_eNZG6C97V z8|iou-H7ASaXrp4=5Iib_OPaY#CJTbSVdF(CZiEf5RbNF~>u!S7F1i!5+cQ3*3C8T5- zJwN;wjE*0B8u|GNetZ~H^5cV;Bg6y$zo7CiXKq~yWJB}a&t6p)9X;PJZ3gO5w<_25WB9@Pa8&Pa`fefdD-2=Rgg^56rJ zqr|HYs0Sa2)brrTLLSygdMIbk#umPPLr=qzhBS2q4If;5z=eh*4{7QN8a{eRnvrNd z{z=<&BqB`%LBod!U1{)igrEr)G<^Kem4*-Skxyem!w2|6Tx9VPJko>+8a{%@dO7RE zhv-PtRM7AtI#*d`Rhm#i!^hxUX>jvf@Cg$%e2~qRhUcv*tGS@z<7lor^MNwbgbNxz zQ0A(0MU|$7py4B7l;zxBe5i|jA_NT|>T;!Fq(PdNf`*S}Q6FbMe6Wf%tpp7ptf~!~ z1oUtI$u{MqQKV@tX!vMU9Tysow4`YxX!vjwX`E$MS83V`8a|%nO2d(ueA)>bK49cZ z!;zUZ?F9`_)w}A$k(x9e1PveZai-y8I&INGwa0W~5YKkA|MAhCd;9w*kLhqMw5ob` z6na`s>swo;=_F`syVQkz>Zml4f~F2=>N?q<(K}~_U{NpE_u>pgp6i1P!(?pD!IvR2 z7h4`4m+-W+FJ6m9AtIVWp5p-qPYgfA^T}FX%izUVyjH-1h*$F$i?;b&p)?&ze&TWY zGsvP`sgEaa@Ecc&ctYcU@`Da-F>li0y5kXs7Fs2Wd6f@34EG#(b-Km*L5C2F2P`fB z|3CYngVz2=)%!>H9NdME)cngIxp*qmkbjuq0rHck4ENN&8?TNG9E)$^sRYjx>jIU` zwFb4Sm0!y;K6n#dX zv&T{(a3W!O#0kgwMzP36{dCI`K_~jL9rw7viJq+Dv^Owu389tMaN>a}106$rBOUa2 z!7&6k(lMkq;uu03aSWM_IEKhZ97AFwjv=su_x|v*$8uTJmmzOCybVZ?V~A_SF{Cx( z7{VHH3|WmhhN$J#jm_znlR_>-QX`IIv4+#^%y80(WB6#qFp~VSX9o!y8`Fn$>s%kzIYM-7USvYIe6}wfAj9={y$)i zLi={oYWRVCGZ(kw_bcJ5FL68Ry3$+q9nocQ8B zj=SMiJA_ZIMDHnO-)^Ee%Xf8gyJ@fTqAHVHPJ5Lms!VPuay4uaivPgfo}P`IhyR@BHEx*?#d;vmAlAO|};! zxRl9lGAWZ=WDc2rcA5Nf3r9Wu+{)y9&U(tXfN{0DU;HdGWpZ0>uM(=ta)H-&LaZ@-w;DU&kysnE`g00Yc_cl;TXo_jSs8a#Pk}TW+tK*OT!S>nYzR#x2MF%0sG5?g3mE z?^Y%6K)X!*M7^$_fp(dJPBH`C%4EF8ddl~UaSPKSlW#D)u5455$=^7W^}%nv>tvR) z%Pi$2vy@wzj0agy`NlEsuAEXHR_n=_`)6gbDwDTE&j{bb8!hmb*|v7Pw{lL!Yqq6b zN<*fG_ru$06F|QUH&jZaKb(X0E{eae@m^Z_S5}P0j74b!`F=8Pzn)UkRDJjcw4aqF zs$9MSP3pt9pPf}I+wqz{W$ZSfK4t9s@VD>IE2C9?$`q*&;~&~bzRiqVy{D9Rsy=*Q z+G%i-KF0T@NqvH#&o|=tLMS%~Z6fUuJwC?K8(R>ANlSxZY!Tx zGF5%}cC}xWrASdO->!B=v`bm1_9_c~&Z~HRdzFPg8oj=~$`+{)V^!KmzAcSg*yojW zRUf{K?H6U4st@1ACi$0hYOiv3efSPG**B?wIlDgPM0;g`5B;ZHk@|4$LHo#et8tg` zypp8q!?(Bnq9m*Ol!rdw3Oke+`b3}<ZZ#&)x@1kOCK|L!#pZ|}&Z-K9? zs`B3VHcf9!(*}eR-lw4@DSeneC@BSc+a@)IK0=#9cs4B!rqV}j0|sATidBP;nd-+d zk#U^LAk8R_;T_%qQ7b+sA_LJ+G>SSMrP^^sBR=^4|GoA;d!KvHO_LT7JC%t&0OX-c*AHuvahMnc9< z9RJ-Aj-NQ4a6>qLqMx=K!toRRwA~PnpXjIUhH(6J9OS#Ct;reo_DI{A>Q)jIX=Qu=*d&UNrCqY(6cn2 zfYi&DgQIfFAsRO)ZSGVnjU4nTcZaGq{OD8eE*&oY$=ylEN?JbplM^kUzU1!GwSwm~ zo`|@|Yxx}Ylc#9hoCLa4U0`_9%iN1trp}d8aF4Y?o_KyJn4z<4xEB0 zX?RM=lV0dt+MW{fJS7s(Q(}2O3(u|BqZ_DC&Or&hB*`Ni;{JBQr@4`=OF zQ)6(`VsO)AaBq#lamphzU1rAMX2sxU$KW_Olo=j-zf9cR7~Gi}7qt~u#^C0~;LeJ{ z&5yyI9fLbp|b5j^{KD>o55oz5{4JT2bW$tI#z&8A~QFQ3jv^-XaJ}s2z zw1_;Xh4RpipVOgF8&sY$Bae(x%OKD1)J3SpEZt?0=XYugeo+f4gFJl(Ux1TJ?hNrG zp$!XtAx=)QI&>N2`M$xYa00+q&{JzEgFMus#rkaRglzwrE;2SPhaA6Eml!$9A;)i3 zz2R35IYd{+xx=0gU5<3Ic&kIRH!p`APG6o1S)IN-6|y>gc`EYJ>C00guhW;OA}^i3JQZo@^yR6DgVUF%!baru z<*BgCIDL6)L|>j7(U;kKGUY{Io`x9h59b@EAx8VvznPSuh8T$+It{ULy7Dx{#^SBs z%9Njmn8fSK?48L|bmi%q=jTmsPuD!B8J^Qap3@^dr-wYJBlVnqK0THvbDO>Y^hArv z?Y9mox2YYt*`*46<7SsCAg7yMs(_q5=;fv6R6tfYyHo*L-Rx2Y{11C+s!UjAh+G@5_KDw+cR~_cbJr)i5NYH zRVc!5rcQY~yEHSB`ZL4SpBYL0nX#$Qew_M~%kf#7uhrIPX}--S$7h8(K1=hoqoY|N z&siZ)wo9`#Pv-C}q@Eic%|hyBkB+FbQ4Sd$&DL^!%EWlKmgAj9j@ghyMkKSf9M^{U zktqA*H(SeL=OboAj=OQnljC{7j0~w0lBbN0=4hTb8=iAC&uu2`IU&zEnx`F+%|YBn zmN^lgb8_-zZ$X|iIyyu1{3pZn49)Wz!}E-g=NS>6XMm@~^NcXPS*y>;$&)%QdCKT$ zuI6b+M{~jRH{s}LZpd@4=J^&Q%iNIX+(2W)bdyxYo$(iZii#JtqkR< z)bd#UuridVG9pi9C{HEIxwElW4k{1F3Y4cb%@R9L%ky*mmS3#zvy43RLV4yv9;YA9 z3+0&?k!M~g&pgQE^o@Cg%ENIA`LEG>_M^=!x^`r+AH9;+Xo9m;cdM4q!ldCrdH*V#GcAy1AC zrzbd8=bDUjAs7XNDB}b zrz0&ue4LK70P%4;(gMW6=|~GAI?{rOj0qcvkvG7Uj3hgYk zu|(}HQMx(WzL7?njQ2Jl(*CkA2Ddl{R~3V+j=?R7!PUgzmd4=Di@}{AgIgAZTdr}@ zjan;Wa4TcJtpzUAHgbW+MeQJ~VsNWtaCI@bH8HpgV{jK~TqVjnF0*O0J_dKO#zp13 zBnEeB4DPZR+~qO2D>87@q0+#yZ4ga8je0d+ZHKh1r)kuy2et0Tz9o%%B^r4eb;@b# zY1Ao;_qFCU>QlU?&N51#qNy(gPiIYEsCn8oBMU>G3nM%ihCCOd4m(YKVJuI^g>_(h z;yT2PZO-B$wK=RKuFa{6v^iCgHm54m=2S)6oT^BhQx$1*sv>PpRiw?SinKXZkv69) z(&kh}+MKFLn^P6GIm~U=aF^TFk=(9EjP{4QT^*);btL7h!<4U%qMSTdsM&&+uHXdHxn}S+bXhJePy#o%+0B!P_y|ave`==UT3LGQF0g zl>AElqb|uu;g>)Dw017`i?KAo7Q>%#@$d6BknK7u*I3&67s*v|8@cxlLj)ZBvD&)N?!h6+0c~dtcZy9H;*1WGbyjN@9HyGZlL*A>w z`@h0?uMT;yj__Wsc|SKuys3kcw~VRkH17`>-gTPyJj1&Vyk*Q*r{ir`FV}&$jPdFs zyz9Vw-=JwuU5~tF{Io{%-f4KR(Y!xmc&`b0uhG1F@fFj2O~`vq$XoDse7Oeo>&NPo z2#0HC)}VgnE(6pvDUaCuFVynfWaPO}%kxnq&xMdj#&Z`&6iPu&f_gLgh&{hv z^ZB6RQ?L1a-0-On`P6GZ*5*|o#=AZe?|RLLJgA40M}@9m7i%8Y_H!|K420|JE(Q;& z+ZSsdXBplXgNM}Ziz7TP)@7Wry;yUz>+3EaG;KKspgc3RJeO#BtnKF#EsvcWyd;$8 z5-pEyYc2`p;nsL*YnaNHgz{XX<*{>vmkcTo#~+kO){kAP<+1DQF4cMPW4vYfmxl6O z3VEFE=h9G~OC$1J8p?AiaS7>>x?dOV6o+~2qToKB1 zMI^tj$SDu49(Nau)g#l+L5l}hneh2u^GAzF6C6-E3yJS=DD68OLShWt;SjzViMY!) zXpR`txb2m_4LT{?ps5HU!JtY3O360p8a?0`hv_~}|LJX9`dOlv&yB-0(OdOz7=83} zu^x_&)7zj670u0uwDb9Bd?*)8N$Sq?66$s=6?*;dc;=o(I1os1M^yr44EvC>90-j& zbO%C5ME4vrO=t(gm;iP$funX9G}w6G#RqcKIrPf39gWa*(QgYhF8VD?Q|7mYF}P7N zI2NkRZ@EVy6E`LXcZ9}8ZAW8ca78gV7S_!5TH|AIOhKQH{TQzqiBBW_-t2qp*uuKK zb^BEZ(u66*y|d4$e-3~7YeTuW&RNl-d+VG=gFN{@iU#QRpcq7Z0@|;uRd#da_7}^7?(;sx${cm!<|oa#=S-d|h zc|=aliz6HM2$aX|%Gw|9)ZwnI=d@E*hRm5A z_Jov2M%CQSwLjdc!`)oZsdG$zaW|KYB)FT)19U}<3oAqI@PU0;7%_~PkHP};@~^ID36T3xzlSu zLXrI9POs;}RfgQ@B_j#h>19U}#i2aeJH136?(}jazuY^$o>ix*r_hk36EaIGYtr5S z_z^>`KVrb5tznNC@XbiXSdSRkMGS4kK%b%=8hT2?#A4phc}X zlncY%LYR?WzoUTVDhLz?Pqk_(R#(l%`jIm*1e&V?tg5U5_Ta}pGt&73o^2swYVfkZ z?NhK8pNX|^GoLaxi&95_Wqy(WeYhzwob+vgD&zbMWo_kn4cwtMmcS$BzERO?xK4^tL_ZRk`@`bT%zpT|>DQEP-L~TL zQC)w(eZ%K&Z5|l$UwaT)$IkwjU;fu`Z#lZO^cN>R{QJ-T z?>&pgZT$K-M;6?=@@v&!e|p}=e?ITFZ=d*n@-Tfh7A zdwy}wu0K`ZcH{JK-TYYHywCmd<1=o2=Fbzp^yh#4(nn9;x&7l4r}eA%w3q%}#oWo? zzvaTVi#~D1+7pkw=Hj}GKijQZy9Jf&^UX0D&lU-=Zsr$9ah@+pu{ zfqV+&Qy`xL`4q^fKt2WXDUeTrdt$qU)=%&*}oE)wSQyJ&v=+*7vc{*}Vj$Zwq_)a8lN9k{E zc#;NOAD@{9dS5|Cx*VhFWDUGcKkgS+8EJKF3{J07%Ah+ghVJ+n+zA>d>+J0rKqqQk zG(S#?!JQm~J0$~W*RfY5_T$a)*0H!nz$!iGk0gPWan2tJ7n3=EBs^!&`6Ee0c8ez>yT!RK%=tJ@M0SfO!S{OH zZXJ6kc0r3QT*uz2icp#;SrRe21v_NzuL2w}{yqHST1T#9zr|1$0%G3VGh%L0p8)0) z#!FxRjF`XuGjVdA5wizpBS`7tPKDb-FV@_t@EKitxKm+IxNn#{6+Ub5g`luL2)I+> zW*lgL3l2#Z-;Xz89$(cJ9geP|@d=~yCr6hBwg77Rr zy>vXeQz4!w`;!jbZl}VXDrM>ncPiYbM&cK133n>UDs%2sxHF6=cPiYe<2e#M-70hL zRJa?51#@+~#Pdrgp6ss}Pq$Oyb2za{(w4RHbMPJ@Jh@ZhQ#x$!RQMR%1M z5EOQI1a~TY3U9L0mi-~)>F-pqdt_y&LW7AXcPhxrZSGWXE2X(ppekit&{9xuzO@>7lZYW#$5~|4|g%RmF?WcAbj2VF_ee97%bjj z*`69y9_j&1AAg5~UD+->9A=sH;SL9phdUhH%69H>5Weng8Op;Q4i@jPl;+an-04Fd zgy~bN(?@nc*gdkc`@ybk=k5ntiOm}1@{7A4WMw;dKe(0T-2Gtb{rut?I=SVc{=@X~ zcShJfva&P6u59Pd2nk9N+jH-XU6GD3ZXI}r}eJmTQ=k?|3IWPC&) z86VL{#v`uo%mr$-%oWi`xZj`?o}QI%HMrlv=_A~4;PeshIdJ+2_Z)~m!aWC0AK~dT zd41%~c1EA*BODvC{ZYC-}821x(S>riAd%#x88qe{$4W&io;5j}b2hZ_wapyTc688xaIe3nblr^5? zqx0mTcpaT~6UJF~SIWsj zWhTGn&xf*je}r)&N?Ps_ z2CacC{jztKXGgic&OAHH?RDnaQ6dk|j&dVHo*gB8d3KZ=@$l>@i}y!_Ck-kOEs;zg z**nW~rQBX;o-5_{I`dp9k%#9>xe+1Hl@h)@SIWu5bEPcaA7Pw4s64cSGJPs^e(}sH zx7V3xPPx6#JabA$Fg$b0~Q=sD6d+Df2ukw}*F^ z_Jw>&(w;pt4!NDxJab55 z!!w6m>EM||5__IGMPjmRX ze(LDs>TiF7=hZVHz1gRZ_NbT8wy=$nsUzRXl?+iib>yb2ICUgLR8Aea=_*bg#ZOn| zr;a#TB&y(vS{2Ms9c3Qxo}W5;<4her3kTviV(#&P87^6ONNynIEA-92Lf>!*3O&AY z3O)6pH2;|^r$W!O;i*Bs1%Gs(n&}MbRP7GcSLEj$rXtU=ZvA5zLOlC=R^;%_q2yB_p91+5$frO)1@bA7Pl0?2D3$k$l=q61uLt=Q$frO)1@bA7Pl0?2 zoya|U9p)s?pn>nao>W&iG1AQ>2TsziMuT`aU~iTO+W5T%-pfU-GZ4o?&izH zace{-j{BZ6aol@kW#K8ucG>!j#E~dN`DN=vUAF#(K|CJGX{1Rky!}GNf`wP+g}iWD9hHrsOzM7JhC1J=<#Te!E?vE@A2sK*zNs=(3^nu1T;L4N5YdH zkM=}79tlr+JaRng@hF~Ww#Os4vzg1*-OgruJd&NwT(<6ZHgnnf=X5-|Y~Af_=Cbuq z;Z1ftvzM*Ay{2+Da|7Bn?oy`5BiTzyk4J9rBK_o1jaB)8Xe zXx@HYi~zBeSh`%}CjS?@!c z-jHm54b>ZxJy&=5-jMd0{1R_S*832>A<6Df@rGn~e-6zXlFP5$OWIjRsDo7`PBpp# z&t*Qi_aW+N&ifEO7CG-jJUiKWAL7}`&ifG0Pj=picz&|;KEyMWo%bQ0q3pa5jYCOx z-iLUOvhzMP4smeahsH&`4~>g>9~u|&KE&;$&ifEG%N}?Okmy**B=u0WD8@zg($6lWyi*CSi3i}K3K19D(&Kn~AS~+is^lK&k zG<{k*??d!yCH*vgTDg9jKCR;WX^w+fn#I!)Js#Z|dR?K%qdU}5rq86uBjI@@c;2br z65>aOczPzJKEl?59*^!;M}ta!rQoIT7~OV=*Q4zIo8vFWUpx@e>(QO+So1x%ci*cf z7@qWcB(jLtBisJc>ygBtUXSj=zIKjdCSY@TuK06&$M}l}BJq0k8~mos;`L~};YqJY z!c)8+S#OZ^dL%sQ^~mw0*Q59}=lId-1@wA!r#jBWlU|SRRo3GUy&efq@p@!=((94% z6t72C2c*}dc%B@eGM=)Xjb4ws6-S(mC%qosr|9k2dOebsiC&MoR4={~ylt`Q^+;MQ z`Y1RCJZ}Px4J(CjzJ*`b^N~Nw5f7Xk7c>6iaY#HLjW)8-^O5tqL(fMNfAM_uBEF(5 z^n4`o7tcqw%+d3a^SUG6kFv`d$KXth(lldFk4H{7rN<+uo6_Tv=%(~|-EN{>hJx@igcG0x&?h~AByZc6V)&JPN`8;Nd8??z77DFM%ZonQ2BfGX&|15==sR`L80d(=LdzJk3=4NK60Ke==n(a(({p%hn|ltp7L1T^teIg zp>2cdBVLK<3Ca0Ep(iBg2Zf%HL>_uVa=Ix!Aqii4LUQs@E4Fyw)5YSJhJtCDl@#U)AETIn`cS`RfXuye?} zk7@5TK83&evd!Ooi6k7hHx+#2HeYf?oW^ahoSQFYzcby11H$G@-3x#^ z4-0UQ#7)19qj0Biv+t&FKl(fT%gZmnOr38WZfZ{S9!G03wMc4=)BtzmrY1+-j;+&Y za8nnVg8M|=>$BuUr{!dgr9>bUN;-xOs-bblfv=zZG`{ z?wPo0*_e%c4(>B>&&7Qv?n>PAaG!;HKJK$|)9S$1bOG)(?uED);a-fp3U@W`CAi;) zn;wyt;yw@e`M8(iUXFVO?v=P}abJLY74Frz>u|5ZeIf3PaM$C$822T(FU1XKNa}Lj zSKwZYy8-t)+_V&3i5t~hHR8Ss_uFyPp2U9O9k|)kvh}77Wee`DxSMgm6ZbaU+i|zx zz6STTxZj1l758)k&(0dB%xzCs}Ik>$j=CU z^i4D8Gq|8;rSPoMdC$`)ycwHpKMv!|1(|0>N8r=y7^P{J!gCNsOQ69v}t}X z{ADefv^HhC9onPp92Vzj_NX75?|4qd9@qy&LY__`_E6>nhdX;oL3U{6ru?Hha`^%S%=R!y*l#HiAh-Cal z9j77@n7%iE-UHJ_&U-ju(lYzJ2iNyzpZ6donYM8|<1zu^WzV>Xoih700B4Ve54ZzvsX&aBX(^3m%DRQ3wojsm|a%Yc^+Q6MXo;Gl68~5$;w1GQ& z{81=p&K`f1uCewM0=sU2+AnLYI}yOy<7pdr_V`TOcnL}@Tew5BjWhoKi2%RBZ|1z5 z2r%A+Jv7_+U9cd@9KhhVao1wgHty{4w2eD^JWm9Ww3QP9tUaD50!Ti~i2$@mbKZfr z@%Vh^=z#GQdpvF6&K^%2_D~jGSVI{@s|?-7=QWNx5pm~S>o2Glz^IP zQJUsAw2eD^JZ?Rsh2 zza^b%|90t5`?tmW=}-H&>!s=W-=#lo;MwWVksagjP62SeG;QCmm!|Doc+&RmWTEZb z;(b|Y`*vmF_=qgDe`m{*eL8^arD^w;UYdDMySL;y?cUN~3*MFm+Pz(yN4xi)j6Z2- zIbyvZ_vt$SY1_Uv?9*x6zE$_>44by?TXo5zZTnW;y9<6~h%Z!M(zaW{j|%ZAK;w z-x_KSv|Hb*wFdH}-CE*KyS0lu?ba60xU;qXk?$_<^#7h6caHp72A$vc2eti; zHIjbcAJi5(hD*QiQr77A-HmPO_ub-c85DZJYUs!rdWM`^`eNp!x16fN4fe|yCH{4RgK1jf)| z&zImEH($arN*cGla?Y0&Yjr;X=zNLqeSWfbT6viBB^(7@dmy1U4CLoa?3vNW z9qZ;#;^s@Vbr_|=&6kYVwtgUt4H(T3-iwXe;*v2q?v}`;G$_af3vFP?Ag#+PE-y$|o$&&AtzsmrtfyHDS8 zLhBP4*VAIal0|(()_aXWO1_|OHk^3+?H#Jygw4}$7yA2d9<7W@wNkl`6U{no{kYr!R+ai`zL#gjFU@pPx(zMvj9JegN_ zs7DM>rlQ1$Yr!8^kA`^5la@c1wzS*D$CEXi@pP8I7cc`OC5M*3JJe$)Y+C+=CoO+2 zp0xZ)JbC)9<4Mb3JWsY9jHiqv>8AW8^|;|l3*UX}%Z6vv!uPm(BE(z0jVIhXo?_vP zE4SH}ycg703{P6}?oeMfVRPNK#FOi`T|BvNTjI%e+m0tsv5k)>+bYIW#)$L{{WEJ1Iw+fz2ds=`@-=T54gE69Dfyo=Y6`pDFV;?!tqxTcv`&W$@ZxTJS{#2 z$d12?p!?tF{f&cW7^vG&feI2<|FcfY-P2zuv)kAES`R_*!#5)l=W~-s!M?#Ot^dov zA?tmaPRa{k34M<<)>plhP&bZ9A_Y0u$eiDR-kUHjk7!FVru);s{m)a&*VisstMR96 z{8at_dW~rVjlCu(+45H=cHqrp1)Rg?ob?AZ^-lf&G*Dlqub(d{^WgF@lzj`Pc<`&Y zK87+MhxIVLsPDzCm+|#K_I5tKuMhHjv{woHUL{2{)T;uJqHkvXFsl2Ce#mt!D%2U7 zR+)Mv(=1MpoR#<`zO`!vW+ig}jngd%8T|#;1nD1{$A8h55b9afBmbfv2;YssFIuDJ zT>*YQ82%cGUk`=93i0dV@Yg8(dL;an!mmfeU!(D>C;T-Aza9&J9f4nuhrh<+*O$Xz zMfk;;0g+`Kem#L-)aO_)U&ih9NR{{&qA8jq-X^{s{(`obm|#Mo9+^z|dSoIY-xPwX z1XQ#kQIAX{MkII_=)aK(r$-htIn(@#dgQ3Ye;7{GBU6c9{1Sa}1XgPaRRPv)eJ8|Y zSDnFQPg{a*19`G$9f3ov9M2-dldTEk>h#D_iKh%t>XE6$cTL#TBZVjRNXL_Uq{aI@ zsYk~1WP8ncIz4h!;%UQ^dSoi`pN1#(NC}&J3LQ`CkrwasX9yOsYk~1q#nt5Iz4h!;(LZC^~hA>`zCDak;0RD z3wJ zx~{OL8I|ZaJXwQNi65J=S(7B5)FWLysYgmYsYg1V)Fb2LNj;MBl(~i@z;j&UCx$2W z$Z?714NvNk<8^$fM>?L=BgYxM&y#xO_{6xF`bj;K@pO8mO8nIDq&6`k@iW7ddZeTw z^+?B)dZfksJgG;XEM8QjfHFpC|Rmc%JN` z7*Cly;0(D+>@z&Mzi>q2zYS0BFO;ykx6twA-a?D_d2(N2JWuw3jHk>Ka0lRs#C*e( zI@*ZDFAPua034z7jl2IwB+kH>Y=^n~&*Cjl!J|eSdepPT*$9X872~19j6l0@|EMod zQum_LP8&pDrsnMH%w4|DjD?=Vww2t+NDjMJ#ofOe>;TKBIK(_cQ5OCNgo%avw*XgV&723%X2~ z0)F#a8`)wxE%9Qt-?Sb{nm#85ue z{UNJ0t~&7Fh#j04sjX_8x>~Krb1R-hy|9KS!QM~nszc<@bvXaU4j7k<|2#nq^FQLB zU|nW(h8q8=p#72I&u@lymE)_VTD^?aYz9^rhtQ1{+J3Y^FTb2Xn@Fk^szSX7H~(hg zuGIgh8%%}rp~VL4aPpn}pQGl&Vkp^0E{Q}rc#J)ATCyITgs(g;ObP6jiQ{j3u~)L! zjRqKdg3o?DlZlsK?!uE7alGUg_R9g7 zjQb?4o#XTLwm*h)k!~MwBg|I-v%V)yAMn&Zm><04zoRAZ1Gq_R(~_`{=Wly43|^E{ zaPrH(k3M1d*Hrow1(oM?b(va)g1~H@gI}krGhhJ!k-R^&|9`<`%_vp6gVqUi0cO3V z?V|uNV_(8oZL~~?+?GBd!qBsnTlz}Cj7uU>1L!7GNCGt@xhP$M088&5i~n0e)1coo z?UV}CoTR*emu^$|J`FrWvLPZ5-g1Xp*wV6XM`n0<>1)@@I=RJ^C6qM~P3MdhrD=_)8lja#gaPM(;UR8cW!Zt{Ia?|s{*t?Soq znwWTEb@RF_6Q5kNF12ZU7RSZdtc}(=n&iZfguSG+w!Bohn?q;Yjs`x^34K zEvjy9PHo-Zc=U;Njhma*rgbfiRgK#=7G9g2^vOlnY;W1RdF;k_7gQC`TD)~jOKRKJ zO*?K{ymj+twQkFXMc1^nY%Sh0b6TJh75KM&^^&dIHgBIcHyATseWX^Mt(V$>YAVnU9@%E)$6xz zExwv9(8m_7+nz{%Ot(O@Drzfd&YP}^D@LRik3ti4lr%x_+hLoaL~pTef;JV{Ca5K4 zo1hK5Y!jsJNZBT6D+r|t+N4YqbnS@bQKkvnScoQQ#H^g@FpT>DO{8hQ{!2l81^&NM z^`Bay)A)QSU;lF!`@vrvr2cp2tpB2V%zM449)r|-n*hV8|G)fpzW!&`dpG{f-NxFq zj(c+a?FSl1lZl%TgdKl6{&O?QhV=VT_@D3bUxTrKBS!v9w64Bc%^VU}N5p+=!;Sw5 z=$-#EN^}etf6gBb|Kj+cb8{TkP>!L5a4Cpv`unmE56-v$HochU7WSVuFQU4gPvOHh z4EgHS)c+3F{?Gc`Z2y0=E#Ln81@186H-7!U7>1}f*mOl`guSo10|c!p2&E9E3yV_@=X5LokSHZXbZGB6(< z0_!;L7FhG@6j<}>Hh6~LYv>8@Gcb8+gCEk3@hYbA4={OE7?`A$0&8ArfiJ7vYmvF^#+it`L}|Hxf=Q@jFsFoF+pb(wH=C6B^8b zKu!a*4D2=ZHGum(e89O4#GUjN2G(VUFv2_;k7k1}0ldqj>Ga@kL(jPE4ad*-B1vgK zUxp&dR^nm&ZhR65T#R1p(_aJwm{|e0<9>tN&$AlB*Bnu<6Lz(+kYhe|5Xjoklj>$z z%iaUa_!$_n&c^?0z;j?fn}`21ftikH1t7sy;%y~xm8uGV#4f~lO90ISRVC(A--G%8 zO5Ag?xn(BaoB?V=XCh>VwHR;}AX3c1|LLGv1T4d?0`+Xr@m`3q46iGB8x-y&JxgICz89OuxJJXSHSp0YmJ)8zmGn_?{aC#XCuAzt132KH@6$z(A zSO4LJb3ljFuyaWy99j}6&)6etl9i?!^0zITg#C+n|2I3}v4;9g@5MuGOmS`ezZTY1Ks@A*4G_zgQ(M83E2Y1mmC!KX|-8+NXW;4S^w zBkPjvuo*7p=93p;|H{N^BJ+>!roHUk``9BdOg11b?01&l(%Gkd@Bg;6ODqyk8*Vxy z-pm7%HSDa9jbFpgOLE{Z%YnZl7SFX0>~O8TRz^=m4chk>Z|V4CA7?KcpRq^2H(87q z_B%^&>Fm?K_kUa3_;A~jO|MG0JCi+!8E$-eX-}5mg^j0;n~kr1+V}o%OKYm0e&y2l zW69>j3^zV~cO|JjSb3}rRxbOr@BQDFmP)t1oV+(BseIV)EUl%pPy62gZE5}X-i7<= zWb0vuOI^lZF5Fqk-op%6R8k4qh5PR0ZbZb!)5gv6w@>@t{w~Lg084B8F21{w+CQ$1 zAINAYOuJfx@1)(0w%c|-n_=>OdgtdO?SpN9(mQX@f&cd$_^urIJ9FUg&Vj!-2fjN8 z{(&6$Xn*43^-vD_M{?kMV)0{-e1EbX1>WYD%_GSb_usy^m;qA;i2tBP;(4(AEJ2}q zedOosE8iM+M)Qs9*_f>9o$>jW-ucbg{A}2np}&}L#vXZnGL4av%|||Yd0D5yOkBSy z8^mw+h!2*}T#TB}XQrB5uHHuT+2P~!dF+uNN)}_}&QO^ACb)y#9>KeM`O_TupU2|I9(iMOH(WC?-I*_Z z@*?bCnYa>IPcgnq%f4SDZgLZb4x4Qt-Hqd}4ugv_mYaNn1 zqITT9<~xQJ|DEhTVtC~k`%XZ}w07I8679O>Mcx*+Z3}-hY>W4wHVlR+cwYjalCV#M zHEh0-#s)OhC)ddSOMz-j!S%ek49vMRi?8tD8Us(lvq8h&yd~z}cxfRs;M0Mp*=NxX z9tVLrQrrl?04b?@Jb14M>#2#h(b~$V!^C_$>H9QI6c24m^%HOA;SUI`=f+d)axqWN zdBQ+oJzrg6;1mVQke8p^crY#Ykp}aQoG;XyTg?1x0P_^_lq*fx4+r>iplHGZO~DL2 znmu^82lslg4lEpJos^jc;kz z@x!!p=k*zQpN25=qyaQ`9=)0Lm@{UYw*t1|>@wkyzQd#M6#4?vcX{-C4Lz(Es@J3M z7kVB3K962ch#PshIKj$O!T^js0bnanCGnu=Wy=XsY5cR_))Ha9tp{wsZT4tdg{FXy zHjiePMvO)?gZKirVRjLZGC+K{z$w<@gZCE+KMVg$BM}-bY@}C=QE8>@YTff@HE1MdXfDsYNz zx!${twv+X!oQ=ee)DiqP?ZGt$X85%pzS)CY4ZH$0ZG`>xQb=d=>J>cpzbZ9g;7b74 z(x(e(>hS0iSXVGxznIP`W&&u=!h=I-!sp`AYT$bTcN@48a5FvGf#w}}bQ*XGU=GiK zXQ_}fkN92-xPf@U{I)NXCWD@$7h@QZ5l)KP69}G3Xv0sjE>sYYbS6!uz@z5^t}%Gh zvVXx3g-zYS|+HxgpmHLHdB-4#U7lh-|c1LQYmWP#iM{3L! zc+?0CS3^iQ!fm55sTPLmV0>Eve3zjo+;3o(rDFOPG2xdBJmvwQDh+%+-~j{w9pJVJ z{5P6K)ux-4p_po!FT;*hA!RNh-pE`ou%>U%rXR_)qI!sM^o*n_SFR44y1d(jL-~8N z!znBWexJ~crVPa-gnq%a4FraJCX^+CixvTH^6*^(7m}u%Fv@3uM~}eNG$L{D7rdY5 zx;@_~c(1L9>O{11P<)EsEFl702Tpy^gz0*4veEoa46@z%w~2 zG+x4~_24ECZZq&W(03S^4OyoLcX@EPfhk*$h9hlMg5UNLkMtqjZ(vsPeFokMc)-9c zdu=RqzWhdy>LeazfZ_Cb@Lmt@_252%M{2$X&-~qI;8MVqr%0IR;?ZDW((E=cX$}~e z<+&ulKgci(j~WB>(PrS=0Pi+1+whu+_y_v)@MtqI!|yflX@CPV0SzBD1}3j&1C!To z0|$Wn4E%1u10GH5sX!o{EAZ$t@HD{1OjO{Rr)izQk+veicC1$L34pf!(dD_pe9JU! z5?J>a%>oyufp0VTB;X!{Uj%rshcBKC1o{HXP(nDP%{dFGa-m6SUIOd7-z@Zc-EFJj zbzini@L7FXuh8hetl!X6wlovl$WTMrmmvxl;H^!E0`_b5^6i*%!0iI-F=dy)}pkX^uBJe2Yd!@j-4X+Vc%T{k-T`vsGyxT3Xma~hnFQ*Tq{hWc< z-I+9yf$6hP@V@+oq(30x7p4IRQ}7RMGLyBzzyaWP1CzAVgL@5pHt+)m=C_rsOb92y zqrt%J3)&3Kbm$g%^a{Xx4PNKtR3LVwM(cbOSohtngrn`h?l0N|&rfY05wvAV*Qs_1 zM|2XQcX_%)T(#^5-u4llLgT{m`FgPJJGvx%-FI~BZ>7!O>%sjVJYZndBfHn*RX{9$Sxa`V5|Y zE0|F`QbkO|N`ZC8?-E##9Xbg6eF4&n-|iN?lg-b^p}>f*Zo{*~*ZTHekwNR*2Lw(r z$%@awKQm^m5m>j?^#)JbnglLnId3*F^SVo5Eq@PTUry6L@6E<*`T-Np5`2c0@06jC zWxK|}tP7n6W_{Tw@TdTA@tOFCa>8#b2;*C}$*ltGcCuS&{IM9LBKhu@HK&FmK%93=tS0Nb{4fOv#SJXY{SPHEGMJ-FP1(*`~Yr1b_q8gR3Q zJzdwdlkMKOogUod!F>j1J9&VxX(x;43Cwn~#K3GP%MHwSvdh3Ffcpg2b@_mS8Rme8 zFJVTR`W_f~1yJRLk`@F9BRJAOG-e9Ui*`j^rJ?&wYl5 zpOrB4LC^A8Z{T|YcNmySP9W`!Hx&7kV>k zOuO1I_^h_~fP}Bx-T{G=EaIsJ_-D#wTHpfWYdm}#;h46!-O#h`?GPG3uFSKH?G_rX z-*yX4R=YYNG`d|)rSTEk7G^+`ff?Us!Ut(r+YCL+QkT&CbxOCZdxb`~s|N%gy9o5! zXD0L_@~v5je`r^UuN7G1I|SDH(r&^i0|6eL0v7_b?Yx$Mui%{wem=&u$-UY1x^LJ`*55RRjfU@NjGXmCwvF@%UfV|c1=el# z0fSG19{Yy)t+tJ%49xth6j-;tHH3ZHOj})>jo0*TCY%%TS-XL+0^BL|Y75|ERusgm zh7SX?o7rpN8Gx~iNz>?do3L%S1(tSOXhx9S*wA#eterN*n>x}X-%7hJ-;VTXq}>KS zY`2AmBszTCZtoL(!r~#DZo>~~ytLuEVKD7^2_s?P3Inr#)fkw0*P!9-HoVRIcDDz2 zdvLFTk4HHB2tyv$>(tu>9)m}*fp-E93_J;NC*f%Opy#A|4GqKDC$O~b1}3io4`0H} zL^&jVVBi&i%LyZ|$*a}Cs{rpdFx&6}1G5dUUy6Ue4vcS42dYc(T0iVJFq^`F6$>Vws?;(dAb%AewS@gL@57*B9qGuVL7KDw>J)sW zY_L#v6K`mG1lDbMufdZhwOrHaHoRD1t#8y2j^>e;q1Mo+@Vddk?BkjQ*7|d&!880W z!bmHYy>7wlw!K&IS#5hUGtk(y1A%qh*k)j+Lp$MvwCx>+o^AVHp&tp*wzs-%?-v@~ zwx?F&CG6NNCnW;wHoRHjqFUfvJ^WsQb=%%c7;y~n=o7dQpyj3I9}v7RgKoPN1NQS8 z;jnzBh)2G&95xA@Vp-}ic&2TC%(oMO-zPL9`A`?&hW>mD9<>6CeoHu48v61;2KE)2E3?+s^)?Mri!}DrEXMW#W-9TY%pyc-@awvhe_({YaaEX8`Ut zF!O64VbhOPtkJOUN16#o)1T1|+lLTF{pE{R`BwKMZSt*OmUKU|3wYa)bO;TD$qLi< zDZ5RW#h~fb^k#0|gL@6k`o7PD4|wo^2dfJ~Xx6r*Jh<3{OFTI6;BpVHFz`_buF}A) z%e5X&6JeCA_u|oPV9I&Gz()ff5V(+WEWQZ;K+p6H3{0AGfi+Fqqp3A`($stSX2O2? zM;=kmRzpJ>b{Uv`P)9bsUbE37G`h{~GccQ^egm_7R@CDk>M#49T7k9vy9h^R&}~JB z;78%DZGXm=1Kum&7Bid!0&9D0#l=AENR6YMl>%#ggMrzXH4$#p&14wnBS7^TnmK?w zSZUfu`}Jt-WkB@`o=FmZOI{V1;vd>uzNjbcho2kP{YZoPmhDNa2X_dpeQo}?2e{S4_X@1juutI8 zCxWKmz-I$im*d9Rf#IhG9$Nvp*1&9M+6)bO9S~UO`+&d+-Pm2>>U#>Xt=GkX5x!n7 zP(s+Qk?`QOfpz+OaDxXod2q7_w|a1!2e*6hE)VYT;N1phed#oC3E&=&rjIb{X&WB> z2Bw@1Yw-_w*2gA+b)9W9c&61ZkEX+;>GEiL44&ca_3-_KqjgIBfEXIepc-&P2A1Iz z;V8YX*A>Jg{YhVAVAkte10N4~w}H0Pg$?auhjTRz1{{?gWz?N=&=uEW1934 zZ~WlEsXKYG>9zGv*WVQJpl7`Z416-+w7|OlHW)nP)kN5r*@sR2Z5Dc6f7?wstY2LM zzlHU;$KV-eNhAL4Na^|;2(0UMtH8Scwh653Z@Yn6e>)A#@b?*d*53gGGo8z?!arjl z=nz=v?{0y0{p|#7`|B>^p-b>$dfK|&E%YOqh&`G{`siK{-e+K)8E*%n?SDPE*n>+v zIPlW^v=K&qc`qLA2Bw^;Cc(1~77MKFa=F1Xk19Qy zv`16#(KH!6!)f;L?S!NCNY~|Eh9-sAod%u+xGS4p*X2H;(RKNNfmxRa49qfIvl0JH z9}WN6I=+;@lWtYrnlx>DnE3lr%uJ`b52IiyPz>feP zFfi+H_tp59(J!+}Js|iLz)%LJL+vK~17E&qCG6L=+_0|KZRT6n)70yILa*z!+6;QMEo1R07g+bpl?Kl+cL}WPb%%#PAh1r)0fBYB)=E9 zj@R_d4Fc^3yyRlHTx>v~-xu&&nuU|X-tiTCQY58FCkA>Zo$x>D0i9k21= z1_SGS@!&QOZuj6_9^B!%O~L@L7F#ZHuNaW*zS}FvBl?mkvkQ@xZ`rZfXVA_MaYsbzbikSl97hz_yO}5uc-u=kcbDdFjKl zm`LnHs$H(Wqi$Cl^#7!Ku>k3)n0=Y}njH9DIq-cU{>6eIq15v@I%$G>^3RVvcgOyF zJD>X5Jx_e~z>^O>b=TMa?SZefg7$gblT`N~9(j&5kN%{mzxP`Ye2Xxl`|f$L@7ZVW z{WiY@A+DQJ-10;@Uo1EPh)*sX;xoYWcDyT7tCIJt5o*KwSt?NHB}b}HV{=xZRwNS% zzQ0{vsXmG40B&N5o21T7Ch=u0!r&DE3gD5C-}1U&C4dv^grPnX^fiY5cDyIw>rk(E zgZ^qfJMgr8zX6!n{i;xH-L~$^O^qTM6<1!C&XWJ(etO}>*O1$ zHgDhl&Q0LVlpDHyi-sj1sdLHK0J$h%eJ=T~I~4hBD#_>Fk7{NGeScXM)-RTG}94`bC`FFyIugJ1fO$9ul`=x_Lzbh|Vi z%lSS)e4>c!XNh@Mm?u4)-i~rsrj{h1$Fk-lmDIhvzkAR3=RS4Uqo05BAyZH4lUDu! zv;lm$PE_l0Z%DF!@M8HRelqY0H4z6i2kNTiqI45}@p@h*VUZ1%UKK37vSs77jphWK zt7phhoNCe7G6Uyp@p!Ea3jJ<-`Nk>ozOJbe8Xm(dRzVPK+_Isu6(4O3rgQbu^D2Q2 zYC(X5tH3Nf-S0%hbJG~fs3ln&%m-CCe^CNj+Wt1P&j03{nkZWTW8H! zxM9Q6md4FN=>>~RC7wCn*T{R;>y@h(E?!n0s7)FCs}`{x^079bpS=IOUuG^p)_cc( za$$NmBfYOmma8quyVKRN>e>H(;6EPy%`^8r`L$r##_cUjb-FxrkC5wp6#8u_6%sC- zM27KL-Etk8nsb7yHfyMA+t%i)t?$~xkdVkhP?jTjmR+V!xsq^2u1&*~i}X&e64mt` zVfXcY&wTmYpTFn(Pd(WEyKlbu#G}$~OFUW-?-JyuE&wKel%qw*Pvl~_^80znd5q$5 zYb}kdFIX0oOSzdE%$&mH(DmskQ=cCC?$dp?XSp5aqD)<)d5zQk6Z@NQ{Nd^E_xAF; z+f@PHU#8z5p;&X~^!DnS!?z-DnYsdbbs6e;0%>)LS5GFZYtep8RITWTctGUu@t$1b!=Y!(I~;npgqD8fLF7+l$X_r7dSCt#L!kHNFB}5Bm7nRG zP)8tFuRw%szVY{E`29Py$J}kpc3__3$$gE3Hd?HOQ)Vn~+_VWT*ff;385geGbWNk; zk%PN+IBff+Cq?q1{cae+C(Ag?1>4&rP|6Z&Vfx)jVSd+SzOx#Fd`CBv+21Ac-TTdV z^ho?XXhh>7HTltvWcGI>@ZI(1yMdAN9puzKs(eQ`k=frB;JXi*?|RI41!}{#4IBaC zx~ZTi=XW15-?ihrn+oXGk>T?w$G>CI(wC0E3Ab2%{iVCU-uw8|zoYK=-CsZQQ+`Lc zjr?vC`=^9!Z>5Kgrt8A=Cr$t4=tn5F!&aloq`%S7vw!YKOejwuo=jIG&kwtw@a56I zqK7O`$1vr&*^{T%$V2biHx&fPZIQ3i$XB4c?|$a1#PU7eI@ogA3XOM2U zqTCU8i+(Oj-xf*#eIq2kqjmaA*}bWN?i|@)7N|9=s{{54O#jX$$es{QjXoIebTmfA$CWJmK(N244U@=F5L{ z;qTS>w;+7x%d@vU`7PnwukmA{N9p{!<=anu`Hy#*^dbKN{eB$2d-7}d{SRf3?`S4_ z9`Ta!*dGYKT;q!k{kK2==zj`64g8A*_4;mL1=|0FDn}c0yGdy~f(TSS z^1$j<(f)$1EJr0wTmB!6mdBl+6w(h)c@kQPlh7COvK(@KQKq`I#KOM|@kpxAKJr1` zACJM9i2Yibx>NUWW$N>I9;E_a(`r{OUA}PD#liX27ni$uOL{z_V^yXeLfpGF%%=<6 z#n@mUCC3D$byQGMddlN81U&~^C#w4ikQbX54#U}~_qXvJ|k4&U#FV4ZQLv}SO{|HWHJA?H?{=ZTeeYCft&)o_q{>c zw7^TYplp7o*gAg84?TQgUmgv3V7$mZDViSZ8{fWhORx@y&~CgkR*uVauBNYs#if3D6GseGpqAwrgyQ#;YKb zAb}Sm+vDsnZF@+4aD@)%aox6AePILifxTlH{zJOmvg3N;hZdWc=E9bH1nA=1ciI#v zC&Qzc2KgR(EU#(oNr(15^^{6a9?Ja?!j*Qm2jiBJ=>NX?^9LWaBObQ;?8mKEDxBEY z#7jC!J%QeR5^NTd}URJ%h zEg5XwZCJmR4_$f7rs-7Lt4se_6#&0@<+3%)SCr|}@l}lv)Rf?&n(9^6y7@v^k{SGz zBfT=tnA{oWAN%a{RCRsz;$VC8+6@#iL)fg)1`#$0n5QD`5y}%*$AZ$jx|S`+j8Kks z8!(`Xrdf;_{4z|21It;?aHMPpswbvhLwHryOBSwKR_EHb++kVS*-o&1 zqdqU~+ZY#4nQa3G3rA|NA0G3E9<3N|TI=sA^bHYxFBG+`tW?{NOF+l(ij5quB(k++ zDzm>UfQ2-O1Oz=G?8zkkXvc`phcb1q4o9@qdy|vYlV~-m(bk^tv}N)c1*=wI)xvW^ zhzepU(@At=*UsFo+a$II)S`9#F%m3k7-x!44l5>&5v+tL-)=Pcc_Woy-< zFe4Y&EL^p^y6&87TCS>e$d${MLDkX7wd*%-f#QL9GW@1o;j?eGSG)!jKzm!dB8TF% zwrXMB!l>%3`7KmA;$wJSxo*>@0FzLSt&LY+)6!Tj>TOgpq}{aY?J=C!xT#>b9%Hj)`XO;#UpboPU_4s8sJ)>!#7FH7 zO(8yNZ{UO}!^yNa&;#7_Xk&BP73c|$`g5jTfnMRBhtIG~yF$Ol)80TkgtIFQ0RLh^ z@fbu=&+n82V*KdkjZb=YLOdC7>i&G*ZsPw)@|CtTNPm`6)2FZ0v$)Z+ZF?1_ zGi6DF&h~c+;NsIUE(~c$3-SHKosZpe@Gz*&7OH!mUj`gp#D;6%V4(!;y_WZS4GZj7mM1^)gScv9N z>)wVmFy;WJy3oPOG$lR_M9veeoE*>FgyVRg!}*xl+5CXzPA*Bjv!KW?Tvk`T%8cVZ zNikwtSXC92#pSKkYxc{~WaOevDOkL61;Skjc>+Y+#b%s}TASj+lz3tMVZ*~1Kc0@| zJa@SgEz8!2gO{r){m{!*^t)W;iuy3+U8&mhR6 zOFB+a;6;u-NcT9qiJs{<+yc$dwseDQx1Uc^AFV|AA~(MBE^ScNaUPm2h4qJe$UZDL zv~v3P6p3qY>xNiLIA+u7*1Is}h!soL!AD>D+{U-8~{m2oB zx4z!{-ZGB-ef{y^<5YUGWH=(*U^Q9B`I+sJ=qtjZ+wQw@V8g7lJE4U}XkznelXd(6(^I7Sl3II0^OE z$h+*2B;U}p%Y}SH%z{ih<_Yt6q7pKQHsm$+#T^Wh-C0E7x<(f6v>dA*Yew`DxGi+~incgxdzcZzA<5ybB+?6Xlp}=H!R=n8$ zQU4#S{7LRiey&~SxNbw^m7CVZO>Sp}?!G(4`!04;JN8?abdm2oeE&*KYP02%QS1bc zc4OwVN#Vu|$bX@7GubiHik!!3IXRBWn#7Lz#>KBxe`lg7ohT=CHZOj4FNpE>vkj1RdCrXg92 z68j~3!k2W9>Lt0tmzl(&abSP6ugJy6AOCRt!gffcJ^XP{8~EfN2ibial>1=3+$iX; zF>lw6-ii4!obk_VGjE4+^+ikTYQnKg*$`&kL>G^aj8M<;CCi|m|3S|zTeX>`4I|4%@t|?fQmf2RietC+rVepwN96iORTXEOhj8bNH zEvvuq#~bWV^_6Q%Eyve3o_ahxgz-wQaoFv8Jx%&mn?LhY)`wZI{LzWjk2Ge$SWhbT zx&fR2Zrl(6&v8Qup3kFhnf1JSjrUCjX{}SojU)Q-CT<*YAjC(<5h>k{bG|J)jtC4s za~x5r@yEcPbH{#Jtt<0bwHlv$e8JOW;^x()AIY9q>(KPs^J-ndzgVzW|L@oT2k>7m zH@^5=Uaw2t_piN9cVs00?fjhR7jBg=e~-oJT~_$^qW*E7F|te}$NJuaS80830ldz} zu3j)rlYZoC`Z9+&-t4-RKgREsUf;`*8Se1b_ZFzbTi;ut4sU&L!5egaZ^0q1@5L^f zXt_4!iA5>L(CDz%_ZFyEVtp^mRc1ITdhih$_2F*Kmu)KSoV~5{0jmF#viK)c+FEiuVPb+$Jrq&47VQ7=b>F4Y@K5T==fc^rq}Df_doPq?tQwW``KG;zO$TS zo@wz)%wAwcfX?|c1K)@ zrMh%DRu30VCVr(4wQgDA$^30K{13jK@;t1kJd7ohL73|>vIVMF=P5^;+`A`nW4<-1 zT+0dBxS1=LhLc}E>DCMnd;O$elYBVG`0p$;{=+k~-{X2op0=RJe|TaaFsz30^G2O` z6F1)L3GvbKUSEihj`t22eCBvBrT3Q=WB=@Z&pi5*`<}UDe{@}Dpx@^n_f?wxX_@OO zd17bWyi$|KXOH{ZfPb-|L;vRqpBMw;zg%yQaowO%@Q@mcuaomAfR)0UVaa@=FK7Jf0+Th@$tD&wRtO1|bVqD1f z=Cv3Xw!*K|-@>>sZsv?D_Wbb@_5Jn=Th4~JuP!cpJ9ox$Uj@Qt_~m#GWxS|B$L|K- zD*ei8^_AXx|AT9BdiOo`dFpEDhBmBkUbn4fBR8uC>#qx%)@^Sp-?(8)&=P}RpYdXQ zFnc}=5iZeBu}(9`-Ur6*VptwzcP-1^(eT@s&04}4%r3)_WToX(m{DZ>N=*EUGvY^I zTM{1TF>}hrk(y9p)%u`R1$uodbu7%gW~7gu8O_Zp)3!2r9LHlM=&{)DY*x9YWI1G- z@M5~~bV}Acf28q79KTmiXFP^7uR8en{lGL^9)>rM$`eIp9`#`RA`&woSlu+}?oaO$GgW zj2bsjTVKq4KL(aT`cm!fec&r*KVXP|_{UEUID9+sTqnBQJiE=a*F5)`CkmFPD>2Us z^Qvi^Lh0aSd60nn09IW1S~Hg{@G{l`{UjJPQIPM>peoUk}fh=f4?e%r$6U5 zCUec+{fOsKR?yL}g`7-pcH1QNP-I8s%d=#~>}N zf4VqoiBE^7@6Sk=+?IB>?^wx%i|swrVMNY&#dBpnTctyQg(2z#36*SX=psoxB3-k+ zaobwV&8@w1>!xcqZ?PVcCd8_6=*)mbLz#GJii=VB_Y^jT<(?o2)5CS*zac_p%)sK7#(DU&B5A^>Z z>i41oQGKHccz)Mro*m}dWuAM@v)?=i%(M6{@?E)krp>b+ z&p3UfS>vi%|F1=6x)zDL3>3t5Or}Q7s zbfmnmM5-upM&Ws6J1#v@(TFZUQa1dR8yjTA@vC#s;?VSzU79|(p3;o>Z(Kd))whe(PO$Cz z;C2yux3}{sqSxfMaZFObNzzZDwSZ;oQ@Ov5*5NXYcEmo?iSq2(M~uJxIBL`WY5Lb% zU-?_LkIclx&?{pffz@F1)(so4x^4(|C}(e=9z7hrW8AB5A1Ogk@kX+baNI2NzB=}i z6vAi!iY-8f&%yMLHXR~>>o9Axx>^9F{^W0~iI2=mmYw(QIJ1R6jTkoJBoj0O=qy{r$Vw)P8 z-ch3IbL$-gShxDd)jM8&`$!*lM-Ih4^4HcoDzu!To#dc;2h7`u*K4hJyjkre2h&Sj z9}`&=8=1QCtu;|A33Qd^!_`&Tj!U^7j=nNJhraU4*-4tlP_8$QounInieF7TNj<`6 ze@y?)!slT6${X2El2GYkSW1{K-2cyK1)kJbcup1dl>kqk^vnJKd@7ar^*w4~OUt&6 z>#u21jlqSB*5afU0OtgyYqmG4ZA-Rp+dQ+hsC3Mjwngief6_xLM&!WmjbJdwMmz**E%$aAZ>gjV9 z&#aohNX?zIX!?>xix;cPsxxL+&#qpWd|%Oqw{6tiI1*sUUy|;>ymY;P1_sC zeuT$27IVJ%m{V%uX-QAasKTWij#N+AZM&vuQFUu`$=2W7uqg7QKHwUWj;@ax9^l4Q-v!Y^JFl!3@`)&_bt9!S+y`X5! zhsNteIbI4adgf<6(=w5C|+GtU0t_S(RVN%y|yi@UR}3vRo#wiwNwr=3RD?g zY~vVJWzR5H<`Cne>&GlsWjw%mM@rfAi$^?`T$q%@i=Vjn+lg^SV`|k>>`M=pT(bqo zq;5@b3EtkgBcaswxIch zl~b%={y(R_|I~s@fAs&`dk?s%jIT39^@Pe4yZp+ zx32K?sC(4Zl1+J)ejRF|dI(+UP`?g}d zTKFM)LzvXJBb=_^DPGEaMV*S&*do61ul^QXArIZCqs(J_Z&(*2ZV*xM${3)Yx`Vo2V$7Z=vCMl(bew9~+72&-HN^XH zi>9|qkT8lj@hXNcfPYE7VzI2_|B=n%4PA{S=cCV z48vdVraFnwUR8g;T=qJorffP(Ekc^}lfhf>*OOb%n;xGmm(8oH?#6!GjChiEzL+>| zEh1i9RiXs9ED3RLTk+)Ue#C0Kwq2C=M8B}*E?d+m^}>2#wa^e(E;JC>3uVH*OHWEVg0hGmrmZT{8njxxlE{!Q-&}z ze`pSC3QJXnNJFxPAI(>W{3HrV$regNNcN>mWFgNPlf73-!n6rOk07KWSQk7C4W>m? zUmIqjay2!qgOwF~h7sXgG-Y2FRh=At%JGo6VW&QOy?7-%czxr;@vLb^tsT`>s-9(-Bl^si`hsqK!lFu{jUP$idCU;#sJ`>mLr)FV}OPYk?Su#{>_e65eWl2_mlK z2p&Ww;NMm*v(}*s43kYR(|A4D%ViBkjny{;l9@p5s6}8|kgI%eU5exk#>}UMDD{LR zzR4hM0=L|XQH{G(6=!qH3=_^6rD+MZE7s;O2SN{17qBM z;rW%fH6rKHDZom~2dAWaru3d6T*i-;D|)7$(a(>`mP6Hg!ZY>%z+1ml=*h2y6 z4DCvs0Ipc?dEu!7!+z~Y(xhVdmMWLMu_a8W4u}&J3_9u-xvB;W*MmaFu|4!Ap{2fI zg@0h%Wbv5?{~0KIgmYevmJ@;n2oFSDC<00-8+HMbm`e9Pj&6FfRv-(cDu^dmHI|Kk zVUoeJi0nI75f7J)1SlW{X78{svLOxZwN-rC>WrdW1jKBOS-@z>cHT{bmF7ILhV029IDzf z*9BHP+ZvXz07DrHPWizQb@aQz7xi9aXqE?%8k;{Pa3WfhJs)m*qMdYkZ|P&0be z?WkK)BBsiamnRmUzcp(e;tbm##ZQHTF*bGkgbCJVxlE+UJyqQYIU_{{|G@zwBdt9k zY^8dFho#KYn%9M#QZ(yz=h-Y3d?<(y;dP&o&#LJ#@srtt%=5O%zZNL4k`XX{fy4NuesLwcs!>{+U`f!=@NMl36r%N zN_~`Co75@P#O=VUCvbT{Wqo5cJ=*bXoBc_;q_Yy7W-2rTetmvPD&iVJgxSKNV9qDz zF!7?194cVO1<$4e&MUzx&e!9?Sg4J2dHF_PeT{2PZ$wg$;@l{KSn21Yun615^+}wC z&+G>ANn?v3OnYMTQq|0QH}8tF)7IS0 z9cWf=7+#tBmQq^flHy7IqaGBg7rr`Jv`+Ho5edLQq#~Yek;^-mke4EHAfQM%Xv2EF zn8Tj11f0rwF-J`f45L%4_CvwZ@1#j;;?!~(jVZ*Ff_s=yKM{Zebf-pR3pT`2+cm=Z zmDLVeO=6DGFN&~nZU?ZJ4!y`Kk_OzCnqP_0JeZcOng_#e6%@Uc2Qbd?r8R8S1|j=b zu=t}Q4i(vM@XCRF4i#CiM@8fZH(d_)S#YQbgbD9a5&2vyBA-u1(H-%NT`e*HDp>(P}p&*W#b|L z(&jy{`R~6Y%5Op;p03pV@RlO)5!@HtKQEu&!|XxtPLajq&u_k!(Y!oiF#OnNp-@@v zY*>Pf9r@#0@>41%N6T#!0W#7q^p^xY2gVrV(6&h9074eA(*dpmhHG^92*@= zjT>AGn{L=RlMLW`!_1~y+&Oit^$l@C>2dLX?c;J!_)xg<^Kg6{t_aK$Qb5RAaB^J= z@=q2evseY7_h)^Ds8?|!zfU+fVVklcC?Za0m@zI}IRtKgCXKO<(%@t|ng;79$mbzW z0xsel8N|yF@_C1AnL_by;c}>9;uLN`xP7J7FDgQ?)R5wZp*rGq*`{d&C~Cr-ySLfd z7F1tb#_JyPy;|BTsxJ}d^6U8+%&CJb=b!G!` z&xRB|;*Q{&FMDMe3z9|nWb)heitsTuk=nFTQ7guH4zz(6vNWFwXb5aY?%)n8Bv_w5 z{>$}|;~f^au=4)f?~h3k8?{OHI3g{mPR7*>JH^!|L5!ZY&MUeTgfnIu$S+Dz)M%={ znJ6d^A}j&At`iYgRQ`?{6Fzj1&<;MSMS=&9rB`Vv`_7Z{V{%(9WeNoXA+XRg9*6@s z?~%P*wwAEIMcib_WApa&RAsjE>i(;mjR0Z{Q zpD)U#oG!G)g+AV7qfNyin5tW}$NvQDbz^3uf57PcLR|xD2{VVCQgsH!U~O;Eys9FM zwfAW|rgu!getOqvY#w}3*(_)lQ0j4ofbttZz@_5kHybuTGdnISYE;L$(uT*f%%D^;TdZbxUt#EVzQNnyuVJHM)o>=qp9Tbe4~>enplra6yXlV@8` z(vcen=XEYBu?!QpTP^71jgcai2y=dZX4T9!BXF#BC&=-<{n*)iD&_(-% zOcoZ#01VHuW`KLG=m)9wNK|Y^oTFOsp@n9a@J_V+OA09okT>8!3(dg12Q5wvMqFs= zh=W;#k-T&!^10AL#7#ChlLDc=*HyNPfO_Ny?yr&0lh&ueI50_=NmeDqoVB+t0NAc& z=h7uvCf*}f!kQ99{8p0<8l9ZKtJc|g>vR+5JX}rKzghy0htNaBd6mqJX5sByh`%c2 z^D4h0DOsac#t2%?6k40><{g^NOq5A)!Qz#sxWZC@KaG9$#Zna^IhUQ)^+W^U4hT+m?@VtyRjgT+Ci+3GbPrkJ2=ySkIDMs0daYfC30kT<{b!KH-R;LzI#b*$j5z>Tn<(yVce+P`so>OH z3QzP;DD|J?UsrJ&hqd_+g)N>EgZpS4p(3>G;C>(qFrf;xJ!7=h54O{XeN3bimlPc+?wCZ{{=jKjb8YE5h zop(}ErnUg)aj8?-wJ08z=G%T;Nmv4)!PkTtx5T|*SjaGNZ4cauCk3&+#1K*{`P&U*d z*&)G(aoZ#w&vh5BOAXj0sgpdUN0Jkff?@QmnfHwQV?n`T^}F<09Ohrx*pxj4dESg^CyYr@^=?b%1lsmWiFT-PwZCB_3cWAIfmlMqrE(VaD zE%x+d(alT)lW%)EN9`F%jSekFcP9ikx#7_wAGyW%tlwk8YC&_QNoJ7Ae(S_AH8mV>{U zp*3IMLa18I(g&T&VbL|xYFG$>n-tTW5Ghw!h*h1LCp{5 zh!O!lpgf?A9epl#&u9;$>Jj&d4~e&{2Iv9$4LUnHAmELYpv9xln6YvMp7MNkH+xSj z(wRG`*n91bsH<>KHNp=5fK>x_R7JSB2tM?lT!y;71-^I3 z77b+%P^yHgGIc-!psueJPH<)EGa@B+1Ma$gJcqhcp8b)at}z64WdLh?7ghGztk1AU zN0?fIx>i?=WCc5KrS-jzdL69IQ=hUmBca$ZvH)Dh0r#`FUAYU?=_ z3uMaTgy31r6R@+0dOf6N){_RcptFgkK(tijz_j+{1K%Ct#C(LPM*K9csiBY?J~Sb! zQ4J8)1VkXtoBc@k*2J^7s(;|AKpjbLo_rlz9%ln=hP6>E6`7p$hTBUQZm*>_##_)N zAgJAB#y4uwF5wiQ+ktz9DUN_P4cfBMTB9UCr-H|YwZqgpt1+eNX)u(ej<9MY`{O1u0CrEmR;@FxiAFt+KO?ynD$A zr5No-MbC$G8xF9e+=a`{SUUms1ynZH*J7ueXG&RW?LD0wPimS_$95v0*FL3rB`rR> z&s{}4Ud(b2mp3}t?8aNAm&n3SUX+xpt`H)hKaAd5P<(3P!>7xS8X*wC?j*^0cCIa(Yw18EgmN(5GkQ+ z!Y7dmxxzFJhKACFIu+m8BNl%W>vU_}``D=Qf36ZoMJlIh-A|=)>_reUI1! z@LvCc&T$gC>61mT9A)rBf`Q3Teth1cpj_IH)aSoVYtw$mtT^{ol`y7X^EtR9(;D_4lruxZijy?j}$v|PmIRz@yvUT;gz@T?OV*59={M?Nfj zL$ii*Q`9Pn*8u^`;|Wb;u^W&C;E2)*o~@@}*ELB@6EwCMH9G;Pd)k>0ITp{de2P@m zzt{M1k5`I6po*^=x#FKDwRo}q|+Aw#0D$P>sZjiZ97Bpk!+f2jqldZEtT9hehP5s=0vcil&lQ{Q2 zRjmHWEzyLCOZZeUEd-yVJso#?V&0t-5Iztx=zqt9ZOGHTw>ap!aFu*u^uTE9#=ky! z?o(x-kgeZ|@JabWS=*=w%Fw{5*GFMZFBNyPBhpSOgCfJX?PK?Wy+zT?vXYLqoc(-d zcJQERKy;d8R%ooV^V=C$gVX7I3)|}%-Li7V`s2)8)pq4NEI1i-G)N_AF5HZQw#foS z=Y_{_hjk#4=?66J8DLhN4mZ!N818f5=V?WQnH`j)^H9D}a>sVJXwgf;shXiE!lc}) z#e&JZ`pp320mM@re*)s+m+<$8UaDO&D3Z&3&>r8)0<`bi@0hWoy=zbBKKEw;?HgWq znVpY%WGZ@wq9L7H3LeaIAM55=(T>IL?Sv%9F<73~y}U~)`~Y6O$g zxqW~zDgMWP*u~7DW;<%_OyiPahBGoBWZ%fpD=SPCz<$K@Ek7I*0q|EB1K;xEllPyG zk`TV7TMV%OSl{NQ{zPioFyR=jB8&?M`CmvFKKlCS9PFn;N1MO+M($Q=mre)RuL9t& zb>H=mBfm$&VgpFcA%hwsVd3aSlNnam%;k~)J7Is25BA%6*xx2$kTui7gT7)S$E{E{R_beO=xc7o#lz>RLf4PL<1}%kp&B; zuD=)NTCKft2`b!Vt#{|%5lw|y0yM|WW@bbaACh_f4HzYM;WpGfe`B!mc7b z5aJQV3a75RtTxGwj$ZG?+GSM^TS%Sz#;iH+q9Vfa3}vkqSjuifsRU8r_2t2!rGOh> zVt`Wsks8k_XhA|XNDxKI3U`A8q?ww5QEpu*FhA&y)>yz3Zp^s@{vhE@dcY7t6d&dR zoPqeLj^L_n)|R z&!RwFp~MrW$_M{_PW)aMGuSE)P?zO(#P^2uq>9gHy79n*>{h!VZLjPjyCANj5nGQ0 z2S}x1&A0nK?k|uN)KM?XzAa%j2GlV;elVLu9Y^uOq?vOH3JBi#2gch(C)*978S6y! zmgcI~*`sWXI*QoTm6$^R}!)HjOb-yQp&Hp=j(*}JJp*f4}eCJBmJ`Z3&>49)Cl@>{#)V zaUJwdB3%P7+}5o8y1M$@9BQtP2-iTihO?Snl^H~~c7H+9h8(K2%(fd_6Xs`ind7%S z6EI;?NvJ04fUJg+lm+La0|yImRM$ab30NfuxpU!G4mX{A94pU>8s5;y?%~iAka=aC zEN!^S<@968O+n+jD0bkW^RK3S6C>TuowFDXIe58E_^NgUgP}Y8)Un0YJ?yx(RpK z8%?~aH8ko;)@v(QQX^$zS5}}1!nGhy;s#tx6f>F=*p4~zV!@N=sSQksYXv%@iK3DS z8!wtr*CeY!CpA<8!CsVbG+|s|$&Dq%KVUFc_FvU(i=Gt-8`+Io>Q=-vFj_70iY4li zS1eJCykZGh_Vw~JbPW>mC`@GseujP!c$u~e+%*=Kj`bVIF_W)jUm#*Q{P#yEwuZ-{ z^7YST?KVw`6u1>E0?HJ4mQY|?+_CEdfoB1;HN0G+lV6;bHoUMjn`vilEo-L;HWs@< z@`b!e>xN;%LL8lE61Lj=N)z3J#T)3O5i@(Yc^BPYRNtXFI$L{chq%X-oH#lyk*)8Y zDQCfUmSH@hw<19RJVxGlL_iOed&_jpjHQ)@$*>J++0fFoc6S zKIbV|Y9pwqT&b;-iQU;IfnO}gxA>OSevCzck2rJ$Yv}wA=(ai+MGdO#-JrRC6(jkD9jw%Al!6W}92N1dH3kdt5|=L)AeXC}wD06L;fv%Gvu z1c#5#6m#fkw;kUCd<%z;IyuQz=c9(Bj|sh~2ryA7hl*^8fQbZXD~E~z6J@}f+6M_p z934?yLi4ByFcGqP9XR}O5f$;6h~`ldU?KycB4Gcj0U70nUPMOu-;O{=6UKF2L`E~? zE)ZlibgUY1a-S)jrH2VN8r=IyK-Yb-dpurF=bl&r{ZCfy{-=1|Dtn@*kHbg+8g)I4cjL;pQU)d?dz#Pr;o49zi(mC%2EdS4(0?Si?W||idEbaG8eamlU zTxUhyUn+)0QOGPZ$UhWYPf3-E^_#jwYAq%w1BnF zqX0l#9n$7ib5wUommFSrUWlC%+^>L@wV&1N!*gg8dY4j9=n3yx`yxtOgX;=(~diZ&6)#;_Z+@G z|LNf@^$iQt?|Gm@TBS^F&VDB4nVUu35yI5Sfbf8WAAI?t|GC5iy?c98en>pod$L2Y zOK?X{haTg*RZjxzNfP8I*t9$GVYS%di%dfiQpA9>#B>B%{ma|*bzqQp^4=L9bO8rZSAqUoI~?VC0! zMn7t>=c%Z%?_7t4ZLb$a{!3q5=*5;}5=?4p?+;m+dg7wQ97HBO1Vr<^f>{KbTby7P zaf)G}cOY@p)F99)HO3)MXU0L6MQOy-(Hj9DFe(6qf)qEuP%0Qj%RnJT-G`AGz$V31 zf|?PL603+ZiewtL){J+GT7gA2ySeI8() zi3#$agvQ6?4%vKn#9I?t|81bCFwf5@9qo3iO_GTxm(6jqUQD`n%1L*=fJVi0MC0+X z=d5if^9=r@C5Kv?o9HsiA5c4B@FKDTh8WB? za+*hE39LrtFjrIv-UBp_0NJ<*1opE&IyzO|b{9d?sxr{%qm-}!g%)8AXFG2y7|-jS zfN`(b5p_aLwrRaAb`}e4EUV;KrJnpm)EoUKt?!lh3l0CKR~r9Kr+h`X(DpH!fW^-j z($$6Z&GwoW`pZDX3F&yfY96mEUzCj(m~3qVVhYc7_^~OB)0Vb}>WtD;C`+Bo;S7=E z)>*c#9NHKLEewpPmlh1U1T~098TLjShcfm9Pg~aDSX5nCB`a5`CuJ?$x1W7boa5|b zEiJF^#Vew7vhYEn!0)qpCu9!KyD~ceCD{YQKH1bmZNli6h4hJ}!GMa{pc%_vM+Mj+l3zxp5UA*XJi)0UylHTmhBa2?< zTV)`-aH%M5PLtT8TVzw7@f7b z!B3yx+$}rAc+7r!G#HjG%ogf|+uGXNF6?8LqVDh%-B?3Vv&z%%`KEoTN+ep)@Qv`H z+fu2YMaXBMZChzrjG#JXA*jQo3|Y<%j4i!)_Ps@ZhTBK=D~1?PbEKzZxT9V0O~;x@ zt8`VEm{sH$-T>Yd?5E|q*xkC>z$e;g*9*+ZQp|CSO(Ck)r8Z+}|6Z_~#&Y<%(Q$B} zv>%n$p#=m<4-=*_(l634+^<{FTqfvFX34k$_WoQ-}ZqR9W7ZGHZJ^Z-~OgoP1;_yF&@pL?GWiJNE? zNVRjk8el+{h&5rIr)=j%t&;Dx-F|UT70wb$7fzuE7d%^6Ivja!fnK0T&Q8(Kh9AT| z=`Hjm`tK-aTp4QK9@aa-ji%H6uPc{ipC%H@j8hX!Z`m#}BBabZ=%=q)ET-R(xNllo zGt+o5v7syYHLa#hKbz&Gbq?*hnA87?$&ji-G!3C@Q%JkwTa6~}+lC|J#G)I|WJp zEf^g8z?9|)i}1yJqwZ0@_WpsB~ zmB=q}CfWudO93nPpnl1(c`yL5{E6Zv2eCj#Vy-|HoEFY83U`;B^%)$aWLGYcN zB9vO;{ICXb8ik+`jDS<(Z9%FZo0R?=t)V}tZ z=px|z-mfGcBc&JgO&V+i&^H*S-B`9N3x5lMuXD@sImgCzg~Tu)9!01VAm3nTwl+@N zJmtY-vixb$^x%Y2S&mHim%Rr21pV|Ix?s_|RNC{=B;n-lGK;he4W_5q)bs(+W&ks%Cc#30dp< zc~j{2(z?>_=p`Mcu~KJ)$ndf_c@jQX6aJdaJWl6l9GZMI)QyzW>5jsV+V)zIsbvhT zn|O}3`Zbnp_tXDaBc=siwezL?%7u@P(@;67JW=nsN!t;9U-WXRE=1EFs`l7Ix^?Z$ zW`$02pm?1$C-6U6$E5uNJYRY+FZuyfxzk01WnuM9 zZ}_>>U(@GKUsy_QI|WaiJB?mBcY2uV(M&jZ`t+mcPCp)W?sTr;ZFK7qf z48l#X(O|IeJjwqZPKu1YVCUijp?ovuK$oPBkm?8#Sckw=e&)qPJi6?NWm4RHN%)FMR7cQaj z%it1y*GVRP;}lkcmg2=|_1bcPOKW2V!PTs6u|Rl{a#T3j1FTGtLLe08Ak^9nfJ;99 z0|Ecx)B==Z`DKKrw%Haz3}VSzF#AygjinR#wP4KY>D~4i#_b@OGO*!lwLrC@WwA)% z7IGw7V9R@>fmKPs+B+n(dsv)^=c^Lksc}&+s+|OvXc80M97XMT?RF~RMMk=oLfrta z+y~=l^=xn-i^#v-!mxAq2J4v0Z+a6A(+}ZefmC8I=(X8OK<=fD8D(7^ccK5Kb-_8V z6gHyK66^nJlzg9`^}(_XML($34-=`@@ANzHeXZ zC(8JMo9$1wtZSCqrKvI5@e(H*qpW!A`7wUX(-ffFOY5u|K#WZn4kpQrV9t2c8ux`HGH9*RTt0v9eIXjvw##E ziW(YAD6#fsf%x1ghwC4U0R;UkV_jPEEmlALIzxv}UK~$ou`Kfv<4_{V*G6dB?9g*S zXmz<0-Q2WNG1=T?JKv97TrDdBU@) z*1!vany2r%D?G`cIxP2^R7F0Us-AYVC##;J1^pAm*AcqRqPg?@-9T#T_jF`E6Wa9` zYP{WF&(mjKF!Xm&W+!0ignG8rF<4SvSuIDRf2y&K%A%4#Eh=qvGt*a$c>>K;Jtmh8 zp<)%;pAtY;9Yr?>gdkXR1ZvB!S_s6}4E3x-_hH8D?B2m~hTE#lg$k=8^^V?1DeJDQsdiJU8Q=YInF2S8K zqu*&2-W)%iV9M&)K+k(4`9a4U1N3rNg|IpM)Uk4sG4+E^Ci_(Vd&`1E)%~H_ry7f> z(#4*e7H6N@@dZ*vzKp`~{OnUFQBd|N6SZts7KXBgo^OTOr=BV(CxPHIpOaw1|uj_?4Q<^?djg?r*`oIoX@h)Qr~0Qg8SDQi32baeYj!u}XnDQo%=Wlt#cvy||Wm9FUR4FK*JDrHYyjl;vnH za}$9}?std!atT;M?xG+?pu(6phn-8!CAg27RbUcwHWLmv;+z!RJFRe3QZG$Si}2b< z$UY;?u5D=%nl(X7f^W7j>)p%&sJ3bG5__Ig4$HtN>7=XZBY``SmHZlgG#DIre9y5K zg=s6nLg;~884Nh6t`tqZ4*y5jziVBHVUsd{kD0L}PdxK5#fC&pI*QD>R4Pkt+r+Ss z4m|9B5(uSzP0e?AxyKz%I2>jgbu_^C!cwNj7%4u2kK zo1npZb+day=Qu3&A7@j(@z5ZRd+eJQ$L{JDf2?gk+n-AN>0Xz}t z6o~|p)L4q&n*ZlEK5G$d_(#PBXnmwu@caM;5O(o47x;w8HvJzg6VK7MyE?j z17ixSeZ~~}IAaPsyv7tNEWc<>;bEUK1qm2a2o48R3Ju6>N&(O%9kU~c*ixwVuU^UI z3Jky51Jo!1Lc@@a_!fGLWQQ|(&v)UR2=~ZAdSm%p%`cKW(GcGV;R%TIgOcwR{;5j? z1+x5s1B`PaQkf8f7y>Di9GCY$`4+!=@YT<-`U)VKedCUA?11+=^kNl!MSu1eR#*{i z#6m7`Xz^zb1N(_E@Q<@Y>#RUWASvYxmq!!;6CL7K1rQZyIk zATugOMQAoEMAMKJSy0I}p1O8Y*q^BX5g3mpVE&986`�$VdOwujEhEzX@vE#PHSq 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 diff --git a/acs/nladmin-system/src/main/resources/log/AcsToWms.xml b/acs/nladmin-system/src/main/resources/log/AcsToWms.xml index 1fd47da..fb101c1 100644 --- a/acs/nladmin-system/src/main/resources/log/AcsToWms.xml +++ b/acs/nladmin-system/src/main/resources/log/AcsToWms.xml @@ -3,21 +3,20 @@ - + ${LOG_HOME}/ACS请求WMS/%d{yyyy-MM-dd}.%i.log 15 - 200MB + 50MB 2GB %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - ${log.charset} @@ -28,6 +27,6 @@ - + diff --git a/acs/nladmin-system/src/main/resources/log/AcsToZDWms.xml b/acs/nladmin-system/src/main/resources/log/AcsToZDWms.xml new file mode 100644 index 0000000..46790f0 --- /dev/null +++ b/acs/nladmin-system/src/main/resources/log/AcsToZDWms.xml @@ -0,0 +1,33 @@ + + + + + + + + + ${LOG_HOME}/ACS反馈ZD/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} + + + + + + + + + + + diff --git a/acs/nladmin-system/src/main/resources/log/ZDToAcsWms.xml b/acs/nladmin-system/src/main/resources/log/ZDToAcsWms.xml new file mode 100644 index 0000000..fd1a736 --- /dev/null +++ b/acs/nladmin-system/src/main/resources/log/ZDToAcsWms.xml @@ -0,0 +1,33 @@ + + + + + + + + + ${LOG_HOME}/ZD反馈ACS/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} + + + + + + + + + + + diff --git a/acs/nladmin-system/src/main/resources/log/ZheDaAgv.xml b/acs/nladmin-system/src/main/resources/log/ZheDaAgv.xml new file mode 100644 index 0000000..0f68c1f --- /dev/null +++ b/acs/nladmin-system/src/main/resources/log/ZheDaAgv.xml @@ -0,0 +1,33 @@ + + + + + + + + + ${LOG_HOME}/下发AGV日志/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} + + + + + + + + + + + diff --git a/acs/nladmin-system/src/main/resources/logback-spring.xml b/acs/nladmin-system/src/main/resources/logback-spring.xml index 19e65fd..88bf906 100644 --- a/acs/nladmin-system/src/main/resources/logback-spring.xml +++ b/acs/nladmin-system/src/main/resources/logback-spring.xml @@ -27,6 +27,10 @@ https://juejin.cn/post/6844903775631572999 + + + +