From 0219d6dbae6bc0c70660adbb5a4f7fe8986dfa7e Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Thu, 4 Jun 2020 13:06:35 +0200 Subject: [PATCH] Add: Tekton component (#150) * Add: Tekton component Signed-off-by: Nicolas Lamirault * Update: documentation Signed-off-by: Nicolas Lamirault * Update: docs from master Signed-off-by: Nicolas Lamirault * Update: autogen Signed-off-by: Nicolas Lamirault * Update: autogen execute Signed-off-by: Nicolas Lamirault --- diagrams/onprem/cd.py | 4 + docs/nodes/alibabacloud.md | 144 +++++++++++------------ docs/nodes/aws.md | 156 ++++++++++++++++++------- docs/nodes/azure.md | 201 +++++++++++++++++---------------- docs/nodes/gcp.md | 136 +++++++++++----------- docs/nodes/k8s.md | 66 +++++------ docs/nodes/oci.md | 130 ++++++++++----------- docs/nodes/onprem.md | 179 ++++++++++++++--------------- docs/nodes/programming.md | 28 ++--- resources/onprem/cd/tekton.png | Bin 0 -> 78504 bytes 10 files changed, 569 insertions(+), 475 deletions(-) create mode 100644 resources/onprem/cd/tekton.png diff --git a/diagrams/onprem/cd.py b/diagrams/onprem/cd.py index ca1dc2ca..9e7f577b 100644 --- a/diagrams/onprem/cd.py +++ b/diagrams/onprem/cd.py @@ -12,4 +12,8 @@ class Spinnaker(_Cd): _icon = "spinnaker.png" +class Tekton(_Cd): + _icon = "tekton.png" + + # Aliases diff --git a/docs/nodes/alibabacloud.md b/docs/nodes/alibabacloud.md index cc274c24..fc8ea0bf 100644 --- a/docs/nodes/alibabacloud.md +++ b/docs/nodes/alibabacloud.md @@ -5,13 +5,33 @@ title: AlibabaCloud Node classes list of alibabacloud provider. -## alibabacloud.analytics +## alibabacloud.security -- **diagrams.alibabacloud.analytics.AnalyticDb** -- **diagrams.alibabacloud.analytics.ClickHouse** -- **diagrams.alibabacloud.analytics.DataLakeAnalytics** -- **diagrams.alibabacloud.analytics.ElaticMapReduce** -- **diagrams.alibabacloud.analytics.OpenSearch** +- **diagrams.alibabacloud.security.AntiBotService**, **ABS** (alias) +- **diagrams.alibabacloud.security.AntiDdosBasic** +- **diagrams.alibabacloud.security.AntiDdosPro** +- **diagrams.alibabacloud.security.AntifraudService**, **AS** (alias) +- **diagrams.alibabacloud.security.BastionHost** +- **diagrams.alibabacloud.security.CloudFirewall**, **CFW** (alias) +- **diagrams.alibabacloud.security.CloudSecurityScanner** +- **diagrams.alibabacloud.security.ContentModeration**, **CM** (alias) +- **diagrams.alibabacloud.security.CrowdsourcedSecurityTesting** +- **diagrams.alibabacloud.security.DataEncryptionService**, **DES** (alias) +- **diagrams.alibabacloud.security.DbAudit** +- **diagrams.alibabacloud.security.GameShield** +- **diagrams.alibabacloud.security.IdVerification** +- **diagrams.alibabacloud.security.ManagedSecurityService** +- **diagrams.alibabacloud.security.SecurityCenter** +- **diagrams.alibabacloud.security.ServerGuard** +- **diagrams.alibabacloud.security.SslCertificates** +- **diagrams.alibabacloud.security.WebApplicationFirewall**, **WAF** (alias) + +## alibabacloud.iot + +- **diagrams.alibabacloud.iot.IotInternetDeviceId** +- **diagrams.alibabacloud.iot.IotLinkWan** +- **diagrams.alibabacloud.iot.IotMobileConnectionPackage** +- **diagrams.alibabacloud.iot.IotPlatform** ## alibabacloud.application @@ -30,28 +50,36 @@ Node classes list of alibabacloud provider. - **diagrams.alibabacloud.application.SmartConversationAnalysis**, **SCA** (alias) - **diagrams.alibabacloud.application.Yida** -## alibabacloud.communication +## alibabacloud.network -- **diagrams.alibabacloud.communication.DirectMail** -- **diagrams.alibabacloud.communication.MobilePush** +- **diagrams.alibabacloud.network.Cdn** +- **diagrams.alibabacloud.network.CloudEnterpriseNetwork**, **CEN** (alias) +- **diagrams.alibabacloud.network.ElasticIpAddress**, **EIP** (alias) +- **diagrams.alibabacloud.network.ExpressConnect** +- **diagrams.alibabacloud.network.NatGateway** +- **diagrams.alibabacloud.network.ServerLoadBalancer**, **SLB** (alias) +- **diagrams.alibabacloud.network.SmartAccessGateway** +- **diagrams.alibabacloud.network.VirtualPrivateCloud**, **VPC** (alias) +- **diagrams.alibabacloud.network.VpnGateway** -## alibabacloud.compute +## alibabacloud.storage -- **diagrams.alibabacloud.compute.AutoScaling**, **ESS** (alias) -- **diagrams.alibabacloud.compute.BatchCompute** -- **diagrams.alibabacloud.compute.ContainerRegistry** -- **diagrams.alibabacloud.compute.ContainerService** -- **diagrams.alibabacloud.compute.ElasticComputeService**, **ECS** (alias) -- **diagrams.alibabacloud.compute.ElasticContainerInstance**, **ECI** (alias) -- **diagrams.alibabacloud.compute.ElasticHighPerformanceComputing**, **EHPC** (alias) -- **diagrams.alibabacloud.compute.ElasticSearch** -- **diagrams.alibabacloud.compute.FunctionCompute**, **FC** (alias) -- **diagrams.alibabacloud.compute.OperationOrchestrationService**, **OOS** (alias) -- **diagrams.alibabacloud.compute.ResourceOrchestrationService**, **ROS** (alias) -- **diagrams.alibabacloud.compute.ServerLoadBalancer**, **SLB** (alias) -- **diagrams.alibabacloud.compute.ServerlessAppEngine**, **SAE** (alias) -- **diagrams.alibabacloud.compute.SimpleApplicationServer**, **SAS** (alias) -- **diagrams.alibabacloud.compute.WebAppService**, **WAS** (alias) +- **diagrams.alibabacloud.storage.CloudStorageGateway** +- **diagrams.alibabacloud.storage.FileStorageHdfs**, **HDFS** (alias) +- **diagrams.alibabacloud.storage.FileStorageNas**, **NAS** (alias) +- **diagrams.alibabacloud.storage.HybridBackupRecovery**, **HBR** (alias) +- **diagrams.alibabacloud.storage.HybridCloudDisasterRecovery**, **HDR** (alias) +- **diagrams.alibabacloud.storage.Imm** +- **diagrams.alibabacloud.storage.ObjectStorageService**, **OSS** (alias) +- **diagrams.alibabacloud.storage.ObjectTableStore**, **OTS** (alias) + +## alibabacloud.analytics + +- **diagrams.alibabacloud.analytics.AnalyticDb** +- **diagrams.alibabacloud.analytics.ClickHouse** +- **diagrams.alibabacloud.analytics.DataLakeAnalytics** +- **diagrams.alibabacloud.analytics.ElaticMapReduce** +- **diagrams.alibabacloud.analytics.OpenSearch** ## alibabacloud.database @@ -73,56 +101,28 @@ Node classes list of alibabacloud provider. - **diagrams.alibabacloud.database.HybriddbForMysql** - **diagrams.alibabacloud.database.RelationalDatabaseService**, **RDS** (alias) -## alibabacloud.iot - -- **diagrams.alibabacloud.iot.IotInternetDeviceId** -- **diagrams.alibabacloud.iot.IotLinkWan** -- **diagrams.alibabacloud.iot.IotMobileConnectionPackage** -- **diagrams.alibabacloud.iot.IotPlatform** - -## alibabacloud.network - -- **diagrams.alibabacloud.network.Cdn** -- **diagrams.alibabacloud.network.CloudEnterpriseNetwork**, **CEN** (alias) -- **diagrams.alibabacloud.network.ElasticIpAddress**, **EIP** (alias) -- **diagrams.alibabacloud.network.ExpressConnect** -- **diagrams.alibabacloud.network.NatGateway** -- **diagrams.alibabacloud.network.ServerLoadBalancer**, **SLB** (alias) -- **diagrams.alibabacloud.network.SmartAccessGateway** -- **diagrams.alibabacloud.network.VirtualPrivateCloud**, **VPC** (alias) -- **diagrams.alibabacloud.network.VpnGateway** - -## alibabacloud.security +## alibabacloud.compute -- **diagrams.alibabacloud.security.AntiBotService**, **ABS** (alias) -- **diagrams.alibabacloud.security.AntiDdosBasic** -- **diagrams.alibabacloud.security.AntiDdosPro** -- **diagrams.alibabacloud.security.AntifraudService**, **AS** (alias) -- **diagrams.alibabacloud.security.BastionHost** -- **diagrams.alibabacloud.security.CloudFirewall**, **CFW** (alias) -- **diagrams.alibabacloud.security.CloudSecurityScanner** -- **diagrams.alibabacloud.security.ContentModeration**, **CM** (alias) -- **diagrams.alibabacloud.security.CrowdsourcedSecurityTesting** -- **diagrams.alibabacloud.security.DataEncryptionService**, **DES** (alias) -- **diagrams.alibabacloud.security.DbAudit** -- **diagrams.alibabacloud.security.GameShield** -- **diagrams.alibabacloud.security.IdVerification** -- **diagrams.alibabacloud.security.ManagedSecurityService** -- **diagrams.alibabacloud.security.SecurityCenter** -- **diagrams.alibabacloud.security.ServerGuard** -- **diagrams.alibabacloud.security.SslCertificates** -- **diagrams.alibabacloud.security.WebApplicationFirewall**, **WAF** (alias) +- **diagrams.alibabacloud.compute.AutoScaling**, **ESS** (alias) +- **diagrams.alibabacloud.compute.BatchCompute** +- **diagrams.alibabacloud.compute.ContainerRegistry** +- **diagrams.alibabacloud.compute.ContainerService** +- **diagrams.alibabacloud.compute.ElasticComputeService**, **ECS** (alias) +- **diagrams.alibabacloud.compute.ElasticContainerInstance**, **ECI** (alias) +- **diagrams.alibabacloud.compute.ElasticHighPerformanceComputing**, **EHPC** (alias) +- **diagrams.alibabacloud.compute.ElasticSearch** +- **diagrams.alibabacloud.compute.FunctionCompute**, **FC** (alias) +- **diagrams.alibabacloud.compute.OperationOrchestrationService**, **OOS** (alias) +- **diagrams.alibabacloud.compute.ResourceOrchestrationService**, **ROS** (alias) +- **diagrams.alibabacloud.compute.ServerLoadBalancer**, **SLB** (alias) +- **diagrams.alibabacloud.compute.ServerlessAppEngine**, **SAE** (alias) +- **diagrams.alibabacloud.compute.SimpleApplicationServer**, **SAS** (alias) +- **diagrams.alibabacloud.compute.WebAppService**, **WAS** (alias) -## alibabacloud.storage +## alibabacloud.communication -- **diagrams.alibabacloud.storage.CloudStorageGateway** -- **diagrams.alibabacloud.storage.FileStorageHdfs**, **HDFS** (alias) -- **diagrams.alibabacloud.storage.FileStorageNas**, **NAS** (alias) -- **diagrams.alibabacloud.storage.HybridBackupRecovery**, **HBR** (alias) -- **diagrams.alibabacloud.storage.HybridCloudDisasterRecovery**, **HDR** (alias) -- **diagrams.alibabacloud.storage.Imm** -- **diagrams.alibabacloud.storage.ObjectStorageService**, **OSS** (alias) -- **diagrams.alibabacloud.storage.ObjectTableStore**, **OTS** (alias) +- **diagrams.alibabacloud.communication.DirectMail** +- **diagrams.alibabacloud.communication.MobilePush** ## alibabacloud.web diff --git a/docs/nodes/aws.md b/docs/nodes/aws.md index ef5bdec2..5ab1e485 100644 --- a/docs/nodes/aws.md +++ b/docs/nodes/aws.md @@ -89,9 +89,25 @@ Node classes list of aws provider. ## aws.engagement -- **diagrams.aws.engagement.Connect** -- **diagrams.aws.engagement.Pinpoint** -- **diagrams.aws.engagement.SimpleEmailServiceSes**, **SES** (alias) +- **diagrams.aws.ml.ApacheMxnetOnAWS** +- **diagrams.aws.ml.Comprehend** +- **diagrams.aws.ml.DeepLearningAmis** +- **diagrams.aws.ml.DeepLearningContainers**, **DLC** (alias) +- **diagrams.aws.ml.Deeplens** +- **diagrams.aws.ml.Deepracer** +- **diagrams.aws.ml.ElasticInference** +- **diagrams.aws.ml.Forecast** +- **diagrams.aws.ml.Lex** +- **diagrams.aws.ml.MachineLearning** +- **diagrams.aws.ml.Personalize** +- **diagrams.aws.ml.Polly** +- **diagrams.aws.ml.Rekognition** +- **diagrams.aws.ml.SagemakerGroundTruth** +- **diagrams.aws.ml.Sagemaker** +- **diagrams.aws.ml.TensorflowOnAWS** +- **diagrams.aws.ml.Textract** +- **diagrams.aws.ml.Transcribe** +- **diagrams.aws.ml.Translate** ## aws.game @@ -122,7 +138,7 @@ Node classes list of aws provider. - **diagrams.aws.integration.SimpleQueueServiceSqs**, **SQS** (alias) - **diagrams.aws.integration.StepFunctions**, **SF** (alias) -## aws.iot +## aws.media - **diagrams.aws.iot.Freertos**, **FreeRTOS** (alias) - **diagrams.aws.iot.InternetOfThings** @@ -168,19 +184,20 @@ Node classes list of aws provider. - **diagrams.aws.management.TrustedAdvisor** - **diagrams.aws.management.WellArchitectedTool** -## aws.media +## aws.iot -- **diagrams.aws.media.ElasticTranscoder** -- **diagrams.aws.media.ElementalConductor** -- **diagrams.aws.media.ElementalDelta** -- **diagrams.aws.media.ElementalLive** -- **diagrams.aws.media.ElementalMediaconnect** -- **diagrams.aws.media.ElementalMediaconvert** -- **diagrams.aws.media.ElementalMedialive** -- **diagrams.aws.media.ElementalMediapackage** -- **diagrams.aws.media.ElementalMediastore** -- **diagrams.aws.media.ElementalMediatailor** -- **diagrams.aws.media.ElementalServer** +- **diagrams.aws.iot.Freertos**, **FreeRTOS** (alias) +- **diagrams.aws.iot.InternetOfThings** +- **diagrams.aws.iot.Iot1Click** +- **diagrams.aws.iot.IotAnalytics** +- **diagrams.aws.iot.IotButton** +- **diagrams.aws.iot.IotCore** +- **diagrams.aws.iot.IotDeviceDefender** +- **diagrams.aws.iot.IotDeviceManagement** +- **diagrams.aws.iot.IotEvents** +- **diagrams.aws.iot.IotGreengrass** +- **diagrams.aws.iot.IotSitewise** +- **diagrams.aws.iot.IotThingsGraph** ## aws.migration @@ -196,28 +213,6 @@ Node classes list of aws provider. - **diagrams.aws.migration.Snowmobile** - **diagrams.aws.migration.TransferForSftp** -## aws.ml - -- **diagrams.aws.ml.ApacheMxnetOnAWS** -- **diagrams.aws.ml.Comprehend** -- **diagrams.aws.ml.DeepLearningAmis** -- **diagrams.aws.ml.DeepLearningContainers**, **DLC** (alias) -- **diagrams.aws.ml.Deeplens** -- **diagrams.aws.ml.Deepracer** -- **diagrams.aws.ml.ElasticInference** -- **diagrams.aws.ml.Forecast** -- **diagrams.aws.ml.Lex** -- **diagrams.aws.ml.MachineLearning** -- **diagrams.aws.ml.Personalize** -- **diagrams.aws.ml.Polly** -- **diagrams.aws.ml.Rekognition** -- **diagrams.aws.ml.SagemakerGroundTruth** -- **diagrams.aws.ml.Sagemaker** -- **diagrams.aws.ml.TensorflowOnAWS** -- **diagrams.aws.ml.Textract** -- **diagrams.aws.ml.Transcribe** -- **diagrams.aws.ml.Translate** - ## aws.network - **diagrams.aws.network.APIGateway** @@ -295,3 +290,88 @@ Node classes list of aws provider. - **diagrams.aws.storage.Snowmobile** - **diagrams.aws.storage.StorageGateway** - **diagrams.aws.storage.Storage** + +## aws.analytics + +- **diagrams.aws.analytics.Analytics** +- **diagrams.aws.analytics.Athena** +- **diagrams.aws.analytics.CloudsearchSearchDocuments** +- **diagrams.aws.analytics.Cloudsearch** +- **diagrams.aws.analytics.DataPipeline** +- **diagrams.aws.analytics.ElasticsearchService**, **ES** (alias) +- **diagrams.aws.analytics.EMRCluster** +- **diagrams.aws.analytics.EMRHdfsCluster** +- **diagrams.aws.analytics.EMR** +- **diagrams.aws.analytics.GlueCrawlers** +- **diagrams.aws.analytics.GlueDataCatalog** +- **diagrams.aws.analytics.Glue** +- **diagrams.aws.analytics.KinesisDataAnalytics** +- **diagrams.aws.analytics.KinesisDataFirehose** +- **diagrams.aws.analytics.KinesisDataStreams** +- **diagrams.aws.analytics.KinesisVideoStreams** +- **diagrams.aws.analytics.Kinesis** +- **diagrams.aws.analytics.LakeFormation** +- **diagrams.aws.analytics.ManagedStreamingForKafka** +- **diagrams.aws.analytics.Quicksight** +- **diagrams.aws.analytics.RedshiftDenseComputeNode** +- **diagrams.aws.analytics.RedshiftDenseStorageNode** +- **diagrams.aws.analytics.Redshift** + +## aws.database + +- **diagrams.aws.database.Aurora** +- **diagrams.aws.database.DatabaseMigrationService**, **DMS** (alias) +- **diagrams.aws.database.Database**, **DB** (alias) +- **diagrams.aws.database.DocumentdbMongodbCompatibility**, **DocumentDB** (alias) +- **diagrams.aws.database.Dynamodb**, **DDB** (alias) +- **diagrams.aws.database.Elasticache**, **ElastiCache** (alias) +- **diagrams.aws.database.Neptune** +- **diagrams.aws.database.QuantumLedgerDatabaseQldb**, **QLDB** (alias) +- **diagrams.aws.database.RDSOnVmware** +- **diagrams.aws.database.RDS** +- **diagrams.aws.database.Redshift** +- **diagrams.aws.database.Timestream** + +## aws.compute + +- **diagrams.aws.compute.ApplicationAutoScaling**, **AutoScaling** (alias) +- **diagrams.aws.compute.Batch** +- **diagrams.aws.compute.Compute** +- **diagrams.aws.compute.EC2ContainerRegistry**, **ECR** (alias) +- **diagrams.aws.compute.EC2** +- **diagrams.aws.compute.ElasticBeanstalk**, **EB** (alias) +- **diagrams.aws.compute.ElasticContainerService**, **ECS** (alias) +- **diagrams.aws.compute.ElasticKubernetesService**, **EKS** (alias) +- **diagrams.aws.compute.Fargate** +- **diagrams.aws.compute.Lambda** +- **diagrams.aws.compute.Lightsail** +- **diagrams.aws.compute.Outposts** +- **diagrams.aws.compute.ServerlessApplicationRepository**, **SAR** (alias) +- **diagrams.aws.compute.ThinkboxDeadline** +- **diagrams.aws.compute.ThinkboxDraft** +- **diagrams.aws.compute.ThinkboxFrost** +- **diagrams.aws.compute.ThinkboxKrakatoa** +- **diagrams.aws.compute.ThinkboxSequoia** +- **diagrams.aws.compute.ThinkboxStoke** +- **diagrams.aws.compute.ThinkboxXmesh** +- **diagrams.aws.compute.VmwareCloudOnAWS** + +## aws.engagement + +- **diagrams.aws.engagement.Connect** +- **diagrams.aws.engagement.Pinpoint** +- **diagrams.aws.engagement.SimpleEmailServiceSes**, **SES** (alias) + +## aws.devtools + +- **diagrams.aws.devtools.CloudDevelopmentKit** +- **diagrams.aws.devtools.Cloud9** +- **diagrams.aws.devtools.Codebuild** +- **diagrams.aws.devtools.Codecommit** +- **diagrams.aws.devtools.Codedeploy** +- **diagrams.aws.devtools.Codepipeline** +- **diagrams.aws.devtools.Codestar** +- **diagrams.aws.devtools.CommandLineInterface**, **CLI** (alias) +- **diagrams.aws.devtools.DeveloperTools**, **DevTools** (alias) +- **diagrams.aws.devtools.ToolsAndSdks** +- **diagrams.aws.devtools.XRay** diff --git a/docs/nodes/azure.md b/docs/nodes/azure.md index 076b18d8..41216a52 100644 --- a/docs/nodes/azure.md +++ b/docs/nodes/azure.md @@ -5,73 +5,42 @@ title: Azure Node classes list of azure provider. -## azure.analytics - -- **diagrams.azure.analytics.AnalysisServices** -- **diagrams.azure.analytics.DataExplorerClusters** -- **diagrams.azure.analytics.DataFactories** -- **diagrams.azure.analytics.DataLakeAnalytics** -- **diagrams.azure.analytics.DataLakeStoreGen1** -- **diagrams.azure.analytics.Databricks** -- **diagrams.azure.analytics.EventHubClusters** -- **diagrams.azure.analytics.EventHubs** -- **diagrams.azure.analytics.Hdinsightclusters** -- **diagrams.azure.analytics.LogAnalyticsWorkspaces** -- **diagrams.azure.analytics.StreamAnalyticsJobs** - -## azure.compute +## azure.ml -- **diagrams.azure.compute.AvailabilitySets** -- **diagrams.azure.compute.BatchAccounts** -- **diagrams.azure.compute.CitrixVirtualDesktopsEssentials** -- **diagrams.azure.compute.CloudServicesClassic** -- **diagrams.azure.compute.CloudServices** -- **diagrams.azure.compute.CloudsimpleVirtualMachines** -- **diagrams.azure.compute.ContainerInstances** -- **diagrams.azure.compute.ContainerRegistries**, **ACR** (alias) -- **diagrams.azure.compute.DiskSnapshots** -- **diagrams.azure.compute.Disks** -- **diagrams.azure.compute.FunctionApps** -- **diagrams.azure.compute.KubernetesServices**, **AKS** (alias) -- **diagrams.azure.compute.MeshApplications** -- **diagrams.azure.compute.SAPHANAOnAzure** -- **diagrams.azure.compute.ServiceFabricClusters** -- **diagrams.azure.compute.VMClassic** -- **diagrams.azure.compute.VMImages** -- **diagrams.azure.compute.VMLinux** -- **diagrams.azure.compute.VMWindows** -- **diagrams.azure.compute.VM** +- **diagrams.azure.ml.BatchAI** +- **diagrams.azure.ml.BotServices** +- **diagrams.azure.ml.CognitiveServices** +- **diagrams.azure.ml.GenomicsAccounts** +- **diagrams.azure.ml.MachineLearningServiceWorkspaces** +- **diagrams.azure.ml.MachineLearningStudioWebServicePlans** +- **diagrams.azure.ml.MachineLearningStudioWebServices** +- **diagrams.azure.ml.MachineLearningStudioWorkspaces** -## azure.database +## azure.integration -- **diagrams.azure.database.BlobStorage** -- **diagrams.azure.database.CacheForRedis** -- **diagrams.azure.database.CosmosDb** -- **diagrams.azure.database.DataLake** -- **diagrams.azure.database.DatabaseForMariadbServers** -- **diagrams.azure.database.DatabaseForMysqlServers** -- **diagrams.azure.database.DatabaseForPostgresqlServers** -- **diagrams.azure.database.ElasticDatabasePools** -- **diagrams.azure.database.ElasticJobAgents** -- **diagrams.azure.database.ManagedDatabases** -- **diagrams.azure.database.SQLDatabases** -- **diagrams.azure.database.SQLDatawarehouse** -- **diagrams.azure.database.SQLManagedInstances** -- **diagrams.azure.database.SQLServerStretchDatabases** -- **diagrams.azure.database.SQLServers** -- **diagrams.azure.database.VirtualClusters** -- **diagrams.azure.database.VirtualDatacenter** +- **diagrams.azure.integration.APIForFhir** +- **diagrams.azure.integration.APIManagement** +- **diagrams.azure.integration.AppConfiguration** +- **diagrams.azure.integration.DataCatalog** +- **diagrams.azure.integration.EventGridDomains** +- **diagrams.azure.integration.EventGridSubscriptions** +- **diagrams.azure.integration.EventGridTopics** +- **diagrams.azure.integration.IntegrationAccounts** +- **diagrams.azure.integration.IntegrationServiceEnvironments** +- **diagrams.azure.integration.LogicAppsCustomConnector** +- **diagrams.azure.integration.LogicApps** +- **diagrams.azure.integration.SendgridAccounts** +- **diagrams.azure.integration.ServiceBusRelays** +- **diagrams.azure.integration.ServiceBus** +- **diagrams.azure.integration.ServiceCatalogManagedApplicationDefinitions** +- **diagrams.azure.integration.SoftwareAsAService** +- **diagrams.azure.integration.StorsimpleDeviceManagers** -## azure.devops +## azure.security -- **diagrams.azure.devops.ApplicationInsights** -- **diagrams.azure.devops.Artifacts** -- **diagrams.azure.devops.Boards** -- **diagrams.azure.devops.Devops** -- **diagrams.azure.devops.DevtestLabs** -- **diagrams.azure.devops.Pipelines** -- **diagrams.azure.devops.Repos** -- **diagrams.azure.devops.TestPlans** +- **diagrams.azure.security.KeyVaults** +- **diagrams.azure.security.SecurityCenter** +- **diagrams.azure.security.Sentinel** ## azure.general @@ -104,19 +73,9 @@ Node classes list of azure provider. ## azure.identity -- **diagrams.azure.identity.AccessReview** -- **diagrams.azure.identity.ActiveDirectoryConnectHealth** -- **diagrams.azure.identity.ActiveDirectory** -- **diagrams.azure.identity.ADB2C** -- **diagrams.azure.identity.ADDomainServices** -- **diagrams.azure.identity.ADIdentityProtection** -- **diagrams.azure.identity.ADPrivilegedIdentityManagement** -- **diagrams.azure.identity.AppRegistrations** -- **diagrams.azure.identity.ConditionalAccess** -- **diagrams.azure.identity.EnterpriseApplications** -- **diagrams.azure.identity.IdentityGovernance** -- **diagrams.azure.identity.InformationProtection** -- **diagrams.azure.identity.ManagedIdentities** +- **diagrams.azure.mobile.AppServiceMobile** +- **diagrams.azure.mobile.MobileEngagement** +- **diagrams.azure.mobile.NotificationHubs** ## azure.integration @@ -157,23 +116,6 @@ Node classes list of azure provider. - **diagrams.azure.migration.MigrationProjects** - **diagrams.azure.migration.RecoveryServicesVaults** -## azure.ml - -- **diagrams.azure.ml.BatchAI** -- **diagrams.azure.ml.BotServices** -- **diagrams.azure.ml.CognitiveServices** -- **diagrams.azure.ml.GenomicsAccounts** -- **diagrams.azure.ml.MachineLearningServiceWorkspaces** -- **diagrams.azure.ml.MachineLearningStudioWebServicePlans** -- **diagrams.azure.ml.MachineLearningStudioWebServices** -- **diagrams.azure.ml.MachineLearningStudioWorkspaces** - -## azure.mobile - -- **diagrams.azure.mobile.AppServiceMobile** -- **diagrams.azure.mobile.MobileEngagement** -- **diagrams.azure.mobile.NotificationHubs** - ## azure.network - **diagrams.azure.network.ApplicationGateway** @@ -203,11 +145,21 @@ Node classes list of azure provider. - **diagrams.azure.network.VirtualNetworks** - **diagrams.azure.network.VirtualWans** -## azure.security +## azure.identity -- **diagrams.azure.security.KeyVaults** -- **diagrams.azure.security.SecurityCenter** -- **diagrams.azure.security.Sentinel** +- **diagrams.azure.identity.AccessReview** +- **diagrams.azure.identity.ActiveDirectoryConnectHealth** +- **diagrams.azure.identity.ActiveDirectory** +- **diagrams.azure.identity.ADB2C** +- **diagrams.azure.identity.ADDomainServices** +- **diagrams.azure.identity.ADIdentityProtection** +- **diagrams.azure.identity.ADPrivilegedIdentityManagement** +- **diagrams.azure.identity.AppRegistrations** +- **diagrams.azure.identity.ConditionalAccess** +- **diagrams.azure.identity.EnterpriseApplications** +- **diagrams.azure.identity.IdentityGovernance** +- **diagrams.azure.identity.InformationProtection** +- **diagrams.azure.identity.ManagedIdentities** ## azure.storage @@ -228,6 +180,63 @@ Node classes list of azure provider. - **diagrams.azure.storage.StorsimpleDeviceManagers** - **diagrams.azure.storage.TableStorage** +## azure.analytics + +- **diagrams.azure.analytics.AnalysisServices** +- **diagrams.azure.analytics.DataExplorerClusters** +- **diagrams.azure.analytics.DataFactories** +- **diagrams.azure.analytics.DataLakeAnalytics** +- **diagrams.azure.analytics.DataLakeStoreGen1** +- **diagrams.azure.analytics.Databricks** +- **diagrams.azure.analytics.EventHubClusters** +- **diagrams.azure.analytics.EventHubs** +- **diagrams.azure.analytics.Hdinsightclusters** +- **diagrams.azure.analytics.LogAnalyticsWorkspaces** +- **diagrams.azure.analytics.StreamAnalyticsJobs** + +## azure.database + +- **diagrams.azure.database.BlobStorage** +- **diagrams.azure.database.CacheForRedis** +- **diagrams.azure.database.CosmosDb** +- **diagrams.azure.database.DataLake** +- **diagrams.azure.database.DatabaseForMariadbServers** +- **diagrams.azure.database.DatabaseForMysqlServers** +- **diagrams.azure.database.DatabaseForPostgresqlServers** +- **diagrams.azure.database.ElasticDatabasePools** +- **diagrams.azure.database.ElasticJobAgents** +- **diagrams.azure.database.ManagedDatabases** +- **diagrams.azure.database.SQLDatabases** +- **diagrams.azure.database.SQLDatawarehouse** +- **diagrams.azure.database.SQLManagedInstances** +- **diagrams.azure.database.SQLServerStretchDatabases** +- **diagrams.azure.database.SQLServers** +- **diagrams.azure.database.VirtualClusters** +- **diagrams.azure.database.VirtualDatacenter** + +## azure.compute + +- **diagrams.azure.compute.AvailabilitySets** +- **diagrams.azure.compute.BatchAccounts** +- **diagrams.azure.compute.CitrixVirtualDesktopsEssentials** +- **diagrams.azure.compute.CloudServicesClassic** +- **diagrams.azure.compute.CloudServices** +- **diagrams.azure.compute.CloudsimpleVirtualMachines** +- **diagrams.azure.compute.ContainerInstances** +- **diagrams.azure.compute.ContainerRegistries**, **ACR** (alias) +- **diagrams.azure.compute.DiskSnapshots** +- **diagrams.azure.compute.Disks** +- **diagrams.azure.compute.FunctionApps** +- **diagrams.azure.compute.KubernetesServices**, **AKS** (alias) +- **diagrams.azure.compute.MeshApplications** +- **diagrams.azure.compute.SAPHANAOnAzure** +- **diagrams.azure.compute.ServiceFabricClusters** +- **diagrams.azure.compute.VMClassic** +- **diagrams.azure.compute.VMImages** +- **diagrams.azure.compute.VMLinux** +- **diagrams.azure.compute.VMWindows** +- **diagrams.azure.compute.VM** + ## azure.web - **diagrams.azure.web.APIConnections** diff --git a/docs/nodes/gcp.md b/docs/nodes/gcp.md index 91032ce3..35c43534 100644 --- a/docs/nodes/gcp.md +++ b/docs/nodes/gcp.md @@ -5,65 +5,6 @@ title: GCP Node classes list of gcp provider. -## gcp.analytics - -- **diagrams.gcp.analytics.Bigquery**, **BigQuery** (alias) -- **diagrams.gcp.analytics.Composer** -- **diagrams.gcp.analytics.DataCatalog** -- **diagrams.gcp.analytics.DataFusion** -- **diagrams.gcp.analytics.Dataflow** -- **diagrams.gcp.analytics.Datalab** -- **diagrams.gcp.analytics.Dataprep** -- **diagrams.gcp.analytics.Dataproc** -- **diagrams.gcp.analytics.Genomics** -- **diagrams.gcp.analytics.Pubsub**, **PubSub** (alias) - -## gcp.compute - -- **diagrams.gcp.compute.AppEngine**, **GAE** (alias) -- **diagrams.gcp.compute.ComputeEngine**, **GCE** (alias) -- **diagrams.gcp.compute.ContainerOptimizedOS** -- **diagrams.gcp.compute.Functions**, **GCF** (alias) -- **diagrams.gcp.compute.GKEOnPrem** -- **diagrams.gcp.compute.GPU** -- **diagrams.gcp.compute.KubernetesEngine**, **GKE** (alias) -- **diagrams.gcp.compute.Run** - -## gcp.database - -- **diagrams.gcp.database.Bigtable**, **BigTable** (alias) -- **diagrams.gcp.database.Datastore** -- **diagrams.gcp.database.Firestore** -- **diagrams.gcp.database.Memorystore** -- **diagrams.gcp.database.Spanner** -- **diagrams.gcp.database.SQL** - -## gcp.devtools - -- **diagrams.gcp.devtools.Build** -- **diagrams.gcp.devtools.CodeForIntellij** -- **diagrams.gcp.devtools.Code** -- **diagrams.gcp.devtools.ContainerRegistry**, **GCR** (alias) -- **diagrams.gcp.devtools.GradleAppEnginePlugin** -- **diagrams.gcp.devtools.IdePlugins** -- **diagrams.gcp.devtools.MavenAppEnginePlugin** -- **diagrams.gcp.devtools.Scheduler** -- **diagrams.gcp.devtools.SDK** -- **diagrams.gcp.devtools.SourceRepositories** -- **diagrams.gcp.devtools.Tasks** -- **diagrams.gcp.devtools.TestLab** -- **diagrams.gcp.devtools.ToolsForEclipse** -- **diagrams.gcp.devtools.ToolsForPowershell** -- **diagrams.gcp.devtools.ToolsForVisualStudio** - -## gcp.iot - -- **diagrams.gcp.iot.IotCore** - -## gcp.migration - -- **diagrams.gcp.migration.TransferAppliance** - ## gcp.ml - **diagrams.gcp.ml.AdvancedSolutionsLab** @@ -88,6 +29,23 @@ Node classes list of gcp provider. - **diagrams.gcp.ml.VideoIntelligenceAPI** - **diagrams.gcp.ml.VisionAPI** +## gcp.security + +- **diagrams.gcp.security.Iam** +- **diagrams.gcp.security.IAP** +- **diagrams.gcp.security.KeyManagementService**, **KMS** (alias) +- **diagrams.gcp.security.ResourceManager** +- **diagrams.gcp.security.SecurityCommandCenter**, **SCC** (alias) +- **diagrams.gcp.security.SecurityScanner** + +## gcp.iot + +- **diagrams.gcp.iot.IotCore** + +## gcp.migration + +- **diagrams.gcp.migration.TransferAppliance** + ## gcp.network - **diagrams.gcp.network.Armor** @@ -108,17 +66,59 @@ Node classes list of gcp provider. - **diagrams.gcp.network.VirtualPrivateCloud**, **VPC** (alias) - **diagrams.gcp.network.VPN** -## gcp.security - -- **diagrams.gcp.security.Iam** -- **diagrams.gcp.security.IAP** -- **diagrams.gcp.security.KeyManagementService**, **KMS** (alias) -- **diagrams.gcp.security.ResourceManager** -- **diagrams.gcp.security.SecurityCommandCenter**, **SCC** (alias) -- **diagrams.gcp.security.SecurityScanner** - ## gcp.storage - **diagrams.gcp.storage.Filestore** - **diagrams.gcp.storage.PersistentDisk** - **diagrams.gcp.storage.Storage**, **GCS** (alias) + +## gcp.analytics + +- **diagrams.gcp.analytics.Bigquery**, **BigQuery** (alias) +- **diagrams.gcp.analytics.Composer** +- **diagrams.gcp.analytics.DataCatalog** +- **diagrams.gcp.analytics.DataFusion** +- **diagrams.gcp.analytics.Dataflow** +- **diagrams.gcp.analytics.Datalab** +- **diagrams.gcp.analytics.Dataprep** +- **diagrams.gcp.analytics.Dataproc** +- **diagrams.gcp.analytics.Genomics** +- **diagrams.gcp.analytics.Pubsub**, **PubSub** (alias) + +## gcp.database + +- **diagrams.gcp.database.Bigtable**, **BigTable** (alias) +- **diagrams.gcp.database.Datastore** +- **diagrams.gcp.database.Firestore** +- **diagrams.gcp.database.Memorystore** +- **diagrams.gcp.database.Spanner** +- **diagrams.gcp.database.SQL** + +## gcp.compute + +- **diagrams.gcp.compute.AppEngine**, **GAE** (alias) +- **diagrams.gcp.compute.ComputeEngine**, **GCE** (alias) +- **diagrams.gcp.compute.ContainerOptimizedOS** +- **diagrams.gcp.compute.Functions**, **GCF** (alias) +- **diagrams.gcp.compute.GKEOnPrem** +- **diagrams.gcp.compute.GPU** +- **diagrams.gcp.compute.KubernetesEngine**, **GKE** (alias) +- **diagrams.gcp.compute.Run** + +## gcp.devtools + +- **diagrams.gcp.devtools.Build** +- **diagrams.gcp.devtools.CodeForIntellij** +- **diagrams.gcp.devtools.Code** +- **diagrams.gcp.devtools.ContainerRegistry**, **GCR** (alias) +- **diagrams.gcp.devtools.GradleAppEnginePlugin** +- **diagrams.gcp.devtools.IdePlugins** +- **diagrams.gcp.devtools.MavenAppEnginePlugin** +- **diagrams.gcp.devtools.Scheduler** +- **diagrams.gcp.devtools.SDK** +- **diagrams.gcp.devtools.SourceRepositories** +- **diagrams.gcp.devtools.Tasks** +- **diagrams.gcp.devtools.TestLab** +- **diagrams.gcp.devtools.ToolsForEclipse** +- **diagrams.gcp.devtools.ToolsForPowershell** +- **diagrams.gcp.devtools.ToolsForVisualStudio** diff --git a/docs/nodes/k8s.md b/docs/nodes/k8s.md index d52584d0..6c9daa7d 100644 --- a/docs/nodes/k8s.md +++ b/docs/nodes/k8s.md @@ -5,41 +5,27 @@ title: K8S Node classes list of k8s provider. -## k8s.clusterconfig +## k8s.infra -- **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias) -- **diagrams.k8s.clusterconfig.Limits**, **LimitRange** (alias) -- **diagrams.k8s.clusterconfig.Quota** +- **diagrams.k8s.infra.ETCD** +- **diagrams.k8s.infra.Master** +- **diagrams.k8s.infra.Node** -## k8s.compute +## k8s.others -- **diagrams.k8s.compute.Cronjob** -- **diagrams.k8s.compute.Deploy**, **Deployment** (alias) -- **diagrams.k8s.compute.DS**, **DaemonSet** (alias) -- **diagrams.k8s.compute.Job** -- **diagrams.k8s.compute.Pod** -- **diagrams.k8s.compute.RS**, **ReplicaSet** (alias) -- **diagrams.k8s.compute.STS**, **StatefulSet** (alias) +- **diagrams.k8s.others.CRD** +- **diagrams.k8s.others.PSP** -## k8s.controlplane +## k8s.clusterconfig -- **diagrams.k8s.controlplane.API**, **APIServer** (alias) -- **diagrams.k8s.controlplane.CCM** -- **diagrams.k8s.controlplane.CM**, **ControllerManager** (alias) -- **diagrams.k8s.controlplane.KProxy**, **KubeProxy** (alias) -- **diagrams.k8s.controlplane.Kubelet** -- **diagrams.k8s.controlplane.Sched**, **Scheduler** (alias) +- **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias) +- **diagrams.k8s.clusterconfig.Limits**, **LimitRange** (alias) +- **diagrams.k8s.clusterconfig.Quota** ## k8s.group - **diagrams.k8s.group.NS**, **Namespace** (alias) -## k8s.infra - -- **diagrams.k8s.infra.ETCD** -- **diagrams.k8s.infra.Master** -- **diagrams.k8s.infra.Node** - ## k8s.network - **diagrams.k8s.network.Ep**, **Endpoint** (alias) @@ -47,10 +33,22 @@ Node classes list of k8s provider. - **diagrams.k8s.network.Netpol**, **NetworkPolicy** (alias) - **diagrams.k8s.network.SVC**, **Service** (alias) -## k8s.others +## k8s.storage -- **diagrams.k8s.others.CRD** -- **diagrams.k8s.others.PSP** +- **diagrams.k8s.storage.PV**, **PersistnetVolume** (alias) +- **diagrams.k8s.storage.PVC**, **PersistentVolumeClaim** (alias) +- **diagrams.k8s.storage.SC**, **StorageClass** (alias) +- **diagrams.k8s.storage.Vol**, **Volume** (alias) + +## k8s.compute + +- **diagrams.k8s.compute.Cronjob** +- **diagrams.k8s.compute.Deploy**, **Deployment** (alias) +- **diagrams.k8s.compute.DS**, **DaemonSet** (alias) +- **diagrams.k8s.compute.Job** +- **diagrams.k8s.compute.Pod** +- **diagrams.k8s.compute.RS**, **ReplicaSet** (alias) +- **diagrams.k8s.compute.STS**, **StatefulSet** (alias) ## k8s.podconfig @@ -67,9 +65,11 @@ Node classes list of k8s provider. - **diagrams.k8s.rbac.SA**, **ServiceAccount** (alias) - **diagrams.k8s.rbac.User** -## k8s.storage +## k8s.controlplane -- **diagrams.k8s.storage.PV**, **PersistnetVolume** (alias) -- **diagrams.k8s.storage.PVC**, **PersistentVolumeClaim** (alias) -- **diagrams.k8s.storage.SC**, **StorageClass** (alias) -- **diagrams.k8s.storage.Vol**, **Volume** (alias) +- **diagrams.k8s.controlplane.API**, **APIServer** (alias) +- **diagrams.k8s.controlplane.CCM** +- **diagrams.k8s.controlplane.CM**, **ControllerManager** (alias) +- **diagrams.k8s.controlplane.KProxy**, **KubeProxy** (alias) +- **diagrams.k8s.controlplane.Kubelet** +- **diagrams.k8s.controlplane.Sched**, **Scheduler** (alias) diff --git a/docs/nodes/oci.md b/docs/nodes/oci.md index 568fe9ab..8cda2068 100644 --- a/docs/nodes/oci.md +++ b/docs/nodes/oci.md @@ -5,15 +5,6 @@ title: OCI Node classes list of oci provider. -## oci.compute - -- **diagrams.oci.compute.BmGrey**, **BareMetalGrey** (alias) -- **diagrams.oci.compute.Bm**, **BareMetal** (alias) -- **diagrams.oci.compute.ContainerGrey** -- **diagrams.oci.compute.Container** -- **diagrams.oci.compute.VmGrey**, **VirtualMachineGrey** (alias) -- **diagrams.oci.compute.Vm**, **VirtualMachine** (alias) - ## oci.connectivity - **diagrams.oci.connectivity.BackboneGrey** @@ -27,17 +18,28 @@ Node classes list of oci provider. - **diagrams.oci.connectivity.VpnGrey** - **diagrams.oci.connectivity.Vpn** -## oci.database - -- **diagrams.oci.database.DatabaseserviceGrey**, **DBServiceGrey** (alias) -- **diagrams.oci.database.Databaseservice**, **DBService** (alias) - -## oci.devops +## oci.security -- **diagrams.oci.devops.ApiserviceGrey** -- **diagrams.oci.devops.Apiservice** -- **diagrams.oci.devops.ResourcemgmtGrey** -- **diagrams.oci.devops.Resourcemgmt** +- **diagrams.oci.security.AuditGrey** +- **diagrams.oci.security.Audit** +- **diagrams.oci.security.CompartmentsGrey** +- **diagrams.oci.security.Compartments** +- **diagrams.oci.security.DdosGrey** +- **diagrams.oci.security.Ddos** +- **diagrams.oci.security.EncryptionGrey** +- **diagrams.oci.security.Encryption** +- **diagrams.oci.security.GroupsGrey** +- **diagrams.oci.security.Groups** +- **diagrams.oci.security.IdAccessGrey** +- **diagrams.oci.security.IdAccess** +- **diagrams.oci.security.KeymgmtGrey** +- **diagrams.oci.security.Keymgmt** +- **diagrams.oci.security.OcidGrey** +- **diagrams.oci.security.Ocid** +- **diagrams.oci.security.PoliciesGrey** +- **diagrams.oci.security.Policies** +- **diagrams.oci.security.TaggingGrey** +- **diagrams.oci.security.Tagging** ## oci.edge @@ -50,29 +52,6 @@ Node classes list of oci provider. - **diagrams.oci.edge.WafGrey** - **diagrams.oci.edge.Waf** -## oci.monitoring - -- **diagrams.oci.monitoring.AlarmGrey** -- **diagrams.oci.monitoring.Alarm** -- **diagrams.oci.monitoring.EventGrey** -- **diagrams.oci.monitoring.Event** -- **diagrams.oci.monitoring.HealthcheckGrey** -- **diagrams.oci.monitoring.Healthcheck** -- **diagrams.oci.monitoring.LoggingGrey** -- **diagrams.oci.monitoring.Logging** -- **diagrams.oci.monitoring.NotificationsGrey** -- **diagrams.oci.monitoring.Notifications** -- **diagrams.oci.monitoring.QueuingGrey** -- **diagrams.oci.monitoring.Queuing** -- **diagrams.oci.monitoring.SearchGrey** -- **diagrams.oci.monitoring.Search** -- **diagrams.oci.monitoring.StreamingGrey** -- **diagrams.oci.monitoring.Streaming** -- **diagrams.oci.monitoring.TelemetryGrey** -- **diagrams.oci.monitoring.Telemetry** -- **diagrams.oci.monitoring.WorkflowGrey** -- **diagrams.oci.monitoring.Workflow** - ## oci.network - **diagrams.oci.network.DrgGrey** @@ -92,29 +71,6 @@ Node classes list of oci provider. - **diagrams.oci.network.VcloudnetworkGrey** - **diagrams.oci.network.Vcloudnetwork** -## oci.security - -- **diagrams.oci.security.AuditGrey** -- **diagrams.oci.security.Audit** -- **diagrams.oci.security.CompartmentsGrey** -- **diagrams.oci.security.Compartments** -- **diagrams.oci.security.DdosGrey** -- **diagrams.oci.security.Ddos** -- **diagrams.oci.security.EncryptionGrey** -- **diagrams.oci.security.Encryption** -- **diagrams.oci.security.GroupsGrey** -- **diagrams.oci.security.Groups** -- **diagrams.oci.security.IdAccessGrey** -- **diagrams.oci.security.IdAccess** -- **diagrams.oci.security.KeymgmtGrey** -- **diagrams.oci.security.Keymgmt** -- **diagrams.oci.security.OcidGrey** -- **diagrams.oci.security.Ocid** -- **diagrams.oci.security.PoliciesGrey** -- **diagrams.oci.security.Policies** -- **diagrams.oci.security.TaggingGrey** -- **diagrams.oci.security.Tagging** - ## oci.storage - **diagrams.oci.storage.BackuprestoreGrey** @@ -131,3 +87,47 @@ Node classes list of oci provider. - **diagrams.oci.storage.Objectstorage** - **diagrams.oci.storage.StoragegatewayGrey** - **diagrams.oci.storage.Storagegateway** + +## oci.database + +- **diagrams.oci.database.DatabaseserviceGrey**, **DBServiceGrey** (alias) +- **diagrams.oci.database.Databaseservice**, **DBService** (alias) + +## oci.compute + +- **diagrams.oci.compute.BmGrey**, **BareMetalGrey** (alias) +- **diagrams.oci.compute.Bm**, **BareMetal** (alias) +- **diagrams.oci.compute.ContainerGrey** +- **diagrams.oci.compute.Container** +- **diagrams.oci.compute.VmGrey**, **VirtualMachineGrey** (alias) +- **diagrams.oci.compute.Vm**, **VirtualMachine** (alias) + +## oci.monitoring + +- **diagrams.oci.monitoring.AlarmGrey** +- **diagrams.oci.monitoring.Alarm** +- **diagrams.oci.monitoring.EventGrey** +- **diagrams.oci.monitoring.Event** +- **diagrams.oci.monitoring.HealthcheckGrey** +- **diagrams.oci.monitoring.Healthcheck** +- **diagrams.oci.monitoring.LoggingGrey** +- **diagrams.oci.monitoring.Logging** +- **diagrams.oci.monitoring.NotificationsGrey** +- **diagrams.oci.monitoring.Notifications** +- **diagrams.oci.monitoring.QueuingGrey** +- **diagrams.oci.monitoring.Queuing** +- **diagrams.oci.monitoring.SearchGrey** +- **diagrams.oci.monitoring.Search** +- **diagrams.oci.monitoring.StreamingGrey** +- **diagrams.oci.monitoring.Streaming** +- **diagrams.oci.monitoring.TelemetryGrey** +- **diagrams.oci.monitoring.Telemetry** +- **diagrams.oci.monitoring.WorkflowGrey** +- **diagrams.oci.monitoring.Workflow** + +## oci.devops + +- **diagrams.oci.devops.ApiserviceGrey** +- **diagrams.oci.devops.Apiservice** +- **diagrams.oci.devops.ResourcemgmtGrey** +- **diagrams.oci.devops.Resourcemgmt** diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index 7b789db3..0c979579 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -5,21 +5,10 @@ title: OnPrem Node classes list of onprem provider. -## onprem.analytics - -- **diagrams.onprem.analytics.Beam** -- **diagrams.onprem.analytics.Flink** -- **diagrams.onprem.analytics.Hadoop** -- **diagrams.onprem.analytics.Hive** -- **diagrams.onprem.analytics.Metabase** -- **diagrams.onprem.analytics.Norikra** -- **diagrams.onprem.analytics.Spark** -- **diagrams.onprem.analytics.Storm** -- **diagrams.onprem.analytics.Tableau** - -## onprem.cd +## onprem.security -- **diagrams.onprem.cd.Spinnaker** +- **diagrams.onprem.security.Trivy** +- **diagrams.onprem.security.Vault** ## onprem.ci @@ -30,22 +19,75 @@ Node classes list of onprem provider. - **diagrams.onprem.ci.Travisci**, **TravisCI** (alias) - **diagrams.onprem.ci.Zuulci**, **ZuulCI** (alias) -## onprem.client +## onprem.cd -- **diagrams.onprem.client.Client** -- **diagrams.onprem.client.User** -- **diagrams.onprem.client.Users** +- **diagrams.onprem.cd.Spinnaker** +- **diagrams.onprem.cd.Tekton** -## onprem.compute +## onprem.mlops -- **diagrams.onprem.compute.Nomad** -- **diagrams.onprem.compute.Server** +- **diagrams.onprem.mlops.Polyaxon** ## onprem.container - **diagrams.onprem.container.Docker** - **diagrams.onprem.container.Rkt**, **RKT** (alias) +## onprem.etl + +- **diagrams.onprem.etl.Embulk** + +## onprem.vcs + +- **diagrams.onprem.vcs.Git** +- **diagrams.onprem.vcs.Github** +- **diagrams.onprem.vcs.Gitlab** + +## onprem.network + +- **diagrams.onprem.network.Apache** +- **diagrams.onprem.network.Caddy** +- **diagrams.onprem.network.Consul** +- **diagrams.onprem.network.Envoy** +- **diagrams.onprem.network.Etcd**, **ETCD** (alias) +- **diagrams.onprem.network.Haproxy**, **HAProxy** (alias) +- **diagrams.onprem.network.Internet** +- **diagrams.onprem.network.Istio** +- **diagrams.onprem.network.Kong** +- **diagrams.onprem.network.Linkerd** +- **diagrams.onprem.network.Nginx** +- **diagrams.onprem.network.Pfsense**, **PFSense** (alias) +- **diagrams.onprem.network.Pomerium** +- **diagrams.onprem.network.Tomcat** +- **diagrams.onprem.network.Traefik** +- **diagrams.onprem.network.Vyos**, **VyOS** (alias) +- **diagrams.onprem.network.Zookeeper** + +## onprem.iac + +- **diagrams.onprem.iac.Ansible** +- **diagrams.onprem.iac.Awx** +- **diagrams.onprem.iac.Terraform** + +## onprem.logging + +- **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias) +- **diagrams.onprem.logging.Fluentd** +- **diagrams.onprem.logging.Logstash**, **LogStash** (alias) +- **diagrams.onprem.logging.Loki** + +## onprem.analytics + +- **diagrams.onprem.analytics.Beam** +- **diagrams.onprem.analytics.Flink** +- **diagrams.onprem.analytics.Hadoop** +- **diagrams.onprem.analytics.Hive** +- **diagrams.onprem.analytics.Metabase** +- **diagrams.onprem.analytics.Norikra** +- **diagrams.onprem.analytics.Spark** +- **diagrams.onprem.analytics.Storm** +- **diagrams.onprem.analytics.Tableau** + ## onprem.database - **diagrams.onprem.database.Cassandra** @@ -66,9 +108,28 @@ Node classes list of onprem provider. - **diagrams.onprem.database.Postgresql**, **PostgreSQL** (alias) - **diagrams.onprem.database.Scylla** -## onprem.etl +## onprem.client -- **diagrams.onprem.etl.Embulk** +- **diagrams.onprem.client.Client** +- **diagrams.onprem.client.User** +- **diagrams.onprem.client.Users** + +## onprem.compute + +- **diagrams.onprem.compute.Nomad** +- **diagrams.onprem.compute.Server** + +## onprem.search + +- **diagrams.onprem.search.Elasticsearch** +- **diagrams.onprem.search.Solr** + +## onprem.workflow + +- **diagrams.onprem.workflow.Airflow** +- **diagrams.onprem.workflow.Digdag** +- **diagrams.onprem.workflow.Kubeflow**, **KubeFlow** (alias) +- **diagrams.onprem.workflow.Nifi**, **NiFi** (alias) ## onprem.gitops @@ -76,11 +137,13 @@ Node classes list of onprem provider. - **diagrams.onprem.gitops.Flagger** - **diagrams.onprem.gitops.Flux** -## onprem.iac +## onprem.queue -- **diagrams.onprem.iac.Ansible** -- **diagrams.onprem.iac.Awx** -- **diagrams.onprem.iac.Terraform** +- **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias) +- **diagrams.onprem.queue.Celery** +- **diagrams.onprem.queue.Kafka** +- **diagrams.onprem.queue.Rabbitmq**, **RabbitMQ** (alias) +- **diagrams.onprem.queue.Zeromq**, **ZeroMQ** (alias) ## onprem.inmemory @@ -89,17 +152,6 @@ Node classes list of onprem provider. - **diagrams.onprem.inmemory.Memcached** - **diagrams.onprem.inmemory.Redis** -## onprem.logging - -- **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias) -- **diagrams.onprem.logging.Fluentd** -- **diagrams.onprem.logging.Logstash**, **LogStash** (alias) -- **diagrams.onprem.logging.Loki** - -## onprem.mlops - -- **diagrams.onprem.mlops.Polyaxon** - ## onprem.monitoring - **diagrams.onprem.monitoring.Datadog** @@ -109,54 +161,3 @@ Node classes list of onprem provider. - **diagrams.onprem.monitoring.Sentry** - **diagrams.onprem.monitoring.Splunk** - **diagrams.onprem.monitoring.Thanos** - -## onprem.network - -- **diagrams.onprem.network.Apache** -- **diagrams.onprem.network.Caddy** -- **diagrams.onprem.network.Consul** -- **diagrams.onprem.network.Envoy** -- **diagrams.onprem.network.Etcd**, **ETCD** (alias) -- **diagrams.onprem.network.Haproxy**, **HAProxy** (alias) -- **diagrams.onprem.network.Internet** -- **diagrams.onprem.network.Istio** -- **diagrams.onprem.network.Kong** -- **diagrams.onprem.network.Linkerd** -- **diagrams.onprem.network.Nginx** -- **diagrams.onprem.network.Pfsense**, **PFSense** (alias) -- **diagrams.onprem.network.Pomerium** -- **diagrams.onprem.network.Tomcat** -- **diagrams.onprem.network.Traefik** -- **diagrams.onprem.network.Vyos**, **VyOS** (alias) -- **diagrams.onprem.network.Zookeeper** - -## onprem.queue - -- **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias) -- **diagrams.onprem.queue.Celery** -- **diagrams.onprem.queue.Kafka** -- **diagrams.onprem.queue.Rabbitmq**, **RabbitMQ** (alias) -- **diagrams.onprem.queue.Zeromq**, **ZeroMQ** (alias) - -## onprem.search - -- **diagrams.onprem.search.Elasticsearch** -- **diagrams.onprem.search.Solr** - -## onprem.security - -- **diagrams.onprem.security.Trivy** -- **diagrams.onprem.security.Vault** - -## onprem.vcs - -- **diagrams.onprem.vcs.Git** -- **diagrams.onprem.vcs.Github** -- **diagrams.onprem.vcs.Gitlab** - -## onprem.workflow - -- **diagrams.onprem.workflow.Airflow** -- **diagrams.onprem.workflow.Digdag** -- **diagrams.onprem.workflow.Kubeflow**, **KubeFlow** (alias) -- **diagrams.onprem.workflow.Nifi**, **NiFi** (alias) diff --git a/docs/nodes/programming.md b/docs/nodes/programming.md index 60c8a0e3..9753161d 100644 --- a/docs/nodes/programming.md +++ b/docs/nodes/programming.md @@ -5,20 +5,6 @@ title: Programming Node classes list of programming provider. -## programming.framework - -- **diagrams.programming.framework.Angular** -- **diagrams.programming.framework.Backbone** -- **diagrams.programming.framework.Django** -- **diagrams.programming.framework.Ember** -- **diagrams.programming.framework.Flask** -- **diagrams.programming.framework.Flutter** -- **diagrams.programming.framework.Laravel** -- **diagrams.programming.framework.Rails** -- **diagrams.programming.framework.React** -- **diagrams.programming.framework.Spring** -- **diagrams.programming.framework.Vue** - ## programming.language - **diagrams.programming.language.Bash** @@ -39,3 +25,17 @@ Node classes list of programming provider. - **diagrams.programming.language.Rust** - **diagrams.programming.language.Swift** - **diagrams.programming.language.Typescript**, **TypeScript** (alias) + +## programming.framework + +- **diagrams.programming.framework.Angular** +- **diagrams.programming.framework.Backbone** +- **diagrams.programming.framework.Django** +- **diagrams.programming.framework.Ember** +- **diagrams.programming.framework.Flask** +- **diagrams.programming.framework.Flutter** +- **diagrams.programming.framework.Laravel** +- **diagrams.programming.framework.Rails** +- **diagrams.programming.framework.React** +- **diagrams.programming.framework.Spring** +- **diagrams.programming.framework.Vue** diff --git a/resources/onprem/cd/tekton.png b/resources/onprem/cd/tekton.png new file mode 100644 index 0000000000000000000000000000000000000000..6f52a6a5edb0e2dd4fc6e893a0936e59a15acc99 GIT binary patch literal 78504 zcmV)vK$X9VP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Rf1riT6FL6yam)!hd$25=5;SpX5h7^JFl2tFUUra|<0-son&A;ga75ny$em-UIY>O0LTFJgSAUE?-dt8Su`I?YYT$cT>&Sa1OP~(z#HAY*M(ja18CpU z3jpw!dGW=SKg2JFzUtfg^ua|vy9Z`x;#vh0gn;6fyu`_|bUS04jzL76F=l&0?u6T~ zrd@tj^Ot)P!AgImys0GWFZYJOf5p%B`4`PWc~dD$YJ>1s_)tEp9FiizHtl~hg@0gj zhDRWjmcZV-A9iOCoI`DJMn)0&_Seu%q&ne9nZ5sDiQUr|bb1GZ_V7rMr&5X&i3LbE zRAK^ys>saa@j#R$Zki^~XmO#uG@>q=*W*6(^aH;=ZF%p_4?hX-S*OG5?T7c&rEhe% zPdXhl18CpU3npY=t6x;DZh2&PeL9jkjS0e4iJ|1#dfIH_4wt5>jk`R`pzM~TvMR+C zk2EAJVh;m)jg;P%8cFrL{A!}Cu_RSFyCT)FygvD*+5f3u_^}I7HLnUK4JD{uT=!2Y z;U9pU;SmTG<*;__f^+aNoVIrKe&JJ?N2HkRHuIH-blt;K=_+p83XPRZU?2cQ1c)M7FfbrhS8ius?`m#Yt4rST)^(8o1O_A69Y&^G8pcNKoA80kSyI=*0HtsJ<-0zyE*4RB9cL1M=Y0tGXeobjDbMJ z8Hj@u1c@cRA@{*hO<7 zU__7uUPu8i1Vx4%@ImytAO(F;DngLULXb;?5PcqyWkabbeWQoqh(x*$s4DD(*_B*URl6Pe-+DIp?AA5j`Riz#-5Wmms37K_++YkUJC2_>F|NVCcZmHRL!+ z1`L)qmhKcJVWZ+zUIEa#{{LQ}#?xD%c>cC0^*`ygllAI0NUgI4R#H+8Q9Ki>a=Nv3 z$1+N#8X-v@PVkY#z2rD95HTXk19one$K-n`y2nW%K!9cY?MUp5_@mE!)pyRS|6aIr z^$Ys`w!|Af4kw$ANdh1uFvhU+*@G25y9d6Kj%04K47-xCnG{3gY?tM&VujZLh$cQ& zR!ZZFM;R0)p_^>pDN3xZa&Fbmrd6}Hmo$~PZ~gr`r=+A*wRc zy(6&VDP;P?$n*|F8wewHs0U}>^#uVyX{w{YOzR&l(+9&9RwU`M5~(29%mCL7!5EE| zkY#xoAmmE`d1FP4$drS=xE%Cpf~r_@$RC#c9!)L{L|u*5Bc3@;5y7Q~A7m_Z>gT@? zrLqi4O*z#1YRDC(aL;W9H%tJ4=z3#zW}J8yUqZkS{i)|*ZrXyjuYL|oyL(%V$Ddy6 z?AyPTV)6OR?QSO1tf!1tLxv$w0Gk1<7}#TS(oDcld6K}`I}n&9RaHDImY05a_>SMc za7tu<_UReT@xMPhre5uR@i2l_K7a4tq4T=7_x;E=o!K*clg9r$68KsE=Ne}O$o@?P z#sJwRC%mPe?V>DhCfnJec+~^5&Y$01wV-zJl{=qD!^+vHUe*LNr2_y|zx$*PpgtOh z>~lj8#}VJ(jZA+S@dG{h^*3+F&xnGfn-7#G4)v6zI|qWsP$VR})iT-Zt`t?Nf-#hH z%c&yM^l{TJA=?hXc0@asDTCukEKjUr`HXSwT6C*1(WPii6iiW-M+8~QFi{LMkqyD& zVJDp#cH+rV(WOS*t&MS4Q*G3{WNuV#tckSU{&~x@pcQIk4b0I|U& zc0Ydzg2?6?8S8Vy?cujMrV~1P2{T*yrvpD5d!M0*AplT3%CNW0yUAZ2d@?hdTpOqf z4%VMGEAfGrvy5*(dLK$=Ria{HJsi`9bb_P;Gm!xk1po{qukMF75XLj_{31R?>&4-X zd)&$P0e8A{$W4|V^0(H`CxoBxZ5T4l$lJk{0Usc~i0AdTQ`bj1LN= zCN}hTJn4Ql zCL2Kifnmrlxs2QVZ0>O1%)p;FQI7%q6JQ?$KjnYM>^)mE$`ifDrOE#2nUX5?yMyk> z68(|Cet*LgJI$1Ca?9aIYvFN{kn9@5)sKB&iEL}DG-K)0xM`oxZF{*k5MH1Sg*^;V z7)S;uiHJ*#laME<9-;ra?j8aBQ>jn|WfPb~9w(8Ur6*Gj25>F|S!6qg=ymmzZEfdi zZL4vpbE7>PK5Pw+rqtG!$=Eu2O~W+u>H=l&+0pod)GOPUd|=(Hj}6`Vdz9U9^+}#eZw$>?0!W54 z@RhpdXMVQs+DKpgF5+~=rGfH{d*jyZNfUNrq8}6ZsR$5^zy!gORcQdA4%sblX*y^A zlPwo6TKDMfccfQ+{7Pt%6ab+4q9w0spd!0FA^SZ@wD+U;>CIUAt@lac9fuc2cDAof zbquU9Bgwf;V3mxalv{QQH%#xi>XP3_yawi1Ao&~#{KaEi^j@9{CWxXfxRe+ZScFU~ zBDj=JrJ-i0_p~Li1}-^g%L|M}R^0PfxRxyhlSGj1z`bzJF^`)QPh@rcmp8z8aUFtR z`m~aH@R3#4ww+fxo!w_KNo<0y*TAw=H0U_yO`V;`b z+O-$a|MwMCuYbyGclMkX{pe>-2j^$OFiwZA)lB7`tboJi**FDN@XT7(&q{mxT5+B~)0V0AH$+~@d$|iKXp69m#07kdBBiT8K zx(k;fdZ4$=*3GJ2KYVB|6NHskGIPG2(oQig%a!l+z}SSU1HutkYnDHiXJqpzTpg#k zrxe>0Fhx0I8=%IOsU1Ip}!uRk%xiPy!yL`@=~0j-X^wvt%YR%HCf* zUhb(Wy^x#sTQkGal}^T}V1NMPg22YRJprsdKu)(>Piw#{E-UZ%9AlU$yU@NeS&BFU z_@{Ue$T2Vm5Qh_uweV=PnTf)6Vo7knGZJ|+@xY@`*~6oIR8cU6fZw!+M#<{!2ahKp zH#dTL+%Pu23g&V#CW;bc%wufYdM+OweW%^geK~XNAUK!CrJ{oVj}PUv;2+cVY+}p; z!3L2GB83Rzl;8&lOt6H2|B&3$_*d70Ilp$zoz-LZ51($0MjEJZaM`4-KujVRo==jNMgoY>e(Hr4n9o|52S|TtF%aZ3E7S>U-+A( z2GB%VKt3}70}*p{t1L4dJ->G}KF?oQ`f{+j@*V(dm?-E|2{Ob9U}zOp`O5gAzAIz< zy5PjQO<}rg`Qpj{@hBQ*R~m0?~hbgu5Z)t2o$RnxyNWmOe6a|&;2iCtFZ$- z5?!Wm-qs?xUDrxg6&nHeR|sq^h|-e>j{v|0h9v-Q*PngqY-m~|vuz)Uv#I+(K9tk1 z`~)yn$%tho2c_nwP4IZy%>!*0+9Tm}Nz;8(fFF<~ORledNSW1ikCV=93|@bAc<9?d zaVr1geO-yQue1?mi!H1xPm-{mpwT-xi!nhWI@$K*H-?VN0LFBGY`AYbGI70(h#HEd zQA~)U1X-0vJV94?=awF;ad8by-E!L2wui6y)J5y|zjP=m24)gt5f{C=jQCB1vHU>vF~|@&fkk z%uqC_jl`QH`+Cl-J9p6&70X&)jqdLuZkVWAIZv=PbNS$!i`}+T0>2&vA z0@FGLx?Tato~Wast|Ne-2*eoRQZ=cnat9=NE7$eiLMYIoEL&`4Hf+AuNu^uJveg3c z697?w;PDKKrJ>&`vzs3&z3t{5qj%hu%52z-@{hb1qR%&A4i0w`5fLkJur62+xMlmz z!O=zlA{gLkIz+eY4FT%OqNDBtMEkSeTA>=h^x#*X{+gxRUnqPlZv`U`f4O%@c~j|~ z+~L0f;GBNra>%NT{VyEAj>q=k;*XycW7_ulBnFu3v}h zN`7<8&6jkp>+hMssvzW6L~O8w`*NKwbat{ zY#{}cBs+YfB#Z{D{e8CS5HJz3C%Yt^cH=VGn$>>p2hY1})7|SvMh*>q)Ulie zE3A>wY8mL(gvi*v554%4j+gegc}jhUF8IQk5BG2Bm=|svylP~3_r(swY~s9}9PS6_ ztWXk|Y$yY=uFQ-Gc1EjB_2}^Bq7C!GGy6l(WUfw8msrYtIH0#8!Fq}wH582mfHST-~FE{wW<_kJK&ZDuA8tD zDKJ4mX3rroNmK<@))+<}wPz)cHe*&xS(XZ|eIeDoH{8W^cE zdIp-z{=wOH|L`2MXJD?S8}pbX1{o7P;EorL?E&Y)k-=Z2VvUU-B~u|Mk-V1To>h!! zqqSrAZXStUNwN46SeDG#F@m279Fn9#6vNEpYLn*7eo;Mp)ibVh&)V9?M9cfm+u?ur zjn&%5SFg7Rhd%41(>3I9M)^vGBwAu9ut#pF{Zr_c8}C$SH6@&6io}utyepRj$gbj% z$DRk1#JH2z_BlO$A+j7-PN~gzGbY<%+|kNBtxevie(+^{;9H-0qw#ve>8K1K9oGPW zaZcreCwhNe8MU6zJ znK8Q2stg#SB>X(q8;Jn0h|@k%7CXx3*8E;}D`zHp!q=wj%9#XyV%aE1E=XcZ4tm?XvufA5%0t`iw6-mIpsOE5 z7C;UFn?Me6?!e*G`k0e#gGnOt84zaTw~>w1w25dCgb@(75hqD-sgiriJij`-agh^= zonm$Mona3SFQ<%F29OLuU_`=^C7lBMN_JNLqMT*xyZ6joDwB=2HH!6EnTZ?5< z|9bm{sb_a}J!dAgy>OgA3$k!&dLVkWoiQ31@$sF2Y}+TmKiN5kL_(nia#Zk-i^JJv zS#l|HS9R$tve&iA$>=+*RHj1-`C@^EEiwPR#`r7m{)(fX7R*jC&OxRPGaSd_AAAx3 z;I6BfH12)BdAQK5oiAaG-6^@`tV!<~y@Rkuqu{#XkmEQY0+U2oL!oSj#5*J{Tt3dh!rZv=# z_l5{02wbcys&M;!BS;*<2({71P z&;c#Z&1NQ`NqKAO6pt zQ_T3D#DkA-HZNbe2v!S=7%W24?Rdcp?Gs=}RG%hQM_L74Lal;YXe# zpeM6^4;Ej&9mehhLvZ-e@VCFYeux(xLAtb`MZTy zXV2|+Bz7v-bY%kk3=l<&`8>O%y6QiA&t7?N_rLsmYH{y&aNRhfwO$GZq1IGpxWfmD z!ztb;$@c{Sn8*z?XpTnZe@F%ZXH2wbBs0od?18Bw*m8g+Yw6XCU>iqvobs0WkPfGy z`dsMRaL792-!6W3`|sCDqX!4R?&wxCVIr*<10geb!@^b~bn2`&=S0zX`T(00eN$h7#~%CY0ED0LiWUFz|;bP$m#fB=DMjIlHWoN>{6%=0aOrL{&P0An7;-~k{)5HtuvnyHFo^bSC+uQ_7IGy1lFPb3`e0X?ZhPwLPTy5iW5oYU{7@Hit$7NfFDN~oTh zin&>;Tu=v55@Qt$YF1Y-ssArg61v6#n6nAkwq#}WYdW9b^!^G5FO32$8oZs}*lBKgh z0>anS^3b~4tIkZ+UU_DLmVT^c$5W`d?g9ql*Ame$0Ne*oA10y-a-0Hbr9jM<1orF= zmjgss6X6#C?g!@|1?RP7n6I@t80!mH7S3^$`K|kzDE>mKuKb|uyfeQhRadQJikzGX zaGDwTi3o7JV?txY)AE@sKPooV|F=*Q+;n)!A_JzyS)folvD!Pq;|VOHaH+m|`^EaU zowsq@4is$BF~$YIFD#aq{Vs6j#rL>oH*0H~8^~AWmOLFXS;D53*CKtWGsTJcbl@id zoH5xktQsqxbUEoaoe5wj+khqjFeb24Zae;BVQKv1GmzqzQnE|di4$D@qdQD^%X|QU z(Y8Tw%SPiFbA}bS@{F0#X2rWlZ!uF^OKvL(0Jve*S!s4@v~6HtymR<|#pg=&Z#oFo zKatZtH4p&+=#iAcL~&^DP3Jzd|M$-eWLedjf$)Xkq!j4;QyKV(AP5YS&(r3vDtVF{ z)@o0E#jeI1&hOd(qX$hZnL%u48@w$ws5o=+YaaZ{n=X}%zTu|f`=7qXi6^gw?Z}w} zou%GIv$xiM=pDnue|(hk#r`qy5tC%;+HHI1hX3@)HBKykC2U*KcJ8lKXEp4o{?z-1 z%)Y^6;sW_9LT1edNL6RU?i)0jOEn+;(kG)g?>!Jrb@%O*Jnpkd)2`$LgXh4qr2O50 zDZ!sBR8{xLr!N1k``vF}Jv4VkI{35iVLlOfBI{!!27>?q!KK2rdb2D=$5NAQ#~`lhq#p$Z??7R)J@9p3Av3A@*au z?PD{75kVz~ixaHk%|l0(0J!bs{&_*<9v`7%osS5jB-oNFa!D1BR%`*4w^k!Fn#ACa zF4AJ@!N#-a-s>szJ*{}uNWSYTIUJ5|wx;^Rx5zGe>AbhCQhc?g$b=KfgtL=L@nt7K z+aFismmj_s`|f(CNgIr`a?J>`Jio7EU3J{54?y<2`(?lTQ6=R2Y4t@b?!5C$@BIt6 z?8Auz-Ddf!1*pDY1xl99IWF)sNrWKFjESPhPNZ76X1K_*MJJw|N2Xm0Kt!JLtRQ+) z5*d@k5YK4Mq-k!l9npy==km0ceNQ;*XPuTj=bZ`9d1u14VhQ9~O?b!VZLs?W2PvLd z8~DJjzm;b<|BU&4cL^oIeS$1ojQG@I|HLc-*YuFNYu_C0v8NiV4sMg2NEC@Xeho1g z90z~ug|&#^^ALtU{bk{8cm8grJsNqNlT4qU75nod`XnhKRaHLWTDtJQvVVE!!8N)8 zYj_ma@aT-a^xX9|;I;!g3iu~EyuJzPs1iV)Rb0qrV9WQ~8{gk$6NWURW9O8W3+vJT z!X6OkJbHL&Z?LKS&y09Qs?WTJJC2$IEH`bpHWEKQ6Y{>b{mHG-yRQ1ko^Q}b0Du-w zK=!%u!UukYWuLfS`sk@o&DKU@w;7S-O=c`Lds<6>juD80Cdy)$r>5*#UrWuOnr=An zm4RnpK`Mm_y-VQI-!d56xv@1W-4)Gf>Nzwc`(ujBlys zk0=ubE_&Sqf-LPPk9z@QjF>2NgQypP!A?-zy660}!1ZhlOys72f&cxt4EaC$zCWAW zcCIs?UVV$x(Rnq+_!2mF33$FHUF2Jz(U$Peu1_QAFSq*!?q#9iUI?NQ``NDm0Nxv~ zgEJa|_kyz-fJ$TczV~uXKbsqd2qxrv=2>DeuqAlSWp^m8&4`J36ytz9J=1$FdfrOVU%wfN0HrhYG;pQCE2Y&^|?^Dvh~GRe)zcG74*!}W2yOY zxH4Wb=dO7B;B8h?>;499>>1tNl>h)=Z7CRIurs=N=)N^gdN}d<%wXg)C#_fKgTL5& z4`3unLQ)BMUM*j_;OBxQu1y^39R2T7m8}uI?wwnI`9LmKc0yIjTBVtjNIULDt)0QEF8H-Q96rpGsdBlx;#nc!-!}TI z`*`rJm!9yp0)SXio^44oIYgHAQ`eQ3uCX?4zS-&Mx*4`zf~+G}o@?*eOkfOTm=)&M zogb3swN{J3FR7|_9r}C6CyKs(7o2!JM5cM6+0lK8lhLd5!A}6>%JS{5<%{oe63JKA z%$=p3`NI06i?GvB!KUhz;GYcoe@F&U5WO|Y(Ib0rd~djr9~?8yx^U6B^zhPG?z3Ai zUb1dvclS@sWagWk^Qv*97(w8cRc34Y4cmVF=%BZzP`M|jv55en^4w(rfZ9t>KjDLa zUH1UEVL1L%7wt@K-P2{qQ?hT#oS0l1Oh*QWG2xw3=o3JWLz$fi$h&;uE^XKTZc7wo z_bH1bYGbYDoW2y?Fiuz-1=oaFZA)XS9VgCIRZ}m&csoU-VF=D#chBXQB66Hh@TwM9ozed{GX1o^(}}KHGZBrTcrH*aXSv zhP%4-q^5%QwA3TMd3UzYXgQ-A-Gi(Is}ao19&nGvu{XqQfZBJ z16J=qb_*@7!Ml9nNoliGnRTkspMD<7^2Kltw;TKa_13n<8#hPvzdRNZ-0F?aNcdt( zB&!Oe?DBx6870=h&?TI6CNG@tNM$9fW52)OivI5YxyHVO*E`A7Da5&}Am~{X9Wm&C zSZS<(By#tCqsE?t==I;^?)c5SG zNg{$VW=!-qo&3{=f~RMVh+2CO$U-Mw)r#`eD$XffeoqcVgxyeHv*#DXT0oM#LQJ5C| zRA?T4Gvfc~DwNyrg4^#RPrw}&B_WyH11`?W10om+EtDQfdbLOz>2M0^@N0LR@Yj?; zkEYP|>~`!tx4R7?C|jKNhNgsVJw(g)trjci)7_8vqZe+jOZ zdcoCFFCKdP$B}qpS@Ik!PUHYGlf+Mse@#*~qNfgrTo|@1(aqM`C3K z7-JyQgnHY}5azVL?7rbGKaiFz{1x2pP7(xjsxVs;L^v5OXti}-W=EnQPdxg}yX~Qo z3+;j7xnn2wWZw}4Fqdn8L%DJ@VK;#TG@z$AzULCzWgf7_NR`vLrs;o@^ z$Q$|*?)%s+NN?X)lG%NzuKE-IBK`jMn=qb0WD0+K0C18i-0_L`L)*L~sPEceH~X=t zmoHv?l}SpD`qshE7aF3Am{JMJcdiVL1d*oC^Ho*MKd0+=FUm znf4EPExBBUH z&q!;!Z}e@s)G=ega1p2G{7+Zxhb~B>t(N!?DFM%qd`(r4HC%m0Uu<6&m>@v%x>0x8 zi8t~ci3ByfsUf&j; zYGd7Tx0h@O09;CWX$1r(!pX)d6dNwH#JJ#b>2gVc6Myri1v@GOP`%j<;G!zU7-MubLBZ@r_xf0zokFLOKAh9PD)ZEJ>YUrU+H+u?9HBjF`-L*3@Gf4{xo zZ0~+UGT6E=zZk}zec^VDhfT*l3f(Bq^d+l$g%(xmo{B z($Q@IAvfG1H~Gqa5rH9*pOkV^UH}jzMGB^d;^lfg13jKO?go0w0`QatkQt0(&##_N zki$24szXl+B8yGr6wJ?FlP94NAV{LE_}shQ)un%^ST+CG+rIRh;R_%B1{}kB-Sqvb zh%5(AS`&!#AlI}?GEKnY;OR^?6ImG%sh|mgbleAn0ODLE%c>^Jt|Zd}90yK3Q3c|a z0Ni*353*DjEr2r`LDfCKg4Ncpm3`$i56O)UcM8G4Cdjfj`7n+m@PiR#*%Zsmo(W!Y z(c|XOh?ZErj*OoE6V}E|?;w(U+k93c-9%vWOU}| z!TdP+!Zu~^2?89o#CO0|Rr0%vvljiIpvsxnf4LHlVI4zU{>dSwwgRrET1PGk3@|42 z36i7AYi3had_=|p4VHswhIxqpmtF%;-0%X;a+ zTi(4bvuQhcDg)OE5d8tbj3uBCg^}qQ^qKKw15s8A&ew;}S1~8t=aH+C<*tKNA9dMkjASxll+`trh``6ES3k1*K zPUhPBC-1}W8B1Tk`sIye+h1|E@A)bm=hXZyLLh(T1<2uyz!1%JB6RJE_iEJphXID5 zqnmSylS0KKoZlAPvBF#S^ga54w;S(2bmF~1-)K5215mP|y#yd^rj6)CmYu>x8adBt zZdm2Xfk-{KIb#BYZCEGdWM0MR##8V578#;|pF4w%4K>$Ydo<~3qpK@xF zp_9JvkW>1>TXyn9s>kZ>_oxf!_A|yzB7&1hzR}%-JeG;a8XCc^MEEgdu@83ju5mKj zFOBwYW+zgoPIkcsKoIOyrd;;iz-zqG-LClG$}1(aQR;qkXC=*PyNd>N;{ z=QE{tDl?mNE@v|w6m16*z+}l5-R?nsB$_$nU%vR7VqE^#>FCjb4hMHQp8M}dITP5Z zq>6C{Q1PigKvwUzHM2T35N#UX-2)?$!Qjr$<7#04nqBB$vkP61ZNj2|yROPiWUe$K zi5tka%NfrZ`|@HD00@%Ur-Xd>xvNVb*zwIj3|#W~x8N8S$l-qz;0FMuq7-J|5G21B z)=0$G+q#CV!I3Vbqt~#*G4OOQr{%;};JBvB80@}5*rO54IB7l%;~&R0m_|__u2ld)x3qBCqK4)Y`fcBAUWkiLy>ef}$i`Rpp)DhFVAR`w*Dh z{6-Jw38$knfIv+MftnChpNddjXw)6_bmhBBOzgF1S13m}14ca4IOmF`o^wBQE!-u( z*W5U5G!C`I2P>(e>6%qyqP_oOM>lSDG@~>ZeO8b#g8)GmW0FUGrseGy{BZVrE*ri4 zneV~~Cm^|$zZvk`@nqK3SCK)c3A3{Yq-lU*K;OO_iASCRkW~Qk4?kgJKFrMP1&_s{ zJ^wN&5&;7T9|^-c)DGwxxUR#AC*Z^rZ**4y0IoT+V2_MK-*bQxPrfix^7gkrsI)Zw zk*P{_%oI>~8W3Z!qVXD|fB53$rfrvG_U!i_{`gm*RF)riTeSXRB=#Pzmx6&=`Q9vr z&Pv&POqLSv>hexkO}Xu^IsUr;7HP(=O~INFN*c?CTmg3nLpHNc;psDDDgh^mid5#W z2`xws#Z+5AK7BjcH4LT1D-3Nquv{OBU!e^~P6d%TRn}Psf*SHYUU%iHJ4BZ<#29mw z<6uCq6XkMh2zmcR*c@=Ul+8Fk7G=qak!6ccPoLy;_hp|ed@ny~@ZThf0Y9!;zOY?x zsC~q>c)W(Tu}^eU$;YL*C)^P`n)&J5>!pfydq0wJ5TX7EUd3 z412$ASg$!W%~cja)72|ks&CY{@6IP~w&JNv;c#J^#FONyEq~EdU-5AD`O9`@x`%Be znuHlky&+qDnSF<|?UO`UBN5ocqp(LJFb77^|J5HMdf#JM+P6WLDoQH>gd8y*Bu)1c zcSM%a%9$v-oJhRY84l0R9;iv+y53-H-+h(n^R@^jA&seOgn2z_rYM$B5(-PTm1)82 z9X-fcqU7ceK&q}p{C|E7sjdcMZ54!?Y6u=T$g&`}&N{vh9wWKOqW0oXzJLe+`~+OB z&3j`{zj&8aSw6=aiLBzf;i1Bl1Hm0fWxBb@=o`GP=exiB8B>*x@apv_yXdTAu3sA* z1ppkr^M2ULbc+#*&z}zb7`x9MC+exI+An!rmaUz*2+O}EnmGd~_n~r8{Xo~c1BciV zz@H6QnZO*$ z=k8X^1NW4#TCiqh<6cwpxnU&IC|z>$C%V?&lWmV8LqFIFvu_aLKR*qltqZg7`nD=~ zJr$%Il}<8U#w4+fEUPqd*|~wP_kZ3e_&gzzS36Yb3kM=K}axx=>Tllb^@I1l*zZsf$nGH<)`+XTq%APJ(N2tg<2M`4m;rsfEB%up2ND_U9GAD?eb^$gz%htCG* z$ZbIsoQf-nQFm47QAYIa$huu4uBuWrz3tqSHfVb9PJMt6#QT;(DS7q)=MFO3y7M?FdCeAs)0^Ur3ZZ2 zc+0s!aW0wR=xnhhaCPsm?(H7D_tEvIJ@?0Bu5)zb4ge5b6{QX2@Mc@nU0`g|%AXxg zKy;~TK~?+YfN%8GFa8Lvx4z}1&8Ih#X3PK_%fafe{TYHN40}pE2ee3X1-EJZIIsMm z6|x=0OlmD9t<{YmIsEhPSo_e7N}fmys$UEzYC!S%_n8BVr#cT@VJrLdl>rRZq$6}9gIn$M4T&9Sx_DM)1%c) z5SBUd~cCfw`;#2*i`qe?{_=lND_izF|WsD z05^B;f%eK)P$uim>AB#X6FQdG@F>EMJV*Z1m!>M;`}TW>?tY-c&SPI1`vs<_MX!PRcV^AJ51pMOn?#! zba)$U4)43;J_xFU(xr1x%A9(m>6lW2Rm`u2s7O&gp4no=QuBz&H5DkcD-m-u;GEud z``XQf)^V&28(Oy;qFY($WX#*(P;gxA&vQBgC&+%!uF@5Af9)y{bv=FV$Lz~r{>key zaAPZ&7r-LM*!g5wXT(--oW+QjGR8dM# z_2H$IJwd(ra88?CG&<_FqtV#_E+@xH!R_u58tb#B?_{% z($>wELiwuL1(+au-G|CfUAWgu9=|*L-!jdZ0eH&%=-zM;-iknMWMAJV5Z($lO8#_rG*rCYo4A#O0hv zTz-lMCEy9GrGb|!RxNyn8&>A*yFLda96zB06n^Su0NIq)sU7=K_mP|B#OB?Lxn`Vx z_!Hk+4$Gdy1lGVcy&k6JCGO;o48-^$nFWqK#m8(-8n?Xbqk(_o_o)u=oP6pp0C2$K zDp{6FKq&jB-pspt=h^*3XJsCKtV5`(+$}F%^osYA^S6zD>Punwxo1J!vNL-E(S;{Q z5>Tot5MTEy%)t>D{X^WlWd1rkk*Z~?vXC2AY0l{;FDM6AEO}~l!?vsI-h2Jap_R*` z$Wz&mL~3ae%fJ08q4$y16`l7yvCPhBHDJ?#e@uX~GsdC%%g)*x-hSYO&ZoaMIwlDq zP+y8*eOY2;PtOj<5EcYhpFM9rKPCXV%)qi9PA+kk`evW@iEB3|`oc$zP!m-dqAKIT zl3Q`!FFtpUmCRhub<2|zZS&1E0%MTFI%*K}n(X$KoiA;qRzowGER1Jy|ZKc+j+ zFZ;uI3kV>~lF78{2&f}LID?|GUcPnb>H5w+uRxTx3#BCoT&FDQj{M|Twtnz1_}B?K zo>P|{*BA%SJ}uiqBCKXj!!6(V^b2xT#Tut?=n`0#FSjd@>y@3!lu#He6FU!_sSl34 z2tqp3-49P=?X-2+nvQ{IH$W)~c#TN>RL3xz9McxSCVzpkoU2@PsR_rj4vVTX_-2d% z%%@{w0FGhfk7FMO-nmt8e62B>UG-fR zq2n41E0F>igXHsI_@QSJIBl_@?Q8c+A%A7$i8bdqiS)I0JaL{iJX#K9+a=_XpU3>h z2B5IrC{9D358xw#p9&aBwzeYhQ=uIu*P_W%My`e_l3(Q9VTs^GV)Yb`)E-~m>^EoFlhZ@rD-S4zh>3w@Y`Z?kvMCuAKR$9FB zkDogLfHCH{tIM}4CI0q}pZPwF=--Aj)ybk`&T&+}pbphbo2;rOjca6&(mf8!eDLQ@ zen&IT7+AmWw4HZ60e^kj5z9^5^h-HBoKih2u$}iS3l~XQ}^nQ zFW#w7q|82XG;sG{S#15bN-G?@iksHYQ(O0a+w2{@noMhIwWl~}XA1D=drlr1{DuDi z(}JIl0)CnX{8YI0HIaKL`*tpK4>v8<8W>)bS^vr>&4Y*k4}_1U*KV5YK5dz5^$whH zhok3~E=uTK{cGjQvW?8^8J%e7*lDng!PfQC)V{+Pam!h7jj_*@={jK;7o64|m{ku?bvZoMZ%#L0;22c^ z0H|2p08x<~0Br|doA#6Koa^Z3xWDbVuAVdEn3e*rEbDw?^I2v*{hYfpWKE?8jJ|pR z@9cfRGqU->3Nw~k#&t8uSg}aWA;?PDU0eQ~=u&sR@`3MYXZ+?1$DJu=^vSj0mJPWi zz)CJZyP^F*e|#m^jkj=3KZ9rVvRnevLUjb=QHc3KJ2Lnu#t73$OodDYm<)a#75q2? z_=|H4kJVoEOo5`3y|!$LOsf_)uQb{^s?DChhQ^=%{I8rk3M|7*3qMNp_=a#+LN@Xev`oI{#NlA6|US`HqFI@4%FYfN2Li+o;y95Am z>ihp6TotAB%}D%ePTW1-xAA^X^jlEmjHjw>7q{&82baCwxN*n*$2G719_W}EfEGz% zbXOM zv&>HGSHtF2#GNty8WTWc41y$fmMm|*&s|#{2`!m*T(SNAzj+7%;G{DMoUu$DzW?cY zT6@pcb~JGt&uDYVaoE_wrcJzWV*qRQ>?Sif8NF3-y$s3CKCm0`OKY29_p)2 zw)I^`wjG)Teh>sjN(!>H%M2&he|>3d+S5?=nj-uh-N1{UQ^6z=dPg6eWJ->%-nd-v z?0dg(ElcloeP=AkPgX61=o-sk=~A)%8+QPVv5tG6I7?9Ea~#9; z=4DkY=o<&JNk|z6{4I6Q&i~izVil(@gc^EdGb_Cw^qLZ#%Ps}7OF`+}+5?VeY?eLh z0Ap}4<%Ar!me*!_N8i!@z{^#m+u91sBZuR{p)E}R#D%lQP&9zLB<%?2V_I@IBpyNHn9X~6`ID7=~kGC<;1CI*9 z&u9Ytg(=HuYDR*o>N=9xpU*g^68qWF!Jh}LBZ5Ew9spuYw4$+9@n>HAlpT%TAgHd2 z<2A;*>Z;(XtHS-PBrdpJJCy3mjSvN6vT6ck`iD;$-MHiQ4-?5>A!5#0z>cHoxbVRr z!cJwBzGpXFrVT~TJz_tIAp5;xUtQIXbpOcVFEM5+{{Y|zUV{n%0M1x8n|*(L5!~kc z^l)NzynXN{0*M7D29FC^09kfPvSZ-N(EP?{7QFAuK_i|vw6X2G{wFpfzOQ?ZoyeRI z&RxZxasVL65`p;k^0Sw|r1cCr-sbApEdKw-CT(p_q2>TnNj}9Mct`WzD?V*`+)#*#Sv#GSbtLc?T#x^r?{8mpub_wh0|b|HD6#9{6WYM=DMV0F zWW9HE(<`{$^9NUNS_WVT*|wGJ>PPQ0>tV)HDwD(u9m85_W%SUr;2#?YL6!HEEua6G z9*(7N`Q2l%Gx}?qTYqo#nixRss;po1z{Y(jnOEQ5_UHAF3nIIO6KV=%EKE#Va=2ur zv=)6N`j)moJlDenwzK^7`S7>aVfK42$M&z@HQ!EV&SXSmCs5|Cl8liY^d6G^p6#p8 z`QX6SZ4YG2ehtRI{@*+VvK=r{45oG;y3`tp-flpezbNHDF<(zu7 z!4bHs$_F#u1M5Vurf@bU(u!LOp>-P_}A;!B|7^Z00_QG-^gv{@ z;&*QsMIluThVjXtRoetJlDIb6F>v0jcU`Oonky0C(FQZ6Rdd5!U?tLZAQJKcFgD3a zEeotEIc@&-<=^`l9K$;1)jzs+E23++LaDBRXF-e03P;bjM`ItdhQh1JEChc}@6Pw$ zn^shxLhZ@hWSWuR{^YW08fGvvoqt^P$4LY~P1KRQXN99HjlQAxh97y?!IH5Tjodvd%pBTJJUPV;cBRPg{ew(!aaDRUPm+P69+oa24ntbK6)!UA9@Z$ z>$eBeJ%cNg?Y$S;X|3W&;3oh|D6mTn`d``f<)4r0qcPG)W3LSme~0v%B!C=o$3f#| z%OU&R5hI$qZ)n5*7P9R5C}x;% z-V_GD83yf4T~~n`FjZZc8vG|&?4KxO3Tc1|Fb7A@wAXGXxuUF}8|J#qzP5D9Wv?wX zJG6WuB(FPVM&nOrx(7}nurlQLgE82e;dO>1^UKd((ehEUV;esHEkpKu=UIvL?O?2O zI&nYKO;ti<+rd-qL}npSX!Xt>=_MHMs#iP=Jt1pN>w== zO-C+~$4n@=WF9E2ZJ! zJumW}$2ScHS}GrrRC(vb!IqP~*BAh9m_a+0Ik)qk=Wn)BdZQIf&apFE?PMLBz!=i* z`id8Pt@Zu0|Luljj`nkO18Q9*{7dIDwX&>qWCp{p84G`}bX+O`05o2_ z0?FPH)SkDPe0Al|Z2hl4Epaqsp<|f7X&qRIz%8pq>l=A**fd>aIrGSJn2;B;Hooc+ z;&RaYQuQ@wkHmK#hO0buOzj)`eKxq&#Qd=8OQOM;pk0FRSqxs={H8AYhN9aD@u_% z)B)d|mKl9JM>kOSwo74WG+utj(oKV_Us*+wcs;QRIgJIR)S^SVakB+AcF3Uz+I|{&zUe{DR3p21r2^96=WQQ~Nr1zjW67)4rD48Mn!b zr(nfX@GhEz+7G@RX5Y|UqkG`r$g&$Tp6i091V5Vwu+xK|jt~3=9x6v-G}D29Y$ZhA z$-8;r&%c-dOg{K|Ug;dH@EKwS_wrg*2(0{Phy**HtaQ@aTVoryU0ia`X@XKw0x2-_ zEX|VJ1>f9egqAO$s*BIs=2-Rt%5%>eZzJb|mDVaU1EU|dG~*IJo?EaO{Mmj$5FiJ= zds^Od?%kEAEr{ND?{EHLw*89fgfM^{Rj!(k+3&h&J%GP3KnITGy#^5HlAY43$hO@R zrwvU=38G6G^)y!Pl!IQa?)nQLmmIruhBX>NV&jfkqTh3s9ZM{PZMi1ZRRn(I>HHIV z_}Dv>0C}9?pYh5+K}9u>-4m zB0vfHM%9piJps=&T)Z-)90OB&v(X7*0A-7sQMRZVm1iu(9qO4ePj%^Le{=P-f+%DP zjAK)TtAab?SgyPxz!8`z40>B?H+x%Z4d2{G@MGBelLB5y0WUs%?L~+__3|m&!Ok0D z+Y>=cM+w>~{H;jnoyNMKy*>)~X^NFUHy)Vz%1=`sXPs-o(Zv3-FEB~$#}vRmx@y2N zwQ4{FaN7~MVXo@_zkA-+{)69$BTv4Bp(kIO@pt5w4Q|=^)E9pQPhEAlQdV++SfS!I z9yQ2G1d&jz;^a#>lwDZXRGzZn&w=KeX|0s2h|1u>gCj*-olw54F#~5() z%br^2KiV_A=&R-G%&*_p&6Z5hz}1zPpZ7xTJFecB*uKxo1@0V;%1>Vc066fA`yu#dP4$iT{Eu5&OJ9@9}zU$AUse>K;3%~X0 zW13qf%jcu~w8fp#eeFAl;1Drsx_(R&`vHJ4h>9E!&24hwix4*hwxRx-EonA-4W zq!Vfb0076ZF!uv*LDl)o6SbF~_A^OU)(Vnn9Sisw2y)QZ;c2MeZw!X@oge-ma%Olk zOM2g7q_*xwdiNnYy>0(&qoeOado(()0Q?0(I}_7i< zR4ko?iluXAJh$JBbV4P7995pR2movVoykMJe@g7@4CzDR%P0A}Q=!E@-(DcO)lN@y zO`E%^n##^!aZL3m)^7*b4G#q2oglsl#KFKOz>ldc{g@K`lUC?yBKD>QKOIT(nXatd z6ZtEDu_(`G@JwDWCh7Y}mk#n-*hDm5fk<7@p2BB}+T(DU(prODR&r5v%dS3SIC9uK zt6|39)KgP|FTd-vP)Y(Lf=k_(85%v6o3;yV^2%TA5XA%rCQF?qa~r=`vT)Y^jlo~x zKh8b2IrV0x6D|QrE(NKsAtVm=Ak{Tw)n2}GjjJ;Fuv#A6#~66Nh+8n-^1a^(fFN}G z7qqm6*KCEWwj6T6JEQvLvJmS2<2{nQwXxak8Mu@iM%@wp_NNT9r6TYXKpfzFY*%CA zUx9>>Cm9s(eoP1c$^FOp6ZxQgt>7GlGz=Zj+qCN=)Hr8uiXMcQOeAr@Oe%uJsXxKWgR@G06+2~`tl`$Y$GPX&H$#! z29qR{Wz&K&vMd#rC9}NqGYa0rOu%2*e~dpd0m@1DrUZZSGvhVQ9Q*_j2w)75M2E?; z!35D6TfGIxFumk(5NJ%SKQcp@vW)~$AC4>|K{)-2!_Tc9UB7L3rr%a_yU_XQOK_Ek z60v<9y9s-*%dZ2N41P|4?DLFxs>>f={Qm3j*Tb>+=-zfDx(5+#syX(F{U)T7!T3;*vI_ox-2R()Xf3NoB*T5Vt|@RJ~kDLbC(-T8rUCT4x=)*06+ zc-`pv<{c=%;qqoDk-V0Hd}C!ITi-O`rzybCSoRn#MhUW=wBYr2i+*pMNdhs)k(^i} zhzwPL3#DN2!Lq%KxPTK3{=!vmI`FgO13v)BqQL|qNt_Z)Rffc1AS!s=I&luiuw*_O zZ6M1oXQJSN!~NWGYW&b0q&(Q}*A66?$Xn5^bRGxFnQNORhsTQS6 zT9b+PzP;RWGDiYGfsr7Ky05YN@v2i7Jka&bhK|fg6m@4WN7E&%PT)-c`=*n|0CFU{ z6kK%Yov6HQRcCnZj{h}>B8{A}bHKR(Oko2Mn4?sdv`Jp~C>`VJR8BO36xZ$1@~Xm#-u&kAa2?F!XY4*5gHO(`_(Tg*OI=obt{LJQ(BICc9Upx21pF7BHCzU%Wb}ID+l3;mjE4Pb^eE-5*uimi#-lq|q zeezE~{(Ga7&Hx<4!mRgShZj!2&1`tr?uYBvXxP@q>|91}^G6qMU^;K8A zHFLQ8Iy0WEhak+*E|I;qHKPQww6OAml?$40xpu!X8kv!Ymo^&3+3){0YLZ_UV~k54S6p(tqU*nUCwZ$&VZ@SH{^6TW-emtfq?677B$t9r&oD0B zd^hWV_{C6iUxz1al?SHsf@1&|y{>job8W~ckR#EsZ7V?Km2mXt&co6%55jX zdj_tzVu^VL*7zfUp8#;qL4>C0jsxe#_8#tHj9Er30re;+3{{-E5M58NhZ}GJwA%;G zsFg81h2S3>Sx$nP)S-Pl02ZP z!Jkzo$zh_{Hz@rds)BF(H-&U-Vyb z!4FGsf9F&Bt^;vbV;y!}a2C`>^E}M!sbh*V50bQyDe_zv@YhQ7X1j*3eK%?z`#toR zH>S3K_T!I8jrG42N$@Ff=7?@klZS~bye^+R6D+g z>P{w0v8lEvvrL9WJ(_Gv4MzN#ktlZD{TJ-G`!BD@bpN}elP&=OfH52a*G-p`(wdk6 zSHW5KMXNK29G=#C0n15{fSiuupjCp{}wuM0| zFJ14u`0QVjZSRi!{y}Tkdv3zg@BCa`{F{49Qx89}*a=6^;>pw;(liejSkmd~JD9om zFE5w=*BADZ?WDwpTKm-R{~Z2LeE6C87rtR5=&#|?*iz=$YObz)n?SA=$Gh^6_v8rR zpD@&ApA!SVZn>)BQU4jI{5E*e+3Dmf+hL7Fgu3_N?C$;f?`xSPo^M6tOP#bhd!NYu z@J|V#fL<2{V2;M&q;$oKrD_?V=I?Aza)ae$Xoq`-)-+sZtlDz#jLJ8%lSg2(yqJNS zvOZv}$j5&g@B<`Olpd1GN}g1g%zw!m8a6z$8gT%?in7whR!`q;)=TRzWe%?ZNCD>p zV~pE-p)*OiS*R?3!o}Ec0kpZVe~T0Qe_!UVt1sJXy}Iqk*5<9>0Z~nE7jpW2{)v0} z;l0y=KR>(|W6w;^q1S~0*s&xWS(BZNUJ2sLlv`v32$En)e$OC)bj>YSV>-w=~ZgG+fvYs!^9UU1HESFlMmv56)6JWsnf$-RguRS3}e5vO5ylDV=kSfhbh-p^=i*kM9h+-*)v6UFV(I5&Z8j*-VxrG&Ho9 z28TBC!J&(h&IIzXke#3eOb&m_-UBAwe}U=2pAYbfvRP3eOdb#!bCl}J9db?On$X4P z9MTST(85RV27uDGFaGa!dS~wkxo#}uwj&p;-q~`>^r1+JvwoY`JGVt*qVR+<98Puo z-#uKdu4of|-g}Kmyq*lSPAB%Gs2>7@+l-}F486Gd6)TmQ5d(0Q2B8GJ4ii|9rJ0HG zzD;6uS(4mpWvp|cBH1_cPX;gry*>;eo&*y`g_~9#IJqWP;|XHK!9+=y%R^m)EE(i* zxa%s9TDIU)@zKwJ2*14laZmF34XxZTDktampBDT80G`%1`>(!uuiZZg{gv%ZT{OQs zxqJV0&S>}so=laEof3laya2f+-ElzaOrzu2HyAIx+;4B&aTi%uzueRSN@a%S#S5P@ zqtQ8(N-sW=ku3Lr@yeb58-OYN_KTmH!neQB{OHKFRnPiYt=JZM{CQe?%_X>&NbLBp zpI&VA4c=GN@5JZ6kh&q;?fFOW46*9W~dYDj> z=ot*@Z}MZlUn{*XMnF53gcXgeb|O^|?i6I<1@e671*S`WPp?$sH>KdrTz~D+C>|n` zn^3!3;^}N{R5C{t31Z`-B<8<;zFKCmgOH%QV< zOtXx4_1xz44J`71`eRI()dc0jb4+RZ;+Nn!T@a3JAs-KtXS4oFvOauOLxH*nQ$z+|-+I+6Lbw@iN9zCp_y27?z-F6sE=z^;1WEifZ z*z`gp9tuG-?KT=saj&4P3A;jmnM{@psjQ^kPGx#`U-Mq8;?|qMB+T4 z0vjIw5zdKxbw=M@8QU&o0*mRPYU?wbPyc9i(iwo(H;lHg z{{q~wBrsN%JNajlCtP+`SW?J8qEwVvPFkB$`SwT{T+?M9PgF5Lopfeiw(vagqwsek z!S3w2I@Q^=hzv6#$Z{DRXC55KJ^oz255Y9aL>O^}63Lb3`c3O#7>85)4#54^t8JmN zzS9{T?xW$6*^@=oB4#iRgP<|T`)PLxa;=#rEjR!`6g9QJX20NZC)I{pr1u{N69pI9 z&KcZss`5cYM`|Mg;t;Jws>MuZKC}H}-?*6w5M0V^+c0Y;q?76UQE-nS`s=Eyzf2TJ z9PT-)obC$w@zNK6mhF-xj#!#GOhC<~HjnkgOzWXU|7d`Z9cTAXDx{My0WgMd|Kdyd z(r16@H-{qX_|%{&Q~)AVbgRQkd5L8SGt*9-NDMrkk$Eap55Sd!#yC7^su+L?H(&rD zO{)Z`k^vyYn8uI)2;d*vW20zvHaCrGI2^+4W@wK+1y)@ZMm!NELZNtkEa1lsz(47k z+&u;YfiXdoE6dyD%JK|PXApaKEf}B>u+-7b(iwq&qK%AOjsiIIh+!UqA8%+Eeu67(}5oV9Lx5bDb2@^A)(Aa5}kYo;5hgLk*o8E ze<-nrBjaCZ68Hgtb4!rrh+I)>&r}5<-2@yikztlIkdg)Wn31j^-ac>Z5h!E^MJlYtma(?_Ni%>3%7uzLq!wRZuMm?0u<+ST!xz+b>}js^T6K;Sl4 zxM49zH_`jRgHY?LU0{N63@iUJJ~Knx1%qOxGLmD?Ea|JavJ~FRQUn^RMg>V49q;cH z{V>wHI}?t(GtmSx|J(_fL?=HOD5C*@Kn|A*9C7jzZ?JL9lEV!v1;8m-j*mcsB!S7Y z1IbD-kW~Qmap33On=(KsOGk>>E6&$a zvDy{^kO8o5Q*ZAXX6!6Wo1tr{R8eGa$QK(-B@(p-$O;6xsoVk`X^kR0wrpLi*C=tEzbc?YU1ptLq; zw2fQ0gD}JdVJ@Tml$J*Vf39vE8~F3vjH1bBnDc2gTxoMUlUr7ZCsVcDFkHlhTro#q z`HymM@-z88D_Z$;_c)h%A~l-?@tuxkjXIj)HKVav#5sG-V*l~E=@Q#PfXXwiEqP5Ph{}vUwr{1znod_fqxV_=?oyZ)y5bT87R9a z&GL5w0OSEu@_QLiW#FD+!bs2ZMd*0TZKn5}mHS1X`xVZeIh4_=Cp+-uF`lF51(*)} z1v)<_O3h8`F|cK{Ql9QB9T)qL1^jdbu#Z=NWSt)<0)JjPRxD9#MiaHirSl)J`ZD&L zD9iEC+{Pz7)#V-U`r#ij)6CDl+6n+bu(2jhpiJ=?6!(LPg80GpzhLhk{x-$Bhh{!` z{{iUa?*dT%R4rV63ypy&;@vYNZdoY%;4NS-)ne*t_oe>)M7^zP?-&Pdff_JXE`LmM z%_mm+V+DWi-VAmA!T_16K~os$a&&`V@pJhjaCC#;;yQoIPEPNg-|m9RKSlD+e0DZ* zdd>8pDbC?v@Jv>bpXBGCd$u?dt~kzs=Xu{v{|pMkk|*k)a9$`5L@MsbR3XXZWsf~f z03ZmEeC{1pD;Ix1*xGR5TddCdJoO#J>AZ#G%_lLL{8$8nph$`qPy2`{K{Kr3ABA2Y z6@XAal`l4E7qkRd<-y6-5DOal1$TIeDv2O z@aJvwO`qF;;`u_6{0OPJkiRNVUb&}D<~gP+<%4F*6`xIjbLtg;V%0CcSKJSprXR@b z!x8&I)3gy24I%74&$(2lLP?3yDEFgL-N@*F!vpbg>Jujb?Wiw66wdEPr)$G zCevtwZe+a#8IBG7m>&G}8o^(n77*pB4P!ORvcV+DW?(h|9g1QRK-_jjI9w&hRPHz; zS+<)TKAzHhycg{F!GF}gVS0u@#bZDOCW@Bg_jQUcWwWoL>JMjr^WUBy*tpB|H&j87 zB#z^R9y$W}bHWo7Xv_uupHxV%0|O{p+wyei3Gio4WjIa_?Z5Oqq}OZ&ABkwnoLTFY zk2N1kKlS`gc4znXd}MS919@RPDv(Wt&x+arOn|*uMalK#gn=IdNMtqyL1$nl5n05^ zA|gZddU}O`KLtt3Fi8$8wN(jX%&{UdkCRB15>bhh(Nrs%sOH=%fh3Axg3JH~oU5F3 znFzuO0YA+E{L|PT2mq5rgAq#$Zndpy)#8Wz&9x7-UVl+%-`edw&{z#}_;DT2HDUjl zx*ucG)VTclPb#F>#|AJ?g&ucB1~v)6%#Qy(3OT7Xl)1AU0K@6WpSfFIvE)TcrO$J^ zd*9*o4=g9$@UtuzV8!4sjv1I}c_CwX#peg8ek^u4zX%mh#legO7!Es6f-t*3Y)zc3i zOMs`+Tr4d~25x)jUVY7m5j_&y!DcltVGdtK@%Sn}GCCi&g>h+sO|&b&_2a#m5;W6q zp-qVT1QG-=w<{x8R=mpG?pL^`@8PD|BbJ0lT?^*Kyl0&r7hGzx^Mjvp zX)JpXfqC2zB?$n7R8a=GrV2m)`lot-K-7`gw&&I4&V3<$XtY!=4b`|yf^*5?r)mSk ztE@!2jyTWS3}`YyCiUfL&lF1*c`68#BvOOEPESq61~ZvitCj@z2In@m&$;o^{m~vx;B=nJl2yJ`kp0^>ZBq?+l9_0N3b@BV>Gj+Nm~gns{yho&V1P_S zU;=}q8#6vPu9)P8+VQ{jZM$F(3^`6TK4^9I3|9R5hdZ@LpV?x*x^+Ee(({=bYGy8C(0OCN>c%n#1|D?FInbuys+El7c9b!~Yo;oKGiz7a;q=IXKyDY~oA} z{_NV5TZOwn_LUP-ziY)30D!q?Ka@{>71~FLW}Wk6y9S1bGe5hONXVJ>KFZ2UGk{!g0nXF zf9&(NvUol^&%YiEUV2E5{^jY?)aLCWrM@QA`N^+UN|j}eOpFkZf*1y_s#gg5D6^r_;NIa(2RmZE|c6RhFpF?Wo$u$F9(+BSU#Wz=fZC_i< z=nI=Jk8Ip_4Fq$MZJ0G=J1W>w`au(Y$$IWFFi|uGSxi9?(&X?YfrVwix3hftye(xb z7Hp}z;I!SZeD(igW+IKj4Lk7(+K0?g1fHtW6E>%eL>d6#7?uLYl&S0w`BIEyJNB>M z`bB%e<)>rr#iyRIcDxzrb;$?7T#63cPJoIMRTae3XE}vBt5F*I-#f9W?FHbM-#%f@ zP!`P}|J#Wt;5obn_Mvv2(wXgK+q-xqdXK#FRG-w+G>78x<@UhPVyCNTp))knO19$% zAb~*uF_8d)hy)rt;b;o6pF@^M)CF@MkZP;{C{~p3l%Kkq|AEya^#EBCiNh!hS*=yum16G zAKGTcQ*q{Yo9h8G`iHyR4b^v-DJvh-`bTa~9_o6B5s57w%lgYEfj{f2$r+df22R8r z5OF3+X*uBQ_0(7H_10JKaaERXWsDu@czAV~+m2&rbSJX6!)d&=%h?1Q!{Y* z`B$@p>^P+mSSe7*w17!c4H+p7+yA@<=X~UCC#79~uXNHGfLv7u_nhWT{Mq$kAh(tx z&jx_;=`6^S%X`)-4J-8hY3*S9%wj{2j|kaQW*o7p0ndEwgZf(yBW11KaF8XEk3$gL z%;)thEzR}tdRoY|T6ikmX?qS_3{kEkhX=TAdkGM;2`7N05CAfy>rqC0 zeAO>B2990Jq7S;UgmXHquis*&UfclJip5~63Nj2xGdMkFCL{(YA38> zhtt3I5dhhYy(f!C4s^p?7DUI3+c31Z3;o*;qVded4Q5(zKElcm#p{mCURQ$nKdpaL z(aE;~C^8shde0ZX7h$5Hfw;dg0SA!#WX!h9wJkfZ)3@*9N>lwFc~;Ya6!eb{e(a0z zoPP%N9lN0}T?8_+J34~Pb;8;yFIq6^p4HY4&xdb^edw@e_Yd}wVf6XmcdHn``yPw- zA0{Fa@&HLfFtATr$Fw|S1{gS&?E)|||HJRxa`4v=WzxMvAcrF}Gzv#I;cu$N z$)@CB7{01f^lv+ep}ie=<(H4(s{j2rRxz)!bof9|y{O3beOnJ)ZDx$t>A+6_TtVMp zptgLN+y6BFO+~LuFi_`5zXB(b8Wnw>Zk|kqU^xm{QBn{9WEdr8d)EzeS;=zS<=T*X z{JED#zVU;tOp->KD5m7*hRk}#tOft|11JmU!q~b4%8I4niR>YwQ?2aBLvrh^g6r5_ ze?s!XM{0O7br}&=jBl+0fFz~m)>-%Zuf5{2mN=7K!ypz@~J(KzkHhH^{g?YNi&PkmnBL}*n z`aMVuMi6f6!S+8sjdMTsE?Al_N80H@QV;-)NOZ!{Sv(r6 z1LxN;Nf=dH8eiq<%uB}hJ?ob}_H4V|-etjYaxo^an`~#cb%04?h->;vBJLgE>XT(d zC@VSO#Nw;BFJ0KNbj`-X_l8EmP1D6QS}R0x$`sb)*V8%?<=#2E-+jJgjNnqe06b1c zFVKTM^;M`o|MYbCUspd$j9ntA%0k;Pl^nydGy1&IEqfPn%U<((jqeyS0IYx8A$I7Q zS6rQIcQzWy^m&X4=k;wnxXd=J8Zf4E&RxW_?!8CYvLwdXf!XIQX$yC}Hm9REJDqd} zpj4D1{>;k|D@tQ#Tjz87j{TQ0P$f{Dayu_#kGMn*Neu9Uc$wARTjBH#oT@p_ElgFr zlzFpvF`sXXylDQe)r^gt`pxe_n%xY2{VR}XH-jfrlUDEJB|8?!&__N45c!E{A=$Q@ z#+-GSD5jNJP3y%_uz&6ycY|j#@SS(Y_`8C~4Jj0K%z=>vCvv9Ux2CDZ*y+M}C;rYc zkI7C+oI4x+haiq{q{<1x2c~O}o-I z?4aW~LTPUcj;6!OU8POc9eVtqcEG9V^^pJ;&xKr5nRW(8wuydE8wYP8 z-B1{&0RI><2F{2CI2@EpmvW#KjLjDu$FSQwS32E2=Vt!=XveY-e6jjh%7DF z)oyhyTa>Veh7q{*g2H!wKDb(&we+t2`-!nph~ix0eCFWCOu%3C3}YmETnTPDg8(L- zi+78*6TMHojFFdKMd^z9?b=ABmk5h<4nkH&FS8A+;&{Kkr5Wg1y93^;QkW?X(T;v> z`2IZ@+I1K=-TMtVrd^dDjnxhBHJa{w*H@bFd)HSR6|Z}aZJ4w5M5fWm=pIVZn5vZv zbUHHli2x=tGgM!(N%gr8KK`}e^2JxKJl?LnDd}}#08TuK_(M-~YiMLhX{vj{Jlr+g z(X{!weB6^x@X6jIh{BMds)I~mewbz{Syq5FO?5Kqc?@hGh#+{}aXuQ}V{YHM&w6$1 zj;B8Uxi-@E5vC{!77E7Y)0QWhAZ8N(`3(pSbx8g89*A`{5UZ;o)>VVKTp-hg7z`e< z4_0Rnwm)?rPQC4;9w!=?CsrB)ac(hH?R76%pigz2iFero?7!)QmTOjHyA<-Tvw=oC zt<@KT{|Nr<#jdyc&rG8-Kokw7y!2(k<=VURi$AnmZY$jXmfSA%J-Z%qzzek`FhWGp z{Ia>jK@RsE%Xf}<4M0*Aq=v#s_KzabJB)ST{wOlMSF1=~s6GfFlM2e+~cm*Gowd=A&R+ zuqZ1paZ&Ji_xP^3=r?4VRp$2HE1jXCWu)^O#v}xouI>7t9^6gwL?;<$6oA77W3r@mJ!9O|cO(FPsZV(006jk+5a8c{e=X~_td%~~mL||_7Kqz!%St68HvJ(C6O8oBhfR2WbZI`{Q9pr_iG-+L;#W=OA62azn=v6KJ>x@Bbixb#M6r$(^{Mf$L40jaaY#q2?7xWFh)!kY=BuH zvX~@AOIvEURxWH>2ZGeM=m-MNyKM4z~$hM&X^Eq0e>HWg8&YL zu{H*F7(lNA7?aM}o`MRzps?pZexBZ2*u8EuBAQn`mrn zj9WH9pnS%Y-{+aq*x?&)2GoIJHh@_Sm@TQwoWUK3nuhmw_#g;wBDlHZxQU?BM8#P@ z3PsBJtIPKKYs)vw9@i_0!N?xf?+Mqhm{<17Z=d>?aL3^Jd~EwQ*TzD_C_!>5ovr6B z{e!o}KltQ-{}Gj~bthm3zd7l3V*pMpdnkjxd%xpazG!vkh4oEL5au(^vrA?%_yIsS zD)`XIIZk=$M%SrJ?+t(IE4>Z-HyqA9_RLO7rK*w1)U(o(X6AOyfv(S|SbR3pnGh^f zA(IpaguocMAOOkKeCJU63bc1e2#9jSh>~GOYj69vQJzeVNCDq4^LU2E(vlHnUh5E3 z)uFwt!tmdGJ*3JCNVPQ>`11egp|@Wbo+1=h;6w@lft!?8SNi z@!o9!QrxtV=^2>vo7iJXIJJ>j36rJ3Bq@Z08m>GWnV|??nEzd@`RtFe^|$xp3$$PM zH&m5{_qJD>X{}0BWm z0gA_!a)tbDiqCV9JI>*BIB`e~c>Bv+>-*=w>hwpjyj_=|!qB8xt z7w6i$_Re=qb2bsLXQHQ?Nm3=*b~$CVGBPa>X}X&-dL0OL#Il}u5Cp(5GEOWu%1v{a z4Ga&HxP2t?z#~IWEHNB-`*jg8mWC*1z*wT`p8t!cURc-QB$AYM)6Kf(f-%`iXKFG# z_o>#@2QFntTIzC7^wyZ3h%HUj|^?9o>*x8ewkV1*g3ec3V3HMTY0LcL(kL z2U?xZ?xl7|_k8yFT(Ic?qdJ^-jdSHHnsHRY&0eAfY_ed@ai&2AL5k;up59ep22 z4~#6#<{@B!z%;ca(B^Nh+iRt@fTf#NS|na;#8c$}lP1P3H&%IDaDw14QPd$Yg8-d7 zWPq`x8uIl8>M9O|T59){&1u-(bk>rCl3R_w@{7Na>~*88wGP4hN(AdG@uM?8f~)@P zef|T_y?TE5aR0ZpM0%cWI#O}Evpl9nipMqJuPXW8dw%ul|I5Tu836E>oEZ1trgG!kPH03jQ;n2lbh ztT~wxkwm&#<_wOMU}$s}G4QceTS|er>^NS%qvuREFno_SINafy-+D}=@&DPo$}qdC ztNrdH*L~bA$;90S3Etq=(w0(Mr~rkwwA8=4P=i8gfkM&Z4uKFtfVgLpOfv31*Y)_` z-;X<nrb?x;O8gsimZffoZ4bMVUnk z$EHY;#Dt+B9c4T~xB=tHKnO)TSU(~j$tj}U>UR`mH8^s7jn)iz9d9w$$Uv+bc zQK}(b0HHC)3;=9IeLoCUN8@|@aLd-e@vnaWzGaF2@OM(tWVxXqRrx_UUe29T^62C< z=Dz;x`Cm_cYuz9IJ&*Q(n0)L8KyW*e*su+mfBq?$qWU?T^&duePXSfc^Pwn~@%s0r zL*UfHf}x9&4?IfkU%BQt_Ny-KGC~o9cR696GZR3%poc}HjOn_@DAT|gxQq;Z?K?L| z9%rmi-CcD^YiP2QNYnvBY{Y7Di4|o9#A?l940%*l^Jp@aW5g4AMkH3qWW~-H49W- z{ox)hDThR>C1uU{_uRN80`w_bOm`t5QUe3d&6-)l{!X@Xof0i*& ze*gf$XCIDR(Ko`TG`IF7_z zxjsxgd;Z7s5dVkEzs&$pSq3qgpzPld^Q>8x&`*B%IisuhRu+#>Ib8Wiln!%*aTaqI zUs&*GVa|*fZJ)lZRcmSiz`$e$rg5tJ#uK%nIi0ej6nZcOy*~iMAAsJUei}VtIT`c|FqAZ_SgKceZH># zrvGD;{`w23{Xv*>GC$DzFvjp>Lhz;gpDs?d_uK{o9})OxYkqa_i6`ZfYVc!i z=}dq*hm-eudQ7=l z&si!;|KOZIvo~Yj3@zH!2C1zJ0FbeA=~2J8;jTvk0QQPvWUiR+XuA8c(}Uah-OUKe z6P=DbX5ane-$eJ<#hF2wAt@+Wb?W=hrRjyY;VjL^kLFIn{fv>;*ETxZR&V%}5{dsv zi6$#4r9-q@L=@tAOK1HxXa3YjOU_zcd+4#%oZ0JyHN(TK**=(E4#oz$YdOZ*$v=p^ z^QWiN-^meVO(^7g54FyaV##lI?{B(5Ny-^%!+PZ6CzH+6@5ppNcEL}t{v!zS%kh+v zJ)r=m|8@U8X8AV-0mlqtLK)0cCU$AN_P$PLO)Jz79K4!Ia`pi9`|xI-l<_Pc&!LRo zC_n#-$MV%L{gwIy{ZLi<5irw?!o@JJ8?I9pC$-kjSEE~Y&*f~^Nk&R?4L+25B$i8c z<6=g5Gw*WVsWMit`a{MC{nEh3T?lR8H&u(ouVsv78Jb}-nZ%_X&%ALS)AZ*VW4fcf z_?WL}&GO=p&0U01=ILCw?F(`!_9Zo*8dCmr3oTK#_}ooeQeIth*5dm5XWjw^u}L4H zFv<|_=wFZw#=hEfu;oHc(Y!}G_76sdIFVO91)0yx_|&4uGD>s%2gmupoc{-tlj5wD zdT$FL%iyyzMXkDKigu{>JG86kQ!J6lAOrOR>A{XJ9R|;XnM}>Z<$Bfjh0ok?TC%WS zJ#bJrdir2H=ZueJtc)@IiV)ZVeEKgBo|39*xIyXle|oS(57JD)l(Sj;U@>oU%$)o} z$<5cUum8V4_q!L)f~6o2dMu92F(&~v5`*Y=BCu&Uf?KO#E6kY{-gEFviPrAV>5}4Q zlyaQKoG|&^YfG*??-#jeFRSieyV=M;d)Z+rKP3_eZ!yD=6$B47!oRl$Grw__*z(G| zi(6lP?@~DwJI7G8iH2^B3Tz5iOLOL|iMLy`yw4>%`$PNhe;zjm-#y`Ls7eYvK z^#$})x1e~zbt;8|0)g005Bq*K=Ts0@~EVaiztl>jw_r$O6H0nIv054p;ucU5gP8Fq!>) zalsSfjH%Dqul`I`;@Ou{G@i!exW9b$2_2^)$wP2o&TO)_|MsuvN)4^wR0H8Br7LK^|7)z@ zzl5o(^~ha%kXA@hOz~wUPxIwvPjZ>Q9f?=gMD6FE0q18fh29^4m~-5ftwS;h>(zo0 zSc>v}fmhd^9o@X^yHr-EQA*7teFn+^&SH*Gm$2o3a$<>V$9< zJV)XUZDOLa&7~(&B>=8YcJ!RBM&r2{s4*A`Rw4o~xu#8cg|}H>RD#j{w&L8RCBv)o zHVZWrl~45s&56!Fi>_)uM{(YCITSr3+0}ol5{~CE%7%eX7(f;ZLbok1^YMk>`{KP) zAkxO0MJn2@@J%W?VQbd3VIKg%=5-=>dKs#oeb?Q#{m?uqn!GjI6I`K6iW5gU_EP|a z;}o0ExpmIP%kJ>xXS|(?CX*b;VfF<}PT*7c-z6tS3}B=%#t^yjJFtJ_t1qYSxnH3I zXQ7?lbD-;1V65_wXxgD_R-?Z8^L$b&6=zO;SS&7l9u|v)kI;vul8p7`%R-A*Kl~=| za>}9gTfReMi3OlkWQ>u)syahaokn;6GO5QupEH{S=KP$UYA{m87y^tjmGC^LMPm6{ zBsM46-o3z3^-M;oc~JR>+l!|amKxL&u5P@TGnq~^`P@xJhYbxA4G zWwkij?Vl2F>v4h*kx_`0VVJ@U1mK9yi9*C%S@QP@m#ln(s(KsMbV_vtqTTwDteG57 zaiP{8clZ9LvtzxXTN1(OOkFeVgUUa0uIc+t25%s9WV$yO&91mlNy_UgPo0(8_1p$< zmJ`xV?!Q(}t`mSP1LpLRvwzMCxc=`pmwvEzIST}SX!QB#GFcvA;W!x14skoY|GZR3L(AOBeD^P(zQl9W?*|PhmFx^@U&I3s3#j zzWa%F%ewY8U6kmLoTExg1sx(&II_=AcusZY_}lq;mnt0HFqxW%$;=ie6i8GB?%xQv5f6v@k{#P_`Jd;yq%iEC`rkaEK*}8P8v% zHnrsU|ME`-#Ae-OTRgwvVDVhF|s+GA9Hj6Twjz7EnSrGau`-Xuz# z)!fb~YjhN5zgM15vP+`f!Lu}3wSyz?tNgr4Oxb71MKgBFf)pMQE*>e`vbvI*-9HtP5)y^|;ZdaF3RIrB6%6v%3&Z-y7 ziX(@XF4rp8z6svr0!^miK7HAT9_OGKk__Hz!M^}}YR5ia^thbi9s5p?9jHG))!MmK zm(@b58@6;yvC;MZqmI7Es{BKrIfC*70LN*ZC9TM~|EJ}+ zlt&p8MvZ&Cxujb)r(8MS4f8KQ_3wn^*6}7Gb`OwN1NmjyAIo?@tZ>JFiH}yq*)ySR z-iCdIP(sK%d|vMD!nDd~U^0b<%6E^X{7CPRMm(9T)HPj^+Og*!YG?P&MkG3Io*d6oKCv{)+iYvincnYP3UY6<7UpgsqL>`Z^z-4BpBz>B830R$ zyUkUa|95+S*7btT@`$q}uayv@&HUO&vx`nXXCVwt69Y}%MN~6xsC{$iUA;B!UzHP5 z{xK>);{{&HEX{p##(9f=X?9rGWlt!Ov;p#xe}j-QFK(RI*!TR$$VorgkuibzUH3wq zHrb>#woK9c0vBt|tydYbcqKC!MiWJhuQcE|M(nnB@Ip18;o0Q7`iiyoIn(#_{ryo` zr%r55aLOKaQ&W3;=I7 z#d)jcfZ6MMW%i9%K9xDWq9YZEP$>{W=9IGIx;Lpv99FjjP4DeR`;Ho1dfVr)eeI6Q z#`pG}-B;6gCSz>6no^2%O&5oW-wvlc0|vMic@7qbwa<~|`DfnLlIPF*=4I9UUfZS! zW)Zrgo$z#@GGJ8pytNNGC0Ph`h0sygh3>{4Bw`Z2|L83or8K{Je_K{8lyLex1HO1T z=>>=|;vP}KBuF_$nSEIWzHsT}f_{_L)PK`izfvd6Dna3dTog~r$LwX3pvWq~0GHQs zLg#Tja?%@skrMmc1K=_<(0=75D6c+Lk$Ccj^YyOY%Z!w?kSVJ9aD^CWmtg<|o)U+> zh4=Y38;R6T+lD?E| z-F=_c;>i`dq}YJbJO5xn5F`HvjGzQNT=@qT2xER9qEaEF6^j!DCfF^lmJHAHIrFAG zGV{8NYnfr_obbUzK%v%NaC~~xYu-?W^}l-zx9)$$yz`OQD;wAEoehvBhNdq|1YrxsncvZ=4Jn?-wq0D#I{J=mVpQQwno7&ObB>CO_&f)9k)41>BU zr7jSTAE;6%42&`mnd7-2K;nw5g`||yPYC*oCl&Ngnp4_w))kA}d4UiA=B9sQ!Rga5 zYtcl6{4q?PQ+h(?bUgAOWdHym`R3aoW)lDc>#56}q2J$qj#}URWh0fELuDn48I((B z-;UlvhcN~a4xG&v6^rvXa4zQ>%^%ufn=`F9>&grK58JHDdG|gJ`;5upEM}Z~J5jyq5bCzq~=q{Z}^{n_0{wK@nnM*3?)H`P6WZA zDVc>g?nHE74Vac@)Ah`saoG4Wm(RnRnaeT#```1)J^rs4NonRtt;qEi7v7u21 zW6Z=D$hd^2W8xkF7&uPnO+q+tO7RPYv&#R~xTR)$Pi?!tl|_(>B#uk@6X7%z-0ra> z)E$D|V+Y{~$0!p3h_B!OW}YDOi=>3Kk})>F{ZK~{Wz5PLI0o6`A8kt)Y?W&oKBxBuR#HVB2y3U2WJ9~oh~swJ z7%;*Z1i*0V@#M7F_PzO3(=QgYGOF#1wH$NZ*4NnB?S=Q$0g9>Nn8?ca&^D- z*1ULq>l8y#?So&-2w|oScZVe}Yn|wHtc@I~uj529CA#dAB_~6*l`mRMi=|NP zl&YuJEuaR?r;K?G)o_eLD`JGAk9A!J09(9SRO}h9eZHdX`!dV(Hf2vL>l)M0*n+xk}<<-!PaMAL2APm zlNwD+t#_b-mFx zq4bbz@tm5>vsW~1J>@e2-)W0rD=&t9VksPzW$9~C2LHxgF!?+M@!F=V`qpl~%}~@V z5CZVL#@lVpqRVlwcfs_xCtP<$%Z7_@N;oUaU@OXnB_|UmuM6gE9|VgTL=<51x^xgALL1fV5T0O249B1rWGActazclJRFL~!bz-$l=k>Y}=5*UgQ0^xvSS z~EZ+>&7Hb6f1ODEmIPyTtlbn^&@0_<;R$ve<09j^SSEmnXa|epl_aX{i~PY_E!f7Wq56N;q3WHI5udk4@~-Hr=xIv+b<-&J0{;oyqS`tF4s&&`k} zWwM-9vJ9P$lRX-*DeEyP|9Ekn5!Yk@7)?K0W}8{H*vzfG$nW)KyS6VlW%AlpS1ql5 z?a8f1cAf`|PM-={QegQQcn$uePXL4dIA4$l=T(*0x~EZC?fe zWG|b0O!GB+-k$=jYfBZ9y+QPBukP6P$A>y*UVGVcPB)e?MKh)6NdUr`wWMSXw)8S7 z5W%6BH{yc3Zv|z{CWT{Jk(Qopj^{F;`{J)kEFR}HB`MEPQ_2h_CHv?Au|Fe&EnSY> zyKtxn00W4?>lTN#AA}t67H6%Ub-~g#@7??Ap}vMrFvieV--)Sb9NRh^Ne;Ys0FmA> z9{%BDxb2DWaDmQX={-06ed?xXH!oKe{fuNZHCt14VSvhgxQPopn)0Xrr4$2^fU!G1 z8xz=Mqj3Ub0=obpr&LoasZQbqZW3dd|L*Ji%d2;{t(&)^a_^$kr?&t3C(pxdF`=Wy zkD{^@SHw1+{6`yrL2)cy007VgQc$#j^0^7?<^3a6SFC-#}fyV4XwM|I(zpj!DyqkC@;V$m3XTq$=fUz zaGXBe^)P+>HWbxm^16#={ra1&`+oU%BXjX=@HPv&-rk0SGZr87e8q1Q1MOC}(ofOZn5w9$fUZz zMW6;fE())~0AJ&-M%3@D$MjRC3o}oj;r!?K9xfA2!iC}9$mQ`+Vv0d&+87f6;6`PI z#@h(SW-SC0FM*IaV~`JT;0lfqPGo>cDKiC&63OWEtQc}UYZ|nyEoOa%c$%2fPPlN#&D|$~KoGX`WN?T{6`=+sJtss!o#rNU@TT$_!1PObD40ZtgDYJJ{j_;Y0u?N~wubCLFdivhmk&yrc5q zXLwOG1hZJfi{c%NK6^$h0NvlzeZuei6aV)FnJ|AsakwYEsiQ;Q<}ZKcw*jaU#@5W2#duSV?@`fRa1?UXed$G*BPql?+#Ci zMUv$J_<??)C1eU`zLUM2y=!9#4N&+ z<%Q_5fj5ci?!6utIFW}Oia`m-Vdy#xRYS5r3@sr+OUg*}1)<9d&b<4(IR_tmV@3DQ zL+2{-ZPAdi6-IT#Hj`U`ug`*y}bJQ-JN!a8L6a#FMR#PRk9AsC(-}_Ky1rS06^+c z1DK{wms>l(o~mj5GNa6#E-4;Am;;Oq2p$f~IqW?{M_zWgLg4Up7-bBc*`x_hdoypf zZr77iwcxM?tvQ)dOHM|dx0p0rK~BW%b?Tzss<_GuVuIbO4qQfv)VJA`Xu_$hDv7oC zIh9Dlrp8m|cu&Ba>JPg)vseybo)SyWRuYnXWI6E2anq5%4=Khtg;j&^VG{slQf-jhzh`xR5t<) zLxFR4qq}#65X+`US zR%DlCyI%V9OVfLrde2XU64yvcHJ=(37^VE9kNkot=z>WIfRJ`x;OnL?p7h>=bLYI9 zic9vlpWgC0hTgO*z!+>+b8miG&iYs|xoOL5dn9+J6Qz@n-f1`%PT*U={~TKDy0!k! zP@ThVtNX*hZd|kemEDs!ym{bky(MrONvX4Ro#s$V4|lN!VgsQ-a;B6t~H+WkLOlsl5Ept#VQ4(`6GhnY~X!^ ze8_CX_oRuE({CgL-!ahAjHM?vhFa^0V+2N#tBidg2%&@{8UfKLWro>lYjNdeG*ZS) z{^ssenWDQv#w!2t!%TQi^%iEWUi8^B-rlq#4VwC}ti7S05KIH?KcYqCbXB)@)^)CI zKh%D0cVq8)3=kLt*f06+Ly!gEcF&zbd#*=kZ0NyU=$-k&685a-`i(}kjmd4mQ+ktMadVoHANoFx%?+ooPS1t`|W>wk{NU*c)pNP#*e$}4Lr< zcAgKW{6pg$`v8phzOhmG(eD}j%rPiG8~<-K-FXSN3|EiYY2Peb%^S=v+kwJ46T7Ca zTGGDyrw=U(wfCJX$5X}BVB(R+$O#-X*{wbH4A(z0OLBH>_{ZxkqcjK6-VmmLz?NO1 zo^%x4o9hK31grnHdcuy^c6>e&NnVxDj(^I@_!c>)Ra1t(i2peDCs0 z7B@fj`0Z9mCb2MSnQU*L?oH~^DPf!;h8gzdCZ6Q zwu0k0NGSyX#LgD~qK$7JxKx(4g{h=cDa)F7Fwi*m-j8w@0Z_(>l+wJ-4gKdyDNUKR zpj5l|>!)vf{J{-){>g2)?5Yo+J_h~^41m(-M`+z<#DprB76_fr2q_q3#s$V#eg=RU zl<2ZDmGuR_*zku3`rR`pzm{t2-aX?_-`^8&Y}?)buUBg+#X`d3XH2 z3x0_6e{=o3U`x*zQjx?3hNjz(&&+Dr)$r+9Fn(1knkqJo;i99l_Y#C?4zGPjX1;H2$@JpY7vJ!y z-A_$>0sG!Nh}_aF%v?U)J?bmVehdI+0H(p~nXIOuJJT8X%lH0;$#cuF;H+aa0EhOr z!k6VlPJs^q+`swuzfSAz2wfGA%jd>pl6#~9rvpC?-?zbF%b0i)0V3g4CIwb;0=YjE+AA~SY6lB74aYHwv7O%6WX#V84OP9}BTR69}sp;Ll+84+S{Ak@H zW|P}d9%}EuQB5fqs42yM#H`4`Ja|#)t2}MiI%k$A`s>vXAr(n{;QQ8G)r{FaOqsYq!0&GsYN0GL}l8 z3dYvskD+G+07_YsQkIxFs|1EYj|rCB-xCJUbMR%k$kz1-J@wU{r?ofre>)ONF4qSb zf%yG1kMWJ)zr9Fm>s&;2!#POMIZ`n}h{gbwf$#uC zFvf!rP)#?by85OHN$ECfP*1$6;|X)NFW&m_3$*kL7YC`Py=BhyZq6$$%qD`cJX+Us zMxwoEftHjCk-ioOFmCW@dF;wR-m(Aqlplnn04Nw^yh)5Ya(sufCKtbFa@yY3WVMbO zMhpxp0Hf~RDm=;#nAZK_sVU+1{_n^A(UqF4X1<^D0}K?%?5=5FBDVByQ6(igVd;nC z8r<~kCREI=5W5??OAfqq;I>#Wc7c>soa4tphEFvnvnigD=iS%e=HGoq?zOR7AH4CX z-*b2n6krTIW9h)+2a!FS8!&BNsjIEAf5pZ%2Y#H0%QFV)!3JWshRtE=$}RBinl!y& zlPAMbD~h}fLiqlkXmM*(|M_(_J*TBos&DYV4LuJ8NG6rS&F|G;FPenbU?{O>=a#0> zqNNi))cOMd1qL9#zYc1DsF?S3MULa>lxcqW&#a!9-inX0y+o z>nJOnKuqF1B@~+``NLDxSTZwxBgfX3AFJ{ofdS}9%0C2D8t}_S(XeNE>KwVgLxkt| z$gyNKW9W3|Wd>$nbw*&KAV`n?^?B%uiq`Fi@Ts3&Yg+TmN6zT0?YJowNiNb9%{R>A zJK#Qy;>H`s5~z}r)xNL!6nC!of#>gexc{R6JNE8OgFe5>YC_qpGVbL&U!HK_-2>lO zCG{LlGct~*{9r@7rDC#~{iMq z*Ml=Jp2y$*-6!Wa)%1KPnUJR%1{DWs&qb3U6_sZ_<8;|xQ&s(7`NZ7F%JXL>02lzs zj*azuLxK3d%4zw*=7#`=C~8gnVKR zfYhGu#@qYED@arwDpSMJ)~0B4Erwf8W# zxBa#Eb_e#<6sbw6*u;@y(e27-K%Sv#xmr@r(Grr68I(}Q#@S8B?)t+D4GaQ#$dEZ1 zKK^px&7y2_+WG~HxtH)2iLvwn}Qd=^Y^nu?R}qCQ_5+YteS_%$U(4}6pPE&F2z%sYD)EvG*}>j zt{EmNE|nI|nNax>+udEe@j&ue?pdfO1i}%xGF;$z4ln-Ug;}i!+P*9&@Lw+(wY z)E@Ek@4b=kdi2D->ye12W(51=m&c;1MTS95lmUXs!)!IRIo-CWrp+#S`HMH7RrR~? zJtIXz3GCn13a8r&N*P)j`%-`Y&GVt#@A>jSQYqD-z(wIuDi0%LN`wFmVmO>y;BZbn1X`Y)XE8beP(%Hbx&=_ zDkY^Z9nW}C2Ag5f#oM0UP$NZ?P3l0w(vc8=gJrw}!o7UQ%hTIyIzJx^#jiGW>Kw}^ zG~l*DFbO?^S!~x7y+YG;4-6*gINMA#;qZRvj%%Xr_1#CT+3@%r06B%D0o7=VC-5ST2c z_M8Imb6@<%S$9pJTiU&3Whdq?nSgUHnK$Y>cm4J?{P?$@Lo6omoHCo9{>YX)iA~4^0_q!d%7;ZY+fU!ERjqqOiHP++K#z-OuPWT6sGCEdk2FjS4H@e~Wxcd+cq zCAj4N?*Ra;9w(YNAHcqsH{p((ZoqHXy=J=pfnPZfzP^2q6iHm)-_UucDk(k?juKH& zI6&r1Vj#0TZ_~t6X1!!~ST_{UsZbvI>R)nslQ>UPbu%#fI8GVN;qKrPB`L2_CACR> zpB7#wiwSpMe>YCQ`gA@Xj2ARlHD4bK#;;DrCFejf&Dh{5;{_q%$??1~d*#em_isG( zb$@4QiD9TtP1A*FI9XIQrLbrxd%dk@dxIM22?GE!^SpdXnpHntAgEOK1}%m;N~BkkKNnTY*+IZm2dsO?>u8ID5AwJ&Hg2ZMs1^G zRzQDWyx5>P{oVC-TR4tvlx0o1`r4ciq$i(P1CXq50RSjH{^`8UI{C1sm?MH%rYv8T zYxdMy*PN+CpBLRu*0*-EG5f9`2fNp7d=r#y_Rg770)d||`@^Tkn>v?B{h>)If8?8j z-FABZnTwxNBk?!PURPh?nTwF@>>E3zk+uicoDA&x&4c>FpMA~GfKafysTqU_hE6$Z zP>~r10mp$60#4uw0K%IDCRj{t5S}aAExOt5FwAZz^-U;H9XUQ7fKmJMhWA~c@?|sd z@(=FAA2+|n$+6_T?gK4X_#3;8EcoW z_0(*xxhWQmpD!h3_YtZN887nj?BdLS&Odj~gOsvp@#KO%;r`e(Syr833>+a=Lb#P{ zAK%!Ph$fq|OO9MuUoyD>-Yi#VDtTx>fKvxghMG=`wyvu_jpN8pN|}7_XO@op`OR+~ z1R>xFA?GC$^1O6NKRwp`;>@>Z%rARs+MMDJ0My?bg(4rB_-O9JG*9EtzyBOA`SgMv z&po;0j^5sA0ZphAHJ$RKpI?S#N}c)Y%T=Fux~#hoRd*?uUNH|JL_U$lK)NKO{hr4V zKTr$T-05FV)HQ!yYVDdg9JCsZ4|hy1|Iy^1-~7*LRZVZ!iUmX0xZP^OS2pi~)YFgf z{(8*(`8W8$?t@u<@9ZcH?m3ia^13JUHp>)d(0po8P7cMo%~`(fh378YP;~Z^Lru@E zW8Nucuw;5+C}{|+t0WHqkn9bDa0JX?P@-|9`a_UHQOMyq)OZSvQh*TXii&ubAB+JO zp9^NM3xgP8lido7*9p;Khdsv&tIq|K!wRY!aOP$Vtw(=dJ1lNHV%?QKBo_Cq-5 zr(bkezq(~X{rWvCDWyvc&6vs<>^85n$?URMYqEMsSM`Rhiu|_8XU^*^Uoy4lr5`>> z%a=_@R(T%!o4Y{`x@`ZNT{m>sc6@fcGFuSN$eED$gX{0V<$>0{O<@2in|pY~`qjH% zMJkqpp&MCpLcXS>w)4wULY`>ols}wYlzOJlC zhu-jTp7-qj9l*zzw`I&S0AkoVeh6|%wAS$yZz=zE@;@_exIfrZU%to zInC;@>^}SQMK@o3?Wwz8{nut{wOf!|U>`P5$_*3y+;U;1hWQi0(NEH5^0fcfX3Z zzdSraPb5pnRenM!F`I&VB2{N{I(i4mI{`o#U>o|;09#LBS2bb{ZHCm<*K5d1FO^j+ zzURjq`!?;V=-XUX5kAyB8H9K(8Ey|V=;W3c*V`-^?jSX22tWdWK5~rq5eoWIO834- zP~Cvl>*S(c0T-jJ)RpJU-}d0@e9>l^=*;$3CW5h)uIOtxQD}1)X0?WqGff2 zkig47dJxf`AX>K7pm^>?OgUo?x@y|t&d)^YoC&o%U)WN^#zfG8LGo3`n{1W|4clr< zWBzD(?AQ*xcK`s8j3i)nSUpv5?_b&9;s3mpR4N9Qe`M7nKp>b!zbDJ}!pzgAKX%@i z&a4ggglOgb334o)+-I>{nhb+hDzYvx%EV|eF~wvxo%7Tkt6Ltu{pCXzyBUA`(UZ9L zhnK)&GoxyA9eUe>*s^v%<}Lq1>dqg0yUCsDYz_zF(=^R6X__I@gfh8$SId<_e>^9* z$k&lue*8DL-ioPnN)YUgS)<|P99^e{s%oTj{X9`~3%on+PV3&k{PN{^ zMP=IXUvceBsbZd?F2iDbt6_UwxazYn!Y}U!a8QMh3`ep zD&A`8+;{75q4DM%i>Zk#GX&FP>ldY}Ul0`l1Ds8(#R< zUn5l0AxD#F-ChI67^DFZkIg$wM>e>dUhlpnIOVjN&4R@g))dV>z^FSaZK)$zhTZ_=ng)?ZMOyP>0@ccLUkrw~FwDHWxZdO=G~XP|O^`QIq@@f4+-9y>KhHIacLXWzF@YYro_Q`eRdUPD?ZrN@$ER69@sN%+cBE|E#L& zbE1({Q&U}U`*($X z;Zv7=FbH&Ro(CJ&*WktH_UZ=@bT>|&Ua)#!RYy@$(uTUDjBr&P4GsNgWM?~{e&U(y z8{b`Dcg)}Oi8KI)Bq7<KyWz}c-CMl^xL$v*+Yagt+F*#_t2@?I?*{m|d%nO1=r z-~A%gcv7aC-T54+;pvthQG`;wu=!QRI1g;b}eu^pO{(PT+iO-GTTA5MJx z=WFi3*Y5f%*WK7Py|b?S(%$C2bLe39W8gg_;IN7(+x^n2ubh1sW2^yyrb;RZ&tZNV zr*CBBdSAHzCr?!pj+>IkK@fxk@lsCUuZ;NP%H7}l*8>x0mqrvxCDRvH2v6R%CQCGn zXQ+y{EaZCTFp_o@I;?3P3YkO(DC>y0fjR|5Zgb zx?39iW~!>5wvq&(6mrm?*g0!KS)a}E;R~SVFDS+Q1*L5E+~U{1`sGI^o6Y<@MKQ#| ztiZq+c}dc8^71`P_UvkJXlo0$9P9Nzkp@8S>H`r)foa+VB8uKoX{r&bNGVf@DD28T z?-YMz&p}v^p$m{OPGgW%Ul3A%2%Je|NGtrmjpq3XA_1(65JD!LHb-jTQOn}}gQuMV zcoJps6lCF&-+%3WFE)4r$e&yUi^Cf1ZRoD;ZR(lJ0Mqal)5;t5$4cVCM1d#Qi^Z2O zL+4E$$STPO#}WKt)9<-(Z`k*bTmSjRcrbpUL5F>QVDyPCzasaA33JLGpLOc=gD>3q zs+L`p3C0*Irk6ldRRExZD7KYND_U!^nk&0n`d2W3Fb0GJ@rnDk)LrNFI3|=#DR?f^ z>p`$DwzRpX<`f1}Xc*M1sk)0&h-tjVXd^}$OH+I^A`T+EnKE2j*uH6tWD^sApfxTCctxV^5fZz*Gp zA3a8h;Ye!PtFP_fPAO{%4Zwqa?*kA1L>d68vloQt1!fp!jKMXuP(x`H0th_gET(|m z7ic++kks3WW5TM8E4G}E$DcnA(Fb1e*LPsX#mkXhS^S|dHkixbyLtyQiZX-Y?oa~* z(Z{3L))dWbvYNARdiYz;{?@((rIfvP&+ACVQc#kLm2l)Usc7mPMM~4Bk3IHt0xxA2 z`nDBJ%zyHdZ=Aoqac{FW>-6bJM3R^=yBq+}-P{iV=xG2lLCwDDr_&ct+>nS#8Ht!w z5Dh2Fs6jbRGfa9^nxN~lzIZPBdq4c?vaKZm09gI%I%H)!_B{UR_O%AZ62{1I+$H_u z+B+iiB2jtL3om|k&Ch;*Y=_QIqybQR0{}+^P+H0i!*w`xmVq;gNmHh`P3{jx@BG$p zp@vU)OYDVjwryJ*pXS) z*!*E3>DI#H1{TxYW^VE z>A+f(a76NnCZU`$mbqt7M-a#0dY<&{!9S?P8(N|C2O;_XL?~P%KLW@{Xb58#aZwXlI*JMYy%-OxWkp70pLZ!9cT{}MfxIqB9y?* ztG|0y7_73u3b~fIP<@kgtJEPs4o28jf{v-TJDHewX-#Pck zpaxCa-1crx5VVnGs)I#B48$Gm4(5k@!dxK3bvGm}CFIKZF8=G6u@h z!CX4Y%<6reD?!MT?#{P;eLWxE1sExF=M`hw@(H2ximXk9{i2&mE-)@|4vaQ6`3X30E1!}v`b2=6B*ORQT{YxFm%J)*VbQ32;m;R?k_n1#`Dh% z_eQSL6x};ao-$q&4S+J{Zmep#JkS+9uxs7^(4zB>+&xGhKpS?p1<~IbwzbrCU#=U* zEKSo*M^k<_pyg((DCHJq9JDzsH5|{is)`;`6$MzO1SXdfqZx8R*bSh!YX$fFZ z6g{`SBV1}2^q4??pEv^`_XZ%koDRY1s31IVrUU7x!%hH{O6E*Yui59(wfKh*0RA_N z!|TKoKYRqd!0W1__Jw=G3Im+LX#ZJ}RbO9ge<{av!tL+=cG8*$-a0oKOU)lo`3K9G z2U~~h2DSRTLQ8p3IQNQgUl4r!_7^*My}cjv&zLz>qC2SgW{U~u72SZFe|J^(?)MH| z?C%a=D@p29-Jl!>(t4wmpQT~T?hI!;FK`DaWmWklnYEQOi<{=JsO-+naYvC3p7H=J zRoj~~x2&%zPbB22Hiu?~7zs;@T^{Lzf8P5}XI8drUqP`C z$HU+=b5;QeA@UD?@KPJklMu&~3d0zYwIBqsgp$?V5-KzdN(6yJDy719l;WUIo&o6U zgOQRQMp7yRA*PYmd8B_zbt7fY^!2za%k*T&hY!*mk8JXDvGSG=SqdcUKD&c4$W$bYNf0nkChN?+a(fWue82mW7{f}CD_cfw@ z%YF=;P(-A2=mOHd<{)yA#d?DPfST900RRsW^T7K7Kn0)@jx#`jR5(5gvG;L^-Rp$K zVbQ?Fx+s`57)(pAd3wEd)!+zk0JoIac{8V=$Xd(W1$P?^MhxUA=A1 z-iv~Lk&Dt!IU&6r!8xjCTxYhKtq=YB`A3T;d>FJ$Sf&Tcd9c{t6nr>Leb_wq9i@9Jv|5D*$axM^aZroHs(^4q z+Z!FR-V6kWPKyq1srjy|Xj29oiw?gB;CK!k$2aGd=iEJG`IMLQD{|Ll=4b4ujHIJ* z6eR4APp#S2{I&M_oi&U)+h1LDSaYLDeBjwnv21x}ZRI$f3^&vVjv84G}L)2HPL z!2Jk?Q%AktC+-BGhU4G_-eO2{Hls`cFh==@e9dI--<~oiUHTa?RhYE)%gVW<^ES!}0()49h_T2aV$Kp#aT=04_p?DQp%ZLOM1&lFhnqe{$a)nM= z#-`Wyl&yVw+r^m$-fm6NB5R)7VoD{IGm|lSwyGJzsQf+~^7mP8q3`X|NqLX2ym0QC zNAG;Iui;=P7;8s35I-j7;?vKYiAXpdGwNm!!DkYW)^vMkyHq z&;dsfk1M4I_H~}N@~o+kef^tfNbx%wC*Vf$khX9{w>8WZ! zpuXL##8dO7NPLAHPvs00pLnE5VkraGP|c`f`cSiSYcdd>oD9V)2$$X!Q<3CU26B4y z<^yklq1n*1kG$3ofTM zwtaKsOZBzAXXpkiP&GpwRyzVo(kzC-Ch-D4t-URnSo`{c)CXnm0f1RE3-FKouEH;V z`G))5_Zlb2itb?}#!eX^2po8xORZg3uP;6AqW8V#C&~bDW)o6fz2I$DD;Ud7y8vU; zKMbP7ma=4elZ<}+J3j#Q>}y2bYnuQDD>dlpAS4Gv<0Q;5sGzGlPYnacuukjXh{OpT zC>^x)6yUkSzS{Oh06G|BdNLe`{bP&+*xhzGeNJYvTMY)nhD(DFZyq{)4+eiGU;uMv zIQQFKwzpsT``SZ`SItF#M*w%e{eLKMEUSCuf#3hx+ZhVh?QOk05lu}oD77*QelX6U zX@;OhQ(2?XeHe{J;CN1VxNQeczhKT^Dy9~!+xqswD8~_8^2Jk+YwlL73H$f9;a?AK zGzcL*WfQYDHaGew`TOIO$q43Y27niMPj`3Z+!vqS-6%_1YTy2@5A6ci-NQbGB}7 z%6|UoU0ArN>;r$#tFIlzLyvARJ6PNIB?e>+&T$y2#Nc#VI;K?S)KyN*VwDrK-uIfH zCyO*TP5tzKty zW@T~EQ<6LMnbU6lG`yvG-S$j(BS2`{w@p<#0$SSsU?ghtlG}IS~e(DRSZnZnD zf6U1B+%#=L#qFh&3tqE0EPZrD&nHY`9rDYXaOaJx4*K#OjXleGN zrTNJ4;7}+D#u%!qIw8v%E;xVMbWs$p?d*&!*K}$h*#LGBb;%1{{j#N{yJpWSV6$fx zyzlrwQ3il;1OUvu)oL3&3y#Xo4#>Yt@dqVP-;VCxbzV;3W-`Vcl(LcIG(?-FrC{!) zkhe4!zS2DSO7q~%%RtWLl3t6)**N@c5$LMUt0^TvcUo!b18j@AeNV%`ZC;GLpYo4b zdjb%SgtH1Wp01o167_yl9In&HO|WEW-Pl#3RkZf{G{>aaBY^q)7pa@MDp zJXTPiT_u{u_{e)X^1BEj)ScmI&&+i{Gi%AjS6b?Of^WaH3vx<5Vah)!(QpdUaEkr* z=dUOQ#Tf^(a$E-nr#!Sv1JHEpXlV{y{?Ge2En0cz6ztpAh3@Vs-gv!w=vtvra!B#_ z@9)BwuYUrwW)%>QkolW7w|uF!Ep$mr(laR?CSMrLj0LPg}ap@1dcNE-|4L_70r)ZLb9rwP7L~k%d z3dd&yWVnVtO(8;6NomcfCISAhM9k(VEO zFV)%N&sG(EDA+Ly*Uu4%W+9YYnDL_9Yk%e7u9i;sKwbPb-#qVx&-;|q(|rb?duj(x zT{-!{3(xF+x2rQU2b77U`6n6Q-5p&nD|*v!fBky@#EDro)27dk-uB)5@XKGm0iGwg z`>*ezt1F88@B0l5y~=X%P;c%Rzx=O>s%m_;r#F61FqFz8WZd`)%gnHE_j;_`Z~4y4 zu`4b;HeSI0XamsloFld1XfSIc!tE*pEq9}36}XwARt6d+hk@Hcco zFpFL_DNm)0nTP#X0!E z=#6h{lH&ik1A!xDR8`%0%0KY3I;@RLR?U6d>aYY~ec&x5B1eZ~o2@3SetZ+A%qh)` zN0MiEw)oGJB{dg>j6U`Q5Jf)j^w@XW9G3gO@r%prc5ST1f>Wm8qn5ezOHo#lRsYZX zHf}LnOjk>?mP08UI%P8k=mz5=QTg({dpdGmZrcO5+n!Y5I0_l ztzZ@v5LEkey=$f|nUrj+>3rX769QcGo%6}BZ}{ib?$*E!s-oqMb}Q1~!*LwU7IFXV zB@=EhpPb+N?a%xbe}3wwk7fR46}$Zc4m{>~;j6zd4mNeW8A%U_F$Ti(vOUAy&WVC-%Wy-952LtZ zeIeZPnO{OzwW!5q?~#*IF*VW+Oby+zM0-P%tX_xr{(t=%pTGB;AKQEm^S=jvIg;`- z2Dmbu2Ma6m-hJ!YZGGF;R6$h@-1hhD$G!f}cMbvo-g38nVH}G!pqg@?m2dHoBt>Spi45!trooYi@zhXzYh85tte`J;`Otn-oWKb zIJVNzH1pV|m0+Wf`wW0#P@=0E`FHG=@xCy)gUy8&x3hfE=^YAOahz<=_OzR97RAu? zQMmrng;TNn=?&m`PSRwxMUmAUs%y6NL&JzFtKLknt8gbv+By%kq(1EUKBx=?UO@<9 zj9~}|Ff=cWU4H^iF+^F>au=RCqw?&lme)V_`fF$W+Dy8L(A`}@SE*W0P!-A`f!Ra&y^YdNnX3xxj zM3S`KRR?+uQQ&atMaM=74*Z810Ksa(TPwc=@2p82!19u9-JeNz^zuG zV-SD?J~nhkGb5U?{5yhx;kI6+g0XzVFiM8v6vJV0*`Dd{viV%9IuP3!6qD7A*M9ye zM6;MmMU(Bp&cIv-*nq*PHwUZ7QPEx7o*U^2Hh*06krOgfafzskCSpWZ=}2wN0U+#; z%}_PNZnl|ici;B-6K0#aArs3Kv&A%2+H0|zVYZm?hg%=Vm%eua|MElcEe`ZX&kXcN zO2%tZ&hea*TbS{7UUBA|FFm%YWAe;2=i$^#J{TSMaj%D@VZ*lXBPYid@9l{`aO2mW za4MSdSyiJ&hC#WJV;=f}aHAN;M$L^KZbW&W(*=PGl$ZL}%$-yCXey<={F|EM%z*PEMg=GzY<-rSj`MU&r&)wg|J>IqC^1Q=cTLB{x?WGEHG0O*q9RKoF0 zH4-OkB>u6^A=uo5zM8f?IhrgP%!iL?sioL_?rv{!uId_xrO1`*gQqxKwq>|F8G$xZ zu_ytjX?j`5ftKuG$H$il@OK5#Qr#xTg7It+Vjc+u8g)-b09L>eB;!(P_11>#BZ2tO zbX8Y+wk-=@z@C1B5(s!;df8 zGN}CjHc4A_$`}h?|CJSgEw9M>yUS(i;dpKcDm~r_X5=nEl&Ko=Hv+;0fs@=WOXJyR zPWt`%=S}@hM`vW?@eK7p<^<6A(2EFH)gri~I$uvp*Csl8F3^)wDW#MQJ`|%Cj13>B zM*E;c{*yUe)68-fO-HP)XQ*Y@MI^CgHV%lo+c?Jj1AlUv=2*VtH;rvKeJp8 zG#!rWbLM*C%<{-eQtknuj^sHc3?vy&ly+6OWgDt?>;pSaVH7Y_g99OM!g0drPCmmA zI|aj-5@1eIw9LMa;7VOL#J~OMDG#8(VjgHB+S$^N-5Y9fV0)uON-C>VMOz?CntQCm zP{zOuTzK-V;)hBm%Y4#%=PC}M-dhV*}J-c?bJuaGr zc11O=YHakMo=RzsA;|J!?$U^?1_K6Z$_0V2oNVWzk|NKVL`r*ON@ez;&wXZ&Uy?Pw zvnw6+`=Gl&@E>3R0z1IqVv)953=F7t4W`-fqfF4Vsn{3@KXObA1g;E6i^F4YRAh~h1QSbCS+mj+aROOVJt2R5rC~7bFW>u@ zLde9m_y6K{cKuH-ML}s69{$tn{DZriuaqRM!e9&|3wm*w6yd3MPw=YM8# z-_oJDfZ&}YZra! zv7XchK$m0~k^-t5$e2G(sJ{Jy<*6S3=ao=&Dg#C<|3HqPH=7cI-BxSzx!=h@eZgxD zPp|nNlaw-Gu^IFl7>+&(JkvG@l&D0YIX4N3H)y zmtA4Jm~21n8jegitZuucNNR_nQ*8{#9ZAKdTtU$@Z+!BH_{{IGKh~igm&C(KsItl@ zW0Gf(fQ5{}0eEvfEwfLZ`eH1c?Af#aU|&j5mddhLplgOOSTvM~N_I-wnS|%`NB?j~ zd&RWEhPBUZ(=&2CnbBZ!X>VtEv0+f>VHDnkz+yGmPncHl!ofYQjlsUCHhESt7N0)# z!%yf0$&{(-6JOggS{ zp40|_x0uoP>{?i|eHO>UGRM&l}K%_@YNgufZi1&p7fT&5iNVJ-Lsezt*L%DI2sESrgDA3%aU3l?V zppSEmw|N}+cF||Gip5hpDW%eA_l6K^P|<2NWirNG{?^_&J_f8)GA==tHBn9}c?_@& zHLMt3ZzB;+bzgqtxvx6Cjvdw88gA@q4_q1zB_~kIgtYM^NG4<#1(xT8lV5CY==s}& zx36xy@QbHR3Hf7J5{|fFjP;cXM3W$KJh$cYYgata7}P{u!o;bCAN78o95-inA$P^)vkNR1(SvkQ*hnOlo}IfpVsE|EplKRq@wm)3 zZf;?WJpxJ6j>_@(LFJ@20D4Nou5aCrxwn5?2v^m9R+p5s2Ge|FeSQ$4d8bZz#xte- z5koV!t-kIC>5``(fnc=;4NXt!ie?)XP33s26o_V1gVt(^k3MS_Pow&{R75NU&w0ke zWqGrhwE3I?md3=6dksg13&pc5psTuWwp;wFtm?XE2qPi3CYvRrzo{ob+!H$X4w1(p z!Ja61o)a`x_ZbEgfzh}NLFD^$iZcEG{Kd2Mid$CoHtcKrbADM)yU7~)Qg26a!B8fI z5J)L4Z{PODt7a~qxZ~}vzq0?k?tyu2jlC-jgPKSC%4t72uQ21?>GR9p$SLqe@G%&> z6DXA92~JVUhIU*A5T5h(Hg@Moaj703%LyO_jw8IGQy(>`>9DjbNF*cA8=JOx z5~{b>(_~x@PMA^hf-I?=Pt|=Pf4qzu1FgU*BZ{o&b+raQf9DUMSsiZL zAcRnd%MumM!dn+ywRlr~btfYP@MQdZDj|t{@KpQgqvo;Rv&)^&e|K)f->df}`7`kypr8Qa2c=EP?0O@R6e<~p-SWv_+U;n@0@pS~Cg_NS3=_q=fPM}8kq zl$^+8{PD<1YXJJU?Zfhif6Z6@?4HtCL)%$~qGdB~478UJ@OEpfv%Kh~RA=9MB^XWF z3bHWy+KaIJkBkjR0!@Q+wYPWl=|2YQWWRa5= z2$XE=LHFC+3j~MlR6|iSs9^w%jPfsuC>Vs}wibVC#Umvbo~GoTGR!Dr_PSv9x?sul zhKL|UfYJB>UDa&yE`NTkqfdx+^?&5^33vJ-MUq^+Kb)mWs&ka`0{}tNk>w8CeNJZg z9l4Uv=5@f~a~ckxvy(Bz((@WNY)VS;`P=$)1D$>n==^8_L8_vmg>5jEPcO;_M}*P9 zD*yzvuQS+JNj?>`*iEq5)4N_WCgH^g-@(kq6Z~ghy5JvXoB7aiN_0%$Jq#;9V+^8M zi02mib_IGPJFZ&(tFWei>@!=s^9MLI>GTA1xSzq(x_A*Ay8!1 z84bj|Lx`u3P(pnX

K*tWHZF2;mrGL%=H#LQNLYPk1hV_BqS&)Sun}0NirN)rf@? zn7d*!iYMkuRa@$}`m$X+889gtO8N##MTYP7Fz>+txo7vx1?5j==D7Q3F04r3;}P`( z|C0|UC!GN>dD1+1^M3gaZ2s!ci{)Ts4x`L8w)Z^YI7&oeL*dy=HwO3BQ$h%=BjB^P z?6d)JmlgP_PJ_dr1qLeUOe`T~yUX(Jx8MC;to-vg0RYKB1OQ-m+0lQn1&Q7ul7T1~ zWl&Qx3{8i{?SR>Bhb_|$cR@A=k$2gZ<3mv6{s`8vfUxhyjX7QWn{7-tFdD!_ph`+K zvn;nK#B)b=0bE%g@FGtE1Q}(ivDQLUbce2`GP-Iz*yLqX(OKJp!pTL)wDwX`1|bAy zs|k(!S~0R%%3?Por#KT*LWU(^qN_SAZacMSdF1@LlcJ)<9Dm^a@3D;X0_=QjEhe2Y5AnVb3g=85 z8cQmYfJ;(DUKDbPz?+z=jY2O1fRdC`0Kz7l`KTuVXQm4#o0$?q`ZQG^g1il%Y$yl^ z*Jpltwf*#K&Wv`|jbCeDy}1U0$U{?f)bDOYdrc>PdF3CGh$a#7$MHz*-68-h(rzLH zkgOo5>KB}O27YkqA24~r1Vlp#NGZiBr_=&~@FVBM5n{MAoV_leBdMv{VY~E#)2E^F zP#2nNy7Bp2&fQYA{hlSfz@K3ll#EsW^zRIIr?t6sLhj~!f4{nS@Af9T{LE?p?#J~% zUQQYVu=f}D0*s;St!=OsWJC6c%Q=%cakTOe1cG>?*$Z=aS+czCxBc|*P@{>%t~c21 zJ^IUM z3*1?*Y>wju2Cz_Xq~o)fUl<7Y$5aC7g21OPzW&U}L%)8(nTVze7)vwX45lMNh~f0v zdvc01l2UT~?#qd28h`PXReuQB?B;rh+twQmr*ar$+*q;?!V&PIuz%?pQ{S0BuY?l9 zp}+UUwB7!1mXpQ+j1Vrc^AL3u=ag$Hr6R4yV@?1dswK<2so?Yl?a7{__l&m}W&=Rj zP}B}N94}yu@q^c4fLV^lr?+q1yXnG*ek`}VvwI%ZjSC4Orv#h2vO=xBA|af}(q(Fd zfemz+;TQum7-gEFQ-c%v2&HtZnvh=Yt83qW>P?sS)vnu328XN5Dx^q4WRzxu<4mJ{ zT)^tI_nK|y{$nXm=6D{25C%a0+3DZY)7Kdj9OXHI7kG!R8Qc+&0OVUg_#Sdfb1d#G z*Hlf>mr{c+0z)MjG89SW_N+f35RUNad4m}S(yV=JvJwU);2McSby# zDx(8E7)H!XcX;e=rIQO{VgJzyD(0`446{XSZg1+}9*wlEVl*9`9vLIC*~}?T)ekLQ zIc5L4SF2c7z6W9d$6LwyNtBbu0C0i;##kQV$c5hN<#N2GdxaKDmH>wnOE7~PS|W8I zXW{hz(4l6SJ%>lleUnN60PAo23pi1T$)R|+6iMVU#`vLfRfC#C4IN99{;1IM?jExo zNz4Mr73r#$3kII*1{gCACu11#O7|J01)=u7>~N=lZr!_k53c_CLz_HBS?h8ui<`GR z{03}Z7ZU!cAjc&)#wZFv7;h4iqQfdNgTnnj#XF2r{OwD3fH8)6FdooVJ*7yhZR9lx z$5|r&Xm;!VmbyeJq1NxLNA31HYv8>PT)g!r*+C5KYi(%nG4JI$w}o9 z$8ksReEC0lUpXlZK)kIR`)~gz3`xlb$9;kD9Iqu(S!yzsIl8?RKzN?<7E>VA7wW!) zOjN(cj!uK^$j^dkvqTs}2WusBMv;V2W=i^_Q`D4Nq$!$9O{AQ|iau1MpMEcZksuc~ z@J9v$Mj4cZl*Jgbbc0Sc3_AU-+n=2N%q@5C5JX|y?2DE)ZhmMDl!WY~z;MUnfgemZ zOVp9&jvL3&*~^vX#$8wc5ddKKIuogAG9gQ<4H&GyCjiHpbXE6CafvkVYr&=8xkLzd zhf4D&=FR-w=l?vFZi8XQ#QCPqtk(ktXadM&PN})$;F`Z zFaoG4*`g%mIfUnDJM+ACEjwzTf9)5Kz9z>dT}dgKj4@&CHO&rd&{vopRi*KL<*{OM zSOEZ>z)PyErbb?GfG(7$I<;9G7FSPmpYQ%}JvbE{Ssn|<&x`a$W~j1m8VQOTRi{5{ z&clXoWS#$D+(Fk2!Weiq;`0DNcmht~qlfmi^jy8v_v_H1ng0Jwd25Rx6c z;j*8!avYH;g>|G$1Axe~o{>yx8Jcd8fIn8KD4HnCA0O|*Csj@k13)RRX9t9>-@M%$ zsc#cUGocI5gNMi~bXGIoqZ;2r`{N=dXkG%?&2`mR0G zeQN&nvhB%GEQcDDA4%i^0F02BXf-A2F?J~)1PTeF;7>%80S1%~87Kl6Iu-lc`g3Jj zUBnnWtGlV^oMcQYWCQ}E;J}S-&^gMG(X?$y6I3#qW>+3wlab87;}{JFh$b=V%XT+% zJW)Ib9YxC7(bA8C(oDSl%3gH02eInPg*a5z&I5jfQs`!zIcTI*H#I0fY=DOE6J;<( zLaA(7)&yPs=+Ta!bU7&u0M&H>u$g>rPa5Z%ew@ZrN<-7FiEjUtjF}V9xouC)+W=aF zH7#1^^znJnZCPFj7IQGxl(!-R0obMUc-kK2bqL8w9909>k{O2q+i?lMu@<&#pI_1l2eS%(}CsAD1lnDeivm=E66g-#KgNhPpHA zs=K_DGBQ^A2Vc5Dt^U4Pu^{s1V>OunlOxMXVE~eyeh4<3gK&H%BOs$vKqHht4dBtO z$^Ot(W!r)4IyUS*i#MAZGNzR6w`cqIPvPrORqqu$mHPr%eNhz{OKG!keA8 zOn0tmvlOe6G9lrQPE#b+N$CKMGZ~H{P~EWVnr>wy{yy}*ARs(vnC%urO&yyH!0~AW zHz)802%%#QnPE^{Dj`jv1{$fsj+Z!aw?&?8DkhlXflEXgm7G}uq>@7yvDiLaHZV10h~EP}*|D<2Yr!At^pJrT7>yPqbN+k+z-# ziKpM%x#zwYcH6SNb;cambmaPW=FgtAYsv-7588aru0Kw@T6g67K=t%)CdX3v#)iAW7|Uwja`RWqomFLF+9m zf0|;Hff^Kq5?E|zJoWNww6P7&s*N=jTi5QJ)!xuMmlK59imXl5RNYG{;}0`Hx)ICH z_Z}*$$dQBnG3?n~k1u~`6+-@)w`yx+$#<{0Z{lBn`SMJ{kwucE%}XT}pRUt%z;&p- zHyO1?gWsX+RER_+Cr1c(ENRpK$$d{LWwBcTE?x6Z zIF1d39SEhAV+=&s3>cch$w^tz6iw81Lpv-WIUplia8q93WI{+^W{__9;v(=35mVVs)=WEf?&>N2gVpa1_n^tw^4qsBOlD&sRro(SJ~=5202}8u_V4KuSdu;& zG7tvFjWH5LS2TB|wdb@*d*1@yB=+W-C%+Z%4!m&I@4mh}*&kNoy}?7BI}Rns3x08e zaA4wD3!gVRtZhpPr#|rVMmTbgjZm|BOEtcK>y`9{y^VEhLTV{nF!@zV>6y(t>#j{j zQ&XTBquGc?8v~MzBjm7k57o7rj#d$Qe|D`u75Pk<_2GlH1~8QNXnc!2e_`B59KF^nYLiU+IXzGJegFzWCR76)oPM#PHXp`%?**aU#;R6o;qa)rR=<}w!qod zds-_QV-ABd^GM|%5kp9aBL;|$!N9SBHt!=(IcylB{69HPIVlXlkPMak9!CC1oyB=? z+j29iHA%6{;rN1hcVHS-brTzvzGH;xh6SJ&YEW;_-g;l>&YC4=w_|Vd@>!eRMcLhy zGHFzvf8a$#-jfQ)^MWni`yY6DBl2fWfVcE;#TbvN=g`_+cy#S9C<#gP6lQ5>-FijC zfj4$U`6cdl z04B^X8=A|v?*8)7&-r6I>g?H2gWG<04H^%2Y9@=AODS^#!^+PXV6mIqCQK{rDJ;)E zrKxV;$|vuAd%i4d6{@1=XqsUe?%Xs0#$xHjzaa3;<+gPcmSt_{1+FR(NX!id6Q@Qa zQsx-t2Lt(^@}D3%DGb1fhnKK{gW#AQliBk!8!Ik4^|fegPq=qi%?2f&s^rb4N=oTe zIhLx>WW~xThKvC{RY3^(2Sz){f)DfL~5PQ z=hllB9Xqq^)U$`X&m3I43*86XXm4Fd?-%a*KNwu{$_RVi=@z07!Q*+}{DOXdC zA)Evo%$6_)PT-K4;cOAjVx6uUwW3L=ojJd>_QKCBYWVFBpC_r5x+oHna9CQHF?j?u z;eT=*a#9!o5CS6bI%7-$hMJ;`P1R9KS%5LNzrU(}?`5m+6uY+Uo8G#9*NQ+*+Y-X_ zlPG2Rx~gSRO&8O#f^^FzH7R?Pq;v{n#K1(EEn}dpzZ54B!M#w>m5>bIzD`&jnvQXXDN_d*q5)r3iEdU~^hO^lfT9*oieQ zckz$>X?1SHfzAqDH>?;@j06HC6G}lME*A{<2p|~39RT1s9->(Y6OQyUhPL90>>cx# zPTaWa@&$W-_|->3iMWire!Cj}{+O<5hA=$0!OwGsXcoeR5QF_M3V7UdQWyZiY=Sk@ zlcbs+9PBSSvUM+G1JQp)<2gaVh0pvJT2j)LXkuTax$8jDsdFB)W_afG?5aj-+=?Zcw4P!**5zC`s9&Yx+cYQFhL~Y+tgkrtL$cOzb1vgdNXrz%N(c z)}J@2U^4^hWrTSdBLi6X0X^q9jc~+Bw=`osOZR~SFoI)$;Ch6CF%SwuSlTF3o>FEW z_NN(mQAoHlTs18R+G>At;cw*6{^)WnJa67{-6L62u>I|WFm%IhcUtEPBJa?2W56bj za;Nw~S7&hN2EYhMbe`j7lSK>_lw@p~GOPI2oP5u_T^*rtIFQg9YP#v=*Dl9j|F8zB zboHQBRdwr7pcZL&!E6?kyh5*E5P1E6X~5%`lfnR4vwd(B=17c?*nmqo3Wka_#5Ob3 z(C*ffL-20~fMv~?K<9qtl5l@@^R~YIjfZk(R6I!;7Nml)^8@wm%QZ!Jjcq7#*bY2& zBo#b{s?TrUxW7LcjGeGr(}_!_g6f7sDN7_maYIveam3M?dGdT!-hzxaL#O6gAePM- za}4aDLtETnz>siU%49Y7S{;^@XfXx5TlyyYJAx~Ru?zqRQF)UXWguF1Y0e3|PX~9m zps~8s7Y!$tFu*aA{_8N8Wkg(n7kSy`vDa13D0)qi)%75xIWxxUSG z5@IO6VRPFzPh42Jy0@t(r74=jFsKNSbPjMtVvkXP6L`(;u_xSFF0FJ%sTk~wUe17( zBf(P~&l|2xXG%1S%+L%>U0iwG_voU@Kft8fg%CvEqie<@U8nZLg0%oB8^~J{0;k&+ z^JY1B@B;r{GOp~JF~79&oJ;1leet|MX_IFbqPsna7dHMF(Qp#kc^@cen-V7%EBASN-&G~LGN zU?wPS0F+p=AllxWVRG0ItWTGhW=twU$%@%S*NL?C0AMWE+27Z*r@rsXXMVYD?_+DK z+P7Bk*HwKXXBMYPu~fy#>;W)%8eq^h-QCyFvB;j`_N~A3>CRKXb;SvpAK^FwZ0A15z=oGV7&dhlG$&Hb*$VtL;%<8o2 zCQI4?oCvw|#hWpCPKoI!U;amFTSITTVNlcP8jAEwF!9V{Gxb}n=0hg4xM%9@(v4T& zbmq1nUjNU&a4>QpC0!* zo`DX(;kF*E`rECDwD+p6{LF0^{p~wDn%3_r>)c&;aoe`)a}{7R1IaKn-8x+MOQ5T| zIocDN?8x?&{FQC2>#S-#Hf-+uNZNk|7)t~62LCqH;Do`|Q{Uw*m|PUR;9Hlx@AcYi zhiJY;jA+O?NDV%i0%Rk<@Iy*8oMv0v{`MirDW$~av(GgsI}F#rah%2rT-55YwB;3L zY+ZT5oL34h5V5ROm~A~S$ej1H0sX2F|?B;5Kj@Bsk8$msXjfaX9U z69tHoj(46IKY7olIyl_63DHn;0Wi2`16c=-C{~BLdCKhK7Yj-=U)i;(;UEBwQl@^8 zF5R^UyFmy9jw3TP!^j;7{|v_z2!W~@ai`N-vv6sJRC}=dgv{-~SxyQAAX?3+dtp7S zK36>4)U~&Nf8(bZkO7SF&nW|MF_+i9vT?R9DeD0o@oeiY83yo3k%0<31|u1WB+mKe zb%~~T_B`o-@C^uN(=1idoQ#dAKBEvLUBP9wZ|!-P7x{+Xx()z9ZsoBt>y9VROc!`j zP}P*u6X*^pjA`~E*ed{VoIu%N^!)uL5l(Y~%1N0|WAR6p^8yS^Hd#zPR)<+vmE*(A zxIAexkMG}kHEzD_&WXu{JeLljFbCLw!Sj5B*%I#O^U_4{JSV)5fD;5Hd?RAYGudf{YyHx>|a0O{N-qTYX>HrweYCdwGPmQ zg<5-&IjIP`tm5G7+oKk*b1!c(9SC*y&o?x~Jg9t>F+S20nx(1wgfBdF+j=RIIPNXf z>as&Hiw4K@DME-bIG@4!>6#%VBS}6LKQ@A!cqDBAIvaaEya8!1me448Mv---gBzN| zYmYlTHmV$Bh2fE8*L$@9K)PE4#lQdV6O)q(#W#f2|Nr*BJ3OxHO#eOi&YeCZ&5XLN zVijAmjcvKxV5&>#0f!Po)?||a8z6;*gzP4}$z~HsvVmU+3kgYpg#-cyi~&<@Y=ezE zmb+#3uF;I9x7+Xe{V^J8Mj96xOtRqjdHmROeP`}D_nhxL=X~Y;D235z2s-m^jgzMq zZ#}rXJwElkNoZJHgUhaIn9y_PEv&*F_bk)@<;iVRUV3g%HP6fDRL~HHpJmH2_D-(K zKfHTq2mh0QT?;;O_G>zR+VKyg019SJ!J{RYOEYe}szYxzw^523S&+=B!j~WfVl+_} z>h{c?clV7&Gj3Yu9%yXVWL^Y!8igU8m7_&JwmgvC~rk zs*)6WAuiY$j6- zuI2m-Yj^SqNdth&s{AwV+c_lhca5p`9%_a6P%AEc1?37!igL)etN65EGdvB1(G1^ zQWRqpBxz^_plMWQIW}an7*(C&%ym4c*Wsqyzk#xvLj9pV?Tca&zAm$#Aps$zZ^1?N zdlp?>FE=c%osjVJyab+?U^H>K^P9iIfqgxtM-TO1si@R}F)l`iWg&=a>$R)q?7R8P zi!_VPgmteR0HqY}fe_pSp)>C1XBq!ENfi{xKd&0LNd>C2w(Kwn85|q9GaR!&sdv}W zFSfnC+tvE^F5LLP6ITFws|i<;(zw5Ku*sZjJH{HgIHh#-IfNkU4bSS>b9{j!tK1hK zxf}9n^7UmyPEjtLWqFFtWeb5Yaz_0;0J5m)6OjbRpXL$3)8m7u$A`XFw^I@n=h!-f znnp#N!|E%oDOR0@xo6yNSyDi0ldihHq})3gJ}(mH3y?M@2BTh971~}mv+Quqv{J=v zF`m(L1YSl@*I$cV`PL;vL(!SCteVE=g5)|(9*5K12OxgrP(QBz{H!zX*Ex*h?{Wl) z4f+$=a?D4td-MljM@cvrcVn0+MdW?>+J;#2D|lIPI@>>~5-*c&RQu=tN8iR@T7P zbvL%2r?(i7ND1ML51b~u1vv$|N;DAlX_U%i0)Zg%QeM~>aj2&m*fK&MN;R{lY32;3 zV-P5cCb29VwB?%BNZ`z3|HHu;-g;p-_Plr8!Y9OwsYc5cMFUBT>v!bYnu^O@hhBSb zr$iWnn);FnJ;P{Brt~kr{C<4@o43v#90=bi%c?C!ag;XpBp#Qnot^%hmS6PHG*_Or zZ{gyqBg>Z8?IMJ9{_c@2m@>5xlv41#{0~!l`~LzyaRuNx)C!~1j_V1*UxtDf&;H{L z@7(pv1*)RWS4DZ2!b?>$FB(#5qvMD{R0=5}=J`7YZlV;um;U&+w-f%bN&!R${jg_Y z1|Ew^vue=Y*n-^BJbtKcU_;Nr_LZzCPgP`fq;im^YETuey5)nz%N0RxvE}DTJqO!S zKC61deKzNq;VN~>o=#7IrYnG94Im^$SJ)THNh*V+a2rmtm5vO10dyRjD~U?(*uWxL zQlx-48~~uQ?3r!y?70^Fve}drzl#{*uWo?#jx-EWz+TreMx`(oW-Z7 zfB|65bGz}(pSB^dz=l8m&wcgVx3*m28;Z?OPtr=?CGmn{p%e|Qj%f%-grUa9p5|S< zyB6Gf%Ts%7HsgU6E9#qI|78d-3WENVJ*%B%juZ^ zd}e*&-iM#NG(Hr%H`+h+<4{Nc&5;3Lz08Y-RA5f#xg2R0VQ}Fd&(c8Wz*Prd*nFPZ zmBUzEIj|Kv5gDckKNS*zDBgYOCFO}5f7W5mckDOXEq&?n>i~fyNTmbEdM?o!IM<4A zufoa7cApHE94o9&n*u_7s;bGOHizWjLPE4h0x_%K9f01bhyEn?hDb1ma3J}|=MLrZ zaWOCbm_%3xASC|O&tHjr^K(C^6U~?tco70GV$b_cXi}awfRO5e-oQLTknJNoBtj@> z-~>rh4qklu%%-_ZYEH}5m%{6>G{R~%;QE{96IIci&Bxp~CF0V`L_#tq$zH~=CJ(-P`lE?w;V!J39RH zDE%vU!;ODF<9>hE@QEk@nHOO#$%C~dp8&A!dHA_od`(^7mf}LSs%R!{mkli zwW36XXA+SU8v{)iBmTVim-yrE2S_3+0RCg&z zY98wJTwG99{OXq;x}!B7h@4)$ZW`jDI0`2hLX}m`>a_V1Q9drjMN2xF2WRARI}Uc1 zBqE8Sll@j-n;T}Ei6I1eI=wDeii=23cjgTGu&XH7mx>jb2n1e&&l5&>n+Mzb{$I%> zKY4X-e~-UL)1XW3#t1{8<5-`fXj?8{HLs^}N84!`|NivY763prD&Wd%X5~Hp$mY)- zZ0z}ZD43X~YE%b8prws7(glAk=}GGP@IN#P@PcCV4#h6!^typ3pW5vvw|5s&R^}m{dh&)r2^OlIWei2U@w!554db%ju4LTKY8C zh2Ct)iO0n>HeGjDL(&Ou33CY%M7%FbK8^4FNVq;^3fAzdWN>Iiv>MgfCC7b+;u z-QCshJ@ViW*NFE&a07ZelRB$>^7z0Uo|j-U=|L&Q`gI5K&vz^>`t5&jxT59w;6DxY zhb{z3jQpgM)`V~7r9K5j?79q45#BM2u~@Z ztbq$y3LI|EWbiP0E=DQzVw^7!V}dmijFxB`buc;|r^>3056AEDw)EL{KKbTT&dQ=r zd!a)J_72fq&u+w`FE0m>bfIxZJ@&8Lfre|BAQ6mlVnQ?xbq*?FPpCIpoN~-ggb>6- z@#V+29yxs5@4nGI(A*2XQIDWI07voZF$X(}8~~s(I;PL(4hAVul40Y}sKeJEn54?; zNsnbdcL)qaSb$V8ESro;Q$)@)J@3jXT?*su~C(q@t$4{I6es>il?= zUo<*K!wQDeg{IA}*l#rHja79;9029*bq8ooT@fgy5Cj<}lOA2eN`YYrfW;snY{T4& zg689%>za=b-s&BU%+eclK2?LHs9M}?F$@(H*}a4yoRez_^1N)0#spV9E<3&6NCnFh zD<#CFs+w68hERaUQ6WhEn+WXvE^!ZI;Ob?MfevZ9Ru_IB?$+)D^i2*aoh%W6rk3BnQrMrYLP zCe5oWvK2b&`EX*ozk6^_%oo04F-Fo{-{Bl#jKV>-U3P5Kv;M!+@YTfpqf1WY0_gK9ut0tNj;FB_5v3gF_+sp^e`MJ;9 zit_dq&#LLFUAfTr?C0;70f1^+@(&$NhYj}+;kK84)*tNkws-A3x;^Cf=yCq$i+Y zl%!r$HNr>vOV>WIruQq4-0}E%q$;@PgEz3+c@v)Ke+IzGefO@iWOAd)V(ix_LK;$4 z4gi2aNJy^1uA$0!Btcxo4!Ao#D4v{2=OyqW{^$PZQsXvRk<{E&##~CF#v{DHytcTX zYNwX}@NhhVJ=cskUf7LQ|8zdHV{=o@i+_Iq%i&<6VOZOa2tOr&tg5DfKVFyE-;;M> zU(bbazkcw;#Y?BWx$^2+n`f8bCm!heH3r=wq$>9st(@h_-@iXI78B-`SLO}+hGM^w z6?LGvB-b-%{$$^hr8OZ!i15Yhe?QD&kc`35Gzy)LMRSW6+jo7x&pj9(c=UJg9TY`n zLrIC_>SM<}SBlao-P>rj7=i>Z7wz2By>e1%?u$?UVU7Ra|82$Dp635&an=+7A55m< zw!F3#q0WH{RZ%WbWYw-|8q(c80H8A(5}etv&64kU_Nw3A`_?st1Rh-bKD@`eaLK=| z1^|>T7^Ue>MZ$4LJv>d_YGg3r7orKjPS3U7@Z`64^)$9l>TPV9#_BoQnxDhXxO@Qz zK)!^O;XU->#UK1>R?7!Rz92;T>*C?~bX6H{6B*0GlUYJr6r?Iom*?i+t$v94@5g@k ze#P|i19Puk91XgI00sJv_hC}qq^$45RpJByEx#}?y%B`{F~(rzs`!NDOmCy!z{#3MhX^5&Q$-c-+|q=ejv)kn zQCzrkA>LWLwfI**T(hLFYiPOG9llhOl-#5;9P5z*QDxO6hWRp$qD)b>se5;}mmfON zTl~!*T=6y`WPnnN-ktyeib$9@8jTzcYP7SuwxH|wyDw?EZ1Drqv>Byv4}@^|KrejW z2x2jDTyjq^5J#@V4EMn8IDDu-sMqU)Pd@qO_9vd$?hZ$UNS`}=wIC=ZBVHAnR8pd( z7>E3cDYIuynl8&P48HmH@pH@}C%{=#0LEM^0O05g8<9V)s#*v|mjcj@6@Cz+8SIvQ zw&J`eFaOOwFYcQ=1+P(xP|sjSUVl1Hl$Gc28if2`Uqj25{e6_uK5uJ3F1>Q0Ej$=7 zeDL%J`L}PZVFsFdYx|FN-xl*nZ%ITGNgvtp1On2GOB5Ls9{^-Y(aExUo-E0e`;Pa` zc?)jG=q7|n{Vo02_f8|`uADQjZNsZMHCl{rNmP8Sj)kg@TD=uT1<|pN zyb@O#r8LxjsC!%#i?c8Xzj*#zc<8&&<{aJKR;p2|r^8Bw5TaRgEpC&=IP{~{k0E}N zyn??zz8QR6#G;Gq(Ana#J#gQXmD}Gvwk#Zsf1$r8utXg$a5{Rt$TYyER$T%h5tkf2 z-To^aPHWBKgFW2i|8K+VEcw#Fg7a!IXMQE_`_Wa(@+)Q>S@YbUm?$XN|6w;a?ffAG zUWVxuA-j$-=k`DUc?Vv8<$$<+McvlgDfymFKD zkHy7ie;~QrIcE#V#931S;hsSNz!%p)%)E5tzg7z2_>5#ln{@XM(R2pA-{i`9=5zmj z_ggzE3NiEM6;K4}gu;I^xQ0`HQ-(fSkiduIv790&z4HE>$$L+{;qtWg-xCi+ujhw_ zKTFvufG{dyiJB}&pGw~)3^c0KC}l-Kwsaouy54NJEOC^$*6n$H&l7vs?`_pPECT5w zXg|<_>e-p)%9UiG4E^?nKT@5=4iBSa{jqSuH4+N|0+!QR__#3b$d2arus=FZ0YpP_ zNTO_g`?>9P$M<(yR6$PXHKcZzwY#v?>61hSc84|VJKC^zAAFuL-hN>(BB4Z%s%aMt z^!V@ec_T|jQL$>2f-sCm2vGo{4lk;p07EHQje@0=GNbPbP*tk)`(sliS@}*pE)hZb z%hQ|QIxGMHA&4Xr60ZFGYyd#zYYHIRpR@wAI=0H>%B|spQ9UK2E3HN; zSREV7tE*U>TT!(8TV!hVx3n3`ndjVO1tEm)dVUL7J?m6ex+*dhzLbyh#Tk}*0+05GaTc7xIRBhGvGm;pw6vTc}F8c$6;{I|jeF>FG@s3$9)G zOOB96gT-*tl)m~!wICpFpF7wc4JVuw!xc3sg{Dz^Ppf;b&mG(%OG;?$ce|Pf;2#Xz z!hzTfLKt)UQH2mti_O$gQCsYZMG_}{Ck7*j%dVSK&~mizs=Xhye1lI&^{T3wRZRmS z1Qx5&TRh2muxOH_h1Ib!NVo}K41 zmu-IQ4shH*eXMQxwBW2M0Pm4b06?(QT|ggym?t?(aajeJOS8F zBbnz^NIxP_O0oEsOY!3Uf12d)@!rfwg~_T$N9m?%QWf?zG|Xt`?lPC`qC@o;zbv zp+Qkp#%wi;xi0H5qltT8-2b_q4f84o-2Fkdq~i2krKf{0tQut+T5;tc61BDY zhx7(+cXO-nB1O>*WHe5INRn!CIxUry(!!m4dd@74`%{jyrT{|S$s+*6v6E#%D$9uY zqX6M_DrYkGC;X8kpU=yUZAe+1KV}?!b2kG0L#}rpT{k!64mN0%8q>>J0{~|i(h>3D{ty_I`6t)zl20628LxoDMccZfYoWk?T>w9^MMWf_w0IgR};~(7sVs| zY#}D*g?*80dYk(_Yku`gM3$6;CYw2HdrE7HQBqyl)wHjpCFQzG83YwYHHCc9>ayD6 zlJEV`*IN5KJR?hIUQsR{{Ml1jz4~frG?bXFD4HpqVw`1JAsXRZ%WI1UWo3M@;-t!v zXgKolk6*c}ZmF(QsQupj1w+<>QyFp4eDzTHvce5`wa$NI24h^RLVKEb1)GSkn$|D8qvkY=xF*g1Pe!=87aes{<5 z-K}5lZymTwRkd9IVCV)RA+`PBulF81xaDwG()!wl$#51q`r}cdjbT_(RW;*?9YCX? zqLORLwah*CVS8(Thqr&rt9tZNr*KFwxxI z;l)6200CbVGa4!~erNB_Hh2cZbitCE%`H< zZf?iB$F2au91tiDm-XnpCAIg@T~hN$tIgEbdi?Zgw!eDg;}n2+_kAl~u;*G{8m?2A zN)<+emz^ywp81i8;P~sycOvLNI}y1ys{w>u6W{Y;Z?~q=tbR{XRB}9?sNLs_!{<8} z89WweZ3i%#j6%)HI(KQsJ^@e=jnQ)o!|5m#2Bwc#f@>@YlYHJiFa8J*U-y$jAtsb- zl#Y;1XcS;sHdb0+{&Hbe@xF&|d_erpOaBI0kRS`vxYZv38dlDM$cw0)Sqb_rimfkh zlP|n+Y1_6nAG|~Y`B2v$h!m~@v^GI z9hFmy10jD5^$n9V+Wpo`AENcx03zW8V>EIXDymjxcUX4R)R+8b$z{{FExM>KxPMnW zCf5{V$;I_2e5dml*I>{c!eh^V9Xu~#=In~Td%yA5y|Szxal6Cynnra1ftvK4{}v-*{Peen93v_89vo!Ij7E|g5pAK3lQp?5V6D=1(c>4yd)@^X%EFm&bm zXSP+T8s$O2Ff6MJ4n?QOqe4k~9tFd)APnQ>4BUt-0HKLp=B$^dxO#v|aksuGAY8q5U%@A%`l&yiT!8)DUxJakxyo6=g z^kNyQiIC#xN?pq+s4=5EHX0Q}2%;grE)q)AWeP=-1S2IB8U>67ZYalT+5O)7{Vm52c1u^? zvSeI4!@)R??CUbya?G{Pe0z`HpnLbki^Zv<@^5wts;yx6Y z2|H-iImL*8Ugai4LTSNkGP>-AIcA+d6|SP(Xitm#l@B)` zy%Zo*w6WXYG>(L^N)P}{WIe z!erz+7cZ>n9vqB*$k{b*GRu;p&lJo|AAPo! zf8-iHu|gP)=O-AY7tgqt0K`@{t=xRa<9Fewt_RMzuk(jv|KIuFEijr5!px=9gz!+* zpixcDcC5%Nc7Rd}Lh{w%P)FaEwR>Bm;Y2VN6&zXnLbLZT$7Ss(smyO`+}_F)0^}9u zWNqKEm_Gd#hD!}837*$ns&{Vk*iTtT$+jU0$D}znlH!Gr?H~zezx&1rY$^c~U2qwI9NGog!hB3#2 z@k`%%;_cR+qunjjmd^Od{dN^QPU}9q!-}VVxen(onL_jiUBulRh>be~kGzj;6zK#E z%f|AHa-ur!(mS9R%|tWoa;hz3Hm zR6Nd!C(4-$e>Qq)lCeFdgg{fNrN3q1y7v9;^>;k_FKBCQ`()pK%BVMH@{iO+q~rUW zq1Y$|)hJ2b`$^$9|Gg1^`2AK;de9{b$_$SuTBmBM8iko{)M%D=BU6!SS;qZL-X*v0{3;GdDlS?I?1D zOKOXG028JFPXja1>E#kpUa!ciK~Xi14wG4q+`s^h+m15QHcE{dGzd7TOJ6T|NuT68pX1d~RAt zyYH58m_Kh+_%qr}IgS-HO4rJYb_i*6ZLFYY8`}wh08sRLU8Er2>bYRa=E zQ4pd4X)8N2+lk?JjINk;R0uT6D5_>;7{>wm>U?8->mOZ@+``;dd`$RR&=Z`Z zX``#~7`GLrgrpzA$AzJ0HBQnj*N{1>hm{jK@o!K<>98AZ0xr*tHlMhyBYnyEy^J={ zk!NJTC;eR|&G;1A+nj2L!NB=ftf>3#{P`8n4h_Y+Zd<+Z?>!~XAq)O4<-tEmEV|-MTS?M8ka|nk3wd=?!ZePOp<}c0+qOBCNmS@@YL=-fR7PPlIzf0Y0@m zfE4;$`cP6^s$2K)x;ec~z5nj%@?0zlvIT_6E^NaePAUv(TjhxvE>pjAY9pCO0nWhj zMw330h>5wfs_I88=ccuXW^3bVx)R5&`X@4^o?hS%1waUa)n;sJXefQi<+QA6Yaa?f z{p4x@=aO;$5%H;407u?GjG-PMBwn({!|~^1!xttl{NwwP5`K%-&{|TG z^VeVe{Hi}xR=B*9tZ1r2&spLBLBW3XpZLedV^2ShO1=_&LX;F$Yd4q;R8usEBCGkT zsu{)^yv7Ls>Ff|j|36)@CocS{YYf9sgHb<}>#)9d*N?A#tgzJC+}7ltBuUC7jZ#h< z*O`3o^YVkv7*V$^^})8p1t>57ys|3cbofTF_A{2A}Y$y9^uP5 zd^CLO6#xLd*ZLmbd;Wdcoi-XA3>=-lbjF}csVOuRDIpBQj##mi0zpo+as%Uq7Z@x2 zWSr2Y?j5^grdhoy2%&^9Dq$GOXf*gLrxZPX!`CnRv(cn)9r8r_Dr*b9p+MXk4GZNo zMFTwgY%=b+k#+>hXyX`HV%C0O)ZllbegL3^5Dg5`Se-7G>o7IXpI7nl%{R??F&Ien znap}fl8W416Q20P!+-B7a1JNHr``w%0FoeKxKtL+FE5abtBXE}1YU4}+cV5}{o{k~6)o$7-%jzYeU}DCQH&PIfOLjttX{>TNnMWd( zx0`w77}J-rN`ho4EEr8(#Obv3=jYpw+3cnr{R6@6MaA~E3zyb}ckb+C05UK#FfA}OEipJ$F*Q0hGdeOeD=;uRFfgw! z=YRkJ03~!qSaf7zbY(hiZ)9m^c>ppnGB7PLH7zkXR53I