From 381f02595f0e6faf3171308b8e4923898686ccf6 Mon Sep 17 00:00:00 2001 From: XingCheng3 <1773407212@qq.com> Date: Fri, 22 May 2026 12:58:17 +0800 Subject: [PATCH] MVP --- .babelrc | 12 + .editorconfig | 14 + .eslintignore | 5 + .eslintrc.js | 196 + .gitignore | 15 + .postcssrc.js | 10 + LICENSE | 21 + build/build.js | 45 + build/check-versions.js | 64 + build/logo.png | Bin 0 -> 6849 bytes build/utils.js | 108 + build/vue-loader.conf.js | 5 + build/webpack.base.conf.js | 111 + build/webpack.dev.conf.js | 98 + build/webpack.prod.conf.js | 181 + config/dev.env.js | 8 + config/index.js | 91 + config/prod.env.js | 5 + debug.log | 5 + favicon.ico | Bin 0 -> 2183 bytes index.html | 20 + m.zip | Bin 0 -> 11466189 bytes package.json | 106 + src/App.vue | 29 + src/WorkRecode/WorkRecode | 23 + .../BasicData/EquipmentCapabilitySetting.js | 75 + src/api/BasicData/EquipmentMonitoringNew.js | 44 + src/api/BasicData/FactoryCalendar.js | 31 + src/api/BasicData/Materialmaintenance.js | 57 + src/api/BasicData/MenuManagement.js | 199 + src/api/BasicData/PartsNumberMaintenance.js | 398 + src/api/BasicData/PersonnelManagement.js | 430 + src/api/BasicData/ProjectManagementDisplay.js | 58 + src/api/BasicData/ShiftManagement.js | 88 + src/api/BasicData/SystemRrolemaintenance.js | 69 + src/api/BasicData/UserRightsManagement.js | 98 + .../BasicData/WorkshopPersonnelRoleMana.js | 176 + .../BasicData/WorkshopProcessMaintenance.js | 184 + .../BasicData/maintenanceEquipmentPerson.js | 115 + .../maintainInformation.js | 198 + src/api/SPCanalysis/QualityData_XR.js | 15 + src/api/SPCanalysis/QualityData_XS.js | 11 + src/api/SPCanalysis/_system~.ini | 0 src/api/SPCanalysis/arrangeChart.js | 11 + src/api/SPCanalysis/basicTrendTap.js | 15 + src/api/SPCanalysis/histogram.js | 15 + src/api/SPCanalysis/normal_distribution.js | 24 + .../SPCanalysis/processCapabilityAnalysis.js | 11 + src/api/SPCanalysis/sampleTrendChart.js | 11 + src/api/ipAddress.js | 4 + src/api/login.js | 58 + src/assets/404_images/404.png | Bin 0 -> 98071 bytes src/assets/404_images/404_cloud.png | Bin 0 -> 4766 bytes src/assets/img/Init1.png | Bin 0 -> 162 bytes .../img/api/Assembly/AssemblyExecution.js | 142 + .../api/Assembly/AssemblyInformationInput.js | 100 + src/assets/img/api/Assembly/AssemblyMes.js | 153 + src/assets/img/api/Assembly/AssemblyPlan.js | 46 + .../api/Assembly/AssemblyProcessAssignment.js | 59 + .../api/Assembly/AssemblyProcessPlanning.js | 324 + .../api/Assembly/AssemblyQualityInspection.js | 103 + .../img/api/Assembly/AssemblyQuotaSetting.js | 102 + .../api/Assembly/AssemblyTaskAssignment.js | 242 + .../img/api/Assembly/DeliveryApplication.js | 46 + .../img/api/Assembly/DeliveryConfirmation.js | 68 + .../img/api/Assembly/ElectricalAssembly.js | 116 + .../api/Assembly/InstallationAndMonitoring.js | 145 + .../img/api/Assembly/MakeAssemblyPlan.js | 164 + src/assets/img/api/Assembly/PlanExecution.js | 116 + .../Assembly/PrintingAssemblyProcessCard.js | 60 + .../img/api/Assembly/QualityBasicData.js | 306 + .../QualityInspectionInformationInquiry.js | 318 + .../img/api/Assembly/ShipmentApproval.js | 46 + .../api/Assembly/SparePartsOutStockRecord.js | 47 + .../Assembly/TypicalAssemblyMaintenance.js | 282 + .../BasicData/EquipmentCapabilitySetting.js | 75 + .../img/api/BasicData/FactoryCalendar.js | 31 + .../img/api/BasicData/Materialmaintenance.js | 57 + .../img/api/BasicData/MenuManagement.js | 199 + .../api/BasicData/PartsNumberMaintenance.js | 398 + .../img/api/BasicData/PersonnelManagement.js | 430 + .../api/BasicData/ProjectManagementDisplay.js | 58 + .../img/api/BasicData/ShiftManagement.js | 88 + .../api/BasicData/SystemRrolemaintenance.js | 69 + .../img/api/BasicData/UserRightsManagement.js | 98 + .../BasicData/WorkshopPersonnelRoleMana.js | 176 + .../BasicData/WorkshopProcessMaintenance.js | 184 + .../BasicData/maintenanceEquipmentPerson.js | 115 + .../img/api/Inventory/CreatePickingList.js | 230 + src/assets/img/api/Inventory/DirectPart.js | 157 + .../api/Inventory/ErrorInformationQuery.js | 19 + .../img/api/Inventory/ExchangeApproval.js | 47 + src/assets/img/api/Inventory/ExchangePart.js | 144 + src/assets/img/api/Inventory/GenneralPart.js | 58 + src/assets/img/api/Inventory/InboundCard.js | 184 + .../img/api/Inventory/Inboundscanning.js | 111 + .../img/api/Inventory/InventoryCheck.js | 291 + .../img/api/Inventory/InventoryManagement.js | 129 + src/assets/img/api/Inventory/MaterialOut.js | 248 + .../img/api/Inventory/MaterialReturn.js | 100 + .../img/api/Inventory/OfflinePartOut.js | 141 + .../img/api/Inventory/OfflinePurchase.js | 145 + src/assets/img/api/Inventory/OutPartSelect.js | 47 + src/assets/img/api/Inventory/PartOut.js | 143 + .../img/api/Inventory/PartsReplacement.js | 174 + src/assets/img/api/Inventory/PickingList.js | 219 + .../img/api/Inventory/PickingListSearch.js | 202 + .../img/api/Inventory/PurchaseInRecord.js | 100 + .../img/api/Inventory/PurchaseOutRecord.js | 126 + .../Inventory/SelfMadePartsWarehouseOut.js | 100 + src/assets/img/api/Inventory/StockInquiry.js | 60 + src/assets/img/api/Inventory/SubPartCome.js | 31 + .../img/api/Inventory/SubstitutePart.js | 129 + .../ActualTimeSupplement.js | 115 + .../ManufacturingCenter/ActualWorkQuery.js | 18 + .../api/ManufacturingCenter/AddingOrder.js | 170 + .../ManufacturingCenter/AntonMonitoring.js | 18 + .../CompletionOfWorkshopComponents.js | 74 + .../ContractApprovalQuery.js | 60 + .../ContractApprovalQuery1.js | 60 + .../ContractDetailsInquiry.js | 48 + .../ContractDetailsInquiryMetalworking.js | 61 + .../ManufacturingCenter/CreateIntakeList.js | 174 + .../CreatePreparationBill.js | 89 + .../CreateWarehousePurchasing.js | 171 + .../DiscardedPartsInquiry.js | 96 + .../api/ManufacturingCenter/Enter0therData.js | 68 + .../EquipmentConditionAnalysis.js | 82 + .../EquipmentMonitoring.js | 102 + .../EquipmentMonitoringNew.js | 44 + .../api/ManufacturingCenter/GroupMatching.js | 184 + .../ManufacturingCenter/InitialProduction.js | 254 + .../MachineToolProcessStatistics.js | 43 + .../api/ManufacturingCenter/MachiningParts.js | 41 + .../MachiningSequenceAdjustment.js | 141 + .../ManufacturingCenter/ManHourAnalysis.js | 99 + .../ManufacturingCenter/ManHourStatistics.js | 31 + .../ManufacturingCenter/MaterialAllocation.js | 137 + .../ManufacturingCenter/MaterialArrival.js | 86 + .../MaterialArrivalManagement.js | 160 + .../MonthEndHourAccounting.js | 57 + .../MonthEndHourAccountingMetalworking.js | 31 + .../OnlineProcessChange.js | 645 + .../ManufacturingCenter/OwnTimeStatistics.js | 30 + .../img/api/ManufacturingCenter/ParseQuery.js | 68 + .../api/ManufacturingCenter/PartAssignment.js | 435 + .../PartWorkCraftSelect_rdlc.js | 128 + .../ManufacturingCenter/ProcessAdjustQuery.js | 74 + .../ManufacturingCenter/ProcessPlanning.js | 507 + .../ManufacturingCenter/ProcessPlanningNew.js | 660 + .../ProcessQuotaEstablishment.js | 605 + .../ProcessQuotaStatistics.js | 59 + .../ProcessTaskAssignment.js | 104 + .../ManufacturingCenter/ProcessingStatus.js | 95 + .../ProcessingStatusEdit.js | 183 + .../ProcessingStatusNew.js | 283 + .../ProductionCapacityBalance.js | 368 + .../ProductionPlanQuery.js | 100 + .../ProjectPlanningManagement.js | 202 + .../ProjectPlanningManagementNew.js | 156 + .../ProjectPlanningManagementQuery.js | 186 + .../ProjectPlanningQuery.js | 87 + .../QualityInspectionQueryMetalworking.js | 33 + .../ManufacturingCenter/QuotaFormulation.js | 117 + .../RawMaterialsMaintenance.js | 57 + .../ManufacturingCenter/RepairTimeEntry.js | 197 + .../RequestApprovalQuery.js | 72 + .../RequestApprovalQuery1.js | 72 + .../ScheduleCompletionDetails.js | 61 + .../ScrappedSupplementaryInvestment.js | 70 + .../api/ManufacturingCenter/ShopScheduling.js | 112 + .../ManufacturingCenter/SparePartsForScrap.js | 132 + .../api/ManufacturingCenter/SparePartsOut.js | 104 + .../ManufacturingCenter/SparePartsPurchase.js | 57 + .../api/ManufacturingCenter/StatusQuery.js | 81 + .../TraceabilityOfParts.js | 69 + .../TypicalProcessMaintenance.js | 198 + .../api/ManufacturingCenter/WorkingHours.js | 30 + .../WorkshopEquipmentManagement.js | 134 + .../machiningHoursStatistics.js | 131 + .../maintainInformation.js | 192 + src/assets/img/api/MarketingCenter/BidBond.js | 201 + src/assets/img/api/MarketingCenter/CRM.js | 241 + .../MarketingCenter/ComprehensiveInquiryMS.js | 173 + .../ContractCapitalManagement.js | 507 + .../ContractInformationManagement.js | 378 + .../img/api/MarketingCenter/CreateProject.js | 120 + .../MarketingCenter/DeliveryApplication.js | 199 + .../api/MarketingCenter/DeliveryManagement.js | 316 + .../img/api/MarketingCenter/InvoiceRecord.js | 147 + .../api/MarketingCenter/MarginManagement.js | 0 .../api/MarketingCenter/PerformanceBond.js | 184 + .../img/api/MarketingCenter/ProjectFiles.js | 214 + .../api/MarketingCenter/ProjectProgress.js | 40 + .../img/api/MarketingCenter/SafetyMargin.js | 175 + .../api/MarketingCenter/ShippingInquiries.js | 44 + .../api/MarketingCenter/afterSaleService.js | 378 + .../ApprovalOfOutsourcingArrivalTicket.js | 48 + .../api/Outsourcing/InterBudgetaryBudgets.js | 113 + .../api/Outsourcing/OutFactoryMaintenance.js | 61 + .../Outsourcing/OutsourcingArrivalTicket.js | 159 + .../Outsourcing/OutsourcingDataMaintenance.js | 74 + .../Outsourcing/OutsourcingInspectionEntry.js | 46 + .../api/Outsourcing/OutsourcingPartsQuery.js | 86 + .../OutsourcingPaymentPlanManagement.js | 128 + .../OutsourcingPaymentPlanManagement2.js | 147 + .../Outsourcing/OutsourcingPaymentRequest.js | 115 + .../api/Outsourcing/OutsourcingPriceBudget.js | 91 + .../api/Outsourcing/OutsourcingQCSearch.js | 288 + .../img/api/Outsourcing/OutsourcingStatus.js | 19 + .../api/Outsourcing/OutsourcingTaskChanges.js | 212 + .../Outsourcing/OutsourcingTaskExecution.js | 187 + .../api/Outsourcing/OutsourcingTaskQuery.js | 267 + .../Outsourcing/OutsourcingTaskQuerySearch.js | 32 + .../OutsourcingTicketArrivalQuery.js | 47 + .../api/Outsourcing/OutsourcingTimeBalance.js | 277 + .../api/Outsourcing/PreorderAssociation.js | 126 + .../api/Outsourcing/UnqualifiedTreatment.js | 46 + .../img/api/ProjectManagement/progress.js | 16 + .../img/api/ProjectManagement/summarize.js | 44 + .../PurchasingCenter/ArrivalStateSearch.js | 103 + .../PurchasingCenter/BacklogGoodsAnalysis.js | 48 + .../PurchasingCenter/BacklogGoodsPrepare.js | 61 + .../PurchasingCenter/CreateInquirySheet.js | 633 + .../CreatePurchaseContract.js | 152 + .../img/api/PurchasingCenter/FundApproval.js | 132 + .../InvoiceSettlementApplication.js | 213 + .../InvoiceSettlementApprove.js | 102 + .../InvoiceSettlementApproveSearch.js | 116 + .../api/PurchasingCenter/MaterialMProcure.js | 288 + .../PurchasingCenter/MaterialManagement.js | 360 + .../api/PurchasingCenter/OfflineContract.js | 425 + .../OfflineContractRequestFund.js | 102 + .../PurchasingCenter/OfflineContractSearch.js | 47 + .../api/PurchasingCenter/OfflinePartsQuery.js | 18 + .../api/PurchasingCenter/PayStateSearch.js | 32 + .../PurchasingCenter/ProjectTotalSearch.js | 60 + .../PurchaseContractApproval.js | 87 + .../PurchaseContractRequestFund.js | 181 + .../PurchaseContractReview.js | 100 + .../PurchaseContractSearch.js | 86 + .../PurchaseInvoiceDelivery.js | 142 + .../PurchaseMaterielModify.js | 31 + .../PurchaseSituationSearch.js | 216 + .../PurchasingCenter/PurchaseTaskAllocate.js | 197 + .../PurchasingEfficiencyAnalysis.js | 73 + .../img/api/PurchasingCenter/ReceiveCheck.js | 86 + .../img/api/PurchasingCenter/SetPayPlan.js | 88 + .../PurchasingCenter/SupplierManagement.js | 116 + .../AllocationOfMachineComponents.js | 95 + .../api/TechnologyCenter/CreatePackingList.js | 294 + .../img/api/TechnologyCenter/ImportParts.js | 581 + .../PartDrawingMaintenance.js | 18 + .../img/api/TechnologyCenter/QueryParts.js | 137 + .../StatisticsOfRectificationItems.js | 30 + .../WorkshopProcurement/AccountingPrice.js | 74 + .../WorkshopProcurement/ArrivalStateSearch.js | 32 + .../ContractApprovalQuery2.js | 61 + .../CreatingProcurementContracts.js | 201 + .../CreatingPurchasingMaterials.js | 230 + .../DepartmentBuyerRequestFund.js | 89 + .../api/WorkshopProcurement/FundApproval.js | 312 + .../InvoiceSettlementApplication1.js | 201 + .../InvoiceSettlementApprove1.js | 61 + ...oiceSettlementApproveSearchMetalworking.js | 59 + .../WorkshopProcurement/InvoiceStateSearch.js | 60 + .../MaterialPreparationContractQuery.js | 60 + .../MaterialPreparationReceiptQuery.js | 59 + .../MaterialsInvoiceApproval.js | 59 + .../api/WorkshopProcurement/NewArrivalList.js | 278 + .../WorkshopProcurement/OfflineContract1.js | 174 + .../OfflineContractRequestFund1.js | 88 + .../WorkshopProcurement/OfflineProcurement.js | 169 + .../OutsourcingMaterialsInvoice.js | 225 + .../OutsourcingMaterialsSearch.js | 131 + .../OutsourcingProcessPlanning.js | 311 + .../OutsourcingQuotaSetting.js | 131 + .../OutsourcingStockArrival.js | 75 + .../api/WorkshopProcurement/PayStateSearch.js | 32 + .../ProcurementContractApproval.js | 87 + .../ProcurementContractEnquiry.js | 101 + .../WorkshopProcurement/ProjectTotalSearch.js | 45 + .../PurchaseContractChange.js | 143 + .../PurchaseContractRequestFund1.js | 115 + .../PurchaseInvoiceDelivery.js | 129 + .../PurchaseSituationSearchMetalworking.js | 61 + .../PurchasingQualityInspection.js | 74 + .../QualityInspectionQuery.js | 32 + .../ReceiptConnectionSheet.js | 103 + .../RequestApprovalQuery2.js | 73 + .../RequestApprovalQuery3.js | 73 + .../RequestOutsourcingMaterials.js | 103 + .../ScrappedSupplementaryInvestment1.js | 44 + .../WorkshopProcurement/StockPreparation.js | 88 + .../api/WorkshopProcurement/costStatistics.js | 68 + src/assets/img/api/login.js | 47 + src/assets/img/blueTWinkle.gif | Bin 0 -> 103 bytes src/assets/img/favicon.ico | Bin 0 -> 2183 bytes src/assets/img/gray.png | Bin 0 -> 951 bytes src/assets/img/grayTwinkle.gif | Bin 0 -> 103 bytes src/assets/img/green.png | Bin 0 -> 18553 bytes src/assets/img/greenTwinkle.gif | Bin 0 -> 103 bytes src/assets/img/leftPic.png | Bin 0 -> 57731 bytes src/assets/img/logo.png | Bin 0 -> 57731 bytes src/assets/img/logo1.png | Bin 0 -> 28491 bytes src/assets/img/shebei6.png | Bin 0 -> 348 bytes src/assets/img/sj16.png | Bin 0 -> 856 bytes src/assets/img/sj24.png | Bin 0 -> 1024 bytes src/assets/img/sj32.png | Bin 0 -> 1733 bytes src/assets/img/sj48.png | Bin 0 -> 1938 bytes src/assets/img/user.jpg | Bin 0 -> 23157 bytes src/assets/img/yellowTwinkle.gif | Bin 0 -> 103 bytes .../AmountInputBox/AmountInputBox.js | 92 + src/components/AmountInputBox/index.js | 11 + src/components/Breadcrumb/index.vue | 55 + src/components/Calendar/calendar.js | 526 + src/components/Calendar/calendar.vue | 837 ++ src/components/Hamburger/index.vue | 63 + src/components/Scrollpane/index.vue | 72 + src/components/Sticky/index.vue | 91 + src/components/SvgIcon/index.vue | 43 + .../Tinymce/components/editorImage.vue | 103 + src/components/Tinymce/index.vue | 204 + src/components/Tinymce/plugins.js | 7 + src/components/Tinymce/toolbar.js | 6 + src/directive/clipboard/clipboard.js | 49 + src/directive/clipboard/index.js | 13 + src/directive/el-dragDialog/drag.js | 46 + src/directive/el-dragDialog/index.js | 13 + src/directive/sticky.js | 91 + src/directive/waves/index.js | 13 + src/directive/waves/waves.css | 26 + src/directive/waves/waves.js | 42 + src/icon/demo.css | 539 + src/icon/demo_index.html | 303 + src/icon/iconfont.css | 43 + src/icon/iconfont.eot | Bin 0 -> 2348 bytes src/icon/iconfont.js | 1 + src/icon/iconfont.json | 44 + src/icon/iconfont.svg | 39 + src/icon/iconfont.ttf | Bin 0 -> 4780 bytes src/icon/iconfont.woff | Bin 0 -> 3092 bytes src/icon/iconfont.woff2 | Bin 0 -> 2660 bytes src/icons/MaterialVerificationMaintenance.svg | 2 + src/icons/gallery.html | 1295 ++ src/icons/generate-icon-gallery.js | 151 + src/icons/index.js | 9 + src/icons/svg/ANDON.svg | 2 + src/icons/svg/AccountingPrice.svg | 1 + src/icons/svg/ActualWorkQuery.svg | 1 + src/icons/svg/AfterServiceSearch.svg | 1 + src/icons/svg/AndonMaintenance.svg | 2 + src/icons/svg/AndonStatisticsStation.svg | 1 + src/icons/svg/AndonStatisticsType.svg | 1 + src/icons/svg/AntonMonitoring.svg | 1 + src/icons/svg/ArrivalStateSearch.svg | 1 + src/icons/svg/AssemblyExecution.svg | 1 + src/icons/svg/AssemblyInformationInput.svg | 1 + src/icons/svg/AssemblyPlan.svg | 1 + src/icons/svg/AssemblyProcessAssignment.svg | 1 + src/icons/svg/AssemblyProcessPlanning.svg | 1 + src/icons/svg/AssemblyQualitydataAnalyse.svg | 1 + src/icons/svg/AssemblyQualitydataQuery.svg | 2 + src/icons/svg/AssemblyQuotaSetting.svg | 1 + src/icons/svg/AssemblyTaskQuery.svg | 1 + src/icons/svg/BacklogGoodsAnalysis.svg | 1 + src/icons/svg/BacklogGoodsPrepare.svg | 1 + src/icons/svg/BasicDataManagement.svg | 2 + src/icons/svg/BasicVariableMaintenance.svg | 2 + src/icons/svg/BasicVariableQuery.svg | 2 + src/icons/svg/BidBond.svg | 1 + src/icons/svg/CRM.svg | 1 + src/icons/svg/CertificateConformity.svg | 1 + src/icons/svg/ChargingData.svg | 1 + src/icons/svg/CheckPlanCreate.svg | 1 + src/icons/svg/CheckPlanExec.svg | 1 + src/icons/svg/CheckPlanSearch.svg | 1 + src/icons/svg/CheckSchemeCreate.svg | 1 + src/icons/svg/CloudData.svg | 1 + src/icons/svg/ComprehensiveInquiryMS.svg | 7 + src/icons/svg/ContractApprovalQuery.svg | 1 + src/icons/svg/ContractCapitalManagement.svg | 1 + src/icons/svg/ContractChange.svg | 1 + .../svg/ContractInformationManagement.svg | 1 + src/icons/svg/ContractStateSearch.svg | 1 + src/icons/svg/CreateInquirySheet.svg | 1 + src/icons/svg/CreatePackingList.svg | 1 + src/icons/svg/CreatePickingList.svg | 1 + src/icons/svg/CreatePreparationBill.svg | 1 + src/icons/svg/CreateProject.svg | 1 + src/icons/svg/CreatePurchaseContract.svg | 1 + .../svg/CreatingProcurementContracts.svg | 1 + src/icons/svg/CreatingPurchasingMaterials.svg | 1 + .../svg/CurrentEquipmentMaintenancePlan.svg | 2 + src/icons/svg/DeliveryApplication.svg | 1 + src/icons/svg/DeliveryConfirmation.svg | 1 + src/icons/svg/DeliveryManagement.svg | 7 + src/icons/svg/DepartmentBuyerRequestFund.svg | 1 + src/icons/svg/DirectPart.svg | 1 + src/icons/svg/DiscardedPartsInquiry.svg | 7 + src/icons/svg/DistributionStation.svg | 2 + .../svg/ElectricalComponentParameters.svg | 2 + src/icons/svg/EquipmentAlarmStatistics.svg | 2 + src/icons/svg/EquipmentCapabilitySetting.svg | 1 + src/icons/svg/EquipmentConditionAnalysis.svg | 1 + src/icons/svg/EquipmentMaintenanceContent.svg | 2 + src/icons/svg/EquipmentMaintenancePlan.svg | 2 + .../EquipmentMaintenanceRecordManagement.svg | 2 + src/icons/svg/EquipmentStatus.svg | 1 + src/icons/svg/EquipmentStatusMonitoring.svg | 2 + src/icons/svg/ExchangeApproval.svg | 1 + src/icons/svg/ExchangePart.svg | 1 + src/icons/svg/FactoryCalendar.svg | 2 + src/icons/svg/FactoryReport.svg | 1 + src/icons/svg/FactoryReportBase.svg | 1 + src/icons/svg/FactoryReportPrint.svg | 1 + src/icons/svg/FirstPartMaintenance.svg | 1 + src/icons/svg/FirstPartParams.svg | 1 + src/icons/svg/FirstPartRecord.svg | 1 + src/icons/svg/FundApproval1.svg | 1 + src/icons/svg/FundApproval2.svg | 1 + src/icons/svg/FundApproval2workshop.svg | 1 + src/icons/svg/FundApproval3.svg | 1 + src/icons/svg/GenneralPart.svg | 1 + src/icons/svg/GroupMatching.svg | 1 + src/icons/svg/ImportChangeParts.svg | 1 + src/icons/svg/ImportParts.svg | 1 + src/icons/svg/InboundCard.svg | 1 + src/icons/svg/Inboundscanning.svg | 1 + src/icons/svg/InitialProduction.svg | 1 + src/icons/svg/InquiryTransitInformation.svg | 2 + src/icons/svg/InstallationAndMonitoring.svg | 1 + src/icons/svg/InterBudgetaryBudgets.svg | 1 + src/icons/svg/InterfaceList.svg | 1 + src/icons/svg/InterfaceManagement.svg | 1 + src/icons/svg/InterfaceModuleMaintenance.svg | 2 + src/icons/svg/InventoryCheck.svg | 1 + src/icons/svg/InventoryManagement.svg | 1 + src/icons/svg/InventoryQuery.svg | 1 + src/icons/svg/InvoiceRecord.svg | 7 + .../svg/InvoiceSettlementApplication.svg | 1 + .../svg/InvoiceSettlementApplication1.svg | 1 + src/icons/svg/InvoiceSettlementApprove.svg | 1 + src/icons/svg/InvoiceSettlementApprove1.svg | 1 + src/icons/svg/InvoiceStateSearch.svg | 1 + src/icons/svg/LabelLanguageMaintenance.svg | 2 + src/icons/svg/LabelLanguageMaintenancesvg | 2 + src/icons/svg/LineQualityQuery.svg | 2 + src/icons/svg/LoadingCard.svg | 1 + src/icons/svg/LoadingCardMangement.svg | 1 + src/icons/svg/LocalSearch.svg | 1 + src/icons/svg/LocationManagement.svg | 1 + src/icons/svg/MachiningSequenceAdjustment.svg | 1 + src/icons/svg/MaintenanceEquipmentPerson.svg | 1 + .../svg/MaintenanceTighteningPosition.svg | 2 + .../Maintenancebasicequipmentinformation.svg | 2 + src/icons/svg/ManHourStatistics.svg | 1 + src/icons/svg/ManufacturingExecution.svg | 1 + src/icons/svg/MaterialArrivalManagement.svg | 1 + src/icons/svg/MaterialChangeHistory.svg | 1 + src/icons/svg/MaterialMaintenance.svg | 1 + src/icons/svg/MaterialManagement.svg | 1 + src/icons/svg/MaterialOut.svg | 1 + src/icons/svg/MaterialPull.svg | 1 + src/icons/svg/MaterialPullAddMaterial.svg | 1 + src/icons/svg/MaterialPullSearch.svg | 1 + src/icons/svg/MaterialPullStation.svg | 1 + src/icons/svg/MaterialRequisition.svg | 1 + src/icons/svg/MeasurementRangeMaintenance.svg | 2 + src/icons/svg/MessageMaintenance.svg | 2 + src/icons/svg/ModuleInformation.svg | 1 + src/icons/svg/OccCreate.png | Bin 0 -> 759 bytes src/icons/svg/OccCreate.svg | 1 + src/icons/svg/OccSearch.svg | 1 + src/icons/svg/OfflineContract.svg | 1 + src/icons/svg/OfflineContract1.svg | 1 + src/icons/svg/OfflineContractRequestFund.svg | 1 + src/icons/svg/OfflineContractRequestFund1.svg | 1 + src/icons/svg/OfflinePartOut.svg | 1 + src/icons/svg/OfflinePurchase.svg | 1 + src/icons/svg/OnlineRepairHistory.svg | 1 + src/icons/svg/OqcInformation.png | Bin 0 -> 690 bytes src/icons/svg/OqcInformation.svg | 1 + src/icons/svg/OrderInquiry.svg | 1 + src/icons/svg/OrderRelease.svg | 1 + src/icons/svg/OrderTraceability.svg | 1 + src/icons/svg/OutFactoryMaintenance.svg | 1 + src/icons/svg/OutPartSelect.svg | 1 + src/icons/svg/OutsourcingDataMaintenance.svg | 1 + src/icons/svg/OutsourcingInspectionEntry.svg | 1 + src/icons/svg/OutsourcingMaterialsInvoice.svg | 1 + .../svg/OutsourcingPaymentPlanManagement.svg | 1 + .../svg/OutsourcingPaymentPlanManagement2.svg | 1 + src/icons/svg/OutsourcingPriceBudget.svg | 1 + src/icons/svg/OutsourcingProcessPlanning.svg | 1 + src/icons/svg/OutsourcingQCSearch.svg | 1 + src/icons/svg/OutsourcingQuotaSetting.svg | 1 + src/icons/svg/OutsourcingStatus.svg | 1 + src/icons/svg/OutsourcingStockArrival.svg | 1 + src/icons/svg/OutsourcingTaskExecution.svg | 1 + src/icons/svg/OutsourcingTaskQuery.svg | 1 + src/icons/svg/OwnTimeStatistics.svg | 1 + src/icons/svg/ParseQuery.svg | 1 + src/icons/svg/PartAssignment.svg | 1 + src/icons/svg/PartDrawingMaintenance.svg | 1 + src/icons/svg/PartOut.svg | 1 + src/icons/svg/PartWorkCraftSelect_rdlc.svg | 1 + src/icons/svg/PartsNumberMaintenance.svg | 1 + src/icons/svg/PartsReplacement.svg | 1 + src/icons/svg/PauseRecording.svg | 1 + src/icons/svg/PayStateSearch.svg | 1 + src/icons/svg/PdfCardMaintenance.svg | 2 + src/icons/svg/PerformanceBond.svg | 7 + src/icons/svg/PersonnelManagement.svg | 1 + src/icons/svg/PickingList.svg | 1 + src/icons/svg/PreorderAssociation.svg | 1 + src/icons/svg/PrintingAssemblyProcessCard.svg | 1 + src/icons/svg/ProblemDeclaration.svg | 1 + src/icons/svg/ProblemDeclarationCreate.svg | 1 + src/icons/svg/ProcessAdjustQuery.svg | 1 + src/icons/svg/ProcessBeatMaintenance.svg | 2 + src/icons/svg/ProcessManagement.svg | 2 + src/icons/svg/ProcessPictureMaintenance.svg | 2 + src/icons/svg/ProcessPlanning.svg | 1 + src/icons/svg/ProcessPlanningNew.svg | 1 + src/icons/svg/ProcessQuotaEstablishment.svg | 1 + src/icons/svg/ProcessTaskAssignment.svg | 1 + src/icons/svg/ProcessingStatus.svg | 1 + src/icons/svg/ProcessingStatusEdit.svg | 1 + src/icons/svg/ProcessingStatusNew.svg | 7 + src/icons/svg/ProcurementContractApproval.svg | 1 + src/icons/svg/ProcurementContractEnquiry.svg | 5 + src/icons/svg/ProcurementInquiry.svg | 1 + src/icons/svg/ProductMaintenance.svg | 1 + src/icons/svg/ProductionCapacityBalance.svg | 1 + src/icons/svg/ProductionCheck.svg | 1 + src/icons/svg/ProjectPlanningManagement.svg | 1 + src/icons/svg/ProjectPlanningQuery.svg | 1 + src/icons/svg/ProjectTotalSearch.svg | 1 + src/icons/svg/PurchaseContractApproval.svg | 1 + src/icons/svg/PurchaseContractChange.svg | 1 + src/icons/svg/PurchaseContractRequestFund.svg | 1 + .../svg/PurchaseContractRequestFund1.svg | 1 + src/icons/svg/PurchaseContractReview.svg | 1 + src/icons/svg/PurchaseContractSearch.svg | 1 + src/icons/svg/PurchaseInRecord.svg | 1 + src/icons/svg/PurchaseInvoiceDelivery.svg | 1 + src/icons/svg/PurchaseMaterielModify.svg | 1 + src/icons/svg/PurchaseOutRecord.svg | 1 + src/icons/svg/PurchasePartsStorage.svg | 1 + src/icons/svg/PurchaseSituationSearch.svg | 1 + src/icons/svg/PurchaseTaskAllocate.svg | 1 + src/icons/svg/PurchasingQualityInspection.svg | 1 + src/icons/svg/QualityBasicData.svg | 1 + src/icons/svg/QualityData_XR.svg | 2 + src/icons/svg/QualityData_XS.svg | 2 + .../QualityInspectionInformationInquiry.svg | 1 + src/icons/svg/QualityInspectionQuery.svg | 1 + src/icons/svg/QualitydataQuery.svg | 2 + src/icons/svg/QueryParts.svg | 1 + src/icons/svg/QuotaFormulation.svg | 1 + src/icons/svg/RealTimeStatusEquipment.svg | 2 + src/icons/svg/ReceiptConnectionSheet.svg | 1 + src/icons/svg/ReceiveAssemblyTask.svg | 1 + src/icons/svg/ReceiveCheck.svg | 1 + src/icons/svg/RecipeManagement.svg | 2 + src/icons/svg/RepairTimeEntry.svg | 1 + src/icons/svg/ReplenishmentOrders.svg | 1 + src/icons/svg/ReplenishmentQuery.svg | 1 + src/icons/svg/RequestApprovalQuery.svg | 1 + src/icons/svg/RequestOutsourcingMaterials.svg | 1 + src/icons/svg/SPC.svg | 2 + src/icons/svg/SPC_Analysis.svg | 1 + src/icons/svg/SafetyMargin.svg | 1 + src/icons/svg/ScheduleCompletionDetails.svg | 1 + src/icons/svg/SetPayPlan.svg | 1 + src/icons/svg/ShiftManagement.svg | 1 + src/icons/svg/ShipmentApproval.svg | 1 + src/icons/svg/ShopScheduling.svg | 1 + src/icons/svg/SparePartsForScrap.svg | 7 + src/icons/svg/SparePartsOutStockRecord.svg | 1 + src/icons/svg/SpecialRequirementsList.svg | 1 + src/icons/svg/StationInterfaceList.svg | 1 + src/icons/svg/StationInterfaceListMoby.svg | 1 + src/icons/svg/StatusQuery.svg | 1 + src/icons/svg/StepContentMaintenance.svg | 2 + src/icons/svg/StockInquiry.svg | 1 + src/icons/svg/StockPreparation.svg | 1 + src/icons/svg/SubPartCome.svg | 1 + src/icons/svg/SubstitutePart.svg | 1 + src/icons/svg/SupplierManagement.svg | 1 + src/icons/svg/SystemRrolemaintenance.svg | 7 + src/icons/svg/TraceabilityOfParts.svg | 1 + src/icons/svg/TransferQuery.svg | 1 + src/icons/svg/TvParamsManagement.svg | 1 + src/icons/svg/TypicalAssemblyMaintenance.svg | 1 + src/icons/svg/TypicalProcessMaintenance.svg | 1 + src/icons/svg/UnqualifiedTreatment.svg | 1 + src/icons/svg/UserRightsManagement.svg | 1 + src/icons/svg/VCU.svg | 1 + src/icons/svg/VariableDeviceType.svg | 2 + .../svg/VerificationMmaintenanceLine.svg | 2 + src/icons/svg/WorkHourMaintenance.svg | 1 + src/icons/svg/WorkshopEquipmentManagement.svg | 1 + src/icons/svg/WorkshopPersonnelRoleMana.svg | 7 + src/icons/svg/WorkshopProcessMaintenance.svg | 7 + src/icons/svg/arrangeChart.svg | 2 + src/icons/svg/bottom.svg | 1 + src/icons/svg/costStatistics.svg | 1 + src/icons/svg/doc.svg | 1 + src/icons/svg/excel.svg | 1 + src/icons/svg/expand.svg | 1 + src/icons/svg/eye.svg | 1 + src/icons/svg/file.svg | 1 + src/icons/svg/histogram.svg | 2 + src/icons/svg/machine.svg | 1 + src/icons/svg/machiningHoursStatistics.svg | 1 + src/icons/svg/maintainInformation.svg | 1 + src/icons/svg/password.svg | 1 + src/icons/svg/pdf.svg | 1 + src/icons/svg/pic.svg | 1 + src/icons/svg/ppt.svg | 1 + src/icons/svg/processCapabilityAnalysis.svg | 2 + src/icons/svg/processMarkingManagement.svg | 1 + src/icons/svg/sampleTrendChart.svg | 2 + src/icons/svg/top.svg | 1 + src/icons/svg/username.svg | 1 + src/icons/svg/人员.svg | 1 + src/icons/svg/仓储管理.svg | 1 + src/icons/svg/加号1.svg | 1 + src/icons/svg/加号2.svg | 1 + src/icons/svg/右箭头.svg | 1 + src/icons/svg/外协工时.svg | 1 + src/icons/svg/库存查询.svg | 1 + src/icons/svg/技术.svg | 1 + src/icons/svg/模块化.svg | 1 + src/icons/svg/箭头.svg | 1 + src/icons/svg/箭头2.svg | 1 + src/icons/svg/系统管理.svg | 1 + src/icons/svg/系统装配.svg | 1 + src/icons/svg/自家工时.svg | 1 + src/icons/svg/设备管理.svg | 1 + src/icons/svg/车间.svg | 1 + src/icons/svg/车间采购.svg | 1 + src/icons/svg/采购管理.svg | 1 + src/icons/svg/采购采购.svg | 1 + src/icons/svg/销售管理.svg | 1 + src/icons/svgo.yml | 22 + src/main.js | 137 + src/permission.js | 84 + src/router/getRouter.js | 16 + src/router/index.js | 109 + src/store/getters.js | 19 + src/store/index.js | 21 + src/store/modules/app.js | 43 + src/store/modules/permission.js | 25 + src/store/modules/tagsView.js | 78 + src/store/modules/user.js | 138 + src/styles/element-ui.scss | 201 + src/styles/index.scss | 123 + src/styles/mixin.scss | 27 + src/styles/sidebar.scss | 124 + src/styles/transition.scss | 46 + src/styles/variables.scss | 4 + src/utils/auth.js | 27 + src/utils/curd.js | 435 + src/utils/index.js | 96 + src/utils/mqtt.js | 104 + src/utils/request.js | 101 + src/utils/setMethods.js | 90 + src/utils/tool.js | 360 + src/utils/validate.js | 44 + src/vendor/Blob.js | 179 + src/vendor/Export2Excel.js | 323 + src/vendor/Export2Excel1.js | 1444 ++ src/vendor/Export2Excel2.js | 1445 ++ src/vendor/Export2Excelcjn.js | 206 + src/vendor/exportExcel.js | 40 + src/vendor/htmlToPdf.js | 35 + src/vendor/int2Chinese.js | 85 + src/vendor/print.js | 117 + src/views/404.vue | 229 + .../AndonStatisticsStation/index.vue | 396 + .../AndonSystem/AndonStatisticsType/index.vue | 382 + .../AndonSystem/equipmentAndon/index.vue | 314 + .../equipmentAndonStatistics/index.vue | 405 + src/views/AndonSystem/materialAndon/index.vue | 314 + .../materialAndonStatistics/index.vue | 405 + src/views/AndonSystem/qualityAndon/index.vue | 314 + .../qualityAndonStatistics/index.vue | 405 + .../BasicData/CoiceBroadcastSetting/index.vue | 537 + .../BasicData/DistributionStation/index.vue | 193 + .../EquipmentCapabilitySetting/index.vue | 305 + src/views/BasicData/FactoryCalendar/index.vue | 257 + .../MaintenanceEquipmentPerson/index.vue | 248 + .../BasicData/MaterialMaintenance/index.vue | 201 + src/views/BasicData/MenuManagement/index.vue | 461 + .../PartsNumberMaintenance/index.vue | 1470 ++ .../BasicData/PersonnelManagement/index.vue | 1011 ++ .../ProjectManagementDisplay/index.vue | 151 + src/views/BasicData/ShiftManagement/index.vue | 277 + src/views/BasicData/SystemAlarmLog/index.vue | 212 + src/views/BasicData/SystemLog/index.vue | 198 + .../SystemRrolemaintenance/index.vue | 206 + src/views/BasicData/TimeLine/index.vue | 66 + .../BasicData/TvParamsManagement/index.vue | 860 ++ .../BasicData/UserRightsManagement/index.vue | 262 + .../BasicData/WorkStationAlarmLog/index.vue | 167 + .../WorkshopPersonnelRoleMana/index.vue | 388 + .../WorkshopProcessMaintenance/index.vue | 206 + .../AlarmVariableMaintenance/index.vue | 358 + .../BasicVariableMaintenance/UploadExcel.vue | 103 + .../BasicVariableMaintenance/index.vue | 493 + .../BasicVariableQuery/index.vue | 529 + .../UploadExcel.vue | 103 + .../StationInformationMaintenance/index.vue | 1409 ++ .../indexBak.vue | 2071 +++ .../VariableDeviceType/index.vue | 327 + src/views/ChargingData/CloudData/index.vue | 202 + src/views/ChargingData/LocalSearch/index.vue | 192 + .../CurrentEquipmentMaintenancePlan/index.vue | 137 + .../EquipmentAlarmStatistics/index.vue | 440 + .../EquipmentMaintenanceContent/index.vue | 689 + .../EquipmentMaintenancePlan/index.vue | 253 + .../index.vue | 651 + .../index.vue | 455 + .../RealTimeStatusEquipment/index.vue | 149 + .../index.vue | 673 + .../SpotCheckRecord/DayCheck.vue | 195 + .../SpotCheckRecord/MoonCheck.vue | 199 + .../SpotCheckRecord/QuarterCheck.vue | 199 + .../SpotCheckRecord/WeekCheck.vue | 201 + .../SpotCheckRecord/YearCheck.vue | 200 + .../SpotCheckRecord/index.vue | 37 + .../FactoryReport/FactoryReportBase/index.vue | 510 + .../FactoryReportBase/indexScheme.vue | 664 + .../FactoryReportPrint/ReportPrint.vue | 410 + .../FactoryReportPrint/index.vue | 1053 ++ src/views/FactoryReport/LoadingCard/index.vue | 588 + .../FirstPartHistorySearch/index.vue | 314 + .../FirstPartParams/index.vue | 527 + .../FirstPartRecord/index.vue | 969 ++ .../InterfaceList/index.vue | 610 + .../StationInterfaceList/index.vue | 350 + .../StationInterfaceListMoby/index.vue | 215 + .../MaterialChangeHistory/index.vue | 364 + .../OnlineRepairHistory/index.vue | 225 + .../PauseRecording/index.vue | 225 + .../ProblemDeclaration/index.vue | 698 + .../ManufacturingExecution/VCU/index.vue | 420 + .../MaterialPullAddMaterial/index.vue | 705 + .../MaterialPull/MaterialPullSearch/index.vue | 577 + .../MaterialPullStation/index.vue | 671 + src/views/MaterialPull/UpLoadExcel.vue | 134 + src/views/OqcInformation/OccCreate/index.vue | 788 ++ .../ProblemDeclarationCreate/index.vue | 709 + .../4MTextManagement/index.vue | 426 + .../AndonMaintenance/UploadExcel.vue | 103 + .../AndonMaintenance/index.vue | 958 ++ .../BomEngineManagement/BomList.vue | 680 + .../BomEngineManagement/BomListCompare.vue | 299 + .../BomEngineManagement/index.vue | 31 + .../CertificateConformity/index.vue | 359 + .../InterfaceModuleMaintenance/index.vue | 368 + .../LabelLanguageMaintenance/index.vue | 374 + .../LabelLanguageMaintenance/index2.vue | 294 + .../LoadingCardMangement/index.vue | 563 + .../LoadingDocuments/index.vue | 359 + .../UploadExcel.vue | 134 + .../MaterialVerificationMaintenance/index.vue | 1274 ++ .../MessageMaintenance/index.vue | 274 + .../MonitoringData/EngineModel.vue | 207 + .../MonitoringData/EngineNumber.vue | 207 + .../LineHeadStationInformation.vue | 231 + .../MeasurementDataEquipmentStatusLog.vue | 236 + .../MonitoringData/OfflineStation.vue | 221 + .../MonitoringData/Operator.vue | 222 + .../MonitoringData/OrderNumber.vue | 207 + .../MonitoringData/PalletNo.vue | 207 + .../MonitoringData/StationStatus.vue | 222 + .../MonitoringData/TransferModel.vue | 207 + .../MonitoringData/index.vue | 52 + .../PdfCardMaintenance/index.vue | 443 + .../ProcessPictureMaintenance/index.vue | 330 + .../ShuntingCacheManagement/index.vue | 941 ++ .../SpecialRequirementsList/index.vue | 648 + .../StepContentMaintenance/index.vue | 1481 ++ .../WarehouseLocation/index.vue | 630 + .../WorkHourMaintenance/index.vue | 393 + .../processManagementPage.vue | 295 + .../processMarkingManagement/index.vue | 477 + .../DataCollectionGroupMaintenance/index.vue | 645 + .../MaintenanceTighteningPosition/index.vue | 756 + .../MeasurementRangeMaintenance/index.vue | 294 + .../ProcessBeatMaintenance/index.vue | 310 + .../VerificationMmaintenanceLine/index.vue | 362 + .../ProductionCheck/CheckPlanCreate/index.vue | 1869 +++ .../ProductionCheck/CheckPlanExec/index.vue | 695 + .../ProductionCheck/CheckPlanSearch/index.vue | 2458 ++++ .../CheckSchemeCreate/UploadExcel.vue | 134 + .../CheckSchemeCreate/index.vue | 1901 +++ .../CheckSchemeCreate/indexContent.vue | 2157 +++ .../CheckSchemeCreate/indexDownLoadRules.vue | 523 + .../CheckSchemeCreate/indexMethod.vue | 2157 +++ .../CheckSchemeCreate/indexToolMethod..vue | 1537 ++ .../PurchaseOrder/index.vue | 1642 +++ .../PurchasedPartsSearch/index.vue | 369 + .../SupplierManagement/index.vue | 316 + .../AssemblyQualitydataAnalyse/index.vue | 337 + .../AssemblyQualitydataQuery/index.vue | 589 + .../DeviceRepairOnlineRecord/index.vue | 237 + .../FirstPassYieldStatistics/index.vue | 727 + .../InquiryTransitInformation/index.vue | 371 + .../QualityAssurance/LineItemQuery/index.vue | 479 + .../LineQualityQuery/index.vue | 530 + .../MaterialDataQuery/index.vue | 499 + .../ModuleInformation/index.vue | 406 + .../ProductionDayStatistics/index.vue | 631 + .../ProductionPlanOrderCompletion/index.vue | 461 + .../SPC_Analysis/QualityDatasearch.vue | 438 + .../QualityAssurance/SPC_Analysis/index.vue | 556 + .../SPC_Analysis/index111.vue | 552 + .../SPC_Analysis/index_beifen.vue | 451 + .../ThreeCodeVerifyRecord/index.vue | 195 + .../BasicDataManagement/UploadExcel.vue | 103 + .../BasicDataManagement/index.vue | 414 + .../UploadExcel.vue | 103 + .../ElectricalComponentParameters/index.vue | 494 + .../OpLoginStatusManagent/index.vue | 721 + .../RecipeManagement/index.vue | 145 + .../RecipeManagementNew/index.vue | 1998 +++ .../RepairManagementSearch/index.vue | 566 + src/views/SearchData/AlarmAnalysis/index.vue | 566 + src/views/SearchData/FTTTrendChart/index.vue | 374 + src/views/SearchData/JPHTrendChart/index.vue | 300 + src/views/SearchData/OEETrendChart/index.vue | 382 + src/views/SearchData/QualityData_XR/index.vue | 560 + src/views/SearchData/QualityData_XS/index.vue | 524 + .../SearchData/QualityDatasearch/index.vue | 825 ++ .../SPC_Analysis/QualityDatasearch.vue | 438 + src/views/SearchData/SPC_Analysis/index.vue | 748 + .../SearchData/SPC_Analysis/index111.vue | 552 + .../SearchData/SPC_Analysis/index_beifen.vue | 451 + src/views/SearchData/arrangeChart/index.vue | 463 + src/views/SearchData/histogram/index.vue | 465 + .../processCapabilityAnalysis/index.vue | 498 + .../SearchData/sampleTrendChart/index.vue | 485 + .../OnlineProductDetail/index.vue | 254 + .../ReleaseOfProductionPlan/UploadExcel.vue | 103 + .../ReleaseOfProductionPlan/index.vue | 655 + .../ScheduleStatusChange/index.vue | 478 + .../productDayReport/index.vue | 719 + src/views/dashboard/index.vue | 243 + src/views/layout/Layout.vue | 71 + src/views/layout/components/AppMain.vue | 30 + src/views/layout/components/Navbar.vue | 497 + src/views/layout/components/Sidebar/Item.vue | 29 + .../layout/components/Sidebar/SidebarItem.vue | 104 + .../components/Sidebar/SidebarItem2.vue | 48 + src/views/layout/components/Sidebar/index.vue | 84 + src/views/layout/components/TagsView.vue | 334 + src/views/layout/components/index.js | 4 + src/views/layout/mixin/ResizeHandler.js | 52 + src/views/login/index.vue | 393 + static/.gitkeep | 0 static/config.js | 14 + static/cpexcel.js | 1324 ++ static/input.docx | Bin 0 -> 15030 bytes static/leftPic.png | Bin 0 -> 57731 bytes static/libs/FileSaver.js | 188 + static/libs/docxtemplater.js | 341 + static/libs/jszip-utils.js | 118 + static/libs/jszip.js | 9509 +++++++++++++ static/login.png | Bin 0 -> 4027419 bytes static/tinymce4.7.5/langs/zh_CN.js | 230 + .../plugins/codesample/css/prism.css | 138 + .../plugins/emoticons/img/smiley-cool.gif | Bin 0 -> 354 bytes .../plugins/emoticons/img/smiley-cry.gif | Bin 0 -> 329 bytes .../emoticons/img/smiley-embarassed.gif | Bin 0 -> 331 bytes .../emoticons/img/smiley-foot-in-mouth.gif | Bin 0 -> 342 bytes .../plugins/emoticons/img/smiley-frown.gif | Bin 0 -> 340 bytes .../plugins/emoticons/img/smiley-innocent.gif | Bin 0 -> 336 bytes .../plugins/emoticons/img/smiley-kiss.gif | Bin 0 -> 338 bytes .../plugins/emoticons/img/smiley-laughing.gif | Bin 0 -> 343 bytes .../emoticons/img/smiley-money-mouth.gif | Bin 0 -> 321 bytes .../plugins/emoticons/img/smiley-sealed.gif | Bin 0 -> 323 bytes .../plugins/emoticons/img/smiley-smile.gif | Bin 0 -> 344 bytes .../emoticons/img/smiley-surprised.gif | Bin 0 -> 338 bytes .../emoticons/img/smiley-tongue-out.gif | Bin 0 -> 328 bytes .../emoticons/img/smiley-undecided.gif | Bin 0 -> 337 bytes .../plugins/emoticons/img/smiley-wink.gif | Bin 0 -> 350 bytes .../plugins/emoticons/img/smiley-yell.gif | Bin 0 -> 336 bytes .../plugins/visualblocks/css/visualblocks.css | 154 + .../skins/lightgray/content.inline.min.css | 1 + .../skins/lightgray/content.min.css | 1 + .../skins/lightgray/fonts/tinymce-mobile.woff | Bin 0 -> 4624 bytes .../skins/lightgray/fonts/tinymce-small.eot | Bin 0 -> 9492 bytes .../skins/lightgray/fonts/tinymce-small.svg | 63 + .../skins/lightgray/fonts/tinymce-small.ttf | Bin 0 -> 9304 bytes .../skins/lightgray/fonts/tinymce-small.woff | Bin 0 -> 9380 bytes .../skins/lightgray/fonts/tinymce.eot | Bin 0 -> 18808 bytes .../skins/lightgray/fonts/tinymce.svg | 131 + .../skins/lightgray/fonts/tinymce.ttf | Bin 0 -> 18644 bytes .../skins/lightgray/fonts/tinymce.woff | Bin 0 -> 18720 bytes .../skins/lightgray/img/anchor.gif | Bin 0 -> 53 bytes .../skins/lightgray/img/loader.gif | Bin 0 -> 2608 bytes .../skins/lightgray/img/object.gif | Bin 0 -> 152 bytes .../skins/lightgray/img/trans.gif | Bin 0 -> 43 bytes .../tinymce4.7.5/skins/lightgray/skin.min.css | 1 + .../skins/lightgray/skin.min.css.map | 1 + static/tinymce4.7.5/tinymce.min.js | 2 + yarn.lock | 11586 ++++++++++++++++ 912 files changed, 161850 insertions(+) create mode 100644 .babelrc create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .postcssrc.js create mode 100644 LICENSE create mode 100644 build/build.js create mode 100644 build/check-versions.js create mode 100644 build/logo.png create mode 100644 build/utils.js create mode 100644 build/vue-loader.conf.js create mode 100644 build/webpack.base.conf.js create mode 100644 build/webpack.dev.conf.js create mode 100644 build/webpack.prod.conf.js create mode 100644 config/dev.env.js create mode 100644 config/index.js create mode 100644 config/prod.env.js create mode 100644 debug.log create mode 100644 favicon.ico create mode 100644 index.html create mode 100644 m.zip create mode 100644 package.json create mode 100644 src/App.vue create mode 100644 src/WorkRecode/WorkRecode create mode 100644 src/api/BasicData/EquipmentCapabilitySetting.js create mode 100644 src/api/BasicData/EquipmentMonitoringNew.js create mode 100644 src/api/BasicData/FactoryCalendar.js create mode 100644 src/api/BasicData/Materialmaintenance.js create mode 100644 src/api/BasicData/MenuManagement.js create mode 100644 src/api/BasicData/PartsNumberMaintenance.js create mode 100644 src/api/BasicData/PersonnelManagement.js create mode 100644 src/api/BasicData/ProjectManagementDisplay.js create mode 100644 src/api/BasicData/ShiftManagement.js create mode 100644 src/api/BasicData/SystemRrolemaintenance.js create mode 100644 src/api/BasicData/UserRightsManagement.js create mode 100644 src/api/BasicData/WorkshopPersonnelRoleMana.js create mode 100644 src/api/BasicData/WorkshopProcessMaintenance.js create mode 100644 src/api/BasicData/maintenanceEquipmentPerson.js create mode 100644 src/api/ManufacturingCenter/maintainInformation.js create mode 100644 src/api/SPCanalysis/QualityData_XR.js create mode 100644 src/api/SPCanalysis/QualityData_XS.js create mode 100644 src/api/SPCanalysis/_system~.ini create mode 100644 src/api/SPCanalysis/arrangeChart.js create mode 100644 src/api/SPCanalysis/basicTrendTap.js create mode 100644 src/api/SPCanalysis/histogram.js create mode 100644 src/api/SPCanalysis/normal_distribution.js create mode 100644 src/api/SPCanalysis/processCapabilityAnalysis.js create mode 100644 src/api/SPCanalysis/sampleTrendChart.js create mode 100644 src/api/ipAddress.js create mode 100644 src/api/login.js create mode 100644 src/assets/404_images/404.png create mode 100644 src/assets/404_images/404_cloud.png create mode 100644 src/assets/img/Init1.png create mode 100644 src/assets/img/api/Assembly/AssemblyExecution.js create mode 100644 src/assets/img/api/Assembly/AssemblyInformationInput.js create mode 100644 src/assets/img/api/Assembly/AssemblyMes.js create mode 100644 src/assets/img/api/Assembly/AssemblyPlan.js create mode 100644 src/assets/img/api/Assembly/AssemblyProcessAssignment.js create mode 100644 src/assets/img/api/Assembly/AssemblyProcessPlanning.js create mode 100644 src/assets/img/api/Assembly/AssemblyQualityInspection.js create mode 100644 src/assets/img/api/Assembly/AssemblyQuotaSetting.js create mode 100644 src/assets/img/api/Assembly/AssemblyTaskAssignment.js create mode 100644 src/assets/img/api/Assembly/DeliveryApplication.js create mode 100644 src/assets/img/api/Assembly/DeliveryConfirmation.js create mode 100644 src/assets/img/api/Assembly/ElectricalAssembly.js create mode 100644 src/assets/img/api/Assembly/InstallationAndMonitoring.js create mode 100644 src/assets/img/api/Assembly/MakeAssemblyPlan.js create mode 100644 src/assets/img/api/Assembly/PlanExecution.js create mode 100644 src/assets/img/api/Assembly/PrintingAssemblyProcessCard.js create mode 100644 src/assets/img/api/Assembly/QualityBasicData.js create mode 100644 src/assets/img/api/Assembly/QualityInspectionInformationInquiry.js create mode 100644 src/assets/img/api/Assembly/ShipmentApproval.js create mode 100644 src/assets/img/api/Assembly/SparePartsOutStockRecord.js create mode 100644 src/assets/img/api/Assembly/TypicalAssemblyMaintenance.js create mode 100644 src/assets/img/api/BasicData/EquipmentCapabilitySetting.js create mode 100644 src/assets/img/api/BasicData/FactoryCalendar.js create mode 100644 src/assets/img/api/BasicData/Materialmaintenance.js create mode 100644 src/assets/img/api/BasicData/MenuManagement.js create mode 100644 src/assets/img/api/BasicData/PartsNumberMaintenance.js create mode 100644 src/assets/img/api/BasicData/PersonnelManagement.js create mode 100644 src/assets/img/api/BasicData/ProjectManagementDisplay.js create mode 100644 src/assets/img/api/BasicData/ShiftManagement.js create mode 100644 src/assets/img/api/BasicData/SystemRrolemaintenance.js create mode 100644 src/assets/img/api/BasicData/UserRightsManagement.js create mode 100644 src/assets/img/api/BasicData/WorkshopPersonnelRoleMana.js create mode 100644 src/assets/img/api/BasicData/WorkshopProcessMaintenance.js create mode 100644 src/assets/img/api/BasicData/maintenanceEquipmentPerson.js create mode 100644 src/assets/img/api/Inventory/CreatePickingList.js create mode 100644 src/assets/img/api/Inventory/DirectPart.js create mode 100644 src/assets/img/api/Inventory/ErrorInformationQuery.js create mode 100644 src/assets/img/api/Inventory/ExchangeApproval.js create mode 100644 src/assets/img/api/Inventory/ExchangePart.js create mode 100644 src/assets/img/api/Inventory/GenneralPart.js create mode 100644 src/assets/img/api/Inventory/InboundCard.js create mode 100644 src/assets/img/api/Inventory/Inboundscanning.js create mode 100644 src/assets/img/api/Inventory/InventoryCheck.js create mode 100644 src/assets/img/api/Inventory/InventoryManagement.js create mode 100644 src/assets/img/api/Inventory/MaterialOut.js create mode 100644 src/assets/img/api/Inventory/MaterialReturn.js create mode 100644 src/assets/img/api/Inventory/OfflinePartOut.js create mode 100644 src/assets/img/api/Inventory/OfflinePurchase.js create mode 100644 src/assets/img/api/Inventory/OutPartSelect.js create mode 100644 src/assets/img/api/Inventory/PartOut.js create mode 100644 src/assets/img/api/Inventory/PartsReplacement.js create mode 100644 src/assets/img/api/Inventory/PickingList.js create mode 100644 src/assets/img/api/Inventory/PickingListSearch.js create mode 100644 src/assets/img/api/Inventory/PurchaseInRecord.js create mode 100644 src/assets/img/api/Inventory/PurchaseOutRecord.js create mode 100644 src/assets/img/api/Inventory/SelfMadePartsWarehouseOut.js create mode 100644 src/assets/img/api/Inventory/StockInquiry.js create mode 100644 src/assets/img/api/Inventory/SubPartCome.js create mode 100644 src/assets/img/api/Inventory/SubstitutePart.js create mode 100644 src/assets/img/api/ManufacturingCenter/ActualTimeSupplement.js create mode 100644 src/assets/img/api/ManufacturingCenter/ActualWorkQuery.js create mode 100644 src/assets/img/api/ManufacturingCenter/AddingOrder.js create mode 100644 src/assets/img/api/ManufacturingCenter/AntonMonitoring.js create mode 100644 src/assets/img/api/ManufacturingCenter/CompletionOfWorkshopComponents.js create mode 100644 src/assets/img/api/ManufacturingCenter/ContractApprovalQuery.js create mode 100644 src/assets/img/api/ManufacturingCenter/ContractApprovalQuery1.js create mode 100644 src/assets/img/api/ManufacturingCenter/ContractDetailsInquiry.js create mode 100644 src/assets/img/api/ManufacturingCenter/ContractDetailsInquiryMetalworking.js create mode 100644 src/assets/img/api/ManufacturingCenter/CreateIntakeList.js create mode 100644 src/assets/img/api/ManufacturingCenter/CreatePreparationBill.js create mode 100644 src/assets/img/api/ManufacturingCenter/CreateWarehousePurchasing.js create mode 100644 src/assets/img/api/ManufacturingCenter/DiscardedPartsInquiry.js create mode 100644 src/assets/img/api/ManufacturingCenter/Enter0therData.js create mode 100644 src/assets/img/api/ManufacturingCenter/EquipmentConditionAnalysis.js create mode 100644 src/assets/img/api/ManufacturingCenter/EquipmentMonitoring.js create mode 100644 src/assets/img/api/ManufacturingCenter/EquipmentMonitoringNew.js create mode 100644 src/assets/img/api/ManufacturingCenter/GroupMatching.js create mode 100644 src/assets/img/api/ManufacturingCenter/InitialProduction.js create mode 100644 src/assets/img/api/ManufacturingCenter/MachineToolProcessStatistics.js create mode 100644 src/assets/img/api/ManufacturingCenter/MachiningParts.js create mode 100644 src/assets/img/api/ManufacturingCenter/MachiningSequenceAdjustment.js create mode 100644 src/assets/img/api/ManufacturingCenter/ManHourAnalysis.js create mode 100644 src/assets/img/api/ManufacturingCenter/ManHourStatistics.js create mode 100644 src/assets/img/api/ManufacturingCenter/MaterialAllocation.js create mode 100644 src/assets/img/api/ManufacturingCenter/MaterialArrival.js create mode 100644 src/assets/img/api/ManufacturingCenter/MaterialArrivalManagement.js create mode 100644 src/assets/img/api/ManufacturingCenter/MonthEndHourAccounting.js create mode 100644 src/assets/img/api/ManufacturingCenter/MonthEndHourAccountingMetalworking.js create mode 100644 src/assets/img/api/ManufacturingCenter/OnlineProcessChange.js create mode 100644 src/assets/img/api/ManufacturingCenter/OwnTimeStatistics.js create mode 100644 src/assets/img/api/ManufacturingCenter/ParseQuery.js create mode 100644 src/assets/img/api/ManufacturingCenter/PartAssignment.js create mode 100644 src/assets/img/api/ManufacturingCenter/PartWorkCraftSelect_rdlc.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProcessAdjustQuery.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProcessPlanning.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProcessPlanningNew.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProcessQuotaEstablishment.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProcessQuotaStatistics.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProcessTaskAssignment.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProcessingStatus.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProcessingStatusEdit.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProcessingStatusNew.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProductionCapacityBalance.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProductionPlanQuery.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProjectPlanningManagement.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProjectPlanningManagementNew.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProjectPlanningManagementQuery.js create mode 100644 src/assets/img/api/ManufacturingCenter/ProjectPlanningQuery.js create mode 100644 src/assets/img/api/ManufacturingCenter/QualityInspectionQueryMetalworking.js create mode 100644 src/assets/img/api/ManufacturingCenter/QuotaFormulation.js create mode 100644 src/assets/img/api/ManufacturingCenter/RawMaterialsMaintenance.js create mode 100644 src/assets/img/api/ManufacturingCenter/RepairTimeEntry.js create mode 100644 src/assets/img/api/ManufacturingCenter/RequestApprovalQuery.js create mode 100644 src/assets/img/api/ManufacturingCenter/RequestApprovalQuery1.js create mode 100644 src/assets/img/api/ManufacturingCenter/ScheduleCompletionDetails.js create mode 100644 src/assets/img/api/ManufacturingCenter/ScrappedSupplementaryInvestment.js create mode 100644 src/assets/img/api/ManufacturingCenter/ShopScheduling.js create mode 100644 src/assets/img/api/ManufacturingCenter/SparePartsForScrap.js create mode 100644 src/assets/img/api/ManufacturingCenter/SparePartsOut.js create mode 100644 src/assets/img/api/ManufacturingCenter/SparePartsPurchase.js create mode 100644 src/assets/img/api/ManufacturingCenter/StatusQuery.js create mode 100644 src/assets/img/api/ManufacturingCenter/TraceabilityOfParts.js create mode 100644 src/assets/img/api/ManufacturingCenter/TypicalProcessMaintenance.js create mode 100644 src/assets/img/api/ManufacturingCenter/WorkingHours.js create mode 100644 src/assets/img/api/ManufacturingCenter/WorkshopEquipmentManagement.js create mode 100644 src/assets/img/api/ManufacturingCenter/machiningHoursStatistics.js create mode 100644 src/assets/img/api/ManufacturingCenter/maintainInformation.js create mode 100644 src/assets/img/api/MarketingCenter/BidBond.js create mode 100644 src/assets/img/api/MarketingCenter/CRM.js create mode 100644 src/assets/img/api/MarketingCenter/ComprehensiveInquiryMS.js create mode 100644 src/assets/img/api/MarketingCenter/ContractCapitalManagement.js create mode 100644 src/assets/img/api/MarketingCenter/ContractInformationManagement.js create mode 100644 src/assets/img/api/MarketingCenter/CreateProject.js create mode 100644 src/assets/img/api/MarketingCenter/DeliveryApplication.js create mode 100644 src/assets/img/api/MarketingCenter/DeliveryManagement.js create mode 100644 src/assets/img/api/MarketingCenter/InvoiceRecord.js create mode 100644 src/assets/img/api/MarketingCenter/MarginManagement.js create mode 100644 src/assets/img/api/MarketingCenter/PerformanceBond.js create mode 100644 src/assets/img/api/MarketingCenter/ProjectFiles.js create mode 100644 src/assets/img/api/MarketingCenter/ProjectProgress.js create mode 100644 src/assets/img/api/MarketingCenter/SafetyMargin.js create mode 100644 src/assets/img/api/MarketingCenter/ShippingInquiries.js create mode 100644 src/assets/img/api/MarketingCenter/afterSaleService.js create mode 100644 src/assets/img/api/Outsourcing/ApprovalOfOutsourcingArrivalTicket.js create mode 100644 src/assets/img/api/Outsourcing/InterBudgetaryBudgets.js create mode 100644 src/assets/img/api/Outsourcing/OutFactoryMaintenance.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingArrivalTicket.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingDataMaintenance.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingInspectionEntry.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingPartsQuery.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingPaymentPlanManagement.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingPaymentPlanManagement2.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingPaymentRequest.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingPriceBudget.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingQCSearch.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingStatus.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingTaskChanges.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingTaskExecution.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingTaskQuery.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingTaskQuerySearch.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingTicketArrivalQuery.js create mode 100644 src/assets/img/api/Outsourcing/OutsourcingTimeBalance.js create mode 100644 src/assets/img/api/Outsourcing/PreorderAssociation.js create mode 100644 src/assets/img/api/Outsourcing/UnqualifiedTreatment.js create mode 100644 src/assets/img/api/ProjectManagement/progress.js create mode 100644 src/assets/img/api/ProjectManagement/summarize.js create mode 100644 src/assets/img/api/PurchasingCenter/ArrivalStateSearch.js create mode 100644 src/assets/img/api/PurchasingCenter/BacklogGoodsAnalysis.js create mode 100644 src/assets/img/api/PurchasingCenter/BacklogGoodsPrepare.js create mode 100644 src/assets/img/api/PurchasingCenter/CreateInquirySheet.js create mode 100644 src/assets/img/api/PurchasingCenter/CreatePurchaseContract.js create mode 100644 src/assets/img/api/PurchasingCenter/FundApproval.js create mode 100644 src/assets/img/api/PurchasingCenter/InvoiceSettlementApplication.js create mode 100644 src/assets/img/api/PurchasingCenter/InvoiceSettlementApprove.js create mode 100644 src/assets/img/api/PurchasingCenter/InvoiceSettlementApproveSearch.js create mode 100644 src/assets/img/api/PurchasingCenter/MaterialMProcure.js create mode 100644 src/assets/img/api/PurchasingCenter/MaterialManagement.js create mode 100644 src/assets/img/api/PurchasingCenter/OfflineContract.js create mode 100644 src/assets/img/api/PurchasingCenter/OfflineContractRequestFund.js create mode 100644 src/assets/img/api/PurchasingCenter/OfflineContractSearch.js create mode 100644 src/assets/img/api/PurchasingCenter/OfflinePartsQuery.js create mode 100644 src/assets/img/api/PurchasingCenter/PayStateSearch.js create mode 100644 src/assets/img/api/PurchasingCenter/ProjectTotalSearch.js create mode 100644 src/assets/img/api/PurchasingCenter/PurchaseContractApproval.js create mode 100644 src/assets/img/api/PurchasingCenter/PurchaseContractRequestFund.js create mode 100644 src/assets/img/api/PurchasingCenter/PurchaseContractReview.js create mode 100644 src/assets/img/api/PurchasingCenter/PurchaseContractSearch.js create mode 100644 src/assets/img/api/PurchasingCenter/PurchaseInvoiceDelivery.js create mode 100644 src/assets/img/api/PurchasingCenter/PurchaseMaterielModify.js create mode 100644 src/assets/img/api/PurchasingCenter/PurchaseSituationSearch.js create mode 100644 src/assets/img/api/PurchasingCenter/PurchaseTaskAllocate.js create mode 100644 src/assets/img/api/PurchasingCenter/PurchasingEfficiencyAnalysis.js create mode 100644 src/assets/img/api/PurchasingCenter/ReceiveCheck.js create mode 100644 src/assets/img/api/PurchasingCenter/SetPayPlan.js create mode 100644 src/assets/img/api/PurchasingCenter/SupplierManagement.js create mode 100644 src/assets/img/api/TechnologyCenter/AllocationOfMachineComponents.js create mode 100644 src/assets/img/api/TechnologyCenter/CreatePackingList.js create mode 100644 src/assets/img/api/TechnologyCenter/ImportParts.js create mode 100644 src/assets/img/api/TechnologyCenter/PartDrawingMaintenance.js create mode 100644 src/assets/img/api/TechnologyCenter/QueryParts.js create mode 100644 src/assets/img/api/TechnologyCenter/StatisticsOfRectificationItems.js create mode 100644 src/assets/img/api/WorkshopProcurement/AccountingPrice.js create mode 100644 src/assets/img/api/WorkshopProcurement/ArrivalStateSearch.js create mode 100644 src/assets/img/api/WorkshopProcurement/ContractApprovalQuery2.js create mode 100644 src/assets/img/api/WorkshopProcurement/CreatingProcurementContracts.js create mode 100644 src/assets/img/api/WorkshopProcurement/CreatingPurchasingMaterials.js create mode 100644 src/assets/img/api/WorkshopProcurement/DepartmentBuyerRequestFund.js create mode 100644 src/assets/img/api/WorkshopProcurement/FundApproval.js create mode 100644 src/assets/img/api/WorkshopProcurement/InvoiceSettlementApplication1.js create mode 100644 src/assets/img/api/WorkshopProcurement/InvoiceSettlementApprove1.js create mode 100644 src/assets/img/api/WorkshopProcurement/InvoiceSettlementApproveSearchMetalworking.js create mode 100644 src/assets/img/api/WorkshopProcurement/InvoiceStateSearch.js create mode 100644 src/assets/img/api/WorkshopProcurement/MaterialPreparationContractQuery.js create mode 100644 src/assets/img/api/WorkshopProcurement/MaterialPreparationReceiptQuery.js create mode 100644 src/assets/img/api/WorkshopProcurement/MaterialsInvoiceApproval.js create mode 100644 src/assets/img/api/WorkshopProcurement/NewArrivalList.js create mode 100644 src/assets/img/api/WorkshopProcurement/OfflineContract1.js create mode 100644 src/assets/img/api/WorkshopProcurement/OfflineContractRequestFund1.js create mode 100644 src/assets/img/api/WorkshopProcurement/OfflineProcurement.js create mode 100644 src/assets/img/api/WorkshopProcurement/OutsourcingMaterialsInvoice.js create mode 100644 src/assets/img/api/WorkshopProcurement/OutsourcingMaterialsSearch.js create mode 100644 src/assets/img/api/WorkshopProcurement/OutsourcingProcessPlanning.js create mode 100644 src/assets/img/api/WorkshopProcurement/OutsourcingQuotaSetting.js create mode 100644 src/assets/img/api/WorkshopProcurement/OutsourcingStockArrival.js create mode 100644 src/assets/img/api/WorkshopProcurement/PayStateSearch.js create mode 100644 src/assets/img/api/WorkshopProcurement/ProcurementContractApproval.js create mode 100644 src/assets/img/api/WorkshopProcurement/ProcurementContractEnquiry.js create mode 100644 src/assets/img/api/WorkshopProcurement/ProjectTotalSearch.js create mode 100644 src/assets/img/api/WorkshopProcurement/PurchaseContractChange.js create mode 100644 src/assets/img/api/WorkshopProcurement/PurchaseContractRequestFund1.js create mode 100644 src/assets/img/api/WorkshopProcurement/PurchaseInvoiceDelivery.js create mode 100644 src/assets/img/api/WorkshopProcurement/PurchaseSituationSearchMetalworking.js create mode 100644 src/assets/img/api/WorkshopProcurement/PurchasingQualityInspection.js create mode 100644 src/assets/img/api/WorkshopProcurement/QualityInspectionQuery.js create mode 100644 src/assets/img/api/WorkshopProcurement/ReceiptConnectionSheet.js create mode 100644 src/assets/img/api/WorkshopProcurement/RequestApprovalQuery2.js create mode 100644 src/assets/img/api/WorkshopProcurement/RequestApprovalQuery3.js create mode 100644 src/assets/img/api/WorkshopProcurement/RequestOutsourcingMaterials.js create mode 100644 src/assets/img/api/WorkshopProcurement/ScrappedSupplementaryInvestment1.js create mode 100644 src/assets/img/api/WorkshopProcurement/StockPreparation.js create mode 100644 src/assets/img/api/WorkshopProcurement/costStatistics.js create mode 100644 src/assets/img/api/login.js create mode 100644 src/assets/img/blueTWinkle.gif create mode 100644 src/assets/img/favicon.ico create mode 100644 src/assets/img/gray.png create mode 100644 src/assets/img/grayTwinkle.gif create mode 100644 src/assets/img/green.png create mode 100644 src/assets/img/greenTwinkle.gif create mode 100644 src/assets/img/leftPic.png create mode 100644 src/assets/img/logo.png create mode 100644 src/assets/img/logo1.png create mode 100644 src/assets/img/shebei6.png create mode 100644 src/assets/img/sj16.png create mode 100644 src/assets/img/sj24.png create mode 100644 src/assets/img/sj32.png create mode 100644 src/assets/img/sj48.png create mode 100644 src/assets/img/user.jpg create mode 100644 src/assets/img/yellowTwinkle.gif create mode 100644 src/components/AmountInputBox/AmountInputBox.js create mode 100644 src/components/AmountInputBox/index.js create mode 100644 src/components/Breadcrumb/index.vue create mode 100644 src/components/Calendar/calendar.js create mode 100644 src/components/Calendar/calendar.vue create mode 100644 src/components/Hamburger/index.vue create mode 100644 src/components/Scrollpane/index.vue create mode 100644 src/components/Sticky/index.vue create mode 100644 src/components/SvgIcon/index.vue create mode 100644 src/components/Tinymce/components/editorImage.vue create mode 100644 src/components/Tinymce/index.vue create mode 100644 src/components/Tinymce/plugins.js create mode 100644 src/components/Tinymce/toolbar.js create mode 100644 src/directive/clipboard/clipboard.js create mode 100644 src/directive/clipboard/index.js create mode 100644 src/directive/el-dragDialog/drag.js create mode 100644 src/directive/el-dragDialog/index.js create mode 100644 src/directive/sticky.js create mode 100644 src/directive/waves/index.js create mode 100644 src/directive/waves/waves.css create mode 100644 src/directive/waves/waves.js create mode 100644 src/icon/demo.css create mode 100644 src/icon/demo_index.html create mode 100644 src/icon/iconfont.css create mode 100644 src/icon/iconfont.eot create mode 100644 src/icon/iconfont.js create mode 100644 src/icon/iconfont.json create mode 100644 src/icon/iconfont.svg create mode 100644 src/icon/iconfont.ttf create mode 100644 src/icon/iconfont.woff create mode 100644 src/icon/iconfont.woff2 create mode 100644 src/icons/MaterialVerificationMaintenance.svg create mode 100644 src/icons/gallery.html create mode 100644 src/icons/generate-icon-gallery.js create mode 100644 src/icons/index.js create mode 100644 src/icons/svg/ANDON.svg create mode 100644 src/icons/svg/AccountingPrice.svg create mode 100644 src/icons/svg/ActualWorkQuery.svg create mode 100644 src/icons/svg/AfterServiceSearch.svg create mode 100644 src/icons/svg/AndonMaintenance.svg create mode 100644 src/icons/svg/AndonStatisticsStation.svg create mode 100644 src/icons/svg/AndonStatisticsType.svg create mode 100644 src/icons/svg/AntonMonitoring.svg create mode 100644 src/icons/svg/ArrivalStateSearch.svg create mode 100644 src/icons/svg/AssemblyExecution.svg create mode 100644 src/icons/svg/AssemblyInformationInput.svg create mode 100644 src/icons/svg/AssemblyPlan.svg create mode 100644 src/icons/svg/AssemblyProcessAssignment.svg create mode 100644 src/icons/svg/AssemblyProcessPlanning.svg create mode 100644 src/icons/svg/AssemblyQualitydataAnalyse.svg create mode 100644 src/icons/svg/AssemblyQualitydataQuery.svg create mode 100644 src/icons/svg/AssemblyQuotaSetting.svg create mode 100644 src/icons/svg/AssemblyTaskQuery.svg create mode 100644 src/icons/svg/BacklogGoodsAnalysis.svg create mode 100644 src/icons/svg/BacklogGoodsPrepare.svg create mode 100644 src/icons/svg/BasicDataManagement.svg create mode 100644 src/icons/svg/BasicVariableMaintenance.svg create mode 100644 src/icons/svg/BasicVariableQuery.svg create mode 100644 src/icons/svg/BidBond.svg create mode 100644 src/icons/svg/CRM.svg create mode 100644 src/icons/svg/CertificateConformity.svg create mode 100644 src/icons/svg/ChargingData.svg create mode 100644 src/icons/svg/CheckPlanCreate.svg create mode 100644 src/icons/svg/CheckPlanExec.svg create mode 100644 src/icons/svg/CheckPlanSearch.svg create mode 100644 src/icons/svg/CheckSchemeCreate.svg create mode 100644 src/icons/svg/CloudData.svg create mode 100644 src/icons/svg/ComprehensiveInquiryMS.svg create mode 100644 src/icons/svg/ContractApprovalQuery.svg create mode 100644 src/icons/svg/ContractCapitalManagement.svg create mode 100644 src/icons/svg/ContractChange.svg create mode 100644 src/icons/svg/ContractInformationManagement.svg create mode 100644 src/icons/svg/ContractStateSearch.svg create mode 100644 src/icons/svg/CreateInquirySheet.svg create mode 100644 src/icons/svg/CreatePackingList.svg create mode 100644 src/icons/svg/CreatePickingList.svg create mode 100644 src/icons/svg/CreatePreparationBill.svg create mode 100644 src/icons/svg/CreateProject.svg create mode 100644 src/icons/svg/CreatePurchaseContract.svg create mode 100644 src/icons/svg/CreatingProcurementContracts.svg create mode 100644 src/icons/svg/CreatingPurchasingMaterials.svg create mode 100644 src/icons/svg/CurrentEquipmentMaintenancePlan.svg create mode 100644 src/icons/svg/DeliveryApplication.svg create mode 100644 src/icons/svg/DeliveryConfirmation.svg create mode 100644 src/icons/svg/DeliveryManagement.svg create mode 100644 src/icons/svg/DepartmentBuyerRequestFund.svg create mode 100644 src/icons/svg/DirectPart.svg create mode 100644 src/icons/svg/DiscardedPartsInquiry.svg create mode 100644 src/icons/svg/DistributionStation.svg create mode 100644 src/icons/svg/ElectricalComponentParameters.svg create mode 100644 src/icons/svg/EquipmentAlarmStatistics.svg create mode 100644 src/icons/svg/EquipmentCapabilitySetting.svg create mode 100644 src/icons/svg/EquipmentConditionAnalysis.svg create mode 100644 src/icons/svg/EquipmentMaintenanceContent.svg create mode 100644 src/icons/svg/EquipmentMaintenancePlan.svg create mode 100644 src/icons/svg/EquipmentMaintenanceRecordManagement.svg create mode 100644 src/icons/svg/EquipmentStatus.svg create mode 100644 src/icons/svg/EquipmentStatusMonitoring.svg create mode 100644 src/icons/svg/ExchangeApproval.svg create mode 100644 src/icons/svg/ExchangePart.svg create mode 100644 src/icons/svg/FactoryCalendar.svg create mode 100644 src/icons/svg/FactoryReport.svg create mode 100644 src/icons/svg/FactoryReportBase.svg create mode 100644 src/icons/svg/FactoryReportPrint.svg create mode 100644 src/icons/svg/FirstPartMaintenance.svg create mode 100644 src/icons/svg/FirstPartParams.svg create mode 100644 src/icons/svg/FirstPartRecord.svg create mode 100644 src/icons/svg/FundApproval1.svg create mode 100644 src/icons/svg/FundApproval2.svg create mode 100644 src/icons/svg/FundApproval2workshop.svg create mode 100644 src/icons/svg/FundApproval3.svg create mode 100644 src/icons/svg/GenneralPart.svg create mode 100644 src/icons/svg/GroupMatching.svg create mode 100644 src/icons/svg/ImportChangeParts.svg create mode 100644 src/icons/svg/ImportParts.svg create mode 100644 src/icons/svg/InboundCard.svg create mode 100644 src/icons/svg/Inboundscanning.svg create mode 100644 src/icons/svg/InitialProduction.svg create mode 100644 src/icons/svg/InquiryTransitInformation.svg create mode 100644 src/icons/svg/InstallationAndMonitoring.svg create mode 100644 src/icons/svg/InterBudgetaryBudgets.svg create mode 100644 src/icons/svg/InterfaceList.svg create mode 100644 src/icons/svg/InterfaceManagement.svg create mode 100644 src/icons/svg/InterfaceModuleMaintenance.svg create mode 100644 src/icons/svg/InventoryCheck.svg create mode 100644 src/icons/svg/InventoryManagement.svg create mode 100644 src/icons/svg/InventoryQuery.svg create mode 100644 src/icons/svg/InvoiceRecord.svg create mode 100644 src/icons/svg/InvoiceSettlementApplication.svg create mode 100644 src/icons/svg/InvoiceSettlementApplication1.svg create mode 100644 src/icons/svg/InvoiceSettlementApprove.svg create mode 100644 src/icons/svg/InvoiceSettlementApprove1.svg create mode 100644 src/icons/svg/InvoiceStateSearch.svg create mode 100644 src/icons/svg/LabelLanguageMaintenance.svg create mode 100644 src/icons/svg/LabelLanguageMaintenancesvg create mode 100644 src/icons/svg/LineQualityQuery.svg create mode 100644 src/icons/svg/LoadingCard.svg create mode 100644 src/icons/svg/LoadingCardMangement.svg create mode 100644 src/icons/svg/LocalSearch.svg create mode 100644 src/icons/svg/LocationManagement.svg create mode 100644 src/icons/svg/MachiningSequenceAdjustment.svg create mode 100644 src/icons/svg/MaintenanceEquipmentPerson.svg create mode 100644 src/icons/svg/MaintenanceTighteningPosition.svg create mode 100644 src/icons/svg/Maintenancebasicequipmentinformation.svg create mode 100644 src/icons/svg/ManHourStatistics.svg create mode 100644 src/icons/svg/ManufacturingExecution.svg create mode 100644 src/icons/svg/MaterialArrivalManagement.svg create mode 100644 src/icons/svg/MaterialChangeHistory.svg create mode 100644 src/icons/svg/MaterialMaintenance.svg create mode 100644 src/icons/svg/MaterialManagement.svg create mode 100644 src/icons/svg/MaterialOut.svg create mode 100644 src/icons/svg/MaterialPull.svg create mode 100644 src/icons/svg/MaterialPullAddMaterial.svg create mode 100644 src/icons/svg/MaterialPullSearch.svg create mode 100644 src/icons/svg/MaterialPullStation.svg create mode 100644 src/icons/svg/MaterialRequisition.svg create mode 100644 src/icons/svg/MeasurementRangeMaintenance.svg create mode 100644 src/icons/svg/MessageMaintenance.svg create mode 100644 src/icons/svg/ModuleInformation.svg create mode 100644 src/icons/svg/OccCreate.png create mode 100644 src/icons/svg/OccCreate.svg create mode 100644 src/icons/svg/OccSearch.svg create mode 100644 src/icons/svg/OfflineContract.svg create mode 100644 src/icons/svg/OfflineContract1.svg create mode 100644 src/icons/svg/OfflineContractRequestFund.svg create mode 100644 src/icons/svg/OfflineContractRequestFund1.svg create mode 100644 src/icons/svg/OfflinePartOut.svg create mode 100644 src/icons/svg/OfflinePurchase.svg create mode 100644 src/icons/svg/OnlineRepairHistory.svg create mode 100644 src/icons/svg/OqcInformation.png create mode 100644 src/icons/svg/OqcInformation.svg create mode 100644 src/icons/svg/OrderInquiry.svg create mode 100644 src/icons/svg/OrderRelease.svg create mode 100644 src/icons/svg/OrderTraceability.svg create mode 100644 src/icons/svg/OutFactoryMaintenance.svg create mode 100644 src/icons/svg/OutPartSelect.svg create mode 100644 src/icons/svg/OutsourcingDataMaintenance.svg create mode 100644 src/icons/svg/OutsourcingInspectionEntry.svg create mode 100644 src/icons/svg/OutsourcingMaterialsInvoice.svg create mode 100644 src/icons/svg/OutsourcingPaymentPlanManagement.svg create mode 100644 src/icons/svg/OutsourcingPaymentPlanManagement2.svg create mode 100644 src/icons/svg/OutsourcingPriceBudget.svg create mode 100644 src/icons/svg/OutsourcingProcessPlanning.svg create mode 100644 src/icons/svg/OutsourcingQCSearch.svg create mode 100644 src/icons/svg/OutsourcingQuotaSetting.svg create mode 100644 src/icons/svg/OutsourcingStatus.svg create mode 100644 src/icons/svg/OutsourcingStockArrival.svg create mode 100644 src/icons/svg/OutsourcingTaskExecution.svg create mode 100644 src/icons/svg/OutsourcingTaskQuery.svg create mode 100644 src/icons/svg/OwnTimeStatistics.svg create mode 100644 src/icons/svg/ParseQuery.svg create mode 100644 src/icons/svg/PartAssignment.svg create mode 100644 src/icons/svg/PartDrawingMaintenance.svg create mode 100644 src/icons/svg/PartOut.svg create mode 100644 src/icons/svg/PartWorkCraftSelect_rdlc.svg create mode 100644 src/icons/svg/PartsNumberMaintenance.svg create mode 100644 src/icons/svg/PartsReplacement.svg create mode 100644 src/icons/svg/PauseRecording.svg create mode 100644 src/icons/svg/PayStateSearch.svg create mode 100644 src/icons/svg/PdfCardMaintenance.svg create mode 100644 src/icons/svg/PerformanceBond.svg create mode 100644 src/icons/svg/PersonnelManagement.svg create mode 100644 src/icons/svg/PickingList.svg create mode 100644 src/icons/svg/PreorderAssociation.svg create mode 100644 src/icons/svg/PrintingAssemblyProcessCard.svg create mode 100644 src/icons/svg/ProblemDeclaration.svg create mode 100644 src/icons/svg/ProblemDeclarationCreate.svg create mode 100644 src/icons/svg/ProcessAdjustQuery.svg create mode 100644 src/icons/svg/ProcessBeatMaintenance.svg create mode 100644 src/icons/svg/ProcessManagement.svg create mode 100644 src/icons/svg/ProcessPictureMaintenance.svg create mode 100644 src/icons/svg/ProcessPlanning.svg create mode 100644 src/icons/svg/ProcessPlanningNew.svg create mode 100644 src/icons/svg/ProcessQuotaEstablishment.svg create mode 100644 src/icons/svg/ProcessTaskAssignment.svg create mode 100644 src/icons/svg/ProcessingStatus.svg create mode 100644 src/icons/svg/ProcessingStatusEdit.svg create mode 100644 src/icons/svg/ProcessingStatusNew.svg create mode 100644 src/icons/svg/ProcurementContractApproval.svg create mode 100644 src/icons/svg/ProcurementContractEnquiry.svg create mode 100644 src/icons/svg/ProcurementInquiry.svg create mode 100644 src/icons/svg/ProductMaintenance.svg create mode 100644 src/icons/svg/ProductionCapacityBalance.svg create mode 100644 src/icons/svg/ProductionCheck.svg create mode 100644 src/icons/svg/ProjectPlanningManagement.svg create mode 100644 src/icons/svg/ProjectPlanningQuery.svg create mode 100644 src/icons/svg/ProjectTotalSearch.svg create mode 100644 src/icons/svg/PurchaseContractApproval.svg create mode 100644 src/icons/svg/PurchaseContractChange.svg create mode 100644 src/icons/svg/PurchaseContractRequestFund.svg create mode 100644 src/icons/svg/PurchaseContractRequestFund1.svg create mode 100644 src/icons/svg/PurchaseContractReview.svg create mode 100644 src/icons/svg/PurchaseContractSearch.svg create mode 100644 src/icons/svg/PurchaseInRecord.svg create mode 100644 src/icons/svg/PurchaseInvoiceDelivery.svg create mode 100644 src/icons/svg/PurchaseMaterielModify.svg create mode 100644 src/icons/svg/PurchaseOutRecord.svg create mode 100644 src/icons/svg/PurchasePartsStorage.svg create mode 100644 src/icons/svg/PurchaseSituationSearch.svg create mode 100644 src/icons/svg/PurchaseTaskAllocate.svg create mode 100644 src/icons/svg/PurchasingQualityInspection.svg create mode 100644 src/icons/svg/QualityBasicData.svg create mode 100644 src/icons/svg/QualityData_XR.svg create mode 100644 src/icons/svg/QualityData_XS.svg create mode 100644 src/icons/svg/QualityInspectionInformationInquiry.svg create mode 100644 src/icons/svg/QualityInspectionQuery.svg create mode 100644 src/icons/svg/QualitydataQuery.svg create mode 100644 src/icons/svg/QueryParts.svg create mode 100644 src/icons/svg/QuotaFormulation.svg create mode 100644 src/icons/svg/RealTimeStatusEquipment.svg create mode 100644 src/icons/svg/ReceiptConnectionSheet.svg create mode 100644 src/icons/svg/ReceiveAssemblyTask.svg create mode 100644 src/icons/svg/ReceiveCheck.svg create mode 100644 src/icons/svg/RecipeManagement.svg create mode 100644 src/icons/svg/RepairTimeEntry.svg create mode 100644 src/icons/svg/ReplenishmentOrders.svg create mode 100644 src/icons/svg/ReplenishmentQuery.svg create mode 100644 src/icons/svg/RequestApprovalQuery.svg create mode 100644 src/icons/svg/RequestOutsourcingMaterials.svg create mode 100644 src/icons/svg/SPC.svg create mode 100644 src/icons/svg/SPC_Analysis.svg create mode 100644 src/icons/svg/SafetyMargin.svg create mode 100644 src/icons/svg/ScheduleCompletionDetails.svg create mode 100644 src/icons/svg/SetPayPlan.svg create mode 100644 src/icons/svg/ShiftManagement.svg create mode 100644 src/icons/svg/ShipmentApproval.svg create mode 100644 src/icons/svg/ShopScheduling.svg create mode 100644 src/icons/svg/SparePartsForScrap.svg create mode 100644 src/icons/svg/SparePartsOutStockRecord.svg create mode 100644 src/icons/svg/SpecialRequirementsList.svg create mode 100644 src/icons/svg/StationInterfaceList.svg create mode 100644 src/icons/svg/StationInterfaceListMoby.svg create mode 100644 src/icons/svg/StatusQuery.svg create mode 100644 src/icons/svg/StepContentMaintenance.svg create mode 100644 src/icons/svg/StockInquiry.svg create mode 100644 src/icons/svg/StockPreparation.svg create mode 100644 src/icons/svg/SubPartCome.svg create mode 100644 src/icons/svg/SubstitutePart.svg create mode 100644 src/icons/svg/SupplierManagement.svg create mode 100644 src/icons/svg/SystemRrolemaintenance.svg create mode 100644 src/icons/svg/TraceabilityOfParts.svg create mode 100644 src/icons/svg/TransferQuery.svg create mode 100644 src/icons/svg/TvParamsManagement.svg create mode 100644 src/icons/svg/TypicalAssemblyMaintenance.svg create mode 100644 src/icons/svg/TypicalProcessMaintenance.svg create mode 100644 src/icons/svg/UnqualifiedTreatment.svg create mode 100644 src/icons/svg/UserRightsManagement.svg create mode 100644 src/icons/svg/VCU.svg create mode 100644 src/icons/svg/VariableDeviceType.svg create mode 100644 src/icons/svg/VerificationMmaintenanceLine.svg create mode 100644 src/icons/svg/WorkHourMaintenance.svg create mode 100644 src/icons/svg/WorkshopEquipmentManagement.svg create mode 100644 src/icons/svg/WorkshopPersonnelRoleMana.svg create mode 100644 src/icons/svg/WorkshopProcessMaintenance.svg create mode 100644 src/icons/svg/arrangeChart.svg create mode 100644 src/icons/svg/bottom.svg create mode 100644 src/icons/svg/costStatistics.svg create mode 100644 src/icons/svg/doc.svg create mode 100644 src/icons/svg/excel.svg create mode 100644 src/icons/svg/expand.svg create mode 100644 src/icons/svg/eye.svg create mode 100644 src/icons/svg/file.svg create mode 100644 src/icons/svg/histogram.svg create mode 100644 src/icons/svg/machine.svg create mode 100644 src/icons/svg/machiningHoursStatistics.svg create mode 100644 src/icons/svg/maintainInformation.svg create mode 100644 src/icons/svg/password.svg create mode 100644 src/icons/svg/pdf.svg create mode 100644 src/icons/svg/pic.svg create mode 100644 src/icons/svg/ppt.svg create mode 100644 src/icons/svg/processCapabilityAnalysis.svg create mode 100644 src/icons/svg/processMarkingManagement.svg create mode 100644 src/icons/svg/sampleTrendChart.svg create mode 100644 src/icons/svg/top.svg create mode 100644 src/icons/svg/username.svg create mode 100644 src/icons/svg/人员.svg create mode 100644 src/icons/svg/仓储管理.svg create mode 100644 src/icons/svg/加号1.svg create mode 100644 src/icons/svg/加号2.svg create mode 100644 src/icons/svg/右箭头.svg create mode 100644 src/icons/svg/外协工时.svg create mode 100644 src/icons/svg/库存查询.svg create mode 100644 src/icons/svg/技术.svg create mode 100644 src/icons/svg/模块化.svg create mode 100644 src/icons/svg/箭头.svg create mode 100644 src/icons/svg/箭头2.svg create mode 100644 src/icons/svg/系统管理.svg create mode 100644 src/icons/svg/系统装配.svg create mode 100644 src/icons/svg/自家工时.svg create mode 100644 src/icons/svg/设备管理.svg create mode 100644 src/icons/svg/车间.svg create mode 100644 src/icons/svg/车间采购.svg create mode 100644 src/icons/svg/采购管理.svg create mode 100644 src/icons/svg/采购采购.svg create mode 100644 src/icons/svg/销售管理.svg create mode 100644 src/icons/svgo.yml create mode 100644 src/main.js create mode 100644 src/permission.js create mode 100644 src/router/getRouter.js create mode 100644 src/router/index.js create mode 100644 src/store/getters.js create mode 100644 src/store/index.js create mode 100644 src/store/modules/app.js create mode 100644 src/store/modules/permission.js create mode 100644 src/store/modules/tagsView.js create mode 100644 src/store/modules/user.js create mode 100644 src/styles/element-ui.scss create mode 100644 src/styles/index.scss create mode 100644 src/styles/mixin.scss create mode 100644 src/styles/sidebar.scss create mode 100644 src/styles/transition.scss create mode 100644 src/styles/variables.scss create mode 100644 src/utils/auth.js create mode 100644 src/utils/curd.js create mode 100644 src/utils/index.js create mode 100644 src/utils/mqtt.js create mode 100644 src/utils/request.js create mode 100644 src/utils/setMethods.js create mode 100644 src/utils/tool.js create mode 100644 src/utils/validate.js create mode 100644 src/vendor/Blob.js create mode 100644 src/vendor/Export2Excel.js create mode 100644 src/vendor/Export2Excel1.js create mode 100644 src/vendor/Export2Excel2.js create mode 100644 src/vendor/Export2Excelcjn.js create mode 100644 src/vendor/exportExcel.js create mode 100644 src/vendor/htmlToPdf.js create mode 100644 src/vendor/int2Chinese.js create mode 100644 src/vendor/print.js create mode 100644 src/views/404.vue create mode 100644 src/views/AndonSystem/AndonStatisticsStation/index.vue create mode 100644 src/views/AndonSystem/AndonStatisticsType/index.vue create mode 100644 src/views/AndonSystem/equipmentAndon/index.vue create mode 100644 src/views/AndonSystem/equipmentAndonStatistics/index.vue create mode 100644 src/views/AndonSystem/materialAndon/index.vue create mode 100644 src/views/AndonSystem/materialAndonStatistics/index.vue create mode 100644 src/views/AndonSystem/qualityAndon/index.vue create mode 100644 src/views/AndonSystem/qualityAndonStatistics/index.vue create mode 100644 src/views/BasicData/CoiceBroadcastSetting/index.vue create mode 100644 src/views/BasicData/DistributionStation/index.vue create mode 100644 src/views/BasicData/EquipmentCapabilitySetting/index.vue create mode 100644 src/views/BasicData/FactoryCalendar/index.vue create mode 100644 src/views/BasicData/MaintenanceEquipmentPerson/index.vue create mode 100644 src/views/BasicData/MaterialMaintenance/index.vue create mode 100644 src/views/BasicData/MenuManagement/index.vue create mode 100644 src/views/BasicData/PartsNumberMaintenance/index.vue create mode 100644 src/views/BasicData/PersonnelManagement/index.vue create mode 100644 src/views/BasicData/ProjectManagementDisplay/index.vue create mode 100644 src/views/BasicData/ShiftManagement/index.vue create mode 100644 src/views/BasicData/SystemAlarmLog/index.vue create mode 100644 src/views/BasicData/SystemLog/index.vue create mode 100644 src/views/BasicData/SystemRrolemaintenance/index.vue create mode 100644 src/views/BasicData/TimeLine/index.vue create mode 100644 src/views/BasicData/TvParamsManagement/index.vue create mode 100644 src/views/BasicData/UserRightsManagement/index.vue create mode 100644 src/views/BasicData/WorkStationAlarmLog/index.vue create mode 100644 src/views/BasicData/WorkshopPersonnelRoleMana/index.vue create mode 100644 src/views/BasicData/WorkshopProcessMaintenance/index.vue create mode 100644 src/views/BasicDataMaintenance/AlarmVariableMaintenance/index.vue create mode 100644 src/views/BasicDataMaintenance/BasicVariableMaintenance/UploadExcel.vue create mode 100644 src/views/BasicDataMaintenance/BasicVariableMaintenance/index.vue create mode 100644 src/views/BasicDataMaintenance/BasicVariableQuery/index.vue create mode 100644 src/views/BasicDataMaintenance/StationInformationMaintenance/UploadExcel.vue create mode 100644 src/views/BasicDataMaintenance/StationInformationMaintenance/index.vue create mode 100644 src/views/BasicDataMaintenance/StationInformationMaintenance/indexBak.vue create mode 100644 src/views/BasicDataMaintenance/VariableDeviceType/index.vue create mode 100644 src/views/ChargingData/CloudData/index.vue create mode 100644 src/views/ChargingData/LocalSearch/index.vue create mode 100644 src/views/EquipmentOperationAnalysis/CurrentEquipmentMaintenancePlan/index.vue create mode 100644 src/views/EquipmentOperationAnalysis/EquipmentAlarmStatistics/index.vue create mode 100644 src/views/EquipmentOperationAnalysis/EquipmentMaintenanceContent/index.vue create mode 100644 src/views/EquipmentOperationAnalysis/EquipmentMaintenancePlan/index.vue create mode 100644 src/views/EquipmentOperationAnalysis/EquipmentMaintenanceRecordManagement/index.vue create mode 100644 src/views/EquipmentOperationAnalysis/Maintenancebasicequipmentinformation/index.vue create mode 100644 src/views/EquipmentOperationAnalysis/RealTimeStatusEquipment/index.vue create mode 100644 src/views/EquipmentOperationAnalysis/RoutineCheckInformationMaintenance/index.vue create mode 100644 src/views/EquipmentOperationAnalysis/SpotCheckRecord/DayCheck.vue create mode 100644 src/views/EquipmentOperationAnalysis/SpotCheckRecord/MoonCheck.vue create mode 100644 src/views/EquipmentOperationAnalysis/SpotCheckRecord/QuarterCheck.vue create mode 100644 src/views/EquipmentOperationAnalysis/SpotCheckRecord/WeekCheck.vue create mode 100644 src/views/EquipmentOperationAnalysis/SpotCheckRecord/YearCheck.vue create mode 100644 src/views/EquipmentOperationAnalysis/SpotCheckRecord/index.vue create mode 100644 src/views/FactoryReport/FactoryReportBase/index.vue create mode 100644 src/views/FactoryReport/FactoryReportBase/indexScheme.vue create mode 100644 src/views/FactoryReport/FactoryReportPrint/ReportPrint.vue create mode 100644 src/views/FactoryReport/FactoryReportPrint/index.vue create mode 100644 src/views/FactoryReport/LoadingCard/index.vue create mode 100644 src/views/FirstPartMaintenance/FirstPartHistorySearch/index.vue create mode 100644 src/views/FirstPartMaintenance/FirstPartParams/index.vue create mode 100644 src/views/FirstPartMaintenance/FirstPartRecord/index.vue create mode 100644 src/views/InterfaceManagement/InterfaceList/index.vue create mode 100644 src/views/InterfaceManagement/StationInterfaceList/index.vue create mode 100644 src/views/InterfaceManagement/StationInterfaceListMoby/index.vue create mode 100644 src/views/ManufacturingExecution/MaterialChangeHistory/index.vue create mode 100644 src/views/ManufacturingExecution/OnlineRepairHistory/index.vue create mode 100644 src/views/ManufacturingExecution/PauseRecording/index.vue create mode 100644 src/views/ManufacturingExecution/ProblemDeclaration/index.vue create mode 100644 src/views/ManufacturingExecution/VCU/index.vue create mode 100644 src/views/MaterialPull/MaterialPullAddMaterial/index.vue create mode 100644 src/views/MaterialPull/MaterialPullSearch/index.vue create mode 100644 src/views/MaterialPull/MaterialPullStation/index.vue create mode 100644 src/views/MaterialPull/UpLoadExcel.vue create mode 100644 src/views/OqcInformation/OccCreate/index.vue create mode 100644 src/views/OqcInformation/ProblemDeclarationCreate/index.vue create mode 100644 src/views/ProcessManagement/4MTextManagement/index.vue create mode 100644 src/views/ProcessManagement/AndonMaintenance/UploadExcel.vue create mode 100644 src/views/ProcessManagement/AndonMaintenance/index.vue create mode 100644 src/views/ProcessManagement/BomEngineManagement/BomList.vue create mode 100644 src/views/ProcessManagement/BomEngineManagement/BomListCompare.vue create mode 100644 src/views/ProcessManagement/BomEngineManagement/index.vue create mode 100644 src/views/ProcessManagement/CertificateConformity/index.vue create mode 100644 src/views/ProcessManagement/InterfaceModuleMaintenance/index.vue create mode 100644 src/views/ProcessManagement/LabelLanguageMaintenance/index.vue create mode 100644 src/views/ProcessManagement/LabelLanguageMaintenance/index2.vue create mode 100644 src/views/ProcessManagement/LoadingCardMangement/index.vue create mode 100644 src/views/ProcessManagement/LoadingDocuments/index.vue create mode 100644 src/views/ProcessManagement/MaterialVerificationMaintenance/UploadExcel.vue create mode 100644 src/views/ProcessManagement/MaterialVerificationMaintenance/index.vue create mode 100644 src/views/ProcessManagement/MessageMaintenance/index.vue create mode 100644 src/views/ProcessManagement/MonitoringData/EngineModel.vue create mode 100644 src/views/ProcessManagement/MonitoringData/EngineNumber.vue create mode 100644 src/views/ProcessManagement/MonitoringData/LineHeadStationInformation.vue create mode 100644 src/views/ProcessManagement/MonitoringData/MeasurementDataEquipmentStatusLog.vue create mode 100644 src/views/ProcessManagement/MonitoringData/OfflineStation.vue create mode 100644 src/views/ProcessManagement/MonitoringData/Operator.vue create mode 100644 src/views/ProcessManagement/MonitoringData/OrderNumber.vue create mode 100644 src/views/ProcessManagement/MonitoringData/PalletNo.vue create mode 100644 src/views/ProcessManagement/MonitoringData/StationStatus.vue create mode 100644 src/views/ProcessManagement/MonitoringData/TransferModel.vue create mode 100644 src/views/ProcessManagement/MonitoringData/index.vue create mode 100644 src/views/ProcessManagement/PdfCardMaintenance/index.vue create mode 100644 src/views/ProcessManagement/ProcessPictureMaintenance/index.vue create mode 100644 src/views/ProcessManagement/ShuntingCacheManagement/index.vue create mode 100644 src/views/ProcessManagement/SpecialRequirementsList/index.vue create mode 100644 src/views/ProcessManagement/StepContentMaintenance/index.vue create mode 100644 src/views/ProcessManagement/WarehouseLocation/index.vue create mode 100644 src/views/ProcessManagement/WorkHourMaintenance/index.vue create mode 100644 src/views/ProcessManagement/processManagementPage/processManagementPage.vue create mode 100644 src/views/ProcessManagement/processMarkingManagement/index.vue create mode 100644 src/views/ProcessParameterMaintenance/DataCollectionGroupMaintenance/index.vue create mode 100644 src/views/ProcessParameterMaintenance/MaintenanceTighteningPosition/index.vue create mode 100644 src/views/ProcessParameterMaintenance/MeasurementRangeMaintenance/index.vue create mode 100644 src/views/ProcessParameterMaintenance/ProcessBeatMaintenance/index.vue create mode 100644 src/views/ProcessParameterMaintenance/VerificationMmaintenanceLine/index.vue create mode 100644 src/views/ProductionCheck/CheckPlanCreate/index.vue create mode 100644 src/views/ProductionCheck/CheckPlanExec/index.vue create mode 100644 src/views/ProductionCheck/CheckPlanSearch/index.vue create mode 100644 src/views/ProductionCheck/CheckSchemeCreate/UploadExcel.vue create mode 100644 src/views/ProductionCheck/CheckSchemeCreate/index.vue create mode 100644 src/views/ProductionCheck/CheckSchemeCreate/indexContent.vue create mode 100644 src/views/ProductionCheck/CheckSchemeCreate/indexDownLoadRules.vue create mode 100644 src/views/ProductionCheck/CheckSchemeCreate/indexMethod.vue create mode 100644 src/views/ProductionCheck/CheckSchemeCreate/indexToolMethod..vue create mode 100644 src/views/PurchasingManagement/PurchaseOrder/index.vue create mode 100644 src/views/PurchasingManagement/PurchasedPartsSearch/index.vue create mode 100644 src/views/PurchasingManagement/SupplierManagement/index.vue create mode 100644 src/views/QualityAssurance/AssemblyQualitydataAnalyse/index.vue create mode 100644 src/views/QualityAssurance/AssemblyQualitydataQuery/index.vue create mode 100644 src/views/QualityAssurance/DeviceRepairOnlineRecord/index.vue create mode 100644 src/views/QualityAssurance/FirstPassYieldStatistics/index.vue create mode 100644 src/views/QualityAssurance/InquiryTransitInformation/index.vue create mode 100644 src/views/QualityAssurance/LineItemQuery/index.vue create mode 100644 src/views/QualityAssurance/LineQualityQuery/index.vue create mode 100644 src/views/QualityAssurance/MaterialDataQuery/index.vue create mode 100644 src/views/QualityAssurance/ModuleInformation/index.vue create mode 100644 src/views/QualityAssurance/ProductionDayStatistics/index.vue create mode 100644 src/views/QualityAssurance/ProductionPlanOrderCompletion/index.vue create mode 100644 src/views/QualityAssurance/SPC_Analysis/QualityDatasearch.vue create mode 100644 src/views/QualityAssurance/SPC_Analysis/index.vue create mode 100644 src/views/QualityAssurance/SPC_Analysis/index111.vue create mode 100644 src/views/QualityAssurance/SPC_Analysis/index_beifen.vue create mode 100644 src/views/QualityAssurance/ThreeCodeVerifyRecord/index.vue create mode 100644 src/views/RecipeManagement/BasicDataManagement/UploadExcel.vue create mode 100644 src/views/RecipeManagement/BasicDataManagement/index.vue create mode 100644 src/views/RecipeManagement/ElectricalComponentParameters/UploadExcel.vue create mode 100644 src/views/RecipeManagement/ElectricalComponentParameters/index.vue create mode 100644 src/views/RecipeManagement/OpLoginStatusManagent/index.vue create mode 100644 src/views/RecipeManagement/RecipeManagement/index.vue create mode 100644 src/views/RecipeManagement/RecipeManagementNew/index.vue create mode 100644 src/views/RepairManagement/RepairManagementSearch/index.vue create mode 100644 src/views/SearchData/AlarmAnalysis/index.vue create mode 100644 src/views/SearchData/FTTTrendChart/index.vue create mode 100644 src/views/SearchData/JPHTrendChart/index.vue create mode 100644 src/views/SearchData/OEETrendChart/index.vue create mode 100644 src/views/SearchData/QualityData_XR/index.vue create mode 100644 src/views/SearchData/QualityData_XS/index.vue create mode 100644 src/views/SearchData/QualityDatasearch/index.vue create mode 100644 src/views/SearchData/SPC_Analysis/QualityDatasearch.vue create mode 100644 src/views/SearchData/SPC_Analysis/index.vue create mode 100644 src/views/SearchData/SPC_Analysis/index111.vue create mode 100644 src/views/SearchData/SPC_Analysis/index_beifen.vue create mode 100644 src/views/SearchData/arrangeChart/index.vue create mode 100644 src/views/SearchData/histogram/index.vue create mode 100644 src/views/SearchData/processCapabilityAnalysis/index.vue create mode 100644 src/views/SearchData/sampleTrendChart/index.vue create mode 100644 src/views/WorkOrderManagement/OnlineProductDetail/index.vue create mode 100644 src/views/WorkOrderManagement/ReleaseOfProductionPlan/UploadExcel.vue create mode 100644 src/views/WorkOrderManagement/ReleaseOfProductionPlan/index.vue create mode 100644 src/views/WorkOrderManagement/ScheduleStatusChange/index.vue create mode 100644 src/views/WorkOrderManagement/productDayReport/index.vue create mode 100644 src/views/dashboard/index.vue create mode 100644 src/views/layout/Layout.vue create mode 100644 src/views/layout/components/AppMain.vue create mode 100644 src/views/layout/components/Navbar.vue create mode 100644 src/views/layout/components/Sidebar/Item.vue create mode 100644 src/views/layout/components/Sidebar/SidebarItem.vue create mode 100644 src/views/layout/components/Sidebar/SidebarItem2.vue create mode 100644 src/views/layout/components/Sidebar/index.vue create mode 100644 src/views/layout/components/TagsView.vue create mode 100644 src/views/layout/components/index.js create mode 100644 src/views/layout/mixin/ResizeHandler.js create mode 100644 src/views/login/index.vue create mode 100644 static/.gitkeep create mode 100644 static/config.js create mode 100644 static/cpexcel.js create mode 100644 static/input.docx create mode 100644 static/leftPic.png create mode 100644 static/libs/FileSaver.js create mode 100644 static/libs/docxtemplater.js create mode 100644 static/libs/jszip-utils.js create mode 100644 static/libs/jszip.js create mode 100644 static/login.png create mode 100644 static/tinymce4.7.5/langs/zh_CN.js create mode 100644 static/tinymce4.7.5/plugins/codesample/css/prism.css create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif create mode 100644 static/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif create mode 100644 static/tinymce4.7.5/plugins/visualblocks/css/visualblocks.css create mode 100644 static/tinymce4.7.5/skins/lightgray/content.inline.min.css create mode 100644 static/tinymce4.7.5/skins/lightgray/content.min.css create mode 100644 static/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff create mode 100644 static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot create mode 100644 static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.svg create mode 100644 static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf create mode 100644 static/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff create mode 100644 static/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot create mode 100644 static/tinymce4.7.5/skins/lightgray/fonts/tinymce.svg create mode 100644 static/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf create mode 100644 static/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff create mode 100644 static/tinymce4.7.5/skins/lightgray/img/anchor.gif create mode 100644 static/tinymce4.7.5/skins/lightgray/img/loader.gif create mode 100644 static/tinymce4.7.5/skins/lightgray/img/object.gif create mode 100644 static/tinymce4.7.5/skins/lightgray/img/trans.gif create mode 100644 static/tinymce4.7.5/skins/lightgray/skin.min.css create mode 100644 static/tinymce4.7.5/skins/lightgray/skin.min.css.map create mode 100644 static/tinymce4.7.5/tinymce.min.js create mode 100644 yarn.lock diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..a2a380f --- /dev/null +++ b/.babelrc @@ -0,0 +1,12 @@ +{ + "presets": [ + ["env", { + "modules": false, + "targets": { + "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] + } + }], + "stage-2" + ], + "plugins":["transform-vue-jsx", "transform-runtime"] +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ea6e20f --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +# http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..7a8a0c6 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +build/*.js +config/*.js +src/assets +src/icon +src/views/ProjectManagement diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..0e5c28a --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,196 @@ +module.exports = { + root: true, + parserOptions: { + parser: 'babel-eslint', + sourceType: 'module' + }, + env: { + browser: true, + node: true, + es6: true, + }, + extends: ['plugin:vue/recommended', 'eslint:recommended'], + + // add your custom rules here + //it is base on https://github.com/vuejs/eslint-config-vue + rules: { + "vue/max-attributes-per-line": [2, { + "singleline": 10, + "multiline": { + "max": 1, + "allowFirstLine": false + } + }], + "vue/name-property-casing": ["error", "PascalCase"], + 'accessor-pairs': 2, + 'arrow-spacing': [2, { + 'before': true, + 'after': true + }], + 'block-spacing': [2, 'always'], + 'brace-style': [2, '1tbs', { + 'allowSingleLine': true + }], + 'camelcase': [0, { + 'properties': 'always' + }], + 'comma-dangle': [2, 'never'], + 'comma-spacing': [2, { + 'before': false, + 'after': true + }], + 'comma-style': [2, 'last'], + 'constructor-super': 2, + 'curly': [2, 'multi-line'], + 'dot-location': [2, 'property'], + 'eol-last': 2, + 'eqeqeq': [2, 'allow-null'], + 'generator-star-spacing': [2, { + 'before': true, + 'after': true + }], + 'handle-callback-err': [2, '^(err|error)$'], + 'indent': [2, 2, { + 'SwitchCase': 1 + }], + 'jsx-quotes': [2, 'prefer-single'], + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true + }], + 'keyword-spacing': [2, { + 'before': true, + 'after': true + }], + 'new-cap': [2, { + 'newIsCap': true, + 'capIsNew': false + }], + 'new-parens': 2, + 'no-array-constructor': 2, + 'no-caller': 2, + 'no-console': 'off', + 'no-class-assign': 2, + 'no-cond-assign': 2, + 'no-const-assign': 2, + 'no-control-regex': 2, + 'no-delete-var': 2, + 'no-dupe-args': 2, + 'no-dupe-class-members': 2, + 'no-dupe-keys': 2, + 'no-duplicate-case': 2, + 'no-empty-character-class': 2, + 'no-empty-pattern': 2, + 'no-eval': 2, + 'no-ex-assign': 2, + 'no-extend-native': 2, + 'no-extra-bind': 2, + 'no-extra-boolean-cast': 2, + 'no-extra-parens': [2, 'functions'], + 'no-fallthrough': 2, + 'no-floating-decimal': 2, + 'no-func-assign': 2, + 'no-implied-eval': 2, + 'no-inner-declarations': [2, 'functions'], + 'no-invalid-regexp': 2, + 'no-irregular-whitespace': 2, + 'no-iterator': 2, + 'no-label-var': 2, + 'no-labels': [2, { + 'allowLoop': false, + 'allowSwitch': false + }], + 'no-lone-blocks': 2, + 'no-mixed-spaces-and-tabs': 2, + 'no-multi-spaces': 2, + 'no-multi-str': 2, + 'no-multiple-empty-lines': [2, { + 'max': 1 + }], + 'no-native-reassign': 2, + 'no-negated-in-lhs': 2, + 'no-new-object': 2, + 'no-new-require': 2, + 'no-new-symbol': 2, + 'no-new-wrappers': 2, + 'no-obj-calls': 2, + 'no-octal': 2, + 'no-octal-escape': 2, + 'no-path-concat': 2, + 'no-proto': 2, + 'no-redeclare': 2, + 'no-regex-spaces': 2, + 'no-return-assign': [2, 'except-parens'], + 'no-self-assign': 2, + 'no-self-compare': 2, + 'no-sequences': 2, + 'no-shadow-restricted-names': 2, + 'no-spaced-func': 2, + 'no-sparse-arrays': 2, + 'no-this-before-super': 2, + 'no-throw-literal': 2, + 'no-trailing-spaces': 2, + 'no-undef': 2, + 'no-undef-init': 2, + 'no-unexpected-multiline': 2, + 'no-unmodified-loop-condition': 2, + 'no-unneeded-ternary': [2, { + 'defaultAssignment': false + }], + 'no-unreachable': 2, + 'no-unsafe-finally': 2, + 'no-unused-vars': [2, { + 'vars': 'all', + 'args': 'none' + }], + 'no-useless-call': 2, + 'no-useless-computed-key': 2, + 'no-useless-constructor': 2, + 'no-useless-escape': 0, + 'no-whitespace-before-property': 2, + 'no-with': 2, + 'one-var': [2, { + 'initialized': 'never' + }], + 'operator-linebreak': [2, 'after', { + 'overrides': { + '?': 'before', + ':': 'before' + } + }], + 'padded-blocks': [2, 'never'], + 'quotes': [2, 'single', { + 'avoidEscape': true, + 'allowTemplateLiterals': true + }], + 'semi': [2, 'never'], + 'semi-spacing': [2, { + 'before': false, + 'after': true + }], + 'space-before-blocks': [2, 'always'], + 'space-before-function-paren': [2, 'never'], + 'space-in-parens': [2, 'never'], + 'space-infix-ops': 2, + 'space-unary-ops': [2, { + 'words': true, + 'nonwords': false + }], + 'spaced-comment': [2, 'always', { + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] + }], + 'template-curly-spacing': [2, 'never'], + 'use-isnan': 2, + 'valid-typeof': 2, + 'wrap-iife': [2, 'any'], + 'yield-star-spacing': [2, 'both'], + 'yoda': [2, 'never'], + 'prefer-const': 2, + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'object-curly-spacing': [2, 'always', { + objectsInObjects: false + }], + 'array-bracket-spacing': [2, 'never'] + } +} + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..78a0ead --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +.DS_Store +node_modules/ +dist/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +package-lock.json + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln diff --git a/.postcssrc.js b/.postcssrc.js new file mode 100644 index 0000000..eee3e92 --- /dev/null +++ b/.postcssrc.js @@ -0,0 +1,10 @@ +// https://github.com/michael-ciniawsky/postcss-load-config + +module.exports = { + "plugins": { + "postcss-import": {}, + "postcss-url": {}, + // to edit target browsers: use "browserslist" field in package.json + "autoprefixer": {} + } +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6151575 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017-present PanJiaChen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/build/build.js b/build/build.js new file mode 100644 index 0000000..8c6cebd --- /dev/null +++ b/build/build.js @@ -0,0 +1,45 @@ +'use strict' +require('./check-versions')() + +process.env.NODE_ENV = 'production' + +const ora = require('ora') +const rm = require('rimraf') +const path = require('path') +const chalk = require('chalk') +const webpack = require('webpack') +const config = require('../config') +const webpackConfig = require('./webpack.prod.conf') + +const spinner = ora('building for production...') +spinner.start() + +rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { + if (err) throw err + webpack(webpackConfig, (err, stats) => { + spinner.stop() + if (err) throw err + process.stdout.write( + stats.toString({ + colors: true, + modules: false, + children: false, + chunks: false, + chunkModules: false + }) + '\n\n' + ) + + if (stats.hasErrors()) { + console.log(chalk.red(' Build failed with errors.\n')) + process.exit(1) + } + + console.log(chalk.cyan(' Build complete.\n')) + console.log( + chalk.yellow( + ' Tip: built files are meant to be served over an HTTP server.\n' + + " Opening index.html over file:// won't work.\n" + ) + ) + }) +}) diff --git a/build/check-versions.js b/build/check-versions.js new file mode 100644 index 0000000..e697bfd --- /dev/null +++ b/build/check-versions.js @@ -0,0 +1,64 @@ +'use strict' +const chalk = require('chalk') +const semver = require('semver') +const packageConfig = require('../package.json') +const shell = require('shelljs') + +function exec(cmd) { + return require('child_process') + .execSync(cmd) + .toString() + .trim() +} + +const versionRequirements = [ + { + name: 'node', + currentVersion: semver.clean(process.version), + versionRequirement: packageConfig.engines.node + } +] + +// if (shell.which('npm')) { +// versionRequirements.push({ +// name: 'npm', +// currentVersion: exec('npm --version'), +// versionRequirement: packageConfig.engines.npm +// }) +// } + +module.exports = function() { + const warnings = [] + + for (let i = 0; i < versionRequirements.length; i++) { + const mod = versionRequirements[i] + + if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { + warnings.push( + mod.name + + ': ' + + chalk.red(mod.currentVersion) + + ' should be ' + + chalk.green(mod.versionRequirement) + ) + } + } + + if (warnings.length) { + console.log('') + console.log( + chalk.yellow( + 'To use this template, you must update following to modules:' + ) + ) + console.log() + + for (let i = 0; i < warnings.length; i++) { + const warning = warnings[i] + console.log(' ' + warning) + } + + console.log() + process.exit(1) + } +} diff --git a/build/logo.png b/build/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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 { + const notifier = require('node-notifier') + + return (severity, errors) => { + if (severity !== 'error') return + + const error = errors[0] + const filename = error.file && error.file.split('!').pop() + + notifier.notify({ + title: packageConfig.name, + message: severity + ': ' + error.name, + subtitle: filename || '', + icon: path.join(__dirname, 'logo.png') + }) + } +} diff --git a/build/vue-loader.conf.js b/build/vue-loader.conf.js new file mode 100644 index 0000000..5496c93 --- /dev/null +++ b/build/vue-loader.conf.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports = { + //You can set the vue-loader configuration by yourself. +} diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js new file mode 100644 index 0000000..d6df2e3 --- /dev/null +++ b/build/webpack.base.conf.js @@ -0,0 +1,111 @@ +'use strict' +const path = require('path') +const utils = require('./utils') +const config = require('../config') +const { VueLoaderPlugin } = require('vue-loader') +const vueLoaderConfig = require('./vue-loader.conf') + +function resolve(dir) { + return path.join(__dirname, '..', dir) +} + +const createLintingRule = () => ({ + test: /\.(js|vue)$/, + loader: 'eslint-loader', + enforce: 'pre', + include: [resolve('src'), resolve('test')], + options: { + formatter: require('eslint-friendly-formatter'), + emitWarning: !config.dev.showEslintErrorsInOverlay + } +}) + +module.exports = { + context: path.resolve(__dirname, '../'), + entry: { + app: './src/main.js' + }, + output: { + path: config.build.assetsRoot, + filename: '[name].js', + publicPath: + process.env.NODE_ENV === 'production' + ? config.build.assetsPublicPath + : config.dev.assetsPublicPath + }, + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + '@': resolve('src') + } + }, + module: { + rules: [ + ...(config.dev.useEslint ? [createLintingRule()] : []), + { + test: /\.vue$/, + loader: 'vue-loader', + options: vueLoaderConfig + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [ + resolve('src'), + resolve('test'), + resolve('node_modules/webpack-dev-server/client') + ] + }, + { + test: /\.svg$/, + loader: 'svg-sprite-loader', + include: [resolve('src/icons')], + options: { + symbolId: 'icon-[name]' + } + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: 'url-loader', + exclude: [resolve('src/icons')], + options: { + limit: 10000, + name: utils.assetsPath('img/[name].[hash:7].[ext]') + } + }, + { + test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('media/[name].[hash:7].[ext]') + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('fonts/[name].[hash:7].[ext]') + } + }, + { + test: /\.txt$/, + use: 'raw-loader' + } + ] + }, + plugins: [new VueLoaderPlugin()], + node: { + // prevent webpack from injecting useless setImmediate polyfill because Vue + // source contains it (although only uses it if it's native). + setImmediate: false, + // prevent webpack from injecting mocks to Node native modules + // that does not make sense for the client + dgram: 'empty', + fs: 'empty', + net: 'empty', + tls: 'empty', + child_process: 'empty' + } +} diff --git a/build/webpack.dev.conf.js b/build/webpack.dev.conf.js new file mode 100644 index 0000000..13525ee --- /dev/null +++ b/build/webpack.dev.conf.js @@ -0,0 +1,98 @@ +'use strict' +const path = require('path') +const utils = require('./utils') +const webpack = require('webpack') +const config = require('../config') +const merge = require('webpack-merge') +const baseWebpackConfig = require('./webpack.base.conf') +const HtmlWebpackPlugin = require('html-webpack-plugin') +const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') +const portfinder = require('portfinder') + +function resolve(dir) { + return path.join(__dirname, '..', dir) +} + +const HOST = process.env.HOST +const PORT = process.env.PORT && Number(process.env.PORT) + +const devWebpackConfig = merge(baseWebpackConfig, { + mode: 'development', + module: { + rules: utils.styleLoaders({ + sourceMap: config.dev.cssSourceMap, + usePostCSS: true + }) + }, + // cheap-module-eval-source-map is faster for development + devtool: config.dev.devtool, + + // these devServer options should be customized in /config/index.js + devServer: { + clientLogLevel: 'warning', + historyApiFallback: true, + hot: true, + compress: true, + host: HOST || config.dev.host, + port: PORT || config.dev.port, + open: config.dev.autoOpenBrowser, + overlay: config.dev.errorOverlay + ? { warnings: false, errors: true } + : false, + publicPath: config.dev.assetsPublicPath, + proxy: config.dev.proxyTable, + quiet: true, // necessary for FriendlyErrorsPlugin + watchOptions: { + poll: config.dev.poll + } + }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env': require('../config/dev.env') + }), + new webpack.HotModuleReplacementPlugin(), + // https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: 'index.html', + template: 'index.html', + inject: true, + favicon: resolve('favicon.ico'), + title: 'vue-element-admin', + templateParameters: { + BASE_URL: config.dev.assetsPublicPath + config.dev.assetsSubDirectory, + }, + }), + ] +}) + +module.exports = new Promise((resolve, reject) => { + portfinder.basePort = process.env.PORT || config.dev.port + portfinder.getPort((err, port) => { + if (err) { + reject(err) + } else { + // publish the new Port, necessary for e2e tests + process.env.PORT = port + // add port to devServer config + devWebpackConfig.devServer.port = port + + // Add FriendlyErrorsPlugin + devWebpackConfig.plugins.push( + new FriendlyErrorsPlugin({ + compilationSuccessInfo: { + messages: [ + `Your application is running here: http://${ + devWebpackConfig.devServer.host + }:${port}` + ] + }, + onErrors: config.dev.notifyOnErrors + ? utils.createNotifierCallback() + : undefined + }) + ) + + resolve(devWebpackConfig) + } + }) +}) diff --git a/build/webpack.prod.conf.js b/build/webpack.prod.conf.js new file mode 100644 index 0000000..4be56e7 --- /dev/null +++ b/build/webpack.prod.conf.js @@ -0,0 +1,181 @@ +'use strict' +const path = require('path') +const utils = require('./utils') +const webpack = require('webpack') +const config = require('../config') +const merge = require('webpack-merge') +const baseWebpackConfig = require('./webpack.base.conf') +const CopyWebpackPlugin = require('copy-webpack-plugin') +const HtmlWebpackPlugin = require('html-webpack-plugin') +const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin') +const MiniCssExtractPlugin = require('mini-css-extract-plugin') +const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin') +const UglifyJsPlugin = require('uglifyjs-webpack-plugin') + +function resolve(dir) { + return path.join(__dirname, '..', dir) +} + +const env = require('../config/prod.env') + +// For NamedChunksPlugin +const seen = new Set() +const nameLength = 4 + +const webpackConfig = merge(baseWebpackConfig, { + mode: 'production', + module: { + rules: utils.styleLoaders({ + sourceMap: config.build.productionSourceMap, + extract: true, + usePostCSS: true + }) + }, + devtool: config.build.productionSourceMap ? config.build.devtool : false, + output: { + path: config.build.assetsRoot, + filename: utils.assetsPath('js/[name].[chunkhash:8].js'), + chunkFilename: utils.assetsPath('js/[name].[chunkhash:8].js') + }, + plugins: [ + // http://vuejs.github.io/vue-loader/en/workflow/production.html + new webpack.DefinePlugin({ + 'process.env': env + }), + // extract css into its own file + new MiniCssExtractPlugin({ + filename: utils.assetsPath('css/[name].[contenthash:8].css'), + chunkFilename: utils.assetsPath('css/[name].[contenthash:8].css') + }), + // generate dist index.html with correct asset hash for caching. + // you can customize output by editing /index.html + // see https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: config.build.index, + template: 'index.html', + inject: true, + favicon: resolve('favicon.ico'), + title: 'vue-admin-template', + templateParameters: { + BASE_URL: config.build.assetsPublicPath + config.build.assetsSubDirectory, + }, + minify: { + removeComments: true, + collapseWhitespace: true, + removeAttributeQuotes: true + // more options: + // https://github.com/kangax/html-minifier#options-quick-reference + } + // default sort mode uses toposort which cannot handle cyclic deps + // in certain cases, and in webpack 4, chunk order in HTML doesn't + // matter anyway + }), + new ScriptExtHtmlWebpackPlugin({ + //`runtime` must same as runtimeChunk name. default is `runtime` + inline: /runtime\..*\.js$/ + }), + // keep chunk.id stable when chunk has no name + new webpack.NamedChunksPlugin(chunk => { + if (chunk.name) { + return chunk.name + } + const modules = Array.from(chunk.modulesIterable) + if (modules.length > 1) { + const hash = require('hash-sum') + const joinedHash = hash(modules.map(m => m.id).join('_')) + let len = nameLength + while (seen.has(joinedHash.substr(0, len))) len++ + seen.add(joinedHash.substr(0, len)) + return `chunk-${joinedHash.substr(0, len)}` + } else { + return modules[0].id + } + }), + // keep module.id stable when vender modules does not change + new webpack.HashedModuleIdsPlugin(), + // copy custom static assets + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.build.assetsSubDirectory, + ignore: ['.*'] + } + ]) + ], + optimization: { + splitChunks: { + chunks: 'all', + cacheGroups: { + libs: { + name: 'chunk-libs', + test: /[\\/]node_modules[\\/]/, + priority: 10, + chunks: 'initial' // 只打包初始时依赖的第三方 + }, + elementUI: { + name: 'chunk-elementUI', // 单独将 elementUI 拆包 + priority: 20, // 权重要大于 libs 和 app 不然会被打包进 libs 或者 app + test: /[\\/]node_modules[\\/]element-ui[\\/]/ + } + } + }, + runtimeChunk: 'single', + minimizer: [ + new UglifyJsPlugin({ + uglifyOptions: { + mangle: { + safari10: true + } + }, + sourceMap: config.build.productionSourceMap, + cache: true, + parallel: true + }), + // Compress extracted CSS. We are using this plugin so that possible + // duplicated CSS from different components can be deduped. + new OptimizeCSSAssetsPlugin() + ] + } +}) + +if (config.build.productionGzip) { + const CompressionWebpackPlugin = require('compression-webpack-plugin') + + webpackConfig.plugins.push( + new CompressionWebpackPlugin({ + asset: '[path].gz[query]', + algorithm: 'gzip', + test: new RegExp( + '\\.(' + config.build.productionGzipExtensions.join('|') + ')$' + ), + threshold: 10240, + minRatio: 0.8 + }) + ) +} + +if (config.build.generateAnalyzerReport || config.build.bundleAnalyzerReport) { + const BundleAnalyzerPlugin = require('webpack-bundle-analyzer') + .BundleAnalyzerPlugin + + if (config.build.bundleAnalyzerReport) { + webpackConfig.plugins.push( + new BundleAnalyzerPlugin({ + analyzerPort: 8080, + generateStatsFile: false + }) + ) + } + + if (config.build.generateAnalyzerReport) { + webpackConfig.plugins.push( + new BundleAnalyzerPlugin({ + analyzerMode: 'static', + reportFilename: 'bundle-report.html', + openAnalyzer: false + }) + ) + } +} + +module.exports = webpackConfig diff --git a/config/dev.env.js b/config/dev.env.js new file mode 100644 index 0000000..e3c8ffc --- /dev/null +++ b/config/dev.env.js @@ -0,0 +1,8 @@ +'use strict' +const merge = require('webpack-merge') +const prodEnv = require('./prod.env') + +module.exports = merge(prodEnv, { + NODE_ENV: '"development"', + BASE_API: '"https://easy-mock.com/mock/5950a2419adc231f356a6636/vue-admin"', +}) diff --git a/config/index.js b/config/index.js new file mode 100644 index 0000000..1cc4240 --- /dev/null +++ b/config/index.js @@ -0,0 +1,91 @@ +'use strict' +// Template version: 1.2.6 +// see http://vuejs-templates.github.io/webpack for documentation. + +const path = require('path') +const os = require('os') + +const networkInterfaces = os.networkInterfaces() + +// const ip = networkInterfaces['WLAN'][1] ? networkInterfaces['WLAN'][1].address : networkInterfaces['WLAN'][0].address +const ip = '127.0.0.1' +module.exports = { + dev: { + // Paths + assetsSubDirectory: 'static', + assetsPublicPath: '/', + proxyTable: {}, + + // Various Dev Server settings + host: ip, // can be overwritten by process.env.HOST + port: 1997, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + autoOpenBrowser: true, + errorOverlay: true, + notifyOnErrors: false, + poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- + + // Use Eslint Loader? + // If true, your code will be linted during bundling and + // linting errors and warnings will be shown in the console. + useEslint: true, + // If true, eslint errors and warnings will also be shown in the error overlay + // in the browser. + showEslintErrorsInOverlay: false, + + /** + * Source Maps + */ + + // https://webpack.js.org/configuration/devtool/#development + devtool: 'cheap-source-map', + + // CSS Sourcemaps off by default because relative paths are "buggy" + // with this option, according to the CSS-Loader README + // (https://github.com/webpack/css-loader#sourcemaps) + // In our experience, they generally work as expected, + // just be aware of this issue when enabling this option. + cssSourceMap: false + }, + + build: { + // Template for index.html + index: path.resolve(__dirname, '../dist/index.html'), + + // Paths + assetsRoot: path.resolve(__dirname, '../dist'), + assetsSubDirectory: 'static', + + /** + * You can set by youself according to actual condition + * You will need to set this if you plan to deploy your site under a sub path, + * for example GitHub pages. If you plan to deploy your site to https://foo.github.io/bar/, + * then assetsPublicPath should be set to "/bar/". + * In most cases please use '/' !!! + */ + assetsPublicPath: '/', + + /** + * Source Maps + */ + + productionSourceMap: false, + // https://webpack.js.org/configuration/devtool/#production + devtool: 'source-map', + + // Gzip off by default as many popular static hosts such as + // Surge or Netlify already gzip all static assets for you. + // Before setting to `true`, make sure to: + // npm install --save-dev compression-webpack-plugin + productionGzip: false, + productionGzipExtensions: ['js', 'css'], + + // Run the build command with an extra argument to + // View the bundle analyzer report after build finishes: + // `npm run build --report` + // Set to `true` or `false` to always turn it on or off + bundleAnalyzerReport: process.env.npm_config_report || false, + + // `npm run build:prod --generate_report` + generateAnalyzerReport: process.env.npm_config_generate_report || false + } +} diff --git a/config/prod.env.js b/config/prod.env.js new file mode 100644 index 0000000..836ec67 --- /dev/null +++ b/config/prod.env.js @@ -0,0 +1,5 @@ +'use strict' +module.exports = { + NODE_ENV: '"production"', + BASE_API: '"https://easy-mock.com/mock/5950a2419adc231f356a6636/vue-admin"', +} diff --git a/debug.log b/debug.log new file mode 100644 index 0000000..4faf227 --- /dev/null +++ b/debug.log @@ -0,0 +1,5 @@ +[0301/083149.303:ERROR:http_transport_win.cc(273)] WinHttpSendRequest: ɹɡ (0x0) +[0515/102246.688:ERROR:http_transport_win.cc(276)] WinHttpSendRequest: ɹɡ (0x0) +[0531/081503.881:ERROR:http_transport_win.cc(276)] WinHttpSendRequest: ɹɡ (0x0) +[0605/094355.406:ERROR:http_transport_win.cc(276)] WinHttpSendRequest: ɹɡ (0x0) +[0710/121232.515:ERROR:http_transport_win.cc(276)] WinHttpSendRequest: ɹɡ (0x0) diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..feff6b11ba1fc16e9e5b94f3c0dcdd02d25a9bc5 GIT binary patch literal 2183 zcmb7GdsGu=7LNx6HZ%xb1s^=d(28*(A%s8@NC6W9!3GtA;)0Ku3?YSN#$-aG#fsP} z)q+?AL@n$#5)TR}$Rj)yO-~QhBIVHn#|>vkq2pQeV`GKBkLvV1bXb9e#v;*B0-_SgK}?7U+6@9+ zsXz=yfdbLqJwJef7>vbg2|pHz<$cT$LQDZ30-390aIDs+Z84>L0|@nq*AGfDhd&ji%DcUolf%hA^G@tp$IR< zUKt`#d&v~;^9pQGA(TsCL;}eGv!Y-(q(qo_G}1R)kiu_eWs12pp$Q|Y1u%(B^fqs4 z9?0YUf2dUY7Og;{z<2Tfp|FC#7Y0dDpaN3Lh3LU0xSL(U43-=eAds97LCN!3+>{6* zkRlO+0Tv5byHz3+K`I4d7S7`_xH1JIkO@I9n~6sSh!Tm2LG|PKQ@rURJ~Z}vGC9g;CFJP%cRUMI1RK1!i~5kSrVv zZ9%;`u4v&{=nHa5XfP!6x&F^N&zsQVF;CxCExLGH_n-_db~#$r*2bW3Fc`}jE<1#; zzWaO6#z^UbN&RJD+tkw)vK$rn^!%X%#cQ$5obBz!82kwV|l;s^g3cyY}@b<@~6BX<>=) z>44x2LY1Mt=mG6wcHw5ao=5rVs%x+)>7QS%J7%?nz|$OtB~kujMn7n?8Nk79>*5*O zAu{u~P+iZNfF&KHdoiOsopQ(Z6J>-`KjmzBWSbw?FjW}ALINblLjHbi^QAp5e$M3H zENrpqYy8^!r9@@C-Yv5))aOJ5**f*O&FJ^8U+#k!{NH_ zbi3i=@@-dM4%ZI`Ype2dwgljb#vsSDPDRtd=7Djw!EVP)SB|q?(G^rgU-D_o+z>ROth`W?aO*6^~Rsf+z{uZ&f zO*VvT?xU=_>UhuFNvi7?MzSO$R_VCBhMGG12ea6jcIyk9RJPa!z93VLa`t>%^pElMGj2y@%rnDH+ zZHu(`FX(R#dlrA6;d)K%JmTt9C1}wrSKoYw9j!Mt5(m$@g*~q$^hr9XRHJ6C!!&$m zGJElo&c+qj{VM$q9ro7*pMH@s@Umkj;Mp(MeV=@M;~e$QvGn?>#ua`Z%%{IZeB|YL zjK|5Y&^c45QnCZjKY@3eT#mYZcDS^xG{@24vg{^(d|+AY&l^1~3K9yOY_0j+l0WGR t=5{gLDCRrJUu-IhKk7r5SIxLz$1F;V?+}bwHk*G9xS^5k^7XsY{|nI$Zt(yB literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..a2972df --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + PLCS信息管理系统 + + + + + + + + + +
+ + + + diff --git a/m.zip b/m.zip new file mode 100644 index 0000000000000000000000000000000000000000..197fb93d7bce7d9af93df01e7efd2b5aa9292f44 GIT binary patch literal 11466189 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%0DKh<`1 zL?h;mBEQh~I*&hABAq>fhEj}y#jmxZ3csT7u^p_(ZW^<3{<4cs8m-dZ z)Wcg@DGCxG`j zh&8X|@xGM1H}NjJs1fh$*CR(6AI1))dE>ZqiCgV?Eon9U?wF(YqT1+S$y<*iQ;e6` zBOmErioYuJ7jeOcw>Cw+7%x>v@F4Oy2}u-gjQvLnhvlBRg(hGJYA3bE*f#4XZL+fUiv)U^vKCuYp9cPQrlsL*CRaT=m8=#*(Kypp)3I zl-?Z>m0@RkG$rUPzOmA&PCZksvFa&JeP@g@`F#iEE!w=m=c0#s`kzATw6P2J{SU0? zP*~CUk|BIUJq-6j^{vCAO!qqVzoMliiBa5Khl3gJd-(Zx=J2Cp_#KBdaOD(;XLek% z;7y6W+?s|o@J1{74~DO(6Q$g8<90QPYj^gdwN!Gm2iA~hu{U-8e7W2mP(%EM6Ri42 zW_xYG1>qC9bt^adVV?C?ibDbW#Ap=RR~mBm}|lmDl!=$k;1E*fxP*+jO#Tgr8X_lOR%+V15#;%w$67BZWn z@6~_<1B$zOG71bG3eq+UDnlfYuWJLtL2`kjhI~93S>0Qmaqi39-#MZ=7y#E$ocwYM zF(s~4B^(#rkI$=e{$a|bS*X<`27v?L9IK(|7b%|MafAAad@Xr*j zN&AEaBZUdW@t_a_ZrM*Qjx0TePavhH8fXc=TQ*Ge4an-xU9bWnCnUJ27gS)PqMYkik^M8W0K zj?pNUPk*AzDwqgmRH?lECRkvfRk@_LORUqnr#)_$+DLII%aebcrS^iz6S*j?MJHDS zXr?)?SZowcxZwtTBE+`^7HVXUFlD!K&)YSWDu_F0u8XoLHFeB)s1ki$R)V&NwSJq; z1uH~hkyv{+9r+gRMkeA5`t2?K<}UgX@k|8khIH?_)(9Q}!NnzHRdcLbRSs*X+j*7! zR_^??C1Wi=g#f&k1Kjl}mqIlJr++cZ-Q?yUfR=qzujOtrrAf>l zR=T13G}d?EbPN43{eTRThSM}FI_6F@@63HH<`ocZ3~uIBN|u(5YN`Ow0g70{WOX4` zyX6_$i6yXnR#5b$Ry2Vrf8?Q8E(#Sne}sp(nq$TK{OCv9j8P^_cK!%zOHyOdSCYij zIqOlZ8~0QDx`G?K^}Vv8AI5n-Zj)QfA!}}VYgeE={HpoAq$j)eozf?bpZOyso4md* zv!eo{qSrB_@_N=%=riCk&7AP+u893j*ucK=-VqONh;Z=blwL`D3^V7rM7-z&TImPU&l79XzZh5S560`42 z`uSSy{ilLN%)UG+`{DQUi|5Iw4nRKZHB|a%9`cwfKw(xceZBl~k^gP+Uk$A%cjZ}e zfb}iEHzCR3sd)LZ!b{A)JIUa!nD*S!A9|)d}v++jAKmMrrDy5dxESW`)h}Fljs+p{+<@T82yu>=9woV}#Cj8{9fIaY(>!6n|M}T3(EwX9e6@u@0l(|?aO0j==R+T{-lxY; z94NQ@b(5{ND4l^%#NLnFFMPA4KWB$ixy97-o)0p6UmAZs|E2r%8qoWE#}<51`wU&} z^#{5(>xZdm%j+%Orz<(J$2hS+FQb01I~ULQYQe9q!H=WAdgJiEJ-^nzp04!%Is5fz zt@rgs?B8~w4Y9}R?hDhGak95NvFCBNi?`QD)8}oq*PrNjzn+Vu?%%G1A8kH)_qx7u z+y9b2TdN4dZ@wtLF9X#VwjdMNgEHXBUh^!9Ai`*+o)sK!+Gtd{gF$JW%PD5yK; z{*LzN%K!OruvYQHYTujmQ!M6ZzT6pG(Y;zR@6Wd!)0aK6zpEE7gKuMEf0JHzd*9&S zhQuDD-WJ7PX4jK0&tLe+dS1?-davc)PEB79UmrhhLl=C#?)To;K3Bc{?0tpq1bbWV zeYtq&UO?i?`*s%ah(0pV!e} z&uY-;+xsN;#`bpdc7OQxWcp0@b|~j}FU0Zu28=T8@(J4bdUE)*Jo`}1cCKeC+xUqF zZuOEnijGHkBmeaF(lVml$d@syT-Vn=s$A9gIHKI#H#@vs#@9fWU~KKO30-Ye4yyql zS%d*eN>@q^z1#9=wNMYG+xtI6)U{K!|%SW}az*YlLVQ!=SHoWCYVrjl>3Bjm!PgN+1vHJ7=lv+b9s z;fDsk-=hw_ea|Bg&3#ED4i(ZCx)5e3FT2oYJ1+x~W=(wW$<+D}$^9`hifzn!x@@;) z(Ai{tW1=#(eK`h|SiANHl_vTL%?i)d_sxpRl=0P%%5?Hw zjmq5Jt^eze#s*zpHQ>P9rMRtwR%`G3>D{M2$sTZ96%%6XVz5tMB6IixUEfTt<8`K49ZX^tMDO2x1`LI}Xa)=!yRx=fNH*QKS;%A}@dphVx^#-iF1>wEUad@geTgFY z_`0SC;O~O4H@&x=$Trco&j6cUm)>YDnU}$!q{6QN5Eh6Ngal#){iKo*wkF5>1Rcbh z2dFVe0O9H#)7bLls-uC3^_(D{A;P5oLLgB+D@bJMZ*&6bRtN;E9v9>=#2f8|xkk|< zclsHES&t1O1=$Rp2lR-*Wl{fzPSk!&ZnDi~c+Y^y0LwtKpShOoo_w8*q!H^!pb4vq ztBI-!qlvAFtVyH^uZgdTu1U6lv4F4uSopYr^99)s&F;M&0V=45!in6848_>)ZA>~- zSYEUQxrE6Qu>nOtq*`*Bf+!g~IW<`;S!Il13~!IwlE@v+{gs217M~)MJd;9?RJm5J z%OBO9#2v;R+a1}R$Q|At-<|9l;~J;oslaFqc}!`HY3xK!_zzV|5c=c0M})_Zt6_nD z3EaJo$w4=YP~>dFPCI>EOsVxnamD0sN+s^6^+3rHfp3W9zY2y5kk}hh-nNs_!C$YNE3t;w1nCs;sTNaGAWm$X~=0zY40Xb?N1pWjY=As8kY)$zF_yd$(DvLmD;q9d#$%0GJGx0-r4eZ?y=?9#7U#?Q1;Tt%w} zHz6oX%(koa9ir$pC^a8ykZRy+-q#@3z}BGFz|=ed)R!aYWYzlbm28P@MVp>PUFL9) z7(Gck-isiLz=~kYY}n*4oFmUM&3(1i?m+B@?S|>bkNA~DO5aR&eQ`L4Kj$;2HYalQ zYJp(b+n;PU#-2uxEQUt)*q2I30MG{r0Q>;3fML1hE{))H?p_pbzkkoZQR051)5YW; z8qnN^$o;5@(!kEhUdc`j@B*j+SOCTV5daK83P1(eMbKamQWgOq0~`QE03pCAoo+~^ zFC`@&INC7U26I;KHk5M5YbYnW72|?@Q>H8G&%3K_>?O0vKUh~hJ48c1(HEG#$R!!_H7P%(7o&_n2J@49 z#b2V^l(5Phn=7(gfsvGXvaJ>Sln0dixy`LjXr|dNA zbAmd~I%c3gPypx$lmVhu3s%Eb(^jKZvsPnPZ@{pDHXdA|KDg@m>d5L4N2Jvc4Y-z7 zV}fJLDQA>xa^9a$aaM5~)}qDSrI$YyC^Yavup9|mkPO3|`c(UP&CAI=vDQMJ2EEPr z%=oBe6^Ojyz0vRA-6Pz8yvJ!l4uA_l3wR&!NDhVwK}a3Ryx%=V=7#5n=0@g*7!kKi zb2sP6&d9PR84trwbPyu`h-GHR3Moj z{v*M)(w^Q}ZOSi-Ub)xL&zO(c*QD1rdoVa4`Z0QX`U-kms4G#vC|R;!nj%3GE`k`z z4=0vBO`X12U7|2HG)$5t0uE|oG@$oX2NbXe=6*7dANUB1A0dE5gyT(rs=+V)85bRv zEP@MZC3=uj?hh`^Fn{bf_|#IcEJs*TL{S0=ZCE%q0zS7CC{Z6<6b3pAv1Q=Za4dw# z))Vy`jX<4_o*G6)ZIW&YJ8;7+u|hZ^I6*iUQJsY)B2!2-*rnWx1ZfTbWqs6^{uZuD zKm%WDFyv=fyeRQ4P7}RUR1qdE68+~S%oC@~xQt!o!gEL%1B-@1VUvVi)WZ8xY(-H; z{4{6!QS}V<3=LiNWwNbwcjA5O35GN-dPAuHfwjm;wmsCHM{;}-YO7qAZI8P~*hif3 zNW+KDf|)?wl#idUe@mn?JkjTC^b`b2$;iq`$jHb9{O>ULgG+3bTKwFY%j&17#DO%dqo_>EuF!@ z8E+K(OW%c8KD=wxyKrgGA7PQiQgF58M8i|c$FI-Nn`;!#!Z^Ut z&oKC{@7sXe*5cOUHuo0yb`xcX2D~c1s@Ml&)b04K_-*AaF)s*VWsRjaqQOem;l>jM&V_k08~@2e4~kIk*c6OExrhp*!-)KMBJz7kf2VTX9_^+h z-uq19NRlnSEC?)zWp5OMxK73y&FBxBjxc(?!~i$+2)XR@P3*qn>1TA+lHIXb`u@Hz%O8{ z#{kQK(ZC@5j*}AJ^g|7`0j+^uQ-kd)`rJy`wT^66q%KJftpQ0>2l~05!{=p;8cYL= zCR$sSdH4D3!e()Yh-JbWR0G4Nds~t@!6Gl&lTh8y%cxF>POwh6PN--6KV#rktDTCz zN~}o=#d)Kh3IBv`QnJmQ|6XubU@X=7N}kYcXzMe7UMM0S5Pgqu#_-_ODZC}BCF!2v4Ebm6#HZi~XyEJAgOW!CMrHHU!+{^*=-Yos zKD~zOk7w`Bhy*!2sXZ+{aXh&_Jv~u8caEs%6l9y)Pz3P=SK-;er^=N_t0I2o6x8t~ z_Ow4*oVP3ZAz7X9uD}$hiC*BeBynbP0@VnoFhMwL>r}F{@ z9@2-m1@m5ko-;>AbL~YQQhKs_GJ0|=;(UqDSQ|JUNuOOke;irQHP1~KITRa;w?;c7 zZg6(sdO92}&pQ>Y$+m_$<8P351bMX@K1rAO&5zv-{x{KWt+Fm* zn`qr4{&Kgfm|+))eJjXworPplrjn)-rc$PIVu`_&A8tzL_~vJ&!$pZ+i2wTCPNIWs zdLx5jUTFV1-3lG~%wH6WNq-`yc-F-naEW^*eS!IVsHbotCl+L) zd;OpE^be$$C$-P7s9^v&BsfAiK{y2zWt0U>Q4aja)~b|4icBXkmA>fb`eJncr3m5S#N4x+ZQT4e~@9qWA#LIfTu8 zhc0hjbI{oUn*p2bvF6m~)D|UXC7=>>OEa8N`jC_u4Z>m+Sv*;pcty^eYzqc}hd30>L7*=q z)L}6Z3V7H=sl>E?%1Gceb_NU0{*qV))Ko!QROM_i)EL>Tm~9G|-Q})7o^xnLbJ64X z07dMd%_vhm)yFi72q6`XRz&$P7=@hx#5rOa8bcJqaR_E+*9SEWSSF0arLxe{DGMvl zfQ{JOdqw)VBfo`zi~kn-E%saFx5RHDcEmqEmMJJ}fwRG79Mfj@=GnuGBiu=L?|)F1 z(I`)Xb=hk`2BS?OcGy4g%AAyiz}_5Z=08V0KmW$~fmvpuOb6}&i!%FxXE=<_I)*$W zeiQy6DT7x|0{esig7c`rhuv$a&M4nM=tWfZFKrXL?z*O89&(}b!L0Zv3mX$TlR9&N zf_1kAT^(GBTytCvT{~T$T;W~iTt{8YU2R+sUGZHrUG-e~Tw7gzTpwJ~U6WkZT)W9C z3eREBah=~iMCzk(A#xFL!E)hpp>mOM!8Gz)k0Y?!gEB^#!?Ggu@wkW@iLL#nkifVc zRc5-wQ~lME`Xr5T)+$p5;AV~!v*qFHD1EZV_tsKVvfu=c9O+z5{6+$6k10Gb3x}b3 z%ZOv#s;DG5kNt-IhC|50yZ`j>=j<70uo8F@b3;4fUAf@F$Um{iH`l4x5wa=L8PfB3 z(0OQHQ2tMhLmLXvW(vlE+Y~mKjzi7d8I(679M&G;cV6FQw>i|6;0J$$d0;VRJaq_W zV>bo$^an;gzQ3V5pqmnzngyG(qqFy#Q&<#Qqzq9e$iT%hTJz920-z{ zAL9t{Jecu-%=JKv`u?5hh@@eHIOGft=F(_=q9ky$0<#vdtbWRjKqZg)48hWHs3F`+ zz#u|rc%i=`(u!o#JG|vgCVmYw1Dm-VbJsg^pLmic!-1I(9dhO#wJ-YN7ioRh1#cf? zWO{u1b!b@5z(l-l8$opgaG#RdnV^bMw|R7-R)?u*&%5r}oF^XGj$K^_YzI!)8<;f@ z*+(qFRk7#>RHFe&>UHaMsleYunq#~OPmH9OSj>zEI^w-x9pFz0m%XZqfUR}spp8-g z@H@Z>;<8rt211X}sDH#A+zHFFQ1t_5^h0no_OeYi8_={KtuDsA*sK^-Y+h_(VV2rQ z8>51hgTjl)E8uty!Kt@1`!Q4&p+b~{#v9}aH;>ec$-BEEfAf+FMZ@$rod4S?Tu0p1 zzqIs6BKyJ=irOa{=YnaR99Ui@M_q_x-Kxy3uZT|LSEx-F?I}qBvP_A z#+{+8!L}$lu0WjYHb9*L%r5Jsbt0gEf#o>JbSA=1pjau9_dNTY>VWF7>L6>P@rO>! za4+6^B?}w#%mna^!0EMEU7k;R^y#UY-spEsxBNAT7v+%$dgps@i_JSwiUuL67cxIIKeX@}IS<`HeFEHTHod; z7QHc_7oXr${XY%8hIdDGC%q6nA>Zqr!koJB54k40s#DrFM~0EUuioXSc9q{r_TQ>Q zwqpXOGvwY8-_SePh<9fgNh+ff+w24&LIKPHKFhKN4j zKK+wg2V3DL%VOY#;i|Akr~R(NJNAW$1WUrfz1Jyodsv)#sITVaGY zLB50gUw;&2|0`+pr1jd^|P7bPu5;hOCCr_!#Z)6CCD6%7jM7F&g{Mo-aKW zJprD3ShY@V1MSGQt<|ly1p2>x&`n4((aP}42-{{C{&*9{`2O_?>(h%*xSyVX!X62J z7x*r;_IqtmZ9r{w@{znJZR20fFHA$qT4z>!*50nB{h9c~_s8`Q+aLQsRDVSO{QBeb z=k8C>pSOSV{}^BMUE^FUU$b4?UsGL+UQ68b-Q(P|-BS%$yk%|-K!%?cZwsvW&EcIt zCOBnXjW}fypspfX3~yEx$u^E!WphT$a8Jie-w?|GEaGM!E6 zBZJXb@%8R^&Q5EK(RC+FSj;OuUf<9D-q8$-`@#UZr`|yy9>8L5>GmS_-?}2yUGBJv zJVW1M$(MW8gF(m|+7ppJqUkgzHqeN_3@6a_o}Uykr5FC zxJl@oY(|204s>46lEgVNjiL$U9=0L}nykMMaI8-a)UnnT)!EhU*HIF-N%-3n&FBPG zs!Q5jeq_s;Bcq2l1={1yi2PJFGOVj{K3Ws;gcBL{)HT#`el}ijXmbxepq)Yc`PRtS zsH_fy@XF+U7J~vq@9XlvXR%JPu(6b|s9y-Yz{0*s5vPr-qZ{3zN+p1pY zP+Mt;Ax$l_6USmh-Nk3BRl!cj$b}cR6i&*EdUcMU7uIV!j=nDtz9V=?SBukSa#3>g zIDm>ynHyS@p9h-n^`D9Vb$UFl*wrdtbZNcf10*7nRV&20`d<}m3}yr4%{ju|0n@oa zm^okg5TGV&Hr(7k+>xaQF&k};i84=k9QgjBt@RUHq3(12Tqugid%w9*vXe51e z&>g?8q}qM>M|l8SlA>$A`y+;Xu7eV)qNE28Giw<1L$5jB8-!Q!+mhPqkGsIP6xm|+ z=u1@$f~#0jP`$wTK3qW2K5m-1RK_5tO2QTm^_^7}(jeOqK?X;)`G6`WTYHqT#!+!0 z&g1pbhgA7g_4$-49NVkhm6kKAJ)Uu;N8IFH}A1g}6exqMvSbF=QavOYpr|D$T*&Exd(W}un+B@3E-K!7_g2XX1 z$b`tsB}R%-$nq*#K>G?}HJLizce88&8_?3oU)GHr5kSl z>K#j_XD3z{&Z{!5Mzs@+uC!O5v>WA5-gL>oqSO8=?VPmk8qNi1&bdxqrwTs?e9O8H zTc_>v4Tk}~We2IeOdz6Ua#Lb7MS-us{Fht)$$Y4sc$8K<(jle(4`%dFF+t<>S_ug4 z)yh!_BVy`@qQ*65f5;%hQ{o4V<$OpZqET`KjOBNJCju*#04lOOqltW!r~%G7LF!?A zOh2Je7J#-^He60I1A@V{0aei)hg+mVD3lDKgIbkReXL9ePzQ}l#lB^R09N6g%^--j z(lDStYZC%tQ*uJh&HfyyY9T#>5^ASaq*{oN zxP_)_^&=+3wWySi0PZqkynip)rYEfiiXR&X=+@}&}3rS&~pyyLY0kvW&=)4gY ziG3xp`bTC__258>IJG5vYk=EXMh6f#Z%!R{-&>^Vo5)k~-i>%Uf=b z3GorStl_P^M}xS6N@&jKo(GSARKkQdYs%$BN>e28Qd+w8!&&0gtvrf0wbGjqGF<|US`R2ec8%>3*Fu# z$X2W_L$R7(UCKY+7jc?*N}P zm-D`6o}%}Y0ZengCY=5Yu>Vh`*!=M4_kZI|sMWF#ybm{&TL;ij8qKmdf?J}{W6f_; zH-uX~P?*N!lhv{67wW0;-y?=aMXoLdzrdAIJ1_r;J?l0T8$qin=)B;)uStv zZC!5~+Q@rY%GE$i!}TumOBhbx(Bk?Wx0Z;n(j8Fb9OjBidqtkU*aGzPL3dcVG)!_D zrM;p~F}67RMWI(LbQ%&l)LHi|_mQXQsaUE3%re?pU0Ge(Oj(7aTBGBmyrY$)E~BTT z*rVa2{iFOgBK&9u=mvNOGzMq}#0EG9R0fy^Wb-)7_(MTf?~&QUqZp$`Hndf5stBui zswk?2tI(^MsyM39s{WdP+3=Tf5a;`(Y_`#jQQ}eU(TPzcS52JvGw+w)6b%?n&zrED z@S9$u_&}T{%%za!P>JuqrLVFGvSYHaR2aIa+eEGP3fB za3#D15mr2%)PgDv+uZT@h|uuh@TmU3NuE^4?|Jaf52$RjOigXG2vNPwf^l|kkcUR9=cCE)j@VQ zNnAuW`C^iB^3|kyL6@d-R$flx2aaF^(rRiu^vUporbeYGRCfamJJm^pf@;l!9IG5F zUuRRAtnF;U4@2^fLG$F*!gdj4eADxk)iicKlhFm}1>*hnS)5s%Ih?t)GUCw<;od|S zul8*xkp(*%Be^D0O+nri?s)E~kxpc$Ga~zVlW7IDn#W%&ypFP+a-6cAa+l?o-Y?1c z{%DA~#k%0x*PgU47-=DI=hQUKZGP_?af^R}wl6=4HmPpfXpYYRfuE7zg8vo2xlQMo zLRNN8+y{nWIm#$pN_~D8o6RwnEX@zOL2{@*3wShmXi?ady8Qb#Rb#tZW3suZ{tO|( zAyIO4QO_tjDP{P-^2^yojwNUD$bzH0DWmWxf0511cN0btr_!eqrJkn2Z@`qhGw;Tw zTAIhD=$`Hm4!~JuZ69sFsiQqGK91P1+H{Xb=B7yT1zO<`iKWW&E88TF@sF0|=*u9Z zt%!#NQ;qq3Y*K9uZ02n)$EdURvW4HfhHO6{VoIgrueJF-x|r+rflulzavPn4kORGx z+~8%EmJMR8KSx(uSw>mDI6#l2l+wVxiqfWfly|Ihw9=G1(h#lcYn7ah>S$_iwY2@& z_~SHwski}VRkTgUDCub8XyRCOHjTWYtZ1+Y#u59xaMhU&*%)WGv7DjIg4C}N540ov zdE+V{n*|$D8y}mP(abDyc_05v>?85{P%^SDkMEbciG1@(WTIQqL29@eLLx8Sblf1j z@KMFw`1fxk)bMF&XwWjSMey82cF#vEMk~ggM=7#4a`-;<$o~syql?(P3GOwN1{C>4W(ctR#5oHly%JPxA`tcjR>4mrLdFAew>0z!9hBwK1 z(eBh}aqf&~1iv3@`1;PfTgj)Jsi&Kyn3m>SNk5!NrlI2p*wa1oTJkD&w|dk*cjo=4 zAIn%xJl@3TdAmcSX{eUDpTd?Yn`pd!&hd9?#&AY`(tYHPpKE^ywCR{Jn-y`#b8B-? zaPx5^xm~$&xFfigxdoC%RM4zQtnjR8tkA58t#D8i;W4eqtO)YZCqm{z_u8o2&q2{< zYG%VAPP3n8PG(M^-zM{)euHSuXh9g9vzkr@pr!z=@2Y=%?LG|TIN?m_MGyarqJr6{^6nkd09tY5f>fu$XSW*^Nyf@aKS zKq$HxRBKiXx-v^E=a}`K#Xo%JKvsk4gS8MU9w6>79xNW(^t~ylDWu82DYz-n_q%Tp zO{+vMR~AoNXC47_CSBjbUv_quuHZ3ajYzR zMXDw2+s=Pdpxo1rBx-o&)9J}W@zYuDYB7IHzW+C(C+l;c-L&0>-K#OWtmB-25&xh^ z@&~{z-#OVX*O+N`i=1EJ>%VTgilQ{{P!@{@QdMB!??rGhlz$MhcSlnhiQkO zsr|L1e3!wOj)U{;mayKfRq* zPZG~h-ni%Bf1)$?bTd-+IMVX<{@{N?wERHL|92yEBWa^xBYq>N7;z^0NXSkrRjcco z*Pjs6O5@1Ys5RA9)wQ8jj%LOdV4GpbLhC~NLYru-XuD_=W7i)}@^Eq`@_zDe?nrQQ zt40@h7zn$AA4R1g$+vmfLBMW}4vn7C*79%=9;&qu9&Xxy( zw8r)a{Ac42@gLo5#cRN|?KQ=<{^0N1fS(~h(vAL21EuWGl68pA*_MDmf( zBWW>>xJkK5c@nwxxT8TO=IQN1QO=|r)ZJc@IOJqJoFJoaUc``v_J)Zt2L>naC_L1+%Kk+PszP4TmoltDx zFh6JJK@GCwMs!*$7 zB-bT-CSNBSF0GqC6uM}RE$-`RpgVSc{0pII^3f7 zo==eEQK{6TnqrHad3W-+o@-v9^F8Au{BI5h$!G-_98b379sudJmjvh&BT20s2OE<0 zlP`GAc&I>v-44-nL`Xa=3KQJYvueYh9p8Sb|Jplk9Ds{N5k zdt+q1zt_coGT-kgeiXw(xm(uq&6@B*;F@*l*f#5nRA-PKr(Xl3fc3ujn<8>&W>b`x1u+2Q31d zRF{1p$X{Ut8tcx92o4L5=)#Hskn*wX0ZS@o%__RqzazdQejtJnk(Sg0FA`Z3ZP}5) z?eameK8jJpC2l3SB}G7i3OmqLTTz5A0UI$J4jUC4CL0+WK{25o z7)7cKl^cMn+w3By@Qcy($V$*lm`X@W;(^xXoMxq9M>FHLhH!VZ1JY@l5+7h1Z~=H# zL2Gtoegqb8_l~^4JrJJ8DMwjDtW}6DsOw-iJ6U0C4mO|g>*KGc0P}TNMGq0BkqA;b)XW}M2%EWfGPiCA z4N({p8oo57FeF)EtofAVzx2^suZb)TDUEhSUl6Imb4Z)@C>N-xE(P3tdAc#sX!h3Zt@&HfTX4P^Sr4awMz}H2FMbcNL#5e-iiwJ1^N$@r{f&u#33|{R zsvM?sz3ekO44I88PcwVh;S{|@^y@`Buc;D03njIj67b=2}M{OWf<-EH-+R@hD*4@_D z*45V0*7IM?2Oo9fKZM6xdC!~HwR_0e5z8veM!_n12TycvIGCvCRWt=PQfT`#`zo+~ zthFK>jMsw^tx9buWFUn9nRRd!T-NI!Zxmi@5W@e46I%RjLAd$%tG{0nLjNYm zV#O-LvcuZPqQpwYGQgV062bDuQh7ldAn_ct?Jxfbvmmnovk)_XvtY9*vk0?LvzXQI zt3Ob{xb){X#a6}6J*Ho*YP@RLYCP#W=@22r=l)e_2OviKSw6iQQ+hv2+_Wb|A*B1c zXicZ5&|e!TA79Nl-5aHNniINkrd-`z-(2JG?CY@&ns}8@q2`*NC{*e^zgpF08#6(e zFON1XWc-=*GpTdp=S1h|HR>K=e^=}s{$a0l93e7i&NZWM{SN(}In>ZZSCSpdVfS<@ zq1w+*8;foA5y&uPFfz)O&KlF2%$i{5&9KBULwb*p`sd7bu@0~3v*$Zg%A{Rqq&qaj znCUS>m_o465*uIJWIJWMW!soSl&OP^OseH^Zv>?ySqUf`zt2RSx%g2j zGR&lBoSdAroH9mVjpXVgom19$do2A2h>}P+?f>CMoafdmd$zt05GMV_#gy(`ukkm_ zk5`P?yy#oXsDV~V7HO=(jKQyh`GawT*@LNr#e$y)69x04M+K<0Wocw{@@2d4N13&hA-gfHeS<}D%?a~-s5 zSgrsB0CkoTmJt9K3m2e_r3~Z4c%`>(OJ!aqqB0lN<}J$wPNd;=D5+h~&CJcr%gn>fmv_Gc@TAbDQ07gvVjloz zRy+sGb}L0DP)v|dQ1Fo#bEEF5ZeT_Q2AHE;B+{MYfX9m0if7t-5bV&KJTm*Ef(NYK zZ54^S33zI(96DwbE5yO_-Osy+BaO+)$jK;@$df2ycxbJ~+Uoi}At(GOxePLLhn$Ps z#GIq(E~!@Zj-@*M@L9GtjJL5XT$yb|EA z!`A^PBpX!SwUNir=(fk(A|Nlj)40Ue)*bzQ({HLI}LV-!0L2Vy`!&r$0nDB3nx6AD>%z&gY_xiX#0Y;Ucdh^di|JrXtHCO5Kd2_tnzX zO4V`~h?%_ktaw7hwuB_NnH%W zTj9O%PWT|a-6FD2C|;3STO}`LkSE2uvehE4k2jt&UL>A`xmaa7#esLus&W8jiypFo zDJJ#3iI<3HVD3SQgVOoxEnK=bL;5)4MVVt%FjO*=A<2-Ga2^tC);4Ir4x|uQTR0C} zg(QWQ55a@rv*gwV74_>x6^dx%<)x}rC)@E&Sr+v``=DLWAsrYXwD6fWr#7v&Oy1W# zX46W4u4Dt=YODR$$+*Jrg%ir*eFyDFFl1fWnQo?<4#^=Qc#qAdtE@Acbk1X+W^XYm1mc| zAG*(|a@lUdtRfLD9Bjv?;?c1Q-r-l72c0^97S)-_ZoszJ0unz8;sndGu*=9cWA?8c z-XVNi&ZR+@weJhaK?1aTU=S0H-YJNQOpge}L`&H;x*O8X%TH@f+u;d_By0ENiA-Wx zQw49`(eX(guk`-a^wj;=!|hH>Bc+TVPBZqY5613;>Eqvl~MYkTv zfu>s!+)%ayDup0)fJ&hV6<~h|!U)(OijW4fh9I}#lQ9Fb@5nj$1%EZLp z)vhJR&eU%Hj{UMdhk~@U+$OZ^8_=zN{WW_7XzcFePL2mdHCdq*+#t?Q-cC|0LxJW) z5mn*x%u_8@w>M}I7pzB)>;Ote3WFT}?q1~H4z2)^pRJ_(+{(U{gla_>K`qgV^f=Qp)M$AH=*k;TWpV%hMdY{-9 z%wQjlMoff{MlMxz;^a$#C*sMAfqUY~OMy4yz{S8Vao|$mh4}1Z;F0+3Qs9HQ z&|=_*IM(mB+_@c}&-JjNJHqd8K{!&2EWn`X4A273qIIMoXj8 zSw}I?`Mf%7y)swBH*5kO!SITa0^BRJ%C0rMWJ6#ixYAhr}G1D z&X_=7c%K+?c8vI+eWIQU|10Rf32Yye6twqcAry*wjB|05F^q2^7;&3&5HiIMg;NIG zSBe`7sUODqAy#qxF>qN%4hCBi#RG-;595LmkGQHBxC|o=1K;!|7|tlENju7kS?|#u$1p>b`h| zOu18b$WC12k4;O)GI}qXzO*NWR7tDv%Pn!J|2gW}?FE;gmq5sW>IB@;yDLA1vlj53 z&b`j9&LiA+T#^FD3M+!y!S-R4uvC}E)KG>ew-q~K+KJES4L!mWpw{DMaH~D|mPhh8#34Yy=6i?RcuzksRNlxq9=3~LD zrN?H`#V<*BCUwWOq9a#Lo-4{%O2BzqI+*HXVChE!_`fZu!>Us>`?0@rk3- z(Rria6Kl1pX;fwlx+&sPeB$h}gHG%2cs3JTy(@oQ`$o}c9M<`EqwrM6w@7>nMyWoO zKdpUNcsA*~FP@@49se-t=aPw`{yYAP|LZACPJJW4Z{qyP&>fk7GqG-aQ{`>&Wb$=h z%n|0HewW`daRTrZ5zl~eq9CP+7UhuCOEp{I-=Qj!F^iEZta_|Rg9&Z{@(A>;0pE@o~+iGky*mJP%8K+(?q&| zq46omn{U!Edl~;it>BAH6WP91fnl~&sJG-~h6Y_w1J%As0fEdC!G&f)jEpbQ{)7fB z_*QI^EV~&OkB1*V8Y?67G74zZDYMbVAjCg8st_W_%0HeR_cF@CW>cDhj&f^sR9c20 z>NUR_s0)`(4_MKmBw51T0i}J3*xkwxxol~Ycw%^*zVrEA`}+y%clMZnl6EKg_-Uhs z>>Jg?r_0){73CI=$C;<2KVOb&A6BATK0cW|`JjN~+O;RIzJc48{-@@~j8i}FrJ8_o zM^FGt6>Q~|-fA_(jYquV(<)J@U_j6T)Zn=ET~V)&C0oQFn@+#sE;jlxd_H?5sk_-y zFXJ3UW%T|#+B&Z%*T3GyjYhoSBPvlSXUL{|sm6#)-xl?POG#golWgl$^C!iYf#y$| zEpJVeu+w@L)5uc_ngx5;`@4ItfSp6~b%J+Bk$jVjlU9;y((r=%m=9y!kjpnk&tLnSvZ!7P9-);M@ zG#u0Ic>KQm?fbNqx14s>j1Fp$I4W#rCe)YEk;cP)Hfp?RQ8dM>vbauHKRH5^XlX=;K zIMrSS9MX;ycEuWoq4Ug>HQ6;d)xHHZ(nsWW?+e5YzTsEPTLXd`$oI7h2C{z!d9zP$ zWM^Wz3rxmmXJTKRKRuynR8$C}T8HjFuA+JlG&XRfN(mG$v%1}({(KRh_Aj#M$m_`C z$hTxY5Atq3kF|yE2~1GsU8zXoOYr%EUmsUxAg`~Qx>>u!A>Jat&3sxe6D2MvfGy1Bq-5$Pl_MKQL;K83?$L>HSC7> zjPgw64C9PsyLfOW%yDdMco($ua1b-X8hun~y z*>Ara{PZ-s;)jB@bKlV||5*O&Df{W$&7b}D`+pxbV`&7EnBE=t(Kq5}nAcMRb(N}$~8dQ{nAmv%s3pR^XzWG z-O5pLn|YfRs5PJ`V5B`c7=YtSO3Ln_KU-05z1G?u7fg&}P0GoR&921W&(6x;4U9x4 zn`v6|^qGfu@uOtwNUkHUZQvjhXokXG!@77QC?hZ;bV&`_J@gMNY$|OkY>>0oV<6|& zoPnI4^;lV07hwc3X+Ha~zEOFdg>%<>Y8Op}4=I7)?y)3fI|j9{Pai%>H0HcRVIWh% z|77^o71S5_hJPN?#Srl-JAqWy> z`$R!@NB#MVD(k&ot=91{1fMclB6^~1B2%JeB1s~cy+{9%*Dg^vF`hjisD?}j2@kkL zZ;1_{Cq}R*=}!Zv^#y@H%Z)7SyInH2Fa|ghMcJ=_zmZ~QbCz>puina$(;r(r1AK`) z>|BrkPh=kkigEtK{K8Q1zm+q z1%;E4Nv+B8N#049N$g3bNq##Kfk1;`gFu4_gEWIAgP2ssp&To1*8;o(yh7E2(gMeV zqeApawMouN*?l7Slm=;WHSzc2isG{3%1u&D3QZrHRE+bTG|DvmPOh_-bC&a#vzHOe zxlUTO1q+jylg9hB?y%b*x5>9bx6s?j+w@z=ZR%~vZQ`x}ZJf8%gXVlnh?ETc&6tKw zrw!x(yF=fr|NZaE$ROh2aXE3>afrBF%`DBl?1_SLn^Bu_n+a}PA$|;gBTCw+H&HxM zcu^ctXi*GNIBd_^=-Hh0#!D=KeH9REM5|I<0xuhho?XeLzHQ~WIif=;DS?*FS5Hh& zt|U@FrJUE&vaKJIAizeYS5tBb6fSqM*y`+0(GAlLo)RiHl^ZJRw}VXa7whY}mTc>D zR2rC94;FP7wb^A%F{2y~3niDpY9LMdex-=Hd;30gO1KzD?_G(L{u0vL?4ox+Odw7m zOkj)P;Xxjig1u2mX&050&bMb`{&N$K-_thT{Bg~CSJDNHKqi{0T5|Lmgje(13s0Yx zkO0{#^~_5LQ-=+Lt6A*@ruRz(fc6#Bpwa<@7=d_!v}y@^e0#KMqiM0}kdi1M6;cr7 z*gcU*&vblAK5(Qw(^7oI+y8>-fbu}( zfMmM3WJcf5iz()U8RfcIDER_Bu3QE$SuB}1jWl%Jes@oDkGXhrAaTGj-BY5j536Xl z@Ey7hx!^buoxUoe14>rXmOrvw4u-Ub^oD$$(jJ)_sAgc;Fd3*XPHdE5p1tTv=v$GAI7d!~0hv*$Tm)S^H|4|p{u#xrF_ zWs8;L=Ys?hAU&yel6(#qg0TPg)wg6={=|MTA7om~2CrTad{~@+ozU>I+P?T=aq+}L zYpKFRdgsJ9Lo?D(V#ujjVqCR>gj{yJhb1!BXnArB3CM8=Y00_-xNWIz|y zYxj2g5PF)j;75nwb7GY@*XM)V!5m>6!KLJe&NVtU5C_Dp5;6hAHlP<>DrU%3)9+yG zu;)PGpgUVssS7UlLTTH&AI}i(N0*s*X9w`$N$Nt0{o;kMPmP{Gc%!GGR)hp`mJu^5 zTON9!T()cM#FM-~z8R?Ut|pH4Wvx!zGrgPV5bw&}Vz_EJ^<31V0@pVmWh_`;vA-B; zBh)_9FLZ_*t3N{t-W?XJi1S491XQ99)Ea4tN)BOc;N4RD*aj2xTGt)Bu-c$=c9Tr| zsGZAek7Yh?r{Yllu92Mq0n;X{g<7PKs822OiQQ^U)kwX=u+jUVenc7Vh)*p8YJcJ~ai_0KbVcBg|11S2RbANgf!Vx0WX!{$c( z@N8}8yYH-B#gtWXhh7p#TIn-GT0@zdZU@!tx(x%qnr#P;S%b=IbNiv`kWvmq(HeXQ znmO!Q(z(Rh#JOl>hMA$IXrD*;5&wc$4UR+7-1O}9oZ#%wa%0P1-5wc77z?U3h7PrJ zsDYvtj>x0(qsk+sxRp=)CG<#m0jK7p!>8Hh$|kVS$mIZ1yN0eBHb*#1I2Sh?H>Wup zRzYn2wk^6}4U+Ln)YgOdaPyknSOnc8{17?|K;~BDBEjX_migUk85yLajvgY1ZgYDT zU?kD6-|q%#KHYFCf#FL#qW^zf1f8ZyPWBo0twyyd^FbvR9(5EhhxVa|AB z9GtszE?t5*={B5C6DgK>sZc|_KeD9%oEUb`Hm;3daQp5?ogts(D)nCK_h)-1SjM@d z9%$5;lS_gQV`QowX`7o0>h}B>-u3lFf$(byC`#n_e-{T6Qgq*l?lPh~q6da!GXSD| z9@~fPv-%ZCE9-&b%nUS9d5`BFmL4Q1PgVDvYI$*Gn)$mS6kRCx3*BSjaQ|?6*0FrS zs&>FB#yH+M%{Xc4%`b^x#2)#F!*j;vzbw8C{SH|o{zZ2A;ga#v;_}ty`e7kTN~>Iv zWW_aLlG#M>V|mGcS#&rxd$)cvW?w#IQ8r`}+QjK2eyMWFe(7*|dnkN}H|sigHk(%Y z4*Y3&88srthwXCu&~bL5qSpGjbvdp{-rxF?lOH{mUNtQ5t0V1CS_k=pN z28E1FFas)OaLUx;$ZmQ*-6XG`jGc8!9EaC-UKiE;3`1+Y5!hMA53@ev@$cPWk(hBf zU)hYjSVIB8p(p^D&ICpG)0zJFvBWz+K}j`Kf~_L0(({z~WcgJ2)R9ui58Anf6Z|&Q zHZ?XiwjQ>r{En&ks!4hBt_l;Go`jpHcqy`ZD?(1Z6)$7V!}DAUKkK@ zq$EnSsjAQEyD@^v={Zu3+IvUIa`5xV(PSyS+-oT?y=luI0G5*Qdlp z)nfI5Y=Nw;G0O2%+bCOA8&%sOn;}~c+frLcnm^YkN+if=W5&vKVlsh7jg?7`oLIwk2`VPB%`b9!aBgfq9bx@~exhc~zr?oO4C%cdF~AG%d2u~h(Ond3abrjD zvrDM^uGr$evGEst<`|{Y1v?+Ui5b^JeNXM*0Wp$!{u0e`7`N9-XiZNO|5mQ1wvc6rrnU}ejICn&Mym#1lJeS0W`LpUs z7)Wy9Tl9n29r|U&Vbbi(?95zQCCb6r^GIfU>3B(VDSjDxcy|~x3oDld`wc$^JTTp{ zUCtbSnq5KqZGz(_{nFj7o}}e-7$(9d6h}4p828|N7P}UEo4c=eU+qC(yM1bZxz{6A z*c-PlD0GbCt2qm_Gd`QRH96k`+d{gjPA5uoIGJERX*;j4N}|f*Zyn9Q zEsNJ|3rIAOa4^E{`(@uf+!*=qnr_IK%+COc0cdht_0zwGHb$g_6ZVn!z;(mq#AGEN z@dnkHnV!z(>XuSI8v&U68uL^cCg!i@DZrQ?JAe1cJYl>*Bv0UCHC0P@_{h|-dqYd= za`o!+CC=`!>#>XD>q9v6li zUyU0^?q+u)P918T;vc4tWEPEFu^}-|3{NErBM&$qj+rff_HQw>m+>9dw{+V*-o$$S z=WhIpx*JbWcjMDljW25c9eKe@!Y~2yNSH%g?NGq#3bA#)g;6u(Ina=)5PB- z%p@gKPCegxw0OLDta!qH)PCG&kbL1>CHS9Nb_k7Ji(uXK-Q5B;20K2sPf6zQD2%H0PFk0Dv$?f^x1h=ro#4^Z1tPYac} zqI|zYYhV|fWj&;QbFX&B#{Ev#A1|2SPi)}+Aej@%aYKYQ-Kk5b%x=b+Yhh=Tr|S7N zdDQ9Lg6uEL&4qrj-R&YBc&@HSt9Fv8`;i$h+a$9%qIlz*go#tk`-9KlJ({=3MoKSr zkHrm-(k5H1LTdN+40e~{9T%f*=3fktJ{69+mVD#zOcwZQmmYdlJ(aE1b3Z71ITb05U0-wbjDk~aqSH>hJ6%UfN8FikuV1sy*kH3_>i^2D*BLlxGyhQoOFT02kB+X7 zZhvmg?pceKfpzo**!HhQb_j>!;G<@r2rquF+xpzImf3+8DvytbPnQqd!#S6|CGt&a zmX?&0RFiyfih#jkIk0RP0+tKQH_bAIKau11p9|cIJYYYtK8QSEJTO0yKG6EcH>>(d ztssua=*F-1Vs_PcM|MZ{xOQ8_8uMFnTJl=5TOL~Ke2@aN)p_=J&}IX5BuPCmh(|#B z$4e*KLi-NmtqxYUhTWbYh1gUfgV41(Bjq~n;i)(JXqigv^|4l`icurs)`!8TFW&bS z^UY7zHGe2Kug0*Cba7XVA-9Ye$N5Drc6n`~wj3*0dT*99jZn!g9!{|RNjB6Lagkc` z=}bF~?fEBu)PR@%1PmEw5&$SPvulUo)zr+Z)40T|m}AcoDC<(_*UZKl`?r}oP zz9je!NPF63RUv4Gm6}b#tPr(GiQjnLG~u|z5%?eQZfBGqt2N_VUB;#J>< zs!@qJ?p5VZWU66`(CoS8#LK^hseKe#+I=++$kSHJ$IQrd^NwSSHDs=pc1l>Jtao>z z+Em&U>~oA;VE)K_)$`@3?Sp2>iyZB=7Ay<5OFbT4KYI*r>5mKHayq zXWy>xPc8BV7S2!2<9<`>@vVGXBa^jnbLTO&7*ujC9;W2H=uy#1u3bIio!5+jH#iw8Uy} zPM&>w-;vDK|5Z?~s)xfY>TM-+OU!jqyuG=JFwa3>KDdOaG2E&Cgvs_X6XW(#78S_1 zc;{Cw|5p$U7t^ttiSsVm4bv(5>A*iN zy0V~~6;$tX!L`9_lIN$oN4-uxtT zcz@j-pvdbOj;<*EMKCB7JLa(?A)JYMSgR^=XFaIC=l3bPrRTzb{nYmVJ9`xI62pE zQ6eEmsjE%zYpk7;#8s4%99}o^#mv9U6H68|N4(LtnD%KTPI<*H~WoC`8{1Fc@0Vi!p83tP%#Z1mD<71D0U;=Gs<<%7{(J( zc5@o9m)#M}uoU^SS29{JZ=Epgi?aDl?}=q0-&@BI%ZS9F96zXOS1&X2-7?3#)OOG_ zlH5$jyi~2zhVe7rxh;=-$?u3~5V%Q<-+Zu68m7(g6@l%2&32XAiA7n2z#?zm)C#%P zcgT#D+z5BI@|1%)bsK)T6^?EB;T|F0{~xa2G9b#XUD#F;BqW9o0j0Y`YUu9nmXc7q zK^le<0T~*GZU&GXx;vCE=@cZSS_fP(E&RW+x>o`*Aj1AoEz86RmrLq|} zGq~-2m(Cmh#3tDsvuiPFrILbdtmEdqTa!Edl})Jm)vinaa1RE2cVl?0QrKMCd3^u!F zqE0j15;c~VZd^~cRm6quBMkXSc=hWc;HCUqu{bZw4(3+BrA|jlkCA;(zOgx$t&OB} zXuawJ{(Z#5|2c)1rrVs4F9Q_LfEn{!N(m%m6F1h$Z%VW1#$|35liD!*=t?f*7B|*Y z%lJwr<6AdYmT37|kTGks%C2C+L2#vFbLDPxVVSaSL?v1C(Qb3mK~SY^bJp(u)O687 zY9&##$(~Q1z1ZyMN{}&LbD^96#2@+Dm`e8MS6;*bkW#^cIa?;e9tMAeiSj-@{7% z>q{94-hQ1w;uw@2e$8h2B8Uj3b00n!c^y`!;<_ON8|is5BqRr}we-=NT=}gXH6B+d z{GDpOg5a2CfVI`Mx9_5SMOt=^j5)DSZP&k!DqQW>!r3KUByu>?s(GsbsnjaXeMhX zY~z(jj^bT^QSUQta;+}U<}qeviXUhG$&LpO=RYCPOaC< z^6Zt^uACibVdY)TFBY)9E_x&>(FR3CPsx7the)L<#uJ0pUfj+kgsVQaZGi`YN7*f zIyH}e^|XpYJ5D&Von{o6WJrPDI?FbRXAH;WO)L__G&)4`-B$p>w zWGj{+o*+N@h_L2?4Zv)bCPQJ2(%g`3d{zbnjXIdEa)NS#Y2aDB4w;41+OC^Fy9NBp_4}3kWVmV_Q`JELbHrO0mu=P0x>bJLM{q!n)eCRxSC=_a2PgT#buT@{7$O4khm7N!GPG&<<-N@TX2M}_3$OaqFY$};MH$#C-{H42Fsf@5 z=1a&YLlQ+w)TeT!VEOX$(O>vz$rauyG$%16oinI2?rFl*VVYb3X1pi=o!np~ZuA#U z+QiE;`3M4R8E>nE;}!=sIr9!dj6$D7_4Q@)25Ozl#zw1Hy7XiH;dgkc+vKDTdZf;9 z+vOdj8n5qOMT$%Z4BB4IupzJ*!D0KexJ=7%wT&)x!pvwgpP_(RkMcU^{2jNU^3`_UQB z^kxJr^#W`i-Zhp5^Q^b5LUPT%gTgO@RnWgdrVR7uqx;_QQ|Vx=*rlKg8G2>6#+r0E z2#BJU8{K^22~}Gv7DowgzoMxD2Bv*T{_Fh9U z-%V-{I)zps8s4L^ui=w-uCf<$gw$NMXF}W=N}=q-a1NcKhRK3f_D*v86DdeUOwL&* zHFIpjvUq)F_U3bnq{it)49^|D*Gj6UW*PgGo*(Y0gy`}MS5yzCrSqC3sSfW{P^Wkt zu8b?kDr1z$JE--0J%vX(^t!z`O;vSxj&x4%(6DpH_Ca8?scGI4HeSo=m+hH7$Kz#O zAREhM70@6LYRXeT=sX%lP@Ta$Lqv|1^v@KgaB0`>g==CnqkT(XdcQSi{gcViM6h*( z<|9)^w=AqJ~RW-JhRb$ZeE|IKtn_5iLRsb;gE6Jmotk#4ReARVe01K`FntqsvB)W?&H2!pthE3!qj?mPC7B1GyB?&^$*-oaQ5!{67Mh$AQX90a-gvrqv z>bcRw`?#j)ZUU00D<`D-tW}=Z9KJ7lPFQ4U>(Qg~-rg}2g(1XL3mUGsY1csAz~MQ{%qor(RdWyVwW<_n#$ z*#8`dz0ltF&lm8&S7?0TBNx^GilM=Gd&w%+){Aq&i37PRyjEc!<6ZZ^7}?JzpjHbX z+H-}y{&sx&2aEzP1@|OU26+Zv^)KrCupg2o@l&X@7zJnwnn~6StZD#ATW0Um6bJxm zvnf#g3)7}$C}0p#8+x7e8WpD$M+(&)6%!TrIf(>O@Uz?(x!B?n9G}eaZzI$)SO`No zL(xJRLrFpfLXkshLkU88pOXb6nIoBFtUXynU3;GU`yIt|$}Z$Cf-X#nCvQS=#3SF( z;Ao(FqGF?t`)OHzXZpZ;W}dl-U0>l+pk$IQ+I(FdR@f~#?8jIGn@hn+@vzF|4PU;a z+LWF)tv@?KPKe0Kpl3IE2QC`Q@&T8hgr^@nDNUX|Y-Uz8zNx7l9mDY1CBA4phEpXD zxf~{4k*$pt~VNIXZ1y;$={8LlIqIl-Y|ESyvvtsddlm(SaY4Un% z>9Mu5=lp5<^K<=+D3tyi3?u>F|67fT7Y#uPR(nhQbPIM3Qg_N( zl4=U6iE$yaLf)bnVj3bvkI>>%qksuZdxzD8{6mY8P4Z8wVtBz2!O+h@&#eiXp`_>Z~fMlzDyXj(LAEJ+! z)BujS7{C#aE{)$Om?kTIS_&#f12$DWwJ3`T588hoPiReoKfA95WVeQY&i(<;VclMc z^d%fEN0?fYWB=kRD`5#(pXy@`AmY;n|K5va?=^aP2A5h-GbQBtI%hKK9^@;H^v2b- zTR2PrZ86@(GM#MlHXw8=TyXQ2TEEulti+{xZ^wHeRh6YTO1g-qcZ` z(H~uUok`~r&9)#8xB3#(xe9BAO}6gwGzH5qLjyNk*;^%VPk>U|Ml=vOpbB$xG90=4 z->l(|ga@YwSL&$+i3PF+0Spz6r5-#N#2|Snq4fsqH7SmABw-I{4_Xgn4@pm#0qdK} z*OhMsaT;(gaj$i*tOxbWm-T z9dGn?x14taHr8)gW0dxm#?e-Hqk`z*SYLH;+S|kg?zmP|wM2wnEU zBui48hA`gDq9CGZO89Nt;WNAh(o=pHLC&PQ-FV$NuHYN+E%otd#r&;+%`c)JUz5@k zo-mJ}6)1{Mbt8?WzsE9LpVjlao+S5kZ?}6D*=i0Qp1*5OKNvMS{;jsT#hN`@!fW*h z%{7c&{tN*B^aEAU_(0p7$Gi3q+0?K{wEraU8{;`aYO`vy>XbQ7IZiOJlz(Vf$&dbG zRkdswSkgc4=Gh=2P&&1~mTiB$8q)cA440bG-RFD)2pRLp!#wleP+V?zGfYhGHf#($upY7qq$H~T= z1lWn#MpPem6;jD_`A=HmT0t}trQ+|!-b=if+!y=uhViq{XDvB@IZ_((sV85a+Mx~x z^MvyR0YJcrx=(eXb-{Jv?<8GbJHGzqW#3(;`Gtio(`CA#j-kMx;#|L?SWnw}RnK)? zk*T)IkEcT|w=<^U5^*#!9geH5tawXCe1PnLotg9xnBiqK zXlK)7m$B-xM$_ScZUA1|vDmp^I*IN@0qOIm-6EO_6uP(p7x*sa^?Rx47v9pOi>J=a zs?CVn+=6jBiqUDmjE{_Kqe%9Aa%hbTBLw_Uv*+R}!4jVuNq1)dR_M)W#MDTT?1yDw6{oeQF+7o+8_^ zNh4U3glot)^5~OMoKgHyp|sxj>~#vZ$&;lyv@mT+MF~ame;N6Bb&xpwkQu@Xas%Ig zz&|dNr<2V&?$XR+%u)xkl3_ZK8KjDJh42}SU$_g(bpQi@LT7@FbP~LPRHs}QVXHck z1rw1}cUi!wOR=q*Fv)Yw`<2rw=^I}k4KVPLf1&;oT9BS+xLJ!qA!2%OBJ{>`h{@A~ z@T1@tT^os%e4jS{)8s))t9|yt6_;-+n&}M`*EJD~L4PnV9oq1cl_3#{IlE|y%w^fd zlwD;tt|`idcLqyMV;*4^PS+)nu1ixlI?To&!?%04CLu9tw&&%6ZNy%V-Z~qw~M4 zA$x~$-4^lMBIQ&lwT<$brm*#;?TU3b>m@Iu^iX|mhrYe?Cq?7kH&5ID$rTHBqw*=p1Te0YE6Rv68oi!!T`l1mLQj)KS23M*(KhE?!KH%&8Y=wM>{cN$eGN7 z{BFEw*xN~iCO7c$xFx)=JJzeoMqHy{AHnLY&UK3H2#6W>h z39LsG3}Grfp$)|qXWUmn-@>8|IhCji&H7|Q(u(e*eJ*vrzsoyudqO?9%R6bG``3by z6=OmKXsifY!9Juuf<8#+O6PRD%9H82{IY*3QzB#{FIq8u49_oin|8f-uXl|B9|BQs zHMCX82YZIR+7W8Q8p=$!I^USU&hMu&XiwO#ptSU5a z5qBN!c}6Q0lKJaQqigRjDKdL9Rd#;kUFCgcSLH#>> zYCfM4`l@%yY;qQ%58CA<*t&bs6~J0Ux^wW;PNZ_F~%N zXTWqflNRVb=6k&NFWwWCKKu4UJ8U7MRD2q+k)^50s<9U16>AoA7rO#41?FP=Vm_@G z`zZT_?aV$`FB4|uI9GOK7I-?FETn8 zIUnCOooI&zN{Wh2YF|*FN7o98i%LJn1;8CpDxNEU(g_ePG%`JrjwiYIM65x+9?KdD zR!gR$S11xu99<1rCBrg?dDze7qj+%xNHlz`w}ies;ug8pT&Wc};Z-1I%N_bz#|lKL zvS2mA$0G#UDLzz-{Tf2i4wz}uDvB8Xx__(QI7J%FMp?h=oOn%LUg_7gNuF9y&V;pa zSgn&bF0p;77nq)c)a(gum6{0EzPjZjC4Y`}tetAQWf32NTfyB(GDTx~43fVveE%@vPXe=47zV4dh@o+-Fo1!M;etBPlfL3+M}^X_%uy^+EMv^&#~U9>LoZXF1msV-su>l@m@A&urh+NjzuYrQLmY z&UMb@2I?Iwp3QB@X~^}=8J=hXG;t!kOy^)X%$s<2T5I6lus!XG}Fl;3sbga(OO1_2!q zA+0_KgoSfR#rO}G>z{*(M8YB0oZ&VzAX|^EiWsuBTazJO?ihuU%&s!{QJD4c~VK0TTL6L*IS3eTixAi+A``vk4b_!kj^?G4{3?~`InZ~vM?5aL}6~F7^PC!bp z6`K~crLPc0b;m&6*071&%qhg1osA#5T~jGu*p0qyFAFw4-AZmzUeQYUqpvF|xuqVD zvh2D3`t$r?(ZWll_;{Zs(y6mxXU2BV)BcRiBEQ46tuyai9D^ztPjO9>~A;eeWP^yYXu?hvzZ=vh>Eb@X*~nuT;?{R1#l`NxX#vG-@V z_$Tp5@fdMPCwa&VlwK9CmnIwv977y`)p}CIyntK}^B=vQBQZHKR}96=Km8Awn0-&e zpLPS;IA^eVC$t0F1?_}(>viaL>2+3{zvbZLsOPxgz~YGGP~k8lrg%x&N79GfN6?2U z^MpDS)EU{7Q!5jy5kW+L3M+mkr1Q4kJG;T@+H0iQ@xAaG#!~y_J8{EQMmFX6Ybt5W zm&Y;~nen`(sED`s+L@_u*p+RmtDWxR=bL&RSOZ#AujC-=8u_W>ks={p4^#@6L7R?!sfuW}9ZG10aZ*!tA^ zH%W=XXX?z9?t4x<5nxs;50I_Rri1{c<3JYt`)5yUHx{2H3ezm8PF{Z;ewfp+5niK~ zMfAn3Nq!J|EnfWuP(%s5H%WWEf$=>4VH}Mg2TeXc7cIE10!FxPCd4>!i5X*FKxXF$ z%)XkTa}0AZbChw|a~yDxanM4Qp{!6xC^?jCgiQWN;#Go+-O$1IH_0+8jgLM@?q zP)#T|)D?;WNI#gN_E0{h7u$r}6x&a?LEC6yvz#JO@CY|x&SM@S8+l@l${n2Ap=7>d z4mKye^)tUhs_IkgsE#p5?q&+73g>-!K+MOH#Nl8u*Hs;x3o)mZB=3G2-b?Zxz_Lwr z{R3tr33q)-L|n;XWNB-;Yu4ELF?tQFTf|)jAtF5`u_P@mqqq@Pad>mLzq6iHafzV$ zT{}(}=8@j`Yf$+2ZJaVo8@sysLKgj1Z$T#=)}`)8-wPA<`2zs~Je5)@A~($M!&WAPG=Udz=t^ygsPnx5)fFy)ZKA}dU z#sffa)G;hEg~SBp%dhf~WfWr^VqO7;pG*!H&So>WUWTsXw^G5AT1u!B%@doogzys}{0jo7n?a}O!hr_oz7CIKX7Pv~2TEPbtz%)8@d?WWUBoDINV6vb7b9 z=Gm9NZZ4tmd9ObFuqaYh!4U%&?{xNCoaoj)z2h^DC`L_>3pMtWnNNyzr8~k{r{;{S zP1i@Av-I0@h-n*xzC|RRMpyfR4?x*XZMD;7MAf&R;^&ezc04`FV2j_0Uq7cd)pos| z-S3M;Y*`-C-wM%9gp2aWjaceCJ0gP>p3Ofsqq0Q4CO0OW!h22VTuU8pzcmCsoB_nB zo#?5%ao~3RpKJ20jOP)D)K<7>uFEU<Vj8nrPqY0FRNCQVWy`dcmR1In6Q6NpAMuLa@gzv?L5blAsl8D(yho zIE*ctyWB=$Si?p$0z2F@1TCDq~rqVB8XSn<(R3pQ;%(%J4<@5a0k-Nl11{wy_Wrg3bkEHW>rHLY=3 zin9mZuzet^O6crH{zZ?N+z3HFaPac%WG5gb*ZYuBw&*#vy@QOP7HaUC9O3WxYcf~p zOCq~8xZ6Z%#(EBwe;2d732jhSNpViV@Gmp$LsNBt?0BgKLBUn&!P9gJc^KDCyzQbT( z8JEoZsr4IckoBV^mNlcb=LiLqVAd3x!a>BrZfVkM)Po53CO<>j#@%KeS%i9Wq;MWv zRGO`H8}%A>FLf;S_(fi$o^fvDjTAx0IkGL=V2)836w!+amRvq_`%K+Ftul??jlHaF zg7;sq+8|vSy+xi}Hn+@VF=r2u)tAjHXOo}#(S3FEs6<|J&zNj&FxEV!oSt_-8QcCL z*t$WONM3(bL)q@8HuQ}ZkL>uCqdkVvn47oHF*Yn*CW(xQV(4(KS~5LdAH0-ssJUo$ zieZr^L}i7seRO7?giWAe`mR^WWZMTSB=dLJxU8Z%mu5R-+5B~7oc`ZIjjBG+uPTcQ^h9~Rg91OqP`L`Xdr#TlCD<|Pl6v> zl$gy+PExV)vbeKg;`iAL^tgl;gl#<^X8g*{vZKdVZDej|sec|s#?qj7RL!DbmXb;5 z*CyuOaSn|WspN00Xw{4c07wJZb-jYdD_PF8qr<*n;ykJjT|IS|uhPaboQhtpomJWa zt=*2~@|6&9nRtQ-FSfH&+-MII zO?})m`IHnshwnBP$#v1t z%M5@X->Gf3MS>_`BK2d+r4|r#=X2{AL^p2~+ z7XDoey$jtpF@KN`m}j2OsGEGTZG@e~9p(ACbaz29=3G4GZ9}voO40M8mqqBZp_&ojKT&tub^QnBoUrD$#_-YSqZWX2 zCVfRd_9X6Ue<*h-cd%tANq1^TYFBD!YPbGxlg#UMqiVa=kaml7kY>DX(!|M6REFfM z1sh3{g3plfTDDq)D;4W&s-LGn$>a6-H)jYeqAU7^5r_?3L)voxon`SA(e~QGTXi17 zGQW~)Doj)q$D`w03W97DkpM<+&k;Vui;Uk?^s&!%Na4GuD&ahat;c-%N&LP`hdWyo zLiESyy;*4c-w^nDMg^T~nS@bl8`Er;QWvGIcv0naswuy9J{n&sdx=~yd_NGc;#;<= zLvq6!Nps~NvYA~%z?IF}Y`jG`!}9+0EP146S4U*Uw{=ZCObj09U;hGnJq@a)yQcpZ zo<;2fZh@iA3*fB@;H=TdNaHa3gKC2SrejELgzG2QP}ks%E=Cne$}y5L^pe%qTCrene&Sgefvk7|y`!Oh|2-Ic)_4jD!|8XvdA_8d#KzC~@H zb;u}TIys-OL)=_OwKMz#E@0`}xgD6CyJ1J;~1&x0F%)5YupY=^Ew}7K5U=v9$l% zsY?O6urK8P?e~2Wl0zt(gJrE{HwlwcPUV~i4cXc9B!97HDSn!`_ zPXo|oT?Iyr0w3G|ntB#J3@YuFTSYnyAU%y*d$oU{Pc?+pW@D8J`)R8Mpidz`^6Syz!tuWI61cQ?9<{BtvZ>@o+sP zoMVL>nm6=~^^J8pg)9@ckpKTKK8ydc@e#C;c|7%a;{o#E^kDSxJfxT-V78fSt!6*@ z*@u8h&z@Nk>`1l=Z2^5SWgSCqcvoSV2mw@hW0{OAQ(wCFeT{SM0(%zIImZcU-t@*a z5xe8r+80AGK{AU2Rq1BwD4T9``E_IGu!<9eA@#T}MVGJKcqqb<4&94!;zQHhHA#_d zm;5|_5 z%!PzR{tMitd6o9I?xXF-M5lOPZgfbnB=!q}2rw2YmLL|=tCz2oUWLDn`B?ptc!Q(U z9Mb(VLI4Zn6~N&=eR%9&PTl4kb1?K!7}q~u@#&_XzVx>*`^IWmF9(U0f)mhpzt$ar zL5Y&H@rs`hwSWJOO-@CO+Od?|IvR%OD{y%_&AF&u+ps?Wp(uc#-8+M9{$s-ELRay2 zHbL(5b-xjQa}Tx)G|>j4RR8hpoB6|#TO%Vkb7g(6`N}uVE#>e5)!~uAq3*XrPG{d$ zdaMZrs1~eRRkkT=-Oak`;3+yd*8h& zWT&xxR}n_MD4e>K!k{gXs(D8@eAqm4yX;Uus=El((>;%WNV1U$ywAUEaNr)b0q=Y@ znywwwS2=KTw%WAHO!2FLw4^nR^4MAr(WINyTnKzOt&u-vwR=cK@wuYIJpV0?bbt95 z{c&${Qv;<}THyH@8w|HA9|8o@R!ImT4s zUaxPHSWB!|PI!GGwwJ2FSo`D0haGeBZ;7JDHM36EBQ@JCYOr$?kUj0e5AJ)COSYTr z`8()~EV*s{9nOR0Vxb@G-VUfAXfq0I8|S$ORz**{v`pi??NZ0-^&1BdIUZjXWMzpG zlsMDN8eTLAJ8Vk7W1y{BQI-^n-R7yc@WO9U_J9j`y4;HS<<{Xy?~})#$|@2MJAekq zXA$kg9@)YoR?N(g-dbkxd0~00&)Ii~yCmJ%a^pdMN(=J>lYx&}j;xb6Kjqgn<{W@+ z^3^Zf*>*V*AEv~xO?f5)ACCdX@FRYE{p@^dyH?ACa& z7$q!zqJJ0fobl$Re_WfGDNGb5np-t7yGwS?dV}S!dh&9geYa}&#kuD>_05YL`WrN3 zS^kOfUApElr#zuuqI2fv=m5#f3IFpaB2w`a(F7}#crTG9dl}4=IGKpGV;08$5TOm) zn(=TN+~q3?5gW%)$WU5-;_M+dkKv>v){G(Pdu15}-`tu1rb^5l!`p{q8J%mcNBm}o z${q7{*}9Oq}M2jAQE_13s=M@b->D{UeTeSW2l^nN?n_ z7w75M^wx{bO)>b`fke5dcfQ$-RO?swbbVjO<_(9{!58ChTKc~t?PyJzn@Fu@zZMgE zpAUSaT1jMauxWry=w5Fng(ogSYCp0-M3wKk&zdE&6)Q4Yl}^B6oa5bHVd35%lWDWd z7_silS4X4ujs;;tL)-Uv92-W-(Hz*!E?O}xQR}yjI{A9E@uFe#U-o$o@z(7mS!4ENMjJCtM05DfP=n}_LvbYk556{-mw2wGx{ zJ1bAJHzKRa<{S^%Jg{5hMLH-f;;Z}TG!IEGUin7dN8X3Fc9~dysBV}OIuyC!zQDL( z?rn&^55JG|?|JBW=mDGC&-swLX;x8}D(quQK_i`b{}kF)%eBV-aLBc{xK8ltzheb3 zL~ey8rbJafE2z@510z9R3mO5*AI=Vi$7VfAMm5KkLn`jPAxBJqM5oM@%HEvQb58fb zvcm}`4<3X1eyGkoKi({0nC&Bc*{hS3{f(YJU+18=x}P% zC|f4jJZLo5_DI^bcb6p%ZksHnNKg@E8!KIr)St+M`n@_Me3XZ!V2u;=(oRnfz*v7#9SKy=~^cb6}58wJ8BfP>Y(lyFQhzErTfcS9Kpw;00qvmKgw^)V|8#KncCPH)_w@AbxA}3a`Hl?))kPV~n7`w`tAmEm-9f-n!J=URKYHP(||* zEjC&ec)Z8lyucQ#BmWj0neM>cY{WuBG76X96&7UCj!dSA*pSm}85+(hO0o~NzI z8M-3+z43RYflqe+pkdmp@0;AprFN%KI(EAng+%i-hwnXjLlJ61cI&9pcnYQr;cDkR zO&C_RNpWge5(4Od*nZTg6-hXvexuh?F3x2jm)bK<0!uOCY^4_ekkTizQchZxn#W0Q zF0T9jF*CK7ipb7SE-?#nT$BBx!&qt>r$H}V`MMs5R~w-swMdl7*5ADQQtF<@Bn4)0 z$Sx=5p&8fjjwN}J9eB^oGCSm`%Ui$?1TK-IB>rBflHB{wD{`! zhJT`JJ%uN*D2U<#mvnb(V`_)%C)Xy|I@dPW8rK%r2G>r_&zen*&@6g3W;UTp$x7-< z*Gj|6UMCZ1C3a=D5pN~REVpiS+356!0deUk`vKl{gSX8Vd8!`?mT;X&8o~|x9e?sU z3pE-qQ8-b0eiG^;-%xS3X>?seKEk~OU7~r0we&6jJo3+ik^z0im{5$iouHBiebkN#~#NKM__nN zJw0lnwwRp5gZKmSF>y9AQ4DimtZS5Os%yGywrl)ZoPK{AHzZ@qdo~W+Xh^Yr@9Tbd?mXN9gRT|7Ez)NM+N7Ipx@; zWUzoWh3I7ApS*3Pv}#*Ix&R8F2wXj#EU>&d@|ya*7a zCgfE?vwa8ae}1EQNg_Zi#8m^5+z5e{XCI<2BQHZ6x)#@dotT_pd42FY_L4>5WyRU7 z&wF95AdmO9ta*FAF$wj2YzkoSWZ%#|vA-g}V++7;j~DHr+)({pbj5uq@bK&r^oSN1 z*50@J^TUbfmG7O+9nqcc9nyo)1LzU&G4#Vv!`#yb!CifjL4R_^QaR>zTWvi%q3PzAWgU8-Yr$&()X4ES5p(*zo!2dt+f)SY$oB zB>V=4S-BkCI|O1jEq@7TlBw)r!aw+;N3>C9;g6f1rYCD*Y$Oc%#x_%_CuETqJz6%0 z|9!z?ktp30-V`~i=ip%>M6eh(2ZsF8aFDgwi25b%Fm7S!=S8r1OtSF*UW1Rby3xCV z5C9O8iE?uSJTuxt0(;xne6PR(pD5RfW{;nvi$~=ssl6!%@t~$XXAR~PkH}G+peDwR zVVKeYT6v%mG{WbK!Lq^h!MvSc&19?Tz39B&c+tMaL4Xi=uh77#U^KU9AssZ;3`<%c zbE`Fi6hBh`M)eE+{F*8f4WdmOik_=*m7PLwo(i;gXv;w}Xk?+vU4-W8)sl0xhj>`1 z5uwywoNJ*U72Z;3;IW~mgvN)ehB9~Yu7!V8Y@}Yo1LL*fv_Xsw51TE>qAS=uAajmA zPK*}>@WrTm@k8E|a>!1hR{;Jv#7}6*Hgy^=4Ll09mMBv#lRl6ulPHt5m$O%~9~|et z6gKcQp!E!K>5Y@3(GNi=0ycYg-C^}f#CwdLN85K-KASv-G@5Uz4N^v zc2%~fw(+*?yZD#kb^UJPZWI8HLupsZ?$}m!uY4D44?Jl+X*WSO8MSM)t9K5GCKI%2 z_HTA?wrVzPM$Z&jCMVBS5$n&rmAU*)ZufA-jd{KSJSyVZNq1Kt56Yy^MSCBUx8qms zawvgk1wIApD(Wg)d?;mTb|}3>tQtKJ>Ubz!uCy(lU?@=+bFQKn^*O44*C!5|7}V&J zqfoR2iG1AT$RQ~L7?XNzvC5Cv?{U9HE=ZBX*wo{TRe4^M;>JeyN#Vg5Cu3|?>Rub* zir|WXDk5j3$Y89Kaki?!ED#WyN#@C*-PqmCUAc4db9pzasYo}fkX@yBxcX9j36gGa znsJ+?_^ILt=+Pr3V3EbpUn)sB%soubQH@GQxxV?D!qt>+yv^Be?#(D7iIuYBxt_TV zd6)7Zls-sTDe%K~rkMNs&xM=cv?8}+wosqgHr4dAS!jRW+qcjF{x#J0__l#v%c88F9H0Pm}Nxqr{}WjP?e) zzu}ZGjb+GXL{JDNGvPyx!(JU%vFamUBaOf#7oTH=bAkJm#F%)Lgp#5~8Gcqy8b)HAcC^L}J``{-l)$99)?=gY>$FdqcG6QMqk)?XdFF_~Glx~DnNt$Cn3xU5-YIGC+j5h2s5%}v8xnE%O0 zc32}$Plm7x@#kB5m#4t@qjvJpaO&=V9iTJA=v~uZcDn}^r28u&+t(#51vOuWqP0v4 zTs{xAXvJwqw@~Q)0%0YPWg;qB%3oKc{jA{pfl6Dt)T%_Mz##FxB%p7u z&tLfZUba-EL?vG^d0(kiu>`E(PCNZgi(g||!JU4(Rm-&ChHl!kBtY(uW+{EidkqoA z>7@O~r%#?dJ|4Du)@~?d6<%r^P}g!#$?Y4uAGP{>)^U|3U#=)s<#UQmRqC{ssgDoE z$iOaFe1i#dUWf$~(zM4+3GZaz67-a2mbyL^M~XnOq~!?6I|oAe6RssuRNJ28`dx)c zPS7^eHqv{&_M-8k`g{HE;vqmcznOg{Koaq^W-)3RYG2eKYT>}dV4PZ(T98_lT9{g_ zT8LV-T7+7>TJ~pgTP0hG0h)K9G>`#~0muc79Q8VsqVqTusmAMTK?n=ERSBb_jXu_Z zi}=@r8sV>7x#cugR#eRPYel`S`Ao_H+M%BPG;Y9DI)Lu<>wu|LE)6=bdSsM^0lp$k zkFXcQFeAmuf{vtK9&MqCF9Z7t(U41`Xu*Q*My~568NhxJ7DO@}Njozs7^|~IPAMc& zj(Wh1aA`G@3SmZsTe4NMmkA8I(tA`2p6X+fE}BV(uq9AID#NI>9m`NWs<--4l!9TB zvO1^KH4_to`U+%7O-ly$g(w+TEbK8VJ&pejQS1#%!=FwrMv?x;#N?^Y8ab4HG|_g; z1!!abYR-s&74+;j1<<{`U(L2XAkCT;M*?Aiu<+tQDmW^*DtLg25tj{AiBpMN339@5 z!gT^2fsXL_P~%bK(Ns~#QOD8P(W=lEL&>|?)>zHse`oy;`W^K<^>XizO7>yi_ z5{&|l42=qnIE_4wG>tNiB#k1CERAZuSiW4oRK8NaM7~14OukCKc)oPL@}}f7Tq>s)IR`pA%d*?89P;8bhjTALCsrV#ubf4Uh4=@l8rY4ULY#t{z(RN1Kk}*wx z@)g8dlSc@a3L1sj_DZ?3q{Z2?Nu5!pwb@Ebm$4X-O;$#F7}vGHL~tBc>xf|fxW8I< zrKIR-1?4CAA}vi`rLXIO`eAPc*S$df4fvWf^ZZ#9UKeJ2B(07IYZ_?%|Yiv=aQiEBUF6U^{?w`tnpkUn|kVdE_$$f z;(Aniz{1rTa~r$yr!t2s!eYX5!cxLY!V%67F1-f72GfA4z;s|xf5=!)#=$EhSL2%ZnUwRJTErdWVpXb7Q$M9Q9<|=xf zSUg1F(NV^RUYPKfsAZMI$}U6nWA$2)iLMvMT0vL}?uwF^5F9(oU-PhKVIFcX{tC9< zOfVbL7}mqe<|OYt9BHV%l(s$t;#XYKS>KN8pEBdXpAAx|&>GSy$y6ZM+Ap3mPsS>B zQz@urGS;wDEZ}Dn(X`Vo@MQ8=OYL8&7!povb*#9y0*)BqmiA=lnYdhS{Xdb*#^sMP z?6K+D=^^S#>Cx?(?cwinT*q=wx%zq)*C^|!dMEbxn|h~oC$U8T5a~)CKo5Eiq5)BX z=s<5kv><8_eZuPmngpr@x`a0gv;oJ@k$sB0V&vN)f(S*VQ#InS*#IXdh1XwFu zYc}7uic5)0NidEzjyH}oP8g3Z*O0kwe%0)%{8g?ng)o{ho-oERNErQv?2kOdQ6DpH zpWDXTzOqfRePL^W7X=}VQY*U{4EXTk3W+NuZKPcY$Qzy-)+K~oEEJFKVm6Q}szfJB z8u$<^*%KRA9+*Y)M{0w)B0OJpz6$I7Xf19d?oj!t(zepZ>yeio+arJjaY(aHvon2U zYHMn5YGul_^jzk8tE_OZq-WNvs++z1o_ik;_!t*Thqm8@f^((+x48xEfmC+*zjvmU0jFq5d+~v|s<^JWlDLMrinxwA zR9s73OtriT@(r zApS)ZBc3NNhkh@x#(l+I#l_>`xIvsat`fI}qr-&*F0~5>!jW*!I4X_}mxeRNP2%Km zWE=)}h+}}$z@cy+xDA{Uj(`&wdhNb}ppvZ4o&B02WbtcBx$z8kwuQniTCC)bSe_OO zR`-s_+9ANzByQc&VW3J97muF}W#|C*m@tc{#l!U4lEe+;z=*a>;t%6I^`;uCYlj_% zuMcxlW87j6v&ecsRe7{|lzCKnlz3ElbaP#eT}4lJhc4E)}c` znHrtn6RM+sW1+PVvrPIFHTC(kZI9@`*RJLU`tS7=T^j%vgt)vT1b)VHO8g}dF&sIZ zF&qSFm4^?9yw>Tuxez}YKN+{BzOKQk&Z&{9o~dD>et_ee_P}l6XmG(eD6R#^gUiR+ z;O1}%I0SA82fT!YD<)w#^J{z?ulyt^|G z=HK^yDmGtn=Q85yau*cA<>K`|wmovHY{B!Up3Bp&&LQP2i>K6XZ|$tEErU2UBQE}} zYjMeHc%HtCPrt~!4(-kqTOo0XxVJbxV4;HIF5>LsQmmnoTJ~D@YHd7K{N6XbZ+qYJ=JUQem+&-l zU03S9l)BUdDQzibDNQL=DP1Y0y_T}IPC^Hv)4s#LbFpKwlevSrGpQq~)3C#^bF^c$ zQ>sI%v$mtQ)2G9ybFX8slg*aaHq=(lw%wNBw!l`Wl6iu4;^o_Wd;|dx{->Y1{nS6x zZh4wK+3ak%xyjDtNc^CFb`ta$en#)?HfWr2^|`UyM>1&Ct|IHzE(|F}@vAInOs@dO zgvXiL&9c8@SjXxb-zD!hk~SH!ma9j`GY*G}Bl{)q%>K;#^VXk(e-i!-|FiN>=ReQ= zdG`;$KLr0^54sYh62u#HHi)_DT+_{_TG!0;8|NQhczK@p{L2gY)|wloXwQ-`7wGtP znCba~8yN&+*=E)Y4kY(?-O9J|xt2u!kBAuljrJe2_leV0dA``+BoF*}AS!;o7acf~~ zscSER-9iJas(ZR3_W}R+Ktx+aSwvGrRYX@rNkl_L1*rH!MYKfJO78=n@j$zRV&r&y&-)=`nL2fX+G(j(!37wRUJJYJ)Odek@xCu*WIe) ztGnrt;N9_NzINVc{;rpw7p<3?7r&Q-*L5$&H)>_|P{Z zOA;*3EDvvHyHF%#e+CR`72>r=S{+zRU4!U_CR;0B->yyJ{J18xC|zOv>Wv^XZ$;s& z1DFs)1xwgV9%jjklyDWOkeqeuwQjQU=*K~(?qK7yFD#gR)QU~5C9f2f7&En!gbbnf zTvaqxKt5F^UnK~v8osf8XZz3XYukTpU)}z-+2hGS{lPD=(}P6L!W(f#-5z2~>*>E|QnwdT9$1?P+Y zQEM}s|1>W@-!Shte>8t_i)IVD#j|Cz#khso;(Ho#9C@5^9CRFi9Dba39P(D@^Uclp znfRHw{f^B}?hfwG?2hbC%Z{UY?%+3Z?-A$q&%@8d&LdvwzkWB{g z4u6(_n`$@pa_{G==RU~Q&Q;FU%vH_R%~i_P$W_VJ$%W=><*McCHRXuqh~dQY#0X-! zfJ_p+{0`*~ML_6|kU;UB;*qEL-deetVcr}OCG-WN7TjWx8V^ejI{a21OeR;4wCX1Z zl7Sr@`pGq9*Wp&!b)y3l^h8m&iG>K&3*oPSaC0Fvk=w{$`M_zx;dQo=KkR^aVJvaR zz+dgaZDBw0p8kpc0nb8A;yu`j!2w}wsmtgut_~!VmfF*|o$CAfFV98~{v*fcBq~rkDa$X7{ zB{v11lAlswoMVhL&NC($=NjXU^NkC}bH;JwdE?Z!p*|v!?{`&T4`E&S{Yj*t@J9{U-K8DzGlLo z!(-vE;3@DI@HluBJlHG4E6Xd@>!nx3*6Xd8nxWyjbTK9q@YWoVk3mIgI1=ef`l`fa zM0$e2M}rm&1adT$kl{se(?kr(mN=-LNJp|Id1)l}?kw$G-$|}akDIPs+q0Fv*#MbH z?|5kLvsBrT*ch^wTDjVp#p|aqVb=N3)aP>LYWF+gDBPMfE-wD3T3INi!ymDCcfzCd zv*BLD;Q0=J_kt?}5<>)|N;p`&#A1UpI2aag+@iISWzfnOq(#c6bSddy z(w051KF3EZAgiuv!xx&xvAFPvpO#iusJlryTG^{IiN`Yf$jh~3U`1#27)ZNMfVBGv zNV`M#|NG<;`|mR)bR~5qI;S`XIj1=%I!BO{&^l*KkV4OlD06 zPR31!O{Px1Ow(H*_zpgi-~HF_jorU?#dgo{-q~f@mD&As_xA3!-D-}Qg^r}Tc2#{{ zs+UCkTu_FL*Ryy=s4f>{tzf|wS(6T@`?~C2Ua#jeB_LjG$wMzByuH$1ClE6t=jU%1 zxXDT`?A$7d*%Nd!oF9&}*H060+FPgw=|FX>2H$GA@bn~BQwNp8?S$U0Bkg!%SSI;w9(XOXTy$)Uvleb@XaTwIz9#eXAsS|Bp%H#Dj*6vMj z7h0?Ilb1s5>YH~WJ7|1a^gHq)dBjN1a{mxBJQn;eYiGB(?A^Q1JHmw?H?a}RpKQW1 z{1YVK1G{zu04d{>m*);=8;k_*EOf)776Nrh!gke%KFENRj zC`=|M7?XgBz@%eBG0B)1Og32wdmpQgeSp=*Dq}ULaqn>c1y>4Sgn^s^!a%-NKg$5i zP)dKwpqP`fguMiyW+7oHAtm9;M$4wg#?R)Ucvt3zIz$^#pjQJF=+&zpRB2bKZnxxn zI7vB5In_G)IQls4IkHKpN$^V)NL-gNk{FYa{v}J_BizH&!`K7qq1VY?w6X#-v z=2a7YNzaTD-;%B&@j`;~CYIfYs-tcb!16YPkHy6KZdIhzAE0ZA>%p!lI~#uXXxBBn zmZ88D*FC$cTj@#@lx}++DcVYtVAkvwqGc2RcG?9P+Smn^8sslnCc)evfO7y7-N)*YW#U#gC-?yVN7-l&FF zw^TD$BdUk0>8m5EyQ>AOU8+~B*{jp5&8k0D%U3s4`&AzS%JQMrYSr!4{M7~3I+NTU zG&RZ9M%820Zj+bXlJ}x()sEDUw2zcO75sGcDPYWFBrxI=@)8IMxriJD4v~k*Mc@$y zLpejZp}Zl&5Pqn@rlZ*+iCylmxb!zut_zDG>8z;?9A~1B`6SrM0dJA$1D(`ys>3P7 z?rBfjIQ8MzyTbX4kR}#|wuZb~AQQv|GwIMajlLv|a>PUB zIpvnii7iQ&`cO|wTiiG=tvr4Znl6_yGD}{&hN>@Wq385LJt=4rxNoz`u|x> zRo9Rg=A2kn*HcT98|=Sgq{b+hHZV{by@9GG<_mM8QN#TMsnLgWn2~|R=rrqCCU3p= zt8&bP6?tzB(5^TeZ_d7sUW0bTAy3rq<+{aWAWHGT1%3v467P;yq(uSSi};W2^*-;7 z?S0jo()*(Kb+kr%9wfgirwUg^sLGxDE%yF>d2NMbIb+3q`3H(iX#+)r3PwRuEhrvT zKFS6)hhjt}pb)4bU;@1g<&D}#(W4?zf~X?YDvBLthLT4$ppH;#sCHBVN{7rmEjxX7 zns=IMT5|fLMfyf)!L1?m3I=r<6@$`4^`S&j+`H0bU(6Yd66Pkx3UdVm#&}{bU^FlS z7*>od<|*bZ#twtTNMg_!9gHx>4a14C;Ji#7HxOy}dK%lEVE%Fe#Al?Vs-nuPYNv`+ zy?juwI2G=4-(7ifs;hnEsOFA~oyoSH0^jNtlgr&0)lu)thw-~lk_{{_j$#;bs_jRnD;|&sO(@?{> zVm@I>R+5H=4uj-GVHlCmK{ATuq^V=(>`YoQoQn8*LReeh{2#yBaNR|*5%=mu=%36$ zFgFmRfWcyDFi?yQh7p6n@F_%mj{KbQIsS86mQG)89e!!x(~x|>{Gj}R{7^&x_KJe? z^z!ry?K163=yK?a+Opb8`*QmV|1$qd!E(Wh!?MH5((=;E_2ug;$;-(rM$1MkW6NVJ z(#z5-b<1@tzRSKV`^)<)>^rnOp*#1Um8k}32Pn_v{n8Hi81h|i09dihJ25+YJAFH% zJJ`dRJ?TT=$bYH+1&p$`y?XQjY|Y{s`KRhto|kcL9gl3mUgBT69~qr96L;)-q<=15 zTqZvEW#mWO+k*KPtm&P`Mr}jl4_}9+Tsn*TCNf<)wXx7-^s|x5op?oG70!yblX(5T zd`+2E&<^!_0NJL&>R@O7dcY{8EHX?ysf$IxhHy?+(wL~EbCHX)z*%2ExSq{+_)%$y zo1{>YmDa^M=W$p|AY1fsKe8o(O?S93PgO@!lQaO2GM9`d4d_O7JKr^&%VOKCuX&SE zZ(jd{v|gzD09{GK!ZYisw+#yLa?lYcQm-bOK$;`=!qD_2GlS`RY6!9pPaaJ#{#B>^ zogU1*H{NbY2I?oRf7ed}cqL-v+V4EN2G(S;i=g#^!9yMldKxZ1epo_l_jvC068uqd|Kh)GAv z2mdShM(|(3V!`Kw?*y|1%LM-!d^`AButYFJaExUZgBQaV106#+gC;{41Bijd;LJc} zU}H#QFlCrzkYgY-U>FV=7|zk0gP!9#XLFA69O4`wO+-^>)avA{j}OhDal%9*Nm-EQEY%xTehE z0=i}xT~HcL&KedjER`Pde`1}-y{RXlDWEE#E1)BwA^;W863`>wCn^(liJC+eq7D)2 z^uS5mNy$mqNySOS3ED~6c~zBPU4Y6#;ZS)f!aRZuCnJ8TSm?raVY-N3{a$!4OhjJ< zE&?lsm%>UB?r?W~cf99~(a$J++2geS_kIOut71PAh#M8iO5K}QzaZ|7RW{OG)l5}hl`CH% zpC+FtpD`bjPtTJ*z|#>mkO@p^#sV{%DV{GpUjvhx8C#KCL0f5CAzMjX(Uock_YWRS z6gnEq7x`8DDL_%`vK6_&36Zjyec~mf7gr)%3hpf<7eS#Enq2NbzoUySz^7;n#_{S zYQ$p1I>s`_D$OFzTE|ky>dWHGy3exD${tA@85*e;*$!073nF#enCDpMWarM#@y;>L zU9?HBXc@PAyWnXexyP~z^zyk`vstoPEm@8txoH}}?;sb%E{IDf)zo-F7q{7zv@=<-J!6w2~whdNrrPGvWRGEgWMoi=5n>kv2lcQ z2uDMry`$-)V>FZVTRi)|cYOcw{o{Aa_cnnJfsX>s0&N1l0!;#)0zCpP0`0^OVi&QO z*h=gnwh-H$K00-E&f9vXd8T=rJ~s98k|~jKLzdv2nSlS2mg{VRG$T!_k8thEBjrh$ z2O}KFDx^X&_2#be=4cg35suaxDIh5t?!F|YlfI9y7Lv=Tz9V-ERqspYk>X%cWM`a# zO&;6DkwTK{Hc$;Y1oE;SAfsL>5FLGn(YW%{cw zJjn#n^U~RUSOL$B0Dha$=%I1uLTtZCGa7kDS`0}O9hrh}C#HGqJ}Rb#C_LW%LZbCm zU|5;ekFmx)>4#dz#A9}1Wfj;~1|Gz4D7dc-%{}7&%j@&xte;&T`a;fxzlZ zPvlren^G>>qswu@5Kh$2+??~bdJvr$!~4!OOG04QXLT9{?6!5!=6`v>LrupU+mTP3 zcEH@9q$%=-{}Oz~)J$iiQl4iFE|xL;Loh6{S<}X@ywX^<_^#oZqF2afkPR^CXe?PQ zXGl{NHqz{DgDxieB#Rla9T zTYUL)WV@VIW`&5c;wbcU`3B_=N)Sbv(oDHU$)i|PzEZAI;wf;-AVr)~N%5j=QRwdK zhX1pa7*xepC0BK>s+|`bZxv#dWR+$0(kj9#-73Z^d-nNk?CgtK1L-QV$v_X@y%fD& zn(i>YgWk?FOLDhE3znE^O;f2!L^Gc0v{gfsI(u@>*!nB?r{v5bVY4~_I$0i7txF(h zj+JD(_x)0AH>xutH;$|aZM;S|6nu)Yz)rg_`@npg$&6#``5U)U{CIhjX$@+xx~~X% zXecvmqZnO)mzSQ#N{p{W=gUK;WtV#`_La$y;pw6c#l459v3?6PUkJHjw6S_43GIt( zc()Oat|K-uP7AJnR^1nx7H#~`c{Tb~EMERk7_WfkmFO>SE$%69`L$ZPxR3Hk>XDSK zl(m$-l$Dg7y?9khPfAa!aLOA>3nhV4MezpYFN!GXlmdzaWr=c~l1wq8j8UX1-0O7| zUx57NU%b9(v?#sk%WTDbg&EB3$$WuXgIR#tgjtsPDf3xoUS=kM<&k7YGwU!5GrKW! zGsX&$g)l-4%ur??W*cTkWd#Lfnh6>sP?}whIU;V7S&z*oG`ekjnq3@L(#a!?k`I)yt zi@JwDa+}UxeV2RW;x=3j8~vFs1)p?uvB`-_kb1VTIU6$en5?W#kxJN;~5^?7d zq#(3p)ENyc$~ArCyikZ%Dk*SwBkjUUlAWiKE?On|&I(4W(WaM2Fu9}hH3B3ZeK&FE zA!K^er1r2qNy^*qp0m62oS=N!T3Y4I1Hi<93O@!Yf9#~5JKUK5uYfS?-BmV6R)qS!04WMw{#!@0zdz+8QCns>N-^e8q%fZA0cF)*{)W zvqii`OhuAK7X{N3Te|FO>}qTlDkiJs%H=BMD&)3PCVea?V!~vRdoWq0g+Ecp1V*LI z^D7S?v?pW!8VC#2Wk6fw7zH!OmtWu+=`&@hA658k4q%2jCAy1nwF}F+)pK!jbMvv)fPC1{YiT+ z==ves@Ckfb2Od>tXT1 zPW-LIsvovJV-o#CM#?lL&kSR>+NiyN%1DRYM>&dIvs@Q2Ron~A6?e+D%Js+rg1K_- za((0v37mu(q+>BOuwCeEnOm=Azdh)BmHjrAL+N!ucnKq)1`yb+0y0G&!zLFGp9=d z5W^W*`f}uQ$a3OxRG}71ZRY`CkebE!g|v#*UDaJ5xazv9xazn$Bvy`@ixfbJ~SU#3R3jlc~g*?|GO+BO_~nz5v&{?wbw~kaI3AJc>252 zsL&V(m|HH;tv>zVC*~&SN_NG#9=b9}(MUn1c%*Ek7^M(WeC!cDkv$nbK|S$3;XP?R zAyGYTR&$jTl@k@;$JZt}#yKW3#xo|&$A7qTslBOqV?$dWJbrUc%;!(}aL$%!8~*Zy zae*}npL6mNnJv9G*UKXS0$JSWY(uz3OR0@?dHOhaUz!hlL-2I#hSh$>#kDhgfBC&o zXv=z}SE1ud?-!!b{_v4#h0(an+Qr(a^+yfkW^0_ap^fc|kGL!J#vRror1&Sz9li5Q z(*4buQQg%J)pgaA8KPX}q}|WBTe-vB!S0^!7u+@61>9Lhq>m;1 zlSadm^j0Ry;Nm3*yz{Hb1HO0hIh{sZS%MK-<11@(NTFXdY-zLY*5tCuPbUj6Fs>08gW z!L|R~udVURVZBl9m0DOWxYn~)pw^=y=jXp;!x$kR&q~+hCq3zLl%vK1t z{lb?&J(Yn(_Pp*j{t(7?jc@fSo^Tnb3tB04lk3^17&r3A zGTolL#k#!$29V?3;@raABHYqTntVP;wMcbKwM+HYeyF9?HrIC5_SQDlcGkAkcGvd# zsE-v~#~a~{@{Drp08zJJpt7G(4dyx^8{E)pM&QuLINt zqJVlqouDRAH>sn;I>YX*J=|`~IAGs|!C2eG)mX^b+_>2IF7x>dNl$^r_1GkyUZY-V z^xMamJfppJAM1LH#Fcq&cx`w)d9OTP@dDT1osaE~jOes$w(GSEzW34c>pdymAGF7U zCs8i*fA>*-$LqkEoNoN@s?Dr%^JD`gg1((Tjj z(>`j`;NbVj&(_b{&)&~!wF>*^+lt02`f~b8`U?80i1LWah>D0Rt#YkOtqQHG?(*)+ z?uzaz!E(V$!3x2uB4A%{QAJUeOSwy>ONC3-YWZsAYQ<_5WE}eh&eCwR;YtIz;X;Fe zd_rccdz*W&dy{*od#ihodrPnVQn~kp+r;|#)3v>|OKZ_VGvI{>K&E`>*2J4v^wMWDyOz-WoC6`u*w?jknhxvWW&Kw|37i ze5ZS&^7iUO*0La@)}q;w?`%(W-ZDRAFAE-PU7g+i&hYlk=f6B&NVlbb(fO`@m);{p zy4~!H@OQ%}E^jYpMJ;`K^Tg~eXI5xkyZjf<@48PM-qL5q?6Z8kxY?`t;lyTd5Bmz6 zf_;H~jg7=+V1uyn*l=tbHUyi5jmBnS1F><~Fl;LJB{mToh0VkUV-v6u*mP_tHW?d( z&2DV+|KR_F{q(2l?@rkNoZ!#@Sk;U_5DfZ%^r!eY`*(e|^{B|M$gZ+1x2&|Ru&kOX zubYrxv)D7+li%YyQaGYH;yGeGf*jHNW&h;)67@3^`WzYyeFaT{zJR`lMnW^7LC|<; zI5Z6!0!@NOL$jcP&^TxqG!^<1nh1@8WSy06-^bL6|EIL6)hFr744psf%*DHNAIcc z#tR%+-7~r-x@UEHb?tPSbR~6lbS-qTy5|bc6x=MhP#{@w5g2BUPH1=PTd9zd_mcCJ z^CmyWJn$>d{)4+M;F8xR@94+TUeTVqUb>#Wk9)m(J$t=H9*cODJ}&k0FD|8KuxF%a zm_7SJ&S`nmKJn%5m%H=F#;H-VdcZ7}a4)2Hd*;XHSmmz@y~hlow0xutJg-VeMTydQZfyj{F)yuG|l zysf-Fye;?-_>XuBz6;-m@5OiGTk-97AM8HbQS7=}zy2C_tNdEIXzlG;UvFM(?qhye z#7~4)L`}pM;V_+S2i-Fv~^7V{-Q`^tLzx49n|j&J+Z0ejQhMZYG06a0ZZX7i_c z|8k~n^Na6yzaQA+GbiT*BJVY2e@*|ve8LbA{r-dHY}t3WXG_v2M>W4op`U=Q&@=D) z@9WLH`%ejb9SETgL{69kLN{kOzsLM=c*cF&EBQgPL-L~}MY2n>O|n4y{2#Ei`*BvdAYB0i*mDa3(j6O z^}Y4IZ$#=v-jvptzHzUgH0LZ88517kG>TcxS`A!P)8E8=#VlfGsovNQ_PQH&f7J=q zan#+d`vc%zuGWdy(ba+K*y`l!&edJ26RG2>J5zVF?n)iFt}|wCAtqrcW{4U?ILJR> zcR9iQHpg`U2l23U%qiIX{jC13CLZnq1do5U_&w7J?vkk(!xOclANk0W0n)Lfq<{6{ zJ=3*mjSQU9g7dy(5QC!fnszFa=-74<(24R{RM zuRERZ^FL5~e`pr4pZxx(e85S<`%~J0L&u{r|E;5dZQp>ci1wL#rx7zhJ7<1q{j3Yv z4BkI&vLIxiPT0IT8j4wv=I-|8?%wC_E{IvE^6Ax|MTN#`<4TDH@9L^z_*IymY4-@tkCHXn*;EPbih_Z!2Htt z-Ix=b(;xS~8~Gpko^%FKeNR^c7PGM&vp`11SXhJek0^lZbn?=OLYBw7_yWGW5Bq$UCobLlG~gh==UR}xPN~Yo)_V8( zoJ_di{nY5taO!$FYkjs#0aMH0x3@DPmF>1Vk)`ly+rjUa` z+EXQr3SPjWQL`dm~SCdKuAKq;2iYCF)!KCA^%+ z$kVc3TC^f@+ayzz`V6_0E=Nn{AbI0@!{iEnVM!TeM=D(Zx`hP;T7Vcq6tP1SNfCGv zNi?xY3u@tt_8i6&MM}x2VSJHD7WoHt5Rv?j%rI-e4>h%UvY zn+{jeIwQjQ?k4DNVmiT{OlBJCF{rB~BZo^!?n&g4;gVeUTCyy46fSKvJ()c}L#8eg z)63iyfPDJX{pk>@6ud5s+%xP}>Q0X~BYo1G9;Md8>PpC*!|R3a{Al?ivqE=Yv|pha z&OMAy9Mo?RYow%fmQ2UMlmfa_ltcPM>#QV`gu$bt4=^RfSz)GnkYiC!eo!ghU8Wx( zmcmDcL2-0#pp?Q#q@Xu+%phaZBYaQ|ofK%C^r#@Hk?s;mhV(_}EI(5Q@-eIlc~+X~ zPf&f)m)s!rvlVn%peMvH*r!A~Z_u!Tv3_o;GV~=cQyNI9s64NkL?_HNYT#H@PHax1 zvtX)4j>D{sUS`o@nf8z}`m_2kZJ2ZoWRSDwFX@4)_j>rO=}UGdcVswx2z+?=cC)FpN;kd$(Kj4xD6Y0cHxo1v;$SqX#XWybOejva6!)$9vM#iQr{Wv2a~x+ zeimWhJwznP?3X*g79uJ(E+O9wu>6BB4!Ei zqDHDpvN(6wNCgF1?=XAARb^Q;yBwq?b%l1SEUa(E;Q+FmQM9D2kW768@2kPM4|^A7 z(eBRCtkz#vmf`qhVNnJVDbuu^KrD(=g)A(tMVJv-h2s~5bsDY`G z6BJ*o$(dMdKqXa|3`T1+#`MT4f z)7aM8md(~x{8B12YqEB_cBpo8q*@z4bmci<6i<8tG{H6@ zH*wA+y;!RjI?A(}upY-5%NfrZ$C;2Bn;D-OmziJ@YY}e|XOS=+I~_kAH=Upms}PUn z@w?^6=XcYO*N=xi_G0JfPQ?yYTbs%Y6R*va%%d|@OYiIQJH!gc3&ue@6FW`jsq?O0 zm)`KbVU|rcPtVXR)pNh^uIawVEAc)cdU0Pg?_l*F&&=sz*=3jJvRVGLnE2<9XENsi2>7kf@_ zTYC4KI*ORGmqaY)9{i8YlWKa7&VaomeKqeSom*6`(x<%j{yj(9YM#kY4hQ_zkjb;_ z;XY9Me&uTUNg840h=DA}&17Cj0RSTxI^cL3^(^aI;9K3#H$39Y;_EubI;1P(KufbX*34$a|}pBI0=@K=4GV>#fld7xuu=uQKVQK3uB}} z8-q=B#Rp?+SFu_azet+4D|0VA+v*>ggWXxqsJ`-SelGct$(~Pmg~NS6|UxQ4+|z zhQPe%%YAKaFIJTzt9=mxw2>oH`2KD)S1Wc(12Xf3;E84w_!FSsbh#=<_5+8tu9!oL z7KLe%%{$^v``t%eV7(Lv3jN|m$Ondd-S2G_#ds(z+hGU(d`;Q{4tE>`mhQN`-hNI0 z8r^lyE&%|#6Dw8TsJ>B}$eqGX<*mWp5qo#`?_B@B z7O+nRMi@qf0AwJ_ImcIrU2#{4 zyC`&|o$b-Z3O-}RzcsQT8;IJ z_g5K)QCYeU3sp=Hi>kGmlL?m&fQ1Tz5`;uggY0TvF$=J!1$rqEaCo?94fVsD{ z$&ksU$>@JbZ}u9-8b}R&jbIIX&2v-rb=`F(;XG!9A55zdKMWbJ8ulKRq&}sdrOKg$ zf6>lljYjQ8cV&0a z?(*(l+~wR=*rnO!*_Ed9Qyr++snXOlyRnCvhryT!3WO8fNnVz|o|CPkt<$`tqr{e_ z^7ahiXEuL1c*T{?dnc>^zHWid;jxp&?#QlTl!y07B;xYnBF-Z{UBzxyIH<-a;3 zfaI3^hj%t=Y z%E?%8TyAe?{lehcCc~H^+k5rjdRv!dJY*bxsc9{RFn)OqU#z%JvVFRJGC^(ICBOyH98NoZ zcBLmkvH$qQO6P~<@q_JbAUL&|ye~m35ek6j?f; z(DuBt*WT9HR=Am)I@mQZc(2ogwK}|7vs&AfxrD9coN#&)v`D2JKSCJE9lT&FG5_S}JDse1va#QS{8JrxL9Fpso8^q+J^UwrzE*g){XX>YOns!ofRH?Q$ z)id3^tnG-eXPpvqzhuitfgd5>am+SZC%)>X0+$0 zdd?}4($Lkpy~juOG*dS>{`3u(Z@2g&;yG3?Kc%p7X8)C6+r`JwDftZ=>1LhBh)I)4 z*-5tbKio2Fl^WC=9(=-C5Znf8o#cPh-4>H>lNOU)ZrMIDKG}QE_hJD7$dtVod$0E* z_cHc^_Tu-#_tN%4_LBCp_5%0f_Sn}M*CFfl>w@d->(71Ek93ce&tP<}0bHMRVN0z^*!5P138%IoD6 zR2K?_BB6xjB;}+yLvgC*+|-m-pJYr+=$y?pJtqfOw&&bPP0!xcURxn-B*&%V;{l}Vh41V2~Swx z3O&4}*U~-5^bK{FrtFnbGvxa(u`E#5OQV*eImvIXcWKMQ#+tpqPd?#%E0PtuG@D>wm_wUHV(Z z58h{t?;|an%D$Qbb|L3aGt=h#&FqJWKl}UOnb!Sp*ki5}2ggI2*lw8prOTca^W;Gpy~ZA?T?!$G^Y@WpDd?gr~a{D3U<79BmiPuP9gYV z+{3UejWX>rd2lEH-zj&e4CDtN#q;VqFu5Xj#VEm{MA|x)sn#5|z zV#sRB;KH!Vz|Pf$+_+Q4&ydISPxsywA^gD(gJR|&?3;n+9KO> zwuQHasYSBoVvF#92-z0)mgiO--+I3_iCMEiv{@EdoFca(=^|08eEH(}Af5;Sj17+K z>988M9k!kqcZO`S>;n6hF0w|kM6v3y=&%a22(y;3y0N&iuCsEoaI!Xn<-l?fvKSqU zN~E=_o~o$oCcQeV1M3otOC)_Hy6xQDt+}f<37)B*FFg}0TI<{Dd&ljkY^SW(#N8nq zVjJRn0P^_@6#W|$U5dOOnH*^pITk4$Sr>UZa^^P_YRNjoLK_Kfy9~s{Dc>VJn`P|c zt>W$CZSueegP-na1CKd&Ann^aaJ&B8{C7D2?;}XLma+^0p(=d5e0&Mw33QAR8c`aV z8o^;bAFT#$2d%$~J3&^&R>Z%j{P@j|p3@G=UWiGFOw~@&PNk$!QiW24Qj1evQ(RNm zQr1#AQaDmGQZiD_Q>Ie>)K=!Z%y%Urr8A+kU{x;#r|qr1t&Jv}8@e@g6_MbS>Xb-q zt!}Gs8n&m3xq;ECwW&TSKB*XOEJ1-lL*OAW5)cFk!J9x&&?2xC%m{u2T7nvZpWr~a zPB0=!6V439I(^*fl(0$@?-uJ8?*L^`f{7WL11S<$!{r98%6vLMUw%J_>+CgyvdZwUE>Er*31{W8M-;NqJWPXi0>VI8&dUoZf<#^?uI@sSxI8wECZ|KGruUwNR8q)w0ymX4ebla8ehsg9(Dt;8^GA;V9Jjyiv?B%qgZ~=-;5noQ0vKq0O?HL!H-x@M7aa ztK+hxWTVtF-Llm3lVyfw;$^;N+-2Z0)w1aF^JSK0vSp!V!ey>y+GWXQtYxNUkw&&g zn?{O8-A0kdC(Fr)d52+6eZn7ZEpn?>F@WFJg57Vt-=5ysZH#Rs;;F{j#u0hw%CUdA zhksZJkHv;XuSGu$?-1mTmNTp{Id`K z$vCfsCrm?NG`39^P3BFOO*TGeK2}%#M}0>lM?KtDS7sD7&_$aCo5dXre<jaLIbh ze~T9o7Zi4Hv-_L&lIxQDR``}XAgN=#bD(n^Lm&)d_=29`{@}6T?%<(dbns|!Z}4#N zI7SY5@FC%TukH>*6x?#$(%gOw8hjXg=$5jeuM4RS>0&i6a36FXbRTq^0BwrC2JHd} zh**eNqxhrPapEvIL0H&m_u9nf#QHCHTaR7WUH891e*pe~8vr&S5}*j^2e1N40NVg^ zKn7qAAPi^(TmpyyiGWoQ0)!AX0zU_XIkc3Mp!5AW8fXi&0orN) z)x6of-n`ws*1Xlc(Y)jP%Xjln|Gy~wo|Eq<{d~VD-Qz+108;?zYVH5p0r&U+YX{`^ z8|F7XbrEyHc42iPckxKgKlBy<+k5kHWI3V< z(-?c=!r=09m2uT#HNU;1Anrspzu)vhJbnO;>w&dpCE{22n4N zm-LXdA0iMY3B!WP!I)r{FjAN%OaSHq!-qj(954qM4a^WG4hw+cz`!sU1Pn2T;6_v; zoDol945i|wIHl2=BYQ)8_c0_e;10nK=MKOop>AyPm(jYTd!>7&TcwAyYon+*!g!2! zOlpU2M{4KE4#N)a4sb_w=lPD%4&e^h4(*O4My;4>M_}ip$KdtYb+_m`zyk&kjj+Ge3HqKNu0@-iJJ+`q{>z1u%yOq-wycJJpY>`yMY{T?ibVYwf_vrSvtAo3Pn@3AS zi{DD1v!rv7GnTWQGn2EWGpVztvxhUjGt}9^na0`BS=>3m8OIsy?6Lw|8C&6Asa$c! zV0sKq;!QZ1T5aTT=n&1dmO--lLNN5{C)j(|FR!$4IYX&GsZKDv;x0X-eOmBYjrR>k zfb~WHGty9CH^NM&ni*q^hb#QdFqF1C|JOTLW)Lv~m;0G+D2>d!S0oZI7(=suDgVu= z^g^SDz&wK&`~~Bph#xLiD5J;BNt_dI-GgVIKEe1e?bZMN=l@T8=RZIE1gqx@;~ru2 z%n7D*+}m)h9)`7OR}~Ngf@JK)PB?xK%UZ0fTrdDgIvEUp!Xa-MhW^x2vD0@44@} zAAv7{pNg-F--sWlFQ;F*pQGPz-`{=!Uw|LN@0o-woe$khI^v{oFeHuTJF%VobH=>E zH|!XBRh1(C6a_0%QF+xO@)YO{>uGdg5uJL0?K?qcYT|?#R(Z`Ls!4>cOg*y!sZ(^L zym*l$Mo(4gT+x$JjMO-~QeLF!<1UmYIq?6lxuoQfXaMa~r zlS;;{jx);x-6BCy1k+sfS>JPuyoER1B$?5w>-=sJ%@9Z8`Dmy0@d=EC8n;{K0@Gzo zKwr@Mlapj$6$u6mSQn$)=dezAlHscs_(qDPi?|?qypLj?`EvPH_*VEi`8xR>`X2hx`qKJ!oQR!>owfem zdfJL10wdaw+UYP-tbA2$RTNd>x)3t3>_vII#15`4Odzhw1} zpP4EpUYV6y6HYaRu#%}|)=w!{7G^et(+=ftzH?_5O+hGgGwZ@>{?TX+^p>_geG{W( z0cRV!%}PchsirvX61A8{Q}>bB7^PQvdw7O2*A%r~*bJ+ek|C1YF1KE8iRD5mXi94D zqo=$WLmqrgX$Ofv#j+QRxuMPQ1Ae4*g~XX++N0TvIal##=zwFc2u&rQ!*1RrC|ORi z9S_4ur?mK~hOAgpQ{!2)+pX~6lPs1>C2zCgRw_ejESf1Q+WZ+-_V6-j2?LcOf1*_m z+)lYaUB!@}cF2=uL%BawMU6jbh=5rjZA6LRa!7?4GeA_~_ZZ@2u1gz%@H-4SGS{V# z!1x1(0L&g~Be_;ExF~d+G5ed9GaQ$h6tc~o9c9Hh)Cc!dW=$E%6s!Lqg;znBbUAKU zWP$Airu%S$sePGqQyg__MThL+qtM1T`o^`9R&j7H<+(IR{aP~2u+l-fk#(`v%4tXp z?gVLM(buhY8uDg2P@a3_?BZGcWEBOcg?ckCmRZ@r^Pt`gizq7*_z#FT+hT{+OSmND zQni-tA8nMB-`cezL)dUamVnIP8+CU|wKY}+@E~azb1sCNsil0=9X`#RnQ0{B-nvOJ zM8={EM*v%DH`(FeAY*VNRrkhCz)%D84y2N+rE*hZ=o)^YT*=e&X)_X@tK`hu60w;9 zH&k}!YDw5^go`U3F}Kuh$`1Wtxk@%-Zqaj(u@#*ZoIEYsE21jOE=pJU7W*MahqQtr zhbxE4K(ju>w$j#VQeqOjh){thMwr}*aY?H_!WKF?SL7tW9NS27_-0AHUStwhl&8>! zx&7cxfziJtKLjp8>#v?8;o}e~Hb2$V=R*f@5oS|(JMg-8lLKA_S%n9xo)Qi%!+n^4 zrnPfiH*Si$*)I zco*b>_4@s3%BJN|SAiOH0fd1g0`Xc9xQTk79LoJ%4zJ`jCvXP&K2uf>ukkei*sSr# zN&o`%MEz3k&XhI9!vYeZc;P*Ic%(oTRCRKXBAy}eH?lgjM+OfJL?B%=dKBe>(h?OD@Vz|*bPuMk_yeguXmyQi4x#zr5IRCaQGKn=QH+ftn zEuSQxq!1FDADthYLd?XW2qRF952b9SjHG1YQ{nq=p@pvQ`x2v0QOpp@70ILsCD4tp zq|B%6q?F{lu^{N9jO8P@WbD_9Z=uBJ%djX%FGSanS+ez;#D`IW`Nk}a(9JQ#(ZsQC z6dMeR%!-_fjEd~&^4A_3Gf2JUB5nn_SOs7P(iT#~sQ``j0xoHIA{Wvups|&&mo?6j zyU-dQ^rzPY8VIG6|Ghwufw%v!aXLUhjSXK{iS+<-Bb(FK6=TJLbjUxf=(yJ|8U#p6 z$O$((>NOLvUn3B5a<3lqS`%oEOiR~*L2}YgHEyiHlE6I;exw#04n)Go};zQp^Oj%4eMctbcZp6E`Y#MQtQM3yUwxBC!t;Cra$WzAZa~%5vZnv2aF9MEkuyQyodo zvf<;gz_wUL$M?mf17ojA&Vu;L(gZZdAfjy6s^9&96v%SuVzRsXcNSo-1~;^YaqDXu z7jPbFl<6+_y)lgzD1usn*K%w%rip7DK^9YMdA2^KMQPAM{TR1e(kL`cAbu=c4QV18 zQcBmV-)(@V$iVbd)$fIAOu#NALP<0oqJyC)Y&C|Us5fNB?2%e3Woal2WfW#y|NmvU z_tGKvjSA=Em~nkq)2HA&KBqTjGpMO#j4HJ*yHlAbYF!zf2{C2IDkDJg!@ujXlm4UQ zo%~&couQ|oGe63pzS|zWyvng5w8hJ`y?6cWgI~vAHUclJ|ttO2h(2F;-#ae0_ z9ZDDMv$QNNT81iaooIVtKiqXpLYEp2eO8l|_0VKbk#Gn{1fm8>^0Sd8A&W zUZS3Aje$jrMFV<2dX{XMbeQ5Bn~rJuCq20uMT-P*QXZxUu37C9i}4~qV8r-p=IVXID0lhP&{-&0pe-cP{xRv%=@2fC2E>eD*%nGC zIfq+F&R(G`9r*!L!PyWy^Hrk`sgr78Y)@FWsNsQ}OEZAlSI#VHoc+5cOK<9k(Ga)A zy5Bke*%rp=h6W}3nwfl!fFy|2uo@~q#b0M%w9G+c9NO{5%XmL>2C5-~GReT8J=$f4 z8db_23|@x&i8HwxF3LaB{SEhN%Y0BrL2%P6)M~1~={{E3OOzD+MsJ_AObsQKc_X_I zEvrIyX51+58?Ry$(PozL~UuOg5*o@m&NS%a#T%9zYcYP9RTT;)}Jc~n*u>M7!%%67YZItMI(u! z8^DB2K@vNpg$;TvrXnVfqU}v1cO!$h`foT!T+OB$c4GB26fc^ z-MBzo(`FH1acgmfri+$*9l(64_d8}mv&P0^9BmTa@j8Iz@&;-f{7l|5&U$^H8`>^z znz)oBku8x2riSPQVY&U&^zEaH6Ck!>A5%fJfbiWi*30`AqwC0Q*v3o{VIZ*E*t$_) zOAKi=Y3$i6Hu4?dSOAQ16d@>Nw~f+IF5y;{%Tch)K-xj-I7hz9 z`^pY)D`M(PrgEST3>B#Qxv3>32abxo`pYRXrGvK>b@fl}BBolQ2MiTT1~v60cBu6a z=+T&OF@~>nDVp9oD`WVO+UAUAFE=MQTDRPP*Oo~7^ZbDiM{Mn#h{h?g^RVLuqEf zw8b(!?WgRN1~L+v@=81nrrc1|8HsFpou1fJR1h2Hyc$o|sceW1LmtX=Zfa4+3Qrs+$xXrteWaj z7D;w~`$MU<#?y346`32GNyfvL&uU`Q9_rib8;Rj^$WAy<&m{puUS5h4X(fvj3b*Cpzm+eao>; zq%J(GGVR5_HYeQcKlMTfY_^GH%1foVAx&zpVmK-e-uuj>$&Th=trwM=!wI+ zNM94$r_UwkIQA!b7gMlqpjx2m-KRftCv59#=z(XeoJ~dQkiiwWD=$_rwG|EP)idjAqK0)>8m1GuO*b_UQS#@Q7K9}yF*#qKz zTz6^p{7en#Ir@OAhAWxBi=3>UsGj`tSzVzxQV}bGm6}UX%+_;qw{Q|{`LX|10x>nIV2SO>q~7NmdCQ2% zq<-oILTW=nB3r=ZiwRJ%o6JUHNq9+oN$7{Cqk=h9f_1jr6C=fYMf&gRLO&3WiscXr z=Grz+{4Nre^@!hoHVVuU5X`i#oG>bGk@1MzrW?h|DVTZ}5>)Z&;YOM8eEz3Y(e;I; z{CU!PfMCenJJVn)!tia}(f=A1$e|E)u?5=iuw7^)LJcQ$s`{c}=hLT7Sr681Syepy~T!5jOK zbBTOOwEoOCz&3M&yVzK!E!LaxkadZxUfkAa@~BYqT|o5Zi$lI8()v={@d=Zn!{QE^ zfVfMdL&+ta`XpN%+k(l?&p`^ek(aczRJ6}&$!G~N);rI{lsz?ek&`tOLxq;b8=q6b z0}7=dVZ?bPV%DDQyIPZFg__{fPcYIvaxo`Qv0cx}y~1g*&Bw7e`E7S@qM~?NzA3?(;s;%8L2GqS<~;T8Fq_as=Hs8}Z5Mi`qL9~* zWTQON4xf3t;<06YJ|4aLLEK8}S-LwmkyqUI&L`#w&zSy)P%DjR)9%s4kK%xLSJ6kf zKmO~7Kr4l(%kJuA>O=tF$7hnyCCMadJD&L~W1M|7c2StZ$fht;Zd`F(h9@aM&V;yw z-(UOOes^}#;q$zFRfGve2c3VI?tRp5!URpRh>T0@DnW;+KmK{fZpFmeq+xNBj7!`q zQ3n>Lq=M}}-_4tB`|KlkoY)!P8QO`dqJpr3Nbg_Y*qw7RD9gelkaxlHNEv3r5PE#& z`ygWFh(St;9$x+)C3dg|3w%Fi<`tX`8JbMMkSz$g1GTWduTt*X_oh~|ZC7KhWaAl|Mi#_Y&> zGI>yE*A0GA>=)vvPN_+Xw-HSuVB()rXD3F%)gdt&_EsuPmLycggOt)oKhzXX8=l^r zDnCEpih6o89P+SdDfrJ;Vh+*4Y$e*~Gfk7@#m7a*g{JSiqJweo@ou!w9d_p@T|WPm z?}`YfxhJ|YJ`dQvnxy|MEgus8KzWaQqj_#qb;C1ZTGS=`6C9H8fPK$(6L9`=mwr;Z zkp6Rs;$vuV^n(Y69TmqW!RE)t!)C{(#umfIC4lqXyd)q{A<&>i@(r3LqyOr86D323 zMG^KCTY&&Vsm1%n;(hPuL>a6wR%|YUR?2feN;BR*v+!=pFkEa+f)A9Oym}VZvGD7+ zdkXymWc$Z$0}a>Xo6^INj(2r8T^X6K0;H!#lunD`fOO;+ z-}u<5FH=eEhhL^**vCI66hU|(+C^|;vHo_f)17IyU_N|x{H*2LQR4yEeW+#_wg`zboFTda^?3NYdp zccd4i^~3GyW7UD`qc{~$?;qu>vn@4x^Sj{z-d%e174O6E;Lba-Bb(}ev#@URFiC72 zf<#IL?+ad#rEB-EmS2(Gv~sv|RC3Sd$m9s+XnUVUDidf@mhg>O*qUbrOor^5WerTA zCwi+tniKbuL~0WpPzv)onlJQMhnZ9K(nSUl;7}6r0n9=DuAytMd#NHl2q-AIO)pH% zcP*RyUBlMMdubyB2wqas@ky9dn)&ws9cmuE=5a#UE3SyA$gU`+h#RjGKSgQH``yCI zJgxU_Qc9FMZZW@N1Ng19>=yCYr1t^gH%uxLJ)2B|bcNS1G?RGmUkD`e-oB^+X9a{` zGI`ROKM=PjO$3BTfb{~yQDD8`@N}?VQ22P{1$en>92ou$yer*v!L%aLbI7zJ*>le%A^!oL>_0W2l#VfZ&`~`|}!?VQS0Q3v@6ZQMW8^_~QQt)w`8+A9w zx)E-O^%KVDQa15ATds6B$GN@Skm|3384t+CgDI2v@+~BKeG^ZfZm{%o#0SOCQ@Zf3 zTD152CY?OlVCrX!$BG}PH034Y3l?rM4;+y1k?)u9mPgC?$`3Fz)Hh5B%P!+NvDJ4> z5Xp+;9WvLyv$ZKS4kyPuWUtSiIFii_=f*cCZe{mW-EEy9l~u$0@v0Sgo;EQpJN`nF z!xOqITDUCh6P{1e%HgTD`@E1M!i2P$XiN#NTk2w$LYHmDJyK z7pw4PgcQk*-Y#jOT7(qojnOWCAx}gnNh{BJ!-R%;)cRZ3<1p z>G1B^&vPe^85v^2IZ0xbzAzTXgmaVNrYOaRGmw;EJc$^&NT^Ztja0`Dk>@(SxCMb-XZgKGx$Is8u?L~IF*FeT7^AJi?7Ul zst*~b{4!OF6-y;DE1oyoj6Y~LBytFl`kWQ2qLcL}tDJAqtQKt*HAI(+#R^t|Wj)J6 z@U@tcSh)9YCYFVl#g~Pa#g--R#fko%#mXndE5xU2p3^TFW=F1xKMg1mE+H!MQ!!SN zRKd?8=i@Rr=&p~oBb*j1AymoDYUFjYTB1O9v)88d z6MVxkm6Q@3d;Z8#o^w8h(6q8Ed)|xyrq&_`Bjy z#d*bD#c9P&#bw1q#Yx3=#YM$^#aYEw#iP^TPJf)vo$j1YL#{mT8Xp?38}A!$8y~&@ zc;9*7kOzu~v<2dK8F&5Y{PDvQXd>fgtMIZ zmMy*i`W?N9TlZge0v{+a`d;}1tGsQN+~(Ytm1dO|mFAU}`F}~ow8Z$apCSh}8F@(k zyf@RC#^c)kH%FPO=>6IT@tM>TC4^4hQ+5+3K2Ftft#W!x(V%&O){pcSAII1)=X7YeiefU@+Kmuktrgv?aG^~ zOfJNJ!-Iz4Ro2tX6rbq!H>YDMJ_+rHTFFJB0J51cpB0`f!`cRqsAb_~74UVL(OEo5Tt;5g;^X2!$0v)^W%~=CHtrd@GN*H!f9?5-`;EIivO1^79`_qpd17@dVd zZ`gWr@ElmnTLy*X$H+x>H?>j%q`tNevOMe*UoT;PZzN^|toc5iUsyJu{i`DJmcXP@ z19f_4HGLKl5lLw3I6`tmPH(;6H6Sy$zV&$Y^SD=WJL@#$KAbF^)|_OV+MGh1UYw+Q ztTlor=cYM&CDkgH+1>ncs0eE!C=C>6SR#WvgD&GaXB_66IW6_OYh$emhp{tMISut1 zYkr$8qHC|dhR_c`$&lj&>m}A8%tX=dkz0V_=NV8=UA-H<%9<6k7PNcR7Tqvb1{kA& zHm+w)OYb19!V$=wEoC|p0o(LsDy0y;AEc5W<8@a|5lBSrtlDjk zFxt?G#trH}JV=atGyS-gyt^mgYf!2J`!h{Rd*O!jRQ(vsRBO%Sp?BUHe>~wE`6o!l zO1I@bGrj%c}KIiUPhuSJinn%zRX=WD$7^Ka}r zLgo8EzRudWhw&;J9iKlWfmEGOO(Uwh=hxVNv8~bkt@;P}$L%Y2QbUo`L=z7|P*M;4M+x5JQunVW_v1#pRUe|R9{e95=)!|RI$K;2?yTkLB zS1uJ@KOXonEH8ZtFSGez&-?H~JUP-x?)Y%bXo@%dWF?nG(SVZ5+$zExmx+zQkTQ|? zw8u4K4Y&ABd=W3C=PiCQWBgZMd-YDbEgJPssx3qHPTDPT^-h|t0QFA#Egbb=$}O;Z zFkp*KJ(zmSMm?Bri$Xn^YD-srHR<%=ZCA|c^4qSs)7!yCg|V~CSE2)hq6)BAqC0~v z@-Rx#`N0;2G0E>xb(6%?@5kN8xj&my+T%6@kb@~j^0Cywg4WgU%z34qVYZa9%$LZs z9qAwyXUxexzBaD3b5IrLdH3Xw;SP95b@%*^>`v&8@Q&+__D=E+>yGJ8;7)vwWR8Ch zZ;pKqw>(uZSFf}hW|@b+NiQ(mscx+Ct{$^Iv@q^#jrAft5St^!G~Ao2kIa6cTca-i z>wtKUw7gVrygJ{q<1hc13%moNxvIMr|F{dH1FSi4xtbo1UO`Q#8Lh?rNZDV0*96UU~IBBgM;i`1mcyu z#$aT!Dnn^Fg4|tkP@ln2b_{osyq0ORJ-GnKUzYnt%iB$O@~~{>ix&3Hoa6&p=NB!& z&5Yz_*`pUN9Gm&cx3Y9E{N8S+BoD~uzwl$<%ue2sHF@C&+)PgnVyKE}CqC5~6lXY& z2z+&_KFG#^BP)e}&A9n~P?zCncpybA^K1RLvG27CZDl7T;IAMW7z1^cLS#6c9HRJE zzfezh2p3Hr%aqpse&sQxZnml_Wo%xJF|UeVX=gm-K5ON!_)nE>@IBRD;JsJ!SbuNH zM^)ln5@Bse`vt*jJB#U_k}y?@Tsq+(N9+ZH8Y*)E^oN*HJR163Az>QF#sxsNsKuGR z^T2le==0p2JQ`siM;1qGM>0okN74oAg_3Gj%iM0^xQYlTB14>I2~3auxntZyMm3kE zVfW>%O+%xQDyx%+Y@bxlPBfewiLS?nFWm~s* z+#%7jWFwAa(n5YUVYQ@XK(}z;B|F9`zEyS)7sZqI>3yUu6|OaBTFmngEjN`26g+>S?<(3FPU>{K;`Vd$kmB-*K`U=+e>jQ~dY`#$NU@ z=x?b&`i`WZY{%1Ai???{C!K+&_tH0R?YGAVSEIL=L06rRy?)Z|^gq>(yKk@WPw6^M zf4UrBNh756rAb1VA9){mAC>M?9+=L+moE>JRvv$u+IDtEikM2{x^xEr zmD_bUFtDE zwd#KJuwL>gTA}~|5eVQ0T6^`&wSO&CF1ojFmM}^@ktC5n5igNF@rLJbriaI)gAn@B z`MMOZ5S6!%m7 zJDJan6R&n(ki3AuAb7?D!U=sHDi}%-%J~#uhUinmUoy$yUyOghdj0A(aoQ^_;+a>1 zuLOxbiO*l16BE25AdY{fLOgDU{YDT&$Z@{}*;^HEp zL=-d>IGGaM+}w2B5ft}43PzCTG`F%}8fa7`lr|HaTh+**x!!H>*AyBRHT)`*n48q7 zq?yxIf4#N`Jz$+MjGf8Fjbk*{Y~+gT=I7nH=AIM;yxdxtw~(f~Rs5Y>QxF>@ewnv0 zKF~>XYx0}IqKontwNTX;EOhBmW14iY_`Auni~ja(!L;vz{qlanbl?Ga8Mg3pqv3Vc z^obZvRfn%};{1j0;lP1c`zrdtvRw*&;L)D4o&a!}@hwKvNUk!kCs4U)oUqcm@SpT2 zikP&Q4dg1e+o5y4+xPl%-P*JJa_!o)2XeLBPc}w@tItlhNnCn-JrbJS+h^A+h+PCu z8eh3UPa0`m#7`ROUBD;a0GHAeZ#oytXC6>EZ9e>tXMq?!oS1?IG_W>f!FuJ)Vog3YQCK3bza=4c8182#1E#gd2v7hX;h? zgoDGM^a%9e_qqm78*sVA%PSKjSc>p`NcKI=g|tK%E@ zjH|aN!8FG{C&Bc`FHaswjtjuX8~2h@gC{aEFBJoMH{@8Q7ETK3=&4T%>FESm; z4%esor1I9MMTwB0DgdjEzhbe(iP}ML`(-4FsNE)F!@L2W>t?TT zHb7Z@-4aB1AW#r{PE{c$osq?)Gw*k*LLRc(FzF24XaVM>DbBtTMKiaX@mg!QSKI;J zJXR&x2+L@^*~FF5Er`2q&3{0(U$t8mt=h}=$&f?@ON6xPwX@xdiK=hAe)E=Votua2 z@W%G~_L|OL714&cP5jPeD_@&uUB7M2{Z$cTh~FgaY`o&%eBnm(OSsP|e3_%zCwE=A z*C}!NX%mYx$I4u@lk4(&W3N-v@{=YeXSS86D`U;ZuJ~>NbiTcZiEZI+@ok}Pv2BR~ zPp_Ddu#Z@efGg8(ull-Kh!q z6u^}I1Vv}se_~B;N`7KZVG288iSM-nP`hO%$cYo}xHU)1NfU{on-5VlAU?$%O1LvKT&`3 z0Ng%Wp)(Y2PKX>VRtLAbc7^sh0~#~VJMe@e9+Y0S$mqLmgK z*YS1dwfx>6{Xe=TliK3iq5_^=F&?q33^(h#R;`=#b|eO1U9lcI(|L z{kFSO+C1)Bu+jNfP|Pjf72%Qi%FAYYH|aIHU%~zNp&>k-Yr!_kAC%3Nt(9$n-5PL~ zFqTvlg?A205K5I%%c;+~rB|!}y>7F1vqsCTY)~Txg$LEnu;-lBx38YDDno1JqKKfz z8UCCX`qb5eR(5?;StwknX2u83QDx_306dUIfl+~pMGlgIfzOD5)*9?cE#{J2xzF`jr^@FnnD8qn({R@hk5qREb}buEW<2QgNl9b z%o96oJ61cpDSqT4a!c7mnIlz)p+eChuO8b@a_R;tNs*+So7%|aq_&h&PipsMk7SR3 zk9rS#Pk4`Lk8bbz)G%^h*(EiY@xFx<87_|-L4wVq0zm>(Q1baC+$<81G@yEEUlyDS zvXplIR=?D0Lvu3F$*(hb>NN1aS|TLq_CH&QYkZl<(ofHzw%%gM#%^>f62%3@$w=gU z&Y7p*T77QhVYxR}+gCeM+f)19J=8jE>-Df*h5)Ax=9XFTNe1OG(Xd~JaRxpog+6zU zk$KB^_k=C6VZw}D&L+L1>J{sj0r!HfC&O}>rbUu|ezkAHQWkqhPGlsLvqpyIP`Tmb==DrFoK|) z`fmDuQiO(Sfl?f7X$Z}!Qmc1E_$*Zz<$_%+N-N~hVDegu`kP{T#fW%eDsg^U{$Z=R zA;(lvRu9?j#1YAC29zLVFO45)t%>30z-9a>_O!1WUscP9Q2uGu@9mY!fT-=XQ(!}J zy^LKdhP7Bu8`Er6*~3FQq&dHDh3-kAaMI{B{8jd-P&;WR@BNkc$WTpbn3})zJY|Xv zf|Dktc_X_gZq59CFm3X!<@^4UcsZ&}emZNsv@*@PV#iOl3g0t;hQ+@etbd28B#TCHJ*8id58^K+2td@Y~RE32C_ zLk&UV(uFx_by~~M^{8t3Ev$RKr=?SI;Ok^yz_$~9{kmGe*^uGypVCP=Y;?HG!^zE=XcZgc zuwl#Z7KwSPB}^ag{u9&wdudAQGR(M!a=LSd3}PDu9jN9w=iJK|%SFq#^gZ;?^f;<@ ztSb5pvK#OmwCC*0XZ0Pb=d3C&zJ}yB5IGpn`Ilel(^LyvIrS}NHQ+jE&V48!)icl3Pp#_Nu1 zP0Tt5F&z;81G2eq<@0(jwW}XGhW(Q+q%e(;sPZJef@&%2p#GasJQ6Z1_Ago!Up{Lx zs74Tw)oN9j{ZcQ4MPQQ|XxVBO%AtkH3Yvo06U#uT_4rsRvU#l)4L2}al8i@-pv)Hq zmuE?UP_bK=r4_?fS)w4;?4xClnu~?C;4S`i9IasIMRoLNNCCU$*SWH#&-S?(bDyy< z7}3QXdpeA}$>A68qE>mY?0vD>0j+}fL9h$5*`Tk|KF_tf-pdt7$|Mj7N!Y*sGFhTn zKy7LNXGTxc5}F_>Bx`R}22|H9{t%g?Z@>M;PIJ2OLw=5eeTEdKvZmfWOvOBMSV7kZ zY95(g6qw4o4%`3MTJY5YbWXSYw!BLJXLYA_(7;Xp1=az0POTiLygW>j)qej@e7olUg+58cdt`>taliwalVJf108+`~;d>E%_&3a!XsW=P(a@*{S zA$`Kejqv5}bXy-&&Q8T+(}vk2W<;}pS;14W*;HXApzLj{$W(op0U}U}et4$*eI0C6 zSZH7d@!msmR8)v!W<}jYZIrYDKEq!oR5}-GAl2YKgIDH-n#)@vX|T3uD|33kjP#CN z5^fmAv?$sX53w6=XXxGss2qwm_{^+o-YOlEHel^5%}jpTct3!G<%tpQ*OyI~jv>VG z_shT3m0KOrrcP_f@}$l;*2- z?5uzEr`R_xt5WY$xfi~W+c&j)Gx@GqCK6ke8YK93`m=197~zs2<@7I2T@K%XichOj zWtc~BBD1Mrn;Ua>W9F}f=a<8_Z(vIZPf+#_a#%Sj^*M}ORDaznB2^nU2h!iM3QJXm zHG&qmt)fzmVV9uAoz0J_aa^~?4Fcie-aW*^ri(ZiZQ0(8Of`fZiTeH8 zOi6vhHjZd_<=@;qOQvBv#uyX~VwAYPINCbyI=26zM?x?l!rB>atcuX-Yft7|!c*)UoVYhbDvUt4zV*&#WlW@PIiY;$( zcPO?v^=~`ZA{iyQgh(;MR6#+ztRnM_NOHm*L8FO@(zV3MaUosmRXgVC!Otnm#RLhQ z)LXVz(}RWT`HI%m+O}H7>S2ni)LynT#p(r$Skwu2f~Av*iUI#XutnPa@x?@~iF(?oC_0OC?tA7tEgMD;>&V z70*G~ex1@PE`v=os|pCxPJ7BuQ>pFPzi5TXFcwhyX4+8M>(VL2_X(q- z7DWt|>LKW3Yf|Eux9yapW-C>Eowyy4LvI^gbRDtHFj^(pH7Q#h0gGeiQZcZyODT>} z#ZMx)Ht@8aEJh+Kdxx3V(Exx@|V>{uot#pyB}xjNhxuz$d`seM?de5Y)u zOs8^i&K<$E{;3DXxI18zVvq-J%Gjk6oNy<0O?aBS*)({ZD*Yxz{vrJC`L)!w!>P|^ z!9TECNdv?oVNR?<)xgF!57nT0fbAr>v|G<-n_8k8iMf9xvGm&Ztc7&x{|k5bXa6hQ zmDVC^LFpS>`I_9A)(n}b_PSQKCK*gyRC_}!Oj8xs0GeIX%G8vE5rTv^XQDMNVX7dZ zt(kbuINke9gn`@lota2YL)amxVQ1!(CK#3{>a{lGF`6*VU#bmrK+K8e{qlrQ17S9x zysdil9-!0-CeCwHdWP^8HU8z9GR*?h1sQL7CQK8;L_~kAd*)8l!hA%3Y@8=gGr^KX zCD+c=rUhW*q8-1^;nN&27f{F6dHysGj9!%1^+qKZ&*^Ku-E@guu9TBvJ=Ju7>1d9y z;nHv0x>8l8Tn;CeCHwl(DPgc-ZX=Nsem&Q8BW#)0>8f6G;!=J&*_-;%bBV>yW@@Y? z58NhoxLu!V>oT#542rxIJ{+#En&?!!<)dX58}yvmO-6>v;G_}(#TGnWcYjS4zKg=6 z{p$H;x=;?XBNO>F?rBo!)8{OB?60+eU(_c`KFf8NDi(Eh%)N6dn0eR zEt>nw5nhLFV@hc}Rszc1c8sjkA2UFVy3K8u_by7<7?1fQxLg|t7fEb}5f!eD-xsNE z4iHYRjYEs%Hp_@Z*T&&RI-6Srt*iIoBC*W?BJVwKi5cXRT6az;*K={a%hyJ4UjUn@ z^o!~gcL?(8JjW&%OX}oy`13eC>88;oadH$%+$^nWds8LQB<`SAf?fX7_azgbCy>=D zn29cRgclx-XZkMtw07|~8Qt7UB4d2dv)%1!r zT6daL%F}1Dgy>J}GC(;yxxIILGF0!f<@Em#S6>+w=eBIS2?2r!cXti$?(S~E-GVok z;O_2j!QI^(X&gF8AV?#P69^EJ*V+4>d-pxRdW`;8U#*fgtJa(nhLYDM&Lz-dXbEX? zxJHALn;>CpLy;E_gx?^!CCi>m?^D2kgf2X-t z?fH2DVF)y|Re8Qa;LOu!4vcQsnZNzP2Ly(x6C8iRQGJ1+9m1QKYz4a1Y!b1Ct2JZ-gy7zjpmKvjpU8_{SEIYddcNtq6KGr1bc7$ zKTKb2_Ad6K_Cfa2_B8gM_NewO_F`?kZSXJ+WxJ@iJ+EPWP*UpBAPJDvLoq>dR>^wF zLkVVaQgKp=dhzpu?}EC*v4VB-6txAF1{J`tO@;duQkoN*ZaI%Q>*xc#$k)yGLH_-%R8N-qdcn@UtxV5=c`^atz}4Sl-Jd+|=1m2Bt&A;=EsSmc zP;v+l`=q+0!RAj69o)`#FlLVVW|!9UrUJW7n@y|UA)jm6kG*3)Ip-*wx*bl=>tNTG zZOh&{pQv+o*nsNU8FPcYMbt82_CEZaX_LDH;{0yItfk*_(=K4{KJuJxQ@G>7nPNk1 z1hywOx-qmd%wztAgDjgICPl|L3pXn`i=aYrId4(&v63AJ2bp)o~_GDzyF8ye~r9UmSa z5+9?2n8V7&&PC3JU=5sFNjah6mavVVeQihv=4=58ds+us^G_8fqbH-M^p7l=6E$&7 zDNbdi)KcopH$<3_bhCR{9nep)C2vx7%3r+R{Nyrv0TbM~7yoyM-T(6Vzmf8Ce`Zhl zJmxcWpL321V=@7;f&SVCr+_s#G{K8t#ilgtN%Ki-hHpVH}@I=|5=5kbpSkXXvf+e51gnXYkx3I;1oI>xW>_BRnK2UmT{G?EY)^ z5fvgmFFs>uc>z^|0-?;%&rnC`DU^OgwdIcpPo5?JoNK0O+%{=1MlZm})aQL5WBfLC zFP+Z}Z2DN=VryqnG`?$^mi0(~4|n`@O2muIOT>%EOV*C&Xt?6MBC>K?&8y*5wkGNF z6Sl;-CNUVK1@jL~QEVqTcjssSAISP2&v>{&cfe^IX<+RQZSXQ!xhcyUWc_a3EVrLE z06#$R-ua&N{s!6&#RIdn>RU7d%@X>B0ul&b`soAM?!Q32H_lqttr|f)pZci+XznMV zsvCJN{8n!BJE8q_0W9}{_iIp>jm?%$D>u+iNWVVA>`qMor+)4Lf_qo!b~mM`z@(`=`S*KhAH;QkwngGuDFFHs0T5<}uyUp;l~?C`1`_Fd z^DiI_j2w19_(3TU8-j~+BuCw+*>VxP40Km=OZCExR2|!^E3}l$VDtfTMi}iTj_oz8 z6?#cVK@JJ!ycug+M)D2?<=$yNT3?tP>?%yteYC%@IXErxm2ao`=zl3}i&`>M3ZOer zX!BhXQ+Q@R&-21Pp{+>EQqvToJJBiEPE#`#LO1mu0)w%WWxWs)Kry6Fd*}QR|3nG0i;x?0nX8KGngnDGe?JCQ=J? zf)#;kdOkNW<|G(d#;q*LF{BFiJDGJdM=^|)``)Fv=(n$Pai)AdT>C4>gc{z8wR|H~ zN4A>w(zRS8636oz@8Y!>BRfaaYP|kKwR)r)lp0R0{c?H*)wEoO_N%$;Rq7f#t(kH? zh58gDhIUEEv=#gs<{IJ}p&G;*`WpNiz8Z`g_8J#0;c_3v^OP?Pt2Evcr@nm2LbTp8 zr`apWHQHKs<@1WB$vw2*vZuK#=&-k)zU3E+qJQ3E%ADq`pw{SXmC{P(j>?ydY)$dNwGeZR>_6lT)& zDC=d6a@tTFc$bLFc@>>fDpM;{Y*TI1j#Ag?>!ppd+Q=P(mJrJk$`cew()g%ckit{+9p?$oQdK!f@qO|D zZIJ9!?j8Dx@se-(rJ{IpaAkEinh}?Vjrr72dI($CvE%tvF$26hVhCC#SN60yRaga@ z9+v=cmo}`Hl-VOYV>F)>|DcI6icZiOSi&AfBghQYR80Krv64<>oJcC@IHM__*yF*I zUY1A7aA=SP8zg-_kV#1^&&NG1r)9tsteIAnR`U|%JSeAO&=v#(9rV;{J-(!Co2m(W ze936d&bK*aWw4VKtOe$<+ePLJdK^uIHRshlTxT9N*>gSire!G!Xu4T}Hj3=E9^iCk zV|KD`D9}co9lo0sXwzoFoaNbV0zA}YSN8w_kmq0oa7FK6juMCce*8#u^%EG9(v;!>G6!;7R`e7pb=GFR%~fPV@@nSxwSJPMI6*Qqtnl*aVJ6vq_DbQ6p@%zfHE zZINm}ui4c4Zt6H~FJ&){lhR6IB0CK0IsF+dB!j87>9lFI8I~!R zX<_7v^viUu(zZ#nVmahFVma_!@LclNiHA4LS^V97GrC$0S{@l0wWTJ!ho9;6b4^Y> zY^HSO8$`N^r&cu@GCkVUoJ$)~@|G*o$rrk&NB$de>`1ZCuvZ^`WYSuwvar;Q=cnDXb(#mF?9iiz)>CYQvJjm z_tdC3k*xzxrX)iEE6_@t9323iveG9P1&{*wwaE2vx>6>$VQ-;fjG=*xFz-0Pzx;f( z8Txl1=jd~l&G~XsSTk9VPsOHXP_n4% zMb?oT0$K)G?CY@&ZCaSEb*De4ty0#?W-4W>Wh!RMW~#!74V7Wj33fx#mM7~+YxF6U zDdH4fdf1{~dflZnjg#71XdRxRQwt1KpZ=2OO?jrU7E{MfT0^Gh(@ZIQ6?|e~!v(ySTI=;`SB({=LN5T_2faHqs9~x#s5=DFuyWfEdMV@a&G9Wp9V+Z4D1nmOR zfa&y^=1%U-S}MQkjx*r)U@oguVn^<#BfT@D&*ku(@iMlr>Y$(T(iA`eeAW_6y;)32 zY6$eZ;Y?3D&d3OKKCoh-(AUD%N-bYeSX9hOX`!=`2d1QFk$x%qPa^!)0(+1NN&>-w z217A<2LGhR%MA&iIOh!K1m`s8IOizmEGQq?v?aj$VfudRewsX)ELoI3KD@1y9!Mq&@??0HOq5cK&leCx_Ru;gpPo)lW2ll)OUcI;wDDj* zSebT6UZ$R;ouq~_=}}F-9Q{zs%O@8k7likC%hKb-@^HSE;pL-X+jojmvspi|&9 zPfCcwd`v#KAc4olfyk8ZR6<%FCBLF;>=sWqk;m-;K4WINL98WF>>;CGg+ZDnOhy+s zPs>@ZnQpuTw^s`)cTG4h8vBe(@rP)HZQK`ET;u1Tp(&>l?VpipBDSv53gcq2Od2+u z(nh*F<6=p;d<+wvZMuPmrD6;oU1B<`riUVoeWx=$euTRMS81FvqgW?Zi%AKONw-ud z14c>$PWND3t<=fVl2%e>@~-eoT{2YiW!$c4lRu%V$VxZU^p`#%s{o}BXvvkttL3oS zB&N@4@X3RjZK~1>G<_7oY&MPQ{hIfZ-GqlN>8-H0>oDSJNF3h+=%d);&r3-3@%#Vn zEhsx>TywTix_Ld$4)~^AQa7pf>GWyVY1ir3={i+iqqf+)MLnJeK_c=%K)OC7MOk3# zjUiB<>3vyX+zsEMaC%a(P{q&K8+l+6WFulZndz&uOD$7k>6kNX3@R+sVwv$=n1ytlwVS2K+3|vyF=_-#zoo-; zc;wu~HLs<{SzrP>N?J^^6)YL9I(pUlqX9uoYks5#_U-EVO^8fD!mN0il6oz|MQl3e+AqE-AqbRshCEUV-?`qkuB z{+XwOp9!kXO8wJLX&iBDG%MuNi1~QGtPpBhDJ9VHCa!d8?90v3^0uz9YPBlP;q&r3 zn$-ZxGNtNiVcZ?enzd5(#O+>=L@O;dt0kH0^;GS0E4dm@a`kMmQH+q*nUZ7b3T_P% zjN{`-p+5CAEt8H--YBJw*};3sYYA5NcqR#(ViGC z)t0X-xFzq<_RIFD`a@tED=>PN0T>g=&&QY}5D07W??~N{aQpoTqTu<6!{eQFM|2{; zR95?4DN;%{bonD&anmSEBOyQ+h9Elw_= z?Un0L>yYeF^@)N~foWP8tU*&dsr@w13ilcLw1Pw)9tS$pH7U!q@^tbv@(h!dRnlr% z`C@`%f;1kL2dvZJRGfZJ=FgS~w$pPd#DkN0Ero3_}e(`rDI>#;i%|W>&KFjcLcu(ql*#1sOcRVs+P|2OqdXT zy_&1?X(T)Hm547NcW{#Dq%SdkVTHowuel3Z(1+n66!3IZZ3OL_TFK>r5!SvoTV$$| zJA)5DL_v;3I=`jGXpn%GU+W;%!;^Q`t=pv$H5zW!dQ`D)QQ>;I0~d%!8=|NADlfCo zEo-CBi4#-(+6=VqP9qJ2j@ZHXtlv;IYh#Q|w~S#oiF?spH<-}Eeaw+~k*EEiGd&O_ zd;5Z!J2)9?NwKEAW^x-&=Mk&nJ!QBsEoDC1gKCUEkJMGTmpQotr|+^R#LYX$N7k{~ z^b)%rC$f3~X4iMxO1iG0L(#WLA7j4l!!68$XGEB)D>fcJfJ^gLL2m|(n8&ZfR5ENU zb1GT@k&vJr#_&RFV2B24F*C3+#)%z*W+U8=0X$z}N=`30b4CBL8HQdAeq8t|itpJ-ZH$*if51@9`ojvn znYB{hAjg6xsemOh?T3b+&mzz=L7}CuatPkq)0RHq(PS3`EknxSl*Y!$QXLq_iZw!);PdJ3u-*Cg%tlwp zm$jYKn|WoeLXHsX+3tC^>Z2#*afamu! zb?#t#*x=5N7-ZoW3QXtWQXeMZ6Lxgj+$27Bo82BeE6@_0gYM?+X;FnNZ2HJCGif>y z_@1Y+ugbs zww-69c;%N>#nQ*I8$r^@+Ksq`_iw+!^0Aj~5Ela5;mS?TZQ6wb9-^}6fylwG}7c|I5q5IVbp~?ueBzQtJd9wF*53v4_hWD+m zw8b!kL9f(S(&3X$+;%C7c0|{!ZIL@uor!F;CXMl8W?Rim7$#gWssD2=xKLDKrC1EX z8)caqD(oKpiNvZlzJNUurEbB-Hm9Ay8PYNtQzhJ|d!(259_ObXeoWsLw&e=;?euN6 zxOxp_8eql+nnck;V%&n2@k`j;^jVfiJR_|02r{pdF39mAW&XdM>1n_|mtzzl{FXw)2SbScMD@*%qTGeRVt7GhCOVF_x^B9KQeadp@@<^D|sO*)3T zU31g$5^)tkgf=_qQwvCm*bV*B;awa47rT7gtB!**qCwmU3f^7^9t;8Do9{5DvEPs6 zb05uQZnXvdo*xCH?)708ZSnVuKOg?&GwfxjW1C_wxB$dpA{GafGC zi@uKiFqE$@;Vn3)Z&3)`x#}`3S}_`NW!KRASrfe!@F?{^1tPY(K+ldZ!yP235dfGd zi8FOQHerM$TYkY~ zy}mm^?t^6h08LVnMuh4E&1=rik=0xm)eaI7(4xbg!RFER_$_gO*-Y{mX(PBfM5{OV z2w&{%-w!*57KKQ{<0~5ITNp=SC*`OM4tON2-75j2}J2&?0o%?s~=c$ zKc7!`~tT$2t|}+?$|r3qO@_5t(>jS{v(ny9&14f?)hb@vE*P_ zmFn?#gWI?Mi-_;;e!>F#5w_e3%i=Is|334?IB(pApKAmTCy4`xFPEHLl}iXrpW!YW zhJm9RnEe*V2~uvP{%H$&V(Kvqd6LY3iN~GO=~J^F?Yix@jrUB4iir3S=2=q3RiLuI zGO$lh+Ufo4BkDR9GnT~6f^o!7?kcq<^{bAOPSpOOV_8yC*|(BDDE-mn%Ez)yKk@ys zjFT4hrNr@{t{2pIX|SHA7u2us!oIF&8$<*P-EoWXzIkyzhL{tbgQ7HLPYI+4ai0zs z8pDHm@0>V@u1k{UBV5Xw$e$7x+#-Wn?p7Dp{l4Kp`5%)s^?jR&`UVfOyHYXR8Vo&3 zy37cpc*l$+E|wAY@K0F(BABCi5BpdASMg&WBhuvZZQsY8rQ-SFwUVNcyx3E?cDO{m z{L3pH%X6YU){P|_q%32Eo!Ynqqjc7~_gBGo72MiM)NA3HC~C;dcFsJDz}=EK22?lh zzM|}ogXY)jU;S7nkdVcuuX31TT}=25YKLuAgX^NR;pdpWzAdcot&BP&o@ugQHmw!9 z=v=st+5G6c8=ed0Mtb+j26>G|;9{?E1d2~$s<(4BoAZDY7=&wUX2P0XwHrM212J95 z8gGhySg)ittO0R`t4^p1JUZ|f1a9k$aL}?D_7qi*7fKH+*^>{jz6@*bJ-ouNr_2Az zXV-Xh;(QBkw|mpb44QkN_nYIg=*2`bySZm<=VQ?Ioc;DzX(?cf#}k+&!9Wx`s`Sce zUYT$7N^}-b+06;r0w#ydWy66=) zAa23LEsxdy#_cx=f0P_-Tq6xOOCbrnh;8Qk%`We2ADh#RZW6w0faQ!+P>Q-FP)=8R zQm%8Dr$DwVi?77(M%Rcj_juO4eU~T#qKXw4vms@z?7nV(xjSW^!^+L>oVlMnS*4hQ zHs+4(h{*lC(3#C?`LOa2y5R>yH?Cpm#>4r44mphZ?T^(hUB7lOavqYX$#p;Rxw2() z7>wKWvNy_&7t&~1VaXtrKZ{J3w2eAoS7Al_X0~^U;m8ws$Od1IHpHS+KnKtJf4JU03;E( z6jKzz2=0DA4^5Xl+}twIg&y=1INHzpRIgBaSweL!$L3unl-zPBF$z)z+5G_4?nnU)=Kl0r>qZ4 zUB7!vX<3}{1K{1RsCihof?EU;)nQ~X(wU(%?T4kIycygAo7!2FF6@2(ToOKU)*rld z(DrP$u{~Bb;WZYn-^2H0X45g2TKVMPwsvvwo?N=<7csK2o8%(ug+zR!th1P;GtZiX z3*Ej2THUC6DMdj9(UEcRJ-cLh1JjjeW}~@%C#(QFT`&&D|6}>%e_0;rhus_NKzTuT ze8v$w{5fhAkzA!uFFV*`6G52VZ~1UXQ%A%Cm$FE@KJgqKqoXTs4{WOxq3c(Ltu6?nWSNqBSNmG@3EE0XYZK}l5eiS8%{le7RTIGoRY6rMoIORP#?<& zns*St!I5Xv6sA}eT?5hPDaqC0%>tXxbq${9vmh&r`*9^42wx8|IZ7R|cdfKVZ5?;e z->56aAJkRskNn2%|F7IIhDy z2yN6xvce7kfchI4!UKS`hG-g@Mf zwk05>GT{;D3yz7pALrytv->>AlK@fC@A!&ip<^R>&Q-Or@%CGImfO$M*eS+ z4Wp&8{+}9R`f=HrSr3~x6B{uDmkF-3vn%|#X4U}~xZ?^~b`-WQCVU2qmTS3&E@o^} z{j$V`|M`c?u@rW&ml2=N{wu&?RgBLm z`M$&`^b7iTu3QX%xWdiZK#tCdIAXW4?oIrfl&Lez*2DfEw_;IVWGF6gmfZU+K1a0E ztf|@0H=B-I5D?Ir7_hF}cC*)xX9rok#IX>A-UB$tt5AwC9($ti->&OsqGt2j&3{T* zvJ@Wy!>@Z^`P*aqZGT#N<&REC=g(j$UBu;;vb@i zusZvHvYPB~F$(yg*Z%-1Kbu2>vl!ZHMK_PY9Ya>^{I^oN;q9NK#^mD;jHo_0d zd=R?u_Qd1^;`?FJR3c{AxO91>#x5KEv#V%DnUDLF`3+sp7C}Ql$kXUl)H!;V+EE?# zP1f97%@6r%Wwu@Pt5prkyIpP_@H{ZmRan!TjE0|x&)G1Nx~5xWM^4%E_zk_ppNu zNBWpHWwX@)y`vPWi#2h=grM7!_-jJ8@9jj3&^=kJqO|pvDHjTj|?5hxK!7OqXs6`ICqrX zU1*=~Z;fnPQF_@TPNgeRCwcCDy88A%$CJbz5;&(EjKBGcUt37^AtVt0iPQO5V9h|( zJo4!u*vt$z{0jUc@$on0e{0z0pU9SMC2%*zF;d^CT6icq7~!3O0D>uQo~6calVK4X zr>kaC#=iU)9YzgV9jgGDhOef$m2eDJ@in^BM0Td7B3%ed^2hIEjRc%m<1LBzcYrVA6!JeP*ccJ>5S%j&P@3M`#gHgJ7uX1=yDSLFC47 z`HKllL?X4&5s?YM@8%ExAYKN{9&-3fwa2<5BEhlec4>Sl*^`?5&UqJA*JJf1$NRKS z-%2tLLCBb4qhyF&lk6&0`uYFZy`Cl5_Wx(oov@ze@`jKRwst7cSl3OqnkFqKb`4H% zd`Io@W)d$*+2ozMnuSp0ChjVABEP`<-T8^hSSC&J)25sFM)(1T=y`-?UK4UZ6@t-? zTOI#GR8Z^pzP7^k+gtyj9deL72{vYRU5Q7yEpeNe0sbAs?t{5O*!XLFI|KT?rjY&D z7l_OlnUU3Bs@a?RC+`sgxbscjU3TS0t%{fg^^}^`@&Ud_EVGwQloR+g9jhCzbNiao zhTjgk+*Z0W_FniXbRVY@F2`o2Lf&T;?+ufEZ{zaB5i_x}FYRWN zk2w`44T*)5CdcXv(-t2SEeC zUZ#43*K_D?D#z;J>X{DFLgQ9@-p#s`s9*7_=*JbsA46X7=J5nB_sqr(P;b3iMVoY` zS|c+<*06+`@7Gxyn{sDtJv;JR!+@@5f2TG7fJNBKTwBPmN6>${JCzql47AqWv->M7 ziA3sy%rH(?YL^_FKI%^*QoHOXO}El!N&e5`wSEeF^>bfH)<~}9jI2>g1psDf3I|jf z2)xM4uV$aKXUxwMjo^};GJBdG<5yGb3N5}PaaTHX*dnDB7_mA!YTFg=TtQ>b=-t#G z?I$sVu!Lg+Rds^)vc>{2DyZrlkNH2Oja9cK_)j{g)Z#y|2MX-(H#bdu!PgO!29 zo3Ku86E-HV{enqsWhNSs9wX$OJ|9qc=2mfxZET)A`~8Shelu;Ivs(*toaNmx+zN zHatc;$T~!?kJ3ABO+Z(BdW>{fXR$xj4lqmm2}Vb6ONJd|)kq$AJ6u~mQ`B__bR(7` z!LKp+>oWbMu{e$Idh7B-0C4;CLcSthfg4BrAsUvY+Tl>DyDU~ctNs?o+P+>~qVvaW zX<7Jl#7tyY(kK4xF^j^8@2~k#NP|=+U>7mibm$zmd2$YGSRj}0JnhB*8Q{5nbT0mS z=sD+%?1{i?*X(HJnN&}MQC62Wd5GVMXr|AK(=-yDkyuAe*T=hzG<(t_VL_9iI^i5- z`HZru4z8KGU{_D{`!If{yTj4VcO;sTloe=pxLy`LE-ON%rJbTL`-^rqlmp%ZBccMu z7^|R;u-bCztu_v`>haDnw|PhSBRnQ=Uk>ZG?J9e1k)Oyo3%`KZUSY^Hq1A_#%8i<` z!68j}h~U=6Rg*=ASnI`XL5pFGOP&ZAVwjhOyR&hlSCr%*n2LK6&)8F%h9AZzC)l;Q zn^ZCN*fcl9=l6Gm+6lXobgGja7s2i%foOOCj_&>=*D*(zLZ2?~F?m!}-}`D$H_*%X z+hZ|xA=+1r0vbT`ixB_F0=d34?8xW7tYZ6515w3)Sz%_%8)R7MhFXy}@W#_=^p^}s z&?H`vZ5r#f8TL;0aR-$9^-q(~iD^9A56RPro!scgHO?>WjFiG2XHVc8WS8iVbjLE} zRirs2~wW;|=$Rk#ozD|}sn&A;Jm*l9|xp%LI3v>rC zgq&tO*|;+N-~fSef;*)?j#DsQ>2W-ma}N1o;L{l3@1_iWcQX99zaJ*EuonNF&0Bu* zlIy83HC0aEqKbjV-=U;imJDKLhRgtOp<)z@3acfDBMVV;Z(DgYx&3}k%viZ@1J-w? z<&QBfD#F*_Zsug`)_M(X&6_hJ1Jiblj!;%rV7^(?GvSwfuHux9BqsBT7{LQ`F zme+2HN(kRkVL0`hF`vH<5qWU!8O&=fm!y=(UqZhtiTDy!vggyLr)BqA3i=1lB?1bW zqg_w_9)0b=T9zHyW#r@6!T9K3Z(vBdBkT>zp9VG5$HSttbmQIFVqoEyViU@KB+$ed zGE2Z+CTqYEQ0%UgT08QL`Oddw&~B6V-H*PG-S4RDfx+w%zxDve;lDWV)E6GiGl#N6 z@Nn{kI&AGvOFqhpCyk1^qN>C+ucSM8S7vRPkIHEZ2Ut7=9>0J5jYiyk4Uo3RwUF^m z?7g}%XV}}3{T{ncxQxd~c-72;$j!+;?t(H+TltXPxYsqt?GQ~@+#0_5iOw^y`f8fU zR==SZG)a`I&(XQd&@3`CihOT%XP2xd4gy2w-n_^QXpBgrAzpJB!FrZ|wJgsM|Lg3B zKc%|`5jns8!(n(BZS7@tRb&`0$kva2JdPna=*sx6tnKQ~JsBAZ?4BG@h_pwEdCs?` zR?R;mNkxjABV8=quBSxw-B8jK0%W5_viQZ4r zz}*$RI}rbjNbck35*a3>+-B$j(vlOfZ&C@hG1@Dh?!jA2Nc?KqN+x_a8UjqztiE=Q zdH-dPQfSnEkjX<&plOW$$<#+6T5V_C59Oi8eZlrbSKv52tU*Ixqc9@OOdvXO-$M9_ zB@q8z>p`k+mPjWg;)%t60496dKWGo%|M82&?_bY0GI#P(;nNK)k(Rr@fbFs|G+4v;Bi8eR78Hr62`l*S5#G)DN{vK7h)DZ`x z1Efuwe$0PCnHN!w*umG8yGH|x1ssWNR8QV|HVB#|VQ&^b;lK0 zkN!F7u+6lcKg&+y1OI!{f5T2XK@^{+#R(J3s-aiNrlHvVmqNUC z1;~stBHdEYvO&EUwcXe44zX(a47`E<#KQ3#RwHRb>g|5u!`jjXNU6586S6NtJ9m$u zNrGYbUqG}-7?)V^uR-Quf~RO3=lAk#3^}ukN!=w zu~L!>{v7R&8mi_lX33lwhJO*~hjP_tcS2wL-N17ySDSqE>RSrG$Ionn!^-L|i{!w< z8IUo$Wq?9r2{zr#D;+)#&`>FyGG-cm<$kq`;k>0y!YZ!qc+Pv9Fk+JY4ZgVx{=#?e z_2cMS;@_wRUHG=*WK_IvK%Q)9S^}TPn9t4gNIT8Lne)a{6p6f@i* zA5V`t|4>8NW>hmm8Z9e!H5%vR5D0BjQ&5F%vF_W4i54e4mZs5A2JAkgqjoqq zv99GK)3^YkBDtUKGQE_x84!otzI95&s1*S;t_71%LZM)yBeDDj_nzU$#A^)tFWIw} zTu~Xcd`b3@5z4r8`i?n{sgkdggwF8N9h)EE?Kr+Mx4(fM!@E>2zXcM-LNQ~!A0^!vC0`rjJRjqkT z^hP8w!x$Ci>kLHhhn#bm_%_kIjZxr9wlF5-vVprlhbDbf^uxRT3(=}Ot~vJRayT+e z`>|dG^>ls~0cd%r1hS{E?+i)RK)vv>$chL@eDo~Y0CTHYGZX@*$~A*t&;?E5ZI{vB zBHQOp$bQy@Pyc_i+Hcst)i2n-)&Jk(_#$!nr(Kg>$zzlCzY!rQBKQrMiweO(WcNdQ z6KSy!IZE7szs0K4WAV0P=-BBU+7oMl9iBLv$eIxso7AM;FdZ7A36qD-=)R)a@r{-a zi=3kU)H?sbPPCuQ9wXXB=^&mNCmOv4hYc{q5O5!@mm=B_=qLt)K5UU`EuU?qYZr&0S#zhSCq4_v(poNLP)BQmY$3&qt{V$(Cg@rg-%uS2H@Yp~#8Wo#TgA{f zMCCa{!8u~2$_oSWi4L5GazFYJo2fkFb&o(UNM3wXEGQ2>f;(GZhoKtN5DNSzpSj%} zv_g|9^O=!V7P`h^Y#~0>o!H6UYGSaykiR=;dCO*;2(Wv{`V5#Adq<2bya1MZN9_#v z3pbNUz;!o2{0w78mS_FATEKa~D`}b9jDj@_BaE9x*RX$xo~#4I?{tdWr4ZRq5agu2 z1NCg5Zb!Kk4%~cuQe#i{Pj~)zUMo`P`TgtfEtbD=^S@8Jzv^lbmQ=a@V)ONFM}(>2bNZ7{2WW57WOzJw@qOu7wx)+K4tYtcf=!^ zknkNuV8vZ@vTPa!ktH$5-|CiT^TLm6Hv=cBN9%k@9{>HjAA&Tv(ql<5I#y#6l%VP( zi=_xzQYWDfA3t!56c-x%tV)Y!j4E3PbMtNGwPno zW3_OI6kiya^T_+>$G`si>-TSHzkV8xVJ753H&>ch8e_WQ^Hl6H8T+A@6I(~tK{UBX z*38bKyDd|sw9sF^Lu5umZF(5>a7eot*>hrvhWEY_yV1|#jS_>4WJK4=wqx22hI%=} zeIFLzSmVA$dJwo0AN*RWFpiNh!lP~98essR$slmB*gQR0Wh1GhWl2mhNj%Y;E#&SU z&>pldec_+|sqxhSdb!szlDSc6|EryZNwWMv!UYchAt;fj)2w`R*LZ2dcN`x!Qepvz zeW~FB-{yse{Q)_pgrBOhlT3SB_Y$jI?NTdoX?P_e$}>1F`_ADTH@EgvGr1ZJQmAnn zl7ymIF|qd2I-#Zh1SH43psJ98UT*Ze?JAyyhp&ORkofL`fP05>ZB#o4N68*&z1XWiz4$$>aEjBO@|AQW#! z3N3$y40vzV)6DAk47HM@q-?ispO@t-Uh-e4<|(>Y_9Qc->~`=UcX5=Yf6!B};761( zLdHJFJ-(ik?lX;%`HLPQJBlh(t{b2)c{0j_Sw;K=sZMAr7&T2v)o!V5yI$^)x({t% z6s>r?dgNIcEr8irG>~yLN<#g#{EZ*>uNeB>l@;-E)D35{sC591B|{3U$u_M{TGQEZ zNzx)#_h@ZUUr)>#6WjpyT`j2w6>oSt!Xu6s4hP#v1L7n$eyxF_c~D3KRRgQZyAKo- z+VMYym3XGm7O9n-#Oo*9T$;@w9y#?in7li)k8f@5=+Yw=zDX&^r87S%5(9djAN(=G zPQx_bo(j#{HVIiaM`y<6VUw$fBq=6nxyqIC@f%4wpnR1}hwUdGRbM))H%!v;hf(8( zWyh6q`N(%&eK`HAo)~f8K+M8gE`-@eI~{XTY|bH%0kQG>nb@nC-oI!ui`3yow{j5u ze;n2G41ScB`DoOadGrkX7)cJr6hI9F|JNCUI(PyQ&eKu*H`?5@^Bis#*Pq&%*YpG& z_DVx$u!XEX`_?R0G)QiX)W<>Hnol7Mv7@>emt9)B7I$mDe)Tu^w1LXZjnmAj?PWok zLBdm!ltmFoh-KU=9ZmM;oS}2b_do&N58LCTp|D+9!*o}z29={ipz7z9YW$MmBj%_=X(_LC*EAJ8%smI2HD~ZL4kJ?ycn!FGBS1f*tXzb7O~JP;{&phijwU%Vh~n z@yd{3MsycT7NDen3rE{nntyxix;9+85G~r&x&?RGHtwWqzE|~m!KX~u7o1CUvB(Iw zSWfsfhR@7AI>q~*KPw|5j{Z87!KFjJ&&4O_0 z*F#H;bYT5QL>kmvct`eAx_E1jR+-kgNk%;4x=6s+x8psGWQ~(TW3SBdi@86U;&Br< zply*c7FG=BeCNs&HS^w3L;0!}{zUy1H=?pSfT4`fI@8?W4LLx?_o{r^XHKnPJ6pk( z(tK!Z>=4;k9++9P~%bn%Wl^6MZwPeA7K8c6F-qi|* zc#KSzMORmj&Gs3h5W=w*eaIW#kM}_*{~peTH;_wcBiR`GAu>KzM~yd~{29Mqx9 zXM%qn;zrQxfIMaQ2GF@l=IQ-ccRMK;Lv4|5N$z|(jz@LEoU?*F=Y3=aKAkZAm~5K2 zl!Z;fM%gFWpkvKWWxAs;(Mm|C@&bVe2cP7TcZ{It*N#T^JL0BTi{;VyGJUi_8w;0l z5ubK#7%5SwQW?Ce7SFBGS0+219Rk4MQ5jo0Eq>32pf>YgJHaM7u~rB?=<{Zct{&UM zob?`_QNMVR`1AW_lwSTPnRW6kbSC|`)nMLrVpld+g6cwH*RQHqt)!=H!s43B$r+F@_!)e2p%p_D5Z84CRV6 zK=feNDabpNE^}}FnSHGWkT+=j29AOd(HW<=fq`FjbN`dc{FLE?o?H24?yAO}90p+N z?PoUPQ%SxPy^BIc@!N1mOcSy&y8N+eeaheA9rENy#lqI!;n(=OUV43qesAVj=@~YJ zM|hBYP##+I@OHQUYGb55S|BQ2l3)v6rer_r%3bc72oaEP=|e^NZPJF%uRN~uMx9Kh zila6ZKgt@L*}LOg^=fl>zajDA43FZnEmb-;Pv}Nci_g)#24k!}bl6UsAG4n`(o;$? z`uc4wJ2Nwb&d!~jwH^siir<12S zXa!s@W*9$KaGp$sO8+OS`zk^Pp6~xVl~ouLhVq4uy|!Ac75-Eg8;s)#Fv(1a8t8EUFL|y&y-3#&kD|8AXs$76@sVpSqYFx&Jx{mr?rv}+ba74Qx zgO$jXWDA@X&b^C3#}INEk@@eC)&>rAP1g6OWTnJ1R&P}$gx=)9>%7`MFOH4b08N$D=0NQLLsvm>qf@Ok=#uG4Z$5tWXbT6)oEoChHQUD=6MUr{lIyw9-Y z3;-XA+Mo|4s)}KjXs3B6?S+{LZ-=h0sU*X+ zPR%WqMk%jWs^5QsBlV%d=iu~+awkmfRiY67QJ0A(P*`{SL;EC)?2pt^Eu34@Hf@gP z?(BmPdd}+{%4Hy_k7&23CI^cSdo`*`F18m#Ow) zwEe5-P4sgV=R27$>R93CuhLpk@oI-WS;8aG=s-POmUZc~Q^JL!k!qw~vZp1&c`NTw zRSNbnd(c!f_`U7Rz$Neh6s=6er;F?V^)$ubRc%|hhj|M$`CQw0VfZB z`qPa5P<06QD?)twyD@8V>R~f^ye4FjrFozFlN+UyiL-d+la)n7dlwitmi;FimRnrm zL)O`O4FJv0E-i?)UO@jK$l$eIDSr3G{<<`=7DijY>h)iy1eql6Pt|UVS3V0I_|F0) zd$yl?Utg$-eDMQ*>kfgyJ$}Yj)M`<#!L}jR0cvzg)pCG$0FG&+qG|~OK}VMPao!CL zfN$s5(pVI6k<_`SXyqFJkE^$gimPq5MT5J$HNo8p4#C~sHF$7u++BjZ1%d{5ch?TV z-Q8Vpzu)_vbN0Ri`bWbUH0xQlN@mTf$sO7hEP{Z9aN8vIB0gH5{BQiL&8O(+%!Z8GWi#{S~|L|Eq8 zoVAOC7O-dJ)&{cE)@OffJ*v3SZ^wy2axhc!pS(peX$jBpH1->3;Cp&q6RxJW5R@m9-)4^C>-$YELFMa>}S=m5yVUqt6>=py7c^+ACtU#1dK=Db&Y{U z<+8fzNk|a{#<))VP|ff(cvxzT1Vy2q4aOz(s3jFieY=5>7-M&fE1JF}xdVe!uuRYe zOyX|(4!p+EW{60<#Lc5d`97$L5Zb5KB&Op7PEfVE9ZdmX%Z zZF&{_xV-o{y7=hbcpKb!U8+`+^M8r|I8F0^Eb)K2c)M=)2k+;Uep-%X^*d zzH9&b6#CHZ|NhTk?7qsn+jtVxdFd8Pd3(z961-C~ireTQ?)K&NdvNygnTR zK9Rn@D*3;Ur=9p;-h6$3%Ina7863Zg-@D368-Cv3tL^ggs&p^}oczzX0HZi1mf^fk zV*ii5M>v+@uRgr*v*TBLSKUuLd9P;R%kzKDd!+d&^M3~apLtJ~{ttOC2OlsOMvv!P z{SWa`<_+!-nIq&V@ zW6=M}=xyO+(*K1UEScMVxAFGy(GNZy()U@G_eb!jz29#<<$augT#t7@JbWyCecE`x zoqq5AcnAOPVx8}-}WyjRhnZr;5twKm?ntey6yn`lrw?b?cv*Gh@~%dOG5{mZFcUi;bP zijcnx10I!2J(#iOU9Xk4`fO3{@G>wt>k#Ku&&}=a?J~~Y46OIyUh&fev*6DyE*$Q+ zbYz4W%D{xlrKx&MKTUG(mCmISO9_9?jy%DQ`?31%H=Ej(b&r*oyp+fK#FjIt=1$-W zp2G_W514qrx6|2)y#u>JPRMl>j>Y1}l#BV7H(Snu<4d89KW}@^3irXQ*1CV0(@MC5 z_l4|hQ~c`v>`Is43b*~s{$%88_TtxxkN!0yX6CksXLWnUvwd|I$qUn47RjB$1!l=- zQ%;AMdAp6SGydkzhqgO=`?Eqc=I2Yyb3@k)`#ZVE*KBF9@I9Wd>ud?0ugmO0TA?%D zGt1U0m3{}bTAJ}bro3U$k=#rN^i5j6huK!4cl_qtuSk9yW!w?Va^-a&C6f1jzq%nn z*V8=;!?pF*N!07)nxXAA18=ZvcJ#SMx|_?~O6yByk;B2z+36dC6?ch~3KZVo7Y>5e z`~DTb+w2j+VTS3eW0#Km?1-7I(E{=9I%;dKcb2(2_`GV>eBHcBP}G_RtM z+SA{o30l&R2j`f7J%kgqr9ThezJKrh;C5&GiO1p0){pn6-3cuTfw#HgoG}npYTe>k$=q_pU{n{&ix7fpfoHmDgx9^V2=mM&~Yn z+Uj4vJvKbNw+>|Fq4nPOMNx zt>u^ZO6o4<;C$-5zjO7OewrN9HupM{f))Gqnf{tc(>7N+OoA1AmW|hynt6Yh>vjD# ziKcCCbnFBx&MX^mD&6z`uGcU7YyP%$yVM%&W`C!D)hg(Y@`?07_;@5WK%@WI{i_`hBVX;(O z7?qD|S-DKin=)lQN61x+MZO$co}E3DDYoi29_bpSyT+oMNppgF>l&gv%_7T|CnOD| zB5dqp8Zb&#i{Go!%$aL3*XXR1_%`RFSmYo9Sm04qEWSC@2Ji*zTnfTg4R7Azw*kx+ z%pQR;BXbqF2`w_e(U!&iUJ7EV7I+(A1mS_w^vL8=5!s)eQ#Z)OA3);hNM2ch0ULBJ zqx4A==>f`!Dvp4-hf@?P9N)wg$W<@6eK_q2X0y&GH)Jj%o2o^SlCcGgOR4r@nMuo&u?2*{Ai!aAQF0~Vixk2|l2N8Q zlXJ6$i{oKpNfQ_7r_%4lJ%x68oXQt}s%sBB$ED^?hc!O$nF=y6+J^uBbrE8*ni6&C zDp2hc4GR=MP+PJCyz0}MQ`NbMVWWQxo58FSxt6_eOkCB?f-SqmF*o@>F;q#^eV+z# z+OTV$n^x_Ia|n1x^c~*)^Ck>gL;k7iGQ%W1jsd+wnd`6XB{ONk$R89-b_gh z>%)f5=FwZXyw-EL1+gpOp*~vYNw2r>wAOG7-(Uq+7a#8tjZ>l)jhh?h!p=2t)i8ee z#K}*vs!HnN__1o8ztCbN-mWo!4rDtIPV=^Iz^^ILD<{GAB^ZkeNcabfdcEx8?2a2n zpTWgEz|9WMO~XJIL;(`JV)fZY9HZOGR+@ZgCfJaHN<@&Bq_Sel2q{8K#E>p$cT0>J zmDXgxy#C>jo@gz@%(RfNA37!*cd5l#Dxc3DHik?ORmOjwOli|-CZ-fx<$*kMG2HHb z_*8J<4Z)8~x#(Zsubu=svIMbD&3K>KYyxM}9s2f+Bq*UMnrJ*N!TY^>Ll0UV}m0;!ybuooSU5DpXrv*vsvlIqec5SNffDm$yCbc}MfFe19`8y;g~ z%g9z?WHdXoX-mYo19U7Ofd+jpCH%MA!W4z6R7I0AR%M?`XhY9>>&Wc893$l!jC-kK z6E4o=f#8IGp!$^Uu^ZQ~?~F@4PEG>~p;;;j#^<>b1zwG53&Cz~W{FPZwLVW3dhL8C z6?$E5hP6}G_SeV2!Q+&DktlmAA{KAA>FA(obYMVY{DHO?VMf z1Vlk$yV!~A)Ar`?d`H5vfxDuToJnrrj<`U`HSrh;ZG1jqn2qc4$%5gXQo1=8l|%^`TW*&=0uo<;%T^(S-zaLtfvS%={g#k7E-O+ zjI>`gFcfXyGCj{YBg7mrRYzOWgd36{F&vs$)Dd1TKj&wV8eB7!J<=*ki#HG6CUIze zGxzW&qh;OZ_kOPkAmLqdwixOG+jmoK5wmC$sMyHtPi(}TidLty+9r!DBbJFhmhx=b z{f?65Z2ck==WO1|^TDr>bqqJ7*Ibd{Qv22HyC<$-@cYZ8HLxt#;Ko2x01 zj}OD-@c;2QT`ZH;X6)jU9~EBNu1={vp+;e)sS^6nyFTln1fkgC2Th@YL5MUNUXzBH z?Y_R^$Z<|)eSKKR+JQj?JlhNf!|zT6{pPr7F#6A<%_*Fwd2&KoF}MT@?1b1VblW8@ zGD~dcQpsyFBW9yYdl^M15599+r5?X}Q#GZWU7S-F^Gy6x-e59-_i2k4XAm5yCEYUu z<~)5{_z&c(N^(C=e1@a*=PFn#Fx%TQZrrKv4u)Ct#(XkwmZlFr=Y0{XsIf)#m$f*3 z72CQ%@PCmALdPyBrDZG*si;8@Euf95cE4!jF8;cU-U=84iTmOkpzT!fx965GBsJIm zt~!4@j;k)YzQb2;sA9%ek3#awqDVU-4;3`N}Rgx^;ZKHEkH}9N}BD@mV zl!CvQ&yaNVjNy6#{f$Osu5E!sfogjCQsfbOi(&x8eo8nl%m`Bp7;s0gCu>S`DUM{M zyiT}YH|GZ5fj{6oaP(h?v!=B1iR?dx;E^jw~n1b!!eom0!9dL2*1IKN;$X zvIsX}dCbwQ4Z1A#TWc{z!nGeO>K@b_r1IM6=+9$e#Ul-G