From 233d97c2ecf8c032eaa6a0966b26a5bf080ec838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96ZT=C3=9CRK?= <76204082+iamsedatozturk@users.noreply.github.com> Date: Tue, 6 Jan 2026 14:33:39 +0300 Subject: [PATCH] Devexpress Report Viewer --- api/Erp.Platform.sln | 38 + .../Erp.Reports.Application.Contracts.csproj | 18 + .../ErpReportsApplicationContractsModule.cs | 12 + .../CreateReportDefinitionDto.cs | 17 + .../IReportDefinitionAppService.cs | 13 + .../ReportDefinitions/ReportDefinitionDto.cs | 9 + .../UpdateReportDefinitionDto.cs | 11 + .../Erp.Reports.Application.csproj | 20 + .../ErpReportsApplicationAutoMapperProfile.cs | 12 + .../ErpReportsApplicationModule.cs | 22 + .../ReportDefinitionAppService.cs | 76 ++ .../Erp.Reports.Domain.Shared.csproj | 15 + .../ErpReportsDomainSharedModule.cs | 15 + .../ReportsConsts.cs | 7 + .../Erp.Reports.Domain.csproj | 18 + .../ErpReportsDbProperties.cs | 18 + .../ErpReportsDomainModule.cs | 16 + .../ReportDefinitions/ReportDefinition.cs | 23 + .../Erp.Reports.EntityFrameworkCore.csproj | 24 + .../ErpReportsDbContext.cs | 25 + .../ErpReportsDbContextFactory.cs | 27 + ...ReportsDbContextModelCreatingExtensions.cs | 28 + .../ErpReportsEntityFrameworkCoreModule.cs | 26 + .../Erp.Platform.Application.Contracts.csproj | 1 + .../PlatformApplicationContractsModule.cs | 4 +- .../Erp.Platform.Application.csproj | 1 + .../PlatformApplicationModule.cs | 4 +- .../Seeds/MenusData.json | 7 + .../Erp.Platform.Domain.Shared.csproj | 1 + .../PlatformDomainSharedModule.cs | 4 +- .../Erp.Platform.Domain.csproj | 1 + .../PlatformDomainModule.cs | 2 + .../EntityFrameworkCore/PlatformDbContext.cs | 2 + .../PlatformEntityFrameworkCoreModule.cs | 4 +- .../Erp.Platform.EntityFrameworkCore.csproj | 1 + ....cs => 20260106110136_Initial.Designer.cs} | 59 +- ...7_Initial.cs => 20260106110136_Initial.cs} | 29 + .../PlatformDbContextModelSnapshot.cs | 57 + .../CustomWebDocumentViewerController.cs | 15 + .../Data/LegacyReportDbContext.cs | 67 ++ .../Erp.Platform.HttpApi.Host/Data/nwind.db | Bin 0 -> 659456 bytes .../Erp.Platform.HttpApi.Host/Data/nwind.json | 1005 +++++++++++++++++ .../Data/reportsData.db | Bin 0 -> 32768 bytes .../Erp.Platform.HttpApi.Host.csproj | 17 + .../PlatformHttpApiHostModule.cs | 34 +- .../PredefinedReports/ReportsFactory.cs | 13 + .../PredefinedReports/TestReport.Designer.cs | 559 +++++++++ .../PredefinedReports/TestReport.cs | 9 + .../PredefinedReports/TestReport.resx | 123 ++ ...taSourceWizardJsonDataConnectionStorage.cs | 66 ++ ...CustomJsonDataConnectionProviderFactory.cs | 41 + .../CustomReportStorageWebExtension.cs | 83 ++ .../CustomSqlDataConnectionProviderFactory.cs | 48 + ...taSourceWizardConnectionStringsProvider.cs | 27 + ui/package-lock.json | 96 +- ui/package.json | 1 + .../views/report/DevexpressReportViewer.tsx | 29 + 57 files changed, 2890 insertions(+), 10 deletions(-) create mode 100644 api/modules/Erp.Reports/Erp.Reports.Application.Contracts/Erp.Reports.Application.Contracts.csproj create mode 100644 api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ErpReportsApplicationContractsModule.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/CreateReportDefinitionDto.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/IReportDefinitionAppService.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/ReportDefinitionDto.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/UpdateReportDefinitionDto.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Application/Erp.Reports.Application.csproj create mode 100644 api/modules/Erp.Reports/Erp.Reports.Application/ErpReportsApplicationAutoMapperProfile.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Application/ErpReportsApplicationModule.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Application/ReportDefinitionAppService.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Domain.Shared/Erp.Reports.Domain.Shared.csproj create mode 100644 api/modules/Erp.Reports/Erp.Reports.Domain.Shared/ErpReportsDomainSharedModule.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Domain.Shared/ReportsConsts.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Domain/Erp.Reports.Domain.csproj create mode 100644 api/modules/Erp.Reports/Erp.Reports.Domain/ErpReportsDbProperties.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Domain/ErpReportsDomainModule.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.Domain/ReportDefinitions/ReportDefinition.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/Erp.Reports.EntityFrameworkCore.csproj create mode 100644 api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContext.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContextFactory.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContextModelCreatingExtensions.cs create mode 100644 api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsEntityFrameworkCoreModule.cs rename api/src/Erp.Platform.EntityFrameworkCore/Migrations/{20251214195617_Initial.Designer.cs => 20260106110136_Initial.Designer.cs} (99%) rename api/src/Erp.Platform.EntityFrameworkCore/Migrations/{20251214195617_Initial.cs => 20260106110136_Initial.cs} (99%) create mode 100644 api/src/Erp.Platform.HttpApi.Host/Controllers/CustomWebDocumentViewerController.cs create mode 100644 api/src/Erp.Platform.HttpApi.Host/Data/LegacyReportDbContext.cs create mode 100644 api/src/Erp.Platform.HttpApi.Host/Data/nwind.db create mode 100644 api/src/Erp.Platform.HttpApi.Host/Data/nwind.json create mode 100644 api/src/Erp.Platform.HttpApi.Host/Data/reportsData.db create mode 100644 api/src/Erp.Platform.HttpApi.Host/PredefinedReports/ReportsFactory.cs create mode 100644 api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.Designer.cs create mode 100644 api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.cs create mode 100644 api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.resx create mode 100644 api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomDataSourceWizardJsonDataConnectionStorage.cs create mode 100644 api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomJsonDataConnectionProviderFactory.cs create mode 100644 api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomReportStorageWebExtension.cs create mode 100644 api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomSqlDataConnectionProviderFactory.cs create mode 100644 api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomSqlDataSourceWizardConnectionStringsProvider.cs create mode 100644 ui/src/views/report/DevexpressReportViewer.tsx diff --git a/api/Erp.Platform.sln b/api/Erp.Platform.sln index e8dba0e3..a9b23d0d 100644 --- a/api/Erp.Platform.sln +++ b/api/Erp.Platform.sln @@ -92,6 +92,18 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Erp.SqlQueryManager.Applica EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Erp.SqlQueryManager.EntityFrameworkCore", "modules\Erp.SqlQueryManager\Erp.SqlQueryManager.EntityFrameworkCore\Erp.SqlQueryManager.EntityFrameworkCore.csproj", "{1DA666D8-DBFE-40F7-8EBF-95CC892E4EB6}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Erp.Reports", "Erp.Reports", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Erp.Reports.Application", "modules\Erp.Reports\Erp.Reports.Application\Erp.Reports.Application.csproj", "{3E1C9BC6-90C2-20F1-567F-2BA043D81721}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Erp.Reports.Application.Contracts", "modules\Erp.Reports\Erp.Reports.Application.Contracts\Erp.Reports.Application.Contracts.csproj", "{6E1A7691-CD09-860C-C6B3-86FDFDD3E372}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Erp.Reports.Domain", "modules\Erp.Reports\Erp.Reports.Domain\Erp.Reports.Domain.csproj", "{0924ACE7-6A32-F683-9F4D-A15B07D14A5E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Erp.Reports.Domain.Shared", "modules\Erp.Reports\Erp.Reports.Domain.Shared\Erp.Reports.Domain.Shared.csproj", "{E65E10EE-41CC-B0E2-1004-E40D0CD26011}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Erp.Reports.EntityFrameworkCore", "modules\Erp.Reports\Erp.Reports.EntityFrameworkCore\Erp.Reports.EntityFrameworkCore.csproj", "{02E91CDA-E54C-9D5C-76AB-B07BE6D3E7FF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -230,6 +242,26 @@ Global {1DA666D8-DBFE-40F7-8EBF-95CC892E4EB6}.Debug|Any CPU.Build.0 = Debug|Any CPU {1DA666D8-DBFE-40F7-8EBF-95CC892E4EB6}.Release|Any CPU.ActiveCfg = Release|Any CPU {1DA666D8-DBFE-40F7-8EBF-95CC892E4EB6}.Release|Any CPU.Build.0 = Release|Any CPU + {3E1C9BC6-90C2-20F1-567F-2BA043D81721}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E1C9BC6-90C2-20F1-567F-2BA043D81721}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E1C9BC6-90C2-20F1-567F-2BA043D81721}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E1C9BC6-90C2-20F1-567F-2BA043D81721}.Release|Any CPU.Build.0 = Release|Any CPU + {6E1A7691-CD09-860C-C6B3-86FDFDD3E372}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E1A7691-CD09-860C-C6B3-86FDFDD3E372}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E1A7691-CD09-860C-C6B3-86FDFDD3E372}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E1A7691-CD09-860C-C6B3-86FDFDD3E372}.Release|Any CPU.Build.0 = Release|Any CPU + {0924ACE7-6A32-F683-9F4D-A15B07D14A5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0924ACE7-6A32-F683-9F4D-A15B07D14A5E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0924ACE7-6A32-F683-9F4D-A15B07D14A5E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0924ACE7-6A32-F683-9F4D-A15B07D14A5E}.Release|Any CPU.Build.0 = Release|Any CPU + {E65E10EE-41CC-B0E2-1004-E40D0CD26011}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E65E10EE-41CC-B0E2-1004-E40D0CD26011}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E65E10EE-41CC-B0E2-1004-E40D0CD26011}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E65E10EE-41CC-B0E2-1004-E40D0CD26011}.Release|Any CPU.Build.0 = Release|Any CPU + {02E91CDA-E54C-9D5C-76AB-B07BE6D3E7FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02E91CDA-E54C-9D5C-76AB-B07BE6D3E7FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02E91CDA-E54C-9D5C-76AB-B07BE6D3E7FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02E91CDA-E54C-9D5C-76AB-B07BE6D3E7FF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -274,6 +306,12 @@ Global {B45A3E8B-286B-4A74-9602-FC192ACEE8C4} = {2889482E-64CA-4A25-91D8-5B963D83681B} {ED9C639A-A706-4ECB-9638-A15B3681BDEC} = {2889482E-64CA-4A25-91D8-5B963D83681B} {1DA666D8-DBFE-40F7-8EBF-95CC892E4EB6} = {2889482E-64CA-4A25-91D8-5B963D83681B} + {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} = {03E1C8DA-035E-4882-AF81-F392139FCF38} + {3E1C9BC6-90C2-20F1-567F-2BA043D81721} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + {6E1A7691-CD09-860C-C6B3-86FDFDD3E372} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + {0924ACE7-6A32-F683-9F4D-A15B07D14A5E} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + {E65E10EE-41CC-B0E2-1004-E40D0CD26011} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + {02E91CDA-E54C-9D5C-76AB-B07BE6D3E7FF} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F} diff --git a/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/Erp.Reports.Application.Contracts.csproj b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/Erp.Reports.Application.Contracts.csproj new file mode 100644 index 00000000..7f8c933e --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/Erp.Reports.Application.Contracts.csproj @@ -0,0 +1,18 @@ + + + + net9.0 + enable + enable + Erp.Reports + + + + + + + + + + + diff --git a/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ErpReportsApplicationContractsModule.cs b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ErpReportsApplicationContractsModule.cs new file mode 100644 index 00000000..ee72d765 --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ErpReportsApplicationContractsModule.cs @@ -0,0 +1,12 @@ +using Volo.Abp.Application; +using Volo.Abp.Modularity; + +namespace Erp.Reports; + +[DependsOn( + typeof(ErpReportsDomainSharedModule), + typeof(AbpDddApplicationContractsModule) +)] +public class ErpReportsApplicationContractsModule : AbpModule +{ +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/CreateReportDefinitionDto.cs b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/CreateReportDefinitionDto.cs new file mode 100644 index 00000000..96bc1e89 --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/CreateReportDefinitionDto.cs @@ -0,0 +1,17 @@ +using System.ComponentModel.DataAnnotations; + +namespace Erp.Reports.ReportDefinitions; + +public class CreateReportDefinitionDto +{ + [Required] + [StringLength(256)] + public string Name { get; set; } + + [Required] + [StringLength(512)] + public string DisplayName { get; set; } + + [Required] + public byte[] Content { get; set; } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/IReportDefinitionAppService.cs b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/IReportDefinitionAppService.cs new file mode 100644 index 00000000..51134e24 --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/IReportDefinitionAppService.cs @@ -0,0 +1,13 @@ +using Volo.Abp.Application.Services; + +namespace Erp.Reports.ReportDefinitions; + +public interface IReportDefinitionAppService : IApplicationService +{ + Task GetAsync(Guid id); + Task GetByNameAsync(string name); + Task GetContentAsync(string name); + Task CreateAsync(CreateReportDefinitionDto input); + Task UpdateAsync(Guid id, UpdateReportDefinitionDto input); + Task DeleteAsync(Guid id); +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/ReportDefinitionDto.cs b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/ReportDefinitionDto.cs new file mode 100644 index 00000000..6ad8a60b --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/ReportDefinitionDto.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Application.Dtos; + +namespace Erp.Reports.ReportDefinitions; + +public class ReportDefinitionDto : FullAuditedEntityDto +{ + public string Name { get; set; } + public string DisplayName { get; set; } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/UpdateReportDefinitionDto.cs b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/UpdateReportDefinitionDto.cs new file mode 100644 index 00000000..73d71594 --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Application.Contracts/ReportDefinitions/UpdateReportDefinitionDto.cs @@ -0,0 +1,11 @@ +using System.ComponentModel.DataAnnotations; + +namespace Erp.Reports.ReportDefinitions; + +public class UpdateReportDefinitionDto +{ + [StringLength(512)] + public string DisplayName { get; set; } + + public byte[] Content { get; set; } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Application/Erp.Reports.Application.csproj b/api/modules/Erp.Reports/Erp.Reports.Application/Erp.Reports.Application.csproj new file mode 100644 index 00000000..9002073a --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Application/Erp.Reports.Application.csproj @@ -0,0 +1,20 @@ + + + + net9.0 + enable + enable + Erp.Reports + + + + + + + + + + + + + diff --git a/api/modules/Erp.Reports/Erp.Reports.Application/ErpReportsApplicationAutoMapperProfile.cs b/api/modules/Erp.Reports/Erp.Reports.Application/ErpReportsApplicationAutoMapperProfile.cs new file mode 100644 index 00000000..42530c50 --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Application/ErpReportsApplicationAutoMapperProfile.cs @@ -0,0 +1,12 @@ +using AutoMapper; +using Erp.Reports.ReportDefinitions; + +namespace Erp.Reports; + +public class ErpReportsApplicationAutoMapperProfile : Profile +{ + public ErpReportsApplicationAutoMapperProfile() + { + CreateMap(); + } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Application/ErpReportsApplicationModule.cs b/api/modules/Erp.Reports/Erp.Reports.Application/ErpReportsApplicationModule.cs new file mode 100644 index 00000000..c2e49c3f --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Application/ErpReportsApplicationModule.cs @@ -0,0 +1,22 @@ +using Volo.Abp.Application; +using Volo.Abp.AutoMapper; +using Volo.Abp.Modularity; + +namespace Erp.Reports; + +[DependsOn( + typeof(ErpReportsDomainModule), + typeof(ErpReportsApplicationContractsModule), + typeof(AbpDddApplicationModule), + typeof(AbpAutoMapperModule) +)] +public class ErpReportsApplicationModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.AddMaps(); + }); + } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Application/ReportDefinitionAppService.cs b/api/modules/Erp.Reports/Erp.Reports.Application/ReportDefinitionAppService.cs new file mode 100644 index 00000000..3eb4b023 --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Application/ReportDefinitionAppService.cs @@ -0,0 +1,76 @@ +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; + +namespace Erp.Reports.ReportDefinitions; + +public class ReportDefinitionAppService : ApplicationService, IReportDefinitionAppService +{ + private readonly IRepository _reportDefinitionRepository; + + public ReportDefinitionAppService(IRepository reportDefinitionRepository) + { + _reportDefinitionRepository = reportDefinitionRepository; + } + + public async Task GetAsync(Guid id) + { + var report = await _reportDefinitionRepository.GetAsync(id); + return ObjectMapper.Map(report); + } + + public async Task GetByNameAsync(string name) + { + var report = await _reportDefinitionRepository.FirstOrDefaultAsync(x => x.Name == name); + if (report == null) + { + throw new Volo.Abp.UserFriendlyException($"Report '{name}' not found"); + } + return ObjectMapper.Map(report); + } + + public async Task GetContentAsync(string name) + { + var report = await _reportDefinitionRepository.FirstOrDefaultAsync(x => x.Name == name); + if (report == null) + { + throw new Volo.Abp.UserFriendlyException($"Report '{name}' not found"); + } + return report.Content; + } + + public async Task CreateAsync(CreateReportDefinitionDto input) + { + var report = new ReportDefinition( + GuidGenerator.Create(), + input.Name, + input.DisplayName, + input.Content + ); + + await _reportDefinitionRepository.InsertAsync(report); + return ObjectMapper.Map(report); + } + + public async Task UpdateAsync(Guid id, UpdateReportDefinitionDto input) + { + var report = await _reportDefinitionRepository.GetAsync(id); + + if (!string.IsNullOrEmpty(input.DisplayName)) + { + report.DisplayName = input.DisplayName; + } + + if (input.Content != null && input.Content.Length > 0) + { + report.UpdateContent(input.Content); + } + + await _reportDefinitionRepository.UpdateAsync(report); + return ObjectMapper.Map(report); + } + + public async Task DeleteAsync(Guid id) + { + await _reportDefinitionRepository.DeleteAsync(id); + } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Domain.Shared/Erp.Reports.Domain.Shared.csproj b/api/modules/Erp.Reports/Erp.Reports.Domain.Shared/Erp.Reports.Domain.Shared.csproj new file mode 100644 index 00000000..da280b1c --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Domain.Shared/Erp.Reports.Domain.Shared.csproj @@ -0,0 +1,15 @@ + + + + net9.0 + enable + enable + Erp.Reports + + + + + + + + diff --git a/api/modules/Erp.Reports/Erp.Reports.Domain.Shared/ErpReportsDomainSharedModule.cs b/api/modules/Erp.Reports/Erp.Reports.Domain.Shared/ErpReportsDomainSharedModule.cs new file mode 100644 index 00000000..bbfa9a6e --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Domain.Shared/ErpReportsDomainSharedModule.cs @@ -0,0 +1,15 @@ +using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; + +namespace Erp.Reports; + +public class ErpReportsDomainSharedModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Domain.Shared/ReportsConsts.cs b/api/modules/Erp.Reports/Erp.Reports.Domain.Shared/ReportsConsts.cs new file mode 100644 index 00000000..f1ccb381 --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Domain.Shared/ReportsConsts.cs @@ -0,0 +1,7 @@ +namespace Erp.Reports; + +public static class ReportsConsts +{ + public const string DbTablePrefix = "Erp"; + public const string DbSchema = null; +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Domain/Erp.Reports.Domain.csproj b/api/modules/Erp.Reports/Erp.Reports.Domain/Erp.Reports.Domain.csproj new file mode 100644 index 00000000..5e0b875c --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Domain/Erp.Reports.Domain.csproj @@ -0,0 +1,18 @@ + + + + net9.0 + enable + enable + Erp.Reports + + + + + + + + + + + diff --git a/api/modules/Erp.Reports/Erp.Reports.Domain/ErpReportsDbProperties.cs b/api/modules/Erp.Reports/Erp.Reports.Domain/ErpReportsDbProperties.cs new file mode 100644 index 00000000..d6b7d72e --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Domain/ErpReportsDbProperties.cs @@ -0,0 +1,18 @@ +namespace Erp.Reports.Domain; + +public static class Prefix +{ + public static string MenuPrefix { get; set; } = "Plat"; + public static string HostPrefix { get; set; } = "H"; + public static string? DbSchema { get; set; } = null; + + public const string ConnectionStringName = "Reports"; +} + +public static class TablePrefix +{ + public static string ByName(string tableName) + { + return $"{Prefix.MenuPrefix}_{Prefix.HostPrefix}_{tableName}"; + } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Domain/ErpReportsDomainModule.cs b/api/modules/Erp.Reports/Erp.Reports.Domain/ErpReportsDomainModule.cs new file mode 100644 index 00000000..0d0f349a --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Domain/ErpReportsDomainModule.cs @@ -0,0 +1,16 @@ +using Volo.Abp.Domain; +using Volo.Abp.Modularity; + +namespace Erp.Reports; + +[DependsOn( + typeof(AbpDddDomainModule), + typeof(ErpReportsDomainSharedModule) +)] +public class ErpReportsDomainModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + // Domain services configuration can be added here + } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.Domain/ReportDefinitions/ReportDefinition.cs b/api/modules/Erp.Reports/Erp.Reports.Domain/ReportDefinitions/ReportDefinition.cs new file mode 100644 index 00000000..9378362b --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.Domain/ReportDefinitions/ReportDefinition.cs @@ -0,0 +1,23 @@ +using Volo.Abp.Domain.Entities.Auditing; + +namespace Erp.Reports.ReportDefinitions; + +public class ReportDefinition : FullAuditedEntity +{ + public string Name { get; set; } + public string DisplayName { get; set; } + public byte[] Content { get; set; } + + public ReportDefinition(Guid id, string name, string displayName, byte[] content) + : base(id) + { + Name = name; + DisplayName = displayName; + Content = content; + } + + public void UpdateContent(byte[] content) + { + Content = content; + } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/Erp.Reports.EntityFrameworkCore.csproj b/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/Erp.Reports.EntityFrameworkCore.csproj new file mode 100644 index 00000000..4b56e317 --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/Erp.Reports.EntityFrameworkCore.csproj @@ -0,0 +1,24 @@ + + + + net9.0 + enable + enable + Erp.Reports.EntityFrameworkCore + + + + + + + + all + runtime; build; native; contentfiles; analyzers + + + + + + + + diff --git a/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContext.cs b/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContext.cs new file mode 100644 index 00000000..f8455934 --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContext.cs @@ -0,0 +1,25 @@ +using Microsoft.EntityFrameworkCore; +using Volo.Abp.Data; +using Volo.Abp.EntityFrameworkCore; +using Erp.Reports.ReportDefinitions; +using Erp.Reports.Domain; + +namespace Erp.Reports.EntityFrameworkCore; + +[ConnectionStringName(Prefix.ConnectionStringName)] +public class ErpReportsDbContext : AbpDbContext +{ + public DbSet ReportDefinitions { get; set; } + + public ErpReportsDbContext(DbContextOptions options) + : base(options) + { + } + + protected override void OnModelCreating(ModelBuilder builder) + { + base.OnModelCreating(builder); + + builder.ConfigureReports(); + } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContextFactory.cs b/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContextFactory.cs new file mode 100644 index 00000000..8d110fae --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContextFactory.cs @@ -0,0 +1,27 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; +using Microsoft.Extensions.Configuration; + +namespace Erp.Reports.EntityFrameworkCore; + +public class ErpReportsDbContextFactory : IDesignTimeDbContextFactory +{ + public ErpReportsDbContext CreateDbContext(string[] args) + { + var configuration = BuildConfiguration(); + + var builder = new DbContextOptionsBuilder() + .UseSqlServer(configuration.GetConnectionString("SqlServer")); + + return new ErpReportsDbContext(builder.Options); + } + + private static IConfigurationRoot BuildConfiguration() + { + var builder = new ConfigurationBuilder() + .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../Erp.Reports.HttpApi.Host/")) + .AddJsonFile("appsettings.json", optional: false); + + return builder.Build(); + } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContextModelCreatingExtensions.cs b/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContextModelCreatingExtensions.cs new file mode 100644 index 00000000..2338aeaa --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsDbContextModelCreatingExtensions.cs @@ -0,0 +1,28 @@ +using Microsoft.EntityFrameworkCore; +using Volo.Abp; +using Volo.Abp.EntityFrameworkCore.Modeling; +using Erp.Reports.ReportDefinitions; +using Erp.Reports.Domain; + +namespace Erp.Reports.EntityFrameworkCore; + +public static class ErpReportsDbContextModelCreatingExtensions +{ + public static void ConfigureReports( + this ModelBuilder builder) + { + Check.NotNull(builder, nameof(builder)); + + builder.Entity(b => + { + b.ToTable(TablePrefix.ByName(nameof(ReportDefinition)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.Name).IsRequired().HasMaxLength(256); + b.Property(x => x.DisplayName).IsRequired().HasMaxLength(512); + b.Property(x => x.Content).IsRequired(); + + b.HasIndex(x => x.Name); + }); + } +} diff --git a/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsEntityFrameworkCoreModule.cs b/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsEntityFrameworkCoreModule.cs new file mode 100644 index 00000000..6b6189ee --- /dev/null +++ b/api/modules/Erp.Reports/Erp.Reports.EntityFrameworkCore/ErpReportsEntityFrameworkCoreModule.cs @@ -0,0 +1,26 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore.SqlServer; +using Volo.Abp.Modularity; + +namespace Erp.Reports.EntityFrameworkCore; + +[DependsOn( + typeof(ErpReportsDomainModule), + typeof(AbpEntityFrameworkCoreSqlServerModule) +)] +public class ErpReportsEntityFrameworkCoreModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddAbpDbContext(options => + { + options.AddDefaultRepositories(includeAllEntities: true); + }); + + Configure(options => + { + options.UseSqlServer(); + }); + } +} diff --git a/api/src/Erp.Platform.Application.Contracts/Erp.Platform.Application.Contracts.csproj b/api/src/Erp.Platform.Application.Contracts/Erp.Platform.Application.Contracts.csproj index 67f11d41..421309b8 100644 --- a/api/src/Erp.Platform.Application.Contracts/Erp.Platform.Application.Contracts.csproj +++ b/api/src/Erp.Platform.Application.Contracts/Erp.Platform.Application.Contracts.csproj @@ -11,6 +11,7 @@ + diff --git a/api/src/Erp.Platform.Application.Contracts/PlatformApplicationContractsModule.cs b/api/src/Erp.Platform.Application.Contracts/PlatformApplicationContractsModule.cs index 7700a58e..83caab29 100644 --- a/api/src/Erp.Platform.Application.Contracts/PlatformApplicationContractsModule.cs +++ b/api/src/Erp.Platform.Application.Contracts/PlatformApplicationContractsModule.cs @@ -1,5 +1,6 @@ using Erp.Languages; using Erp.Notifications.Application; +using Erp.Reports; using Erp.Settings; using Volo.Abp.Account; using Volo.Abp.FeatureManagement; @@ -21,7 +22,8 @@ namespace Erp.Platform; typeof(AbpObjectExtendingModule), typeof(LanguagesApplicationContractsModule), typeof(SettingsApplicationContractsModule), - typeof(NotificationApplicationContractsModule) + typeof(NotificationApplicationContractsModule), + typeof(ErpReportsApplicationContractsModule) )] public class PlatformApplicationContractsModule : AbpModule { diff --git a/api/src/Erp.Platform.Application/Erp.Platform.Application.csproj b/api/src/Erp.Platform.Application/Erp.Platform.Application.csproj index c5557c5b..197aadae 100644 --- a/api/src/Erp.Platform.Application/Erp.Platform.Application.csproj +++ b/api/src/Erp.Platform.Application/Erp.Platform.Application.csproj @@ -15,6 +15,7 @@ + diff --git a/api/src/Erp.Platform.Application/PlatformApplicationModule.cs b/api/src/Erp.Platform.Application/PlatformApplicationModule.cs index 5121c36f..224c6d7d 100644 --- a/api/src/Erp.Platform.Application/PlatformApplicationModule.cs +++ b/api/src/Erp.Platform.Application/PlatformApplicationModule.cs @@ -1,5 +1,6 @@ using Erp.Languages; using Erp.Notifications.Application; +using Erp.Reports; using Erp.Settings; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Account; @@ -23,7 +24,8 @@ namespace Erp.Platform; typeof(AbpFeatureManagementApplicationModule), typeof(LanguagesApplicationModule), typeof(SettingsApplicationModule), - typeof(NotificationApplicationModule) + typeof(NotificationApplicationModule), + typeof(ErpReportsApplicationModule) )] public class PlatformApplicationModule : AbpModule { diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json b/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json index cd247dfe..75ea0af3 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json +++ b/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json @@ -454,6 +454,13 @@ "componentPath": "@/views/coordinator/ExamInterface/PDFTestInterface", "routeType": "protected", "authority": ["App.Coordinator.Tests"] + }, + { + "key": "admin.devexpressReportView", + "path": "/admin/reports/reportviewer", + "componentPath": "@/views/report/DevexpressReportViewer", + "routeType": "protected", + "authority": [] } ], "Menus": [ diff --git a/api/src/Erp.Platform.Domain.Shared/Erp.Platform.Domain.Shared.csproj b/api/src/Erp.Platform.Domain.Shared/Erp.Platform.Domain.Shared.csproj index 9a635bdc..b7868197 100644 --- a/api/src/Erp.Platform.Domain.Shared/Erp.Platform.Domain.Shared.csproj +++ b/api/src/Erp.Platform.Domain.Shared/Erp.Platform.Domain.Shared.csproj @@ -30,6 +30,7 @@ + diff --git a/api/src/Erp.Platform.Domain.Shared/PlatformDomainSharedModule.cs b/api/src/Erp.Platform.Domain.Shared/PlatformDomainSharedModule.cs index 01d4db7a..ca0d3cd4 100644 --- a/api/src/Erp.Platform.Domain.Shared/PlatformDomainSharedModule.cs +++ b/api/src/Erp.Platform.Domain.Shared/PlatformDomainSharedModule.cs @@ -1,5 +1,6 @@ using Erp.Languages; using Erp.Notifications.Domain; +using Erp.Reports; using Erp.Platform.Localization; using Erp.Settings; using Volo.Abp.AuditLogging; @@ -27,7 +28,8 @@ namespace Erp.Platform; typeof(AbpTenantManagementDomainSharedModule), typeof(LanguagesDomainSharedModule), typeof(SettingsDomainSharedModule), - typeof(NotificationDomainSharedModule) + typeof(NotificationDomainSharedModule), + typeof(ErpReportsDomainSharedModule) )] public class PlatformDomainSharedModule : AbpModule { diff --git a/api/src/Erp.Platform.Domain/Erp.Platform.Domain.csproj b/api/src/Erp.Platform.Domain/Erp.Platform.Domain.csproj index c12cf031..a53f8293 100644 --- a/api/src/Erp.Platform.Domain/Erp.Platform.Domain.csproj +++ b/api/src/Erp.Platform.Domain/Erp.Platform.Domain.csproj @@ -13,6 +13,7 @@ + diff --git a/api/src/Erp.Platform.Domain/PlatformDomainModule.cs b/api/src/Erp.Platform.Domain/PlatformDomainModule.cs index 1218f1fd..68d200a7 100644 --- a/api/src/Erp.Platform.Domain/PlatformDomainModule.cs +++ b/api/src/Erp.Platform.Domain/PlatformDomainModule.cs @@ -17,6 +17,7 @@ using Volo.Abp.TenantManagement; using Volo.Abp.BlobStoring; using Volo.Abp.BlobStoring.FileSystem; using Volo.Abp.Timing; +using Erp.Reports; namespace Erp.Platform; @@ -35,6 +36,7 @@ namespace Erp.Platform; typeof(SettingsDomainModule), typeof(ErpMailQueueModule), typeof(NotificationDomainModule), + typeof(ErpReportsDomainModule), typeof(AbpBlobStoringModule), typeof(AbpBlobStoringFileSystemModule) )] diff --git a/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs b/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs index 32080161..68ee5350 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs @@ -27,6 +27,7 @@ using static Erp.Platform.PlatformConsts; using static Erp.Settings.SettingsConsts; using Erp.Platform.Enums; using Erp.SqlQueryManager.EntityFrameworkCore; +using Erp.Reports.EntityFrameworkCore; namespace Erp.Platform.EntityFrameworkCore; @@ -351,6 +352,7 @@ public class PlatformDbContext : builder.ConfigureMailQueue(); builder.ConfigureNotification(); builder.ConfigureSqlQueryManager(); + builder.ConfigureReports(); //Saas builder.Entity(b => diff --git a/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformEntityFrameworkCoreModule.cs b/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformEntityFrameworkCoreModule.cs index 725e2d7c..15925cd9 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformEntityFrameworkCoreModule.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformEntityFrameworkCoreModule.cs @@ -1,6 +1,7 @@ using System; using Erp.Languages.EntityFrameworkCore; using Erp.Notifications.EntityFrameworkCore; +using Erp.Reports.EntityFrameworkCore; using Erp.Settings.EntityFrameworkCore; using Erp.SqlQueryManager.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; @@ -36,7 +37,8 @@ namespace Erp.Platform.EntityFrameworkCore; typeof(LanguagesEntityFrameworkCoreModule), typeof(SettingsEntityFrameworkCoreModule), typeof(NotificationEntityFrameworkCoreModule), - typeof(SqlQueryManagerEntityFrameworkCoreModule) + typeof(SqlQueryManagerEntityFrameworkCoreModule), + typeof(ErpReportsEntityFrameworkCoreModule) )] public class PlatformEntityFrameworkCoreModule : AbpModule { diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Erp.Platform.EntityFrameworkCore.csproj b/api/src/Erp.Platform.EntityFrameworkCore/Erp.Platform.EntityFrameworkCore.csproj index 36f011bf..7676d08f 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Erp.Platform.EntityFrameworkCore.csproj +++ b/api/src/Erp.Platform.EntityFrameworkCore/Erp.Platform.EntityFrameworkCore.csproj @@ -27,6 +27,7 @@ + diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251214195617_Initial.Designer.cs b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20260106110136_Initial.Designer.cs similarity index 99% rename from api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251214195617_Initial.Designer.cs rename to api/src/Erp.Platform.EntityFrameworkCore/Migrations/20260106110136_Initial.Designer.cs index 46f9209f..6beac0df 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251214195617_Initial.Designer.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20260106110136_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace Erp.Platform.Migrations { [DbContext(typeof(PlatformDbContext))] - [Migration("20251214195617_Initial")] + [Migration("20260106110136_Initial")] partial class Initial { /// @@ -17773,6 +17773,63 @@ namespace Erp.Platform.Migrations b.ToTable("Sas_H_ForumTopic", (string)null); }); + modelBuilder.Entity("Erp.Reports.ReportDefinitions.ReportDefinition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("varbinary(max)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("Name"); + + b.ToTable("Plat_H_ReportDefinition", (string)null); + }); + modelBuilder.Entity("Erp.Settings.Entities.SettingDefinition", b => { b.Property("Id") diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251214195617_Initial.cs b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20260106110136_Initial.cs similarity index 99% rename from api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251214195617_Initial.cs rename to api/src/Erp.Platform.EntityFrameworkCore/Migrations/20260106110136_Initial.cs index 5a6e10e3..a3f2e145 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251214195617_Initial.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20260106110136_Initial.cs @@ -2009,6 +2009,27 @@ namespace Erp.Platform.Migrations table.PrimaryKey("PK_Plat_H_NotificationRule", x => x.Id); }); + migrationBuilder.CreateTable( + name: "Plat_H_ReportDefinition", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + DisplayName = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: false), + Content = table.Column(type: "varbinary(max)", nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Plat_H_ReportDefinition", x => x.Id); + }); + migrationBuilder.CreateTable( name: "Plat_H_SettingDefinition", columns: table => new @@ -9505,6 +9526,11 @@ namespace Erp.Platform.Migrations table: "Plat_H_Notification", column: "NotificationRuleId"); + migrationBuilder.CreateIndex( + name: "IX_Plat_H_ReportDefinition_Name", + table: "Plat_H_ReportDefinition", + column: "Name"); + migrationBuilder.CreateIndex( name: "IX_Prj_T_ProjectPhase_CategoryId", table: "Prj_T_ProjectPhase", @@ -10675,6 +10701,9 @@ namespace Erp.Platform.Migrations migrationBuilder.DropTable( name: "Plat_H_Notification"); + migrationBuilder.DropTable( + name: "Plat_H_ReportDefinition"); + migrationBuilder.DropTable( name: "Plat_H_SettingDefinition"); diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs index f8f86f8b..047d0422 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs @@ -17770,6 +17770,63 @@ namespace Erp.Platform.Migrations b.ToTable("Sas_H_ForumTopic", (string)null); }); + modelBuilder.Entity("Erp.Reports.ReportDefinitions.ReportDefinition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("varbinary(max)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("Name"); + + b.ToTable("Plat_H_ReportDefinition", (string)null); + }); + modelBuilder.Entity("Erp.Settings.Entities.SettingDefinition", b => { b.Property("Id") diff --git a/api/src/Erp.Platform.HttpApi.Host/Controllers/CustomWebDocumentViewerController.cs b/api/src/Erp.Platform.HttpApi.Host/Controllers/CustomWebDocumentViewerController.cs new file mode 100644 index 00000000..08ef7e63 --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/Controllers/CustomWebDocumentViewerController.cs @@ -0,0 +1,15 @@ +using DevExpress.AspNetCore.Reporting.WebDocumentViewer; +using DevExpress.AspNetCore.Reporting.WebDocumentViewer.Native.Services; +using Microsoft.AspNetCore.Mvc; + +namespace Erp.Platform.Controllers; + +[Route("DXXRDV")] +[ApiExplorerSettings(IgnoreApi = true)] +public class CustomWebDocumentViewerController : WebDocumentViewerController +{ + public CustomWebDocumentViewerController(IWebDocumentViewerMvcControllerService controllerService) + : base(controllerService) + { + } +} diff --git a/api/src/Erp.Platform.HttpApi.Host/Data/LegacyReportDbContext.cs b/api/src/Erp.Platform.HttpApi.Host/Data/LegacyReportDbContext.cs new file mode 100644 index 00000000..6484326c --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/Data/LegacyReportDbContext.cs @@ -0,0 +1,67 @@ +using System.Linq; +using Microsoft.EntityFrameworkCore; + +namespace Erp.Reports.HttpApi.Host.Data; + +public class SqlDataConnectionDescription : DataConnection { } +public class JsonDataConnectionDescription : DataConnection { } + +public abstract class DataConnection +{ + public int Id { get; set; } + public string Name { get; set; } + public string DisplayName { get; set; } + public string ConnectionString { get; set; } +} + +public class LegacyReportDbContext : DbContext +{ + public DbSet JsonDataConnections { get; set; } + public DbSet SqlDataConnections { get; set; } + + public LegacyReportDbContext(DbContextOptions options) : base(options) + { + } + + public void InitializeDatabase() + { + Database.EnsureCreated(); + + var nwindJsonDataConnectionName = "NWindProductsJson"; + if (!JsonDataConnections.Any(x => x.Name == nwindJsonDataConnectionName)) + { + var newData = new JsonDataConnectionDescription + { + Name = nwindJsonDataConnectionName, + DisplayName = "Northwind Products (JSON)", + ConnectionString = "Uri=Data/nwind.json" + }; + JsonDataConnections.Add(newData); + } + + var nwindSqlDataConnectionName = "NWindConnectionString"; + if (!SqlDataConnections.Any(x => x.Name == nwindSqlDataConnectionName)) + { + var newData = new SqlDataConnectionDescription + { + Name = nwindSqlDataConnectionName, + DisplayName = "Northwind Data Connection", + ConnectionString = "XpoProvider=SQLite;Data Source=|DataDirectory|Data/nwind.db" + }; + SqlDataConnections.Add(newData); + } + + var reportsDataConnectionName = "ReportsDataSqlite"; + if (!SqlDataConnections.Any(x => x.Name == reportsDataConnectionName)) + { + var newData = new SqlDataConnectionDescription + { + Name = reportsDataConnectionName, + DisplayName = "Reports Data (Demo)", + ConnectionString = "XpoProvider=SQLite;Data Source=|DataDirectory|Data/reportsData.db" + }; + SqlDataConnections.Add(newData); + } + SaveChanges(); + } +} diff --git a/api/src/Erp.Platform.HttpApi.Host/Data/nwind.db b/api/src/Erp.Platform.HttpApi.Host/Data/nwind.db new file mode 100644 index 0000000000000000000000000000000000000000..ef5dea89bc0cd1fb03b656f01ee9b83b7dd83b01 GIT binary patch literal 659456 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Å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

azH^mE`kU(=YutLw0~~*oMeS*;M&n3 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%0AN3!v|NHuE{f+f|XxIOe`nLMX^^J8e);&!X z0RL6@mAZea`#{~>>t0vaUw2jAy1Hdl`9H4qceM}J-dlTTZN7G(c6;rb+K$>8R0H7g z{noAkc$e=s-vHJ8FZWIN)p?)w{>1wY@8_uk;Jx0z@xH-($h+IS-g}X^)oa%L(e4fS z(VF+*oWNLyp`AZ*rII5j;hiCfhrn6lN>iQtXJi2JXtokpTpVgLGB&nLTtQi9BLi$F z-m4woY-RxJNSYIuE01MvECXyunv%F&X}*)R%mC`)3olPZ5)vXrGmQ1<>I~B ziLux?ETeN7fId9ItH(Fbh-QHHFy>YBJ5?tjBf~H+khpAhW7y2t@GfzgS~Q3(8{Q=@ zYnxMNWNdhsxQzUIBg616kl5MVK(83q(W?s=%`-B9bNKq5WEG4I<2QOm>sT}c+=hp_ zluErMnu}%_u+h~?5#@8mG5~Ji(hh|=Raz&OVH`(qDi*4cax?=xhi|!LW>ne7SO$O& z_q#-`Gs-VBGlcKNG+#nRm9~|PW`OT-pY7|5qLdi`JltoyvPEj8Gc%0y0*UPkgiJCr zHoi-22bRy+_%5+ci3G99#&?NrOQ$b2Gr)I{nr+I$Of)ipdEo0d>LFlcfbYbs@y!dO zX$E%w#8!Y#8zmcQ26%zQR@x;TO9R;9xwoiASOJ`QEzZJuMKZP=ICfGtdE8}=o7mrids(tv$hi_QBnl{I$8OqTswPuH- zX+Stk^BOV-(hfz_z;5CyO8I1XD-H05?^xqJVl)j5Cx#l7*^!1UZG*VPYTBV{rUByc z!PN>1`iwL%93HNlcHkRn25PY|xfi**3>-rftxc zSfOa6AvS1BtY~RziluGPmgrIs;e;{L0Bz8)E~Wgc>c&hnb_*oB)XYwarGeSRClte- zz(*R;4R1PKVTu$M2u{4|+)lyOv<>JI%T+bQS+O(&I)CCKg<(|{Lo5wohudAG%H34` zLp04ekKUwoj|{z-X~uhj#6`v20?q@^m(2;!h^7JXFs;jIi= z=TA6|VU)1M(hTwFO(nXjqqCU?)WeKksMt+PX(PVGg%g6NnFit$LzHSa8fhE&B`#Rq zNa_UOho`we5#3J=<(KLV`xUul!kP{kD1Nq?*7b?%%8%=l0p|p2Ou198ifjzWS%{f_<`C@1w z(MgR>qUm||2N!fSIkoNS4*P=(RD^(x*#h5t=F-1 ztNmt&TCWtJqUqW8{W_?NgLA)g?T^e=?w((onrM2K{gJuzJ5>dBG(A&ZEozHlq=6S9 z73Wh7GnOWRC^YAMCtNSZAev^N=ue#AP_Kl;Oam}t%I7F#LzW-7QCw7(g)BedBfhGg z>|!(x+z0_WuY0E2k`hY;FhX_DQ>&>8l$mMZM%?v0<<^H{X~0JD31xMhxOJM*qd(C$ zZnld2n`xj(+^0=BEnTrRKqT&yP#ksOTbeN?y{Q6FDiCO-CAN$&@Y4beY>Au4l_iOo zX+TU|Y*h;|EoDHO;-dOSS_35DY^4=6mImO&L(NtliGoLDo>_%o20rJjzg4R9x(ZkCD>lR*OP#1zh&VG;p^GkJ&tp|lDBXX2@5 zs-?+^yrm`FoT-#e1!iJthMWGx3`LJ3HkxMGNpB(sYpZlD&G6Hon6ADoAx(2E4H$|i znXYtBOW^541WZj%mPB5Is%ZkBpK;r_*RRU+fgnDemgDMNunH^b~_sdULj^ z8r~YG09L`Z7W5%G#ppDUn5qmPk6m`)!#UM10n0#?)M)VZG zC#aZ=S+=2M?36^GlO4g5ZyKi+sFPl;Zlq{G&?d+~Td6GtUnS@~TWJej z1n9)bm=erT^c1iso@NqNzsN6y|NohqH#__P-_UqNHv5$d?0*9xF>vGcuM#z<2mE!#@CFG7+K>+V~>ae%rj;h!;O6>;6>t>$;!S{YTwh)B`X>JpgwXoeuDD?YC<0s(oK=uJ*>--L>0lm)9o5 zZh+s?>3~1--Aj4@xB6b|+e3W-m(c$I@xB`G)7}TX_j*6={h;?P-kWJZz)tTf@A+P8 z0bTQ_n$tDkulan<2Z`N7|A}T9iTV?FQgyCcG_pXXn7n^l8Bz8)nq^2zSKH<|zDjn7 z9Gh@F7&8lq3YqwbT0CYLSs+!&{zt~mZZxxis2K8LWmH;?ERZUOe0T=!cFF>xV#tS7 z6n&zZWuzKNIHi0|MivMapZnmX2n~^t^n*%FCq}b?q#)`8OQ);#*31$X75?!DOto$s zSzu7y?fn#M8LKW&#Fp<< z>PTb)TVmw<6snzKWEo=8#c{J~2%sf~+^)i|lgun5%s}G3Dpt@K%SvSVUUf4C6{1-n zOYq>mwc{N?k_EJc8GDa1wu%?gERZHX@*bmE-N?vFsQK=dkwzmcq2{~CQU8rBK~0f# zeK)2MND~kKj|!aE8CeFLbg`p}h5%@aA!;EAn^}P~>2vQ=My1ZoF0w~D^>*~-z?tCs zyZlqa(X0fR|FFRCtbkbnOc3!8aM$e>!^{F<;*0-YS@?*V1<=IBcd7>_StXn)q~sk` zDX2aUoQaWdR~B-HnFZVw7o9mVvp}1;_%^kuHknxln{-j(<7OiZkO^Ym)==LX%K}wm zV&1C0!D*F~mEiKNizcd7$ILRg3?%+e3Ca{R%b=1jDrQcJW+j;X+trOKX%Wo=OoCHX zz@{7}Bg-fnFUzHUGmDb^vALiE9TTxs*0v)7FZE9<+^7o zh!M>KEQ+fQ^(rB3WEmv}5?LyUFtZXJW)-D0#S`oY$SO+77jj_x@@ihL#O)6Zh3Te$uzx}8;DVt85yWal% zNdnJi=72rqg!0{eM&>$u$cg4qQ!I0>7~)UdsJNi!JeJun-&7B*6epIsM!u;mr(#Yt zvrl{p-F6WjPG&1&G;_6m^@gGytFcUpQH?nk=Y}z1`@~TcY2M? zZutuB^D?`{?E;BoO8JP(SJ^|3O$bt&;Y#_6ir_+-E9}MenAsZ5TrS@7CysVBsT7Kl zdA0q4qttQ1%)E+TK}e1&AGpcP0OsN15fv2m#WFy7SX~B`I9V?r#$;Lo2p zs8&+7BgD)Q2owwQL8sNPk&z&lZ2$~H7e|%A4r5Q#> zg1_s@mY5j<{_r`aNHk$Uf4KGa<7Ov}jD&sEu7utL?8AEpu%kP}c+a1>P6??}xmbpA zAHAtekqS)2GQfY}+jVLJ)a)1;z(IV;wW}Lz&5Xo>*Qz?jkdXln6hr(|>S7rHKiqA< zTC-HM;8;fDzx_&N)N>da#(#mtejgnPm65pb8glE5jKqD{z;0&<_lfV=r?l1CA&>zM z#N+H+eC|Xu0|1EG*ryheh?$W%aGz4OdC?4TAcX4bhWakYP6G&vtD&i?d9s-S62x8m z)LfC70U*T1y=vk~#~2UN#c{JK}Y?_9(z#WIBKZ z#Yd3EQ3eH2P+X;5(au$1L0sL9t-P`YVTQpVT~(5(qMXqTgF#02G42tAe{o>LnVyN>v0*iDiHWAs|;O+_*?CXVHuVg;y?}uJ(q- zG603*BMQ#VbUp%%2r{pn6;m6t;s4)VbBfRZyQ}f`#=mWRW8-0w|F;_FHBN49Y^t@$mJ0$G9wac_)Ww84PR^cY{Q)md5Qt-Y1q(UH6$9E!hfO~fNz99 zO;rHz5LEyxs0v_e7`6Y;Qyli(hbwz>i839z=Vt!{i>p!UVuM{B=Rdw1>oYu{FTlFkBHQ@ezE0!*%LtgZ1q z=X;=}`u_^wTJ!<*{@Ht4^Z`UqfaBh4yq8f$z(Uap@P(QuC<^eeR1a{fGzbvQOECK1 zy$xzjjphMHF>C)#{r9BE#`26p>8e7ZYB4qQK%>yF7ZmcIV&o+#eSzu-%)A7pFDNwR zH}e3c;&aNrg`;_3Q+)sPl$VeJ?r5IDDP5gI=g7%YpS%RA&r>H-BQHVf?`TV|kq1bH zz(2QidaaR{==3?-C>YH%I`t=hd*LF}p%Ew*!t9hvDjOKfGiaqZmGxBVcQX(03POIZ zg5KU}9vBvcJiFe!OesZPg4buMEu3>zg4bthN24r(0T7YxY=90@BmU{5yMJa|}r7BWiI`JzkBR z1g1}*?k*>RDIJt%A5qz4<^W8=wZ{!$((kqHbm^mO%-1{*HBE@nNcs{E1O7*ZXa{!+B#3L$pHp9#TcZ!Q@QJrY! z06)b=g$<^dIf+6aQ50@6auS6;5~g;6If+6a@lP>hIYOay7k}bmm2FXh2r~y%im!NB zxh0`!jzKAX0v?%c>W~9C1#cdv3ITc5%t>_mkfMej0O%A9dx#QOW{%+~y;9D`6eGtl zlrGLD;F|;d#AEzI`4hxiMxTMigNlnJS`u|W7-&7q%mH=ca}TI*r|)C%8A$xx`J9;} z&?!d#TkzY zN;zoZSWaTjA1Yl}kUN@V%;``3uxM+xkpuR`U4J+$7BF%WbW&O3Sw;?^6Yt%JHuE_~ zne<9YIWY?863=~~(%JfGjzOkB@%^RKoyCBe)|IQd^{x+lhR3@7~w zr&Eptq;r6kP?PT{sVS0jpiDgDx0Q9QGja?z>7suM$pnK;dZmyVi7>z=KKCs(-^6If zmUMB3Ns|doDTXLdj^-PX5(Iy9erLeU0YhTQHCBLp9;FMTSLdmZyJLHs-S#_P z%6pqOtE*;ihE3OhDy{cMbJGP~{=|RQPf{BZW4USeSAR{>r|uKWwa7QsWGhLC<)+Fv zl{zbQWaOrZFAF68qjo$A^kgwKkoc-nAzJ6ov4?yW?ndrx`6@J(rYR<0)lUi=xk>h` zd#I~}k((%A&F`dHo&Eay*rNv#B`j60eGrh|F^673#P zKrP3hE|B=*oG`8A4Cd(7_~vFKCqdj78|vvj3F5xc(R7ZP1Bk=pe_kofyjTuc4)XJP z6+qb}zbTdjv=eVC<~!bYP9nU|D^kyspEPnncp&+6f@DBC@yb6X5Y0&}_irny+lyMt zB$oR(O3urxu^g}*p5SifMkyE>%>mMZJ$Emi-XXs_nw41YZYrX7u1YL-Hwr8y=FLhh z_u1(YicU)`_gN+TfoPVooIi0Fj@r1_-ffg+Oy^I0WnG6{1JhwL& zCitva7PwD*Ld~J-ejm#M28uV8^-$HZW)`RrxBHYrV-$1;CI8 zD&iHRL4V?t=yqpw(9B9y_(=t%D7Fn$2)2B(IW*JA0uJKUCkW1(S>QlC&LwCxU;n(o@2vevj|%9lj-e zFnn2fefXmA+;A*hYrJ4QL|p*>)$R#+gR$G_H5MB)j7aGBp+`bL2;CL>`%pG?Yv^$3 z)uGj)j!+X-1N??g1o(FFv%x!PXFxJ|giZsrf{9>r&=Ytr@L1qSb{~MZ+tGlPfzH6} zfElQzXuwbW_xL~Nf3LkmV5@(bf41MOf4=?~^U!!H)SXMc07A8YtbL~T7vf~VcT+EbzS@m+GT>zD5BOW( z4}5p|-sj6vJpj%HTugfdnnWDnoA!ACw@@5lt9Kby1H@|nx90Jh?^18T_Y>>IpICvB ztiNrQs$o(_CRzZZrO9qvMY=9+MYI4&i>oWwJLN3V0%KabIw!26S0dMP~PqC!Zg-JdI+|hy zU|o=Nks_yv0}OrXP1HHsYlc}M2#lz8+eLH|kA2Z700QH&mQlBqXu-z5ZB#?5fKjx- z*w^2-v~A8z`N>!T7#L5mRH>Ru*_s6#61QEbSP(P{HY9GlV0vVRSpXykSr;hdkT45C z#^RzP%NHvEAmf{ss7SSvj97tjGQFwLr&>kK0^{XC+hVm|FNzj`lfj3@#l5Qv43O!n zT0qo}5VHWFjK^B6$O%Uaz{}!3<7W5D>Xlf50kgktks7KjP^pnpg7PrPc63eaR$S55oP!VfM9%JUUSH26d3&m z+Bzt)Zxn!f@!ni)W-b8cidTy!($@mlidX(At!4p07A!trt)HZVz_S=~KE=+Af(>Nb z&Zn|jvj89~KA?1#h_>-;+nkjIQ3}Ab7&1p8=TNKwSc^GmSBk9GS)%}yi!W?PS$YBR zRt!}LMb&`D3P8Jf^E|~FH5JhUz%OLuJhXJMSMgW@=ocSpQ;%Hq5rAQQB!N0;yI4P3 zU^MJ+i&K+Jd8257Q88VGiIX6q!00&8=G1m3Vg;aLeCKTC)hSeJ76=>*lQ5gMKgs<$ z1;)t!wsU8gDnuDAFjl6kEiKA6MGK6X=_-Y7q#ZK~z|P>}tofZ2%>sjFdZlK8W{<&g zplzlCS|oY^$@tt1oC8w;D#q+N2g}u(1%P95QF#D#Ghk#~oTh>(q(C-AZkvWJnl_J& z0w6NJqJ>htW&xNOADpU$?i?e}keDuZG%Ypq429{{40EEH2Lu)$P)3g;%r+8ko1$Ph z1)&)U2im4A@OxufWN@DBHJcC-gs2EC- zaDZ9JVvNpxRI-@2(QMnK?wKll8Oz&fwr!F!NzSIZJfqn_+e9M9%-bloZK4XoOfvE| zifx-XGdjb}1I2>D6BIAcGV?Z=ZJVG}mbeZuD@H11YBusVrfr+hP`@dZCrm4-pJ28} z^NeNvZR0Oov{wpyEDubJi5af~VXFGf%md=$E5<9`Ssl#->4G=oy-{@^GjBuPwq_-Q zVIyxt-L_^biZ${!)NP~QKNF2SL)}1I6WPL89uOCg5moBoH1NtZ(xo>QrAmd3JPt#N*)2$sI%aOKsgB=Nxlk=6BeicbfjpGxL|oiz>C+Z05Ji zi%P3$g151kLH2&FnbN&s3D~wnrEozZwnW-cr@~W zeE6i%(d0GqfO_K99Ln$If${JvL?>35d4M~7aY(V9^pY_iT_oFRNoNLbK;dRL<+&^EzlO2870{#)Fy5nQ0TAG$V=4bNBjRgP#eD8uOLukEDz8I ziK z0Bd+iFQqq(JfpNgTg}qx!Dt@n3{O=vGpZs-W}aagjZwD=n|Z)7aMh!pra79IsLV4x za+yPwL}ebeDmV=<^EN6={5cVcn0cTwx@+Rk%HGfu+u$tmXR6eT4fS5Y>n* zlqakPla}}s^%Tn6P%S}?c|xH)K{fH#|C%JNHbhJOaXlT4od-n2xBgKnM!k`@ky_#p z3;bj`fYdPL4{C*?TM}RsxBP=ilW*g-#EXk2wnp>7YsAR}_0@5@qUIT}(N)@(AzcL{ zZv(dkb=_HP$d^;eJo8L!_3&|Bpqy$p3$<@r#Y0YQ) z-_B7*x`{Wcc8SLdh%RDkR;l=sDv*Q!AE{a3iTt|Zx$q;#FGAl7ekJgq{;$`6yza`{ z6TZ#fP4wm~e@ZxzqD-52TFuU#J8S$)_IEdT%xZ1k?Ah+=_N=16wevi4Jsq9}o_6|w z5&hfYS>kD--{*QRDEhZ})M7Deq01=TYd+nf@?KsmaJBfe*>lX(M*~*TzXv?O^6c^K z_w4d)p{u*->R$2hCi=IZu3t@m_t5WqJqJAl^#6G@qQf(fM(?L97>zq!EJpXywE?=i zgjMnO2{(L+_<%V&jHdRNkO_6uq-y?bannL-wl19YvIuI-@_eV&sfGN5Ry z;MRbcVDOBEVvTs+FZc$*S|Wbt)8|inZlq7(-Vnk$p4IesuHe-?dOYw~zMtG<5TAmi zL_z^l3D^eu&b2hQT!$9X9o^Zqz-1J(X})HZwX3lCDUy_KqOD)ddJ8=V zR0T92pm~Q1>>=6MM^}#s$!Q^pU|yUgg}@Wf^>h*ESZ1JlsSTmCq^amlc6P-lceIXM zOS-V026pMh!OaS=teaVB4%>Uy4pOi6^wZ<< zmGhuOs}jYdn4daM6^~*&u9HEp)%I)R=CZ>(#1q22^pl8yhoH2F)aVfXK0sF-TkBY4 zC<@d9qQ&n!b{J*~^g{r*dNz@8Efyw+7lMW5miMNB;>`9XvpkcRv^HXHSJG# z2Ksj&jq4PqwcqoEkTtALb7@)KO7HKd(I>?nV7$Sh%XuBjjS! zLF+2`)lc&b(=u-e%2QOPElo^Uk3b_0Ye_#h(BCaOjnE;8a{kOCMprZMI&0;%dYivO z6aNC6Pt5RsK{I}1noH#$h~#nN5hNdo!X1Hh(&OQ8yU>V*B?u&C)G2=SUf$uE6>kkg z12)lpS5;bEcL`@n&{0~>wGNu5O0IdWo(~9g#&SR4c~UIAyqumUO9}0OB&;AF921uF zxX_EebhB;rE|AwT!5ysdokDuROW0Vvx1T-=^#iQ6>>PA_s{z>4mO9a_R=^=N~ZwCZ1U>|-iADR9WbfsV5Gq7L*;SMY#{erQn2A>iLTR~{? zlL}G+*GHBGIwR|~HXS2K`qUfFjDjRjdX-3Q?}`JW2e*-->?H%U$x~lGjeu|NBGEz2 zAAS^zgwFU_vlk2KwM|SbgkY;!AK+2!BEf*Qf0X`0G}e;<06E}y2bwP+vF-Kz(Y^+) zSU^9#UY5c0h8iUdhqq6IJ_Mi-8%P_rRjw0|rQyk9ebDKBIV1Hf@>$kgfghj{pb08) zl>PQSs5 z@c$b*0XVfL<2{| zF9(wDB20s8K!WUx5ARaVCuC6UQl%!JL%d*@>X!Ya*wb2P^wM3|(BCeBo@7{pS)qfo z#YDoxuT}wcFwwf;8NrEOq6bdXN&10|0}XTuy@m;gODZt}R{mpR1YC7!1ULbmN0j0? zy=K=E3kJKZSpV2JVYGzrxt^{8z_7IUi2EO)B_b6*TNyrE_oq9$Ut;)}L2f3E88n|B z0BZG@M|Z4=A>oRh8P!i7iz(IV?CrohFb!cWxD4w`p#ihQZ5?2C=vKU9slvU0W-FQI zv$obkbDEr|Xs4wBuGAq?XDANb2$()L{kuF5(krOSTzX~*P9Hf3FpzMW0Ga`v7nMh7 zqLUQe$9k4DPn*=*vV{Z^L8_Id>mSptd)9J_^ntnZQFFDcq}RGMiO|EAE%fYgngQ&N z5H-69|A0QY*!?!fX%P_zU?cG11Tk_k(Fs-VCG|KUxCI2Yir$?g)ND6#<}m%mc>aF_ zjfE@83&M8dahE4~Vxr>8u4S{pm8rl3aI3fIxZ<|tfp_|lTsc?tyz^RS>+|GC!~q5v z1i*+gT5J(87ZkO4&ZWOFCw=s^bIA0=lmbfMNdE&acM=WkBx3vy&rYHpKpKx>)4p#4 z(awgmdx;2IPT4{C#3E7}i(-KoInohKtyBbS*ErIGlMn5n=f)BOGl)4|E9USzl8R&W zWLRGI)9;WOpkf4NH_~qh=(mPs~DJIZR0Gzsw~OfOas#0Y?jj?nXfWms+6=`ZZa zQTk+YJZdWmz*ZXVs1l}fiBJ=)3Owbh$<0dKFFzb_rnuZWYiPnZ(r34n;sy@4=zwcE ziSvXWx~&EJIrmwc-XfwU@+ml`)kSmy!&M@OPR~b5=w44e15SiDEu(QVPz!S?BYL|8 zzBob#VzuBV%tvLMEqSs@2}<{7;Ut{Bnw|u1lO~Q|oubdvn!j=`>W!pzttr?e!7Bu! z-xiW1wsbQD;1C=O&n6-H2o|-_)B`TTN#IqapF{#K0vw!DCn32%s)WO~2QkMU_=+Ex z13=XQ1-DTwXgZDaSxfE~!K6{J2mw<~^yR&saEKn{g%*J)$PU0huz!U76+9#8G(rSeBp}-uv5tN}O+FBW0007b z`v|>89A$v8D56YI(^6k3d1Rb3?aO9)+Gn*+TuqEvPxsqcx&-pH>+pX$k@JX5cN2<~ zTIDF8)j;u6S_4O%o#Ru?4ZfF7X?)h&St1N{CSf1@|5tk=e`@$+_}9j>h9@*G z@CE;;>OWU^Pwnl#wD)Z_DH68-R4N!{wDqT7Dri6 zlM*6B%!w*aT5w1jp$lMbxaI&JaMO=a(E-v}Ft;$uuog)A;nM&nK&J=k$|kYuVnv=u zGl?KWSsB6Mgc6vp&9gl5=GKlC^tlxjrn|)BFP>y(ird=C0;40h@?N?SxX)VnRiUga zD8L44fi)PSBDeu~wOY`JaE1)bbE*g2+9P-ah=v6X|8^71g@x&)brzwjb)HmHTnWPV zzAl7s=5C>JYv`w}a)4=eqlRgAGsLVUx_eoZAqU_57Vzgj`e8Rj=5i2&l~pABX=-?t zl{F@a%OG9@u*Featjk#O7YIDd_k&n;Q@jQ%IYup@_bZ|{Q(KiNY~LyJTjz6L6AoI5 z-DbA9*=-P9T}=*r>q-mbv*O5LJoN@ds}QRj5K{^t1XBxoWiIy!U1KGIG999^cn4W_ zIQOg|)n&Y#nj2K!Aj<%r=K0 zaE+tEunscUzer^zt|Pbslzx~27WHe3b&mgm8A`f( zsf>hHp#;Jry(D2fb<(ASw#B?+>2fp5%u$_Tvf{f$Fl-AwKBs&^Dwb9d#A^pYg^YEy z5K#aju&y2S*nlGllZy8g5GqGgD_`z1EWZMABpIt!MJqsfri2Fr4cMgN7GwN(^Dphk1*IVK`pw zI8Veo#!4EJw@y(U=vyM9oU?k#*g+lERjPwKZOj4PJXdl+Cs{u0%EQ9ip%fRgF6$hy za6r-#s6-tZbmTf3gSar#0(c+4bM+Xc9`dxGv<4V)A59DLp^Hc_aEAeVl|JDS_5Yr) zc_Ke)_;&a%<3piKf)@wo`Om6*ruLVST_Aaq#p_CNmFh>alb^&kJ6xp-Gfs6L^O38Q~G4-tSkWvn(1bJ?GPvV%!5vgQ^eYx8Pl)Yz|&C zCvuB%P0CoLXt%2%FB+l>l4&1)hNYwh!0oZ?3WH&m=O_*P1?Nd`b6(8&hp`}iRkhlEV zN0tvd+3{K(TrK5zg=e@%XzBvRAv@Z1p%ZN?DHdf(8Gfyo8sX+Ouny`LC9ky%09jVi zV}4;d&Rn!9)jVHu=$78e?Vfn+1#2mQxq)P@EK9~58s0&a9MaKVE|2;J*=zOrMIF^z zfs6JLhu|GB~Bu>q_l$hGQ3PMU#bmQ=&ZNb8ZUh-_{VHjz>(3< zq^34@*m0SlU&dt?J8_wkgby=g`01BIGW-H94X$p~@-HA_JLN9<5HGi|OsZk7k}kV; zagkHI=q=Y2eT_-^D1G#{d=!{p=>vP0|CaZho|)psRP=ns4?CN?(8=bO*lGBi)lphq z-cer=@3nScBP8rhW^+@4ImDF`@ZYHi|6q!H(GGOey=Vuc^rqQobUPWGsWtoM_&HpvaR2pzMx&%37J0bpm`P>EI`LEexKMJUc4@&13>12C@P&*9G+ zw};*yye)96|F-&px-GTKeCN@*^)G$z|NroWso+{=M{IX_qoXlJiDtP3RpT$aSsS^w z>lP}i18foWoB@@Yyhib&`|z}`_U6_NJtS2~rfe(rk|Zy5&+ljhk8(3I@?JVLL?ysj zvo}B8L(K5lR%{ zz8HIuvQBtkV#G~^AG!K<5fv+3%nAC)YMVbn|MlD35oGG+Lb+}lQvqtKlL9x(BV|Rm z2Fuh4*A;*u&KaQA0s#dOrYjyr3K{IdCR8vFVMJ6Y;5U3?FTvbR^gCQh$#w)qmylzL zti=*pL~C{{8*4AZ>zzf|kpu>2ZmX-5m+Jfloj2*TcHd)HEI8G_V_is}n!Ku9i`F?> zRDw*ZSzaYqbo$|NSZa|DMtiMQs2x4|&`U&%%$4OrbMbIOQ;j&d6(vgc=$PoWws0us zOaiy$u@y>a>{5mvr;5PqOte%b9VN~vDKynAR{9-Y-sOMh(o^RtMx~aau1nEv2j~vZ~1HInp6Q zJ@~4j_UiGy^by+*PRwr;XaXr3U<^Aj-ET>W80K1l?s^NCz1l_DRO*)WI1gl}2ZOearucL$%1%aWV&raVGm6S;!hz39^&=y}S-Wbg30K5lrgFwOggBW2)4HPTC%~MZ80VovKl4y^rO!rioeB&LpBzBNO-r|9zrM`6fHpI;Yzv_;&fOFVCs{{x7qv% z`rD~55kb6Htq}08i}+Er&r0&c&9X2*+_*M0KdhNtSc&>ltRK5*WjaK=8&DIX19ccz zyaOL8TL2uC8F5OQ_uHecv;@j++**+gx=iL_N{V#<63X2w^Q6@4G{}m-Rv0w-5HGi6 zQ1ZkUrCRo0{hiKU{h|uD74X5B>( zkNqQ^%9G%3Gt`H5V3V>o-Mp7|hqIT}TS-|pt1UFU(q*o^myYAsMlSRi&8@7dx{XRN z4tI;%^-Ex4q30#7-=t``xzP{}G!Xe~iKZPPqPF*@6@<}I@yAmR43ENfIn9S?qWf&W zfENpF)<^MI7rnE~uH!!-tTLv%vZ$T+*}=0w+&6ji2I2#!0eia0Gm5uv#};OEq3tFC zlFYqig0`0w>tA)u`akvHWRK>=jtZjigL_kZ00>RYn`M1*NcF_mQ6J0T)$Nm5Rh{3 zMi`UtW*LWG7JbWq!a3hfG+|g7_RypwQp9e2u?fIC579eZ`N_RH7*xqtKIp|QYr^q) ztP1D^fE58w{m`wKEBl09toUT-`8GQliV9?|50sV*fLp5=X>xVk^jd~M4~JhG8H(h7 zI_1Fbh+unZn}+eys^d?!p%dK->$AGnidIM?@1?Q-|87s@iH7fm?=!w0x;yw~^8de6 ze^1@rwO{ew>Ak(?ot}4(fcyW~-6DD8)yksTNcVaN>6WN8E31xu#iGjF&E1eL?xl}n zS<_aCYRoYJx^;a@3hmU$0Vg$5V$7LzH<-etyRBkFlkQ#q1lJReacacBSMg!{GEvBL z-D+CL(H)_rgE}L5efOYB5vb1g>%_@t1$bXPHvBt#*BPwwmP_pL##RrUn80T*Y$W^t z99e8Q)=S7@4_&K+drOX)$HIj;SV}bF)FE3|1L$h-OBA6r(_+6_X_Jb>S5)ESF6eH=KR7QC%;f)_nC6t)0WfZ zR^clrTepUIt@F76{LJJRQvO#de)RDc*xk++*a|CH9i_-8R}&l3NfpIK8-!ao)>~kc zH(jPUVH?3+!x%xgURgZn`kYd+{0yyMKI>Iyi2%@87{OF@r=q@(toC5OL{en^P;p>GG?#Rlgi6t&?9AcsRaB94v_ zyF4!vu0|}K(+xj5v)2 ziB5o{AUw5hyBTrUtyDvfmS;}z*=?yolN*e#CI-)-UB_r^^PdEtyGeE+Q;5VN-N}VC zD3V6*9}Vts(hdX|M}6_ed&HGx%#90D;M4U}HP@vy7QHlA)9<2roA0QSuj?t_LLv8? zRuSX6=zGdi4{l_m&JQ_QU{D=F#Vj0}Y@c-zm$jl1IC4=aF9Og&hn1uB?0^wSNpJ&c zL?t;2j~El;@8FZ{&IIGvRdg3_p1n{Lc|T%vLFKqlI$)&2Lv>$+m$c*c14-K-1K?Pha%_I2FxT30_N)?Vi!M#TpW9#&Fs?|Hq^ z+4EY0IYypt9S?ohRma7)#52%6_{1T_i|swsJ-E5`hOM-YA?s9f0$H_q0<-I0%{jC+ z@mT})DDJswE9o-QPOy6To%6{(5foL3c?26-%FMP`8C)|xf!I`_H88F$Fb1` zgeX?9^{YRq^uBjjJ8D~wW7iOR3-lD9sv~KyMzY+QuaZhVL@YbO_))PS}Uq)V3 zmg4ReN8}*Y(no|i#Xeoa>~Ra}b^;YJ{4kwZ4EkvCLiG!BcD%g^Q3Ord^2UCuPGE0L zZhSr_%S^UbtbXp(%R-c+sXS76*5s zVUAYg;OaLld94+f3AGyIF!EGm$YZae*m$V~Fc6bw+>6L<~C9V+jNe3{BIlvlK zU3gh1ls@bDDFM;3YjF?#VBS$JFJ%g4&p4MEa2$60fC8qNM5IyvW2e0!f_}I#h<{K+*f}Kt!S`dIL`?iWl-@~)*b&y(mB%9 zuI@bLRCku_BVgX>)^Db|m^anHOg&`vS7pr_0hpTHW zrrOPdGY54NL5Bi#g6tQ@z{3hBad0WqZl^omso_4RbV2@CTGnDN(H|bI9`LSf3 zsPeo`Ms!z}?k{1xJM=skOM`BntK%+lg!dDbMsxvVaXc~a`7HLj8S=s~^bz#JcD@s2 z5?0bH-ZMKO3<S_1Pn$`M7G(}zSxr`uEC22Z@#-obaXEkzBC_17d(0Cm^dJ8?wF4|`X zQgO!f0a5IZv+Ix*g$HqiV8KGNiChGCL@)(cWr!Gd6&{13| zT{?;ITInB(8UbEeIZy?);Z~5?K!Ml{imiCpEY?llLctrXenAp~^_0u2uxg?e>QK#) za9A`>WnwR(xEWHa?q*w6=qMhBg|Bm9VI?uu*b4V*69}I^(!czEb`ZuI6ee%DNlD1& zWs^OVm$aro_2HpCe9Q&9U(DB5k;@3oHW=Pee0_SbaJTRe&dTQ{HOqlRdiX6?LLwDTER=P$Yc zMu*O>X^4N^dI?#W)%4R{njmL7t8p3JtAvJ@7dkS0l8B^TLbA(^BM#772)Tq*A0?eb z1bZLJH{v4u#5J5}*-3~04Uk44B8?><@o0D@PIXW!dV`|1ua7FCrnSBX$AP0fZdGYZ zFE?6?SO02eUN7}tYo=(gvKDQ-uo+@N9M-{}5Q+fM!Whv$toi*^GK;FIEp+XAk-7v7 zVxI|?9}Pv2&ioDi56=od6Q6v75(DrGn{RQ#C+b+7LqAf1;eJ=@n8iQb%e$+`7mw6 z?F9jgiW@+%|9`nB@_57Fg#XF7E%f@}n*z7^Z>qnw?&{jt_-^pNw&snV%l}HJJ~b;D zRp}53(%&gDSZOf;8;fcn*l;yT#X_oElqf5{gYrV}`%x(bJM$PliBnjmXDghUcQ{+t z%FX3)qULbm|Hh{)Ie`WkHL6?IjwGE!SM6x@+ns2%x03XsOCpL%9~zB1qW}bSDE*3e ziImx>Mx%X6=hRiZUgT{~y@;=pY@IaoD2E`tt|X}ZUV21I5gZ1aV_Gk=Hz^Ng4f<`& z@m2?OlmuegK#Uw4^eeV?<=aIOXE)i^5sWuCCnIvj@$cH+(M-)S{tksP+vumabkjQ1 zIrKz2)9t=>gYTu&7_YVF(*jqbG6qKnU`KL0VFLKi@U;+p;7pu6dYyLwZ==O#m+;1A z!4NjPA0Q)vu921RuAqR%Hd>Tc)BP6H9T(8+qNW%(CL3(VP_-CWP5iAB(yLH^ee|(h z58S$@W08c1MG0Yuh_$3uEc7K7=NNR^}y zy@WdV(v$ABc5n-87=6Hz(==x|ss!mN_})heHNsbdx5ekupm^*$`hoAo*p0(ni)gNq zn+aSu9BW8n6c_upf~HxsA3lA7)4P0MUmVe z>%CnR+YTvVuszQ=JDz9x(+{Wm#RfvB`sMdxy)N$s=d~_+eykkNTa!UY4ER*Kf^!gA z#bP*|dKVKv^jc9Y20A0)v-*S)Xd0`7$WkrIfC^{J@{YVy-cb>G7)c)J)rvM9b2$5@ zQs0r>oAldaqQFAV0SgrY-Qj9mip4}H0OdNOXScQE6T+DtVX&|%S+8V47LjFT{Z?7S zBsPmfN1+@-hf9Y!`k-f;&zj1{Kt9FGu8OQVS*J{loeaoGN3`UCIK~F}cPJ!X9ZQ{2 zdf6fM;&gJUCpy;20QmornoXX_#~MBn{(Iv+p-%<>E${*V=j-pQ`(*72-<951)0?mS zshR_+K+-v3b@TPpPzw7YPR;iama^@*BOJpupW#u^aQ%@ZY^0of=_}f-b2;6{nRyhw zGE|eWj+14$igjRt2&AFt4q7h*)Hn?}5f4F`$#k?3A)HwGVD*AZI14txHMKfY-`T&+?hODFG zWRX9B?}M-!+7WTp8R`$QdlR8Hj!dFTaX!^$EFmghpilHuBo+@ppRSa)B1(-<$}?7j zemmLr0VmmJ7uz|HT^$Sb3wEVA=m3!QDz7N0I^(&v&LqxWO{XJcDbocwQylf!1 zc$Mw_6f?#xeb0KLBe|S0`oNggbq&_IxO@gU!@NTV1w3$TARb4^KSMkWA^-=1gVAu5 zk>f|<58NA0R>Fzy5hI;Z=v#&BNImT$S`pL5!QN;Me1y_gcn|L^AW=f#`Vx8{Nr01L zB<`D9ky+#pe3;mCj0LQ}d8Z##$IZ^@#=`|cnSe_nn{{u7+ z$-d+{YO%MYO7E)xilfCLU2eo@Z5bGaGDafw>~cbHcL>!iHg2ef;bb)e1EyCZB&uWl z{b{^UeQ>N$b?ZYP0T;VM^W+VtS5 zTxRqJ&}Uu9hh>a>0ylX>a)Kh(Zf5w8PG-o<59s)BdfZb^hJI&D`6#`|=(8@lSXAqb zc4{bPCdb>P2mSU=_IEiu*((Z_sv}BYX;VqM&Qe+%rU`%lOm1XPo=i3?t+%@y{Dafo zpj;lRV~XC$RWe1d^;bPLAAcnDAI%OgsorFh9UGw%tz>6coM7YMucgHwby{7OwMqIc zPdR1!5NP=*eWO2XUxSE~$%jCv1(XrA)8n8I7+eNq=#loohC(a?Ks$^=fpf4#IH;1x zp?Kj4UEfOoqbDjB7%VhcTxQTxfHp>*^e((NEH^-u_@?K?cOIY&!b7y+pfC#G##>_M zY0xC+|JQgTUvBtNI8W#Qy)Bpt?C~G3Pu30Ap7I^?ZmYSJ)-Sg|sfMI;KIzV$_U4XR zt)Ibp!05}oUQSE#GUJ9Z7|!biu6SB7O0Us$g3W8iQcDvk-4ReCsvPgVjMiH1tT_l#|h4ctWcPz9&i=sv9zkFj-9#9(eckdLvi2qfp z>DEf$SMQUQlUiN+OTXY*0kOd(F4dH!0}?ieD4RnPI7cCIAa1Tf21kI-!7(6kG$2A0 z0P@yP|HE?NZ!!L+ts6Lov_`amu(xh}+S$5M0ZWH#t->NRpLkqd9je~mS(koWxc%(( zp2@8n6cE6p*Jjoj=nGmF!+PON(&FOVc8$Ae9=Uqq%q#D!lZl$!qOu6Du3sRj3Qh?*Ng9 zL!9J+tuX4>(L0>&3_l5_!N$yW zmE^l;09i1q36|+CsMV1X)tAmgj7AHI2|ikRwa9P9tb56D;JEyLfj6!ZHjk)(V+Nj{lf4 z{M<6;m{<-L(;|=k8plKknEg}i+vulj99pI-z*dFXWEJ4YWb#FA)p0ai-+8xkigggZ zcoa{uP63wRi+bC4P$?p!Q2R)QPY^L@x(blWA!aM7u*)Gn>Xbux%V~3WSy>g_RuJ$> zZ%*j^Za%+Ytji&Y73V5e*jq9F+1ZL=mjo1xjBc8X8TOa3LWer3IOa*=_O2(f9?O;@ z6z-U%SYg|WJBPIuZl;e};kJ6RROpIiyjFyvg~{n^b?Hk^ zTIQjMz=t=IF-Is=Rr5O{qmOEpn~LGuh&%VvTVQM1eZp#PB+z(TEP_DET?7(w#smB+ zncrAXzhlGr971_mhv0#(p*0DfJWA&nUBeec4vM#yFD7puf01kArbdV*plM+j;c4WP z;FlqG&_(Y9kRr3oURoEu#`Y0@2Kch<|KH|`JlpVS_}j*hLSGDiAn*nM`|Cec_vYGn z`fl|OQ2qaHZtnm8`F#Ta&UvrfyW&U{{|B~X^b%ZFr^PYjS)+9}x_A=VWpo?Grck$b zc&!#*`rz$eFZhWKB*?@88o^IGN-1Nw1pVZ?;Z#@lb})Cm?F{jOUe6!teO!a;=R_MzY`(6v2Plenvir3VBJLrKT}tye@APh4J7w#OUp%=89G@lpLqBB0KS*b z5%5~muMfxYE_x+X37@hI3&YdH+4j}x!kA66ghEgabkpK~8SE&88!~-fyU=Q=k#ZQ3y z3^I}K!!#}MIQN57fOF)zdJ&~!NT8IaU}*7NpajO=R{3wvw#o{{(5Fp`1qKxBO2ZFl!4=Q+Z_eN8^= z1k>zYmc>e<6YSz?W?|4_>GDx}57}!?W3)Pj{pbQaFqT<_fK@V z18xEv(7}oO%j1xd0~8$IO(O>s4&+1K`EYA={RA^gx74H>lg`<+U40_h{a+}A-auSk zTUsT+s-PpFSiPAUZljnPI#}SfR`R|HltRn8Dr^M@u;tnh)V3kAE!ni5*usP(%8mFB ziYj>S|MCbnEgfsslD>UsH!5nr!*wHAKQz`sM@A(}su?wubG$hrQiWVM!l5uu0f1Ow zdk*I#OfQ)Or8p#{0|z33b+V@sBmsBA9e5+j@cm-Z|88z+Y0b&x8U>5(==!&v=z0kN zWT~l!cs;Z$W+dNB=ZaeGyts}@aQ!vO)eiN%z5H7h+shsAPrn7Wm@d{Co%>%rigiY} zyjs(_{6KDHLG=VwePALaY;2@leqpwhV(dT)L zY)CuJJ5objT8b(ogll1tX(L{@qaw_KZw|`=T}q&sHs*laDCU4}9r0OV&KZpr3n);q z$`Jw%6nw)86lj)GH{z;ifnHIpHa;A{aqOY=V;(5zORiL+Veggtx)VVwiL0_Y>!!0( zG~7nx4^*IL7=rx6aJ`I9RYq4xQR_d4ezY6#V7ZaJaVMMU%h;I+1NiR}a%NrjPD zK|@^Z9mMaeNO6&O!9sz&i)^-oK+OV*ZX=fh=)gG`lq4RdHMWZ+h%1}1`od6j5zts7 z37p)*@zzJzQR)(1gu6>)(y*28Ou{ZE_bTt9?XFLjGGkXZ zOzA#bg{~pN>{cp-ZK~K(0R@Aj!pV9EGcjnzQF)BSp}mXfXJJ{=o`9!w0BcfF)s&Kf`G=hULSoriNAyjY& zxzfE;SZSy|B)Y89{hA~WsO4bSGTy-Wkh6iYSR$AyZh;Dxo9Y0I4%z#x-Mq1F%NzVxBOyI{7ai#ag1fmv`rCq1ni=U>Su+j^I4E zynyeHld2H1KoA3y4#&z*-<1AeMtPVg>2NLedQU0LSq8 z1;^-nXn)KOdsPYg?ShyGoPro{`4sE->_LHfm@NQm$n}2obX} zj4B(+t%?b@+5M?wc1se0{NQfjjhRr*C_Tm{ZQ5n~K-gV2wq`eZb8?H)1RKo%!~ydq zW|!IFhDn$m)r=ZK6K2m4#|w=OmM3Rsvl0iJ{vSK^Yb=2qWsFjE3rg|gG@MSfh#2y+ zF=D{}1gSC@qzj2ahC3cUQq9df3bxdwGYOk-dqYhHd0s_5Ml4q2E-mi>>-O=&a zPDjU*km1O)NbA5Zf1dM4W8cz|s?%{kEC>DUMqJN2jkrpp=wOC>tpUqRHLyuhlVpg$i=v1J16f;4$s(P)2a4SM*a_2&7L$Xgsz*Nhkr)9UG zuF@(V77jP-`IqoT$334l4n?Vl?vPLM^6FWX3MKd2f+nKM2$?l`ZMj~djl6#ce+2`Ir>70A7QM>sB7!Y~8py=O9Zn!P)iX)Imz9`D8_%?ho^P5H@BYdp?EzoAdV=3y)8CRZhT@6xGC$p0^D~(l-Hs5;|OI~a9@l) zNVRBqA2~7fvDri@l7pg)==Y0x!`+R^T}rL&vsj*R&SI&+g6`W#coEap|5P$tH_AGT zk0jbkG@yeHN(=Ej$JvWp6CEL33xNd(_7a82+#$EuLP2z#OH;hnaHHo^G0`|dZv%y& z#b(39$*YtSb!`^=Fdtt*Uxq4~OG?{yu}RShelb-{yW29)_tK4`Wac+SaCL=eHj%>l zelS61_K#4K0*OpG3No^Og2v$_VK@j7lVY;F=^dnqI*Dj|hvf~)D;3f0lzO1@(qCd* z*#=UGO_kX>{i(KpEzvrgOyHlRK1eNKws%n^><}>kvQ}D13i$?8kb+=u2s4hvC;mqo zkBd@K%>`q(xU{IWE_sD*3xfX3cgEohKDL7@D0_%E@?g4RTi|95dAh5y1^QwTYXe6> zcaZR6XE`f4@`*g>GW~>Iwm8}p)fU{VwVl`i_P`7j_Yp*2H&zyjirE1~^I1f1xE6%{ z|7(!{_k_P{91ZOZUPk@@#?_s!{jTpnydSH1Gu?Is{-kClozq48_9GJnw zKFPHN2ZfxXDK$EM4V4^5^D`zB(plUFEfq`NsNiCa4$wcC8(v|MM28tdS`Vul^bx6Y_657?8ZxJd zYM|jDR=qt!i&@ZdUf3lx8s~-0qgY4>y~Y^cB}e|JbD*hRQ1GWA3JRDxZdq}Ra^Ek@ z_tLFVWU_7*VCPI$6i~Y)b)u;}x%z*H2xyKpTl95bK5G`2HH~#ZlL|eLDHLOO5c;FD zSGpuZ!K|o8G2Gi?<6e68u{ItSc^#}(FvVx)q`lP4a0)Rh;GKKU93;CZ zJDJIPh%=W@6?#e4V{AwsQGAjehF_G9a#!g}1^70yeA4+GUhCS`q69%c#mmcGr@hDn z3TE1Sk^jfpi>wKt>V&0u>1V;yMSRLf>6<-yt!8duHkx~psio0jMYi3j`}eW~@Vd&d zkNXyECff}cvA*e+JyjkkTL6!0r|t>KLyCO+mG}JQ9?8 zhWAXPFit$;>|`l{7LYjiY(0Es_ioF$mmc~0tm7{VtTyU9SpungTZV)F{oU=f{UY9g zZP5r6Y%R5UOuAceib<~qRq4H<<^L}Gfx_!YBTB@i5rRTIKyGN_-qDEOAxhUzem-g& z5Iezmj-g<)a3@tuBbwJwKk@{=g%rhuuU@_rBl(&XPWR*ml@A(>hn<54%k7T){4y)t zEFF*10TM!5?AeUjIfIc@ts@ORv>9hs+~AYM5zZ~KXeHtVqju z(fq;Z#eN*FqUTx`G$}>h$}V-%)vxGx%s6ifhcs~YJ>o!cvgXmdr#&~)eGo5#M9m@T znM3lx$D7Qj_xsfQ$y-uBW#hS`FCKC#`bv_7Bgql)4WZe}ket`*oGW?(jZH;gsv+f7 z4B)M9@u0KStz>0q22>~SI?^gdLcg+~!z=rl+3J?^r)m^Kc-4;woK?T1>W>+sBchm8 zo@-rHuy_>TONS+WR&PN_#8|KTspgbNv4Z=_#r;k{InBB`lC03xt9Y%spQi%w(6Te! zPi|)NR+}+FKPS`U^-eO~TRE?8i6NE|-Rzg&OTVgGo3{z4^(B@|4<=uu1jt4obq@Nd zu&(+zOfd(TPi`26bx9{cK5N>i1pYu1-?4=ssruwCN@%#8I9}^S-z&6fWSOC3nbo~R z6h4i4@O@MAW)(cO_bA1Ea(j>lmFmw^tdtAgj2Dj@S}wfS&ZNjh$ftO@ZBnB8v6~c6 z?PyWlD+4uU^<&_JKHXW&E!H(R1jszq8Gf&|>`TIjFS64vbRkhPvN{!_5!(_B|h0HXZg$L3u@w?8pbGn zn@F#9t_WmJ9qnos@_(H(K`9L4X`dB8$La4=Nx4p`%SY+qNckweJbSJFcL<|9R_%R~ zCsIuck8tf;{A{Oot;GLj>o;;N(2I!I+Io%M9dWda*HVF0wA`M>9D7#b*yta)d}j6W zt@2U&E#%hfkBI8?vA1WbXv$QAaBK-0R7mCA`Cm1i}1k;czuZ8<-I&yx5iuQQALA&Jtzr7%wxXz`OBN+k%btiM5L=P z?wLF*J`sUZ)B>)lT=GViEjnGZ6726GPKpT8X`-(5sMc{ldglAUhBG5B0aWE%#iGc zfofe4jJX7WVaY%ftK*{62I9h91bZ;=sLA8PN5uVxjtfF#isOPQUn-)Qu|%A>5^vsM zGh=IId7b-4SC#{v>KC(YXk+8EtN^0LaTZt9ah^{ziNaR=?)+9-{tYXR;DeLRMynB+ zioK*T=&FjKD_WQI(>-<&J_NhA&~8T*JW~XyL9xM(05v%gAaCWPR}&r7hk}dmHJmzZ z++%M_DL#~OtWOk39!-U9#svL*4r@H>wE5LAMwbAnBw6RCmygoJNNayyIP=a!j7G2F zWM9fq0>O;{*~)^f8e_z(O#BXKB=?LTZ9HZ>FmEczhg6 zqc>1SVV!O%bR!fefa~|L7f&X89{hr2X z$zv(!~pXXT7k_=dN zvI|Yu8>?bH;8D6|!Dr=f5g`HRDMrPXA5J-^sB%$Hyv-@j$Tnu@^H#IA=M^2;SgPtl3=2B$h4RoCfd#V56!^;$KIE~$8}YAkKRZcjW)+g zoQ*h^6P!d6cDyf19Nn=c+lnnOl9xD%lgPGWE4JlDmK{4Avx!n@S=&NNpcL8y1qy9x z>Bd(QQod3sl%;7}C?RYKB@h}&fkOM8|2_A;`)1x5z2{^W=L7raXnUH>J@@SAf6k#E zY+bs!r-Fw*mARZW7jj<7#I_Z45Y==d8@rl(zHJl{SR^68&uCs;l+Z`k^lIqO^w1Wb z-hfs^1h5F-5WnDaWH&jZ$w3xYDvmK`MwT5+>?=@lnEFxyjE_*Kx#OefCHn%UtHM z2amezoKs@dUAc)NM}=x1*X1fX>W(~snH~#l>qA>_=gYAddWbR~MeE^k>hQ{JY1uCp z3h1sN2#A(xKBQGdAE`lPI-nBK>56 z(!7*PKsz|RzbPc@Dx_l6_1+I8HAGXos5%hYCGRsR3IqMw2*-7C1c5IL5Qb^yde4 zHgz7I2fe%?)QC=huAt`^)7xC60mP{oWx_5pgzz$9vuxlZsE{z_z}z6QcaRVgXQ|%j zG{ncgiHbx|qnQgm2H;VMotN2BhyhPZ9**ljQS@_T07;Nd$gNzjg&&zA|kO_L3Ma12k=rgRBL3W6XB5Slc0Y(bBCEfpDcVVpk*|uj}-`4W0 z%@fI^O~(@xjrTRYvi_!c!nuTg_>1=^{XoWDBub41*u2)+d96j12Y4X7qzWDgFC#Li zNIVc%x80x{3#tVvPmgBo)=(n`E36neeg=nzD=!J8;KWh8|44VKm0t`p1DOS$zvP0f zmb>t#RAIX!>vPG+@zaDaJj^zfzHqhmAN75^Z{j6}v3hxCzK2>fbN@S+*>>}Q1ck#5 zmJyT52C|s!a&S(r_w~Bycs8}06L94k&)Dotb%)p&RP1)>uy%0TG>T^rAkqs7aKR#UMObz4j|fHC6vC#brj^XCLT#Zy4s zn*0L#KCljWE%Gqt6?+&R34O3(8EAfEmjyof{OA0uOjd>t@`s4@Y7@(ub2cM-c# z;ES`5?Jm$+Oy0&o>}T|IH>_Q(-O1(TRu)#Ci05BnkKaEhHg`tnA`8|MjvwV}Ce7XUENlb8dUIXQvkCl&Z#PDmF&CCiedt^)SpU5_EGs?jLs_DrWCN-}Y1 z+g!w*^EZ$cz&5R-X>5F(QS#K$N|hy);qs?6E`^aKh?-f+chK8``bOL>0d}x}6bUUL zm=LcZGRHhRe1_k^Kt6X3jvI#njD!FbspJ(V0L^U9TT?=WR7@YzwLhp~zX0smq1#4s6Ov_vkaL0TN%pQa~~`xuU; z@6BB0sUOo8InTC5`lW>_8bzswPx9s0lHH9tya%&NU6HMsD?KSo^+0{1A9HT0L!YhrlQ}oz zF40UTc>H%~za9Tw;IOeumag2-WN_-`VoC5RN#Ch~`*b>ekf`F$Iph_(NO&Kr}z7C5W?&SP7V-?_dQWqzupV$BpzXsK~h#o}oyXW4ljt zWMn~X=IqXOYv~10Z0aq96f#x9Y&ug#I&U#mSvlNHEuC&%Jg^|i1*oduCe><3vdeMr;8Lls_hqR z4TR1~TqZDPV3I1Vvv14XU}#a7Fg@yhwnx3d5oB7taG415n?wsoT?$&f^}!nTsGpZv z=@G;z*j}q(3$i9mkT7xJtci5gAVDN$9ar72)Y`wM8g^FZdXFr;rlfNwx< zZuiw9M5jHH=Vh)V5*Z|rUU1&I$}TuBzHHfU_@83NiI#AYG`CvH#TrBi`{*y%EL`6P z*@IE)Q$!MJl#B+l2t48y(FLqDQb!mK%lQWwBUIEElbLc~4?b}pnJgS1Pc5dOBl$C* z>XmG?sO@7sbFIfY2KSJ%xCh67VsMU}I`luqbO|eI@@q-{9`(kp(No_m3Vb-7Sz(Ty zOz`l*PE}&~V0DhIRt@ReT~%feHf5H3r#B|H$C}sz{3D-Us<;F%JNNH8)Y1UAXpuX%WWSEC7kgSuV2Dy@z z(sGVw50tLa>jEiXN3xH|2T=;j+6U-+0E7cMh@>2AisPg^@Em><-$NwLz0$k@;UH-a zcSRPw_dbfFpmXk~$ZC`J`Ii!A;3fvkBr{7r9bs^UD=kng;E{!6{rT`wbf>Iu9Cgz? zUHqv5Q0z!%i6=X$l@!c$c3wY38g+o^wyH2dW`2?Q-OmZ&7rCzOe~L*ay_UKHqVv`V zhe*jIPGMljZu$y|W-tjdm)O_-Eiwd1Q3D@=`RdrDwwu1j1Tl06j?w!7CSox~W%#ZO zMJ4?IVvhmL7`f|8jFICrN8x@ssaAYudALAa9e$lIL{xf=9LN9ZSo`2N8zXBhrdD-2(Nt+l3mSA$(O;%S2Jl=4sg5RQ6 z6D3`z2Hs%ibyqtaqLO>@63)&YB}(q#!^+dbQ8RgjK?O?g$&6jXX+{Wbwm>3d&7e6Ie1XYtZK<8Jz z7wdt{fYrr}yxCd;c>@`c>p8_|l!Lh9rvQ-(`fh|9__3~oR10~NY0YdP60pm*WoHVN zpdt7pTglZaT=dQqh{E!6JtIf~iDMkqJz=UIFs{6h2woS$*$zsb!w2IYcH~A8!5t=3 z4A0H=%}^zA_u4F>?;`kxUx%oVqde4zP&L7lQU(hwbAgCQGwVH;Fr7VvwzDT-BBEV( zc=TUdpTyNl_DL$&*^}wW+~^g*($lx-df*n`nA1;Aa=ttt7J{=?(S<&if2r%ID3t`_nfXGUXIbFcx8 z_*iF%L6H9yge2&{$nyRB!%FAsx&dw?O)PbV}LH6n-(lK z1kw*w2qs=2{yRX=z?}yxF^j;pM^pz!K^TOUOh|R@(>x4EenkPVLQmxgNgkf1;SaqY3C!?^ z^>+A!P=^W2ZGZ&fLxf6en7F!jnqI5bM{0o822w+C7Pvgc_5n#Au4N**gMv6pynyh) zQXm6}>DQ*<#PR<_vG#AZ z{bTE&wESiBhm*h4^pV7S8{gLOhWhu$-{HKc?v1gBDiHTac}Z&NF5b%7xz9R&1$kVS zxiC){E>P5nL5>Ah{!~wDtf1p}ZU$R9+50yoz&mXT&~JMA%wYx^X9ip$+}O*SjW&_8 zg05u+km@*C*vX6MO-J5{?Z_*zTTGU)1G6_ARv6{ilAemI6uWvA?Z|7)>@vr8_mp<- zwKK~L6mvO`%{(JzIn{hdi&lGNd3tZ=R*w?KMD4LA$_dIvn0w0%5KX^JGNx`?p!0-f zwor-8Egqwf^e;g0zk3te@m>mnHWh-2aO2^HTs~)*H^ST_J>{tL5%pdD{3h}w5ajL9 z{ycwn zyt~;Wg{jL7+qz6Z=F3G2W_~GDbkxY->G2lTugg%Le5c3%h8TBPVib5T%omc<@=FQx zMVQ4b%@<0w>UNsy(;~eua}&{mu?{O!vr(hEeLHd08v5Hu2Hs9RVNyg9a(ReF@oULQ zPqm&U1nX??q`#1fyENY;;c=XNZ0RQ|rNd{1vkCFuN^4#V6ea|l{O_9U8 z!;=Byu-;}J)`E~W+FAM9C509|tMnAP1G{1P9;uDPnrX;v_XuLzvv=9{?0`iKPk1pw z!rTRx1BoDxnhpnk?FXyeo;{J-<`Ke7x4PB#Ed>l>c-0z54BuwTgpiCYb&_n;U|jny zD$zZaxiGWUll~Q>8p3@G{+9sTO42X6F~z(dt&}EP7`17Y76_ii>8`qZhAbRHPK(|K ztadYf2MG>FK5?f2Y#?A@z&8O-23!+@Tue2<)5v|H%soh7qgdmDzyKNp6qf^D4FWqq zGh}#z#z8R%>}CrBE65qMwx~31dj6f~ep%EOpP!N0)k1+~F31debQ#&!3Dp129mFgf z=x=}F%txk66m<|Szah6Hs;+<1&f^ZcT{K9tf5hpp4th(6D6<3a2skzX3USAllfWSu zYHPbqEdRgj4`0%MG8;2vURKy`?VfPEs#ArV@<62UYlX!K&mxqzD~{^mk>KvTcxm-^ z)1n3J4CM@kfy*4XaG7G&8ji(adWLzTQ_(XW)04C-jg}#xkX;;_>Yp2%GpBPLVc7<1 zT}&0uhGABUa;Wf1N3Mm-;0elop$w~Sd zvZc!@m;XBGxTIMc8iMm8TO%Nx<($QY>KTvEd+O^0`AbE{JN<=X^ zvYX=c{G7|tz4XRG3b%`+gAReB3dnFwcZa$dL%Io?MG}wdmu`QR;vbyrcPQ;B^TFyN)OOQA-3WT?I$w( zJ=rh{@vv2h1*KQ!h$vhit@I|#nHo)01wNRWliBB8{K)76I96j^aqXpYjd1bhJGmUH z#MRK_5QYc2;<}f3``g67@R-)o=k5$rzwcxlH2R7EzoTV>{cm((a`A}!ErCnHG*W&& z`0}hS*w5lA+vu}ItcAH^KF_>0b0-msZKjFi57{{0uML<(!n6TcU(VMDUrVYxIqKve z>!`IxVf^Kp5%S77h2zeLIcVp@6dxk|s7#PBd&|U?2%={41c0+@I?Tz;UQfJ?VmV+H zOTg%si%P6lr34~1z;pJe;;z6T7fLz zKxVgzQIZKaMj3UZgH$j;mD7-Zp}}dRLS`kMtOl;snQr$@ytG0TvP;7rK_}7;dNcff zxA}N=&@e?KsNCG+Cwpn-t=7C=$0&u}$7l&ecRG7r{>*mGUpKFh`{l+U>jMX2FcRQW*!(aX}6rlL;UQa0*eVi?!k6GP>nQ=68MvMRC`b1pa{1u&Z zt++nEKXZ@gz|hgLV=!Y;QhphTe)90Sxva*dIKWZE+qDDZ0-!1llFF>goSx1Qgk&N; zBVDH#X{C8|2z=gnF%iO#hwBfYAIb!kESKuzCfgK=H>N zc_P%mQ!D0IZYAHmkN!u4g^C&H4oBlM4JGOn--jGgIcmqB=+@M&njknZ{PsPRN?|RF z9V~Z~euZy|8qX+c+|xujkPvIRF^IQ=-aFdJw`A>937bwK_uDr9f@qPCFXeswx5{@fmFoRZvHVD?IIjBd)iXg* zcL9c>=572lGbcO}^&Op^qS<)&Vf;2yZCfSr2#a`_MAF?yBax$){iTMy^%FlpBY-1V z(?D~;vDimq!K4H4a0@SI&{&v|Z{+q~I4#IHa+59qsN+=Z!0RIEbePIw_&Gq{SRJyN zTo#V#^IlMA8@-F7232OFa#BcAGx479aj(<{ zIvHka^Xf*xT`(tSkCqG2gU^OcBRg_D8544bgcxflxNB~s^E~Q}0KL%|19&fFZxyMh z?ez2-dX0rdj|KEKp21yceCu(`KHJDf&*{9!rWphaB^}7m7|cGB?D(H5t*mIv*T7^eOVmNByt8}Wey6A~aedeg)i@Jm%#NCz<{u7p;4w6D5%>Qg%5w0#B z(uXrgJcd}2nv1TXlRHQ!Zy=k#zOdb&2_gC7esVz-geM+YVMyjZ-t!bkTd)Jrh0t!; zf`Tbz!}Jk00|W2zUw70!pj2obLUjig2~{w7o@fO`^#ATf$JZAj=3X1>Ro^O4=<-5(_Nd9-z_Y(im_|=9->t7T973Y-{|E~}d z0O_MyyD!wtiFl)(6Hx%pWR?hXL0Gd&saZdJu|1L`D6V>cpe3ksgCa5;v(29K;pXYy z;HJomumt5iHNTc5E{?i$TwQW*_B~BERYHq28`UzI2A1MGyG(+NhSn` z`erW3HhPpx9o1FXUt>gMAH85fpA;x3=Ry49!OSD+8~;;$3(`|+v{R3hXGkPRg~%hJ zftRQ80Eq#La8`X% zYwbjpfO@GsWqSTomsRepz(AE**?P~fxo=djl6VcacVQH5s&HC1bAhD({P)XTAlX{~ zQ_KaD{KVB-P8~oPz~soAfdK$f0t4{mYA6>L0A$fdNdWK!(v27m06{<(E0UC$35a00 zgFYUl|8i$JzD63-O$39j4r|x1cp6|PnT>lS+Hz<%pgX_H(*XO4OaeQE9iB-P=Gsg} zqWe#19mCTA0n~vMV8}NHrnC18T`^7)u$*)N#45;7`g^@R<-{8D{4EFqf<}LpVykLVKOnnSxJ6nEO4^H(Q7DcI%L! z2g5WR2q1Sy1WkoRCYl1VOV=?gzjcV>|NFedn~8I|5)c^J{ON~mp}Y7^%OePjpNdKV z(c{{&Su3%sl)2loGdu&cvwto?(Qkuw-A3WfhQcU=uRjXMho_yZH>{C>X$ujQT+xcL4mqP}dvLo`ygU@Ms1 zX~>@M5yUv)zg@xsFE>F-DT>8z#{@zyE=qIH9Kt6~&a5X=?WZ^uU*V{{2L@#bl&kSu z7{WiF2mn|NP#>JgIZh-1_yN6km~rNYaRh)!WY6;mVa9wuXvcgOCDooR~Nwr|MX{&t+1^` zy>x>W+ciEbJKZCK0mQt;0%8Pyn3@Q#1(h_Qp9stk(o>Fl#VfU)b#+D zf2QU##Ch=4WqmUIDcuZT2y@;b?#EGak3p~dp}Hym#4k~ zJB0f0Abk%Q7i5t!7Ze|1quj6i>AQ?(g!<03X4?&6k_ofs?KkY2H-T%UEOs&1gtx6R zVI*%(UCj;OwOR9)xiH)2F^Xw`f3t0X58#5r^(an?q-zu@lH41o=i{(DTfSTC4*2xx zY^%pAJ5$uo+1dFf>~32_ScCpx@ua+@kqD?(PH2b_gyl}n)_cj#LIbahErkHULIG#G zNv}8n^E2X~r=~6;AH)ya1QY`7Ts$+C)dGRLpE9}7+L|Y3!BI4Dlv)cf)Xvsy`y$KtB+U3aOrB| zK}MTsgZko-ediQgR0>4P*UQ7Q)eSu5%?+2(FO9}wLc9VkId?`+2eA2i?Q34~9!&tvY=F@`(T9`KqLrYH@7y7#h%izY*<&oTQO4^mFv^`)jYsqd-igV z-OXn2_u9?g_WoEZ<&1@WifZ1}FF~ixU($NV@f63do5d`;;qGk_va!&EwkHtT|Bd zc=lz6G|7aSrun-dO+RIrgdilWY1h>^k`gT@joc=zPCTr!Q1(q!Vwfh!|6{Rf?G*oi zujOmapG|(T>63|%HGZVwck5pt|8?iSx>u1(F4LdPjI6tuwJu>)*#B__wJ2W+K@F?; zF_pvGkN7G1wH$S9Qfu|vs<8C2>@tu2%y|2c+41&HG0Vt@u}_@|VM?&yO&$8uD>~i2 zE$dsn%7xOunW9h{Ru1D+hYjiAr(~@~IIJi1v1?N(CE$QvzPgQ<-~F{+ei!h1!YY3* z8%*u+v4WOaO6^{(1LLagzH86At5}onaJ|2>!}S7!P#y}nEFq-~)pWN~JVE|$^=Ipm zC%nir+GbLpOX8v2L$3@#piKH~kH649^lh+*dM{E00!72s{4Cgfb9 zy?K}Cqhyt2DRWfM<2s?{Cci3KYs$>bcH840)x%}}xWsT7K7N!ui7fJ#NKB+JzUkaVqTw_3-;6)$JXQDE*k^S}^iudw`rhnX?*ex*nByNUn8SzraYc9P1Py92 z@D`>Hpj@3Oh7Zfw4e*0Gcx!Sc;2e}-vFlw;g5@(d!Q$&oh0af0PU)?M`A1rrqbdgRQX{}Oo@ge2Gg zr=TNbyp3AJ=F5E(XYB-qL^kDlM!R-)LOuLnanI(NP);`K(I^*JJKv>Sx~jftb1bVo zCNe(IC#?_UiymE4NDS^jB$!ABTKS)vf{Ety4yj7{K+~6JDaQ&l}>jl#gc5wC-m)xKi$YQ?7vkEfwK!m{ryX)LT4mEGve?nen0|v?{5OkS z40slDa@5Z^>{3PZKcoOwZDOrjY2YFiU)&X}T7M#v_*a`~@THhtW{_-O@yVk_5^|m< zu9n}YwMWG>4HH>xS!GLV>Q0Z_qx;XqequRKE{T-d`!$_guk^ub4#pOb+fCN(Uu@P* z;PxyfC z7j9gvQM{FA2|D^FPZs)iQb*V9&VP0-;t<(3Xiju=xmrMqhWt-4M@Y)v{}juW=vAJ_ z?Ut@V1SA_{_=d;|9HDN8l0|hDzg@XS!T%H=T@vu(r|@+!cNtfA?bLdpHlQwwvIjgV z=sPqQ7U7G$@nltDgDLYuG=hYK9@%0_xjWiqhHCuU54syqaLMRuSxroV$rixpW9TMY zu}7!}^-lUPQ2UJe=LHVjD}!zqvBw#{NNrl3nyyB3jv?co(akb=cv~`3NgI)z*Z^7#-c$Ec`(inwunEqnZ z3r1yNria^ai$=&h>1Ws-!ry~q#hnhk=;EO1fN+!CeMC#p_->;3ChFA1D&8AoHxb;J z7F;B<>pgZcn4ZsDOiv&i6;^)be7&4w@XHUY4oLyW)g3=HAi#tAh}boZiMBW{#$yyt z#KpnJbj=8xVW2_4JkS?lF*H*_+qhF_;E}?2OwrL-&|j48mlGj0yKKzf=&_4CZu_6y zLDwn&d;^zVBzE_ol66Tm$3rr|j%wAU=yc!3OKjZs1=)VXTr?MfCk1~FS)M-nTQDiu zC1@123lrv835HBETV1Q9RLwF5+^$mI&KOG`B1EXW{hL@7I zL6;)NE<;Q?{vU}=i&6al`Ig6k2PGg;?dxVth>OK#@nx)iO$#mKvG~6_3sV&J71%g zRimH0L`Ci<-WLy3f0#VKxnzhC-6KB0_n@cQ0YLr{&9KMm32cprQA4!B`h1K&=PmJa z(<|M%yT3J=Fn9hPd*=nde`!y}uS59cl5gvOiWR)X8EP?Wno8e!W?6Q(r%6l|_Gz~O z+UxH|bMIVwxBfHXhp54mQx=iGi`_=9cZ_j?@U7tybDuHB-jC5vyqmNyy_ABF9d4L# znbHA9VGOp&lhd@2Ic2<3qU|V*VM+&p!?HhK-TOeWz z4;NYChKUA?nIsyH+VF&SnQFA!H(Z9h3V#Dq&KbP9^fTxM1mu_>hv(smAa6B9pTq4%(qV+;B1Q4za{csT z6G4&}a*Ia^lahYYW*`HsA!iN!Qo^hu`Ro3tm^CEhqy~RayCD@%Ku%!|U6nB`&T;G_TxRolOuN|KApC{~zlA|8mPC z&3~NyVADg1H#UwnY^z@wU*l}7+Zwy=g@*ss*6yyOrIlVQ=Ei1rcK)|*YcEKuKxKxP zIa&QiV@fHBpmuH3>bH_@?PPS^owGFFjD!B4+MvIfTgrQA$!UqJo-v*8uXxaZJnOEP z^`>b2#HxGWC`We2!%?Ap-_lJMlTj8;H(hJrL?vtvtr^2MS%y0p$k2~1WJuuiFb?K( zOV%WKZb|v7EgN*6y8MWt%&hDYO3E9JX=*tCWotOa?=QTZbtY$(*qb(#vk5tCN;osJ zcEjxOHoc8y+CYuID6p1dPF<`s0@ z`rnT%?-WF>Y!JdI!!buR7fyPLqE;@9pEb;r$R6@sG!wl2&<1Y;iNX>Z%si6h_*skz zDQO%>ZM|D(%c~8_&a`C@dZakIO|R>FZadY?H)@Zy09V7@5+)%`iYU>WthVCnN-qBa zDuDsz9olQf96Z!`Q6a_(YPXV(HJ(UaA;evx>*?-@TvT5==x0}vPr94_Vp-^jPJLk~ z;y67G)qqr&^l)2xx|+DzZ!ub0uYC@~=E#lS^98L%yTS20uk zz%qqX%+sL6)Wu0Kh1`b`d@YFvj+#|drkIf(^$23nXU|&nnc#Glk03Hemo_A{>aOnE z_I#51*zXa>1iRn2!LHzyg((K+6p06lIi)0Fex_NaHo-0tWS>V6gUtG#MP>y=N3Nav zkIDp*jE4WI(z-d`^HZJ$Q5$F$H9Oo%1Yuv+Eb4kjZg#*K%1aN4+2ZP!S5>vyf#d(z z#HKa2eY5o^EkA93F8N%SgZPXu z`#MOz&P41e{ew@$A2(8*fZQH?JO=s|%h{d1ydJ8n$*zYg@Pe5vQH8u|m%TQu|s%YKoZai`CBHQMR(1$u>pAW16x_AELPF%(`R;&7kFoDR~# zfat2^^m)ogy1Rbe$roJ>wgeXNg5*3}@c3aypLs}nN_7nDprPU=uv1yP=y!PK9H`cM zL`#6d3>FqU_~N5v<-+#=KyFGkDL86yz_j8VAvpkdW9${y&7lVi$SSUeUP)g;S&q=V zokxiylsS;Pxtl&N(SH#*xeE(-#CDPb#T&ylnZm}&?7be>GybY8Zt+(I3X~5YmSknF zm-yMw9Hk}5QS(2do7yW5z?zl4$2V0jTC_`ilet&@#AZ1pRCDP488Jw?!ol_rt83=!j}KVw7viuI?& zv!^`vSaBZ^LtSK2(XW6isN=tQzS1zBXZDcHW$?8m+Y;}2USrHwZlvo%55@l2HS|u< zjeyVXXWWl4LFN>G7+hNf5f+*@PTm!ACwl_`q9KAuK)WrVQ{JorL^KQUZjTIRDa-#( zX%@>v2G)*}EK#4qPHh;fVixyjPg)6BF%xUw{s#~eaKXC5)&k~&C=O;$7w@wZP07+^D-_mYVl6OmC$gDM|5a)mdyP-k)80E!N7!mW_=_< z9hQec%nXuBP>1x`=?5$ABkB0R?t)nRbM4J-(_5#t#FAfbdN%RZ#^)QJZm6qop@{q{ z`tdK=pG;fME+^(hS=YrjQC2VmiA5ord6Yzf#R`kFA-tu=9yqG0rirq>IV>vXL>W&| z>$=EJPz$Pt()6$=l_SjHYf17ER}(+h;dmeEL*5h%P3ii?2Q{Ylm=3Ps2XXNd?Jr1I z!2epV$&J|sFsDE#L*J(F&bix$Y5e@o*$5df_JE#xLT~V z@NLzxGh$=Be{SqKMp~Mq0>lKoNq1EHmgvI;R0{Y=G!6~waxLaKAfYot{^C~p4WK2# zbS7drmUEX0d-=BuZ2qkvVqm6^ViBW-OEN2{br)B>0V=&WhfTo+oIPVI&Mtju|Ak9D z8{};1!sF_umsMgmU@~Vn0PkGcNB&ON`6!00BW4(i6__}_-O?t`f6yo)v+NZ)YWqK# zu9OjC?nA_?fX5?M#J#iFy$8``p|+tDTpM=}-!iW@c!0X%P)S5cJxl@f0R3A^?2Vv! zIf*@-DE@z(ils+#?#|yjGZ3=tJbUQ{CA0Dn!%s3vWjN|ePKuOQpOGPJ@jO2sZq;?J z9d1xQEcP9p8-iNgOP~tmiU5Nc z*Onh~-w0)c5HX?~e=Gfz#~1))0o%KTJcj-H=Xer78>Qczt5qY?2gns2)ZJSX^#4iU zpG$b+!3&7G+U)|OfDa&Jx?dPMWZk3od|3Mc)mlK5p2#(N48eU9U2PUUD#%Rfw1}S} zO1lkKLC6${tG?TSZ=7Y{MMW^IBe@3e;Ks#owKlP!PQa!@%Hb6AxZDa-{FJO^<7)Rj zJpi)IHZhs2_YS({5I|I2E$rv^lb;~maODrW>is793H%uFVi5OzIs@o>EhvzoF$$gh z5N_0sfSp2U^ECa8N4Y@-Aa97E2xWy0^pE$f!rh0!7b40K|F_p&4E+Cpx4x(4ubSVT zd{fhr#OB7O4X>zQ9KYJRh<^Bs_$Pf&&hFmjk%nDYxf$~Hg+&C2gFIcPSQFywQkk_d zZ9(;u$4xkd5O9nFJCqE#fet8Ll!G|+4<14r|1tWXZKnH2vhXy0j)5!#v7gb;z&-eF z1c3O*`>b7F!w{#OyMH%nhB$RyX)_=JZ7|g)9eXf25Gd9La(!A|f2}S&*9Iw+Y06>w zE{BOmY0R-oBY1?;4#1g`Lsp@V+Igi`jtowzrp`zo&&~8`VNB%9t#K+pEy5_~sJ@+A zGVGhEgoVsB=G^tU)Xg+J7lz}C4U|D*T#8eC@Ts`n9w~e}0jn1&WV6g!9dwU zKH{RZqE)y2xn3}4Yher{;W8^MCCaQQh%zVz){9HdYgEqF){)D}j8Q_4uZ$p;#6PpB>DEkv!3O&yN|L?7oRUx^pn?TzWh3D3D)) zzX1Dz)ZmiX`!tuhjn*3soj?W90GZ<1&|B6tO&KiOduJ| zVwyxl2g@}K)prhNvLAKd1Y8cx%fju#%%J+jNJmzXn3>JofRr=>I0n$#nHH$!9E?3< z@;M!`D=13?TY)+aCUirAV(KbB2Z0eFuF{_YNDI@?I3n;BKQT<4#S;~SsyO{X?tG7b zcrjGh%StSU3ZtlBtQOJxgUfKO@4wN6kA^KVNvpOP>i*n$h6EZLNkjj-F0uIkKq_D= z4<#B2tm&7B1gMv>wRRy~fOWvmLY*)M8{J|DV$Tz!xz9`x!;I6vZxBPk-geO6<-`D- z9Q-D+C0J;QW+Ldb;QYVU!2dtl`gbi~X?|@o-!zig+ql2s_WHZxo1LM$b);vf`je^4 z*>$tKu(W(m*HScOK|S{c^C@yXQ_LY#L76S7<@_U!zrR$I5nXz$o*7~ZB@9Y3mEijT zxqg6Xf{cpmA#=|fK*)zYLB=>HM!YX2T7tb7dzB~Mm6ph1@hpRkdB|_q5IJ2Zz($AFL;o_wbU*Q|lkn^@JUC zZnzsn zuf~y4`e@EBpG~b?K(j!)77o!HfXP`Eq|8*k8h*Br&Rnca%g)@yP8m`$RFTN z+2J^-^(JP@B6!+MKfx2K1o=(qgCqgH-HCz^hkAv3{g_# zD$mVg{At%bi$8U$fBVXT>we_jX9xT=6VF}gF~}k6d?akn++NbK2yuIZs53bp2}*~Q z?kIjrW)Mdyu1KM84W-iKI;VBrN`PbFO`Do1i6RK6Eb3cCH zqIA*TJ|+7WYRP@t>*9R0D=*KGBmrh>{VRA`o9R1f^x_D)j$b7OPnbX~neyJSEruo>erz1HVi$a%Te!-!l?(|7P)#+Kv1ys3p# zNqhDD|8{DwomSuWlh&`ce7yNp$-_+>6a9@FY5!kue74g}Km7me52cgss#nu--)lSW z&&$~buqMmC+Gg3E%92I$W#eiQlcknf zb}Cq5JuD}7Ou=fEEm)b30KYkqG7x^^oe8%{9$Z{)W<1#0Qm~@<1}kHkL?*sT+4x2f zDCxHSB;r1p((2QayOcnU&(?lhmExO*oZT2ZI-ncP73!^+L%+dIZP+&*9=b7)EGlU~ z!t{=#Chynw1C?4HlFdZ}V1|(70BYp0wz}XVq$-fyK$2|{{TFQ|XdHnTkI&tCe|=*}$6bb=0%5U_quU_wY@;C~AIB0KPLHCNMN zWu+VGC=0&KJG#k&-w?=x`+1=9N5A7X?PgUm3qCWql!yR7is~sl`;h%y$vwqzIE$}L zjy?TPMZbPI39ijE_MqH%Akha24FqjWOO1R=k z%PgZ)M0dvFk{7{4&d)6|TtWmINg*G2z1`wrrv3Q2BnsRGO5Ub=7MtX-LNNp6uB-lgkSV%TigwJ3^j zqx8xucbtKrbWx((Xo+aqHIA$4nskGxLBnA1Rw-=%gIU=_e^FS08QMY81b`5*6I`Bv zjE`ltLa+IY-eG<_QC5x6{)YIJ=PY@(bu|mRTgNsT{M=<115+ zSz*gDg7;Qw;;8d{@QuObVvDoRpCoq2p@JBU%-0qAN!} zpjvAtsWvg+V-hnAWtj{09&+8cu#nwvwo3Q)7e6Jd?jFovqx5{`hoNZvf9!u_(;C{I zYJGFd+ne8-{I#YxCDM(<4a@77#JilU=!gIR{>i*Nhh?jr_!${p0EcA|qt#Mmb=CzO zmZ^Z4tYP7>$cDD~=1W1SR(?_gSus})sld_Lx9KB%mUZ;Ggf6n4OF!wx?`XZs)6}2| z-AX1r7|a1$Ohvg;uvV087wggz*wUXwB&^Vlp0+T3VOwlpm`Si&BU4U7$=NnXZTTvR z$iuIzR$~|`Om}r^os0h796*2jNf4G0VqS@&R%Kox*!w$mFD>kBHR0dH4R%**YNRtZ zb57SLgn1hY@#A$+RfZI$xM7g@@`Aa6V}6P~h(% z7k@eZ6sTx+Fvhgl0MX3TnUGDT{+KzrwVps2#j(*U4g=EllORek|6)?_G^Kq)=RD3X z%|W%_HP*Nu#q6Q30bBbu#qTpE6t1IGZr#3?%qwco4l4b=>#?(>_S>H8^XQWr(ctC{ zus<8gk@e*HM41W-44ww2TO!iK6YJ^orwxBVv4W2}xs2#QU0c|wgckxmK`)4lB^|&;xOHbc2 z7n7~lu*1?%b|&D#%ULl$wOF9Sve+z8l5UA7*i(V#;I)64bO`%V?79IWf$}z{o}$MA znh4froSZdo(CMY$W2`1}y8e;{cI%?N;TF8zEukn{cw0hG=5FwGjTsc&X9orQ56!x! z^mHed#WNv|L_oEQT@>Ia;jjSllT**jKilRZR&6-Y6blK^s-)={gqyD|%v41lb7s08w%2yq}^>-6`KT>uyy zvt%Go2!_xiaf+T;OHZR(0#F|^wd`hr`C#`ke(M-L=ZC{%M>T@krSx6&<*kpUPv-2l zQBw}Q-IfCbL6Y2TSIisHsz!2z5Lfq~(zK~~Ij|*%y`o$bH*qN!s2QJ4^XJdT%qH+?VclJMh5J%-TDDXCLCkPDprbLipe2s33b;yv}6K7k1K{8L%J_1zGk)7_P=ho0a zXlM9V`1y$U^Gr)_&|?Ur4tH9081U#TPYg$$&gq#;wNQtdWw|Yu9HadyYG%I4tu%XW zK{l?F^S^!$V(Snk9U%9xI;w#KJNI3jwe{{fxy>HwOyYHiO}xhaMB&&&5(WQLELKv4 z;(w~Nk&dg>pX=E0EK9sD%Wd)qWgr#X-P`STn<>tO$IgUMvIjE2T{rH#I9qv)>Khw9 z((ziju5Gq0JP^~!BIV~ECY?kS|5MCk(o=EO#iV0LeIL2$mF)|svB(341W9*7?pE76 z5{PQbO9IIoP^UhoGf#bFy2{r%lD;>$fzHWBdRI!fUJU`XxrXAG{(zA#Z(UP5CXJ&R z)>Dx&ujo!XD*`r7kF23P=keVL)woF&I808xBh||3RT%6glp0}P;hGo1H?Z0Y3hWTN zp+OZp+<5-q{8;VAO(;p}PsPVTN-dg`){B=&IZhqg&rvt5(r6L)UA(lK)H2E3K2O=2!Q^9hFnJ(E zlEXQ_8U;ba%Vbc=a_^R-ZhS~LZ*3q^sqSEM0vTW-DW?s1`FGc$!18Zvw8M#kV@9h6 z%JYF7HTTQ9Nxs_4zi9yHh)0T@Xq}(abEp%&(j6&a-Oo+7o24BJMnei2cP(^G)Z*L>Fc=p_<_z zQUe%@z!eYVc6&l$JkwF@nFf?)_!J!$im(9Jb-KD7(^_yTg+fgXP_4vAhCFBtIgkDkUXY{FJ=mRE^xODN=PP??~=; zk2y@o`<*sysW2rZDWW;O?G=by$ZNXIJLqU1&7$q>8Ua)Uxc?z{CZgXumh;Lb1xa4h zcXX>2up-DLf~$GV60~G5eT`70cwhv81kio3h5QkVqB($pgkU8M+QKo}4vo$5cmjhX z&du%e_}_H&?zJ7gf>x9?S&*~CGDnElWe-e^d|c0mMA5cp4ZWA;ZuO{Qnz8oSW-KA+ z8igv+%9pZZt@iR#yR)Smi}F0T5QPx@lb6Ah>vr2Rg`Xixr)K<5aVQr?#wpll-CK0$ zO!bNsT>t;uSo@dTzR~(*%jcRulKhLNk0l;y{JVxP);|{iqVss&M`M3`_Qv@%i`=g9 zG=;_cZB4JB(gY_)w&2Bg82%K$mgFa^wKwTIv~Qvkg~iOw99DWV>l)#{&kDEyKBu&4Og(o<@6Lia74HL`s&=dSduOBfXCy%t4UkiaZIg(Sv^tBqWKt2B(1)Y@^Q z_-WyN|7=V(y~hR#0htJIM~|l0_$k>pP}k^cd$ocDnn5}4kzi*^uK+)d^%cGJZzxt^ z`}p?5ly)={uzW~)T}Lf?v+n#uR|1-l$H~b7KnH*|v=}2mc!t73Zb{}@dq^4ZDB;68 zm4LD;&#MCx3~m-$dZ4W^t^Npojn_(#<&K%dClf1D+BZD4L&GNrD63tu`!6js1dFnvTC1nZ6QUpPz?^wY(ZKmi~SuwtAF8E?Qs05L9Ja7@>IwD`L3 zp7OdSSKY5P`MSfNDt%%{jqsVPaNQ?!N4&!uO?T32x`JvIzu~ZBML)c3C>?d{be$}z zxTZUqJM10Z%xyYh=Qasq9v0H_(Zil%F_$!5TwSfBz4I$QxQUup$2=i7Q+6lpK+TFC zU51&f;isq_@7B)B57f+Dm^);z{iyERJPv=0*N+IcJ?uiGU%MRtP!{Yd6ljm~yf>tL zSi4t!|44i8pvM-6wrQC6I5&{=6}OPEGLX2qSQE;n0sm7h5t8BS`5$T*AemsOC^S9W zG=RFH*O45M07w{~0UBa>0HCO_n0v@F;4}QjUP=>erq2Ona>3p1Od8mU6*>`;!b-yf z9z~2dbj*4~f}lj92p~>T&{~ossBT%SlVeqLhK}d%@+e?pBx2NUz2&!oY8f}PCgVIA?eNf56*fb>?sy3DN3R> z?mQYJrTMt_lMgxmpNLIsYrn9quC=lGx#W{gUr2nS@dFJXruzS{IQP_@AfYSopY(ls zyJOSz4E$P&o&i=YVGS3!mvDF}UJJJw6kIB99o49dD)kK1<$b$0cj~RPujMUbLlmL} z7&Bb|G6ACGcx5c1qi$oD4LMgpOHjq&tSzwqr%2%0KXs8%wfk3lNk?Nk{>H*C5*CRl0c%tpEs2*>!`g25>S*kcW(c%{@b(N8xskBP zNGyMm8&8bWGpn_2N4X2J9+LYVbP$xgFh6cQLIFH;UfwYjsY{ro{;O?LKM>Z0pOs}K zjBczXBGRT1zD_XpN#NVSIS$8vP_@ zC6WoVFmBQ=jPswjoKykrWLHt0hd}V^=WDbst|fQB$0erMAa8pO3OZex9%23*b4l1! z{92MKjjIa)(0llGHR&~I%iZUZW6RDI8h>*Tn61P@-gGMqSmZ`OKu=07@H!K6NTTJa z?F{9GnLTd6t$?lq4bwrU0afGu`YSAyL7<2Z#sm8M$8~iWghX2`%*qmaniGl^KLrm4 z7#++nUSX1?%S=E>0Frw>f|w9FYeVFMYH_*wL-s!7Jx{Q})GS6mnY+g$3B}0ZkxYq3 zO(uyH>H8H8^GMiJc&!p7QOhpY74(WXYMz@rZH}Hyn6cMsJN8;|#lsF2{pfPUq8j0Y zUiML#gqrP^JeE7aYA^7G}R8`Cn;p2@;>rk~lrW0(H96XUeoV(i-15-G8 zz!py8{`2rVjdE%^M;?4F$-czZZ1yiIRXNf4|JXmrrX|{EwO!I$*ZlG1p{AjP)7V!3 zv-l63f3EvC`r%9NPo^$!S6lAdG8@swt-u4%#pa|1*DJwSk^T@{`*>;0kW0@9@{l=vkBimlh(3Pv+g_ zmUZM7>ZKMB+Tut+vxOfonr6dOa(XnbuDwy`{VH7?$y}H}*Arwj_VulH>}w!)3|CAz zRJ5n$YPzGkbxXm~+RuH>PxnY;It<=oI}8FkF502PpPEWE_THv}<<;&m$h76p@kn9f zrr)x0Q^iQZ0wR^9;%e2+sFvJQo5(4BG(U|9!k{8!^?%b^{bG|P=L7stvD8R0K=D(u z!cc3@)7bJ#8vV>bzTH#_l3qvGZ@9fwLPuA*j?EGwrK8lQ77Q!+uKOllVhvpvdmMW*`ryPFQT=#Cyw|WIBcd*%;& zO0!zL=Q*93xYd0ZFS)^H*XLV2nvSF|)&n%(xQYBcEMM6etffTbq-al-u=PDZ+Jc0LsbYf;kzS%Q^ z_YKUP8|&1X@tAQ)DK{3^1fXdyrf4rQwS^xGgL_M)MfHAtU+( z(&;a*|6dtv|90CqTc2zBujYSGexm7piH90r)9_$@I=;raylz?SO7fK5{hA0R^nDL&J7hx;j4<@szy!u=pu?+*@32;!O2kCGtqI+o@7eb1)^2@C|DhnCEA#QB}KW2HP z8{VeZ7yUla%UkL1K%xIpZqfml5)3NhYTaF?k?}A|3H*mcB%QtVkumqj=$BxEd0^&o zk|_=ex6)_4ZPnd|?H@!N{3%u!ZKdDE>Z0ZJii_!M_#W)&r4QvV^9VDrf)F9IyMAww z2s1zmW@n*aTOGnUs)Jh?;7GY`2_4!wV;UFE<+5QY22YJi|nq+&4Xrts@ zp(z_BMt|EvraeE?=u|Q?JPH5Zb`rjy@7X<&d?f!}xRz zpAb@)dMscj2)@fs5On;9Ek8*l73HW_hPQ7e7O3(F!3**)GsGa21B1SQ*MhzSW&LP3 zAML3UFoz}c&koG@1^G*gDf3QC86nXxC7t}t#F7)`DcSlcHK{YYHAlnG$Y1OUkO^*o z#|F2807W^oJXp1uesXb_g4?S!tgg1fEuqLR@>s_7$GyX%$b{5)`3NIB^lJ4*I_R%F ziYz^rzmU$(2s%^ceY>sl`tOmIYB`TCXZ=_6h=@uRdDHjjFYr!m_BB0Z_cc}W#B%YQ zW<{`qVB}5})-}z@&+rt1*}M8SyLYw1DpFz~M=9M7dJlSEYPWb**Z=D-h_(Ny?LVpi z|F@g7$+4y*iQ&fG4g2fY#;1W<(7QlAmi8b0a>Z-)Bu4N* zh1V)&Hx#v(Q3<)a3%#k3?yko4YB_&yYdHmSQyoIY)!Kj1#j%NA2IKRfz(}t}!_K*O z+^=(9oYO~-{V^S1qxi9p0#!uu=vhFpilrDRy#Q3Yn!b;^!Ewrsp{jswwAlNHS^*kj z#;ItBTpFG|O!+omWz6-6%@m|_ZgUxdbZ(?t3a!F8k)LY_lyt{Y{HblyE&!dDn?N!+ zL*4O3ZGbA?qkT{Q6&`DBqddmU6KYeXJ3(NyW3)0B$s806_fokMpfps{uoMRJ03JVK#BtmX84C!Lg(PVA@GkQHwsM6TrY+cIZldEoOaYR_Cvp?#=>E&q&wlQI{VC zs3ApiI4G%3DZC8wiJP+$J)NLRlbibOpyc!+(kiSn0a$Qn z-JGJQVN0PH`Fs8aBivbtpK(2&OS@2~6LbNi)HwwUjlL)Rooe+6djAVnkF@5m^w`VP zEOaqeUbp0VT4#PVNpdIXtN!RF?7#uEI`BolGPE-HS(IjA%1NQ?!Z*IcIfZ-H< zg^pVYr8`g>NElR{V6Ep8gbW#Zc(*)N0~vZ)Z`Y@VM;aU`%=Q1@jI}@A_H65CT0Y7|P~JDHry z0qWvO$&6&f6ao0)`2V0E0^tj@Zohv0gA|5Q)fgK)c}~8m8b4~Q#!iq#VTWfDMGGn< z28pXd#w5UNu3^>qRDPvL7?arlM2W;cOHMfnBSl+rwQLVkSMRPuX8&mZdhhV5EpuWt z@8ywI6qv!hZ4Y7zWL@m%oipJINd-Bond_yiOq(lM`-En1cM`%HVsi)zz@cD!ED7NG z3F!MqK7zYK;WLfVIaZTEAOzh=zL(A{?9X54DGLKddbl(cDZIUxm7sK$e#$WONKZNH zIu5VPk42(F#H9K8^_)gQOaZCL8h_lp;R=G0x<$VyN(P%E{8)FIHd- ztp(;3HwljwiGp!`zk3Nw1z7HJJ=G9D$LBok8b0j?dUBLJXDHTvI-!7pC&l}ENb#-k zSllSSzqN`l5I=`sH*0-~dHr-Mtt;Z{#tGf+Ut`60G{4*wyY)iNm5YfKhBvPS|UwcEqG2#e{IWJ>67`T zmN1Ox{Tqwt4S4wFNB+73ZbW>$W&cXZ=7 z|CRNd9Y3S9+)6j)e~QIH^7s5tl~#^4S8Rqp`q|<*rzi4@JQA5%fPZPn@CBlOxqk0I z{F#tQvNDe9`MUNG?YpSRFu?Qj3%!GzIS+qf=R61+A&fV0>vCzuPoC1e5m!AK4KJ+a zpa<^%zauuSuI($W?`nB}^E;9QO>K=oYxu+ZH^krK9H~1HyW_<~|CDO6t2E7OnlIVa zGy#7FqzfufKS9B7(MG|^`02RX-Kz6%)!t1*4Mpxs&ANmcO7KNHlpr8_e|)>eFv3Z7#r;1tmXX%EIoPp|jXmC@6mw;D1~FAi_GW4VzC5G0di z#T|9@dL8Q6cTo{NeL?<4b8rvl`%m~^@@(gd9$Z!!>gLOI3}16F>p;HWh>mSk|D4++ zo|4iVQA9_^Hv4&kExhFID?O9v$h+M)@e*rPZ_BUqWNc^u+!+hzbbS`NGAN@Bg;Qc! z6-hKGrd0SULRLkxjGc$cPg}l=Tp5%RvZ@FVP!@1I5V)ZWX$2I}pj1}TlTb47j^R&Z zqvS$L6d`|#g%T*$jZ<*2nT+dV9a^9@4I2iRn%_mz;b1IteSWQ{oZVjPf3&^Sf|C@5 zBH>GunIe*#?WlF1)O%%K61~(L^J_f%xyyk+;|fPACMd5;(=V=W-l5?Q?z?!2iD)w4 z=ZUCUbN6Yx<}TnqhC7B(X5lL#nIR=t)KP1Obb_P$YwptH`CgA0W<1M3*zqg^cS#ae ztgoV#E%94HzuZf2S9Czj()?=ABQVXCpK{w8dkc5@u$qo?>=(lW>bj?ND#v{jXKim~ zM}C#3kKESXzqhTsLVhrce<-_2e!gPykzhKGTE^22Q`$MM{Q!I_HK&NX7?QOsMQxUy zUH=yoh1XC)p`TR63#qk+SDKkZ64FHVF45_9lvVE}B8^ZqaTS?wL?4JfxVC_8NL**w zM3Drl35ZXI=%;plCYMoBoE_7tHk_rnp1}40*T<$cwkO(VwI*BYnw_Sn6Q67RLc?Fx zABZ1!4%bb_UjJe;0B82Q>0^1j%G2n$Z&)1{NaKf7dI>3fBnpGt%YV0}vkE;wWVB8t zRa|-`@2={sOPIB_U$VB;p& z?afe?C+$#`fI=$QK}(Z^`f&DZWsVH3#oS;90&w1ySbRWs{AP~`hR45VdAwq`%{(sI z@wmF{94)7nWb(|0{7$k)tZ7~E_zBl94Z>Q&=TWj~hnXxKyTo|8RX@|R?Y@VXm~VW3 z{w8C&>Jp|D{8d{DE|&9fac*wH!cp@$ z0%d3;P+v7cQ_sk6D<;gBEnx)5LUPVtC}AWW<@CInJ3wno7;=EOdW6~8r#H|1o7<5w z7@S>GE{`Kbzri?2#)$^SL-IEKPq7CoJ>~R#3ZrmOe~nN6G@TQT09h$xmi$dDqxK1xSl)1Wf){c`K-hGw>J|d7#PhNQScASGVl`c8D~>DBTDn{ws=%A zj`_b>$GrF?<)RA9hNN=|X8QYjv_^UTa#8}DJteRWTZKBi9>b)W0i8B>Dtk~_32eGl z%K>oghjjc4W*yP^I0!ea=r^=zkCCi`*#QvYP=#Y)q`C)UKQrHh#bgx#Yz=UE+~zk% z%7VHxH+f26%gUMPQT*rC1k~F^hPY@)3R^mfWBo+J4Ms~w%8rG)ZoV$Ip|=ieQRdR= zFxvAJF*EPPL>T}lMi&YC_%Mgcjs6kSar8e%42=v1_614pi5&kQjkQ19_AjkpY598d zKO|q%^rpnUjdwJhtbb+vg!4e%8%dXx?@wlC9t%pfo~b)}NcS{7hr#@CzJYDE`Igca zqWG!sj1<3?WQODOHfvr0ARQ(HnU-Q@i=TXreu8J9eo=^``|DxqMwg=KTnV5-F>B$3*ga$|7r2OPVw2J)$gM9 z2*`_l<7)FT{MW$>0D8ys?rPGygb9UzU_;@8f>UXwSWJ@e5*&-CB*e6F-W%yN zo-hdnGXwg#H=gl|(96h0E+o~-Gr|s%G+?5x-OdXcH)zH2{C-1;WWwMazHbo*#W#yz z3{T`myMNh7Q>##*;k5-0~s`0X;r#Wacv0_wDj(vvV9KFQt1qWqcFzlcZi16YKi;d)1sMN5zU|wj7Oy5Cr7kMSi zAlXvje|Xe3Tt&1n-DxyGTueCEa4BI^(c}b&6!AD_PUC5SRDt^$q_3fy7iqacKm0QK z-0xh{I>Ql<3CxDe@7fKQaX<5yn>I48(@`7Wpf&v<9R(R2Hi*Cvpe>#a8yqGUd;i$& zQ~FZaLE&wpT; z`w(@!tPU2@gl8d1BU89lweMAQ?x^Qy`+=MZG<=E53(dZ&F>K#-%LWBYZ z3P;m*4E&8eJ7PBxJ9H3Rtf52>8hHqPv4`@boEvx17vHhyi$GpDn%5IvAz|`Ja_6W6 z*J(V;O9Fjyetx&dH)h!1({M+{A0pk-@RHUqppNwpLBu(O|+-nWuwz6Fy zne+3vd%|Ff1K+a6feIg8s{UC@)7y?ueuI zckA|t+DwDs`2S(r|JU{>tsiaqNb}p1f6(*+>i>U#!(Y~aIR2pX7;ON2xP0M%`Co}D z9=_eBBPmMYc00BQu7J~7FvC!>Tvm*t_7U3$!x2Ya{}B!07$n)E+*s^UijJLYUnGv z3AoIW(|LKjjC6z>CH{A_PLpk<96^CM$b9|6kKn&#yp|kDI%-r$PU|+u&?W&qG7WXW*s|F**~?Q^*(`Bcj3KyPISgvI7wr z)zf1z#RVJ8M(9~=b{`~dfYxRg;y6IT{t|*KVo!vZEIg4P_ZYzV^FOuzd_fJL8K8WJ zmlNn}`1iC^Tk%L{Jb%o)c9SRniOrJ>!d}jkOUyxj>w8VtoZFp_4Q!}++(~sgOjBJ& zyM>qupt@1GNAoud=*WV7!?4H@*_-9MGKXZyGF_(v<`uO(%8(uPj%_kzKeidN8XTL( z$^zo_@at-tA$uTy#3ReLZ8K4={V(2_(@%+{0+0{OffR-Zm4M{T`k%sU$)25~Zn{91 zr8m(%BNc}FEZ5T3(@mp#fGPmrDym)ki38By&x51hGA!i4G8bj;xcS2G_#Qk*fY*4& zCX@rP93vj=4QY8EJ=+nxg4hCY6BYp&4=ySp`40FL3a^Jrt>808zMxpk-E)V{6T`$t zV5jBepF+6+N`PE6UWwXm4|(il%1}SFB_P4FNU?metVB!DmXN5PAHb?^`L2Bzl_*4U z{QqQZTCCk^JGbSr<}W5c)bz>3pEiE7;S=?rj{lYO$-2+Ro-BXVUcFaLk51YJr+q7+ zEW4-gAWj=34`W?WS%%92ON%52#S9>W#o}sZx4v4GP0{p?mUD3bI^sqQfjK~Y3D^sK zr33Uc3_%5yU^$ggfn1s(DS%f5&RIjxj2UUz8%rObbeEPU6I?s#KF8Kh0(@NF!-_8Q z;BT3-VkK)Q=_8ZaQ_4ARp8nK5%}#$RzL)TxH|V-(RYv)a3B&j!lkVi^9l&wQJNPZr zHi@03Trc8OW_PQ%qx=fq>jB27{+_-o2Y~iPd_l(;4uQbgWavx9d!IxTuw&d*OCGaNA)pE zv1;z%=wv;UfbxC3JFvUO?hXui#BzemPbj{6=~Ck=sr|fL5dyeP`5okdz@Y)oWkkC% z!0zL7B*c)|LUIhsp4}h>#!%vzj}Is0j8=9}n~Zz+eP|odL*30A$Tn=GY}@9-vEY11 zVYaIDVf`eT>b|eqV785-A`Zu&H$?J|a(o97KE7}9+rVWrq=*5Hu!R_xf}xlA%*_du zh7n=tiGdM~OgbJ(7^mBvw0Igp7nYACAW<+iGT3MeVZ5F`2K0)n8Fz!U=sw*j2aozejhwR4x%}M0x81Ojv*~Y>`jbO z>V!SPjoM>8N&g3$kGw4ZfJXxEneT3N+trH}5=SG!nQ)1eC8sgKJY~s!7iVkJeEMMi zenUDMv!nO!b~o6)yH4?q%a~dJQ%t&OnFUE$mAYReQqkDL!8DX3(x-q}p(zAdxu0VY49p@a7y@bSy;mKD|4Mhl(-tZP3sf4{RcuYW}Igf zj$mUM-Od67y9z^tKpyLNFaQUbY9RlSk;HE!jf{W1y2pq7zc+ucciY_l-yOH@{{f#d z{P<^b+Y*s_o@4IoYCSHUBvI^QQkyJlFVi!@t&lA^w>2_jP|A zd%SwldfEO@>DwpG>R0jzxlY*KVe5o}NEjoSgI3(n{kT|s9egUT76QUi_2qoYNi1p$vG+ab`M8%22}106frY~~3IK|6RVm-AaQF98GSP)SZJCzI^9>8sC5%A4 z%nC%nk0~!1q*RmB^C)0ZKYFAV5|L?~JkOH|9z@%Hi5)~6C>Vv4gMFefHNwh9@^e%# z_xVoWwZ49tSKLwC`w@A$iRb|QOn(GJSJ_fvGZT8a*(%kv-X#UDTO15*#! zPXyrhsnsO-hmF(g4w;1`j5bf?{kg|!E-3^wqF_y_zj`)AHMAjm+IDfE;(^*3o?h%` zO-@dp&L6`>AR3mQH-t@!8{*rQii2qZE(>ebI{@3-Puk`t5d z=IF@;H#>LFDADW;nU#?*K>?8N)Bn^Ins60f3iH=mavH0k_E;>0@puo*gV7|PPl6q z`H?;JJrs-=du3$Q7hpExPp8R3ce|FfEW8K8#X9WiTTY{HqB&eG$P?lM>kidM{x&Ft)+yP4!+HT~TbbpGU6 zHpoC>3W05()Og~k8z*(Pb2A-okCt3GejP*}sPzt=@da8A(H-FN2fauTY97wQLCSfe zwHB%$04Kb?lqN4s1;8bl)=78gD-G4}M;CVYD=btXkmW4bu~}}U5J_$RoN0}OzQUD5 zzkxM)IM_JF>ux7DsIi%T@@=9EIW;rb;M8!P{xOr4T?re?jE{ho!WLt7eqaCvN zsZz>v;7`q9uL@#@TPH8~tT|8h@9wly{RLhRb6i=aN$y+l*wSmM4veu{`@zD39|IR% z`~XViJf_SYXT|(lhN1p5CTDwWz@4DoS6inq5b1>1Iit}7awBI(<7zouf*QMh6O$bt zVGLI8DvOn?7-32)#kg9_5aJ3C8fciDmIVldu0(!dBPAl&O9|32PnJ1C((`@^ zVNEJYh@-YVrHAnLl3IsCN8*#C8khrC^6SYU?5B5$uV6BGjs(mfrc~g!7*K-*5qFWG zY7WTFGVQ!AC3Y-Kk){t%UdDtVGhjqxjunkS{v&+6TWLbj5r5AB0&6-P^~B^%bNBEB z=EmmC>3+Gz%?o9*^4xuCrdP9d^W@Qr!{+NIFZH;d*Kc)SVb^ap1UWT|#>a0>T|8i} zmtDWvTob9{`mJ*(U*=suPkHRV+)jCPUKkPPlY2Ea5vI8Ql|R?_U(+d%CnqoQSi@w* zX4{OI;4+kxHKd4&*4|vIs{@rziRt*i?jq{{Z;!QI+O|2O`V zczxZE>Bqltf6}*3n$5bgq_cBnA8h0e8z?8Yj({aYg@Gb7cUTC>zlG*lai)hs_el1B`IO>`mx<<;44=~|4 zs|*`uge_)t0cD#aiokb9ixHPYfc`myiHk=k&Bk1ShmT_PZTIznYzr&rUMw*jwe^S= zrY+ikfhWT`5Wdv?bc7W7GuYgPCP*B}ookEWcr5k=T`)r5aUBW+Kf6FD0o)+Dc(N^m zUnH+^SN;$<<4j^#E;E3sl3!=5ITc4j<j>Jl@7CTCk7h+dFG`8P4rhfQRp=k3_e^$shv&_c-3#sJ z$v{U@_~H5Hr5rnLg1-U);&)enrzC+TyF3P8aUX`Qb}!gy;((!8K%c*uV-|}6s?kAj zF|N)*?fXCS+|L4J(>3JbVjnI(x1XV38s7yx62)#5wmV|huf`-P_{w`JkQgB+24!;a z<VN4&o1l3WKqm$Cc5)7q_$38?Nr7Kd;FlDr6$J>PcLRB* zy2&rWBk;QW>rc^0)vGGD+K{LKvf2Sl?e(r(Z7Y6bzG%E0Kz@k zBlMdbh%EQ2G8mGZ-Zpu?cPP_xv)Z=Y6oeNq{!kZjmla3Sm2IX;ub;fmJ6LMv0^liE z4N=Z`fNpG6At3j~A8a8b1%`;)hjbu^JK0TNF)053vG*SERJZ-(_&N4gR>|I@5VE(j z_s+iUWOEQIsU%9uNTo$&B@&r!MbZ)~qp~VQTZ-y`z0b!9_oMsy{+{Q)|F7@w_sV(U zoXh!=b^){f@_E??}CYy zH>kFuope-xP6s=jY^BcJ;baRk9@upL^Qs@2w(xt&xN z#F!?clWsGHb%MigpM_*0vMAt`$)-cny(FV{m(iGAxqdrY7Mb$v% zPB}^$Nb!*(hJu9_49`?16~C!Ysceh@H862Mu*y2D}6wFF;MingG@_4zmCa$xHzl!f>Qb zff4Fg=#j^T@H5~MZV&+wf;9NS)WP0NfYwlSLu^kcee@a>Ftqdf7c3x)i|1v)d*JbQ7`k||jH5SVCkrCNur>?=VkR*En9;{}=wYORg)}6_ zn*$B&w*XJz5=7v%RR)P^UAkY;Yc(!`l7|8BkH@=G)6me+YVg1w+B0a{7!+_apaB9S zA7nFuU!oC9VjJc%P+=?&xo^NPKk=Y&tjrRDu0d`T!@IWIdsH*{bbT@0LrOQ4dlvV2 z7zVdBT8;*j0G0$fAT?VC5QhK~!GKERVEX{~*cs%QIkM+?(I3_{Rw{m|qACiXgDmh#|%(UW7VmoTWL=OFK)=sVE=K}5P9W>#f+7YD6` zi(0{ecSM|xs7^zpvBCi1DF|`#5E0whE7(*AyMj4;!G8iiU)hkbudRix1X`5XP?Ffp zNu>3x!r?SWaN&0?LK#2t*)xPr;6beQg@9hcUg|!?UJ!a>Dju6UENmdDx`iCaWcrI) zE8rrQ1Hx&Ev!>Np4)X+A26FWy_#nx!jI19K4|XI4LekC27i^si^bSHi0o(P?Qkeyl zutfz7bb-?{2E5cyExyba0fi1HVC6}q$!RI)Ak0VUoWh{hSX5s?AWMf*_H08J~kVr=sSx;d~XvzTp=T<#5sLM2LuYKtr*E6(R|!H-ZIr1A`3Q zi>b&691S8ID8;!sVPcA1o8wzLa&gMVIaU@I!p4C2!6Oqwr3(o2l24ERXUOGHD$3ThX054NW=bS#0e!XyC>7*1^Q zAy^1FiWyd^(-6gVK0IvV7|9oitRQg(lrQI^2!Kskyjd8)5-DIJ%K{<;9wYpXB4QdW z11z7#;xcNao*^s*vqQqXG)~(>o5-$`i_IEZmt2-I;5G2bDIhB2rC^dl5MXj{W4NJO{)_R+B?GENgykd%|fUPqFErOl% zNr^lRl9``Rl{r}!wO@P+ayUnNa4+$)n6jXs4;X0x$ET(h8&7O2vTR z0?LNS;#APr0?@n>!8~Tipo`EEgP?#6FGNHr`ZQ={?**uUn)E_MaBf=Em_axcKuNSI zQkdsS2^t*^c7{j<`~VO*%$SkEiJb^zYi>8EAQkHwK-E-Pa#!0~jQx3PG1(HWq{*u3~Wki`Xx?P?osjF*7^5(ckm4*^tPbvo5+J>~Ro_9$@bwLItOB%(_-wRgfQ)EfaM-AZ^J;JXr;l)2_lLkDVqLwwn1BA8xb3e#z1i9 z@kV{bmU!A(w$!&kEJz>{4GvGj)`wyq4GOkMytB{|U&uYo%yf&|49I`D>0urerf&2= zsJ#&^lG2GlufS;pX~S{_*z6X1P{Jz~4Q}ATmaXeB-SfKMk_7E$F}g%&1L<>+dtI0=c)}6r7vvup7W$RI1Bdlqm}3dr#{v->$UsImN9BLj z9c0uP@pvnYV|5k-4hKcR+`*EP1_Fi*DjslszI_D+Px2$?hO&^^ zv=tbL5x(hSQUqtUB+zIRF@i#Tz=$>+3m1eQ01Wh$AHok7IoP0U*gJs;7s15P5X78; zxF~N>^m@zpU66}G4~ zQ$#8%NS&A%LU}oG*3`i~0|iNf1l(*n%UG~yI|0Xyd|46>Nj-UhLwFb4(jo#U$h!C( zSL3|Y81Sw{ry0PhStD?ma|W6Oum~-m;Om06g18Bmy8uuCxlmUrSu6$wj+6^gB^no5 zj2l$-5K+9)t*~SxM6RT5C3I(jL4e?g_|gZ*HJfl=pqwNzBx)`ypKz{akP4AC8C%Cvmk+2vP1_5VOyPJpaCQ(L{1bx!yNzB zX(4I-2;B0BUrbK{XQjvhQ5DD-f}#jfC${R%ANL9o(Fffhi~fH~77r+@wma;L>TcL0 z#909hF=p)8e$G?HsC4+LF=@pydM4RS)!7hSESJTLL}> zIHthS;GBXX&|a;LgCCtmwKt5@QI>>2up_cC%}qok!pV`52*8}kVAEPCFl=<{i+U|k z4YFNLR6=`)VmB-R{ev?aC?$IHBU2mt)CL59dqfFY#CWSoe2fZPyh zFu;@#`U^oF>Fz)WkO(ZEnUf1`AtET8@M63Ld%U?y6URTRo~6OD0MiD116<~fW2Yf$ zlV2x|8Qd4Yy&}$Dis%R^EFs4A3ovVNZYyEMnHCKq)*#7BV3L^4XkgfsFec(JU^aR; zN4JkgAoYj?1KdK60SqZT4X>z24R=lkNa)v=!<1{>qS^uSi~(W*j&|1Qh+%Ot zI9-5#(&_;0tPF4=Sm0P`&_Tdrz_gg}3o=J4<+A84no)#9D1${Ah=p8iZlY^(AJMl! z7%-8*)^9-dm}O4s0YCr;g_HSUkm?KFM3nEPi*hiW_vS9bfL96neaH~JZ2-N+f19$)89Y8G4LA$zcKI|1HUow z8w0;F@EZfaG4LA$zcKI|1OG2#AjS;K9?Z7dm_gqIG*Uq#0}^{!vI1iNx$VWUkQolV zg(LPL{Ix;h^E32}VYYxim%?J?Uo^Od;|a`6Aqzw+fQ>A?zqq^n?Ee3CIA&EQ z4Mt6dFnTN6KALXoZ`8b0vXr*uxnyy80$_~Gc)3iG^{kx9_}J4I2<$9M-+h= z2e1v)sGj;_V5;QqL3NRe~2BKd*B2z&D0qYEhJS+?brUbPsYxEzhX=0s2&=L!G zg5kr|u}?yA044y!unK((co-{8!306}A(M?I?B|Y)fC)jtWDS}YwBW!>3h2fC*X!7O zLMYV z5hPJDghQbW`r2W(@El&jC!q0{fIbJcNkfDYm@kkDsyUd*WB7pNFW?*6M_`^A$)UTfMJi?!aTFL_*g_vN^nc!X5ikYU z;TSi-A?(iwth4y_HMkwC8JO`2OI5b$$O4vd+anp^q*ExJ$IcGH6#a+321w6B<2qI= z4Mfv`qU$qs4O-jb>@1KBAOtowjJ=@k4P+r05eH)jtg{y01s#SNf%(XolM{d-O0AfOz8i-5}v(2ap#`EjD?7kE<|{Wn3^F}@8)pT(vI78sBlzChZ6FhC?A zKsb^tOx-~V0&6?~rhr_y2hlzQS%BQ6v!+45fk*#*EH01(-XoC%)=mLIQD^u@I!1h$ zid7g|>nWmx!_k4d@kKWTi~$Zo1?iwk0T65%0SphWnxf&YL+?Qo0So~9ENuA=dzvoJ zVe==agJ=QBf!hDCp@29_qbb2sFHno1D4~dpZH$R2FFAw+KnZNR8Hjifgczm@90%5U z4dO+pEhMxa5Px`5H{O_VG)SELb~V`P?prz55~e2z2}Xv zJU2;8(iOiaPM`Jmr zW&=D78i^Pn{AslO=(B*!{~hW-Xx`}Nl>c@fR8C7^k94&XkrEIp&F?bXVYI*gZ{$$d}M?16&z_D26qV zC?WVjPksYrTaP;}Bwj%}Cfxj*Ov>tDY=6MO04@M~)R}NnQM4DKHO}v@i@B0l+k3Dh;$g z$Q3Et#s&!MYd0W-%(obSC4JD{3mV@7(c2f@A3R&oN}!;DZ$Msj&{fQem?1Zhw zj|cWM2BZN6m5?2QeS5)@KyT7QO9Crf<&Z}QC!!gnPnsh*r0^wSEuN89&kWlv5HT`{ z8}txh%SBAl|1dNY@JJ(ws*vRKVBR_A>XFofC2`JJ5Ch>H*0H>hrvc$uw>y{+kPr}S z%;aF%25fUfJp>IpNZ@R+IV%Z4#{9X#yx;-#e822iiYq3aIW< zzN2_cAx5r`-u(UZ8v~1BU^^8La*y@w%ydK~M3DO9!9wU!qFjS9S=g0Kk^?Yhm}$XI z!~#u0KoW+Xeg{p$AVrJG0Qi5P*I}^^m^^SXz$SoI0IdPi08QP7NRvPu2Y10DMKH4? zM7i-ol8hG9pl^f8QbzZ{EC)E?;z;2EjD?Z{xf@V~i@yhfe1aP{BVI$n)gMKCA}T64 zZUb~PFgT&a7FZY>7NO}8RUZI^;X}S777YTB0XE^Ub2qx^bC`dri#{p8=mteP=uY5i zL?Cp6=7&Y`F=(O?%)o;bkVEGx^cP8^_Y~1zu+q}#eduBT^HuOA6ZE+l@pgJTRwz{i z*)}dc1i}jqXnxZ)Oed1)fIzghY1U3-PB5nRA&Q3Y_$-+8LOlms37m5hjSbPjz|n#J zQi#}t(S6}BY@7iWCK62n4Ah^e2SF{QbCrk_gVZjV$%L&d81b%Vjy{lk)6v1LfT#eh zF?eKPdO$q`+W__EXWjn1%m`D(u!sf}zW@KwSYi1$%+CS{kOaYkCX#OkQ->U`{7)1? zIwl0s0D9|Sk_)qOVCsNf!RLp(608RSW?hZG@vrY71UPXr;$@AjT%|x}aX3!EK9=l) zI1eyuOvGz2k|Su$1e*+DZ6sn<4EsRAzsi_GR0nw;U}sEDF)Ky756~azN1|gml1vbR z`7&yVCTooDAdBQv{@=VTnmm!|jGeS9H0STmimOuxCfdYWw6waLiu9GA3JhnCp?g1nOo`vug9AY32B&V@miNN89 zpaiS7>P#frAn6sA6X)fs;@{b6pX+6HuoBoae@vT z6JA3@AOWq_;E|QW;n+;k_kmyLVpiY%j&BINQxZ3v-n5tjg?D*$D#zZ}vXU5k|oWu^TS zbVRUVl@&<6SZg>$%}`8%v49H0JS1%NF^HjHFFj9m9nx9hNT$FC1KEHRYhXgl>)*7gNaEfwwz`z{s9_=qWgmV2QLfghAC9YHZ>5fRRWA+P9QiDFppnzJ?Iz&0|e3m6&1kYnt9*xA&M}FG~6HZ=I|Fj1!spT|K+=A z?Sa!$M!c1dD>_3|N(9A;OG#BX5Jh0&jVOcdORQLfFhGXf3{4ed84!IS8+-hfiVa7!Q)?l&tJU`JpeAVEMmpdS|Bz^fSI)L=sJ3{o;MAxQH8Pl9axt7KqP zmPSLwoONtPm@=9QwmlqHRwVgTbGiYO3@GY=)`4QH3ZgVfi|o(b2GD(B3I|j^pbFxD zK{PVvJ-jWYFhYICY5RNj;ml$$8Y zDE3ltkmr)GB&#OV!r#K%;QG)_e*Hrbq!dW7!-GzOtcyHRi$K%{iA7TK5%%r-J0Ii( zfmx^+PS+r)q^J-i@1J>)6ZnZx!SRBqWDVjI-~mYd`4agAt5%X6Kak=7{y|RQ`w10X z|24#1Drlwu{@%a7137_r9#qgT&{Sp75>=0HE zrwVyq2;`IyGhqdA(Bl8pgMz?03l*F+h-k1hGUkIqdElRTP!N{SLWTGVG9aL~VTl#i z1p~_W?|)Dbmd!#1#SG5h?`e;84gR*A5&uY-0?l=lmm3 zBiI2dIxz_p1gL*-D6x$w{t0;4JtNqD0tK={01Va|tRx%^1UC8aXQ>F*S)ibTVTCq0 z%ixFnlV&c0g$NY3$-^>Xm|qVl2Jii!c@UNYP&@#I9ECCpvZ15~91M;rWFg`8-^)?t z5ld#L3ZWV}HLzJ-wir~ZWbs6Rv@g}i;b8(f_fIgVBlcJSY83-6qFJvLA%&@|MP1RR6l{jo`~S?Ls|zC zHP{;Te?mb-P|gDi9x#|xXe0y<#tyvu&u8?jZ$?ne0}72-^Ajz<`qF=UJ%W4|C?FRc zQYe`K2SbJflhpqf#J_$&g6tqh4LR{8NfRMcOFUr z|Gg)&*d53S^7Ei#X>Ew}VV+SagY-{$xiD9`S*Q^0L!buPIjj&5g-K`?458=@L3Q%) z&03KWRuQ3M89~T^+7Ph`T7tCg^4~8#WQ3JJp+eZdhM1v)UK8kTgQE36@gO5e&O(I- z82H69%n-0aW)P?g>jWT7g+_+ICmBFSkoXA|%WFgHKrqrvP>lU2<_Y&CBZw2BV(k@B zuOM}5!QB2Ss1yXTS*W1-p?0tiVHT@||2^1TY~&OK(OIaF#m8cQz%Z7(`lqtn6a*0> zRM7kI3zY-NDuaY#hjuJB*8lbz8A13bR7m+^$t&0{5<1g>vU-Sbp-KbIIe!<<$p}J3 zs8Aw@_9GQyrv%o+i?#dw6Uj4j93^AwV&ewV&xdtPPxz*=E;jvw7P268-( zY$^FtoEGlQC|+Bf5_gh~Y?~$BKk!s=CZpEHW{;Gq_e)B1!@8YUKDj+AxJIz}yt_;^ zMD^y4Y=#2I@9RgWKTA)h?$eUF7-J_Xojp<>M(r>mlv2>Qi=txB==l-1XN)iEPJC~_ zL#URFD!1@&bT@srvD)pl$!d+xewPG)UrlYj{pDH3f5^vgPnOVnV?V|^>ar?1^j)aQ zRMq6@#nYuinch$A!b(P`f<*sF#Oc(kZdY}x_Z}-*^Rm0>ujkIZN0Qb`n=(pGN0DMG zKzq~qA!a$2ay|*m%hT72Mjh5Ve-1d#%a<0wd$`1Ns}((C9eZZkq_f`kqm;qDE&T-wfOPo%Aw5wR-P00C+N5A*3a??)Qd)Qd|OKYDl zU9xI=9*=Own{w7$EmcD^)<1BPKX8XWadDh=N@epJizl0iB44(bakZ;UnyXrSUc1f* z9_qGOd+L=^kM`LX4*$RvXX}2uCD!j0`R%5&z%{RdVYPj_-@L2O`EL^QOmPj8#{Xd# z5L|8W;#U8#aeFp9TjY~!iNH6j2Vbn5%T`4O83_&cJ>xMpPC>hBsjb~RqC^@Ugx>0EH3h(z?F<+=c;MVodt8Y+%yS| zNKfhRqhaM4@0a6d6tLd0lhsE~U6cN-@3YSJ@&vQ5sZDj#y01PRF=*iIs#B7;H&$7D z=;o=4wy5JG^xZjS4md7XV@-vZm#tqKhzZncuo(G|v`4w@>%MWJwyXa2$5(=9eIN1& z3*gh$o%kP5M^=aJ;o4JPHSz-&9g=%^)%S4m15`%RN$oB64}*5HzNR{FK^5vEow*?~ z_~VMWsEo#;=3$G&ntX?|x9~q+kK1-|f5w)Oek+xkT=g%HN_%(LE;Vkm=_$W>D7ki1 z2LGzZNs|*MJ0BrcQ@s)#CP@4+dptEFVoKR zt@_qhQr&yUfo1eNZQNlc>Ti0NJNaU+O&v|i%F>OFr@Jiq*7-s)-KSHJg4f?KZh2X( z;(6@ZSF`xr)&;@!UjwDid7fL{{&J>!;BEMwqU^=jI@ z?q*cazM-%R-&>!qmsdR8C%{Be7^8i$v8H2s?7q)OUnO9pemfDYF7vNxYPEcxJ3{%(h2Oos#xPY|j+hs;)WzwrA#a2?MkIftuZZt=&#b zzaNtxQwx-CO}vw=YRmlt_wkXI>BXjA_8+(dA)gGMhL$fMd~)Xay4%eKEXzF#YWt0> zH}BBZ|CrCkwShV;Zer)|vM zh+E6lx(Yt;zFDkpvcLL;YG_y1SZ)TZVDIVI-`CU@cdRRD(F_V;;}0I(a4?+O;_DeU z_aC@3kEc5VC|jl+>3N?eP9B@y!4>-W%ql9B%Dvgfuk@Z1yM>|%fYTS}fxtnl7G+lnh6qQ1Ftwm5%3sQAYZ+;dmm zyLQcWUwtM-pVxakf3y00G^CrhpsvE%u^~A20XKE7@oR$@D|ZgPH})rV^5)zbpK`b3 zG}*aU&T&F4kgxM&LGN)1>hjJ3ZfV?!xV;iL_I*=9^_4UD)p5v}yCDs4(HF7k3#6rako@A(ZT)e_=HPA$ePwARTLxJcoywY2)&k7JgPWRtB8&pX@C zTv1iqeIY%=M|gjrUdiKIMs^!hs&y~ASYiee-{0)yqt@r-to>bN$$`&D$kP3E-HOuN zlRnvJd|APsTclR~bnlyxFPdDeiGwd?Qo`lWf5@;kF$~&SBtYZe$#!8`Tvo7{i9J`g zauiFDqm5l)%eyzdO2HBPuI&+Bw^x0njds;}jVy{l(eB1aMUOwbI(4w$k)5h_DH<~~ zeLws;y~OUd;?9^bpNih1a)GJ4`BH^PES)zRy|T{lUFy7MtVChlM&I_+(r*HvJB|4? z?CV3!z6);qOtSLl+J&QNZC ziFN(N{+Gu(x0G6^+MYS)n33zhd)V-k@};25BUds{T+B*IK2+)%f7)%pjjLd4Yti(* zdzY5wxCzPaR4#wt^OlwD++D4`vA0{z*N)4N<@B!3EcOr0 zk95y&BaFn2)MeeSiO&x4{eHQ&toH3#W4A^{1kbhU_??4qj9J`v@Db{0gN6z_V>U*{ z#(HmKt2_|<*i+fDdbxw=E1!M6IUPySN|(QUS9IIcq}+0F2@92%-Cr02cb2r8oz3e$y55@d zlYn-b$C;=vsV%owp0ka6u*0C@)zp&>EP2(kg$etn==`HOtPN|0dPAH$g*%O{ve@_U zN{DRSxi8y#+sqyNBC8Xu>D$X}1ge?C+vA1Ig~jjb2HJ6nbYx8Mf440jJ!oE+v~^KDMDUqC?0eeJ|^boyGIii1-JUopXVt=rhYbU7^{!>Ofi@)2MC8lP@u@#wYZxf}LW;UIOu zIP+;~a!J^P_Ga#gV(>k_9>3D& z0T)f!I%cj^=E_bk=^wab(wYSmiZkiYD3hPW?=nA@-pLU&5tG^MeeUi1%Ar-?Bwdo_ zL~m*b7VYe%NPT(xMc1bzowu{ci%0s~k0l)(8g^-JSQ%8`@$r)XQfr&c!{=8j+%w%` zJ9&FdGd*gXaoPRI$;bA32c#uiC9TI49D+rY-8o)_nya)-O-&uO*6kQ;TFaQo+Nq~= zHU7e>p$PiS{;;0=hRx4oJ4GG#edb7|{qi<%-N6S9m0Ne8xlsKBXIR*=o?=tnO2#ue zRsB}|xyOyW?Rp-s?H)3_oa20`F=p4J)-4A11Gem;<&sqwj!C^OEeN-A3GpvKV|#3= zNk((?-L0#mc~jd?-=UD|xR5?j{eD8|+7R8vVRLf{xn`R7Dz$)f=@h};I=Ajd$_}V! zX=XL94Z3hm{bZj#UX?|o^VRZYo6Zz#EW47XtXj}GeQWw*TC)b@@>Q|#mFuJ>m|h+; z&S@52BYm>FEZQz$<^u1vSUZt6!S3gFduH5|8VY;;cCnrsAjD_K_ZrnU%Qp{Kw%2~F zHVBb!XO&x)r*N*0jPX+5eDt>4%$>mp5GMF-4+ptPj zM!fOVJ=OEWRQ*x~>v#`dJga)-{SRD`zyYpkn@*i;$0ws4-Zyq~I@`US7%kW`lyh_- z_lmet`q3Swk>;_1%G<2F`mSu3$qUw0$Q{luRB#HF3~_GTeU{X4?;3Shh(-S3~KP{k=US3LM3}66Tqb z1NW1q72OPlHd^CfvFyjqtbCaDM0btpL-QuFGwHbwmCK7%?)B0$H3yF*Wja4v)?Hp$ zcd_2TvUtaVD2GknUmf@4c&*<@QAqQkL`vyIUgrZ|@7X|lces(&;0I0KWNDGAGeahE zcM?Jk3^^{RW|rh`w%@zI?#K;=4{ZU{C3G|8w&8|(dt_T*G$rAEldVeaM)7|t*VFH#?{7z)%F8gQ9P++t`SzBa$*m)Ye&B-M4cFdv z;_m9>7y5(7}5K6AV~+M~h$O2q9Y`!?r_eAu|x`C@IRMcF<_Tj6x;B)oMyuA+{tx!fs% zH-sm{O~@!ZTa%CJn%1FfJ_7<)OIo`Qd=SVicDPWVP!<^WKFI8yUG$OC$29`Ar>>r- zy%E0Qfm@Ki=DKgfMO~d9@e;IJOZw;Vd8aLAQoUX&sCQEdvHdZO8^zO6PQv<@Ms_HnNuIt@#d$W3GajlWj z1_{~^5^f=@FKe4sO-nve%n5Usj1ODyDJk5y@$QcCmx==_n$$wdE7ryGR!l`%Q?o& z<>Usk6bXl| z%%w@auZR7V>W-=%_KZ+orJkK{=BBuDyXEzi4Leuo1&&%fU#^xrm(AxZre*DsvtS5FKd`K5Td1%C@EqAz>UbC1nD@1T;b6(w3FExivgEDtqCA)5z z-~Dj;tDj<*R9Cr}k)FYMr<#e!aRYVD{C)-3T839#uV^}GEO^KNkyjm$ctmGNWL5=x zv83S_v#K)lD9Jisxt%;WA9hKJ9<$?78gY6f`@!VG@Zqq>N9`_(XZxiTKPYqeIPvYu zdv4!&ksUYskABK~l5L!Bn}5Qtos4#w`3`43AN{WeWSb_!k9Un!9$WFypMIaFiG}0E zV?5q_ICj4-w4-1voJu`Ibs{o$S+2pLChM)<*(t}H#BXJ&Eez@khb&$^P9N zA8CcU-rT;kjFTZYkBiNC>q=Vv8ynf|6-Ao@oPOYX??^s+w03Kq#=#K-8)~l4N>A4q zm{xulbe5Ft85wM4(N=t*^B}&$K|?b>%x#HYjcY(Ee>%&^iEc9Qb<He(Sb_IpQ{@ zVPcm1GrG=Ry%n=;&|iA_=*RAeFEcfKOl@yOd-JMF+Z#BVbl`(h5V_)-ck#AP+ZIEedckS77ruI&gr~XB1}CI3OH&v`3VSO4b2z4aVPPrt_H zpHVyzb%8wiG7sa1;PA1~jP^p=0681m$A-$&wKE6J>ck`3L&@47dha}w5jPT?Rg{%- zJ7K25=>Cxc`}Q~`*5+Pa*RWk~nccxXV?lIIftr7mve1<6JbjAJV4cg!oKo@0@21>a z^=-3Vje1`(PE=G{=emWsI~uVhZ{MiG^48(&zg5a7B}m9TW%kH z>ZVt?y!l1Q!x_W%QH|xJ8cHh~4*X&Hfog3q-x)_lmBh!Tt%e%fk0y#$mdBsB$|F2` z@?A`C&(=!8uqiQqU$rL;PDdQ_(jEPAxi2{mJP_^IdSmMtp~kY2_3Win-XGZ9>4p0; z@4atK3$x%II*{{KzhAX7uRAAvG$iIsuO=M#zTZ4;;q6`QROoJ=k^S;> zZQui`GVcCon$H@p$lo(=(V-6*qw|oQK5_srUE6M1+MAgEY|!nVy5-5Ku8jWg`0ze|-q(jDcH-}j=wbysh`f%1bAZl86z)pOH~V@?r0!s`=W7 zyAKHDpW{qz3FH|OdnsvMK5kw0_H0d7c#raatF%2+N9-nrFD7NY?9C|&+0~HD5g{e5 zX?9i#m(6={z_a#UouzXLUWbqVamJwYs)mZxVl%A+iX)x1iAfs=E-$}jXO>_3=%VzU zNY(R`xjoC(Wn+3@3#;yWd5&`%ABX+;?Z|bg**CwcG;UO1{q*3VEARLg(+4l_vSbOI zQ~DhH;Gu$W*K7r0mHZ}C2jM2OD=!7}f`tTI2TfC6)pPq_^<;j}M|Z)>+SX_CrMQu? zbSk%6-w#~(BbjRw=3$nTA$!*_Kd5+Gt{-xhZo?+#5#fM|vmruMLq6-L4!qjjaQw-U z?|!@DzE0n9ZhCTzmN{(iP_*a0q{ubBJ0+-nW|Zjq>nC16&nIaUzGcmqw0+&9 zF&f1lb*{&_hl;Wd3JaJlG}J$q-DqcjXL35{)Vn9$>wIFWzkLG{!?QZhgNVmk+XhWLJ)pdv7ag0wkMTbw0>T(+yO{?0wIR3yXG=Go@YujQ) z8Ns?|GmlZ*a@KSEF7tAU(x=lZ50@EzJorG@o-WOZ z_2k>k7kQu42jlb!>$ctr`{Ze2o+vkJQ){RtuBg=KnXVU0nO4|8ym89isIcz%R8f{8 zU*KEGfNTpBvC)&-NfMonv`=bls&NxtpY5~Av-?$E>Xdl}q_}>}`#ep{siZ8WaLHEx z%}~lIXIpT(@hE z<#4U+jy#`|+I&)Mg;#@0zSu{;&3%3*Tl2n_t-aDy=)Sq_UWu%VPr*h-pBrY9#k@5) zrWy`jKYD&+^l;O#g;^g3i|0}mbE)>s`kdFsIvhsdS!3S^-VHdA5qURgtReihYLD#u zSLye2ncN-^SB;y<_J|m3Qg8*l?#k^wcSB6X-nTBuzC6J1Zcn%b=h^$5UyLC@eiu|!nnP zaHMN}xXV5*(UuUJ&s~iJEZ0`-OK+e!CUrWSV|3%p%4Jf=S9m#s4M)J_(}Wxfy8Rvqbgoe+6t&b~9l)nIQ#oSFOPumC;d zvN*HytM64fx3om_DWx?x$@6?XIH3BdOt7aTuZAZsOzd{9`Gbj4=d{e{={?JDZ>@e5 z{E+dkjEYN8dq!sThJ%?V9?y8{jM;Z(%hH&5+KzA-&%hbk&4cdSa|i&04ZChtF9Cu1$0-KF&O zcG#!$%UY(nt}Cxuec|Zg^z<(#I@U*xbxrDB1ga9k`r|rEH>cmJxnVzCe>sd?epLNv zt+J86Y@D@wfROUpo(RsFh`lYx5~D?K@>iKg|H0ALp87I)I5E+YKd6F7l5Dt6@uhuc zw*AxZ8Rl=Cj@kwoFPHZ3IrOf_XR|7=w@J+HA+O;j%2sfQ-DPsc=_xxl>N zJM&tObEO^cC}ZtMo~#Hn`)O1K9kS+DW$fzCeU5clv6q0}sFTGlhAmmfCK~H`=ULdyXzkMuykAywkVG zpn~d2$U6mtZ;eSW_r|eZdcrbz&+~$I-sd2dG=aSr_+JVR8fSfNCl4v^Q>cuprwo+6 zwBsDr(X%QxQ+66^ZQ(E5_k7usUtV*u@dvK5?zKqU?Td$7Z{2LQ&R0(}k_eJslOrNv zydvY>*?U>xE}N-ls!R1xXdUXkm16zGT4uVSd5bPfMNW3ugfJgjzQ}OAV1SHjd-Jm4 zO!pGQ!yl*58Zf`Gc0=+1zS`=^qcW5d(Ys$*{gHk@r81-J2d*vX2d?Dgi`K&&aehB= z%)JEeyi^zGMs|Jonx)-eGu5jc$v19&X2qkq?5x+(I}b{}S{*;P?-WBhomR&w~C1WhAmG5V*GPJ(r`Ns5+ z=a;iO(ewkH8;15w?4Q)A`u4)iBysWwj^3?2nInp2#^~#Jie(KM@1Gp9d`Ktk>n-sy zQ9nFF`fQ8w?x*W}m!t>M)%dTUa4k@EJlL6Ct~)xFarge$qH#Z7kCmqBZQ5y$S;6!Y z)`?e^RhuQX?q>aR*zb6_{il$9&+mWwfxA*F?6X~bfbHc&ek#||SVq-Oj;kWYvYFhG z*_o$1zq1%AK3qpvueZNDpu8ta(Uw=?#JYm*N$)E&@Ah4?|K`Aw!pI-x*$#bA=&asjzk?+J00>JwKsZfD9$|X!ur}>Fiqf&|i4^RkXsu|gl(tzf&z!~BzRpXak5_-dh?{&3djug%CH|&{ z{&AN_-|9FAeYFmAYAW?It@lzd>brDX!gugfFT?59@8?s6{l`mBWvOo7dm$?CSzGc6 zTu!TeW7*8{ICie39Bkw()4JzUnUD zt;rKd-yLSzwC=@n`#ACI0ja4$9d)8N?vFBNgr3aLHE1y2uz9M^IqQ$f=B8s_ zX5wRG23`pn9y+(oB}^h7ln_SDuM1s`bG;YFd0~B9*v!sNJ#1_vd*20wN?3M^t3FY+ z&(2wYIs9SN_?`Oi4(?{=mE0eA&$)T~FR%U}Rlkh8VfTCPG>s-Tde&8WcO^_~ub;V; zpIaJiBArX`WPQpMJ%33QPuEFC}DaQEGdlc&P0%lEh*@gILB zvWb_gb*gz)yvE_Ci)1U#r5WsUH*X)>)y`(NyWTpzYQnl~xWlb}pV^M64xyFF&AY6# z_*^!GslPnpRR40hrnCsVUB_s&JJYT+(JWW4SnE10<5`*|yb&L?Q~0}JgJehl-p<+5 zGTB2hmE~=O#y!csz4`~=r!yuq=9gTV9@p0KicZ6g`G>FLY@1jnB9+^bmTde3mwskY zreC1d3E15% Zp{pIxiG%7t}98%Ov9Va7goOTBNSYjbhQZLh613|B|;Z zVP~8wkLrd+)_Ap3 z^mLo)-n${}w?%wdrEO2Ytjuij4e&6sPfKL;hrh;?pwh!?}Yzoh*WwW{we1J7a6&seajgU-K&&R z{F}!5t=X*D?|eMu7DLN&?w!>+yk@2DnVo5p2^56SU24e_ayt9>iut@tSMJhaESoZu zD`>o*tPr@W*!x-Z$jb5x$uj$#l;RW@iF)><<4qfOGm1uq?tI$hLzeWUmhSqh;JVnh z1BZ4M_gOG42)#!m6er();}i+eck&2NcE?>9lwU)4UF8o8{M5uYacJbp3U)qGv~>Y;OTU{q0e2 z&+w7MoQ2jR5>f>niQ5!ZDczeog@R=^78A~DwB2oM8n{&{Q1$HlWAPuj%#?G3J@JX` z4u0)z!bjJ5g=Q8p`xRZD>GZmpq;tS6+h~-U@8*H851d2y?SG4QmEAQ)#Z@jZS|D$ZHS)S5U2Ajj1Da0Ri42Xz&a{CAF z=UA2H_J|@*@{8ob8wFL5HlN=vBhc%n)z-1XUF4<$XO>Z5!$|2v<16-^OW5=7qEb+L zT1vsY6FZW^&hv+_del+b^Dgrw3wdHyK~=Girl(SI6vdQVrCmp5%FgKYm0~i-pVtX3 zS+TaZ_WUWiLe}W6!-jh8%W82sr$z)#Cx#tvT^U8Tq&m{ZA@~Q*lTc#0wC!HdYO~d-rDA>LWw{)yr|G!r z@qiKg+U#P>Yn}sY)ZDMxB&sU=-QKi2rHyjs5K5I@8TJ|HJGumA7qDE&9OQo@;N6=r zKDNGO)X#oU*JStAE4#~HU#E=}W-E_u(Hu*;D9^QhM3~I9i{<3@%SzRL*WKwZovBIS z2!D1$;j&pfTjpp^@2I9i5Gt@59vs-h5&Ga%HVa$#D!m(DGaOqAjvnj@oq7JPIzZa= zGta^H%+%{|O2|d?PMCQYu?J12;R}|duTIf^^7>M#2LW>TH`8bjSAR*WTW+g0;b_tLxGG zGvyxMQ3u#`<3b~1Yc5b-ixljpcPnbmdoL%FWNmV~Pd|C=v%Q4k17JXeL*6_F`?wl_TFePE5>j41Ntv?LpE#{KkB zDDlI0E*+`ad_if-a%r`Je^_QJ**9&y#Kycb=~Wpi8^n34eHeQ62)erLq2ktsj|21U2g=%yb`v|Wue)Cw&*l;(CqJ7;=gJ^%Nf-UlXQ!<>UQ*r7YepV$0ThVu@}!9Jvg*9cg!I) zC2NJ6{?MzSkV|Fhl6%fJ%a`~8ePmz#dzE)+SeeQtI6c1V>SeVTBoGhMFDEy>BP zw$zF2{)NNqoQ1j#c~~RuOe~Tm-&qXXN~RS_K6~Fum-jZCZmad0M};5mv-Pt-)vn2Y zXkTyFk~=AQl+w>bvZ7mB(|Pko;dc4V%)(?V8i~*TAqX`R#TJ`Rc0YX(TO`rfSD!!r z*{P`Ylt_|LXDI%;!n-pEOI=N*trL%XH+<5PKH^+>Azz-&1ZNjHVUAu@p6O^QcCfj% z@;lquq@9DKf!UR1(HoC#ZLM4Ww7n|)WyzXHuO}@_L`>b=%|;6fj8PXJ^N%OVmgWYG zbSvnP8_sBCxXv2=Ukbl8ROqi-kil2sQRz4S<#-)=47W!LrY7W z?7A|GhrYg8Teo6B<`4ITCMv~MMf=zD3oPN!x^O>Ox8UF!DKlDH^Vby3?;_OYFT9Mb zi$2PBmayhj+`TV-Z`2~z?6gkV;iDAw;On?+->7(DQR8a+_)S~HYNqtR3?(xACiPt$ zne0xTe7d82`bLDG)cL1H6K6h_MZDRfE8;dY)L@aYdMCe8M%2ZR=IS}IDz2)-x9cm6 zD7F;WfBd#N;#1dN@yFZymZ#i)*1KHt-ORJ&gH^}$hwUjw?0!)AELlM%uRrnX+Bt`3 zuXn_*IiQAe$@N=u!>66(w6sEePMg^BN0i--YB(%;F}Uks{ISx$AC77KGH!J%o)mxE z8Zq{?Iol>F#h}pZNiiG$DE*kN3vJ z)9uu8tFKRXe`=nXQFxDa(2zEFT-$i>^+QK|EYPNKo|ewLE;{OXeUdeguey1=$?(>M zyK|$+1LNhIBSBg_9WT)r`U}w1@^Xf^Z#!b7efvf3ZmM+~^}oF6E8k9I9Wo%1|0MK5 zmFj(KRbLYsZB8|cu(oaa4TjutR8E?E4mBo}h4ATp>Ad$;mtyG+ak>+ibuaCI68CN$ z!=Q@!c}jUG178bU0H$gq>lt zZ%#3rC&lA|{*(N&oM)SvCA`<_mfzW6y~{Cs zDb*=~tm|87)RH9sV9z{qQGnd?+NPzOn*6?yo#&j&99+JwluJjm@jUaFT)Hz=p=JXA zAA4^Z+}77_dCHEN;+SJ*X6BfgnVH#+nVFf{j+t3zW@ct)i0zoE{lE9U)ALUE^oObb zFkKa?RMIJ(Djm={d+*<~_F8|)=6)@&+v%n8x?+Yv_lA3hsRVO$p0D%x#(YxEYO+yGmDu|bfj-Yri!@OBcpH^Yv3~F_e9fOil(Sqie=I(3 zCjM-i0`hF#c?K7SfY~~GVwzn${s3C0V`!M5Dtad#*T%2HB0DEF7i~+`o z1Y6cEot6xB61mP_`juip?)l1SrulU}8*t7YJ?RzY@@vTg?S#+U^a!ismkt@(ne?Z_ z8iKEz;Q}V2_k(_0qpQsEm(L2{*<(Fq0+!UJ4*9QeX zc~g0P#n~Uh@2GkJ_-@zgBNl_<&&w4cE-WKdC7|aI_@7+d7@yx`{Kv(;?ZWf;xd3e^ zrvCFYA`1DR7YHCd^K%UtS#v=_IXN?1N86ufws!d9f`a&V4z?!dR>lB;>uQ#wsgmLe z8qdS#pU>vmH&N170Tl{gK_J2xC61Jm02)yul;GD2s(jBkVPP<=;oQ(K(b2w0r{cfqc1xi`Id|SY;gO-;lw*|iT9}DHmiOLvKtC6S&T`Z#TTwr0QcK= zz)=6-&OR-l9}KY_01>L*h~VcN5eVSXo12@8up6=y0OC3a3kB$w&giDc4*B?cDv+iH z;u{Fk?HI={3FV6d;B$`_C<5?_fcR#mk}3jn!2o(=h6Z~8IU0Z-na|-Iz&GnL%>x9W znMi;Nk{buWM>Y->0+?|DDyCGzg#l{x02C9+eh$Dg4S-%;)kF+X(*)?AM1-vaK*0g% zWS5(R@x8P^HBspA<)@ zLSfYh)lcW6?R880&gjSdb^CT40LYC){oLEzH`hsos>w;#=tcxxn$s?b4?+Wjz4wEu zayvc%V8_vW=AD|Z9@Cc#!q@sekK_`}Ob0gC=^?_T?kgVKdS2WZrZEct@>v5A|4xhQRItU+;l^)ng45AnxxKKoo#6^2K)0qp0u~AP=7S1c7>V z^L#kW-STF^33dpyy~@o9Ja%87^`WwR$lLv(!T5)vko5^xLqQC})rg{@(9?n*33|l9 zkRpijM?z8L2_@rL#26I9mGG6taBg@UKsiFRL|Wsxh5?NJufgr242gbq@;vi!K*5$0 zHq1bgJlJU?M~3tmwA_qohXzcZNY-CR)8%GgS7Ueuhv>VHF(8@xt>|e7`vhv)si6}L z$7%^H;K~OvYg8(}w1wRnPSv`AA^8b+L$iXp2;l4E@{6fSsmUyhmEdC&Gk;r!W`q6` zDBnv)m{20wK-&84sUO3Dks(A)jGAZ>DF&Gi(IZr_pN$wPOpuYRB^Fe?wm@kXX;x&` zMuF&rx-^4X43j8fWYx&B4w5608lP%7Xg_PeZ=Y!&YoFjo6DG@m&%WSMahF_S)I#F> z0pbDk0fccXBfoNfy23`uFQsoRF&YAuzZw;)6lzNTJp%(0!}PlgMs=!G(f7HC??X!T zYz$|qM`>TvY?ak08!0_e<3?eUB$7yzuqf%2O3RAMHp^g@Z02KtD+IOWzm zd=ur0VwVD|h*_$I!C1?(EIB1vtz4{JzFhRIgSG0SIIE~bxJ~`V4}pJ3f=r7{)HG%i zJnKktMRB7TrWj3{hx4wAw#>2+>sOnQOP5XYWomY(j&HV#yr6a;pJ1VWl77lgU|h=#cm9G%l*rde^FggW z;yvp@>%n|d2vP!4N$FGR%X9_lmLiHGE-5alp^5Q{yotp$mJA+-CB~zSql~4DttLGU zR}JdMlE!9Z@w$DDBK6D0cAFp#4)sDcWex3mk;<$}lEt>lw&HKaEiwr*<=Km-eKpsO zBaNj^-)jz*A=auItsA}cO%2dZn+B@-E)zNuyjs1Y-gqG4Lsk&VaWrtee>OOvaH?=_ zrcY*G{_q<3lYByFsy2l~iQaOn z!dq5Q*3T4pL_}vu7pGdeRMS-GQud&Kh0c4=>yWd@yT{G8$+)SmJI>bKG~6^M+h?1t z8?+_pL-b+v;r=lLDE1`*G5r$e$M2^J`ts=RNzfJjgLBRJzHa4$KQgz4AC*7GztaDp zr;@;I_&m0f;Nd8BGH%iwAxO^qcySt1|4=`o&l`>`C?rTV_(!x|s2b)BLkf$_%(~#u zEum+jWTDLrQwCX%Y8nX^O5QSB3+`36R_4|pgR~~<;|pq8YT{Os*c`N!Rjf8vom;OL zw;{V(yRds6=&5wW+IDWgCVT$`6{D5XB2jZD^GSuuuqXcJN2Dx4izK;0b|Hy|aqGqD zH6^5*VVwzG7Sy7|mAMh4ly;9lk85XfBOYKXq&{c~BrA<=mx7nt$l%OIOLxY%X5``Q zUpAtpHc2foT*dI#$vkU!sJp zGc{H<>6!=|@rxD#IKEd7Z5Yuy|3!!mCi$&{I%-mdV#$53oXPN4wJ26B|m)`&*2rOlD0^4mWACH4&1_QVvrP zY~WW`8{oH88ZPech1cj(Cdk*?0vZKd^1Ha3+l`AyCMURlC>1FEQF>Nly`0?u>MuRo z%v@r5wBIwIFRW>{KfLjdbgn6bC`&JxEEvCtztlhcs0u4Pc}#w>)~=MXw!awqGW+EX zk_e%3sbzivXO>4vA!d>4OcY@Vuk$_Y%7q4=6<#?ib8wf)PRMQlCIGRR#KLiH|^89-dbLx$C2UWmc>`wt5!tEomt_Jh$F6cu1T$%X2+YlwF6|;X4Uj+ zPF?F$$5Zb2ggM!vw#>HlsunHFmP_{zpohuB305}SqkmPkbNp53{G*JH_eZ zmxS*L2_IlzQg2@knP}EN`+N9?VhYj#fIA5Q;2Qt{Jbiq=p8x<(^Z>xA9st0Z`kAm` z8?QSc@|n(-_@Cp-#N;(w6lLt8AEvhTjxLQ^8w$&f(^NF#$iMlem_xtD`x0a1hnW#F z^z_dQeL(g`gzymeNF%tm&j{Pk z$+XO?hs-T&k;hKi2vT1}L>q4HZkz2EVge1e8GIjb4DffbOHkZxZd=7|pIAr$v>Nz5 zOJE+~?=4oFmYyYaZ#6t;&}wJ`9W;USuiybh@hB^Cm#1*&m*QA_Cxew?GZKXkKsCw_ zD-4lMddEp`?;;ZPtVof<7{zdhnhqZR4B~GvAz>oDfr12xfv|;jTFSs{2Wgxo_}f%7;rs8oC4t;$vwSruGh4H#^@g z(<8zn^XygX-xc_Ha-6Fp-XA#DV-axB{A{$Fqm-c2M@Qev)z`zsEmG(Vb)Lf*rU((? z4ATz%RO-z5=N#|5+%nY|!%*P1H4%Vam$}A_LJAbzYoJqKwnXRPZKNl6IawR6X&R6M zAT6}dw%pD!Zhq6>otTeHLC~}X-=8USFAYSGnQ<9QIB>1p6UX@LXBvPE+2b}4(kqv$ ze08yw{f70OV16s63d^jOU%FCJ@l45*GAaGpF}lbQ6SG^1indjqI;DyFxw8u-qmsZ* z5y}tIpqy_mqTI6ORp^(RRZ9p)dU)v)8O>aKW14LreCOk7yIlD~-+~1T?}uHjv7beY z7&DU0Jk>&eZ8Nq_0~)};ST+X&e{p3l3~`G%VT4JZB7GDcMkpUCEHHA9eYr8fcttHa z%3M7)>N)|aY@iVOAk$tB2ZzwHumUtxW2?k!0b1ew{vyr$UcfW+{>w(AIXealEG<3F znD_Q~3mM(v&to9W7q7NBLVbh|_gErZY%d>8&9!1aFvJOUM?%^m`iKv(=E_R=%Bq_+ z;2C+ifD5OzR`QHfR#MUsH7%`Nwerb@4AGFW<3zW;RqwYjJ^Dx1-z3{sVsr1>9R=|) zD^>_gKTqW1#p3$~Nc;NxttASP0N1XWN{l0$JRWi=L2BH=bb1!f(Q65FkGy#^tH5H= zs=e3LiK?iM8r#TUof{})sHaZw(o4r;#26b~;f8CjRcm63cuTjn*dYf)<>TuuL#qj7 z+!`9)jTKayFqLw{IT_gu@ktT~^*w&x5YI0))UX@$C8d-}5>XnJ64I6V3oMR(-OLlk zAX8Pmq$v~eV^yAQH)bbnwFe5~n&KIDEql0`BEOPe%&^t1#uq@B|$Gh&okGB6= z`1|<(cm)1`$0hzUiN8$ZFO&GoB>pmqzf9sUllaRd{xXTbOyXZm0-WtXnM6afrWN+W z_aPrsTb(P?YZ9!rYZ4P2F6hR9upU1#Ul_ZBt3k-M)f*m(R6M1&y6}$=j)T1X(xiL$>MTCagRD8=|mG( zTpu4UlRiR-V4gXsyB<};cXSB6bE3r9XYgUuhThwFa@qaLlk%z@wp0fu(Ot@~HUI)J zz|{Lm&=9rlc~D~|mIvnPS&5pli3wSbuGS3#vCv0^K&T4JT3) zn%w^BA?0>xUB@X0sO9eLz++N=E) zIxx+q$0_F$TBPj`BH&$cnI*9##&p2ukTo_(pTg_y36 zAA8J$5A-Rjk=~3lhY@asHjo}K-aVCEkSCEkJJBy#ziFcUde|kJPBt$6Z_JsCghe&a zknf^O$^5_&qqTlOpG4zoWO#=db73S)570A6N2INAv~o6m<4PbvD&MO|CUO2W>d0a^ zwswJ{ig^mdu54n9n>fS;(E-`V>{e8rpin(br7%$=mzJA_S&rr>PsIPW9)ixk-x39% zGCAudiBU@B?6{0_8-L<2I{k*MEE~`LMCU)ifRrrGyeMO(_@mAnPv-(KYj4ACHtJMv;;|eZ zTtsEHHo!=dd=e|>_NdccRQhmikzT}VgS56SIAS6^rO=cbG|T=pLANV$G#GFw@v!UY zoorqCW|khL&z?HC5TjWn1(z69HfNH1hA{|vN z-cZ-@`?+-1LD0MCBFwRssG-=yS31B+2`-_ul;SXDlo}m zOomL%xbuT!`kgPCV=udgqf98bR4_ z)|*joJH(PHj7sMKg^hXEhkTZEVh`Q`<qsL>%&KUA9g)`Ga z%-`hQgE^(8WAMt+FregnCCGVxb?a(wgGlvOz``fZC zbk-fUPSagM_-X)S-1^J6rM>K4Ahy{+r0dv22f8@U~%k&nx!UNz3W5C2CH380GAoBiiafUU|I`Of4lS z1QIuu2WX+(+z$~@j|{XrCbuc_rS`I@+4JPoEG^_5UDF!h0D@v-@p&J%aYbXrD6Q{7 zPKxITQq`xfRtzywBP3Tx86?!`<>c~aL3&_?^TfpBA%6~aX@V*wCN{| zz5sOKnLZH78=r08N3xWPZpnpN2FO2_! zKuJ@!>q00)KkhHx=Qe;#ZHP|dbA+@?(**~yu`&S>4e%go|*0={!eb#s7T-)8laBf$3`E7E4%S zM4vTD&}N_~B9B~=rn$zh7j*Mp=;m6~h1KTE2><;kzR(dNXtM!03wLoTGaJ!s zn-jcyUVNsB#rNC=*vj-CC{s;$?yx`@(%Ld!+PHX%dpwo>!Rc~szXq}o`(-jG8z@z& zk7fMU(xN1R-6hH8*wiPqoU^{skr*N^1J2$w-GEtUgEesKhfB&h@C`S}paK@9!O43nTESAu$)ksUR_Im zXLu$w1syb+CO9!8mu34t36u{tloYg+U9r{z!I=e-IJCCKAL7}Pp|UVFpA4D#^C@vR z4(mHB1u6%aKLY5|O{g8v=&QCmq;98!M6n@7cO@813YNx&@p@2uxYTz(Jwq|y=Ywdu zS6kWtXpHcH7S)*6@Na3#WrQU`Zs$RS!KhE`h!n9j=EhVc1?ha@t7m3wjOoaj<%A|7 ziZC4+Hh`aAgP`Dp*yaX10!ghFcmrcT{K*G6CFa|Zx?s90MzPF2IJx8oJu;;~>fuH( zp_+QrK|`9Ea^EYYJ}De`t}a0axYHPuqRVt}SDm$p;YAKUs(+WZW3BhryYiTR7^FHz zlp`PgwKGg*mu>X+&XJG6g5!zDxqPwkSRFO~@;aUb=B5&f!l@mCoT2eMx?BwZZPU&_r;VQ z+n+EKd$^YSD8}Z6sGky9BvM;EBE)fO6HXyb$RaMBg62G{0<#r`#3&wt-8bfP=PLnc z6be+-b=5=?*z_a|Q6@#fQUeHDWVl1bhCJ-#?=2b%!tqeVxmas!N+=5>$C3z_cmity zkxp#4tb{T~;?|ktgE$#snnGX!c02R%9SCP?t5xfo)*Z>0;vF>difFfzr82yQBW^0* z5F(^>crG!<4Cns${8aWs0V7vm*Tb$@3*Z%;>XdTeDQWV6?rY9x#U#qF^_Q$&RI%v` zvdg3UjHLD_cJ=CRm=)J#saNrN`{Pdp^)i9 z0RMk^Gt0qz83mp9Gs(0AXi3Q0I_JHKUIRs00!)UtyX-Uu?Smn{t1TSfC@7@bD-^Rr zBtLu95u?T#6`&#)KC7utuz6TwQ8aUFqox0@V)Q|CuWY!~RhEf}nZdrL7&`a9VU5^oqM;ED4?QM$NKVArF6FDxx~o&1U4YA{G@p~QTq^cs*3uFB05C5yW!smG zOONGQB(2&5TgS*#l~%B@t^0%5VVYqCE6PsJZ1P%TyQpeq6oy(NGO+tv+OHljk*gj zw2aFcd5TE2nq*4eDdM2|%AToplp*k5j71XU`+ZncUDXMY(~1`>o-Ip<;n?P2dX?!b{gONEsWAzBrG#0t&9`DZaN;QV z7zwt<=sm@NqV%2aanl2PW35Z1y6=%>3_A{qzzeto_7Nv(LM{H1IB;=!BQcwMIcwdL z=vH62_^2ie`5xAqzL=%@LzD5N?}p(=Ysk5~%l$W2{84e~TqLY6IEkT4I|kTLvXg(7 zFGysWPi8}7?A>FaUM(iMMw=%sV{RaSI1EY-Z{zS=hg?^e>`jlhE3MKNIMxb|)%=!6 zHMFZD6HO72L<&$=zhm-oh>R43GgxMSEW=I7wMt$QCq0t~ffk1>xkT22pD1UeImz@y zHFLb!NY5@f+wv>tkRoGnn?&{-DT2fB6`LTcT~(N->9BAj5u+{JP_8~up|;+0pp+?F zSJ67Qb>6?&T`;C4P9fY>e}zreqUyyqNrm$NA$_le2!IxdKl#@}}J-OXp9 z`iadUs!&5k+e5D30L?VUVAp_D+>m1UfLzoVzAmvd`Y@8YNlB>?rR40uC&-b_X3jfO zhh|3Jp6UWfxo!zQ6_Lc*dQ+I9;IM@3ty!NEn>el&El<#S=D{^AsERJ2MI7W?f7%q~_`tjJ zT~%p8$MRzSKy#CQHqKEv^Bxu_d{87PCYvF(F^A7M_{X8AKUa#I1lERJ3z>pvJ7r*H zi3EkL5VDeF42wd)&8T^cs8aesCmw>x3+5n;qP=1Qc;o(?TJ)F=vpflWC(QJ&g1ee~ zco%Ncaihw7wekQRQ=TPCwzSuz@)HXTS>MqBa;7eF@2=^OgeaUJ&0_M3b;?fEm-D{T z=e(dDxN~c)FXp3m{tC&qVPkDAE%xLi+s#;`r>H^yX2MUdwywZU_w&;pm$OfqQMley z147-wp*~jW_S=>XAziLp|5}Sppx=q`v$l>?|N4tl`NevAxp?8$)W!9oZhcEus|Z~< zufqYhB^^595XwX!!mhRea^hISi9ldtazPSJFEo7fsY-|va$(QxQgx23H5GcMab*7X zQ+77`4!cD(P7T|WTU>Leb-U-d;TCY*Xv9HGTrK>JQcPztHZh18yinZv1AxiV##oS~ zda`srJntp8z%5f4@(ee~QINA3LsBCLG}Gdrrt1E*gm!;n0JZ`PcMF=21Vh-U6sl2% zCoM0)-0BVYF(?f*=?a%}Ot#02>sx4s#s8Fwae{vU#PJ_BlINB?ph{FqS)Usoc`uDi zUn1fkU3r61x*8Sr_lb?KZ#MKDz_)yN1%GF%p|!5c9g8-T4)r5iSazKYz_jXFwV#Ba0Al5q|`IAwzI68q$v_XvEO;?p;g70GrSX$(!D=lnU0QKjR+m8*`R;3x2k)mD31! zO9oKL(gfciJa9!#2t>%*u(m42I$P?OL45#LlpnY}s;_&B`(kX&k{6DzhnM^IINW5# z;}dC#s)$L1jS)&U?&{+Cns#j!E;_pArKj%t7cX~&3$dews=gpGrxB`9ejh9)H5#GL z-79FlfqHmjfO5EhpkSF;x2h75XddEic0s$iOiYGfqV*{airzM)iw{c+pPRP7Sb40V zf0B@sX!^=0&<(oOtZis~v9x}-UZ8ia^gKs<%l2SDS7=CE)E95xq84jvi0!o={Chv7 ziG`rw{DkInj<-VC?8Nd@dWcU$RLc+P)(XvNMyDOTwO#AR^%hEr#54cLxl^%bTVyzX z9Tg!{tl?pzj!o8hWZOG(3g?z33+a#~XJ;(f>6$eqhwTplaocr&e(Q#aDtVm_E_kyR zjA47iOS*xtaRCiO?U-mGfuT99oI+5AZE=+Rng_~`w`$>lUcD~Tz?DN}C6#6Wn)HB! zI3pUET50G-l@`xo@Meg~hS({cYD&{(p^M@iMprnMPpz>)c;zFq2w@=WY=ixL0XX@w z65ssen#NsCQ!&b^eP(%DVhU270?)_;@g1tZL{Su~%HY3D82;s4$jwVOxGIN2189(Q zLPLL2sbW!L%qAvE+qt$oU>nA>f|}Hz6|<(2NcR%PEco(^sxBtU&DL>swcg1_2erU> zFW_l+vS{)A2v2f1S~++JGQxpZaF{_{E7W`gnJ(H(Qr-bes<7q-V!x2@OS9|h-rj+} z$wA8~^J3+b`NXG_gkjy)pna5`!(fMa6G&*grL6#z{koc68-#XvrT`AK@<4cegCp1K zpB!4?=6za2Cbl+m&$X`80`|r3=kzAk6x-5yH3g-_!fu%8QUxc8PW+|XXpT(P>GnoV zwYqqyQfx(*((*XJXkg0snvJqG-UUx@$UUWEpz;FtcgD7$@75THGtb7HQJ_j7O*`%} z!aBU_-xszac%XD{R_BKdJ=Y+qSvR7I|~w4$@-L@38@k5R+$Y+7zfM z-HgCl^oe*e8U_BoXw9K`%k(+kLa z!VJ2o@oG)Xov&4oU<+%8a7gRoF zX_uLzwyKh#GFg z|2lUKA8Dl?uSX@)G168yn6LY#24@8`zC zOtUH>4G*D99uA9+swIZnTDB0S_B*IK)}M-PR{&g|!jWKATi(8$OISl5QJO>>OqV#0 zSNrQb{8NKr$Da?^C3uFSID65x5r{q;@&Wy)(9Y!XSvQPC$%|)?ahJdJ?1^}Os5DTrH21m%KF7BTbR@h&Fr*ZLLh*dJGSwqL?6F|k@#>65|Az%sZ|*$x zS%!^|&r{cjY=jCUa_!b;iB`RExg$r_8NGC7tkLvVvAkn%n&D+{@FcvZdOxLy;SW|c z10&6fVPW5a8|~U~cA4scod){yaaLvPq=jUyyh@SA)<=TMQB-k{YBR(njFf@KI!kk= z#A}Gm?^F0NU%soes0{deGTnDQMs&f@1K@TS9-zSJcK?k|{H;>|wNLnKpYYc{;jewd zU;Bi=_6dLO6aLyK{IyT`Kgm8J^1r4kSXwC>V+?&9{gGL7qROuj6z`+00TDnWrY5%t zMP!m<2Fcq%M@ANZ+(i!)2@^}i_!8DHmUkVX$`_yyAvm2I0QH5;Fw5!^v=OUNdudE& z?QWg!>MSHH?%Q#&(A2}jhe!6qhfmHCeWJo^PR<=a!T^^gD8QL`Doo5doUGC1Bn=Wm z2tieUhbVe`pT$^xw*o^EM#N$+WXy%D{oQMS2AY^l6dlC1c-_sJm(NZRfByy?0h|qt zR;Ahr7ZlN<`Hjny1-^#E3s6J!Ci;_xt;YUC$mMqX_qA}qkVa)SBb=czMsQkF0C-Z5 zbH*I9nOR1MLnQiJO<UyxhuHvdfIra)Rk(kC zwGMnAzZ)I1$^K>lV_E=4yD-+hSq9Bm=j8?nQ>?=RR1ApYRAv;_3XZCwe?ctl05&!cv3|uyF3HcEvc)Vr`~Zi7k_P0BQS1hzoRE zHUXLiR@xNFwe*?>HZDHn*ch_J-A)%EB}O)fi=UNSU=M>Fr+w=>!&%lU`h`*gr3~Q9 z7)NuPDEuSiOL|R{ zI~VLAI2X*?vFjCZruq>1)hy>xQ=9Pz>1SC5W?vk~Q($PmBv?QphJ@JN=tH-_V{qN0 z)5uTqt}e1enPOB-cSrBGW^X{>`l{0A?u>|NKfh9#A+ZBrc~#x2uC8PWIQUs6w%Xgoik@gnsd8ZpEQEgGL-(Hc8Z7|iQ2pDSnqlkZ1(??xQgA6;#K zoG|9RT$wcD9J-R3OkSB=sPpaH3Fm9z)9qJV&itZy&Zi(uQ_W3XU@XE&b7J{>gSoIIRWx!E&{yE2;uM^QXsm+Gg3Nd&U<#7!(KTcZ)li7BK$ge-wo;)(lM?B3 zH}R_M7>Fb5)jC-R%Lnj1@?Jc7Gn>L)LYtFXtk8L(1AM>%-Uxm6kyh;(|80Z~03`m1 zVnnf3cy59P#n9QZHZb@AOt`R5NDD@>yvx5yX|^P5SO8^*L(l1gNiNoly=`f61=omo z_6A{T7i^^xbo+f8%zZeQA0o915;f$l9nD|v*EY@U?Jg*8Y~wY}93Sl>%F&6NXHeX2 z-mHCKUDFpo08{tkM*AWc8Y-&`PL>+pMO%c=k>Zo@+)a8N9afm*PRf*&TP}3Tw=G>O>z&+AcCn)EG=PBnPB3Kd8jRc8}voW z7W?Qcgswhr8V&D1DVeNLyB_Nk=P0iS>+M__)F* zE&r>c4r(9!vXVkdG!C!ItfQ|fy?y=&YQ{oj{SS!4sqgdFO#R4C>vTmA_};s+L8@nV zp812FVly)H8TRHgPk+dL2s~rLu^l|)%&v)GX5*EZpRfe5D4qTU)dJ6OZ4Qm%qu->1 zG8l#e${(-=yiMb;-krILx*~T-6V{g7DlzZi_P;pScG%k2!6C z;2Ue}VO=x7diM*+E6;XURZ@D(5yL!gzkbQ8$44A5JKKn6P+BUrC1?Vj5!Nf>!Nsw; zr;7)R$igB$Ure}WUSK+c$XTUi#TwMPRjO}GM>(*&7%ULSwW=_bk!GUIATng0&glG^ zrp<==wAjYbChxA&X%D$gN6c|-g^UDeCljj7bW2dU+fQXA| z9{S>*cTv(>sg`(lv;G*L3$*|T@H>im*VXneH;s_?;h@qD%e?8Fkg$D@$mFRpNkg2^ z)W8pb6;4;7FWNjj)QMKsSX9%GAnA-2Ec-p2sj9=#z8!kH$oMH@;xQO4bg+^&3~MMk zOU(I}Rv(lH`llw9A)_0wdHhNBl)+##~&9k5tXN}T;S5Edxsb>s5ZtyZ|DALSav?Y(6 zt!a>bNZ-m!T&#xm;s@y~x;$<4dWIu=9<=^oHikh4x$lB_vmG)?9sWwCp({Uz^kv6d zBaL~N-xR*-QSr`B7g-&9(t)6%=z+MrOn{X0=y7W7F>JMcbu3(UC2E_3)3W;-V_aP2K2v>}g~i>@6`U#v zi$s4&dKefNhO)d7RZzL6YIp`CQ9p42T)8(D9 za>_3O>*o8mg=WTH^HY&Cnj?E&#a3ox)RL#I&lzU(W)NLL##E8%7J(06vVvm~XV9W` z)#GKwHJwK6V%Egns8d00ki3uK?F;nEd4 ziO&g+=4A;ry2~Ri)j({r>DT?!$)Gjuh+canQX{qUv=Q<-RwGFB4?vtuz(r*znN^di z?*6NK`S3)Gi*$;gdk8wM0c@>pVYx%)WBO@)s#kNG)fW+?*hkgQaMR2ZZFb$5S{LFc zd&;uqK+vtQ@_cY4_(n&a9}yvFEMj}#20H*~WN(y=Y2^J00P?yBkR4?-y#IUg4a|k2 z$KJEwn5lMQ_0uI*D&SndQd~TbmLiGcMX}k{K)0zr@-bg`XUecRDPz`$5-80xnu)m_ z?Y)Z;?}5`dFcw4?IbFKy-S*FIT}Oy&*LKh7S}XJe@Q2ADvq^0E#o_CFO4EVJ2&vEm zq=`NECf8?>E_B?NJ8`*h)vJ`uQt1hr*gjbwfPt9EC+(}4C{nPAs#g_Q!y`*&rlH8> z^zSOSWazspq>ps%Z9ceKv}9S_F}O3_-x`fH>xjYzDu|;JGZ0cx^V(MQ4n}Ds*Vite z6~vC>UzxTtovqT!CygWylzA#5?PkFF_0Y}1eJ~rftGLYt1~$qmA7il}EIdQPf9-0S z6KjUJE(%fe<_1*i(Jtmbr=7J@P@>9w2|BXp2x~#GMYzIDfL$p7iBWKzUK`9$FfOqd zpB}D_L#J$v_yC|s4d1$@wuFVn%FC=^8Bz-?!56zt<3Lq9^d^)=O0A{MMEbbA{Rg3u`Ds=c17siGW1_srH&d+;bDET7!KJ; zeJe13T2eMevyZ`;g&m&J9tpCnNbBgk4`duC3HV-L=ht=P&|&d46^Dv-5svVz?b-x> zymU-DC2pp9a@qkbEyWG;;w}FiwMHd=y>DOrnoB>sho~8sb?&+x34g_OuZ?z_S2&)x zQ}9i8L+3b#a?Ay%XIH-j<9E~#kBG0$uJhPaO5&m0LR>MWuT!t!N*j_$j7uSTzWf=e$fa@E2e;=#SnVj)&PqT?U`;oS5S~fN{ z?Z^S|BSf~3OMxv+Q0H2X)?*0nNe9#LT`*yV4Lix!G?mqi3S=v zb-o8&mwqdyi|I8O6nR18LGiJV`GdFE4tB_fDF+%C+Wj_lYTNAUtqjR1K^*8hQ&jvp zc(}B-XdFXgQj!(^cUi!HuaPq|vFi}Uf|+dhFz~4FX>UbU>y$DJ4={G6To;=k#EUR> z%YFdD1>dloq_yH8Er@YN`#cqqmOZ0|;CJk>o>5E7$3yZDMY{%Y1|n^Te(r-zGl}KQ zIY};R%O4feA@4hzj<^<0-;^`PP%Qgg%IiGG{^s6cvPAcN!scBs9g$_=^r<|Vglsoa zZ@yeVKwrwBWXdiQFeW+&)5yCdlz_{O2@BQSj4NmgIl=QSTVG)Tvl#%RhZXYk96t4) zld~z9{T1KN^FIm({ufpJ|Jr$w|BcoBs()4Ul_aG;tNA>)mc?0(4Y@#K3-ZAJc|87j z(pCmiBxAwdUU+CLDMx(+wU(LO5-M#(B;%9GAfzw`m|xA)deriXzrPCi4F&r(NQE>y zcH(U5@vD#ZW@M(ZrFl%XJ!HS&8mptdFPNSCz5O7rcys;vhBVj-w|gGM>TdG7!Qm#@ znupfF8InQw@XVc1U@fdXV;F9NVuSE@-s#bKhyZ;yy^ZOLn9(k_5d*{e6}1Ac>8y2i zq^(21-3gjnG{D%Lo*Ghm?w2LRIAQD(O3fyII_=ir+R?-Gw-*^}W27pc1%Wxop|Dm` z{_U}zq!#)g577C2UdzK30s3n6DBZPi?c6aHMU;WQ=!I6d&K%SO(^05?eVs{h=EJ)% zqXGm%nwkVq-u=(5+j`Wlt_Uau_VMT3#O1DxSbE=S>o?Rwep$X7^aP4KM>GKWbhHPW zHqk?wne&QBLB}Ww)eeP}gA&?t^w^yVw(V;~{U>ppV2aF5q{nJJ7nJGiIk4H?uy@a? zS?3rnh~Nthnf*b?5H4MiO)-%v?(|)_f$BcPKtY3%_~jhsIS$Atsr#>laySrYXtCm? zJB}{|u?p>A29v$@&@D&y+;>U+s9D&zrZNr=WvUvw*@`sK|F8hh5~Q>sVRkSOT3tXe zVW0DRrjmoIF75pv83{q+{>z|~&p@$Y>A0Uyll=l(^ItGAHu#*FVMeX_nUo?WQd{pW zp2P`1o8rze>v)5cb!%}?OJZ4Y?Vz1Q!|{Cggw}7X=w*otROc0s409~ZtiSb5tTUS@ zkjKA;f@K(9h(@%LE;a%MK#ejozq=j9+#C2+$plO8+}r0WMawa-*G)g zJ7LJfS2a?^tT!HKS2v}pdJvec2_*1mKdM4jBVP7XKIgh~9}+&4JZSj+8{_z^BKWH! z_^TrLt0MTTBKWH!_^TrLt0MTTBKWH!_&-TSAo4F2L6W4Ek}~$7&(S7V%%l_-jUs2z zw;E8)c_BS{VmYULj2T2Wk-%I@P%JhiB4{i;28NlWK}Ujq=Kf;@v|xWkf?pJBHF|=D zC@|)dcyL)u9WIw=*ytTJXfPJBJ`N7DlPyo3AGcfr6a)FpQKD9ZU2pPG_ERfK0eDsD z>C2_iwF6EaeL?Xnoi-0_#URinA42qolfbH#H@k;lS-^HQUWCKacHGf>mSSdQb+YL59u-p$i7CY@LJ98tzNlS@EoKkOS*5fg7N3d-b!Lhxq z5q=skJXel!jSSM=mJ&bShV(^>s(fo1&BJrzxibBa3kbun#PlX#GMBE7Z?5uC8bOHV zzC#6PyQ&x8rW&7d#?B|XyBO<@E?OVz%Qc|O(EPOfr@{Xldv5_%SF-ev9)eqt;KAJq zPS8Mb4ek(vySux)ySoK<3GNWw-Q6AXKbg66lbN~m-FyG*d+V*Y-mv$9vzzMb?y6r` z_ujp$x>ncv@L+V%+*ZxuQ*Ga?6?cet?l-3iD!e#3CKI9i_%ZoAgw;_?>H(fppVbCj;aUi75UHqP2Ux6I!+y6%a) zim^|4py_>Rd^ukGAP@pLVa+HZNV;|jW?Hx{X$L-tS zSa6!S;+%pE0&XoIibv&(yXhdl)oZxdNPUHBu1Dt**TOKlD>s;52S9f@ONVoZ zLX${PW4VJm=VMOJGXP&fCdCS;WQ4VNj2HgfFsyA#r(zdJl1dbc)68S~b8KZ&CV~m*?Mq;9%&(M<^+)EqWdxR5GG9=C& z5ahx9J|iZnO0QbjU0?npt(Ig?3XOj~DRWO49NAZHRW!X~fcS0syYfQRQStt;iR|vD zG`Z+^+{7Ok!7f@1&R26Q=(q%ilkzUpdK?Jjg80vJI-p$++w}(`_h)mK6YE;iM?+)X zKw#SC*goF4&icv(g=;!Qx#mNFA-WqXZ*S$=o*|&+emYos=Y-0NkzVA~G83erKRP^K z_-19x;;nnS=N)0aY8f~pxXe2mM1)b!cKDW>j;H39Z&F~4#O#RBZG@NO2(Xx(;#0@4wk9$hXkt)O^_CInzcpEB?8oeud`!Z5^o;$kR_pvEH z=?+=rNzAasM3>)qMJS7VX%!Y{fc@4%j!iIcAw6z&OQ>sid8ISDJ8$(({nv^;*{s2S z5_~XM?(PB>mlK<(+TsN{ZCWYHnk#S>jBb;BbmVIU8 zU>92tAI5tr;ieZk)QpatuG>`z`5`BQ_jYBVW-5Df)^18}YP7#y1|_s#F{znOCPOQ> zR$9H=tLr8vVBAZ?<>)h(=ej_VY5mvZUBw&h^7pthyWu1B?PqMa0(q~&zt+g0@X6&a z?#szP`3kheQ`E?YXf{xdFOe0N?r=I2_2g!!Xkn;+ma)^LKSFiOcAES0(FAGZsgw@) zzP{xxJL{L*OPKTcFLX;^o*K~H%_$~(FU8v&j^2|Ta zJHIqNCZ>*}ge5s@6+#^B0;*b1hErAm;}k&e<4dAU1XF z7ThbQ?#}6G=_BBdkLSuih}E1j%)=4J=!ZMU^%M zvMc7oj76GbpiIfLP|7a}mUhqcJ8xlY#Ayzg0^9F)F|lwUH-HIvHX$j1!P zDjiS)H>2o9%MD&Kqq5|oQYPwy8H&}}w}7oO8Sct;sLf@?K**Er?uh`8qUF+boX*!0 zD7q|!Bn*q);G-DU+qSB24x^#uH8Zi#HW6mU-G>p>EQ(%Ep%ypHVPPrneNmsF{@i;^EiyfP#)l@hduwK1I zE}OG7&+8#|Y09^1&HWfYRBXcg0MSNS(t0!c1?PRmd>n##ko#uKSsU0bosQv=Zbk1| z;ef7m*oS7C)=PiDi~-SYK`Iqx zTId&Or1@X=t#MaZOS_4R-juaI7^-+e-%j==Eru@X&<6pX8xdF|)Odwi%4y`T(D{%C z*qj^e;$p~sas5k+Xa-HAjuwNcpw*Mzopa;j##2~jlB6X@Qyb-7&R8wwX^!-p+^Lg@ zlo1w=?OfXjB@H3ZYd@r~zj6|Spt?@fUn=8SG~_u;J;YKU$h=ue^N{l=X3K~EfTfl^ zpEHR2*^;8t?7lzmO6OybGsxR~P*FI%hoORds0PspVbbk|&30pOmuwC?k~QCIQsuBM&SLUHLUm!T1wh>ckjXQN00gaJzq z_0J^uwsm(?#}fq`dV=&4!jZU&2!uHsXVj2laWIw?Ea>|ZzAk2dhPo7u(|Jd23)fOH zKrJprj}~DIabLl)!4msBYm6dO`FEp`h+zD&6}mjn2uYhrBy8yl<2Hr!MAwqiCP1eQ@E)+ zdMYB>bZ;M6(!1-QWh2kUJM?NoLmFTzhzo^rV}dUmOQ@(PLR3k#WEm-!@)aAURW8fg zEPW{w5_T7zgVsu^=xAbx`)SC=2T;5}nx5j#Ux{XS7A~IXvXm{QcS6-*&{mT@I^$Z* z3TkCwzO|puc{8DXr4HWlVfN0Z&7&CBGAnb?xlFUza`==kZ0@@HBOzRvN$z1+`lJi7 z6Qb0n#3N*?gl{7jx4?~+K+%E$a9e2*3fvb}kqAZKy^n$GV31q>v4GF#8JsIxh46*> z$S`s=nwZzQpi3IdJz`Rg3$Hgg%PmEOL9|5L))a4GrXHrT^WjhLvJ~v$+*RgYZd4Ml zops_6h}uG_0E0n+9m?>6vl3n_@^MlnEvCfW(D}wFsAb}m&pt0n+Mhfs&nZsD(NG{O z)S|^B+anRFe<53?Hnu!uUXf&$%u_=pi&}UZl+~XXpMF=_F{e1bwGk6YPfQ#T75Pge28Mc#io+@7B7lbOZZ^}2?V8&CAG?rTSr#t@r8s6Op=>ZNPqm?O&! zTETJn8-!HjYg5sy;b3JhXgm7Fe8r9$V3YvwE*{fG@^*%|WyrMeY40aDiY?4#?2-BG z9gfgYr%IGRc!l$86p`=?yPx$|c`R{$dQ-=19KNA^ojsl``0#4}<>DHY0tX0cE?MR* zyvuC3Tl0OC&zdE<2~&VcZbgRhyB95{LZRpThE_{W>&h_{ujq$UJGwl;wPOn^*}%6Q_PwJgjeMcgRurMkeNE08G7nbIo{#7+yAgbLf1vgAUf_ zKIraQNRgD3t<;g(v%62S0*|2fWT3DAsw1QoDE+`Wo+bt9;d?$))bJ;0)|n?Em0?(> zsWg3OQ9_4#wxX!yCZnsWc0~erE^)ze=OeF@W8IdHOg-g>sBAs8EH)bl;s7o~MYn<2h zOtJ|nZrjqCb4UcOEA)#mF*0SA_y;P#JD0e3jn#!UB4g+uOx-DeF|e0W(uMRZUjMOP z3C9`6Kr6$ZJ@8Hjg+@co2yame0qpa+_-->}KQFMt(^0I?x@iY! zykhIn;Z+$s?gp6D4u3)4HSWsFDd=aLW2N6|U6>y&!Ncsbyxk2A)uPF)_91#l9hm`~ zVWVEti+P4^&8gW&7qg=7cKyux_rWCoua z`nbh$F(+w}sj$#gbnhc<(0j7IdD`x7FScDmGj`>yVz&AKHXB5nS4f)plbOLUX@lwm zluQMX4YZRLqx1TQH@3OMzP*+)G>*W%{Q}&uy7hu*<*h$7!D*YNAu;6$7p8zDtL2XC zHcPCA$?}rQT=5!Pml7@0>7(k`)MY|9xaGr@x+)ipX#aF;NHKlqB+h^nW23MHlDyTx zM;g-e=|QP*D)fSAXhnDC1Dkyl*66Z+KqOq@z6;ypC}<^Qc;!NU0E@~HuZk(hv*`u5 z;W5&kdbD@1$V*&2(Q}tqrI%>L0$)()`RxseMl6CtlIf`$q<1&1vlTyEtMDhYDp;SQ z4j>A?<`{+$HQn!E(o%iNS-~x?A%*Wm&A!5Q&XYPc&@l?S3{wr|ulEKF8QQ_$p8!0J zkbx2YTcY$EZEzy8w6jlTyL#968T~OOC-_eDps|*66Qm`1o&}qp?)Wg_(vVcO?HL4R zg*dL|l0AHt@agHi(io3V8W>?PEegJMWt|kdYmY|nPhmQWmcQOGh|Im%Kn5?o1(*kX zxlMiV`{G(8CXoD#M)8-5Y3X7cahVozZYB~(wHSEeBry3Ztpl_}v@xUd7xI`tf$jojPjy2?4cZm(!U6u2IuFftWN8lVI{_nUsKyYWf@DMj@L%Z$@B<7u041XeK>`4!Hvkkpv97m(SsK6_5k);=z~?$Z z`v@XzB>)Nz@J2eomjVFh4EWebMC1VQNd%w>o-1;mQI#R?PyzrBiItoU#BT*WRiS7s zAr%#AamhzS(5X;Zv|eZ>y`$}LOvGgHWJ35m3i{ts(EpBt{&y7gzoVf49R>aGDCmDj zLH|1n`fpp|!Tq)}tQw%M2;2&9WxlRzRCgqCp)fkp(5SG2Zyp~hl;y(}Z>ey81iBa~ zO>4EBs4HSHcTDSThPkg79k@B27u=UD;ld9U75MDABH9L|^r@ShI<$#z8Fwm2=kztF zcREvu87X)*8$VV}`widdKYd%dS;#7Ki5fhGrn6re?7v%j&%0ftBZ)Y`diECPMIr6i z8P;5Fbdeg*j*i4>P!DBJbea{3ch@SLX(|3*F3MEfB%+o0;Ji4V*a4`7!8V6@82h7W z%jP&Q+@Rn*H-dMvZrztXyoQXso4XQ}Gl&g%KY+6bRa@^WeLxc}Og(teD@&LSZa4S5 z{8lMUwGF1N=UK!%sK=T~MWH5&6+lhc?06|UnH*H9=wFrsp#dyD6%;Yj)z_TedXNz5 zOY`F%52IddE-GkdyATEAPQyJHW8JflWLWXAo|L(oog!rFt=N>*Q>XXDg7-6rRGam) z`5{)J{qQ^fH#}|b@5S_z-hDJ^*s0zR?}Xf{pB`IWucviaa||Dq8essr%$AscBG(9? zkTpztI`7WyS+IvWGM0shXM54WN3?O~jnH3*;0jX5?x#vg=qXjo*5gnr$v9{T=SSRc zmzl>Qb!^=DT3VD?Y9TBjDv@ceA;* zpE`jq99iTrAy~f7-_Z(<3PkS3T;DcPE$#Lh<+9e?J1keoviIz2aYc1q*KyFPl`cH% znMYoS(Qx&{uVM>BWW%)M^0q@T@%oB8OWV++L?(oj5b4v}h*0Kx{K5jF&rDV4qTJoi zEDdkz0V5ob4Fcw*w0u>*_pI0WHrAsZ?)02ia?xuSg2jl)$Wk4lw?4xUlPq^Pp&X#w zzQ73SL<|?Jy(OaIx{2B9v`Vgsh5q@<8_`tTNp-VDV%Ib)^|b*5U`A*O5tX;pYdFDz z!Hd>k@NNC^(U-nVTO8YuZbo6~FL4BL@J!Y4HJ_kb>_ALQvzKs${qSjJiaa+mDGkb$ zlB3?zD`zDi<&4QdtK!owW-;e#oC-g4;?a-fn5n8?W0Ghrfy%!H3xaqmuS6NE@Rq zfcYiqXoJle;b8L8mb?9Uo#&TU+WTYGlQcuYJ>&Q$4dWVS{sq>tRQT$uKtWStv3GFD zKEg_ZqT0d@eua|ja{2X@4V`m?iuNPs2yQp=SGUw-pyMsn$nD>{D@Hk4U+3_!?H(?& zo?MfQ`eC65$yalFD&%XKV3kg1GKi4L$MHNyAdIxGuuUx94=r=?%)-;nhwNokVxU#t+@&5%u^CiFJtI5Rz}ZVC_dbc7jCbnzeC>* zxd!`;*LkH80y+{90^BbSEPL5baAh-F5;N>YsNjxkeQR=iD&MgIt22~|kkm^Z`-inh zdjNTX1qtQppvmv<^1omF{qsLbAc3P9-fs4G|5aKV$*Hdfzdmd7rqvoAq_`zGeo*$_hhpXAy)yTj8|KwE=~udORdv1Y1zh=GhSqzLa#rXtp=%D zf;WIlanwV*wHI5yYj@d&+O*W43I#gM1(rnBc5#RH_esi;haC9}Ha9ixbdnuOc5V(aMx zum24sZpt2w%1WG8MDCi;b?H$ADiuEJ5)VUq3E={x3tpMJ?0zDwV^q(j}1o$0ybnL)p*U65cOYERa{&@b8l4~DeUMf%ZZQ( z^@4lfxcO&00`sAE`j6>%djUnzLrFyoL9i;KLO zmQd+v^Q*{_^K%Xi#(2i;V_=&Vx`I`+ot$3Ewj|{57JhhnA1uco-Ss%%zN%GI?_0?r z1m9IDPrJ+zLeK()cC1eo|%FIz-t*L4(=L%tP zm3If*mHYd0dVA)5I|@4}BhZLG;WMt6r73ujXMNob<%_LgDjP(G=9Vk2G^Xp|Iq>f= z_wEc>7UWe$21;rTyS0u99-|kXlVjsXvB7KE!oG5tY`Q}olqRaLR#N)Lsx%K&8u#g@ z(9~UYG=}wp2UigF@!h6_l+kX8TbhGTU$-=ukHqv1nb5?3RV9z;k1%qo$kZ1eeQFGv ze7lFNg zG%l{soTBp@EtGpkoGZ0-i6ReQ`U!@WVc~Rd3Y`}*Gkg-|MBDQ8=R_2kDQjTg0V9yB z+p7~rE>zS$Gcga_gu`5kvD>a2w$(lqm%;ZRn=lw@e;&*+(Bp}o3d=M;CB`z2u3vIT zur+#kz|rCkQs%K{vagNXFS;1_dvbhgSqPj)t&^-jXO9}2<~B;?k>>d9ShT;S zgJZm*u4-+~N+a9T?3T-&B9qm=^s!`RGEOgBx&JkB#&N0U3+8wN>vOWLx4#t8%`2?!)|*(eyf58?}#u5ye;QLS?in_VZ~Gs>)~xJZN_E+ui4 zCO5`Oremi!Jd;&U`hocKQF1@IQa>(Fy|e*+$Mow7sfy1ITDW#=00(;@ABRa~gYezK z9Tl#GoENfy9dr<_b#dLn{q3NR)$FD}0@Ks2W41@K1EKl7={!auUURRjHSK(M(U;fP zCtOVHs`btJIMuZf^Vh?2$1g-<$qvg(yu>2ql1)yMSxv?f#AX`tU*s)A#)244mw>aw zD^g6`Y_`49V<|MNr)=xIVy;VkIL%{wa}!PfSn{<*>>J><;#-A+vF zvF}mOYb0xbze6fjA?rOn_3$LNh#S^C16UDyZS`6e7v@cKwIHjYj<8tZs?)0T0gJhs zWh##u(wUkQE$5uYr>fAzlkT;)>qm)ZnD_>4($^)nZ~0`4T32p+Jz? zUh%LdBq^@jR%l6C<4_oe$;(#~CZR*ve-ymP+mVN5dF)8rnm5t1lW^$FNsCH$j%#8fCiy02*g{fJ#etCvu)dBWA zkyFQqM`F#1%CnYdDlNFnXA|vq*15BpK;NesBgx@euAaHA=MSfQhlP>0M=dRbGp4%@ z=Q???%N$N2Ul$V+JqluMKvmbTp_|ye-8v>);=kUBLmzd9fOdv5^sHs!B zYdr`rm+GYsv%O=c?4Q>3EZ@W?gX~`yW;jj!6ebY+A_7X6d3Nm332CG3_@GvKk?w6> z#qmODN=hj^OM&5=)}aS`uQ;(_YSEg>D%e0XGP^jzh&QHlp@z~bHq!+2wP$&#`K*2W zz~D4BH#7s%sYA%Q$XR*(59+c5@PM&@oFEq&Z$aN#^u6@xj_a8hz3D2|s6idWAPZjy zz0c}d6q#uompti73XAOhI;P?UQ@!!17XL_ z&5EK6#|@^aP@kWu60OXLbb8$~h2-I;YSbpm8O)_@&92kiRs7BapuIkz$s)PFh#qn=|E~+-a>N@8H)1!t_k_+~hI&FJrHr2|8}+k!bQpDh>#I&3WXS`i$PqyjLVGCBG=d`q)$=lI;%9nKw|w+&rM)Pr zhS-$Zqde*Dtqyo~vbyvNM=`CA6%`P^N%{L^kxEV>y=L9SA3)kn*=04_>aKTOjg!By zw6;PHI`_JUCYP#)5})nHBcR_+Hc(r#U>rCcnc@qZu7hX?0^~n%1B_?+7C%Ob2I8@| z)Hm2k%G#O-M(^^wznk1Oo=S(;H~9ugdgFGa)r~nh64y1$swDR`U#6f%{gv5HEHKPr z88x|~WUQ_?|JFF&y6W)Qbvo;*`@q>zm(+ei>ntvG$=n#*^x=z<`zv*7JJ;AmBi{nD zQBeYGTRV4~WX76lW|MD~VXlF5I=iLM{#&<3xt87I?zjlMPm!!J8+e}c0(R`Pl=NGH0kevS2RBBw zlH_GiovV%-^5B_OItsNhqBMEb+7Vs|7w|@k<^$CawmT2;W@$TOnl+oZw@*k1O?38t z{rxrGYI8K$-+qh#Q;0aAlO~%D@>R@rF8PZfZK9=E(4a`}kww;T1!gKyh!EQHS zEzL8JIqa|NC=7haqlTLsTcNFWW)|?w88C`x7g#X`{NgLx4;DXB=0OqCyraUh$D*Aw zx-~9b;IJu`prE8{>hw_zQo5}gzB#^wJ#~vNb*b5T$fb0j`>Oo~o!?Rj`MM_)ttKl7 zCLPDAI*QwFb6J16^5gHs2NdN?kTQ>*-^Q_DMl+WfEYQuK5|~Oq*$PMtTfb;IJ=x4L zQ+1vv$0YiP5H9`)&qdc>IVTC%vUKL76Pl}653z3I8^D+4G{1tSbMHva2~NAuHt+=9 zCw>E{Znq-rx>P&9b;%Phommgkb+4~8z`K)-slUy=AkH=7#BSB}pS-Q@m{VPRvZhFT z_7#}inT+J!M{dIB0RvSETSkg2*&2RUYw0R8I~HZJ^;*-6%&?|#&|wX^`Bre+RnzTfqpdv8E6=dnN;RO_&K9P zJ(#7o&;b3oNT8aYw;)5U1~Ft&0E5@hryQz#OkB37F7v|V*mis5?bFUkYCqwE&1#ds z^@w}xw})>R>Vei_-*C25gSW!=gF?o$*EXFFCJ+gi??NkkrMEPR$0bQ*O{XWA;C1AW zy@w6G8}m9?*U*JR`7hmAk(FK0j!~?6KZ3CY1+O)HmW)wOBH)7v0c(n8dl{eeBATCo z5J~jVjKhb)^0_F_;*DcPIVB!lk=kyl4atDA`+Qf!J!)(J3B{f{=kbA@0a>;+#EbWz z@@!MG=d6oToqF8DAMCK38T||UCgj+d!GklQ;@-n3bW$?)_-TjK zAW=*AxHHFzu0ig@yqV9vdgWX-p~rij7>x4njzW(mXW!BnRj;|_2HP$;P;ON(<&4%* z-&@>yC}a3O%LcMCJQbkO{Lxs9iLR4}2R42o`0>34(-NDnF!f8B^A8(~M$c6fSo+=* ztskwsdkMPu5p<$kH3>mZ*g;R#ggXsZScpZkDsO3IvUj%v$VMn*&$KCg+K13cc@En| zC7cyd;G=M8B1jSeAq9RGg!tV@*v;NpCA&>?X->EKEVeJs*yBm38?{3;(^%e~zD@Hx zOTg6r>O(jX(y|vO6qDl}fD%{jdb@zmuh7}{_QJutO>q+&w=#SxHDt0rDfJSTA2H!& z&}**phob?zHxY<}pGRuYO{7M?KNu)UH{P2Pg#Q#deYsiEP`j2f89fsr#_|Clj;-R$ zXx+6Tp>zl$Y85`xb|0!dQYBPkM_1{V)txt$?hJOf5aN~TzDDDN)tcK4+v`kgJgsQ_ z#fBOx=r4kwF~UhJVX^~~K;4Ndus&l5$7;t=`B~^Jdgw*u4ct+*11MMw`|lq4X};G& zL_m_ijPIit;P3Y`{`S`Y+gtx{Z~ec$_5b$P|Jz&tZ*Tp-z4ib0*8l&Kw|>HpcQWMV zF?!t}4qHZDX~Uw~9aCg%Agbf3eFyNxlCpZ8`r=_I3*reQvS4HAV&}kNAmG3Y$6ioi zF;jj*?j&YJOdh%%VzTDkP#e*`Za7+)Gd{u{Nn1}|F(7X z+uLe)Yh`H^yF;wSBJu${a0pRr-=>@9YZ)xWZ_r=D)V)>T2c44!RU)l6mHQcaycBM4 z^IG+_zpm*J22u5xDCfQ~XcPcj*!co7WJChtlQims7L4nFeG4`Vk%Ru0X{>qKVPX1t z^;pwr44e~^^L5F}w|uGEM)#*CsUw#IYl7wz(?QNE^P7?C^#|^taeUY3qZXJ`r&nwh zIuGyHlnB91Af~B;qF$W3@*Jq>O3_~ICYoDH%;3T$DKV_KjrWp18hov5CFonxk2&Cr8Ntoxz*fu5 zkebQ{!;c2_5*t$zBpks1$x@-TIj(gXcRDwYL_6{gpQsNan;DKvfUi9JE9nTY3K4-x z$}MFHS=VAc-1NjDI9JEr>{lKJ(;or#%-Eq7T1!SOB_dy!BKhUtLs6W$2JS#pG6!4b z1|iFQR!5()wZv&^y$Own^q~9*diAk38QM&-=8fx2etkuGd_WnI4_vK__+Xw4BlH2g zYy+WSLkF`MJGs2kY|T8%2M|#Y)J;#o<_li(9J9US{g0+bZ*TE+Ko_q#)#}3Xj8H-t zVv9uV6(RS|s2jXI^Lz{B2hl;u0ClQvvd}HXakgL4!dcq6P7!_hV8F9ObmwfU$wb2S z69-Ut_f0nPBZG<8wM4rg=N!Ym@$7W7T5gy9>ugA0shk8IgVS>nyrGn@oN&xSN=@|o za`zQ_KH5@{j8>b2mH=E&-?}ETe@LV~nXH~N+Be4D#-0>aVj_Z%(5K5%4Fv_p8X`M! zke`r!FK}>D9ClC4ZB%k&kiGkHXl+9XAr;0amZrGyvUymHW1bun0?=P;$2r>h3OA|f zY+;tfDUK%d*fB&eFF=SWhm7>A4_9pRfE!wK8;9moz=yul5UJEt!LCb<9 z78w}q8B_jDWATw~Xk$v$>|KeF@Z-04S7U+il*&!)OLyuGPet}_()O25Jh(Kot)~~BCl76D?2J~j47dbn!C41d*uA+1G301F zeW>ShJ9Wkbrpa>ZLK9c{Ee6dHDeyK1G*&fCH>U`)@wg=ll*uJ3rF1AT zr3U<@dASkVMR_U}I?nD)6_5Tg6g-7LvS+X`6E)nG zJ;+eaT=F0W_tx!2_QA^pSl1f93{S_qyX-Y@t4Ex~&zH|)zVRMQ7gr|d52ZihXPb@p zoKbi~$8_Hf^=vlusu-kUMGm*j;X%)f2Lg~|`l&9c_}#$IciZs53kVPw0Ei3dJ8%@p zby#-zED#4k41(Kts{eO>eDM$=acpg&0@UpQh5%iFJ>WgS7GMpq0hj|!f!9_5UVs@u z2OtYfwE!L_zff5LDfj@6Kw3i}<@dk;NgiMe!GbW6A#v#Gp`w+4D^ChohR!b~S$`J+ zn4dfvB#yE&R0zm#6tVy1pbnt@iK7UBA3zPH|DN9#*lKd%@pFlP&MOa;%6IL2 z0Ls@8pbg|r36KWn)%rzRzv_(=$b}w21LSQ8EK&QPvZMge0n^_A4+>ze-@g6Y0{mZU z@Uy&N0D?f7NC71NO?zMfLch?-1M7qj#E$M@d& zD+2I=a{F=oIq#n}|FeevNDl){ngHB0rjg3)TKF)m*bym`LAgHbG`km+<&F1 z_drejsL6MWX$|bBzfW}p{CE2Lz0Ci+ynpP`AAmKo`llZLJG@u}ZJ8NRv)^sMHo*8l zMB5MB@!bj=0y)?M>!1U)R6nf3@8$EW)V|xYA1D?9%1rVX6ygI!fwtuP^`Fs*5B$&f z^nbk;=Wjp8%kO>Y$JLLq?q}*hfB)mGwa0t|qN{yy*dj%faW^!?u>`}Z>+YaoyBxc-6RpE>@(?;mr0 zN96C*exUbf4*#0&M^E}u?!VLOZ*}=S_a9e3%Kvwq{;0d}68L#c`Tb1gk68M3rt`;C zd|;1a05Jb!4&tMW4vAxE2o>SzB=sejeqe#rQ*G4`)|(eLy9xcaO9^6&NbN2&je>>vDp!}M=G=3m?De^=W7 zb9nnb+J3J0U-e*o;P@g7?4^>x{{DRyE(shl#es*9Dh4Eux;j(<_;0h3e}^+=pk?@u z!T*%*{~lYvmGoDr`b|6knGO3_`1&gjKP37y(*B*k|2%5^{~cYx`_Np}{rbU>gv)KHs*z*a+^BpqQ%@SeKLNrnOsDO@u#* zk;~c-iVSt;P34`)qb9?C_-t-b4mFa_W+P8x*0eEU zXXzD9r>-qoNpUIZV{FgW1ep2keN@`OMX}pqKa4v_tYx6sJDF_YE5$A2OfaTSuLh-b zi;Lm|2c*RtT7{p)j!qa8^%3ehFt~Omo}(KK#)Vn9e5n_y9xKh)oESqgS0%5!BR+rw zes?0#r9JE81bYaQA%8BNND@u<^Dt4->!KNVbRfPTrSu(Wsz~d-nyvoXw&H}bsGcMBF8iut!$*FtIRpe zZe)aAcQ@WZDs@aaSg_pup7qpj0J@d7Y{#?)ktsu!V@-CWx}t@LUxZ>I*_;fX4idEJ zf<_`PMma5OPOWp~=}E#qAh)|{{`KqNbP2xndRg3@*$3NES8lTYWesz?R5=kO>;@c( zy02F6PCsC~*7zRFbLVN+C~q1vZfze}kn_M#C!1}ex(Ji0Gncek6=%O`$y?5%<)glx zfO4S-3`uWi7mY#a68Q`{rNFF;*-Ktrn>agFv90cskIHCu6m18o#% zGsZ;Ra26_K$gw^_A+!^HF-jtqpp(f z#_GW#6PglDCbN-8{N72Jf_q?^P7TY7p!(4**T2l?-B03ufqkE_3~6|0NI^qaM@72+ zsn!g_dqpvC9(EyC@j~~yfbQ@cAS}17W@gFU`ni~lRegY>?3uSycOTKbJO>!^GOm|#!@#sTrOGW=)OJz#DKEynB$c!l$_bxOjaPKL{qUZIFo%voWQ+B^&fo`R4 zrl36$76LtFIh5iD%GRSn7zk1sBo&1Whbd!$5*>ksbhJvCR;op$-9i^ft<;?JpsB_+ zIEA%X6xMNH<*#O3l#{Mkm)zJX#S-anZ=lH4#;JS1Dk#q`?1_Vu)vz#D5W_0%0$ds}?T^uAEi1mZxP4bt+Pi<9+$<-D{hGv z6=kw;irsRm{1fBcoFg*|>k(CP2vzrJ+1BfE7wiEb>t)O{K{3j&BJt|zWHs%M)%U!s z*u>+w-GgOf{Fdt1U&xlPC@@x-2xW(38jX2|uFN(2d;#SMqGn$MX`oL*c$0ku2$r{v zP%YH?EN_=~!>tuUt*99zEQ%~8j7~O5No{Nu_wuWgj_>)x24ke7Vdpw~B0I?)?C$k~ zXstg)y)ngOz)7U`_?x>(^W@o~7?Utqs%X>Nv_b9n-j%LXXn2-c<-F{Qa2k-4;KYV~}C@cc=SBwFH2*yOZgvOrEV(>}SL zfhp_?S#xb-uKLx!C}^#j=y8Wo6z~?W%ySyeG7)pH-oT#to26uxLJ#hjE|ztKQ-O-LfaDXI~q1* znUO9o&k5*V7fTEr@q6RI*fi*rpd|*Xx&8VeqH?T8 zNi{611&(Hed{<6clR;($O5|cGq*>R5?JkC(fm#c#BUmRUHcz{l%%g$8ka%j!h{CX9 z$NboOs7`xj_o_R8xWv?duP}aGD6idhiLYVsTu7lpmR&?W=<^TjLf_{|pWQ;B2}>^P zKj|TLsqngkAx`5Z|HkY`=SF&bGCyZp46$ul_O?#(FewLC%5+x4=#wowch}W zgpbbojr#zp4=`V;MDT$Tva#a>NZIIRD$43f%fA6AaJiXt@(8nseC~-U%!qR81HlSm zMEx6c7R2&Bv5N{GT})UEtU5{cxsbyu<*_sh6L7jH(DcC(M&=sR-hTZB>>h*~&`C`Qs zERSHMoBmJ&6(4&nwutRu7!-95f}mdsPbFo^c$|$w4l2Pr6p(+Mq{rxDuiYtcCu?5v zwLcGvG6U^1`mSxEp79j6Pk+-&|7b+!3Hu$-(sY)xz$v}~Y)rRE_k`BrVj`e-bXA&X zsOGg*tYs!TpVGp;k0s{{Y6?GIzi;Uaa6c`iXmPZ~QMR}4Bqry`Y!*4#N3X3bWYXA= z^HDyNACzw6vF=-Pl-pQqTQIwEeCDD!6~>mZuWFprtrVy7$HMGUDv!i0t?#o3M`jTR zKI9#=srH*>i}lGBt=KsBmLZbysY->J`Bd{sS!$obD$Nkh(oAr1Rlw1=AYiOxMYJCa zV)8?<+TMx9MyWZ>RCvwck@(Sl6ZdYZ3fAq>OjutV!J;#*px=Gt!uxg--fq|u=SJ0{ zYZmkkElCOKm<9f0#+Xkrbr|U%=+Imm7QT|?XXy!XkebN7(#81t2|}UCO{Pu;9%f8p;cn6L3{A&KNH_%LxEz=mTsiX%$dwx$AxR*^yP*MaPY7sNUti{RPsl2)v)B zDjGQCUkwH0HOmDcnlYNrxznWf3@J8Et{Do=m_=XD;OcM`MX^7)w$ydEHlp)r=_J45 zR#$)(DB*&cR2ctSlIzTr48aBDm_CL*))w}RN26rY?C?D8EO*eM{*_+xs-0%bPXquhn(M8OIW zKI|w)6wzo`5tH81$JMg6@!S%%Tx|6wFr*v__a@LskLBl(XZDP%HMA^HlI6|M$DUG! zRE4~9f6~CyiyFKwFBs^|qizm%;A)~c3_1hG{!gAiWF^DTjk#75LiRC8t2)EQGIF#g z!g|nxS0%7KidoEOUO=tO#J+oK#93_B?&~Euz2-1x7+LXCWi=?n2f8DvnBHwt3_E&I zjq!0+2%pu8wVG*AH?|2Vfvq=ZDoBe|-Gz9cpt{GjiwWZy$eU^^Zd+`%$eapwb*s(l}FfPUDuB_SI}iB=s|hq~JH-&Qp(i|1Kb(^0AC%DI7jofCYp zU!FD!W6HQYcO38(PESVwh65k)ffaH}ji#_`2R(8w#5R8;j>aZcA~f`o_pG#_qW2R` zMQ2|utEHJl+oD#SO5Yb5IUfppGg0I+d>Udktd{&m+zCx&amu{Kw+7F~n>{bBnHyQH zdtdXAYHKfjK%mtgq~HVDSOB}4wZPuDF%4;J(0X8Vv0Z|ZjaqfPOOe0GiOy56@-(p#8j86l)oZ=pO-=k1Mw8m0X<(v4rH(_yeJ&nl~wAume4eN1H8O7G}&6Ipom9=wr-P%^N zf*pw!7q9Gwy4bX;*MUx;Ic&6e{_YbW6kqTOi#DTb;4PBd&d&5*KXS`7=908&k`n3? zNwzl^zDYh2Bt7Y32X*iAzLmehwS{PkdeE)Vn$0g8QeAKk$79Cnqw{48Ukq!r-NXYY zJ~+ZsxX3&~=B%tv!j{@zb2nA>FaWO3P^yH*aE; zk1hRudHb`d3^VbJkwdLAQ{?;zKV`6$uIqhD`qBk(6Z4=Od!(APNJ0VOdJ!jCk(h^C zok9;iFNG9|K2IuOg>>*?=t7(3yaa*5!FTm4LH@F%I@ljo`SFMHVD_#A>JxhD zLxM^4x7L`62vyn|^P|%IJh3MgWL_OHLq=7RXYDLp0`Dy|9)d*TlVdjg4k(4m9`HdQ zDQTz>1xm+KDF^hQ1kL3eFMJ5d0oIf(Wm9ergy&dKBB^rc-h;Dg zN_Wn_^GNM-0U`bjbm3=uEhnu_x3c@qXowV2>RRW& z0T>X79*sjU`F5}SamZV31{F8Li$QOZhM6x`EY?Otx$K;I zUadI0Ghhd7nbq;5*ISxap2cGwHMpX9kMmvySspsjhw~5kqCqfD~5I7H$ytpVIX0h9BE?#+tZ!k`e^2Ezy(*3l?j)r(*NI~_| zIiRxtws=wyNeW4c(>89fVnB);%&;xDrKNdx@h&R4oGdPCLl|o=V(-1S*e+sBkTNHc z6U7uA;pr30ojM*`m--e(mTv`iw})@A^AkZ$!@xBlcp)g<*E$Pl{KOqJo#lA;x#o=8 zRf@vvr$<6Co>yL%QmGy5F=9~zX#=A#I`d#j;A^2yDIpJ;5hBzqSRChSo<(_B6fJLX zrEgMIVy~wofPq?7^%_Xpa`P_C@A~WVwBJbTe_C%E85MoOPFQ+H40 ze_B?dWEx?f_A$#ABtF>@M0i#*V5J7}XVx zjRs~jvu_4=*LTb!X+YnJE|pQ%yHkMcg3)-3MQ!TKKt>tSfZ~Ij0O7DOpY8MhIMjhu zwV?*?G2HF6-ErE`Jsv{xOF53X1KYLdfOYIz6-zPoMrx;C!ek?a61nI9)81QvWz}r` z!#6D<2-4jh(jg(;(k;^6CDI@Q(v1Sr-O?o@(v5UCNC?tOh~K^Ca1i4;&-uUK`~R-% zyB_hb*%NElteL%L?cZ7>FvT8?pQQU0zP^*5V{q>q$jqjol>?6unaq}rw|#QSK{kliPJG#-qW(6O)QeB)9aQX zsYRkk&uSsEdCir%{!s2Yj)H!F;P&I{=13)r;$+{P^?ouk+pP&aL`M$XX|B;>y`tqT zE14%Hj){0#9&j^uRFSX^a(I#Oo=jBHtGgeIRwW|#wNNNH9TrW}5il!1*d4nJDc92# z-@ac_<_Ousz#*QVUAMRQjJX=MnVwv2+~rN2wsb>@ohqk1nYWtH;pkHbz8?$%Fc5-g zlT+n6R_^Cgbaau?{WgKU!v2#8Nv=}K%8!P!lQ*3;B%xpi$zzP$cs~!huhBB8w}N>nU%w(`sv=T%2tbXH*sXzhM(rt zO=UWhO%;ETkA9oDM{Fv$TZn{E_FLi&g-WK}is>*V==*rP{t4nA_+O{df5&GBh&L+xjk(cdt z`%(vKnwjV15iVmz*&|%p;fNjCDzdHHp_Ktg=SB_*vf~Mn`#0ue8F<@$K5P|-ECx7g z(D&$}sjDg7M+_4o)D6G&cr>;5YWsr@tr0X{A~bu9RfZb1jex(7v-RfF!fpE|l7*p? z*MkFlK09{oz4R<1IWN}h=jJ6K;0li2>2AIZc@u=qPum{b3gIV7jb*cNmNK#+OiJir zY4x=aoBOe8Om5ePMe+P@tx%oBh9sGC{?dERiukf31@B~Qt|0I#78@a~@}+0kKYm}w<#s@6$8EpVO=q23a!NTlj+C33WY{mqzn}g)n8tSfd@tFI3K_5C<*iRY({9vr0^D(dTGVo|H4Vz8j6G z>K2qrZv(>;miDk_iKvp>=_;Ah$DnuA;Y2w;;1ST#ob^5Rw0r{d4TQ#{vZPSM8$dtC zM}=lnyQ^R7;rh<2nY=K@C>JZEpqeT(ixF9>DrJ;*It>Hcp>7b%RuU?InyLR&kxcxR z9s})SpJ;UGjA1Y=+5lM*S;hx9P~k_VoNS<=iARLK7oBTmPSln74I~Ru`1*zA>24-; z812VA;cuWo%6M$%(u7uNx0QsLxn8evjWy?QApH}S&q`!SlL|C7JYmX^tO4ar5gWsr z-UHKIIfi*5=Nz4#Z3NYV@0nO0r+J3U(KhdL$Yt=hyy#gQrK!VkHF#`$X;u! z8j&g@aV#>*uVyMWndB+ku`15|aZzU+L)f0W@{(R?XR4JoJYqk*e5^c zNzvCO&h`-_`pydu49~K6jnj~#u!gLaHifC9#LY2}?9|#v&Zo7wiAoqU->+o(_coWT zJES@40i${Sv}>qCWEnF>#Vc2>FLI13X{AwpUj82>cX)z8+fs7q6itiKgPtcH?3Cr< z$zh{nckBpJIG%$JAK4frq`$PWlm1%;C$CthjQ>&4t8{Cj*M|9x8}|?T*gk z*^USF+-F%G^3RX9S{jt_HLxDuc^Hip{zBTC<_U6=2QAImm?|Gashsr+R%~0<{t?;$ zT0A^{oFe==ds?LCrCtUtlQnwMt;rSq;PJYq!~||{{jfJiTWunad>sy}-w-8)6l~c| z8r1klA9AwXW0Fv2?y;8F2onnJ<-NB?$3cd&o)-(GlS58r+gP$fq3tZwAH~^D^>sTW z)|pVh(~42N!SN+JH_ca$2GngT6KL2YWMz>4Kzv!}8%XJkT>1eNk0MmAQm*7Wr*vqp zhM?qoN%>v;&FobUta)o^(k;uv9918G`7g{f z%ku&=u8Kq3<91Pr~ncHLKC%oy-%TLsLHY?C= zJ_}1uxm06Vze zvS!}_q=w)WJ@8BDJ6r&ODVu!HVFXSCpl-zAyr$q(EATG>G!1|gff7JXLSPu(1&|uZ zCk*~&`5nd#08%eYvwR1*aDbsk0IU|M2`CM~e{I0u06;DPW&*&^0O;_N8h}0k+F}NV zy#UbO3rHd{I41yy1tjPQ?dIi8NFK7d5y%?Lz{)vIF=!5eB(B=#NU$n&r?gykPIJ+ab3LY?`nF*Z1 z0Q~3ty#N#V9l!(u?6m<8n-TcW0h|Zu3V%t7z(4=~;lMu}_+RG$ zbRYvR9D$_djYx$nWY^`g^*j9cbu{61yfNVK@+TjVzb^MD?AG=A|AZ?45q))q)%v?= z=)c011GQa8p##Xo>nYdE!~YBMb{*S!-3vt&yb1zKJFwgXHw^$u{Bs)6#)WqZ;3)uj z$ox#n6-R%>kNv*aKVr(Skg(VL0o=B(@UlS9|L2(UAP1c9xWO3qOX<48%>6Y_{%*cM zOWfbB;ZL&nBaZJnt$*@B`s)(cxqT(G*VF%#eEoGBzxtV6;2HnA)X%;Wf2Yh9=HKbN zYIIQsP_uyFhG3tUznTF62Y;pYf98h;P{0EA%etH`f1XkFU^xeHsn`AX00gQ$tDuJ5*x&}bmyr4oEyb3se z*S#*wP<`(sG1xl|n4|x>u8Z-xPyjD`@^`4X@PxZ+^*@)92lEe5?1B3Sz)N6tL->Jv z|A|^ba0x^3x(Dc+z-n}{>ix{+A6L7d=MJ!fU9E3_CH0r9+s`%pyt)JP^ukx>uWI{U zDFm?gYx7+XzVHmZE^Wl$W$kxYF7UxW=DwogS89Le4v_bsd-~ zQ?8f)=bnC@JHS2ax@P7A_8SoSh0}j$CjPui19#)!jo5`Q@+%$JQ?6#ppJ(f@E&guy zUdYLx-+xCVko&67SNg}Vn$`7sFZ%Xl{$D+Z_`r4lcYV65?_z9z^)bFahW|;s{(HH9 zoH^IW=FghV_x(StA_!Iyi3M^Ma`AtC*Yi&U|8U^{HV2^n%?RKK`1o#w=>57EQUvQf zwqT6_FkU+R;A?q3{qO8`u9x_KXK(ZKTKDI52+-@V&w60(0rc(bE8g`ye_k1WE&11N z|GKC6Z)^BSN14{r9hvsSr`}fMp zfO+xPrG6g!pXd73z5i#K|8I4NpUYqI?m8zgJp=e58q$IsFT%$5r~1S$9%@VfY=1@<$(E`gWx3ebGT!1fy8G2x|*U0;=cCtp8W z0)Cd<%N6K%<$k}n`S0Ro{B9R;-G+Ec!IflRzy9;wy4uEdcwFzq{AC zD)lp6S643f6<2-zbv3$d@7F7U#ryg*#;YD)wE)ca-{lLC#{V9*Dh%UNm%7fC>sruX zUHkJ||5v3hCG+Q~RU+U0=as+T6EEUe{XGf0l!a}Kac0HI@6!+ zu>Ys}#r0lX-9>-x?-iXuU;j>=k&DOa7ZH#y_OL%n|MixyX29PYmn)h4xt`yz5($3Or6;lMu} z_=f}kaNr*f{9oXJA1VkNcFfVY0K&;Q7tpmSr70|kX*sZ|+)D~rXf7W{cEKUE|fc~)+{~S5`x-~`d74`aV?&{Z{ z?XB0X4SzlJw0?vA0-j;~Z%FI)@%}L$>yLMW>$x1jcbMPDa{Q4KKT6jBfA;iO*1TWk z=dzc-UI8TQx^(}}dT}9vzvcs!JO~;r^5Li`h8UvNXitK%H__>B8a&2NpL8j5VNI9C zrSm*Sn0Q9|j2#{dw<%I2`^(NoVFx>nokYYDM|sd!cJxk^hTx5`Pvfjldu#LRZ=oUf z_{Il-ma9e_b04X^&JrHE^D#UtbVA|HXu zZ=fitPn~*fvaPAx>Q5f|gZ)zP2~UOBF6T)B+rd? z=u1#^ZKYU74b1zS(A*SWb>r<7<4z;P%@$jwaE3ui8$`Y5OJl0r(XR|banXvSbGc0@ zV)o_vF;5}*oT_EmO1`F?&^@yBW>0EjmtWZ!%HpPVPgmGwDw1|;$6C~kNe71&v(nsE ztjKzPcctC#F5&ZE5vDRQ3PJ zsN%Q_ZCkBkn-u1qinZ|W6|8uE{X34fiG<>XC@6nC1TC4{Hq0X$H&YL3L=ftU@?bMp z9cRSum-5`tV}7?>YhCnt)TL%IDE1ROM^EytD7#8jANer2Sed5$sJZ71JNH`rzJcz1 z11;uTD4NPKFLTKwvXfXPW*(_3LFJf#YVb0@Z|xbF%Ll7u0**&0dlDK(e1K28F(=`6 zD_pohrJDmB`w`av?2y&e)!`cp{$CIe0m}g8ekYMco<#O$P}x>UnYnG>KYkstwW)M?NEs2yh5T8NNn6<<%SH?$) z{5}5r@G63C)yWY_^=s371TnC9;_qNGyrmRAKPAMcr?V(tV({pF&}I7d86yH|Rwdsm ziCC+&n6Bl`6K<^}r?TbeX{}nAjqkNL+Kwiya_QqIS@VY|DIU`wOCp#V;#+19zmyX! zVV_9P7RMv>g|ZHECO5$sW?1Ea3x_60qM0YnM5EIucCH*)_o&H#YjCELK#6AYwfsB2 zz)y5@T3XbkLHS+7gZoJ0lLTyH8kM4PkWqqC`69YqQY_&EwE8!Vb0<*BK2xD-sa0}? z7Z+5mDg;L(=fCC0?8987HcFOK=Gw``zKfzs(R7cUPh#$t2hT)8_SVaY`KL1(;*_(N z0m!P6o|X8nC8`EFbb@$X;>@2tkH@O3YB}vT_hPB!6JB@m-g=4xWhyrzB<@FAhhH(I z{{mNzD=SJ?d4kLY9*Gm1E7~^A8LR)Z$CIM`fneQQ(ILb6E|~QWLCUkLEw9gNxusEy ztgj|tA5%pch?j@yd>&b;o;1gpl_{HbU7aeiGR|F2($A5lt2i)VtUxf{nMt$+R~HEppOYi{41QdKh5!p(4<= zI32;)bzUTJYYv)mMP{yqHnd%+pm$|7Cp9x$Dq%IhEi_wt#JG03&3|yZuJ48rgkp^A zNBAQZwmbt9Cg(S6u?^1FMYWmHE_>)z@+Gg{xfSJek;#k@zhSjH37e^!b6QLK4xv`Ca` z6ZhdWWSggEipf<1Ze-A3;YCj^yz;9}SZl5Fg-%-7Iu+D$p4>bs(srFh)}O9;n82Hs z8ps$@@N#cX=rMj!6aRwiz7=643-fX1Y=H21%GO%nN>XthX)e_4p7<=UR}8clhIkWu ztr%LeHv3cTI?({f1r5lKo@js2s7NwV*wAOGL39^;;)5q#3VHA^3Qf%Q)2L&;A)k~y zYa~WC_{+s8MArxYi{g?>+qrCmaO{QSZtJ>XX(vXNFDA55?oF9Ol;$+sETY?Gi~>^VyD<3!b4IBNv%GY zkfbuXeUQH|AZy8qAVr(qiFwzg+gvP-9ckR`QxyZYGMo)gZtyLzOI$ zwqy{n8pM;pcboPYxy@uJ24_EE9|m$#6&%G~!J{m2Fi(lx>ebSyfraKqQ}V<~u#zU+ zRmyVFAiMdFo3GyJZXr{jX4eXr)I$YMTE%I~561<0@tq~wNN`HCwqc2G8&yW|`1G`8 z;#FT_3E?qf^rDzj>*cNcmD$w$GI&i(D5XCy7}tOK24cWmcwRrk&=m@0Rg8$(owo_0 zFaZ^W!^QQQOM{AflbzQhHq>%#NwI;0KFjD0WGBAm%|~bW9PZ&Hp^TdB;>u9+<-EnZ zH1M?0yB}0O*oDR&ZgQhCuSfegA2@Aw7a~QQupCt~(>7^5xc?~e{NB@3Sv%G9cE=CP zc~MT>W$fJf{fq|15+34-VYx*Q_a!Oar692IWsQ*#C@45;S_YAx6sM!QyZH2Fio7M; zXON^P_loiL;f+~ebmLO7V;Ya^ur&m!+e4NR(-G7o?yncVxI@8ZXx=L(_k>4z;~U6D zd-$|Og+YVT>Q)pZL%>D>&QmA*TFQZ*LyK=9jqPHA^)g;wci57qv*2mJ^HKXgwa*#f zKqLJ9w~9X0$|szURd_i0L&M!Z91#iE8RUyifknjFa|1{D?K>0LO4@yVMziw`)GkY_ zzudp+e6B;({xw)9@Qco~55Ak5Mafkk?pD?kW$cW#zw<%~H_>+DeK{mq_YL%(aN#Q< zArYFp*U^bmnmMYuN=SIwzic)H)sP!MCn2agj zQ}@u0jWc{;E1-kS9%J;3^Gp8LLVMXO5pgR|sF%DZ;o*V1PD40UrH$)5dj(y72|Ifq zb9`YFs7~6_+E3gc@9^^EzxI@-w~lU35iq(xH?90_Lh!o_iapo>^8klO0WJc@ z;CEot1wbDze2uTD;sybpyu{!`Y5*q{2e6R~2)Stt^HFPIO&k4yJ*Nigq#nE^;C&@M1DE?my9^W%bYK(d^{ zWsU#nZVu1dov*Ob7~0vOvFtWH!p7Tfx(W@t_wWCxO3INB>)7YBh`EOMNXpbXW7wX{l*7* zgK4tz8!uem@giZyusyLGHe{D3nZkPI#4p(hWnxlRpq^K`MNqPHdfQ5oM}Q#MgUfbj zB$N77#=N7J<7~o@pYRM0NUwoz?ukm??yg6Vj~c0-j=)B6e{t%Z5(#+9|8&8(2?b zD*UZ)(!o@GJfkH*W0hPaYYbrL=ahS&ELZA3@+jjhRG3#xVGWrYy!}rBTL7S;ARvBt z-U9^-cLN#*9ufka3JLY&72qc{4D2ls1QaARBpfvC4QN;>z=i+`1r0(aL4$#17F5vl zA!WG@XP1V4BeF?|j1{Bwy`ue-C}B2za(2v}bR`20&V@1uR1hR21T+K`G`R7LrXf%v zp-7m~pam7|NcC85!?5o7M5dMMqko$OA%Tg2M1?{H34j`h{~hEEwp??XhjAvvXj4hk zzc-LjzrL&bW2U|vjHJpd5v_n#152}RB_47rc8U<*ks4e}B7NZ?c7D3yo0R-!?2;&6 zSb%IvR10mPwds&8Fu8*rA6Z3p=*FI&?Xy1`4UqWX9dDmER`y{n;%{e;TP#G zs;SXdf)$7-sH2U{V=t9wG#`m_dG3yoGk9>BG`tDAD;eXz_s9|lkqIVW{uRL{R{@e} zag@>-J7%X~L}&p7O>@5)XkJVU>P!+t>oq35>j?u?p>Rtz4~l5_0ss zBheI3H}3I5hWb?2S(syt4Ud|oH;YHLR4Guh208_R6!8UXh(~U+EyPD^zP*aK|2+m2 z&TN{sSBGPXU(mMfeOrbyr6nPTS@o}=k&1^JPvAnHSr$HzNa4**VIF$1^nM{%^IXHo zbhgbf0DGs*eTDET((|oXU)hU1d+C;E+J_om3qIXM3wpdFS}M`R_ZX4f1Earl%Ells zJWKOaUa>1}xHsY{s7O4%k#ezBWqw#XoHz`21~$)yyix)Crgy-bLk>Yq%IP}uGZ#(c zH!_lGSTC$;yF;=&rQb+*;@?g_TIeVU5Z$Z~+6(7SerYLn9_i{sCmO{jt1!ZsnF5th z9`_^+CqVRgba_wyGuy0RxX|Dt+TsmGbjYZ*XT*y)itNQFe~5eqW(8eI!QD`6>u}$& zv{eQ#uzuMpcp zRrY4`!CvUD7_GG}8<>!2D4NXJ&Ml{I-%HQI$ZxUbwrWeAPl$%q4N7&1y2Fkc8EByC zsKYRjiIm@hxWlJf$bj=apZOpTFXm*SyD5)G*}0fUe5T};kM?;%Lb5|$Wn>eP+#TM$ zT(ZT4(>&QQ{bQ9a*aiLS_ucf)Ig?S93`H>3_8aXv;}{h?54g zg&x2lb7t8*E!n3?{QOb^|B0)cq=2k+ZE5v;FEW1gST?lVv#Qt#`&E3j9P7%@Kc+tc zwfKe#mYE@BG3BpISu(fHxECO3Bta(+l@k|@%wV>yj&5bNjW0)L59^7CJlV)1so3jF zJ51Do@lvYcckm2_JB99T$Zb?=L>r1_ z`YK0VlV8YE*C+jN!ST4^yy-k#Y?osn7HxfvvUF^WyqQsdzyPb6(aR{23^Rm#*XRSI z=oiYPVxDH6@>eNX4MTsAV&9Y(ttq%tlh?zJax@UfON>T75<3!lvPB$INN< zX(*MkiZZRImR57A>%n{X-#pz_!yicfk)?DgMXzQ9Yjk@}wPU4(<#aw~9Z=6rxYN$Q zTM3driCc}Rt9a_gOx4!IEO{ak;9L+b&NsZ@~*6%_E1$lq5q3%xyZZ{)2Z_P z&(qfC*=E@8r0+a2T#Dx@J2iU?@l--}) z-t@Rn_<9lI1cPkrLz$6{S4w&L3vW|P4IfO7@;>`uKBhYSl8wGC38gEfEj^k7Y!j`t zmI@9u{RZ-;yF(CLdu)Xl%QM=iDPCzhsZ-X!!#W+Fgx9oksb7Oh)J zTd(AHSt$zH%1hs;7%nMR@Y5gP^-LbG=na}-1un1>3$u&nV(Cr1QrDir%FS5al3}R z*fu=Tdj>rDk?MEO(5YxK9EPx>=PMyu3|S(<#)`4ssbkW4YJIW-6GqY{t*&wYb?uSY z_yToXImmduoFqi~l#wIFJnG)(fmnPEmU8j%XoW}g-tvnCn#$2W(D;JIl&+g4c^~g+ zVkY}5mu5G+vF7(}h#7<<3>Sw?mRsSz*f*}FsZOuc3h7dfWs8XLTRoNH==BW7Q(dv3 zQ+jwzW`L~v(y;5nXiR3O4ou=~i~aIl>a|FO)knOd_UN2Rb+`AwO-~ocGI4vT}8wDp{HwPhpm-v~H9o zGZ(^S(?iuKA!AD#MnwmkR-CD(fl<|HXEQRS(#2`qig+~jrdZ1np3&N`)f;gGYFAG^ zViP*E;4OJ+heWOd4t_tL$-6<;@7VLRz0mE*+E8{f2wfHZ$?(C%G0ti^DzC$1e&#jt z=$A-m(tTC6$a$iYQa2jjbb!Y7>EzJKomlSPy|Hz3Bx^&a$40?y3vPjs{@D;2*TM6_ zn7JMy%^ns!b$wZ@%#;`BS=0u1nNCder5Va|cOPN*@sjPsaK+N=gUUmV@m)B{Ze* zv>uUe6KhvGh6OEF!lf5wJzF=`ZHOOo!-rox8ZMp0XPFvx5}O%Y${a6(;r--K;N)f+ z0Pj}XP$22QPJ}G%D*IOgnFxHDFU1VvAeOpBx836B+WE5u8xHmCD`EXDSoiCxVy?{$uzCVP z!~7ziU_445KWtChx~dq47L(LpDS)~}YhVBV6pM^MWXgMOm4wKaDmiHG0ap~B)elWX z6s2pf4Ovbob|JZ7$qc2ha;;GfE!}V`HGC+WvSPlsmm7>adebO+*=*&lUKSo+K??2I z8*Zv&J!~~8SdlQ;L&BS+&t2^G8{!9Zrn%K^@Ek|gTDq;<`iH(2F*$7;KhTtN?B#3e zOrBqu;j~J1RlfJJ!TNyt?()h4E>T(k1NEAsxr1(;+ru>q&OJnOPR6eT6Jp4iq>^5u z^Jm9o)^tVPqfv+NiFQcL-93nFrKxbi9gm<>fAy36Q$rhxhV!tNQdB+9;Ef8g%OtB8O9r2m3q64C2bgO8P#g9BX&1NF(_ zuH_jgc~z4M?*`iDgPvxn4cW|E^%3erv{aP`$uYv=j&=u!6&P!1Ns_5Rzq^bC`F(8w zv#LO=TX38Ws=co3z#-1s4jK1-ULiDsp`Jd&%DtM@7EEAsRGN>}zC zj=3ksiF)0+yZJR>efgOAWoO}r?)r(8;KCBvg*K@rM>iBheUQ>OD zp1)Crq@wFytQ&2jUcu=Dwm6~`?b z)gHZ+Q#lAF8ZJr|;cLsCbwuHMTFr=;-=p6_(@=^f)b67#GVI1@Erq!@x$&qGqw-XJ zVj!mu6Z~YC^*uWqUAMEG3z28QeHmMk5@tXloWc zoyPZ_w>-o>{MLOsMz+~6x`wc{~5!cXKJ1{ei zYmMAk&04W&9si|F7Gh;9*jwDW!F<_b z+0J6`-pUHtn7w!v4E-z>s*WG}q@zJcu?=Z6S&LlrQ3|Yar*H}S<$%gBD7qm7SQ2d>CI!3 zMMgezTb*#>b@r6uShsN%bzsTg#`<-zRy8CyNeG_P!%v3YtsK&03Y~DO-6O zENn&e4Ma)a@D8nDZTnEQ)eU>pJ<#=4A(&s^*#_a@YQsQfWIDJ}7wtUaw<0|_M<7)AD14dd{=U?i}%Ru78p zSt&w-=Q#BrG>oB5$G!_G#Xpfwq((QHltNVI*}BPRx4`Rd!7}yw8^}r2B6oBW(>SJe zNrm@VdA_6bwjHd3-q%<=janQMOP67dCM{>dT`onMWx;&P;7#ft8JOnYj;FWYvyYVJDS-K?pHxz zeDoZwmOM$w%aOjL@#s~@dd{}Q0e*ICzwmi{#5;*SweXn!9dGq{T{(WB=gz@#Dy_JmdI=VNrZp zAqNEwqu8e21^nJTM&t9|=ttJtBAtZf;rKj4wh#2-kjsyraca4mS)+Uqc=ds;A@-|I zAm3g+4}Bn2x9D16f@p{>h?)*v*A+7=WS?q{lWUPwb;-qU|3jx5?LI@`vI>vX_-E~q z&<%_vZad>pyX8RHcyc>N`q86|7F6(=W~45kPP2}KTE4-sxf~b$ z&8#?qiE$UGr+K&b;pkW(yb6cnTg_gKiXUon<}AH1dFB}MbaUrS-kLvJzQ2(!58ush zUQ(1&qqV)$(1sl=>wUY*@Lr=2`dQ4NqE;GxGXsl~_&!n~Wn{vnW1&Y4!tsk9cY~Vh zkCQpdG3QLdJL^a1q8vFyQOmDg!@iVn!W#|SrP~~j7i-7`ii5&c)>o3#Z3y5&f>;=X zRFfd@>8TRADfMrlkarJ`#lL}cP~|FSDW~J|%UWULm}Su_7ci73{Y&$fmp7C;@^TGD zcG_dam70*A^h7{8g`L%TZ|oNK&+uzVOn!|~wmt7Cu{-+6!{~TwLSRUx;Y&tr!m1sz zQ}ixHD6Sge5zE<^MsyM@uSoI}RyjmckDMx&F?22YmM8pvaFZ>l(;(XS9*DJ8VH#yR5f_rB-M3|+y?cFCb zk=I@-Fv_D@fy>#3&V8fzMN+Gi$fz65y;a~(7~RcPd6ATZ6IWJ6!fyly?xVvhP3g6u z-BeO;7{{*S(qP!4Zl}3lxo)(zY<93;lcGiX z9jGzcZmHc3BiYq4ie+ZANt-styNz{ZS~-E7?9MjGlJGhvm~AaB3XoBZLM~Qo_@P!= zX+aYS3{1Fscn1fP%~KEI#^w}a6A9h{%c_gRWuJF{_hx_lR+j=>SbsQ$Tik!m(pF3_Nc~qt^ zn@8J4ii@#nm&wd-oI5P2O|ajnYF*2kVnmCiT6Z`_kqm(-8<7K@d4XGDBBs->BY6qMPP|{TX*_7h zUD>EDYK{fj^CqO}lOUO`p*ryedRz-gs-i88xq1{y9Fs)L9~BcKdb8dkRu1IGTdb82 zczxg)soJ^M)W@qumNbWDsNa%$cr10})870e@~M_F^25$?23ry{E)=$b*=c;a@*CYE_ zbo7j9Pul~ZGCS^Z!U}nH(LtV~C#z188NaBgoO`6fgCv-tG&Okh^-YT-)3)t+0orid z=J*B82BalMVi3rUVWT)BbWzO?z12g_m2H!KbCzg-g?$qd7hj85z zH)X5JTh?P6MG|0VryQ<4)5auo_u%904A4tZ@XE6~7;X15e$UdlGV-kUP3EJN0MlWu z@YTYacFMwK8PPD9JU>)%QbZ^H>BakS*vrs_-H`D4A2rkEU1ZV5r>v2-&~!I&G6}@% zS}nx*@|`O5)9#*mvNSQN z9t|PP;OnhC^=|Y8ye}(ZX0ESY6!oo+T?{Q%PZYAjKFui)wH&B9l?k3>vVBVrq6*y3 zxs~_AexbRl4ldx8yjg$$V4F(nGVV`^zerUNnaT$*n~FmZVQY}z*QRe?BUei)<7reH9%C{;;H!|-YkohWECrJ< zQ{qX#Q8(+EMTOa!w5&72@YdB2t2<^2I~$))y2GIDm4bQ5jh-lBC*s}RY?%10f+eI7 zyIBbE-6Xq$3RCuD757~WoWw~lx~$GmkRy$nJ!)yIC4=o7il-@-W#-2TrZ8GOsIehx zrAxY+vwUyz_dWV;S}8+kr)s)gFxix#d1CerXL)%OLj_TIAH4OGnRnQm@%RSH8HiJw z_Q)Bq3Koe<`&}^(2)Proy1zav~1ihs|hxO({BFXJ)t%ZVAI@daGDadH+FH0ruB!Y1H?(iQvO;toeYT5+6mm z$#P_b`n^n?o@j2nl|yHXLER3A*ZFGMaa_5Bh`BXzI~9hv5m8)tbp zJyQ7Tc|p{(|!pV#rt-TSblm6X$^ zBTQ8LB`qCgksuo`Z0K9{CZwbBSvCJ?iH=dI#pe2W1$7iF@>&901sH3Cs8qo^lBqxq!d?2y_Cj O0IXsJGv-h6|NkG8F2~pa literal 0 HcmV?d00001 diff --git a/api/src/Erp.Platform.HttpApi.Host/Data/nwind.json b/api/src/Erp.Platform.HttpApi.Host/Data/nwind.json new file mode 100644 index 00000000..49aa018c --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/Data/nwind.json @@ -0,0 +1,1005 @@ +{ + "Products": [ + { + "ProductID": 1, + "ProductName": "Chai", + "SupplierID": 1, + "CategoryID": 1, + "QuantityPerUnit": "10 boxes x 20 bags", + "UnitPrice": 18, + "UnitsInStock": 39, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": 0, + "EAN13": "070684900001" + }, + { + "ProductID": 2, + "ProductName": "Chang", + "SupplierID": 1, + "CategoryID": 1, + "QuantityPerUnit": "24 - 12 oz bottles", + "UnitPrice": 19, + "UnitsInStock": 17, + "UnitsOnOrder": 40, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900002" + }, + { + "ProductID": 3, + "ProductName": "Aniseed Syrup", + "SupplierID": 1, + "CategoryID": 2, + "QuantityPerUnit": "12 - 550 ml bottles", + "UnitPrice": 10, + "UnitsInStock": 13, + "UnitsOnOrder": 70, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900003" + }, + { + "ProductID": 4, + "ProductName": "Chef Anton's Cajun Seasoning", + "SupplierID": 2, + "CategoryID": 2, + "QuantityPerUnit": "48 - 6 oz jars", + "UnitPrice": 22, + "UnitsInStock": 53, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900004" + }, + { + "ProductID": 5, + "ProductName": "Chef Anton's Gumbo Mix", + "SupplierID": 2, + "CategoryID": 2, + "QuantityPerUnit": "36 boxes", + "UnitPrice": 21.35, + "UnitsInStock": 0, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 1, + "EAN13": "070684900005" + }, + { + "ProductID": 6, + "ProductName": "Grandma's Boysenberry Spread", + "SupplierID": 3, + "CategoryID": 2, + "QuantityPerUnit": "12 - 8 oz jars", + "UnitPrice": 25, + "UnitsInStock": 120, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900006" + }, + { + "ProductID": 7, + "ProductName": "Uncle Bob's Organic Dried Pears", + "SupplierID": 3, + "CategoryID": 7, + "QuantityPerUnit": "12 - 1 lb pkgs.", + "UnitPrice": 30, + "UnitsInStock": 15, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": 0, + "EAN13": "070684900007" + }, + { + "ProductID": 8, + "ProductName": "Northwoods Cranberry Sauce", + "SupplierID": 3, + "CategoryID": 2, + "QuantityPerUnit": "12 - 12 oz jars", + "UnitPrice": 40, + "UnitsInStock": 6, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900008" + }, + { + "ProductID": 9, + "ProductName": "Mishi Kobe Niku", + "SupplierID": 4, + "CategoryID": 6, + "QuantityPerUnit": "18 - 500 g pkgs.", + "UnitPrice": 97, + "UnitsInStock": 29, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 1, + "EAN13": "070684900009" + }, + { + "ProductID": 10, + "ProductName": "Ikura", + "SupplierID": 4, + "CategoryID": 8, + "QuantityPerUnit": "12 - 200 ml jars", + "UnitPrice": 31, + "UnitsInStock": 31, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900010" + }, + { + "ProductID": 11, + "ProductName": "Queso Cabrales", + "SupplierID": 5, + "CategoryID": 4, + "QuantityPerUnit": "1 kg pkg.", + "UnitPrice": 21, + "UnitsInStock": 22, + "UnitsOnOrder": 30, + "ReorderLevel": 30, + "Discontinued": 0, + "EAN13": "070684900011" + }, + { + "ProductID": 12, + "ProductName": "Queso Manchego La Pastora", + "SupplierID": 5, + "CategoryID": 4, + "QuantityPerUnit": "10 - 500 g pkgs.", + "UnitPrice": 38, + "UnitsInStock": 86, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900012" + }, + { + "ProductID": 13, + "ProductName": "Konbu", + "SupplierID": 6, + "CategoryID": 8, + "QuantityPerUnit": "2 kg box", + "UnitPrice": 6, + "UnitsInStock": 24, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": 0, + "EAN13": "070684900013" + }, + { + "ProductID": 14, + "ProductName": "Tofu", + "SupplierID": 6, + "CategoryID": 7, + "QuantityPerUnit": "40 - 100 g pkgs.", + "UnitPrice": 23.25, + "UnitsInStock": 35, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900014" + }, + { + "ProductID": 15, + "ProductName": "Genen Shouyu", + "SupplierID": 6, + "CategoryID": 2, + "QuantityPerUnit": "24 - 250 ml bottles", + "UnitPrice": 15.5, + "UnitsInStock": 39, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": 0, + "EAN13": "070684900015" + }, + { + "ProductID": 16, + "ProductName": "Pavlova", + "SupplierID": 7, + "CategoryID": 3, + "QuantityPerUnit": "32 - 500 g boxes", + "UnitPrice": 17.45, + "UnitsInStock": 29, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": 0, + "EAN13": "070684900016" + }, + { + "ProductID": 17, + "ProductName": "Alice Mutton", + "SupplierID": 7, + "CategoryID": 6, + "QuantityPerUnit": "20 - 1 kg tins", + "UnitPrice": 39, + "UnitsInStock": 0, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 1, + "EAN13": "070684900017" + }, + { + "ProductID": 18, + "ProductName": "Carnarvon Tigers", + "SupplierID": 7, + "CategoryID": 8, + "QuantityPerUnit": "16 kg pkg.", + "UnitPrice": 62.5, + "UnitsInStock": 42, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900018" + }, + { + "ProductID": 19, + "ProductName": "Teatime Chocolate Biscuits", + "SupplierID": 8, + "CategoryID": 3, + "QuantityPerUnit": "10 boxes x 12 pieces", + "UnitPrice": 9.2, + "UnitsInStock": 25, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": 0, + "EAN13": "070684900019" + }, + { + "ProductID": 20, + "ProductName": "Sir Rodney's Marmalade", + "SupplierID": 8, + "CategoryID": 3, + "QuantityPerUnit": "30 gift boxes", + "UnitPrice": 81, + "UnitsInStock": 40, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900020" + }, + { + "ProductID": 21, + "ProductName": "Sir Rodney's Scones", + "SupplierID": 8, + "CategoryID": 3, + "QuantityPerUnit": "24 pkgs. x 4 pieces", + "UnitPrice": 10, + "UnitsInStock": 3, + "UnitsOnOrder": 40, + "ReorderLevel": 5, + "Discontinued": 0, + "EAN13": "070684900021" + }, + { + "ProductID": 22, + "ProductName": "Gustaf's Knäckebröd", + "SupplierID": 9, + "CategoryID": 5, + "QuantityPerUnit": "24 - 500 g pkgs.", + "UnitPrice": 21, + "UnitsInStock": 104, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900022" + }, + { + "ProductID": 23, + "ProductName": "Tunnbröd", + "SupplierID": 9, + "CategoryID": 5, + "QuantityPerUnit": "12 - 250 g pkgs.", + "UnitPrice": 9, + "UnitsInStock": 61, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900023" + }, + { + "ProductID": 24, + "ProductName": "Guaraná Fantástica", + "SupplierID": 10, + "CategoryID": 1, + "QuantityPerUnit": "12 - 355 ml cans", + "UnitPrice": 4.5, + "UnitsInStock": 20, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 1, + "EAN13": "070684900024" + }, + { + "ProductID": 25, + "ProductName": "NuNuCa Nuß-Nougat-Creme", + "SupplierID": 11, + "CategoryID": 3, + "QuantityPerUnit": "20 - 450 g glasses", + "UnitPrice": 14, + "UnitsInStock": 76, + "UnitsOnOrder": 0, + "ReorderLevel": 30, + "Discontinued": 0, + "EAN13": "070684900025" + }, + { + "ProductID": 26, + "ProductName": "Gumbär Gummibärchen", + "SupplierID": 11, + "CategoryID": 3, + "QuantityPerUnit": "100 - 250 g bags", + "UnitPrice": 31.23, + "UnitsInStock": 15, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900026" + }, + { + "ProductID": 27, + "ProductName": "Schoggi Schokolade", + "SupplierID": 11, + "CategoryID": 3, + "QuantityPerUnit": "100 - 100 g pieces", + "UnitPrice": 43.9, + "UnitsInStock": 49, + "UnitsOnOrder": 0, + "ReorderLevel": 30, + "Discontinued": 0, + "EAN13": "070684900027" + }, + { + "ProductID": 28, + "ProductName": "Rössle Sauerkraut", + "SupplierID": 12, + "CategoryID": 7, + "QuantityPerUnit": "25 - 825 g cans", + "UnitPrice": 45.6, + "UnitsInStock": 26, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 1, + "EAN13": "070684900028" + }, + { + "ProductID": 29, + "ProductName": "Thüringer Rostbratwurst", + "SupplierID": 12, + "CategoryID": 6, + "QuantityPerUnit": "50 bags x 30 sausgs.", + "UnitPrice": 123.79, + "UnitsInStock": 0, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 1, + "EAN13": "070684900029" + }, + { + "ProductID": 30, + "ProductName": "Nord-Ost Matjeshering", + "SupplierID": 13, + "CategoryID": 8, + "QuantityPerUnit": "10 - 200 g glasses", + "UnitPrice": 25.89, + "UnitsInStock": 10, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": 0, + "EAN13": "070684900030" + }, + { + "ProductID": 31, + "ProductName": "Gorgonzola Telino", + "SupplierID": 14, + "CategoryID": 4, + "QuantityPerUnit": "12 - 100 g pkgs", + "UnitPrice": 12.5, + "UnitsInStock": 0, + "UnitsOnOrder": 70, + "ReorderLevel": 20, + "Discontinued": 0, + "EAN13": "070684900031" + }, + { + "ProductID": 32, + "ProductName": "Mascarpone Fabioli", + "SupplierID": 14, + "CategoryID": 4, + "QuantityPerUnit": "24 - 200 g pkgs.", + "UnitPrice": 32, + "UnitsInStock": 9, + "UnitsOnOrder": 40, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900032" + }, + { + "ProductID": 33, + "ProductName": "Geitost", + "SupplierID": 15, + "CategoryID": 4, + "QuantityPerUnit": "500 g", + "UnitPrice": 2.5, + "UnitsInStock": 112, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": 0, + "EAN13": "070684900033" + }, + { + "ProductID": 34, + "ProductName": "Sasquatch Ale", + "SupplierID": 16, + "CategoryID": 1, + "QuantityPerUnit": "24 - 12 oz bottles", + "UnitPrice": 14, + "UnitsInStock": 111, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": 0, + "EAN13": "070684900034" + }, + { + "ProductID": 35, + "ProductName": "Steeleye Stout", + "SupplierID": 16, + "CategoryID": 1, + "QuantityPerUnit": "24 - 12 oz bottles", + "UnitPrice": 18, + "UnitsInStock": 20, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": 0, + "EAN13": "070684900035" + }, + { + "ProductID": 36, + "ProductName": "Inlagd Sill", + "SupplierID": 17, + "CategoryID": 8, + "QuantityPerUnit": "24 - 250 g jars", + "UnitPrice": 19, + "UnitsInStock": 112, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": 0, + "EAN13": "070684900036" + }, + { + "ProductID": 37, + "ProductName": "Gravad lax", + "SupplierID": 17, + "CategoryID": 8, + "QuantityPerUnit": "12 - 500 g pkgs.", + "UnitPrice": 26, + "UnitsInStock": 11, + "UnitsOnOrder": 50, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900037" + }, + { + "ProductID": 38, + "ProductName": "Côte de Blaye", + "SupplierID": 18, + "CategoryID": 1, + "QuantityPerUnit": "12 - 75 cl bottles", + "UnitPrice": 263.5, + "UnitsInStock": 17, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": 0, + "EAN13": "070684900038" + }, + { + "ProductID": 39, + "ProductName": "Chartreuse verte", + "SupplierID": 18, + "CategoryID": 1, + "QuantityPerUnit": "750 cc per bottle", + "UnitPrice": 18, + "UnitsInStock": 69, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": 0, + "EAN13": "070684900039" + }, + { + "ProductID": 40, + "ProductName": "Boston Crab Meat", + "SupplierID": 19, + "CategoryID": 8, + "QuantityPerUnit": "24 - 4 oz tins", + "UnitPrice": 18.4, + "UnitsInStock": 123, + "UnitsOnOrder": 0, + "ReorderLevel": 30, + "Discontinued": 0, + "EAN13": "070684900040" + }, + { + "ProductID": 41, + "ProductName": "Jack's New England Clam Chowder", + "SupplierID": 19, + "CategoryID": 8, + "QuantityPerUnit": "12 - 12 oz cans", + "UnitPrice": 9.65, + "UnitsInStock": 85, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": 0, + "EAN13": "070684900041" + }, + { + "ProductID": 42, + "ProductName": "Singaporean Hokkien Fried Mee", + "SupplierID": 20, + "CategoryID": 5, + "QuantityPerUnit": "32 - 1 kg pkgs.", + "UnitPrice": 14, + "UnitsInStock": 26, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 1, + "EAN13": "070684900042" + }, + { + "ProductID": 43, + "ProductName": "Ipoh Coffee", + "SupplierID": 20, + "CategoryID": 1, + "QuantityPerUnit": "16 - 500 g tins", + "UnitPrice": 46, + "UnitsInStock": 17, + "UnitsOnOrder": 10, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900043" + }, + { + "ProductID": 44, + "ProductName": "Gula Malacca", + "SupplierID": 20, + "CategoryID": 2, + "QuantityPerUnit": "20 - 2 kg bags", + "UnitPrice": 19.45, + "UnitsInStock": 27, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": 0, + "EAN13": "070684900044" + }, + { + "ProductID": 45, + "ProductName": "Rogede sild", + "SupplierID": 21, + "CategoryID": 8, + "QuantityPerUnit": "1k pkg.", + "UnitPrice": 9.5, + "UnitsInStock": 5, + "UnitsOnOrder": 70, + "ReorderLevel": 15, + "Discontinued": 0, + "EAN13": "070684900045" + }, + { + "ProductID": 46, + "ProductName": "Spegesild", + "SupplierID": 21, + "CategoryID": 8, + "QuantityPerUnit": "4 - 450 g glasses", + "UnitPrice": 12, + "UnitsInStock": 95, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900046" + }, + { + "ProductID": 47, + "ProductName": "Zaanse koeken", + "SupplierID": 22, + "CategoryID": 3, + "QuantityPerUnit": "10 - 4 oz boxes", + "UnitPrice": 9.5, + "UnitsInStock": 36, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900047" + }, + { + "ProductID": 48, + "ProductName": "Chocolade", + "SupplierID": 22, + "CategoryID": 3, + "QuantityPerUnit": "10 pkgs.", + "UnitPrice": 12.75, + "UnitsInStock": 15, + "UnitsOnOrder": 70, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900048" + }, + { + "ProductID": 49, + "ProductName": "Maxilaku", + "SupplierID": 23, + "CategoryID": 3, + "QuantityPerUnit": "24 - 50 g pkgs.", + "UnitPrice": 20, + "UnitsInStock": 10, + "UnitsOnOrder": 60, + "ReorderLevel": 15, + "Discontinued": 0, + "EAN13": "070684900049" + }, + { + "ProductID": 50, + "ProductName": "Valkoinen suklaa", + "SupplierID": 23, + "CategoryID": 3, + "QuantityPerUnit": "12 - 100 g bars", + "UnitPrice": 16.25, + "UnitsInStock": 65, + "UnitsOnOrder": 0, + "ReorderLevel": 30, + "Discontinued": 0, + "EAN13": "070684900050" + }, + { + "ProductID": 51, + "ProductName": "Manjimup Dried Apples", + "SupplierID": 24, + "CategoryID": 7, + "QuantityPerUnit": "50 - 300 g pkgs.", + "UnitPrice": 53, + "UnitsInStock": 20, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": 0, + "EAN13": "070684900051" + }, + { + "ProductID": 52, + "ProductName": "Filo Mix", + "SupplierID": 24, + "CategoryID": 5, + "QuantityPerUnit": "16 - 2 kg boxes", + "UnitPrice": 7, + "UnitsInStock": 38, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900052" + }, + { + "ProductID": 53, + "ProductName": "Perth Pasties", + "SupplierID": 24, + "CategoryID": 6, + "QuantityPerUnit": "48 pieces", + "UnitPrice": 32.8, + "UnitsInStock": 0, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 1, + "EAN13": "070684900053" + }, + { + "ProductID": 54, + "ProductName": "Tourtière", + "SupplierID": 25, + "CategoryID": 6, + "QuantityPerUnit": "16 pies", + "UnitPrice": 7.45, + "UnitsInStock": 21, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": 0, + "EAN13": "070684900054" + }, + { + "ProductID": 55, + "ProductName": "Pâté chinois", + "SupplierID": 25, + "CategoryID": 6, + "QuantityPerUnit": "24 boxes x 2 pies", + "UnitPrice": 24, + "UnitsInStock": 115, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": 0, + "EAN13": "070684900055" + }, + { + "ProductID": 56, + "ProductName": "Gnocchi di nonna Alice", + "SupplierID": 26, + "CategoryID": 5, + "QuantityPerUnit": "24 - 250 g pkgs.", + "UnitPrice": 38, + "UnitsInStock": 21, + "UnitsOnOrder": 10, + "ReorderLevel": 30, + "Discontinued": 0, + "EAN13": "070684900056" + }, + { + "ProductID": 57, + "ProductName": "Ravioli Angelo", + "SupplierID": 26, + "CategoryID": 5, + "QuantityPerUnit": "24 - 250 g pkgs.", + "UnitPrice": 19.5, + "UnitsInStock": 36, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": 0, + "EAN13": "070684900057" + }, + { + "ProductID": 58, + "ProductName": "Escargots de Bourgogne", + "SupplierID": 27, + "CategoryID": 8, + "QuantityPerUnit": "24 pieces", + "UnitPrice": 13.25, + "UnitsInStock": 62, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": 0, + "EAN13": "070684900058" + }, + { + "ProductID": 59, + "ProductName": "Raclette Courdavault", + "SupplierID": 28, + "CategoryID": 4, + "QuantityPerUnit": "5 kg pkg.", + "UnitPrice": 55, + "UnitsInStock": 79, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900059" + }, + { + "ProductID": 60, + "ProductName": "Camembert Pierrot", + "SupplierID": 28, + "CategoryID": 4, + "QuantityPerUnit": "15 - 300 g rounds", + "UnitPrice": 34, + "UnitsInStock": 19, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900060" + }, + { + "ProductID": 61, + "ProductName": "Sirop d'érable", + "SupplierID": 29, + "CategoryID": 2, + "QuantityPerUnit": "24 - 500 ml bottles", + "UnitPrice": 28.5, + "UnitsInStock": 113, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900061" + }, + { + "ProductID": 62, + "ProductName": "Tarte au sucre", + "SupplierID": 29, + "CategoryID": 3, + "QuantityPerUnit": "48 pies", + "UnitPrice": 49.3, + "UnitsInStock": 17, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900062" + }, + { + "ProductID": 63, + "ProductName": "Vegie-spread", + "SupplierID": 7, + "CategoryID": 2, + "QuantityPerUnit": "15 - 625 g jars", + "UnitPrice": 43.9, + "UnitsInStock": 24, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": 0, + "EAN13": "070684900063" + }, + { + "ProductID": 64, + "ProductName": "Wimmers gute Semmelknödel", + "SupplierID": 12, + "CategoryID": 5, + "QuantityPerUnit": "20 bags x 4 pieces", + "UnitPrice": 33.25, + "UnitsInStock": 22, + "UnitsOnOrder": 80, + "ReorderLevel": 30, + "Discontinued": 0, + "EAN13": "070684900064" + }, + { + "ProductID": 65, + "ProductName": "Louisiana Fiery Hot Pepper Sauce", + "SupplierID": 2, + "CategoryID": 2, + "QuantityPerUnit": "32 - 8 oz bottles", + "UnitPrice": 21.05, + "UnitsInStock": 76, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900065" + }, + { + "ProductID": 66, + "ProductName": "Louisiana Hot Spiced Okra", + "SupplierID": 2, + "CategoryID": 2, + "QuantityPerUnit": "24 - 8 oz jars", + "UnitPrice": 17, + "UnitsInStock": 4, + "UnitsOnOrder": 100, + "ReorderLevel": 20, + "Discontinued": 0, + "EAN13": "070684900066" + }, + { + "ProductID": 67, + "ProductName": "Laughing Lumberjack Lager", + "SupplierID": 16, + "CategoryID": 1, + "QuantityPerUnit": "24 - 12 oz bottles", + "UnitPrice": 14, + "UnitsInStock": 52, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": 0, + "EAN13": "070684900067" + }, + { + "ProductID": 68, + "ProductName": "Scottish Longbreads", + "SupplierID": 8, + "CategoryID": 3, + "QuantityPerUnit": "10 boxes x 8 pieces", + "UnitPrice": 12.5, + "UnitsInStock": 6, + "UnitsOnOrder": 10, + "ReorderLevel": 15, + "Discontinued": 0, + "EAN13": "070684900068" + }, + { + "ProductID": 69, + "ProductName": "Gudbrandsdalsost", + "SupplierID": 15, + "CategoryID": 4, + "QuantityPerUnit": "10 kg pkg.", + "UnitPrice": 36, + "UnitsInStock": 26, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": 0, + "EAN13": "070684900069" + }, + { + "ProductID": 70, + "ProductName": "Outback Lager", + "SupplierID": 7, + "CategoryID": 1, + "QuantityPerUnit": "24 - 355 ml bottles", + "UnitPrice": 15, + "UnitsInStock": 15, + "UnitsOnOrder": 10, + "ReorderLevel": 30, + "Discontinued": 0, + "EAN13": "070684900070" + }, + { + "ProductID": 71, + "ProductName": "Flotemysost", + "SupplierID": 15, + "CategoryID": 4, + "QuantityPerUnit": "10 - 500 g pkgs.", + "UnitPrice": 21.5, + "UnitsInStock": 26, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900071" + }, + { + "ProductID": 72, + "ProductName": "Mozzarella di Giovanni", + "SupplierID": 14, + "CategoryID": 4, + "QuantityPerUnit": "24 - 200 g pkgs.", + "UnitPrice": 34.8, + "UnitsInStock": 14, + "UnitsOnOrder": 0, + "ReorderLevel": 0, + "Discontinued": 0, + "EAN13": "070684900072" + }, + { + "ProductID": 73, + "ProductName": "Röd Kaviar", + "SupplierID": 17, + "CategoryID": 8, + "QuantityPerUnit": "24 - 150 g jars", + "UnitPrice": 15, + "UnitsInStock": 101, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": 0, + "EAN13": "070684900073" + }, + { + "ProductID": 74, + "ProductName": "Longlife Tofu", + "SupplierID": 4, + "CategoryID": 7, + "QuantityPerUnit": "5 kg pkg.", + "UnitPrice": 10, + "UnitsInStock": 4, + "UnitsOnOrder": 20, + "ReorderLevel": 5, + "Discontinued": 0, + "EAN13": "070684900074" + }, + { + "ProductID": 75, + "ProductName": "Rhönbräu Klosterbier", + "SupplierID": 12, + "CategoryID": 1, + "QuantityPerUnit": "24 - 0.5 l bottles", + "UnitPrice": 7.75, + "UnitsInStock": 125, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": 0, + "EAN13": "070684900075" + }, + { + "ProductID": 76, + "ProductName": "Lakkalikööri", + "SupplierID": 23, + "CategoryID": 1, + "QuantityPerUnit": "500 ml", + "UnitPrice": 18, + "UnitsInStock": 57, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": 0, + "EAN13": "070684900076" + }, + { + "ProductID": 77, + "ProductName": "Original Frankfurter grüne Soße", + "SupplierID": 12, + "CategoryID": 2, + "QuantityPerUnit": "12 boxes", + "UnitPrice": 13, + "UnitsInStock": 32, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": 0, + "EAN13": "070684900077" + } + ] +} diff --git a/api/src/Erp.Platform.HttpApi.Host/Data/reportsData.db b/api/src/Erp.Platform.HttpApi.Host/Data/reportsData.db new file mode 100644 index 0000000000000000000000000000000000000000..7a11360f74a80745fc6a2494ea7ace96101474ff GIT binary patch literal 32768 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 V{Rg)GclVsw`u}1JbiMWe{{Uu`6D + + @@ -42,5 +44,20 @@ + + + PreserveNewest + + + PreserveNewest + + + + + + XtraReport + + + diff --git a/api/src/Erp.Platform.HttpApi.Host/PlatformHttpApiHostModule.cs b/api/src/Erp.Platform.HttpApi.Host/PlatformHttpApiHostModule.cs index 960fe1f9..3e91cb4c 100644 --- a/api/src/Erp.Platform.HttpApi.Host/PlatformHttpApiHostModule.cs +++ b/api/src/Erp.Platform.HttpApi.Host/PlatformHttpApiHostModule.cs @@ -9,6 +9,7 @@ using Erp.MailQueue; using Erp.Notifications.Application; using Erp.Platform.Classrooms; using Erp.Platform.EntityFrameworkCore; +using Erp.Reports; using Erp.SqlQueryManager; using Erp.Platform.Extensions; using Erp.Platform.FileManagement; @@ -55,6 +56,10 @@ using Erp.Platform.DynamicServices; using static Erp.Platform.PlatformConsts; using static Erp.Settings.SettingsConsts; using Hangfire.SqlServer; +using DevExpress.AspNetCore; +using DevExpress.AspNetCore.Reporting; +using DevExpress.XtraReports.Web.Extensions; +using Erp.Platform.ReportServices; namespace Erp.Platform; @@ -69,7 +74,8 @@ namespace Erp.Platform; typeof(AbpAspNetCoreSerilogModule), typeof(AbpSwashbuckleModule), typeof(AbpBackgroundWorkersHangfireModule), - typeof(SqlQueryManagerApplicationModule) + typeof(SqlQueryManagerApplicationModule), + typeof(ErpReportsApplicationModule) )] public class PlatformHttpApiHostModule : AbpModule { @@ -127,6 +133,7 @@ public class PlatformHttpApiHostModule : AbpModule ConfigureAuditing(); ConfigureDynamicServices(context); + ConfigureDevExpressReporting(context); context.Services.AddSignalR(); @@ -207,6 +214,7 @@ public class PlatformHttpApiHostModule : AbpModule options.ConventionalControllers.Create(typeof(ErpMailQueueModule).Assembly); options.ConventionalControllers.Create(typeof(NotificationApplicationModule).Assembly); options.ConventionalControllers.Create(typeof(SqlQueryManagerApplicationModule).Assembly); + options.ConventionalControllers.Create(typeof(ErpReportsApplicationModule).Assembly); options.ChangeControllerModelApiExplorerGroupName = false; options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(PlatformUpdateProfileDto)); options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(UploadFileDto)); @@ -386,6 +394,30 @@ public class PlatformHttpApiHostModule : AbpModule context.Services.AddSingleton(); } + private void ConfigureDevExpressReporting(ServiceConfigurationContext context) + { + context.Services.AddDevExpressControls(); + context.Services.ConfigureReportingServices(configurator => + { + configurator.ConfigureReportDesigner(designerConfigurator => + { + }); + configurator.ConfigureWebDocumentViewer(viewerConfigurator => + { + viewerConfigurator.UseCachedReportSourceBuilder(); + }); + }); + + // Register report storage extension + context.Services.AddScoped(); + + // Register custom data connection providers + context.Services.AddScoped(); + context.Services.AddScoped(); + context.Services.AddScoped(); + context.Services.AddScoped(); + } + public override void OnApplicationInitialization(ApplicationInitializationContext context) { var app = context.GetApplicationBuilder(); diff --git a/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/ReportsFactory.cs b/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/ReportsFactory.cs new file mode 100644 index 00000000..50779f8c --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/ReportsFactory.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using DevExpress.XtraReports.UI; + +namespace Erp.Reports.PredefinedReports; + +public static class ReportsFactory +{ + public static Dictionary> Reports = new Dictionary>() + { + ["TestReport"] = () => new TestReport() + }; +} diff --git a/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.Designer.cs b/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.Designer.cs new file mode 100644 index 00000000..e9a8fad3 --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.Designer.cs @@ -0,0 +1,559 @@ +namespace Erp.Reports.PredefinedReports +{ + partial class TestReport + { + ///

+ /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if(disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + DevExpress.DataAccess.Sql.SelectQuery selectQuery1 = new DevExpress.DataAccess.Sql.SelectQuery(); + DevExpress.DataAccess.Sql.Column column1 = new DevExpress.DataAccess.Sql.Column(); + DevExpress.DataAccess.Sql.ColumnExpression columnExpression1 = new DevExpress.DataAccess.Sql.ColumnExpression(); + DevExpress.DataAccess.Sql.Table table4 = new DevExpress.DataAccess.Sql.Table(); + DevExpress.DataAccess.Sql.Column column2 = new DevExpress.DataAccess.Sql.Column(); + DevExpress.DataAccess.Sql.ColumnExpression columnExpression2 = new DevExpress.DataAccess.Sql.ColumnExpression(); + DevExpress.DataAccess.Sql.Column column3 = new DevExpress.DataAccess.Sql.Column(); + DevExpress.DataAccess.Sql.ColumnExpression columnExpression3 = new DevExpress.DataAccess.Sql.ColumnExpression(); + DevExpress.DataAccess.Sql.Column column4 = new DevExpress.DataAccess.Sql.Column(); + DevExpress.DataAccess.Sql.ColumnExpression columnExpression4 = new DevExpress.DataAccess.Sql.ColumnExpression(); + DevExpress.DataAccess.Sql.Column column5 = new DevExpress.DataAccess.Sql.Column(); + DevExpress.DataAccess.Sql.ColumnExpression columnExpression5 = new DevExpress.DataAccess.Sql.ColumnExpression(); + DevExpress.DataAccess.Sql.Column column6 = new DevExpress.DataAccess.Sql.Column(); + DevExpress.DataAccess.Sql.ColumnExpression columnExpression6 = new DevExpress.DataAccess.Sql.ColumnExpression(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TestReport)); + this.TopMargin = new DevExpress.XtraReports.UI.TopMarginBand(); + this.BottomMargin = new DevExpress.XtraReports.UI.BottomMarginBand(); + this.pageInfo1 = new DevExpress.XtraReports.UI.XRPageInfo(); + this.pageInfo2 = new DevExpress.XtraReports.UI.XRPageInfo(); + this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand(); + this.label1 = new DevExpress.XtraReports.UI.XRLabel(); + this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand(); + this.table1 = new DevExpress.XtraReports.UI.XRTable(); + this.tableRow1 = new DevExpress.XtraReports.UI.XRTableRow(); + this.tableCell1 = new DevExpress.XtraReports.UI.XRTableCell(); + this.tableCell2 = new DevExpress.XtraReports.UI.XRTableCell(); + this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand(); + this.table2 = new DevExpress.XtraReports.UI.XRTable(); + this.tableRow2 = new DevExpress.XtraReports.UI.XRTableRow(); + this.tableCell3 = new DevExpress.XtraReports.UI.XRTableCell(); + this.tableCell4 = new DevExpress.XtraReports.UI.XRTableCell(); + this.tableCell5 = new DevExpress.XtraReports.UI.XRTableCell(); + this.tableCell6 = new DevExpress.XtraReports.UI.XRTableCell(); + this.tableCell7 = new DevExpress.XtraReports.UI.XRTableCell(); + this.Detail = new DevExpress.XtraReports.UI.DetailBand(); + this.table3 = new DevExpress.XtraReports.UI.XRTable(); + this.tableRow3 = new DevExpress.XtraReports.UI.XRTableRow(); + this.tableCell8 = new DevExpress.XtraReports.UI.XRTableCell(); + this.tableCell9 = new DevExpress.XtraReports.UI.XRTableCell(); + this.tableCell10 = new DevExpress.XtraReports.UI.XRTableCell(); + this.pictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox(); + this.tableCell11 = new DevExpress.XtraReports.UI.XRTableCell(); + this.pictureBox2 = new DevExpress.XtraReports.UI.XRPictureBox(); + this.tableCell12 = new DevExpress.XtraReports.UI.XRTableCell(); + this.pictureBox3 = new DevExpress.XtraReports.UI.XRPictureBox(); + this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand(); + this.label2 = new DevExpress.XtraReports.UI.XRLabel(); + this.sqlDataSource1 = new DevExpress.DataAccess.Sql.SqlDataSource(this.components); + this.Title = new DevExpress.XtraReports.UI.XRControlStyle(); + this.GroupCaption1 = new DevExpress.XtraReports.UI.XRControlStyle(); + this.GroupData1 = new DevExpress.XtraReports.UI.XRControlStyle(); + this.DetailCaption1 = new DevExpress.XtraReports.UI.XRControlStyle(); + this.DetailData1 = new DevExpress.XtraReports.UI.XRControlStyle(); + this.GroupFooterBackground3 = new DevExpress.XtraReports.UI.XRControlStyle(); + this.DetailData3_Odd = new DevExpress.XtraReports.UI.XRControlStyle(); + this.PageInfo = new DevExpress.XtraReports.UI.XRControlStyle(); + ((System.ComponentModel.ISupportInitialize)(this.table1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.table2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.table3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); + // + // TopMargin + // + this.TopMargin.Name = "TopMargin"; + // + // BottomMargin + // + this.BottomMargin.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.pageInfo1, + this.pageInfo2}); + this.BottomMargin.Name = "BottomMargin"; + // + // pageInfo1 + // + this.pageInfo1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.pageInfo1.Name = "pageInfo1"; + this.pageInfo1.PageInfo = DevExpress.XtraPrinting.PageInfo.DateTime; + this.pageInfo1.SizeF = new System.Drawing.SizeF(325F, 23F); + this.pageInfo1.StyleName = "PageInfo"; + // + // pageInfo2 + // + this.pageInfo2.LocationFloat = new DevExpress.Utils.PointFloat(325F, 0F); + this.pageInfo2.Name = "pageInfo2"; + this.pageInfo2.SizeF = new System.Drawing.SizeF(325F, 23F); + this.pageInfo2.StyleName = "PageInfo"; + this.pageInfo2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight; + this.pageInfo2.TextFormatString = "Page {0} of {1}"; + // + // ReportHeader + // + this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.label1}); + this.ReportHeader.HeightF = 60F; + this.ReportHeader.Name = "ReportHeader"; + // + // label1 + // + this.label1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.label1.Name = "label1"; + this.label1.SizeF = new System.Drawing.SizeF(650F, 24.19433F); + this.label1.StyleName = "Title"; + this.label1.Text = "Report"; + // + // GroupHeader1 + // + this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.table1}); + this.GroupHeader1.GroupFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] { + new DevExpress.XtraReports.UI.GroupField("CategoryID", DevExpress.XtraReports.UI.XRColumnSortOrder.Ascending)}); + this.GroupHeader1.GroupUnion = DevExpress.XtraReports.UI.GroupUnion.WithFirstDetail; + this.GroupHeader1.HeightF = 27F; + this.GroupHeader1.Level = 1; + this.GroupHeader1.Name = "GroupHeader1"; + // + // table1 + // + this.table1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 2F); + this.table1.Name = "table1"; + this.table1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { + this.tableRow1}); + this.table1.SizeF = new System.Drawing.SizeF(650F, 25F); + // + // tableRow1 + // + this.tableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.tableCell1, + this.tableCell2}); + this.tableRow1.Name = "tableRow1"; + this.tableRow1.Weight = 1D; + // + // tableCell1 + // + this.tableCell1.Name = "tableCell1"; + this.tableCell1.StyleName = "GroupCaption1"; + this.tableCell1.Text = "CATEGORY ID"; + this.tableCell1.Weight = 1434852.375D; + // + // tableCell2 + // + this.tableCell2.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[CategoryID]")}); + this.tableCell2.Name = "tableCell2"; + this.tableCell2.StyleName = "GroupData1"; + this.tableCell2.Weight = 9214747D; + // + // GroupHeader2 + // + this.GroupHeader2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.table2}); + this.GroupHeader2.GroupUnion = DevExpress.XtraReports.UI.GroupUnion.WithFirstDetail; + this.GroupHeader2.HeightF = 28F; + this.GroupHeader2.Level = 2; + this.GroupHeader2.Name = "GroupHeader2"; + // + // table2 + // + this.table2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.table2.Name = "table2"; + this.table2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { + this.tableRow2}); + this.table2.SizeF = new System.Drawing.SizeF(650F, 28F); + // + // tableRow2 + // + this.tableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.tableCell3, + this.tableCell4, + this.tableCell5, + this.tableCell6, + this.tableCell7}); + this.tableRow2.Name = "tableRow2"; + this.tableRow2.Weight = 1D; + // + // tableCell3 + // + this.tableCell3.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.tableCell3.Name = "tableCell3"; + this.tableCell3.StyleName = "DetailCaption1"; + this.tableCell3.StylePriority.UseBorders = false; + this.tableCell3.Text = "Category Name"; + this.tableCell3.Weight = 0.29834482046274041D; + // + // tableCell4 + // + this.tableCell4.Name = "tableCell4"; + this.tableCell4.StyleName = "DetailCaption1"; + this.tableCell4.Text = "Description"; + this.tableCell4.Weight = 0.2344280066856971D; + // + // tableCell5 + // + this.tableCell5.Name = "tableCell5"; + this.tableCell5.StyleName = "DetailCaption1"; + this.tableCell5.Text = "Picture"; + this.tableCell5.Weight = 0.1609015596829928D; + // + // tableCell6 + // + this.tableCell6.Name = "tableCell6"; + this.tableCell6.StyleName = "DetailCaption1"; + this.tableCell6.Text = "Icon17"; + this.tableCell6.Weight = 0.153162841796875D; + // + // tableCell7 + // + this.tableCell7.Name = "tableCell7"; + this.tableCell7.StyleName = "DetailCaption1"; + this.tableCell7.Text = "Icon25"; + this.tableCell7.Weight = 0.15316274789663462D; + // + // Detail + // + this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.table3}); + this.Detail.HeightF = 25F; + this.Detail.Name = "Detail"; + // + // table3 + // + this.table3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.table3.Name = "table3"; + this.table3.OddStyleName = "DetailData3_Odd"; + this.table3.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { + this.tableRow3}); + this.table3.SizeF = new System.Drawing.SizeF(650F, 25F); + // + // tableRow3 + // + this.tableRow3.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.tableCell8, + this.tableCell9, + this.tableCell10, + this.tableCell11, + this.tableCell12}); + this.tableRow3.Name = "tableRow3"; + this.tableRow3.Weight = 11.5D; + // + // tableCell8 + // + this.tableCell8.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.tableCell8.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[CategoryName]")}); + this.tableCell8.Name = "tableCell8"; + this.tableCell8.StyleName = "DetailData1"; + this.tableCell8.StylePriority.UseBorders = false; + this.tableCell8.Weight = 0.29834482046274041D; + // + // tableCell9 + // + this.tableCell9.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[Description]")}); + this.tableCell9.Name = "tableCell9"; + this.tableCell9.StyleName = "DetailData1"; + this.tableCell9.Weight = 0.2344280066856971D; + // + // tableCell10 + // + this.tableCell10.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.pictureBox1}); + this.tableCell10.Name = "tableCell10"; + this.tableCell10.StyleName = "DetailData1"; + this.tableCell10.Weight = 0.1609015596829928D; + // + // pictureBox1 + // + this.pictureBox1.AnchorHorizontal = ((DevExpress.XtraReports.UI.HorizontalAnchorStyles)((DevExpress.XtraReports.UI.HorizontalAnchorStyles.Left | DevExpress.XtraReports.UI.HorizontalAnchorStyles.Right))); + this.pictureBox1.AnchorVertical = ((DevExpress.XtraReports.UI.VerticalAnchorStyles)((DevExpress.XtraReports.UI.VerticalAnchorStyles.Top | DevExpress.XtraReports.UI.VerticalAnchorStyles.Bottom))); + this.pictureBox1.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "ImageSource", "[Picture]")}); + this.pictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(2.083333F, 0F); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.SizeF = new System.Drawing.SizeF(102.5027F, 25F); + this.pictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage; + // + // tableCell11 + // + this.tableCell11.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.pictureBox2}); + this.tableCell11.Name = "tableCell11"; + this.tableCell11.StyleName = "DetailData1"; + this.tableCell11.Weight = 0.153162841796875D; + // + // pictureBox2 + // + this.pictureBox2.AnchorHorizontal = ((DevExpress.XtraReports.UI.HorizontalAnchorStyles)((DevExpress.XtraReports.UI.HorizontalAnchorStyles.Left | DevExpress.XtraReports.UI.HorizontalAnchorStyles.Right))); + this.pictureBox2.AnchorVertical = ((DevExpress.XtraReports.UI.VerticalAnchorStyles)((DevExpress.XtraReports.UI.VerticalAnchorStyles.Top | DevExpress.XtraReports.UI.VerticalAnchorStyles.Bottom))); + this.pictureBox2.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "ImageSource", "[Icon17]")}); + this.pictureBox2.LocationFloat = new DevExpress.Utils.PointFloat(2.083333F, 0F); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.SizeF = new System.Drawing.SizeF(97.47251F, 25F); + this.pictureBox2.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage; + // + // tableCell12 + // + this.tableCell12.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.pictureBox3}); + this.tableCell12.Name = "tableCell12"; + this.tableCell12.StyleName = "DetailData1"; + this.tableCell12.Weight = 0.15316274789663462D; + // + // pictureBox3 + // + this.pictureBox3.AnchorHorizontal = ((DevExpress.XtraReports.UI.HorizontalAnchorStyles)((DevExpress.XtraReports.UI.HorizontalAnchorStyles.Left | DevExpress.XtraReports.UI.HorizontalAnchorStyles.Right))); + this.pictureBox3.AnchorVertical = ((DevExpress.XtraReports.UI.VerticalAnchorStyles)((DevExpress.XtraReports.UI.VerticalAnchorStyles.Top | DevExpress.XtraReports.UI.VerticalAnchorStyles.Bottom))); + this.pictureBox3.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { + new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "ImageSource", "[Icon25]")}); + this.pictureBox3.LocationFloat = new DevExpress.Utils.PointFloat(2.083333F, 0F); + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.SizeF = new System.Drawing.SizeF(97.47245F, 25F); + this.pictureBox3.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage; + // + // GroupFooter1 + // + this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.label2}); + this.GroupFooter1.GroupUnion = DevExpress.XtraReports.UI.GroupFooterUnion.WithLastDetail; + this.GroupFooter1.HeightF = 6F; + this.GroupFooter1.Name = "GroupFooter1"; + // + // label2 + // + this.label2.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.label2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.label2.Name = "label2"; + this.label2.SizeF = new System.Drawing.SizeF(650F, 2.08F); + this.label2.StyleName = "GroupFooterBackground3"; + this.label2.StylePriority.UseBorders = false; + // + // sqlDataSource1 + // + this.sqlDataSource1.ConnectionName = "NWindConnectionString"; + this.sqlDataSource1.Name = "sqlDataSource1"; + columnExpression1.ColumnName = "CategoryID"; + table4.Name = "Categories"; + columnExpression1.Table = table4; + column1.Expression = columnExpression1; + columnExpression2.ColumnName = "CategoryName"; + columnExpression2.Table = table4; + column2.Expression = columnExpression2; + columnExpression3.ColumnName = "Description"; + columnExpression3.Table = table4; + column3.Expression = columnExpression3; + columnExpression4.ColumnName = "Picture"; + columnExpression4.Table = table4; + column4.Expression = columnExpression4; + columnExpression5.ColumnName = "Icon17"; + columnExpression5.Table = table4; + column5.Expression = columnExpression5; + columnExpression6.ColumnName = "Icon25"; + columnExpression6.Table = table4; + column6.Expression = columnExpression6; + selectQuery1.Columns.Add(column1); + selectQuery1.Columns.Add(column2); + selectQuery1.Columns.Add(column3); + selectQuery1.Columns.Add(column4); + selectQuery1.Columns.Add(column5); + selectQuery1.Columns.Add(column6); + selectQuery1.Name = "Categories"; + selectQuery1.Tables.Add(table4); + this.sqlDataSource1.Queries.AddRange(new DevExpress.DataAccess.Sql.SqlQuery[] { + selectQuery1}); + this.sqlDataSource1.ResultSchemaSerializable = resources.GetString("sqlDataSource1.ResultSchemaSerializable"); + // + // Title + // + this.Title.BackColor = System.Drawing.Color.Transparent; + this.Title.BorderColor = System.Drawing.Color.Black; + this.Title.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.Title.BorderWidth = 1F; + this.Title.Font = new DevExpress.Drawing.DXFont("Arial", 14.25F); + this.Title.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(70)))), ((int)(((byte)(80))))); + this.Title.Name = "Title"; + this.Title.Padding = new DevExpress.XtraPrinting.PaddingInfo(6, 6, 0, 0, 100F); + // + // GroupCaption1 + // + this.GroupCaption1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(181)))), ((int)(((byte)(211)))), ((int)(((byte)(142))))); + this.GroupCaption1.BorderColor = System.Drawing.Color.White; + this.GroupCaption1.Borders = DevExpress.XtraPrinting.BorderSide.Bottom; + this.GroupCaption1.BorderWidth = 2F; + this.GroupCaption1.Font = new DevExpress.Drawing.DXFont("Arial", 8.25F, DevExpress.Drawing.DXFontStyle.Bold); + this.GroupCaption1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(228)))), ((int)(((byte)(228)))), ((int)(((byte)(228))))); + this.GroupCaption1.Name = "GroupCaption1"; + this.GroupCaption1.Padding = new DevExpress.XtraPrinting.PaddingInfo(6, 2, 0, 0, 100F); + this.GroupCaption1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // + // GroupData1 + // + this.GroupData1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(181)))), ((int)(((byte)(211)))), ((int)(((byte)(142))))); + this.GroupData1.BorderColor = System.Drawing.Color.White; + this.GroupData1.Borders = DevExpress.XtraPrinting.BorderSide.Bottom; + this.GroupData1.BorderWidth = 2F; + this.GroupData1.Font = new DevExpress.Drawing.DXFont("Arial", 8.25F, DevExpress.Drawing.DXFontStyle.Bold); + this.GroupData1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(70)))), ((int)(((byte)(80))))); + this.GroupData1.Name = "GroupData1"; + this.GroupData1.Padding = new DevExpress.XtraPrinting.PaddingInfo(6, 2, 0, 0, 100F); + this.GroupData1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // + // DetailCaption1 + // + this.DetailCaption1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(181)))), ((int)(((byte)(211)))), ((int)(((byte)(142))))); + this.DetailCaption1.BorderColor = System.Drawing.Color.White; + this.DetailCaption1.Borders = DevExpress.XtraPrinting.BorderSide.Left; + this.DetailCaption1.BorderWidth = 2F; + this.DetailCaption1.Font = new DevExpress.Drawing.DXFont("Arial", 8.25F, DevExpress.Drawing.DXFontStyle.Bold); + this.DetailCaption1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(70)))), ((int)(((byte)(80))))); + this.DetailCaption1.Name = "DetailCaption1"; + this.DetailCaption1.Padding = new DevExpress.XtraPrinting.PaddingInfo(6, 6, 0, 0, 100F); + this.DetailCaption1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // + // DetailData1 + // + this.DetailData1.BorderColor = System.Drawing.Color.Transparent; + this.DetailData1.Borders = DevExpress.XtraPrinting.BorderSide.Left; + this.DetailData1.BorderWidth = 2F; + this.DetailData1.Font = new DevExpress.Drawing.DXFont("Arial", 8.25F); + this.DetailData1.ForeColor = System.Drawing.Color.Black; + this.DetailData1.Name = "DetailData1"; + this.DetailData1.Padding = new DevExpress.XtraPrinting.PaddingInfo(6, 6, 0, 0, 100F); + this.DetailData1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // + // GroupFooterBackground3 + // + this.GroupFooterBackground3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(117)))), ((int)(((byte)(129))))); + this.GroupFooterBackground3.BorderColor = System.Drawing.Color.White; + this.GroupFooterBackground3.Borders = DevExpress.XtraPrinting.BorderSide.Bottom; + this.GroupFooterBackground3.BorderWidth = 2F; + this.GroupFooterBackground3.Font = new DevExpress.Drawing.DXFont("Arial", 8.25F, DevExpress.Drawing.DXFontStyle.Bold); + this.GroupFooterBackground3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(228)))), ((int)(((byte)(228)))), ((int)(((byte)(228))))); + this.GroupFooterBackground3.Name = "GroupFooterBackground3"; + this.GroupFooterBackground3.Padding = new DevExpress.XtraPrinting.PaddingInfo(6, 2, 0, 0, 100F); + this.GroupFooterBackground3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // + // DetailData3_Odd + // + this.DetailData3_Odd.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(243)))), ((int)(((byte)(245)))), ((int)(((byte)(248))))); + this.DetailData3_Odd.BorderColor = System.Drawing.Color.Transparent; + this.DetailData3_Odd.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.DetailData3_Odd.BorderWidth = 1F; + this.DetailData3_Odd.Font = new DevExpress.Drawing.DXFont("Arial", 8.25F); + this.DetailData3_Odd.ForeColor = System.Drawing.Color.Black; + this.DetailData3_Odd.Name = "DetailData3_Odd"; + this.DetailData3_Odd.Padding = new DevExpress.XtraPrinting.PaddingInfo(6, 6, 0, 0, 100F); + this.DetailData3_Odd.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // + // PageInfo + // + this.PageInfo.Font = new DevExpress.Drawing.DXFont("Arial", 8.25F, DevExpress.Drawing.DXFontStyle.Bold); + this.PageInfo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(70)))), ((int)(((byte)(80))))); + this.PageInfo.Name = "PageInfo"; + this.PageInfo.Padding = new DevExpress.XtraPrinting.PaddingInfo(6, 6, 0, 0, 100F); + // + // TestReport + // + this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { + this.TopMargin, + this.BottomMargin, + this.ReportHeader, + this.GroupHeader1, + this.GroupHeader2, + this.Detail, + this.GroupFooter1}); + this.ComponentStorage.AddRange(new System.ComponentModel.IComponent[] { + this.sqlDataSource1}); + this.DataMember = "Categories"; + this.DataSource = this.sqlDataSource1; + this.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F); + this.StyleSheet.AddRange(new DevExpress.XtraReports.UI.XRControlStyle[] { + this.Title, + this.GroupCaption1, + this.GroupData1, + this.DetailCaption1, + this.DetailData1, + this.GroupFooterBackground3, + this.DetailData3_Odd, + this.PageInfo}); + this.Version = "22.2"; + ((System.ComponentModel.ISupportInitialize)(this.table1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.table2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.table3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); + + } + + #endregion + + private DevExpress.XtraReports.UI.TopMarginBand TopMargin; + private DevExpress.XtraReports.UI.BottomMarginBand BottomMargin; + private DevExpress.XtraReports.UI.XRPageInfo pageInfo1; + private DevExpress.XtraReports.UI.XRPageInfo pageInfo2; + private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader; + private DevExpress.XtraReports.UI.XRLabel label1; + private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1; + private DevExpress.XtraReports.UI.XRTable table1; + private DevExpress.XtraReports.UI.XRTableRow tableRow1; + private DevExpress.XtraReports.UI.XRTableCell tableCell1; + private DevExpress.XtraReports.UI.XRTableCell tableCell2; + private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader2; + private DevExpress.XtraReports.UI.XRTable table2; + private DevExpress.XtraReports.UI.XRTableRow tableRow2; + private DevExpress.XtraReports.UI.XRTableCell tableCell3; + private DevExpress.XtraReports.UI.XRTableCell tableCell4; + private DevExpress.XtraReports.UI.XRTableCell tableCell5; + private DevExpress.XtraReports.UI.XRTableCell tableCell6; + private DevExpress.XtraReports.UI.XRTableCell tableCell7; + private DevExpress.XtraReports.UI.DetailBand Detail; + private DevExpress.XtraReports.UI.XRTable table3; + private DevExpress.XtraReports.UI.XRTableRow tableRow3; + private DevExpress.XtraReports.UI.XRTableCell tableCell8; + private DevExpress.XtraReports.UI.XRTableCell tableCell9; + private DevExpress.XtraReports.UI.XRTableCell tableCell10; + private DevExpress.XtraReports.UI.XRPictureBox pictureBox1; + private DevExpress.XtraReports.UI.XRTableCell tableCell11; + private DevExpress.XtraReports.UI.XRPictureBox pictureBox2; + private DevExpress.XtraReports.UI.XRTableCell tableCell12; + private DevExpress.XtraReports.UI.XRPictureBox pictureBox3; + private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1; + private DevExpress.XtraReports.UI.XRLabel label2; + private DevExpress.DataAccess.Sql.SqlDataSource sqlDataSource1; + private DevExpress.XtraReports.UI.XRControlStyle Title; + private DevExpress.XtraReports.UI.XRControlStyle GroupCaption1; + private DevExpress.XtraReports.UI.XRControlStyle GroupData1; + private DevExpress.XtraReports.UI.XRControlStyle DetailCaption1; + private DevExpress.XtraReports.UI.XRControlStyle DetailData1; + private DevExpress.XtraReports.UI.XRControlStyle GroupFooterBackground3; + private DevExpress.XtraReports.UI.XRControlStyle DetailData3_Odd; + private DevExpress.XtraReports.UI.XRControlStyle PageInfo; + } +} diff --git a/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.cs b/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.cs new file mode 100644 index 00000000..6278b7f7 --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.cs @@ -0,0 +1,9 @@ +namespace Erp.Reports.PredefinedReports; + +public partial class TestReport : DevExpress.XtraReports.UI.XtraReport +{ + public TestReport() + { + InitializeComponent(); + } +} diff --git a/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.resx b/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.resx new file mode 100644 index 00000000..e36faffa --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/PredefinedReports/TestReport.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + PERhdGFTZXQgTmFtZT0ic3FsRGF0YVNvdXJjZTEiPjxWaWV3IE5hbWU9IkNhdGVnb3JpZXMiPjxGaWVsZCBOYW1lPSJDYXRlZ29yeUlEIiBUeXBlPSJJbnQ2NCIgLz48RmllbGQgTmFtZT0iQ2F0ZWdvcnlOYW1lIiBUeXBlPSJTdHJpbmciIC8+PEZpZWxkIE5hbWU9IkRlc2NyaXB0aW9uIiBUeXBlPSJTdHJpbmciIC8+PEZpZWxkIE5hbWU9IlBpY3R1cmUiIFR5cGU9IkJ5dGVBcnJheSIgLz48RmllbGQgTmFtZT0iSWNvbjE3IiBUeXBlPSJCeXRlQXJyYXkiIC8+PEZpZWxkIE5hbWU9Ikljb24yNSIgVHlwZT0iQnl0ZUFycmF5IiAvPjwvVmlldz48L0RhdGFTZXQ+ + + \ No newline at end of file diff --git a/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomDataSourceWizardJsonDataConnectionStorage.cs b/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomDataSourceWizardJsonDataConnectionStorage.cs new file mode 100644 index 00000000..85223fe3 --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomDataSourceWizardJsonDataConnectionStorage.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using DevExpress.DataAccess.Json; +using DevExpress.DataAccess.Web; +using DevExpress.DataAccess.Wizard.Services; +using Erp.Reports.HttpApi.Host.Data; + +namespace Erp.Platform.ReportServices; + +public class CustomDataSourceWizardJsonDataConnectionStorage : IDataSourceWizardJsonConnectionStorage +{ + protected LegacyReportDbContext DbContext { get; } + + public CustomDataSourceWizardJsonDataConnectionStorage(LegacyReportDbContext dbContext) + { + DbContext = dbContext; + } + + public List GetConnections() + { + return DbContext.JsonDataConnections.ToList(); + } + + bool IJsonConnectionStorageService.CanSaveConnection { get { return DbContext.JsonDataConnections != null; } } + + bool IJsonConnectionStorageService.ContainsConnection(string connectionName) + { + return GetConnections().Any(x => x.Name == connectionName); + } + + IEnumerable IJsonConnectionStorageService.GetConnections() + { + return GetConnections().Select(x => CreateJsonDataConnectionFromString(x)); + } + + JsonDataConnection IJsonDataConnectionProviderService.GetJsonDataConnection(string name) + { + var connection = GetConnections().FirstOrDefault(x => x.Name == name); + if (connection == null) + throw new InvalidOperationException(); + return CreateJsonDataConnectionFromString(connection); + } + + void IJsonConnectionStorageService.SaveConnection(string connectionName, JsonDataConnection dataConnection, bool saveCredentials) + { + var connections = GetConnections(); + var connectionString = dataConnection.CreateConnectionString(); + foreach (var connection in connections) + { + if (connection.Name == connectionName) + { + connection.ConnectionString = connectionString; + DbContext.SaveChanges(); + return; + } + } + DbContext.JsonDataConnections.Add(new JsonDataConnectionDescription() { Name = connectionName, ConnectionString = connectionString }); + DbContext.SaveChanges(); + } + + public static JsonDataConnection CreateJsonDataConnectionFromString(DataConnection dataConnection) + { + return new JsonDataConnection(dataConnection.ConnectionString) { StoreConnectionNameOnly = true, Name = dataConnection.Name }; + } +} diff --git a/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomJsonDataConnectionProviderFactory.cs b/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomJsonDataConnectionProviderFactory.cs new file mode 100644 index 00000000..ba035e98 --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomJsonDataConnectionProviderFactory.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using DevExpress.DataAccess.Json; +using DevExpress.DataAccess.Web; +using Erp.Reports.HttpApi.Host.Data; + +namespace Erp.Platform.ReportServices; + +public class CustomJsonDataConnectionProviderFactory : IJsonDataConnectionProviderFactory +{ + protected LegacyReportDbContext DbContext { get; } + + public CustomJsonDataConnectionProviderFactory(LegacyReportDbContext dbContext) + { + DbContext = dbContext; + } + + public IJsonDataConnectionProviderService Create() + { + return new WebDocumentViewerJsonDataConnectionProvider(DbContext.JsonDataConnections.ToList()); + } +} + +public class WebDocumentViewerJsonDataConnectionProvider : IJsonDataConnectionProviderService +{ + readonly IEnumerable jsonDataConnections; + + public WebDocumentViewerJsonDataConnectionProvider(IEnumerable jsonDataConnections) + { + this.jsonDataConnections = jsonDataConnections; + } + + public JsonDataConnection GetJsonDataConnection(string name) + { + var connection = jsonDataConnections.FirstOrDefault(x => x.Name == name); + if (connection == null) + throw new InvalidOperationException(); + return CustomDataSourceWizardJsonDataConnectionStorage.CreateJsonDataConnectionFromString(connection); + } +} diff --git a/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomReportStorageWebExtension.cs b/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomReportStorageWebExtension.cs new file mode 100644 index 00000000..7ee5a2b1 --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomReportStorageWebExtension.cs @@ -0,0 +1,83 @@ +using System.Collections.Generic; +using System.IO; +using System.Linq; +using DevExpress.XtraReports.UI; +using Erp.Reports.EntityFrameworkCore; +using System; +using Erp.Reports.PredefinedReports; + +namespace Erp.Platform.ReportServices; + +public class CustomReportStorageWebExtension : DevExpress.XtraReports.Web.Extensions.ReportStorageWebExtension +{ + protected ErpReportsDbContext DbContext { get; set; } + + public CustomReportStorageWebExtension(ErpReportsDbContext dbContext) + { + this.DbContext = dbContext; + } + + public override bool CanSetData(string url) + { + return true; + } + + public override bool IsValidUrl(string url) + { + return true; + } + + public override byte[] GetData(string url) + { + var reportData = DbContext.ReportDefinitions.FirstOrDefault(x => x.Name == url); + if (reportData != null) + return reportData.Content; + + if (ReportsFactory.Reports.ContainsKey(url)) + { + using var ms = new MemoryStream(); + using XtraReport report = ReportsFactory.Reports[url](); + report.SaveLayoutToXml(ms); + return ms.ToArray(); + } + throw new DevExpress.XtraReports.Web.ClientControls.FaultException($"Could not find report '{url}'."); + } + + public override Dictionary GetUrls() + { + return DbContext.ReportDefinitions + .ToList() + .Select(x => x.Name) + .Union(ReportsFactory.Reports.Select(x => x.Key)) + .ToDictionary(x => x); + } + + public override void SetData(XtraReport report, string url) + { + using var stream = new MemoryStream(); + report.SaveLayoutToXml(stream); + + var reportData = DbContext.ReportDefinitions.FirstOrDefault(x => x.Name == url); + if (reportData == null) + { + var newReport = new Erp.Reports.ReportDefinitions.ReportDefinition( + Guid.NewGuid(), + url, + url, + stream.ToArray() + ); + DbContext.ReportDefinitions.Add(newReport); + } + else + { + reportData.UpdateContent(stream.ToArray()); + } + DbContext.SaveChanges(); + } + + public override string SetNewData(XtraReport report, string defaultUrl) + { + SetData(report, defaultUrl); + return defaultUrl; + } +} diff --git a/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomSqlDataConnectionProviderFactory.cs b/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomSqlDataConnectionProviderFactory.cs new file mode 100644 index 00000000..257c5419 --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomSqlDataConnectionProviderFactory.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using DevExpress.DataAccess.ConnectionParameters; +using DevExpress.DataAccess.Sql; +using DevExpress.DataAccess.Web; +using DevExpress.DataAccess.Wizard.Services; +using Erp.Reports.HttpApi.Host.Data; + +namespace Erp.Platform.ReportServices; + +public class CustomSqlDataConnectionProviderFactory : IConnectionProviderFactory +{ + private readonly LegacyReportDbContext reportDbContext; + + public CustomSqlDataConnectionProviderFactory(LegacyReportDbContext reportDbContext) + { + this.reportDbContext = reportDbContext; + } + + public IConnectionProviderService Create() + { + return new CustomSqlConnectionProviderService(reportDbContext.SqlDataConnections.ToList()); + } +} + +public class CustomSqlConnectionProviderService : IConnectionProviderService +{ + readonly IEnumerable sqlDataConnections; + + public CustomSqlConnectionProviderService(IEnumerable sqlDataConnections) + { + this.sqlDataConnections = sqlDataConnections; + } + + public SqlDataConnection LoadConnection(string connectionName) + { + var sqlDataConnectionData = sqlDataConnections.FirstOrDefault(x => x.Name == connectionName); + if (sqlDataConnectionData == null) + throw new InvalidOperationException(); + + if (string.IsNullOrEmpty(sqlDataConnectionData.ConnectionString)) + throw new KeyNotFoundException($"Connection string '{connectionName}' not found."); + + var connectionParameters = new CustomStringConnectionParameters(sqlDataConnectionData.ConnectionString); + return new SqlDataConnection(connectionName, connectionParameters); + } +} diff --git a/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomSqlDataSourceWizardConnectionStringsProvider.cs b/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomSqlDataSourceWizardConnectionStringsProvider.cs new file mode 100644 index 00000000..96a4d39d --- /dev/null +++ b/api/src/Erp.Platform.HttpApi.Host/ReportServices/CustomSqlDataSourceWizardConnectionStringsProvider.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using System.Linq; +using DevExpress.DataAccess.ConnectionParameters; +using DevExpress.DataAccess.Web; +using Erp.Reports.HttpApi.Host.Data; + +namespace Erp.Platform.ReportServices; + +public class CustomSqlDataSourceWizardConnectionStringsProvider : IDataSourceWizardConnectionStringsProvider +{ + readonly LegacyReportDbContext reportDataContext; + + public CustomSqlDataSourceWizardConnectionStringsProvider(LegacyReportDbContext reportDataContext) + { + this.reportDataContext = reportDataContext; + } + + Dictionary IDataSourceWizardConnectionStringsProvider.GetConnectionDescriptions() + { + return reportDataContext.SqlDataConnections.ToDictionary(x => x.Name, x => x.DisplayName); + } + + DataConnectionParametersBase IDataSourceWizardConnectionStringsProvider.GetDataConnectionParameters(string name) + { + return null; + } +} diff --git a/ui/package-lock.json b/ui/package-lock.json index c8147f16..fb300f97 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -29,6 +29,7 @@ "axios": "^1.7.9", "classnames": "^2.5.1", "dayjs": "^1.11.13", + "devexpress-reporting-react": "25.1.7", "devextreme": "25.1.7", "devextreme-dist": "25.1.7", "devextreme-react": "25.1.7", @@ -1714,6 +1715,22 @@ "node": ">=6.9.0" } }, + "node_modules/@devexpress/analytics-core": { + "version": "25.1.7", + "resolved": "https://registry.npmjs.org/@devexpress/analytics-core/-/analytics-core-25.1.7.tgz", + "integrity": "sha512-3H98zZe4uylgiBdIi65z4TIJQa8owrpDVR6o6ACxjH0PtjCVgZr5MgExGEobYrjqK8GUCglUCFwsUDgRVTDlcA==", + "license": "SEE LICENSE IN README.md", + "peer": true, + "dependencies": { + "@types/jquery": "^3.1.1", + "ace-builds": "^1.4.13", + "jquery": "^3.1.1", + "knockout": "~3.5.0" + }, + "peerDependencies": { + "devextreme": "25.1.7" + } + }, "node_modules/@devexpress/utils": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/@devexpress/utils/-/utils-1.4.8.tgz", @@ -3552,6 +3569,16 @@ "@types/react": "*" } }, + "node_modules/@types/jquery": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.33.tgz", + "integrity": "sha512-SeyVJXlCZpEki5F0ghuYe+L+PprQta6nRZqhONt9F13dWBtR/ftoaIbdRQ7cis7womE+X2LKhsDdDtkkDhJS6g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/sizzle": "*" + } + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -3596,9 +3623,9 @@ "license": "MIT" }, "node_modules/@types/prop-types": { - "version": "15.7.15", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", - "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", "license": "MIT" }, "node_modules/@types/raf": { @@ -3622,7 +3649,6 @@ "version": "18.3.7", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", - "devOptional": true, "license": "MIT", "peerDependencies": { "@types/react": "^18.0.0" @@ -3692,6 +3718,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/sizzle": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.10.tgz", + "integrity": "sha512-TC0dmN0K8YcWEAEfiPi5gJP14eJe30TTGjkvek3iM/1NdHHsdCA/Td6GvNndMOo/iSnIsZ4HuuhrYPDAmbxzww==", + "license": "MIT", + "peer": true + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -4206,6 +4239,13 @@ "node": ">=6.5" } }, + "node_modules/ace-builds": { + "version": "1.43.5", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.5.tgz", + "integrity": "sha512-iH5FLBKdB7SVn9GR37UgA/tpQS8OTWIxWAuq3Ofaw+Qbc69FfPXsXd9jeW7KRG2xKpKMqBDnu0tHBrCWY5QI7A==", + "license": "BSD-3-Clause", + "peer": true + }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", @@ -5762,6 +5802,40 @@ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", "license": "0BSD" }, + "node_modules/devexpress-reporting": { + "version": "25.1.7", + "resolved": "https://registry.npmjs.org/devexpress-reporting/-/devexpress-reporting-25.1.7.tgz", + "integrity": "sha512-4Ffvj6bgzII63hAfq3u53w0VypDd4HRJHQnQv4yqWm5VyW+7V7ztLLeNQRerbyqjzdhfkN2qyXqFV+3YxZwoEg==", + "license": "SEE LICENSE IN README.md", + "peer": true, + "dependencies": { + "ace-builds": "^1.4.13", + "jquery": "^3.1.1", + "knockout": "~3.5.0" + }, + "peerDependencies": { + "@devexpress/analytics-core": "25.1.7" + } + }, + "node_modules/devexpress-reporting-react": { + "version": "25.1.7", + "resolved": "https://registry.npmjs.org/devexpress-reporting-react/-/devexpress-reporting-react-25.1.7.tgz", + "integrity": "sha512-2PbTbqsAFfZec+BgGSHqU/SBpyyXWps9qx+UD1eC09s7sIHdBvooGMwPI9Vb2+FUiqq1vcDKPxH1hLUqAJYZvg==", + "license": "SEE LICENSE IN README.md", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "@devexpress/analytics-core": "25.1.7", + "@types/prop-types": "15.7.13", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "devexpress-reporting": "25.1.7", + "devextreme-react": "25.1.7", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, "node_modules/devextreme": { "version": "25.1.7", "resolved": "https://registry.npmjs.org/devextreme/-/devextreme-25.1.7.tgz", @@ -8691,6 +8765,13 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "license": "MIT", + "peer": true + }, "node_modules/js-sha3": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", @@ -8914,6 +8995,13 @@ "json-buffer": "3.0.1" } }, + "node_modules/knockout": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/knockout/-/knockout-3.5.1.tgz", + "integrity": "sha512-wRJ9I4az0QcsH7A4v4l0enUpkS++MBx0BnL/68KaLzJg7x1qmbjSlwEoCNol7KTYZ+pmtI7Eh2J0Nu6/2Z5J/Q==", + "license": "MIT", + "peer": true + }, "node_modules/language-subtag-registry": { "version": "0.3.23", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", diff --git a/ui/package.json b/ui/package.json index 653df566..44e9dc2a 100644 --- a/ui/package.json +++ b/ui/package.json @@ -40,6 +40,7 @@ "devextreme": "25.1.7", "devextreme-dist": "25.1.7", "devextreme-react": "25.1.7", + "devexpress-reporting-react": "25.1.7", "easy-peasy": "^6.0.5", "emoji-picker-react": "^4.14.1", "exceljs": "^4.4.0", diff --git a/ui/src/views/report/DevexpressReportViewer.tsx b/ui/src/views/report/DevexpressReportViewer.tsx new file mode 100644 index 00000000..76beb61b --- /dev/null +++ b/ui/src/views/report/DevexpressReportViewer.tsx @@ -0,0 +1,29 @@ +import React from 'react' +import { Container } from '@/components/shared' +import { Helmet } from 'react-helmet' +import ReportViewer, { RequestOptions } from 'devexpress-reporting-react/dx-report-viewer' +import { useLocalization } from '@/utils/hooks/useLocalization' +import 'devextreme/dist/css/dx.light.css' +import '@devexpress/analytics-core/dist/css/dx-analytics.common.css' +import '@devexpress/analytics-core/dist/css/dx-analytics.light.css' +import 'devexpress-reporting/dist/css/dx-webdocumentviewer.css' + +const DevexpressReportViewer: React.FC = () => { + const { translate } = useLocalization() + + return ( + + + + + + + + ) +} + +export default DevexpressReportViewer