From 43e71032dff4cb22c0651e2f2db99dd43aa21ed3 Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Fri, 26 Sep 2025 13:06:38 -0400 Subject: [PATCH 01/37] chore: Start of Pipelines v4 From cd9879ee7847dff21c791f30e5aaaa10c13cdf71 Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Fri, 26 Sep 2025 13:18:57 -0400 Subject: [PATCH 02/37] docs: Breaking down Pipelines authentication concepts (#2745) * docs: Nested AWS into `Authenticating to the Cloud` * docs: Adding Azure docs * docs: Adding custom auth * Fix build issues. * Add custom page to sidebar * Update docs/2.0/docs/pipelines/concepts/cloud-auth/aws.mdx Co-authored-by: Josh Padnick * Update docs/2.0/docs/pipelines/concepts/cloud-auth/aws.mdx Co-authored-by: Josh Padnick * fix: Use active voice for custom auth * fix: Add examples of secret managers * fix: Explicitly say 'at the root of your repository' * fix: Add callout for risk of custom auth * fix: Shuffle order of tabs for configuration options * fix: Adding a bit of cleanup * fix: Adding preamble for best practices --------- Co-authored-by: Josh Padnick --- .../{cloud-auth.md => cloud-auth/aws.mdx} | 126 ++++++++++-- .../pipelines/concepts/cloud-auth/azure.md | 129 ++++++++++++ .../pipelines/concepts/cloud-auth/custom.md | 194 ++++++++++++++++++ .../pipelines/concepts/cloud-auth/index.md | 36 ++++ sidebars/docs.js | 28 ++- src/redirects.js | 4 +- 6 files changed, 497 insertions(+), 20 deletions(-) rename docs/2.0/docs/pipelines/concepts/{cloud-auth.md => cloud-auth/aws.mdx} (58%) create mode 100644 docs/2.0/docs/pipelines/concepts/cloud-auth/azure.md create mode 100644 docs/2.0/docs/pipelines/concepts/cloud-auth/custom.md create mode 100644 docs/2.0/docs/pipelines/concepts/cloud-auth/index.md diff --git a/docs/2.0/docs/pipelines/concepts/cloud-auth.md b/docs/2.0/docs/pipelines/concepts/cloud-auth/aws.mdx similarity index 58% rename from docs/2.0/docs/pipelines/concepts/cloud-auth.md rename to docs/2.0/docs/pipelines/concepts/cloud-auth/aws.mdx index c252027722..8a4b014fa7 100644 --- a/docs/2.0/docs/pipelines/concepts/cloud-auth.md +++ b/docs/2.0/docs/pipelines/concepts/cloud-auth/aws.mdx @@ -1,18 +1,108 @@ -# Authenticating to the Cloud +# Authenticating to AWS -## Authenticating to AWS accounts +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; -Pipelines automatically determines which AWS account to authenticate to based on the infrastructure changes proposed in your pull request. +Pipelines automatically determines which AWS account(s) to authenticate with, and how to authenticate with them, based on the infrastructure changes proposed in your pull request. -### How Pipelines authenticates to AWS +## How Pipelines authenticates to AWS -To execute the actions detected by Pipelines, each AWS account must assume an AWS IAM Role using Open ID Connect (OIDC). At a high level, OIDC works as follows: AWS recognizes GitHub or GitLab as an "identity provider," trusts GitHub’s or GitLab’s request to assume a temporary IAM Role, and then issues AWS credentials valid for the duration of the GitHub Actions or GitLab CI workflow. +To execute the infrastructure changes detected by Pipelines, each AWS account must have an AWS IAM Role that Pipelines can assume using Open ID Connect (OIDC). -When creating a new AWS account, it is necessary to update the AWS OIDC configuration to include an IAM role that GitHub or GitLab can assume. When using the [Gruntwork Account Factory](/2.0/docs/accountfactory/architecture), this update is performed automatically during the process of [adding a new AWS account](/2.0/docs/accountfactory/guides/vend-aws-account). +At a high level, OIDC works as follows: AWS recognizes GitHub or GitLab as an "identity provider," trusts GitHub's or GitLab's request to assume a temporary IAM Role, and then issues AWS credentials valid for the duration of the GitHub Actions or GitLab CI workflow. -### How Pipelines knows what AWS account to authenticate to +When creating a new AWS account, it is necessary to update the AWS OIDC configuration to include an IAM role that GitHub or GitLab can assume. When using the [Gruntwork Account Factory](/2.0/docs/accountfactory/architecture), this update is performed automatically during the process of [vending a new AWS account](/2.0/docs/accountfactory/guides/vend-aws-account). -Pipelines assumes that each top-level directory in your `infrastructure-live` repository corresponds to a single AWS account, excluding the directory reserved for [module defaults](/2.0/docs/library/concepts/module-defaults). Each account-mapped directory must have an entry in the `accounts.yml` file. The entry should include a key matching the directory name and key/value pairs for the AWS account ID and the root user email address of the account. +## How Pipelines knows what AWS principals to authenticate as + + + + +For HCL configurations, account mappings are defined using environments specified in HCL configuration files in the `.gruntwork` directory (you are using these if you see `.hcl` files in your `.gruntwork` directory). + +Whenever Pipelines attempts to authenticate to AWS for a given unit, it will check to see if the unit matches any of the environments specified in your Pipelines HCL configurations. If any do, it will use the corresponding `authentication` block to determine how to authenticate to AWS. + +For example, if you have the following environment configuration: + +```hcl title=".gruntwork/environments.hcl" +environment "my_cool_environment" { + filter { + paths = ["my-cool-account/*"] + } + + authentication { + aws_oidc { + account_id = "123456789012" + plan_iam_role_arn = "arn:aws:iam::123456789012:role/pipelines-plan" + apply_iam_role_arn = "arn:aws:iam::123456789012:role/pipelines-apply" + } + } +} +``` + +Pipelines will authenticate to AWS using the account with ID `123456789012` when a unit matches the filter `my-cool-account/*`. It will use the `pipelines-plan` role when pull requests are opened/updated, and the `pipelines-apply` role when pull requests are merged. The `pipelines-plan` role typically only has read permissions, while the `pipelines-apply` role typically has both read and write permissions. + +Most customers prefer not to have to explicitly track the account IDs of AWS accounts in their configuration files. Instead, they prefer to leverage the `aws` block to parse an `accounts.yml` file that contains the relevant account metadata, then reference the accounts by name in their environment configurations. + +For example, you could create an `accounts.yml` file like the following with your account definitions: + +```yml title=accounts.yml +"my-cool-account": + "email": "my-root-account-email@example.com" + "id": "123456789012" +``` + +Then, create an `aws.hcl` file that references this `accounts.yml` file using the `aws` block: + +```hcl title=".gruntwork/aws.hcl" +aws { + accounts "all" { + path = "accounts.yml" + } +} +``` + +You can then reference these accounts in your environment configurations: + +```hcl title=".gruntwork/environments.hcl" +environment "my_cool_environment" { + filter { + paths = ["my-cool-account/*"] + } + + authentication { + aws_oidc { + account_id = aws.accounts.all.my-cool-account.id + plan_iam_role_arn = "arn:aws:iam::${aws.accounts.all.my-cool-account.id}:role/pipelines-plan" + apply_iam_role_arn = "arn:aws:iam::${aws.accounts.all.my-cool-account.id}:role/pipelines-apply" + } + } +} +``` + +```bash title="Infrastructure Live" +. +├── .gruntwork/ +│ ├── aws.hcl +│ └── environments.hcl +├── accounts.yml +├── my-cool-account +│ └── us-east-1 +│ └── dev +│ └── database +│ └── terragrunt.hcl +``` + +:::info +The HCL configuration approach provides more flexibility for complex authentication scenarios and enables the use of [Configurations as Code](/2.0/reference/pipelines/configurations-as-code/) features. +::: + + + + +For legacy YAML configurations (you are using these if you see a `.gruntwork/config.yml` file in your repository), account mappings are defined using a combination of the `accounts.yml` file at the root of your repository, and the names of top-level directories in your `infrastructure-live` repository. + +Pipelines assumes that each top-level directory in your `infrastructure-live` repository corresponds to a single AWS account, excluding the directory reserved for [module defaults](/2.0/docs/library/concepts/module-defaults) (the one named `_envcommon`). Each account-mapped directory must have an entry in the account configuration. The entry should include a key matching the directory name and key/value pairs for the AWS account ID and the root user email address of the account. For instance, the following `accounts.yml` entry maps to a directory named `my-cool-account` in your `infrastructure-live` repository: @@ -25,7 +115,7 @@ For instance, the following `accounts.yml` entry maps to a directory named `my-c ```bash title="Infrastructure Live" . ├── accounts.yml -├── _module_defaults +├── _envcommon │ └── services │ └── my-app.hcl ├── my-cool-account @@ -35,7 +125,10 @@ For instance, the following `accounts.yml` entry maps to a directory named `my-c │ └── terragrunt.hcl ``` -### AWS account authentication when creating new AWS accounts + + + +## AWS account authentication when creating new AWS accounts :::note @@ -52,7 +145,7 @@ Pipelines manages two main types of infrastructure-change events: For the first type (add/change/delete Terragrunt files), Pipelines authenticates directly to the AWS account containing the affected resources. For the second type (creating new AWS accounts), Pipelines uses the Management Account. -#### Management account +### Management account Gruntwork's Account Factory is built on AWS Control Tower, which requires that new AWS accounts be created through the [Control Tower Management AWS Account](https://docs.aws.amazon.com/controltower/latest/userguide/how-control-tower-works.html#what-is-mgmt). @@ -66,15 +159,18 @@ The AWS IAM Role in the Management Account must have permissions to provision ne ::: -#### Child accounts +### Child accounts + +A child account in the context of Gruntwork Account Factory is an AWS account that is created by AWS Control Tower and is managed by Pipelines. It is a "child" account in that it is considered a child of the Management Account, and Pipelines will perform the initial baselining of the account by first assuming a role in the Management Account (the parent), then use that role to assume a different role in the child account. Each child account (e.g., `dev`, `stage`, `prod`, etc.) contains an AWS IAM role that Pipelines can assume from GitHub Actions or GitLab CI using OIDC. This role is automatically provisioned during the [account baseline process](/2.0/docs/accountfactory/guides/vend-aws-account). Once the role is established in the child account, users can submit pull requests/merge requests to add, modify, or delete resources in that account. When a pull request/merge request is created or synchronized, or when changes are pushed to the `main` branch, Pipelines detects the changes, maps them to the appropriate account, assumes the role in the child account, and executes a `terragrunt plan` (for pull requests/merge requests) or `terragrunt apply` (for pushes to `main`). -### Fundamentals of OIDC for Publicly Available and Private CI/CD platforms +## Fundamentals of OIDC for Publicly Available and Private CI/CD platforms ### JWT Token Issuers + A JWT token is a base64-encoded JSON object that contains three parts: a header, a payload, and a signature. The header typically contains metadata about the token, such as the algorithm used to sign it. The payload contains the claims or assertions made by the issuer, such as the subject (user), audience (intended recipient), and expiration time. The signature is used to verify that the token was issued by a trusted authority and has not been tampered with. Critically, the issuer is a URL that is both specified inside the token, and is used by consumers of the token to fetch the public key used to validate the signature of that same token. Assuming the public key is fetched via HTTPS, there is a valid trust chain that the token was in fact issued by the expected issuer and you have typical cryptographic guarantees it wasn't substituted or tampered with. @@ -83,8 +179,8 @@ Typically the issuer is the hostname of the CI/CD platform, such as `https://git If, however, your CI/CD platform is hosted privately, you will need to host the public key and OIDC configuration in a publicly accessible location, such as an S3 bucket, and update the issuer in your CI/CD configuration to point to that location. The diagrams below illustrate both approaches - fetching the keys directly from your CI/CD platform via a public route, or fetching the keys from a public S3 bucket. +### Publicly Available CI/CD Platforms -#### Publicly Available CI/CD Platforms ```mermaid sequenceDiagram participant SCM as SCM (GitLab/GitHub etc.) @@ -102,7 +198,7 @@ sequenceDiagram ``` -#### Non-Publicly Available CI/CD Platforms +### Non-Publicly Available CI/CD Platforms This diagram follows the [recommended approach](https://docs.gitlab.com/ci/cloud_services/aws/#configure-a-non-public-gitlab-instance) from GitLab for private CI/CD platform instances. The guidance is to host the public key in a publicly accessible S3 bucket and update the issuer in the CI/CD configuration. diff --git a/docs/2.0/docs/pipelines/concepts/cloud-auth/azure.md b/docs/2.0/docs/pipelines/concepts/cloud-auth/azure.md new file mode 100644 index 0000000000..b18f966215 --- /dev/null +++ b/docs/2.0/docs/pipelines/concepts/cloud-auth/azure.md @@ -0,0 +1,129 @@ +# Authenticating to Azure + +Pipelines automatically determines which Azure subscription(s) to authenticate with, and how to authenticate with them, based on the infrastructure changes proposed in your pull request. + +## How Pipelines authenticates to Azure + +To execute the actions detected by Pipelines, each Azure subscription must have one or more Entra ID applications configured that Pipelines can authenticate with using Open ID Connect (OIDC). + +At a high level, OIDC works as follows: Entra ID recognizes GitHub or GitLab as an "identity provider," trusts GitHub's or GitLab's request to authenticate with a specific Entra ID application, and then issues Azure credentials valid for the duration of the GitHub Actions or GitLab CI workflow. + +When creating a new Azure subscription, it is necessary to configure Entra ID applications and federated identity credentials to enable GitHub or GitLab authentication via OIDC. + +## How Pipelines knows what Azure principals to authenticate as + +Azure federated identity mappings are defined using environments specified in HCL configuration files in the `.gruntwork` directory. + +Whenever Pipelines attempts to authenticate to Azure for a given unit, it will check to see if the unit matches any of the environments specified in your Pipelines HCL configurations. If any do, it will use the corresponding `authentication` block to determine how to authenticate to Azure. + +For example, if you have the following environment configuration: + +```hcl title=".gruntwork/environments.hcl" +environment "my_azure_subscription" { + filter { + paths = ["my-azure-subscription/*"] + } + + authentication { + azure_oidc { + tenant_id = "a-tenant-id" + subscription_id = "a-subscription-id" + plan_client_id = "plan-client-id" + apply_client_id = "apply-client-id" + } + } +} +``` + +Pipelines will authenticate to Azure using the subscription with ID `a-subscription-id` within tenant `a-tenant-id` when the filepath of the unit matches the filter `my-azure-subscription/*`. It will use the `plan-client-id` application when pull requests are opened/updated, and the `apply-client-id` application when pull requests are merged. The plan application typically only has read permissions, while the apply application typically has both read and write permissions. + +```bash title="Infrastructure Live" +. +├── .gruntwork/ +│ └── environments.hcl +├── my-azure-subscription +│ └── my-azure-resource-group +│ └── database +│ └── terragrunt.hcl +``` + +:::info +The HCL configuration approach provides flexibility for complex authentication scenarios and enables the use of [Configurations as Code](/2.0/reference/pipelines/configurations-as-code/) features. +::: + +## Azure subscription authentication workflow + +Pipelines manages infrastructure changes by authenticating directly to the Azure subscription containing the affected resources using OIDC. + +When a pull request is created or synchronized, or when changes are pushed to the `main` branch, Pipelines detects the changes, maps them to the appropriate Azure subscription, authenticates using the configured Entra ID application, and executes a Terragrunt plan (for pull requests) or apply (for pushes to `main`). + +## Fundamentals of OIDC for Azure with GitHub Actions and GitLab CI + +### Entra ID Federated Identity Credentials + +Azure uses federated identity credentials to establish trust between external identity providers (like GitHub or GitLab) and Entra ID applications. This eliminates the need to store long-lived secrets in your CI/CD platform. + +The federated identity credential configuration includes: + +- **Issuer**: The identity provider URL (e.g., `https://token.actions.githubusercontent.com` for GitHub Actions) +- **Subject identifier**: Specifies which repository, branch, or other criteria must match for the token to be accepted (e.g., `repo:my-org/my-repo:ref:refs/heads/main`) +- **Audience**: The intended recipient of the token (typically `api://AzureADTokenExchange`) + +### Publicly Available CI/CD Platforms + +```mermaid +sequenceDiagram + participant SCM as SCM (GitLab/GitHub etc.) + participant SCMPublicRoute as SCM Hostname e.g. github.com + participant EntraID as Entra ID + + SCM->>SCM: Generate a public/private key pair + SCM->>SCM: Generate a JWT and sign with the private key + SCM->>EntraID: Send JWT to Entra ID requesting an access token + EntraID->>SCMPublicRoute: Fetch public key via HTTPS
(which validates that the SCM is who it says it is) + SCMPublicRoute->>EntraID: Return the public key + EntraID->>EntraID: Validate signature on JWT using public key to validate that it was generated by the Issuer + EntraID->>EntraID: Inspect JWT Content and ensure it passes federated identity credential policies + EntraID->>SCM: Return access token for the configured application +``` + +### Non-Publicly Available CI/CD Platforms + +For private CI/CD platform instances, you have a few options to enable OIDC with Azure: + +1. **Host OIDC configuration publicly**: Similar to the AWS approach, you can host the OIDC configuration (`.well-known/openid-configuration`) and JWKS (JSON Web Key Set) in a publicly accessible location, such as an Azure Storage Account with static website hosting, and update the issuer in your CI/CD configuration. + +2. **Configure firewall exceptions**: Update your application firewalls to specifically allow requests to the `.well-known/openid-configuration` endpoint and the JWKS endpoint from Entra ID. + +The diagram below illustrates the first approach - hosting the public key and OIDC configuration in a publicly accessible Azure Storage Account: + +```mermaid +sequenceDiagram + participant SCM as SCM (GitLab/GitHub etc.) + participant SCMPublicRoute as Public Azure Storage (e.g. acme-public.z6.web.core.windows.net) + participant EntraID as Entra ID + + SCM->>SCM: Generate a public/private key pair + SCM->>SCMPublicRoute: Publish public key and OIDC config to Azure Storage + SCM->>EntraID: Update federated identity credential issuer to Azure Storage public URL + SCM->>SCM: Update issuer to hostname of Azure Storage public URL + SCM->>SCM: Generate a JWT with updated issuer and sign with the private key + SCM->>EntraID: Send JWT to Entra ID requesting an access token + EntraID->>SCMPublicRoute: Fetch public key via HTTPS
(HTTPS is important as it validates that the host is in fact the issuer) + SCMPublicRoute->>EntraID: Return the public key + EntraID->>EntraID: Validate signature on JWT using public key to validate that it was generated by the Issuer + EntraID->>EntraID: Inspect JWT Content and ensure it passes federated identity credential policies + EntraID->>SCM: Return access token for the configured application +``` + +### Environment Variables for Azure Authentication + +When Pipelines authenticates to Azure using OIDC, it provides the following environment variables to Terragrunt (and therefore OpenTofu/Terraform): + +- `ARM_CLIENT_ID`: The client ID of the Azure AD application +- `ARM_TENANT_ID`: The Azure AD tenant ID +- `ARM_SUBSCRIPTION_ID`: The Azure subscription ID +- `ARM_OIDC_TOKEN`: The OIDC token provided by the CI/CD platform +- `ARM_USE_OIDC`: Set to `true` to enable OIDC authentication + +The Azure provider (azurerm) uses these environment variables to authenticate directly with Entra ID using the OIDC token. diff --git a/docs/2.0/docs/pipelines/concepts/cloud-auth/custom.md b/docs/2.0/docs/pipelines/concepts/cloud-auth/custom.md new file mode 100644 index 0000000000..9c84a1d413 --- /dev/null +++ b/docs/2.0/docs/pipelines/concepts/cloud-auth/custom.md @@ -0,0 +1,194 @@ +# Custom Authentication + +Pipelines supports custom authentication mechanisms through the `custom` authentication block, allowing you to integrate with any cloud provider or service that Terragrunt needs to interact with. + +:::warning + +This is a more advanced feature, and is not recommended for most users if they have a viable alternative listed in [Authenticating to the Cloud](/2.0/docs/pipelines/concepts/cloud-auth/index.md). + +Using custom authentication provides more flexibility in how authentication is handled, but it also requires more responsibility from users to ensure that the authentication being used is secure and does not expose sensitive information. + +If you are not sure if custom authentication is right for you, please contact Gruntwork support. + +::: + +## How custom authentication works + +Pipelines supports custom authentication via Terragrunt's [auth provider command](https://terragrunt.gruntwork.io/docs/features/authentication/#auth-provider-command) feature. When you configure a `custom` authentication block, Pipelines will execute the command specified in the `auth_provider_cmd` attribute, and pass the output of that command to Terragrunt (with the output expected to match the schema documented in Terragrunt's documentation for the auth provider command feature). + +Your authentication provider command should output a JSON response to stdout that follows the schema expected by Terragrunt: + +```json +{ + "awsCredentials": { + "ACCESS_KEY_ID": "", + "SECRET_ACCESS_KEY": "", + "SESSION_TOKEN": "" + }, + "awsRole": { + "roleARN": "", + "sessionName": "", + "duration": 0, + "webIdentityToken": "" + }, + "envs": { + "ANY_KEY": "any_value" + } +} +``` + +All top-level objects are optional, and you can provide multiple. The `envs` object is particularly useful for setting cloud provider-specific environment variables. + +## Configuring custom authentication + +Custom authentication is defined using environments specified in HCL configuration files in the `.gruntwork` directory at the root of your repository. + +### Basic configuration + +```hcl title=".gruntwork/environments.hcl" +environment "my_custom_environment" { + filter { + paths = ["my-custom-provider/*"] + } + + authentication { + custom { + auth_provider_cmd = "./scripts/auth-provider.sh" + } + } +} +``` + +### Path resolution behavior + +The `auth_provider_cmd` attribute supports flexible path resolution: + +#### 1. Relative paths (recommended) + +When you specify a relative path, Pipelines first looks for the file relative to your `.gruntwork` directory at the root of your repository: + +```hcl +custom { + auth_provider_cmd = "./scripts/auth-provider.sh" +} +``` + +Expected location: `.gruntwork/scripts/auth-provider.sh` + +If the file is not found in a path relative to the `.gruntwork` directory (you can also use paths that start with `..` to go out of the `.gruntwork` directory), Pipelines will use the path as-is, allowing Terragrunt to resolve it relative to the unit directory. + +#### 2. Absolute paths + +Absolute paths are used exactly as specified: + +```hcl +custom { + auth_provider_cmd = "/usr/local/bin/auth-provider" +} +``` + +#### 3. Commands in PATH + +You can also reference commands available in your system's PATH: + +```hcl +custom { + auth_provider_cmd = "my-custom-auth-provider --method=gcp --project=my-project" +} +``` + +### Example authentication scripts + +#### Google Cloud Platform + +```bash title=".gruntwork/scripts/gcp-auth.sh" +#!/bin/bash +set -e + +# Authenticate using gcloud and get access token +ACCESS_TOKEN=$(gcloud auth print-access-token) + +# Output credentials in the format expected by Terragrunt +cat < Date: Fri, 26 Sep 2025 13:20:36 -0400 Subject: [PATCH 03/37] fix: Adding `Entra` as custom word --- custom-dictionary.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/custom-dictionary.txt b/custom-dictionary.txt index ae96dd0ae5..34ca3cd6f1 100644 --- a/custom-dictionary.txt +++ b/custom-dictionary.txt @@ -60,3 +60,4 @@ minamijoyo tfupdate hcledit self-hosting +Entra From 55ed018828aea44e581df60117086081d255ef17 Mon Sep 17 00:00:00 2001 From: Lewis Christie Date: Mon, 29 Sep 2025 09:02:32 -0600 Subject: [PATCH 04/37] DEV-799 Add GitLab drift detection docs (#2747) * Add GitLab drift detection docs * Add infrachanges to dictionary --- custom-dictionary.txt | 1 + .../pipelines/concepts/drift-detection.md | 6 +- .../pipelines/configuration/driftdetection.md | 2 +- .../guides/installing-drift-detection.md | 67 ++++++++++++++++- .../guides/running-drift-detection.md | 69 ++++++++++++++++-- ...drift-detection-manual-dispatch-github.png | Bin 0 -> 83369 bytes ...drift-detection-manual-dispatch-gitlab.png | Bin 0 -> 98158 bytes .../drift-detection-manual-dispatch.png | Bin 214900 -> 0 bytes 8 files changed, 132 insertions(+), 13 deletions(-) create mode 100644 static/img/pipelines/maintain/drift-detection-manual-dispatch-github.png create mode 100644 static/img/pipelines/maintain/drift-detection-manual-dispatch-gitlab.png delete mode 100644 static/img/pipelines/maintain/drift-detection-manual-dispatch.png diff --git a/custom-dictionary.txt b/custom-dictionary.txt index 34ca3cd6f1..3ccf201a08 100644 --- a/custom-dictionary.txt +++ b/custom-dictionary.txt @@ -60,4 +60,5 @@ minamijoyo tfupdate hcledit self-hosting +infrachanges Entra diff --git a/docs/2.0/docs/pipelines/concepts/drift-detection.md b/docs/2.0/docs/pipelines/concepts/drift-detection.md index 50940dbf63..3ee18f8f8c 100644 --- a/docs/2.0/docs/pipelines/concepts/drift-detection.md +++ b/docs/2.0/docs/pipelines/concepts/drift-detection.md @@ -1,15 +1,15 @@ # Pipelines Drift Detection :::note -Pipelines Drift Detection is available exclusively to DevOps Foundations Enterprise customers on GitHub. +Pipelines Drift Detection is available exclusively to DevOps Foundations Enterprise customers on GitHub and GitLab. ::: ## What is Pipelines Drift Detection Infrastructure drift occurs when the applied Terragrunt cloud configuration no longer matches the committed Infrastructure as Code (IaC). -Pipelines Drift Detection helps address drift in your repositories by running `terragrunt plan` on infrastructure units. If drift is detected, Pipelines creates a Drift Detected Pull Request to track the changes in your repository. +Pipelines Drift Detection helps address drift in your repositories by running `terragrunt plan` on infrastructure units. If drift is detected, Pipelines creates a Drift Detected Pull Request (GitHub) or Merge Request (GitLab) to track the changes in your repository. -When the Drift Detected Pull Request is merged, Pipelines runs `terragrunt apply` on all units where drift was identified, ensuring that resources align with the specifications in your code. +When the Drift Detected Pull/Merge Request is merged, Pipelines runs `terragrunt apply` on all units where drift was identified, ensuring that resources align with the specifications in your code. For more information on detecting and resolving drift, see [Setting up Drift Detection](/2.0/docs/pipelines/configuration/driftdetection) and [Running Drift Detection](/2.0/docs/pipelines/guides/running-drift-detection). diff --git a/docs/2.0/docs/pipelines/configuration/driftdetection.md b/docs/2.0/docs/pipelines/configuration/driftdetection.md index 9fc48a7925..f80f52b702 100644 --- a/docs/2.0/docs/pipelines/configuration/driftdetection.md +++ b/docs/2.0/docs/pipelines/configuration/driftdetection.md @@ -1,5 +1,5 @@ # Setting up Pipelines Drift Detection -If you are a Pipelines Enterprise customer using GitHub and used the infrastructure-live-root repository template to install Pipelines, Drift Detection is already included and available as a GitHub workflow in your repository. +If you are a Pipelines Enterprise customer using GitHub or GitLab and used the infrastructure-live-root repository template to install Pipelines, Drift Detection is already included and available as a workflow in your repository. For installations not based on the template, follow the [Installing Drift Detection Guide](/2.0/docs/pipelines/guides/installing-drift-detection.md) to enable Drift Detection. diff --git a/docs/2.0/docs/pipelines/guides/installing-drift-detection.md b/docs/2.0/docs/pipelines/guides/installing-drift-detection.md index 50beaf6bd8..ed46c2c976 100644 --- a/docs/2.0/docs/pipelines/guides/installing-drift-detection.md +++ b/docs/2.0/docs/pipelines/guides/installing-drift-detection.md @@ -1,23 +1,43 @@ # Installing Drift Detection import PersistentCheckbox from '/src/components/PersistentCheckbox'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; :::note -Pipelines Drift Detection is exclusively available to DevOps Foundations Enterprise customers on GitHub. GitLab support is coming soon. +Pipelines Drift Detection is exclusively available to DevOps Foundations Enterprise customers on GitHub and GitLab. ::: For new pipelines repositories using the latest version of Pipelines, Drift Detection is installed automatically and requires no additional action. To upgrade an existing repository and enable Drift Detection, follow these steps: -### Step 1 - Ensure the GitHub App is installed +### Step 1 - Ensure authentication is properly configured + + + Verify that the [GitHub App](/2.0/docs/pipelines/installation/viagithubapp) is installed and in use for this repository. Drift Detection relies on permissions granted by the GitHub App and is not compatible with machine user tokens. + + + +Verify that your GitLab project has the necessary [Machine User tokens](/2.0/docs/pipelines/installation/viamachineusers) configured. Drift Detection requires: +- `PIPELINES_GITLAB_TOKEN`: A GitLab access token with `api` scope +- `PIPELINES_GITLAB_READ_TOKEN`: A GitLab access token with `read_repository` scope + + + + + + ### Step 2 - Set up the workflow file + + + Create a new workflow file in your repository at `.github/workflows/pipelines-drift-detection.yml`. This directory is the same location as your other Pipelines workflows. @@ -51,10 +71,49 @@ jobs: branch-name: ${{ inputs.branch-name }} ``` -Commit the changes to the repository. If [branch protection](/2.0/docs/pipelines/installation/branch-protection) is enabled—which is strongly recommended—you must create a new pull request to incorporate the workflow into your repository. - + + + +Drift Detection for GitLab is implemented in the `pipelines-workflows` GitLab CI/CD Component. Add the following configuration to your `.gitlab-ci.yml` file: + +```yml +spec: + inputs: + pipelines_workflow: + options: ["infrachanges", "drift-detection"] + description: "Select the pipeline workflow to use" + default: "infrachanges" + pipelines_drift_detection_filter: + type: string + description: "Filter for drift detection" + default: "" + pipelines_drift_detection_branch: + type: string + description: "Branch name for drift detection" + default: "drift-detection" +--- +workflow: + name: GruntworkPipelines + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH +include: + # Reference the latest version of the pipelines workflow, replace this path if you are + # using a fork of the pipelines-workflows repository + - component: $CI_SERVER_FQDN/gruntwork-io/pipelines-workflows/pipelines@v2 + inputs: + pipelines_workflow: $[[ inputs.pipelines_workflow ]] + pipelines_drift_detection_filter: $[[ inputs.pipelines_drift_detection_filter ]] + pipelines_drift_detection_branch: $[[ inputs.pipelines_drift_detection_branch ]] +``` + + + + + + ### Step 3 - Run your first drift detection job Follow the instructions at [Running Drift Detection](/2.0/docs/pipelines/guides/running-drift-detection) to start using the new workflow. diff --git a/docs/2.0/docs/pipelines/guides/running-drift-detection.md b/docs/2.0/docs/pipelines/guides/running-drift-detection.md index d1b1300c38..368ad3877a 100644 --- a/docs/2.0/docs/pipelines/guides/running-drift-detection.md +++ b/docs/2.0/docs/pipelines/guides/running-drift-detection.md @@ -1,5 +1,8 @@ # Running Drift Detection +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + ## Detecting Drift Pipelines Drift Detection can be executed manually or on a scheduled basis. @@ -8,16 +11,52 @@ Pipelines Drift Detection can be executed manually or on a scheduled basis. It is recommended to start with manual runs, focusing on individual directories of your IaC. This approach allows you to resolve drift incrementally before enabling scheduled Drift Detection for the entire repository. ::: +### Drift Detection Filter + +The Drift Detection Filter is used to limit the units that are checked for drift. It is a comma-separated list of paths that should be included when checking for drift. The filter can be combined with the Ignore List to further limit the units that are checked for drift. The filter uses the same syntax as the [Ignore List](/2.0/reference/pipelines/ignore-list). + +The Filter can contain multiple patterns separated by the `,` character. + +- `,` Is used as a separator between filters +- `*` Matches any character except `/`, for matches within a specific directory. +- `**` Matches any character, for matches across multiple directories. + ### Running manually + + + You can manually initiate Pipelines Drift Detection by navigating to the Actions tab in your GitHub repository, selecting "Pipelines Drift Detection" from the left-hand menu, and then clicking "Run Workflow." -By default, the workflow evaluates all units in your repository and generates a pull request on the `drift-detection` branch. To limit drift detection to specific units, specify a path filter. For instance, to target only the `management` directory, use the filter `./management/*` (note the leading `./`). +By default, the workflow evaluates all units in your repository and generates a pull request on the `drift-detection` branch. To limit drift detection to specific units, specify a path filter. For instance, to target only the `management` directory, use the filter `management/**`. -![Manual Dispatch](/img/pipelines/maintain/drift-detection-manual-dispatch.png) +![Manual Dispatch](/img/pipelines/maintain/drift-detection-manual-dispatch-github.png) + + + + +You can manually initiate Pipelines Drift Detection by navigating to the Build > Pipelines section in your GitLab project and clicking "New pipeline". + +Under Inputs change the "pipelines_workflow" input to "drift-detection". + +By default, the workflow evaluates all units in your repository and generates a merge request on the `drift-detection` branch. To limit drift detection to specific units, set the `pipelines_drift_detection_filter` input. For instance, to target only the `management` directory, set the variable to `management/**`. + +Click "New pipeline" to run the workflow. + +:::warning +Running Drift Detection on a large repository can take a long time and use a significant amount of GitLab compute minutes. If the configured [GitLab job duration](https://docs.gitlab.com/ci/pipelines/settings/#set-a-limit-for-how-long-jobs-can-run) is exceeded, the job will be cancelled. We recommend using the Filter input to limit the units that are checked for drift. +::: + +![Manual Dispatch](/img/pipelines/maintain/drift-detection-manual-dispatch-gitlab.png) + + + ### Running on a schedule + + + To enable scheduled runs: 1. Uncomment the `schedule` block in `.github/workflows/pipelines-drift-detection.yml` that contains `- cron: '15 12 * * 1'`. @@ -28,17 +67,37 @@ To enable scheduled runs: Running Drift Detection too frequently can consume a significant number of GitHub Action minutes. Begin with a lower frequency and adjust as needed based on your usage patterns. ::: + + + +To create a scheduled run: + +1. Navigate to Build > Pipeline schedules in your GitLab project +2. Click "Create a new pipeline schedule" +3. Provide a description and choose the interval for the schedule +4. Under Inputs use the Select inputs drop down to add the "pipelines_workflow" input +5. Change the "pipelines_workflow" input to "drift-detection" +6. Optionally, add the "pipelines_drift_detection_filter" input and set it to your desired path filter +7. Click "Create pipeline schedule" + +:::caution +Running Drift Detection too frequently can consume a significant number of GitLab CI/CD minutes. Begin with a lower frequency and adjust as needed based on your usage patterns. +::: + + + + ## Resolving Drift Drift can be addressed by either applying the current IaC configuration from your repository or modifying the modules to match the infrastructure state in the cloud. -### Merging the pull request +### Merging the drift request -Merging the pull request triggers a `terragrunt apply` on the modules identified as having drift. +Merging the pull/merge request triggers a `terragrunt apply` on the modules identified as having drift. ### Updating units Alternatively, modify the drifted modules to align them with the desired state and commit the changes to the drift-detection branch. Each change triggers a new `terragrunt plan` for the affected units, which you can review to ensure the drift is resolved. -When the pull request is merged, Pipelines will execute `terragrunt apply` on all drifted or modified units. If a unit no longer exhibits drift, the apply operation will result in no changes being made to the infrastructure. +When the pull/merge request is merged, Pipelines will execute `terragrunt apply` on all drifted or modified units. If a unit no longer exhibits drift, the apply operation will result in no changes being made to the infrastructure. diff --git a/static/img/pipelines/maintain/drift-detection-manual-dispatch-github.png b/static/img/pipelines/maintain/drift-detection-manual-dispatch-github.png new file mode 100644 index 0000000000000000000000000000000000000000..d95db87b80f0b85c6ed449307258cc9a8c477b90 GIT binary patch literal 83369 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�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�uq*NwnaCa9S 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 z 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

R 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 literal 0 HcmV?d00001 diff --git a/static/img/pipelines/maintain/drift-detection-manual-dispatch-gitlab.png b/static/img/pipelines/maintain/drift-detection-manual-dispatch-gitlab.png new file mode 100644 index 0000000000000000000000000000000000000000..24d7fed38adcc5cc1d298bc4a1578ceff2236859 GIT binary patch literal 98158 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 h9@B18U% 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�`Erw z8*#6NDx4e(bw>t7BgzsJe+&;(8byv%7o~pJ6Sta<^5xDKRyE1GI$1)Gy9NMm3gfqq zTGPRi4E8h6zE=Xx=6V)_pD+h>bv{d*DLXVoQelZYk7ibX&fS|$$kwB1WP~*q&iKd$ zKeU`sanY==cKdl?CO0^jP(64g+aBm>@|%}}zuH;pT*VB|m3T3FI!8A@Y5#K>ja4w3 zBolhxpGI|Vv3~x(hhXvinHr|UPd{E`wh%4CFqMoN6c$=nZQHv~{emo~Ol-es{e*bd zIsfjaE$Gdbu;D6&&7qe4vPFc;RT}VA2qja!(fR3p@dbb=T+a)i@MgKaM6A+9sB|Pf zdtR8^(wy&tbb{*kE>?u~+Gxn+V?*@|j|THDfJf@w;Kzmw|1g_Gd*hqB>p2DeR*#3N zdPEDB>HdQTNYYj`^#PSCuu)Lkl{8jA0I;_5n+c|W9ABl4)X@OoFiniXu)9+AIo%Gb zvBOkqlrB5o?`;inuoH5=xU8(Jw!AwI>}OGao#xk3uX@}s>xzl%z$|;q&@cd*a*U{;8y~@ibC&K3G#(eS) zEf73mmjcjeJTa0U#k~jvr3q#F1d$CEi3Jb@ztDzS!B5VUE02uMA`a`xQ~kQ|8_vnL zkDU+@jNqXS`Imi4UM~lwMdAkcbXE_$^YuvArWQwbdBFCzF8~-8Q-^Cx{1))|-|P>8 zScOe$Ci9!OmnVj7QOq8sZr9B;w+rms z4PSfPP{l$aN}>AInMu|Yv8(_n=8UwiL=|RQGMCf&kYaieoATY&kp!`qT_W^2UBux& zB-wFw53b1C6H{mPWT^!9%a68>T>1W<^-cgfNAs2aUT=GeH=g&pA zqE7k|Sf~4?EsNZTwzSb`Wik7QQwWQ?U6DmF9YZ%y^I~lqa6Ot6uXE6pi9m@{AFRz` zMW>$T=QSYAJxI*jZU#MT@X_hV-Z+17l)HanfJP**A=sSaeRYom!0H}cv;%axU5$we zS_hrWb>ef8&NtqjiD(bu+$EBA=LK$!xTCOb3?yEB}g*=h>^63etX^Q#O^a?ALo%`I4;o;DG5N=&N_v3jf_r-!o(H%rrYln#Ad0 zJZNb$-1voNi2UAjs2AbgLqF!D7W4?kPCUsMJF7iR9o?dEp1LZg7ULCK?P|-x=={YX z?G5S&_VnTUz9>T4eg3QCP;oz-@!VRug`+(%*PTyJasMv@6+V7*tcc^Tn1el#?%QB6 z3mYS>Yz|`YRY1r_6*dcS6%E<@5d`PHcYMgMGoB1HGJOj)@5Zzz7~Ohu_jchWIHEnC zuX>x))Cr2pt8i%Al{Q!Aa(fLi?#@{J##$}n85RSdF7Nj5=jacoAeKR-g z+jN&MAVf4> zVn{7UgioSYr#s0nQiMXq0DE~CdR zBtPrSmRNW@b=Y9MN|Ki3jK>``dtqzL4s8gD480gBP+i7C48(6Py~?y!?w%60-veD> zy*u|ihwhpYen_##K#oQd9Cy?yULK=HE2YM3pVm4o%PNa z>sAjkRL?i6vQEBNiIabGpLoupCTYUK@OJh}LH&DRIt_-VGjPlG-295c-phl6BFFgb zu^=#J6N8gv3O=^;CY^QFbg~*4x>OF|qu*K3A{Kye&qxGj?gSLR7?PP~PMEDM;ZkzD zO_)&<#HD?Q5lBiVNUSpMxb(9d1uf#B&7$|Wmx4~n4xlp(GR;=(US0CFFES9g=kNmk z%l=eLGI<&rzjI!Vo2qd}U5fqg`LV3*Lq^RrQCiUPE>nBXNX;5^u~k9fyBH!J za1jWR+!0qiq#fdTUEo2+n_s8&+29oE+I;Y_`6cdo+G;%?6G@|Pjo zzMWeqN=m{;(E0ZwsrJ3|@M6pD9n==%4T10h$kOw)muP_yIoA`4OUotmGL$@o|b zIJ4>zfbfBBK6S@s>US7%m{`aKS;@i zG#m%jk2r8G(}*4GN3#z4hBps`?w9+)7q24b4R`tUVOhi6$^EEce5C?^^}|_&C{^A; zb8e07+espFvcGcWZQyrt?!d`1P59tk6;P|xdYlyZl{S` zOv7+OFt=U=Wg8W|hDhSyl%79r8Z(h`gmK;8$sT>2x$PGA*z zz;`uvnn?S8@Yx6^`4XEFGkB1kWxPj&I%3hTH9ud3q`hLXNZ`ei9sb61)Gff&T*h? zs5+$l=tg5j>cG)*zm^v^f}z1)p7tG0QjRY3y}Ajy1mZBoG&d3q?6W&vK8Z-s=kQ1p zATN$VgzSfRD9D(NN5^EHv*+ zY|cri!K;a2rUvIhUFsB8OD^Y=ZE2QESu#$iR+`*J|gR}Ge(~{;? zarOd2revPC>h7rZ&_N0D%Q;b#qVun|Ja*jr0&iN&Q&X}Atm{+N)o~(^DKbw})!L~C zc=hXyo&W>FNz3VbxcGojSRy|LvQ-`_zMHD5hs9qx^Lt5H-@l*WC@&nfxzG5F^Ux~7 z=p9oICR3Y#xwQVEo$=@BR>AM8nHVjh;va1Mh58;Yrv7yMqqd_*KFGLTWa9j2j`HVQ z(Wh$+sipnsm}uqfdS+$}7Vzjp&(P538MuetgVFwZlh&WZmSKiKBN9^5^g0~mfN1Za zw6gZ@X%u~z`p0T(6jH=nr{0t4!-r>QgYOym`T0M5Snt~aI`2&?$=;HB_nafKjz?|i zhNh;Ah3fD|(4lUD<^EV_;VDYtZ&z92Gc8+oqKlmDxbfd7;Q z)&E~p@BS^N;eSf`>EBZRw`FXf{ZX4ncB}$1hC#)j>UtCP_DX?{=7WP3-UW&VSsd$k zZJk+L7wt_I8kw4w#9s;?2a^9YK^{@?@>)FHiwq`mAB^Ou`1|`CvfZhhn3)9xNbE0x z^VCZZg$(BhFrnl{e=Xx7%>t*IEG~9cSq)J%2?+@&3)QWsnsyfW;n?FXFJkdGADX}U z^EeDomms*Gc`3<$K(jv&`)!?*eADB#<{cyxSq3ytI)N@pV`E7oB`m7+1o3ngHXsnT zG!os9P3pI5g0b^`iUaxnyCQclPje9@FMZVNL0Wbyd36Zr^|b^e(!(>7xtD{sJCiOa zQ47#x=SmK~ziTcztz7}6CQo?xT;i7-{xJ0VAkR6}QvXYLcrx5u+1^+X6@PuRnqR9I zoNdllI$$}|WD&I~m&5_Gw-_(qs-u4J&E3F`^HdH`5ab znz78;oX8oWHq<0EC~*X)qsv<~)k~P{8-$nqg!sbM>+7p_8<|CO{A4g)LahY%k98wx}%l)blm{oRAD=?hg`KMBIR zSGj+iT^5tTuMP@05%lKtn@sfen0GDS(wz4>XK|%>gt+pdiQ8%)Z%8NOMuBYhT|enP z<)iQUuC8*J*zqh;7!Qnp_t7@LdNW_qWtKigvowUej#iq#1x4-?$2 zrCl^=Iub={-t*1SEfq6662}Dn=8|hWNJ6$;;>8EXpyc)JusSs|>20LTh zi|%kEXh>KI8;eRQ(;!u{gBqAPEsH_=r0}`9zTplf%_S-~kjc)p80cL4oRF*Xhmy-` zG1z60goO9Etx}`%wafV$M3iEH)rTH=Q44(-L#RV6Oyw*uNcCmxfumlf2v6D&8*2Dy zjKlpsKz<2y0KV`y2H;Xl%*Bq;W zrI}rjZYgwEwIfCP9mZsd>aY}eAbv2Zlq-IGe))kv{?XN__bT6D`!Chz*p~reQ~YFh zyY{F{WAz7R_M~#suOuTqjg=qRIk|0jflO*K0T8Nu0|{;$K6n0IN}!c`;hJLU;$+B1 zO9u93r3Q~v$nUP!CuFT_np68Lg82%nPyHcv=iB4j2)N!GFfHqcy?OUC*f$j1ClrU{ zQIvak=!-$_ETgr>FzbEa!=Zvip*UO@JA}Uo$Z(vaSQq7jHOdB8;^_D|$mxWwx$?}= zs{SM(j;mQ{j_Fs{QEbqQ2IjgHIZ>I$x}v<15~Z>FLORT#?Ujo9oq40PBw+8MwsaRc zMDp(Perc~Z#q;OS5(~YOmZV&>+#qTSZgfHf=tulvh*eAN?v)qA!hmE~^{R45`15DP zEd;B}!(JI&frlkL^tWyK;-vTTdC10~$^FD2CC=n6AC^2Z? z#Lf=tFMI-D`K^z|P5kEiy>`xZi3S7L=AG#S*hbI|`TVSAIW^v2DdI*VPTbtl!H{#7 z9E8qA;(aV_rIqai;|NEg)}+YTkAs1(j(D(6*<|K2lr!~GNv%nw*OSG?CwjBNWDTS- z^kvFmcOku-W=HNyBDsB95>_mXavHgS5QTXrG&WH zD^z{GxpITy80f1bF_aC$I&`9i!h&uwKg=TX9&dZ+x$cxLVSTSrI@Nrsv{4c5nGb60 z%#=6h-ESI81rTjoQwM7+(H?7@`svuYgs=5=<|<5YXUez@GwBbFh_=L-KLEYjU;6=x8zH7tWV?om`Uei$eitwqH+jw^DJ@#`-JyKDgM9{uj}Zw4Bh9Q!cs z+dF0Upd>BCCt(b9uxDR%7zq0KxS6kevL35j4w(~H8o`nEd3uYo&>i9k8Z$zjrH#XI zblK}}R_}=Ny)j8ng2Rbdm9>0YbP^756~{oJTFE1CqIO?Vj>-+*&kOl4aMgLZ_JNuo z7;cio5C;njKAQ`r=a+p{h6Wm!@80}&SD>}-Rf8g>E#?!#hQQAslKuO z+`b#(SnC@~1Mek3c4vf|Ux^Q20BKk_p0Xb;k1Hhyk2KIk220_>sf zDW7LVkrSrHb+p`QjnC$DE6u}&AA&-|X17sR8ATpMTQ(kgy}*T`X6+m<>6unLpkfPq zKe?Nu!%9dB3q6`{-6+_Gta5KozG;B}jluDbws zfpGw@B&{4Yw`Wz#5o242Xof!2-JnM#}{9?r) zIyYXe7X3$r^|wU}P2Pz~Cmk^=T=NL3hq-u}`f`WvhOgtPj#D=*WSdv6(C=n!-*cBV zLfJ*0Q58#>@$~SBI24dwadKULt20 zU*LTpH$Q{#cy1)QrSoMI9dtX}Fq&U?TD?j$^?{l9GbeR@zTaBmx8a3|%cGs(AsQ*v z>D+Zh_C^%UKhZg@esKw8#lG3MnxHLw+8{O6)UhgZo71>$&Y9@BynV09WD*eH7n}<5 zW%V!{1f1lj!h+<0W-hDpR*i`nRa9T#)UQ*>1D3MWeZh;KNUs_Gc zD1119yNkXVel95{5Oy&)?^4 z65`##TB!c!H-zBc)05)HEozXMp!W3G+?e4#+s;Rq&dmG%@Oh%;`Mh^-gq@^9nA%?J zho3{y@F|iWM@5OCpy&l1@J*{7c2u}-=mfYF=tNSVO?5OR?|^9bv$Om!f*oIwMH5`X z^3-q{BjgeSNyBenB)bVrkMivd(k`H0Sn|gMqprVYd$^lNEApjM+s`Ltrke_Kg;|?H zDILmE?sj_Hob^3$^k(E!pC(POI|+|PJjqN4T3KZk{x;txARyXfrDB~L{mS7K8XDqs z23PwsLe6$X!W%I)4=wdzvZkmY-AK7IKi?rb(yEIYm}yN9EGG>YHRvl$J68_^N4nw!v7am15?6?!cdxP50;sO6Q0*QvKTjX z6VM%`Tacr}?mLe70c&jI z?2_sVx!>4FisrzcTb8q;SryM-@PEOt^G<7Q>r{+_NIN6N1E$L%>XGi371TY=t#;c# zTwu;vd@*ZS5!LX#o|ZF(1tQH_v7sz%q=)5Tl9Kz`L9Dz(VY-y4%ee2T7hV@w?!LzI z?s}-aGHq8OakMZUAYy#PU2ZM*Z>6zO zyY=`!-O}SYFcK5Z8vk{)j50+in&WlDEy&5hp}cLA&gdP5oC-914WLiMTFVZ{dc;@K zAKROrMvW(hcWG7;m@&ki%MD8WGD0rS)g{`=FlW-SA=W)Z9YNp|-Egd675< zq}HD5%x2h|r?LFktzuYyY-+!EPT3K(E5H)69{ZPcXJZI4KCIRJeiL4GZ`dEmq zcs>KJh|XS>Oz;GjVxsNoxPBCPQtTG zoCAj~wrU1GO|uu>v{HmS1%s3&*hFVsOvYkqZws^OR#|2QDydlWi8sY+5S)MHbe~wa)d@!4+s4#{2R~tISqe9!f(#>;k0deizXI;5ou|I2qSct@- zJ)g7=RAYX{6T70tUGA?YEJNabw^%SUGX2DHaLA7FXhoqWG`=B@{K<{vNcZX?(!ILj zH5`~m+w_%~Zws)|vCYFbce?7R(ppRy9JQ(svEt|1k%s@$9Iek-roqU!@=87@b$qM3 z#loSiG*6GJR_^|CzmPYMhY*K_f`P&?R8B6d7&18ti*4%1#H4$hSYO4iGM7S4vC5;? z>gjRB+kB8+94R9xSU4TD<&L`6HRP=FYt8pvS2OGCT7?@43&8obfLPh68|pd*O~w$cX!OFz4@}RD4S5Fs*39Q z>O`lnLUzHIKI{2^aH3tf2l3>UN*bz&3ZhZ%u*7SIgrmVz$jJ$4Dd<>Iz z4TI3FiljMQ2VW{_CW~&iW)}2GMGg-Wl>=%#lP)ia)GREriFUaW26~n!==TiEn!MAe z3jP98AYdXEr?jYOhHv2uTedeIoYg;jwLZOa$gfooPlmTOsm{?j&vEUTrq&s?vnC90 zEc1k6O`Okjl;|zSkyDNglEkh@lp6N+XVp<*CLlIQB~A7yXK1oc?6yDp83T3@*{F`}73oa;urp7O zff3lX+T?&4Ox^jh0N&e$)BMnrU9mkbmHt|FCJi?So$kxi>&miO)3CuCIS@T-`O^2o zVHAG8elXFxN}hX?jABb%+}uW>#2q>>_llHEs@cZZC|FE+_h7D7NupTfRfi)U^yQb( z*2nkwLfknCqQk-zS>&cVmXeCeZL>5>mfU@($8W3-(1e;?OD${+{-%<&>zgh!dAWz5 zY5vu^2}N;7JeA1{8u5~mm@2%aGWv^9@utl<+v)nHcwQivYiziX*G9tFD~(XL8nraC zfKDka>Lb#C7W#I!EYaxOgZwHOE&cL40T~bAVBE0Kw$$*V&ffT$dIDow)>7{O!3wz# z{|{D(S0Ctbx`qBG3|3J-tp3&Sy*n-@dFZEgWsx6-F){om&-7cNKu))n?G{}vuKbPn zJzpx%nM#YA--w|I4TTn9Q!nzl3GOx)vmm^7CTzwf*Deni(s%TS6;AJGYdAf~ye5>b zybGj%iYk;YNf&R`8;^a0*U0ViSb}>Sh25xoYRfB4^_%56W2Z3L7Xz+pg;VF5H1sr+ z*mR8TG;H{9?S@~SmdIX5+@V=+2W0;FLaIRnQ(&4k19zD-H^@q#D2m{hJ!K5XK3 z`}>+{@K0l>kAIbppPinaot>VJjwNHoVx=C~Cq|||Zc;#Y<0#^wk?aFwJz{WBqH7~2 zb62Z(OBs1vsqYUM3e~_7e<37aTS3R5Sg-H~7*K(1?C!10U`-`;1w_(MrDFo=e0ul) zQdH-Re<-Ri9JlS~vMdC6c4h0vkM}y?Z_Lw(cbb?Q+duj4Z>Sy_KI>li z>Hh^}+Hf%u@RHHi)|N3Ch^pViZLS@KN%|UIONulS-DBEn% zUvr?xU@@GbN=qu%4SklTwa0F9{ksfJ{&aJ`A}}hJxQPfMKz`RfT4?VHB$CNKNUOG3 z(>p*2^{YQek%0Q@UjsMFJ3W0!Iq^wE1UH>U?e@<=Zj>Jg3ec4@N<1Vwh=6$eEtfo8 z_dCV9ug$Kk>Tbk^JI!~A%snA!!JesiQboI3Cn*h1#rTyTD>?lJtgPXsNGQ@{@Pw9t z5d--37mM4;mC}46dIk4;lQSrwz6KcaKq`viV53@;Sb>Dc}uh%iR@sOdU`a>Xi3^#)|ZWsmH3i0qXh*~Zp@YXLdAsysx4>A zqZ4&!H7e=hy|ET^l{S6pI6(R5Vo>q<*;?bvNFQ{SY2gcR`e41~{n;5V2YAM}Kh6Hz zjH{?IJ|n-%7j-fq&+2_aUeT9U4)Ic#J(N4`JufcO=9`Zk=fC}QgG~>-_0mOT0w}5s zRWH;YXKH(taeD z$v5)JkxK^0fK=|d@8;u8#WOeCym4V_p-ac#&6MhkhuaNQt0WH>iwXofD_!)L`%$cB zIB(6z@T?09igT~rzl_sR6w>GtrfG5m2e#_L=y7uq%0-%c`Tf*$+z0v`F4hfg1EVJA zs}XW<2)fG}hbO{;AVz}f3-+bylGxijdy>;|69@!Sz5UV1{)Vsh0FatiWu@&J;xwF0 zizTM`G9+E*;X8M12^nif6YMfZdQtb+&AY@Hf9520!?mzb6?hBY&dkK&|AenR4)u*t z(hi8;eVqQ>RZYLfwG?;vv}Ta!=6i@05R@X687`Oxk*+0~Jy;C7revNH{ zO~39r1bwd(EdVw;!|4`F)veP2hEIWdnf+yl)ud#!6clPD&vbXg&QfY9zrurhlT>=^ zJQ3c(63)sRTtTen`^~P&OE(LSP@7e4PU7WBb+$cUowwCr)Qt}4JL2Tm)NJ(uF5%Nv z?%}U|rv2t1f9?hhQJwGUgS1;t(XZSI*(Qxt{ByD$&rTQuIJix4_>*nB|FBlKJ!L7{ zL)H3YN}Ft++Gi1sP5lKQXk=L3=}ThJrnD@!Vr4tEoKMYTo94`%JY!qD5Wj<=wUu83 zB{u+a+OnDv2v~RX>!wJ*o9x1x#A;(Z)nef;jzVVl7Twb4XMVsZT(W%0CW`q!FbHlE z9xa`B;+G3@RI%Oy%lGsMJugY-?y?o%$#LY=T?ZChZgdhKE->s^kqKy|17vA^tamRg zjZX|euqwRio6*Ej)3$9oJ|<~N~#v7_EbqeZWcrPzV(Dm}aT z+}{tajE_Hs4HR6q8kjvTvz$z%Q)$MjrH^cCt^`hYN5Qe!&gpB;b}3HuQ`v6z=S>Oq znTPi)Chg3Fv(^Gg*;2Tz$e5=&T|1)=Uj(!euT}E{%+yloMzfj`t+`0&r>H>VV{OnI zy4-b8V1dXxlh(Qlla5Pva+cO@4PMRz?xDO*hH`aL5?Ufh zZ*!9q-Ko$l+mhh3V~|A@05`*evd@)5%3TKC}(51u3%%xhtr9v){-pAf-M?pJzXBS zdvxs*j|>(&DK#br#<0QHw)D4nv1s!~0Ne4AzFAK_(`-LM1ZS>wilV;0X+*35k_yjW z(&jg@Ft1i}gsF4NzFDlbndxLiq+kKV7HSslD&Rge-YqHpyFjJO@q?(X6c$0d0)5@H zqMo%qn4Df#vynYeWpvy+$~1*zm)GDTOIb7G`#n((^T^`L+$j8K&Hi=MgFESr+jVh8 z<`Zt4c#hzjqC@3GYKq?eHgKw|#|zi(=7uuwL%t<1RW5W@uDgKt|DCErt?Pe*1O~=^ zN%=AMILwzIrlyP$9p*>e;V+H`WG0J*+8Sjpl5^1;_aqluo7Cu4CJ zaT;lLbzqPC`FdvnrGmc4Tm_=CLt=4)u+`;PFu91akavX1B)%6@YHUly{`LAo)=(2= z9C*H|s>eGZOmK&%fej-*YXOu*|Mv%xZC&${LA-BK}|KKrR0fTjx=?GY8!zrrAYQugBUiJVRQb6M2{~R=L@eh;*`qu z_h;1+4IvF;)wrjxqxz!O`}L~}x@vMqEp$vsD8x&%0?+9v#3dBs*w|a`UVi+*43PNC zBYYE*TTy$=LR{Ri2C{e<)gvB1KEZIfQ6SnrOx~V3tl%;a9-aoaSaF>{t+&kv; zo>^_Q7yL&UD^lke$Bk+E$0^>=XJQ?gIG)I*;*pR5I~UhYsgJND9tf)|z_(DlUORtY zQ%oE>Ff}#AycI4-_Y_c$QtGmU=8Ul-T^GQ>H4Qg-8iL%>R|u&SR+uN|QHYxiA!0wC;j~`SPUe%^A%gQUv;`MCUf)E_*5E55v?}nJwvwquH75n*!d(692AlvH5vc z(CoRhx}Hp)Xmg3pCY*a{$x%>%i*I}0JM z=KGftxyn2~@Li4%rIw>^ z<2c0kU@yZFc;PyX!R{h4i>3!C^`S1j@iabDn8UE(ckRkxHVL|U{TTH- zYbB%Hyn^PxOp;BC>DAHA=RFRie_5AUN)v;PKTOD@pA2R>nn-5gPx6dm9}mg@2T_Un zU$~Mx`72Lv7v#HSwMP^beg9xVjk^CF+=``5w0C^`va9%!s3l z8{P+-!Q6P(L9JOW0)mA9?m})Oe+kk)qcfGQOif+P9Ztikeex%pJ2imUeNk?1ZXIWu zVK)a52($zOn;(w#SpQmG=03Ua@UXUKvbL7%^7YgR3&I$a6*V?BrN<0pwfR%_Z%d=M z=tp7{mXU{g*~+152^05C5slqpPEp0Azr7Qh9B(?n`Im~y>xBM?=K5Xc{I&z6^0)V}(f&?B|C14m*<>E+Y1Kmsj-ZrP>HXxhO6osFV2#p zkw!EdE>7(t3@QG!*e3uZYZt_FDsN|TG*Lk`0}_=>aTabqUh+auDh3&9DA!QMMYp?{ z?Th}_rWL+<28CqaGSf(5tNe47;>Pln;42OOpiklFKMs^U-#_nt*>yczwU=9(B?Zyw zFilA!!gU;w{n3DssGm;Ip4{iID}G)WkCgjF{(VrWYaRPoZwx|CYs`!_mcHQ3z)e@}Z*X^JBt3$5$g+@2Hm+ zScfyCWF}8H`l9m{^W~wB$3b_u;`Xs5f9i8D;Axo0!#*e~kn~p9ve@#SaK4oQGnJ%bgVT7rO*`Dz8`k#^F;b8cU;KtT7atrnw5DnGbWhZgw|TYa;LRSH#~UjMM%gd z8p%!DUGGNXMz;#VkA*5r8*cj@7^n{kX@DJc@dkYV44u1Cjn$w=Wp?d?W)EE^f62SM z^T78zRxEKY2kRFcVGy&K-^F3L5g*OR2S^my1N9paMF^xrE%XY0K707~iFhP#)goLY zav-9Mr9Ja}PWJUQXmujpL|6LcR2lhj?BU_`{V2wmHB*1E<6#{^o1V@MlCv}(aLB-e z#-a%POgh2wTX@Okn1XnGsubaC`tm!zs*f&B5}8FRM1Xh!bs6e*Z)Rbwq@JnV&_$Nm4q*jop+xqV@yDYQje zDDG0+-QC^Yp*TT{yR<-YcQ5YlUW&T}cXxuj-L&VN-@Si)cjlYflX;U&-n?7Z-bMK;DaDL|j?%0@P!d$^SesLv_!_U^VS9xjMr~ zt3_O*Rv1}crFTnbpVPQ^oAo;15cD!<%@rWzYuEmmVqABqaBeVN`cX!7H-b;S(i;=p za&wTjrK2EcH@URG_4o;e*hr3MuGA=dFuK5Ii3+zt9l?WUHzh4JSSk+1^OWHt!uWa;ZUkg)umoOJFv~_O`=W>W+zi6WknRf6f45>T-8G zU#5r*=B(BvMIG^>-`l zMCM0UikSnB^<-9z5+B2#}Rr?et_IB39Qh;8;6_Rv%Z)A|mz)gfkzLwNFI6zBIfl zz0&dQ*h??^+4@PO`?v6^L9-hVSmmmjjUX$69v{afLgLMz0e;b4LjlQ(ijv_t0nP2d z?$IcXB-Hk^RFZ{-AgkIReaT|ErIzY&eXL+Xax+~eYyF=ycus_NO zkevAPaC7bNfYG(SYT$DzW#1z!s{0T@QfSaP90DXC@^U(yl3_y5J=i~vwo@F@o+;7~ zy=4@_^E}c1-dNkt3Y`Suoz29p?6C$Wb*-e=65_q=y?DY^nzU!yo_Ndv=fWr-2SX9@ zHGYIJ6Rg7BGY@dvp+gGZLo^Z4_DBANkGvn`N;7qIXb55`A#Sg=b7CV14VzP4Odk!S zHaD5u#~9L`^HB-AK+(;*WYCAb6Ddl!NfWYUlom2g;@F;NPm-J3fPI;%_LDdb-En0X zaBLK&`OP&V?9=VWvlR^Hr^{s=3W)e=-&oj;AOT_TK0;jc{0O0P52R?*$2>)5a6cd( zn49#vt=ZbS)3tV3fmX}#pj+lOQ(XGC8LBSER6^T(I$c&@@V5PBq<|bUa#9AK$JV43 z9C9^=dg8tK=AXWtQQS8`j!)vLqJ{jp(Fz2noU3tc(Qx&QF?{L0_cV+@Mm-zYI=!Cc z`f}^R^&FO#iZ__mnJVZyK3`>De(ruhqj3f6yZ6_uk0kX|uye7Agi(wQnGLBHe|e(j zHRm$J4%csIpUI6Jz2uB-l=`yM^2NiGZ>t^nYc|4Z?)U( zL|%;o09Kq43+hHa5P=mzV zcaH@c#zv{lUvxSnqF&=8XNIvXF0kw$_C7|wbyBBGKP+W99+1>Ben#Q_mBjYk%CstGvD~fL69{p3|werVjSj3?6oSYG}+T`JqFTM-1wUVS`!!*A(nEw_leGr>ur9*-Z z6pkq<@TlL~We5k-)6;h$|HIDtFf+-jr>py0wtVx0acZD2G7H>a8q#b7MLF>X15Qvl zXyos66}c1*4%~b&|Ch(}!P{%&zlZDmgkqlZ5BsHZIO*5Sf0;4^C2=hNquG>v^WRm` z|EJggW5=}oAC>0JXSiR@|5j&3BeMVRUcHh~u;~`!f1gD14f`1DACgj7qCBiLz$Q;r znvAqGfq(}dDr#DMJQRSOybod^(`mD7C@UM8iT(Z2K7}9_R@xguZ3igF5MfB+)D$VU zxYX3cy~fU>s)?SSp20z6z-qf^R%~oeF9=7#CpQ*D>c>bX%%jbKm}QBZbBY)`H!79`tG8 zXW5Qg$Cr7-=l9Q!ERV0tK)5xB*UmT8=hKAGnEIm+9`DZHb*Se)6FbNVmej)OWBa_I_?mV7GYeJ<`gtYQNl{TzU;m}a-q_mO zniO<`e=KnyJ}@%kb$1qG^3d2f>1wetJCb-y2gZ>$vLh657q}0)wsTM#G~d0+!c5lc zjyyd=;a_1LFz*ku)1eLsmGYiTjG$$G8TWYBKDsxAMHud*)0t&ax_^NAylb%P%H8F$ zzea;`Rkwr2&%cW)>o%%;4`BnciA}i;^X`7GtS7}S-*11t^RYTjV!ZTnohlD(t}C!~ z;2#hU{ZSS@bVMdUhHDWL$O$UHES@~JMa z3453ZUY2|nVoOY0$sq>oR^@vVMALX}{oITyo$%B=N4d&+jSbhw3jkFQ`G)ztW^-eh zxXQ)Z&W)EjeF5X#1WUTJz%8{wkvIYIgp@riHd5;Q3$Wj|M;tr7Md>&cz+$>AKWyy# z{fjv_8=*ne@W@M`Pan<`u|es)FQam+VHO-hN^#byRXI$;<(0ML_L&kOnbH1tp=jrd zk3=LMF4Kh$Vru77u-0d!?VTMh&15D_)vAVuHrLZPEZ0`q4*Ktp`JArb2_#L_+s*h+ zB}b|cZ8o9S?uvSxLV`##cV9+>;~rEzFb(+64XiU`wT2<~iF3UY5x{TA+Z&<>4`+vn zS-RMGdr)UB$MbLZq^pPamstl%6~0_%tEqJyQf|JIe_UaAxxdzhC+@%E+-ASse`1$b zogJ=yj56>f$m*{!o~wBrP|CnB8MB8~AtbmJuz$3%45|4hGOV8))L5%bL^`Ds+WbSl z{4s*y5SaZ@&>L2l`@UnC_O{0lq<|vBYRwlUN4RI0>wUJ<`gpdo$l(4Q zjG8L4!czIJ<40s^V`Lp_&l0KSr{<{ckF+tNHM%5qQfFk@&lY^v{&kj(j5| z%)0mSPyYUrn93RVV1m$=~0q8nvc(Qmv2@fi2J7ez3ds#F8?Dy5VLoM z_t2M}6B0vbb-uu1HWPGwzDOh+^YC%&O~thXiKU{Xp%%Q)TK0YLaWjgP94<+@9k6fD zV0*{V5T%pEW<3`hX=;!fY#cR~{#Z6jzLxpq-2Lg`rQJ$bkKOM$6r*F6%~nO}mj7y{ zHmW9-mXozS#H70*taKJOMO`VXs%9L&A){7$q}2=lv$b$m_YXex6M~bTf{WkukAy8x zq`M^9Hj`DLs%r1U%YmAQ8eAZu^NUB`*g9RQ=aJbDyftsyeH-cQSbe?m4OEGG_QVR? zE`K)D$I~;WuLs+$k#X9j8LfBJaaKosHa|30n@@tkqF&pntq7@1`L+4X!CUepsiiq50<=wbo6)fyc_K)4|EcQI z^OLR@Mpi$YBjIvmJy*4z<*BcND&5IKdho#zHxu^F?Cnu)<*;&RWaVq}?V{DuqK_%ZxoThUI}rT> z{Q}#VR?f)5X4B8^7feElyls>gL~wgwIM^ardsR|Yq#wA<UJG(wH7l-oWJe;@+eDZ-wa--_cNM@txvnc~##<^~l zQxNEG=HCEme$Tb`*g&ftkmVJg$YM-kMohtfmBZZd!E?XT8~{~=aOutk33G*#9%gtn$f=3aA} zHswdsN+lh;L?D?min0w}iefhWeK!?5MIsS7$;xLxB?_2tx4NCo?T7ieFW~dU(RM-# zx5?AXTB~UtOZpC~`SK&FlyZD>&Nd`C%=NIfqIX1(UZ31yJKj;Bdt&tLJ>JVql2Saa zlSF(JVQ|#=eA>}scWc8#$nYLu@35ZgJGRG)RX^=|eT;Zz`pTmw$fO29-_kj%YHcvqt& zB_Y9@=#ZYVpp8>}a6+c;YVR!Dyi=Wezh-TB^UoLH{I(V1oXRK0Ul zk>jvIHESD^H&ldmPQ|d?whNj6FD-8`&?pcG%lI`Q$JpBLT5VEfXJ) zM_U`m>?HW->n}at@4M>OnM<=&q&^aQK5N`EnZE%f+!!c|hlS8I(w*2yZ9g@77q9WO zXV%VIKY8ZB*xNl{JXeOIVK#8yYz}@cgu{Klu}PlT?@sY$U#-A#A?Ep{cV%>XagyC; z>sxW7$C6umGmJlcBfy|oS6?C_`o@p(aQXtFG5b1R4R>zz)DGR(=|0huxuXnS;@OjS z%KmEV`sii9;&RsRK9jq907xhJ} z*2{>cYvp1TE*Dz;@kOE$r_<|kc4q4+KWou#-yM!}=JKnG@9nyj`$E{3zX-E6?{a>D zH@YgT-q~HBXIhL*!vkUxp5PlrW~+dS)20F6Q(0HF{6v*o{Dnrht_En__X`f?@5}hU ze%<=w$*wr4FD+*I*(Go9Z}jFsB^bJ7$O3oRjs2VWJTKs}<_@2+A)dwV+0)Bgd>iDA&S!`F2cf6k z=|S0BuC!0bdQ88WJ$&7{{GDWsl?FAC2U_+2!vf4cdovH(p8dYI!hB>MXs`0PFUE># zGa}t)L#KXjIUS0lY7oJ!SYzz8%aG`=WLCfj{4^mfXe&vgyhM=cZzTWDQOXGAF}zut@5+44;t)=sz%$74{3i#hoWoLh-Tb-EBNcQiH5 z8m}ctbeE)i)O?WEmq}E>b0G`9da(*yD;Si!sIXojj8&j1nw^?}wu+?SiPW!k9N#^l z<(uj>^!ygHtrn zh*1m#{`nLjy89je{QQaA*-1)SKI+;x+Y!X_t|gLAZ{%>A$q~Q(@K>MEtl9%=g-jGO z!E6h!H^r&YNw~^d(B94x@|s&F{AA>JR&9O`RJN1TTq!nKQc4d ze;qaKXzdScWRFMPYgYMtYO}|)pjYtd$`2dyc?vtV=6g$Hl%tHNxVkXGuzVB>r!yn7LlsJmz{|a;bLKtC z!X?&2Zkv|I#kfmX<)JW%a`(>c(NQP2zKBP}uPPDnVHh#eIJ}wMNu_;T=d20Cp$5f+ zesCE_IygsGH7d4Qz9kFBi+N)RW#z|dw;4>6x!YsSL7{|Mxn0$JJ@oQFcx`G6{3%@L zJe}`d5`z3qcC!WE8?==!d(ZaBBhZeP>2fO&oDd;)U~9Xi5lhUFK>g`O{m<*|6uz|i z;*?DdiGu+l}8id`Ya(y&>V`fDqii=E^2 zW!g@5RvK9NDdg`X zb0ugps@5qM&;Y?k{)A@pjrJVTyfJ8Mta8&QEFBsuR>mTkHPgZ3@)1ao!5~nGD9sxK zP41q%{kfKLn09jGr9)>A{$2V0LeIMz_q( z4w4Sv)nL`iH}ex21TOdVd?r5msA^GQX2MkdKU%!dVY40l<% zG8Kq0sQer+`E}Zjmkn`H4Km?sT!N|fH&wD8NU?&D!wUli&lm!Ys&~T7U;esm*2%`w z%38(9+F*BbVjGK$timr1J=HQ?CGUJ)cR25XaC#X1$WI$sq68PMTrQSD<4)_42A{pl zY%P3L#u5Y#9hD_z#cwORRkG$YX>_E|^1hi%Tf4cAPynQ}mmlt!6|(RyVeW3L1}6$0 z@qT@s$a_=rr%YI=pq!rEs!`x`c3D_hdV`YG-OC~ygt~O0d*w)5YsQMhOt_WXbf>iG zG1lS`g{JgJ8LEWO^APyY_9UnNDz*34piRPEE_JrHI3hvsvV+BA&eRJYu&s)kUG-~+ zSdJ%xVB6BpsH}9TObVxt?+1bvu%bMFZ^Hg*Akn=MDoZ2fTdbPmg-(rE3;5ZSopJL( zvkBp3NfM2q4|BLuy@iscU2vsAiiD<}n;Zd#ex=>U2zro9zi+UjiAr6@tTw*YPGIp0 z8=~rh-PeD0ow6AHIK=}kw~2vDH7W{83$fC$STOSQ@5?tPqB_hjk6W)0}Xpb@ZhyL8H4;KAH zg(SUF_Fjt>d8zO))bry2z^`h%6WgyRUAf1RD{f4;gnQFRJL)&423+^(Hqe4qY<1Jg z5$I?$uu=9rlp$kV{iZveOZ6BAQKO^G%5i>{3Z4G@xYi3ptL zCRXc(l5Aivw+XT8%uuBRqz34+f}Jyk7Oga84nPwin7W{)LAyTBIWH*b1^@0wnJxly z^IfdzS0`oERQc;s8E{{|%BU%N?p;KB0kO1vbh;a?mWON^M~CrqG!k+Vbd+@YI~p{G)4!Lte)p-V7~!znYIYj3%X>IoBs@e+=}_rB?z-3ayIJgrEXo>dLQvSK+v! z;SXJEbL8l}#-z}4pkEF+bq?xjLq5r0N-Z_o&6J#WLJuxV3V{H*Myk>v9;xGi*aGf1 z3t2CT!h3ux&wGoQ9+@Y)X?4yg*;!6TlQT7Bw57A)K1}~C6X!ZO_xL^Lyufgc-vg95 zfgNSy7C(Vgc}s0%e6loQ0jjf`f*mH1(1Yf!esgK>lDUFGo4d0iC2XM(z%PE zL0&DX>!bfBxYr1K&k4I2`tiy@tCuo%Np%yh*fQZ|3pFLEn5^)SsII{D<$i^|_;mNc zjhKHG35NP%NegZJgGJb}37=}oyCSw?OsPJ$orMH(bnl8}_B zB?{fzBzadXo-gSwCJnkW=lJRuiqrW@S)1#8*8TfEiAe@0di-d4_yu9R3`(n}nm+RW zvg=$WS*r7a>I$k|%`8o=jfIS94E@>#_~6LNKv_=mCWNHWXUA1EE2MxDo|L{gAl)w2 zR83{HGM?>)IRhn(CQ6+&w)vgbJF-qP79PI9Z4H{@6K>O^OnHXPHn-=8Z?8GV=AH~% zY|}Bwc~7qos?s&7rZmluH~uy&HFTfXul6T%EmCi81>OSIJZkR$EImL__rY4Fg0k|3 z|6^C|!6z^b1sU1x=~_~EG52B-ws7~NIK%CIca5SU0DyEMl1W;uy@VYNP?a*1m5mhF zyRGo27&qw5$+C4*4E`OQ>yTFv5~8gw+S7m0rYdeSEs;_Ta@XHpFS%+q4P zitQX25sB5HBg}9WoD@{7`Cd3obW>;)9IP!nRuCg871W?l0swj0_01@+Cy!4TpunMz zABHCy>Y_cOBTOxUh?91!8a)xgv01vGLPm2_4uoG?&xl#9#7TA39Jm=Hn-hSBcdb34 zdJJ&Bs3O{$sg$}IoMgw|VzdE_;FU*W5*8IR)Yz0D8#6=kg8V%oF4q2^wqMOpZU#35 z|H@MJk#00zIaa`OKdD^8p!qXdyXGc&DO9g7roN`ncJJw$=(plPra`7gMk=Y{g6pB1 zF2S^y=y-|hZC8<;qUe72Q7;Sy{Oy&o^6K``&!;N5HyzSkGUjiDLBB(jZrG1S+&3og4ee0lN6J4+ru0%a7Jro;jezf7BUerDSU6qF zS3AM|Yg?Kpx&x2>amP`@fS=fnKvE^oDpObP5h~=9PG0(D3asn$tf^L^%(93D% z;XahQc?e>??s{j3I~pJks*9)A18tBW?;y6*xD2j4YdOw)<&Zjy6VnWj`vLqAf7*zS zI^VU3x7vYs-(M76mhS43rx{s5lD??w_E$N1RcBuCf*w=p@h^F{)n+G=W`CDlGU8;w$BKi%;4Bi zhs%k0ZXd$Q$w}U&4@RQRZC6E3+7ad{r|a!Pn0Z&yZG|R5^agK{f`};qsb6ooY5i1h z&fqfc-tbk=JGH{dsG{_z=Tm@6rIkdSD@8*(Y)J54&YJb_ zG#NEAY=CggZ%WhGiL++3r4F#Y+xpKRmd?bda`q`T=j2x{-B0`E}nR+NHzOCcq;DTH})zd1I zfeFKr;f~f7<>@-^yLBMiPmqzHg-BedbA4v=?qt#B++EgdWY~&l)`s_-G$T=ZufLra;R=evYx?)A5~RC_M%EWg)VQg;XInGpytwHF5MFYcCOW{Q)Y zb)P;~8gy)!>`UPIDQ-Hz$L4OagrUu9b0rk4@LUi)lz)PCA6E$W@Uq+rReSu-QsNV9 zCYHH$ehS*ZOP=_kbMqG2c10T)mnYSl8Nm$Y<*Mh29*6XL)0a6T)0pu|@VwG?#Ur8A#;oKkk^$=5fQ)<9G0)S) z1Qr(5rD`kJ);m8rnA4!%bCT~0_Ya-SXW&^$Y(aIVAsgyEEuGVc1AZr1 z_X$rgYQl^C$~XYO3CoRz&yV1ZqvC5`9aTC^GH8*LWe(R<339Uj&gPEOFN)4lh%;qx zlVQooDj505sp$y+c(G1)!CQk75H1KSCbs~Yk?a-MQp7a4g!rQ+>anA8jgs`ow;CZI zxZsrFxX5CIl=43i{~5Co1YSI13-E#@0>F>n%lYeAIQlm=;XJ80TU40jj-}eK=Pxp^ z5I7y>{zzi)@Yr_i!_jOPk&sC28nPOdey=3otu5VK4i^ZDjXIL>d2{my;BGfjp)GguAziW7m3_R~^J;s` z!sj?F%yTSga)v_&0LZyI2w6!o==WgElTIBL*E0=7D#QZ_pwveI_d5EY{yEvR@ z34>w9>&0Ey!RW4g_|u)WiesOJ{)GulGZ~4Lt!MNCt(5!Y&DQa1Jr87`I799p($9DU zK&6nw<2TY2{B^+Rc_Y2|oI3wjX!>a>tTG2eT3D&yq2KHfVPX_TutN6w1eI6uSjIMF z9+lbNu-7?)5*aDR7nSn*@rp7HbBhx(g{8u6ZDGb2Orwu+E-bWqEb66SrhTuUKu(=CyLAj=o0^T(q%1)$zRr)(Z(%>(Djt z%qh(Myv&;<8t!jciD57+#^%7SvG6PZ{wN>}@?QTLly*CoX~San=wSCKB(vv$m_A>- z?ZhuLH|Bg6tE88#;uxU41t(*Me<@IZU)fDI^uu|DoE{fkA_h<`Af#4jcCzHNzn_@p zCZ)U!jkZ~{$(w8C8#Y_E>~tEZJTT3ZPXi9WlR!*g;pEUOveoWf$&z``rc4HaC26dv zXuK`UG+=Z+C9F_3kctt{_|fbOtI5TYt=e6(5G{tfbQJgNZdKleK+%rb{vdn{2D*WP zFa5(}!{`G8!OCFt+t2Ad&b6A3ZZ9RuYiu{lG!UL+0jC4r1ZawMq7;xrC0tFJa; zX^F8?gRw8+UQ%mPhGc&IiME{XAxJn5@cGb9&OjVrz{wW$eI*c&FGzh0Bg!&gY=BO1 zs%-B{3dkc*o7J8*Z8hQS7A0;tM~yjae_1Ec#xiLY8x~%9!s$S*J=ybf8AmDHbhrHr zmHYl#FpyP}9S}5U4k#=}MTLIJqzBwKBV(n{BiNIw7 zE$@%03wrI_3y}EGAdf7U+NT85OsZ+dioN^2O`)5t4{9DLBUJ@+FVf06eXhCJ2Y5eN8HSf{V>wwOi7;jy=(g;;ZslrrPn7snk~w;?&k_lhWW|F&?ZmFIlZr=J z53hc}fOREY?z~bCDG=#rBH=@{8+xlaO};~d&PKFAfk^aMHxKo2(}LA6Ee?Z+6zglX zv}G?|YdRf(fI&|gS>E`SS;iWy=eai)qsBH6uCc!6{3ze6ddY}o?~^Q-W&aNPG6C>k z*9*JZsrs0{_)={VP>XWuK;HUu+u7r%>H_SmC2c*i*0y>na9p5Z?;&IUX|GzCeY_^- z_URlySz%N%>-a)i`~vl2(f`;C4v*{crhB=~-Rdsb5S2VUNj9C)kayxL;)tVTMQ0CI z#Fz!=Gac8rX3^}jvZ#@~aVFO>C>kpo9b79waAZhCScFca4;u?eL4*{onr2g6G@GZt z3{#$uH+SLH+ZzUe6lixUKxDc*sz$KJ7Td1=r7c{gAaz@)KA^{Ht`regDP@zQBd!5e z<;jfASU&r?V?Q02hCGAm)w7?nzjCVd)zarIL?lG?ms!&F_}@V9ixs%F!fr-lw!@xH zs+~Zmflya*zjb0}hbb9#Pii{L49~``(%(%y00`87OX>sIiv-NduuXD=VN|&rbmvj#>0ShuwKu68ygue_s zubRz-=b|9RlYZ&PgzH~+U0{p$#O~L9!-CHR2;MY#k*(wNJ>G>bBLWvn12YX@fjq7o z0G+-(G6l_1qdqlUE}}x55V+c z@^0+>Qoq8g0tPe4msPmC#(p^QT2__6b-8$(#qn|c!$@B8hkpQf9BQ7%sbWu7JYF2f zt!XdyLCHD68QwZ{ZI8YF_QIoGp2x|N7Yt1y#)9BX$MF<&ALuPkD)FmSX>Jfi-diR(Chd55F#^!Xu>~XQ~ z@q}-jWH6rp*+Di+#MUut%r2Mo1~V3fG>gyMX<@jGu$-u@XuMH@ACknXVfX#SiTTlwCx za%Z+xT3{ppC~T7MbFSE0;L+~g$20JJ#axy|cPIcLy0PThNKpT!SRso5pSLAa7gLp; zMUD&~f70t_2I90wS~gfNc#VXO;j~of{6UZKcpQ0$#aW*%!)KoK!~fG+FF+9mx$28w zl2vU1owf&Jx+`;Akx}jpO22+<>JGo>CAj=@Ddv;QNn57S8$V9wFZF9W{x4y!;MI;Q zmZRO>=TD(W5eqdnon&)9XFs|<3!ACG{U77E3uuCaG_UABm8?9YnvKp&7eeHxpYAdv zQQiPD9xeJq+wGh^NA=o$7GNK5DaORMivEHZi^MH=mRRDsZM>c?W@Xv^)Kc}sT3(G1iC+4U?UCp1=Jkg#YjF80wlei|wlr<4{hM(S5e0>>>yZDW zz1k_A*z5PA)fC)YUERQ4nY!JLGmiovAIh)5dTC!4K24|I;w~=B2AMB6odP&!imEJ- z0m1xv=8kkY9Q7R2Y+n!A&F8=iHmuDhsl06TT}q(c^Jz}S3*IwJp`$?-PxfjiHrJc8 zl;uE7k0V2jcS8vMHa9vfwKC8jM2sJ2SHa}i$V|;>iiF>x2^|&{G8fCMA-?-sewK$h zbEeyOf5mRF=RJ<)iY&_?4>nYo$?C_d{|lFQE7O)gI&5q&xz<}imr?Bkx`@N~-i_E^ z?8(#BOIkUbpfZ6oY-A!*1&vm(GwBjwk>WzWFo3>MXs_a-lwB^%xz%0-GpWFq?xYvl%DN zrVDUtFcgl=)eeDwg-w#49ZB)XEOmz@+nQG&*_jtQ-`|F9vYrUyGOzt=qmxfT$3}OB3_|Yh6uX2@Fp#DNr@aVpjf=wl9KnTQI zmHxgweMbC9lBT(HYIiK*g(NJzJ!grNp9Pn>- z%eA_0^Iho>B3)!=Azj~1_o0{Gyfat)Y4W8g<8c@KJdn422O%B9|2Ra|N=EFg z&0dNe6>BcLPdXJb%*gn6Gs94j>$TF??D>pum^AfD38^A(PY#jfIl(pMPqugpK&Iyt+KkOJ%N z|HGSChBC4;!Qd#z`Oc;MgTcO9Ds?GH>G}6v0NUf|>VL=YUU%}pIPDUl&Htd_p@#om z&HVb`*WZ{%|IP%g8uWkg@sjs&06|Em!at|CLkt9t^dF|16tnMNbhj$P|LIWwKY_-J z_?SjFuzx=jEeIjsyTSNj!2%dyBA9HsBOmZ~nc<+meI_9xq1YpFd=vY#d=xY{x98A2 z@(%J)isgOp{j?b;@iK|MbI>#8DSlnMld4+)0Gh|ZO<|94XSN!J_0fCca$6!b$6TMh%aeq+*c zNK|?#>E7wt;THWO$p$CEi;i5qe$b1)+*_REkCOQVQ7>A~f3@SwiozgR!(7}ktA^cg zbp5SkE$KyRVs_uGcu+{;jMGM=JEH3c(VMat!}B(7LxBZh7cb{wn#e*f7IyXh{gy5G z=x*H0d-_ULEV*7eQME}O+E~}vf#jPM9#80wQom$hLt)8GHO%#`L~dT)VXo?DFYjTY zS@g}#ol!9Wbnx?pi{~DbbM2Lae^%Iok!dIF-3pAPz{h7|%8eqyIlI)rBpitI9oTFs zcGHyTHq~pGhe&eC5STkPx0If8_pW2sgFh=XV}qFo@XPHVv2dCPbb_$NbiaZVev0WB zN7W!h5~dAje!I!KNqdz9&l;ivxSqmiG^XrGKLFX#6*S_+Y*?=chtL%l4xr~K_|c({ zy$QZpIN2A3pc47K^19Eg98chBs~F_kdDb3`NiPp62yTS!_fhaCLdiZJErcfCba_v| z@uMGE^Jd+Ubd&m48 zNfAGpl=tVmc~10GzG?L#iF00YE{CwW{%9c3lh&33eN0l>;c8VXU z*W!4(Iuy!S4U3ykQ+-Y-6pdEr8uU7&F_>>jK1R@O7Jgy@0Vz9yTUnNF(><{=w0|)H zrwyme>`z9U0r{>N*Nfx0Ao}Ou2YaGX_%B;rLEhv&SGpT_PJ1bZgGTM|S3wvNR%8oz zfF7k6epF%}hB}{)*NZgk(Y{=arv*}v@rQ1qm_VFJdhBz<#qje(V(tj)HdsXs0{2C+rabNkm(s8*46T_8P0f`P67k;wI zBU!=wV*#k{{#nNtp~UbBX_{5}@89D^q!{BTa@WEE?9KY(p{bY(`aBCb3HA%_H+-&= zdBkFs(DNErSKSj&xM)v>=%dJS7UH7MseQHsy+~Y-{EBaAaDD}DDbeKi#x@d_T$h6* zi;M>*wYfUG>ML;Y002q%>y3=&!44|KqqJ(UUg%Pqw8+BjrvlUY6oS;xg3irLio|naT~hly9tR2J_$n1MbxCQSb)w(l>2*8nJZ3vq(O}0MO1V zZ*hW`uhT{xo#Pzu6!`JB;kgy#YSOy_9CZ?P0sQG`Tdvo{uxNQVlp*nn?zHgc%jnQ$ z$j+NB)uGX&VsLFEp+3j_k9UC29?z$2HEY_hDljkBDV{z%v!3p1mKdUTb{&kkohN58 z2?WhBn2~zdIjhUg->^*D9$#yw`IEZ{XIb67m0RE;I4HkWJN!rbSg3 zkXKOC*7}zFO6lQ)Nbcxr%V>mZT2r$1K}iZy>`T^mQOalcLu)zq;^MC2TfZe4x5AK`_Iz;8>Vq>ezwU6tLwXyps_jj7jLZiUZb)dp4{5g%$ABN-}B>4IU8CV+}l)^{MdMWcbo+1>1c9*$Wno#nH^am6qkt)A%{=9IkN0m0XZM9mJ{`ek_UeqYw^4&sRE_n z`)hN}bF&`Re(@2wUPsl48(Ksz2HF0eMx<9Scu4J8ax^zimDT2MsgFwtjN2QyC$T1h zvKyR-xK)S(sQ={R)uU(kD8tz6!|AzJaJ%t*FDOW4AKjThEk(B#yJ4jy{XB#mE;Mk zt4Jdi@h#Oml!dj*Q;3lD&Y7?+V%nt7-vYju>tM`XDK7Ix22c*Uz1qX?;BqcB_` z7(p696*ZROiHe;TosNW`KxIo!>-#%Kac(!k`%*D7KUbr$&7=wEFnuZ(Wp@P$P+Xw2 z>ZD1Url_n$Z6`sCL4^hnM7qp12KLj_qtA?21GjTL*qPykGF{mIhvQRvi=WhpM+{HgswsxOIcF9jfjfmq)WR7m=~_}

    i*}NGrvnyiT%UbK&(i!73?tDG`=`>NN;5djd=A#a>&e}f%XZ-7JvnJ3ml8Y z-S5C%{e&aZCTcwOQI}>EIY-(Eg^yE{<-G91dLj?e+dCmJfYjLepWClH_si1vFBYi< zTyllSSqIu&@Z?Q6EqRNG`S;h}OFcQ#mwIh%8Isy}$ zAUSNIlC$kq!9PkwCtEBeFHyh9mo-uR^vANftBNfq#3?eQ%Oir0tA2hdTa%f>9QK6= z%N}J5ev0~sJ(vA`j4rx_&HcL`W&0`2pgwesHoOS<2s&Z}RmkMQ0A@Poqt-dGs#t0R zsCmg$Z2mMGA)qy!JT7RA()Z_esxwJjV9$;o(S zJmEJRpp6uH;qD<8Ha5n zP)`^K*^ciAV}lO5nmQU!KNYBAQ=9H#=@DgiR#s+aNSmORm!kcdvhe3Tg$O$-!qwgw z%ga!(xc;t4^8(0KwA?)z6)nZ{TS288};P;%r7Q>;9){pe{t_AF=&qq)5>2Np$PJS?^b}$Jwv^$68l{+rR zv~;ae`YL#YH{i!uviMcC-`(@+2NDoGyqbd8E?Aun#=pyw zOGZ9VcL!5~+-KQ^*wW|=`<6YwySt=ZhSK%Mn&UYPaoBHE0Wg0Cf%f%#|IhB0CgRF3 zt+GP&YPHh$9RUj=lS-3HJFlB8p+Mm|D@BRPd*9hic*LkMZ%?cK8i6DNuXwpQUSs2g z>FClfWVn!+sIjt@$0{Sn$8w~WOlY3!3L8z_GfHOmi~D=$qp|H~ghM0c{A8|c&)a(M z_Wy^nw+xD_>DE98f+a|Bw*+^04;I|r-Q8^X=H-CK43 z+^YGptETtr-M!k@v!1ouZ74c}A%BO2C`X6Stt%MbLEzDDgcv+>1wLf}a??nvmm}rp zw0Wnx-eiZTh~K&(B~_&6s>=2(ebkYCB&;@dEs<;#2Oty2Lj zyw`s4qss2*N{G4_or~gki`sa{i2h_)Zi`Z8CkQFE3puQ=XyFTzAnSn^@@LO^rZU9< z$E%;bUduMW(i&bj23>;W2U0mq5|@w(0K}TCEcU#~yqk3tUbooky6DCLdltsj$_>-q6xLeHndAjwcnfIKu-{FaoI?J!M9@4+LNdZpb z8750^b7GDM=fV-=#VO^ftf#zouYqDJ>-eF6=Li7MJ=u$I{#|CDC519E={7FyMwm?l zkD#NPiUq_@?VEO~OtM1F5|T4ZI&m@NcwT>SZJkyIPHwP2rX?rmW=b8ubG`<9d$M3u z{MQofpw-c7o=GW{%hEq8KDVILPe+h;)vNI8Q6}B1cO~4f6c3JY~tIz z|7)^`$6-(X4-Ow|_}?&g%b^vP(DYYamZvNQXFBtve~dCFO9|=vlz{%)5S&rvKvI0K z)UCbTF6k<;B`zf^Yf}7GBR)Y11gh{zBl~;29+{0#-3OcQQsWf(ABQ?0O_ec3d*Wgv z$qvx^e;qNVs7x*_#Ds@;IXHp9?-k@5-rU}%{l(_(dz7hih&EUXhIIQUI&QBaB zWPmObuF$22`Ut%keHa5?6}-Qqc8RHGOv%14}HqWKNjliaQUmKVE16JKMXh9 zQ3}!jVh}eb1=VDTqbR!&SSQ}NznfUH}hm636wPq{WB68}fq;lNio|B*d& z%kugq+Wk7}_LnmpYj!DN;i$Cmzk?49k_22>{7>wCDXt#>zwNh!{4bjG-&SY-rzGj* zALxJIJG>WygwXpF;rCCCaIgIT7mD+LB1T64n{c2U=Knt|^k0Ep{r`44x{>dtv=b00 z3g@JKp(37$8=o8xc@<3qM^#Q}#skO9pWayy=(Qzo?}`B%98~gl)u}>I_z3Ahw))&y7T>Cv7uY_+=|J;FflMs z6HE1}Qt084k?d@2{U|I?WagHZ_MDlsv(6tr@PTz?yZ&pf)S*W#3iqcv?cdKNr^Or@ z9F*4(eLTx(ayj8<#!~xXgZCv6o4<7UA;WTx>veFtKoE<7OEKC7WIBa|SVSL;L zoOR;0GBfL>zwa`wtWJLgtmZV!#WtDa&A9NC*^6vSC!{{}at+!KxN zi-P=jIe^Qv-1Pd7dfH3=&06u_WDcGG4*GH-NJQ4xD${hdXz8otj+3gJ>(Fkjl_w8r z?rcGcqG918?NpZBjVrHa$NRWpPL_(SiK&P36SQF4!>O~2_rOtSaD8>5J9cM_?pr!k zEUyP5SfV|fe`jgmJ^{7^GkDyf#KO{!^g>?Fz6Js{^d7SJahY$; zjWTe&8MGZ|X}#Y!daS)B=8FqO^1TC#Z6fAvaMQ}XD||!_uRoHE+pW5=-QnrjcCbI~ zRMdODLKcMYMbjR>OwME=@r}pFZL!q6ZnzTr167o-+W6X2)_u=#5d14_Z0)RyO8!B+ zHaeTKEXZY6+?Pz&JMc8PEHOpbK9AR3J93mQrQ*Q38~|sE-J1GSBJ!8z@Vz`DHf|qk z__vj(>gzyY()4B)MY+kM%dv+C8Y zFqUlmrMmZSG+IldvNfhC9cg1Hs;9_-$QNk3sNn`{kjb5hs@=xV%ZTC ze%mLEs02x`O<&qBkJ-)S7Vu#|>;9#;%M8Y+zmWySEcg`*9XBanNxBq|hyC`Z(ymlQ z9_LF)ve|}Rq4#DR#X9P<}7WjK+&pJAX`C`U$9d0iHLO^UryV^ z2aw@O8D;Z1FUOyip~ zE7kW6B{7q^9V9%G)?1#?0r|fvJ0dNaXTAsP5fFKjs11!UbbiCAm}vFdF|AxKr|MS* zY^s^mD)WMSLPz%FAI^Uxe_GIQa*R?G~UmYl+b<%FOv3M;#677+dg*tlr7C%_POMJ-ZiZP!y zkOP1#B}Pt{L%3Bv<#beJS6DW?(5jl}ql~c!d|#Tfq?mWco?7C23x)em(jK-hScUd4Z?BO9B&e*~|`y3h%5!He!;$`))8Q z)W&MN94|Jc>@a+g_nZg?Y(bgL*00OZMsrqQg}=fNrC=CI|8BOTNLMtWHEVrdH&nZf zar#wUlw|1x1QswdPHCp9jWsmP=iMZWhwxG+)#o%CKMn)rlEPE*KCiQq6F#KSXPs5+V)^cw%JM8BqMSXteKT6FGJWK+nhw1KUko(`I@YaEu1*yg z`ZR*{IjUy&;{}b~X1nGm$BH!7d2aLGm;GGqmPpXNJ|*LACa+CW2KBFeRB6BH6DU}4 zrUU5Y+Iv!pqPkhLTVqiO#_~vie*}zzVM@xu5riRK>8V-GnhN5Y@Xr7dHwSw0{?Tba z7<9UczLVtfE5>lIJv{&64<4fl#k-r@1ffx0QF&#* zD~JVoR(USM@`K)x>$ba<52A|>&4on)+lk_Iv+%s&N9q~H6NG{BKg@HgN^|V@na5?i z328hHzMaOARgtyRtJ8!4zxMFfuY@c8>PTKwE+H)OCtu;NU>=`0W+JU3Z|ivpuYT%h zC5c*iYZooeGHG^S0{Uy@;5)LxV3VqXLZ;d%#|g&m`mcD&_wtB5#(c8-^QeZ*?m9cfhg>eX~{DQTY~^tDMS*@ zt81%7I&$-EKfI?Z?HQT^;*bx1@%1W>t{O5Fd1RjfoFiQeGukrhF)$rUf>T%8t>a<& z#NyBZ6AG=fhS_1$AGNpuWH2A0EPEdToZ6;)R`t9YtZ8=L;}1f4O{8p9BZmE`X6%Rn zWgiN*Z{br745dNAL}r6*vL^6@scXws2GreA;7X6ZNOem)J!#c zeyXWK(JNj_{-R59AhfvkMH3@JqExcoaf5*4UoLNe71?t`d)(*pZbXI;2^=7%(D0#y=$V-dy79e14cf^fNPxbGnu{xWNqJ*!Sy^6j za!oE7?t!7Bqa&$FVN*LJO<8$kURiTqb@AuQXYu~4W$ssV#m7iVNk^tlFn|J=*vRqI zwp9j9T(qb?hE3L65bm$^>S$?49}*%M*f9|)8y`2T9uSE~z8A(HPmgdq8>sIH=^u5+ zW+=|`Y;y+z23l+zd^{Ne}2dlBKF+iIsj-8GnRz-=Gxfbb!6RdI-`ucT+e(qMzG97h8sYZhYbTX#* zimL(Ae?(EeY62xbXQXR|XULk4bTTd^$$Dp7k}ilM@5%^4V{44uVQn54_}Iv3oD5ukt8 z!WRF$PP-lO(Vrn!b4Ki@5Y{MNR?M5Fk3?G=)G@JH<&q^X?!NnOmh6UA3M_kYQYMQYQ0(*spV! zmVyqKq)`>8V0g&Tk7=yZg{WwE&P$)nBTBPTbvlRXiyf{IOUjCvIkf>eMfsk+S5lQS zmEV-PGSEql0m2a*Ftt1_39w>BmUxUe(8_>2-%B!YRH4#}n(BoRl+V&zv^Z_Dtm8ri zg!ZS?4++LYA&NfAEElNBIT`B%L=Nf)c=c~CPAhlWKOxLIfT1_8OiV7BY30V5P&JIi89hzM3@-lyhBaRL7fpA+PoBnG1KE2{nV4Y9&=VnJGG|6de#n5 zQ53*E?C*jej6AL?Ve2zyKaVYNa`n4ogPs|WL-pp2T!Vl>)#*6vdC6o?lxiy^dKIP0 zid1}RdSTl{bX}Tm4_)B5*UcZcT9uJhZPCSbrMQW3`1op~MW?EvK3{4)SZOiU;u>a# zk~)ywy3;ys(jt-D3r?1Xc08J!=RtB+NPc-RUI~d^CFo?n^^(LC0OSiUQ@NyK(3S`gwXr>pHKC?rN=i(X_5`y# zi0)oeaZ3BwSxgyH&FACXNy-}{0J(Ln%1`ObKgviEDg+zYol&u2@}DhfC@E=aZRbI# z>sVL&J(P%LZiIU(^9#u)>%WucEjG<7f+5DI=Zc)NdyVanPntby9Uci@$xss#5=hd2 zncR*M_)H`zrssh^qW1}u$=BAQjyG>hn~({a0Le@8%G#NExT&iQe)Z!TQPS+VJZcoV z$RMf&#n@4VcW7qLCwaXKv6nPff91LBFW^QL=h68D5Gzo89AlfKTgyE;ELA|kLP_W; zvnr*MXmcUE(e-Rg6vg~ioJ1CIeW>tpZB+B2{qyvRAuDdt@7m%G1t5 z`AyoDdirFDvWK^Z)H|Mgs<}RW?6CHe+A}?0Z(6keCG~Ys&mZD`sI5el&4rCj zqAB08b9G1&g5*pHf>Fa`DZ3@SJUF@ffLm62eRlXK9S3=v!h~kS@sHxd%E_Uj@hVI6 zN*cMC@L@vi{8*1Eb*KWik_|#^n4<7tAwwU5vBfE&>P?`?H~yyf_VPoAUXWFshaxZ> zvBv>?HGnjQv|A_3#p;kP38RXZn(N69p4-f@)$z$N%h#HqRhivSuyU!bWl08Jveupn z;3d&>X?_J#sg}rS>23Eo$Vmj;IVsL zr;YIjqaUs(>hp%O_Qx?_t)c*oq8YWa?)$gbSi)aN_H<0g9n^Xt01H1IrtN%j9jV%J z)n%Rbe^)4z2WIoRZF!pJEbV&i-1HHt-u19m(xPi=8q-xib)*Zs>S#{@6Fp^CgRCqN zq56Lk2=qm(I#WDY%S$&0N7M&X+CF@*i69=tgP56Tf%21-E!)k;3XhJ);~3X+r15X< z5>q$7zj(g9X5dd+rOsnuxREc6d|xi>ch`~}9Fh*$8(Gu92EdgYj%$~@Z7@!xt3Dr& zHdC)Goem#Th>mqmf)AdXMkPWY0LTryV(Vc;mFI=^qiteV`{KK}VY*KwJSkJR{IR(^lwfIT8G%U$zO5r+^%bAGGq&lH z7|#Di=}FS)+t*Jf2&)txM|pPGt#pi{CD1vX61JkqP#(X*plSkz@51ct)h)sOSzFUIBt7}o}aBOE#KarsZ>-jhJ9(BO*K0xRzg4+^sDq9doSw${PHfgkvy=IiUr#x{S^ z@ea;9dR$nDPCy_t1eoyXV;i$>6cQ3b!Q~*agQjmP&&>@TV~<_^f{3e5Y?o45iBCcz zJXAI9?&%>S+7FJNEQkpL>i{+=Fi>4f%ge(foBKAT;~k%mZ%yEx_qX*@U18zw=BB}y8#fAvLo4P@*@{;ujQPJRCB#ZJ2EBefiQ=avK{{C=T@e3re zb?vscHgGEx;+P^*XlJK!fzeO^a4|vwNlGfJol6*C8-Wn=u7HrLYOrjIg^i7hG4<7x zyN-?yEt{&iS4et#`9|PndOB`AMD}%f2V5xeyP>)Mk5-IQ*6xpDjnQyfAzQ9@nHbaR)X`t%G8CT0F1Gc{7=cjh)sZb@qhoSviLh( z!M|98T(*CuF(Wkmr%3RR`TxAjIGJwxKUF~C!2B}?{;9o3@IO@>W1Ih-6aUnO@F8W@ z?|&YN2j$Vpm2d#;K2No~*#;=ijhs0nbey=tg@pQ*!TYq>TAr@MS`mm8%#)@xLAQrbuA)*U> zLX81>mQGr?W*u)R#OWq{;rQNgpeF!4U6@fbpB2!(;x$~)WZhK}Xn7dfVmauENNmdtg%xQ1rQB-UlhPA+LKVgBa@b3R zb)jmX03eeRS4?C(_FJ!Ur9&kxt}uHX%T-4c7u>;BU+QQEro8A<_fzOL2Lt zuh~fhRzI;$)ruJ11%$9klOTFn|MJs{fd*fh@wvm}RaM#BQi4ThL_J2r>v5Rzn{Qdh z14rz-S3JioLrluuO204{Iscs{1GUdK#+X6`b@OwOu9dZce3^F1f%g&4MVVUa&199uhz#80NwR0CxtUvEB>3=g$D{;GHIa+*F-d# z9T$oRycqKso?mB3UNf@30UfK&tq#3Xv)})~3pc(`9{So>Wkl{)3)zV%bS=%W1NnmG z0L~?PZ3Vx^AX~k}jcfm63 z>BP2n$M3BDutEFO6W(@ZMak6&pxeFlL|>MCvb~$n9mT_(a@mj3ObL1^L~hU9Z{5Wc z>~bbEWHHdh=`-iSCe1A}_(Fo^Y461VFO6@LGu>lA=abdX&1^*0cN}p^oO@C@io8&B z932};TX$zz?d6M7ZfJuWhUTIPtIw#x#^-wC;Ehp@6QyHY0$<#BKU$Co69&*vUOfCl z)N?iB-Z=l7L-Nk8y*A}rcKF_!yf14a;fKa4pd@%#_!y}xVn9mQ}ux~SrWG6#Xm1IqC5uqEoxkY73rpJdC1|raa$y-fq zV&EZ7en;{3OUGAkP0fdNq-=I_O-?|kfDW~;9v6B88^|v&r36$92?O{b^U3be;GIt= zZ3_$4gxq$SbwV2R1K_6vevzB^K~Svwy-a&~ytuF$P&TM>4iyGQ2d4+RcUS$%6UGsc zJHcLGYnJnTx48G4Ud#08o$lJqSBm3DD{WZ#U4L%-FfEv<9BeSTG~e|h**=!mjKenr ze5KBxt8t%8*a_dfmjaqvQ5$8p`Y9)@N1h4=2teqae`#)PX~Pw}w#0(xX{D$VT`D%f zFPG|Ie(%rW=rB@xU0&8iYfyVJLgYkqyOmtnMs}JDYfsF4Hq zyTN1i=TXE|gPLgp=ZiglUZ-tMNfRPr-^7jlzIO77J%$dd=lP;Psb(rV&MF^ZH=rSm zB71Y{P|spwya`BuJ6`bIbx(}7X<)U#6an|MqxeTLuTDPQk|Bwp0z#jDZ}=qaHu#(v zyF{{T0u*v!bR^ zZmJ(_X`|MiJP%XB^54W#L{LxZ5Mtqa(=?Zc>6>SGj%zYHp+|fIh=_Nsjig-g?KI9b z=$OeWp>%|YmWrG`>(eHrxH~)jT8^h$V=|B%UNLFNGNsixwj#E!4{AY+_I=UvBd>b_A3YeXKLFt3gS^|a z8czuTFs18$vba|onNH7j=_rd?^rf(I)NrMl03D<8`r+|<0GB4zu>(BC48NI68?cD# zsEZrd%i8f_ugC(>y&vCH*g6>Q#*O+y=bqNf2f9+eqDp2kCZF8^PF{AHU@|(=t7asp znFqf&&YeG8i^l2lH&8tfQk@h;Ryg$TVMk9}Y3X6@s}wcz*~bu$oT|%b?*(t+PjHsD1dD0xPrlN-K&va{Z<^iTEoZS51T zW_OA10yTI~Fd#_a zb2{0EdE$}d4caS!R<*eY^10S%0suZHC<5=eO9u6aGh$3!Vt71_F&hWo~XS)8waZz{0YM|$uHy7)zzkUI)2u2qjf?avB_sYo}GHO zNxtSdeYlHYt8Sa3pck;f5S5j`W@Ht0dFr3&Smo5o!E-p=-RUxizfBT-@n+7p*LZuJ zufi)nR0|~FzHQKW!ItjoTGNb8%UmOS`OP6fRj@KVrhubszh)3e2FfLW+8r`p{^jO+ zzVdh^y=P`NJ}?`Rm5?uBG;$Y|%!=6Y83|vVLkt>CS)53~y&#?MHGqM`x1qD{cKtG^ zCPgYuaVur*BOQ~*FNc-nIpDCzfp2@}yezvwq&@`KiF<+`YSI zpga5-yc#bmh4ff0InCRxHQJ_2TAE9r*<+#3_K7B^GOV_^4GbtHIWfF@gs_kXMqXdF z5xJL5+N7L4pZmf~mjMKCjK$2#Wqr&>=G{t4ox0_;C(h753t^glBq;kFfpB2A+H4cu z2Tzm%H%uhP_Ph1^wmR#=V>=9Myq}%dw>oYcqn~`!Xu-Snwr8n7N}+_l$Q4;IJ2ik3 z)urkSU$gSu+*<0Bzo&>}KkO7vbZ7;CT@-dcywEU zbv;`Gycw(3xrpi7k=2t-gj>3%JzSWyEC|ZEcsW1WE6}{iZcSdGS?!tVK$$vhab0<9 z%Nd=cX>` znfbZn#Te9dS}&FV&(b!ix!-lBXT8Lz5`zZ(<6c?Xj$$+9#;oqdzua~|10Ae_LQ#Ei zr$C2w&iT`ZJENMz=wzL!J)3FQ;tQDCeL0wuhOhz3X!KzY$?`oD+kzvE3T>KGjM#RP zS<+v`5&=TlbiWa;->Vd8z@9%`hC~6=756^_1|ur4>y8<<@%*XOweVba5A4B*E3H(m z-T~a}D?B(rJ|9Dq;!?j@$T!X45DGS?kQfX=M`Py538TxmVCZ~c!~mf)SM`hcMf(J19ak5{Mbfpz6(kk|;mHC0 z^YOJsi*o_aitmeSQ9^I7q-Wfwnm8ekcgK?D`oM~Smm2~KM&=}`bj+4kAyyn?N7A{k-C?!Ep_y-j{9lb51<^M+rIEiNiJVPgz-~S-TeE+Y54&A%A`es zdCQ6K<9R&p%SdAr+5WLPaun0Ns=jZ1W+V8xcB{jvpzdkBuj$63J%eaxeWl6pda=zl z+er(oJL&BwO%(&Ht@jVd3{4Z$vz4tS<2h#r#4n68e(}%Nz7z!1e$%Nz*G}#H1ZiwD zqd)KnR1CP>?kg3*E7p#RvsCO1fBMYbpn$Tfe2l6FJ&fi=r@HpB&9TsV-VN^2kp zI^{R*jpZ8BZ$wBy0KVxnTFfDsnIH(d4IKyPuPIz65wfs72SDENMnoRj`XK}#I*W(azTA{fQ%xpBT2#uv`p*qW2h z@?}c1sWAT0yaJ&OhRPKJ=zHW7OAM4fM9G!1Az%Ct2fwaaY|uKZ^#E>M7VcDR;lqd1 zTf2oE31bb}td5MmJP-u!$aF!k4*`W5NIU4@qg(vmbl`01r}CW(Q>(FM!p*L3fHNq0 zlXqv{!+d@=1oXpJw(VehFr4C?;$qaIq7gpVnT z4pzW-ySpV>l}$zqi{dz5Ns=uK3s2GSYa3yiUoRqR)~i{5otgC#M|OU1?gzi8hpE%U z!ENsLEJ8qRVosMzYvFC^l=6o33<$)csMa~_vv79TYZ6k-IkhIgQP$a5&m^A&F_%W< z%aTSd1-liG(XuxBm~D*%z*z8u4oV9lA{}$YUXh6>HznJ4=@N9K8_A9B#%@IxQ`2Wo zyJF?eDJ$$P^#9oj7dJOhM!@u$Cd$m4XF&tw!=&EN!rDXM1z0(%wFoI_F*SL`#FD8a zY4QXi3`|Cx5F8rvB}#q$QkEv#$ARu`_HI8R)S@pg^&y2Oge^K8_BLKi3!n3)T0bB_ z_!%DZSY?)df+^R1+u3g7qprkIKVnWy+_k`#(G43i-rUwfnu>R15ZZivy9#S$2Eepb zJX1Gj69Q4*VjI&7DUmFOL!;kv3*$H-uoW_LDaCutucXP92+=S|B?|jgtYye7T(GMV zyAms{Z>x)U*+-d_=|-qbqwbY}+VYc3LIIkIT3_v0G;+QYS1gckAH>Ouc^Wc@L|_QI zsc{Tah59<3LPNPUL!T7``&j{RQqbt##(O4V=h=jiy~P({jlnS4SEUN7%jL@Qh!3;r zaw$cEaxfCQrJ-1#A(Yg4lTxozjk6_bP$Tn8OBG)&HlTi$8vvdlq;Ml#*TA9UZ}xPk zN1@<25mOGEAx?N40J8E%Y<8Go6bn}w9}2kT96!$Q`wWRbd;*v=XvsI;_V$c6yV4_) zobwg2&GP@9^Fb7t42&Els5VD(*SlHsT1W(6oJ~XqnpSGmS%!olK1}L}l?}ar!2k>{ zi&bw(2jpQykxm5@NyzVEZ>K#&X@v>>%LQ0y17jipKzjOF;9etIvg;g1A%8m_(8AYa zp>b>n1OX`Z6l;0apc!GGI`UGV>*Uz7Pv^dxuzB3fH;>6}ipgIVf%|hctgFM|6ii9T zIkFlBEjUdG_FGgR?GH!0Cyr*7muO`q4$e90<&ngBrfySy9?7K{3W6V{ZDB^c#-`6n zh5L;uJ()>_rzSsKRbIB2?C=QVlfRB=M0qzL^zAdp*?C+1)$sE2aQKz&pTi3z2SlTt zH`q~h0wuIZ*i~wN1f+Cmm(1bl{&JEW@^Dj9D4#Xnq+l_K(r{6=`RTPd*RM<^GecqV zDVbk>>X_0DYuBA11(;JvSTZu+rR#eiUPap}T369kRc2{dHiQJ?hnv@IHk50m-pS4A zhwtyVtjTfSLc*@)DbfClE>rNWpfIwwg*(CkK|+#5^$Q9*qL(S`sW?)5eX2QKcb9Qa z&27rCTbms_sjN)mV4p)LqbW8vERV*z$&uog7SfPlUGCgN-_0v2dGBGsiOe5Hz0JiA z=<4+J3Lba)9#an$IV_K_u-BKAm?SzBIWjbYI>yKAr-skEGi;fUgqNUTJn7}>2?yYp zFhnI*{T%3W=D_S$S8eNKi7LL}Q$`QHDS8`v3d1DiWnt(Iq$+7?DGpZ}H>!KC_%(a= zLF^S`=p-&YD2CxAWus#W!_LOY!s1|C|I6hbapckAf$K$Y?U{+H>-_#aQZ!QktN7-! z7|iRC#0M|}|`B;#9!$#wOmJX_mU0m>dWnMm~7yC3$7 zZQf;_*tE%|8~qsQIFmCoQn=uyKuMmW%>+{!VJ*6LbW{VS2!kN-3qVXo5fc=a+Szo8K+16>`|;_x9KMhObbK#9zbY{e1$+`g7F6UW z-js+JP!{x~zKphW1RDKI3wH~X#!?=HJ)N80N~+XzNQUxV4eE(T8i4>S+*cm&1Z*mOOAYNV!;7X6L= z=lp_)wl(j7U{#0?*TS}v*;125 zkZXg1GGID^9o|Pq_j7g$)U%wsVXJi5EyrU_-FoTUKRRC7#q-fKsviIlIUJn788#!b zS0FYucNT!03J)^iGZsRELg6>M&XKpyPyLS09AWOU%1nq8lI6_!XT_JRPRx-87p7iJ zq-FZmvPP2a;n&tA)Bt3}j{_ZTqii?$XZiy3I>Ph<5BAYu{){Jl4e)(NxMfD&jOO!i zhx9WA*lL7xQnn#wP~Zo)3{x;ta;`zjbA&T z@VKz|Tc%N7`8X{UKOD-vSud2nnBjn(v~F^uff|*IPtg=7qGd5rly-1G7I#tn7zuQd zqfl}sBFeua=Wf<{Uu)NQvGyJ!K-0qe5%)@7PiA`P1WSD?a{wA#A+f~<)MVXo#*!8< zqP)7$Q8zo{((!~@ZMMsz`6hXaG?eHq`tWMa&5R7q&sg|dx;(@v7`;y0nE>a?}LJ%BNP|oMx^j=3eyJ$t*uKci2;5>CG}j z0Fb?Z9Ojc+Oe2z1!B3D>z_q#~Ky5?2d`EfHiW8N1!QN6GLi}pHqKEp07_PG~`D6II zuZV6tWqadb!dIGVL-APEkgXMD?SXMkD(;TbYKD%b#R>HQlQQfKz41JZyHq)*1c*a2 znjXUgVxjcZp8oKBgIuYwA)2Eb6_nq|9n43%)a;hw_4Au?fJvo9rDB6-b(DY<1WHnK zN@`034Xe*tV^HD23&CrcqBs+Ej!s0`%}z3A;|Dp>ctX0ZkOpN0_|E#+^pm z)e&?71Zhb-JD~^h^1mb$lgNMxfg|klUqy6w-|jp3bNC*pv?pig;903v-1&hPz%X;* z5A%_UJw=eqEG2@DPG535CJv^QOjJ>E@$g|;%{k2(3X! z88{`^D@Gex87Zl;N)9KdIBxp5CfBBe5()t+DJoSrw>dBp$weo<9#R5NPisu-`vuZrNkZ6uKe++=2z-2|KEOP45GJw>^rJQoLEFJb z73C%-x=VQUG5s(d1f33ICNJ*xp)>c?)Oyb2+O11fH+~$UN_ld-s+|r?UO72$NqlZ? zi;SO98I!we#~#|Lkn! zY$Uajnt_hjktfv4bYcVhvj-7<&N;{O)cp5iHSeOF*(;V`8Lfnu%N60}kKF79CF45v z9wWmFHZepP2w8rIR%MiBCAg7SX}G`6XBa*#CdI@{1{DSBrRj0nPj#;6(MGGnB-_s{bJ>qPZWK*P z^iu|Z!kyqTMrlP=UdSLJ!H8kHD^1JCY-u}To)>U@Czak+7V|VbO zXqZ?sA=@C4``BW4v*PGrRdaIhZE}Hoi6bE|drq+B` zw(Zd*+9IZ%Dw7|U+b0!j*q*!(5`-n?FB-E%Au*W|dshJCGw*@gx&XOVS-O44D^z*{ z0h~W-; zca)l%uI5Hp0_d7xM4IpZWNh~veG}>Hlbv|9wruj%8e@3g?+nNF+fZo@akniu`Jo!A zf|;=7^7!FoLVrX3@%@r@1PRK0Fej3JeH=N7bh_|-ti!{7qb7wAOGVYmX`5)Tf$GTo zvrl~V6i#?Ua$Wb;aWN8qU#}bQ@9q7e&0a{PCd$YDp-t`E%N=V{{!K8eH{34gcb2ZI zLbA(!%t%a^MQa4A7$G84YG!Sj?MOn!)=`nR?ELG98@!09wx_bg*%VsUiCrc)R)Uu5 z(3qF|(V(2!1?C;{uW@sM>-}f5iN5_Lr*O2I?1*Y0Vh5`~6ZR(&83S1p8>@-yv^(A- zhh$z!d<~@duPu(kcivuyLUY$LJyIl6(nC9peG0a!GGS_lZRQ~gU`GS zgUrgy?eix@={_fEK^db+lw4K5pf1I?&i;}25ST+~|-~Lee3QE)z4LT3^k1v06y@E|OR>1YIG{M}^je93O z?5&baxa9AT=Ue-(Up@|u_W3-a8#z?HnQXfDer>AyUSRom(po6sPbVT0zT=Vz^p3DS z7tR@o*uc#Vj^~qnp;qfz)`s{%y)xZE&)+D$F`xdU3;y_4KL{1!@tqhvb0sQwPfcN4 zZg@FwdcyvQm!(a_f2|>SI@eBqD)cBI(~Y6o+{e5cqlF1p?SUn2!R5r*+sll9iCnB0 z=-`Q~W_6ho;R_ocI9Pr6*^t9Ba%`Sk?Jk*0bE(th9>%uNMW7-~&CG|KP1$v{Oot6Q zXAlHobBI+CZ!4=?DnK`FN*p$)YHqo^K46Bmni2W4qV>hiqm(@c(QwIKZ4P8|dvO#* zj?e*dov#iys?8c9TSYFYKzT4*>hRM&c34O5H!+~zp{1B>Q&Z@i)+EhQx`}Xpy!5^j zxEjX%;85PF?@EAzsUs1Rl3$G=x9|IJw@8WMZOZ_BrCZ(mFWM2I2s}m<_WA}uV3uDHZ~N z>oqTKWs%au@M2#PP;SU+*)I-JFqf?r!vJBl=(z|}WU4vtM4UyMtM!Z9@RI3?zxs7A z*^v8e&7Z&tDH?mT&ACB3zs^Z zx-PdVuSsp6Jds#9=r0Wo0O%j&1R@G61bjDcr?LfSxQJ>J5X0e~9$i`FbO+|2+maHB zd=QZqoSanKJhC{(qUctoJaweIfRXpF0u!g_n`b`0l?(Y8nF7M&gpnmyJY$)AYHION z0EX|DA&+>b&^qm&yS`)ITrNf_MJETE-&@r)Oj%r_$1W!?TzRt_ZBDEM9Ps%4H#h(E z#L)%jXRig`R+L~%dZ2Oixj#YHpI(RboWPMa&P>M~@GvvF3$gZYa<|ibu#ydVuf1sZ z&l{+;Fe;a`2LN`z=a+9cZ=(r4B=Pv3@@$BzusLenyg{15z;xo)ANN#`q;yAL9Oa(0 zOlUB+A3Xe&vj_>W@*Gc#_1RzG`*>Gz*Fkev#eiz;KpsMsuuDt@l+%)uvNGGKP}Y*b z)-aSL9Qb+r6OlXFfN4dcLHoAo1Z8s>Erp?~0~wrc3%T0zh{r5nMq#v5_GmA}kbhq7 zLjAB^&$G!c=PwlGPOG=#zBRmeVdv)OUtF{>d|&)YP5ZtFMBe^8|Mpw&g;zH>l{6nX zg*>!p#itd_@UGqFV$rVnpk!JZ#;PAJlb@t@@H$*Br00qvD<4U#;J~*FTW@B4{`hz) z6yslepZ{2`Cd)1f1Jpoo+~B?UhYxY<_wadH;~i>y{a!#CT?k$Y)@2pg9n&AD{A<%W zJ87InuxC6TgYTq-IATuix-=S*Yx7 zv||w8Urjk=G)By4^C!$a5WF1(1I@vS{n_u>a1jKo1$DbX7p{6ejG4u`#dha)SM^7> z-0>zDrR4P+I;#ZE*MsfwZO$r6tOdGLF};eFPLTL(#Ub56_a91{9}d6R1F52^}7E_5|oZp%Xi zzJ^kFl_+gn*h0w0q`m8lbX8&EZxT>BpV6m!(f)DmQy}TtW0oV*+ic+dbfxBj@rc&@9rZjY?^mSxvo3t#wpBuMuCOwp)+ zEGG8ErRE}wu`3*I@i7h(`%BESBg=ohoVu{v+`*D;8hAxxXpZHu^al>vQAReWe^ZBj6BbZ==|8gCcN|u%rnp(8JMl$- zWDxU#7as*oUY`zkZA|acme6Kc+^q_K{Y&?%@}v3<1Es9f?qI5CP7_mHX!ZY8cGh80 zbzQ>;6;M(@S{MNZ0g)VX01*VGySp3dW<+TT=>`SqZe~b{AqE(_yL;%4Z@l$>zW4gx z>-pp3pE+~bXYF&=*|X1D`~22go7HwVxPz3y75(>SBRv@sAMCuh2f`R%rHqjhxq=Fs zaFi8zT~lus@2!I`p0H5pbr)xVJ-T?0HTlP*obz{@v2wD^-#5&yQv89&9v&hOL+uf7 z{*q#M5x2aK&95?-TlbutK5yw?f5!Psg!-1^qj5C;jb4 zmXPL-ah2ntW0{G#!WFn_Bi4RL}nacHhPyb+T_Z%U*^C&vmXNkv-pZ zkLN~krW?ta)qTC5ag-2$+Gz6G`lT3gSP(ue)}?cCHOAtkJ77Rc+K_2_oxU@y^?shO*zurUtq4Th(FBfv{(%ZyJga@F8J+LMn_ zP%@bY1=gXdCclB3wZzIXYxs8O9bwqmg^oN@MGFK$eM)SXZM0dHy2w< zjLQ=}CauC(ZiDnpb4}_}Ao-T~IBC_zBXgdt^Jxy0%}oI~@{RZ=v9aMc8FC5hal~|W zwVvJ3^uY5mN_hM$E=P`|TrFy_rXta7g2mbx2v<-O{m=(4Vo;k?U`ET#-mytFnCcmX zOO*Fc3gC=~={;BX5McV%{AUV7fT??1{4ierZr;NzRC z=mY4VGJAi1MYt|YVQ*!+O&jB46nqaE$Jw8;j~agRPRu6k?JpD4yiAdgPuFoSA1cWw$``UKNj}C1i)RDP0Bb5$%#Gl3ri8L#ce@xxIexgJ^davvaa$NGy zuLNzOy3~^4)3ZDQ0MZ#iUxS_WnoWL@H)9sOEuI_EoN)SpN?A;FGJcu*izJG;dKe~T zIP-%^>i!oK+^qcX^AvxP-OI)`V4sSus&PYgg|3`r_>U~ufZ^iFOuyb!GVYInCtUGG zfU9ojqkK6no1)T_lZdelu|Y+SUt2La@1);+8jsZ(FgMAQp>}+N#$a8*sI5QD)M@l^ zxoBiqZS2E)n!rDN=5^2w3eRn1E%q=C&jhdb0cSrkRVH|1zm;pxkS=5^$ZPcBFk3D^ zu2Z|GZnD)~)6wBjQK;p}RnZJ--HZlJS_d+fCwMN7Bib_%7B62FV)Ijj^OeC#yhjiq z+4)NmmZR%fw%25gPRUMOm2S7^25!!kv8p3~kyJ1VN!x-dc-}uR%%_g8=8jE9*Z|(Z zR=ha}XShXb4RtHK5!4zM*fat&>iWl9(2j*C4UYOII}7&?6EOpkGCyn zmcU|4;fLn*I;XspOlz|$m&#=mQzq#;CIK}On^s?Zxq0W(M(y}b(A3qwH!FY0mw%@; zb{TENV>D*|>}an)yBw~y;zq!wrKe-O2}|AnaK z{*6rk!DU+(*-!~y{!+5nWDB3n{zL8t{C^U*|E074iSORWoRF3W;uP5LX*aJ*5rVta z^z;VEwom6vNO32nBoxS;HsEY>IW;j6lOZ`>89X~s-IMDJ6i0-Db+xhO9j~ZNH}Hsd zF9?I0ZjKuxYcNPot8>z)4p$KzCqHX%pZfX^tRvIjN7pUa(oxUJh&zp(QH>Yf@IyV? zllHMiB|ck(Uo2*&p+#h~gp+|SQSbA@2cy{wC|?vPAgDUfjfn?sGKa?&3Q-lu3ehL2uSC5V9l8pHNEWOBqB9b-=F!7sk?!m~rjnM|$WFHEH zS<36m)zxNu%;zd5d6>npj>RRrzkH=V8{+G`hoO6Q;3v(P$l-rbM1GZSIF^ky8SWqY zm+CV`Lkr$JtQ%O+?tUlxKx}%%Y3y@SmWB%2GbsPTqG)Y&D5X2Lmf0THTA%CScTxSN zLBv}Xp1pJp-v#)>JsPy9+GoL5^;XEv^qC|5>nVuIofaeWCjbA7sa14Ni1V&50&4dd z6Ka)#MGUXC1^QC`&^1+1V^ek=^J{I@O!94neLN{jtjy?hE z&694;-HwA1@)ErIbLDsFiW{B)*3&a*kF-7MX5iu z4lc?YEv3y4oVIk5$xe;82nE&c=C2CARvouDQ#pA_?%AtHvXR5YOu=9KI!MyoQSc?R z&H4eVmNQUoK}4|e#K1-nJv(Jw$4L)t@P*1}L8l>B89@C3c&Klu_iv!Nt-@t<{EI!zT)i4yY#e5-*75`k$c*+d zxq_}=?`wblDpQiYjt%2#&TkuP1y4dzMG3|}aopV*?G@pf*G2-CvAdi*i- zGxA{O9%IVO<2AhrF9CV4p3u>wT!__(xE^%eYSp+HxA=lXQU2?N+AW;4-zKw+# zX$FT}P3B`ul>+!;U#?Ttd3GNU?nL;*$60V;VM9Ni6Q0k=_c9~PQ>(pipOA&;bdJAu zO5EGKbQBkZ-K+>-h4fGH9mfTL!8_%j5ksm+4E*`LB2At^$;mcVc{K&fnmh6Mrn}1% zoSX@`i9TMx+JWO>*4OYQ&-65rk4-&hlYy!@u#{6_yhnxX`wj|i+DFEjG3lduGCI{} z-OlFW$rDG0s{(qbTFw@}o}TmBTH6=W3H>y-ax72};hfp2VJ!@M56{bbr_~)z>3GB` zXEweOwJ{ zzHUXxwVZ~dECJjyxiaFsPJiH=1KX`-ev6@=LCbSNvv=MaDqr(Uivx>!o3_46H8yh*JHpfSD~|_kEE`f-G*9RID!Gv z?ykU>lHJpq`j~pRDg)Y2Zg1py44p^?KW5 z*3+vfdwsz_z7TN>e~nlL>F_tSlR2iPaj-cLFA+J^Z>;-IQ4=ituZ)eTND@bV(rfP9wG966VlBd427icoZ2?45nZ{BeR{3`tuJbX$_3vysVRORqG6xO2uRqj@ zn@S9$q0v}>5EoUsudSduPrsG+ZUe%35*OygI$Cht0CAy-El z{d#-Hu*iPX5RX3ulu@i-ddL%-8 zm1PBjSYZ4<%LHCWM>CuXx(qeviw1uGPT9tjh-QwI z)>0X1YxaGb>+1jTuqUdPx8PhlZsTFFU`yQZ$#>=-jGY;03+ApZ6oQAPp z!IWdkozWBkBFWU$nmV1e!x;Ysp2GV47E#%ih(GQ&CQ}xLj#m816v*!dc)<&~;7Hy| zv4qyRN^D^#LXptf^tz&n_gJV2H1JXmqb4ofuK+i%|N1wB5{yJcgBvB>@6y9%+igC_IW8d!+5)D6gqD&!e2NiLn(jw`YtKz-^|B8lX-su8B z+2jS?RWB-2HON2NEu4>(5@B24l{Q{Qpwjo;q1_5G(iWllmA##ie)I0Jih{}rlvmAu zR?E7$dUR^)z}mL42K70HiW{^qbs2$TzuaRbHP?MFnnW~dX#f7bqc8YzVAPLesbb$b z@TLc>n?HoD+2gRAIK1|GbDU-UV?t|6J_jj)n=oO%GC_LZA+|QKU%u<{WO%xAbi?&o zp{5v2z>14kyj_DpvkJ;Y;z# zRdBeRrjF3f*by9XZNZ^0DT)xFx`j6uafdsv#L_CIpXM)&WZpWF$~!K_^dLU=vtmsd!}4lig;74dh0zjjy|la#hkAq^FL^AJ(H)SE2yM^?)UwO$5l6|^jy``lv4Tu zdlySi9h1wmpLE-wiB5{E?VNbP_sQqT_qzp82FGw5IPxP2SA)o=~~-*_Eg94{J< z7UNl##Hp7G5fajG0X_3-fzm4?hV7#`i}{+#Xo!mKT>E{oxkQe3>Bufc0rj{8u(qQM zL$UdWpw;J6>Wuf?MluT*;oTH2UpjQIlepf^DbG_<8?-+DklUo=fy^2n+@w{W@z0U) z3`>tnO3GK1HqC3&pNNJuU0Q+XuJkirRVD84^`hsfSSViqdYvSr*5eU+FQ<|DHP_*B z4VMA8(8gXTmdS_Bp7kOow!$}k!B9LZU~A{6?QK9bqO#gv2R5cMH+ObZ;;(h}OM30B zcGcF8klT+zA6#*#e8x*@;m^#yYAUZr9vLHYQ+A#1 z<_18OSh^L`q4F#vBI^vSc!T)W=T~CBYONBN#2-2mtXhg3uCa)%w#tZ}f^PNdh@E|K zom%?F@$nevS>_rNTPwTA(nC(xR8KB0F1Il0bV!qmmy9^4!a;{P(42Pc)X4uWZI;SQ zt&I3Wq?wTtxU#ONw>P?Ag&NsdQ&_G~jmY$;m)xDNell6kD3@ctva-HzVmhLvAU1es zp=`NAk%TRm=CZ$>jYUOJ(Sh;qY0?38kUWjE$7~3WL(xe~f&@RWDGvFM`h-|{@%98y zND@td)cTrrm&E*t%6FNtNs5>l{ltVM&7P>Jf&=S(i5geBz+iGG7LLdd>ddh}nd0Eq zeCdU?k^ExfVO{kp^lY!ggWpHRF|F4@t+nHIr-#_@Z=x#4$H&+5toRl;d4>Ri_U_mx zVYnCA0iWrsLF)Z{xXy#a_&kmWW#-zik~O)a-d|Oi;f3SYDFuXbcTn(4SlHy_IZtCidEVY#NC~gmQAkZ`<)1G*B z=8RgURy!rXspEqv1HjUO!F8GN6ye#J-6u1pLC8rpL+Jfq~P+P*8 zTJze4bcE&#_4%cZGW|HH7w$k{^R3eXbjD$iK$;G@`!7-?9|Ut8dfui1e}&X8MHAhD zu6J+gee`sB+G;)e`V&u550HpU#u=y&;{j~08Y=?d>n1Iv#G8(;8oF7Os+A?gBnk7Y zoWnn|sKI46X#EDB6-GSUgZfr=Vj0_~;CK2NiY2x8x}+#%ATKOyge7 zEi>jW#vef+VZ4ipNTZ%PMn|`{dGTHPWS0QfvZN1HiFA_+n33OMIXyB}1P-9{KyD%B zNXa4RS1u>WEpxKQtJKusVDd^mC$))leTb_d6F+dzxive++`j2}j-@dqIJi*R+C401 z<1h-2@HnnD3*n=KJ^y$KZ%a*1H@;sU9Kr}iDgjPV*<#Rc&8VkyHNSG4;eBL{h?KrO zLU`wXqB%ij{yyw;*BjUw&k3U$$<2-YlAc*nU0McIfZMgJoy%!~tdGC>-p=YA$Mx0N zjjiPV?7$aFs%tr``Mc0l zDheLt?%CS8stz>K@h%YNVyd|r;4RtgN1yxJ{pg0NpP#JM@@znP{dumMH9{*T`6az} zJ`i5(Ql?58>qr`Zvd%gDWL?!lBhY^RWxkwrkFAETiiwU8AVIsiU^;zl&BUK5#KBO> zD#Vr4MXqNyG$=VLSSv#Ut9BO5wGR;BdaYJM6wvG8wunP4 z@qnLV44C?zhi!2Sz~m{!AftagCt0YE&%V~Pyu4>=|6u+oU=*I~1}uu0uibS{Pj+{W zK)qWi9thT%)tQ+|Emq}sJ7NwgHGfuKZ2pQC!aR`-&mVoCe046&c$3!mH!+h-pJoG?ZU3- z({=@Lw>aNK0E$(NJtq#a?RTbKs*GB^;FA0*?YlQ-8AbzD-M@%x77)^w%qi$+$iQ4C zXx&N5aE|es%s$EZstz={qw=J-0QpN{D~h`FSkjqHbxyeA4Esdqu?4Km>?ZIsb?)K_ zKP%+Ekc`!E|K1D*TUxER?|0c|!&&*eLwIR?%v;@K=_UD{h@J!ODY*L3wMntTi{f6U zA+&0AgaUa|~lae2tJd2qH;OO+EKrAlD;2B*2*jf%U=cl1`a`GDbpAZ7e4e}gd? zwXOx0-yTxgsi3oFIlT`5`e+Y*37TphB>&UuW!dBtJQ^cr*o6HAT76xNBySNL-ky2NQ(r~K{1v4<|9lDJ+TGT@_+NE=(9GRbJ{W|X|m&xiW+8V;7 zm+>>8@T{Quis|oH-xUscn{S+D*yqNj;#_F2Eh459AtfNX{(<&H>|tUqAE=h**W~yu z05%Iz%F)Z!v4bvR$I2o9BMv;|_13h-G#@F{60o-^ zEtACdJ`G&H^QDa5@nH{rUvIQWlC_SP!gp7hzs(DPxnfSz)`wNMX4pnp*J?+Mw?z;q zaW99WIjQE`9aMR1ie|jSuh+ml&GPUARy4Fv&GY(Q+{A<&WK&xBwu0&tE(&R+t?2-K|_6e_#$V=mFX8L+NTAX!Uw-v%9 ztUgbOyLo$hb!S1>1gsF58bF_Y#^ybRpC(f8z5c7OFsr~L=X4g6EtS&f*SF+g_lUN( znPK0n(>LhmYcozTD#R5I1sx|rdZUWdv!(NR1h{xnyY4|#nT6x0Z?r@wNe~s1>N8aQ z!jt@P8==qZY?R3SJB1`OBdwGebCI1ro@!t#*+hRJB;P@Jib_(b-9DaSc$Hc@ zSB-qTRc%euWSkozHBnV4%-61QoYL$+32<4O>M(XljS62MxQJo6q~s7U#1SW*RVtTOSQcbfXJAF)5q+zCT}~p4VmQSA4XL&Ntz@s-cEiYr_HS`a(F)K zq*!iZvpNIbI{$!jjuOWC;;VOfoq94dY%Y#k5RBe)R6yfN>CFA*gj>Eim0UJgoFsma zx8L~1Oaz@5?{%;dn%mDqwf6X(VRhHCf+b@aS_ZV`JUk2`br*9yD1%I%9M(SfKn;F#G~@LJaq&qC&RNpmJJ3+Y<>EJ*gp5%(0vg&IEL3JzpWpTZ8d^F=7x(?& z8&&t~&3}KQHvS56eKw4G44|P6;G6tuJLM;X$^d{mUhtdcKRsGtNw@#o2vgWW!{X0g z9L~Pq&Cqt={7!I)hW4HM-#)&)@c%2SJvZW(&R|6K0@@{*{X(@%-0iU>ozrr*;oP#< z49eiRW&j=RSkNKpizRJR*U&zC*np~s0 zFFIXdZKY<@B=KZIYgR{5(c{LmC@4t#Y)=?!dnYqF2^lZ##C&l6!wx0m6ZmnwK$Q;+ z)%hr9j+EaIyZa#Q?3S{r7H8cR>e)a{PR+oepcED6LEH1rXsH)8GBN)S*7=mSjx}P@nXszIdg{ z56GYqCT%l3-z$R;jA{6&Q~Dm`B9W5>pkN z4DI(hor;!qU=UmLIiGA!kUd&AYVxq%j1Uj7lSGL?b64@E3pAv$9_{U}uo4#@a`Wzq zf00MCokXMZExMNO-I)Q_b?KUicfo60J-42ZJ%M;QKH(H}nR7Q{IwHw8Cj>!3#WEk_gB$_1;sEXE@W(2Z^1ip%Jk z9k?kbHLqF)zelNTv*plXeznI&YgY^x!KiTQn-|bb5x1r;k=`@&QCo4GPf!u(2$gS? zb0{YxF$#_?Je%SJ4Wp-9q6(v2E33;LP?S%L(yZ7tIQ50B-CELQ6tGAd$KH?c8&c~P z7cVm1khbqOPSlDB9ti+nR~$4484s@jVXqrujn|hmzGEPz)C+@FM6~H}!I`aal9Jg1 zw?Th}sbRVVE}?_z!Bx{d`K^}{hw&Z}yV>4$rKk2$@Ox!avWwZXsP!0WjdJT!2R7F9 zJ$t`sR2et4bk|7!VHt7pduru3AAbo&jRt)Q!`ri8($ut1H8xI*23}21I}s#&y{ZQT zj9P|OGNctRJRi!E)2WF}$i4v?meEU#d*@r)H}-5)VL1|kV#Wg>;-gmZ&c6Pv_J9HU zT%KC}oX)Nm<`GJ*jo_3Lh!b!SJH#rV@weQQrk;Lv-=j522vR&vgz3Zbm8as?F$@w+ zYvg{@=~=X?RO{omR42PR%_5`Txbb+(QiQvtUk;+ZK9{w9L)Pa;1M*pW#zgZ=>W~QlyLq?PWH{Yczpo4mSv=Csx1t*|*}2;9D?V#j z^F3X5vnIui4JbWd7Oit^|VRm}0JI!fz#u?VlvR*uekh18en*eF3-C#x7U$bWn& z%iGCiaS@uuy=bq4Bn4OY^s56?#H5{0oy|<*EAomi2Y!UjkC0aSU=XM@v7Q*>F`V$q zio`W-nVCBJx;XbXvc+J;+zYVvS&b|dbe8b_ktdg~emDx@6k;?aizokaA$^-%?1kKw zDgMw`JVB8}(V=x+h$HW|W8A8$t{OAYe(on-(kYdpU+LAkh4H14`seG$J77&N!{({3 zs!z%@gC3SPP|+(JFOZ0Ntj}r2LH5)9rLzFWy1vVelOMh`drgSOy2GP0vt!QX_ax11 zbgTx8p=4KAb$l28{l50`UPC{W37P_aKN{S7_Cv@$8t8)JcX5|a ztC2B3*CX^mGAkUt)hA zUSk1DbJo=4+Cp;+E+z28t47T~O!@+7<~sw)*oW4~KHB2QM|R2+KAhI@86W9psfv7~ zn5DK=E+G!GrkD2Hfd~UNgC(Q z_9dngODu>AlB`n=#`=Bb0;q`*LZhzPa9PLqymya!-X=Ron5dP#eYP?7)JO&uV%F`j zWkeDM1qrlS1{V5dBssWh$(;(h6b0}p{KSoZ*-x!dr4q#HDLZO(B*HuH2nbXOq9-2D z;hn`ODJcn~Pka8siC~UBkXAzXcCwbjyt?Bhp+gU4n#HkkTa0JjVU`hb0YgACcia{8 zWRehvOjngCPc3ib=^E{g-!di!E>7}>1}Vf{x$+llvxo(4bsHfncQ9kI&J|lOjHfq%? z1oMpsv|Ev>A3VeA%T@^}sG(!%WY3GVj4U{GVlCn#E)Q%>J)hbhAj6zi)=GcNYdviQ zaIrN)-!_qgyf}#z?IxxO)*Paqrcw2k#m+?%6dD+hSnudBs^)9rxbm1rb$ca%!(s1o+MZb)}zj3E(bcQe1>lIj0HtJ!)mc zysPHFE!*kz%RATH*~QjHwwD#=_K`V(gg1>fP|;8FO!eC)z>c4X-uRNKTaH$<-<~<~ zRKIG&GjzZxBU^B!vMyyodHv*=p>ovrvo`Yh#M*Lsx_`DnWWCOyNW)aZB0Lu zo4q|a%UxC)z6DjfbYN|tGOASm9QRpzepZ(uJmr39R`BXVs@)uUJ)fYs=^`H1@wpZquAtWyv@Jv?O&Bg7#22VhEwr2Qz^=jzHVd$A1>nZ3KR0nYu%7s-Q?H;#JflW zm6{2WCAtgt@5N8=w_(y~p511K%AXdIPgte|{{E3T6T$j_h4A(Cqm1sVZu`YWC1R@C zEHH6X``!TE;ux^Ip2a1FQb;DF`D@-=nyWU8*(`DKC)7T|+}z@4s5OycPhFIh{i*^4 zckPX#&~K3~T;cQif6Zv{_x^rv5&VLgR6@85!IpcX@b4CAtVY^X&gB1WCYRxI6yG#p z{PX4Uzs9qX_I2aR>5u+fKr8BH9cospaA6;Q#mP(h(%Lz)HH-MAwfGtgDoGXGL5ebN zp^|rt6_rjMMmV!szval6p$yA}Ko6?X_$<5IuMc`Cv!)JF)-@ClFEx!?S!pOe2g)xf z$ot|&-{hoX?e7VH;Sp?tpN~+{HBhEDTL@)bZ_^=T<5h$_yYWy?P*m59yJh0pxt{G! zjnTVz*)s8pDkDiE-8ba_%Q~lb`M4Hb!8PQf{rgPNJ_T3(buHd(3nc#W9Nb+Evj6%9 z8vptda6%WGLbHF4Fn<7lZ1}eU-oMVnzt;2r^-JOnAF}+hqiq+Qp2jErd<)y&QR?97WmAJ+}$ZH?iANTfl}NhxND#|CAho0$ z{~dQRbv8G*2bfEJVB;cG)X4(?XaMq35*nTc2a9gL1pTo7)7d3`ApPqfjf8KG*n1<0 zZHgz0OKzL3d)v1}`jApGLm2#G`4+iIt^_1*gpq zA6e9h2%M*pnr;WJGt&OkHh=A|IaC!CH8Mu(ogEw*98mMl@M%l^+cv&bH!_C()4tbL zT8LJHeVX9&CgAhF^6jstv;Iqi*140k(8{_GfQyS8Kip9s%mlDpY|K`S`S;Q1PYttl zu6O^T`k(G6qPkJw|C#apP3}cu$1{=t(c)h!1tI)rng4c#sfbAbo0imD&KD^En^u^H z(M!x%|AP|zYjFnw3C(}0{M)MqF?0UEjs45I|GPM5TaNyJjxr^o_5yPaKT%#ug@KO^ z3EaJ^^DH47)kZZsrx%XhvkUkEh7LgJqF&_pNX0sT_o~eHYNOObt7gWCXTj^O*j?qoB$5LlnZFYmdCf_(UOhJsDfnAxu{Tc*bh0e{^ip%CEK3`pbaI}3`zp{BBvJ@9iyXICDVDi&sV>xlr$u0+PV`y zq^gQz%g>V3B3exKU1&m75SR`>rwAu_dOdnjJ65iq6ml?jc79qOCxI~kz;e5? zy^i($=$1wGe*i~(q=Ak%iW7R;{yNI-{mRx>$f$)IGs82(%i+7Tx3@>Wg>#{wfj(*I z*R}6u&5%EP6QSxASMtm)i^KmW^n?DJYe zhVyR46C^h&kEAKx+=%nlv30xvXEjpttUy4gT|?@#@DauI=CI!~kpxT0#2nUwOg> zvs7kHdaJcqZ$6zBxR;UDS~?SEiPZm)sry~tD+P&sJ~R59XTZcu0HFOo*iK-f-KPCj zO^q%;*uy~ok!_qB$3tNDUy=Jq$j~vcVvV+-(xr=y(|r4xLRl(nYxrT2szzf=NJ<%e zu~hoPoYp-?FVF_s|Iy%sOk!N51DR|c7SjrOZbJ)aqVqDwOI|F4$g6_+DE z?WdhhUbtkFuIRzZCtYSVxE!ZuG!=dpn6-_^`$rx&;IjKN@L9BD!ZLB-P>Gk207v>y zaQi{7zV-wEXvQcsDP!JcgZGcTJ1bQZ+HdU?MmCXg)A0`>wJ*E&nzR1p*MPJMn* z;W54@B{-Mb9!~`znet{E;|S&RvXHNTz>#maXeBeaD}MnVT$uGU1uvNnbNi3 zqUE(&{lTfddo=1+fpj8+@&b0Jm`7jk2N^~xSHKF_4Zgd-*w-(s#*C*KOs7*U>T|Cs zxwb(0Ab` zC1T%M8^_yM7+?&l7Uh2IvK*YX!xG`j`!0E%LAAxaDUsLpKkRu8$ zBoij^d=(da$|RKK<_rh*_TZ%P-w+?QtC=<{e)D5G#%jx|h$VKZ;Ka1G&-T2%QESqn zEVmsGBRXsz2YcWM^PX_PI6StUlm%5FD}U~nK<2hw>a05C+?Fe!Hr;_Ba4di%gfOFs zxUKC;?_&uSR)w{~0z`CYv4l=Jm_W(vbn;P83c}7V79>v0ZhHIM?Pn1&<{p+9rNYVX z2Y%ZnNNoG)TDrkv({8iP>E)?A+gmt~2=y#Ik=6avkJ9z*3m7M z?CE7RaZYomPebqN6LFF8%z${B;GHGKRa>ObO{xnfW_P8{$*CMI_bp=-o^OJ)r*=Hq zJeCBKMeg;(RlW3cx4o59L0V6{Qkv$dFG#X^DemYi#JRu6xcLo)VKLp@Ah=UG7s;;Y z1!J%yPrAm%C&<|<&{oC2rhrz(eB&uRY14gGhO*c-cYkc6#UoCj=~XoW=SxI`-8PjN zY)e*ca^kGu^V#KVPEJ6i@$0w3Aw1#o06_}uAsgK0t@xGEqngk$rO zT~}_GBU&mdk0P67xhjSGD)xWiBA&;Ip2A|a2#4!o$zd*jM>x%kpPa4y==}%H==l>% zsS0~Oj^&rNbqI^#*)9tJ$(*%&(e@|e&)bLQ!%7UU=SpIpC&DN(kK!{j1U&oitb}K6 zXq~WJG<(e4AY`5%zF!=~+Y$|;znr*V_q6MX>bQ~)*qPpa;27&qb#ftHE)=@Vz+8RI z+H|#LFtd=Vu~|w1`Y+Z&@0Pe#3c<;ZoNAw26^i;sEyqvIpWX`YTqbxN^%vbYg%Q{d zMojx&%>T^H1#qb1$QXzOa)|p!Rxq^;`&5Ybi&Thp&*Cp_4#zH=+^qO}dU*q0EO2BPsC@aJnSngAKbKucV9zf;jR^dVy7oD=_GI3!y?XuupLTg=WArm z@{u}8l+&ri*wyv2;=yMX5MfcUd*hJi3wne?sEV?tetObM#?%DNGA551_WaF9pHuE| zeN|&jd)=;)A%tIE;2lIo8{E-(%z58`#5$KIRhCUh0)22U7xS4oEXYY)@)je{XPGpg z`|!8KTgL(_EZUu^8lon2>}WA5;jMt@^v5_8SetT~F;nfk>8`>k%q@GEvHSJmkD}3#1F4 z+Ca|h`XW^AAdoRzX4V^$-}9Fzw%=8%#%c&Z>hCpuVtY#pe;ctgg}1QClaAuZH}V#> zKFIcsD;(~+4n;h_Qu{yBZTlsbkey6*n-*{ECl+ax0|LZlmIc2U2j8Er_EZS@ULXUO zpKi#5l8`K?Tf&El)GR2BZS`7$=e+evr)b~tbilQA(|oOYko8Pi#9- z&>Ii2GXjwS|7h7|{h>ije8*R9H&~zuIB8=sQtZk|Fmk&ACCiI%j0zR z0?5fPsp-AxVl_Dyk5-gutI1;GZU>*h&j~T-vs2+Muz*Ox?`DXMq_2lP%@1sDlzn1t zN|Kx$?u7L4NmqYJS$J&eSWj%cZO7wXW2!Okm5Iol%by~2qaJj9-qV!JtA?0>kf}JV zhpSszrPQVr!BF(V;9qVzj>q_I4^Pu=t0gx68PKZ;G@c&fJ&&5$}x@N5*(n zv7E0~7Gh@J?)yED*U*q&=PR%xgCVs+z!UnD!;os}LL*^l_u%&OL&w)^gYMzs$-2hx z2>n%;55hi#eSw9Tmbf2wTy)`*&idf85@(}^(4Z$C6)%Ze>A0&%F~kz_%Fr&Qgm6i>x8nKi}fp6Yy+Ky*xv&y54s2C>^<@ za8y?>@%buj=xIM#x%7uBc~|=#2_M8bK4o4BoNmsXzESgL6}#NM?qC|px@Dg=+>M|9 zV{d|!-9OCn*jXHDvE`RIwLw5J4+Dj8__y7@Bw%+FVVUXMEXNAKJuRJ10x#bu-5Nq= zA~VS&5_j6gSBf2QKID-e4F~$cmP;|4ET2va%JZmm!oKG$Z?n=c3%v*o`8;F(u$Zq% zKoB=-U3aq5+MwQUZwG+TGjjPn;iagl@n>d2TVr=3tG>YPTtWj!xnFR$1m9gE8Vv-B zMKx`Dr$FLbbRsc8jhziKCs-Azkj(r02vv%kum()I`wiY8l+q&b(ePkG)HeWjN-2U z%K#X!wlaMpEcS4ujPhxeiesDJ{j$ink(b{kEhzGxjLcF1H`4xm$W2;JjMai$nEyBkesh?0O>Hf-xV>hAW z9A8V;nHsUwm(@CDz{?Xqp<`lpU3q5(i^`zylsva2HXc%W{Sw-5+K?2aq_{zp!Wq)T zFo>7m;WIOCn}JQ=$X(9e^h9!1A@@QU$y+0~8s8HRBIOK-t)07FxIsrbb3ks@? zR!!{Nc2Qj93c0v}LI{moy+01*u zFgV=(Gn2KesK$i=dXSIl72MSp4S?DXJ@i}M-{4IEN~67euavTFH7ozjk>2q%=%4eG zb9c<_AXtnAWF~8ND6I_`wx3UqY?dy&d{vJ>{V5DR!TK$opG>(Ux*=>&`ZvbfzC1?@ zk@>Z4szBtt;%trE@<)|^`UDHlHNyh_Xr20^v6cNsD@T^!-*uwJgZU~h*CB?qPKe3B z^KW;LXLk$++P1R=Sn7^%gOWHr1|HT{!^~mJk*Q!uAscr}271=?8(s{9q!P7;j~K$& zWCPIxn7PtMoi4uoq_|)$K^K0E&vu~eRiivSH7-$K^xs|#qYG}JaW?_ZJQpmWo&akE zPrT_q5x38uxBLgdfvPw(lLYRLQGCN?!0&0hj!&aH6HN=#7p=`~ZoVA8BXwn0XiHw3 z4)wsQxHn8IQO17++Fi^#1jz`U70&e=MyX7n4p6NUK0&COg2mf%hNy=dDq$MDpb5%U zPwticX(h5W(J7ei?AOGfE0hm)u0o2*tfrgw>OVoCd5<&u_T-j~M=Agd7S&A>gX)Y4 ztjqAmd!m9BN**i-3sfCOH7CD$OG=To?W=fZe$FF6%(VIpU;|e&V#FUpy@Rl6<_@+^6~asK3J=>$D*m za+-AEZxENrBRhMxoyqV}XGMG;o6X2A_5z$C@Fc-!IaiCdSV7w5CJ9y(2W^F!2wt5J zo{*<`jw2k2dOBRv%b=Rur%<#cF`N@sJ8oKFXJRq|8F52>7`|A~6nTNmFUZ9r_QA8A z!<%%{8&JEYdX}Oet&$6x$eLFk%paXUeL=LEZb1iMQ+3#TRC+D2dtdLY>69v^F&o=z z-wLoaP_4*WQpjVo7$AJI8vn`XhjNjpXjf4R`k93^xwKwZ@G+HYl=S+@^X`V&?U-Bs z?*o#mZ%r2c!|weJOO#F8b@3L>);J>(tnS-k==(4^xqjE{)d-!>6ZML!Ar~zXxrmn^ z5`VfSdRh({MDaJA_tIrKMv8R|5t7eUZoldL1Cr|wR*>Lp{B4ekg0rW94+CCX`w(Po zLoE7+0?_0km>n2~58_8!nYuk{Wz-H2ASsK*e*bjyW#6&d0LZIxXOh_HeTgjJd$R<* zD;yS0Ta*1Dd}LXMgaibB4(czzXL9|!ODq@KM6=3Y_T+b1IluC76=BhIFu(6KdT)v+ z&tvEL>E%zEEN@KcALI2U5`#Ze@xFzs$j{MyTy zXnbC%P=?~#(oEg$J=JHyb`mR@d3ixn!#U3IC}JJZ;Y-8vW~T@&Ts8``h&>hnZH5EP{L>)9$YH z_U6uWvVCkCpeItv5n@cxRN6t=pf?r=lt38PEH{QvXnGOxA;GVSU_`(2d%LDNirv-z zVz9B~9r*j3UoG{;mJyz=hQO=Cg|R0jRQ*JZR3V=uX?zk+zdq`6d4`!nH}LY;RC%=S-%8{8(;n45!6??OdCji z!1qcBnBiCptw?v;C#OEYJGtxSx7>1+syfOL@Z23Hq)>IbHS(b-!m-=F_;JXZamt48 z9lieOL7fY#TN6f7PPiJ~C`%DryB2k7%9@y`knbsA#3d%|3bHFnyFUM{<-5nZQ&4gH zkbFn%>8Bf!Uu>THsI7tQ+P<)f(Xn87bId)6361ER^Z4OIR%*|`VZj=MdGy52vEm&$V?pfYWb znXjuK?rKAsS(5ezg87b@dmktB6+wgF)aHx2giPHzFM}IWIenW!_o>F8>&kI9BI&k_*wIs2#O34cIdzo|XpNdW$ zlkc*b@PvoUJQB0$<6>}qu*9qixov9JWpY0j1$4|%f`|DyX)dR%pN=DiY{Q2-kTJVE zI^@+fIKg>e=3AYR_8lnuCH<_|f}&*>g+JKbny3^|n;h1AdSA2UVOuj+*{zEuC|BzJ ziOE(zzt9j_pBFRbHe?r(Pq0En3F!@-LRO((8r-D=YcR)*GAt+Jc8dLn` z30-c#jm*Ez78vZw6zl4nl%21367T@>B?r}2r&mq}&)4&P)!?88s^QDKeVH!7OKNq= zXkS=gvDO|&_5JReqRKTMPDW6c>YijghCvx`>KewUqgkI$WA$&Ja1@{>Wz z$!wb}=HPG7&{4kE7369|i9V@Y;-=8b_vVpNW!rCQZtRu28Pj>pk@4cyDpYHf90R@S zb`zp<6SC{e>xTbYoA7;irIDao7`jl;-?(mDt=4bk)NLuaST(^0@T7tmJe+|Lhfl$2 z_KuqSz}^3z4ra8|^#!rIp_Ss{s$Va;Tr26^f2KuxjuN|^T+_AP(#uXASN|dip=OI9 zlP&jScL;@;Gri&8KIIH_EUbK)=)K#CVO?wMw*e4CxDl%Ix4}m7-rY_=5$@Lxed}J$ z_3IxADRnYEUXRCvcqiJyo{)S+t?=%zj+lfQQ33+Qb?PlU`>FlpD%xh_JQ?FZ&PH!s z&KkNcYW$=~o1^p+7RAB=VqhZ)b6DIl$2``Acr5!y4c@Drxt5ZVpctilO(-SAvTYrT z#JcQ74z?_@{JIHY;|X6(q~1Kj5qOnVlsLp$+IWAnru-IN-b#DFF@v5`e_+9bYI9>d z(JTL2TMVp}DyTwXe0=3_;|i7H@83S0VR`TsT)#fsuUVJ7zKh1W&oR%LjOBVPu4<{h zac#r)?Ouy%$ibPJLWcabc+48*egE|I#m7Mu(yzV@k~&0WD**gF%IXsJ@ahW5x(D^i z;%2SVJ74NTpLSfaiDy_GiY2nh7;w0_fYuY$y2NkIN6#~Gt8&;v*SSSJ*peEn?J&;z zNwtc#$B1o`7+v?1rBICeC@dy}evPzOtjd>Z+7;)B8cSdc=w#2|_Vx3%dBCf>l9~5R+y10vND7JOWI=1)mM+ZBNoS za18WN)kGQ^wndkTh_8TQm_Id7i|7)0zU0f|@W2}SJx#8dxzDoC5!;bCCxu$i)Q^0| zhc2j(^R=Dw<)wdW!6Vi}6*fulbxjs^_*@J^zsYV5GV5AE-5HfL2a~n%8?5b`R<|TB ztTmAW1Vo%V@3pwjaV!qQjfX1|ZwvN#po>rpn?vl2Uky=K{Rb4##;hy%;bUD!IQ%rPO0L_;aC^VAA$#HVUI8<-p4EIW3X4LdEn%!3 zYweK9XN{Yg7yvnO^SxDmOX^?NXskrt%wH}M*C1hiVCDWOnq!zu&G6b^y#290$X!)` zln`ZQG5LPk3gaqR$!k?HxtCO9*NvKbQNz=*aCP_F=b0+f5Y#2FJxYrMM*r0MM7dB2 zqmoXj=x_2e>)Ul>L3vU9-ob9vxi&wJQ{{?6i8fg;GE|WAS`FdrpQfGd#sVQ&JMVZA z#{T}d7GU^q(kcH$7#7azcxN}gfVJYxSI%3(_n&!gwcZ-A-JP$j#MG9Of34sPzL^Zw z67}G(aqo}wwPjvrv+G{y*56Bkpe6e~vb7&8qEzTyQ1K<;W|65a&c4?fVXkM->7HVc zMbo~<$U*tE8jb5Vs4J-;QXQz;w$QVSS&71L-lIG_(ICzC7AztN*VkDk#5{KM6m1I* z!8*}!pY9(S-%}DH>Ry0GE*GtI1pqi8ydS9i=lvDubFbXvb`4eX_iQ}= zl#Q?8&J#+LW>=ZwUME3LUJA+W-y%~Sw?;^3&2VvO$CIzQ&DTvpADQxlQC@f>+Pb*VKmsXN7k|N@gM1# zij3+EQY~J@zfS|9p{oq+9&iC|KCt}yUjDJ)*x&bol(t*F<6Z#;>V?yQb0o7L!iRRj zEfuyQM&{WBh>JbqDTDk5%cR}Qh0qOegxAIORBMqsIyCDQ87q&UDtP=#UL`R~{oLzxu#fl2oI+Xu zJ|U~<=JIgN1(5_Z_U{GdJqgazct*Y3gCh?>X<}WaD&QJ>rb1_Mf`MgT{gTn%!KdnC zT>IB_0mfySh~Ngm(a~{Roc<3$d^XQ3HHPGU!_!FO*yxI5dbsiF5C7PBC~qa@=jq}v zAQ{AXV}2dNnQB91#lzK>`^A$|4@NGYqoV!D5}p+NN?xOj&}Hs61LN8IeBWi!^G|mZ zAgk+f-~k|c4>RCV*T7PJj-MEzJBNKS!&tY9kL3+rls>r2$^F--O5;|I3PYB%87l3qaeMlnYO%M#O`zcYU zFvpD-jx98_w78(%?oCKu+D&30e(s?Ew%-GLgooS<_LP$9#cLCQ#q#N|UjLj=Iq2PX z;Z(_5@N~S?M);$xj#%WNx@xjv*X=)6b72f9S`M+sIK_8w9c7uoN5MO6eh5E z_MYen?8f=Ip*2GIlW(O3J)V;-F$+j_wT5~IH^ClJ1!DUszLX*K{n(+*;N&k}Jf4sX zBlEV~pje%f6+RIs2DSL&;>vqjq<9Y72UVB}h;ui{wjshnQjvu~oD zve*#zH}H+%wVfgdW)sUyGZi&&QA$l3G@L}~(sC%xkET5;rq&ekTsN=_;(Xs#VjL{P z!V&es5k+)%NX?!mpV;53(onb!jGgU?cei8`S@#(iS4~T(*4Xb{Y+&LH_>7peaFHKS z2VJkt0Va^5S=sf3iJ<=BVj3FxQe^mvtf4|-{Yunj2;`D&&>O3$nrKgUQ`eLxKy@Hf z2V^_=tWhGrJ|jK$-k6bT)zTk{L-cPVbkQka;gMetW@J9GoZSI^h1$8`?&NK$>s_lHMn9u}SFhJQ*L^Y$oDM?UQQ7QVGO#Gi|o}*1io{S0t`!yVmkH_ejsED$TBm zSi!{a&PNas=Z{&ftMP!!yo)Z`@pJLp^Hy4k_Ue4`Wo;;$F7?IaEUpD=1tXp3=^rsO zRg$3I&~&!DlX1FN_cOLv{l^>E1x&lHrmd0SL`f-jAGqBXWK43gzlbz|i7lr(1}_8H zLVgKgh4~zs6B7W8sv2h`A?45L$G!*Jy2Hvq!@%)SE?nmGL&J$(+0RcrFBnVbxo$y1 zf2H zr*WP}`tAbYq3_JhVT4grbJ^v!^-@92v@^tj(`Gx_1Q^09jifg z)FnB;^I8wHiHWJaqGET28pGaniDKy0Aql@Ln%zRJ`(o{fZ-rIL1_Y|wY9uk zqlNrh}0$?_c_C1_H;7fn>H&IsUrTPs)1;fcT+c~Y7 zf?f$dJ@f~pq@MSl_yhz}-7FP9l`}Lij;0ee*>ugK3tz=6>T9?XP{WSZmpl&%XIY!1 ze6Js4;c2Z>O^oBVM}B>7VPEPrzZA8lx11)(qiM;k;tv54IbkPTJ{(F-!EZ;)SD#`c<`4X z1aqgyCtdRf)j`|417&|;!or|I*>#Q5-G+(|c%;d2d#JCr)tj?H^v1-(FK;C@DOiJF z)i?MU$NabgHCh%HOKo_pc-aDze|A+?j{bS<8^^|;t}-Dm-w#UEBs?DOg;>*Y|}1zh@JMf zz{MUCka)S?g!JT?*z5Tx!${B=K8an!b{o6;ppSNw5H^$M-X-b#>&)ChAasA?c<*im zc8EsGEWF*C;X{W~YZG+Gh^-UGgfe(xrWz}2H5)VPDFRWrwz7Usumpx=lcgH@Lq zg2n<|wwI*tE-Ahe2n;4Sf9yWY!XraojnjoLV3t&3ybvDlFPx}NK?oK=^3TT%gS?Io z-dM8@BUmp7j6MJS_K>wM)qXFxC&3R(R2n-<+Z>q_wG~Va3YRcS3BnvfhgVQV-_2h9 zm`=!<*PJ`}xJk1FELH=(W9nuW~+4r^;z`;wbju ziD)xZzOCWNDK9TScjyjBt@$=nre&4e?0x&jZyENK-Ou4N@j|JYQhijjY_NZD$k~Mp z2Y0|Ktx6_PUd@@?%F60%$hRuj+n3n^r-XMG)FaQCDY1gwvW0pcvpKh@rhNnd)H@#C z20Ny=Z_}ryG!C#)(a}MI?gxUynh(AGu#ADQeTTJl1j!q>znfm&1jS(%W7*xwWiN^@ z;}yF*OSctL*!4+(o-_yu2va4WQ|>PJo4yk?1&&D7`(E-5<5iP^F;#_ec6B}1p|{*E zJ2xlfQEu=v>u+VxU-HlTC?u+^l1BvVdI)P#p98r#o}^TyQl}+>%KEd8+mG-F;!?i- zM#@>Ae?rhE^k<5X3^4ZhG|th-E_G`>JWRnrezCDWoq0O8BnJUFgD4j2DF!K+kA_J5 zN;yD|KpUYKiqk(@E}z(LML5s7A9n6;T%cNX``x2bGY`PXZuY|~$S=pd>J-b$sXX-} z9ndjJ!_5bV9a`Omsa7(+k`04#$S<@!$W@U?_G=(5DWcC=-*pbRiUh)TuUe}`woiEC zO_lD@W|Kl)km|W*?14{o zxZg5S{Wi8IQM}8>af*ndzN?aLcIG)gDPh+6-wL%LK8K;Nj~m9=g{em9xn7gj-&6{4 zP!Q^@KMVpWRx^j9ID3ChMHrN|a5>^tTaowc?@O&NXa|f0Sv5}P`D8Pnjv`-CV|E7x zmHFeRn~zN%50weKm1qMJe@+_r5V(u;`ob0QPC+WBIBX zXK7Jhq;F~6U5Rzd-u+XjxofqS&D78OQNSeJUl|x-$OQPDpsNTfakf~_G{2Val_GD$ zvix`rjV*B%6!JSkb5h|1l8^tEz}+4^`RQIp!y3pV{5|eF27V6>tus5^rkKEKuW}wm znPt^1pYQld?GLs^)m-E}(nt|aP ztmP8BT@{AqaUE%{W5Hbf^Sc?~w|@M6CPCA$pP6QZAdb_n@7+Q+Lb^7X<_BS2GELdy z`D&_tdWH=HArM=ccdAG2t)w;LOOhez7JK~369=|o2$-JKmL;gU#4|o zB79eX5i-|FpADLxaN--L)Zzv0Humg4`EOHPnCgRchcg;WCbh4K9UUe^sU*~es8*3P zGsQ^1WD&h+s})pXTZxUH-}l$Ga^Cm5zyS__ymjB)GImRS8g)8Iox^z;9a=f%h43V` zuIe&3m_oeL4;Q+f_$#!3&&o7$`koF?c3UzsC2D8|x3DNOc#Ay>HxN#vv4G4^%cKf` z#8GJpQVH^H*vr+;{;=rk1tz9d#V0dA=NYWolY(QU>&dzusuPS6`MEXm`MB10B5{-$ zYRPjv4SBn0ne&~KVyK8H1ry^Sxdqq#jWTdj7 zPM-IIqF|NQ5g2G$VsEB=S8WY?FrOlFQm9f!=H)yTA@6KP08;9R zvRFk`ts1YBLm>V6Qy4%_vQ)df^b*EK9u_$VY0j6l^!(%=JuE-4Wk=zWO42sEI}H(N zINFJN4IDyN;(oe~M(uk{&QhMVv)fh<$nUA&t@=@VTi^!!xQ!QO}?pdL${e(gGBm{VepSLol zqg1eAI9fV(~JufGGE>_TELU{1!i+`Png3srSIjx&+-$FdTAIA^-q|y$SJ%f zc@nc+0npSW@OpmO+Hcu{WaK#Ludl%)t!F~0F94q2-rUYToU0i7!@WaXiU#&EM6yRQ+ z91Dva*57wp?dq+ynvLf_6t4E`j{)Yy?T$7q4GzLACK}4;S+y$PFa=y^i<40 zz-MtkJ%#GkghfRS-A0u!`Xpp$AL)F>rK>1X2FCy|PE5*!c47>dF`dAccdtL69^)kiAOUpN8etGjwSY-y1ZCmQ(6-O8ze@`puIissTrh z=T!cWc4Ssox1r(RH=B|alfp%Xk_QHUmFCF3msD{ynzcwCyG?_&-q8g6;H*D6)Z?v> z*wXSq_gscER42e{f1(q%AsuCIIL%3x5Pz1>*d*_24*V&3vh)|OiAWfZ1>1t$imLY; z`E{=MKjo2PxBRUw`o?A>KH_?HB@7yS|$hrle~Ds<+?45m#HI$y^DYwgqlBV}2e#|Elc90pKtZEB+m zs#o55$Jdw)d%VwNuvTx-Y)!7BWAA(y78yR8%t15Y+I$82zIX|*|98$wn5z}zIYI9@ zIT{(a(L>B(e=BdR(=Jl8j?C%X%+**FfPOujVLyAt=u?e7S(P)r?;>kW)O)h`E=Pr7 zceL`A2AFYaUc{6!K2GaPfGzx**Dyvq8#v6hh{Cf<+U-`lkbO-y1u>)DWjV!B9irjN zwcW$uisO0zmeYarxHH?o;p`Gbj(ycu>mQwuRv<<*b}xH_f&##h+R>)dcUwDt_?(hK#b2MDyLF0QTwg;LWAG4%3b3}BjA&aEie+S_LeI(=zu^qi%IhfK4* zj-->>(p8h*N|et_4~dk8r=&0`XYh8;&W6&-#yZ`>)4T~yF%&{W>2>=%)8~7>yZf^a zG(cKfL$W~lmg;pK3bktr8|Q7MWTb0cX4z-TmfyYaA_bt}P{~E_P3zYa#49SRDZFfm zrW*b7EpiU*L9O0)pDlreI{xdUKB0=)a{aLzC)4wduC37wgp>2@BI)z3 z+q1L1nKE)Fl}xkk@+`Q6u(Fjb!fSN7H!W15uBJBEY)8J>yrqfVO-C!}bVdMJ1aB9L zWT`Cqp4(ZBjlxPtjxgcz0XE4H%(bkBC-oiPmLf?Nd@`cG*6Wx}S4%CGW{2!u-bn8C zYw;T(%dews@bOxk&oSfMw-Gu15DMl5Kb6JB#nZDP3QE1f>w_E&PMaCqCGYK4Uj%>T{1>@Qygr@{Tc9OcY+b-zCaRSPvZ7rRu#NEkq;-5xJX3C#b>?@Xhx0)WGDIbazK;*=iUcYY?xMPTdKLCb3MxZ;fj{ znm%NTo=j{y(i0aptz=A9GJ!I~Y7VLprX{bUpKgLLcQtBUPI4rhC_Sh?|9P;bbFP^y z|0P3+(IW!j$(no}FIb%6!){mBv>lEx;$^|LijB`>CEhOPffQMUX>_4)+URHLV@R{fe3eP?R(~~E; zjO?b8`3uOxJ`GXy&jkpU{6@{J>4;f<7rJ8(U*~ZSc4L?VXRl6TjW!U=@Da zG8>@T!#;kr-8K09`D6W&e4i=A4jK_m#@XRoOvnF_)cahrca3 zc~_PZdY(-~-)&K*fNdj~G%y?#Dsp3Ds~AE0;IB#Ci{GgeF0&YV>UsT|KJy`zuVl8` z^$~$K54-XNtUB-VU|>MCh$)W5Y1?Q{8Q|^R=jG}P63$uYheF|T@lxLQO@{3KG!SDb zUS-of_izU3&w1sDg~$Z#W|kNp(bjjB=kwZ*9%GqYooEM;nqxiH#Dq`s@HDP>xdcMM zh<=zcNfenF2|OYQxY@clbQuc!{td5gEU6)NPD`_F=rC@O-*Y9<7ndhX*gaPvi6-x? zbo~X~=7iRup!nX+6Mu_QX@HmG!4A}+ZvBUzo*SBe!NHPRm6lxRTO1q784e>gFZ9Hn zr6BtrOE8D*OeLa{B%kA^NxmkHk+gHB{uoLRWt5d4sD0-H-8d_UN%PIyj)JM}Mz|a; z7uG@Vo>4^%cE$pax^4RIGMuhFntC0?hr;iIe&89Hy6|jE_jrpL{xVxg^b15Jl}y33 zW50UvQDfF;L;p^`w2KQ@&4){Yn(e1Szia4bIvZ_DZtau?JZM+Zeg_ATCM578Bm?G^ zLEV-U)vH#G64S8c6-z1Nv9`b89m&!5uHEL&q(%o068IHuSJYi}w4STIDL0qf#qfg2 z@ltK|tE0vKWH#N#0AKrlSP&8_yhQS+#VFa=P}xeKF?+nV_0#j~G3FZMNk%}k+pfmJ z)8)=g(z1VsjI}ix*!{Rr@*XOa_o;*@$IWejYIUPn9d3`X8*X3rMW?kR<@#LP3stn= zKlQ^yM{R!hj$?}+YBe&-v~+Z7{B|fc+YocOK{QqRF}R<~j~)cJWiBoTKAhx#{U*!l zyHn@7zl2pZDZfx}rx&?Z<9VvK2W}*rp2z>kLcct|vH^BR1PjW3yDnwu8 z>#Sh_A84UwzRHxzq4k^{J2X)yn(VB{G4)1Z z|2@|kwAUS^kSVURwDd$nXUK+GLe|RX3%imFZNy^DI)Zlh)WJ;b@KJOU&P3u<$9-vF zX2l12L3tI0KKUi9Db^{HCw6gqGT;e>Hl`@uNH}c1A&kR7Yh?CVAa}cxyzz1iS8o!y zW61Y4g&9Qgk*i60ng|AX7`qc__)ugls$lFpXFf_wu57Eq8yV#D?%h$C_nY})Lk zJ;&rB4J>Y&K6!5`!9S4XOdDWV?{I|S;*6e;j|~czNY|I+0HeRzo+@RTyzxo zZ1|xA`fd2e^oW+m#ql7lwD|BI9;Jg{ukSe)8{Y|;?WCsw?4{z{Y#j!2W_kM)2t<(# zAgiDjxc{z`yDn03bAz1Bs(+M@+2Jw<9K5Nz-okhZ_@xgfTJK*PhHCTdOf;#twP5V_ z=U~KAk@*cP1FuICg(MK-NG~`|Zayse-H!qpT$D3TMT(1y%LjYOgiJ`r#P40(ash!p zN6o=)e%_mk!|oe9T(k70x7)&_RUXSv?~w$di;JW{OMsytSG+rDcK|P5QPNvyi+HS1 zIm7Y(umPdc=Gwkcl|x&4XS`FARXcrN=y8Nc^&EDv=%GRI`M%@y_<+5YPP!8Cwth~; z)rZK;xlOF*DfqCq-6|^h3R)b#eI|c@wkm#S1wMdxwsxO5pG70$zCFTt|o_O?s^y zestC@CyOTGQ=NCN9%ip{(`L0mF))>=*>br(@eg}yg0w(%6XLkva+ z)j^);k7EOGTU5?Z9Je95vQ|2uDE+kX)0^MqZsFCeqc#0SAhjp6*1u= z%rqJ&W+?aCYUBhx*s}O@ zNBVoHcD~&!y=~QXG-}tt%L{+^BE1cI!!#(ZC265-r@~pbC z@6kT0D^UbsAl-de`mTR7`_clUt?_U^A{420lX95G-w`M#nkx8|yq5Frmo2d$(3Nc@ z!_b`+As`??*o`$K!e%F~^DnJ)v`jJw$1Sau-CXUUu>yU7csm*2J&=hh)bIYvCKAE( zBuM^mo(Y{SW|9A+_g|B!z7{nkLqe|GHlJGQUJ5^cBaD%8>$%*ZdbCP&ViK-BBFzWz zZw2;?Z?C39d)1tE?^ci!(Xr}AlO7KuD=66c^6H$Y-*ylo^Lgg74NVxhx(=3}q^7n4 zTsbf?In$I5m|2mu8X){(&~iWU8UxA!YH|aS1qNVe>9DJ2bP)=Djzj_$8jjzvFT)c6 zGWqf2am|>dKs4!(f?nJ)HK6s#1zTpla+)D~nfr2m@ZeB2TLHH{R4a7;W#6(fIi^6y z=)-+QnPF`RCaKhNn_q3OISD4p)vSdkP2Y+ja+OJEPp`#7H6c3mT?astvOPgc$0W)egv|?ajTa zKkUxVpv3`svAgy61MS>LBhw}g7NU|xI*x*ap7e=Jdt^TA_mcyPFyi@+YqHYL;tx&3 z8`@RvtQ!9xb8p$!Rl|PL1xOB4tC>M-*pI(j)NV}bwQy% zkphXm2!PfBfs$b}=DLDnny`ejo%jZUuUzD1jjcj$sI8|7gk_eY=Cn^vcS6BZ{RuFm zi?ME7ej4JGWPO>oiqVZ!G@8%%Rp*n0&iUGkh@WpxwtpPb5Nu5;esfk+7_+BKY5&O? zTOYx9>Q)s)W$W4qU1*Xa{k5faBO8~i-I-9|^A&GqA(Mfi)U-~ov18N>UO{LIbflE@ zlZY=`mq$UpAPY0i;PT{@Oy7<)UgDCn*c@RMqmr!L{HPm*h0L!k{f?w`RGTAB3JtFo z!%k;D<|fW#OK#s|S#OrmU`PPz1Z}S-SeIsST#gtVthzqsqv?Kdm7ry3ODI}_$`@*B zGV#(>%ApgM8-bDRO zxMw$S{#jJqq?!Y3Wmnz(UPc9bLD_zJ0fgt%1RzA;aM~ zm&cpfD2U195&jeiP8=-Q#RS=q(6hWEdU`%SXkTZWmF=@LIa^zXl?FfouprXJB)7%| zoJDK0FPDCCd1?3*zOhtkh*n&jLnU>|0wtUBje?4*(zRtbOx174p*br*&(JVq}}eMypP1*}DwrvP$io878g?5)JhN%$c}yPUrwl9{XBlc<)5wyvE=0C&=>Qi8jDvmC- zg;bm5$IluM(XHiARl}FKG_sx;dJHc*XGFW|ox`MT)!5A#41LO$OcJ;=JreY!z>@v+ zCh|;5&X!^3EeXYUC~jh6=G|oMC%uT1t-OfqkO<~n@fVL1vef$1of}Q{Gj)?QL+{@meNc%QsTqK{TwnaAux}KxN9s8Y_;L zGz75$D+-dc2=8r-ob>@9y-n9-)5?I7IQ)6PWYLfj$M37Ox7HLF#*ZDE|}KG zaq6GQkvYb(1}|$j8dpF`fy}{6;pfHXW8P>NfzhN&sWTK^)acI{ROYNh8y(@9Z%Er6 zZC@`)qHfSh$GhHKX$<%pGKdN)_5xuR(*w;xl-Qa{&m9IE)_QtIxw?tWvH@FmbG#+iV-N4ja1)JSCa5(G863&pv!%h-pj1wCyZ$B1 z?n^a>&dJ}O8}3c^3#`BbFZev)b2z)p>u`=cyqTZjV3eYICYHErPu&(P&S_xoN@fVy0>L?1$?}CCdyNmt=OoH-q}Hif;x($fz^ipA)X?} zK82}jwLd{=6$bI^7u-Tz9LDF*<FDt8F7Gxy`5zKP!>f_t=m%8&(gj$n2D=HJtk;^;VJS8ynvqf~waNn7tObAk zfNO8(=j7swPDvQ8OvmijCaaBA*7Rvp!NemVoom;0t|6sl0U&rJ2qpTm@Y2)BG@7l61EksY#>n$Nd&L4Qc?K{R5h*x2q zX8~G3iEj0TT6sK)J`eXymk+G6yu{jBe1G96eFLoRx0 zG13;b@$)Qosgx&m+%F!;x#@bVlD5o)oTbhS$TH`VueX)iRiMjioZ%{F}c>W=Na@6eoPY zVc^CSWJ?}o|ZI}Yx#}?;}){nYtvw#x{ zdkRSH<;y2ZYCh$qhE>0w>6#-&WC~h0^=4WM*_*SwX*h!r?>BwQXDK2nM{D z#@s+SYO>EUsxwk`g69h{Jm+C1$NSe@n?FdgayQpKKTNEnWWH7>7;D;>X1pSl5D*%; zr!*`id?FEC43ytnOp+f2b|(qUpUXm$6toKLGo8*>yIO%(hb`#v$~ z=(&AaEV#@9006*)mzI{6a~xn`VJyPR2Pa7a9#23hu5W$ngKW5UbA93cyk?_meVM>L z=EL<6-pdD4YtT5%pV1KL}@%$I3{EL{Bd z_qAEFGE)+cm;`C~_}Vxv=hhPRFROR=_gO7x$9mJljrYrSJujvxYi(8%z~KgqR6X`* zh~Qat?G5gj6w4A|0|IZ!XgfyEmBtXSd)x;r6kIifixE#p4rWbJ`BBFQ@jy@oS5Om2 zNUqxtt_maw*~6{sDtC_IK#_Z_>-nvO z0O>5PbD!C*P=o9JoP|C0iKX)9TWbkjR1#6UiM`a&<<5*bBF9Iy6F^QQR07)QgDbLq z-)9^KM?zq10OYQf*9*5&&~q+80>lJ8OpQQe5V_W~jt|%JK!0494UiZy%Q!$bHGrWL zzekPDn_g@%+Q@EgYgyE<4G%WTvKXOQICRtcl~N$CVy?v=Wzv5VWWB0XEu-m%E^4T- zkr9sLMoM^Q>v=unIB!!8Lkw82M*z!o==<=B3$Md?JLJRe9rcuHmk}{FfWTmOqli+? zHM4Q&*hp~Jfrvr(Gj~I=_?TAm!e6HJ?@|X;I1M@xRT$wgq zn`fd1t^wP`+Fk+Uh^LK-8^+ZaRx6nq&d=Mko>cNOa0Z~W9(=BJ35TDbW0yi>OR)U9 zvPIS>Bl*3!XSyf4K*0Uxo8%ihdJk)GT`*rSKA*JF&uGs%-_$4pBwV%v;Dj0$TzR8s zsJ8G=-Ur^(dw}U~Ki>%-ro53m14WpBO)BM^Q1&;A^)$J3p6Tk*a-Pq)e16oQPamGo zWv%%fQ-C;PbnYlnc;B*>D_j@{p6&pM+MhagD)>ZKJ!Ctjt6w8 z9X$Cn;>TP*{Z#r3gJ&r`i3moaKI2Y~A0!Zq0kpRj@L)dYzDNJ2t*u*b;WJ9gu`qbi z^|}ZSX~6_Qb=EU}*9m1wgk6{(*KOglNF;oa8cXl!G&B%&EAQ`fH+85Dhp?MMgYngp zOF;{0-wqBeN!68Fkz(1-H*`E*PL}6?^pS?1tgAhi?^u6iyI*(ml00O!5XTjvQ_F6JJbud zbQZxbZ-_RJ6)0%1Km1^P-ev_{AVc})WS#s2Y?vHQwi{(1hUTDR%*E$PCst9K5&1zv zLe$#KU;>D=6|}%kvx}Q6G9KDgujl)k0z1w0gR?y4H4a1s+PC+q#Xq$cYs=;H6n6(x z+wUBfj;7bFwz&M^3vc%~A!N z+E+%##>n~C6Uu88MO^LOOz+B2nU)%gaeE}i1wWo{KqoU2( znl8<-?}FB?Fib$ZDI?_7XY4Xs!`1S=sn1{L(j|J3k&_^$p+@!qyG3$SD&v|(M(9!V zGOetk=NY=98Ss|lTwkWk6dEiEz4gFQ>rU+j=8p zdbt!?;m|e)*P9)bl@&bzR4)$rLy9mY+6ziJlBhS3=P_3l?T~CH79~%qISSJGliKe) z1odsWd}{>gJrJ`^qe#Gaa-b+QmA3^f#jez;nqvR(x#yAT(AF-`+gy1T%DZ1lf%y@R~6g#hsX4(Wj(_7t^K5G+aJ-O=MnW5v{Vz?KD-!P{hTaak{ z6yW1IPb?*QqE48ah=zEZlU+pwRiCTr}QN>JM-}hfy+k2_v(?!PO5PRe4169TY zZ1mP2k+2nB-WfZdmdp3LyK&jG^x704)G9Qkm8RWz`S_%ep6-9u=Xr-NwIo76qd-hn zDHk}@U~wwN&A)ZNLHC}lpa@pzk#k&v?SR5^T}X{KcX}{?2rliyb36Z#H^@4LoDCN+ zGpve3x=G=Gb%D5XCzuL)_HF_P=Mfgi#{lhbGzQwvdl3!m^#Es49bMgnnF1_`_m`TO z+}!IFOeXU)-f%ZJh?_&zCu&L4TQC<%ve}qEWmb_}MI;K#YV{}j;4|75xH_8Jp;S~u zE65RGvwm&mH0bnnsLPHXovsXFJFLRAgF#QCn=Ac_V^|`@JOR{3l!N z?#9daQB$Ar#QQfIxvq+LpGM}&3qAEQ!&?;PC0)N)dQO&riiCXhd|fp=8v*~V2r^gQ zUnzqd6NzB$`RWA?@$s?b{_!&GKIy8%+;zLlqw!RLR0;+Lf-1B-_fx|ZYcbG% z>F74~(YE+>T?URM5VcM`QO>4LbV0^x8B38>Wo+=wlqq$LPE)H2E=ii%MQ_OfdZQaB zP)pp1U_z<19GAUzEOL$pFgdz@iAD+bC4t+>S%#G-XJrXyxE+D>2KD>i+paOU43X+& zLuH@6^6Mqw6s5sWr)BK;Ra3)STH7xpQe#BU*meUSj7&fQ_Wh2I z${0oUUabIT+%B@k*(&I8H1rznK0~bi$zj5l+B;^qUH#SE)wQ#;Q)zap1(8GB7%mun zrdWShWKm?jTKU;mugyAOOEkx0@#AG8oi4m@MFk_h*0%s= z)YakP;geoE14{KfGU8^@$1@`K7xW7*m-h9cP?x^NbOpdBxZC_ALMi&qP87h!>3R%K zujx)7%k87fLks6=OUC495KgJCI0OWA*_peq5M)r|`8*wa+dYK*cqlzicq_zQoXBY8 z9}~4Kn}{r{&c$FrzTf)1y5+i1yZ5Gj`-+Y9yBG7`Y>zeHZ=L)yHd98cdP;**34vr# z5{Efnes}%TZ;6!U3IPvQjX~Z!MtuS1$gQaH9l^`4te%DuW6vj*1>BDIrgCp=q|kmf zRZ={xQewsDE?tD;=o!5H%kD+Rm-`ZeT&*xDmenT1?f1+6P2Xxre$nEChq@^=T)n7m zYz!b`SVFJvH;E#edr2bZP|1K}bbe0-YR((9sP@|5XnFH)4ANuLBwX6hrmds*F4Vjp zSCd`@7YYz6qgBdoN4FScoN{2>V)unRpZAun<=XnWVKUnDvoBb zCIUl3Aa0IStHD%zKsYs;%-Z0}{+u_?jsgdlC24{d*-yBuWAyd*C}>(EcCSNxi#^O+ zTt!9Q5xKf%^_wTQy?w#M)JdA0B5alG-XvCS|d{{lX$V)3QCX)t!uJ zz3Nas@iwBq#Kd5GM-S6$4kADhbJ$<(y0Kn}`ze&cY1|bTD|FQ~gU^HAvv+%}QRhur zfXCZi%_V!${vy3*DbhvzWWP?>5#iy(_ft}}imYrmT|2nSQp%w3MincC6a<_yZsWFq!Np{Be?_n3P~yzjSCrV#3<{z=i<}Zw*s>+y>`{RlRE&+!0OwqB?GTTd>k@&w1 zN1p0RH#{O&bA&7)MCA?c#UJl#LTZa&;ycQ@btO1*Qn44EC&NSIZ&c6i-d8^6^YR8J zcz;wF+ewQ8iO4~4h&-rtzb1upJ@f95yT#$-6=ML~qetVedo#I*{rGqmE6t#JO*#!%C@j*aiTfC%|nfH=h`fBWMcUtlxJOGk`t;=Hd;ci=vQW(L2fm z64#cJCW@7cs%Np=6Ti(fO)nC#G!jgNR1tn@UqF%Gz4ttP`hzo@$Axt4n$@ruot)M= z)Z?*O>x|)3!7bDv|7Iu^HEorzv;N$I?*6sEqo38P|GNLlvDA`(z+7NlR(#;1^RNyNGXI>dSC*QXG@nGIQX2{f*;wKp}PI2gqC%pYt-8p zE7Rv^h>QFrCOGMCQbDdiokrF9&YE|n{ya;1U#`!TV7Z~jO7SZ=&;GpQJp}BTD=4Ee z1$XZHW{K{X30UePr!=P=?Vncubaj0V?&I6DF;SuN7=Lwfk)^#bUb;~!sojUA@6{80 z-u8$7qrq7#3|Sga0eyd8Ul1|@{=KYfjaC^JL6*IP!}g z_0Wqhu#o?(ZQnM5@x5R*oYH`Y(ff67pH9EszfU^R;b4+PNqL3|`{u*P57XJg&nz`# zkj>7A;d&JVMpaoehX=b~^^VkWtQjFd~ zH~Eg&AjJxJMHmWUH4{#MX1SsFmg2CVNTub{&hoeX>ODgD1^~b0S9E$dIhRz%@*XCy zA1fY-_aQUVfrx+Li@AdMt~*R7Jhc;|uMVm2OY^h_d8?AS^Z{n$3t0z5Xdi< zJh67?n*)5Qb272xgQMp!>icgcv#BNiHbhLd`>@N~2uf+f2h4|T>t2Oew^C7g^Eyuw zwwb)Y59MD(V=yYssy&Wa5mWD2GV~ZUs%w~2Fpk#v;^!EhN&_c4yR*;FD4x2je&NFZ z-V=}|@t1f&&zs$pq zattM3w>l4NRWW9a%h>kVP>rkf6zF8{XO|_}f{9R_KsxPsAd*Kqk^YgN{;vMdPb8MV zTh1R)*7Y*z9-sBO>j1js_hx_3yhdm6nU}=rO(*c;Zd0u(k1wEB4fAWnVRu57M#$Nj zo%T&P4@}_(@7@?0T^kkpMBY!2>Nd>4eR?VkY;bpEIdJff%k@IRUNich{{>swoBw{z zgM-jH06#fd(|WZw8Hd%p%6ZLQt>R_H(7+e$5EC=@uTMe|cne?9_iCE;;PQU?a7K7G zi-cTnK5G7>B|M&M^h+3j^e*ExO}eEprg}jjZ@e25T02!JMj?%>5cnJt3HD! zxac&Wu>Odz$!zeq;os3OM#kUNI@&OQY-?X7{~Cxox59_^J_3G~&@=Q54TZP?-)Aus zv#H?0B=3j~p+G3lDDP~$kwedr2iV|0S*p|3_LR)<+-Cm!vazT3d1DsVRw<7p;GV1! zhPAP80y_t_vhTANju{sj=t@aa*-Pgzp(_nfEo~I3u}T069sGa2i5Io?NB%S|fS|^& z^N1{M!PkeQg1G#z@EZWWC{0yGdI|@Jx(E#36hzP?%G-OB$}-3{S^Q;mknm(-gil*=}NoqcAf}n>qBd*gW;j z26u&fAS@@4v&w|07#s+r#V}U0EUJeH%|<>Q;2VqE7n^=r))9k-=e~D$#BrvLJ?lvK z-deC0FaGs?b5i}0mpyt&|MY7aQ=wR0(x4RMu&933bKh{mChlrV7wByS`kg=qc#Z&b z$Eh$h0ATKmC7kf;4lAH!HMLRN;`-jF^;_6|s!YX=vAo#pdsoS;N&dKPcR_{RRsqtd zz7e}Pam6%yC;Q4iS~s6W!OPR`8Rhq^KFW%#J-`ZQqQ2`%5vEMjQk>o=A)#}Ep$l=n z-MLQ$7ahIALU4*a5jf0&%q+3;e-*U4r`yo4w6v)Ld%A0;0sRrUavgdshmtxOmY=aJ zZz?*NlZP3Yus;)m)7TsHYdv3|@0_r)D;<|MS}&JrIe8LCF&ppCKJnh3AUKy#&~gq?%KSB5imi#~ZNDWD6` z_$t?18YKpMMlTi%RLr!PP0Pa0RIXvR^XIk?4~#ac+ausEyj4?HNw z!(ttI!2+H~yDn_PwHJ=C#0q23SpYs?yo6T$CsubI-qs>Cm8f54We4bU>FuxXlN5uZ zE!oRLm)k$zU!s;cWQ_){@?PrPS$XaT99T#q=#2S`$6;Im`cT3>KbDK375UsJJJdan zS`rDkX6J~;I7-~BeAeI-D%QFqy{gi9Q$?i27~ITgxhY*dk3P&~*#o&9kNY;a0uHn` z%2@h|X$6I*j_sZ82UY}rPd;sZv#^II;C3mHceFZko87iD>{QO+0F^KgfsOToM zGJyO#@nYgh_k_p&=T5i|{7w18hd|V+R(f3z6r))ibWm@WOk_7gnluT#L zM|bkx+w_W0lsxZmu@G?=^|k2&8xfhsw;_HZBFxRgkua!R>+nL@r2Mq7EHBSFzpq=5 zS{_VcN?&)V5Zplt4VLzy{)D{uCb0{Z~I|2qDyGXW2Nm%}Y3A!BsbZEC$(Ev&6d zozvoM0#@eYn>__hb=7q%K%eGz-Olrx_afg?g}3h6^^Iv>KX)v~}{1<`7JmXEWi7wAHnp6h8*|Q3Klaz}4Zh zb_)+H=r6Tio{;HBOk?eijr^>Ti%h`wZ~BIoy{?=Z?_%Gj)csd%Q%N;>-QEYy^>(p8j}O zGLh`MVS-G+pHo)OGM36_dbsT-<96@0H?Hm5XEeo5{l_@?uJvUb7*B|A&-L>9%8ZSe zG-hU_+T`ik>UMQ0o@}>IuuSvcJ^gogyU2l(k}|{NN%E}Yo)8?x0GG9BbGaU%7Fk%B znD1|%oCGE&Vr>~3)>^In-0HE-l|5F=tIx*3#qHjP0Vc6|Fwm;KjdTSBOG?U$s;aiO zwS7Xdk~mi5n5+^1*5=MVZfD2!;_2n~zSiLO5*_?E?H`ZBhJyVL8~gw;Q-J^X=~Iz3 zSf(Bh=myZ_?Jm=a> z_7DtLKjObD9Ox-3g z8TDm#+#r5pi(WFq3n&kNYgtBDy-EYqZ6&a+{1cgoYB7VAoa+3tVGf;Dx1;U(J!UEb zMA|QR8?Kpwg|@q6=TCp(Kl^oHf-ELIRb1l-F@MI{vgJRdC_>^aHTCvo4$Q2@i`@p) z%_Zg@JkgO&63M%$+c=fQfyZ}0&PpA2l*neNf*(nhM>SkVbtDUCZ))lAq3Az5nUkFA z*&96xrH7^Yw}D}r=7i#Kzn2`Fot-@kOUsI!do7$-mpVxUUog`t>FB0G46^Q8Sq7pe z{yAt-xmo-2AHvYd$f1L@NM7orwhQ`uXOTXPB>G%aGidS!HT9eyc*$H%3w2l4}t9X^8H!w10u|>sZ@wsk>?CW?KfFiwAChoU?QWe(pM0 z-Mzf-&#G7g&W>TyQd=bVB|{Zgzn6ausQ)XYs6sDzVw043E2+V2SJANv`7gMe;jiwy zvKD|8%t5uI*3&FCm)Cc_D>Fzg>R6w?{KaIiQ%R>a3CDzpS$!2JF@*I5^{W@}sg@c8 z7!RXqIxIkk%R9S)o;3`0tbJTGGJ|@JA=cg4*i?0VR0!1#AN2r}f9NS+#{P$%v(LFP z%>Sh3_gQu@K)xumN=%e`QCs~Z8=8QM23RoK)NQVmY+CqRmS5H5$(X>ydtvg-Ou&oG zd)QC;&y6HM=YGNd&p~KOtL*)k8BF%~qRnYKt*d^d{zIA$7MMlL8RT4>Ted-m-eVtY zt&VOroen#SiT`1lp}1c3;S)F=5%{6#!^eM9{^!zrJCsHLclWhAY3V;SID8F!GI4SK zZD8!b^z}bOEn)vde})X>avvU_RZ7@q{%z$SJN>)#1`Tab{zK~j=ORK+@oyFXH}K!P z|37}c-5l>k7w^Z2|7WXZ|B**q+v8MoykKfST4R-ncleZNb~@e?vg7@W_+Tt0PR+82 z(4khB=+pTZ)e{XxE+?i4@pfL(F!RW*=LH0SAX^sKVy#d`>RK`~7 zH=DBG=Tmc8)h7!eS6=L}du{4ojk??a1z98RKSBV*NT)yrxzD7Ut4HeUkZv!dwb~C< zGXBHlZrqdQ3SOg$FHxDz`raxb6rYwRc%gshdc?$g74Vf|K+3N;CRMj{U0H3lwf0oB zj(CIgpLqFu(V_gmyQ8Pn-Q+eQG{U&r8AFS%WVr*KOf`Vea@>3b+AYc*KTo~K94?JT z$A-Ats~-JLSMxfLP{uUem$QgeCMe~S=Zpb8K)Etx+bh?!{Z zP<}khN_L>M$n~_tH;mB2NSGPcl;fh?{lRFhX&6tVBkL|1II|jmRGEUwCFqEvW zZi?K^-e;=|-J6^=dhO!>2TnOoPj;|D3;v?__B%5t;XxU-3Dfma(_~dlh8cx6j3YyB ziMkwVov+VbDwEZSRk7u(x60k=#I9pg5tLNydGz0@|K?lr{NsSXA7-VbwmM2k224a@ z6wp`G>+0CKK533dDchV{`W?M^mo~Y*d{$PF4Z!?2@!zGKUsLLTXfkDkIg*A*(jxK-N*V6y6@g<_{>GnT2 zoq!5|Tbgd1A$l*S^el6t*=y36rGNL$WaS8KVs1=jjQy&bz#zF7;k1N5T-SE87&`M% zO0^WuKNuBX@nKSQLbP4n`3ga!iaB7zdB2*x-Iwf7=(wuNLO566KRK3Z5EA^>DwsAC_Kr28oyLeotOGqEww~h=AD?lqtab+^} zC2|QooPx}EBxRj9VX~@-ZX3dMKqqht&^cJ?N-TJCpIkJA1*={EVUumG*iMLl9~1+M z@CD3`KpT>)Rf7`My2}^-qfqrHa^@o$GWoYfBPYy+fqMN1H7S`Bejv@!%;dpZk>{l; zOu5W4)2AgJGn?VA)(kZ5k%AgAw zQeE;1J9RGS@!tFnv?kdZfuu2fF5A7qOMJ7l(w^1e*TX$x_wQrOS3Ux1#>1ak%`g-M zD+Ha*AXo0qD!ueEJDd@W?oRbY4o>xcu+?nd*Q~ZMXQp+_DLcY*tCEw}_^u_xobacO zZGVGqIlJf_Im^Sy-rKuece!lEum81uP&*ynep_j~XwwKT#{5#Vc~dST zCO5XD;4K+nlZkeV@0A;*VoW%rW?nUfXj=|{$VF3}gSuHT&{i1{8-=W^#84BZZFfDp zm1aRsbaC@-Q=j*D=_bhSFw<*%36a9vE2FRIZXi$UyMMI6mvFk(jGo|EM^|V!az@%Q zOS7fb4;1CYq-}Pj+yuYP_b#fek%=bu7G%9;yoh~;*6ZDY+j$+CBm9x@nl%wJk0gHg z#`Nfm1yq%VWMsS1zfHa}4~9MWAUs&96LOWi^Ip@LXm$-~|7=?oN%pIDe{ z=dl>Y9_df^zarOO_MbKnmfnR^)6V4f((O_Tsob868?hPLA9+jF7(4_=tEP!+|q=65;LRYn|OvD&CQh9y^JR;CE8PZ`q-5+aW6oA zF>i>_*lf2j2$6BLBZh_&lvc}|P%5>T9504!E4PE}L-|IqrxzDlsjjWrI z3@u*s=xIo^@s{8}(&sQ#q9%7Hzjqgr+{@i$Hv*yG&+e38E=0aIbm;$_@9K7WZB>ss zpq`fBv&wsgMCkd@foeO2|3iBNvD1?xsL(}usp1Hmi$CpLTixKM0pC&%dBW2e0lsr6 zS+NJowLJ`PtQF&m<$9@=Cx9c-5%C#nwQuoEF&<)0V zDY?G}$g)U~*dLgQRO->2NWpDqi)m+Zz7HQs3NiZV`KHTzPFR;i!@cZy392eTt3{av z=@@LedJ^IxW1%k1!33ltY_#ru+S4KQ*rnSr7wjP%{>x=~@XUN2Qsrc;kpFM6;CNb38avkD%2@t9_?mJ3-m(k93EHq@a0r zF{{~t3XP?0aB>jC^N6nI3DLe*Idb{58Qh-Xh%^l{VX1L4r{OdbTIHvcz{WUNOpIZUT^f=u(6en_`k|ZU?I!@nhoEqGBAXX z4H8z5WdpXOsR+unpRPn3S<8ufugAD(wcjO;?eCkzoxlBXAt{zpYiEt((~F{xkp9`+ z>aT;t!y6d6etGjkns`%7x2^#iF?jBB3JaMqGe@=hc%BbQmv$l@mLrv(VMg!uXu*=^ zvCn(V>frjk!7CQ&&~~#KgiyJs#l(SRG8E7*vK;Y|J@jH{SMsCGdB)bC5AgvW4xFBU zq>GY!_g!)?`biMf($QQtl%p7Jsc;-`Zh)q%g$gg>1=uy&zI^ZbEG_0#pf*SqWWotj zRTyDDBL3#3uzAsyIqKO@j;0b>w8A+EBMi~Z>=6z3nw3yUE%T;R1kS9bd}#-Z^HG_k zh)D%$#NpHQWUI#DIK$+}?Q+{mJGV-d57cb1%Cf z0qqt}hdpiJ1gE96HHQqBNX;r5?i}%1^EU&m7IN6MALvKJzH;QJv=Nr3m)#}_CjQ$e z!(magprDvoME>&faD0tK{w;9Jhm8KW>tx>BL@e!h&>mBsk6C#(w+L z_m_3<5&0rD_LDJkzU5ThE7kvThk&hpyu>#Z@qZffuOkt2gH;H|mMq^dp)EWUNDc$a zkXCZYK$NBZ=?cyT34KD_olUH)$wm(XijUM;#rUh~V?r(ZhTI85wLqHU@lG3IFDZYh z6Kwz1rh+_Vn0OHLQm@WBLxMc>MWzscol+ySr+!H>yJWE z?Qv)WWt0oBT!XB3JjCN1u9R5_QbTrhC0X7N{%13P>uenvRcD3^P~Z$fec0O;q7Z*E zWhmcsvdQD>M6e|bf`^2_6Z;UU(Cls5hR#RQ|4L`eK2WRkL{_X?h3UgHQ(lLcg5aDI zusXSU0Mqx&avpLNH}?<(zwC=!QyXD=v4fHHN7~^-vcA56f#(%im^h{nZp;*;^Q`-5 z*OIi9Nq-R25gJ6Bwu=SFw`BJ6Ebs)ohOGC;I4a0(RI&fGF|)BOzu{Lu>H(PRuGSVd^ik zVhI(>def@MQrf=3N6YFEASPk3G%^(i5%L*GvQ!OdsAM~k%@1zib9oP-woU@xC z70U1<8L3Y6gD_9|ERGT9Ppk<&-{~f7m>jq}Zmbx?>U`4+tOM$Px}PCBGCePeWjiTz zybLb^JmhX$lYb;413oIyTmP!_B1-FCJvjUk z%H!LWJRbz> zT*mLQdNJ<*n+xzFN3n6JBhCa3mzzKJCu3sDK#fH<00J_SyA?9xh)^u{3`dL3(2E`OK7y9CK3f06`^!X^OeF+OndTHhaKY;Dea36lGp zJV}Vu_bsV;Ou<{k?cxZGKwk+-Nc9(Mj)XDsZfjan=a+R<>!k0gy0c{R@FJ9?kYCv- zuD?I-da6O98jf3)40_v$>wDE>1sl`0#cH$d?Ggnx-u2mxE-Q`xVZ^w8C{%gMjO$@r z19EoQd_l4#K-!v?;-~#32Q@GKE2j=$^oUbOE-@4tIZ$NA-K?i1mqR|! z34$Lv_`w?Zf%}Y?pPnOc{0MW-zYAiDR{y@k@99HzO=I~8MgKT5vx^!e(Ji3b_&753 z%g^yJZ{#{|=3s9Nwy0H-q;#1PZZtAfIIwSMvexpdgP{wTz~kzL9E=ai>9;C@4)tg- zZtj`|9eh8wBw3T9lCiS6*W`Tt(vaeOpG&@=9?3`3R&3254QGn+xp@9nNdq^16X65& zPA=@RUX!k}l3l^jRR!(uFT`Hz^6iAt)o^{PH6BRQF@rDDlqeCFe2)+|kyibI0{a)s zah`;!YMmaByWz>rAT znq|iMb(IxYrHun5`W0PG)ebKIgGHRyexX*(4D_uW{KEcmd(_w6&r-#a6Av-KwG}Da zVu}N3A(mo(;UhE&q!`899jW0Sk;O-+4fFFF!QYU4)jw{x*xNPK2TMvE4wY21b6qV+ z{#^SRz$a#;=0Kv_oW3je6%a7Loz;LMspN4@!I@yOdynN~N_a5)kjmh5I@^#*jfI@3=S z^!=#n(-)^IzdBEeo=qeCTLFq%sCfUfgtFqeg*`soT`ybE_oi6tiza2g!Q(y4y*m|5 z``a_s?=Qd7tt21IC!7Ey)(UK&2tN&cN52h;JAJ^HDnW+tD=M)8NS-J4G^7IdGml4b z*h>Nh>L-XJn3Vac$QYr9=&PHG+fQYRPny;LLV=9n1o5Lp4B258CPQKPnXdi>;o+9Q zLjnf$2hQ5d$hkugqp>}y?__h=Bfvn@<3Aobu>O*@wvB%ZWMhBe+$#vdj7VpR&quaH z>nefJm&v+b6aq1hX$#3hbWbEMcKwAS`SVG91oBB5yxJo&-_1#T*wvVI4`&bOmKe!_pZMjU7$9E3^(+Q5dEM*u45lVWAU zAm~2uZ)jA7-Baw?Ak68KlP1YL_d_mz$u=?O(hp=kY%JJ?aPC>~B7(uAm|=lK`2JbV zcJUh25&2VA`NtREx-EGAF@&D%+YZ4#w_VTAkl^hAlqT>T^rfUgJZrcY7gl+t$?Bc6 z(k$45pZ;J5!@)wO*-70+p2GYEm*n(2SqJWK@LwT%CB@;m_}kLZkMlk%y}=~JsGEWH z`leA=a3hHcB9yO3N}9tw(lno-hl2C%zgsUk`O1ms&X7Swhkg-bC|$ihx`US0!u47f zQJ1OE(ilujXD@m`!X=vjEzUUpl@emBn`Li*AZjtl0G_foMJuJ@ z1<`ikXW(lvmuByU@aQ5={0CAu6~-5iHX*LEwf#bvthW?nch>C?YUt)5={t+UqbNxQ zAe`u8*ZJ79eGg1U8U01{IVjbZ_MZ`sWw>TZ6hKWu#~uzX3CrvOdN_h)qdPFz@TAK0iK8U^2y~3=`zlp5=Os-Y=UMgV+Xhcl{wVq~5ah2)lOwZ?jSnB7 z@Hg1PNUeB9o}#&QX1)p%e=%Ds?C zUX~ZoSr}0jHjQ{)sp&9zzgvd7;be{#4nQrU+KXl;x2^!WiAsgKnP}l)INf+DLmdj? z!uU!A<{i@<=?!)8_!sFodcqGu7CwB<^wqJ)e*&*-5pLM@`( zeN%6!z8D$a9ax*PO`llsB>F64x=D>Bfgrg1u%tK1PF!N&TFjHL;@5HLuHO z<~7aoxMeZ5;MN11`v2H_>!_-_wr_L;g3>D8C?L|^4Fb}jNH@~m9fE+8N_TfkHyflR zH{HGI*mQ5;TX^5k`@HA;fBrh(7%&EVv(}tz&3Vl$eph+?D#s==m>(O0m+cahx;kQ+ z<#$J2-OzIr97hpMA1@}0fm5SGk3Z{>$i@F*6u|H}N8P3OlkZNm;43m}Q z$;Xc@ejNl~Z<}1;EdQ}%#W15xXaud371sPT_^mJHsw1$3ke5cwV?}gyE!Gr%o=6?= zlhvuGJZl;!#og6`Zs0`1nhvAV)R>5az-DVneR>RfNRmXTjY+;5$kUcN{gK4OT#e0% zC**BO@<1tL+2`SfAswEo9|6xk*9_$PDV{qt(?Sb-;1}D#z|Z8~R6qkd<`Wy3--$_n zUCWl;WE$Msl%6`x2mom=53U{XBa`GiSjKG2J~ZO+I6`{yaD%g2IJ-_1UeT{%7pnV1 zmF#}E2a7gDcd(Rh1|Lf@4q|`&KxC-xON3);y&mmnVKXhw%bQrTO!OE zd7{c>C%xgV^NkJfc>O*Cl7XZ<6@;h=4M@bt0k^L>0Y#}(%{oQS7bKSMgB_v zyL9m&Q`A3wixb*pict6#y5v{38s8_$I76IY_ zac|pJ$9fp92hm?<`rH*h`r^dy?MUK&5-i2*daOt7UP+Me?L!^i4E`lf#* z-hIe{2hAsdj&?xNbFUJ_Lhz0Uj#C<4?>Db(pFQE*7?ilSTdt^z06l-dRy^Q1%kN61 z1a1oU0~3pYKBRm;UWpjut&Us~>&!`J-}StLp4(xl#ckc&7i-u8zA^ zVhy5zXVT=clx``VGHA5fGw`r15R0Js8z^>aF|<;}z1oBfm<_jV3nP31q+p-23eoqt zG$pI}ZX|V{^&_DOhNmAJ?!7{)Zoa!L)W7a}`th{Ez*6tv6_Ew}CRis_Pj4WTe+hs2 zn*p&1pGcT`27`fu7@M2W4Uu2ia7oNu5nl$p=GBm!6C%%#nC?yy+x~c3ZVq2- z0R}3|s6NZt9}hYygFX*)gQ;`6p8)>uDu)s>bsEUlU8=3!uKU2WQhsF!>QHU!0SmcZ zdbjleJN@(6*^S--U4W3)c0j=1^I; zR838bT-Yv#=#&bd&XTi0lr^Iv@$#^m7SH`wV4+{>Y+^gn!E(^aV{H#pJvMZn z5IS@ezFZF^MG@f;Aj`wank>t|@E=7`z>$#8heQHDj@3*TnM982U337aZQ}1yn=#&2 zCwz5R1-=zoPvo)jhHL2%2UssMe5+ObP3c?X?z-oaSwJfpK#<4x(@C42l*Lr<;N0%L zZvTF#edKJ4kR!ruIDCUPMG#Dfjr?a&Hp^##^KpI>&(HQ(}O*H{j;D zUNeHzr8zY2I5D*xRYh3rP}vse+Ta2!gzP1yedZG+|9D!8-widYuyo}=U66skl4n2C z;^Y%t>2eQN_iYsCd%~|I_$%c9Y~>--3@(#qvyx_NR->dke4w)3%jj0=cr8`%JN2gj z#gpi5FJFdDXQnmqc>QS)Z64ziu93Fn*YyeN00pA@CApu`VV!Kous}RtF#{fa?Hl#8fUGk z0QuTtnQw-)vW@ zvcFupNNR%OoW}>%Xe>^eFrJYe{rNuhT>DeV{0St|*Y%(Au^Nyc{}>~mpO%^S@p*`@ zar>HdCH5la^^XO?l#)3TG(a%|E>J;1`iE9QKM#Tg>nY#yK3{40Sk2eAxrFv8#i)1u zlK-j*GSOI`hNj{3{WBk)<(nKqVMU4P{|qttS1SdmeB`^b^2=9GRB_`@H%ayyTtD#P zJ=ykD!zs5W6w&)T*d2>pq}@MvJ#FZJ>Fc&de6RiN9VICOA_CUISa<=%TGSHm{`VEm zM1~Cf|32H(6wx2}5ix(>VyTG#h#wj!94TX~&qx;|c^FIhdw~Pu&-c_Xm)`=iwySz& z{1b@O?elyC`QKrvWj?${@8JRT=6^o|*BG+?V@3b{CijUcE9G#7uam$5zialg|LIyY zA-6a6;|JYdMeBtIy0%+C@u6vh+lzoJ*kYBB7s4g{)b|FHH;O8XFMXIc^|!whxErbj zC-Lu$+LdpPOfwRZ`|osZO<%E4Fv$4@xxWk9+%z9A-k?}7>$OWFRjeG-W|($|#>FNi zeALkRQy`b1qNnmgMCZTvo^jFi@=!;sKgEt%Bp3Wl*y?p&I9g)&dmJJ-&>xq9a5S&~ z5PhiQLeodr$Ee*Du2!ZsNzVA67p0cDnS06o81m}~l%rSD(jv~w%L^ysNiVy;=Cqx7 z>sxq{BNJ1AIC9>FbJZ8Y(=`_*a^Emx^WXc&mSTQsqqeZSKLh#Po@GmfT&Sw5vO2Es zIpoxU%QUO;{fB$Wai*#Md&eBXOLjtK6_t)cl^lfa#p zZF;{-Z+iRA9b_{;;~~_|tc^fK(DZzlt7dQJJG3dC*eZq9fn8naT$ew?9u3&^wMc=( zVu!ABJUjxY<8}s%=}H`0x4rIuh+3uju{3;{%x|?O-G`2u4q>IzPw0g}hAWu>o8j8} zoZA_Vtel+31(@aNprj&ak4}g;d)&eK&X({+ zEfCt@-J|1q{pom-O$0uw@c2-tZ7wop7n3E^_7IW7t$;8T$1#i6ZFg0(NRb^*=B6_= zSmPlAKBJDRRm=a7H1z>?-!bO*mC08U2-~wcBq5x3!>@)?#Q zOk&qMWCOkvqM;d`yqXl&KIh9QyGb3jYw2#6W7)LxYYeQZsnIenwprE_)zl=461?CI zB=@UQ)8Csav%J&EI5}~&y*eHmOac1`V>-DXgCQery4rwyN#%_~y11+?8lYLcrxpj& zEBN?;%DLm?d%k)unkRh)@S|RyO3(9Ttpi{rv&E)!`ILKRi0~z%5{Bp3cqVM*Ot1R! z_lk=7RaMczzC!3|GgS99{41e7y|xfwwxJZB@m!f0VyaAb+_hHC>Mz^ec$2|V-Vw|9 zFl^Oe@ya@Y*6M8LlfVYAP6-&-)7*O44fnO51fnMOJ_0%a{5bo|HW2j#+rbK5+(rY+ zvoyY)^4;ksKxDlcsy8l~x(pHi6axni)?ktVOF6+C#bj|wN#w@HMp0)IFJ03X5=<25 z1JBnN4~s4Pb_M#Ix`Wz=Z+X4Ur4siEje#g?t9ATnT3Vlc$VBtdS2X4_0hV} zPzjM0dWm}u&TP}4msB)G$HwALmFxCOQ?L|qvsQr-uK*zvZ>hTB(|s$3KhDjpxvG?;IV5Jjy}}$ z!J~B%`Z=yBv?0fU^0m{@*Jb{YP{iS-g@uLS>0vLQFU2R5hRge>KuK#3Ao-yM{<~Vo zZD1DR_L1h77%V&1|hVyw2%ezNx*?IKSQk z!PllTqT}N5_DXi7d2}FIA$1^t#dNNDx|z?ghJ=texYZBbJVhLRcz9%swbRR#Kn@`- ziqN1%ffU5ej)9(e6ZjIea`Gi%q-cE9fht>(@0yyK_dy2~j75RRaH!uZDFHAd3U6K> zZgN*^sz*t*Jy|UP0^;s7OG`^Pe`#z4!xojOXlRiAOH0Y{NaGo=IbF5?DdEkJ&4dl9E8?%4qE#YNgD> zF^=U^q+<1=tltICgG0y-$X}FF6wGncGY6%ir5Ob;6N#R26+@7>GNhqW5o;-X zajB_~b3gxU=Gn9I#hoG zxur0I_9#^P{)Z6(()fwQ`|LPc>!H?eIzBfycYCJeydrgZzF2NX zT}_SM%hj2k!nO3nA+VePFR$#|lnfIwx(mjvbeJrexIKf(WO^nE|1urY0wwcUsoB-~ zTLO8YNSQS?v2eIe?M<-@|L&iwd{5*+u{R1yzdNJu(fyqu>gvwd^vdXnvTF+Z9+UsPxLD&KL-;SZSpNDI6~%h4 zCJ87giS#1_9PudH|H{dS@`l~y8R~;?Dit4r1%Z-Zq(z2MC=SGjAPUss04JhSX#Z)d z%NtNylu$5!2&p*rOGEKb`i6$D&XKb;}i;K9mwe9QQ2^mgOrc(PC@x)u&WMdi)=4_8#Fr19%%X{kI zhBkBd&YyU*n_hQ(m5KTO?lox8orm}hZ>a*wT&+-e@*KG z+5=w+CgFn)IuV`EZEHdQ0p=dx+rm#K(V%@~mCD$w?=X@{yN=Zr{`G3pC*KW14r;l) zX9R5yru71quVfSzHwTMlwjW8?w*ZON*NBtw=)M%Y5F_Z>6U4Kkx#&zSTWAjmcQTQ+ zLP^C?W&a}K6TuAGs(qrthnEoeE$ZVo0M8HcyH1%=!@3nezedC*IJij-vph4K=3QR; z)ZwrEwrd}I6U17+>tjDWYu4S9HhYMH_yy$QL87UQH&|HCK2o4`;4f7R>@0KZmH4Ab zOR0!jNiL~)EhH2H0bd1VJnZtoH_Dr#*#DKUxjxK>0SFSom`}4yc15%=99kck?%WXo z0Sdw(e<@_@SD5}oujYy>G&D4k*8&Y_4w5FTsOW0Fpm}$TzH^y_UX4d|?_DZbfppDpcbFU`+rx69!ShKCs>c)D=veX=vw z@bkZXtHzGz9qY=SX0>MH2?waW>EvWC&Edm`4-MWcG$8pD;Xs$Yi$%1{WY6<$F;+rq zTr@T_Sj)`rsT0b+MjjTBKElJ!!44?X8^91rTmt+Si}iMgT2KS&Mlb(koHtY3MP-0m zg!*ZoG1dD-hMIUiDZaUR{4YjfuL0|2_5THj8 zP)=zCV2GCIpX_LXUKJtUM;#%6;y(f~w5D`-@iGUqi>S7?kNJwm7f+p@1&LGB(vIhN z)oVdr^MKAXg79_`V-XfDxJrcHf0@_Z<;&NEN4qPAAWoaPuhqlh%)2MIh|91Y$uI^n7&R z2a3hXa->>^e@lizrQQuC-@USnB0_JEQ`eJnbaX7cU;3oY&Un9Vyp+O4;*VgKCPVqW zkdINV)o}H<(J^8YzHDBBO_PJtPDKW zs~V@a*L^(uuth~AgYBaiUprSDUffEZe?9wQ*a?R|I1$%Zvw+7fe`w-c18JI%%|Kkm+>krW;MA>R9h&TYYi0O)!1>^W1M-&E2a z6lQpMJwWES{w;Ep{SMr8;0CC9Z*04!FT*kx#Y3hw-aYY(HnghH!IEoN?U#AgaWjiM-+htD;&^yCD zeK-M&aG!J}k==zK=)x3jmhP2KBPX0yRrS&z5Q4&2_E;i~*JhwcX`AD9=0p2mO1K?J zfMipwNVRb%kBxl*IEcDl<(|zG%bVd(>Oe!QOO0w%CXS^vqLiBDgqt&1pYeldKub#m zDAnm=IA#MIVYNM~0w>=h;g?AT4LkArkM^#w_c+tB1c>)C z6+!R_;jTr5^z>bLfsZ24X{(%8N5Qv_!QFt5)S5>?D3jZ%Iz(RJ0hlGO76^;Jp zKd}JcZK*~MYCc*_U;JuVx=G_$VNB+w{4fOXs*HCNwN2Y6K$tZy~0a|#7Hxrez zt@*YEY5iAjQm2n-0JOO@qoyu2$ zXR&e7Ufo^_1g_`i61NIWl>YjWk}^=)>s&laGFf8gM(%ZmFf3#SdMt?osJ8$mR8>{+ zmdlyhHXTdL6F*=9+?T|!@PF9=PG8=iN1FoFK~saAQI5FMKsDcU{vWjF<*b-K+yBC9 zs3#%+VnY9{A?o1&{rKO5_5a~&F!HsD0ZY!WfrlISi_TA=J8$Ew`0ADIzmw19<>pcn zSrl>F#7elDdU{`q4gB30EKg)fn$o3)pwN^4E9U=PY?Gy&7?Aw|EmRgri_CYaUikX# z86n1BN9{q_dCF{4E9-@mqA5xekwq@odm6sJwCaBe<{-UaIdQDYF*H!4(u0O! zdVQ3aHjJAoxeHsQ@ZV9aHj*)MapMq2MMYzJ_<|Asz1xSTPe!bYee6&F`y3f4DYxC? z@I|&!oh?f)yQ<8sT1Xd#GMA%lDXM&|5ZjUD&8xiIldp4 z;)K{d6BSdT(=S~n<=I_XQj@|9D-U)$A4!-_>KY{?GXOmWgRHz^ng)HunWa{BxBmuuz3>E1qP^KvNt3BT?sW zi@{-~Zz}}fmY`7g^6VEurq;W8fJe8WFrO~=@E(82Rk)u2VqWXNPVH3wFUPrPUC*WD zOCqvnp*Q__?^?w%4hj6|LPg}Lx@-nVBdd>4=_B;|7gFaJWdb0pQ!xBQ`;QU7j<=2 zgWLZPy~&I*Q#%7jbccj-{ZnirwH)c&-vB)10hH>}XgsODDi?B`UVab*5IVq|gx`Me zz50ACxH;&XkdW>d|4~tx&iBd}P?S8@D|?f;eWbkqaX|c~X0l)ZPp}@7t512=G|rrAY-SRl$ex2-%Nc>!z9L3&>VX#ECs zi6l4N<@_7>^zT{0B1a{`a5p)64!XJ6k$hC=3JVR^|4c)rEbNFy3_o~}lWRBI3a#1` z`VXf?ec!t?J%~7s`JbiBy<>V6hyY;F;ly0Tk4f(%hi7eojkW8Fc-w!n!H~$~C+2-h z&OpZ;xj5W6Tr_$*M9;|hd9dO5c<4W;6>##jqrZFo^Sw8;0~W!vyjdV}O9KF1N#nGY zzKfpB#O^epoM7zDuh6J40V6XSn!IrD1D7T5J)3wI{k}~mZS#eO7a?`#9p7n5AuiK8 z3IIsA78&4x^X6pE%I=rJ>gyA3TWTSu2nj9H-vF4|XOf^NUXi{C#eM|5Wn%+Cs+sPegZlgXd3R@UKv#E%woqvixY)usvNo4vlSie_ z2}0BkjS|u+IaCKXrma#*9f!>Obz)BYWn7;U96f5po43_70ICNdea?a{NCc^V%+tP? z0syko6}k8$p?4Y9mcX;@8KV4F6{_b(=)Tjv;CHxqJXHH=`%mln1@?W+|DZ}msyx1i zOc9;*6G4=h)O5FIC!9zi9l-f3O%M2Gi` z)cRHMyQAG7S)jB1(FloTo-N@1osldd2DQ?4;Anw434eX=qg`;`W6`KIGAX+N)OSE- z{(K)0lz*qq&J+=F=;ZNOh?eKCZ!To0!4 zWIS#ZP)mpVLI)tc4#3hKtC7LsUf)0%$(6ww8zb(DgxDyyXXg?Vc1n zq>&OcYzaWl?vSYUg$KA3+a)ImnoBynToNKW>mqP{Ubtn9;!_rhh4P#G140og#8~eEB)Ip!ddd zuF3>``ff$~kyruTXAk@!G`#PJ(%2ZG2^Nl`$?*OSM@Hv6kBu?zefRo>?e%p zgd}p^N<4yRfFre6$*$>zKlx%an{odW;cI6)vkU^=EZ}In0qF0J0L-1IG1umuG9w^1Jv(}VeX=*^+7T!ErAfPTu9#4}lp z<)ZrC?=8~-oO}D|=Q#?JX&Vm%{@f$11f|DKZVZ8GH2@(n1dI0N_a8|~eSAnLU2`mr+u|_4qZa^z=MIgi zZ&*8N68Ux5c6nc1btv;_v|B0AQ%vO#DaH(fsH9rS(UIYs)8LhS5y)Jnksiu#BcX_3zbcpZBE0K`93n;^A!$LF@IXW!=f zdj1h@cR#*1d#@-PTASh7-v^k(<7XuHY0IZTq@PUD;%jHdt&5pmC(VLU44wr%Z}t1*UfU#J4?3Op~Ppb$av z+bSn#9^!hLiCnlaRY7W~5Ce ziblM+@q9i1=6L(=xqQ98#z;5Kyhwy?x z>LM&a_%B?Y&O=l7TrM;03OuUc91o3=56m|t(QzypANOYb@{kiY$;->-exK)%6I^4n z7>W~lD4$>)nJ*TY2HuOgsMGbq&(F{Qkshx&{wBg=8OEx(<4H;;P!mP*hRi;{RUm9j zj~KC?#qRnA&{OsE!m}N}kK&V*82`&PHTBN2M2*R~1pXA8jNGcC2yi&mFGc!Vxc7Av zz%HH~1E&~d?loh$aFs*Rb3SF$)6AjyA7|7Q8uG+h4oUgeh(u1_u09z%W4YU5^Lc?t z5guA$e0+RQqnUId{y;*-w>_a>k0>VKbpn-YHkYd{tGD(v?@e}e0&wM%Kr!Ek=6N7$ z;JvKuS`_$!4D^WY-uGxbP`Uo=*{UB_2DN`umnva+4Az)A9_>fric3g1y$~?|VjdTi ztj+O0I=3~)9A>=WDee6>GymBt+yj0~;AgN+@TqpcR$Z0ZH{r7Ga0W3P7v- z4)%iY-eu$3iB;p#%+~>NxmrAMuhYX7K_H6Iu(48GUvJ*I557#a>O8Gn!s(4R;2t=0 zo4B*s?<#^HmwS1bEl{^aC-zameYuTp$#i=H++Rn*#^N zo2!_s@>a{!__CJ!DUGQuoAAT2hs2W;v^tyR;gh%$LJm0=G%5f3)nwia3nn0yU*U4TCmMsAcAE#Y+es9~c;!O47ffKOeMIs;KrFVQxt+GG2mK zubJz+&o>L6%uo;C_a<@HShwq`G+9suaXBK$l(B3Ld-?XuIG~r%TRps`iT#~)$m(Gg z;rA>$w<7mpr*(V2THD)+sWD>jA#&5;Y%1|Pup>A?Z9F;0lVS9rnoA#6Gk`~eu|$Ci zTYM$@6mvEFv899Zp>nbs&Av$J1b)AJ<%IL*`vh3bwSa=x;hx4AW|xORsaEN3w?nSO zq4Z8GyU4sn!!nD}7ESN^mot23X&p%ghlLZ`Dk^;!0SAow*L*kyg9hV3^sV;MiwZ2S zh(lc;$q1@Eq~19f5{=_o`VSvJzGbN}fWakk@$h~oB@qG0;EaC8(Ad%sgPu?yg1q!!P5UV%m4^Kf@xUwgx2{SDTMW$%8w$PiL(acU}_WnO%7 zB=k0``v2`z%r03xJ*^)tRO!^Z^OCFH9NJ}+)Mu)ddQM4tZwhuVE-YL*AGKpQT>C7n z*%XUOa`G1Ntm=l{{N4NF3agMscNSpJBLTvzHUvsalmp1WkB3J}NqI}^qh4!sgK=`g zJ=W60vX`Srf%z^&X&OiATdmyV2|XF-A#BWy)nKH&wr{)aLWkdU$s@jN*l7VfY(z+C z;2}P%Hh~)~&5cBrXzlAIsy4sOs$$3WIzR|ez|QgzzYC)B`ToZ>zm+S^W_druEIRgi zRW-ZCWYxVS`S<*qns6Gqgl--y3NPb9caURM^)=MaPpUIDRqIZgV)m!6kLQOEFBi2a zm*7DZ-8=_CjHQF~icHDeSa$yAP%=&E_-};_bB}nVYAXrS>$v z=o20yKZO&n70^}+=+E79dmoZIX}4@Wd0>{0^#=8{b{24WCGk42gC51)!*4k&>~9=K z6MJwN5BN2oN3Yy3E)fw|0VCb~L237{=tuQPvW>OSd*4>_wrm&+ML@nzap?z-cs^=Ca`_ zw~{(*nmQLO;j+Hkn7+wIXIUu+FH1PcpaL>{I6|a}+&>@y5eV@?o6r@L05aBeU#US- z`}#GQ*+h5y)Ey6wlir~tJ~5v;;4j}7jP}}62R)}tfqdQ3zPd0`DCwCfvmdlcJuYDb zQhhvW-L8>y^lyX@EE(6)n7pDHP_Wi=W*o0TNk}l0lR&eN9IjgY2Us`DoY735a6h&e^ROF>}F3Ry@|8F=i8$42{MNi zmdX0pq`}*D^pm=T7w@g!g}J8j79H~G_;xp@&Xo3Oeih!RWGMeU5?#zA{)>%3gg>}h zsp9(9fDP*FgfHS%Z6N*QRS^{rCQ(0=^tAh@PW__=E&?Y=OK~+C_vV`P@+xc`yncB$ zf|lO0%TBJPgPLo}B&z&Dvm-LFwr1sAy2XHpxhFGs-w)t$0&RTrOk%WB}#Z z;rzBh%nz1vOu5x9q`DFC^m@uIW23rw9R0I?duEZ}R`~8=k(H3^OX(%S#8n{7&ff$aq3FJc7PPHT*P`@cXU8r8o6{73~csMZXo!l5s~Bmo+`wI3+_uJXy2- z91(%zq)F?}k56tIv>zIx`>2B1J;$u^nY2554ro;06vU*>2e?X;5A-cUR#H!I?B#9G zm*Y0Vo6C4ayh?I+wP;6=dlHB|RaIIrmrUi z?CVS5qm`M1E=Poo@hcw)^xDT-6$xd5Cn5y0cIAqdvNb7&UC_VWG2&uXyV}&u z*-Ya!?c<^q?mWykA08F(|&9h;+jZVvrji+r} zLIt(L(A{0)=nq&L%rIwU$?ne^gg3fDtR{ALki?m{@%JYrn3!6jp-Rx{il_}!akvr} zr}=C(%M1S>uL6%x&T@a5lL%bwA4a$P54hOjXIDF?*xiUQX^VAwn1-d$GclRm^(e?^ za8EW20v*JzoLpQYj<+rv5@8?5D}6wM3yTO65!a`qsze`_k+z1IN8+6(C*#A)-`CdG zF1SFDQu~LxJ39j}mpx)CjiqwlZtCvwEP6Lrb_EuNHTDqv?p#beISIwmoi6T)Mj`N0 zNa5w@XE*L~j)&KTn+&KEA|Xwc&x_jFFww__YEJ8$RVF-^pkdZ!3gL(xhd(L)ZRbv% zo(~P9*Ov<4kN9L6`6{ioEiyb8V|Oz=r_}>5veWq6FI`A^kJjp(@po!<=1j2mI7d`^ zRV;2~iqQRTk&N7$@|~&_ac@~IX@pYtZ(hs79v1#k;e6v!vx}2M+6*Wdm4-7>5nNHR z?(9mOQawIXwJ-46&L_z&gD^@-V42bxZztDun(ggj#=`CXhsaMnWXcg?&DzZ!&rK~O ztB#5aG|e&4lz*Wn4$V_6NEG^T?WHFVL9IAVXAzmx()*E?Pk@@IMsj*(*Ogpmyh)WY zF+>8_8}mU6NAP+0ftFtuoI)?rOGZ37oDZSFXowA9(F#4Uu@flu@($bapim^P7s2h zw@qs%sGE7)mFX_X%erjSDP4yaWWccn&{OIW%z3rnn~J|mLM73JADEN-Tv9BM?O0Ap zLCCbaaInF>7ulYtR@2Ion)ht|Cs99J&I#JC-02TXeZxv3G9cvzEc5O9cJA??x-kjP z_^yO9fbMfTbo3>~?kA1YBbK%DNt}@>whdE`I2pf-55ug(8hxM&voVbb@7W{ zI5X8E-^Xdp3QI~l7l-0jUIixc`r--;wGP$UoeZM;ZOK~@u?XLq!EerA3A4rN-oE_9 z_j90e*NJyVU}d_32P)Og%E&%pyHL7ItZQZF~Jr&Zt26fpSIy)qt8EZ%mLzk zTs&(cG&NX0$JZ(r7+?3-S}#`4&tx>(j&o1h%$Y9qjCZEh>v4c1P0R*n6MhV4bta|u zGi1upT=gEje( zgLa-`pWZ+CV6~$|1f~4IZTTt0lM_?K^D|6NW^4`%Z>!I>(jq5nFkJV)7yK&x1`Ot( zwcM(|yo3?)%*5QB^#Y54P?NstYqgxyLz9Wxs;(FG`eeQv`0wh^TiCmj$tsgu+q%Og zX$J??b4*M@X9yVv1u=@hUIp#liedDJalUk)fU&CTiODHLJ3A$?a9dY*B(>{0YxVNz z`aqCKm6blClU+l6QB2RzG~>4}_PnQrcyXUJwC7jG$5VcGQYG@bPIwFejzF@{cH*!3 zXcd8A_V2Z|m@r%Bvz>#^!tEDNuz@<8^*f0&bWee1X5eG;{p}ThAZ{$21g~@C+w-v2 zcj|Jo3I(z`Vk)?=J0<8C1O{#t=Kl<^P%~^%Bi!9;!p6jHbjfblV!kQK=Vcat>!-(z z#ENupXnwhJ*xTihb98aiQs~9e{yoOSdbTo*Dyf%_rQ%(l+A3^Q_PsJCRI0b;`Vzb@ zPXuYZa@!}{zrLKWK=={w`-5w*-jQA;1K_Q1B1yWLobpO*%(Vp;J=Nm@^$vm6bjkHIuN&j&!TCHPq?y}!-wpprpA4LcNhL(Cl^Jo*OO6Ql}u3x>7AZ_ z>OWo}2dLTYleGuWMvZ%;kX8)rqC%ukJCk<|8tT%X>8B}5`?kI6zKgTHjZ6dhC-O=h zHP5iYe_{a$GRzic*zmOpRqJ0ob6}gk62H2+`H|)nVBA~Hs9rnbtb2RWcvjed&9nF? zIwSt4$3AZe(B0>)`7@vm3zC7V4u){+J#WzwP(kV2fRy&1?;qbF{RzeMxjnCRZ&w?I zfGOx5i61I*=xI~L7kS}xL>Zq1v%jIMRx?bpzAvp167`m4st&Inv3eh-RIp_9PFdU0 zKlY=R6bh%Sr}^o(`W|he#vJZo{M$=V3jf~-@(rr`IFhEb=GF|V@zApLrZ*r z{Tnf$;zSM!v+fP1vXW2#g9Buon0_z-QGTb8zv0`~GErYKII8zrTnXDB1?xcPk4OR| z8#)>YIj)36p%VMNw+&huBK%pu+2i7Tf&jL17n1%P)*RKyl?n6(Nyf9Kut9_G7ZE`|I!CX*`#q+u09O+U(h@5X-Z?quc80(>X!M zG+~nNl}ajOVB{YP$?z6aaro|#l>HVLKO_Iw6{mpfA+#=Ki*8W!Vj_Ebud=?rvxEA!q&X#}kKDc~ zH+Dvk-9U8(nnKo+R{A>&Xu^Q4sc3F@=ZlgK>k1fJ*nVuqs@b%%3qOYQy(Er`PRMz4Y-3x?to)K!)BRKza6f5eEw03_9U zz~KS`|}h^uC7=Hgp@W>wY6M4!|B}x4|f4%0&XhG%HN`*3`aQGUt^Gv zknHa6&irx!aLGuX`FgIYsi}8TUt^+^dwPbn-C-Y{yp#$jjMQ3$|1vi=4g@ASKR;iu<2cHQO&z1DhAL<#wUpm@j(;sr+gqoT z0C2LAKhI*ghAb^D{|HWbM$`bxp29=~_U=L2axN;)OsyA72sXv4s;zBG;C)hWB+0zB z{6wC#0d_>V!TS{hEDFBJ~=xonzHpa9$%0}<$c2h z!OuDm%=v2i(H#UIvRRSVo?D#wlYaB9DYJ*Yz4ur5+NUO=0Rd6h75_N$l-f$x^>l1-0&$-a&Hu{ny4s zh7SxRoWTTTL-Oo>N0|k$X;3>&lvmf6DSBfxaV=cT$3FgGtaEJWh2Y&}d6;;;iI5$%>T3y{{VcvP>kK#=G8~ z2$AZ8S%<-f!VWW`IBoET^tdGO&H;fX=-i+tL0?a($UYAWa-ls1VEGDjWw6~VPHYw& zorVDJM1fHAk-&1nbU(kEbgQM5$Y#X3{R8V^OL9^5(z`}jBiLRpmq3k+X8kjDr4v+( zn|g}F2S&)u>kEBZ-t;@%0*V2u zM~||pQ0L`-)KlrmqDuPu1X;@#u|55Y8f0x_O~_Z;NKta5!*%F=#b#p0a0FZJgY$8q zqLF?D5*a+MgBUd{L&GJcuWp)YuFm$wL`iV8@mX%;=p%w1a*T;^2qYoo=@V0vPJ(++ zGcJy-qIzO4SlaIEHrB8_ z4uZ^%4kmA``xq7rXMUDyG{(b!8wtbL|nO`Wo$1muVTojY7x4i?g6zAy1JcFa(){{y|Aa0=0}uEo(CQ$ zC+Hr>hruU0Zi}u|t63fSAuv^N`Rsdu*Jx;Kb6f@!g_Gh(#^m5&YB2=`b?2Ipu5DLZ zXUhwVB#6&#QGgeQTmfy<*rcuX~#2n{N8G%U%sc@rt;1G*7~h_5Ho$I*LNc?Kt|G7RLrJN z^z_orIk(<23J-MzO3w{uR=M<&7jynq$+i>UdU|@PXsZt#m&P#a-80ab$zoov7_MTR z9ojYCO8(?tXp81BA?1%o6}6UkGSIc2uvaV9k@Nn5cDgm#H8oXr*ppdR9D4b12u@|H zXrJl{?!)PQ`2s(@ItIsN!>n(Jfs%F$H}EM+=G%VcLZI;>HbMc#yl(6i#KzV=shtGdFLBX7-3P?b!s|R_@Vviad z?c}i&oKj9sBQ!)YzIFWL0rX8U0d<7>l=6~@Y> zdnCZ0U8eN{16zdvkpu=G$7{wK;gqQjSo!(ku)Z@`=G{UGV`3g|>B&q4k`F3P_FMt= z7ii;Uw2OQCl>D(KtnqbolZHPZ~whE71+V z{Ii?)OQIqHcQY;R>M&euYa8W4=u8ykWF{fRJlVQj$Vrz|V(KrW_}7;#*?ZH4_jV@_3|Eq>yw^X{3ykwRC*DG|(k zrs@?-Tw>AvfI&!6UFgR7}SB|`l6_!Z(Uh&UK7IqPGyytKg>)-qw6N^md~E@ zivmQ_7?YFqK8a#2Wk8`&@XhIOX(bMhDi-o`*wqt-m5zFSBejZro_EsSkzCe7Rx=V6 zMY(Llo$bCLlJE z$%0cpgZ=0H7Nlpnf&~i;tD(7(-AIEsO4vSuEk?}yL+>q^U(PNgeZk?Bbf9~yc4ew@ z(NlDFw-4tTCOM*LPZkyYJdfv**?-=uS%P@brF-uC!ZhtUvN|Mw*`;<^9vVOzMk^nU zbdYo;SwVjOPUHE>fM7hb=-{6$c~Sv1Gg>oT$&R`H&^90MM$=tta=$C`>ORLu9(oO+ zYehiCe|W*D`CEEsLw#{}JHJP%GjM#q)7LUvrsVvD_oHk4;w?_2?G0|a_nB{Yu=L6@ zm?BH;%gh`n_MhM<$S1p}N^B-$yxyLkId9P{;~wYnxM~v!N0764ibZr;nLCe$ma`m+NG$sPXF3zJACQ_>XAU+6X_TnvFn$BpZfu^|aSLyj*_x_}j{ zqzZAkBs(3dB26qVEjH?@DQPf)F#@1S&+st5IsrkjWN`9gAP)aAIipR3kHF==bj7r> znc2XvZ<`{6w)G9azVNt{{`Z8ePm<}XFduQkN*}m_Mq!1^La#@Ps07PF4kTD*{l4I-d#jD@-R3eXvJ?LqiHwlgG3Sy|&xCA3%be4d!x zV;}Y9OUxHwQ2ikI`!{QP;bDs?P!+ZoqCA zuxtHNR>oA|=#=C%K2)j={yA2~UR+|u>%IP#rS+tVt)zW|PMz(#SjO}gNgnJ;{OCbu zY}nHSMl38W%x!525c0Zo*b>72WxT~qN;bdy?SRzQwj6_$739y-b`w0LU8kb2uk`5? z-Yg$2V_lm&+bC6ppR&I923K_SM*spd=Olg^6WzGg7IFnRc;^+;{Me=mF^EV&7qEGV zS%%+tshq63x_ByS%opYc&lEj&Bqd^J0OuZ%oEjqYUOv0HI26bvxj2Y2>sY+3^yyUu zrTg5VwzMP%(ld9LCQTb!Sq=QmN$MFR=Ezs-99HB%e*_82v+_C^fBr~TV70&YMmTA~VCzjV?nrUm3aoOrJvT zf@dXeBu#9Fz(cywsV4#R>a;yWTWle=s}1(t2l6rI4PpS8N_zG1NIf6jW9>zf@9X zCvB9lxF<0yLwtOUaX@!JoVM1M#FM~S^G^Q0%t6zuXv(&1+m#lzcYmQ?Y@xYij|=4{ zmm3$Cso3$QhJu8Zb{5HuCu?}y=yL%(1UZdAA_4lBFO3CWerS~rL&f=exjjH$Ho#ox zX@J2HP48D^<-bx>#J5)CsDrq@77+OPS75`O-Y48_O+t=fXKk@EmYl;R=0u#4XSl9p z1~bMY8=0EK*ANYtyXQ#c-a`|8SQXm88WJ&6$m|Eq;#OW@5Ts?(kC(!GjXZ+}e|zCF zG(kwd5~D>CS%u0Y4u?y{dUE{3;L_nvx<8I+qRt@NKx>m`?g+pGX-owR^@&Z5x5Duc zSno9qXXOjNqG6kEQhb&W&(5k`Yu;{Y6`?Gm7kh$-Im5jo2|zx!mJmCq;h#g$57aX9 z@d1_#sk0^Q3F-0X(u06}b$I+3t zO0AR58{@uSRO_wRf6mG}KFY>itTW)I?tUYn?zX}Mg4{0xTx2?2Jt;7EFanS-DtkLt z#pb(JH1FQAQacYuW~fz~k4*=1AD<#Y-Gg~gUJW!HlP9}Y_)Jf8uJ<(tZ6w{I6YcLA z)IK9%_SngitW=%Vva75F7$H(~Y$>CE#k#(#E9SQR=i13hMJAVT?2umtvk3MF;*jQ< zp0Yk?LuX(wV#jfGb#klB-(R0I%zB<6`O%E4;~BOVjO?621F+t{Y3=(V#mzH|%MHXW zu?~4g@poPx1xfqMHZ**e`aT*=Y~zl7SKxtx@yGl5<7LltWT|wveB-8-bv(3;2?z+P z&0Ac`PIkqH`)iA$?0cwt{WRo3%G@*U-7Is}9V2X(SrQ+%M}57EPPeTGudCBZy8-dY z$P9j8V$NTn#?qMA`n+k#Ehj- z^W3c_1APvZ!hY=q4E)ny=y)7qO%0c&YgyQRMH+lW)dxfnP_0w51ieCj5%ii=`$^fx zd~X)5isN}Mg~KX|!1MfZ)m|3(>VqUMOJlLUvtYIba`3M2B%xwWk&mc8>6xNpD)29w8KlQ%m z!9i*)S>L1@Yat>mWhQ~~> zPwoZtV&OB1zlBR~e%% zAcp|%ryXaFMmsz{eQgn<#fZ{;lz=Xq%%ppV{G8yMs#$JTk=C%kdJ)Jpta)I00E1g5 z_9QA!A7y;BJW1)qDu&sNnXNxgtET#wV_A{TM;&@W`)v8#YT)I}yQ~!f&EdzuzA9_R zyWr9UfI`=B0L9auZ>!qb^+`_cMT+kkF$BV}c9dE>tRx1rhgjx}A?GKGPp`F80yk=+ z@rm8;l>0m+>PTmq&Pcu@H_PV0*4DI2y5h5*U2w(flml_T`8Rs!KF-9Tw;jmIWu1p1 z{!Rt=ch_;QQ8X->HV1yr#pO#;FLVjgc1<`SmgIU*;@X5+7R--T5HY$qEr;33nQ8ve zqg68zb}{RI+M1}c2M!`Y@w5_blcOvrwN1-%meACANff7*E=JGLg=;65$-Ee08HS`! zFLn${DosbS#GoT1;YS zCzGuzr1;IJYp6L};eFKYB_Xv!f&SX>1$LXuXJljsQh8$l*r#{f#nB&#Gpt0#QNMsz zP%G8z;u?<^Y>eirGH>)RZ7sDN0uA82f)YT;G;PK9*4dfM?RrV&Q6GS2JR<8QD*&p+ zxoA3za%^jdmUqezVrEIy`2Esw?Wah-i!O)51+OozZFLo=3ed7OkPdL4v1_H0(A@4j zzsN9}b&ZZFX7Pgr9G2@HJ@nf_cE~+lJCdPQS$Xr97My=PG*rjvc^@fs~wiOI_ zmh#_&?AM;yK?88xFZgKmHwx!gH?UJib`Fn@Na$F-o>nbr_ZAPvt`F3OVm94A_i%UT z6GkT1FZpZA6lY*Jnt=#r1e+b*rg1LoxRiMopMrQ`mv&@By5sgi<-0<`c6gl%+M$sB zM+<(;fG12%nvuZL%dc?pntK+3nt~S1bJXOsF~5d;$m*%``cLw3i~5=sfjxY2lZW;4 ztu?*CvPt~hSsn}HHCxJaB8O=>afa~P=iLFeGb&%taN78LVyE_ot!%omGZLA2vZCM< ztq=`Q-+SB>=o#$9A$Ut$Tv!>i{7~Lo`c*eYR+N&jj9U3z{yT%9ql-YlVXGrEf%u!u zWxLsMbdG6AiY6h!2cH7G4j)YdIi-l5a*XV(usoD(Qj$!LzB=um!Rpj<^^&r;qfef| zA2vNhg0M8WI9FQjjoQ4fQR&FNW^~ZZlZHttS~3v|>|)t_-2mG7TE34&Ez@{Fh(+b= zxIh4dUa6f3H;&IwM(U38FWI5hNB`ah>UWDIk)24NQy-Cd1tYj`j*3$kDF zYSe1xK~Hz0by6yLMhfvHZN*XY#!bpqpElc$WCMglv8R15DbF8iLOl6Tg@WYz;E+!K zLU|$_t~bE&pIL5;AF!I`CJiw2rWvXoL zw$zDdibCS3#l5k)XT)=;H$ zh+W)w8wfKA1+x()89adPa85=ZZnyXvAbSY~IVqKu{WPs7SJkzgI&=NlDAeKK+#1vo z0vBYdsPY1uvK0o1pr&+fR|hSDT32c|s8OsYW;gq;5I{uGG&ktTopmWY<7sG+%9RDa zf!*$Whd5izz%-w8C5Ll&d!_Gr0wwL!=4`l*{i!kpkd%&yWaDE}+@AS9plA?cH-1;{ z+EM>8|K7G{E$u}~Y3UowWRgT@H@COb5s@v<}J zuvp3}s6ve?r)z8^%i^q@GRi;j&7anO=L7)3gN)?mrl&nEc9qd!Gfe&IAL}Upfjoe+ zZ@BK6A|fIR7s#iN8O6E^bd1zL_LEE0xxkElWQj2rFz`<#0 zC>4eclP5h5H$`IA0?s3-ULZCidaJXOB|wbYjszK{9M;zS&kr7{Ow9BVxv-=-p$a)X z@9lWb*Rl?R9rSIhTN=_z^*(mjRJ}J0r+YyLRIIF%Hk-F`o9q+p#{Hi(B+oD2pA1Y2 z)pPdG>3Uf!NR3Qt=!~9UZPCt?hhO|552!{9x-HLo#gkIhvnnM|*uWIT4DXe5=>M!$ z97fK9U0^hCG8@iR|M^yAI7hhKG<&OB$#ZhEj2SX8=B%Qkk8F2AOv5!uepzigRdZu7 zVJofY9qVM})Sykw1sT<3?bY&*TcZ>retlwGaPB!#$B94Swk!u<9rlcoVo$`Wy7QnI zFezSd&k=CkQEKoI^grzz8=R0b#bdCEwb^=CRV>kDUQV<_|X4!&ZQW!}_r7dn*wB(C!2 z^8Oiy5DB}*%a-q+pG3JjDKy-^xVrKz+!qJ1Xt)#Cq(0F65FCj9A!;i4;o@{FRzEHe8yOQDLSH;=YOrV-heEx5f zx;w5(ja%6tNMw8Y&Na($a6e!6$rq@5%I67Xezj~pqh4qK&FRM_s_<|= z_`rE!en9&$Nk^BZT=e!mwLf~{6i(R>>YxB0BsS5WqCb7DC>5|Mf$2YLOJ9Aq9UQO< zxt+!Bj|rN|Q?+0dM_drapf>*jzs+H_%B;+@Sy7Yka3wBG>*#67!})N5OKDeKGnGCV z!NM;xwe_{U{I)cMN5>&J?j0*#HU0=6JL4NV*qI70l<$z*SEbg+U7YILIEM-~ukhv< zP*5|B{>=rj5G#85=O$+=xD;R3BsOpPu5Snocq*nUyGJkw?+;4r?OO_>O} z9}~HCYR&GwFubd`oyIb!+4S#xzkMl|BQb{fn05K{+R1^GkM1V&`r7FnO2K41%-&4D z2zklu@H&ZTo$2!)VI0%^?cP=g$ha7mRyxOX8N-9Tp~-wDlE;ybb}XC7b&;5m7lL)) zsPApP5g`EZ0qCA$PArgk7Bt;x{N8xn93GkM{rWsT9EHElh&NO4$vFaXJnasZt*vd8 zzw%=y$Mi(sdLKf;(Y*||6@2MAA|AwD-jdvY?4Ky0t1gu)f>Y&my86At|q z#)@2b-j?3rA%-3)Cr6sCN3WfeD#qr~&>$MW+3dRWk%NoFVtjuI*RT_X-bv(WBe@5cg)TnX_2hr&WfKFT-XM{b@MZK>!dFG4!M}LeLIdiFEl{8!G zH?d%F);+Qsny6?Ec}0H#4hHAX^9_lZ;^%Kzy90mK7!1PHE}Og{8j?&(ZgJIR{vgjKT8MCpvP!hj zS0WQQMVJrk`^+o>H-+evVlmujJ2EFV5+y_t_H@JTHmMbKLIM7b#&+6Vx%IVIFjN-$g$@f>IjRwR`HrnWBcodPYbw#nV%q8*T!qtV%=b*0RjPwgNbCTb zepygvUu>W#`0nOa*i^LUGvu87->ZY6Vi4hWVWnLdBJ$iJB!9nqsqZiVAWZxP^4(NI zTK#7eiiKFsDKPiY#Z)u#^t)_189cVbpN1is}AM74>k9k2-H%x3-=r40flbwe1o}E3T~-M00Q? zgIpvfht8)wx0ApLbUf}hZ6wcWI-CU4(HgIRP`en4W9L4hM6`83uL94ml9_^GJq`>m8-t0mpZF)OVFX1(8`_u>QXJ^>SC6y_A(N@oowe zD)v-fAkEi~?cinkbAle6@X@E&*Kjn~CI|*%H>ZFnxp{&@Ubc#9@^Qtdgnc|yddX=_ zfSb3HV!TktVY?lFGmlkR-a@};roMPpcLiduAhpEh#OzrRH;_xRVZf^tYktm!Z>4bD zbu2^PGkO~ApPt;sU)IeQhodw2Gw4tH4TszG;d<`fA4H}`^U5c`UNEY1xe_|wpmPji zw5M9VN71iUcljJh;2D{l<88^@-o6oPkM#T2;)w?P+S0dacf+0 z#ln)w6W{)wMgaF2D1MfEB@4IT5^*BOaN?0pYs4emWbzoy&ny95-BMmfA$FA z-95uA#u$7|{tCo=bNTwaeY&TEIYfMh(Nrorj?35!`CWN>TAE|=*pPNsQ|(bLOL$prntg5sY}^vJ--Xj8f0oKR7Xh|-g+~V)8Tm} zgqt?a_rKXI)d8s)uvsANTr2~{jW5O5;2^NKcVgqrfTEL~lF|uMi6y09(FdD|A-M>k zO&|ZF`oqxh*ew#HYnF>nVcETlZzrym;ljJS3rYHOQBpA897QBzym*ksh!f^z(c zlVR#2IC{%J?AmE6!Wl?Fh|^ATU5eJTER#da?`b$e&=)aq&=jbn5S-OS=Wp7y_xj7s zXiLf>{jO6XzKxblRAQR;v#P1KePEESL_f8KAoBD0bV`K>eca*yK5EXf3-gJsCo7)yuDw}fz!9__z5~Pd3|kt zUA>R2qFx&tZ>QS#lY~gh>1RP6t7UP%V~VULK}(-C4gBF4oKN6>i$TZpp|osrvZPT? zo|Hcvq{!|onF>SHq%lO>q{kJU5*b<2a}M9ywQwxa2>U55hcGVqy-vTD-RSCY4NX{I zj(FFUX|jgHbA3&W?)H*X>B_HXRk$|CU!Iw(eVh_XU12rPOKZ=*Sv4DxUS8~ z;ZhL(aE>;7exSK>?&&b!6hRD|APqO2pvPUQ`SiM&ojf2=PjK?}^^JpOcHZJ@MRtMGjoC1x7JFNI+tL6veQzzGW&${S8?NeQs)@E)n-#y`D z@-fvuqz`H8nFgA2*>-`AtkmF!u9;IaUu14xcGgcPAuB5%7OkLJISbN|v}0o|7>Q;? zE-Z4&^8HcJeAog@OCvM;u{|eebK#HvmR2kYi0~$U! zc0vpWIrGV%)*qk5c$@cK5dmj5&|T-S^U7v*o`A>d9kqNxW@Tkidym5LAWv1*hog&sP_3tcRG1r zuWR4lr)U_?$!0Cq_p_CD+v1-EYq_#HXZ)+_Y;t!4kCzF+2j@H2>#eh>K)RlKhHD#s3 zFFj&BUB=Bbl`gb>ERo5Melh9ayKn1mW36_t>Q>9CL9)K} z^n#*-?mL~7i6|?Jxi>Eg%Vu$;YS1q(t!F3SeEbs^GKt3iQ0!O6IhZ(-0wa}=7=#Qh z=Nd7RdiH_!`PCRFvz)jRIfhB=3eMCl_Ka=*#~M2*f8*VyPl>FDy2{66KS_p$TfYjX zetA5q_&3;v7{AqfotBg;7p~vn`{NfG3NRe;)r;4sUPnEpRwgwZm9wHUBt!}yFB!B- z4E^D{DON~0jB%E_$h*V|t=rQMWC#%qCO4)=;+vhmbcbLD6$XvU%i_Um(nXm*Nl#C> zvK0{0fdnVT%_h=Ze=}HtH-f#1)upY;v3~W@htCVJn*pj3<==ODy8k^g^6E}n8bi2U zu*9kl{#E!33+|045S{6*-ee|gPF(MxM@lA$&ioK{M9^5?gaJMgL{=_wWi^*OY-AYd zaO;B~Dl|bBTR^@43*Kma*fQ9!aRs>`=TwgD)YK2&b)sExLmV#%dHNL===47=^1~v) z4}$Il5k&XRgXq$5o} z?;WqJ*L-6Gg&02@rVKd;>FGePZpsdTWl@K?Tn5rnbkV;OyXr?QDtG$ zvETC(y^1poEX)!o%`I>NAISWp@)rwd)|U<@qHAlNtdO2x zn$GEeMI~qhg$AW%eN44nGu1;3yYtcffNJ%~=>L;8(k6u3I@0QS?FBE9Oh-a{M?cTQ z9n0)izP7(?p8`x;+bEm|iD$6#+<8NRuRW^dN`o;VP8G)UPOAC*^K*5%51<73#(_Bz6QJ2jYP9eTp z!pHM7-o+CAvBriv&qKxGqQHg7VIARxe8uiAtkmvp%vHBDH-;Np`t){Vo8U#uHh+*P zp3T#`!Dn7Ek_sJs%+H+3kVZu3siH&Mo>m=An)7(5EIi=cEhH`7iD%~+8hdN<8B_u`e|=meG{knRmDN+LmfWt`Atwzk!Z2?B~AXs~Uc z17`7KIRccHtFw=KagA-Bsj$usDqGm#RN6J3Rt7eHSXk7D&&o4~zfDc@Yb?i+L4gA@ zU98=h!*cl7!EgP5MI(1xu8pbr4&`Vecpg@Bon@qxJwnt`=qdGti6-chmLo@19td{= z$ZLnI>8OX(e0(WsrNa&;GG&E{{qDREUSLz+pB+U**8mjda6EJq_|T*`Pc!dw@c=m2 zlOSxLvEO4Uge$HrUH)EYZZP#euhTrUurjMQ&XfEmSB?rJQd|DdYtnZic@&cL_Zl_@ zEIVvv`gi(0?fSEGs*aoUGecH84)2go4)>$Sla}n&@nW z2H~)AdI^Xyae#^i=u-Mm_@}TS`_Z3{I^UJ8;nFd6{5+~iwe>jCnC2X+xSk;@vfl^M zSx(Ez&0WgI%=^S+5i$yg5V#Zf&hJk??nt%KADkY!k2Zee*QJ1j>Y zQsctpf%5cR^mLT!E(Pb$heAtk%SM0iTJEh$DxQ*>)$fs$KVes2OwmDS`OYBi;1(+o zYB@XL_W_NBJ;n@v5(SZD(1-;Q`d#?x4O$7ZDFx97%NI-M?zDP;_BAdo+u`lViPuKA zsJ3P8s?T;M2M>o-c?{?#UhIA7(XCeNu)Gwgx0*5Azuv~Nb>i0$S!a8Hq~81H9&5uY z^g!=s7q)PX_)A)BgAwAFiQU&rQZIxsZ8uF-H@DbgI;-XgC9i6m=DZ)tO z=X4IIyFH6O-=N}+Ubs5f!x$IZm@WwBO`#t6peGL&w z^YgpP=Hl z#Z+&yGO?Z>9xq;H6RmBG8FN@M`~Ut;wY#@>v@_9B9T=U>^`7s7J#WH{9Qeh6Ush65 z0*qkbQmB?#A~TVS3O=B8E%8H1!qeICv2eRrf@gcC&r~{jV*zYT2(Vh@XPf4giIS4$ z>W=rKpmI(4x}`NDfl{al!JZBKhc~kRcE*vz#i8y*IrcMNk z$p8xj6qy3%-bWLgi8=4~%&8J*J_zvX%kiowqQHp(b_ZxM0j!t*mEV; z=G>xP2=C}P1R{k!0|QwaoSc|wxFhb#FH|=t8)~{%eRU8KpX<)_HxO`JMGOy@ZJs&J z&Z*%tI=lpi6!@UA2J^$Z7@voOQq5tRU|5>E}vnD_PSKJUb zezUXO*Qm&856!RT3$OdE&d9d9b^MXojAlu})5|s3>XoWw|Gf<^2}?^=Ei$JoT@mbO zZIjouAtoj!7WUR}UpFVmY`!Z@=74K*yQ5)4UoO4eeBfQ5yWo5B`YkP*2m*pXt+Lb6 z+Jxfe+y$Trhb9zvSXKN#WU_nS<34@4TV@uPYSX*k;9r6LY;z4t|D;`jo$D1dPM}pza29gosF^cFzQu z9EwLhMZ1!pG>85aZ5~ie!3lPNSmtDzx(I!7Avu1duR@iUF0{Vs-&*9~C$MQWi)CnT zZ6!=rZ#diBeHoGUT8`%RGoQ4})*pVu zPcpt7G+fM!enV`i`bnB0H7sg(a$lm`#Y@UOguQ&m(P90EhbdT6-#)yrpXb8o-$!Rz zG&wpP5fsoriW+xC4%CxjEUvocgzp%}2frjK1Z6!mW#>agbO?8u$ZO`u;U zWBT;5=+wKx5CC@TbApl*%hk@L#9CXUBk3wS_BwWaZ|>Lh?|kI)CQ6Mj)FqNRTKnRw zEbQ#wNG5TQ=BNkmt8s<16-8Ud5MpCvzj^yM7Ia1jty^BdUgU&a9dD#ddtTe@&4!+C zjo=GU)mgs%X~<+yV!dHjsD84sKUcTf9~lms(+yUh)zvFE#92Q35>=o%N~}|}et_Cs zvO@7rDkDQJd2WV{@A&=!@%|oWG+%|--kwe3nvk56+>6p(++eTv>=HqhVn~}rqcQrM zR1?u$t<4(&c*zyA-QD@JV9+bd;<8iPY@tygsy8-QDwSJ}(>B8@)32JH@3th!FG&CH zI?!aU60S+70}&CW-GnuqRz;plKBw86a3T9^yTUG%d+!z=9-hIvUlq(vYGHYRBqWGA ztaS;1USQuA3Q=O2^h$S%T7P;jtO<2P)*P z-1;2I3I6R^6*^27N4BuASoFM@Vc2x%dx=Td*RSUMZMZsBExD~tP&kmNhgb(Xr5zL$ z^z$cZtMRHE#+(?7R;l}^rA}uUhjnS_g<8FXuj>u!U_pn0ps?`tvZbY^!wtconT?k{ zQAL{FZAX-Jlf3@U?C$q(co9&Ca*a{zoFVMa``iWti3VH8ku>V`-anom&s4yHD;vzb zp#YyQ_t!YNFc?p8q)}@O8+z-#w7AHxt(~TpOsY_%wsLkY{)s-`lmQGh)7I9mu~>S8 zO{ZEu-+DV0@lKk1>XY-*5}V;{J_op6c1NIfsrB}#Ar_5tZ~m6dyRX&7YR+L}#uG#C z&EPAw_m-oJRM$Xzu6*T&sHg*GgHF_k*1o>J@kX;bcp6`<*||9%U*GnrsaOJzQi?j* zm;@rR{!6y@wzlOR`vBfMc#ExJy}HT~gMO>)UL`C#J{w?V&uJ8NZ-GI$bX^Q z0m%1Pd(p`bRbyP0ypl{!@s%c-_R05^>HGwQge8hJvyHCa;n@?=^ z$ZZ>k%DeknQ89*ApE1_QFQ~GC2;41b5G_8@C&8D0(+X&gXm<}|dhRb|^OW1qD~gge zO0n`pWwNHRR=M0Kzk?lbeYA@hM0m75k?h_!H-}=LEO2^rY~0#;1Gd-Z_zKhUYJdA> ziTh%MJw-?Gb+Ogdo4AIdC(TZQFq9fAO0%sj?(Vg2r-(|72KsHqsk?JEkvbyvN_9rK zrYcQH{ECV=p7$3GS{ZT=MU5q7PwOwtzOb4r_SML^5uDGrR+prAhQ8%WKHW9N(R;t} z<-K&~XFcWmJ1nLwiRDQ&^ZsOBuLUi0w|h(a{e3gA?~YqTGy(+tRA;VmDpkz^$#V?Q6ZFH2EzDUb1T)yIotn zTo3k%+f5}qJA1M2mQ^Ee*xYc^zqtU+lV-aSqAQbSI!LxVqwpz$N7}nnCGGo7vo%&z zfmaWMsWJ+GT3fH~-4{x&XM`m#iF9Yy&mQ$IxU)aZXH&jh1QUOH2@}I$97Ic*vP_Ms zSg-j4#6wFz4?bY^#|st2v0S=dz6(lbH^gyF_Vk47oB#H)4{r>Y!{r^q`TpW<>`DTs zT@0=aMJS&JFW5R)TAf9LLPAqeo~>IVj_ohOl1^xtgyP_P6l+Y-HYBbr_alhQvLsXa z?_Hk2KONdjm#lHU2{I*Uj@ED$0QbQ0cy+xowaN6E_95gmG9qxnartufbS`6{H z?BD2Bs`fM&?%`yMQ5H=c>ZCrJ&!69;EqDpYG(Vw9@#aO90U$5>mn~v{z;xtrduTiMl(4A0ovNc~(RuJ5-y%hh!6UZC} zjiLt`(#A9)hg7AQVRsazc+zamrRn6SC>oWP_`bMltlt_KXlS92D$TD*wz&Pdlf$9V zfx2#gLhOP2ZLEjKPH!AfaImvY*_m%(pk7yLI>59v}iR5o{g>XQIFA2C$M^CsGcgz{$`ywdS{0!a2%Ly~J z7-Mtf%HYE(g3_f&s-8W6p}&2KdwNw*p;_=dBw})~$=rOqLH%MLlf?D~A@$ z8SOWJKMY&kYqdSXyMBt)+CT(x?4*j6%c82Q*;Q3lH!s>Z>`X=HovX-_lE#l8^2YO- z%I7cK>MHI0_qxt*PjzM{0KHap{Mh6mRV{uTH9}u5wA$T?91~{`+fT2l=9`zAUz8CrN%R5_Q?hH zuF2}jQ)Ev`CmK|+tu`w6#gdyWN>b0R6dIJ}>M}f5r>jiG$Mcn76icS>Ybs4|B=%>0 zAt@W#JiB4AVKHLlyrNNJhspiMPa%yX}`vBRv5#c z7a=JqV1u$I7E2}iA7Fb9E zpLYf*xcdHQ5RBW!nQh{>tsbYWFvuO>%sGN*?eEt5Gl<)J3)`?7k5hej)@_mO_csM$E3k2l! z?%DaohIjq|bJiW1k4Q!d7Wy3|8Z>KmIk4RasQ-*P3!LWiYSZRa-TQ3GFJE6(NDgJ_&T9TC_f-2gaD>&70%U z4pf{q$2QgVI(uUMve@Eci~9Ow$jg_SJXCK)&UbU=kv@e*d_%*>?WZLDSGzgc zl|Bh)CLX^+EaQ0(>-htwGl?g@09NSp?Cfl3673A!z}PBK&PwIFxIp;>`uLYwooE8EqE<`u>%_gE=4S3VA z*40ibyrut4bwGqpsDteub+NdAzIjCH8&oncGaQPP>nM9OxZurXc`QqVg+w0i`{oyt zbge8U@I!!~_L_#~Hq>Ck({|#fwVEP6J7@FT%)}7Gc##ZMsCk5o)+HEAHo(o$+|ts5 z<75(yx3hiiFu+p%FbONT;JnYXZTaL=bbhVp5YVKX4{Q80vrQ3f?=h(&I$B%dMjFB% zcE-)ccvpSN8tBBx(Q%2w+Co&1GoG-qu|b1~S`ZGZ^o}D8O=e2M--@_$SdB)LG~Ehs zpzZu1C+`(&|FsF-2-qt3g?`GjlnZB3zi`Lhpafx z^W14Iy|0dmQPl5?Md068t$C+Wn6KtssLBCT?Qj&Pc5A3ww{DI+#o>I;t=SN~nzY8l zT>!jHIE%GyIRXEMkU=S(PW|%+N4l@o^i6liBXFWH7VaI_>D)$iMXDw9+2LJ+l_nSV z9UEQY_#Po4Qou&)_-C)){zCF#p?uTx7Hc^f`o-~Nx{=qp|9XVxNYkaq4VSGZoESXAcX`38*l|!6%J_SfvUn1>4-?S0x#kVP)@ry&)}4n=}eeGK1aMWQ;=_( z-zl1EoUhl*+cQr8`SVGo$=nP6%+HvnYX{+^cU%=}C&B5T*ZkPIxZob6T7ex;m%AX# zYjtgY&+8(5|lCes`o$Fg>p@9 znwf@%Ccun`SEs#u3^M9afwwnP!EpK`iZ*U#cQ>G2TdR4()5lp5@n+Q^2ER|E*yr%j zLI=mc{ZCO7O4(iA)r>j0v1{eUVfnn#I7TsDOfV5w|DX}*HQgSdWF4S|Kj55s5^i^b z|MW3(JXh6W7Xn!Lx<^$o19Ed%W>1aH7USWfY7~{y58#PG=#5U3bLCND=na9&HiH~~ zxIsw9o+?$gpVDY>+RL?Xa&~e$HtWHH(5RFgr*^@BaS4yn0EE$?yDi>akvMpifY*w7 zY}Erq#8s~5&@0Ei3Qh+H2ME3X?xigDdWU$7F7gy9VW`E5@F%}6xTB*ZWMYnKoXQjS z6P4U$Y79z~0%3Za$!D;zh4@aBU+!x^iHWsomyjA)7?ddb1e6kyh2GD*{CydH>Nj_* zy0Xzgu!o5J95&w|YoXEBzigww%=`gnJby-0MYBlu2ooB31xL|ZXyGwiW6f}wcMou; zfnC1EJ{8*ewe)>8U~gfQl9Jj4J1qJZk{fQ$K>!U8hA0Z>hLHtCw+s!1`gDGpH=g<4 z=;|b$X(co}JNFoHrgsGB%$z4e>hI*4K1Y}GIo~PGwJtoCN^Or8wg)BF#c;Zk+pnx# z6$>~YJ2|2e685FGir^e|Ov++U!>AXiN0Rl(TO1B*c?A=QM@tZPg|vjHq-e65O!rP& zqFdV9GQ9XA&1r96>wb%?ak?*bH=*&?c${Xo-qC-JTAsn`R1pH)3(3050+hE}ljco_ z`X}5_y3LtNuNUc!BXny}u<;TZ#uQNlbrlh6kQn|y_V#yrwn=v?z zx7+yet|ypEW%^|F^dVxnOv_tah6G`0?{8dNfL;R_h-4ECoKlt6+s8O$>Eka8TU#=2 z?gZdK_r@_L7Z=lmnoXSR9!cHqh#?0`F3^D8FbrEUwL0MOlPWR}R$z(MyDk^H)K5Y`k zh0)n>u;s!oFCCoD_Is)pkYBquy8QI^UIEU++XtN1$UFsL|8;(kQ4ra?i6GxZMjceV zWo8awi?3P+w>L*6n{}$p;4Lq25?J0Kf-}9nS`=o}VINekdQ`<=#&4siv~f*m@^5u}o#V^r=ZMFi$n-`i8ARr?B%ZH(@0aH`I77gJ;dSf_!fuA~6 zu~2X8FQLY}oKuvn#x0s9h8xRhNsxSY{Uc>j6B>ZmAAdoG0=c|FIP7;et+9ODhGoqd z3m_915WGRG4J20junL}`pg1qy9A2QN=+9kO*VL34U1@XLY=72FVL58;?4d?2%MwqO zO8o&PZ+60Hq2Rg6P;4O)4TqxO9^FU*ZzMn*n23?zeK(g`^w|FE16cslf?E6r@;kCJ zq8?16l+2(5?{#;MgtDFK62L!v3qgL^!xj!A@^5nYNR5_D;;xD1xhulh=+G`X>`Q6s zRVnVAe4^NM>wd8}LBO%ybBvkyZK9He?}2@CJSilEzYdjiY0r8P>&rbmDBz(tyj5JM zRqWhm*}2@0FWQ>T^(=VLJ$1W3-QW#SnU{D*Jg-Pux*qtXhlV2P3?6W5s;f0w;~5s} zBs~V4-99D{IFs*?y$NHzOl*MVuhG6jp?x2faj>Gh?0@I_KR4MwJEGP9io-ZAA15RM z*jq1T+|D=_B)y)9ETb_hW@q36`X34dG&Ac%!-P_`E+v=U?i+e~A1*XBu%@9C)TnDc z(dm}0@EGsqN7;d%j%rkHz%y2$H2`CC@!9@DPz8^c%bl`03Y06GhZxRe2=DiK zZq)#=r+xH;1FVb>5PHk=S;zhPhA)K)9FBJtoHhsJu>g0FF8_uGdPD`bcEwNlS5QYE zZCv`A%$Ei>r@RI?>FBsyARJ8h9IrqJ4i=?KR(ZjXkDt3EX$6Mf{F*A(CkxLK(`$u_ zS27-7A+2VE>jYrwko+q?va#RtS|`_XVE)EWTYOfly|~AP)a?uV1>#x&`7ET`6~sZc zSo{0?dy{y7F}O=;wnF<5w#{QlTK;BRfWIAYH1Y9?l05_h z)ay#G6P4LSDj6Wyma93$z}?dAN{Ic8sgbHOAyKc|sOmQcqOgR77$$3~5&d56D?d5a zY6nCS5rkvi9)Z5NqT?=+xySRaP)HOz^>MCPEOxC|$@k%zC^yCF^~jgHtq2#Y)(8V! zq@S)|cOWY9Yv$)er#a60BVqIz93Yu7Y|fk@@NMnbcs&8<34pj@J%hctj zCq!#Kk>cm>uh2p_JdTx`!P&U2LHD=JpP)Y^%?meI3OCDXln${>wll=Uq8dVC>i+w{!M~{q$t+F zB#SY_3xVfJ_l~%npL$reALA>l(}*sJI2B>v-2CTzL$M`wn}OKmQT=~-dKqnxfBr3> z@Uq$<|M0odLYc*UVgC82yfKXV|9M^hx4ke4=s)gAr+XwBNz%`lZ@rc!ipwja9Rre{J{&CHuE#)))P>&2cY7x<&-LAa5QR!@ELl z$Q6cbYQnlkJXO%71>4(R*;5Ay`r~2`1VBlSfByHEh#pCYR%Uq6;EsgzCe{I;|8_=< zT%=V0xNWT6_i$!>BF8gbG!pKfJd^A1g4^jHL`E`i=i&k2)+D~Ik(zL_bQav#`|>zZ zKOF>69bf%ZU_&1g>d>lSc8*{^KY!`Sn<=>wUy{)&LV4|i~wdY)*JnxoZc}!SQ zc>nLWpN>fU=jFeCAw~IrEr$ak{i%PuAnD;>f;N1AIP~{c+Plb2P zEu{^yIGbisFIxEdq-+Yy+REw;Ie8RtBCWtU?I=2puH~yTO6fF*($MpB!ow_u1JKa3 zZCcy@V1CV`3KgN=Rk2bVQ-=KB*V|j9R9YSYWRI{pA2gt>9av#d#7ss?8Uca;8s*Xm z#1&`=nf1EvTjBxGvt(;7`_WJEIGe`u|20!}04~*Vy;rR{15xME`OwN3OXNapYj0<8 z+I6@m;2SF3lSV{;y!^1z6c5NWO95(gN@}ZPfu)Q^ZThXTO^*w&4KuX3I^6M zRIK@m(7^+E*kY?Hwk;kW6ds~J?UG`rBiQjG)&9tnjS^Dj&M+4I%`G9cJe$77Z7!$w?Y;>a2Xw+D!DVmvo-GYa<@x=;MT0Hk`?cpH}+PJtuLHw!W&ra|Ws>h{L8I3Plxw;bR3IwUhRTVQRjis8tZPC-Px6SGFU8Ku4qC4hEazPfWGL!rgYo zb|8%`F$Q5yK`xzn_c>M^ZLF&|Ni!zJx3AN=Xtni=9+7+nemysw`MmV z>~p=henU-7>;-;HJsk-0la)WiNOSI&|MCf8fhGFpw|%)2)??v~ml#B;nX-e^JI;N> ziGVZ~I`{q0e+pp#AUYzV|Kx)TshE{_IC}QLfd4Z*_q*nD0~HA0V^1XlMxAgV;sC-9 zw@@U2GT$;YV*yda75KMuWq1=PkosNP@&IpDs8w-LhKKUNT!EYb0(Kl(gSttvMNIod zzHXfDynDITV7)3H3cJ}r>mS?}I=Tla_XuG$0vDH(df8E^Tb=Z_!W@~^Zb(#Tk=*C- zM?XUe+gZ(xfElv;+Ny)2D<@a4@W0mLbVzM|-KhPMQgzOglNXFX8dIfH#!9?tuqbAR z11S7{kIplN4@TL7<5H+ypCq?6{QSks(26jQgKYs?wZHFL!mEUv52i)*D;zhR8Z?Fk zJdDIM~J%T+d`RKM}_|nD6i=;}l^Py&>+qC zeyo6-W)H{rY^G&fX7lh^xJO~-VrJG1YwC-qCl=#+s96D-OPYWyu|CY$&6eLyOKzlD zr`hKF>81gnEI;s`RjZx(akD&yUOzb znIa1eA>8mG@ZA4O%O}nI@m7v&e)8rPO&RgtX_tyL2&uNs> zsS(g;4ITytuOLf8A^)jnv}Hv*+QWaUzSZRi?8|dgdLk_flQNAb*ex;_dvM_qMU`?7 zHe=}rzp*aNK+W|y;4I@MCe!QKl$j(A0{MH40C!l(?fftDw&{}by~Qb?<9!2T4w_pZ z%{mJqb0t!mH#|wTwHoXu1JZY*5`WYhu&VUz-!rqYtd*kqO#FVkrI@}R|96sz%QB_x zWdMt}%f@oEAmoP25Iz3yH0xP_bDrXfa%uwP=A9K|NwZl?Egr%1_A$?jquGko_x}E? zYlpFdQi|W>nZ+s+4pn~2ayH!cz8&mZ5ALVcX?&D8lxYk_l#vR1B^`}?KqsK<)0a~t z4#}mZrcUu&0<{pD`Hy=D2W>{xk@-~jA|T+U*d{{@lArdxXWE7;i3CI z&+KF&cz%|8Tc5IXUIWW9>l*T{&GRnho6Xi7e<^H33#3hqi_M9cN=F&6*CfNRVZNMLMS@Wqf(C#x|bZ9)_9s>6R}E@3{v& z5c{$g2I+|3bG2FuXGmoJ@b{)aJe_yAm3~(WcM&8VlqR>Z6fjOW!eXuX3lFD%rMX zvUyEbU-YfvG)g}DSOVL*@zY)V&)40_jjCC%IMfQk%$>SFJx>UR(x3-SsZY_5(9on# zHiwlKA4hoR-J*eDbu4)<+bJ$p=Fwk_ub&4nXjOkgspTX(vp$cMjt=Rp^ZGB@!MV!q ziQqk6=VOJEsM#80{=lzTTUAhnh(rkJnEAGWvE^j2g@p_Ts5-I7aJZ9Oaa(k1A68L{ zLD3363vH)?_z#O?^5%lx9HT+p*AAcK6LlsO&Ck?2QYkBs`dshVFzVJPxoqF1qX)&- zw`T2%OKL^M*i4qcHSJG8ef5!g7d9k|8BI9oFT@5m0S1R>@}LH&F=?}c;soHcW{ZdK zP?jn!VWZ3mv0xUXagU-)I49*R-SV8L5Oxo<<*B0ica{s$${qd{*4GW}CZz{@eHlz7 z*KnH}dmugm9`5U`(Pj=8lWo|b%ok+jC+JTM`md^d_+5xxcZ6p>U8($TC<+K!DsSgO zbpwd}+Qr14Vn5sX2KOu0;ZbU76Mjn)UoKlRwY-oYmv$s5d$R~+n9q%Ka$fKEK@JzI zIlDRo#IE5;Q|puHpY{naYixD84`I*Va6#{yTwALO9_cjnRi9g1BGjC(d`^YIx!${a zLr6|6>hR%}@Y!LtGff;=KXWJyvWOyWJ(m^%Vn2*E{~U*;vx#vAj>6i41dZL3#Z&gPdFr%K>{O2a}Pq2fNr?`-q+*5orMfMHW8L@v}JNgr;@ z9FLjuY;W}&9-`1uKPD9_jr#XTx;5nu;4Iz052yd?&i2@5SNeeuSzg)hjV`&aFx|Im zKn#|$Ho6~ndczg9nqi-nuKjJNv8GJc?TWM<7VrN)Xz5Bd7{SQ3mQt}8A`_Mo^5s%G&UQMVe5U(Bm?SQY0&{d^hKR#eqGkK@7=r0d+GteTgJ>W zRY=57|F#xwUrG@7U*bX8o!fb|2S!InFTCgB(b&7{j2qW6#yv@N94|S{e|n|Y?=6)l zGwrI4Hz~E?M}<7%@jiK^&a4@gXLD11J3M8b$a1VO9Ch5{)kWa!;?jBFXL?hjV>Vdc zbw+k3_zY&1Ve_M@pKyrdu%vfyrm>CLk3j%4Q?LQ}{N2wm45>!AGZjxX=1UHzttI8x zyiQxtww1fahL=K89QAJ7uW5XuqIu=iw6isSGio}zHt638f26)1zG_XeaOY-@)Qp32 znD>b{RHsE<`XRO6@4UEjyN-^|dewla`$)swe&HH(;s8 zq}3Xg163(hwd{~CFz2KJX`RCmH4QppbEboOx%g8(?;_^yaqm)43~jex0@K=jCrT2% zva4?RvvUgLk&()`dNK+n*1OJZ?%Vy51~ZHYBmY;7#{*&GD>)9C?|tw+>vS<{G!Wz& z&usR+*bUJG)$z)(t-koUg6U$%B?b#Pj4M z5WCq>`+n*QP)0`Rp`gv4Bkg8$z6UzgJpv8veOPxi(k(dV_>3w)u!Xl}z}LaLpts9A zpQf0#+y6?O&el5dzM(#uRBD-n5|b^|B*uqrg2i~U^Fz9xbt*5?bafoP!X*?dW(VN6 zUe2A~!XOVI;vYN%$-rQkd=FgBYHlB^7c^}>(Sy;DlJe~S4+nQg zdrveQ9+~iExK-6oG}}k&_Kxtrm;6)eg3%<;w*~Xjit$u^Ql;Qym;TSP^&V4zs7DXTfv){+dri7 z@)Qq`tV0Ht6HX!YqZQ(xFpwd$_%(t~cj-=p<3VU;y%03seQN(n;X38+me&5!xoi1L#l?Y-hroUJia$X%*Dk3q`Y+{dH33QlkrVwxAVrB#DhzL zkBI2m|2R?Xn@}w|CH6eo%u#E)ny?%B_PR@Md2dxz+5rc{T;3SeF?0mHzjjraowP|| zQyUB9Z(wY)Uu{u%HuaMDT<@|PpQ2p3?RMfG-rlepg)c_Vry3eErm@BQ^4H*zdXS-^ z^(4=SSyk~Wo621Jj1?bpZLQ97gr_zIJU8txb3TNg0Hl4s)Vc5m~)sK6m_z(oceR|tBo@3uhqE6nNo)(hF z<++}ZN!$^0pu+-}fD$YgM93X(-#9nj`jw;T9Hb@xoEY8MXBu&)Tx3FagmN z5Tn;JNP$-Zh(@28VkdBsjOqNTaeh*DuBX%o2M74fYG0@iE3?~3?B|$7NqCdx_vXve zFTo%`;4h>rKh%22%(>rw`&(s2(r|AJel;KitF(cAPT1#fV6k* zTt!G|`<@e!F5SJe$^BcyY>w-!J{Jd@@HSX%&3loDoR}na0bwXs=etWixMZsUHVPm2 zC1%bfStugNOjp0bo;LfXgA`sRPlQTaBI!a`INNtRN`uQE%h<1snod!>`l<}J3sL=} z65+X9?XZ2rTVGj89du4{gEzT5QFWN~Wj2n675LzjO_uisaDH&tU{?F{p5)!OEkD@< zXcya21vv~&m`b~D6!J`XZ+L{lq;=?JYh1z`j7obF#zw8yTkc!tb!Xr;Wwj3EB{37fdfPV zKK*2WEAwPJHr``tUf$%)eGBA-8G3{e6W^!+i+h(RG>+lZk{YGCr!g-IV;bMJF`1TBs&kfN! z^&klP{(@n)){=veMduY4bEM5|`Eeh^3lI3B+7CwM_9^aO#8bRvE?d5$CEKpV+bgG? zGfV35Owd5mEhAmZdN4ftgYF}gXFw68p0`)n28T;cwYBvp-90g2GT&gKrt@s0XIv3% zxednQaRi4{+QSltz0b?51P7Lyyfy1xz*@hw<%@KFlfJajY>Dq<*_ZPZMcUm{hnZ>G zF>j*oR2d^0ybeRGFHcNA%A-S$_%Hqm|8CRL%rcAEfwDqAi-@H0S})$7|EI62vYu?6 z-+I-pl(ybCS%9s;?4eR+HMI;TQL(1}H*?=zd)7P%&|KeoPFF4l9lk20KpA@7Mz)5o zpEJ$7gIOuTF=EX$t3zawdocL>?b``bejBF#R2utcG})HT-qa{?5RRezMSH8*A2&DD z9o*e%sHwkpEL~GbV?LyJ5c}r&ln0BWVvRmESN!-3aVxxpx4OpbH{qqk`rSxdVKL?6wAtJ7 zjgF&dKYn^9js8I<1@r4#BAW*xY;CJ-jZS$Aj9IK;Hyx0+`x?BmzBh2xJ5HNslQHJ` zEAKo+m-f@0>6Obt>!ciEGOr`!qBk5ROXZw+AdNM$!O;<*U?cZNQJ@U*uCYhWGHrk- zUu{`j9L|N#+EmX=c!6VAox@rs@hhaxmm>|{;4isM+4tW~8%j{;Kn<)}Wfh?4W>zJj1p17{D z@sDl`r2*5W?--mm<0bnq4@T*qMqLp<^Dcg!o-%@XvEhG?F34Z`791Eo`VY}_@dY>} zWP`E19Cbc-I)C|Fk^W8;-sF=Hm*lV^M%lJnEc2(VO%Q04^7?w-__+! z-bSY>R$2JjZycSIS%mGzRA0Y@q&q8W;gs72c6C7t#9ucSMC>>$PG7HsY-R zntxYt%=-k`i}btHm&fA<7l#XN%9$vQI(77)tf#1*rwSJ^F^tD|;_2?>xl;#iwC$M! z^&9lW8enDq5#$f?bzyOw&F92LJD9k%nK~q#yc^A)lNu0+)Dfi6KbBL@ZV`5{dYO6V z#eY+~7}^6IVvl#YEaaPSP%r-|$PJir@N?NopZ`hnpWo}n`=gWdkWSgkHG4lVNMw9S z4Ip0rr@{^JPnQ_Ed28L7Dvd5LA7AVlhLHer0;(4A=Z?gl{b=iYQhXfPl4V$eYO!8m z@nN&A+=6UxX&cOlE0s>G9KYp;_xNsi*d!a6)y+FEQeCZP32^P8C$24o0$$nDD(LSH zN_y+tygUoSo0pk?ie1-xl+A`SI%d7CKgmQ=2oD{vb=P?uzitxtM;N(J*=W+~)Z&27 zul41hV%Us&hfBtSS~$!9ly_liy?A$x*h|9I4PI5({@4$yIU(QX<@NlJ)kLl5yVG@k zw|u)`#P{j2_txPRr(C+o*ew5SmoW{_(g`XgeRyx~Ud$q3J$ zDAhuZ&rI4i<&JBTjAj)@B@NzuIy!|>{cEIbK&42;zD}rCR9#X|Nc>#ZLYnsaVn4^Q z%W35 z780>MxifimA}iPdmnmj?C}IsOCMW8bJroE0D!5(j(Pso66T`x# zAkhYuqDwyn#g7t=+2%D40O)KP+F*!%f`wrb%T>$ujH(K41jDtr-uQZ!k@17} zbiEfFVDifSi7ukYSq3rL`1ERNfXZ|_UzIRErHYqHkOtw0RTJY^1H7@>>39{T7wi64 z`3t=^cosJ|atTRlhU}f_RF}!U)Q{lDyLL+e+3D!$_NK$%wq8+=N9p^C0LP=CRkS$Txqw@?}%YB^J1quNhIB73PEw z91JL6UfSN^&kIu1>F0lEim@1;V#3@xeF>J1cP_6?Ie)r;s>C7e4`;jNr;Z|4>`doZ zE%}&8AsJb)jkzE1rhQ`i4u{ppqKVP`Q@ss@)m7XT2_TqopcXureBdrN!AZCbDa zJNt5Civw$Kt~ZS?F2mBOwfdQL9SLDbMHq&zm!F-@<1Cr51bI@^vC>xNI z;ubv-XwNxXQ?e$7;yVjPyS{%cwO|ANgk6(zN_XBXnX7<{g58|Ve`E=uVfwelpz-ZD zlNPa7(cj5pu{w47Rd*J{aoTNSkpH_JE`qh$@q+5iDK)mkg`sN^3Xn7*zwmy-!d}@$ zp~KYGL+DK~`o}s+g@?PVKHpVQz(h1S1H)9ZhaX&HwB*VOYUu7BYE|3t+7;WK?azl0 zbLw?<&7$h-3x9n^F$8*@HA)STZ09Sf^M3ABDOXv2dQcxfDC6M=x;h6y zfW(vLPR@I4&^!A}asS%C<{E*3M03g!d?#qS_j5Q}ZUdDobdcKex!eR$M-a!gjmOC) zvTzu#zKOi0@P?Bush)=*-6)K?DDheRv@ub78Jv(CfSw&-^XPKrQG9;ShYyag=xJYP zXEP$9ef+v7Xj-$!lsj;cTx}T(qu{Pnu(MC8RQS1e3p62Vj^l60XtsQY;c2{q_RYzG zR+E2wnZ5MuU7k`j-Xo<=DiY1KQ0z<t| zrZ0PGM#0B%S z8Lmm%%vV37qJD&atr?waRRt@1{wSC=*|GSWoa+)P7e=X*4I1o3tLY)^AN% zJe}A2yalMn!)!a|zal|E?`5ba%qQg6FO!FPC3Vh(VF@>1$(yd)yCe{8{ZXJ=t)imB zYB2Hvs4>WZjJ;=Ipfk5$oz-ycTBAx!`hM*6lH6jV^s@vkI@$niR7VPkc3r+)x-B(Z z^b&{F2Y3E@^YE$n9dYwkD?zm)oeV^ZvHgl1DNeQ6rU?*U%{i=}qGuLtSenii3 ztKO6Uy|m-K#_fWmlFV zPiP4EGjkQ+;DPU;@HuvE7D1D66=HwRtHlKQHr!1-zN)SwD!`m6jP~AxETxKoKubw> zh>FY9&SI{dv$3(ME4Wmw;q76U;YyPQE&+2xfPq}o*9eo3!KshbpSv9rtb0$1Z>+yz zerJ}ve*p=|^Lm02vGrQXa6&H7;jC4N?MVYqGQn&)J5x(W`^hOhq$Y~xT?*#0ybWZg z$`jA;-W3UJe~~HS)?Hy{^x?XXoA?~paqM)Okg=6m8U-D{cX|K&rDi-}VmRGf*Yi>I z$~pA?nhESKeO@_FL`?q9#_Z=8WI&2XMJ>I=ps6Cx985nPA-k7QPMXg9b0}kI`R*l8 zqdhjn0HJNnSiH5dAE7Q86*y#*7n>ulk2jQ(czr!ymPuXo+_Gwxi2q#d z*!%^~moM`Czu|VU*9j<~DTC$ra7I|Z{!sN3bV$H~@0Ccd3MHEmdClNZEz92*82(5Q zOur4zuq?>?9&ru_M8O}OT>4_&giQ0%jrHX^KNQ9Ng1s$S> zf{&Et#YCCZW5D_fDytT86+x{1Y!Ah$f)9W5P}FhzOy1q&dc7rXB&BdbUWeoE&SJdT zxS7N@r6ysR6&(V8J17vV>4K;L9|9I~>E^WzE zT-+CFV5t0Ak+#NBKa0lkH3cMqfGH&h6r*DkBH8Q~h%o=bD1OF^;o{>573($_oY7Kh z$mfkyv9qg;QI)W+B~kJ-V3-eYnk@*qUoghT#o=o4;*;^AJ0pi+Kh5MNx7X9Dw9uy)HdbsEL9E=5qGkc*5FXFp9^4NWwR-DBciKP+-T$q01#Q zL+9;Vf{S(ea@-H~KJ=UDu?ik23Ezi*Vo*ndEcu%2d^VnT#QUx!t+x`ZY7N z5d8IX!y;{?nGs4N!2{iJR=HfuVqI}#LK?D6RcGi7_SrC%ImD$>e^_YEk32^v`U&>|5T-A=erPi zy}GYvOXc7&t*FE24K;HA*S5%y^klmWDeIHCcN&iqQOL#K^I^Mb3wDPU8+=Gs?raPe zs-YI5M)D?OvfqE0nugk-A7z=g49Gjq$n-cf3xk1K3n^O^?(}i14^T57GGjQ z?mmD1qgx`xoX#J{K@+8IasYvF8*idQJTCV~J>4wk*Y48!lWs0ZdWMGDX<$QQYnure zB~dDd`kC2{G{LTGC#LHbRSxi@fm0!*_RDSb;P%a7NfA`_zd?WETC)#ZI)b({vsElU zl_`Q9@OB+H!$w80KTmypPR-!u)-BlB*vuHj3g+P0pt!qx1`nk>Ey{yx7c8+(e zrzdA8l1?hwwbHt(n#svL)&gE{R-az(AqVPvE^dxek(u6+C+QXJ6*8Jwv6EF-@Lgm? zQ@-6{gRCD3JqWtGvgUm8!an*?8TiC9XRCN+YzL8+XH%obg zUE+9p?H0*B-xc41QL9lV#=~Pl6|W}p-q6tU*bnV4}MCv(L%|kwZWA3u1QqQWX*?tQsn+RPh{u)rF%R^DmC%m zSL>K}K5q56T3ni(+<= z)2{jOY14l98~4)tKV+IHlU6i^T6O3xclA#oN6_7p9Q_u*STzaf9T$9+@gReq=G&`2 zza`>#4mcNw!U1V%q@WWSt;y@$1!1kN@f+38n*)uNHtVeCI$dKZ=&Kr3cz4M>>D}#^VsWYSQ8HT{ZsiJgJ6-Z)|{?pOGxbE>rxDuPe`z8JQ z2dR(hjm|z#W-+T)&29jU%cia0K1#&Efptvf<1t*nWi8^fFRL2@M@N8)5o^9cD?-aC zWhG83_#4}}`-9nOMk zoRLFKF=9Kl#PQ}xg!YB(g#8%)ijqJmmaYw&83@>}jCwUshtDaVaJyqKG?4`cpEh?a z+v&0z_lb9Qqi+?>Gf)XW!;@i{qIRmzl00ztV|Eg1MF|dr z+T1~lH8l5v$O@8td@i2o?#6a2o34i3M}yYtNbA4v(E_|{j3AJolYc`^Res~cf47o2 z%Np}}Q1*xHOT5XSn826!I(2>1*|n0(z0}7&-ktMdW;%}+K$zrmyrgm->AJeQw*Cf# zmhn9{#3c9f+HOb>UN`IdY~HaIEF%d%iAg$JGrg*#W-TwGr6K}dP7A7S6b_kY*6pl3 z&KaR2@zdIdx9+l@y;ZNr6!y zTesyGnN^up*^SiT@Vztcj)d002ENp&w{dvR=BVW2)Yh-x-dK{`WX4ftDnrvi(wV~j z;>%OOH_;_f2zWe!jI17akKP=2|5TxKJiHUsX<-g8iXw5ZWWYzSko@AfO{OBf4{QiIH?Z$PEDnUx&t%@4js@sJONXs0C&UmxGWh zs|}$%ZRpnezv*h)y+P8}tbnoH0TaxBGd~6I8oWfbY!U+?{ysde=t5~J{4Z&%{v~Gq zl7Iw&mdPA@ij_dZS2wSQ(~k2s!@lGz=kQTC^ONJj$XJTX>EBhB>kcmtPZP3W`#%M5 z87)O*8pYM7sy(Cy-HJ1{CrYGqH6-A4f9qN6{yDy#^?`Pz&*RPK z&=SY#e5g&^07I}xu=FMY=Ahn{e^pn=hQ~ulz9*1_S zMap=2;oaD(1{O{WVZHDOFV8>Hiu07YetwQgyH55~xc9wS zIFT??LyZj-=3m?jkV%>ExEHCQ3&c6G_`Sua-LUpeGyfCZNHRW1ylgP;VPnYF^|MOp zC@hGa-wnCk=5Pfq1N}$7b8YT>lvgH84sMPQ4(vg=SmF@D3z z&apC|wNyV@Pjr?POdC&@cg@uJ@)zsZh3~2}8=sfwg4iyeNh!v5Ru!X0F|YO4+nmsF zR3~p-ByT)aib{tEFZj3wOH9p-n)sdNcSR-lK>rUoY3V^*g3fa$A*L7*C;u9H{O>;c z+S>9B3lxvBS?qtkp~(?T%wyd+Wyzi75**#v9Js#1FflhZ+}e!zcOT2z+hm;M5dQvj z%J7dyeyk^Dg2* z(Gx^mZjfu|^x{C*nuVsK%JY{KuV2pnaMSM_p7!#079P0AevUV$*`Q@t}nNTpjK6I#Ny!{?UEXzePg2Q?VV{*;K68`$M7B9>Pj>r#N`;Ib|cNzQZU55aywH1 zCQUlmK*BUvDKSaRsSJ{9Qmzb3|J~oE7@apdZt80XG=hhl}AJl5Rwrse#@j8mKFa82}A3s9>N3V$w8c7hD*X(fo`tIgbNyhrx#AJs2 zkmtnX3+SDP1gI5s1&0xKk?p(g2z+hLdJlQ;p>2qE-y#)c6PTx%jtr@^q&nj~W@ApH zA?8@_VG~|$RZAe#KJyY>^4e7Zt4m+;^OJm}_78BW2=I|QV(V{@w%G9a`aoSpNHHc0 z(?~T}M;b6WLjsXyX}bM(fcFRfU*)G_;8zdhn@5m#BcB@-%J?clt)O7Bd{xoB@fDqQ zOGmipHBEz7B}e*xdVF#yzyUa}D$=&oe|5dX+#n;+BufYc>u}ao%~&QeE|AI_4uKGJ z+8dVrQ^o)NWA)SD>DHP2cF`HYr)V7QGoG4Zjc3Vluvxc$7Hntsx5nDT9}0GJc9u%N zdd9dTpG;VsCLHoB$O9yCk0B$?6&v2TOEMn5!x=)MAmglcli|5;a1~#IXV)%<;i@#E zsTNvrQgv*cw#VS1PS$y23(RZtknf)aJI88yVh@Z(aN98cviadW>Vf%{DtT-Q*5Xb` zI3)g>k{N3SO7#kij`@aR{yK(;B5KAPzP!0V-NlWqRZL8aqLV# zIEvYQ{UgAK%}PBn^IRy0~5FH_ZtOuJpjIWP zGCjyL;QR@s_@y`8BNCv;0g8DY&HM9jssKD1bKRdqEz+ub1i3+sBQG?0PiHUP*z2hM zzKKy99StVo$5$)T;_Q;x`NLuE2!<*`-d|tTNlgZaV3;pTNlLD4`g7xEM!)(|^P*4T z?+Mbi)+NWD}b!l>VDy zTGHUf3Ag4pKTfk!CA8;1sdB})ba*(uERP@m*IXR0T|B-5C%s<+=Vo6rwRa#vy0OVRFFNVz0^YUIN%*ewdF=Sx(%7izz$@w%}o@Hv{LIXxTSe)%G1z)BRIL4SXZ7|6#f*F<@( z^hCrUYO(^;M1?32Y2A{xBfRp>~U1Ya9c0 zwe{Jj6@m~5KbLK53v_^esz>lQ6(Ys-dA;L#xn{(z55v0N+SNw8ZcY}TJGe!M^Ho$J zFw|9H_}1)5hUWHE#LuZ-fI&wrG0ynB=Yh2>)T$QOVziprb5t#$e8k0su;V&_)lpd* z=4TzQfu6SG6~yRFxm`r%_ix`w*TJlVU_kn_b8sS7!;%SHg_cD7JR!ACpQP#RnE^II z!zTYhK-j>#rg;I>L9LgkTS$=oxedRi67>>tdc-9q2Lm1nm)#?XhevIWGSx~&OYcWr zCzSbn1eHBBXrNHOP`id4@}Wxhg=&EvEXHx_5h^MYmsCOYjR5z#}tm$<4VQyMoK zMYt~s5G;2$&DV6{y8`ZMZ?+j#c#vR-#cnS9MdRSu!fZz+hwW+oh_krx?(EK6eoWUOV&BDy!F+DqGj>05aXA_`tLbr*YLS|0j zT9Eek%!Sv=j@CTccQE+`mXaJqVBgNLTr{cGvp>Xalurc}00N_`J;sYhWyxjl!Eu zjz0%Sfkq`5q^zXEJ~-zj+_?UcAmkyj*xTem^s&5GKOG;SaF05-y1-^UD> zH6}eim^V`)M6W~&ftQYJRjr-N6I68=u!N#74(uyap2*&rt%6p5tI2w7{Pfv#y1w0y zGw@%f0!@ua9!X$Ly1|f5*z_Stc1q9kD3;CK66&Zds%De84s3n+wspl}J>F?D6TNt~ z?ps{+j~>0E6&GR<_0l2+gG7y$-Ds$ZQ>Tj_Lj-1THN)z6pf;E^kxwl56%@$?znnAp zOMyl>NWd=yPnef;TU-0IlgTjov3*LY4)pWqdv8?8QTM98CgTK999LgF^Hgu4z z>DD#^*C<)Q)<_anT#Azme~$^gHk^l^*OEA6(DllAIKY`-E0K1rUOKZis$=Uk_{cb+ zuE1}{hcP~zUsv0A&5qL`K^7yDAFVeEnF)xB7Q8Q+UJGQiU%gJwT=QACd;{&K0!5E| z-G=XEsa(rz?$Fg!x2&|wRm{Xn)I*%!4gTf5an3X7&POZ&>)pd?R$X=+!eSsZa* zY}|8PKoS!UXS9LOH{3h=sR8eHvUD#vSc+`h+a53V-*WRgA4Th8f5^GBw9c)F1f(^7 z3Hhw+gSz3TLT5);k-)2SBuInXe*2Pd-DjWP-d=>q6%9fD1w}$N^angICmYB4n(Kx^ z6{kh<{gWNe+-jJOj}VB?eQ}p1-~&C1Lva4odI6DIsxSq&y(ASI+f#rV+y9NO;n)kP zY(?POC%H3~*DMi-UO`JdFSuc=een#j1i?9~^v4&e_Q;T8y}Iu*anx&IU>q3j(Oy+B z&AJwrJX7N@49QY2(R&i(v*a>iy=%d8cF>g-pfcpt0E#x?75|dY77J^CDO9W>SoK^s z_qn1~Raf>$X^R)~Nq6}kFg>OYs#2S_sBcjbsIOXxo}%8yx8E7OII20sWOInM27@5e4_{ z8AYDsT6wv@jn@9QlsZo8LxT1&&~wL(wwwx%+=$*S+>x~!Q!8~$l-W~$j0@d9j0h3^ z86f%-hmgD@^Iv!(j5JvNn%58cm)D>c4}~W&m=Ms#kOTd`0iYpM$9!ms$g|$pm7+ge zuQ{6A`AcrGweR)9PGj;$D@_?Js?bG^#ioVh23~2AqKx>@^jnOGKl$-LcS5U2ag8;U!S{JB1lveD zDsQw@hT~Um?yHkd$3|9*CxGb)AW<)AHR#dBoHqGoyg5NSd7Z(Hx1zFV$Itwc$*ykesyj~6WfxU_=D z?Fb^2!HL#TW82m=Z(ZiFl!at!N%*iISZry5mmM#dK=E9)s$!xRJ7iUmpnrcv6H8N z)a!k?JXTksQL)NhsCk@P`4X}MH*^GbKhcuUEJo)ixwU?m&-Hd$9&tlj`|Ts3;963u zst@9ojgMFOb7C?QzSHGMe%pu&scM@RW?{G9CbF|TK-dgnC$X-+c zY0($TlBiDiOn)O~JG=JoOiCeUf-Nc~<9&+$GPQDt!=26VGMPgIr_Q#;b{&!kp97x( z5C7NC*Vc~5x%Job?3)v~Pz-zvUrEKqcyE@s83ahK&2S`zexsc(C}|D{O171@K(r*m zYZ4%-mJ}$s8|0QUn)t^CGK?fv!`FZlS>9d=Zh#*=piJ)?^P^!i%8w%*V|<02KV;t; zQ9Q|%=;-J;HJL!iwh!~?vd5jTw57@%v}q4I1}cUQAY>~wIaXoRWPIe1LW_^y2(}&n zo9ikw#;wwd7#2#6q!jx~NkxV7ap@i+m&n-1fyERKM)I$ixx6D_(fa~s@o7GCNdjVM ztTkwO0s;S7)m!%NRsfAa63cG2e5C%NOyw=;*~jB9(U*{QVt3)?JvuH3NQs&h>BLjY z_CEA;aAiOg9|Hk%+u)*@{OIDH%;i%v3Vq>sHgh@)`LknCBbV`nqB4*D$2S#boEQ5G zUmMuiMl9Huch!+1Qnt0?d zp{#W>)v0q(q*&p-t~y~BRR;_!#+_D}Fz`QO-tNZpUt4~v&@0zjaSBY=2w!26sWIwTkb*n#VRa^u z#5xE$_rHwsdRlTc$dmjrBuZ8Y?al7T9{}iBO%{dl zh9w%WH1hIz@4Ue}ga!6}`fIe#fA|xgMae@*m&Rb__uIzJjq74RT3BwufOS3J+D5*> zehd&&ALuISxr*=b)Q2*=kHye_exS$20WyK%bMgDcuQ?#6VZ2H@JuL{h?7wes_jGo! zfGYx)lj;>MSkBS(jj|+S;FM#g*qJaKJfi}C?Ju?@cVF}J2m#dnI@`i1atl@Xkn8nq zq0#Ndbcqi1D&GG=WpUCd4DfB+`mnjt;0X-J`IH)DooM#<6sjekNEEcI$}OzHvf-T3 zN(qL-Yv($gBgZ>Z0l}sb`fNe33yPp>GJcr`0VkBNP2t}Zm5fed)((5Eegd`b*nlqu zT(X2iuI!)b+NX2Evy)a1vbiIFEfyM4fgkGTON#97RRUi?_-!A~H25;O*xA_E3?Wiy}@Af zM*pZg8@1NufV8}veMP;E;#r{ygHuq7>yFXroC3nSSCn+F0t0@~`5p-sfV3>%#NvO# zd!{$m8#7pVfGiu(ti()JyAR$c;a+aBR*y+fN4;--Uui?~S)@ZhxM1LrAwR*Es?=g% z5_F4@U%T6Nq-)niC*fdMRS^5#f#P-z`2!E5I6Omv`7!6h_}`feHz+TW;3~O@oNHC( zDuB)d5gpw{R<}J1`Q#I%*x1GnI5f}h342lsX*<1+a>P*v;b5)1Dar_{lik3^PQTpbTJX^`2ReZ3f)e5v}lz~`l@_X<{&06aR=0*7u`u{xdgYy;r|2X@~u&TB-+yzKTsvs@h(%m5` zQVN1}cZYN=QKTE`MoL5)q)WP_yGx`)I__9_&e`ny++TP80JeLrImaCF#rwrexYrmr z2ojsjOXR_HYDh>JkLRIT*l0 z7P5KfqmE!EJVhxM0>bU=SVrYi_|V8R zUVnZKfdHcfTN-ouM`Y^|LnJWviXYl82jA2N@SNqI(J^Nos1IRt2F(d1%w&74n+LOp`~NXPA&C&+=A&bUKu8MaMW;T&9@J@rj!p)9hubR(gw2OC1rsY!#miLnhn55nYE{8v z?GF)EhNE=u5(4M|1(h1z{fUEvlTv=nkOqYV#P1n769Z?80v1Gx?sXJlDW1>pe;4%O z%W4x={DVtrunUr20guzjydsK_!U1RF^b4IK8>y3anq|Ft3D@H{pgXf^Yf%>s$1{!#F7@7%q}$X5b(jiE?a` zd=EbnuPyVXD1ABsY>Sr(O;BJhl*SD`$Dnn=f&fa_n$NKTvZ!EHe#CG> zpwYF+F$#jR>BawnOm0s`HVFcJKtNu4a=j-6MIB*?oij>D485V3`#t!RdX>MKFmh`POgu zvVed}R7KQJ{pnO5HeAQx+y_poW82YcQCWuod@bDr_3r|q23O#HKU}r z7w>-xMk`g0j*KSXQsLH3rpnBG+L>7orVvb2y3?x{1qa52!;e==y3y_~LEx+8;G;G- zYp`y!un9Ux6y05YPb`n*q@M88vV!&3+o2q=-^SYYQT^aivr%O$2*IY{t**x7B@+#T zgLh+N{inyEEV?CjyWi@sO(2gZbDdtbPWB-09Ym@=928&ZZ1a5Iyzq1LlgZt+dDI*k zd>U34%Z0Vf2Ag%+%q1-=mm?b=BxIDkFB_hmg**A=?USZCOZ%t<@IewGYYTRW=#>(? zHojF@G;zs;-A)J`5;E(Z;gFDPMt2`G{C>M~fp@rK&!(FSzSxZnzUVNd{6PR!;61|1 zM`7nOp@2vt&BxCAb1&iG!)g@F+wPotcd8Yd5VSAF;}N^29aJSxfbIhi$GyGBE2Y7C zJcyl$@O|i$X1Flo;ZBT#13}R_Mg&CdbeEA9Z?`^@rn~q0^%=Vr@%7JZw`t7;^vYLO znVpVLz>&|C7Eg*b0F2RMl0M30P`H!j=nP2u@e#MJjum<(?j#0uhU^8uaG6WV+(S6{ zRW@GeJGk4U0Q+&I^qlq`S|*tn({#7oWj79-)+MN-&x}$`iiI!4$00L9gXqQbkr6bt z-pA~;-7-?5Tj|hZZ-!qp&}HZ-{s%YbR{DWYQnN!5^1LDwF*CRol9!jO@L)Hln9<%;4aT1!I}Qz9WIbMRM_N ztR=u(AtT14SYsHhL1?jh3=vT?(?RQzWlGI)*3fw?M3jk|Fd^&DsKdFO`ghLyW1{N& z`kGdM>?K5@g&nMF5tXpH3(Jvz;m6#1ybm`PZwls)G5j$dibuOdCGJ>XQ6z};!@=il zuDFD@FdpIMD4I9l*)FIa zpH6zJr7!79 z0%EIMsGrK7;wV)2OpL+bBayNbRljRgIN(asrE}qAHUZ@7LUa||H^08P-GaM`eSnfp6G=pj%;{}WJ9CHmJqgGsTxqX_1;q^Ghx5<(c7DTGM0bCs1`GD^z8K0gXj9hbzCm(I4m5gmLaLn4V!2&Vg=jd_ zG*qSPn!xR^Oe4XQ2tP71S}Zi1&fj*IvSZ^HyUcr|dz`&BXB)8qg#>jiP!pd-P|A_l|}1%^}C zn%0hCAZHuC^51WMB%c`?%!q)iu^;Ewet7u#TITE4@ z<`*bK^EEo^?eqP>^HuI2ORuJ*LLfl&J0%d58j7k%v3(wOUX@Ge!q?l$C0)yW9xVld z_VzN)H2RQAho>|R8TY_)xmTZFLu-?W=F%=xKbsB$>`?CFRC(m<%O~%VkKG9sq9&eHJcfUDEMqlY2M1E% zAP`24I-CUJswF1_j( z)|rSY)B9u|gMN{pPvDl{ywcho@LAOT))*sXEnCA*fUhTyC?XO<%7F@r$QoX3YHkIn zcJA;-vGc6EIop5U_u<1yGP!bGW;%%b6Q@LUh^QU3=s&M{C1)s@LWA&g6ZHu(*?5j1 zeYEubm0a`T_NDDwm)*oslpzlGV&fj}t*Lsvm!|y`+{~CDW(5a#Z8liPcgnV2xd z#NOp;Lzkhlb=Qjbe832O|LiV$F46mOJmWX@Q9e3N^ zLqd|NRS)2I#C;LV+zOb5>`&&rT;1F-d+#2Wh zfx|{=1qIAlX3cjZHyVCKH?tA|MOpI^L7q)@ll|)yz;=;oj5 zsxl5Zlu7sz1-JFvnt(hfWr6&K_3c1#Abyo`WH|kK@E#$id&X-I>HQ}|xDUhk^iVM) zEDZ~1lEKoHI^f}_53hQgfs%iof`@axJ3{WuCQjvm<^7dd?)dV~tjC0_3kSFLoG**1 zXOOp-?t^KoIgmU0o&<1e0o*M^wEz@*(2XHLWe+lpmPL}-&aSW`6B$19aRdfdhsMWG z^LiW;>v*mD;J$@`d_x#fPThHXl8k~vNnS0ec3{?S@Ex_hY5yV;mnHSb0{0JekGSz_ z$D=pl;{BT(6$Zc<{ZWQc<|;Q^hev^F0{N z+U*s|g^PBbGXZ)2K-Bwozt(IqLZDT-NpEiZ4;u$pyuUhIml5g@)_0W6J|KAPC(Ls6%ypVO4O=P06LiWaTzpRch!`|=r z0alB0AG1A)Qdb)ABrPm0`NC$&?Kfv~vdUh>J!VMD`005-)#CbQu%d9{$Kqnuy@P|6 zLQS?)>$BZAm6t9sqMs@0;r;0)-R#-@Ll!g;>WRBKd8Bha{{jW0Fl1yz#cHbVF{#f1 zK^Td^JD2&S5I;2Um?K=lfY3H%Ws#P5@BJS>oI`q#bR_-hXSd9AdC6^!iqC!j?HZkz z9L>C=S(^Nvi+0=8d){d}y$=rZy|yOcEzEFHsf=%T&nZbeTWWC1&~?{E$9%9O7V;n> z;`pg$_iH^-gIAB%JXsinkdctc>a62GBeE{0lnhaT=82hx{>P^W!63DK?}d!Kd>bHZ z{h4owY_6OH{CpZYPf~DXKQZ{}T_t`(LD|FGv{Whjc)Z=x=l+IWQljYG(ND6m<}FEU zE~%pUt5=Tz|6m9LG8QEtAEL1EoI#R+%Z|Zu6##2n{W03gv1o$d>geczvPG67{wFzd zS17g4yKRex-W#_4^4Y00d?UmUI652rh`O{t1U}L8oj*eTsnmQ zJ^2ZvIxukRF`*F#v9|}1X86qj=P`l<-hsSf>m}}=wgm_R)H4jHIJ?+zK8lQ|=o!K1 z@y*D@#2`?j2#W80B&$q47SI0>L7-jOw4&Jz6aId<;XHV@^VN>yU)w=pXc|s9gRAM5 zS#X<|M?J4=`lxrkyD+loX-=KDxa&6>BJQjAU%xVfzShgL`-UI`>-=OBfrW(y(gbP& zsVk~mG^$!A25kX8bE~?58YeC>HBk8$s+ADaw$xaW4iWe!4qG|n;2GDSo^@tAsif81 z4#uyJ%jpBVjoP8!2>vp`65qaki|03{(E0VJuDqKD6eWNMQi5!?goKt!W5l<=_Vgjo zesn8q3%sz{ri|NYqAGVV-gnl}NL0rFx*ZN8T9y;qX87PU=&TCk&XbTzX&x;Y|2&$R z!Gg)4f`jqD) zLoC1C%c4a@v(li&LpdTf5)J~&I)VVN8z@>47j)J;jJ00VMrCB92Z>yZJIwhdX-Nf1 z<(2gR&DtQb35es_e_6?x5bP(GzjcCDWrui_sMzc zbB$TL)V3=rWetNuGG@1I*D2WOpATi89&OB`0rLRFVX#Qk<)zOoD}R^OiUS{=6@LIOf(T24NIEgv1fzJgfl*Hn`qFip74i(y^s8hyK;Sp_ zqesPWr!fV`3t0M-gtxm7c^~Cms3t?g137o zPq~?57F$0)D;QlWP@jhtU*q5GNSNRDr@!4}>fE%d`np8sl@N1M&Dy#j=blry*f@bP z>na)qM^*J$-tf6!%K<*a;RWh@IHa-*htFOs6T>-FdhHNOAOsn8YaW1!0bFx`fTo5A z@sQUAD$NUG2*q!Q=L1k|-vdG%+1eoB)5J1eBNjEDvwwMAh+3h6p{S?`YPcS}d-o34 z+P{GpMU&?$lt;${5ri1tRaN07t1zhS9g5cmRL1iyD}(YYTrc9)KWe(|l|EyJD*@v_ z)4f4*{Q0x&SIvOv@$IJI$Lp(ey+vQrmsS0SL*M?pp(GG#);dYd>=h7`}e zowPfr#^C35ki)*w@6Bci6+2BUC+VD~-FBXHQ#DVD3Xr~kJLUOKoKhOkU;}THH|Y~$ zN#HgRL5#?KHz_I4)Ak)w76v>EC6xNdNC9!?Yc^K5pImL}5@;tvZPE)8;)=&z4@Hn% zepb)MEQ(IZT7_RLr2dfMi<$uf_5G#xWR*AX^&fLM&Rd-{$! zDHp{l%q1G5u|j}dnSo(9TW%Nvo9S*p;qcX+Ej2m_UC0d~BbX1Hr=Ok~9)5+x&A(}5 z`(h`)^9FL5nb%WY^#c3vgKoEF=2EWcPLMa8jEmdzo7=ts2h#jBG1r=8?PMdRz)Sz% z`X0$lCO1{EzqBlaktaR;#HZQ;Rc#NUQN8$teFrwBNFo-BWN;DMP+&2~ey?N8I4~V| zJ3u`9UNd6Kwb-QVid0F_Z(r$%z3P|lLXZsX)m=)}rI&9kZ3|)GLO|yaAbB;axg54v zyJd;)pms0WN+X9WBG8e<6XMfv2klEgXRo&(qWuE??#K2SMlQdUM6Zgp@!r3ceA%Jq zR&u@h9GH zcj4r}`++^=&YP-u;y|oE+kAQ&-90Tut}F!`zi|pHQh6`2@xXVbZ=sS2&1Cgf33p+m z|JQ8}@Lepstf!);w{NLgR)c5am52qpF(`WY?yOg&c$fUpRMCR@t@aIoRF@boQr~!MOytrddujt6<0v1+g6L68*nmSq#Z~TN|aDhybVPBss8lJV!1Wx`(M4WIa#7Lzp#3Xg*eZG*NF#ipz9{0r*^{Wo1$81chFf z7(A#EI^=8*aaW!K`!MeZJ3hJ+9kI}{3WQG6Q1Q-yUk2)HT(T63K`;nK!hi<|`MEr4 zbL!o1^&G8vylj2pg47#lmsGfz2sA%5Vfyv*yZ056`^l4l@^a1+xq?v&;MQMXUxU6K zCWSAG{t$8NAANUW>V6a*6%ilvpKl2xC`nJ*_C9AbXvtIrckB~OnJ$~FrO z#Be^NyoqFxuQ{6YV7V`J|Ne%t%e=^#obyK|Y@C*>YG$MU!{oBb6n*2#!(KjaB20gn zV-Y?FcGGxSlBI!2?$+2p!JL53J~}qGL0)Ff%C9eRAS(&?4`W7D*oiT-w1L6D9M)BL zKnQl)iYLPzzOw3m5L@3{K27^ISB6)`Z7!DmrNV6FGha&05$I7l56B(=jFD5(=CZDJ z>^s$-!2Ra3kcE9@rkq+)_>WfQRT(ycTS)2S0>Z|2`P0c5KqDSW@1t3EcmgW9cWfwa zXFG(csr>*;$j`%f4WPClUiP)6y=IxJAiEhW8ZHy}pT3o|WD){SeCTlQz+Shd?NHux zN07DB4)7nwtkNodSt_+x|IGzhrU7ZgmV!FD%t9c)(rEnKtl-&*qt$%L@UL1xHL{qZ2+2$~*B601=99N0d ziGz(T9=CIn#slYheng;FWwZ}vGv315jq}#jKjXO zV0FjqrLGRrSVpln)W;J(O;@~6RljBG&d*7CkAC55XKM75~T;>d~K8D6VRAc7i`qZo_ zGH~e^EVuvbmsw_3mU^uX0=D;AC}{(!NpczB>pdJEXoN4e_(PbiKL?}a9@j~F+p;D!f!X*z-zEf0pzc%8R+MXoNN_QV$I9f#1b z^u!Gq0{tO_8`op}HNvrMDCi#sJO}OC$snZmu!}AgoS)^-4c%wwqbsd7h@wldjyH^P z5RHtC_I@mwhGs%+ZEb6uc77~}3(3{jybb9%JFb1$8_zdwrW>%nQu@}wef7&I$87!mTpf1RhI5R;ToHtibAen(3X(iVifnoBB;O+teC9Sy(6W%Jo}F{`1R>-8nz z0`l9Lt+7+PaF)6>n7f|8$jOA%&MIuY$_8)_j{#V@#YnOD&!5}l(YdDX0#MI+XUe*q zW1y<4if3+a=i*YesE>dCVPqsRpZkbem4(~lV}vbkqS@NF886lqa!#2(JtZhA(|>=S zL)=vQ_^Io$A9+qDG(DZn)6>&oyCx?mhfop@#`9^^^(g1^9D~U1yc*A*AG8GUd-Y9A zeR!omGD|vv*F0zt_hDqxaNlvlzN~rMKW1Y!d39%!?zKBE;tCqN(dER;_PJdG0s=db>eRYL}g!xN4JLqx9b!ylX0fjej=)k6s z1gpPye4L?GT^g%n(;zGi`i2DoAwkB#KnT6m*O$ZR30i6kCb&xVykvv$zujn_oOlC~ zjbmzZGGTiW$E;`=ksI8hFo(KBb+VpCr(5k*knh z=`ilqH1`909oHRm$aOrYU!0EHY-gcvVk;DN?B*e!(X8a|=4Ow8 zZGBi#5epBVyv-BYJGN>&aa6$xOZ~p8CFW-*&pG7n$&%PMVWi)+BLk0v>Djq*OvC#%x!faE6Y;5f%0Rc0DHXjE*R!jQ*BZVl& zBQJJq;{cIPR=v#?(m94_%v#}&QSZcl`=g@-Owuk5*=x|7Gp6v(=#gbp>rU-r^VO=G zO8G_q85-!YmeFM$8tS~Jy$QAo+>A@=c!8$BCK1=YnV!isUi+w&T4(HKHooaE#*WLb zH}AgIcK5{6TWge(ro*RMBPiDb*5sUR6pPWXHWt&{&OtcLR^=Sv4u-(? zO7lPN$8}09_VG}xZn!QaRjAm2WsE<@AGwwz73iJ11N`j2Mw1|w2yE!)Y;%w zl>Juq)H~V%*CWXwJlRi-<`~*aYq+Qhu=78xeO29c$OZqwFZG81aD5<=SA>YjQZO#I zudLtYl>>Y2$(C^+|H)b9q!nkLS~zHPh3}&Ehg}b8AMMLeY(z|&df`NAVBmxd+L7%=9>5r{&P5aBVu1EXLjGBU^Kufi>JmY&i zb>;e)A!dCQFYUxL?-1wD#FvF<8kL==foQ|!&+7sj8tVFUM9@Lax%svwr54nHzsX+DcPw}GQ z#gX2NqU5J~2@_$V!IXkN-pX5BlV2&qKw{aJ^ND4?QidQk;MQY5z=sGp?-;E2YeQ7N zD$T`f6#-g#kCScF^>4FVr?gl~rAC34r9#hgde_ZAfr*-*A0TAkuW51wE>TI%LlN<7 zq9dMsn9F#3$uNUE*V)$@Z*m*9%qfE)h!2alO?faL%f~d`lWKxTM=@1 zPWfN|2#f~7N@OUzacS&mcu-KLM}BkG_en#A>fP0%bjwfdDP zm;})398qt#!E0-_c3?K)Fs`ELjqqk2F~8@J@>R(9f!82tJNQj2KU4bncZJ1da(3|A zaLaPoWs$#^sfMpel?t71|HxdieRO_GVq*94wm_(JcK0X2(lrARNWm-x0eZ4cPXx}> zTsp(~hO4c)vhjeb1N;ly^P+FC>_;s=fX)2(>ik2!DRoHHKl@~gpkrfWLvZ3oKbA@N zxq$%%Jv}|>w*CqELc}UjblX9Zb{Svq+Sd>K+bGUce_gUK@d|24RgwSw)kLF`E4Fon0!qDvHJ&2LvU}%uv#N&Lc~3>W4R0Hr91k zdK2hg>?T(ihzryS#a7;I9kTF&W>E{mH>6$%1g3^%JE^wwm7(_NYh71wH+do=A|UYt zF0($jC(H6?(gKqHy2r9Aw5jboO0DTdnH8m_?@b?-APKvSBfJg1&a8Y9! zV9AGTBi>vE|?dge^7Y^~RL>WBd6sYVP4b-em&_VUpqY+wdw z4ASa0c&b#d;zFk8Cu6}GhJm5C>K`zHip@?{lz2??xgAhloRCtjZK(^po>&9Pr7zgu zR&F(zOez(Qs0Zi=AUID|W56aN^7=iN-?x%K3`|C-`=8%HL0Of%2R4O?RWzvS*VZ(I7p%fzd;?qK@JhN253VaM0f-s-mBD%xhjr}m|L(DXfQ9Ad)`^$%%0T2> z{;tb}TD&e`wds`sCthw}j#eRcrKtLlK)?pxM=sG|Ytg1^+U;hx3K*NnO+evC&SP*e z@%aFqYto=(^B~LOxcf>7xu_B(8lC)zs>g(<0LA3oJF+(Ecu(Q#u_;cFO7&&*iYcK#s`K4%n z6g7c>#XTS=rO?U9n$m#AV{JplW0n9GaEP+_GoZV6)U0{iMl&jsHOOl|$*n!x`Tu zWgvnYuLQ&Bm2+YIoX0!UKq3=oWMquw>4ffR3k>h?U{*UL`#9@(tWv8MsrRJTUqDXX zCtNr!CZIG`T$M+4{LZy0SaV)UwNq8g2=M31 zFcD`8I01#>kQvWcTj6=`q)`3}%QB})2TJFR!z#R#$iD#2g>RZwScj@TI-%E*(S=g$?@~r;f>2&jENchX%V+gmf}SxetWow zxw9UXn}-=--^t9yp4IE+x9CsU;jO$wOX_o;W5L_;<=4`?Sm!V|iA>y1gZ?@3A>5hQ z-nof)_Y9=f?r-9clS@N3ZDL0Y)M>quvJJhEXD444QUs<+C=m zen|7lb}u{^yjkiQ8+ofgw2}`DtWN;@a9ERzp?3l9*AxD?*<#DnfZDQv9wc?%y?9t` zEf=IJj5gSTwKhW7-qGO?%s0TXDmhzIu`!m-0kVF|oDuYXmy0}?lQrlr7dczWIswL7 ziF37$^<>Q_?OJC9R@-I@i}7#98?foSy$Bj1h=?&Mz2~< z2VB=|tx0y+0aV2DPIhxNQEKqygS21srYh$uYDzhX<02XX$Atm)AK3HuUeSW;_;%!r zXNQNE9Exxei+07HZ4584?mP$l8CgfIXhUts1`IsTFvVov#mIMfAM3hT=!fZa8;FC~ z`nXqtC)FLy(kRt~+jnMvgc2qt!Rj#bCYDjX9avR+Cnw9X-JgC^J;yE$HktoS7@dfXsWI@d10;xSPj% zFcGv&<1n0}vKY(j2Ow8GryJpP^vqyeatBH=l5%1tq@Jk z3o5D^PDFwoK?AvtH zi1{!9*HWz&?RRZvJY8?0kfH_xn;%=w0;c^E_G@xDmSf+R!@HDEy-#^QtPkw6vAb-| zR;BGW+`OCg>EmhxZjpMa69LGyGF*TnyKVkalRuLK4IY*cSM+Eh9I`l*lk zgumAon|6Qj;wHmuWU^X0f}a+%imwM1(785V7qPM!_c;U1IaU+3AL}<)iK*igqK4e4$k_{%Tyy zUC54fI9JZ7=OfowjfQyJMgrNuM{RJhW46g-RUY!eaeZlH)CJ;?Nt$7mFcd;^_Qb>4 z%H(Fp`jX3$urFy=0cbFB9k2I5DaW^a|LL=N=+sq=DrQ5NBHWc{ z{>Lt_zT1)e`ugU*E<21{?p{qyMD0dn;=2HFxRDJ=3=@Ua0tNV%_kTPMdiwjwb!W^O6Ro(~? z?VXLz_g?NV(?#K|xQPIqqEevYM~fuX{hf_+|F~fTx8&aky*lT>Ngq1AK?U~4wt(}& zRp+47_gYxL5cq}BI9+y{<|36e9jph0ga#N0dn3`|L>)f;@vD*V2+B;NLBbCJ16YJ_ zLg?f2*Xw8RV>;W4u^NsMzu;a67Lc36&#W<4$m=gN&wyG*D86YDQ)Z^5e80hA0uQ=# z>IUJlm~jJq@rl-UpyA|Ncq{_6 zLr&w-^+>SM{^m`3(O$(}{ttN;U|X>K$-;61418$E5!6Ds5q5##TZh*_+G{Q z{Qh@e-`XQ!h8KBC5?q{V2C5&ZfZC^AOhQ5>c*cW3jobWbyY+{H7?n2 z27}X-|2>>)elQ%pAA7cWuM3d4lQ4Wle4ah?Etz(-9ls}{D`MICS@az|go>6rY01>k z5N_}Akdl?G35;e>a%Zbi<2r8Nu`K#*1`c?&CH5NvSM_y$np}cxzh3VA{+SAlZE|rSC)DZRoQss{7Ha?ijx} z%mShm(fPwSMqQ<=a;c|itKG3BnE%TqzMX@}f*6mg!FdUAzQMc$k`#nwwPdAovxg8M z+l_+eQG%`xXUJVreEmXCTqh3WLy?usGwZ+T3;f3u~&ye7_pE=xArdZLF9jmXcF}%3Ux&FCG?*-tz4%H zK|t-NKlRi9OUP!lKnwP!cYPjUV;f>DJMo{L4iAJlgLVvpr9bN}@c`Ou$DdMn`8(-z zPEO*1Dsx;9;rYNRXxx658U~R|5q=LG$BHA?GGQ10R(%W2wvO5=-A=rifvA6Pgvewi z{ier2-~XVc0Cb^%-kQ*rZ%Q&ja_P92U`qD(<+2=SJ1Vd>8~#QK@(kHRZ;I*2Hs#q^CBIPa|ks#ZJRO@wxaMirEv;BMex(7#PEPEgx@zorX$Zg*1zk4%4h@>al*Z>T)L!UICE?|Va zUbn>+YJbxN(ia8>=cc;7E1a(6aGtpbAYQ#~B++T^Liuf=R?b$d0s)VP1f;IMu6S}A z+=9p}k*7ALgVf`P*}o-_On*M>0;;i*5eygZO=Sxul?v4d1eD3bUPwMZB41`4(1dE< zW&n_TVjE8Yp{jb-7 z&Ds|u;%$7KTn*wGN!lLAcIQU~Amj!tFy#^hHyhij80M7OX-p%+^D|nx8<1!n$F#l| zNl8URWl%Orr&EUy=+V+0bHmDQ$8nSTObGvHDm!GokbgnTOdj~*GtR45!(HEhR3=dv ztZlFQHKt*Sy}SN^gt)Z6X}AsBk#TyC>OAk`tmG2~KLJIC0mZP4RR*f$*6@qmoF1!} zhUC4j4xx55?0Q-ROD0>9a>y@wQ0V3|jg)W#y^KEDigQao`;W_U9q4h?)maX8gKP2!ygeZL5 z*<(z;lRN2R0x=<@m#CKG!ga2Aiw_eLcOf#ClxWR8E!mh>e%zR9)&?zDaMHOXefGa& z<=_|`_=4;}rF;;x3s0s&)aUZbbN{$z&mxP$p#j}LI%b6PQS>X`xOj=JY6&oySEVv= zE#mLL&fdlg?>H?FyCicBmv{+Qb-Ku?bjc78{PXZdsgUdHx9%aHW8?f%e0NDMktWnp z{ey}^Q8IebPKj4=gdetN8IR0WV83rKs<K|9D(n9f*_Oe~&dJ91V15XN zKNDwEe^{-`K5tvH{;0wNe5O+p$T;>tzve!*Ubxu1-Y}y+W-ycg-)ZQSXJjV7Z&!r7 zu$^6`EqTo}r{iom3hh0C`IE_tX-aqAfR3CV5$gHwIyNLg%Q9iN_P-yxi@fv2ME%xj znVBCLk9rts$#m!ycP0!-q9YIg^=AGc?A}!WwL0LkmVMqOVOJc;Hoi3B?0<{rfPcB1 zf5l%{s|x=AW$H!w-@W(WCBnKpKerNJh9sxupJ3Tvg(4_-cj&hp&Mp2fUVeMCfBV9n z7{==$F!pU4DxgtSmSckoVr=O6rzn7sra45ttk4|XI`Ys}6XAdRm%_ozV=lJ4`N3iOzyBPg0#aZL>0$4+8FZMo)OHkt9u?I*KJG8-BjUC3H~IV~Xs&)|eNdW& zyUoDRkU(USRx11~GW$gwoAs1ajpYHa;{HMD;l4lVn^xGw;5p4cMgj^jG9tzb12)u| z2jC$9XQQQKg@}mgTK-LNUP(klLtEa+MJlsAAyNIN)s|Rc`5K>$kK6nJhek2M0z)?z zSWp(mpn4+mX5#H@{D|Zz*;fuhT#Vou4z15+WZO3!9xm*f%Kyy}zI@7{`n9S1Q-RDt zCu>_rXj&7Vc;iw}M%wTfW3=mJwrG27@1MFWG3CPy!xr_`@|OvV#dWpyl&aN+^VOwiR+~ zciBS^%ia43X%tht0hxLLpGPdPhh%YB6b{#_4)??np-YiE`dKZe>lexMB%lV zX{lvn762GQ@bgCO^0N1adAiJ$MG@Vb5a=fKE|`lN&q>+6pcDkoiEk$jd4{hf0SCcz!U22pPTdM$W(q({lKHNAVP zKVnt`dWlWjHuN76aDe1{{tK)vS|OqLAX++yB(;gR<^NIpN2@-Ss zH*;74<}H8wUs1VK)VX?9ljRP7rP(Dd=9UPG=&I}|CW5LwknrYx#w8L)6y9e-$;%s` zzTi2r?F@k-4ll%Y;L?Gm%xR{S26{G^dYq6*g%G!W#7M&b(|Q7Mo&kSEkh#u;P9&Tx z?vJUQ<3tZu9>`Xzq$(?Y@ING^B=%0zJHED_t_%;Hu8z+`P*70PK_E>+QnJi=Qx)|w zv)KlQ7e$egxr$gV}cvzv?!oMp8C#=wQPt;{t+$;PqC& zyau+re`IY81`!XN`w>1kZ$>{d4Kot}>19uBk>1S2VBP+h00@DMcjjhi15B5HtWbAA zO}sH(GT1~4bD?t(g~a`oO^Z41VcDb=7z~?F^D|tg>m*x$uQuz@G8TsK5kelvdpote z9L7^l%9lSgT0<`NaX_qet)nDs@3`U8-1jLHrqWB8?EkZTaMRxSkr>mz5(_wsk%IK( z^aQrHETDq%E9^jnf3lOEo3Kq@nmbVM;zf|xN-jdhYueX z?07>w%S_}q#tNSTfG5{tltBt)e2t=e|0Wo-ooE923g#2(4Us*Zi@9m}Z%W{O6q24L zuxG<{c6KfVXXt`LpGJ0*EnasKI}!4XjP`i&$i1GT#>L&;4x*w)DgWbbkOk1b>QG`k zFYM_xpc`p@({Pn6{5EkgOA4eDj~%|LJGD*qu}9e)v(;-0`owAJTpL-ST7e3jpxRj* zckMXCgBAJ@A3h#jd)zFKNrlSD$}Z)m`7DM%kAAM8u=Z}wt9Wut@Meai+o0MA^^Zw?1} z^Gj?LJ)n}!b!lHr@c37&RBu_{BydNo<~?W4Of5i!!p3?e0wDWkj_dtaXb2Et&l{mE zItVO?u%7Cb$mh8B$dUV_^>o#6xw$d~7@}EHp>PXrc&WL{9krqM0G#grRHpj}vH;Sd zU|BQe7Nb$1?QXH%q5)W0GX`{!)K1TFll(Ef2ul(b?->8Bn~sNDfI0hBg_^F(cFkL2 zJ_j8C)-G`b($Dkny+SXc*H;szZ;68OZu-EuWu8B8n=jp-0TRm8!o$PEvEvC7U@_uo zyb+F^tvvw}+hJ}DBMvrYI&NpwS=wZEkTkFJ`zib`Z5vLdHmx6@GNVIZ;K9rwV5FW$ zS9lNk{D5i1Seskbu|i;OzL8UFbE~W+9C{KsUbd$!f`Y0gz|;Bp^Jm{4$!DH|(&18X z{P98DdSjl&68=IqhFKX2`r(7bi}pgfjaM@cJ!jEppn*>ei!LVgSA3b2XGd5{GOybs z5fKsow_9dESfrD<3k%61Fd(66vP@lsRvDlT-@ec_jgQBH7mll>bpWWDs zDD&b4r7(Hw$cU3&HTWB0277F>i;=ifK~xU{2@CnU`!W292%P8!d-gzW(zO9R0s{S; z;&d)_Ak{C{ja)C2lNr=A?*U+Hj8&|;8S3#CCi>M&A3R#>N8n}eXCYRUmp7iRc?)8( zald}yzj~$Iys-j9HA!=OHrSR90J~{3Av_rsXH0ai!s_YF8@2z6t*0G+a7ke~Lu-d9 zQNv}zkp7v(&KB+GjIJ3Y)WHZtzytuQgy-GS5jy<0g&wBAlB@v866rICRs5p~N{|Az zQpWP}U=mLkY%C9Wgg(t=zYiwzs;29wfzctPBJWmv)a<+9@`e7-VlrN-TvpYDm**k0XS_TWEi zt%w*8$&*uHN(Co^o^Q5Ix-2V!H}5-_@zQr+tY|P;3LXZpwZG%^(e$sK+MmP|e=aL) z0OH{z`P$P{tG>rT-Zn{-P?HP4`#oAPSnWs)Ks5!Z4}_aYE`d7*m{RKg+7%0AC-_JAO4m=p)LWp2Hwrp#A9)eR)v$sbPd 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

    ?-xSLayJe134!4G@ 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 uwYf^FN2L-?*0oxS_!29 From 1827c2ef430bfa4f84f237722881d3609154d948 Mon Sep 17 00:00:00 2001 From: Oreoluwa Agunbiade <21035422+oredavids@users.noreply.github.com> Date: Fri, 3 Oct 2025 10:58:38 -0600 Subject: [PATCH 05/37] Make gov cloud docs work with referenced templates (#2749) --- .../pipelines/installation/addinggitlabrepo.md | 2 +- .../tutorials/deploying-to-aws-gov-cloud.md | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md index 367ba1d8fd..ce6d9f0509 100644 --- a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md +++ b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md @@ -116,7 +116,7 @@ First, you'll need to install [mise](https://mise.jdx.dev/), a powerful environm 4. Edit the `vars.yaml` file to customize it for your environment. If using a custom GitLab instance, update any custom instance variables. -5. `cd` to the root of where you wish to install Gruntwork Pipelines. Run the boilerplate tool to generate your repository structure: +5. `cd` to the root of where you wish to install Gruntwork Pipelines. Run the boilerplate tool to generate your repository structure: ```bash boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/gitlab-pipelines-infrastructure-live-root/?ref=v3.1.0" --output-folder . --var-file vars.yaml --non-interactive ``` diff --git a/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md b/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md index 05a31d2340..2d3c00f443 100644 --- a/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md +++ b/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md @@ -47,18 +47,13 @@ Fundamentally, there are three places where the GovCloud partition must be set: This section covers the Pipelines configuration required to deploy an AWS S3 bucket to AWS GovCloud. -1. Add the account configuration to the bottom of your root-folder `accounts.yml` file. - - ```hcl title="accounts.yml" - $$ACCOUNT_NAME$$: - id: "$$ACCOUNT_ID$$" - ``` -2. Create a `vars.yaml` file on your local machine with the following content: +1. Create a `vars.yaml` file on your local machine with the following content: ```yaml title="vars.yaml" AccountName: "$$ACCOUNT_NAME$$" + AccountId: "$$ACCOUNT_ID$$" GitHubOrganization: "$$GITHUB_ORGANIZATION$$" GitHubRepository: "$$GITHUB_REPOSITORY$$" DeployBranchName: main # Change this to your default branch from which terragrunt apply should be run by pipelines @@ -71,6 +66,7 @@ This section covers the Pipelines configuration required to deploy an AWS S3 buc ```yaml title="vars.yaml" AccountName: "$$ACCOUNT_NAME$$" + AccountId: "$$ACCOUNT_ID$$" GitLabGroup: "$$GITLAB_GROUP$$" GitLabProject: "$$GITLAB_PROJECT$$" DeployBranchName: main # Change this to your default branch from which terragrunt apply should be run by pipelines @@ -84,15 +80,17 @@ This section covers the Pipelines configuration required to deploy an AWS S3 buc 3. We'll now use that `vars.yaml` file as input to [boilerplate](https://github.com/gruntwork-io/boilerplate) to generate the Terragrunt code for the OIDC Provider and IAM roles. From the root of your repository, run the following command: + + ```bash -boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/github-actions-single-account-setup?ref=main" --output-folder . --var-file vars.yaml --non-interactive +boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/github-actions-single-account-setup?ref=X.Y.Z" --output-folder . --var-file vars.yaml --non-interactive ``` ```bash -boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/gitlab-pipelines-single-account-setup?ref=main" --output-folder . --var-file vars.yaml --non-interactive +boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/gitlab-pipelines-single-account-setup?ref=X.Y.Z" --output-folder . --var-file vars.yaml --non-interactive ``` From 358effaf7d47c0b5e4594c109bb444598bc7f100 Mon Sep 17 00:00:00 2001 From: Oreoluwa Agunbiade <21035422+oredavids@users.noreply.github.com> Date: Fri, 3 Oct 2025 11:14:59 -0600 Subject: [PATCH 06/37] GitLab Account factory docs (#2677) * Initial docs for GitLab devops-foundations template * Additional gitlab account factory update * Rest of account-factory setup * Fix build * Update sidebar and page titles * Review suggestions * Update account vending instructions --- babel.config.js | 3 - .../accountfactory/guides/vend-aws-account.md | 51 +- .../docs/overview/getting-started/index.md | 10 +- .../installation/addinggitlabrepo.md | 4 +- .../installation/addingnewgitlabrepo.md | 547 ++++++++++++++++++ .../pipelines/installation/scm-comparison.md | 3 +- .../pipelines/installation/viamachineusers.md | 10 +- .../tutorials/deploying-to-aws-gov-cloud.md | 8 +- sidebars/docs.js | 7 +- src/css/custom.css | 45 ++ src/theme/Root.js | 12 + .../dev-portal-request-generator.png | Bin 0 -> 320098 bytes utils/anchor.ts | 24 + utils/checkbox.ts | 52 ++ 14 files changed, 746 insertions(+), 30 deletions(-) delete mode 100644 babel.config.js create mode 100644 docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md create mode 100644 static/img/accountfactory/dev-portal-request-generator.png create mode 100644 utils/anchor.ts create mode 100644 utils/checkbox.ts diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index e00595dae7..0000000000 --- a/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve('@docusaurus/core/lib/babel/preset')], -}; diff --git a/docs/2.0/docs/accountfactory/guides/vend-aws-account.md b/docs/2.0/docs/accountfactory/guides/vend-aws-account.md index 61f2d0bc71..cad08f666f 100644 --- a/docs/2.0/docs/accountfactory/guides/vend-aws-account.md +++ b/docs/2.0/docs/accountfactory/guides/vend-aws-account.md @@ -1,37 +1,66 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + # Using the Account Factory Workflow -## Introduction +## Generate the account-request file -The Account Factory Workflow in your `infrastructure-live-root` repository can be used to create new AWS accounts. It requires a single input—a JSON payload—generated from the `account-factory-inputs.html` web page. +There are currently two ways to generate the account-request file: -The JSON payload approach provides greater flexibility for account vending, overcoming the GitHub workflow restriction of a 10-input maximum. +1. Using the [Gruntwork Developer Portal](/2.0/docs/accountfactory/guides/vend-aws-account?account-creation-method=ui#using-the-gruntwork-developer-portal) (**GitLab and GitHub non-enterprise customers**) +2. Using the [Account Factory workflow in your repository](/2.0/docs/accountfactory/guides/vend-aws-account?account-creation-method=workflow#using-the-account-factory-workflow-in-your-repository) (**GitHub only**) + + + + + +### Using the Gruntwork Developer Portal + +1. Navigate to the [Account Request](https://app.gruntwork.io/account-factory/request-generator) page in the Gruntwork Developer Portal, as an authenticated user, to access the request generator UI. -:::note + ![Account Request Generator](/img/accountfactory/dev-portal-request-generator.png) -This guide focuses on non-delegated repositories. Enterprise customers can also [use Account Factory to create new Delegated Repositories](/2.0/docs/accountfactory/guides/delegated-repositories). +1. If the form is disabled for filling out, request that an Admin in your Gruntwork Developer Account configures the Account factory settings. +1. Fill out the form with the required information and click on the "Generate Account Request" button. +1. Use the "Download" button to download the account-request file or the "Copy" button to copy the account-request file to your clipboard. +1. Navigate to your repository and create a new branch. +1. Create a new file in the `_new-account-requests` directory by moving the downloaded file to the directory or by creating a new file with the content of your clipboard. If copying content, ensure that the file is created with the correct name displayed in the generator output. +1. Commit your changes and open a Pull Request to the main branch. + + + +### Using the Account Factory workflow in your repository + +:::info +Only available for GitHub customers. This guide focuses on non-delegated repositories. Enterprise GitHub customers can also [use Account Factory to create new Delegated Repositories](/2.0/docs/accountfactory/guides/delegated-repositories). ::: +The Account Factory Workflow in your `infrastructure-live-root` repository can be used to create new AWS accounts. It requires a single input—a JSON payload—generated from the `account-factory-inputs.html` web page. -### Step 1 - Download the file +The JSON payload approach provides greater flexibility for account vending, overcoming the GitHub workflow restriction of a 10-input maximum. + +#### Step 1 - Download the file Locate the inputs web page in your `infrastructure-live-root` repository at `.github/workflows/account-factory-inputs.html` and download it to your local machine. -### Step 2 - Populate the values +#### Step 2 - Populate the values Open the downloaded `account-factory-inputs.html` file in a web browser and populate the input fields as required. Once all values are filled, click "Generate" and copy the resulting JSON output to your clipboard. -### Step 3 - Run the Account Factory workflow +#### Step 3 - Run the Account Factory workflow Access the Actions tab in your `infrastructure-live-root` repository on GitHub and select `Account factory` from the left-hand pane. Click "Run workflow" on the right, paste the generated JSON payload into the dropdown, and click the green "Run workflow" button to initiate the workflow. +After the workflow is complete, a new Pull Request will be created in the `infrastructure-live-root` repository. This PR will add an account request to the `_new-account-requests` directory. -### Step 4 - Merge the account request PR + + -After the workflow is complete, a new Pull Request will be created in the `infrastructure-live-root` repository. This PR will add an account request to the `_new-account-requests` directory. +## Review and merge the account request PR Review and merge the Pull Request to begin the account creation process. @@ -43,7 +72,7 @@ Once the account request PR merges into the main branch, Pipelines will initiate When the account is successfully created, Pipelines will open another Pull Request to baseline the account. -### Step 5 - Merge the Account Baseline PR +## Review and merge the Account Baseline PR Review and merge the Account Baseline Pull Request. This PR contains essential infrastructure for enabling your delegated repository to plan and apply infrastructure changes in AWS. It also includes account baselines and configured account-specific infrastructure, such as a VPC. diff --git a/docs/2.0/docs/overview/getting-started/index.md b/docs/2.0/docs/overview/getting-started/index.md index 73113153d7..4f3d5dca36 100644 --- a/docs/2.0/docs/overview/getting-started/index.md +++ b/docs/2.0/docs/overview/getting-started/index.md @@ -19,9 +19,15 @@ Set up authentication for Pipelines to enable secure automation of infrastructur -### Step 4: [Create new Pipelines repositories](/2.0/docs/pipelines/installation/addingnewrepo) +### Step 4: Create new Pipelines repositories -Alternatively, you can [add Pipelines to an existing repository](/2.0/docs/pipelines/installation/addingexistingrepo). +- [New GitHub repository](/2.0/docs/pipelines/installation/addingnewrepo) +- [New GitLab repository](/2.0/docs/pipelines/installation/addingnewgitlabrepo) + +Alternatively, you can add Pipelines to an existing repository: + +- [Existing GitHub repository](/2.0/docs/pipelines/installation/addingexistingrepo) +- [Existing GitLab repository](/2.0/docs/pipelines/installation/addinggitlabrepo) diff --git a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md index ce6d9f0509..142a0b577a 100644 --- a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md +++ b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md @@ -1,6 +1,6 @@ import CustomizableValue from '/src/components/CustomizableValue'; -# Adding Pipelines to a GitLab Project +# Adding Pipelines to an existing GitLab Project This guide walks you through the process of adding Gruntwork Pipelines to a GitLab project. By the end, you'll have a fully configured GitLab CI/CD pipeline that can deploy infrastructure changes automatically. @@ -11,7 +11,7 @@ Before you begin, make sure you have: - Basic familiarity with Git, GitLab, and infrastructure as code concepts - Access to one (or many) AWS account(s) where you have permission to create IAM roles and OIDC providers - Completed the [Pipelines Auth setup for GitLab](/2.0/docs/pipelines/installation/viamachineusers#gitlab) and setup a machine user with appropriate PAT tokens -- Local access to Gruntwork's GitHub repositories, specifically [boilerplate](https://github.com/gruntwork-io/boilerplate) and the [architecture catalog](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/) +- Local access to Gruntwork's GitHub repositories, specifically the [architecture catalog](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/) :::info diff --git a/docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md b/docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md new file mode 100644 index 0000000000..024a2c5183 --- /dev/null +++ b/docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md @@ -0,0 +1,547 @@ +import CustomizableValue from '/src/components/CustomizableValue'; + +# Creating a New GitLab Project with Pipelines + +This guide walks you through the process of setting up a new GitLab Project with the Gruntwork Platform. By the end, you'll have a fully configured GitLab CI/CD pipeline that can create new AWS accounts and deploy infrastructure changes automatically. + +:::info +To use Gruntwork Pipelines in an **existing** GitLab repository, see this [guide](/2.0/docs/pipelines/installation/addinggitlabrepo). +::: + +## Prerequisites + +Before you begin, make sure you have: + +- Basic familiarity with Git, GitLab, and infrastructure as code concepts +- Completed the [AWS Landing Zone setup](/2.0/docs/pipelines/installation/prerequisites/awslandingzone) +- Have programmatic access to the AWS accounts created in the [AWS Landing Zone setup](/2.0/docs/pipelines/installation/prerequisites/awslandingzone) +- Completed the [Pipelines Auth setup for GitLab](/2.0/docs/pipelines/installation/viamachineusers#gitlab) and setup a machine user with appropriate PAT tokens +- Local access to Gruntwork's GitHub repositories, specifically the [architecture catalog](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/) + +

    +Additional setup for **custom GitLab instances only** + +### Fork the Pipelines workflow project + +You must [fork](https://docs.gitlab.com/user/project/repository/forking_workflow/#create-a-fork) Gruntwork's public [Pipelines workflow project](https://gitlab.com/gruntwork-io/pipelines-workflows) into your own GitLab instance. +This is necessary because Gruntwork Pipelines uses [GitLab CI/CD components](/2.0/docs/pipelines/architecture/ci-workflows), and GitLab requires components to reside within the [same GitLab instance as the project referencing them](https://docs.gitlab.com/ci/components/#use-a-component). + +When creating the fork, we recommend configuring it as a public mirror of the original Gruntwork project and ensuring that tags are included. + +### Ensure OIDC configuration and JWKS are publicly accessible + +This step only applies if you are using a self-hosted GitLab instance that is not accessible from the public internet. If you are using GitLab.com or a self-hosted instance that is publicly accessible, you can skip this step. + +1. [Follow GitLab's instructions](https://docs.gitlab.com/ci/cloud_services/aws/#configure-a-non-public-gitlab-instance) for hosting your OIDC configuration and JWKS in a public location (e.g. S3 Bucket). This is necessary for both Gruntwork and the AWS OIDC provider to access the GitLab OIDC configuration and JWKS when authenticating JWT's generated by your custom instance. +2. Note the (stored as `ci_id_tokens_issuer_url` in your `gitlab.rb` file per GitLab's instructions) generated above for reuse in the next steps. +
    + +1. Create a new GitLab project for your `infrastructure-live-root` repository. +1. Install dependencies. +1. Configure the variables required to run the infrastructure-live-root boilerplate template. +1. Create your `infrastructure-live-root` repository contents using Gruntwork's architecture-catalog template. +1. Apply the account baselines to your AWS accounts. + + +## Create a new infrastructure-live-root + +### Authorize Your GitLab Group with Gruntwork + +To use Gruntwork Pipelines with GitLab, your group needs authorization from Gruntwork. Email your Gruntwork account manager or support@gruntwork.io with: + + ``` + GitLab group name(s): $$GITLAB_GROUP_NAME$$ (e.g. acme-io) + GitLab Issuer URL: $$ISSUER_URL$$ (For most users this is the URL of your GitLab instance e.g. https://gitlab.acme.io, if your instance is not publicly accessible, this should be a separate URL that is publicly accessible per step 0, e.g. https://s3.amazonaws.com/YOUR_BUCKET_NAME/) + Organization name: $$ORGANIZATION_NAME$$ (e.g. Acme, Inc.) + ``` + +Continue with the rest of the guide while you await confirmation when your group has been authorized. + +### Create a new GitLab project + +1. Navigate to the group. +1. Click the **New Project** button. +1. Enter a name for the project. e.g. infrastructure-live-root +1. Click **Create Project**. +1. Clone the project to your local machine. +1. Navigate to the project directory. +1. Create a new branch `bootstrap-repository`. + +### Install dependencies + +1. Install [mise](https://mise.jdx.dev/getting-started.html) on your machine. +1. Activate mise in your shell: + + ```bash + # For Bash + echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc + + # For Zsh + echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc + + # For Fish + echo 'mise activate fish | source' >> ~/.config/fish/config.fish + ``` + +1. Add the following to a .mise.toml file in the root of your project: + + ```toml title=".mise.toml" + [tools] + boilerplate = "0.8.1" + opentofu = "1.10.0" + terragrunt = "0.81.6" + awscli = "latest" + ``` + +1. Run `mise install`. + + +### Bootstrap the repository + +Gruntwork provides a boilerplate [template](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/tree/main/templates/devops-foundations-infrastructure-live-root) that incorporates best practices while allowing for customization. The template is designed to scaffold a best-practices Terragrunt configurations. It includes patterns for module defaults, global variables, and account baselines. Additionally, it integrates Gruntwork Pipelines. + +#### Configure the variables required to run the boilerplate template + +Copy the content below to a `vars.yaml` file in the root of your project and update the `` values with your own. + +```yaml title="vars.yaml" +SCMProvider: GitLab + +# The GitLab group to use for the infrastructure repositories. This should include any additional sub-groups in the name +# Example: acme/prod +SCMProviderGroup: $$GITLAB_GROUP_NAME$$ + +# The GitLab project to use for the infrastructure-live repository. +SCMProviderRepo: infrastructure-live-root + +# The base URL of your GitLab group repos. E.g., gitlab.com/ +RepoBaseUrl: $$GITLAB_GROUP_REPO_BASE_URL$$ + +# The name of the branch to deploy to. +# Example: main +DeployBranchName: $$DEPLOY_BRANCH_NAME$$ + +# The AWS account ID for the management account +# Example: "123456789012" +AwsManagementAccountId: $$AWS_MANAGEMENT_ACCOUNT_ID$$ + +# The AWS account ID for the security account +# Example: "123456789013" +AwsSecurityAccountId: $$AWS_SECURITY_ACCOUNT_ID$$ + +# The AWS account ID for the logs account +# Example: "123456789014" +AwsLogsAccountId: $$AWS_LOGS_ACCOUNT_ID$$ + +# The AWS account ID for the shared account +# Example: "123456789015" +AwsSharedAccountId: $$AWS_SHARED_ACCOUNT_ID$$ + +# The AWS account Email for the logs account +# Example: logs@acme.com +AwsLogsAccountEmail: $$AWS_LOGS_ACCOUNT_EMAIL$$ + +# The AWS account Email for the management account +# Example: management@acme.com +AwsManagementAccountEmail: $$AWS_MANAGEMENT_ACCOUNT_EMAIL$$ + +# The AWS account Email for the security account +# Example: security@acme.com +AwsSecurityAccountEmail: $$AWS_SECURITY_ACCOUNT_EMAIL$$ + +# The AWS account Email for the shared account +# Example: shared@acme.com +AwsSharedAccountEmail: $$AWS_SHARED_ACCOUNT_EMAIL$$ + +# The name prefix to use for creating resources e.g S3 bucket for OpenTofu state files +# Example: acme +OrgNamePrefix: $$ORG_NAME_PREFIX$$ + +# The default region for AWS Resources +# Example: us-east-1 +DefaultRegion: $$DEFAULT_REGION$$ + +################################################################################ +# OPTIONAL VARIABLES WITH THEIR DEFAULT VALUES. UNCOMMENT AND MODIFY IF NEEDED. +################################################################################ + +# List of the git repositories to populate for the catalog +# CatalogRepositories: +# - github.com/gruntwork-io/terraform-aws-service-catalog + +# The AWS partition to use. Options: aws, aws-us-gov +# AWSPartition: aws + +# The name of the IAM role to use for the plan job. +# PlanIAMRoleName: root-pipelines-plan + +# The name of the IAM role to use for the apply job. +# ApplyIAMRoleName: root-pipelines-apply + +# The default tags to apply to all resources. +# DefaultTags: +# "{{ .OrgNamePrefix }}:Team": "DevOps" + +# The version for terraform-aws-security module to use for OIDC provider and roles provisioning +# SecurityModulesVersion: v0.75.18 + +# The URL of the custom SCM provider instance. Set this if you are using a custom instance of GitLab. +# CustomSCMProviderInstanceURL: https://gitlab.example.io + +# The relative path from the host server to the custom pipelines workflow repository. Set this if you are using a custom/forked instance of the pipelines workflow. +# CustomWorkflowHostRelativePath: pipelines-workflows +``` + +#### Generate the repository contents + +1. Run the following command, from the root of your project, to generate the `infrastructure-live-root` repository contents: + + + ```bash + boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/devops-foundations-infrastructure-live-root/?ref=main" --output-folder . --var-file vars.yaml --non-interactive + ``` + + This command adds all code required to set up your `infrastructure-live-root` repository. +1. Remove the boilerplate dependency from the `mise.toml` file. It is no longer needed. + +1. Commit your local changes and push them to the `bootstrap-repository` branch. + + ```bash + git add . + git commit -m "Bootstrap infrastructure-live-root repository initial commit [skip ci]" + git push origin bootstrap-repository + ``` + + Skipping the CI/CD process for now; you will manually apply the infrastructure baselines to your AWS accounts in a later step. + +1. Create a new merge request for the `bootstrap-repository` branch. Review the changes to understand what will be applied to your AWS accounts. The generated files fall under the following categories: + + - GitLab Pipelines workflow file + - Gruntwork Pipelines configuration files + - Module defaults files for infrastructure code + - Account baselines and GitLab OIDC module scaffolding files for your core AWS accounts: management, security, logs and shared. + +### Apply the account baselines to your AWS accounts + +You will manually `terragrunt apply` the generated infrastructure baselines to get your accounts bootstrapped **before** merging this content into your main branch. + +:::tip +You can utilize the AWS SSO Portal to obtain temporary AWS credentials necessary for subsequent steps: + +1. Sign in to the Portal page and select your preferred account to unveil the roles accessible to your SSO user. +1. Navigate to the "Access keys" tab adjacent to the "AWSAdministratorAccess" role. +1. Copy the "AWS environment variables" provided and paste them into your terminal for usage. +::: + + +1. [ ] Apply infrastructure changes in the **management** account + + 1. - [ ] Obtain AWS CLI Administrator credentials for the management account + + 1. - [ ] Navigate to the management account folder + + ```bash + cd management/ + ``` + + 1. - [ ] Using your credentials, run `terragrunt plan`. + + ```bash + terragrunt run --all plan --terragrunt-non-interactive + ``` + + 1. - [ ] After the plan succeeds, apply the changes: + + ```bash + terragrunt run --all apply --terragrunt-non-interactive + ``` + + 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. The lock files will be committed in the final step of the setup. e.g. + + ```bash + terragrunt run --all providers -- lock -platform=darwin_amd64 -platform=linux_amd64 + ``` + + 1. - [ ] Update Permissions for Account Factory Portfolio + + The account factory pipeline _will fail_ until you grant the pipelines roles (`root-pipelines-plan` and `root-pipelines-apply`) access to the portfolio. This step **must be done after** you provision the pipelines roles in the management account (where control tower is set up). + + Access to the portfolio is separate from IAM access, it **must** be granted in the Service Catalog console. + + #### **Steps to grant access** + + To grant access to the Account Factory Portfolio, you **must** be an individual with Service Catalog administrative permissions. + + 1. Log into the management AWS account + 1. Go into the Service Catalog console + 1. Ensure you are in your default region(control-tower region) + 1. Select the **Portfolios** option in **Administration** from the left side navigation panel + 1. Click on the portfolio named **AWS Control Tower Account Factory Portfolio** + 1. Select the **Access** tab + 1. Click the **Grant access** button + 1. In the **Access type** section, leave the default value of **IAM Principal** + 1. Select the **Roles** tab in the lower section + 1. Enter `root-pipelines` into the search bar, there should be two results (`root-pipelines-plan` and `root-pipelines-apply`). Click the checkbox to the left of each role name. + 1. Click the **Grant access** button in the lower right hand corner + + 1. - [ ] Increase Account Quota Limit (OPTIONAL) + + Note that DevOps Foundations makes it very convenient, and therefore likely, that you will encounter one of the soft limits imposed by AWS on the number of accounts you can create. + + You may need to request a limit increase for the number of accounts you can create in the management account, as the default is currently 10 accounts. + + To request an increase to this limit, search for "Organizations" in the AWS management console [here](https://console.aws.amazon.com/servicequotas/home/dashboard) and request a limit increase to a value that makes sense for your organization. + +1. - [ ] Apply infrastructure changes in the **logs** account + + 1. - [ ] Obtain AWS CLI Administrator credentials for the logs account + 1. - [ ] Navigate to the logs account folder + + ```bash + cd ../logs/ + ``` + + 1. - [ ] Using your credentials, run `terragrunt plan`. + + ```bash + terragrunt run --all plan --terragrunt-non-interactive + ``` + + 1. - [ ] After the plan succeeds, apply the changes: + + ```bash + terragrunt run --all apply --terragrunt-non-interactive + ``` + + 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. e.g. + + ```bash + terragrunt run --all providers lock -platform=darwin_amd64 -platform=linux_amd64 + ``` + +1. - [ ] Apply infrastructure changes in the **security** account + + 1. - [ ] Obtain AWS CLI Administrator credentials for the security account + 1. - [ ] Navigate to the security account folder + + ```bash + cd ../security/ + ``` + + 1. - [ ] Using your credentials, run `terragrunt plan`. + + ```bash + terragrunt run --all plan --terragrunt-non-interactive + ``` + + 1. - [ ] After the plan succeeds, apply the changes: + + ```bash + terragrunt run --all apply --terragrunt-non-interactive + ``` + + 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. e.g. + + ```bash + terragrunt run --all providers lock -platform=darwin_amd64 -platform=linux_amd64 + ``` + +1. - [ ] Apply infrastructure changes in the **shared** account + + 1. - [ ] Obtain AWS CLI Administrator credentials for the shared account. You may need to grant your user access to the `AWSAdministratorAccess` permission set in the shared account from the management account's Identity Center Admin console. + 1. - [ ] Using your credentials, create a service role + + ```bash + aws iam create-service-linked-role --aws-service-name autoscaling.amazonaws.com + ``` + + 1. - [ ] Navigate to the shared account folder + + ```bash + cd ../shared/ + ``` + + 1. - [ ] Using your credentials, run `terragrunt plan`. + + ```bash + terragrunt run --all plan --terragrunt-non-interactive + ``` + + 1. - [ ] After the plan succeeds, apply the changes: + + ```bash + terragrunt run --all apply --terragrunt-non-interactive + ``` + + 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. e.g. + + ```bash + terragrunt run --all providers lock -platform=darwin_amd64 -platform=linux_amd64 + ``` + +1. - [ ] Commit your local changes and push them to the `bootstrap-repository` branch. + + ```bash + cd .. + git add . + git commit -m "Bootstrap infrastructure-live-root repository final commit [skip ci]" + git push origin bootstrap-repository + ``` + +1. - [ ] Merge the open merge request. **Ensure [skip ci] is present in the commit message.** + + +## Create a new infrastructure-live-access-control (optional) + +### Create a new GitLab project + +1. Navigate to the group. +1. Click the **New Project** button. +1. Enter the name for the project as `infrastructure-live-access-control`. +1. Click **Create Project**. +1. Clone the project to your local machine. +1. Navigate to the project directory. +1. Create a new branch `bootstrap-repository`. + +### Install dependencies + +Run `mise install boilerplate@0.8.1` to install the boilerplate tool. + +### Bootstrap the repository + +#### Configure the variables required to run the boilerplate template + +Copy the content below to a `vars.yaml` file in the root of your project and update the customizable values as needed. + +```yaml title="vars.yaml" +SCMProvider: GitLab + +# The GitLab group to use for the infrastructure repositories. This should include any additional sub-groups in the name +# Example: acme/prod +SCMProviderGroup: $$GITLAB_GROUP_NAME$$ + +# The GitLab project to use for the infrastructure-live repository. +SCMProviderRepo: infrastructure-live-access-control + +# The name of the branch to deploy to. +# Example: main +DeployBranchName: $$DEPLOY_BRANCH_NAME$$ + +# The name prefix to use for creating resources e.g S3 bucket for OpenTofu state files +# Example: acme +OrgNamePrefix: $$ORG_NAME_PREFIX$$ + +# The default region for AWS Resources +# Example: us-east-1 +DefaultRegion: $$DEFAULT_REGION$$ + +################################################################################ +# OPTIONAL VARIABLES WITH THEIR DEFAULT VALUES. UNCOMMENT AND MODIFY IF NEEDED. +################################################################################ + +# The AWS partition to use. +# AWSPartition: aws +``` + +#### Generate the repository contents + +1. Run the following command, from the root of your project, to generate the `infrastructure-live-access-control` repository contents: + + + ```bash + boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/devops-foundations-infrastructure-live-access-control/?ref=main" --output-folder . --var-file vars.yaml --non-interactive + ``` + + This command adds all code required to set up your `infrastructure-live-access-control` repository. The generated files fall under the following categories: + + - GitLab Pipelines workflow file + - Gruntwork Pipelines configuration files + - Module defaults files for GitLab OIDC roles and policies + + +2. Commit your local changes and push them to the `bootstrap-repository` branch. + + ```bash + git add . + git commit -m "Bootstrap infrastructure-live-access-control repository [skip ci]" + git push origin bootstrap-repository + ``` + + Skipping the CI/CD process now because there is no infrastructure to apply; repository simply contains the GitLab OIDC role module defaults to enable GitLab OIDC authentication from repositories other than `infrastructure-live-root`. + +3. Create a new merge request for the `bootstrap-repository` branch. Review the changes to understand the GitLab OIDC role module defaults. +4. Merge the open merge request. **Ensure [skip ci] is present in the commit message.** + +## Create a new infrastructure-catalog (optional) + +The `infrastructure-catalog` repository is a collection of modules that can be used to build your infrastructure. It is a great way to share modules with your team and across your organization. Learn more about the [Developer Self-Service](/2.0/docs/overview/concepts/developer-self-service) concept. + +### Create a new GitLab project + +1. Navigate to the group. +1. Click the **New Project** button. +1. Enter the name for the project as `infrastructure-catalog`. +1. Click **Create Project**. +1. Clone the project to your local machine. +1. Navigate to the project directory. +1. Create a new branch `bootstrap-repository`. + +### Install dependencies + +Run `mise install boilerplate@0.8.1` to install the boilerplate tool. + +### Bootstrap the repository + +#### Configure the variables required to run the boilerplate template + +Copy the content below to a `vars.yaml` file in the root of your project and update the customizable values as needed. + +```yaml title="vars.yaml" +# The name of the repository to use for the catalog. +InfraModulesRepoName: infrastructure-catalog + +# The version of the Gruntwork Service Catalog to use. https://github.com/gruntwork-io/terraform-aws-service-catalog +ServiceCatalogVersion: v0.111.2 + +# The version of the Gruntwork VPC module to use. https://github.com/gruntwork-io/terraform-aws-vpc +VpcVersion: v0.26.22 + +# The default region for AWS Resources +# Example: us-east-1 +DefaultRegion: $$DEFAULT_REGION$$ + +################################################################################ +# OPTIONAL VARIABLES WITH THEIR DEFAULT VALUES. UNCOMMENT AND MODIFY IF NEEDED. +################################################################################ + +# The base URL of the Organization to use for the catalog. +# If you are using Gruntwork's RepoCopier tool, this should be the base URL of the repository you are copying from. +# RepoBaseUrl: github.com/gruntwork-io + +# The name prefix to use for the Gruntwork RepoCopier copied repositories. +# Example: gruntwork-io- +# GWCopiedReposNamePrefix: +``` + + +#### Generate the repository contents + +1. Run the following command, from the root of your project, to generate the `infrastructure-catalog` repository contents: + + + ```bash + boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/devops-foundations-infrastructure-modules/?ref=main" --output-folder . --var-file vars.yaml --non-interactive + ``` + + This command adds some code required to set up your `infrastructure-catalog` repository. The generated files are some usable modules for your infrastructure. + +1. Commit your local changes and push them to the `bootstrap-repository` branch. + + ```bash + git add . + git commit -m "Bootstrap infrastructure-catalog repository" + git push origin bootstrap-repository + ``` + +1. Create a new merge request for the `bootstrap-repository` branch. Review the changes to understand the example Service Catalog modules. +1. Merge the open merge request. diff --git a/docs/2.0/docs/pipelines/installation/scm-comparison.md b/docs/2.0/docs/pipelines/installation/scm-comparison.md index c4f9f44d96..01de723c99 100644 --- a/docs/2.0/docs/pipelines/installation/scm-comparison.md +++ b/docs/2.0/docs/pipelines/installation/scm-comparison.md @@ -7,7 +7,8 @@ Gruntwork Pipelines supports both GitHub Actions and GitLab CI/CD as CI/CD platf | Feature | GitHub | GitLab (Beta) | | -------------------------------- | --------------------------- | ---------------------------- | | Infrastructure as Code Pipelines | ✅ | ✅ | -| Account Factory Integration | ✅ | ❌ | +| Account Factory Integration | ✅ | ✅ | +| Enterprise Account Factory | ✅ | ❌ | | App-based Authentication | ✅ | ❌ | | Machine User Authentication | ✅ | ✅ | | Customizable Workflows | ✅ | ✅ | diff --git a/docs/2.0/docs/pipelines/installation/viamachineusers.md b/docs/2.0/docs/pipelines/installation/viamachineusers.md index d708514c31..7e28d5de9a 100644 --- a/docs/2.0/docs/pipelines/installation/viamachineusers.md +++ b/docs/2.0/docs/pipelines/installation/viamachineusers.md @@ -36,7 +36,7 @@ If screen sharing while generating tokens, **pause or hide your screen** before ::: ### Token types - + GitHub supports two types of tokens: @@ -77,7 +77,7 @@ More information is available [here](https://docs.github.com/en/organizations/ma ![Pending requests](/img/pipelines/security/pending_requests.png) - + GitLab uses access tokens for authentication. There are several types of access tokens in GitLab: @@ -107,8 +107,8 @@ When creating tokens, carefully consider the expiration date and scope of access ## Creating machine users - - + + The recommended setup for Pipelines uses two machine users: one for opening pull requests and running workflows (`ci-user`) and another with read-only access to repositories (`ci-read-only-user`). Each user is assigned restrictive permissions based on their tasks. As a result, both users may need to participate at different stages to successfully run a pipeline job. @@ -389,7 +389,7 @@ For more information on creating and using GitHub Actions Repository secrets, re - + For GitLab, Gruntwork Pipelines two CI variables. The first, the `PIPELINES_GITLAB_TOKEN` requires the `Developer`, `Maintainer` or `Owner` role and the scopes listed below. This token will be used to authenticate API calls and access repositories within your GitLab group. The second, the `PIPELINES_GITLAB_READ_TOKEN` will be used to access your own code within GitLab. If not set, Pipelines will default to the `CI_JOB_TOKEN` when accessing internal GitLab hosted code. diff --git a/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md b/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md index 2d3c00f443..40f916d472 100644 --- a/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md +++ b/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md @@ -49,7 +49,7 @@ This section covers the Pipelines configuration required to deploy an AWS S3 buc 1. Create a `vars.yaml` file on your local machine with the following content: - + ```yaml title="vars.yaml" AccountName: "$$ACCOUNT_NAME$$" @@ -80,9 +80,7 @@ This section covers the Pipelines configuration required to deploy an AWS S3 buc 3. We'll now use that `vars.yaml` file as input to [boilerplate](https://github.com/gruntwork-io/boilerplate) to generate the Terragrunt code for the OIDC Provider and IAM roles. From the root of your repository, run the following command: - - - + ```bash boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/github-actions-single-account-setup?ref=X.Y.Z" --output-folder . --var-file vars.yaml --non-interactive @@ -128,7 +126,7 @@ aws sts get-caller-identity In the event you already have an OIDC provider for your SCM in the AWS account you can import the existing one: - + ``` cd _global/$$ACCOUNT_NAME$$/github-actions-openid-connect-provider/ diff --git a/sidebars/docs.js b/sidebars/docs.js index 7fe18d4358..c17033d4af 100644 --- a/sidebars/docs.js +++ b/sidebars/docs.js @@ -291,7 +291,12 @@ const sidebar = [ collapsed: false, items: [ { - label: "Adding Pipelines to a GitLab Project", + label: "Creating a New GitLab Project with Pipelines", + type: "doc", + id: "2.0/docs/pipelines/installation/addingnewgitlabrepo", + }, + { + label: "Adding Pipelines to an Existing GitLab Project", type: "doc", id: "2.0/docs/pipelines/installation/addinggitlabrepo", }, diff --git a/src/css/custom.css b/src/css/custom.css index edf266bf75..7df917f44e 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -166,6 +166,8 @@ --ifm-heading-color: #15192d; --ifm-button-border-radius: 12px; + + --ifm-checkbox-border-color: #adb5bd; } html[data-theme="dark"] { @@ -177,6 +179,8 @@ html[data-theme="dark"] { --ifm-background-color: #15192d; --ifm-background-surface-color: #0d0622; + + --ifm-checkbox-border-color: #777; } .docusaurus-highlight-code-line { @@ -695,3 +699,44 @@ html[data-theme="dark"] .customizable-value span::after { border-width: 0 3px 3px 0; transform: rotate(45deg); } + +/* Create a custom checkbox that looks like the default */ +.contains-task-list li input[type="checkbox"] { + -webkit-appearance: none; + appearance: none; + background-color: var(--ifm-background-color); + margin-right: 0.5rem; + font: inherit; + color: currentColor; + width: 1.15em; + height: 1.15em; + border: 0.1em solid var(--ifm-checkbox-border-color); + border-radius: 0.15em; + transform: translateY(-0.075em); + display: inline-grid; + place-content: center; + cursor: pointer; +} + +/* Create the checkmark/indicator using an SVG (hidden when not checked) */ +.contains-task-list li input[type="checkbox"]::before { + content: ""; + width: 0.65em; + height: 0.65em; + transform: scale(0); + transition: 120ms transform ease-in-out; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='white' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); + background-position: center; + background-repeat: no-repeat; +} + +/* Show the checkmark when checked */ +.contains-task-list li input[type="checkbox"]:checked::before { + transform: scale(1); +} + +/* Change the background color of the box when checked */ +.contains-task-list li input[type="checkbox"]:checked { + background-color: var(--ifm-color-primary); + border-color: var(--ifm-color-primary); +} diff --git a/src/theme/Root.js b/src/theme/Root.js index 23be6aa2c6..ca9aa7e0f4 100644 --- a/src/theme/Root.js +++ b/src/theme/Root.js @@ -7,6 +7,9 @@ */ import React, { useState, useEffect } from "react" +import { useLocation } from "@docusaurus/router" +import { interactivePersistentCheckboxes } from "/utils/checkbox" +import { scrollToAnchorInClosedSection } from "/utils/anchor" import { getRepos } from "/utils" import { SubscribersOnlyModal, @@ -143,6 +146,15 @@ function Root({ children }) { const [subscriberNoticeLink, setSubscriberNoticeLink] = useState("") const [cisNoticeLink, setCisNoticeLink] = useState("") const [enterpriseNoticeLink, setEnterpriseNoticeLink] = useState("") + const location = useLocation() + + useEffect(() => { + interactivePersistentCheckboxes() + }, [location.pathname]) + + useEffect(() => { + scrollToAnchorInClosedSection(location) + }, [location.hash]) useEffect(function showModalForPrivateGithubLinks() { const listener = (event) => { diff --git a/static/img/accountfactory/dev-portal-request-generator.png b/static/img/accountfactory/dev-portal-request-generator.png new file mode 100644 index 0000000000000000000000000000000000000000..f8eefb89d2696791afc6f2a9f628b59f5450bd87 GIT binary patch literal 320098 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

    k0@7g~ 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 U(6xnuKUhEabd0pC?mT+&U+&fJ761SM literal 0 HcmV?d00001 diff --git a/utils/anchor.ts b/utils/anchor.ts new file mode 100644 index 0000000000..4173160b22 --- /dev/null +++ b/utils/anchor.ts @@ -0,0 +1,24 @@ +export const scrollToAnchorInClosedSection = (location: Location) => { + const hash = location.hash + + if (hash) { + const id = decodeURIComponent(hash.slice(1)) + const element = document.getElementById(id) + + if (element) { + const details = element.closest("details") + if (details && !details.open) { + const summary = details.querySelector("summary") + if (summary) { + summary.click() + + const timeoutId = setTimeout(() => { + element.scrollIntoView({ behavior: "smooth", block: "start" }) + }, 500) // 500ms to allow for browser to render the element + + return () => clearTimeout(timeoutId) + } + } + } + } +} diff --git a/utils/checkbox.ts b/utils/checkbox.ts new file mode 100644 index 0000000000..93799bbc01 --- /dev/null +++ b/utils/checkbox.ts @@ -0,0 +1,52 @@ +export function interactivePersistentCheckboxes() { + const LOCAL_STORAGE_KEY = "docusaurus.checkboxes" + + const getStorage = () => { + try { + return JSON.parse(window.localStorage.getItem(LOCAL_STORAGE_KEY) || "{}") + } catch (e) { + return {} + } + } + + const updateStorage = (key: string, value: boolean) => { + const data = getStorage() + data[key] = value + window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(data)) + } + + const initCheckboxes = () => { + const checkboxes = document.querySelectorAll( + ".contains-task-list > li input[type='checkbox']" + ) + + if (checkboxes.length === 0) { + return + } + + const data = getStorage() + + checkboxes.forEach((checkbox, index) => { + const label = + `${index}:${checkbox?.closest("li")?.textContent?.substring(0, 10)}` || + `checkbox-${index}` + const key = `${window.location.pathname}:${label}` + + checkbox.disabled = false + const checked = data[key] || false + checkbox.checked = checked + + checkbox.addEventListener("click", (e) => { + const target = e.target as HTMLInputElement + updateStorage(key, target.checked) + }) + }) + } + + const timeoutId = setTimeout(initCheckboxes, 100) + + // Cleanup + return () => { + clearTimeout(timeoutId) + } +} From f1e6ab897bc4f31e07618ddf1b0f4055e9ad5f4c Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Mon, 6 Oct 2025 16:09:48 -0400 Subject: [PATCH 07/37] docs: Breaking down Pipelines architecture concepts (#2753) * docs: Nested AWS into `Authenticating to the Cloud` * Fix build issues. * fix: Addressing markdown lints * fix: Refactored out the architecture portion of Pipelines into an Account Factory page * feat: Reworked `Repository Topology` as an Account Factory page * fix: Reworked components page into execution flow page * fix: Adding some architecture diagrams * docs: Migrating out AWS specific security controls for Pipelines to Account Factory * docs: Updating `ci-workflows.md` with call outs for Account Factory stuff * docs: Markdown linting `Usage Data` docs * fix: Adjusting URL for account factory link * Apply suggestion from @josh-padnick Co-authored-by: Josh Padnick * Apply suggestion from @josh-padnick Co-authored-by: Josh Padnick * Apply suggestion from @josh-padnick Co-authored-by: Josh Padnick * Apply suggestion from @josh-padnick Co-authored-by: Josh Padnick * docs: Addressing PR feedback * Update docs/2.0/docs/pipelines/architecture/index.md Co-authored-by: Josh Padnick * Update docs/2.0/docs/pipelines/architecture/index.md Co-authored-by: Josh Padnick * Update docs/2.0/docs/pipelines/architecture/execution-flow.md Co-authored-by: Josh Padnick --------- Co-authored-by: Josh Padnick --- .../docs/accountfactory/architecture/index.md | 3 +- .../architecture/repository-topology.md | 149 ++++++++++ .../architecture/security-controls.md | 250 ++++++++++++++++ .../accountfactory/guides/vend-aws-account.md | 6 + .../docs/pipelines/architecture/audit-logs.md | 15 +- .../pipelines/architecture/ci-workflows.md | 20 +- .../docs/pipelines/architecture/components.md | 23 -- .../pipelines/architecture/execution-flow.md | 15 + docs/2.0/docs/pipelines/architecture/index.md | 267 ++++++++++++------ .../architecture/security-controls.md | 170 ++--------- .../docs/pipelines/architecture/usage-data.md | 2 +- sidebars/docs.js | 9 +- src/redirects.js | 4 +- 13 files changed, 651 insertions(+), 282 deletions(-) create mode 100644 docs/2.0/docs/accountfactory/architecture/repository-topology.md create mode 100644 docs/2.0/docs/accountfactory/architecture/security-controls.md delete mode 100644 docs/2.0/docs/pipelines/architecture/components.md create mode 100644 docs/2.0/docs/pipelines/architecture/execution-flow.md diff --git a/docs/2.0/docs/accountfactory/architecture/index.md b/docs/2.0/docs/accountfactory/architecture/index.md index 37ddb2ed91..d3c94c9050 100644 --- a/docs/2.0/docs/accountfactory/architecture/index.md +++ b/docs/2.0/docs/accountfactory/architecture/index.md @@ -28,13 +28,14 @@ sequenceDiagram Infra Live Repository ->> Pipelines: Trigger Account Added Pipelines ->> Core Accounts: Execute terragrunt to baseline account ``` + ## IAM roles Newly created accounts include IAM policies that define the scope of changes Pipelines is authorized to perform within AWS. Pipelines automatically assumes the necessary roles for each account when it detects changes. Detailed information about the provisioned roles can be found [here](/2.0/docs/pipelines/architecture/security-controls#roles-provisioned-by-devops-foundations). ## Delegated repositories -Delegated repositories enhance the architecture of infrastructure management by introducing additional layers of access control. When delegated repositories are created, Pipelines continues to manage new account security baselines within the `infrastructure-live-root` repository, while other infrastructure resources are managed in a new repository specific to the delegated account(s). +Delegated repositories enhance the architecture of infrastructure management by introducing additional layers of access control. When delegated repositories are created, Pipelines continues to manage new account security baselines within the `infrastructure-live-root` repository, while other infrastructure resources are managed in a new repository specific to the delegated account(s). Pipelines uses IAM roles from the `infrastructure-live-access-control` repository to deploy infrastructure in these delegated repositories. This setup enables the central platform team to define and restrict the scope of changes individual teams can make via Pipelines in delegated repositories. diff --git a/docs/2.0/docs/accountfactory/architecture/repository-topology.md b/docs/2.0/docs/accountfactory/architecture/repository-topology.md new file mode 100644 index 0000000000..f282218b50 --- /dev/null +++ b/docs/2.0/docs/accountfactory/architecture/repository-topology.md @@ -0,0 +1,149 @@ +# Repository Topology + +Gruntwork Account Factory provides an opinionated (but flexible) repository structure that supports organizations as they scale their infrastructure management across multiple AWS accounts. This approach is designed to help teams graduate from managing a handful of accounts with difficulty to being able to conveniently manage hundreds of accounts, all while maintaining high standards for security, compliance, and developer productivity. + +The repository topology is designed around a core principle: **centralized governance with distributed ownership**. Your platform team maintains control over critical security and compliance infrastructure, while application teams get the autonomy they need to move fast within well-defined guardrails. + +Understanding this repository structure will help you leverage Account Factory effectively and set your organization up for sustainable growth. + +## `infrastructure-live-root` + +Think of `infrastructure-live-root` as your organization's infrastructure command center. This repository, built from the [infrastructure-live-root-template](https://github.com/gruntwork-io/infrastructure-live-root-template), is where your platform team manages the foundational elements that every other AWS account depends on, and where your Account Factory workflow lives. + +This repository is the only repository with access to the AWS management account, and is trusted by IAM roles provisioned in all AWS accounts so that your platform team is able to provision infrastructure in them as necessary to prepare them for workloads. This is also where your platform team can provision new AWS accounts with consistent baselines whenever teams need them. You'll also manage critical organization-wide infrastructure like your AWS Landing Zone, central logging, and security services in this repository. + +Access to this repository is intentionally restricted to your most trusted platform team members. Every other piece of infrastructure in your organization can trace back to the foundational services configured here. + +### `infrastructure-live-root` workflows + +- **Account Factory:** (GitHub only) This is your self-service account vending machine. When someone needs a new AWS account (e.g. for a new application, environment, or team), they can trigger this workflow as the entrypoint for the account vending workflow. This workflow is triggered via [repository dispatch](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#repository_dispatch), which is a feature of GitHub Actions, and makes it possible to trigger the workflow from outside the repository using the GitHub API. + + The workflow accepts a simple JSON payload (there's even a handy customizable HTML form included to make this easy) and creates a pull request with all the necessary infrastructure code to provision and baseline the new account. Organizations typically customize this form to capture additional metadata like additional tags, cost center codes or conditional creation of potentially expensive security services like Macie or GuardDuty. + + :::tip + + The included HTML form is just a starting point. Organizations typically customize this form to capture additional metadata like additional tags, cost center codes or conditional creation of potentially expensive security services like Macie or GuardDuty. + + Once you have a good grasp of how the form works, and how it generates the JSON payload, you can even opt not to use the form at all, and instead trigger the workflow using the GitHub API directly from your internal platforms like ServiceNow or Jira. + + You can learn more about this in the ["Using the Account Factory Workflow" guide](/2.0/docs/accountfactory/guides/vend-aws-account). + + ::: + +- **Pipelines:** This is where Account Factory integrates with Gruntwork Pipelines to drive infrastructure changes via GitOps workflows. With Gruntwork Pipelines, every infrastructure change goes through a proper review process with pull requests, approvals, and controlled deployments. Your platform team gets the confidence of peer review while maintaining the ability to rapidly deploy critical infrastructure changes. + +:::tip + +While you can rename `infrastructure-live-root` during setup, keeping the name consistent with our documentation makes life easier for your team. You also *can* create multiple root repositories for complex organizational structures, but be sure that it's worth the additional complexity for your organization. It can be a significant source of operational overhead, and you might be better off delegating some infrastructure management to a separate repository with a [delegated infrastructure-live repository](#infrastructure-live-delegated). + +::: + +## `infrastructure-live-access-control` + +This is where you solve one of the biggest challenges in scaling infrastructure management: **How do you give teams the access they need (and only give them the exact access they need) to manage their own infrastructure?** + +:::tip + +This repository is optional for most users (Enterprise customers must provision this repository for delegated repository access control), but is a highly recommended best-practice for all customers. + +::: + +The `infrastructure-live-access-control` repository is your organization's permission control center. It manages all the IAM roles, policies, and permissions that determine what each team can do in their AWS accounts outside of the `infrastructure-live-root` repository. It provides a central place where application engineers and the platform team can collaborate to define and iterate on the access control policies for roles that can be assumed by [delegated infrastructure-live repositories](#infrastructure-live-delegated). + +Your application teams can _request_ the access they need here through pull requests, but your platform team maintains oversight by reviewing and approving these changes, and branch protection rules can ensure that they have final say in the approval process. No more bottlenecks where platform teams have to manually create every single IAM policy (and determine the appropriate level of access for each team), and no more security risks from teams having overly broad permissions. + +:::info + +**Delegated infrastructure management** is the practice of allowing developers to manage infrastructure in a self-service fashion. + +Instead of having your platform team manually provision every resource required for your entire organization (which doesn't always scale), you can let application teams manage their own infrastructure within clearly defined boundaries. Your platform team still entirely controls critical resources (e.g. AWS accounts, VPCs, security policies) but developers can deploy and update their applications without opening a ticket and waiting on the platform team. + +Most organizations find success with a hybrid approach: centralized control for anything that affects security or compliance, delegated management for everything else. Where you draw that line depends on your risk tolerance, team maturity, and the complexity of your organization. + +::: + +:::tip + +You can name the `infrastructure-live-access-control` repository whatever makes sense for your organization. Just keep it descriptive so future team members (and your future self) know exactly what it does. If you can keep the name similar to `infrastructure-live-access-control`, you probably should so that it's easier for your team to learn more about it when reading Gruntwork documentation. + +While you *could* split access control across multiple repositories for very large organizations, remember that multiple sources of truth for permissions can quickly become a security and operational nightmare. Start with one repository and only consider splitting if you have a compelling organizational reason. + +::: + +### `infrastructure-live-access-control` workflows + +- **Pipelines** - Every permission change goes through the same GitOps workflow as your other infrastructure. When someone proposes new IAM policies or role changes, the workflow runs a plan to show exactly what will change. Once approved and merged, it automatically applies those changes across your AWS accounts. + + This means your access control changes are auditable, reversible, and follow the same quality gates as the rest of your infrastructure. No more wondering who changed what permissions or scrambling to fix a misconfigured IAM policy. + +## `infrastructure-catalog` + +The `infrastructure-catalog` repository is your organization's internal infrastructure component library. This is where you build and maintain the custom Terragrunt/OpenTofu/Terraform resources that are specific to your organization's needs and standards, and can be reused throughout your organization. + +While Gruntwork provides battle-tested OpenTofu/Terraform modules for common infrastructure patterns, every organization has unique requirements. Maybe you need a special monitoring setup, custom networking configurations, or specific compliance controls. This repository is where those organization-specific modules live, get tested, and evolve alongside your infrastructure needs. + +The result? Instead of every team reinventing the wheel, they can leverage proven, tested components that follow your organization's best practices, and your engineers can work together to learn from each other and build on each other's work. + +:::tip + +Starting with a single `infrastructure-catalog` repository makes discoverability much easier (e.g. your teams won't have to guess where to find the standardized "database" module that follows your organization's best practices for security and cost savings). You can always split it later if your organization grows large enough that centralized module management becomes unwieldy. This can be the case if your central catalog starts to receive so many git tag updates that it becomes difficult to determine when a version bump in a module is a breaking change or not. + +Some large organizations also benefit from separate module repositories for different domains (security modules, application modules, etc.) or business units. Just make sure the benefits outweigh the complexity of managing multiple sources of truth. + +::: + +### `infrastructure-catalog` workflows + +- **Tests:** This is where your team can validate that your reusable infrastructure patterns are, in-fact, reliably reproducible. Every module gets automatically tested by spinning up real AWS resources, running comprehensive tests with [Terratest](https://terratest.gruntwork.io/), and then cleaning everything after the tests are run. This means your teams can trust that modules actually work consistently before they use them in production. This also means that you have a sandbox for ephemeral infrastructure that you can use to test out experimental changes to your infrastructure patterns before you commit to running them in the long-term in production. + +## `infrastructure-live-delegated` + +This is where you can start to empower more of your organization outside your central platform team to start managing their own infrastructure independently. **Delegated repositories** are how your organization grows from a small platform team managing everything to hundreds of developers deploying infrastructure independently while maintaining security and compliance best practices. + +:::tip + +Typical use cases for delegated repositories include: + +- Allowing a separate team to independently manage infrastructure relevant to a specific account (e.g. a mobile app team to manage their own database and application infrastructure). +- Enabling a GitHub Actions workflow in a repository to make restricted changes to infrastructure in a specific account (e.g. a repository with application code may need to build and push a container image to AWS ECR before it's picked up by ArgoCD in the cluster). +- Allowing a repository's GitHub Actions workflows to have read-only access to select resources within a specific account (e.g. a data science team may need to be granted read-only access to an S3 bucket in an AWS account to run their ML pipelines against real production data). + +::: + +These repositories represent individual teams or applications that have been granted specific, limited permissions to manage their own infrastructure. Think of them as specialized workshops where each team has exactly the tools they need for their job, but can't accidentally (or intentionally) mess with anyone else's work. + +The permissions for each delegated repository are carefully controlled by your `infrastructure-live-access-control` repository. Maybe the mobile app team needs to deploy containers and manage their databases, while the data science team needs different permissions for their ML pipelines. Each team gets exactly what they need, no more and no less. + +For Enterprise customers, Account Factory can even automatically create these delegated repositories as part of the account vending process. Request a new AWS account (or set of AWS accounts) for your team, and you automatically get a corresponding repository with all the right permissions to manage infrastructure in those account(s). + +## How it all fits together + +Here's how these repositories work together to create a scalable, secure infrastructure management system: + +```mermaid +erDiagram + infra-live-root ||--o| infra-live-access-control : "Delegated Access Control" + infra-live-access-control ||--o{ infra-live-delegated : "Delegated Infrastructure Management" + infra-live-root ||--o{ infra-live-delegated : "Vended (Enterprise)" + infra-live-root ||--o| infra-catalog : "" + infra-live-access-control ||--o| infra-catalog: "" + infra-live-delegated }o--o| infra-catalog: "" +``` + +:::note + +We've abbreviated `infrastructure` as `infra` in the diagram for brevity. + +::: + +**The flow in practice:** + +1. **Foundations first:** Your `infrastructure-live-root` repository sets up the foundational AWS infrastructure that everything else depends on: accounts, networking, security services. + +2. **Shared components:** The `infrastructure-catalog` provides reusable, tested modules that any team can use, ensuring consistency and reducing duplicate work across your organization. + +3. **Permissions next:** The `infrastructure-live-access-control` repository defines who can do what in each AWS account, creating the guardrails that keep your infrastructure secure as it scales. + +4. **Teams get autonomy:** Individual `infrastructure-live-delegated` repositories give teams the ability to manage their own infrastructure within the boundaries set by access control policies. + +This topology grows with you: start simple with just the root repository, build out your shared components in your catalog, add access control as you scale, introduce delegated repositories as teams need more autonomy. diff --git a/docs/2.0/docs/accountfactory/architecture/security-controls.md b/docs/2.0/docs/accountfactory/architecture/security-controls.md new file mode 100644 index 0000000000..d41576a336 --- /dev/null +++ b/docs/2.0/docs/accountfactory/architecture/security-controls.md @@ -0,0 +1,250 @@ +# Controls + +Gruntwork Account Factory employs a defense-in-depth approach to secure workflows across both GitHub and GitLab platforms. This document outlines the controls Account Factory uses to ensure that only infrastructure written in code and approved by a reviewer can be deployed to your AWS accounts. + +Account Factory relies on Pipelines to drive infrastructure changes via GitOps workflows, so make sure to read the [Pipelines security controls](/2.0/docs/pipelines/architecture/security-controls) for more details on how Pipelines secures workflows. + +## Least privilege principle + +Account Factory adheres to the principle of least privilege, configuring the AWS IAM roles vended as part of Account Factory onboarding to grant only the necessary permissions for infrastructure actions relevant for Account Factory to operate correctly, and to only trust the `infrastructure-live-root` repository for role assumption. + +By default, the only repository/group required to interact with infrastructure using Pipelines in Account Factory is the `infrastructure-live-root` repository/group. This contains the Infrastructure as Code for `management`, `logs`, `security`, and `shared` accounts. Access should be limited to a small, trusted group responsible for defining critical infrastructure, similar to the role of the `root` user in Unix systems. + +The roles used by the `infrastructure-live-root` repository are divided by responsibility: + +- Plan roles: Every account is provisioned with an AWS IAM role that `infrastructure-live-root` is trusted to assume from any branch that has read-only permissions to the resources in that account. +- Apply roles: Every account is provisioned with an AWS IAM role that `infrastructure-live-root` is trusted to assume on the deploy branch (e.g. `main`) with read-write permissions to the resources in that account. + +## Platform-Specific Access Controls + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + + + + +- The AWS IAM role assumed via OIDC when pull requests are opened or updated has a trust policy that restricts access to the repository itself and provides read-only permissions +- The AWS IAM role assumed via OIDC when pull requests are merged into the `main` branch has a trust policy limiting access to the repository's `main` branch and granting write permissions +- Branch protection rules can be configured to require reviews and status checks +- GitHub App or machine user authentication options available + + + + +- The AWS IAM role assumed via OIDC when merge requests are opened or updated has a trust policy that restricts access to the group itself and provides read-only permissions +- The AWS IAM role assumed via OIDC when merge requests are merged into the `main` branch has a trust policy limiting access to the group's `main` branch and granting write permissions +- Protected branches can be configured to require approvals and pipeline success +- Machine user authentication required with group-level access configuration + + + + +## Infrastructure access control + +An optional `infrastructure-live-access-control` repository/group can manage access control for infrastructure provisioned in AWS accounts. Using this is a best practice for centralized and auditable access management. + +- Access to the `main` branch should be restricted to a small, trusted group managing infrastructure access +- The same least privilege principles apply: roles assumed for pull/merge requests have read-only permissions, while roles for merged changes have write permissions + +Unlike the infrastructure-live-root repository, this repository focuses on managing access control rather than defining infrastructure. You might grant write access to a broader group for managing access while maintaining tight control over the main branch. Encourage collaboration between platform teams and application engineers to review and refine access control continuously. + +## CI/CD Token Strategy + + + + +There are two ways GitHub users can configure Source Control Management (SCM) authentication for Account Factory: + +- The [Gruntwork.io GitHub App](https://github.com/apps/gruntwork-io) +- [GitHub Machine Users](/2.0/docs/pipelines/installation/viamachineusers) + +In general, we recommend using the Gruntwork.io GitHub App when possible, as it provides a more feature-rich, reliable and secure experience. + +Reasons you might need to set up Machine Users include: + +- Your organization does not allow installation of third-party GitHub apps. +- You are using Self-hosted GitHub Enterprise, and cannot use third-party GitHub apps due to your server settings. +- You are using a different SCM platform (e.g. GitLab). +- You want a fallback mechanism in case the Gruntwork.io GitHub App is temporarily unavailable. + +### GitHub App Installation Strategy (Recommended) + +No long-lived tokens are stored when using the Gruntwork.io GitHub App. Instead, short-lived tokens are generated at runtime on-demand using the Gruntwork.io GitHub App for authentication with GitHub. + +### Machine Users Installation Strategy + +Requires the following tokens be created: + +- `PIPELINES_READ_TOKEN`: Classic PAT with read access to required repositories +- `INFRA_ROOT_WRITE_TOKEN`: Fine-grained PAT with read/write access to infrastructure repositories +- `ORG_REPO_ADMIN_TOKEN`: Fine-grained PAT with admin access for repository management + +See [Setup via Machine Users](/2.0/docs/pipelines/installation/viamachineusers.md) for more details. + + + + +Requires the following tokens be created: + +- `PIPELINES_GITLAB_TOKEN`: A GitLab access token with `api` scope +- `PIPELINES_GITLAB_READ_TOKEN`: A GitLab access token with `read_repository` scope + +See [Setup via Machine Users](/2.0/docs/pipelines/installation/viamachineusers) for more details. + +Pipelines will also require access to Gruntwork's GitHub repositories, however those tokens are generated at runtime via the Gruntwork Management Portal. + + + + +## AWS credentials + +Pipelines requires IAM roles configured with trust policies to use OpenID Connect (OIDC) with your CI/CD platform. This eliminates the need for long-lived AWS credentials stored as secrets. + +### OpenID Connect Configuration + +Pipelines provisions an OpenID Connect identity provider in AWS IAM for each account, setting GitHub/GitLab as the provider and restricting the audience to AWS STS and your GitHub/GitLab organization. The Pipelines IAM role's trust policy ensures: + +- Only a single repository in your GitHub/GitLab organization can assume the role for plans. +- Only a single branch can assume the role for applies/destroys. + +For more details, see the [official AWS documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html). Below is an example of a trust policy used by Pipelines. + + + + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Federated": "arn:aws:iam::0123456789012:oidc-provider/token.actions.githubusercontent.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringLike": { + "token.actions.githubusercontent.com:sub": "repo:acme/infrastructure-live-root:ref:*" + } + } + } + ] +} +``` + + + + + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Federated": "arn:aws:iam::0123456789012:oidc-provider/gitlab.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringLike": { + "gitlab.com:sub": "project_path:acme/projectprefix*:*" + } + } + } + ] +} + + +``` + + + + +Refer to [Configuring OpenId Connect in Amazon Web Services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) for additional details. + +### Roles provisioned by Account Factory + +Pipelines automatically provisions specific roles in AWS accounts to support required infrastructure operations. These roles follow the naming pattern `-pipelines-`. + +For example: + +- The `root-pipelines-plan` role is used by Pipelines to plan changes in the `infrastructure-live-root` repository. + +These roles are designed to operate in a single repository and include a trust policy that only permits GitHub Actions workflows triggered by that repository to assume the role. Each role is provisioned in pairs: + +- `plan` roles, with read-only permissions, are used to execute Terragrunt plans for open pull requests. +- `apply` roles, with read/write permissions, are used to apply or destroy infrastructure changes for merged pull requests or direct pushes to the deploy branch (commonly `main`). + +This separation ensures that controls like [branch protection](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches) and [CODEOWNERS files](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) can effectively govern infrastructure changes. + +#### `root-pipelines-plan` + +A read-only plan role for the `infrastructure-live-root` repository. + +- This role is one of the first created when setting up Account Factory. It is provisioned manually by the customer during the platform setup process. +- It exists in all accounts and handles tasks necessary for setting up AWS accounts. +- These roles are highly permissive among read-only roles as they manage foundational AWS account setups. + +#### `root-pipelines-apply` + +A read/write apply role for the `infrastructure-live-root` repository. + +- Like the plan role, this is one of the initial roles created during setup. +- It is broadly permissive to support foundational account setups and bootstrapping. + +#### `access-control-pipelines-plan` + +A read-only plan role for the `infrastructure-live-access-control` repository. + +- These roles are provisioned for new accounts but are not included in core accounts such as `management`, `logs`, `security`, or `shared`. +- They manage IAM roles and policies for vended accounts, facilitating infrastructure access control. + +#### `access-control-pipelines-apply` + +A read/write apply role for the `infrastructure-live-access-control` repository. + +- Similar to the plan role, these roles are provisioned for vended accounts but excluded from core accounts. +- They have permissions to manage IAM roles and policies for the accounts where they are provisioned. + +#### `delegated-pipelines-plan` + +A read-only plan role for delegated repositories, used by Pipelines Enterprise customers. + +- These roles are pre-configured to have minimal permissions, primarily for managing OpenTofu/Terraform state. +- A pull request will be opened in `infrastructure-live-access-control` during provisioning include documentation for adding additional permissions if necessary. +- Users should ensure that only the necessary _read-only_ permissions are granted for the specific delegated repository. + +:::note + +These roles have almost no permissions by default. They are pre-configured by default to only have access to OpenTofu/Terraform state, and the pull requests that are opened to provision them include documentation on how to add additional permissions as appropriate. + +It is up to the user provisioning these roles to ensure that this role has only the necessary _read-only_ permissions required to manage infrastructure changes relevant to the delegated repository. + +::: + +#### `delegated-pipelines-apply` + +A read/write apply role for delegated repositories. + +- Similar to the plan role, these roles are pre-configured with minimal permissions and are intended for managing OpenTofu/Terraform state. +- A pull request will be opened in `infrastructure-live-access-control` during provisioning include documentation for adding additional permissions if necessary. +- Users must ensure that the role has only the necessary _read/write_ permissions required for the delegated repository. + +:::note +The `delegated-pipelines-plan` and `delegated-pipelines-apply` roles are automatically provisioned for new delegated accounts. Enterprise customers will see pull requests created in the `infrastructure-live-access-control` repository to vend these roles with proper configurations. +::: + +## Trust boundaries + +A critical aspect of Pipelines' architecture is understanding its trust model. Since Pipelines runs within a CI/CD system, it has privileged access to your infrastructure resources (e.g. AWS accounts, VPCs, EC2 instances, etc.). + +Anyone with the ability to edit code in the `main` branch of your repositories inherently has the authority to make corresponding changes in your infrastructure resources. For this reason, it is important to follow the [Repository Access](/2.0/docs/pipelines/installation/viamachineusers#repository-access) guidelines to ensure appropriate access control. + +:::tip + +Each AWS IAM role provisioned through setup of [Gruntwork Account Factory](https://docs.gruntwork.io/account-factory/overview) is configured to trust a single repository (and, for apply roles, a single branch). If a role's permissions become overly broad, consider creating a new role with more granular permissions tailored to the specific use case. Use the `infrastructure-live-access-control` repository to define and manage these roles. + +::: diff --git a/docs/2.0/docs/accountfactory/guides/vend-aws-account.md b/docs/2.0/docs/accountfactory/guides/vend-aws-account.md index cad08f666f..204a60cc6d 100644 --- a/docs/2.0/docs/accountfactory/guides/vend-aws-account.md +++ b/docs/2.0/docs/accountfactory/guides/vend-aws-account.md @@ -42,6 +42,12 @@ The JSON payload approach provides greater flexibility for account vending, over #### Step 1 - Download the file +:::note + +This guide focuses on non-delegated repositories. Enterprise customers can also [use Account Factory to create new Delegated Repositories](/2.0/docs/accountfactory/guides/delegated-repositories). + +::: + Locate the inputs web page in your `infrastructure-live-root` repository at `.github/workflows/account-factory-inputs.html` and download it to your local machine. #### Step 2 - Populate the values diff --git a/docs/2.0/docs/pipelines/architecture/audit-logs.md b/docs/2.0/docs/pipelines/architecture/audit-logs.md index 3fc94094b4..264ad474e4 100644 --- a/docs/2.0/docs/pipelines/architecture/audit-logs.md +++ b/docs/2.0/docs/pipelines/architecture/audit-logs.md @@ -1,8 +1,11 @@ # Audit Logs -Gruntwork Pipelines provides an audit log that records which user performed specific operations in your AWS accounts as a result of a [Pipelines Action](/2.0/docs/pipelines/architecture/actions.md). +For certain cloud environments (for now, only AWS), Gruntwork Pipelines provides an audit log that records which user performed specific operations in your AWS accounts as a result of a [Pipelines Action](/2.0/docs/pipelines/architecture/actions.md). Pipelines does this via integration with native tooling for the cloud provider. + +## AWS Accessing AWS environments from a CI/CD system often involves assuming temporary credentials using OpenID Connect (OIDC). For platform-specific documentation, see: + - [GitHub OIDC Configuration](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) - [GitLab OIDC Configuration](https://docs.gitlab.com/ee/ci/cloud_services/aws/) @@ -10,11 +13,11 @@ Shared credentials can complicate tracking who performed specific actions in AWS ## How it works -Gruntwork Pipelines creates an audit log that tracks which user performed what action in which AWS account. It does this by setting the [AWS STS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) session name to include the initiating username, the Pipelines name, and the merge request/pull request or branch that triggered the action. Logging is handled through [AWS CloudTrail](https://aws.amazon.com/cloudtrail/), where session names appear in the `User name` field, making it easy to identify which user performed an action. For information on locating logs, see [where you can find logs](#where-you-can-find-logs) and [querying data](#querying-data). +Gruntwork Pipelines creates an audit log that tracks which user performed what action in which AWS account. It does this by setting the [AWS STS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) session name to include the initiating username, the Pipelines name, and the merge/pull request or branch that triggered the action. Logging is handled through [AWS CloudTrail](https://aws.amazon.com/cloudtrail/), where session names appear in the `User name` field, making it easy to identify which user performed an action. For information on locating logs, see [where you can find logs](#where-you-can-find-logs) and [querying data](#querying-data). ### What gets logged -Logs are generated for all operations performed by Gruntwork Pipelines across every AWS account. These logs leverage [AWS STS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) session names to clearly label sessions with the username that requested the change and the associated merge request/pull request or branch. +Logs are generated for all operations performed by Gruntwork Pipelines in AWS across every AWS account. These logs leverage [AWS STS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) session names to clearly label sessions with the username that requested the change and the associated merge/pull request or branch. Each CloudTrail event linked to API calls from Pipelines [Actions](/2.0/docs/pipelines/architecture/actions.md) includes the session name in the `userIdentity` field. For example, if the user `SomeUserInYourOrg` initiated the 123rd request in your repository, the `userIdentity` field in a corresponding CloudTrail event would provide details such as the following. @@ -58,13 +61,17 @@ By combining this data with a [query service](#querying-data), you can analyze t Pipelines employs a naming scheme that integrates the user who triggered the Pipelines [Action](/2.0/docs/pipelines/architecture/actions.md) along with the request or branch that initiated the action. The AWS STS session name is formatted as follows: `-via-GWPipelines@(PR-|)`. -#### For merge request/pull request events +#### For merge/pull request events + When Pipelines runs in response to a request event (opened, updated, or reopened), the session name includes the user who made the most recent commit on the branch and the request number. For instance: + - If the user `SomeUserInYourOrg` created request number `123`, the session name would be: `SomeUserInYourOrg-via-GWPipelines@PR-123`. #### For merged requests + When Pipelines runs after a request is merged, the session name reflects the user who performed the merge and the deploy branch name (e.g., `main`). For example: + - If the user `SomeUserInYourOrg` merged a request to the branch `main`, the session name would be: `SomeUserInYourOrg-via-GWPipelines@main`. diff --git a/docs/2.0/docs/pipelines/architecture/ci-workflows.md b/docs/2.0/docs/pipelines/architecture/ci-workflows.md index e941dd3f97..65ca5b4d55 100644 --- a/docs/2.0/docs/pipelines/architecture/ci-workflows.md +++ b/docs/2.0/docs/pipelines/architecture/ci-workflows.md @@ -21,6 +21,7 @@ jobs: include: - component: gitlab.com/gruntwork-io/pipelines-workflows/pipelines@3 ``` + ## Workflow versioning @@ -42,33 +43,32 @@ If you [fork the Gruntwork Workflows](https://docs.gruntwork.io/2.0/docs/pipelin The `pipelines-workflows` repository includes the following reusable workflows: -- `pipelines-drift-detection.yml` - Used for [Pipelines Drift Detection](/2.0/docs/pipelines/concepts/drift-detection) in all repositories with Drift Detection installed. -- `pipelines-root.yml` - The core Pipelines workflow for the `infrastructure-live-root` repository, providing core plan/apply functionality and account vending. -- `pipelines-unlock.yml` - Used to manually unlock state files in all repositories. +- `pipelines-drift-detection.yml` - (Enterprise only) Used for [Pipelines Drift Detection](/2.0/docs/pipelines/concepts/drift-detection) in all repositories with Drift Detection installed. +- `pipelines-root.yml` - (Account Factory only) The core Pipelines workflow for the `infrastructure-live-root` repository, providing core plan/apply functionality and account vending. +- `pipelines-unlock.yml` - (AWS only) Used to manually unlock state files in all repositories. - `pipelines.yml` - The core Pipelines workflow for `infrastructure-live-access-control` and delegated repositories, supporting plan/apply operations. +If you are using [Gruntwork Account Factory](/2.0/docs/accountfactory/concepts/), the following workflows are typically present: -In your repositories, the following workflows are typically present: - -#### infrastructure-live-root +### infrastructure-live-root - `account-factory.yml` - A standalone workflow independent of `pipelines-workflows`. - `pipelines-drift-detection.yml` (Enterprise only) - Uses the Gruntwork `pipelines-drift-detection.yml` workflow. - `pipelines-unlock.yml` - Uses the Gruntwork `pipelines-unlock.yml` workflow. - `pipelines.yml` - Uses `pipelines-root.yml`. -#### infrastructure-live-access-control + +### infrastructure-live-access-control - `pipelines-drift-detection.yml` (Enterprise only) - Uses the Gruntwork `pipelines-drift-detection.yml` workflow. -- `pipelines-unlock.yml` - Uses the Gruntwork `pipelines-unlock.yml` workflow. +- `pipelines-unlock.yml` - Uses the Gruntwork `pipelines-unlock.yml` workflow (AWS only). - `pipelines.yml` - Uses `pipelines.yml`. -#### infrastructure-live-delegated ([Vended Delegated Repositories](/2.0/docs/accountfactory/guides/delegated-repositories)) +### infrastructure-live-delegated ([Vended Delegated Repositories](/2.0/docs/accountfactory/guides/delegated-repositories)) - `pipelines-drift-detection.yml` - Uses the Gruntwork `pipelines-drift-detection.yml` workflow. - `pipelines-unlock.yml` - Uses the Gruntwork `pipelines-unlock.yml` workflow. - `pipelines.yml` - Uses `pipelines.yml`. - diff --git a/docs/2.0/docs/pipelines/architecture/components.md b/docs/2.0/docs/pipelines/architecture/components.md deleted file mode 100644 index 902c4c2338..0000000000 --- a/docs/2.0/docs/pipelines/architecture/components.md +++ /dev/null @@ -1,23 +0,0 @@ -# Components Architecture - -Pipelines consists of two main components: the orchestrator and the executor. The orchestrator identifies necessary jobs, while the executor performs those tasks and updates AWS resources accordingly. - -## Orchestrator - -The orchestrator analyzes each infrastructure change in a pull request or git commit, categorizes the type of change (e.g., `AccountsAdded`, `ModuleChanged`, `EnvCommonChanged`), and identifies the appropriate pipelines actions (e.g., `terragrunt plan`, `apply`, or `destroy`) to execute based on the type of change. - -## Executor - -The executor receives a pipeline action and an infrastructure change as input and executes the specified action on the change. For example, when responding to `AccountsAdded` events on merge, the executor may create a follow-up pull request in the `infrastructure-live-root` repository to include additional IaC code for baselining the newly added accounts. - -## Execution flow - -Pipelines begins with an event in GitHub/GitLab, such as the creation, update, or reopening of a merge request/pull request, or a push to `main` (e.g., merging a pull request). The orchestrator determines the set of infrastructure changes (`infra-change set`) and selects the appropriate action for each change. For every change in the set, the executor performs the necessary action and logs the results in GitHub/GitLab, attaching them to the merge request/pull request that triggered the workflow. - -## Trust boundaries - -A critical aspect of Pipelines' architecture is understanding its trust model. Since Pipelines runs within a CI/CD system, it has privileged access to your AWS accounts. - -Anyone with the ability to edit code in the `main` branch of your repositories inherently has the authority to make corresponding changes in your AWS accounts. For this reason, it is important to follow the [Repository Access](/2.0/docs/pipelines/installation/viamachineusers#repository-access) guidelines to ensure appropriate access control. - -Additionally, each AWS IAM role provisioned through DevOps Foundations is configured to trust a single repository (and, for apply roles, a single branch). If a role's permissions become overly broad, consider creating a new role with more granular permissions tailored to the specific use case. Use the `infrastructure-live-access-control` repository to define and manage these roles. diff --git a/docs/2.0/docs/pipelines/architecture/execution-flow.md b/docs/2.0/docs/pipelines/architecture/execution-flow.md new file mode 100644 index 0000000000..b7cbbbc47b --- /dev/null +++ b/docs/2.0/docs/pipelines/architecture/execution-flow.md @@ -0,0 +1,15 @@ +# Execution flow + +Pipelines begins doing work in response to an event in GitHub/GitLab, such as the creation, update, or merging of a pull/merge request, or a push to a deploy branch (e.g., `main` or `master`). Pipelines does this in the native CI/CD feature offered by Source Control Management (SCM) platforms (GitHub Actions for GitHub, GitLab CI/CD Pipelines for GitLab). + +The flow of this work consists of two main stages: the orchestrator and the executor. The orchestrator identifies and categorizes work into a set of infrastructure changes (`infra-change set`) based on the contents of a pull/merge request or push to the deploy branch, while the executor performs those tasks and updates infrastructure accordingly. + +## Orchestrator + +The orchestrator analyzes each infrastructure change in a pull request or git commit, categorizes the type of change (e.g., `AccountsAdded`, `ModuleChanged`, `EnvCommonChanged`), and identifies the appropriate pipelines actions (e.g., `terragrunt plan`, `apply`, or `destroy`) to execute based on the type of change. + +## Executor + +The executor receives as inputs a pipeline action (e.g. `terragrunt plan`) and a specific unit of infrastructure that has been changed (e.g. `/path/to/changed-unit/terragrunt.hcl`) and executes the specified action on the specified unit. + +For example, when responding to a `ModuleUpdated` event for `/some/unit/terragrunt.hcl`, the executor might execute a `terragrunt apply` on `/some/unit/terragrunt.hcl`. Or when responding to `AccountsAdded` events on merge, the executor may create a follow-up pull request in the `infrastructure-live-root` repository to include additional IaC code for baselining the newly added accounts. diff --git a/docs/2.0/docs/pipelines/architecture/index.md b/docs/2.0/docs/pipelines/architecture/index.md index c810f39522..e75a7905b7 100644 --- a/docs/2.0/docs/pipelines/architecture/index.md +++ b/docs/2.0/docs/pipelines/architecture/index.md @@ -1,129 +1,218 @@ # Architecture -Gruntwork Pipelines is designed to provide flexibility, enabling you to utilize the components you need to manage your infrastructure in a way that aligns with your organization's requirements. +Gruntwork Pipelines, at its core, is a single binary that customers can download using their Gruntwork subscription to "do the right thing" when it comes to managing Infrastructure as Code using Terragrunt using GitOps workflows. Pipelines runs in customer CI/CD pipelines (not Gruntwork servers or any other dedicated server you have to maintain) to handle all the complexity of performing IaC CI/CD. +Outside of the main binary, Pipelines has several other components that work together to make it all work. These components are all provided by Gruntwork, and we work with our customers to ensure that they are configured correctly to work together. -Understanding the components and their structure will help you use Pipelines and associated Infrastructure as Code (IaC) effectively. +## CI/CD pipelines -## `infrastructure-live-root` +By design, customers run the binary as part of their CI/CD pipelines (e.g. GitHub Actions, GitLab CI, etc.). As such, Gruntwork provides out-of-the-box CI/CD configurations for supported platforms when customers sign up for Gruntwork Pipelines. -The `infrastructure-live-root` repository serves as the root of your infrastructure and is provisioned using the [infrastructure-live-root-template](https://github.com/gruntwork-io/infrastructure-live-root-template) template repository. +We likewise provide CI/CD configurations for [Gruntwork Account Factory](https://docs.gruntwork.io/account-factory/overview). -This repository is where you manage sensitive resources such as the Landing Zone and Organization services for AWS. Typically, access to this repository is restricted to a small group of trusted users. +When using Gruntwork Pipelines without Gruntwork Account Factory, customers are responsible for configuring their repositories to use the appropriate CI/CD configuration for that platform (see [Adding Pipelines to an Existing Repository](/2.0/docs/pipelines/installation/addingexistingrepo) for more information). This code is typically fairly minimal, and the majority of the work is done by reusable workflows made available by Gruntwork, and the binary itself. -All other infrastructure managed with Gruntwork software ultimately depends on resources configured in this repository. +## Cloud resources -### Workflows +When Pipelines is used to manage infrastructure resources in cloud environments, it needs to be able to authenticate to the cloud provider. Pipelines supports authentication out of the box for the following cloud providers: -- **Account Factory:** (GitHub only) Provides an API for interacting with the Gruntwork Account Factory. It uses a [repository dispatch](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#repository_dispatch) to create AWS account requests. +- [AWS](/2.0/docs/pipelines/concepts/cloud-auth/aws) +- [Azure](/2.0/docs/pipelines/concepts/cloud-auth/azure) +- [Custom](/2.0/docs/pipelines/concepts/cloud-auth/custom) (build your own support for your cloud provider) - This workflow uses a [repository dispatch](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#repository_dispatch) to create a standard AWS account creation request in the repository. +The way in which Pipelines authenticates to these cloud providers (with the exception of Custom authentication) is via OpenID Connect (OIDC). - The workflow payload is a JSON object, which can be constructed using the sample HTML file included in the repository. This file can be customized for organizational needs, such as adding tagging fields or additional context. +With OIDC, Pipelines is able to generate temporary credentials for granular authentication to cloud providers, using the context of the pull request or push to the deploy branch. - :::tip +e.g. When a pull request is opened, Pipelines might determine that the IaC being edited is in an [environment](/2.0/reference/pipelines/configurations-as-code#environment-blocks) that is configured to authenticate to AWS using OIDC, and generate temporary read-only credentials (as that's what's required for plans in pull requests) to authenticate with AWS using the role defined for that environment. - This HTML file can be customized as needed to fit the needs of your organization. You may want to add additional fields to the form for tagging purposes, or to provide additional context to the person who will be approving the account vend. +## SCM Authentication - You don't even need to use the form at all if you don't want to. An alternative would be to use a service like ServiceNow to populate the requisite fields, then trigger the workflow using the GitHub API. +In addition to authenticating to cloud providers, Pipelines also needs to be able to authenticate to Source Control Management (SCM) platforms (e.g. GitHub, GitLab) to fetch resources (e.g. IaC code, reusable CI/CD code and the Pipelines binary itself). - You can learn more about this [here](/2.0/docs/accountfactory/guides/vend-aws-account). +Pipelines supports authentication to the following SCM platforms: - ::: +- GitHub +- GitLab -- **Pipelines:** Manages infrastructure changes in a GitOps fashion. While the workflow permissions are mostly read-only for proposing changes, they include write access to apply infrastructure changes upon merging. +The way in which Pipelines authenticates to these SCM platforms differs slightly, due to the different ways in which they support authentication, and the needs of customers. -:::tip +### Gruntwork.io GitHub App Authentication -The `infrastructure-live-root` repository can be renamed during the bootstrap process, but giving it a similar name to `infrastructure-live-root` is recommended for clarity when using Gruntwork documentation. Multiple root repositories can be created if needed, but this increases complexity and operational overhead. -It also doesn't have to be the only root repository in your organization. You can have multiple root repositories if you have a complex organization structure that requires it. Make sure to evaluate the trade-offs of having multiple root repositories before doing so. It can be a significant source of complexity and operational overhead. +Customers using Github as their SCM platform can install the [Gruntwork.io GitHub App](https://github.com/apps/gruntwork-io) to authenticate with Github. This app provides a more feature-rich and secure experience, and is the recommended method of authentication for most customers if they can use it. -::: +When using the Gruntwork.io GitHub App, users are able to avoid the need to provision any machine users or long-lived Personal Access Tokens (PATs) to authenticate with Github to download the Pipelines binary or access other repositories they want to access in their CI/CD pipelines. Control of the permissions the Gruntwork.io GitHub App grants when installed is done via the [Gruntwork Developer Portal](#gruntwork-developer-portal). -## `infrastructure-live-access-control` +### GitHub Machine Users Authentication -The `infrastructure-live-access-control` repository manages access control for your infrastructure and is provisioned during the bootstrap process in the `infrastructure-live-root` repository. While only necessary for Enterprise customers, it is recommended for all users. +Customers using GitHub as their SCM platform, but are unable (or don't wish to) use the Gruntwork.io GitHub App, and customers using a different SCM platform (e.g. GitLab) use GitHub Machine Users to authenticate with GitHub. -This repository handles IAM roles, policies, and permissions for delegated infrastructure management. It allows application engineers to propose access control changes, while a central platform team reviews and approves them. +All customers must authenticate with GitHub in some way for the core requirement to download the Pipelines binary using their Gruntwork subscription. Customers that are using GitHub as their SCM platform, but aren't using the Gruntwork.io GitHub App also use GitHub Machine Users to authenticate with GitHub to download IaC code and reusable GitHub Actions code. Customers using a different SCM platform (e.g. GitLab) only use GitHub Machine Users to authenticate with GitHub to download the Pipelines binary. -More access can be granted to this repository than the `infrastructure-live-root` repository, but it should still be treated as a sensitive resource. Organizations typically find it useful to have restrictions on who can approve and merge changes to this repository, and allow for users to propose changes in a self-service fashion. This allows for application workload engineers to propose changes to the access control their workflows need, while allowing a central platform team to review and approve those changes instead of having to author the changes themselves. +### GitLab Machine Users Authentication -:::info +Customers using GitLab as their SCM platform use GitLab Machine Users to authenticate with GitLab to download reusable GitLab CI/CD code, and access other IaC repositories. -Delegated infrastructure management is the practice of allowing developers to manage infrastructure in a self-service fashion. +## Gruntwork Developer Portal -This is in contrast to centralized infrastructure management, where a small number of people manage all the infrastructure for the entire organization. +The Gruntwork Developer Portal (hosted at [app.gruntwork.io](https://app.gruntwork.io)) is a web-based interface that customers use to manage their Gruntwork subscription. This includes the ability to install the Gruntwork.io GitHub App and associate it with a Gruntwork organization, and manage the access that the app has to relevant GitHub resources in customer GitHub organizations. -Organizations frequently use a combination of both centralized and delegated infrastructure management to balance the need for control and security with the need for agility and speed. +It is also used to manage the access that GitHub Machine Users have to relevant Gruntwork owned repositories, made available via customer Gruntwork subscriptions. -e.g. Centralized management for core infrastructure like AWS accounts, VPCs, OIDC providers and powerful IAM roles, and delegated management for application infrastructure like container images, AWS ECS services, and S3 buckets. +## Architecture Overview -The exact balance will depend on your organization's needs. +The Gruntwork Pipelines architecture varies depending on your Source Control Management (SCM) platform, authentication method, and cloud provider. -::: +Below are simplified diagrams for each supported configuration, to provide a high-level overview of the architecture: -:::tip - -The `infrastructure-live-access-control` repository does not have to be named "infrastructure-live-access-control". You can name it whatever you like. It is highly recommended that the repository is named something similar to `infrastructure-live-access-control` to make it clear what it is when reading Gruntwork documentation, however. - -It also doesn't have to be the only access control repository in your organization. You can have multiple access control repositories if you have a complex organization structure that requires it. Make sure to evaluate the trade-offs of having multiple access control repositories before doing so. It can be a significant source of complexity and operational overhead. Also note that doing this will sacrifice some of the benefits of having a single source of truth for access control. - -::: - -### Workflows - -- **Pipelines** - This workflow will be used by the `infrastructure-live-access-control` repository to manage access control infrastructure in response to changes in the repository in a GitOps fashion. - - While the permissions for this workflow are largely read-only when proposing access control changes, the workflow also has the ability to make changes to relevant access control infrastructure when the changes are merged. - -## `infrastructure-catalog` - -The `infrastructure-catalog` repository stores OpenTofu/Terraform modules created for internal use. It is optionally provisioned during the bootstrap process of the `infrastructure-live-root` repository. - -This repository is optional but recommended for managing reusable infrastructure code. Customers often combine Gruntwork modules with custom modules stored here to extend functionality. - -:::tip - -While `infrastructure-catalog` can be renamed, keeping a consistent name is recommended for clarity in documentation. Multiple module repositories can be created if necessary, but consider the trade-offs between centralized and decentralized approaches. - -It can be advantageous to have one repository for all modules to make it easier to find and share modules across your organization. However, it can also be advantageous to have multiple repositories if you have different teams that need to manage their own modules, or want to have different modules available to different teams within your organization. - -::: - -### Workflows - -- **Tests:** Validates module functionality by provisioning them in real environments, running [Terratests](https://github.com/gruntwork-io/terratest), and tearing them down. This workflow ensures modules work as expected. - - -## `infrastructure-live-delegated` - -One of the primary benefits of IaC Foundations is the streamlined delegation of infrastructure management. For the sake of discussion in Gruntwork documentation, we refer to repositories that have been granted delegated permissions to interact with infrastructure as "delegated repositories", or `infrastructure-live-delegated`. Their permissions are granted by the `infrastructure-live-access-control` repository. - -These repositories can be created manually by customers for specific purposes. For example, an application repository may need permissions to build and push a container image to AWS ECR, or to deploy an update to an ECS service. These permissions can be delegated by the `infrastructure-live-access-control` repository to a specific repository that needs those permissions. - -Enterprise customers can also expect the creation and management of delegated repositories centrally in the `infrastructure-live-root` repository. This is an Enterprise-only feature that allows for the creation of delegated repositories with largely the same degree of infrastructure management as the `infrastructure-live-root` repository itself. This is useful for organizations that want to allow large degrees of infrastructure management (e.g. entire AWS accounts) without having to manually provision and manage the repositories that need those permissions. -## Entity relationship diagram +### GitHub with Gruntwork.io App (Recommended) ```mermaid -erDiagram - infra-live-root ||--o| infra-live-access-control : "Delegated Access Control" - infra-live-access-control ||--o{ infra-live-delegated : "Delegated Infrastructure Management" - infra-live-root ||--o{ infra-live-delegated : "Vended (Enterprise)" - infra-live-root ||--o| infra-modules : "" - infra-live-access-control ||--o| infra-modules: "" - infra-live-delegated }o--o| infra-modules: "" +graph TB + subgraph "Customer GitHub" + GH[GitHub Repository] + GHA[GitHub Actions] + IaC[Infrastructure as Code] + end + + subgraph "Gruntwork Services" + GDP[Gruntwork Developer Portal
    app.gruntwork.io] + GApp[Gruntwork.io GitHub App] + end + + subgraph "Pipelines Runtime" + Binary[Gruntwork Pipelines Binary] + end + + subgraph "Cloud Provider" + OIDC[OpenID Connect] + Cloud[Cloud Resources
    AWS/Azure/Custom] + end + + %% Main flow + GH --> IaC + IaC --> GHA + GHA --> Binary + + %% Authentication + GDP --> GApp + GApp --> GH + Binary --> GApp + + %% Cloud access + Binary --> OIDC + OIDC --> Cloud + + classDef customer fill:#b3e5fc,stroke:#01579b,stroke-width:2px,color:#000000 + classDef gruntwork fill:#e1bee7,stroke:#4a148c,stroke-width:2px,color:#000000 + classDef runtime fill:#f8bbd9,stroke:#880e4f,stroke-width:2px,color:#000000 + classDef cloud fill:#c8e6c9,stroke:#1b5e20,stroke-width:2px,color:#000000 + + class GH,GHA,IaC customer + class GDP,GApp gruntwork + class Binary runtime + class OIDC,Cloud cloud ``` -:::note - -The term `infrastructure` is abbreviated as `infra` in the diagram for simplicity. +### GitHub with Machine Users -::: - -The `infrastructure-live-root` repository serves as the central hub for managing all infrastructure. - -- Users who choose to delegate access control can use the `infrastructure-live-root` repository to provision the necessary `pipelines-access-control` roles in AWS accounts. These roles allow access control to be managed within the `infrastructure-live-access-control` repository. +```mermaid +graph TB + subgraph "Customer GitHub" + GH[GitHub Repository] + GHA[GitHub Actions] + IaC[Infrastructure as Code] + end + + subgraph "Gruntwork Services" + GDP[Gruntwork Developer Portal
    app.gruntwork.io] + GMU[GitHub Machine User
    Long-lived PAT] + end + + subgraph "Pipelines Runtime" + Binary[Gruntwork Pipelines Binary] + end + + subgraph "Cloud Provider" + OIDC[OpenID Connect] + Cloud[Cloud Resources
    AWS/Azure/Custom] + end + + %% Main flow + GH --> IaC + IaC --> GHA + GHA --> Binary + + %% Authentication + GDP --> GMU + GMU --> GH + Binary --> GMU + + %% Cloud access + Binary --> OIDC + OIDC --> Cloud + + classDef customer fill:#b3e5fc,stroke:#01579b,stroke-width:2px,color:#000000 + classDef gruntwork fill:#e1bee7,stroke:#4a148c,stroke-width:2px,color:#000000 + classDef runtime fill:#f8bbd9,stroke:#880e4f,stroke-width:2px,color:#000000 + classDef cloud fill:#c8e6c9,stroke:#1b5e20,stroke-width:2px,color:#000000 + + class GH,GHA,IaC customer + class GDP,GMU gruntwork + class Binary runtime + class OIDC,Cloud cloud +``` -- Users who opt to delegate infrastructure management can use the `infrastructure-live-access-control` repository to provision the required `pipelines-delegated` roles in AWS accounts. These roles enable infrastructure management to be handled through `infrastructure-live-delegated` repositories. +### GitLab -- Users who prefer to centralize module management can utilize the `infrastructure-catalog` repository to create and maintain reusable, vetted modules. These modules can be shared across the organization and accessed by any repository as needed. +```mermaid +graph TB + subgraph "Customer GitLab" + GL[GitLab Repository] + GLC[GitLab CI] + IaC[Infrastructure as Code] + end + + subgraph "Gruntwork Services" + GDP[Gruntwork Developer Portal
    app.gruntwork.io] + GMU[GitHub Machine User
    For Pipelines Binary] + GLMU[GitLab Machine User
    Access Token] + end + + subgraph "Pipelines Runtime" + Binary[Gruntwork Pipelines Binary] + end + + subgraph "Cloud Provider" + OIDC[OpenID Connect] + Cloud[Cloud Resources
    AWS/Azure/Custom] + end + + %% Main flow + GL --> IaC + IaC --> GLC + GLC --> Binary + + %% Authentication - GitLab + GDP --> GLMU + GLMU --> GL + Binary --> GLMU + + %% Authentication - GitHub (for binary download) + GDP --> GMU + Binary --> GMU + + %% Cloud access + Binary --> OIDC + OIDC --> Cloud + + classDef customer fill:#b3e5fc,stroke:#01579b,stroke-width:2px,color:#000000 + classDef gruntwork fill:#e1bee7,stroke:#4a148c,stroke-width:2px,color:#000000 + classDef runtime fill:#f8bbd9,stroke:#880e4f,stroke-width:2px,color:#000000 + classDef cloud fill:#c8e6c9,stroke:#1b5e20,stroke-width:2px,color:#000000 + + class GL,GLC,IaC customer + class GDP,GMU,GLMU gruntwork + class Binary runtime + class OIDC,Cloud cloud +``` diff --git a/docs/2.0/docs/pipelines/architecture/security-controls.md b/docs/2.0/docs/pipelines/architecture/security-controls.md index 8f26b5e596..6b88e281b8 100644 --- a/docs/2.0/docs/pipelines/architecture/security-controls.md +++ b/docs/2.0/docs/pipelines/architecture/security-controls.md @@ -1,12 +1,10 @@ # Controls -Gruntwork Pipelines employs a defense-in-depth approach to secure workflows across both GitHub and GitLab platforms. This document outlines the controls Pipelines uses to ensure that only infrastructure written in code and approved by a reviewer can be deployed to your AWS accounts. +Gruntwork Pipelines employs a defense-in-depth approach to secure workflows across both GitHub and GitLab platforms. This document outlines the controls Pipelines uses to ensure that only infrastructure written in code and approved by a reviewer can be deployed to your cloud environments (e.g. AWS accounts). ## Least privilege principle -Pipelines adheres to the principle of least privilege, granting only the necessary permissions for infrastructure actions. - -By default, the only repository/group required to interact with infrastructure using Pipelines in DevOps Foundations is the `infrastructure-live-root` repository/group. This contains infrastructure code for management, logs, security, and shared accounts. Access should be limited to a small, trusted group responsible for defining critical infrastructure, similar to the role of the `root` user in Unix systems. +Pipelines adheres to the principle of least privilege, granting only the necessary permissions for infrastructure actions using the context of a pull request or push to the deploy branch to determine the environment(s) to authenticate to, and how to authenticate to them. ## Platform-Specific Access Controls @@ -16,43 +14,35 @@ import TabItem from "@theme/TabItem" -- The AWS IAM role assumed via OIDC when pull requests are opened or updated has a trust policy that restricts access to the repository itself and provides read-only permissions -- The AWS IAM role assumed via OIDC when pull requests are merged into the `main` branch has a trust policy limiting access to the repository's `main` branch and granting write permissions +- The credentials assumed via OIDC (e.g. STS Tokens for AWS IAM Roles) when pull requests are opened or updated are intended to have trust policies that restrict access to the repository itself and provides read-only permissions. +- The credentials assumed via OIDC when pull requests are merged into the deploy branch (e.g. `main`) are intended to have trust policies that limiting access to the repository's deploy branch and granting write permissions. - Branch protection rules can be configured to require reviews and status checks - GitHub App or machine user authentication options available -- The AWS IAM role assumed via OIDC when merge requests are opened or updated has a trust policy that restricts access to the group itself and provides read-only permissions -- The AWS IAM role assumed via OIDC when merge requests are merged into the `main` branch has a trust policy limiting access to the group's `main` branch and granting write permissions +- The credentials assumed via OIDC (e.g. STS Tokens for AWS IAM Roles) when merge requests are opened or updated are intended to have trust policies that restrict access to the group itself and provides read-only permissions. +- The credentials assumed via OIDC when merge requests are merged into the deploy branch (e.g. `main`) are intended to have trust policies that limiting access to the group's deploy branch and granting write permissions. - Protected branches can be configured to require approvals and pipeline success - Machine user authentication required with group-level access configuration -## Infrastructure access control - -An optional `infrastructure-live-access-control` repository/group can manage access control for infrastructure provisioned in AWS accounts. Using this is a best practice for centralized and auditable access management. - -- Access to the `main` branch should be restricted to a small, trusted group managing infrastructure access -- The same least privilege principles apply: roles assumed for pull/merge requests have read-only permissions, while roles for merged changes have write permissions - -Unlike the infrastructure-live-root repository, this repository focuses on managing access control rather than defining infrastructure. You might grant write access to a broader group for managing access while maintaining tight control over the main branch. Encourage collaboration between platform teams and application engineers to review and refine access control continuously. - - - ## Token Strategy ### GitHub App Installation Strategy (Recommended) -No tokens are required when using the GitHub App. + +No long-lived tokens are required when using the GitHub App. ### Machine Users Installation Strategy -Requires the following tokens be created: + +Requires that the following tokens are created: + - `PIPELINES_READ_TOKEN`: Classic PAT with read access to required repositories - `INFRA_ROOT_WRITE_TOKEN`: Fine-grained PAT with read/write access to infrastructure repositories - `ORG_REPO_ADMIN_TOKEN`: Fine-grained PAT with admin access for repository management @@ -61,7 +51,9 @@ See [Setup via Machine Users](/2.0/docs/pipelines/installation/viamachineusers.m -Requires the following tokens be created: + +Requires that the following tokens are created: + - `PIPELINES_GITLAB_TOKEN`: A GitLab access token with `api` scope - `PIPELINES_GITLAB_READ_TOKEN`: A GitLab access token with `read_repository` scope @@ -72,136 +64,14 @@ Pipelines will also require access to Gruntwork's GitHub repositories, however t -## AWS credentials - -Pipelines requires IAM roles configured with trust policies to use OpenID Connect (OIDC) with your CI/CD platform. This eliminates the need for long-lived AWS credentials stored as secrets. - -### OpenID Connect Configuration -Pipelines provisions an OpenID Connect identity provider in AWS IAM for each account, setting GitHub/GitLab as the provider and restricting the audience to AWS STS and your GitHub/GitLab organization. The Pipelines IAM role's trust policy ensures: -- Only a single repository in your GitHub/GitLab organization can assume the role for plans. -- Only a single branch can assume the role for applies/destroys. - -For more details, see the [official AWS documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html). Below is an example of a trust policy used by Pipelines. - - - - -```json -{ - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "", - "Effect": "Allow", - "Principal": { - "Federated": "arn:aws:iam::0123456789012:oidc-provider/token.actions.githubusercontent.com" - }, - "Action": "sts:AssumeRoleWithWebIdentity", - "Condition": { - "StringLike": { - "token.actions.githubusercontent.com:sub": "repo:acme/infrastructure-live-root:ref:*" - } - } - } - ] -} -``` - - - - - -```json -{ - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "", - "Effect": "Allow", - "Principal": { - "Federated": "arn:aws:iam::0123456789012:oidc-provider/gitlab.com" - }, - "Action": "sts:AssumeRoleWithWebIdentity", - "Condition": { - "StringLike": { - "gitlab.com:sub": "project_path:acme/projectprefix*:*" - } - } - } - ] -} - - -``` - - - - - -Refer to [Configuring OpenId Connect in Amazon Web Services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) for additional details. - -### Roles provisioned by DevOps Foundations - -Pipelines automatically provisions specific roles in AWS accounts to support required infrastructure operations. These roles follow the naming pattern `-pipelines-`. - -For example: -- The `root-pipelines-plan` role is used by Pipelines to plan changes in the `infrastructure-live-root` repository. - -These roles are designed to operate in a single repository and include a trust policy that only permits GitHub Actions workflows triggered by that repository to assume the role. Each role is provisioned in pairs: -- `plan` roles, with read-only permissions, are used to execute Terragrunt plans for open pull requests. -- `apply` roles, with read/write permissions, are used to apply or destroy infrastructure changes for merged pull requests or direct pushes to the deploy branch (commonly `main`). - -This separation ensures that controls like [branch protection](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches) and [CODEOWNERS files](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) can effectively govern infrastructure changes. - -#### `root-pipelines-plan` - -A read-only plan role for the `infrastructure-live-root` repository. -- This role is one of the first created when setting up DevOps Foundations. It is provisioned manually by the customer during the platform setup process. -- It exists in all accounts and handles tasks necessary for setting up AWS accounts. -- These roles are highly permissive among read-only roles as they manage foundational AWS account setups. - -#### `root-pipelines-apply` - -A read/write apply role for the `infrastructure-live-root` repository. -- Like the plan role, this is one of the initial roles created during setup. -- It is broadly permissive to support foundational account setups and bootstrapping. - -#### `access-control-pipelines-plan` - -A read-only plan role for the `infrastructure-live-access-control` repository. -- These roles are provisioned for new accounts but are not included in core accounts such as `management`, `logs`, `security`, or `shared`. -- They manage IAM roles and policies for vended accounts, facilitating infrastructure access control. - -#### `access-control-pipelines-apply` - -A read/write apply role for the `infrastructure-live-access-control` repository. -- Similar to the plan role, these roles are provisioned for vended accounts but excluded from core accounts. -- They have permissions to manage IAM roles and policies for the accounts where they are provisioned. - -#### `delegated-pipelines-plan` - -A read-only plan role for delegated repositories, used by Pipelines Enterprise customers. - -- These roles are pre-configured to have minimal permissions, primarily for managing OpenTofu/Terraform state. -- A pull request will be opened in `infrastructure-live-access-control` during provisioning include documentation for adding additional permissions if necessary. -- Users should ensure that only the necessary _read-only_ permissions are granted for the specific delegated repository. - - -:::note - -These roles have almost no permissions by default. They are pre-configured by default to only have access to OpenTofu/Terraform state, and the pull requests that are opened to provision them include documentation on how to add additional permissions as appropriate. +## Cloud Authentication -It is up to the user provisioning these roles to ensure that this role has only the necessary _read-only_ permissions required to manage infrastructure changes relevant to the delegated repository. +Pipelines supports multiple different authentication methods for different cloud providers, and will use the appropriate method based on the context of the pull request or push to the deploy branch. -::: +To learn more about how Pipelines authenticates to the cloud, read the [Cloud Authentication](/2.0/docs/pipelines/concepts/cloud-auth/index.md) documentation. -#### `delegated-pipelines-apply` +## Trust boundaries -A read/write apply role for delegated repositories. -- Similar to the plan role, these roles are pre-configured with minimal permissions and are intended for managing OpenTofu/Terraform state. -- A pull request will be opened in `infrastructure-live-access-control` during provisioning include documentation for adding additional permissions if necessary. -- Users must ensure that the role has only the necessary _read/write_ permissions required for the delegated repository. +A critical aspect of Pipelines' architecture is understanding its trust model. Since Pipelines runs within a CI/CD system, it has privileged access to your infrastructure resources (e.g. AWS accounts, VPCs, EC2 instances, etc.). -:::note -The `delegated-pipelines-plan` and `delegated-pipelines-apply` roles are automatically provisioned for new delegated accounts. Enterprise customers will see pull requests created in the `infrastructure-live-access-control` repository to vend these roles with proper configurations. -::: +Anyone with the ability to edit code in the `main` branch of your repositories inherently has the authority to make corresponding changes in your infrastructure resources. For this reason, it is important to follow the [Repository Access](/2.0/docs/pipelines/installation/viamachineusers#repository-access) guidelines to ensure appropriate access control. diff --git a/docs/2.0/docs/pipelines/architecture/usage-data.md b/docs/2.0/docs/pipelines/architecture/usage-data.md index 7bc78674b6..90971ad0ad 100644 --- a/docs/2.0/docs/pipelines/architecture/usage-data.md +++ b/docs/2.0/docs/pipelines/architecture/usage-data.md @@ -1,3 +1,3 @@ # Usage Data -Gruntwork Pipelines collects usage data to gain insights into how customers interact with the product. This data includes information such as the duration of pipeline runs, the number of jobs executed, the customer name, and any application errors encountered during execution. \ No newline at end of file +Gruntwork Pipelines collects usage data to gain insights into how customers interact with the product. This data includes information such as the duration of pipeline runs, the number of jobs executed, the customer name, and any application errors encountered during execution. diff --git a/sidebars/docs.js b/sidebars/docs.js index c17033d4af..0de3c67e1f 100644 --- a/sidebars/docs.js +++ b/sidebars/docs.js @@ -174,9 +174,9 @@ const sidebar = [ }, items: [ { - label: "Components", + label: "Execution flow", type: "doc", - id: "2.0/docs/pipelines/architecture/components", + id: "2.0/docs/pipelines/architecture/execution-flow", }, { label: "Actions", @@ -480,6 +480,11 @@ const sidebar = [ type: "doc", id: "2.0/docs/accountfactory/architecture/network-topology", }, + { + label: "Repository Topology", + type: "doc", + id: "2.0/docs/accountfactory/architecture/repository-topology", + }, ], }, { diff --git a/src/redirects.js b/src/redirects.js index c22eaac168..f2b86849a2 100644 --- a/src/redirects.js +++ b/src/redirects.js @@ -30,11 +30,11 @@ export const redirects = [ from: "/developer-portal/link-github-id" }, { - to: "/2.0/docs/pipelines/architecture/components", + to: "/2.0/docs/pipelines/architecture/execution-flow", from: "/pipelines/architecture/index" }, { - to: "/2.0/docs/pipelines/architecture/components", + to: "/2.0/docs/pipelines/architecture/execution-flow", from: "/pipelines/architecture" }, { From a5c3da3b4fe0d713472df98426a55891f304a7c0 Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Tue, 7 Oct 2025 14:22:17 -0400 Subject: [PATCH 08/37] docs: Breaking down installation guide to avoid assuming AWS (#2759) * docs: Nested AWS into `Authenticating to the Cloud` * Fix build issues. * fix: Addressing markdown lints * fix: Reworked components page into execution flow page * docs: Migrating out AWS specific security controls for Pipelines to Account Factory * docs: Updating `ci-workflows.md` with call outs for Account Factory stuff * docs: Addressing PR feedback * fix: Adding abbreviation to dictionary * docs: Nested AWS into `Authenticating to the Cloud` * Fix build issues. * docs: Moving AWS Landing Zone prereq to Account Factory docs: Adjusting redirects for moving AWS Landing Zone to Account Factory * docs: Restructured initial setup to avoid assuming AWS docs: Splitting up different cloud providers wip: Progress on stacks * feat: Set up full Azure installation guide * fix: Fixing the checkbox ids * fix: Fixing up some paper cuts in the top-level setup & installation docs * fix: Fixing path to new prerequisites for Account Factory * chore: Making sure this is pinned to `v4` before I forget * fix: Cleaning up Azure guide * docs: Adding AWS docs * fix: Cleaning up language for sidebar on GitHub * docs: WIP progress on adding Pipelines to an existing repo * docs: More troubleshooting guidance * docs: Adjusting language in `Setup & Installation` * docs: Adjusting logic for repo setup * fix: Cutting down on steps for adding a new repo * feat: Adding instructions for additional accounts and subscriptions * fix: Preventing ToC from breaking by using h3 tags * fix: Adding existing guide docs * fix: Redoing GitLab install instructions for parity with GitHub * fix: Removing unnecessary GitLab content * docs: Adding existing repository instructions for GitLab * docs: Adding note for self-hosted GitLab instance * fix: Fixing URL for pipelines machine users install * fix: Satisfying spellcheck * fix: Fixing auth links * fix: Addressing easy to address PR feedback --------- Co-authored-by: Josh Padnick --- custom-dictionary.txt | 4 + .../architecture/security-controls.md | 2 +- .../installation/addingnewrepo.md | 8 +- .../docs/accountfactory/installation/index.md | 11 +- .../prerequisites/awslandingzone.md | 10 +- .../docs/overview/getting-started/index.md | 2 +- .../pipelines/architecture/execution-flow.md | 2 +- docs/2.0/docs/pipelines/architecture/index.md | 2 +- .../architecture/security-controls.md | 2 +- .../pipelines/concepts/cloud-auth/index.md | 6 +- .../pipelines/configuration/driftdetection.md | 2 +- .../docs/pipelines/configuration/settings.md | 6 +- .../pipelines/guides/setup-delegated-repo.mdx | 2 +- .../installation/addingexistinggitlabrepo.mdx | 891 ++++++++++++++++ .../installation/addingexistingrepo.md | 553 ---------- .../installation/addingexistingrepo.mdx | 879 ++++++++++++++++ .../installation/addinggitlabrepo.md | 192 ---- .../installation/addinggitlabrepo.mdx | 392 +++++++ .../installation/addingnewgitlabrepo.md | 4 +- .../pipelines/installation/addingnewrepo.mdx | 969 ++++++++++++++++++ .../pipelines/installation/authoverview.md | 27 +- ...ch-protection.md => branch-protection.mdx} | 45 +- .../installation/gitlab-branch-protection.md | 27 + .../docs/pipelines/installation/overview.md | 20 +- .../pipelines/installation/viagithubapp.md | 32 +- ...viamachineusers.md => viamachineusers.mdx} | 65 +- sidebars/docs.js | 66 +- src/redirects.js | 12 +- 28 files changed, 3332 insertions(+), 901 deletions(-) rename docs/2.0/docs/{pipelines => accountfactory}/installation/addingnewrepo.md (86%) rename docs/2.0/docs/{pipelines/installation => accountfactory}/prerequisites/awslandingzone.md (97%) create mode 100644 docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx delete mode 100644 docs/2.0/docs/pipelines/installation/addingexistingrepo.md create mode 100644 docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx delete mode 100644 docs/2.0/docs/pipelines/installation/addinggitlabrepo.md create mode 100644 docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx create mode 100644 docs/2.0/docs/pipelines/installation/addingnewrepo.mdx rename docs/2.0/docs/pipelines/installation/{branch-protection.md => branch-protection.mdx} (58%) create mode 100644 docs/2.0/docs/pipelines/installation/gitlab-branch-protection.md rename docs/2.0/docs/pipelines/installation/{viamachineusers.md => viamachineusers.mdx} (88%) diff --git a/custom-dictionary.txt b/custom-dictionary.txt index 3ccf201a08..7911f890ff 100644 --- a/custom-dictionary.txt +++ b/custom-dictionary.txt @@ -62,3 +62,7 @@ hcledit self-hosting infrachanges Entra +GLMU +myprodsa +azuread +mysa diff --git a/docs/2.0/docs/accountfactory/architecture/security-controls.md b/docs/2.0/docs/accountfactory/architecture/security-controls.md index d41576a336..6e584f5c45 100644 --- a/docs/2.0/docs/accountfactory/architecture/security-controls.md +++ b/docs/2.0/docs/accountfactory/architecture/security-controls.md @@ -79,7 +79,7 @@ Requires the following tokens be created: - `INFRA_ROOT_WRITE_TOKEN`: Fine-grained PAT with read/write access to infrastructure repositories - `ORG_REPO_ADMIN_TOKEN`: Fine-grained PAT with admin access for repository management -See [Setup via Machine Users](/2.0/docs/pipelines/installation/viamachineusers.md) for more details. +See [Setup via Machine Users](/2.0/docs/pipelines/installation/viamachineusers) for more details.
    diff --git a/docs/2.0/docs/pipelines/installation/addingnewrepo.md b/docs/2.0/docs/accountfactory/installation/addingnewrepo.md similarity index 86% rename from docs/2.0/docs/pipelines/installation/addingnewrepo.md rename to docs/2.0/docs/accountfactory/installation/addingnewrepo.md index 9001969540..bb248b70cf 100644 --- a/docs/2.0/docs/pipelines/installation/addingnewrepo.md +++ b/docs/2.0/docs/accountfactory/installation/addingnewrepo.md @@ -1,6 +1,6 @@ -# Initial Setup +# Adding Account Factory to a new repository -To configure Gruntwork Pipelines in a new GitHub repository, complete the following steps: +To configure Gruntwork Account Factory in a new GitHub repository, the following steps are required (and will be explained in detail below): 1. Create your `infrastructure-live-root` repository using Gruntwork's GitHub template. 2. Configure the Gruntwork.io GitHub App to authorize your `infrastructure-live-root` repository, or ensure that the appropriate machine user tokens are set up as repository or organization secrets. @@ -23,7 +23,7 @@ Navigate to the template repository and select **Use this template** -> **Create Use the Gruntwork.io GitHub App to [add the repository as an Infra Root repository](/2.0/docs/pipelines/installation/viagithubapp#configuration). -If using the [machine user model](/2.0/docs/pipelines/installation/viamachineusers.md), ensure the `INFRA_ROOT_WRITE_TOKEN` (and `ORG_REPO_ADMIN_TOKEN` for enterprise customers) is added to the repository as a secret or configured as an organization secret. +If using the [machine user model](/2.0/docs/pipelines/installation/viamachineusers), ensure the `INFRA_ROOT_WRITE_TOKEN` (and `ORG_REPO_ADMIN_TOKEN` for enterprise customers) is added to the repository as a secret or configured as an organization secret. ## Updating the Bootstrap Workflow @@ -47,5 +47,5 @@ Each of your repositories will contain a Bootstrap Pull Request. Follow the inst :::info -The bootstrapping pull requests include pre-configured files, such as a `mise.toml` file that specifies versions of OpenTofu and Terragrunt. Ensure you review and update these configurations to align with your organization's requirements. +The bootstrapping pull requests include pre-configured files, such as a `.mise.toml` file that specifies versions of OpenTofu and Terragrunt. Ensure you review and update these configurations to align with your organization's requirements. ::: diff --git a/docs/2.0/docs/accountfactory/installation/index.md b/docs/2.0/docs/accountfactory/installation/index.md index 11a240e3b7..2d71cba52c 100644 --- a/docs/2.0/docs/accountfactory/installation/index.md +++ b/docs/2.0/docs/accountfactory/installation/index.md @@ -2,16 +2,16 @@ ## Overview -Account Factory is automatically integrated into [new Pipelines root repositories](/2.0/docs/pipelines/installation/addingnewrepo) during the bootstrapping process. +Account Factory is automatically integrated into [new Pipelines root repositories](/2.0/docs/accountfactory/installation/addingnewrepo) during the bootstrapping process. By default, Account Factory includes the following components: - 📋 An HTML form for generating workflow inputs: `.github/workflows/account-factory-inputs.html` - + - 🏭 A workflow for generating new requests: `.github/workflows/account-factory.yml` - + - 🗃️ A root directory for tracking account requests: `_new-account-requests` - + - ⚙️ A YAML file for tracking account names and IDs: `accounts.yml` For detailed instructions on using these components, refer to the [Vending a New AWS Account Guide](/2.0/docs/accountfactory/guides/vend-aws-account). @@ -19,6 +19,3 @@ For detailed instructions on using these components, refer to the [Vending a New ## Configuring account factory Account Factory is fully operational for vending new accounts without requiring any configuration changes. However, a [comprehensive reference for all configuration options is available here](/2.0/reference/accountfactory/configurations), allowing you to customize values and templates for generating Infrastructure as Code (IaC) for new accounts. - - - diff --git a/docs/2.0/docs/pipelines/installation/prerequisites/awslandingzone.md b/docs/2.0/docs/accountfactory/prerequisites/awslandingzone.md similarity index 97% rename from docs/2.0/docs/pipelines/installation/prerequisites/awslandingzone.md rename to docs/2.0/docs/accountfactory/prerequisites/awslandingzone.md index 397d5ba301..073482cd19 100644 --- a/docs/2.0/docs/pipelines/installation/prerequisites/awslandingzone.md +++ b/docs/2.0/docs/accountfactory/prerequisites/awslandingzone.md @@ -1,11 +1,10 @@ import CustomizableValue from '/src/components/CustomizableValue'; - # Landing Zone ## Overview -The Landing Zone component establishes an initial best-practice AWS multi-account setup. +The Landing Zone component establishes an initial best-practice AWS multi-account setup for use with Gruntwork Account Factory. ## Extending AWS Control Tower @@ -242,16 +241,15 @@ Complete the following steps to prepare for Gruntwork Account Factory: 3. Switch to the `Users` tab, select your management user from the list and click **Next** - 4. Select `AWSAdministratorAccess` from the list of Permission Sets, then click **Next** + 4. Select `AWSAdministratorAccess` from the list of Permission Sets, then click **Next** - 5. Click `Submit` to finish assigning access to your user + 5. Click `Submit` to finish assigning access to your user ## Next steps Now that Control Tower is configured, consider these next steps: + - [Set up IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-choose-identity-source.html) for access control. - [Apply required controls or SCPs](https://docs.aws.amazon.com/controltower/latest/userguide/controls.html). - [Install Gruntwork Pipelines](/2.0/docs/pipelines/installation/viagithubapp). - [Set up Gruntwork Account Factory](/2.0/docs/accountfactory/installation). - - diff --git a/docs/2.0/docs/overview/getting-started/index.md b/docs/2.0/docs/overview/getting-started/index.md index 4f3d5dca36..4d2a3fb34e 100644 --- a/docs/2.0/docs/overview/getting-started/index.md +++ b/docs/2.0/docs/overview/getting-started/index.md @@ -7,7 +7,7 @@ Create your Gruntwork account and invite your team members to access Gruntwork r -### Step 2: [Set up a Landing Zone](/2.0/docs/pipelines/installation/prerequisites/awslandingzone) +### Step 2: [Set up a Landing Zone](/2.0/docs/accountfactory/prerequisites/awslandingzone) Follow Gruntwork's AWS Landing Zone walkthrough to implement a best-practice multi-account setup, ready for use with DevOps Foundations. diff --git a/docs/2.0/docs/pipelines/architecture/execution-flow.md b/docs/2.0/docs/pipelines/architecture/execution-flow.md index b7cbbbc47b..dbaa9f1326 100644 --- a/docs/2.0/docs/pipelines/architecture/execution-flow.md +++ b/docs/2.0/docs/pipelines/architecture/execution-flow.md @@ -10,6 +10,6 @@ The orchestrator analyzes each infrastructure change in a pull request or git co ## Executor -The executor receives as inputs a pipeline action (e.g. `terragrunt plan`) and a specific unit of infrastructure that has been changed (e.g. `/path/to/changed-unit/terragrunt.hcl`) and executes the specified action on the specified unit. +The executor receives as inputs a pipeline action (e.g. `terragrunt plan`) and a specific unit of infrastructure that has been changed (e.g. `/path/to/changed-unit/terragrunt.hcl`) and executes the specified action on the specified unit. For example, when responding to a `ModuleUpdated` event for `/some/unit/terragrunt.hcl`, the executor might execute a `terragrunt apply` on `/some/unit/terragrunt.hcl`. Or when responding to `AccountsAdded` events on merge, the executor may create a follow-up pull request in the `infrastructure-live-root` repository to include additional IaC code for baselining the newly added accounts. diff --git a/docs/2.0/docs/pipelines/architecture/index.md b/docs/2.0/docs/pipelines/architecture/index.md index e75a7905b7..da3951ad39 100644 --- a/docs/2.0/docs/pipelines/architecture/index.md +++ b/docs/2.0/docs/pipelines/architecture/index.md @@ -8,7 +8,7 @@ Outside of the main binary, Pipelines has several other components that work tog By design, customers run the binary as part of their CI/CD pipelines (e.g. GitHub Actions, GitLab CI, etc.). As such, Gruntwork provides out-of-the-box CI/CD configurations for supported platforms when customers sign up for Gruntwork Pipelines. -We likewise provide CI/CD configurations for [Gruntwork Account Factory](https://docs.gruntwork.io/account-factory/overview). +We likewise provide CI/CD configurations for [Gruntwork Account Factory](https://docs.gruntwork.io/account-factory/overview). When using Gruntwork Pipelines without Gruntwork Account Factory, customers are responsible for configuring their repositories to use the appropriate CI/CD configuration for that platform (see [Adding Pipelines to an Existing Repository](/2.0/docs/pipelines/installation/addingexistingrepo) for more information). This code is typically fairly minimal, and the majority of the work is done by reusable workflows made available by Gruntwork, and the binary itself. diff --git a/docs/2.0/docs/pipelines/architecture/security-controls.md b/docs/2.0/docs/pipelines/architecture/security-controls.md index 6b88e281b8..1c70edec13 100644 --- a/docs/2.0/docs/pipelines/architecture/security-controls.md +++ b/docs/2.0/docs/pipelines/architecture/security-controls.md @@ -47,7 +47,7 @@ Requires that the following tokens are created: - `INFRA_ROOT_WRITE_TOKEN`: Fine-grained PAT with read/write access to infrastructure repositories - `ORG_REPO_ADMIN_TOKEN`: Fine-grained PAT with admin access for repository management -See [Setup via Machine Users](/2.0/docs/pipelines/installation/viamachineusers.md) for more details. +See [Setup via Machine Users](/2.0/docs/pipelines/installation/viamachineusers) for more details. diff --git a/docs/2.0/docs/pipelines/concepts/cloud-auth/index.md b/docs/2.0/docs/pipelines/concepts/cloud-auth/index.md index b016790dc5..aa91b06be3 100644 --- a/docs/2.0/docs/pipelines/concepts/cloud-auth/index.md +++ b/docs/2.0/docs/pipelines/concepts/cloud-auth/index.md @@ -17,9 +17,9 @@ Cloud authentication in Pipelines is built on the principle of least privilege a Currently, Pipelines supports authentication to the following cloud providers: -- [AWS](./aws.mdx) - AWS authentication using OIDC -- [Azure](./azure.md) - Azure authentication using OIDC -- [Custom](./custom.md) - Custom authentication you can implement yourself +- [AWS](/2.0/docs/pipelines/concepts/cloud-auth/aws) - AWS authentication using OIDC +- [Azure](/2.0/docs/pipelines/concepts/cloud-auth/azure) - Azure authentication using OIDC +- [Custom](/2.0/docs/pipelines/concepts/cloud-auth/custom) - Custom authentication you can implement yourself ## Security Best Practices diff --git a/docs/2.0/docs/pipelines/configuration/driftdetection.md b/docs/2.0/docs/pipelines/configuration/driftdetection.md index f80f52b702..043ccb414b 100644 --- a/docs/2.0/docs/pipelines/configuration/driftdetection.md +++ b/docs/2.0/docs/pipelines/configuration/driftdetection.md @@ -2,4 +2,4 @@ If you are a Pipelines Enterprise customer using GitHub or GitLab and used the infrastructure-live-root repository template to install Pipelines, Drift Detection is already included and available as a workflow in your repository. -For installations not based on the template, follow the [Installing Drift Detection Guide](/2.0/docs/pipelines/guides/installing-drift-detection.md) to enable Drift Detection. +For standalone installations that did not use the `infrastructure-live-root` repository template, follow the [Installing Drift Detection Guide](/2.0/docs/pipelines/guides/installing-drift-detection.md) to enable Drift Detection. diff --git a/docs/2.0/docs/pipelines/configuration/settings.md b/docs/2.0/docs/pipelines/configuration/settings.md index 6f6627980f..9671ed755d 100644 --- a/docs/2.0/docs/pipelines/configuration/settings.md +++ b/docs/2.0/docs/pipelines/configuration/settings.md @@ -1,11 +1,9 @@ # Pipelines Configuration -[Full Pipelines Configuration Reference](/docs/2.0/reference/pipelines/configurations.md) - import PipelinesConfig from '/docs/2.0/reference/pipelines/language_auth_partial.mdx' -## Terraform & OpenTofu +## OpenTofu & Terraform -You can specify whether to invoke Terraform or OpenTofu in your Pipeline by configuring the [tf-binary](/2.0/reference/pipelines/configurations#tf-binary) setting. Define the versions of `tf-binary` and Terragrunt in the [mise.toml](/2.0/reference/pipelines/configurations#example-mise-configuration) file within your repository. +You can specify whether to invoke OpenTofu or Terraform with Pipelines by configuring the [tf-binary](/2.0/reference/pipelines/configurations#tf-binary) setting. Define the versions of Terragrunt and OpenTofu/Terraform used by Pipelines in the [mise.toml](/2.0/reference/pipelines/configurations#example-mise-configuration) file within your repository. diff --git a/docs/2.0/docs/pipelines/guides/setup-delegated-repo.mdx b/docs/2.0/docs/pipelines/guides/setup-delegated-repo.mdx index e68dd8fc26..1f25ee7a27 100644 --- a/docs/2.0/docs/pipelines/guides/setup-delegated-repo.mdx +++ b/docs/2.0/docs/pipelines/guides/setup-delegated-repo.mdx @@ -19,7 +19,7 @@ Delegating infrastructure management might be necessary for reasons such as: For example, a repository with application code may need to build and push a container image to AWS ECR before deploying it to a Kubernetes cluster. -The following guide assumes you have completed the [Pipelines Setup & Installation](/2.0/docs/pipelines/installation/prerequisites/awslandingzone.md). +The following guide assumes you have completed the [Pipelines Setup & Installation](/2.0/docs/accountfactory/prerequisites/awslandingzone). ## Step 1 - Verify the delegated account setup diff --git a/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx b/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx new file mode 100644 index 0000000000..5ac66ca6dd --- /dev/null +++ b/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx @@ -0,0 +1,891 @@ +# Bootstrap Pipelines in an Existing GitLab Project + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import PersistentCheckbox from '/src/components/PersistentCheckbox'; +import CustomizableValue from '/src/components/CustomizableValue'; + +This guide provides comprehensive instructions for integrating [Gruntwork Pipelines](https://gruntwork.io/products/pipelines/) into an existing GitLab project with Infrastructure as Code (IaC). This is designed for Gruntwork customers who want to add Pipelines to their current infrastructure projects for streamlined CI/CD management. + +To configure Gruntwork Pipelines in an existing GitLab project, complete the following steps (which are explained in detail below): + +1. **(If using a self-hosted GitLab instance) Ensure OIDC configuration and JWKS are publicly accessible.** +2. **Plan your Pipelines setup** by identifying all environments and cloud accounts/subscriptions you need to manage. +3. **Bootstrap core infrastructure** in accounts/subscriptions that don't already have the required OIDC and state management resources. +4. **Configure SCM access** using [machine users](/2.0/docs/pipelines/installation/viamachineusers) with appropriate Personal Access Tokens (PATs). +5. **Create `.gruntwork` HCL configurations** to tell Pipelines how to authenticate and organize your environments. +6. **Create `.gitlab-ci.yml`** to configure your GitLab CI/CD pipeline. +7. **Commit and push** your changes to activate Pipelines. + +## Ensure OIDC configuration and JWKS are publicly accessible + +This step only applies if you are using a self-hosted GitLab instance that is not accessible from the public internet. If you are using GitLab.com or a self-hosted instance that is publicly accessible, you can skip this step. + +1. [Follow GitLab's instructions](https://docs.gitlab.com/ci/cloud_services/aws/#configure-a-non-public-gitlab-instance) for hosting your OIDC configuration and JWKS in a public location (e.g. S3 Bucket). This is necessary for both Gruntwork and the AWS OIDC provider to access the GitLab OIDC configuration and JWKS when authenticating JWT's generated by your custom instance. +2. Note the (stored as `ci_id_tokens_issuer_url` in your `gitlab.rb` file per GitLab's instructions) generated above for reuse in the next steps. + +:::note Progress Checklist + + + +::: + +## Prerequisites + +Before starting, ensure you have: + +- **An active Gruntwork subscription** with Pipelines access. Verify by checking the [Gruntwork Developer Portal](https://app.gruntwork.io/account) and confirming access to "pipelines" repositories in your GitHub team. +- **Cloud provider credentials** with permissions to create OIDC providers and IAM roles in accounts where Pipelines will manage infrastructure. +- **Git installed** locally for cloning and managing your project. +- **Existing IaC project** with Terragrunt configurations you want to manage with Pipelines (if you are using OpenTofu/Terraform, and want to start using Terragrunt, read the [Quickstart Guide](https://terragrunt.gruntwork.io/docs/getting-started/quick-start)). + +## Planning Your Pipelines Setup + +Before implementing Pipelines, it's crucial to plan your setup by identifying all the environments and cloud resources you need to manage. + +### Identify Your Environments + +Review your existing project structure and identify: + +1. **All environments** you want to manage with Pipelines (e.g., `dev`, `staging`, `prod`) +2. **Cloud accounts/subscriptions** associated with each environment +3. **Directory paths** in your project that contain Terragrunt units for each environment +4. **Existing OIDC resources** that may already be provisioned in your accounts + +:::note Progress Checklist + + + + + + +::: + +### Determine Required OIDC Roles + +For each AWS Account / Azure Subscription you want to manage, you might already have some or all of the following resources provisioned. + + + + +**Required AWS Resources:** + +- An OIDC provider for GitLab +- An IAM role for Pipelines to assume when running Terragrunt plan commands +- An IAM role for Pipelines to assume when running Terragrunt apply commands + + + + +**Required Azure Resources:** + +- Entra ID Application for plans with Federated Identity Credential +- Entra ID Application for applies with Federated Identity Credential +- Service Principals with appropriate role assignments +- Storage Account and Container for Terragrunt state storage (if not already existing) + + + + +:::note Progress Checklist + + + + +::: + +## Configuring SCM Access + +Pipelines needs the ability to interact with GitLab to fetch resources (e.g. IaC code, reusable CI/CD code and the Pipelines binary itself). + +To create machine users for GitLab access, follow our [machine users guide](/2.0/docs/pipelines/installation/viamachineusers) to set up the appropriate Personal Access Tokens (PATs) with the required permissions. + +:::note Progress Checklist + + + +::: + +## Bootstrapping Cloud Infrastructure + +If your AWS accounts / Azure subscriptions don't already have all the required OIDC and state management resources, you'll need to bootstrap them. This section provides the infrastructure code needed to set up these resources. + +:::tip + +If you already have all the resources listed, you can skip this section. + +If you have some of them provisioned, but not all, you can decide to either destroy the resources you already have provisioned and recreate them or import them into state. If you are not sure, please contact [Gruntwork support](/support). + +::: + +### Prepare Your Project + +Clone your project to your local machine using [Git](https://docs.gitlab.com/user/project/repository/index.html#clone-a-repository) if you haven't already. + +:::tip + +If you don't have Git installed, you can install it by following the official guide for [Git installation](https://git-scm.com/downloads). + +::: + +For example: + +```bash +git clone git@gitlab.com:acme/infrastructure-live.git +cd infrastructure-live +``` + +:::note Progress Checklist + + + + +::: + +To bootstrap your project, we'll use Boilerplate to scaffold it with the necessary IaC code to provision the infrastructure necessary for Pipelines to function. + +The easiest way to install Boilerplate is to use `mise` to install it. + +:::tip + +If you don't have `mise` installed, you can install it by following the official guide for [mise installation](https://mise.jdx.dev/getting-started.html). + +::: + +```bash +mise use -g boilerplate@latest +``` + +:::tip + +If you'd rather install a specific version of Boilerplate, you can use the `ls-remote` command to list the available versions. + +```bash +mise ls-remote boilerplate +``` + +::: + +:::note Progress Checklist + + + +::: + +If you don't already have Terragrunt and OpenTofu installed locally, you can install them using `mise`: + +```bash +mise use -g terragrunt@latest opentofu@latest +``` + +:::note Progress Checklist + + + +::: + +### Cloud-specific bootstrap instructions + + + + +The resources you need provisioned in AWS to start managing resources with Pipelines are: + +1. An OpenID Connect (OIDC) provider +2. An IAM role for Pipelines to assume when running Terragrunt plan commands +3. An IAM role for Pipelines to assume when running Terragrunt apply commands + +For every account you want Pipelines to manage infrastructure in. + +:::tip Don't Panic! + +This may seem like a lot to set up, but the content you need to add to your project is minimal. The majority of the work will be pulled from a reusable catalog that you'll reference in your project. + +If you want to peruse the catalog that's used in the bootstrap process, you can take a look at the [terragrunt-scale-catalog](https://github.com/gruntwork-io/terragrunt-scale-catalog) repository. + +::: + +The process that we'll follow to get these resources ready for Pipelines is: + +1. Use Boilerplate to scaffold bootstrap configurations in your project for each AWS account +2. Use Terragrunt to provision these resources in your AWS accounts +3. (Optionally) Bootstrap additional AWS accounts until all your AWS accounts are ready for Pipelines + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Bootstrap Your Project for AWS

    + +First, confirm that you have a `root.hcl` file in the root of your project that looks something like this: + +```hcl title="root.hcl" +locals { + account_hcl = read_terragrunt_config(find_in_parent_folders("account.hcl")) + state_bucket_name = local.account_hcl.locals.state_bucket_name + + region_hcl = read_terragrunt_config(find_in_parent_folders("region.hcl")) + aws_region = local.region_hcl.locals.aws_region +} + +remote_state { + backend = "s3" + generate = { + path = "backend.tf" + if_exists = "overwrite" + } + config = { + bucket = local.state_bucket_name + region = local.aws_region + key = "${path_relative_to_include()}/tofu.tfstate" + encrypt = true + use_lockfile = true + } +} + +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Provision AWS Bootstrap Resources

    + +Once you've scaffolded out the accounts you want to bootstrap, you can use Terragrunt to provision the resources in each of these accounts. + +:::tip + +Make sure that you authenticate to each AWS account you are bootstrapping using AWS credentials for that account before you attempt to provision resources in it. + +You can follow the documentation [here](https://search.opentofu.org/provider/hashicorp/aws/latest#authentication-and-configuration) to authenticate with the AWS provider. You are advised to choose an authentication method that doesn't require any hard-coded credentials, like assuming an IAM role. + +::: + +For each account you want to bootstrap, you'll need to run the following commands: + +First, make sure that everything is set up correctly by running a plan in the `bootstrap` directory in `name-of-account/_global` where `name-of-account` is the name of the AWS account you want to bootstrap. + +```bash title="name-of-account/_global/bootstrap" +terragrunt run --all --non-interactive --provider-cache plan +``` + +:::tip + +We're using the `--provider-cache` flag here to ensure that we don't re-download the AWS provider on every run by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). + +::: + +Next, apply the changes to your account. + +```bash title="name-of-account/_global/bootstrap" +terragrunt run --all --non-interactive --provider-cache apply +``` + +:::note Progress Checklist + + + + +::: + + + + +The resources you need provisioned in Azure to start managing resources with Pipelines are: + +1. An Azure Resource Group for OpenTofu state resources + 1. An Azure Storage Account in that resource group for OpenTofu state storage + 1. An Azure Storage Container in that storage account for OpenTofu state storage +2. An Entra ID Application to use for plans + 1. A Flexible Federated Identity Credential for the application to authenticate with your project on any branch + 2. A Service Principal for the application to be used in role assignments + 1. A role assignment for the service principal to access the Azure subscription + 2. A role assignment for the service principal to access the Azure Storage Account +3. An Entra ID Application to use for applies + 1. A Federated Identity Credential for the application to authenticate with your project on the deploy branch + 2. A Service Principal for the application to be used in role assignments + 1. A role assignment for the service principal to access the Azure subscription + +:::tip Don't Panic! + +This may seem like a lot to set up, but the content you need to add to your project is minimal. The majority of the work will be pulled from a reusable catalog that you'll reference in your project. + +If you want to peruse the catalog that's used in the bootstrap process, you can take a look at the [terragrunt-scale-catalog](https://github.com/gruntwork-io/terragrunt-scale-catalog) repository. + +::: + +The process that we'll follow to get these resources ready for Pipelines is: + +1. Use Boilerplate to scaffold bootstrap configurations in your project for each Azure subscription +2. Use Terragrunt to provision these resources in your Azure subscription +3. Finalizing Terragrunt configurations using the bootstrap resources we just provisioned +4. Pull the bootstrap resources into state, now that we have configured a remote state backend +5. (Optionally) Bootstrap additional Azure subscriptions until all your Azure subscriptions are ready for Pipelines + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Bootstrap Your Project for Azure

    + +For each Azure subscription that needs bootstrapping, we'll use Boilerplate to scaffold the necessary content. Run this command from the root of your project for each subscription: + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/gitlab/subscription?ref=v1.0.0' \ + --output-folder . +``` + +:::tip + +You'll need to run this boilerplate command once for each Azure subscription you want to manage with Pipelines. Boilerplate will prompt you for subscription-specific values each time. + +::: + +:::tip + +You can reply `y` to all the prompts to include dependencies, and accept defaults unless you want to customize something. + +Alternatively, you could run Boilerplate non-interactively by passing the `--non-interactive` flag. You'll need to supply the relevant values for required variables in that case. + +e.g. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/gitlab/subscription?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=dev' \ + --var 'GitLabGroupName=acme' \ + --var 'GitLabRepoName=infrastructure-live' \ + --var 'GitLabInstanceURL=https://gitlab.com' \ + --var 'SubscriptionName=dev' \ + --var 'AzureTenantID=00000000-0000-0000-0000-000000000000' \ + --var 'AzureSubscriptionID=11111111-1111-1111-1111-111111111111' \ + --var 'AzureLocation=East US' \ + --var 'StateResourceGroupName=pipelines-rg' \ + --var 'StateStorageAccountName=mysa' \ + --var 'StateStorageContainerName=tfstate' \ + --non-interactive +``` + +You can also choose to store these values in a YAML file and pass it to Boilerplate using the `--var-file` flag. + +```yaml title="vars.yml" +AccountName: dev +GitLabGroupName: acme +GitLabRepoName: infrastructure-live +GitLabInstanceURL: https://gitlab.com +SubscriptionName: dev +AzureTenantID: 00000000-0000-0000-0000-000000000000 +AzureSubscriptionID: 11111111-1111-1111-1111-111111111111 +AzureLocation: East US +StateResourceGroupName: pipelines-rg +StateStorageAccountName: my-storage-account +StateStorageContainerName: tfstate +``` + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/gitlab/subscription?ref=v1.0.0' \ + --output-folder . \ + --var-file vars.yml \ + --non-interactive +``` + +::: + +:::note Progress Checklist + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Provision Azure Bootstrap Resources

    + +Once you've scaffolded out the subscriptions you want to bootstrap, you can use Terragrunt to provision the resources in your Azure subscription. + +If you haven't already, you'll want to authenticate to Azure using the `az` CLI. + +```bash +az login +``` + +:::note Progress Checklist + + + +::: + + +To dynamically configure the Azure provider with a given tenant ID and subscription ID, ensure that you are exporting the following environment variables if you haven't the values via the `az` CLI: + +- `ARM_TENANT_ID` +- `ARM_SUBSCRIPTION_ID` + +For example: + +```bash +export ARM_TENANT_ID="00000000-0000-0000-0000-000000000000" +export ARM_SUBSCRIPTION_ID="11111111-1111-1111-1111-111111111111" +``` + +:::note Progress Checklist + + + +::: + +First, make sure that everything is set up correctly by running a plan in the subscription directory. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache plan +``` + +:::tip + +We're using the `--provider-cache` flag here to ensure that we don't re-download the Azure provider on every run to speed up the process by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). + +::: + +:::note Progress Checklist + + + +::: + +Next, apply the changes to your subscription. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache --no-stack-generate apply +``` + +:::tip + +We're adding the `--no-stack-generate` flag here, as Terragrunt will already have the requisite stack configurations generated, and we don't want to accidentally overwrite any configurations while we have state stored locally before we pull them into remote state. + +::: + +:::note Progress Checklist + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Finalizing Terragrunt configurations

    + +Once you've provisioned the resources in your Azure subscription, you can finalize the Terragrunt configurations using the bootstrap resources we just provisioned. + +First, edit the `root.hcl` file in the root of your project to leverage the storage account we just provisioned. + +If your `root.hcl` file doesn't already have a remote state backend configuration, you'll need to add one that looks like this: + +```hcl title="root.hcl" +locals { + sub_hcl = read_terragrunt_config(find_in_parent_folders("sub.hcl")) + + state_resource_group_name = local.sub_hcl.locals.state_resource_group_name + state_storage_account_name = local.sub_hcl.locals.state_storage_account_name + state_storage_container_name = local.sub_hcl.locals.state_storage_container_name +} + +remote_state { + backend = "azurerm" + generate = { + path = "backend.tf" + if_exists = "overwrite" + } + config = { + resource_group_name = local.state_resource_group_name + storage_account_name = local.state_storage_account_name + container_name = local.state_storage_container_name + key = "${path_relative_to_include()}/tofu.tfstate" + } +} + +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + +::: + +Next, finalize the `.gruntwork/environment-.hcl` file in the root of your project to reference the IDs for the applications we just provisioned. + +You can find the values for the `plan_client_id` and `apply_client_id` by running `terragrunt stack output` in the `bootstrap` directory in `name-of-subscription/bootstrap`. + +```bash +terragrunt stack output +``` + +The relevant bits that you want to extract from the stack output are the following: + +```hcl +bootstrap = { + apply_app = { + client_id = "33333333-3333-3333-3333-333333333333" + } + plan_app = { + client_id = "44444444-4444-4444-4444-444444444444" + } +} +``` + +You can use those values to set the values for `plan_client_id` and `apply_client_id` in the `.gruntwork/environment-.hcl` file. + +:::note Progress Checklist + + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Pulling the resources into state

    + +Once you've provisioned the resources in your Azure subscription, you can pull the resources into state using the storage account we just provisioned. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache --no-stack-generate -- init -migrate-state -force-copy +``` + +:::tip + +We're adding the `-force-copy` flag here to avoid any issues with OpenTofu waiting for an interactive prompt to copy up local state. + +::: + +:::note Progress Checklist + + + +::: + +
    + + +## Creating `.gruntwork` HCL Configurations + +Create [HCL configurations](/2.0/reference/pipelines/configurations-as-code/) in the `.gruntwork` directory in the root of your project to tell Pipelines how you plan to organize your infrastructure, and how you plan to have Pipelines authenticate with your cloud provider(s). + +### The `repository` block + +The core configuration that you'll want to start with is the `repository` block. This block tells Pipelines which branch has the "live" infrastructure you want provisioned. When you merge IaC to this branch, Pipelines will be triggered to update your infrastructure accordingly. + +```hcl title=".gruntwork/repository.hcl" +repository { + deploy_branch_name = "main" +} +``` + +:::note Progress Checklist + + + + +::: + +### The `environment` block + +Next, you'll want to define the environments you want to manage with Pipelines using the [`environment` block](/2.0/reference/pipelines/configurations-as-code/api#environment-block). + +For each environment, you'll want to define a [`filter` block](/2.0/reference/pipelines/configurations-as-code/api#filter-block) that tells Pipelines which units are part of that environment. You'll also want to define an [`authentication` block](/2.0/reference/pipelines/configurations-as-code/api#authentication-block) that tells Pipelines how to authenticate with your cloud provider(s) for that environment. + + + + +```hcl title=".gruntwork/environment-production.hcl" +environment "production" { + filter { + paths = ["prod/*"] + } + + authentication { + aws_oidc { + account_id = "123456789012" + plan_iam_role_arn = "arn:aws:iam::123456789012:role/pipelines-plan" + apply_iam_role_arn = "arn:aws:iam::123456789012:role/pipelines-apply" + } + } +} +``` + +:::tip + +Learn more about how Pipelines authenticates to AWS in the [Authenticating to AWS](/2.0/docs/pipelines/concepts/cloud-auth/aws) page. + +::: + +:::tip + +Check out the [aws block](/2.0/reference/pipelines/configurations-as-code/#aws-blocks) for more information on how to configure Pipelines to reuse common AWS configurations. + +::: + +:::note Progress Checklist + + + + + + + +::: + + + + +```hcl title=".gruntwork/environment-production.hcl" +environment "production" { + filter { + paths = ["prod/*"] + } + + authentication { + azure_oidc { + tenant_id = "00000000-0000-0000-0000-000000000000" + subscription_id = "11111111-1111-1111-1111-111111111111" + + plan_client_id = "33333333-3333-3333-3333-333333333333" + apply_client_id = "44444444-4444-4444-4444-444444444444" + } + } +} +``` + +:::tip + +Learn more about how Pipelines authenticates to Azure in the [Authenticating to Azure](/2.0/docs/pipelines/concepts/cloud-auth/azure) page. + +::: + +:::note Progress Checklist + + + + + + + + +::: + + + + +```hcl title=".gruntwork/environment-production.hcl" +environment "production" { + filter { + paths = ["prod/*"] + } + + authentication { + custom { + auth_provider_cmd = "./scripts/custom-auth-prod.sh" + } + } +} +``` + +:::tip + +Learn more about how Pipelines can authenticate with custom authentication in the [Custom Authentication](/2.0/docs/pipelines/concepts/cloud-auth/custom) page. + +::: + +:::note Progress Checklist + + + + + + + +::: + + + + +## Creating `.gitlab-ci.yml` + +Create a `.gitlab-ci.yml` file in the root of your project with the following content: + +```yaml title=".gitlab-ci.yml" +include: + - project: 'gruntwork-io/gitlab-pipelines-workflows' + file: '/workflows/pipelines.yml' + ref: 'v1' +``` + +:::tip + +You can read the [Pipelines GitLab CI Workflow](https://gitlab.com/gruntwork-io/gitlab-pipelines-workflows) to learn how this GitLab CI pipeline calls the Pipelines CLI to run your pipelines. + +::: + +:::note Progress Checklist + + + +::: + +## Commit and Push Your Changes + +Commit and push your changes to your project. + +:::note + +You should include `[skip ci]` in your commit message here to prevent triggering the Pipelines workflow before everything is properly configured. + +::: + +```bash +git add . +git commit -m "Add Pipelines configurations and GitLab CI workflow [skip ci]" +git push +``` + +:::note Progress Checklist + + + + +::: + +🚀 You've successfully added Gruntwork Pipelines to your existing GitLab project! + +## Next Steps + +You have successfully completed the installation of Gruntwork Pipelines in an existing GitLab project. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md) to begin deploying changes. + +## Troubleshooting Tips + +If you encounter issues during the setup process, here are some common troubleshooting steps: + +### Bootstrap Resources Failure + +If your bootstrap resource provisioning fails: + + + + + + + +### HCL Configuration Issues + +If your HCL configurations aren't working as expected: + + + + + +### GitLab CI Pipeline Issues + +If your GitLab CI pipeline isn't working as expected: + + + + + + + + + diff --git a/docs/2.0/docs/pipelines/installation/addingexistingrepo.md b/docs/2.0/docs/pipelines/installation/addingexistingrepo.md deleted file mode 100644 index 9149fbd80c..0000000000 --- a/docs/2.0/docs/pipelines/installation/addingexistingrepo.md +++ /dev/null @@ -1,553 +0,0 @@ -import CustomizableValue from '/src/components/CustomizableValue'; - -# Adding Gruntwork Pipelines to an existing repository - -This guide provides instructions for installing Gruntwork Pipelines in a repository with existing IaC. This guide is for Gruntwork customers looking to integrate Pipelines into their existing repositories for streamlined infrastructure management. - -:::info - -This process leverages a new configuration paradigm for Pipelines called ["Pipelines Configuration as Code"](/2.0/reference/pipelines/configurations-as-code), introduced in July 2024. This system allows developers to use Gruntwork Pipelines with any folder structure in their IaC repositories. Previously, Pipelines required a specific folder layout to map source control directories to AWS Accounts for authentication. - -**As of Q4 2024, this new configuration system does not yet support the [Gruntwork Account Factory](https://docs.gruntwork.io/2.0/docs/accountfactory/concepts/).** If you need both Pipelines and the Account Factory, we recommend [starting with a new repository](/2.0/docs/pipelines/installation/addingnewrepo) or contacting [Gruntwork support](/support) for assistance. -::: - -## Prerequisites - -- **Active Gruntwork subscription**: Ensure your account includes access to Pipelines. Verify access by navigating to the "View team in GitHub" option in the [Gruntwork Developer Portal's account page](https://app.gruntwork.io/account) if you are an admin. From the GitHub team UI, search for "pipelines" under the repositories tab to confirm access. -- **AWS credentials**: You need credentials with permissions to create resources in the AWS account where Pipelines will be deployed. This includes creating an OpenID Connect (OIDC) Provider and AWS Identity and Access Management (IAM) roles for Pipelines to use when deploying infrastructure. - -## Setting up the repository - -### Account information - -Create an `accounts.yml` file in the root directory of your repository with the following content. Replace , , and with the appropriate values for the account you are deploying to. Add additional accounts as needed to manage them with Pipelines. - - ```yaml title="accounts.yml" - # required: Name of an account - $$AWS_ACCOUNT_NAME$$: - # required: The AWS account ID - id: "$$AWS_ACCOUNT_ID$$" - # required: The email address of the account owner - email: "$$AWS_ACCOUNT_EMAIL$$" - ``` - -### Pipelines configurations - -Create a file named `.gruntwork/gruntwork.hcl` in the root directory of your repository with the following content. This file is used to configure Pipelines for your repository. Update the specified placeholders with the appropriate values: - -- : Specify a name that represents the environment being deployed, such as `production`, `staging`, or `development`. -- : Define the root-relative path of the folder in your repository that contains the terragrunt units for the environment you are deploying to. This may be the same as the environment name if there is a directory in the root of the repository that contains all the terragrunt units for the environment. -- : Enter the AWS Account ID associated with the deployment of Terragrunt units for the specified environment. -- : Specify the branch name used for deployments, such as `main` or `master`. This branch will trigger the Pipelines apply workflow when changes are merged. Pull requests targeting this branch will trigger the Pipelines plan workflow. - - -```hcl title=".gruntwork/gruntwork.hcl" -# Configurations applicable to the entire repository https://docs.gruntwork.io/2.0/docs/pipelines/installation/addingexistingrepo#repository-blocks -repository { - deploy_branch_name = "$$DEPLOY_BRANCH_NAME$$" -} - -aws { - accounts "all" { - // Reading the accounts.yml file from the root of the repository - path = "../accounts.yml" - } -} - -# Configurations that are applicable to a specific environment within a repository # https://docs.gruntwork.io/2.0/docs/pipelines/installation/addingexistingrepo#environment-blocks -environment "$$ENVIRONMENT_NAME$$" { - filter { - paths = ["$$PATH_TO_ENVIRONMENT$$/*"] - } - - authentication { - aws_oidc { - account_id = aws.accounts.all.$$AWS_ACCOUNT_NAME$$.id - plan_iam_role_arn = "arn:aws:iam::${aws.accounts.all.$$AWS_ACCOUNT_NAME$$.id}:role/pipelines-plan" - apply_iam_role_arn = "arn:aws:iam::${aws.accounts.all.$$AWS_ACCOUNT_NAME$$.id}:role/pipelines-apply" - } - } -} -``` - -The IAM roles mentioned in the unit configuration above will be created in the [Pipelines OpenID Connect (OIDC) Provider and Roles](#pipelines-openid-connectoidc-provider-and-roles) section. - -For additional environments, you can add new [environment configurations](/2.0/reference/pipelines/configurations-as-code#environment-configurations). Alternatively, consider using [unit configuration](/2.0/reference/pipelines/configurations-as-code#unit-configurations) for Terragrunt units in your repository that do not align with an environment configuration. - -### Pipelines GitHub Actions (GHA) workflow - -Pipelines is implemented using a GitHub [reusable workflow](https://docs.github.com/en/actions/sharing-automations/reusing-workflows#creating-a-reusable-workflow). The actual code for Pipelines and its features resides in an external repository, typically [Gruntwork's Pipelines Workflows repository](https://github.com/gruntwork-io/pipelines-workflows/). Your repository references this external workflow rather than containing the implementation itself. - -Create a file named `.github/workflows/pipelines.yml` in the root of your repository with the following content: - -
    -Pipelines GHA workflow file - -```yaml title=".github/workflows/pipelines.yml" -###################################################################################################################### -# INFRASTRUCTURE CI/CD CONFIGURATION -# -# This file configures GitHub Actions to implement a CI/CD pipeline for managing infrastructure code. -# -# The pipeline defined in this configuration includes the following steps: -# -# - For any commit on any branch, identify all Terragrunt modules that have changed between the `HEAD` of the branch and -# `main`, and run `terragrunt plan` on each of those modules. -# - For commits to `main`, execute `terragrunt apply` on each of the updated modules. -# -###################################################################################################################### - -name: Pipelines -run-name: "[GWP]: ${{ github.event.commits[0].message || github.event.pull_request.title || 'No commit message' }}" -on: - push: - branches: - - $$DEPLOY_BRANCH_NAME$$ - paths-ignore: - # Workflow does not run only if ALL filepaths match the pattern. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-excluding-paths - - ".github/**" - pull_request: - types: - - opened - - synchronize - - reopened - -# Permissions to assume roles and create pull requests -permissions: - id-token: write - -jobs: - GruntworkPipelines: - # https://github.com/gruntwork-io/pipelines-workflows/blob/v3/.github/workflows/pipelines.yml - uses: gruntwork-io/pipelines-workflows/.github/workflows/pipelines.yml@v3 - secrets: - PIPELINES_READ_TOKEN: ${{ secrets.PIPELINES_READ_TOKEN }} - - PipelinesPassed: - needs: GruntworkPipelines - if: always() - runs-on: ubuntu-latest - steps: - - run: | - echo "::debug::RESULT: $RESULT" - if [[ $RESULT = "success" ]]; then - echo "GruntworkPipelines completed successfully!" - else - echo "GruntworkPipelines failed!" - exit 1 - fi - env: - RESULT: ${{ needs.GruntworkPipelines.result }} -``` - -
    - -### Pipelines OpenID Connect (OIDC) provider and roles - -This step involves creating the Infrastructure as Code (IaC) configuration for the [OIDC](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) roles required by Pipelines to deploy infrastructure. - -Two roles are needed: -- `pipelines-plan` for plans -- `pipelines-apply` for applies - -Using two distinct roles upholds the principle of least privilege. The `pipelines-plan` role is used during pull request creation or updates and requires primarily read-only permissions. The `pipelines-apply` role, used during pull request merges, requires read/write permissions. Additionally, these roles have different IAM trust policies. The `apply` role only trusts the deploy branch, while the `plan` role trusts all branches. - -This step requires AWS credentials with sufficient permissions to create the necessary IAM resources that Pipelines will assume when deploying infrastructure. - -#### Create the Terragrunt units - -Within the ** directory, create the Terragrunt unit files as described below, updating the following values as needed: - -- : Specify the state bucket name or pattern of the state bucket(s) to be used for the environment. The Pipeline roles must have permissions to access the state bucket for storing and retrieving state files. -- : Specify the name of the DynamoDB table used for state locking. -- : Provide the exact name of the repository where Pipelines is being configured. - -
    -OIDC Provider - -```hcl title="$$PATH_TO_ENVIRONMENT$$/_global/github-actions-openid-connect-provider/terragrunt.hcl" -terraform { - source = "git@github.com:gruntwork-io/terraform-aws-security.git//modules/github-actions-openid-connect-provider?ref=v0.74.5" -} - -# Include the root `terragrunt.hcl` configuration, which has settings common across all environments & components. -include "root" { - path = find_in_parent_folders() -} - -inputs = { - allowed_organizations = [ - "$$GITHUB_ORG_NAME$$", - ] -} -``` - -
    - -
    -Pipelines Plan - -```hcl title="$$PATH_TO_ENVIRONMENT$$/_global/pipelines-plan-role/terragrunt.hcl" -terraform { - source = "git@github.com:gruntwork-io/terraform-aws-security.git//modules/github-actions-iam-role?ref=v0.74.5" -} - -# Include the root `terragrunt.hcl` configuration, which has settings common across all environments & components. -include "root" { - path = find_in_parent_folders() -} - -# The OIDC IAM roles for GitHub Actions require an IAM OpenID Connect (OIDC) Provider to be provisioned for each account. -# The underlying module used in `envcommon` is capable of creating the OIDC provider. Since multiple OIDC roles are required, -# a dedicated module is used, and all roles depend on its output -dependency "github-actions-openid-connect-provider" { - config_path = "../github-actions-openid-connect-provider" - - # Configure mock outputs for the `validate` command that are returned when there are no outputs available (e.g the - # module hasn't been applied yet. - mock_outputs_allowed_terraform_commands = ["validate", "plan"] - mock_outputs_merge_strategy_with_state = "shallow" - mock_outputs = { - arn = "known_after_apply" - url = "token.actions.githubusercontent.com" - } -} - -locals { - state_bucket_pattern = lower("$$AWS_STATE_BUCKET_PATTERN$$") -} - -inputs = { - github_actions_openid_connect_provider_arn = dependency.github-actions-openid-connect-provider.outputs.arn - github_actions_openid_connect_provider_url = dependency.github-actions-openid-connect-provider.outputs.url - - allowed_sources_condition_operator = "StringLike" - - allowed_sources = { - "$$GITHUB_ORG_NAME$$/$$INFRASTRUCTURE_LIVE_REPO_NAME$$" : ["*"] - } - - custom_iam_policy_name = "pipelines-plan-oidc-policy" - iam_role_name = "pipelines-plan" - - # Policy based on these docs: - # https://terragrunt.gruntwork.io/docs/features/aws-auth/#aws-iam-policies - iam_policy = { - # State permissions - "DynamoDBLocksTableAccess" = { - effect = "Allow" - actions = [ - "dynamodb:PutItem", - "dynamodb:GetItem", - "dynamodb:DescribeTable", - "dynamodb:DeleteItem", - "dynamodb:CreateTable", - ] - resources = ["arn:aws:dynamodb:*:*:table/$$AWS_DYNAMO_DB_TABLE$$"] - } - "S3StateBucketAccess" = { - effect = "Allow" - actions = [ - "s3:ListBucket", - "s3:GetBucketVersioning", - "s3:GetBucketAcl", - "s3:GetBucketLogging", - "s3:CreateBucket", - "s3:PutBucketPublicAccessBlock", - "s3:PutBucketTagging", - "s3:PutBucketPolicy", - "s3:PutBucketVersioning", - "s3:PutEncryptionConfiguration", - "s3:PutBucketAcl", - "s3:PutBucketLogging", - "s3:GetEncryptionConfiguration", - "s3:GetBucketPolicy", - "s3:GetBucketPublicAccessBlock", - "s3:PutLifecycleConfiguration", - "s3:PutBucketOwnershipControls", - ] - resources = [ - "arn:aws:s3:::${local.state_bucket_pattern}", - ] - } - "S3StateBucketObjectAccess" = { - effect = "Allow" - actions = [ - "s3:PutObject", - "s3:GetObject" - ] - resources = [ - "arn:aws:s3:::${local.state_bucket_pattern}/*", - ] - } - } -} -``` - -
    - -
    -Pipelines Apply - - - -```hcl title="$$PATH_TO_ENVIRONMENT$$/_global/pipelines-apply-role/terragrunt.hcl" -terraform { - source = "git@github.com:gruntwork-io/terraform-aws-security.git//modules/github-actions-iam-role?ref=v0.74.5" -} - -# Include the root `terragrunt.hcl` configuration, which has settings common across all environments & components. -include "root" { - path = find_in_parent_folders() -} - -# The OIDC IAM roles for GitHub Actions require an IAM OpenID Connect (OIDC) Provider to be provisioned for each account. -# The underlying module used in `envcommon` is capable of creating the OIDC provider. Since multiple OIDC roles are required, -# a dedicated module is used, and all roles depend on its output. -dependency "github-actions-openid-connect-provider" { - config_path = "../github-actions-openid-connect-provider" - - # Configure mock outputs for the `validate` command that are returned when there are no outputs available (e.g the - # module hasn't been applied yet. - mock_outputs_allowed_terraform_commands = ["validate", "plan"] - mock_outputs_merge_strategy_with_state = "shallow" - mock_outputs = { - arn = "known_after_apply" - url = "token.actions.githubusercontent.com" - } -} - -locals { - # Automatically load account-level variables - state_bucket_pattern = lower("$$AWS_STATE_BUCKET_PATTERN$$") -} - -inputs = { - github_actions_openid_connect_provider_arn = dependency.github-actions-openid-connect-provider.outputs.arn - github_actions_openid_connect_provider_url = dependency.github-actions-openid-connect-provider.outputs.url - - allowed_sources = { - "$$GITHUB_ORG_NAME$$/$$INFRASTRUCTURE_LIVE_REPO_NAME$$" : ["$$DEPLOY_BRANCH_NAME$$"] - } - - # Policy for OIDC role assumed from GitHub in the "$$GITHUB_ORG_NAME$$/$$INFRASTRUCTURE_LIVE_REPO_NAME$$" repo - custom_iam_policy_name = "pipelines-apply-oidc-policy" - iam_role_name = "pipelines-apply" - - # Policy based on these docs: - # https://terragrunt.gruntwork.io/docs/features/aws-auth/#aws-iam-policies - iam_policy = { - "IamPassRole" = { - resources = ["*"] - actions = ["iam:*"] - effect = "Allow" - } - "IamCreateRole" = { - resources = [ - "arn:aws:iam::*:role/aws-service-role/orgsdatasync.servicecatalog.amazonaws.com/AWSServiceRoleForServiceCatalogOrgsDataSync" - ] - actions = ["iam:CreateServiceLinkedRole"] - effect = "Allow" - } - "S3BucketAccess" = { - resources = ["*"] - actions = ["s3:*"] - effect = "Allow" - } - "DynamoDBLocksTableAccess" = { - resources = ["arn:aws:dynamodb:*:*:table/terraform-locks"] - actions = ["dynamodb:*"] - effect = "Allow" - } - "OrganizationsDeployAccess" = { - resources = ["*"] - actions = ["organizations:*"] - effect = "Allow" - } - "ControlTowerDeployAccess" = { - resources = ["*"] - actions = ["controltower:*"] - effect = "Allow" - } - "IdentityCenterDeployAccess" = { - resources = ["*"] - actions = ["sso:*", "ds:*", "sso-directory:*"] - effect = "Allow" - } - "ECSDeployAccess" = { - resources = ["*"] - actions = ["ecs:*"] - effect = "Allow" - } - "ACMDeployAccess" = { - resources = ["*"] - actions = ["acm:*"] - effect = "Allow" - } - "AutoScalingDeployAccess" = { - resources = ["*"] - actions = ["autoscaling:*"] - effect = "Allow" - } - "CloudTrailDeployAccess" = { - resources = ["*"] - actions = ["cloudtrail:*"] - effect = "Allow" - } - "CloudWatchDeployAccess" = { - resources = ["*"] - actions = ["cloudwatch:*", "logs:*"] - effect = "Allow" - } - "CloudFrontDeployAccess" = { - resources = ["*"] - actions = ["cloudfront:*"] - effect = "Allow" - } - "ConfigDeployAccess" = { - resources = ["*"] - actions = ["config:*"] - effect = "Allow" - } - "EC2DeployAccess" = { - resources = ["*"] - actions = ["ec2:*"] - effect = "Allow" - } - "ECRDeployAccess" = { - resources = ["*"] - actions = ["ecr:*"] - effect = "Allow" - } - "ELBDeployAccess" = { - resources = ["*"] - actions = ["elasticloadbalancing:*"] - effect = "Allow" - } - "GuardDutyDeployAccess" = { - resources = ["*"] - actions = ["guardduty:*"] - effect = "Allow" - } - "IAMDeployAccess" = { - resources = ["*"] - actions = ["iam:*", "access-analyzer:*"] - effect = "Allow" - } - "KMSDeployAccess" = { - resources = ["*"] - actions = ["kms:*"] - effect = "Allow" - } - "LambdaDeployAccess" = { - resources = ["*"] - actions = ["lambda:*"] - effect = "Allow" - } - "Route53DeployAccess" = { - resources = ["*"] - actions = ["route53:*", "route53domains:*", "route53resolver:*"] - effect = "Allow" - } - "SecretsManagerDeployAccess" = { - resources = ["*"] - actions = ["secretsmanager:*"] - effect = "Allow" - } - "SNSDeployAccess" = { - resources = ["*"] - actions = ["sns:*"] - effect = "Allow" - } - "SQSDeployAccess" = { - resources = ["*"] - actions = ["sqs:*"] - effect = "Allow" - } - "SecurityHubDeployAccess" = { - resources = ["*"] - actions = ["securityhub:*"] - effect = "Allow" - } - "MacieDeployAccess" = { - resources = ["*"] - actions = ["macie2:*"] - effect = "Allow" - } - "ServiceQuotaDeployAccess" = { - resources = ["*"] - actions = ["servicequotas:*"] - effect = "Allow" - } - "EKSAccess" = { - resources = ["*"] - actions = ["eks:*"] - effect = "Allow" - } - "EventBridgeAccess" = { - resources = ["*"] - actions = ["events:*"] - effect = "Allow" - } - "ApplicationAutoScalingAccess" = { - resources = ["*"] - actions = ["application-autoscaling:*"] - effect = "Allow" - } - "ApiGatewayAccess" = { - resources = ["*"] - actions = ["apigateway:*"] - effect = "Allow" - } - } -} -``` - - - -
    - - -:::tip - -The permissions in the files above are provided as examples and should be adjusted to align with the specific types of infrastructure managed in the repository. This ensures that Pipelines can execute the required actions to deploy your infrastructure effectively. - -Additionally, note that the IAM permissions outlined above do not include permissions to modify the role itself, for security purposes. - -::: - -Repeat this step for each environment you would like to manage with Pipelines. - -#### Create the OIDC resources - -Use your personal AWS access to execute the following commands to deploy the infrastructure for the Terragrunt units created in the previous step. Repeat this process for each account you plan to manage with Pipelines. - - ```bash - cd $$PATH_TO_ENVIRONMENT$$/_global - terragrunt run-all plan - ``` - -Review the plan output, and if everything appears correct, proceed to apply the changes. - - - ```bash - terragrunt run-all apply - ``` - -:::tip - -If you encounter issues with the plan or apply steps due to the presence of other resources in the *_global* folder, you can run the plan/apply steps individually for the Terragrunt units. Start with the `github-actions-openid-connect-provider` unit, as other units depend on it. - -::: - -#### Commit and push the changes - -Create a new branch and commit all changes, including **`[skip ci]`** in the commit message to prevent triggering the Pipelines workflow. Push the changes to the repository, create a Pull Request, and merge the changes into the branch specified in the `.github/workflows/pipelines.yml` file. - -## Enable GitHub authentication for pipelines - -Follow the instructions in [Authenticating via GitHub App](/2.0/docs/pipelines/installation/viagithubapp) to enable GitHub authentication for Pipelines in your repository using the Gruntwork.io GitHub App. This is the recommended authentication method. Alternatively, you can [Authenticate via Machine Users](/2.0/docs/pipelines/installation/viamachineusers) if preferred. - -## Next steps - -You have successfully completed the installation of Gruntwork Pipelines in an existing repository. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md) to begin deploying changes. diff --git a/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx b/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx new file mode 100644 index 0000000000..94b88343c9 --- /dev/null +++ b/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx @@ -0,0 +1,879 @@ +# Bootstrap Pipelines in an Existing Repository + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import PersistentCheckbox from '/src/components/PersistentCheckbox'; + +This guide provides comprehensive instructions for integrating [Gruntwork Pipelines](https://gruntwork.io/products/pipelines/) into an existing repository with Infrastructure as Code (IaC). This is designed for Gruntwork customers who want to add Pipelines to their current infrastructure repositories for streamlined CI/CD management. + +To configure Gruntwork Pipelines in an existing repository, complete the following steps (which are explained in detail below): + +1. **Plan your Pipelines setup** by identifying all environments and cloud accounts/subscriptions you need to manage. +2. **Bootstrap core infrastructure** in accounts/subscriptions that don't already have the required OIDC and state management resources. +3. **Configure SCM access** using either the [Gruntwork.io GitHub App](https://github.com/apps/gruntwork-io) or [machine users](https://docs.github.com/en/get-started/learning-about-github/types-of-github-accounts#user-accounts). +4. **Create `.gruntwork` HCL configurations** to tell Pipelines how to authenticate and organize your environments. +5. **Create `.github/workflows/pipelines.yml`** to configure your GitHub Actions workflow. +6. **Commit and push** your changes to activate Pipelines. + +## Prerequisites + +Before starting, ensure you have: + +- **An active Gruntwork subscription** with Pipelines access. Verify by checking the [Gruntwork Developer Portal](https://app.gruntwork.io/account) and confirming access to "pipelines" repositories in your GitHub team. +- **Cloud provider credentials** with permissions to create OIDC providers and IAM roles in accounts where Pipelines will manage infrastructure. +- **Git installed** locally for cloning and managing your repository. +- **Existing IaC repository** with Terragrunt configurations you want to manage with Pipelines (if you are using OpenTofu/Terraform, and want to start using Terragrunt, read the [Quickstart Guide](https://terragrunt.gruntwork.io/docs/getting-started/quick-start)). + +## Planning Your Pipelines Setup + +Before implementing Pipelines, it's crucial to plan your setup by identifying all the environments and cloud resources you need to manage. + +### Identify Your Environments + +Review your existing repository structure and identify: + +1. **All environments** you want to manage with Pipelines (e.g., `dev`, `staging`, `prod`) +2. **Cloud accounts/subscriptions** associated with each environment +3. **Directory paths** in your repository that contain Terragrunt units for each environment +4. **Existing OIDC resources** that may already be provisioned in your accounts + +:::note Progress Checklist + + + + + + +::: + +### Determine Required OIDC Roles + +For each AWS Account / Azure Subscription you want to manage, you might already have some or all of the following resources provisioned. + + + + +**Required AWS Resources:** + +- An OIDC provider for GitHub Actions +- An IAM role for Pipelines to assume when running Terragrunt plan commands +- An IAM role for Pipelines to assume when running Terragrunt apply commands + + + + +**Required Azure Resources:** + +- Entra ID Application for plans with Federated Identity Credential +- Entra ID Application for applies with Federated Identity Credential +- Service Principals with appropriate role assignments +- Storage Account and Container for Terragrunt state storage (if not already existing) + + + + +:::note Progress Checklist + + + + +::: + +## Configuring SCM Access + +Pipelines needs the ability to interact with Source Control Management (SCM) platforms to fetch resources (e.g. IaC code, reusable CI/CD code and the Pipelines binary itself). + +There are two ways to configure SCM access for Pipelines: + +1. Using the [Gruntwork.io GitHub App](/2.0/docs/pipelines/installation/viagithubapp#configuration) (recommended for most GitHub users). +2. Using a [machine user](/2.0/docs/pipelines/installation/viamachineusers) (recommended for GitHub users who cannot use the GitHub App). + +:::note Progress Checklist + + + +::: + +## Bootstrapping Cloud Infrastructure + +If your AWS accounts / Azure subscriptions don't already have all the required OIDC and state management resources, you'll need to bootstrap them. This section provides the infrastructure code needed to set up these resources. + +:::tip + +If you already have all the resources listed, you can skip this section. + +If you have some of them provisioned, but not all, you can decide to either destroy the resources you already have provisioned and recreate them or import them into state. If you are not sure, please contact [Gruntwork support](/support). + +::: + +### Prepare Your Repository + +Clone your repository to your local machine using [Git](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) if you haven't already. + +:::tip + +If you don't have Git installed, you can install it by following the official guide for [Git installation](https://git-scm.com/downloads). + +::: + +For example: + +```bash +git clone git@github.com:acme/infrastructure-live.git +cd infrastructure-live +``` + +:::note Progress Checklist + + + + +::: + +To bootstrap your repository, we'll use Boilerplate to scaffold it with the necessary IaC code to provision the infrastructure necessary for Pipelines to function. + +The easiest way to install Boilerplate is to use `mise` to install it. + +:::tip + +If you don't have `mise` installed, you can install it by following the official guide for [mise installation](https://mise.jdx.dev/getting-started.html). + +::: + +```bash +mise use -g boilerplate@latest +``` + +:::tip + +If you'd rather install a specific version of Boilerplate, you can use the `ls-remote` command to list the available versions. + +```bash +mise ls-remote boilerplate +``` + +::: + +:::note Progress Checklist + + + +::: + +If you don't already have Terragrunt and OpenTofu installed locally, you can install them using `mise`: + +```bash +mise use -g terragrunt@latest opentofu@latest +``` + +:::note Progress Checklist + + + +::: + +### Cloud-specific bootstrap instructions + + + + +The resources you need provisioned in AWS to start managing resources with Pipelines are: + +1. An OpenID Connect (OIDC) provider +2. An IAM role for Pipelines to assume when running Terragrunt plan commands +3. An IAM role for Pipelines to assume when running Terragrunt apply commands + +For every account you want Pipelines to manage infrastructure in. + +:::tip Don't Panic! + +This may seem like a lot to set up, but the content you need to add to your repository is minimal. The majority of the work will be pulled from a reusable catalog that you'll reference in your repository. + +If you want to peruse the catalog that's used in the bootstrap process, you can take a look at the [terragrunt-scale-catalog](https://github.com/gruntwork-io/terragrunt-scale-catalog) repository. + +::: + +The process that we'll follow to get these resources ready for Pipelines is: + +1. Use Boilerplate to scaffold bootstrap configurations in your repository for each AWS account +2. Use Terragrunt to provision these resources in your AWS accounts +3. (Optionally) Bootstrap additional AWS accounts until all your AWS accounts are ready for Pipelines + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Bootstrap Your Repository for AWS

    + +First, confirm that you have a `root.hcl` file in the root of your repository that looks something like this: + +```hcl title="root.hcl" +locals { + account_hcl = read_terragrunt_config(find_in_parent_folders("account.hcl")) + state_bucket_name = local.account_hcl.locals.state_bucket_name + + region_hcl = read_terragrunt_config(find_in_parent_folders("region.hcl")) + aws_region = local.region_hcl.locals.aws_region +} + +remote_state { + backend = "s3" + generate = { + path = "backend.tf" + if_exists = "overwrite" + } + config = { + bucket = local.state_bucket_name + region = local.aws_region + key = "${path_relative_to_include()}/tofu.tfstate" + encrypt = true + use_lockfile = true + } +} + +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Provision AWS Bootstrap Resources

    + +Once you've scaffolded out the accounts you want to bootstrap, you can use Terragrunt to provision the resources in each of these accounts. + +:::tip + +Make sure that you authenticate to each AWS account you are bootstrapping using AWS credentials for that account before you attempt to provision resources in it. + +You can follow the documentation [here](https://search.opentofu.org/provider/hashicorp/aws/latest#authentication-and-configuration) to authenticate with the AWS provider. You are advised to choose an authentication method that doesn't require any hard-coded credentials, like assuming an IAM role. + +::: + +For each account you want to bootstrap, you'll need to run the following commands: + +First, make sure that everything is set up correctly by running a plan in the `bootstrap` directory in `name-of-account/_global` where `name-of-account` is the name of the AWS account you want to bootstrap. + +```bash title="name-of-account/_global/bootstrap" +terragrunt run --all --non-interactive --provider-cache plan +``` + +:::tip + +We're using the `--provider-cache` flag here to ensure that we don't re-download the AWS provider on every run by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). + +::: + +Next, apply the changes to your account. + +```bash title="name-of-account/_global/bootstrap" +terragrunt run --all --non-interactive --provider-cache apply +``` + +:::note Progress Checklist + + + + +::: + +
    + + +The resources you need provisioned in Azure to start managing resources with Pipelines are: + +1. An Azure Resource Group for OpenTofu state resources + 1. An Azure Storage Account in that resource group for OpenTofu state storage + 1. An Azure Storage Container in that storage account for OpenTofu state storage +2. An Entra ID Application to use for plans + 1. A Flexible Federated Identity Credential for the application to authenticate with your repository on any branch + 2. A Service Principal for the application to be used in role assignments + 1. A role assignment for the service principal to access the Azure subscription + 2. A role assignment for the service principal to access the Azure Storage Account +3. An Entra ID Application to use for applies + 1. A Federated Identity Credential for the application to authenticate with your repository on the deploy branch + 2. A Service Principal for the application to be used in role assignments + 1. A role assignment for the service principal to access the Azure subscription + +:::tip Don't Panic! + +This may seem like a lot to set up, but the content you need to add to your repository is minimal. The majority of the work will be pulled from a reusable catalog that you'll reference in your repository. + +If you want to peruse the catalog that's used in the bootstrap process, you can take a look at the [terragrunt-scale-catalog](https://github.com/gruntwork-io/terragrunt-scale-catalog) repository. + +::: + +The process that we'll follow to get these resources ready for Pipelines is: + +1. Use Boilerplate to scaffold bootstrap configurations in your repository for each Azure subscription +2. Use Terragrunt to provision these resources in your Azure subscription +3. Finalizing Terragrunt configurations using the bootstrap resources we just provisioned +4. Pull the bootstrap resources into state, now that we have configured a remote state backend +5. (Optionally) Bootstrap additional Azure subscriptions until all your Azure subscriptions are ready for Pipelines + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Bootstrap Your Repository for Azure

    + +For each Azure subscription that needs bootstrapping, we'll use Boilerplate to scaffold the necessary content. Run this command from the root of your repository for each subscription: + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/github/subscription?ref=v1.0.0' \ + --output-folder . +``` + +:::tip + +You'll need to run this boilerplate command once for each Azure subscription you want to manage with Pipelines. Boilerplate will prompt you for subscription-specific values each time. + +::: + +:::tip + +You can reply `y` to all the prompts to include dependencies, and accept defaults unless you want to customize something. + +Alternatively, you could run Boilerplate non-interactively by passing the `--non-interactive` flag. You'll need to supply the relevant values for required variables in that case. + +e.g. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/github/subscription?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=dev' \ + --var 'GitHubOrgName=acme' \ + --var 'GitHubRepoName=infrastructure-live' \ + --var 'SubscriptionName=dev' \ + --var 'AzureTenantID=00000000-0000-0000-0000-000000000000' \ + --var 'AzureSubscriptionID=11111111-1111-1111-1111-111111111111' \ + --var 'AzureLocation=East US' \ + --var 'StateResourceGroupName=pipelines-rg' \ + --var 'StateStorageAccountName=mysa' \ + --var 'StateStorageContainerName=tfstate' \ + --non-interactive +``` + +You can also choose to store these values in a YAML file and pass it to Boilerplate using the `--var-file` flag. + +```yaml title="vars.yml" +AccountName: dev +GitHubOrgName: acme +GitHubRepoName: infrastructure-live +SubscriptionName: dev +AzureTenantID: 00000000-0000-0000-0000-000000000000 +AzureSubscriptionID: 11111111-1111-1111-1111-111111111111 +AzureLocation: East US +StateResourceGroupName: pipelines-rg +StateStorageAccountName: my-storage-account +StateStorageContainerName: tfstate +``` + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/github/subscription?ref=v1.0.0' \ + --output-folder . \ + --var-file vars.yml \ + --non-interactive +``` + +::: + +:::note Progress Checklist + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Provision Azure Bootstrap Resources

    + +Once you've scaffolded out the subscriptions you want to bootstrap, you can use Terragrunt to provision the resources in your Azure subscription. + +If you haven't already, you'll want to authenticate to Azure using the `az` CLI. + +```bash +az login +``` + +:::note Progress Checklist + + + +::: + + +To dynamically configure the Azure provider with a given tenant ID and subscription ID, ensure that you are exporting the following environment variables if you haven't the values via the `az` CLI: + +- `ARM_TENANT_ID` +- `ARM_SUBSCRIPTION_ID` + +For example: + +```bash +export ARM_TENANT_ID="00000000-0000-0000-0000-000000000000" +export ARM_SUBSCRIPTION_ID="11111111-1111-1111-1111-111111111111" +``` + +:::note Progress Checklist + + + +::: + +First, make sure that everything is set up correctly by running a plan in the subscription directory. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache plan +``` + +:::tip + +We're using the `--provider-cache` flag here to ensure that we don't re-download the Azure provider on every run to speed up the process by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). + +::: + +:::note Progress Checklist + + + +::: + +Next, apply the changes to your subscription. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache --no-stack-generate apply +``` + +:::tip + +We're adding the `--no-stack-generate` flag here, as Terragrunt will already have the requisite stack configurations generated, and we don't want to accidentally overwrite any configurations while we have state stored locally before we pull them into remote state. + +::: + +:::note Progress Checklist + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Finalizing Terragrunt configurations

    + +Once you've provisioned the resources in your Azure subscription, you can finalize the Terragrunt configurations using the bootstrap resources we just provisioned. + +First, edit the `root.hcl` file in the root of your repository to leverage the storage account we just provisioned. + +If your `root.hcl` file doesn't already have a remote state backend configuration, you'll need to add one that looks like this: + +```hcl title="root.hcl" +locals { + sub_hcl = read_terragrunt_config(find_in_parent_folders("sub.hcl")) + + state_resource_group_name = local.sub_hcl.locals.state_resource_group_name + state_storage_account_name = local.sub_hcl.locals.state_storage_account_name + state_storage_container_name = local.sub_hcl.locals.state_storage_container_name +} + +remote_state { + backend = "azurerm" + generate = { + path = "backend.tf" + if_exists = "overwrite" + } + config = { + resource_group_name = local.state_resource_group_name + storage_account_name = local.state_storage_account_name + container_name = local.state_storage_container_name + key = "${path_relative_to_include()}/tofu.tfstate" + } +} + +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + +::: + +Next, finalize the `.gruntwork/environment-.hcl` file in the root of your repository to reference the IDs for the applications we just provisioned. + +You can find the values for the `plan_client_id` and `apply_client_id` by running `terragrunt stack output` in the `bootstrap` directory in `name-of-subscription/bootstrap`. + +```bash +terragrunt stack output +``` + +The relevant bits that you want to extract from the stack output are the following: + +```hcl +bootstrap = { + apply_app = { + client_id = "33333333-3333-3333-3333-333333333333" + } + plan_app = { + client_id = "44444444-4444-4444-4444-444444444444" + } +} +``` + +You can use those values to set the values for `plan_client_id` and `apply_client_id` in the `.gruntwork/environment-.hcl` file. + +:::note Progress Checklist + + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Pulling the resources into state

    + +Once you've provisioned the resources in your Azure subscription, you can pull the resources into state using the storage account we just provisioned. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache --no-stack-generate -- init -migrate-state -force-copy +``` + +:::tip + +We're adding the `-force-copy` flag here to avoid any issues with OpenTofu waiting for an interactive prompt to copy up local state. + +::: + +:::note Progress Checklist + + + +::: + +
    +
    + +## Creating `.gruntwork` HCL Configurations + +Create [HCL configurations](/2.0/reference/pipelines/configurations-as-code/) in the `.gruntwork` directory in the root of your repository to tell Pipelines how you plan to organize your infrastructure, and how you plan to have Pipelines authenticate with your cloud provider(s). + +### The `repository` block + +The core configuration that you'll want to start with is the `repository` block. This block tells Pipelines which branch has the "live" infrastructure you want provisioned. When you merge IaC to this branch, Pipelines will be triggered to update your infrastructure accordingly. + +```hcl title=".gruntwork/repository.hcl" +repository { + deploy_branch_name = "main" +} +``` + +:::note Progress Checklist + + + + +::: + +### The `environment` block + +Next, you'll want to define the environments you want to manage with Pipelines using the [`environment` block](/2.0/reference/pipelines/configurations-as-code/api#environment-block). + +For each environment, you'll want to define a [`filter` block](/2.0/reference/pipelines/configurations-as-code/api#filter-block) that tells Pipelines which units are part of that environment. You'll also want to define an [`authentication` block](/2.0/reference/pipelines/configurations-as-code/api#authentication-block) that tells Pipelines how to authenticate with your cloud provider(s) for that environment. + + + + +```hcl title=".gruntwork/environment-production.hcl" +environment "production" { + filter { + paths = ["prod/*"] + } + + authentication { + aws_oidc { + account_id = "123456789012" + plan_iam_role_arn = "arn:aws:iam::123456789012:role/pipelines-plan" + apply_iam_role_arn = "arn:aws:iam::123456789012:role/pipelines-apply" + } + } +} +``` + +:::tip + +Learn more about how Pipelines authenticates to AWS in the [Authenticating to AWS](/2.0/docs/pipelines/concepts/cloud-auth/aws) page. + +::: + +:::tip + +Check out the [aws block](/2.0/reference/pipelines/configurations-as-code/#aws-blocks) for more information on how to configure Pipelines to reuse common AWS configurations. + +::: + +:::note Progress Checklist + + + + + + + +::: + + + + +```hcl title=".gruntwork/environment-production.hcl" +environment "production" { + filter { + paths = ["prod/*"] + } + + authentication { + azure_oidc { + tenant_id = "00000000-0000-0000-0000-000000000000" + subscription_id = "11111111-1111-1111-1111-111111111111" + + plan_client_id = "33333333-3333-3333-3333-333333333333" + apply_client_id = "44444444-4444-4444-4444-444444444444" + } + } +} +``` + +:::tip + +Learn more about how Pipelines authenticates to Azure in the [Authenticating to Azure](/2.0/docs/pipelines/concepts/cloud-auth/azure) page. + +::: + +:::note Progress Checklist + + + + + + + + +::: + + + + +```hcl title=".gruntwork/environment-production.hcl" +environment "production" { + filter { + paths = ["prod/*"] + } + + authentication { + custom { + auth_provider_cmd = "./scripts/custom-auth-prod.sh" + } + } +} +``` + +:::tip + +Learn more about how Pipelines can authenticate with custom authentication in the [Custom Authentication](/2.0/docs/pipelines/concepts/cloud-auth/custom) page. + +::: + +:::note Progress Checklist + + + + + + + +::: + + + + +## Creating `.github/workflows/pipelines.yml` + +Create a `.github/workflows/pipelines.yml` file in the root of your repository with the following content: + +```yaml title=".github/workflows/pipelines.yml" +name: Pipelines +run-name: "[GWP]: ${{ github.event.commits[0].message || github.event.pull_request.title || 'No commit message' }}" +on: + push: + branches: + - main + paths-ignore: + - ".github/**" + pull_request: + types: + - opened + - synchronize + - reopened + paths-ignore: + - ".github/**" + +# Permissions to assume roles and create pull requests +permissions: + id-token: write + contents: write + pull-requests: write + +jobs: + GruntworkPipelines: + uses: gruntwork-io/pipelines-workflows/.github/workflows/pipelines.yml@v4 +``` + +:::tip + +You can read the [Pipelines GitHub Actions Workflow](https://github.com/gruntwork-io/pipelines-workflows/blob/main/.github/workflows/pipelines.yml) to learn how this GitHub Actions workflow calls the Pipelines CLI to run your pipelines. + +::: + +:::note Progress Checklist + + + + +::: + +## Commit and Push Your Changes + +Commit and push your changes to your repository. + +:::note + +You should include `[skip ci]` in your commit message here to prevent triggering the Pipelines workflow before everything is properly configured. + +::: + +```bash +git add . +git commit -m "Add Pipelines configurations and GitHub Actions workflow [skip ci]" +git push +``` + +:::note Progress Checklist + + + + +::: + +🚀 You've successfully added Gruntwork Pipelines to your existing repository! + +## Next Steps + +You have successfully completed the installation of Gruntwork Pipelines in an existing repository. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md) to begin deploying changes. + +## Troubleshooting Tips + +If you encounter issues during the setup process, here are some common troubleshooting steps: + +### Bootstrap Resources Failure + +If your bootstrap resource provisioning fails: + + + + + + + +### HCL Configuration Issues + +If your HCL configurations aren't working as expected: + + + + + +### GitHub Actions Workflow Issues + +If your GitHub Actions workflow isn't working as expected: + + + + + + + + diff --git a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md deleted file mode 100644 index 142a0b577a..0000000000 --- a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.md +++ /dev/null @@ -1,192 +0,0 @@ -import CustomizableValue from '/src/components/CustomizableValue'; - -# Adding Pipelines to an existing GitLab Project - -This guide walks you through the process of adding Gruntwork Pipelines to a GitLab project. By the end, you'll have a fully configured GitLab CI/CD pipeline that can deploy infrastructure changes automatically. - -## Prerequisites - -Before you begin, make sure you have: - -- Basic familiarity with Git, GitLab, and infrastructure as code concepts -- Access to one (or many) AWS account(s) where you have permission to create IAM roles and OIDC providers -- Completed the [Pipelines Auth setup for GitLab](/2.0/docs/pipelines/installation/viamachineusers#gitlab) and setup a machine user with appropriate PAT tokens -- Local access to Gruntwork's GitHub repositories, specifically the [architecture catalog](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/) - -:::info - -**For custom GitLab instances only**: You must [fork](https://docs.gitlab.com/user/project/repository/forking_workflow/#create-a-fork) Gruntwork's public [Pipelines workflow project](https://gitlab.com/gruntwork-io/pipelines-workflows) into your own GitLab instance. - -This is necessary because Gruntwork Pipelines uses [GitLab CI/CD components](/2.0/docs/pipelines/architecture/ci-workflows), and GitLab requires components to reside within the [same GitLab instance as the project referencing them](https://docs.gitlab.com/ci/components/#use-a-component). - -When creating the fork, we recommend configuring it as a public mirror of the original Gruntwork project and ensuring that tags are included. -::: - -## Setup Process Overview - -Setting up Gruntwork Pipelines for GitLab involves these main steps: - -(prerequisite) Complete the [Pipelines Auth setup for GitLab](/2.0/docs/pipelines/installation/viamachineusers#gitlab) - -1. [Authorize Your GitLab Group with Gruntwork](#step-1-authorize-your-gitlab-group-with-gruntwork) -2. [Install required tools (mise, boilerplate)](#step-2-install-required-tools) -3. [Install Gruntwork Pipelines in Your Repository](#step-3-install-gruntwork-pipelines-in-your-repository) -4. [Install AWS OIDC Provider and IAM Roles for Pipelines](#step-4-install-aws-oidc-provider-and-iam-roles-for-pipelines) -5. [Complete the setup](#step-5-complete-the-setup) - -## Detailed Setup Instructions - -### Step 0: Ensure OIDC configuration and JWKS are publicly accessible - -This step only applies if you are using a self-hosted GitLab instance that is not accessible from the public internet. If you are using GitLab.com or a self-hosted instance that is publicly accessible, you can skip this step. - -1. [Follow GitLab's instructions](https://docs.gitlab.com/ci/cloud_services/aws/#configure-a-non-public-gitlab-instance) for hosting your OIDC configuration and JWKS in a public location (e.g. S3 Bucket). This is necessary for both Gruntwork and the AWS OIDC provider to access the GitLab OIDC configuration and JWKS when authenticating JWT's generated by your custom instance. -2. Note the (stored as `ci_id_tokens_issuer_url` in your `gitlab.rb` file per GitLab's instructions) generated above for reuse in the next steps. - - -### Step 1: Authorize Your GitLab Group with Gruntwork - -To use Gruntwork Pipelines with GitLab, your group needs authorization from Gruntwork: - -1. Email your Gruntwork account manager or support@gruntwork.io with: - - ``` - GitLab group name(s): $$GITLAB_GROUP_NAME$$ (e.g. acme-io) - GitLab Issuer URL: $$ISSUER_URL$$ (For most users this is the URL of your GitLab instance e.g. https://gitlab.acme.io. If your instance is not publicly accessible, this should be a separate URL that is publicly accessible per step 0, e.g. https://s3.amazonaws.com/YOUR_BUCKET_NAME/) - Organization name: $$ORGANIZATION_NAME$$ (e.g. Acme, Inc.) - ``` - -2. Wait for confirmation that your group has been authorized. - -### Step 2: Install Required Tools - -First, you'll need to install [mise](https://mise.jdx.dev/), a powerful environment manager that will help set up the required tools: - -1. Install mise by following the [getting started guide](https://mise.jdx.dev/getting-started.html) - -2. Activate mise in your shell: - ```bash - # For Bash - echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc - - # For Zsh - echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc - - # For Fish - echo 'mise activate fish | source' >> ~/.config/fish/config.fish - ``` - -3. Install the boilerplate tool, which will generate the project structure: - ```bash - # For mise version BEFORE 2025.2.10 - mise plugin add boilerplate https://github.com/gruntwork-io/asdf-boilerplate.git - - # For mise version 2025.2.10+ - mise plugin add boilerplate - - mise use boilerplate@0.6.0 - ``` - -4. Verify the installation: - ```bash - boilerplate --version - - # If that doesn't work, try: - mise x -- boilerplate --version - - # If that still doesn't work, check where boilerplate is installed: - mise which boilerplate - ``` - -### Step 3: Install Gruntwork Pipelines in Your Repository - -1. Identify where you want to install Gruntwork Pipelines, for example create a new project/repository in your GitLab group (or use an existing one) named - -2. Clone the repository to your local machine if it's not already cloned: - ```bash - git clone git@gitlab.com:$$GITLAB_GROUP_NAME$$/$$REPOSITORY_NAME$$.git - cd $$REPOSITORY_NAME$$ - ``` -3. Create a new branch for your changes: - ```bash - git checkout -b gruntwork-pipelines - ``` - -4. Download the sample [vars.yaml file](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/blob/main/examples/gitlab-pipelines/vars.yaml) to the root of - -4. Edit the `vars.yaml` file to customize it for your environment. If using a custom GitLab instance, update any custom instance variables. - -5. `cd` to the root of where you wish to install Gruntwork Pipelines. Run the boilerplate tool to generate your repository structure: - ```bash - boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/gitlab-pipelines-infrastructure-live-root/?ref=v3.1.0" --output-folder . --var-file vars.yaml --non-interactive - ``` - - If you encounter SSH issues, verify your SSH access to GitHub: - ```bash - ssh -T git@github.com - # or try cloning manually - git clone git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git - ``` - -6. Commit the changes: - ```bash - git add . - git commit -m "[skip ci] Add Gruntwork Pipelines" - git push origin gruntwork-pipelines - ``` - -7. Create a merge request in GitLab and review the changes. - -### Step 4: Install AWS OIDC Provider and IAM Roles for Pipelines - -1. Navigate to the `_global` folder under each account in your repository and review the Terragrunt files that were created: - - The GitLab OIDC identity provider in AWS. - - :::note - If using a custom GitLab instance, ensure the `URL` and `audiences` inputs in this configuration are correct. - ::: - - - IAM roles for your the account (`root-pipelines-plan` and `root-pipelines-apply`) - -2. Apply these configurations to create the required AWS resources: - ```bash - cd $$ACCOUNT_NAME$$/_global/ - terragrunt run-all plan - terragrunt run-all apply - ``` - - :::note - - In the event you already have an OIDC provider for your SCM in the AWS account you can import the existing one: - - ``` - cd _global/$$ACCOUNT_NAME$$/gitlab-pipelines-openid-connect-provider/ - terragrunt import "aws_iam_openid_connect_provider.gitlab" "ARN_OF_EXISTING_OIDC_PROVIDER" - ``` - - - ::: - -### Step 5: Complete the Setup - -1. Return to GitLab and merge the merge request with your changes. -2. Ensure that `PIPELINES_GITLAB_TOKEN` and `PIPELINES_GITLAB_READ_TOKEN` are set as a CI/CD variables in your group or project if you haven't already (see the [Machine Users setup guide](/2.0/docs/pipelines/installation/viamachineusers#gitlab) for details). -3. Test your setup by creating a new branch with some sample infrastructure code and creating a merge request. - -## Next Steps - -After setting up Pipelines, you can: - -- [Deploy your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change) -- [Learn how to run plan and apply operations](/2.0/docs/pipelines/guides/running-plan-apply) -- [Extend Pipelines with custom actions](/2.0/docs/pipelines/guides/extending-pipelines) - -## Troubleshooting - -If you encounter issues during setup: - -- Ensure your GitLab CI user has the correct permissions to your group and projects -- Verify that both `PIPELINES_GITLAB_TOKEN` and `PIPELINES_GITLAB_READ_TOKEN` are set correctly as CI/CD variables and are *NOT* marked as protected -- Confirm your GitLab group has been authorized by Gruntwork for Pipelines usage - -For further assistance, contact [support@gruntwork.io](mailto:support@gruntwork.io). diff --git a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx new file mode 100644 index 0000000000..afe386192a --- /dev/null +++ b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx @@ -0,0 +1,392 @@ +# Bootstrap Pipelines in a New GitLab Project + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import PersistentCheckbox from '/src/components/PersistentCheckbox'; +import CustomizableValue from '/src/components/CustomizableValue'; + +To configure Gruntwork Pipelines in a new GitLab project, complete the following steps (which are explained in detail below): + +1. (If using a self-hosted GitLab instance) Ensure OIDC configuration and JWKS are publicly accessible. +2. Create an `infrastructure-live` project. +3. Configure machine user tokens for GitLab access, or ensure that the appropriate machine user tokens are set up as project or organization secrets. +4. Create `.gruntwork` HCL configurations to tell Pipelines how to authenticate in your environments. +5. Create `.gitlab-ci.yml` to tell your GitLab CI/CD pipeline how to run your pipelines. +6. Commit and push your changes to your project. + +## Ensure OIDC configuration and JWKS are publicly accessible + +This step only applies if you are using a self-hosted GitLab instance that is not accessible from the public internet. If you are using GitLab.com or a self-hosted instance that is publicly accessible, you can skip this step. + +1. [Follow GitLab's instructions](https://docs.gitlab.com/ci/cloud_services/aws/#configure-a-non-public-gitlab-instance) for hosting your OIDC configuration and JWKS in a public location (e.g. S3 Bucket). This is necessary for both Gruntwork and the AWS OIDC provider to access the GitLab OIDC configuration and JWKS when authenticating JWT's generated by your custom instance. +2. Note the (stored as `ci_id_tokens_issuer_url` in your `gitlab.rb` file per GitLab's instructions) generated above for reuse in the next steps. + +:::note Progress Checklist + + + +::: + +## Creating the infrastructure-live project + +Creating an `infrastructure-live` project is fairly straightforward. First, create a new project using the official GitLab documentation for [creating repositories](https://docs.gitlab.com/user/project/repository/). Name the project something like `infrastructure-live` and make it private (or internal). + +## Configuring SCM Access + +Pipelines needs the ability to interact with Source Control Management (SCM) platforms to fetch resources (e.g. IaC code, reusable CI/CD code and the Pipelines binary itself). + +For GitLab, you'll need to configure SCM access using [machine users](/2.0/docs/pipelines/installation/viamachineusers) with appropriate Personal Access Tokens (PATs). + +:::note Progress Checklist + + + +::: + +## Creating Cloud Resources for Pipelines + +To start using Pipelines, you'll need to ensure that requisite cloud resources are provisioned in your cloud provider(s) to start managing your infrastructure with Pipelines. + +:::note + +If you are using the [Gruntwork Account Factory](/2.0/docs/accountfactory/architecture), this will be done automatically during onboarding and in the process of [vending every new AWS account](/2.0/docs/accountfactory/guides/vend-aws-account), so you don't need to worry about this. + +::: + +Clone your `infrastructure-live` project repository to your local machine using [Git](https://docs.gitlab.com/user/project/repository/index.html#clone-a-repository). + +:::tip + +If you don't have Git installed, you can install it by following the official guide for [Git installation](https://git-scm.com/downloads). + +::: + +For example: + +```bash +git clone git@gitlab.com:acme/infrastructure-live.git +cd infrastructure-live +``` + +:::note Progress Checklist + + + + +::: + +To bootstrap your `infrastructure-live` repository, we'll use Boilerplate to scaffold it with the necessary IaC code to provision the infrastructure necessary for Pipelines to function. + +The easiest way to install Boilerplate is to use `mise` to install it. + +:::tip + +If you don't have `mise` installed, you can install it by following the official guide for [mise installation](https://mise.jdx.dev/getting-started.html). + +::: + +```bash +mise use -g boilerplate@latest +``` + +:::tip + +If you'd rather install a specific version of Boilerplate, you can use the `ls-remote` command to list the available versions. + +```bash +mise ls-remote boilerplate +``` + +::: + +:::note Progress Checklist + + + +::: + +### Cloud-specific bootstrap instructions + +The resources that you need provisioned in AWS to start managing resources with Pipelines are: + +1. An OpenID Connect (OIDC) provider +2. An IAM role for Pipelines to assume when running Terragrunt plan commands +3. An IAM role for Pipelines to assume when running Terragrunt apply commands + +For every account you want Pipelines to manage infrastructure in. + +:::tip Don't Panic! + +This may seem like a lot to set up, but the content you need to add to your `infrastructure-live` repository is minimal. The majority of the work will be pulled from a reusable catalog that you'll reference in your `infrastructure-live` repository. + +If you want to peruse the catalog that's used in the bootstrap process, you can take a look at the [terragrunt-scale-catalog](https://github.com/gruntwork-io/terragrunt-scale-catalog) repository. + +::: + +The process that we'll follow to get these resources ready for Pipelines is: + +1. Set up the Terragrunt configurations in your `infrastructure-live` repository for bootstrapping Pipelines in a single AWS account +2. Use Terragrunt to provision these resources in your AWS account +3. (Optionally) Bootstrap additional AWS accounts until all your AWS accounts are ready for Pipelines + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Bootstrap your `infrastructure-live` repository

    + +To bootstrap your `infrastructure-live` repository, we'll use Boilerplate to scaffold it with the necessary content for Pipelines to function. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/gitlab/infrastructure-live?ref=v1.0.0' \ + --output-folder . +``` + +:::tip + +You can just reply `y` to all the prompts to include dependencies, and accept defaults unless you want to customize something. + +Alternatively, you could run Boilerplate non-interactively by passing the `--non-interactive` flag. You'll need to supply the relevant values for required variables in that case. + +e.g. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/gitlab/infrastructure-live?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=dev' \ + --var 'GitLabGroupName=acme' \ + --var 'GitLabRepoName=infrastructure-live' \ + --var 'GitLabInstanceURL=https://gitlab.com' \ + --var 'AWSAccountID=123456789012' \ + --var 'AWSRegion=us-east-1' \ + --var 'StateBucketName=my-state-bucket' \ + --non-interactive +``` + +You can also choose to store these values in a YAML file and pass it to Boilerplate using the `--var-file` flag. + +```yaml title="vars.yml" +AccountName: dev +GitLabGroupName: acme +GitLabRepoName: infrastructure-live +GitLabInstanceURL: https://gitlab.com +AWSAccountID: 123456789012 +AWSRegion: us-east-1 +StateBucketName: my-state-bucket +``` + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/gitlab/infrastructure-live?ref=v1.0.0' \ + --output-folder . \ + --var-file vars.yml \ + --non-interactive +``` + +If you're using a self-hosted GitLab instance, you'll want to make sure the issuer is set correctly when calling Boilerplate. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/gitlab/infrastructure-live?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=dev' \ + --var 'GitLabGroupName=acme' \ + --var 'GitLabRepoName=infrastructure-live' \ + --var 'GitLabInstanceURL=https://gitlab.com' \ + --var 'AWSAccountID=123456789012' \ + --var 'AWSRegion=us-east-1' \ + --var 'StateBucketName=my-state-bucket' \ + --var 'Issuer=$$ISSUER_URL$$' \ + --non-interactive +``` + +::: + +:::note Progress Checklist + + + +::: + +Next, install Terragrunt and OpenTofu locally (the `.mise.toml` file in the root of the repository after scaffolding should already be set to the versions you want for Terragrunt and OpenTofu): + +```bash +mise install +``` + +:::note Progress Checklist + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Provisioning the resources

    + +Once you've set up the Terragrunt configurations, you can use Terragrunt to provision the resources in your AWS account. + +:::tip + +Make sure that you're authenticated with AWS locally before proceeding. + +You can follow the documentation [here](https://search.opentofu.org/provider/hashicorp/aws/latest#authentication-and-configuration) to authenticate with the AWS provider. You are advised to choose an authentication method that doesn't require any hard-coded credentials, like assuming an IAM role. + +::: + +First, make sure that everything is set up correctly by running a plan in the `bootstrap` directory in `name-of-account/_global` where `name-of-account` is the name of the first AWS account you want to bootstrap. + +```bash title="name-of-account/_global/bootstrap" +terragrunt run --all --non-interactive --provider-cache plan +``` + +:::tip + +We're using the `--provider-cache` flag here to ensure that we don't re-download the AWS provider on every run by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). + +::: + +:::note Progress Checklist + + + +::: + +Next, apply the changes to your account. + +```bash title="name-of-account/_global/bootstrap" +terragrunt run --all --non-interactive --provider-cache apply +``` + +:::note Progress Checklist + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Optional: Bootstrapping additional AWS accounts

    + +If you have multiple AWS accounts, and you want to bootstrap them as well, you can do so by following a similar, but slightly condensed process. + +For each additional account you want to bootstrap, you'll use Boilerplate in the root of your `infrastructure-live` repository to scaffold out the necessary content for just that account. + +:::tip + +If you are going to bootstrap more AWS accounts, you'll probably want to commit your existing changes before proceeding. + +```bash +git add . +git commit -m "Add core Pipelines scaffolding [skip ci]" +``` + +The `[skip ci]` in the commit message is just in-case you push your changes up to your repository at this state, as you don't want to trigger Pipelines yet. + +::: + +Just like before, you'll use Boilerplate to scaffold out the necessary content for just that account. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/gitlab/infrastructure-live?ref=v1.0.0' \ + --output-folder . +``` + +:::tip + +Again, you can just reply `y` to all the prompts to include dependencies, and accept defaults unless you want to customize something. + +Alternatively, you could run Boilerplate non-interactively by passing the `--non-interactive` flag. You'll need to supply the relevant values for required variables in that case. + +e.g. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/gitlab/account?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=prod' \ + --var 'AWSAccountID=987654321012' \ + --var 'AWSRegion=us-east-1' \ + --var 'StateBucketName=my-prod-state-bucket' \ + --var 'GitLabGroupName=acme' \ + --var 'GitLabRepoName=infrastructure-live' \ + --var 'GitLabInstanceURL=https://gitlab.com' \ + --non-interactive +``` + +If you prefer to store the values in a YAML file and pass it to Boilerplate using the `--var-file` flag, you can do so like this: + +```yaml title="vars.yml" +AccountName: prod +AWSAccountID: 987654321012 +AWSRegion: us-east-1 +StateBucketName: my-prod-state-bucket +GitLabGroupName: acme +GitLabRepoName: infrastructure-live +GitLabInstanceURL: https://gitlab.com +``` + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/gitlab/account?ref=v1.0.0' \ + --output-folder . \ + --var-file vars.yml \ + --non-interactive +``` + +::: + +:::note Progress Checklist + + + +::: + +Once you've scaffolded out the additional accounts you want to bootstrap, you can use Terragrunt to provision the resources in each of these accounts. + +:::tip + +Make sure that you authenticate to each AWS account you are bootstrapping using AWS credentials for that account before you attempt to provision resources in it. + +::: + +For each account you want to bootstrap, you'll need to run the following commands: + +```bash +cd /_global/bootstrap +terragrunt run --all --non-interactive --provider-cache plan +terragrunt run --all --non-interactive --provider-cache apply +``` + +:::note Progress Checklist + + + + +::: + +## Commit and push your changes + +Commit and push your changes to your repository. + + :::note + +You should include `[skip ci]` in your commit message here to prevent triggering the Pipelines workflow. + +::: + +```bash +git add . +git commit -m "Add Pipelines GitLab CI workflow [skip ci]" +git push +``` + +:::note Progress Checklist + + + + +::: + +🚀 You've successfully added Gruntwork Pipelines to your new repository! + +## Next steps + +You have successfully completed the installation of Gruntwork Pipelines in a new repository. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md) to begin deploying changes. diff --git a/docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md b/docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md index 024a2c5183..14a30f97ff 100644 --- a/docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md +++ b/docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md @@ -13,8 +13,8 @@ To use Gruntwork Pipelines in an **existing** GitLab repository, see this [guide Before you begin, make sure you have: - Basic familiarity with Git, GitLab, and infrastructure as code concepts -- Completed the [AWS Landing Zone setup](/2.0/docs/pipelines/installation/prerequisites/awslandingzone) -- Have programmatic access to the AWS accounts created in the [AWS Landing Zone setup](/2.0/docs/pipelines/installation/prerequisites/awslandingzone) +- Completed the [AWS Landing Zone setup](/2.0/docs/accountfactory/prerequisites/awslandingzone) +- Have programmatic access to the AWS accounts created in the [AWS Landing Zone setup](/2.0/docs/accountfactory/prerequisites/awslandingzone) - Completed the [Pipelines Auth setup for GitLab](/2.0/docs/pipelines/installation/viamachineusers#gitlab) and setup a machine user with appropriate PAT tokens - Local access to Gruntwork's GitHub repositories, specifically the [architecture catalog](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/) diff --git a/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx b/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx new file mode 100644 index 0000000000..aff5927f5d --- /dev/null +++ b/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx @@ -0,0 +1,969 @@ +# Bootstrap Pipelines in a New GitHub Repository + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import PersistentCheckbox from '/src/components/PersistentCheckbox'; + +To configure Gruntwork Pipelines in a new GitHub repository, complete the following steps (which are explained in detail below): + +1. Create an `infrastructure-live` repository. +2. Configure the Gruntwork.io GitHub App to authorize your `infrastructure-live` repository, or ensure that the appropriate machine user tokens are set up as repository or organization secrets. +3. Create `.gruntwork` HCL configurations to tell Pipelines how to authenticate in your environments. +4. Create `.github/workflows/pipelines.yml` to tell your GitHub Actions workflow how to run your pipelines. +5. Commit and push your changes to your repository. + +## Creating the infrastructure-live repository + +Creating an `infrastructure-live` repository is fairly straightforward. First, create a new repository using the official GitHub documentation for [creating repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository). Name the repository something like `infrastructure-live` and make it private (or internal). + +## Configuring SCM Access + +Pipelines needs the ability to interact with Source Control Management (SCM) platforms to fetch resources (e.g. IaC code, reusable CI/CD code and the Pipelines binary itself). + +There are two ways to configure SCM access for Pipelines: + +1. Using the [Gruntwork.io GitHub App](/2.0/docs/pipelines/installation/viagithubapp#configuration) (recommended for most GitHub users). +2. Using a [machine user](/2.0/docs/pipelines/installation/viamachineusers) (recommended for GitHub users who cannot use the GitHub App). + +:::note Progress Checklist + + + +::: + +## Creating Cloud Resources for Pipelines + +To start using Pipelines, you'll need to ensure that requisite cloud resources are provisioned in your cloud provider(s) to start managing your infrastructure with Pipelines. + +:::note + +If you are using the [Gruntwork Account Factory](/2.0/docs/accountfactory/architecture), this will be done automatically during onboarding and in the process of [vending every new AWS account](/2.0/docs/accountfactory/guides/vend-aws-account), so you don't need to worry about this. + +::: + +Clone your `infrastructure-live` repository to your local machine using [Git](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository). + +:::tip + +If you don't have Git installed, you can install it by following the official guide for [Git installation](https://git-scm.com/downloads). + +::: + +For example: + +```bash +git clone git@github.com:acme/infrastructure-live.git +cd infrastructure-live +``` + +:::note Progress Checklist + + + + +::: + +To bootstrap your `infrastructure-live` repository, we'll use Boilerplate to scaffold it with the necessary IaC code to provision the infrastructure necessary for Pipelines to function. + +The easiest way to install Boilerplate is to use `mise` to install it. + +:::tip + +If you don't have `mise` installed, you can install it by following the official guide for [mise installation](https://mise.jdx.dev/getting-started.html). + +::: + +```bash +mise use -g boilerplate@latest +``` + +:::tip + +If you'd rather install a specific version of Boilerplate, you can use the `ls-remote` command to list the available versions. + +```bash +mise ls-remote boilerplate +``` + +::: + +:::note Progress Checklist + + + +::: + +### Cloud-specific bootstrap instructions + + + + +The resources that you need provisioned in AWS to start managing resources with Pipelines are: + +1. An OpenID Connect (OIDC) provider +2. An IAM role for Pipelines to assume when running Terragrunt plan commands +3. An IAM role for Pipelines to assume when running Terragrunt apply commands + +For every account you want Pipelines to manage infrastructure in. + +:::tip Don't Panic! + +This may seem like a lot to set up, but the content you need to add to your `infrastructure-live` repository is minimal. The majority of the work will be pulled from a reusable catalog that you'll reference in your `infrastructure-live` repository. + +If you want to peruse the catalog that's used in the bootstrap process, you can take a look at the [terragrunt-scale-catalog](https://github.com/gruntwork-io/terragrunt-scale-catalog) repository. + +::: + +The process that we'll follow to get these resources ready for Pipelines is: + +1. Set up the Terragrunt configurations in your `infrastructure-live` repository for bootstrapping Pipelines in a single AWS account +2. Use Terragrunt to provision these resources in your AWS account +3. (Optionally) Bootstrap additional AWS accounts until all your AWS accounts are ready for Pipelines + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Bootstrap your `infrastructure-live` repository

    + +To bootstrap your `infrastructure-live` repository, we'll use Boilerplate to scaffold it with the necessary content for Pipelines to function. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/github/infrastructure-live?ref=v1.0.0' \ + --output-folder . +``` + +:::tip + +You can just reply `y` to all the prompts to include dependencies, and accept defaults unless you want to customize something. + +Alternatively, you could run Boilerplate non-interactively by passing the `--non-interactive` flag. You'll need to supply the relevant values for required variables in that case. + +e.g. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/github/infrastructure-live?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=dev' \ + --var 'GitHubOrgName=acme' \ + --var 'GitHubRepoName=infrastructure-live' \ + --var 'AWSAccountID=123456789012' \ + --var 'AWSRegion=us-east-1' \ + --var 'StateBucketName=my-state-bucket' \ + --non-interactive +``` + +You can also choose to store these values in a YAML file and pass it to Boilerplate using the `--var-file` flag. + +```yaml title="vars.yml" +AccountName: dev +GitHubOrgName: acme +GitHubRepoName: infrastructure-live +AWSAccountID: 123456789012 +AWSRegion: us-east-1 +StateBucketName: my-state-bucket +``` + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/github/infrastructure-live?ref=v1.0.0' \ + --output-folder . \ + --var-file vars.yml \ + --non-interactive +``` + +::: + +:::note Progress Checklist + + + +::: + +Next, install Terragrunt and OpenTofu locally (the `.mise.toml` file in the root of the repository after scaffolding should already be set to the versions you want for Terragrunt and OpenTofu): + +```bash +mise install +``` + +:::note Progress Checklist + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Provisioning the resources

    + +Once you've set up the Terragrunt configurations, you can use Terragrunt to provision the resources in your AWS account. + +:::tip + +Make sure that you're authenticated with AWS locally before proceeding. + +You can follow the documentation [here](https://search.opentofu.org/provider/hashicorp/aws/latest#authentication-and-configuration) to authenticate with the AWS provider. You are advised to choose an authentication method that doesn't require any hard-coded credentials, like assuming an IAM role. + +::: + +First, make sure that everything is set up correctly by running a plan in the `bootstrap` directory in `name-of-account/_global` where `name-of-account` is the name of the first AWS account you want to bootstrap. + +```bash title="name-of-account/_global/bootstrap" +terragrunt run --all --non-interactive --provider-cache plan +``` + +:::tip + +We're using the `--provider-cache` flag here to ensure that we don't re-download the AWS provider on every run by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). + +::: + +:::note Progress Checklist + + + +::: + +Next, apply the changes to your account. + +```bash title="name-of-account/_global/bootstrap" +terragrunt run --all --non-interactive --provider-cache apply +``` + +:::note Progress Checklist + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Optional: Bootstrapping additional AWS accounts

    + +If you have multiple AWS accounts, and you want to bootstrap them as well, you can do so by following a similar, but slightly condensed process. + +For each additional account you want to bootstrap, you'll use Boilerplate in the root of your `infrastructure-live` repository to scaffold out the necessary content for just that account. + +:::tip + +If you are going to bootstrap more AWS accounts, you'll probably want to commit your existing changes before proceeding. + +```bash +git add . +git commit -m "Add core Pipelines scaffolding [skip ci]" +``` + +The `[skip ci]` in the commit message is just in-case you push your changes up to your repository at this state, as you don't want to trigger Pipelines yet. + +::: + +Just like before, you'll use Boilerplate to scaffold out the necessary content for just that account. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/github/infrastructure-live?ref=v1.0.0' \ + --output-folder . +``` + +:::tip + +Again, you can just reply `y` to all the prompts to include dependencies, and accept defaults unless you want to customize something. + +Alternatively, you could run Boilerplate non-interactively by passing the `--non-interactive` flag. You'll need to supply the relevant values for required variables in that case. + +e.g. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/github/account?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=prod' \ + --var 'AWSAccountID=987654321012' \ + --var 'AWSRegion=us-east-1' \ + --var 'StateBucketName=my-prod-state-bucket' \ + --var 'GitHubOrgName=acme' \ + --var 'GitHubRepoName=infrastructure-live' \ + --non-interactive +``` + +If you prefer to store the values in a YAML file and pass it to Boilerplate using the `--var-file` flag, you can do so like this: + +```yaml title="vars.yml" +AccountName: prod +AWSAccountID: 987654321012 +AWSRegion: us-east-1 +StateBucketName: my-prod-state-bucket +GitHubOrgName: acme +GitHubRepoName: infrastructure-live +``` + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/aws/github/account?ref=v1.0.0' \ + --output-folder . \ + --var-file vars.yml \ + --non-interactive +``` + +::: + +:::note Progress Checklist + + + +::: + +Once you've scaffolded out the additional accounts you want to bootstrap, you can use Terragrunt to provision the resources in each of these accounts. + +:::tip + +Make sure that you authenticate to each AWS account you are bootstrapping using AWS credentials for that account before you attempt to provision resources in it. + +::: + +For each account you want to bootstrap, you'll need to run the following commands: + +```bash +cd /_global/bootstrap +terragrunt run --all --non-interactive --provider-cache plan +terragrunt run --all --non-interactive --provider-cache apply +``` + +:::note Progress Checklist + + + + +::: + +
    + + +The resources that you need provisioned in Azure to start managing resources with Pipelines are: + +1. An Azure Resource Group for OpenTofu state resources + 1. An Azure Storage Account in that resource group for OpenTofu state storage + 1. An Azure Storage Container in that storage account for OpenTofu state storage +2. An Entra ID Application to use for plans + 1. A Flexible Federated Identity Credential for the application to authenticate with your repository on any branch + 2. A Service Principal for the application to be used in role assignments + 1. A role assignment for the service principal to access the Azure subscription + 2. A role assignment for the service principal to access the Azure Storage Account +3. An Entra ID Application to use for applies + 1. A Federated Identity Credential for the application to authenticate with your repository on the deploy branch + 2. A Service Principal for the application to be used in role assignments + 1. A role assignment for the service principal to access the Azure subscription + +:::tip Don't Panic! + +This may seem like a lot to set up, but the content you need to add to your `infrastructure-live` repository is minimal. The majority of the work will be pulled from a reusable catalog that you'll reference in your `infrastructure-live` repository. + +If you want to peruse the catalog that's used in the bootstrap process, you can take a look at the [terragrunt-scale-catalog](https://github.com/gruntwork-io/terragrunt-scale-catalog) repository. + +::: + +The process that we'll follow to get these resources ready for Pipelines is: + +1. Set up these bootstrap resources by creating some Terragrunt configurations in your `infrastructure-live` repository for bootstrapping Pipelines in a single Azure subscription +2. Use Terragrunt to provision these resources in your Azure subscription +3. Finalizing Terragrunt configurations using the bootstrap resources we just provisioned +4. Pull the bootstrap resources into state, now that we have configured a remote state backend +5. (Optionally) Bootstrap additional Azure subscriptions until all your Azure subscriptions are ready for Pipelines + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Bootstrap your `infrastructure-live` repository

    + +To bootstrap your `infrastructure-live` repository, we'll use Boilerplate to scaffold it with the necessary content for Pipelines to function. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/github/infrastructure-live?ref=v1.0.0' \ + --output-folder . +``` + +:::tip + +You can just reply `y` to all the prompts to include dependencies, and accept defaults unless you want to customize something. + +Alternatively, you could run Boilerplate non-interactively by passing the `--non-interactive` flag. You'll need to supply the relevant values for required variables in that case. + +e.g. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/github/infrastructure-live?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=dev' \ + --var 'GitHubOrgName=acme' \ + --var 'GitHubRepoName=infrastructure-live' \ + --var 'SubscriptionName=dev' \ + --var 'AzureTenantID=00000000-0000-0000-0000-000000000000' \ + --var 'AzureSubscriptionID=11111111-1111-1111-1111-111111111111' \ + --var 'AzureLocation=East US' \ + --var 'StateResourceGroupName=pipelines-rg' \ + --var 'StateStorageAccountName=mysa' \ + --var 'StateStorageContainerName=tfstate' \ + --non-interactive +``` + +You can also choose to store these values in a YAML file and pass it to Boilerplate using the `--var-file` flag. + +```yaml title="vars.yml" +AccountName: dev +GitHubOrgName: acme +GitHubRepoName: infrastructure-live +AzureTenantID: 00000000-0000-0000-0000-000000000000 +AzureSubscriptionID: 11111111-1111-1111-1111-111111111111 +AzureLocation: East US +StateResourceGroupName: pipelines-rg +StateStorageAccountName: my-storage-account +StateStorageContainerName: tfstate +``` + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/github/infrastructure-live?ref=v1.0.0' \ + --output-folder . \ + --var-file vars.yml \ + --non-interactive +``` + +::: + +:::note Progress Checklist + +::: + +Next, install Terragrunt and OpenTofu locally (the `.mise.toml` file in the root of the repository after scaffolding should already be set to the versions you want for Terragrunt and OpenTofu): + +```bash +mise install +``` + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Provisioning the resources

    + +Once you've set up the Terragrunt configurations, you can use Terragrunt to provision the resources in your Azure subscription. + +If you haven't already, you'll want to authenticate to Azure using the `az` CLI. + +```bash +az login +``` + +:::note Progress Checklist + + + +::: + + +To dynamically configure the Azure provider with a given tenant ID and subscription ID, ensure that you are exporting the following environment variables if you haven't the values via the `az` CLI: + +- `ARM_TENANT_ID` +- `ARM_SUBSCRIPTION_ID` + +For example: + +```bash +export ARM_TENANT_ID="00000000-0000-0000-0000-000000000000" +export ARM_SUBSCRIPTION_ID="11111111-1111-1111-1111-111111111111" +``` + +:::note Progress Checklist + + + +::: + +First, make sure that everything is set up correctly by running a plan in the subscription directory. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache plan +``` + +:::tip + +We're using the `--provider-cache` flag here to ensure that we don't re-download the Azure provider on every run to speed up the process. + +::: + +:::note Progress Checklist + + + +::: + +Next, apply the changes to your subscription. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache --no-stack-generate apply +``` + +:::tip + +We're adding the `--no-stack-generate` flag here, as Terragrunt will already have the requisite stack configurations generated, and we don't want to accidentally overwrite any configurations while we have state stored locally before we pull them into remote state. + +::: + +:::note Progress Checklist + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Finalizing Terragrunt configurations

    + +Once you've provisioned the resources in your Azure subscription, you can finalize the Terragrunt configurations using the bootstrap resources we just provisioned. + +First, edit the `root.hcl` file in the root of your `infrastructure-live` repository to leverage the storage account we just provisioned. + +```hcl title="root.hcl" +locals { + sub_hcl = read_terragrunt_config(find_in_parent_folders("sub.hcl")) + + state_resource_group_name = local.sub_hcl.locals.state_resource_group_name + state_storage_account_name = local.sub_hcl.locals.state_storage_account_name + state_storage_container_name = local.sub_hcl.locals.state_storage_container_name +} + +# FIXME: Uncomment the code below when you've successfully bootstrapped Pipelines state. +# +# remote_state { +# backend = "azurerm" +# generate = { +# path = "backend.tf" +# if_exists = "overwrite" +# } +# config = { +# resource_group_name = local.state_resource_group_name +# storage_account_name = local.state_storage_account_name +# container_name = local.state_storage_container_name +# key = "${path_relative_to_include()}/tofu.tfstate" +# } +# } + +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + +::: + +Next, finalize the `.gruntwork/environment-.hcl` file in the root of your `infrastructure-live` repository to reference the IDs for the applications we just provisioned. + +```hcl title=".gruntwork/environment-.hcl" +environment "dev" { + filter { + paths = ["dev/*"] + } + + authentication { + azure_oidc { + tenant_id = "00000000-0000-0000-0000-000000000000" + subscription_id = "11111111-1111-1111-1111-111111111111" + + plan_client_id = "" # FIXME: Fill in the client ID for the plan application after bootstrapping + apply_client_id = "" # FIXME: Fill in the client ID for the apply application after bootstrapping + } + } +} +``` + +You can find the values for the `plan_client_id` and `apply_client_id` by running `terragrunt stack output` in the `bootstrap` directory in `name-of-subscription/bootstrap`. + +```bash +terragrunt stack output +``` + +The relevant bits that you want to extract from the stack output are the following: + +```hcl +bootstrap = { + apply_app = { + client_id = "33333333-3333-3333-3333-333333333333" + } + plan_app = { + client_id = "44444444-4444-4444-4444-444444444444" + } +} +``` + +You can use those values to set the values for `plan_client_id` and `apply_client_id` in the `.gruntwork/environment-.hcl` file. + +:::note Progress Checklist + + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Pulling the resources into state

    + +Once you've provisioned the resources in your Azure subscription, you can pull the resources into state using the storage account we just provisioned. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache --no-stack-generate -- init -migrate-state -force-copy +``` + +:::tip + +We're adding the `-force-copy` flag here to avoid any issues with OpenTofu waiting for an interactive prompt to copy up local state. + +::: + +:::note Progress Checklist + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Optional: Bootstrapping additional Azure subscriptions

    + +If you have multiple Azure subscriptions, and you want to bootstrap them as well, you can do so by following a similar, but slightly condensed process. + +For each additional subscription you want to bootstrap, you'll use Boilerplate in the root of your `infrastructure-live` repository to scaffold out the necessary content for just that subscription. + +:::tip + +If you are going to bootstrap more Azure subscriptions, you'll probably want to commit your existing changes before proceeding. + +```bash +git add . +git commit -m "Add additional Azure subscriptions [skip ci]" +``` + +::: + +Just like before, you'll use Boilerplate to scaffold out the necessary content for just that subscription. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/github/subscription?ref=v1.0.0' \ + --output-folder . +``` + +:::tip + +Again, you can just reply `y` to all the prompts to include dependencies, and accept defaults unless you want to customize something. + +::: + +Alternatively, you could run Boilerplate non-interactively by passing the `--non-interactive` flag. You'll need to supply the relevant values for required variables in that case. + +e.g. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/github/subscription?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=prod' \ + --var 'GitHubOrgName=acme' \ + --var 'GitHubRepoName=infrastructure-live' \ + --var 'SubscriptionName=prod' \ + --var 'AzureTenantID=00000000-0000-0000-0000-000000000000' \ + --var 'AzureSubscriptionID=99999999-9999-9999-9999-999999999999' \ + --var 'AzureLocation=East US' \ + --var 'StateResourceGroupName=pipelines-rg' \ + --var 'StateStorageAccountName=myprodsa' \ + --var 'StateStorageContainerName=tfstate' \ + --non-interactive +``` + +If you prefer to store the values in a YAML file and pass it to Boilerplate using the `--var-file` flag, you can do so like this: + +```yaml title="vars.yml" +AccountName: prod +GitHubOrgName: acme +GitHubRepoName: infrastructure-live +SubscriptionName: prod +AzureTenantID: 00000000-0000-0000-0000-000000000000 +AzureSubscriptionID: 99999999-9999-9999-9999-999999999999 +AzureLocation: East US +StateResourceGroupName: pipelines-rg +StateStorageAccountName: myprodsa +StateStorageContainerName: tfstate +``` + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/github/subscription?ref=v1.0.0' \ + --output-folder . \ + --var-file vars.yml \ + --non-interactive +``` + +:::note Progress Checklist + + + +::: + +To avoid issues with the remote state backend not existing yet, you'll want to comment out your remote state backend configurations in your `root.hcl` file before you start the bootstrap process for these new subscriptions. + +```hcl title="root.hcl" +locals { + sub_hcl = read_terragrunt_config(find_in_parent_folders("sub.hcl")) + + state_resource_group_name = local.sub_hcl.locals.state_resource_group_name + state_storage_account_name = local.sub_hcl.locals.state_storage_account_name + state_storage_container_name = local.sub_hcl.locals.state_storage_container_name +} + +# FIXME: Temporarily commented out again, pending successful bootstrap of the new subscription(s). +# +# remote_state { +# backend = "azurerm" +# generate = { +# path = "backend.tf" +# if_exists = "overwrite" +# } +# config = { +# resource_group_name = local.state_resource_group_name +# storage_account_name = local.state_storage_account_name +# container_name = local.state_storage_container_name +# key = "${path_relative_to_include()}/tofu.tfstate" +# } +# } + +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + +::: + +Just like before, you can use Terragrunt to provision the resources in each of these subscriptions. + +For each subscription you want to bootstrap, you'll need to run the following commands: + +```bash +cd /_global/bootstrap +terragrunt run --all --non-interactive --provider-cache plan +terragrunt run --all --non-interactive --provider-cache --no-stack-generate apply +``` + +:::tip + +We're adding the `--no-stack-generate` flag here, as Terragrunt will already have the requisite stack configurations generated, and we don't want to accidentally overwrite any configurations while we have state stored locally before we pull them into remote state. + +::: + +:::note Progress Checklist + + + + +::: + +Next, you can pull the resources into state using the storage account we just provisioned. + +First, edit the `root.hcl` file in the root of your `infrastructure-live` repository to uncomment the remote state backend configurations you commented out earlier. + +```hcl title="root.hcl" +locals { + sub_hcl = read_terragrunt_config(find_in_parent_folders("sub.hcl")) + + state_resource_group_name = local.sub_hcl.locals.state_resource_group_name + state_storage_account_name = local.sub_hcl.locals.state_storage_account_name + state_storage_container_name = local.sub_hcl.locals.state_storage_container_name +} + +remote_state { + backend = "azurerm" + generate = { + path = "backend.tf" + if_exists = "overwrite" + } + config = { + resource_group_name = local.state_resource_group_name + storage_account_name = local.state_storage_account_name + container_name = local.state_storage_container_name + key = "${path_relative_to_include()}/tofu.tfstate" + } +} + +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + +::: + +Next, you can pull the resources into state using the storage account we just provisioned. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache --no-stack-generate -- init -migrate-state -force-copy +``` + +:::tip + +We're adding the `-force-copy` flag here to avoid any issues with OpenTofu waiting for an interactive prompt to copy up local state. + +::: + +:::note Progress Checklist + + + +::: + +Finally, we can edit each of the `.gruntwork/environment-.hcl` files in the root of your `infrastructure-live` repository to reference the IDs for the applications we just provisioned. + +```hcl title=".gruntwork/environment-.hcl" +environment "prod" { + filter { + paths = ["prod/*"] + } + + authentication { + azure_oidc { + tenant_id = "00000000-0000-0000-0000-000000000000" + subscription_id = "99999999-9999-9999-9999-999999999999" + + plan_client_id = "" # FIXME: Fill in the client ID for the plan application after bootstrapping + apply_client_id = "" # FIXME: Fill in the client ID for the apply application after bootstrapping + } + } +} +``` + +You can find the values for the `plan_client_id` and `apply_client_id` by running `terragrunt stack output` in the `bootstrap` directory in `name-of-subscription/bootstrap`. + +```bash +terragrunt stack output +``` + +The relevant bits that you want to extract from the stack output are the following: + +```hcl +bootstrap = { + apply_app = { + client_id = "55555555-5555-5555-5555-555555555555" + } + plan_app = { + client_id = "66666666-6666-6666-6666-666666666666" + } +} +``` + +You can use those values to set the values for `plan_client_id` and `apply_client_id` in the `.gruntwork/environment-.hcl` file. + +:::note Progress Checklist + + + + +::: + +
    +
    + +## Commit and push your changes + +Commit and push your changes to your repository. + +:::note + +You should include `[skip ci]` in your commit message here to prevent triggering the Pipelines workflow. + +::: + +```bash +git add . +git commit -m "Add Pipelines GitHub Actions workflow [skip ci]" +git push +``` + +:::note Progress Checklist + + + + +::: + +🚀 You've successfully added Gruntwork Pipelines to your new repository! + +## Next steps + +You have successfully completed the installation of Gruntwork Pipelines in a new repository. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md) to begin deploying changes. diff --git a/docs/2.0/docs/pipelines/installation/authoverview.md b/docs/2.0/docs/pipelines/installation/authoverview.md index 6ed8a85d8d..b9023e00bc 100644 --- a/docs/2.0/docs/pipelines/installation/authoverview.md +++ b/docs/2.0/docs/pipelines/installation/authoverview.md @@ -1,25 +1,32 @@ -# Authenticating Gruntwork Pipelines +# SCM Authentication Overview -Gruntwork Pipelines requires authentication with GitHub/GitLab to perform various functions, including: -* Downloading Gruntwork code, such as the Pipelines binary and Terraform modules, from the `gruntwork-io` GitHub organization. -* Interacting with your repositories, such as: - * Creating pull requests. - * Commenting on pull requests. - * Creating new repositories via Account Factory. - * Updating repository settings, such as enforcing branch protection, via Account Factory. +Gruntwork Pipelines requires authentication with Source Control Management (SCM) platforms (e.g. GitHub, GitLab) for various reasons, including: -Gruntwork provides two authentication methods: a [GitHub App](/2.0/docs/pipelines/installation/viagithubapp.md) and CI Users ([Machine Users](/2.0/docs/pipelines/installation/viamachineusers.md)) with personal access tokens for Pipelines. +- Downloading Gruntwork software, such as the Pipelines binary and OpenTofu modules, from the `gruntwork-io` GitHub organization. +- Interacting with your repositories, such as: + - Creating pull requests. + - Commenting on pull requests. + - Creating new repositories via Account Factory. + - Updating repository settings, such as enforcing branch protection with Account Factory. -Both approaches support the core functionality of Pipelines. However, the GitHub App provides additional features and benefits, making it the recommended method. While Gruntwork strives to ensure feature parity between the two authentication mechanisms, certain advanced features are exclusive to the GitHub App, and this list is expected to grow over time. +Gruntwork provides two authentication methods: + +- [The Gruntwork.io GitHub App](/2.0/docs/pipelines/installation/viagithubapp.md) +- [CI Users (Machine Users)](/2.0/docs/pipelines/installation/viamachineusers) + +Both approaches support the core functionality of Pipelines. The GitHub App provides additional features and benefits, making it the recommended method for most customers that can use it. While Gruntwork strives to ensure feature parity between the two authentication mechanisms, certain advanced features are exclusive to the GitHub App, and this list is expected to grow over time. ## Summary of authentication mechanisms for GitHub **Advantages of the GitHub App**: + - Simplified setup process. - Access to enhanced features and functionality. - Improved user experience during regular operations. - Reduced maintenance, as there is no need to install, maintain, or rotate powerful tokens. **Advantages of Machine Users**: + - Compatibility with on-premises GitHub Enterprise installations that cannot interact with third-party servers (e.g., Gruntwork's backend). - Provides a fallback solution to ensure Pipelines continue functioning in the unlikely event of an outage affecting the Gruntwork-hosted backend that powers the GitHub App. +- Allows GitLab customers to download the Pipelines binary from GitLab CI Pipelines. diff --git a/docs/2.0/docs/pipelines/installation/branch-protection.md b/docs/2.0/docs/pipelines/installation/branch-protection.mdx similarity index 58% rename from docs/2.0/docs/pipelines/installation/branch-protection.md rename to docs/2.0/docs/pipelines/installation/branch-protection.mdx index c9dcda359e..399ca57d43 100644 --- a/docs/2.0/docs/pipelines/installation/branch-protection.md +++ b/docs/2.0/docs/pipelines/installation/branch-protection.mdx @@ -1,14 +1,8 @@ -# Branch Protection +# Adding Branch Protection to a GitHub Repository -Gruntwork Pipelines is designed to function within a PR-based workflow. Approving a pull request (PR) or merge request (MR) signals approval to deploy infrastructure, so it's important to configure repository settings and branch protection accurately. +Gruntwork Pipelines is designed to function within a pull request (PR) based workflow. Approving a pull request signals approval to deploy infrastructure, so it's important to configure repository settings and branch protection accurately. -## Recommended settings - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - +## GitHub Recommended Settings By default, Gruntwork Pipelines runs a `plan` on every push to a PR and an `apply` on every push to `main`. To ensure that infrastructure changes are reviewed and approved before deployment, branch protection should be enabled on `main` to prevent unauthorized changes. @@ -40,32 +34,13 @@ Below is an example of the recommended branch protection settings: GitHub Enterprise customers can also configure [push rulesets](https://docs.github.com/en/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets#push-rulesets). This feature allows restricting edits to `.github/workflows` files, ensuring infrastructure changes are properly reviewed and approved through Pipelines. Follow the documentation [here](https://docs.github.com/en/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/creating-rulesets-for-a-repository#creating-a-push-ruleset) to enable push rulesets if available. ::: - - - -## GitLab Recommended Settings - -For GitLab repositories, similar protection rules should be configured on the default branch (typically `main`). Navigate to `Settings > Repository > Protected branches` to configure the following settings: - -- Set the initial default branch to **Protected**. -- Set **Allowed to merge** to "Developers" or a specific group to control who can merge changes. -- Set **Allowed to push** to "No one" to prevent direct pushes to the protected branch. -- (Optional) Enable **Require approval from code owners** to ensure designated reviewers approve changes to specific files. - -Below is an example of the recommended GitLab branch protection settings: - -![GitLab Branch Protection Settings](/img/pipelines/gitlab_branch_protection.png) - - - - -## Merge Request/Pull Request Workflow +## Pull Request Workflow -1. Developers make infrastructure changes on a branch and create a PR (GitHub) or MR (GitLab) against the default branch. -2. On merge request/pull request creation, Gruntwork Pipelines runs `plan` for any changes and posts the results as a comment. +1. Developers make infrastructure changes on a branch and create a pull request (PR) against the default branch. +2. On pull request creation, Gruntwork Pipelines runs `plan` for any changes and posts the results as a comment. 3. Gruntwork Pipelines re-runs `plan` on every push to the branch and updates the results in a comment. 4. Gather approvals. If Code Owners is enabled, all relevant code owners must approve the changes. -5. Once approved, merge the merge request/pull request into the default branch. -6. Gruntwork Pipelines runs `apply` for the changes from the merge request/pull request. - - On success, the merge request/pull request is updated to indicate the successful `apply`. - - On failure, the merge request/pull request is updated to indicate the failure of the `apply`. If the failure cannot be resolved by retrying, a new merge request/pull request must be created to address the issues. +5. Once approved, merge the pull request into the default branch. +6. Gruntwork Pipelines runs `apply` for the changes from the pull request. + - On success, the pull request is updated to indicate the successful `apply`. + - On failure, the pull request is updated to indicate the failure of the `apply`. If the failure cannot be resolved by retrying, a new pull request must be created to address the issues. diff --git a/docs/2.0/docs/pipelines/installation/gitlab-branch-protection.md b/docs/2.0/docs/pipelines/installation/gitlab-branch-protection.md new file mode 100644 index 0000000000..51d936034e --- /dev/null +++ b/docs/2.0/docs/pipelines/installation/gitlab-branch-protection.md @@ -0,0 +1,27 @@ +# Adding Branch Protection to a GitLab Project + +Gruntwork Pipelines is designed to function within a merge request (MR) based workflow. Approving a merge request signals approval to deploy infrastructure, so it's important to configure repository settings and branch protection accurately. + +## GitLab Recommended Settings + +For GitLab repositories, similar protection rules should be configured on the default branch (typically `main`). Navigate to `Settings > Repository > Protected branches` to configure the following settings: + +- Set the initial default branch to **Protected**. +- Set **Allowed to merge** to "Developers" or a specific group to control who can merge changes. +- Set **Allowed to push** to "No one" to prevent direct pushes to the protected branch. +- (Optional) Enable **Require approval from code owners** to ensure designated reviewers approve changes to specific files. + +Below is an example of the recommended GitLab branch protection settings: + +![GitLab Branch Protection Settings](/img/pipelines/gitlab_branch_protection.png) + +## Merge Request Workflow + +1. Developers make infrastructure changes on a branch and create a merge request (MR) against the default branch. +2. On merge request creation, Gruntwork Pipelines runs `plan` for any changes and posts the results as a comment. +3. Gruntwork Pipelines re-runs `plan` on every push to the branch and updates the results in a comment. +4. Gather approvals. If Code Owners is enabled, all relevant code owners must approve the changes. +5. Once approved, merge the merge request into the default branch. +6. Gruntwork Pipelines runs `apply` for the changes from the merge request. + - On success, the merge request is updated to indicate the successful `apply`. + - On failure, the merge request is updated to indicate the failure of the `apply`. If the failure cannot be resolved by retrying, a new merge request must be created to address the issues. diff --git a/docs/2.0/docs/pipelines/installation/overview.md b/docs/2.0/docs/pipelines/installation/overview.md index 1a2320dc2b..aa37ab3978 100644 --- a/docs/2.0/docs/pipelines/installation/overview.md +++ b/docs/2.0/docs/pipelines/installation/overview.md @@ -2,9 +2,9 @@ Pipelines integrates multiple technologies to deliver a comprehensive CI/CD solution. This guide outlines the available installation methods and their respective use cases. -## Installation as part of DevOps Foundations +## Installation as part of Account Factory -Customers using DevOps Foundations benefit from a guided setup process that includes the complete installation of Gruntwork Pipelines. This process is facilitated by a Gruntwork solutions engineer and includes the following steps: +Customers using Account Factory benefit from a guided setup process that includes the complete installation of Gruntwork Pipelines. This process is facilitated by a Gruntwork solutions engineer and includes the following steps: 1. Creating a new `infrastructure-live-root` repository from the [`infrastructure-live-root-template`](https://github.com/gruntwork-io/infrastructure-live-root-template) template. 2. (On GitHub) Installing the [Gruntwork.io GitHub App](https://github.com/apps/gruntwork-io) on the `infrastructure-live-root` repository or across the entire organization. For detailed instructions, refer to [this guide](/2.0/docs/pipelines/installation/viagithubapp). @@ -12,11 +12,11 @@ Customers using DevOps Foundations benefit from a guided setup process that incl Completing these steps results in a repository fully configured for automated infrastructure deployments using GitOps workflows. -## Installation via manual setup +## Standalone Installation -For users not leveraging DevOps Foundations or needing Gruntwork Pipelines for a standalone repository with existing Terragrunt configurations, Gruntwork Pipelines can be installed as an independent GitHub Actions or GitLab pipelines workflow. +For users not leveraging Account Factory or needing Gruntwork Pipelines for a standalone repository with existing Terragrunt configurations, Gruntwork Pipelines can be installed as an independent GitHub Actions Workflow or GitLab CI Pipeline. -To learn more about this process, consult the documentation for [Adding Pipelines to an Existing Repository](/2.0/docs/pipelines/installation/addingexistingrepo). +To learn more about this process, consult the documentation for [Adding Pipelines to a New Repository](/2.0/docs/pipelines/installation/addingnewrepo) or [Adding Pipelines to an Existing Repository](/2.0/docs/pipelines/installation/addingexistingrepo). ## Platform differences @@ -29,15 +29,9 @@ For GitHub Actions, you have two authentication options: 1. [GitHub App Authentication](/2.0/docs/pipelines/installation/viagithubapp) (Recommended) 2. [Machine User Authentication](/2.0/docs/pipelines/installation/viamachineusers) -### GitLab CI/CD (Beta) +### GitLab CI/CD For GitLab CI/CD: 1. [Machine User Authentication](/2.0/docs/pipelines/installation/viamachineusers) is the only supported method -2. Contact Gruntwork support to authorize your GitLab groups - -:::note - - Account Factory features are not currently available on GitLab - - ::: \ No newline at end of file +2. Contact [Gruntwork support](/support) to authorize your GitLab groups diff --git a/docs/2.0/docs/pipelines/installation/viagithubapp.md b/docs/2.0/docs/pipelines/installation/viagithubapp.md index b2dd70375c..501f83dfcc 100644 --- a/docs/2.0/docs/pipelines/installation/viagithubapp.md +++ b/docs/2.0/docs/pipelines/installation/viagithubapp.md @@ -4,7 +4,7 @@ toc_min_heading_level: 2 toc_max_heading_level: 3 --- -# Pipelines Install via GitHub App +# Installing the Gruntwork.io GitHub App The [Gruntwork.io GitHub App](https://github.com/apps/gruntwork-io) is a [GitHub App](https://docs.github.com/en/apps/overview) introduced to help reduce the burden of integrating Gruntwork products to GitHub resources. The app is designed to be lightweight and flexible, providing a simple way to get started with Gruntwork products. @@ -13,6 +13,7 @@ The [Gruntwork.io GitHub App](https://github.com/apps/gruntwork-io) is a [GitHub At this time Gruntwork does not provide an app for GitLab, this page is only relevant for Gruntwork Pipelines users installing in GitHub. ::: + ## Overview There are three major components to keep in mind when working with the Gruntwork.io GitHub App: @@ -28,6 +29,7 @@ The Gruntwork.io GitHub App is the principal that Gruntwork products will utiliz #### Required Permissions As of 2024/09/10, the Gruntwork.io GitHub App requests the following permissions: + - **Read access to Actions**: Allows the app to read GitHub Actions artifacts. - **Write access to Administration**: Allows the app to create new repositories, and add teams as collaborators to repositories. - **Write access to Contents**: Allows the app to read and write repository contents. @@ -40,13 +42,15 @@ As of 2024/09/10, the Gruntwork.io GitHub App requests the following permissions Gruntwork.io requests all of these permissions because it requires them for different operations. Unfortunately, the way GitHub apps work prevents us from requesting permissions on a more granular basis. Know that the GitHub App Service will scope down its permissions whenever possible to the minimum required for the operation at hand. - The level of granularity available to customers when configuring the GitHub App installation is to either install the app on a per-repository basis or on an entire organization. Our recommendation is as follows: + The level of granularity available to customers when configuring the GitHub App installation is to either install the app on a per-repository basis or on an entire organization. Our recommendation is as follows for Account Factory customers: + + - For non-enterprise customers, allow the app for `infrastructure-live-root` repository and (if in-use) `infrastructure-live-access-control` and `infrastructure-catalog`. - * For non-enterprise customers, allow the app for `infrastructure-live-root` repository and (if in-use) `infrastructure-live-access-control` and `infrastructure-catalog`. - * For enterprise customers, allow the app to have access to the entire organization. + - For enterprise customers, allow the app to have access to the entire organization. -The reasoning for requiring entire-organization access for enterprise customers is that if you are using Account Factory to create delegated repositories then Account Factory will be creating, and then immediately modifying, new repositories in automated flows, which means it needs access to new repos as soon as they are created which is only possible with entire organization permission. + For non-Account Factory customers, we recommend installing the app on a per-repository basis. + The reasoning for requiring entire-organization access for enterprise customers is that if you are using Account Factory to create delegated repositories then Account Factory will be creating, and then immediately modifying, new repositories in automated flows, which means it needs access to new repos as soon as they are created which is only possible with entire organization permission. If you are unsure how to proceed here, reach out to Gruntwork Support for guidance. @@ -62,7 +66,7 @@ The reasoning for requiring entire-organization access for enterprise customers These permissions are used during the initial bootstrapping process when customers opt-in to additional repositories being created outside of the main `infrastructure-live-root` repository. - This is especially important for DevOps Foundations Enterprise customers, as those customers benefit from the ability to have `infrastructure-live-root` repositories create new repositories and add designated GitHub teams as collaborators via Infrastructure as Code (IaC). This is a critical feature for Enterprise customers who want to be able to scale their infrastructure management across multiple teams with delegated responsibility for segments of their IaC Estate. + This is especially important for Account Factory Enterprise customers, as those customers benefit from the ability to have `infrastructure-live-root` repositories create new repositories and add designated GitHub teams as collaborators via Infrastructure as Code (IaC). This is a critical feature for Enterprise customers who want to be able to scale their infrastructure management across multiple teams with delegated responsibility for segments of their IaC Estate.

    Write access to Contents

    @@ -108,7 +112,7 @@ The GitHub App Service is used by two major clients: 2. **Gruntwork Pipelines** - The main client for the Gruntwork.io App, and where most of the value is derived. Pipelines uses the GitHub App Service to acquire the relevant access for interacting with GitHub resources on behalf of the user. Access control rules are enforced here to ensure that only the level of access required, and explicitly specified in the Gruntwork Developer Portal can be used by Pipelines to interact with GitHub resources on behalf of the user. + The main client for the Gruntwork.io App, and where most of the value is derived. Pipelines uses the GitHub App Service to acquire the relevant access for interacting with GitHub resources on behalf of the user. Access control rules are enforced here to ensure that only the level of access required (and explicitly specified in the Gruntwork Developer Portal) can be used by Pipelines to interact with GitHub resources on behalf of the user. For example, while the Gruntwork.io GitHub App does have permissions to create new repositories, Pipelines will only do so if a workflow originating from a configured `infrastructure-live-root` repository requests it. @@ -118,7 +122,7 @@ The availability of the Gruntwork.io GitHub App is something Gruntwork will ende Any downtime of Gruntwork services will not impact the ability of your team to manage infrastructure using Gruntwork products. -#### App Only Features +### App Only Features The following features of the Gruntwork.io GitHub App will be unavailable during downtime: @@ -126,11 +130,11 @@ The following features of the Gruntwork.io GitHub App will be unavailable during - **Gruntwork Pipelines Comments**: While Pipelines will allow for IaC updates in a degraded state without the availability of the GitHub App, comments are a feature that rely on the availability of the app for the best experience. - **Gruntwork Pipelines Drift Detection**: Drift detection requires the availability of the GitHub App to function correctly. -#### Fallback +### Fallback -In order to ensure that the availability of the Gruntwork.io GitHub App is not something that can impair the ability of users to drive infrastructure updates, the legacy mechanism of authenticating with GitHub using [Machine users](/2.0/docs/pipelines/installation/viamachineusers.md) is still supported. +In order to ensure that the availability of the Gruntwork.io GitHub App is not something that can impair the ability of users to drive infrastructure updates, users can also authenticate with GitHub using [Machine users](/2.0/docs/pipelines/installation/viamachineusers). -Configuring the `PIPELINES_READ_TOKEN`, `INFRA_ROOT_WRITE_TOKEN` and `ORG_REPO_ADMIN_TOKEN` where necessary (following the documentation linked above) will result in Pipelines using the legacy mechanism to authenticate with GitHub, rather than the Gruntwork.io GitHub App. +Configuring the `PIPELINES_READ_TOKEN`, `INFRA_ROOT_WRITE_TOKEN` and `ORG_REPO_ADMIN_TOKEN` where necessary (following the documentation linked above) will result in Pipelines using the machine users mechanism to authenticate with GitHub, rather than the Gruntwork.io GitHub App. Using these fallback tokens will ensure that Pipelines can continue to perform operations like: @@ -160,9 +164,9 @@ To install the Gruntwork.io GitHub App in your organization follow these steps. ## Configuration -

    Infrastructure Live Root Repositories

    +### Infrastructure Live Root Repositories -DevOps Foundations treats certain repositories as especially privileged in order to perform critical operations like vending new AWS accounts and creating new repositories. These repositories are called "infrastructure live root repositories" and you can configure them in the [GitHub Account section](https://app.gruntwork.io/account?scroll_to=github-app) for your organization in the Gruntwork developer portal **if you are a designated administrator**. +Account Factory treats certain repositories as especially privileged in order to perform critical operations like vending new AWS accounts and creating new repositories. These repositories are called "infrastructure live root repositories" and you can configure them in the [GitHub Account section](https://app.gruntwork.io/account?scroll_to=github-app) for your organization in the Gruntwork developer portal **if you are a designated administrator**. ![Root Repository Configuration](/img/devops-foundations/github-app/root-repo-config.png) @@ -174,7 +178,7 @@ For more information, see the [relevant architecture documentation](/2.0/docs/pi ## Frequently Asked Questions -#### How do I find my Gruntwork.io GitHub App installation ID? +### How do I find my Gruntwork.io GitHub App installation ID? You can find the installation ID of the Gruntwork.io GitHub App in the URL of the installation page. diff --git a/docs/2.0/docs/pipelines/installation/viamachineusers.md b/docs/2.0/docs/pipelines/installation/viamachineusers.mdx similarity index 88% rename from docs/2.0/docs/pipelines/installation/viamachineusers.md rename to docs/2.0/docs/pipelines/installation/viamachineusers.mdx index 7e28d5de9a..45d6ead0a9 100644 --- a/docs/2.0/docs/pipelines/installation/viamachineusers.md +++ b/docs/2.0/docs/pipelines/installation/viamachineusers.mdx @@ -3,12 +3,14 @@ toc_min_heading_level: 2 toc_max_heading_level: 4 --- -# Setting up Pipelines via GitHub Machine Users + +# Creating Machine Users + import PersistentCheckbox from '/src/components/PersistentCheckbox'; import Tabs from "@theme/Tabs" import TabItem from "@theme/TabItem" -For GitHub users, of the [two methods](/2.0/docs/pipelines/installation/authoverview.md) for installing Gruntwork Pipelines, we strongly recommend using the [GitHub App](/2.0/docs/pipelines/installation/viagithubapp.md). However, if the GitHub App cannot be used or if machine users are required as a [fallback](http://localhost:3000/2.0/docs/pipelines/installation/viagithubapp#fallback), this guide outlines how to set up authentication for Pipelines using access tokens and machine users. +For GitHub users, of the [two methods](/2.0/docs/pipelines/installation/authoverview.md) for installing Gruntwork Pipelines, we strongly recommend using the [GitHub App](/2.0/docs/pipelines/installation/viagithubapp.md). However, if the GitHub App cannot be used or if machine users are required as a [fallback](/2.0/docs/pipelines/installation/viagithubapp#fallback), this guide outlines how to set up authentication for Pipelines using access tokens and machine users. For GitHub or GitLab users, when using tokens, Gruntwork recommends setting up CI users specifically for Gruntwork Pipelines, separate from human users in your organization. This separation ensures workflows are not disrupted if an employee leaves the company and allows for more precise permission management. Additionally, using CI users allow you to apply granular permissions that may normally be too restrictive for a normal employee to do their daily work. @@ -19,6 +21,7 @@ This guide will take approximately 30 minutes to complete. ::: ## Background + ### Guidance on storing secrets During this process, you will generate and securely store several access tokens. Use a temporary but secure location for these sensitive values between generating them and storing them in GitHub or GitLab. Follow your organization's security best practices and avoid insecure methods (e.g., Slack or sticky notes) during this exercise. @@ -87,16 +90,17 @@ GitLab uses access tokens for authentication. There are several types of access For Pipelines, we recommend using Project or Group Access Tokens. -Note that Project and Group access tokens are only available in certain GitLab licenses. Specifically: +Note that Project and Group access tokens are only available in certain GitLab licenses. Specifically: [Project Access Tokens](https://docs.gitlab.com/user/project/settings/project_access_tokens/#token-availability) -* On GitLab SaaS: If you have the Premium or Ultimate license tier, only one project access token is available with a [trial license](https://about.gitlab.com/free-trial/). -* On GitLab Self-Managed instances: With any license tier. If you have the Free tier, consider [restricting the creation of project access tokens](https://docs.gitlab.com/user/project/settings/project_access_tokens/#restrict-the-creation-of-project-access-tokens) to lower potential abuse. + +- On GitLab SaaS: If you have the Premium or Ultimate license tier, only one project access token is available with a [trial license](https://about.gitlab.com/free-trial/). +- On GitLab Self-Managed instances: With any license tier. If you have the Free tier, consider [restricting the creation of project access tokens](https://docs.gitlab.com/user/project/settings/project_access_tokens/#restrict-the-creation-of-project-access-tokens) to lower potential abuse. [Group Access Tokens](https://docs.gitlab.com/user/group/settings/group_access_tokens/) -* On GitLab.com, you can use group access tokens if you have the Premium or Ultimate license tier. Group access tokens are not available with a [trial license](https://about.gitlab.com/free-trial/). -* On GitLab Dedicated and self-managed instances, you can use group access tokens with any license tier. +- On GitLab.com, you can use group access tokens if you have the Premium or Ultimate license tier. Group access tokens are not available with a [trial license](https://about.gitlab.com/free-trial/). +- On GitLab Dedicated and self-managed instances, you can use group access tokens with any license tier. @@ -116,7 +120,7 @@ Both the `ci-user` and the `ci-read-only-user` must: 1. Be members of your GitHub Organization. -2. Be added to your team in **Gruntwork**’s GitHub Organization (See [instructions on inviting a user to your team](https://docs.gruntwork.io/developer-portal/invite-team#inviting-team-members) and [linking the user’s GitHub ID to Gruntwork](https://docs.gruntwork.io/developer-portal/link-github-id)). +2. Be added to your team in **Gruntwork**’s GitHub Organization (See [instructions on inviting a user to your team](https://docs.gruntwork.io/developer-portal/invite-team#inviting-team-members) and [linking the user’s GitHub ID to Gruntwork](https://docs.gruntwork.io/developer-portal/link-github-id)). :::tip We recommend creating two machine users for better access control, but you may adjust this setup to fit your organization’s needs. Ensure permissions are appropriate for their roles, and note that additional GitHub licenses may be required if at capacity. @@ -141,6 +145,7 @@ Ensure the `ci-user` has write access to your: - `infrastructure-live-access-control` repository **Checklist:** + **Create access tokens for the `ci-user`** @@ -148,13 +153,13 @@ Ensure the `ci-user` has write access to your: Generate the required tokens for the ci-user in their GitHub account. **Checklist:** + - #### INFRA_ROOT_WRITE_TOKEN -This [fine-grained](#fine-grained) Personal Access Token allows GitHub Actions to clone `infrastructure-live-root`, open pull requests, and update comments. +This [fine-grained](#fine-grained-tokens) Personal Access Token allows GitHub Actions to clone `infrastructure-live-root`, open pull requests, and update comments. This token must have the following permissions to the `INFRA_ROOT_WRITE_TOKEN` for the `infrastructure-live-root` repository: @@ -175,18 +180,23 @@ Below is a detailed breakdown of the permissions needed for the `INFRA_ROOT_WRIT If you are not an Enterprise customer or prefer Pipelines not to execute certain behaviors, you can opt not to grant the related permissions. ##### Content read & write access + Needed for cloning `infrastructure-live-root` and pushing automated changes. Without this permission, the pull request opened by the GitHub Actions workflow will not trigger automation during account vending. ##### Issues read & write access + Allows Pipelines to open issues that alert teams when manual action is required. ##### Metadata read access + Grants visibility into repository metadata. ##### Pull requests read & write access + Allows Pipelines to create pull requests to introduce infrastructure changes. ##### Workflows read & write access + Required to update workflows when provisioning new repositories. @@ -215,42 +225,47 @@ The following is a breakdown of the permissions needed for the `ORG_REPO_ADMIN_T If you are not an Enterprise customer or prefer Pipelines not to carry out certain actions, you can choose to withhold the related permissions. ##### Administration read & write access + Allows the creation of new repositories for delegated infrastructure management. ##### Content read & write access + Used for bootstrapping repositories and populating them with necessary content. ##### Metadata read access + Grants repository-level insights needed for automation. ##### Pull requests read & write access - This is required to open pull requests. When vending delegated repositories for Enterprise customers, Pipelines will open pull requests to automate the process of introducing new Infrastructure as Code changes to drive infrastructure updates. + +This is required to open pull requests. When vending delegated repositories for Enterprise customers, Pipelines will open pull requests to automate the process of introducing new Infrastructure as Code changes to drive infrastructure updates. ##### Workflows read & write access - This is required to update GitHub Action workflow files. When vending delegated repositories for Enterprise customers, Pipelines will create new repositories, including content in the `.github/workflows` directory. Without this permission, Pipelines would not be able to provision repositories with this content. + +This is required to update GitHub Action workflow files. When vending delegated repositories for Enterprise customers, Pipelines will create new repositories, including content in the `.github/workflows` directory. Without this permission, Pipelines would not be able to provision repositories with this content. ##### Members read & write access - Required to update GitHub organization team members. When vending delegated repositories for Enterprise customers, Pipelines will add team members to a team that has access to a delegated repository. Without this permission, Pipelines would not be able to provision repositories that are accessible to the correct team members. +Required to update GitHub organization team members. When vending delegated repositories for Enterprise customers, Pipelines will add team members to a team that has access to a delegated repository. Without this permission, Pipelines would not be able to provision repositories that are accessible to the correct team members. - :::tip -If you are not an Enterprise customer, you should delete it after DevOps Foundations setup. +If you are not an Enterprise customer, you should delete it after Account Factory onboarding. ::: ### ci-read-only-user The `ci-read-only-user` is configured to download private software within GitHub Actions workflows. This user is responsible for accessing Gruntwork IaC Library modules, your infrastructure-modules repository, other private custom module repositories, and the Pipelines CLI. -This user should use a single classic Personal Access Token (PAT)(https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#personal-access-tokens-classic) with read-only permissions. Since classic PATs offer coarse grained access controls, it’s recommended to assign this user to a GitHub team with READ access limited to the `infrastructure-live-root` repository and any relevant module repositories within your GitHub Organization. Adding this user to the Gruntwork Developer Portal will automatically grant access to the Gruntwork IaC Library. +This user should use a single classic [Personal Access Token (PAT)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#personal-access-tokens-classic) with read-only permissions. Since classic PATs offer coarse grained access controls, it’s recommended to assign this user to a GitHub team with READ access limited to the `infrastructure-live-root` repository and any relevant module repositories within your GitHub Organization. Adding this user to the Gruntwork Developer Portal will automatically grant access to the Gruntwork IaC Library. **Invite ci-read-only-user to your repository** Invite `ci-user-read-only` to your `infrastructure-live-root` repository with read access. **Checklist:** + **Create a token for ci-read-only-user** @@ -260,8 +275,6 @@ Generate the following token for the `ci-read-only-user`: **Checklist:** - - #### PIPELINES_READ_TOKEN This [Classic Personal Access Token](#classic-tokens) manages access to private software during GitHub Action runs. @@ -275,6 +288,7 @@ This token must have `repo` scopes. Gruntwork recommends setting expiration to 9 Make sure both machine users are added to your team in Gruntwork’s GitHub Organization. Refer to the [instructions for inviting a user to your team](https://docs.gruntwork.io/developer-portal/invite-team#inviting-team-members) and [linking the user’s GitHub ID to Gruntwork](https://docs.gruntwork.io/developer-portal/link-github-id) for guidance. **Checklist:** + ## Configure secrets for GitHub Actions @@ -287,11 +301,14 @@ Since this guide uses secrets scoped to specific repositories, the token permiss + **Checklist:** +
    + 1. Navigate to your top-level GitHub Organization and select the **Settings** tab. 2. From the navigation bar on the left side, choose **Secrets and variables**, then select **Actions**. @@ -345,13 +362,16 @@ For more details on creating and using GitHub Actions Organization secrets, refe
    + **Checklist:** +
    + Gruntwork Pipelines retrieves these secrets from GitHub Actions secrets configured in the repository. For instructions on creating repository Actions secrets, refer to [creating secrets for a repository](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository). ### `infrastructure-live-root` @@ -378,8 +398,8 @@ If you are **not an Enterprise customer**, you should also do the following: - Delete the `ORG_REPO_ADMIN_TOKEN` Personal Access Token from the `ci-user`’s GitHub account. - Remove the `ORG_REPO_ADMIN_TOKEN` Repository secret from the `infrastructure-live-root` repository. -::: +::: :::info For more information on creating and using GitHub Actions Repository secrets, refer to the [GitHub Documentation](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository). @@ -391,13 +411,12 @@ For more information on creating and using GitHub Actions Repository secrets, re
    - -For GitLab, Gruntwork Pipelines two CI variables. The first, the `PIPELINES_GITLAB_TOKEN` requires the `Developer`, `Maintainer` or `Owner` role and the scopes listed below. This token will be used to authenticate API calls and access repositories within your GitLab group. The second, the `PIPELINES_GITLAB_READ_TOKEN` will be used to access your own code within GitLab. If not set, Pipelines will default to the `CI_JOB_TOKEN` when accessing internal GitLab hosted code. - +For GitLab, Gruntwork Pipelines two CI variables. The first, the `PIPELINES_GITLAB_TOKEN` requires the `Developer`, `Maintainer` or `Owner` role and the scopes listed below. This token will be used to authenticate API calls and access repositories within your GitLab group. The second, the `PIPELINES_GITLAB_READ_TOKEN` will be used to access your own code within GitLab. If not set, Pipelines will default to the `CI_JOB_TOKEN` when accessing internal GitLab hosted code. ### Creating the Access Token Gruntwork recommends [creating](https://docs.gitlab.com/user/project/settings/project_access_tokens/#create-a-project-access-token) two Project or Group Access Tokens as best practice: + | Token Name | Required Scopes | Required Role | Purpose | | ------------------------------- | -------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------- | | **PIPELINES_GITLAB_TOKEN** | `api` (and `ai_features` if using GitLab AI) | Developer, Maintainer, or Owner | Making API calls (e.g., creating comments on merge requests) | @@ -417,6 +436,7 @@ Set an expiration date according to your organization's security policies. We re ::: **Checklist:** + @@ -434,6 +454,7 @@ Add the `PIPELINES_GITLAB_TOKEN` and `PIPELINES_GITLAB_READ_TOKEN` as CI/CD vari 8. Set the value as the Personal Access Token generated in the [Creating the Access Token](#creating-the-access-token) section **Checklist:** + diff --git a/sidebars/docs.js b/sidebars/docs.js index 0de3c67e1f..311f531900 100644 --- a/sidebars/docs.js +++ b/sidebars/docs.js @@ -225,34 +225,22 @@ const sidebar = [ id: "2.0/docs/pipelines/installation/scm-comparison", }, { - label: "Prerequisites", type: "category", + label: "Set up SCM Authentication", collapsed: false, items: [ { - label: "AWS Landing Zone", - type: "doc", - id: "2.0/docs/pipelines/installation/prerequisites/awslandingzone", - }, - ], - }, - { - type: "category", - label: "Enable Auth for Pipelines", - collapsed: false, - items: [ - { - label: "Auth Overview", + label: "Overview", type: "doc", id: "2.0/docs/pipelines/installation/authoverview", }, { - label: "Auth via GitHub App", + label: "GitHub App", type: "doc", id: "2.0/docs/pipelines/installation/viagithubapp", }, { - label: "Auth via Machine Users", + label: "Machine Users", type: "doc", id: "2.0/docs/pipelines/installation/viamachineusers", }, @@ -269,17 +257,17 @@ const sidebar = [ collapsed: false, items: [ { - label: "Creating a New GitHub Repository with Pipelines", + label: "Bootstrap Pipelines in a New GitHub Repository", type: "doc", id: "2.0/docs/pipelines/installation/addingnewrepo", }, { - label: "Adding Pipelines to an Existing GitHub Repository", + label: "Bootstrap Pipelines in an Existing GitHub Repository", type: "doc", id: "2.0/docs/pipelines/installation/addingexistingrepo", }, { - label: "Adding Branch Protection to a Repository", + label: "Adding Branch Protection to a GitHub Repository", type: "doc", id: "2.0/docs/pipelines/installation/branch-protection", }, @@ -291,14 +279,19 @@ const sidebar = [ collapsed: false, items: [ { - label: "Creating a New GitLab Project with Pipelines", + label: "Bootstrap Pipelines in a new GitLab Project", type: "doc", - id: "2.0/docs/pipelines/installation/addingnewgitlabrepo", + id: "2.0/docs/pipelines/installation/addinggitlabrepo", }, { - label: "Adding Pipelines to an Existing GitLab Project", + label: "Bootstrap Pipelines in an Existing GitLab Project", type: "doc", - id: "2.0/docs/pipelines/installation/addinggitlabrepo", + id: "2.0/docs/pipelines/installation/addingexistinggitlabrepo", + }, + { + label: "Adding Branch Protection to a GitLab Project", + type: "doc", + id: "2.0/docs/pipelines/installation/gitlab-branch-protection", }, ], }, @@ -487,10 +480,33 @@ const sidebar = [ }, ], }, + { + label: "Prerequisites", + type: "category", + collapsed: false, + items: [ + { + label: "AWS Landing Zone", + type: "doc", + id: "2.0/docs/accountfactory/prerequisites/awslandingzone", + }, + ], + }, { label: "Setup & Installation", - type: "doc", - id: "2.0/docs/accountfactory/installation/index", + type: "category", + collapsed: true, + link: { + type: "doc", + id: "2.0/docs/accountfactory/installation/index", + }, + items: [ + { + label: "Adding Account Factory to a new repository", + type: "doc", + id: "2.0/docs/accountfactory/installation/addingnewrepo", + }, + ], }, { label: "Guides", diff --git a/src/redirects.js b/src/redirects.js index f2b86849a2..e6f6441866 100644 --- a/src/redirects.js +++ b/src/redirects.js @@ -154,15 +154,15 @@ export const redirects = [ from: "/foundations/running-apps" }, { - to: "/2.0/docs/pipelines/installation/prerequisites/awslandingzone#prerequisites", + to: "/2.0/docs/accountfactory/prerequisites/awslandingzone#prerequisites", from: "/foundations/landing-zone/prerequisites" }, { - to: "/2.0/docs/pipelines/installation/prerequisites/awslandingzone", + to: "/2.0/docs/accountfactory/prerequisites/awslandingzone", from: "/foundations/landing-zone/index" }, { - to: "/2.0/docs/pipelines/installation/prerequisites/awslandingzone", + to: "/2.0/docs/accountfactory/prerequisites/awslandingzone", from: "/foundations/landing-zone" }, { @@ -170,7 +170,7 @@ export const redirects = [ from: "/foundations/landing-zone/add-aws-account" }, { - to: "/2.0/docs/pipelines/installation/prerequisites/awslandingzone#configure-control-tower", + to: "/2.0/docs/accountfactory/prerequisites/awslandingzone#configure-control-tower", from: "/foundations/landing-zone/enable-control-tower" }, { @@ -368,5 +368,9 @@ export const redirects = [ { from: '/2.0/docs/pipelines/architecture/github-workflows', to: '/2.0/docs/pipelines/architecture/ci-workflows' + }, + { + from: '/2.0/docs/pipelines/installation/prerequisites/awslandingzone', + to: '/2.0/docs/accountfactory/prerequisites/awslandingzone' } ] From 196c6a6841912e79259b4157e38931ba2d3b40dd Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Tue, 7 Oct 2025 14:22:48 -0400 Subject: [PATCH 09/37] docs: Adding HCL configuration reference for Azure and Custom auth (#2781) * docs: Nested AWS into `Authenticating to the Cloud` * Fix build issues. * fix: Addressing markdown lints * fix: Reworked components page into execution flow page * docs: Migrating out AWS specific security controls for Pipelines to Account Factory * docs: Updating `ci-workflows.md` with call outs for Account Factory stuff * docs: Addressing PR feedback * fix: Adding abbreviation to dictionary * docs: Nested AWS into `Authenticating to the Cloud` * Fix build issues. * docs: Moving AWS Landing Zone prereq to Account Factory docs: Adjusting redirects for moving AWS Landing Zone to Account Factory * docs: Restructured initial setup to avoid assuming AWS docs: Splitting up different cloud providers wip: Progress on stacks * feat: Set up full Azure installation guide * fix: Fixing the checkbox ids * fix: Fixing up some paper cuts in the top-level setup & installation docs * fix: Fixing path to new prerequisites for Account Factory * chore: Making sure this is pinned to `v4` before I forget * fix: Cleaning up Azure guide * docs: Adding AWS docs * fix: Cleaning up language for sidebar on GitHub * docs: WIP progress on adding Pipelines to an existing repo * docs: More troubleshooting guidance * docs: Adjusting language in `Setup & Installation` * docs: Adjusting logic for repo setup * fix: Cutting down on steps for adding a new repo * feat: Adding instructions for additional accounts and subscriptions * fix: Preventing ToC from breaking by using h3 tags * fix: Adding existing guide docs * fix: Redoing GitLab install instructions for parity with GitHub * fix: Removing unnecessary GitLab content * docs: Adding existing repository instructions for GitLab * docs: Adding note for self-hosted GitLab instance * fix: Fixing URL for pipelines machine users install * fix: Satisfying spellcheck * fix: Fixing auth links * fix: Addressing easy to address PR feedback * fix: Adding HCL configuration reference for Azure and Custom auth * fix: Fixing some links --------- Co-authored-by: Josh Padnick --- .../{api.md => api.mdx} | 75 ++++++++++++++++++- .../pipelines/configurations-as-code/index.md | 22 ++++-- docs/2.0/reference/pipelines/index.md | 4 +- 3 files changed, 92 insertions(+), 9 deletions(-) rename docs/2.0/reference/pipelines/configurations-as-code/{api.md => api.mdx} (86%) diff --git a/docs/2.0/reference/pipelines/configurations-as-code/api.md b/docs/2.0/reference/pipelines/configurations-as-code/api.mdx similarity index 86% rename from docs/2.0/reference/pipelines/configurations-as-code/api.md rename to docs/2.0/reference/pipelines/configurations-as-code/api.mdx index b283bebf9a..9a00c8f149 100644 --- a/docs/2.0/reference/pipelines/configurations-as-code/api.md +++ b/docs/2.0/reference/pipelines/configurations-as-code/api.mdx @@ -9,6 +9,7 @@ For a more comprehensive walkthrough of how blocks work please see the Pipelines ### `environment` block + Environment blocks are used to define configurations that are applicable to a specific environment within a repository. @@ -182,6 +183,24 @@ The label applied to an accounts block is the name of the Accounts block. This i An AWS OIDC authentication block that determines how Pipelines will authenticate with AWS using OIDC. See more [below](#aws_oidc-block-attributes). +### `azure_oidc` block + + + + +An Azure OIDC authentication block that determines how Pipelines will authenticate with Azure using OIDC. See more [below](#azure_oidc-block-attributes). + + + + + + +### `custom` block + + + + +A custom authentication block that determines how Pipelines will authenticate with custom authentication logic when running Terragrunt commands. See more [below](#custom-block-attributes). @@ -280,7 +299,7 @@ Whether or not Pipelines will consolidate deleted resources when running Terragr The Infrastructure as Code(Iac) binary that Pipelines will instruct Terragrunt to use. Valid values are: - `opentofu` (default): Use OpenTofu for managing infrastructure. Gruntwork recommends customers use OpenTofu. -- `terraform`: Use Terraform for managing infrastructure. +- `terraform`: Use Terraform for managing infrastructure. :::note @@ -344,6 +363,7 @@ This is to make it convenient to tuck the `accounts.yml` file away somewhere in The AWS account ID that Pipelines will authenticate with. + @@ -351,6 +371,7 @@ The AWS account ID that Pipelines will authenticate with. The IAM role ARN that Pipelines will assume when running Terragrunt plan commands. + @@ -358,6 +379,7 @@ The IAM role ARN that Pipelines will assume when running Terragrunt plan command The IAM role ARN that Pipelines will assume when running Terragrunt apply commands. + @@ -365,6 +387,7 @@ The IAM role ARN that Pipelines will assume when running Terragrunt apply comman The AWS region that Pipelines will use when running Terragrunt commands. + @@ -377,3 +400,53 @@ The duration in seconds that the AWS session will be valid for. + +### `azure_oidc` block attributes + + + + +The Azure tenant ID that Pipelines will authenticate with. + + + + + + + +The Azure subscription ID that Pipelines will authenticate with. + + + + + + + +The Azure client ID that Pipelines will authenticate with when running Terragrunt plan commands. + + + + + + + +The Azure client ID that Pipelines will authenticate with when running Terragrunt apply commands. + + + + +### `custom` block attributes + + + + +The command that Pipelines will execute to authenticate with the custom authentication logic. + +:::tip + +You can learn more about how custom authentication works in the [Custom Authentication](/2.0/docs/pipelines/concepts/cloud-auth/custom) documentation. + +::: + + + diff --git a/docs/2.0/reference/pipelines/configurations-as-code/index.md b/docs/2.0/reference/pipelines/configurations-as-code/index.md index 991d6bdd20..d454dcf852 100644 --- a/docs/2.0/reference/pipelines/configurations-as-code/index.md +++ b/docs/2.0/reference/pipelines/configurations-as-code/index.md @@ -9,10 +9,9 @@ To process configurations, Pipelines parses all `.hcl` files within a `.gruntwor We recommend reviewing our [concepts page](/2.0/docs/pipelines/concepts/hcl-config-language) on the HCL language to ensure familiarity with its features before configuring Pipelines. ::: - ## Basic configuration -The minimum configuration required for Pipelines to function depends on the specific context. In most scenarios, Pipelines must determine how to authenticate with a cloud provider to execute Terragrunt commands. If authentication is not configured where required, Pipelines will generate an error. +The minimum configuration required for Pipelines to function depends on the specific context. In most scenarios, Pipelines must determine how to authenticate with a cloud provider to execute Terragrunt commands. Unless running Pipelines on a host machine that is already authenticated with a cloud provider (e.g. a self-hosted runner), it is generally required to configure some form of authentication within the `authentication` block. Below is an example of a minimal configuration for a single Terragrunt unit, demonstrating how to enable Pipelines to authenticate with AWS using OIDC: @@ -31,6 +30,17 @@ unit { Placing this configuration in a `gruntwork.hcl` file within the same directory as a `terragrunt.hcl` file directs Pipelines to assume the `role-to-assume-for-plans` role in the AWS account with the ID `an-aws-account-id` when executing Terragrunt plan commands. The authentication process leverages [OIDC](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) to securely connect to AWS and assume the specified role. +:::tip + +If you are running Pipelines on a host machine that is already authenticated with a cloud provider, you can explicitly leave the `authentication` block empty to signal that Pipelines should not attempt to perform any authentication itself. + +```hcl +unit { + authentication {} +} +``` + +::: It is common for multiple Terragrunt units within a repository to assume the same AWS role. For instance, all units within a specific directory may provision resources for the same AWS account. Configuring AWS authentication at the environment level is more efficient in these cases. You can do this by defining an `environment` block within one of the `.hcl` files in the `.gruntwork` directory at the repository root and specifying the AWS authentication configuration. @@ -63,7 +73,6 @@ Details regarding the functionality of each configuration type are outlined belo Pipelines configurations are structured into a hierarchy to manage specificity. Configurations that are more specific to an individual unit of IaC will take precedence over more general configurations in cases of conflict. - The configuration hierarchy is as follows: ### Repository configurations @@ -221,6 +230,7 @@ Job consolidation is a process by which Pipelines merges multiple related jobs ( This optimization significantly reduces CI/CD costs by consolidating Terragrunt execution into fewer jobs, spreading the operational expenses more efficiently. Additionally, it enhances accuracy by allowing Terragrunt to leverage a Directed Acyclic Graph (DAG) for proper sequencing of updates. For example: + - Instead of running the following independent jobs: A. `ModuleAdded` B. `ModuleChanged` (which depends on `ModuleAdded`) @@ -243,6 +253,7 @@ In rare cases, you might disable job consolidation to allocate maximum resources Configurations must be specified within a single file named gruntwork.hcl, located in the same directory as the terragrunt.hcl file. These configurations are referred to as local configurations and are generally used to define settings specific to a single unit of Infrastructure as Code (IaC) within a repository. . These configurations can serve two purposes: + 1. Define all the settings necessary for Pipelines to operate within the scope of a single unit. 2. Override global configurations defined in the `.gruntwork` directory, tailoring them to the unit's specific needs. @@ -288,7 +299,6 @@ filter { All configuration blocks containing a `filter` block will apply only to units that match the specified filter. - ### Authentication blocks [Full Reference for Authentication Blocks](/2.0/reference/pipelines/configurations-as-code/api#authentication-block) @@ -296,9 +306,9 @@ All configuration blocks containing a `filter` block will apply only to units th Authentication blocks are configuration components used by [environment](#environment-blocks) and [unit](#unit-blocks) blocks to specify how Pipelines will authenticate with cloud platforms when executing Terragrunt commands. :::note -Authentication blocks encapsulate more specific authentication configurations tailored to individual cloud platforms. When Pipelines processes an `authentication` block, it attempts to authenticate with all cloud platforms defined within it. -Currently, the only supported block that can be nested within an `authentication` block is `aws_oidc`. +Authentication blocks encapsulate more specific authentication configurations tailored to individual cloud platforms. When Pipelines processes an `authentication` block, it attempts to authenticate with the relevant cloud platform defined within it. + ::: :::tip diff --git a/docs/2.0/reference/pipelines/index.md b/docs/2.0/reference/pipelines/index.md index 3da2dc0212..2f57cee64b 100644 --- a/docs/2.0/reference/pipelines/index.md +++ b/docs/2.0/reference/pipelines/index.md @@ -10,5 +10,5 @@ In addition to authentication, the primary configuration options involve customi ## Next Steps -- Explore the [YAML Configurations](/2.0/reference/pipelines/configurations.md) reference for detailed guidance. -- Learn more about the (Beta) [Configurations as Code](/2.0/reference/pipelines/configurations-as-code/api.md) reference. +- Explore the [YAML Configurations](/2.0/reference/pipelines/configurations) reference for detailed guidance. +- Learn more about the (Beta) [Configurations as Code](/2.0/reference/pipelines/configurations-as-code/api) reference. From 57c046912a1da5b73cfec9f61184dfae14781e44 Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Tue, 7 Oct 2025 17:14:11 -0400 Subject: [PATCH 10/37] docs: Breaking down tutorials to avoid assuming AWS (#2782) * docs: Nested AWS into `Authenticating to the Cloud` * Fix build issues. * fix: Reworked components page into execution flow page * docs: Migrating out AWS specific security controls for Pipelines to Account Factory * docs: Updating `ci-workflows.md` with call outs for Account Factory stuff * docs: Addressing PR feedback * docs: Nested AWS into `Authenticating to the Cloud` * Fix build issues. * docs: Restructured initial setup to avoid assuming AWS docs: Splitting up different cloud providers wip: Progress on stacks * fix: Fixing the checkbox ids * docs: Adding AWS docs * docs: WIP progress on adding Pipelines to an existing repo * docs: More troubleshooting guidance * fix: Cutting down on steps for adding a new repo * fix: Redoing GitLab install instructions for parity with GitHub * fix: Updating `deploying-your-first-infrastructure-change` extension to `mdx` * fix: Update to address Azure as well * fix: Update extension for `destroying-infrastructure` to `mdx` * fix: Updating infrastructure destruction docs to support Azure * fix: Fixing broken links and spellcheck * fix: Fixing accidental merge error * fix: Use `groupId` --------- Co-authored-by: Josh Padnick --- .../docs/accountfactory/installation/index.md | 8 +- .../installation/addingexistinggitlabrepo.mdx | 2 +- .../installation/addingexistingrepo.mdx | 2 +- .../installation/addinggitlabrepo.mdx | 2 +- .../pipelines/installation/addingnewrepo.mdx | 2 +- ...loying-your-first-infrastructure-change.md | 136 ----------- ...oying-your-first-infrastructure-change.mdx | 230 ++++++++++++++++++ .../tutorials/destroying-infrastructure.md | 70 ------ .../tutorials/destroying-infrastructure.mdx | 99 ++++++++ 9 files changed, 337 insertions(+), 214 deletions(-) delete mode 100644 docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md create mode 100644 docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx delete mode 100644 docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.md create mode 100644 docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx diff --git a/docs/2.0/docs/accountfactory/installation/index.md b/docs/2.0/docs/accountfactory/installation/index.md index 2d71cba52c..f67e6fafd1 100644 --- a/docs/2.0/docs/accountfactory/installation/index.md +++ b/docs/2.0/docs/accountfactory/installation/index.md @@ -6,13 +6,13 @@ Account Factory is automatically integrated into [new Pipelines root repositorie By default, Account Factory includes the following components: -- 📋 An HTML form for generating workflow inputs: `.github/workflows/account-factory-inputs.html` +- An HTML form for generating workflow inputs: `.github/workflows/account-factory-inputs.html` -- 🏭 A workflow for generating new requests: `.github/workflows/account-factory.yml` +- A workflow for generating new requests: `.github/workflows/account-factory.yml` -- 🗃️ A root directory for tracking account requests: `_new-account-requests` +- A root directory for tracking account requests: `_new-account-requests` -- ⚙️ A YAML file for tracking account names and IDs: `accounts.yml` +- A YAML file for tracking account names and IDs: `accounts.yml` For detailed instructions on using these components, refer to the [Vending a New AWS Account Guide](/2.0/docs/accountfactory/guides/vend-aws-account). diff --git a/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx b/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx index 5ac66ca6dd..c1f2af5c26 100644 --- a/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx @@ -853,7 +853,7 @@ git push ## Next Steps -You have successfully completed the installation of Gruntwork Pipelines in an existing GitLab project. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md) to begin deploying changes. +You have successfully completed the installation of Gruntwork Pipelines in an existing GitLab project. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change) to begin deploying changes. ## Troubleshooting Tips diff --git a/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx b/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx index 94b88343c9..88491ff685 100644 --- a/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx @@ -842,7 +842,7 @@ git push ## Next Steps -You have successfully completed the installation of Gruntwork Pipelines in an existing repository. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md) to begin deploying changes. +You have successfully completed the installation of Gruntwork Pipelines in an existing repository. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change) to begin deploying changes. ## Troubleshooting Tips diff --git a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx index afe386192a..363746c737 100644 --- a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx @@ -389,4 +389,4 @@ git push ## Next steps -You have successfully completed the installation of Gruntwork Pipelines in a new repository. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md) to begin deploying changes. +You have successfully completed the installation of Gruntwork Pipelines in a new repository. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change) to begin deploying changes. diff --git a/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx b/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx index aff5927f5d..1db7c8a970 100644 --- a/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx @@ -966,4 +966,4 @@ git push ## Next steps -You have successfully completed the installation of Gruntwork Pipelines in a new repository. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md) to begin deploying changes. +You have successfully completed the installation of Gruntwork Pipelines in a new repository. Proceed to [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change) to begin deploying changes. diff --git a/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md b/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md deleted file mode 100644 index 41899c58b2..0000000000 --- a/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.md +++ /dev/null @@ -1,136 +0,0 @@ -# Deploying your first Infrastructure Change - -import CustomizableValue from '/src/components/CustomizableValue'; -import Tabs from "@theme/Tabs" -import TabItem from "@theme/TabItem" - -In this tutorial, we will guide you through deploying an S3 bucket. This "hello world" example introduces Gruntwork Pipelines and lays the groundwork for using it in production environments. - -## What you'll get - -By the end of this tutorial, you will have: - -- An S3 bucket deployed automatically using Gruntwork Pipelines. - -## Prerequisites - -Before starting, ensure you have the following: - -- Pipelines installed in a GitHub or GitLab repository. Refer to [Setup & Installation](/2.0/docs/pipelines/installation/overview) for more details. -- Access to a sandbox or development AWS account configured during the Pipelines installation process. -- Permissions to create a pull request in the GitHub repository where Pipelines is installed. - -## Running Your first pipeline - -This section covers creating a resource in your AWS account using Pipelines and GitOps workflows. You will define a `terragrunt.hcl` file to create an AWS S3 bucket, push the changes, create a pull/merge request to trigger a `plan` action, and merge the request to run an `apply` action that creates the bucket. - -### Adding a new S3 bucket - -1. Create the folder structure for the new S3 bucket in your environment. Replace with the account name you are deploying to and with the AWS region where the S3 bucket will be deployed. - - ```bash - mkdir -p $$ACCOUNT_NAME$$/$$REGION$$/$$ACCOUNT_NAME$$/data-storage/s3 - touch $$ACCOUNT_NAME$$/$$REGION$$/region.hcl - touch $$ACCOUNT_NAME$$/$$REGION$$/$$ACCOUNT_NAME$$/data-storage/s3/terragrunt.hcl - ``` - -2. Add the following content to the `region.hcl` file created earlier. - - ```hcl title="$$ACCOUNT_NAME$$/$$REGION$$/region.hcl" - locals { - aws_region = "$$REGION$$" - } - ``` - -2. Add the Terragrunt code below to the newly created `terragrunt.hcl` file to define the S3 bucket. Replace with your desired bucket name. Ensure the bucket name is unique. - - ```hcl title="$$ACCOUNT_NAME$$/$$REGION$$/$$ACCOUNT_NAME$$/data-storage/s3/terragrunt.hcl" - # ------------------------------------------------------------------------------------------------------ - # DEPLOY GRUNTWORK's S3-BUCKET MODULE - # ------------------------------------------------------------------------------------------------------ - - terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-service-catalog.git//modules/data-stores/s3-bucket?ref=v0.116.1" - } - - include "root" { - path = find_in_parent_folders() - } - - inputs = { - primary_bucket = "$$S3_BUCKET_NAME$$" - } - ``` - -### Planning the changes - - - - -1. Create a new branch for your changes. -2. Commit the changes to your branch and push it. -3. Create a pull request (PR) against `main` (the default branch in your repository). Refer to this [GitHub tutorial](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) for instructions on creating a PR. - -After creating the PR, GitHub Actions will automatically execute the workflow defined in `/.github/workflows/pipelines.yml` in your repository. - -Once the workflow completes, Pipelines will post a comment on the PR summarizing the `terragrunt plan` output along with a link to the GitHub Actions workflow logs. - -![Pipelines Plan Comment](/img/pipelines/tutorial/pipelines-plan-comment.png) - -Click the *View full logs* link to see the complete output of the Gruntwork Pipelines run. Locate the *TerragruntExecute* step to review the full `terragrunt plan` generated by your changes. - -![Pipelines Plan Logs](/img/pipelines/tutorial/pipelines-plan-logs.png) - - - - -1. Create a new branch for your changes. -2. Commit the changes to your branch and push it. -3. Create a merge request (MR) against `main` (the default branch in your project). Refer to this [GitLab tutorial](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) for instructions on creating an MR. - -After creating the MR, GitLab CI/CD will automatically execute the pipeline defined in `.gitlab-ci.yml` in your project. - -Once the pipeline completes, Pipelines will post a comment on the MR summarizing the `terragrunt plan` output along with a link to the pipeline logs. -Click the *View Pipeline Logs* link to see the complete output of the Gruntwork Pipelines run. Select the *plan* job to review the full `terragrunt plan` generated by your changes. - - - - -### Applying the changes - - - - -If you are satisfied with the `terragrunt plan` output, proceed to merge the PR to create the S3 bucket. - -Approve the PR and click the `Merge pull request` button to complete the merge. Upon merging, Pipelines will automatically execute an `apply` action to provision the S3 bucket. - -![Pipelines Apply Comment](/img/pipelines/tutorial/pipelines-apply-comment.png) - -To monitor the workflow run associated with the merged PR: - -1. Navigate to the `main` branch of your repository. -2. Click the Checks icon next to the latest commit at the top of the file explorer. -3. Click `details` next to the Pipelines workflow to view the `dispatch` job logs. - -![Find Pipelines Apply Logs](/img/pipelines/tutorial/find-pipelines-apply-logs.png) - - - - -If you are satisfied with the `terragrunt plan` output, proceed to merge the MR to create the S3 bucket. - -Approve the MR and click the `Merge` button to complete the merge. Upon merging, Pipelines will automatically execute an `apply` action to provision the S3 bucket. - -To monitor the pipeline run associated with the merged MR: - -1. Navigate to the `main` branch of your project. -2. Click CI/CD > Pipelines in the left sidebar. -3. Click on the latest pipeline to view the `apply` job logs. - - - - -Congratulations! You have successfully used Gruntwork Pipelines and a GitOps workflow to provision an S3 bucket in AWS. To verify the bucket creation, visit the AWS Management Console and check the S3 service for the bucket. - -To clean up the resources created during this tutorial, proceed to the next tutorial: [Destroying infrastructure with Pipelines](/2.0/docs/pipelines/tutorials/destroying-infrastructure#destroying-with-pipelines). diff --git a/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx b/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx new file mode 100644 index 0000000000..7e5e7bcb6c --- /dev/null +++ b/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx @@ -0,0 +1,230 @@ +# Deploying your first Infrastructure Change + +import CustomizableValue from '/src/components/CustomizableValue'; +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +In this tutorial, we will guide you through deploying cloud storage. This "hello world" example introduces Gruntwork Pipelines and lays the groundwork for using it in production environments. + +## What you'll get + +By the end of this tutorial, you will have: + +- Cloud storage deployed automatically using Gruntwork Pipelines: + - **AWS**: An S3 bucket + - **Azure**: A Resource Group and Storage Account + +## Prerequisites + +Before starting, ensure you have the following: + +- Pipelines installed in a GitHub or GitLab repository. Refer to [Setup & Installation](/2.0/docs/pipelines/installation/overview) for more details. +- Access to a sandbox or development cloud environment (AWS account or Azure subscription) configured during the Pipelines installation process. +- Permissions to create a pull request in the GitHub/GitLab repository where Pipelines is installed. + +## Running Your first pipeline + +This section covers creating a cloud storage resource using Pipelines and GitOps workflows. You will define a `terragrunt.hcl` file to create storage, push the changes, create a pull/merge request to trigger a `plan` action, and merge the request to run an `apply` action that creates the resource. + +### Adding cloud storage + + + + +1. Create the folder structure for the new S3 bucket in your environment. Replace with the account name you are deploying to and with the AWS region where the S3 bucket will be deployed. + + ```bash + mkdir -p $$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3 + touch $$ACCOUNT_NAME$$/$$REGION$$/region.hcl + touch $$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3/terragrunt.hcl + ``` + +2. Add the following content to the `region.hcl` file created earlier. + + ```hcl title="$$ACCOUNT_NAME$$/$$REGION$$/region.hcl" + locals { + aws_region = "$$REGION$$" + } + ``` + +3. Add the Terragrunt code below to the newly created `terragrunt.hcl` file to define the S3 bucket. Replace with your desired bucket name. Ensure the bucket name is unique. + + ```hcl title="$$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3/terragrunt.hcl" + # ------------------------------------------------------------------------------------------------------ + # DEPLOY GRUNTWORK's S3-BUCKET MODULE + # ------------------------------------------------------------------------------------------------------ + + terraform { + source = "git::git@github.com:gruntwork-io/terraform-aws-service-catalog.git//modules/data-stores/s3-bucket?ref=v0.116.1" + } + + include "root" { + path = find_in_parent_folders() + } + + inputs = { + primary_bucket = "$$S3_BUCKET_NAME$$" + } + ``` + + + + +1. Create the folder structure for the new Resource Group and Storage Account in your environment. Replace with the subscription name you are deploying to, with the Azure location where the resources will be deployed, and with your desired resource group name. + + ```bash + mkdir -p $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/resource-group + mkdir -p $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/data-storage/storage-account + touch $$SUBSCRIPTION_NAME$$/$$LOCATION$$/region.hcl + touch $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/resource-group/terragrunt.hcl + touch $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/data-storage/storage-account/terragrunt.hcl + ``` + +2. Add the following content to the `region.hcl` file created earlier. + + ```hcl title="$$SUBSCRIPTION_NAME$$/$$LOCATION$$/region.hcl" + locals { + azure_location = "$$LOCATION$$" + } + ``` + +3. Add the Terragrunt code below to define the Resource Group. + + ```hcl title="$$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/resource-group/terragrunt.hcl" + # ------------------------------------------------------------------------------------------------------ + # DEPLOY GRUNTWORK's AZURE RESOURCE GROUP MODULE + # ------------------------------------------------------------------------------------------------------ + + include "root" { + path = find_in_parent_folders("root.hcl") + } + + terraform { + source = "github.com/gruntwork-io/terragrunt-scale-catalog//modules/azure/resource-group?ref=v1.0.0" + } + + inputs = { + name = "$$RESOURCE_GROUP_NAME$$" + location = "$$LOCATION$$" + } + ``` + +4. Add the Terragrunt code below to define the Storage Account with a dependency on the Resource Group. Replace with your desired storage account name. Ensure the name is unique and follows Azure naming conventions (lowercase letters and numbers only, 3-24 characters). + + ```hcl title="$$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/data-storage/storage-account/terragrunt.hcl" + # ------------------------------------------------------------------------------------------------------ + # DEPLOY GRUNTWORK's AZURE STORAGE ACCOUNT MODULE + # ------------------------------------------------------------------------------------------------------ + + include "root" { + path = find_in_parent_folders("root.hcl") + } + + terraform { + source = "github.com/gruntwork-io/terragrunt-scale/catalog//modules/azure/storage-account?ref=v1.0.0" + } + + dependency "resource_group" { + config_path = "../../resource-group" + + mock_outputs = { + name = "mock-name" + } + } + + inputs = { + name = "$$STORAGE_ACCOUNT_NAME$$" + location = "$$LOCATION$$" + + resource_group_name = dependency.resource_group.outputs.name + } + ``` + + + + +### Planning the changes + + + + +1. Create a new branch for your changes. +2. Commit the changes to your branch and push it. +3. Create a pull request (PR) against `main` (the default branch in your repository). Refer to this [GitHub tutorial](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) for instructions on creating a PR. + +After creating the PR, GitHub Actions will automatically execute the workflow defined in `/.github/workflows/pipelines.yml` in your repository. + +Once the workflow completes, Pipelines will post a comment on the PR summarizing the `terragrunt plan` output along with a link to the GitHub Actions workflow logs. + +![Pipelines Plan Comment](/img/pipelines/tutorial/pipelines-plan-comment.png) + +Click the *View full logs* link to see the complete output of the Gruntwork Pipelines run. Locate the *TerragruntExecute* step to review the full `terragrunt plan` generated by your changes. + +![Pipelines Plan Logs](/img/pipelines/tutorial/pipelines-plan-logs.png) + + + + +1. Create a new branch for your changes. +2. Commit the changes to your branch and push it. +3. Create a merge request (MR) against `main` (the default branch in your project). Refer to this [GitLab tutorial](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) for instructions on creating an MR. + +After creating the MR, GitLab CI/CD will automatically execute the pipeline defined in `.gitlab-ci.yml` in your project. + +Once the pipeline completes, Pipelines will post a comment on the MR summarizing the `terragrunt plan` output along with a link to the pipeline logs. +Click the *View Pipeline Logs* link to see the complete output of the Gruntwork Pipelines run. Select the *plan* job to review the full `terragrunt plan` generated by your changes. + + + + +### Applying the changes + + + + +If you are satisfied with the `terragrunt plan` output, proceed to merge the PR to create the cloud storage resource. + +Approve the PR and click the `Merge pull request` button to complete the merge. Upon merging, Pipelines will automatically execute an `apply` action to provision the storage resource. + +![Pipelines Apply Comment](/img/pipelines/tutorial/pipelines-apply-comment.png) + +To monitor the workflow run associated with the merged PR: + +1. Navigate to the `main` branch of your repository. +2. Click the Checks icon next to the latest commit at the top of the file explorer. +3. Click `details` next to the Pipelines workflow to view the `dispatch` job logs. + +![Find Pipelines Apply Logs](/img/pipelines/tutorial/find-pipelines-apply-logs.png) + + + + +If you are satisfied with the `terragrunt plan` output, proceed to merge the MR to create the cloud storage resource. + +Approve the MR and click the `Merge` button to complete the merge. Upon merging, Pipelines will automatically execute an `apply` action to provision the storage resource. + +To monitor the pipeline run associated with the merged MR: + +1. Navigate to the `main` branch of your project. +2. Click CI/CD > Pipelines in the left sidebar. +3. Click on the latest pipeline to view the `apply` job logs. + + + + +Congratulations! You have successfully used Gruntwork Pipelines and a GitOps workflow to provision cloud storage. + + + + +To verify the S3 bucket creation, visit the AWS Management Console and check the S3 service for the bucket. + + + + +To verify the Resource Group and Storage Account creation, visit the Azure Portal and navigate to Resource Groups to confirm both resources were created. + + + + +To clean up the resources created during this tutorial, proceed to the next tutorial: [Destroying infrastructure with Pipelines](/2.0/docs/pipelines/tutorials/destroying-infrastructure#destroying-with-pipelines). diff --git a/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.md b/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.md deleted file mode 100644 index 82910f8a9b..0000000000 --- a/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.md +++ /dev/null @@ -1,70 +0,0 @@ -# Destroying Infrastructure with Pipelines - -import CustomizableValue from '/src/components/CustomizableValue'; -import Tabs from "@theme/Tabs" -import TabItem from "@theme/TabItem" - -This tutorial will help you learn how to destroy infrastructure using Gruntwork Pipelines and GitOps workflows. - -## What you'll get - -By the end, you'll have: - -- Destroyed AWS resources using Gruntwork Pipelines - -## Prerequisites - -Before starting, make sure you have: - -- Pipelines installed in a GitHub/GitLab repository. Refer to [Setup & Installation](/2.0/docs/pipelines/installation/overview) for details. -- Access to a sandbox or development AWS account configured during the Pipelines installation process. -- Permissions to create a pull/merge request in the GitHub/GitLab repository where Pipelines is installed. -- An existing AWS resource created using Infrastructure as Code (IaC) and Pipelines that you want to destroy. If no resource exists, follow the steps in the [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change) tutorial to create one, which will then be destroyed in this tutorial. - -## Destroying with pipelines - -This section explains how to destroy AWS resources using Pipelines and GitOps workflows. The example used is the S3 bucket created in the [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change) tutorial, but the process applies to any resource you wish to destroy. - -### Delete the infrastructure code - -1. Remove the folder containing the infrastructure code for the resource you want to destroy. For the S3 bucket example, delete the folder containing the S3 bucket code. Replace and with the appropriate values. - - ```bash - rm -rf $$ACCOUNT_NAME$$/$$REGION$$/$$ACCOUNT_NAME$$/data-storage/s3 - ``` - -2. Create a new branch, commit the changes, and push the branch to your repository. - -### Planning the destruction - - - - -Create a Pull Request (PR) for the branch you just pushed, targeting `main` (the default branch in your repository). - -![Delete Infrastructure Code](/img/pipelines/tutorial/delete-infrastructure-code.png) - -Gruntwork Pipelines, via GitHub Actions, will detect the removal of the infrastructure unit's code and trigger a `plan` action in Pipelines. This action will display the destructive changes to be made to your AWS account. - -![Pipelines Destroy Plan Comment](/img/pipelines/tutorial/pipelines-destroy-plan-comment.png) - - - - -Create a Merge Request (MR) for the branch you just pushed, targeting `main` (the default branch in your project). - -Gruntwork Pipelines, via GitLab CI/CD, will detect the removal of the infrastructure unit's code and trigger a `plan` action in Pipelines. This action will display the destructive changes to be made to your AWS account. - -Click the *View Pipeline Logs* link to see the complete output of the destroy plan. - - - - -### Applying the destruction - - -If you are satisfied with the changes shown in the `plan` action, you can proceed to destroy the S3 bucket. - -Approve and merge the pull/merge request to trigger the apply action, permanently deleting the resource from your AWS account. - -Congratulations! You have successfully destroyed an AWS resource using Gruntwork Pipelines and GitOps workflows. To verify the resource has been destroyed, check your AWS management console. diff --git a/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx b/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx new file mode 100644 index 0000000000..dc7c861178 --- /dev/null +++ b/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx @@ -0,0 +1,99 @@ +# Destroying Infrastructure with Pipelines + +import CustomizableValue from '/src/components/CustomizableValue'; +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" + +This tutorial will help you learn how to destroy infrastructure using Gruntwork Pipelines and GitOps workflows. + +## What you'll get + +By the end, you'll have: + +- Destroyed cloud resources (AWS or Azure) using Gruntwork Pipelines + +## Prerequisites + +Before starting, make sure you have: + +- Pipelines installed in a GitHub/GitLab repository. Refer to [Setup & Installation](/2.0/docs/pipelines/installation/overview) for details. +- Access to a sandbox or development cloud environment (AWS account or Azure subscription) configured during the Pipelines installation process. +- Permissions to create a pull/merge request in the GitHub/GitLab repository where Pipelines is installed. +- An existing cloud resource created using Infrastructure as Code (IaC) and Pipelines that you want to destroy. If no resource exists, follow the steps in the [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change) tutorial to create one, which will then be destroyed in this tutorial. + +## Destroying with pipelines + +This section explains how to destroy cloud resources using Pipelines and GitOps workflows. The example used is the resources created in the [Deploying your first infrastructure change](/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change) tutorial, but the process applies to any resource you wish to destroy. + +### Delete the infrastructure code + + + + +1. Remove the folder containing the infrastructure code for the resource you want to destroy. For the S3 bucket example, delete the folder containing the S3 bucket code. Replace and with the appropriate values. + + ```bash + rm -rf $$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3 + ``` + +2. Create a new branch, commit the changes, and push the branch to your repository. + + + + +1. Remove the folder containing the infrastructure code for the resources you want to destroy. For the Resource Group and Storage Account example, delete the folder containing all the resource group code. Replace , , and with the appropriate values. + + ```bash + rm -rf $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$ + ``` + +2. Create a new branch, commit the changes, and push the branch to your repository. + + + + +### Planning the destruction + + + + +Create a Pull Request (PR) for the branch you just pushed, targeting `main` (the default branch in your repository). + +![Delete Infrastructure Code](/img/pipelines/tutorial/delete-infrastructure-code.png) + +Gruntwork Pipelines, via GitHub Actions, will detect the removal of the infrastructure unit's code and trigger a `plan` action in Pipelines. This action will display the destructive changes to be made to your cloud environment. + +![Pipelines Destroy Plan Comment](/img/pipelines/tutorial/pipelines-destroy-plan-comment.png) + + + + +Create a Merge Request (MR) for the branch you just pushed, targeting `main` (the default branch in your project). + +Gruntwork Pipelines, via GitLab CI/CD, will detect the removal of the infrastructure unit's code and trigger a `plan` action in Pipelines. This action will display the destructive changes to be made to your cloud environment. + +Click the *View Pipeline Logs* link to see the complete output of the destroy plan. + + + + +### Applying the destruction + +If you are satisfied with the changes shown in the `plan` action, you can proceed to destroy the resources. + +Approve and merge the pull/merge request to trigger the apply action, permanently deleting the resources from your cloud environment. + +Congratulations! You have successfully destroyed cloud resources using Gruntwork Pipelines and GitOps workflows. + + + + +To verify the S3 bucket has been destroyed, check the AWS Management Console and confirm the bucket no longer exists in the S3 service. + + + + +To verify the Resource Group and Storage Account have been destroyed, visit the Azure Portal and confirm the Resource Group no longer exists. + + + From f1096646d5a3b50a1431484a1752b6e8cca7b0b8 Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Tue, 7 Oct 2025 21:18:55 -0400 Subject: [PATCH 11/37] docs: Breaking down guides to avoid assuming AWS (#2783) * docs: Nested AWS into `Authenticating to the Cloud` * Fix build issues. * fix: Reworked components page into execution flow page * docs: Migrating out AWS specific security controls for Pipelines to Account Factory * docs: Updating `ci-workflows.md` with call outs for Account Factory stuff * docs: Addressing PR feedback * docs: Nested AWS into `Authenticating to the Cloud` * Fix build issues. * docs: Restructured initial setup to avoid assuming AWS docs: Splitting up different cloud providers wip: Progress on stacks * fix: Fixing the checkbox ids * docs: Adding AWS docs * docs: WIP progress on adding Pipelines to an existing repo * docs: More troubleshooting guidance * fix: Cutting down on steps for adding a new repo * fix: Redoing GitLab install instructions for parity with GitHub * fix: Update extension for `managing-secrets` to `mdx` * docs: Making it so that managing secrets doesn't assume AWS * docs: Moving delegated repo setup to Account Factory * docs: Fixing handling broken IaC * fix: Resolving merge conflicts * fix: Avoiding adding whitespace here --------- Co-authored-by: Josh Padnick --- .../guides/setup-delegated-repo.mdx | 0 .../installation/addingnewrepo.md | 1 + .../pipelines/guides/handling-broken-iac.md | 24 +-- ...naging-secrets.md => managing-secrets.mdx} | 186 +++++++++++++++--- .../installation/addingexistingrepo.mdx | 6 + sidebars/docs.js | 10 +- src/redirects.js | 4 + 7 files changed, 184 insertions(+), 47 deletions(-) rename docs/2.0/docs/{pipelines => accountfactory}/guides/setup-delegated-repo.mdx (100%) rename docs/2.0/docs/pipelines/guides/{managing-secrets.md => managing-secrets.mdx} (58%) diff --git a/docs/2.0/docs/pipelines/guides/setup-delegated-repo.mdx b/docs/2.0/docs/accountfactory/guides/setup-delegated-repo.mdx similarity index 100% rename from docs/2.0/docs/pipelines/guides/setup-delegated-repo.mdx rename to docs/2.0/docs/accountfactory/guides/setup-delegated-repo.mdx diff --git a/docs/2.0/docs/accountfactory/installation/addingnewrepo.md b/docs/2.0/docs/accountfactory/installation/addingnewrepo.md index bb248b70cf..7ea6610b80 100644 --- a/docs/2.0/docs/accountfactory/installation/addingnewrepo.md +++ b/docs/2.0/docs/accountfactory/installation/addingnewrepo.md @@ -48,4 +48,5 @@ Each of your repositories will contain a Bootstrap Pull Request. Follow the inst :::info The bootstrapping pull requests include pre-configured files, such as a `.mise.toml` file that specifies versions of OpenTofu and Terragrunt. Ensure you review and update these configurations to align with your organization's requirements. + ::: diff --git a/docs/2.0/docs/pipelines/guides/handling-broken-iac.md b/docs/2.0/docs/pipelines/guides/handling-broken-iac.md index 53b426f5b0..506cd8fedf 100644 --- a/docs/2.0/docs/pipelines/guides/handling-broken-iac.md +++ b/docs/2.0/docs/pipelines/guides/handling-broken-iac.md @@ -1,6 +1,6 @@ # Handling Broken Infrastructure as Code -When working with Infrastructure as Code (IaC) at scale, you may occasionally encounter broken or invalid configuration files that prevent Terragrunt from successfully running operations. These issues can block entire CI/CD pipeline, preventing even valid infrastructure changes from being deployed. +When working with Infrastructure as Code (IaC) at scale, you may occasionally encounter broken or invalid configuration files that prevent Terragrunt from successfully running operations. These issues can block the entire CI/CD pipeline, preventing even valid infrastructure changes from being deployed. This guide presents several strategies for handling broken IaC while keeping your pipelines operational. @@ -16,13 +16,13 @@ Common causes of broken IaC include: - Temporary or experimental code - Resources or modules that have are work in progress -Depending on the type of run pipeline is executing, broken IaC can fail a pipeline and prevent other, legitimate changes from being deployed. Especially in circumstances where pipelines will trigger a `terragrunt run-all` it is important that all IaC is valid or properly excluded. +Depending on the type of run pipeline is executing, broken IaC can fail a pipeline and prevent other, legitimate changes from being deployed. Especially in circumstances where pipelines will trigger a `terragrunt run --all` it is important that all IaC is valid or properly excluded. ## Resolution Strategies Here are several approaches to manage broken IaC, presented in order of preference: -### 1. Fix the Invalid Code (Preferred Solution) +### Fix the Invalid Code (Preferred Solution) The ideal solution is to fix the underlying issues: @@ -41,7 +41,7 @@ git push Then create a merge/pull request to apply the fix to your main branch. -### 2. Remove the Invalid IaC +### Remove the Invalid IaC If you can't fix the issue immediately but the infrastructure is no longer needed, you can remove the problematic code: @@ -55,22 +55,22 @@ git commit -m "Remove deprecated infrastructure module" git push ``` -### 3. Use a `.terragrunt-excludes` File +### Use a `.terragrunt-excludes` File If you wish to keep the broken code as is and simply have it ignored by pipelines and Terragrunt, you can use a `.terragrunt-excludes` file to skip problematic units: -1. Create a `.terragrunt-excludes` file in the root of your repository: +Create a `.terragrunt-excludes` file in the root of your repository: -``` +```text # .terragrunt-excludes # One directory per line (no globs) account/region/broken-module1 account/region/broken-module2 ``` -2. Commit this file to your repository, and Terragrunt will automatically exclude these directories when using `run-all`. Note, if you make a change to the code in those units and pipelines triggers a `run` in that directory itself, then the exclude will not be applied. +Commit this file to your repository, and Terragrunt will automatically exclude these directories when using `run --all`. Note, if you make a change to the code in those units and pipelines triggers a `run` in that directory itself, then the exclude will not be applied. -### 4. Configure Exclusions with Pipelines Environment Variables +### Configure Exclusions with Pipelines Environment Variables If you don't wish to use `.terragrunt-excludes` in the root of the repository, you can create another file in a different location and set the `TG_QUEUE_EXCLUDES_FILE` environment variable to that path. You then use the Pipelines [`env` block](/2.0/reference/pipelines/configurations-as-code/api#env-block) in your `.gruntwork/pipelines.hcl` configuration to set environment variables that control Terragrunt's behavior: @@ -94,14 +94,14 @@ repository { When excluding modules, be aware of dependencies: 1. If module B depends on module A, and module A is excluded, you may need to exclude module B as well. -2. Use `terragrunt graph-dependencies` to visualize your dependency tree. +2. Use `terragrunt dag graph` to visualize your dependency tree. ## Best Practices 1. **Document exclusions**: Add comments to your `.terragrunt-excludes` file explaining why each directory is excluded. 2. **Track in issue system**: Create tickets for excluded modules that need to be fixed, including any relevant dates/timelines for when they should be revisited. 3. **Regular cleanup**: Periodically review and update your excluded directories. -4. **Validate locally**: Run `terragrunt hcl-validate` or `terragrunt validate` locally before committing changes. +4. **Validate locally**: Run `terragrunt hcl validate` or `terragrunt validate` locally before committing changes. ## Troubleshooting @@ -112,4 +112,4 @@ If you're still experiencing issues after excluding directories: - Review pipeline logs to confirm exclusions are being applied - Verify you don't have conflicting environment variable settings -By implementing these strategies, you can keep your infrastructure pipelines running smoothly while addressing underlying issues in your codebase. \ No newline at end of file +By implementing these strategies, you can keep your infrastructure pipelines running smoothly while addressing underlying issues in your codebase. diff --git a/docs/2.0/docs/pipelines/guides/managing-secrets.md b/docs/2.0/docs/pipelines/guides/managing-secrets.mdx similarity index 58% rename from docs/2.0/docs/pipelines/guides/managing-secrets.md rename to docs/2.0/docs/pipelines/guides/managing-secrets.mdx index f639f1fc8c..96e8b42bfd 100644 --- a/docs/2.0/docs/pipelines/guides/managing-secrets.md +++ b/docs/2.0/docs/pipelines/guides/managing-secrets.mdx @@ -20,12 +20,19 @@ To interact with the GitLab API, Pipelines requires a Machine User with a [Perso
    -## Authenticating with AWS +## Authenticating with Cloud Providers -Pipelines requires authentication with AWS but avoids long-lived credentials by utilizing [OIDC](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services). OIDC establishes an authenticated relationship between a specific Git reference in a repository and a corresponding AWS role, enabling Pipelines to assume the role based on where the pipeline is executed. +Pipelines requires authentication with your cloud provider but avoids long-lived credentials by utilizing OIDC (OpenID Connect). OIDC establishes an authenticated relationship between a specific Git reference in a repository and a corresponding cloud provider identity, enabling Pipelines to assume the identity based on where the pipeline is executed. -The role assumption process operates as follows: + + + +{/* We use an h3 here instead of a markdown heading to avoid breaking the ToC */} +

    Authenticating with AWS

    + +Pipelines uses [OIDC to authenticate with AWS](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services), allowing it to assume an AWS IAM role without long-lived credentials. +The role assumption process operates as follows: @@ -41,7 +48,7 @@ sequenceDiagram AWS STS->>GitHub Actions: Temporary AWS Credentials ``` -For more details, see [GitHub's OIDC documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services). +For more details, see [GitHub's OIDC documentation for AWS](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services). @@ -57,25 +64,77 @@ sequenceDiagram AWS STS->>GitLab CI/CD: Temporary AWS Credentials ``` -For more details, see [GitLab's OIDC documentation](https://docs.gitlab.com/ee/ci/cloud_services/aws/). +For more details, see [GitLab's OIDC documentation for AWS](https://docs.gitlab.com/ee/ci/cloud_services/aws/). As a result, Pipelines avoids storing long-lived AWS credentials and instead relies on ephemeral credentials generated by AWS STS. These credentials grant least-privilege access to the resources needed for the specific operation being performed (e.g., read access during a pull/merge request open event or write access during a merge). +
    + + +{/* We use an h3 here instead of a markdown heading to avoid breaking the ToC */} +

    Authenticating with Azure

    + +Pipelines uses [OIDC to authenticate with Azure](https://learn.microsoft.com/en-us/entra/architecture/auth-oidc), allowing it to obtain access tokens from Entra ID without long-lived credentials. + +The authentication process operates as follows: + + + + +```mermaid +sequenceDiagram + participant GitHub Actions + participant token.actions.githubusercontent.com + participant Entra ID + GitHub Actions->>token.actions.githubusercontent.com: OpenID Connect Request + token.actions.githubusercontent.com->>GitHub Actions: GitHub JWT + GitHub Actions->>Entra ID: Request Access Token (Authorization: GitHub JWT) + Entra ID->>GitHub Actions: Azure Access Token +``` + +For more details, see [GitHub's OIDC documentation for Azure](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure). + + + + +```mermaid +sequenceDiagram + participant GitLab CI/CD + participant gitlab.com + participant Entra ID + GitLab CI/CD->>gitlab.com: OIDC ID Token Request with preconfigured audience + gitlab.com->>GitLab CI/CD: GitLab JWT + GitLab CI/CD->>Entra ID: Request Access Token (Authorization: GitLab JWT) + Entra ID->>GitLab CI/CD: Azure Access Token +``` + +For more details, see [GitLab's documentation on Azure integration](https://docs.gitlab.com/ee/ci/cloud_services/). + + + + +As a result, Pipelines avoids storing long-lived Azure credentials and instead relies on ephemeral access tokens generated by Entra ID. These tokens grant least-privilege access to the resources needed for the specific operation being performed. + +
    +
    + ## Other providers -If you are managing configurations for additional services using Infrastructure as Code (IaC) tools like Terragrunt, you may need to configure a provider for those services in Pipelines. In such cases, you must supply the necessary credentials for authenticating with the provider. Whenever possible, follow the same principles applied to AWS: use ephemeral credentials, grant only the minimum permissions required, and avoid storing long-lived credentials on disk. +If you are managing configurations for additional services using Infrastructure as Code (IaC) tools like Terragrunt, you may need to configure a provider for those services in Pipelines. In such cases, you must supply the necessary credentials for authenticating with the provider. Whenever possible, follow the same principles: use ephemeral credentials, grant only the minimum permissions required, and avoid storing long-lived credentials on disk. ### Configuring providers in Terragrunt For example, consider configuring the [Cloudflare Terraform provider](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs). This provider supports multiple authentication methods to enable secure API calls to Cloudflare services. To authenticate with Cloudflare and manage the associated credentials securely, you need to configure your `terragrunt.hcl` file appropriately. -First, examine the default AWS authentication provider setup in the root `terragrunt.hcl` file: +First, examine the default cloud provider authentication setup in the root `root.hcl` file from Gruntwork provided Boilerplate templates: + + -```hcl +```hcl title="root.hcl" generate "provider" { path = "provider.tf" if_exists = "overwrite_terragrunt" @@ -93,9 +152,29 @@ EOF } ``` -This provider block is dynamically generated during the execution of any `terragrunt` command and supplies the AWS provider with the required configuration to discover credentials made available by the pipelines. +This provider block (the value of `contents`) is dynamically generated as the file `provider.tf` during the execution of any `terragrunt` command and supplies the OpenTofu/Terraform AWS provider with the required configuration to discover credentials made available by the pipelines. -With this approach, no secrets are written to disk. Instead, the AWS provider dynamically retrieves secrets at runtime. + + + +```hcl +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + + +With this approach, no secrets are written to disk. Instead, the cloud provider dynamically retrieves secrets at runtime. According to the Cloudflare documentation, the Cloudflare provider supports several authentication methods. One option involves using the [api_token](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs#api_key) field in the `provider` block, as illustrated in the documentation: @@ -126,25 +205,42 @@ In this context, `fetch-cloudflare-api-token.sh` is a script designed to retriev You are free to use any method to fetch the secret, provided it outputs the value to stdout. -Here are two straightforward examples of how you might fetch the secret: +Here are straightforward examples of how you might fetch the secret based on your cloud provider: + + + + +Using AWS Secrets Manager: + +```bash +aws secretsmanager get-secret-value --secret-id cloudflare-api-token --query SecretString --output text +``` + +Using AWS SSM Parameter Store: + +```bash +aws ssm get-parameter --name cloudflare-api-token --query Parameter.Value --output text --with-decryption +``` + +Given that Pipelines is already authenticated with AWS for interacting with state, this setup provides a convenient method for retrieving secrets. -1. Using `aws secretsmanager`: + + - ```bash - aws secretsmanager get-secret-value --secret-id cloudflare-api-token --query SecretString --output text - ``` +Using Azure Key Vault: -2. Using `aws ssm`: +```bash +az keyvault secret show --vault-name --name cloudflare-api-token --query value --output tsv +``` - ```bash - aws ssm get-parameter --name cloudflare-api-token --query Parameter.Value --output text --with-decryption - ``` +Given that Pipelines is already authenticated with Azure for interacting with state, this setup provides a convenient method for retrieving secrets. -Given that Pipelines is already authenticated with AWS for interacting with state, this setup provides a convenient method for retrieving the Cloudflare API token. + + ::: -Alternatively, note that the `api_token` field is optional. Similar to the AWS provider, you can use the `CLOUDFLARE_API_TOKEN` environment variable to supply the API token to the provider at runtime. +Alternatively, note that the `api_token` field is optional. Similar to cloud provider authentication, you can use the `CLOUDFLARE_API_TOKEN` environment variable to supply the API token to the provider at runtime. To achieve this, you can update the `provider` block as follows: @@ -172,6 +268,7 @@ terraform { } } ``` + ### Managing secrets When configuring providers and Pipelines, it's important to store secrets in a secure and accessible location. Several options are available for managing secrets, each with its advantages and trade-offs. @@ -211,33 +308,62 @@ GitLab CI/CD Variables provide a native way to store secrets for your pipelines. -#### AWS Secrets Manager +#### Cloud Provider Secret Stores + +Cloud providers offer dedicated secret management services with advanced features and security controls. + + + + +**AWS Secrets Manager** AWS Secrets Manager offers a sophisticated solution for managing secrets. It allows for provisioning secrets in AWS and configuring fine-grained access controls through AWS IAM. It also supports advanced features like secret rotation and access auditing. **Advantages**: -- Granular access permissions, ensuring secrets are only accessible when required. -- Support for automated secret rotation and detailed access auditing. +- Granular access permissions, ensuring secrets are only accessible when required +- Support for automated secret rotation and detailed access auditing **Trade-offs**: -- Increased complexity in setup and management. -- Potentially higher costs associated with its use. +- Increased complexity in setup and management +- Potentially higher costs associated with its use Refer to the [AWS Secrets Manager documentation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) for further details. -#### AWS SSM Parameter Store +**AWS SSM Parameter Store** AWS SSM Parameter Store is a simpler and more cost-effective alternative to Secrets Manager. It supports secret storage and access control through AWS IAM, providing a basic solution for managing sensitive data. **Advantages**: -- Lower cost compared to Secrets Manager. -- Granular access control similar to Secrets Manager. +- Lower cost compared to Secrets Manager +- Granular access control similar to Secrets Manager **Trade-offs**: -- Limited functionality compared to Secrets Manager, such as less robust secret rotation capabilities. +- Limited functionality compared to Secrets Manager, such as less robust secret rotation capabilities Refer to the [AWS SSM Parameter Store documentation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) for additional information. + + + +**Azure Key Vault** + +Azure Key Vault provides a comprehensive solution for managing secrets, keys, and certificates. It offers fine-grained access controls through Azure RBAC and supports advanced features like secret versioning and access auditing. + +**Advantages**: +- Granular access permissions with Azure RBAC and access policies +- Support for secret versioning, soft-delete, and purge protection +- Integration with Azure Monitor for detailed audit logs +- Hardware Security Module (HSM) backed options for enhanced security + +**Trade-offs**: +- Additional setup complexity for RBAC and access policies +- Costs associated with transactions and HSM-backed vaults + +Refer to the [Azure Key Vault documentation](https://learn.microsoft.com/en-us/azure/key-vault/general/overview) for further details. + + + + #### Deciding on a secret store When selecting a secret store, consider the following key factors: diff --git a/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx b/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx index 88491ff685..5078e7e77c 100644 --- a/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx @@ -597,6 +597,12 @@ bootstrap = { You can use those values to set the values for `plan_client_id` and `apply_client_id` in the `.gruntwork/environment-.hcl` file. + :::tip + + We're using the `-force-copy` flag here to avoid any issues with OpenTofu waiting for an interactive prompt to copy up local state. + + ::: + :::note Progress Checklist diff --git a/sidebars/docs.js b/sidebars/docs.js index 0793888c67..9b1c534df3 100644 --- a/sidebars/docs.js +++ b/sidebars/docs.js @@ -383,11 +383,6 @@ const sidebar = [ type: "doc", id: "2.0/docs/pipelines/guides/terragrunt-env-vars", }, - { - label: "Setup a Delegated Repository", - type: "doc", - id: "2.0/docs/pipelines/guides/setup-delegated-repo", - }, { label: "Handling Broken IaC", type: "doc", @@ -533,6 +528,11 @@ const sidebar = [ type: "doc", id: "2.0/docs/accountfactory/guides/delegated-repositories", }, + { + label: "Setup a Delegated Repository", + type: "doc", + id: "2.0/docs/accountfactory/guides/setup-delegated-repo", + }, { label: "Adding Collaborators to Delegated Repositories", type: "doc", diff --git a/src/redirects.js b/src/redirects.js index e6f6441866..698ebefc22 100644 --- a/src/redirects.js +++ b/src/redirects.js @@ -372,5 +372,9 @@ export const redirects = [ { from: '/2.0/docs/pipelines/installation/prerequisites/awslandingzone', to: '/2.0/docs/accountfactory/prerequisites/awslandingzone' + }, + { + from: '/2.0/docs/pipelines/guides/setup-delegated-repo', + to: '/2.0/docs/accountfactory/guides/setup-delegated-repo' } ] From e4e389a9caff1b17e5f06395095567644ee3310e Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Wed, 8 Oct 2025 11:20:51 -0400 Subject: [PATCH 12/37] fix: Fixing reference to catalog (#2792) --- .../tutorials/deploying-your-first-infrastructure-change.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx b/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx index 7e5e7bcb6c..e3af1b4857 100644 --- a/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx +++ b/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx @@ -121,7 +121,7 @@ This section covers creating a cloud storage resource using Pipelines and GitOps } terraform { - source = "github.com/gruntwork-io/terragrunt-scale/catalog//modules/azure/storage-account?ref=v1.0.0" + source = "github.com/gruntwork-io/terragrunt-scale-catalog//modules/azure/storage-account?ref=v1.0.0" } dependency "resource_group" { From 5a22caad2df42e96539b79302c036154ac500819 Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Wed, 8 Oct 2025 12:42:40 -0400 Subject: [PATCH 13/37] Empty commit From fe201eaba0922a642608b47f5a53b24e56feb2d1 Mon Sep 17 00:00:00 2001 From: Oreoluwa Agunbiade <21035422+oredavids@users.noreply.github.com> Date: Thu, 9 Oct 2025 09:46:06 -0600 Subject: [PATCH 14/37] Add Account factory HCL configuration docs (#2791) * Add Account factory HCL configuration docs * Fix broken link * Review suggestions --- .../docs/pipelines/configuration/settings.md | 6 +- .../accountfactory/configurations-as-code.md | 419 ++++++++++++++++++ docs/2.0/reference/accountfactory/index.md | 10 + docs/2.0/reference/pipelines/index.md | 6 +- .../pipelines/language_auth_partial.mdx | 10 - .../pipelines/language_transition_partial.mdx | 9 + sidebars/reference.js | 10 + src/components/HclListItem.tsx | 45 +- 8 files changed, 477 insertions(+), 38 deletions(-) create mode 100644 docs/2.0/reference/accountfactory/configurations-as-code.md create mode 100644 docs/2.0/reference/accountfactory/index.md create mode 100644 docs/2.0/reference/pipelines/language_transition_partial.mdx diff --git a/docs/2.0/docs/pipelines/configuration/settings.md b/docs/2.0/docs/pipelines/configuration/settings.md index 9671ed755d..cbdddbd1ca 100644 --- a/docs/2.0/docs/pipelines/configuration/settings.md +++ b/docs/2.0/docs/pipelines/configuration/settings.md @@ -1,8 +1,10 @@ # Pipelines Configuration -import PipelinesConfig from '/docs/2.0/reference/pipelines/language_auth_partial.mdx' +import PipelinesAuthPartial from '/docs/2.0/reference/pipelines/language_auth_partial.mdx' +import PipelinesLanguageTransitionPartial from '/docs/2.0/reference/pipelines/language_transition_partial.mdx' - + + ## OpenTofu & Terraform diff --git a/docs/2.0/reference/accountfactory/configurations-as-code.md b/docs/2.0/reference/accountfactory/configurations-as-code.md new file mode 100644 index 0000000000..1818043ea8 --- /dev/null +++ b/docs/2.0/reference/accountfactory/configurations-as-code.md @@ -0,0 +1,419 @@ +# Pipelines Account Factory Configurations as Code + +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" +import { + HclListItem, + HclListItemExample, + HclListItemDescription, + HclListItemTypeDetails, + HclListItemDefaultValue, + HclGeneralListItem, +} from "/src/components/HclListItem.tsx" + +Pipelines Account Factory uses configurations written in [HashiCorp Configuration Language (HCL)](https://github.com/hashicorp/hcl) to enable dynamic behavior. These configurations determine how Account Factory will provision and configure new AWS accounts using Gruntwork Pipelines. + +To process configurations, Pipelines parses all `.hcl` files within a `.gruntwork` directory or a single file named `gruntwork.hcl`. Typically, global configurations relevant to the entire repository are placed in the `.gruntwork` directory at the root hence the file is typically named `account-factory.hcl` and placed in the `.gruntwork` directory at the root of the repository. + +:::info + +We recommend reviewing our [concepts page](/2.0/docs/pipelines/concepts/hcl-config-language) on the HCL language to ensure familiarity with its features. +::: + +## Basic configuration + +Below is an example of a minimal configuration required for AccountFactory: + +```hcl +# .gruntwork/account-factory.hcl +account_factory { + control_tower_module_version = "va.b.c" + security_module_version = "va.b.c" + architecture_catalog_module_version = "va.b.c" + infrastructure_catalog_module_version = "va.b.c" + access_control_repository_name = "your-access-control-repository-name" + infrastructure_catalog_module_repository_name = "your-infrastructure-catalog-module-repository-name" +} +``` + +## Block Reference + +For a more comprehensive walkthrough of how blocks work please see the Pipelines Configurations as Code [concepts](/2.0/reference/pipelines/configurations-as-code). + +### `account_factory` block + + + +Account Factory blocks are used to define configurations that are applicable for provisioning and configuring new AWS accounts. +
    +See detailed attributes configuration options [below](#account_factory-block-attributes). +
    + + +```hcl +# .gruntwork/account-factory.hcl +account_factory { + control_tower_module_version = "va.b.c" + security_module_version = "va.b.c" + architecture_catalog_module_version = "va.b.c" + infrastructure_catalog_module_version = "va.b.c" + access_control_repository_name = "your-access-control-repository-name" + infrastructure_catalog_module_repository_name = "your-infrastructure-catalog-module-repository-name" +} +``` + + +
    + +### `account_vending` block + + + + + Account Vending blocks are available for Gruntwork Enterprise customers, nested within [account_factory](#account_factory-block) blocks, to define how additional features such as multi-environment account provisioning and delegated repositories are enabled. + Each account-vending configuration block is a template for vending accounts as desired. +
    + The labels such as "sdlc" or "sandbox" serve as the name of the account-vending configuration block and are the default Gruntwork Provided labels for the account-vending configuration block. Enterprise customers may define their own configuration blocks or modify the Gruntwork Provided blocks but should contact [support@gruntwork.io](mailto:support@gruntwork.io) if they intend to [use the Gruntwork Developer Portal to generate new account requests](/2.0/docs/accountfactory/guides/vend-aws-account?account-creation-method=ui). +
    + + Account Vending blocks are used to define configurations that are applicable to a single account vending within a repository. See more [below](#account-vending-block-attributes). + +
    + + + ```hcl + # .gruntwork/account-factory.hcl + account_factory { + account_vending "sdlc" { + account_identifiers = ["dev", "stage", "prod"] + catalog_repositories = ["path/to/catalog-repositories"] + } + + account_vending "sandbox" { + account_identifiers = ["sandbox"] + catalog_repositories = ["path/to/catalog-repositories"] + } + } + ``` + + In this example, when an account request of type `sdlc` is requested, an account will be created for each of the identifiers; `dev`, `stage`, and `prod` as the suffixes for the new accounts being created. Also, if a "Delegate Management of Account(s)?" option is chosen during account request, the catalog repositories `path/to/catalog-repositories` will be added to the new accounts. + + Similarly, when an account request of type `sandbox` is requested, the account will be created for the identifier `sandbox` as the suffix for the new account being created. Also, if a "Delegate Management of Account(s)?" option is chosen during account request, the catalog repositories `path/to/catalog-repositories` will be added to the new account. + + +
    + +### `ci_collaborator` block + + + + A block, nested within an [account_vending](#account_vending-block) block, that adds a GitHub/GitLab team and their permissions to a dedicated infrastructure-live repository if the "Delegate Management of Account(s)?" option is chosen during account request. See detailed attributes configuration options [below](#ci-collaborator-block-attributes). + + + + + ```hcl + account_factory { + account_vending "sdlc" { + account_identifiers = ["dev", "stage", "prod"] + catalog_repositories = ["path/to/catalog-repositories"] + + ci_collaborator "a-team" { + team: "apple-team" + permission: "maintainer" + } + + ci_collaborator "b-team" { + team: "banana-team" + permission: "read" + } + } + } + ``` + + In this example, the `a-team` will be added as a maintainer and the `b-team` will be added as a read only collaborator to a dedicated infrastructure-live repository if the "Delegate Management of Account(s)?" option is chosen during account request of type `sdlc`. + + + +## Account Factory Block Attributes + +### access_control_template_path + + + + + Path to the access-control-accounts template, in the architecture-catalog repository, to use when provisioning new accounts. + + + + +### access_control_repository_name + + + + + The name of your infrastructure-live-access-control repository + + + + +### architecture_catalog_module_version + + + + + The version of the architecture catalog module to use when provisioning new accounts. + + + + +### architecture_catalog_repo_url + + + + + The URL of the architecture catalog repository to use when provisioning new accounts. + + + + +### aws_security_repo_url + + + + + The URL of the aws-security module repository to use when provisioning new accounts. + + + + +### aws_utilities_repo_url + + + + + The URL of the aws-utilities module repository to use when provisioning new accounts. + + + + +### catalog_tags_location + + + + + The path to the catalog tags file to use when provisioning new accounts. + + + + +### cis_service_catalog_repo_url + + + + + The URL of the cis-service-catalog module repository to use when provisioning new accounts. + + + + +### control_tower_module_version + + + + + The version of the aws-control-tower module to use when provisioning new accounts. + + + + +### control_tower_repo_url + + + + + The URL of the aws-control-tower repository to use when provisioning new accounts. + + + + +### delegated_repository_template_path + + + + + The path to the devops-foundations-infrastructure-live-delegated template, in the architecture-catalog repository, to use when provisioning new accounts. + + + + +### disable_vpc_inputs + + + + + If set to true, the terragrunt.hcl generated for the VPC in new delegated accounts will not pass any inputs to the VPC module. This is useful for customers with custom VPC configurations: e.g., IPAM, transit subnets, private NAT, etc. All of this custom config can go into vpc-app.hcl in _envcommon directly in the customer's infra-live repo. + + + + + +### infrastructure_catalog_module_repository_name + + + + + The name of your infrastructure-catalog module repository. + + + + +### infrastructure_catalog_module_version + + + + + The version of your infrastructure-catalog module repository. + + + + +### logs_account_name + + + + + The name of your logs account if different from the default of `logs`. + + + + +### management_account_name + + + + + The name of your management account if different from the default of `management`. + + + + +### pipelines_read_token_name + + + + + (GitHub only) The name of your pipelines read token if different from the default of `PIPELINES_READ_TOKEN`. + + + + +### pipelines_workflow_location + + + + + (GitHub only) The location of your pipelines workflow if different from the default of `gruntwork-io/pipelines-workflows/.github/workflows/pipelines.yml@X`. + + + + +### security_account_name + + + + + The name of your security account if different from the default of `security`. + + + + +### security_module_version + + + + + The version of aws-security module repository to use when provisioning new accounts. + + + + +### shared_account_name + + + + + The name of your shared account if different from the default of `shared`. + + + + +### single_account_baseline_template_path + + + + + The path to the single-account-baseline template, in the architecture-catalog repository, to use when provisioning new accounts. + + + + +### vpc_module_url + + + + + The URL of the vpc module to use when provisioning new accounts. + + + + +### vpc_module_version + + + + + The version of the vpc module to use when provisioning new accounts. + + + + + +## Account Vending Block Attributes + +### account_identifiers + + + + +A list of account identifiers. When vending accounts with this Account Vending configuration, a new account will be created for each identifier. + + + + +### catalog_repositories + + + + A list of repositories that contain infrastructure modules that can be easily leveraged as a catalog by delegated repositories vended during account provisioning. + + + + +## CI Collaborator Block Attributes + +### team + + + + The name of the GitHub team or GitLab group to add to a delegated infrastructure-live repository. + + + +### permission + + + + The permission to add to the GitHub team or GitLab group. See respective documentation for [GitHub](ttps://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization#permissions-for-each-role)/[GitLab](https://docs.gitlab.com/user/permissions/). + + diff --git a/docs/2.0/reference/accountfactory/index.md b/docs/2.0/reference/accountfactory/index.md new file mode 100644 index 0000000000..e6a8b7c202 --- /dev/null +++ b/docs/2.0/reference/accountfactory/index.md @@ -0,0 +1,10 @@ +# Overview + +import PipelinesLanguageTransitionPartial from '../pipelines/language_transition_partial.mdx' + + + +## Next Steps + +- Explore the [YAML Configurations](/2.0/reference/accountfactory/configurations) reference for detailed guidance. +- Learn more about the (Beta) [Configurations as Code](/2.0/reference/accountfactory/configurations-as-code) reference. diff --git a/docs/2.0/reference/pipelines/index.md b/docs/2.0/reference/pipelines/index.md index 2f57cee64b..30a59206fe 100644 --- a/docs/2.0/reference/pipelines/index.md +++ b/docs/2.0/reference/pipelines/index.md @@ -1,8 +1,10 @@ # Overview -import PipelinesConfig from './language_auth_partial.mdx' +import PipelinesLanguageTransitionPartial from './language_transition_partial.mdx' +import PipelinesAuthPartial from './language_auth_partial.mdx' - + + ## Additional configuration diff --git a/docs/2.0/reference/pipelines/language_auth_partial.mdx b/docs/2.0/reference/pipelines/language_auth_partial.mdx index 77a19e56e4..e1e1e316de 100644 --- a/docs/2.0/reference/pipelines/language_auth_partial.mdx +++ b/docs/2.0/reference/pipelines/language_auth_partial.mdx @@ -1,13 +1,3 @@ -## Configuration Language Transition - -Pipelines configurations are currently undergoing a transition from YAML configurations to new HCL [Configurations as Code](/2.0/reference/pipelines/configurations-as-code/index.md). These new configurations will offer a richer configuration experience, but are not yet required for use. [YAML configurations](/2.0/reference/pipelines/configurations.md) will continue to work as expected for the time being. - -YAML configurations are read by Pipelines when HCL configurations are not present, and the Pipelines binary falls back to interpreting YAML configurations as if they were defined in the HCL configuration system in this scenario. - -This means that if you have a `.gruntwork/config.yml` file in your repository, you can continue to use it as you have been, and Pipelines will continue to work as expected. - -If you do introduce any HCL configurations into your `.gruntwork` directory or introduce a `gruntwork.hcl` file into a directory, Pipelines will begin to use the HCL configuration system instead of the YAML configuration system. - ## Authentication Core pipelines functionally generally requires only a small amount of configuration. The most critical configuration for the CI/CD pipeline is how to authenticate with AWS, and that is covered in one of two ways: diff --git a/docs/2.0/reference/pipelines/language_transition_partial.mdx b/docs/2.0/reference/pipelines/language_transition_partial.mdx new file mode 100644 index 0000000000..4637e0c9c7 --- /dev/null +++ b/docs/2.0/reference/pipelines/language_transition_partial.mdx @@ -0,0 +1,9 @@ +## Configuration Language Transition + +Pipelines configurations are currently undergoing a transition from YAML configurations to new HCL [Configurations as Code](/2.0/reference/pipelines/configurations-as-code/index.md). These new configurations will offer a richer configuration experience, but are not yet required for use. [YAML configurations](/2.0/reference/pipelines/configurations.md) will continue to work as expected for the time being. + +YAML configurations are read by Pipelines when HCL configurations are not present, and the Pipelines binary falls back to interpreting YAML configurations as if they were defined in the HCL configuration system in this scenario. + +This means that if you have a `.gruntwork/config.yml` file in your repository, you can continue to use it as you have been, and Pipelines will continue to work as expected. + +If you do introduce any HCL configurations into your `.gruntwork` directory or introduce a `gruntwork.hcl` file into a directory, Pipelines will begin to use the HCL configuration system instead of the YAML configuration system. diff --git a/sidebars/reference.js b/sidebars/reference.js index af2fdc3bee..11bc08e1f8 100644 --- a/sidebars/reference.js +++ b/sidebars/reference.js @@ -78,11 +78,21 @@ const sidebar = [ value: "Account Factory", className: "sidebar-header", }, + { + label: "Overview", + type: "doc", + id: "2.0/reference/accountfactory/index", + }, { label: "Configurations", type: "doc", id: "2.0/reference/accountfactory/configurations", }, + { + label: "Configurations as Code (HCL - Beta)", + type: "doc", + id: "2.0/reference/accountfactory/configurations-as-code", + }, ] module.exports = sidebar diff --git a/src/components/HclListItem.tsx b/src/components/HclListItem.tsx index 00fc85dc49..97e45cb222 100644 --- a/src/components/HclListItem.tsx +++ b/src/components/HclListItem.tsx @@ -1,6 +1,6 @@ import React, { PropsWithChildren } from "react" import styles from "./HclListItem.module.css" -import useBrokenLinks from '@docusaurus/useBrokenLinks'; +import useBrokenLinks from "@docusaurus/useBrokenLinks" interface HclListItemProps { name: string @@ -11,7 +11,7 @@ interface HclListItemProps { export const HclListItem: React.FunctionComponent< PropsWithChildren > = ({ name, requirement, type, children }) => { - useBrokenLinks().collectAnchor(name); + useBrokenLinks().collectAnchor(name) return (
    @@ -29,29 +29,28 @@ export const HclListItem: React.FunctionComponent< ) } -export const HclListItemDescription: React.FunctionComponent = ({ - children, -}) => { +export const HclListItemDescription: React.FunctionComponent< + PropsWithChildren +> = ({ children }) => { return
    {children}
    } - - -export const HclListItemExample: React.FunctionComponent = ({ +export const HclListItemExample: React.FunctionComponent = ({ children, }) => { - return
    -
    - Example - {children} -
    -
    + return ( +
    +
    + Example + {children} +
    +
    + ) } -export const HclGeneralListItem: React.FunctionComponent> = ({ - title, - children, -}) => { +export const HclGeneralListItem: React.FunctionComponent< + PropsWithChildren<{ title: string }> +> = ({ title, children }) => { return (
    @@ -60,12 +59,10 @@ export const HclGeneralListItem: React.FunctionComponent { - return ( - - ) +export const HclListItemTypeDetails: React.FunctionComponent< + PropsWithChildren +> = ({ children }) => { + return } export const HclListItemDefaultValue: React.FunctionComponent< From cad80d86e1e5d2ad9e9fc5ed3ff1a760b2dfd147 Mon Sep 17 00:00:00 2001 From: Lewis Christie Date: Thu, 9 Oct 2025 09:54:46 -0600 Subject: [PATCH 15/37] Add unlock workflows docs (#2793) * Add unlock workflows docs * Review suggestions --------- Co-authored-by: Oreoluwa Agunbiade --- docs/2.0/docs/pipelines/guides/unlock.md | 99 ++++++++++++++++++ sidebars/docs.js | 5 + .../pipelines/maintain/unlock-all-github.png | Bin 0 -> 112994 bytes .../pipelines/maintain/unlock-all-gitlab.png | Bin 0 -> 114320 bytes .../maintain/unlock-logs-lock-id.png | Bin 0 -> 71848 bytes .../pipelines/maintain/unlock-unit-github.png | Bin 0 -> 118410 bytes .../pipelines/maintain/unlock-unit-gitlab.png | Bin 0 -> 123283 bytes 7 files changed, 104 insertions(+) create mode 100644 docs/2.0/docs/pipelines/guides/unlock.md create mode 100644 static/img/pipelines/maintain/unlock-all-github.png create mode 100644 static/img/pipelines/maintain/unlock-all-gitlab.png create mode 100644 static/img/pipelines/maintain/unlock-logs-lock-id.png create mode 100644 static/img/pipelines/maintain/unlock-unit-github.png create mode 100644 static/img/pipelines/maintain/unlock-unit-gitlab.png diff --git a/docs/2.0/docs/pipelines/guides/unlock.md b/docs/2.0/docs/pipelines/guides/unlock.md new file mode 100644 index 0000000000..89e4d683f2 --- /dev/null +++ b/docs/2.0/docs/pipelines/guides/unlock.md @@ -0,0 +1,99 @@ +# Unlocking State Locks + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Overview + +Occasionally, OpenTofu/Terraform state locks may remain in place if the process holding the lock does not release it properly. This can occur due to unexpected failures, such as crashes or premature termination of jobs. + +When this occurs, jobs will fail after a timeout with `Error: Error acquiring the state lock`, and will not succeed until the lock is manually removed. + +:::note +You might have a default lock timeout in your `root.hcl` file that looks like this: + +```hcl +terraform { + extra_arguments "retry_lock" { + commands = get_terraform_commands_that_need_locking() + arguments = ["-lock-timeout=10m"] + } +} +``` + +::: + +## Unlocking Unit State + +When a unit lock is held, the lock can be manually removed with the unlock unit workflow. This is a convenience workflow for running the OpenTofu/Terraform force-unlock command. The workflow requires the following inputs: + +### Lock ID + +The Lock ID can be found in the logs where a job has failed to acquire the state lock. + +![Lock ID](/img/pipelines/maintain/unlock-logs-lock-id.png) + +In this example the ID is `ca9c97f1-6315-c0d1-56ef-efb8c8996e8c`. + +### Unit Path + +The Unit Path is the relative path to the directory containing your `terragrunt.hcl` file where the lock is being held. + +In the above example the Unit Path is `acme/us-east-1/storage/s3bucket1`. + +### Stack Path + +Optional: When a Unit within a Stack is locked, Pipelines requires the Stack Path to generate the stack before running force-unlock in the Unit. + + + + +1. From the Actions Tab, select Pipelines Unlock from the list of workflows on the left. +2. Select the Run workflow dropdown on the right +3. Enter the Lock ID and Unit Path values into the dropdown +4. Select Run workflow + +![GitHub Unlock Unit Workflow](/img/pipelines/maintain/unlock-unit-github.png) + + + + +1. From the Pipelines tab select New Pipeline +2. Select the `pipelines_workflow` Input and change the Value to `unlock-unit` from the dropdown +3. Enter the Lock ID and Unit Path into the `pipelines_unlock_unit_lock_id` and `pipelines_unlock_unit_path` inputs +4. Select New pipeline + +![GitLab Unlock Unit Workflow](/img/pipelines/maintain/unlock-unit-gitlab.png) + + + + +## Unlocking All State + +:::warning +The Unlock All workflow currently only unlocks AWS DynamoDB locks. It does this by attempting to delete the entire `terraform-locks` table in each region. +::: + +In the event that many locks are being held, and it is difficult to obtain the Lock IDs, an Unlock All workflow exists to forcibly remove all locks. Run this workflow with caution. + + + + +1. From the Actions Tab, select Pipelines Unlock from the list of workflows on the left. +2. Select the Run workflow dropdown on the right +3. Tick the checkbox to forcibly reset all locks +4. Select Run workflow + +![GitHub Unlock All Workflow](/img/pipelines/maintain/unlock-all-github.png) + + + + +1. From the Pipelines tab select New Pipeline +2. Select the `pipelines_workflow` Input and change the Value to `unlock-all` from the dropdown +3. Select New pipeline + +![GitLab Unlock All Workflow](/img/pipelines/maintain/unlock-all-gitlab.png) + + + diff --git a/sidebars/docs.js b/sidebars/docs.js index 9b1c534df3..3fbe36c9c8 100644 --- a/sidebars/docs.js +++ b/sidebars/docs.js @@ -398,6 +398,11 @@ const sidebar = [ type: "doc", id: "2.0/docs/pipelines/guides/ignore-files-directories", }, + { + label: "Unlocking State Locks", + type: "doc", + id: "2.0/docs/pipelines/guides/unlock" + } ], }, { diff --git a/static/img/pipelines/maintain/unlock-all-github.png b/static/img/pipelines/maintain/unlock-all-github.png new file mode 100644 index 0000000000000000000000000000000000000000..97fcf0bd88b545be618bf1b210ff66695755997b GIT binary patch literal 112994 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

    1SzO7O*6b$bj$#zT{~} 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%0Av+57X*z@5CW&>Nz-+X2lfxK+Ci#v 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 M07*qoM6N<$f)mKwMgRZ+ literal 0 HcmV?d00001 diff --git a/static/img/pipelines/maintain/unlock-all-gitlab.png b/static/img/pipelines/maintain/unlock-all-gitlab.png new file mode 100644 index 0000000000000000000000000000000000000000..98dec09a38017da5d871becbe76335b68705b9e4 GIT binary patch literal 114320 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

    XEMU+z>-NohknKRI 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 G`~5Gdf3d>= literal 0 HcmV?d00001 diff --git a/static/img/pipelines/maintain/unlock-logs-lock-id.png b/static/img/pipelines/maintain/unlock-logs-lock-id.png new file mode 100644 index 0000000000000000000000000000000000000000..c3d7390cc83bd4c767c1a73868dc1f07f1156cb1 GIT binary patch literal 71848 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 L0ses)6?1Htkzm$aC>F+V>Z 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%0ASL>T-IVF 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

    1SzO7O*6b$bj$#zT{~} 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%0Av+57X*z@5CW&>Nz-+X2lfxK+Ci#v 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

    5k# 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 literal 0 HcmV?d00001 From 40fe00f0691df5a65092caf643fb471bbf51bce8 Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:49:13 -0400 Subject: [PATCH 16/37] docs: Adding callout for branch protection security improvements (#2798) --- .../docs/pipelines/installation/branch-protection.mdx | 10 ++++++++++ .../pipelines/installation/gitlab-branch-protection.md | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/docs/2.0/docs/pipelines/installation/branch-protection.mdx b/docs/2.0/docs/pipelines/installation/branch-protection.mdx index 399ca57d43..c8766542f3 100644 --- a/docs/2.0/docs/pipelines/installation/branch-protection.mdx +++ b/docs/2.0/docs/pipelines/installation/branch-protection.mdx @@ -34,6 +34,16 @@ Below is an example of the recommended branch protection settings: GitHub Enterprise customers can also configure [push rulesets](https://docs.github.com/en/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets#push-rulesets). This feature allows restricting edits to `.github/workflows` files, ensuring infrastructure changes are properly reviewed and approved through Pipelines. Follow the documentation [here](https://docs.github.com/en/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/creating-rulesets-for-a-repository#creating-a-push-ruleset) to enable push rulesets if available. ::: +## Securing User Accounts + +Branch protection rules are only effective if you are confident that the users who have access to your repository are legitimate and trusted. + +You can improve your security posture by ensuring that: + +1. [User accounts have Multi-Factor Authentication (MFA) enabled](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication). +2. [User accounts don't have compromised credentials](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure). +3. [User accounts are granted access to infrastructure-live repositories on a least privilege basis](https://en.wikipedia.org/wiki/Principle_of_least_privilege). + ## Pull Request Workflow 1. Developers make infrastructure changes on a branch and create a pull request (PR) against the default branch. diff --git a/docs/2.0/docs/pipelines/installation/gitlab-branch-protection.md b/docs/2.0/docs/pipelines/installation/gitlab-branch-protection.md index 51d936034e..ddfa7a80cc 100644 --- a/docs/2.0/docs/pipelines/installation/gitlab-branch-protection.md +++ b/docs/2.0/docs/pipelines/installation/gitlab-branch-protection.md @@ -15,6 +15,16 @@ Below is an example of the recommended GitLab branch protection settings: ![GitLab Branch Protection Settings](/img/pipelines/gitlab_branch_protection.png) +## Securing User Accounts + +Branch protection rules are only effective if you are confident that the users who have access to your repository are legitimate and trusted. + +You can improve your security posture by ensuring that: + +1. [User accounts have Multi-Factor Authentication (MFA) enabled](https://docs.gitlab.com/user/profile/account/two_factor_authentication/). +2. [User accounts don't have compromised credentials](https://docs.gitlab.com/auth/auth_practices/). +3. [User accounts are granted access to infrastructure-live repositories on a least privilege basis](https://en.wikipedia.org/wiki/Principle_of_least_privilege). + ## Merge Request Workflow 1. Developers make infrastructure changes on a branch and create a merge request (MR) against the default branch. From 2f6c26e39900db35e6d3b7a2654745fb73bdc4e2 Mon Sep 17 00:00:00 2001 From: Lewis Christie Date: Thu, 9 Oct 2025 13:51:18 -0600 Subject: [PATCH 17/37] GitHub Pipelines v3 -> v4 migration guide (#2794) * WIP migration guide * More WIP * More WIP guide * Updates * Fix broken links * PR suggestions --------- Co-authored-by: Oreoluwa Agunbiade --- .../upgrading-github-v3-to-v4.md | 313 ++++++++++++++++++ sidebars/docs.js | 14 +- 2 files changed, 323 insertions(+), 4 deletions(-) create mode 100644 docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md new file mode 100644 index 0000000000..de7b446938 --- /dev/null +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md @@ -0,0 +1,313 @@ +import PersistentCheckbox from '@site/src/components/PersistentCheckbox'; + +# Upgrading Pipelines GitHub Workflows From v3 to v4 + +To upgrade Pipelines from v3 to v4, perform the following changes in each +repository that includes the Gruntwork Pipelines Workflows. + +## Updating Terragrunt Version + +The minimum supported Terragrunt version in v4 is **0.86.3**. + +In `.mise.toml` in the root of the repository, update the `terragrunt` version e.g. + +``` +terragrunt = "0.86.3" +``` + +See the [Terragrunt Release Notes](https://github.com/gruntwork-io/terragrunt/releases) +for detailed information on the changes to Terragrunt. + +:::note Progress Checklist + +- [ ] Terragrunt Version Updated + +::: + +## Migrating from root terragrunt.hcl to root.hcl + +:::warning +When using a mix of older and newer catalogs, it is important that Terragrunt +units are consistent with their root HCL files. For example v4.0.0 of the +architecture catalog used by Account Factory requires a `root.hcl` file. +::: + +Pipelines v3 used a `terragrunt.hcl` file in the root of the repository for common configuration. +This is no longer recommended and should be renamed to `root.hcl`. + +This requires updating Terragrunt files that include this file. +Both `find_in_parent_folders()` and `find_in_parent_folders("terragrunt.hcl")` should +be replaced with `find_in_parent_folder("root.hcl")`. + +Typically units including the root like: +``` +include "root" { + path = find_in_parent_folders() +} +``` + +Will need to be updated like so: +``` +include "root" { + path = find_in_parent_folders("root.hcl") +} +``` + +Refer to the [Terragrunt Documentation](https://terragrunt.gruntwork.io/docs/migrate/migrating-from-root-terragrunt-hcl/) +for more details. + +:::note Progress Checklist + +- [ ] Root Terragrunt File Renamed + +::: + +## Replace YML Config with HCL Config + +:::note +Repositories using only YML configuration will still function with Pipelines v4, +but adding any HCL configuration will prevent the YML from having an effect. + +In the next major release YML configuration will have no effect and HCL will be +required. +::: + +YML configurations(in the `.gruntwork/config.yml` file) are officially deprecated in Pipelines v4. +Migrating to HCL configuration requires replacing the `config.yml` file with HCL files in the `.gruntwork` directory. + +### Repository Configuration + +We recommend adding the following files to your repository. + +```hcl title=".gruntwork/repository.hcl" +# Configurations applicable to the entire repository, see: https://docs.gruntwork.io/2.0/reference/pipelines/configurations-as-code/api#repository-block +repository { + deploy_branch_name = "main" + consolidate_added_or_changed = "true" + env { + TG_STRICT_CONTROL = "skip-dependencies-inputs" + TG_DEPENDENCY_FETCH_OUTPUT_FROM_STATE = "true" + TG_EXPERIMENT = "auto-provider-cache-dir" + } +} + +``` + +The `repository` block contains settings for the entire repository. See the +[Repository Block Attributes](/2.0/reference/pipelines/configurations-as-code/api#repository-block-attributes) +to find which of your existing YML configurations need to be added here. + +### AWS Accounts Configuration + +```hcl title=".gruntwork/accounts.hcl" +# AWS account configurations that are usable by the entire repository, see: https://docs.gruntwork.io/2.0/reference/pipelines/configurations-as-code/api#aws-block +aws { + accounts "all" { + // Reading the accounts.yml file from the root of the repository + path = "../accounts.yml" + } +} +``` + +The `accounts.hcl` file is a helper to read from the root `accounts.yml` file into your HCL configuration. + +### Environments Configuration + +For each account in your repository add an environment-**accountname**.hcl file. e.g. for the management account add the following file: + +```hcl title=".gruntwork/environment-management.hcl" +# Configurations that are applicable to a specific environment within a repository, see: https://docs.gruntwork.io/2.0/reference/pipelines/configurations-as-code/api/#environment-block +environment "management" { + filter { + paths = ["management/*"] + } + + authentication { + aws_oidc { + # The account references are defined in the accounts.hcl file via the aws block + account_id = aws.accounts.all.management.id + plan_iam_role_arn = "arn:aws:iam::${aws.accounts.all.management.id}:role/root-pipelines-plan" + apply_iam_role_arn = "arn:aws:iam::${aws.accounts.all.management.id}:role/root-pipelines-apply" + } + } +} + +``` + +:::warning +Note the role-name in the `apply_iam_role_arn` and `plan_iam_role_arn` role ARN values. The role-names should match the Pipelines roles you provisioned in your AWS accounts. +Typically, these roles are: +- `root-pipelines-*` in the `infrastructure-live-root` repository +- `access-control-pipelines-*` in an `infrastructure-live-access-control` repository +- `delegated-pipelines-*` in an `infrastructure-live-delegated` repository + +Confirm the values by looking at your Infrastructure as Code for those IAM roles. +::: + +**Repeat this for each environment that needs to be authenticated.** + +### Account Factory Configuration + +If your repository has Account Factory add the following file based on your existing YML configuration. + +```hcl title=".gruntwork/account-factory.hcl" +account_factory { + control_tower_module_version = "" + security_module_version = "" + access_control_repository_name = "" + architecture_catalog_module_version = "" + infrastructure_catalog_module_repository_name = "" +} +``` + +Replacing and adding values based on your existing YML configuration. +See the [Account Factory HCL](/2.0/reference/accountfactory/configurations-as-code) for +a full reference of values or contact [Gruntwork Support](mailto:support@gruntwork.io) for assistance. + +For Enterprise customers using Account Factory: see the [Account Vending Configuration](/2.0/reference/accountfactory/configurations-as-code#account_vending-block) for converting the account vending configuration to HCL. + + +:::note Progress Checklist + +- [ ] YML Config Replaced + +::: + +## Allowlisting Actions + +If your organization maintains an allowlist of GitHub actions, update the allowlist +with the full list of actions in [pipelines-actions v4.0.0](https://github.com/gruntwork-io/pipelines-actions/tree/v4.0.0/.github/actions) + +:::note Progress Checklist + +- [ ] Actions Allowlisted + +::: + +## Pipelines Workflow + +In your infrastructure-live repository, update the `.github/workflows/pipelines.yml` file as follows: + +### Add workflow permission + +Update the Pipelines Workflow in the repository to add `actions: read`; required by the latest Pull Request comment functionality. + +:::note Progress Checklist + +- [ ] Updated Pipelines Workflow to add `actions: read` permission + +::: + + +### Update Pipelines GruntworkPipelines uses version + +Update the `uses:` field of the GruntworkPipelines job to reference `@v4` + +:::note Progress Checklist + +- [ ] Updated Pipelines Workflow to reference `@v4` + +::: + +### Remove PipelinesPassed job + +The pipelines workflow now runs a `GruntworkPipelines / Pipelines Status Check` +job which can be used for Required Status Checks. Remove the PipelinesPassed job +and update any Required Status Checks to use `GruntworkPipelines / Pipelines Status Check`. + +:::note Progress Checklist + +- [ ] Removed PipelinesPassed job + +::: + +## Drift Detection Workflow + +In your infrastructure-live repository, update the `.github/workflows/pipelines-drift-detection.yml` file as follows: + +### Update Inputs + +The inputs for Drift Detection have been renamed. + +Update the `workflow_dispatch` section with the new inputs: + +``` + workflow_dispatch: + inputs: + pipelines_drift_detection_filter: + description: Limit drift detection to units matching filter https://docs.gruntwork.io/2.0/docs/pipelines/guides/running-drift-detection#drift-detection-filter + type: string + pipelines_drift_detection_branch: + description: The branch name used for drift remediation PRs + default: drift-detection + type: string +``` + +Update the GruntworkPipelines job to use these inputs: + +``` + with: + pipelines_drift_detection_filter: ${{ inputs.pipelines_drift_detection_filter }} + pipelines_drift_detection_branch: ${{ inputs.pipelines_drift_detection_branch }} +``` + +The syntax for the filter in Drift Detection has changed. Refer to the [Filter Reference](/2.0/docs/pipelines/guides/running-drift-detection#drift-detection-filter) + +### Update Drift Detection GruntworkPipelines uses version + +Update the `uses:` field of the GruntworkPipelines job to reference `@v4` + +:::note Progress Checklist + +- [ ] Drift Detection Uses @v4 + +::: + +## Unlock Workflow + +In your infrastructure-live repository, update the `.github/workflows/pipelines-unlock.yml` file as follows: + +### Update Inputs + +The inputs for Unlock have been renamed. + +Update the `workflow_dispatch` section with the new inputs: + +``` + inputs: + lock_id: + description: "The ID of the lock, usually a GUID. This is generally found in the console output when Terraform/OpenTofu command fails due to a timeout waiting to acquire a lock. (required if not running unlock_all)" + required: false + type: string + unit_path: + description: "Path to the Terragrunt Unit directory where the lock is held (everything up to but not including terragrunt.hcl - required if not running unlock_all)" + required: false + type: string + stack_path: + description: "Path to a Terragrunt Stack directory (everything up to but not including terragrunt.stack.hcl) that generates content required to run unlock in a specified Terragrunt Unit" + required: false + type: string + unlock_all: + description: "Forcibly reset all locks by deleting the dynamodb table" + required: false + type: boolean +``` + +Update the GruntworkPipelines job to use these inputs: + +``` + lock_id: ${{ inputs.lock_id }} + unit_path: ${{ inputs.unit_path }} + stack_path: ${{ inputs.stack_path }} + unlock_all: ${{ inputs.unlock_all }} +``` + +### Update Unlock GruntworkPipelines uses version + +Update the `uses:` field of the GruntworkPipelines job to reference `@v4` + +:::note Progress Checklist + +- [ ] Pipelines Unlock Uses @v4 + +::: diff --git a/sidebars/docs.js b/sidebars/docs.js index 3fbe36c9c8..ffa22970e6 100644 --- a/sidebars/docs.js +++ b/sidebars/docs.js @@ -149,7 +149,7 @@ const sidebar = [ label: "Custom", type: "doc", id: "2.0/docs/pipelines/concepts/cloud-auth/custom", - } + }, ], }, { @@ -401,14 +401,19 @@ const sidebar = [ { label: "Unlocking State Locks", type: "doc", - id: "2.0/docs/pipelines/guides/unlock" - } + id: "2.0/docs/pipelines/guides/unlock", + }, ], }, { label: "Previous Versions", type: "category", items: [ + { + label: "Upgrading from Pipelines GitHub Workflows v3 to v4", + type: "doc", + id: "2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4", + }, { label: "Upgrading from Infrastructure-Pipelines", type: "doc", @@ -549,7 +554,8 @@ const sidebar = [ id: "2.0/docs/accountfactory/guides/iam-roles", }, { - label: "Automatically Remediate AWS Control Tower Drift with Async Multi-Account Factory Module", + label: + "Automatically Remediate AWS Control Tower Drift with Async Multi-Account Factory Module", type: "doc", id: "2.0/docs/accountfactory/guides/drift-remediation-with-async-module", }, From ab2598366f68f8fea081fa8ae3328c9eeed25e8e Mon Sep 17 00:00:00 2001 From: Oreoluwa Agunbiade <21035422+oredavids@users.noreply.github.com> Date: Fri, 10 Oct 2025 12:28:23 -0600 Subject: [PATCH 18/37] Update migration doc with fallback token permissions (#2802) * WIP migration guide * More WIP * More WIP guide * Updates * Fix broken links * Update migration doc with fallback token permissions * Fix formatting * Fix lint * Apply suggestion from @odgrim Co-authored-by: Brian T --------- Co-authored-by: Lewis Christie Co-authored-by: Brian T --- .../installation/viamachineusers.mdx | 18 ++++++++++++----- .../upgrading-github-v3-to-v4.md | 19 +++++++++++++++++- .../security/INFRA_ROOT_WRITE_TOKEN.png | Bin 402859 -> 0 bytes .../security/ORG_REPO_ADMIN_TOKEN.png | Bin 47926 -> 0 bytes 4 files changed, 31 insertions(+), 6 deletions(-) delete mode 100644 static/img/pipelines/security/INFRA_ROOT_WRITE_TOKEN.png delete mode 100644 static/img/pipelines/security/ORG_REPO_ADMIN_TOKEN.png diff --git a/docs/2.0/docs/pipelines/installation/viamachineusers.mdx b/docs/2.0/docs/pipelines/installation/viamachineusers.mdx index 45d6ead0a9..b46dac433e 100644 --- a/docs/2.0/docs/pipelines/installation/viamachineusers.mdx +++ b/docs/2.0/docs/pipelines/installation/viamachineusers.mdx @@ -6,7 +6,7 @@ toc_max_heading_level: 4 # Creating Machine Users -import PersistentCheckbox from '/src/components/PersistentCheckbox'; +import PersistentCheckbox from "/src/components/PersistentCheckbox" import Tabs from "@theme/Tabs" import TabItem from "@theme/TabItem" @@ -39,6 +39,7 @@ If screen sharing while generating tokens, **pause or hide your screen** before ::: ### Token types + @@ -163,14 +164,13 @@ This [fine-grained](#fine-grained-tokens) Personal Access Token allows GitHub Ac This token must have the following permissions to the `INFRA_ROOT_WRITE_TOKEN` for the `infrastructure-live-root` repository: +- **Actions:** Read & write access — Allows Pipelines to create enriched pull request comments. - **Content:** Read & write access — Required to clone the repository and push changes. - **Issues:** Read & write access — Allows Pipelines to open issues when manual intervention is needed. - **Metadata:** Read access — Grants access to repository metadata. - **Pull requests:** Read & write access — Enables Pipelines to automate infrastructure changes through PRs. - **Workflows:** Read & write access — Needed to update workflow files in `.github/workflows` when provisioning new repositories. -![INFRA_ROOT_WRITE_TOKEN PAT Configuration](/img/pipelines/security/INFRA_ROOT_WRITE_TOKEN.png) -

    Why does this token need these permissions? @@ -179,6 +179,10 @@ Below is a detailed breakdown of the permissions needed for the `INFRA_ROOT_WRIT If you are not an Enterprise customer or prefer Pipelines not to execute certain behaviors, you can opt not to grant the related permissions. +##### Actions read & write access + +Allows Pipelines to create workflow job artifacts and access workflow job logs to enrich pull request comments with the latest workflow run logs. + ##### Content read & write access Needed for cloning `infrastructure-live-root` and pushing automated changes. Without this permission, the pull request opened by the GitHub Actions workflow will not trigger automation during account vending. @@ -205,6 +209,7 @@ Required to update workflows when provisioning new repositories. This fine-grained token is used for initial setup and bootstrapping repositories. For Enterprise customers, it also provisions delegated repositories. Assign the following permissions to all accessible repositories: +- **Actions:** Read & write access — Allows Pipelines to create enriched pull request comments. - **Administration:** Read & write access — Required to create and manage repositories. - **Content:** Read & write access — Necessary for reading and writing repository files. - **Metadata:** Read access — Grants access to repository metadata. @@ -215,8 +220,6 @@ This fine-grained token is used for initial setup and bootstrapping repositories - **Members:** Read & write access — Needed to manage team access for repositories. -![ORG_REPO_ADMIN_TOKEN PAT Configuration](/img/pipelines/security/ORG_REPO_ADMIN_TOKEN.png) -
    Why does this token need these permissions? @@ -224,6 +227,10 @@ The following is a breakdown of the permissions needed for the `ORG_REPO_ADMIN_T If you are not an Enterprise customer or prefer Pipelines not to carry out certain actions, you can choose to withhold the related permissions. +##### Actions read & write access + +Allows Pipelines to create workflow job artifacts and access workflow job logs to enrich pull request comments with the latest workflow run logs. + ##### Administration read & write access Allows the creation of new repositories for delegated infrastructure management. @@ -273,6 +280,7 @@ Invite `ci-user-read-only` to your `infrastructure-live-root` repository with re Generate the following token for the `ci-read-only-user`: **Checklist:** + #### PIPELINES_READ_TOKEN diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md index de7b446938..4ca4f3c004 100644 --- a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md @@ -113,7 +113,7 @@ The `accounts.hcl` file is a helper to read from the root `accounts.yml` file in ### Environments Configuration -For each account in your repository add an environment-**accountname**.hcl file. e.g. for the management account add the following file: +For each account in your repository add an environment-**AccountName**.hcl file. e.g. for the management account add the following file: ```hcl title=".gruntwork/environment-management.hcl" # Configurations that are applicable to a specific environment within a repository, see: https://docs.gruntwork.io/2.0/reference/pipelines/configurations-as-code/api/#environment-block @@ -311,3 +311,20 @@ Update the `uses:` field of the GruntworkPipelines job to reference `@v4` - [ ] Pipelines Unlock Uses @v4 ::: + +## Updating CI User Token Permissions + +Update both of the CI User's Fine-Grained Personal Access Tokens (PATs): + +- [INFRA_ROOT_WRITE_TOKEN](/2.0/docs/pipelines/installation/viamachineusers#infra_root_write_token) and +- [ORG_REPO_ADMIN_TOKEN](/2.0/docs/pipelines/installation/viamachineusers#org_repo_admin_token) + +to include `Actions: Read & write access`. This allows Pipelines to create enriched pull request comments with the latest workflow run logs. + +Customers using the [Gruntwork.io GitHub App](/2.0/docs/pipelines/installation/viagithubapp#gruntworkio-github-app) should also update the above permissions so that the tokens already have the necessary permissions when used as a fallback mechanism. + +:::note Progress Checklist + +- [ ] Updated CI User Token Permissions + +::: diff --git a/static/img/pipelines/security/INFRA_ROOT_WRITE_TOKEN.png b/static/img/pipelines/security/INFRA_ROOT_WRITE_TOKEN.png deleted file mode 100644 index 894b4a94a6ad84ffafa21790813859dc3637fd98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402859 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 z≫qC_QHmu~*A4&+0iVqX%b|Nm{`M=fV-rz1;)M@g*Krv05$6sD5p6e?VC3FLj?d z(|(S<8kA3ygpHaFZ~_h+?5T6U>ryy8E=&3b8xzmr%Ov(jGj;YrjJn_7VXXj~@&rZn zdxtB79D0-~ZBgm11to^B?V?arJaiLpOE?qdtculQqcfSPkNn+V{}-^lWh$@8Q6#Y| zrf*+FB+ELtYi+&8rtG-O;N^ zwZ|7E-)D;X&+y6KrR^4?*2~B{GK zpGT+rNa8CS*Ui!Yi@mpws;YbcMO6d@lx{(~K^i1C9RdO(ARyhSlyq$Y>F(~9Zk5;| zUDBP>NJ+@-IbMt+Jq$Oyaml^M=K|@e@@!e_PRwti2LYs-;EeEuon(J&&Qz?HORGf1v z&r?Yl&&T7~n#wTgc5wHx#PQbm*XNg0`OiM8dU#zDo)6`fT7h{fCY+$4pOmt16XRK8@27qI~oTwnJuD}zc}Hbt9+k>;z;=~hG6JWdC+XX z;qRC9Q7>V}Q~ceIgACh7t`rYseei~Z38nLqGP{QUeyE|Xe3 zk%wZ!7@;zCd9FpMIMv@c?bo|BJg=G>L8rjTjr}yx% z*n?55^U;VF|NRT0I#5SUWap;U++$Go%`F?jl3}l+#?Fr+f90g1mHmn3@5=oj&~g+j zWjf&Flsw4Ibyy@w6dp{btvKfHr|q;CMnp+^vcgTggt}(_#NiSTWirin78|8Ks9qmgH|Ebh4D8OM(bvWiMwxJ;ES$C3X2I$}Mc6 z(_l;}TX}O$T1dM}DqnP1H#k!K7xVPtr`FbF+&%D0`{g!4sUUNY5%^3~`@`F^udF|U zGa@-gL0i`fu%IRG&iCIO-Zp^GvfnN;%#8I!Lf8XNG#?A=dnteX5M!YVIG3Ke1>o#7-0yBk|9SpK8?%5RfR5Xes zZch6dP9A?ZXW0Is0R_s4jdWQ$#u<*zH9&_8yisL~bd!?a!+hB9Bb664cL-S59wZIv ztK6!(WEx{|RiUH%(s+l*sCLs(9B*7X_9u!df#&;*m zo4#|O#VvY;$CBBmrtF+o^l#G)#R`3ThRS{vBcIm}rme~t+4t;N^FQ+*kI|bP8Yy47 zl3IcD*8L*`g`{pQ&?G*`zLGjC6 zzx+VSw`@PUbqIruF>>CB3xc!4{bSBWwsFg@AJm59D<}+*@Gs%oOWS^Je?Re!XnZxw zz`JULF!9vE{yW?h$GF6F{Pf|Y{+`N_%aHN0P%QBw@go*&c6s#EHtChIaj$82aItI21dVGtkK(Zxz*|Z)~)&(vl-!)D)Ay&(VC7Bgvm7Fk~mxCC2w_ zxz*cK*~$n%fb+0v8H`x0Z%;x2d@4$&3~!ckloq~Gs8AMvP!&H5-(9N35#9z#j`FGh zezK=MB-OF;P0JYHl-qS}<*k0H76(@5C}BKhg#sI6uteo+j|*0QHm&EO>B#@Ly&TBg z(X`PjizgI{(Nf0so%M-$^84xMS@nciTBfm34B9HWUHq1Rd*B^J4#$mTa8%Po0-%1W#U;;KFr`T3va zAoxAnnu;ytHUCi)^75_Ai+?Yf3;I7PiURR}5e&yUN1W8ru5SNmMI#04c$6?W6m~q* z$a}5WzRe8yu-7?)U>~`OL1zB7thO#`w%;&{@-zw2pUnA!GUNI3Eqkb#d8Vx=dKbCZ z3%Tw*Wh`9`C*$Rg_DS|636h-;Lxb;K4$xw8e0Q1d_&L(wF_IX-kjpj|D!_xzeSS6f+&PXOQir3{{eI{2PIys0?FJy@Ifg^_1P zVe0uV8E;kn=-q=39FWOL*Ouy_%YH+*zCReO9lprKSj+OSpy<`ByE=B? zA8ND-J2o1`BbhB)d|TMeACu)eTJB`<8#pyU;)rWhfy!>$%&;+Cs+G@0S?|SB&I+Rj z`N;ygC8r*A3~ud=T3&;@HG06?bXW@k+#Q?JQAkLW8&&0gRWAoLWw$)7W^H=svh@B5@ES*h z6Oxc7++<@g`%~LW!CExmJW|iJMyeviWnoF*dt-y>3~@YAxmZ3^`8zVl)%g5U?+jsG zbh`GwEgudBrwgn4 z1>wx*6QAUxEA|k3;7&hx1hBinA+7uTdBGdbFxLd0+*hwg3?I?+IIx7!~dR4hRUU1c3wW?!_S>zV;}f8X)_ zMY5udPj|#QhWI8n38i}Z8Q zu(-&ez8?@h+w%g}DIP&p-Z1y;;8a6({p7ij^-sCdXFtRc_bz(#qM8n?YQE1^Y7|Aj zU8+lIx&+SUklvddc78fTdZs?Cd@`L-J8vW)WkH zzIgzpcG9b%$K5gumEW7ZFdy0Wm0(ysS5CWCf}Z_P)P;3HhlcmjHM-e8*H=u9G%l>w zY+C2DmYlBKtz$(>V_p{kP4YV&wkUQXrp67|4p@ACzHF&F-KeVSb<~=!YCeZhh1{%r zT(rA@p5ej-b;&w5KDz)^J6DoSS7NO)<)6OJ0>Sf|+HW>pmaNekyTpms4?GW@NzSMM zaW13{ZABc#-&RBeWAeK1L!YVL6pZ@hhVQvQO?$yozmn;G?(RAzw6(MHRaIkO*!kJ_ zvzp1ME%V0FOvNrY#C`P}1~M?a2~+ z;S@sUePcIWxZluT;@wX#@YjDYIyBw>+$kzzLxBiN4 zoX_m7N(ICTo6!&;=mM9kQ<80ZB+ub^DS89lF1ZyB^K>QTrhn0E_x-_-ri0B4XE!+v zxX6Bd9M`5hDW6n^@959pBnF?Jb{>RDfWMYd8D9cG>RF&#zi9oQ&lFxeDLBZ zcJ8PHinVWNd&7AS%ULlVD3Q9mSr22qPwb9v@z&*DLdhHHFZagBR67lHH6JW(M(omv zxxx(Y{u%>K?9K31I${Aw0V_yr`g^l_tDIXS8ba(|H~}wh z)TvSqFlE8#VY|y&NBH%cTKZk(t-pRH7b~n8+y2V(pfbq9Ld;)}haFBY`#7IW>$eSo zARs>dcTwY(n{m=v&=lJL+W*y64^en)686hr7|C^KOfM!Jh z2623$dVu(V$XW((9NIwzIHz$dB+_Uh2t;EmVux)vN*ta9y*U}SpW5=9nQo2IGmDWO z55oCecs-sx0Qnv8ETZWZLMH;_6Poc#GcA@mA>H0?rR5he4Di0?=&nrc`DowbamLM3 z6a9> zwjRnCaFk`OQFKJJ(cFKhQr3eP-na~ctkJDRAyiCV4383}-cIRt*zLY54lf52YBudq z`Rw`J9HBS<>M#9PkZ8aYT5J<={lQxiC8ZCVW%4tuQe2+hd!M+2*!1o9q!Z)83b#o! zux&TUO6mNf2)s?)p>gUhQ%yhE&)%cr67QaN_U4uJ?_!Y4pguKR( zWjzghIBEt>mZjI_6$icjlbk6eiFnID?FV)uy~;aO_wP`wb8pA2 zRQqoGf%CVShR?k+V8c%oykggehqVG{l6ikG(TM?RNXMK(&m;pyJuGqzfQhyMcbhb~ zzKrMcK8^m!z3|rz9M4B&O&0)>a6~BWGn~?0!Qz%dS1^qw_jpI?rkGZS+f9^auM=ov zUG=9%<#)XK8zpT6hgmo9zQe5JZjJtk_aWR1Kp@qV2E>`(i#~M%L>U4I@g}o&4AuXp z5ki!g!^WL#i7J_bjh;h70-({gSpGaHaUr>(g#4RUpw0A6yerwkZI;gp4LCTj?RuLM z+_lu4-o}2GvLa<9kR>t}Q!GG4iYtLiCF^-m?r&gPd`-Zk$@Yu{=U@eFXKFn?CC1^@ndCihP_0Q)Q>5w!UN zt>f*xw+H#tC;gSamg8xStTXipXB^8-@nj~ovC3rcnlSY7-rk- zeNC@9S;Jm|8S1vP=ln`&nyO-?a^Yj`^7C{{9pb1=!a*g=O1f|O)9Pu}3ZHY$b>0vW z9*xcJ7CZXD?PY!7+`6P;`Dmg4c0UsIg|^2qoVc5|#MeZJSQ}Ng+38&PbNU)iMeh+w zUO=^iP4?@=E=@^1&Wx5w)~!o_HpiPTD`WOpa^^&H2Tiq3pv1g>A^1ut1^B;BJfdjT z4v0PT#)14IsdSs8Pzm|ENnW(4W4VzptO!vBazJXGR=}5fWjS~PQ&y?B71~Ikk7$e6 z>wS<^n`bY`oEPAzzi1mJ>ldoX zOVkbxaIm=xY1`Y?xYXYJ*ZC|P?zDYKM&|-t8B6^Y-n`Mr=}sp87>rXzjs6pv*m*-+ zFd}XaINRLlZQ*9b>L8FqNMu0+q_1Z-Xe7~cVCQFz5ZhX3)_B=jU?~d3icSO}&2e=Edr)YY>$ zC-ZH{l;VYbyQ>se{H2$8P8!H2Av182I~lC=zI&XW^=VDO`N$GK2JYx_vlYLIR@xC? zNNCu*9I-lAm3uOEqMW)B$&(hMD!Hq)dR935`f+#gIEKTt=q&2VRR0$FcU%75iTL0NH{uhrVcPSJ)_)rHKd9DQqmMQ^E<=lOMC8b_9)RtX~u(NjtPuaAe_UC}| zBi5;WA9hy^fyzB-P0ky>G@dlJ`3pmio5f+kwe%6~pz;sKo72*>Juq*N-8FtxYE#S= zslV%)6XUKmvjt)c&Ut}oP=B>@1!G#2KLDRTrW@}`&74Mb^42UM#zYvA4#gy#Df#+p zf=bmfz_bPiYc@L)$oU{PFDely47U^AcPh3`{Z;i3g22H#lCH4`_|V}p{nKqC6gfC7 zrUwN7d4wZuR20wimu}-38g|&mDKCkt}WWL>@r^pgEz zB?24l@K?pJyBB7oz(&b+;pD>g0MM=&f9!~+H0{B@#$I`PkPq@#Tg&C;qYscc()+}XqgeSZ zG`PW->zDPnafY1^L!7}l!h0zx3nouu4V;N$?gzFP7Xc2e`NQXVS@#LH#mo;4Og2K< zXs`byXrDtaq$44uOnw-III`OeS`}YtbKjGOd!!!xMKmT^li~7R&3Vw$*-xY`Q}@VU zU3EO8f&#pRBLp`|f550FN|=-M`s?aHYw?GAC9}o^rMuvlM5wV;2$L`wpXtai=1-o~(-wFdKX+ z-vL}k`gXK9Q~Z&;$-RP4c-@xF!>Z1IWqk4|$jY8kE-J2H_cbo-OBo)Vs$O)JAU};( zpB)TbSUxp#Q5$KDXpV%^jybOvpCC!%*#xRuuOm|CYYm*`+r$Gpg zP9_cg)m1I8&8d1M`0%cCbSHN9X?Ul}S7y{?zXf=gSbM-XlGHD%FlJ0Nt^5FXC`dRM zM)v}f3snf-DYjaF19WxB4SZ`VTSXern*J{F)t{mcz(DF8(rK0n3AOs7*S%Gf5e~T% zcJop<`EKED4WrkhGH5cxaA<+xAs>YmOwhRyFe3dUjXgvnAKc@`j+0x5s5BxL4_UyrI&N?OF5<<7z9 zU^n;KnV1K7R_1>4I-N3%(F{Z;9lf`QV`cG?1dK`D|J+6m$fdK0zfJiwv_gj%5wN>a zBVUqtSZq#5_v#!GC?Kt8qg=NX)&<1WOk;B5%RC?~yv;ej5^HB*3^G;=;8on++Eo`% z?(B$IYatvSvC3{WQ4An>v}X4Uy!t6H70qOit4X2MwxG??DgbRmR__G^iQD9*Gl`3^ zl8o|CRmEWep1s*Q;&1KP*bYc z36?-W_jcPJJnlcQMSMU;@Ip3HE>ou`FcS|pO+hG*p@Il_@VGMK=OO65(bWYBxh@=* z0tRpXrA_|hPggjU4gpI*z@Hb!;|EiZ};PhooiZ^HWCqJ9ZiA|D- zQ|jl5myGb(SL;*C?qm47nE%{H^BW^0cRHG#4at{K0J_|>+rFSb>J$)Iqx3SN>U9Qi zK!FwDf%PcWE;n>kIXx8f*;X9#@Pzok4o|?Ve=KCJgFnta9{-*|591_4O(8PhCpaOF}2kUe62{3+ees5dR{R=oNZURy3n56>fUB<5X-$4 z*M}5`H^kxioFm!q^-$YWV{_>5JJ7CY^6Iki;j1hyt5-QwL%`Ql)BX09{tL zdR@z4tnuKEr$Gp3KCvc&YG=+0-^uhtB~_CS1`#Cic0CfRk#WQAe3`K8!@Z-04zz+9)^JIWgeIXBrF~9=B!_QGz zTAk_ibM6AVbsE$#B<~g*yn)xZl;ox(Zl##3@-=QemHBT=+Qts?2cDdZjr+nA4b7*JD< z$3t)6Xwa9~9H}!z$@?ArtzrFe&YQh~BNESd?HGbpRrzJNNUcMR;v#@o+?3`%gLpNHN1mfntMWF<0Y50zTIdxoEfEhFV~fb6Ez`@EI@WcC{$?POoci_L zT;o}d`}2}o@48w1p4VE)J+uY*x_s2lP0SN|sd zMR8|D@AH~$;S;g0<8oKZ80jDYCu4CN6XJ$+o0o=^M!WQb?&@IuoSzYdL%MUTISLHy z?)%Z(Lo6El{H#;CiYO)0TqxE%d#c>hN_t)gd*h0`eZoR4sEmp=-ph(1O5gqOR(b7y z2n%|}zzzjY)&5D{^g<&&0|=E4SwJYh<*J&=c|EuK6=94M|Aqbnvc%#s470m_UepGl z&$r#|H-2^YOb$>qjS2?aKQbJE_p{;!VGL+eA7Eef;>30A`dy_va5Xte3J>sD15ID&?OWMWp zE)~Giq0w$eT=5LR=}LOxXsL&}K!Dcvx!#i~=O9sp?uYpIP|`CsGUyF- z;Fx*78D2%dz6>_Ne|UV8wzVvZ*u0wd_->!5&OZ!Fy)P1>HNk7HRY7UAHt{|a%Y-n7qJ~3a3-dT-qdoP8!>xM zp&t(=mxJe6EnJi+wV@1ReZ>A+N(I$i*l6`U-xB7|%J*IeJie+^Wv?YaejO{8j#F*x^_WeMEbWLFp#y%s^A*1LE&&$QOlhBI?fuunU_sjC z_&|+nO&I(aiVI&GCRHNJ`UH9V9$Zm(Bns;m%@$wBsaoyD*q@roT$s5X(O_3NPwF=f z6Ces5n<}p>W!pN)temzxe4MyjIT@uXzZfXBvr%t!@X0%y%Yew+9L|B`rT7GYa)Fk3Frx~G zu-g*Op{D~bw<#0;B|!L`^E2uPrahE^qtDxHCwA_=XNF-pQwq%SiBIsbHebx3W3FkA zYENZt(Ck(cOP9x}F>{FhLr`gMWf^EdddiR^P?s)8P1i$)Jz2zb{F=-4ySN%@WoT;+oE=98Tu*8f@kz>h2e0~{6{T#u9?wc0A$el;&g=%B zw?bpHnAO@IRs6v6Krm34JGcH?LfS{#G!4#txiHSPO7-zl*fUFDO%?F_fs3KEs4c7; zbzM&%dC!$W${=tuno5q32Fz7XDQ8SfMnWh`kxz%OMbYlW~q!n8F1V&i)FI_}|MAy6|FWn`bK5#LM-CX{y`^r%I! z*Au`0HfQiVRmBjQ^pbQIT#I;4HrN=v2XTjw#`V5)UcYkX=3VVQsU(hUu^3>g1RY;X zW76IJ({I!&yN-O3Z5Fcz;fk?os-_>+b{3zrMv@m{D6a66%Jk2c%fvlDIvXMiTj}_R zM-@8;bFxN8z;U>(j?Z+tbEl2eG*PerlqZC?Zo$@_w-sc3Zcy-$bk3a+o% z0@kG8V-*#DJbbgH&5w^A?F9jovOS`(u>Ao>jnapL&%FO7Xr7@I`>Wpsj%lt$9U8v6?kx~oQ?67GVP4S9GpbrT=@ zLbQKV$vVRW+rO*xckBFb+;;@OD*1@$fm8ITthP_WF*rySXo6Y(j0E-?uoTJ*1=@%a z<^dVE8~OIe_fu+ok4T-WxFqpCKgsDZz7WeR*p0kH-IJaF*gWOgS$JZF$i0vGZghP8 zJPyCeIP_ib-w{G%SY#gPEU~O}TEx3U-}N|0JuyUM*lOn+-JM=;=AC~N!?N@sqDDF0 zLr!U$@~%Xrq@v)z#3&xgS;d>LPVnk}J9u!%@!|7t{}Q7RDkzo5PEeFNI_4~YC)!kP z?BB$^Y{n!1SKTQ5V{QK>CUzD1ZvUv;I%&MqzlkBV`}-CD_x*}z^6g<>yyHL0uQdp+ z$${vu_wQJvST@R~Fr6=t{LZ2NJfZE`?Z?R(q$he`ad+ydN76~)LTe@U+Z>ia!nLkg zYebaZpsmO%d5qD(Wn%mwxO|T2S5|00&1be<)t9s?!&8k#@^{{Sg|oALg*(FfbbH}z zN%t-r@wN#YUSvx;s_x9R5Pg}#m<7|5ly6OxnE{JB-7Y;;)sXlb{W?(-I-kN?xE@d< z`KXabN#z^xS9m_LBkbyB?+L^i%_+24w)EQ=B9%vSvPh5kzeAx>(&7g6? zv5M{{Ydk1#OuWuVy46W>?jb z3u+`AH*R=BiLKT9LpvVE1hvZq1J=egl{+k9I?ElVQ`z_{z}M+hGrWIySPRP?CIp6+ z?XRn$9@YWQ^{=v?m5x23|*|$|AA6%VwnKueWA6Eh&_{|fc$B5?nhJ1;Bf!h8E?|vg2 zHm$oH3V{Pn2BzO*+6T7U6f(!*XpE~;!bJB4WpEb&@#|!dlsf~QSRdF1Q-9HS!0iJ{ z3&z@cg}Z<&Y2UO;9c#(Qg-0@0Lj8rtZ^flcl786Ai1ul|hNQjp{r3G(e}&A^He?0- z{;t5^E%5(o3)mv4{TD8#NgfocG$4B-2AJ=o&e{OPL~YS<^M2Q0dtl2s-awlVg$!V> z)Elxj{uI!4kge&v92icLs^CTNqtGzvfM1FpPaN|=*gc|1k!(U zeXG@*wz?1Mmgg0-Ays_3O2{!>ehG2)qZJ+w;;*iTfiE9LJfWDjyFstcik}O?ns#}n z9sy?9j`H88!oE(>7_c)=D+`4^h72p8xU4;-&6Gx8dveXB&Pq2H_;uPDKgkW7(#)&x zj-{#L*)+jG-Z$sa;H?qKg4)EReY><&f)|7I)w{wWDnQr}9z^WjA97QMQ(5r$`fvTP z{I%lSoijQa0g(wky1;$lR{@zL_`g9$?I_AwSn zi}Og|Oe?+vQleqvd!))dv;f?9pAnt(VmNbRF9DrgzMeqRQhP#^s-Lm@g}u?znb3&VAmu*K z;WdRlFXBJtj-UXd$t6o0W!D?r+}%=sJ@}(GgnM&mteLKd$|@ZDi4~|=>R}MJa0_ki zd|YY^JV8V5J87>KB_lo&$V%EP2s_YN$)%tj-C8=Yd))j+a~b@@q^Fn9Y}1ezw|2BP z0f47Cr?cSMMCG_a*lz7*O{v$qZAx4%7F$|AGuHc{`U`%JqLd}VZM_@^?@r>Z2XLgaz5~VT!RW(9df>S`RfAJ`E}eU!Yq+ja7Tb*OyVCbR znm0VDr?b$e2>Rm5CoR~gM@4&wz4ok_lDld3S?6LN**C?dYuvj=DdqC}!Lvj_Wu6R; zs2ooPJ-9RQPRvGru;LlE!-Z9#ZET~s%$?U3yXqn)E?o}6P4c`>am{Bm_u6>$qUP{w z*&_e0+TX4Ae|BGU_0Fboy>YEu9=Q`i*Rkn;u5kmb%5FAPE*Z2hTt0d6<7pvB!~jgTdNG}(K43xxP<~(n-HmF7e?Ke8AUnPupOR_mV`G_3n_hM#D-ep&hQri( zfe3pWNK%dKdvte1PD8f~_7IfQ9l>x2S%;DApnOSfz+#$xo;7lAbl!|`8oB$m>*) zkL#YJ#{+NdaMucya9Zhr!d)#xQoDf;zVMHHjCN28(!)3CD{(ne^}s)3j))8(x^2qa`~z$6jftCqBB3^7GF`t!hFD0?LVwSrl((n-~FHA+>V zTF%b5$-jX4X$)L?o{0kYnZud8GiJpjPK&?TfDM7@v+3RY5Aex;jfw8L?%jFE^UCU* z?ODQ^rF-x7uJgV7ArGCcpPY-h+z}vS<^8XL__T~^JM8;)K3=4lg96OLQ{l3MPF57$Zj&a+wNq}c;A6gaS4#g zZc^q-M0NW2Nf=?T3op<&Y zT2a}oJANQw1mtyYP=nJaf)#)^YMC}Io@t`<{IsK|P`l!WS zr<`^r|98Itx8X=-d-KTe8R1{EaK^paIVQj&L76Q}7z%zAH?6P(8I&}u1aru*DZ zhVpck$THTi2Y?yF?u|fegH-{$qZ>nH{u{76e0Y~ihv+7HQ9Eho1`;^WLJe> zQJJ2Y-wc8Q0|8`<71`s%`zx$-4-{5%oQ{F}@_cy@g52nE)Uy{Ah*3ABw?ODCCu}K8 zoC7&u3>ZWlxP)oaxuk>7ZWB1^jZC?Bv?f={jmk(Wk6R4G#eGUuWflp0}iB7i(# z>jeEXBE2MQBpR`UPG(_v{JHRt@p{j4Mk_AL1N)Q&~b zG*8yWxnF7?d~}A>=rN>KV0$|o0gCGxYF*GAX_*ibW12?{Lj1NMqKFycTG92ZX!fHVQr z&fKq*_}5{A-x!h8oaLs5X?=_?@0m$;Jzp7fvF5MMraZ(oI@#~MmB(&3=MpF(l`M@a zd@*v-+qL!wc}%{+U#a`ZRPyoYuWfKYNRF|O%8*OuR-$o}&=2ANef#e=`O_iLiy=8V zmDlsL?Yzv%Sg{MYy+i~!o5KENu$WAvKwCtJ@_+-_aiuce@x1~OT5+dua+3|ZSt>ir z)W?nIpn&lgIe1lzgqowM>2Mfp)%$ive21qv$g)1P@9>GPWpHcSBJ=qVLg-ni4c~ld z5iXo0Ng0ChWzPXwC2w&7P>F9VEp29ngvI7{DOs|jVk1)WuxFzgT!=&mY>H-4!)w|P z?2Jw{t2t5#_nt9X190ce2T$klx2k7khv6lWWiF1wPAj#}1Mlw7;aLcrgtM$Eq1hNP z3jqiQoI&L)d@Xf%a&$@?mv@OwgYxD6y3;l_FwFx4ctXMu4=<=-nnaWD#OVAL@V>&o zzbqbSP#S`A+95f$vTxcJJ|{lCP0|4&!87Ghg8~2;|JdyHC7Lw@n^xgC2O_l{KZE zbP$P2Bh#vVxRz;-uPt|c*Wa{`=oFDuKteKmWl(}Vyc{kdy}krn3ebr)%q!WwJ}MSyLqT)x3;?R*>B+!&9UjUGzz1Y zjaYGA38cCG6<*~v*I)cyTd@L^ekjI(9sOm10Vw6q8yH>HC8!5f#@=G=Xl4m+iq9l| zzInO>$h^gcNCt|^!&$u&g5&o4&8fN#T!57IYZ0zpyJ_32{dewXI6S8pTM}DYPpnR} zLq)j;rSJYe+#pSosJ5y}0MKRd{X_OxvPe;HdU^N!+a_+beV zSKm_+woEP_;0x6RS4BF)6rbwyyel6Gy<5fuRYfi`*>*D_Xjo>Ba}FJ!XaYrn0L`+L z8-KV#8@A6W399;$`ZJ(_wz>Ojha0{dyu(i88bX7d=~0~H{}}XC3o0e1_q0-`sg~bQ zQ@!0vH|(b=*b}t~;|q!KM!DgW1fl6Jue!3=6mu~aBzsyT|3CD;~+ZMiqCfhOJ zO0{}&<9vaO&9kPYyGNLDHGGW)K3~7y)qYp+-Z^B}a$k`Aq1gwifI&E22!O9ma+ee# zTmCnR##<_O#GC0pt6tBJQjs)K@+2YQme)uedYhNEdcujqco&WgU z5HXt%j2Uich-jvXbE9D5e*YTa=^3b>B@T&PW&xN6m*)2ML(gWMWLHldj?!li!#Otu z;z$L|;o1N<22@rzqhU1k$2=)R6W-dL>xIv2#BODYBFa2qeY>I4uQI{xC`h~n*ak7@ zSid6SsD6Hs@Yju_s0zmN@6(SeQ~GG}J34XZ!~KDAj~s0SXGLNGP`_U{sh4OS*;6@_ z0&7O&tgs^ZMCX&M{*rw?FB10`q&PBOh);p2WF0j>zU+^MV_0iXr)*_vpZELjFGNzI z_B=cKAr2#FGRxrJ#1ncG?&t+8IQuO$DxjQMV|FtL`s};@+O&+7kVjU5&HgqUm6FcpnnQ+HOX9Ch%&CYzx_|VtrF$ zKaRes8A7IXd-DDDb`E0s_>+QyV;&oVMT5o-U*vJMZAf)$Iz+!Cl- z=}7@a4^T9chK;`ory8g_!j$DRJ#9DwY6I#4it0Eja`5#8cyX_37sZ;Ime1j2-K~-Qi~V=?8Wa`6ciGl*%1J zcL?5tK&hHe{U07vTW>XR0ClehIB+CGXV>bks6C|6n@nwXaoXpjZ4T zMEhp7Xn2%#4qBVn+qSaSAABqB!HyB$*U~<`R1iqKa%{Oro91= zZ&n*&h%qpa-z8{d5`+FX)7w6!V)i?=b?z$;U!T0Pn!_HuE(Kvebsb||9-Mgo^J6RG zmg+{~F&Y0tT9DT>!R)&EgG%PayVzORUM9Zt{zqx>ypCk^gCg0Ljy+a$oGt0H$A-R9C%DkXbLX-Ucg#i`_@XNBTec0EV?s;*Mqid;)D%+*Sz1hqKIExtIV z8|UwVn#ZDx_dw}HY-HR_I=hC?~2z#wEv*^c@ zgu86e;f)=@7#LEH4ESEv zy`mGCv8bF6kign>Hm&7F(#DK~um_LysQDHP&ApUlHnT8kcPlGKtJJDJ0?)>WlE?zA zKfrXB9AWj>)xV18)tFnF|01;kT(m*RhA)C1BgDq`AIvpgL}GavM2laG()lrF0m-D_ zSAuij?{1o>30IAx>(`ZCYH#TYpDRTL|BC{5Yc^~D_fp`njbJ;fD%)5%d;&Z^2=(8% z^#`iUEAr`|crPBaWsr{Q0{9Rlr&S_c2uNF$BW4HHDI=NtTKV^ zUW&g*YEg*r=xJgJPQusU2Cw4?s?vQKQAhEW@7j1CwIT_))qrh4ep) z#n4FKIWOK>;~>+!Wk1wOrhoO{5aj6hBx5E1f*$a#$kpy zQo4IH|G)`Tk71_7{*p5)LcU5lRPURIgI-A)R8&c`~ z*Cr2u`!vJLruELgO9)FDfH%%8O9PtW=@6f((-r>Vk3{(I;%>Li|NYY9Fue>QSe16J z6t(UhhmdK2d^d1co1(My6WOD|YmqTW>gcn!PmmA0i7ppT7FEeytseRgT%h2xTN0YY z-z2oZTi`#d1scK8k_XUTto!4P^8g>S{S%11t?X#Skh}PR^Mjwsrcs9hG}zn-giVXX z*D&j9J?U}F$2iDo(lk?I>AR|aBv;%?)fVwfma zpiK`L=3n87tjuNgTBhxZNLL(Sb8Nv|Z@T~=oYz_GI0q~#mT<$d7 z_=_LIy)0@`KBYd9@DH*KfG8lmEDgckS*bHKaL`Sl98Tn}Al!dO_4$5hz*~{@;%*53 zX^-S74mzyAWTUZ4MXL)Qv20oB-sFIWH=N_|fCGzTPQbJ7SODm3N=Q0etJ%le>dNcg zkPY=kVOb=vY)oh1^1M-H2!qKYcIGc?TM8H;$I&5CQA9%pe|vx=TmQ8xB*IpfM$u1vL?K)(I#q+PxWzXc&+pqloKSyQu}d!ir1Zk+$X4F{fj<99 zi6j4u5(kjw^fjTXFm?Oc`HcC7I@7h5!j23HB#myiY={!^Tf)?8hNo)`Vsoblyfhp57E`YtpWa*{Y#VAZU-8@7er4sJR=sVaXj=o@BKjFaZ zKim0b_`Vsyja#v};nvg4`gdMj3gSQI&f_!$;EGr3d)5jvSX#XIjJNIp5319za9o~PF3(os8+Bvdb81#zKVB2S2d8g29EqW!qkK8w?6_Q zT&NBvr7da@xfawMlIm;ue*w>ZCpgXzg0R0BKQO3adnB&#n4G`1Jr3E~DnPn4*p$Eh z@ct_u&fgj~iB5j37)+@LMTsyNEp}3Pbu|{m^mO^GQgmd7j(2>EOEl8Il@lfO;eA_r zhl&i(R%T$?6!#cwefEfoU`L}%$E(G4wQlp|G zA|NP5TBJ82(rXftCW3%~AT=TaB0}gLB7(F?5u}#@Ax3IwA*AkqxUT1Z%9-=xoSAdx zoSFaqh8dEby^~$mZAGg;oYX+=m%f$aj_WWN6N)xM( zU2PWs6leCvT4Y7z<6KwQ-kSeo*|3>q!)}=T10$@A#d8aOc>0S;VTTKPSReCGO=bAw zl&^6hZdDsmmp@?{*|l2j&1Ku4L|Tb_VN*|@C~6bC%E-At2lM=Y)gSx*Zz%2GDBr&+ z!~c)i%toz&M0J+>1kB}m#~a(N8+2&|vqxH^nzzy5grxe-mW-F5u@_>WbS4X`maSUS z5dH5tPT_X+cl1yNU$%O7chIMID0CDxjq_*D{nCf*vd4%5upNgAj=3?B)bDn`Vj0u- zJ^i%ZZwMW_gS0uxpGAaJC9FVLu((g1#>8qpjZH^j*ynFFLq;;aOunku&4WFDl}Z_1 zND(@^S8hQwsY!dj#ZQ)buFv1Q?YlB)ut{PkAEO!u9>$$vrx!`cr|V2!cBsdE^@Vob zK76?!seQr9wz~Q__*PJLl_mP=<{_HLc(qR-`g@hnq|=6XUXI8gg-4fj%jPP+laNma z#t!Qy7&R*AmWkm<^}q%(&ZQV29jSXyF67>$$d4g2T&1_2NyT?EWNFWDbaX z^+TF(|KvV4i1rVe!)E!mUhh> zm>3;XT4o&Ofd-W|>LB}DY8m$rkao-Y(L-|hFNc%$tT#ESHvxIYkNsN*|LX2G-*9Aw zyl_J#e!Q61wFjhC@2$V!e!x#@cktQs|K!|Wtw8Sb8fUUGb;CVSDrrCL7|(!shVW{o zTAco!zX7}omfO|Dde$8WmNu8hjZY$P*lI|IM!mdAe;+nc)Iko-E_s$dWBtVSjSP-= zLzIl%k8qASoTNK4$%ZZuHa_H-@HBpv@0|6msbAq2^nNlK|BAxzd}p&)A>hc@sl*kI zwU+qV@V|jI?%CZFmW~~1GuIburV_=rNWDJBDxX09$JZXOyqr2^+TX4p^#l1EligJ3 z|3K`2d~}ZhWD7&c%d>g5=^O9qYUcwYhZVe%#r`2J@D<${i1>wIXq?)2yZ8}%HlnX# zkaRcdpW3(l&S?wj*sK)@_VMREaPA-0;_-@HmGNoSaipvsQ$;a;)5@fuP0o!OG7BLC z>jQsD87L(*_!RQg{E<}jm1jp9>wJ?o^$qSg-_uqmbGpASFKO8=y|c)g3QPQ(9!mfY z=|Dx3$u)JK3gU|*e{=pIr?JmGG6(nu5!3cLuFB@!0+xPVslHavAx5A=`T;g}w}pfq zj_9~}b;%%Gt>Cm|z&UoA?w@bBs2?^kcI(b`(ZkMP^9wu?d+maMU&UtWvFOUgj z5|7BDF%G%x9L-)0>3{qo?%7*5nR`l9TKC2R6Z$zOe47LY&T$}4hH?O`N^ZgAzN^ZX z=a2t_JQxY-g>Q?mv%xjhycoq7x1h)D52tN$PudiEs1q^lcRhGCR0j07!+5A}R_XB?uZT^1~ZF}+}>=Y^o z{PwLllTitUOuvptn!^SL(L5TSwGN?uxBJxx;sQESsA>P=)@aF!Y%P%$)n>J_-{yV) z$|xk>A$Ry8SsDD({JRDulN1;z>=h}41s&`+T8Ulas43XsSrPeNv*zS3H$zwX&d7GlCUIPE%IsibR;G5%8nS`nZ)Ds^(>?jbcYz>R?iBSmsQ_O)Ud5mB|FEFog)_*^Edk-6SUD?7HlqqYqw&Nn9)L^hpki<^^+Z?|jV@>!EV~FDzkNQL9J%a7+m;tSnHmgK6dIsMN zXkxdXfvsL^Pn{X5KBRrr>Uo+(OXM5Lbv{jeh})k2kuitY?Pq>cePk5}DYnsvKE7(M z6vTRCRpnrgejmTz+>z}C?lp)GsH|wja$e2xYt*uRDTZcWp%3wUxi&Up<*kw*f5_Z% zPw9rO5;NP>DpLUUxPKxwF{C|l&lwI=>)C_c%o|wd>O_VykF+E4ilw-&PzZ~S3M7|V zmCp>Ty<2b8ORR3&!`BM=fC#Pzaq(&8>>stDd3#9c=y3ryz2^4iwj(PV+wui7Qx4zn zceyBSjW2?eYdq_LSa#ustH4}^Iy-B|Yj)JuBmL@Qa9B7eSNbyAY2V^=HrnRey@eU+ zaM1jxWwf@Yw|)1grapC^$R zatZ7$5*R_=_4yTYA>WFwHo6l)RbOQSqetWu?Njnn0FYPv9HC4bjTj(fV8{@|py6WR zW7Fy?3>?tBm5t>W1;)Immu*II3Q$kn+%g(R!O3=dE*D?i-+642tvWyi^lAKp!Vft@ zG`=r+N}jG675UivKS8(?&K<1l70_s_2&8)rW zk@xIu4&PG+9_2kbqhw}hsc?|>lVdjwLc?tzESI@udX-84;|0~Ts%)P@uj9h9cDXoy z#e!Ls3g`Y>tb})^xrdG@;B7)D;q%;|QSsESqQVrR=|3UQ zB5rJIQNou~VxU%k!+3Xu0oBHUGa4*m@`35pdQ}uFjV#?+Kmi6L*0a_Y5(sugrpgkTtgX86%IBLo{#n`Y zCqsnSB-B7zec+|)vcABJ-U_yH75y5NrV2Bjr^KDSDa$bb-0?z^{ZTeux9D_V7@7$} z8mzT*YkXX>u#^dDZ_?G`+iIa?J&La%{#gaXM|@GRk!#^@NQ#Hx@$jL)28QN$1#$N5 zPkSj8keB-N2<-5b&3_RFTI=4MJ7=+P-zOI(*j}S_3!%R|Z{VNQZ|v}O@267#0E2(O z*UP%l9Ch!$?LQq4(YK8RqMinpKMQx9it2k;0R$7@-alNxYSi&$tkm^-U?T-=9+7}g zB-&`BC$+s3(vwSP9$-%c}rN27p@O=8^(loZWlWgEETgmK^wm3cX)N21kL{ z%GWlodSJsr+t0mwFQ8A%ATL}p>*BrvQ0t?aH&s`w63q1y;jDF6$uuF{pF4;%!9Q}X zA0?cH>yb$uXuD3Nf5>}V!$Re^{3Il1a~=}dvLX*UhxZp(xENP|H6Az%kkbkMtbR*^ z+|RzsTH!_y%b@ph6k$lr7NyycBb{aXoW2EJWZ z0Wu!(&wdPfn@cCp1YjzkP6q#o`i`kcfZ+2Cny+3O`$S_aYq0DI>8a$}D@@2g_y5q* zJ-Rv^$q7G)#{9ip`J-Ob>3=8gmth%Uq|_~-2t<2ErA7lEa6pmD$O5RQh0qI=t;I}x zSlVs(CALgh7*)excg_~ozFpGhf0migL(~_M%9LTpX05_V?9a}7{>zzS(PGA)DND_R z+6yzb`sgNZf1$^5^B97hr_l^+1h6h;k6NqM%LoSp5K5U&3U4-Tu7Yx0eTFxCrV%3S)C=w5dikb7y*#)m_}f3k>ky)88`sX(W296UN<8v@*zh zwQGK=-a}8*!1BHKIYgXOhd(k0$qv%A2i<^ztn=%^#)SiBaLfOJX7U(oADc)eM!f$> zhT7hJK&wLqehtT-b$7NvIMQ1JfZOAj*nrz5tsRGo5Vx`C`2OA0FgBvMUruqEeHC_4 z6A^Ud0g3q|?IYOW$$^J#Aweat(E-2Y4W-rO1NuJKEWRbakNe>dFY=oGT!ha2f%)wS zqH0f=M~U6AO`VIeJQl>v(`5&>(k?~2f0;Nk&Guvq*>Z@F*%c;s3i@U@3tw`5^3D#* zb<3(OB1bS~@p;T-GUCZHDF#DxCwvS595p+aOwO^YfpF2?=bH>7(*WKEH}kFCVxn4t zj-;;VaQ&lW2*v<9BF)w_SA>dSdd<`lO-s+L&n<>-K8+b(LQ6>%v#O!0otC zGzfjgrw4Ax=%(2$m1YHggJbnr*F{}~BbG^7K7G<81clxsLJFjN6V;i|?l-w$s9$jM zu+SmYp$gX4k{PpqGcTYSyFy1^7R9tUvUPX}yL;qmh1d0ELv{-m$ak>Vl%nXXP-&)H z(62tapxb*f9UdKe(;ofhuDd2YCElr+lW_1ASt8^b$ZmR9*|g@WDIQqhK-^<@JzNb} zjKOFuiV)tFSVlLfKHEUAurKB(-=wulwG_lf-R3#8Gan_T;bi228rbK%-EcEdL8 zl#~XrU1_)S`Var5d{YbTb>e0DA4d$%Tc2XFR&`#nlM?+jl8G(h)x-lfjLO5JVHO7U zdb~PuHKFuLTq^zz{uZ;65&7pomY}4zQtgq$@={+7YM(c#(;%RXr>b0`L;#U_tKGW!}*1Km4Sx_$y#QQt=sMMG{Y_f`D{8qs}-u$)kL!ti?F&n6_2-=dvdUbk&Cu?CcqnI`FQ(1|H z53%y{AnI7>MxyC%Cib`G%s2Zd00fBaPuuFFXHAmMfs!>gGe&*0TWc3|(5xji0HywL z?vsJi3c+uM5dFs-XDm}frkSFIiP3uH=6<$-<@v<>+r2Owsm^Eq<9;LKd|M3f6wx-X zNvtx}rfwOE7UAHw;vT9pTcSe)i~{aJQ-FF3?rzO7dVf6jW!r8X>@k*6yYwHJZ{7dE zd|UfMxfd9te^nhkX<+*s#dlQ`PvaZ2W`C0AK5Rd1RGa%C*h}s|H7V1P zSnVC${~b-rfBIhCuKW@_6gfC}!LD`c5dFFutC_^aZbnG5ESft%(7ZZ5lIcQ?oJFQR z#WvJe-U*GPy?;h8}6eMFlZK1OpEUg|O4E3L(jS&9Gd81a2L(gbwp8=1c;j8WhrZ7!= z(E<$1`k2taY#SMEQ;pNB@&q@t#*74xgZSIjO*7W*c;=4^y){F4^~|JNfpEx5xnuFn zq#)v)HF0*Mt~TGk9|ABc9I?N>S9Vr6aW&q}k@TAyE%}+7PiGpA-Fp2LtON)!j~&x} z{ShOK*gfG$d5n6Y-i3p&ZS{aKG{Z~}^a6fhGl1AL`Xf9)d9nDc*7lo(6otNPm7yE4 zz=QZ}E9>4{mZ7kEto51|rlRNN#;)zddg5eAk253yF%IvmzYXhw%2GDsab8(d%R}@C z9eT(K9`~0(dOxBj^wHAd7IZh-J5OllfoOw>+1fMufDIC0Cfi z2>5!T5}E>m1t({w#>zK*8UdsWb1w4!#S5NXfRCc@H-sUoN5AP6Hg7{%d7-l~19=p+ zu|MUAgrTKl3#bk+varAR78b=jvZGtu9jZ*JkC!CT7Q zBzd)IryBjR1)#(DuhB%|>nRV{{nIjM{&YAl*OahW%Zy1JdKfQ9ib5L)1b{hEk8Khq z6UPX_T9dpb$NMd#@YxS};CynNFLIkz*c>adfClT7(8EKE%NtuPPCJe{7C4@3W2mmH4=SuB|DOosH_GTd(sf`5+HakWE zU1~0f5!UDaM-IuV*^~|93+$Fit7==?sCLz0c_m02hV-Dnd#&zP2Q~kZU>`Vy3Nir# z8MKe9R}yHqRig^KudFokO;lYSWl!KR1eAF4-;<=y3R#u2{CrW$36L#xvFqIM5yyL7 zw5^%Ipgu@OSI)>D-r~*HeMzqwbz6LGcW+O}C?FDptV#@i{GT=a{_SmJxn`sLhk{u3 z--xJaEyf!H%uv00Msc{55r$!52%Z5zd4_vQH;DPO@ht?AKfU#?X}=s$h+=hbe(KaJ z4b}EMj^#P~dZspWX5}K=FAXfg9W}WbK$3$pX`|RSQPwB#8iuw}$hdIBFkL(9gLhs%}Hg8^OGN0QcZ+#&sA0@k5ks{TYuG#%!g#VX&6s`cV? zDL4fJXi01HC+5*MNFKlI1?U4EOjOjt+gV= z&Q#?R%if1333)8KJ&Pjaak9MoSijLY?tr(X;L%1bT4PaK6t8O-Y)2iI)M}x526Td? zq0BU7QHwTDy@e_@9BHyfwWk#EqA%U>Umfpf^==;7v^a>FP=4oY<%=Zo||8`=Qy(MTQ9Dpl^7DYZAb%wOfdlgambHB_QeLlRdhm6#D_l zc86IAP#n|&cWegWDwbr=XH3UXhjUxdQRfldN8tU<74gp#PdV!E6H#iTE9>l}FGMYkn?y zIbnm9pg+x3P4z8gt-MB~+JVh9jMW+(+FYB@Yd_&G#=?uz|7>m-YN@s(XTy;Np*KBw zij6MFivZ=`ux0V)TDE6#vt{-LER}>|@^+2Ftt~h}K0kgE;3UZ|6JRVl1rD7%Ldc=CKC7&M{KGdZ)<_kDM? zVWhf;f*>K~iCvO1+xeC7KUFLt!Gk8*_&Zs_3`*T-LRvqZMOt>5EU7`w#(wU^=xd!_ zuK~7xdoR4v`Sx&z6(5i)31Q2tm@Bc?d700dIngUIeM%G-hVn6>N2RW-kgbA_cty;C zAZ{{Ga*m+-%%E~?x6!YEQ!D7q1Ig2qG3>mC0A`({kG^yCkFoY2gvR`v1Zm_DYooq{ zxlF;-3RgSE@T>H*J%Mg0N<7KYAHnka|JpaS<$EKU&!sB2rb%bu{c zI3sc`Ncx7bDDviU)V1ZY@k73!>Ybz3)QC+>CG2ir5yb2~o!xB3%oxYIEU6nOTvS^e z_*+waI~tv3Yvz@z(y?Md`-Bg0BqxJL6pOQ^VU?f$h=ZFm>si9wO zm`sRS$P=X=45Im&t5RWx$q8q&t>849BT~+YB|ITxv;rNfhL5Y>J|^(0Co%)jzUJ!%8*m^W11w0Ylcq1Ehj)+9W5)inWLW zTL@A>kG7~R&bpBM0$M?<+SDMF?b%%UjHuQ|n~H9%N2gl$j6&g7EWdA!2EhU2GM&$N zX$NQqo8lp~isp_MZ8b1k0{Y*w=KmIb|9?Ode@&%@+TWvqTvnYQrVEE)VG#Obf-Nue zG1ct@L>fbfCKy8xqC1t3)A{GIH_vq;Afs~+!h!Kxljk>LMz2V8B&b_ zs0*@<(I2$YKH2VX4YOHBSH^og^%j;fp!N5tBtxevblqU4hBrWPQfV%ls%j~kvZSU= z3nj&Pg+GMcsGz2*q%~KkL#dr;>3${%1Danpdk;%PAEW)zfn4If*YZAhdD(4K?mX?m z4U9!+d|gT!wl<2<8f$Y2k#6+Dio`XV3_J2B#8OAtR4Z_^h`pSgET`-`=XeFz|5i%) zvN5_aGZNzs(<4bOo>;^@LbhKJy@pev(t^#*hU%%Ytfpg6V%k zoi7$(Q80zV@L#7VLFtt(&&moohn(0Iw|2<=7C|@4_$r8}HuubC0z0{}c_E;sSoqa6 zpmysH+=4aC%3T#Q+J1PILM!L*8Es(=XB?(VZn2Xd4gU4mY|cWo%L2%BVLWr~0;i4$vH>P>|53o`@9X*H9icdYejNPZ@)UZR&lyzc?b z2QstJ`sh~YOZBkw@dDR+Lh8seO{T{w@)RV6^`ch$%dd<1X?;6M4-C=w6XuQyrvlNY zv~yZ*ZOoj7zZ$W={U$e4N1py!vj)zG26QZvqKm4J|!MIoBP$}!_gH%K}W@M(iQCIKQsvk*fXXAC? zp+8wU$p|I9K!bFuLqq?5?vJog5z4?cW~%L~9tKBEv-WbNomp$WryvoeWTf_u_8v0n zt~Vlb;=%8BO^1}9?Jb2h4$~+0JA&Pm&+Pr|BDu!_x2~tRkrR#X@Y8c9lKgZIq%?mT zfAZh9TJfI!uN{rYW*qx(+x~v`?}Proe|je>H$S^S z!5n=2TUSGx$ymY;%9Is;T9IqmP0|ane_`)>;%HY6tt1(ndue^uY&Ol!qFa0CRo!e; zWqH~kVYlQP-jB2KYmKBRPdw!6C&2UQ64pzj2KlE8t{pLGZzdU zorWa$?TXD+})RqmlCn8`Qwk?rT0e0pBOcMt^`WmUr)t{azke7bCPKH9fz zp9+*^{dMF=THm$RN4oL$vT~J-=rVyzTpo>h0SHEra;5Qi+DZ5~4?ZK+%oxXu{! zTTS?qy8_>7t4oach*5K*zm{ccJ<&}s1HFtp(p{JImT~XQB<-7#u$BH|5>{RhgnKsB z2bNx!3A(@gLyNAb*}{SSc6UyLlV8yP$-r5d%hZPu7xU0T(cnO*iFJ(fFz6umeT8tc zq@k{W-DbpSgUHO6M3BIid0=kjP(X{{2akgZD{J+{nW}AXnS$st^os?t%nl@JQZoN` z8MH*$%oY>tH$s0mt-2fAvSq!Pk{sVD-Y>h9CV@U}<*>0$LPEYY+!tl8eAXM1VH^A* zuN-C4U$o+oD_vhnCs#b^ukA5O1y72KbU;Ch*?xWXu5=Oqo!z9$sou9{R&j@3n+4of z`tV+Dt*5voH)MC|=vm`XVoGunBMBFO<^D7HS*(#r(T3v+f;?=h8!h5}4)V=cEj5dF zAT=wA?#$q|ExH`!V|RMI&~c^Q_v?-5k7$t)jhkcDU6uy5_M0!wcF6byL;70mA?@0@ zd`$>_v8qqaeNJZ{{B<7y8Z@0;8Cz8kdo;aEyj0v(FdOYVIw6pX$p&_#Lk9UsLEyV} zhuR;*t4)S->v(^Peiypoqn{03-PYE1M_1obTYt_xP@p5qG|UK@2)*mJfvf#xyjTYd zHGz9uoY6CwPJla!XNcI-E(B0>YgcZc=W%^=b^pAcL70@EPHNV~3H!2pgEIFP6+%|h z4MrsJvbE?rA1GG{&ShUCXY((Q@&h9YjvvZofXFMhJF5>L7#ekW%Ter<#EJ?PfGa~- zpz%{7>6YdxjKkZ6e=M4+*PfL!QszvH`MmfLH<({izi0RUF;^FVYbs_Lez>dJV0@?T zf`jWDR}Ht6>7<9xynT+()tiO6r$*+u@=JHN<1J~Ssrs$R7!^gQ8-!%?!G5hH=(}@% zGNMBQp=LC0ns z_9eS4INI~Wf{^E;k&t^K(LXj#c!MiqYEpbU(a9ryU|(wI&jwmlhp6>LC=jw*2~%Tb z2F|)MbQjzC6ZG`_LtK8;%|%u9xPfj6%G5@lwmQz+3-b$dD2F&v32BGCfrF_nf!oCL zsA=w$GOFoh0cw62JcIFlHh80*j@*6&yq6mIA%4_pNp;J^tI_>!oQ`nP{pQ0~N1jgH z>iJ1f4Pz^#VHJEv?FKVHq2I=x#@#D@i~ItZ!oE0|KfG5`m0At1O)>=@TrFYhiaj!k zAQzG$rk6_qS0?Yo%@7vdtmMq`g@0)Qi20vgk^YkXAn!}VTLVAzU!#AeE5Grs+8Lby zE!}iS&YZNMSLTFi-Y$A;x<#lAIaQZ>h{b6c>RrWR@AcCW{uSg}E4od};rlO>e zf@z_PlBoUVhdV9Yk-vr(D^#c7uiTSC$JZ(>$nkXh$-;vv)`JB?9uW-Lf-y&u>0>m2 z1A@=Q>ArgwRBzC9cfh`dLGbMoLs53wYrV&WXJ*N(-K4EoAdBV@%Uj-ADW%OcZ+OUc z#j}&a>#f|afEnif);YywLgxgl{n`^(HSjkXIdyBi* zQ)=yQYKs}10VWWcB}y%49Ph6NV3-~av)}ZdC0LEeHxUVT3Z6w~3eH*)4yVnK2ecZQ z2Sd4=#LmNBt(zm8{RXvmb8Bo`20P0ROyGt>Qf+u(on1sHJgP?eT58r{+kC<(OTd~B z_T$OKQeX8#CwW^pD{00^msG99@*c0aR4vgxqpg)u2XK+cLM)C0zx=tKA>6%qSt)t5K4CB(C(4(|N}s;m3G=Cl@FiiFmtzWnKw@*?q9>hwo^g#OgW8 z351M(Xh6)^ku0w1Be0g+WN`1klt2K|Xv(&%QQX`&(Y2m7-mmscj5ho79t+CX;~786 z5E|3A_nIx=Cc{D%RvUpEqCj@6{EJ$JnxFJE_u!+{o~Y{;H~P&Im{H%OJ@mee*I?zx zj&ne&tPsnetKn!Lzx~VFcJ~EoFZ)<^h$@Paa6Xqr&6QKj%rzCQ4t8pA`66) z;vUgl^1n36A!L97mL+p}f;&Uc9XT=VZ$0`9I1!S(cb2YjR(LWEmys4g_#Imu#sZk6 zLFM-Qrma$kav&3+KY2d8)U&99wxbr(_OEsr9yrJZ4h0|qIvopDRTg;>W-A2Tb*;7b zZ|!IlqHYmC<;ClwAT+5^v$Po(S@@1ZqixapvE~a@vc8JMc$s-ef`c%@4-J>&@&_+5 zRs!z#@Ts3EN_jf?r9VWTD+yJIL*m#^=Jp?Zpxl;cVROs9^y|lN;p^8Fi}F#bTXWkW zSu=3~l_LmpkLEGuv1j&8glCZ*Y2v7#;wYx*hp{?F7TWcnBa%K8yib~bGmI( z?5ezYNMw^^kHb{q(WNw7|=V2RJ)QQ!qWz zkT2{;h*MTtkjMV;+p;1TPg3g~b;-#I09R^sC*|Sz6-(hVNSv;0kW6%E(-?Rs+Bs+D z_Is0$-;kn3*fJ|hy+Y%i3BYOJcXSSr&Ie&@1m~@X`Hst z$75P*OW4fImhh|5P<_BzJH8ezs;JYYY-)g`6ZXBk}6_kSYt`~ z!Y`gl>Ha~ikYGrDvLUNx8nQ-ShEk0!f)^=nf?3;j)YQobhFb}9j+I-<2Gxualje|&cN5< zTQYuUZ5>m#*$-p~%)C{ewv!o-1k*XPLi%{aWJiyH8xC*`WZq~y$jy?gUPxMuz+)~x zf^@_Juocu5j~q^omeQZdyrcVw;furbuQ)`K>rF;>M{k@i7?K%WPHKHfE&n_fAPj8O z@;||BE)`!X-QJklO<1^Suj%vTY{~GIn(7^$k$V-cDkLc5YK?@DILTqh=l?y-+poJwG7#u*?GfvILU?nkq4xZC z#+#j_Sg<~*Ga)tqoFk)u?duv2EMV)nA{&n!pS+qTFd9lQ8U09tlS0frmp}XVqsn#K zuTvFTjiN!RT1}hWCYnos><3Tih^}q~Oga*)#+`(gb&3yQR?DjvLQ+TI0)ZuF)-i`( zhs8)A+^36 zOQs4p<(412sQ4sN?PKN(7)%ZJogIPmJSs*)Av=1DOcD|_ow1XoXJn|76nshNQ?a)- z-+kWVW^X5YnhJK|m;!?3u&LnJ{8tl8esZ2Av-G}aJ1!II@XjujkLzK`+v2)}WT}PQ z1s$ET@qZBSl20lKDBDyQo;mi^=lFe>`ysJOilD5IMy}as?^?7kF(OxW+iMq6Ey_F( zBQynTH1@qm4Xx(dYN$iK#|dNUEdK8{C$pM$R9^SIU_5vX*@#&kQnu__G1p?fRGL$s z^2PcJIlYj$1d{i!H4V%6lB2GDAM}FK-Gb$9IFs>$_g%g;%g+pay{)?gvW9uwcUdXY zQq{E?+~*+DfyV@$KPi3v$5+%l%D@)m$PD9K74Z{K zLGId5xD54{zZvv6E#MWk23?yAoND`0Il*o#gH8;`TAwfg9-@%3=;4C57)2D~wn^-; zsd}>USk6sgXbD=390Y1v=xWReP!=HP_;b|1^xFsxs+eO`T_~$J^kw^i%(o&kqy#u? z68@@Y#H8@s$OP0KSpqCtbnu@T363Z_SU3V`sWVBd0aI^MEp51x@@uhpuopwSfjyh- zxZ+Q6^Sb1;Fi5)UNxxht(&c$%-RYjl&;0T+fq{J(C5C zhb4uPmLAo-lh$Gw==AQg@A4{UgO23nDj;}-drN;x>1&@kI|&00wbyQ7j3{7x4`a1p zE=nXg)Qd)rLlv(=-kltyJP$9==sx5CH=0Yd!lr49k&i*frCfC zU@wko+;otQtddW?MT<n~gK%W)Z=#?Fg9f-|57f1j7~IY* zsnxO}`Gb+ZyI=j83kI&(-YZ@5r!H;-nNMqOs{t=!e_bS#Zpxy_PEENRUpbJ5B=ZGp zYwG=bXarfNyoj1_Dqa^795gQ_Zs@M+OSvDIQx1d5>VZe`)YmTNwz4ODlIf%dMRCIldD= zM+Dd0K5fY-eu4pK<#E5k&>PDM3$mQxsoy`cWS>^<0?Cz^M5z+XU+5} zin(I5_z?!zlQRb5zejXjeK#;GmIbmU#jTb_zj~62S=bF+1#Sn*5IW9|UMV(klYez; zPVvnS(a{*rGP!Kx(Jk$%w6W5G-Wlj>Em0)UUX%<5!g{1!gY7F+UxwCIES!Wq@{7}m zyf3Ua@W?2nX;(Ea-@@;8^N4w}1h!BvjHd6n|$4!)hJj#h3^ zMoXwHLiJqrsc6{~66ngu_+*V|z8j=A8E2m#8^%id+3st0mG9+U8n$?*+FT3svE>Gn zuT`eAM2D2bv2>`P!ggDyl`3|qTA0> z$Izfrvf%OQ-RNzhtE{}}!_+&jc(o6nu}o?I34}TU8Z>NTUTxo2nkbpidHNlMIa@`t zFir%aS(;H2@EJ9g9b{r&ERtS=8Ij2Uai*Wox|B1zt^8xiv#FPw*N)%sK>4?#2~b+n zxI^{1ch??hrizZd{v??%@MND^i!g?$Niu*TDrEtDy6cD;l)1IdR4_0!V@qK)lD>_l zcKo1#X#(*Y=Sw2WOVn0H0;b;@d>fVjqtn|VZ?#2DYXV$bmV?zPRv44qVx(=u`k( z-pZgGji6Cm%KK8YEY9i~bbC#0NY3hqaWt_!D%rW|os;El zFbi-{Yk+*b=Ebu4Sm9^gx5kRgr31~h87w7}yO*{(1s)%D-MFJ40JF1ncoR9OUI2dn z*6H`xsP)RlO&trx*{+CiIaSAcV3ymtKqMelQ&Airap-lnU(&g#H=8)$ExExU0jm`h z5J?2Y_199fDth~Y)u6l0#GJMa*8rM4;-wt+&UoQ-i9&~<;weNs4C zX5(}H!bv))zEmUE_6EA?uncDj;ANF+oi;jD%8WI+sQr^o) zp<}<@7T-~Rq$>0R+C6q8}Gk{i}1u)p(xtD}B3?EMD?Egvg3J7{QT6ZE<>O-0e6 zTe^FzJ=xFz#hlVovwgwu^iV~&@jd^%Z4g2Dl;hi~^B1SD${<>A3l!!hu%w!wci~3wzR!iP3SMT}0WKB(*Imz^V=FgM1+mmS96_%{s zm3jp%?%?K$6Q8AuZH)fgJG6ukE@bfN>D!OVulV#&sJDg%brP@D4?|AgE=JbZNcDU+ zOL2KMc8KSPx>jd*2`g91f{CrZZDiW~;nu_Uy}_p&ss^59-rGNyprvxJDwa-3WSsYZ z!Lb$J@8w;LlzL?fczYP7n4qP8o-F4Veixw8cQaNt{;l$Y$AP0PKLR-O^5lS~7O%*O zwmbb}xSKLkSCco=Mw_^>Br8vhDdq^o;O*-+^4Gea*mZZNkh9g1Y7jJ)Ck=$?8GFgN z2RAtS410yN9htm>7DHj;hOM68fTp`7-guyN@K9&3`8d9X?zk^Rw)rRre(Q%qLW9a1 zNBFkcdT`j{NfAmb8mH8G{z$je`X{uhUzX^%sJ=pcbfeA_WEf_Cl;I8RrfD?|zB)6h zreS0A7QA!&>&vA`_J4x*mZP}KZCqnl-fM7knWE`b6HeqKhT8KDS=aWOg_E*f(2I(m z4I2XI2&bz%b3zvHOl^kSN}G=(7l>xiuv(eR_2Jr^4M#X8u(Op5ySUJ;`+5-C+~N{Z zx+Cr#V%!pMCu=Q%DsP7{%EAZTioe{i?cw0jxCSS?;~rpcX)V2MW3NTrWH)3K2#h>X zTz=Or{b2~jSntW9N_0qY2Sa_Q;a$t|RMOJ?!MV>e^P++s;y8tUb;n@EvcUecW2qBS z`ekh1-?uf0_=LpwSpW9Z&3Z`I?@ZW@lak)gb!Qlf5{2(@yk*fHJY(A78;-JG*j|;9 zD*vm$J2E}PddI+bM5Ru=lV4k^d1h+Oyl@7ba>dXcNqjP1==!kG&0Bw(lm1H-rH4}^ zsMExBnU;QUdGq`2Z|3<}*3FDJEeQL!zghePMjT2D)2}K&Fu?_~=1orTyfAD&fy6Zr zsV#@zB027VYR95*1Gz!SwTF!b%@j!D_Y{O5vwAF${(W{_EC?IX2?c^tf;kGyvVq$8 zj#Rv_@d*Z?$Kv-zi!N(i84# zzCFn9MB1@~9lfBSgZPm1{oJSV&za@3IuF}9bx&>aczM=Qc^tdyAPE^IwCnROuijA| zTxT-y{DRdNE;_UZ|5P2nQ6O`*vG-RTHR<6UJHeho3&#T{4LtNGsHY4yFzkto;?=vz zodo1dF6FdAR$Lz=Nl$(_&^Q;TJZj}iV{8@m?V4GWE34!$o?2Lx%4S*Jm8lFJEJtm$ zfeJdy-XvJzg~#0Urs}ow)5ly~SOKzMVD5he;V+SNIhDEUI^BsUr|-0tM>%9~kVmb< z30Y3$UCPu}Vbv}lNn2)LaV&B$X6mFyK90GA*-QSL;`P#-cl^-$L{x~f+K#}t)C34) zF=4S2q9v4aMWf4O$Gfz)`P6Q??{8jYTu9&}G~UstNtm*3BmRQ`rd-Coi2c|p+R9~C zcXWes2kCL{;ns!}Wb)6OM?0#<8MVLcUI_z52$ti=t9C`zyY&YwsFloGnzLq#%G^&fjMv6W1 z1~e%-*P`^-Ii`RG)13^iVo&z93*Rs5C?E(=Nv-Nmj{m2m&fOXGU^n z$QefBNRlw5$=?Q_bDnd*s<-YRx9Yq1+^4!=j3U{+H0>nU)0mJPv0p5J-&g#JtC(hatmXaT}Lq70Xo+`|w zQKq87>{HmX%=ZUq!v+&5UPB#GvlJ#`i$iWw|NUd>@4-2Od=r>QWE|+ zHGb)FKhK<{ml4oeNk4j7hc~lDHJY;9rbNB{&gl0$>Vy+gl1j@1)-NuDGP-@-h@g?S zy9;}K8EFMST;d21x2l{$qC+@-{0IEMP?lPT9udws5Mdhm|*u} zI3A&**JCnJeW*}2v~`MOfU;ck4LLk>*T$>_YP7UTK=`AoP?Q;t@GQx~XTYx1tHGp@ zsHZcAR!c^DyKGW{4ICRKsSd%9Ii$l!(%g=wZ8zUo3fz%34hCcuRY5i{-M4~Z6X(a5 z*xZHQluPr@4nk|i^IV57f;ub~m@~CnsSA%a`O+AxtQW z$LFPI!o70h=f=*xOCVzcc-~FFdV_n@hNZ`+I&m<84T}Lu46Y^`2SqiTkf)XU&PA^a zZB27R2=*0Cbg8wVuSa!diREL*=#Ne>l7~K?RG2y@z~{orD53hKDe8O@r7Lk)cV9V# z;w0STI*JE=6Xq&*mwk$P$AaVI!J0p; zalg1@IGd_AkDILpR-PC?zr^m#lMk>IpC0~pFtCW>fmCdK66KIj`~$kLlW!gGTV#Ne zhCVVpzmgt`*m{?dA;d&6H~cfrsW1JBg`)XoVzZx+1MU%~m7IPaFnzo{-`l5R=so0{ zfUuK-V$`RDK9hx^j;DCmErio4UWD<>DFDRK=jfu+Ly*XB2Zd-rj0Xnf?(y;#i&V7DVuf+NC z=hx$b&P8-s50_*PEEKm z&VJ7Rv9|-3Posa~`t9H+==P^~Cu&VTPC|)zN*DKUGRhZR*IB-*0p}NgJ}Li_uod=1 ztaIc%DQilzci{>-HGbedJ27DkfO7SjNXohzQQ%qMa@;k+)H`LuLUJ3L{d&pPw>_C3 zQYAA^ug5l+UAPp8`ApKamg*4aK6@A&{=DU;hukJy-e%q(&Se^32ul{ zo%)4YT{jpz?~l*-BlK4yh39n)KI@CMl<`Q)CFag~5{SzMP5}9jL6mnrL#PJcDkaf9 zv~u^A9O~4==Gr4*5e}YxmE8*9R9RbgcXqj>J5z6T@te4MiLYI$%=Zv37hTBoVhgvS zUuAu}%eh`)GVtaBuLHegN(5OQc}9~Z_u5Op ze)y@VR(+sz|Mh)1~F~jH-Z3{u+*xCk3 zT`4A52Jt(giq)@7%GFC^VgFS7|HOc>cg&tcE|O*wT8RT$6lFL2ck;b<$(@*{8PS-{ znayG~JAdLne-Au^nPmiX36#pb)m-LD(@H~P=Z{Tz#2z(MWh{@g=hRR?W2bN4t8>ZA zHxri8jJwbapi5E9B8~KFu+$cjmNL{XpcVx8geU$w>^4yZ%noh_CVHf094QZ$pnw`M zYWaP|n90O>#<@acw79`n(JQ+oP~M=V(^=&kxulr{@}~PI3I@*j4dyhrab}GaIqDOx<7m3d9M#9!cbzqQHEQK2 zLd1uq@hTAl+pms&bXQcRGaXjJ#WhHcHIpSqktJBTIwAPDp z%6XGF`05C@jwbi`emr295xNTt@bNrn{!a2XFHf9!sl0?})-Y>6B!DbRt2-#91MY^< z(o@s?Cio^&N@7dnD&|1A@u$(4fKdL#DtBLQI-puy2l?ZVCjFuzj#lc&Lnm^)5*b@? zD6@TSm?rOwV)u)7MRndXzkc8jyxaXjynOVXH@Ya^e;RYe}6wLzSF#wwU>y& ze_t*s@9|9=y3~=sZm+xhMi%*{5?5`Q%UZfZx1+N%jkfBKZaTTTH`=fh9yUoBX=Lk| zW!Us{Z95Q;R6!yc29YMaSP6`pNy=~Km*%)wVle^t4jzR01;jNrE%8=?PK324vvjg$ zLN?wF@?g#VDEkKjh)j+Xof}b|AMc7^gBMdy27{fu*{+w95{o>w`evyZxaZh}J31(%lza?mDNXaK zbQ5K&tBF+iZ|s0en#$IP(DOuB9=_mqiXEudeE#xQ>{aJWy2S4{b-#>$>PoRIPB@zN z(Q5pDB$xBUjap`8we5^nIKf+t<$dBz`;{~)%ZlB+ehim^58GTt+A7DeefaH-+jC8 zaaQfH7xGWo90*yC;_*Vz*pQ|5pM)wzOyN3oFE4d=eh~>~N{}AGJ;u}&)7OEe*IwS! z>q!dB3xWoT;+=a{t5v?$I@aR7g`}E4Z3lCb3{pH=rhVDG%$cy&b8}g&Jb z-0wKoZ4%Bg?>+0-|C{}?S%CR~hfvdrvWO;JX8o>^hr;}9t!0eKJ4oOi^d9e}F0h2d zHIwp}{wT{>`?o?~<@mnl%lkRgK0EOysmS-|1I&HB@LNp?>ya)Cd$p0}lP(Z@Ywb{i ze%A7JHGv+LIf8**QO41D*{w+O^(u|WAV6iTq%5ALYT}#nc)NwdDp41$S?6h$Zg6XNMxntxgQtyC= z4u1R29G5+q7KXf^5CMmQ+mI<8jl?vP~)?D5RVHXD6ZF%%u?bDv( zTUkzc<(Jj5BgzaJ1(+@y{!(j&gObYraCUVt7RTN{)=@)jcD*g{muy~J^oiU@KZ2oU zeEbN4T7FD`UN}w3x5;*#FBfnc>&)0eaP@c1)Yp@8V$=nTYZa}<%i4W*L;BhAW78G_ z-(HLsNzK0tdq5_z8kiFSSi1l{zY}bky;p5m8oK-81Yv`TDqp;LCrdlzot{ypXHHgu_wWi+ zsezf|a-M9JXueh|g<~OqAelVrMft}Pa%Cr|&$qU}+ZCo46L=)Q-H*D`r?qGBbGCl+ z0+W$d{qZ~@)3uWcq)u(t`TX~6O7gQ`>&Sr!CaB-2(Uf^k;Z#CfP4nTlE3u?1I--AK z|8s+uy5##A%G6EYpG1A{=SnPVma{6hsUSa6uheh|U7e*>HD`5e=UjhUIC>JbthsB4 z{@ufu=W(n4!^I<{em!bpb~J#LEjyLLmT@ikqlkA)gs5HZvzgsx<}V0^=WH^#WxB#W z_Z4lEN5}YSHvdNOC*8NyBfEO~uTU+(p`^jSUIZprNsoiT(UF`7ZS4x+0fUM#uiK_P zK5;fSdsUk4TzgCAJ^?K_su@IyGEHw=U(p3%98R5g?9JXCHy6kAt3W=+RREY9`jrTM zM^J(;`2MlGZU7t4^-~BYe1cGopvELlc~l}CeemvWX87*6LwNjf_N7&tRLypPRwMyC zZ;O~8p%&%n+e?fohHB1`f||#afPSoIHf$YzbNw!?8!STkNQjw?y_B6KxFP7+RP3i{ zp{di%I_Sr}UGw^HJ4qDu%bpkgnQ$%F655)XAgwwou%c#neL2+lArMJ^P3Vmqm)`bC zD$mxSNUJdexk#<43|$}W*FEsg)q&knr0}Cq7WZ1s$nLz>NRjDAr$MPN@(LA(23FIS zB+Gp7JEH8?*73~(&-P_$eKA|Sm!-WOLE_lRadX4gA~HAjwy-N*XZ6Z065Hk5 zcnc&e-=Ic9CCW}7;sWjm&h$0_2mwAuYoY>nY z$r0ZrT3L5m-OmyxAGZR_h!%`%=~4qh*bhw?Z$t{j^5qj9&kEwMtA%bi9s9Ep$W>S~ z^w2-U71ztl8k+-ibE)J`L}wd#+6gBl>}m~MM^;lYi(*11mbi8O`nB(UqXotSj^UBO zDb@u13LhdLfTO~AX)T0k2w$*L3pPYTd{s&YHlI4MxAG=m#e@k8H(er@_4izh8FiQ4 zrsyyOfcIK?8d3{ik!vTZjumgvWd0UKqz;?T>TFF8gVGUbKDE`IDj0s94-t?L8cR6% zTH@##7@Z5i@k<`D>#w&N;|ofvzYE)0CA)Io37&h$BJIC|{p~@B${kNozLb3K0{Q)7 zLdTu;ToFIAO5t1fkXbv&EqSMKi!WVQ^;g#{3f*;CoC6+}|GKKS*tG^eU%3Z|n<|<= z^|eh+?b9)SiDj*ZQ^j64yb0o(*P&?S^DUBexT1B=vm ze_auRc%&RjyEC{GD$KadZ(&P)5$V-hCHI(ShT}E5+r(WA6TK46o*eKGiyGk*V2s8V zwQ6cU_;0%PvsAX%Nc=?aMxM_2Xh0_vx}RJKmT&xZa=y&^Q>C+hmbo6Yqs^n`&+-yU zBDuGhr{#usrp}{UGKXBH`&v%Qo+iB?N!m+8nxetkF4%!0s4De+%?vT=rlUJ0>sNz} z=+-I~KOXGw)+3{3MJ453&y?1awEX^cBPXA4(=8GYK?vZ7)6M z(t*gSj05x}l-^SGqFrOyaac!;TwbP-dBjA_juEN)HHym`i4`o3{%Zn~d6{&EUMq4* z3w2aUT#R%n!q(DB3MvEqUjXZ$3!6Gn{RU~E;^?Xn=_ukWQ*hkFBbULz_4LhmE2d9u z>eE(D(JXgzK8|$z4|<6rUf&ClQRa4 z+9UH=%w?_L^>`jS&Qr2*5+b!k88V5FzL+Cijo$8}OkN#+Hh>9J6 zT2$#2Q|gfm#@F<#?OUnV>`%TIj%Z;g$CFj!OU9uS_)6(g#IM6)dm+tV6oE2P=|akO zU?DaUUB**SAT`g=XKm*NRr%~NnVRN&YBcXfwXPW8Mq5pLR;jb&0c*VRy+YZK9Ud=+ zRW~dI3~=UqrKYpTuu~=NxnZCbC8_<5^up~wbT`5JazZm_`r8Fu%vSoXXV%_xuN61x z1@-yV_9`o(z&U_l8w+7v1!^CJyH+fK(?%#M=cX!a^c9k)aw$WsIhsv4-aWj$*v~+5 zt66HnxULMF&Hd9ToathX;^Dzu%TO;g9z5yQS>JYDk;$)pI+4aNZezVJFl!uo>ew`Q zaq6L0T#r6iE|T+8?`uYeETaL&ZX3XK)=$gj?!a$XOyGwa6+O%?X(>(v3W0zfv&5{V zTS4V2?>I4H-@VRg0SHjM0j3}|s-|d2=b^KiTA?c7QAL0;_&_}xzUd~nmW2$E)+~~5 z2f)JYgk%)q`Lt|2ZBTFbz}TO5^L2hImEFwOKPL)FKVvD4%5rlP)SwrBX2xsw)lF;I zhCbv*rmr7PZZE4x|rzZjvl6WV`vDW0S7Btp`^s}iHK3K!G0o4G;M4$MH6qEP4tS0 zjTr~FoExE(n$N0GsFwb4^5l~xV}4G&y<2uR$ZyZj^Z`-TNfFi%2aN71CRSPN147*g zA7ou5&oYCo@gsDPs%!0GAX24AIC9D&KY~3R1k9QvT*cpC8*spJPWabg@HO4XU$4Bu zN{xjPa=~C!1jQU3_5~IL^Cf=}j}WD8xj1KdSw6!#|_+zfTQ@Cr3jc zm5v96<>Ff#`2!myF5dca&qKdCYjG{$DG_gOf&5+8Xdb{jjpD7logC)!JopY|i7q+a z{KprzD$>(qNu&&W?F1AN>S`|PEb_0Zfm22deB+*DuzfO#b}EJH?L-UbW6Q_c(*6T& zTBjVBR3zNjy;VrWd-xS-L1wphdSt1qyn9ts;wP(U)xHXuOA=`bzE$Z7P*!hP+$ZbZ!0A!oAS z<)IeBPA}ltP6}$sfEqf7^V}CW9GAFYdUh{HB3|8Mov;Ps%_FCx6bITCC?`E(Bx=_qN@cZ9#V0m(|B#p9;$E`OBTzcpxVAiP|1m7g zK;zf=_0>1=JDFY2wdC&HD>J^1eD=P=Sx!otkqUiRPm6MBscSL4*y5?DK-Ip;M()#M zeaRTzX_C2&>zSu}%*y>&D$m8Adfo~UoC#*~OW5y8lfQGX0DSsVx+Z96lWRWDEzGUF zBZI^pjGg-f#9>d>niPBLDQLSL1M?BNN-9*##{=B-XVqqxgcMtT-PId8wR>h#WyX8P zzx@%8{PHEAZ-DW!nt@YFneW)M_$qPx%fMVw zp=42v?wK=BuW|f-ZpN^lxDjS;s{1w>l}cTbu@WNabfJb~(;()&QsFzT8_mHj6mr=$ zC&rbhYq%0Czu|*I*7t^(g2!LaR`b|b1%Nv~PWd_G#PcAwz$cbI`05?@Z43j3(r2(d zU`%Vi@R(7watC-@mh!J*kW=qHd@41BE%u2e20wh}y!Ulzr;mlcIiN}X=woUF1iT(o zPvjioa{LI4hdA?24Uaqtwa24~jQ5J(?hvR#)-XA0f-z=ExZ%^HJ-S2!Hg(p zEA6R3I-h_6iov7-*rpC+;EdtbmXAxC=vX90djYA4Sf3>hfO3~rBA{bY#y+qA;JFLt z*M`1L8ehIDtKU1Q8ee`09yvA=S%xv9jd7yi0E;qm|C$jnDUIE9k+l#+0qKHos zAd0qmeJawN3MsKv+(+ay0YSR3=S(-B>7Eh#ORzB@aI-$#Vo;on#eB9Y?2botkrwK|@A~Q|YZ~sG zc%*l`mQeFnrEw!)SHX`Psu7OqbP-=LrX1Pw3100lzn|B|VhvF_@0NU0gtktf*bc{T zsPxe-^y=XULqZOZ=#v{oget{7mrZb=O8wKc)42vrxOFxz?J?HZW8A+-D3S~acEL-C z(-$O#R~696mj}-vfsds?>vkd@1ye4z`_C(m8yS1fJN$XehCs9%*6SezB<|3x)(7C8 zdtly#9NOzn^xe%L`wm@;?qRy-R7td?%pDZU3}@!N9cqD0FF$1bHt3L)3hf^+UyH2B z)Ux)iMGMWXXezT-xh=qUygh#bAyT)sC3Gk)?LG-$7}1TNLAv3>_%BCDMRL+k|L#F?aD)VQA#C3RMv_c=e# zRlbJw%{DwjF}x@qIE5s#l+Nw@6EvB(gUEp%p^^W~lmTw@c?L~Fw&u0Rp!=}x;Drqc zLol6T0T|aS-l{Y9O>v#?S6$PPAr6`S(ai3!#Kh~Nez?ptejKrU4TE<9aCWE;;ITgx zgk4h8&cB=s$wV9}Iv&DK8ytuFuQI&~b9*dxu`AQx(K1i?&C2&4a-8i~@RXvG@niDP zwS{#~SLp^sxqN11JXzl@?bR26OhV^-pi!Y~1!6+X!^C~VrwmFre$OsAt+3kFjaQG=nh{{= zvfQ#vfTmiRzL5uPF+e0qe+Rlg9UkwIz-B!@cm{tSWF3g@Hu4khuXzNa1txri6PV&V*& zu0Fv{*XrSoFVtn%_OuXhLcajlPQ!})Rk}Cn?-%n|T1;=Sv;FYAkQ15F5Ad%jgB=hq z2w-y&aC4U(Gk&SKnZSp{)~6wawm85&kx9ff9eUsseS}p`*7pJ&oZA=`4E}cc4zPJn zX&?9uAK?m4wI}H8@eY9p4z-?h&c_e%FXQVB!S2lj^$ii}@x%O?u*+=z#H-}n$53wu z(M@&Agp}{cLqjP7sOaPKz$SXwOCkboK+}T{*lmii4c|ff0g6hjFA0DcKt@3i#6%hV zm20Q#E$#i)CtaB}hoGE#`gPY_pT*nyzGr!OZazE>eTsN3I;VWLysdDG>C4U_JuG^D z3}--foVFMX70x;z5dKFN_)60D^1+#4(9La8>W&5BaLXa7_LjVUO6I%!kU9iJL^@Xs z4g~UqZ5yTR2ir&|4u0%s*$)Z9@@4^^Ieq2&OychT$GZ8$k5tRmT!u7W)XCoQB)U-} z;dVVL?nZ+I>3m##gKnVIJ!iFlD*ZDA|IC8_r;OmSPXZY5WL^4#Li()_Y=SxY&x`eq zjM+-)e5Oc-4`s%ReSB>bH~hfcS9jMomgi}ANaWiJ32hR0$|$jvspGMPLRqfN!a$OF zAT_3+)|;Ms?hCzFN<#i4iQ~lmK!^Xx2KnK+QcfiAk$e@;X7nZg&CL5!y*6fWUBmL< zAKrDn@W3#_ zF?gic#BQ5-1N`+V)r$rLoYJSv(Tbz(4x)R8c3{1mr~7_r^$?n!aPtTJVQGG;yJD2s zkpNQzkOnXrxE!ZEiLm*0X34POD1NNtRzdAxp zGb_L>e&#@O`=q%P`@BGoTmDlY3r}?h8~PD31B??MtVjXIJS3WBA*Q`PYJcn204X2A zZRFkvmmWgIUW==lr)KQ^wZ*Zem<*Gfz4h_XgnQb&fLVFpbYh>3UC&$bd64d@QWN$4 zzOv!whW@KFZ`%YxZgHVz(=8qj z;|iN(_sIF3Sfj(;wB$SQo@fL^t5 zxq@oDpOAJPN8_IS&C`1sk*3rQ` zln{U+@sCec>jSIOFKxic#v|&m7&LNOE|e;cq3SOaArR-J!0AqrrE>f3UvvT6F0q*{ zpe+3{aF-mBm6>0X|K9RfItqS~*Mt(l!UjMh-GLzd`KFEns+!rr({7gMNV*cngC35* z;*QXUT5ySzd@X_f3B*tMegES$5G=0xACc%ljJoQgQ{k%Q6VG8fCt+1CAcUN=#>7x! z{xtITF5-a&5Nf_sed1>OP2vAiB_90J;5#*)v4nD(+UIT{0>1mrs!3wP22n7B1`Xo# z4KW}D-q{c}nVXBgx2UY!UUwr52xbqR)5HJQlJax!BLIewp&w$uVL8nPU6+C?kU+d<_tY3$eGkX7E9Yw5%m^HpN*@a5TZ7zxa>C z+HPCq;0hIMI~A}mmz5Mh&O3w_ipS~Q%cUnT`pbqngXH^Dg~&7RrOko1!HAAHv-}^= zf{6_$a5D*!T(7XizXE(u&B7S?7#@J2J1X{r?r7PpTpvi$>@iT-SPkPl#xc+WwjjhV zTS%AF$C6w{p1=Uvt7+m6b+qB?Hb2K>9Tp{;c|TX&blE$~xSyx@Red@J;z-_4Zvt8a zcq8P=Jd!A{z{vO;%hM|10-l_4kk9VKDnDQ#18ki+ZO}g!WGIShBm=anD*@gv*edIm zF%koO!t&r%YIs)fAA`W(Qo*0?en5nbtIzS%i=wUDs-bERG5F~-iD4h-L$WaRvB`N2 z5=wjhNk-A$aihS=*R>aS#->X9Zv4(lP7Ul2C8Mmg4Q~kE8_Ma?VgF8}iQNN`R9SQG!GLi9McY7hHT{CYlxq%eehZ za|RB0V+_a0z1n{a0fNh3jI|e539uORl)EY}zbFPbhd$h+EU+VAWf-0^sLz_T*{9eq z-HJ^8J=QDXH)G*xt|Ff_(^<61gl^7HFTg`E(Y3?RKO6iX|c@oWjz|;hy zKSR7b=nt|pQOzJ#BDmsI4yW9zRKh}le8VvKzdqm~Y}jzXnJM`-9NPP;Yjf4+wtU+W}U$7G>fI|*iRxOW9x_(QQ0vO*V1l$wIFD4;8trRH0|H9$L z+8M01`(Lou9lZAwX5A;>%kHlJ!QFEF1z~OOfUQ1wV9Rq2wif2!Mb%Ax2G5Ju!=D=X zSG^S<^jz&7Il~-J|G~ln{)SUCeqF{D?ed^<39SQJ_j~StFnN_|>(wD3PY&OMIH4?| z0a{!%>qpi?ZM zZ$U^vw;vn7N`b6oTYGcD2kgtjo7NYZzHeCZ?bVHW9Z+j+<<0|N!2FPaJ2RUmq5H2?u-i`ya20F`@G zKTThEDj+K|EHq6Q>KGlt1KG{9_RAF_3WYiASz=?S*UF_N-kOgt=tT2TeTfXT{!L=K z5I1~GC_7f}bDn?rIh(x`!}OW`p>z8a0)chxfqn+5oq{4Pg|9?*oiDt+WvC;~9`K-h$-+v;)HJ^V#kw(!$ z7Ses#byoNy-e(#=sMlI&y2}(!OYvzF26e!pU?{SvJvf%5?QriRm~a@$b+^K5YQ9;&nZdiSy{Ap>j-E(R4t zbFN1Fbz)++s>-B235O_dM{!&%0wgR7fp#h)QKJYg2*?kA@UJgNo77PJ{$`1@nyvaJ zC_&I=$pej!V7K^@_#O-#r0b-#{8gxFD*WD0-+=vz<)h))Y!#EztA%l%7nJeWADEPm zsO7fP^6yV_px?(E-{i@-_X$ce%uslsBd|vtj=l4t*)%utaTwo|m6H1h7X_Q1K9&pM z0#jy-=&$GMERoTn?5_B=JQj(+s+HMo68MW;&->dyr2o4IgggzNb(?*&p+fD8H1I-O z&)zNBCZEJ36N8suc}yCK$w2<%jyC-m4J2u*#}eaf&qH0|?{fjQMXm@yBwEFY4F?VKhjUuKpwOSFpjx*<~aQ3EOn+4=|#+W$S3U7j5-6;;o#r4_p>)+LnOpQC_Z2U| zKrm1V^fsxp^3y^=ko1PS`p4DIYTo=uu^&mdA`3W1?!gN*nv(lqo!b?1YPhueog2v%v zb-RhT(xk#CZfj6DLc_$X5 zv)sjxrnt5&?dgjk^!0;b(B$(kUBa92qM$~6BfhyEAA!0i!k33QOsxB`b%I?)#%z`V zWv9;2BG}hoX`?zPbAEbRWBaeA$wiNRjOHojR1Z;`qL0Bden9N|YjN6WX;M7FB3+gC z6G~1vh?F#V zR*v^z)lW3@Z0Iqhs;1bYKgtc%NEpOj;EQ_Yhu=l@Az;r~OK(0AoCpzPg+NtqV$p3S z(9X**s#;6HI5d0*bbHSOx0WEr_L!<}(}EmMw(?BDU&8cukNwa0VGU^o{Zj*hYD3XT#R;X1IwA7m^G-xlnuPer` zAd*j_5{{L*PFd0XVQ_h8Ma3)~d^*cs#2SIiMS-Ac!XADT845E|0B;Q5)f`d)V-7=2 zz#X>3B_JGn_Vkew4@aDu!;dgp{)B-Y5E}O!N|1xUAwUQyD7;_m7WQNZ9>qYT4RD%0 z0^@*Y8*2~cT1fcW;HGuV4y2)D)H6I7o_Ob!`t$12C~6m3n{^w%oEZ4?MQiUU{^~Nj zZA)z_8yH(`_FbCrMgbgx+Cg;%(_3B;E}Vo+LN;Lr%*D`RC|V?7I?A_^=Be{=Ef&X(6DPTc#!emnT5(U3;B-*49MB_}meP<;RRiOtuADg9er8dqc3mA~W6LJAt!jLMMg$gjC--Q5$l-uQ8W zJ1#4S2!NZR-<6vVt`{^f&2K2K<2P}RH@Xie51+?KxU72u6Kolm?;zi|$sCRj_ZTH# z#qoV^EjVW10geoLT?9-&+$6^FCG7%Og#;a-=+`0Z#&Fs1fsIiU!T%6<+y)~w`QHcO zfm7*Vg!-&3j{q~penf@G;vMn3@)NWj_%wUV1REoNw3n}<`4l^p;9x{rPhUpE#LV*h zz5n3ep4>$2?#Un&!JZg&p#(I^K4~)Fwze^apILFvkL{k(o6sP#k;<{NTb!Q5#GLl3 zYeZkL4FQ6H>m>EcSVmh9J#NwOfXr`t64E!biYOo;z4#AxWfS2rlNVCloXPa3V$2F# zL2TO&6osRP5*Cj^3UCZNXn%zmGjrg_+cLnU^ z2~|`8rY4_PsBlYW*~(L!T2B2P#PPnLv1UH0Wf zEj6zp?B50@yTU+uW_bh1oisUW^<>=+X=avJyz|JIZ%MXDtSldlNO$e&ACkw||A}NZ zd>xC~O*H9@WjDDqOb{E*xNLH83~E+1_vcq(6U;>nrB3{!3kFmBGkUyUh+2ThXxaF( zI8Lo38fPai7wAu!%LRN(joG8vQEHU-uVkGZo;Z^p_1BHTWrnqQn`a-q!|HA~g(2Dw zCox*dBzAiJYW)fF)~*{*Xt;Ku^&=noC)o!ct23=wdDFr|0Y3TPD^0S$w0#7ykQGlJ zg|qk>rLMz#^}suVYdltc8R9Z-UoU;yj4775(R-*;aaEV3E_tCHxd_Z?-Mp5RYsjk= zmN2GtnWsVBhbqsnUtLA#ya*EroKtsPLY;JNz(V&DlOIOx-4EH(+ngSlOaTLVFrm?l zD}z(MyxUnIGxDZ&`~edF5IZkLxa}|ME+`$|IgF`Spg6b(m98dH!>sqKcqy8!Az}ia zxK<EV>X%^9s)v1w9UHcreCzPY$2G>_Pf{gNd9ay#pRiwg!txm zzBs$dTl_#tN)q+l&`HWNBJq8q_9U{0yt&=h#sOaTxiws&koo$utb~7($z}frW?r<2 zD1J-6;qU}8e-{B^>JC#3|Ji{8&05!FfHS}-CeFcI@6z~9N4)V-l%88ZxK#+UFkzmLqNWG&q7uOaORV= zXJZJFQ#L+AVLY7i_}xj93A;{IGdSU}#0Br=f$#bDQtLTQ`bqP}Ra*JY9kc*R)94I(U zH<#F*#3J}Msva*FpYX!f+N)(bMFCisAh&NDfnS2VBx(}@MRNz_LR&XTwF8YwW;(wE zby;d(mhtliq!4p;U1Nw zuCVmG#qqs-<@-i~BSIIDwAYdF8*w1%JI`{{?_L;wky}lAmELUT5(mX>>umhjdp3eq z@*hjDj6OW~YKnfL_`yX*!*AOGLBUCq7cR9`@4EBcyfX9n4fPG7_DY(2jMc$4g4zK? zdar#rUUB9{oog+<)%Y^(a!|F-ED;&`?Ki|%Lf$NHKYq$l89&4JNdJQ^_d8L0a>wV{ z7qW`Rj_$Q8sxzMtdS&R@aP``yH~)0ypHcZQnJbOkTFVU;2q_mB^L3kQw*Df%PJ8~x(ftnUo{HT_S6)A^bNWmrr?g;?tVj4RyxR^8Xa8)y z$h5AGesHc-%s7|8MfWo~$AN zZrPswDfVyj@q029|899o;p@rYGi=JnvnganxPNEJRQFPTdW>JpMQ|g_A`K0{aXGHBvM~=pu>jEIL2n-TZszmz1$xnllUS@!~d2)Vrpsl<~&LIvNUhDyTF|%FE zVW`S^?Chnd;re{Lrd4@2tX$7~3%tcK)lJ>8w(J0Oe(OToNr(}>i)y4w5!Ee^K7z#%obWctKG#kTHk0O${itIsbDvo;MG5p% z;AT{Oa+>d)AdCLgnAWMebraWxDS@#ofKk|WBtpiqD6r-0rPE(^i1#qaF%qdx&E|1Y zU;k?x8oQ0Gfx!V~`_C7X9jrWHh(c~-z=Wd$;Dil@EbV9_*Gn4$i%a+GnpM299HpD2 z%;;0~2I}K&E5~1HqAf#w{IFFq%;}Xtz`F+*dDKHQ!$sKQ7#R|DEg#O~G4buqh?{YZ*%wrvp!$(dH7asNs3*g^8U$&|iz!eTl z&+1P3`vmJG!uDM9W-kQ_FmeLMGk-$c4gqTi0c}3l@SR7)o0YgpyHFY?S6p;wm>CA$ zr@o>Kf>5g*$lx|?tS$`NIzKH2@xX4qKx^#3f1vVc2*L>pE2n!lf%X^YHyEb5>WTey zexNgd&4gFakjIA$xFS^N%?2`_Eljg9i*9dbqO1CKi7br()CxgB5OCi&O>04#6fd;T z!zscIT!V2Gdt)<-R!u(V$1U~Wc=7-~ac>iQ zY=4XJSuU5(nm2$8T}@&D*u(8m|4BoJAaB?Qy`d%0k*u2ep}8nv0<|-3famdgEHJ2k zK^bVfau5ug*ca*1ee7g)l|S3jF4GO~Q=I@-&Cm%KkG)6ZXGm0pgjZBy)%N3b(vpe8 zf6ZRENhkcD=?bnMMOa5bivkcByyt;+1GX>r`QzJYRp#O1Man3)p^&}co7o&U9-$Ol zy3$i(fSJUp$UN0s9UT%OQb{AvdEf4+U5m-Abhy%cCcO)McwF*AJyN|*h9FLKhdKEc z41BtoqJs6x6)%ywwlvnIIOmR6kB|PABb=5-{1?S5S8ZC};)V_8#g@?#(nQQ;-!pgz z{#eBpz<>T`JPCt{wVUSH9==y<2iOO;sik*`Ge9^g0CFOrL?M}?Cvx|}DJ%JFZ92{m zF+zeo34RMh-Aqx*R1q)m2a93gEv&4A4OYfG0ru+c|6=bgqoRubhhG&H5di_EBt^QE z?vaoVX~|J(MG&NGRFv+N24O%Nq;u#-hHgf>W2hk}o`d>-*8jQduDkAw=fz$3`MsSv zd!K#w`JTP^w?1Fm&)&R5dN*#)ebab`Y>wr<5FHy?i-NM-J==^(bB6wcfJv7VCzD0>^)RBC`^^R`zeSLZq)Nr~>6b zYP3y6wOEeyF8>J9uGf0k`aX9dV2msI&K14)Vs9Sm@tGt)p0z!Fb==E}_w>F=c#_f> z;RNd)HyYm;jX!&?Jin2U#j1VWT1n8B>d&BGV#j|)w`Ju=kZ$Aq|AV@UwJ+AZas>~r zEH9(`pLzR_VEn)Qh)Mt>A{`EOAtA^(64g>RWK9FX^l;2p@@bkXNTvn0>pzSK*&E)Y zcYD)Ga~ob`t&3DelGgldP1};}R5tpKp~y;8r>ajqNh< z#hLq#wWG-mxBNQ|(jaK!FsIh(x0&?vE|uHWW^u3a&#JZqVCbK$BM~5PiSI@~N{FV~ zt_8>kA%uOKnj@j`Ije&x1lrod-3z5KP8@5X}D!`ad&$$w>W= zc>Hhw5T7V?VkF#WVb*Tr+#=Z@@0s~#OE#&Yi4)=bjKulR7Z(U)+DwT#iRI^ho&TT& zkIZcJk<-LqRf_9>c1zpxoaK@O**@`;cg2B-yTqM6PPa!DGeX9`v!{9tf#O=)K3Q%+ zYIrkqIWQ3?Z5~fz*FgFBN$MLARon$j6C`1cghtx~8@t9g@#z2^C;QZVf2|1QO8fX( z_yL+@F#P~smeXuaM^I2rdaPo6HIu($^i`n+uhDYL7j3Lj279f7m_f%}sn_RIkLDLW zCb0*KNcY5_nWHdmT+Q`{H=<8j@+?Xt=r59dUDhX(yD*MF7_wDXA6}P9Q#+;HN(ZQd z2m32GCK!LZ5)7?SrL+qtG-k@6{X1LZH6QBR`n}?BM-f_NM9GRC-jEC0i_6urXNRrd z5{-K;+fwvgipcG8>;c~j*u|`DH^cv_0>k?Qmg@}Jo;15J*^f&u2LU%R`Tq539rMR! zRrZ?u`MC?k{=-<63$C4#dAp`j)ZRBkTgdD`>LV1#fzjN!q&`ydT>mNaQtp67cP;OK zY0~iSYy5CLx$)~%-D$7~HenAm%jv97R>WM9e}F#gO#@}Q%gT*=ZuTu z;#(ut0NQf>C?izwy@>XZlQ7#$IkxI24pw0PrsdqkyjY#TPcw`y1V2S((D}I#Uyjwm z1DhceyH?^0k#Q8XSbuuwrrcP1>>h*3T_bKMP9W$URdRqS@Ww5Me}q|&da4S=!f?F^ z*vcNnN7u>gH^uN`(bwK&A;!0=l@vGhpec`(FGacUe&!Ku<;;BSY26Kpnh^Fu!~q)f za}W%PlIg`j3B3&Q&uiFwl%nAU*he=hy7LiYs`HZ|{1@ z_?tNCz^~moDwbKkLG9F|E<^YjUVk%+(xRJ1FfXr~~3F|40sDJa~uty`xP|WDt zXx7PZ=k?|#R#jgf!}VBO`|zMF#hsQ7xJ=OCik>vC;TLq8l#Bd5p#$MRYGmxW!6w)i zVuG(7(*4B9G&;)A(D=V~6U5N>Fizq*aJ>!(g!d{>!gEn#y4drs4&5fmvX4eSoy`ZW zs{N|}!bU=|apwlp3=^M5A3D(*r!90BHt?uzYI(gEcmC}d18tA6)ar$qUE@*7{hBul z`k(!s{ONDS$3CC#xQfm5a&$Sme;U=YsP^4jkbPLrU;Q}l)a05GZ{~Yi@zWA6h=&~W zZsw=xkFlP>%9pi0+B(yktvs5RBANN5tULxG(3%|96Zf$BCI|h??skoCt2c|Qj75_T z)8iJw4hCfA3ZYxvNYyjVv~%!gdhAoX52Ohv0q0uNz+A*EorRoRLNo&Pr@@?rTyz{U z|5o}b<7|py->2X8B0f70&>EMiUU28|A3MZJVlZ_DL@hPVqHfSaSFE)7sX_cJT-oV@|z_Wc#^t3A6zyW>PU z6cF-;$0f&q135;nIlyRKLUhL2V#tw}Oj|*GE~c+JkkKB|CZX5!V_%zdC4Eda&!o&w zI`?Pgd#^V)FJA#0_}=!9H~zOvShj;*Un!(R(FVWLl4SBAmwyKQB}k3}1j#D|IF^k( z>ev&5%jdR{*6Vw|P?TK(lH6-lqRse?{qyJLLqKsdhj~W+w;fn6mtK;ItM)8rEVLPm zXw_jI0d|bT<>Y}e+ClLpyXt2nQghYh2w|U-zivOn&^xK~;F9Cui7$8V4P&0;`Ep}bAkF|H^ zw12E}mT=w`c5CNH1&B8!|8Zf_7Ye)|KQG6}GstlC;3Pu^&sNfP7XGp{QxXRZ$x|1| z5IxgLgO!O8NwH@19$>P(aqI}t{%jymC(N$mijC~M5Rud$HK5ma;wVjd*SfN3XN>-zM zE{bb@2xz8qrQ_;`|1eH?Q|Iyx7@s2w4Z{BC1>Yz+vkz5pBkY6!MA5K>EKb3T;FsVo zBDLt-HLE~h{9z)nDQ<+x*rxrPlPSGsX-xr%@bp*82>%G8EU>5g2x>`0kj7V|u!wJ7+ zZD&xX9=8?|_tXO$zXt5vPR8tmVCNuCbFg6=u-O`?!A^(tvI_QH$!FBENXs%80*bye zC;d5GRltU^*_uI^&+AB=(>MM}`O0JCt)%Lv8xZG$prD3j-938WpeLGCY>M6xxwg-v zZ3C1>{b5`@ zw)zN`iMUbd_CqV8<_KnVjVCx;5>ogaZSqIvk{>UDJ>oB?;CCjuMWbApXZxijf=sUQ zE+=V zUiYK2?=e-s_2Vb2?x`O9JBr&161}5dxd5MGx8BJ~s1{Q|abum@z}W8h9vV!`6QwpX3ghum7_oTjN|w>S?1;Z9DS+}L%C{$n7nN<`HR){STcmPEY4jO z_@WJ_)177WxT0AXiQ1?8vVR$-M{^A561mwzpqRLmT%upep9PbLu}P_l4^+oLlHzj1SPFC!ht=Tky)qNd*PbzT=x>6{4=TzmTsU=-2xtH@r1l>& zqzdM(ewuK6p@!wZKK_y+^B@DgBc0J>d1|(-HZ_fK)jwoNuHzCzkLedb#p5^zt`h-d z$h<#fNL=QzrpS%8sEW>BH9fs=h3O!NOeQ{-uW}(3)OGxdC6Q_lJG31FLUbu!U|+ec z7<{|ooVIT0*!aVJCbuZ>uSIfd{7u=Tek1XxQ1s=;qxgVphp+1P9yeO~;mRY$%j0yi z-XBb3yly3%AQwvig|oe>g{=8)#;R%3qvg?tMrFc#F)ATnsY6|CUBEW!N5la;KNFOIxAo!Z!xL zZyslp3zxmtD3G!ud!m@-EbE7Yud^h7u1+GlgYE&)kD62Qrvp>n+5q}74?sW4Py*;j z;J3@un&&0@@o7GL=_A8U2GGYdf_}@R5=lt*6`iv9zdJcrO8A)9Ut2EEtA@0!{O_Vr zEeWZ?vz-YL^a2#}75=gVP6VhI6#?vs?+};UUzW|u_mvBSKc9KR9s?=s(r6R3E!On>_@xtL>jX<`Aq@-<7z!_+6-`myWo<-l@$X6 z@M1L%uP7FxcWkVm0e?O-fxFb?jVOSFhSB3cr-{(?DW>|fYqyML zxKIKQ0xVqzw`>h1uthLPsBeqD)v$=5kr{T`3wsu=bAD8`I2kkftCqtwF#f~tot}Os z2b*pOvY#xuU*e#IDj&PKMf7MwBN+kK<7}jm8}z2b$KR_tDt@G77742#AN*V`9{o*p zcXn3S_Oa~e?P1#Ya^tgcG!0ijCns|fDJVsnCgIt4C)H~MjL7#Nbf7J_2mp{|Gm+s3 zgE#v(Z`s@D3sN!3xY`oeFumPXA)3F^GN2xJllf6M@4!_NiviQTmIsVAwRyuYzg(Y! ziv9L4tmOg#l-EW6GpPT})c;>)sx~?cP!FaOjadaPq_brD?#K|_HT?I@#cvQ1i8A5k z5r++@-HLFyJzr4&<@VG^QhN&4?&e~-tO_<^DHqjYx~oseFCmaSLF$@w(awrjBALwS zXrNMM8+pdjySJ|Vq&R9s&Aaspj%dh@s7c-5LJGLJm0uI#<_KiI(j9AxNB!TfB^9C$ z9Zs7(8s$-TyM86HRVY$xnmjqJjs+JtUK4fhKSW>db3eX5o~fgXCX#yUrO#X`-jO~F>v&U2Gu1a!X6d~S!9Z-QwgIrVbb zo^Rw5;w@HY$W)FVOOj{)6JLJIiKjq|SoM}51FOvm9RLZE^-H~u`HGV2F zKidthY}zqeLJGcsWT~q+c?`Fb{gmu?^?oPSyo(dhc`F6ylP|qfqrXB*y%@7p zP!H)DVCH+(KTjXro20#SOqiA%GLB#WRKP~NVl%C639HN@-V zLtglt5rx^wJWPyO{&06G&@ ze*%5K48D+iSlF;hb2M%YDNv#l#Gwy|(00XM7n|%;7G@_aH(nnri%0Qe1^z0e!5gBZlDPV zsQP*$r;eEPBaCWs-GIoQ6W|#3PBpgzH;ipVK%h7-OnUs&4P4)0gaqCW$x+Mn`G!#? zg)a4yViqXQI2Y%J#@24_dJSPvB$b2U+b>_UNl9)?Cpk2ol}i+Gz1xknjaGgDm=1g` z2N9o=9n`ZF!frFDa=UTirmRxq;sK}}Pxbas!S}zd1aaPnK9(!)k&s#R}h^ z)1544`s~^!%+B+hHJshQqjhns#|{e}o^LOfYT1GM)gJD$=1RVJGH*Ww^ama@K6-ho zJ_l2?=|&j%Q0`$XCqO=O%v{_Cw9C*@S-hAn62!-Q*~*PiR#971ZM}`pjGizx)&bZ< zRy}^dpqj{EKW_QmJp9tRK4cf~p`N@fx|bqg>qj&`@+Q;UA|8BS3fmr2aa@I{4k-#e z{3Ss`#30I}?3=;KaBA!k(IM)*l^=%^KnJ)LJ;yo%wG$ zy?(G$5Xd+8nZCOpq$fJ9`l!W6&hz%&*+{?sonXI|Sy?=CN2b) z@@DJEyq6>92k4bfPJ~2i?O&ZaZ`pUtth#o{XxL|d0`91BqlHMUd$w4#yN5^cF)8J6 z9%Bs?e&Wo1e6iZEH(3{D#qVDiS!VoDzsSf|4R4k=QOf=N?+KQdDQLb05^m`JXAu9N zo(UsT=~Wi{`1NY;ZHzmy*|AZ&QA{8E4 zrut-yNe=z}K#3KWIn=`3O=f@(f1x3Ziad~guXi3-wSHGaK12|PAK*Sc&e&nlo;z5N%Yt~{G4&V|a^<02`;0&bk8i+Otp^*2 z6KZgLG+^<&VS01$4}76eb>Ro{bJ>T>r+DrssL;omL+4Ge)IHQWn+n;gm$mz*b{x_4 zQl4-;)O=pz3t~NKL^CGgRQrL-8ANC2kC*z=Y6&=Gn-cdfP2zv;@_3p#`I}G0_OZ zb9~m1@6cP$^w20R^#@(s!j>X+N3Dmp$D3X7bFqVs!%l|AV%sZyeeb|ar!y$`o;*@! z#RI7sIw|4TR6ZBRh+(fH-W|eQ1&y+3w|d-H4_Ucj9qGr3aH^Jf@KNUh-#MJjlEaxk z`G(m&q^;99Y?_{iL$sG<%<#5;c=Nus1h1}f^w1GEaGucvs-++4=xk+cFu4T~3%(kK zSB+B8h234Ht?1Af+%(*{_pNyg&eWz@lQ~(S#zY>FdIZ!G)qz0`G6=}o4lt?-Oz(mx zq>{bpX^?O{eb!&qc879ws8gdJMSn)9r5q+rJ`NIp$BN7lD# zc$%>a3dczaW*cvfiU?Zt1_L?jFnU6oi%}cDpA#<2M|PV^Hsa0u=wHpmf8nqHO!-jU&|ml~5RDPr{D_b(R{yt{b4J6D z%j#yvc8x?*n9=euB;W3{jT2*s3>Ht+qF3w?k2G3=ZrLicwBQH?*2I|?^zBcw;MmgP zwQDIdA>0i%dRV%n)dvpn(g6RVuapa2QwO!A15dhAj@q+Gp5#j#R8~oR9h}a@Q@>Z) zgE@mZ;HSZZD> z;cTSKo#$(lYU)6o0Jq6;L{JfXUYcOiL)XuEhZ;#s7GVzMDQN$jh`8(+F(MDsw=f@6 zjvw(XxaSGzcV9_Ou&;OjV9jH}Pw_#{+`xXzR{}bHI>Ya|mg=_Nbit4@0mk8BmeTiz zBoF(aHF}+V$D*sARdeK&Dvv*JjsRgF`Roq`IAd>64s}OGth@Ba?N)Z#S3HC%KU6F+ zlXAhM_SUZHi~yZ|G4n*S%r{@Kcp^K>>V|aErB$`lSrRgCtb#L=?&H;~r0SlBiiFVc zJ5yn>D+wFSX4t&7*C9hHTt(gFQiw&#uHjDc%vUI&Zfk0{!O~%s=R2qKQ}d>9083ED z*Q8{AW|WieE513BOTx#*GVz4Zt-0YPEdx!GCIoWvj^=RogQV>d=}!6HC+}3rwth?g z8SZj8M{ddwOJLC*8S3Sl!n|GN3?LvE--w$q%Sz~MQW}i#Njp6Ka?Z<9<~i~@ghxf^ zJ@rzlab@}BT^M$O<)#Xi*r=scR~=|#Ynu#_q{D&JKW?`x<6Y$*+7!y~35*x7zYLB! zQj}gei+K|_mZFVYCYad$QT@ZU;YEC&{9m^f$o@g)&3L0*Y43NY^=u*9?qv3 zCDR3KuW3WU6uZ#N>)Rf~yYprqD|((br|-`ZI3K^xu#4F9;~hCwp2mAT!&&$dbEEX@ zdZg{c(T-(adknG=>{9whsv9Dwg902HZ}^6zF^3~JNu@+9x-tYeRpaP9h(V2T@xc@v z8qRJG^!T03d2uUk6_xW2NFJ)?!SRBTpwr)YG>2%yquKSf^|1-?QpKEY&wOK^TZx(A zmR-39Kh~X|%?k-djQn_FZnI6uH*8lvsNqw?o$&ifuE$y;n|%MPP(J!GZ{wX|TH|CNU_9aY~_82>y92J!Ht06Ra~oN-g;?Ms`o zI_#_}x5x_AB*T?;(J!4savXf#YVdZk*h24nY^*h zKwK^em*_7o8oG6W8}{03)I8i5z81ng>^E-e^)BhnX5JZRQkR4StSue(&Xmz_v(b~M z*x^Mt)oNCRluTQ#WNxArO%-af=$d}cly!0=r)vG}9xeF8ko^ZV2Z~ql6RmkYu6eD(19@588tgofzR^za47xV);D+$K&Rw<61O1gG-5+O2L z+Nlicq!KNkJd7O`B7F1=0fJ)IFa5@60K1y%?2+xfIFM<%8UF3Lc=IGxLpHgR^RxKm zfl=r4XdMOFN8PhVeSvz(G21F=PcuJv^HggObGi-ZcTk>!;-87X$Ri>$?0F=XG&W)L zok!v%DO)?POM>LJ*wSxaX2oCH{72i~&y#PgoBOI5n0bVm!AQB|E%-5a1mL!8=})&x zs*7{uhF`o%yuX1#Ax0D|4oeq_QG?lS#5ks%S}wO2NvYYJ8OHXFe#BB}#iNbf^!#E< zPVA;$(Jmp660GrDB{k(a_EE_C5y%#E z8tAzrduCv%ZCZE!-2cgqU7l(gxkpOnYcw?vRnf&Kpt5`93d(XxY!hVlmu_+>)@A36 z!C0%+#x@d)Q6^Z1MyUXs)ump4d9DeDK@QS{_Z*#yjzD?W|HPeLZisA0k;HV_yRupm z^`Z-Y71^~`!tMYV%B|&D!Z4613++rmmK;KSh$FP<6dm>%D`-d5K~hqv?HKW5=uHq5 zyO&yxfbO`?$E7hGem)p&^Ls`G1bodN{t^p0FR8qlJARdO@L99G*}`(997%4neUs1w z2sy(pt{H=Z;+-HA)yAS0RnsPrKMfTDc@&S*j^HCWnR=@!zWf`HN@%I?8^YE)McF$2 zu%HU*Hsiu3jt&Ue{}zMU7xu+9p_-T~)|xIx+6P%H8gP30WV^mS7hV zkm2JAL^C;K`B3wKa3-*x^Dq6zPQ8%W#;$ZtX1UjT(`Sz&yXtpqzIvXR#MXMyDmR>X zJ^;Q6*slcMCJphm?Gf80B9VKP3=|uH6*P;^ZOSjr_dM~X5G*?>8B*wTd_Q6Tr8tf% z$$WGMSHIV!icjyvE_DQ#!=AlW@RXwU6A(M^X0}cHEkoj+SFIZKGpl zzav);zb#=ewmUBRwmX7(tN8R+=AB21obMteHW8Tt=t!&NcNF62z${MUHCA0-oNZ2G zl7={vvSNz$!CRwt$|>_97S0C=)w`Kb6EYXPj(B(W1Eoq_4Ide$1g3urcMB1e)O{C$tk3PHTt0U!_eR} zzFaF!0@{^OE3~t5|MIC{)ofClhgF5Eg7%Q~%9LeTmzbI3)U%4|{03x|^_!R6u;bDp zR=jVSl+ScN)H$Yyo2QC6Elf3#w)yK$#4Iu#jx4PYtCswJ6x~S^I9u(kAUW~MstOk` zvJ*9>v^?jKcz+#(l76gbwOb(vG*X; z8##cyHiT0cTSRd-v1S^0_&Ya-31M) zuoJG!h@{*I76)}hIT^Oz`J}lsg5}U*>~@HOp0wdYsrH{Zsx`tT+7PbBpUor`X7%BhkZBe<5E!l%058YCag@>w1Ezq{T9Jv{kos#OgX}&ixn-i4o z>7HZv6X2X&MTN)N^L&7O1XT2VY&im=Zr07Y$J=Y3A3NO0Ue92T5Dj&mv+d$!=$W5J zkodZ@&$%xZNn^ieK74iBvg3>)8i$q-N`B2ra(W{|Sc7W9x2cvwVP{YA8Jw@|^pQVE zf~~$pR-f)xNq)riuXQF=^Vrv~xTVm>(8%YeJ5r=Nj@Np#ty|tu4n$+Ezxm#*L+#Gk zn$c${piv$NFE>^UGJ{M`wXsr^;Mm=!L;XhnSR?55F{gkz-%y@{z87d<*Gyy+q)@z- z(;|nqY6};9eacLWDBk%3rd2d{sD+wEpfP*}Wp|bd$UMqr9j?j9>tnJ*aRb7AcAlvR ztMZa&YvQE~oykLNXuQpHOnq?zLT1LkUWg7?ZY~K91<|70+SdJ(?d=~xauThx&(>1G z1_4jB@qrkp=3p*WR7rf{=?el3tl^b_%^^=Y61;qkz7sTo{zc>5^A%RyJN!aq-kXrl zxm3+YDav)f2H88-9`Wa35OW?;r&)50y z$=YWTi-1ygTIb-PX5$@(^cdGJ4vBD0NZ=iHUr1qd#P6S^%_h;b$(SG=nDNG>hZotpScc!gNp`a`Pb7$)m@!~rSj^ zAWIk?@#;hswv}#R&*Lncq(IVr(W1%Yw8+2Ka4%a5HJb`9GB!TMY$ZdWaRy-3vXn=! zQS^jJF0haLR373GmN3eOtaF^^sh<9%ukOTu*W<`mX$&UquSs=irpbO@UvI~rZYBVE#HJcE1VtoQIoR zOll9$Mt^6Gtzl`3e`;o7Cg~#J9E03erut}ErMpS+tZGp*sD8_8opos{=JAz2J0PVf zsz_9Gakq}TuE+i4(Vb>~V<0EVg6kJhV!__uo38= zpmRLUOo^aNF!N=h^V%M4K(n+;xgmN$yt`L#tA-HDosSareCcF2Grfs|tnE}kFX^BZ zp$mG^Yy7ycsOF83t93Y6NzE7im1@OD*IYC*=v?PhQ8QF6hK6c}Nj_tG`ri%R6Hx&H z5%7vY5MPPx2b5{`P^hGq-_qT*&>C!Ka={ab2jMFkI!N*>f9j2vS8c8G0Z{kFvIRkW zz5&Z2@iY9%2{@@D!xl2EW64`!K#k#`W=$STdl%e$V=3a8AdFMaB)+fVkxoyrPwS~; z#p?8febKFCL+`1!?_Q|gqxGc-kwu0Ua_9P;hL|-7xuy;JBT(f5dn+JzX)%PSw=bhH zF%H&lYWvmFC5|?>c9O!Zf-+q~uy!Z&iEdfSO-EB7{rT>^U0mUaM%IAvTsP*LhSaf| z_}1*-#;Ev*qknJa+Ou#fN6&6K6 zl-4jt5cUeaD(ixSEGYb(b~`ur6e2TqIfGW*cB2s05MOZ?M>T-Udas_n$OkjjAwAO` zzq-Ey8PyEWb&5Q{c|GNAqNY!N>0R(0ZOJ|~80LCXOj z)dW8l6E6Ls%#WLuLA49{ll%kQg8jR_ug0ye?<3%aM8AKIb` z2s}!ae#r1=W~yo^>!&&&^mx<377hFJ3rVB{OU(DAM%k*Y6(d%+CRMtJivmGfwyiM3#@G*BhK?MVj|hrwacVu_H) zp1*3>^clSIQ(ZdqDmX~G`^vTtxDKT$aHDG_=s@S~Z`L-P^IZ>5SQ1QJZ(w2#=vq!A z?kt-@Fk=S*MB^QuAxz1F$ebj2Q{b5~|1mD~dvl+eVG@`G;#?`^?`EHkX3WVG zzAchN67%XAU&;u+0#8YiP30u3P1~^(owVn*-`I3R;XUNyYe;DVjNuwu40CI~Tz}r~ zDLPDKHt?79mf$hTf)s`8l%-qvJIzcwOIVb7xOTe990GSDT+}o!ZbIDPM2MI#Z1{p1 z(F~1EIl~dtbb4`amokHs>0NPyl4n$!jQxf2e8bqA2IdJVS;W~04>sH)m{m~FpXzMd zy)0EnL&C4?x(Bz$w$ppGHGn=In}0Zgcpt-i0j2ESO|(ji+Fk0oPaPAp$3X4@p5}qo z6XoW`uUgOeUhKAc-P!BgCiX2@5bzzzNRNQ^kfiT59ttPv%rC-2n5R8w_C}T>KukkI zSZeDOSv=v6Xw`{F@-2i#H2U(xakgaq`nRe0(H5i<_5s zBHDAKHrF#3G_v@L+5Icf*};eP23D znNTCql7Youn)@qs$60N*38`+Q`_b}NW{~&$Om`&Q{Wk0c&o{bklW|jNh(}aeRcA*; zVfdkgYaeQv#m-_!+*!xX^d(;6Fz!;#jZ@^ssermcly3(8nXM@;{Ml-aT8&l_d-|eo zv$vqOJG=jYfM{tF1L;kE2@%~jkL4ba-m>dW*cuyNeet%a{wn5^2+Ksnr098Gmu+XF zMOCFAvE=&Qy2L##k`o_?nRn|o>GbBFE%QF?2oZz-0KvQl>MIl&xi{y|-xi@U-;5EhTMRC!FpoN2OZ{;3 zT}{h*C;aUJ;h`=OJVRb?Vl%yy9eK7CW;w;~At1;;^t_kh7%^?Y-Ij0HzWi)8qF`;X|km{Uwik&o$+G$ z$t$$G8AUID>SvVtx-b+?_RX2&ILlqxWfqt5DS0?AHzl?s{juX`V*kEV1Ge1MH@zH< zcPusMq)^fycWd{glfIkZ7GKA|IGC^42)Q~c;Az+L1z4OiVIrB8p$ z8F^0KxBc8N_(Vs)oSF$VTYTUSz`32o$~tj5OVxHc$?>G$?gbfIQU>oES;8Zv1)c3u4cCDzyd};5CnI2Y=SJn5UKbKVWrUx3^ z)$&MT`bX$-PwBGag36q|kC1FfsX`N()d-J(uz187Ogwqq*o}^5&i!yelGj_*Wyuck zDF!U^CqBNRY4j1%vlQzSZx#jlfgw%))@@!pD0$32(CUzxv3LX*5#%n`uz61}DvjM| zHu{X}dg?oJppVbDZ;_>T5V*6~@Z>Cbb{?oK;D6#a>zQ>}`2t-@$)aBaMRLr1?NRtwc7rmzS3NB?z1c*0W+V>m0^t#8-)#DeF&D!6FgTZ^BpmxL$ zQ$KEJe!3SKuPOPLEYbY8LKAUz#0`$77WDMEz*vE86|Mu%d3!KCSCzL>ZKPic(IAMH zNn|NEXLKvg^0+3izcL+bO=W52)ttfO(Zk`}=f@S_5H5snVG8BJx=IpWz}q(TiseYe zBI8$owZ9rKb{)3i{XMl@Ibjwe zCHh6r6e>HiB56M>>baMW%Z4=Jq#FmF`rcJ7Rrl9qjo+jDG68#(3(!R#wG}{KK8kXW z_Yxi4A7D{6p8CYjhQ!;L-Td?@LGq)Bka#L82QH`F8Cy;p?MutYbWE@5k6w~$B2N1_ z8EyTJEj+=Xr{5t)l>e%ER~I_pa1R>4rn;csJXHa2o!j{2wfpm}%)>}2O5sw6)^_C4 zAf%}ag}&NjrI@>)O(u zvBYM3dexWO+>fCeq?cCq#dRC8@Y!`}MuMQpZQ-fQuh7CN2=w zRWWX2?oxO3(0G34&HbV8A$+!eGbUvgXvNM*G=7Z=f6krjn!n3f^B@ORT}LD8xs}KZ z^lDohGySXjFo#r^bB+dYjq{EsQ#Cfe`_ftloA6h!e#yr_j&9&>*e4U;rDU_|h(GTtMhaQPtJeXfw!h6cv!}3r;L!U_knkxV~=IRVa*H@I4tO|#_3p;uf~bN zzIr*Yd0S*_wC#(Hr5Tv{#*NRtCy(G;`ZVWpc2-nHmF*RNv{Qe5PxUoyKEc^(z%_gJ zdJowi|3?rH-_WRJXtH+psgqXSb-*Nw7`Agl_Xn_;!580+IcCVtCQLrC z3_O{!^94&Km?W{KN>}cuOaTEklWgG9?5II-ApdI3fa{Dv1yV5xwYitRwiuH>NDen$Kf_3tw(i5N7tla3VW#6ojwAl-fyTlQlX#9aty^9Kgc z(z*><11UD9x>$*pdhq;u?Rs>d6qdezPbGlC%4H+xjjY_#`!f=%8iLdo(0#5vd zSy|+de&eCwp9y)_eP`t4CM9j#RhJ^%-G6{{mrMKTy@nz$ru64?9keF?H26}=Wq5hqBz}CV?(rJN5{UlF z36p1B+|}F$^E@_3A5J!(S8<5u&V3Z=_1Hkc)(F??i+9!cu z$XEBJGrfC)bqm(Wuh05sJNVcn4oBxU-=V5W*Uej7qQUE@UU?Ni$KLg*{(*f){ccmT zg7o?Io;&8fA%0`K;1WN?GMrm1D*|->Eq+-<8nx44YT?WcTP>yL+mZ+C=FU4V zu#o}xdCw4tPqS-g?`*2I(OiiA9l+y*aK>;UksPb(q=l#J%jV-*`H;^uPNCGd;#$b% z={i+bzdxf_v(drb9cTIJp9v*4XZfJDnC0GZXX<$`ShX#r^Xl!qXcsTlKbMYz?vVsn z0Uke0+-2gi$+dYQ(Wh)$J#~$L8j^ly)MN#6w!VIfR%MXq01`DDK0bGQp%20Rc!pur z*ghg`rQU{A5^`u(OSlFW6b#6OPwvw{BzLi6q`H$ zCj;c~b5J;HaJ^O@mOrzCAXgQD8!1JHRhct=DcwDPFv3;Rkb{Kk)NK*Z!-4pY zMi?@iINz?|gsty8xVtaQ9L=#c5u1+(3PYxU@)OP)(G=67hInngqfeiaPbdohWQkVq zgjqz(_-4^R-bsZ2uy8QJn(B>;$Xs61X))+GfL>2!GDMf#oyr3b%|{ z8RNtTb8#z9m<%{DI^Il2VyQz=W&n?h|2dyjLaYDj1akaZ0KMxYYn~SO{tr)uR(nz& zIFzZkOl5Xu2GF+0Sl3^;fEe6RZyTlf zF2HfAS-)3VlCwr@Q*G*+!))n5(Uc9Cs>1w_tAshF!F>=zcl!S5UeWu4HkY z+NZfEA@X#ah^VQ|jL=xRHkrERG4m7URinu`+?ycSmY140uiN8S4Y6~1?<+R16^JcRZ#Tl(~g7*0MSIyehTo;e)& zKaP$XAmfkqbU4_UIF1SF(bG8(-H^;I8#jvA zy)}m9g^{t`$2!iBvX7e*4D({iBW7+&9VoO7_Z4-E8LDg)($fXq{CrE_UK4Z}YJYod zDC}_MVluREJ@m~X`>Q6*ubGN2vkS)noNipHk2m3j^0yZ<=m=?aWc;#0VfJ9c>&^Kr ze4<*^FC%5-13xt9#9%n+6C%IXq&%8fa`byVau5!_4g_Hky?*RXbX?ND7Qt5V1Bz~Z zs)AYi-pv_MWjT7cJO7jQ!!xqpTZKO^sW+EejVh)<70AE4goRQ~h_-vO*Khi~q^ ze*7o(6pFJwqO)O&B)WD^;ZkA!-&r|B4RBe;2VaJ)4&FsI%9pe}9V+AN9$fd|mUftKue?VZnxcLZg1hRm6 z@dSIE4O<{Rjai3~Tnv#q?^KHH|1JpwP3<9%oy1%(km<+c#tFVY^HZMp$u`1(*dW(w zA5G7V4obrqn9vq-2Ww#LbD#c$L^_HrahRIFj9Ik;;j%VoR}RzR36N~!204!qO>FS( z3cYt3R$@v?^m|2y;&Z%7yh=c1wrSRhc!UK4x?9sbswdm}NE#3Asb=F-B-Q~3*D#u} zpD&o6Y{PW5$A4j?>GEE{!tr{N>Y-}!JvpFghKL6&9r0z#XVAxEC4r#7Zx8XEsmRvY z?#VX|@dZkwYT~8p+sgsn?6?t4sb>kL)j>2|2C5z8OvdlzG!GuglcgK%EFzWD;Bc1Q z(9ESObMSAj(%DE2!B9wXGdazKnGe)y69wv`EgvC|Ag;EkJYeXJxgmkf{uGbb1^y5w zv>v@V0Da)l6h|Db-XaE_ZEUzvF+pFSPf=oFQ2Z9v_vI$YARE&&Y(&UYk?Kjjyw>hca zpdx6SKYo$wT^5Kvfxnov-BfPxrN0B#LJMXtWKw?-eN(*k>z(-bXF%ER1|S%7`=v3P z0a>0aPsF#NyPI`vZ^V-**kXX_fZ&PsB?^f_G&(qfo3bN7@UgAU>jaVe3R1^ZJg`lg zllZInxP=ycWRjaCURReDzz(qrZOCl#*pJp>_BW(ooQa*Fp#?&=wxbFd&lgBYz9(9J z3({)H*Es(I9?0SV%6jGHnrr?K_TDq9sjlt!)!Tvyh>Fr776cIiDT>r6D5wZ1RcQg~ z%}DP=L_wqqN|6#NN)rRpYg9Ujp?8S%8X$xe5|Xu7^nTvwdH2{~&KT#MvG+OmV2l7+ znPsiacKxs4yrx+2qH+=8hehF%mQc60E}g`$-O6AKAxM}y;3}>ncSn2yNDt0;s(|xw zhgN4<+jq8p{-WZ$W!-8l8`3gdplFXzKi@JO!HVWPJ&$fq=-Lcl43bRO4M6?ZN9Ilx}3yJ+(1+5{X3TdGuE@1aa=l&s~x*ikZGWNBI}>;5KCjLAj4 ze;AU^l1$)=gWmPrygU=HDxb6_;nIr#_O_08W)j>>QgR!ak+zdOI9gMp+f z{1?sSk1_#~3jI4U0+pN%OQ@VZKj05u7UBK02fDqGmh6< zz|LWxlIe~gF4%G`txeN*;+8;KG_FLdO+T2{qoZJ%_dxU}_rqwDt@!H?r#C4W2{hv8 zl+`s;yRm{!$p^OPu9sBFyCa=Lw}nQ9&%pL{JaaKvl8`R7I`J>>dlqM6|1fCfD}$l2*W; z=OhtgFxxyES7tl?aVnS$@tW09=-pTE)yK8FZ%VH%_+1RTgECz2N%*zhq+!!8=yD%$ znboVDI}vB$vC~yC%pH)~T-y}B26{;8KyXW$yEbvl+YqvQ;b;c}0?MYP( zLH72_)|q;d!_3; zQ@!Kej+{~3IaJLnVfxcJuTq>5y+%m@0iz_&3ERBS8suo#!#`tOr*;;yB6e_x-4Q>y z*n|B=&8{3ss6bN*zbHK{J2C9K(gE-8FVN2(B!G`nDl0clOW^?Id%Jr3*b|NFoc`Ek z8*}fSbLEFo{SlN_+AeKaRsQoAoj4K30kmSWm^{@*5b8d)2@HNa%V{EXSvSyl@jv0hH1aT$i06Nx=kjl&W&63@7?axmhLE1?*eXz z7}#E!IwVvI4uj{YQaSUIlls1y9fBU%$-4)eq@40Bd~>oiaBh4ZtK|lIx!3E>c{F}@ z{cJ;iP1DFg$h1|hzV1lgyU(?|75;_MA@qiVgaLG};m(0Vb7op}XMS2NAp4?y&>3Y$H?BxZPhujVeA$n=aT2axjOH$gys9O>qeDDPKH(EQA z>=ut+63^|J%s}uA&ao`nQABYZV^F1DdM!$1A0wR$8=jR`IR!*O>AjyLXFp#|JXXKm4{Dn?p=t{bKc<@n5qeXYUzbJ& za=0P0P$QoXl!{`cI2_1Ov6kEZW?g@xuV(vV+>2?3Lz=g-WvhcoTVkJ+=aVE1{(1Wj zkL6tjJc=a4I5&%E@_!OwITdHj=6f7pHjz5Kz5{(p27--2T!%HqcNkYS^2NgFAbEnk z2UprQrNjuwx0%6fGpXCJS=n`SVluaR00@Fox^TACGQ?Vb1CaSJ`AcLbXTO*F%+-)_ zb*Zo&*?1|M&C9*>z)`(iH?%5ewf5x9mVk=i(F~7--I90MFMhkX$HK|Pla0+Vn+l`l zEo~`7q`BBSpgI-kyKHCNgK0`{E}GkXeh_|qBVsC9j7Z@?Z_N$V11#%}VTho~riAB| z2>Q~k+E{WyJoQxDUK*}g+mE&JwV3>o1qJyz#)lBFJIZE-(s*J8>#S6&UqQXvC(D2R z#Wt$-ZPW)Aot)lx*YBeLy1$z!eC=bLxbJ|G_GJ10E6^UD?fS+Eioq>`08jm&gkMcZas(b%r=FxezZhMwiWiy^Sss3j zjVAZ-5+(@zC`NeeAi5zb_Uek*N@9Pwz-PV1jNtIqJ$kD2Xh}@-_1wJ(c$%AIIA2~w zT5`HlQgZqXYfRxY!6#qUyncmzN#ck2SZ|N5qWZ^HAGaT@nbI|NEp1uKRED1nhrrSF zE0X9w=TBW4oe63?BTe;Li4A;sn^;f9wq6zg){w}lhUFvy)G%My1$N9Q^tCj0!5CNT!G4I_BlugT9wrqRO4lkP#= zk@Z=npDc@PFQ$n#P$uMz9HNS*k3?c;C@I*5lAOd=HS$Frt}71{9*$fdGEHV|B`c(R zwmRi4X)e4y&1%b*suED_0rlCh{&dsl;Th@n`1{Of8#;CQW&J4)sTy&|y$1t^Pl1oP zX71zr1H4NXVeM?Pa|vnBxUJs%axfEU|C8YV!Kd^TiRZKk#QSyLn93EHg~qAMrZ1!? zB7VHu=U+NOW~m=*bMw7mG7-Vp{N>Cil&wk{O;5~tq}1g&1cR%%W{4_`SodG}NZV-0P!Q6yu|KYr6o@8PD(~-Wj@(L8N0_?y zzTnf#1(Edbspenlb`wrGhRdV#cjnvb^>0Hgx6DO-=He+RL-Z8n%C0qa90okbgP}!_ z-&SLN?`oDY?=LKo=;dJ^vizc4iF0T+{zKmeL^ir@%06p8>8-nz+Vkkp8u^hoHHOwR z@4M03m}ub-v+#rk-KmJ& zo4X`!dcJ8OPa??zjl;93njzn%1h$aG`JD);hlM5F2Cgi-?oZhGJlODdUam}4{>bbt z(q7?KH#*C(Jpb5>^@UCbun56d66Qdd$M<$h(M+Cq~qzBc1 zci8nFQF-$Nj;{+}+#Yr2)Q!jx;o{dfm}{Ne=WW8_qBbfnE1|`f7%(85eniO6+|0wd zTr|z0v3%|guV$QZ6CCE+FC%EpcPko>Etm})B5^eOl zY*F=(Es6g9>(}bU!yHYf+UK9r$yt2SKTnL`rkhAQEagRMkfRH4X=f55pO5ZzANuC|B=6ktnUVS%E?fJ5>MDmIVGy(D!h%<#b+0bV z2LN<(AuEUImQ1`tyJEwb#%!7Utbc#L8b6FJQm$@yE6RyzWMXg6(($~_7hNSpk5O2! zy!!5dv|>x3fBSPy@AkVp-*=VFF9H_6laW3X)`9O5hilUU3JZvhb8>>J&hm@rYL4O1 z7`1XBB(U#d*UZfn;w6}v>U%=PwFE>}8zUps0gw+evLi-p|6H<b(M0%0D@B|9f;;;(nQ)jdNad34d0g$PrR+d%#LG!v>~$6>8lsk*zZS;oEi>XXLiF}8{qnxT+X3mpigWM-;Pf{K9HQuoS z`y@MEa!~JTdvKIm5apKTXGezy9-&Ix@ll6NO#!!(OvcLx#s!M26R_S?hs>s+t}0(t zrdM0Bg3~V$no0brxLDt*Ro-`4qVL5bvI*Lr8QJPN=J}J(k>RuOaFjB>01hJJyWA1; zt!cripMizDL>+-E^ArODX96d5?%E2PG`2ki8uKO=o|2Ou1UF&WXY-JIs`})f_+X9i zS*d3nDwVx{iI%EtZ$25bZnG$(Vcmu^m;}gsc(lmhx#;}Dd@w&8{=ezHd) zDUyob`4;MGeG=^%ZAhI(Krnt&j*&laIyh>wOPX4Pk%ZqUU#cZmC) zK4;PVPS3}A+ReI8#92=_6AV2Ef9LK#+;w*U9wB}6ukoSlJ@(FhF&_+dd(%Ztf}#>W zKk4B%!@JnYX5DYdl5xGojTqecWZ`CMEAEi#B%0~!_Xfrjzv5^D1);*$Xuc*g_BsLo z@z;aOPW_`XygP@2^^{IBP-!8bxDk&nP4tGsXxoW;sjnuK963WSwXb@X?#lE&?G*ED zRdV|FP-rKo$*(G~1L@dRTsg1fnb|vWud*KuyMnfsIp>?XVTT{Y@TqlZ>vlXp7;9lW z`;Hc|C3)whEw^V+Z^bL=b23)o4vf`N!aylLx{qo!Sc~~c6O9l88-lD|g zUVu1{WXe2ISj6Upo+KFD5^up`7nZsIxZU8J*T-a1=9$p|nftHWs9{5@H<%$v(*U>V zfWIR1ZX0N7Hd`evV&?o9L5PS9zr<-RFToq8s0R1btLw7@H!K-ktq4tUqf=8DK+-V7 zt3AO8)r+}s3UTdB`6zFW4CSPcnW_sSN(J$wTh(lFwCI49`|m;#%~7VFQz+^8TzU(^ zCNGTV_lm<0540ga*Y7?u^**_C|I<1DRXF^0edy*l8YKS!-eLYj)*K~bt>Wkwt|e^K zcd9jPlfNYF=fZU=*qcn;Zz?CFfoI62;@IBo6)+Yywr2=-VE}iSncR$(2orN@n zUAV=unW(#P#}vIO+tKG_qe%QJ5~{4K)(X`+0@3s|Nqc6d`%-kxhb3i3p?>yf-D+F~ z+Htpw0)iqk;pw&=;-eZ(rhoNLM{Fe+sKlBz;{wlNpptRbW3uddt1g=qTZuT)8N1@)8GifA1{j@pEOpAmYJ|Vq($Jp za-#b)aI|}8@z#rvfrEr!ds^wt_+x?5_m9N(mH-Q)orOm5`x1N(0|Nl+EGf}|)E#v! zJ8tK3-38h?n6rsmp2P**VqVAsYu&NB*NElhkY1_xyQTdYMj{f&R)5pQb7>XOAiZrz zlj+c}6vR#%PM9CL0*Yi07gmQU!5?)`6?Ly2b3Aj2Mu%P`~)xa+q zvxX3Dn|bVTEKkBv>QKs!)h{zS_12r2vuWv^B^gL?Z;M3ycN&EL6c6g0T zRu93n1wZ46a)<7c(ZKd=RM5?L_UmXm>`he~ZyW~J_%%dxu?x58Wx5Naw!oAcrW(I( z{zUA?>6H1$^sBveenYirD7YAUb6SI5RkbUcCxTUC8XE5P`lBT}B{-gk6K0%zLKm zZUk?jG8uGf%J=@b-4VSBImW6bnJ*6&++~7P`?YV)z4i}r#K=n!uPK5tMT(^3IxXf&dKi*g!5{g#IWkLFv$)CDtka(rOPoWLfc1^J+A z3dm{!<`Gojp(LVl5|~3MM`Il-hXErPex9V0i&-B_}+D{I~0ykU&>8OBt2|es45jKwQ#fu}i z;6#esfCJcCMq{3inXK;rnbDR9 z+0B9|(QD}>>#hwp*HAQ-8q+@vj8;96%2WyN9%j@Cqjk1S8t2pWkW{U)V71M7^vS!4 z=DeB4YI)i#(&`t>B3$0TxR2idBZn$3sp}IaOq-U-Kr>8mSUGv875#~mi-X^9LlZPg4#6!P;^fEH|ljF zLNATjdnkN+Vg5s>T$Arbxp;>vHm%8Al_dp%F&yOHNl~ z*g)5}7jc%X5RxqI;d`G8BTaKuAPupKxEkD56*9iOjPxIyz^jZwP2I3pDJu$y`DJp* zZd+tqlY&Md9rvtrICxTFET$fDwFQm@f_`aR22hXF{K*(#0vZy~%Tn(s04U=^gb_PX zx-nX;^~5~22xbRZQDX8CghU{wV-__phBLXG~{6;Z%MzuxW}i$lB!AQ`=Tl4QMuO}^Gz0aU@ecX_akA;!*` zbevOFn^@3{SbF1v4$K;BgARwmAbm6qvjU{N=3k=qjf!@+Xj4qRdXT&nq zmO00vr-bn^axH?k9Rnj*sOdq+Y_Ieq2v|Bf4^C-CS2qLoVDt`Mc+hNedgCUPlFi_{ z?{687mInpnh+u6001eblPF@rM zr{mC`)NF-cCf@6rj6^7Xo>ZiWbSQr=*J+06T55-d|;k2SWcsZPxc!)GJ?$ChU5n@P+BHi}81$~twPzlS|coX5x z-!FwR=$Ltc#HB~ZAm9xPnzSZ7Q7grc^n|1QQl?#yWzU1}D{_|KE7GSiS0{CY4zFI(Zw52~3@grVWx#HYS&+JqWZL z<09OAvQ7k&f{TlT*=AvWy-~W-Uw|>21%;m=Q@mY3KR88PMO6w&HRP6E0(j?EzO4cd zz}m1b(ERvif1@V(KB+sF6UU=QZJ)o?#_|o>W8}YuWswUW zUMJV*0ncvL?U2yaUT~%n04DWAZ(W*ua{clSn~%XPGLVcR!gcGn&cgfy28&?JJbzv4 zN~OeXNo>&H_SYfSC$C_DKxb$fqdi7|Ox(f1N4xtF3(I*phfV-O`|vgyIp$z59Td9j zg-NCO(Kkv3>$k%!0|Ex5nkiL^lsS%a@?*bmkKsJvbNUAH3fSpVo0yzIBX_Gtxf>&R zwVGe3fI)vW{lSo9as71whP<8ju?o|x*2(xrWHZ|c=BAT*LZ*52Bsp=5g_d}aAc+I+ zr!j574iZ4?LE%tw(l=>34^FO$rFjRic zPH&uL@J~|+7|H}t%aMq=bd+c7@C?kQs;4If7b$1i)UC=WafYh|UsRKu@L%i?-j$?< zx6V|3o2+!tU#@8$9{%7t<8KlqQKj=}z;Fj$4}RSxeI9zD6+^IM^a`|+-xdRR$)Un? zb4kcCgp?{U;Qhg+kOaY8!=WpHA%=@f7713~ELCAL#4w}5ap0q9nnjE|G2=&QJ7Pc@o1vgJyy>e+W}lP(BZ6G$2R zkA}4bMnC+rH4GoHTPhIrSK1|$<4A1JX1nKu!IN=|H8Q7#x``xT74KRX>9rx7xXl;d zPyC2(nfJU~Fj64^-+p=~d*;oSszl22#VO#Dk73<{x%)gKO-d%9a_s>zS-WsP|IZCJ zn9Vg!*ch3pXu9341@Fg!wUA*(H_>w%>not=G4FY6sK3HrnB zaIfY4@jK&Hav|j9HpCnYJ?$c4O4frizC(pWcRn-B;gj`@9s*X{amk2R`Xwny^J9R0 zN+#pR>!uQWZL!hmpNS+6j>IbA25T*ianT`$vHMBV_0~4Rl3w-t{0S-Swh9cWygFD9nXQ0jhxI|9a3VIMx1Uzyx1c>YRXmJW!%CV@|ci;9_4SH>4 zTH|*+N=Yzn%?!lA4okqNPcg=P#GR^)QMORMsb;t1a{P4e3beK_KA$|vAb>%g(?hoM zLRPlF^E7U5A45?N(Kb$w9i$8g!**%dN|^nZSUZ?)^)#kGbFQfn3XWlN+`6Bm%N=A@ zHy4pV$cCWR@y7jghNX*ibbn>X*jc{MqKz!yvmvG}BO)k1~}rxBuoHy|cgoo`v@?~Jf-NcmKPiXol&Xz6mo zVY}S6=1|2$OukU}U%V-WU#r4T>pXS7dIB5aF-K|2#k z(|QO^r*Di=6Ad0%kqiUKqgC(yvRA3AsP8}McVg%R13{b|nF}K#5j?l3XC8aPgwfD4 z+$MfaB4i%BVgoy4EI3(8>{Q1YC2~+t z|NEC+3H%ra3r1Gfqe#mU;f`ytbYg2!0fGUZj?|cgi8Zd5xp{US@qz=}R+|G_%od5d zP{qMRPU+|W3eJpt75eM?v%AaSi4Yy*?Ma!FBX}UjKiT~AZ2o`RZnolm*QQ2s zKPPa{H0v@;dlIgn2u+dw({n^Yed&q%VW)6iMbYm~Y0t3rQ|cY^R_#$QSoKHbygFsv zi9eEhBKMqHe4nj6pHdxQuf23*PyBH>Gr{M~(c?uGw}tMxZFpi5mci)-(-JN0}@|IWnoUT=oSU31m4b6#im+=^7t_;)5A zM=sPF#6}i5R6f_;zegNzzx3}+eqO)n`|o<4n_~ZWChdy(OaHD{ZgX1JzcW!}IXU_7 zdcE=c=jQ$o`{sNMHWTTx{l!}2#iF2r9}YH*<$YCJd25mGoE%3Ely;DKhaYT?-+Pj# z_1@7s1Ae5>KBsD*bN6N8lFOsQ$!%o(&dX7HCoq7WES zDqwJRWlORK&aLm|=u;%To;s4x%26pgo&y?1(4rTn2=l`gK%m35ymr&dTItwrpKFqb z)||VCg_+48NE!mu`uU96jMKj0X%RnDsB;zDF(m1Y+sUksWGtN=o(ApNicrD$btR* zvbP>z*q>V8%M8Y^fBpUGu(^-w@f`xp@ctqv|GE6nWBEU?IZRN_gaxl-g-=yi3MQr< z{`MWoVMU^lP`vMcMkrr*_xv*b(6d=)Gc9c7Kuj9L%rsb7c@rk)7XI-;6VjD@3>!gP z3RnK3(E@F3eB)uUv%z;uv4C1OQ(BaSp-zvwY{#zM0}XWS{R1B=t~g&Db*2x3>vzJZ zx{amU3>bYlNf!sL0LB(TqoeUfZbKyryOiccgG+SULTN>SmeXe?AfFJY1QcSR zD+DBYgMbMtii{Ws@&X-iJV{3{3p{#!$7c3>jnI|C9Sik3#an^1Js}<|6uqmWt25tP z<5KOWEP=~}bJ#lPQz^YyqI(v9d9)9@=LZi6;)PGRDu~Q=~Wb>nLnn81~EsQ z_*l@dYWK_4L&WU+S&=1`!9u_oCMm131;| z0%2Z;5e^yOxrI+(Uo0Rsjv=Tz-*BT-wf;8sSAvJOJb2E7b^B@TMyBSm@f$Q%ipMg} zai#EEg@lBBSomzw<7ex-|J(X`!y`tCkB%Rj2+Y**XsI$ZPsCL(x+SVy7LUFAR}EQ( zWun5ATHS30{-633{LsF~Ey%J#qR!Sp?p0aVxhaC+6A8exvbOPd=DQPGqM^S(GLQIa zJgm@RkT}yW5+8{1{93$=8C{`@`aA0jrtbIH@IO-h7Em;^z>4VUygHkBZCw?!w`vRO zP_&vhS8&_i_IP{4qT(-O#-git@PAgN6G$)q3{S`tZFznB6ghM8soBo|Ta{6p*v0y9 z6$n=cugA6Ry4E%NZ#nBn`>WUbE^Iz)UF!)A(Ku;+^!WaUvsJXW@9K6t#Ko-HZ7X%T zQeO#-9YV%i@%z}q6!*@vK)d zk?7ld6_>X5?n|g#4pS{17r-`^)*H>>h|eUyFjgRo-r zo(GSk@%)~L|pX)lcZk`%H1^uezlW;Zx; z*J24rYaQggk^|x|9lxSq;n z)bddG>cXIAgHSu4(u4EPem?kFj__#Qy=}qEO&i(0p9}!-mvjAo)h{l!3ckr*514}X^;*4Soig@8E10O*F(4FByE3$;^&S( zl?*>(0dFIHrQp}I#xMQ#MWFxm!dE{J)=Sseg=(i_aiRE=(5?OZms9(40tfW&?rG#z z@@fzo&)M4W&!0~_%jUKS>Das8|CKN9-Qj6K)SXq=wR33>EaNlQ=GDsDvB2$304h|UMY zB-x(N{at?L-{t=n*Ll4E+8@dO!Yhs%$@-OBBjR(FO`sv&U$~Hwt^4%U>#X?o`%sy^ zBafDPh(4}ye`NOo)}tb_C;C)Z#6NbDd*@9;rIHr8i~F+GiU z9OAB@yma-b2z!%pgnRqNp&I1uYVzC53!f=dk3D8yzond=g*#?aX=Gc$h5Qw)+}HhC zK6kU_t{9NRehV>XTtA7hgoihjq{Yo)xD?J3o8)RatRCMY?v0Q>8WcZSR^9UC018r?_K7ki zATpULAY;fFRY|VBPS4kPVk;A0t-O}mA{pL^m`Au;nkwfX{m+!lE@MKBm{*TH`Pc1; zr<(_k`$jNxWSSA6tJ;5bfX3N%i)MaTsl__>XDKLC2q%lY%A&%VJt(5#rg7)#JSxUL zsn)?gD(esP_^)^49K_eN@P|AHRke?|Y(AyxnfF*Z?mM2B=8!Qln3V*sK(3h3ItsQg zjaw+!381}_%q@Cvzq1}veB}L!J7FJh!EX=SHu6dH)`Ow(>1

    qMHi`K7p&DJSqZ* zSVqQYDW;^SwSP*iRWfGl*c)v~L*Rf4V3+~Xx!yBz!#-nRu+;R{5i8Im##A#5fyj@i z93P)4(_LA4ASuFfN&gQ_Q3%{HI4ZC3`k|Qj-vv`KG&tZNNDB|Aqk>;s)2hFt5smMA z_wAtDm-Xg;6|y384N)30yvski^oT{7A)fIIW$KS1v+Sn!zIi99VNn=P&4Bl>KxUK) zh=SEcd8>~*I0LU6h7=;k5UaaqrQ}rG2vDgKCE&{o<3*%5>5{rzhIn|P?lg)a9YIoH0 zdgsMak$2a!U?LdF*X;InWcA6kYYk_6a@tg$X<0U&LaK!ej|htXhVHE_~@o>v=NVfYE!L@w;q^%{8RTPef(vf z*S_y#d~FJM%?<`wiYPKapY%})Xjc_0+~=Y@-&!X_JT@t%tN!edxo^C$^o;D#+rFdQ%ZG#NNe5Syl465NHyk5WnGK!lK5&7k6J*pWm zmi@zeD&<0>-TTFx2^zOHm8Afj0RQls5mYV2<8bOzSMQwa;rmLi%w&DI>2fxH%tV6= zmhg>k_5I{At1wq#t9C1vEs4wc?~e?hyu%gF1fB>Ee}xyk5Hb%qub@{@cGrf}XG{_K zzp>5FkAR!OJL8cb2dPo!em+b;DL51{Ws16W?%vaJ(D*UjdETm@)ix%7&n1{K$sVnq z%cs(Wc#lsQUC@w8`7?MGFlOmi*wZV!i%ZYuq+pDj2PZT%_+Fttg3yD!W{H%1$=G<} zJxJz&B}wA4<}fPrNqOjYpi@c}SNkhJ`D1HgQ%#+{2QM^+)XT~CA1E{2(eoaCrS0h% z_h`IYaqJq%nZU-+@5)@rVKa`b8JJ30A-pDg&N=R5evw9q2dcF{tM5E&=)LhYlza~S z{2%=~+?k5QG%?@%f&}I_ZwygUq3}fDtw?XROI%e(txn%`tMp`u5THPu8_P z%0vGqWp<+9_8u^aR2-bDUTGR}kp7)%(L;o9CO9LG?*k9(LjN>c{Ea&6jNU!)o-BbE z>&WZ;R)zcc3)hKt!4-*>J~0!VUMLyh4(BW1gVYJ)v@!W58PMY3ECCoHjQ9E9bo7=t zUxjzx14nvvrEQ6`Gf-+CZR>}MkKH?BheI=EFW8bmBj!=)kGjW8Y)$OmpnSyRZTLqR za8`I5%Q|AmT-$1d?(i z>VU0ht;dZek}M>@e&rmw|?P`zv?>p4(^# zsY?S_QZ}A@4?I{oXC7Yi^;87c1rdL@8}rZ%9}`dwn~pwRENPNNOt|{MD!zgda4`Nz z`wBEEX$&xPySQ5LXGU&tTR+kja9c$FLHqRc!w>1h#|`LJMs50fOg70F5Q_0U30^+& zzr1WYf|&ILR?T6>ts{>=mjLDn(#9Z$KVCE$tY~N z&va=&a*Q#yGzz1jm;UyEICWv2SQ!~(ZdFjF}ejZ#Io za!J!n(yrjof@2U-sjB%do)qmUb^XEa!U{7xOdFGQ!$;HS25b~k_5|x(vTRvhRFGF` z7c};6nH6`tJL27*L0cLeiYD#0)a zu79h8(v)%!#NF_`6*9|AV~VwJ!|BW@bBrqltS`Sz7kIVustDL-ch%RY4<~-NA!6%4 zRDJ&&c54;Qe)KrMP(s+|%EuLS<_TfumoZrN#%-AifPf-YEnd*|eC@aMYVUpJlu^M6 zHr0Q=PygaUhUW(w1}BCcBm}Q65F@4#)B_w1hv&rRa68dPJv1Bn+xTdSg>@Gnh(OWe zZ;q{ODquUDR+*L(^X0E5qaGGMv}z8+Q7>CH@zusoN-XH}0R_}0vxbKwhyB;-ab2IN zaUZg&a2)i3jX9st-!*z5PyzV)=F^AMa)jE3^Yc2Z7irR%9HG_Sro?+2z=Pw5nG6VM z;*Eh??A^M%1};p9&8Jqfgn%7mVrox9<>zr2%fz0CT}f@=bmWWMmsq_lY5(x?%_crN ztGs34h}=ZPRRL_E~`vbcDS80qK3697@M$SWg z!u7}RhMojYz;5-zHw_~w2&%bG&|TES8y*o z|HzN))hu^r)B1$pA}|`ofF*l_rhZoRcFNUDEYrg0W8ioGHgW@Gw)tX>E7pfZ2Z0jY*Q6ZUD8lrwv&BqJdyqQo@9M>)ReH}pPV$WB z5a=HQrw9_n<ndM&#P&Gmc|bO2cq;PXag7sV8MG*cKKdolYyA&zA~iUr3-z%^l&A$kgyQ|+}}X2 z&>b3p<!GA(^_{L4BI3LDZ93CFD_e3)Bz+=-u7rVZ`h(Z3kZWzO+#}1uNAa$P(%& z_gY6I?AUSJL_7z_)zdHJnUu}+w9YrUB|OWP|I%FX(Yx{AGyef){z07nx8b)cLD3I! zK4`UP{s1bfIB^AC zdT}hFL~C8R=TwFqWEuDLU5}N^7ggo}TxOb2Z2NF;5jw@!BmO0+cs=SY6DInr&XiEm zMnD0SMaHn7!4rf~$ecuD_AsJ5#J#hTv-J|c@-)cWw9C(V(O796;K$jpEYfvt|0dVx)6tU7Mqj+ zR}k-6jEX}qP&GEt;Lz!$oU0!1+YxhcA;=|)@jV)`+ACl~o?^ek)#@vK@)`Y9=`+PP zvHv7{K2b;xmFk+pDHlXuhO;N69lkCKm%nt3C&BQjWBaL^f}^%un)|riPv1Te`p@Nm z9?Sm*&0#i*om7JeeEMt5<1UD&u_3NJ9i1IVpLwhVS>NB%-4X84eXQ-*Pvy)N$YX5n zGWx^dV(C7>n_}hf-f4+I}v9rw8Utg_+m?5ei-@LM1=^i5(R6zzQ3d3Nf1*|49` zXciL}tXr=M&aJq@+hNR9;sFzf@vTwbhJbfDVA9`8kwckbiRMS&Q-g@{0KVYg`^cPu zQH8i-?@t2TNlcZw=?Z9^RYlpY$(GvlcU4#y{n>d%igIv?sTg=Iv_i)YlCVs;Ck;+`aJAi{UF7+Gx!Fv-&4P;7hy#<|dBx;( ztl+pS-anjla=7z&ZI6S{i~$JrOig)aN4}0$`WxH103_}0)?^AyfabfwmK~U6f8p!- z%4^fdj(b%)|IwFn#8$swt@_N30|b4Td{IW8>7O)1pz(kBanbxxw}6e?@_!UoM^v!rY1f9aNSA6QUTwomT=vC1 zYdyKp?nlAXu>A?(Xg~I0-HR zf#e=tQ?+;Pv+F!X)qJ35tzOgJ%dY!(UoB{uktfdh zePmIdu0WrwGzpD&Yr2)hqHLj@dT|G@Jk3!Xe&sF zW>kD0|F^SW80Q1AKeL^;3V6YZI57gt05%j|2&2VS1j*8o2K*9~{Wk;&n9qLf(idcB zepY>JCMWsG2f&BKN+6XA3Q*x{2OJtyVX0v8mo@-G)Cyb! z+coQ8Fw1M$uLIw?LtD@hc;B~+nXOW?ljCv2+l4rQ%h~?VTu$FTm%}pD=7xzi{$wM{ z{LV$StLPd!q;XTrB33WzN7~u>?{lnpr+%l&!x+Q?;>wKB`kIk>y6 z0n%QekFVAuR(u1gG55}{>Zq?rPLuHp-tY7HzxZxzA2~IP7>?k8@u&hh1hw8^qwJy<8v(?8Z<@*Oz zsfV2odz+4DW|@l^>u99FY{t`YeS##^<@DAqoM;w+XF88^wGy$7-os$AAc;@(?&1nT zKbWnb0|d`+Clh%P-IF+(V*X}2122>=@zU-7xyN|HM86T`d&1GJ>(uBsS8!5JQj6w0 z3v#1*O*U2|;h2&48!|HgBR6xwm%|wa?ioiQDPbdmbYnhWXk=>x!80Ro_FYZb`Ar)z4@V&i@sk(_R1dC?3^b(pYEbg z*jZ$tP|4PN%^-Q0QN==E;b}a4njrW(SPv)t3H%fdxIZ){LJq) zdV=r-*{EO91YnE+_+)sp+L&VLM4@rc)pCUj8OcJCcRrXE{*FM(L%W$;CI!4H8P_eA zb{Q}dezy!zYFUO{HVIr`K+K1 zdO|0HDhN=`sI|uJW5(n^<1=!!I>m#8+O?(!L{GQACPhJ32p5nT*s~zs?f58w@s{em zUY+k$#I%%>#~ymL)le7#4csDCVjx zLP)z^M#od1EFppGM_(J-?`zEa9YR}bwAh6P8D@FDr%YL85ZzJ%5cddxviS^%4*;3d zzWD0hMx;D+i$mf!%L5Q7fLQvvP%eAROifKt6TVW@ieb!?zg`f&HN z1duJ1R0v&HaQl8xlClt{%_UJ%vi*91VUMKzFU;oTKDr8#;m~uX-8-<6Ee@Y}b@u3w zkPN;ApUdWe|iqY<SB?mfkoall*+@6p;z0@y!C*t7VA)U_Kje3cZ?j9}qk z%E-TKB)=7s3s~VIC|lx_64u2{>3GN4ITRn<qOi2(P34^#q)L zMC!xePsx)rb{3Px(An=?O>>>%E?494O{(^!4g#v***Zwo4aH#mA_))6cmH{h+k_Iw z-D${ee`iT@EOYz)AKax=MG#!WUY1l%vW57lYkcNkd77>Q)ck(kh3`Lef$GIt>U8t3 z6GM8qhXMFT5k`l=OCL=F@Hf9{n)TG@6F#iDc54gYAz!TUsmMRvZ|8xeMjw@DgnPg2 zi~3jor5+&P#7D}BEvJCLPhcqIbx>sbWLkFqAlPmwZ1?+=*4RBM6tVAQi;ZnlQ)WTY z^IUe5!CDf?5E?#v)l2^Rnlv5`5Q65H1!QCZ>?|oz^HX+y?=2}CPz-bD(gxTC86PfI zAKff_F{}imlzm{sWH2a0xQR`4(PgCJ7;sWN;SJ^!>U6;XG*A%hh4#f1Q@XjdZ8872 z=>67Gxg7qZ`R?H3m>E>~JrDQ&9t{}v@5Az%&LP{8-DF}1PB@|J#`EQW&n3nOc-s`) zM3Dm+XipAlVlxQ(|5hPRyvmNS9AWkjAME1k;ja)5GcwRRmB&CE#6%P-_(UoP2jY2{ zGG_F*u|%1B$};!1lT9rBb59I}c@j}BKOE_9m>}S418Q)>j<0ILUG7hd&g}Yn(Q?aq zz(;bobhp$J2Sxy}GKC!)X4aAyH$AtU07dgV6NnY*8Ow^L!!L%YIi`cT)D4#igBR%&>=LD$y57N_-Y-X)- zp}Suh4>V$OX`%?sEd$Jm2R_y&+uBXjic(z zi5QhSx^NqN6*B;+QS%<6Yz``acZ}Dx%3OV)Z(8Wn_^OJFsN{m(Fb|lQwAGnZSgYYG z??spzmBqRr>{nd=)~4yt(U*+N1vWL=&jWM=xd37+gsb3>f>oXLsr&JM#r@hAu$?Hg z-VXj+8HTI-WJDkMUfvnzxa@BnedMMaShw<}XxVTrxDB97jJ7X;TtDbPDa7q7!P8j@ z>Wi#xzc+iad~+9w^z(I=hsDqSs|TxVuE+W0?+rR@$6Z1S?qqU36+t8A_1=$YFRXS z=ODwT*Vsg~>o$S`MKJTP`LMYH{rucNEL3<`eK2tN>3?~cejj{N4|gmnRnoU$SDpry zRI8hWvM%VG&4(wsH!|>HG9mnBL*)cQgVPmvS_?H;0tQjUAX5)dO)jcb$Ie>T2Jz5D z8erP4hS`kzjgdJ-M*cMV>BuB$_L&WX6_^bFkU8cAv-oZZQSJ9GQ?sJK>7KtIa#M7n zTi>eG?Kfu0JuyW3KqQdJWcp3hz7ZjY_zIK~zJEI4-g=Uz}qiMflg#J{BV zvUj|Pg|_tJJGF@}T|mNMIkBX7GbKUk>IGo+_QC+8@aO8uH#SNO?*HULwagmIu(_ZG zO`uZHJgE#>I;=`Y?0$xV+ zaS&bDv2z0ChQvml58DG=rXbdfqv|VvK`#2wWf|EO0PibCV)+YgnWqu=L%^>3uNnt4 z_&vHqw%~%nhO?l9LpI!ykTS*B%c$|^el|{;!Rtq%TbD6MyEn~_XFvdiAL<*Zg?Re> z^wOh?W*f?wnB~%iYk$Ss5D_+Eza=n zQ1;tL&ENyD^DI8$zTj?g68oJnUk3!pF_)Aoyehp^U^8cip%Gqeg^~-^L!}#n0#|OV zw!Y5gm?D`bV$#4y&PuQ8c22j7f3K$Y-uX(9(?#YagR<_eqUKkPhHc%duqHW;B#5HF zC2;aBF)+`$ca~lNWKJo{`+ypYI)OwxSX7*b+@x(t(g$-WGhh@I3;!3Zr~ffola=`C z7nhDL^Nu1&QdmNLVo8k$IZi=dToswtin3|4)o$AXrj^cH|rFkFfg0b@Yt=xRUX5H3M%+)|rvBZ!3CM04mOuT!z%i<% z3^oh6O(5X2yfC_}qjm|NO_L$9d5*ibf5?c_5o!hGX*pqrB>{M9L!oXP*!SA<@_Wr{ zsqz{Pyk7w4snlcqNf0sFm=XYUb~^j3s6UW>TjpN`sYIW4(&-z4?(@_6L{0w5JU!uI z`x%m{^0u-YFN*VCXwC<^bOdW;`-=*vaG(QIr2?Vb-&xum`=pLAACYpWk^5XFAeLKl zcC^)db9La%v#`WmGX%{n=1)FLGvAYu4)dB#GHJi1dz-pF3%V_2um{WO^Ru!p31uo9 zC0)&vZ9nWd8nU=O@2)Jp?zSGLfoGoABECkwr~`OTT7Q3z2pa+p_V*FNtV7sze}BbbW5$253Ij;hJq&fpU23D#ddvt zg%x8sHmu|SIAN63Mo9WFBUt%m-3$v00r`g<2juz4827wYTofxdbaWB1Na}@$?Ca|< z3S1CR`S3yJ^n>Z79~RP|HQ&JD!K4Xs6KZ>UlZAT!d6 z19tg&a9hA(0=dVIkI?1ZKk5AD!GP3^kP&+~rF-70+))ln6(_8Yec7{sK$K;_dCz-2 zC$f;L`K?7Lp;p7{aLnLWgWl3n)fSH0Bmgd^hBZBrSo+)Fvs^6?)}H+t+RZKWuQ*u& zoM#CV0XhU|`eU#z$;s4(WuO{X>Ke@cpk(2rKD_lu2SXhy>15MY4K!|&wIN~Pei`c^ z#E_ZE{{mdL^#X3?ZhBzEg_pJ3hu(X?L9C&j{groN%sH*4V%qz)yScsfDdAn~Z^PB{&W4~j_7a#c+>weRbsCD!j()F1{{17!8MXlES7&p;>$#yBAlM=} zBT5=M4{N>BKMctT98uMT)$TFI9?UCXW64R$j_Vu1Pu#M9a-hw~ zl7i{%ySi!6Ub*>2f0-S*9F>S2T3ZF-aasmT&!S0{2lCGxQZ!>;ji5Ul1O3tv%8156zFkCwL5Zj_#5*1~13hQBOxfX3K6 z=D&4y1=w?2D4aF;JK0BGc4YubS0`yUl9Qc&VPwpGjk@zM0o1F1D01oJPN-zkCf^=T z3E<`gI(GBQO2qE@trEaj_==5}D)IZ9^1u9R;>_kPIg?-1U+)8zR%!GP5pL<1Z>U>{_7s#|sK#ee`6OAS;vOFB%O< zVMk&i{-gC4!{*$5*^qYfFow7S=m4f|Q2xLZaD)Kzbt;=2&$?VJAw?S-??2zSt$6nE zLI$5DC(u%!1S&zvz}j+mclT*PvmyPYXBx$KK{k)1;NMs-AgQm8a?W;W?mzlAnOC3N zCba@SPRtK~yF&&4cU+s`LyNHw?o@c-uChDn4stX!#@hl8xk3RN84gc(1jBzM9fqv$ zj%N&$(u^K7|Crwy_Y|dyZiEl@@9!U;d4NlQm9Aaw!7bdJoQ#}|oG)FPkM=7YOwGl) zB2M%a(2ymFvc@mY2&|3ZRn@Okx?LD)0{z~g%k4s3L)j}qvue?U`i%s*?XA&B)Q(V| zuA~`$OFHo_My=4`6&-QEZ$G_WtPSj^)x>3;5zvct+LUE|_@v1nabk2Sqb@P(8j7E( z$DuO%GP@+L+lBcyxA@HtPgjU6BMGf(q}{y4?w(dLvHcoOSv&3$CldLDUB2Ay)tRAN$KWY#No{CKr z1g(E#QhgB;GyU!5>jS~0FH3$e#0=j(9kLLqRH>wtFRzn?2iAZrIv*ru(+%zq;fbkH zsJz>Q&s_I)k!hRYhGAj4y?nv2M=GV8_2%sU`$cd=DE%I2<~qa(1vr+g2b;`Y`4U)VSOvLv zgb%H>8zF<1`faanFzNFzsEZnbkLgWx_P%m+4AgvmEGtg!)rkDEEGOMyPy?Eww%mU% z!EAgPMEK+Ig%(4J{f+d7k3uPG?`zRX_<3hi4MlF{N&Emmfx|WMIdc~?0A3-DZURMH zj~rLh2SiA1F25GNgbgf$?}DtG2cw{{9xspqn7?94d**0p|H}FDmircJ$&bw;4GTu= z#o-%Vy)SUfd<#v0!q%6TP|Jk;j(+8<4&bpwUN_twt;ik!2sAcJ??T{C=#)pZjQ1OF z@kLTrI5`OwJF+wUz^lhYwI@hE{T_o$*Cu#^dE~MZ3S9?vXvRT8^_)s6L z$!QD|rGHmnHo%jS&ZH~0y*pQZKoGy`JNck<{t;EBiye`rY1mrs(4&?*9Q-Pzx0`qz z37s)xCKBc({GNCZy0YuiSp^ttTY70zlSS0k)~X;wf@1CirB}#q^~=yhgTVWckgh@170r%`IGOXScsejQu}2iZf{Hm|An({?cNdiG1T5AJ5pwAo-TR*<7) zkkFCnGg--|c{)hf$4!L|IR-Zo7EAr(eDCoFq)=6;Jlj{gqkU9n!^^GIZx{Tx&`hvt z#Ys2b7o!&el{Zw0@-E>4Q582+T)`Mbt`(LQS4W_=C6FwIA(($ys`82-b7>!%)&x(f z{IqDwCGnO3c(;orBwD2Taq8Klr~&whb%4tx`Y~v431mKbCs_#6qNo&PR1?kq6hBER zUBz6>xO>VEyAATp2*{&|fJ?D2__NWJms_(JTb(Nah7;J)z$=E~rRGy3W$s6rR3Z@> z?HHV22Dz^+W-HF)nqOpezsb0Nl?yoORUf2~15r*F z%GGX|td@Wa9leWw0*g^`0j@w8)ovqU)8mJBDtaA9V`RZauAr{Rv`>;uZu;j(gw&=4qyK7}NU2072c@|t2s`+>wwn@jW zTLiKcr-nb&eqIyl=7NAqmTH5hzCVJkLX07rV2OkUDqy+sQ_Lc=2;P^*S1$e|d<{-} z>VR2i%Jb>ggZgFA8xe!cq5X)oRNMIDh3*STI$VB`!JR} zBoOApN1vt2oCCaR+LCyez*(GCDBX5;jCa{ac6LkRAtx>4>d*n)y0QEl5v%2UkW59K z(Lmy8G1Tf4wB}~-JlCwGS0zP9?;{Mt5AAp10;^-H#;sVn8g*khoCxDT2tIvEkgceG z$PE1c^{G-p*bNM8C`+P+TC$&IH zlPbe?Ftt*%W6N53_(MN2O3VIrAtdzluCR9Bz^Mu!NOjf;^LXp8Qi5ZbmTQXNH6Ztq z8CQ|uy)(W;W1m{ZJQ^0OXJLdF*aIaz^_g z@&Y_8gH|z3i=&s_;ehGhQun8}pdxraX$1@)^7R8=Qh;F5pMuVR6};fD7Mg?$@-z16 zRet^wi#^7>|8OlF>ycSv8c78#*Qp1hy-kIrYJvB(Tu$$25U~>>rf^9a>3ZTK;2#23>`FUbZT4iiCGm7xe1B-O^*9Cg1DCW6Dh*$-qv5%p24=1 zZF*gAgd%ls08pZi@~pZ>Yn8^M2m zJuSG`AbF$gyDi?L%Nn|whX(2i__RRrEJtd4QXO)`^RSF03g`E20V#kt?+fb*TzK12 zVhPFzF5+v8MDScbJ~#iVHbKJzOJI!d{itFQ{V!KvXCtD|l#^Cz@S4y-#cOEq;abF> zbK{jSkwL4KVxNlTv-IgQo&mq%ByD?&BKM`Le^zz9Pe(9sFGBC?W27KtGVP~>c8+^b z9;AjnURyQ5p=Ko1@z&)~8GOL;B810JXkDD0znOJFyX>u){)q~sN{~2XEv&A;(MZb8 zW!$gA_o&mg1qZ)aCZNlqZ{NwJil=pN3vg>LX%HFkqxB0~l&+okB_)!B3lg!|JRt2x zC8B(l&4-+}8B;~BnH*|o2oE{{H$xn4OX#*pfYQbN=k+=}3+H+_Y^vCe%NWPa|JIg`eSvB~U3163=8#yPe z%+l%SGKUz<`rxzJ?b6eVH|E=Qj{PKL%AYQSD?st}KV=_BF^8 z_Q-4|SY}}aHk~_^J$_gvUxnDw6W{*E?3pYg~mRVK`J{%V4EI7=$ zLCEYQB8NSKD)EJ@%7@@tn!wru-gj!gElxv!M0>@m5~Ms^pj;{)!OMlM{+xY6I!I#& zE9>!FdYO-@5rd_o(&EZFY{hD$VeI}Cxkzh0`RYjX1sehxNDI4oETg_r7wd1d*^sC>z7Ihrwul$9;svXpl8<{ zB8xFPlUZ~Mp^eM2pDiL3GHr%eLEr6%BZlc6_v)rjLJ1(7>k7lxY7@@27i@FGWBO_7 zc7}a4G8p>)*YwG78O~x-sT4lc1#Cx+AjB|2mEq}BXOq`LdBWb&BqfG+Jt9b;-j;!00GA}U^)U2>DMSna$Ef?~0f zFoDwQqeH`^CK(D*-q2gR7QbHk^HtkfYO1kVPkKyWo^OS8_-hFW4{}^lx8(ccs04p* znk*pED>eurZy$vZbe2;HSFIuLIJK2Gzs*O1IxZ#gOPB zv%Jnr(m`ighAY}y@cFa=C0l&si=i%UHu&Aa5kLP^U|$XNPhe9o8+}@MpKksEdCi@PWysHQ- zn3#^Ag#L`v=39kRcQL}|3}T|ITvjwl*tIkyzL$LDvb^Y7v!srm*m`)3InJ*H2j_v< zNjN*fgf{P=;nK^7rjlN<6g;NqPi_HTQh63c=JjRG>qRcUcIp?cfnx6mq8}@B>LN1u z5B0ya!@odfI1kVg1G!o1xICul$vEF|vv_FMrHWfiyzgR0UIrJzD$+-AP>Bd4ND@h> zzFUzF)5|U@u#(c%*3^H0*(C(mfzsb5mQPN-GIk} z!T2W_=y%=3gr|YvVOTFBx-1TQ)GMVh4|0ks^hRLm)Fr+7;P+8@3agNy_=KP z@qV0}@_&R2LA89|w#``7`MbY(zxICF#}BmD9g%Go`_8_c#XCZLGjh}JR8=R*qT&gi z>NOE=JCuk7kKWa<8MgaQQ=z@Bn;e-8SV6v;7(J_Zmd}ySb=>oc4Yq1nU{lZ^+HHoN zm6wec;f5!#a=ofDU3ePrtG%|z-$BaR3E@P0;eyI~;%tIKqbrdAqwtvhUEG);pPEFJ z0-__WvK6x0$wDoQ=_rev{t0oF{0-@j!u+!zqkfHPC##^H?D(A&=f%t+{@c)+MJMh8 z6OW9;z*FFVG`H~mA2cq2jWu(xGOZ>!O z=7+`5zJn?X#Tk7}dV9uS7aLRBU&T^eFgI|ejqUYUecGJp?k)f(wx;g2_`xr!Wg3$2 zrkndSEY^#HkoB>Me1l%8Jdc}GhiUSl;gW{K=uJHL`jQN6o6XG%Ouiq&A^2l$0Tx4o zvz42v3QcOPvrT%!2bhE2MK=@5Tgz=Xu?|~h?k1a|Gi^f`9EI|t)9K;oQ8bDLa`gw! zSRC&Ul(oI2Q1R)0Aco+L1#c{U#+@!kI#+lE&q=b^#GCLvAvp{o)^Pz8ZjsV z)(=yK_jRQWz}a|vJF;T@K=3DrGG1`wGZ{9x!JiLIBf&eXflX~jzecljPlTkF_lH!x z*kzHox9=E)KN|=DHCC$L*GNMQD04!hJzZ&JFPIn{Y=C}eJ@0RvZ$EX&mBrX|HD5_Y z*A~CB2_kfg_o9ZXucbjTD~+0HVBRu(F#k`hsew&bi%FNW4V1BSKH$`=O3|n__=0m> zt1NFAAM9LS?d)ubW400LplNEcO1<;xDS2`H=Z?Edj~hF;XMBlQ@l7&Io^XU%I%VlQ zL{SzF|6qLj*0^!tD`yk<+9N;Sgmg}o-6dIfh{|U|QWf&$-q6&m_I~!`fq?FIMD_Rw zUR_f!x?2+}7O8x=BUda`&MvN<#dh=D2`PdHhQfp0mod-}8L_~zYMDRiU zYv!DY3$*lQ3Y2TZX?2qA%(xRNMWsI=we_2-3`g?in8p^Cu~oCWL^tbo)>fSlWS=8B zVK$x}-YPWDhbvU#-Ko6YVl%99>i-hC0O7wX52&-QEA#eD4HyNxOZ|HP$u(gJ*e?JIPampOsD`? zy2{gTnRW~DxMl?7C(IvRE`d{zZQ*GwrcaBzt}SQJIYLtwOgn>d zuXSEfJt+T-Qral`X4W>>?h%;F83XDca&XkR$9Iin8%nU(4c~Iu6}Y%83^8CVKfy3` zj@uy^GezhO*J-qT}^o)2_j93zmt1idf7)G5Ej*T`Br z>k!D2{@@7-Lvy08OTRgp+M7Z|rxVpsSegzFC3wXUMK1GdX)@+VD)Z z>8o>T)tI%Y9KbeQ##fBxy+V=>P%c!%g^0MPB2FW=af@WN`(|G}8Nooe=_MsXKzbwx z6|!0XMr)GwYZp{V(LX-=e@rpv>V5cBD#D}>xfpR6hvo61q>5!tUfy!KD1 zwomz#$A;cE*ws_*4uuG8rOthQzrUz?_7Q@X%;ZRv;%TL9yGuNH?#Op#VYb*vO*(^h zk&3wU^}$9EG9?N3DH3M zog6uCJLWeZ1gjsEVMI4Pa)eS)V;Sbc&Zw%_G@pcZI+}IUfjbi&{ZTj{C3Kn{jYSnt zR4zL2Ew0bA+dv=6zE!bL*tprR81$AHh7D9n#KnL7Po;G6<(?6gTN9X6(1vHd{&TO<5v1ZeqrUxfvj6#IgtE5+cf2Dga;zoy5oPl^ z38|Bd&>dX_xYmbjH4lje4fX(4oHa4=46^57)NQ|`?m9|LSb=Z2>RDsA${SzuM+}iAm?dg4Y&rv~XVzZW+wkB2(W) z2kuoh(lsJTU=R_ASuQ%HgH~kf8wWvJuAa&oP?=DJM_M3Ui*I*KKU3i=eH4Gjoz{N5z^j+eZLxm{A*_ ztak3Cuup(YHe3!aTpc|2YMNoVP74WIt~;)8xK(9%SyKm(X4?0Tyu9#tM>jNj^T)L(Lhw8Y_M|S>>4OIWV{1!pP9%#gIuIK99>Z?JgmI#}3KV_|uVj z9|9^H$@<~`<2SJkz(BD6r`sO3u4AA_492{}{4|Y7_Ka6WtTDZ{32-d&Tj=sNKI77V ziOGt&TYEm&Q(5G;j-xb;C^@N1&$DxCrC~)8a^9P1imD+#_b19K z1Rt<{<7ktGlB{a#KiT}6)QQ~j4U{BRAPv8=wP^$pUtQg7;lAguF^xGhSPzHm77vHt zW|7wkWrEd*mwnn%iNcbO^#o|X@D-AqJP_r-V7b_L%|K&+&mVv5Si~ZtQN^hB)cXBX z`T%@wkAy*$43`(14{dQ-`yd^+GxmI9w%Dnu2ca%mW0kR-s|4}ZpB z@ZVvzPR{1OhkDafy2Ns7Lsj|dO^&lVkAWtC2qR+8-Ef(yjOF;gK*wger4uhozdrCp zj@tEYuip!-UNxiGu27#u3P%3wJT%{kFE7r$r*Ih(VAFW@bdf=c$Zu{Q1Gj41rys_k zFbR**e}5i6zZk#naQ=e{h3}QyFaofag#a;xVdShKS^sTEurJYuUw^f zhY{Yg@C8pIqECXBVYm9VJ(9A8j=I7qvd}b7Bec8xpSM0|HpMRZL$YNT zKeeYgL)W8gs$f%PD^cfnXY?pOP_1s=ASC*tH-ZYC1R#-HX%^E{gPuvbrt|sAs<}hl z)*pmcq%7a8It7ym!BdHI@00yhN7(6r7^ zIJpZ~(iP>xBp~Ei7w&{7 zGZl0u(+8#mzWpUM;1`YNi}{h(q^MmGU*;DLeWb5PyJ|m z{fI;~o4)OHY1UekK=b-k%40K=CY)q^mO7Zqu!$ccDo~MGM7TwOIO4GEFhQf&ZEK~vx$wPFk8*kW@GC`-1zJodnrz;D3uEE3c zC*1NF_+E1X?M`%ok1XmZlpHn_4)R~u@JS~!h2==5zVgsetAV$<+M9+9IIhsvJekYb z)=BPv)*k0KcTq|RFCd>JY)|m2lraJn$j&nvH=en?^6$4{t$1@Lzrysx3D^cL?u^&y z?>E$AH!tC6t>ABM$?eHq#^sxXSD~DG(=I@mGYJIXFG(N=z8-#|-+T2yXN)VHJu1Ap zx!3IPJHi7+w@3SKA<_I+O3{LPp!U0|YbN6j&B{%DGoQ828xvApd!}jn z&o4wr`vc(FSfXoXkI%r3zND{lZD`q$yD%HJw0>SflCUA>t@N#;u>Mpi4apRlx5ULs zKE_%X-->j^u-(_v6{Y0sR`KK5)|1bq<(amv%KHs>T(9WdmF4&b@njfs(2^)JX&wJN!M9l}nBiH?%3AuJ2qoTHE>W9i$ykvGo5~_<`v$qkie~KZdf(9cTws#=W9DS0aPAB3??}5cLi@W# z6Hk0`ZXqtV{aKaCKOOgmGcm)C5mzYcFt{to9dz;0>=Rob*ud3K4xD{!A(ga;@PUXm ziB{`NJISCh)UCQJOyo(J1L{}zD+jYER)`Il%gJK;I;r-)L+jICxb?K! zeS?piGBa%2jK_&>dAXsX6LLJrcVNKi>MlF6y@l6X^4m zBx@l|!MN`U`#zypbgRoW8a$YHtv_MuaO1%j0~B5T#Lc^=p-q)9-?#8ysf5mFJPfJ| zOgFwv=5!F8lV5EciM}aquP-UQ8Yr*SYi&bhdS>` z*ZY4Tk6Xs3`#NJ(VLMxvvY!@%x$wo%N` zk_#Omwqh&e#4Ge_NkTB<pc*gzI%+zOJWeQ&O>Y7 z2ltR1K+5U+^@O2)y?ficxnuzoCTn?nqS=NpX$$+jZ;#NkxdbOWvmV1MwmEIrQ&1v} zvNx8>wyaqU%sXe&3o*7N!kjb)cY|&2^K_F4@aoV8BUl_FS2>g}4raR!4$N(mb!?!0R^@ z16uJKBKjwajZVJ=Nh~K)-`9TuN784>tnlz{x3o8UX(-UZMQf)>22!77&mBWOWmIiyg=2h`)w+R7;6xAL;K<%%TPNv-=MbgOkr)~)b3 zmS^wTL+l&br^#&%2jPh5N)L$RI*{wVf&!^O^mj|8jKCyMn4b_erv&3VWyfoOU#|bz z!r#G7t3rDV+MUdoiU{?<5_PvP#91B>rQbQu3?EsGA_zF%Zl}mUY(9QM&Wn1bS;f2K zK#hD0x`z1$iJ;{^+R|35H)Fjsy;z@iI)gU`!)oa8csXn=3)cLjCZPOoDga1JEa zbF<+1QUdAh7~z3*XH&;Ux^kHgy$vdn$NIO) zY;$E2&WTuj4#DAtm&fS70dr|{nx1|oTG+UH$XJjaj&phZ-Tij2{-`ouil;UTv+?80 zCXoJ^)X#b_Hw^Gg1QVzp%KGcy+ZTb=p2KWuskotOnS!2QfC(0 zZ#AoQJZmS0yxMA{$f?Ogyhk1oj0WbS{>BQ<%@ffkFI57cHO)QkFPTwVxdXNd(MONp zzSAzztX8A@U>k4T?OwO{u-jI5BJyapjHj5f$Er=D!`G{+l$(WseSK0r?^$?q1yk`5 zEVFz0t^w6uAN#|HNL~HL2RXWP3pI1QS-Zq2cKEa!k^{$WwPp0-xo)fFLH26fZjxHg zi|%Q=L8s(?NP68pBhkgir6H#0CbW|_2;|0lO2ykb#Gmm^KUTwK_+er}dJo=r4?e+b zyX40<<_$zdFY4C|3S5->ai(1-B-9ZMohoV-e0IoQt|;8xuE$gJ^CaBwHzkI` z;sXfxKprE*YTIR(^yMQWKbB@sNBhbH4s<2e24U@olc?RvZXXMj!}HpdAL3DhPahqG z_IYuk5W<%t_zYUiJ)+RNnPvf-xRKlXWzxm+d37He(*y#z zhRa)uyPCFA6`>Dqj5#A~IVStDg8w78bpRQ{d8wFgg#4}l&h{v#KY||2z@YwnB-T>!$DMflE6hTs*5A` zmOW!C)A&J-7d#hN#+j6KwkOQz#{vOx{X@xd!z8A+vOXlPX9yl@a(t1wjd!nNotu$l zeUWd8K2o0I>);1^K6b+kA8~!yy`uu1Ia&DOTImmS1jBqIcopT!eOK#3i4h~kvp&zi z^r+oMrEmNa;HNj9>5k6@K>bpdiyXZ0W8c6X<1L}7!RuwEUCf)|+mUXvVg8)LgulH2 z`sigQQIj>Hswdv+R=$3X`DG=YO}L87WUCQ!Gw>=#C%4AHfRurCp^eXIFbMS9*xW52 z1&rL@o8riM$@Az=CZNi2XEaaV_Baq*dt{5o&1PI^5pGZH^q6GN>9L0orr92u%a`pf zZKK8{BW$O&Z}edKw-3^R*@8Gkq1J_jq?*NZ6Ne^5qKflw@~)km_qtj25JcRHsbm&H z*GOyi{irO-z?!y^gF+DGn#d#@;i)ImB!s~C5#MRrN%B#tt#OTUTv-0*#l zw@AGEF>7nd)07rGTHjoEcZ}1ex(CFmQpBdTCW7qOK(Xx&Y8a+AS^Hc%^`VxD_CZLI zJ#7O8^$Oq%I241!zd6t^?cxZHTiReSxvHbPTq&K@m&Aak4{6g!M z(3zuOxp&uXAqjBU5*&3=h4P|QvHsQU%F)CTz|M?!(HRw!c5>c58=(F9;2rCHEEEHM zuN%+3&mLp%QhGQoed(93u=(O6QDHi@tVO%?GP&%UmYT+2qv9@xu|r8Q#0T|Py3y;F z0`u%-T~Do=pu67*X2e_KL(Zl*KYVkib|Kf21nZo3_y&q~Z?LKi6Tn%Vu*)pQK@U&& zd;^0gfT3r#fx)H6l4W_a^+%d0rZv?noi3i;zTxAJ%3(Fj+Cj8^_NaUqY>LB*=k{*WG3#|Juasz5b1MKmLS3?_Xm%OHS+WYKY zX~lhiNg*6mMYzLju7ySP1SAWY9oD z0zrZVOMnDI2<|pGK?j%M?wa6%!6mr6ySoiDb9eII`~Khisr*<|1t+Y`uQrYkD5$DU1kNAf&x}=*=^QKNE;7v9>r-vlmSwo94>V9GZAl=YY|~<73Z%r1xKe_U=1kv zq!*7)*EonwJk2N32#WNXyli-(O>z^hQ>Lfk#imxhq2;NMNUp;#G$rp;PJw50Dk^$$ zyCcA0?Zw<58#`XVz1j-DGBHZ-qLsGwQLTQNCQMSj=@c+Jmi}{-MdxTJbOK&Cn^CR; zCoF_y5M zENHf*de_~3oOR##USH`U`A>C-w`aA~bZ1hqZpr(JdqBK%aF6T@4xM@z^AMj3FxvE8 z{v9iM9Z(PQQC}&)eeemvP&k@)=xAM!+AO4%l;w_K5K8ngwu_lrDciFzHp}|e@}3Ti z9_91{Vm(hxX5y3Kvh>N~rC6I<(oK>#TC#g+f!RYpO0ww7D~r|bRNL%q*JUh~Pj<~q z&%*uEh8fpkH%+&i9*5N&?S1}7=1D_&^ft}u>f)Sv8A~ID1~|moCIn-5XSTim7MUvsT`99=OWNL+t>Z6X@zqC7Ol??R$IfV4d9FD?t5{^7JuH zwHgJ*q+PTBA$uSd->Y0@VxsRswmfn0+A0N>5F3wkQqxIr4yb~1zO)QK0deRD8qWn^ZIZ1905tEQUedEw@Bb=N}*YH2uDt z50))~a(R#5beQ{Kt8eENqq$ms2IzxX;7HcdT9A4Puk4PJ~=jgm89#jmjjn1&9syuV&an}#joAeG9?Il9ctsA=ojn7 zPC*Il0_!ZNBhQLk>@!6TEdDyP9iLDgJbKjY&Gy&WH?Ymv2PPHxnU4lYs`)@Nc>z{cOLdYqGb63KkpewJe) z0n?!$BHBUf@piB~hF16h)>ggTBUj%(b zX6k{!a>K1@WHGJ)?5gVl7nT5Xg`q~QYBBeF@|O!NFXnDb_3)DX1ESTT{WY))jeP~% zmV_vY?Wbg%P3#-zyR#4IW-iX#L~(ojg35ybk6RS9fJy&i)?__JCj_nbZjqrr%>S_*K` zLD0OxvaM!CSs7TQQ0Q1C^f{*zw1TMNI`;81NpY#vT)GF{ZLGVlbXD7GL4ZC{4p&GN+mP`7V{ z{W!4f8Jtt0G_@}PT?+TizPK|uL6*Sg5V%?g|}cS z4a<-aP+6P)0`7J)RhJfHwAe2M4P|9wT~B;N7XV`~OP|}d5N7%g#an^9nu{DbWbyOa z?M51RCPd`I=e5>uS3#`*V?ze{2$=M>#YcOFMl1BIO8xSjiHtnj^UBc^SIeT<2EB;T z34z0~c$`n}$-j1oZp>vTOX^YwKHSMVtCf&Hc$xAlLg3YoMk3DRgB{*np33#xsNf*G zbsmlgsu%6t(PcDvgS8uX})(Vz6G5IkPk9B#k4uND%jlr~A`fmxggwX*@|y>AMM*!sNXai;Vo?r6yJC6kfKik`837DOL1dQVsKvvgX;D zjwaraQvI2zI=5BX20>TLH>ye4Pq=A!*aXH6Q7#4oOV1F0kdliZQ0MA~iJM1TD zd&oyl2&4@`-G?4C|GXiAx_k&aM5MNWf8JE4@_$?IYUo=Ay-Zbfv|#EwNuv^#e4=(! zzI!s_io)VYUH3rmZlJgyCE(4Z=!L6&Kh7mDa+H~et22Es4n4(bhIeh}{9$Y7c6jb# zUG93p(z<20QC26qj9;FjIfNY5=ckA_?LdA3NF1@O5&IRikXhgZl7m@Rln;JBwLaL1 z#E@Cu*{u5}5f|96Rk*=B!QdbudapPLFcWGZ_;$zM$oSSa*=?(X5b^V7A9r|e?Zm%> z<+oibikTFF2RPG(_rXhV*s91jM$!PTV~ux{dWh7GfcNC`VXe4o2lXo+y))p{Z*}?l zcEd@lo&q^HBNL}2=_J70c_6L=nk*mq^AGwwxiW&goo$csC+NGnaHH)lhMG$avKrBS z$V5Ujn;G>L<;j3c`BALB6C%Ux9XrqyWHK(K68P$8nl^o6} z`(`}l>Zycu5yNjXK}yF0F6$DGM;)Yz z#(q0gDt9;cY zbfx5=kP*eQT34fXJBxUh!X7qP%Tpt|-(`KJSsWkaHeR%n8#<0gFC1qf>j}qeC_35J z^z64&4<(X=-WiO3f%Sd}d2z$gk_Uf%D-WWpIon7)TwT94n{YnJQhjI0x zXJt-59>o`5s_*c}5;IG9l~By<)`++%duK2_Hu2F=))uv>!kZn(Nqo?1(Q^R7_z686 zZHv*GMmlhcQ>2yoU+fHLkL&4$9r3wzH+oxp@fu$}`zU9&J(x0i9WNBm`1}sHP$tO) z-q!;ITK>(E_3GdiCJKHGX>*;Gat#LG6rK2$bn_h+`SkL`Gdh_C@_3;awWDHVODdp1*)p8zDw{I_<+P| zmjuG;Oju9o4Ew@!O+DH;|9tF;(03aDQaG@(a;UiIS@~XgJ5)KSK&Vm%E5-t8gmZFt zJZr?%z6T~TDOq3}k3dmm%;dQfcztOlAAhII=fz`Ub)gyiY`Y5HY8c6PPOvJyO;1Kg zEWODzk433Qzyeyl%@nzRx9I*n@$<)|_IpO}-PR5ZQC_Btwc%;GQ!#o1a9ojg3*4~o z(A(oMwAVgw{Ix_>DXB7xK!#8XQ1~V_(P_i^aKJ&1>hzXmI}?RY{tD(HOyF)5;0X%& z(OomlSEZ1Hd=TP+SZve1ZcI~?+%o6!od986N$*X%v?A`FX13}YmMoz;M;%lmvjsH) zo`LwBf;T_Dw<WcsDy_R83qh6k!JO-Qh9*5cB9E1_Wb8O4o$1M$dj{ct;arVWuHI ziuc~1?3JcoahHxLHL@_7w>W88y_pZITXaxuIy`S(2KppHpZ~;Ym4Gj`8pwa+sJVZf z8eO^fuZm-xcKKZRbC2zCboJap-#CV)aCC>X%Q$~WYLECL}tas0J zcJgqATv?6ia7DebLEI2GrlLp>ItA?Z46V9)X_?cxeUN^>Q}%Ora$;T;F?Z7=({MBD z3K6G~{KOQsV2$qbZBlxbX$7#QeI6Jk0mFTV?oGFU7{XGh({_S$f598)>UQ`%>g}^` zshh=%*=#>|g@|B!8l&M{n;lm<<6&Q%`CCDm7OYk|r8QJj9WJiEy<93nSPXWgIlht{ z>(2@MrX2w@#J~SeuNX0^*Hh1xsFfnPTljQJ#~`sojp@P+{gYfmV?;3Fne7k=+KYS^ z`S|gu{Bj?f=Tymifh;3Lz%&{n1?C(Q9IrsIAvbNoL+M0`XD>q>+s#JtJ4jL(t~>jRQd?oh?PUIN?;$`8!)Z-Xuu8w%~rHMT%yE1Q^0n@T*(VlRX(jbdQzZF=vy+3q4-JigbR9MV&zt*S!^q`A? z>;nR_VNjpnSP3O&PoK!+ z!EM8{p^J5be_&Y%(9x=mAYbRv^_l1*rcgGlv>=l@<<&)*3@<&)E1D_G#o4h?c-r>^ zKE=XJfygwt9&!taSRhlj;K3I~u1UU5l)32iQ6y*w$iSJgUG6WR`Z-$dOzIqZfkgjn3O6cBGt7=a0e#a%_34f?e zg39LSK4#Bc3&cpO|4`x;ba7YLRqkeI@W9o9wWmIBWu64_ z-M5HZ%MX zlN|1!d}iW`7-~peV>kh*zfZjT(L_(Ps678m8f#ro{y`MKmB65R($TIt=wL-R6-ZkB*(ib*++Y5H;x}+Zf^}7-;^~%@~Er5 z^$)F5dag9@At)T1GYUu5L4;`G^Cb~*7N)Q`-bJ}LrE`{fj}M4DSXmg2T26<7;KsPZ zG>7+WlMiBRGPez+|D&)a8M!(4IQ?T z70BmYz%3*<(+aWH8^|Y;$v9!|FnA~a{S6sjckc+DAj=bkJz~S_AiyjIrGdPPcNB~x zBfY@iADM)333nlA@wvtw-$^>X{>1)fhl9866;bBRU+9*bb13cGfR}5W&pyNns|hgT zYz|bKw!lRAGWrH!2I3)&O#FRrK^20nr}dhg(1b{>yDJm7kG6L|G6uR!RlV;GUmdAQ zzMD(0Qsr&&e<2Mkx+a^=vbuUE?(oOO5{3E^KQ>s!EptY>5lb|m_8izLw3LpmX4g;f zIBdozTJfW_=4|?;;a5cyvQ=Zd)#5;fg>9{b;HkOO^c=ln+$$l@pv$$8%+c%+#?TT= zq{Eg=7G)+aBsb$0xBM+IB6FXX!60UQi@!Dqf}eI4jWaY8^d>Y!SlwcQmTNk_l6xZ;5tA zU?nwiqLk{2VOS;eGHEiSSDN-5{h#+gzc2eVm>hki?t3IE+<4^^3GwI&q_0oO)r!_fzV-ir2MPhj=N5?pvv$3G;OvnNh;% zx6jOWMlpYrzYfbfQ>h1SkUe+;(Ds-Zg3C8nB#}ahX~#0ir)xlR1@zYdpE*46*RBO- zAee)vqNt6^qtj@`yDu*9zFURbl`PV>n?m#J5yFVj@mAhP2CVbsEeuQZ-+|QsjF-)t$i)RdpZeb zclm~bM+jF!1?fgc+GnbW!@1O@rPV0CqrFSZ>kC+jCABwC1FkBKYs0J#jY6i&yI&DY zN@azdsD8ky!pxecsK^iHQ!fxSNXnkSKjx9D_W86~xIH7>Nrzvwehl|3n+I!&Z-0|h zXe9W=Yzd+x$xABvD&6eVqn2tTevb2c8pz`T-!jyEAi6#7fq;LMbO2=X*Oe{@>WM*}1i!jdIs^ATxf7_E5!mQv&y<&g**5qJ*qLuAwsf zrB6Y?pweXWzj(`|Q{Jrtf zm8;YS;U%MVb+-cw@J{Evw>WgqSijO96{s1yuds&&7u6uMQu+U3t9=@H^CU+jo(!Q4-{^`9|5O$A~W8mL{U z7yl5@4FCCTFr1T*(T`OMd=>w3aI5pJy(D=&|J9gl16q3A1iN~k0~KHm@EUop=22al zB`%v1z=&Jr>r4_#-mU(mBPg!MmT}l;dXFSxlnA1yVT(oi~tyhaaA> zpBtGDadV6lC`ftCBo0|HrqkdX{`Tc4%E5LVMic@nbq3{fsa(I}Owu=Rdxpv-~K^Uvo%F=1xBISZ|acL1{co zW>EF~8MNfWBY9_*oo6>PU-jc7LigEEC*IfD3#b^VJ6A1!d^pcD=0asUC87)|hNag1 zJnhYAkWaL9*_;2YM|dSbdR9* zTO#qU=u#|`Kh2rNOv)wcdUh>0D^ri2l(fRvYxZSLDU6O%Ak%M~n~I9vp#>ro8v^$d+tqnQ#cH6a%W5K3%U+?0mk4?qQc` zHH#)FnyeiaFn%cA`53~;BgGv;31*kNAg2g$*~ts^LD=SJyDoBy?v&>fL1bc&+v*xX zG_#taYdz?XzJsO#Aq033Jq4k)#B%`V3^3nN?@=+$3KY=6e9jNYj_(`6Bc6j7x+>)nlAI@_ersY`iau&~|6)BEr~bd4#7r`IzdrCCf@8|Tes40oKbyf@2O&-Y zO#!nfr)?OyT|hfBWI|0MwBpdSQRUcksy0jdsrw)xkOjPP66WpT)yZivBwV5%UYjb_ zm2AX9q0ZNwLX%ccx5B$qERiIwxJ};86JHj-)fc#*zB~*0VawyaaDal+3qD6^OAGEv zau-Zi7?6Y$Ks^A}UgD!w?jvrKct_^U&Y86x=RNEYWMxjs$bF`mEBm(xg*=QOdBWM$ zzz^D=0^R(;>p(00tC*66ZS*^sVP=M^fa>e_cGomWzB7hu46Iq~wJG(%C6iDu*!OzdlqjvTMzAHHC+4pD8lP*+G#&wil*hGd}j&tQE1 zBr)o?FL9Q$&&CHTeTl#dS&py0w%nmv0#T6UlQ2ouJi4@>Xaov48j_dy(k_*_jEm$= zXWPj2h8@jh;H+U+({7ke7<-xwzxq_C*y_y+kWd?aE0dsWKUQB#A$_;0w;xJUSdMu2 z{9|!ai+jaiq_{O>`B)y$t$OxJiNKGv=VrC<^NlJmKO)xtQ(8Qn-E|Zfl3@ z6;J_uBUxD;im@G~cu)zgW`rm24h$m=96;W<2y#~eN4-{4tg9~KAE9xDIr#I#>HNJ$ zPGdpx5XNdBPC~LFrV3Q>87f9r)^i-E7*Z3F_I3*4M|TqKYkcD&s56cN3&*4o{ zgLuW0eM*5(lvf2&^uwg{c(WdT2BeMbaKY8*i7UlYM>SvF-(N2a!VWJ+o|*0_Tuzz zV^;o<)I)N6A7^1tY{QC!;rUg!T<3A2eUW-cpVxRt#N5xWFQw&=%&S=M?=uMoqb9H_ zhjNDO;gOgTz+R1|-HRxsgSfPR`l+Gr*KfSQ96W|S3Pm{lO-(B0^N5mn@>9K>^nsHI zNzp$Oo+mAQjHTF&1Y?~nAzBEJ`%sT7rL|5i+@G+dxsnL4so@*p)7~l??FEUQD#wQA zEUJrHGxfJ8;dZ)MqSndC{suSio%DfbukU4956GA%p{Du!#vt%+ld$t9xe#zm7WHMm zzE!+-2>1tE*wU1)e+dFie;=YILByChj1~1QTOGyUqq+z_+oCj)V8o#OeyZ{9<&Wok zO7ou=zA1sgMbBlU{AYd}+SpWntDpNZ3+Wl(6nioF*!r7I zm?7-%Rek#V=}@LVM;esx5l7I(;Q9r&@nnf%IYktx6P-$2k?YUTE0={;+`5xZJ>em$ zedv-4YV{jz(DgtA6gF){Z&+u%tGeUVK}=*Gic%8E2x#=GCVa6XcZrF5_SE8D@?#z{ z)DB;>)P}0hyLiN;bG z_E7BW9hiv+r&qwy2fL=Lt{)wq5KR*q77g!c7cO0Xo7KQs! z9Q<&)(8S6wtwu9|QWi!`w1Q8nndgVZL}^!Q^DU=2Ym&XlA~&={)SXh>w) zHuE24&WT=%BJnf#tcfTaH~Tqi^JBzaaHVMj(ObwDC710{PODq)z2B#yXejep7ITt+ zI4h0drYK6lCVl5xik>7UN+|igw?nlE%|gi{N#4sCtVrUAsRNOHhp3G<#&Lm2NG{6J zpD#=_p=O3Mzc=yw7x_Zb{q` zqcv-9r!4Lec82J#aBYwqq)O;iXLw|-D>K}$>4!-ubIrG}5j>d(!*?L(mv|a+C`x z?FV<9Xu@hZc{0i)D_e3)MDs7BVMr8e%V7>4ZW9d-lieYeH?|T5OoNAPQ~m+2?K}_z zbM!Am!CUu9ko`S05yb7@GL?wJH$}NrwrM@>QcX2hO2Jf#qOqUeU_nxW#0^h0qPsZ5;zV)?_% zs|kMWg=R#PBz0j!KwS2z=h7}DSc~mf8qRl;^`b&9m~l|VpW=LTJ%y#F+P&Jw3rij^ z!^NE6TD}Wi9lHW%p9;gQdaAFA>1hg9Tr5>&m?j8let!++TTf(Z$hj8tu>lA?okBp) zz9s$UU$!-85`A{>GDGXFw*OrQW-@n|Hm|I?{gio7knJ=w7D8Kni&ih-8^SW zKwc2K>@AcV7eo47w)DHoTE4nxdx^b28W`911k{VnH%+SC1Vp|r& zL)T11;gC~dS5T!oxPTRkonUe|Ik=>EuYTP!>eLICVo~%}%n&~c&;zPbh={)GBLnXcrQE$8n&9_%Qc z4{;Y{LJXTqMjkhm<_PjOw{Ldj;$EXz0wrxB#xiOQjI=1u2gpZ)6%u1mlK;pLNrDBS zWM)zKD6nR#ZD4y(01}QoeahOZz2`BxRo$yR@!oK<+u1IqYWzLAYvQjwf~HIeBZGmY zR8EmhruP}!)xLMkVU`|?iHDu~w8$_|-BYCyItNlC&vzze`$?bMi{Gl4cwZ5re6#~D zQOfuqO7a50p{%3Mc4oN#V&tpNgviXYidiO22%l^##Mo{Y;YVo|DP3x|GwiJ0IL&}!2y6SW!`O!+=#gUo7zfsaGCKY-JZdpUf;lg;&e%10 zKdFRA&h@_Huj%HjQGGFqE4YhMnKS!pDuE`vS9ou=3V&!tu zc&@sXAN1m?@~V!buHfrh+!*ps!Yp?eYd8nox6q$GumP+!ygHt@;n>y#IO@t1T}|; zp4>B(lcd-xx>ajP?McFnJ0f7yDZwnwVMGlg1rv`l+%I&kS44p)6O1WWzjM%;2)lRPB}A1$gq^vMh^D2x16 z@$I&!DcE>)l)<8IXO-Uz2M!`tb1ClIud`E9+kxIdvL5>G9Ds z3fOvdd#V9{G=buZOaA2w~+86m(CPV+V%=M zA5}1`zfXJEZpc#tXrR0NymOLKvGv>$v(kO;j!2v7SRM(oY5mAG>1ASxUOXoonK{FY zB#t+CkI5ba$*bpI>Cr<%(8>&3Vo{6~^zVZk0vP^@Qcs4>@j>rLpIJJ*tSkr{vi9`GvGK& zMAwiHC9A$Plb=VmPg<@B)Bnhj#fzhvm_zNz`Q^2WC#purU)X{Fo`G(1OZMLy^n-oW zwC~%0&k)c=r=lPBc`!dufcc0SgL`<4hV*}Ac$;FhiT4=t|DJ(( z-+}3WJd^TQ*{A=WLC)y^q!I2w*UKk2*W8W7u;nwiL+S;4(x=IcJ>CX?oYa#&gV0HS zlgf6)$O$`nn_KV9^<{Uyp=!p7`9mG9qQ}w_-uoAbsaB7cS)O z&L;HZ%@7sH`Dy}mp+x~u9x~Q^=6$G@-=iyO*VhFz$)eXjdkoV4!;FH3^YSj37x%~F+up%m6w#iA1922nw!_R@pQY+O?3?a8srX6*) z6f!X!YAFx;x8a;{+=b{3doY~J1d=SBfh)q?K7Gc*S;-4*`1gRmPztx6_EiYJ=K$is z4qgfyptwbn**l9N&(Fq2NRehEATjdn=;;Yx#;&_>`3#sf?_k7poc=yj=P`dt=}hLQ zyqOgh^jBuDv{i00RZ!n!P#r}R@S;@Kv#OiKRngN1g@S zN;LsaK=pgKP$ZccRwhW|u~HWc*YE=onDk7MM189vLb`?|@n}J~FqAF0T?j*`@A-BL zDxP0M@i^Ii@C&%!$R#cPU1;dYhI1V%RfYbeK#%Ir+l@I_FRz&Ki8F4QfG9zLvp6^$+~O@q2)U9k6Op>Z8O2B(}+6-Fp__{1^zT0 z97#Z92KGLms$agnCjo+A%taNEP8#iJ`AM`M2rPqSVFW_R30H=Zr3?Pq*HkCQ&oFo7 zOtHx9nO{Ee3&syi#g}7a6y|?O8LLfdS(MdKOsah@hw(QV>whLszNDfQMg=K-ArN6Q zdtc~tM#+eTgOQonD=R{RKZDGt%lH#Ge3|@Q|I;l0?+k}+O6o&L;0%rV*O4A7mZd1t3T)T8&avMvxJUp4b#PFGiA=zxxmy`>tU63^aj}OW&ySFnlNv|qQ?2*8arC&RY z0Ef@mIjBNcMhboox>qFu`ZMn#7V)H&LOuZE=w$h7T6lQky^4n%XTMW%?mFd>ruWfAr0qv!hUc zB$0$s@FCHzLxO;nt~N3w5F0H@eg{eVIP81iIa*-|N;3PAz3W_={7561pX^_&xkb^ z0x#nq*gg;9l9ET?DV|0Y-mCwW_RD0y1XPsq+$R1RZV;#@v=ps?Rj!aPHlQe*r5sCh z3-+F(VhygcXiIjR@LF=K&lWT^#bOs=>t&i57Q5R}3NL4bs?_CbOK86dd&z`*@{PEk zenm4IIG??6QOWp0Zo%%?;hBnYY|JBb%&+$*%#l6oba~r%;cUjb(dXYTu-O3*B_4!q z7QeLr{OIZLdWlsR`;DOyx8NXhxYl~5@3gCDpVNy%q@DI9T<9jplHOWcsMy zi=Nae3D`qUpvDHoNk!h@nlh^5uoI8boUr`;?CRdt%t7T$ zW*MnGx)FbHHR!@&rj<*XQU#_u>vVZq!!Vb+>Kb=TPa-K}L{7Aq3+?eiT2 z_68~U1I=#4ZAPWRg%eN)_J^_VY>M#I;41_VF%-hdo;R>qmO zGKg#_D8s`(6gO#enN(b&dpf@6dt2jeax2~u^MFU%6I;^ zt9}JBA2D!7h&^7s!DQT$32oL9x{UVNe2v|PZ}8$xo^`J??ouhWhl;er_XkxSi5g^_ z3-5faamJ~#MIEwFgsO#-epGB_Mf8u z(^mf(4F7y_>P<$g)Zv+fo|e9-7jGj=mwW~6fDc&ZN;!u%NIyJte_~j#O3`hDiXzS> za^2C2;^n=0&{A=Gwz&RhmYMqvJqS7Vrxbbbiu@)wXp3DvOPqC3dBA65!w&Q)d3=$T z2;-Yhe*Eq=Kj2IhHu&8Ltg05B8sCC^D`NzPi|N$#m~VA+M%{WKA{qWl&=Vgd<5!fJ zxybysosnB~ler9r!EK$wWq{oak_EmVh2d)SKN?=uy;RT@AU@5VSozUC!UPJWsy?$a z1zq3a%qyRODop|E`X5xFm~GTFYX_`J3)czqrS_bbe9Z7D3MJe8(vJ$6cmDbOa;bi> zly=IV$-=HmWAe0reMc*?npmk)Lu=uw)$VQUr3l-gArc`8B$D%azKmBGOR2}QCKqu+ zI3wn!bJ^O@_pW*;9&LwwurbRKvL%>BW%`G-M~Tz}>V?$qzxvV6g1ikiW((l
    @8NJ6s~5GVAe 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

    O6#{T>Au#%TrN#KG|}$ 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 QtIq%gp00i_>zopr06rb5XaE2J diff --git a/static/img/pipelines/security/ORG_REPO_ADMIN_TOKEN.png b/static/img/pipelines/security/ORG_REPO_ADMIN_TOKEN.png deleted file mode 100644 index 0429b13a5ed5faeedb5231973c494b6e6cdb867c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47926 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

    UokS?=+8z32Ll*#eExauvim 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 Date: Fri, 10 Oct 2025 12:29:15 -0600 Subject: [PATCH 19/37] Add Gitlab pipelines v1 to v2 upgrade docs (#2806) * WIP migration guide * More WIP * More WIP guide * Updates * Fix broken links * Update migration doc with fallback token permissions * Fix formatting * Fix lint * Add Gitlab pipelines v1 to v2 upgrade docs --------- Co-authored-by: Lewis Christie --- .../installation/viamachineusers.mdx | 2 +- .../upgrading-gitlab-v1-to-v2.md | 107 ++++++++++++++++++ sidebars/docs.js | 5 + 3 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 docs/2.0/docs/pipelines/previous-versions/upgrading-gitlab-v1-to-v2.md diff --git a/docs/2.0/docs/pipelines/installation/viamachineusers.mdx b/docs/2.0/docs/pipelines/installation/viamachineusers.mdx index b46dac433e..4e897f8cd4 100644 --- a/docs/2.0/docs/pipelines/installation/viamachineusers.mdx +++ b/docs/2.0/docs/pipelines/installation/viamachineusers.mdx @@ -273,7 +273,7 @@ Invite `ci-user-read-only` to your `infrastructure-live-root` repository with re **Checklist:** - + **Create a token for ci-read-only-user** diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-gitlab-v1-to-v2.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-gitlab-v1-to-v2.md new file mode 100644 index 0000000000..92ee3b6918 --- /dev/null +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-gitlab-v1-to-v2.md @@ -0,0 +1,107 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Upgrading Pipelines GitLab Workflows From v1 to v2 + +To upgrade Pipelines from v1 to v2, perform the following changes in each +repository that includes the Gruntwork Pipelines Workflows. + +## Updating Terragrunt Version + +The minimum supported Terragrunt version in v4 is **0.86.3**. + +In `.mise.toml` in the root of the repository, update the `terragrunt` version e.g. + +``` +terragrunt = "0.86.3" +``` + +See the [Terragrunt Release Notes](https://github.com/gruntwork-io/terragrunt/releases) +for detailed information on the changes to Terragrunt. + +:::note Progress Checklist + +- [ ] Terragrunt Version Updated + +::: + +## Pipelines Workflow + +In your infrastructure-live repository, replace the contents of the v1 `.gitlab-ci.yml` file with the v2 `.gitlab-ci.yml`. See the v1 and v2 content below. + +### Change Summary + +- Spec inputs added to allow running Drift Detection and Unlock Unit workflows +- Pipelines Workflow job updated to reference `@v2` + + + + +```yaml title=".gitlab-ci.yml" +spec: + inputs: + pipelines_workflow: + default: "infrachanges" + options: ["infrachanges", "drift-detection", "unlock-unit", "unlock-all"] + pipelines_drift_detection_filter: + type: string + description: "[drift-detection] Limit drift detection to units matching filter https://docs.gruntwork.io/2.0/docs/pipelines/guides/running-drift-detection#drift-detection-filter" + default: "" + pipelines_drift_detection_branch: + type: string + description: "[drift-detection] The branch name used for drift remediation MRs" + default: "drift-detection" + pipelines_unlock_unit_path: + type: string + description: "[unlock-unit] Path to the Terragrunt Unit directory where the lock is held (everything up to but not including terragrunt.hcl)" + default: "" + pipelines_unlock_unit_lock_id: + type: string + description: "[unlock-unit] The ID of the lock, usually a GUID. This is generally found in the console output when Terraform/OpenTofu command fails due to a timeout waiting to acquire a lock" + default: "" + pipelines_unlock_unit_stack_path: + type: string + description: "[unlock-unit] Path to a Terragrunt Stack directory (everything up to but not including terragrunt.stack.hcl) that generates content required to run unlock in a specified Terragrunt Unit" + default: "" +--- +workflow: + name: GruntworkPipelines + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + +include: + - component: gitlab.com/gruntwork-io/pipelines-workflows/pipelines@v2 + inputs: + pipelines_workflow: $[[ inputs.pipelines_workflow ]] + pipelines_drift_detection_filter: $[[ inputs.pipelines_drift_detection_filter ]] + pipelines_drift_detection_branch: $[[ inputs.pipelines_drift_detection_branch ]] + pipelines_unlock_unit_path: $[[ inputs.pipelines_unlock_unit_path ]] + pipelines_unlock_unit_lock_id: $[[ inputs.pipelines_unlock_unit_lock_id ]] + pipelines_unlock_unit_stack_path: $[[ inputs.pipelines_unlock_unit_stack_path ]] + +variables: + GIT_DEPTH: 0 + +``` + + + + +```yaml title=".gitlab-ci.yml-v1" +workflow: + name: GruntworkPipelines + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + +include: + - component: gitlab.com/gruntwork-io/pipelines-workflows/pipelines@v1 + +variables: + GIT_DEPTH: 0 + +``` + + + diff --git a/sidebars/docs.js b/sidebars/docs.js index ffa22970e6..f74e270c04 100644 --- a/sidebars/docs.js +++ b/sidebars/docs.js @@ -414,6 +414,11 @@ const sidebar = [ type: "doc", id: "2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4", }, + { + label: "Upgrading from Pipelines GitLab Workflows v1 to v2", + type: "doc", + id: "2.0/docs/pipelines/previous-versions/upgrading-gitlab-v1-to-v2", + }, { label: "Upgrading from Infrastructure-Pipelines", type: "doc", From 841ef20f84853d95ca87f1b501876e6cf22ca9d9 Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Fri, 10 Oct 2025 17:02:00 -0400 Subject: [PATCH 20/37] fix: Add callout for permissions of tutorial (#2809) * fix: Adding some basic fixes for AWS first infra change docs * docs: Adding permissions callout for AWS and Azure * docs: Adding callout for permissions that are required for tutorials --- ...loud.md => deploying-to-aws-gov-cloud.mdx} | 1 + ...oying-your-first-infrastructure-change.mdx | 24 ++++++++++++++++++- .../tutorials/destroying-infrastructure.mdx | 22 +++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) rename docs/2.0/docs/pipelines/tutorials/{deploying-to-aws-gov-cloud.md => deploying-to-aws-gov-cloud.mdx} (99%) diff --git a/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md b/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.mdx similarity index 99% rename from docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md rename to docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.mdx index 40f916d472..7b2f7ca079 100644 --- a/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.md +++ b/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.mdx @@ -5,6 +5,7 @@ import Tabs from "@theme/Tabs" import TabItem from "@theme/TabItem" In this tutorial, we will guide you through deploying an AWS S3 bucket to AWS GovCloud using Gruntwork Pipelines. + ## What you'll get By the end of this tutorial, you will have: diff --git a/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx b/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx index e3af1b4857..4b4e7acaf5 100644 --- a/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx +++ b/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx @@ -31,6 +31,18 @@ This section covers creating a cloud storage resource using Pipelines and GitOps +:::caution Permissions Required + +By default, Pipelines is configured with the permissions needed to complete this tutorial. However, depending on your specific setup, you may need to adjust the IAM roles used by Pipelines to ensure they have the necessary permissions. + +The default Pipelines role has permissions to create S3 buckets with names that start with `test-pipelines-`. If you want to use a different bucket name, you may need to update the IAM policy accordingly. + +:::tip +The default `bootstrap` Terragrunt stack provided in the installation guide includes `plan_iam_policy` and `apply_iam_policy` values that can be configured to adjust the permissions granted to Pipelines. +::: + +::: + 1. Create the folder structure for the new S3 bucket in your environment. Replace with the account name you are deploying to and with the AWS region where the S3 bucket will be deployed. ```bash @@ -59,7 +71,7 @@ This section covers creating a cloud storage resource using Pipelines and GitOps } include "root" { - path = find_in_parent_folders() + path = find_in_parent_folders("root.hcl") } inputs = { @@ -70,6 +82,16 @@ This section covers creating a cloud storage resource using Pipelines and GitOps +:::caution Permissions Required + +By default, Pipelines is configured with the permissions needed to complete this tutorial. However, depending on your specific setup, you may need to adjust the role used by Pipelines to ensure it has the appropriate permissions to create Resource Groups and Storage Accounts in your subscription. + +:::tip +The default `bootstrap` Terragrunt stack provided in the installation guide includes `plan_custom_role_actions` and `apply_custom_role_actions` values that can be configured to adjust the permissions granted to Pipelines. +::: + +::: + 1. Create the folder structure for the new Resource Group and Storage Account in your environment. Replace with the subscription name you are deploying to, with the Azure location where the resources will be deployed, and with your desired resource group name. ```bash diff --git a/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx b/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx index dc7c861178..00265d9367 100644 --- a/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx +++ b/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx @@ -30,6 +30,18 @@ This section explains how to destroy cloud resources using Pipelines and GitOps +:::caution Permissions Required + +By default, Pipelines is configured with the permissions needed to complete this tutorial. However, depending on your specific setup, you may need to adjust the IAM roles used by Pipelines to ensure they have the necessary permissions to destroy resources. + +The default Pipelines role has permissions to delete S3 buckets with names that start with `test-pipelines-`. If you're destroying resources with different naming conventions, you may need to update the IAM policy accordingly. + +:::tip +The default `bootstrap` Terragrunt stack provided in the installation guide includes `plan_iam_policy` and `apply_iam_policy` values that can be configured to adjust the permissions granted to Pipelines. +::: + +::: + 1. Remove the folder containing the infrastructure code for the resource you want to destroy. For the S3 bucket example, delete the folder containing the S3 bucket code. Replace and with the appropriate values. ```bash @@ -41,6 +53,16 @@ This section explains how to destroy cloud resources using Pipelines and GitOps +:::caution Permissions Required + +By default, Pipelines is configured with the permissions needed to complete this tutorial. However, depending on your specific setup, you may need to adjust the role used by Pipelines to ensure it has the appropriate permissions to delete Resource Groups and Storage Accounts in your subscription. + +:::tip +The default `bootstrap` Terragrunt stack provided in the installation guide includes `plan_custom_role_actions` and `apply_custom_role_actions` values that can be configured to adjust the permissions granted to Pipelines. +::: + +::: + 1. Remove the folder containing the infrastructure code for the resources you want to destroy. For the Resource Group and Storage Account example, delete the folder containing all the resource group code. Replace , , and with the appropriate values. ```bash From a4d0970c80264b70352870243bf313c7d703ed1d Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Fri, 10 Oct 2025 17:11:04 -0400 Subject: [PATCH 21/37] fix: Including `--backend-bootstrap` to instructions for initial plan in AWS (#2808) --- .../pipelines/installation/addingexistinggitlabrepo.mdx | 4 +++- docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx | 4 +++- docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx | 5 +++-- docs/2.0/docs/pipelines/installation/addingnewrepo.mdx | 6 ++++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx b/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx index c1f2af5c26..c1259bcbfc 100644 --- a/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addingexistinggitlabrepo.mdx @@ -352,13 +352,15 @@ For each account you want to bootstrap, you'll need to run the following command First, make sure that everything is set up correctly by running a plan in the `bootstrap` directory in `name-of-account/_global` where `name-of-account` is the name of the AWS account you want to bootstrap. ```bash title="name-of-account/_global/bootstrap" -terragrunt run --all --non-interactive --provider-cache plan +terragrunt run --all --non-interactive --provider-cache --backend-bootstrap plan ``` :::tip We're using the `--provider-cache` flag here to ensure that we don't re-download the AWS provider on every run by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). +We're using the `--backend-bootstrap` flag here to tell Terragrunt to bootstrap the OpenTofu backend automatically for the account. + ::: Next, apply the changes to your account. diff --git a/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx b/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx index 5078e7e77c..a0ed00401a 100644 --- a/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addingexistingrepo.mdx @@ -321,13 +321,15 @@ For each account you want to bootstrap, you'll need to run the following command First, make sure that everything is set up correctly by running a plan in the `bootstrap` directory in `name-of-account/_global` where `name-of-account` is the name of the AWS account you want to bootstrap. ```bash title="name-of-account/_global/bootstrap" -terragrunt run --all --non-interactive --provider-cache plan +terragrunt run --all --non-interactive --provider-cache --backend-bootstrap plan ``` :::tip We're using the `--provider-cache` flag here to ensure that we don't re-download the AWS provider on every run by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). +We're using the `--backend-bootstrap` flag here to tell Terragrunt to bootstrap the OpenTofu backend automatically for the account. + ::: Next, apply the changes to your account. diff --git a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx index 363746c737..7871dd8e09 100644 --- a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx @@ -234,13 +234,14 @@ You can follow the documentation [here](https://search.opentofu.org/provider/has First, make sure that everything is set up correctly by running a plan in the `bootstrap` directory in `name-of-account/_global` where `name-of-account` is the name of the first AWS account you want to bootstrap. ```bash title="name-of-account/_global/bootstrap" -terragrunt run --all --non-interactive --provider-cache plan +terragrunt run --all --non-interactive --provider-cache --backend-bootstrap plan ``` :::tip We're using the `--provider-cache` flag here to ensure that we don't re-download the AWS provider on every run by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). +We're using the `--backend-bootstrap` flag here to tell Terragrunt to bootstrap the OpenTofu backend automatically for the account. ::: :::note Progress Checklist @@ -351,7 +352,7 @@ For each account you want to bootstrap, you'll need to run the following command ```bash cd /_global/bootstrap -terragrunt run --all --non-interactive --provider-cache plan +terragrunt run --all --non-interactive --provider-cache --backend-bootstrap plan terragrunt run --all --non-interactive --provider-cache apply ``` diff --git a/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx b/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx index 1db7c8a970..b3b0ab10a1 100644 --- a/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx @@ -206,13 +206,15 @@ You can follow the documentation [here](https://search.opentofu.org/provider/has First, make sure that everything is set up correctly by running a plan in the `bootstrap` directory in `name-of-account/_global` where `name-of-account` is the name of the first AWS account you want to bootstrap. ```bash title="name-of-account/_global/bootstrap" -terragrunt run --all --non-interactive --provider-cache plan +terragrunt run --all --non-interactive --provider-cache --backend-bootstrap plan ``` :::tip We're using the `--provider-cache` flag here to ensure that we don't re-download the AWS provider on every run by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). +We're using the `--backend-bootstrap` flag here to tell Terragrunt to bootstrap the OpenTofu backend automatically for the account. + ::: :::note Progress Checklist @@ -321,7 +323,7 @@ For each account you want to bootstrap, you'll need to run the following command ```bash cd /_global/bootstrap -terragrunt run --all --non-interactive --provider-cache plan +terragrunt run --all --non-interactive --provider-cache --backend-bootstrap plan terragrunt run --all --non-interactive --provider-cache apply ``` From 59a9b0c0f691662a484b650aed54a196e927383b Mon Sep 17 00:00:00 2001 From: Yousif Akbar <11247449+yhakbar@users.noreply.github.com> Date: Fri, 10 Oct 2025 17:32:28 -0400 Subject: [PATCH 22/37] feat: Adding GitLab Azure support (#2807) * feat: Adding GitLab Azure support * Update docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx Co-authored-by: Oreoluwa Agunbiade <21035422+oredavids@users.noreply.github.com> * Update docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx Co-authored-by: Oreoluwa Agunbiade <21035422+oredavids@users.noreply.github.com> * Update docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx Co-authored-by: Oreoluwa Agunbiade <21035422+oredavids@users.noreply.github.com> * Update docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx Co-authored-by: Oreoluwa Agunbiade <21035422+oredavids@users.noreply.github.com> --------- Co-authored-by: Oreoluwa Agunbiade <21035422+oredavids@users.noreply.github.com> --- .../installation/addinggitlabrepo.mdx | 625 +++++++++++++++++- 1 file changed, 623 insertions(+), 2 deletions(-) diff --git a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx index 7871dd8e09..ecb1b06152 100644 --- a/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addinggitlabrepo.mdx @@ -107,6 +107,9 @@ mise ls-remote boilerplate ### Cloud-specific bootstrap instructions + + + The resources that you need provisioned in AWS to start managing resources with Pipelines are: 1. An OpenID Connect (OIDC) provider @@ -203,7 +206,7 @@ boilerplate \ :::note Progress Checklist - + ::: @@ -215,7 +218,7 @@ mise install :::note Progress Checklist - + ::: {/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} @@ -363,6 +366,624 @@ terragrunt run --all --non-interactive --provider-cache apply ::: + + + +The resources that you need provisioned in Azure to start managing resources with Pipelines are: + +1. An Azure Resource Group for OpenTofu state resources + 1. An Azure Storage Account in that resource group for OpenTofu state storage + 1. An Azure Storage Container in that storage account for OpenTofu state storage +2. An Entra ID Application to use for Pipelines plans + 1. A Flexible Federated Identity Credential for the application to authenticate with your project on any branch + 2. A Service Principal for the application to be used in role assignments + 1. A role assignment for the service principal to access the Azure subscription + 2. A role assignment for the service principal to access the Azure Storage Account +3. An Entra ID Application to use for Pipelines applies + 1. A Federated Identity Credential for the application to authenticate with your project on the deploy branch + 2. A Service Principal for the application to be used in role assignments + 1. A role assignment for the service principal to access the Azure subscription + +:::tip Don't Panic! + +This may seem like a lot to set up, but the content you need to add to your `infrastructure-live` repository is minimal. The majority of the work will be pulled from a reusable catalog that you'll reference in your `infrastructure-live` repository. + +If you want to peruse the catalog that's used in the bootstrap process, you can take a look at the [terragrunt-scale-catalog](https://github.com/gruntwork-io/terragrunt-scale-catalog) repository. + +::: + +The process that we'll follow to get these resources ready for Pipelines is: + +1. Set up these bootstrap resources by creating some Terragrunt configurations in your `infrastructure-live` repository for bootstrapping Pipelines in a single Azure subscription +2. Use Terragrunt to provision these resources in your Azure subscription +3. Finalizing Terragrunt configurations using the bootstrap resources we just provisioned +4. Pull the bootstrapped resources into state, now that we have configured a remote state backend +5. (Optionally) Bootstrap additional Azure subscriptions until all your Azure subscriptions are ready for Pipelines + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Bootstrap your `infrastructure-live` repository

    + +To bootstrap your `infrastructure-live` repository, we'll use Boilerplate to scaffold it with the necessary content for Pipelines to function. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/gitlab/infrastructure-live?ref=v1.0.0' \ + --output-folder . +``` + +:::tip + +You can just reply `y` to all the prompts to include dependencies, and accept defaults unless you want to customize something. + +Alternatively, you could run Boilerplate non-interactively by passing the `--non-interactive` flag. You'll need to supply the relevant values for required variables in that case. + +e.g. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/gitlab/infrastructure-live?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=dev' \ + --var 'GitLabGroupName=acme' \ + --var 'GitLabRepoName=infrastructure-live' \ + --var 'GitLabInstanceURL=https://gitlab.com' \ + --var 'SubscriptionName=dev' \ + --var 'AzureTenantID=00000000-0000-0000-0000-000000000000' \ + --var 'AzureSubscriptionID=11111111-1111-1111-1111-111111111111' \ + --var 'AzureLocation=East US' \ + --var 'StateResourceGroupName=pipelines-rg' \ + --var 'StateStorageAccountName=mysa' \ + --var 'StateStorageContainerName=tfstate' \ + --non-interactive +``` + +You can also choose to store these values in a YAML file and pass it to Boilerplate using the `--var-file` flag. + +```yaml title="vars.yml" +AccountName: dev +GitLabGroupName: acme +GitLabRepoName: infrastructure-live +GitLabInstanceURL: https://gitlab.com +SubscriptionName: dev +AzureTenantID: 00000000-0000-0000-0000-000000000000 +AzureSubscriptionID: 11111111-1111-1111-1111-111111111111 +AzureLocation: East US +StateResourceGroupName: pipelines-rg +StateStorageAccountName: my-storage-account +StateStorageContainerName: tfstate +``` + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/gitlab/infrastructure-live?ref=v1.0.0' \ + --output-folder . \ + --var-file vars.yml \ + --non-interactive +``` + +::: + +:::note Progress Checklist + +::: + +Next, install Terragrunt and OpenTofu locally (the `.mise.toml` file in the root of the repository after scaffolding should already be set to the versions you want for Terragrunt and OpenTofu): + +```bash +mise install +``` + +:::note Progress Checklist + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Provisioning the resources

    + +Once you've set up the Terragrunt configurations, you can use Terragrunt to provision the resources in your Azure subscription. + +If you haven't already, you'll want to authenticate to Azure using the `az` CLI. + +```bash +az login +``` + +:::note Progress Checklist + + + +::: + + +To dynamically configure the Azure provider with a given tenant ID and subscription ID, ensure that you are exporting the following environment variables if you haven't set the values via the `az` CLI: + +- `ARM_TENANT_ID` +- `ARM_SUBSCRIPTION_ID` + +For example: + +```bash +export ARM_TENANT_ID="00000000-0000-0000-0000-000000000000" +export ARM_SUBSCRIPTION_ID="11111111-1111-1111-1111-111111111111" +``` + +:::note Progress Checklist + + + +::: + +First, make sure that everything is set up correctly by running a plan in the subscription directory. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache plan +``` + +:::tip + +We're using the `--provider-cache` flag here to ensure that we don't re-download the Azure provider on every run to speed up the process by leveraging the [Terragrunt Provider Cache Server](https://terragrunt.gruntwork.io/docs/features/provider-cache-server/). + +::: + +:::note Progress Checklist + + + +::: + +Next, apply the changes to your subscription. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache --no-stack-generate apply +``` + +:::tip + +We're adding the `--no-stack-generate` flag here, as Terragrunt will already have the requisite stack configurations generated, and we don't want to accidentally overwrite any configurations while we have state stored locally before we pull them into remote state. + +::: + +:::note Progress Checklist + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Finalizing Terragrunt configurations

    + +Once you've provisioned the resources in your Azure subscription, you can finalize the Terragrunt configurations using the bootstrap resources we just provisioned. + +First, edit the `root.hcl` file in the root of your `infrastructure-live` repository to leverage the storage account we just provisioned. + +```hcl title="root.hcl" +locals { + sub_hcl = read_terragrunt_config(find_in_parent_folders("sub.hcl")) + + state_resource_group_name = local.sub_hcl.locals.state_resource_group_name + state_storage_account_name = local.sub_hcl.locals.state_storage_account_name + state_storage_container_name = local.sub_hcl.locals.state_storage_container_name +} + +# FIXME: Uncomment the code below when you've successfully bootstrapped Pipelines state. +# +# remote_state { +# backend = "azurerm" +# generate = { +# path = "backend.tf" +# if_exists = "overwrite" +# } +# config = { +# resource_group_name = local.state_resource_group_name +# storage_account_name = local.state_storage_account_name +# container_name = local.state_storage_container_name +# key = "${path_relative_to_include()}/tofu.tfstate" +# } +# } + +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + +::: + +Next, finalize the `.gruntwork/environment-.hcl` file in the root of your `infrastructure-live` repository to reference the IDs for the applications we just provisioned. + +```hcl title=".gruntwork/environment-.hcl" +environment "dev" { + filter { + paths = ["dev/*"] + } + + authentication { + azure_oidc { + tenant_id = "00000000-0000-0000-0000-000000000000" + subscription_id = "11111111-1111-1111-1111-111111111111" + + plan_client_id = "" # FIXME: Fill in the client ID for the plan application after bootstrapping + apply_client_id = "" # FIXME: Fill in the client ID for the apply application after bootstrapping + } + } +} +``` + +You can find the values for the `plan_client_id` and `apply_client_id` by running `terragrunt stack output` in the `bootstrap` directory in `name-of-subscription/bootstrap`. + +```bash +terragrunt stack output +``` + +The relevant bits that you want to extract from the stack output are the following: + +```hcl +bootstrap = { + apply_app = { + client_id = "33333333-3333-3333-3333-333333333333" + } + plan_app = { + client_id = "44444444-4444-4444-4444-444444444444" + } +} +``` + +You can use those values to set the values for `plan_client_id` and `apply_client_id` in the `.gruntwork/environment-.hcl` file. + +:::note Progress Checklist + + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Pulling the resources into state

    + +Once you've provisioned the resources in your Azure subscription, you can pull the resources into state using the storage account we just provisioned. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache --no-stack-generate -- init -migrate-state -force-copy +``` + +:::tip + +We're adding the `-force-copy` flag here to avoid any issues with OpenTofu waiting for an interactive prompt to copy up local state. + +::: + +:::note Progress Checklist + + + +::: + +{/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Optional: Bootstrapping additional Azure subscriptions

    + +If you have multiple Azure subscriptions, and you want to bootstrap them as well, you can do so by following a similar, but slightly condensed process. + +For each additional subscription you want to bootstrap, you'll use Boilerplate in the root of your `infrastructure-live` repository to scaffold out the necessary content for just that subscription. + +:::tip + +If you are going to bootstrap more Azure subscriptions, you'll probably want to commit your existing changes before proceeding. + +```bash +git add . +git commit -m "Add additional Azure subscriptions [skip ci]" +``` + +::: + +Just like before, you'll use Boilerplate to scaffold out the necessary content for just that subscription. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/gitlab/subscription?ref=v1.0.0' \ + --output-folder . +``` + +:::tip + +Again, you can just reply `y` to all the prompts to include dependencies, and accept defaults unless you want to customize something. + +::: + +Alternatively, you could run Boilerplate non-interactively by passing the `--non-interactive` flag. You'll need to supply the relevant values for required variables in that case. + +e.g. + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/gitlab/subscription?ref=v1.0.0' \ + --output-folder . \ + --var 'AccountName=prod' \ + --var 'GitLabGroupName=acme' \ + --var 'GitLabRepoName=infrastructure-live' \ + --var 'GitLabInstanceURL=https://gitlab.com' \ + --var 'SubscriptionName=prod' \ + --var 'AzureTenantID=00000000-0000-0000-0000-000000000000' \ + --var 'AzureSubscriptionID=99999999-9999-9999-9999-999999999999' \ + --var 'AzureLocation=East US' \ + --var 'StateResourceGroupName=pipelines-rg' \ + --var 'StateStorageAccountName=myprodsa' \ + --var 'StateStorageContainerName=tfstate' \ + --non-interactive +``` + +If you prefer to store the values in a YAML file and pass it to Boilerplate using the `--var-file` flag, you can do so like this: + +```yaml title="vars.yml" +AccountName: prod +GitLabGroupName: acme +GitLabRepoName: infrastructure-live +GitLabInstanceURL: https://gitlab.com +SubscriptionName: prod +AzureTenantID: 00000000-0000-0000-0000-000000000000 +AzureSubscriptionID: 99999999-9999-9999-9999-999999999999 +AzureLocation: East US +StateResourceGroupName: pipelines-rg +StateStorageAccountName: myprodsa +StateStorageContainerName: tfstate +``` + +```bash +boilerplate \ + --template-url 'github.com/gruntwork-io/terragrunt-scale-catalog//templates/boilerplate/azure/gitlab/subscription?ref=v1.0.0' \ + --output-folder . \ + --var-file vars.yml \ + --non-interactive +``` + +:::note Progress Checklist + + + +::: + +To avoid issues with the remote state backend not existing yet, you'll want to comment out your remote state backend configurations in your `root.hcl` file before you start the bootstrap process for these new subscriptions. + +```hcl title="root.hcl" +locals { + sub_hcl = read_terragrunt_config(find_in_parent_folders("sub.hcl")) + + state_resource_group_name = local.sub_hcl.locals.state_resource_group_name + state_storage_account_name = local.sub_hcl.locals.state_storage_account_name + state_storage_container_name = local.sub_hcl.locals.state_storage_container_name +} + +# FIXME: Temporarily commented out again, pending successful bootstrap of the new subscription(s). +# +# remote_state { +# backend = "azurerm" +# generate = { +# path = "backend.tf" +# if_exists = "overwrite" +# } +# config = { +# resource_group_name = local.state_resource_group_name +# storage_account_name = local.state_storage_account_name +# container_name = local.state_storage_container_name +# key = "${path_relative_to_include()}/tofu.tfstate" +# } +# } + +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + +::: + +Just like before, you can use Terragrunt to provision the resources in each of these subscriptions. + +For each subscription you want to bootstrap, you'll need to run the following commands: + +```bash +cd /_global/bootstrap +terragrunt run --all --non-interactive --provider-cache plan +terragrunt run --all --non-interactive --provider-cache --no-stack-generate apply +``` + +:::tip + +We're adding the `--no-stack-generate` flag here, as Terragrunt will already have the requisite stack configurations generated, and we don't want to accidentally overwrite any configurations while we have state stored locally before we pull them into remote state. + +::: + +:::note Progress Checklist + + + + +::: + +Next, you can pull the resources into state using the storage account we just provisioned. + +First, edit the `root.hcl` file in the root of your `infrastructure-live` repository to uncomment the remote state backend configurations you commented out earlier. + +```hcl title="root.hcl" +locals { + sub_hcl = read_terragrunt_config(find_in_parent_folders("sub.hcl")) + + state_resource_group_name = local.sub_hcl.locals.state_resource_group_name + state_storage_account_name = local.sub_hcl.locals.state_storage_account_name + state_storage_container_name = local.sub_hcl.locals.state_storage_container_name +} + +remote_state { + backend = "azurerm" + generate = { + path = "backend.tf" + if_exists = "overwrite" + } + config = { + resource_group_name = local.state_resource_group_name + storage_account_name = local.state_storage_account_name + container_name = local.state_storage_container_name + key = "${path_relative_to_include()}/tofu.tfstate" + } +} + +generate "provider" { + path = "provider.tf" + if_exists = "overwrite_terragrunt" + contents = < + +::: + +Next, you can pull the resources into state using the storage account we just provisioned. + +```bash title="name-of-subscription" +terragrunt run --all --non-interactive --provider-cache --no-stack-generate -- init -migrate-state -force-copy +``` + +:::tip + +We're adding the `-force-copy` flag here to avoid any issues with OpenTofu waiting for an interactive prompt to copy up local state. + +::: + +:::note Progress Checklist + + + +::: + +Finally, we can edit each of the `.gruntwork/environment-.hcl` files in the root of your `infrastructure-live` repository to reference the IDs for the applications we just provisioned. + +```hcl title=".gruntwork/environment-.hcl" +environment "prod" { + filter { + paths = ["prod/*"] + } + + authentication { + azure_oidc { + tenant_id = "00000000-0000-0000-0000-000000000000" + subscription_id = "99999999-9999-9999-9999-999999999999" + + plan_client_id = "" # FIXME: Fill in the client ID for the plan application after bootstrapping + apply_client_id = "" # FIXME: Fill in the client ID for the apply application after bootstrapping + } + } +} +``` + +You can find the values for the `plan_client_id` and `apply_client_id` by running `terragrunt stack output` in the `bootstrap` directory in `name-of-subscription/bootstrap`. + +```bash +terragrunt stack output +``` + +The relevant bits that you want to extract from the stack output are the following: + +```hcl +bootstrap = { + apply_app = { + client_id = "55555555-5555-5555-5555-555555555555" + } + plan_app = { + client_id = "66666666-6666-6666-6666-666666666666" + } +} +``` + +You can use those values to set the values for `plan_client_id` and `apply_client_id` in the `.gruntwork/environment-.hcl` file. + +:::note Progress Checklist + + + + +::: + + + + ## Commit and push your changes Commit and push your changes to your repository. From 9bc705bd2d6c87881c2d5ecab55e79a18f821666 Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Mon, 20 Oct 2025 16:05:20 -0700 Subject: [PATCH 23/37] copy updates to v4 migration guide --- .../upgrading-github-v3-to-v4.md | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md index 4ca4f3c004..1782c29992 100644 --- a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md @@ -58,26 +58,22 @@ for more details. :::note Progress Checklist -- [ ] Root Terragrunt File Renamed +- [ ] Root `terragrunt.hcl` File Renamed to `root.hcl` +- [ ] `find_in_parent_folders()` updated to `find_in_parent_folders("root.hcl") ::: ## Replace YML Config with HCL Config -:::note -Repositories using only YML configuration will still function with Pipelines v4, -but adding any HCL configuration will prevent the YML from having an effect. +Pipelines v3 supported two configuration languages - YML and HCL. With Pipelines v4, YML configuration is deprecated and we encourage all users to migrate their configuration to HCL as part of the upgrade to v4. HCL is required in v4 for using Gruntwork Account Factory. The presence of any HCL configurations will cause pipelines to ignore YML configurations. The next major release will remove YML support entirely. -In the next major release YML configuration will have no effect and HCL will be -required. -::: - -YML configurations(in the `.gruntwork/config.yml` file) are officially deprecated in Pipelines v4. -Migrating to HCL configuration requires replacing the `config.yml` file with HCL files in the `.gruntwork` directory. +Migrating to HCL configuration requires replacing the `config.yml` file with HCL files in the `.gruntwork` directory. Below are sample HCL configurations to get you started. ### Repository Configuration -We recommend adding the following files to your repository. +The `repository` block contains settings for the entire repository. See the +[Repository Block Attributes](/2.0/reference/pipelines/configurations-as-code/api#repository-block-attributes) +to find which of your existing YML configurations need to be added here. ```hcl title=".gruntwork/repository.hcl" # Configurations applicable to the entire repository, see: https://docs.gruntwork.io/2.0/reference/pipelines/configurations-as-code/api#repository-block @@ -93,12 +89,11 @@ repository { ``` -The `repository` block contains settings for the entire repository. See the -[Repository Block Attributes](/2.0/reference/pipelines/configurations-as-code/api#repository-block-attributes) -to find which of your existing YML configurations need to be added here. ### AWS Accounts Configuration +The `accounts.hcl` file is a helper to read from the root `accounts.yml` file into your HCL configuration. + ```hcl title=".gruntwork/accounts.hcl" # AWS account configurations that are usable by the entire repository, see: https://docs.gruntwork.io/2.0/reference/pipelines/configurations-as-code/api#aws-block aws { @@ -109,7 +104,6 @@ aws { } ``` -The `accounts.hcl` file is a helper to read from the root `accounts.yml` file into your HCL configuration. ### Environments Configuration @@ -169,7 +163,7 @@ For Enterprise customers using Account Factory: see the [Account Vending Configu :::note Progress Checklist -- [ ] YML Config Replaced +- [ ] YML Config Replaced with HCL ::: From ba4bc965e58028b6f889495474a466c511f61824 Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Mon, 20 Oct 2025 16:11:20 -0700 Subject: [PATCH 24/37] More copy updates in migration guide --- .../upgrading-github-v3-to-v4.md | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md index 1782c29992..8746d671ee 100644 --- a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md @@ -89,6 +89,11 @@ repository { ``` +:::note Progress Checklist + +- [ ] `.gruntwork/repository.hcl` created + +::: ### AWS Accounts Configuration @@ -104,6 +109,11 @@ aws { } ``` +:::note Progress Checklist + +- [ ] `.gruntwork/accounts.hcl` created + +::: ### Environments Configuration @@ -131,15 +141,21 @@ environment "management" { :::warning Note the role-name in the `apply_iam_role_arn` and `plan_iam_role_arn` role ARN values. The role-names should match the Pipelines roles you provisioned in your AWS accounts. Typically, these roles are: -- `root-pipelines-*` in the `infrastructure-live-root` repository -- `access-control-pipelines-*` in an `infrastructure-live-access-control` repository -- `delegated-pipelines-*` in an `infrastructure-live-delegated` repository +- `root-pipelines-plan` and `root-pipelines-apply` in the `infrastructure-live-root` repository +- `access-control-pipelines-plan` and ``access-control-pipelines-apply` in an `infrastructure-live-access-control` repository +- `delegated-pipelines-plan` and `delegated-pipelines-apply` in an `infrastructure-live-delegated` repository -Confirm the values by looking at your Infrastructure as Code for those IAM roles. +Confirm the values by looking at your Infrastructure as Code (typically under `_envcommon/landingzone/.hcl` in `infrastructure-live-root` or `infrastructure-live-access-control`) for those IAM roles. ::: **Repeat this for each environment that needs to be authenticated.** +:::note Progress Checklist + +- [ ] `.gruntwork/environment-ACCOUNTNAME.hcl` created for **each** AWS Account in your `accounts.yml` file + +::: + ### Account Factory Configuration If your repository has Account Factory add the following file based on your existing YML configuration. @@ -163,7 +179,7 @@ For Enterprise customers using Account Factory: see the [Account Vending Configu :::note Progress Checklist -- [ ] YML Config Replaced with HCL +- [ ] `.gruntwork/account-factory.hcl` created ::: From 6dac2dc8d306db61351727b4989563241b0c03a5 Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Mon, 20 Oct 2025 16:22:04 -0700 Subject: [PATCH 25/37] Copy updates --- .../upgrading-github-v3-to-v4.md | 50 ++++++++++++------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md index 8746d671ee..4a0957b30f 100644 --- a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md @@ -183,20 +183,20 @@ For Enterprise customers using Account Factory: see the [Account Vending Configu ::: -## Allowlisting Actions +## Updating the GitHub Actions Allowlist -If your organization maintains an allowlist of GitHub actions, update the allowlist +If your organization maintains an [allowlist of GitHub actions](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#allowing-select-actions-and-reusable-workflows-to-run), update the allowlist with the full list of actions in [pipelines-actions v4.0.0](https://github.com/gruntwork-io/pipelines-actions/tree/v4.0.0/.github/actions) :::note Progress Checklist -- [ ] Actions Allowlisted +- [ ] (Only if your organization requires) Each pipelines action from `pipelines-actions/.github/actions` has been added to my organization's GitHub Actions allowlist ::: -## Pipelines Workflow +## Update the Pipelines Workflow file -In your infrastructure-live repository, update the `.github/workflows/pipelines.yml` file as follows: +In each infrastructure-live repository (including any `-access-control` or `-delegated` repositories), update the `.github/workflows/pipelines.yml` file as follows: ### Add workflow permission @@ -204,7 +204,7 @@ Update the Pipelines Workflow in the repository to add `actions: read`; required :::note Progress Checklist -- [ ] Updated Pipelines Workflow to add `actions: read` permission +- [ ] Updated Pipelines Workflow `pipelines.yml` to add `actions: read` permission ::: @@ -215,31 +215,31 @@ Update the `uses:` field of the GruntworkPipelines job to reference `@v4` :::note Progress Checklist -- [ ] Updated Pipelines Workflow to reference `@v4` +- [ ] Updated Pipelines Workflow `pipelines.yml` to reference `@v4` ::: ### Remove PipelinesPassed job The pipelines workflow now runs a `GruntworkPipelines / Pipelines Status Check` -job which can be used for Required Status Checks. Remove the PipelinesPassed job -and update any Required Status Checks to use `GruntworkPipelines / Pipelines Status Check`. +job which can be used for Required Status Checks. As a result the `PipelinesPassed` job is no longer required. +Remove the PipelinesPassed job and update any Required Status Checks to use `GruntworkPipelines / Pipelines Status Check`. :::note Progress Checklist -- [ ] Removed PipelinesPassed job +- [ ] Removed `PipelinesPassed` job from `pipelines.yml` ::: ## Drift Detection Workflow -In your infrastructure-live repository, update the `.github/workflows/pipelines-drift-detection.yml` file as follows: +In each infrastructure-live repository (including any `-access-control` or `-delegated` repositories), update the `.github/workflows/pipelines-drift-detection.yml` file as follows: ### Update Inputs The inputs for Drift Detection have been renamed. -Update the `workflow_dispatch` section with the new inputs: +Update the `workflow_dispatch` section and replace all the inputs with the below new inputs: ``` workflow_dispatch: @@ -253,7 +253,7 @@ Update the `workflow_dispatch` section with the new inputs: type: string ``` -Update the GruntworkPipelines job to use these inputs: +Update the GruntworkPipelines job to use the new inputs: ``` with: @@ -261,7 +261,13 @@ Update the GruntworkPipelines job to use these inputs: pipelines_drift_detection_branch: ${{ inputs.pipelines_drift_detection_branch }} ``` -The syntax for the filter in Drift Detection has changed. Refer to the [Filter Reference](/2.0/docs/pipelines/guides/running-drift-detection#drift-detection-filter) +Note that the syntax for the filter input in Drift Detection has changed. Refer to the [Filter Reference](/2.0/docs/pipelines/guides/running-drift-detection#drift-detection-filter) for a full description of the new and expanded capabilities. + +:::note Progress Checklist + +- [ ] Updated inputs and reference to inputs in `pipelines-drift-detection.yml` + +::: ### Update Drift Detection GruntworkPipelines uses version @@ -269,19 +275,19 @@ Update the `uses:` field of the GruntworkPipelines job to reference `@v4` :::note Progress Checklist -- [ ] Drift Detection Uses @v4 +- [ ] Updated `uses` reference in `pipelines-drift-detection.yml` ::: ## Unlock Workflow -In your infrastructure-live repository, update the `.github/workflows/pipelines-unlock.yml` file as follows: +In each infrastructure-live repository (including any `-access-control` or `-delegated` repositories), update the `.github/workflows/pipelines-unlock.yml` file as follows: ### Update Inputs The inputs for Unlock have been renamed. -Update the `workflow_dispatch` section with the new inputs: +Update the `workflow_dispatch` section and replace all the inputs with the below new inputs: ``` inputs: @@ -303,7 +309,7 @@ Update the `workflow_dispatch` section with the new inputs: type: boolean ``` -Update the GruntworkPipelines job to use these inputs: +Update the GruntworkPipelines job to use the updated inputs: ``` lock_id: ${{ inputs.lock_id }} @@ -312,13 +318,19 @@ Update the GruntworkPipelines job to use these inputs: unlock_all: ${{ inputs.unlock_all }} ``` +:::note Progress Checklist + +- [ ] Updated inputs and reference to inputs in `pipelines-unlock.yml` + +::: + ### Update Unlock GruntworkPipelines uses version Update the `uses:` field of the GruntworkPipelines job to reference `@v4` :::note Progress Checklist -- [ ] Pipelines Unlock Uses @v4 +- [ ] Updated `uses` reference in `pipelines-unlock.yml` ::: From 1941e17397780d4aa74d069d22bb4c5da683c809 Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Mon, 20 Oct 2025 16:45:46 -0700 Subject: [PATCH 26/37] update feature flags table for v4 --- docs/2.0/reference/pipelines/feature-flags.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/2.0/reference/pipelines/feature-flags.md b/docs/2.0/reference/pipelines/feature-flags.md index da5ebeb368..997173c8c4 100644 --- a/docs/2.0/reference/pipelines/feature-flags.md +++ b/docs/2.0/reference/pipelines/feature-flags.md @@ -11,7 +11,10 @@ Pipelines supports optional feature flags that allow you to enable or disable sp Enables all Pipelines experiment flags.
  1. -**Default Value**: Disabled +**Default Value in Pipelines GitHub v3/GitLab v1**: Disabled +
  2. +
  3. +**Default Value in Pipelines GitHub v4+/GitLab v2+**: Enabled
  4. **How to Enable**: Set to `"true"` @@ -26,7 +29,10 @@ Enables Pipelines to consolidate as many Terragrunt plan/apply changes as possib This behavior will likely become the default in a major release of Pipelines but is currently opt-in due to being a breaking change to functionality.
  5. -**Default Value**: Disabled +**Default Value in Pipelines GitHub v3/GitLab v1**: Disabled +
  6. +
  7. +**Default Value in Pipelines GitHub v4+/GitLab v2+**: Enabled
  8. **How to Enable**: Set to `"true"`
  9. @@ -48,7 +54,10 @@ When this flag is enabled Pipelines will detect changes to `dir1/myvars.json` as This behavior will likely become the default in a major release of Pipelines but is currently opt-in due to being a breaking change to functionality.
  10. -**Default Value**: Disabled +**Default Value in Pipelines GitHub v3/GitLab v1**: Disabled +
  11. +
  12. +**Default Value in Pipelines GitHub v4+/GitLab v2+**: Enabled
  13. **How to Enable**: Set to `"true"` From 237fcbed7b82711ad0e9f1f81a480327c6e4e005 Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Mon, 20 Oct 2025 16:46:23 -0700 Subject: [PATCH 27/37] consistent casing --- .../pipelines/previous-versions/upgrading-github-v3-to-v4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md index 4a0957b30f..e346640838 100644 --- a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md @@ -58,7 +58,7 @@ for more details. :::note Progress Checklist -- [ ] Root `terragrunt.hcl` File Renamed to `root.hcl` +- [ ] Root `terragrunt.hcl` file renamed to `root.hcl` - [ ] `find_in_parent_folders()` updated to `find_in_parent_folders("root.hcl") ::: From 43a8e797f0b9e570f0c311c66190cbaf45db94fe Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Mon, 20 Oct 2025 16:46:54 -0700 Subject: [PATCH 28/37] consistency --- .../pipelines/previous-versions/upgrading-github-v3-to-v4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md index e346640838..fe236268ae 100644 --- a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md @@ -190,7 +190,7 @@ with the full list of actions in [pipelines-actions v4.0.0](https://github.com/g :::note Progress Checklist -- [ ] (Only if your organization requires) Each pipelines action from `pipelines-actions/.github/actions` has been added to my organization's GitHub Actions allowlist +- [ ] (Only if your organization requires) Each pipelines action from `pipelines-actions/.github/actions` has been added to the organization's GitHub Actions allowlist ::: From 9a6627ebda6be1a42ae29f24e24213ee22034ade Mon Sep 17 00:00:00 2001 From: Oreoluwa Agunbiade Date: Mon, 20 Oct 2025 17:48:39 -0600 Subject: [PATCH 29/37] Update compatibility table --- .../terragrunt-version-compatibility.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md b/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md index 40fc28ddff..dd73efd187 100644 --- a/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md +++ b/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md @@ -1,10 +1,26 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + # Terragrunt Version Compatibility + + + | Type | Terragrunt Ver | Pipelines Ver | Comments | | ---- | -------------- | ------------- | -------- | | Maximum | 0.84.z | v3.y.z | Pipelines v3.y.z is not compatible with Terragrunt 0.85.0 and above. Future major versions will be compatible. | | Recommended | 0.77.11 | v3.y.z | Pipelines is actively tested with this version of Terragrunt | | | 0.71.3+ | v3.y.z | Pipelines automatically supports [Terragrunt Stacks](/2.0/docs/pipelines/guides/stacks) | | | 0.68.13+ | v3.y.z | Pipelines uses new features in Terragrunt to provide enhanced logging, and the [File Dependency](https://docs.gruntwork.io/2.0/docs/pipelines/guides/file-dependencies) feature | +| Minimum | 0.86.3 | v4.y.z | This is the absolute minimum version of terragrunt for pipelines v4 | | Minimum | 0.59.7 | v3.y.z | This is the absolute minimum version of terragrunt for pipelines v3 | | Minimum | 0.59.7 | v2.y.z | | + + +| Type | Terragrunt Ver | Pipelines Ver | Comments | +| ---- | -------------- | ------------- | -------- | +| Minimum | 0.86.3 | v2.y.z | This is the absolute minimum version of terragrunt for pipelines v2 | +| Minimum | 0.59.7 | v1.y.z | This is the absolute minimum version of terragrunt for pipelines v1 | + + + From a77a066c034dc2c0906017ce96fee4fc7928d786 Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Mon, 20 Oct 2025 16:49:53 -0700 Subject: [PATCH 30/37] Add whats new --- .../upgrading-github-v3-to-v4.md | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md index fe236268ae..807bdff6ee 100644 --- a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md @@ -2,8 +2,32 @@ import PersistentCheckbox from '@site/src/components/PersistentCheckbox'; # Upgrading Pipelines GitHub Workflows From v3 to v4 -To upgrade Pipelines from v3 to v4, perform the following changes in each -repository that includes the Gruntwork Pipelines Workflows. +## What's new in Pipelines v4 +Pipelines v4 is nearly a full rewrite of the pipelines implementation within GitHub. Prior to v4 the bulk of the "glue" logic to stitch together various components of the workflow was written in bash. In v4 we've replaced the majority of the bash code with golang code which is both faster, more maintainable and has significantly improved test coverage. v4 also includes a handful of new features: + +### Run-All Log Parsing +Pipelines will now request a custom log format from Terragrunt (via `TG_LOG_CUSTOM_FORMAT`) and then parse the resulting output into different streams, and present each Unit's output independently and deinterlaced in the pipelines comment engine. + +### Support for newer Terragrunt Versions (through to 1.0) +Pipelines v3 has maximum Terragrunt version of 0.84. Pipelines v4 removes this restriction and will support all Terragrunt versions from `0.86.3` through to 1.0+. + +### Azure Support +Pipelines v4 includes support for Azure OIDC and state storage. New configuration options are now available in [HCL configuration](https://docs.gruntwork.io/2.0/reference/pipelines/configurations-as-code/api#azure_oidc-block-attributes) for Azure. + +### Improved / Faster commenting engine +Pipelines v4 includes a rewrite of several components of the commenting engine which should result in less time spent calculating and posting PR comments. + +### Improved Drift Detection filters +Pipelines v4 includes [a more expressive syntax](https://docs.gruntwork.io/2.0/docs/pipelines/guides/running-drift-detection#drift-detection-filter) for filters when triggering drift detection. + +### Removal of several feature flags +The following [feature flags](https://docs.gruntwork.io/2.0/reference/pipelines/feature-flags) are now all *enabled* by default: + +* PIPELINES_FEATURE_EXPERIMENT_AGGRESSIVE_CONSOLIDATION +* PIPELINES_FEATURE_EXPERIMENT_COLOCATED_FILE_UNIT_CHANGE_DETECTION +* PIPELINES_FEATURE_EXPERIMENT_MINIMIZE_BLAST_RADIUS + +# Migration Guide ## Updating Terragrunt Version From 4011cf64f2010372023039bfe9b7ae148617e127 Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Mon, 20 Oct 2025 16:57:47 -0700 Subject: [PATCH 31/37] Update terragrunt-version-compatibility.md --- .../pipelines/terragrunt-version-compatibility.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md b/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md index dd73efd187..6933d7647a 100644 --- a/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md +++ b/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md @@ -8,19 +8,19 @@ import TabItem from '@theme/TabItem'; | Type | Terragrunt Ver | Pipelines Ver | Comments | | ---- | -------------- | ------------- | -------- | +| Minimum | 0.86.3 | v4.y.z | This is the absolute minimum version of Terragrunt for Pipelines v4 | | Maximum | 0.84.z | v3.y.z | Pipelines v3.y.z is not compatible with Terragrunt 0.85.0 and above. Future major versions will be compatible. | | Recommended | 0.77.11 | v3.y.z | Pipelines is actively tested with this version of Terragrunt | | | 0.71.3+ | v3.y.z | Pipelines automatically supports [Terragrunt Stacks](/2.0/docs/pipelines/guides/stacks) | | | 0.68.13+ | v3.y.z | Pipelines uses new features in Terragrunt to provide enhanced logging, and the [File Dependency](https://docs.gruntwork.io/2.0/docs/pipelines/guides/file-dependencies) feature | -| Minimum | 0.86.3 | v4.y.z | This is the absolute minimum version of terragrunt for pipelines v4 | -| Minimum | 0.59.7 | v3.y.z | This is the absolute minimum version of terragrunt for pipelines v3 | +| Minimum | 0.59.7 | v3.y.z | This is the absolute minimum version of Terragrunt for pipelines v3 | | Minimum | 0.59.7 | v2.y.z | | | Type | Terragrunt Ver | Pipelines Ver | Comments | | ---- | -------------- | ------------- | -------- | -| Minimum | 0.86.3 | v2.y.z | This is the absolute minimum version of terragrunt for pipelines v2 | -| Minimum | 0.59.7 | v1.y.z | This is the absolute minimum version of terragrunt for pipelines v1 | +| Minimum | 0.86.3 | v2.y.z | This is the absolute minimum version of Terragrunt for Pipelines v2 | +| Minimum | 0.59.7 | v1.y.z | This is the absolute minimum version of Terragrunt for Pipelines v1 | From 2aee4ba0190f4e087863b502f343177884999cc9 Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Mon, 20 Oct 2025 17:02:53 -0700 Subject: [PATCH 32/37] Whats new for GitLab --- .../upgrading-github-v3-to-v4.md | 2 +- .../upgrading-gitlab-v1-to-v2.md | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md index 807bdff6ee..cabbada819 100644 --- a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md @@ -2,7 +2,7 @@ import PersistentCheckbox from '@site/src/components/PersistentCheckbox'; # Upgrading Pipelines GitHub Workflows From v3 to v4 -## What's new in Pipelines v4 +## What's new in Pipelines GitHub v4 Pipelines v4 is nearly a full rewrite of the pipelines implementation within GitHub. Prior to v4 the bulk of the "glue" logic to stitch together various components of the workflow was written in bash. In v4 we've replaced the majority of the bash code with golang code which is both faster, more maintainable and has significantly improved test coverage. v4 also includes a handful of new features: ### Run-All Log Parsing diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-gitlab-v1-to-v2.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-gitlab-v1-to-v2.md index 92ee3b6918..93de6ca065 100644 --- a/docs/2.0/docs/pipelines/previous-versions/upgrading-gitlab-v1-to-v2.md +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-gitlab-v1-to-v2.md @@ -3,6 +3,31 @@ import TabItem from '@theme/TabItem'; # Upgrading Pipelines GitLab Workflows From v1 to v2 +## What's new in Pipelines GitLab v2 + +### Run-All Log Parsing +Pipelines will now request a custom log format from Terragrunt (via `TG_LOG_CUSTOM_FORMAT`) and then parse the resulting output into different streams, and present each Unit's output independently and deinterlaced in the pipelines comment engine. + +### Support for newer Terragrunt Versions (through to 1.0) +Pipelines GitLab v1 has a maximum Terragrunt version of 0.84. Pipelines GitLab v2 removes this restriction and will support all Terragrunt versions from `0.86.3` through to 1.0+. + +### Azure Support +Pipelines GitLab v2 includes support for Azure OIDC and state storage. New configuration options are now available in [HCL configuration](https://docs.gruntwork.io/2.0/reference/pipelines/configurations-as-code/api#azure_oidc-block-attributes) for Azure. + +### Drift Detection +Pipelines GitLab v2 ports over our implementation of [Drift Detection](https://docs.gruntwork.io/2.0/docs/pipelines/concepts/drift-detection) from GitHub and is now available and at parity in GitLab + +### Pipelines Unlock +Pipelines GitLab v2 includes a new feature to [unlock state locks](https://docs.gruntwork.io/2.0/docs/pipelines/guides/unlock). + +### Removal of several feature flags +The following [feature flags](https://docs.gruntwork.io/2.0/reference/pipelines/feature-flags) are now all *enabled* by default: + +* PIPELINES_FEATURE_EXPERIMENT_AGGRESSIVE_CONSOLIDATION +* PIPELINES_FEATURE_EXPERIMENT_COLOCATED_FILE_UNIT_CHANGE_DETECTION +* PIPELINES_FEATURE_EXPERIMENT_MINIMIZE_BLAST_RADIUS + +# Migration Guide To upgrade Pipelines from v1 to v2, perform the following changes in each repository that includes the Gruntwork Pipelines Workflows. From 83f26685dcdfa7607ed25df3006a7e1320149379 Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Mon, 20 Oct 2025 17:04:10 -0700 Subject: [PATCH 33/37] Include v1's max as well --- .../reference/pipelines/terragrunt-version-compatibility.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md b/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md index 6933d7647a..dc4100d5ed 100644 --- a/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md +++ b/docs/2.0/reference/pipelines/terragrunt-version-compatibility.md @@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem'; | Type | Terragrunt Ver | Pipelines Ver | Comments | | ---- | -------------- | ------------- | -------- | | Minimum | 0.86.3 | v4.y.z | This is the absolute minimum version of Terragrunt for Pipelines v4 | -| Maximum | 0.84.z | v3.y.z | Pipelines v3.y.z is not compatible with Terragrunt 0.85.0 and above. Future major versions will be compatible. | +| Maximum | 0.84.z | v3.y.z | Pipelines v3.y.z is not compatible with Terragrunt 0.85.0 and above.| | Recommended | 0.77.11 | v3.y.z | Pipelines is actively tested with this version of Terragrunt | | | 0.71.3+ | v3.y.z | Pipelines automatically supports [Terragrunt Stacks](/2.0/docs/pipelines/guides/stacks) | | | 0.68.13+ | v3.y.z | Pipelines uses new features in Terragrunt to provide enhanced logging, and the [File Dependency](https://docs.gruntwork.io/2.0/docs/pipelines/guides/file-dependencies) feature | @@ -20,6 +20,7 @@ import TabItem from '@theme/TabItem'; | Type | Terragrunt Ver | Pipelines Ver | Comments | | ---- | -------------- | ------------- | -------- | | Minimum | 0.86.3 | v2.y.z | This is the absolute minimum version of Terragrunt for Pipelines v2 | +| Maximum | 0.84.z | v1.y.z | Pipelines v1.y.z is not compatible with Terragrunt 0.85.0 and above.| | Minimum | 0.59.7 | v1.y.z | This is the absolute minimum version of Terragrunt for Pipelines v1 | From a336d95aaf01c8b95e6fa8265d12461b3e63bd3a Mon Sep 17 00:00:00 2001 From: Zach Goldberg Date: Tue, 21 Oct 2025 08:57:11 -0700 Subject: [PATCH 34/37] Update HCL Beta labels --- docs/2.0/docs/pipelines/installation/scm-comparison.md | 4 ++-- docs/2.0/reference/accountfactory/index.md | 4 ++-- docs/2.0/reference/pipelines/index.md | 4 ++-- sidebars/reference.js | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/2.0/docs/pipelines/installation/scm-comparison.md b/docs/2.0/docs/pipelines/installation/scm-comparison.md index 01de723c99..2eb31f54c3 100644 --- a/docs/2.0/docs/pipelines/installation/scm-comparison.md +++ b/docs/2.0/docs/pipelines/installation/scm-comparison.md @@ -4,11 +4,11 @@ Gruntwork Pipelines supports both GitHub Actions and GitLab CI/CD as CI/CD platf ## Feature Comparison -| Feature | GitHub | GitLab (Beta) | +| Feature | GitHub | GitLab | | -------------------------------- | --------------------------- | ---------------------------- | | Infrastructure as Code Pipelines | ✅ | ✅ | | Account Factory Integration | ✅ | ✅ | -| Enterprise Account Factory | ✅ | ❌ | +| Enterprise Account Factory | ✅ | ✅ | | App-based Authentication | ✅ | ❌ | | Machine User Authentication | ✅ | ✅ | | Customizable Workflows | ✅ | ✅ | diff --git a/docs/2.0/reference/accountfactory/index.md b/docs/2.0/reference/accountfactory/index.md index e6a8b7c202..0bf7761ca1 100644 --- a/docs/2.0/reference/accountfactory/index.md +++ b/docs/2.0/reference/accountfactory/index.md @@ -6,5 +6,5 @@ import PipelinesLanguageTransitionPartial from '../pipelines/language_transition ## Next Steps -- Explore the [YAML Configurations](/2.0/reference/accountfactory/configurations) reference for detailed guidance. -- Learn more about the (Beta) [Configurations as Code](/2.0/reference/accountfactory/configurations-as-code) reference. +- Explore the (deprecated) [YAML Configurations](/2.0/reference/accountfactory/configurations) reference for detailed guidance. +- Learn more about the [Configurations as Code](/2.0/reference/accountfactory/configurations-as-code) reference. diff --git a/docs/2.0/reference/pipelines/index.md b/docs/2.0/reference/pipelines/index.md index 30a59206fe..408a83ee0a 100644 --- a/docs/2.0/reference/pipelines/index.md +++ b/docs/2.0/reference/pipelines/index.md @@ -12,5 +12,5 @@ In addition to authentication, the primary configuration options involve customi ## Next Steps -- Explore the [YAML Configurations](/2.0/reference/pipelines/configurations) reference for detailed guidance. -- Learn more about the (Beta) [Configurations as Code](/2.0/reference/pipelines/configurations-as-code/api) reference. +- Explore the (deprecated) [YAML Configurations](/2.0/reference/pipelines/configurations) reference for detailed guidance. +- Learn more about the [Configurations as Code](/2.0/reference/pipelines/configurations-as-code/api) reference. diff --git a/sidebars/reference.js b/sidebars/reference.js index 11bc08e1f8..32d0711895 100644 --- a/sidebars/reference.js +++ b/sidebars/reference.js @@ -38,7 +38,7 @@ const sidebar = [ id: "2.0/reference/pipelines/configurations", }, { - label: "Configurations as Code (HCL - Beta)", + label: "Configurations as Code (HCL)", type: "category", items: [ { @@ -89,7 +89,7 @@ const sidebar = [ id: "2.0/reference/accountfactory/configurations", }, { - label: "Configurations as Code (HCL - Beta)", + label: "Configurations as Code (HCL)", type: "doc", id: "2.0/reference/accountfactory/configurations-as-code", }, From de1019e052586df33e133fe0d437879afdeece7f Mon Sep 17 00:00:00 2001 From: Oreoluwa Agunbiade <21035422+oredavids@users.noreply.github.com> Date: Wed, 22 Oct 2025 16:13:08 -0600 Subject: [PATCH 35/37] Add GitLab account factory setup docs (#2811) * Add GitLab account factory setup docs * Update tabs and group ID --------- Co-authored-by: Zach Goldberg --- .../installation/addingnewrepo.md | 586 +++++++++++++++++- .../docs/accountfactory/installation/index.md | 8 +- .../docs/overview/getting-started/index.md | 4 +- .../pipelines/architecture/ci-workflows.md | 12 +- .../pipelines/concepts/cloud-auth/aws.mdx | 10 +- .../installation/addingnewgitlabrepo.md | 547 ---------------- .../pipelines/installation/addingnewrepo.mdx | 168 +++-- .../pipelines/installation/scm-comparison.md | 6 +- .../installation/viamachineusers.mdx | 75 ++- .../tutorials/deploying-to-aws-gov-cloud.mdx | 12 +- ...oying-your-first-infrastructure-change.mdx | 156 ++--- .../tutorials/destroying-infrastructure.mdx | 20 +- 12 files changed, 862 insertions(+), 742 deletions(-) delete mode 100644 docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md diff --git a/docs/2.0/docs/accountfactory/installation/addingnewrepo.md b/docs/2.0/docs/accountfactory/installation/addingnewrepo.md index 7ea6610b80..c4be0a1384 100644 --- a/docs/2.0/docs/accountfactory/installation/addingnewrepo.md +++ b/docs/2.0/docs/accountfactory/installation/addingnewrepo.md @@ -1,13 +1,19 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CustomizableValue from '/src/components/CustomizableValue'; + # Adding Account Factory to a new repository -To configure Gruntwork Account Factory in a new GitHub repository, the following steps are required (and will be explained in detail below): +To configure Gruntwork Account Factory in a new GitHub/GitLab repository, the following steps are required (and will be explained in detail below): + +1. Create your infrastructure-live root, access-control and catalog repositories. +2. Configure the authentication for the repositories to ensure that required access tokens are available. + + -1. Create your `infrastructure-live-root` repository using Gruntwork's GitHub template. -2. Configure the Gruntwork.io GitHub App to authorize your `infrastructure-live-root` repository, or ensure that the appropriate machine user tokens are set up as repository or organization secrets. -3. Update the Bootstrap Workflow to configure your AWS settings. -4. Execute the Bootstrap Workflow in your `infrastructure-live-root` repository to generate pull requests and additional repositories. + -## Creating the infrastructure-live-root repository +

    Creating the infrastructure-live-root repository

    Gruntwork provides a pre-configured git repository template that incorporates best practices while allowing for customization. @@ -19,29 +25,29 @@ The workflow can optionally scaffold the `infrastructure-live-access-control` an Navigate to the template repository and select **Use this template** -> **Create a new Repository**. Choose your organization as the owner, add a description if desired, set the repository to **private**, and click **Create repository**. -## Configuring Gruntwork app settings +

    Configuring Gruntwork app settings

    Use the Gruntwork.io GitHub App to [add the repository as an Infra Root repository](/2.0/docs/pipelines/installation/viagithubapp#configuration). If using the [machine user model](/2.0/docs/pipelines/installation/viamachineusers), ensure the `INFRA_ROOT_WRITE_TOKEN` (and `ORG_REPO_ADMIN_TOKEN` for enterprise customers) is added to the repository as a secret or configured as an organization secret. -## Updating the Bootstrap Workflow +

    Updating the Bootstrap Workflow

    Return to your `infrastructure-live-root` repository and follow the `README` instructions to update the bootstrap workflow for IaC Foundations. Provide details about your AWS organization, accounts, and default values for new account provisioning. -## Running the workflow +

    Running the workflow

    Follow the instructions in your `infrastructure-live-root` repository to execute the Bootstrap Workflow. Gruntwork support is available to address any questions that arise. During the workflow execution, you can choose to create the `infrastructure-live-access-control` and `infrastructure-catalog` repositories. These repositories will be created in your GitHub organization using values defined in the workflow configuration. -### Infrastructure live access control +

    Infrastructure live access control

    This repository is primarily for Enterprise customers but is recommended for all users. When running the Bootstrap Workflow in your `infrastructure-live-root` repository, select the option to "Bootstrap the infrastructure-access-control repository." -### Infrastructure catalog +

    Infrastructure catalog

    The Bootstrap Workflow also creates an empty `infrastructure-catalog` repository. This repository is used to store Terraform/OpenTofu modules authored by your organization for internal use. During the Bootstrap Workflow execution in your `infrastructure-live-root` repository, select the option to "Bootstrap the infrastructure-catalog repository." -## Completing instructions in Bootstrap Pull Requests +

    Completing instructions in Bootstrap Pull Requests

    Each of your repositories will contain a Bootstrap Pull Request. Follow the instructions in these Pull Requests to finalize the setup of your IaC repositories. @@ -50,3 +56,559 @@ Each of your repositories will contain a Bootstrap Pull Request. Follow the inst The bootstrapping pull requests include pre-configured files, such as a `.mise.toml` file that specifies versions of OpenTofu and Terragrunt. Ensure you review and update these configurations to align with your organization's requirements. ::: + +
    + + +This guide walks you through the process of setting up a new GitLab Project with the Gruntwork Platform. By the end, you'll have a fully configured GitLab CI/CD pipeline that can create new AWS accounts and deploy infrastructure changes automatically. + +:::info +To use Gruntwork Pipelines in an **existing** GitLab repository, see this [guide](/2.0/docs/pipelines/installation/addinggitlabrepo). +::: + +

    Prerequisites

    + +Before you begin, make sure you have: + +- Basic familiarity with Git, GitLab, and infrastructure as code concepts +- Completed the [AWS Landing Zone setup](/2.0/docs/accountfactory/prerequisites/awslandingzone) +- Have programmatic access to the AWS accounts created in the [AWS Landing Zone setup](/2.0/docs/accountfactory/prerequisites/awslandingzone) +- Completed the [Pipelines Auth setup for GitLab](/2.0/docs/pipelines/installation/viamachineusers#gitlab) and setup a machine user with appropriate PAT tokens +- Local access to Gruntwork's GitHub repositories, specifically the [architecture catalog](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/) + +
    +Additional setup for **custom GitLab instances only** + +

    Fork the Pipelines workflow project

    + +You must [fork](https://docs.gitlab.com/user/project/repository/forking_workflow/#create-a-fork) Gruntwork's public [Pipelines workflow project](https://gitlab.com/gruntwork-io/pipelines-workflows) into your own GitLab instance. +This is necessary because Gruntwork Pipelines uses [GitLab CI/CD components](/2.0/docs/pipelines/architecture/ci-workflows), and GitLab requires components to reside within the [same GitLab instance as the project referencing them](https://docs.gitlab.com/ci/components/#use-a-component). + +When creating the fork, we recommend configuring it as a public mirror of the original Gruntwork project and ensuring that tags are included. + +

    Ensure OIDC configuration and JWKS are publicly accessible

    + +This step only applies if you are using a self-hosted GitLab instance that is not accessible from the public internet. If you are using GitLab.com or a self-hosted instance that is publicly accessible, you can skip this step. + +1. [Follow GitLab's instructions](https://docs.gitlab.com/ci/cloud_services/aws/#configure-a-non-public-gitlab-instance) for hosting your OIDC configuration and JWKS in a public location (e.g. S3 Bucket). This is necessary for both Gruntwork and the AWS OIDC provider to access the GitLab OIDC configuration and JWKS when authenticating JWT's generated by your custom instance. +2. Note the (stored as `ci_id_tokens_issuer_url` in your `gitlab.rb` file per GitLab's instructions) generated above for reuse in the next steps. +
    + +1. Create a new GitLab project for your `infrastructure-live-root` repository. +1. Install dependencies. +1. Configure the variables required to run the infrastructure-live-root boilerplate template. +1. Create your `infrastructure-live-root` repository contents using Gruntwork's architecture-catalog template. +1. Apply the account baselines to your AWS accounts. + + +

    Create a new infrastructure-live-root

    + +

    Authorize Your GitLab Group with Gruntwork

    + +To use Gruntwork Pipelines with GitLab, your group needs authorization from Gruntwork. Email your Gruntwork account manager or support@gruntwork.io with: + + ``` + GitLab group name(s): $$GITLAB_GROUP_NAME$$ (e.g. acme-io) + GitLab Issuer URL: $$ISSUER_URL$$ (For most users this is the URL of your GitLab instance e.g. https://gitlab.acme.io, if your instance is not publicly accessible, this should be a separate URL that is publicly accessible per step 0, e.g. https://s3.amazonaws.com/YOUR_BUCKET_NAME/) + Organization name: $$ORGANIZATION_NAME$$ (e.g. Acme, Inc.) + ``` + +Continue with the rest of the guide while you await confirmation when your group has been authorized. + +

    Create a new GitLab project

    + +1. Navigate to the group. +1. Click the **New Project** button. +1. Enter a name for the project. e.g. infrastructure-live-root +1. Click **Create Project**. +1. Clone the project to your local machine. +1. Navigate to the project directory. +1. Create a new branch `bootstrap-repository`. + +

    Install dependencies

    + +1. Install [mise](https://mise.jdx.dev/getting-started.html) on your machine. +1. Activate mise in your shell: + + ```bash + # For Bash + echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc + + # For Zsh + echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc + + # For Fish + echo 'mise activate fish | source' >> ~/.config/fish/config.fish + ``` + +1. Add the following to a .mise.toml file in the root of your project: + + ```toml title=".mise.toml" + [tools] + boilerplate = "0.8.1" + opentofu = "1.10.0" + terragrunt = "0.81.6" + awscli = "latest" + ``` + +1. Run `mise install`. + + +

    Bootstrap the repository

    + +Gruntwork provides a boilerplate [template](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/tree/main/templates/devops-foundations-infrastructure-live-root) that incorporates best practices while allowing for customization. The template is designed to scaffold a best-practices Terragrunt configurations. It includes patterns for module defaults, global variables, and account baselines. Additionally, it integrates Gruntwork Pipelines. + +

    Configure the variables required to run the boilerplate template

    + +Copy the content below to a `vars.yaml` file in the root of your project and update the `` values with your own. + +```yaml title="vars.yaml" +SCMProvider: GitLab + +# The GitLab group to use for the infrastructure repositories. This should include any additional sub-groups in the name +# Example: acme/prod +SCMProviderGroup: $$GITLAB_GROUP_NAME$$ + +# The GitLab project to use for the infrastructure-live repository. +SCMProviderRepo: infrastructure-live-root + +# The name of the project to use for the infrastructure-live-access-control repository. +AccessControlRepoName: infrastructure-live-access-control + +# The name of the project to use for the infrastructure-catalog repository. +InfraModulesRepoName: infrastructure-catalog + +# The base URL of your GitLab group repos. E.g., gitlab.com/ +RepoBaseUrl: $$GITLAB_GROUP_REPO_BASE_URL$$ + +# The name of the branch to deploy to. +# Example: main +DeployBranchName: $$DEPLOY_BRANCH_NAME$$ + +# The AWS account ID for the management account +# Example: "123456789012" +AwsManagementAccountId: $$AWS_MANAGEMENT_ACCOUNT_ID$$ + +# The AWS account ID for the security account +# Example: "123456789013" +AwsSecurityAccountId: $$AWS_SECURITY_ACCOUNT_ID$$ + +# The AWS account ID for the logs account +# Example: "123456789014" +AwsLogsAccountId: $$AWS_LOGS_ACCOUNT_ID$$ + +# The AWS account ID for the shared account +# Example: "123456789015" +AwsSharedAccountId: $$AWS_SHARED_ACCOUNT_ID$$ + +# The AWS account Email for the logs account +# Example: logs@acme.com +AwsLogsAccountEmail: $$AWS_LOGS_ACCOUNT_EMAIL$$ + +# The AWS account Email for the management account +# Example: management@acme.com +AwsManagementAccountEmail: $$AWS_MANAGEMENT_ACCOUNT_EMAIL$$ + +# The AWS account Email for the security account +# Example: security@acme.com +AwsSecurityAccountEmail: $$AWS_SECURITY_ACCOUNT_EMAIL$$ + +# The AWS account Email for the shared account +# Example: shared@acme.com +AwsSharedAccountEmail: $$AWS_SHARED_ACCOUNT_EMAIL$$ + +# The name prefix to use for creating resources e.g S3 bucket for OpenTofu state files +# Example: acme +OrgNamePrefix: $$ORG_NAME_PREFIX$$ + +# The default region for AWS Resources +# Example: us-east-1 +DefaultRegion: $$DEFAULT_REGION$$ + +################################################################################ +# OPTIONAL VARIABLES WITH THEIR DEFAULT VALUES. UNCOMMENT AND MODIFY IF NEEDED. +################################################################################ + +# If you are an enterprise customer, set this to true. +# IsEnterprise: true + +# List of the git repositories to populate for the catalog +# CatalogRepositories: +# - github.com/gruntwork-io/terraform-aws-service-catalog + +# The AWS partition to use. Options: aws, aws-us-gov, aws-cn +# AWSPartition: aws + +# The name of the IAM role to use for the plan job. +# PlanIAMRoleName: root-pipelines-plan + +# The name of the IAM role to use for the apply job. +# ApplyIAMRoleName: root-pipelines-apply + +# The default tags to apply to all resources. +# DefaultTags: +# "{{ .OrgNamePrefix }}:Team": "DevOps" + +# The version for terraform-aws-security module to use for OIDC provider and roles provisioning +# SecurityModulesVersion: v0.75.18 + +# The URL of the custom SCM provider instance. Set this if you are using a custom instance of GitLab. +# CustomSCMProviderInstanceURL: https://gitlab.example.io + +# The relative path from the host server to the custom pipelines workflow repository. Set this if you are using a custom/forked instance of the pipelines workflow. +# CustomWorkflowHostRelativePath: pipelines-workflows +``` + +

    Generate the repository contents

    + +1. Run the following command, from the root of your project, to generate the `infrastructure-live-root` repository contents: + + ```bash + boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/devops-foundations-infrastructure-live-root/?ref=4.0.1" --output-folder . --var-file vars.yaml --non-interactive + ``` + + This command adds all code required to set up your `infrastructure-live-root` repository. +1. Remove the boilerplate dependency from the `mise.toml` file. It is no longer needed. + +1. Commit your local changes and push them to the `bootstrap-repository` branch. + + ```bash + git add . + git commit -m "Bootstrap infrastructure-live-root repository initial commit [skip ci]" + git push origin bootstrap-repository + ``` + + Skipping the CI/CD process for now; you will manually apply the infrastructure baselines to your AWS accounts in a later step. + +1. Create a new merge request for the `bootstrap-repository` branch. Review the changes to understand what will be applied to your AWS accounts. The generated files fall under the following categories: + + - GitLab Pipelines workflow file + - Gruntwork Pipelines configuration files + - Module defaults files for infrastructure code + - Account baselines and GitLab OIDC module scaffolding files for your core AWS accounts: management, security, logs and shared. + +

    Apply the account baselines to your AWS accounts

    + +You will manually `terragrunt apply` the generated infrastructure baselines to get your accounts bootstrapped **before** merging this content into your main branch. + +:::tip +You can utilize the AWS SSO Portal to obtain temporary AWS credentials necessary for subsequent steps: + +1. Sign in to the Portal page and select your preferred account to unveil the roles accessible to your SSO user. +1. Navigate to the "Access keys" tab adjacent to the "AWSAdministratorAccess" role. +1. Copy the "AWS environment variables" provided and paste them into your terminal for usage. +::: + + +1. [ ] Apply infrastructure changes in the **management** account + + 1. - [ ] Obtain AWS CLI Administrator credentials for the management account + + 1. - [ ] Navigate to the management account folder + + ```bash + cd management/ + ``` + + 1. - [ ] Using your credentials, run `terragrunt plan`. + + ```bash + terragrunt run --all --non-interactive --backend-bootstrap plan + ``` + + 1. - [ ] After the plan succeeds, apply the changes: + + ```bash + terragrunt run --all --non-interactive apply + ``` + + 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. The lock files will be committed in the final step of the setup. e.g. + + ```bash + terragrunt run --all providers -- lock -platform=darwin_amd64 -platform=linux_amd64 + ``` + + 1. - [ ] Update Permissions for Account Factory Portfolio + + The account factory pipeline _will fail_ until you grant the pipelines roles (`root-pipelines-plan` and `root-pipelines-apply`) access to the portfolio. This step **must be done after** you provision the pipelines roles in the management account (where control tower is set up). + + Access to the portfolio is separate from IAM access, it **must** be granted in the Service Catalog console. + + #### **Steps to grant access** + + To grant access to the Account Factory Portfolio, you **must** be an individual with Service Catalog administrative permissions. + + 1. Log into the management AWS account + 1. Go into the Service Catalog console + 1. Ensure you are in your default region(control-tower region) + 1. Select the **Portfolios** option in **Administration** from the left side navigation panel + 1. Click on the portfolio named **AWS Control Tower Account Factory Portfolio** + 1. Select the **Access** tab + 1. Click the **Grant access** button + 1. In the **Access type** section, leave the default value of **IAM Principal** + 1. Select the **Roles** tab in the lower section + 1. Enter `root-pipelines` into the search bar, there should be two results (`root-pipelines-plan` and `root-pipelines-apply`). Click the checkbox to the left of each role name. + 1. Click the **Grant access** button in the lower right hand corner + + 1. - [ ] Increase Account Quota Limit (OPTIONAL) + + Note that DevOps Foundations makes it very convenient, and therefore likely, that you will encounter one of the soft limits imposed by AWS on the number of accounts you can create. + + You may need to request a limit increase for the number of accounts you can create in the management account, as the default is currently 10 accounts. + + To request an increase to this limit, search for "Organizations" in the AWS management console [here](https://console.aws.amazon.com/servicequotas/home/dashboard) and request a limit increase to a value that makes sense for your organization. + +1. - [ ] Apply infrastructure changes in the **logs** account + + 1. - [ ] Obtain AWS CLI Administrator credentials for the logs account + 1. - [ ] Navigate to the logs account folder + + ```bash + cd ../logs/ + ``` + + 1. - [ ] Using your credentials, run `terragrunt plan`. + + ```bash + terragrunt run --all --non-interactive --backend-bootstrap plan + ``` + + 1. - [ ] After the plan succeeds, apply the changes: + + ```bash + terragrunt run --all --non-interactive apply + ``` + + 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. e.g. + + ```bash + terragrunt run --all providers lock -platform=darwin_amd64 -platform=linux_amd64 + ``` + +1. - [ ] Apply infrastructure changes in the **security** account + + 1. - [ ] Obtain AWS CLI Administrator credentials for the security account + 1. - [ ] Navigate to the security account folder + + ```bash + cd ../security/ + ``` + + 1. - [ ] Using your credentials, run `terragrunt plan`. + + ```bash + terragrunt run --all --non-interactive --backend-bootstrap plan + ``` + + 1. - [ ] After the plan succeeds, apply the changes: + + ```bash + terragrunt run --all --non-interactive apply + ``` + + 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. e.g. + + ```bash + terragrunt run --all providers lock -platform=darwin_amd64 -platform=linux_amd64 + ``` + +1. - [ ] Apply infrastructure changes in the **shared** account + + 1. - [ ] Obtain AWS CLI Administrator credentials for the shared account. You may need to grant your user access to the `AWSAdministratorAccess` permission set in the shared account from the management account's Identity Center Admin console. + 1. - [ ] Using your credentials, create a service role + + ```bash + aws iam create-service-linked-role --aws-service-name autoscaling.amazonaws.com + ``` + + 1. - [ ] Navigate to the shared account folder + + ```bash + cd ../shared/ + ``` + + 1. - [ ] Using your credentials, run `terragrunt plan`. + + ```bash + terragrunt run --all --non-interactive --backend-bootstrap plan + ``` + + 1. - [ ] After the plan succeeds, apply the changes: + + ```bash + terragrunt run --all --non-interactive apply + ``` + + 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. e.g. + + ```bash + terragrunt run --all providers lock -platform=darwin_amd64 -platform=linux_amd64 + ``` + +1. - [ ] Commit your local changes and push them to the `bootstrap-repository` branch. + + ```bash + cd .. + git add . + git commit -m "Bootstrap infrastructure-live-root repository final commit [skip ci]" + git push origin bootstrap-repository + ``` + +1. - [ ] Merge the open merge request. **Ensure [skip ci] is present in the commit message.** + + +

    Create a new infrastructure-live-access-control (optional, required for enterprise customers)

    + +

    Create a new GitLab project

    + +1. Navigate to the group. +1. Click the **New Project** button. +1. Enter the name for the project as `infrastructure-live-access-control`. +1. Click **Create Project**. +1. Clone the project to your local machine. +1. Navigate to the project directory. +1. Create a new branch `bootstrap-repository`. + +

    Install dependencies

    + +Run `mise install boilerplate@0.8.1` to install the boilerplate tool. + +

    Bootstrap the repository

    + +

    Configure the variables required to run the boilerplate template

    + +Copy the content below to a `vars.yaml` file in the root of your project and update the customizable values as needed. + +```yaml title="vars.yaml" +SCMProvider: GitLab + +# The GitLab group to use for the infrastructure repositories. This should include any additional sub-groups in the name +# Example: acme/prod +SCMProviderGroup: $$GITLAB_GROUP_NAME$$ + +# The GitLab project to use for the infrastructure-live-access-control repository. +InfraLiveAccessControlRepoName: infrastructure-live-access-control + +# The name of the branch to deploy to. +# Example: main +DeployBranchName: $$DEPLOY_BRANCH_NAME$$ + +# The name prefix to use for creating resources e.g S3 bucket for OpenTofu state files +# Example: acme +OrgNamePrefix: $$ORG_NAME_PREFIX$$ + +# The default region for AWS Resources +# Example: us-east-1 +DefaultRegion: $$DEFAULT_REGION$$ + +################################################################################ +# OPTIONAL VARIABLES WITH THEIR DEFAULT VALUES. UNCOMMENT AND MODIFY IF NEEDED. +################################################################################ + +# The AWS partition to use. +# AWSPartition: aws +``` + +

    Generate the repository contents

    + +1. Run the following command, from the root of your project, to generate the `infrastructure-live-access-control` repository contents: + + ```bash + boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/devops-foundations-infrastructure-live-access-control/?ref=4.0.1" --output-folder . --var-file vars.yaml --non-interactive + ``` + + This command adds all code required to set up your `infrastructure-live-access-control` repository. The generated files fall under the following categories: + + - GitLab Pipelines workflow file + - Gruntwork Pipelines configuration files + - Module defaults files for GitLab OIDC roles and policies + + +2. Commit your local changes and push them to the `bootstrap-repository` branch. + + ```bash + git add . + git commit -m "Bootstrap infrastructure-live-access-control repository [skip ci]" + git push origin bootstrap-repository + ``` + + Skipping the CI/CD process now because there is no infrastructure to apply; repository simply contains the GitLab OIDC role module defaults to enable GitLab OIDC authentication from repositories other than `infrastructure-live-root`. + +3. Create a new merge request for the `bootstrap-repository` branch. Review the changes to understand the GitLab OIDC role module defaults. +4. Merge the open merge request. **Ensure [skip ci] is present in the commit message.** + +

    Create a new infrastructure-catalog (optional)

    + +The `infrastructure-catalog` repository is a collection of modules that can be used to build your infrastructure. It is a great way to share modules with your team and across your organization. Learn more about the [Developer Self-Service](/2.0/docs/overview/concepts/developer-self-service) concept. + +

    Create a new GitLab project

    + +1. Navigate to the group. +1. Click the **New Project** button. +1. Enter the name for the project as `infrastructure-catalog`. +1. Click **Create Project**. +1. Clone the project to your local machine. +1. Navigate to the project directory. +1. Create a new branch `bootstrap-repository`. + +

    Install dependencies

    + +Run `mise install boilerplate@0.8.1` to install the boilerplate tool. + +

    Bootstrap the repository

    + +

    Configure the variables required to run the boilerplate template

    + +Copy the content below to a `vars.yaml` file in the root of your project and update the customizable values as needed. + +```yaml title="vars.yaml" +# The name of the repository to use for the catalog. +InfraModulesRepoName: infrastructure-catalog + +# The version of the Gruntwork Service Catalog to use. https://github.com/gruntwork-io/terraform-aws-service-catalog +ServiceCatalogVersion: v0.111.2 + +# The version of the Gruntwork VPC module to use. https://github.com/gruntwork-io/terraform-aws-vpc +VpcVersion: v0.26.22 + +# The default region for AWS Resources +# Example: us-east-1 +DefaultRegion: $$DEFAULT_REGION$$ + +################################################################################ +# OPTIONAL VARIABLES WITH THEIR DEFAULT VALUES. UNCOMMENT AND MODIFY IF NEEDED. +################################################################################ + +# The base URL of the Organization to use for the catalog. +# If you are using Gruntwork's RepoCopier tool, this should be the base URL of the repository you are copying from. +# RepoBaseUrl: github.com/gruntwork-io + +# The name prefix to use for the Gruntwork RepoCopier copied repositories. +# Example: gruntwork-io- +# GWCopiedReposNamePrefix: +``` + +

    Generate the repository contents

    + +1. Run the following command, from the root of your project, to generate the `infrastructure-catalog` repository contents: + + ```bash + boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/devops-foundations-infrastructure-modules/?ref=4.0.1" --output-folder . --var-file vars.yaml --non-interactive + ``` + + This command adds some code required to set up your `infrastructure-catalog` repository. The generated files are some usable modules for your infrastructure. + +1. Commit your local changes and push them to the `bootstrap-repository` branch. + + ```bash + git add . + git commit -m "Bootstrap infrastructure-catalog repository" + git push origin bootstrap-repository + ``` + +1. Create a new merge request for the `bootstrap-repository` branch. Review the changes to understand the example Service Catalog modules. +1. Merge the open merge request. + +
    +
    + diff --git a/docs/2.0/docs/accountfactory/installation/index.md b/docs/2.0/docs/accountfactory/installation/index.md index f67e6fafd1..c61d7b467e 100644 --- a/docs/2.0/docs/accountfactory/installation/index.md +++ b/docs/2.0/docs/accountfactory/installation/index.md @@ -6,16 +6,14 @@ Account Factory is automatically integrated into [new Pipelines root repositorie By default, Account Factory includes the following components: -- An HTML form for generating workflow inputs: `.github/workflows/account-factory-inputs.html` - -- A workflow for generating new requests: `.github/workflows/account-factory.yml` - - A root directory for tracking account requests: `_new-account-requests` +- A mechanism for generating new account request files: `_new-account-requests/account-.yml` + - A YAML file for tracking account names and IDs: `accounts.yml` For detailed instructions on using these components, refer to the [Vending a New AWS Account Guide](/2.0/docs/accountfactory/guides/vend-aws-account). ## Configuring account factory -Account Factory is fully operational for vending new accounts without requiring any configuration changes. However, a [comprehensive reference for all configuration options is available here](/2.0/reference/accountfactory/configurations), allowing you to customize values and templates for generating Infrastructure as Code (IaC) for new accounts. +Account Factory is fully operational for vending new accounts without requiring any configuration changes. However, a [comprehensive reference for all configuration options is available here](/2.0/reference/accountfactory/configurations-as-code), allowing you to customize values and templates for generating Infrastructure as Code (IaC) for new accounts. diff --git a/docs/2.0/docs/overview/getting-started/index.md b/docs/2.0/docs/overview/getting-started/index.md index 4d2a3fb34e..f8439b1e95 100644 --- a/docs/2.0/docs/overview/getting-started/index.md +++ b/docs/2.0/docs/overview/getting-started/index.md @@ -22,12 +22,12 @@ Set up authentication for Pipelines to enable secure automation of infrastructur ### Step 4: Create new Pipelines repositories - [New GitHub repository](/2.0/docs/pipelines/installation/addingnewrepo) -- [New GitLab repository](/2.0/docs/pipelines/installation/addingnewgitlabrepo) +- [New GitLab repository](/2.0/docs/pipelines/installation/addinggitlabrepo) Alternatively, you can add Pipelines to an existing repository: - [Existing GitHub repository](/2.0/docs/pipelines/installation/addingexistingrepo) -- [Existing GitLab repository](/2.0/docs/pipelines/installation/addinggitlabrepo) +- [Existing GitLab repository](/2.0/docs/pipelines/installation/addingexistinggitlabrepo) diff --git a/docs/2.0/docs/pipelines/architecture/ci-workflows.md b/docs/2.0/docs/pipelines/architecture/ci-workflows.md index 65ca5b4d55..587fc80b81 100644 --- a/docs/2.0/docs/pipelines/architecture/ci-workflows.md +++ b/docs/2.0/docs/pipelines/architecture/ci-workflows.md @@ -5,8 +5,8 @@ Pipelines integrates with your repositories through GitHub/GitLab Workflows, lev import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; - - + + ```yml jobs: @@ -15,7 +15,7 @@ jobs: ``` - + ```yml include: @@ -38,8 +38,8 @@ If you [fork the Gruntwork Workflows](https://docs.gruntwork.io/2.0/docs/pipelin ## Workflow dependencies - - + + The `pipelines-workflows` repository includes the following reusable workflows: @@ -70,7 +70,7 @@ If you are using [Gruntwork Account Factory](/2.0/docs/accountfactory/concepts/) - `pipelines.yml` - Uses `pipelines.yml`. - + Your `.gitlab-ci.yml` file will include the following workflow: diff --git a/docs/2.0/docs/pipelines/concepts/cloud-auth/aws.mdx b/docs/2.0/docs/pipelines/concepts/cloud-auth/aws.mdx index 8a4b014fa7..66e547a35c 100644 --- a/docs/2.0/docs/pipelines/concepts/cloud-auth/aws.mdx +++ b/docs/2.0/docs/pipelines/concepts/cloud-auth/aws.mdx @@ -1,7 +1,7 @@ # Authenticating to AWS -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" Pipelines automatically determines which AWS account(s) to authenticate with, and how to authenticate with them, based on the infrastructure changes proposed in your pull request. @@ -15,7 +15,7 @@ When creating a new AWS account, it is necessary to update the AWS OIDC configur ## How Pipelines knows what AWS principals to authenticate as - + For HCL configurations, account mappings are defined using environments specified in HCL configuration files in the `.gruntwork` directory (you are using these if you see `.hcl` files in your `.gruntwork` directory). @@ -177,7 +177,7 @@ Critically, the issuer is a URL that is both specified inside the token, and is Typically the issuer is the hostname of the CI/CD platform, such as `https://gitlab.com`, and thus oidc configuration (and public keys) can be fetched from the publicly available route, `https://gitlab.com/.well-known/openid-configuration` etc. -If, however, your CI/CD platform is hosted privately, you will need to host the public key and OIDC configuration in a publicly accessible location, such as an S3 bucket, and update the issuer in your CI/CD configuration to point to that location. The diagrams below illustrate both approaches - fetching the keys directly from your CI/CD platform via a public route, or fetching the keys from a public S3 bucket. +If, however, your CI/CD platform is hosted privately, you will need to host the public key and OIDC configuration in a publicly accessible location, such as an S3 bucket, and update the issuer in your CI/CD configuration to point to that location. The diagrams below illustrate both approaches - fetching the keys directly from your CI/CD platform via a public route, or fetching the keys from a public S3 bucket. ### Publicly Available CI/CD Platforms @@ -200,7 +200,7 @@ sequenceDiagram ### Non-Publicly Available CI/CD Platforms -This diagram follows the [recommended approach](https://docs.gitlab.com/ci/cloud_services/aws/#configure-a-non-public-gitlab-instance) from GitLab for private CI/CD platform instances. The guidance is to host the public key in a publicly accessible S3 bucket and update the issuer in the CI/CD configuration. +This diagram follows the [recommended approach](https://docs.gitlab.com/ci/cloud_services/aws/#configure-a-non-public-gitlab-instance) from GitLab for private CI/CD platform instances. The guidance is to host the public key in a publicly accessible S3 bucket and update the issuer in the CI/CD configuration. A common alternative approach to re-hosting the public key and OIDC configuration is to update the application firewalls to specifically allow requests to the `.well-known/openid-configuration` endpoint and the JWKS endpoint from the AWS IdP. diff --git a/docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md b/docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md deleted file mode 100644 index 14a30f97ff..0000000000 --- a/docs/2.0/docs/pipelines/installation/addingnewgitlabrepo.md +++ /dev/null @@ -1,547 +0,0 @@ -import CustomizableValue from '/src/components/CustomizableValue'; - -# Creating a New GitLab Project with Pipelines - -This guide walks you through the process of setting up a new GitLab Project with the Gruntwork Platform. By the end, you'll have a fully configured GitLab CI/CD pipeline that can create new AWS accounts and deploy infrastructure changes automatically. - -:::info -To use Gruntwork Pipelines in an **existing** GitLab repository, see this [guide](/2.0/docs/pipelines/installation/addinggitlabrepo). -::: - -## Prerequisites - -Before you begin, make sure you have: - -- Basic familiarity with Git, GitLab, and infrastructure as code concepts -- Completed the [AWS Landing Zone setup](/2.0/docs/accountfactory/prerequisites/awslandingzone) -- Have programmatic access to the AWS accounts created in the [AWS Landing Zone setup](/2.0/docs/accountfactory/prerequisites/awslandingzone) -- Completed the [Pipelines Auth setup for GitLab](/2.0/docs/pipelines/installation/viamachineusers#gitlab) and setup a machine user with appropriate PAT tokens -- Local access to Gruntwork's GitHub repositories, specifically the [architecture catalog](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/) - -
    -Additional setup for **custom GitLab instances only** - -### Fork the Pipelines workflow project - -You must [fork](https://docs.gitlab.com/user/project/repository/forking_workflow/#create-a-fork) Gruntwork's public [Pipelines workflow project](https://gitlab.com/gruntwork-io/pipelines-workflows) into your own GitLab instance. -This is necessary because Gruntwork Pipelines uses [GitLab CI/CD components](/2.0/docs/pipelines/architecture/ci-workflows), and GitLab requires components to reside within the [same GitLab instance as the project referencing them](https://docs.gitlab.com/ci/components/#use-a-component). - -When creating the fork, we recommend configuring it as a public mirror of the original Gruntwork project and ensuring that tags are included. - -### Ensure OIDC configuration and JWKS are publicly accessible - -This step only applies if you are using a self-hosted GitLab instance that is not accessible from the public internet. If you are using GitLab.com or a self-hosted instance that is publicly accessible, you can skip this step. - -1. [Follow GitLab's instructions](https://docs.gitlab.com/ci/cloud_services/aws/#configure-a-non-public-gitlab-instance) for hosting your OIDC configuration and JWKS in a public location (e.g. S3 Bucket). This is necessary for both Gruntwork and the AWS OIDC provider to access the GitLab OIDC configuration and JWKS when authenticating JWT's generated by your custom instance. -2. Note the (stored as `ci_id_tokens_issuer_url` in your `gitlab.rb` file per GitLab's instructions) generated above for reuse in the next steps. -
    - -1. Create a new GitLab project for your `infrastructure-live-root` repository. -1. Install dependencies. -1. Configure the variables required to run the infrastructure-live-root boilerplate template. -1. Create your `infrastructure-live-root` repository contents using Gruntwork's architecture-catalog template. -1. Apply the account baselines to your AWS accounts. - - -## Create a new infrastructure-live-root - -### Authorize Your GitLab Group with Gruntwork - -To use Gruntwork Pipelines with GitLab, your group needs authorization from Gruntwork. Email your Gruntwork account manager or support@gruntwork.io with: - - ``` - GitLab group name(s): $$GITLAB_GROUP_NAME$$ (e.g. acme-io) - GitLab Issuer URL: $$ISSUER_URL$$ (For most users this is the URL of your GitLab instance e.g. https://gitlab.acme.io, if your instance is not publicly accessible, this should be a separate URL that is publicly accessible per step 0, e.g. https://s3.amazonaws.com/YOUR_BUCKET_NAME/) - Organization name: $$ORGANIZATION_NAME$$ (e.g. Acme, Inc.) - ``` - -Continue with the rest of the guide while you await confirmation when your group has been authorized. - -### Create a new GitLab project - -1. Navigate to the group. -1. Click the **New Project** button. -1. Enter a name for the project. e.g. infrastructure-live-root -1. Click **Create Project**. -1. Clone the project to your local machine. -1. Navigate to the project directory. -1. Create a new branch `bootstrap-repository`. - -### Install dependencies - -1. Install [mise](https://mise.jdx.dev/getting-started.html) on your machine. -1. Activate mise in your shell: - - ```bash - # For Bash - echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc - - # For Zsh - echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc - - # For Fish - echo 'mise activate fish | source' >> ~/.config/fish/config.fish - ``` - -1. Add the following to a .mise.toml file in the root of your project: - - ```toml title=".mise.toml" - [tools] - boilerplate = "0.8.1" - opentofu = "1.10.0" - terragrunt = "0.81.6" - awscli = "latest" - ``` - -1. Run `mise install`. - - -### Bootstrap the repository - -Gruntwork provides a boilerplate [template](https://github.com/gruntwork-io/terraform-aws-architecture-catalog/tree/main/templates/devops-foundations-infrastructure-live-root) that incorporates best practices while allowing for customization. The template is designed to scaffold a best-practices Terragrunt configurations. It includes patterns for module defaults, global variables, and account baselines. Additionally, it integrates Gruntwork Pipelines. - -#### Configure the variables required to run the boilerplate template - -Copy the content below to a `vars.yaml` file in the root of your project and update the `` values with your own. - -```yaml title="vars.yaml" -SCMProvider: GitLab - -# The GitLab group to use for the infrastructure repositories. This should include any additional sub-groups in the name -# Example: acme/prod -SCMProviderGroup: $$GITLAB_GROUP_NAME$$ - -# The GitLab project to use for the infrastructure-live repository. -SCMProviderRepo: infrastructure-live-root - -# The base URL of your GitLab group repos. E.g., gitlab.com/ -RepoBaseUrl: $$GITLAB_GROUP_REPO_BASE_URL$$ - -# The name of the branch to deploy to. -# Example: main -DeployBranchName: $$DEPLOY_BRANCH_NAME$$ - -# The AWS account ID for the management account -# Example: "123456789012" -AwsManagementAccountId: $$AWS_MANAGEMENT_ACCOUNT_ID$$ - -# The AWS account ID for the security account -# Example: "123456789013" -AwsSecurityAccountId: $$AWS_SECURITY_ACCOUNT_ID$$ - -# The AWS account ID for the logs account -# Example: "123456789014" -AwsLogsAccountId: $$AWS_LOGS_ACCOUNT_ID$$ - -# The AWS account ID for the shared account -# Example: "123456789015" -AwsSharedAccountId: $$AWS_SHARED_ACCOUNT_ID$$ - -# The AWS account Email for the logs account -# Example: logs@acme.com -AwsLogsAccountEmail: $$AWS_LOGS_ACCOUNT_EMAIL$$ - -# The AWS account Email for the management account -# Example: management@acme.com -AwsManagementAccountEmail: $$AWS_MANAGEMENT_ACCOUNT_EMAIL$$ - -# The AWS account Email for the security account -# Example: security@acme.com -AwsSecurityAccountEmail: $$AWS_SECURITY_ACCOUNT_EMAIL$$ - -# The AWS account Email for the shared account -# Example: shared@acme.com -AwsSharedAccountEmail: $$AWS_SHARED_ACCOUNT_EMAIL$$ - -# The name prefix to use for creating resources e.g S3 bucket for OpenTofu state files -# Example: acme -OrgNamePrefix: $$ORG_NAME_PREFIX$$ - -# The default region for AWS Resources -# Example: us-east-1 -DefaultRegion: $$DEFAULT_REGION$$ - -################################################################################ -# OPTIONAL VARIABLES WITH THEIR DEFAULT VALUES. UNCOMMENT AND MODIFY IF NEEDED. -################################################################################ - -# List of the git repositories to populate for the catalog -# CatalogRepositories: -# - github.com/gruntwork-io/terraform-aws-service-catalog - -# The AWS partition to use. Options: aws, aws-us-gov -# AWSPartition: aws - -# The name of the IAM role to use for the plan job. -# PlanIAMRoleName: root-pipelines-plan - -# The name of the IAM role to use for the apply job. -# ApplyIAMRoleName: root-pipelines-apply - -# The default tags to apply to all resources. -# DefaultTags: -# "{{ .OrgNamePrefix }}:Team": "DevOps" - -# The version for terraform-aws-security module to use for OIDC provider and roles provisioning -# SecurityModulesVersion: v0.75.18 - -# The URL of the custom SCM provider instance. Set this if you are using a custom instance of GitLab. -# CustomSCMProviderInstanceURL: https://gitlab.example.io - -# The relative path from the host server to the custom pipelines workflow repository. Set this if you are using a custom/forked instance of the pipelines workflow. -# CustomWorkflowHostRelativePath: pipelines-workflows -``` - -#### Generate the repository contents - -1. Run the following command, from the root of your project, to generate the `infrastructure-live-root` repository contents: - - - ```bash - boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/devops-foundations-infrastructure-live-root/?ref=main" --output-folder . --var-file vars.yaml --non-interactive - ``` - - This command adds all code required to set up your `infrastructure-live-root` repository. -1. Remove the boilerplate dependency from the `mise.toml` file. It is no longer needed. - -1. Commit your local changes and push them to the `bootstrap-repository` branch. - - ```bash - git add . - git commit -m "Bootstrap infrastructure-live-root repository initial commit [skip ci]" - git push origin bootstrap-repository - ``` - - Skipping the CI/CD process for now; you will manually apply the infrastructure baselines to your AWS accounts in a later step. - -1. Create a new merge request for the `bootstrap-repository` branch. Review the changes to understand what will be applied to your AWS accounts. The generated files fall under the following categories: - - - GitLab Pipelines workflow file - - Gruntwork Pipelines configuration files - - Module defaults files for infrastructure code - - Account baselines and GitLab OIDC module scaffolding files for your core AWS accounts: management, security, logs and shared. - -### Apply the account baselines to your AWS accounts - -You will manually `terragrunt apply` the generated infrastructure baselines to get your accounts bootstrapped **before** merging this content into your main branch. - -:::tip -You can utilize the AWS SSO Portal to obtain temporary AWS credentials necessary for subsequent steps: - -1. Sign in to the Portal page and select your preferred account to unveil the roles accessible to your SSO user. -1. Navigate to the "Access keys" tab adjacent to the "AWSAdministratorAccess" role. -1. Copy the "AWS environment variables" provided and paste them into your terminal for usage. -::: - - -1. [ ] Apply infrastructure changes in the **management** account - - 1. - [ ] Obtain AWS CLI Administrator credentials for the management account - - 1. - [ ] Navigate to the management account folder - - ```bash - cd management/ - ``` - - 1. - [ ] Using your credentials, run `terragrunt plan`. - - ```bash - terragrunt run --all plan --terragrunt-non-interactive - ``` - - 1. - [ ] After the plan succeeds, apply the changes: - - ```bash - terragrunt run --all apply --terragrunt-non-interactive - ``` - - 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. The lock files will be committed in the final step of the setup. e.g. - - ```bash - terragrunt run --all providers -- lock -platform=darwin_amd64 -platform=linux_amd64 - ``` - - 1. - [ ] Update Permissions for Account Factory Portfolio - - The account factory pipeline _will fail_ until you grant the pipelines roles (`root-pipelines-plan` and `root-pipelines-apply`) access to the portfolio. This step **must be done after** you provision the pipelines roles in the management account (where control tower is set up). - - Access to the portfolio is separate from IAM access, it **must** be granted in the Service Catalog console. - - #### **Steps to grant access** - - To grant access to the Account Factory Portfolio, you **must** be an individual with Service Catalog administrative permissions. - - 1. Log into the management AWS account - 1. Go into the Service Catalog console - 1. Ensure you are in your default region(control-tower region) - 1. Select the **Portfolios** option in **Administration** from the left side navigation panel - 1. Click on the portfolio named **AWS Control Tower Account Factory Portfolio** - 1. Select the **Access** tab - 1. Click the **Grant access** button - 1. In the **Access type** section, leave the default value of **IAM Principal** - 1. Select the **Roles** tab in the lower section - 1. Enter `root-pipelines` into the search bar, there should be two results (`root-pipelines-plan` and `root-pipelines-apply`). Click the checkbox to the left of each role name. - 1. Click the **Grant access** button in the lower right hand corner - - 1. - [ ] Increase Account Quota Limit (OPTIONAL) - - Note that DevOps Foundations makes it very convenient, and therefore likely, that you will encounter one of the soft limits imposed by AWS on the number of accounts you can create. - - You may need to request a limit increase for the number of accounts you can create in the management account, as the default is currently 10 accounts. - - To request an increase to this limit, search for "Organizations" in the AWS management console [here](https://console.aws.amazon.com/servicequotas/home/dashboard) and request a limit increase to a value that makes sense for your organization. - -1. - [ ] Apply infrastructure changes in the **logs** account - - 1. - [ ] Obtain AWS CLI Administrator credentials for the logs account - 1. - [ ] Navigate to the logs account folder - - ```bash - cd ../logs/ - ``` - - 1. - [ ] Using your credentials, run `terragrunt plan`. - - ```bash - terragrunt run --all plan --terragrunt-non-interactive - ``` - - 1. - [ ] After the plan succeeds, apply the changes: - - ```bash - terragrunt run --all apply --terragrunt-non-interactive - ``` - - 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. e.g. - - ```bash - terragrunt run --all providers lock -platform=darwin_amd64 -platform=linux_amd64 - ``` - -1. - [ ] Apply infrastructure changes in the **security** account - - 1. - [ ] Obtain AWS CLI Administrator credentials for the security account - 1. - [ ] Navigate to the security account folder - - ```bash - cd ../security/ - ``` - - 1. - [ ] Using your credentials, run `terragrunt plan`. - - ```bash - terragrunt run --all plan --terragrunt-non-interactive - ``` - - 1. - [ ] After the plan succeeds, apply the changes: - - ```bash - terragrunt run --all apply --terragrunt-non-interactive - ``` - - 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. e.g. - - ```bash - terragrunt run --all providers lock -platform=darwin_amd64 -platform=linux_amd64 - ``` - -1. - [ ] Apply infrastructure changes in the **shared** account - - 1. - [ ] Obtain AWS CLI Administrator credentials for the shared account. You may need to grant your user access to the `AWSAdministratorAccess` permission set in the shared account from the management account's Identity Center Admin console. - 1. - [ ] Using your credentials, create a service role - - ```bash - aws iam create-service-linked-role --aws-service-name autoscaling.amazonaws.com - ``` - - 1. - [ ] Navigate to the shared account folder - - ```bash - cd ../shared/ - ``` - - 1. - [ ] Using your credentials, run `terragrunt plan`. - - ```bash - terragrunt run --all plan --terragrunt-non-interactive - ``` - - 1. - [ ] After the plan succeeds, apply the changes: - - ```bash - terragrunt run --all apply --terragrunt-non-interactive - ``` - - 1. - [ ] After applying the changes, make sure to lock providers in your `.terraform.lock.hcl` files. e.g. - - ```bash - terragrunt run --all providers lock -platform=darwin_amd64 -platform=linux_amd64 - ``` - -1. - [ ] Commit your local changes and push them to the `bootstrap-repository` branch. - - ```bash - cd .. - git add . - git commit -m "Bootstrap infrastructure-live-root repository final commit [skip ci]" - git push origin bootstrap-repository - ``` - -1. - [ ] Merge the open merge request. **Ensure [skip ci] is present in the commit message.** - - -## Create a new infrastructure-live-access-control (optional) - -### Create a new GitLab project - -1. Navigate to the group. -1. Click the **New Project** button. -1. Enter the name for the project as `infrastructure-live-access-control`. -1. Click **Create Project**. -1. Clone the project to your local machine. -1. Navigate to the project directory. -1. Create a new branch `bootstrap-repository`. - -### Install dependencies - -Run `mise install boilerplate@0.8.1` to install the boilerplate tool. - -### Bootstrap the repository - -#### Configure the variables required to run the boilerplate template - -Copy the content below to a `vars.yaml` file in the root of your project and update the customizable values as needed. - -```yaml title="vars.yaml" -SCMProvider: GitLab - -# The GitLab group to use for the infrastructure repositories. This should include any additional sub-groups in the name -# Example: acme/prod -SCMProviderGroup: $$GITLAB_GROUP_NAME$$ - -# The GitLab project to use for the infrastructure-live repository. -SCMProviderRepo: infrastructure-live-access-control - -# The name of the branch to deploy to. -# Example: main -DeployBranchName: $$DEPLOY_BRANCH_NAME$$ - -# The name prefix to use for creating resources e.g S3 bucket for OpenTofu state files -# Example: acme -OrgNamePrefix: $$ORG_NAME_PREFIX$$ - -# The default region for AWS Resources -# Example: us-east-1 -DefaultRegion: $$DEFAULT_REGION$$ - -################################################################################ -# OPTIONAL VARIABLES WITH THEIR DEFAULT VALUES. UNCOMMENT AND MODIFY IF NEEDED. -################################################################################ - -# The AWS partition to use. -# AWSPartition: aws -``` - -#### Generate the repository contents - -1. Run the following command, from the root of your project, to generate the `infrastructure-live-access-control` repository contents: - - - ```bash - boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/devops-foundations-infrastructure-live-access-control/?ref=main" --output-folder . --var-file vars.yaml --non-interactive - ``` - - This command adds all code required to set up your `infrastructure-live-access-control` repository. The generated files fall under the following categories: - - - GitLab Pipelines workflow file - - Gruntwork Pipelines configuration files - - Module defaults files for GitLab OIDC roles and policies - - -2. Commit your local changes and push them to the `bootstrap-repository` branch. - - ```bash - git add . - git commit -m "Bootstrap infrastructure-live-access-control repository [skip ci]" - git push origin bootstrap-repository - ``` - - Skipping the CI/CD process now because there is no infrastructure to apply; repository simply contains the GitLab OIDC role module defaults to enable GitLab OIDC authentication from repositories other than `infrastructure-live-root`. - -3. Create a new merge request for the `bootstrap-repository` branch. Review the changes to understand the GitLab OIDC role module defaults. -4. Merge the open merge request. **Ensure [skip ci] is present in the commit message.** - -## Create a new infrastructure-catalog (optional) - -The `infrastructure-catalog` repository is a collection of modules that can be used to build your infrastructure. It is a great way to share modules with your team and across your organization. Learn more about the [Developer Self-Service](/2.0/docs/overview/concepts/developer-self-service) concept. - -### Create a new GitLab project - -1. Navigate to the group. -1. Click the **New Project** button. -1. Enter the name for the project as `infrastructure-catalog`. -1. Click **Create Project**. -1. Clone the project to your local machine. -1. Navigate to the project directory. -1. Create a new branch `bootstrap-repository`. - -### Install dependencies - -Run `mise install boilerplate@0.8.1` to install the boilerplate tool. - -### Bootstrap the repository - -#### Configure the variables required to run the boilerplate template - -Copy the content below to a `vars.yaml` file in the root of your project and update the customizable values as needed. - -```yaml title="vars.yaml" -# The name of the repository to use for the catalog. -InfraModulesRepoName: infrastructure-catalog - -# The version of the Gruntwork Service Catalog to use. https://github.com/gruntwork-io/terraform-aws-service-catalog -ServiceCatalogVersion: v0.111.2 - -# The version of the Gruntwork VPC module to use. https://github.com/gruntwork-io/terraform-aws-vpc -VpcVersion: v0.26.22 - -# The default region for AWS Resources -# Example: us-east-1 -DefaultRegion: $$DEFAULT_REGION$$ - -################################################################################ -# OPTIONAL VARIABLES WITH THEIR DEFAULT VALUES. UNCOMMENT AND MODIFY IF NEEDED. -################################################################################ - -# The base URL of the Organization to use for the catalog. -# If you are using Gruntwork's RepoCopier tool, this should be the base URL of the repository you are copying from. -# RepoBaseUrl: github.com/gruntwork-io - -# The name prefix to use for the Gruntwork RepoCopier copied repositories. -# Example: gruntwork-io- -# GWCopiedReposNamePrefix: -``` - - -#### Generate the repository contents - -1. Run the following command, from the root of your project, to generate the `infrastructure-catalog` repository contents: - - - ```bash - boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/devops-foundations-infrastructure-modules/?ref=main" --output-folder . --var-file vars.yaml --non-interactive - ``` - - This command adds some code required to set up your `infrastructure-catalog` repository. The generated files are some usable modules for your infrastructure. - -1. Commit your local changes and push them to the `bootstrap-repository` branch. - - ```bash - git add . - git commit -m "Bootstrap infrastructure-catalog repository" - git push origin bootstrap-repository - ``` - -1. Create a new merge request for the `bootstrap-repository` branch. Review the changes to understand the example Service Catalog modules. -1. Merge the open merge request. diff --git a/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx b/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx index b3b0ab10a1..fdfd50fbd3 100644 --- a/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx +++ b/docs/2.0/docs/pipelines/installation/addingnewrepo.mdx @@ -1,8 +1,8 @@ # Bootstrap Pipelines in a New GitHub Repository -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import PersistentCheckbox from '/src/components/PersistentCheckbox'; +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" +import PersistentCheckbox from "/src/components/PersistentCheckbox" To configure Gruntwork Pipelines in a new GitHub repository, complete the following steps (which are explained in detail below): @@ -27,7 +27,10 @@ There are two ways to configure SCM access for Pipelines: :::note Progress Checklist - + ::: @@ -58,8 +61,14 @@ cd infrastructure-live :::note Progress Checklist - - + + ::: @@ -95,7 +104,7 @@ mise ls-remote boilerplate ### Cloud-specific bootstrap instructions - + The resources that you need provisioned in AWS to start managing resources with Pipelines are: @@ -121,6 +130,7 @@ The process that we'll follow to get these resources ready for Pipelines is: 3. (Optionally) Bootstrap additional AWS accounts until all your AWS accounts are ready for Pipelines {/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Bootstrap your `infrastructure-live` repository

    To bootstrap your `infrastructure-live` repository, we'll use Boilerplate to scaffold it with the necessary content for Pipelines to function. @@ -175,7 +185,10 @@ boilerplate \ :::note Progress Checklist - + ::: @@ -187,10 +200,14 @@ mise install :::note Progress Checklist - + ::: {/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Provisioning the resources

    Once you've set up the Terragrunt configurations, you can use Terragrunt to provision the resources in your AWS account. @@ -219,7 +236,10 @@ We're using the `--backend-bootstrap` flag here to tell Terragrunt to bootstrap :::note Progress Checklist - + ::: @@ -231,11 +251,15 @@ terragrunt run --all --non-interactive --provider-cache apply :::note Progress Checklist - + ::: {/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Optional: Bootstrapping additional AWS accounts

    If you have multiple AWS accounts, and you want to bootstrap them as well, you can do so by following a similar, but slightly condensed process. @@ -307,7 +331,10 @@ boilerplate \ :::note Progress Checklist - + ::: @@ -329,8 +356,14 @@ terragrunt run --all --non-interactive --provider-cache apply :::note Progress Checklist - - + + ::: @@ -369,6 +402,7 @@ The process that we'll follow to get these resources ready for Pipelines is: 5. (Optionally) Bootstrap additional Azure subscriptions until all your Azure subscriptions are ready for Pipelines {/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Bootstrap your `infrastructure-live` repository

    To bootstrap your `infrastructure-live` repository, we'll use Boilerplate to scaffold it with the necessary content for Pipelines to function. @@ -429,7 +463,11 @@ boilerplate \ ::: :::note Progress Checklist - + + ::: Next, install Terragrunt and OpenTofu locally (the `.mise.toml` file in the root of the repository after scaffolding should already be set to the versions you want for Terragrunt and OpenTofu): @@ -439,6 +477,7 @@ mise install ``` {/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Provisioning the resources

    Once you've set up the Terragrunt configurations, you can use Terragrunt to provision the resources in your Azure subscription. @@ -451,11 +490,13 @@ az login :::note Progress Checklist - + ::: - To dynamically configure the Azure provider with a given tenant ID and subscription ID, ensure that you are exporting the following environment variables if you haven't the values via the `az` CLI: - `ARM_TENANT_ID` @@ -470,8 +511,14 @@ export ARM_SUBSCRIPTION_ID="11111111-1111-1111-1111-111111111111" :::note Progress Checklist - - + + ::: First, make sure that everything is set up correctly by running a plan in the subscription directory. @@ -488,7 +535,10 @@ We're using the `--provider-cache` flag here to ensure that we don't re-download :::note Progress Checklist - + ::: @@ -506,10 +556,14 @@ We're adding the `--no-stack-generate` flag here, as Terragrunt will already hav :::note Progress Checklist - + ::: {/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Finalizing Terragrunt configurations

    Once you've provisioned the resources in your Azure subscription, you can finalize the Terragrunt configurations using the bootstrap resources we just provisioned. @@ -598,7 +652,10 @@ EOF :::note Progress Checklist - + ::: @@ -645,12 +702,19 @@ You can use those values to set the values for `plan_client_id` and `apply_clien :::note Progress Checklist - - + + ::: {/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Pulling the resources into state

    Once you've provisioned the resources in your Azure subscription, you can pull the resources into state using the storage account we just provisioned. @@ -667,11 +731,15 @@ We're adding the `-force-copy` flag here to avoid any issues with OpenTofu waiti :::note Progress Checklist - + ::: {/* We're using an h3 tag here instead of a markdown heading to avoid adding content to the ToC that won't work when switching between tabs */} +

    Optional: Bootstrapping additional Azure subscriptions

    If you have multiple Azure subscriptions, and you want to bootstrap them as well, you can do so by following a similar, but slightly condensed process. @@ -749,7 +817,10 @@ boilerplate \ :::note Progress Checklist - + ::: @@ -797,7 +868,10 @@ EOF :::note Progress Checklist - + ::: @@ -819,8 +893,14 @@ We're adding the `--no-stack-generate` flag here, as Terragrunt will already hav :::note Progress Checklist - - + + ::: @@ -868,7 +948,10 @@ EOF :::note Progress Checklist - + ::: @@ -886,7 +969,10 @@ We're adding the `-force-copy` flag here to avoid any issues with OpenTofu waiti :::note Progress Checklist - + ::: @@ -933,8 +1019,14 @@ You can use those values to set the values for `plan_client_id` and `apply_clien :::note Progress Checklist - - + + ::: @@ -959,8 +1051,14 @@ git push :::note Progress Checklist - - + + ::: diff --git a/docs/2.0/docs/pipelines/installation/scm-comparison.md b/docs/2.0/docs/pipelines/installation/scm-comparison.md index 2eb31f54c3..0f2618e5c3 100644 --- a/docs/2.0/docs/pipelines/installation/scm-comparison.md +++ b/docs/2.0/docs/pipelines/installation/scm-comparison.md @@ -12,7 +12,7 @@ Gruntwork Pipelines supports both GitHub Actions and GitLab CI/CD as CI/CD platf | App-based Authentication | ✅ | ❌ | | Machine User Authentication | ✅ | ✅ | | Customizable Workflows | ✅ | ✅ | -| Pull Request Comments | Rich formatting | Rich formatting | -| Repository/Group Authorization | Self-service via GitHub App | Manual via Gruntwork Support | -| Required Setup Time | ~30 minutes | ~30 minutes | +| Pull Request Comments | Rich formatting | Rich formatting | +| Repository/Group Authorization | Self-service via GitHub App | Manual via Gruntwork Support | +| Required Setup Time | ~30 minutes | ~30 minutes | diff --git a/docs/2.0/docs/pipelines/installation/viamachineusers.mdx b/docs/2.0/docs/pipelines/installation/viamachineusers.mdx index 4e897f8cd4..a6c1f378ee 100644 --- a/docs/2.0/docs/pipelines/installation/viamachineusers.mdx +++ b/docs/2.0/docs/pipelines/installation/viamachineusers.mdx @@ -4,12 +4,12 @@ toc_min_heading_level: 2 toc_max_heading_level: 4 --- -# Creating Machine Users - import PersistentCheckbox from "/src/components/PersistentCheckbox" import Tabs from "@theme/Tabs" import TabItem from "@theme/TabItem" +# Creating Machine Users + For GitHub users, of the [two methods](/2.0/docs/pipelines/installation/authoverview.md) for installing Gruntwork Pipelines, we strongly recommend using the [GitHub App](/2.0/docs/pipelines/installation/viagithubapp.md). However, if the GitHub App cannot be used or if machine users are required as a [fallback](/2.0/docs/pipelines/installation/viagithubapp#fallback), this guide outlines how to set up authentication for Pipelines using access tokens and machine users. For GitHub or GitLab users, when using tokens, Gruntwork recommends setting up CI users specifically for Gruntwork Pipelines, separate from human users in your organization. This separation ensures workflows are not disrupted if an employee leaves the company and allows for more precise permission management. Additionally, using CI users allow you to apply granular permissions that may normally be too restrictive for a normal employee to do their daily work. @@ -40,7 +40,7 @@ If screen sharing while generating tokens, **pause or hide your screen** before ### Token types - + GitHub supports two types of tokens: @@ -81,7 +81,7 @@ More information is available [here](https://docs.github.com/en/organizations/ma ![Pending requests](/img/pipelines/security/pending_requests.png) - + GitLab uses access tokens for authentication. There are several types of access tokens in GitLab: @@ -112,8 +112,8 @@ When creating tokens, carefully consider the expiration date and scope of access ## Creating machine users - - + + The recommended setup for Pipelines uses two machine users: one for opening pull requests and running workflows (`ci-user`) and another with read-only access to repositories (`ci-read-only-user`). Each user is assigned restrictive permissions based on their tasks. As a result, both users may need to participate at different stages to successfully run a pipeline job. @@ -155,8 +155,8 @@ Generate the required tokens for the ci-user in their GitHub account. **Checklist:** - - +- [ ] INFRA_ROOT_WRITE_TOKEN created under ci-user +- [ ] ORG_REPO_ADMIN_TOKEN created under ci-user #### INFRA_ROOT_WRITE_TOKEN @@ -273,7 +273,7 @@ Invite `ci-user-read-only` to your `infrastructure-live-root` repository with re **Checklist:** - +- [ ] ci-read-only-user invited to infrastructure-live-root **Create a token for ci-read-only-user** @@ -281,7 +281,7 @@ Generate the following token for the `ci-read-only-user`: **Checklist:** - +- [ ] PIPELINES_READ_TOKEN created under ci-read-only-user #### PIPELINES_READ_TOKEN @@ -297,7 +297,7 @@ Make sure both machine users are added to your team in Gruntwork’s GitHub Orga **Checklist:** - +- [ ] Machine users invited to Gruntwork organization ## Configure secrets for GitHub Actions @@ -312,9 +312,10 @@ Since this guide uses secrets scoped to specific repositories, the token permiss **Checklist:** - - - +- [ ] PIPELINES_READ_TOKEN added to organization secrets +- [ ] INFRA_ROOT_WRITE_TOKEN added to organization secrets +- [ ] ORG_REPO_ADMIN_TOKEN added to organization secrets +
    1. Navigate to your top-level GitHub Organization and select the **Settings** tab. @@ -373,11 +374,12 @@ For more details on creating and using GitHub Actions Organization secrets, refe **Checklist:** - - - - - +- [ ] PIPELINES_READ_TOKEN added to infrastructure-live-root +- [ ] INFRA_ROOT_WRITE_TOKEN added to infrastructure-live-root +- [ ] ORG_REPO_ADMIN_TOKEN added to infrastructure-live-root +- [ ] PIPELINES_READ_TOKEN added to infrastructure-live-access-control +- [ ] ORG_REPO_ADMIN_TOKEN added to infrastructure-live-access-control +
    Gruntwork Pipelines retrieves these secrets from GitHub Actions secrets configured in the repository. For instructions on creating repository Actions secrets, refer to [creating secrets for a repository](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository). @@ -417,20 +419,25 @@ For more information on creating and using GitHub Actions Repository secrets, re
    - + + +For GitLab, Gruntwork Pipelines requires a couple of CI variables. -For GitLab, Gruntwork Pipelines two CI variables. The first, the `PIPELINES_GITLAB_TOKEN` requires the `Developer`, `Maintainer` or `Owner` role and the scopes listed below. This token will be used to authenticate API calls and access repositories within your GitLab group. The second, the `PIPELINES_GITLAB_READ_TOKEN` will be used to access your own code within GitLab. If not set, Pipelines will default to the `CI_JOB_TOKEN` when accessing internal GitLab hosted code. +- `PIPELINES_GITLAB_TOKEN` requires the `Developer`, `Maintainer` or `Owner` role and the scopes listed below. This token will be used to authenticate API calls and access repositories within your GitLab group. +- `PIPELINES_GITLAB_READ_TOKEN` will be used to access your own code within GitLab. If not set, Pipelines will default to the `CI_JOB_TOKEN` when accessing internal GitLab hosted code. +- `PIPELINES_GITLAB_ADMIN_TOKEN` (Enterprise customers only) will be used to create repositories within your GitLab group when provisioning new AWS accounts requiring a dedicated repository. This **MUST** be a Group Access Token but only set as a variable in your infrastructure-live-root's CI/CD variables. ### Creating the Access Token -Gruntwork recommends [creating](https://docs.gitlab.com/user/project/settings/project_access_tokens/#create-a-project-access-token) two Project or Group Access Tokens as best practice: +Gruntwork recommends [creating](https://docs.gitlab.com/user/project/settings/project_access_tokens/#create-a-project-access-token) separate Project or Group Access Tokens as best practice: -| Token Name | Required Scopes | Required Role | Purpose | -| ------------------------------- | -------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------- | -| **PIPELINES_GITLAB_TOKEN** | `api` (and `ai_features` if using GitLab AI) | Developer, Maintainer, or Owner | Making API calls (e.g., creating comments on merge requests) | -| **PIPELINES_GITLAB_READ_TOKEN** | `read_repository` | Any | Accessing GitLab repositories (e.g., your catalog or infrastructure modules) | +| Token Name | Required Scopes | Required Role | Purpose | +| -------------------------------- | -------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------ | +| **PIPELINES_GITLAB_TOKEN** | `api` (and `ai_features` if using GitLab AI) | Developer, Maintainer, or Owner | Making API calls (e.g., creating comments on merge requests) | +| **PIPELINES_GITLAB_READ_TOKEN** | `read_repository` | Any | Accessing GitLab repositories (e.g., your catalog or infrastructure modules) | +| **PIPELINES_GITLAB_ADMIN_TOKEN** | `api` | Maintainer, or Owner | Creating repositories within your GitLab group when provisioning new AWS accounts requiring a dedicated repository | -You may however generate a single token all scopes scopes if you prefer and use it for both purposes. +You may however generate a single token with all scopes scopes if you prefer and use it for all purposes. These tokens will be stored in your CI/CD variables. @@ -445,12 +452,13 @@ Set an expiration date according to your organization's security policies. We re **Checklist:** - - +- [ ] PIPELINES_GITLAB_TOKEN created +- [ ] PIPELINES_GITLAB_READ_TOKEN created +- [ ] PIPELINES_GITLAB_ADMIN_TOKEN created (Enterprise customers only and must be a Group Access Token) ### Configure CI/CD Variables -Add the `PIPELINES_GITLAB_TOKEN` and `PIPELINES_GITLAB_READ_TOKEN` as CI/CD variables at the group or project level: +Add the `PIPELINES_GITLAB_TOKEN` and `PIPELINES_GITLAB_READ_TOKEN` as CI/CD variables at the group or project level. Enterprise customers should set them at the group level so that provisioned repositories have access to them. `PIPELINES_GITLAB_ADMIN_TOKEN` should be set as a project-level variable in your infrastructure-live-root's CI/CD variables. 1. Navigate to your GitLab group or project's **Settings > CI/CD** 2. Expand the **Variables** section @@ -458,13 +466,14 @@ Add the `PIPELINES_GITLAB_TOKEN` and `PIPELINES_GITLAB_READ_TOKEN` as CI/CD vari 4. Mark the variables as **Masked** 5. Leave both the **Protect variable** and **Expand variable reference** options unchecked 6. Select the environments where this variable should be available -7. Set the key to the name of the token e.g. `PIPELINES_GITLAB_TOKEN` or `PIPELINES_GITLAB_READ_TOKEN` +7. Set the key to the name of the token e.g. `PIPELINES_GITLAB_TOKEN`, `PIPELINES_GITLAB_READ_TOKEN` or `PIPELINES_GITLAB_ADMIN_TOKEN` 8. Set the value as the Personal Access Token generated in the [Creating the Access Token](#creating-the-access-token) section **Checklist:** - - +- [ ] PIPELINES_GITLAB_TOKEN added to CI/CD variables +- [ ] PIPELINES_GITLAB_READ_TOKEN added to CI/CD variables +- [ ] PIPELINES_GITLAB_ADMIN_TOKEN added to CI/CD variables :::caution Remember to update this token before it expires to prevent pipeline disruptions. diff --git a/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.mdx b/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.mdx index 7b2f7ca079..ac071bd974 100644 --- a/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.mdx +++ b/docs/2.0/docs/pipelines/tutorials/deploying-to-aws-gov-cloud.mdx @@ -51,7 +51,7 @@ This section covers the Pipelines configuration required to deploy an AWS S3 buc 1. Create a `vars.yaml` file on your local machine with the following content: - + ```yaml title="vars.yaml" AccountName: "$$ACCOUNT_NAME$$" AccountId: "$$ACCOUNT_ID$$" @@ -64,7 +64,7 @@ This section covers the Pipelines configuration required to deploy an AWS S3 buc ``` - + ```yaml title="vars.yaml" AccountName: "$$ACCOUNT_NAME$$" AccountId: "$$ACCOUNT_ID$$" @@ -82,12 +82,12 @@ This section covers the Pipelines configuration required to deploy an AWS S3 buc 3. We'll now use that `vars.yaml` file as input to [boilerplate](https://github.com/gruntwork-io/boilerplate) to generate the Terragrunt code for the OIDC Provider and IAM roles. From the root of your repository, run the following command: - + ```bash boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/github-actions-single-account-setup?ref=X.Y.Z" --output-folder . --var-file vars.yaml --non-interactive ``` - + ```bash boilerplate --template-url "git@github.com:gruntwork-io/terraform-aws-architecture-catalog.git//templates/gitlab-pipelines-single-account-setup?ref=X.Y.Z" --output-folder . --var-file vars.yaml --non-interactive ``` @@ -128,13 +128,13 @@ aws sts get-caller-identity In the event you already have an OIDC provider for your SCM in the AWS account you can import the existing one: - + ``` cd _global/$$ACCOUNT_NAME$$/github-actions-openid-connect-provider/ terragrunt import "aws_iam_openid_connect_provider.github" "ARN_OF_EXISTING_OIDC_PROVIDER" ``` - + ``` cd _global/$$ACCOUNT_NAME$$/gitlab-pipelines-openid-connect-provider/ terragrunt import "aws_iam_openid_connect_provider.gitlab" "ARN_OF_EXISTING_OIDC_PROVIDER" diff --git a/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx b/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx index 4b4e7acaf5..ef25ae1c13 100644 --- a/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx +++ b/docs/2.0/docs/pipelines/tutorials/deploying-your-first-infrastructure-change.mdx @@ -1,6 +1,6 @@ # Deploying your first Infrastructure Change -import CustomizableValue from '/src/components/CustomizableValue'; +import CustomizableValue from "/src/components/CustomizableValue" import Tabs from "@theme/Tabs" import TabItem from "@theme/TabItem" @@ -28,7 +28,7 @@ This section covers creating a cloud storage resource using Pipelines and GitOps ### Adding cloud storage - + :::caution Permissions Required @@ -45,39 +45,39 @@ The default `bootstrap` Terragrunt stack provided in the installation guide incl 1. Create the folder structure for the new S3 bucket in your environment. Replace with the account name you are deploying to and with the AWS region where the S3 bucket will be deployed. - ```bash - mkdir -p $$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3 - touch $$ACCOUNT_NAME$$/$$REGION$$/region.hcl - touch $$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3/terragrunt.hcl - ``` + ```bash + mkdir -p $$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3 + touch $$ACCOUNT_NAME$$/$$REGION$$/region.hcl + touch $$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3/terragrunt.hcl + ``` 2. Add the following content to the `region.hcl` file created earlier. - ```hcl title="$$ACCOUNT_NAME$$/$$REGION$$/region.hcl" - locals { - aws_region = "$$REGION$$" - } - ``` + ```hcl title="$$ACCOUNT_NAME$$/$$REGION$$/region.hcl" + locals { + aws_region = "$$REGION$$" + } + ``` 3. Add the Terragrunt code below to the newly created `terragrunt.hcl` file to define the S3 bucket. Replace with your desired bucket name. Ensure the bucket name is unique. - ```hcl title="$$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3/terragrunt.hcl" - # ------------------------------------------------------------------------------------------------------ - # DEPLOY GRUNTWORK's S3-BUCKET MODULE - # ------------------------------------------------------------------------------------------------------ + ```hcl title="$$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3/terragrunt.hcl" + # ------------------------------------------------------------------------------------------------------ + # DEPLOY GRUNTWORK's S3-BUCKET MODULE + # ------------------------------------------------------------------------------------------------------ - terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-service-catalog.git//modules/data-stores/s3-bucket?ref=v0.116.1" - } + terraform { + source = "git::git@github.com:gruntwork-io/terraform-aws-service-catalog.git//modules/data-stores/s3-bucket?ref=v0.116.1" + } - include "root" { - path = find_in_parent_folders("root.hcl") - } + include "root" { + path = find_in_parent_folders("root.hcl") + } - inputs = { - primary_bucket = "$$S3_BUCKET_NAME$$" - } - ``` + inputs = { + primary_bucket = "$$S3_BUCKET_NAME$$" + } + ``` @@ -94,73 +94,73 @@ The default `bootstrap` Terragrunt stack provided in the installation guide incl 1. Create the folder structure for the new Resource Group and Storage Account in your environment. Replace with the subscription name you are deploying to, with the Azure location where the resources will be deployed, and with your desired resource group name. - ```bash - mkdir -p $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/resource-group - mkdir -p $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/data-storage/storage-account - touch $$SUBSCRIPTION_NAME$$/$$LOCATION$$/region.hcl - touch $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/resource-group/terragrunt.hcl - touch $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/data-storage/storage-account/terragrunt.hcl - ``` + ```bash + mkdir -p $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/resource-group + mkdir -p $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/data-storage/storage-account + touch $$SUBSCRIPTION_NAME$$/$$LOCATION$$/region.hcl + touch $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/resource-group/terragrunt.hcl + touch $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/data-storage/storage-account/terragrunt.hcl + ``` 2. Add the following content to the `region.hcl` file created earlier. - ```hcl title="$$SUBSCRIPTION_NAME$$/$$LOCATION$$/region.hcl" - locals { - azure_location = "$$LOCATION$$" - } - ``` + ```hcl title="$$SUBSCRIPTION_NAME$$/$$LOCATION$$/region.hcl" + locals { + azure_location = "$$LOCATION$$" + } + ``` 3. Add the Terragrunt code below to define the Resource Group. - ```hcl title="$$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/resource-group/terragrunt.hcl" - # ------------------------------------------------------------------------------------------------------ - # DEPLOY GRUNTWORK's AZURE RESOURCE GROUP MODULE - # ------------------------------------------------------------------------------------------------------ + ```hcl title="$$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/resource-group/terragrunt.hcl" + # ------------------------------------------------------------------------------------------------------ + # DEPLOY GRUNTWORK's AZURE RESOURCE GROUP MODULE + # ------------------------------------------------------------------------------------------------------ - include "root" { - path = find_in_parent_folders("root.hcl") - } + include "root" { + path = find_in_parent_folders("root.hcl") + } - terraform { - source = "github.com/gruntwork-io/terragrunt-scale-catalog//modules/azure/resource-group?ref=v1.0.0" - } + terraform { + source = "github.com/gruntwork-io/terragrunt-scale-catalog//modules/azure/resource-group?ref=v1.0.0" + } - inputs = { - name = "$$RESOURCE_GROUP_NAME$$" - location = "$$LOCATION$$" - } - ``` + inputs = { + name = "$$RESOURCE_GROUP_NAME$$" + location = "$$LOCATION$$" + } + ``` 4. Add the Terragrunt code below to define the Storage Account with a dependency on the Resource Group. Replace with your desired storage account name. Ensure the name is unique and follows Azure naming conventions (lowercase letters and numbers only, 3-24 characters). - ```hcl title="$$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/data-storage/storage-account/terragrunt.hcl" - # ------------------------------------------------------------------------------------------------------ - # DEPLOY GRUNTWORK's AZURE STORAGE ACCOUNT MODULE - # ------------------------------------------------------------------------------------------------------ + ```hcl title="$$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$/data-storage/storage-account/terragrunt.hcl" + # ------------------------------------------------------------------------------------------------------ + # DEPLOY GRUNTWORK's AZURE STORAGE ACCOUNT MODULE + # ------------------------------------------------------------------------------------------------------ - include "root" { - path = find_in_parent_folders("root.hcl") - } + include "root" { + path = find_in_parent_folders("root.hcl") + } - terraform { - source = "github.com/gruntwork-io/terragrunt-scale-catalog//modules/azure/storage-account?ref=v1.0.0" - } + terraform { + source = "github.com/gruntwork-io/terragrunt-scale-catalog//modules/azure/storage-account?ref=v1.0.0" + } - dependency "resource_group" { - config_path = "../../resource-group" + dependency "resource_group" { + config_path = "../../resource-group" - mock_outputs = { - name = "mock-name" - } - } + mock_outputs = { + name = "mock-name" + } + } - inputs = { - name = "$$STORAGE_ACCOUNT_NAME$$" - location = "$$LOCATION$$" + inputs = { + name = "$$STORAGE_ACCOUNT_NAME$$" + location = "$$LOCATION$$" - resource_group_name = dependency.resource_group.outputs.name - } - ``` + resource_group_name = dependency.resource_group.outputs.name + } + ``` @@ -180,7 +180,7 @@ Once the workflow completes, Pipelines will post a comment on the PR summarizing ![Pipelines Plan Comment](/img/pipelines/tutorial/pipelines-plan-comment.png) -Click the *View full logs* link to see the complete output of the Gruntwork Pipelines run. Locate the *TerragruntExecute* step to review the full `terragrunt plan` generated by your changes. +Click the _View full logs_ link to see the complete output of the Gruntwork Pipelines run. Locate the _TerragruntExecute_ step to review the full `terragrunt plan` generated by your changes. ![Pipelines Plan Logs](/img/pipelines/tutorial/pipelines-plan-logs.png) @@ -194,7 +194,7 @@ Click the *View full logs* link to see the complete output of the Gruntwork Pipe After creating the MR, GitLab CI/CD will automatically execute the pipeline defined in `.gitlab-ci.yml` in your project. Once the pipeline completes, Pipelines will post a comment on the MR summarizing the `terragrunt plan` output along with a link to the pipeline logs. -Click the *View Pipeline Logs* link to see the complete output of the Gruntwork Pipelines run. Select the *plan* job to review the full `terragrunt plan` generated by your changes. +Click the _View Pipeline Logs_ link to see the complete output of the Gruntwork Pipelines run. Select the _plan_ job to review the full `terragrunt plan` generated by your changes. @@ -236,7 +236,7 @@ To monitor the pipeline run associated with the merged MR: Congratulations! You have successfully used Gruntwork Pipelines and a GitOps workflow to provision cloud storage. - + To verify the S3 bucket creation, visit the AWS Management Console and check the S3 service for the bucket. diff --git a/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx b/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx index 00265d9367..d2e6cf2ae3 100644 --- a/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx +++ b/docs/2.0/docs/pipelines/tutorials/destroying-infrastructure.mdx @@ -1,6 +1,6 @@ # Destroying Infrastructure with Pipelines -import CustomizableValue from '/src/components/CustomizableValue'; +import CustomizableValue from "/src/components/CustomizableValue" import Tabs from "@theme/Tabs" import TabItem from "@theme/TabItem" @@ -27,7 +27,7 @@ This section explains how to destroy cloud resources using Pipelines and GitOps ### Delete the infrastructure code - + :::caution Permissions Required @@ -44,9 +44,9 @@ The default `bootstrap` Terragrunt stack provided in the installation guide incl 1. Remove the folder containing the infrastructure code for the resource you want to destroy. For the S3 bucket example, delete the folder containing the S3 bucket code. Replace and with the appropriate values. - ```bash - rm -rf $$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3 - ``` + ```bash + rm -rf $$ACCOUNT_NAME$$/$$REGION$$/data-storage/s3 + ``` 2. Create a new branch, commit the changes, and push the branch to your repository. @@ -65,9 +65,9 @@ The default `bootstrap` Terragrunt stack provided in the installation guide incl 1. Remove the folder containing the infrastructure code for the resources you want to destroy. For the Resource Group and Storage Account example, delete the folder containing all the resource group code. Replace , , and with the appropriate values. - ```bash - rm -rf $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$ - ``` + ```bash + rm -rf $$SUBSCRIPTION_NAME$$/$$LOCATION$$/resource-groups/$$RESOURCE_GROUP_NAME$$ + ``` 2. Create a new branch, commit the changes, and push the branch to your repository. @@ -94,7 +94,7 @@ Create a Merge Request (MR) for the branch you just pushed, targeting `main` (th Gruntwork Pipelines, via GitLab CI/CD, will detect the removal of the infrastructure unit's code and trigger a `plan` action in Pipelines. This action will display the destructive changes to be made to your cloud environment. -Click the *View Pipeline Logs* link to see the complete output of the destroy plan. +Click the _View Pipeline Logs_ link to see the complete output of the destroy plan. @@ -107,7 +107,7 @@ Approve and merge the pull/merge request to trigger the apply action, permanentl Congratulations! You have successfully destroyed cloud resources using Gruntwork Pipelines and GitOps workflows. - + To verify the S3 bucket has been destroyed, check the AWS Management Console and confirm the bucket no longer exists in the S3 service. From 73efbc231d2d47311debe14cae51683c1f570ee8 Mon Sep 17 00:00:00 2001 From: Lewis Christie Date: Thu, 23 Oct 2025 10:12:57 -0600 Subject: [PATCH 36/37] Update custom dictionary --- custom-dictionary.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/custom-dictionary.txt b/custom-dictionary.txt index 7911f890ff..55f207c308 100644 --- a/custom-dictionary.txt +++ b/custom-dictionary.txt @@ -66,3 +66,6 @@ GLMU myprodsa azuread mysa +deinterlaced +rolename +ACCOUNTNAME From bddd218eea8a1a6dc3e5e6c5ca5220b8c183e551 Mon Sep 17 00:00:00 2001 From: Lewis Christie Date: Thu, 23 Oct 2025 10:26:55 -0600 Subject: [PATCH 37/37] Add custom-actions gruntwork_context section --- .../upgrading-github-v3-to-v4.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md index cabbada819..853bd19342 100644 --- a/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md +++ b/docs/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4.md @@ -255,6 +255,27 @@ Remove the PipelinesPassed job and update any Required Status Checks to use `Gru ::: +## Optional - Update forked pipelines-actions + +:::note + +This step only applies if your organization has forked the pipelines-actions repository +to run custom actions. + +::: + +Update your organizations forked repository to pipelines-actions v4.1.0 or higher + +The inputs to custom actions have been changed, the `gruntwork_context` input has been removed. +Any custom actions logic relying on `gruntwork_context` should be modified to no longer use this input. If this +is not possible for your organization, contact us at [support@gruntwork.io](mailto:support@gruntwork.io). + +:::note Progress Checklist + +- [ ] Updated forked `pipelines-actions` to v4.1.0 or higher + +::: + ## Drift Detection Workflow In each infrastructure-live repository (including any `-access-control` or `-delegated` repositories), update the `.github/workflows/pipelines-drift-detection.yml` file as follows:
  14. BWTU%4d!NoN-IoWkKG=%t{ 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