From e397bc62c8325f363aaf384e13a2de165bfe903a Mon Sep 17 00:00:00 2001 From: Florian Nowarre Date: Thu, 29 Jan 2026 15:31:27 +0100 Subject: [PATCH 01/13] chore: creating addional bb for azure devops --- .../buildingblock/APP_TEAM_README.md | 514 ++++++++++++++++++ .../buildingblock/README.md | 250 +++++++++ .../aks-azuredevops-starterkit.tftest.hcl | 281 ++++++++++ .../buildingblock/logo.png | Bin 0 -> 18262 bytes .../buildingblock/main.tf | 359 ++++++++++++ .../buildingblock/outputs.tf | 100 ++++ .../buildingblock/provider.tf | 0 .../buildingblock/variables.tf | 185 +++++++ .../buildingblock/versions.tf | 12 + .../backplane/README.md | 0 .../backplane/permissions.png | Bin .../buildingblock/APP_TEAM_README.md | 0 .../buildingblock/README.md | 0 .../buildingblock/logo.png | Bin .../buildingblock/main.tf | 0 .../buildingblock/outputs.tf | 0 .../buildingblock/provider.tf | 1 + .../buildingblock/variables.tf | 0 .../buildingblock/versions.tf | 0 19 files changed, 1702 insertions(+) create mode 100644 modules/aks/starterkit-azuredevops/buildingblock/APP_TEAM_README.md create mode 100644 modules/aks/starterkit-azuredevops/buildingblock/README.md create mode 100644 modules/aks/starterkit-azuredevops/buildingblock/aks-azuredevops-starterkit.tftest.hcl create mode 100644 modules/aks/starterkit-azuredevops/buildingblock/logo.png create mode 100644 modules/aks/starterkit-azuredevops/buildingblock/main.tf create mode 100644 modules/aks/starterkit-azuredevops/buildingblock/outputs.tf rename modules/aks/{starterkit => starterkit-azuredevops}/buildingblock/provider.tf (100%) create mode 100644 modules/aks/starterkit-azuredevops/buildingblock/variables.tf create mode 100644 modules/aks/starterkit-azuredevops/buildingblock/versions.tf rename modules/aks/{starterkit => starterkit-github}/backplane/README.md (100%) rename modules/aks/{starterkit => starterkit-github}/backplane/permissions.png (100%) rename modules/aks/{starterkit => starterkit-github}/buildingblock/APP_TEAM_README.md (100%) rename modules/aks/{starterkit => starterkit-github}/buildingblock/README.md (100%) rename modules/aks/{starterkit => starterkit-github}/buildingblock/logo.png (100%) rename modules/aks/{starterkit => starterkit-github}/buildingblock/main.tf (100%) rename modules/aks/{starterkit => starterkit-github}/buildingblock/outputs.tf (100%) create mode 100644 modules/aks/starterkit-github/buildingblock/provider.tf rename modules/aks/{starterkit => starterkit-github}/buildingblock/variables.tf (100%) rename modules/aks/{starterkit => starterkit-github}/buildingblock/versions.tf (100%) diff --git a/modules/aks/starterkit-azuredevops/buildingblock/APP_TEAM_README.md b/modules/aks/starterkit-azuredevops/buildingblock/APP_TEAM_README.md new file mode 100644 index 00000000..b86e55dd --- /dev/null +++ b/modules/aks/starterkit-azuredevops/buildingblock/APP_TEAM_README.md @@ -0,0 +1,514 @@ +# Azure Kubernetes Service (AKS) Starter Kit - Azure DevOps + +## What is it? + +The **AKS Azure DevOps Starter Kit** provides application teams with a pre-configured Kubernetes environment integrated with Azure DevOps. It automates the creation of essential infrastructure, including an Azure DevOps project, Git repository, CI/CD pipelines, and secure Azure service connections using passwordless authentication. + +## When to use it? + +This building block is ideal for teams that: + +- Want to deploy applications on Kubernetes without manual infrastructure setup +- Use Azure DevOps for version control and CI/CD workflows +- Need separate development and production environments with different deployment processes +- Prefer secure, passwordless authentication with Workload Identity Federation (OIDC) +- Want branch-based deployment automation (main → dev, release → prod) + +## Usage Examples + +1. **Deploying a microservice**: A developer creates a complete CI/CD pipeline for a new microservice with separate dev/prod pipelines and namespaces +2. **Team onboarding**: New teams get immediate access to a fully configured Azure DevOps project with AKS integration and role-based access +3. **Multi-stage deployment**: Deploy to dev on every commit to main, deploy to prod on release branch merges with additional safeguards + +## Resources Created + +This building block automates the creation of the following resources: + +- **Azure DevOps Project**: A dedicated project for your application with role-based access control + - **Git Repository**: Initialized with Dockerfile, Kubernetes manifests, and pipeline definitions + - **Dev Pipeline**: Builds and deploys from `main` branch to development environment + - **Prod Pipeline**: Builds and deploys from `release` branch to production environment + +- **Development Project**: You, as the creator, will have Project Admin access + - **AKS Namespace**: A dedicated Kubernetes namespace for development + - **Azure Service Connection**: Connects the pipeline to Azure (auto-authorized for faster iteration) + +- **Production Project**: You, as the creator, will have Project Admin access + - **AKS Namespace**: A dedicated Kubernetes namespace for production + - **Azure Service Connection**: Connects the pipeline to Azure (manual authorization for security) + +## Shared Responsibilities + +| Responsibility | Platform Team | Application Team | +| -------------------------------------------- | ------------- | ---------------- | +| Provision and manage AKS cluster | ✅ | ❌ | +| Create Azure DevOps project | ✅ | ❌ | +| Set up CI/CD pipelines | ✅ | ❌ | +| Configure service connections | ✅ | ❌ | +| Build and scan Docker images | ✅ | ❌ | +| Manage Kubernetes namespaces (dev/prod) | ✅ | ❌ | +| Manage resources inside namespaces | ❌ | ✅ | +| Develop and maintain application source code | ❌ | ✅ | +| Maintain pipeline YAML files | ❌ | ✅ | +| Merge to release branch for prod deployments | ❌ | ✅ | + +--- + +## Getting Started + +### 1. Access Your Azure DevOps Project + +After the starter kit is deployed, you'll receive a summary with links to your Azure DevOps project. Navigate to: + +``` +https://dev.azure.com// +``` + +### 2. Clone Your Repository + +Clone the Git repository to your local machine: + +```bash +git clone https://dev.azure.com///_git/ +cd +``` + +### 3. Understand the Branch Strategy + +- **main branch**: Development work happens here + - Commits trigger the **Dev Pipeline** + - Deploys automatically to the **dev AKS namespace** + +- **release branch**: Production releases happen here + - Commits trigger the **Prod Pipeline** + - Deploys to the **prod AKS namespace** + - Requires manual service connection authorization on first run + +### 4. Make Your First Deployment + +#### Deploy to Development + +```bash +# Make changes to your code +git add . +git commit -m "My first change" +git push origin main +``` + +The Dev Pipeline will automatically: +1. Build your Docker image +2. Run security scans +3. Deploy to your dev AKS namespace +4. Make it available at `https://-dev.likvid-k8s.msh.host` + +#### Deploy to Production + +```bash +# First, ensure your main branch is stable +git checkout release +git merge main +git push origin release +``` + +The Prod Pipeline will: +1. Pause for service connection authorization (first run only) +2. Build your Docker image +3. Run security scans +4. Deploy to your prod AKS namespace +5. Make it available at `https://.likvid-k8s.msh.host` + +**First Run Authorization**: When the prod pipeline runs for the first time, it will pause and ask you to authorize the service connection. Click **View** → **Permit** to continue. + +--- + +## Repository Structure + +Your repository includes the following files: + +``` +├── azure-pipelines-dev.yml # Dev pipeline definition +├── azure-pipelines-prod.yml # Prod pipeline definition +├── Dockerfile # Container image build instructions +├── k8s/ +│ ├── deployment.yaml # Kubernetes deployment manifest +│ ├── service.yaml # Kubernetes service manifest +│ └── ingress.yaml # Kubernetes ingress manifest +└── src/ + └── [your application code] +``` + +--- + +## Pipeline Variables + +Both pipelines have the following variables pre-configured: + +| Variable | Description | Example | +|----------|-------------|---------| +| `AKS_NAMESPACE` | Your dedicated Kubernetes namespace | `myapp-dev-abc123` | +| `ENVIRONMENT` | Environment name (development or production) | `development` | +| `SERVICE_CONNECTION` | Azure service connection name | `Azure-AKS-Dev` | +| `DOMAIN_NAME` | Application subdomain | `myapp-dev` | + +You can reference these in your pipeline YAML: + +```yaml +- script: | + echo "Deploying to $(AKS_NAMESPACE)" + echo "Environment: $(ENVIRONMENT)" +``` + +--- + +## Customizing Your Pipelines + +### Modify Pipeline Steps + +Edit `azure-pipelines-dev.yml` or `azure-pipelines-prod.yml` to customize the build and deployment process: + +```yaml +trigger: + branches: + include: + - main # or 'release' for prod + +pool: + vmImage: 'ubuntu-latest' + +variables: + - name: DOCKER_REGISTRY + value: 'myregistry.azurecr.io' + +steps: + - task: Docker@2 + displayName: 'Build Docker Image' + inputs: + command: build + dockerfile: 'Dockerfile' + tags: | + $(Build.BuildId) + latest + + - task: AzureCLI@2 + displayName: 'Deploy to AKS' + inputs: + azureSubscription: $(SERVICE_CONNECTION) + scriptType: 'bash' + scriptLocation: 'inlineScript' + inlineScript: | + kubectl apply -f k8s/ --namespace=$(AKS_NAMESPACE) +``` + +### Add Environment Secrets + +Store sensitive values in Azure Key Vault and reference them in your pipeline: + +1. Go to **Pipelines** → **Library** +2. Create a **Variable Group** linked to Azure Key Vault +3. Reference in pipeline: + +```yaml +variables: + - group: my-secrets + +steps: + - script: | + echo "Database connection: $(DB_CONNECTION_STRING)" +``` + +--- + +## Monitoring Your Deployments + +### View Pipeline Runs + +Navigate to **Pipelines** in your Azure DevOps project: + +- **Dev Pipeline**: Shows all deployments to development +- **Prod Pipeline**: Shows all deployments to production + +Each run shows: +- Build logs +- Test results +- Deployment status +- Security scan results + +### Access Your Applications + +Once deployed, your applications are available at: + +- **Dev**: `https://-dev.likvid-k8s.msh.host` +- **Prod**: `https://.likvid-k8s.msh.host` + +### View AKS Namespace Resources + +Access your Kubernetes namespaces via meshStack: + +1. Navigate to your **Dev Project** or **Prod Project** +2. Click on the **AKS Tenant** +3. Use `kubectl` or the Azure portal to inspect resources + +--- + +## Security Features + +### Workload Identity Federation (Passwordless Authentication) + +Your service connections use **Workload Identity Federation (OIDC)** for authentication: + +✅ **No secrets to manage** - authentication uses short-lived tokens +✅ **Automatic token rotation** - tokens expire quickly and are refreshed automatically +✅ **Zero maintenance** - no manual credential rotation needed +✅ **Better security** - no long-lived credentials that can leak + +### Branch Policies + +The main branch has policies enforced: + +- **Minimum reviewers**: At least 1 reviewer required for PRs +- **Work item linking**: Encourages linking code changes to work items +- **No direct commits**: All changes go through pull requests + +### Manual Authorization for Production + +Production deployments require explicit authorization: + +- First time a pipeline runs, you must approve the service connection +- Prevents accidental or unauthorized deployments to production +- Can be authorized permanently for trusted pipelines + +--- + +## Team Collaboration + +### Inviting Team Members + +Add team members via meshStack: + +1. Navigate to your **Dev Project** or **Prod Project** +2. Go to **Access Management** → **Role Mapping** +3. Invite users with appropriate roles: + - **Project Admin**: Full control over the project + - **Project User**: Can view and manage resources + - **Project Reader**: Read-only access + +### Azure DevOps Roles + +Team members are automatically assigned Azure DevOps roles based on their meshStack roles: + +| meshStack Role | Azure DevOps Role | +|----------------|------------------| +| Workspace Owner | Project Administrator | +| Workspace Manager | Contributor | +| Workspace Member | Reader | + +--- + +## Best Practices + +### Branch Strategy + +**Recommended Workflow**: + +1. Create feature branches from `main` +2. Develop and test locally +3. Open PR to `main` for code review +4. Merge to `main` → triggers dev deployment +5. Test in dev environment +6. When ready for release, merge `main` to `release` → triggers prod deployment + +**Example**: + +```bash +# Create feature branch +git checkout -b feature/new-api +# ... make changes ... +git commit -m "Add new API endpoint" +git push origin feature/new-api + +# Open PR to main (via Azure DevOps UI) +# After merge, dev deployment happens automatically + +# When ready for production +git checkout release +git merge main +git push origin release +# Prod deployment happens after authorization +``` + +### Service Connection Authorization + +**Development**: +- Auto-authorized for convenience +- Faster iteration and testing + +**Production**: +- Manual authorization required on first use +- Adds security checkpoint +- Can be permanently authorized for specific pipelines after initial approval + +### Resource Management + +**Inside Your Namespace**: +- ✅ Deploy applications +- ✅ Create services, config maps, secrets +- ✅ Manage resource quotas and limits + +**Outside Your Namespace**: +- ❌ Cannot modify cluster-wide resources +- ❌ Cannot access other teams' namespaces +- ❌ Cannot change network policies + +### Cost Optimization + +- Use resource requests and limits in Kubernetes manifests +- Clean up unused resources regularly +- Monitor resource usage via meshStack project tags + +--- + +## Troubleshooting + +### Pipeline Fails: "Service connection not found" + +**Cause**: Service connection name mismatch or not authorized + +**Solution**: +1. Verify service connection name in pipeline YAML matches exactly (case-sensitive) +2. Check if manual authorization is required (go to pipeline run and click "Permit") +3. Ensure service connection exists in **Project Settings** → **Service connections** + +### Pipeline Fails: "Insufficient permissions" + +**Cause**: Service principal lacks required permissions + +**Solution**: Contact the Platform Team to verify service principal role assignment. Required roles: +- **Contributor**: For resource deployment +- **Reader**: For read-only operations + +### Service Connection Shows as Invalid + +**Cause**: Service principal or federated credential configuration issue + +**Solution**: Contact the Platform Team to verify: +- Service principal exists and is active +- Federated identity credential is configured correctly +- Azure AD application is properly set up + +### Cannot Access AKS Namespace + +**Cause**: Missing Kubernetes RBAC permissions + +**Solution**: +1. Verify you have Project Admin or Project User role in meshStack +2. Ensure the tenant (AKS namespace) is fully provisioned +3. Check with Platform Team if custom RBAC policies are in place + +### Application Not Accessible + +**Cause**: Ingress or service misconfiguration + +**Solution**: +1. Check ingress manifest for correct hostname +2. Verify service is targeting correct pods (label selectors) +3. Ensure pods are running: `kubectl get pods -n ` +4. Check ingress controller logs + +### First Production Deployment Stuck + +**Cause**: Service connection requires manual authorization + +**Solution**: This is expected behavior. Go to the pipeline run and: +1. Click **View** next to the authorization request +2. Click **Permit** to authorize the service connection +3. Pipeline will continue automatically + +--- + +## Advanced Configuration + +### Adding Stages and Environments + +Modify your pipeline to add approval gates: + +```yaml +stages: + - stage: Build + jobs: + - job: BuildJob + steps: + - script: docker build -t myapp . + + - stage: DeployDev + dependsOn: Build + jobs: + - deployment: DeployDevJob + environment: development + strategy: + runOnce: + deploy: + steps: + - script: kubectl apply -f k8s/ + + - stage: DeployProd + dependsOn: DeployDev + jobs: + - deployment: DeployProdJob + environment: production # Requires manual approval + strategy: + runOnce: + deploy: + steps: + - script: kubectl apply -f k8s/ +``` + +### Integrating with Azure Container Registry + +Update your pipeline to use ACR: + +```yaml +variables: + - name: ACR_NAME + value: 'myregistry.azurecr.io' + +steps: + - task: Docker@2 + displayName: 'Build and Push to ACR' + inputs: + command: buildAndPush + repository: 'myapp' + containerRegistry: 'Azure-ACR-Connection' + tags: | + $(Build.BuildId) +``` + +### Running Tests Before Deployment + +Add test stages to your pipeline: + +```yaml +steps: + - script: | + npm install + npm test + displayName: 'Run Unit Tests' + + - task: PublishTestResults@2 + inputs: + testResultsFormat: 'JUnit' + testResultsFiles: '**/test-results.xml' +``` + +--- + +## Related Documentation + +- [Azure DevOps Pipelines](https://learn.microsoft.com/en-us/azure/devops/pipelines/) +- [Workload Identity Federation](https://learn.microsoft.com/en-us/azure/devops/pipelines/library/connect-to-azure) +- [AKS Best Practices](https://learn.microsoft.com/en-us/azure/aks/best-practices) +- [Kubernetes Documentation](https://kubernetes.io/docs/home/) +- [meshStack Documentation](https://docs.meshcloud.io/) + +--- + +🎉 **Happy coding!** Your AKS Azure DevOps environment is ready for production workloads. diff --git a/modules/aks/starterkit-azuredevops/buildingblock/README.md b/modules/aks/starterkit-azuredevops/buildingblock/README.md new file mode 100644 index 00000000..6aff76ec --- /dev/null +++ b/modules/aks/starterkit-azuredevops/buildingblock/README.md @@ -0,0 +1,250 @@ +--- +name: AKS Starter Kit - Azure DevOps +supportedPlatforms: + - aks +description: Provides a complete AKS development environment with Azure DevOps project, Git repository, CI/CD pipelines, and separate dev/prod namespaces with passwordless authentication. +--- + +# AKS Starter Kit - Azure DevOps + +This building block creates a complete AKS application development environment integrated with Azure DevOps, including: + +- **Azure DevOps Project**: Dedicated project with role-based access control +- **Git Repository**: Initialized with application templates and deployment manifests +- **Dev Environment**: meshStack project + AKS namespace + service connection + pipeline +- **Prod Environment**: meshStack project + AKS namespace + service connection + pipeline +- **CI/CD Pipelines**: Automated deployments triggered by branch commits +- **Service Connections**: Passwordless authentication using Workload Identity Federation + +## Architecture + +``` +Azure DevOps Project +├── Git Repository +├── Dev Pipeline (main branch) → Dev AKS Namespace +└── Prod Pipeline (release branch) → Prod AKS Namespace +``` + +## Resources Created + +### Azure DevOps Resources +- **Project**: Container for all Azure DevOps resources +- **Repository**: Git repository with application code and manifests +- **Pipelines**: Two pipelines (dev and prod) with separate triggers + +### meshStack Resources +- **Dev Project + Tenant**: Development AKS namespace +- **Prod Project + Tenant**: Production AKS namespace +- **Service Connections**: Azure service connections for both environments +- **User Bindings**: Creator assigned as Project Admin on both projects + +## Deployment Flow + +### Development +1. Developer commits to `main` branch +2. Dev pipeline triggers automatically +3. Builds container image +4. Scans with security tools +5. Deploys to dev AKS namespace + +### Production +1. Developer creates PR from `main` to `release` +2. PR review and merge +3. Prod pipeline triggers +4. Same build and scan process +5. Requires manual authorization (first run) +6. Deploys to prod AKS namespace + +## Security Features + +- **Workload Identity Federation**: Passwordless authentication between Azure DevOps and Azure +- **Branch Policies**: Enforced code reviews on main branch +- **Manual Authorization**: Production deployments require explicit approval +- **Least Privilege**: Service principals have minimal required permissions +- **Separate Environments**: Isolated dev and prod namespaces + +## Prerequisites + +The following must be configured before using this building block: + +1. **Azure DevOps Organization**: Active organization with PAT token stored in Key Vault +2. **Service Principals**: Pre-created for dev and prod environments with appropriate role assignments +3. **AKS Landing Zones**: Configured landing zones for dev and prod +4. **Building Block Definitions**: Azure DevOps project, repository, pipeline, and service connection definitions must exist + +## Variables + +### Required Variables + +- `workspace_identifier`: meshStack workspace +- `name`: Name for projects, repository, and namespaces +- `full_platform_identifier`: AKS platform identifier +- `landing_zone_dev_identifier`: Dev AKS landing zone +- `landing_zone_prod_identifier`: Prod AKS landing zone +- `azdevops_*_definition_*_uuid`: UUIDs for all Azure DevOps building block definitions +- `azdevops_organization_name`: Azure DevOps organization name +- `creator`: Creator user information for RBAC +- `dev_azure_subscription_id`: Azure subscription for dev +- `dev_service_principal_id`: Service principal for dev +- `dev_application_object_id`: Azure AD app object ID for dev +- `prod_azure_subscription_id`: Azure subscription for prod +- `prod_service_principal_id`: Service principal for prod +- `prod_application_object_id`: Azure AD app object ID for prod +- `azure_tenant_id`: Azure AD tenant ID + +### Optional Variables + +- `project_tags_yaml`: YAML configuration for project tags (default: empty) +- `repository_init_type`: Repository initialization (Clean or Import, default: Clean) +- `enable_branch_policies`: Enable branch policies (default: true) +- `minimum_reviewers`: Minimum PR reviewers (default: 1) + +## Outputs + +- `dev_link`: URL to dev environment application +- `prod_link`: URL to prod environment application +- `azdevops_project_url`: Azure DevOps project URL +- `azdevops_repository_url`: Git repository URL +- `summary`: Detailed summary with next steps and resource links + +## Integration with Other Building Blocks + +This starter kit orchestrates multiple building blocks: + +1. **Azure DevOps Project** (`azuredevops/project`) +2. **Azure DevOps Repository** (`azuredevops/repository`) +3. **Azure DevOps Pipeline** (2x - `azuredevops/pipeline`) +4. **Azure DevOps Service Connection** (2x - `azuredevops/service-connection-subscription`) + +Parent-child relationships ensure proper dependency ordering and resource cleanup. + +## Best Practices + +### Naming Convention +The `name` variable is normalized to create consistent identifiers: +- Special characters removed +- Converted to lowercase +- Spaces/hyphens normalized +- Random suffix added to ensure uniqueness + +### Branch Strategy +- `main`: Development work, auto-deploys to dev +- `release`: Production releases, auto-deploys to prod +- Feature branches: Create from main, merge back to main + +### Service Connections +- Dev: Auto-authorized for faster development iteration +- Prod: Manual authorization for enhanced security + +### Project Tags +Use `project_tags_yaml` to apply consistent tagging across dev and prod projects for cost allocation and governance. + +## Troubleshooting + +### Pipeline Authorization Required +**Symptom**: Prod pipeline pauses asking for resource authorization + +**Solution**: This is expected on first run. Click "View" → "Permit" to authorize the service connection. + +### Service Connection Invalid +**Symptom**: Pipeline fails with authentication error + +**Solution**: Verify service principals exist and have correct role assignments. Contact platform team. + +### Repository Not Initialized +**Symptom**: Empty repository created + +**Solution**: Verify `repository_init_type` is set to "Clean" or "Import". For Import, ensure template repository is accessible. + +## Maintenance + +### Updating Pipeline YAML +Pipelines reference `azure-pipelines-dev.yml` and `azure-pipelines-prod.yml` in the repository. Modify these files to customize the CI/CD process. + +### Adding New Environments +To add staging or other environments: +1. Create new meshStack project and tenant +2. Add service connection building block +3. Add pipeline building block with appropriate branch trigger + +### Service Principal Rotation +Service principals use Workload Identity Federation (OIDC). No credential rotation is required - authentication is passwordless. + +## Related Documentation + +- [Azure DevOps Pipelines](https://learn.microsoft.com/en-us/azure/devops/pipelines/) +- [Workload Identity Federation](https://learn.microsoft.com/en-us/azure/devops/pipelines/library/connect-to-azure) +- [AKS Best Practices](https://learn.microsoft.com/en-us/azure/aks/best-practices) +- [meshStack Building Blocks](https://docs.meshcloud.io/docs/meshstack.building-blocks.html) + + +## Requirements + +| Name | Version | +|------|---------| +| [meshstack](#requirement\_meshstack) | 0.15.0 | +| [random](#requirement\_random) | ~> 3.6 | + +## Modules + +No modules. + +## Resources + +| Name | Type | +|------|------| +| [meshstack_building_block_v2.azdevops_project](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/building_block_v2) | resource | +| [meshstack_building_block_v2.pipeline_dev](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/building_block_v2) | resource | +| [meshstack_building_block_v2.pipeline_prod](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/building_block_v2) | resource | +| [meshstack_building_block_v2.repository](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/building_block_v2) | resource | +| [meshstack_building_block_v2.service_connection_dev](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/building_block_v2) | resource | +| [meshstack_building_block_v2.service_connection_prod](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/building_block_v2) | resource | +| [meshstack_project.dev](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/project) | resource | +| [meshstack_project.prod](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/project) | resource | +| [meshstack_project_user_binding.creator_dev_admin](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/project_user_binding) | resource | +| [meshstack_project_user_binding.creator_prod_admin](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/project_user_binding) | resource | +| [meshstack_tenant_v4.dev](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/tenant_v4) | resource | +| [meshstack_tenant_v4.prod](https://registry.terraform.io/providers/meshcloud/meshstack/0.15.0/docs/resources/tenant_v4) | resource | +| [random_id.suffix](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/id) | resource | + +## Inputs + +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [azdevops\_organization\_name](#input\_azdevops\_organization\_name) | Azure DevOps organization name. Used only for display purposes. | `string` | n/a | yes | +| [azdevops\_pipeline\_definition\_uuid](#input\_azdevops\_pipeline\_definition\_uuid) | UUID of the Azure DevOps pipeline building block definition. | `string` | n/a | yes | +| [azdevops\_pipeline\_definition\_version\_uuid](#input\_azdevops\_pipeline\_definition\_version\_uuid) | UUID of the Azure DevOps pipeline building block definition version. | `string` | n/a | yes | +| [azdevops\_project\_definition\_uuid](#input\_azdevops\_project\_definition\_uuid) | UUID of the Azure DevOps project building block definition. | `string` | n/a | yes | +| [azdevops\_project\_definition\_version\_uuid](#input\_azdevops\_project\_definition\_version\_uuid) | UUID of the Azure DevOps project building block definition version. | `string` | n/a | yes | +| [azdevops\_repository\_definition\_uuid](#input\_azdevops\_repository\_definition\_uuid) | UUID of the Azure DevOps repository building block definition. | `string` | n/a | yes | +| [azdevops\_repository\_definition\_version\_uuid](#input\_azdevops\_repository\_definition\_version\_uuid) | UUID of the Azure DevOps repository building block definition version. | `string` | n/a | yes | +| [azdevops\_service\_connection\_definition\_uuid](#input\_azdevops\_service\_connection\_definition\_uuid) | UUID of the Azure DevOps service connection building block definition. | `string` | n/a | yes | +| [azdevops\_service\_connection\_definition\_version\_uuid](#input\_azdevops\_service\_connection\_definition\_version\_uuid) | UUID of the Azure DevOps service connection building block definition version. | `string` | n/a | yes | +| [azure\_tenant\_id](#input\_azure\_tenant\_id) | Azure AD tenant ID | `string` | n/a | yes | +| [creator](#input\_creator) | Information about the creator of the resources who will be assigned Project Admin role |
object({
type = string
identifier = string
displayName = string
username = optional(string)
email = optional(string)
euid = optional(string)
})
| n/a | yes | +| [dev\_application\_object\_id](#input\_dev\_application\_object\_id) | Azure AD application object ID for the development service principal | `string` | n/a | yes | +| [dev\_azure\_subscription\_id](#input\_dev\_azure\_subscription\_id) | Azure subscription ID for the development environment | `string` | n/a | yes | +| [dev\_service\_principal\_id](#input\_dev\_service\_principal\_id) | Service principal client ID for the development environment | `string` | n/a | yes | +| [enable\_branch\_policies](#input\_enable\_branch\_policies) | Enable branch policies for the main branch (minimum reviewers, work item linking) | `bool` | `true` | no | +| [full\_platform\_identifier](#input\_full\_platform\_identifier) | Full platform identifier of the AKS Namespace platform. | `string` | n/a | yes | +| [landing\_zone\_dev\_identifier](#input\_landing\_zone\_dev\_identifier) | AKS Landing zone identifier for the development tenant. | `string` | n/a | yes | +| [landing\_zone\_prod\_identifier](#input\_landing\_zone\_prod\_identifier) | AKS Landing zone identifier for the production tenant. | `string` | n/a | yes | +| [minimum\_reviewers](#input\_minimum\_reviewers) | Minimum number of reviewers required for pull requests | `number` | `1` | no | +| [name](#input\_name) | This name will be used for the created projects, app subdomain, Azure DevOps project and repository. | `string` | n/a | yes | +| [prod\_application\_object\_id](#input\_prod\_application\_object\_id) | Azure AD application object ID for the production service principal | `string` | n/a | yes | +| [prod\_azure\_subscription\_id](#input\_prod\_azure\_subscription\_id) | Azure subscription ID for the production environment | `string` | n/a | yes | +| [prod\_service\_principal\_id](#input\_prod\_service\_principal\_id) | Service principal client ID for the production environment | `string` | n/a | yes | +| [project\_tags\_yaml](#input\_project\_tags\_yaml) | YAML configuration for project tags that will be applied to dev and prod projects. Expected structure:
yaml
dev:
key1:
- "value1"
- "value2"
key2:
- "value3"
prod:
key1:
- "value4"
key2:
- "value5"
- "value6"
| `string` | `"dev: {}\nprod: {}\n"` | no | +| [repository\_init\_type](#input\_repository\_init\_type) | Repository initialization type (Clean or Import) | `string` | `"Clean"` | no | +| [workspace\_identifier](#input\_workspace\_identifier) | meshStack workspace identifier | `string` | n/a | yes | + +## Outputs + +| Name | Description | +|------|-------------| +| [azdevops\_project\_url](#output\_azdevops\_project\_url) | URL of the created Azure DevOps project | +| [azdevops\_repository\_url](#output\_azdevops\_repository\_url) | URL of the created Azure DevOps repository | +| [dev\_link](#output\_dev\_link) | Link to the dev environment application | +| [prod\_link](#output\_prod\_link) | Link to the prod environment application | +| [summary](#output\_summary) | Summary with next steps and insights into created resources | + \ No newline at end of file diff --git a/modules/aks/starterkit-azuredevops/buildingblock/aks-azuredevops-starterkit.tftest.hcl b/modules/aks/starterkit-azuredevops/buildingblock/aks-azuredevops-starterkit.tftest.hcl new file mode 100644 index 00000000..19536fcf --- /dev/null +++ b/modules/aks/starterkit-azuredevops/buildingblock/aks-azuredevops-starterkit.tftest.hcl @@ -0,0 +1,281 @@ +variables { + workspace_identifier = "likvid-workspace" + name = "MyApp" + full_platform_identifier = "aks.eu-de-central" + landing_zone_dev_identifier = "aks-dev-lz" + landing_zone_prod_identifier = "aks-prod-lz" + azdevops_project_definition_version_uuid = "00000000-0000-0000-0000-000000000001" + azdevops_project_definition_uuid = "00000000-0000-0000-0000-000000000002" + azdevops_repository_definition_version_uuid = "00000000-0000-0000-0000-000000000003" + azdevops_repository_definition_uuid = "00000000-0000-0000-0000-000000000004" + azdevops_pipeline_definition_version_uuid = "00000000-0000-0000-0000-000000000005" + azdevops_pipeline_definition_uuid = "00000000-0000-0000-0000-000000000006" + azdevops_service_connection_definition_version_uuid = "00000000-0000-0000-0000-000000000007" + azdevops_service_connection_definition_uuid = "00000000-0000-0000-0000-000000000008" + azdevops_organization_name = "likvid-bank" + dev_azure_subscription_id = "11111111-1111-1111-1111-111111111111" + dev_service_principal_id = "22222222-2222-2222-2222-222222222222" + dev_application_object_id = "33333333-3333-3333-3333-333333333333" + prod_azure_subscription_id = "44444444-4444-4444-4444-444444444444" + prod_service_principal_id = "55555555-5555-5555-5555-555555555555" + prod_application_object_id = "66666666-6666-6666-6666-666666666666" + azure_tenant_id = "77777777-7777-7777-7777-777777777777" + + creator = { + type = "User" + identifier = "likvid-tom-user" + displayName = "Tom Livkid" + username = "likvid-tom@meshcloud.io" + email = "likvid-tom@meshcloud.io" + euid = "likvid-tom@meshcloud.io" + } +} + +run "valid_starter_kit_creation" { + command = plan + + assert { + condition = meshstack_project.dev.metadata.name == "myapp-dev" + error_message = "Dev project name should be normalized and suffixed with -dev" + } + + assert { + condition = meshstack_project.prod.metadata.name == "myapp-prod" + error_message = "Prod project name should be normalized and suffixed with -prod" + } + + assert { + condition = meshstack_tenant_v4.dev.spec.platform_identifier == var.full_platform_identifier + error_message = "Dev tenant should use correct platform identifier" + } + + assert { + condition = meshstack_tenant_v4.prod.spec.platform_identifier == var.full_platform_identifier + error_message = "Prod tenant should use correct platform identifier" + } + + assert { + condition = meshstack_building_block_v2.azdevops_project.spec.target_ref.kind == "meshWorkspace" + error_message = "Azure DevOps project should target workspace" + } + + assert { + condition = length(meshstack_building_block_v2.repository.spec.parent_building_blocks) == 1 + error_message = "Repository should have Azure DevOps project as parent" + } + + assert { + condition = length(meshstack_building_block_v2.service_connection_dev.spec.parent_building_blocks) == 1 + error_message = "Dev service connection should have Azure DevOps project as parent" + } + + assert { + condition = length(meshstack_building_block_v2.service_connection_prod.spec.parent_building_blocks) == 1 + error_message = "Prod service connection should have Azure DevOps project as parent" + } + + assert { + condition = length(meshstack_building_block_v2.pipeline_dev.spec.parent_building_blocks) == 2 + error_message = "Dev pipeline should have repository and service connection as parents" + } + + assert { + condition = length(meshstack_building_block_v2.pipeline_prod.spec.parent_building_blocks) == 2 + error_message = "Prod pipeline should have repository and service connection as parents" + } + + assert { + condition = meshstack_building_block_v2.service_connection_dev.spec.inputs.authorize_all_pipelines.value_bool == true + error_message = "Dev service connection should auto-authorize pipelines" + } + + assert { + condition = meshstack_building_block_v2.service_connection_prod.spec.inputs.authorize_all_pipelines.value_bool == false + error_message = "Prod service connection should require manual authorization" + } +} + +run "creator_assigned_as_project_admin" { + command = plan + + variables { + creator = { + type = "User" + identifier = "likvid-daniela-user" + displayName = "Daniela Livkid" + username = "likvid-daniela@meshcloud.io" + email = "likvid-daniela@meshcloud.io" + euid = "likvid-daniela@meshcloud.io" + } + } + + assert { + condition = length(meshstack_project_user_binding.creator_dev_admin) == 1 + error_message = "Creator should be assigned as Project Admin on dev project" + } + + assert { + condition = length(meshstack_project_user_binding.creator_prod_admin) == 1 + error_message = "Creator should be assigned as Project Admin on prod project" + } + + assert { + condition = meshstack_project_user_binding.creator_dev_admin[0].role_ref.name == "Project Admin" + error_message = "Creator should have Project Admin role on dev project" + } + + assert { + condition = meshstack_project_user_binding.creator_prod_admin[0].role_ref.name == "Project Admin" + error_message = "Creator should have Project Admin role on prod project" + } + + assert { + condition = meshstack_project_user_binding.creator_dev_admin[0].subject.name == "likvid-daniela@meshcloud.io" + error_message = "Creator username should be correctly assigned" + } +} + +run "non_user_creator_skips_bindings" { + command = plan + + variables { + creator = { + type = "ServiceAccount" + identifier = "system-account" + displayName = "System Account" + } + } + + assert { + condition = length(meshstack_project_user_binding.creator_dev_admin) == 0 + error_message = "Non-user creator should not have user bindings created" + } + + assert { + condition = length(meshstack_project_user_binding.creator_prod_admin) == 0 + error_message = "Non-user creator should not have user bindings created" + } +} + +run "custom_project_tags" { + command = plan + + variables { + project_tags_yaml = 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 Z;{Txru~y$^ToC{O002ovPDHLkV1hhWrGNkc literal 0 HcmV?d00001 diff --git a/modules/aks/starterkit-azuredevops/buildingblock/main.tf b/modules/aks/starterkit-azuredevops/buildingblock/main.tf new file mode 100644 index 00000000..6c043762 --- /dev/null +++ b/modules/aks/starterkit-azuredevops/buildingblock/main.tf @@ -0,0 +1,359 @@ +locals { + identifier = lower(replace(replace(var.name, "/[^a-zA-Z0-9\\s\\-\\_]/", ""), "/[\\s\\-\\_]+/", "-")) + + project_tags_config = yamldecode(var.project_tags_yaml) +} + +resource "random_id" "suffix" { + byte_length = 4 +} + +resource "meshstack_project" "dev" { + metadata = { + name = "${local.identifier}-dev" + owned_by_workspace = var.workspace_identifier + } + spec = { + display_name = "${var.name} Dev" + tags = try(local.project_tags_config.dev, {}) + } +} + +resource "meshstack_project" "prod" { + metadata = { + name = "${local.identifier}-prod" + owned_by_workspace = var.workspace_identifier + } + spec = { + display_name = "${var.name} Prod" + tags = try(local.project_tags_config.prod, {}) + } +} + +resource "meshstack_project_user_binding" "creator_dev_admin" { + count = var.creator.type == "User" && var.creator.username != null ? 1 : 0 + + metadata = { + name = uuid() + } + + role_ref = { + name = "Project Admin" + } + + target_ref = { + owned_by_workspace = var.workspace_identifier + name = meshstack_project.dev.metadata.name + } + + subject = { + name = var.creator.username + } +} + +resource "meshstack_project_user_binding" "creator_prod_admin" { + count = var.creator.type == "User" && var.creator.username != null ? 1 : 0 + + metadata = { + name = uuid() + } + + role_ref = { + name = "Project Admin" + } + + target_ref = { + owned_by_workspace = var.workspace_identifier + name = meshstack_project.prod.metadata.name + } + + subject = { + name = var.creator.username + } +} + +resource "meshstack_tenant_v4" "dev" { + metadata = { + owned_by_workspace = var.workspace_identifier + owned_by_project = meshstack_project.dev.metadata.name + } + + spec = { + platform_identifier = var.full_platform_identifier + landing_zone_identifier = var.landing_zone_dev_identifier + } +} + +resource "meshstack_tenant_v4" "prod" { + metadata = { + owned_by_workspace = var.workspace_identifier + owned_by_project = meshstack_project.prod.metadata.name + } + + spec = { + platform_identifier = var.full_platform_identifier + landing_zone_identifier = var.landing_zone_prod_identifier + } +} + +resource "meshstack_building_block_v2" "azdevops_project" { + spec = { + building_block_definition_version_ref = { + uuid = var.azdevops_project_definition_version_uuid + } + + display_name = "${local.identifier}-aks" + target_ref = { + kind = "meshWorkspace" + identifier = var.workspace_identifier + } + + inputs = { + project_name = { + value_string = "${local.identifier}-aks-${random_id.suffix.hex}" + } + project_description = { + value_string = "AKS application deployment project for ${var.name}" + } + project_visibility = { + value_string = "private" + } + } + } +} + +resource "meshstack_building_block_v2" "repository" { + spec = { + building_block_definition_version_ref = { + uuid = var.azdevops_repository_definition_version_uuid + } + + display_name = "${local.identifier}-app" + target_ref = { + kind = "meshWorkspace" + identifier = var.workspace_identifier + } + + parent_building_blocks = [{ + buildingblock_uuid = meshstack_building_block_v2.azdevops_project.metadata.uuid + definition_uuid = var.azdevops_project_definition_uuid + }] + + inputs = { + repository_name = { + value_string = "${local.identifier}-app" + } + init_type = { + value_string = var.repository_init_type + } + enable_branch_policies = { + value_bool = var.enable_branch_policies + } + minimum_reviewers = { + value_number = var.minimum_reviewers + } + } + } +} + +resource "meshstack_building_block_v2" "service_connection_dev" { + spec = { + building_block_definition_version_ref = { + uuid = var.azdevops_service_connection_definition_version_uuid + } + + display_name = "Azure AKS Dev Connection" + target_ref = { + kind = "meshTenant" + uuid = meshstack_tenant_v4.dev.metadata.uuid + } + + parent_building_blocks = [{ + buildingblock_uuid = meshstack_building_block_v2.azdevops_project.metadata.uuid + definition_uuid = var.azdevops_project_definition_uuid + }] + + inputs = { + service_connection_name = { + value_string = "Azure-AKS-Dev" + } + description = { + value_string = "Service connection for AKS development environment" + } + azure_subscription_id = { + value_string = var.dev_azure_subscription_id + } + service_principal_id = { + value_string = var.dev_service_principal_id + } + application_object_id = { + value_string = var.dev_application_object_id + } + azure_tenant_id = { + value_string = var.azure_tenant_id + } + authorize_all_pipelines = { + value_bool = true + } + } + } +} + +resource "meshstack_building_block_v2" "service_connection_prod" { + spec = { + building_block_definition_version_ref = { + uuid = var.azdevops_service_connection_definition_version_uuid + } + + display_name = "Azure AKS Prod Connection" + target_ref = { + kind = "meshTenant" + uuid = meshstack_tenant_v4.prod.metadata.uuid + } + + parent_building_blocks = [{ + buildingblock_uuid = meshstack_building_block_v2.azdevops_project.metadata.uuid + definition_uuid = var.azdevops_project_definition_uuid + }] + + inputs = { + service_connection_name = { + value_string = "Azure-AKS-Prod" + } + description = { + value_string = "Service connection for AKS production environment" + } + azure_subscription_id = { + value_string = var.prod_azure_subscription_id + } + service_principal_id = { + value_string = var.prod_service_principal_id + } + application_object_id = { + value_string = var.prod_application_object_id + } + azure_tenant_id = { + value_string = var.azure_tenant_id + } + authorize_all_pipelines = { + value_bool = false + } + } + } +} + +resource "meshstack_building_block_v2" "pipeline_dev" { + spec = { + building_block_definition_version_ref = { + uuid = var.azdevops_pipeline_definition_version_uuid + } + + display_name = "Deploy to Dev" + target_ref = { + kind = "meshTenant" + uuid = meshstack_tenant_v4.dev.metadata.uuid + } + + parent_building_blocks = [ + { + buildingblock_uuid = meshstack_building_block_v2.repository.metadata.uuid + definition_uuid = var.azdevops_repository_definition_uuid + }, + { + buildingblock_uuid = meshstack_building_block_v2.service_connection_dev.metadata.uuid + definition_uuid = var.azdevops_service_connection_definition_uuid + } + ] + + inputs = { + pipeline_name = { + value_string = "Deploy to Dev" + } + branch_name = { + value_string = "refs/heads/main" + } + yaml_path = { + value_string = "azure-pipelines-dev.yml" + } + pipeline_variables = { + value_code = jsonencode([ + { + name = "AKS_NAMESPACE" + value = meshstack_tenant_v4.dev.spec.platform_tenant_id + }, + { + name = "ENVIRONMENT" + value = "development" + }, + { + name = "SERVICE_CONNECTION" + value = "Azure-AKS-Dev" + }, + { + name = "DOMAIN_NAME" + value = "${local.identifier}-dev" + } + ]) + } + } + } +} + +resource "meshstack_building_block_v2" "pipeline_prod" { + depends_on = [meshstack_building_block_v2.pipeline_dev] + + spec = { + building_block_definition_version_ref = { + uuid = var.azdevops_pipeline_definition_version_uuid + } + + display_name = "Deploy to Prod" + target_ref = { + kind = "meshTenant" + uuid = meshstack_tenant_v4.prod.metadata.uuid + } + + parent_building_blocks = [ + { + buildingblock_uuid = meshstack_building_block_v2.repository.metadata.uuid + definition_uuid = var.azdevops_repository_definition_uuid + }, + { + buildingblock_uuid = meshstack_building_block_v2.service_connection_prod.metadata.uuid + definition_uuid = var.azdevops_service_connection_definition_uuid + } + ] + + inputs = { + pipeline_name = { + value_string = "Deploy to Prod" + } + branch_name = { + value_string = "refs/heads/release" + } + yaml_path = { + value_string = "azure-pipelines-prod.yml" + } + pipeline_variables = { + value_code = jsonencode([ + { + name = "AKS_NAMESPACE" + value = meshstack_tenant_v4.prod.spec.platform_tenant_id + }, + { + name = "ENVIRONMENT" + value = "production" + }, + { + name = "SERVICE_CONNECTION" + value = "Azure-AKS-Prod" + }, + { + name = "DOMAIN_NAME" + value = local.identifier + } + ]) + } + } + } +} diff --git a/modules/aks/starterkit-azuredevops/buildingblock/outputs.tf b/modules/aks/starterkit-azuredevops/buildingblock/outputs.tf new file mode 100644 index 00000000..4c6e1054 --- /dev/null +++ b/modules/aks/starterkit-azuredevops/buildingblock/outputs.tf @@ -0,0 +1,100 @@ +output "dev_link" { + description = "Link to the dev environment application" + value = "https://${local.identifier}-dev.likvid-k8s.msh.host" +} + +output "prod_link" { + description = "Link to the prod environment application" + value = "https://${local.identifier}.likvid-k8s.msh.host" +} + +output "azdevops_project_url" { + description = "URL of the created Azure DevOps project" + value = "https://dev.azure.com/${var.azdevops_organization_name}/${meshstack_building_block_v2.azdevops_project.spec.display_name}" +} + +output "azdevops_repository_url" { + description = "URL of the created Azure DevOps repository" + value = "https://dev.azure.com/${var.azdevops_organization_name}/${meshstack_building_block_v2.azdevops_project.spec.display_name}/_git/${meshstack_building_block_v2.repository.spec.display_name}" +} + +output "summary" { + description = "Summary with next steps and insights into created resources" + value = <<-EOT +# AKS Starter Kit - Azure DevOps + +✅ **Your environment is ready!** + +This starter kit has set up the following resources in workspace `${var.workspace_identifier}`: + +@buildingblock[${meshstack_building_block_v2.azdevops_project.metadata.uuid}] +    @buildingblock[${meshstack_building_block_v2.repository.metadata.uuid}] + +@project[${meshstack_project.dev.metadata.owned_by_workspace}.${meshstack_project.dev.metadata.name}]\ +    @tenant[${meshstack_tenant_v4.dev.metadata.uuid}]\ +        @buildingblock[${meshstack_building_block_v2.service_connection_dev.metadata.uuid}]\ +        @buildingblock[${meshstack_building_block_v2.pipeline_dev.metadata.uuid}] + +@project[${meshstack_project.prod.metadata.owned_by_workspace}.${meshstack_project.prod.metadata.name}]\ +    @tenant[${meshstack_tenant_v4.prod.metadata.uuid}]\ +        @buildingblock[${meshstack_building_block_v2.service_connection_prod.metadata.uuid}]\ +        @buildingblock[${meshstack_building_block_v2.pipeline_prod.metadata.uuid}] + +--- + +## What's Included + +Your Azure DevOps project contains: + +- Git repository with application code +- Dockerfile and Kubernetes manifests +- **Dev Pipeline**: Deploys on commits to **main** branch +- **Prod Pipeline**: Deploys on commits to **release** branch +- Service connections with Workload Identity Federation (passwordless) + +--- + +## Deployments + +Trigger a deployment by: +- Pushing to the **main** branch (deploys to **dev**) +- Merging **main** into **release** via PR (deploys to **prod**) + +View deployment status: [Azure Pipelines](https://dev.azure.com/${var.azdevops_organization_name}/${meshstack_building_block_v2.azdevops_project.spec.display_name}/_build) + +- **Dev**: [${local.identifier}-dev.likvid-k8s.msh.host](https://${local.identifier}-dev.likvid-k8s.msh.host) +- **Prod**: [${local.identifier}.likvid-k8s.msh.host](https://${local.identifier}.likvid-k8s.msh.host) + +--- + +## Next Steps + +### 1. Clone Repository +```bash +git clone https://dev.azure.com/${var.azdevops_organization_name}/${meshstack_building_block_v2.azdevops_project.spec.display_name}/_git/${meshstack_building_block_v2.repository.spec.display_name} +``` + +### 2. Develop +- Push changes to **main** → deploys to **dev** automatically +- Create PR from **main → release** → deploys to **prod** after merge + +### 3. Monitor +- [Dev Pipeline](https://dev.azure.com/${var.azdevops_organization_name}/${meshstack_building_block_v2.azdevops_project.spec.display_name}/_build?definitionId=${meshstack_building_block_v2.pipeline_dev.metadata.uuid}) +- [Prod Pipeline](https://dev.azure.com/${var.azdevops_organization_name}/${meshstack_building_block_v2.azdevops_project.spec.display_name}/_build?definitionId=${meshstack_building_block_v2.pipeline_prod.metadata.uuid}) + +### 4. Access AKS Namespaces +- [Dev Namespace](/#/w/${var.workspace_identifier}/p/${meshstack_project.dev.metadata.name}/i/aks.eu-de-central/overview/azure_kubernetes_service) +- [Prod Namespace](/#/w/${var.workspace_identifier}/p/${meshstack_project.prod.metadata.name}/i/aks.eu-de-central/overview/azure_kubernetes_service) + +### 5. Manage Access +- Invite team members via meshStack: + - [Dev Access](/#/w/${var.workspace_identifier}/p/${meshstack_project.dev.metadata.name}/access-management/role-mapping/overview) + - [Prod Access](/#/w/${var.workspace_identifier}/p/${meshstack_project.prod.metadata.name}/access-management/role-mapping/overview) + +--- + +⚠️ **Note**: First prod deployment requires manual authorization of the service connection. Follow the prompts in the pipeline run. + +🎉 Happy coding! +EOT +} diff --git a/modules/aks/starterkit/buildingblock/provider.tf b/modules/aks/starterkit-azuredevops/buildingblock/provider.tf similarity index 100% rename from modules/aks/starterkit/buildingblock/provider.tf rename to modules/aks/starterkit-azuredevops/buildingblock/provider.tf diff --git a/modules/aks/starterkit-azuredevops/buildingblock/variables.tf b/modules/aks/starterkit-azuredevops/buildingblock/variables.tf new file mode 100644 index 00000000..0da745ca --- /dev/null +++ b/modules/aks/starterkit-azuredevops/buildingblock/variables.tf @@ -0,0 +1,185 @@ +variable "workspace_identifier" { + type = string + description = "meshStack workspace identifier" +} + +variable "name" { + type = string + description = "This name will be used for the created projects, app subdomain, Azure DevOps project and repository." +} + +variable "full_platform_identifier" { + type = string + description = "Full platform identifier of the AKS Namespace platform." +} + +variable "landing_zone_dev_identifier" { + type = string + description = "AKS Landing zone identifier for the development tenant." +} + +variable "landing_zone_prod_identifier" { + type = string + description = "AKS Landing zone identifier for the production tenant." +} + +variable "azdevops_project_definition_version_uuid" { + type = string + description = "UUID of the Azure DevOps project building block definition version." +} + +variable "azdevops_project_definition_uuid" { + type = string + description = "UUID of the Azure DevOps project building block definition." +} + +variable "azdevops_repository_definition_version_uuid" { + type = string + description = "UUID of the Azure DevOps repository building block definition version." +} + +variable "azdevops_repository_definition_uuid" { + type = string + description = "UUID of the Azure DevOps repository building block definition." +} + +variable "azdevops_pipeline_definition_version_uuid" { + type = string + description = "UUID of the Azure DevOps pipeline building block definition version." +} + +variable "azdevops_pipeline_definition_uuid" { + type = string + description = "UUID of the Azure DevOps pipeline building block definition." +} + +variable "azdevops_service_connection_definition_version_uuid" { + type = string + description = "UUID of the Azure DevOps service connection building block definition version." +} + +variable "azdevops_service_connection_definition_uuid" { + type = string + description = "UUID of the Azure DevOps service connection building block definition." +} + +variable "azdevops_organization_name" { + type = string + description = "Azure DevOps organization name. Used only for display purposes." +} + +variable "creator" { + type = object({ + type = string + identifier = string + displayName = string + username = optional(string) + email = optional(string) + euid = optional(string) + }) + description = "Information about the creator of the resources who will be assigned Project Admin role" +} + +variable "project_tags_yaml" { + type = string + description = <= 0 && var.minimum_reviewers <= 10 + error_message = "minimum_reviewers must be between 0 and 10" + } +} + +variable "dev_azure_subscription_id" { + type = string + description = "Azure subscription ID for the development environment" +} + +variable "dev_service_principal_id" { + type = string + description = "Service principal client ID for the development environment" +} + +variable "dev_application_object_id" { + type = string + description = "Azure AD application object ID for the development service principal" +} + +variable "prod_azure_subscription_id" { + type = string + description = "Azure subscription ID for the production environment" +} + +variable "prod_service_principal_id" { + type = string + description = "Service principal client ID for the production environment" +} + +variable "prod_application_object_id" { + type = string + description = "Azure AD application object ID for the production service principal" +} + +variable "azure_tenant_id" { + type = string + description = "Azure AD tenant ID" +} diff --git a/modules/aks/starterkit-azuredevops/buildingblock/versions.tf b/modules/aks/starterkit-azuredevops/buildingblock/versions.tf new file mode 100644 index 00000000..4f5f052c --- /dev/null +++ b/modules/aks/starterkit-azuredevops/buildingblock/versions.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + meshstack = { + source = "meshcloud/meshstack" + version = "0.15.0" + } + random = { + source = "hashicorp/random" + version = "~> 3.6" + } + } +} diff --git a/modules/aks/starterkit/backplane/README.md b/modules/aks/starterkit-github/backplane/README.md similarity index 100% rename from modules/aks/starterkit/backplane/README.md rename to modules/aks/starterkit-github/backplane/README.md diff --git a/modules/aks/starterkit/backplane/permissions.png b/modules/aks/starterkit-github/backplane/permissions.png similarity index 100% rename from modules/aks/starterkit/backplane/permissions.png rename to modules/aks/starterkit-github/backplane/permissions.png diff --git a/modules/aks/starterkit/buildingblock/APP_TEAM_README.md b/modules/aks/starterkit-github/buildingblock/APP_TEAM_README.md similarity index 100% rename from modules/aks/starterkit/buildingblock/APP_TEAM_README.md rename to modules/aks/starterkit-github/buildingblock/APP_TEAM_README.md diff --git a/modules/aks/starterkit/buildingblock/README.md b/modules/aks/starterkit-github/buildingblock/README.md similarity index 100% rename from modules/aks/starterkit/buildingblock/README.md rename to modules/aks/starterkit-github/buildingblock/README.md diff --git a/modules/aks/starterkit/buildingblock/logo.png b/modules/aks/starterkit-github/buildingblock/logo.png similarity index 100% rename from modules/aks/starterkit/buildingblock/logo.png rename to modules/aks/starterkit-github/buildingblock/logo.png diff --git a/modules/aks/starterkit/buildingblock/main.tf b/modules/aks/starterkit-github/buildingblock/main.tf similarity index 100% rename from modules/aks/starterkit/buildingblock/main.tf rename to modules/aks/starterkit-github/buildingblock/main.tf diff --git a/modules/aks/starterkit/buildingblock/outputs.tf b/modules/aks/starterkit-github/buildingblock/outputs.tf similarity index 100% rename from modules/aks/starterkit/buildingblock/outputs.tf rename to modules/aks/starterkit-github/buildingblock/outputs.tf diff --git a/modules/aks/starterkit-github/buildingblock/provider.tf b/modules/aks/starterkit-github/buildingblock/provider.tf new file mode 100644 index 00000000..c89e3966 --- /dev/null +++ b/modules/aks/starterkit-github/buildingblock/provider.tf @@ -0,0 +1 @@ +provider "meshstack" {} diff --git a/modules/aks/starterkit/buildingblock/variables.tf b/modules/aks/starterkit-github/buildingblock/variables.tf similarity index 100% rename from modules/aks/starterkit/buildingblock/variables.tf rename to modules/aks/starterkit-github/buildingblock/variables.tf diff --git a/modules/aks/starterkit/buildingblock/versions.tf b/modules/aks/starterkit-github/buildingblock/versions.tf similarity index 100% rename from modules/aks/starterkit/buildingblock/versions.tf rename to modules/aks/starterkit-github/buildingblock/versions.tf From 48d75bd3d8a6e6642ab07f1f35f785e45f13731b Mon Sep 17 00:00:00 2001 From: Florian Nowarre Date: Thu, 29 Jan 2026 16:46:20 +0100 Subject: [PATCH 02/13] chore: adding buildingblock logo prompt --- .github/scripts/generate-icon-prompts.py | 237 ++++++++++++++++++ .github/workflows/icon-prompts.yml | 104 ++++++++ .../buildingblock/logo.png | Bin 18262 -> 16290 bytes .../buildingblock/logo.png | Bin 0 -> 15572 bytes 4 files changed, 341 insertions(+) create mode 100644 .github/scripts/generate-icon-prompts.py create mode 100644 .github/workflows/icon-prompts.yml create mode 100644 modules/azure/azure-virtual-machine-starterkit/buildingblock/logo.png diff --git a/.github/scripts/generate-icon-prompts.py b/.github/scripts/generate-icon-prompts.py new file mode 100644 index 00000000..4210ba8c --- /dev/null +++ b/.github/scripts/generate-icon-prompts.py @@ -0,0 +1,237 @@ +#!/usr/bin/env python3 +""" +Generate icon prompts for building blocks missing logo.png files. +Parses README.md frontmatter and creates AI image generation prompts. +""" + +import os +import sys +import yaml +import json +from pathlib import Path + +PLATFORM_COLORS = { + "aws": { + "primary": "#FF9900", + "secondary": "#232F3E", + "accent": "#7FBA00", + "name": "AWS colors: orange (#FF9900), dark blue (#232F3E), and lime green (#7FBA00)" + }, + "azure": { + "primary": "#0078D4", + "secondary": "#00BCF2", + "accent": "#50E6FF", + "name": "Azure colors: blue (#0078D4), cyan (#00BCF2), and light blue (#50E6FF)" + }, + "aks": { + "primary": "#326CE5", + "secondary": "#0078D4", + "accent": "#00BCF2", + "name": "Kubernetes/Azure colors: blue (#326CE5), Azure blue (#0078D4), and cyan (#00BCF2)" + }, + "azuredevops": { + "primary": "#0078D4", + "secondary": "#00BCF2", + "accent": "#005A9E", + "name": "Azure DevOps colors: blue (#0078D4), teal (#00BCF2), and dark blue (#005A9E)" + }, + "gcp": { + "primary": "#4285F4", + "secondary": "#EA4335", + "accent": "#FBBC04", + "name": "Google colors: blue (#4285F4), red (#EA4335), yellow (#FBBC04), and green (#34A853)" + }, + "github": { + "primary": "#6e5494", + "secondary": "#24292e", + "accent": "#8b5cf6", + "name": "GitHub colors: purple (#6e5494), dark gray (#24292e), and bright purple (#8b5cf6)" + }, + "ionos": { + "primary": "#003D7A", + "secondary": "#FF6600", + "accent": "#0096D6", + "name": "IONOS colors: blue (#003D7A), orange (#FF6600), and light blue (#0096D6)" + }, + "kubernetes": { + "primary": "#326CE5", + "secondary": "#00D3E0", + "accent": "#7AB8FF", + "name": "Kubernetes colors: blue (#326CE5), cyan (#00D3E0), and light blue (#7AB8FF)" + }, + "sapbtp": { + "primary": "#0070AD", + "secondary": "#F0AB00", + "accent": "#0078D4", + "name": "SAP colors: blue (#0070AD), gold (#F0AB00), and light blue (#0078D4)" + }, + "stackit": { + "primary": "#00A859", + "secondary": "#007A3D", + "accent": "#7FBA00", + "name": "STACKIT colors: green (#00A859), dark green (#007A3D), and lime (#7FBA00)" + } +} + + +def parse_readme_frontmatter(readme_path): + """Extract YAML frontmatter from README.md""" + with open(readme_path, 'r', encoding='utf-8') as f: + content = f.read() + + if not content.startswith('---'): + return None + + # Extract frontmatter between --- delimiters + parts = content.split('---', 2) + if len(parts) < 3: + return None + + try: + frontmatter = yaml.safe_load(parts[1]) + return frontmatter + except yaml.YAMLError: + return None + + +def get_platform_from_frontmatter(frontmatter): + """Get the primary platform from supportedPlatforms list""" + platforms = frontmatter.get('supportedPlatforms', []) + if not platforms: + return None + return platforms[0] # Use first platform + + +def generate_icon_prompt(name, platform, description): + """Generate an AI image generation prompt for an icon""" + platform_colors = PLATFORM_COLORS.get(platform) + + if not platform_colors: + # Fallback to generic bright colors + color_scheme = "bright, vibrant colors" + else: + color_scheme = platform_colors["name"] + + # Clean up description + clean_description = description.strip().replace('\n', ' ') + + # Generate AI prompt + ai_prompt = f"""Create a professional flat design icon for the meshcloud Building Block ecosystem. + +Purpose: {clean_description} + +Visual Style: +- Plain white background (#FFFFFF) for easy removal in post-processing +- Background will be converted to transparent (see post-processing steps) +- Use meshcloud blue (#2563eb) as primary color +- Use {color_scheme} as accent colors +- Maximum 2-3 colors total +- Simple geometric shapes with clean lines +- Flat design (no gradients, shadows, or 3D effects) +- Minimalist, modern appearance + +Composition: +- Square centered layout (NOT horizontal) +- Icon fills the entire canvas edge-to-edge (100% of area) +- No padding or margins around the icon +- Symmetrical arrangement +- Platform-appropriate symbol for {platform.upper()} (e.g., cloud, container, database, server, etc.) + +Style: Enterprise professional, instantly recognizable at small sizes, similar to app icons or logos. +Dimensions: 800x800 pixels""" + + # Generate post-processing instructions + post_processing = """**Step 1: Remove white background with GIMP (free)** + +a) Open image in GIMP +b) Right-click layer → "Add Alpha Channel" +c) Tools → "Select by Color" (Shift+O) +d) Click white background +e) Press Delete key +f) File → Export As → logo.png +g) Set Compression level to 9 → Export + +**Step 2: Resize to 800x800 pixels if needed** + +- GIMP: Image → Scale Image → 800x800px +- Or use any image editor + +**Step 3: Compress with pngquant (free command line tool)** + +- Install: `brew install pngquant` (Mac) or `apt install pngquant` (Linux) +- Run: `pngquant --quality=20-30 logo.png --ext .png --force` +- This reduces file size by 60-80% while maintaining quality + +**Target specs:** 800x800px PNG with transparent background, under 100KB""" + + return { + 'ai_prompt': ai_prompt, + 'post_processing': post_processing + } + +def find_missing_logos(modules_dir): + """Find all buildingblock directories missing logo.png""" + missing = [] + + for root, dirs, files in os.walk(modules_dir): + if 'buildingblock' in root: + buildingblock_path = Path(root) + readme_path = buildingblock_path / 'README.md' + logo_path = buildingblock_path / 'logo.png' + + if readme_path.exists() and not logo_path.exists(): + frontmatter = parse_readme_frontmatter(readme_path) + if frontmatter: + platform = get_platform_from_frontmatter(frontmatter) + name = frontmatter.get('name', 'Unknown') + description = frontmatter.get('description', '') + + # Get relative path from modules directory + rel_path = buildingblock_path.relative_to(modules_dir) + + missing.append({ + 'path': str(rel_path), + 'name': name, + 'platform': platform, + 'description': description, + 'readme_path': str(readme_path), + 'logo_path': str(logo_path) + }) + + return missing + +def main(): + # Get modules directory + repo_root = Path(__file__).parent.parent.parent + modules_dir = repo_root / 'modules' + + if not modules_dir.exists(): + print(f"ERROR: Modules directory not found: {modules_dir}", file=sys.stderr) + sys.exit(1) + + # Find missing logos + missing_logos = find_missing_logos(modules_dir) + + # Generate prompts for each missing logo + results = [] + for item in missing_logos: + prompt_data = generate_icon_prompt( + item['name'], + item['platform'] or 'generic', + item['description'] + ) + + results.append({ + 'name': item['name'], + 'platform': item['platform'], + 'path': item['path'], + 'logo_path': item['logo_path'], + 'ai_prompt': prompt_data['ai_prompt'], + 'post_processing': prompt_data['post_processing'] + }) + + # Output as JSON for GitHub Action to consume + print(json.dumps(results, indent=2)) + +if __name__ == '__main__': + main() diff --git a/.github/workflows/icon-prompts.yml b/.github/workflows/icon-prompts.yml new file mode 100644 index 00000000..9cb8d13c --- /dev/null +++ b/.github/workflows/icon-prompts.yml @@ -0,0 +1,104 @@ +name: Generate Icon Prompts for Missing Logos + +on: + pull_request: + types: [opened, synchronize, reopened] + paths: + - 'modules/**/buildingblock/README.md' + +permissions: + pull-requests: write + contents: read + +jobs: + check-missing-logos: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install dependencies + run: | + pip install pyyaml + + - name: Find missing logos and generate prompts + id: generate + run: | + python .github/scripts/generate-icon-prompts.py > prompts.json + COUNT=$(jq 'length' prompts.json) + echo "has_missing=$([ "$COUNT" -gt 0 ] && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT + echo "count=$COUNT" >> $GITHUB_OUTPUT + + - name: Read prompts + if: steps.generate.outputs.has_missing == 'true' + id: read_prompts + run: | + PROMPTS=$(cat prompts.json) + echo "prompts<> $GITHUB_OUTPUT + echo "$PROMPTS" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + - name: Generate PR comment + if: steps.generate.outputs.has_missing == 'true' + id: format_comment + uses: actions/github-script@v7 + env: + PROMPTS_JSON: ${{ steps.read_prompts.outputs.prompts }} + with: + result-encoding: string + script: | + const prompts = JSON.parse(process.env.PROMPTS_JSON); + + if (prompts.length === 0) { + return ''; + } + + let comment = '## 🎨 Missing Building Block Icons\n\n'; + comment += `Found **${prompts.length}** building block(s) without \`logo.png\` files.\n\n`; + comment += 'Copy the **AI Prompts** below and use them with your favorite AI image generator (Gemini, DALL-E, Midjourney, Stable Diffusion, etc.).\n\n'; + comment += 'Then follow the **Post-Processing Steps** to prepare the icons for upload.\n\n'; + comment += '---\n\n'; + + for (const item of prompts) { + comment += `### ${item.name}\n\n`; + comment += `**Platform:** \`${item.platform}\`\n\n`; + comment += `**Path:** \`${item.logo_path}\`\n\n`; + comment += '#### AI Prompt (copy this to image generator)\n\n'; + comment += '```\n'; + comment += item.ai_prompt; + comment += '\n```\n\n'; + comment += '#### Post-Processing Instructions\n\n'; + comment += item.post_processing; + comment += '\n\n'; + comment += '---\n\n'; + } + + return comment; + + - name: Find existing comment + if: steps.generate.outputs.has_missing == 'true' + uses: peter-evans/find-comment@v3 + id: find_comment + with: + issue-number: ${{ github.event.pull_request.number }} + comment-author: 'github-actions[bot]' + body-includes: '🎨 Missing Building Block Icons' + + - name: Create or update comment + if: steps.generate.outputs.has_missing == 'true' + uses: peter-evans/create-or-update-comment@v4 + with: + comment-id: ${{ steps.find_comment.outputs.comment-id }} + issue-number: ${{ github.event.pull_request.number }} + body: ${{ steps.format_comment.outputs.result }} + edit-mode: replace + + - name: Success message + if: steps.generate.outputs.has_missing == 'false' + run: | + echo "✅ All building blocks have logo.png files!" diff --git a/modules/aks/starterkit-azuredevops/buildingblock/logo.png b/modules/aks/starterkit-azuredevops/buildingblock/logo.png index 125374b45a32d5483ee29e89fa4203d8eb2182c5..98af815b39364159b13a541aa8673d2f93beef54 100644 GIT binary patch literal 16290 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 z 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 Y0U-}|1~r_{=>Px#07*qoM6N<$g5{}Nt^fc4 literal 18262 zcmV)oK%BpcP)z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy32;bRa{vG?BLDy{BLR4&KXw2B00(qQO+^Rl0UZt)3XDi-`v3qS z07*naRCwC#y?2~lRn@X7HnI#`50F~Gm}P@fFJCkFVBKAeA3*O|^603cF?Xh45rfdAd2C+{_M z=2|k+mcz~zcjl$r*tIJp5_Tw}WnfJ83!`t8`XvHIvCzMZ0sc>K!X0V1wl%lDlQ$b;Q0t65e2oc$5AOS#tvVQ_fwKu-R8Bv6)qDb$jJ~6<79J|^xOB>zyIyGqxQX(RN zc)0?_17lPkmZGorjP&-Z(KNgRE0C7Jgz?0^lj`&ZfMOfZlkn{u%Jxm&mE|T z_KAODfWLEWZ0wr7OOhO5XagD(NX{4-swzz!{F&3a{IZ>$i@L&j3Xzz@Ie*Ko+*>q~kgpoVzc2`yQb)0|XUfR2R9^2Hj2L)oh3#)l@ zb-{lq6k(X3T-&}i9~B|MJFjng*4T;z9sNu;_uwlvKYgKg!q{N|UYfss-dk(_@mER; zVpmTn8m7BM1)iu^tLwY|Lo?ymH+QbfMF6GAoKv2iHmK}C&#-Anyxybdo;JwQ zI+MxWJ*TB27C7?o5e12V6zW7m!OO;%{-vgKqZ@x>7ox$`@bdV7)(Tj?t9xF1$cO^u zq@tc_gAZ)CYoGBbO(7$_Eu3v`_@vd@7|{Hq?``lZ@L-iZXg{58k*wP3@G3+kY> zK)&@{OT(U)k33H_9K2|FD28l?LQmIb4D)}A0bbgY>OqhQW#~D7T#4FmtR|atADOpt z`pZ4fif|3?^L zV?)P=Tv$X1e9_QgBoy4=FV?kQ{n(bTY>uZWLN>1N=SW~V#r{r_PTW|7upt}*2`rregi)0~mUjLV>qqpHKy#SSQ_ z2~#6IL;9BNSE!TAKe}+|H);b$6$)4gfDq)TqorSYF@Q`a`}^0LKqW+^0Eh?$e)E@g z_uMi-tB;;xrwxs7+L+I($bua`XN@ZSH#R_fI={9t_fC`7!H$pyMHmn$1R@}~kex0x ziBhDz>?uQ{`*Y5|I_+~-|otpKy+hEX4-&%D+8pm`8T)sywl+r1mVCi6DeV@ z%E^x|cKSwDVaN?=A|htacu2XFHF8+hN93QYY8$_^Fgf4EL@9_6m>@(VL;#MF)Tz^k z+fUZ-ZhmOJ6748r0x1$A2uPHg-<6m%f9+W_r+nm7loiBAI?e06;ziA>Z#>(a=DaaP zln78Fh~ls+j79#>89+of?dg1CyGc`+pcoLKQl(F*4vs93#v>my#ZUEQ?tgvzcN-IV z6(u6F%SI^@dj(P?Hy;t(yL&HLS(jGVR@srV}6?w3X6~tE>XGjh6F}d zl&ga%0d{nyzW&h0r;>41LdsSbK?GJ1kT4X0v#4YGc;BkzL1 z!~E2m)>WC9KoL!R37pel9%o=7tB`W3b6oj~hrtKt%8WArM5M_>xff;bZm% zHnZn$GYBdIiTL|7#7nkHrkhBKB7%52{D(*1y8Xrr|K@UCJ()%I=}oyRpy$} zq4L7m!H<4xNB79PH+BbOM4E&c>?DFJ5fvgOOc01@&s{hpI)11>mm8Z}#{bune6UC> zC}9C0!d;Ez&olL4D24>Z{oII1SwR$s=$N;@ zOOzIZ|D%XNlFb4HK!Bi|`{ML|?*~Nhf32By0Hi?RRJ$Zw6qrCnWWPkhL6v6oCjnRpnKc z9m-nL<2$n;df$&Q!K5;pJq1IGZmIGH_S*+ttXjKeWwwAwDUrJ{7Hui)FfdE3U z8Ek+AeEtVgcOk?(gbC%qYNv_yQEau&0T!N2ln~r7B;a8s(jjOuUB4A|Cn}}{1n=}= z(L+M_+qS!P_Oh0{He}nK7{`i8goHpK5&{Xp%x*FpiG{yEC|}uUA5Ws8vE}#cSbADb zx{II~3>X1O?11kJF^FKJ3%E@iK`PhOBXN;)m zQ+$w*GizkYhLy=q6?=X+#`eu64g}8IFBi1BF>6?fhzK9v_h2(X&zPS-x#~+bVOK@i zcNhZrt{+MXX&e72t%JtBb4a@6gR$1k6DIxSyt1$|7WEO35HV>c#n3`F0@~+)04N_u z0wud8lkr?mtN3@`HizH7a=|;B4)Td&;ozzL2!fmnF0Jc1#Cw2YS=~i;o`u}hpz?#= zd!K%D3%cM*w@A|h8gpMJWzwe6tzDWQNf zy$?Y+O~I`#J%`c&yOW+pcom_4{9vJvIjdT8;RKW|uYi;$rTn4u%>b27Q%kGKyN5@! zr=2kVADnIKcL1%ikIG(!ut5D669&=wZ05CNgPU9o`}iG{qfqWXBr z?6-Fu%cAN4G4b}AAQ8I0Z;sR=B#Q%s(1e-5?dRyTZOXpjSF`(t-v2?u%1Xft$( zt2LNK48v@93R>Gc4+>Tz3{Pkl=~ChDbncKDpgV8D6)+p;;1WpJ7$GGD782iQkPq@@ za-7Z+DJTa@2OV|O*#iRaBawF|(+|$s-2W#le)i0|_iCH+-Unzr1qF$p-F)^9$Akj@ zy7GOR0RGMnEh0kf_3!UaIU-kFW&jdnZv-GwPC91}a(!1u6+}Qz*M1W$oc%DYB2o|| zf`ims#X`XX&bQm45mI6R0vpNZ*+8@sW)gtt!otkd@qX-|%H&>sch_ypGTU@iBBi(N zq}%J#lTq`9@v-Aa7Z0lR@rhV8@|~}pQ4oFg2Xiy74R-`eNJJQhm`z!+3>)gIAcV!H z4+H_*y+;W`2VG-v6cG`FQdx7z44@QBNG=MwS)D!j9v7 z?F(o0DV=}AlWjSW5QGijNhD~7j>s1j*>x-+1wd))#Vtgn%IhgB9eS|kEh3O&7NJA8 z2Lu!dq=>ZAY4>3HduNV~1xbOFB7y6{^(=*g2xK*onr<3m#trYcq-NKr?q7S_B6)`j z7)tD)N%=n@kQU|qIT<-^QGV#}w*TO{t?zDXc8&S;g(p66b#=gUB$QDj2AiqV@`WV~ zuzg}pOpxBK-yh|cP z%37C{Z{&cZ#|(*m@lWecn&-V{idg(Aqks4?1IVXHD1riXw+i2}lcvu}9(CXP2j*@Y zIeN&`H;hu{VVZVWx^HzJA{M73CQ^z>DXoYs_y?k}$((;ozk|nx+Or;k6;Z^YL*|0| zMu|Gb+O@7TH?jJlR3!mNfB&3*3m&ZBqhkyKDJTeR=0rkZk}H-eA$t|+%@6jff-Nz^ z{^lYwP88L9c z!ShP?9`EdNK@ozCEIfd4cE4QJVU^JZ9j<``(4vmu^qy={EPP0Ay0W~eviuM$QvW5# zmd5S|i3p(F%;>%cK$6%m`)`5s@-dcb69~Zqge{DLG{nw8E+Ffn0w+2`U3g->fh0z0Jw;upAj#(aE)4n!e zAVLZfmh6?oX;A4uRp9A)W_8V$M_=Cl=$4?X93nL)l=qw~8YXvfHBTAv&ye+GbGd~}HvI9G`ZrtS zdH8tV-jpCH?zNL}(W%2mju@!^DIJlEcQw4b=9u=tgD4Yt8469Gz*gq1n7 zGJC~o0}q?LU&5G=eYA9?U*3}1f_MU)0y0}>pNEEiWK<~ zJ9*iY`eJHjxFmik&9JL}&z!e+eE-$)vHqS4CNg2pE3ln87T{uqc3tm3Raw zQbI}*v4BMsNP{Di{>~|-GmohrG~l3sww}D#(v@jQnzgO@Etvp0K>jDx?H3ph}fGyFZPp`hZ40 znM%)JyzvjOHolXLdJI5|<<&xb%+6BRi5Otfzdk2=!D-_~NYIvc6Yw8%d}I%*2VU+8ATYfuO%akh>#{85y>50 z;f$&*I3&CMAs`7?7e}j$qcbx3t*z;rHg7|cG6*OgATeyUEq@4sD1e3^;e%*e9AFH`d5_$(26GXFCJUPE9#Ta*Q+!_N-XdyfCBm2KX|!;VV+p3 z#`Fo66_g&rP34dYwG)xxr2fH4{oxtzPUqTtvaaYnE1xh-0KC!Vu}IL_n@nxpw(EsA zx7@urms1fFDqtak12KCU{(g1I(s@8^D+D40*4iI#t#$9%`y*#{$#xpsQm676zXUOx z^N}0pWW#gTerd8k=cIw7M-0$fYo(?QC>&Oj-PxJ%y{fPfh(cP5!m2Eu2>+fqz9S#ea6U zlr`(?UT!LNRZuBy14~Ev!Os-Gefx+TCS()~Ly1_Px&nxyJQ2@$#se8s>9&7~N16Tzt=&1=ozs7G;_=do~PZh_U)IkT7`$EJU8U^Ei3uj^Php9Cb_{L`p#u zxq_FQiyE7n|0Ph;$G3T7Tf?%3IZZuvM^>ITvT|b3*{@7wFupvi<0-AgZG!bOKK_uM7*cfXa+2czs4f=NUO2#WXXi{od_oZ=`wpt|4r3txPCcTfSW6ft|iu7=M3 z)s_Dq2H4rS^_|_Xtj_$211?B!+4Ed@$H3$ITt1=S(S3^g{^ReyvZ758XQhP*U?JJn zns;3<6bv|8efGj5D$3Se^-z0WhX@d1$K-E6C4AB8N0$~C?4|ts-p97;Cfmk?V&TxF zu|p<~8FJa#?SFZG%?}r35ePyDAgWk04_@2J+;k-1foblL@Z*~ZS6jK z+Q&s_P2S7(xTy}nP#_wJ6*~AO#VVqtW4W zru8{(MAi7eyC6EdQzNf^!wnZI9Uvb$Fb3)?6WwoIc~m?avE-LkH9M~P#kQR$JSE!m z^DmDWKW0!bc?SZxEX_@=;jmLyTm(orQukgz zZsf2ko1?UMCU5)YyeD@S+bXd~1TiFhUS;-y@1G8!p{Z?8N47K(tSB%32TUP0`D8<_ zX+6<1BIIKHUx1Lek=^|dqZuFo1MtyC{PgcU*Sv&%cb_vIsd z)k3npuIUd?tiJwp)B2PZ`dyfSZ9Dh8xpeze3-)ZuhMxK6=!s(n16aCZ)5Z7KPbfc zjYY#d>l>#%oia)l<-0E%7&>NHeEfjI%F=zZlw41DX47lf@v9Kt13Y5I7M)ULg(gs> z2ux%olr|#+!@f~8_DmfJe@p{pvYDKl(aKrhw0u$HW1Y^sUMB5ksorXQSLZ^wiMQ z`p`40e!l`)c0@$Mef>M5#tg59$nw>-=l!@(+0Dl3j#alHsg`2p>k zO*^jp<@yboh|*e;jidZQnpsr3g>!~?j;a6()4;Sue>_|ouMP)N@?ilcZ%TdeOv+tA;VPYaCu(I@D z$79E^W4yxLYw5R6@7i7SF~d+-rB`Hr_uJabf3e_OsdVylhkfU|(a#){_?EcE3=!cF z6{hQoUjB2(3v-&A)1m_+1mml2K)Y9$~egKGM za=FgDHqZuSpoJVFgaX>e_@Q7>m>C383^8ni0o5zj_GiG>?Ypk~b5jpO7QJDJz)#EU zT@VPut2X+D?&-r4unb#K?J3!`Gu_;f%6RmGTXOmG%;F98O6h(_UYs2MsOJVPSmk#r zQpPR=hyqBUNXSYd!e~v^JpS+y!0?wEJ^hCOSJ8aU(TBWF*K-PB%N zIQzktm)_`X&3dE^k%iL0<^vS%rslQ{nTS>MS{1eUx-kFkBc8DFyqixe>04He-f)MA zPC91%Gv6LFI+y|rlQ7sY97kKYMrkd=0x=9na#)qk;H*l1*pLC&9v)CW z-K$rwBx1#U_CFM z_}JX_04k@R-BEf6L|Yc00x65giZwO}qQDwVAg}u!0LXN=y>mBu8J7F80tn179Pl`3 zShIjF<5GKzJD=ETtjJaiG@u}gL<0^({S8HX)AlaU2G~pRpa1|M07*naR0$Rr^Lq*G z#odI2uRFD(AQpj$XZXjzU-p}am*ib53{eBC%I>}SxK9u1De$^)IXRJtM<7BXrA4u? z9}^7cQ#T#Ow|({G!bH@2a@Q z`u)7yodo09R$n44EIBu5O3ws@4M!U9Ni}agfJDr&c)d`T2(eLO1Oh{b#j`5tUhr43 zun}SW?H;gnZ8M?367t1g1HPkS2n%W9qo-7nA`#xSW!K~DN$)@=yYOpQ9&J0s6&J*Q z_+KaA)SW6XD^^O`sasN5aO3BvUwm3)b!A`2QC82{-kH4pSM#6VSrA*(a?u&-!bA*2 zGmozP)8;OhnZbMUQG&3Yj4S|ZwsswJ1OR;Fn4)hj?b)LX7!YCKaVY`7jGk^!D0ubT z={e;sgR1&epZn_%4%l>a#FZVjOL^68ajHqHiF){Ty8khQ`V0h+YhE9R+q3Lep7n@w z!s^58f@V)^y{%^$L!N;#?0UxYgpIIKY#i~>yC8&_*%%`(!>}>N3-c?Ejl78swU)|3Vrr%lJB*BPh+`Ct(AKtepmCgc+NJS%|etk=|R(5ByqA9KQ z;DJ?vfK|t2-(c|ersBFyfiL;)~AG@IF{JF(b zE-UCWpsQhH=t}k$s)Pj$w05RCx_a1-p55$3w%0X&{s&9mY>5aM(1vBr zrgrOR%1TQ@`4ou&Y+*iMOzF=6B4AOoYVYv3;=)AqtLKiHdv;<1(u#<lNJpTJ4ABQjtVSQU7slxMR&rt$)4LdF%MXrtfLw?C$QZ{}r432V79Hr)y2alKD;d zK}puL0nBB%(wJtk@7(jED&Gp4H{Bf*KbZ`o%M^I_}703k(02DYSKGd!7}v zl|+!8ZX!&ugk~1-V859tr8D`rcjq}qFd~q&kq0;EVb3nP_KK4|r!=twANefr%Gz58x5;R+M95Wr?reO81(63{fQI{s#xLt==8U|>C^FAf2O zIT)+k)l^cvFM*#pqTgT3Vs}2f$8hG?^VGR0$@X|NRa~|7Ku*M=Pm4dRtMNl72n%1 zw4?H#N1i@=@W~gQa>2BzhX;c}06m#hvZt$}tZMH~tlrpa(_Ygnx)-pBeR2kb*egy1 zZAj9cN(MDazH3N~j~t#DR1vK#3r-r-SNWV2_2i4of4eGdLSY8|c%i8(Uv=K;(`+z) z!xd9!)wVRX<+nAY*6v8IY|1ybDS@#LYha&%+rrv*w-kQ`Dzc%v5Rf;#t1&%k!UsmM ztfb&)pBXh^_J*G}7r21`6`Slr4D{!h^vtbn8Cd!EI~O{EkTdbCX3^6c*4`xWAW9ME zn^!piYU?)i?>qR&{-^_iT_1e4b z=bmoE8W}R6V(@^zu(KM{lW|+yI(loIQWVYgb-TKZ<2fPH0VuFtynD5Jq}J4SoHg@r z2QeH9-f+RV=<_wV?k-|dB1&Ma_=$ja6}$PxhTmOY@L|lj;(_CuR-9Ild$|{@(7uwt zc^Qew|17+9LvqQCimQ(tctT;kXhXxAH+DYU5?q>g^L_GDXH{Q0X~^N>Py|4#C$)0( z@+Vh6vdz3#l^gTz)9x5L*k5|}%{!Over;Lu*An!IG{|tyxq0%Nh4GS>*7h-9p6`X? zqLd#33ST0~O?o$N`bvd_<}`{O1@Q~<(6Bw~iBp2fdC zJ^1%;lYukZ7Q&%zB|uCj?K-K660uPVwS;^vq)?j~eE0HoNw; zoOJzjM+_<(*e_DuCtO+>EG!5eHeqO4Ng;rACYws)?O? zYQ=fSS7dVehQ`#+#`J=Xo$V(0>K#)?j~EO{Yirk)e{4y*LV!RCM?}K!tk^jH$g$Q* zO&T|N;@CmG-4lEs$zNYyos9HgxDrMImOdx2Q!(Y4>bd{QJFy!Nbd=Gj%> zt1mtyk^cFo29^{h_6JV@3q0Q&iXue>6>$Iv!x*2!A#9bN!Vo9uwdd1o_vAX1E-wqm zi#e()TDH)f`OA}CORhNoN&p_4tV+%8_~jdIzv(Z>o;v)ZuN?c6`nH|ld+nN{vc8st z^6=Y@Dp>A!Q6&Yi81rJCe(BGRy-`5`stj7ax4v=oh`|8Hj2b#2ym?_Z?)wnZl&zC7~Z)apz|b3k3t$oi{P^(yC7#H++9a zAAocf#ilIN1iJDhjeXl8b_)6&7~Hs{u_(vRF* z|Ky7ejcF1D_Of)vXk&;8+iAh?w_bnSoU6CDZFy^MduK;C0Ik&zK0VA41{5p3FXo1@ zed{kEWQ8~Q^Q(2aTpmCu=-l|3VF5NG0!0B$zr3`3;@H8x2^Wmzsf*ZtxVH1qn9+lN zdVY~6Fgc7soHJ+79BZ9@dsp}Ui@M0>&SZf+<)^`ZW=8^Mumd^cD8GWXV)dqPuL$Oy zAdyx|GvvPJ#83aSD(`xZ)}KFnYDv-lHgL<=EhPhZ#BAl85CapRXkT@qJfn^4c&;+8 z5>K%U_LT8NEF5bBf?!V;?O7}OXI6Wg6)F}54u}VM+RK@CZ_Dgm_vMT{`RZRi&jawO zvyS@CbR7V+b+aU-dfO8a`#m5aEats*;gaPWE$nsF;iJAd+0&$m^yQhtn%X9ZXw(PeLFTLX1FDzTR+22_SXV02?$p{ys6`Z>+t*Yu*Zj1MG7Sv<|#X-mBAAn}Pr@c|{ zeh5qk7WWmfFq5jD?k9D|gJ;Au7k1o@ zA zeEZttKh?k6a*oA+9ftCGo3P#gl@L}W?^X>sD7|33Df>nD^J71-6bv%cv| z_pEB=hzJuI0hmpl8~)1A-)(AXw;^WVvZCL7ebhIuIWibf06fFLd1z6+iIe4N!S5v_ z{-yn@7_&ZiVD{E8PY;K~09LGA)zZ>hkcj`{ixZ{<(!{+WuLuOJ=)RWt7k;;9YhBYv zj(+p{rSUD_Q^G#U)c{6>C0F(3NI_o(z%{PxvFC|#+4I;n>>6=Bcm@^+G=`alVbN`Y z2={g(H!SS=V3B9QOxAbV{WeSHieKHda@BhP;_=uIzH#CyWj)&OPifmYD2NhKeu0L_ zi2Cl_+}q1G+0t2gY2k>WeeDuyZtJ-5o~3KM!xqf4kcN$dmUc$JbI;q|sWd=DYRt$1 z@mSbWb)R`@$^EN>z3Ii?f(+UEi9id8MNTNo{N$U{6Nxy0+S;ubf9v5pfA&x|o2~5E z=MPs7t~O~HR}6zK?-5SGc{y8nOZTvr*R zji03hq;igY_J`MR-?0NgadF{2Hy$}Qm;`Kp6rX+Wb7n0vtvCm|^1iKWHf-<3vK%6E zJ@>BPzP4bGzu0l7fWiG{*k?!~zi(Sl)#a$ZKyd|LS9HhIDUBzr9sH5+a6T zVPP{Rn)>xkN0pTp1K3qxf7MNYXf_3ZS(&-#H;;LqH*{dXzkH@&e=iMYW?Ot`5)rMk zI()-geb`-VfAh@h_ttH1?dVQt^LBQ2x9-{XOjHa3 zpzpZjjtN62omhQZUo~)D{e~>%*ofyr1eyZ7HYfX3hM<@UB)WMw+qYE&Tyw)E*Amgn zt?zE>t`P>?oj}O2C~~&fra?ARq8@RVFJ64g5yvMIi9{lP^ytWo^LM5wC`yx3Ht1#B zImkAwfliC_-m2ch#nJSdmqm+KxY@NJtEWw3z3=HfZXkp+v+Ci(;Tx@M2iHlId(F z14t|yPb4DmXTbP%WP&iwnYZ$a2lnKHVdVoMwg^NdFfaxv7Vo(mhff?o96&Oey#D52 z{dH{yq=_6mFahFQ&L8rXFJ9_6PD5kMjSsGWF;l`?J0yyTwId*9!)4*K63Jg*JuZ=m z*DriNwD1ccPXyZWiSqz!K`JmTammw#ef`(q=sWJXV_zLd>we{x$BaAn+zICo(1SbM zyEfO>6;%WfWKsa5d3TN!K}^V_>o5Hx5xuo~{`T}bKp5l+F%vUsrR%n3MS{L}VTfQ$ zXJh-;UDKx>9SjEhRg@mqH#2)#y9Y;nMG+}qQlvD@-RBjYa@=^Oln5=TvLLlPH0T2#63Whx&qz`jyWI5Kk3 z$kPr#{jw9!J!9;d!DO_ip@uZI?r|fYy6wy_{`Bj2*s9C;{*#7>CpR^9HRpDFY*>g{ zIgV4eH7nKyi9nzkl^p)`=@(R0RL0|R00Re93{cIl*5nL`l-7GwT9HeJ<-Yp4=}tfs zsJ@~3+Phai{9g8z*VjiS6%DIc+<$jbuO^8El+NVVZQTCXS8Klb>zX&~bj|AeSw~ex z!yzIXKc;`}^7Wfi0qQM8TRLu3aPP&jS*ILsANj?XUc2|NYgq;S9h+C1$#AJF4j=+H zplipOJ8zibI2ypO{xtv2d9G55ZT*MHf&R%Xy6Uo%K0w0EWSg3snw#5mc~3+_!9YPG z+P80?k`fhsH`^OXcyweV6Hrw9#YwYc> z5*S)#V^e}B{#UC0DLnF?;0;kI$JirDVisW?gu~F~?O_R_-;}vUlH|{o0F@MvuGn zqDw5yd*?l`{B~`~C{jWMVZn)I$zOi!*n+~uJ-?fK-+Lj~r(@U-aaIm1!iHdk*sv0% zwWwZgjFmT%L-^?#!Hds3dh?bY7yY=V4GDnBCNM-dPBS<5CR}eWSkS+!YUt3R|Des) z&Ye4#tz7Y=Km8^e4Bv6x4JRId!rrM_-_X2aNBi3CJ!^OM%&yCa#oTvh?A$Ys1+Z(y z{OqFp6DNJObmWvkaKFj9%U7=X^7o$Fo(_v>77kGU!YPGUUpiy#n2|(OyJgFt9((Lh zOW$yn3(hG*JP`iUNf(@R+L>cUkJ*dg?%1)Ty1Lp{C;_y!wY@Qa-s7)5`)=#byzv4o z4}A5zr_G!NAeBnp_>;L$?uawQ5zmV8wAT|d*<7^TfB>(TK198hSi9`~=6lL!6@Fho z>HT9sYoThCe?R9l8%$@Vb<~1&5j-Ff;iKsnI?u3GApS|d^$rC5)5B8GxjAXJo&vT0k z;?|tTbF~vVFnanca~6K~t_7qtvt^yIC`2?@1yY{Z)hVe=u3`M(NcG{J1I9XJ0-bwQ z>n{D?l8&)`Mqc@;OQ%geysWIWw~pbiU03t?>?a>vInULqH#lJkLZD}F`=7(6Oa;*1 z-f`9KZ@$$Lw{u*GZ9YZ4p*z9!YBKD8rh3a=mchC2GIU$Ynn&aKSc zd)rK#aIJW6<$1TGblIHARJq3FAlauK`|tW6>2qTSTNF!oa`;U2tr5M^{QK z9@xKZ%<%qWMhz=0N~GOXUGvsm$;}%(7dGYJE-o6FY&0Eps9BV`X!<3SCroTivAnztz~x&k!pCnp<+x)H+g}5`_QuX38lXt+?MEQ6 zUDdsgOv}!;&9%wp8$0I|7KF3y+_+WNz1y{6PX>XYK=a<$N)h#zg^d!7j+a03qx$HnfyPyPI8!>d@Vrq)(+2e&9u6e@xYI8* z+o7|a0npUky!f3pPrkB#aXk|$k3GW>Hd+&jJbl~A(~sG21I(HG_Gj!0*eeVYf+9!E ztP!EJXH1wnX=Fv;K7eSY-ggEOaK`K2(X_3$bLEE4*PTe0$?DE}XZJR)17B zKW4?MiG26VcT5>KW+;I6_Vz3O>$)ZFbs!;VQh;%f91$HgHB>TyvZ_@w1>=g&8B;QC zaNiMOC*EtKUKoR*h**RL-QB6>D{G#6eeGXYbb2}hzedCg29k#`32CLDy6vQ6kDj`} z2H3QD%Z)#JdUX@Bto%L?AX3V{5skERICtKZJ~NITdDxWErNu=`(Z042{+bXEZd1qZ zo$c$_cf8e{Ul9)%x77Ev?$+jI)^4`0rAMTqaACN#~VafRiX5KsZ-Fxou{C>ZK?8&m0-~IB} z;^^zTa_!x-0nVA#X3@E>2~-3m0FY%SNh}g0hGJZ|G2)yd5D`Prbd8AHZ5Gaj=Qv}? zfOH@_y1%rx+AYrfpS}ExcSf%0s7u5va?Ev2_Usbf?9@Z+TD9v~WoBD(PMJxv3M&K@ z(-n=qPAqwfM54U|{xcVRe>^))CTCRDD51> zb$0pwar#=<905v1g61uj0CBD(N-VbigZ+gE+RE!{yiR9&5?BKek^(~F#8<=1f%$>) z^(&)mC+$w#`VwE9*Cq$`j|U?lE1Iq=#D2K*@ULF_xuV=bmnDI6* zWZ#o7zVKt4&31?0{zfSD$}6w>W9@|v+*Ke2gQ3dwZ+6`{Dl_S1@H!a)G2{Y7B$9db@fydWwxY&b_tyMeapAus zenFg5Fc<;z1`PR}n3_3x?&{m;$ETw<4iY!|8wp<@#!$;sBF`W7wlZYe_lwpYMYX|KC4a&}Ey-S^R=Q;#AcOCB9N=xuIr7Z(+p&8E+@F@9dhEKantvf9`0@9Ld={p`%LDpP!<7Z;;`0g+S% zbx)f5y~k@>cDPH53rvcVLi{8{mTDA~z>zj%H?Pn6hgZ7&%k2@<1XDocMo)utV*xTI zs2M^HMa0DrbBu){-_q2Wd)Sj*ot2iyP(}j-#W-11{BtfY)saZ7Z(ykX;?QfSMq{!o z#)&Zml!1_QPNWN$7KLH8OMUied1G~9QPK8K8ZURZ6Oam>E-kP0^bMbCAAIx5nu-=q z#xaJ5Viy^51*yWNKXb&}RA1(H7fZL=evz17E*g!*0Z60R+{)zGg3q^lDX?)`vBd{D z2(y!fsT0Yub>?4=%SBWSO=_I`oa!?n*xe(e;}^SpZ=4JSHY_oY0`7x& z`3W32*UX^p-o_r>xwWOCq^hdiYO&yL^(DP+2}mmWW3iQ$)k|I1j-MMk;g4!0GZZfW z#Kd;XBmyv@+LljG9*MpIBTL1M5FTy%NIWC>*%_E+!t2COn_Wa1JH2vM*urS zo42y3j?^~Rd$$$jNh}T~P@J$sgtyFt)O8-4Uz?e|Ic_thZ_h5VD;W&qH>RYxHUT^t zXu;gVVt0@4pC^0IU)MvLiKB#|V@ju z%bk~c&s-cmF%*etfGDFRF=4g}oCr)3lhx3p)s80))z(&*<~)!EaT|byRym>Qii4ji zJ38Pk&tZ7R344@aPw(LS|GoCsr6n%gbyN@q%t#2FbBP0!khYq`-`bt`(C+d|Z>h~@ zO#ta%g#;w~JfYC^jrkAGcYWBiaPB(SQDF!SRKsEf5QroqGeo}Koc-|LiiSFGW`;9< znV_V!*T6iIGJw>Mym+9E&2Uf8;0G6cf9tprl^juGn8fS|kptHma0T?|_T)dloYAnOPG}L`mi;+CGWYC#ozvtFjM1xFatw z$8NLXT^TL#B~C!9ENgLb>1x0KbjR>pm)BKPxXuX;VLhT07x!^PVn7^-7y=SE$*^lH zJJedRcUN6$N#Wf;SHB7gNZp-QZ?2v1=stB}qU{N0!xuch=m|(fBpMwFjQ9H{j-T^&O!0`W5Ga78NaVJKjx^^SInYp6T4=M{ z1R3kg5?`7Gq+TYbW@gWJ^v*4AI@7ItTioT|61&ZI4@=3fR|39b!S26;`w6(8fctUp Z;{Txru~y$^ToC{O002ovPDHLkV1hhWrGNkc diff --git a/modules/azure/azure-virtual-machine-starterkit/buildingblock/logo.png b/modules/azure/azure-virtual-machine-starterkit/buildingblock/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..73deda66d764de9ab63a6c37550e60d5980ae78c GIT binary patch literal 15572 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 i1_lNO1_lNO)8jw(i| Date: Fri, 30 Jan 2026 15:45:01 +0100 Subject: [PATCH 03/13] chore: deleting logo for aks starterkit --- .../starterkit-github/buildingblock/logo.png | Bin 19736 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modules/aks/starterkit-github/buildingblock/logo.png diff --git a/modules/aks/starterkit-github/buildingblock/logo.png b/modules/aks/starterkit-github/buildingblock/logo.png deleted file mode 100644 index af8490f941dfc4558da1e6543cc1dda0c252c4e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19736 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 Hu0mjfusF@= From 021c9cfaf2df5008cac6c1a233ae6a691cf828d5 Mon Sep 17 00:00:00 2001 From: Florian Nowarre Date: Fri, 30 Jan 2026 15:56:26 +0100 Subject: [PATCH 04/13] chore: adding a new logo for aks starterkit --- .../starterkit-github/buildingblock/logo.png | Bin 0 -> 47506 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modules/aks/starterkit-github/buildingblock/logo.png diff --git a/modules/aks/starterkit-github/buildingblock/logo.png b/modules/aks/starterkit-github/buildingblock/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d58f8ddb6ecb0acd15cd9556ccde42cf5a823a93 GIT binary patch literal 47506 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 boUt%so8CsP2TEQ4@7?Ok+Df&r!4dxlYfy!f literal 0 HcmV?d00001 From 00114c2fbfb940dac58c867f4971c82ce64ced35 Mon Sep 17 00:00:00 2001 From: Florian Nowarre Date: Fri, 30 Jan 2026 15:58:45 +0100 Subject: [PATCH 05/13] chore: pre-commit --- .github/scripts/generate-icon-prompts.py | 36 ++++++++++++------------ .github/workflows/icon-prompts.yml | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/scripts/generate-icon-prompts.py b/.github/scripts/generate-icon-prompts.py index 4210ba8c..c4e6fc70 100644 --- a/.github/scripts/generate-icon-prompts.py +++ b/.github/scripts/generate-icon-prompts.py @@ -78,15 +78,15 @@ def parse_readme_frontmatter(readme_path): """Extract YAML frontmatter from README.md""" with open(readme_path, 'r', encoding='utf-8') as f: content = f.read() - + if not content.startswith('---'): return None - + # Extract frontmatter between --- delimiters parts = content.split('---', 2) if len(parts) < 3: return None - + try: frontmatter = yaml.safe_load(parts[1]) return frontmatter @@ -105,16 +105,16 @@ def get_platform_from_frontmatter(frontmatter): def generate_icon_prompt(name, platform, description): """Generate an AI image generation prompt for an icon""" platform_colors = PLATFORM_COLORS.get(platform) - + if not platform_colors: # Fallback to generic bright colors color_scheme = "bright, vibrant colors" else: color_scheme = platform_colors["name"] - + # Clean up description clean_description = description.strip().replace('\n', ' ') - + # Generate AI prompt ai_prompt = f"""Create a professional flat design icon for the meshcloud Building Block ecosystem. @@ -139,7 +139,7 @@ def generate_icon_prompt(name, platform, description): Style: Enterprise professional, instantly recognizable at small sizes, similar to app icons or logos. Dimensions: 800x800 pixels""" - + # Generate post-processing instructions post_processing = """**Step 1: Remove white background with GIMP (free)** @@ -163,7 +163,7 @@ def generate_icon_prompt(name, platform, description): - This reduces file size by 60-80% while maintaining quality **Target specs:** 800x800px PNG with transparent background, under 100KB""" - + return { 'ai_prompt': ai_prompt, 'post_processing': post_processing @@ -172,23 +172,23 @@ def generate_icon_prompt(name, platform, description): def find_missing_logos(modules_dir): """Find all buildingblock directories missing logo.png""" missing = [] - + for root, dirs, files in os.walk(modules_dir): if 'buildingblock' in root: buildingblock_path = Path(root) readme_path = buildingblock_path / 'README.md' logo_path = buildingblock_path / 'logo.png' - + if readme_path.exists() and not logo_path.exists(): frontmatter = parse_readme_frontmatter(readme_path) if frontmatter: platform = get_platform_from_frontmatter(frontmatter) name = frontmatter.get('name', 'Unknown') description = frontmatter.get('description', '') - + # Get relative path from modules directory rel_path = buildingblock_path.relative_to(modules_dir) - + missing.append({ 'path': str(rel_path), 'name': name, @@ -197,21 +197,21 @@ def find_missing_logos(modules_dir): 'readme_path': str(readme_path), 'logo_path': str(logo_path) }) - + return missing def main(): # Get modules directory repo_root = Path(__file__).parent.parent.parent modules_dir = repo_root / 'modules' - + if not modules_dir.exists(): print(f"ERROR: Modules directory not found: {modules_dir}", file=sys.stderr) sys.exit(1) - + # Find missing logos missing_logos = find_missing_logos(modules_dir) - + # Generate prompts for each missing logo results = [] for item in missing_logos: @@ -220,7 +220,7 @@ def main(): item['platform'] or 'generic', item['description'] ) - + results.append({ 'name': item['name'], 'platform': item['platform'], @@ -229,7 +229,7 @@ def main(): 'ai_prompt': prompt_data['ai_prompt'], 'post_processing': prompt_data['post_processing'] }) - + # Output as JSON for GitHub Action to consume print(json.dumps(results, indent=2)) diff --git a/.github/workflows/icon-prompts.yml b/.github/workflows/icon-prompts.yml index 9cb8d13c..fccf3943 100644 --- a/.github/workflows/icon-prompts.yml +++ b/.github/workflows/icon-prompts.yml @@ -53,7 +53,7 @@ jobs: result-encoding: string script: | const prompts = JSON.parse(process.env.PROMPTS_JSON); - + if (prompts.length === 0) { return ''; } From a0f3d0fec56b658fb036d744d8848835e12b0e13 Mon Sep 17 00:00:00 2001 From: Florian Nowarre Date: Fri, 30 Jan 2026 16:04:30 +0100 Subject: [PATCH 06/13] chore: remove logo agentic coding agent --- .../buildingblock/logo.png | Bin 23213 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modules/aws/agentic-coding-sandbox/buildingblock/logo.png diff --git a/modules/aws/agentic-coding-sandbox/buildingblock/logo.png b/modules/aws/agentic-coding-sandbox/buildingblock/logo.png deleted file mode 100644 index 23536d5012d4a14dfd4ea070b93224742b13f6d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23213 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 X``JWWf9KJ^00000NkvXXu0mjfsD7Gq From 7f2e88538453d0412b628e92b3e3a5d0725a7216 Mon Sep 17 00:00:00 2001 From: Florian Nowarre Date: Fri, 30 Jan 2026 16:17:11 +0100 Subject: [PATCH 07/13] chore: adding logo agentic coding agent --- .../buildingblock/logo.png | Bin 0 -> 7901 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modules/aws/agentic-coding-sandbox/buildingblock/logo.png diff --git a/modules/aws/agentic-coding-sandbox/buildingblock/logo.png b/modules/aws/agentic-coding-sandbox/buildingblock/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..54083ef297e3d6c1920eebb6264bf3e482197f4a GIT binary patch literal 7901 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 Hu0mjfg&Y;c literal 0 HcmV?d00001 From e10402a76d7f900db8a53937f4c1833a30dd3394 Mon Sep 17 00:00:00 2001 From: Florian Nowarre Date: Fri, 30 Jan 2026 16:17:20 +0100 Subject: [PATCH 08/13] chore: pre-commit chore: pre-commit --- .github/scripts/generate-icon-prompts.py | 37 ++++++++++++------------ 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/.github/scripts/generate-icon-prompts.py b/.github/scripts/generate-icon-prompts.py index c4e6fc70..d2355c6c 100644 --- a/.github/scripts/generate-icon-prompts.py +++ b/.github/scripts/generate-icon-prompts.py @@ -78,15 +78,15 @@ def parse_readme_frontmatter(readme_path): """Extract YAML frontmatter from README.md""" with open(readme_path, 'r', encoding='utf-8') as f: content = f.read() - + if not content.startswith('---'): return None - + # Extract frontmatter between --- delimiters parts = content.split('---', 2) if len(parts) < 3: return None - + try: frontmatter = yaml.safe_load(parts[1]) return frontmatter @@ -105,16 +105,16 @@ def get_platform_from_frontmatter(frontmatter): def generate_icon_prompt(name, platform, description): """Generate an AI image generation prompt for an icon""" platform_colors = PLATFORM_COLORS.get(platform) - + if not platform_colors: # Fallback to generic bright colors color_scheme = "bright, vibrant colors" else: color_scheme = platform_colors["name"] - + # Clean up description clean_description = description.strip().replace('\n', ' ') - + # Generate AI prompt ai_prompt = f"""Create a professional flat design icon for the meshcloud Building Block ecosystem. @@ -123,7 +123,6 @@ def generate_icon_prompt(name, platform, description): Visual Style: - Plain white background (#FFFFFF) for easy removal in post-processing - Background will be converted to transparent (see post-processing steps) -- Use meshcloud blue (#2563eb) as primary color - Use {color_scheme} as accent colors - Maximum 2-3 colors total - Simple geometric shapes with clean lines @@ -139,7 +138,7 @@ def generate_icon_prompt(name, platform, description): Style: Enterprise professional, instantly recognizable at small sizes, similar to app icons or logos. Dimensions: 800x800 pixels""" - + # Generate post-processing instructions post_processing = """**Step 1: Remove white background with GIMP (free)** @@ -163,7 +162,7 @@ def generate_icon_prompt(name, platform, description): - This reduces file size by 60-80% while maintaining quality **Target specs:** 800x800px PNG with transparent background, under 100KB""" - + return { 'ai_prompt': ai_prompt, 'post_processing': post_processing @@ -172,23 +171,23 @@ def generate_icon_prompt(name, platform, description): def find_missing_logos(modules_dir): """Find all buildingblock directories missing logo.png""" missing = [] - + for root, dirs, files in os.walk(modules_dir): if 'buildingblock' in root: buildingblock_path = Path(root) readme_path = buildingblock_path / 'README.md' logo_path = buildingblock_path / 'logo.png' - + if readme_path.exists() and not logo_path.exists(): frontmatter = parse_readme_frontmatter(readme_path) if frontmatter: platform = get_platform_from_frontmatter(frontmatter) name = frontmatter.get('name', 'Unknown') description = frontmatter.get('description', '') - + # Get relative path from modules directory rel_path = buildingblock_path.relative_to(modules_dir) - + missing.append({ 'path': str(rel_path), 'name': name, @@ -197,21 +196,21 @@ def find_missing_logos(modules_dir): 'readme_path': str(readme_path), 'logo_path': str(logo_path) }) - + return missing def main(): # Get modules directory repo_root = Path(__file__).parent.parent.parent modules_dir = repo_root / 'modules' - + if not modules_dir.exists(): print(f"ERROR: Modules directory not found: {modules_dir}", file=sys.stderr) sys.exit(1) - + # Find missing logos missing_logos = find_missing_logos(modules_dir) - + # Generate prompts for each missing logo results = [] for item in missing_logos: @@ -220,7 +219,7 @@ def main(): item['platform'] or 'generic', item['description'] ) - + results.append({ 'name': item['name'], 'platform': item['platform'], @@ -229,7 +228,7 @@ def main(): 'ai_prompt': prompt_data['ai_prompt'], 'post_processing': prompt_data['post_processing'] }) - + # Output as JSON for GitHub Action to consume print(json.dumps(results, indent=2)) From de4a331622f23644e05afad8ba914c894c669ee3 Mon Sep 17 00:00:00 2001 From: Florian Nowarre Date: Fri, 30 Jan 2026 16:25:24 +0100 Subject: [PATCH 09/13] chore: delete aws budget alert logo --- modules/aws/budget-alert/buildingblock/logo.png | Bin 38247 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modules/aws/budget-alert/buildingblock/logo.png diff --git a/modules/aws/budget-alert/buildingblock/logo.png b/modules/aws/budget-alert/buildingblock/logo.png deleted file mode 100644 index f33d9c5b8c534e8f3049c881bd5db7319cab5ac8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38247 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 ShH$9>0000 Date: Fri, 30 Jan 2026 16:39:06 +0100 Subject: [PATCH 10/13] chore: adding aws budget alert logo --- modules/aws/budget-alert/buildingblock/logo.png | Bin 0 -> 31909 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modules/aws/budget-alert/buildingblock/logo.png diff --git a/modules/aws/budget-alert/buildingblock/logo.png b/modules/aws/budget-alert/buildingblock/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0bad337011b4a6d67f5efa5321cf3797edd73415 GIT binary patch literal 31909 zcmV)UK(N1wP)Px#1ZP1_K>z@;j|==^1poj5LQqUpMMrQ<)H(#LfA>t z+5|O69Wz9oCH0UCaPyQnv7AB94i`FRta-rTd{ZKAeggf%g1bB^PT<_dfw=SL5pE@$%US+`O~pe+M5fl>9KH2=$7H ze?=0XCeb(z(8&4o`yk&TbTGgf0gQ76?aEj5C4i{9t32;^w zcRgzB2Z!89>V@V=JIf3Sr zh7}g=X#_XOHb6WH&RU|+k2aRCT#q+QBTkPtQV5XB;9H1#0YmB{H)=iPu%vdV@m8oQ zaoxitxUMtO^NW_yIzHN1 zr9~Yed~jf`(PfuVLG#LfCLvgSdSJaR>Kj(UZJ8g_RNe7bxUsok7B3uE-Q^Q?+W^w! z!o8W@Xq;^Pc0{yw$TCEFxbewu`?MWwWH%zqJU?5${%Gg#(ScZsri2?Dklm0^#I$;( zgPr?SO(|#hH2?$}BZYUvjWe7z%p6Z}6GL`eeYeIkq_?vh()kdsw`+VT352&;;i^!f zr7Yy#>=ugjrgvlINC$G#9f=~(V~kL-U~OX%`8!jg$svr+#p_QyACaI0CwZ$ck|12y{Wwi z&_L#F0?1mi)$DcvW6G+b{11VJ3rEmEIx>@iIB@IP?fb@*WjPk=Huvo?rc^fb)h>5! zv;48xZTW2K+W}1JQi~{dP@OqcU>nEDFaR^B-;PQTY4T>hwP|vGBjfo*&5J6mGigE}_ z3x#XQc6uBSZoIrQ4A}Q@v%dOIpQT`YMI8|}wL8GAsN$&+n++6@`ff{^m5Cvr1KOhS z*3g#SV2b3TZW&WVr;Kcc8*s)IP3;0I?n z1Yjj09(hJ@t4Xb!pq87XyL|Blxv9P|mrzi_jSbg2i!qhUZJg2DI;=T|)#g+Xpede-0&NbDVr1$ z?y$^h8?y~A(l!yvXpCrJb9lHz#fqP@@1_w#kl%1;xPe-BLy)rXIMUKUq)rL+p4XBw zWOAhiTi>@5X##DJoDsI*XuwxM?g zp(=Y6E<0tcVsUo_xkS$DO>m17S)_*CngAQY<~w#}4F}zs4g7AIhu5PG^C&7}LRwQ~ zQ#;~Bf(ctBbZR#_)&I~3zVo) zw|#&bumPP~2BhkYME$~|QqzZ`^cz~?#+@R)F(sz=6YRztO{p>UF}qpQGTL6u#>!|( zc}C%T9;Q17qw9UX=1@UrOff(4j#O2*WY= zSt*F5)dhv`7Gd*)zFUMiA{U`0PRr-fcSwe5r>+PVX4LX6X^9G=HX%gkyGdL6QQu8Q z3JA=d9sg$5w5;l;`dDavP1>Nbl|3j+`5V~{^^vKRz5=a$)^}r4FEtEiP4iw`VlD?? zrdYNqJnImPwd#wl-UN;^-vz9HYjg3qdMFJqvLrUb5?Og_%Uus%Ws}NM(r{EPOT!$u zRMZXKq$4TrA3IfO)XMvi`|+gxJ9N|CGtk{%Xi=wMdD^n zW#Pv>I0mvqit2lT=(UdJ&vopkT16x!-i^81J;;r8|4q)DSyLI24o)Vu$ueb)BSq5= zlHD-pyXgjzR@sfYjre7_(H>cNZJsoMaZ5V5kggIj9g5IT)AY{LIgpPFHHj%~@YYwM z4fnF3vOv$L04;BtKpP<2Vh3!0Xq9OSnnpXji43HM-jtb(H^EJ;^yQVOCWWNX28AI- zI%ArZ(6E)=q;RU_x0P_iy*xIEq9Pmi7NZSCf)q(wO6p432)Cl{rq;9G2sTu2t6a@) zFXzpA>R(YpDbJLsR&A^4Zx%u@RYO+xnE*H74fdfo%=}j;=k38e!5^VL^7kyM2oE5> zMY?&LJG8oeubjwW78hH0NO@`Ln`)4iq6@FV zCn{g*He;H4Ke$UgD!Dj8qNLGm>BznPl8L?bj%2k_ant47V-0vcyX7-yvXu49~W{}P_ZXSrfyuI#L~X+S1Oxgau7XA^Wi#?%}&_huaqCt&mFAl@b%oPhQ;Lbsaa~9}2u| zD5JR*i#rrqf>rFM#sYr9m=@LVsFFDQCjI?50`8ho!?@EnlurT{ai-MW$Ou!NC#c;4FY0VtCta~78=W7eXo$!q zu~sa$mkJSPbT{@5R@l@F`f$^F_$7M<>Fg*bgb>JNxiC@iRV5ysE!D6OHu&eo3Fv_F zi};O;?7*Dq%D; zbdoxFxzH(VN$I_#EOIe&1G(uDbEXqfTn8oIHo}cf9C^cj<{eIIC{2k##TPn9)XT!4hN;*a^V^N>v#_KegLq-P7lz*z5*lio!R5j#ZF{Uke zqg`5lv=mMSaBQ~m^3ZD#+`V^lg)J!xsWh3WLIwCRyM4=dYpJ>mUWlJ5<)&RbkGa%$ z+$KPvHs|iIKyXu78mJwFM^>H3RyCz>G^Thsb`$k()#OId*Lt!`?0&n=O9g=G?rwNo zz;h#>1W3aPwehB!63l)3g%QNYf`c#||NlZY8xKB*ldf{R`!ThPwY`7_H@7E9mY35f z%fWxml)|n}oU5AHKPH68{nJI&ZC+lK4?FKO;K(qivl~>ls|sYq1XvFg5>=S8QDy&$ z2zWTS(aQ1S4=K=Y1+1m1rkRdpt^K(T>OCSiG8zpk=CoAln@mUSjWawHyCDd6Qxp?p zSBp27Wj#wz!>RFh>*B7^gc*<{#33GZU&~_c12=@@8dDVWhwG67sup|PrlGYn;6~Hh zoz{W7KO9?>z|)1)hXVz_#ddU4rwMJ(Oh66~=)1Kv@av_G+dPxX=TlGXz}*H;T!?I{ zZKAF@f*?eBg?zW=dS*I9s33+BV|6>V8a99PbOTQc?xc8obfjy;7g$oFlj{*g5RvH+ zO!YME1GmG53aFIZ!f7EXKbL#{bW*%=TN+tYUI8X}u#{0qG}|}XOEtUU(S#5(s1^1@ z+ay@ge`>_r>FRuMJ-^_HC^GXPt9(_lX?hu1JKP{$h#u#Q3gq{Nk`NWYxyBUetqXM& zaL(<4k702&*nCsg2`)`3T}qoS@@=!FD!8GjA{T=iN~ZRcX$9>@oXP!a7ZHd7!ZYG+ zblsxvA(o9{F#FHmm1wzb!@!k9=;>LzEBo2`|6i@e6CeSKqAsVclD0{cZ1xxruE79Q zTEixL_3XA*Y8_MJ>H?DM3;~>Ce&4zc&ou!v`?67xy=;g~L8ppqMY`b|z7BsM-kuXG zq;S$fyayn@)`yR+Gs%@mcOh|X$fu-g(+eYI8R zm}-=XZcz4@;jL-(yB|*YF=l}T2k2sAas`_mo~GFw%BDGEwpE2Lb$$^qeVoc}Q3zFv zVYm6em2uGYt-KELFT$JCQvrZVs7m}wCnuU^(#&t@9&R(et&1kvD2)Hn1B{2N%8J^~TIcgKYxRgiz8a zQLt%9&viyU4tBD@x`~3wUR)L!o6M=`s9VmE>pFH*(L%0}-*-0$w!RVhy z*YLTUDLcB)jiS`kPYFAc`56IZZm|fwfa^bx|{-G4s(r`zy zX0**v)6d`l$KkDel6{$vEl=CV$dDQPPPJg+Cic>*lpbsV&5YhtaTCTE2rE6i!ma2v zv6Qp9;nPz`@b#jf5)TYEEVt#aEkELR`sLsmNlPc1)@MLKG}r z&TcA%Q>IRMR|!Ak&<`4GqXXO z-3VY;lvSRH5@<0%ipKeAe1;gKv1&j;jI&tvlZC=s7}m2J>R8CSNE=EAjkl533oO08 zki$W?k#~*mj8KGCf1===ALu$kI4zm2G3kizK;@ZD?mK{ueaY6W$)qpf9OI(5)G9?(j&@D^`+ zOk@FThq2pQk$NJt;*zY}97;8{4gTpZ-AUo}4nY^9zkfzJ)zlW8+d`ETlx!-~=vZUM zkwOnBNwGuxWspbAn<)=uK9W&WV)HE| zZ}1V}bZ)i9EP%%ey#ATLPK183On@7xi0&C+3na9!uM*t}2%@`q1$JHcf6-y7A{8z1 zZ4w%?bDiK~XOHkU^oHLIy>dY1)4y4PMmd?R7#o^glDbwQM*A zY@c^^IJGqb;ETA(!aL7ySSedRC*Z|HF#v&{S0Ie4l!^wqOck0t&k%3Y1XrB3JE@BE ztII6)aKw)&i0%G&b5+_4a5Fy|`PssAB5<3vNRO)nDc;{Bh=8S73dN*QG9pjntHf?} z4PET9EqZFodZcxDEBO-&K_E%T6MjblZi9o{&$lQI0enc{%4V-#^H=0P1a^JQ z8ff`f_6mDH3}(m-72<^#8X|GLRZ;pDImJQQl{HZ1eh*7xBMhD>8|6bb@eJYEN0XbG zCZz1vyKXOAErcyP|K46VJ8d5?@OMX4oEyo0P$)@S)e?a+c2js|IyRa{@t4|0Kr|v< zQ%kNTw``IDO1SRAf41nl4{5n|xWOyI&9a-&3~8T{S=EKjw?=ats=^cfzRGV5tztJ| z_B$cNf{9#0#g@A`368oSYvH!CHf7$63^McPI}qMVB!ldHC{3{DgXz+!zIoADeI30$ z{M3rrS1h-iP$Qy--k`9ikmrk0+eMX@qCDJow971*#|g6(^GW198u(C(;b!QK52x*8 zf=Fv|Nwv_qeMF>>FH=Y;64+LK&LcYoG1`{&$_`cC?hd%zJjN#`Tpm9+cn2A7bJw>Y zhfK8)P87Im<$`8NXYw|52WIW=rQ+P9ikNM=G!-s`?+v&3qXu&yqu{ygZ}WHiQ~Q6y zH+*SBVQDS%s&?5tt2;8&t6mDHNNUMf3(Xx+A9?=a1@vZ07OXx@6N+kSp}c!i5_z*i z#JyJw(DL-`Bya8(?DE(<8zg4)O<-4lC!_hU{bE~g7Hxf)*AIWp=#=9vDC@@W z?KW;Q-Y~^L-*&g$J`Cz zU?HtdRcTI(Fl{ zXJgflTFY){*fPJ-)}EWeNKYEyZga~`gj??i3LbrbO!JMwTQEhk&uP7o*4>m>k}no) zVK+W`!!n}MslqAGiMLg{u#3mMwi%tR*}WPvWy0u6Q#Yu$^w#msH&m&eRxFrnYDC(` zYHw@drhuJ!C)HqOBV=E0JNLG+^D*TyiQR++xXt+RUlban>YHuW(&D^epyV z-_1O4di#=_Zys)E^g^^gfSAEX9SX8wwIP}=j3-LjZ9ljXll0TeGrB#1RBl!X^5TUc z(Xe!&EfDu}lfZenNzJ#{gg*XrWN-FTq>7cOka%<)%5IQdR|51-?aXf8km52Sj$6hf zpC!KKHU>)&mfZ%N#Nlu%%obijm#PH2!o5Q&vF!(-xmz@T+VVBs#%{sGaaVRD4oMfu z49)dK|4FxHV#~JNA;>`n=-k4QIP_7%wfUUE#*fMDrv4 zWX1dtxS^}Rpe|BSCoxT|6N24QaV({HbJao@&lb?<_RwhBeHqcZO3j^jgqvE+Zj7hM zQS7F$<^6@`EYAsTWpgCc&Q<9!^y|nC<87`MxLhF|Le5>K*>QSB21!{XZdJi+oAyV_ zEYmh*Zn)8Np?Se92MVvvr2o|#A;>VS#2SH{um;$^5Z(?g&AZoxjdqA1LW$qmF>uTG zU3P>Uwxif^-fW*}nl+%g+1;yEaHE4$z2(f#vK}a$9+^*c&4kSvge!C>!wt@3Hy{@U z0WNd`3Ku&$gTI^AR0gz-b@V0};G;Fb1FNO^WAq7gWJh@s++eZqatPec>Z!}Gd~=Uj z@vDBW!CMhagR0lg7FwR()bYt1?zzNk-B+<2oS3^s*p@4Ww%P3wzZR403#20MR=3=S zI=GE)wO)2mZFMum{Po8rZ_N{LG)nFam0ww1^&?6J^F|~+#ADtlfGN|pfiylu?Ic%_ zOj59Nkw$E}_0?z_v2kx^4bUcU&7tW+WYU*@5-Yy4$m+AotK~Fy1AKi@fLr@Sni19= zOL))l*@y5Zgulgo!I_p@=b9i!<~G*jt=H9QBTF86lZYKV*;Kj9M6^On8uB};;Rfn5 zb`yc%dK3~VuIMNm4{<4&>fiQSAh(ggXf52#eUC38oE};$_&sVgXIeZ1P*)OE9$hG` z6t=2)-8(4rP8ep8`PaG~2>T}TaAOVa?IofFW@8Rvax+9~z8zXCbZ)bhoVUvKA~q3^ zH#t4TyQ;ESrjs&}-R=y#t-~9B139>f65cSFAN`J1KT>mE(w1X>ZK+zA4uzW;&eID- zoXgria04YAS6F4c2YZ}Uj&vp=EN0=RB>1d@n;1-+JKu8aqKl>BlH`o3AO9^p?;p=s z=`G$ykGDQ#Z{j@}P)98+pz|R>oM94wvt8hZ^^qUKZuksD3EWg=ETw-`hMVFhmiC4u zh1%%uUj2TfZ|2cI`hNdILF%k(#M#1^y-9UYX-XZJKr}Ah3vP9t-xJtvHQd(kR~N9G z&ZOBo;U_h;H*nK5B|YDo6hj?5`b8PZG{lCxW8l`@sZphPa`alb{R`MFGWnKsH^rDm zn9)32YtC0;BxJNV%Zg$Bc?@uinr~f4s+B|5v7Cq#3Dxm&1L@23KfBc|^P{6{8FmA{ zPKb_2I7FL$uY;Y*Q;lzH!`9l&9@^|f8A^HFe~h@{X5wWPR-piaGL~65OMWN zf*Vo)3V5U8wCzx}aEQp%#!`IF=Of|vq3l-Gb~AsO2sf78W?NLlZezr5BY*NLf*Zc6 z%L&N|+>8PK5pW}l;r}wbotL}WQI-g|=^?b-B6_o?T19Z{$51NRV!^cR#8LerMo3!C zhgRozwi-R^+{LwhH&r)LAf4_^?#8bAIk=>`+YGlh3pZWTj!7>h-m35Pxmcb603ZNK zL_t*IkM*^?Cd4mb;j32wABeYo*^M&?Ue9g{Y6{bZV9JM5b`eIKRL*eYaADU-yBKc6 zNNzfZJ(;F$X$84I+?@V^q|31H^NH*hy`>eoTkW(oW;Y3L4I4@|+(vFJKS*#B8+Pbk zy&g#TwbQntJahouCUj5pli~I;?6yU70wIv7@;*arFP6shPfu@|VA_2#w?1Y8x&7Ab z{irw+d^)^xyk%3g>Y*17H9GBC~I`TS;ukP9n8??rz7& zm(;PFA~zmiDLZ3==OZ`Wbc3k~N(Egnq}(Tm9K~D@Zn>4;aqLFE!EU57m~P}I5hfgR zigLGHoA;iETj5To`-uLtcyJ@FaBDl6$!RrE-2G{p=`vd_!TU$&ZmzC27H-qynedPl z&dd}IHx|K7K^a!;9kLFBxFBvpO~VGa6`jz z#BRXC$1!$0`Z&gJBmx|XRLn4Nix-Dj@-(IdH&)Euwx6DV#+sLCxY3NN+n9-GI85^N zQNceb)5SgdSj_)LxK-czxudJ_co%{jyfB_`^YRkhp2gfvulJ5_h8P>H_!|(}D{BEC zO}20eNwXXHm6ql8TKhd-zmMhju^w8lB;NFZ`c+V#-6E6}TD%;^ZgF|b0l+!4h2iW* zI*%6ca0{hbVfAUpCTj1>zt+#^{q7)>I~mE{_xAXtbWE$Zc}b|M9Yxdv+_uqtP8QXs zbsM|g+u+hJjZzxbEVLL*J&*__ z+=^$-D7dLL^s)42;C5(mT8p=6UO+w@SdZ}tVL1G~|D zWop;Em-RdYp~~Ei_|Y`lQeHr~JvKj?v_?a~ZXCyMEYEI2`0kVA;6^)Cria+gpD?8d zOX?%b>pXL`R(9KMVuR&^cX1BDi)~(xgIi&&5SZ(Z`i9;un!_p`y)<~N8A3?*E+MEC z$eGTMwQb(S9K;y}zspl6o=e&ca_ZR)PTtIVuU;^j?nB^4plAwzv-XEumCeGkzHhg` zfZYgq?M2EPA!;VKW^<{uDXKWUr?T{pP-YEmB9+^g11 zsZbovTXqxL#iIbX=?^xTGWp-G!PWoSRyxprd%t{;c@%FzClnP*@3-r-8wn3fy(Wme z^5!){jOh1G+A)h1u{E$88g9(}Eb-=xyp7P`BF{LaNy97{8^)iWqX6FV1enJ$(o& zQ(%mefZLDbt;Py{5VaM;`@l_SZbmd@h-J)5e6yH?aHDl-tEd&|*_m4}cC%OHpoOG7 zEG_PUFfW*z6Zj#+y-1U3>{-G4Kw{3+Rt%F;_4(XDy^p?L>aBm5Tqd)_> z%gD+H_y@^4LDCGusnp_4^nsgUH}xCFR14Ct0lHJqVW{Ko8|Izzbz9CZ6tZw5-pndG zWd^i!pmVRuHUGxBFRR#>f!plBO_a9BHM_|XY7W9jrl!CdIee-)0B%^k5&F7c7H-iH z!Rx!lIux>Eg*-Ck)x1@TDFF=!x2YzWYIYNB)SZk}ONCzH9D=$H>rrW&3O(z5VRrKZ zDedyPt;BP>6Ow`39m#H%+_pkNck>23g&(*TK`WEDcAZ`1xb$baucdqH4LJ;3gb_Ubz!_oZTF96T{8`=l9a(Ty!wn$OTfj1iN{d zBGH;#%x^^cyeH~}u)$kqw+gtW*^RmErc6@#kVVV;i=GBIJlfK!n>yC(^SIA#>=s)- z&)KbV?+&0cEvKw>3W?g#uh`WU&(eyaG9faHFE8I^TWXX?Z z^X%r48gQTBG)R`u1cy?I9UD+ZQLjN|S!lQ=1O>eb7Bjx#VoW$a5>3CByCvbaHZ85Y z?XX=hwKTc_;6@zjPe^&jEgbeGk@cQ#g4p&3=Lmfe3%3~oH^I{EW_!HWrd~_v_m8HF zUC#bCyAje8ZpVxsBotov+L>uE79})X;kC7^b?}7B9;L1Ynavj`T5_U(Z)P{oi&tAY zn}9xI6G?e1BwMaUNt&y`t%C%81Kh%?JoS&}UFy_KxU6^NARRqh$n-2^N|-#2fh%8O z`E@`zm4gKmXmC`%h^NDiR%q*|?)2K=7T7lv8U|Ij2O|F|Z;*q8;B9E*dAM!tmb&~) zEC7hzr|sw2`(j~>rZib54ul)+$!@d*yU`-tN_!s!K8SHtrwOzIua+ts;HIKqF2~BU zTV|Io_73kBO;`YSxc9S$_2g%#LTORVEwhc3hgWom`LhusePqoLT1Aj=NlsDe0gHVCEjzQQX)xCtz~@e|n3f!*5 zZnPu2(Kwn~$gS{b{-58Mm$&9_zyBBDR>f{Qo@$Uv4X(b+UurGnzuc`OyM=ua&Au;a zOr{pb1>>!`TN!Sw4sKkt8#7n+eXCP7$fESCc%vQRM$f8DljIhv*2(vRTYDN1O{Ibs zlj+QEI)4+R?6UOM8%i4H6oxCnjrMtvPH^*2es&{l@XJq7E?+fM;8=DOn6}$aaKc>d zcW=Jk7vNsu{|jy%*^T=0T9)d-9nr`0hqFe!S*5JHU|J|lnX`14^A0~yoURK+T^N_) zR%IvDXGBjg&Ti&xeg(;Gvtt&`6Raw@2^_n*JDy5F?%8=0Nl&us4@E<`;aQIMf*b9I zw_dqhB+03+dth=CLT?>ig5BJe6mI^Aty<_?ooZM5+C$Mx1XKDqN@d*)5nVq~zRYxl_sVdPf7;EeAJa%4_~k+TWx1BKdvAKEb6s%YCiM)i{F#oguu7nR7J{c^G(eb9-XU&(5wi{bM`xVSzhbGH;XFZ=D1ACZ=q0EDWQ5$ys}uGa)0s7%oeo9p#9m;`2-enmQ#sZa=pKHop1069xw82U?8Y_nRP~?*@VjBXwx{T? zx$H(pSElb*Z0MB+oAc~|$N9Uu7H?-ay9>G1jnLzdmd$TxH*Vh)BNlsu3O<{<8Giev zwsRDU{M?NUhZ}V67ihQnLP+u*pPW$TJ`Cs0$(z`i=MV6BK7Uf;kvkGfFpIO^aKk8zRI;1dwCujv>&*wVcw0}_pFfk`C<$60G1?OL z2~TG-FIW$9D}8P#6M_w<9=$PPCm7vluIcIf8gQeu*VMG8G9{sSpchKzu4(Z6 z%+q75N`-FidJSHF@cb{V2!!y4rGg1h_LOB1-sTxL$g4f`utwe1IL*Q*x3U1ujgvd0=y zJ)LZWn?w%Ldt`5>A@UHhd5C-a`8o@`i495xv5wuMo8X?@#xZw8k~)toBf&P0-CQ)D zEVJE_#?k`Ldx(F>Ze9cG=xrao89h0MTY2~MNVt6)P1|#~a3&WtLYB9%0gcIYI=eM* z>jIh4{K)!Cub^&CkIrvlF;8z20WEJReAluYSg3b$&aF*q&_pW&+gKF#_uW=cKk$NS zd?=_i7cC)@4>yq>1qbAx+=el51A8ij-lu`x+@#&_xG!Sfh;BN~aQ^;t`FN}-E3NZ z+_Vrx`G$ogDnJIkNg0W9^DlmoafYb?9!@pD4fa(`wXo0PT|{uBbH~g7YP0@spGWzn zeC39rR-+hwWxW^?6#s5;+I6tC|RXK$li^k!aS7lMu|e& zbGI-K+1{iEx8Tz0!aFZ|^*WsIoI}Q1{fmzj@dxyA99&(QI>k})wJDrgQ&I0rCQ|J( z;-b^K=5p2YTuAkatA#P#BuxEyjSv;}k$0*VEM>)|0%@at(KhChe4p^FNnarBfeCQ> z?m59UuvOzPIMDQUp^Ryq3?T2e{xqz zFl-H`gpNt=pnL<#$IC}le<+cL8!(FF_;O^gBDi;#Ab{A7bM~*WaWB^B-J;Dax8wao zhSHmwfFqfV}?yH#Bs3*fI`nZWww*hYoFLUilZ@OeaDO@ghYk?a|wo?>T zeLKKCQ*eo!iM2@mE!G)s;f>pJD3!=!8IfBfy-5f+_p;MgDu&+TA%5@xX_}fT-0YqA zR0MTDutptQ;FhFSNk^Ur1{-c@{fUvZjUufe+7%(u&3T&(JSo2>Ef`<2d{kJ%WDO;6 zOvRCfTj^DwjjvY>EB1#<+0Bi4)qTHe!KHAIaomXAXh4c6+Z!8#X`smp)~G$f6~Q#H z8(6(98C8OTyv${8oH4!oGZyU1n%vQrDDqphCHg$wf7!X$|9U>kBh#i}3Mt74HUVXd z4R9;*8>m0h`T9zBLsNv{vXz@&nR$YO@{b(exSa`U;dZIPO|JIyB7&*=rrEU_0*i*n z*6b#r6x%0q&Fq#3oDbfBM&qr~_S_A8vc5j1z76&9Z@ZI#uqM+!NF5nLO{6r(T+4gy zMuoEF){UpPeX9jqTX(OeYWTiXNbbjs;El%IEt>`+uiW_ESS~46P8CKZo5`MIhR0ZZ zCuA+VfnAlwn70NuC8v$}ZGt=hdshpgO#R8V`^#_>DD4SZx)_n7&ewV?gK3(Up)q=F zTeK#3gNzyAM!O2QbIiWI@1?wiBL|D#Kuyo%jG4ZXaZ4yAWxw*@3p zVyw*FA|x!i+s<&4$TLTQV&(Vf?ZRX?>b@<^+)+SEO{*AigZmUzN$Nbrpqs)dk|nM+ zxf@Oo$*Q!|7fXqWk^DAylh#ube%5{5?Co6Q_+9Rnm^8Uw%)xj|*o_=6!6FfYP6Pu4 z!G&9Z5#z$hI8y6-9BTa~;;LHnYm>qhdD!@8agEb^GX1&WHgYVxi49IJ-0ZER=jVAp-|$)f$5UTC8mp(h z#F||NU!abKmK&`MmlHX^s?wWuJrI|zmuk~Fa}{d?xH*qZ{qavxnToMK$|OZ;z7tY` zn?>1MUo%=x)}+ttr4Jox)Qx4xtz$Pon#ZAZ_@r&77rp=o4YyP zaq_!6r*fm$(J5x*R;FRql(?_ad$<8|Q+vQozw36N&lXHY)ASTn3uWJ%)^Dm|0o@06 zmgwTWiB@(46NP-sZIX0SM)Mn+-OT2woa{9|2)MNTP=npokz=@#sLJl1EPpk)94~r zgV!aO+obCxssqDmhTR1JIwR7L?eAHrA*Tz7HJe!WlcgoR+F@K~PL_T}ZU}9z+Y7f% zwMhtxwr$|%4o^yZCFy=W%ZR?ER)9-^HUs~KtiT}do60n6KvNhV74Rn8Az*w$u2*MB zb6q^Qq$GCswt-vFQRz31s!jpi1nO$=Z_ffJl3#OV)oqgU%6@^}NQ-f^z&>sMpxGrX z6P2}hyJ~+oIJ#2X2h&ihXqobF2zwjayp6e=+Yf&K-ZjBRrF>Zdw~S)kEqHFHYb<3^ zCV}(zmG*5(7Nr}pTY#IcS3dOC9Un|r+$SX&D>&d^AFhGKWBqlmfdXECao0a`^K?UvL00ShVoHT265j;)7UIu9U-*D z>?Uft8|>?v-GrY5^0lEKcyJ>J3ql|dn%Tf@%TOA<(xE)a!A&Oim>Yc-^yj31c1ZS? zHbRmeD9YZ}s;>_L+v4WJf!mlB%Ke}sVfn9_&2NA=y2I*wArpnRy>7YTRfVK9cD=WL z7!G2$Qmug0iH%?zjti#ou7f_3dx_Z1UcQ=2x2e`o#x3Nmj5{}9%8Y8a9nph6;N-Ue z4`VkmmPV!m>}rh**m`d4oBN*km+EuGH7w2d-cC0;kG(2PRi^l2$Kc>*Ea}xc8j+Kn zN>!-)kHUb%!zG}i`!cF#lSJq+cr4tCeK)@c9b#fSyhep9%Sa=m_2lNOWrczv$*>f zZkc8d0XKKqPpN78_tBQ+w;(l<@?f|{M?ZtjBkb#rk9Q2VY8mYmHV$VlL6UN!zjhXN z26StyU3~zNw)1+BLxto-?y2KtW8W>*zy9ZE$lZ`P5fZYwawvihbSvr-6B9gaM5Hh<{lK%@RV+Pm%95huBL=yy=&^xrfc}d&QFP%1fGtq=j z#r@(c*w=TG31uKRH$twzbg!p}*dirx1`x!|)a)s2(9qZcZd<@JovIz8uq37maLWp6 zC)xF=zFy~`Mt-FfuX`^|FHE}Fn!6=c%;1C=(Zx4Gjp)Pe((~5^T-*^#CIC34uE&h% zMgFKGJOjd`wm@q)+*OF)ZJo*HhM@qNd}*ck0sU zq09~UxrO7pd!BXZ4D;|-;o|IDK-z*KlMe!mB!rM9a#T{;eKl@{jr9-?&wO>CN`en_Eiz=WZ_9sn-Z|XnP=#(KSF)FVX8Lh0%kZr28ap z;NtBO47V~1_&v}M?D^c`TX*>LYxI*Ho_XHuEdAG|!sA(QU8VI^001BWNklJ_sH30;3z2flJcE1s)Mk?kL<8&T!_#$HF;<5~HNF0o z#HYdf;Ac@GCW;W)4PgY*-ll8{?yO1DPVYMlDcDeQ6~1FQrczkn+vNEA{yo1ZKnfT9 z9*jV0!3OhdC1W+Lta2Wg->?@92&oN2R8ube{Ne2saPu?yD%yN0r=Uzs)n^6knJxN* zl`B)347Vh3wp@7p;q4skW+C@@RnZ2(2D^-^R&Bzrhib%I9&o$_?jgLR;NPo%4!D_D zqpJndr5cT#$QE)d&>O^>$6T@PHq`^O52=F{-<9s!eF_Gz3;Dy_S=jAUB$T65e|0m) zsOcf6Vk~9hsvJs*ePH8vJG(ylP$^Jt+5P?tr{{oMwIrqb@33K(L7YNz`AJIdE~P~0 z4BYQSjq?w|b)2!x@OqA-Fw6RTei?4HNrJO2R>(q~=N_tP(~1i2;DHu&#SZ)lDrX>{ z77R~!%HuDd9tF2>JF@a!KO|t2lCx=>lP?6QN|_y)M(j30^NrxItO3{Y_|2#;&xkkE z2>yRyH^InhqCqymmC80OD5UYXJIEuVORqQHc;^yaXSMXCyiAt4V zS6*%^5p{bsg(N=DZkC;tVzo&mb^l#q5G#-3|8jSwYib)oFq#3m(ZF)Q|Eq?%ub!S3 zXpJnAANdk*j73p>SFsF{?WgPUX7zQxDfa5uP;Rf+@#dE{hH09%m%v?f!7U<^%IKpL zWn}@%)<(n|PHrx#k6J^J{`UfJh`An+^)3X0>r%u0;x&l%=8IMr9=?P%gS0>4WngDj zE5wG`jYgYDT$^y^MS$E?7Fx@>?nu5~1UyxOSCuU?qu{k_EB%0K=L=pZ;B38C#oq^8 zhP4Q}?=GhOHoLL7O#wc+tR@Q$SVTvt#_Lq6IzZNSgUtQ7JcUq^J{fmyMnxo1>))SW zB&R`#zJ4iPJJwJOkULJ(v|V;1^R~(88mQn^2vDbN$z~f)Z{W%8^a>V7WTnt#hN_;) z7xbpa)XDPNPdOV0MhkxBu%1x27`LO>DxJhnwht&EW00 zF}x*H1-+3YsQyP70Wf-I(AXOXTE|WtPno$za{CfAtcoQ3fn^~tEnqxYPwqW`D9@_F-20ptrZGX~L-n1JG z#c${(K}9npUDNWkDn*+l zKcJ4*PpxixK zXOBY5hwK`7^8)|Fg5>sR?(4Rd>8TE;1lrsN$XGbj!6&&Jqwm(u-6G^Gc7r-s?DE^i z<0{M8g7o@=aMO!LxA}0}N;rMN?b6&Xbjxj!dI-;BH>iTC(RKbbcgwK_c>0!IX-%YT zjaeq&CEj1V=#ah;y9uF>5Ttnw+*qJ!EEwd7$;r0gFG`(#DZkLB>wcGrfxX;^Ex$xLUTc&>A`hF5>fnJ^a(aI)5YL+dk1bWdfPut3dQ=U%m9r&fNg! z2ZZd>d1qTHsQW)m_>&5U?Al@6w94##6RVD#M@ zFss-t;ndzf((rJhG`a8IFT`#lxqd+tGyVG00pfA9a2s?aeTLQ9LYR`lZZ#GZJ9h*4 zJa;Q4L`HvsNzAaT<_5aLU1e>3v`}|<)$^&6{cts_6JkGbm07-| zVyg61p}5h9c;l7Y@nvsB)%_R9_I>SE=lH_gK!wwDUM^&wVApqft-T^1cf%*f4{R20 z)A5Biz^)9~eK(ypsWH86h}M5Psx>qA;C~wCv^mQa#&x(l31qcNM5!(pBvqa6(?-aC zN5f4_twfF2_Gn$cv;cP;Hi|YKNyl113)t)i$Z@H@a`RtbY3dO^D@7JequqMJs!`}d& zR3V_BR1c*@FP1gdhCZEg;riGGi_Kj&qMsj3dktN33_4&PlTFqNuh02~Hr3i+W3gMp zJ@!c1TQLP%leoS75dU=`xfoOpL4yDPt8R^g-7@k}%7xl9j}A@LUv=l9A>rRKV;oM7tPA$}DbdmF=}xW($u zOl1>nx6fwoqT;tL2GdtjdN|lN**ISsri5D%l{8=*oQl$%pkNjSPGJD5eEZg#|J5d` zWH5DSV3R|0vsy@i`)Ql8k&>4rDyQY zL_SzZ%}qdD8iy1L9lYV5$ggt2eA4*wg4yhixm&W$d*#1h&J@18Fe$72ZF_LDWdc-F zgL&*$-WI1|>ya6f%}6n&9?*FylH)BOX*HZZ-S8CeV+@yccKQa~m@6MQj?qnyx6L)) z(XLmp98P?Rn+ikOWGi8Der6UfuF_Y=&)Cob8SuRGt&h5T5sBf*>wed#M z+ar^tajiE7yUkyn^rEQkZ)5p?+)h9hM;l7*MkTr5!SHwS)FzfaSxZ&spozB@yN#^V z)B9x?JY7k4dq0qt6sM)1B~AewRj83BaXZ+3>#>J6DwskNNX5eX%DPC6E5>nt1(+~C zcAz?r-PK-8Z$5Y9vfJB>y0?Hhq@t>CQa6G((*rSef+`%o@wHiE`N*Q}SDs3+<5Eer zP&I9u?B*At6d6vh7k3x4XS17p_vEDz8_y_CNIBim662pAo=(%rlAE7j0bso>o(-hl zEIW$-jEuKjRJ}*LMJ2kesr)mC-I7ZgV)bpf2g_o88O~yX~SVGMrv7Q5@RCZCIeU+l8D5ow4$0 z?~?!X0o8|6Kbx#&>$&vi=aSNYL&a|e)a;Z3*0Y&%a`#reDeM`BrlH%0ZsLMkN7{O9 z`l-=Yb$NUHyWSCg_NY{v)6!wa{-tnegH9}M2h(`8LtNEgA6>Y88*PcE<(i_Zd|d8m zz>qC+o5gMbVNO1$P7s4rp*ni|b=Ckv#+Dn5Zv@kf-H1uOnJkcS6W=Qn)_lG&+;LxA zb9Um%?ErX>x8bH%u$vmoRu*FrrH@E|j3mhE$JjSJ)D4}g^rT8a&4wF9+vtfJoJNny z{T2B$9KVdVHJ&<)>*ah$$kxO!DQt(gC=|*I`mQpn3Ypt~{|N@zj$V4kECe_`EGz1e zC4W^?V#ZgcFZg@x<}4m$vsl=X`fg$cXj|bm;42A1t%hAFb(vceZXAyoPi{6gbv?Pg z0EqT0N+r3Xj0oXA_;XUV1QHW&W5#aYIJ$v1=@lFd>grPK`=NA=;Z#@jm`{hC+(6+F zTD*;emlxq@fg0M!u;oad*cGyZQ;rwV-WXyS>_7jM#h5$n9;ksc0SAEfa#P zJs`4x32u}+Rr86-gwip^6O=Og40eNzREaUjaCY0{bts)yQ75d zpe=~(Y@A@Xtgq%v)aiJ1ZVO}o2kG3c{8!l<&$Diwyde*8W#qOFQF60yPsP%o7)#+p zyz$^R9n~DT`4ZGL;f~(Q7yoJiyvc3_-11GR>t%mgd*-&1QI;?ZfCft3-!D$hEfG0UI4qXBap87Up@qSPn>X!H zBQjuJh~3(}e7(x5!d@S_t$^Na5#NrbLlR5j~8Eb zp8KBJk~apG!~aLPMb#Uk8v#Wp7SsHiaJw{`b`QDDK$yv zYVMZxFn4oPI^13oZNT;Ds-D}nr$r#QRbQ6-h6M-UMxY3_(}5`E$I8;=oy(h zIGx*v+jaETf6G1lbS&-lxgVI%ABCG~qtJGFXJGyksWqbtfZ)0y`Qj1=Se)ceSdhGR z^Vf^Q?ZRlPZgP=WI=NW78X_=>^#OL{WVop|!Q#g*{4Xb5R?8dY7ramjQ&fD~|2QNbi%G-@xU82`#(80K`}(@-WI?N2q!0cEkh-ldgF47= z!rdy6G-bdYy%5|Ns1L!z9K<*ZH+DFdD%%obCh*E|yDFM$X)-i*yG7d|$SpnP@Q+-J z_mhzc5pMP#x_xu+I#3`Zh20e?BUzAeBX6RjDM8z0{`w2I*l_+6U3Hr#B@6;?{(^aU z(S*Ust%-Zt`!$F&6(`pftJrrlKvqv)Cjj&qg{t$^BF?dAaHC2*6AZX;^=+Pg|Y4;46z!i|>{ z3$%q^?{#=#RYA^fi8E+8#F^(nbT+#w`KH_usGtABEf!0a?JJhLEk3((5ofo;BDK&| zp%42+y%JE>sa(=Xp8Bc^*o{##fme^Em%vTN(v9AJNR`66+g#*_@rD~?(4wlA>{UIv z$bN1Cy%n$<#qH+R3x#bdHaT5cbBi?8Zx)Z>l-}RBK!Q>7mncHR2*)@T!W~ zO?D0YW(Qch6HSVaB_I`w?Hx$WuqiG5z(6%#nQq}4rK;;l<7(ER)ptPDH<_6&QZ*{nJk3U*1 z8@q}Tklp+-PdU3mtu^hzcGkP;0pK{kfOP!QnK8=9cWNM(Zs##|H+sK+KDEtox>EQ6 zsoQOJ4XzW|P3y-@&xKL%KXw{$mW732hw&C4b%{LOh8AM!w$R&GPu-N)2_iQR;l|Np zy8?Fen{Ow+Ys+wU74mqWH?_-~gdZR919;O=dT(b^Z=;t9q{>CEY#~mSOfcflA@VGjJ;s9`CP#nsQ*DEd3WrF9;Fd6{v$@YaPhg)16 zQx*$r+J>Z!LZLd`I-9yt;daB}#xPk9T<&f8KNC3QoF4lSq^}BPFkMnsx@{B+)#3L2 zhXl7ZU^g_F@&me-#&~-^+l+3QJi|almoRm_5Z$0-25x=JnOk+ZJ!~wc$%B|7R^pR? z`1Dk(=_;4VeIM<~p08_&I0r33BDZvR5$*G~LTGu8BOCyV*{NXXgQbWFu&+3^$OvQQ>w&f+^!19?u;~%9%>xPAwQ*eQJ9c1ajjD zyYW4{b)K>1U$|vbxA6>iW9}}6mGc|0!JVfw5!VAvLP72i@^tQ|zg7=!gZs7>wEe=Z z=1}2#B(d89*=^l#W_yX7;e=u(d|UNN&zG%eI5B}UK9xY0E(wKWH*MgTj9!f2sdTni|A&$AYYYzCfzy+dO|;w zayRB@Z>%Vq^4P;wqXq@JXT$1Xs#C^+bk;NMCgdg7&~A&jKHUCL;5N#lNOMP~lZ*?H zX32S~;<)21r@g{m*k;E%gYGrO+k-8ktt#BQha)#!AcV?pENJx>(A!=&9PBfxTGc@A zDBh%7!_#?Sv-%G_Fj+YMtk*a~4Kq{f>gdUg@tJmyTy~4D7}?lKmm>2ol=6(BzLrU_wj>>Lp1a1h}cu|MfYTbaH4etLo9alHVl}upz57P@#c-w;w{DVz(74q-# z&6UPtX-#&6eUMVPiG(V*XH4Kd((IE2)*EK2EapdKGdW3eCBs!&EbLxx@H$vxz~!)J zWDvV(yQL{|tIKZo#58BV7G*aaZyYU9H{v~k|cRtS=Ja?E&5X!=d6^EXFsb>Zd?6;QbK0o-io?KE~%u0>vo zByz)izfL78m?z-|%bPUb1gc&=G>5jY%euTsn|DaT?Wh20`tUw$na1o57;{o3Ms5q^wEXtCJ+tgqvt?Os%!wot7 z>t`QsR+fenL=b3j^UgPOm&b5363`n(;@84WgmDyvQXVNv@qO_o6Su42HfG>9c!FE@ z8p{@Q&%+JQBU%2?9eBmNNK8^NkFpyN=e?l~sxY{g1@Q1D+;$P%#xbK2@)5%A=3UO6 z0ync@IqBlq{cL?RNbzUP$Jh-=n{Bwo>9bw5RfpTC;WnaUg$UeM7f$&Za8t@hv(|3L^{_be z*iCI^(%{xd*^Oa%vvGb|QkPe)qU}q?(%}-gA${IHXuN5-?Ru_<;bxQs)iG#JXL8T1 zs#Tna+a^tOgx!=b)4QSVYtn1Z)!{axa2w)q^W^!Sgqs%G>VNS@INyTIYWpaJ+)ctQ zl?evld5N3U$Qj@KO@ux#V)yQg-7_Un63MT;4fjPGM8?@o_&-eKw1S&k-}Mg_>cZ_u zmkPS`R?-Ra>5Yrh{a%oS?O3VTcyotOyOr7vWLuUcm~&;O4HcGviFf6wJ)32kG56+h zR_kkMn%pWI(QoUO3T=wt3O3%JN#1~ib#z8$000}!NklgVMvs($=_ND0!9(|TdyD&F-+8*f;?^!I?uP*{O zgK%?oPud5WRaXxT$^v%tb_KSV)}fa+O_N)7xQ(g_GOF4X@z3pat+2-Ft;pw(gE=R1 zXX5Ovc=O&%s4W~$Bzy$J^Q?{c-r)O6-nc^|~UP4nCK-2=Oh3E^hfLRh&@ zn%h{!u961`xF81lD{tFhb2n&1K({q{19tQ2&D-|0$zVTyyw#}mO1OQFHk=}6^bxqN zt~eEicr!T{%Ul?A##27X6V2L^;CgxvBWaJdL4=#>N7xOt@?^_xoi9;I_7#^_L-`O*_Zf9!zi< z;|;G8UA$h(1OH;Jd9ZD5w~OKS(`7nuYXokbmGybKd7wI6#i`Bjc1b?jIBpSUfDdIX zY5&`lk%tMUv2}EpRc@bzA(gVd0n}697rb_GJky^uwB4z>NaK^N8Jv=Y6ahiZ4K$Is7PQe zKT+?Kk?i-8Pa0>6*9Hg40m}ikD^_Nb%b8vij~-mT57;hXHwd>8Pu>ET$=D=|nz`u{ zy8G!(Z47SGW74UiGGvEbhWY5??)*Mry8v!Vlg7Yp%p`9hnyx#Kg%Z5kDZuIPc0fk} zivS`v0=X)T4zGskz0h_6+#YIi+_KwbFtsmB~*{;XMx0%fG zawL%d`&MX^a2x8vP2Vb*+zm_KpzPM_+5d6I$jx4RJw;OVIPaax%uR5XWjA%aJV&_g z&Cs^Nt*^>%&J&B!dHWddvD$R?R%-ua?^?7S#c?3m;C3*1ToV5OS0~_?41UN!aQaTC zcjwI6o}FPXm6BAFN;y4x5KYM`+=d)n@zyYZdprIc;5I8Et;yf!Rr+YhalH6j3-)AR zhJPv$dArZU?J5u()3PV#J9hQU@-_*#lhG#k=wWdhTc!8RSgtOzWw6_H;Oeww6}g|U zTCi&ogmk|SZ3W;~zgqoK@$~*vp=#5>ZF*$K)c7>?`pts(d+grhtO65-Hi4*Qe6f`N zLUMbPR%T>m>Mj5WNiW;V)Sh+Pn*0^{=Z+3&HK@?vh*6-s=cac>AW(4vA-6 z2L-FcB6MBqFx{6bv|-d5x%04+qkbj1oxO-P%#9_S4(QdA5gxHW3to z@$thFIJ2LCQU{%G2Q`0-KmXu%2;3g6QF+tL%~kE2={22tzUj2P@ODqhA%ZtGLvEfO z*8uZg*JJ3vliY^kbhwe1<~1{f6q^dE>T8VNa^Pk+`ewXsy!V}^w*D#>a7#QFnD|sr zMEYL|w?75o_Pi^McDC@Q z`U(!*V$rnnN^drM%Ud*M;HnjR;UKFdm5ow&93>G;ZywR@x5DjodXs&HwnZJsa)vC& zutN>bB1AwZq?`?x%s|S#3(+E6Df}Nqw?c5!wF2;Yiz&So?Y+@77jDbzrAmW4Fr-Rq ziwqn2&rScI;8vhCtzLIqCLn6ls=Eg9hSYhj<%eL71&jpTUc^yCr+FjUCFSWUcK69V z9jtHzYf!)b)e7j(yp5&D-7wMgT`UC31(q32*~*>L0Iu6A{ZdkQq&CbZH|E3g2VcW& z-NEYD62kQ9&9C|M4{q4xO)q09#NA)9TDHGN!s&LKUVBJQ$|Bn+ZbDlpy_2{#2n@oF zFCS$pOjkXHVTCrcm}5TEQrL{UzlrP$z)hWOhHz_>^cJj6(VClMW5hW;3$Asztqpl? z)Me4OfSd5FGjn6xwc1);!fnu4BQSuQEwTPDqPm`*4L9-vhhtQuK2a=OFG0Lz!Of&? z!otnya5r~@6gm2#{T=K^s|bs293IV8D?1pty&sEE?~5XU?fwSPeSAD3mb}>l^;K=4 zw>RDx=Xq9d@TL~HAR~1VmBvxkY7c#1D*KA(jpub88l+t_HD#PfJR5&YxTymWf#rYV zMA$FS>Ix}uP18DhNNmV5oW0q>UV&eh(UwNOjV^7WA6OyO(k!}$8v^STnh36WKTB`1pJyG?-m=S6Cwp4giLzFdpzFd@Dpz%wl7oPJB)j$N zLSf4?Yby zn(8VHL*H#mddT+`5$9)bwLGuj(py{$304c2G2g^N=Wa{1Sr@kVAA{^h^iCi5Uo*;w z8(Dq32G6M2rngj^BH~+O>*=fX6|oBo+PtA@qx3dS|NA=&nc)=PvtLu20FVf>+XOex z*4ON}!A*F&3cfDZu*+bBevv{qbZ7IMJTz(WCVlU>(p$Dm4F?f*xzS)6=i=7IhQsah z17l3=gPUjT&)1_L@HU2F#C-wgPB*5}hW9P7LQ3o`1nF&I!X+?JW0u|c!XHLx6)pug z#x_~{%5N)+lk0KWk>B?qvr)O{V^WL^@I89g!PB#U_cCnjp?JqPFvXkK;&6QJ1&M!`X9uB=p5iZ)vn#8V4n%~l}gC_H< z0Sy4RaAi8djlqAI$d%n3BlD$$>*U%>f-^`{&2UJrO-upt`?a_Fb#Gm`C5zK)4yWT@ zImEq4#XUzTWl)X4jY_!X&!hO^wi*fPyi*|yRRk;hb{(OS-|R{_=$|k3K3%xA>8aki zbvj1lDeCpd*v(zX3qFWqx1-?Z^_?S;J$gNlL{O14_E*umM1OxMF+$$D<}@ve-o`Pk zzhU103T!-JRGx+#^!?faw~&czbb@>sd|4bNWJzVDt0{^D&#YLBjF7u{Q}#4<^qV^2 z?Gnx3@Oblq&E)^lu0qx8fg^Q(Zk+On5MtrRa;nlW-2CTa(oWEWRp@EAYvDqZ;wgc(zz~uny){M) ziMAHv)q;$tDZD|Ht?(uo8gAOWNU#Io7Wik8^a+na5Bk2t=rIdr^z*q~f#v3T$g*wQ zrP%vG;O!ENr-ZNpq`w-kEUCZkgxeU*6ERlz5^@K&A<2j5gA2sccQk#$ zSZaC;(Yd#f;Tymku7TxeH!y`1oe0rzW5=-DyZpJ;;Us=Q0PYiwA@ZryZ$n4Vhnwjv zG-_W#T{w-?8|icL=A1+3oF^(%b>(H!-AJT~wELA>$7ENdN( zxWifQ{2smP(>EY%(_+Z$r%Hs=OB`>D!=cU#cLtBRd-0n=RLIV`Uqmo)6D-kH@Us~M za8s4`7^#Ej0TIOOHi$d=MbU%X55tM~2Aruk#cJlVN1N)@&tk7g;%)WD)hY_(W<$Zl zZuU;Mf?F4y77#!<$qk;)Z)ss?ymj#b1>DR249Qj9u{TxEp9z`1H2T^kfLogsLueOI z-!$I%8boRv#{8ybH`m8pAKLYsImknPD0T~iO&z>^qs=^Z{G<)ZxHG9G;LbAE z#nmEsQ}@`^vZ)*-Zxe?-DoWzjsU7g;OUDKkDA|(TxKkxC5KWcB;C!YnW@Lrn!x;?P zutlQrMkBgE{!JUm9ht-t8(05EyiG3Tja^nS`rG|Ut5kC#&TpeJ?p++@1}ia~c>o75 z1j-#ik6FS^FP4gw{jPtyd>KeB-coNoqnkb$$ORUni^_6C5xhNYKcQ)@EmAz3&Z|(D z1iy{ksR9hb)^#a}txO0qBiy^@eTX;Q3S&aKI=xP3r zxAYMon){vyTRj{o=GVJxhoO+QVAGlnXEXU0s!l1GMY`Ysx4NXuI5^7SH0`olF6O4aDn_F=i9fZ8h;oK*(b+C=V^ z3a4qjtwuyN2&@{yy|ES2AX|!d3l|U(!J8j$5wu+{;)ZwyQhUuN7E?VONh)*);)>9l zaSLgHIdoEdBV96m(~<~O@O9IG!R~@5rg~ZdzM~*c<-0@~_Ov|Z^RY{{C6t+E#%6RCf-l>2d)VPl4)-V7HZYW}S3R9ig`xX6}pO&G9)OQ_s2)ZR)2{Z!8eq zNs`S^Kpeo~o}@rDB|mo?L(QSn8FI<=twP3AAKpA|Q?VA&pe}6bPZ%{=@Tl-+XFAhh z%g@`q?aYlz|6n1v->ey{jg;8Qs$X{x+}hd2;W)f4Q#j_MH$*08j@oOuiMY^f<7nzR z<$?^^_p)iXgX1jA(UTC@7a8l-C26xTMtVGH^2dwB+k)X7>r_Wc!@x~IB4lx5!_=d5 zm7pXLa=?4u(L5iVCM*3g@`n;zGRCXd-OWOj3mN?887&8Eshp*|piYs2;z|#~5`du83kSxnl z#xVtgu1OI}16Gtc-MZb0@nSF0~_DBb|#qSrQJ**}<`V@^Tg z&)G1~bnOrAA0Bt0(#&Y?>8XYRS7M=FE&lD(O1stM0O>LjXf@);%-a7~aYKsIJBEcrn z7W>&e>ymI=4QXb>j?$nVXCb)Nv-qaB09{|C#}7f_ZSXFk^4FVLxlV%^iie96`k3 zZS>1<9CO^8Ghcm>g|+u1K%aZ!{TjaVwUEyqv$x|*T^`;%*CI;6t@^p!8w-xBE0mHCC2zq71YQZAMk>BT2$_FS^O@5| zJM}txFOJ{pKDD5g*rMU?&v(3?P$oOX)L!n{D#CE*%nX@;*g+&I@`#%AWa3*1lrzw|MPKVo=Jpma%Q8}0oC)r7*k{!98)k|lw;~8tqzSY=Py;dH zI{i=K&wM5te7`~BOJ(iffXuDI;*B~>LT`e* zeJR12J_7l#y>o4HR0YCtkfu&mHW}2I|NmEy+`*uNq9IB5eAwODnW~xiQS`a*I#6{lzm6wrjqo^aT6=I=;iIawdV9+ zj5n6bo2tRp#oIF>MGz(YKw zsyBr{E65O1VAHgT`fiEAobvK!Z?tr`pY|IyvJ!1m=>m^t3SL1ZkvFyG@&4u{Rb&V> zF^&*ZG3}$s8=qba7vF>?HJr# z4Bz_5FVc{p3%`b)9s$18W^!>zJU0b%AdprMoa&AyMJYOLE0UB3t@^$sZSzq}6GC@0 zjd}6$UvEd^t~CX1ez(453-Oy!xuMH?E(*94ed;rzIqHXPT+P7@UCGz6TzVP=ZZpi0 z$;eS)@zKjlj3|AZwS3;>X@rVygWkz@u( za$f-=Zcsa%IKkSqgFqJ@DK|x)u5>l3O#Ig0u3wJZWkKI`9hg7zpN@8_$Fr6!y+pLF z#2e@c+GKO3NE0A!HE$%UBZPb$Zx8`aZh#~CFaLpggY=@d{j@op0xF~Ita`L`~y}Pr?=0l=BqBmPEGS@yfMLbkq z^7FSBxu--;v6fjZZ@Qtir+|3roU}}W+Sf32dnRw3t>6Y51x|Ni406wntld?#mOtP? z9s}2R&dGy6he`n5cr9O^v{Cx$z{TUY$wAcivH99W(`x?v`}Z%4IYrvv)~*cg)K(NV zD$j?bv$tkL!#-cyJ{~uQ}Qf9wwdZSxLQa&!SD%T;-a9<;yk9Vwua&no3Yt zif}T7>*{s@M3vf@yGyg}PJG|ei@iQbjs`6)F}nP)#Rq%?)<7#<&Agdzyt__w=uZD3 z=yh_|pf?j~I$j`6(_DVr)F3}&EBaP7aKv|`?D*pDtWTvbLe&B4^>*ERBhk0<)~

e6Tup!IdSP?+^QF_8qh}4m=Ec}8XOKc1=R<8VT$mtaAJIMrH?(Da7@n~5Y181oL9H>0?abn&;6l-=a+>16VlQy&@ zQ)AcbsJXw0c4|kC7dfI?vzL2qx=#+RI^cK;ZD7~tYmMuUozWJo@yRtL-XzNiTZ7N; z18sb;ZCd>e{M6yd%)!Z8TzJo%H9|Y!=`Np zb0!cQAsaMiA*@U88+M(!MyuDQLTC(9vj!_FrVnP&IW%&w-)Whq=7lzfjrzG3g1LAnY&IJ7%WGKy#8Z|XnQ2i z0mqi)ZT-M%@TUU}CVkMEd%JYbJHm#~iP^z>!bo;@=ycFz!6MM%TCt5wk4MVuc#%Iq@X`bq!4x z?m&Q!@sR$lDM>E9{cQR_)R9$T3+mJ8B)BQsZl5`zGVM7Zw&dv>a zg2lqWPX^*l)x`EteO9>{lta|eW~}o@)h2Fo`S4(nhH^U{hoqscS4aeN7CKj{wGGio zZ{7#3)FB77AA-&s%H=AA<8j8!;HBbBBn9~Lp=}B18e$F|s9D_+zBaI75R8eTaxvYD w$tPMd>=b#S>CYo(XlQ6?XlQ6?XlVKNKXBl%J7?Rz$N&HU07*qoM6N<$f`kMjUjP6A literal 0 HcmV?d00001 From a3944af72331335f559a3aad442f7d1d6ce11efd Mon Sep 17 00:00:00 2001 From: Florian Nowarre Date: Mon, 2 Feb 2026 08:39:52 +0100 Subject: [PATCH 11/13] chore: adding aws opt-in-region --- .../aws/opt-in-region/buildingblock/logo.png | Bin 14867 -> 6893 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modules/aws/opt-in-region/buildingblock/logo.png b/modules/aws/opt-in-region/buildingblock/logo.png index 5551c545cd40afe5dfb3f9d1717974d6b6863191..b52ec8cbe1a2812cf91bf50dbb31b95248cfafdd 100644 GIT binary patch literal 6893 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 Date: Mon, 2 Feb 2026 09:08:50 +0100 Subject: [PATCH 12/13] chore: adding gcp busget alert logo --- .github/scripts/generate-icon-prompts.py | 36 +++++++++--------- .../gcp/budget-alert/buildingblock/logo.png | Bin 38131 -> 5120 bytes 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/scripts/generate-icon-prompts.py b/.github/scripts/generate-icon-prompts.py index d2355c6c..515aa296 100644 --- a/.github/scripts/generate-icon-prompts.py +++ b/.github/scripts/generate-icon-prompts.py @@ -78,15 +78,15 @@ def parse_readme_frontmatter(readme_path): """Extract YAML frontmatter from README.md""" with open(readme_path, 'r', encoding='utf-8') as f: content = f.read() - + if not content.startswith('---'): return None - + # Extract frontmatter between --- delimiters parts = content.split('---', 2) if len(parts) < 3: return None - + try: frontmatter = yaml.safe_load(parts[1]) return frontmatter @@ -105,16 +105,16 @@ def get_platform_from_frontmatter(frontmatter): def generate_icon_prompt(name, platform, description): """Generate an AI image generation prompt for an icon""" platform_colors = PLATFORM_COLORS.get(platform) - + if not platform_colors: # Fallback to generic bright colors color_scheme = "bright, vibrant colors" else: color_scheme = platform_colors["name"] - + # Clean up description clean_description = description.strip().replace('\n', ' ') - + # Generate AI prompt ai_prompt = f"""Create a professional flat design icon for the meshcloud Building Block ecosystem. @@ -138,7 +138,7 @@ def generate_icon_prompt(name, platform, description): Style: Enterprise professional, instantly recognizable at small sizes, similar to app icons or logos. Dimensions: 800x800 pixels""" - + # Generate post-processing instructions post_processing = """**Step 1: Remove white background with GIMP (free)** @@ -162,7 +162,7 @@ def generate_icon_prompt(name, platform, description): - This reduces file size by 60-80% while maintaining quality **Target specs:** 800x800px PNG with transparent background, under 100KB""" - + return { 'ai_prompt': ai_prompt, 'post_processing': post_processing @@ -171,23 +171,23 @@ def generate_icon_prompt(name, platform, description): def find_missing_logos(modules_dir): """Find all buildingblock directories missing logo.png""" missing = [] - + for root, dirs, files in os.walk(modules_dir): if 'buildingblock' in root: buildingblock_path = Path(root) readme_path = buildingblock_path / 'README.md' logo_path = buildingblock_path / 'logo.png' - + if readme_path.exists() and not logo_path.exists(): frontmatter = parse_readme_frontmatter(readme_path) if frontmatter: platform = get_platform_from_frontmatter(frontmatter) name = frontmatter.get('name', 'Unknown') description = frontmatter.get('description', '') - + # Get relative path from modules directory rel_path = buildingblock_path.relative_to(modules_dir) - + missing.append({ 'path': str(rel_path), 'name': name, @@ -196,21 +196,21 @@ def find_missing_logos(modules_dir): 'readme_path': str(readme_path), 'logo_path': str(logo_path) }) - + return missing def main(): # Get modules directory repo_root = Path(__file__).parent.parent.parent modules_dir = repo_root / 'modules' - + if not modules_dir.exists(): print(f"ERROR: Modules directory not found: {modules_dir}", file=sys.stderr) sys.exit(1) - + # Find missing logos missing_logos = find_missing_logos(modules_dir) - + # Generate prompts for each missing logo results = [] for item in missing_logos: @@ -219,7 +219,7 @@ def main(): item['platform'] or 'generic', item['description'] ) - + results.append({ 'name': item['name'], 'platform': item['platform'], @@ -228,7 +228,7 @@ def main(): 'ai_prompt': prompt_data['ai_prompt'], 'post_processing': prompt_data['post_processing'] }) - + # Output as JSON for GitHub Action to consume print(json.dumps(results, indent=2)) diff --git a/modules/gcp/budget-alert/buildingblock/logo.png b/modules/gcp/budget-alert/buildingblock/logo.png index daa3961f2bb586d7cee2b69403789416b1c32f31..5378f253a1ad7aba0f18c1bf95116c396a6a9a1f 100644 GIT binary patch literal 5120 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 T@_c{ya|5V8)j*XizVZJbt37%J literal 38131 zcmdSAg;!invo|_}4nDXB1`F=)gS!L??iPYO!QFxrENF1Igy2r_AR!47T!Om{G7OjJ zJ@0qUyUzXYA8_|ty}G)(eqCK%z1FVXyE;xwLlFm)0uulL;3zA}X#)VjXA%eip*>e7 z9+h^_4NC`ESuJH*S%{X0tDS?BEdaor>YUP~ieyPPOf#3JU99vG+XWK|s~z*xcWm|) zVfL!X=*vsd_j8gb^~D^;pUN0Z+ga|Bk+PzTGQUEY-@J8ZLyA$Uhh4I^+^_FEo}YD{ z!Y%;L(ixtE=tTz2-@QDvjZDT>5KMmf3N)e{dO6>=;?wA`dIAn>R{QDij~f>R&X(Ox zgN?;j19G~Tl8;>w*R5UkU3NSNG`hT7QBT1!YNGLN>;}Gfx^7cDmmT(! z`H&vk6H8P9O}G-(n83b2A!#Dcjdw(wWMu}g=g)_#0VP@t405tYOBu$3VIteBr%8jL zmto#+PU#`UqL}KQd92Do+Di&nYkp>DM-kR7viVa5Fy}~6#zan;hGeNsv3-J0J zE$9cjLJOT>*H^!0GSvKKUzae>iOvdrNZsn<1R!XOd`^W=iASpP0juci#rGK8N7kt` z@Nn$sHP5s)P_|Q72e3ZVAOI?m0D$~2hdjFlNC80o7YzWY04e{Q)&?^FTLuXLh;aa* z{9DH8x&G%#c`pAr^}lN5v}geObBo})L>3|aA88<<2>E~L=RSb6j;ylsbFE|TVQcH+ z`Nq{N1iK0P%)oF{GV}xhNErVqKxJ))GXMZ--a*&E%RpUC)Y{dV)6&M(%9hj5+3i^x z01)>ReI}i4y(}Sq&Q30#qJ9!||B?`WrvG7c(Lw$t;^inoXP~YHk#+U3g$QzTb8^#3 zVnQGgaSt0iQEfSef5V?!5_E68yxc^&xO{zmIeqy!T|Ml%ctk`*xVU+_czHRVB{)3a zxp-OnakzNW|JNY@XB;_OPiqecH!lZQ7sx;3T3We!dr8pI{iEo=pZ}Vtt)IjHXmauV zw^`2ya{bf8#ly+X^?!qTIoSPw!2ap^FWA5A`Y(0j{|qLo<=|)QWFY6@{Jhl9QoC2LPY|WjSeGKj2Xi zdZ_NNYuIA`;^OKeQm4}=7+p9hJQP!KD4OF{i9%vIxd6}ikof(V!4AXxgo%uq3s{03 zKT_$s2YQq3lIth6t4ijUV=^wW&rdHfFq%J(a;pY)%qBoq(Asyg2?~B z77YE2E){S#8-R%dUwnAUP+9?%FXU4K`2X~RrNmtG$Gi2`Xf=c$a%rbqoP9flcYnZL|r(0y!)X0)&;dMulez6ml~EIrS@4ogwagEuS( zqykt8LJQcujf<6B?rCb%dMkM+_qNq3a|!3L)N*TN)9kAT1DlDA)em{P;?O-#3=D6B z`8$)EV#)hUei^#TI{d17qUrMpf{z~O?zUxm@*Kwgo7nryDHt2FZC{?fJGU2e1s?dXl8EDmIthVGKQ*2ok5=FB$b2XMl zj9?jxP}ZWzs7NG&@QN;7amEqGp*hGDUxo6|Z&@l=KOG1%(;f47#R@VzjyFdlP>SAb zYPtEDfo|QF@4Gw8;4S*42Ro!?=j$4&LtYqhswmo};lQq+r1 ztc$WUq281q=sgT+%Okue{S_fgsfC0CJXY+qaoy{-v8ibf4O!vlPnbSPWH@1P2Beiw zsEnZ}+^P}|31(AkZnr5!@NMZT)7!5Us~srwt`5|r$EL3cI=oYZ9d-y1QxB@4fbjGTVXP)lM@8Q?zm!)UucuFfvI|OOCs$!3qrfu(JOg5{h)1Arn zN4XxB8CgUeF4mXdkS`0>P7sDo;{e~_jy=jBB<+=8HO$pZ@DJW4Q)PzJAl>P6rl)+7 zWVQ3%2_w84Jir^j`Kh{-+P{|eBi2k?Uyo^D8TW1{v56N&F4Pi)&9fI@XG{p7V>g$( z`kT^CO6{qz#ax{5ncGmXqJn~onp%RKqT=CsIpMcU^{2nx z`y&0P$DyJ6uU**LGQwkm83bJ6nlii|p>XaS?+rWJCrQW?@x@unL+MX)uGB;v&woLuxFUmm@y`6$*C)scyjba=+z8 zhxR+cV3tiHYsde`fe*|Pr9hu61)n>6{03U1*`pZyEx^TjE#an^xtu1ts&j14x}+wH)&8T#Atfb zy1a31S3HrB(mv_pAKuNXzigTy1ei0FFbA*q0T(;GYv|x3G$HJ+y^mk1q=Mlna$}2Q z-7gZBWIX9*)V>7|MSkXDqsk*%)23wpq4R>9%S`rHSXzWDC7)e_TCSkFLIN3W1RBl{ z{f|N-au46eq_6u(tpp_lQVW&E?|fIHBdI2_GHmG_0zOLnPnJ}48HiheXvg+MNr7^c z_z-D}h&E0E?7c;S!%NE1JTE{VhkP)bF z@Y6T49Lbk54w|arqj9-;19+yHfLpp?fpF=sPK$JMw;62uHbiK=Sml;lkgdpvl~%KjhD+ zmy?BFi22k`X7k9tRLd?Ze7HWWKw(k>d8r&dp3{X`ziZzPfk{@Gc7T;W#)}8Z!BCfo z&Of=z{<@^Pm!oR8k9CC0x#Q9>*4H|@+uEx#|Hh)fi;bjSu1S5n5nPV9)v`}mW!$2+ z{P0^@sc?gU0JZ*D78EGb+c0(Nf?A?H{gzTZtzbQ6Z4IA`e9Ux$dS(X{%C)I8Y2N8m z$8P*pjfB&L`FT^#mEniMo#}#PWg~Rwb=d|wO)_6K01024VW<6>A}OS*iZxFjz`t&B z!SHNjprg}fjDo}AgxzaibLzad<3u_94r$nwf=5H=>(9%(&IqvOdeT(s5!9E7{;G3j z@5hN1LN!geJJY1J(Ehr(B9AS}j3xG0va>b!@9Bbg4~M>G-lMjQZ}zFLy9iuHO>S=o zzir`$wS+VrDRpZHqdSJYGT2lW4RI7Il32GWQ*_CvqFw7?{i^y7rGp9xfyCYZ+|6P) zq-*H9h-WwL(A`jd?8J|w$;iEp$!E9F3FgKrv2xNF`o9c0S3wUe4Hi?4P^NM`bXGez_5TJ=A#bVA$Qb4f} z-Y#!?7!@F^VDob~n+6=W@CMvCKKZ5gy6obL1V5;+4`Dwrs+Loc zK&_Qr5U((fGgzB^1NE%z@?w^Qege4@AN@}qaPzNRf-g6=aYm9%meIq{JgnB_i+VMiaF7KWKJMXChXPSLhK_Qi54v?s+uh$>+o?PeUhf0lYxX_) zeyPGJ0O;MuU~lGlh{W4=xIx)SE55bb<>T@P1!1t$=aAe;bDw;M zrfQCVKQ6uaQ+8w?lI~qYvCXx0nu=ufu;L9xq~iqtea+Ery{IhNg_M=#HHNoN91D_d z+xu&a0tq-eg`L6=W`jzqm}N zvPHq8YsSrJ<*XM>3?re&okhvU>DJ$wtWmolL!D*Emty<@Tvv6zflY|RI|h*6j)1m_ z7H15MbUZA7#CBvjqS+sxL{7Q=-k);i^$0)YhxZ#0Py)^T{zumK#ROLt-<0rHWDtaz z7;waY1~e0>Tuu+U6rjV1EfcEhLaPA1&KowOj%S>_+OeM^oem4qx5U88-QAOnLyUK) z-R_7n^5aH9Cv9@azU>1A)`AbJcXICZE>`elZ2VBN(a@}dZz^1wh6|HtqI+d9g&mdV zQ;;+$f!wj0fRjJ1nr40*sP7J{Ds1M;)qm9JbF~a*Wn@WT`NU!^ch)XoqDvfhZSW$N z`+41L%CE+hGjB`Zkojy3)4sKS?PY~M;Msq>=+|v1W@1ANR(Hs+udYl@3&&hMACrFf zIF`J8Y2$nnTC>s^pq5(YCngNX(WR*w^XhTn1XhMo> z-!g_GIynZQTrwc@yj#G_UUKG#sl`hy)*U8SJ=K>~7>$Q_E6k`=(H!fU%J?3q%L}*^ zpVkJ2_rvG3iGBhyP6Ul^o*qv_Ce{!)LNCZt3;n%8m4Qy;@{bgI`#8MUo3kD-!6AF( zi)o8e^2OHlO(5~=37x|EeL+u`RZV~00CVh%OQ)pIvtn~!7>9-xl^IKsmT(tzF^9VI zAOy4cx*X!#Cb}SEMx@lJrt0yT*mqBlu!&##<{Xa?u=zv(BN{I6I>o-%-{HQN4%5;7 z71H=pD0Ae3pa!Sp$TC`OKKyNdB$UvvK&CaI0OUm(k|uIe|H2;wLZ!~S_{j?E{tI%tqQ_tX%mjzFlWUw7k8j&b`|~4I^vCs0H}p!-rAd-Urhb=VhNi&b%(mZG=3SFL-)R78G&feFSUG>1Y?zEo*Di z&#D?LuC8Nigg_!7pyhbEg??>o&m~tmvR+^vAr(dn8fHPtl67zB#EFx8sYxW_rSh8t zKPCLiAA<_<8x=h+rnmd%??FYB%W$k+#fc`XR`K@Y*SsZ<^hkl!*C1U#o9iS|MnK`} z&Q+iXoa|V4WeFk`;lz9)bu}Z~?0@|hr+tU#{(LK)t_;bgYjn@xZeV^oT|`JT&0Pn* z#xnVLfYGWRzy8p!#~yt6q3L+dUDxb(f^JO8sJI~VOe?uh7m}4Xr{5E_#jUIypJq#m z*=QrnK>JcR9?G3<4<;pLq6xnJq`>~8Xe?F+jg{Qb3qk0WDh5vSzSh2&W}+RZNvkxR zZCn`4<*R&^w|-l_Mj5nLTtUKfMi5D;X&Jl~@P_K`gT3_27_qi(J%ghs)M7Uj;c4wP zrI(mx{-eVhNakErqWIa>)FQC*m1~bLwXaOR$i8{HLAaqDjYQ$iDa5=_PnD@?%I8J0 zAQ2ORr)x^GNZpNT@+V~R+=~A#uE)a)kXNo#Yxhf7zBo4Y;1mu)Ym=p zwl7jO6!X`thw$W~vzSJ-Xlic{CvqCaeUTMM5y77LEdvA}3)M}v^By1Dro(JJ*ZxSp zSu9gV3W6UV9-@48kg)4iy^_x0>Fs*;63<(imqCH+jg#+eDpLUg(sSTm-~1ezn)JZB zPaUjqId;{SXt!d-?TfpGn}^L(&y|!1sp|(= z*`A*WSV*quLRGz6u|Ds&zDo~-{tvM52eREX=^$%cH=kM+w3=3;jcnutm68wodNnGI z0WcRF+wzzQL7+dbBrFjSxwEFD&v5+*!7#P(Z8J9REBxtpA7!8w3w#v&0i{9f11{Dv zTS0u;rX-x;w_dGqTJ)xHqn=*)4L%T;Phgfd0Pp9-Z)=x0G_hU!C1-xL%+Pm4L>&Sz zAtXLwK0jV|wjw6q_=UecPdsva`s@G# zF|lqH+c!zC=)e(uC8&<^3`kf*7~Y?1i&Z430$?Y}?Iw7s>k`>+DHD{{2x(*P^?n4qJ=w&bgI#%4>K#6p`vnCisG`|_Q+5SMs0XlG zNYrPN?cp-oW>n*HADlmbLVh$<8Y~K1ba=O()KfKoziQA$KKi8Bc7FrB`&1IJR9LaG zrX|9M!;QZ!gK2Z!N1y=$lV1i2QrQ#}R2>t?^h{O0A z@#Z(4-3dpBA66@b4J&mPk_<=Hep`w^xrRI#Umt(IPl|%$e{AGC@3QpRlGvRX{oIIe zEv&)>q^rn1%*FVrj7GA1Je7soP}hoUJ5EE}Qt-R0Tfm*8O9$7qojFSik^| zXRCl^pu4_!`N&6D+B{VvO5aWG6~t-QWnc}-e(1AjI_e18;_JKqZP0`6{dhvC`P~vC zb>S{i(e#z3I6-D0I=12px$4g?)&hMz&@Sz$Z{4}vVHvQU)mLfX^C0HyJ)^56Uj3G0 z2YveW=#BUgxs^fK&F<-=SQLPaq5RuJsv=FS^7dMTy3me1wR%2VKPc&Of^x`WOOOu z!?Z;m-t7Q$8TZr#zp$I4rgh!K?DeawIn9ZXrw4P9@KQqLPLhrzv>0N)%zjs7a2>(W zobK=9j~-bM!ooj~Iv z@%ibf^65UQJFB1Y5JeKVEFl0|?Jrw;BorMT>-t~Rs?}ybgcmcAd-E_FhjP1V zgnI708C=nast^*49oVbC?30ubb4x>Q>4li`tL=MWXy(1!#_&A`Yn}Y?&{TrmBN#@+bOnkfLf;`Lq}X^6<))Tjsb)RN zGDL8ynLi~-S)Pqv=&UIzVpH{57bQny`twZtv{I1@hpc!&o?wjd1a#UA$Xu+#xKAa6 z9TAbm#_@3@Q&|uT@j;&sR!u1&HM)b^z4o(F3_jqqfnnw4qJ7~nhQi1p6t^~t?|Y6= z1botQgto(#KkY4@xBKNrhc@4GFXn83BZ+HPe(nVWmBuP~n_AZz{%Q277t|4A7q8jZ zL4#)z+gDU;(7wNElEd>UnJBY^F|z=;p!kN#Qk%$=ftj2v{9uGbW36gc{$MH>PnI&= z^(VUPjw6a7GrRiF<(PKrEabZt;yzv#Rjsyn2`mvlV1rbeJgH0RXQL$L5k7y>Z#Qiu zHf6}Zk30uLcV83Wi#Rb!=|fl8T2OP#PkOhH6JOI%zkkpX&lR9muY6K$W(K`vh1~C$ zifl!{9IN~Mpe#dW^}GGIq4rWP>C>|3w1W{px&_D)isv=XNypvy=$NEDh^RP!2RT{B z-DcXHbJ6O>Y{=L!i(?9xYOA66g2NWgGY_Y|TzvLZ zA82Kx1MM`Co=*KR>u2JC=~HW=tX&Prvs2CBg;QhC;#V8!u{0DC$c90!vGm?_%};6P z;ZsShJq1f14z+TaXHDNK(a(_fuw~$R2KooK+(JX4Ki3tfG`AJ8>np~e0TJWVhW6fvCw!k9J%t)Nt@MTxLtd&r9$KnJ?M3uhW54b3aPQ2aC} zFDzbfzx%6wGw&)1Uu>^Z!3Ldm>2Q$_BElhllY@DLpd=0Ovr67#ubguz7a-;#xSVjk zCGsT>q5axE=%5|99W{g)=Kg^g>ylPf;pp^%9)so~Uqd#SPxxm|Dq<9DLn%b2usN1^ zaTEXcZUX-H6B4p%5$%pjEDNkMBZ2q>vqwK5?%7)vFxtpw&DC6a>!W-YZ0hh0UJ!;s!r) z&_p~8swg^9hIGCFMl*5f0P*|!^!#l^6O2wn?>8v|dZXY+xhBRqKDTOB6I2l#5Pk=g z@!%(Hlr35Y5@|iHKcV_Z)AwU6(!rP6qU@(_aC2|A*!?Kr_|xy3$4c$@=>uUWIYfWSgApS5P%9UCH==nh zD7HUjbK~7bNUH>`ROf?34s0z$JI{Re929n~s2tt$^g6Ineq`h}l3N_v`-$AXbX?@@ zAtr)(Z(%7ADS*i>&05Rd@4k&cCqTNMs2@T`8Wm3GR?_S~m!3$;VJtV_f@+YyWY9q> z2x#M$Rc3J3_#(-O(Asr1V4IT0i~qd#OBhi5%KZhQtaU!ckrKo0N-trR$R~s*LO5c3*wT#e$|;hUV)N5qFx$nN_JgvPm;jobhyy71~3or9`R_DD`q7 zrKlEDKA(UNug>wq<1udB`{;uq=r&fKl%zVB=RmfuscD(K_Ul@MPmvi1x>*@WUB9n} z+I2&j|3^s4`9k~PF+e_)t9;)0v6oO=C%f@1X$`5Q#yw4a<51GOC6rO8g`nmxF5AuH&d9* z#wRSb9#=XU`vP|QE!hVJ_}n_%za4K(wB3;FQ)+U`{ZA zEryyWQK=>Ev#b1OpltJv{u|CFOgVtUAQV%@&4kt4Chh@N_l z4xIL(AB_8Ev=BVRA)rKOjpbF>>ZLOYeV}L^qsy`?Ip_NM5Ggx+lYtn#XVz{VBRX@E z+cr9y`fNQYZ5a8(cw%*hUGV~w7N>7Gw7SoU=(}N><2+N$&XM8Z&JkAheh+{%+RE^3 z_VNg^K|xC^*43bu*>jE20j=Z`{OH!lWDYbxkxvhp*q-fXpb!JM%wMc6WeZo$Ld31n z8EHo#rkV9(@n0+*(do?;#Q@zvY@$uSPAXccJD#RQ^Wo2s(`mWB@*jTKC>HE5=PC0^ zx#w@Ja_O=W4mjHt@Yb-PK?YWA~MFn zvmk`G(+P&ZLY)ZFRuQkhy~!fmLwp4jUh3%^a~(=9F^1foA71>BBAqy=XU3_g9m-Vc zTMkqp^awgy{>b!n7jimU7e`jR z?(spW7{`UtazvX_T;BcXZ58G4ar~uQ>JYM>c#9s?zQ$3^_#l}x$dtyg!q?uD^djQ z1-h!Do`&a!ES3x0^}z`_1YC@7R16!BVP-0ZRgaW8#kKiW_q^LqHZ zz#z2H`kj39-nDnL_oJlp5pmf!nOHD3T{UMzmcPx$uTN;b*W^5CWCDZl3DZg#Tu*rn z+bwci4VYHE>Xv7)^G>s)J|6hHJ()rvox0s;MWV<^PcwNQIK>EFZOxSd{zkG)$_m@z z9FACL98Gb&i5MR5Y?QtmzKd5H(pxwCukW0tu0mdr@*oXswA!ADqsmG+w^kxcSD40u zoIRro$k;e%4>hRv`tX2@0Blk#5jK~dZ~i_r+NB-X-j9TvHefh{AHkx(zGwUfC7Lod zOiWUQ!BxCl4Ti$ZR`rTaoNb>s_RVA|Fl|)`Bg1>8+4TXxboV5c9=(x~2=jepajhU_ z>rr(SW%A>qv&on7$2EG`$S_eoH^w(R`fWs(`Z4`(g2JQ}W?=Qnsba6s>DraJDOnLx zH@*`;NH1#bK7{~$$+oB0bOc~08<0TjFhQ2LYf@)-$Nr9Iu_3By&BBWQ!m0z0;?-dC z;q}Lp^NMP;VRul~C;(Ptm>|u-+U2>vx$71?mx&+W;>aWtf`a&OuQ1L&ua~bp z^rJz}nHTObs7VAP38m#$gO7dYaHjrvwwYm#MGt%(w4pJ^u_%)Jh|_J{@$Obm_s_Mf+Q0%o|R$OpG;6 z8I+Y?W6}N(wD{d&ws|@$4vvQH;?VP@Y^Xl zz8Q(#4aalEGZt{3Y z(e~2`1Qbfk3Hv^NZgKEAP3n z^H%p;;N~70(H*#1Nc(h8POl$arGL`Q zWvra>%gsnd;F~8o_l!Pz6JO3ayve&VU;r^%=JE)-2x=!^95}ImQ9#;qApuAv|Xl?E}O_UBkN}slhk$bvMm1gElLvx6T zlK-W-M&i}gOCzGiTtn&-F+G4Yh{^sm%El}o`}Ygq222sGK@^MBdRv^;mwfjl>JNU1 zlCX72-VZEo0OdEROUBf&hocv&Pn{hwv+4HJn9fkpI_=O+azEVI`m4}unU9YQDl30G zOYz^K)&u8_h(nLOXUe8n<+fKJ938hCE^AO;{a8>)NXrkAjVyXE2T4{tJ(Z*AU<7(a zD;+%BYW?%qCtZA*(8Zqs5FUV1-n-`~SFNJaldP4@qm-k?N44I-S^~flfmbiIjc70o zl`iWzFrMP?K06=zpA@jD{-COgnhCE9aCwJ}e%l(8>sG+)N`eJkB=u zG2yatcH56CFG!pTuJsF{NAhMckqr%a6LR#;r=hE`RVK-HmDySc-2$)2AaY0)UkTYb zBCFfzHnR73OnRX_)AYxFyWLr2j27x^ma}@N_I+jeRB$f!u4xx+P6&P;9Q85!Et+0p zvx94QS97((S1MmsF2AfdgXg4o?2jR}i33$VfQ=+bwfjj*o7xOV@bMH67`y*=yTJ|Z>Bs!UOz%Q(dL6+0r zFGfDDqU=H|LOL%Cq;y+}w{DHznh3{$FMB-@uk&Pjd$9^C{1fk_0(8?z?%5;n@kec1 zyr%n-=q*vE4Pt~r=vIW)HI0~gE^+bk+CoLH9!lBdW@T=61ba^mEzSoY}9qito$&U;4jYJ59*Bj{m%$>s@ zTpNkh2R>3;?Q&U#t5&kG7i4H2N#-bh%b^M^IvwN9TE-AdZQN8t5wU`0)!Og2-+L~p zRDj(-wrqb3Y*`YzIVjg(Pxu7?g_Fg8^Il)dP@+&dBIXGAN|R>)BuvBE$4oBvF7)8G zuzfTjlp1*$?rPA19vd}8PnYTIQ;q-W{KtT}_v0+cw}bK;5v0h<$RbKqHrTYq4SH>( zTRMZIv|n>5phmY&LXg9mRC`!vd5Hr7*jr|!wI3xeL?vpI{C+t$KVii{!ktZ!LyM!u zc)_;u2#uU&hPtEjzAol7 z(%G*PA^YlYek$sABZ21=`d*91LW)7UaX_#X5MibPd4hkGYi|&LW!2Q9Wv~DCtoBF{ zo1oB8ueSZT-)QzcRgXaINH87&Mv|d4r7(~!Iji^{D0uoet9PA3H>&zaOD6HSAe zO9R~2bEBFTijf;QqU@wucN_dYgl}6G!m=&L%6TYK>gX{58v~@NRU(lvM$GSzF2i=+ zo=CI$a@E2QA@T=8lfd#8PSk8-nQe2x_LG7kok~3TPAcPtUy=Z>5&-nOdWtRMpoADi z3d-0!^21Qv-XDt%yr`7COhm!Zj*9lvLHg1wCpD*MPX&Q-h2B1u?5Cy?thFx}ZsElO z&SVBtZ|~#=kHJ1t1^f6`P}{ zguGG@UoIJSfHcoU^G!FCz|{7lnx;W%%8!CA5( zpOEjX^uVH+P*GarcgigU05t5DJ(8=WId&2P9))@DET4Z8U>YrBGi4o#@&EWiJdeYW z(fL278>jM=M>H0_9U0eP5HvK5jh~##l#W1qP7?rKJAbw;7PkDvy@2x=&!72eR7E7M zE^iXA$hYsU9mVJ!Dbii<>&(c6(AOz6SVcE}QA8ZmI@@^a;rST5&$(^sZI%n=90C+9 zTPfn5?ptT7wC9Nt8>i8i`-#oav6i(Q4hRx-XoJp@FE6an@Mj50rgy{_ak~n4X%E?? zl$8Fs1Y41+6{d0p}-5w9m?XyNy>Nc?h9E);+kH*fv|?R~oI z#u-?<57m5ZATnZw&a}}^Hq<9(C=b@{P3uI#1Fd>Np+I~_z;MZDci9S9)ugykS4lhYxaAmzgK{%PVYMRf!!q+ym)kFOovKcDOB85XjP- zLC@F${!`xcZk>DEg1M2p2x~D^&!Ebs^zB(CYFF zH8CJr3enbeHh>jBBrh*dVMdkcwrBN$nsQZ2d5Zd%sy{t44>qp@&a(5nk!l;nfwc$O zkT4La%s7fD{h~OwF&%>VJoPx=b0d(b#qU^bSd_wSog}-3uDlnyHZ~=|HU5`_Ycyv{ zxbk>|`-FEWCa*|&(AGQZmv#pt_9wLr3;*DwbfY*kUY2A@uSduZ#7xL5ow{RLKOBjl zSOlST6yAUOv5B+&v6yT>*W4X!L<^X#Wn*DQ1~Nymjp1;9*TSXL zCf6w5K}>q0Pqc=Fw1_`Gt!70$Bsq5Xswfeb$^ZIDycdn1BLEzGG;|FemGW}>Y6AO3 z&P`_bhv4D+LckBP6@M&JPTi^LT{{XPPb@1QbG7h}t$1nP-DNfMc%#U;CQh(RY25%M zBe`*JqWnraa$EY{$%;g!E(#q$mg9YI^W(16lStD$humty*FESxzV>qQfzB8CyhZcS zySWZ~8}&uW{pq@HEiDuh5X$WBkbUSxmMd3ExcmdYu|*twh?*`0-bfTjS-@&Z)(}H1 z7^-X9p86;KFrt1OSg9wgEwj@zQQWi=SXy}(p6vFqfYt&D$_4EWeypwTGh?WaF!QmP zcdr6w{r(v0V~2{TK@8#KQ7Jd$RVjHO>1x(k4RX&g`~GDOO$IlykmVjLK}mmAkT@e$ z!FsKq{W~)Q>A{f?>&fgDIa0=+H>a28 z=v+%%`xGPML6`aTgO+r3Z3iGkpb!Xv_%XZ=V=yxQ56uL85Y%yEG zkdm4nUM=-#+dn}wv4q!3zm85GEgW)2c7bphwnv7u)E&WwI7kxwFh&M*qO{ zrhL0VmYDanBmzS1wpdJp@`uv3i16SM_aT zTw-)D#<^p*A&$(cWW?ub^89qAQ{Pw0&N(<8dG;j9*$WyJaJ4t$ksBFDK2K1*tsq%jhIGec9{9sfNbK-XEr@KwK=h?vAd$;16s z)ADs)!#JaPo7%uDnR;rU1ce3c58{6Kn6p^p(CoSXFP6XYAhNSrSt~zCq^&(m#a>W0 zK;G((sTzZw?|eB8|E5LuOZHzlzjAxU8!bgJ)YnSR4^cA?Z#})MIPip`^kFA;thc#u zeE@)OEgPS+oVmobCK^gB35WxV)PB@^^0H6vaP)2kDgZn*L&ZY;a@b{$gYRJ#Cj0~$ z5ok5DGwgYpVh(FuXmJLx_5F&%Oq$0%#pA=q7y44?LxdEG_SkMdoyETjP9z2CP>+wD z+81K^DO$*m)!q{TYgeCBAlvV|*zeq|!;U1i!W~)GjS{Q-N|n>MYd>ehx6CgYQRMzc zy(bx$LR{mS^63$0bnKY8zlzIy_czC5Fk^m9WNYgD6s_XiDdLJsMqkF?Jmt%KzziYu zK$9oM2XFv&`hrZgY7B9hocjEEymmqZzEfOenbL`68u(~9^ANN5LtXlNs9!81KM~G^ z7LMnY(+yh<@Q*z|>tTfglK=kk{#@7%`MK7%MkgYS>{sbHcl;Kl^O;mgWYn_`T9+Q; z7A6+Pv-CH}WVH4J|66GIWd5vvFdRnbjgy&`Rl^G98hk>)q{w+~VzpS$T6640J#J&! z4V&dKFR=usB2QG&Xq!+TIa-(LtVfc5)sNl%irpPa4BU8Y`kVaouIb6%$8KM}QW&c7 zv!k?}mw?Q`Y`@UTH~$X+`9KE0_>p0$-GxM*ou3@kFy5B3^Lz)<+GqOrlhcsx1&A`f zfX1m)*(max+6Ro9qZ^Ga3K$fLSO-pYM~sO5&lR)ngyzXQO1SA3YcEJU9-g)P#2*~4Z zCTpN=`S<|h`}b<)UQN{u5O*yx>h#iYLjdS2XNz@(%beUHGBz0{u)vL)jbzg^?f;=j zTMi5{Ddu3aA292cLZMNzGWi`R1Gb zB3Nd;%y_)|>Z{dt`Qe8j>R5jBo8Kt+Cx0=kdjJ4H07*naR59Z`m~&ekXn;R-X5Rr0 z>6Ba+Fah915NMouN&w6d+rE9f#s@^jg&?H2L{_2vHVt{K)Ds~7pAsP0y$Nd4>Zwi# zikPNm$Q9WzNW!PA)n)8<(#&~;jRWvJ1UKid(jq-0oCPqEjmO5ki`a`4{ zHENW`Yb;*87}8k;T&dQ6ich?`N4Fv$J;=VD#v%e9$?hF3*CT-F*?0D71>;84DU1Tg zW_-Y_uf8f1CQQ)#`ioQ?FVzU<8_>nbwKZVCfD=+oXCXg<$-b#}@I|;A*xLehH$Ev~ z6~OnI84^s&%|@=nOfoh~0DRRmlFz~&J>K2_5D{EhB+*W6RD#svXuP8MIgH=E@BD0D zdY;d3=DRr`*T>*i(ZMA}jQiWOY6pd+bVKc|{ODlhfd~7*6IclNjXCA3<422XB zDofWLm3LPhk)qN%B|hHMd0MND=eZC?bH>mlx%Uf0rMMhr+|eH+1Ub&P-g-;s&6}q- z3%g_Wy`c#(n?8NIG8Uu4_@2|zpJ~|Ly?eKYH~-=nzmR|b``@yE|Nc{IZ0_i1vfE#~ z2!NSjPW;T7GgV}zu`0yl&@$df^9p70n;YfWA#7)5cSPOfJR$-)zrHYL`jf5C-gomG z-}#$)`F=N_z31jvSIVw3NB{s@U6ipj;V*4AncmD!P0n3&xv)5rWXOVdM zzM46uLk`g{LP>+Riw7QfK<>QrPWj1Cej>Nue!C_-nQBpnn0ClbyI3dfA^?0A0*8x@ zK|y!leYcjaroP&Ma8n10ZY-OJNVJc3oe1RVV$a{c;Q$$kH|>4_ek^}|pt4N16&{xq zCsJI2@QgvAbY)Vn16_!Q7?_8xhhde0Dtl2W`Sm4-Nk0BtU5 zX=&Oai5Lx=Boa;G7uX%U=2h(`00uZr2)W^g8&p(f?Rp0?yuz_hK)t(87QMbf_H93^ zfV8{Fx+b_fepJLc>i-2b)v~R$P;Wr--vuH{34m@^vnc(!yCD`tN=ECgTD3|N5)!Oz zK-?6i8zdS;;Dz}IWI2L+>QIk?Hb*-&0K-*-U;?u7W}cNUv!`ZBVJS8*L4Rhy2oit~ zKKMWp$e(d{#<>O-?3-@OjT<-0uYUC_Mf|`2{qMTv8l_k^u3ZuWzWCYqT0P-&_NUzh zfbcLtVsa46Mlo=MuB%#PoH37o&62IM^sNm@?ZrlkWS7C_0|ENA!Hvs{WyNvJg;tGN z0OR&!DYHw#gRCnr|?!QW8>1`}JE-Q{4kX~Wf{m6^Fd=5s}`IhJQ=h;~N^W~RcR#BD< zor|2DjoYG8ajAjJHVy{7mlqsRgJ1=+Eh&xIkb2+yU+D0 zM*QDbQ7X%iAJk`U0QZTCiB|pj;)^dnk!42$>(4?Y7klTOcjO=c_=idp6wP@(qv+}& z29pplsFIQZ1^*}B*dya%**{}2YX#Z^JI~|wS*ROu^^7ce^TR`k34jq;ti&z$LREln zV#e|}eTJ4et3S`#+DI9-`SHge%QMeBqXd8ik%&%C&)+Cz@iPe{+f`RxC13i|mvp=g zLGB5yLnHtKij&3(rSF!3L5$sI96f_rYEZ<1HU7B6?`uykle|6oSS0p1&F6U%h-cNX zoG&|;Cok^WEJ=E>@;ZpCReUYvA`f zcc@AMYqu828y_B)B5axFuR+j>k~ho~xOH}aDML}17-WT(m6d7$();hfuWmsioLM6V z@%g>E7st$V%z6CoZ(~H_pZ@eG`N~(mqHzU8eo7^5WJ+A8d?)gsefHT}GVPH^9+3+# zyimvO@BO;#`5i_82mrH4b8~Z*l2Ux7h^4@;K=Duzfe&6@Bkw-HT8?9zE@r5;XOg=s z&^d1MUBYWyNrAj`XpcS$i*mSt{B%DN@tJ2&(6u_!M7oFW(CZSMg5z61d z{;LSa4wx*)KqNMU@XWEGRKl@xt9iconPa8#&78+;{C$3^9E?i*-uJ#ITefV`_ylr# zTK@UY{&^p+&!7G5XG$Qr_W?aFCgPCy?Fp^JRRB&FCyyfE4}bVW`QjJ9s6Y)v@JlUr zJ&cGBlNTOctULN%c-;h44nk=sT+@>ppO(6Ieod9UgRtLu`*uhoxPJ+90a9XFB?)iOX*@mM)H0-)mTA^-1N+V1bqCt}ciQIU{jvcaf z>sHMjATn|dkl0c09yoBIMlaI%NeR;5s65)ARH!8+ zH=rBNl5&2GyABrlmC*a2-m^(u(90`f`6qWGCmcF-s7#wSO+#SKqHOC?&3UW<^wd*N zDPj@X2y-G47ys4QTq{F{4pZaoq{&lc=7kr@Q%^pjx^OL$t->50bqh{KtbgxbtPqU3 zZ0pAOo#+CS12$Ln_lDlodnOQQO4_G?nNUt)l=3lV9bJ9ue`n|A-;iEhZ6t;NKO<1 z%$;|*2OUMS9Xqxw!Z@*sXGLYLJp1lGnJ_#V1wrlSACPG>5|TwkFGqwR34jxUU~U8) z(BR1G(Lep^PfvOzG6@>u4C3)Qs2WgI-?V9yz8IxP!yIEw7;I(`)?9N^hu$wFd>37G zk*r<2R#?S}ZQ{gtK9dNb zjCf(0JolGH2+nAb^RGm}OJ<@<52OR1Hz~|;esarA#rg91jt$8A+oPg?F+_h#NOV^* zY?qP~xwhTKNm!G^)8hWwQ@^IWkD`CS{sZKyxz|Vr7Ct$mH9w&;V&o{f^s+hf z$ZvlGuME5c^`R0I-YD;_I4W-}Jt$wE(_gCt^AbDr!FdZup1|3oQjjMwTpoD_hRryK z+60WNjl_T)nuyLl8c8(V@X_;Gd7S4_O5ksV6`2PK2PFo&@W{D&UTd)7@2nv}b%Nd~ z8vmGNlndJwi4L2&-mFtS*aQD`8UgSHGPxNy;iM&))nmBW$(@|YCoeB6mnVMxj#OZK zunVppe_}&WRs^!M=(@w48RX|!x4`K4w{0KGe|Kz@Wa#~cKz_#S(*VYeIDPjjw7WRD zn3pbHDo>zv7$e;%F4MYAZeIc$z)j$wM0O_%n7Dz>?3dTX;k+5=oeu-uLRkx)nY;gZ z+)PGt%QN%#X&u0cBa&^qY&l;H3(mx@J+r6u(b$45dk_x-NuUM=Tun74u7kE3i9j6) z10@)SmeY_(NrrYMZjwqu(pn=-nNUOvKhO0=d|qc4wyoXc^YB}z5&*N%I02lrAOHBr zYLsGh8i@cWv=Mq|1ZvR#_tE)s^gxkZek)vGWBMX##VRO@b=s{70g<24kMx%l`5)W1 zR-W3nUR{1H073&CUu+COq25alW~Ui0MuQqdT0i>eBNhEAZISDhloZPsZoFB}zhIWc z#Kx)UZx%k`N_Ss>NNCqyd%Y3>O+G>*S6rk=HeySzS6~qAhqB@6$q}mK+a<`X20a|* z#BaDTTYm6p5j+qMse@;LT%V24%kibB_g0%kCW^|C^B+5QRJOuuzia0XWe}8LXvCzu zj_M>`iX;g9%&1fI{4K$XaOC->wROHZuP43RTWRfph%XVCJbAMG@|VBV1Ps=GW2z^O zGu7pF*zG4=7QV4gj(`YUaoZH#A0R0;R$YZ^$e}<;nXsEQ!}W<|)eZHsw%~~TW$Rjb zWA8SI{Ydly@;k6V$*rlo-+%x8!pb-NZfBvIbEr0O=U#66WhAReh`A)LboI@-{0bHQ zJzmalz(-`Jltr#T>6|HY2~>}_P~4LUqv_i)|2_BqKADUtze^_f0a0q59P10rh!(z?&}W8h%!-}IfovvD07;@9+?p8Vb3thN(E2Jocv zBm(pbTz1)IY8S9Xya=f%tJR3XZ5#H>V?TOTo_}nia2xO{7^PStm~rbmnbv%^b3`3` zx$ltpnJ*2g#d{v2{9fFT@Eg67E0In?us z_^g^kk(u9B$HqO_Zi2OY6v~QQL|6}<^v7^?y2Y-Zdo5IuOf|q^6EBI42$7@tRr1>6 zL&y`Twt|CBy1L~r?3ZI4m=!BmVB0Y^8U!f`Q4L|^_Hju-V7?+EutgRu|MBq&l9SU< zW?gu(-1qGV*R-fvDIBWXK`91kFp-xh`zCqj^QL zdeL_5DOiTZ=2CYgMc%vax=Xo7USvZyN&=is)eyF3i0~qW#q{4#1usg z3*{Nxhy~6;;eQdb`_>j7l_z&@l;3PzCi_Z@C7z2I+>H8Y1oT?kL8$Y8;~U>lf3)4j z%JT>_`umCelpyFrq^KMV;~}H)zWv?r$|aZ1R#Drsr!)^N!jhtLA`q(-Qp1|ns}vdQ z(LXoM*s{M$2ErRKqJKQxgw6Ni3p4YX{f47HWGqUERU$QfIZBWv#5$xBk%EMK0mhu2 zlM4f7e=mWuBL4_Q2MX;cCMHQvZmy~Z%RXF+F{026>J~&`M<6~Y4Sd{~hPr-pb7#g8 zd~Y2BrfzQW<&S0NE z{_&5RZ%>05i6_;G5=a!2CZ8kMf8j>yo0Y9_v4a?-DU{5H4I8ey`Nj?FEw^9;-GUxj zfNjEG#xB7uA{vjxE+V!qI)L+>P~Rqw#I8b@50sxhz7ds#VE=#(fQ0a^H{X!6V5RTV zCqpF|j)TpNna`V(lM5r}Oj(0^28RwER2L`L$i991)J4cdBdV6c78nFhD*@n;snap+ zmGJ_MVBt7aj>?qG+!PHb=5EB45ZLHj z=01alAozaP69W8$9`#BO#Q5#7=+A>b%Wz)i@~UhQ#9H5A|Y zge29iiTq>6jM36l^i%s&=))jCw_#(F3*BOrn27uo|0}90C8JNKeDS86v19Lu6G&v| zQ9)AxuSOUEV`b{O=gKk!3@uzR-$F_T0l+Qz#9R9i=if`tMU)`75VzCVFTEe!Rp&uGAn1c0^z(->StyN6xF zsktur{wV}bI|1NONYNSKk&~07wd=UJso%1xS^$x`3L9oTbVm%jM>)QiW+ zkg-|VQ8*c?#z_*7O+~q{AngV&WTY4g!GY_zAluUz8_!mT!kxd}fSPw+j%E5xLbYJ- zabJU1Z5Ulpaah!iYQg3?U;gr!HU6B2P~(?2*S7XO%25Iki6F3|vPwKdvMgWrp)6gp7*b$ANCiosAp!(>GNhc|-l8ZD z5CjvrK@=-_#IPp~|oXPFNT?ir~ z0xo%by}o$P@Nv14GbCO5WcSk0;)Gt&5{r!_X*}dsWz;{}s51D|nsO!P?1#fG5#^0m zBQi9=U{(Xp=!%MwSQyo4v8L;ajUEram}<&rY}#LIV==H{Ukvm8^{;=euwViW8{K%N zr6qFzcfPB!{j{W0a`NXM?1#jW@TCj!tg|P|Tu5avqM%1K+=6v=R<)p)7Uro0aOJd2 ztqg1jidMe}Izp_+`Qy{%is{+%%EJA+wOA#j7PdD~e{bZ7Q8EpZM{_M4##cs0vgtj& zgqX;0f{U8FE_keM2y_VoU=}MEJ2@JSVoZmfHf@^jLC;MhOqE%RdkiF@p|Bd_cLb#Z z7zK&bo7e8uSJTJto0}$)(Wv-RU?GjW-U^3pdR|N4DTcC9*W`=i4Z*t`V|Cya285@7 zf(9ybWj5;O3_oQ66cL|Z58vlBpY`Mx{utyZF=0^)RqrDr(~vE9^)>Pltnb{I(;b3%g{TH8E~$nsAWy~)PSo9nIX*kh z5P|*(D!Ob+1_(f&Ugoa1%7-x*VZnkAWDsDKkzu()ef!ml%FPgM&P$-r>f3)${@f)9 zfSCZ_$z(Pck%z>9MI0GIOv^W=0@ElJa1jt0+%UvNM8V<=%Qb^mC@O}4OLIXVIaB}( z^rySo+FiK35A|!Kt5a+z@li9EbXU_F~PIIj3yFq?( z`sbc|PJaILpX(`nRz}BB1)x-L`IT48wby?^`XG#$dnelIyXn1rzw^Fy3l76GkO=(g z55HH}Vs%x8zzhTAJtXIhNzp1m5iru)Z6p;DAk4DwUNWemc@4?nDV`xJvo5a_cf^3Q~1 zar2jM@$Q>vS0itIM1%*8rg5?H8bVC{d_970h-j{mdZ`5gdUNR^nFP!JIFt~x+c-KJ z1pB5%$%T`8%fhwCWy_u-6b^w$1=3Un0;b-X_mdXuuo?t4Z0elzEE*Y|Eg0DOVV zg-OwmQUPD&k_-wVlCTstcY5KA2+ntMZd!|*HgajEDKiYVt;R50);Z+MP78FwnCtjV zM1Jm4L#c<)OI@E*1p|HPHoN`KyFkF`17~WiWyG^HHaq8#_)&`Det#1uO_qx;xm4!8 z^(KgL6v}^bn{toF1xy*60{32TNL}`%4|I!uMN$&O<$?+6AS8VdV{lmW1ZogR!S*Je zo2tMB`1d)6En7Cr+i$+5zmf2=pefy{%;x@k9*wCUuV`*RFt zf$%e1)9=>N*8iIRDdKZi8tzfYEI)(%jPhfk&oD?pcYp2ciXaS+C6WYkzt%_NeFh*a zx$$L4+t8i09A-a^;m*Y5gL7p@nsGrL)u{`7yk&+WDZpt(iQV-&;5)thp5UxX#leXsZZ+|qd75Bj;3R6L_7ocb{IGAOxPN3 zmw)~9?;4(4Q(K8hNRekhIG}q1+%PL!4SaSq0TKxeTcQ!8F>PF$TsNzqJooM%EgZt< zXIn7;1I?7=mgdhr`z+=({KOXItaCtOe=Y)+NE{8})C-&WLzn1=4I4CMnmH5v-gGTA zbD178uqEPC&7;KW>&JKM|b)P|TD(c<|s!IzKu8 z0F=Y}`Zw;88RySLetmSOaem+DCCo^idZnZyvFK7+vUri?9oPrziEKdx2bEOT$t#Nv zB2OS$%YxfSED`~aV%;{$pUv8_$MqOVGeqNoQ z_KI)bbFZ9_ioQ|M!#hjtZ|+$+Mj{`Ji89vUH^2IYRuZbLEZ3Cbca|NJDR2wYAQ%;4 z-xx`0fkj7o?X?$V%l~_J3-SaUQcwaF4fl&xBVeO?J!teJx2H{qxg)IWXUF)*>PXzE zlr;qC%^{(s1mJJu^HYsvnRVWq-iNNrQ2c$i!2DGH-ldD3-xVg$AV1^T8QOc#J@;s$ z3l}y;Va@Er`#^~O-}u&ja^CqDoO0ynv=LTxrA9}`$TY+_oHJ#r>gJ&+^KQY>qou?@ z-ezrVYImwt6@WUPhH68z&Q6yzhova;$3y^0VW(kqBjLb%5LQHfhEj6}YP)q4I2PK3 zXv8J*v!6g;#=}D!(&wr5ND1I{P9PT`8y7b9d}cxZ?svb_P**N48UYz2&$|615d`&> zyS^se$%hDdDmnkjFruv?6q$?t5vX&8e7JOp+6F2r>NKQx_2zuI1rH)mAYLu}Ctut0 zH-JFfgkinpn)9<{%@)=*K#BBP#Qp(JG`^AhGOF^{TW>{*^Nnh}-!MYX7O;dj6eVR&zjsr@s<{9 zimVLsp`ZV(iId>!yHhzX-ER!ev1exQ91t3W+`D&={PFjX$V)H2pq#a_zFMlW0c>tY zy!`U3qh!w1OdzfovuzB8t1k?Zo9nh0%a8xDQQlaRhZ+Jfh*o-3?59WPyC`l#(VvDm zUl`ixUL^pk0SqOls^zZ=!23}Jq1eyRZf0|mFnwNHPy#qbGieqs-BH}NhRDwlU+Sjx zYm>WE>?iV{3oHL^cif3k;>qgOIDMS|Q{a$raU3k*dFkvqvf%yqw8C(0Z72{{WUtpP zIBGzmRuHnwRVW2CK*boG&HV&2K>&_uYBI_^D6(?|l!^$qKpK&k?p{`=W1CZdk{zJeZKcoA&X$O7$Z@u-Fx+ut6c$1f8EB_yXmG14z&MKPnmR$<7FoZu9Eco)Ey5DSWwVGV$3ZE; z6^2bpv29!>q77GULisR62$q(!8gPp4E6AJ>TK;)|e;eUXb%5jMc>Q@Xij>#!zGfc% zy?<9eKS%&Nd3MaAA(ww1>9xQ5)vr_nV1-+Xq~t10xh3**^N!o^{0hX(u~=|niWo*^ z=;UGA>fVw9P}w&IY1XkZ2*utYM@hgCjTr7kIy7=E+>Ifc`=6mT1E{OF-8Ii45r{=H z7efDK!|pQ4JBCb8uxCIyl2M!vH z+Jo1lggELqB1XTWRwNO+`+F-6$(tV?l2Ysj?eF->+_|gJ9K;5&MMuFPh@Fi{EI&Xl z0Hr6!OAw}kAhSW@K;Erq|NQ+8N&uZOr-tj(s?V%NB0mdwQXge73*B4v_0zXp4^jI5 z?>wL>y|l7x#S0r;vlE7Gt4kse^=L-tF;{?_d9aRu1Pqme+J|)w9s~$AXsB<$J}?gW z@hs%e(J1y35$=#ZhpS}k-ZF`g4wWi+1!#ENhdO}N<#Tg$b*vmqu(b~YK?$IJ@N4#J zE=(df%bKx<{a^q3SLI?P3^YVB^NmEHH;Q3C^s}GKbvJxLjcaP5?gnd`&qryR>CczW zz6|=iQ+4F3x)2TN-MFJrSUu=SA-5T`-}vZ+(bz$WpYA7sV4->>3Q<~OZUplr4jnoa zuoPf_G(F?Ypajs4c{ZG$?@T?e?4QYUM- z7E2=b6DWg9LDgx|qD5LLhRIx?CwE*smSMXt_1~o0uG@XSE+)bf*|}#OD;6>Bm~K6a z{@f0ojWq+P?=z;IwFino2rj?!D!Ji{H)4ycGrEkM&)=EhvojfqzWEEVoAHAA?;};Y z6h=F`1+k$@QMJ6b>G#Oq2?sRPL4(L|<)osR6dvMA6d{hmpLh_N7>B(ML8Oc~AcVNnu;9fIt} zGLcx&EqD&DojaqimJdsc3zZV6Rg4N`m86+7XKHW`RRbf5`Hn64*&YOfDu6vWoj8jw zDO&Qmhry$dKB^gf)aNPY)7Q)eN#tkFI$x~P%imeO=AL`+*E)Os`t^ft%(7&6C$awo z5WF8ODZt7TpmB4@_U*D~_byanj=&aaD2-l^jZ&{oo<$`1&50hG^AcXXbH{XJdQO|*%Z0!}m-#;&lmK>Pdj5CgbdkaQJ zMnK}JL(xx%e6;?k%v;t=24O#e4=rGU1e+5GQ83E=;?cP7wPmgl~I2mz810)$BhAz=`MDB^q^j>j3XsI|`3 zs;!r*$7^l7^!9Y!wQ6r|*S+hm-m2%Uo~g%LJKSoe>bWW?ii*smhFN9^^OSiGx&Pm@ z^T9SGkSHO^-tP;0$ll+6zwdj#?|I&5{69_5rSZ+g3J&Abk>~m6pLaY$ZbDZ4VljA+ zu64p3OtBgv-LP_@`tu-6hOPhb)JF`bAFE_%R{5JC)e&zz2~C+g-@-z5NfL-Cf)4mD zXmX&WM(M%5Z0vAh`?o*?h~H1Tkc4|FL$F{^rLEYg@ToEc%PMNz;Rr}8ARP#SL=mR( z=YA^Q2k%J}RE};Yvd=#GM6zkj!&<7>e31R!+Tmy*ljl^ei@nMV`Pk z`t||7s%18C6Nl8{KZ5yakV0BBZQSOo`YtPrCMFdQAGUmBiRG!_XIyS?WTd8saT zKa9`HURGLS8EOFpR()~#VH-cXpZ&K7&a#JZ8EqHKR;^N5?7aNF?g6i=R)-#W`B$#U z7mi$>jaAp1M2=g>v;ejA&gvy?r-!YUqjcBqU6OcR)eO`eQd~*IqFEn1t^d&mpK;`G z@-1{HdVm06Ed9L5b}Gl9hrCw`0D7GO!kH#4IAR%zsAc(ywZT(T3xIfAAF#<;vu4?^ ze)TK&?&Il?NHE*J zTa~0jvPzn|4%6|5m8zH2gDUkMoVh?)_i|R1%0|dkIqAB!Yt=wxh2cCK>OdrKvyU3hd8^Gf%jo@#x)bAP3MrqwP(yk2KrU7*mHfcQT+`-y#X z#<(?8b@vhn_U?@7%8kg7=ROt|+*nYml|0SPmMMUDKce3W?^JC-sc?3dAj0Km`C##G zHv_6`)xbpl7K9Dg4#;q7_=6VE5{gQ*dPbvVn0{ zbFNdy8qGI|>qkg2be&15uaWI8XP-R#HFc@>)VIb--OsZdE*We9T+jkb^*mo>{01^} z53`!}ke>ikpt8E&=6<%{9fIXmG%2lf4I?*qq$ka!$U&H>BW4OHlTQx86qWHVTe8IP zu>cm5rLIEz4pzyt-_^#C>LU=*w3hn<8VJ^3zJOYpUGr8PP@O=v!mkPtD(MP;3yxf( z0+?_?3pnu|mNWt&x*2F9O1IsYUV6#B`!FWn{hqS(%f+-X{$5-CtN~OB5CaGl1kE zYA#3)0y$``8k-{AqwC(9`IBkeq!9ox8U;HqyzqjD_sHZcEiDtGjcU!6#aB{!SbgsY z*^eF^XAgXBq@6bwJ6}!!aXn!un7bvKDp~-V0`_fJdBopaxZ6G8CF-JsN(^{Lu7E$r zDnY1Qx5Re{_EKH|S%R2A8|0|#o|djUfjW1nDpKls0mGzSxo~YE=do>O&s5R3i{)=9 zQPibOZN>=;cJ;6zeIaQbMv5>aQH89Z+*f>Ro#_3FJ8RFMqk_Kt^2_e&$64emX>C;l z^PAm2d6fP9u?ceWjqo~lpsi_Q$$WzZ)pkcJgII?Ba6<*@2=ur3=e;Xc#l! zondRGiI7jg3YEBn^E1mkYn&R4e%((qLxoZ$as^N)Fl*6Hn?8T1=p!{=glj1&pcq+~ z7mx36Q?3~7^9qwhsmGP>%UQH&k>fCs$r&?85}C$d?e0km4FEMC6kcGtz?36ntg^Dg zRZ-&le}Cs#`@y|=icbs8R;v3k4!+jX7;Qlhj}%B4%+O8V2T+TWD%qylw*K>VcG{4^ zs%amu)v@JCF|9p}_TC;EAmC_cMjgcd1N$srjXH6HRw=ZCpxj?nYv(A{cjVAsCp595 z^U<_E(ghs`lJFXZ1=nvcvCK4~2g%Ps7#AntWtUy%0)dT#77(LZb)%4p+$;GKX%8N_SiSZIF>!ciI~4Jp<44dHz@N^&U(!SgY3@hb8TN?ou>~Y zco;KP$p(rJu-}O`Sjky)BkhLr-P4DU@Hzp`wMKu}9PX-KfT^}-(?R>sPj^02Hy;itD*4`g^G){*+9! z{n{LRNcR4i;jz_+o0e7UWDMrPaX4~VW(?(4DX};aP*eM;E@1WQRra1t0pi!OeRd)> zRp$kL8$TktVcMkVq=u&N;e=zf1TQGl~ zY6$3hbF%k-Kbt^S~?IIgR;{-D!^}2QjY!@9L6u(QK+T+ z@9f(pG$07JKjplj^AaK|S88v%R(}}r;af)8MQ5p|Up7C^zLu^$t-0XLNt!TT?kSfK z6=wc!Tfg;?ZgT1bvXmEaz^1?RmW@~TT3+5+?Y>$?T2pk6E-)2xBfp=)YRZFN0I2n~ zVs=ugVKPh``Wr-Ty!Z@y7t8rtR;Ip(+U~HfN1^Z&fDp&@VXmUmI(G>Eb=Fq9Sl1(0 z$U(q|9cAO_Xqtab)iK8RBaF@iUqJMp*Jx2_ex~I6CZPoYV4NVwFj%d+YNaVGHM?m1 zK)d?F)4YHu%Hwa#OOGHJKf1Rf4LSA?|8&s$_fEA#Vho}YA4oevH9r0H5#EC8RI02I zb8zm?>{{7@;EJun>hvR~1@X5+*?f4^v8jv1u;YWYBNGH;UB`ON4P_h-nHMs_9jL&Iru!WH{z2p#=a* zKUDQGShae1vd>|Mm>M~>XY2-R@tt-I?OOCfqy}PRK|-eRujh zHbGry|K`%mTQujF-6*D7$C!;dQdl`XBT?WTS}iNfQQOO6D!b|=_NwW}-o5*jKe5?% z?b>OZH*OO2`KDubPwQ}OdY`L-`Ftbo@W|d8-c(mteL*cp2+&Um+j#roOCC;!J4F6Yd_Rd#!ZN`@phryA^=haa9LJT=J<9?moBkcYJD|k z%o)lM6q=5U>Zu`7Yrg?36>YKP8Jb zoKokt{I^~;M0RGT-#o;jo4UD-U3vZ>Wg3pQ-@UcL;j&6fO5IC7 z{q47Gg8BqZnmk#KO8w$199X;nai-Tw&u7qt5@&GxcJJCH1mBIeLVzWoefp`F?Z%%a zjLsn-Br!`EmDpXXZ5Qj2uI$Q+N}DukQV;;~L~G`K!U_PKQIz{K zxcRks`53DzwBEg9WvH=FPR+A3lhoCm!5LcJhUlg(uv#U<)YnyORqbQjwr{hU?@m{p zz&Ojz9o2d*Kr3RTaK~19;q>Xef#*6T+nw}S(s4;b`t;M~%FUnqg%gh$zD^8Xr+$Sn zHLG=ZdH0zQr(a=VVY9~tIx>hnROMlN6N{%23J;?!y=hr?SYG*V`aR*i`tJ4a2f+CkKS-j=$;olsnpz5+m^^qN zJutU;AOxrZfFUsr;vdY(adXTceDHw_Y5+Zm)EtufPHw>eeRs2M+)-vX|Lrh4cT8_- z1Q{N&0T*zydIWsDe6P%ftukS%yp6bOfvkT&A}jmt@y8$cf*|H+KfwVQe-*#@K4Ap_ zHv(zDjKg9I-G=_2DzfgatUmJ}o`ff~0Gw6`q3cy*{QlxSwrJ&EuSE2vP5YRkq@{Dt zIoHmaaIUM~P2Rk^sU=HX1&8USq`Mt`Kmu>;)-B$kW7WzP_WsQGeAVXAVMY>=2)~hu zS1C1_6`mCu6~A%T9E?r-EgFF0Oasnr=+L1;HX7`I^F2(Cz<|+saICzxW?XgERrbgu zkJt}?_(K;KnJONl0}z>-iv;}zeIz#Rx=RKsld_v_*Lq2*-o$RjUoEjm?z>w`RVBd38 zcW}=QBm4%>5Q@;j;!>@q+4jlokL|L{udoq0xeg?P@QQ9?U(IyDo`@qxBeuTx&_Oxy zb~xs4dgWMKGEn{RxZ@6Axxr{asIWg8s-$(JjzExWx>mrfMI&4If`{e5DHR-h_a4Gy z%+7QzVuF&4o__jiM+J(u4X?+iKtc)tPMIViZhS^$8}q)a+D*3?dv-JjflY`;naAW=00z{ z9rMuMYwFag?ko7|Pk-v0AOtveLZvDmmLDJ{u%TV`VF@w$6|zM`{5&`i(IlRH@=3e) z+G~9t7nbdLp&OrQ2mL!?1pv$vty*IFBjm4E5jx1c?KxsXKy?CYpMA61UcEU-z#;WQ z4XUX$Y;zc!Zo8w!kVA*i5JPHiWtD9Dt+qin{Yt6#b3U1E3)Om@fxiIz9Hz(155wbx ztJf>(u#`SCQ0XU5oaju?$_~@R{4hMs)*AJ_r3~&nKF(7#PfkvbJ^JXQemt+g{<;_Q zL_cF2`~$ommQcsXA>1ba8liRb%{RLi!MWjZWJL4&AK|H43M8Ze;Nqi7@?e0^uMBg4 zU#LFw07()A9?6m`OthK^XDQt6=|XgLJqLmJg}D$60KqQQ$Z_y4fou0kDY)1 z`F7)tH!523sjU^FGLKyfTSfyxhVUAvj!VFQ@gNEjM(Zh%kOBZQaFfFz3^Lw43rOz| z$%{j*b;ZKheq_ZQBvgqhnC>_(##Yn9cF$ z>QLX}nW|3Vsuuw zzFN`Kl_^I^vqmSu`zV{Qv_$2z4YoU)02y`Ez#}L)f0!bkLHIj*M90t(Ut4pGt=YCC zo@;v_Q^E=WR7o6M3|7rLMLc^eZv4)i-L|2iq+P>+U%2R!0wg7!tz?(`Z_LqGROBf> zs|PDO6?X^&7@XCFEpKnv!D|OGo z7obD+m_MudX$sF>c=4q+<<{Hm#+z=o%M~Kb9W`3W#wAMpStH*-mZ$yVEyrd?=wbV# zLi76|2%2Moq3ACX@huMvjr`UPtUuY#N#z_~@ z2980P{*_l=G1{FGCx`hXQ@|$*Pk{mr6i8?d0FN;lZ*x@IN~&vWs-UY>6$q2z1e`D? z+go`Nk~>veK*acjAxqWLYSF3#_JP@t7IuWs8bqwk>N`GW=x zwj31-5ee{BU8(~(%H%Ebl6#$XiOOngx z&718r!BL|gm#9^BrhEZ&^ACD!sxfr<_0B(SD+FMC7&_Kotlm~{F0$8VZMR>)w%%TO zZ?n|@DzAjAQc+7z|6&dh3M8jLm;uePLGpf{umT{u+3|+s3!vnbRM_sq;ja}#QIxZ7 zPo*~j86g}x7!##iJlZCM6`u^mZ7OD&K5v)(+v^+cg+H&c?dobnlZ;xa{8hEFR$64b zfw5ODCm>#a3V5i+Cl0=S`&Jt!h;7vWuBly}(bLn?t-r#5)CR0xwL<7TYRaiRfAR$o zew;s9a%csSU~H3<43l;`3M8xmh^_<-giQ?dFIloArUjH&SQg+DV!pkFHFo;IbQ?BE zLO@I!t<=%)PsS@kWxu-Le7t<0z4X>5`|tm}($;J_Xaj_cFS%pI<@Me>5ETK~^0Vc) zc;KOLOMM?_OLfeI_lOAelB16-KpcM~M~|@q{lU(Q{i6mTvsb3q2yENB*?k1`KY;1! zl*22@H53R1A#gITYGTZh@B)C#gcg7hperyBn4z$w-1-Wld-djG+p$jxG=d5Py_ZTs zga8AT{mYE#_pJJ56?NXg@=xz=u@_!lZ|}}8kgDHBc=jpEN<6GydAeD6>9oO|y%?{n_+eeZqW*ZcW;@bcRg zk)78r>#>y=UVqMWBCwNWtH)EqTFk;aowenKjLu1^;o6*yRG+pBqehQBh}XONG;3PE@=c>n09vzrO8&r+hLJWoJzb z-Tgf3Z42{ot1WN$$fzIUtgr9iNQ^lBgVZYQviXod!M)Jl**LvyHvac=^PETYA11Q4 z(=+SxwKu`aYHjbg|AgP0C^^Kn5x#b{GtnsHcI|{nr@SZF+)^H>gO9Ps*nW_*drtAGFASp@U4@UF!7}2LQ1wOH(69!`j^M0{S1#7dkFond_yH zb3PgU+|#ZJd+r!KRH0z^U??rg8cC5D-DSRQ7?HcP`)TB6?L@$wt-(Z8XY4io=Ay<#y*pmM^XxAS#jclXGJ!(45T5rdv#lS5NfvDZK7c_9HO0$6cNyI@C{=y6M0{c$yvihx^n;nG`Ln2Qu zy|zm9K6Yk!pv@560e{!{A=O2o!%XnXG@-ftLN_M-$JfBXO72=o#pZv@Qq!s_>hf_p zvWTir9|#S{EfFkg&md%%_EPBO%AR_ge;i_etZav1!Q9sIlo66X*PT> zzuhZ zXMLx-aFM%oLFa;Ru6*FW@9rJgNX8mwf=Sl7x>*xqzFDcc$iyK@u^$J^0-Yn6xVh5X z7nA9wB{zFXRU)7d+g%+0wM8OZegDS^?=CgmgRSEr=HHvr#2}i zvG6UL&Oo{^aSrrnaK)y6<{%kpDm>{OgYbiVyz==tMTaI6xbbUvLO|sbteY6}`bp%f zjm~IzhM2DCbm{Cfb!EnjS+Aj^n)fvnr@M7Lq;zT0;nnyX_70zto-<|U@B1iy#@u2kH}0i0#xFK{ zYyn@#k;K2U@#O5{q`<@H8#>eDVPM97w>K#!YqMQ7WW$(=JHq|hY_JAKgVbsfAguV5 zch{!vf7;T>q0l;5#9-iRUi7jaH&en@y~*yonnTx^+5!EGi;WG#H%6VN$bNDj;wqYj zE@Y$i!gp`wJtoFaeu#>k7d4f;wJNUh;cEA-QJHu-s?~o&^Hb{YI2U`GYFXnT*PD6E()hT{0Q`9eYO=K-psLHNS!=Vzv2r;0A^uZfB>FC2h zma1L2ir*{hV{@ykwF3l#0`ixMaQF~H>!+tddFxJlA=cg>a2rS}jyxagmE=4bGL*;U zSwc6SM)BfP@9S&Vs>Nz>|6u)0MIawOH%z@53LB#~H=CW-&(CTfZ#m+1DIToSNsaJM zPhY|5u69i9HX_?{A|_M|dmd#i%wNKIbd$;nYvrC1uTWHz6$LyvJGb9~o{#Lr^!2`< zIYm()B8-n{H;?#85XF<6iCZC)2~tr#pbxmYTcPJC-A~%(KXh)T{L;O&J>3ls&gS(7L5FoXyNS)Jv??U3@UV%}j!2S|9y z!D=9MpDs$}#y4`T@332RP8E5&^GX<~PxA!cke7@n4^uny_1WPS!Bn;bHn`%_bo>3=U@5OMN_JJq^>5pF>aEl&a-)K*t*epb8GUK>S zokv@vxGG1dc)sppoh{#;%uN4by!{dA;;Yr^`MX>FuDY>&VoE}Ix;LLNmNc!VZHX(0 zRO5LuKewdJ^=FFrviq56d18Gq4@LRobF$1*dF{_Lt-KG*Gg~5d;hr_$Vyd97;bt^= zcbn>(&m4DrXgCt`jS$0ek&`G>b5;k0)Er~0L@7ul$asNANUOdS_;IKdJUu7OOwR&a zF7O%jA4yz5e||{Gm|!&*<91{E17A+)a8f?42&Fz*<7J&`FmK6T?n-wcFB`TwE$P^Y z0g5b^`*b}!>y>;qaqoaT>MVlc)%r+xi@o1fi21I5_R!9c-q@?PgmF7YGX-+#q#~>g^DP zkzwWHwTSUOn=F)|Qlao!enc5Z1lB#j*5z*26Ll^vI0&#!*cJ10FP>?box$(#%XVB zErAyhiqzBhd#8K_VBOzKX3?g{zAFvLX6CBIWZr;7!TC9FBioa-R*Bv`Tkc}lgC!4V zrSB(6(Z>%~>0FHa17)nuYJm)y89xR?fDKh9VdlYsWwydJYz{qX9U}s~y2tX=cV~$< zjG};%l~!sU8^U7yeE7t3sN{Y(iF#*3>^zFEcu74R=e6B0^rl#RP}%zC`<(}qJ0QLPpCm=pDjblzZcEY9Ca{kO|5doY$LJS06{!(AkFWi4ttb0-JF@Sb z5|{%xui6cO1;pg04DVV*Ct*UZ`Qk0Pq`kvx^A1kCcE{syQy0Ys(`O$6R3tV43j?pf zt$Q|&fU31Hay*tH_Px?4v1s21|LGyYjp**hq05U}*TFAi5&|Ct`*28zV|~|+Mc9IQzwz*e&*Ys9@h$x#FieWvnJ%7_?< za#rsfp6$*0-l)JKFXE0-xSnud-sKFO?-LLP|P?XpwSmP5SPXB zacE`C$4t7vaNsc$L~kW{n>t38NZ#hJO!{+~@)Ymwo};nnJ3PJbOJ^rfCYVrC+MloC zG}QV&ePM^HTw-A9XP`r>P|9if* zYTmz1g5qZT@?E?>+)XXG1qdj&5<`M3t?n*JV?BTZ<6STvZGS-5>Z%z_Q0rW0JQvM- zrqKHe@~|z4-+HnheGBw{qDAaNlM3Aj8 z_A$jfp0xqx$%pj*HD@qnhmk}Sv3}n2@pHJ@N$!d(DpBU7-aCr%Gb233=Fa7dmlP(CpJ}t);>Y1MfR`m(H8Z$C9o* zl)6+5SOjUA>w(z_C7Vpf#k;bBuga%qDasFdsEtXc@ttfMDjZDGpKF9oHzDDe3}6q>e49b z_G_(2zgI4n?Jc7pUgokX52pgyYVI`Cvu5*WPJvY`+H*)8oGjP?VuK(v`|6gre=T*L zS{svw!u4DMKO;LS@7U3AvdMEIgrfrdalky^aGKLrlqQe$YA}gA_g(Zr?hE-Y(gcSV z$e8g&^~OFeW!iiJ?#SueX+4DR)vRD;ppPaf$L@0@U_cK2P#Z<@H&IKZy)J^^{-9?& zi=TgVsTM4Lu@e1h@k|4C-3t2P#0lO zdW3`oA!j4=R8%t7WNt%oz2FH>ZYb9 zg-pQKD87a1$;s)aa8k146UWxb3;5UZd1kE#*hO=BA+tptb%_!(UC@-xw~foIZloH+ z4GjYA<=;tUX3B0RRqVA$#xT-wG5TGQGtlSHp4DUMJQ(apDN(0$AK&566K{uLDy4FF zUU$bZ-QOu5S2+<(LnfH}i9ypxhcab7!3qPXcgd_LEI8DgY8!q(XYxuZ1l`K!rF<|r zgtf(%@U_IQOQYWMSgj>|yWO9-rD}G+^Zv!41sx??e}_s&{jQ{q6=BhMM5iUG5AjOU zBO)G9)eZxPZWnw4wm<+8Eb6LIjfqXQfqqe*G|7&2bUB$EBm773le3~WsZwyr`^Y*%wu(Pf)T4@Kd_nC(y#wJS*_5^Bg{1{-!R$*{6N1vlmAZ^PRuXZ*3 z0HIqyt{*!Yy>WwppFJm}xoB7qL2+Sv`8oiHSh0Haiy20!NSu#qiMou-0Dm@z!QpTO zzu_A$Ttc1?x|1NT+(+Rp2wH^}Y<)cHzA`KZ5Q?nq=bOSY)RVZ!o5bKmUb7 Date: Mon, 2 Feb 2026 09:21:30 +0100 Subject: [PATCH 13/13] chore: adding aks postgresql logo --- modules/aks/postgresql/buildingblock/logo.png | Bin 78684 -> 17085 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modules/aks/postgresql/buildingblock/logo.png b/modules/aks/postgresql/buildingblock/logo.png index b360079fc7a1a0b3acc1ef1b83124f413737bf47..b7b245e04cc4a465e8b13faf6a8d4a7be2320a80 100644 GIT binary patch literal 17085 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