From 4d3a08c9d6b7d7eb4ba056a9b1eb4fd4f32d393c Mon Sep 17 00:00:00 2001 From: Ken Schlobohm Date: Wed, 10 Apr 2024 13:27:48 -0500 Subject: [PATCH] Rwa version 1.1 (#369) * Rwa version 1.1 (#345) * standardize git settings * generic container name * replace infra * version 1.1 * move directory * pin AZD version * add additional-resources.md * src version 1.1 * add isolated deployment doc * add prerequisites * remove unused file * replace steps to deploy * match telemetry * update comment * new telemetryId * no longer beta * fix redis race condition * add local-development * cleaning up image folder * update image * web app name * workflow updates * update simulate the patterns * new re-open image * local-development workflow * updates based on azd workflow * Add Az module installation and update environment creation instructions * Update application name in README * Remove unnecessary information from README.md * Remove Azure deployment deletion instructions * Fix typo in simulate-patterns.md * Update simulation patterns and cleanup screenshots * Add secondary resource group output * Update output variable names in main.bicep file * Fix variable assignment in README.md * Update deployment instructions to use PowerShell scripts * Update App Insights with timing information * Update README.md and isolated-deployment.md * Update deployment instructions for multi-region deployment * Update front-door-route.bicep to add uri * add navigation to redis console * Update deployment commands and add instructions to find application URL * Update isolated deployment configuration * Update secondary region variable name in isolated deployment guide * Update authentication link in isolated deployment guide * unique deployment names * skip SSMS * unique dns zone link deployment name * Update module names based on deployment settings * Remove code for peering spoke to spoke * Support for secondary region in cleanup.ps1 * deployment instructions * reduced deployment time average * align with latest cleanup.ps1 * Update relecloud-solution-diagram.png * Fix variable interpolation in cleanup script * Update module names to include network names in peer connections * Update Az module import in cleanup and setup scripts --------- Co-authored-by: Adrian Hall * update file perm * Azd upgrade (#346) * fix missing dependencies * align with azd latest * target supported version * Incorporate testing feedback (#347) * toggle prompts by support * describe kv location * Update module comments * Remove link * Update template comments * Update Azure Firewall resource description * Update comments front door templates * remove unused param * Update comments in azure-monitor.bicep file * Update comments for peer-networks.bicep file * Update shared-frontdoor.bicep file * Update telemetry module documentation * Add Relecloud VNet Diagram.vsdx diagram * remove unused param * increment AZD version * front door private endpoint approval * Entra update * Add Azure App Configuration service * Fix null reference exception and add user creation * Update error message for null purchase ticket request * deployment parameter validation * deploy resources to secondary location * reference Microsoft Entra ID * update workflow * add budget cleanup scripts * add principal type * file perm * update with troubleshooting * update troubleshooting * set telemetry (#355) * Diagram updates (#356) * add diagram * update workflow * update workflow * support vs * purge support * Update README.md Co-authored-by: Nish Anil * Update README.md Co-authored-by: Nish Anil --------- Co-authored-by: Nish Anil * update annotation * add network diagram to prod-deployment.md * Rwa 1.1 updates (#358) * Update README.md * added new rwa dotnet 1.1 image * deleted old image file * update link to diagram * fixed bullet points in readme * fixed bullet points * Update README.md * Update README.md * Apply suggestions from code review Co-authored-by: Ken Schlobohm --------- Co-authored-by: Ken Schlobohm * Simplify AZD experience (#360) * cleanup on azd down * update steps * azd up for dev * format web_uri output * update formatting * update logic * align deployment steps * resourceToken for naming deployments * updated steps * fix deployment name conflicts * support cleanup when provision fails * update secondaryResourceToken * update test regions * fix delete groups condition * align with new script switch * update timing * add postconfiguration * describe deployment steps * simplify steps * update instructions * azd vars to make prod-deployment easier * az module * prod file cleanup * secondary region instructions * hub resource token * fix secondary region deploy * instruction updates * add resourceToken to hub * convert jq commands to pwsh * fix intermittent delete erorr * describe fingerprint issue * update workflow for azd hooks * remove location * Update infra/scripts/predeploy/set-app-configuration.ps1 Co-authored-by: Mike Rousos * fix error msg * default to trusted launch * conditionally define var * single chmod * provide region help * script permission * update perm * update perm * add post-deployment * Azure pwsh installed by script * describe troubleshooting link * fix conditional typo * fix conditional typo2 * principal check * update env vars * Rwa 1.1 updates (#358) * Update README.md * added new rwa dotnet 1.1 image * deleted old image file * update link to diagram * fixed bullet points in readme * fixed bullet points * Update README.md * Update README.md * Apply suggestions from code review Co-authored-by: Ken Schlobohm --------- Co-authored-by: Ken Schlobohm * remove unused line * arrange tags * remove echo * remove toLower (#361) * remove ToLower * clarify step * unique module names * unique module name * add WSL clone instructions * instruction update * update page name * add DDoS link * update SCP cmd * align SDK to MWA * fix scp command --------- Co-authored-by: Mike Rousos Co-authored-by: Stephen Sumner <109609721+stephen-sumner@users.noreply.github.com> Co-authored-by: Mark Tinderholt * Add composite docs (#363) * add sla-calculation * add storage * Update readme (#362) * update readme * fix link * quick updates to developer-experience.md * rename simulate-patterns doc * Update README deployment description * fix title * describe PSVersion * fix link * add trademarks * Update deployment teardown instructions * link to SLA doc * fix link * prod deployment title * typos * Update Redis Console commands to clarify their purpose * fix typo * Update README.md * update demo.md * describe region pairs * update README * update prerequisites.md * Workflow commands (#366) * align steps with readme * azd env new * swap AZURE_PRINCIPAL_TYPE * AZURE_PRINCIPAL_TYPE * select subscription * include jq for teardown * consolidate teardown * fix typo * update teardown * update step label * support purge * set AZURE_RESOURCE_GROUP * add Read-ApplicationPrompt * enable purge option * data validation * add concurrency * Update Dockerfile * label jump host * Hub jump (#367) * wip - move to hub * add var needed for cleanup * remove unused params * remove unused params * add output var type * redefine devopsSubnet * rename * rename host * update deployment instructions * jumpbox * Updated steps for Visual Studio experience (#368) * align with main parameters file * support dev experience auth * updated steps * support dev commands * scripted support to make azure sql accessible * add steps to start the solution * remove unused images * update diagram * update diagram names * fix param validation --------- Co-authored-by: Adrian Hall Co-authored-by: Nish Anil Co-authored-by: Stephen Sumner <109609721+stephen-sumner@users.noreply.github.com> Co-authored-by: Mike Rousos Co-authored-by: Mark Tinderholt --- .azdo/{pipelines => }/README.md | 30 +- .azdo/pipelines/azure-dev.yml | 2 +- .devcontainer/Dockerfile | 6 +- .devcontainer/devcontainer.json | 40 +- .gitattributes | 2 + .github/workflows/azure-dev.yml | 2 +- .github/workflows/scheduled-azure-dev.yml | 109 +- .../workflows/scheduled-azure-teardown.yml | 68 +- .gitignore | 710 ++-- README.md | 486 +-- additional-resources.md | 41 + ...lating_AppInsightsRequestWithSqlServer.png | Bin 55892 -> 0 bytes ...imulating_AppInsightsRequestWithoutSql.png | Bin 52992 -> 0 bytes .../Guide/Simulating_RedisConsoleListKeys.png | Bin 16592 -> 0 bytes ...ating_RedisConsoleShowUpcomingConcerts.png | Bin 114173 -> 0 bytes assets/devcontainers/devcontainers1.png | Bin 9732 -> 0 bytes assets/devcontainers/devcontainers2.png | Bin 5997 -> 0 bytes assets/devcontainers/devcontainers3.png | Bin 6604 -> 0 bytes assets/devcontainers/devcontainers4.png | Bin 5399 -> 0 bytes assets/devcontainers/devcontainers5.png | Bin 3091 -> 0 bytes assets/devcontainers/devcontainers6.png | Bin 3614 -> 0 bytes .../diagrams/reliable-web-app-dotnet-dev.vsdx | Bin 0 -> 143365 bytes .../reliable-web-app-dotnet-vnet.vsdx | Bin 0 -> 219957 bytes assets/diagrams/reliable-web-app-dotnet.vsdx | Bin 0 -> 236689 bytes assets/icons/dotnetbot.png | Bin 52829 -> 0 bytes assets/icons/microsoft.png | Bin 254 -> 0 bytes assets/icons/reliable-web-app-dotnet-dev.svg | 1642 ++++++++ assets/icons/reliable-web-app-dotnet.png | Bin 166248 -> 0 bytes assets/icons/reliable-web-app-dotnet.svg | 2069 ++++++++++ assets/icons/reliable-web-app-vnet.svg | 3645 +++++++++++++++++ assets/{Guide => images}/Azd-Env-New.png | Bin .../AzdoSetup/1CreateAPipeline.png | Bin .../AzdoSetup/2CreateAPipeline.png | Bin .../AzdoSetup/3CreateAPipeline.png | Bin .../AzdoSetup/4CreateAPipeline.png | Bin .../AzdoSetup/5CreateAPipeline.png | Bin .../Guide/AD-AppRegistrations.png | Bin assets/{ => images}/Guide/AppConfig-Purge.png | Bin .../Guide/AsyncRequestReplyPattern.png | Bin assets/images/Guide/Azd-Env-New.png | Bin 0 -> 61927 bytes .../Guide/AzureMonitorCustomEvents.png | Bin .../Guide/AzureMonitorLiveMetrics.png | Bin .../Guide/AzureMonitorLogAnalyticsQueries.png | Bin assets/{ => images}/Guide/Intro-video.jpg | Bin assets/{ => images}/Guide/Intro-video.png | Bin assets/{ => images}/Guide/KeyVault-Purge.png | Bin .../ReliableWebAppArchitectureDiagram.png | Bin ...lating_AppInsightsRequestWithSqlServer.png | Bin 0 -> 185961 bytes ...imulating_AppInsightsRequestWithoutSql.png | Bin 0 -> 186300 bytes .../Simulating_AppInsightsTopRequests.png | Bin .../Guide/Simulating_AppServiceRestart.png | Bin .../Guide/Simulating_CheckoutPage.png | Bin .../Guide/Simulating_CircuitBreakerPart1.png | Bin .../Guide/Simulating_CircuitBreakerPart2.png | Bin .../Guide/Simulating_ConfigExplorer.png | Bin .../images/Guide/Simulating_RedisConsole.png | Bin 0 -> 92505 bytes .../Guide/Simulating_RedisConsoleListKeys.png | Bin 0 -> 73975 bytes ...ating_RedisConsoleShowUpcomingConcerts.png | Bin 0 -> 224703 bytes .../Guide/Simulating_RetryPattern.png | Bin .../Guide/Simulating_UpcomingConcertsPage.png | Bin assets/{ => images}/Guide/WebAppHomePage.png | Bin .../{ => images}/Guide/WebAppTicketsPage.png | Bin assets/images/WebAppHomePage.png | Bin 0 -> 249658 bytes .../configure-multiple-startup-projects.png | Bin 0 -> 44229 bytes .../vscode-reopen-in-container-command.png | Bin 0 -> 86050 bytes assets/images/vscode-reopen-in-container.png | Bin 0 -> 252597 bytes assets/sla-calculation.md | 75 + assets/sla-calculation.xlsx | Bin 0 -> 107520 bytes azure.yaml | 50 +- simulate-patterns.md => demo.md | 71 +- dev-containers.md | 28 - developer-experience.md | 117 + infra/appConfigSvcKeyValue.bicep | 16 - infra/appSvcAutoScaleSettings.bicep | 77 - infra/applicationinsights.bicep | 1255 ------ infra/azureAdSettings.bicep | 89 - infra/azureFrontDoor.bicep | 189 - infra/azureKeyVaultDiagnostics.bicep | 31 - infra/azureRedisCache.bicep | 139 - infra/azureSqlDatabase.bicep | 144 - infra/azureStorage.bicep | 78 - infra/bicepconfig.json | 6 + infra/connectByPrivateLink.bicep | 62 - .../postDeploymentScript/post-deployment.sh | 52 + infra/core/compute/ubuntu-jumpbox.bicep | 275 ++ infra/core/compute/windows-buildagent.bicep | 277 ++ infra/core/compute/windows-jumpbox.bicep | 247 ++ infra/core/config/app-configuration.bicep | 197 + infra/core/cost-management/budget.bicep | 96 + .../core/database/azure-cache-for-redis.bicep | 165 + .../database/create-sql-user-and-role.bicep | 76 + .../scripts/create-sql-user-and-role.ps1 | 108 + infra/core/database/sql-database.bicep | 181 + infra/core/database/sql-server.bicep | 147 + infra/core/hosting/app-service-plan.bicep | 208 + infra/core/hosting/app-service.bicep | 225 + infra/core/identity/managed-identity.bicep | 40 + .../resource-group-role-assignment.bicep | 49 + infra/core/monitor/application-insights.bicep | 60 + .../monitor/log-analytics-workspace.bicep | 66 + infra/core/network/bastion-host.bicep | 155 + infra/core/network/ddos-protection-plan.bicep | 44 + infra/core/network/firewall.bicep | 192 + .../core/network/network-security-group.bicep | 94 + infra/core/network/peer-virtual-network.bicep | 47 + .../core/network/private-dns-zone-link.bicep | 52 + infra/core/network/private-dns-zone.bicep | 58 + infra/core/network/private-endpoint.bicep | 95 + infra/core/network/public-ip-address.bicep | 129 + infra/core/network/route-table.bicep | 52 + infra/core/network/virtual-network.bicep | 114 + .../security/front-door-route-approval.bicep | 54 + infra/core/security/front-door-route.bicep | 139 + infra/core/security/front-door-with-waf.bicep | 192 + infra/core/security/key-vault-secrets.bicep | 57 + infra/core/security/key-vault.bicep | 206 + .../scripts/front-door-route-approval.sh | 76 + infra/core/storage/storage-account-blob.bicep | 96 + infra/core/storage/storage-account.bicep | 188 + infra/createAppRegistrations.ps1 | 447 -- infra/createAppRegistrations.sh | 501 --- .../azureRedisCachePublicDevAccess.sh | 66 - .../createSqlAcctForManagedIdentity.ps1 | 82 - .../enableSqlAdminForServer.ps1 | 40 - infra/devOpsIdentitySetup.bicep | 35 - infra/devOpsScripts/appConfigSvcPurge.sh | 60 - infra/devOpsScripts/validateDeployment.ps1 | 110 - .../addLocalIPToSqlFirewall.ps1 | 61 - .../addLocalIPToSqlFirewall.sh | 69 - .../localDevScripts/getSecretsForLocalDev.ps1 | 138 - .../localDevScripts/getSecretsForLocalDev.sh | 184 - infra/localDevScripts/makeSqlUserAccount.ps1 | 127 - infra/localDevScripts/makeSqlUserAccount.sh | 144 - .../logAnalyticsWorkspaceForDiagnostics.bicep | 24 - infra/main.bicep | 648 ++- infra/main.parameters.json | 70 +- infra/modules/application-appservice.bicep | 239 ++ infra/modules/application-post-config.bicep | 251 ++ infra/modules/application-resources.bicep | 565 +++ infra/modules/azure-fqdns.jsonc | 51 + infra/modules/azure-monitor.bicep | 139 + infra/modules/build-agent.bicep | 194 + infra/modules/grant-secret-user.bicep | 57 + infra/modules/hub-network.bicep | 483 +++ infra/modules/naming.bicep | 231 ++ infra/modules/peer-networks.bicep | 66 + infra/modules/private-dns-zones.bicep | 123 + infra/modules/resource-groups.bicep | 109 + infra/modules/shared-frontdoor.bicep | 157 + infra/modules/spoke-network.bicep | 393 ++ infra/modules/telemetry.bicep | 84 + infra/naming.overrides.jsonc | 77 + infra/resources.bicep | 794 ---- .../devexperience/call-make-sql-account.ps1 | 48 + .../devexperience/make-sql-account.ps1 | 132 + infra/scripts/postdeploy/show-webapp-uri.ps1 | 14 + infra/scripts/postdeploy/show-webapp-uri.sh | 6 + .../call-create-app-registrations.ps1 | 28 + .../call-create-app-registrations.sh | 16 + .../create-app-registrations.ps1 | 504 +++ .../predeploy/call-set-app-configuration.ps1 | 21 + .../predeploy/call-set-app-configuration.sh | 9 + .../predeploy/set-app-configuration.ps1 | 266 ++ infra/scripts/predown/call-cleanup.ps1 | 31 + infra/scripts/predown/call-cleanup.sh | 27 + .../scripts/preprovision/validate-params.ps1 | 30 + infra/scripts/preprovision/validate-params.sh | 26 + infra/scripts/preprovision/whats-my-ip.ps1 | 19 + infra/scripts/preprovision/whats-my-ip.sh | 22 + infra/types/ApplicationIdentity.bicep | 9 + infra/types/BuildAgentSettings.bicep | 18 + infra/types/DeploymentSettings.bicep | 39 + infra/types/DiagnosticSettings.bicep | 15 + infra/types/FrontDoorSettings.bicep | 15 + infra/types/PrivateEndpointSettings.bicep | 15 + known-issues.md | 56 +- prerequisites.md | 74 + prod-deployment.md | 269 ++ .../Infrastructure/RetryTestingMiddleware.cs | 65 - .../TicketImageService.cs | 34 - .../Controllers/ConcertController.cs | 0 .../Controllers/ImageController.cs | 0 .../Controllers/SearchController.cs | 0 .../Controllers/TicketController.cs | 35 +- .../Controllers/UserController.cs | 0 .../Infrastructure/ApplicationInitializer.cs | 0 .../Infrastructure/CacheKeys.cs | 0 .../IntermittentErrorRequestMiddleware.cs | 74 + .../ModelStateDictionaryExtensions.cs | 0 .../Infrastructure/Roles.cs | 0 ...0220125000051_AddVisibleFields.Designer.cs | 0 .../20220125000051_AddVisibleFields.cs | 0 ...000722_AddAuditFieldsToConcert.Designer.cs | 0 .../20220125000722_AddAuditFieldsToConcert.cs | 0 ...220126181356_AddCheckoutTables.Designer.cs | 0 .../20220126181356_AddCheckoutTables.cs | 0 ...0208203826_CreateTicketNumbers.Designer.cs | 0 .../20220208203826_CreateTicketNumbers.cs | 0 ..._SelectTicketManagementService.Designer.cs | 0 ...208231619_SelectTicketManagementService.cs | 0 ...cketServiceConcertIdIsNullable.Designer.cs | 0 ...201351_TicketServiceConcertIdIsNullable.cs | 0 ...010613_AddTicketNumberToTicket.Designer.cs | 0 .../20220215010613_AddTicketNumberToTicket.cs | 0 .../ConcertDataContextModelSnapshot.cs | 0 .../Program.cs | 16 +- .../Properties/launchSettings.json | 0 .../Relecloud.Web.CallCenter.Api.csproj} | 2 +- .../Services/IConcertRepository.cs | 0 .../Services/IPaymentGatewayService.cs | 0 .../MockServices/MockConcertRepository.cs | 0 .../MockServices/MockConcertSearchService.cs | 0 .../MockServices/MockPaymentGatewayService.cs | 0 .../MockServices/MockTicketImageService.cs | 0 .../MockTicketManagementService.cs | 0 .../MockTicketRenderingService.cs | 0 .../CapturePaymentRequest.cs | 0 .../CapturePaymentResult.cs | 0 .../CapturePaymentResultStatus.cs | 0 .../PreAuthPaymentRequest.cs | 0 .../PreAuthPaymentResult.cs | 0 .../PreAuthPaymentResultStatus.cs | 0 .../Search/AzureSearchConcertSearchService.cs | 2 +- .../Search/SqlDatabaseConcertSearchService.cs | 0 .../ConcertDataContext.cs | 2 - .../SqlDatabaseConcertRepository.cs | 3 +- .../ITicketImageService.cs | 0 .../ITicketManagementService.cs | 0 .../ITicketRenderingService.cs | 0 .../TicketImageService.cs | 39 + .../TicketManagementService.cs | 0 .../TicketRenderingService.cs | 4 +- .../Startup.cs | 60 +- .../appsettings.Development.json | 0 .../appsettings.json | 2 +- .../Controllers/CartController.cs | 8 +- .../Controllers/ConcertController.cs | 6 +- .../Controllers/HomeController.cs | 2 +- .../Controllers/ImageController.cs | 9 +- .../Controllers/TicketController.cs | 6 +- .../Infrastructure/CacheKeys.cs | 2 +- .../Infrastructure/ExtensionMethods.cs | 9 +- .../RelecloudApiConfiguration.cs | 2 +- .../Infrastructure/Roles.cs | 2 +- .../Program.cs | 13 +- .../Properties/launchSettings.json | 0 .../Relecloud.Web.CallCenter.csproj} | 2 +- .../Services/ITicketImageService.cs | 6 + .../Services/ITicketPurchaseService.cs | 2 +- .../MockServices/MockConcertContextService.cs | 2 +- .../MockServices/MockConcertSearchService.cs | 2 +- .../MockServices/MockTicketImageService.cs | 4 +- .../MockServices/MockTicketPurchaseService.cs | 2 +- .../RelecloudApiConcertSearchService.cs | 4 +- .../RelecloudApiConcertService.cs | 6 +- .../RelecloudApiOptions.cs | 2 +- .../RelecloudApiTicketImageService.cs | 6 +- .../RelecloudApiTicketPurchaseService.cs | 4 +- .../Startup.cs | 98 +- .../ViewModels/CartViewModel.cs | 2 +- .../ViewModels/CheckoutViewModel.cs | 2 +- .../ViewModels/ConcertViewModel.cs | 2 +- .../ViewModels/TicketViewModel.cs | 2 +- .../Views/Cart/Add.cshtml | 0 .../Views/Cart/Checkout.cshtml | 2 +- .../Views/Cart/Index.cshtml | 2 +- .../Views/Concert/Create.cshtml | 2 +- .../Views/Concert/Delete.cshtml | 0 .../Views/Concert/Details.cshtml | 0 .../Views/Concert/Edit.cshtml | 2 +- .../Views/Concert/Index.cshtml | 0 .../Views/Concert/Search.cshtml | 0 .../Views/Concert/Search.cshtml.cs | 0 .../Views/Home/Index.cshtml | 0 .../Views/Shared/Error.cshtml | 0 .../Views/Shared/_Layout.cshtml | 2 +- .../Views/Shared/_Layout.cshtml.css | 0 .../Shared/_ValidationScriptsPartial.cshtml | 0 .../Views/Ticket/Index.cshtml | 7 +- .../Views/_ViewImports.cshtml | 4 +- .../Views/_ViewStart.cshtml | 0 .../appsettings.Development.json | 0 .../appsettings.json | 2 +- .../wwwroot/css/site.css | 0 .../wwwroot/favicon.ico | Bin .../wwwroot/img/banner.jpg | Bin .../wwwroot/js/site.js | 0 .../wwwroot/lib/bootstrap/LICENSE | 0 .../lib/bootstrap/dist/css/bootstrap-grid.css | 0 .../bootstrap/dist/css/bootstrap-grid.css.map | 0 .../bootstrap/dist/css/bootstrap-grid.min.css | 0 .../dist/css/bootstrap-grid.min.css.map | 0 .../bootstrap/dist/css/bootstrap-grid.rtl.css | 0 .../dist/css/bootstrap-grid.rtl.css.map | 0 .../dist/css/bootstrap-grid.rtl.min.css | 0 .../dist/css/bootstrap-grid.rtl.min.css.map | 0 .../bootstrap/dist/css/bootstrap-reboot.css | 0 .../dist/css/bootstrap-reboot.css.map | 0 .../dist/css/bootstrap-reboot.min.css | 0 .../dist/css/bootstrap-reboot.min.css.map | 0 .../dist/css/bootstrap-reboot.rtl.css | 0 .../dist/css/bootstrap-reboot.rtl.css.map | 0 .../dist/css/bootstrap-reboot.rtl.min.css | 0 .../dist/css/bootstrap-reboot.rtl.min.css.map | 0 .../dist/css/bootstrap-utilities.css | 0 .../dist/css/bootstrap-utilities.css.map | 0 .../dist/css/bootstrap-utilities.min.css | 0 .../dist/css/bootstrap-utilities.min.css.map | 0 .../dist/css/bootstrap-utilities.rtl.css | 0 .../dist/css/bootstrap-utilities.rtl.css.map | 0 .../dist/css/bootstrap-utilities.rtl.min.css | 0 .../css/bootstrap-utilities.rtl.min.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.css | 0 .../lib/bootstrap/dist/css/bootstrap.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.min.css | 0 .../bootstrap/dist/css/bootstrap.min.css.map | 0 .../lib/bootstrap/dist/css/bootstrap.rtl.css | 0 .../bootstrap/dist/css/bootstrap.rtl.css.map | 0 .../bootstrap/dist/css/bootstrap.rtl.min.css | 0 .../dist/css/bootstrap.rtl.min.css.map | 0 .../lib/bootstrap/dist/js/bootstrap.bundle.js | 0 .../bootstrap/dist/js/bootstrap.bundle.js.map | 0 .../bootstrap/dist/js/bootstrap.bundle.min.js | 0 .../dist/js/bootstrap.bundle.min.js.map | 0 .../lib/bootstrap/dist/js/bootstrap.esm.js | 0 .../bootstrap/dist/js/bootstrap.esm.js.map | 0 .../bootstrap/dist/js/bootstrap.esm.min.js | 0 .../dist/js/bootstrap.esm.min.js.map | 0 .../lib/bootstrap/dist/js/bootstrap.js | 0 .../lib/bootstrap/dist/js/bootstrap.js.map | 0 .../lib/bootstrap/dist/js/bootstrap.min.js | 0 .../bootstrap/dist/js/bootstrap.min.js.map | 0 .../jquery-validation-unobtrusive/LICENSE.txt | 0 .../jquery.validate.unobtrusive.js | 0 .../jquery.validate.unobtrusive.min.js | 0 .../wwwroot/lib/jquery-validation/LICENSE.md | 0 .../dist/additional-methods.js | 0 .../dist/additional-methods.min.js | 0 .../jquery-validation/dist/jquery.validate.js | 0 .../dist/jquery.validate.min.js | 0 .../wwwroot/lib/jquery/LICENSE.txt | 0 .../wwwroot/lib/jquery/dist/jquery.js | 0 .../wwwroot/lib/jquery/dist/jquery.min.js | 0 .../wwwroot/lib/jquery/dist/jquery.min.map | 0 .../wwwroot/robots.txt | 0 .../ConcertContext/Concert.cs | 0 .../ConcertContext/CreateResult.cs | 0 .../ConcertContext/Customer.cs | 0 .../ConcertContext/DeleteResult.cs | 0 .../ConcertContext/PagedResult.cs | 0 .../ConcertContext/Ticket.cs | 0 .../ConcertContext/TicketNumber.cs | 0 .../ConcertContext/UpdateResult.cs | 0 .../ConcertContext/User.cs | 0 .../Relecloud.Web.Models.csproj | 0 .../Search/ConcertSearchResult.cs | 0 .../Search/SearchFacet.cs | 0 .../Search/SearchFacetValue.cs | 0 .../Search/SearchRequest.cs | 0 .../Search/SearchResponse.cs | 0 .../Services/IConcertContextService.cs | 0 .../Services/IConcertSearchService.cs | 0 .../Services/IServiceProviderResult.cs | 0 .../CountAvailableTicketsResult.cs | 0 .../HaveTicketsBeenSoldResult.cs | 0 .../TicketManagement/Payment/CardTypes.cs | 0 .../Payment/PaymentDetails.cs | 0 .../PurchaseTicketsRequest.cs | 0 .../TicketManagement/PurchaseTicketsResult.cs | 0 .../PurchaseTicketsResultStatus.cs | 0 .../TicketManagement/ReserveTicketsResult.cs | 0 .../ReserveTicketsResultStatus.cs | 0 .../RedirectSampleMiddleware.cs | 56 - .../Services/ITicketImageService.cs | 13 - src/Relecloud.sln | 32 +- src/global.json | 2 +- testscripts/README.md | 74 + testscripts/call-validate-deployment.sh | 6 + testscripts/cleanup.ps1 | 376 ++ testscripts/setup.ps1 | 376 ++ testscripts/validate-deployment.ps1 | 94 + .../validate-deployment.sh | 65 +- troubleshooting.md | 84 + 383 files changed, 19568 insertions(+), 6494 deletions(-) rename .azdo/{pipelines => }/README.md (50%) create mode 100644 .gitattributes create mode 100644 additional-resources.md delete mode 100644 assets/Guide/Simulating_AppInsightsRequestWithSqlServer.png delete mode 100644 assets/Guide/Simulating_AppInsightsRequestWithoutSql.png delete mode 100644 assets/Guide/Simulating_RedisConsoleListKeys.png delete mode 100644 assets/Guide/Simulating_RedisConsoleShowUpcomingConcerts.png delete mode 100755 assets/devcontainers/devcontainers1.png delete mode 100755 assets/devcontainers/devcontainers2.png delete mode 100755 assets/devcontainers/devcontainers3.png delete mode 100755 assets/devcontainers/devcontainers4.png delete mode 100755 assets/devcontainers/devcontainers5.png delete mode 100755 assets/devcontainers/devcontainers6.png create mode 100644 assets/diagrams/reliable-web-app-dotnet-dev.vsdx create mode 100644 assets/diagrams/reliable-web-app-dotnet-vnet.vsdx create mode 100644 assets/diagrams/reliable-web-app-dotnet.vsdx delete mode 100644 assets/icons/dotnetbot.png delete mode 100644 assets/icons/microsoft.png create mode 100644 assets/icons/reliable-web-app-dotnet-dev.svg delete mode 100644 assets/icons/reliable-web-app-dotnet.png create mode 100644 assets/icons/reliable-web-app-dotnet.svg create mode 100644 assets/icons/reliable-web-app-vnet.svg rename assets/{Guide => images}/Azd-Env-New.png (100%) rename assets/{ => images}/AzdoSetup/1CreateAPipeline.png (100%) rename assets/{ => images}/AzdoSetup/2CreateAPipeline.png (100%) rename assets/{ => images}/AzdoSetup/3CreateAPipeline.png (100%) rename assets/{ => images}/AzdoSetup/4CreateAPipeline.png (100%) rename assets/{ => images}/AzdoSetup/5CreateAPipeline.png (100%) rename assets/{ => images}/Guide/AD-AppRegistrations.png (100%) rename assets/{ => images}/Guide/AppConfig-Purge.png (100%) rename assets/{ => images}/Guide/AsyncRequestReplyPattern.png (100%) create mode 100644 assets/images/Guide/Azd-Env-New.png rename assets/{ => images}/Guide/AzureMonitorCustomEvents.png (100%) rename assets/{ => images}/Guide/AzureMonitorLiveMetrics.png (100%) rename assets/{ => images}/Guide/AzureMonitorLogAnalyticsQueries.png (100%) rename assets/{ => images}/Guide/Intro-video.jpg (100%) rename assets/{ => images}/Guide/Intro-video.png (100%) rename assets/{ => images}/Guide/KeyVault-Purge.png (100%) rename assets/{ => images}/Guide/ReliableWebAppArchitectureDiagram.png (100%) create mode 100644 assets/images/Guide/Simulating_AppInsightsRequestWithSqlServer.png create mode 100644 assets/images/Guide/Simulating_AppInsightsRequestWithoutSql.png rename assets/{ => images}/Guide/Simulating_AppInsightsTopRequests.png (100%) rename assets/{ => images}/Guide/Simulating_AppServiceRestart.png (100%) rename assets/{ => images}/Guide/Simulating_CheckoutPage.png (100%) rename assets/{ => images}/Guide/Simulating_CircuitBreakerPart1.png (100%) rename assets/{ => images}/Guide/Simulating_CircuitBreakerPart2.png (100%) rename assets/{ => images}/Guide/Simulating_ConfigExplorer.png (100%) create mode 100644 assets/images/Guide/Simulating_RedisConsole.png create mode 100644 assets/images/Guide/Simulating_RedisConsoleListKeys.png create mode 100644 assets/images/Guide/Simulating_RedisConsoleShowUpcomingConcerts.png rename assets/{ => images}/Guide/Simulating_RetryPattern.png (100%) rename assets/{ => images}/Guide/Simulating_UpcomingConcertsPage.png (100%) rename assets/{ => images}/Guide/WebAppHomePage.png (100%) rename assets/{ => images}/Guide/WebAppTicketsPage.png (100%) create mode 100644 assets/images/WebAppHomePage.png create mode 100644 assets/images/configure-multiple-startup-projects.png create mode 100644 assets/images/vscode-reopen-in-container-command.png create mode 100644 assets/images/vscode-reopen-in-container.png create mode 100644 assets/sla-calculation.md create mode 100644 assets/sla-calculation.xlsx rename simulate-patterns.md => demo.md (53%) delete mode 100644 dev-containers.md create mode 100644 developer-experience.md delete mode 100644 infra/appConfigSvcKeyValue.bicep delete mode 100644 infra/appSvcAutoScaleSettings.bicep delete mode 100644 infra/applicationinsights.bicep delete mode 100644 infra/azureAdSettings.bicep delete mode 100644 infra/azureFrontDoor.bicep delete mode 100644 infra/azureKeyVaultDiagnostics.bicep delete mode 100644 infra/azureRedisCache.bicep delete mode 100644 infra/azureSqlDatabase.bicep delete mode 100644 infra/azureStorage.bicep create mode 100644 infra/bicepconfig.json delete mode 100644 infra/connectByPrivateLink.bicep create mode 100644 infra/core/compute/postDeploymentScript/post-deployment.sh create mode 100644 infra/core/compute/ubuntu-jumpbox.bicep create mode 100644 infra/core/compute/windows-buildagent.bicep create mode 100644 infra/core/compute/windows-jumpbox.bicep create mode 100644 infra/core/config/app-configuration.bicep create mode 100644 infra/core/cost-management/budget.bicep create mode 100644 infra/core/database/azure-cache-for-redis.bicep create mode 100644 infra/core/database/create-sql-user-and-role.bicep create mode 100644 infra/core/database/scripts/create-sql-user-and-role.ps1 create mode 100644 infra/core/database/sql-database.bicep create mode 100644 infra/core/database/sql-server.bicep create mode 100644 infra/core/hosting/app-service-plan.bicep create mode 100644 infra/core/hosting/app-service.bicep create mode 100644 infra/core/identity/managed-identity.bicep create mode 100644 infra/core/identity/resource-group-role-assignment.bicep create mode 100644 infra/core/monitor/application-insights.bicep create mode 100644 infra/core/monitor/log-analytics-workspace.bicep create mode 100644 infra/core/network/bastion-host.bicep create mode 100644 infra/core/network/ddos-protection-plan.bicep create mode 100644 infra/core/network/firewall.bicep create mode 100644 infra/core/network/network-security-group.bicep create mode 100644 infra/core/network/peer-virtual-network.bicep create mode 100644 infra/core/network/private-dns-zone-link.bicep create mode 100644 infra/core/network/private-dns-zone.bicep create mode 100644 infra/core/network/private-endpoint.bicep create mode 100644 infra/core/network/public-ip-address.bicep create mode 100644 infra/core/network/route-table.bicep create mode 100644 infra/core/network/virtual-network.bicep create mode 100644 infra/core/security/front-door-route-approval.bicep create mode 100644 infra/core/security/front-door-route.bicep create mode 100644 infra/core/security/front-door-with-waf.bicep create mode 100644 infra/core/security/key-vault-secrets.bicep create mode 100644 infra/core/security/key-vault.bicep create mode 100644 infra/core/security/scripts/front-door-route-approval.sh create mode 100644 infra/core/storage/storage-account-blob.bicep create mode 100644 infra/core/storage/storage-account.bicep delete mode 100644 infra/createAppRegistrations.ps1 delete mode 100755 infra/createAppRegistrations.sh delete mode 100644 infra/deploymentScripts/azureRedisCachePublicDevAccess.sh delete mode 100644 infra/deploymentScripts/createSqlAcctForManagedIdentity.ps1 delete mode 100644 infra/deploymentScripts/enableSqlAdminForServer.ps1 delete mode 100644 infra/devOpsIdentitySetup.bicep delete mode 100644 infra/devOpsScripts/appConfigSvcPurge.sh delete mode 100644 infra/devOpsScripts/validateDeployment.ps1 delete mode 100644 infra/localDevScripts/addLocalIPToSqlFirewall.ps1 delete mode 100644 infra/localDevScripts/addLocalIPToSqlFirewall.sh delete mode 100644 infra/localDevScripts/getSecretsForLocalDev.ps1 delete mode 100644 infra/localDevScripts/getSecretsForLocalDev.sh delete mode 100644 infra/localDevScripts/makeSqlUserAccount.ps1 delete mode 100644 infra/localDevScripts/makeSqlUserAccount.sh delete mode 100644 infra/logAnalyticsWorkspaceForDiagnostics.bicep create mode 100644 infra/modules/application-appservice.bicep create mode 100644 infra/modules/application-post-config.bicep create mode 100644 infra/modules/application-resources.bicep create mode 100644 infra/modules/azure-fqdns.jsonc create mode 100644 infra/modules/azure-monitor.bicep create mode 100644 infra/modules/build-agent.bicep create mode 100644 infra/modules/grant-secret-user.bicep create mode 100644 infra/modules/hub-network.bicep create mode 100644 infra/modules/naming.bicep create mode 100644 infra/modules/peer-networks.bicep create mode 100644 infra/modules/private-dns-zones.bicep create mode 100644 infra/modules/resource-groups.bicep create mode 100644 infra/modules/shared-frontdoor.bicep create mode 100644 infra/modules/spoke-network.bicep create mode 100644 infra/modules/telemetry.bicep create mode 100644 infra/naming.overrides.jsonc delete mode 100644 infra/resources.bicep create mode 100644 infra/scripts/devexperience/call-make-sql-account.ps1 create mode 100644 infra/scripts/devexperience/make-sql-account.ps1 create mode 100644 infra/scripts/postdeploy/show-webapp-uri.ps1 create mode 100755 infra/scripts/postdeploy/show-webapp-uri.sh create mode 100644 infra/scripts/postprovision/call-create-app-registrations.ps1 create mode 100755 infra/scripts/postprovision/call-create-app-registrations.sh create mode 100644 infra/scripts/postprovision/create-app-registrations.ps1 create mode 100644 infra/scripts/predeploy/call-set-app-configuration.ps1 create mode 100755 infra/scripts/predeploy/call-set-app-configuration.sh create mode 100644 infra/scripts/predeploy/set-app-configuration.ps1 create mode 100644 infra/scripts/predown/call-cleanup.ps1 create mode 100755 infra/scripts/predown/call-cleanup.sh create mode 100644 infra/scripts/preprovision/validate-params.ps1 create mode 100755 infra/scripts/preprovision/validate-params.sh create mode 100644 infra/scripts/preprovision/whats-my-ip.ps1 create mode 100755 infra/scripts/preprovision/whats-my-ip.sh create mode 100644 infra/types/ApplicationIdentity.bicep create mode 100644 infra/types/BuildAgentSettings.bicep create mode 100644 infra/types/DeploymentSettings.bicep create mode 100644 infra/types/DiagnosticSettings.bicep create mode 100644 infra/types/FrontDoorSettings.bicep create mode 100644 infra/types/PrivateEndpointSettings.bicep create mode 100644 prerequisites.md create mode 100644 prod-deployment.md delete mode 100644 src/Relecloud.Web.Api/Infrastructure/RetryTestingMiddleware.cs delete mode 100644 src/Relecloud.Web.Api/Services/TicketManagementService/TicketImageService.cs rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Controllers/ConcertController.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Controllers/ImageController.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Controllers/SearchController.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Controllers/TicketController.cs (87%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Controllers/UserController.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Infrastructure/ApplicationInitializer.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Infrastructure/CacheKeys.cs (100%) create mode 100644 src/Relecloud.Web.CallCenter.Api/Infrastructure/IntermittentErrorRequestMiddleware.cs rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Infrastructure/ModelStateDictionaryExtensions.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Infrastructure/Roles.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220125000051_AddVisibleFields.Designer.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220125000051_AddVisibleFields.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220125000722_AddAuditFieldsToConcert.Designer.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220125000722_AddAuditFieldsToConcert.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220126181356_AddCheckoutTables.Designer.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220126181356_AddCheckoutTables.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220208203826_CreateTicketNumbers.Designer.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220208203826_CreateTicketNumbers.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220208231619_SelectTicketManagementService.Designer.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220208231619_SelectTicketManagementService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220209201351_TicketServiceConcertIdIsNullable.Designer.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220209201351_TicketServiceConcertIdIsNullable.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220215010613_AddTicketNumberToTicket.Designer.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/20220215010613_AddTicketNumberToTicket.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Migrations/ConcertDataContextModelSnapshot.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Program.cs (64%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Properties/launchSettings.json (100%) rename src/{Relecloud.Web.Api/Relecloud.Web.Api.csproj => Relecloud.Web.CallCenter.Api/Relecloud.Web.CallCenter.Api.csproj} (96%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/IConcertRepository.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/IPaymentGatewayService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/MockServices/MockConcertRepository.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/MockServices/MockConcertSearchService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/MockServices/MockPaymentGatewayService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/MockServices/MockTicketImageService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/MockServices/MockTicketManagementService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/MockServices/MockTicketRenderingService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/PaymentGatewayService/CapturePaymentRequest.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/PaymentGatewayService/CapturePaymentResult.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/PaymentGatewayService/CapturePaymentResultStatus.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/PaymentGatewayService/PreAuthPaymentRequest.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/PaymentGatewayService/PreAuthPaymentResult.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/PaymentGatewayService/PreAuthPaymentResultStatus.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/Search/AzureSearchConcertSearchService.cs (98%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/Search/SqlDatabaseConcertSearchService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/SqlDatabaseConcertRepository/ConcertDataContext.cs (98%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/SqlDatabaseConcertRepository/SqlDatabaseConcertRepository.cs (97%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/TicketManagementService/ITicketImageService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/TicketManagementService/ITicketManagementService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/TicketManagementService/ITicketRenderingService.cs (100%) create mode 100644 src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/TicketImageService.cs rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/TicketManagementService/TicketManagementService.cs (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Services/TicketManagementService/TicketRenderingService.cs (98%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/Startup.cs (76%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/appsettings.Development.json (100%) rename src/{Relecloud.Web.Api => Relecloud.Web.CallCenter.Api}/appsettings.json (89%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Controllers/CartController.cs (97%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Controllers/ConcertController.cs (98%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Controllers/HomeController.cs (91%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Controllers/ImageController.cs (88%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Controllers/TicketController.cs (91%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Infrastructure/CacheKeys.cs (68%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Infrastructure/ExtensionMethods.cs (93%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Infrastructure/RelecloudApiConfiguration.cs (86%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Infrastructure/Roles.cs (66%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Program.cs (70%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Properties/launchSettings.json (100%) rename src/{Relecloud.Web/Relecloud.Web.csproj => Relecloud.Web.CallCenter/Relecloud.Web.CallCenter.csproj} (95%) create mode 100644 src/Relecloud.Web.CallCenter/Services/ITicketImageService.cs rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Services/ITicketPurchaseService.cs (81%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Services/MockServices/MockConcertContextService.cs (96%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Services/MockServices/MockConcertSearchService.cs (91%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Services/MockServices/MockTicketImageService.cs (77%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Services/MockServices/MockTicketPurchaseService.cs (87%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Services/RelecloudApiServices/RelecloudApiConcertSearchService.cs (94%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Services/RelecloudApiServices/RelecloudApiConcertService.cs (98%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Services/RelecloudApiServices/RelecloudApiOptions.cs (68%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Services/RelecloudApiServices/RelecloudApiTicketImageService.cs (94%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Services/RelecloudApiServices/RelecloudApiTicketPurchaseService.cs (95%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Startup.cs (80%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/ViewModels/CartViewModel.cs (91%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/ViewModels/CheckoutViewModel.cs (96%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/ViewModels/ConcertViewModel.cs (75%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/ViewModels/TicketViewModel.cs (87%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Cart/Add.cshtml (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Cart/Checkout.cshtml (98%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Cart/Index.cshtml (97%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Concert/Create.cshtml (98%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Concert/Delete.cshtml (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Concert/Details.cshtml (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Concert/Edit.cshtml (98%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Concert/Index.cshtml (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Concert/Search.cshtml (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Concert/Search.cshtml.cs (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Home/Index.cshtml (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Shared/Error.cshtml (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Shared/_Layout.cshtml (97%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Shared/_Layout.cshtml.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Shared/_ValidationScriptsPartial.cshtml (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/Ticket/Index.cshtml (89%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/_ViewImports.cshtml (57%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/Views/_ViewStart.cshtml (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/appsettings.Development.json (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/appsettings.json (97%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/css/site.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/favicon.ico (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/img/banner.jpg (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/js/site.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/LICENSE (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery-validation/LICENSE.md (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery-validation/dist/additional-methods.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery-validation/dist/additional-methods.min.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery-validation/dist/jquery.validate.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery/LICENSE.txt (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery/dist/jquery.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery/dist/jquery.min.js (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/lib/jquery/dist/jquery.min.map (100%) rename src/{Relecloud.Web => Relecloud.Web.CallCenter}/wwwroot/robots.txt (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/ConcertContext/Concert.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/ConcertContext/CreateResult.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/ConcertContext/Customer.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/ConcertContext/DeleteResult.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/ConcertContext/PagedResult.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/ConcertContext/Ticket.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/ConcertContext/TicketNumber.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/ConcertContext/UpdateResult.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/ConcertContext/User.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/Relecloud.Web.Models.csproj (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/Search/ConcertSearchResult.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/Search/SearchFacet.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/Search/SearchFacetValue.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/Search/SearchRequest.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/Search/SearchResponse.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/Services/IConcertContextService.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/Services/IConcertSearchService.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/Services/IServiceProviderResult.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/TicketManagement/CountAvailableTicketsResult.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/TicketManagement/HaveTicketsBeenSoldResult.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/TicketManagement/Payment/CardTypes.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/TicketManagement/Payment/PaymentDetails.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/TicketManagement/PurchaseTicketsRequest.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/TicketManagement/PurchaseTicketsResult.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/TicketManagement/PurchaseTicketsResultStatus.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/TicketManagement/ReserveTicketsResult.cs (100%) rename src/{Relecloud.Models => Relecloud.Web.Models}/TicketManagement/ReserveTicketsResultStatus.cs (100%) delete mode 100644 src/Relecloud.Web/Infrastructure/RedirectSampleMiddleware.cs delete mode 100644 src/Relecloud.Web/Services/ITicketImageService.cs create mode 100644 testscripts/README.md create mode 100755 testscripts/call-validate-deployment.sh create mode 100644 testscripts/cleanup.ps1 create mode 100644 testscripts/setup.ps1 create mode 100644 testscripts/validate-deployment.ps1 rename infra/devOpsScripts/validateDeployment.sh => testscripts/validate-deployment.sh (50%) mode change 100644 => 100755 create mode 100644 troubleshooting.md diff --git a/.azdo/pipelines/README.md b/.azdo/README.md similarity index 50% rename from .azdo/pipelines/README.md rename to .azdo/README.md index 665fab5d..01e4c1cc 100644 --- a/.azdo/pipelines/README.md +++ b/.azdo/README.md @@ -1,24 +1,14 @@ # Azure DevOps Pipeline Configuration -This document is included to help you quickly set up this sample as part of an Azure DevOps pipeline that could be used as a starting point for your DevOps automations. +This document will help you create an Azure DevOps pipeline that uses the Azure Developer CLI to deploy this sample. -## Other considerations -Your devOps process should be customized to automate the build, test, and deployment steps specific to your business needs. -We recommend these following considerations to expand on the `azure-dev.yml` sample. +> This pipeline does not include the QA processes that we recommend, it is included to help you quickstart your learning journey. This pipeline also does not include the Database lifecycle management processes that we recommend. You should review your needs with your team to identify a mature solution for deploying database changes, and versioning your database schema with source control. -- You may want to review `scheduled-azure-dev.yml` to see how to add more steps such as validation testing -- You may want multiple workflows defined in different files for different purposes - - Consider database lifecycle management - - Consider quality testing processes (e.g. integration testing) - -## Setting up Azure DevOps Pipelines -The following content show you how to configure an Azure DevOps pipeline that uses the Azure Developer CLI. - -You will find a default Azure DevOps pipeline file in `./.azdo/pipelines/daily-azure-dev.yml`. It will provision your Azure resources and deploy your code on a daily schedule. +You will find a default Azure DevOps pipeline file in `./.azdo/pipelines/azure-dev.yml`. It will provision your Azure resources and deploy your code on a daily schedule. You are welcome to use the file as-is or modify it to suit your needs. -> First time setup: This pipeline does not ask you to store credentials that can access Azure AD. As such, you will need to run the `createAppRegistrations.sh` script with your account for a first time setup. This process can be added to the pipeline as an idempotent script but will require an Azure AD account to create the App Registrations. +> First time setup: This pipeline does not ask you to store credentials that can access Microsoft Entra ID. As such, you will need to run the `create-app-registrations.ps1` script with your account for a first time setup. This process can be added to the pipeline as an idempotent script but will require an Microsoft Entra ID account to create the App Registrations. ## Getting Started The following steps are required to get started. @@ -43,7 +33,7 @@ The following steps walk-through creating the Azure Pipeline. 1. Start by navigating to the Azure DevOps Pipeline page - ![#Azure DevOps Pipeline Page](../../assets/AzdoSetup/1CreateAPipeline.png) + ![#Azure DevOps Pipeline Page](../assets/images/AzdoSetup/1CreateAPipeline.png) Image of Azure DevOps Pipeline Page @@ -51,26 +41,26 @@ The following steps walk-through creating the Azure Pipeline. 3. Choose **Azure Repos Git** and the appropriate git repository - ![#Azure Pipeline asks where your code is](../../assets/AzdoSetup/2CreateAPipeline.png) + ![#Azure Pipeline asks where your code is](../assets/images/AzdoSetup/2CreateAPipeline.png) Azure Pipeline asks where your code is 4. Choose **Existing Azure Pipelines YAML file** - ![#Azure Pipeline asks to pick a template](../../assets/AzdoSetup/3CreateAPipeline.png) + ![#Azure Pipeline asks to pick a template](../assets/images/AzdoSetup/3CreateAPipeline.png) Azure Pipeline asks to pick a template 5. Select the *daily-azure-dev.yml* file from your repo - ![#Pick the daily-azure-dev.yml file](../../assets/AzdoSetup/4CreateAPipeline.png) + ![#Pick the daily-azure-dev.yml file](../assets/images/AzdoSetup/4CreateAPipeline.png) Pick the daily-azure-dev.yml file 6. On the next screen you must provide 3 pipeline variables - ![#Set Pipeline variables](../../assets/AzdoSetup/5CreateAPipeline.png) + ![#Set Pipeline variables](../assets/images/AzdoSetup/5CreateAPipeline.png) Set Pipeline variables @@ -82,5 +72,5 @@ The following steps walk-through creating the Azure Pipeline. 7. Click the `Run` button to start your first pipeline -> Note: Because the pipeline does not configure your Azure AD resources you must configure the Azure AD App Registrations and place those values into Key Vault and App Configuration Service before the application will run successfully. We provide the `createAppRegistration.sh` script to do this one-time setup. +> Note: Because the pipeline does not configure your Microsoft Entra ID resources you must configure the Microsoft Entra ID App Registrations and place those values into Key Vault and App Configuration Service before the application will run successfully. We provide the `createAppRegistration.sh` script to do this one-time setup. diff --git a/.azdo/pipelines/azure-dev.yml b/.azdo/pipelines/azure-dev.yml index 082fcf8b..baedab93 100644 --- a/.azdo/pipelines/azure-dev.yml +++ b/.azdo/pipelines/azure-dev.yml @@ -7,7 +7,7 @@ trigger: pool: vmImage: ubuntu-latest -container: mcr.microsoft.com/azure-dev-cli-apps:latest +container: mcr.microsoft.com/azure-dev-cli-apps:1.5.0 variables: - name: env_name value: $(AZD_AZURE_ENV_NAME)daily diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 3ac6ed69..73aa583a 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,2 +1,6 @@ ARG VARIANT -FROM mcr.microsoft.com/vscode/devcontainers/dotnet:0-${VARIANT} \ No newline at end of file +FROM mcr.microsoft.com/vscode/devcontainers/dotnet:${VARIANT} + +# Install Az module +RUN pwsh -Command "Install-Module -Name Az -Force -AllowClobber -Scope AllUsers" +RUN pwsh -Command "Install-Module -Name SqlServer -Force -AllowClobber -Scope AllUsers" \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 082524ae..cece3175 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,41 +1,39 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: -// https://github.com/microsoft/vscode-dev-containers/tree/v0.236.0/containers/dotnet { - "name": "reliable-web-app-pattern-dotnet", + "name": "web-app-pattern-dotnet", "build": { "dockerfile": "Dockerfile", "args": { - "VARIANT": "6.0-bullseye" - } + "VARIANT": "8.0-bookworm" + } }, "runArgs": ["--init", "--privileged"], "customizations": { "vscode": { "extensions": [ - "ms-dotnettools.csharp", - "ms-azuretools.vscode-bicep", + "ms-azuretools.azure-dev", "ms-azuretools.vscode-azureappservice", + "ms-azuretools.vscode-azureresourcegroups", + "ms-azuretools.vscode-azurestorage", + "ms-azuretools.vscode-bicep", "ms-azuretools.vscode-docker", - "ms-azuretools.azure-dev", + "ms-dotnettools.csharp", "ms-mssql.mssql", - "github.copilot" + "ms-vscode.azure-account", + "ms-vscode.PowerShell" ] } }, - - "remoteUser": "vscode", "features": { + "ghcr.io/azure/azure-dev/azd:latest": { + "version": "1.5.1" + }, + "ghcr.io/devcontainers/features/azure-cli:1": {}, "ghcr.io/devcontainers/features/common-utils:2": {}, + "ghcr.io/devcontainers/features/github-cli:1": {}, "ghcr.io/devcontainers/features/powershell:1": {}, - "ghcr.io/devcontainers/features/azure-cli:1": {}, - "ghcr.io/devcontainers/features/common-utils:1": {}, - "ghcr.io/devcontainers/features/sshd:1": { - "version": "latest" - } + "ghcr.io/devcontainers/features/sshd:1": {} }, - - "waitFor": "postCreateCommand", - "postCreateCommand": "curl -fsSL https://aka.ms/install-azd.sh | bash", - "postStartCommand": "az bicep install; azd config set auth.useAzCliAuth true" -} + // resolves error: dubious ownership of the workspace folder + "postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}" +} \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..c10fec7d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* text=auto +*.sh text eol=lf \ No newline at end of file diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index caf868b3..5aa79333 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -12,7 +12,7 @@ jobs: build: runs-on: ubuntu-latest container: - image: mcr.microsoft.com/azure-dev-cli-apps:latest + image: mcr.microsoft.com/azure-dev-cli-apps:1.5.0 steps: - name: Checkout uses: actions/checkout@v2 diff --git a/.github/workflows/scheduled-azure-dev.yml b/.github/workflows/scheduled-azure-dev.yml index 19d80b56..c7382882 100644 --- a/.github/workflows/scheduled-azure-dev.yml +++ b/.github/workflows/scheduled-azure-dev.yml @@ -13,21 +13,33 @@ permissions: id-token: write contents: read +concurrency: integration_testing + jobs: build: runs-on: ubuntu-latest container: - image: mcr.microsoft.com/azure-dev-cli-apps:1.3.0 + image: mcr.microsoft.com/azure-dev-cli-apps:1.5.1 env: AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} - AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}scheduled - AZURE_LOCATION: ${{ secrets.AZURE_LOCATION2 }} steps: + - name: Install jq tool + uses: dcarbone/install-jq-action@v2 - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.0.x' + + - name: Install Az module + run: Install-Module -Name Az -Force -AllowClobber -Scope CurrentUser -Repository PSGallery + shell: pwsh + + - name: Check configuration + if: ${{ env.AZURE_CREDENTIALS == '' }} + run: echo "AZURE_CREDENTIALS are not available." # login to run ado commands such provision, deploy, and down - name: Log in with Azure (Client Credentials) for AZD @@ -44,74 +56,39 @@ jobs: env: AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} - - name: Create AZD environment - # Creating an azd environment so we can set the principal type - # https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/241 - run: azd env new ${{ secrets.AZURE_ENV_NAME }}scheduled --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }} --location ${{ secrets.AZURE_LOCATION2 }} + # login to run azd hooks and the QA validation script + - name: Log in with Azure CLI + if: ${{ env.AZURE_CREDENTIALS != '' }} + uses: Azure/login@v1.6.1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + enable-AzPSSession: true - - name: Set AZD PRINCIPAL_TYPE - # Adding RBAC permissions via the script enables the sample to work around a permission propagation issue outlined in the issue - # https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/138 - run: azd env set PRINCIPAL_TYPE servicePrincipal + - name: Set the environment + if: ${{ env.AZURE_CREDENTIALS != '' }} + run : azd env new ${{ secrets.AZURE_ENV_NAME }} - - name: Azure Dev Provision - run: azd provision --no-prompt + - name: Set the subscription + if: ${{ env.AZURE_CREDENTIALS != '' }} + run : azd env set AZURE_SUBSCRIPTION_ID ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Set AZD AZURE_RESOURCE_GROUP - # temporary work around for known issue with multiple resource groups - # https://github.com/Azure/azure-dev/issues/690 - run: azd env set AZURE_RESOURCE_GROUP ${{ secrets.AZURE_ENV_NAME }}scheduled-rg + - name: Set the location + if: ${{ env.AZURE_CREDENTIALS != '' }} + run : azd env set AZURE_LOCATION ${{ secrets.AZURE_LOCATION }} - - name: Azure Dev Deploy - run: azd deploy --no-prompt + - name: Set the principal type + if: ${{ env.AZURE_CREDENTIALS != '' }} + run : azd env set AZURE_PRINCIPAL_TYPE ServicePrincipal - # login to run az cli commands such as validateDeployment.sh - - name: Log in with Azure CLI - uses: azure/login@v1 - with: - creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Azure Deploy + if: ${{ env.AZURE_CREDENTIALS != '' }} + run : azd up - name: QA - Validate Deployment - run: | - chmod +x ./infra/devOpsScripts/validateDeployment.sh - ./infra/devOpsScripts/validateDeployment.sh -g ${{ secrets.AZURE_ENV_NAME }}scheduled-rg - - teardown: - needs: [build] - runs-on: ubuntu-latest - container: - image: mcr.microsoft.com/azure-dev-cli-apps:1.3.0 - env: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} - AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}scheduled - AZURE_LOCATION: ${{ secrets.AZURE_LOCATION2 }} - steps: - - name: Checkout - uses: actions/checkout@v2 - - # login to run ado commands such provision, deploy, and down - - name: Log in with Azure (Client Credentials) for AZD if: ${{ env.AZURE_CREDENTIALS != '' }} - run: | - $info = $Env:AZURE_CREDENTIALS | ConvertFrom-Json -AsHashtable; - Write-Host "::add-mask::$($info.clientSecret)" + run : ./testscripts/call-validate-deployment.sh - azd login ` - --client-id "$($info.clientId)" ` - --client-secret "$($info.clientSecret)" ` - --tenant-id "$($info.tenantId)" - shell: pwsh - env: - AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} - - - name: Create AZD environment - # Creating an azd environment so we can set the principal type - # https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/241 - run: azd env new ${{ secrets.AZURE_ENV_NAME }}scheduled --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }} --location ${{ secrets.AZURE_LOCATION2 }} - - - name: Azure Dev Down - run: azd down --force --purge --no-prompt + - name: Teardown Azure resources + if: ${{ env.AZURE_CREDENTIALS != '' }} + run : azd down --force --purge --no-prompt diff --git a/.github/workflows/scheduled-azure-teardown.yml b/.github/workflows/scheduled-azure-teardown.yml index f4ad224c..72f87cd0 100644 --- a/.github/workflows/scheduled-azure-teardown.yml +++ b/.github/workflows/scheduled-azure-teardown.yml @@ -5,18 +5,38 @@ on: workflow_dispatch: schedule: - cron: '0 13 1 * *' # Run at 13:00 on the 1st day of the month + +# https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication +permissions: + id-token: write + contents: read + +concurrency: integration_testing jobs: build: runs-on: ubuntu-latest container: - image: mcr.microsoft.com/azure-dev-cli-apps:1.3.0 + image: mcr.microsoft.com/azure-dev-cli-apps:1.5.1 + env: + AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} + AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} + AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} steps: + - name: Install jq tool + uses: dcarbone/install-jq-action@v2 - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.0.x' + + - name: Install Az module + run: Install-Module -Name Az -Force -AllowClobber -Scope CurrentUser -Repository PSGallery + shell: pwsh # login to run ado commands such provision, deploy, and down - - name: Log in with Azure (Client Credentials) + - name: Log in with Azure (Client Credentials) for AZD if: ${{ env.AZURE_CREDENTIALS != '' }} run: | $info = $Env:AZURE_CREDENTIALS | ConvertFrom-Json -AsHashtable; @@ -30,23 +50,31 @@ jobs: env: AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} - - name: Create AZD environment - # Creating an azd environment so we can set the principal type - # https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/241 - run: azd env new ${{ secrets.AZURE_ENV_NAME }}scheduled --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }} --location ${{ secrets.AZURE_LOCATION2 }} - - - name: Azure Dev Down + # login to run azd hooks + - name: Log in with Azure CLI + uses: Azure/login@v1.6.1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + enable-AzPSSession: true + + - name: Set the environment + run: azd env new ${{ secrets.AZURE_ENV_NAME }} + + - name: Set the subscription + run : azd env set AZURE_SUBSCRIPTION_ID ${{ secrets.AZURE_SUBSCRIPTION_ID }} + + - name: Set the location + run : azd env set AZURE_LOCATION ${{ secrets.AZURE_LOCATION }} + + - name: Set the principal type + run : azd env set AZURE_PRINCIPAL_TYPE ServicePrincipal + + - name: Set AZURE_RESOURCE_GROUP + # Azure resource group is required by the AZD tool for teardown + # calculated AZURE_RESOURCE_GROUP from the templates + run : azd env set AZURE_RESOURCE_GROUP rg-${{ secrets.AZURE_ENV_NAME }}-dev-${{ secrets.AZURE_LOCATION }}-application + + - name: Teardown Azure resources continue-on-error: true run: azd down --force --purge --no-prompt - env: - AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}scheduled - AZURE_LOCATION: ${{ secrets.AZURE_LOCATION2 }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - # Resource names are reserved for a period of time after deletion - ensure they're purged to keep integration running - # https://learn.microsoft.com/azure/azure-app-configuration/faq#why-can-t-i-create-an-app-configuration-store-with-the-same-name-as-one-that-i-just-deleted - - name: Purge App Configuration Service - continue-on-error: true - run: | - chmod +x ./infra/deploymentScripts/appConfigSvcPurge.sh - ./infra/deploymentScripts/appConfigSvcPurge.sh -g ${{ secrets.AZURE_ENV_NAME }}daily2-rg diff --git a/.gitignore b/.gitignore index e7406832..16612889 100644 --- a/.gitignore +++ b/.gitignore @@ -1,354 +1,356 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ -.azure -createSqlUser.sql -updateSqlUserPerms.sql -sqlcmd* +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Azd folders +.azure + +**/Azure.LoadTest.Tool/publish/ +**/log*.txt diff --git a/README.md b/README.md index a30d70a1..302bdb02 100644 --- a/README.md +++ b/README.md @@ -2,472 +2,190 @@ > :mega: **Got feedback?** Fill out [this survey](https://aka.ms/eap/rwa/dotnet/survey) to help us shape the future of Enterprise App Patterns and understand whether we're focusing on the business goals and features important to you. [Microsoft Privacy Statement](https://go.microsoft.com/fwlink/?LinkId=521839) -The reference implementation provides a production-grade web application that uses best practices from our guidance and gives developers concrete examples to build their own Reliable Web Application in Azure. It simulates the journey from an on-premises ASP.NET application to a migration to Azure. It shows you what changes to make to maximize the benefits of the cloud in the initial cloud adoption phase. Here's an outline of the contents in this readme: +The reference implementation provides a production-grade web application that uses best practices from our guidance and gives developers concrete examples to build their own Reliable Web Application in Azure. This repository specifically demonstrates a concert ticketing application for the fictional company Relecloud, embodying the reliable web app pattern with a focus on .NET technologies. It guides developers through a simulated migration from an on-premises ASP.NET application to Azure, detailing the architectural changes and enhancements that capitalize on the cloud's strengths during the initial adoption phase. + +This project has [a companion article in the Azure Architecture Center](https://aka.ms/eap/rwa/dotnet/doc) that describes design patterns and best practices and [a six-part video series (YouTube)](https://aka.ms/eap/rwa/dotnet/videos) that details the reliable web app pattern for .NET web app. Here's an outline of the contents in this readme: -- [Azure Architecture Center guidance](#azure-architecture-center-guidance) -- [6 videos on the reliable web app pattern for .NET](#videos) - [Architecture](#architecture) - [Workflow](#workflow) - [Steps to deploy the reference implementation](#steps-to-deploy-the-reference-implementation) - [Additional links](#additional-links) - [Data Collection](#data-collection) -## Azure Architecture Center guidance - -This project has a [companion article in the Azure Architecture Center](https://aka.ms/eap/rwa/dotnet/doc) that describes design patterns and best practices for migrating to the cloud. We suggest you read it as it will give important context to the considerations applied in this implementation. +## Architecture -## Videos +Relecloud aligned to a hub and spoke network topology in the production deployment architecture to centralize common resources. This network topology provided cost savings, enhanced security, and facilitated network integration (platform and hybrid): -This project has a six-part video series that details the reliable web app pattern for .NET web app. For more information, see [Reliable web app pattern videos (YouTube)](https://aka.ms/eap/rwa/dotnet/videos). +![architecture diagram](./assets/icons/reliable-web-app-dotnet.svg) -## Architecture +This diagram describes the production deployment which is described in the [prod-deployment.md](./prod-deployment.md) file. The following steps below are for a [development deployment](./assets/icons/reliable-web-app-dotnet-dev.svg) which is a simplified version. -![architecture diagram](./assets/icons/reliable-web-app-dotnet.png) +- Cost efficiency: The hub acts as a central point for shared resources, promoting cost-effective resource reuse. For instance, Azure Bastion is a shared service in the hub, providing secure and cost-effective remote access without the need for separate deployments for each application. +- Traffic control and security: Network traffic is managed and secured using Network Security Groups and Route tables in each subnet, creating secure boundaries for Azure resources. Private endpoints add an extra layer of security, and a jump box allows for deployment within these boundaries, maintaining local IP access to resources. +- Network integration: The topology supports network integrations for data transfer across applications and hybrid scenarios. While the reference architecture doesn't include ExpressRoute or Azure VPN Gateway, these should be considered for applications requiring hybrid network connections. ## Workflow -- Azure Front Door routes traffic based on availability of the primary region. When the primary region is unavailable it will route traffic to the secondary region. -- When Front Door passes the request to the Web App, it will pass-through the Azure Web Application Firewall. The Azure Web Application Firewall will evaluate the request and protect the web app against common security attacks. -- Once the traffic reaches the web front-end users will be shown the home page. They can view these pages without authenticating. -- Navigating to the Concerts on the web app will send a request to the web front-end that tells it to ask the web api app for details about upcoming concerts. -- Details about the upcoming concerts will be retrieved from the Azure SQL Database by the web api app with a SQL query. The results will be formatted as a JSON response and returned to the web front-end. -- When the web front-end receives results from the API it will use razor template engine to render the HTML page shown to the user that asked for a list of concerts. -- Once a user adds a concert ticket to their shopping cart the front-end web app will start interacting with Azure Cache for Redis. Asking the web app to put a concert ticket into the cart tells the web app to save information about that pending purchase as JSON data in Redis as part of a session object for the current user. Saving the session to an external datastore enables the web app to load balance traffic more evenly and to handle horizontal scaling events without losing the customer's intent to buy a ticket. No inventory management is included in this sample so there are no quantities deducted, or placed on reserve, in the backend of the system. -- As the user checks out the front-end web app will ask the user to authenticate with Azure AD. This scenario is for a call center that places orders on-behalf of customers so the accounts in-use are managed by Relecloud and are not self-managed. -- After authenticating to Azure AD the front-end web app will receive a token from Azure AD that represents the current user. This token is saved as a cookie in the user's browser and is not persisted by the front-end web app. -- As the user proceeds with checkout the web app will collect payment data. Payment data is not sent anywhere for this sample. -- When the payment data is submitted for approval the ticket will be purchased. Logic to handle this is located in the web api project so the web app makes a call to the web api project. -- Prior to calling the API, the front-end web app asks the MSAL library for a token it can use to call the web api app as an authenticated user. -- When the MSAL library, in the front-end web app, has a token it will cache it in Azure Cache for Redis. If it does not have a token it will request one from Azure AD and then save it in Azure Cache for Redis. -- Once the ticket purchase request is sent to the web api app the API will render the ticket image and save it to Azure storage. -- After the ticket purchase is completed successfully the user will be directed to their tickets page where they can see a list of the tickets they have purchased. These tickets will be immediately available because rendering the ticket was part of the purchase request. - - As information flows between services the Azure network handles traffic routing across private endpoints by using Azure Private DNS to lookup the correct IP addresses. This enables the system to block public network traffic and use a single v-net to manage traffic between these systems. This v-net can be connected to others as-needed to allow the app to call other systems in your digital estate or to allow other systems to call the web API so they can access details about ticket purchases. - - As the front-end, and web api, apps process requests they are sending data to Application Insights so that you can monitor information about processing web requests - - When the web app is started for the first time it will load configuration data from App Config Service and Azure Key Vault. This information is saved in the web apps memory and is not accessed afterwards. +This description details the workflow for Relecloud's concert ticketing application. It highlights key components and functionality to help you emulate its design: + +- Global traffic routing: Azure Front Door acts as a global traffic manager, routing users to the primary region for optimal performance and failing over to a secondary region during outages for uninterrupted service. +- Security inspection: Incoming traffic is inspected by Azure Web Application Firewall to protect against web vulnerabilities before reaching the web app. +- Static and dynamic content delivery: Users receive static content, like the home page, immediately upon request. Dynamic content, such as 'Upcoming Concerts', is generated by making API calls to the backend, which fetches data from Azure SQL Database and returns it in a JSON format. +- Session state management: User sessions, including shopping cart data, are managed by Azure Cache for Redis, ensuring persistence and consistency across scale-out events. +- User authentication: Microsoft Entra ID handles user authentication, suitable for environments where accounts are centrally managed, enhancing security and control. +- API interaction and token management: The front-end web app uses the MSAL library to obtain tokens for authenticated API calls, caching them in Azure Cache for Redis to optimize performance and manageability. +- Payment and checkout flow: While this example doesn't process real payments, the web app captures payment information during checkout, demonstrating how a web app can handle sensitive data. +- Purchase and ticket generation: The backend API processes purchase requests and generates tickets that are immediately accessible to users. +- Networking and access control: Azure Private DNS, Network Security Groups, and Azure Firewall tightly control the flow of traffic within the app's network, maintaining security and isolation. +- Monitoring and telemetry: Application Insights provides monitoring and telemetry capabilities, enabling performance tracking and proactive issue resolution. +- Configuration and secrets management: Initial configuration and sensitive information are loaded from Azure App Configuration and Azure Key Vault into the app's memory upon startup, minimizing access to sensitive data thereafter. ## Steps to deploy the reference implementation -This reference implementation provides you with the instructions and templates you need to deploy this solution. This solution uses the Azure Dev CLI to set up Azure services -and deploy the code. - -### Pre-requisites - -1. To run the scripts, Windows users require Powershell 7.2 (LTS) or above. Alternatively, you can use a bash terminal using [Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/install). macOS users can use a bash terminal. - - 1. PowerShell users - [Install PowerShell](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows) - Run the following to verify that you're running the latest PowerShell - - ```ps1 - $PsVersionTable - ``` - -1. [Install Git](https://github.com/git-guides/install-git) - Run the following to verify that git is available - ```ps1 - git version - ``` - -1. [Install the Azure CLI](https://learn.microsoft.com/cli/azure/install-azure-cli). - Run the following command to verify that you're running version - 2.38.0 or higher. - - ```ps1 - az version - ``` - - After the installation, run the following command to [sign in to Azure interactively](https://learn.microsoft.com/cli/azure/authenticate-azure-cli#sign-in-interactively). +The following detailed deployment steps assume you are using a Dev Container inside Visual Studio Code. - ```ps1 - az login - ``` -1. [Upgrade the Azure CLI Bicep extension](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/install#azure-cli). - Run the following command to verify that you're running version 0.12.40 or higher. +> For your convenience, we use Dev Containers with a fully-featured development environment. If you prefer to use Visual Studio, we recommend installing the necessary [dependencies](./prerequisites.md) and skip to the deployment instructions starting in [Step 3](#3-log-in-to-azure). - ```ps1 - az bicep version - ``` +### 1. Clone the repo -1. [Install the Azure Dev CLI](https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd). - Run the following command to verify that the Azure Dev CLI is installed. +> For Windows users, we recommend using Windows Subsystem for Linux (WSL) to [improve Dev Container performance](https://code.visualstudio.com/remote/advancedcontainers/improve-performance). - ```ps1 - azd auth login - ``` - -1. [Install .NET 6 SDK](https://dotnet.microsoft.com/download/dotnet/6.0) - Run the following command to verify that the .NET SDK 6.0 is installed. - ```ps1 - dotnet --version - ``` - -### Get the code - -Please clone the repo to get started. - -``` -git clone https://github.com/Azure/reliable-web-app-pattern-dotnet +```pwsh +wsl ``` -And switch to the folder so that `azd` will recognize the solution. +Clone the repository from GitHub into the WSL 2 filesystem using the following command: -``` +```shell +git clone https://github.com/Azure/reliable-web-app-pattern-dotnet.git cd reliable-web-app-pattern-dotnet ``` -### Deploying to Azure +### 2. Open Dev Container in Visual Studio Code -Relecloud's developers use the `azd` command line experience to deploy the code. This means their local workflow is the same -experience that runs from the GitHub action. You can use these -steps to follow their experience by running the commands from the folder where this guide is stored after cloning this repo. +If required, ensure Docker Desktop is started and enabled for your WSL terminal [more details](https://learn.microsoft.com/windows/wsl/tutorials/wsl-containers#install-docker-desktop). Open the repository folder in Visual Studio Code. You can do this from the command prompt: -Use this command to get started with deployment by creating an -`azd` environment on your workstation. - - - - - - - - - - -
PowerShell - -```ps1 -$myEnvironmentName="relecloudresources" +```shell +code . ``` -```ps1 -azd init -e $myEnvironmentName -``` - -
Bash - -```bash -myEnvironmentName="relecloudresources" -``` +Once Visual Studio Code is launched, you should see a popup allowing you to click on the button **Reopen in Container**. -```bash -azd init -e $myEnvironmentName -``` +![Reopen in Container](assets/images/vscode-reopen-in-container.png) -
+If you don't see the popup, open the Visual Studio Code Command Palette to execute the command. There are three ways to open the command palette: +- For Mac users, use the keyboard shortcut ⇧⌘P +- For Windows and Linux users, use Ctrl+Shift+P +- From the Visual Studio Code top menu, navigate to View -> Command Palette. -#### (Optional Steps) Choose Prod or Non-prod environment +Once the command palette is open, search for `Dev Containers: Rebuild and Reopen in Container`. -The Relecloud team uses the same bicep templates to deploy -their production, and non-prod, environments. To do this -they set `azd` environment parameters that change the behavior -of the next steps. +![WSL Ubuntu](assets/images/vscode-reopen-in-container-command.png) -> If you skip the next two optional steps, and change nothing, -> then the bicep templates will default to non-prod settings. +### 3. Log in to Azure -*Step: 1* +Before deploying, you must be authenticated to Azure and have the appropriate subscription selected. Run the following command to authenticate: -Relecloud devs deploy the production environment by running the -following command to choose the SKUs they want in production. +If you are not using PowerShell 7+, run the following command (you can use [$PSVersionTable.PSVersion](https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_powershell_editions) to check your version): -```ps1 -azd env set IS_PROD true +```shell +pwsh ``` -*Step: 2* - -Relecloud devs also use the following command to choose a second -Azure location because the production environment is -multiregional. - -```ps1 -azd env set SECONDARY_AZURE_LOCATION westus3 +```pwsh +Import-Module Az.Resources ``` -> You can find a list of available Azure regions by running -> the following Azure CLI command. -> -> ```ps1 -> az account list-locations --query "[].name" -o tsv -> ``` - -#### Provision the infrastructure - -Relecloud uses the following command to deploy the Azure -services defined in the bicep files by running the provision -command. - -> This step will take several minutes based on the region -> and deployment options you selected. - -```ps1 -azd provision +```pwsh +Connect-AzAccount ``` -When prompted, select the preferred Azure Subscription and the Location: - -![screenshot azd env new](./assets/Guide/Azd-Env-New.png) - -> When the command finishes you have deployed Azure App -> Service, SQL Database, and supporting services to your -> subscription. If you log into the the -> [Azure Portal](http://portal.azure.com) you can find them -> in the resource group named `$myEnvironmentName-rg`. - -#### Create App Registrations -Relecloud devs have automated the process of creating Azure -AD resources that support the authentication features of the -web app. They use the following command to create two new -App Registrations within Azure AD. The command is also -responsible for saving configuration data to Key Vault and -App Configuration so that the web app can read this data. +Set the subscription to the one you want to use (you can use [Get-AzSubscription](https://learn.microsoft.com/powershell/module/az.accounts/get-azsubscription?view=azps-11.3.0) to list available subscriptions): - - - - - - - - - -
PowerShell +```pwsh +$AZURE_SUBSCRIPTION_ID="" +``` -```ps1 -pwsh -c "Set-ExecutionPolicy Bypass Process; .\infra\createAppRegistrations.ps1 -g '$myEnvironmentName-rg'" +```pwsh +Set-AzContext -SubscriptionId $AZURE_SUBSCRIPTION_ID ``` -
Bash +Use the next command to login with the Azure Dev CLI (AZD) tool: -```bash -chmod +x ./infra/createAppRegistrations.sh -./infra/createAppRegistrations.sh -g "$myEnvironmentName-rg" +```pwsh +azd auth login ``` -
-> Known issue: [/bin/bash^M: bad interpreter](known-issues.md#troubleshooting) +### 4. Create a new environment -#### Deploy the code +Next we provide the AZD tool with variables that it uses to create the deployment. The first thing we initialize is the AZD environment with a name. -To finish the deployment process the Relecloud devs run the -folowing `azd` commands to build, package, and deploy the dotnet -code for the front-end and API web apps. +The environment name should be less than 18 characters and must be comprised of lower-case, numeric, and dash characters (for example, `dotnetwebapp`). The environment name is used for resource group naming and specific resource naming. -```ps1 - azd env set AZURE_RESOURCE_GROUP "$myEnvironmentName-rg" -``` +By default, Azure resources are sized for a development deployment. If doing a production deployment, see the [production deployment](./prod-deployment.md) instructions for more detail. -```ps1 - azd deploy +```pwsh +azd env new ``` -When finished the console will display the URI for the web app. You can use this URI to view the deployed solution in a browser. +Select the subscription that will be used for the deployment: -![screenshot of Relecloud app home page](./assets/Guide/WebAppHomePage.png) +```pwsh +azd env set AZURE_SUBSCRIPTION_ID $AZURE_SUBSCRIPTION_ID +``` -> If you face any issues with the deployment, see the [Known issues document](known-issues.md) below for possible workarounds. There could be interim issues while deploying to Azure, and repeating the steps after a few minutes should fix most of them. Azure deployments are incremental by default, and only failed actions will be retired. +Set the `AZURE_LOCATION` (Run `(Get-AzLocation).Location` to see a list of locations): -#### Clean up Azure Resources +```pwsh +azd env set AZURE_LOCATION +``` -1. Unprovision the Azure Resources -2. Clean up App Registrations -3. Delete the Deployment +### 5. Create the Azure resources and deploy the code -##### 1. Unprovision the Azure Resources -To tear down an enviroment, and clean up the Azure resource group, use the folloing command: +Run the following command to create the Azure resources and deploy the code (about 15-minutes to complete): -```ps1 -azd down --force --purge --no-prompt +```pwsh +azd up ``` -> You can also use the Azure Portal to delete the "relecloudresources" resource groups. This approach will not purge the Key Vault or App Configuration services and they will remain in your subscription for 7 days in a deleted state that does not charge your subscription. This feature enables you to recover the data if the configuration was accidentally deleted. You can purge these in the _Manage deleted stores_ section of each service in the portal. +### 6. Open and use the application - ![screenshot of Purging App Configurations](./assets/Guide/AppConfig-Purge.png) +Use the URL displayed in the console output to launch the web application that you have deployed: -##### 2. Clean up App Registrations -You will also need to delete the two Azure AD app registrations that were created. You can find them in Azure AD by searching for their environment name. - - **Delete App Registrations** +![screenshot of web app home page](assets/images/WebAppHomePage.png) - ![screenshot of Azure AD App Registrations](./assets/Guide/AD-AppRegistrations.png) - - You will also need to purge the App Configuration Service instance that was deployed. +You can learn more about the web app by reading the [Pattern Simulations](demo.md) documentation. +### 7. Tear down the deployment -##### 3. Delete the Deployment +Run the following command to tear down the deployment: -Your Azure subscription will retain your deployment request as a stateful object. -If you would like to change the Azure region for this deployment you will need to -delete the deployment by running the following command. - -``` -az deployment delete --name $myEnvironmentName +```pwsh +azd down --purge --force ``` -> You can list all deployments with the following command -> `az deployment sub list --query "[].name" -o tsv` - -### Local Development - -Relecloud developers use Visual Studio to develop locally and they co-share -an Azure SQL database for local dev. The team chooses this workflow to -help them practice early integration of changes as modifying the -database and other shared resources can impact multiple workstreams. - -To connect to the shared database the dev team uses connection strings -from Key Vault and App Configuration Service. Devs use the following -script to retrieve data and store it as -[User Secrets](https://learn.microsoft.com/aspnet/core/security/app-secrets?view=aspnetcore-6.0&tabs=windows) -on their workstation. - -Using the `secrets.json` file helps the team keep their credentials -secure. The file is stored outside of the source control directory so -the data is never accidentally checked-in. And the devs don't share -credentials over email or other ways that could compromise their -security. - -Managing secrets from Key Vault and App Configuration ensures that only -authorized team members can access the data and also centralizes the -administration of these secrets so they can be easily changed. - -New team members should setup their environment by following these steps. - -1. Open the Visual Studio solution `./src/Relecloud.sln` -1. Setup the **Relecloud.Web** project User Secrets - 1. Right-click on the **Relecloud.Web** project - 1. From the context menu choose **Manage User Secrets** - 1. From a command prompt run the bash command - - - - - - - - - - -
PowerShell - - ```ps1 - pwsh -c "Set-ExecutionPolicy Bypass Process; .\infra\localDevScripts\getSecretsForLocalDev.ps1 -g '$myEnvironmentName-rg' -Web" - ``` - -
Bash - - ```bash - chmod +x ./infra/localDevScripts/getSecretsForLocalDev.sh - ./infra/localDevScripts/getSecretsForLocalDev.sh -g "$myEnvironmentName-rg" --web - ``` - -
- - 1. Copy the output into the `secrets.json` file for the **Relecloud.Web** - project. - -1. Setup the **Relecloud.Web.Api** project User Secrets - 1. Right-click on the **Relecloud.Web.Api** project - 1. From the context menu choose **Manage User Secrets** - 1. From a command prompt run the bash command - - - - - - - - - - -
PowerShell - - ```ps1 - pwsh -c "Set-ExecutionPolicy Bypass Process; .\infra\localDevScripts\getSecretsForLocalDev.ps1 -g '$myEnvironmentName-rg' -Api" - ``` - -
Bash - - ```bash - ./infra/localDevScripts/getSecretsForLocalDev.sh -g "$myEnvironmentName-rg" --api - ``` - -
- - 1. Copy the output into the `secrets.json` file for the - **Relecloud.Web.Api** project. - -1. Right-click the **Relecloud** solution and pick **Set Startup Projects...** -1. Choose **Multiple startup projects** -1. Change the dropdowns for *Relecloud.Web* and *Relecloud.Web.Api* to the action of **Start**. -1. Click **Ok** to close the popup -1. Add your IP address to the SQL Database firewall as an allowed connection by using the following script - - - - - - - - - - -
PowerShell - - ```ps1 - pwsh -c "Set-ExecutionPolicy Bypass Process; .\infra\localDevScripts\addLocalIPToSqlFirewall.ps1 -g '$myEnvironmentName-rg'" - ``` - -
Bash - - ```bash - chmod +x ./infra/localDevScripts/addLocalIPToSqlFirewall.sh - ./infra/localDevScripts/addLocalIPToSqlFirewall.sh -g "$myEnvironmentName-rg" - ``` - -
- -1. When connecting to Azure SQL database you'll connect with your Azure AD account. -Run the following command to give your Azure AD account permission to access the database. - - - - - - - - - - -
PowerShell - - ```ps1 - pwsh -c "Set-ExecutionPolicy Bypass Process; .\infra\localDevScripts\makeSqlUserAccount.ps1 -g '$myEnvironmentName-rg'" - ``` - -
Bash - - ```bash - chmod +x ./infra/localDevScripts/makeSqlUserAccount.sh - ./infra/localDevScripts/makeSqlUserAccount.sh -g "$myEnvironmentName-rg" - ``` - -
- -1. Press F5 to start debugging the website - -> These steps grant access to SQL server in the primary resource group. -> You can use the same commands if you want to test with the secondary resource -> group by changing the ResourceGroup parameter "-g" to "$myEnvironmentName-secondary-rg" - ## Additional links - [Known issues](known-issues.md) -- [Developer patterns](simulate-patterns.md) +- [Troubleshooting](troubleshooting.md) +- [Pattern Simulations](demo.md) +- [Developer Experience](developer-experience.md) +- [Calculating SLA](./assets/sla-calculation.md) +- [Find additional resources](additional-resources.md) - [Report security concerns](SECURITY.md) - [Find Support](SUPPORT.md) - [Contributing](CONTRIBUTING.md) +## Trademarks + +This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft +trademarks or logos is subject to and must follow +[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). +Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. +Any use of third-party trademarks or logos are subject to those third-party's policies. + ## Data Collection The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkId=521839. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices. @@ -476,4 +194,4 @@ The software may collect information about you and your use of the software and Telemetry collection is on by default. -To opt out, run the following command `azd env set ENABLE_TELEMETRY` to `false` in your environment. +To opt out, run the following command `azd env set ENABLE_TELEMETRY` to `false` in your AZD environment. diff --git a/additional-resources.md b/additional-resources.md new file mode 100644 index 00000000..35f3a7fa --- /dev/null +++ b/additional-resources.md @@ -0,0 +1,41 @@ +# Starting your modernization journey + +In this guide we provided the content to build a web app based on other resources such as the Azure Architecture Center. In this section we'll highlight those source materials that you can use to learn more about Azure and modernization. + +## Additional sources for Azure Best Practices + +Use the following resources to learn more about Microsoft's best practices and recommendations for building solutions on Azure. + +For further guidance on how to build Azure solutions that align with Microsoft's best practices and recommendations + +- [Cloud Adoption Framework](https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/overview) - Helps an organization prepare and execute their strategy to build solutions on Azure. +- [Azure Architecture Center fundamentals](https://docs.microsoft.com/en-us/azure/architecture/guide/) - Provides a library of content that presents a structured approach for designing applications on Azure that are scalable, secure, resilient, and highly available. +- [Well Architected Framework](https://docs.microsoft.com/en-us/azure/architecture/framework/) - Describes the best practices and design principles that should be applied when designing Azure solutions that align with Microsoft's recommended best practices. +- [Azure Architectures](https://docs.microsoft.com/en-us/azure/architecture/browse/) - Provides architecture diagrams and technology descriptions for reference architectures, real world examples of cloud architectures, and solution ideas for common workloads on Azure. + +## Additional sources for Azure Migration + +The following tools and resources can help you with migrating on-prem resources to Azure. + +- [Azure Migrate](https://docs.microsoft.com/en-us/azure/migrate/migrate-services-overview) - Azure Migrate provides a simplified migration, modernization, and optimization service for Azure that handles assessment, migration of web apps, SQL server, and Virtual Machines. +- [Azure Database Migration Guides](https://docs.microsoft.com/en-us/data-migration/) - Provides resources for different database types, and different tools designed for your migration scenario. +- [Azure App Service Landing Zone Accelerator](https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/app-platform/app-services/landing-zone-accelerator) - Deployment architecture guidance for hardening and scaling Azure App Service deployments. + +## Additional sources for upgrading .NET Framework apps + +This solution includes a dotnet web app capable of running on Linux that was deployed to an App Service running Windows. +The Azure App Service windows platform enables customers to move .NET Framework web apps to Azure without upgrading to newer framework versions. +For customers wanting Linux App Service plans, or new features and performance improvements added to the latest versions of dotnet, we recommend the following resources. + +- [Overview of porting from .NET Framework to .NET](https://docs.microsoft.com/en-us/dotnet/core/porting/) - A starting point for finding additional guidance based on your specific type of .NET app. +- [Overview of the .NET Upgrade Assistant](https://docs.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) - A console tool that can help automate many of the tasks associated with upgrading .NET framework projects. +- [Migrating from ASP.NET to ASP.NET Core in Visual Studio](https://devblogs.microsoft.com/dotnet/introducing-project-migrations-visual-studio-extension/) - The ASP.NET Core team is developing a Visual Studio extension that can assist with incremental migrations of web apps. + +## References + +- [Well-Architected Framework](https://docs.microsoft.com/azure/architecture/framework/) +- [12 Factor Application](https://12factor.net/) +- [Retry Pattern](https://docs.microsoft.com/azure/architecture/patterns/retry) + +## Next Step +- [Report security concerns](SECURITY.md) \ No newline at end of file diff --git a/assets/Guide/Simulating_AppInsightsRequestWithSqlServer.png b/assets/Guide/Simulating_AppInsightsRequestWithSqlServer.png deleted file mode 100644 index 6731085209adcc4aafbb794aad070b4b89fdb5da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55892 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 Tz~cAESiqsKqW!2s$twIm(icYZ diff --git a/assets/Guide/Simulating_AppInsightsRequestWithoutSql.png b/assets/Guide/Simulating_AppInsightsRequestWithoutSql.png deleted file mode 100644 index 6d758abe070a230cf50d278b4af00e2caf59807f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52992 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 ZV9i~E`%sbp{0jlp7b!)_8gb*0{|Ddg$-Mvo diff --git a/assets/Guide/Simulating_RedisConsoleShowUpcomingConcerts.png b/assets/Guide/Simulating_RedisConsoleShowUpcomingConcerts.png deleted file mode 100644 index ee7d30abfd38588869359275d2e8991ed655a7ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114173 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 RE~Nkf002ovPDHLkV1hwbECm1n diff --git a/assets/devcontainers/devcontainers1.png b/assets/devcontainers/devcontainers1.png deleted file mode 100755 index 4267338f1156a3200d077f397bf65517e6acdd3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9732 zcmb7~Wl$YJ+nx#TF2NzVyB%DD9OU4T;O@cQ9TME#?cnYbT!K3XC%C&y^M372JDusY z{jt8Yv-@kG`+Dw3WhEIjWFllJC@3^JSt(U0s856c`gVxW|7wHGv)zBqCuda|38?Bx zlB0hESPOAQaVV&|Sd>>IxPN0L2ib4VP*CW7|0$pF=z#%HP&DasQsU|!`e)fFV(J?2 z!&BpkL{x}~I>6DiAPk?a+>eYmnYf7wWS7<1CQ)Qs>o@r;75Rb%&5uRyXkN8ORX%1h zO>esu!`L3_S@rh#zrj9v0<|KXxH2x6pT=MP57wM5&d1k0pc(aA|%n(Eo;V&lq6%+OfqpbAbzV}aexZ;=tqIo%A5Q82OzQ&RXha5af zO0-`I)wtv=9!(!Z$}yAUa9T>I#z<1O1eQcQu`!OXcx8 zh+@y{-AGH0g=?KpYbSeM?+m&3F~u>9qUF-MeB7Y%s=fL%(*N|}a0+5-II#OG z8XQdOg@kxZyLuU#$<{nSKah2|Qq>&IFD?EFA9<=_`S9!My_}MFr3yaJnU-^G+g@hX zC;4~Z4_F%Ed)3Jzqp@SXmRC2DC+nd^1o$^c!_;f?j#myk!NQ(zACj&zZDSK@q8c&d zXz0SKTHNjV`*b;G2WhS!Fs>J8s_41yYU5QxHK7Xns-3)a@odYZ+PbgTra9eSvROS! z&CPsdK#kJd!HY`&tNe=HJ%7k))8HWS&!zFHkb#V+?>Xz5MLnJQ3x9E>-{H${5>PX= z6T}+~8&2w1+s~KqDN5K(spB%953fKh>I26@i#G!Qqn>Fb3_qBw!h&hm zbM<+smJVp$NqC16Vm`Oq$+ukjdz#%AN3Yb_qIKGQU&NdfP4V|gyX|t{Zyh1E$4h#6 zy&yQ)B);w6tY13a-t#r|SiBy7&hcThKT7ErLKwL1e){Hr?72JP$>e@bVsN=2qJi4M zb-BBwMQw~+1|Nk)#2&}SUMVQj<1!a9$>B4D)nIg2)X06`#ydG0Qvw{$WU^D;$WNp_hJ_luq@@QRdS4f|xqH40s*>N6ot+O#w~uOz ziSCY>oVV3ub~1rS*{HnpR4;%%-BWP@ZgA-0W(&LxzVDI=<_> zbwn9dpH<*E3-mm4Ns4I^W{yQ!8c|^f$E1hD-X~C0(w&F?U~I&lm4Id(t%O-M*Q>CW zQAHyZ>>DIYg|Kn6%)=^?jW{-vY-{f@77^c?R*t#^uGK9+jM&)NlMM6f-W}Qq(z1<# zD&KYvx*t%_t($lWMZF){Li=7QWXyZ+_=Qd3z>w=pXJVqvu&Ig6xxbqo{qShrM`b_8 zoChm$LzT#1@7BG&7?K=D5AYJ_KUGh>I+y~KW^0vOd^i_=JgjsB?59b8%F&*LO8zlL z(x(XCm6WfSE@O_30x8e^++$XkMCBvd}`B=qqNC~m0m9Or{wf;Pd zT#hIHeTI*J?$0#Pxt-ab0acBC7PD5G&l0(ROW_l>NhwE$w{qRSu}`#OE0PgRuMpWO z^aUt`X;T0)9B@Y@iNw4^o|7X^-K-Rq7zUS!s2%eTk~t16q56(FyFoLCTwunXQ~mK> z8ZHw?I5n+yO&3�o%|o&S}kg9-S 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 PI{4oFg6)BfSKv3eu!WuOT8} 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 G=l=!VltNDc diff --git a/assets/devcontainers/devcontainers4.png b/assets/devcontainers/devcontainers4.png deleted file mode 100755 index 48d3f5e28fb5a7c506241433640ad9ea5bb71ae6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5399 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 kAw(BhN4=SxJo1FNhe-jjfCt3_N202jy>nXaE2J diff --git a/assets/devcontainers/devcontainers5.png b/assets/devcontainers/devcontainers5.png deleted file mode 100755 index 8bf92a040e593854c7d47960fe11d9c77bcc1f96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3091 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 CyIjZs diff --git a/assets/diagrams/reliable-web-app-dotnet-dev.vsdx b/assets/diagrams/reliable-web-app-dotnet-dev.vsdx new file mode 100644 index 0000000000000000000000000000000000000000..7c6dcb61d281b0d215d8e0bd40cd6b11f720e687 GIT binary patch literal 143365 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

7C+2KyDl*KO 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ŢvLQu2_3(q<)zZLb3Me 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

w3wuLP4&y+Q;q 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%0DA(6r(Z9r%c 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�yvv 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 PesBTvE2s>h_X7PN9Q<^~ literal 0 HcmV?d00001 diff --git a/assets/diagrams/reliable-web-app-dotnet.vsdx b/assets/diagrams/reliable-web-app-dotnet.vsdx new file mode 100644 index 0000000000000000000000000000000000000000..c8b4d9985582fba9976bb8d7889e284aecb208b2 GIT binary patch literal 236689 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

24#)14_jpik+Fd`#1G@!$*FCNf z1v5OV=O{jRj(6{mZ|^(Q%W8ua#UI|EA8tzy<{J_ZY|ZH@;k(BPyFLE$b#=UEgdUli zYCHMZKNv?yRd?*|{S0`GPWM42N^X`jezo0j`h;uzkk z3C;oPi~ji9{k(Wk=JhE^u1ozqrKxN~R5?Ova(2D3=$tu8Z!hd_JJn(N|8nPD9g8se z|8nO(3g7p;z-C)pem&iH2ak@9hXd?x2E9!lkGIEh#>);qp3mjm^ZmY!m%a_NDwnyIOWKNQtCZMBg7YY^le4@S z4Qu$T1erC1jgkpT$+~I4l=a7P{esmZ~&$ zZW^-TgS5Dkbf3dt0{j}1VAkHZ|G~xOMPDc!WW!WtSFSa3TV1q*sTRLKKPR)rV(a2! z|MFjNCzGQz4Pd^8qy3)6Dd6ILZ`LOa{6VjVLXzIZ|#+jQV)BJ z^SJ{jfBOy#npwx;t4WT;_`|QoUhorjHT@!SvGcCN=z#r5Sao#eRY+DW z?tr)=mcGIqJr}9|mRtZ@!`n%NojHTJLLS-)Wl0Ph>vP-Uh%||TAn0K>n7vI=U7%P1 z=FAYL!j4r{e|bzjw1DDgU0(^m3q5m9Z?$PBz#cjpXF@-JC-1zbsZYa^*oG^X%D+s1$pETqF;skIPd85&cEVT5>lamsy{e2a6`rdZA77Ozdsx> zAEXgZvnsB0K2pkjCu23bMLCUWNGq~mSIEep-)A*lP~oqr>c{6ls58FW-rj`c>=Csr z6MY?>-0d}U=RncQYS8MtKg&toyqiBo@^~w%C8gfBcX!{H?^Tozsv;$F=%#%&b#>p{ zaZrvU)3ixhydsf>Yab_H7{{@XXhX4H`*)fZNL-pe*CS7G8t;>qe3+2|T(Ekvy3H=CgO?~7Pw+tLlvlg>;C_eT z>#R80$N>%$66NvTee~Su@zb_KU}9tl>fxk(8-J(|?WtAdQznYF{dZMR?mygSpmHW%t%V4+c zv`+^ofuYT4>c+Qlb!YmDVcM6bX3sVPL8k;61CsH_pUW+qD{{h18pCH!Y#lf03>`%` z5UZlBg{US+o)4WR6qWWU7amR1T0Mkjf{F_!*bVOvv{EYh-0tsVd~Nds6S}JQc7Ohy zjnNKwToZA+kl0ZEv39ZS#~NHSNB zZz=OGc;_>D6jeQxWOHCJ{qUWNqfV+9@^$mkCpiOBg^gop)Xh3&*>eko`OL>~Bn}a8 ziz+t`oQmrcW4Q-RrJyyuCqBh%NZo<3KWSbpHYYi*yqEzq_3-w{K)LtK;7KWT?C97T z2>TeUxG?rBRqM^*wuZcbet^mF%iG{2{45=EVG$aUl(FGS$fGPkMz`&Sf5b`R7Dz7E zi5ETlD_ry8{<`-`*P^)7kX)sL@bEOU%v;=rz7*zUz;eAG+q>wkrF3@d)PtWX@j$`% zWek2?R|22cpEvZ~mxalhUdl0~^UDlwVm|d#a!*xOB+~q>&-&YQ3s(TN9}a~nSWabm zz)1!R#vZ08DE{?t@jy7P)&hWmskrhvriTXzqXOFb5AiDw5>Bl9dSqOBn z=i$@%a?vmpGn{tzqa4>4^0*xNDXxt_Z24*rsIx9#3y{9@o-jMAwuzzG7iY!@acJ{Uxw&VYYJYxjvDf6sM)f=@tG}a?<;@Lz&r{GSoeCO z&uN>9X;W-b*?$PQPqPu`?N$e;Ol)X`p1;Q{ZFpF+^w~0Rv zW``zqG-5d1$Oa{fN>8(2G|Y0EM_;VbPjY*lNwhcyh=RX)9vRXHVj|Kyl%`xqh^ZWcMBM7cTPY;GlYnX0XMW|f1)oC@7P*aoT4~?29S#MB@-HE#oxlofA#kum9&jBuAKOtp$Xg> zL5*4?2E>%h4kxvCNIw|~z#V87blygYRUpK;b~#L47lWNPk~zGh0SC^Zu5pSL6YpSn zCR`x!LSRE8{KUW2Rt(K#Y%SV2h!BC`xUCJZiYFQr9l||Dy<+=N>r<=F<3lkcXXBN| zK+uHNm_mJ}3H)3` z<+G^%p2jGHEE%H!&F$L$NZKQRFu5_q4Fx9h@$-B(1ZZJ4is|&MQls2!)G0*=e{hG6 zPX#X;u(1Ajn(zb+|w5JaQ=!;pGGQeN7&BbX95 z9Kvd;nIq&c!ZmxaBj$ItC{0OuqwD*nZYrSSIUOJnZ|OgAmlVzyg{W8uA{xdH`b}0T zuPVkZ;@#YuXU&>-&28~fkPKd6J`TPEbtgfG*#l?J|J4v5|5BB<#9M{ncno9mfKfof zk+IW()2oqwm^LOffV%km?E2{#uX0JVlJYy&BsCbb^n@eSlrY$0l$De!@gYeEZcQ;n zkb+4{hED+mcopU`FDbw(YC|9t=Vpxu1haf8^NaAs9!Tnj24}-F+_E>L0WcDYuD(WN=Z_Rs{>qk3Q5B@afGE7c z_drsc8JrCT)Y;y6Bln5h8`vlpw4JJU0H-Dxd%xAfPNMpaMAYfH zdc|cAB*RapU(F8i%hH?UrDS_TULmP8x>KpqLYDp-+Y`8s6b;}TreuE{KV*AC6>kK> z6HJQ<`kQ)19YAo;*7%A0h*a?sc+%^ptal@eQg2tQ$Ya=VA|%aZ z93hsbOWEa)_{P@M>|3K*|HrE*Le!H>a@=ngYsV;x~U(c6c%XcL8KW;UdmA@w3iXGs5$cWG;az zn4XLytP3;avTiGXJN$T&EH4;;R>poqx zDy|z-OXP1;EwHi=Y?|WFfD+mIQYC~|0@!A@YAoieRyQ_6Wmh+=c(d^{TmyI*8n8-n zQf!B+mU;b`2eGG`UbAPEiHUxE_2t1+sEnPAsI`JgAouOlh`~o}*^Z6B-Fu+!dU4oF z65+U?_t|+h?>)@N&vAQtx4S|(1UJkm(*&EKZ6Uus&3zftj?m9;Pv)f}Vj8RPB$*x_ zJjq%@u5y$u=-15lr-qLcS<}11ahbpuz*PTVv*El^XNvM6^OE{L#xfeaPTPu$w=e|O=5cjAEFGplGX}q>qNA2Z&f0ybN@nl z!?P-_r9d4M4i<%NjvYdk*79*6HB*vx^Q&j~XkeeV6%fk>AR4QHLcxLaJI7Xl`uYhq z3E0h%N{oY#V=Dj|5cip@d6xUc@`h>!ICwN1s_PlRZNKnNcIlwtbnPaqoR1CN2JzyQ z>M52wD=A3mtooZ3&PvJ)*aRc&0VX7*f-R)I#$U4s>SJ(?Moz-{KUY+bc8EA0$tQ;i z3N4ba&IfIw3pn{binoG)R2`x@O~4!sHN|j-f{HL%smzr6A9e2I;lzMrA7qtBa2mQk z7e6UcItFy1id{3a{2n(&N4!&qgN)Sj*O-h*pc73K$`Tt)NV)oJDjCtyMC@95Y5tm8 z)#I5G$$;^&DPoS@R6V}1k7=?YRO6dxgC`p61~?G?u@d@`hp+nTD)O)V;n>PueRXVv zdcm2QMZrV9=qWU^^YZzxzETqQ&E@(UEgUgl(nw9k=|l5DHY8DJ81XJ&oi^%dldA9S z8}G~az4Ad>-@nU)TnRI#J?+2dgBr5THGa_Ph7U-Bl9VA$!dWktI%?P78E3~;vb-Xo zuC{S%)~w2}^Rfg_hH!F9RU?}#CZtW6Sbd+_PO7i@)$<-p&aLiH`JzFyttT4FZ7Tq> zO2;ZcXi`Bqey3I|0CGgA0F}#hgj*dB`#vb!yknh})zEXhn_&d(WBowj2v^B&gdJoj zP|OjI;vj1n+3i@pIUb7I*J43$EvpGu5sFk$buJ3e+5=e)i`l--a}`wztpF{WW%=@JEQI;8`E*yhP%WT1cS`E~qcFj94OgOJ)FYnCW;fD~%E$ z>*8ECzqvOL^c=OnH)$0b;CWRdXW-)SF4gz0Orjv7!ZU6@=x;wCoqWCgPc;A_=OIEU z1T_c6=oExe5F9qSJqv82sQf89lfpH&#<&U)0CSpBong>N)e=XiA?dZ|E9Xye&TGOS zh3yhmN%g}BhsO)vUK}vrm$nB@TD>^kzZ6}QjmDldV!!Im(XcEIxT~O!=tl3u3C<_H z^0LbLc|;GKKMoCve|B~V<4jgA|B^f(FHe&d91EJS-e){KXnX9bH(9~dfVV^_03vNs}?ItS{8kj`#X{bu1AHo`w)et-#nmIgoAZ22GFY|qn zRld+H*oT}~-%Uip5+$djP_}gcqE$9EO0I$a%u^o42dp4p*@TZbOPBGIu6ECQAD-aZpr< za!KFU-YOiZ;)AA2VeiH4iNcXLS2t1mVD$ zS$=bVQjEh6Yv?U%%40V0YiQkn#L5OnC8 zZcb0eF$6*txBUXd8^3Uzd0^O1ri$6)_{h{-5H_=kLjYo`SX|U>7g7zWpf0HN%~UZ6 z5h*Qvv*HJ0Pu5@)V(DW0Ry@|Lh^4zdZ;M=>9AnyQP)RtC)Jg@-VB#lNtcrJJhC|P= z3BN^5JUHGsvSfNxM1YR**Hq#`f$|`bFvz74roU!a#ghkAvz|;lKnN>s(x7=;6wV8F zCJhbw0=R|JML4Uda++2mCxl5uGjjk90A&FXz|Z$V8rO&cvLOHzSPH;lzo29{Pb$fT z3=A!lop5yF8HR&khXqY0&mQ2IQf2BV{L-6vG$&Js1*&5zNn=mTt{#?axcxb=KbSJ| z5q?=S2H&JXMG_`yM4lS=4(sASX3|jqIn;QZ6jH3rLgKDc=&!9O?Ocm zHy=`^Bl>Pqt@%WVO0a4F#-YXKh8xM>sFDX2jsTXb$rhf`paS1jfoxWqb5kF$jiJMMr?MHqe=%w(^4G_8W8As)o2yY8AimPo}D}wH>ZjQHm1M;i#)=kLeu*tGXc>` z2xuzS?jaF=ERi)sqWB02;TzE7*r*{k`G7eI=!ZpIZA06r(&-j5-1T3o0Qv_#n$hbY zNV-DB?Uq6m#B(DbnCX5bo~XN{zC&Xm2O(@Q@qm9YYlbR5rZA8$4Io@C9wtKwYNtGm zNG3SfCLR@;Luo^pLWg;yb7WUf&kdd8E(*1aco0swmEW)?9w?5%A<%ys>_Nwzzh+m( zlXr?ezMAue!%|+~%+)qOi?0s0JjIBL3#KX%=}>(~H%S8$ts@~sd#)9?%p)WN=l!2j)ZCBe)e*_J;VT534p4| zIMD=HHCmQRG_(v&gpIpZZ$~;))u098Y}n@we3b?fssJV;u;m0n2dz8WONFo1!dL0S z=o48g!@+aX2dn3YPag2qM;AvwmSgF_K5Op$b))WGF}ay4<{K)hr?x{P7?rwdCpW!I zf4(#6b-($G8z*yi)m?IlbMcxmKyVJKOFdnz>gageHfqI?6wNWm$dXJaaT3dxY#Ani zALSB&sTAEB&DYO{npt2*Jfy`aC$gpg&)&HX2Ow5=0a)KE%NKcD{jEdU!>3)lcbnzCdCbYs^RxUny5ugibkY`C9$ zA!rKzRzgYfMv%H<#DAe8Fk3>c$-9!mFowlA5k$NVp!JaHbLr6Y^hsoaoX zz$s@*deVRge}R6+kpp;;qv2|y+kzYbj^LrV2c;fKV%TO*4z1I1F*i&>&qrocUAJZl zzTm~xt6s??>Jfp4zB{r6Pcn#S7+fi9b3$*D1@fz0dSIQK?zA^}m51vN5R`C;f{qOe z=w8)@u~`!KM!f_5;!Y93nWFOK&}sT~uY$?K$#A7)Y|T95XxLo>iI4&`)5AC#Mja^! z0o~TmI2s0r0~0}85`k5T=X5j-psmKqA|cv{m>{-#+}Nh;uD+0qKvkl3~8X7Cbbb8PkF0Hh*s*dO8h6+V35<%6|w<>+JVs?O( zGdYwSU=2#hRF+yy&!$Z3#a8SN!sDg)G`Thej7ZvjXS)N#27Euw{+7V1^ozy&jR5WK zjt%V&q7;CEsc1t)2h}Dq5cNsAizwZhsfFUz;C(xqLwPmvJ#hj@D^ zN$AqTy^bQWZWNv7OcW-T)yBn3z(pl-*e{kae)8>woD&~QFg*sTy|58pM74GsQ0yoYCkV~ztg;J~y-+D1i^Nd@l)?eTr-Xo@MtiW;7FjQ*Q z8FI>2YKC?Tld9W=4#6TjEX=3u($v{)AQHzy{P{}t)@KVd6LJSe`-RL%$uvaII)Z`3 zpD7YDJTzaJZyjDG#s`Jzsk(C_Vgy4C$B~p+qX?hjqwb(^LrRD$^$$>_fb8@@Zh=@% z*xpD|!JSEP@vZQ|=`o={)WP6oUX5BYiVdvkI;fR7)vvj|$M0rW^KZUN|JZqc`1K=F z2#3umSBQOiesOVp^WkF7vphKe?@j(UeIr1oT$VVLOn5iYt@xcKZ_z+M z%DWZb^;dl5#2S1>Hdr3quMn5 zUsbT||NO=YrZ@Jd+46jLbH2z9$XMy$z5c(G4_8?tTDlk&d3*3~ww#@EusBa75aIdH zUq8|rXHOTGH|Yr+&)+WQJ3l_xJC(jTCkQpEgT?!+i}`<#PnYLcH{JmejTPf+10fJ6y zq~c!!(zbwKAS(tjBvKVigu(H<#UJTfjLutQxlS}T3j{?NvP~;lzl`+n`T5&-8Gj}K zLc1EobT%}^)2S59_Wdl8U)7y*`(BF47cxGA^GR6Qd3n2*gWHuWq)umIWuPLLB!US~ z=#O7N`u;>OZU6dwc3Fs-gW1LT>*cwApqEG4X3Czl$$(xSl^ThYIL4HMwTL41^`mFY z#cx-ScH|P2B4up>BaT6kNu2GZ3mT!V1PoS|6vdVjh8XBZev|?x1bIu#j*GvP;1Giz zC@}-fKw1N>Yo#8HM6;O(t(=k4mV6}jmj*Y)qKVvCDQ$v5%oLD`R9X-KJ~z(pNZvH5 z$0@H)j~1)h95JC0O-C$I7^M!u-;}kigH@EZjMoi_h2{upL8?5g!IkHjj7n=+e2N5A zAfQQP)V!;p1c`$MW03$s$swEK%$5UDgB5#Bx)A@9s(J)u888 zu)z)Pi1(ZevR;iSNly=;QwpXM2ZE!{(((9j<%a*9jY+|n)G0|Lv5QU{SGL<`&FF7AQWdX2710;~Dx z)6gn%(+yP$a{0)U5T*vp!>!BqQ`Ew6(k7+4s=4at8bA@Jn;+jSu9Q*@yG_n24kW=- zbUt&#S4Z<%Fn^g1ZuFney2w9(sxvHi8aCp=FR2IAQ3VrPJ z1dR+A$w8xm1Xz)T6{1Cd!(>Acb(ntqrkDXsM6GlBly7RU2gZu zETZiejyX!TQFF_j;)B`#k4*O#h*`y%89eC09EacM>Aelzz~F)O?t*L z(c;~8z!@kh{Zz#u$D&fx?ZNE7KUvPZ|GrR0Z& zVR(OWCRkbIC=qb3Fe&)fPi9euG)L2(%TEhdGkA^}N z;y^DyhFz>UimE!GU**f?BLG!@%qgt-Dlet^LiEUl(H~=Pt$1fm7LtRjK4$tEp@jnp z&7&46A+*q}%P(>RJs3*!2j+Rt#1o%q6a;q$K6TUWo4e{T=rAUxmN+b=pN%GSHyy@| z?S--f_Cxi8sX3(wa{yuH-fz2rp76lV8(+26yeKqC-93U|sCgl6cHl2ra&rYoRQL&VQjMd2GZ=g7Zb&hQ@nB#|~s|9Z7Z-4&Z9>3LZU zIo2a=b9y+?RtfKcysgT*yu!l=C7=g#&80DywBfM;Y9>s~917V%C@_T&B=1x@UK%~X z$qsaT(gKj&(lciC@m1zxKmny(?L`C9a!UYTtn<><_<~mHe6WHPdnY^v zqm)QYP+m<)>NGl?cBj}MfEEumRW$`FssT6SfQ+TYT9?B%&upS6th4Wr^)?-5SFi#g z-R@!g&1Zes9j#`Zd-xVprI%|3PT2Ww`^>@))P(y{O5Nb79EHbgnGk3jwyRBO$JKhniU1k(>n)ll5<-HqiBc{-ajFpt&J_!i zf;LhDDVpP`=m~H^i9CQb#alsZ0u%0_%oLOyf-7Sp6zI%oP#JBe5SAdF4k#)h!Y(1Z zw=$lyQzUw!{OHLUJB7j*lG6>2kAW?v+Ntg2!t7bT}c zeI0V@Gqff@Hw;ZPNuQD8zn0nCd@Qv4+q_D+mkBh#jY2BETb|#nx(cUP>r>L(ck*N2 z=F>vuZO?K?dpP*HaXZUreo;$mmmCQRF-9KFd=b!&(k>vMN(&ppzc9A`K0{^8TeKgI}n;3h}3Rlxx;o)EE__TraEal=Ltmj zJxKpfMThrZHseR>m2fz0D>mk}Io5nzFFF>Nz>jH?o6QoHu%9iWRpeKYYC%OfI#doP zjbIg((|gg8@w|$oqZb|2N9y4!t*(5EpsZeW^j3$IstN~dI66p--=gRsy@>>kD3sW1 zf@K>Odzu<6&0b#=g;#Ce?C`qBJZM_)BUkwHQ^I^5#;pGNhxs+S{L96e2TBouW%GF6 zUUc+;mGj8^Af%79I=oDv*~aOujz+5k%V3M5gG8Olm`rP8gz%Bq3spEwh}O6Uedz^8 zA5_%`RcRIK!P^>ZvhZGD{84oE)gfG;Jg5qDV2c7{tKqn~BuFSAmQ|XC5t}+qiALE5 z4(1$C(1-S1)H5UL2;aQEc&UhTJ`OLDssWum>x~U%ReW+|qxX*Y#zt>!m>~a7;lH0; zc5J)I-xdRMd)e{lOy=l;s$O>Vvg0$59owx?vdxg(UUd99MMrOT^rE8|9rsgoWD!;k z?dt>>YQnI{{7?n?B@bj}`#Nt^g90Q{1^G41q&*(7)aj>Ynk0bGXR^7>J*nLEL8s0x zxRfo=QleJXwhfiqS#CPUDQDtvC8&2q*fF1g5;~R8u~Aw3Jf^+rgeNIVPOTliI2%f3 z_a_789B^j5KsE-Ka#-oMP*akE!gN2C*xdrbGhh7l3FDNrtdtu!>&JJl8`;!4v)P7j zYq!o53SDFT`_Nxb4o`KotGA|WYO9e}A?nj5KUKQq5A%yvA!rKfRWT(drJhl=lcJtg zZ`e=AQR?x>o>9_&YMYBM0j0L0m81Bev)U+WCAMrXWu|(qDc!&4uXpyZu4tQ?wpv8| zEa!jBE-u#WR5xwOc9*<|vdfGF8m|y)$zV)blTfldD6NxU+1S)l#XG z5URI~5bn2svi~a56W`N|(lZqYNISW8w{hZSqp7P}$t|Uoj_26F=&kQr0k;BqTCsGOGR^dyHLPl%^lm8;vTi^qF@UD-#5B!jm4>Mf{BV zw^~E!T<$g;YH^%xM`Ji&^^FV%>qoi{>B<|*1I1)XcqSy3lBIN)q;rejaksDv z8x|%}*;jLUr4t(k?&%&N?Ji~7^)IZ?q$v(a>x)?WXTT9Ch3XmgvtZc|hSzxYj%qHa zAyVDA!w@NX`Ne1AB^XVzA{?mK3v4J+Y+f0pNtR^&X<4q?PvVAvY2lTOXcv{e#z$zD ze95$@ig)qxPN*uXhy$m>fk;NGV)mqb#~rG@q|7-QtlW^YuJNl$nX(a{(^S+;c5OgE zt5HZ>I;xI)A2-xXW1F?8ml~?HZlXse{a^vty^OL#zjT}^sCS(Aw6AdZ3jKCiM9+-V zJ;mPo6g}1*1!sTy-9Hlnr3^`nb-HQG?cpGa@q*BwSc=pSZA-&~;Nt#I$=zzn9IS`o&v!zjQOw=%cgOXtFgLfPw^>RwSq4Su#IOm#Z8WKRo+( z7v*a&3dehNI=A+qjG@4+c+LRXMynBy|FwU3w5wjX_u|KwhtHor-7R4*`DqSt?Row+ z`rs-`WoTE; zvQ984I7BY_L@2KC3RPvDX%M4jom5DUXds)5elM084(J2ShvH?l?h1_rGomiSh?Y-8 z@B;}uErA9J)tRN&mh>m$?U_ZckRJsZids`Pq!{N2g( zS0}r|$LW%?m;d*8@5yk~&e9E=5OOiHGWFWLslKiHmYT#;vhsB-zp5jA5?N`MwzU`u zMeLpAZ|RfzX|_C1vFKD1o6FTr0h(^2|NN;8luZ?#oYqtvl$&nPS9^1X{2NfGn;<=M{c>T2g|dH(zCX1>GUuNLQcIOgbpJT%E-3XkU!7j% zYUw|}k=XE$vx8fTAYvjbkX#Jrt$^f{fjDppfQae$M3{}~Y2Dkwy&e4W=%@V`yI%bdw$yLDB|8{dMjpArPr~s zi?zkuRSS^7vN2UlNJE!mq?(Q^IlyLiYa~X+e3FpNs}X7XW7(HGE5X|1;5`oBL}8+ z!VITvrr`iSMw!;(I37nscw5SIRx-4hnwrzmlEWu+2(GHLRH?1GMLiRiI!s1!I3~4#(z670C|yH2qfjuSNfOg;f#RFiZYx=8G_c=S zTr?iQYUvFWQom8Kp++tm4)}RD&WQ#zq;JH8t^*_C<9EtAw-8)$cz%6#G5hdh{`>qQ zy|+(>X+b|h(6aygWm&5(FcosTm#XtCd7oqXozCKDQ+I{%Pc01lQgvTHqAI;Ac*_6% zL{&PKOz$%j97Iyn#ijDXiIf8|t&|={F&nQa+-6(`qA;ZLsaF6_2Gb~s$GB`r&L34; z*OdY=#KKQw57GWHeQc>3B@Jl+(b*A0rDGW~qO%^5OlOz`0AzcPn2$9pdPhv}i0K_M z_s$X1SEwUW=GCGPw!E`o%bLUG_-gU%eCPM`<;`!iiyg|*{jpg7x)Zf|Ua*K!LNk!@ z8U5a_9_^??JyMyqtXL}#mdW_ut{P#CMJxdq2~D*k&DjZH5!3DMJKN@tq15SgWEZ|cfbHIr$-@oF%VbcjC_wTF^M7F z6DXc5jn3{aG$SoI{E*v8y_;RlO&=o26o8@$3tyW|InLn(c$>b?5vXyPUcJQY~Ld}gd9|$Saa~cQL z5PT-gC{2y#rWVjDCJN}gLF3Pfafg|!Q5i4q`=Z7xW)}cXMN_7h#4#{a^BoH0F5vT^ zZ{?UP%Khzli7H>b+W;rwa|Ud$G?+H0Ef2fW{!Q%{;FO+6=(0+qL8@@_Aq*`vEU^iO zsY3DkxxBBM_@Zi{o?xkM%uwus zoB2!A*=854q-!teg2J&yF&5&e4PtsL$KWNSFpJbsyxlEqI7|q4knUozYvVq!VvGb) z@xDq~{yg?Y4OVP0Vr(peZcH<0vU`-SmA=ovZ@nP1_j-Fxr$3z_LjxxMnHrnZDUnC| z;I)9#t#5ikmUTg`O6$I)ZxO4AfV-Swch&`8Gq%tRGOc`<;>hv)+ZSYX-`=VqBT6%g z#QGpKDNPo^yjHTuEe!b;O($_o#LtwLol5ldf~>d5Dyp*9RhC!Z88GHS>}~}Jv^Gx_ zUqc)R7{fsfd?|qN>cq(>(O^hDU=D#CQ4AUjdESwICi2I$d>aMx@tZetq&-e{e?oHy zWA1ho1;y|B&N*ldu-E)go+(k-daRK*wLrfliVUY%=RK*#baQ?>yVzfzx?F}%!A$`% z{P^@H@R;m(gCFhZXb-#&Fe;?Mc*3UW-EiO?4#7!4_6~m%-V>Q;a+EGZ))>!!6t9odp2LZpWiG$goA@&`r5W*u6H)`o+^&aG4i4KJ>9VCxZY#+)bF8d zHaT75*~x#`CzR8X{-@$tM=?Bdh*TMa4cek{?qGv3q|B@&%z+GrIK%Wn59nk^D^GS@ zPr)1*d{pgp^&|zwbN5pF)*UqO8^?Pys{?yUB=OC(U}hQ5(Z|@vYFtF6qZx<+kxC!) zh?J8d9dVU%<7nnj!VHp?Bs1OOL1ZW2?tln!Uu;p`4bWlg zE)oUK$bV7hD|IBDy)YMXAz2dWxv)VN5{+8j{KP9ruZbZ@xhDUrx*H@D_KpRk9Lu)I z=D8g+7+&^8cMI{s7uPKm+d8mDSaRUBzK=T~^$D<%n< zswVzmo%eXfUPpzO033qVxn88n68U31T~5m3{*-*KQApU?kT@8}wkh`IKF}145%I z0SVRWv&m`5H>{Urd^#Nb6p$>;XjAaByE{kG%k)F#*q+t z*aF22<75gUp^EE=9y$$;SE^4wO}WeI_-=TW%Dm*@SDX!NH0+{{WjQUQpa+cS5yoji zpco+*#zJ=V@MmTzn`+bMbj(d`JDpD2^l+=%G}zGN+B6ZNNHHur>OKt7l^f@lAU2a^ zOfW2eXl`Yc>8)eOpi6j#(WRw~1mR0vb?MEZV^O66jWHPbeG2GoWXye0rF-ny#$3Hx z+zVBj*bUGTpfZfN5c#h!iQ`BHIHqNTJW~}=D^+Q79k|(mF+irIE^PW9uORHGN>lZK zTo8idv)>J~a&m8)BwV6+O4Z9i07^YiC-+7$6{14`e=&KSzHKle-140ipqtwe`oWc1yv-5za{KtA8NkV79zv+;xf$(t>rk=8MM&s1 z_10h%IWq1x%m~b_AjJ|HA*ur@10%pZ%bD(rcH0BR_fxwiD+Dc#gp}-eeMy{l`|&`r z*JZx$upM<+YPo{oa`h)<0psRMc~Vs%c(tp#tDj<#1cs3{>3%m1P6_>*2o_@#g$y_R zm`Y$qxRxTAfPn;)6n__b7@i@$`5TI0Tybjy%^fx6RYPlCIbJD-y{asF=#XHy{CC5# z)n<1(Odk@A_#NTHD}LAe?TFn=KDFZ|u0^`_VgVtiY(!wg@d6U**L~i{yBXBmW&0@~ zK>5pwyTa+k>2%&+wXO)q$wG7V0l4$_aiQ9A3tUCQ9&R!eYtSlX&${EL4(k+_15y@< z_VR%4@@7CT;jJGbSn8^7mY+$T0bimfC`6;~E1GLr7K6X3vKU&Vpsr@#)3i|JI2;E8 za1g;}*ifO=js~b)L-9A_)uW(*A&OF24S7s_cvLB;d;u;?v^M$DltW0ZFcL;zSqBod)a{4t7l7X4AE-bOD~2^f09r7~$Gy8N@^&+hvC zFu$hm&dWvLp>uJuSbp(%uPiVw6q)AzM_)YVWA>OI=~|3-r}?4F*VhRzCJ9}vT~$;- z$S-IpH5}{(_U-ar{r0{RWM2tV8qOUqXK%}>ma_Wdia-=i*os3`CA!9E>R~4426P-n zbM~CA*XNQB+%^}FMX~(`5^`EktEHsPC)Nc*73Kk$vTvO zqzwglsGE}k){e_-S=Y5U7j@?4BVNiFh)M58MbvHDn~O^G@*#2^01NC#MC2Wby1pc2 zUlKB9od)jhRz-XIc&{vk9a~Y|SP46o{l}+mt*wvVyqTZgv_EsOxV+?{#j^b|DUQ(o zMBkxP7+jUNs|2xUc|uB7>POd!dbJRKUJ72vbnl06T=VUYa=Dl8rF5^AgnYW>F3m5` zc4k*sJLml0x67GSUy=$b;7wR|6h}l{8?exV;^fg|YmgIF~eGq)9j$$%)wn<@niYjv$Er<`}f(8 zq6s|Re{pq5=wM zKUA3LN0l<%)cc)oVjXSmt>E4YzGEx6CMWlSh>z#X-_K9yJAeJlAM@7&8vpe#yKiy~ z`Eh$Ap?Iqnw8Y6GwupX{Qopu{P$4Sg0crSjR0(JkL{6#|sJ*DHvz?8M<~4*_FDi>x zCq~=qMWt3%q+v2)V%0#gUR0(X_0}&Uyt;aiHW4}+gS}g|1Qj}q%Ga5xxk^$_o3Z9w z@~g%Jip@x6HG1sEL&A$SMQBOc`&E0tYVTL={i+9x_g5G5{~n(%&#!L0-D>*iBWdc> zi^)<<`toQ-Eq!9v2T+I7UUpR;4YH12^ip{i_;XD5OOveY{i?lR_3y7^`IX|=3Qax! z*Z$$ru9&lVG5)<5KfXMC{`BdtC*x+*JRBos)`X3labe{xkoo%&VD(TZthbLXPW_7l zTHXze+_#(W+s%Jd)CA7*j|~6F%=%l5nyMMWCbsx$dH(zCX1;@?^=d(&ai;)dDaqXw zbahLH@Mr)`jDM9PFY<>?q3;c0VQ_tt?Tg(nM0BR8?WV%rq!@M*#3Ir+bu-F$HBR3r z+4f1ceUhzkv%3(LUPG9gVokE{mJDHJ9YH-nzLZg;$e=9%s%2eo2=|6?ZwU8>aBM7! zN<3Be!#j_s>J8!E5WZ)IunsWZ%np_sQXj77QVx}9&__F>&ZprJUq8AfJ9r|!PiZdxtRSnBIgo$akZdVTEJPM)IrbV10S~-O2M;C%Y00N>}>5{J+P0 zPlh8~l&A`Anu#k9Z5r+T_c!UM`nKv@YI!o>{`&UvEE}PB2n%qyD*2~(2=@-*w2%3;4Q|E10hFpV|Z-59m;i8<_INB)>+s|7LFj_pacV zM?dZNuHgB9Q@zMquDuD|$3#vE4M7PI8)6~3C*4>f`+*#K3uHfDk z+`EE%SFjcLw+d7%tZ1#q5n%Vv7|@@>~+{(pWr+1-_QKFQwy_!HB(LKEgJ+rcFkwv46u04`<9=wp%!iUNh_}ndZ=h>^uPgD$4C+O3x?^D#-U)4fKh&{hKdZq5hKu)HGO}lN^ zzy-4L&C+Y*uP~EZ+S05a6(bCimNUr+#E%}HQ^n@m8RTd%lo~_fh758z3`bPSi>0aK zh!|kD{`j^SsUR56b-azkgFM_hYM_hLALbgSRY3Uh>}1RL|-6RU>cdu8-=!*4A3RU(|9@x zP%g%{Pi?xQO!*je#gP&ks#C)htuBb^b*jaYRsWJr`*y{Aq_in*RHNZIQ*ZmeUFk7d z<+V(9Pk-2lQk>5(ZyH--c1r0hmD!d$s(mQM9fwj#o!g9U8K&3cOFh1H-|!_&&&B20 zZ24j52cVtBWot>+Flos-T-$<522yKWY>F2=#bQhpGYflt)E@{hKO!epCqWaAVwqCs&GM7xrpfJLM&TeChTPWSGzI^upM9SpqfMAyJixl-@FG}yKnYZ1U@FE}KQF}~VQ)R- zD}ut?aC9%@bHTCccK1+vOPG}Z>TiK5abx-^xr| zARu=Ms3MZ1HNPygms+zXlv{3oow??3ETa+MubBX}-r zI~7;HpU=Qtmxo8)A}9VmKY#n~Cc_~IL6VHHz>1H#-Jj!K$okQVzT3$~Y}m!8a1n3P zGaw~O;~8d@6}}J6r85?Yd5?9ET^|iYB2SK)1TD%Y#Kc<|fn zZ|DE7Icz)_P`JuFI$o;jn2cW9=#5Yb^aS>EmO{xZ{8{GP-{wE^&CLnr1NZgHn-7bB zPbSIGy+5@l0IWb$zuK2oCtjA-uxaJMvM@9EVp)}Wxiuvt0u9ogPB-4@QN^0-TT(2m zSW@xk_GQ)Y4$C6ILLY^r1-Dymrxg>IVJWFtS$%4?!>YWvSe0i}+Lz_I%#EkjMn=VP zRc2N!3d$}|+nA-rY1OyHt;_f3>bf*z9xHy5Y4Oc8*gSRz#-&p~?m6R{_-VCy`DL<8 z2fnr8HJIQJ{}`sFU+aj4A*-ZTr4_p%AIECgt&)Tbw&Ct(aRc<63i9_{O!q}c|DL@l zmQ-g6?Mw1;EC2a-;8hdi9yaGy_O-=|JR8!!Bp;`0I3*uVyWMujWT#b}Q=N9)7mH)6 z?}l5H@4eMUtzuJaEGZkh1DDbSe$TlS@Q7EWcG+5ct2JwOGC<%NeLdF@*pndq81<_9 zW=AqxVOC9>)`449=T%$;&;6|3g!+~g%i0FR62HKPr!|&FnfBYo%IZ_AF0A_EVpX0^ zsorl(gg&O#bXqnq>abca=@{~hOwQgnO_#KIjc!RpOhQAVN2E>+INQDgH zM`;+0&G(WW9>IjbpHM1G3nG<^B{Qdm-g_FD+XX_SGmWH1DAj>|;QjuORDmB;1 zq`Sh;OB_ZET#r<&kCKvJRofD2_03nOSNT2o=QrPy2Y5YSw#QbAFLrC`yF*G*NfK_9 z5br}ZDv_w&;w*;)#1**_F_kR|<_V|jn=1m1f&o5mAY-yU$gB;(h|=%gQlRB_7L?RJ%OcWz=ezEZdYAYcPGr|U# zBryR@=4KdUVKNm{fd}zYN5i49Dy*@PMJ^GjK81Pb8O5tP+F&Rli4yWeyc5lA@6=>y z(r?XPfA{+TMes(!~JAZ=Mp=Q|i z!Ee_$i}(4@5q|RjRy_FiBQZ1^XifICq%|SRlGY|l-6$;5Csa$I=mOzokO#*@UqF$- zd0-E8ore}7X^>)5woCs)ln!H-r+=9?%G&ax@I=Jtqo=DjgG~HayAD zTvCLyMP%es86^ANa4to2s|G9fwRtp6bJ8M{n-Gv0Lp>5=bQl`j2V(}Fh4s1b z==|061}hvuKi2>SxM7ZO7FWvh53y3tDj2As2s&=5;j5!~Hh*IvfZBs6%h~017H*@D zLqGTZ;`&_5Pv=27YAU6IqE`BBzIZ>sS$@dsQ);Z^o}=jIat#yHr6p=$yC|8VY?Y-?lXZkkWb2=kT4>2?hZqw(xsZgtjqBnR^o%Ybd3Zayqv*$&%XHv1T9(7Vy2r~f>#F+er zIA&K&=<=qQsZOsQUsOHF)EufV>F9!lgq!oz*~R|y)P-OAV#KPWbtel47w_jBItXdN zLK@asGJ44f(Tv?WZS6Ca?9qcVcqv^#(mP`ZKIL8 zDD1=oR*qZeEk+$%z1t+)1#zb57q)L{BLNX%`~uqqNn``U zm5nqc0w^Ncm7mv|puMYa0o2l;Vn*+~Z&p0~IycNNyaK z5Zf-y*$Z zBk?_C+6Xk7tSaKN)9)2;H^xTiSY$PYVG$xP|fifvR%6OW+PSKh2_IEU% zAduIu4Z^97qSQcJ-+0RC+s;L^&e|(da{YTWc^#b@WvBMw`g6(PTRRucUTd$&=kn(C z_54g<)7pdU&t;;lO6MlmJh}FYY%as-EPi9|NbSLO=b~78$$J$oI@ROzGjH{gWr9bo zwRH4)6;@57nRqvh+Q~84_!I$>|1mPpIPDbpRayW|ht$hWkPmuVPCF$*5m6vX#bBLd zvV)aS*i1RaM>oYKntxDJ!Jnn%6s4YQw=nRWIu(ms!kQ$!k zd=G)rgYnb`c>Nj9X1LPe(2OfT5>3Eu2U0z9tzvi8B?D9nG>ZI>?swd0l=>)1uf-7# zL@`A zLMWGq@c|MRBtSZF$I69U{&{dlqxV-20pgT z;4q_U^MLp9E^4Y0(=nV>U5cgY5~!I4c=wcGG4??Slf!jLeI>esfCSA<~HU|K3Eaf_=u;C1q;_YSuw{9PZ9{zN(oV)(5>1o`1-RL7L zw2PhT_FKrsuxQPn>pBuRlaDO3dtyjASD=jX*ZMM_*kAKy122u|OHF6jxKy8nlYPoL zfWB4v%0A*{KDj3^dzL$z!okmtds#m7i(1hNt_fq?BG;5ibvPX*a=85AD6Vo6$2FpV2X?f%0L4clWI|u5XJQ1 zXi`^*+W9xjD zkhaqKt@F{(J5g18Bz1UYEqnIUWuhv)IPMgx?t?rcw#gC$p3u z?4YG$loI`@Wn;cryxrNqoLzh%VD0*^fB9pv{Pp^3b~>-8XSNG5)b%D?U~M55lHnl< zo5Y(DS3#tN=KqC~Pjk(Xq5wpPfRKzUh2XTvNvju-!h|CXl-e-=iZJQgEh{Tx!0V+t zqIAj=Ztp~wff_O`y+p*e*Db3S5TZ`q`B=7I&OimJ&qneqUAZcG{POs_ljpBacBOK1 zG#c&Y|NVdV&b2vi>sZ&{Q$-HmeS7=K(}Q$u8I(oNTe<_af~#)lzFSt` zEoPGR@;=`vyyDNH#&_jf~1`(eB=kvvK z@A;=sd+fb;r|&;sETlN7ju2c;pQolL(z{(i;1YLeFHFFMs7e$Nq!f?Ry?i(srSoA@ zNd?t_z|$4YNkmR5Ofk0ahJb)TwAi6j3EYw(<9(MsAb4~5xCaD~)C-(x#5!vdIW^nI z75o(PBCQdv4r;1SHwYQa!|nFV52v3l^N^AA+5G(d*8v;w>&%fbbfkvwfDzAKss>-1>5pu4{E1hPmh=Q z68`!Z?`??WsihL~^8SJ?P?_K_psyl{TbSb$0*FSV7yg2b1mH37fTTrn@6Jt%aS0D# zZ<$YV6OhYBvH}@cdi5B1Ksp1g64a>RC?>br+|@?sQc^)E@}EGPNkvFCp=-O zB&R04Eaw-)I?9GA8LLo`kkMjv;i^UAbfRySR6dQ_?Pl%NI5R8f7f(aM7b$?G*h{lk zgL}8L#O$!#E?v(34qUiB&@*gaonKV(n&r=od1mYp70=8LF>LnmtIRrE1$lb-RRZu@ z$j19);EW-OFA}HGUKrx=h8GMTFgfX9Mm2vDewkB&)qdB6&o-c9f;npr=7PtHM0g4b z9FU19Zy2$tDshdLDA(1ZAJbgaY<7 zX@!N+VN&PEN384mVUOic&I2IWGKRB%kAukocLwef$f_Z}sIfUc&y)J*I6Nl9AwYn-WAd~0IDefV z11l{Cx_EttL|!UX%rA0~xgMDj+FD4$LwUIHM~>Ty#D_G|P+vJWXM2%&+pTnEc=p8Z z>iQ~*xb~nsqJ~k;huP$-=cBq{qebYk(&6e3F-1sWEk{>f&;nrz4Aa?&%0B*k)c zMbc)30)_M$rOPuVB>rPI`8F|XLJ|w&b~wiyi5J@&Au*IpJ{}q1`9}-x?I2d+B8R1C z45L4^gPCL&mZiF1IL*42qn1vOlebQP?*!awS0KXy;i`kP zCZoK}e+(wFC?rV|+A~Qfk`V%%9V{0NPZc>Y?0k{~*gOzsWehjelpdWGw>M{&j;dP1 zex&|Gh#i&O3Y&XX9)A^v><$27PB8u$WY)7ZwbHBB50ZP=s?2T08&j&s5!#X~imEoV zwc@f-QQi?=%wY48CCPdt{{)f@C2vc30j&@(EKNu_)TqcHw}pdgJOzjVF35#7`*=gS zO#p>XIVDLR9AZiF?=)T40RmsDY@&9UvCe&O0&b8G0>SGT!u4qix7ExogX&U>&Uwt+ zg2-%HQ)c(a=R7rfILtZ8KSGTt!7dV;5xIKtJdjBrw<_;Aifa`hZdN+YdIYrTi3qA8 zwyJ^@53>%pFq=1_RUbwZDQOcU52Eu# z;K0_88s^=|c*@%KF%M+g=dIg)q?^p-I0`ppw|Vgs--69o)U$5l4#b;1BFqnTB}0`O z)CzPhK&P~q41RmFJQPe9yb2vFegGK11i(}-Rsd0QQbDT78u=Js#LdEV*cjn8pTZnj zrDQ0>*+R!lZ>~xB=w-e&ls>^zNR5va1l=wrLlvYy+A&|@T01YED_;+V;u^HD%HZ7_ zgX*E#n(J$0ZW#o*bgxuU-Rx5(#wVoSkdY4OB2H_)zPBgFyLbX=;iuXblUc225 zA#>9?$_;NPW!(XpoB7N^o1U8Z6kFRfOfkqjh2xcMFbK}2*QmbGZqD(20^;>Wv@sA@ z(_Epi-_2>>9_|Ky;3g}+%MR(ZmA8w#sRbr3iEkw(ag<6Ny-~w%hNB#ZCVgwz*6eFz zlkMg#-vyWrmforhe2Xxf$}4c}6u%1%gTUNrBhJPdO%7`QWwbz#vyFT8i#x*~k&7*D z(-Av65tH9poNc_CaS)bu!P#cH?WWk?R=^z(cpV~jQqDcj&JC&?v!!~RO^ZB@(spwz zZx3hNZoE#KcG}9@#o0QpK?ZjmXG7RmI!0*2sA8eJIm@?%vuk{fwI8TTLBiohrQjQg z92RHqKQ0H@LHUoR8=3v7f$iTfF0Ymsbf~9Qg-YDTX`NR!j0gC=;Z>Ms#F|Oq)U#f= zw#PX9W_W8QCj;lU4Rw}KdNk<9=$H*4i05{+#YhANn&oJH%$pH9CRE%=yYAV9NFLhM zd*WZ6eb8@LbN#+cD34K1obhHTmJX*^!XXXc z%jFv9{>}O4vy;=a_wi?TPth>#jSNjk|6X1le`p-pk`lzeC%x|V4k!R zDUzM~)49J>eOc5MznW^h8oS-1z5>>`MfZiL-zu^ioIZ#S)MmGcnCH#6hzwM@3L=G4 zc+v}?=!qy^on0;8drD9NjQOvh?Kl0_1IL{9s{oEVfy=`O%Hh%$+}vt6tHnR zpkjl}XJT-))0s>RL~!b%N=S3pNCv~&{jbxLrOJN)g%gg+4PoyinayCTbw~RaV*}mR3_hPB*HF2+}EGipkg=~Dgn7*X|EIG(XGCs(T zv&F$|Fa-pSfe+t1Z)%+*Tosc@am*PMTzoGK2{);#iranL! z;sy-U>U>7sQj&s(wFE2B++;AxXr77hltRD}94h*#d$Di=Cc7mpEKCO^3z0WK3+ExF z84(k+3XL<)k)Ea06S+nJ4d+;-yy`|8By9?uS3T5Dpzbh3|ie8b749b zYDDN@=xJaQZ3=r~JeWYuk&%@F=OU1__ni|fJu@6=?i^mL7M&R(yvZe3%obag@eR<`QwC+pTH zYo)Jiq>}^t$-4E)TJ7x8X_ftC-TGwV!fFPCG@R+h;N1zOWh=cGu-f#Kb%!QvrTc`H!m(4XF%pl^8BnPs*dpe@RYo{x1zhjDsHzYPbN&_nA+|P08^IEvM5V ztY%~SRNJ(n^=m3g$fnk9PTz;&oEA-R{OJUvZ4^~vd(rm^+B9fy$FPx;&MzrA1*xGa z9c`!{6dG+`z+?&_H(=M^s3oxjATEdhk)(4jd|ha#V$Zat;?KSh>qS?4K6>ZA+<2+G zz4`X*$I#3^&HsDi*foO-Ue?^#|9*dV;-B|zCZFmRj{fWU;mgNzXnwn=-~Igk;j3@H zdF*cUkLTY#{!>xg_opXMBR@_4^n@?HSmXp<%xGRsYE|toWf7>C8k%d#J_^N~jpd4R z!`6e!V#R+fE>0I$Qn9c{_`;BnbSt`;KY4oi^2e92508F${kRfEYOLpYP~cT<6wjzp zU3ju|hfn#~rE}|XBNeKym&b*z_4-^^T)md(^|>t9*w2qXoc|X6`Pt%A?B{N=9@5db z{AEe5`ThB?MJ=875=8`~ueNa;(3In`&UNjYc3=3bm~e5&t7v7`colcyRnMXgzQ#9d zy^6L(8n2?pr7VqW=*s;3)2BVkYTuo{|LjZR%E)1?B!EW3)=;`8An^SQ(^)#5PBX)G zSw#HPK{lDvW0{oI@t9@Q0(i-3wK11g%PDNWT6EjOu+D(MCCAQbdORIXgwEdW zc6ZDFGqlaSY^rPz2uf5h3&bi$MbIGfrUwLjub=J9FtzIX9uNR*Y%Q#mNv^Jz{prK< zm*uOoljZMD>G;!?K74VV)U6&6XfgZxyaxo&_C2gDi;@8vT=Lre`Z@u1e<0@BEES`^YiUlgR zxP*p-=oscb*V1wFRdhIu$;bDSCU{=xYdE6sEIe%vqN($XVI`w9g{OFEGOPjKKpbtxZC&pleZD)zuVF3)^HY1U@hj%()q>e!(u?pUZ?`Z{4Z}Eh+X~f$B1iVJ%`PU^ItxFT>gG^d~y2eDoWh3 zqJXjY#{|*W`(u`SNALzN-Y;8V7LXw?#drloJAjr$PCA%P2GR<^{}Kwd=~Axhd8yZ@p zIO!qSs5_^l;cPe>&E{Y(d@@R$X-y8%C5@}-_B{g{j3>3r1z;g1&>5YFNA$L9R_t`R zq{4bOA14XjQ<8b(!*MnG(NdX`&??W!+KOT)QpD5A+X5N#2KC{Y3^=u}C1Axw;4X}` zw9F+l;T9Bo6c+L%O|Wp2l@%MFVr6BmurNAI>ihzTnW65!e!>%Mx?-}g@+UAC*qtR3 zM7oAYO|egePVjt{ha8Ls^gp2=8w725e`(61H+mCva-*prg+7i<1Bo?M`6>$idj1&rGfQc1mJX-% zznMH8J;gyVO8_Y@!EiE}$`2;vb(=(ksPxTVzId_Ot#tRf%-MqFuCA}5NUU!FP6^#M z-K>~RzIr~Yw~8(SojjMv7i&AjOiI`x(N$Mn0>hNrUH~KQ>uHo;al<^oH85#i0~&a* zH6LqAEM1${bRV;0!@RF~A6-|qo%@s#?r6NanuV>rmA3#(!R<+k9E2ctO(eCGxIgAa9e>x zxBEoZR7WU;eLbB*7a>jsz=<)(*MTKt%#hh=meI`&#%6*H%IB~pR6<+nTC-ZG9fA%$ zEMOElF2xtjdz(R%*!?s-*;dmo8LCxFCkk>D;B??qk9V$k+OFFL$V3&|m=5K10L3qp zObFw2N6%4Jz3FZXvmRC{axsM#1y@yquL|9uha?~;mMQ5^0OwgU8qR$e!Em7+U8Wl~ zr0RmAR|%&U$RVy%+R=z&haG!=@0yTAIEc6mXU7=L8!<2?c`NyDq4LUMnsC1B_MJ`J*q3c-%!-NOIQCS++X1)3w29s~X z!(sH1x;KILXI^n4D-beDl8jsc|1p@zqL3tkc%P0;VrFo~&RKgT2e5glP{>` zS6ucw@M1QRU5S4rktWO(ODk9q1oxcRWGN0wTqTA8v{lChxlN01Qd01b04`?Znc2r1 z%54HD^a3W3B40Q?7N)=*8wu0b%Yt~-1jEn2KgX!SZ$Lrp`p>7_I@(nRs0d1 z^B538WVWm+V}!)#9D20KoRj=B22V<`Yl26_wvKxslYXC?hSpbAkhfvh$xmnVCUdL} zLVshTdad(LFw}^@2Qu#)fi^vuxeY*z#<~FRwAtfssBVgB^}J7TVCzSX%J|91psNQm z?YGoc)S>X4po@UQcCk6`Y{L9NSGt7`(e<;@-e=Mn}zAL{vZvP3R*%d9uLHfh*6S`a4zH@y%n~G(kFNdsqsN?66m^1 zApOyf`3k=bR5y6{#-KW;M%g{y+%hQe3RE}yREcrb47$QTyIFiP0-3vb0!IU1ftr86 zvCi(>as-0R%kgI}-0*f%)*X;@Xweg&VrzSbDF&IR3C~KN*O-Vud?E_IZ%N%o16JA!0h?mh1pbIfn%rmU1k}zW%C+nFK{-_Xi{|ZFQWx|oNe5z zUp^*JE_UMMTPoSJcZn}Qew14BkXTc3Uq(Pu)YBeyk9Lf>V+L!SZIo&pgk@cDwpnhw zDYko@z54*H$Juk@#XE0KZ4YNhr0Ff-Y#rAigFBA1$FSt^xbWa*f)y;0}L1uQ()N@18Scv=|iP&kMe$ zZV9V$)bpR7zfSanKGiRwpR6^f)ojE!%gfXMEWbZLA>-&D&-P7V+K-U?Idg~=OhE)w zL54A;6-petF@qg^`n(X$qr~g%Gb$XwjU_P-%Up` z9?vf>a>6_Z#@97o%!GdlR=ze$K3UND?$E;5`4R0zVc$EGaE^rykve z3>*!}X-Z(Hp;U*2JUnJVcY7KEe#z=pKtO@t(VAo8GQQ_1NiT|l9S0u`o%@ep25K9r6U z(l@zK?v0%0o($MAz(?c;QU9Sqm;t$V^gT7oO97)&7ecuayq>~n zT57Qs0uB*8oF-K`$gU{mc1$XgF8}sd<08VC$al?hIUS#z3?~Pp#qr`GdpDgN%uhz6gOlNSK}zEO-mA+O zpCOz2B|je3DgXCuf2|W;>yRd>Ar?XDl;U5?DWxmy3a1qHO~TkobsW_`Y`nSG=OHz5 z5}0~0+aQvGunMvY>ZpvTqS&2MECse7Oa3;SRQ#ACh}6Z3WuHM0T7LAj=v_=OOtvu2 zQK@#BTY5_MY%}Bqd6Oi!%z;DtYId*VX`u{o%%AZPP}KNz?C|nqWV;m!SfnBkFiI0S zzPm^;!<37XVr(ofr6Rnr_CD3Wpq?UU;vR9%Wf`;eZa;&@DUM=qd@JFSQou z(4+BkF> zNr%R;%fTglKq0rr{cQyDbGJhcDEQj{h%1wqS^hDXevzNHCPPpvK@A}>WN3sShzjeZ zl_RK36q#Q0Tw!`;76cqm2ofdeBrOehZhAEbREue|WgZ(mE^uOE zS73s`$5q7<-kpSP0Z$k5K&rFx)abcTkV&F)I7V@3QV5HGvwE=t7Qm{Y{^+Y|$dthl z1>Xjg??WI{g$GnYrU{gzaAwRhyhGNPY9JFe47gn39>w$_3$%s~i>Kov^oJvoCEtyP ztUxANpJ2IpM)f9Tz3z330n=~g&kOPnlA8%m=J5=RF7+c`+}jLo6aLs*k2sMZRZTxI zZ!8!_li--Gs(z`ULj3|Rs#iNgA*CJ|)FQQCwu1&W86ya5(SGTK&Ac=EU@xfq+3m?MF~m}Gregz<8deWdf z&~=%}w3Kd5^0z)_L*0R3n+hgCkCrTg&ZQ|Dq@&QNTZ2b2x3m9ji?^5ph3g|ha&;S<4EMpUJCnUl2GdadlBvg@Rz+#m>irS zcp0FTfnb-tZJ^n1PL2jzC8bDoaw64cvAG~Zj){Y>Mxw!U>rM)DAyx`HpY#|CzO7?6 zOvN~ZHGpf)gadpueE=dWo&y`5iWrC2<{GOi#=xSP(859@fN?Coxrj>Pb_DCmxIo+y z#x&bun<>n_Q}HbLL5iR)%dP2rmY`L3UZ6a&?yh096?AoJsgo9(jwtW zp5rz)a>JNE@>rs(acYdlqe_1ytf|5T0ai)&ZvI_Ao;82$;1R&@YX9Ke=GDOj@>V1U z%-xB_{d*HA#!g>^e~y;#&zE~YztR(P`{AS=@Qq^ms4wGhQW$tcbH{iv1B`>@gRB@y z0ffauT6ieEQ$Pngh~T%t4FY(8KTIDJu!HPs)E7x9_*jt``k2jh6Sz`56k_i{(T;4) z>B3t1!YcL-vQolkt@cj0`)$$S!C=u}M&*a;!DERw!<0m%OUO_UYcV}IR-qY#XrGLr zN)C1Ir%oo4DhR(9au1`{%;2uhPTU51@%io7%l`zf;F$39u6cN<>3nCm;9$mB0GS+}>O8V)D~uh%#aNPeME?IV9}UPI91bLKssmEHvzH z@_BJ9U`~Tb%tM5QMil}MPKjz~KmyAW7hV_|Ihqd6#6dE{Br)=2S6A9Kt%zb+p-H4iDVLOv7d1Rz0AP%b@?(U7u@C5MLg!F2Sg~Ay(@CR! zAc&v5cIp(!6HySung`Oi4d*U>S>P{BN7btpPeiH`Mi^@ER4UdRBijoREir7i;dUyy?+~1seOA!+D3@QrZH2$M^iG1`(t3yl}q;{Qp zq{JQ4he{;t;!D&ykv6!x)G4aKg(qstl11Vp?!AMc6F{iPMacJ*+;wz|G=wGuY1W8G z4CWaMfIy&w01hW3VhEk;^%ry!)Pzu4V{wcn71nd&2Hm!yP8!XOc>r3HM$X+02Kqzj zFUoH^S`2I5czc$E9@c>0aJA!TC((k|5`?PF)(_JoM27(Ve&qWbY@i8K=%g6c>{ zfdO+HguN`5`?hD@C-sJ>>iTUrGW;JLQEV>-W7Ha2^&ZfP!>`!tps8o z%UT;`q>Nux0kC2BMJme(4hPn zYr`V&=-7paGO)q|aC=@}_gmcEocKlXcgRa_x>+=1+qI3Q12f(obSgn`9xi(` zDcr~IOD4Mnf*mun-yO?GuaoeoMQd7RMKm2}vc%mMuWsMos`ye?g+niwOUh;{-GhrP z>6n;{Zq=YQ*V&}O5nYp4(m(Y(C${{(j3y}bs(CgM2jyvTsgP^ifqh01-sPFmmkS=( zx+pA9%x@W8(Xqyl(-p)w8-$D{&`RA9I0V^3PC%p3hrAuY@6%?D&{qlxvmqr9oIo$7 z#M3;3G*)ATH+RBe{=2!F8^?Tt@fwlvjkiZQSjdHKdNzulideR_MEu}}%b~dNZ&E|e zV+wUfLje@YzU9XlEmj{HgftGaJmPISCiQXlz(=K#(~4L4&x*Q#>X6LwXT`Y^O%p?CwS)x*2i26W@5si(}IqKFg$A+KEq2&Cwg+9K{&Wv^)dH+rC-ZSBVC@!6vON$6<_*98W|8~f!L>n*S$Q0MnI2V zm<29?osAU+%L?|diNJ?hAfpa?1KI!*vNl5No=-vC6BG4g)?G5g0oCGK*u->7Y{VzS zDGCOCB(+!#BQCV(2r=r~$^TBKW>)U`pvMEy(LvW70>KQEVug(qdDUMj-H~us5@eD7 zAvSd=EPP_NBdTy=Fej&&a(|;3?)f}yM0`sZw+)BC3M!*^;ApFkNyHURmIW!n=|GBZ z)jA4h4X(Nohfy_zB-J}snSsJDO21O{zvK@GQq-6oNGh=Um=$9TL2w4j5x_xqz=Wi# zis=>}jz_}2!#PIQknKon3_*#DKrKTm9M};rd~;zZ+%VC>3064PcLa*67R& zltl4NoY^dm+~v)BOVHC2^ktN{T}DY*P$(Ud3IM3gX7mQzA%5L}9O5MxY)Lg^!3 z%Mg?bf8t>TE=m0zOOm3NF#d*S7Y1NP{q-Db140s{3XnITPYe1986r)uXqH3XAxGt7xZKs91$i16bR$iDY3&0!8}`w`d}^PY16;A~5wAQUy+4uuaJd z^F!2vT(P+{FvqAjQy8WP*-j=X-Y`O58T`~L&b_mo6Up-E$%7hJ|~W$Wn3K}CRS4d8{lD<%wAY5OPqYqaWrWM8&iAHJ~cXo=dWriBT6Z9AS z0DxLZ2}yX9%z8bHVap();f8_m3>_zAZ2FimA&xbJ6lwBi$qu!F@tvKHYZ|DV;*08r z!RLkDBK~3_ikuj~OPC*O%*8XqesWfV*;G3_Kbsk@n@&q7yEWOW-I}uPa7~aeK2K60 zMw4j>xG0jw>1VA(r8ZopVjY5bVhNJ6n2f4dD=afsQ3I!rv0D)>xJv-EgsSoKRxelB ztx{_>f_9&P=*0MTjok{ds=6E@mx>u&JRJoyQ{tTdyAf6uvz4eSv?Ju~IkiOkyIe6m zm2n_fBADhxDc`weyESB#G=)o5eoT3Y%c&8|fp(kIIp%>uoqbNt8GNc`A#87r->5a- zno~ozZr9Bkpp8AHWt)a92_s}gW|g@rUNRUI6|`&QR^@qxU@{^lSGogxDz4-DEg@{v zB0J>O)CFSgp6+2g>7{h5dWrfeLPfORfJ#^LB&)JI2-(bW34!Htt($>WY6*i5)&%(K z=rID=Zzf_8Sx(K9|8A6=yInrRAXJj_6A5NXAiL)MEFKNSM7>k)?$zUOv=X%8@f^>cfh;q=zi#PCrywrnDkQwQx_aWyCA$5gfT3+X(8&N3nJM@ z8k|VwkL``Np(Q2qPZe2Fc14uE{6Q;EL&c*y&&kr;^K90-@fJO+ z(C-%nm2=X$X$lt(m8T+#W79?Tt=KGFj2XeVq>l*`CShAdFJ4*-{wqCe9?X1Q&({if zG6W*z8H8!m_N2L<++sF;n@PBgP;m*p$4H6?cj#jt%#3a3sNH;`I+?`Ou5Xck z1Of~=zetk7v}0M+$`yl&M-G89JoRc&HZhBaDh+B@5X&$OH2Xp`n7_)8zM8g)u{p`r z662JnQ}~A~p4ISZ;Ag0B0zaX?m@$d%)tbG?Lep4&^yREY46Pv6KUr10sPrB5CVO}& z1LLhpY)>S8p!d_BoG#C<)@xtW*FFl0bzZq2f6}Y;CK`E_4(D(0Wc^GBKW*pD8j#Og z+cfxTs}iepeR{zV)wPj3mFLBMWw{E*OjP#B1gaUK_JQdJ_w@ZuKcX89ij zP~H9V3C1Y^!HVcP+{f^mql^j8MIKJ_SUW@yhd6yHTcFATG7&n^)bwxheAuJvqc?m- zEeSOa10(&AvN^pJ-4li}Tcws5PFzfZh%DE)#r@5hx8tg{G)0^HYU|gjIcxnPy|?zx zcx#Q|3?iCJUnGSjmqI585R+X|bbFi!$w>rfreo)+(^nfLzCI!>B z>?(}gy7!6ID8b7jlS~ym!a3%nr;G{C7BmG8aEVdHnbGtzh*jl);h}Mz<8E@}7aO&8 zZ!-hX2GjeWA(?(wBhtCB1{X7KZW&x|w1l7;4uL|3P>Qzn zb%I9#B?V_Ax=-?talGkcHuMN2ut~#v?7yZ$1WmzZhg9tf0W{uO(ZcOg^n zcyqHRy>n^hjbeg37YL5rAIxLkI^3uf+BhCNNCv1j>Th%-H;RdFVG<%FfvW|IG5*qX ze8Fo?~J@| zCCJdQC*VLNnI7W+kF%7x=wS-N3P3?5eOD#U0FME!0(?5j$ZT3_LKv zYIW-rNi^A_C0OV7X)v~WVm7F2tsNL0yAEccJ+CKbyIAzj$#a~ul4q$oc7jyy+roGo z`R|`kkNU6i(i(gx>v{NX9vG6-yUQmByIRb z?B`yyeS2~K`P2TM*m*}+|NC+IY+w9gEUofiKP`X1D*jcjK;mTHF*(Ach7%mm9()ZX zJR7e~5ltHpATuMP1nC5>QY!njF|w9%N*Pz7*Wmeqbc3Ndff@?> z-bkB!eL-u^P#+-)Xrv5Mjt9YZ*QgfNrUqYvl5 zxdAYKRua}1SEuJ^mmf|)UFK531s8w*{_)|-pgnE zkNC$|deDA&`~PH7xYONe?oJ3xHVd1_Y#Qb>-!#kRbbN9$oE(f6$BTpP-E?v=KN*b< zPKM(JAtG3jFJFAVygL6SKc0ZM{NJ$myx$mW*9SLpk=X$vHQh{s$-~nNx3f*Au1NYdu5mL=^yB4XxO}IVQh1~q z@}uI#xok^^f0eLYpZenb6m6xqUE+nxxCh9yP{H`8i>=rnmE zLr|Rs9gK*@+5mzS^Ds^l$RuK?htW^B`%(3>(I8Yb#MZi;MgwRX(8iMfPRErHVGG8Y zpI-A^VR~g2V9q&{3=GE7 zE}L9sdY!<*Z>y<-`as=5JCRbyf+5A5Ss{)aDxbF7H@_b)SyH_NBH`%)$!z^lFeQU zlS7kJ1|BTyAeg;Qm>m2d=zVG6j4lEU?Ed6vtd+-X@2-kZfuD3|IxRve2%`cl~(Q0;&ui5htmqBe|dT>3V%`heLLrT<84}CE`_;E&D3tAVcQq_lq z*`e1a?lnAO!p}@wY<f>Tx*Fh$|Ui)~-&*W+p?oIq(~<#XLy1YaXPqHqmdAUXy&W@0>D= z1R=z9Cm%zcXn0ce)>P(!_+rSnBIk;RnAL928h~SLlpiAujD0X6l_Zr?YueM2nZ>IE zzatNaSyEEN>u0m(fiw*ww+k3Tq8V9hm8+G;3+?fU^Z4&Z?pDkL0>~KEL^+@{lXf5O zie1bDVR~d3@m%2q7S1|(l;ZwIsx>8g^xdQT0+an436(?@xUh*(70$*WT1~Qp?6OV( zp&l234FETSl;0C5#QwMOR*x9WGZX-UKnDRFP6kYnT&j0^&`Cr;At1!!5V;0xr#@yw zog`G$C6BEHNQ5*+{iMZUs1Vyu^TfT@2#MpsR<~JwrPXtb!$rOEW!w09c%h+Oz|*1M6k$|gvt@$9iBcjg<*P9p~e8!Io5XOTTkJG**(_^pqN!3c27)r z)&RF8m*D6GXJO({q!+P%r123`o`8$+rr1EtgPESVIiyp?>U08~XQdMaPqzxeaa0p` z5x|KkL$6g~X~2_`U_C2Rf%NiF2prYS7iyY%3mi5cSSrL^U`((uL80(RUri%$eC}`} zKzc-uIDEW~)&c!E#VmkE0irWw2O0!!FIQ<>q3r{L2Ia?C8y0~_$1V(*(fu|>$)1-F zQ!zH?#4m!sLuzu<&7w)$uJ@5pbBu7?!0cy}8g!!f&17-+oSGPaM0O~`>NzzXdby;O zsG6SdOU8(r#>8B7s|KxU&se=leYV)Z3K)@BOwQqV$}TsWAi$pboyybVQX$v2k+&+( zjJ{m(xY{QbQCOas-_kv5CxwL0*k+j#`Lfi_0WdMraQ`(aBwRB{9jKcnbJhrbrI3ik z;^W{C^x@KRq7L9$$EAd7D_fxswHORv%a%W5P7WD^?ol0L?5 z7%zWfasMx`lIlsb<{4CCtQ*Tm?-KcFAfXO1xwEzF)RSl3A$|7jo#E4jHIeKPyteQ} zl7m4kS5I^h*kp7fGRP~Ze;FRzYgN`5IUR0*yHy&*;(l`9jcYcTxpR{Jq=!9^Npv$c z;4#R1*J%gxTA~{`BM?f;*4ogHa(&pGZ)n_>Fk5vv}*#8Jb3R!o$Gtu^FhCsn`StW!s0oM zL*(KE0&F6FkT<{riLZNkMo)M>dSMp004XV$VWhBO0GrH|FbhQ1U<8&fQaE|^Meg|& z#9c8_M`qn8gHEx+CZ<#LV1*H%NZ<^RL`o6)5AhKfI%9+wnRmqHAWYTQx#xo(k3dHU zJ(j(?u_CWJEN7D`Xq^Im`gDrpUk`Cu_%!5_wm}r%lT-}AHTvY9&%@MXnLghb)+lic!;KY~icp5JVgaK4uduJCGz;8l#gPMrJUrD=V#owC`_7+HCnT zE5=xYRP#u^qlj;@x|$x2N0Lg!DOu1cL%m3iB}maYRI~Do#OEkXN~+f@OtBGu&f;S( zSTO}DMwdEB5pu*WeF|{YCs45jVb8!6rA7iTs1y{rCn;`kRCtrWuul%?lLKxhIRI!% zo+r7bB+dh%NT<&sN!MMn6zexMyD-26f*W*( zq4o>0BN;^cw4k4`Rq$UCZo^AOQ!^uMHdRk#Nl~Pbe~CpXg%!!VR^cpf#nQnl>~g~` znuzVwfq_dVFup9{8FCDCt;ash4{kgdw{ek?eoS_#J|s*J_?(n9coKx6$Tr5^+1c5? zEhz->6wt7|8EK4qJS%N^jaU#&d$d*%}mTo zARjXz4Kx{EJ+59_CJ-iI<-@Qbt*J(#=)4NI39OP~NLH>8op2?6p)f(hd4$8BDkw}V zaEI-uu(MNiEi=>zo}j-V2msW=wnoOAq}J=f4qFBS7Z4t8X3%l86*I?#38C-~eh*9_ zvfaSQ=9rzGj%ymIo8pV=hQa4WzJz#+$H*$%@-55{Mdsp}VLv%5!ECCXouADN*G;FT zliiAqvqigA`gmZ+4HGyHr7?Telq-xdl{HQSI~4@bhO2Of(BVSL*4e{#E4Z-CSVaxI zI>v6r#g3+x7E08qqG+2UnB7_e62efI!>eAoT=8^N%uKN?{dXgXDrT!Vi)U1>k|8fi zuKodwA=9H&v0KfF#Ds6#ZrwboMl1&w5!AI{9sS0AQq5VZDM4YE&2_{>*=`zLNRZ$&Yi-eh?(8}hnD78eXH096}@;$|Ik$V?oiJovs z5l4jnPQDu@=kAw}n)py9hKR2e3t|Peu;!E##e5qzeRK|=O$nHrswae6U zYTOZhO3jxN-5m(&h;k%^MTC%t;6$uhDH*;K4j|2riVfJegKuC%SE>=xK_5uoIeuJF zt}t@hf~jEYf`g#m$9pluxnKg=O4O4ci;x_1&BH`5%Z z2Tou(9mMxU3IkeRU;4pJ&-GldddR}=QF4yLYfHKub`K?R(&8J|K&Ywc@En~V+_{i$ z5}BahF|E*eKA8Ermfw{Q6tI0jGe=0zsX?>G!-NU7DS6&xxe>!pqT5LbY=l;XtW;7K zjp7NrX-d>Wva}MaCCNlF-j4?}Ti0~UZjM%}j#cm5Mpj?;e;6@V+a*T6CY-c za^r`oo;GvTZaz_+Okzy0EtJG16Cjw6o0rz+opwjV^6 zDF`P4RK=;HNlIbGIwI1J^^z)(TuMwRfCWO1oll=%&+P1W@6KWu6m$|iN+P*CXHQR` z{|*3!x-p{?+t!v;v;kv9ed_kCN(>enIWU5R1Ufr{d)EyxjLKM53Wi$qBFJ9u#ZRad zZw$3z1*H5~o`8(m7{wO&d%4~a`6HcYAvRwv|Rhy;rc z*FU0)buX(s3E>v$lUM>^H{_#ui)717GG#maG7_p=#&mCSUfCSJOL6= z$Ke31D@mxdDva+jYY&%Yk9Zy;>jb~M*jzR|^ilPxc~aq4BIb|CFT!oHY6%*cYcWa* zgZ0T0I48^&=2A)F)9OmM|kh07GflrR`(OFe(?eNiD46Q z@ZobJeq$Iz=Z?*XzN7B&6fL# z5?3_0Xk2c;++4fW9}8-5w&SMDU~!`)1jTT=I3B5?g4VCw2{HV|Q%889Fh}{Xsg4v2H;U!XqK6^F)5dyiX5@*lgvZBIQ_WXjZu+ z%`U~b_xieuvL;-VWy%07gop&dX&r&sDiUGC$kvkb#QtQYX)8tRB^Zdr(u0?c!C5j~ z^u~uHfj~e^Fjo|wfj$Mr^)p{9v+Bg{%Z3)pSD#@!VH=EiU<9k>*vRAc){eBOKxN%1 zC^Z{kHj&e<8W>%>uwX`+vs$2iZ#m}E^!0V(1si?79mxO3)|zl(NZa!KBC<9WQf@bz5Uep9Mu|B;^{cMbGWDKdCKp zp7|g!7UkRqOBzpBm-u9d_W%GO1tpCU(ds5xsrVq+1pF9OO{QK&TLs;u&j*2-L}!2s zwkPZI$%?id{gzA@hiBIZ*H`ENNe`EDi?9zFSa|K;KK)05|?$Ini;Uq1P9n}R^Q>G#g=!`@)0)ZB~7f_nCzp_+;V zW#8DPd=z^t_F_7aHk@C~kN2!EpT!nV{qiQNjh+UxqWkWbE~N0Yxa#Xk%Bh zyDX&J-sRJ-p4%V4EynVEa`nITMr{RuLvTB|u!k3?ngI82uO?Gj0oT&Og&- zEWptEGP#AFJe^%cg!GMAAY#l$EO@XH3zUGe5eqhA0fPAH%*#AwcfPrbHex}oSb!o{ zWi3Er5REId57b%<2CY8e1Kju|S`b+<7&}>e`^V%p_Jr?`rWe2NJTl6BCMpcT@Rov< z1QHYMf~7&d`AXh=Rd_QO9|WP0j18#+3&abduW4NFKVF`0Z%dyKeg8ZE>V7Xjzw$r7 z;%B4ZX$yoFXRN`&6^WHfujHRGRzJ?DG0PYn+;lQKw{e>0c3rQU?4RyG>*|5->PhI4 z)w)N`Sy(1(_!aVOwuR*d;SS)-0sCmNl-zUvP?dK~#R18PU26kE>IRfiAuVuB1hGXJ zmCZ<>D(=2&OGH{_J#glSlKmmK2K+cV|Ih3B?A`PtwG@2cG25Ig-=fezoh;^8zq>)0 z#mb+O6Hxz@*OzbW9~2d@>M6In`}6tizkVn5Ub9w(zo?tAksfH~_c1KPPiMbnd^!@} z<&H#pa`a5Ac(!a;HQTS?0=|7S^-}w}Y8};^u&jM32ASF&n=r_sq-PM}NG&Gk74d~lN zNqNM61IL4V3j`0+wQLP?EA-JHp(c&R7e6Nzpzz1w7f2aIfR93grfMLJhI|Fe&`{iW(8sXZ zn6kv@pju0ZV~(ArI4Mgn#kJ%d;9C76Nw1j;tJA)V4@=m} zvwqXsp}vBsxs2^)s^=e_v=!f|ynt{y1{aJfsbuMTgJRaJSuSn8Q|DlP^4p!Ewi`+IVJifM|nL-rCBY_L zYP#6EeRnoZ7UdWbfBnQ`Nzu=$@1d2wL+JLRjLYe5V)5*>+%?dlG@#_tw>@Z=f3wyl zBv94Fb`m=Z+83~7{tEdp7EeK=rV~K9@mmSLr_8YansJZST`Hwee}4(D(MQzSkf3}- z=}xNqPC14;Evm#(J{ql^q7wrPSd-a36*0Wnf4TjFNL4Rc;J_PvlZF-&7M)PK)jD0_p0CSxU_x*^;&ObAJr38>8xStp!Ys7^8^@xc)A1hpiaS7f}E} zLJ5p_4Mx>|YXGjQ6KFY=VCd^hO3C{pfU>|p!I>^4;5)|F=BAWdRUL>qk@-|1pz^jc z9vC@(M2bF1^VAdu#{sk}-K`bSrRo9UgkXg7Kg?bYSt#KKObjMZ0zWpgw7yLpPc^7iVTeUoYAL2-gwI^$jOxJw_yZ;dr56qMu_bdB z3)^w0OAQNv-x}L=DIW}lV+jVI1at5wQAZ;V0buC^lX8DGo}W8V6?LawwdRh<4k0L7&k=QqE`heyQz*O~_L8`TkOMnO427sUE2vV+MdhHg~ zsbPuYd?%8HVg^;C6Syo$nTlnskD&!aSsfP-19lde7{pO~2_-f>Dh+l3;p_WBYD%@V zMNM5P3C4;r^ASg&DG#+PMIerQFnG=Y%Cwc<{^SeId%(#A+6+>0 z`fbP~l@MCugvvj<95N=qOn+<^1KFZ7g!!y%_RF)bt~|vUwh-84`36xpK%cmkwkQf` zR7TAKJD*@l^=-r?-y>QeSfO1Y1KZ;F9tNB{8m~;Ys#?D@T#5eZ|?yc1&TX3iIgrG@9lO3YYpJktV(vT zC%?gRJFG2}T>xKWyr#pWgM+(wr?J=WhP_TP6&5Q0*6Xx!6;Z&hEi9g;Qmne_RX*=?2*#&lB^ev~lU3=-cB=)1GwaB}H*Q+^`F1*3z7t6l{+=F(`^r3X*v zlj&`GpDA+C&l%W#F5-fzUdEz@EB&g9y_kRqo?K{>D?PaSSUf(bT^B8pmAddtItHLM zG3>td;Ob-X>b4z=&Vem;;m1N0)%e03#nOYTkA=(-BM!?RX$MNF3qKYd%9j_$@Kbtl z)v+jI$r-#l7hkNBVz`-?bktn)fR3nGqt8ofF48B%H%CN*m_UXC9qs-#GH;M(F zM0M`~CtFopZ9qjeii1-i5A<#T&(ul3n+O9qKCmFjuml%?dmS{f6$=zn+@_f@+oU@! z%le$9{4AbI67jXg5!QSnnCt)s&Mgy$afU4cmW3O(+r@(=|AN}D)-vn~OO1UEMFevl znO@cq7bMFbenT+M!3_8R>W0!yX^E;rT`0j;mB33!U_pvK^jy0oaNUYb3Mb#sJW7O` zIfVs4Y3U#eV-&qefI1L*_R;!q3+%L0~PoyzqGqsGBzc&l=q(GCeeSeZQHeze>h3s@2eA zh7+?cYRUZ`HW1IW%JF$)=d^m5-atAd7Xphvek4sc>C{`2D|Gv7Yucdil&7yHnLRk0gic;8(uf&)&Eph>9rAN@Xq0(+d~xS7F)}0 z1$t~o#wr*ps4^fGG!QOujHapdVN7Pz{d8G6xwteG zTY7L+ofikY6WZ)pw7ya5A|1;x8C80pmcDzo8f`z2K^f+ z_w0HZ$|(pz#S7}2U=-&csh=owT~~UNSL(Rl45#fM`clm7AGMoACG|FTs_<1{65iyc zd(qcj=%q(=63#j7Tom%6+@0Q_Kn$z)qpz}6`iT);&VZMg@brBZIz&?@x{1I!z^JjZ z8R}GLD9}bAYN|w0d453bAn4SE!hgYxK#4VMe69vz8<-;FE4w#D9XIbpt#A4YPq!yV zX0h!rZVwwtQFe){BT>H)jG1rGhUXl_!&su*qotbWr-xFU*rY%g3SY)R8;%qEg~3XS z#u44yu_*3gzff7(PJ(bHPKe-DO&j;-INi;Zg<*#@Pui(~;skRODl$B#In zQ9e(DV`zB3 z$jB8PMai$Yc5#Z2$w-uK#oh;_#C#}XS!{06E{haTJ{>|b7;sdz1b#-h;|adgg5RP6 z^zc}cloX75GI1!d_eslQ-F55&f z!&8gMjP;wEGJu^LtERf>2{$CrR3MtD`>g5m{*YY!rjKusHu3~kTTc>Z6N4ni28qjr zJC6Gei}cv^AlSaW~glQCC`Kp(9W8$verWN^ngR4$6 z`_JArGs2nCAN5I6hnXA4$SQY`Rx$MSgEV0^j6HK3+_j(B71yL6CQBe({v|h4BLySI zqJbqJf|UjoFA;VFn?fBX7V9wRrh!FsnW99v#6_dw;VZVl>G2vCC5q=kHblgV;k^QHnABMv`BLJ+tHO>jE24=*2Z z(FFY>pW|&WH5bC@2#^D80*nt-0n3j~Y##yr5(hq_Z!GeFm{kr>YBW@Y9@^+W&>FzF zkZDt~W{*4=*JK!%*=if!CxR*7cL_1%i)nt!_`VWagLlEpwtNMNP@1~Z^CrJ4UX#nO zePg%@rxutFGD$%i2S5q!v98tfB_C*8o+cA#Z_8v&x5w3x&L1cE+ zY;+&w_hPDVIpV0S*+iPHWkzL|W~Lb!C17=A-3^iX#i<1vK@ImBWTW1c)*lF2@G3QZc>>eL>y4xg_uGH1|q3NwJmQj2N0HXPA?^KK#Tx0iA0YhQWkS zx0I>?$kUVOr^kTHN+A%|aX0SoBzt<17%mI?yFaH(rLY*o!lL2i`4hsB$A` zefcbo_oI{>F*~?6MEAmSg`jbrqhmU*0?ah_h-Nip#&;#Ot00(kJPKmX}?dVBTy&EmEJw0$PCr1;`UFX{ib9?xfQ zokRiTkAuCJUkK-Rl?4$*RV{{sL}O9KQH00saE0000X0L4x#=D!*M00^i602u%P0Cs6}X>TuW zVRLk4a&s?jVRLk4axyM>ZEWnFZ*$u=w#MJznfo2o-4{;pO%#Iv*@?T8+D_t`#LbP} zwEJpDk?B}l+44wow(Y0CKL7*;kdQaG*pnMoUq1VHfMoaa2}0rc!|zg>-cpUUZM zG`Zg26a8SXS6&Y%=cDV7`+K+ZizoSB?{DA#_kTTmGnmcG>A~cBUS7{)e^lC7=-qZJfH*MWL zxhbz{_hK@=8q8xU5DMuv*X#p?QA}| zs;&|G>JAq(YkR%3-*4z&wYS%MJ-RMW=f98nO|;j0F&d8-|2ivwo7eyP{@Fn}9`{c6 z_uh`Kf7$E3-`|TxKaP`tpDf685$-*8F8aH=C=B~yVt?}U=zM;uKkDa&yj#Q~OT*Z{ z=v6uTcsZ}Ga&CV;8P)@6_TPK4zo(l2pP=u#Ne@WK@yIK6AI(djUw<5zs^h>O(2Mct zMn84y*ScBf*SxjSALX0Lxu>Or$#^n7l}1<|U!Rx1Rei}3z5MCGl z-u-&4{+b)wT|}AP>vG4@)dwtbG`p0`tji6U z%&#xhLRE7u?0Jx%RZ9VjZhdqx7!QAb)xPcJ__mbmNPUvq4gUDypY;b$b83~p9kck= zlj=4dD?J>|ZpMS(UzeZCvHJK)C|8%=`v2XIhQF%&>v>aGI&1HECRgs!`DlJNn0_qv zGE&W)Vi|ZNxr%?n``~-tP5veSbv65RI-lMS=eJY+T#J?be!#P;PNYM{DRN&A&vbhB z&K}v@>E!B0cO`%Ql!p1c>JZZuw!dfnu6O*){$9XG#@|%SuAhZ!I-(?w zgH)|xv({Y)Q~4b{fVIk{b>xwC)!QXe^NJ#yF=X@=E{AdNziJFhu&R?CSs}{y`@HL6*FxGYHUY3)vkAlbKqt7%IRx(|7IUByna^VmeEv}vY=SBHFj;3!HoYoh*e+#tx5O z+BUm8w&Lg$N%rA~@xhqHvr2d54E*@^=;Z9^m$RRbPaZX&{MW;BT+VgQ=pa~`Y@5_n zwblCclsktyi*!CanUGh%8eE@`OK7zBjZA%cHvXy{-<(ZuMniSe`_b$lrymCW;pNpg ze~ptYank04$<6Q6ns%!H)q6DjwkH|E-W$Uh_6{b~o5@rW9sOSKIlP#ztyH5<6Rr0B-&sXCd+HRt>N>E+~K-rrvjZmQo)=jxJ1h6g*Ds6})*9eiARZAC4; znS3hGCVIphL!CA@*JNJRwtP0zwvWHrfXmpRr_W?fLJu3b^r_lhg&ycqaJW(HZB{_H zZtP6-e{n)zl}~8TTG^uL|6N_vWLcl8P-9n;vNrbXXl+ zE1gPzbT#-`{&;aQE9bIc$e%P0;vg$e z#Zef9K~xQCF!{Ewj!W3)0{!Zk33!eg zKL!RYmfAA#9L7HMYy;rRm3!*AcRmw&K{?BJRSpPt>ea_cRt8mqy?l9rZdJN2-(N^h*xUB!0W0m;-oc+4Lc z6MS|?^p=e4<8*Lyxg_O6lkvK|&}0W$mwLs=CpJ)cHJSeLd_4N7S%XM^)P%BDT4|8+ zLk6aW1M4!dPI#k&H40!FG`DyUo?OqDfo;;0AKTi9W_JnM5+L2Fvp+LGlTiKpXTzI{ zO2F)I7XR-`{d%6CXHRtl?KBUeL{0JAf=QGxu2$#3meUyaTcJJJ4RdBsML z!Y`dYo}EIJHbsrfC%Vpah6ud!m5LE_#MQ-e3G^18O|O3KtMWzJ(ndSADI1$NSNnZN z+jhdhwmK08X$Y|z3dtUJFu~%R^(Gh;X%a+fAksVv6HTf%I}T&KGFtvP405qd z$Zw*wxp}>P`kvYAQFY`t?(`ub11wF|$QzJ7)>>~2QJ*>Tj-6Vo2x@b6P>SUwMNt%S z8s#Dl!Zf!{ottZejf)~rlOiE_rkPVqwjJnl>#YakI7r=m1r}ku^CHYpA_qy7*`{v~ zgwbY^D1tl?QS2DM3n;g=X5Vboli*C@5>#+c!DfpwD`NRadd2@7w_q*Ib~%?1tGxSN zIbK)7wOTTM5BHy^kqGhqNu1`&uAQ8kW{=o8b2A?e2jl0{;qo#rA`?L%NfLIk<U8)i%N542pS z`MPYXr%k|+5(i-vB_u5b=oEKoPn&s3%t?}_BsCFpk;k!`+f^NT>fik==jGtyXhy_w z;k5?2Ya@xmIK^&?m|>}nQO%yb7U&^e`gsJHDMW_njq*qj+Zb2+B$lA1oaj{!t2F1;M?pMRriR8DgvwyE2nnu#$as(j=dV6 z16D2YH9S(BXE-`1cHavt$du!2z8u>Md{Y0Ijahh`Oyor#Wtrpk%{w7mD1_j}gb@%e zSMROakJku1N_+U9FalhW{@`F})@KAF%hDJK#zN2IOem`}-oiKn0%H~z=tIb7@&u1= z1yN%ZA`8iP;xG!+IBIy*dtnpBTAT1~66o}f@{rUOf{j2Ok;Phdp9Svm8ih}<-|u3E zdBm#*R3tHmD8(z*8@H?iNRXu<6q#W=yLpXO6`dZ$`J-mR9O))01si2apXY)%uXFcxgSQL z3pY(aZpRDQp9S||=#?Kofk)6A$Aqw}8*O7E<(ZZ*Hn5=}p$TAq@B}%5 z!fOSNx%n_-Gj(+Uzv&4jILJgKGC3uEP_MC@y|p1x*bn5mi4Mw}96b?EfT+9Vp#ig? z7}AscNOIRy5^72ms-8F(ks4vEv0EUqh+0UWFoRM_ zkO#-hc-lfhj*^xE`rP!qLDNDskx~G|5~!TWKPrMmo)H|#^YYADKMrpjqy!Tv5#lwT z#BHjkP9YZ3AR?`l46nV&TCA;SzB*JPXq%)G!i9VTgdu0S?%VN5545d4`z_jb5XnFC zlCOZaB~5|^ji5(h957}Fc~)^kK58=(Iqt@Tu*jw;3KD);YY9u%o>3EiC<`VeISHYM z1UJ@X;i`_j=o$(zpq+??l@UID9TB^sh;nK;gm9`ez6bI`IUjZ`qYWU(Xpw!^Bvr9m~!P`(s z#v~rT;={kg4AQlD%7?TgPHBRfrM#0#gLg7w^Hxac@knrLG7E$~_IU%_y|v-BEJo1* zc{-h?NhaJp%ydM-A)^$65lCN~#?S~)AKTO@LjS!u)yy}J_s|s0RpmZd17i}B6 zS~)@k+kGQ6FTQd(>`#G|pn%7^g3*LQb$q!o4_`~owPjDLm$IXv!%n$85mfM)H+#95 zM;A#@u;daFWQuErN=8=p4 zB9aAJi3uL?@M?*Ud6!=~9xe#%di`Z2eqKD>m&XArs+M&K`|hnO+s@9%L*u(8`~~Jo z{URa#}AoT zfLSnOr18A>dkd)7EEH3%ql5xcjPQ2>jTb`r9OIRG zFFZ}#QGTbgXGwFhr6@Ct%cRUCdsikPAo5J ztx@#&FnU2DR;mDGbu^?bYrAd}n2>U=RUFGIQ3~6Npa+$r2N@s*evljcV4NK`d|3_r z0GzJW#YK|Xb%LvTLpzZhOOY;+8UI6N$U3Xk`Z4T1ob6_JkkQFnn_8yJ#hFX;ph4bFgDf|K>*1KaHwqj=CDe=DbDWm4nO-1NJ=qupwdyO?1Y z4Kh|iZJq))H5Np$4&!00;z5JFr3Tq`>Ewp?nln*kw<2UWa^=ViynU{fAv^U*V+ap2 z0T7SIUqn19Kn=RRM%9D1Dr0r>(-t&h7=I6zegi zSB8wFmbEVH-fT=_%c*x^5}MfxLMfEoqsl~AMk61&-biP?9m)4DxmIeg)cpN=XFt#C zBiAMAY5gqek+fJBm#7`MRsRLgYA4X{feywAk(Ws_mQs}zX5>zWc0cTIJ=u=frM(%# zdO`Aky)UT?tzzfu9tE=F5KNF;-fo-GRT2yJZKU#4uH6#2kod}#Q6#lx!wa&MHCnJX z1jQZHboLUp2;8OeW1A`6Tz!m0(@QF|ubw^7)J3?!-HqJTTlmGt)~L499*1gF-J})| z%H!&bRXZHrV|e5id;4`MkEx^v=o{ES8&Xzwzizkk4|1KY3UfZvmLd#t0k-d@u(!FJ z&lfHXvBMWt z0oC?jCVn==$4(g7I)3g{b&68FyP%`H>e<$IY$rYj0jtd^^3aO{iKIQf#^f5}V>P{< z48g}kB9u(Y&J(l*P&4j!n7Tt(eC*_V23Nrh6Z!bsA-2CY1ed!+@n4!1Y^OcuEElx? zNMuoPX8fPe3fSO-s1c1aVku~S^-`KvVB;t+sLttt{o{0jq~E`_0%bFlG2c2tFPvbb zd_c3Gb<$%mU_*J#ZpaK8oG)0X=xaZuu_{C|O9yDYjct~mOVK6X!M) zJpL5HF`G`<$;GaDj_q2b23BmZiB={OIj6I+F|adK-JoL|s%|4gc4pid*JsO+chRa3 z<#J4%EV7fu$sLQXy3!1O7ouZ06t+Wh{t9Ti5#CHUI~EkI@p7LaGpR}Wk z=$IoH@EV*U2rbN^bDq`mr-_a?Fxxw^Ue>dtK5~?l8+j+1cFr5-Ag(-i@?v8iyHzJ| z9TJR7s(h(!RmOG7$_`sOIBEbbDyfKl&DL4|mu3pvYLvHrF*;FL3FtZYVuyfUipEHu zs*OxK78xnA!K&ns>~E?rb2tkN)Qc2h2o45G3nyW@4b^+~D2_!;NTO_$Qhk{d zRXNOzZH@I75}!^Q0gV|n-PtWUh@R8;m&#DsNgj?6)>ewoTD?U#tuRp zussoSTxO0O&+P6Wls=bZPMJWC+NsWBUi57b{oygMdT7*L)gX_;6VU5gZ)o&G1}%GOiMSeV11sw<~(8z8FZkjRecO+y)#Z za5#!f9In+?u=cn^4z=ORr8t0MXv$xeI^r?vZs}PoFKu@P3Ld+G^o7{FBN02m46a(3 zoMYK*y#-1(m-ZYbMC!lo?F;DKE4Lq>bJeS~6*em#lP3TNQQ^M!+aMr()s@P1EKqp0 z)GV4$7@Cm^t`6n8+%MpXT;5IKiF7U(y4+9Tg{+J*aa~nCP7T?3GkrW;Y?|k`*V_fg zb7zgX35=ww)wq|MrB{o>o?N=QAHeZXJjEH5q8_v!YZn@W?j2c`*{9#JFWmd3pv`<3 zIPmCxIlFDs4KkE_O|Ve#r~53`VA&0fyo*CwGfQ#HD6_ww(1F*OR8A|IH9x;5^rOL#pv^k|v)X*OdLREb4UEw0@0AMaSth@zxc~YN z$!=Y{mooF6@egi+2XA-01_;0>-|4`Gd3Q`FIJB1}HUzmU^RPGDRX90}pugEX2U%^l z?T%I270?e5%EPznhdLgLxeg*+uOwUcA_%<9-IeimZv?*XmJW8L@uEY^>jLAS11y1! zH&Wj>myWv^PvTv7CE2W+uOu}`K&|g1*#g%(v+mK39_~GOKfZr}|J&3{qd`+wo&*T! zdggzhdNKXa)QiVl5l6gXM|bcWau}rpQ!|CkpWP*7ZMT64#E@+>ua4*oPcPK{`$ zzUTW$UOjnD*&F&+>)EQR`nsa3s*~yufa+tz_sfAv1qZnaRX1a4eT ze|6c_b+oPOYO!N)8r`sA>_kIF2X!hk_S$ZS|v87RE|9hJpw7 z*tycbI0GmqB4KMo3gus&Grkxfdb&ScC~%_DV}P#hyqa5Yc@)}uUgx=gdS{*%2tqIb zmL8o|1UIGwl^0k%H)kiIiH@MYdrQZ}{%*_lh4zA2NSO?yULDnUOO%E7oE}-Kg?ltJ zAf(`&Jw83ooga@&%X?$n3f*{!3ftH09XS7)!<51RRQvtS&66+S!cW zBF?Mn_l7S(t6zjq#hO=C#zHFw7IGctN!7KKP+?EUK*z@1?#jSrsg+Qz?&EuQ%pA5{ zJAo@i;RC@l9!k=C$F&Z4JN8K+7c;ph#=zQdDK^6)wmjE9;-2)+q$@2%QH%wt)+z`- ze@`AfEja$n=V4GJE%XP6q0bizInD-y9LOlok=5*3xKQZM8*~;>4;?9=nz>svsVWhs z!RskKR=jV8Xq{{q&(zelx62wC#lgDPEg#l)p6pG88E87Bryp-uujhPkAMb~ymCEd; z90q=_#0}lj?S>CsSlO9Wbh{%hHvk>*#6g3oCs_E(J^u?*LwQCT6O@ULIJ5Vu4U$xjGo(Mjh zH6R+W63ctyzK#sU5>On7^5+;aK)cHbp!8;smEKXqI~(&76PW(IF=v@zpmCa9x_O_i zejIr{o)sX!Umu!*KqM`?(N3+;=uKhj@}SPKv>GI=l(hQc1e~Z5j_#iNeTdlLXmn|x z3D|g+E}3_^cYJ)`eu?uZVr(r(ICG7=k@ng`1~<&ScJdtGJ@@|m4u-g{v;x*H8=+)B z>RQ0WT%uppK!a&!uVHYJ4QX0Ds%5V7V`LE{%Mktup*%cVz~ww}xJ4hVp*E+9mu-tf zta8~R?%*f>g50*T&gJIu`Z0OgMf?1CeOjR4l1!*W!rGjKXp97J@2XlUhe7uuI>RQgM254ns zKxp#4!e82ZQGh&bGW*->=h)0cHP#HR<8N}P@)YxQf+u{zhfAKyIVNvX+*EJ)753wC z;XhFROvbalU}ANzUHLCpx#o~;Io#-{ZUlA-RIZ%;rD#9i?(yrETs14~P{~cii7bTEmQrL`@A}5F%_SGO*ZkX>{OpTyhu{qs z!fQ~aP_aDJ9SaCc%?unIAfEA42xhMaJ5JCFx;D*eUQ#uR-VBT#cDt}qE&8yb+$uX% zXmS5+EkS71ZK>_ZBE|$UF1D;_sMp%|wn}CQBP%n&hG5G?=|X=k_l5Zp{WgK<-cqx! ze(L>RZfe)3%Wi1b)qT9{$ui2mw7t4M0xJVI>A6lr^8LyI?G)E=mj0K<-$Oqwj;s=k ze!TG2#pZbvv(xSQKIr7G5PdJ%V#|WFntjpdWQRaRjfvt~4{3^YFMn{ro5fZgICp#C zl!j2US0WMcI}^3eNxtN%*3OSr;Le`nXRskfC?@0`o0uE(P+X+7B7~UUh1$aiQZUF( zbDaMmpw4JX4?hZT_HT1w4j*$0Ih3YRUFG=#b}Xz&4JO4)5W9P zj5W3LL!dn@tL4nW3#}5u&C%BOi)N^7eWlP`JxLYw`J73rYtZ(U4cQ9tt-bk+AQbT; z1yo=av{f*&tY<4-17|D`rE_nJ^s-D`_q@3xM%p5%4E7iLCb{=^8y9)e8oX9K-UmXk z0P9K`!?o(l)#j0@E3`Jm{m8Q{Av>_wW%Ut$-*@4TMo2VH+;mkq#R|sX3n|oEx(wK) z$aCLfY!RSGCt{$0%)CgSvea>a>j>?}5J{Mm2C2LjZbIooA7()R&Vfgii-0~hV&nRo zXXV2SCi>W17t!yCq+Vo{blYqa;=`EwU|9?i0IZ$T0&`qTYO3p+)QJ>YGBJCNGZtmN z3r7Hk-@6>p`GMJMu59}By-L5L_B`L1raO2|h9uB%^Fm}TN#?meUqSAtpqR5@K<$SA zme?!kc33i7y3Z*VFx>XWZ(P-0YD_;MjwN~0efYJxtG>5b)woLnU7=;vOA3t&v>qZM>OW%#MfSbJ=w3F%6zko+L8 z`FTxhQ_AIR+r#B(ZBrnEyDlqDfszq`(sh5KDhoj&$7PN0 z5SVO4-{`)P!$&nU0@-{% z{MQ|xMU35ju594%)rsFmuM3bsolVF$uDK<3Yk+OKqOz>5=c}xhiN|7sS;|h~jVl$w zp1W;QUCd?VO)!4N9)vpBt;%x*qE?lf83$zotyapDU_*lwKjQYQ0AgvqHV2TfK8Zar zPL{Ya**wi9$dDj1q~V~SC1uRxR|^fY4W#Zszj7`T|2cC4XS085IoJl0ySean%(ATk zeojd&cQ$Gijd({*dOPr_X?xQ4)E9ld%3)74n@cAOtGbg7$pcDAipJS%US-N#7vXG{w|$pu0K&at6z zncV`*k4`SGkH*)rt#Yhvzzx3}ZST7*gFd#>nVbGd%rJ3~-trl{p{+M^Fx7HnrKSm* zr0mI?sfgDYHMUd9=LcR)T)fYOfUWS0NcQj50>-3SGr!w0kN9H9!?@q_hvB(12>)(6 zZr)fhtxvJ=wB>wi%{nP79-28Y;%}Bf6w(aQ4ql#-4TZ;#lx9Y{i99*=hg~oMbJFjp z;P50NxQt>4-3%}Y`b8_Eu5!Z8)ZMjqZJgN>WO=alwelf_S+>m`-MH+SSr`gArE~%l z@BU#R-U<~EGOfpoH!cXpIo4Uc{^MN@p2-x%87ns`epSp&xGTW}!pdhvlVL;?uYn=N zS)66%H|h}t<#`tDu>kZe0&K;=vGtrT{$b_~Wz8#>xsEP{6QF@EMYE?DG^ll#LH*5T z`%Ic#7h&VnI{6w#%zJfs5XJqu@uOft=b~yY zF?pjir-|$9shcPmzaj4?MibV4bBl%stV5rOn%OBD-U+lR2A~Cw-E5H(Vpv0&Q5zY$7^}Z`3~J13+b>!>O4{O)XMnTQdezq?P+p$VOHhd>8hi~ z#TGPZ$IA=F80Qr{`!M<@1u(Ho>DG!IuNvi{W&FTEvlQop<533_v&GmtEzK6}(j%RH zr&LKS11`r;p_yOoZx1olhZcRpj6yDlNG-N-Z-;rD0mAmkPUY;yF-+{}ROYjyonubu zDm!d3*Myde#0;zND!<35jKlVYqzTSSh>FS#VfmA?@Ut3(FVgU$ol?$W(*UDkBSH&u6#H@#|BAhB6Iw?x~h(8P$vfcGGXii@mJv&A<|6dfuqy@#Vs z3FjuzRxUZMjNV)&BCPu!pO+JrT~Zix_TOG}_26WQ#%Id@N9R0cr>5+1hMRYcdcNtP zELNHO3vTOSNxvcx<57{gFe$it30^MYI5xj`;Yg_~4{(VNKacXH`uK@*`xEQDz^9Hm zC{bL*%W>JQsHaq5eMd|U&Z)p-gFVX^)sQNi1Lp$YL_Zv=_$)SyWEnrdW6;EqjBBcT z?kWnhuta~(q)LO7u2Q~ZlLsr3Q@;|yp?UMTzUnAONnL$AAyuJ=ccg?l+;4$%8! zNK%{F-^i8-*w_5lW7E%l#pNN8NZxT^?8ZUgrGwdt+Qu1XAgPMOZAf&dk`&$dG0NOd zLTy$cXa~;ZY`QLE<0_)+t0uLlMaF0B{sgZZoJqlRyCU?CsH6+yFYPwnvhcg0A9dEd ztrujvK>3<19F4rfW$t1~FM$9O$7X0ky?INxFy2#|B{S4|(@c4M_ynCjkCB2SP+iw2 zl!j?cUT*h^aR!8k7j#WFxA6zXg5%t=bG%KYY;NF;_VT=Nb87t5W!h2hWvc3e5(TN~ zrDNs;dsAMHa@>Y9e}W5A4CC7RLr)N&breO)$qQLIXY+%9Ov9f?XdcfEm8b+tuKB~` z?OX*$5lCljJ=yKzu`%N=TA~o?d9MVVysXzm&o!x>@Se2q-uXChAjf0pYS(O}V^biB z*aOuKBkGs*}8}OkYK}89f}6pJC%2veo=QCo&D~(F{QqVe1Uw*U(q( z4%NkRjb`E`3+34t*^)9--z%1a_9a_M0)*amUy>Z2j@D{lIK7QT1+D}CRrtJBPLGR@ zA1I>q(xOf@gsQ7u<$8+BK=3xNKY1hB1W)k(pc?goy*DT9HaW!nP>WqcS&ex4Rc7=9S`-LspLp>i%^1Vsd}u)1^@`h$hJQ@GW|M1di& zx188y+x}(St_}4p(3IMi@1zPf$>`@VC35xVcuX$tOUJ&q3M)GypIe);C@w0m21IAwU*u)$&9v6oFG9 zX438{3-*929NPq(ZpFfe0k+!FI-cOQoin)$o6al3Cz;leb9&a4V^?S^Cf?&Oo8ujL z!T)tm_i<|7CJRg+ug4~0Yhny-M|Gw&^QEyoY~wieslnFMzFRa6xEk8s=t80uoZ~EP zo=+CuS@oFhZX*wLyvzS0ef#nzv8(LIkWvc!wa77o#MQ&nGQBIe@p?27SieFw!bCYG z3{)O~)LcliT^Dv7AtnCuCLzTVMnI{RC=|Y5wOyhwOMwgSm{4MI{Yn(Y47?kODOP1f zj27##j@%SY6*Z-ODv^Au;$*PY52=%5QQN;dQTzvH+`TO-)S_%)&$#r+E+^=Z;ry9=BhOCfMhBGFW2y z9Gp(aXydrQgn{p;Krd&jG%g2*^q=x&vV7NEWzwqCz87=}{KL~$Yu*mW$&GP+Q^9M} z?Ib+lmOf9!Db?q#GYu!(V>BqCV}ABgGrq2G5WI4olD-@qc!M37p;8~{0&lC+^xU;I zt)9TTze72DLsb&t1~8wL18WnL1O?yj#M>TIZ4RHttQ;zf_GXg$V@p<)dSKF13IApl zZ%v83@;J&-?Lh~H?T6aQQ}{sLjlL40@`e!v2!|8&|2lr%3-L*7#E5l^7sR!5l@c@e z8>Cpx5VwzRf8jiZG1@|oAsU30fWk~p(IiE6zQy_#TwTRIW8y`XCQ$LI1R_Qy6mw~P`K9B9p)Bqg>ch5*)xl>6|yLl`gbqlIZFTQFWWmhR)slZ*B z^a!bz7;j;b$0SpoPY-8ADvl+t&>+U%pAdnrLrB`svAODNrbLiD5`~Pe4(vU_Oh`z= z0NCHlg642Ox>-zZvdYhKC7&=Tk+m{aCYn5&kTlAcsU;^ zr34v*0{W-F=I^N6v4F(`@NYMpAUXp>1=)`ECMtsEOBf4G=wEg!3W@kM$_h}`zt1H& zgH^~)8Ys;bx_lhTs`sMIGFB>nh2`tnb7~Pzh|sc4YQTMqv};&i){W|;KrTVpsk$#Y z+>93#z99nCx!y*<5yQI@5XUdwU=eabH^j`!rsGelp@97s<nj4O^XcgYzhD50{^2eEw`?@$uMtEmX|8SH3 z>#WH^OCSrWN?1kvR`7E);f*G{VAoxS{YI-jjwm?KMGL_5L_PPg;~3eCppU8dTz{j12Ztziu~M{6jZVO03KC^xa5_YM(V+MO{8g6Ql29jpJvv- zN6|HIdSXO5hTRohD@oHtivjCL_1lItcP%mL^IpA-gU*t-4Frg>qrg6sNp7SvAqVD` zhAS>unShQs$$)g z$lEcr#6ITi1;WFI_fttm|FpU0;2$oo-hJGcma%*s8qJ9wy}>tQ83fgot73>@7*RT1 zAF0kpe$lczw75B_CbVV1w*g_FFaH=dYuS}$Ix|<%ag+wyQdGXuxq?G-^lb4pFGPvr zkQIs)zGb4WN3##Fo%??HdmdNai)*5?vh9jedabY=$P9#ewo@n#Fbbe8b?NBnHn~<$ zR>0q6F6sQ3pyikHApwZDg>6~B?n*LIFBV0(%BbKHhe~SUPl2Rhy%MjU-`^MJ6{*=u zC6CJ3R`=xKq}_QDnRpj>Swfn{bL8x>mOYhh^89H1^sV1Ao5Au4q(n8-SxAP81*aX|sptT&nzL-w& zWXd(J?~o3r^2B?0Q;fcMK^NG&)*As605ZO>KW$;)WMO_jQ})Q0uP8upR~Aidr5Nw8e(@CTP`(P0jb*ZsZ%+z z;C@!Y2JSVZkrf2HMJ?n{_uTzyoy6{Cy(8;{Ei!4+l5$D^o8i@+vw{Ir!JaHN{{9aF87DgqhCdoOf8w7d$j^jB z_ILv29N^pAV)nE4PUxu`i$>`X4SZ8x@tvsK^S>Z1Y!`)aN>)jz#=uH zeP+)G%%rs&0Q-LA+QRmjwi7jdm2duZ^_WVq`oX3Hvb7O)nOLS%YwHn9MZMq+b%C>0 zhppO&iN!mR~dc0@c#IxNJoC`R-@1AEjwKE$DRyvdH@vsFw?&R{uhg+{_QH8FagK=ckhF<~gd;G->PsmA$acaVc%j`d*>R{N1IM1+@-36Vj>3h2`x* zjQy>XqXKrtPm#C_o3`0n)|*@G;cw4*Jj&!9at>a{21@bPoz8zy*xrS*_IHgXp9h}N ztG%r(P*@}Di6c{C@Ejk)B1YqWQdGV@0N(Qu&kP&YLnGF?x0G1AG8;EA^SpGW2d{zh zI`1sS2Ow$dppk88ljW_CAx|7DC)H0HVtjJ-*K>r}NcLQ4Kj~0C>v=a{@~Gna?Jh|x zxHUM@lQ^0*BeS7{mOR25;x|Xa!3}AV zp7op*qvu+7n51=VvoTEiDMK>KUJTa;7aF$v(pb248`qZ3UAe>~YcSj4!E*|tim$FObVsrz+HDU_i2DxAe$~IM1*00v&myA5f z=i7#$)Iq16^oKU1t<(;!Baen|_D$AgvM~7ot%sz<>grQfpX?t>BOrFtSw~u$Cpd?=~Oo;Zl!H z=+5NRFu4>T6y{dVG~Zg>BqWZ~yny@Trqb=~>;`_Ehc z|GUp0DR;pBWq<<#;Q;~tGok-i_c;T{{|Ir^H5E5Tk$wIue-LzLRU}J?@i5JAHV|nJ zvi2$a+gXJMm(q;DsiCbohzG!bT*$_X7|vkkBe~3M+y(xQ)!6!aI=V=4``BnPo^MxG z$1klM0CJU|Rj73Lz^k=E4D8rHZi3S2>H0X+wUsq>&u{Q)r&_ES)wJ87`U{6HT<^1R zar6+ZF@1l{m}6?5vyHmt-hNrk#&)OmbZscNO#+p;?SNhj;&_vJIk$DDQO$QFok3$N zye$pbkQgG&-l6HErsS_mEjLo}>v$v9IVo;td-Gsb4ejGpY#YB;zP-LOV$iJYeBZ!^ zM*zicEJ3u4dygx2y~ulF&?y(ci|Y-C(-^T&u=15&YB6}Y*xKlpNLXIex5KZc4O|Y6 zNlXGk5|;ogrY7Z|No=Po7Q-Ow7e?KSV?vj>l=#Be#fVgZa~{Z+oqdNJE~$A9kFdoM zCW|#b^tL$sTk;UyQWly1;xC5@T758(=VV0STy8nNX``1%n~>E?aJg;Ey`gN^*e;!9 zzp~_+HE4+<(CDd!u?^f=bu?u90k0D8XN`TkmERDDiS9hi&3OT&f_gDmfH;ch_ zG&g4VxMyTBV^PG}0n{~5`gCj;U4W6nRBRq8HUa{oq&aA36J(8-IooINJ=G81V%203 zw(&9dc)!r9t#a-E-F=R`8~9IDVH=b^eN!qat!S+OnSk0;Gml2m?itxOB*{A9{1AFUxowq1K+n#1@FYZwHl=y9m`I}xYkLHOE z(*(mrqdz?x76WiNEr)t+(>nujYGXahi}lPKPEABMj9d3a%XNUA}&FDS9Ur}!$j>oComf2gugo`<55t5dl zpDZla32!bFRS(hP@R7E~y|iP3K`DE~$;-yZ=HBFF;kj`As+?rbfbVy;)jdtnFIO*g z%p)~HXrN!9QHF*e_I-MmSWelI87G#J--S^V)x^&<`S7R56E|k#g03I}fShB~#=e z+hX4|r(z_n>%Bg-G2lPh+d(!9-v3Exsn+hpq9IUfR}y|kY7|NBU7dd9l6(>@JR@KWH7)mPtm4Y0 zp8sn(qsrt)xCGj_qIm2WH)Yd;@#K|>4`G;mI-XfFOmo?4ESjxHNg5DLoRHP$SW&r- zEJxbvmmO;0#y;{ZS;M5G7?bO(gYITYcNw`HfC^2;5Ka28cd2aAK(&xuQssEG_X1`d zY#-GS-+{E~h3~yPq5NU>{LJx>#U_0;RXtWUf zFwPX+p2$s104unO<3yj79^?HAawx#fef6-j&oD9zCZ+%i--H+rO(b1&EHeuQ^_PI4 zg~Cns9y-UydjL3zu{X;})-s{#YBMSt7*p)Cb(13$Z0atYKO<>Q82B`_slq&x{A9r_ zVhs2+S;%p6mH?OB;e^^QoSZP_VG;~P*Ck6dIBnjqyry1tv1E7krKrrM-4N>a7y+>R zbCbUP6gb7On6GC>V}C_*aZ)gSA%nyEgkT!+Fhcg{jY=F?uKln%Yd9V((2gh%CMg|I z6gNA~f=tvBb(xBip z2O<)DMmletL-=2fqnX5Jil4ZLaQ4J*sAF=-G2-e;Qyi%*qw+;3%PBLR?M>pg8Qkcc zA++!$_`nxuIggK4d4WNKk;V-!6qt=43x%^L*_=E9?7kvhhOXZAo*={si2CMcbDTzf zhST&2f?Wzh0`#%hG;TqDC3pxWI?igZ`C!;t*LL3qYyMS;W!{F@#z;$;E`^mhb|*9mWl9vWiE{ld95DQ9zkH- zIQk;RgUG*rTWD(4X1mA^I7hC(%nkHV3xIi|93_YkhSu7v4|K#oQ!mkqTnmhztMr>{ z+_%Vnx}n{LRMMzYczZZ`99p7K3PL=@8U7-M{-_k)C-;?YHS-)$sx;j>hW!BD$I67L z(PYv2_evtdE6oUMrZ35qybwx@>IiCrq!5LYLFk0{lZwO>VOFjaR~rruTa;_k=tL}F zu6IA2CEL2}{u=&%xw-TIv7L1N0sn7YQTBs-@b!-?zM21beJ{)ZV1=fp;sHCl&rZb` z;#$VP{)OnmNZWH_sd^-{3bTwWBM%P(X}K`VM0R7G5>KBme906V;o+d+%R0?he$-|s zCnt^_*XekN+liJX2fG;nxA+PPWXCAh?GtsE_;L%$Nln^~==5&tz&~y9u3;7iHSK>Sm*$mfdP|vcVxBu2UC(vnDcO% z!xajdDBQW{{^V-s!|32;O8?dEuVJe0(P9sQF_s}4aUB`ElMwgLTgcxFa?D`c84GG^ru3CscHYLGmjtm$viLv=-(vZl zvWW^SkJgrR0_TIragy3zhREHfjamUw6{>tdoV`>*l!~NmY{%&k^x8wRvLZYVp}=n@ z_oBfXw`JYJuCYVgw#bj+)Go#9ATj%VA<_Q*&NP$w_jTm4M0oyD^RAI$6rv&3`_O=Z z2*eVOWHnUws?ZN{%E?gv?O<-DEAsAW+o^9t`R6UW>=sbtLQ|sw8iAC+BR!&9N-%t4 zN>Ebq#kDll4CWYJah%M#kqFN?i8c?R`e$MO)L$5TC-5pui!L^G>~d!bJLTc=%)(1O zX1C>Gf=5t$jZm^rqB{!L53GzEOIG$}+U+iV=7pD(ZOJGbUt4NeMDt0SdFY*4<~3m^ z;(6)s48?^TQ#3$R=jyTH2<$vCKefcQGYsGc0R`6l#qs5B_uZsaRo?<_Rb}CB*9PA! zQd3eKMYI^wfNVT2wPLv@Nah6d#e7r6TM^xDtXD^9a9}a4YddaInw5L)Y@H(C=D(Bg z`k|d1<<9$W`7jXJLgS*kuhW#2ks|6U>@f@+JA`dXP}AVl6hA?j^38~s1wy_4Dh3Y-aLDX{w5}Lo{Viy-wUvl9EIr0jVopI!C z#`0;{?X>&qY0^OFOU!VL5<3iCO(bKKk{&BFPb~8&Xzq3tW$N7`OA3M9<&^*BI#TI}rc(!9ppl zw}A6zC@ojoLsaP>9itt*ND{gQ2PD=~t&-xNt!JMGF<)D6L{=CYYU-jgA`9{y*h})T?;ZF|ToxChVE7LM z?NRs_rSSIYqJ_u5Dk{u`5k%AUQ=fC11xbx@QYy*G3exh+Xoc$*$d+3M1>7D^i}ctG z^n(PYCeA7gD{5juItrV|YFJVW-IRW2(J#73ufyMO%JOUScX4>&Lex}4`gjspcnYP zDPv(i>RjBP+@}Mju#qQ@6-_*1NgcQG21sM3cybZ)9wtRiRXl?|*&_u+3UlYaE18tF z*EMF3af@J*Zp$4SiogwQ#T!`dTNGo$6v4U>2#PG{vRcgds|`&^Oc8vpVy5YIo!j5ax@Xj*v!J98z3~RqI98LA(hXLUvI< z9?%=Wy#Brl@j+zS#lc*Dyq}Hr8_n4MA;|xsNvfZ>nj!W>2STfD-yIftLI3?1B$l-s zrxf@v%)foh>BniA_2qTSd~jZsDp+yYoAf0*7Q#-mAvW=^U&{5BGQ4zAdB4n`Y|t7! zSM7fPz{-u$FKt;Dhvg41pN(BSL`^*QsiW_Z+A%)JX+Ymox+Ht=E5PKao&F-|H`-xh zbxik^w;sM={7s4?UXXC?cJV~`Nxgu*0ZAn>StQ0ba>h6%)P6)US#WCdheUyODUk+| z`Kc>y241g@N(SHtFWSBViR{r;$t*iANTfcoq+|}KigTvfa2c9t%sF~_db$B;Sk;m= zk2rw&(XEe365z%>X2>KJ*I_aI25g88)} z2R1MlKj3rQMsbw_`Vrf)o@S@FKJ-(v#s9`bYBoaOju7Z=d^EAR_Lo-2Kbwi|KCxJL z;EbO@Yo~zgn0u#yRghsNetrE5*s!FY;SV$%cnUK6hyUbBF&(O%1d@01?U>2u`xT+e z3)IK74wTT`ZcAQgU3rl zuZ*3$>~5j4LB_9q+@0R|a(Qu0MY7|RR1)i;xg)Nqy!B>c481G&bmam-fYWZHsr&1P(UluN#$?X%SuT%73 ziG`j4ZVWVpHoUUS?&4R<-8s|y{w>q{+|$>FH>Y;oxitr!-&gk;-nlT4p04%KMrTcoEhk1k#ikuUlw|~dKwWs!xJ~$^<{c- zG%0B3)k!e#u$V+WN+vV&z2zjBw^>68!*?UE|GpI;BQhfW=A z8DpDfd{^lZKlLKF;wruQz&q7-a-w);wxgzJwxuS&yax;t11<{RJ!qy&>iGwr;)=CM zq(+J%vzXgOkF&fq;4sE6SJp$dA17~aEZVXqYt~w#?cE&1?nP}foqJvx z(xzp9M=xK_Y`Y#}{~5t|hM}kr@bMr<<152U=0?mvtHj%w7nUmaoMe$B? zpdmt&{4L3RQIf2S{t?p^ObYN_`6|T+WCsF=%Rgd@864P%>0D5*btxu0y3>x&87dnt zj;%)gM@(%sn{w^nj91wO#5*)4)%;C}oRh*dsZN=d0Q@D!5AFs@)$9Qoq%V#olMRcF zh(*qgF+FA_C5jC( zLF^)VpGRvkLqLA)iM`hAK0$VPkc5$x6sSnxv3b0(`lKbcbgEIlUcNgqmz*T4v+))A z{N8bdjW=vv=-6?17Ao5~a{v^-(1VyJQj0$?&fz7a=){)ED<7LT$7tc*i8^bS%xn&U z0fbz;chEaAX?_B5V*Y+SjCDOr42!Br|vd50tagQV__F`r#vybmbUl`$)Lm%D+!JL+`u3Vkh)$zvjHwF9`_0cBiYOj;!Uw z+%U4aQ;nA+a=}>3NVk*b(mvh7*V@uE{hadL<8MxBk8?NV?77F!4OiYkqLs&nj~d(C z%iX@U2Z8Lo1oehz$;clGV)S5AB{z90iFISJ*}KIF8B3BPeMx!-LOezep{j#_7Dm2$As;R3vO zK+Z#)5AD2y?2$oyJjnqu;Nc7OJC`xy934MSXW zbw+wJFZWcc8KEbVVaOB{7@RbNORR*wlj~yIGL7QvSmw11uJW1syG^u+u~MU8hCpj5 zT~R7r!U^>8KvwQ3fqtWcXHJWw?Y=LW^tO3~TX$J;!XvFCjq(~k3Wy6pALJLQk%);t zNzj}m&jtKj>?javkn~f=X602c5_U()v7w>>!zSkya0AL!P3ICf&fm&-u@|AS!~D)+ z^!@-kW;4)I4Nyg+lf*Rhw(C#H&j#IDO$UFKG*t)d1 z8aaf2z-4IQ&QbvpU39{-<*_;FL1dM4P+mcJ+$F-S2TEfRTl zfg~DbU##W{KYBB4wW{$N3ZPy=tT)C!B8=g2DLJvt@dm{RttVoFmu|}{RIbH}dq;;%b zDg!$QztM|cvOS9W=v?IPuEw!Vq=W&yo8r4qwXNOG{Q)~W6n?e2Ktj+$nFKQP88W!} zk(7M;e5?gUujHS$r6UNvAlz7bDiG^@Z}F37sStIPR3Jr+jOzOJvh5n)>4vh9FG4^B zz=tG?g>u{|6Ou(mJc8UoN3Qhlxa}L>#jy2%uctvvdK~kAm81YcCH!TcUCU~YFEg}4 zp^!ifdtHZ{D;jB@H_T^-0Z?miatfLi!y%M<-E&RqJrA- z`6GK9uKtI2aB{u9S+s1Xem_6SP#X5}f?3$}=iOV@@+xW~r7rz@M_%Izkuvpcz;oRp zGR_dI>g82ibNz(8-nBhO*L;Ii8 z#*`V0K|-X^o8WH2G*6bqFWu$K>bjK%Zy@naQs%k52B)2F$5jEv@y%mW`TLL0EKHu9 z?vnb}wzQC4_&ln7yKd;KT`o|9)Rt5p)Zdyr>kMwDyVuBB=O?8H9XQq{sS1B5%kxlk z;T}0=YBfqrToa|KCZ`wv6_bpactmCASU;F^l~y)vp1*Q|o(r4U+rSSxN`6jwli%lF znwuGj?PVyVkbC2Z`3cl(g;->WxWqGBU26TG_TGZ4j;w3f#t8&>f(3VX5AGg3Sa5gW zSa5fDcL^5UoebN?aCwsUTV;ztW6F+F>~%e-(R-o@vlD zDoPgoVb@*wUar1|%O97{|6pxyXygz#{B34o zmnAPNYOB*Fp?wW&tm*7C_e}-Xnuj?B)*6SUDQ#9|p_wNZ=l)l3kHt%00+gZPfJP|_ z0)p|sM(JQ;XlY3Q=l)N7Jo>U|wZwtqp`-gMu;(1^*p6ij)wCdML2kpXz7>6<;%r`) z;6_>(`|~T`*YBA%bM5nq&!Mz2G14IxI$uXgz#ZUvavao@%cw9yNrx&uU#jWi7R#(I zN_bNC_)Sqssg0+3=o7_a5mk#1Wa0`$wsFywlksHQj7GM0XMt<=Q9I04R67=YdadRZ z7K>G0v_e2cNWoqb9RdD4O}##!Q!-oRZ`8_@G`q(5tVXzh2nnTO2-_Tp)H&|LlO1VP!+ns{1*o$~)quOn$CE zD_J{L{cV-3QfIk7uqUx*vcdjhQRVEyk*~D0K%v@*{u^a~%&X*v3CpCDN+~?q~4Lo-og;iP! zD+c?{6y#NK_DIy;qlRX86fZ=V$_T}$4=4h43L&w{!S;3Ze0o4!aoWx?YDx-xdba!{ zy!1%uQ*G=O#x$oHAyH>s0W(3_9biy^FS@$AVyJ}lyG)@9wDf0mWslRm{8~5MNtD70 zLwKd=enwhbFlN-SKaL;zohSc1VPfv||KkHmWT~xJ#tGXJRcb- zgoIc=9|Z?jycsnd-LXWL&qxmm zs1eCL21OhQ#N#c9*i^8-Q`y6uxm$ropK;xzDLHzD0zz1*Ss}F%M=0c&WkQYk!~77j zhoo>vQAk?)oGbx6JKOWn{uIxm3DCk;$^>u?)&*Xovyw^@a|~7Q));2s5M!g* zMlU~~W2jRp%u^Kxg0lQtqBL}-3m+PcMe<25 z%S;VCRHGx2Svf>H2O7^k@_f#+{?jAAvIa^{X}ek@S8+p`KsJ&y`lRIm9O9QH z?Y>=F%jT2wL!DYy7*Zg^FOe-r?UU{rtiIdzoUTOodB?%()OIJdgfe;)|_ zy5LD$ElUnxR(FYJwGr{fkdO5YQTu}rCiG%f{c$r*g8XfB`zc6c!q?b$uMPmNcQyve zRkPrA%UuXj)=>!&Uu4gs^oVCBeqfPRJl~WMUF+w>f8W3ts~0$SWi9mc zXeWllX+L&rD38^+?1tM8IfTrkIqBE_qlJS2| z1~ZM~P%L8C8%BwGuzaWGQO@=cAx%R}s=F30F1@jKZBD5egEI5~0B?Wvc-zs(e~Xab zB@sr@Lr5z-VWj^n_)cfREmV#|{1WVjmXE{;*A7ZTx~}}uv%1%pjF<+AUdWI6i#WOj zOY7{Rc4e#ARq*MG&aLg5%{!CFyAWsA$GeB+Sz1rL!*A2qD5pQ>^L(V*0>iPI$73v( z2u}Pkhng+Ry?(Ik-v%^EU4%slw9AG%elrXgH`R;t9}_m8chJ{l8!9jh*vcdCM=&H& zZin>G&zz?^RGYKXnJgRQ$wdQLHw>R67x%=haBv#99lx8C2 z0aC<}vkdbybO!MZbi9eGqqUmxC@tei+*%F!0uO%%Vt^qDR-1(K>>*f!H5HqRNnG;r zrFBrE{rfCfv4~Dem*6m!eUmA0BwSdc_h@rLb746hy73wQi9<4MZlbkgkIMcNb;%G) z^?nJzy(D6T=i@xTTZdyxCA)~I-G;5gdKEe~|t*mSx+`o*h$x+s>&kJSm_p7otAfD3wlr0IJ_=(5lI7o+) zp%9qJhwiLB3hA2$SNOaTq{LpoF;>c$x%%Y=G!;b?pfjpbkkAAnTrO#kW<#DqrT1p6-w_a9AP?~ zxqP|D7t)*zFV+>v6S=b^Xk$af@p9OGH3o*cMDABQcB3`TmNv&I-5)MkYEK}(%Umtq z9(Cgfc(Ty_IdW#w>%0E?5%rW)qF{JM zHWH40`6hNWWX8}3gw(o0ieF0fCJapt&Xet~x-IC~ZGoKUxw*4ytmKbK_7)fK(xpEd3Eq{@#CwidzmHKF185D#C3@&u5*T<1qgN#UZFx@)qCD)ti?M-}vO3E%b zI6N$)xG?g6JplQIEYSnP_)feN`(pp;y#&53--OQOgu-gq%c9mKoX!zqVMV};&B#^Y z%vihJb?*zpBtb>;%h-p9SVSp3!Qf{?C7io%)=2^lAukPw0*F26#;^*vk#~srz{-oZ+|O2 z?!jrv8`xCKA<6NiM20=D<+4(s?n(Tk- z<(fv`B@~Bgn}7g)!EO3cc%K5Nf8T+lp%q5N{39BvWIx5=gb9aBNJu9=!OK(O?Os)y z$fdaVxv6bXfUmkb9dODJg6xpHp;aHG=)yjD!AX^!EQi>~`2g#(JLp3s(btLFyZ=di z9Cu7xn(Ukc#fo95GZ4x(>Ju~V`z1!n3-d584fd}9di@5X%oSG&I-V>8j;MjvwYBa? za0fMT5<>zyIKjKpbu;ht)`{*y(j}0@O9dh5hc`Vk4#LDXfMe{qz{A0P16&}!Q8Ffofa{g@)Uz@foK4M&L=&Ed z+eWy%9)3*}R+t^mhjjY85cJCzrSitc=FEakE%p6k*k<`-;g5_=(C5wg`E94vZH99> zg%H_A$xQNQ{t+g_DX3f}2ChzON)O%_Sn)`y9r@I^(6lGAoMW^7G(T%ts3qcJsmsB` z5=qrx$|hABK5&#wJ8LQZ5E>>7RBtVFy26Gp@z zr+!={^%Vo`ltbszN*B$!ZIL-ebF#Kzu=yGuA_~|c{)>ewTh_I%lZZ z6Ly5jTCO3=D5uS@_{|9$gg8PN=o1c`%6gw>PA6Ft4*KDKMwDNfaFnExI-3%wee%IfT2V6HX7IJCkH?u$b(6;w&;GC@8x9U=@{-Z%_ODQNvYeQMak_>#rjK7!e|iM;n{4cTy7f5!cd;rv+a0adPKF zdWH;PM-Cj)tK!3Bq8TF8h)Iw^Y!*?t=+jlSF>HB$8|YAdoZnAm{_sd1mw3*LxLa&* zDK0?FUS(+Io>Ao5M$Of3*!ND6o*0Z%iiYzow@ zI2?q};BsKbT)po|$FXXpF>DRfgjL6j$^vImNc@;Ttl27ryNX)22tZuJh386UksVdA ziounA!fsiWsq1CSt7@92k-n&D@&HwNpE~1KhBHO2&-fK$@c=U{@325ZlG`!{Rwoc# zQ}xP+L2ymBS7%+X4P=sX!c=5W6sQET(C3P!MSqcVrNCGU=hsqF&Mm>%)hgfjeOWd6 z)^MjC&$Ps%O*^WT-)7wf2gLdLcM5loKkgG^X&ry6?-)7Tw;diYP0K!j>Dy&=9(@rjKVG4;W|fLd=s5D%Ql}tTTEhG(GXH$rC__3|GXxSJ@cWSP9uXLB;wfJXT!XDo8npn z+{RTsMUZAN1&3uiJv~w9tD3!Wp{9n#O)e(qswb2lrSmsP9Iw)ELIF}l@;cEP6mtEm z+Hkf-%XF3PT|ea@D;hWq6TZ>jDmOwoR&AV$IhO=BKn_M$roVX0hD7{mnbe_a-%ihD zJ?#K>;#ZIITWIexJkTqmEHR$jjBO(~(l(-Pn`%e&U;FB(E;Y*%lX$%5pP8u!i0i zIFTSTU7=6UhLy3oz~&OTm88o{$J5wk8PfFiE+FSa!LC_d&8K|a=H67;4mUj#bJb?BkLgdD^^M{q3DA-@noKbl+gM1g_RcP9tDQ5jeNrRjgX_#@_H} z4w8|s-)>0YJ6JRm^M2J&Wts1*%2epCG?ubvwtccQmwN(gsy~V;8;u7kI3P>d#ow&wj%s6j>E=ob0bGGsYc zHlgjqZQDTlObmF=uox>_R9@H^g9K9#4-BeEK6thLO5?rjP*o#&=G6bP{p?ZY#P%|S zCwUT^zVq{@uz%h~QJ=vg6$0*ML9m9E-upuR$`DV|eDYRU6Om?o0$vLScbM^KRt3VM zoWlT#W6R?0EHZmA1ZEAcFlx}OxLT_ z`Bfd=y;>y01C7miY8TGUv~F+vyIpm-`FWH!v!^4-SGRn!ulv2gpVcb8vmW*WVw8!K zS3)b0R5KMF{oeUI4nxpY4?5u^8O$1dP#xrg^(M$3PR0BbH=Epnl> z>FBNsjJ1AveuZ#Eyh_cJnfNH%v`4BxTrX=d7`0V9-|PCVb?KJF+GfS*me)yKlF4-3 zaj`)pv=8!w!UG5HFF0dSp@VH}g2cwFC>2K)3}SWn>>))B=^;~^TNQ7e1NuNjX%i>5<%528@jKquS%!j& z9cMjl2}BBlL8|*fu}W?H>`ja)cA+mQw#vf_M{}XL%qpmpSFceztpJmVVAeuo1@j%m zk&a)9^LbQ1KwbExL$uk7E~W-eKkJ zl$5}>%{^4Q--uDaPlDpdnP&bv8|u+}!-Hd#+b0=C!a&-6i$dV(qhDJC95Q207RnlC zQMLFjh(Mqa>qj}Vud##>@!DC+!CZ4FNQ;5XF88SNj9j6v$}f*eX~+`D$7e$UP-sk> zt^`8mc5&};6v;vY7WI-7r)|K-s&ek=ps;g#ztj&S^J#n_h| z1*~5h3r6_*+4c^494JW1|nEYHrtA|C#cZ(Hrd38?c3srKN%GQrhzJ64KQb9qD~)yBz^H`>b1=`jZfrVV%$1#J+bk~|{1 zp_HTv@CZQ()yvH3`8rof@!jo~QqrRS5zP=g1CwLXXALz3g*u9aG3sYbmgK9`kB1|y z=4Ewt78czQyKT~k)-n`tT@wV*`lytCWiBDqfli?~V`t?6b$?r=OTU$rDPK(&7IDK8 z3&`N{VlU1F?19&pr(3Vr2gKuM_!d1MOf6W_R_(mrCl*WBHLljS3;IS`{r!VH3ygVT zo-P<@(R+ZFIQRKW9YNJyszvh5gyDlg6J25vQaBRytVQJI6(MbPzJo0>$ZFbyF%3u2 z5aL-=EFq5{2*GNa-QBQQ95EhORuxnm98&c^pjYxN~oLByQwZraP>S!$QWW4e4{vdstvif^ zraf(6UcTkOKq<>O(dW3Hw0jH_^AXdK z5t=vaYhlxBdT(0Ot^2pd8q|pVaOGvA%iboGy$cf0;rY`$#?0)v25g(-v{-GU-kN@l zptE`X9}2g?ow{6RAdkBR8@2n*oR-EC&cHe^+hHD|5W#0$aN^H+v;JmHm;oW!qCOj% zvUx@ImH`r5%}p3jbLe6(@!-ZgSG2zGobQ8GBh(XiH+LB2G_$9Wyb58KdUzXic$LKb z$Z^BWqa@9A4s>YO6#IJCEDN%?y}&VLY{x(-!W? zru*pQnLz0XVdmAB*R|+6CSgtlMqA)upjDHbu*Q^rg;gD%b|9JUO*8RTT{9jsRi2jd zJAgz7BOEVbq(75x1L!)bn*8wLjpTmz--f&Swdl;1njafb=dy!PFSGy=DT?QJM!Elz z-rv`%LMM?DYr>pNiy00-1h_-12z^3xGo5XYTj#E> z1!3{ZPgmUmLo7a3b4!(T(bx z+k>Ms7FS1RhevQfb7*~xc)9!#doq{vc~H0cXNI07GZuLj-!w=9_6!@`Wtk%?E(sZr zxk31`ddyE7Cov}}D>bBMQc#|&l5bQI5OtZ+7Re2W^I4*ax+hVr)4fVm(Cd@kySN?X%!-F|KN9&H(yeb*dhXVCvq<@& z%ex_I=X41~KcqBU5mblZQcFlL%k$tNgd{f=Qnn@cgkbCy>^DK-lGrb-i68*#G^^yo zG`8SCXmvY~S=`RIhz%Ib14Pap9Ld9I*qPA99M`3>(>^MJEhD1!NBXJ--omcJvwu&K zWqWanx>R4)ZSpWf@j{bhuU(%@JMKzuoU<2bwk^6-h@vPt?D#?pF8iJ=b>AwVjQ^?y zx+MfscfQFKi@|xsc1_s8#Kk56DGotIQu(%3o;h6`L<>WaKzNy>xUpmiy@e_ZN?Z4w z(BKKmdv*u$>>WYh-X)!jd&j!XBKur6feU^a!nAXT8(0G@&8Py+a)iZlRXPKM=AjP@ zH!0)8r!JhW!QE#NVZUb=kN0KhA&yadn`rGmyz?W|9FOE^U=9F~w5{hmYp=*z1dQP* zr&N#HQ9gH)*s#092w@A0Ofq+Z8)h>si(~HjiA(Wsj`#D_=lyZo&3q;aohkgg{!Sdm zX_ZOQ`Bb(hoxd~R5w#=MWG_>zl~;jRg?6#q-!=vlTgf9?jemk3O$E_>w^L$p#v3QlmxC@RLIXf zN6|?ol*?)L9H!w1$lIbTup$;Th~P$QrtF)P7hOMyao;Sq1r_al!gHMjFL|HdVG{p= zZ;D8z-G^uSS9{1#EcWr;$WNq3JWOl)hx25KHczIY;%#|bBQK!Hkdr1PbE`oUAFcX1jx%M43v zz31M%Noj+BntJ}OE#kIEBE;`-|AA0YuLhIo3$vh~3cc_JAt|9kxL2Ez zGsNSM2B_Qlga)M`wp@t@BNmu)?bt15)@;%j;b&+1T`jo>OPen| zSt5QX7?geAb+{9q+q-|MLg*NlT^5kp;+P?ze`A(zy)6ia*nc>9ebYz0Y$zi=4Gejb z2L}N`{@>^lXHzQ!YiIjE0-Y=rhpo~W(3VvX_^U3dl8ghw;1p7W3*wuw{1qnY@EW|8 ztD-H9V%kq3p;%0tz5{+WR@z%Sy)M-Kf~iH8Ea-9O-SDRQOlgoF)2YG^V|!9FnmJb! zmCuEP0dIF?vc?wPeS`)+Um9+FznHp5aUEo-muFn zcb$T`%8?w}=heA$n)Wkz_v28v1$iRfS-XAE+TgZ*sEhYK_mpdCm@RngVfbUjdpeZB zXs5Oj&cG>i7?|Jqf62B%m54>&P(i8!Px5AoS!YpnJ1{+zs{Ax zU-dDLLy|9{6uL@Ij9Dm6qy-tC)0I890Zvb<-ra=u9ti1ha8$ zv$Biuv}r_bzOt%gjex37pOKEqIC%Yl$**mrhF( zS$6T()U@9(bKiRIGCQ9l2yDGzP>z{Bmv=Xq7C_)$ZDb+&vTMaT=G8k5_o0~E+xgsHa~ZbF-xQTcIwOTS#{ol00E|Sa;)}>%6G+RWMy!a z?1rEF;#mTB>=m~o1_B@;B?SA#$;P&G`{)n*H2*+OMrLyqdH2rITMXbg!0_^l2_W;x z7!&*M(71lNe{w>HkQ^quiL#$|)^NwVXi@fF;2 za;kcu&>e#yl6kEfis#oti5&@{p#0*>XB@0q2vO*rVLvTC0H2JEOkquRf~71+tLuCX z(6tqvp;aHI&F{{oXRo4?Ah}{tU&|#8U;82=Q*-z8v$l>-rnXuGz<6joeR#Go??_mq z9l+VD?Zs(m?CI(0ZlAws>8PH9kwc2hCtEm)>txrw%+V+qljq~DMiM`ik4733B4Ssp zRz$MM9~ud5XTl5RtH)r#lq^jldWbA*e*hDRm@7CU`N1%1kf(@xK_lPdQrxim)wJpqdh$)@ zj>536%!1pz*yr>+OyUFq!gGsP8a_JeJ2e^%*~x_p$^YG5W7>%NdCjUX*+I_5K z@724-b;Wgbm*Ka-n1l-Y zo7=eMcTD)O4Oy;~4~TI~{FhWUS1a@=COknng<;|TbMLpnN%N@E{H5cmC@D=1rH!QF z;?clSGk;>yFiJ2|>-85g#UjOi9C!Po!c`kJ)H}Yh*_>FuQcLd$Z)nv7B5_8{g%&D2 zK7J)hB?@@AiVO2x$a=}^VA_<{uU_$)%-EQ`-%uY9^9L0t9VaIz9UUi*5z~?yd4F?o2qJ1%!0)V`_CRmEmtwD%uabE z;c4{Z&rI$2Duds@AMUqk`Enbb+p6z!zkCYQT4r0nO}TW!{>97ga7^ngMmUbzGKg)> z0k9$JYS&SddB|uHYQUYER-fU144-A!wD&Tl7ysyXRFcq4@FcR%y;`z->(X6^Xzb_r zkkQ+}*+YvG(aj;tyNV)CQ%H5@eC-Keh63;J=PV+g_$3BeEv1^E!AlK9g?v85t{LJDcdgYx3d z-fBFQbQC_1p@s)$lx*)O$0E|Lxb_BicXwx>>gYRl2jyE#*^C>u7_gVlrTAO05p?vA zq&H&v)$|$go7C;`a~SSLSp^C#UKLjuW>(zmJL)48+He3knt!%pm%T>4@Z6rXpw!$+ z^Wy5`N5fPYXJpG@CP_t(ZhjI!b-cdt9VA`v=KjQi5iVCXM11C7yo;PUW!;=aVUwKJ(#WtIjB8BxRKi zpWVGfoTq?O>YfitJ-+z%p*j~|lz|O=D-G|Q+5Rp)X-Yy;4l#gNfEW3!Q%EyfJWM?d zE3%O>Hk%=_v*ruu2a!ntFL1FhbHw)R-VNVLViYO%cHCA#@2^{J*N0v$e)mufJ)32; zZy*kW>VW9=Gwd4Er%W2JsO52vvG=)9d^*sjSB^31Ew0&YOD78#qs+a zRgc`wwoitd6|?hLV1hw3ZFe?zx?qcx_wZmE)kRd5SHRV6%QB;|1E5ol&$HcCYbhKx z0Y`Ok#S|&Y#PoETKJL3ewer*Su}kKZm6OVv>IS3QJM}B{KW3Q+=TA(QZr&IfJTZ`c zKix7rszU=5kl)eBfVXQ(VD!m6L^_*fO>6{PXIv#01{U;gGpo6Q)-WevEa0*`M^Z^9 z_ny|*5Z+lF^t5?T@o=uQWRq}*D#3U$r@i=EZ4zWYLK}AVpN<*BL$WzQgQ0q6DhG>V zCL-cvo+0{e5+ad3<2Nt1me5uyU?gGLXJHL)9HBTc#EckoleI?7hQ3DSs|uDaSRS~;(y)rAB5RB#UaRV=E8#%VRn<} zzcXkI5JsZF*d(OSxY&@Q^LKKE0Mt67*fksA97Is*0~JWic|Yvy^+opI8DX>IL-~b^ zh54W=ne&0?O2ur?H-Q+s86= zq;3>dwG|SKV`RRn{o0S;??>Om2mM@Q2LbpJ zK0i}>K2vsF-`rouzJf=|Ewljtfq-aMoxCP*hx?SZn+))jtFoq?`JlJl2yYbpu3xHJ z+@BDxtH1QL%BV-f{uXYTSC9Ixj#g9nrprTkHcE^wc>P3K^A`q(9Thg>K0lp$_W9*? zz-k5FVcW2QNQZI5diBYHx!M(b{Z~tBZixkWWCF88E2iE#q$k-}pu?u00D++si#wE( z=j4{FRUfD?ZU@%rH`-92T;6}zi;x2y5S7qN1YneXqfCv*qz@`Liuwm&EJuQOE|$K+ zaA89wpWE<*Vu$nd2(b`7-P0S}<{EnG)RE0UPqZKMd)X7JN4D;TA=RTJ@@4zQKcbt_+otYP@*j?=Qd$ zS^lioFtX#D!YMgGwjuO9%^?dAw@alD8JNoO@c4fHX|ClVQl6wwSZCpeY4fR z_UX$I{VLPjhliKaoTujRZ|$qA=5GV#2FLtF7t3MeCm~2hhTO2O`>f`oxaj#TwgEWj z>o)hCV)yEijft63JRAa}m}EK2S?@ERV`3OO3L74sye{}TwpG7aeqYXf4jKv6im@i< zb69$wQuhqNBe)3dBz}1KEYD~oNacl@y<7SegBvLi7@)*>A-h8>HiKr?u2((6D+aXI zv!$OUUwfv13Ku-j{&a4$jC?5o04{2$AU%d*zHi+eepo85Tu38*L?h*^Rcs|cz4GZf z<)DmHvlD{B1b{{N&c_bEg|OjeD>eaZ)eeqzj8uDC4DlMBr#uyx{LcE$x@h`B$9ARmpE#(vL#=yVjEdom*_!BGP!;`O{Gsk(;h3_$cN!=$tEdTo5RsM%TuS)If^>Oy%jw5J#fk=y# zgDH;dn_yoMKfO?1GF{Q&V&^drf;M|X09IW z#}6HqXW37F%#XWQX%5=P^dBWUxNldPCg#f?eU}>9zuDO??iM!(vBzJS{_ra9?dwH& zO>qvx0C<5_8fothlwIu%tbfIPOG0WZUwg+6=p?fSI>}H$-huwFgGAra-oe`P4>#Gz z90*W~ED+#7{r`I_i`6pkV!-l0g?>aNy{$8S$fmUvv4qq^o#&!=BCeBR9U~zPwqm+j z#XLsCZeC~^e(ZGp<-7CJ-4GG_Q zlrBm17SC&MeJaE}nbskt*2Z5RH1ss7TPAtH;KyQB&I{=jJCK=}^34dY*8RFLhM($# zdL_f*jTAm^@FA>PPPew-5CTp`9?zrh%g>4FJ;Kq9om`&ONcMZVPN8*;p_k5)Ta!r^G^@!H8 zx4*8E0X>pY)uAmrEfNPg(Rac;@$6DZnaP~lcU)#NAIco)1&|uagda5QAcTyOxK<7a z2MjkC!W>(APYOwNfQI&etEl?qsP`rUtq|o;f9^j`)!NSR{~7AvmD4XqE^?9qsrOVI z5IArc%h>e|d_ZPz*!+K|WCkjs? z>Aq&XQk8G$YjLxE*W5QQ4fO0~;uPr#zRp$p#^Og6?ypv*f~5ezz&&tbmMB=F#;KAj zeX*V~yNoI1GHGf%4wOtlElP11FQOvvFun_IkC+u`egefkq*{RgfOfP7?SM^)5R^%; z9>{wH)Jhd}uS+7~)R%{k)T*-PXSgN>vrd)s8ZsLjo)Sik5t|JkQkS5vb??$Q5*dO`|2~6>zzi zD+|$39F#>^Yyvh>nRdpGxrJ}g6=;I{?ZixhJ-=wEgfpl~t8#ItJ2I?=Z5)lWwwQAa zvUf~2dt~Ux&g5=4?<2Ie(>Bar>HD#X5Z>fh#1a4Y*w;2xx0+I*?0)q6{1Ch zTPB490FZZO;(1T4S|)gyHy&%kgDV18$B;agDsffYfSo4x({&6RxXd=n@t8>BU_T*t*yg(QC%O5XEJC>ufO&8 z%VxmJbCC8Jzz-2dBH}z@WS`97<~hPtK8g5u;S8q%fSU257LW+$__0M`)B^4sN(APZ z;pMQqmP~>0T==n-TI@UL-}N;!$jC=PnO@wgdfh;F_Y+7Y z#*)-gklh8M?ol6TrJiL8-}@E<*SwQerOy{}B5f&)8p*TF=%!0L9Bgfht*Dxp6{3Sg z6+MLdh~=dpOp}T|**=f39Z=2htJvy(+H%#S9#T&v)3km!xvLvOj90~dyk&IQZBkQ7 z`6$3lboBgOw?_$9Zn z;-WDgT?X8V{(97gEH-+m`La%1Gpv}&5aWu*%+mTZ2hFqRsL@(>24v@+Sko5!I&X0+ z$}G4E)pQILx4GE`*i}S5S1H{XFZz3-L0kTohg6>BZ@pm!7b{+KYd=_ilo3Ul6KNl| zwx1+eHId#V9TTo_aq#9DK4wbv8FwRlj6^M;p5L8`Nq7Rgp1(RKP%v5$G!Q6|KUBR5 zL6(Uak#>Mx(;>niqp06EO(AP52SY0dozJc|hW1*2)NXmH{{|GQb=8pq0ouSDy#KH3 z34lrhe+e}FDH!nkg-P0_$l*93ASOk?j`6=PbOZ`PIGNg;TGIo^bdHw5`@ePLA2h)% zp+HUYzQ(`gu>M9c5&!3UOFerBLpyu=|2e*e!T4Z`gA7c67%=@nk@J6SSHPIVzmoA+ zF8-OAH*-X%&f^mU#M}Wj1JM5g0s;91Y)St@{iR#+=l-qK^sJ5da06503ygUr`7Z>d z(0>sB$<$w|`bXB@Ow_bpy?Pgrj=$&Yv<7 zzo&<@nG0bR9|Q!{<9E(N;JZr5`lma4gFp`Aq;PG-b@Z}6`ML?I{fSio}j)_DDe-ra&4gY-$|G>2DgS!oSh}d}eRbeisn>n?|qr zAKLG7Lcf>x@2?X7%`gRy#{TNJ{=s^b}wZ9qR4*y~NBY5ri zZ2TVS^!Me_PT(N_>(=|PxToJ4|LqL?n*ah*9rzE%->$*m0srly`6oat6|n6^BA_r+9I9cQ5Yl?pE9#N^vXhZY8)|ad&rj-t_msp7%qpWrA0s?aL-|G_`_#5BZt`zVaq_eVwFhtb^@CbYX zV=g2o1OZVShxlp;3%&+8NPc&QfI#W}_ktX>FEN3D7{8Vh6;k!kJI#U*pc89+DEBgB z|NV<>RVJBS2ZlmNQ7N9-3}h~h6mSjG4^Nw}KK6a<3&dXxGTdx{sG@3+AHQm%iQT4? z^J3?(UfBotiBgrhIX=Gn`u1<$?q2 zHu|(qOJ5CSybzPk088pr8xiQ$$W(?6eyA`4qkyaFn~gua8??vZThRX9LNm2S;34x( zoAKJjfr5M)CCh>4tuC8R9erS!Q}z!F|F-{b(7CCI>K6EhNE#Om6bav(GX*=nc*MTD zn!C(Md{hcOY;gs&6rU@i_hi4mht7q}hd{9h6=<;f-((BQ9XOBUs{M^d4NC=IK2ynd!@{od%n32Y1)oZoVg?QYbt^K%<{_<*8u{1R4S zU$ZCGl`&*gXc4mae%%&l?};n{M3F#NEI#kqDzWXlszrvEOlZSkPY+2qwd}LT;$gS- zfT?g7G2U9_Oiyb~sOeS0Z$Yc+Wroy0)?1+nnx!Wuc}k@j#{PlchKB zwc4baxFxMcd6!X}zrJy!J(B=DN|EYyRC}+|oX`0TeWk7KdqGXg6xyU}4OH+|>td~C zf!_se(gQvdPGsEv>#E_$Qs)AO6(#sS+kavz1vI6eu8?e$l4WxND3yqLO~V^AhxCPiGAY+#+LQOfN_Tzz+vQqc3M+*1B?YC6j?-KFwk=Ix#agpBp`+L zlA2Ib?Q)fX7x``ry{0!olz5}NCxc}(I6~P_>!^(;_kipN1_KaIRhgYSjOcgoRtdWf zlpCkfs)Krb(5V|sJMH9FaMXx50>V*Cl`-EJ*=sRG3>HjC!IBoo%C^lf8vYJ4(<+5P zl)=+J3WG4Rfq7^SB0w=>W7Z?;*Q-4Wu?&anKES-nFTj-T>~+u69Sf_Qj*RHYsuUdo ziUig_nb1VwKxG!!DnZ4ZAnsW&tA545mcoy}%ed5AraDZFhw<6kbR;s0A^KG{y|zDL zxo`sKf@Qi+s!LE7I<-x9tu^8-wp9<8BnoelO zR5ozVXOhA5ZU39EH_hkv8x@Zj9Y7f=Ai&P}m@X~@T>hJUtdBUXqS_kc8g{kfaY7|$y#oV+rWx7N2joIhH83~#MmfgJ4d6yO1tO4 zSqAuL#JKU2@XWnGf$$j8ey4}KgH>fB!;ow2$}XJ*^$7V52#QD)YKq}(3wf#xk&pcFCltP_ipPWQ(>uE6*1_97JH12+Sx#Fw!MUw zP{sP^mzaG>790lt4oC+{7feY_H7Ui|CKtFCI*9C*ds4$tZj`ap$z`6b5+nd)Y5&7E z7KsoAgS1F$#09gS6@egXL5UBC1t>#nmaWM{FbMcgp_U26y6oIkasfl@`X96s`|l&P zvH`o)IU+jAg2oH@d`erUOJ`ClI$S10RB6XU!h%PecC6q_W%xC0Vb; zl4@$Hm3D}lwpwV~vPCsXZCeyGS9bcURG6PNuuoD5@rkTkFp9v8W%$R~#HUs%p8)9q z%A=4}nUa*6BxW`jRi8D{(diD;NzQVjy|ts4A>OZ{xb!^35<^)>QsD{j`_xI zixHTBlVn8zTWfbPcCOD3tsG*#(XI&3R|aTDzBaIY&;R6;-2B7e_{uEl)SO>z5-w&v z;dhv{%NZsoWb;QeVoc_n7C%lV^=KC=zE_6#M_MviHtv72AwU$&C^+OtQSuuzlW0jL ztbFljfi;uL4BJjWo%5QKC|@3#ba5wQ50(2rJ5>sJ@Ug2F7!`b_mGz*tqY_rbp)}eH zb9Gbt7E+}6OEGM8&QXQ2&$u)%&tA9>j3~`NM8$@l*8AhH;Fur8lE}1^DXU;87unhUZvFvkgmgP7bMA2sYV1yUVF#$%k zooPI$U-;X{)~u$sN|gQ)p?LT=<9B}x3G?TSJdi=-B?ep>hOMa=w#CBK;oDc9UH$89 z#=)>;Jb3NUPo&AMk^NL25*{ z9r;469NsvU+<9+*TET&Lmg#>xkM(xAE@+V@=Orxu=wSF~C!>-LoZcT@L&7W*vGAlR zsieq7wM!VbXEf9EKZ9^5VTJ^Kp29Jf84VZy{}>SB-Tsiy`PapP$$#`*eO6?az}#Vr z=J^bcoS$E6vnYjrrh<84#`AB+zq{GqLD)<($sBS}wf3kmcI_^l#}LhV;9tnUan~@W zJH2K8b@}+f*Be>>zZw4aG2YniWac=x=MltmcZ1b7&XC+nVKekPcLy&4!#~4Ir>q+T zeEU@RkFf-sU?{4~RwUh1ovX>H51%I*5m(~b2*8gD?cu_>Ps+&2Ez&v#j zwZ_NAT*D)=5ISHjh68Qp_)kW>L0#}T>2MEga~~*@Mf%1XF!7ok_P7|@IfOVo&Cx0| z1o%qsVu|=P>Kp(y6!fW*6M-64|21t%HD}hL>vF&YVaTXll z&s&WxE*jE8CaZn;TKexBVtXks$8{!N7N;j|*T!nwAYZ^+K4!7^$3N|MtrzDYoJxNm zRSGT17D5*eT1b&=Q)Du&l;AHsSNQ|FGbO&%$T7;N?vghf9P8~jedqX}@prz11JmX@ z&x<}_-#cDcOU=Z{0AmrbGHM;m*>(0AScdo?1l`}wVM{}L6*@Sw&~pMNM7%g>`U}f# z$-mrC>MBW4nJJ#HcAE3VC*}e!qkC?*)&%ghIa2+#B{2;alo`eh`@?)qiW?56&r|(pYoLC@ zt0vGltiWg!*6jRGf%}I4`keb}r~5sT*M{yJVk>RJdgyx;NLJv9G?25fJnsYfbdJ>y zyy-~pZk_b^Fs0mklk+lCdOtTSBExQ?^WL@ofQw#i&rOkkM&^t@N~p_0^m971h3~>n zO-`#Ph&{>`uYG%5@L+6I)$xXwRX7;>fd+=o2q$Gq?diFe8 zUbreG5Xpi^t2@uWqX}yAzE5I48E1llro$f}Fw8tq&tmG7pPNyZE zpDxQB5t_QaD$fX?4^*MBe}Wi$u5IS~xH4XHx!>({fAGglykG>;Q#_HzT&7(A zf#Z3(=ti{dCRKOr$n>~u6-ag+|7Ukf!5rC-mp7Zg9$`Zg4RHq}uF3E)=ocNxN7Wa4 z$z}V>L{opy8}$ztzY)LCT6zG|n_r8C@i=yaG_F0M*`>G4PI`qp~dzwUOdrs^1-uOsVYSEeegfUz^J2ie5X z`i#|3TxUB029WUeF0$zVf;|*Wp#RT0PNC6=1S9GAX-CN%Yr#pkyfCcUIG8?vTHmxFgGWTpwXKuM2}}|~cp{=RXS^i-K1av) z0Yeb0{3!phT>O4@yVZjuA$i2-Jl;#jxYlH8Bld17t|{1?YAnx48g({XDz51;s*Fbv z+pj2vc~de{!VOXe?aE^NrlhCjRLAk=y$#&UUz}&&5?*#r`|Ei;MG|TS_9k@uHrrSt zFKf96*{CKg0c=<Z*_~%k&uc?3@}RU(rNYrw~BXR)eV2cBZ-G>4Q7}~xc__62Pz}Q`}lbUEPwq4|Mp{3b&YmX zdKGA^#Pr|JV?H{~J5Lh!w@?qy7h(9|2()g|VHS9)vy0|CrEVP?=o43#VooidE2o)8 zpJ1ftU9r6A@L@IWp^RjkT8Bhrw&lYTO{&e1QI_rag2>e;xk%fZR{>B3hdE2>M(0x} zVzWa`0ZQvbY!}8Rv@d*neX8Jy3`>E?2GHKZi^M1V^9>ZUK>THjvX{bB>t@#=NAsHF z{SwRIczI%>A6P~}*X_C-yhsK&H2>c3Uidc{>X?0u&+|TyWLlB$>zOSd_Rw2)W~kyK zd|FBI;G;(O%ymnNSe+yUMrj?Vl6s2fwHQ&u(jAgI#in3G!|y(3MpbhgOuZz?eawd* zC_fxYN9Tigne(c9`7vg$^FPLy)EhVDn|31CIhT(8h?|&g?@#O&H){qquPPGRtiRKY z)x-cR<-JOL;Iq8zOQFee5%I>Shzsf$47&r6=(y2fG4s`suSmR!XRr()jg56Wf+I26 zQT?`5lb=CR8wR#m(3UCBN=6Je8O8W&*E%l9QJ2x<38*uo+Pwi~kKWaBb#$8ltG(U& z1BLZ&;*Z_MQ6ln@7Pq_sybaU^r;+Q6!csM!?4L~s)vxI;d|RC;=o?F$gjIDp(y|%C z+_JIKx#uV2kuMj75LB{lp6!`;hZ;C53sJ^lJ~3{@5qP~)spOWr2Eq~SsXkKWUb5Yl zOi=vim|bQ!x%6n@ij?VpR@_cJfOyhq}pk;Fs2-7?>8PA9qQ!2%%kCueOjG*^dRqo`Q4|48O zVEvx1k}ttE*s#d{jKL}#8bmUi8bq6bmj+6&O*a`1^tbpioTj4-59P{z7SVZck10p5 z=i{0rUJ1ISPQLI6e7x7L(yY@B0XFu41K0)xQF{Gi<(DAAZ0}uw?MLrC23XmpT)cCIFKDN`-D7C7KAd*rPQpYhZ_rkI-Uk zD9h(ZWKl1e`urndFeHHJ^O2w)Pzp)@M=)l&FleXep=)`X*Y9lUV#zvPIJRtey&XOd zGw?&f%{qGXrCi;;BO&X%Tq}oeSb>d>^E=x!>adt?A zFNp_n=U(iTLS$B7Xbl+gMFvcT2COiiX>ot%3`f=GEU;SYHT@-Fd>DW_wL|o|x`X@K z{w$|KH~6Cks5XGi0aFT{hP>&$P)f=s#*iX+b~AR+Xk*|%uN-STzeW93zr#etS$(Kk z#Qj4*K0Z|mmA`bqw~P%wSzVrd0$XZU>Ly)Em28XUu~{G4qMVjh{nwNRXz2CRV*)DA zm6=3 zYBj{hLBz($r+cK1M8En)6835-hK8+esdbX#4afv-{d&}P2PKLaKL$rVh#YaA(zzTk z+c)%};d_3kcNKbl_a|S;^xZrxI5;nc!?>(&e-?nqiHob(wth93JHG$!Uyx|D^1GLr zY^rL1AGR8q_)3^%S;3!9&IrnyzeFknpH_|~aTeWmhSv=JuMJJ^I~KETG$1INt%e9O z)JB7+sGl^U&r`ZsF@Nr`w?0tP*QX0YypQy8UUT53kB33KBZd}e8dhy`=N4ZbFe3~? z_4#@pHrzN48oGnes>#(4xoQ2VdOvs;e*L+owG$T~pg-g_&$1*p2Zkrdcj5UP$(0`@ zxla-6RA zR-e_L1{~=XcR89=#*iM(YnGP8 ztbQHQ*43||0nh{_kY3@X7|A1Jbx4wUK-?!`w5+^gtM#U|0TnqW+rlc;7H@Lz7s;mQ z2Xyws^y!3_**TUYCmsJyRm|iks1HPCIL26Ve0dhPs@kM%fc1Ei;t#_paz?7QlO^0r zxuVJfeT14yHLU4@;G~`#Qb3ofW-z^x9qF_uMmW`sFnOa49@^kaUOZ@r>8X2#LEotW zfxCFb*ZrOkx~t?JZMTpy8`8dC!)tJvf$ymBwLEhTd^FZIh}F_v3;8 zG1Lptf_w|PtB|)$oMOx_U!#RL4q239Y(FM;U@D{qi(u6tO`F&2Xe*no4*61RIOImg zA5~)C(So0+xmFl3q3l}7*@!*V`4u0Q$_S&LRx0$J$mzT1Ff5VYE5u8zl*2}j_XA*t zMmAYS)kJy~J=*kx%x`?x`vUKgwL{6nOJ6EF4%X;K#n|Xz-f`yfi`42m#LG8>uKGa1 zpA(X`29Dx%>pUW4yLA}h)m7jle%9%@)=2FzH<040)V)$b2JX6?7$-d@MIbOQHkLJt zQYAYW4@sNclM7I=5wQ<)wLqRn2%}Ue59s7Y`jRGQxIvADs4J59=yGM!t#KPPf$k-< z@lb)nY6PKptdFKn{pI<)=JEpGw{@%oohFZX<5<9_pzijM^FV=~(MMhsxv;^lPT!-g zL3iGsu9k=Mu5V(*{^NE+b(iOSZ@cM>U6wkJmxhW&lMd}Q&7YzFJnTC|!2V_QO_kii z+95_`91RD@2-G8&F9KsM9>ZljJbu0F6-CjL;QZSDw+kODOX7ZwypC0$O~Ls6fSHk6 z4m0|ge;*?HmPnsQm4X@&Fz5fXOQ~fTK`k&K=}n)adb*UayyQ$;_h8WN5zwoHtCYOT zl8Q`_)V}LS>adG7TamXws|CkKEOh~bkouCQZ1pdjKGVHJhXKXFD!e0Z-o3!J?-}59 z|}{mhLc`t-&{UcU1wGWdZAqxzZj zcVdlHpW+O%@~O9CL3%Uw59DGQ{R7RFd|&xQveQYeG3$MYWcQaSwATFCxNBlxK)e`@F&FUh9uocYzXzY3A%tv& zM2%<*>5TteJWg-M!CPle{fTt8*}6s|-==(|Tb9WnXL&@A_S*o1W`;L8vqe2NxZY}) zlYChfrm$#rL-H5D#586rVz~uN{0Ez1r6;--lTE^|XB4^3H^^RW=zEr0{+S6`n@XsN zI9Nzqo&OYzXwjEvYAx%t{w~|%MUHgRFZ@PAZjPx)KQK^)ODKOpWdtr=ZLoN1*#%$k z-|*KQs^0>Y&fAS2m;(>qV%DS`TqiYGy!Y9Wd|=mO5xK;7orHOvF5(YYV4(z{Q41!S ztx&~R9GMPt_nNsAEry*yfM1fp7553Lh#zq_Xr)N>j&-}d0`8kzRBn}q{^}|Y%|CjX z)%fow?#zpVU*U&dcXGcm7m;78#2Fbr%j+!f?kKORV)*E|tcHR*?Oz!?iAc7EUYq^z74hqt?$rBw*KYl3Y= zyXe|TDEtzF?52G|ayu@!)p%4oR{w?`r+@Mn-^_@ns+lq6ZC`XI8<6A`b3S=xrv#Ux z7>{sB;jTD#l+t|NAIAsh3gg2;8i)r6#*|Ns3K+}!tFsIDarQc`cb{UpAaIchd+HK1 zw`HFE<{MU?^8Aq_0{L;DC_6kO?9J&)1e#53bfMbT4E*JJZ{tY3c$0*l-_yRU!+Iq- zau)XwGV1sXGbH&zG!b{b;@e0U*||n%IYi59$<8=M4OEOI?uP^rjJnGa&$=OoLe$F>;$;va41ZKF_}JX=aPFek1&WCUHX8~sxp=H)go)4EndkTI;#iBfr?4fB z<|OR5Z#nWlUChK41RY!*kjbCE`k$)9)&RgMjGdheO@DruTo2U~Jz8a8J6Y57rj(+| zzSE!$!bAb>X`$r_=N26=ksMY@)VMZ^&!Ikv?~Hvb?NgcXFqT9&jVmfPg|1D6p zsVMSi)DPxZ{}Phe_Wbt!m?+PiK`}g5H4Du|sVUiSW7mz=0$oQh3oiE2`bM?q0SkVV z)uj8j8@vonyt+Oqo~;(B9j!h48y{;L)ZCLi&; z+x{K=a9(T9``rSkb7#ADtQZ4>c4ofQXO)D9W2vl!Ov*R`$wNrO{=?CBJhIr3sqAZb zPLh$$Dn@~^Wx@?#iXe0Awvc+d<~a4wBnHezd^{Bfa^uKy?r0I?@SP52R<;+T>21g9 z^+5PbgG4j*Z0+6Bu!$4HPIvvA+DcBAa_t~N{;|64O&W29ofPSF5yD~=6XCq zKG~L3Dn-mZ+;z$fy})9ujLuT;Q}QfIZhDy{?rB0zV<7(D*~pdAbehYIPBJo@>5Ux9 zs4U7DzpGjUr+ye|sh>_2UeU=mc_N}Qu#}n-zhf0em}*L5xwvW_q~uxIzf0k6eiycp z6BLXjD;#>e$%wP{;etPj>;4c>$1;B_C@}JA5KP>uDTNgpR+rk-PIY3`j?5E_o`>vC zT&@)2z#a&oAmwG?UW>c%Ik&1fX`!%b)wIy%yNmb|K8V^Ok%izaj4Dg<3lEL zB_4X#TleNQuNETH9V>Npg_!MyeA~qF11Zia)-6L&k62oGkY}3Clf0ps$G*L7Ge3z| zI%Y}pPCQ6*Rx2dXV`gb5I>s}X#=Ka^}RwA z#PM>wPpyNcya|Htq2#1_H*C^n5b@(`Bhkw3xOEj^#OY_D6=c_tU}}=SakG()kCW_U z%h$evUGDXmF@RE-T2DhF(+Y149My7N!HNS`-U^Ah6Mo0aOej^71n83a>G*1J)X=RQ z0i5BY2;>6|u6K3u#Dn6xZI!3dnchlz<|D}2!uu(8^Z=uh#f9PsR(RF|(_S>r{lYfp zWa;7VXEvDaZfwG&p%MsB0fbDvpU0}T%Bdg$xUkRZ9&DV##q8M@HmOEiPWlaQCFd#T zWQ(Y;ENEIiK>HMJj*t7YxYJ-I$G53(>t1X&-X8M4V%>jzn(S2Jxk}w(Aq-i2P`*_B z<%hQs&~x!Fsx+wrann0k&HZe74jbfRc+H#>WZo_^;bNTQDp<_%4kJrAuP3y*+;7&0 zf4ksHKvA(iQ7LS|`+{a5*EkQHvK5KxQ4QlpFR)vO8S@c*XGsR1CL+#yH6!9yGRWya zpU86Nr$}f1MzF90h3?Z_njo}GQ7>c(w4+7n&)Kh zB9ItPwMGx`3|n?W`n-t1HaP9n-4`GdXNQKEs>vf<_&89uvr>LP%fc4ux5%s4+xUd}X9tZ=;og23)*C=ak%}J}QLNLkqE6a@1Aqy;TAc1PxMpz*I9xEomPqqIH<;vEvlw>GRdb&$fuIXHq{ zZ+t6!wZ&*Hou8hje*iuw_M=w}$C zk3V}89DAxtL|zCD`q1n%T+O!j$pRP`fFy4l{%<2O<=|2i3Qw1_26)d|db$0|5mr2Q z8G!e8OdcK&+La(&utXGFVsbpj4U-$|tJQR+Ee2vh8*3LRSwWWE2jb#&`_h8=n4UXD z=2RKM347AbA&uvwjX<3u(#W7JLqKPtSx+%6Ub68TOf#cr6FUC#_%$m$LSrdxjWO`F zUo;bArvMjZ{z(k~)bvnF`AbN9gfjE3yren-U+9X$zo5 z!uyC($xo>@RaP*QU)Eb`sNlSQT;4&Jle=Vbhw{-{9r{iknnV}u4ye;$SKf*iD{+Y1 z5QOX}=g;A6bLh7_{Z*pXA_BIy?Pz(7>p?j+N6Nv{F@`h*-pm8^4jv@ht}mil-Srd_>6{p zMh&qlii4`&2(@C#q1>i@=LAcCHuWG}$_c=s#wEM@a?qdBQ_zkHa`zrJOFw}GBLNbIIPm1_z z4O*!(PRW5(f2;x-gEsVUK);WVDN#He<}J9pH$Yb{F^M3=w9-Os86QPeofW31yvCK> zc|TGe`(`qNQV~XhCnwJQX`2mx_R<5cUygv5iKBBA-s!n}jKeYcovB&s8HH4MJ)s`2 z;tnh8fy7j1p@NQM8iAT+i0ZlqYZ>{|_3VPQo(a%w(F!E36+gETUfETwj7J9gd8&Ae z7isF=OsRHtyU_{h{Yj88IkhDFl_+L7NPU zrko-LpU^L-$bGTMTxh#B?OO|?_;2V(@aC0ve{jiD0q)b=>#$j~2$X`O%4IM@d6Jp7d5Md9T$F^?1;(>*^gY5} zAQfpf0S3qgW+FcSGuTTe7g+=~!Ljom|{LcHodqscKBgh7rsAVP*eb-eL zV^yzM93|bDAK3P)bS+Rb?D;(6j8(G~B-8CG{-Dh z^!c$^;al6uh;@1w!e|6ykA4){7IbcdXJpMKCV)s7tSLw@+k)CbWUQ}QCX&(jOypP2 zpq_4^#>5DFQx;0K&^Gh#!;^Xc8Ak$C*sMkwS1-w`dVq(~%h!*qEj;!gcYT%l`J` z$bqZ%1-h|E3p3<~-7=m=pvVSEZFl92fCk3b9G^F6{M1@~4WMrWa8UbR$gB6Oc}#hU z(L1^y!IoUEC{Dd}d0)v+cvZdeJ#PZ1!5|HAI(@fbSVP-Jq{``eCi?*&s}xxWs)~#- zqyAmxl7>G;H_Uj_U~e3>*0tD5Qhv>dx%MR8p#&{{nX`P7z~nM(Fk?xAeUXJu!<$mf zifyX0u5fjqak@a@u~$JH&j@GfC(>_i&-gt%f|9%Gxl^#*f3iq`qBRJ45CN+vwiZLG zL#H8jz@k&YXEN;`Z(zUiA27lXPuBVaY--sX{CdTX}4iDd{GIDy{) zgkL&+-&&6CnFW91VEr~&hn0i3G>jG)e$>9~*eh~3u1QC%e(oMvsMAgZ{;MBl=kO4A z#jl3?sYFqwR&;L!aWQX?PGFnrtngD9Iw9b!h3aGsYQf=PJ|-E|n8qPpX4D?MZNVB`Ps9vId*We-Z0y=t7hK+{ZuX>9V*mF3OD zw31+EUFOh&r7kv!<6wV>oXc+l6L5a1<(-VFUj?oBll>QVpmYgMMBNxiL+FM7jb)p3aG!0-5BGxRtGKsmty7jyE~5rlwb9e zsjX_|E9;-Dm;BA}Oz(5aGH9yMi730707gP`A$Z@r7!3c`boVh}M)!;8!wxAbE_LHv zw4UO>*!L<{ZlOCMJMU>PREK`P+&kqihPs0>&CeVyGYoyXw3FudPB(BIit1#>oap7g zq7A$f9Mj*AkcEb&g4yRbJb}dDn6%S%-aWpr9wznx&7{Pvq*Vprpz2$N?~KX;&_0+# z`FoZzu@FMkqD5`7$Zu1KMX-SIfQ!Fz41c^XE{s~R!Jbq6>Gny%?OE^A_Yp$jOq<^p z;GO={3yGrQ_ih-vH7CB_fECEE63*Kx-(A~dw_dv8c9J=mm-aD?1E z?6XZbbmDO~nfzgk$Rh|4MmYDZiKCYZt?xu_GUX%~7wJl(szz>i>?&m3e|J4al7knI zZzb?}a_MkvdpJ)ECIvN_5JDVo=G!0V>3MZKbnKD5x(d5U#L^*^O0!K^8nCIYr(*f? z_@p?f?e|M*UJ_9Vjs{85bh7}cTBOiz<}T5P`M3;!)edc`l?L8 zUTJ+y5MO~LQWZO^`cuS>oU5T!@*cDEs1tvcRlgUqv=>*)bk+EG=EbPyZ+#oSB-D8~ z#nNk~UtR3P|IUzzdgFv(^=mvvch!zzRh$s=a-O6o@hAwqa@l??u?et+R%gk_-a0u? z`)Rru$L>(RoiW}+r|9h_#yjvCmt=m1b0&hV|8s4I+IS_4SRdYJilrwst(NxKB5freBkc`@{e_*~$6Fqv>vkG_CPKDI$G_3P-YcO0O|Nj~JUyNO#6-W(rMD(;3ISjS);&j)iACbNsXb>+tiN1wKUn z>9iUiTZfhKcpPwU!i<8UoV>zR&bziIK#HEM)RE4tJxR-rKIswZQE%r0r;d==F?wstF zBUYvIV$#ZIh?+(N}tHae>X*4R+BPmGJq z=8%NxA$J%7XCW=uG8z@yJ!oNK4{7(ycNKG$5BwKnZnf9l;t9io?ge`FlFD+lZalgy zUr5vmr>L_(kMf)@RbCQGNs2@2g%nl&lkM?vCEJTHeQxBdKno;=a*Z&vkZUqj3{@kN zoJ}zxjd?gl@pmsSfYhE@YE&+A4*DLk=;!Xq-*!GKxR*;5>8YUxl?aViTKaO{3O^jZ z7MMi#1JnG=>lHqMJIDE0PGyq}E#>V^^Tu$Tj(ioMuhFkXeDP{q+jwrnAJnP_!bOb) z;_WXS;ROa=;6KO!om8VN>>3}QUlMrOz>^KmC>3o6YWPBPb+kOM)3Wg05<>|PNYe@} z*9}-y65Lf!Wk73%F`x2I(_YVycg>7U+mhbdOlv3uW@u68Y~=9M_Xi;=xpEtvDA(3y zWlQcsU1>$rizHtcRGq@7xT6gv>0@@}Mx1 zc0_vo2xE;-{-w<~y_`_YqlraE;q)Tl?7EP2IuC0HqXT_=cW`N?VJg*CWWZf5db(c8 zM8T?rX_>BR8bnbAvND_0@;TSERo;=L%M-f7nnl{T464a-qG?0*V?gEM5S0KuzaX85 z4irY|JCsDS)T0vUa!JCGi+HT#PEmR32bwO7Y7|PLV#?;F>+l>D_iuON^k_AkQbO5` zrAE_pmGtgRh%_ts{^gD-+cm`!T8-3po#+%6sE57TDh!n0$n{ZqyWtsU0s-m!dnwY+ z<>aP!#zH*qDA7T3opyOOY&CV(EjMx%1P~n~e|dV1pk`PO+=O__!ZPD<*3$PaC6XxS zW#m3JF!IY(Gzl8>04)<|*ZUCY=wj!_vgfjYvBHx&jt*PLErLo!7H<}iYH@m6n&2c? z0(p(TSybT02D~(#s3g_!X&jS}3hb3R+7m0+G&ZyRE(xG1e(9pg0AZtfKQ+0tk zH62|2w5UX&lM1=Vg`YpT0O9icm$s zmmOO7a~|~s$EinQ2-0CL(OvP=}%*0nD$J?h9rehS2Af{cu)#s>vRP zujNEIMMjVIVdSz7s{?*0Ob1xtLQcgPGxnT>*hABswO|XFy-SlR2lgJ6F2HI7_el_e znlMqSYy`60H&oC1GyIS!kMDBf-ii#1*?K0)<;e{4vg28OY{3Y>y z#_mf&VsH}#7F{qpbDPB>hY_aoBW5pjT^(tPxC9z4B9;yd)9%78pCy$Lg+w=K$$a#Z z#oQIVCszxN zCrpg&bK@_$#W;cnM>57}Q=2S!(WI~8!Z#O-P{z7lhR_sR+(0}eoJJnJxYz+XiO6~N z@;|@thr3Ij63@?j4!Y-&>+;)kPwXDPfp;G%({HK2QxU#&q^?CO6$)hJvh=a``o--f zOKAxT)8+l4GUT8b50qSWiiSb6G^Ui*6Eq|xwz1tznFiN(;_|El25kgR6~CrDBq!o4 zygqB+!9|uv(z$GPwhJ2E_xs~r84-}{vc|_<8PLi0d4v@Whzoo)Z>Gz@fJW{?$kj&G zegN7>3UcuC21>{tkn6QY*9TNu1WL*|$r5@6JUt9-sr(!dTNs*|* z!zNXabmLxH;3&&P5$U36_suiCwkM0dp{qLJG*tZA@CQH8Ssp&w=_vEn2G;w$MD{QN z!CetR&X(>#DVBE^zb|N_gckNwc&v&YPt-_91QH7wLs6IqQDyMk)ND3RGmOp zI=b@bV;$UcE(ei{RJwSFqT-23^v~eq?rmiJ3_MGlisNm~TEU@*nhF^c)3_ivz#{WW zYrxr<5qDl8A#I@K@BV(XO1X${zs%HM3cn+&uGFu9^(;j=US(qjw-)48W6H@X zqJ3W{40TF>^O!O(CD^I|*IY(VU|I2w)g&K8i`W>S?@mSe{ceR38+f*TByDj-WfUEl zb7QEPb`?T(m1YQc@}0EM5gmr{{q}`@Vo^@Pj3fmJ+5XQ|Wga|FV#DM&ncU2SJLHEb z86lEqsdI+B=)m3`99z(%wB_}@DHWW%W5ZCwCB-nywx1Qt1$S#T@ycUHNpDknXrxr~ zUWc5_G79gEql?_4CrK+bFmHBl&?|-)Ga`5?Wj>>L7}=;&8I}Z0Gq4RzGopCZ(zj_6 z0}j?`BD%%Vlz-|}Wiu)qxe29x0doe9>*mkf{+$4Xn|g$d%?@TUgOzCNmk;M)sUURj?2mQ{9qL9{(biY!Aee zut{^74(JgT+^lndDDK|=0*d!>yp@6dTB{ccoDUp`r*c)FSAkfm6;{&g7aZ}p37y^Ff&y?K)6rd;AdH7lr|fl>z5qDc)Mi(WUZ@TVT1 zM2)}ot$q?aF-jRQ4GcBmRAN>^3#u*jXq_6J)b`;O|J)NKfwK|9Tp|84j*66#6eMmm2l)yPvT$&z)9!EIl=LAC^x_8UFj+HZ%l!jEe=3E zT7AKDEI(}VZiA}<_hb)eWfK}^nQ%|iDDQmBf#4r?oDgQbdr|!tPcwQROL1+RsrL4( z);ANgDyQ;4Rk>fMyqI2lvrr_B>lbcDZm`GH^xihbyX!OKI&IhZ4YCV5_yUeX=!|ML z4@|;c5^a=3m(!)_?7)NxZ(vRe=EOM4WQ#!jER{_pTG-=c>}cF0wZ0SnSRwZb7Ly$z z6O<8g?DB(&*Vn_df!htskO`e5$dq}*f}(=f$!HGkH2#jIkM>$8T@tsnX!fEr-h?@{ zKyUd>7Jw_!X9ZJHl@X#TQ;Smq5QP&5Rhv{Z;3oZ~O#RzKNU%dtF*d}do%5%>9fo)G zs)!d~wrG&M$dJ3BP_HzI+&u{Ubg>rdCcUN-a>f%fWNm9jF23)(Cb*|&x(_nfUYOd3 z$S|xNlT`(GnijoDh6H{2c<@JmE)KA|9!MrfAz4mHlA}m^3prJ5WeR2uoh(dnr3e%= z>#5^Rzfv{c*-Qwh;6W~8pJ-+;C%IuZMctX15~-#4V+{$t+co3Jk$dz%jo(4n3W`(?C0tw|m1q zCZ~UnoKJLrA*B@8Q?2h0m^P@anE`%s4P2WF=mZ*bYL4(yB7qdO#jRB=tx>`KfqzpY zp0~*Bbf8`(!?Ox;(Idz(hoa;Y{vT7{*jNYCMH|~Ec4MotjmEZ<>Pu44fg8FrFQ(t)L!gmc(4NRvjQ<-*}kt4?gR$HAlMK zcWsc+j1^pLZW8|Y8(vs5PekR*;sifE`m7E3$Yy3~y0702=c9F&{}xaCLh`4i8+{*% zX04t7x3j-}u>rqWN%+1hKOQ}9CHfVpp-kK|{ugV4UTjHhCh&i8SYvP`qLDQuE1=aC zVl=lai}oL#7RBpsNSZk_!GL4F2?P9vmLmfck5(ULj|6yotUx_V=FOrC$eZe1vS3tldLPXY)J^@(Ay(!FNRK zvq%cFh|K5LiwEsSa1Ci85Y>A%@+3S;J%|N;s>ocf5*H#i4m`5iqpl`^( zZ-&sb)3S7g(IK;qdw+4ychsUJDD)}>iD8KZQR~z|o@<(H7L_`2d1y(?R!>*=NAR8b z4Q2^pjNgsB;RZ4?Con6#v@0b7CHLMVp)Prwk-iggZ4;yLNDohhM;w*b!(rVo% zZyNdkr4`X(WJE0MBSq&!YmFw*d=9|~b17%GvEu)}>qL6!*JL5ds2abOX)sESqFu8R zqh_zRGZ|2cZN1+FKntXaIxdx5Z^sozycL3;jCidqV16hTm@1~qhca_W?R?5*$Z%s0 z%#wnXNqxS8E_W^{gDNLkk?hN;Q(0hj*!DpHnwdI)1uSwEwlNkt zI;US~ZgLZkju=loXxbze`$H|P@c51C$%BXvJ0r_c68H@(Cb&j4tl5&)uEUp3QI_)N?8L--QoLjsmT!x9qH3C@OM763EJ83Fe0~NR3V$ zGJgP<1MO-e*%A@xf2t=SY@)>(6JcS=hpl5XK(ojjB|YPUsY*GJ$7QngcSkmY;<48H zpxq|$nN|YonsNKoHo}oq7iX9SLdjc~!XFS2#x|qBm^{5CuT)y8E1uz2?m&4VtL#dP zAC?>r?XNTwkip!?&ME>R79Y<&9Z^Eo?7&x;jxz`b5ms^?J54qIM;S50V8>vRiYz%C z%1ZcVNym*{sg%k~tX+q^oLMBw@9ucs`pAaB)N3c^AV#DqBB51kWH{c?|ESKQ*G;w; zWcvQU5FeM)#@f2tvEL{06qHw%Fe{kWyNzmaf)5~`U^JMzp*{CGYfteaxQc3MS)#1m z%z&d;8ey2YSp;>nHL}VB2!^wo7wH5MUkF<`Fa((>XW~OJd>Cy>zAXb=NTnFlWkp<^ zt8EKS+8E*5O8dW+s*&Qu_E)h?^#kQXFRDoen4%+4*V+@?oh+;dFFg0h)eolA%kKg# zYRKS%0NP6oB7f(kL^?XY@%)5W8CztihN_nOar!&SyNLy<-%j+e1sK?}ID)0Dp?v?<;{s-Cx9cTVB*jjt5LVs0D`mbq4>BhfH{;*uFy?NI!DJaHE_z{`Ld zKUza)QVcE>xDHW(B_XSLUmORF`s$soEqQKbX=AM8pP({Aq%#IkP%aWaE=H|lOV|-f zL~c2Vb}{Ev926~D@4Xh9UM?Ju_<1Jkio{De65agGQe9=@`A3K#81MA2O6W`n6OIUJ zrx=o14f-@Qn_5;-tR3ojwcSMJDgN8$wf*GbFti+38_Jz&sx|MYkMe=M^94 zdT2EbN~SQzdoLKJ!Gne*Y%w$7*RdR|LGTj92i@VD|KPO70!E?m9ZbNic!HIz1{V|D zkXm0Mb#w1pDk-I1L`SGg8jE2YQtB$3r{+y`aL+8r#CAvF6)b#jV%_hF+9p^-u@svuZH0K4BQ zhCP)qTK(7+Z|0ZGiePku0c}=TUj$RTjV`s(G|nl+_md1HD_(F&tS#t^DM+^o7_)|7 zcAY{pWVzW?tQN`zYat?-`Vi_>*rT~-g2q_YWOovJ4k`5^m8OAVC6%CcKz*>3c@Y@+wZhuGvx9Memv0@#hontW!4 zV%eKwYVQInUNu*A08q`ZzltqYUl1KZS~;L+T288t)3_C(7k6k$bq*`?-)ZFWPl6)? zz>Td1;H`<{p)G1y4tuO9ND3P=?Kpfu|MXgiQ04#+j|wpx-kaGhR)H z74cp^0w4H36QK0J+#Cd^x9jh0rDCvUp0_jEA@YiLv}k#b7P=oOlNO>R&4BAz%PndrYL06vEM-7_pQ_vdYCzE$`A}KnWhv2{ zFAp}R1FX;<@cUErvc_b2jZTh zif=Q08yX@V5s0{yPP?E67EWWEj3Ru~Su08K;5d~=)x^zoFMsiv=pF^-{)Rysd9y={ zS-KWPk+bYowZkQ@DoE?jwV#S{c(&RA4OYP7-LOevQ2nss_E7#O#qR_LEgOk`PyBcw33)H?s3s_89URB<25y}@KLoHtZ24UyLd z!f_Bl;DQ7H0xm`78Z5is8EG50jp@LZOjH23`7p2| zoT0Q=Uaftv1#IhAHl%1+-DpxfevoeGmJp6C)lIVtWJbWV=$tK%a=xS)tl`{$k%RQY zTG|*`f7zo-J+#u}t&&qb)N}MNn#+A&nTx>Zh9E`dqo@m)!ichuA=R`RDN^Coq;wBJ zxMtDDwLNEEgkbVL%`V&S1PQNJY7%^GL>73+L_^IOn8N>_LY z-4!EM4+5^^CijbwCC9TWFTLWfx~HDW=~ruM!(KmLcsk>qLK808DTeb7 zqSI|GV49UY4+{%f(IC6dfd%_{yZ*CmshDbYrSKX6Ub7^}M3a)N)W%bW{Fob=09H|Y zS+J4;&e<`F^VY0)&*ML=GIS}kp2Y@8RYbu*nx+8>_5T%+>$qfWR3` z60BxGsltq|;t$k&Ewhcl-VJQ{_D$~>0Ve9_c7oR3NCYV6kvm^YD99(JM3e}hq*QNlqYkrU7(4YKBh^m^R!I-p?J;Idt}5m zn*Ja6tt&@3&7XNG@1Xpv`Qf?+=@V``-j98_cFN*?5#-(10`Ev|IW-j}oSKi~-_4+U63wzNF+=Tygc& z(6P|!wC4s1)EP}jt#`8xaTPX9A zPJ>Bd{A(o1Hnp12S9z`6=k^#-=V)sK9}*ktm^e z8?BAUJL8+SE#ZAT{Ic2jdn|6*5K6{X( z2PdV>YoEUJS4a&*ys?sP-VetMnjUN36fM8NXrp=OAz7P z-j=exNyebJf>mJh!yLBsb9Ih{v6)oMu6OySXN(li*YdCkmg6F+iShdqogBXO2Lv`s z>M~wxH$Z^o^(8-OjK0D1H0X`4PS;>pOm;ZmYpf<0656S57C@yYu5o4L=ogD4g~?u{ zNq4SK>Qg=6Fp#;908^J!+}}*6)&584t?k8L#9}Oed=_m{t$22gF|y>T6ol%7y(NG} zr;Rg9FHVwOewAW4MZ>MES3hj~;~l&4aTh&~CQFC^W{ztTP|s^0IKn=0Zkom9|M_5d zQ*MaEjevfw0xEFp_CN;5+C!M#wjiuTu3OL&zwT&iPK@0Jc62~qweP!;oV@hO?$CCk z5TAkTaeV9G`Zd@)bea#d-e~vm+oyO zl1}5@=GqZ9fG z7y}-m-2b=1Aff~A&DWpc_HApuL%==r{vF!`QHp<>U~JS#mX4D6ZQ|k0F2H>$uX%67 zK`bF_e#=>p^g#PM(u*S`ttx9YkpK~xHay%tHCrdt@6{3zFurf z=qpc7>S|*if_4hi&p`zZ3U((fx6lRpLfK^UgvwQ?H;AQ6+P{rQ2Zs! z5p=nK<$J^!KXrd|3dYh){>Bbt2xp8tBE<^$!lBSlZrM?-U?;#&a{eG z&y)GTAw^$%&l`JKRj4Gp?DKU`xuY51o6x|*sJ@J!v>Pz6J!jZ27Muu?Lxx1Wt01Xq$&p%177;JQm z*dZq?YH1l3NW3L6nUt4rTg-}2SH2BctE3Xn;wSD^N;U6sZO^CQWn~!p{SxMXN9|k> z(T)hkDyAONI+KO!uaboCNcB{}cQR!SGDQc(PEus&;{!nSA%Hi)`O6S?u)e!3xNB8W zb{$Bd&TC3!1YDQ#afWXze21ZWVY}z-hpOFbbp`*2px6yT*K;{~Bd^(Mxfx61v7aoZ zI?4WLHw<~QZKLIkvgdvGQ7DGLtJc1O`fW7vbBD2^u8Bx@j=Nt4%_aQwFVKj7$}0c21ST&2miPE4+;19p&O&tGofwfCQ~b7pGl51B+cUG=zx)B zDidQaC~4}p=IWG4ZaH8kdfm$k6)QW-O+;DcD&P*=90)?3?L8VkME#DJ^rz0N-MLx@ z?0U{JSN>D|`KAHsogHOkSnwNhU7#m-=`H5l^R;qdICNQGa$mLi*jo>3m*qvh;B#5| zqiU?|5l+wX$?M^?d)~wP*XBdl^w!RyQ0%h^eGnOUv=^eh>` zv%j&rdpndK)z;Hrj%gwy;*U1zNP44vt08nox5ug-DE!%F>xXY#QNekOWGH-P z@(c#EaOAt+9@f5xw&+ls43gT@$Cw;^&xwCYKhoD*0bs+!Ox4$^q#$Bd|0n*1E%i z1l?ngQuH5j=Uxs+dLV3K|AxcB`-{HApkJ z&plQ_jEM7!58-mfw|BO9%#dReqI>^=zn35Y5R%^K5cPKck8vRnmAVko?ErED9hJbB znbWOw7d#m*%us{oG;x5-*2_QCe;{$6n{X6KSO z$qWsO-XhsQ#)$|?4}~n(_@ANq9@w$kkR!*hDH>#k)r2h!*OL zP@li*xqoficTDTAOQ8Q--`?und9}9{IC|UOd_3D2S-}>9`-EL`rQ$Dx>GJdOdCf@r z*$t#(1EEs3Z5*LCl*Vwf=Uz^rH^+bQwHL!U!h7K7xN0Q)-IG`J+q~;k?2}9>vv1Lw zfEmh)Iz3hf*wB{cvWXH!2ezq{Vv^p|;4RmGaicMc^W)OPf1_wRmnIrcG2`yHZMD50 zd>uw`zdwn=d=qHao&Z%haEueDJofC{s-W!R8N@7!!HujDt8Gib{}_{Mm{Ymw^(9J6 z_*MUyTTaG8eXqSf#^u|~`t>fUEmRZwQ4O9H^L*9C_qbm)E*o?m>TkclF7X|%n;JN9l;$c4=OAU(6ELPeb2Ks{< zN^yBLHWbjz`^I`3Bva3RlJT9AZf3=f#NGn#A5Y_=tV*h9|i16PX`s^hS2X`6^aUl{~r7&pqxD5R${}Pw5IBbQx>48~xb)`BiPS z8?iO?7V#{77*Ib+h(~jfh%r-IyxFIONf3jUB`{}5|GV3eC9yd3yA%s+E2?E7Pn8=R z-cMlFK4~>JF#^42L%X#%^p280GBc0Ekf7{+K>7qfY_QQuKu8eBjWULI6l6+iUDZI~ zXg4_fr(4I%uJZ0LSCdkQiqXhdx0*lSH#o!I#)J^;^7jsD8NJMTKLnRtLDFcdJGaY1 zo*tfoEmWz`GB}z7`1;X@cMbeV2ASIh@yN1ch3( zSxSsDgUAT$!ITt}fqiIRlnTT4&SzIYj&=g4bxA!GhHUIOagN$}mLjl5uXV~?cA??h zHA#39#Y4}%zJu*WM|)A)@=H?U`<^r6%nvCs#f*R#*^n)@dku_j4Vpie!UXBictk+1 zd3Lb#AM8pHBmnCSJ@~5mI5bm8LH+k2vW>b0lP?thCISfaGIIqhonLmnr>?u6yw7~9pQ@Er3Op~uqXcDs-EmWLZ!VdLWb#H86Ci{kgBuk_^* zs=smiG-J^~qq*&~=)lcUv6`jUlo9rn&spE+{C0vYB8sxqYH>&81Wp6FaF9DrW;yhd z09N95@im()w}Ljb-a+M_cVzmM>Syf-NoYLUzHlle0HX7Y*mS%Vf%2ld{*~J znlzU|MPBXBbDUk%O^JM$j0#jioOcb`ZJX43mVOn4TOQo{Y$mUd!L)1w&5rT@d)UFG zGOZ@1Oqz<%^8{@E*umDJx(AziBzO-t8|`0=h)ab_U@Q0yzahws_br0?ZDH97>DdkU z_*2dAUi&*92=J+&JUHv}Kgf+b=M|K%X;lG>Q%U0OM34m_Bt?w|LODC?AHDJJ9~moB z1#viw_Q%?ARcIz}0MnM*Fk1k^@A#qf%^7kmZd^n_!#$Pf%ZTuMh56y$-|dGQkgvq( zyb{XeCKg<+Zxp)zOJT1z3!(Z-J-CGSR4%i1yD$8~jS|uT8PpFGrI4!82gF4@Ow}T7 z!t96&g_qbfwka856})lIp*FEl>cO?@imE^%DjncmDAY8A|A}E`3RmiBr9QFHrzvfy zxci9_ZXj)%p!&8T8j5vnkXTEH*eubRZxDpvrc@ ztx7lshf5GU!q$4YpIe<~oUL&Mz8xby0a(1N`}bOUYA&Gu?Q6ctX_nyZCTlv>0kom# zz;`g;J@h+~BV=#{5Z0>5mr~97cWFZ*F32;a0X7OI5duoo%`6ou?1Yq9;2S8oQuL@^ zqg$B|4nnoW^)fKeHg3{>CX0Y9BQh>23~X^iwCsfoV28CK`c^17$6%Q^Hs8~6eF5FP zI_f%SYI=CJFg_YmY#5RaZ0q~4P4Tyjt?Zk;E0K8aaT2Hv6CsbwQpD}^Bzw&C0NI1C zU$vevK4pr-@eR2yjnBur9eI;&I@QP?W)CnD1n~H`v$I%-eH64^D;W~O1e9gq`l8U3 zX$jPtMS<@P=w(d!!}cGcZ6}Q~pLrZ{9czmw;Ap2p%JfMb0y@P5GEJa*(OMqePpA9n z7_1kQ?;ApYLZaM9GAC1KX+ zo;pMcSVPe`HZkQ$mUNB^EO~JY8)j2}DC&dj>+@Xs~-#ZFqF$c;>Udw9HS z^f{bgh2`c{oN#r7`{!G`QWj0M`JWLi+~buqJd)rk5&+o0fQkc*haa@3(@_VAG-+h$ z(E}xwBQISaUDpRxH$l75d`P5>%teV7`o~yvqYeUiy5H}8o{$DF+ZVU9gAbHm5!a3M zU2Qm3#^7+3R-{#@&g1wLI`C%+MDT*F#S7*ERba1EaYf^-sm$#`UGjY94ZapuV^vx4ENYt zW9hxDTx-kpq4KflK&9{)a!#5VlOq8PCVLDbT zZ2sY)zF(ZcP7138E+hxLwr_%uMSJ6k3mC;wI#~S-N&Ht{W+4R*wy5+5L(OZo4u3*29C6{m51@#1Mav+fvW=tq?y8Z&)-H&G1zN}q@ z8~_rMJ41^554@bk<&~a;$#h1)uQMin4S}cHjbPADAq?m~^zH(~Y9*=F?k&m54DD^S zrfu)}%Zz-%NpRGD;%7&@KYG;F{(w_r0k?WHNM`&m(7Bo-IgYgoy(8fEs;#!4Ge#_z(=A-e8h2w#q9sbLcpq>dTgA>;_^<@={<#gz0>@eK~{CuOdtq4}iE+uveq9A2#S)4*cD2D7Tf zY}Xo4#6nw88pT$;rUTr0vW_`@$;rDt-UGj}DwQ-3O`jVNw={6^;V~HFunTHJ@>Aa_ zoBZeg7of6xv;G#__&|em06Kx}DnJ$+ImBLMT>gW*|6(={^7+|YOM(3x!L(&fE29?wLd`JqL zQ46|OhaOt(*FF4u1s~{dcr#W$M+y`#9J<^HWmV*G-cV!)pzByP!8THTx=5gyFHWv> ze8x_kr#xp*^ttl9PWSe>lHF23V ztp%{cJRFvZJT zGL{#?o8AVG^X_l>==)t(H%ZZaobiavL>1#2drpj zBsSRxy>wIY!$2WEL7r!KgCVxg55{E&`37a-EEn%*?0nP+qRBGzSvi{cI5~2)tidE; zU|hpwT+ywdDavrUGWL~tpW-?D`#!EVU7Ifus`gXvsK5nrJ_Lq|55iZ{X@njg<_8;QiC%Kwq<4lxz+HBgh9>73gQU6ko{YVhKTDI5=Ck z=(AqC8xx`neH>J1eH}-vw7aSCp8OQWeP!K!1=bO{OVw22d2NwH}OC$iJ&oRXF>50aDsN zDJS5jiUrx8)I4}ixCWKOo?+I$bG8U&NP4Bhf}uSrzhk55W^Tt=^pFYEC`LoSz^ zjD`5MOu=O}jLv`ikrD+eT& zLe(Hni1~_J$dd$gGx3(~w}wUj8yAwQF_@Ej*-lZDo>>-}7Z2pqU*>r@9* zlm)G{ic#olq2yQ4Y>+%%(I-(%PCAcT!+CaN6dKL0WVRL|dS|bi6|>fu&NIz$;{2#V zSEN#-49_m+e0D+2K^=bQp(Qzq8mqdVh4sQTHxo6QqaJJcAR2bAaA;U6>PZ4#cQ3^z31pE3ZjhzmPe={s#m~8Pl9jM`g`cbrW z`Kv_+`V_-m%sH2iE^fT3eoPhR`X^%TO*K~EUz=8~wvTxkmL6fEw#Z;dx)mz6csiCs zw->DoZj*>XLr`{{(OmEhO|jQ`+R4;tp$(&1OiZHq+a8`pG9=8EA9qQDqYtJrpR)_4 z8EK>1VU{{w-XkXf`Eu@Snm%1JZ{5cH2&(6cOw8j4s`VP&tc9g5wVpc0vnobwc~P75 zCajSNa_B3{#=lXW2c`3_UuKM(EBzh$#`;wP@J(y5(MNQf(65{Ofj#eo%=zB^c)zAT zCM?Tc1w~NjSgjr4xdZF{Jnx!!OaEX|T$EdfQDEE2**w4sw%&+G{r(n+#AsQaCri6r zm&- z%zYP|Yn6z(`(m>l($8z&&#O8P&;_J1vFA<_wp2-U{_CG}quzgW?F&zvyBc2XZH*oD z_wQ3paNEBsXdm4j3LlaaZLgweuykYiQc3h$j~`l`QG3AB;NP0gcu`v)dc*{&QCzv+ z6ExtIIR7cFe~pKx?%X@~H1u4o#2iA>`;wUGIk zT(D76va!X%pFQPm`8&f_6RR){IpqQE2Ww}+@QHo3l2fcoaDE`&b>Y&O_A4zrq!M=Y zTc{Tyuiv$D?A{zRQ^s}0ad5m9M!Jt(Vgiei2BRmq4FmWP947EVj8GNZx?xLZv@48-Uzzuj15q98v?Db%F=g>kCS5C(@Wxc?!zTfry zzZ`cv06agjnmgPxjO$)*(@dSn+K~lUYzf);{gw-G&nGjx)wRzKqkEFt6ImKwaJOyv z4`>YSjfnJVS%2*Uaq=^e5Yx+me}~n6Vd`@U&^b+gIh1R4F3agJ;~3C97zUJhJ@)c{ z05hIPm%Rpk-Qz28=jZ-KrsvGlDtPOMkFX!B;WJejHOb!>!!IutPAo^{I{fm!{rz%8 z1iAOhY=?D565m}HPO?sC;66*{xP#vO)|Bih=zlUV!3+$P3bfZNuFI-ugG9EaRs~ZG z9w4uOShwr>NPb~3@-Gm7UTG1yKWN>|q`G>tRD3Tp*ZVxr8Q*|rt;#$-`9?Rv)zf|0 zpr`SUC-~;<2-$1j#JRp48(B_5*!Z>^!4$FOfo3h%Z!1Urb57}cOf>o_>phTl(BdS) zWSHu~8@Dc4QzouSwDVxY&G7&}_AdmrIg|nEgJFoMEq9V8^&p6|x7X+`but8gmu?39 z9&cIHaaZBC>obOVcL5chlIMd?`KK;mC?A`%|LB*?NO+>=4+gz0BW9DO0P>n)5<+Z6 zF_RyqAuCS_r`($~CKDca*g~Bt2i+n86fx_| zPVGlZ#vLaE#pjP(9~VoukeMnViqH zPLZCfW$_%`CFl4aq|m^$4Q~HDQP&%f7G-|yr_{y|j3nm%)w#N2OYqoZ^y$}O$-!;A zGXQyl4+p5ZvcqAIgP5M?ZXYgoGtwotM{T%1Wx#faT@KPDpN0H=|H!KDW`~Cp49WA1 z+3Q{ZiN&zz2W8Oa3Ae_DZ7<0*{j!vw@7NW^Z58bCw6@l} zt)G|tZ5?mUGG+!QgGNXH@z9Kba^&=YK_M?n*v*VG)gHwwrm3Msi=<6HN6?uBAlG4~ zYM(Y}8g+Zw|J_{p{Y0}X@gRD~ZYtdLgtNKptyH|OlOKqt+>sL zEQ&>m^Yug^ww96DKyY(KfMV!}1G%_Rx1(k4I*q>zrZ}ibD_k>qc1_$sN;B$M7*Zr# zsdc9{{zIW1PO4p{O}PLe_*@%Q?RXa2k+T>84f=`xwnQSe{{fZ$J+6%tc%g;k{r2y( z&*scC^bGLo%qx#16Hxjo|a^vbN%)*xe1hSQJxtp zYAJFs+K$17`>fDQ@s<{i+$c zy7-&`TRC5&;g0Eqt+VETwZ@AWs-qJ1s*U35iymso%9P|@=*m8?^P?V9OW?hgg>o>j zQzcn;t(5llgY8~-nP!Fh^gZ@=X8&@1wM+4Tf?b9=$iWhR?6s;R{dJ|Zu|G6RiEEr$ zZ|jnmaxD?sF)?w|uaNT18x7x{}Y{7EeJl)xqs`*mmnI=(f}BK=0q!UCzs`ozq{{f4jgpa2jE z3vI;T*h|q!@jJ9ALZTM$+*1q-WCt>)jL8c9sT?!cJ^3|c+coiz7jJVQ_;5uw zRBu?4o&)(F#CrOiQXv=T)`-a{FPa$S;gt{Un-R3}Rz$&oH8HVfWEjQ-d$fT9zuE67 z4^K8`;ffS1!n(M@5r>dPmJKYQxvAr#Au0FVNzjy|3;48)R*K*NB|I z<6RSO5CPuPF4cFuzVCbZZ$4AfJha-LbgD31M(4*e@EsF%B1pxmaCH>e_xRc-3vFD7 z3y=BIg2s+K)ecD+n~YJ*vm(&to2ax*%SSIUDcbm3<#6IRBg)`#6vjrC&QWliF;JOf zp3eDSIG1g!R;+vN6>GNrvJM~S{N{zgEr{g9}Sm0ZfsJpD+gP_vhm3ka_awYy+D&M+LQx?aDv@Ji9fgDS57oeYfBRZkD`i zRLNIfA!gOv>k$i1w*;)uZtE*24d{32n4?|v`+iWzU%T8j#GSS=Y84Ba01Hbu8^YF7 zyvD~yXhrBlfryX5$LBeRUH=Y{8# zN|+>jxjt-;tV^hcAmJmu)=Op?T^rQGhpO64%JL8-q~}j$-neE1)cF!4vU=9A=j%+{hfn&jRXecPR*_ZxJ3Mwod0~td_{~e zA3~pQNj^Sy@)2*8QFyF!vlM&%pC97PyL3O+-&zmnPGA(xvIsMxvi1ISlOA#+NOHSy1bl8W*i|uzMDj`Xbn)@?)bC zCmcZ=750)$SL-?L-SlRe?UDk`-4^i4Tb) zRvhIytLn3cgjv@EIW$f5H2z(!mj0yH`1$sF-k0s|6(2d)?3(Rd$Oq5HHdk@m?H|Lv(He$% z`kvR&TpNEu*E(3^s>~u_fB&?0sDoJGCE+ie@7`aYIv3&MH%~;>A^@-NTCQyyba*U8O(IPT zWWqrP77VpsSY&XoRP|DzFaZLMqPx=&M-XE$(+5&qFGJuZp{($sz8xx6us3wr&~MM3&}CilQfoKM7&*u7Y*kx2T64FJtbf+Xbd=n@F^eC~yOr$vwbwe0fGAwb~iP42#B)FJHGH$c=!0-MgxYxhyc!H=4WS zSLc_q{#XB~QE2=Q(WE9ZUgQ?=+qO2mGxHyW)|+YRC9i3WsGu!toh>EVTRmrJ#f}u< zwWw866I|rp=)iR!{t8QE1PtKbe=5d!pCtQz#cuie`#hV`b|sgP@WW!?AbBkEHGFI7 zcZ(9hbZ?e`9)8Jkp0@!8a3^hWt*~3U!<= z`E8%rT5HiOj0m5XAQ}CpnLj6qET9^TK;mRoTZd^JW_JGAoarDueojJs(%!vdToa+x zf1;rO-@co2^$6aVQ8F@qS81KWq_HBGfpxn4H2pT2$H^Lvi_DqVQsmltNLj2%wyi?I z2NSAiI<8u8YDT7^ZY4uyqD~numm8V5h=SXi3L2T{!p?Ka#PmJbgg;~ZW7Ajer_fmf z?D`J3A%}GP1@<7mRA3r=c?iUOXX3|BjX+CHC@?+)U@Fniu6B_lrRzr^ZB#q}3%dk9CwZasV0G9KE$!H6C&Kee5`u}8gPO{d`rK0lP4Lfet&v^)wB_BpOhHSYmyaa5B zJjtat9{BCAVvcpv%FIG{Dk=Du;-b4JJ;-eZ2jKvCsqOWq&>t6Moy7RZpUkrgr3Q$gGz{U){Fu|` z!O3OCuAC8XUf5Dq3jfn3flkZBqNpf~UZneVz@LaSi_wH#tHZamc2fa>x;oAwN6DG$ zMWq9s_nJ@Wl_xXJ?R(3Fu1&Sm^}#9|Zu&#mU0?V8(!JvdM#V32Q(Wh$1la#UaLi>i zX{4xN<8LBoCgr10rQ|>%6PfC}fQjfU=jS8nXvj;H^ZL5X?307TV_Ww;1-@>K>~F$_ zcfL}PJ`{%^?^F7lm7Hb}ZB-(a> zGo?yvFhCf0-;H+&>z+_Mn->cD6UHa~RFqblF-KgDzz- z(mc_FAZ4v-M$niq5#cA>!{E%tN*XW0@0@#nRnt{LWRPxjl%BFpg?al8)e_2ZN`T#; zR_Vx%^1hisv_WYOX;%MIeB}ArF0i<;w)()?YiwNPdHeDl7kPMq{RBy9=X;c9kK1m~ zLedzl%O9==1~@?teT(JqF#+U)kM2gF!H!A%v-q`^km7630)as$-1g_FrhkE-*M>N3YrjUQ(dW(7g@;`^ia6Q| zDu-I)!?0%Yu&5;CwPejxm6z%io8TV`BSy>?M5V2MWS6r|80Mh!ajGAeYts7ru0BMM zJA*q&Z9-U4!%OcZY5!%@ps3r8Q9FuD}=XQV$mw8z;LIir1%MdC*=l*86O} z3*DZZmwsdPLnyn}^w{XYHcASe0^~tx<3AKhZ0~c&M19*@C~_O#ZQg99rG6A@QD$ea zboNEJk=4L6cho-6c4V}P0<~otSjHpTA_p(rjD1@ee>b|A5$kh{7cCT(9+G>W8CkMx zW^wn&3FNm@{I)ke9lIu8S!pDDD2o#J8z|A1XK8FQYPZ=rYg+z{HE~zeh>1)4=%p8h z=~L9=B~&e&Tknr?I-3;efp!kNrGh^w4b0V^ZByS|P7cs4w>8jlVd^LF*e|7GU9Nfe<&5s_bWje35p|V`7!j&4he!I z%g5`_&rl3*ywI{nxtjzr6KNB(uh`Cf!^!6xjxCM6z_bGBh%Q@N%eSDIra>$9&x514 zE*>9R#^h%-Qc0PiKmTo72%0OI#pW#w{)-27?&cIzAB|mAPR)~%}PHMHef&H@leAv{@twcdwEe@*r)#2NY3|Z!Hy=b z@lTMmfOu2fIz4mRvNaYkwXs zS2<&&n$yOcuM{J2%DQh4m1y z7vsQ2(}_x(Q}(;8d%eI<*W zLX7{elF?5j<#cDtdjmY4u-|Pxi+#Q0udvJFR?(XjHcc1UQ ze|d)P-CfmP*0q-Rc;F{{=|8FCOwu7_Y)Zz-q4_f-Jfw3v0c zkJyD*qH%t99~Scc$PebZaMTY5w(}47a;}#v9{?1eoeF=+%`-HMiyPwRO)OGP&{0k{ z;+bCo9>Pq;!5kVAPYJ4=o8(ZHV*X%Z#kZ!w@*XDZ5`O4)XX$gQX!S^ghLerpPcGo` z^#)(@9@*2iX0^GKKD z26{U`v#um3{>Oxz%&wB@11kVw7zy>`SkZ0N-BzvSdgVnM<5YYQV~`HXO{ivy67RbC zb;m|&JFKMimei=8ctjY<`}f)X_o)M1)ICGYqRny&Dlu+4vF9}G-@rbF z3$9#m9^XB(xTAp=H`W@T8gKV9o;yJmt)W+<^4{~=rkQj!_RD4dk0|xu|``0saxo1#(P32`W6@pBD3d&vcmE94cf8?eXn-CS{qp?r&aWd zpDoLMwtTko-Fb9!MrNMaM)M6eQ^P?8%x(?}G5rBLGQX8~1C^Tpm{d%>h zkng4bXiuYo+hBC%1W*;P=rHO zIV?ALQTUJ}Jua`}&8h>-EQFI*(mG~NL!D>Xyq^dE(pu9VA3l7pVazBI1q&LA2MRv0>Ha-RJ(rWUpP}=`g|OI% zXn{SIR1hEL)=xO`M)`+JiKgDak`|UM+}^bRBAh{wx)C|~Ov*zpx^6REPwg}DNu5&J zfIL5wopfK!y-?J!c6JS*UI!j8qkB7?=Wy`baSjWqkm;pd$r)%!B8W=;9B-!nm{|FM z=J*wBE!QziKDb)p*&UvIZ9=X1b0H&f;Lb^Yp1QN3zeH2pWaNLGyPJ+1x?L4L3JN6_ z5QpQj78{=+kIyYQ&^poQ86Hn*9JN|(9!EL16b*HSHu*eE*xyly>MWr@zD?q~h-}lF zp`$m$oOY=(gW$J?)Rp0#9Vs!EGlomx;}LcEaFf-UJg|hz#rI=4rQVK$ua}&t`@e>Q z(OzqfDKKm47@{6e(VeIII88{v0+rez2n5+Z(te_a9WdyZWjlddOM)p8E}`V85#xJXyXobu@PEIfr2iSF|td9~+tqrJ(O z!Vc#O$Un)`6Rv_0y^hS)hiG-jJ9lmuyTQ#O$_X}=4-M-z#~6$_vhAJq$|C!xWu=k6 ztEh$h_FVxQ_Kxb>x1q791i#_o--h`#cN}1w`1kKMg6yKbk{06F zxc*MxBKGB5boaP^^Q0t>_dR?R3x-Bfx8@5U-ZA%{JMpw~JE=_R6jlwAv|s(v2@=s( z|I&g}5s9^RS*V{ih;2Nva9}>&^UY7g`zSlNz9T0H0# zv7--o_#JqG`K`JPE7Fx|@<^mEPjXN@Op$n6y?_*DWX5uu9s9d8Wo)#eX!j*M{NDG_ zSuTr=%SobzYV#AI+yP<{za`zs+Ct>yNko3@Zno$;oO-vT)If4r8LHq*Oo6jGOYCnw6#I=huc zKXCh!5=I4^5DL&e5#Y$g9tZt=;q-7W*Dw>E^J%7=&Iwzf+1 z@;GnI0PKH#0_P{Vh3^ADBSnWIKWrf<@sH^Q^L(^?I$23vee_dvr1NoE_59#4$~mz+ z>SfdBG=RyNAk)sd^@KH&O4Q~tG!hi_qT?LK%)1dr8yc9Dr93yqGP`%WX|2ibH2@>*2PdWTMCFFMhOsEmbAi)k+O|5$ z?M9J#dea`iOs=IAOiiKb`h4ZxK6f#5$dlD7Y$4Vl!^6MzA3FxixeU!$7Z!!W(K-}+ zYN&<_!o3gFkT-6?aPd!^XU2>qBqjzrfAE+mO}Ax2V#2WCU?A5u^J%I79!Ne*M2T2f z5JzZhM=Nch7$KeeGwftB1IM((&{w?`x0Mm=Vo^E+laSYiE}_yB64$st{@UMhy|+5E z=WxC#_y!)=l5fv#wSsu;g#Cit$EGfw5zLCIkm}*Ns_;UOIGz#GS_Y2rcf3^kzc!UF z(jjHEvZ6?G`ix2qshN@)3SE4}Lyr7no8br>9+0Gmx#wB$j(2OUKW;mX?h+c4EtvNH zeMNsedCW>j;O?N5Ufq$Z1#RG4HaBKf*~M)pZ1t@egJxAoTk6)9Jgxiuh2EK@b66~a z8i{^_RJo{3h+0HA;y0XWXw8eLq>>ZOBiYl~1ml0pbt4|=OjXOc>#r-HtB)So?Y6>r zxKc-}3mt>^+w#JO`9HAP%`jo1-0k+eBj9HaRPR@kI|YsT6d&rP~f#h z4d^5BfgC?41xFIQ#JMf+O82(#{|z6$Ec`4#7kLG|5W7l5U2JGSYppK_*>m3E&Bplr z?kvSsLpku7uPKwHe>z$F6Zkyv56xpZ0gIU(GkDWWrt)HV1C*S7lg2OcQl4DP^xF=G z;7@>ue+Qzelw5bUbDs%~aSRq+MZ9r5G%x1YbK=`T>CbkgnPECt0g!FGs2@$6_{*F} zMXd4yTu-@b=>i=kHuYOY+9gJ~b>ZJMHBE@TXI>QOaXl^0-%pp*+lEP}5IfhIFG2eM zY6B{n8Q?Fxy0Q0jzGc&4;(;IVs_7I2osfvdZsa(*AUOhh_x!2X~>DKSc zWD+!p2@5zE1%0nquY-C!hDVu;y6;YQ+fv8*%x}K>*!IM(#0c($B9lmi-sqGNw8ZtwiTyu0eC1UC76hxFYy`cAlEqt^#&win(^gyphgeEC# zEtX?fzTofIKferk2xuEI`ru|=H;RQuRM~5i#w$A-l*-(V0{+c9owz!m52IPTck`qI z_mt`nGDLONC(uUhzoc^b8b1Gl2$W~O6S-TKju zOz|k#sNNkBfLte3Rift<^B8*hjPKU_t8$$TNWM?L`gvcL6BwM5^!zMUzd!hxz8&WD zWT6T1nTuFoptpJ3q_?|{>h?p_`mf)$81<~cSq8n8^thh_3~+*Y|7-apf;Ld5AG$g| z`d=_Fq8IBeLj$V_8RvSu`Pa<-{hj7~`JpDVX^nwYr?gr$bt$XP?ZQo{rqfac#?7Xd z1`mtQM6Xw~E)!Msy+Y7vKsmiRo^%vGkzNu}b~`DuZW%9gIWQ?_^!_q?k{6rCUO=yc zgC8f2GNSPrT8-&KLF@iu@Rq^*+RuS=%XXAH3%LY|*@{MZV_#f-4)y$Lv_=>0#*|^Q zsRmmdVdlI$KHHX`l2t(Sp{LYjQ$k&v580q@SyO{oxY;lRdn~$lHsPIf(sv4A-j(xl z^@6#qzZ2fB{UV^FuaGyaAZDe`^JJRjK~S4wA=x?Iw6NJL!IdB_q0EQt=}}pEb07ZB zVLXEQg`j&G@5zFLh3sct36U2RiPVF-!c~41vXVOzW_7dK2Quz|&dz=j6rFxU zcvd=E^&k0T&0u%2rT2P8ZzDCv_X_(nd9Nd`<^Br}6O^T4Dh~JssoI)lItTjzPLiDV zwUe=vL^!fd{?TUYOU14LX?R6?>=IZ)Z~q=)#IML^tqI@1r6pwR-p$hM!O#vh{?hj- zsr^d&;HnqCE!F>3<2Lfhcwp}2U*R_be$blkOD`9wHW66WWUkh5IN=U?yPFrP!zD#h zCeuRZv-e42?}9B6f}65melOCOM9k_~>P?vBoeTK^%F*2IJ?9lN)Gz4IlB^av$({51 zvc2`~bL+h1 zOz*Gt+Gt}seps6|{BssS>Iw>yg1IMf{C6$-Rs1jH6Pip_Os~1W>zsvuOVwo-MJqB^ z##w;chOn)uOs+w4Ro53~5Sh1i9eQ$ie=*f{cbUD>_}&Onkeugt;k;vY)@8Bug?oWZevMay&V!6l6^=ckxjT)Z zn!*78V`u9hCXhrZGub}{8xbhQ5_+n%^@V79-0OBr~6Ig0Rb=aj=V~qC{fVe z>6O@cJ*|nRT=S$btl^YdHEM&uhl~KMA^u?NX}aR5F0E*8i*%-;!CV2%r60PN={xEP z4@gA>FzN?+G^sw>*Oe=0r__1R{XP9?huW8fjI8N5HjmlR-|P8K!!AGRk|~$M38A^* zP)9^?eK(vOQYR2Q4RhqiaQF;oKp!92o%GXrh66n$&80i2y~&>L84awWfP<)x)b!g} z%*W;(BM}Y31?;`Eg!Ain83ZRt3gOpDhi5IrlZzq0%Ft(r($5w%r7j}1QHtjk{U#5! zH1RUz7}^e=lWYta<`ZZiuF=1%ZhWe@5hi~T z^Q*#xV{p85ko05T5?LD?Mw1=SVop~`%@K#bv5Gb%OI004s@H+&Q-jMBae`k~t{38t zu3y0=uA^>?)dw&rvLuh&SxD{8+4q8*m7sS?-&eBnxj7-p*OMc!O>&(;&j|0lhr0KI zh+LhP`pci*Fa&T*nwgzZ8N*8Ul3{pithL!k(fu^Rx`yZYc!FE_)@^}fvwOMcgV_%= zW2nlYztSooOSkJWKALG^E;$PFJlMJl8h3G&WXw4Wv}_Lb;zaS8_su(s{sb?HcQ3*jyV!FovOW$ z>-S#B_9>w!`rm*$6MBE40yCL0%B5MdvqGt;?5tyy0q?D3Xtf<8 z;ul;c970QQNau3ewUO;4xMFqx7;tSY{Ej$3A~R%?_L2;jqD(|&4o)cqpzGG2dlKWM zK`|`&gHo}*~^a<7ho*a2}dh2vZ&qQipOZd^gdcN_++CAor%Hl*0EM zcN!E^bOS<(&xk?fV-Lv~JT6j96P2-)?OhfD$cQ-L#^m_P!rpLA3iCSst$*2l+*fuQ zu?Vve{_2)w@a*+Rk3#M zI#6dbXR7ca4v-(A+B|$r+(_FX(B;u5Mlz#s&V;TrnpE~bgb+2O^0L!& zEglt)C8j3{pZ11>7F{?kB1R12kbEbVK|HEG1Od5MHl4=NK{@~7DgQA`?;P5S003gW`NXp2j63-8AtaM5Qn#F zq1!@+jcOH9&`Z~YEmTHdwWdd?uFtYWc_Oc>-T-E9vTmRgl63PXjTYggAVOpRRN63f`Gro z;kS1Zv_cRLilkI|Bv~rwxPL($y^iN#f;JlM18}&iD)2&mvc_-O9$i6P;2!xCf zL3)NvNBdgdIfqC0*BbMks$3tK2M5k!8)EmJdG0_RpEMpT&d$r!d)j+8tBQur;?uKP&fV5SH$P*HCnrPrd=CO(c{TO=U96mb|c-&0dTO?^Z%1GS* znLo$R^B?c#xsb9gy}CXK#+0~ZIQ(#a__oLYAhrnP$+Nhzs+LgOJ{jePigx)IUo@<4 zu5v{N7^S*$u#m3D($5jX;bz$P|8${9L~_`D#Lq~%t|g3BZ2$T*DY!H)i0Ii%oOb>B z`7EOiC%?Yz8s0(-*5c%W8SZ(wNK49ozNpAZUgj0~IzHdU zjMA!;xv3w`xUPFR;UKyn?Rv~vq*U!^%=1F@#kTu~|9lAVV<%2fh_W5bnkRMM>bic7 z3Yca8fcZCjad;MN3FD<(ak0Rx;Glfl!A%9tg3~C}DsGu;#h`0a4+Zv`DF<;z{tG_l zx#{=Iw@xyhAj2zV>w&pd0?0VG(fpqF@c^#<;Ka<{rnzWNahuirmoHdNDT%brv#aWWD_0_uT+~sd$ zUU=i%eGV>vc$DHHEV4MRnhojpPiac(JSNHVX&p905F!Rl;!cO!{gNU>gfFbK!xd&%Fc^7^F$=9|C5S;Mr@SqtIAUb`08o-OCF;H-;I!`h4k8*i9Pjh6WnuP*4V z8+Tk|yxkC8xTVnlz3*S0-W5RX*n>gAuOmO2hZNKR20BNT?=Q>j5CaSE? zUDA1nbH^(6i7h9!nCwYAaOl?vJCknatF`R>1l!-mOdUM~wFhW(p36Sqi>f_`F^^sK zEKY7LLU35YLLLV&HvaNA@?WQ~aL>G2(FR5pu@E2X|F{r*`xx>eQ29hnul4?9(1)QP z?7_r-^nv8H%U|g8uSkmJY-iTh9X2+j)~tLwGA&Ip@A;L$v10M+{y2M7QeQUcg~^$N zRKuwB{fZzS*q8gHhM%;r8#IeCg5hX8y?CuIMfw3h=Qj=^DXLUomlSidRepL+x+i(2 zmV(d*P?T6cR4E%^hbL9`UWWx;sQ&g(wtR%&mNwg*x!D)WV!gjqpPxDkX$oUDSj(xC zFrDG;L@UyUEuRx?Vbk$Zt++IH8^gl?lfnON<-%{wl?4Za15#N}8qgtladt%gK@Q!O z{>b4{=$JOh&L5J|-_U|SK+1n7Ob(`q zPfTgWS>tIt+)O&Gp4*ef#`|nfUiIyrGoem28kUJfH{b`2WUbQ(BI;c@klWN9yDoLBn(uDEPFNgd#Dw6@LN zkFNAI9}&Bd``Kq>-sv9iUn#iVL;Yo2Wv(V``#vlKb;A_n7jdkGpMrHRz`sK8!9N}M z@Usc-#P&piJQLo8so}lkmlu1SJB(3bX#Bqib)tGcCTekg*1TBSC`ZX4{ywCvI6ApH zG-SDW8=Ko+-yn`SI+8{am52;jJU(eWK9QV%Zd>c)-1Vn1Zafz5Qb5}mB;Afse1zXa z+&((|l3r`u|II%->vF5`x-tGTF;wU?zd27^{DqS28m3fTwE9r@$N7@Ucrp5qZ7jzK#Mobs!5L-if0HCzr=isoQMy2t=HYsi5>~s?H!jJybMXH`|kD`0V`B_ z^S(|(8x5hImRW(pLC5RY8|bIFcPurStdA8 zI+@aIu0vA{wa2!cCdmeedDKm>cSPye;+fLw8xtoMQNNP4A1L-ubqqPf9qGH{^PUx+hhOtITDsF*~60x zj$9{m<4$*&HjFdp9X1Y+wW++_lq53^-@9;hqk9!4EFV|(?In{$;6!>N?9Xs*a+oFF zw{!jK+ruwBAlwe&)@-Kvi}B~Tl@{~?3(OQWKV_*jZqqudYYN~4d$$^OYbOvMv4q&-Dyn z7LBUjV?to8(Nyz@vdNZo08m?&86)4AmOEY{<9q)Z?fPhY9B1fQ5+YfINQT)!CPRtq z@bj5;QZb)NCN`9r{d4fZH$44cCegmUuk9^Qx??u7&_ks;xdSsOCw~1-q~$GE#t0ey zz_2J*fqzGa3df!aj8cBpNTb~Dimp35HCtuF6}Q@!VA5#vT1gSeh_yRKCxjMr$BX9C z)5frW=4prsJN;vNcO`S7Uf{8IV}*bvGaQ#d!|1c4q7q)0goHV-UBHZ$3km8`NKTdO z3}zUhhxT`o&M6DZUC)CH1_0mvtPZyY!P}zOFQBrdZJ>pW44-E*#~9!Et{I0ld4{5ndvj2of`?j&+%$F?l`c zFEY35t1(sUx1gSC)1olzi=FBHSDZjMwUf?iPs;6L89Z69WO@~xS-b4UQ!Vbwia!?^bsrghRZ5IZHfF4sA~LGZ>~UIi68}#r#*#KD z&Q9Jp_2eV3(h}|^0uU9%%%!~W=B-0a&gleD-Q@$T7W=)av#JbTN65OqBKZZ9hIPFSQvglMnT8r#8)sTF-8j^oer2qUNj&Djb@H$+ zP(HY6d-BParOXwEYG0v7WQ;iWp@>+fM%gjVI$7Ci^0KP^2SKHxM%lhkMK1M}K4|sQ zE=@I_=iB zLOsQIGIt+dXbZSYjt)Lz0EvD@+&@{pJSVX6D`iGtdiC^&_(<{@NnA~{1IviGqRO&j zC4dh7h+2rK9-`R3kuq+%*!c;}w*?R=0S3KUqO&P&y%Lk)HAqr^0Mj}-*ojsLsV^5k zu2d84CCF}$Qz#b(L;@3oCXaRKdqG}R;9SxP<3%=IY)a_mu?!0;k!4bJN;_`L}(Sr6rq5^80sv}*^EP3s|0I&4I^ zwYt)(Ctvq|_q`YoSm}{E+8c^Eb}j1Z~H5 zlK{aLw%Bhx+Y5&Kw|2cTolzatr}HGQb%j~Pbz{=67qh=KF5H}Hx`DsnngXsb4e&kX z*HZ#~$8^`@K!V+Nl+mdgIrZaCI`!n`AQrNlrjkPUgDM|4xlUg1@^60nd8u|)g5MIQ zZZqi)ijPCMF$PW!^w&Yp=LhLMpTICrPC&2~xhS%jLwhCFemA8 zd|6GG#bFfQ5C54BOy`n01j6@mHkzs8o3D`mZ)Z{k6llU4DiXP@#0F)d21TO7)EeM2 zsVnsX`o~gvYg__{P+b~~y%(@J0t5HS!#^Mi!w3X6?(NZCY$u5X52P>iLxtmy#DFaB zIquVtj~~%mjKNZm?Q!zQB@5>}z=`8@Vu5+vP`lSg4>@Jv?ke^pQKEr15GrQls*kd! zpmu()5>4_avyyk3bJOBc!Xnp&Yv%_gptcIEIJmESpm7ObkU3#@-S?a)0)pKu&RqBT zL{(XX^-Y7i+GwzE&N(~9F#ku(4&<%b$~zMlzl$nGB?aLz$^DJFF~Ac5dbs|F6$Hd~ z)J_RL>)x|h@4rc3g41tKdQB;|g!9#F^0@`V4;!bXCa##m>D9F>tsTO!NAAo!Q)7J> z(c}tW1m3Ryb>)NXXP~O=wkUcwZD%Nfk@P40zFcTKcTcmIBm`3!wpeFlTKf;NdvmE1 zpH9I0?sk%-{@#~0w{?o9cwIhkb2s|}B=r>X0_<7=(`7g_Pj9wyReJyS>PL2{lK|?0 zGo$F0un$1|>{y2;t^Nx)xk`0}afGJoTUu6n10zXddGgHJKIeySjF*4juYXO+o}HvO zij$T%0k@IHDaj|MC(`;=T1k4Cv^^v=oi#VV?y;JbY>m+zIp&{)U2kp-O(zeUj6fko43;dpfJ-AS&d1LTefweM=%Xkjf0-R-$ZT~QyU0d?}9F@{O(_O?IstK+nH!oRhprZPapB1znmblk#B z*A0=_>VvtO$kpuaHvY}f%7k-)oquEYo^UcpkRh#u1tS9C2nA{-L{2F_uY&x(&X+o0 zs*e`fLlqQ_@PPuPem}C)x$4lb+&wW0yDz-QU10Vw&x}d963oG{vyNOBU1!kle{@l{ zoCT8FkUGn*H-5kRRP35egXUx3IbMo20s}C$-+~9JxUkO zqfPz-ogW+Shu0cBAV94?DUFtQY zE6?COi$|;W$TTOo{E4Xu$6$O|#Jm!-f(Eu$%Itua4k1|nx=W?W!+W_hy?l7TpzOgq z+80Uox&0$Jn-qoS^D}6MG{eQDFquWbK65=3x|Huhx8dHgT8jg&PODo1#f6O_$Z%XS z2@%gXW8frkPC`D^6KI7U_ckw7w-Y2GBqJc79Kz;7%&qlU7Y9%Z97B6DR)q^eW2DS+ z&ba%OEEkiuLx3HY32T<^^!<2+Syj-)MusL(ppy17EN6F6n<_SthD|!v-Ek}~{lH_( z6JCO@IZG?&rIG~5k0zq#9*+59HpT?)zvIF-bNNx7f2f8?b}VDze8ObO*yBjUp;v*T zF7#C|pw&!6v(Cjex`-^?BwIU-Vu^>Z+SXkB#KD$@Y*|TXl}ye}BZ>1OWi00l!&CK# z%jq}O#9I-%7q27dTpkdc>?*mQC$(ZRt1z=p{jXfkn}g55>lE%@Nrpqr!dCl8&TWCc zP~5JM_jyUqA%^lcxZ@tqVGEWW1$-Hfbb-rm&Fr<#@gbUx37L)!B#xYSlumzq+I~7K zA~tHq5I4U1uDIa=;3>Gj8}wLJK`z)FJ?HY@gaZD-hl{~71k+UqP+ z(iyvgoI{S$)#q^_Adocp`vs#n;JFSIEyINm5`%^3q4;@wTrwPEM{CY0NzQbd0gY*% zae_hX-9hUuAvePCu$?`sU;i(P14U|xYg6cDea5OH4Bqerr%hZ^-5p~-=&8NZo4HU) z1?AQkpMSF5kcH4+&_a7xW?)eD_Av6j4$cx}?ndVdcUo%Swq&i&wt^!0q&?peKszPI zaA|%OSK?LoR2vrq}&oj(Wc7Q)g#jzN4&)4rt(HMoUJaq4-$+h#B&K{%Cq2 z_HzGepn>4+K$}MsEViu}BlQ=-cjakedQ9sf*ye-nkOqG0>&bzJ_O&8z-k;X(ON1|w zGKOy#G@Hld=GI)1qV#OT9J4=E`#hz$t*O8WFA@H)T|FD+W5#{Il0Xgbl`Sn~b<`hx zdEetHrvJam>^0>aCYcJz|A^jjBZ?F zNm_yVm*<=RGcv>VYdl3HB4I~Oz3Nah8$Ws~WyHpIuc%Cvya2hIuJ43W;cZ$Srs4aonNudQX(erLs&m&B|;|%7wcy+gm>M06~NQQ2+GWBDA zNBm9>Dagcf$?%>s9I(}!N_&0*qhm5(b4cV2BpVI0SIA!F8+bSU=&SJeW|8OY(D^1e zT7%np{k*A_aepC(VaEx=L13SJB0nyyfMuy@HCJqOp+}woxBKMxZ27Td@>!-k*5SBvOR^$C**QmV>uko#9pgyBnLShu5iId5JQrroR-HfMUfYa+aj3;yfz zkSNN-lT6I6H%PO!o3EqirZVJN6*sr!kNz0Ms_3?s^v`oGcid!s(^fgSS-umTxp0N; z$iHsv;-=oF{@eEcRlorJV%{ot3td7gQE_%o?Q`4hTJk!b_%gmeSsrXngV7F z1!f$CY(E%J1SM|9le+RbF23s(VzO4W@%;$t7fSP<;rjxl8V7pKV@c&O>*UHxI(gtp zbZ?g_o|Vhks~@*h=Z4H8l)ePl4yJ%A(O7Z;hB1+$SOw;^64G#Ztm*_vQ;~St7ir9x zJcd5xb+;9NheZcquK`}_jf33%Gc=D!>gZ(^BdM2aCzoSa-}5#cM^|U_eU_?mN&A4m zuo??Z97b(u@#IWfgxra$zuCxt@@>twWI4$UIBC&Z2q{Dy3mc@S_Xzf0FT+VBo7ztx z*>+nJBVxq?s1e|Hc*NtWZPa2@poQT7=G^-)lSJ{d0T->r$-(*14#M-GTDwC}f=$0y zYs^_GGdZ9Jsfk30>O(Fp_ z<7B@+SK8>S+fr4R*2`ceTy%Sxozx`(m{;}1${I3QI~wT^+aENFuMx zIGONce(&#THp2-de+B_TF+c~+*?&1OvZ+$KED&!E(uLvMTF%0Hq6#4NnIg&iiF~I+ zsU|4^IsEV1^4Phw7Jw7zo&=A4r`pLw?@jqAfU{v}*E@k2T!Uz-!kKL$``c4S(TYTK zUP;SF{?c|0fI4c-ppDTm)8N!E&j~;(4%VT-dAibjEhz7hS+LHUxS}ohjEGh31oRH& z9<{-5#a(Uv_5!oRclGdlU#2R-x)-K9+Mb`%H!g0BtM`K${0G+3Y3mC?(z<3_0^FCG zfhgv=gWkfpcxwGCwxQ%W{D{=@Mkz1homB90#rx|glgdHS*24g>vpdyf_P=$N{fCn2 z5G(w!&1*qa7`mLy&wS)cGuyKv8c~tAhPMuy$8i6~(c6u@?*I9FmnR+oRRh#t^^sE1 z1XxKvi&?GaOyv3Zx@81_OQ=PoG%ZNU{!!swF1R2NoYQh1686q3&GjdWqWddF>uZlRNedynu4Z$btwEt-*2 z2)`!#BAl!$4&ZES05I(Ok(}AvYTybRZw)sqh!D|EOmg&Pd_gC&+{gYJWFpDRK=yU+ zCo_%WQuA35xvOnA6Ti9)w?1gOC?_tq0)SYZyXuUfRT_x+H7^3fIs}%S<+SYOS1>Th zkL|X?x)hOk;TmW?cI~(O1HaZP|5Tv?ABqQ*K=$|(B`8-4vV8=Ol*{jZpQPeaez*a> z7-=!}_71{^>oG!`i-ZLKl#T0XOivCfh`!W1if@E$I_`1|7_4e@A5XJ81|P=pyT#jQsiB1VQ^hK!X&Pt8;g-QexBJ zQ^dbN3#U)z`F)-$%9GP73irJ}P0!rFK3#3!TYul?XsO*_UQJm|Pf2e(r}(n>{yc7I zDtU7LW@>8ccU|FlJiOZd_TQs%ka$F4m)g*t{-z#7!x|*GH zbGJBNT6VU4e5xs5_fK`)NHx^vFFsu{WIO(II`XV+-6Y>O>S_JTeN+_P38fEAkW(z( z=j8LlEV&qy-!0aYJK!cQai|+E#x&=2^lG^N%xif0a6YSZ$|--`iUc3JX}PJgI7(!E zwVs>4LG^grPW4tre$A`4f=iAo*Hi7T_-S?5&2zTXc;bJbpAwyYafJ~20_K9Ocxmn- zj9(3*W(_~pp*MA|{?oQeRGB|>6H2%*ub+2V(rr4O%b1wC9(H$JrnyhC9yLl-xs!e_ zSR#lpd_l&bhhrqwdgRe#8_H7H+(ZaL`n<^QfW=MzQ>L?wH^s?O;;`w&;eNAzmj7mF z&O)bn7CRo_hnr}&eYmo4X^(S7a^5kCMrow!-d)!v*3&H|ZFJ>i9FvZUaG*{P{CWt^qea)JIepJj`)aVvedEZyL`U>ph!`qTPbFshy12SvGhDS3--- z3_Zu^8GDxEQ`wd;XUC1u>M1MREPqq}Y_oRU-$|7tNl%Tx;g&i1V!ZW zQBQ)M3r@95AEpYEmfUD{Y1B!pe7`tJ-Xg^%y`*Wa5RtYm(v7dJ;!y24*CMZ>DTJ{g{#8+CE98^7w3dS=XzL9V7tt033|oYlKkz3^#k&xIJ#h5nmnj z%|+EQ^YkmPQRcRaw51_WRGhp$r-cqv zR`=~2^?9z_na1a>OISf`V1aeSxLj;5Jyjt38piLr7U#^KCjL5^-q)YJ>AyNvS)ZR{EgDBZB#!@nT47l|8K;#ST-_K z6@{Fh7?^&z0z`u83b=Tk0hXp$i*!KM%S|)+#amN4TyMWR`PTpPt92>TNa9E1I^3rH zP@Q&Dyqi#X#qId=#P>i1`(SMWBlr=cGuq7kUe`6;?vhYh)vl)iRM9N!tBICBto&D| zq7;@!&n#x&{0txW1>OQ^{g1M+k8)YGE2U!WDrmo7Vt7MWfx>_RR5`=;L1d3@ZuU(Eq|ZSUGdCm2&0>W2$e?5h^18Z`dl!=gn)lZNhA3<$QzF zurldH2qBw47R@g$#lo!I=89#^^YjI~9gh+yBGHd}2T1iQiX;smE0hh&)Qi#sf2xmt zU^Gmcd|~Y~V9nLzYTVCJUJ@sR3it?(64JoJ_gDO1eJZub(Z0~%k89l@lP^=3KOY5n zJ%`9g=A+*zK|_5P0u0%0MfL1&5mVrYeQx7im}NsypO1zsq-CESZ^c)?A8h)=>gKaU z1;7Dg7I?Aua6Mxt#F$|OvdNRoU;iBkHA?)Ok?<085)lC17fi!=3jou5cM?s04&}Qa z*2u#}W&5}hama&il~w;s%x1RDjeF};Rn1;bc1qpQ=_0^v(9|tJ4Bi1)`fbtF4173NfLU{@bq{8?GU)bs^&& zdoS^9KMp1s6Woc`0uTB~hY5Qt`uDh+N2R#KJwjG!s6r9I;xDw`RHdcsmzW`fXWEce zQ^@{hCo&wCKgsDF%cyAm8#p|_xL~RE|8r60<--oR2nONk<1dk*aL=^i!9%4^FXkUr zdbo5NuDZvi7cNqlzZp$Wrd#R>+XJPb%>Mgy{rSkzmM^&I3SW?Q3o|27c^cZc-eIc! zE^rr^-CwnV-tEWXmHN=}VGJE@r~K0#cxf~2y`cvbk2do)AtG-hl@ zYdoWpubF-#YDfI4p)=*c`TxK77pe88GM!JM=7$#V3|}N$&mR8$ejW}>AY#@_K`zeR zAqEe{iU^HDU~S;|WJ2DHTNEx^Oa!xvrf8d4n2-Q|!8lqJ7F>Q6_R(sJw zMH>MpMj{S<9PJX@Tb!N5{ogM>=|!JHFS@<=5DDVW<|)NabXfh(aP6O?yB#Dug``I? zK2X5vwVTmBSS-Vf8>5kxZ=Io9@AHAC<xXng{p)uSiA=cEA{RGpmw|_Z11{*u zT2sfnQs!=cA>$JySFiv)6~@37VW$k7`n(6;LBP2$Upu>(_nxW+tdBhKMU;jlDe{Qq zXSp>bwDhbF!yFPt2#A(VrmmdQVd<<$CW*WSLwqDDx;bB=JOrUc2JrCtZ)no0?G{gp z&arF9;B2#|hlwYs%#1IUO+C<0V&DC5xrAR{4ReF&3+SQDpn$E_pT8@fT_wr*xzcAYv>AKch-_v`)-q2V42C5VX2G8LC1s)0E_BXNP z$oaNq|ATD${y9!m7Su?yiJ+643{bN%&eX#g0#Uz9j{mM$r;{V$EBfsGvwKD|gVY58 zH6VZ?R^J(&+9XQF=VWuU>FF#B^UZzNs!qvL(~qV`{R^i$>U&_X>m1IWRJRbN8UR*+ z0EXD8oBHR4{e9WI!t`{OVv(_2^S`+b5~@u-XLn(~^G3jBf_>zz!OU*_Mi`(r1Te&6 zEPbFqWtG%-zSo+b&U0!`CUEomXeP)$59tJHGBG*_!1V}Pu%;}hr4g_)f4tPpFQp>KIs3}^aON+l1X%SDz!16zAAG%UVQ|x=4BwAa zS4V48p!o{c68AS!u19}hNWv&s;q1@GM`yl)tD^xBzz{O^yx4WQbHq51aL51vt6D*U7T z8~1wZ>UeW<^y|nFZUg?{=ig}f``&hpfR$WMblm-+>*8$d=E0e7@7yVRs0U!xK>$N2 zc5Od=ULn=@qWp{Ym#M4cmE^!z1#r6@^>G^7=FQy&YbD2zCTJ9Fe5&{4%wF}IaH;`T z6$CJ}-Pq{VWwurNv21q41NHryJ66=EpxcG#)-)UeJIrd^2r!>>TK(;EK{%B}YQgjZb= ztxiWL(7QNy_DyV`zJY3hu7&`HmZ;xzj*U#G1rv|R(l))xQIsP_J^Bp+FBTdHaGOWK zic0j^Lxr|}pBVsw7@htDssXwd0vMV$`S9$}_~^{va>nnYu4EB{9nORoREzx^ z8}8V#)XgN@FU$`XVdIRY`;J3oi&G3J2Xo|XEW-;shC@DACSWd;>k(pvE z&--o6#|W4SJG28(r`AuldQa?-O?oD)Y2 z;XleRpKlnhR>-$;J~mrm3rV?6$|M zzU)hj)YwR78|Q47EZcVXrbx-CJ1WCS1#lGla&rwwz#@c;u$EI1ufFR(exyJ>$s^yx zCdcA0OpHu_iMjw14*?7fjSbJ9dvGwbk299ozx>oiNr&Ffg@4-FTo;KbHmwFB{ua|UO&PxsbmP>kuCN73%(bIq(cBhP2(few{XGt$>#Z{ zCwWx(&b*V4PneL>UiM6O6t`K9eaPBXF2N&(wM!0yDOtk-cHOpRqE!M&1OEQ3cT^yAD?3?OJ=w4Gr z@0#m}*ah!S=Dk(CoDvgrrJ>#%Zs3XkVjETmoPvh3o`K$*sF`?$e7vVs<*Nrt|5(2V zE_O*=SvKRP>G^A^1n77OU?{UJel|4|Pn6;fU>+n?1cx7YC(%Q6SzesBnAQ)AOxK8IcoY5WL*I05(r>`5QqSw8f0An z=pG1QfDl-g|4`)!V1QK#0SpiZ!B0}FF%jr=H2`!81Ta7d1atg{Di{948UVTm0vI3+ zoSmSS58^mA0ALkC00V?U@L6g#!~?7g0Nn!t3=js#_8qE%@fm6Yz$$_O253Kr_4Q?_ z-H>3;JJbY#RRjSH&}M>(|4V=KY~Odn8p;j4CTHB*S-s-1VnLLs zOte!cV|p8cy~57Bc#EI89Pe1YtvvT})y=*=!N2HN{dN}ak zOKk2~vOjk%E{I%ip5I6%Kq7FO1C$9NtRH;u=#9K&ol9LE>G-k2drJ=Qp;F79a;D#U zBe$Q*h&V?!_7{JC&qJ5ysG}wKeg5@zJZoRZEPEYwg|4qZWnFkl&j(X|Y&~^pJt=E` u{RZnTDmxM{I{$mqZ*TfHDghFLvHu4tk*|cN5$eSN0000t<7?}i&ZUCG5a>D(b- z?VQQtUpBF_&3<)CZ8AIACrqD|FzTzRsrA#ui3&QFV6 zp1H5Qke6Ec;6NiYJD*I+!H}u4ealk*P4C)tuu5y<#~`jb>nF)r6oBPp1>95}eY}1! YRDBbfZQ5bH1850@r>mdKI;Vst0EqWn&j0`b diff --git a/assets/icons/reliable-web-app-dotnet-dev.svg b/assets/icons/reliable-web-app-dotnet-dev.svg new file mode 100644 index 00000000..1e8c4ca4 --- /dev/null +++ b/assets/icons/reliable-web-app-dotnet-dev.svg @@ -0,0 +1,1642 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Page-1 + + + + logo.1993 + + + + + Azure.1002 + + Sheet.40 + + Sheet.41 + + + + Sheet.42 + + + + Sheet.43 + + Sheet.44 + + + + Sheet.45 + + + + + Sheet.46 + + Sheet.47 + + + + Sheet.48 + + + + + Sheet.49 + + + + + + Sheet.50 + Microsoft Azure + + + + MicrosoftAzure + + + Front Doors + Azure Front Door with WAF + + Sheet.52 + + + + + + + Sheet.53 + + + + + + + Sheet.54 + + + + + + + + + Azure Front Door with WAF + + + Azure Active Directory.1174 + Microsoft Entra ID + + Sheet.56 + + + + + + + Sheet.57 + + + + + + + Sheet.58 + + + + + + + Sheet.59 + + + + + + + Sheet.60 + + + + + + + Sheet.61 + + + + + + + Sheet.62 + + + + + + + + + MicrosoftEntra ID + + + DNS Zones.1182 + Azure DNS + + + + + Sheet.64 + + Sheet.65 + + + + + + + Sheet.66 + + + + + + + Sheet.67 + + + + + + + + + + Azure DNS + + + Browser.1192 + Browser + + Sheet.69 + + + + + + + Sheet.70 + + + + + + + Sheet.71 + + + + + + + + + Browser + + + Dynamic connector.1196 + + + + Dynamic connector.1197 + + + + Dynamic connector.1198 + + + + Cache Redis + Azure Cache For Redis + + Sheet.76 + + + + + + + Sheet.77 + + + + + + + Sheet.78 + + + + + + + Sheet.79 + + + + + + + Sheet.80 + + + + + + + Sheet.81 + + + + + + + Sheet.82 + + + + + + + Sheet.83 + + + + + + + Sheet.84 + + + + + + + Sheet.85 + + + + + + + Sheet.86 + + + + + + + + Sheet.87 + + + + + + + + + Azure Cache For Redis + + + Monitor.2148 + + Sheet.89 + + + + + + + Sheet.90 + + + + + + + Sheet.91 + + + + + + + Sheet.92 + + + + + + + Sheet.93 + + + + + + + Sheet.94 + + + + + + + Sheet.95 + + + + + + + + Application Insights + Application Insights + + Sheet.97 + + + + + + + Sheet.98 + + + + + + + Sheet.99 + + + + + + + Sheet.100 + + + + + + + + + Application Insights + + + Sheet.102 + + Sheet.103 + + + + Sheet.104 + + + + Sheet.105 + + + + Sheet.106 + + + + Sheet.107 + + + + Sheet.108 + + + + Sheet.109 + + + + Sheet.110 + + e189a61f-631a-4122-bb2b-079e860 + + + + fb7033ee-4650-4886-80c7-eddf625 + + + + b166b8c2-b9ee-4c3d-bf7a-77bd5ce + + + + baf437fe-3483-4a25-94ba-1e84a64 + + + + + + Sheet.115 + + Sheet.116 + + + + Sheet.117 + + + + Sheet.118 + + + + Sheet.119 + + + + Sheet.120 + + + + Sheet.121 + + + + Sheet.122 + + + + Sheet.123 + + + + Sheet.124 + + + + + Sheet.127 + Log Analytics Workspace + + + + Log AnalyticsWorkspace + + Sheet.128 + Application Insights + + + + Application Insights + + Sheet.129 + Azure Monitor + + + + Azure Monitor + + Dynamic connector.2353 + + + + + + + Dynamic connector.2354 + + + + + + + Dynamic connector.2355 + + + + + + + Azure Active Directory.2341 + Microsoft Entra ID + + Sheet.135 + + + + + + + Sheet.136 + + + + + + + Sheet.137 + + + + + + + Sheet.138 + + + + + + + Sheet.139 + + + + + + + Sheet.140 + + + + + + + Sheet.141 + + + + + + + + + MicrosoftEntra ID + + + Dynamic connector.2349 + + + + + + + SQL Database + SQL Database + + Sheet.175 + + + + + + + Sheet.176 + + + + + + + Sheet.177 + + + + + + + Sheet.178 + + + + + + + Sheet.179 + + + + + + + + + SQL Database + + + Sheet.193 + + + Sheet.194 + + Sheet.195 + + + + Sheet.196 + + + + Sheet.197 + + + + Sheet.198 + + + + Sheet.199 + + + + Sheet.200 + + + + Sheet.201 + + + + Sheet.202 + + + + Sheet.203 + + + + Sheet.204 + + + + + Sheet.205 + Public Internet + + + + Public Internet + + Sheet.216 + Blocked + + + + Blocked + + + + + App Configuration + App Configuration + + Sheet.220 + + + + ba7b3762-4752-4c4a-8a7e-af4c5e3 + + + + bff6fc37-370d-4b52-9427-43a5a53 + + + + Sheet.223 + + + + + + App Configuration + + + Key Vaults.1000 + Key Vault + + + + + Sheet.237 + + Sheet.238 + + + + + + + Sheet.239 + + + + + + + Sheet.240 + + + + + + + Sheet.241 + + + + + + + Sheet.242 + + + + + + + Sheet.243 + + + + + + + + + + Key Vault + + + Dynamic connector.1069 + + + + + + + Sheet.259 + + Sheet.260 + App Service Plan + + + + App Service Plan + + Sheet.261 + + + + App Service Plans + + Sheet.263 + + + + + + + Sheet.264 + + + + + + + Sheet.265 + + + + + + + Sheet.266 + + + + + + + Sheet.267 + + + + + + + Sheet.268 + + + + + + + + App Services.97 + Front end App Service + + + + + Sheet.270 + + Sheet.271 + + + + + + + Sheet.272 + + + + + + + Sheet.273 + + + + + + + Sheet.274 + + + + + + + Sheet.275 + + + + + + + Sheet.276 + + + + + + + Sheet.277 + + + + + + + Sheet.278 + + + + + + + Sheet.279 + + + + + + + Sheet.280 + + + + + + + Sheet.281 + + + + + + + + + + Front endApp Service + + + Sheet.292 + + Firewalls.2192 + + Sheet.294 + + + + + + + Sheet.295 + + + + + + + Sheet.296 + + + + + + + Sheet.297 + + + + + + + Sheet.298 + + + + + + + Sheet.299 + + + + + + + Sheet.300 + + + + + + + Sheet.301 + + + + + + + Sheet.302 + + + + + + + + Sheet.303 + App Service Access Restrictions + + + + App Service Access Restrictions + + + + Arrow (Straight).2202 + + + + + + + Dynamic connector.1000 + + + + Dynamic connector.1001 + + + + + + + Dynamic connector.1002 + + + + + + + Dynamic connector.1003 + + + + + + + Sheet.1004 + + Sheet.1005 + + Sheet.1006 + + + + Sheet.1007 + + + + Sheet.1008 + + + + + Sheet.1009 + + + + Sheet.1010 + + + + Sheet.1011 + + + + Sheet.1012 + + + + Sheet.1013 + + + + ef0d1b54-a1e7-4cb9-a4e5-8a8518e + + + + Sheet.1015 + + + + Sheet.1016 + + + + Sheet.1017 + + + + Sheet.1018 + + + + Sheet.1019 + + + + Sheet.1020 + + + + Sheet.1021 + + + + b9f25eb4-4c88-45c2-bc4d-f992757 + + + + eb9200a7-4693-4427-bdae-b33ce90 + + + + + Sheet.1024 + Azure Storage + + + + Azure Storage + + + Dynamic connector.1025 + + + + + + + diff --git a/assets/icons/reliable-web-app-dotnet.png b/assets/icons/reliable-web-app-dotnet.png deleted file mode 100644 index 2437226622d0abed42c0ba3beba32c2cbc9f9b15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166248 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%0D{*WxZz`oKjT+-zNNn7qBANphjdSAA`MMV z>l_B|(y`YF=okG4G_p&gwYRl3z__6Xowci{*g-GTKSM}@04p1uiJzoK1_T5QmBX}z z1aiWd#os-+jyA+3%6RK8%H}A9&}Rscj)Oi#&1s?yT-I6wTn&%krHWw3Ulf$NS_T%y ziGPwu@_szbR7=pd+b9PXTEM70{ZM?v#3?SvpxV<}Me1X6+uPTBJeuRY+`))biD-&#Am-m?tOi;Inkq3=iT3F;R;YYJtY08?Vb9eOv^j6+qC zchk44TitdSyQJ@B-R2Tpr+J2qf0?Ef5uA4q@Y9|3+1!)1*XyVBWqZoX{VgnWgRxZc z4YQYSq3`XM;F z@3Mi`jjlIIa{eZ)iO;(dC8BuLW6r1pJp5IE3W3DbIqYr(@c5O^v^{hsE+-7Ie2w$x zKOwjdFs05FXT53Vw6x(`U+;QBLY<^YNg<>gW7by@*v+G?fB*g~N!f;lfzr-ON-+9* zt%t(zgx0}~^PIVzal+QEAGzUhxZV5h=&f*m#~$+x_@kxA+oDhF`|^!uI}^lVgCg)B zrzxD*#OZ{^$z({G3>a*5R>8Nr9L}%p%_m(*%t-Kt=5S0dtxdNBM1;SxD&;TgL!U$M zobM`4D_g-K1i+D5+%ZwgV+n`S!ry16WCz!{fG|3zDPs%G!3_@PIEHKW|89x7D5HuA zS584TuSB3l?fbIL!zg>Eg zy}FDN8SMrRk(>e;?Sb#ZgkZ_R2j`OWkmpfEO>0)!O?(`+hniDI!GO>63U?(<88=jB zEFjVH%I;ZRigF*r|8k)%29IWM$<}LF?LzU92#-f%`2?+@jR3HYo^js6%kK_M{+*)z zp$T6b&Vr78Oa+ssld_g$`(ndNH*ohCYty}s|H^Qb>1T8rW;I6=4gou;SF?XpMdolV zgf8}m_j1VN#y4uzxYowO1-%XtuHdgPwnfHQB@$nc_SVSZBx~5j+i?-?J+dv0WG{wqNBM*?W~7I=NOE$ZLdo^8f*1dEWD@ z;aYu$bbXP?zRWF`y4#0L?TQnK%R8L3?=`)BnpV2cf^0u+fJu00mSa-yhnn@IMoXt9 znW}>YlSRJ_$F(X5>!i27Lfom&ap5awZ8>1k?g_^mTdi2uR%UbQdlBBs!#ca%OBf)* zP`-`PRtJtaysrV2EzN|bUnkgqEyZ*(vjrP3m_JK75Mh z68=dFgt=Ji56kKjPiW+H7SNC&AwR+Ly&Xv~6__#ly9l&MG7}7?5>k?iH=36+& zbw#Sl9XYKVguU1`d2@*g*MHiXK|be4hF5Sdgta|kiRaE4Yy&<&H*ZmsOK!b4UhZS2 zXVkMtNaw5d{vv{54E}eQEw|a)*yr!g+?cLyQ>&7RnG7AP3E$Ch-^H$V>l-bA5B9^O zhn%wxZyi^XJ$dfX_xRc18}6vx0*5;PC(~+C1Xl;Ynwk2hb!?eb!uQq&u;@Gm1L1+v zla77vr~y`my+&vfVH42vJ(g`aTxwtG^1Zd|%G=9VL1sYIpDKl@^(8DdONAIIg0a3B z`92R+c#79JgUvNY{*Ij(NO^)ZQr|EU`{1?ZIYwub3d}422`%x2W6*ti` zw0@%)0*4@*bU0@uwk%t{JjZ7dtNpHq`svlG$|d&c^q#`m@(ElnO-*)mL`y zoVvWY)NX`_jn~-KwU*}-y`DOrNtI)Yl(JcBFJYccN)F{aReS>3z+5x1da^ib7rrOz z8RV{AyyPjpHHgXA_s<7?0_;!+^;m*jCAzpc#u-aFj|nXv+_YcIfvAlD;9|e*(e8~G z(zozeyh||1 z#=~?p$B}9|x{|N4a&mRpo>*?Sk3QaV9B>;SchpZH?q#ipYP-&eMLfa#XELZ| z6s&Xb+nMIXID1?|$JWJ)Jqzs$B}Xyvo3YD0Yr;Pkc@lR5dN&oHOaO<-WlCavlERBW zk-ufZl+E)j9UCj9lKJN3EStX<3%QQ1jrTb9Y~`{&Dm-H#%S5O+Xfn6r|2?|`!>*53 z3|f2&+coY`WUE+ol4pB8NxWWty$~y?r(tT=)Y*qO_ZK(^J~QEYhtuOub^2bgmTA4+ z;iilY5y4g+Fc`me+&x)odNRD(wXmVTO#nr`BO}iN0~#Odp8}7QP?@a+%~>`nw}$VS z;bit&U&L56Y><_GcM7=pWH{84`1t$Cj^c3se2?i$N)0q;Pve>%t&mg1u!Hg0!(SJ? zhNE#kN~X8OWFCbs87;}zDbQRc+^J@>*s;0f(U?zB?>#ozLps@;wN}?r1=g~B?D*N6 zfO`Yyes~NOYYnB=4BK0(MQZ144c32)Kf(E#>7j&;t!$A@J8GZz1B3TkZLwYM(Fdh% zJ107w-wwW9P9X>_W`j>AkoErPG#df4{sUecfgT9*1El3 zhS8kPot>uFz3KfZ1U@6&iEUYUVIU{yX(9MKPM}m+#+j?$6lABexWw?$`aY5D`!Bt2nQT~Iyn>2j7`XBp`zV!no6 zB(|8XMEVjHF{dY-w~y6B>f)AnKCER2bo|(dTqt2MRi?krAc|)_z!G^;&!LCyRq^9m zIO^`wL8Y^WBSHNsbolOGb4b3%grgW774H*_eLegPr{Gh{UIg!NN?G*iAitH>M7ERcp&yw-M=w*)COzhv#OE6-rE(_g#hBBBaf^UE7-`Mj_s; zfk~C6x*DTQEneTtp+gskru`Hg^&$$)5FbX^so^l3_iq<=n3DNQ)#{`0`=gRgg~csa z-*du#+fEzr59y9g>_@(H)WS zG)Zo~RA;tK=^1}i3N$CtT5HoQud0(v*xpOFqJrORxDyDe{*wiRiS3d41|OBLIg1yV zf2g?Pk&iPs8;O_>;jd0zRNP8i^JvzB7rqKT>W1L8%%C~fc9?DnFoiqEpfC6qeja7w zo3`*kN|Lo27c)2s)}c~6QO&DbU8@bMbq^eW?zr-;xf+7!euX|Wt?ybiR|`{nGuFqm z=Byf+YKt`zaJgr_2@$?pS{oqAcRH~pf@TPcOwZ;_VfN6@w*-q;qs z`NmYhlBI&v6n@C26&}N3Go`R8+uUq?OA#E5^-Rq?%nNO7g};0r4BrpTV)+bNRskjX3Tx&d;_c}s0Pl+i@4M6Iw!s(jvkh5X?C@Hfwkvh~wK zcUp(?&RibT7>MA}*94Z(?(y6c;E3?!(88y z^S{VTyV#1Uj=(x`F7X~LdFK3W51>hhSy65Wy4>(@DMIcj7ZW?yxW$%`1MBCLUtxi~ zXnEVD;d#vwzx2w(ImQe>Z3UAa&KP+09fh$s>$6$+v4gN?Hv9Ncct@Ie%%;gbmpPTa z9mavw{d@JCTTKW^?2s?o70TJyFpfBbrt_un&H>vY)i4Fq&QpF7s#wW!@5N#SM=5}q{ng;o{#ujh!1aLXRz!wBkU`hJ8VAb# zh#24yjDORwj9|oP@ZROT(&m+qhXZimL2rHAC@E;pP=wMJdwCj;raLbf>mqD+zi{z} zs$*=WRGTI1B=3+$mE*4jk|Sbabn-X4xgPW7&emkmAzRZ8@p(*4bL6fJ?;_#NGP-%@ zRVa{o0WAjYNI`sx4@4EoJ0o?j=Cqx2`$}P#n7u}?L=`S0Cq=Q3FRA}c9Q%UJur!&I zRy=&aCB=9X*7nP?s;fBW(xg(db7}dhT^e2H{VazoEdlf_N{m&Fz7gakBuh%Nt|W_y?{lihWqj^i1=*xW()FZ*~; zwrVM~T5){&r|NGQ^qi7qT@<-^ySD$eB}C}Z@Kr}k4Vd&|C#GASe|L%)y(3{C>~2q^ zd>rU`=qPh6h1UQsVbjpk0n{YxD>U6AcH@1N31RjY+z(rkHO~F8Srsmt_)7b`j{T1A z1(UUO69w0Sh_;;W$6vdQem0=lQK!pc4)l=QkzmndKuR*bS1_<_|Cy3+<<3{RZ_x=T zVV*nz{`Uj9VNSU-om5U8J5H;+kf#}L9{gmLkh$}^zUyvbnzaQC6Z=I%v3 z&ZSzz(fmfk!dBq_blAUuHesI3Lbx|VNk8RW^zwqRO{Z(blfMdO!^=)N{7-Z_@7zx^ zY2NBTZ*k%8%6cdxcy*mAyHPD*i#50Bip8hae6Z*mS3A9G{eId`K=<}#i`tqRL+Q0i zjUav-$8Y9xk>Uw=uO(<#C_CD>CLs=R!n(zW9UfqN{;4MSh^zDi)#mn*w|*lwG}xwk zuvWe}7Mi#)=}X;GmcF;b6dL^b!!gb&Ap^0*U)jy|?k_Z!YZo0u{4sMwA*<+g{R7q; zhdWmh+H_k1(e=c5>{<5LFa`}8+4EJ&a0T=Ba-B4Godv0-U6bZjU=oT;aFo-M+{SXD z?$o03uHw!p-%wfejnOXt^Jc2}D*NO-8ZJcEoom zG9Wq#E6;J%vnSl1hvu*p_RDwLGwpP@FB-asN*D}f+zeQaYQ6m2!gJ+<*x4AH)yDc+ zvlj3kn$vsA1WCsAnX`LmaHd$-*FGFHzq0%zLov?O)8`~{&&rgdDo~BJ$`5xQ`#$2+ zWXe}^{;y@y#AUQ0G8^fItoup6&;6_DS@wYioaBk}o_ZvI8NANupWnh()t_O05R|Sdu*dZKsZR@8_>IlaEx6{WeY_F}Kb_u}hUFXE1#zHPe@Ca#>0 z0|s^y0F(QXZR&O6(Xs`!AX4y!%k zxXHCNBYa>Osq<(!skRVR8vqt92Rf<@Y_><+8rxC5U=nb94iz?zlo~M-y#*e1K@kUi ztDD$CpzXWB?G`=a6Tg*=66utTQ{H8P+y%g9#-R8eX`=i(u%C-rP$yt;l&gXLckVWL z!t1JMGD{az2DLI34CJDgDZMXSp?e}MWu<41^ZmOgq@sZ&Ck;mG2{^HGW3`1m^k{rn z-L8y=rU3hKFB8RqapM-14yPM|aVsve;Mig+Zys&^Jv;6!t^g&Z!MU86c&J;13hS^g zE9*Q=Xc1;tO2<$BGtgsD^+J+Km`FL%&?Z$0DG9r#!| zQ=^_#M8v1faPDzmxZ?CHyejLMDZ;j+&qNe{JV{{YB{!4;_qChJ%cGPR<{aO;6lo z-yvOGd}`jsbJG~d_Q8{<8;c7hDw@E*8y5ETk>as!yK)|7PuelSzB91N6F?3>05Y4Q z2LXh;)s%cS58_)b+Y~}ZuMT9iRpsAHubDbRqjo!RQMn^unCkE#&g^h~u6g-~YRAit zBvZr#DO~LOJ{=EQiEFfV2&_{Z7)@`J7Ex7@QblsvLhrVvHA9bjuum+Yk=(~gs(D{i zAtYL-Bj}6!ri9x)F^1ZCF8pVTE@+6a@7O_|FXq?b-dvh^>(bg+>?oWtvb-tmvQxSx zYkcq{%})_r2)ohNGF|7g>x6z7Ch;?30nZlZ$s-3a(|%31X+jSR(P^oG4Kx0jiUQ#I zN0hDK9G=4?%c?hxrMA7tLPVQxmCMRSG?y{6ZYBol<`f3mNfq}+0 z8=95a{M)))rqN-K7_0W66^FV~xVd$jZm6Vot%CQhi6kGQCVTKKWj$T;x-UC#l?LX_ zQ|wFgSL=OeLDSTpF)rSwgci7C#yi{BKGNw+mNKAV?1Qnya7LFz`D|edX2I2OBl5F5 zs$&0WfVrH>!O0I_Dcu!qEgv9CgvC6Yj5iW=lbi%ov{nK37fgY(1WN4>xWj4)uYrrd zIN+`f0``8k{S9zeijVA$-a-WwQ9An^RW86KMAxlht;79Rh~G>g`_9J&a6n(iC}PN| z>|xkl|J{y87_xce+=0vMzKrwUV7N{>=1s#bprZv`jTAN_T_XCI0Y7Znb5esDDW7efQ@%)H$1jhAc9tdB?K;-zACk1eHGjKix;V4;RYE+Ze)1ktSS)&H*~}s( zN=~KVCu)HULi46GL#o|>@->$piyPnPI-5NDPN?bP1YW16@?D6r&dwCsT4ml@c1OLn?9Oy;__m(%==(?i zo(6EFeH5=<9g5|LHku+WBsUw;8I;fW%9rzYcV!VsG}jZPX}vqYXCm%QcQNOSOWpUL z6T^2M?}Jlp9^SyU+9d~4AUR4ze#5iP{qQCGIq6j+<}ggY^toMer%MJ9_uP*@sJP4l z)%u?h{GCzDGvO=mf&qp>UlAcFnbKWY*{;04L!%xjKJ1G0ZxxGyy(FiF1W?;PFNzIA zxm&;G99iTyD}OL|R*WD&qhee0GLc?f_0Mwj4C0K=Ps84T>ata%;~g%cv`n|%^o?nr z$NjO`B*)6mQ=JJQL+!;4g-`BK>kbU8U(eQ2`c;HT_g}@ev#{4E7VpfH5>=M+GUWmm zzIrM2(|1_V6%BV9y5f@GR(qvl(K)nqX39f<#H`7DMzrS-h~8Mt-6&2(c_=JBKxBhm zsv($JWOq{kY=;AhZ?$3n6RjL(qeTIyJM? zHmQux9rNDN9#v&}I1Q~d5N=Q-Kmo`wULPT0U7eQ{O8T6?q46QbT;?o7gi&ZfkQ-rX zVF5Dq=f^3L9Fo0%(w3_9Azs~`O=q&C#xv<2ko8oHGiyB19{@@&2__E{lrH4 zq0i9$LcA{?^txD>F}5!~&2fxgXL;b~^ z3-`(|b;O8&5Ed1+D!U&me?ej0UzC2BzLEyfTo)IYvYtEX4Qp{bKoNBIE?ro8PkXXP zvj8xM{Ap%B4v)bP*9!sj;&nqE+uJM?6Hjyi!3@EWwOZdi=huWEkj_k%;`C^;z&ORs zdJ&KEwijKv*Vo;>%d6b{eK}-%lZZp))2U`iq_`Aktc0<8gv(HgLsV3hOS%tB>>a>4 z0N?-)uMcY6!|Mt&BNOiN!F_)IS1W-K%UoOjm9RM_T(e^3OC~f}jVVQS`tN!U8o=In@^VegeM}A`B486dMAH_FSJysKQdQ`wP7?z8*ETvL#)n2jv{M`!q zgCBMJnF<4dpfD%RP3;fI2K3QEov0B2@ucyT9IG);}Kt^9X^85yMy8ToD>BGI78(Ct2=K{I-<4`mlSRgCMj&{m_ zOIyMOkb5urJt2c>^%^_d*Pev+yw|JF10+rYup{X{<#f^G+a%EDM-k8u08u)%V~p&X z1ME&>Vj`K&svHB30BF<#d^X`;#8NIFWo2cBTh2?s(6jQxhga;&fE+sb$BY5H`xRga zcYl4CzSmz}-ZkI=BlqsDPNJPJ>N>rpAH$<7;MM=|fktvV+rNSe>y9?LTCcnVI}1Dk z{N=wPN8^siJ+1Ev@TdKDj=mXNsrZa7p4Iz}$r=9}8~lf!{4c8b^yXJ^qSZdW2k^ju z;N)F;5Ric6#Z!gA`lC-%RXU4~@D}QvJIk37ke7@BG}_5iWG?wT+$Y0sKwne>hc|Zt zHtdbkp_7zNjsWq@+$Hs%)`9=<=-O`W>i-jn{=eE|eM(wH1JVjk>t#x#pkzrD3_Zy0ydQF97 z)^_F)t`(i;4j%S$nDpOjX@_NOev`_q-l{dg5(IEYPNrPX{>=$?J==Hz5DOW^vAotj zCti#9%^Mj~?IDGBaFsAAs}JEKU!%xUJR8fwb9z1~&)qrEt#CS;`Y-26^}(n_-w#zc ziB6fKs;z-&_ud*YsU!Wr$VGZ0P_zgAB)Kd456tmmmw*F)E5KEyhMP)nYuIFXq@gzG zbHa5sEtB7IPNW-8ITyNnu&W};yUkM1FvY^vl1@~a{tJxFiZ+Qu5B!{4h$fGQ4<}vm zH>QQ<`=IE}{1_g61X$TW64m>|F5q|VdP>lUTyDjjh6b*C{c4C`cRo}VZT!DvORB+4 z{`R^fszjx{HW6KDYRs=v+2X~AcGWMGpw3hqk?80BCo>SaqRR^ae7}$h)iAJmb3lwJ zY8?`k#SQm^;wUI~vFw(sE!>!R;)zi&MOA(abKzZiMG-)VUXFlBIGrU z0SuLJZE=|Aq1@tJn0QvbYmxlF31NcU}*7+&y;=*1p@+_SL@!@^7w~{#6*>IWrv# zw>KXe&J|~5_@`FjAM98RMscHX-u^Fk{Rn`!LMQ0hwZQw5a*vJL3nkBZ00h?||E+ok zg2aNMziR)BbKeZQIZjfcZ>(3BS%i8sPZ$F~?U@evr{v#XC+H{}Li{V?2BXB1`P$>HF@a`!HmWPgW z(+@g27W&_L$Hg^R#|q{dZtd=xf3w+qbK#=ry^66%cXtMTfv$G^KUEjqD=j^K?UXop z?_N3*4)oHoQU%6#qyR0F;ZxuI14IM^UVSy2I1Ug#qRG<1g;TDZru!^46FbG(n{non$8(_1-bl(~B&S zaiFoXh&Oi1FZYs}j()wYJKDiRQm&$Qn-qSx>z2-Es@UjZchx9oxs9KM2(Mt>h@bob0xVYC> z&>@Siho3}(D(T%W0q65^y~mtZi^UZ0cRVhcAKq&YHo0mz{YQI&`~CMvIBaiCjsn|R zh2LNLTUDSYJ5ANn1Aabt;?3^<4ztq`uDGAi2*Qt#Ptzr1KXCkC>CxrxMuiUwz~sUA z<{S#8qm)U|ZyP_Sin>WLdpc^;b33SfXg>2cuHGJ}(9d3u(f_;__}1ROtPA0bvk<#vn_~3w;km8ZKl6SRdE#HT z*ntvy#e6n!#50EigGn(-*IdrsKRJ`zN=C3Qbo-`!{%3Gk{}e0iegV~uuAGK6@TDOZ z*)8i+;n?rhgCGR=XFve81Ssd<>1!Z4gQAUGwKf8>{o9!=C13%az5jerj=vkH)u4=9 zj0wf0+7AMVkCuRas4U@HQy`UbDP8WRfeYiSSfH@wWv?l&-j?)am!n51=!2p2#*Yc~ zP64yvEe<9b%1iTpZnJ3%qW6hD!I{2iX6dGbY6s91bkmi7a_vgVt6(3LwRg5{tAt6f zGt`N5x;ZLmI5s=vuUP!^+e3Ne{`?uVLYZGMQH@2sKBRoEK0#`+M43VJFxIFzxn!rU za=OC7{%Wv`FjV-mFJG<8W0ST8BwH9p!7l*iTXTjbrZ0uzk^OF1i1kpOT}~mN#ztn; z0XXQ^s|q+sYzL^>AZ3sizY+Q)+d^vN#|#a@ls=yNZOl~GrBP>Beu05^=+7p8GKXj= zp4w_#Gtb>%eA(*);v4TkB59WKNbQwesi*Nn|M}BrW@7#RQHL5_q!?6>{HfpAkKFlF zh6u^6p=E7G(f=qP2P|J@&ZAMr&HquPyH!#z*2v~WR_6!J? zvD)O+LG90F{;9&tw$QR$SPIg+&Q$X`0UYxn-aw1M^&Q|1Sd;tnN|HTV2MVA5#D(ir ztib++m8LXaT{U42DfgWmZ3V3$hl+@&2V4~^O%=YB>HR0=9foUC|IgSyzrClgz5MTr zq(=oOw|b5AwGTW}OqdpjhYYRAtY&QYZ(;+Sq=g&+uw~m(Ln|Itz^Pe&nyId(MFQ(M z^&gwl9`(0`koPtak2euutwHUjDz~;J(jQ~n+Nu!2oo0vt1hPPMxy~_z=I^EhzV}<# zk~3?eMduz2gFuw#yB~k1zxxEy@9;lQ2-Y@0Zgf=DkSwj>t4r^*V@7j0y*oc<;GAS& zI_jB>jswn(X%%4a#a;Yc^LhxR7I>K+f+|&y**&}}Id65+F$jaeG{bUkH+;P5gE01 z7ItLy;@k7yt6doij#AF~58D9%UH;Ud6YSIGDSsDXU`?D*1<&$*0BWV_FIO7AF_wfb zDK`KrEx{Khv7i`4>wS?BZIXf2t^WmG@VO7G>gbMVET7nYh}MjvR3b3-5AlK-z|25t zaODz+4*ccL7VaST@xr0xe4IW}KIeR2mP{_UH{v?U%{!$GUhWqh@Ya{Tn?99p=iK)v z5qo&kg)M2flI}Ad`%|@Le+(3nZYFUvbYBR;_8LE@xo22qzUY$gx#(?B|7)I0zN`;a zQcMX-P%aJ{m)yi@pn!YC%UbaFVYm8O&2LOv|J9v*e+Q@U*PX*%G`QHl&MKpaHu!q~ zxpUjP_H|NwDQ9^UremQ$ljQ4{>pK9UA40-FM(6_rb``y3tRxIfm(;yaRenkfxzW}y zX_I1x%;-WxRJ;emxZU`zy;~=TWqdQgQK0nxB$_Os4i$Xj?#Nv@owrqYC|GUlFvBah z^=~;v3b>gUVQ^=zLZM|z1nY`3SD3PjrJpCAX(Z~7(=}_>ouwtQ}r z##r?x&9E=)guQ zyfCKNE#2!4Rn^(RRKla1nc-3_NDAmE#6W5O#@$XKCAi*^&LtOIC@i=ZtBISi1Eqp@ zf3~DB-XcJK`L4Nz$WoL`KA6`NQDc~ZowNLuqGOFj^Ov}2OK^hs z>({U4ZZ%9XzB_k4=LQ_5NiwDDqa1oR>0LgZOYe(yJ<49Rj=Yy9$meWNUs|@wunOs! z#7gL)ah?z&bCR?kf%GxPnw23=7*t`t{ZLZ{Qw4hw(8MGg-<9}c;|oD6Hrn7TVogWX zth|ZO!qe+V%4y0;K%tzJymrlKbWoCdcQr)x{*`g}_(&W=VS;j+pQ2w;Ps}X1pAno# z)s(9dW&k~Ab}MMW>6{483?|i2N12%i5KHU{2p*By!H|!3V`CLGCn*{kGC#KXBCOoz zwHa-_(glC5YNb8sT=}`DE{qJ12yu1d%MtO#ft%%^pGNe-*z~>m*q79J zbr(cfQkK!%N$|yLjHp#ppKIj|6M0(y z1g_6h_&(?xE$NNqHxhXyxT0{Y&nDcnNaD+dU6_Ec*~3Ugx#!+J47};!q=<9|r8j;C zKPrQ!{Ze6DL0$cp}=AU zp$4v9!-nv9oreGfs%7r^mFxXe-syl2*aq`g5rYBlein z&5$+<^_+^;@VJmwio~y&lj6leS!Bav(;z43o90aTkBpBBkOkt)Q9&=2m%RLhFR((< z6%qTVKR*XpDeo9~_&Zrc;?7*+xoFJDRagj4isCNfLhDzo(W&{$f+$>YVhzJdU8My3 zKH)}$)M8Opsq`8>2g%!s$f*D0ClGR14Tez4dk>r{A#^4=`!m z$C2u>oEn&G`r3t69{ONg$|%;)E8giE(TgdD`NI*i6mi+Es%=+CM2T$P;T=~MR~hyZ&gKJK-B9mzY3%s`;x`4 zh;;hQV*<pT zN4Z%Lw!UH=TVWq;13S>6IGc3iogQO73CjIcZ=)DozNja{!`VQ>!{Y#h<{oecpSx93 z#)cYu;4F7(In~?39us)ir1i^JH^-6$P|XUgkWHxa!0H>pgfkSn-&V$P`5x2$=-k3-hgP%u_-=&SONQ}Rb} zS#`t*{prNTWplB7{lRfc5p`b0%oWrbt(G1Mk^UrRNalw2Z~m;PcrG*^inA1d(ffH1 zgY7KWp-iRAvbS{T7Y)7g5^sjk#J28ZT(?KxCC#gi1v>kpEF*@wGe`nob5{25cyxI9 z2V2q>4T)SGFZv_G1a!o#(D6V`detWvrPrIH3|Y=Lwp6+*sl+r>FFDH>*780PsKoVl zR)emu5>{Fpz`XDCjU9BwVs8E!{U>2xLgLIZ@TI%z+i{&QNmq^QiA?k0dXZXXT=Vi) zL2W5!cIw=`h=I@<(5Y~GTE!zaXN9e}H;y^}<*7D|NN9mb$+M=KU5H{Ys!!%}*{=sk ze)AV9wIn|X`VbOSH*OQjY%mPL`)$x{S3fRS=JnVjh2t3BhJ^j~a8+UE2A@fb7Oz$K z5aM}YnCkt*eM%q4+{K(OuS?Gz5mKp~I=?K%A^?u&QHA0kL7m78LB2MwSN>WG?&26U zSPeNkjIg^JpH7p{rC>xhKciPL`I$1j({rU3xB9n++on|tVRy`BP9mJhW(FIW^6cliwf@PWza#q$g;*=Q76>#2+J31Ic~~J(RVq0ICF|uDx!^SK z)>eEk^Cg|i01jW!zONu0$Rjop@B7MRN-yZ@oVdd9Sg^XwWZ%{bX2iaMSg0mUVM};9 z;ck9&wboX0t|1ynje#rIlrIOga=NELCO8oevBDFS*%WIyLG{A7oExAG#W4_leX;Rk z?ef)ZL(->j(_i#C#OpT${cuU58l($-+g`Z=PA}r8lq6Fq8KX<_4tk6dl{V;EVUMHi zDBHF`4neC9+1_=kaXX?T59fYkIhT}IyAp*qsIi_pisbqDytSlL5B+n>JMR^6-%kKZ z(s4&_0M-dWP~(5C?!#?5IOhASN@Mi&5@@!9R@vhW^4RYsh3CT8N1r_CUxtr95~L_s zl&nASY@8bI!dOB`<#UiojKcEW#u(FUMESyg5lZk+WAM9hoW%19is?*$-c81B)le!}w_${hW18zQRMZ;_=pSOlk4PridMK0lr|qi%(qP#Ct%e$>on$*Y zJn)+*f>UM3WFGiQfs}SmF{|NVodp(gm0yq{e6`t1tZ8fKz$%KykPW(~@9sr_IIokd zpWyvAyiN-3nlBG$O5-ES0+fKQu9l&2XEeW_m^*sd30ln8=QsLkl}$!Mi6hQ)Ro7TE z0w=f(?Z?m-J60HHqyo1KImIac)d%yt164#g5GrTFaG7bhy9V1i2u(+^Mu&V*RbaU^ zYlZsZwL!W7X=Gw9uNQ~#OCUDZM+)bT6uV!Eo0_JY%4FjF-*+cTwBD*Mm>c%IwA3BF z!ZcSGox;2xe#`vVjOq&iEAfrhS);lGVh$@*#zHm_XSsQfu|tnPQPNtWlT=^SStk)a#h9zd5r5aNp~ zz<7QK=5{V6OrZ7Dm^u7i(B`-ahe(!y&J_vQxf36+#)*C%^XjSkl@>jz6DwMuR!AoJ zS1fZ;$^2?)ek*zF?>t+q23M`Ndzeg3*k0iI8Js~+n8zT_m`$(7F%KTcEBReAFWm|( z?MlJ+(7ou1=2sOFnCVPw`H;N82w!9)=z!AXBqY265Z;j6F}RpELoqZ5Ld+=}jiHsB z>v>QpCG}ALId^4tVKhXdfxe7tjo6;T)wTlaDMS|jU@IqrwDTpApLNehaP%hVarRdj zwN@HBC@-hWYRhukBNM&0OKOc9w5i0^!e&SWkt2LoqKA`d+Pa(@4M>znM4GPkeuf$j9#ywP`O0B@z+;;IAu zm#<*Kn0BbO?45$E*+y4@B5ig&UtHC?K}Ed@e8`lJ1T^ z*RWV&N8~f9wus7d9>J^irX?*%xW*=X`9xQ$T+3aLJy2N63~yIHlVQ$?+s3?w(pZB8 ztjNt?D`Q1C5YxMwx^?36kWDd{6^&=8gjg&j@u77X+gztr;Y>P52euZqVe>vkcS0#Wz*(kDf z`;K`BV^==-GR9v8jg}Mw4u;`0pH}4GbR-1bcW)hOH0nGCma*7HF*S%eB|>M97KfnWAtF8EAHE=;E=o~ z+$|-1m7cx!m66V{+$5cXGV%fs=w$=jPO`qBbEQ?^SEVGc`66V_BgJYpM++{akH)!K z5a02)123nvDsR5a0q%&2+_Lmvc(4v^Ow+W(AvOTtGTO7dvcoytqNK&dDxqz>fz_GT zKWppc{@VHt5oZrVx{Ey{xkVNeKx~Z&L_`(Mr8vCYdSioTU~JXb!F57%;r_r=DrY$+ zptB8|DD)MMmZB7?5EqH{aL>#HG7EwkN!2>9DFRN1IwC!lBG5h=L|oi@JGuGLJVG-` zsP*Pnt(5PQ8(ua=bmlB&qb2g7n0a{BJ=^*8p0DfOoZ^+~$2#LvIhBA9?30mz1_D|; zKC9G;+@A2xi4n~=Ts@-61Uaz3_UNXLGk}U2^P@MBLLEYimh|&`?3U(;T3Z!j?Dx~= z;8Y`!n2XJ{9vyXXgkHfz&qd?Z`b>?JmfxbwJ1w&H2_v43W&UE6(aTrPA{^4mkvP1C z@xn~Dkr>6o`f1KMg-1pP6>tEg=!HSm*6xuoEz~+P`BJ;t@2)R3tb|f4TMl1sv0ra+ zw=Ai4j^hxA;blLrFnRO^JE#*&CWLKTfQ3Cb)PESqrK0jt{&zei>cKi?Mw<(_c8DpP z8MSw>&B1LDcW0$8MF;K7gk;c2J3h*fwbYQnv)Kp?SO*OO1VB|wZ05Gz^$017@>Tr0 z61G~BLN|^VT!*?5hfaqI_yWxU5e(wzMbk-}Rc1m#+q7>+Xu1|%dI+M>igaf#cw|&aizzl ziI;~s5n1W&d5J4uIXTaXUK$AOfTm+&~#bRU=|+BsF)N zCq#B8L^_im!m73$c|I5DQ9lOFu>|=E`mx45kL`s;;g~x;oac;&q^$V_Rj@uwN|1EV zRcaE3_B>3g)6Mxo1CdoIbs^1sA`(Y3Gn?Z^%ol$i@7Uso&e}!G!_h${JasSpt(<{iS%ppfk@oK>5A>faSIMa2 zg7$$65}__Poz$-PiE|*-PUzh%y|h>eOo*nMh;J98Z;8b!J@KBrPJyK24uTbAp|fD1 zS0Arj#=~5wy|&zH+kN4p`Cr|XPMPUG%Q%P0%B5JOf?8b85#&J4ouJNwVdGqj0yVPZ z6*VylcaJnUMz3ZBe{-O(mK||T&On=WY*EBJpFR$WF{AT*U6ujCj_rQ7!FWmq{CT_~ z=M|gb?Q`dmXh;W?G+fy(-}fCG6nL)x7~#|y`2_3`Uki?2YewQ zkfve|Ev9h2@&`OAUD6iII!M*V{`Ecgx-tss=DW`jRwF)cUNsj+n5A|yJUY+^X8 zI{v!;=}%EzwWG&7Vi~J+SpS{#kDKTcEL_#~IOz>?kBm+-6=fHS>OcIteKUctZ^P0* zR&>f~l_Xo`KmGYavS|AQzwEM7nWO<<8S^g=YuQFD;ycTUBIMdVD5M$sV&1Ue)2_Cs zcoiUb&xEe<2{e0Mh6`DQzqwE$(O@wU4qXtlz65!XJ$rflSKS_*a?@uyFA#+Q@NIMu zJ=VTiQlU1Y=?F4mewvO@4g?S60%?~7>R?O51(~SdgWeUNMa+l8 zdk+hn2a}h7S;@R5ue(J##$qWx5f34az5N_mH^=A8l}jNzuFWJR!|qQS>-^A@nyl$c zVg{}l%l#K(FZ3C+@rmUWoh@*dV56}Hm?BHBCx}bQ?uL8l{VDmFlg&-rBo_qEQ^XbC zjTccPdoOyfZiMv}FK|ZTxQO30=-j>mDMClP+tDx-Ljrfk9(F;ezm9npC@Gw;Z4&qstLRkWG! zVh*M|Zt(dbGp^1KtA{_63mZnzXfD3VRMjv|Vf9TvhtFIf3>aZtaNc;+T$CRnW@90! zE-LCCmk%oz#txGNZHoq@W%a8*oMkbX+Uq4&xRMyqW&PZqJHyQE?4!XqQpOQm^i?}c z1=7SGVea9jd{;*la^oI_-^uVw^goRQybRSaiP#O8Gh84bzO|EsKcU``R3e} zMlAXU-;TSAdStqmWF!bri02;Xbvp?vRTla1?LaQza%?O!w;rAL)7`Ja(%tsS`DA5F z>4{tFtjT)MWMY?Yg~wNF^SOk>9ehrI*4;FZ49vlsK{w5ripJkbJx{T#El;r0X?^J> zFrrT$~Hq*FcHB$s|N zzt?N41_G-3Vsp)X=1?n0wtAJ`++JJQBIieT&z#Lt4Exp6@W_kBT@BR>9sKNZ%c1pZ zu8Ob6;y}x$tmW)rfS$frLSj#b;zo{em1Qa%wd<%3Vs!*O8dpUFah(P;dKUFEyozOn zX$dnY3W0WVy~-r+G>xYSHl`T8T7H{dVXWYxT1RY=?&AdLTdphq9er}s;678EqSh^& z17S@9CGptrPc;p%ny-i9_?F!i6?%@^O}8no1;B*kuYY`BV-~Q_L{jF+xGa5!K}A+X zPAj!*iDAFX(d_EnKqttsaZRI$(Rxl-xz{NRXJXP=M+j6LM0D4;v;j6}OmIm*~irV87OL9ITj|z!Y{` z-$DHJ%X?sdBuNb(w#8eIu%932^PvPiq|`3@V)HGDto08%xzJE1!*_|UU#9_Wi`Io^|znik{|nb=8t!WG!{=IT-1yL{)vB8unF zdd$l^@byOPy-=CguEGv!hQAgR4_Cb)p}i;0Jlj?j-l9gY`OBW@rT-uSL2FSRWsu}x_a zSnuiD3&B4#a?Dr*%>W-tJ@gVUqd$2qRYU8Uj9*RQbC8!x!pKs;FVyQTa^5Tc{o7>t zWAl$Z=p|E`r}>Ipy_~WKVviQK9`X`nq4ql5Oqhom7a-G-Nukf%*#i!5<9dx0ZI!!n zrVoOSzV>wlaEB=LAb}uVe!V^6*XcBoDn)4$)Qkg|L)8Q=;4rJ06$H;L^bjR=3h_CW zzNn_tu@Y1PtAYH#Gdhf2XmTkj=wX%q`kP`j0N56@bqZNuylFf zRB-v42+6Ny_)bfCfu~_8XwMk3%Kcn21It}H=|9;VR2N9E$pEa7sf%`ukz1b$Gick1 z^e@8RgdTX9w{R9XJyj9)!W9?D{g<-T&`sEANr+vV%&%Be;q5Y$DYH!FW%ae{JureX zf;m~zftIKUG*P5^skv^6NLj5wQ^clT#ashBcYr!Ufb`q&#C093-nd-dFbfy>3$5#x z&imSR#z7oh2Ko94U7?r+Dt4--no@_lD*vVc7KX3_;76o!+T))5&L>N#!okH z(%_Y0AJw(0l9DZM=xwqd;U>*pPCnaTry#>x+|8Q;|VbH zeILF%(M)Wg9x%qSfv;S^S0TX`4{DZE!Zq4*KQ%x>%vNPr+Ol=jeDG#{Uett*RH6JT zC;y=9V^yVL{!{6;twMTLLajg4$S-ZgcfPewy)>{f@{~%N7mBbMv_`C^9Z43g-(2oN z_66OX1~q#ftnmQD$&GsglK z+poe&^z@JQB$s+v*!s5qV&cuB_BSi<_*ly7)I0?i-%X~RoJt(tqhN~kxGb!`{|@lN zD18+Y11>)bZX=H=S4tc^y3!7mvuC`SDuJB?ksg$HD5t|sdpODPcj)@*L5#>QO3IlU z`Pv5+>i#98L&Bh_vO{N1=g29qACu-fB?T+-qU|!@D?z|E_``?nrc7joaZOdOb=$<8 z%l7=T2%pt9RY#Cqdme;&vK}_CJro>h>D1oVCM`?JE>0|{9gk<EjF_4W-$8Ei9DfS%pova241|LN=bR;gs%+I`jC{I5_+#jwH6^T=U z8gD&D>ZlR6x_vCGp3-??+uEk)pUc%v?5xhk}Ifi48@s&#^u;X6s)Bg5py z#6`aG@cD=Wkr32^Yp}z81krhEKGj}62w38CvqgMQ!bJ*$@~Rt_ulHA^{Z~H!(<}Lj z&55hF-8p>N#9SN*5#~C^r6dM)rbqWQKasRawidL_(M{qrc@gg*YtkSL;a}hqjLSKS z+}VJvGujBJmP}O-msK91X_E+C`bnoE{p<|3VoZ&;T+*#Kc(=fJesx|wvef$Yt%`X3 z7Mo>~gmU-QS5&c?e?D}bw&xYc71nhFOI`b0>&kjvl^$_3;V$OiI0UCq$Hv7iCG)b~ zDj>BiEx#N`r9 z!h(r}`mIZT@%9ZWrKHn9cV;;#4%mwn_Z~L`s`JaG8^zT>)GnyAnD;qkT}U!jC)H|A zyTIIpWs7}k_~R<3=*P_gIZA)oDyYmOuyGn8$3Q&Z==Xt-GmyyDUMe5|1*q^l1(Pn3 z?rgaGHTB8Xy`<<&d8Gx_`F&J!0X`Giyg2-$xw}SFZ0D1X15e0u3)e!L!jxOXN<@4l zUmvG9X%JeuWR#EfXgZ7S{W0krXY0tlS<~di*B{DKrMBXlONsJXIX}ng+KuA&FcySbe_yBOvMk-&hS^A@mlkTO zS<0NMWNW1!6!om6EED0W9n{23KOaVd^=cgtl0yVVG1dP>`a>Yn5VON7v9LQA6LSkKJ$Q!_;RfynHBM?28-W|c+nV@vo&9I$yKWUEWfBas9jRU09&Pn+b z%F|-e_0U*2$mncuGSQ-c1lW|%EFp!UATH9+G1ci&+%xWOoVsms3>0{{=<>muN#86r z_TPnF#(@K^^JICnnNF)SIB(~+u08#`WcpLIobdWK(D$Ia!n@jU<D)t2EU-i_ z9s#Z(n#rPr<#Z^{x9MSet#1h$b04Y;ovWCl+uke)?|q<5dRL*nw|xI>U(Ra@_37sJ z!nw{Dbp_)0Nq&<*!{RApi{F2L5oBy}h!A#+zJfRJIbm9IRt#d(AJGe%{j|_*FpIV9 zMS+`raRIqDo5Ye*gl^4Ju>`VuZs=sJD7fY!4j=G-655#<2-jbaP#{lw%-W0^4=7wN zpq!zb6GANaZ>0@`bK}gwfa+meb`U3RbEs2;-+VUMG&-J`9=-bTq^0L-hV?8K z0}dip>*tdPvxXf$D02i@KzhiOE}?K>iBF}^U!@eu4^;y==`gDYoEF0_HfZDAj`=GZ@#@0K^uf>}FKye2acwcbaEH1?TYhp0Ff!Rtd~3}S zaf2y}UDrhf+fTc=8y1`iqH%iW6Q0N#c@9k8Q{Xw`ePynprXsBlxQ4qKlRp+`-O`un z6$#w}W2(u+q>P`|Hm5C|lKV9BbKT|eu1;g!>Cc%Er)x?++EYHO7pkRufAI5tn36Hn zy;db-T(FcX8pS8I=_RC55=f$&j?w~W12QDG8fUagTUMxY%`Kc$_)h=Y&uxT?>1O#l ztHjT|060QCFkAgNh?-lEQ$kP7{^XgG_@uT8LEgKLS&|sR_44%kI?evEk5sn2;2^a! z3i6}N$*KDzx8h>U}#qsFmo2!>S4GLSQw634E@l- ziI}iYk8FKD>j$J1*;HoRdw|K04c(t}gOBppKLJ`sHy2G)-Z3eZixG7x18u1cnSEdL zSh!RZgWF@02F$?=%)^u6A7=Z`McJf7?Uc?*fo`jGjBz$elpmiX!8QgFXvO&3dr?>!T){iI^teAqFBf`ZARXF5A2H9AU= za=1>P@_frrQ0_6At2c8KB#KIn_2?}!#-pXhDBHenPqWkjG@;;VM2o^TaGggoGB5tUd4+%)-tozbzxvkA)sH*Y(?<{6yVC16IyBBnp527k{i~a6tv|`^y z&s552XeD*XWlHn%lI09*!gT znW_`EhO6Z{5SgWQ&>0TY;W{EdpaSz2rb-mCKMg)8_WMfJ0l?l+C1aoU-S_|s%t7wu z?<5_0W)tu)*-NY6SY~U@6(|yeCbAzCBqT#3*Q;_6?FGqLlAuX=vU6K1j*BPFhChBP zQ$`9p&-Lw^?@Ew^ew36sn$&F>m%}3N<`FNSBAR)e9^(mIT&zU)<f~> z_()GtZ(NYnbLn?k2PHtqs$doYZNOCMT=;XD*J8i-NS|}Aj9yXV6bjCk`Lo0%4=n8W zYAgq%Z5^?=4V~m+w>({&RJ$F_>dl|#IiL|s=0@;@yaZ6{5p1uk&?5Ls5iZBSy;EnO z3|T&U{MbMlxGW|#TwF?;+;It${8&S}x z4l|C7eR_QU9kSon>J*l9(KoiZL6?geZa4U8l&Pp1nl_Rhy`8k(+`2R0tfLT)>)X2i zzAJ~X7%-5kb=oWf;{B_jnjPFs1L}X(M&*tBL?$R9qRzluPI*UBadQnjiSS6ZmUJN9 z?+1uP$lz_8;lZr#!lzOc`3R!{>Ords_w&V{j{p*BGLd&DKR5fMseRbSadPhsdz5m;~RYhDF>m zJjtFz9738f&c@bYcOrUP`joDNT4KK9U0-E)pvpK8{hCl5K>qtmieBTK2INGHV1$}` zUdtj1@9K$EDX4I-KaEmi0njOsX<$R(Yx69Kr}i^|+`9Iwoj!hgujRB9GUMNK?MrTr zps9-FTmQw!#}h9x^@%F=NdeHy>3zaSNU%F9uyJcatS}vm@8T43C<&w)=^!pvtQ37~ zBwdUF;Z(oWUa(Jc1P{!UGk8Ixgjm!6rUEj>6#4|mDb;rAz+-`D_mtlNI7;ql-ez;S ze4!cu7Si9bCEm|+ng0=8NBqTs@=TZcWolqO{P6tekTZOMeWgF_Kj-fkyijFDax$cY z{Dq?8;qKX<(9hPl`J+4ay$Qao<}+Z3#EmKuYm%$CYfMXg#2{bCx-UXh)?AzyR39l@ z9ROz;NF8hof}5Up#x#mO*Cv?~rJnRB3z^Arf8uC2|nss!TPTa*(;bLTw@obUgh z1&t}4N{+tN5i_?KePjdFt^Z>8{~_+Z1F7)8Kj2DHiHeXd8D;Mor6Rdjmy2sg_R6|$ zMkGl_gzUXtGn;EAdl%PsDSKXli63kN{ST zX$nwW0{pibHK|*p=_90yr8$g%X`#c&D;o58f(>}@qE4h+ZfM*UD z2VauJy}z%r4TcL2-C^Cb!$PzJwV0T;t17K;WqU-dm=A~9F80}ypBAQFklF(TJ`*;pgTu$=%iF5;d-9% zzlTO}okr5t0|~;~7(qRw3_A02LItbb&+I7@;BA3^VV>DXypf*v4l^$Y`(gVU+WNxw zFTJBQod-@#Uw1tU$ic zz+tuaj`+7=PQ(RJA=aroqZs$+*-I}3j@Xwt#vLuG_;;l8)`$*V4#;Jt`XUl_DKU~m zZqzN%dmUNQeQt3$MX6>ihQkTNLV0q>{-^fN^&x7pD)}1z0R+HrWdWW@ak=ut%OWg_+til)@JBc|32dM zB1k_(Wr|K^MG0bq&C=~CQ<^gFJ)nHd69iU}2p98TZJztlEOwI-%=5@Ebvt)}VXLwJGc8#I*uaX%qZ^pTG`E~BOQT*cI4 zyn1sUZu^JhJ9rI1>NWm$GNrhXf-*iHUEX{fKH?$E+c2Y|sk!Np31}8&^#Lg+Xb;G4 zw&t4=kKJMJ%@UyJeJ9ER>3`Yo+}j%`5%9wpfjT{<k)vL*{--i0q(k( zf3qx6ioE07Yu4ic%*nR0k}T~6r#EOSJ-yb?waxe2pT^H>shlXj0Gn~1yEAa>Wj~Dc zH;#786@=R(r|O67k+^ZrUlmry*eLs5B(3GB+vI_kNE-S7(Y3%P@>rcXuiogpsg3O* z$?=cct+O-fs~60y?i$v3wYlX_M5TUYF1roDGW}5)6)U{9qBy~r8V~}sa(W#J+@zzC ze#YRxOWv!-k%(4*p@+!6t7jPs{4?B@=)Gr25&vEL-PD55%Tlh|Ad!D*!v%`dm7sG# z&m_32O0Qd<6-NlR3jSle5MUYQdI1ySmNGt9GYUK|K@DqWY}r0*s#fXT)byx2JoF1g zr?#lPMvm{*d6rGDCf?n{NA4P(eN88u3zPWxR*hWYzD3|3>d1&eOKaEzp-NBp7I34w z_<)wgUTnJQn(%R1&w8*6pLDPYQPtmVh*KY{oKW&9<6gfQ^Uc2(*@DS|8H8+ih1<^| z6iCPIn)U2I0+4RqQhy}z0$%&y(jft$!7RVEZqw)c4?WP``rx~fc(eOr7gI(_ac3nO zdeG(mS!-{6?Q`wiUazNn{?@@}PhCmA`FL5MN5eT|LSj%UY-kp)r}(}OlsSs?@45K!K6SpLD)fm5c@#=Z%J*mI%vy8@lDws)YWJt zH|ga)qzCUHF^EPOcRb;F3uj7>e-i)7^;jTkyFUqttx}B@dbBJKJ%B6XE`+jn{GgKX zc`?%$X;O5!8ezQWrKzAv;gh)53Wf<=Io+v$M-K1^-zy3U{E}$6m*Q{^ zKdak2aM3Bc($a2MRBa0#Ue6wLx176&mlJ4O#M4y)W9_lbO@b9j z#7pilhaHS4G_&EcOlWqY+gdu7o6)UCQSy5KZTy!tD~tlUp$}`RARc99369SkPvhC= zbyqC^+X(iTROf>x?BHu+nGh=-vMY?Rv*O^lBuQLA48iH+J1j^j`~DLUGO04IekP;+ z2ize6Mu#eX`IY;lsgHdeCK+4);Ttez4!E|*{gbaLF{~Hp-EA!Z@y4lb5B{_9m?b0C z>`s1#Rf5p-k5xGV5`cFb?5}rWZ9Q4M{;%GoKfXCF`eIBKzO{J${*Ma^Wgw3-$ zq14Iy5rehWneg-N1SWAlG2VaNBN)0ry`>kTG)O8;tL7GnL{}U+{HiKJV>Ynl_;HRu zvci*#{QFF2p8g3_@GU@pau7VT$-nZ43;0!v`2RQ^P*Q#P z*s9tf9n7B#08X0Iubu{6nv{4edrtoT-|+4)xe__>w@g$2$HV{cUx5$$bOV3kr?VS> zT3uEe)-%fqmumP|KsP*^a83AyaxkSu+vS_ETAX$)b#%o`rsK;@DVuRU;VRu zI`r-Tr=;-O`LD&Vf0^C>bEI2%V11Qw{pzj1p5)Kz!4$((lh6ST!4C)%+4l6~c`d(Qkn@ zydM48Ny&12R9sh~qqhUBLFK!OSU^=0qIr%1NiI#qKLG^J@r_lF!`gV{viA6hkUm{+ z#igc2qj&bDo2patfquRn&!tse@VbXLB>!f*y8d!39nxjrsF(Pmidy!6ZAZ+DZy^?A zzt@>XO=QrYhkISJnzxUG?*Fo*#t?BB{Ph`s#aaJkY#V^r@c(1vDp~0|9={W0j@;ax zq@JccH-mWVoR%+xd6e=?;LBC@TD+$H>iGKi*3Jc2ERoxbHsF8ThpPWXT8{qLJH9>b zU`?df9L^fmI~P$&?_Kz&;>Pe>8~CVc>brYpmp{kG{~W5)`MEh3Pzm27@-73b97t(A zziWIVVzb>EG3~r??KD0C-ON8uiMOsh{eZ@C^V48f*kPUlHkpslRXaznN$?Wi~i9`$;j&FthUe{GV={0?wE2QePKnz(Izq;UVi;G z@8Xa(@sQ~Jx3V|(^_AY{ql)I4UjSgDf9ZFfD_Gf^_}9<~BhA;Fsbg*&5k86Q6P+n~ z5Cw^IsBHgMM&FTAR=TCsI26$7vNMX!FYXnw&@CCSi5gWj&IIVzAD8j}+H}qQ-6*}{ z;t}EPtYNB>m+dBAd^VnjJeu&KvKMenSwyYhO}D2kE|#%EJld=Joi=PmYD1^s&Ypo3 z*zn5?0h{2n@Jq1q!HES9>PGn9b6Xi}mZ4iY>ltrSvd60uS7j(SJVtJ_SnnTvMby>Q z$@JlrZV``>fU!0emG0M?G#&sO&S z_T8A<+>7fQJt3c%H7#6PSkF;|y}qfh??zrYKlqNqyHf9kNhG}(Der*3?#tka&FRa} z7_*{A1Kl$1{>PO`ID?aGm%NDEOo-&!y>cbTx09XmZud{J_P`mim*CgqQPVL=AA*0| z+)gKF6bmGA(;z`ClR;oYUE0Cq(mlB|y)RMgVvK1VU{{}{5|Kp*S9yn5hbtQD> z1I#z3giZ47rFyWv%26SmDep7*r0Uvc<)nrFLC8X?nx2wZYEll|!0>b@R6nZj#QsjcGJ zY%+_Q6Sg_ptwwcYT#hwV7eGF~ zoQtz5&9m{p1d0qgxPNh`5OGy1M7?-UV)aXw!Bhu*UPTEVRkrdbIS$7k{ey$r;8b?)`@UT zt6rnXcjIe=eOvB`c0=IU7xe>a{i=pf15yxT{KwA|I)V*$Hp8ldG?|^hMcTP}s5NP* zx~`b&ZYU`4bj2*a@?U;x0JUj(A)4UEAB-t_Hz#wmqtQJ{?qt5SD~gy2EE7Bhf$)y$ z4-67RL9Q9O$lC-@fj7=eIPgFEtuU2B{WB24FghqgE4d}Rlg5iGn<}L3sfl`G3IDdq z6lh{3t(xljFI)fLjv~x+<+y_NCjxMXjH>_hb)e5N(?_D&YSR7V{ZQb*PNVdHg&y9Z z#zp38{J3YTk6Vr;~L8`Xy&X>FyU7CMoAdlY_ZKkTT-kKRehpKj0X@-mHhl z%#w@^TlCYOpF_Q`em1J4$D!Z z$i#UUYuT3axw5@DFlfvp;kxaPeKYbnh*=kGn#M!&{}DRf)EovgCV3YIWb#jGYIW8L zRgZ^3Z{E+$m>qwLdYF*r-=MjFT#`QphI`2w3ioR#^-C+`9#w4p$txtBwX$lP(S+8Z^Z>xN2(PS;Xw^e|eZFU-bNq46I zCW63IcW`}eY#^<(K%-=}t4S{WeWQ6@$N4zdiT&%)-n!yJ4tgnCe0_iAOO zuKquVkU7>=0ST+8J#ykft^4wd7CyJC%fxHLuD~etKj?6 z>Ug@ue5k|JB*M}%|BtjU0DIk{Z&P-Pa{u!q85TT zF&H{&Ach(qM9<7Pky&|~4Qa&e!+5~D%L2IKec6-2(&mQ+1#Xf1Ns#uBVSoP~uaBow zA>iW&@E^a9Ky}aG5LToX^%pa4WUepLo#tqxjP6v@j-b~2T5A-A{9MeP(^NF?=J#dd z=63gc>Hyzzqr>`2@o}a8CO}b26vxZ-P-V+w~#VbQDL`rMq;Op|NQ+LCr_T}t- z46c|G(8}Gh9 zFV?693V)*&I8NfGb2&fF$TG^zPjzwA@#Ysm)ECnL-sB$>hVRMP7A5nJ86cOI%}&VB4?Un04ovPP+uGBNba#qRyka8O~f^c zG@_vwmuj?p`|wTF!H?ZObOpR8y>7;^*N4=ysqc{v`BTW^kl2sJ zhN(|xn;q_q99{eS$MD_icQ)kvUd>|x_H8azM;x@H``!H) zw%@#36`nmucvSl}U>jH@yv9WHlzQ6zj^rH0CHBXK>`m=EBj|=fz$8Be2A*>Xy6}AF zMfd;43|*ZB>qn)Rc?>x%kD=GQ6O^&NNszUGn1eX+?-lK3K_12@o;%0qrGrwt58k*; z><+(9kYajw#>>Z~GU5f&>%zJ7?6=;XCzHQ;Y5MIorb}YG^l_5*lS4rTTD9CdWhNa( z*6;|EJ!#{PQ0u1=#(EKmiNUc*p-{P&P8}?)Pff2+P)d-dOTGMfqUVGl2Di9~qZZ%n zFUUc|swfOD6h!hGg&?kv5x5XNT!oc-U3BAl!?E>U{q39hGWJh-^_T^$QPf1VAZ=jJ?*jO}`w>%C2L%;3vKafa-Q zF)AkOW|8`Z;D%$?CziMJ1Lf%~4AoU7oNqVtUayA?$y#DL=%acCs5_+_Bc0rQ;@cxp zBG;Z-UdZzD%~`(-q7p&tx!oWa^y<^_Hx{)QDIeSO!cFP%V#bT7O5+#(-mW` zF=SOhhcy=xC_V?R+<8aHam_q!Ag|Y}@WAA&9(3su*K^nO-L#Phj|(Z1&N0MfAIP9S zz(do~QsXHDg+5Pwk1M(;ALVh~ti6}D606}uRHXj;3_M!`NMF~r8`@wQHKKo`TX>%D zjvcZH@hZfc3Y;-95XiYn2ED1BX07E6d1aJ9m6xm6tuOU?NK9$(P`17(9B11+5s zlD0$TTv;ESc*HwlE?TtIA^k8SA$P&s@-TMWrU**WjlzIc2f0##%*haVJ zIA+G#OU1sZdXegvn7#aCI^4Y#uE`jaGDzQCJqSfr@f)Kq7v1H6 z-#LNmqKvJJJSez=SMD_0w^H$EIn%m7pA1bRXL>hsd;9}e%SYq9=~3`(E=dc$`93J3 z5%pqpOU_dr9WcT;VuZ8BwCxt?7ps@IRAtyj`N>SdJh2w{M+M||(oT)Qr}S(BxTW28 z^gAw!zM&!9{2^bJ zxT7%%%Z+{JR=U24PulOOz8u`R_~QZ77S8lmY15;nxoyMD$GD2+f`{Bx*=9`>H!gEO zv9cFz6Bg}Us(RI&z75$OX@~ksjW>|o4qho6ul><##w{NHPRn@T?!fA~-DS9C>{CsS zt7k5@LK`p{#iYzt%$&+B+{zzWAruIR>GOKXozI#@3@s9L2Q>B0Y2R70bnMUeKd#Yn z39yR@P@NBY5Wr(g@k)vEpM%w!3Q{SHY1Vz0q{lWTbM(&o+1uQYl8=O2Mj|HDUk6RR zEbTV85ijVc)w%#)lynp~Jlo2tSMd6jr^_vfiDkWEG+clAyK)4Ld!CjMgUR~ka)IY+ z=Nt^7pYHeseW||mZXoXgt=G++hx8d0y6Rm?o0nYG?o3yO=s$Zx>3;DS&BYH(ZzH-T zVsgetXRpdD`+dH?H0A5Lq$eJ!?q8iYlhx(xG5DEFaAqMv4X&}mmaW|e^=+vhZGZ1s z+_u$0BA2jqb+l{xgYbo(Izo9)_ROslYxsk{A?&jy9%Gc@<-0s2WY05XzHvlw2@kEl zl?`FuQs6>*OrK--GdSZDbWTIQ6b$uVe^idK_v`Q>rBGp-|Cp4t!*V1~4_~|W&WedC zpIBSM4aG@4!dDR7tGA2}S>$nkA%`S(v>xf#J2FA(Mfg1tw7zOx$d)8>gCwlRk}d&J z-X#>FZ7d>o3j#9(qyE$;1Cs+cPgZ0i+A+25Uz5}u%g9zb*NGaU89v)_q>h|9%P3VwkP*&M5&z>T?WnV+BwAoTM3>s$^nVH4% zkQEKNl$Tb~j^>=n#>m5-f{R&>>C=-kLG6T~Dx=E|dbuv;cg+bgX1>M!HFn|obHytu zP%`aKEwUY&&}fgNVpD=vpf~;lP1aLs(I0MC!NZ zyIL7HvwQtG5(vY0OzV<$AS#TL!yH%g+gf(DJZf!Kbr99h+zjTKBF|hC{FL5Yu8iq; zPns){UTUUt>CKkhSuI=Ln+TPeeEw%>PEwjAr^v>P&wcNE^)PH&$n?h)OSoB4p^Pfm zcIX_V^LVW3Qw7+r<;JBPvZSh07qk@vM9v+^Ck3U|yBTAz?;P%dtnB1680EbevG}#A z@j~toGt|(#ubeLo_apAgn|_egSco-jF>d}QGwt4SvZ(T`DPZ$4XX1RMwZl}HcLg*N zddDJfI>vmIsp&?B%&jIxmy9QmJlgVLPNQrLV}@v#m84lqoNdR>MskdF&-W-(TTViU zOK13jdCYo<^IyIp&QW|%Q7YyapSIr;bFMSH_CwJJ$73dTvi);T90ObwX`+|EI%Ec$ zJioWn<&lu?Yh5DSq5)8Bvo$cet%I%$e3_w}Yjl=W-*;+e;|nJo-WVk9QyiG0FboAf$Nri%*4Vr4gMYX3nII zZR%pi=ykji!C9pRbCos-tdDlhP7ibw(;OEt&*w|O;ey4d8KbVIkDBEtq`p<}tW{v| zlPjDxZD;$v8+}ekD)iU${Z0;~yp>tLsZNAz{&48e3AyJnih*u|l%#~6&}wO3^O>o$ zc{ko|+^wexk<3VTZT?^x0R08aBDs#Y2WpBZ6mH9rISC8Gmba8=`Z#81bUe|f4@40y zYz^a<`7Z@7;O{E6i7Pw=T|wpW%qX2%E@ugay*|9)6;O2P7-dGFlbqNFy>49Bnv-5C zs2*zyk3iR@oYW&I`t?XRXnrQ}@2Zc)0$V|Nl?DV9BqBI;)q1$JughCHl9u_~5Iy&A zh(R{T-j4Yg7NRua2Y>F4MH+(Dl-g*qDWlG=TPfjBW@lba3A4!1vQp_N!jNx!ZRs>g8dx!B5o4zxaOs?c2E^gQSR7|dP}<#N{tG5X~P`>=R6n9u>s47Hsa4dTu%7PG2Lm5V#Gw*@{yOKUOAhfR%b<0 zCfb&Zq`}XR^|N2arOUCzz0$Aaql00vKW_+2V8b2yRl)OB{c6uK;WggA{)B)YImR8Q#vht3fpsZEDX2VnbVt%K3;{iCaD7?^B_sPffQv zO389qvIFP1AJ#DO+9%)0%LqsTR@#7ny(V2mTKvxMbg{Dv8xSWJR-)zU){1wcIj>ee zZKGjF`}r{0ryrER5x_alGzL-@tII7;!dmb7c|)0=n8f&GcS46}=UMyCT>6so>~^22 zc5{x%4GY9?m^H|(ZY?Uj|AL!jf_>Ms*S}94q_DsP)p&-y;P+7hx$qcvQ|iG|zL?_K zC7y)k;2>W*>PT}Q2>s5hV4=Y3h?jLQQbQWDmj0vUb=C76t}nX+TcwYfNi(CRS0vEQ`Fu#hZ5-2-15%ye z#ztdRGhJuz%2V+CP&1{jkmgl+79xprm&xj+%8ll|TpGY(*hZ`|_Mk}dDgV0A9rvbj z#>~s)N#DoUmovjvwr;xprXbDFO)0V3YPtKmIC&s(ic{GKWUEGU0dS7n2zyjhO9p33 zAYa|*29XCohtzPPN9y|Yuso2_{v=DQS~6G+`$+rTiK=HFxa2@wQ9f;2l~D>u5W`pW z5@XWhpdMMK5mxWWnzu*rNceNQhO=8loYS$TcgWm`Q_#}c}Bw<#(Rqf|G`SVTDSl7r*IYp2X`YqnksJARV1hm;?6V@fv3^Yor* zEdjY#q?sq)9;@(bMQGyCS;puNmh5^or}9oDgKR0%Wb)WLm{Q3YC9;blVvnyIdp=z^ zey?*ow@MW#(A7Ve{k9kboL^%O!;qyE)r~agD`MLRKqqAbQ+QXT^+rKOoH{_XaZg zY=6RKkb?SUbUId2==QQX;m{QSd|EG@KX>|L#L0n1TGjCC2XxNOOn;S~C;K&r1yWK< zaUKSniRrTgXwUK{rzKZ!wnZ-|564YDyo^jC5!%BuxRSsSs%LL01ViA9IE7toZ0CBm zV^`67+J_*Sxd{Po#p1Q?4Qb+Gt?7qVVHVePM|(IMQ7;)w1iCWda)ZlgUIBo({M@oV zxV%{VtaWWo3d&mC34d&2jI2^`H|K(GdiU_!suTFPt=|#j+4-VKX z@h_$iHMn`>t@?C|qF}#K2{oca==o)8;SI~)k*kZ-wcJ0VoqubqwJspOQ=bD!%BS+~ zz(#@T3NN#dL=kX_MdK3*LW#I1nqk#LGW$YsKrIp$ zf)Tqv+4LLVd(Cn63ohts{5;%~@Gi474_xwH;s6#FpR6r9eZ@a2;T(tGqNt1t%rEVo zjAv4EbE%SD;A{%_*@@*uso>Fs{!P|CUxwme&gev$o<6JbsGGa_E*dw_`+H*$n1+n= z#qQ0o9EzK4O-^v%geb*#Yb<*_hHFJZsMRX4TVuGC&91}mBrN7!NB==>Jyp5TU@{ry zJ}w;2n4|TocLzHoRh$UyC_`4N zCYoRBW2^Y2Nz{U3?Fy1F`}jqJ;<9I67Xv_H5)E6@gsK>cP@NTClUSJ(wj&G!!aw?M zPKA>pw#(r8(o0qy{t^vwfn$abYCpyo=FX?xt6$JltL%dMHfJQX6^<1-t2*K%^*xHe z*v=OtHUS70CVsf2-nX@+s`|-4ZEZoyGy~28xb`4%Mq?APB__1<4eGxBn_N z)#EW*fmaDh_Evq}P^~hc)9I7M_g^J3tvyizMD(ppj>kNh+B(VkZ^X}%3Axj~lsgH! z^Igq$XTFB!6A~pHy<5~sT zm@pi93@f0UG&)aY3_7BohsLH0K&fQEZIl*((<_E$!s)rl^Fct7F)R#5{V8ZB4}lI)A9&azO6fMW9LhlRhYUwpdcdml^t~QbajRi{rjgBYu1%q+Q;?QG@EUEm*t4s@ z^PxnM+Dgabsy@^jB`rTuD)U1cQp1w7vpBhiL#?KoQKGui+}JtvYy+iZm!|ti&F{j_ z3w`F|eF7V3QxO2lwBVEsZpjj8mq{&pvvqfTL=^%WD*^)TBH{M$Iuox&5VOH8K;r@(Kn? z_pY_)5ELriW_}WE+p_k8VlaPkZ#7---e9q0*&dI%T|d$F;#>6^4C(lK$E>Lxu&Bn;@0#QM}1ZUC2nm1N1L{K8ukA5$-WsoH0e4J9Mbc zBUYqeq#(069=UR0Kx~WxbY;~p-PM}!Bpy)czvU{f^C`)te0lMW!bXSGruD1v!k(uI zj{7BseQL&wVNQ9qVv$uYDnR|Ns=3xyrUlGNxNmr{$u{+C?L5jbQ7^4v+7tD}`&BYU z2Yh^)lI<&~C?%KjnM_tGNK);iV#h_|J?;hB^TWJ-Orfq^9r6?Q6k%!$#xb%woXYIK z`kpd>N_S9J`gJX}N?v$<*@Gpq3En8XL>w22Gcu4uvm{lKWa=jCQd#iz>Z#qgfY)k% z*W*wwo#kb&ny+S=x6MjM&5N~NcO-ZTx6H9PWY0O+*5>S9dzDCZ{(lUgz2Q975=miy z5Y*>7YI8$TvAA^!Cq%&Q<4sA`$Mg+-yZ^)a$gRoD(fR$pprK$AU^dTa#`Pf6RK1}K zIa>=o(F%_85w4Z3x1!S5wxIP~>oqBXQje*tmh@WLHhmms>K1voiYEl@1=ahB;>{m5 z^QM=Af3m1cE9jpq5DdFLOX!h1SxZk~aFQelM-1-2n9v_+R4)Cyx*0U1;s|X zzOhiDTD-T^YVho8r-QD_3{9KPr+XFQka9CimGmwFAsKywH~R9n5$*DN)7#%kZ#&2n zPDi(jL`Q@S1_?wzERe7iuRtu#G8Q7M!l4-Nc|0a(97abaV;5dXb5hA^3&H6 z0fVS0-UXh7N?r@gS6HbnQsKA44SuUh9P{~ND9%->lqzqma>)~C^X!v+l-bVEANej? z`Q{E5EDqY&d^V$}@s^C01t>;{piU8{od=m|5?K9#?9^J88{9;jV4q(>oQQbeu@)F_ z6&37C$=>rd5rs&p+Pt87tY0@`E;ia2q%5T|_dG@x25gb8y?d+;?1N;wt!KBpL+S~K zYdk~<@{2=?6zVv4p$L=UTF-WsBiuatY-O%Ei!rLifI(Z4O^W&;-aI(@eTJ>8%Nsg= zQSjn>82OIoCcD!xoRXS*H2HP|?jBQKRI~0{^|?*k&I3>kn>xLO%l$rvK}OLPDYse8 zimsVWP{`kq$T*uVSR3a^6t&FG1)YitW**2%^109vidND;m4)!f_+Tcu1wgmvHOqr$t)HU2dtGCv83^N@LWIu_A_9Y6gyc&-y=i@Wq zY88NgLVG5J0d$@v_TDtF#U&0@Sj?kuc^P-=O7tX@FvX?qemhaead5OoPp8}D%DNgb z4DUC03b=6c?s@I6n+DhH(WD9PKasRo^Gq*_v0rMditED^@x^%>68A;_!RZZeg``tR_Tv=!}@PQII034T{Vk|5_#57u<`3+ zDV8)trX*auF#~MYYCeuyW(AsaukgsmI}~>rD7QOmQrscHVahKRhP6wWXoj6fc3j!Aj==WuPe)y!IH?sUC(Wt~vy zj=uUA=y~3xXdSU=#2`;)h(&vR>ACT#<1i+9+st=DY#!*YepZ7FB>=rmINBX3$_-QY7 zd1SErPxG2<^V2`ca*A;NeTQnZJEW4o_tioYx%vg}?KOng6laQrJ2++D_^x+a6g`DY zY&iptEL=UYCPID$Pp=MCL?qrQ!r07VR~hUDx|nk_i%mpRIjlHMW{vM=ttC- zmG9m>UYk}uNctJsvP7>~Y)%Z!9;b*j@7O1GIFG>><63j6idNHN33}4OKn=&r7lQ!< z@w{5CrLOid_azuC#`{1m!Znr&LeeIjgFb#?==N=KVT+^|!l>e&*BSkUvAK$!d-^bp zsFn2}Bqb#~74gj`bzd?6stQS-gj99qP|eKP+G-h1wCVMMJ&j?$-by%OhRpPKugB2F}j&hQ3SW*(}nvF{dtBR^cnTMT)btGuNGmJ;MJ z$1yJq&84#5?_OtrT{;`QEza$ZosUc863%pu-BRVRKmpNiC>0~E z_A5+j`M343egeggQwcJ%HP`fZL4BxIeurcnUpm&}Db_Da7&b1ysYM_7qEu7dar{eL zk$Sp|%BS@AhU*qfb#)U7U-lO#<A#r30_EY0ZyWME9p=>B z0>RZ<{dkIFNES>5c2;np-hTMJXId5JDEAO;#W^BTjCR}06+EDjLk_c_2Q}9BmBSgU zdGpb*?a8zH3^l~)oWHmPh_1Lz@|QHWRWfa{e80PIO-F(fae?VpskaC?Mk#5l?Gr>x z##wxjwTZ5ery6t1k(=k*Ua&qO$uU~^h&l_RtpwFjh{JA{;xnH0O~uV|d!cy87$QAq zwaJFC4r7}yJ6 ztn!URS_|-X8D;qZTR8T!M6uOL)UH_F;XY?tk{0qRw{yv7$vn#Dm(fNx8l|o=ajcRb zaLlE0Za0e6H{P9*L*9arG;!1JpCDbX&LIYyi#@Sr!TGdM8enr_VLu*q-$%XqQ&Tzx zu7vY2dsCllEe3c+NqMAxr4(a8k4C|)PPD1vVy#V4&KA|kilVptVg`ahlDFdOz(;UI z;)CT@;^>IN(}?PP$BYPTdJsohe)=cTi8P^|9bCNC2~b1QgN(0!+-?6HQ)50cvbVD^ka3WKA`Zyj6Xp5@*F zbAoo9kzs1%iwxyv-yr$~XFSdMAtq@&WvCckkIhhKI?V~gW~Km{E%gDi1kmh*QV(>QXOHYI zs+nH`@_O#eCc6K%Vn>wK*S0~bX+;3+&ZX7aCe4tUp$wF68wyafluf-17WQU$(lklB304ZE_9K z0_jec1VPQ0CbccguaP8F<h|Qm2K_tofe8$VNFqh=NS}L44L2i>)Exr9LT4!zIaQB?1J~Vl*B26 zblOgK;6SdQcsqHzsII}H^m4yCOKZAu#1rpBGSNpq#TbIOx}lkS#qjLOqu;WXPL3iO zv5#_Evz!T2dzBHl90?8?Lh@K#PkziCwv3LPfg%5i|_TMsvU501> zj)Q3>=;?KU>zcoIOl@DKJOnt6pPny0wQsM$+vgC|e-$M444X4A5@1nnn?aYO}6NBalsvHyf}&`Dm-tKe9puMM zgnmKW&)hOtX)!~Ox4w!TUPTQUI(%yb*9yw!e-P}!W`Xrbv;-FLZPdP z!Nwfgq1`O)A0Rsf)3{*Yv8~0JF^cMYR`PGdxJt1C#~)b%gwSQxEqFa!{iDf!V;Z8t z?YrTfWGIIvqboj>7kl6w4tmpMt!`~rOhW$wKi)f%&Wg14<@yQ)Dn_`v*d2y&-R=v_ zAKV}Th552LK|zvlnzk!;4PSxWGU93X+hTrCOw!;3myw(&>MiN-W2PnsXN6+lS#oW4 zq|ZlsZJ41dsIwOd_=6x)(cRei!QUm9Tjnt;B2IdH%8o{sGvjma!kTjW2pDe!1}A%B zRr`v&m_spMVjbd|>Df7HjsdR^lryS@+M2-QB`;DJXt^KC1&f(7aQ+lp zl}cjS8L&3bW1b>5ik3wVJ;#N=3SCqi<$N#EN$wO8V{iETed%k(;))yiY+j5z%qfDV z{|M@)O(*BA8rdUeZ|d(8Dgx03QVnqV(Z*V<8oWjIluz8q_U8ZxU8>q(F79w>v`Y{S zavQw7bKqaFuh5Uy-TOUrc4yUcZr<2_MJB@}3vJsZQ{A^TfJ`Q5(X%`AFA;kj@ui#T zEL@9Ech+Vj6{#qAx?re1xqlSoVT5Lu?Gnk5i9)-LK1emJZW5C*L-ovPN158A%JJZ9 zN`cFjC0iCaM`~4QqsE+1A4p^f&^qYbNmW^*xm6)!yrnfURmR?7Tomhl+cgGyW6{4| zjXSyv(JE8&82IMiM%J6IS*>$IwvPHu8`e}BFm|H$6&gH~y8zuO3L)~n`=m-3&%C`l( zR9}0Vlt-gUPTn-(&HY1|X}Hx_{-Q0V1N9o@1fuS%Pb+Xm%nr6fRrc{Q&ySGr4i>c2 zI7ZSQjUP6QC#w`IC;J+GfdiZio3E(~t{9|J)d3oePjnGv+;V1+rbnF`^`*|MaHB?xq2#NW)G1!bz%r9-15qV?HY40!) zuV+0x9V)3i~*eBf6+_Cid#6E0lJa6-g7V$yXg4EZKzd%XqXXuiU&oT%Yngbv6JShxS5$&*LHw9Df%>MSqf_b429=2YNbGxF z-bH!4BUYO^Eo^`7`(VLv$1N3PuH=3y1qHD)uesRCZPPrXWRLEIO8U~1*OoiIz>V^F zgj>96hi|TC>CE1Q`iFWRShPa7>#f_MdZ}UZ{A~eu{!|xj{NgL0I81RD! zJU?nb>82bJcFcr)yhr--*D%MmpdW3Ol>{e;rc;WT6CUw0zD<)S!*vJQ`Bw~@NYba@ zJbXbzBMQ^)ux`beH}w+*9k*eSZ>$?gzCa>Lt~U= zPMm@6P(rJ#_-&sy33Ao$7|%Kv*xA=N-K>1pI4l1a@+9a_0}eekqm$;)ZtCo&%w?yD zMY{N+D=PYRWxlq>Ip4TASbs&oKH3^lEzSKdvb^34x3nJ}0@CO2n$!V5wwhlYhu!f{ zvPY?qWJuWz?OzE?=jd^J7&K%*{9}Ss{phI-kM|K7@4c;TV$nyiLX{!P?Kd-I+kUPZ zp^)3$k>2zScv#*g!e4w`U@Q6p_sQzV<_Zi_T5QLoxkJgUb}8rZF$)Z~PAN_*%u|9C z7=53+$h#+TyjYCeRAN0rWq_tj(45M0`cQ%peecIZcR=8YaH~em(HDsd8fFLu>28T3q(O%6diQwW&+mEu$NPu09;X6o(9Gw`(DHD6+)Dy~f04_Z2VbdQfZ+@<{kpL6&6#K?(VYF8w@s-v-ys`I_sS}!i(6VQZ+kz5 z>UR&qQJnVw%ekAz0^R}3^^-+ZSm{s?+QxD+o>3fr9KV^}RNH|a-(QmDI2vnksSV~D z*yKTK=^cgCdLj_8gX8|VFbdAZWt_aoT>Vl$UT0W&;(A}hv(;f;gGf`hc4%Kqze(R! zkLVbCMow!(CDZTT_3wau;O9-$4HDA+kyzy88G&inLU|#~gho$O+%~=~j^0nX*^B6X zIXRk2#GQU!R{s03O1u?)=)=a^OB!>h_@eWYL49c+B?|E3Mf_#|qF!EGM5Gst9)ivZ z(Gyd+r3L0#gPxyA;^SigyY~HMLAh`_B zX|+3YF~IfE(BAR7`_BJTdde7UympquRDYUfvP`jIz*`elGi(t{oH zenY%Av}%mD?bKV~JQ`zNg3!h%BFT?W{GQG+-ZW`wviW5>aO+gkPt7sTbv2`_5FTLM($iq5vjE{%@!{6bT&S zX*RX&Vqu$wha`sre7=U%Rb(2y&mee%X*Itv>3D?b6xw1c)pOy$hi*;jmqvXB3Bbs$ z@I?i1kGeNz5=2BgK3+y5kg(djGjgJgLRj*!Ou}gaRl5>+;UKQ#={vLsTH2duWzoL6 zLkV3TFIXbF`7Nr$;|;GyvU@A*^Pi04rUvCj@-(zG zRL2_B6e+usUf1E`4cW9!mXDmnN*)&=XTa{jXraNCd0{#&?=>Rqo3dvm&G%aoYlt5Q z8K#q)Q!_GrDK_uZZN>Bj8Bq*k5KCa4Wp42XJWKc9>=M~0co>JJlTrFwGReo&zo*Rb z?K!OK*T0#cB%vyAZR5S@5ysa@Z;29fB_<^2pvr^vnVEBa=``UfwL~% zgMsc~*Y2@H0Ve+bF(=K7ekG4m>+KR}VtqBfnzpWjWDQOg-%0RuSqR#~5^JIQvQ}hJ z%P!yV*5`>|;mZky`&QRI;%ekEKNBp1M-e9X@4!4=eoOT`sWgNSGHgg}pz- ziLoeXJ{IlFtio(*&JEBum|=nA+@y`8M!H8~ibBF~wvC<)=xw}`mt+nRH@f=!>qA|!%5`}z;R8UQ%0 zV*!Lvp2zuZFn|dCorr^ev+;03u_Wbn20~gv>qXA&Pp-R$U7696)QRQ^gUU@_><+#` zFEZS9LBhX5US$CMj)<> zZjlr6y}n*xk>|!$yk3hre$z6O^6h-8s7>KFpEzh<#my&gskwzimA}?QA`F#V2-{u9OoPoBIRS)!_(vGq?ayWf%Fm*14$Z&bE zI3gw5mfk#4oL!tC-Cc{%q1Su-RRbdH=e2%Sf4yOUjE<*>lMzDm*9xwnsBXJ|8|KNcF`}QvyCPb6&G#08qi1-u z%pxyosv#iE*FqCr^YY}LAp-QF*VR^>Rr75TjkC|uL6~F*bFXj?8wZ_}4Ju2k)HBPeZ>j-jOzr14S)r&-QdFn)gODoHyLn$g0z8H#O!33oqbyx^VxAT-6} z-dARL2kkRc#yvndgf?=*Y>NL5s^s5#uLKQPvX%V4}%S;;zvI~y@^>> zhb}@vF77y_@uZ|i8nF@tuZeUBp+*`QjrF_(r_1?7PwCOMz!O3;^TN;h$D}}MSH9I+ z92wg@%>)ck@4(qKDr}AuRkeba;X>3P;qrx43QwXH6rgHheS!Ti4L*OLp9g%2#LOBW zS5X_)%@0kI)pD(Dyb$0J#T4*?@?;4PE<#M`e&3$DK!c6-s}=&Xiq*6g)d=G8Gd-KK zQ;EW>{nq;@R|to~>F}*ST$_bQSMvVaa--?%#fJh0-1~xXN=~>K*Oy_7*%ceFF0FI> zW+yF49VBgK1LNF1!oH`p=wNF%r)`m>NI>4-o8W}YVAE|@TR=hPsPs= zRCuZz8%ln~hgU2Vj$CA%o~5mhzb20>%P(8J+B4M)N7yd%s4nPrGc4+GSgWP04S5Z3 zZr%DXIN!P{oLCJ_B)+&5SIg|$Fd^C19HbZmW#wIA)Z256?B!_KHWL+y_A*8gnxEf? zG2LY(&j&u`LMxPpT3O@9 z4G*(UFT%xlHWnMY~)wO6+GL|H(L)ZzhoMY=?HX9rc?eqi(4q)1)*F1 zK1-%Y9ZiVKc1k2K-pSSTs$lH_qy8Xf?tjcA3=VCzsrH@CFsi+L32;R_N;9(pSa#k9~K}SA0X7+KE5%)RVfpH%5Ie;l0!mf~3)F~54f8;_@xtkF2miS=NaWt7e6 z@10j1Qs?)te!Ru{NCi00t8rluk(gg^iFHAS?MBDp(Xf6nV&*S_% zJ3G}C1oXie&V=GsUU5lPJ)Fr*J~15Bt=Gx=Jrp&|7D$?Jt{i)Xn&1cUC6XgpCnJ9Sbxc$)>pt^rEn$FH&723XLmk!y~ zEie%F?*FN7O4Js-=^dD(F7&-ti}}E)^4|Yg371h_C_VoM02NZM z0lD?gKfbD$elQOfPuif&g^#TJl_b9Z<)V@^N#FM-#3|tp69{MMNAsSwN%+B7VleU92Qy4byuv< zY6k1)))v==0b25Rt7Ny%4Getn2Huu=1Y)YwarSxsls^$``one;gJ7E)NPoG&A7kBfDEwXyCc%bYn3970G+d^k$3aK{ zu^95Rs>=bXzJ5rjQY;tYdW+Eghq7npP9Gh0(KOa4LFane`oY4^g{s6;o%we&pNgt7 z4p$lyf8HqM+}*wN$)HP-(y^COl9E7(--U&?q9Ut|SJz zTF%7;sMmJSmbh^Q2}S&YT|vW9&s%kJ)9m1$a#SOU!DgRssJ2UOxI#x>d{s?i3!g zq?|Lg{*Fhhu$T87Q!6GS7W<$54f0FL48TX;BR(M9;S!Zptpd|HkRyTDOt;!4$#@z( zO$lY2ls{35Cpd6!-uokar^sX@kNG7hh#P`iG+R@T1L|?hI2S{d3Mk(vw9$kos9#0HbK{%pv zv##EP46UncEeqQm3i<#`y$X^XLCmhm!7i$wjawQbaMBDYG$kHuGv;-39a}2h2!pP{ z>5TC;zO6<=i>xapvG+>LI}c?xTrigTyHR{i^#fmljkYb5Z$JWWE?+tO$A`$xNLd3wt2s~qdGNpALnZe5pT!R^>5Z`29q7FG51QAVv$QXv+GhJ^)ShJGRB%Sv82b8Xa0EoSx0Y zP>>-pVxfmIoW3ra8%b@XdmaCIbC3$Y`~U?#{4@K+A}pflC4Xi=#SGRlp2ihP&JGlA zmt*rY3NebL?0i9uie?F9A!cP^E|5tZzXZ=Gq%?^3s&eH)v7130YfD#QDJSispX;9> zz5xek;sL^lF=C^N=jP}x4Qw#q{Tgy^1-#AnTY@*^0eVCY==%oyBzJL8y}`~tNH9A@ zNgHr(@xVguc<9LAlS^&b9KUySdUZoV6Q0o+G($cNWXAX>|Nqo8&PMjCY+p@$2Y>4|>J1VwB_iw@zcV?!7 znGOPOou3Qx^hONg!qTTx6SIby2`d^8mH1yoFYc6L4_jld{w6_dP>uf~{}X)sB_&^6gifVBev+W*G(zo?tggy2tbFu97? z=f^9<_qM%5l(7Ce9f{MTB7^zQ>+Bgod6=2odd!&wW+@BvmygpLd(#dAzmguwuTz=(HqX_dvwh~rpR ziN+x6IqFO$OY#fId{XqE3{n7h|9y!bS3$T^+g}N`n$$urI6q-Ut%C-jbku;eXS3{8 z5dk=Hc%THtYBJs#G9!;E3mKi)973er-o^o%4Q0$VM^=XIyxwbNq1l^ubTd+)Cbh0< zYJ=Hb_H^bKcq*+_!ElbUFM+wH-sRP*u-~IhD3vk%$HDtzh()rt@uSP)yM5@vygHMw z=LYFlBgdPFNj;UJzC($$22EP@4iA~Et4zdsi&%D!Rdo11p6lK8eSCrirQ%A2PD@>U zsf9MGy$Zf3o0vGq$MM{&R8B!50;(z0%GFzvDcxB(mz~-aT&DElY;!Fd;dBRJXYAyW zy!F{vEP%J=QR4ntMWA5ed^USkbQ0aY*Bl46WcT>1cIA^42?QY*CvQw8u;-!pWYY98DhgrjpMziCXZu2 zJe>vV3IDMEW#kg9Dbp{#HFx57c&>d7n$QXL40T30ZeBpBi_o5ld8Bq~3QyFnI*4M? zv@7Tir`HzA7hp7{W<1KE3bf&DCSqiDaEu+Il`I&m^MDc%5^h$}>lXWZ0@MScdi5$c zLT=m+E<&PGFKC`eTo$+Q$(D@mwS;T`gL^JOtFvK1Z%yc!+ciraWAZeO%!&pzo0MS( zT^PPLcjQi)oe3A7T#=#Owl&wDo2Lz$G8B}Sg$%CXTGy34(T8YE=GEPSF*)h0KzN0O zKk91@A++wGAkicDy*OI%KAaPv$8eH8E@tzmejLarhVxQ}-D`hK(vZ8?X~Y}v>afdF zX1wzBa5EpGYyuJ(Y8w*`Z9O&p{)1wQtsH_X->cTLBYA!mTQ|7HQf#XrZMzr=3>ko{ zTJE~kuOcj__2vjifQyfwFsqa~en5N!m6&oRA7&$8#0~YvCF$|BYUh6`Kw#Sm{JnQNf_-p&SZH6cUG1G1VD&LEwTnp5bB=uon z{w|0?hL$mnZ8e4e9;sPOzW#`8o}~t8`&vI6o`R(lkhgfFz4>$Omw$HZxBk^SX0TCi z<JY3J09u)GyWWA@O_3H% zt9d5Uy8oc*bhF7gOM{`@r8H?i(t3Q<)M;$6r=jUW)9O@M4Jcs{?xci{E|6_bZ*aCiXUNJ{dY6l^SHAaAY-{aXh>Cr_>$J=ci3D8RdbewoRzAeE z>VBvlwog$Jhxk!5XJ&XoO2&!%gV#F*Qx9LR>_r@(TT{N%Wt?cZq0-$00Or4{92jWN zkgxh4_ufo5{k9j9!PXks)~C@i@8J|G&fNUrbR$lv17EFZjvsU__o#%#3rk8~G2hs{ zaWO(auyK>r)drt^$k?tKZ1OoLk)?uex{k$25m-JSeV}DMPTfl88{&{(xA0_V(cV*+ z_l#DYzOZHlzQg%^YoB980Uz?E&WgKElo4$40QUw#9gW@TEmmg*k_yGz$Txi+qJL#t zUW6?3(Hle1okzXM>5pa)gUujR$`>0^XxIKP3`t&S+&mMa+uF3XeRdbSp`vFqb_7`-pDHz55BV!eTnbVGHf0%{%|RUHo71#7pp zJOHv2FCVL!v?GYCrL(bpj^iBasoj(}LAST!DKGiZ+2hUJZ^VUm`##RWD<@$`R4fMy zD~#Xqq$W-EZ`=&hNjL1$=Up%m+XqkebeaP3zwO0018IRWQYA<`&kq><_nzIh(ylZr z=b18o#o?*hjQ-PW&lpMfR@wQnj(j|#@Y)QlG%6KomnidmWg64CH=lPB2 zbvb9PgKjphLVgQgV103Baj&-7$nhsP?){m4wmAQ(cjwo$jYo<1ZC~U|%w$t23+t}o zMfuc(01{8Qb2)wCP|V1j(01+pbzi5{C+J(WI*&FK=xG}JQybyJ#maO$&sezb*R^1} zp1k1brAQ5K#6)XC(`Jlf?x1U;**1}Z5Rthw$Iz`K)4}Nt#t<(4$T@g_{X+ecNE4hi z2;VYPO?!eJ1{S;+|9sDKhRl=L3VXc`)3$CYj^6v#b)VtoMqsP1YwXD~ss<)-?Y{@^ zcfeE(7?*c2i@)^Q0kCr9L>wRGSyx(|=KiB3OoQ^eQ7+9|)b zZIyL`2cYSJEuKcJ?S(g!4`!RYch8^CT*Hh8bA!sK1|B^?WCY?tSUu{U_Nf0cP>BAh zVHY(<{7;?`c}F?*FiL!WhMv(~M9#zMe$_U?QDJqK*AS+uS3H7B_Q#2h+BY4VTeu@4 zRhB1{XlQO|SN8}?k>CLt-ZeVh-mp7ZkWoAtYSc?Lg!I3Kv{@8ZBj;+`*>94ry3BYt z2o{pcI#h;T1S)ER#`X8BmSI0&y1FG?`O*TG&XK;yE4;+<5#K`LoH9f{jUCi;OPNZ_ zF3^}JN6bOkjLAXnljLo?BHZ1O@JC)8X{U!qnj(9DVPJZv9B zZQF>Z)7llq$crJfE$s@uW?(T+hSj&yd?9H3&SW|A=Ez)JC)vg_9H!6vol=+Ru;nH( z5*X&0K%AIHH#cD~Tb#bzV?e(%+MDMO=DI-l4VMzHPAVUte42M)XpmXHd~avKH&$aJ z(TjSTqQvj-PG!e-vY79UL^1pv2u-*(WVbIc*pf2Z(7;l4t@6PF=%+4K-{%`hooqO- zD$H|`rwth<&i?VE1)!Iv&LP9(Akdm{WSN)J44Ai)^sCzDT!nW^sosyHkXaGB;oPZs zLsu|x`Nf{(;JZ04fICpo>(gabF)i&PdVj~q1cIEd4d_*A6p_(|itWgJ*O>txe)*IT zy(heUnwhnQJ!YrOsC8&3&7&KyHjy6fV6&%X%nqUM@4V(cma4>3m2!5n#JtOl~iG(O=kX66uq z4ao+yBD9X)$E#U|P`V(4z6$C|sLRO}wFD&4;f_Bt1+Y_p!ou{l0OyWn6d}NaXUFOS zdxv(b{IE6xsck0G!%vPtG`oGRQaO+f1Z8KapJ0cHLusiSd!5yfgw4(Xd$&Mr7P^^> zJ(5VbFFyRyD>mvdBb&-wh`++kKDCg*& zH+<%n!2P5l&Z1CQX#>s!-3ey8ctZ3`^ric%amj-RmKQvQk94X-LkcTESZ4qI)CiR< zmOfx@+}*wNj~oUg##1)7@HZY##nO~>qRzafzf{EZK-ChP_y^CnZkAjOvPZ@&1@VPR zJ(rh+UF5_yZ%rPSvp9Irz6)o}cN3(bDjznfcq_w3A`Moq_s3VD5Dtnk^m>2*=$wAC zI9aP>Hky7m37Vwbz|VE37IST=%K8d2{}eJ>`!50r1jpL7)-~9=de_7;c=IQ6;<3#c zww@ht-N5qtx%SMPx3ZisDC?%a>0LXd9=SD%$Mj~?c4lCEE;};d%0ZVM;}uwa>nnG# zm^^nBNJ~gRV pR%xeaU|_Jav7y$tB#Y1qw5_HT&Y{#cZx^9Z?EvwyuigFd5sO5z zazG6sUN()42%Nko_x{J*%a72ELD6@Q-9V{eo7DGZr|cFohnPne61|l@tyfY4A3?E_ zNs|HqOVmdeQVw-K!6Ob*ViM#Ilr|=D%`ZhmyE&AV5LF*g4Fg@r`8moo;;2$6=|$NO zNvy(0Kk76jW71}-(Rhzjup2?yEr#QGVrcO%;^)z=N{uhCf_*3BGjCRt%7lojjO+ay zB`W7B?LZS##wO?GHyf_%)q2-H#Yabiq%4UAbFbbRE$?d$cddL;Gj(*g+5C=}!8~BI z^5LjweO_B2Wn{EiVbXcLGoP89oXqH-5XH(B=~~*l@{;q1WyIp$?PzF|XBRg9(g$e} zz#Gw)|01Cx37c5qyl2l4`Ys+x>qwqtBQz(}*I)<7H<^|D$o>Hdp3W zp6`l}u30A1prhJu24ES??@GU{xbSmoVQV`b%Q~LM++2!;?yof%9w=IViq`bSXaH znYZ&YEZcTBa=?>+JO#Fy6WDeT9&Jy_6b zieFS+D<;VktsUR%$Ep+~5k!B0vYr%u;)xw+v)6anUfO|3lfavT#jAqNPuVLRV2|ND zbkY2A-^tqD4%(`!DneVwt%*`NWJd}I8yj0rUVfPNLyP+BXgd-@uX*oh4`#1Po~8jd z^0b2BYn&%&pdLNHwWLUknCR|=@ZE+nk;ch6pA;f^8000(!mQ;15h^qOEBsLWk^$lU z4!#%BR@)C{l|-~JVSYnWy#D~1deCZlcb?tYfcX%W>=1ttP-=pyC)o=`oO!cpcN zdun_8L|#$ws!Xb#PA&_Zo0VJPQpe=$_14>?G~N?VF~T|Iwy@k24n5E#sFXx*=W4UB zIyeeWrAioE04y5^Gm|@R3Bdkrb1sw+iLshJoQTP?T)B^q~+Ei5wFWTww3g( z6YB-x;kV)s@TZp~B@Tqg8nOPQR-2k~9q`UrB12EB39z4aEr8_Y_ z3k&ZwH8pi~NF4M+!^6YDT?KAVjR2RIDpLNIwsqyY>lkR>?%`^%CI4zT0EPCCF9mW8 zEp_z*Z9LO&NY3_Z-|r_6L=%N34Y)hK&e6NLY2z*1W@F9(Fm!$&xIOgpWqPte+rk{^}U%1_(@cQcN>L-nw8Yd^`$`%(J z+bHw=MQp$=#CvM*Xh}x)MFuj8j%e}?$laA_*yaNp!cqdgOn=O|E4d*|C1$BR39k z@R;$Ji$Wd&ycbnJRs>Git+KS;u8Xl6SRL;@O(6kgZ&6Mn0RJCY#Z9U;%j)J*PH_~m zEaZ<0HX{|@NffpQ<1gjB_)vV7F1H0Hr$?$CP6n1@mGF>d%ce8?` z#c}*KgJOVNwe>(35)*?JKQz3a`g(IrA?(wboBQdm$=iWUVMAr*59>qEy=+?^W(Z-d z|0R8yKa-C~TT&EM3@{1%5`?1~;C#YHJn{I*RR@AMIlVIj?p37v64P02Nzn%w6K3I} zGZBEXaw6>NA=V?rWMqOan*{rBjjN4BHN#2P*4C&Ih-xb}8bMFSLJ<6#0Hzcor-H(L zL02^S#;}dKGaf(;mEH<&q!Vsc*NRyl;huG$uafNN&U7goo(#0e={XOorO@4#ZMqxdh5H}<1jNz zj+<;J#ao14y% zDR)GcKGQBTO#n0A{i&;LZ5`y?`(~Tivw$U@Ze|sYYJp-{P$bX8DuR^}mTo9GM?!B+ zdt~AP%bOieM2*Wrhl}^T_T0ht3SwSo;!3y|cH?O^>C3VW=*VcNW{%IP7{q2wKe&a8 z^bYHc);;M=(?n=iyPV9+gob5IFBMs_w#t>$=5Lc@sWi4i;-S~I9KX$7| z|D+IbeSdR(6}rgq=v}p-u<*@Tp_)v%QKYZq6i8gLu~KhA`5{A8p>kTlyX5427Ml5@ zxEj2*^LIeFPl)G>4Od4sqyL=Bv^4q~b$}{iEf5-qb#U-uE(0gEg;GF7)*~o~zdgZ3d`T=#{ZLHaZTSf5%<= zqIINyV6<~0{O4*eG-Ic1{cL_k2pBM8vmSfY9oj+{jsm=+z4-mdB-=fMNqR6g2@l>vrRh-kHBl6LGFOI#qWz&=H|2@B$w*e zA?KO^LLn+DYGuVRtS1ayF4|6-B{oXR0ANm3O+SMQdvvSBG!ZG83tv#vE`T7r@UOGV zV?6RRv!rTCK`$&Y7*OGn7iBdwmn|E)F^@ePP#+DLQ6!qyPnTg*^w<7fw1I!g5vOPO zYR!wI)2sK~&qnRsCvN1VE#CWwWA_8OtJO!MtS#4~Yi2pYWI|CNA}NIA^fLY)h2O(RZTE&?7t3XzT_%O? z&^D0N0xZCt^z)2#AWT1BagU+jaJLUMOs%F)9N&k*RYf5IYwwH@SI7IT2ke4$&-fIS zlvY<)AA#VEX!iDWb>$gBw6?bH?>lDK%5m}VWZTOA?Lbh7BWSFkZqA^$n@XHlZxJ zuHxUB9W-2UI7O|c+J}0vO6u%M8tpW0(lo9>zje@SwuATjg(CxcVb;q27NzqXT%3-Y zj9X4t_FiRoXehREr1d(3jO4C4p_nqC1#*_}QY!wE(&)ioAsNtPJTn)3tk$`uUyU5- zjZlX;M1?w^Y`oXCD}~qFs&}cbz&x{h``7I}&W1)WnCtAwl*bU?>-`?WE{w)gMVpOB3`wW*$Kl6)|R4{ryGDlPR?`7WqoH7Aw;2PI)O>JusP-OJ*n{5f_nW z!rY(G6qFHOr~LXqSXDJy5oLV!qsi&f<6U!x9nr?Hn%mmO z#^pHEW}w8sZ-pS(r)SN1|Mrda)BAtvv3|^ipOf_osl$=1Laghoj{2ey$w?esRV#%4 zhdu`dXMOedQfk1#Z%#)q+>%fGVxDY;xN-=6MbDj!jJeQ$jv(|`Z$M_)LSmiJVni)0 z=!Uhqoq6ogzz|C#8Z_GsGWyESqd((TDeuLz|4Y3DKKYPvDRwU3RiHMLT8BX$YGNO_ z^kt)qx!Xhm)NCiVH6?soF@5{%E73VP)RK-Z5{@C8mTg0noPE4y#HZaPrU?LY!9_1D zawM*oV@vF%EJyPE7|YKcK_C<_Uviz_SH<_z4s?4gXjGqnDqc^zd@t$ko4s!s1b&O3*E^8MbGQotkg4Ot%>uLSZBT+ z+`$p-;EL0}b_h0u#FHjN4Os)95q8rQWl!MCvg%?5%juG1ByJBPxzATrdFbPl7btx? z9%n3kS=na_6POdsi%o^w5QVjKJR}MD@m07=;)5BXI(iX-2Ij*YnH!y{`wzzPZ}TQ` z(iI4&S)R{y8!|k;z6&LnZDNm5Cw*}rH9H2H%Gf_Unm6%t;kxoNp^O{ICGAbvg=HRh zovVZjM1Hz!=vFSg|EetJi6|tqM{`(TJE|xT4pwLUoFQ%Q0(_635i2MvCik0zNbxkH zW6yy+j}KS@pF4<}ZhA6j6T%%MDFU{N|Is!Bx02DI*Xi1*cpDMGBg^E#B4pQTE-Ty- z$J5*Lry5zB*RL8S|32Z=D6flc21i^YePA?kyNme^_t#3Hs!945Im(Uj`~}ojbxULY zouItiA;EOTQ8ZtT#H45sf8K(YKuhRGUhhtS8Ir3_7klHV9vSsVrdFXg#5%zAN2#8Y zl6#nLaE`YaKiV!Hz>psRY$mhM5%l3cVym!%If0UFxKq{pGZ#n15msRgvX(fAkw2}= zr2+K*r2cGgomn2k7=^l{5Vio9$jywWJK?Bnz(=T0 z;gwjBcrry(+J|p*!6(rCnk|{ed$d5Bv$RB86;+9qF}XImeh=?gjgu!W3+9ZFBoaH>k6$xRpdP|XM*rz%D0;iLGTx#+}-kBQQeTF6iFgik!-4eLnpgIuuz+&Z= z{Qe*2A_`6g-Xk#pRMxR-??OU6EK|8JZV$_4F_L*Q{V89a!W)Ngop-=WmsYd(rssy8 zY^e|MW;6oE?i?Z4j!keJ@s{W=uCX#GTW3c zn2nG22$NUSk6Mz43MW#ey}c6pL!PQf)!_#FQz&-;F8$Bj=AP$o|Krc*dO5K#*MZEj z$b-g|wV$wyy7bzQTjwq(P;b!x*EE@29p5W~TcpgEuLuwXsOvzSY!JTvmG2PgzHdb# zH)$a*yq90cqG0laKg3`c3K`LV?GJ7W`oF+Pm#W|0jcSG29p7q#BAh^1S*AC7jygdd zbYcs{nU-V^tP*tPf|2v)t>*3r((`f-=iF zXMf|V+Up3Mj&k4GA%8h+9B!{zCfmOcy+ETdzj6673(IT|$`$8)kMo z5F&CyXUGYLXC^ll!lk}5AYe>u-&O`rAS|g4IL2GdVR6Gm`TzKJ{ zr<_ldv_&8cpf7#+FL@38NoBhDlBk)Su~~kMTA&oGi2TW95}mQ~Xw0!nH?!eD)s;Vb z;WDETkNl!ho(-mES|z(fd8a^m>colj$#PyT=lr5Ns>SLfaxV@@UUxH~3+ZfFu>am}}?VGuI-V7z~v51t_;g zj889ouu9=?b}Cj4oPPyn59yy2ti2B--Lms(y6Ao%<~#e*4_CDU$*MJi7&AVIuo-vJ za#v=A!hNTOWCpAg#H-(#Gov{t`oo!Bq=e7wzu(|X;r)+Go*m#8JLh=oAy$Vg=!uER znch3BO~BTWwe%Q;J`H+8AKEsr&!iQqwX^wsx@&i`kB}@^j9MFQVD#pA26*U+4@{PS zn!jwFJV|SC8it%Ic=<8Oywgi6^syjdExEmwGNLOj9iKIC=n!GJxJP@pu<%z?%;M6O zs?8^iP|weQ?m85I-}*|9O0@r~T;IO;&THi2!j=QkWFOZ4=fxvZK5=T3{FKgPP54cH z8(=GTxzHf=z4SyOC+a#r={ye)$V%8)U%O@I#kk*35u6>fcs z_7854immt36Yl+q`@JL=$nP@6O+s>L&qCljDf3Ocr)=cDIp4=jgfOIT(XuH$0jx)E zy?=w`mH=gqTgNETliC~bP*|+(r*CLCej%2Y^Eas8PJ>C=ON$i0qQi)oyBNNH#){q!_?Q+*=mpPT{{Qj^|H2jf1JfG+5Y zqtIA!!Z~5O^INpm#po)!H0R7n&$<-<0Ch=(w_Ttl%RMvit#5wKayO$#-cD6GHlemyqnm?j?e_ZGDbz24SsmW!di{_f=$X1LiZM@p3YS)X%Y^|4=+9j z9C0ALUCZMON*_sBi&rgwqIrY>NaNNMf{W|iXA;35aKqW+}=b7Ey*f7uTnm^$f z8_2o@NZ>GnTm#q9PRHb`I}+kVy0putr7E$9)lg(?^iWe(j?pH2`lE*ODip1Tq3R_x z>yTv17{5{}%PFtoJ+$7$NUaE`$|Y?PtmMqG?qLOfQN+|{YqGkP>mza5^5~kv)Yc49 z)H10$_#1D(NlqZ!*UwZDbqoNnIe6wNal-_6^_uUZ#3w-5mwBuI%6XEuO1*RQ{W_(3 z->WoMvnoC6q!pavi}Dk!LQu2tmha3v4v3}FlpR?pqIC3*E0K8jOWSh(#A*!3K=WCu z_2kUY&Q4}15XIx3GG>WKi@vo7m7DoFNpVl_=={!BT~DUl_%^8az?oB#TXo^S&x zK*zj1TitOUOMXhZ1HKgucA>OMgyNoaIMP4EzO!yO3zW8?b1bV7#@{J9t|+=wd*)qd z(XQmaU3JeRWahSZrRle2HUq74r=Mx>UTWd}zZ?E7Q1Fzk2kN!k06tK~Ng@yZMZF5u zGx-q3*h6EJAS_l>X+Kajhanxo(NIFP`L6WHc#yqersWYKqD@#~!?eAuV>P=?uf+3+a`+-I1n$pAyxI{Oyu|%mWFa+lyygtXt`Yw0d|JNhNY`vlnG* zWcg%{-ar7Y&X84$s^QPo4>^#c2LEtAtUBy98~x7SV4-2D#Lb7%Kw#hYrGMXPr_S5T zL4c39^oMC-eRi|upw~F2x8G8^#Tldm_4%Q8{ZqqGmbMKH4A1upEmZiNSJE@!G;eqgqnt)b6cR#hrm~(Keo3kRjNU=44OJ(=oZ=YA42AEu5aA0VG7^j%HIzgKb|q>wH#`Y(ld&Eb}_=AQ4P+kwna}LMbMKq)_>+n zItBRl$G_uwRMmA$2FybgZ>i{!7+2ss?Pfp!?Qn+!apko7J&T`o0x_!S3J`%=coXki zNN2UXg-AOyA(0NDb~Z_?ohZaY0n*T|D(*ERYC&=7gE}xo=Zxj&71P7Rd-(qUZ{7NL zAN|0ZEMEWRoHV8{9netuv=$jbTd1l;f|Z?bIMANpSKzNM%i03ZUdwaw7U&6lx z6%5Wl;&3Mhd2Oxc>l(kZPQ&Cdb(g;WeHIo-V%rrq9Nc$fp}*zWHZ|QRglmO{^kE_O zmaEQ*iOhtV?!UemNGuAey9Fce{E^Z3yC2)N+$&bRc8K0 z6J)&-LYw!XY{vB0_ct=*I*IjStC3|w+#(8EpH6M!$XaBa6KAQpoudGQ_4Lp6*2JOL z+lPTjR~%*SB11@oc9^e^fri#b1KZnol#<6n1~nhH`?rerqtssf+r>xJQRaRw9U z;guENjV&;qQtK%Hh%H9XD>jZWg7Mt*KeVc4T=o>xa z&242bEW)|xXVUn;S>kwAsbi>r+Aiz&xR(75f&Vn)zJxR&F*e`NdR4N?iglLe)eLlJ z<&F-KKL)Ivsw)N3v_nOUoagCjWv&MHk@jp`KIZo2&q?-`OYU)K*qNB0}e3@+GVtV zD39nCg(JwXT2m(A64$e=d$~3M(Z8#cjj~f0>lP^mb#w(K#^huCz@ZksadQpQZ#qSG zxlhfj7V<=K9&V=h>d-f0{LW4u)qh>79(eEse?INQPUPK-jwM$=n&)$^$_R!>!}yf~ zQeAbZzWP5q#Vwz}LMf7eUfwYH)9{J2 zTB%ELX>tFW`hf6rcre6uNNZz*nb7b0+Gy@pA+8qQ2+<%QvokhXgUYM(<_T4?%*rFe zP2xgMK3Rozd+qc4X{QEHjqbgNK9lj zNiwpG;TZ+#^A-g&m&CM;yCa^fS! zq^N-M|C-Man2*+GM`U>xHYYMU6=vIyKSYqCJ1K3Hu*}%>3b8TMi&1r%X@r-zNh{`}1E%Gc_v=nIeB^_@GQy3c_Y!O(RA6B)e8r&+dIFw+zlY zvdWV`q)V!UH=zd;N`;`w&*zTn{Ozl_$TVi6CHWE^5wA4%wlU(xf5RTuU+@25kr z&6-m;$~sl`AZ=?7+_zhy43_xc=HS-9Iy{#`=%8oGxENJzd21iF8J~vi9sRm&{5WHh zQa37eWj~k+u0xfVRd^KSl76V+@gniu^BY5%Bvwk^jTYIFMj1HkN05*HxiVlU+plX+ z!NUryHJrc2dO4Z&N^gQ{67f14?!Q&E1z=uvNUke*?;knGZH4v5MYoW3um3y)2U4#Z zi!-qeWw2KNi0mLT$Pj|wufFKL_n(Kf{rixUc+=rJH`MVpeBG|R9lRAr~?yuW)^jm=7ir)mdq=5>}~Kvl}olVuEA6=wM8`C+~3O zOhEf$ao#UCFX6XJ_h4*54)(o4M=MCDB|cgdyT^N=s~6h%8SLr!6}YW^4j4udoj5=8 zjfkN+>kmg>)90ZIsB*QLkl`Tcf>_(g?QD3M(u29GrnPyZ+S!_>FKMY0cL!7{^|UI^ z6f7E5)gS!#n6Va!?dovolVltv6itFf+ZwDje{=r~G=(o${=Uphj}!307l*4p!}2xf zv9Ym81qJ8JH8zeZt$gg)vYK;7Q zRv9L8>UYtwWrpjqS*gvND$IAX?TGwII-E;7eVG5H7+*tyu6wZ}l#A2O^;umEhlY zX62eUr|sICZH4huX5N2)1qdsk-FDXcOJ{a{jVg8@L?~W4_kVqRM^&h~GtIZ#`&);O zb5*c6Roc4JQN6@n);r8=^{o@lyQrGmN!o#X7iTvPL_=e+_8H-$|p{==9g?DRhrFRxiw;pqUdS&f&{pkRG$d-F=>rx)+1pNc)2t`N>tbQql(3T0; zpodS~x$aPmaOD3Z?5o3~+`6|15b2Z>X^&(>6)ptI+?I&NTW?WykJOI%(w}#*uX0(=O|!p&W$IJuGABFU=v2`MygjTQ(LfhB*{3U%*AfGf=lRZ* zZ*BAH8x&;STAHhTY+ZRrr}7I37TO>Tj39|+_`|jQEs%>`-PF8&Kuw!SVejL!z_-<# z7<(0;b;M3Ux%R+j(^ItaNng>~%oEys+;P_V7D@U+0(R^IGYwCqUM!Q9=mKt@e1<*c z$j>cxWv7ytDs2jSD+p4rd$^u^ai71<+n6oR&@!LZAyi-&v?RZ$jqr!z>CTP!EJR|n z#*yiliQ!Zk>j;*T*CZXp5J`!@dmIe~*|&Gd|+jSU15!C?Edt_=RH^O>)kEPg&&$*HQtWCA8T;ML^vS|*ovQEG)H!*+qvqWRmX{qM^F zhJh22w&qI{l{A#n*9d_0@j)|r!yD9$fflGgwS1&$!fccQu{O70iK(CZzILHQ8bZXM%H~8V#gimIua)sdaM?e6>om=DC|mob^o7szT}xzXo%Rir%V%ZO;CjIz1f zfEHpKaKO06+%|X*HR;6wrra<|JN%tsG_Ie|dnKI8HYJ+JXf8hV&pwhz?o(5q(>HDl z$RV}EKT8}qcMv?Ba*6sd{yL8&kC#y+mY6&Dh>P5hj_Ghd@+9{ji#J{3rT-!SOeX@i zBtwx_#vEv1{~;t;K;5MkaQx1F{L#e`t{p)FU^Xi$#k03H*J=T- zPyPvZ#-h3SQ_k>a%TY|j&+b%6TrS!Db~%GZ0pHM@JH5qPh$da7r#b6Wn#)oKWaA+o z;W)dDCuEzCOeHxRTi=nkZw3mr;vrl?cKE||odUgrV)YxHBzS0)03^8ri`o+Q)0LrN zS2?$XQT%fo!H|5LDK-Rc4j}(zLlr5{5T+Q2~N-XBvG}xGfMG8ZF^J`Q@)Sz_r=Xqhzkb;e#o;A;EXM#sIlTZP3dRkM zaX^f%fpS_7O9YE;BEVynM69n2)p|8 z?Kfw8vUfQhs`n>p)nbc|JKD030*pHUai9y$f82894a7IH? zY3=bxs%-eK^6C}hQLKp)8=PuCaq%elAxxjr9KFkTD-ATa` zFDyX~3=q{%3SxrlutH5DRtJGX{ZEA?4aX^U(C+u0I-L#`k1;1w;()$Ea{`fhqmi-3 z0fP^VQ;zJ!xC0n^(qkI!;@-ze&}Je*MsrfZSAN5Hlv^Mu7A+LvXT3mo9u8 zLKyiq2}}gp)ekGch*Mdh={eNz0>!AuSaLdaL}clZI5^BY_wuC({9=4AO-ZO zo`;VYL$9kCy9l+_J>~To`1~X^g@JWJ0HYqLFD2(I*}>fxwo-~c#)%R&qziKKs zS3xo`D!zT+bw+&BYpHnUq$6IzMX2(#bTnNU#ao@C2n*qFd1Kw)3f|H#IrWtLWp_Vp zh!*zVPoh4lxy0<1d-}4hv`|*sCjxK$Al|ps)Qi|i{UxUj_s=wiK#|_tJYS##1e4s8 zcp-+Y&4jy=YR`Orw|4;X@LyoyV_{O9PxYNTiu8(dRSv7`(dzk65mnkIm3Q|5J$3Wj zshz`WyU1ckpd9roJ{bqO5%hg%3w#9B%5kth5 z;qrpf_&ONKAC+3+G-4_vy(XJQxm5l60r7h=+=jKhoGmV`*amOgmE~tt>PW+GFd;MDP?B6{a|v0~-mZQ?zjTwlX=fBq8nu8%7waSA+w6)Wa9|r=EWpfNQwXkMj%rOg*u&Wfpzi(Ondc zaCUoAKFBYs7=0}aZD7jsc_Y`&Wgm*{8L_=uz4Dl438kaaA_6kweywRdxte=#AJvDC z%S_AX$zK5@dcT@LeORD2gz+TFVIf(h`cCbu{Yn`{k^CZUUs|AvFRqiX`J7wRieXFcOLe2-|D66>`sjD@n|C6P3iA@jIqq03#`l%_ zFd*F|*NaOU;H7dNE_dK&Z_jA%xxKjcV`~|^CB{Jzt)62_s|-us@NOC9k+BB*mS`ag z0-~ZWYJr%Tl7}Gr$?dJM$jvivA2F~ckN}r0Xthuq z6|Wly35;{JS}giS?2WY3#%$TV!BKWm`P5PA^P1__$0`9%5v7Ns>0;!RH3Mx1a!W?WE2Lv5MCfUh$kArGY`_XXyOcnM5o9NlTpPG zo-3sU(k?0+$CamXYn!8v15@r0@F-?n%39(oi+j6X1!vloTa5}?c#Wbb@*FcSrhURT zyG=Yryr2M?R+z3|rmDx84lRx$mcK&z+mCYF(nfm-<6Oj)7448rx3Tw`B#Rkj=;5TOiLiI2XpnoM^8{}!TqwbV zMlXyI@gG_C);H`*`H&ClgY}q}>Ku%f&8f-ySk&BEeuF*R>pC>l!}2I=c@{hlv%9h* z(KRg!uF3b3sKZ?RgL6Qa&o>_=j#d9W!nK?fqU&f4h zpMhkb+v2BCww`1|)}G)Nj?11`Nv3b@A}R?a9XUZ!f%%#E?j&yA@Uy@CYQK}{h_a^V zpnThDnfE|Sr|y~vTsg4``_fIEmbE-|Mrwb56sO=HReC6~(f$}w`H^LDz1RHe()>58 zo`Qmg)Dhym4p7sw6b#gb%G}mD>c$1A>_h@{v|>wt;HLrwz-3#eZS>c7biW45DtN)y zGsJn$RY5*-Ipv*3_*d4aPsUZq>WL{a=~WDVPr(GD@Z!T`gXODD#)iDt69O~^be3AJ z7n3Qf{YXYW?4J{_f!c=O^UsG{TeUcPioLJ_C7UD#&i7nbf==-C_kL0dG4Ra{!F6N= zC-hPS5Sy}hNy&@UaLmROF^kbJJ}_!<3BpFxeEXzTOZ@wg;X*y5i;j}Uj5XSn%B8G^ zVKcKz_|td#Pve?gehA4q7}nM5&8El9<&tIX^KwxbDS_vB5G28YG;rszqqLCn%#H3L zs@@`NepFU1%t?$y=U4@!I>seno^I=M?+<8;uCI^o z&+HDWb8ZNZtTejWuC;i#zZL}h@FwH}rhg5U=xjT^is3K_&RMkyC6ouc+?plZNMCNg zkIrsOmBv@Mm zwpUx+I;9ZUH%Uv#dgF(bEQP`P$yvB6w*seMRZV4%PUd;N3!XNqp5$G6y7>KTW9;M7=*#1B@1T%Npa2h4UwU|iZjX?CMRk!R zuD;y16}IcF=d9c8UEWNVurM^TVs5x}ql0V6P~5x_y>dA>jc{8h=0c0**AI41xE>g} zUb863%j6-K;SASR(&HeIZ#VM**J$gNb1_#9btr3>EyVxP@1H!4c3>e@3DNjL4M7oA z_&X8a!asHOI==ySG@`-makaIWP{L;^H#C*30}$r1f6d`Q8@@c({6jZ&0RU1gKXc97 z(cJWVq8Pf6aJT}?t`b1*9hG_y>^ox(@^_lMH(#gZ=p|N zR-y1FIMRh+*9Gp4mx+1Av^6yFqf)zYTEg~hBf7c4ZTFLyjh>zb#|n)lzn6kFWPl45 zS^lKpRm!j1D+@Yg*LW%nDlki<%%A|DV= zexYFo0tPE@&Lx!ngMSq4Ebf8PGHX5yyz+J=cO{=WGKL`A^G56U0_O(6&ILs--EXC` zTHo)D=#B!1xkw%?uP6Ob74o3H3jPBG!h+%;1Ig{hMo|}Ux7y%^Yl1-hQ|}z;7ER7` zZ*1o!M>kf?$acPp8+&>5rWcR7+Q&2L8ukIGC&Y(+xS4U?!^X0bwxyg~={5HW#l~tOX|C36dzRfd+w?5tdvi z8O>($>~)~&Sa#M~!%tWRc+GY+>w_4ylJbFy&t|1*&IVVjrn&xY-k>J0cYOHb~fL7=~CIyyIM{DVp9BG6mB_{D4@ zzeLB#i{>wMBRzk!k?)7P`YR5tzV^XE2WTMPmAo3?Ph%&T;Nxud!!&e*g~=aX&Ct^k z?p;?Xk{6(nEukBNYg&lIu>4u(Qnz0v-tQ5cT5x#`9(5UKz|h|b^>uEqZ7w8G0;1lo zzsKEC&PU7c;pE(>+UQ={&>L*|iH*C=JcJTR_9%YWw+lPZ(49l&?%b&DY*=5|zO&-m z&gEh_%V#C^!bAqM@YPW>4u+-R^v0T>45M;MQ+%{0Nz!cLK@9sBEeL&oAKvGmGNCAq zqmG-RR|5e}N|BS48}lV+N(F3`_5GgPM!AoXs{sO^QpG4eo?l)kZ7|)=j`+wdc9yaj zKPH4ba80iYcV__Ec*;X#AfUVYQ$A$<{Q)-tc^+Xp3xUNwPE%d0l9c?>G6!hRN718> zr|*W}fc=x^krX2P%Pb?McW&9D!15m4o_Y(IVTsElAw##>x9G0i< zR|7;~vLpo3#g5$@*D#j}KIyhEz7Owo6 z1D3#I9b&FRdXjQ9&&4h2QBY~1>c*>)`tn3+U^+2~ci};v?RO%k-WnwZHukf3HvUBT zCHNx+Rv3`jfg~+wT{imehk-QDs1yr0^XY`2)&yM*hELo>;J1| zS;_S;q`n#eRCNH}wjV-j&l&?C3Sa_{iB*h5V|K>Vu+n%oeh3UR=MW zlx;gQ33TV?>|^*72!xcn0vGHo;fbiSmfo#?WA6@gfLMUZyF|By8+c}Q_kr*vHB`9? zK~oSN?PVlMT({v5kBlaGre?+PpQB^jIgpKyb^TfjlBp1@k#q<~s-8iyU90_S*W-?p zpC?1T-t%IfL^ARBU;O-lAp=h@a2U65j0g*p7)(V7*6-r|1vpl*l~O;fM#pD%>-Tv6 zz)Rcxvvfn&t7mB)oIdCiG=nE{OBcf<6t{~yj5olI_)UL`D{e2W$^^9{=0?O3l!&z^ zmzdkLEe(aL30hu_dPFbAPHtXE*oVeCKl@KH>g*BSsm=zba*ngDXI5& zefIR-vP#(vl5uir(N5R=0Vyfz0x}AXuH)<%JvAl`>JxbTw~svYO>f*wo>M;Fh5w8) zEqG@m%c;%SmN02^?_PLXOtG0d0Zc=LEF_uq*a+b3-Yhty@@Y`%k1G)lP^NElh;@cR ze!EKY8_(iK8b555O1C_s3BUWCahJgaqHqhi0RbdeA5nu0*-ei-9y+)Lmr_n~*tv3I z_wL+GeA4ckU6Fjh_xTFUTQM`kDzki@ETyD3glmLfAUMeBsC!mkkmjBqwN_K=R!<{e z&PT@AfX(xfeRM(M{q@a>n=s*949Z$qsL<<)_K{#M>b)vEPZBr5gAdEeG8mUOjh+q! z$Xce=RR_H0pDU=R^wh_xxpLJVZ`E0b3wzjnR}9mP_eB>BC>YME1K*}*KuDr4N1B&o zb^5|?NcvXx)smeNKh`f<@U;9K0nW}s{k~@kSm7~8akTp%1Ft;3nT(2#sM%bpY+DB^ zhjJUsZBn@@GHM2Uu8t6?+m%HKU=Olm$O9kn4QoZstF_=jRq&dNjFy$!{VH?w6#;m;_4` z6xaHAa#j?Er-F>L~Out$^OIM)jidxx={}*kv*H=fmx>D zClt!NQ4vx!_K0qqW`FLn^E7oMAI>NQpA~?&+rdn z!H=f*ZY|Ep9r_i?pVPISC%Y9^P=xm2suF%xN(Ik-ud^2t6UKN{@BO>bn~ zQG}P$+qeHH<9Ky9eAlq~^Vk8RzwSQbjTaf+OsVjDqaGNq_Xl%Wn5KMZ(}(A$i=pW- zzI)m`C=C%}L13z+arbFtoaINm$?mFbrZC=9mAy;;-H!Q0awOM}Xzu)D1AGEc!r|zc zxRWzrl5>7bwz}T}yi2p)q?*=sBsuiL7X&GxiPd;)$opiWMzFxP6=trNueL`# zR)_YX9#-cJ$7n(;!lCHBNH>j05zhlV3D7LK*zobs4CCVQ=CtCscAB#un0gn_4j#p7 zHzA);m{lj8&a6VUUC*l+IefTPj4>ZCwtZA_kn)6lt)0f)GBlJX^zt8i(#GK_vxx7h z*Dk_5M)s$WB-T+zj4K!G@)Ao}g&&13SJcOEBQ3*Kfzs&+W1McYv4ht--dzctAkl!Q>j!G> zC-&V-?5;^gFM?^c@uo0NX*V?ALHVTBefMEy`4n%#x@k!P_-B5J)uO#>@24&g4Wceb z60Xx4d@)V$ZOocJ2Qd5Am9ZE!Y>XLE|c2O$zc#)z}`yCf7!UpxciS5?a?F{+If-%L^QXx|xVZIZUmt zgv3@*8I)rcDh0wmmXcN=hhBSE3mv~Ai%%HaN$cf+yY9G)(}Qr0T8vwb>Eeop2}(YF zVlPO78tNkz{;m~vmTEha-`~PkbA5%a%~obpRuonw+Z9MWiD=e%N`Ggs@H0qV0D659 z`f9qD$jutLSP-&y%y!$I`pm*mSV$W%D`4H?l6&ddBoXMesy@X&ENK{HCR`;fMgDg> z2)W!Nn5cn@^?z&Z9>Shf-vQS5^`#8R87TNU2_R{CR)i?Q>L z@zo3y)mZ|b&{wEEK~$j{f=#r{Lo8pFkzezIHR#%REYlZ23YxlRSZ$JsJTE8M$B)=H z;^tvM=_ytKKGw^!S&X4@s-mPSj}#xpU_!HRn9pSI|6P}c@PWA%hammeBBKI33mM?_rDM}X5mZ+XY_CGtmGAPr;o)@yIJ0wmOM zBAnW*1hW)LM7l-@2;k-KiR>7r3 z4I?HiVDhwi9&;?;HMBR*6Dm{ok^WzA4AceQ7icw>jY+e`fFEUwDy?V^Q=$%wu+~v` z>><07F;qR3nV%!NUn&zzZKZDYoz2JRTDL|wm^57(maeXNm{L5CVY@iAk=nyvsTXqN zsO~-l8%1Rd+{+!nO()2tRkTB^KbEP{UEUb^GIW z$hMkC!Q|Jd%`Maz1GrluOBKj~SNyEScfl)?&os0=GzTzRYqC~BP_|efBM_F#b@MJN zIP2%%c(^~+dZ%%!HR7rHR5iZJ;{;v9TxzQ6m(Hjvir!-$8#<=Hswh~Y+U14gDxJ{? zuGZ{F@_8{mBt37n1 zbi(hqn~-PMGpU=G65A#f3A0x(JZDiZdHakeo-}vfKyBwjdK^@bKrP4VMgq#m(S5AK z>*vZB=ourbV~0^*Fh54q|@Co}9zd$~CU`@>r9vRxCW*E4qrMxM{( zyboaJIc{7s``nF7_-9)fb)u^H{Ce?ekGHBcN=go^j~Zxl=gXrN+Jj#_b9-K5u`FFE ztgMxmtwkcBO7I1#C2Dq-Q3m~cln_-F!m`uWK#Iy?MI-S0us3OtE-^Ae(2-5Qup6?n z@l)sUu6a$jqj(>a$Gqi~y9L$wf8iorqpHY>b?6IGZJ!Bhk(U z#MX${M|cwEgcB6})7)KxSMn~aZ5P$HX(%bIr*HTpj4NcKBU@bL+VkZa@+LKH#w>>(@K7^c5) zRyfz*Ck*7eZ+XI&xM(`i5^5ojef;*?6;ACR#w@K$4n@|;k2E4sUo#`cziWO{3Nnf* z?wFD%P+X7K*zG*MJad5$u6e{}ZI-ALfZ}6A`iIF|QZV@is@ZuB ze4Y&dWE@iLA66E@;x+l{J>)GbIg;;fQmtJl0$+IM?gr)HL571kU)y^%`i(<_qF`yB z&Eh=`V_x+>$!B*&WD;-0CCSc3T1i7)#FG777Z+9=ppMSUC4ag51&f?<;do3HJ5vc>L!>*& zU>xL~^K1`PPvwf=xK-{v@?)TqTR3jNLVD?0T-f*2c=B!(l)0EYy2_k@7ecOKZwSE-01(|G@N1|u?%Ox&E55lIW=6v!HV=#L z3(G#cc-IQyn4C#OT+13MD|S~ia@5d9u3;S>cg%{QXbla}J^qn6M|BL@uPAM@a6k8A zmNw>eh+}b#yKi`C7)uwtS7%M4%Q3#+^F{WI6iOiH3)60$8Up#bZ)pBbS+a(lMmGXStP6nLo>N_d&IBTZPv(Vu@1zP9UTBm^N&;1zqLV0 zUf(Zfg6kail(KmC-sj&pE^bpAK8dRxmWCD;xb8Sga{lQSplZ9?`Dm*o{;1?liUd=G zEbEJ!#z273^R@g&3|XY>>=vx~eodkkMjUYgHpC&A^EJE8)t^l%d`gz{%ZE2YooEwr&t^OKLds_P)+V;el5Y@KpFL_e zJnu}-))tdNy28&H;2n~OJ#X;q%2_&g$I*2#MW7;LALW<1$hDr(^Byt$&S;XdacbE* zB+1GzY%Yi0wKxw`$Ru6GhNOxi&8TRTNkLckF<5&IW3NUBKd+y3{EmW?wm?-?(6Y^; zh&a0_A0bGe$7G)b#VlNY%&1HNjLM&tPq;I8#1LQ_tpplDbQ1DY5(7$zMcpTuzRDHn z^)RR;pg_BOumLa#T#MfHk>;zE?F1eUg?6nU4vP%r`VIiw-Pv0}EYyiVSc)2jPXD}l z^>=>==Uzd(YT?=e>gEGZ%o>6FPFn%8FS zQ4v=|v{lwRj|K;;K8}A1HvUYwzJ*zy?j(yAbLes$ra=cE6rpzv3kde>d7;?Ij`)}2w{WWfSjBTyxAr&?v#aF z#{+4@v#mq|jZ(Grcq`ji%m&LA{RyE3@E|40M@pW(3A=e5E5@1;{V(G;17u%UkmV@_ z;mp<$bHLfq%VW9B*@zMo$Om2VQM@TbmC7nNlX1PzXz>`A#((`4sB&vaact>DbC z?mA>lxiob25myHSUl$zJ{#nKFiCdBri7Tk`6aDjQ1&XnuA}{^NRrTJi+RUB^R2Uvk zc2oBVX+2?Ja>et->E$!fl`SwuX9JN*?@H(7h?wdTRPtJwdVV=b5TSI@)ME_f?Sct7_)(H`(fTeGq*Mz#L;?>sNzUGA9_RqqKYdc#ymFSzKhv?T-cyx zb8Ks{E)%K}f{K<|(TISr^$hd{X9+mP;_N;2arwBA^bi z>XbZGI&o9V@4U(&#B*f8(oe*0V_b05`K`uq7)22UBu7Lq+P^XkO6f-3k9nyqG_LqX zf8u4H!ra64DhMl92B9ZA<`QHM+fMttO!Rznl~h`NQ?H74Td>2UJdRcTONC)A-$e5n z$kUf9p5J*aTLEVB*$Ns*#BKX8QO0mV{Dpz#5~B$mM8WUAcR^#omZ(H}ysa?5AuCGa zJ2Y$EBu$a6BqS>f&b@Ua-;Q$GCt7o*CVn6j2tewVHK`DoFG^-$v#=`Bt>ZA6?_%Ug-JbKI<0M?F8V!AyQ~|$HxBbH-9!BN8&O$r- zh=a^iVHtwV9Ex!A{hDL`uX{(!Al)*<j7i1y9fEJSzS@3PmdB434}GKKP>>F0WT;WV19Y4Kq1Ot$ zPBSmfWUsduI?z22YvL1@H4Q*kE`RGkDvpCbV!;<>%O@kxe5B}Qu=S9S0A&s-4$o9O zE;`mEXcq{um8%*w(Xyxnl%76%&G7>3jgkYjTkVvj$Ry&$I0HFzI;F%X?r-y=BV4S1 z&%0m~6p&J2wOnetM2ZPgkm;4To%A>7#>*u2yR2MpUU>q~`5^(-=kWgJK+2n6T`igyFg7Sfy8}BvougDqA zyOA*=?Kz65^5)2H#xsD5pF(`AM4b`I$svb#0FiBVlaD%fOZ?w$9du)2*=J$|FPn{U zJ+E%6>OhEv+$$rDV-B8{jC$R|nnSjC&aXbWkE=o3^r3cx-rMVpBQ{4#+KRDA?WiwI z>(C?fx`e~3k?S~y^s3p%O0SK_m{@16Yffb>o11t5Fx!%w zkrU65NF7bhssI+{b_3vTz`$X#5vn_H*B2!1$^ROyx#&IychUn(a89?8R> zJJ2+T2f`PELnT=s7dD)8JdW`EY-BF6wL{gtRBi%#=Nwiq$kSi{(BO?QJ(>ee*N<7k<*`iY8c_mtw767FQ6xLq5eYjsFQJ|eYF$ML<*R!lY2 zA@+D%bO6%vR^kCbHM{OvzMVXZnMH8nTY7< zP7aT@Ty+gvvPxvJpNS^iBX)Ho=1%Nqg(jCjmG-YWBRK(W}E;tR?aR4 z7W|!nkES0tX%}Hug?C4!e0To2+H%D*LWxLT3m=A66KDGC+@&ApaBxzL*s{r-|M?HO9!WHQGx?Y9bx2 zgrS5m;90N=r<4^!hrf<5@{20?cvJR%C&KzSVGarw|8t(%)ZH_YR+;ufnH(#p&UskL zjdV$)UYOgdCWA~q3=Vsu+^s#FRqtj%6RiZ^Q)IMLvgsc{pT*t5R*<1os_UE;-gwzx z7v(MKPbb)FOzl2xBdqcLiLRb(q9}x$ZHH~5;#yzLGF$)nH(_jf!7|_Ik`IV9P zsGRQ|26#NrVExy^BR4$Fi&j+mz1zZ9BQ(ELy?{QG5&sHwqBN0LOvq0P`nA+x%+UCUojoeBIFs2Vlh=a1?8QgFuedW5{K{JQG-7^QdpcO@CU<7$L`bj74gWj=>T&;h zN#M(yF#;WD%KF;}M^18SB7~xB-SsQ;Z+5hNlkOshqRzHCtPBF-ZOm7JHl23>f`XRv zL+JwguVUtEoTs^=QB*<5zYq0ItaEdmeIcfW;xYm^eAP*0xcL?LGnr4!x>j9ednxzj zB{#(PZUQYl8#;pLn$40nm0-g}G#QXLbbeFC{C<%Or*?DLJ$T0ac?JeN{$nuU#fLY` zr@T?AHl1viKaUJ~U)QI<>dir%4a`#TYM!T$1S(RzJxY67tc=qCLIrMBtdpBW|9n65 z*HVq1?|d6lWR$|KRQGn9dD=A)AEc0{^aoFlV#yue`$CDcL)0`P zC049`Lu|;|fCdsQ0-E;d#h$v)4?`d{eF2FMt?B-;^KZIV4IXnkK(;A2hjgSUW86@X z4>z$7cBcR#v$x55P5zE*^)-2fu&iu>{TS<&%s?2(kI|(9P@7sPj@L?J0C>JR(FmKj zIapbB^XZaMrd?m<05?vfx<$Gs;>u~XqNqZX&?mjAmnR9t|K|yyb4|I?fD1(+yvUNh zLthC~E_=!MOY(k9bNV?~jQS$S>MT_tvWSi-Jtrsd9H>m4eO^$r#YN2%UTlC~l!&;3 z`oZwe;C7QqU)VexM5o53O)d>pjg?shqAx=0P;urV#RMPS0z3v_`66Srw2b1L0Au`W zX8y4tBn#~G#slw;-9E)!p0#^Fx0mkV8G@uUx@rGV+_y)A zR6!%gaCUN^=)?IC2b4CC!nen5Nz)-p^Sq*!Cm*p)W7OjkOO9G8`uCSpp{RYbaoqJf zdDn2}{-728vrG|LoO4}hPUo%flQ)J-)(D()j*$=6;JcPq56M;~_?15$n(GFws%Zp^ zI#<_vT%F)Dk?UwWc*38{oB)G6j}vY15k0$pZsiRcyuV;Lii!nXPj9nAxiKUVvD%!V z3Dc}iZnqB+Cday+y+C>HgSGVM<+oWSctAx|)?k_L=aFbD?2#N@peB_q4;z%C zmM!db#qJNidCH$ieS8xFA(Zw*m%XT+peVu~Qha!l^upo&>7-`*2IkijaO7=T1CSM}-9akw_&O?~_AWOQgQuJkJFNBZHC`R4}r`sZ}rylgT6 zFz+3lC^i8@eqfyE!xAGH^4lJ}4Q!MMC_<1;i&#DukZ+=RTu4#@#LDlU&vP5*}l$J5y)E zEEY7<#(pVq1*+xbc05vUq zioIv08x+B*#-8~)(T2V)VXXE?lqPrz##u6Q+J%>)Z+)l9fZ8r7D8A8{RVDki$yWia zSog$PlP%Y;zPLfavkPbE5|BfmOS~OQRdAVf#KP`jepC|+Upg4oxRZ}4kXYpYIk5}E zS404#GerwI42~zt3s<@PV5uZ<^H*)cXb1Sv+YntV82H<07Jbm$&!>e5Cw%M8AZ$e} za6>la&raH+ol}fE>IXhDy|8mxitNkzi0RYJ@2*>{*RTdn)7@=qgTvJa%d_<~^YY*Q zQGAlpM}5@w+~-k0SE|ouUJ@*%c?5g|CEeC8J6LdU9KQP0V_gm67+sb9_;=1{Ut(}| zt@c~k3joS`*7FU)a!nQE<2D&xbc7mK`k0f5Yeh81?}X~F8x4K}a>I&T|D%D>8@f7; zd)zDPlwfJ( zyTD5h87ZD$YtN_|amDQ6TYYtz(UEC_YTIe~o~%uNePt)CS_*UkoG8Gb4Bp0~e}XY9W*6*= zziY`He5dQv+GXF0dLvw|6$2NYk+M0T%_hT1@UB}65QuuR0AzM~A!a9yvu^}50KyM_ zpPSX)Ks1H+1^(_vS%4_~9597;2ZNHWLygPsSm7%%O%-8P+3L9jVsaHcFGb*dn`4e^ z4pF%X`G`aLaYa`R|DbKgJ1pK;2$|Sp141LW2J~M{tN)-YWFD{x^nog^s+5kcDYH62 z+5ku|{g@I`ERXMK!QWQf=5j7OAV&Hze`vO2-=rKdPi1iFSzB|u_lDCEbFl!!Vhb@~ z+&lHCrfz5ndm1lHQ)7mLm;ZdN)X`uX{<6Tq7e4Z5(&lO+|>(@04tt7Ul@Z)^3aX=EGr>y8|p z;WWrwvJ|s^-5-1Rl}4Uv&}_~kfC|C~0ONn&^f}j_cjq{*$r=0gqW;Bkj5%tI8d6KL zBHnMg&D`h9Q#+-z0FBF+?$ezI*xgQIQ%`?#t@V+{;CDclbUN?g9-#FHSw$ ziJ5S4jJQ?MstFgClx?^p<|EMg#bl`F)c&XSz!q@@lC_on_t0b(_ixukc~%K;(+}OK zwYxDCzWSn)|1t-9P5e7{WLgZ4?&_u=K{AM^j@1VzrCm#d1Lm1|n#f6wCw!`I1{?S& zDfB0=_!mft3*>;=t^U_l+>OgOA-st{Q{8S~l43V!;L-;rEg4#Y0+yu%`Uw#sK4JjL zHMs9hDww~jvnP^qU+q^Le4s8~HSFH3NyLxZP`DT*1KS)IufuWhZW1tw!;#DL8wkYR zJsay{O(&ag=(*|#$CXGv5IE;vKB7th14#7aR@s_xXA1hXh3^d^|Fh%qUw1E~0v=@k zq2YCp%jB!4^d;-$kwF%%SGALDLctMKbawY<2U{coJ&e@7G*w87Rq}sALgy>+Z{3ReL+XF1`gMp$BV~r!`y_1*K4& z1_J;oqukE(NbL$ZAf$QgGYUYW@7o7S2*McI()3ZMry2+VM@TO!7F?Mn@itTh%BrG+ zBuX5sPu89RNmb#0^mh_)cYm!e>p&n-l6=yKJ9CoKy3akOWcO zw@rT@b)0RLEKBd55_#Fv^&tCU)TR0peOzt9x86@qmwP-sy6RP+l^Jm{5dpUFgMF0& zRe$$d7f9?;$o`-6291dC4G`}9f|T2;PDq{aB`6!n=hBK$FC+uJy2Ya-k6Xhg^fx*} z*DXCBLZ`V&@E-n2z*vLN1`EadCd?J%oR)AtnHGk9 z`erDpFXq0Z$N1_3^mMTf>i2_`YV$0`t}-P*L{Wn%%w=2Bdw#Z=wYT+oi?ZM#2*xtb zX@29z)YS9eJv49p>74xg`GFh$XI~hV9H`))&Ohilbv6LdLI#W^%>`;kzZ}Isxrfgg ztPUzmZ*Fg-!Dt~?B9v6YFRq&vrk+y^$jBzLjZREa?8A^QePeZUCtC zrZh|GEBHyEqEKfWwa5C!|MRUhdw3U+#fWPAwrqUbO0E2+vX^jq z>@d3^KdJ6`%-3$Z+vZhk8yOfZU+Vf2Dsg@glmF6U>qJPgP=_@Jmd z!Y`X02Fc^cTMk>dT2WA=LJynY0RdeEAy)4v4KDMYru4~HSp+O1qDYESAw6Yxvxqur zvEU3CEl!a*WvGJYGtg|g(7gZesthuZ?-SQZ)qc(A8NWQYc_RfkM^;{r|3}?h21MC) zZNr0zT%w4H3IY}&HK??-NREIE14s-YA>G|rpdunUGL!-X4BaubC`fmAcXxk#05A1^ z?&p2~e1F~_{*g2Gs$(5%t-a6j(PZh_8(>lBeVoIF{Di5}mkwU`^{J6Gpk*cc&gZAh zY4UydwFJ)(s&YNIbmqWj%}Y0JAa8&5Wg44741oHmCHkytkfTY`Y-8lNIL5{Eln1^z zt<0#UZ#*^W5(K{H6m?!ifm6xF8ioDh&~lG4e`m%-g&g{@R&-UF4hXW8{ki;dMC!09 zX6NGUx!KD!B}tUT_1Olj#h_~H4adrRL+f8ZKe0*Y3tBoc{YNs-oGb~Q30ZAW*|Zx>V%G6 zeel>@8~;r|$OL8kgwARFSmrRU(sZ#lA#SCg4R2>T?7uWJGI^}@j@hz~?<@EigTLa` z&JT|l(~7H6T9yjulK}B%?X}N+_Wk~2v3N&H6oYtN?vC(O$LkziJsWHPd)||EvWqg~ ziBnED>YH>!O2Ujz9d)h$Z39V@P-$SfGu!@VS|4VdC@yM1pM8|d z>YIGU9QZIC^L|phz%%;%!#CK)4{*>4gt*}6bqCZ2tT{90f#QBi+TwG^r|t;tZqrEB zNW(7sVG-K#;J)*Uc$DB$X8gv%8EDyNG2FEWKDtyZIT>Z8a4l)*8^Lq|VH<~Na=ibk z&VOtoo_s75?6%IP;rOH_uLd`RyS`t0GnL}>SfS8jLzO}K*H*6I041RlM3Hj+lEv4P z=`EAOy4bIt(L-+ouO}&;7B0ITRrQQ9oIW-tG_=KP z=wdgw1#Bj_{G@3vfvx$_Yi=3yYdIZ~bru!geMHBeX`7d5YNy`o=+JaLcj7g{$&;(C zK{d!|XcD7w}HFL(ndFzhFb143NUK8PmsN}H7VAamf+YZp)hwnUb?LEf^ z&tEs1fS0N^V94JrL$emK_hKWqeCK51jiYhIB?Eq5s+>CpW4?r}H2i+O8x}SwQ`F4q zz3|>g1<*h&X;|TWZNul_q|0^2yEkay+gRw+KsmY1k)JA9QC-ogRx3kmwp1cz2dRWe zn?R!4ZOFa;zp&T>G_qv3+YJI-d(s=t?Uff#)o{crj zM^kW8-XK>#<$`5hwH{2JpP_ih8N}2rj{1b{$09t8IjH9e&pLLd+MA)86Av3P#{#&m zu>&jA$qZ~o=gB=+*u8>p|w zw+-9c#4i^Xx%}90xKxki*uL!~7VJ5O@+de#Fnf!bqk=*$U8|gp))3-i!?o~vk@*<&cT#$H?urwBS!lq#%=rRiA<-~? zWGCYn_BBC#)+h8LRwph8nFF&uq0u4zeGYypL{==KpCT`>$*pgNTsKtk7SB`Js(83= zoZjAILAGFV^WvDVz-XJoO<@${32SUyhmQkL&xr}R)eu>=PXo>H$a`56&Uj^O>~y@{ z@*6K=WW4-4N58DdEl!2rOvBq0QqsYOvH2}4QRJue#{$2=YMC_Fl}XNXyohvp1$p`q zMbh^YnstYy6EhYsK|2BGkB<`EtJ8BiWoOr447J`i+MAa)idoz>V8IE?s^_K7_O+Ix za%>9KTjeh>cX3pZl+_{)**Oa`k_9>0ztM;oPQa7WXqJIHk~Uz*j!(loQ=8+UOJw18 z(ezPi$&Qyba_!HA_F%i2suy)m;Shm3{FP4f((7?pDQWCjsuD7u1ny6?Arl8wcLhl5 z`pdCdITQ1X{KM|$PB{0nY_n7}ga~p{Va|mF?EM>(6=BNDJLmgMfYATf3((PS8K*h*)i|hr(^U5 zkM;Co&gVI|Wcsw(M8jjcOrWEi(JWJ!HI3j3n5xi|6YymcBx5cO4zWOPjpeZzu)ZBN zA2Wk%8Emj9a`ycKBLe>}5#kU=GZlO|ggGI&=-CXsQ=&C462<~)x5E~=BKQ^2P3%u~ zc{*(^80zcI>@eyjpzD8Cp%v>&p6wK`$If;|apKGboFLr;dZ~a2X(*G}*)HbhAzN(I zG`1elf}wye>hNrQ`*G`E;e}Bo$C2?@8Zau_f@6)Cmz2QH?+`%FaxsM|IGLR;dmELF zILfdiZDqJ}EV7rjnGhMD7Ovx?U?m}|e@ZGZBcNl3Ws`2@RBG%6S=#4K*4Qq`R-JtG z79#&)yAX=x6USjtTD`Qv8h02VMxj~s&83&2)OoPh`M}YEQ~4)xi0c#ZA5R#OQ&aIj z_sW@hkFAxR1j-_qhQ}7ki^!e4HGR)vGIoZSsrCt1yjNF!=(@q}sI<8WnKdQFNAQEi zfmM0*a2ak(^=ZXFkicXHT&B@mfQf{a39?VPG~dck!WM zT7pA-cuCq82i2c$xA_=Eh%}7p31z(YY&XWKOUh0JMe;;*0{-74j zE01`ED_yG7Pvjl?2yIQ(o+QS#sEGukuL5-v0q1-Frszb+WkR>p%98z<^slCfMhrPh z9ETtW`CLPOeCV1Yb^;zIgfavHVKn1;7Kea5i!NRdz=`St9k_o+#)tMl!E|{-FMTO# z07kikoN6`;`~K50x;}GCn5{V?@0T<8D=+?*iLVipzJeYWf#)G~4WS7LYpe_aY%*j# z$J#J4lF|Jxd{jo;t4abnRcbC)#sYLv(d0u<3Cw=)D~#yQU2E(U=GYyV883pUPudC! z`Ey$`wkP&^nW(Waj+p~zeYc(8(&8DN{ytD%or^`dnLTPuH{O(>HfCkIk-Yf6!`{e) z3uGJ#zQObIrC*N%nwShP-j)0o1PfzE9E)S$i;o{XRB?#1j~E*8Qy+_OPMtwAo^5x% zdfYJ@nkB&glZNo^F(l)~Mkmi*qqVGO+*f6jcq@xynJbv)!wpZ1Vus=WYjj_HGBGaPHrE&>;j*p0A_FWW|?J!*y#t;pVkx};P*Ni)F z`hn%E1Mf`@$<2p_(YAhkP8HW8ZWyk#9_(R>FlDV(EKA*NO^HR8G`xv~)h28;Xl{Ny z^IDx3ydRmCVx@-+8c$BAc?iJjbtw+Pi`PujegWav59PR9ym*KL@j(R>3^)GdN_~+C zK*Yv<$WIkx{b(&E?&e%C=%te8COhmDdEg@Hnd#(t9leD&UgBVVPP!meO^3#yfozlP z(o+(v^0@o0xPpLj2~+yrW4Pc(%$TyX{c-R!@d!qw;pWGWvsud2W~cot5<6+WSvOY9yJfd_+F z0yzXc*xfHHE^EHP<;8Dj3x{^G=173wAJm25aT!7jem6SCOztYcVvV6nOS}r_;HyU} z+=2%F9F2-`$xOZ#c)!)uilLs~M6MX3>L1UjF!mTgJM;yf#SOj&tJRT2PN}nT%+i+J>Qe)$X3fA+o$enPKEdMN zKt}?R)k-~tLhP1u#~e1iu}1Uh*HhQ$-UB!02-<7_gpb)8OXQ9q_+G1VBDjy53Xc`X z0=|?<_j0Nt#DFAtX9ZNuHy^Qk=&bfpFpf6=nKZ*QlP67t8SH}2hZNHGzjh^9vmU~J ze~gAIsHUKemE&x%e_>+G zLa_K=aXURA09?An?-xA%nQIrNQ1O|cGGUpiI1`t}cTfnUy6>*q$oc8&87xTOu!dGMu3JY=YgmGFq2 z5$s(laRGX8r?tlZ7;OTyQI zPlX^;L4u;8t>*9OtMOU-H}I7p8RHS#;2~tX$g1-JPMg{ir2iTsQM8tSeAciU#7w3) zs~X?0qzpm^m_8A_1p)*Am;2oxWc0YPX1Z?iZMSK$xu({0B%T6}@M83JSjpWX?i-kWJk z*tyX2z5?nN;h#M!a)6Tl`AZ{NaoFhsS+vwMK4r?W`MiNc?HoO#2Q$SA7@N~C>zpnyggjs4>Kix5s0$CpMj^7d*%8r`kw@Uo;`e6 zCymcm{q{y?$8eAfOQA^F4(Wj;AhDQhIhkn0SX{=-BaBi3YkQH)Gv~4Gp{OM4NIbN2 zFIw>+S)8dtfwXz3l%aU16Y;pZfB3Y@ZtWzI6H2ikLf!6|zi5vr&>H+OjO2*j>P_)x z8A?8&*?4b&2<=^0fRv&LgxY|v-7y^tKYauYT98AMKNtPOxS^NSNGz28wLav!+b2f% zfojO1`+ubW=xLn=2#TS}=i+Bvcn1G}xEMS-Jtn!*vzv(847aKQDkGtz`ujjBkR{^Z zNe5CgiZ^}FK^<}s5|E!X0K$`Z@4qGUxn}yV+~d828>jmUxC)Ys4~9P>@^G2CYt<#~ zE35`(;$+`FEmqt?@;US^$R|OdY~UzAL5_exP{7^3 z*A}lnX~QrJ=b;2WTJV+0K>%U9+4B+;!4FmJ{e<@>daH z0N(o2KLPITrPsRHu0u2d@4SDqYZm-GZpuNy!+4zPQoU$E%#!o zrj<;dsJxiEfkT|dW6J@Enezbs0kryxz_nc3eqh(Ox=egk3%@@1fzwD#(dk+&AglD!?{T^u*o@$=vq9{c}e*yGz_S22fNkV;(N$KKT zqUuhoOVov+GWgqb*hU^~o>WMQ3ohj&s;Xb2ef%nVQ%lVFS#3eND0n>XDo2!hN$Tsd zv~(p$&OYBue`@LK`I|8F$%nLVGG86!l+^-{H-Cpor?)hkibjTmZCn$<-8vhnDpL=yq$xZv`plDk%mmTGY-mMuI_-X% zVb;iFbXL4l&=AWg-UuK_|5=eh8sZV}#96?YAp}>?M{?F*)oUnB_WBavqfdQy^|!(8 zhp8b3M*t1{q}(ID;GN*JLr)%gi}89=emdy0@bdeI{9ej*+B{E+5sY0X`kbs8d1N@A z4p(e=OQHvhup~!muIQ|46u6yA*x{wgA;Q5E>uB+^lpPFk* z6~Bbhy3qZfynz@zM~&L9+Rpm8BZz#aK&Z`+qPj4f-CwYKo!einLQ8dsXZG|`)M>T| zTNg!ZtB{$9LKg|HSC2BtCxxf31b0&Y#B1bt#bEEI9Uz#EuK?Xg^kbtW&4LW%c)gVO zGU{F%pApM=6csc- z(V^a5L8J5b5M|ho-ytXPzxtT#)t>I!({-HlYkD`CVt0=nEnE_18*5{IbcDETVt1r1 z_1YaC`JptlBhidauc?6@Bk!HYLr^ayTx1@C9vJL?(#~tfB7^65YgqgvMq&CHxAclW z`<`d`R_ne$8tGmHi{kav5wN>gaoFA)9sv7yvIz$50 zSZ9x#tOu}lHe6Xz=A4<8H~fcuh$-gnJGrW1^XZCzP>@a#(vVO|**I_euB$bE;m^-x zr#|+m9JoDEJXif!94KTzu z9eY&!)jrX(f1kNy^Q_oApLGG%Z^d+w>lXkvxwBb+*m8~y5#CQP(hHygfy2|l+mNTT zu3=qC9Ce&{C>e0h!z={}IMEhPH_D@M%w7nP6fF(CT(h@FX|QB6>RMy=Cy#W6em-;o z9Y03JqRU=CjMm>OPCcWC7>SZ;u_N;o`bQ4WG66{@nr>Te@0{NXQAy3fGy?P81 zEyqu6XhYWVD)@A}JsM}rE_&k>L@n1$|3{IG)I~s7Jbp1K2t*1HeRDy48YZ#*kdO@H zp#Dq(F$}O_fIXQT^||ra(?REX8(<_vLQ6Lu$E{1hGW^KZ9i(8;h&f_pe?Cv8tNLrC zI8o|LXe&s#NBJDA@z+xz5PEQ{5+GuAxV=O-qJumMfpoOHJfEN;ez`+n4=BXKYnBQp zwp~WRm>`ffxuRajo8M^M%@1#kzi`MxAlr&Fq&*ok$7yBut`q>;`4%)&!IQ){*Y?_t z>dVD9w9kT;@bse_vO(HkiE@`5pZX?DBf+YZBj-jS(g z=Khk7^cou9F2Bx**O;cipP7YzeB56eC^<7K;>2mL9}lel68z~H#GMM~>?I=q=Jj8S zu)RammGMGEp2+>zt7jTURl(yyQ*Z4nm?IpxI3zWCyCEFBbqeflw*QfQ*N^rs04fON z>HXRqZgvH}3HU64!N4NAWBkgl!m0RT6arzM6v)&g^o%(sM1aT%t7ONwBOnl1%qF>K z%=?OVmuxMiTqcTfpBq`A0+~Do=q-)gryB=FGepQS=5S#I*Ha?X2A8O)g3FP3X+No> z@nU?{36w&iMRO5H?`mS(Jy;+K#G#e z0Hee&eY8oMx-=aM3+&Q#}=tZW#f(^nGAcq%9D~^m59`w)37n!WzfmVV* zF4VkRbM4ivT%sX9h8qXjb@du(pMpUI0pz+TFlXb_P}Y;-qWI~;8R;z0vOa8MK-^uJ zja=c~KWJW|K=iHSYjDV>hcgrB-;P42EPopeHFohXCscH!|2?Q-T|i1woFM@NDTw<^ z;kJuFYv#rJ#-EF%@Z7Xw4P zgtt^G*`}f~aBKW<s&im!COW;BSDp9yTcO0&s`|3V0a6Ga^NoDE|(2 z&qM~ljRgq>dG==BXhQsy<@a0g9Aekkbc^NfuR;*4Uq>2pCwgPyXFQ?r<6(U2JzP{{ z$6ca#9S#4uoyLL~P$`Pi{xfj!LPDNM{F|=v_mH~_|0x9>f0q6#_jmwLdR z2aeGH$&3J0VZY#V?S|1Yp&NM6b$1piBGUXFE*+kUCm{e+K)5fF{^yHgBtYnTxAqPe z-8ky^9Js`>yMOEaUCK5y(K~bru)ay+Qy~fw#{Jye;MiE zLNJ|4On$GkrSKlFieJ`0n7#b}<~`^CMSL0{_J3Wl9NtF1Lg|lu2MqWgG<1(LlIMSo zT4W3;P~Vd`xa*Mra?{2A2ni2{!l$K4-J zQGH5&e}g;vkv<5}hi+&%KZG6`Aq{2nm?a9ry?f1> z%D}%sj`vfQoA;{DAB4ie#P)BuIAAmf&!haGolAhdhsZT|kXJ#V{V&k;$5R0I0Pjoc zxFm*G9MP*p2H-vet^hm^LZ9gn98*AxpnO5I?Q(K&2yLGJ6b0obIB6OD0VCD1%#QHC(&vy}{ zg&q86&)3Q}8w<9|rt`c@w=WHEnT=h#EzQO*eCqsG%2s8lF@F?&XZ!7KzvmkMD<8Hb z(Vlm}N3?vGZio2uSCT7*A5ZzOY55>Bj@e;H6{5ybKBjTLXmmA`ctujs1N5X5yR3S~ zLr1^bymXa#Gi%v7(?Qw341v750s$U}sFjg2)oA(zXSlYF+?z2;-SLWKzi>pKoVJo> zU2OL9k5g;W7J`BF6)Dnnc}c#k$$XN{S(ZtUFUT6#Zu@5vW>T(vY7l7fXQy;(vK|kl z?+jfjNarp@e5SYA#=831`qfH0NpuWV`CF|o(@!SQGUrqh+4~iJm{ffi9?fdJB@j7J zx9Xp{ymH%Rbh_^xzhwVcW0@^2#s7<_4{fo9_pqe|kb8V-3R4QD&A+La64l!op5FR{ z&Vj5omeNp+i3}zf>0H>P=iW_$0TyDHeiq=d6m43^xHAO1M zA0j+DIPkz(p2<#)u_O81WYf*=IQqGWV8^3(b*$po{hw>grn4Gs%f4(s%w@S6&h}u= zYVQ{1{4v=CIu9?Co6O~eoF#POm4AIg_Q=pj85n%{w(#EM%KNIa0$=PIi3>(PFjkXK z(-Mw>uGS2)$&W9h5)-s~r4Kx6OOmA4xQ=DD$=}#wv@$;PjizZtv;kTZn7)xuvdmJ@ zKt?5qMTYFua@6LL0w;J*#1zluba1U?emo!62stZwQvDEiuQP&$9>MJQQj|2ssvaMnWm@Sjr(iJ{!25kFY%pf&BC3T=36rDf<5M;l-!S8pXcvKYFoIbSV7K~Y-GL74X1|}QC+=y_1d+W>FMer z{buJcy4k88(u8Yp zk!&7g(GCHRlBoMe$PK%FB=l58Gl4gp0v3ccsAgfdc%)4Uv zUf_!t1n*tMc1B;{RM(;rx^hs(Bm=)z6S^jJ<)TIDbU~mQ!!uhzUt<{(+65uuf!?Q`#37Q&>S;5g9{qVdoa_v2#WFDsl3^ zUvtb|!dxl}0(OBiq>-LE1DAOF=;kDAM+DiR`DeJco7;Y82KV?s*J*F$w>-U8K>~TJ zy`wVeVL4zxU6s?QA0RH7B>&=5wHJbuZbQ85*qB{RWKMbi?Ta8o15yei$7F^Asa%U! z)r3+7%c?U)LG?6}aawkJYb%|1EWmQ=qtNZ$fsE%jubfU-zvP*CY~rosM?nw~o}No4 z@yB835bY{B+nLpnVj_~V9qEUQ2NW3?yM>e^%Aae=0J4zDNK?0X`GsA6ONL%OoI2HN zXR=Y~^U_4ZUXkeDUd7HmiuEkAN%)tr(jb>A!KZ`sZr%MN)5Z%SZf8=+&v(3`wiA59xyk-~L*SIbuo!A_Q3h zKuH#HVtz>rMd2-0_G}r}%SOCAn6t}owcB`1Ey?Yr+sHk)#BcrkzJivFpOQOfr>5Tj zSaNF8R6-bHRc>-~oa=%81m(*0AxE%h=!==2T6xtpSi`i6{S)>F)Dx-ui~FQWWrFaVpCa1u2NPnBWlAW%Mr8T*%aO1Y$Ciz_tpNO;H@7; z8Zv)82$HusxEA0z>@2_lI>~~LAmC8TBs|nh5y;7TX&WW^rrusEpYdt)%YSZoc*I{p zg9rC)j-`_eP_of(agF{8w#eWUZmHk;%^cmQI4Yc=U47plG_%(44rr+NeePcLu0r-J zTj|$~byX+4)DBq{r*DAD4N2Qz5a&;yh-L1t?$=3{8v;Ck?)?zN5^OyHy)FPIHX^kX z0n*MC5Wb`|qm}Rj&tXz#tCf~v(1m|yGJRus&1X{^o17&zm|k2QQJfYE%BVSdLlka} zI|2epiF$iVef%plYbLpUtVpAlO^d|j#Q=JZx++MC+FNboS#OR;|NcB1*K~Znvrh`N zYpvHt9NO8rWZn&#eT*g#eA4D(J-U~|w?XdapC|U$R#jaAfVHhJ8uPX{0hX$mJjK;B z*oV=lKS$rR5x;)FbiOYnbg!2N{2X6vQ4zCSPwWe@16%edw6)#KYKP#vaDN@Qf75h9 zD<-HnOKWbs!d~d{^sF|izu?ZyxAt|{v{dAjo5I{qXH0!~vf)mRo=XBGPlEr6?fUct zychBdAn=j<%$30Yrcn$dynoeh8V9@l(W!eFn|%9{_t=IVXgLqK0;06iynvkrdMq$K zirnyNc=epRL#>x;vl?%!e)GE+db_aD+|7)8DYIK`kv=xFvHpucfeBjN-^HcEpkr)3#ro^`$2(o*5@ zy3;Wm8F^H0gW_+BBj(c-?_8v~dUbG~?J~Y~{q88tFXtn$ZlNna;z|me&3)DE-m)_6 z%zRxE!!KCG=}q@Ol*{&a*ex3I8icNQCDX*6;Mb|wSRQlb9B0dyP1l`PxsR1mpy+z( zPd?9*uV>R4&DDUxiG$RjAl+EL07m+t9eY4Hu7(x($`ZQADr|~XBo8$YAm{4QySrne zw-+5zQXU>28{0KRKw~FCIYG!Dyt_BNgf9vlYe@u1A?oYj6+<0I9r|YB80eCcnT$&M z`jar$D>dl|mfLQ3R|Xq{yu$kx*QRYU$AO7r5I6+=(=m|or38b_@0mgFHKcsZZS{ck zL~u}c%lBPy%P5}CwiUk&E8JTdkR|hMChNT!{E>Zp$IRbpdKMtvj6myLoxOwg{QNoS#1*m8xpm0%p!bbY9+ghRJr6 zQGB&)e%cJzd_eCuCk|nE*wpL}#JO_%M>l72lX z=p*14OUq-duA-`X3o;-iFMna*wyG*yOn{(|Rt&{>DWKRPb|#0iiq5Ry`B>lk+11vI zOkQ@WhN@q*HInv6*JWMCJ9~AD`{B0z+q%V0py3HR7@!k!1oQHoi+GqXPi}N-J900l zD!X~!&MJ}6;A|mtX{Y+aSqqzYo6Ti|rvwwX*QU3N(+6%LY0=$_X3hQDvs0rA!Zul3 zp9QmTogK{Ar@L~xuh^Ii&;;I|e$3dyBT`Uwp5d8+TToyi->2c2wk5les=02pwQZJh zzMaM01c8w4#!2spY|f2`vz_W19EEF|;z(8f;lXTFPAGNG$kWb%SzWgt#Whc#>b=yg znLV;bj3XEhALhWMGau@D>tn&EXNGqn10|gqo%_e*Nnz_eL@CRUP*UfX8yKcf4Z4j? z?<~vpyA@}vD%p`+s%7r|WU`?WCuB&0l^lOnDy}payYc~S$UFnUr>IXYd>EYTD7oQ@ zWOU&jek_%8As-ePUn6K7Xjm&~$`rCB*-6M-wU?PNBb%S1Y(BHc5j&?LpELK#Y}nV< zVS|f$HNtpSe_^tsvTdO}ioii)Igz);bw7l3z1U$3ElOWS{ou)3!(O`JJd2aLPr+DN z6I}zw@o+aAuy!p=M12M8dqRk^#b*u+JPcuAn75mQgXLcet3_FOnz#*?(`X8d*85|M zW1$b0@9AIYcQaX^4H0yjla?9S~@x*?fyyU=~cOAfDI8x)+Tw z`N!O21D~T*)&}~(BAB+9U9qQKHZ(iS6m)&AF*>a@r;C%J_-&(S(xPpZKRzsYm*6^+Ogi1}R4yi5 z_LZGO91Qc+wiZUynzit-DJII>t8^%DOx=DzDEx^YEy&!Bz#|gZ|-l5+GV0n1>zM=^wEB4~Nji zH?<7kb9xYO;=7SYnQp|}xeIK10bW>%Rw!yrOW0tyN9BN>-1lf)qT->wM2K0(asAzI zQQkq?oxUFR6jWxcS9TU8mhJYkF*D&DP5D1%Q6zt%7soZK!nl{RyrAQTfBjT|G&i($ z8I&Ep82py2ndup-5+1*{|H*E(7uD2jD8Uq81ZW6TbFI&i@cj=jq+w@D+mr7*b^U@* zbBb@sqPpt?HSa#{9dNT=ZA|Y^WZhm>)h$*5+YzL${o0%bSpz{;&x(S+JRPp+?hF%T zAb0K%+8_1F06JMBIW!AC0;T#uhwIumo+ksnPz5Pt_;)oy)6%`beAx)&Gbdh|PAY_S zi_j?M2;jy#c*sl{LUxibz65)we*(rUd1jgA$ZHN5e!^WO`BGnQR80u;|~p4bJGK``Sc-{`rAu zYy2}yfXLmi#fLr^HVu68PgJH1nzJHNr+xayW@k@gN;A0}hbq+(#+wGx6`_dGo>nSF=Zph)?Y4rIhWe({mi=L$i47vcV zK3#n5@V$pVX`!?iXk+HWYHrJ<(?+Hh-h`H)%_>rU6vpzUJO!s)s_oeAL}&Z7&LJ5` zz)Z?$X1i^-0+XCL)?5ctocT}5w&)|uknA@LucnrI^qA!1*g1Kb;L5j?FQ6O(e3rSi z6qFQ$pbahFGL0F-pJ4F3W{bVhgx&-iWU7*Ji}zCO2J5<3EtP@P)F{)r9+ zP;{I^#)C~eU&g_hW~<>keoTXJA*D4MDJ~d{A9zJ7EG+$G1;$amF(1J>!yZ2Y&p1m% z&C}=VvG;2-W2OYcIW5<^7_A0|aCm!4GFZ)82$1##wkI0w@5Hc!k;eFR5U%BD6a?Ne zcqbWLdh-mZ09h3v%>Ay;_m@0J#XE|}MXya#Dp+HckEWa>1D8n$@ma4(uD2fp@2RH5}Fv+CLkMw+{+_z;vg0_IUUd0UcCL3`Qs_az3BBv3Ith>{(GS z+(-48J#}@?JoU*mx0>F&F-7vtg8EBu-at7{{k0>ZBPZ^lkZO{=kOu~TB{%4m{awup z^!PyqQ)P#$a(%#U0M3-)4~X>0wm>;N=?zCfnxTAn-+@%ToNrlS&D*ue#X8j%aq?;Sz-_fc;9EN0B2bY_+2TG_CL%oEMs*0Ez>{eWLXX>9Ez+ z7~YBqMJ-2WIHSWH+}{MNoL{L<#r6(n?W=9Q++}vP*$irSMp|J_&6URZL77VC7bIi% z@Jp_`mzEuvp=)jgBOLwrt7PA^-*WM)(rLkjFAsR43JS*kQ0wYTRYfrMPPfWTLXEA6 z!eCo03L3{dUOBv$-!lK0-@I}q9u`9rUE3&Dynvbor}LsgbN zlul#BayO{axjiDMNwG@5gF>BA|!Xi)~Dxp(b*(`aXf9i9gj1qnxp*x&Qj{gc zy|m2{D{q6%JZX)kKFE0|K+dD^ip{TQ(5p5!|d}_?# zTKe#9BY0KKU=rt-r*zDF#t$738HDNY~!DV@y z4-gc#~d{^LYH8GYf0JF&FG)k6J?x+lZ6>NnU*a^)PleS=g1>eS5Y?feS8g%HI~bv zHhZ=%zFpVeGIw|Hjjz^%c->y+t!2yEp18V){xG(`i^j1d8586yl$=3tRs`P{=`Wv~ zhc~Oah*hFFDO(F{vCMe@cU5PKszdLR4u7HzB_y(|NzmF~7}M^#r?meV?HdoW4!%2l zHV||j{l@NaHUm#+7UM8O#zTdJPcUjnYd0deBEm-Ww5^xe)S!}72m&pw`7m# zO)#IdYpjcr9($G`$6q?uSYR_OALB;#iPm$|7RGOSa=?LT8XlGz2M)@t=D_@kF@E(F z&f|P{P@exAOPrOL3Z8v>rpXFsYv z7-s{^0^4K2>B6?Bbf6r?XU8f!0h8!zbda~9Kt6(J=%)jnXr`~;U2jb^eeH9$XIVU> ztL)=kox$QhCbb)L2zYVh2)v4KYB|LGOu%LCO0+jJYCUlr)X#QMZs+Y#!YMZ=EAAOP z?1ga}wW6pzCd2dZ4hH*|9*u&IFuAOqpgYhvB~FY(0~voq3q7JpowZTwTV?UtBU3l% zjLnSkM-%BB%U);OF-hS|JeYNz8Vv5zgdIfV|0ewWnI67d7{aBb$nmN zr7AYqL0tN}G)fB8F<=*)5wka_V~(CO9he8B}feJY17w_@{ zoa;#<3%=HOYQW$JXt1J_JKLZ01kLH^8y4+J>hfhzv1Mnkh=5RP!Jv;nUJIammv%kq zw)lPRmisVIm26JEB8qIXccQa3{y|eBj;%Y-6FBN~g6G56yy>Xr(iOgbN>Djl38a_GOy=j&#`WuAt2187Y3du0?R{n16Gdi*m#H zWU+<|AmMjG2~fL5xA%JVE`Y^J%w|ttrd+KmDjvobGgy8l>}h6GtzP)IOk?AZDXJNC zYidhZd6z$bdCkBoW_|`Si7x<;1wh_+U{tc>KI}qQz1%vtCZ?j;)qCY~_B3yK+r^_J z+)~!IHa+VdKBRvUMQvfmeKZ~vua)M6P`l-fF4~0{yrgy=oYW3NPT9p!?^LUD_$2Y) z@ENv)K0BB350VkEFgk%ymmtU;cjh6}7Xa_=BsWovmv6n&-gi?_U)_80U{B-$%6?*q zM${@%oBcc2>V+|8y^I{55CRRve}VSAN>jX-c<$7E~b46iHGg(X!uM)Lmj^e z=yYMg)HPfl?7MvL5(c_P_;T*}*xoQaER+yqgjjCHP<;EqdHx>r6^3(iXyHg7p)rQX zWp!hjY2MAXdV1j(f$}OX{W!EOCLQ4eHlmYo6QI8^=;{!*8)cTFpeH>{B?CZR!+vRE zzMro!imropm;qiMuI%(v@R=wQ4Yk=x*EVJ{_L?T+Bu@i;I`3fSv9MQOQ|HADCI)RY zMp161miJwAR#KNzG`7HrUdozk3oJ7~=F5BK80DIuhMXZGY#QD>iGC|HHQJu0Co@{7 zZpDO2$EwQ?NrsfRju~ru;gjxlF_e_>x_21eX4~b7js8`j928Xyl2KQQT1VH%O#g8| zrU^zYYqyYhp>A_pn9B|uKzkncZ9s*`g1;w;HCB z9sVm0bgr7v`K4VCd~Nk5y@P+2QkrjwUeJP@m@(xKI-gL2G!$cD)b7Lxq)&aC6LBIz zbLO|4ObIhwvYUDsd#-k2aIvIagF7f5hFQ%ZZ6xo<8sf_(sd*tjuUyp)D90`3o(c`F zr(RWK_2MY>eLjPzr|}Ycn)gC_YlD;Nyc}jewfpzb_lg9&=4ABp^UjwD6Tm4<^woo=z3k@fEwcCS{e>`w;c+=42K`Ix-j0>ySabWL)S7x>e#!(sJX z4_)T?MWjDNS3?=*3)5in^4^~6O95JP%8-Et_!wP*w? zC3Q8U<-Dq*=ixNU3baUnjaJOmOS)$ov*pm$RTq;WmUxxx*YYe&0lR>JlisbQHeOXD zUt!YzVVTOzqS0&;f+4fDw2={p(mP%9m3lKZQ6iL${my|VN?Eey^yew11azI&t(_uW z{NJrk*sV8E)XH7idQ)=J6KN=kWVJEZA4$?KELQ8?+Yc8I9X`b#&ZFBExku?eKDCde z)(EITg$ug;hzu$&>Q5WYopw}shC^Uuc4j@q_ZJP2R{7AO^pv$*q%TgX3&dGtFF)q} zrfu}l7CBX4?Gtr)Hk|p>r34rB0&_JqA>m}<``{8vrsFP~2$37}s-+#st zQd=9G;vt&xXe5KphYCkqqgcJBg5t>N;5RXDN#P(0$#}s6+|Xz~Y-YPV=wpbw39p;& ztZ({Edwfe9fJj7BiuKEIXi+View~HsVeeq`bzXYUYoAC@qAt+d(RK%+Fd`qSa z#W7rWBKqVfbn@5~ywLxIRrWZP&cra75wCOR4-qS?XN-a4{gzD!1Y&=$o4i*TtFa$3 z3(sZ)fM7R|J(d-^jcwc%%X0q97mgh;L=xz!MU9>EPl|VTkZC{V1l#a_8ELqDu>$>2t8e1IVb$M zZir&kg)vOH+V@Y3Z=&)O6B4G!PbDa$a0CA2)K7Iw>yoWvsX)ywV_#S#UVeFEu21sd`W$|)eG?5-yaKnuV&@e6wxNNo)-k;?MP(VmGe^N~D|25;(C19I2Rj+>=$%D} zJX_Srr3((!MUInhIOrw7Mtwnt&uaeCxYct2tHDWB`&&H>!?El8duqGuu^bxt*SWL# ztW`yyqF4hh#?ya#kA96{CD}7q?B>!imT_!%as+>oA)(+}=#MowL(>5R6<-sl`F zlh$z7Qr&{CzBCZOW3iNZXM596CF5;neoOuS>I8!ZeT0HyH+hg?GS@tu>zW}{5sbe{ zQZZ?-erhBPfd|M3c! zu^M5HTl7}l6)cUfJ9trI(6HXUUW2A*1pAxc3~a>&d9M#pva&n7shk>BU)^Ch)##FR z*l=n_7q2}mYu7N=8Kz|Al<9`{vf}Q%o`-{J%<3w?^bV8y9Gu2E!@~wUUKE|DV<;auf%ZT-lw+4F!m1CG-gH-&N3Y3L zg)ZMZLpPO2mjkp4URr&zEdRILAy;UZKCjxu^8_tBU%cVmOT?z)mVGy_+V?_`Xh-l9 zRIS1OV(41J7_licSz~Tiq&$DOv==WlY&)I#3}h!7Vu5!li))aK!+-VSek z2j~j_u_ZlHot49zEdJHiSuhMdRQ(M6M~0@^h@g6+zZZg9e}6X*$27L7%#Jzk)atws zJ~uWq=+LbCpvZ!vXg3I&|F_qV21^SBJqgK09jBDdw566p|c1ZIicImuP6lNNY zeTpBv;@&r6`q-VuGt6jqzeV(O&BFV8`fG}ZMxm=pOfn!*%+zly&6y3qP-tsz&X{X1 z5#(PEPKNE4SJUT&|0C%c9Zx2eL`r9RdY})=(ZiLAV|@7T<)rqU=e0htF3;x{e1v zA8m@8V%zGR+|h7L8SR$H`jkX|47)r5VqSj93soH z*@BF>lmzOZE?Qad#WSKpwARYN|9Zy~KrPT6-WrM?aMAa*xdiovT-@!Z~C=9rt44DQLLeCU+TsaG*C zg0kXfGUNB1zYaz!o3JnE(mo5)W;nTT9q#rJ6JTjj+s^#Y&U&@<#gNfP>%qjJb(xD> zeu`SwSi743OaB~Kaejg7=U>ZE&M#hWv8@V<2w5tnWu4!x?ivo@*;Fd%!ARvqNLl}X zY`t|rlkNL9j-q0MN~kDc(e;QR(ug3k5i&XkN=OMvOAbXuML>ixK|*4TjgpQLDkY7K zP60=Zl4b+8-!&dTpYQMczVF}s!M*Fg?lX?_IF1uLvs?0ZRkSn59R<-QUln(8-q}#% z6o)_9n(;|Ex8%s;y^7inSUr3|ENRVz0;Hi!ubRf>HwO|(O?{UF*LlKt0;dS-45hXTBWu}PU|AyG!?WOE6{)Y&ZvVWOR3tZEURU1cc$GwRc6_oBUO`J?a*%2$ud$9 z%ah{=UK{wp2GzGDGb&5d7Hz&fJu@~B##F9-h{ZQ7-aM|i0Fq-xU6zwd*;&)}LgDbn zB)mE!Xfj{2dyzhC7%sWqT!aBBPcXpkO@&fHb)^JwhVSP4C21e~!ViXIho&}rE^$O2 z!c1+uYA&}WP_I@=OB)BhRvAMoFCJPxe@auPG(X z&^BAOB&kqt#HfB(-C;nn^5TCu_d?9$v)Fb;m|!d*7%ZeRTKa9iF3^^0n0c?$E4ziX zwq@Y~-Bcmhd+kH>vk(2%@cfn@!cUthYaml`9b`q9!5 z=m~#ZBB)+E2C9g&i)9v$lv4Q`rF3#{$YIinL$feIBbZ2J8cQ)Z*)R#|l(bq>BGM=~ zcR*We7R6LF3qvisfH~Xy!@8X-of9mo`xDHzGKV1e#`~q`kG!HOp?2E3$I)%RMz;M? zk4v!2pCB@u+T`uvHB6a6SUTxoF7TpiN~3~HJ%v)U57@B{l4NKtSeG9@9dWVcEPBBKO;tp z!u}aTTBw$8sbSe+R>KU?s^>`kK?S%aIQ=fEjFJ}2o1Edj*)fw zpbzLC;Jh4;4x$?;(}lCie# zw}jM4wF+i5*UnzcTbLw^N|#4n5?zHH1~R8NCI`Ep9|m8@pY#J~uf#R7*p-fnrG$7n zf!li_cia~p-&m0^NplEf8gGziO@~%bHaIgmC72{R4xuS`lh%}6Zu^j)7b-1Ecw=o@ zjF1ZMv(QchrHvpDFOQGv#v!0AZfcV?*__4LMs@x847J4rF(wh8e47h-88dq$n>}l%nU;864KQ|`>z^-*T2^SIsN6ESjYS1h9LH8pHl9^Jp&S~wMbnGiG;d`cPB^IcC=_m0&fXDmGDasbWjbtDVtb|aKuEXi_byK#E@ z;manIxr5lzT56Mn!>b-RsY3ixm1kor)J`8RvG|oYf1&m_G7!wDw!n3dYBA!w z(zAF@sdjO4MzL~xFxT?gFD_543xKC^tl+JHArzSBGZ#J9jP>V-&0aDablhF1zG~oN zFX@f1;%ObI5jn8gnOD3C?vVbf*0D%iEn( zh_F+7_oupz1@I*cca#M12&V>q4EbE;2s%$;pb<=)6art*sGEQy3l~BK7+R;W_D^|| znAE`Fh7Qdi0D8*b%E9z#Rp@^hAA+Cc11@BLOO4J(6$`{~nu$vnp7>}XKdk=TFv(#s zP!Az6UPGg(-PwpffZY!oOozT$o92I$NikAXK_v1|`CLIcL- z_)p6&W3PMAkQ?0#id0*~cKJfoFaWC|T?#(;ax1lYTQ|2AY4y?iAZ?_0Lq2^hgb!VE zj=d#%c+_gFi3eb~fR5;!2F+cK&>n66?->6=WTYYYG$A=|8l2YbuC$D&h4@ygQbI3Z zXoqTa0`-yruMaFUL(;eP1M{f*7Gz0Z@hj%X4k%+WTjQVl68r1tHULfPpC*Xg*KNa%$}?3^Z13o}Ed$giBpL;K}Y< zA|`-437vd94N!=F05-Don-sN3%X+h?Y!>^EKQTIojXf%;mq}TtDp~%rQ_-#04DfTE zr=P^w(=kgwAD^pacHEF>dCp@#`#g3EpiA3%g&aJ|VhJr4G(#U$PSzvrF@$6?P z;CqYKe5EjAEPa=^8HHKKtA2f@RRspLMssXzz?$E&Tm;idiAjSK+JD^j8;|Q1&g*Yi zTVLV)*6}+gAalv(c#@H*eDv#&({RTS@pWwjf*jMQv#1i;z0Dd**;a3L$yU$JdBy!? z4g%%F6c7~C`=N{6=c#?g1Q9~eM7&3pAhH#Q7L`j|xcRd_)$jKpPE8JcoCdXI>K*`LbtW zqImrTMW4oIJ_KeYolk4Dd%HrNB@N0Bva=HiTYzTMIIpfG(_?LdVQb3TBLwSP&pJ1FyedyP!GecfB z=NsLOJ(a+HGaVV|M~m@wo}i9crW%5gQZIJFBCT@x)2jIT{ftcB_0ZbpUOV6j>p%O; z;Dk=%s@G~9FvuhQK@qQRj2J~~eA6FBM_PKnbG_#krdP`UB>(rtM2OFAcp3f(y%QKg zL?W0Gm%+FC^v9!`_K8%b(DhFx3#!?Aw5>TkBk`jT-t9JzY$Ad(Bh%(Oi5AEROOfMn z$?S;a-PJYBa%?_>@&T#E=mV6xgRvY)9@c+y<5x-BwrAcJ&gi(JBO*mvwBGk?PA#>F z4N+L^H1-6CBix|htsj?K{BxHR$+WtmBMV#r;W&Mawi0=}F|$cplJ8!fWnaIg4DF^T z_B(KIYG;KDb*wPaKVy)g%fTE!-Nm?LNg91D3DveKNM3%m+65ZGnq7Hun4n^J49E_} zzPIT3R zt014z5~`dKdp;J^{8Pdq2SxX`G8-PnIYj*Z&XHWKPjeHWxW*V|y?cW^)0b8_6x#@z z-6!em@>+y)PZtYjHsF)w?2YY?SwGvZTr@GJcU1@}R&qoB{L;lq7Kz^=`fVj2e2RoE z!7N8O3{_^-RtGh#TkkG#Vl4w|sH?s~-V^$_f^@klKXXc*h&3C9GK<)^py*WAsL-o< z*TcISdeGjZGHS`8YhCKZ!5n$?YhS0(*xOBUKJQY)R&VzuPbIX?!%5<;TO#8YF*xX` z(J(c;KQd`;b_sx73Eo&(eZX&m2X$ulW&eDCAZL~fbJ42);!1>;WJs(8`n5wh+CpaQ zM`NAyMJ4Car&*z|JYOIT2o%PMg-f)ut^V5Td}?kr=J?Y{rC|Q9d}ZKD@qblA9y8l4 z%n@ITb_5Aj!cEMQG3O(rO&vDuuDgL{Kps^oGr0zQ$(`p8_X?sKxu9~crXwpwq2E$E z)-2_-Bd*Sd-ZVqpE{ZsEqL}TDpeUjIS={o6L1#9@e9QBf%B}}|O4RS2>aa~>GZ&oX z6V{g@6na_Q!bFUQktPQfOQ}t_JXg!2K^xt$1T(u@0Gu=6KdabQUI>Es0OWH1&T-P` zS5#36X8#h-q^kWR5haK}mdSDrZ}nReVs{06K%?X5HM>hXfe}yW^RSy(F3qhEpPG^XLv7IWF<+hR(12!h8+-lUuftYrmgVtg|MKeYkE2Of zr(YsZRoz2s^xuc;f69a+VVQuo7p=#q))w{qwaH6=ode~TlD9N#X*QfbqX=_HU-ti8 z?X|^NE$;C0Y-S&*8c7dB9VcJ}6ksmDrI-3SunQvD;!5J9vK#Z_kh!hCw;dpQ2yVS< zvC=f=xKMU|H+;2=YxMx8@wh=`KI{ehTZ^8z(10=dpToBlv7LcsAXhDju`d8syj1v8 z>>pK>DcAWVe9B*@D8C7Tu$4@yqXeIo&5yYTWD<@LcG+40DytO@4O~fUbTd<%X$RH# z_Tcwl25XE@%<-3>fjWnC%KrLNI_@H9eWhc=@;=UBY_J_kq*<~axs(A!kJy8=A`Vq6 z4r0r5;-ETixLp^xi`KpgKJ}}adD^^Sh^PvPa^}myp1jAwSZc)4#f3RkWp_rB!A9T` zbBbbM0zwY?Dn-Q6s)=cL$HNQMd85VUcTo<=d1}$s4R9x^-z4W`8Bm=Y!WiSgdGtN9 z-fpSz%wch)qIln>eb^zLjH?C0ax#SNVr zH^fj^a~?|P=O6W(W`cqi;AGY&nWy5lut(61AVL@SAlG(L?JICud_;0ps=SS1DxXrN zT}8|&dA)@k#G#Ck?>yHrDhS;5weTQFvRdf$Vc~@l>bqbF47|1&_yNY`;m<>BY`j-H z-igp=RDLBZE9>awL@v`aB^mUW!$&gu@OVxVPE(As!w(Nfx?Z|#MzzRy#!9Yh|<)*?<=hh@V4sR6Z0 zMCUHA&naO*Xx}H40{`dkDDv zFUazXgpYt6yn7J)W{uJrh<*dtczdJ)BICn%m%lYh#IyUn_~=?OVLjcS*QapScks#h zX!i!@YIg#$-lRa>u75=Zl>lbAZ;s`s#6f#9hDrhC6A7v-x{o0=A|gUmR5Xa;$ML;a zvtOVaeH*Z4YFL!*ka!CddaSB^$}%}xVzE{cw91v5t=7(UbR<8uD&#SB8u~^vyV?** zQ89SquNlu|O8gjn!meZt9xopSNwPLU;CeD8#o`yi2~a(gQ!*Xe#-gVX!#~j=rT+zC z3byU7m#BBrQ(}QqZZGHrL;PFStLrB&0_DT;Kz09)UtK@SFj8N-G%iG2jer}4yeefd zn_;ZsL4ES*pKzUJWLL90=B%u%xd_)RWF@*Ri?8D51qIjlELzn;kKXfk9Lpyz*a&!H zL4W9Xdt$?Hb1!Z4*N`l|i9NG%iFS#*q3`FX zo|5TK#j*jg&ln9oY)v`0eBWLM@HgzMzHK6~HeOqp^ z(p~zGoMN!m;=t;A&j&b?s;~^9PcIW`m5aOIn`ny!KTb~K>v?;xrb8d^nQ&VYht?$& zhn9_pWFDFPZt@r!9B}gsuFW=AMgf*K-5v&9WkV+Scqu?8zdi8szvsVPB@tao9qeg0Fc!K$Bc3Z@?2m-mmpEwYc|mVo+?xka|GW?>RsE5Rdi@; z{@MHhNRLS{Mg_Wq7%;a54q{+jxUm7@Kg<|>Ufwg3wkRB!bAPXUZ6o%qpe!!D=l9A1 zSf)ZQ8#V{3g>(??5>j()sng9h)rUvg5(Q78WzaWD&1LV-Cmg1xv^ir|)~C%M>jDo> zAMDD+8KBOiGIRrd4=CsyT|!k-r+@$_y~tx%!ShkjJy}+vl{tmOcaA?D55nqh%>{C# z>e1$^FUcaWBEz(um-NfBDvukCrU?B6KO&VD5iV!UP>sDR%>{%Q!0h!clI^-`@3SuQyZ-IiUUu*Dp{Og?(6luRY@S4#=S&0&1F|4^D1oyR`nzD3F`BE5|Cck7# ztbO?SCf*$B5bZZ=HU3>;G<dwdSc!h_8G^;iShJ#G25fd0z|79-jF5NmTwbbvoLTu*gj-|rkCNzeQN>A*dyBD zv(3ec8??`|eK3e*wUvR>)@jSHzjCbujgVy*ZZ1}5lfB4JDs~7-Ge_NCHKD^ppW-Nk zCo7flk`3*;%RvhDg~IdzTWgh!u(CbJYnJeEs$9vg_hVRPkKD}S=@KX!sAz#K68N(M zYqQ0F>va;ClZPlWoL2sqmYW6pfq`-P2Q_6oEUt&W`tKX4%zWd(Rv+JL$~XOeGssUTb!~J?HzCz3W&J>n ztfykJ;>d;G`q?_?0t_JXC{-G{&$L4a9H61oYp{>bLAM=NwTR(Wq4rD z;wo70hF#CUu=nX!#Uvr;Vy`sw)|aarmMO@kU$mmoJA~GZLNPCAFCMw8$i~s^T^;9R zt_r+rdaIiSHLd501>-jXUK12E3)3KvaZg1bkQSeUiFW$hi; zh}vfJzdl#=j?zugdE^LB)db=*o}1Y zIkC`Ft#i`1BqbiH1#?~aoM`C+x|Kbh5b^GPPWB z;x(hPP;bR=V#BKtSuUdslS+xT22nC{o%IC`%)6?Uu( zIUKS#$19Uyt^zDS*L&9(bzCMjhGks6u&Ow{Ww_`)aPP)*d};P_2x~I%?x*{~fi@=3 zK8|>3hksyiW?N_M2VD^FSeHK4zdHB*L8bmJ31|H%GSlE4ESqdoT$qdb$Ro;JbvGI| zsUOtK}EGnIKHivrr5yTcX%jR@=>fsBk9fEDL%9m{&ieWeaKQVT?Q5 z#}kfIv3olb|2kQ6$$UtrK;rvBfry$rf>c?M&B3Spyf^GfdO;g=tvj719z_@AF#Pgj zb35^M0A2W~R@XLu(=s{t;!VBEm7abJ`-e^7?rGHzy~?k7KMV8mx)84Koz@HGQMZ2u z?tt()iU0wJ?-`EUv34iOdia;YG5~Ok0n`j3no=@>`a^El25Tu2C#HthE)r=H+7pb( zW}O;3+`WitGQ z0i_yX=?*5o!RPwcd&&vwB zDgG&yWaRA_wp=T^ioAy$L2LVFha|C-EZNsm2>!>DmXqFB_So+DA@R`O(2UXKnq0HM zgRz+^y+NLxX*1636L=ytv(WA8FUh-~p#UNK6$E4*fz{m_-xw~x`kpf7ddZv9fVa;= z7QcsT#cQ%a_BzjT4*eGMTFT4Q-+I7xGdq+^;19~DF4h5H=@PyXv0mAxOigW10;lxm zat4h9e#hAc#W{$_FXE*J(GWEfsN87*Zox@YwQK8NOHPnCbXau_2`Lt${h9Q3OSxdv zTQCkvux|Bu+Q>fDAchjVSAze(5@CIy#gA6u69)Z5$ zM*T*VOAx)-iz*8fbSvzVxl?18b;T2sGA0ZclEYgH!g^CZjM94y7F{kqSQ^rCi%G6< z)v|B&<{k=Ki+T?O3G_E`e76V+p;j!$O3lUZwTCoDEg?r7-X)ibM2mGJMpcsUNC)xd z_5rpaXwXMGf#Qo!{b2Z0DfsC)AXu$m3rug>FU!>hS31yVrd9y818_Hb;Et0LSd!+> zs8Iq4zwt>XB~K76_~)eMvv3la&*zzTamVQ-jt)y^nP-vui1O86py`Em2d5W*pYjZB z8Vu|65mIOTaw$6&(^Bqo=RF;|-L_5Y7d=^cX12YZy}oJ~EkRv+er_y#uf?*oycW7g zqZX5E*wtCeelJi?dV_mLr&?~Ziu+E;9?t9xV+nvN@)hTKY`THx!=lGtO z8uNRg_`WOzP=EFEBQc1&V2*s6VEo3 zSNp`(hpeJd58>V#v*PV+XHhN_CVhs_DL3$h%_>b z>#B78wZC3Kbw7WG3(-w*h7tmuAvn+8k0liraLne(lSLsg+Tx(!@vzvF5lu{AhO`6)pxf1g%f8ossPNCj03nX)L=sOQ zL@7gnnd)e8zed>+-;Ks8RbznHvTNZ<^vlYpM)|N*P7nTwi>+v}4FIu=1a}Ny2|_`Z zvPZ-%_RFdj>d#Avk3fO0N~DTytU~DTx=-nRt$U5@Tx6-#&Z^ur;+g5OytyW@P)d?Y z=xP<4C#YyzG@Koxc9}^QDND!y?4^L_!;e7&D&TGK3v(L zsC`RWJCpE5L?Tr}g|+rQlUcpY3b?j)xz(;b#}vpGQ(h+`_v{;^13a_`5i(6 zx*l7d!N%Ls6a&XiEKut)TT0+V?T;%f>e6tF;U23k4GHZifbIsa8tj73#^&7pK+7c< zYI&Ie5c1Tu$d<0kYr4e9UG=~Mw^kKCp3zpG{_*QPC_ezFaVQ&cv(YXgrjr}|K|860 zSSBT&!(LaEF9e(X_U%_wb~;zYzxJ{p`1}vf!P1V`_^t##PEwQez|kaEQ~rq%5^$Zp;3&(q@B{< zt>lw_zpnX$TmD~n(zqt)Ld4TiL?jK!;^_u3{~`@yCy&QM$~C3B6Q^juj*OvU<-5ey zyc2e%@j-t1p4d#gts~}7$tRAV_Ymoz8$om^ThscF2gC&K1l-_H;w#!V_187 zLA!)u>?{wr37oxoeb#|KiU5`cz#OCuAFA`)fFdTP72a|Zz~&%|>{U=&r|)mA7&V!q z@9$-HqnG-;u?yS4#wF=`lj-VLGcNizPrxD>Z$)LNJW9a=wGWXw)`U z=2Yv>ec03@qfj|J(WHU-=(FW=w&3i*8(s*UBt~+{V$5r%umglU$ws5q(@W+K-dOZC z&WmFv{X7?2+S#wv|GP>B?A>ZUam()IUeP?&Unh6J&~x}J;R=neftFNl^@Ln}u|U`X z1Bc`^PkVU*qzdR}aI6?H&$#92ZfED&g^w4&+?q|+1Vsre;UaaB<1L5cD*36!e4PdRGWX_(v)NT#iwi2_9% zQ#|qW=Q#CR8()w55rOBod`)}Peoc;c0|C-ld8LYNJ61k}kPC>U^c2Eb8+h%z;XK`l zf)4a;Mgi@-K0|O0ngkOy(|^2_cXS?9;M&F`CrW@q(+^q*F3Qgh9SYSSv%feUQy3`)fZv&zb5y;trmrqNkig`)h z0D8z(H{O4Iy~r4_3q--;tU+SVIsx%lEqGug2$TU|KdGY;5x^l+T4VznZ&>3-<2eh2 zJEq>Fh_~$vOIV(y4;{~eDBx0o zlSOEfU@5~R>Fby$BLeE3awxB{YM>_n%+niZg=*;<-}&x*N-3eTjtD1t6>ZhJeRlpO zlK1HNWdOSImX`@J*r<-89}lHThzE=aHVqK~4z>b{bb%L~ED)(Vn1K<^t}O9`VTsgt z?P9B~2YYq0b6@nZ&|VI#QQKOS8HY{Tp@*?oH_BXJ(sm71x$F@I0_$Ht?fPL)cy9`_ z3uS8!mglN~UNHCQcvVJ7V_~%nUQYf$mxrZbCm$ti%Sty#%3h6#gg0PL+y#%*lP2NC zRiKLU^Lyeu+t_erir)97Jc~*xvGLOo^!8Tr{k6zUq_-w)(sLT%X64sRDY5eaS2Q?s>@>uI-IM5QQc zk>6Wo$o3V2>$C@B1;X3nlOhA7)$bdVm(=|I#>nr=;y|d?aegCUx7AwE*M#q>Kc#Py zSsjp3ccRE0xO5Td7isZ1K&Wrp zw(XuXoQiwt8r{@ENksF3CV$`8*a|oSL^P~aCGt(-#X?fo^52LV_&gxpUH0sGnGwK@1PqOM}K9UX7b>k9=H5n+36cy|c) zyCh@}GMnT0rhU77CbQuRk+3s!YwHk^HB%t4F#Q2?1gqK!zz40IcMm8TZcP$3+1f|r zq%PLkaV**U1_X{0i{-&Zs#~ZU=|k?NC3?!b~!e)}rFDK{cAr zp=Zo?@tbz5>@-IA*9PGY>K1Zch~e(15-lyq;-oO(yq0nAx;`Jfr4lG3_lEAc55CF- zqspFpyCFv|AE!i$Wnh0`b8aVQ^sfyD?J|xQu42O-rDnG6&C>Sv+MRin#`LZ zv%UBN_Mk<~7HrlAPGX$@-bhCkTx6ONk8?quRGCr8=XZK=JVENseMls^L)*CHF6Nex z_XwY*$Oa%rinvji@iMb)^&JUtyH}-2q=bsx#b&Mct(+Wuz}QOb43AGYI>?q((0Z=N zqUQ7Tw~clk7nj@-o)N?TcIoMZKL`E*vtszq??HA4Z4S= zqm>p67poa0=y|`OC4tFy?)%JT%cNEjQ+K!{*oW2nK`hyzDaB||GQPG&>sF$;NPfMi z3EgXxK1y)O`j5+4?<@7Dd?F##?bgzI9Z9K*>tX6zws>MqcH#VLMG(*&vB~n+UXbsS zcq)-4Q~ZU`bF)1?aI5N!CcCT=&k{hn<0|#3bJcvFW4ae)yDrI*!nJnF)sH2yRCAHP zJPzi14Kc+}HU-#Wg1TZ(CUx_Y(OuZz9Y8K2;0YVa=+dy>NWHYXWZ`adbHe87L$knq zd2opnB7*APCo3(i-6Q?^*Wml9A3HpF_gggv>?Et|Mt`uR*69?0VPSHnGPHRU%pC-?&Bj+5 z*()l3|5B*XDVl%|OSjguMtLd-x?%^$8$fr{<-7O&G_O23yzw9zLf2gDBOvmkj}GJH zh&NL+fGOa|*6ZhEfzuU}NGHVOj+GgnmSOVG!t%*D9R)DxqN zR&#Z^R8T_uM$c*7C|SD8BtyP%TQ$br>Z!d=+XA2WO@kIR8=GKyLX&Cl%7K2-quq(I z+Ba`2e!Z884u)iN8C^;0cjdGvau^&hkZf#aLc?;ZJskKW@L*+d$L|FzY(^}w+{DE~ z^-4&V;D6C=1NP@*|9g_cy*ez-2nt5mnx6X?mH>%d&Q4{tv^WNqPWh~lzOVI4yU1w` z!;(}c7Ofa3t#HYJT^8+Y|6nA8D|5D4u^Qp0=fWJX{GXpJ$8euClX^dL(en-gs< z^p$JXz*C@1YKMN8@8j$!fkm=>&VWRJkiaB`z|fk)DfY;=;uA0A`y5%AA8H^Cq49kp zU8@{O;s9QlXpGO%GYyVr6xi17fALm?2ue-nGCx=rXT1e74Hh?RB39 zxO0RZn{eDqKsc1l&{;-lOg+?d335~a`<0i2E{f&BIjnT7&zB6GFf8JET$+e; zf_JdWHW*1kzDp*^dISu&ooy}4(L$b2=qgsv1vIq-U_D8mQa8LemS`ujKjavhVN*W6 zzE}m^&HR6WQFLh0r&`JjHd#SE*oU3w#Lac^_GdG8)jcc}%izb704K5kQmoK9Y;zZO zZ$0@cU+x;<=VSs_j0*owRtgoG8q>Hu{$sFu>gT>~G2Ob_ruX@MV6VFeC#kX1e`?2F zu)a8`ASc3Vv7ZRwe`%m8xE7dG{qXVpC^%OU@nm9pkKaas5}Gh9l+mW4Gjxen2(1c% z7M%89`@rnyZiV(V$CcjiEz2tIfv@)Qi-l|E#5T4?QOI)5NoU*2a?aW62ijAF8SE{= z;_Ng4t0(;djx?_=2M(y-8UJaqz7UqQKrfmA9gA&_I#2YpQ%O=v-)MB7JKqhI5I|d0 zZRN59>ILgoIhXfM5t1A}BVyxmv9PK3aI{=pp`?t3F~=yCm{S6~0zj`D8BQ=nfRAXNaJOPPwYKFsj40Ca=T8XBhp zTiW#nGhtO#Pqgu}ef0kg4g#4G@E-vrEeX?_XOcI67s7niiW z!U^Tsuu4=^=I*JAihFOcG@{0JI7i0sqg` zGv+RTTCcK)=SNtkg^c+7Y0a!PyJ8C&CFLUBOH~$>5k*at7_~-`#(Kz{$1_uQyvtW- z_Jpejtg@`2L6)JbYLiHr(AopFc@i z%3@k}Ay~mYYJQ@<7XUnlE*&=7aHPWv7iuL{I*T-04~oiN4n}@)4xS_|{JsZ=1jfOe#89Rx7J=V+K0a}&!Ydx6|Eun1F zVjq7x`th+fv=k7z0L(}X(Wr~PoDV-;^;i*q)$vyg`2b*YlfQpUgu@gTE)IaK&~=(M25#v6rfJ%baKigZdg-2n5yBYvMqC5L%# zN=GrDHxrGgBbHgK+Eyd%tWz&jT6cW}@k&cJV8rTfYq~Kq#Dp6bv|?J+99LC^iGK`A z-CGJ+g?!Cgju4H}YDpiTy}1Q^*(n)_*R^4ZLW^Pstj>B3=4nws0L1`6RY1)Gmf%Rw zUN~R#%;m(+I(5V-Vc>#>WNP9uuZef1me*bGw@C1OqOM#@5%bK%cRH*R{Ix))@tuJ= zIFoWTLcFc3Hi4*i_T85e@;v)!yG*q_;+Rdl-eP@Pr2W#|)+Qr)Ivr{s-kS%EN`PV2%vLYV^N< z|G(a@qt`>vr64-WcyHfwZBcDGdDae2qAQkG%;!om{bEOxcOYvlnI-16|2!*8q|Mf{ zofg!xxSfr3zpmi15rDwqwRx4Qb0hl4+;0*Z48C|}ZfSTIw?CyG1=jfJX8`g{2 z9_BGfl|Gv$ROahff{dA}TWRyx_~=eQpp_#vOdn=YmAEbGu7{4Y62&up^*Vw6)zVnb zI}vVIQZR2Q2p2*d`n~DSR|66LflzINW7DCEJlg`pia|D_8Kg)=_fur8>#V}X&Oxj=pw?GPS)!kb^rKNoqG2^1gsEsRHL)x_4yN2Rhl~XMQ&Kp6Bn^ zu7AvMa@*ro#Rsce=EdOIn(}IE_!1L&r$gXAW7P z9wPDln-8rC5Fi1+;f!i|yx9R34=kMnQ}bmdx>b#}KcJ{9F&s_5)y6MRYKXelvZoJ} zj@7v;$IEI3Smvx2fml!X1sc^TdJIE?<#v{QV1b~KKMHQSdDl`ZX^-Q*H=E-3j{Z1U z*>m!T$$%N~*pGJ9!vfWa7+~#6_q@~ocg8JXA8FZ&QCQ6X^c^yp@w%D$gaIPB6a1=r z!IYD{p=zVYsIbXm@M~lRHm2)|WI>-oo#lvBdWCg3<@fx1>W8+3oU69ztUR&aZX|}z z_?`c|Psxi`jcEZssSMBHUcoxg`p0jDqUE+*xAgYDt;c=(oedo=ysr7&`<+l9m`3~f zt9?|NV_(~aZ*Hc3NcDJ9!FEs3gtYw2bw^X6uUGqF zD&eVjEtm}=#=9;?ObqQ-WGJ4OYJZNUB!lUDu=QUHf`<&JLol5yM!S1^+7(b|GF5WU z3L6U*gu#X~7H~_jxrtE#R7F#bxtvOT{^+nfH8nReb(LFVNpX6sD+gE&wiq5n@#51C z3(!TZ|9NHxhNbnd6y`oq-&KK7EDFu=eCDLakJcn=W`#c{izN{h3kt&}CUpvBzoh`k zWXgMy7i}EfV$mH@#evPZUX)pStyenp_}x}ORQY;CHwxNNaFF5qvuEK(%L?eV9j_}` zsMg4{x2r<zofbCYQhBZIdPyOQGNGfsj8p{=Fl&I(uOSv(g!k0PKM?VRb!l?PwkTHX=w@*Ik`!1e$}|tgeS-BRamvDq;yoJ#!I?AxzU-Ux zpuc$i^7~@Qyj)FwCDT{iqQHfx2Ot@2dg4ihpt&dGQ8U{D2>?|L@6G`+IQbU>A8^6Y z6jBi*l&cz;io**_!5y!J>jQ^O`WiY=Ymi5-l`peTo zAq5evb72J(Jvq>7&&Vj)H3i@H7pjvz$;TR0Fe{o_E3Fv;G6f$(wdXVijwi7a`3D~; zHrg@v$Fy7^Gw89$SU+fg43SSS##BA*m4KV9*!cN-1|I}gmkoit2UJyR^WLt{{g6x9 zpxIb_qBH_==wLj|$Kale!1DH7l{chn{V8CuA=enO%x4}nnZ~_z7_m5$IVUI3g^N^6 z60qE}1a34kl3%wn9{`lnwe;#bI9GO=e7uUh?39Uoq60UKPndrT z5jB7wV*2siKNVWS_D0q8z}M#we*AQ;w*q#kq9Z)DGpES67~Xu^wv^0XBprS(_gn4| z{fc`|1SOPvn9LZwx_ij8Aa3;^Gg2O8?ht~v1~OPK;mdEZxjQbs-WT?2JBaP{YVIGf zHdyN~cmT`*rs(zPi^EzCOO4O7&yhQfMxT)iWp-l)IO!rsP2Z3JRv}2D(NH-Kl-ah+ z=A0FQ4$pQAf534gGSS=+pQOpo5q#QCZXIK&AnaISrWAQwAB2ONr6M{XGE|Ym_*Idv zcuwu>>pRMDyQ`4d&nCt3c0XXgV|({);cE4v0k3R(Hx4JkE|(lJ)5~{i*v+8V@0na3F?yLW=J7wZ z0PwY?Pt>_iFJ3~FJVgYwm~mBtgS*k0FNtdj`$N}Pc|ZDv>oG!B+PZ~Ftif^Xz@OG? za&xZ*vnBpy$!R%qElJ?$-_=;G8)JH4mhjhgdI2Ul`4(5Owh-bP)(a=0Jpxe8TYA-x zgMKyEAI2`6Y{`=>3SgrBR$z!V-f0Qj;|gq$e{vdZar<9>vH&f(XowmPmZ252ae9S9Hb}*X_bzh}gnL^j+k6L$%2<0b^*sj+cH9wYHRS9lwB`F#Eq- z^u9cU3pGDl13~TUl}p0!qjO8_rk55fXzgEe#gGj{swmmHk`7*cI_5F!18};Ja8V2Y>IO`2uwU}e z54of_V!bIqR64pC8`@!}4<`XcYjBtnRa`mQqy(78V1&4bD;fSsIj=P1@t|zFeX3v4~ipEUb{ZtijN5W3MwaZ#eF7 zFEEe1-458daiO%W(PXk5Md|j9U$|K?P1xTd1v1xH#V|PTPd`-ju*D*b*Ihc{PA?FH zb^n_YglyY|c>W{aDdKy<$2uF~D&sp{!Wbybyj~sjC8ZJKn}Z`EXxs7D+auh^!Lxwo zd1ia&UrX!hVIXB=SYCBUwG8XFujN=0Kjhmd$DyBT6-l6>wyY9$78w?aSr$D8g$WI- zM*aJ)tovpVe{F34W2l|O96KpPodgD304fBi#JE2Wu(tnW0xzUy{zul;2b&YES#??A ze(8st9R0G`)tf^@5_?yhk4vp2%B#DpcZ-WDY0GDL3APGyl{=eE| zuCfGRqMiz62ldCk6{=;vC+uk+c%AgO_tsx+2ARl*r^8wJ+UUfAHlO$ z$T}4kXWGWyCbZuEfsTmDg zjB><~%}dTT^LwqH%>stl|Jk<9!VkKXxAW+OoF(Y@puyOrSm5L<29b#gx81rI>7XC7LqKL4jea5RaTZ{jHX?eVKn>U ziS}h(x;SJ!%C)~imcH(aC?{Lmzq!J6VHK>6P>SR9*kS>MScWj*szT{?+jk--7Kj;K z4XZx+o&JY&b6l_O&iDZSdT`)h2lBBcn3RD~I2uoMN@Kg6WUfCFhuD%N@y*fKe7-+h!Duj=a2)^m6F%I%J_eFs+}QOuw@_1z_| z-e}z*m6F&;N3zwP)fjYs9?T?i#ON<8mks~o_&1dUFMDuUz{s$xJ`h}`W-)_La~Vv{ zzxiryP6iLzqk_(G-!SNG_PFkIeQ$Dgs{XDisxa}E%~f|5hku15t=Yhqo;(L5*0d`x z9283zlUiZY|3lj7O2Ec6-j@@)aPx6@!aEvpgyp;qO#B(?3&OJDLY<#UGi{UUkD0C0 zij7r+CMUz^lma+zsSka{Rf#C*m!ePosO+7c4h5^2_hlDI7P=(#3|&bJkb(oxilDZS zMAc*op7E-*ftTJKrQVCL2zjb&RxL8oCU`@3XL7tGMAg4ARR0}LNdEl`5y#fLHbz%#h z*C0OsuLl+W^$oYe5&Jk{Tgrnhljn-JAmXHR_d}h(FO8^8wTtyGh~I;5q{$aeoC}i- z|AO*_&h~xq4*&4`_?3w(EpFJ{|sxYX}f@7)JsuNP!SQNiqea8sX-7>LXpr62q?Xy^d37RLQo*|UK5&> z(2Gj%0s*8(dI#w}d=t>?zVGLIkK;XFfBA##J$q)(b(T42EuQGd5#~{$LpnDkFjmGX z<_Co-d}Huz$X#rdK;fRB?Xt=A@y#mWNjWHD^N+%9C=^WscCLviUGl^32mpl2i*Zf)tQCd#3hclB6 zQPqk83ax~(o^s>Tx|==R^}~&zFOsPF9tOC$dCkMQ;wNMjoAqEc;qGtK`CR@L%sPJjzd@Ny~vJd)wwTsq4&#-}-!G@MJU!t|*{tEEMSA z522sE)wa8VID2*N8i!N<6FADkVn|mM`=NzwVWXl$-u&D@HjLrVj*3#^%y><<}R(8vA z;I!uIlW@!)Gz4F~%g~~pff8(ef;~I8hVylT< zziL#+50&QJ*{fpx5XorKNcOt;#3oFSdgQ@Q39`mJdaAGI#=~3Zc0oxoEL6#&>?@GfqPH=YtVWKaU}+u+P2B0mrluREtCXL5 z_oj(4GtO8&Lnp~cZY#gSwa2E&ZNS8U%WE)dx|Q%)*vZl&_z}+y$n%xDbtW0|X!$)) zOkJv9b5S8;mgoW6h>BspNh3!w)^$M9-~Uhyv$Fu(_$=_Y(*Ep&sh8^EEv@E)wajae zP3hX!)dwC`&-xC0Fy?gCDp0rTjoYOBW^2Hvl|J0vifK7HbI5#?&4G(ZeBNwpQ_rqi zv@8cm4(3SWpPd$$%E*8HDwRx??m=tXIr@6)FX6NWA~wJk-_Fra3QD#WS8eU&N%7D5 zILEn`4HP@HZI6#e0u= z#2~`8eRLA(R4+Af$u3E=!@SFl6FJdmy4f9LwcBm~rt{7HkW}H^7Nju$^^w=2$bktE z>ohDFG&{s6_gz3}VQ4Q0r0d@s$r4VsW*au=rBVN}c2xjRPd;`}VU>Z}p}z39qdb#odS-cW{^1mcz+76!ApMZ=}p(E<0s+MsTrz znaJv$7c=nqV1ZSc>detICit;JGI^{m;tI9C2@XrBy50fPR@GU{N(lctd&t*%G<90Y znDLG=#TyT1%rz@5^G^0is5E`6D=FD8e0q1Ib>JWb?WWLQ7B|Jv)ap7yR;HB)iWEe7 z?f)ovu(SfwK~>ha>CLo2YXKs3H47`>B0Nh87oP7sWO>wTlCV%%C1d{cx)}NUsIdJ0 zXVRS1fT<)9$EhkGJtJI@7mn*xD>%6+Xc9Xm%&mE?k4t0vVbSB}S}PP>TRqaDhvH8@ z9&jO0Yk_RpLB(gsTj=2RivJqr-1kJc`V%!moTQa)fnMq>OkJg>SHp0vMiw3o5kDR^ zD!1AfWw}y(mbjA^9Mj`@Ftuk@_JFsFF0S{^)p@P!!h#IhGP-h02V@(+0_ck4&BvQ_ic)rN8hKRSKijMtN`G&Ez&KU+^Iz*ASn zQ1si>=SOYm*WTQs$8EaGJD=6ff^HG%;=#!TQT*rAr1--!MeK{MI6>j4`o{0!nh>x1 zhcQk01J_s|eA4)tUq6%L`!7^HO8Nf)6-1St0&uBKdwq1%Vmm!*>o*OV6i` z!&EOLRjxa>qD0=XcRx1e=Yi+qy`_6?ESyq;hmv9;^pa~o6Ai!H#Cn z#G_iLY!%pWc_-(DGt!_jYy~UgqN$Hggxn|*7!!Y^NQK-sI;s1rFXTg=l3Vd_ zE1CykMb7>mrlK-RXdh4H(TbBOd~ylL*l5s-xuB)mERAkMmX(XML?tiPP<`|@XiXHE z(+sxFieFA=@w1BWep(Pwm17`1_@GTD;*iBMPN4mWto*j@o=hR~tWmOky4`Y|y?UX8 zU>@ValJz0qdGgW_z=gC3nj1c8gs*=rc(9$dPrdU=0-7J*#%fa5XSz%Kb9`cM1L?mX z>U*w-ErtE($tKRv8eb-lMahZTZJh6X3SYd(Gt(cbU3I>r$yt&G66Gj6PM+q2+Nh*;(-p%;OvE zW3)!q!cDzlf*^+p6a7Ev@L_xF_T{)8EG^cQ5!~%}=`z${SY{cw}~Kb%0jNJgmDg<6}#i){S9J zp~zFI1Qp3>7guA7Te`^}cMYrUPt8r{!w+xHQhR*U(opdgaCxZdAlrYU?P?){%ymjY z!kNRPh+2TqudEb-8M#tv?XBr=fkUWsx~bQ#cl;Pzmis)n+^GP9Nd37~2kYO$|5hfM z!7WE3^#NP$tC*#47AFS-mUeSr4nJ^^w+PuHoJa^Lb!zVPNQ+Wvhui17;= zOfNVa9<m143o2KCd*RNNapZ;6gJeIL*EGBkm-+kDdbz#ja`81R0Pg@OI@FviG zYy;|dk5!aO8ly-a-UkWnAN9)}(YD;oU(|noXnWizd)>@gfb$h!j|))b3H(dN`kyz0 zo5@5Sw7<2>Ih5yYG@aCiovYv!j_W;8gC(ku0nyB(*B(W$YEC;QzsXEhNjPo-nFJ&L zztVd#V~* zb?LfZUT(sqREiuJ;`Pcg|-~R!!>7&0p0wW53 z#QC~cegjEAl7FKoYQdvp3NY}0Ui|U-mjaN)647zl`)L)>ZVb;` zmHH2MV!TVGNXd>1{=gjR33F%vypN>rb4~KksOV_<#EXaG7f5Ky{A$wGA9G z>{mZw@hu@ljnO+3DMb2D;@yqEAD+PRy%Xr~;(z{}+1lIbup()EsHCK1XU9uaJ>JF= zWmf-v&{#rAB=^x`brEmxlr#=&+yiW(^BDZ$d)_B(( z)p|)5lE&Z~rvxI~0B|P1`9QvL&!mQX(*>x&Zkv#Bynp1q{zo8OpB0=z$Q{2Kw53Q7 zUAFUo@139v`X7kOxx`CRL?y2E#h4nPiJ8Z2b5i!@qQl2Co^N&!8v3GJKp|ZAd1tW` z#WEYI!b^}YC|?3+SO%SUz~%?H`}C@kO}y-w5F|R@GI+FRI-sx8nKRuVJf}>Z&qi_u zwk-R&v84Q1zTL|>)A@_IJKZWTxYMA0@lTrJwBlaDL_&YZOLUL*wWmpPnBNX@I>C=W zXBcn=8J{9~MtNlD80I3}c*+x!yIOzczW)N!CMz`mhjO~}r$||T6!GeL zXR#0;f`3}d=DPX0Y2#zN~f zY(YZ_aVh`1SasJH-2liBUS<5RT^s=dJ+W#(cCGqqvF^ry?C}l!9Uapgc0R+K(!-&6`hU9MTSXcJ`xA{NV!++#ed0dB1 zlc?L=V_TK^Pi*oG|4>-8mFc~ueA~>Q3#1Y+oc0xtq2t%NmvIHJ>V_ZD(_94m;7FwW z?Z25VSH-bk0k=*At74z;m;idM4@BJ%jcw28m0Bdve-sNXu}!;xAmjK{jD+OHko=K3 zzA%OZxh0YpebRZ_53`5x zf9^T#_6uf=cZnh9?D1y;q|t~Or(_OVu~G6e@urg^`}d(|ck|wKES{*9#kb!{)d2n$ zoJNp6yt0031waaD$6nfZoIQ2J!(9-c6{E)0?eMJ&QFPJ>&@wa^1M5I%oNN)N7~Ee zV01?X;Lsy~_g^N@oHX~1H*Mt`vhBzgd=6-Wr_RqzPDHFWJq}Gy zl8{U=9+`Ep0oS+FwI|-J)auMWaUy;WvC#=k(j8JV*^8qymVh&n=s^Dg4*Wmc^~h%f zU)#wUP5ffL<5vIw3N3rFUR-YIY zvS`0|Fm9c%`L6%y};LoNzbKze4AFA0srRb3-DGHl$723g;$JZ62CE- zM!Wam(+7nEMHZzOdWvL&`GbG-_tOR{k~@9jI%=pTGloj5k)63n4CIbfUEdy^?0-7| z7*zAu#!|1dy-qKc!c&|-p8;(>gZOQL*m{gu7eFkeZE8fD!1jLQ5Aw(mhlbTtFM5}j zmevF38XNB$85!M<;E_k3`ObY%*|A5uWW&^DcdIQS(r7gv-aR58utt6QWa7j3I_<@w zVqhLXImo3uFK$j$03US{5=rt#V{)A8mjUSMCI(gf;EF%te(@8d)GPKxky+qq+WEs} zm`|uX*;O&n(#|d|O;sj8HkMgtD#`Y_r>ki$v1EtLUEf*_YkoWR^~Fv{e_~?dvpaB~ zs`=%(v5o|YstDt1{6S;9RDDrFfl#i+0ni*K66%a<^xoS!$$b7F)e|7XB?c5EBz|I`G$f<{3_*K@2_XA8%jHvNgIlZ zWpBjMp*wZ$ab2EhbD(1zC@TP)JDTVdA8uT2I3OXZ%{%gTr9${Pai@1QfvX+|rM$5I z2-^GhH^8pBz@93ZJYXK#;_hH|I$bT#+uSUP#v z2r6eRc-&Yv$N&2E>-X>5Mly#Wvb_RiR=iIF;6*QXeVh7awbWYNK<8m>3J5OZV;M`v z9`#Z8T%rrtKFvRZ&tZg!UpD7AFz6O5x|O5v`U)|T0P*0}ax8>*n-}eb0FG{mWd&?5 zu{D!#lOpu>D&u2pGEDapNtAymh3NEd^6?OJp{OkZ1Rg_pM9!6 zq%hha7$C&cpF6a4i?%;NjVD!BaR<2?dU5SSjrO$>Oh&mMt1iUDw>a_7azJGsoEC$q zZhAH4$?jrda`J1YlmC!JCdWJN4{|ykH^>XShuf6nMn^}hs$_)`d+!#4*~)`c%;4X!Y!>K-2U+04rRMIBK0bL;&;r|h;JqNDXIt(kntfL|Dc zdm{oRz2k=X==#}J+lQ1y4pKCuI=OtmC&x18vl;Z}aw;!L#@pmlsfOz8Y+ibb0;X<~ z;M2P=TRi87Smjx$N*-rRGZSBJFYd!J3d+-z!) zLY%bftDvufVCkp4$~~AhstSq0CZi zRN2)HR>XwI;n&K=UCl__pz1vnn*lEz)?8OtH%czV&=}8fp7(wLWD2SJ+rlZ}#ojuH?sSbA|U9^WB$=AkDD9y=e6=J;rk9Ai|hjg5^apYBN#cmfj^EC)A@Hjo{b>H{Jo zZn+gxsYu-PzT2=|anEP<(!oChm7&%=SChkkN?qaL-Uo_UEpt~6e;6WGvt8WWES|TWAju7=e>b}o zAM3JxhXu45kx+C}!U>C^VTygRnWt!-oWk`)XPL~ZJ=f61nb!wksKowrXI@JN6@$BJ zI#yIbw<_OD2QfS9rn`hmKfV1~e2nrPmrRcI^p*ouGPr{;?CfTuEdek|D38Jx_*{-d zhT{&+&JHQ?qEev02e{hlDq8H|1;BBq3aoyDBxSP3A|qc4c`v?{RZ{X>n!&kC7)D;9GsP>y23a>stsy9p{jpcKReYQ5x*d;r(`R1y0jX~TfUW@ zkI$+$-(3pyiyFlCiMMIpzLo`q6)R>Z#5G5F_crvqnzPHas!mn=OcVMjmox3uT_P~5 zgeR5_=kO(`_huQw4m=I|rEP#5@hi}k3v!xUJ?P`w!|o{9ih|SgZIhG8#7B?AM8;R{ zw3xQa6AH@s1OejbBZM*HC1tt%9>3-~WgitkQLEP^+^sr6OQHG}267)|$VDfwN+JiK z+7F~I7&!H=YZ|d?n(K@-gjdI*;{MEAq6|!95hUc$$MH8wS zT^|()zEvmSDeA3Kr-DC#=$DvO-0>q8jCNO=ff=vjTtT;tN8CKDWeKmh*???G^M-Av z8<B5o08yXiFmtabO8rd556Gv$rO~|_ zB{RejU-p`Mc?+RJeW1BU+YIT=Ww*}XV}?Yq9fZ5Si%aqGdWI}KRajiuv4wcg*V6_f z*`#LngJ;d4dxnHUyeaB$1n#Ka`?#|Bu1^cPNcK19VM5vaefU8nH-?pF+2OErNp!gK zUeEaV*f!w~^`JMo*^5krpDRpyDi>E?`?kd@LUyvk9P~H8ePScL`e?3$Pm9-aaZzQ; zM(L@T7peDMr%!zL+=1u-M_@my)%<_}&flo30a#Glgjt%0m4z+hhsk%?9 z))ZQda_)0`Wf=vK7s3^wgY=y+l#$O84_O}NPvp;I(!a#*Q<6BX#UCh#bSJGqgo9n=+SX9j%ccI|=8KaSBxQOQr zWa}}h%o;}p{~@JDzOe6$;P&och#_JbFsS+sSS1DMbp;g_#xLi9*X6L8`r-|?Ik9r; zPq}#d*LNWK+I2moc}uu(c25bbXY>Rv9~?+y{i-^XLgsl4Bqgt0WH_H7Yq>NvZdUF6 zy2xw+2Cp|L&E$JB<&uP`OO0xT}C9Jl*}+3Xw+4LJM$hMa%Yvq0~d<#Ca62v8}qEcDs1^NK$l{w2nk z9EE*X^lOMx4Rv6hedR{CEBcB+$Ikefs8ZgGW8{)o&%dMS!6KuJB~|NPfJ70o<(ycf z0cSu*g)hGu3qB&Z_dz|GA?U7H;0w#=GdtH@`EPPox*zF!nldiyKn23F)=Ug=z~fDey1pm8P$lItA<0 z=|=faZT<+Ns!AUbf66{C0iI2)uY~zBk9mT-Tz4VfM9%k_LE7nUF9sqjDkxK*raIc^ z5h8a<0DoEPGsR1bzTy+A{l13~wUO#woaVBKy;K)pU^3y15$SbFYx(uyxR~h)@`)Km^;m`aQa3x719$fxI!l#1=xY09BPB%Pi|UCvbxz`H*u*G$okzq8t?V(N(*x`h&{=?bJTiLf!$|{>emyz9;&!#1SV)z@#{R1` zAVkl=3oZ};G9aQE<4?}hcQ_{)LRW{9F~Lgk5JuSgegXZerCJmu-N3p^Cpb!w7Ng$bl7IM=~Q@*(v^uad>vTA3~f}e^6 zC*P~QLC_6w<$4D8k|;-UW#Tuxrf->+xJ*VMt&r6mout((1-@cM%9=f6$Gl>X<|vQD zHK{`LxfFp_(Ui82k*4zw@Z^aC^DrbR`6WUp2T_2`{sqs&lFE!%>XPB{eAGLlCXL1W ziKIXrb$#*Ue5&W)#ijnotc@PU588_wRK_mD-+VqB&yp%{+xgf$hd%Aj@SgG)n&j>l z-QL#Kj_#4A-#4STS)Wo01_qvPi}Khpag7kE(U3U-va#b&B>BJ>Z@{%`cP7|jr)J;L zq$<08Qr(;b94~|lRd4<%J4in%5Vm$$bi%+IO+0S7Ad(y+wrVxK`ZLvf?3DVgw;!%p zi+`l?_^9Aol$)p9edc?e`A`@4J3o!aAZl=(aM2W1%ZfQB`OZt#M@?3s0e7)S7$z!}bz-VZv zl#>a_15pEDCnki}Iae@Hkqc~ZUuH#~mMpKCdcNPFF#!K-fC>Lj@DIv+eSkjmcygcm zmh#~*1Dq2l80y|Im{TREN(8D>r-A%~$`!z-d5g;9 z>TVY7vrVud~%g^MOs za4!-vGK!?$jqI}cobAd|j_jOpRE;Wr5>r>wq9e&!os+yH4}DT@OQ5qD@-!A0mJFNH zSVpcZeK!h!v{)dwmY#S(jyro|VCtB96^9e796-b6Df~`V+g%$8Q|%Uj7P_ozO<$*9b2g_66vu_F2WSNKAvz zqWnT?_`ZeCuGiMC#C!oB_+-Aw6*Vq|L)Qr2bt z-1Tx=4+RL+|%;=tihV%Q#C~d^HTm zYmFH^2zjRv8jEuKpxW|TKU}xY2-lj{|LxxD*m6)uQk8x9^YCm}!2_nKs8vx|g?-UR zEv(E<;$7omh-gDE#y4GOueH(XL2fkR?Eu0kGKndYnEL&VK;*)ki+R^P!|9k9`#tl; z=&nzJGwp|XJh=gi)z1t7Ip?JfN8L#}GSKpn`-@r_kru0dNI@~=E1SXBVmb$lO z>`>9_O)IhunS`pn0l!E3QFZREOvxfKWN)_VPQ9G#uHv530n+mFAk~Nt+R!TYe@x|Y z6lT1ggTc@LU_YNke&d}2Tu=Z`qfcF#b&xV}r&?z4*&Oy6o4QpVt^30V5A8lw+G7v> zdos+Gc_IiMO4Tt>rJJLi*DTEi;022iVQDiU{Z}wyK2-L+hi%Wq-NJP($2oV zBYI$z(Y6&v%f5qpTp(BWRM0&t!(gs2jnQs%XY#wIU>{RuwgKX|mFw%?f<`Q$rLlDIXY@3*s=M0QjZ*C@xmPWN`~ z;Dk>sTZmXvG-w_kZZ6441kJUtLH2Z~sv`?5)F>p&3qpjTuKDHtwC@%iL}zS$S;`}& zR6g$rluLRt{4RKgc5qvxUa`ow z|MPHu7HYszKYze}(C)z!KD(^Ae123%*G1PQvuyW3!X;s@HyfjmD%kMQJ3EF2e!hvTL)p@7?QeS#)O57v98O$hGh*|-aPZzNd>EP zYt}k!_Upa`sPjBS&DJ$!rZ$3OzG;4I+}3TGy_PxiHkXqb$BWKQ zxx5g~!n0xmtBjeGON=BjMbG_Y%hyWiyd0UTnE45AeR?B1Rl~?wTz|taKd!brp2ea=)HLxZk@>rRej&{x~^TsTBc%3 zn!o2;W1hQ`>QW!x3YENZYQ~$?z!5aczO+mY5kd z805MP^*hP;>5D;1H)aD#)#7D%jVO$#Mwi^~jbAX(mt4}ruOwg4^+qtjxh`hkGe^HI z9m~Fs^LB6ZGQ_;rrBN-<4*ulw5o?@Sg)LzEe;dYkT=Dnj6C$sB!&-SZnDC-hYLmKD z7N)y!v)$I2A$Grxuyl2%HGd$9!I4oJEfG(96KdyTiaz%#DrnV7O`ipd)uC?h$*=t~ z;xUe4E1XpD5%I%&?3_33VjAejKtiPq`dcI%%2vSJ4egy1xQ__B>%o+nZ)3nT9kky-|Lp5V zoUZm*L$RlLk3vOET>u>~?HJKaYIpU< z*NemZqFveiNCRFQ(nZG9&4)!krEa#4!sT03mci|#|4iNy8%9gGEh5rh)@Ka|LMx}W z!?p#`hH93&=h|V2Ex$pg$A}EXPaS9Fa<=?vK}|R5yqYR(J8ysmS6WV^~b7|bGPq_RR;n~GK)x{E%XW< zkni7|9La0yTo_SLxGUjD6*@lToIW>%J&ZggSZ$)ucitHdYMAgEEAFts9A^5gKy*na;=3HO6Rp@sw^_IM7nxfm;Uqb=P9wG$g|U%B_&P`(h`G}6RL>RwpEGqKS2%rv13!sgSWpU27RepOhr`>J5V zH5c=D#=2xgkiB7zJR4#T!yD@J?@U=Z{7ulPpEBDk85E-|v+MP+N zQdQdVFqo^Y?N|=h53wfteEp{x+G#CZl)iP6e9fBneSC^J8a*>|PoEXa8+Hp<++?V2Lde)!{ci0 z^RGBg%G6Ki&`o}-glBUg=xwl1GaVIOi#fD~%D&BGu9q^onC{&7@^Du=y?NN^g0kOa z5LZtuG@Tu1gnhZ|xt|O#p~$(q=+lyJ?J6+c8ib9tN)V7FO*weA8?U=qO9>^Sj*&z& zlDA&&fgx%jFQxkM{-nH`m|2>AJV&E@;nHjXRXAf~jATrtmSmf05&boSpODi_>BsaB<+0MDwDTCrmMcPO0s(}!=gg1J(OmC zbE+s+#M%je*CsS5?RrJ#&Cgl#yZL!t0t>4-whY64S01Swtv_>lPRTjLTuJEUaScG& zPFKh4X+K@(bh!;#(s4^O?%aIqyuk50;*|H@Q!%=MwMZ2(T~H&vwgi`3JV0%FgizDK zRV*_s_FU~<;wKe^xbJMLKP}c~9JxtV?KN!(91oj+E6nLF$6?7&E;vTx7A>{E7xjjn zN9D}u+!!P5$6Xly%q?HV%y3PE9K(90o#F~p3$%Iceo{tAu8-wj^7S+G+fpRO+LA%u zvv~&99yJ3k1lLKkzU=oNC@yOQ4e0waUEZ4OU<0M31xVKb*HmwcKC7y0z!FzWsYYDf zr#bE%nNyu*mr{6nQWwO}J#Og8J|y!$IF~ z`$V>(nhVQ))fb{oFtgbG9ET0>33h!4U;E_(eF`Q<^icGqP0wZ`Q`SQD=CtI9&)R&r z3t=}uH%oN$0V;|Ic!WI9FF#8a+x(PJbeg!RZ2A3*+5py{BN2i(d7xMs^}V*vqJ!f>7R8YKP&3sTx*jAm`j*FN?1%abk2RGH45Pike|qm(^vyfu5C+ zDxk>hzLJ@2Gtwkg$axS*qa?9}KOlIy(rOpZuzG$V7-#0@RxfyJqPX zO-jH+(Q`t2O|U`ba#J+-ZklUK37VNB9~Y6-Ys975};!xP`=z$c39F0#nPSL0U0rkCi2jJ( zf?+B##t84Hg{vR6W*>QuIU#L@xD@iWNTxb!GlEl3viLJ~&rQB@rOw16OnOE3nSN-*Hh={35jAoo-nY9BD7}XtDHiH{lo#g2d9&A`_#Kkb3%oN#rd* zLHt68clP0%2$_QM?RbEo8R9PCiYHr^X!SHB@zF3}nyisaoi+7nRq4iaq+HecVsdt zHDfmScOGrErJsxrG)&(j9;Ga}NE- zBe_SWoDIZQM>-|*Y%SPo`q)Rn`lDyZT=+9Vn0v+y?T8W4u(L#2+Y+)3S@HXu`cqSq zfo%>&wtP0V(UsPfP-=dQ zl_W)|%|r05xBchb;zowq;Bz8dws#N$Wet)8pHk2C@xiS(TWzau=U)Bg$0PFY-t(Qe z+9uVNH*cjwW+i&XzV~sYu@z`KT%d>C_I16R7T^?)~C zW97mglS^}VMW`6z*600qH#IvLihGOw8g}UFblF0lhsKJix>dLqAzJ&dJxi(z^nYg# zzEM)cCt>=BgL96uE6Q`&L^5sd!u~(SqfO*cvDlQE3rPm~xb&j<0V!u4-kTamWhL&( z#6=W&=UZl$^w_fbL1>&cgYlHVYJ+KPr%tynLS#D`%StZD>mzh9w$yYwazxy>USmEy zouARl&<`s#eycnn!4*{J%CpeEwJ7>nH;32slrO@ zd+U8NgCAQCVl^T8iivgctP|z3|VO&)Wq#p;IXu# zUP392Mmv;tLy87&L(LpjM&}2k(wK6krNlMYs8AGYF*^jz>t+2y&J*ytN&N7$gYJXD zAQiNeylpVRou_=wlwcDFCUS=}I9-V{9uR8|=S=%9rLJ5Nf}~ppf>$IyN3K{H`6PO(;ct{k}yTfj@=T3woxbT z-&V}WUE4iSQlziTj>vE@;htE7r_}o3ji+eG z-B>>uagj{3n_lm*Y|HR#t5k7f))#t{!C>;iU;?j#{Rn3Q7Jx^X-UA-@O_l>|#X4zr z%a#Y)m@GcYQye0RmyDt6&U`Ht&}(tE(p65SIBN($!L!lQ;wtmS!?Dw*p2RngcTmz> z@x0aGS;#m2bHI6KG4i;XU%Rz({ zYOp?L=we&QlaG6ICzO|OS$AzzRZT4jiOh_Td>;rPgz!!NbyD-b7?c8E?k^|Q8^kD$ zF;v4sRcUg);BCpV9%g8f)C{veK92&Qd|U^l0v_w?{CR6-=6(c7i)SC#c0k)q1?Q%P zjZFZ0yz zU%ptix1`zfKJ(=X!fMc$A-J^YjB>fV5ewEL9r&5pL7?-J!*P+h1u~VVA8>;LDC*~gNg9LH2I$-`< zei6tj6(aP6qQ$ILzec6Ld!UhBbts3(FTgEB4ud3m?x(67U3pvkWU4~%%osZwZp~Fj zIl>GL>3wb|a4n<_ea_MG!GOUQUHdCDixzc~AEfa7_hsHUsHiq2ZzKe6E%hn2 z=tD4kt|3lP<~FUJnmJnFfyS+ToS?@12R%7lr8Vuyzy8%EfCsDnCQF3UtmphdKWi>S zpr`^is@=%j)na$8Wn?Eidc<-VBy0BGi)$^LAE?9;d3lsVx1b99e++E=2He{A=!F}L zJuTZDh%1PS&1c>)Eq@*?h%fGd4Re3`qfLL39E$Gfla4H;Qw6=SW3i{kGbiJEK(3U# zv-8r1k=7gUvqvKeJ)p_q*;tj_t^1m@v-6dmk>L?ex(n-L+_5rMsn!U)gm_Td0Fg6A z=P95Dxa4|^|3SZJ2VeJpeXPizMJj;QNE6=2vRR;)ciOpJez`LrkN&^HS>m!>5`-Gi zTH7ROG{RaMVXtk%d0aXyW%`+_quZ$g5)q;D=!L*Rj!n{!Dm9(>#0(`)#Nz!)At8T& zG5fL;9_Ymv#0hPM)wM+G=U$XIMVo;L3kyYkhzd^SEAbLj^|rIq<9!rNTp}#nMKM#f zDf;WHN75PQ-+`3@msII-P@?yR8EQw(GC#OithjTINmlE4OvH43L@Sgg|5GX-xL?d0{9>~kua?$m{31jUD|D*-|!Bf`Ilc{nEe$RHYfAsP|7GWp7*%IsB=gjm#4#> zk{Xp&J?3cENKGbBM=h_nC!&xxr-SbwkMt-O#JFoBi4M-?g!IPdIk@EqD`1isY>G0< zbD2#$5oTY1H$ty~zikb6Ns>5z*)_AZq4D^OEv^{y(->Uw01r0iD-2(M7o_eNmT zeCHVTsNvSMN5MzarBMbdQ#AQx*g;73S}>RJ^6G^iDii3jpE8t?dG=A zSMz(NLbZitRf1E2du$8mzEb@KMzoExhdK+{k2${BS}0=mz?WxlEHYF^4P0xxl3!Kn zNy{{eymJG}%L=^^1c16rd|a;xM816Q#VF!=NYM~?gSFe7iOMLh_l^Y>q|I$_sq=d$ zzU{xip05RxhaNDuXXoFZH0-eo6e!!&$Qt94s(1Nq3u_>MPrKgT!BZBcLBcfI<+5)}v zeLsrO-7i#NO)IN8LH5@XgJ%gA`>-3GSj;y{gs zI!n-h_NNjTM9SkX2uUP#7if>1k!XKa=R#OZP}9j3@=Pvm0>(fSu{E(C9`{29;%(;n zV;p*~l$P|Vwd#sv(C_4l7xxQ2KxqCZ(69Yw)(|!1qKBdN{M_{>YyKpKu$=7E$w>%Bypc!C4iIh$qdVKMzb(`%-hRDlDEYQ=&d;qi&ifwO{Py@nA2|b1! zx22{ufr~r{&2Z3Nco<+0ardcsjIR>$hGCQ7B|0Sj|M3!k%m*ue&uj-h9n|vSw|ZGn z*lVq)K8NTI!Wuf&0i)n2t@M#@J-{H{-UFTQuU|T}4}ug9v1pz@kpG?`UyFGP)Wsc< z2=3LghqCS-#TxjkFPcVGOHxuI?%vAI8HRXYJG-b|*F=CfJM@U!ZfJSXr_>}JQ}iDj zQ@xFfC5%t^q$ca~NftTaTqV25_4DK55<9&K*`eNhjX3GyZp7Lf0lS}K8`;$Ckge^B zpqhGKjq9XZOr$oYr9LToPd`|`J@yY5fz`^k9^w86qep0B_F#8X1Mdq=UGKHl=;(-M zQkArKg`Uq|vHD(LvC$(D9hus86I^kdJnF-}sCJsDnAEDm`3MP7JrE3mtiK-I24sQS zy{hv`H>KY8LVmpSN-NQ(#s6^giDwO=nQ5?mD{eP4hf`p<#MpWz%1Xn{*K>Azy1ZT? zn{&`;D3$-#;n-=H+4*H@S8un;Q(B#mz&>JZMV1^d;MTU%dmijL`~J8vv*|qp8nUz1 zL#DW52gVFsaVB2JB`eE;GDyv5pGMJVuQ$P(=Jc02>rYKEJm1IQ4c@z4#x|W8w55w(zTnoZ?A%v7~-OLGtod|pxf>;mf%#}%(S#vfu zo?DKS+UPS#_uR^St!{j26y2U4h&@o+n4Cf&3=LvEhZUFJSbx5aHAlSj z+P@@e7nj=JW;7rKifM+h7TNv(DZJRdBHh#W**j$5TWD*~=)G*S!*xDT)qhnxv_zkx z`5ijUCuEXhkdij@9;wEea*+ODjL>&BP>bz9u3otO7eT6W5XQPxpt!N0;wEAA(C;2M z(Xlw^{1nPMTGOEF{)mI$gVQ+-{Jzh}K9>*e?@iYehAWk-x0F3OeC8q-*&zor6A%ZT zurbVVBsU`JvQ06QPXA2(sq}k(@l|P@x5Ugk_UrOW@m@C$mi!bA>0yDEg}1S3?&3<@ z8ji9z2c-U|KuOsF-2lEE5KRi~rIV5+RUNEu?~iJxYuhxjGfA>>{bV9|KE@Rzt0Ji< zGcz0~F%3m3?{_yL`-6e*c32$2E&R zZPqAe)9iD#7l=h2fFWDkxgVDrIN{da`=(uuFzm+S5-U68%e|gryiZexgB#`G+@O&y zW+)GF!v!28sTD80> z#`p*#6dQI;!i2(2>P1z?1NPLo7+D5Yi?yRdD%jD_4z*nC$g@(Q4dWyx&r|Q*IGj+O0^A_xEf&z9o%O(|l%B`NkaK(p&Di#1) z&wss{)4CzyjEeKPwGqa5o1GRsE>?6#bB*AVkG5t$*JRqddai24)(9?SFlNW9A6l;do}#z{h8CfWmoT7! z#m7md>vi$~EUyyofGR8yV}~0=95n|a3Le9jo`#4hfw1MDO}RgDV|v`h=eP91&6z$nE3)#e_%xtTZ@nSq-RH<_+R)rT9snN`%O zxiieoPx`;VJxR_7_R)r5TsT=Ru?DpGIaLOGfSXDzux9bEMFLzV27K5ZFv{}YRN}73 zk4Udq$6vd&HaWW-$8fN~pk~1oK1O#TtL4xEUIcHH634#og5g1{Jk|i6EoTFqV$3Z}HIyLC~o$su( z&RX}b`{VvO^TXA&-POBxRqfjQdG_wUN9pW3$zLTb0N!5i>XeVuf};nWDZb@vGm2b` zqN4HlW`Q|KYrL6yn;0j*Tz^wg9?fYYPtL6}+8E$d?&IGPcF|eZpNI{h5K zZ&;Vs&)S|gGQXgDx06%i1LOoL#MCI+f(5AVDdP%!)rfMt5Uunrs7{DkWnECZ*N-O z9yvC5$|?g|I}G>g)BWJqZGZ>1vZJDAv>(hLB8hNkSS^rH<8H$w!lpmI za4$2=NOss|ySlB;miSTsR`1Y8daukZ6Yx2QFPY`rxvof671+svZq1CCj7hyGp%eh& z!o3&2u7gdUsP!;+AW2%_B@wO}`#)9!Vixfy>RM8j_r5`=xAFy=kR0u0n3T8kV-8o( z8Vm!Sg#5eePuKv#Z}YU!mN7g>XD{_5=7nd#>X{=!IsiN-M~VY$0>@u-Rjlf=fWD|a zWolMJ)_iDZ`fM^#aWV56a;I>2K(EijkQ*X6+8Z0y!B<;QX22`_7he3&6$>Jo2|u4L zLsj-!V4&sS9mK!z4jB|B(6ZY_c^gCZ6*k_XeSH;*PUagroTeEiVfDxOzp7~4aWT}b$Xd~WjrYae)sp{z2JRen6mj5d-qQ2?^6GDvTKT4<9mehgri8Jh7@ zGYvsUIkW*ZJ05g;# zdkAO|0Dn$+&;8e;k`8nil@jSJK|4%1Oe`aFPVR; z5z&Q{tA>1Abn%+C1R&2@k8d@*iTm&WGTm{dm0bt97P6eXkUj~2x1wIQh+QLZx#+0b z>w>B;7p)~nD|3+nwuD9odr8eNIR9?Ci^@hdZp%DDWPFCXXWI=&{gV9DJF&PruZTFy z>hcL>)Kp(wE@#JV?g@#AF}sAMSv1Z>or-)L?;!UGpZNOI6uYcr~hMBAE__N{#vo}q17zUgbZ3)YmJ{JV3O`bK}XSuZIK@1}OeoBW!73;MFsDf-~T#@Sa*nffuc zl?84L`Olnv04{mFSqF#QzG>V&;S-kRo!~g^)0Z+b>{&^x>B#b?HmTP0YBip>VFzv2 zI~80mPlxfiJ`3URJ$L!^j>Mx8VsHFmaieqfg^y>)Ug+x#QeoLWx<70^fJD4{Pl}-Is3Wf1CC>H%sA7CLqsb1D1asQdne1I)ciy9D1pw zhf6DzKH5=K8kzT)SRt$0n%}K{<=&B_(YFr~uGf&f1^IGiCDt-|4&z&S?OaG31;bTQ zslR{+mMvHbY=eZq9u%w+%=EA%N1#(X<&8|241Xe`<2~m!%*3OtdIh=CvNkQoGxg(F zbiXg`cx1Bw@s~N_Z=U3ijlBNLn{+D}59`crKTZ_`0a~?GemkShN8^ zL`49)XaXoTz`VU7yoI+~W`91U^CZ+WeL?Op;)B!;Rb*E}>I+S~4KR+~OAAJYI)vI9 z*nQC)54WSsp#l6K6oIX0mk&P1bab=%E*t+&OXdwhm|Y(Bv24Er#q#d^2b2~)Z}M(w5(aS>$h)oLy|vw zBzVi8p^M5(JFmjqRiC=(7~HX8kG9h@7ldEtoiB3my_3|5cO=%zZfCMs0)1ZUWOFCE zuByVG{+b^21GASgG=^ z5V9G3pA)juE91duI$y-;cmRg(Hg@P>=?x$4VIJZ=Uqz1ryb5i&AR=WK zC1vTAqUKMU(AI=4IeE>M0ITJYv#t5)BHM*yZR58~1Ao1U~y8^=-%_>aFwXhCQe`22V0A284n0{zoIFygY+XcJo(SsLF`cNOT*d*BYbOh)-+4bA3XxzgGB0580Cw9INqMBAwSZeB_yy-cz8eznth zx%*epKq*`>biqtragK{sr^N--7n*a^=nQjt!fi_UB}T@cYji7f<5z4@rbFZ^*s+5P-`7Px_W-Dn!bxKhKO%(~$}=EF}1mG{3y{?DH%f2xKPzCO$LfTIZz` z1f_KY;C|BC_#2O1)YW_Nn9DI3$4!%+NQ8u9%;9K)0L?0dA=2>H@f(5&6SONa!R=C#x@b10^A>{fZgE#A3|baZ2&`$Wu`hg~ ziU-NJO-wzoNSRW&916oDGW$k)op+#!m zjjCSaug;GY6WU2|Uh%U0$sfTFoX5$eRt9&|=3FGEDt}av+HlG3O=N}j#6u9i0D1~! zFe%q)2k}sAp!s2uP^I{laIM-ui$YIo<=%s#JRjUbk%}-!@6nPa3#mshW%MZtO6+flGq#6-4;W)c5N@x*Gc;0$viO?HX$tSIs_MM6o35~{h{P~Q z32!ibCmodi#}d)GEXEz{e3+v8Nko>|8Vcunlron7(;IC~R%TI#rn0w;*S6%I>+F() zp(Av77x^v-q0-kyi+uV@wF|bnZ?D(W0ZDjG-ST4iJM+WjfWeW?ALgkb2g9P3(!RK# zb=~kC>OF16$eSWw$&Z8@M@5el*Y#f4JU6Y>O`163zbyWx_s@<;&HMAm=g>?Z2uq3Q zhB26`S$Mc;%}=87&z0W=3(mjIs)?(}Ft5(a`dS?B8Xwf1+262cXvg%dfS;GR`(zy1 z)Zm9lLx|lAT*Bo1D*-%}si}n=`v}y*m=lZ2ylydSTS)l$o1Tq}b_Ry`w_%tg+OXnH zRwYg%@jUU`bD>JXmv+(jMk-O&ET13%`u#($ocm5rMwuL!gRuk zG<%FX84{q9xr_OBa&z1Z-(XHHy)Y2gr;rS@pe5BJLr-i#)nW@xeDD?JJ!k zzc}h2^M7nkxBtYmlVz8Wi_Z6u@|x`DK0V#st_zuWwZ-xM0XBVyG3{2F*Kq7wf8O?Qb;ep!7eXA zBZ?UB>qL9up>KB6pY$0pRr`-K@lKtzM3ee^?`qyHG(S)>vJl|1dkS;F#@FjMpQj2rQj0=jD&u89eQ)nq7PMi$yG}H5<4{^l1F{>r|g-`bIki zDWu(d5-FoM&9l?F#;&1@jOaY8>G!rf6EFyblW3mx6i)|s(48H0ev5M%dY3rm663R& zmVaux7{BqL0je`kBrwd3=;WVnP%4VW%dwi?)@4_#pV6tLc{0LS1Sl+!rh=v4msF{p zRy4K?Be0W02v+aD_@H`?61AvKDmHyNuza-P(o+3sZK?=$V!s@EkoERLW`De8 zDj%GYIx(7O-pOw~40S5lC%r$KYMZJ|->Sbn^Sf^2hPy31dq0e!*Rb`%u zB6hcMG%wv4s~A)8BvVY@BU!_LIW=*NYIyDUMfwJV_2tYa)mNNl@Po>n!0EXBl~zi+ z>vF<}4*E88T$e`n;Q=zwdp6D~ zb*Jft^hW=?kJB@BnXhxm3}@Aam5|~Aj;HmFDjm!SsuZ)*W;D$r-^9>1*Y)hFhMnlj z$7$N!5A2$+0wvts4KS!ksw6Jt!bf}79iq1wbnYm{soo}`955ns=?JHNH#uSc+K zVbU67?yii~76E+}X}?YLTV=9{Ib7E{9jKh;hTCx|#m9-}ik4ps(ziO@B@lcm;puj& zfH^iAtPe}$SS>$O+mMVIeK_?gK-at@iex;v@TkgRbl=1v_#{Nsy7{#+EUVJn*8k5NgD$pL+UQEn?wm$WZoT~ zJ+%kjU)}Qg(sDAy%6F&LMtXdBHU-dSZnw~amaB~x)srv&`&{yfnjhjyi zHRmlNwX7ET?dc3Q5105kwnFpTWo;9u7j?U=rep;y~b)XGUTf1AS8wwYj z6nIyic$UNm{Nc-Y0pPT3SYoByRR#XWx*LdVl7Y*`cPj7o(&nV4c9EnQi=_DG`;o#& zzf}{Rv`kM(moK;lXbS1kcVQ--*HDyJ(Rq)3W1t+)51p+my4`XqhAwId1ctetDBKJz z;VC%@SStxLSgumx9@!YT%(>&>6z46OGn$v);GNss1zE%R2u!B!WA$3Ws$wB z8+F94ov_jU?ZOkmtp1HAX<5a%T`I}lEF0II62b5j(Q%cdk{t@3qu3UY9RhAIBvepP ztL6=jkQx#XeT<}(BY~+G1S@C5?vEpym`~W^Za_?e1zFIc%5kr zkwRq2&cnStQhz1u;tvz5rB{XrO~;ruO)9P(9Y-Om(Y3>eik~l_-cW^7dkV@d>0CVxGMoK+Ak^)QDfhu@u+%Svg1}X zRAXd1YqhucVO4okT}gfa=c?UpX%%!yd3IFBchWf_KD)ANW{(xyGW*36CdJwjVF5ii- z?JK*oolD_@J@$^-pyakx;p7Im1=lA#lhG?DDEdvpwa1ZHbODYx$BdzO@J~XPHAp$`|~#lYW1$ zcaygbe71eljE>$iOi#2u3 z!=1&Gk|;nVTuL%rz7eoxUStST_`%2OC}ywEpx zH9s{VlBG>EOlf8ikRdOgD_;N!UN84&%W`IlZ|K>gEC&W{@I1>DTl$Oahw?wKZCF=& z4*hDbO-uOW%@8T4dI%VB;aEPPfhzBIp9Oxk5@p> znry*;fg%5~YenH@aR2KT+9Ja)ZAN%)A?(3;iBlRtUgc{?DcS-u61tA6PmyaXnLfSblA%6&T=N z(LBQ1z$T)7I7oUtyn}*5DofW5p=8(@N5w`PbpwR0cZ+hP0{RZ*a+UKiO zPy6+BYgfmp7E4rM$SC8R^Y%K5&V$pY;nQzxe1)^$M;?4h*(By*l85SF6lQ!24Jd<8 z1O(K1Ers;yVz`Wb=F^^+RyOZct2{m`8?a5k!?rV7XBTaI=^t%9s>t!E3y_FS zov=bM#_2ro1^Yj)U5fsI$q#v}YQ!gI1X-iwB$mGk$2kYP0rM(p{^sM!^;yiL#Qdp2 zb4j_12~MVqAH1^qz9-+&q_fLL;rW4S zTvGv1>li}jXIRV~lnrSAR^2qBwIc4&?DJ@HdSHs#tP(dEvFaSGq7M2Oc)qHNZX9B2 zrv3M&29}Vh;^G3M@YgDqiOA{<$Y!JI6(CtRAEN42nu!*1D;4ml0 zZC1K(fytws&8&33&m1DnC!NUVsFY`!&c!8axpvv!se(4Db*Yr2Euhz; z`v((qnH$oQ>UTLE>`zVHdn=TqSQ9SM$DoWH->p);+&5z10*qccFK}f+T>}d!4TI1I zV`E5olae_oeQmG`IJMj{RNqvAc+UX0~(BcH{Xz3CT?pVdV6 z5Io#I)VkG*^Y-k)ylMQ{#CR^{hl;#yk5`JWw+w0>)!)4aFX1KAg9ZUYnVcFtFj5xF z4nfVb@9Nod6>PVzPI#y5T-1GWA}%f=5lOlY?{XnB53^2)mXA-*hhsFxJ`C(X;_Ofi zQAj~)s}0ec+1yHEEYc!Vu`*pRveQawf%58!`=q`pGh+BAob;qs^8%nBsbxXRZa4tJ zf)vh?A?n-xxgb^f&_+|rXlgMYLi-GQH@C3m;d~bA)hD>rsPla5tH={ z4kLUWB=jvlltG!HqvZ7|Rr~Arg@_StODQgQ&I*MsaW2o=!^H?5RgnHc_HOw&C6`Ar zhtT#q#8wgc5?gy`ed*6Krfxh7H+edEaVF1H4?0EyYJ3<;y85|R)?1T=FScoA3;A!DE}?s$E& zR%ftAmJM8x+fV|5sDf6mkw3nm2W0{C4?Go2jdMot<+U3iS_ImKIDiQWIcIywS^p~8 zdXp`n2@EPALR@1|EDC>znmnnSj%#QMeiv}a04Bl`Xe+@%;6MMlkKo^nC!S-QeR^9Q zK~^ER+gYIhOawa}ot&IJJ@)``pO%&;WH+4a!~-D!SAyPx_P&r+6y>tZP3B|yUFzE` z4JUVG<-ki-^Fddb>9L46Rwjbb^QjG9scnn3cGw;<126b5(hPIH41ui30@td8W}yxA zPj>PT4l5L2{|Uzp{0+)b`Y4*JIOq8wkX(@Tj7?qw?=T)b7Z}o}a6X?w*M-h?r6dfR z#_9=@2a;34X^_JYa>;?T4?(UVP-g5oS_9}rtT^DZ82fXV1GET_34J%+J>!m*zUDl2jdxJFzSf)U_g#~^GM)8iE zB$n=TL6bty?@ao=9D$`*QglGhDt00T-P#H}=(=x3RF*J^O-#i01mpqlpEqV2{%;)j zUnR@{y9|cLf1{4<#cnJuE4DUP-5J(A9>R14&0=jzb4?=&~*^Mq#?9K!71%1K} zBiOW%4s95v`Jp?Y3EschIp~@6|HCj;=wM6RBb*{u;+C>}#vk`|iu;Ja?|gMiS9Hs_ zt#3eT9*oVD$H0M@qWYeoNTBjgC0S&YBSv}6aHoj{_pbJ-Azx~LPA+tRIh4E};%B43+NDjfRb0+2gJ0heOfv`5+7o$_)hJk3^=ry3 z6+Fw!sYJ~^5JzMNHX!2x2#^fncFk`@=A+1h{q9_8sWMj;hetPNy{Bz@z(>NgMt-Mz zxDBXb5@PmAJbw47(UGQV(CLOND2lAl1svcW>-czY*i;0|Pb*FJsY=)c(omnRVS9Sz z!A>Q?K8oC2i%xg&1V!#76(v1}_MLt;_KD?3Li5Qf^)FaiCjX4nk02A;J<_zG=}*be zyYq;7E(X|4$l!o~n@)%Du3l&ietwfbmsrKi$yvRwO0>o%r=~I3+sPToG`5EfI#a8R4BnVb9aaN-Y#!i~tdvc)L0LJzE{!jUW`2K@3CYSar(h@#q@)CjNW&=m9l)I; zm`!MJ+cXM-5)Z6yj!@)apvnW&C^lxXf2U}ao6v3+Q_aD$PIM?F+^|pZyPI+^hClL1 zF_jE^`W;_5ee8LwN{s$K-==aJJry+PgYsP(ZoCYdU4%cNS0kdunEf z1oC{h9cyo}zrTwFd-&sgF=CG(AUhgsA;2%_d^w&U{yMi^=ZEJD^8D!2xnVs&{Ikr@ z56?~O`O*J23Jl!&?|*gr|6xj{=-EoAr{nw`g75R&2cV#Bq4PR$aQ^&yHT6~|CcsBN k{``Wv*VgPybdS$21Z#0czyByehCQz=uO?S??@`Eq09vVjSO5S3 diff --git a/assets/icons/reliable-web-app-dotnet.svg b/assets/icons/reliable-web-app-dotnet.svg new file mode 100644 index 00000000..50225354 --- /dev/null +++ b/assets/icons/reliable-web-app-dotnet.svg @@ -0,0 +1,2069 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rwa 1.1 + + + + + + Sheet.2403 + + + + Rectangle.2285 + + + + + + + Sheet.1605 + + + + Sheet.1604 + + + + Sheet.1472 + + + + Key Vaults.1162 + Key Vault + + + + + Sheet.1116 + + Sheet.1117 + + + + + + + Sheet.1118 + + + + + + + Sheet.1119 + + + + + + + Sheet.1120 + + + + + + + Sheet.1121 + + + + + + + Sheet.1122 + + + + + + + + + + Key Vault + + + Azure Integration.1173 + + Sheet.1127 + + + + ba7b3762-4752-4c4a-8a7e-af4c5e3 + + + + bff6fc37-370d-4b52-9427-43a5a53 + + + + Sheet.1130 + + + + + SQL Database.1128 + SQL Database + + Sheet.1385 + + + + + + + Sheet.1386 + + + + + + + Sheet.1387 + + + + + + + Sheet.1388 + + + + + + + Sheet.1389 + + + + + + + + + SQL Database + + + Cache Redis.1180 + Azure Cache for Redis + + Sheet.1391 + + + + + + + Sheet.1392 + + + + + + + Sheet.1393 + + + + + + + Sheet.1394 + + + + + + + Sheet.1395 + + + + + + + Sheet.1396 + + + + + + + Sheet.1397 + + + + + + + Sheet.1398 + + + + + + + Sheet.1399 + + + + + + + Sheet.1400 + + + + + + + Sheet.1401 + + + + + + + + Sheet.1402 + + + + + + + + + Azure Cache for Redis + + + Sheet.1483 + + + + DNS Zones.1518 + Private DNS Zones + + + + + Sheet.1519 + + Sheet.1520 + + + + + + + Sheet.1521 + + + + + + + Sheet.1522 + + + + + + + + + + Private DNS Zones + + + Sheet.1575 + + Sheet.1576 + + + + Sheet.1577 + + + + Sheet.1578 + + + + Sheet.1579 + + + + Sheet.1580 + + + + Sheet.1581 + + + + Sheet.1582 + + + + Sheet.1583 + + + + Sheet.1584 + + + + Sheet.1585 + + + + Sheet.1586 + + + + Sheet.1587 + + + + + Sheet.1588 + + Sheet.1589 + + + + Sheet.1590 + + + + Sheet.1591 + + + + Sheet.1592 + + + + Sheet.1593 + + + + + Sheet.1594 + Azure Bastion subnet + + + + Azure Bastion subnet + + Sheet.1595 + Azure Firewall subnet + + + + Azure Firewallsubnet + + Sheet.1548 + Hub virtual network + + + + Hub virtual network + + Sheet.1596 + + Sheet.1597 + + + + Sheet.1598 + + + + Sheet.1599 + + + + Sheet.1600 + + + + Sheet.1601 + + + + Sheet.1602 + + + + Sheet.1603 + + + + + Sheet.1606 + + + + Sheet.1607 + Spoke virtual network 1 + + + + Spoke virtual network 1 + + Sheet.1608 + + Sheet.1609 + + + + Sheet.1610 + + + + Sheet.1611 + + + + Sheet.1612 + + + + Sheet.1613 + + + + Sheet.1614 + + + + Sheet.1615 + + + + + Sheet.1618 + + + + Sheet.1619 + Frontend app integration subnet + + + + Frontend app integration subnet + + Sheet.1620 + + + + Sheet.1621 + Backend app integration subnet + + + + Backend app integration subnet + + Icon-web-41.1811 + + ee75dd06-1aca-4f76-9d11-d05a284 + + + + Sheet.1624 + + + + Sheet.1625 + + + + Sheet.1626 + + + + Sheet.1627 + + + + Sheet.1628 + + + + Sheet.1629 + + + + Sheet.1630 + + + + Sheet.1631 + + + + Sheet.1632 + + + + Sheet.1633 + + + + Sheet.1634 + + + + Sheet.1635 + + + + + Sheet.1636 + App Service web app (frontend) + + + + App Service web app(frontend) + + Icon-web-41.1637 + + ee75dd06-1aca-4f76-9d11-d05a284 + + + + Sheet.1639 + + + + Sheet.1640 + + + + Sheet.1641 + + + + Sheet.1642 + + + + Sheet.1643 + + + + Sheet.1644 + + + + Sheet.1645 + + + + Sheet.1646 + + + + Sheet.1647 + + + + Sheet.1648 + + + + Sheet.1649 + + + + Sheet.1650 + + + + + Sheet.1651 + App Service web app (backend) + + + + App Service web app(backend) + + Azure Active Directory.1656 + Entra ID + + Sheet.1657 + + + + + + + Sheet.1658 + + + + + + + Sheet.1659 + + + + + + + Sheet.1660 + + + + + + + Sheet.1661 + + + + + + + Sheet.1662 + + + + + + + Sheet.1663 + + + + + + + + + Entra ID + + + Sheet.1664 + + + + Sheet.1665 + + + + Sheet.1666 + + Icon-networking-64.1581 + + f57e105d-6d2d-4ad7-b8c3-c10684c + + + + Sheet.1669 + + + + Sheet.1670 + + + + Sheet.1671 + + + + Sheet.1672 + + + + + Sheet.1673 + DNS + + + + DNS + + + Sheet.1674 + + + + Sheet.1675 + + Sheet.1676 + + Sheet.1677 + + + + Sheet.1678 + + + + Sheet.1679 + + + + Sheet.1680 + + + + Sheet.1681 + + + + Sheet.1682 + + + + Sheet.1683 + + + + Sheet.1684 + + + + Sheet.1685 + + + + Sheet.1686 + + + + Sheet.1687 + + + + Sheet.1688 + + + + + Sheet.1689 + Web Application Firewall + + + + Web Application Firewall + + + Sheet.1690 + + + + Front Doors.1117 + Front Door + + Sheet.1692 + + + + + + + Sheet.1693 + + + + + + + Sheet.1694 + + + + + + + + + Front Door + + + Sheet.1701 + + + + Sheet.1702 + Frontend app private endpoint subnet + + + + Frontend app private endpoint subnet + + Sheet.1703 + + + + Sheet.1704 + Backend app private endpoint subnet + + + + Backend app private endpoint subnet + + Sheet.1705 + + + + Sheet.1706 + Other private endpoint subnet + + + + Other private endpoint subnet + + Sheet.1725 + + + + Sheet.1726 + DevOps subnet + + + + DevOps subnet + + Sheet.1828 + Primary region + + + + Primary region + + Sheet.1933 + + + + Sheet.1936 + + + + Sheet.2005 + + + + Sheet.2006 + Spoke virtual network 2 + + + + Spoke virtual network 2 + + Sheet.2007 + + Sheet.2008 + + + + Sheet.2009 + + + + Sheet.2010 + + + + Sheet.2011 + + + + Sheet.2012 + + + + Sheet.2013 + + + + Sheet.2014 + + + + + Sheet.2015 + + + + Sheet.2016 + Frontend app integration subnet + + + + Frontend app integration subnet + + Sheet.2017 + + + + Sheet.2018 + Backend app integration subnet + + + + Backend app integration subnet + + Sheet.2033 + App Service web app (frontend) + + + + App Service web app(frontend) + + Sheet.2048 + App Service web app (backend) + + + + App Service web app(backend) + + Sheet.2049 + + + + Sheet.2050 + Frontend app private endpoint subnet + + + + Frontend app private endpoint subnet + + Sheet.2051 + + + + Sheet.2052 + Backend app private endpoint subnet + + + + Backend app private endpoint subnet + + Sheet.2053 + + + + Sheet.2054 + Other private endpoints subnet + + + + Other private endpoints subnet + + Sheet.2073 + + + + Sheet.2074 + DevOps subnet + + + + DevOps subnet + + Sheet.2075 + + + + Sheet.2076 + + + + Sheet.2077 + Secondary Region + + + + Secondary Region + + Sheet.2182 + + + + Sheet.2183 + + + + Sheet.2189 + + Sheet.2190 + + + + + Sheet.2191 + Browser + + + + Browser + + Sheet.2193 + + + + Sheet.2277 + + Icon-manage-307 + + Sheet.2279 + + + + Sheet.2280 + + + + Sheet.2281 + + + + Sheet.2282 + + + + Sheet.2283 + + + + + Sheet.2284 + Log Analytics workspace + + + + Log Analyticsworkspace + + + Sheet.2286 + Azure App Configuration + + + + Azure App Configuration + + Sheet.2289 + Private endpoint connected services + + + + Private endpoint connected services + + Sheet.2324 + + Sheet.2231 + Azure Storage + + + + Azure Storage + + Icon-storage-86.2232 + + Sheet.2233 + + + + Sheet.2234 + + + + Sheet.2235 + + + + Sheet.2236 + + + + Sheet.2237 + + + + + + Rectangle.2325 + + + + + + + Azure Integration.2326 + + Sheet.2327 + + + + ba7b3762-4752-4c4a-8a7e-af4c5e3 + + + + bff6fc37-370d-4b52-9427-43a5a53 + + + + Sheet.2330 + + + + + SQL Database.2331 + SQL Database + + Sheet.2332 + + + + + + + Sheet.2333 + + + + + + + Sheet.2334 + + + + + + + Sheet.2335 + + + + + + + Sheet.2336 + + + + + + + + + SQL Database + + + Cache Redis.2337 + Azure Cache for Redis + + Sheet.2338 + + + + + + + Sheet.2339 + + + + + + + Sheet.2340 + + + + + + + Sheet.2341 + + + + + + + Sheet.2342 + + + + + + + Sheet.2343 + + + + + + + Sheet.2344 + + + + + + + Sheet.2345 + + + + + + + Sheet.2346 + + + + + + + Sheet.2347 + + + + + + + Sheet.2348 + + + + + + + + Sheet.2349 + + + + + + + + + Azure Cache for Redis + + + Sheet.2350 + Azure App Configuration + + + + Azure App Configuration + + Sheet.2351 + Private endpoint connected services + + + + Private endpoint connected services + + Sheet.2352 + + Sheet.2353 + Azure Storage + + + + Azure Storage + + Icon-storage-86.2232 + + Sheet.2355 + + + + Sheet.2356 + + + + Sheet.2357 + + + + Sheet.2358 + + + + Sheet.2359 + + + + + + Sheet.2360 + + + + Sheet.2361 + + + + Sheet.2363 + + + + Icon-web-41.2364 + + ee75dd06-1aca-4f76-9d11-d05a284 + + + + Sheet.2366 + + + + Sheet.2367 + + + + Sheet.2368 + + + + Sheet.2369 + + + + Sheet.2370 + + + + Sheet.2371 + + + + Sheet.2372 + + + + Sheet.2373 + + + + Sheet.2374 + + + + Sheet.2375 + + + + Sheet.2376 + + + + Sheet.2377 + + + + + Icon-web-41.2378 + + ee75dd06-1aca-4f76-9d11-d05a284 + + + + Sheet.2380 + + + + Sheet.2381 + + + + Sheet.2382 + + + + Sheet.2383 + + + + Sheet.2384 + + + + Sheet.2385 + + + + Sheet.2386 + + + + Sheet.2387 + + + + Sheet.2388 + + + + Sheet.2389 + + + + Sheet.2390 + + + + Sheet.2391 + + + + + Sheet.2392 + peered + + + + peered + + Sheet.2393 + peered + + + + peered + + Sheet.2394 + + + + Sheet.2395 + + + + Sheet.2400 + + Sheet.2398 + + + + Sheet.2399 + Key Vault private endpoint subnet + + + + Key Vault private endpoint subnet + + + Sheet.2401 + + + + Sheet.2402 + + Icon-manage-310 + + Sheet.2199 + + + + Sheet.2200 + + + + Sheet.2201 + + + + Sheet.2202 + + + + Sheet.2203 + + + + + Sheet.2287 + Application Insights + + + + Application Insights + + + diff --git a/assets/icons/reliable-web-app-vnet.svg b/assets/icons/reliable-web-app-vnet.svg new file mode 100644 index 00000000..c53eaccb --- /dev/null +++ b/assets/icons/reliable-web-app-vnet.svg @@ -0,0 +1,3645 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Page-1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Plain + + + + + + + + + + + + + + + + + + + + + + + + + Sheet.1071 + + Sheet.1072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sheet.1073 + + Sheet.1074 + + + + + + + + + + + + + + + + + + + + + + + + Sheet.438 + Firewall Subnet + + + + Firewall Subnet + + Sheet.439 + + Sheet.440 + + + + Firewalls.1037 + + Sheet.442 + + + + + + + Sheet.443 + + + + + + + Sheet.444 + + + + + + + Sheet.445 + + + + + + + Sheet.446 + + + + + + + Sheet.447 + + + + + + + Sheet.448 + + + + + + + Sheet.449 + + + + + + + Sheet.450 + + + + + + + + Sheet.451 + Azure Firewall + + + + Azure Firewall + + + Sheet.452 + App Service Plan + + + + App Service Plan + + Sheet.453 + Private Link Subnet + + + + Private Link Subnet + + Sheet.462 + + + + Sheet.463 + Bastion Subnet + + + + Bastion Subnet + + Sheet.464 + + + + + + + + + + + + + + + + Bastion.1231 + + Sheet.466 + + Sheet.467 + + + + + + Sheet.468 + Azure Bastion + + + + Azure Bastion + + Sheet.469 + + + + Sheet.470 + + Hexagon.1060 + + + + + + + Virtual Networks.1052 + + Sheet.473 + + + + + + + Sheet.474 + + + + + + + Sheet.475 + + + + + + + Sheet.476 + + + + + + + Sheet.477 + + + + + + + Sheet.478 + + + + + + + Sheet.479 + + + + + + + + + Sheet.480 + + + + Sheet.481 + SPOKE PRIMARY + + + + SPOKE PRIMARY + + Sheet.482 + HUB + + + + HUB + + Tops or bottoms.1860 + Peering + + + + + + + + + + + Peering + + Front Doors + Azure Front Door with WAF + + Sheet.498 + + + + + + + Sheet.499 + + + + + + + Sheet.500 + + + + + + + + + Azure Front Door with WAF + + + Azure Active Directory.1174 + Microsoft Entra ID + + Sheet.502 + + + + + + + Sheet.503 + + + + + + + Sheet.504 + + + + + + + Sheet.505 + + + + + + + Sheet.506 + + + + + + + Sheet.507 + + + + + + + Sheet.508 + + + + + + + + + MicrosoftEntra ID + + + DNS Zones.1182 + Azure DNS + + + + + Sheet.510 + + Sheet.511 + + + + + + + Sheet.512 + + + + + + + Sheet.513 + + + + + + + + + + Azure DNS + + + Browser.1192 + Browser + + Sheet.515 + + + + + + + Sheet.516 + + + + + + + Sheet.517 + + + + + + + + + Browser + + + Dynamic connector.1196 + + + + Dynamic connector.1197 + + + + Dynamic connector.1198 + + + + Cache Redis + Azure Cache For Redis + + Sheet.522 + + + + + + + Sheet.523 + + + + + + + Sheet.524 + + + + + + + Sheet.525 + + + + + + + Sheet.526 + + + + + + + Sheet.527 + + + + + + + Sheet.528 + + + + + + + Sheet.529 + + + + + + + Sheet.530 + + + + + + + Sheet.531 + + + + + + + Sheet.532 + + + + + + + + Sheet.533 + + + + + + + + + Azure Cache For Redis + + + Sheet.534 + + + + App Service Plans + + Sheet.536 + + + + + + + Sheet.537 + + + + + + + Sheet.538 + + + + + + + Sheet.539 + + + + + + + Sheet.540 + + + + + + + Sheet.541 + + + + + + + + App Services.97 + Front end App Service + + + + + Sheet.543 + + Sheet.544 + + + + + + + Sheet.545 + + + + + + + Sheet.546 + + + + + + + Sheet.547 + + + + + + + Sheet.548 + + + + + + + Sheet.549 + + + + + + + Sheet.550 + + + + + + + Sheet.551 + + + + + + + Sheet.552 + + + + + + + Sheet.553 + + + + + + + Sheet.554 + + + + + + + + + + Front endApp Service + + + Dynamic connector.2142 + + + + + + + Monitor.2148 + + Sheet.570 + + + + + + + Sheet.571 + + + + + + + Sheet.572 + + + + + + + Sheet.573 + + + + + + + Sheet.574 + + + + + + + Sheet.575 + + + + + + + Sheet.576 + + + + + + + + Application Insights + Application Insights + + Sheet.580 + + + + + + + Sheet.581 + + + + + + + Sheet.582 + + + + + + + Sheet.583 + + + + + + + + + Application Insights + + + Dynamic connector.2178 + + + + + + + Arrow (Straight).2202 + + + + + + + Sheet.597 + + Sheet.598 + + + + Sheet.599 + + + + Sheet.600 + + + + Sheet.601 + + + + Sheet.602 + + + + Sheet.603 + + + + Sheet.604 + + + + Sheet.605 + + e189a61f-631a-4122-bb2b-079e860 + + + + fb7033ee-4650-4886-80c7-eddf625 + + + + b166b8c2-b9ee-4c3d-bf7a-77bd5ce + + + + baf437fe-3483-4a25-94ba-1e84a64 + + + + + + Sheet.640 + + Sheet.641 + + + + Sheet.642 + + + + Sheet.643 + + + + Sheet.644 + + + + Sheet.645 + + + + Sheet.646 + + + + Sheet.647 + + + + Sheet.648 + + + + Sheet.649 + + + + + Dynamic connector.2323 + + + + + + + Dynamic connector.2324 + + + + + + + Sheet.664 + Frontend Ingress Subnet + + + + Frontend Ingress Subnet + + Sheet.665 + + + + Sheet.666 + Private Endpoint + + + + Private Endpoint + + Private Link.1283 + Private Endpoint + + Sheet.668 + + + + + + + Sheet.669 + + + + + + + Sheet.670 + + + + + + + Sheet.671 + + + + + + + Sheet.672 + + + + + + + Sheet.673 + + + + + + + Sheet.674 + + + + + + + Sheet.675 + + + + + + + + + Private Endpoint + + + Sheet.676 + + Sheet.677 + Frontend App Service Integration Subnet “Route All” enabled + + + + Frontend App Service Integration SubnetRoute Allenabled + + Icon-networking-82.2156 + + Sheet.679 + + + + Sheet.680 + + + + Sheet.681 + + + + Sheet.682 + + + + + + Sheet.690 + Log Analytics Workspace + + + + Log AnalyticsWorkspace + + Sheet.691 + Application Insights + + + + Application Insights + + Sheet.692 + Azure Monitor + + + + Azure Monitor + + Dynamic connector.2353 + + + + + + + Dynamic connector.2354 + + + + + + + Dynamic connector.2355 + + + + + + + Sheet.729 + Default route (0.0.0.0/0) + + + + Default route(0.0.0.0/0) + + Azure Active Directory.2341 + Microsoft Entra ID + + Sheet.731 + + + + + + + Sheet.732 + + + + + + + Sheet.733 + + + + + + + Sheet.734 + + + + + + + Sheet.735 + + + + + + + Sheet.736 + + + + + + + Sheet.737 + + + + + + + + + MicrosoftEntra ID + + + Dynamic connector.2349 + + + + + + + Sheet.739 + + Sheet.740 + + Sheet.741 + + Sheet.742 + + + + Sheet.743 + + + + Sheet.744 + + + + + Sheet.745 + + + + + + Sheet.747 + + Arrow (Straight).1850 + + + + + + + Sheet.749 + Private Endpoint + + + + Private Endpoint + + Private Link.2169 + Private Endpoint + + Sheet.751 + + + + + + + Sheet.752 + + + + + + + Sheet.753 + + + + + + + Sheet.754 + + + + + + + Sheet.755 + + + + + + + Sheet.756 + + + + + + + Sheet.757 + + + + + + + Sheet.758 + + + + + + + + + Private Endpoint + + + + Sheet.759 + + Arrow (Straight).1850 + + + + + + + Sheet.761 + Private Endpoint + + + + Private Endpoint + + Private Link.2169 + Private Endpoint + + Sheet.763 + + + + + + + Sheet.764 + + + + + + + Sheet.765 + + + + + + + Sheet.766 + + + + + + + Sheet.767 + + + + + + + Sheet.768 + + + + + + + Sheet.769 + + + + + + + Sheet.770 + + + + + + + + + Private Endpoint + + + + Sheet.771 + + Arrow (Straight).1850 + + + + + + + Sheet.773 + Private Endpoint + + + + Private Endpoint + + Private Link.2169 + Private Endpoint + + Sheet.775 + + + + + + + Sheet.776 + + + + + + + Sheet.777 + + + + + + + Sheet.778 + + + + + + + Sheet.779 + + + + + + + Sheet.780 + + + + + + + Sheet.781 + + + + + + + Sheet.782 + + + + + + + + + Private Endpoint + + + + SQL Database + SQL Database + + Sheet.784 + + + + + + + Sheet.785 + + + + + + + Sheet.786 + + + + + + + Sheet.787 + + + + + + + Sheet.788 + + + + + + + + + SQL Database + + + Sheet.805 + + Sheet.806 + DevOps Subnet + + + + DevOps Subnet + + Sheet.807 + + + + + Virtual Machine + + Sheet.809 + + + + + + + Sheet.810 + + + + + + + Sheet.811 + + + + + + + Sheet.812 + + + + + + + Sheet.813 + + + + + + + Sheet.814 + + + + + + + Sheet.815 + + + + + + + + Azure DevOps + Jump box + + Sheet.817 + + + + + + + + + Jump box + + + Sheet.829 + + + Sheet.830 + + Sheet.831 + + + + Sheet.832 + + + + Sheet.833 + + + + Sheet.834 + + + + Sheet.835 + + + + Sheet.836 + + + + Sheet.837 + + + + Sheet.838 + + + + Sheet.839 + + + + Sheet.840 + + + + + Sheet.841 + Public Internet + + + + Public Internet + + Sheet.842 + + Hexagon.1060 + + + + + + + Virtual Networks.1052 + + Sheet.845 + + + + + + + Sheet.846 + + + + + + + Sheet.847 + + + + + + + Sheet.848 + + + + + + + Sheet.849 + + + + + + + Sheet.850 + + + + + + + Sheet.851 + + + + + + + + + Sheet.852 + Blocked + + + + Blocked + + Sheet.863 + Azure Private DNS Zones + + + + Azure Private DNS Zones + + Sheet.864 + App Service Plan + + + + App Service Plan + + Sheet.865 + + + + App Service Plans.866 + + Sheet.867 + + + + + + + Sheet.868 + + + + + + + Sheet.869 + + + + + + + Sheet.870 + + + + + + + Sheet.871 + + + + + + + Sheet.872 + + + + + + + + App Services.873 + Backend end App Service + + + + + Sheet.874 + + Sheet.875 + + + + + + + Sheet.876 + + + + + + + Sheet.877 + + + + + + + Sheet.878 + + + + + + + Sheet.879 + + + + + + + Sheet.880 + + + + + + + Sheet.881 + + + + + + + Sheet.882 + + + + + + + Sheet.883 + + + + + + + Sheet.884 + + + + + + + Sheet.885 + + + + + + + + + + Backend endApp Service + + + Sheet.577 + UDR + + + + UDR + + Sheet.923 + Backend Ingress Subnet + + + + Backend Ingress Subnet + + Sheet.924 + + + + Sheet.925 + Private Endpoint + + + + Private Endpoint + + Private Link.926 + Private Endpoint + + Sheet.927 + + + + + + + Sheet.928 + + + + + + + Sheet.929 + + + + + + + Sheet.930 + + + + + + + Sheet.931 + + + + + + + Sheet.932 + + + + + + + Sheet.933 + + + + + + + Sheet.934 + + + + + + + + + Private Endpoint + + + Sheet.935 + + Sheet.936 + Backend App Service Integration Subnet “Route All” enabled + + + + Backend App Service Integration SubnetRoute Allenabled + + Icon-networking-82.2156 + + Sheet.938 + + + + Sheet.939 + + + + Sheet.940 + + + + Sheet.941 + + + + + + Sheet.942 + Default route (0.0.0.0/0) + + + + Default route(0.0.0.0/0) + + Sheet.943 + UDR + + + + UDR + + Dynamic connector.944 + + + + + + + Dynamic connector + + + + + + + Dynamic connector.947 + + + + + + + Sheet.948 + + + Sheet.960 + Public Internet + + + + Public Internet + + Sheet.961 + Blocked + + + + Blocked + + Arrow (Straight).962 + + + + + + + Sheet.949 + + Sheet.950 + + + + Sheet.951 + + + + Sheet.952 + + + + Sheet.953 + + + + Sheet.954 + + + + Sheet.955 + + + + Sheet.956 + + + + Sheet.957 + + + + Sheet.958 + + + + Sheet.959 + + + + + + + + App Configuration + App Configuration + + Sheet.964 + + + + ba7b3762-4752-4c4a-8a7e-af4c5e3 + + + + bff6fc37-370d-4b52-9427-43a5a53 + + + + Sheet.967 + + + + + + App Configuration + + + Sheet.968 + + Arrow (Straight).1850 + + + + + + + Sheet.970 + Private Endpoint + + + + Private Endpoint + + Private Link.2169 + Private Endpoint + + Sheet.972 + + + + + + + Sheet.973 + + + + + + + Sheet.974 + + + + + + + Sheet.975 + + + + + + + Sheet.976 + + + + + + + Sheet.977 + + + + + + + Sheet.978 + + + + + + + Sheet.979 + + + + + + + + + Private Endpoint + + + + Sheet.992 + + Sheet.621 + + Sheet.622 + + + + Sheet.623 + + + + Sheet.624 + + + + + Sheet.625 + + + + Sheet.626 + + + + Sheet.627 + + + + Sheet.628 + + + + Sheet.629 + + + + ef0d1b54-a1e7-4cb9-a4e5-8a8518e + + + + Sheet.631 + + + + Sheet.632 + + + + Sheet.633 + + + + Sheet.634 + + + + Sheet.635 + + + + Sheet.636 + + + + Sheet.637 + + + + b9f25eb4-4c88-45c2-bc4d-f992757 + + + + eb9200a7-4693-4427-bdae-b33ce90 + + + + + Sheet.696 + Azure Storage + + + + Azure Storage + + + Key Vaults.1000 + Shared Key Vault In HUB RG + + + + + Sheet.1001 + + Sheet.1002 + + + + + + + Sheet.1003 + + + + + + + Sheet.1004 + + + + + + + Sheet.1005 + + + + + + + Sheet.1006 + + + + + + + Sheet.1007 + + + + + + + + + + Shared Key VaultIn HUB RG + + + Sheet.1008 + + + + Sheet.1009 + SPOKE Secondary + + + + SPOKESecondary + + Sheet.1010 + + Hexagon.1060 + + + + + + + Virtual Networks.1052 + + Sheet.1013 + + + + + + + Sheet.1014 + + + + + + + Sheet.1015 + + + + + + + Sheet.1016 + + + + + + + Sheet.1017 + + + + + + + Sheet.1018 + + + + + + + Sheet.1019 + + + + + + + + + Rectangle.1020 + Repeat of SPOKE PRIMARY + + + + + + + Repeat ofSPOKE PRIMARY + + Sheet.1034 + + + + Private Link.1035 + FrontDoor Private Endpoint + + Sheet.1036 + + + + + + + Sheet.1037 + + + + + + + Sheet.1038 + + + + + + + Sheet.1039 + + + + + + + Sheet.1040 + + + + + + + Sheet.1041 + + + + + + + Sheet.1042 + + + + + + + Sheet.1043 + + + + + + + + + FrontDoor Private Endpoint + + + Sheet.1044 + + + + Private Link.1045 + FrontDoor Private Endpoint + + Sheet.1046 + + + + + + + Sheet.1047 + + + + + + + Sheet.1048 + + + + + + + Sheet.1049 + + + + + + + Sheet.1050 + + + + + + + Sheet.1051 + + + + + + + Sheet.1052 + + + + + + + Sheet.1053 + + + + + + + + + FrontDoor Private Endpoint + + + Sheet.1054 + + Firewalls.2192 + + Sheet.586 + + + + + + + Sheet.587 + + + + + + + Sheet.588 + + + + + + + Sheet.589 + + + + + + + Sheet.590 + + + + + + + Sheet.591 + + + + + + + Sheet.592 + + + + + + + Sheet.593 + + + + + + + Sheet.594 + + + + + + + + Sheet.596 + App Service Access Restrictions + + + + App Service Access Restrictions + + + Sheet.1055 + + Firewalls.2192 + + Sheet.1057 + + + + + + + Sheet.1058 + + + + + + + Sheet.1059 + + + + + + + Sheet.1060 + + + + + + + Sheet.1061 + + + + + + + Sheet.1062 + + + + + + + Sheet.1063 + + + + + + + Sheet.1064 + + + + + + + Sheet.1065 + + + + + + + + Sheet.1066 + App Service Access Restrictions + + + + App Service Access Restrictions + + + Dynamic connector.1067 + + + + + + + Tops or bottoms.1068 + Peering + + + + + + + + + + + Peering + + Dynamic connector.1069 + + + + + + + diff --git a/assets/Guide/Azd-Env-New.png b/assets/images/Azd-Env-New.png similarity index 100% rename from assets/Guide/Azd-Env-New.png rename to assets/images/Azd-Env-New.png diff --git a/assets/AzdoSetup/1CreateAPipeline.png b/assets/images/AzdoSetup/1CreateAPipeline.png similarity index 100% rename from assets/AzdoSetup/1CreateAPipeline.png rename to assets/images/AzdoSetup/1CreateAPipeline.png diff --git a/assets/AzdoSetup/2CreateAPipeline.png b/assets/images/AzdoSetup/2CreateAPipeline.png similarity index 100% rename from assets/AzdoSetup/2CreateAPipeline.png rename to assets/images/AzdoSetup/2CreateAPipeline.png diff --git a/assets/AzdoSetup/3CreateAPipeline.png b/assets/images/AzdoSetup/3CreateAPipeline.png similarity index 100% rename from assets/AzdoSetup/3CreateAPipeline.png rename to assets/images/AzdoSetup/3CreateAPipeline.png diff --git a/assets/AzdoSetup/4CreateAPipeline.png b/assets/images/AzdoSetup/4CreateAPipeline.png similarity index 100% rename from assets/AzdoSetup/4CreateAPipeline.png rename to assets/images/AzdoSetup/4CreateAPipeline.png diff --git a/assets/AzdoSetup/5CreateAPipeline.png b/assets/images/AzdoSetup/5CreateAPipeline.png similarity index 100% rename from assets/AzdoSetup/5CreateAPipeline.png rename to assets/images/AzdoSetup/5CreateAPipeline.png diff --git a/assets/Guide/AD-AppRegistrations.png b/assets/images/Guide/AD-AppRegistrations.png similarity index 100% rename from assets/Guide/AD-AppRegistrations.png rename to assets/images/Guide/AD-AppRegistrations.png diff --git a/assets/Guide/AppConfig-Purge.png b/assets/images/Guide/AppConfig-Purge.png similarity index 100% rename from assets/Guide/AppConfig-Purge.png rename to assets/images/Guide/AppConfig-Purge.png diff --git a/assets/Guide/AsyncRequestReplyPattern.png b/assets/images/Guide/AsyncRequestReplyPattern.png similarity index 100% rename from assets/Guide/AsyncRequestReplyPattern.png rename to assets/images/Guide/AsyncRequestReplyPattern.png diff --git a/assets/images/Guide/Azd-Env-New.png b/assets/images/Guide/Azd-Env-New.png new file mode 100644 index 0000000000000000000000000000000000000000..9d70323167e83359595b7324dcbe2895b9d3e423 GIT binary patch literal 61927 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

A(G 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 literal 0 HcmV?d00001 diff --git a/assets/Guide/AzureMonitorCustomEvents.png b/assets/images/Guide/AzureMonitorCustomEvents.png similarity index 100% rename from assets/Guide/AzureMonitorCustomEvents.png rename to assets/images/Guide/AzureMonitorCustomEvents.png diff --git a/assets/Guide/AzureMonitorLiveMetrics.png b/assets/images/Guide/AzureMonitorLiveMetrics.png similarity index 100% rename from assets/Guide/AzureMonitorLiveMetrics.png rename to assets/images/Guide/AzureMonitorLiveMetrics.png diff --git a/assets/Guide/AzureMonitorLogAnalyticsQueries.png b/assets/images/Guide/AzureMonitorLogAnalyticsQueries.png similarity index 100% rename from assets/Guide/AzureMonitorLogAnalyticsQueries.png rename to assets/images/Guide/AzureMonitorLogAnalyticsQueries.png diff --git a/assets/Guide/Intro-video.jpg b/assets/images/Guide/Intro-video.jpg similarity index 100% rename from assets/Guide/Intro-video.jpg rename to assets/images/Guide/Intro-video.jpg diff --git a/assets/Guide/Intro-video.png b/assets/images/Guide/Intro-video.png similarity index 100% rename from assets/Guide/Intro-video.png rename to assets/images/Guide/Intro-video.png diff --git a/assets/Guide/KeyVault-Purge.png b/assets/images/Guide/KeyVault-Purge.png similarity index 100% rename from assets/Guide/KeyVault-Purge.png rename to assets/images/Guide/KeyVault-Purge.png diff --git a/assets/Guide/ReliableWebAppArchitectureDiagram.png b/assets/images/Guide/ReliableWebAppArchitectureDiagram.png similarity index 100% rename from assets/Guide/ReliableWebAppArchitectureDiagram.png rename to assets/images/Guide/ReliableWebAppArchitectureDiagram.png diff --git a/assets/images/Guide/Simulating_AppInsightsRequestWithSqlServer.png b/assets/images/Guide/Simulating_AppInsightsRequestWithSqlServer.png new file mode 100644 index 0000000000000000000000000000000000000000..d4bada7239af94c6904aba82da66dc236d71224b GIT binary patch literal 185961 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Ð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

)Gjt-{6mrr?&%XPvGzrvv5& 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

Sz{0Gow1|J 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

}RC^;=$7&cx(8RO{5H=GYn4N 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 z

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 literal 0 HcmV?d00001 diff --git a/assets/images/vscode-reopen-in-container-command.png b/assets/images/vscode-reopen-in-container-command.png new file mode 100644 index 0000000000000000000000000000000000000000..c7210fc125482c8e86596ba10c83ec685233ae68 GIT binary patch literal 86050 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

e<0|H)X?brogfe_VX$T{ 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

HY<}2ec^hM5596S@Pzt6x(YwV-NM=cMTP{ zV2>P~qP6YN11gs4@sYiOT7bx`Q<-kydl-O5CNYe7wR7;1*2awgW8bQv@QpxdQy6z* ztds8VaeHbkmV9kq_Vu*?Og%k-Ftw2oyTT}Kexgk8UvA*VPm>Cp2Bj0mSh1(oY0x|J zeILy0(+o387I6tk0U_HNpWMyZ-(2pFw4$$$nk#Y11gN+>KUZy*bu#*-G}g97e?Lb` zNJEZxwZBMQ%3Vijb!kk++gM7T)3Ix98C%CI6(1u6X|rP784*2Ab{@`d>MUHfcM2{) z6xWm6HADhbi@};QU@xURA8h&Y}2 z$6~!hkz#cX7i`%W^jq`Q+N+wlb;ZhMr`@n5ymP63T+x$Rbmdc9C%6rP!Y`N}h~DYY zBO3^V!@sc@?F1qwNY&#{6UT1z1xOWGtXd&`gRTRJQbR- z8(ZNQC9F$U_X1F1>lk+8Je%#(jOT$8W@n+BOE)*ejK*cl!`b>ul! zl&;~|*#HiG<(oE~jn*Zvs1Lr*-H08Swm1;J2Fx2Ru7z!4mZfP8L~&2*M3UKMJr|w9 zPDs-I+hcy}HuZy63=h~BKmDbd$&eZiqMm&<_&+(Cv^*z56|)tMW-NaCm*S57OYxH; zHr%az@$Qvt%qzm+-^M*dG{>TwyrSZV+13nCL-FjzU%0@%Kf;V>sI>avZTzK7qBqz z5U%|WD;cGgBPpR9?_Lt{VOgk$iqzc=ZIz>U!E7~stn%=QlgueL9es1)&9kAfA(?s8 zT1H<)xB7Q)zL9Pd!rG(?gV{#T^0@{0$Y8;d1Bp)$ldP{=8|R_wmQzO4w2sjW?Y>r_ zR!#SM`g|yb?;5hY;WluuwPW06MKd*zPaP4;M&s=RzqvdcZZB}fG`!K@C%^oMhp8&F zyvw=J_?tMO>RO!VB&k@a zA%HsXKd%=wa%Fxu#CMqdqjhq0&cA&}wB$<|ok#W8?tH9~TX!*q^N)jK81KU4XcOqU z4%_NZ8iaq7q%(e)2^f;VXM8q$Oaq^^5@A>C%wJ#SMncN8sq9NF;Fxj!pV?{yMKP${ zlTnxL@vM}Rr?uwg0(@{-?Zz5Y>rCMfvdR3Ybsf8yBoY2Y2GSid@a43k46XT)|5&&h zqWKAY=ObHYmejbjsYFPY$h(&2+KR)f1=A65Q5IsWJ;k=>37nt#W1ZB%$wJ<*Isy9w zNviKW?oCF7&hMgkMDz;2o+oTvZo}?fdc-qcqfkh*;^^~!h9~@WLuzaC>Yuj`rybLb z!c7imzE}M;Ch2~C-ExY6Eo{AK>a<_=aPb9>;#qRm`p$0aA}i+a20pyf&xgf+d2%{fKi4rxR)d&Ut{?ujS?OU+ ziC9X)Qte0u$a(IM+>7f48VDV6zkW{hjMH4TAjwS(FLgr6mHP&Rxd~CtNz!(jnn1Jmn-YcEx_A8_aH|9DM?Ukv}GkeP>PMsu0l-7i-Zv|k2Y!B(VPzySVd&!O&V{s!r z7Zxa~`!Fgja?6`9>*pI>`N?a*{W)gBWCT3ZYW{aOS#qNUTF+Rxi$}086QDu&r zdC|M=%8Im$q~(5oEPYxJHcH4KyYEAkJoHirqm8J%{i$)0Cp_Cig9I$#;ZcNM!p{NF6Gr7A9*PC$7HS49xpT-)`=aac~0MSZrICmO`MA((TDh*x+wZt6I(E&DWd zaq0}$KAYuf%2BL3ROQ!07zXeTS`@5p<)H=#a0tC?L4$0Ek-*vK#oJX<@XnGTIpypH zds#PRKO7ul^H>#}Uh}~Z!e8{6Pru7%|I=tmGP|<(KH+KZh*)po92;MM%Ka$Vk%8yy zk%4E%?9(OnTq&W4BBXMWiMKxnS?LTZ);}FOZo{O{GFr$~W`i0P*MS$(GWDHCPX z!*WZse5JMNb_dgRoq#@cpYqa7{~^=?bE9?#aevq6NOi};+X#;N%@DagaN?_xf=HSg0pd$ zj?AxV)IgSG9cO7Ki>mOQ!vcsw(~YF4Ds>HhP~`nc<3^j*h3TkUV7!tGYUPmo9Bt1^ z!}IdAa*&4Q$~r(H3TvA)MMgzh*8t+WwUGV^|b9@Qo(RJq*XH*uWzpr z#wAF;r_yGFQH^QA>5p@vaVx{VXEjv8(0R~Ajvd*>syAi@n|H{s2pBp&XMJFhBQ_ZA zRNXqXP_+=L-)#-J8a$n0tI9R!162 zPwTU$pG#!JDdalTWH9RH>iEy-A>kCJvCfh1v9QV;2&I?&DQ;vDpm8^D#daSqcsW74 zA`HA`3KdcAyFmb#9_3Ds(hx)MJ%$^wNK7Oi=5~Pove-zeN$O`$$VmAA)Bfpy_h=8*1_7@$^x0$LJ6x}QfnH< zN|*X7HAnk7Ij+}i4UP*tb2SO??b^^W3lZ~^J*gv^^|p}6A8C8$AOE)CbaW0C)v8vZ zo)Ml{ue!9-aclRzOEmf>liYMH_5E)B(}$CCjw)Q#>#jcFa6#SZfL)oNY%*&OdaZ7! z@mKD>UpK2DIC&d;>O`OKzbVp9gT_0CQVH09g&fiUpOeMfN3l%yzAP};6@$d1)MD2I zF-ZBO*i;ns`u{StEX=GM4~u1!$^|^ui?#Ar^PhT>P+}^PE~8nn zWUO7g({rzx1k<{Or-@GGo}b#sIF45ZyCW7x%OtCA+O=L1?2SM93v;&qOAtK~L=UW=d3TX_%x60&x;()4M4e%*iO-vj7~!pE@4(et_;4HB<4QD^fK$HsvvoJ037X}vOV<7$6v>-VCD zK#(tL>oqH8!C(f62n%(N>HEr88reKGGPNlOH4iWFDBACzgCDU3-_{#Cz4fIq zNu)(*j8(6RQ_*3u0MQo-0U(;j!0ItRAwW@Wyy~tdfYx*WC}@~{I|BRtD!^=e8A1y8 z>P74qDzvaAjo!OS0G}?zTUEU8FLY!Z$l<78Rnys+5N&U~UA*t*lnA3Hh0Fja9Z>EL zygZAyoBRXbqUKCjicb$YQN2SGD411fBb@q&J( zA6^}J_wJJy>kO-i^Ld@P6W?>a{)KrdMp{=Ie)A6l1wKwP$!uL;C3kt3>AKa$3HjB< zqnU3?aF%owK6lSokhNCD`{>b5rU<#E#iQ9^l?PH!nFY|cX+wd%Tx1YKQng)mNV|0A zW#E{T${E0A;{=2UEME~H5`s{Ml7#OnJD;9IEE``A{Z% z{*(9dQ}bZ=hJgYT1O%W&dfO{k)%<+o0RUt1)5oVS}Pl{YII*&C%_>MEs5{tiist8^-Eg3Ygf1b1C#_^ z&hv<*!Q0p`JlgOh8zJ4c{|ozzg3-8 zgL}Do`)r1`P3&A(dcEf^(;+KAOCR1`(YG}iGEbW3e8q() zY41zItZvH`nx0IUoI29l{PpU028ypo$hF~lop^40qo)k6a_%9`|BQbr@+DP2ycY4slQDPF9YEdvmWVi`8%>TURX@ub1VFD!L zbIbcwU5T-{GWud@C*+oKBn%ZNvvUt`U>%TM95=We#|gWUkbTt!Q;k4DB^p#%wWs8< zg%U2R`d}c0dfn3LPKkt)*Fad$W^#*?%h!l+tMgO{>|2cs%a!4tv=U~etY_*;MwoUp z()qJhoE|>rQ`LY%^Nxgr-KyY^rcdeh1UEEQY=TY!xujC z(2#!Q$#>sHgb#j&C&Ao>%pDWv?i5|AhCFU8KakSEX#L$vC+v<0?X3SHWo0J|#b96f z4#!=FC2)@thMsQ>tt!90`iO^L`yk9SNQFzy9&C6LZccp0Tbk-plQe^+#|TCJ6obFL ztUZuCK{)d%UZONkq)&1)aDB5#FA+)=VdQUv5;xN~?Xak;ONTu8x&MEEs+Z?!;35Jm zp#X@;=>WxN^-_}1m!VG0Z!o%%cH?(R1MLv#VFoF>#*?tw1!y6vs?Hzf6W3Gp{6yEk z&=3Qwnk#rNDyT50IvnoY5Nl(1JhSwl+?KwKL@Zb{%zIQ=4Er!s#a?^ic zGU`os++SHHA6ly0@l*}=a17W!u>JDI0t@CTjZ#-Bp`CnsyY=sL*UsQV zUfoaA_^Ayaw7c%s@pW~EDv(hT=ZHD@)s<|(S1RjnlHxV*3(%{)Wx+GeKMhZ_&)2M_ zR%dh=C1MMGc!psDO%s2`gHSKKEIxXRWNce{LmL!waSY6JS`HJR z-LG_PixirtPp)zdER;2!RACe_+W<@D+Jof05c)jhqd*Z|s8b1qg;HJtm9jFUct9Ga zB&8^G^|F_UIl5GTUQU0F_U~JKQE`++3Z`J`cK)<&N&;n7{lo*(+<%vd8wG65@W4n{ zIHv!{Lf#AM(=dzo5~uaHzeq}nyEwD=Xgj?d*agM!eZ~V}J#-vmNlY6iTkAb3ohOg> z#fewUT>=u>@O8KI z75h|SacDX_1(#J#y{GGzV0i3z+sbj_H0*m}b^QgFCF+S)0oz-5_^B7AcHw8VSxt)Y z)y@M$G7dhdEz5>j_|1*yMbnyUz8N@4^iS|W6(4ZS8$WPAI?hHIF34pm?$x`DgEqQ$ zJ|{3!?|Ds+<30h$N*(z^f!s!s4{2TNJcS#Omv9t5oxcBv4psx5z>r^P<^ zVM8EtvhVNnv;=Twu(v%MD^`y&o(sv?PwfqS8$GsF5Lpe#E=M=nD{8W^%MH^+1Z04O zb1vH^F}?1FGVPm*hDq_`ReeasQYU@V>RpscTCq}?!qo2d4P16$SL=eqR1mhX7?R(7 zx#?9Zi+F=oJdh;X_)MKC5;P%dlH3VO8CiX@x)3`t8($GKcFob&L3x`}2eP2VbbtS% zthiD2bUB9mo+^6NuZTE8E`lKOgngZ>BfrnE&9yVK z%(zsXm;Hg`o)Tj?Tjd=7nkF73_ghi2E^9B6IL6ZhAL(IiC^!7~*jTVSVlA384gU$J zAjElRfYa9WKPJMR!U)0L|BJo1jEaM4)&P@W2~M!!0TSE^?w&w!x50wDI|K+WgS!(l zxVr|I!QI{69cCxVci%Vn-rckNWB=?q+dl$_lj&)x?y7qFsj5MJXsAh&#*J{xLtA93 zmF!I_z?y_B;wBcdra+(nDlR48rE+Ts8q#tNvo-79YmhcvU|g$sb_|xE8lD#O?~ms# zPHt41A8b(A844xAXxQ2ilc!**SHw`yfa+PK2TG$#XEiIBBne%TkNz?C#=-zmkY% z?a+w{7br#Adh3C!0*%Q2x-@Hz!fjQ8y)~C**K^W(QD?+wP+JKuasLZlnEN++0=ho+ z;X|dw;K`zN@PB-BBJ4`G9MDNuK~#FxvuCNmzg~@gt>%|YEx@?XFXs1u+E+%*|L3WG zsTtVVE~}a&R5+cA27YyZxjDNEHbK+QU>WpMbFl#cgCs`1FblDyj~wAAZN+-2l7;3a9==E zLofYrlJvapY}SxpcQ30)S%Wh(hir!2EP_9cr*&yRKiBJ}9L3{zj?#BOv~-RcL6f$( z7tC-^=cb+-E>sVE&z{xQ{X@$!L4$>Ir;dCL0|}SYKtiTE@}O}_hl8}`UPuo_#V|*f zRX)P}Xi7CuOxR?dao=$T4ekm`VO-JwtE7>`(RAtZi(e?q*%$w2Cw8ulI!_;X&&q_0 zE-%lU15Ct+N0CXRe$+0po7_wJdt z>t5wzz^CKm{k;xG+GFxY^k+6gc}2X2|7J`W{Ux!VfSX=uCMz>-l61?ZFvBI0dNZ4P ziyKYnke&WQ%*ovgW}=0�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 literal 0 HcmV?d00001 diff --git a/assets/sla-calculation.md b/assets/sla-calculation.md new file mode 100644 index 00000000..6deb3c08 --- /dev/null +++ b/assets/sla-calculation.md @@ -0,0 +1,75 @@ +# Calculating Solution Service Level Agreement + +The requirement for the web application is that the combined service level agreement for all components in the hot path is greater than 99.9%. The components in the hot path comprise of any service that is used in fulfilling a web request from a user. + +## Development + +With a development environment, network isolation is not used. The following services are considered: + +| Service | Azure SLA | +|:------------------|----------:| +| Azure Front Door | 99.990% | +| Entra ID | 99.990% | +| Azure App Service | 99.950% | +| Redis Cache | 99.900% | +| Azure SQL | 99.995% | +| Azure Storage | 99.900% | +| Key Vault | 99.990% | +| App Configuration | 99.900% | +| **Combined SLA** | **99.616%** | + +## Production - Single Region + +When operating in production, network isolation is used. We do not consider the availability of the hub resources or VNET peering. + +| Service | Azure SLA | +|:------------------|----------:| +| Azure Front Door | 99.990% | +| Entra ID | 99.990% | +| Private DNS Zone | 100.00% | +| AFD Private Link | 99.990% | +| Azure App Service | 99.950% | +| - Private Link | 99.990% | +| Redis Cache | 99.900% | +| - Private Link | 99.990% | +| Azure SQL | 99.995% | +| - Private Link | 99.990% | +| Azure Storage | 99.900% | +| - Private Link | 99.990% | +| Key Vault | 99.990% | +| - Private Link | 99.990% | +| App Configuration | 99.900% | +| - Private Link | 99.990% | +| **Combined SLA** | **99.546%** | + +## Production - Two Regions + +Since the single region SLA is less than the requested 99.9% availability, we have to deploy to two regions. Azure Front Door, Entra ID, and Private DNS Zones are shared resources. However, the rest of the services can be doubled up for more reliability. + +| Service | Azure SLA | +|:------------------|----------:| +| **Shared Services** || +| Azure Front Door | 99.990% | +| Entra ID | 99.990% | +| Private DNS Zone | 100.00% | +| **Regional Services** || +| AFD Private Link | 99.990% | +| Azure App Service | 99.950% | +| - Private Link | 99.990% | +| Redis Cache | 99.900% | +| - Private Link | 99.990% | +| Azure SQL | 99.995% | +| - Private Link | 99.990% | +| Azure Storage | 99.900% | +| - Private Link | 99.990% | +| Key Vault | 99.990% | +| - Private Link | 99.990% | +| App Configuration | 99.900% | +| - Private Link | 99.990% | +| **Shared Services** | **99.980%** | +| **Regional Services** | **99.546%** | +| **Combined SLA** | **99.9779%** | + +Using dual regions will help us achieve the requested service level agreement. + +For more information on how to calculate effective SLO, please refer to [the Well Architected Framework](https://learn.microsoft.com/azure/well-architected/reliability/metrics). diff --git a/assets/sla-calculation.xlsx b/assets/sla-calculation.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..de76e2df8ef42d802c01339feb5fc667c2a1809f GIT binary patch literal 107520 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 It will take a few minutes for the App Service to restart. When it restarts, the application will use the `Api:App:RetryDemo` configuration. You need to restart the App Service any time you update a configuration value. + > It will take a few minutes for the App Service to restart. When it restarts, the application will use the `Api:App:RetryDemo` configuration. You need to restart the App Service any time you update a configuration value unless you're using the [sentinal key](https://learn.microsoft.com/azure/azure-app-configuration/enable-dynamic-configuration-aspnet-core) approach. -We recommend collecting telemetry for this test. We've configured Application Insights to collect telemetry. When the value of `Api:App:RetryDemo` is 2, the first request to the application API generates a 503 error. But the retry pattern sends a second request that is successful and generates a 200 response. We recommend using the Application Insights Live Metrics features to view the HTTP responses in near real-time. +We recommend observing telemetry for this test. We've configured Application Insights to collect telemetry. When the value of `Api:App:RetryDemo` is 1, the first request to the application API generates a 503 error. But the retry pattern sends a second request that is successful and generates a 200 response. We recommend using the Application Insights Live Metrics features to view the HTTP responses in near real-time. -> App Insights can up to a minute to aggregate the data it receives, and failed requests might not appear right away in the Failures view. +> App Insights can take up to a minute to aggregate the data it receives, and failed requests might not appear right away in the Failures view. -To see the Retry Pattern in action you can click throughout the Relecloud website and should not see any impact to the user's ability to purchase a concert ticket. However, in App Insights you should see the 503 error happens for 50% of the requests sent to the Web API. +To see the Retry pattern in action you can click throughout the Relecloud website and should not see any impact to the user's ability to purchase a concert ticket. However, in App Insights you should see the 503 error happens for 50% of the requests sent to the Web API. For more information, see: - [Application Insights Live Metrics](/azure/azure-monitor/app/live-stream) - [Visual Studio and Application Insights live telemetry](/azure/azure-monitor/app/visual-studio) -> We recommend you cleanup by deleting the `Api:App:RetryDemo` setting. +> We recommend you cleanup by deleting the `Api:App:RetryDemo` setting. And restart both web apps to resume from a known state. -### Circuit Breaker Pattern +## Circuit Breaker pattern -We built an app configuration setting that lets you simulate and test a failure from the Web API. The setting is called `Api:App:RetryDemo`. We've included this configuration in the deployable code. The `Api:App:RetryDemo` setting throws a 503 error when the end user sends an HTTP request to the web app API. `Api:App:RetryDemo` has an editable setting that determines the intervals between 503 errors. A value of 1 has no intervals and generates a 503 error for every request. +We built an app configuration setting that lets you simulate and test a failure from the Web API. The setting is called `Api:App:RetryDemo`. We've included this configuration in the deployable code. The `Api:App:RetryDemo` setting throws a 503 error when the end user sends an HTTP request to the web app API. `Api:App:RetryDemo` has an editable setting that determines the number of back-to-back errors between a successful request. A value of 5 generates five errors after returning one successful response. This is disabled by default. Removing the setting, or changing the value to 0 will disable the feature. -Following these steps to set up this test: +Follow these steps to set up this test: 1. Create a new key-value in App Configuration. - Go to App Configuration in the Azure Portal @@ -56,44 +56,63 @@ Following these steps to set up this test: |Name|Value| |-----|-----| |*Key*|Api:App:RetryDemo| - |*Value*|1| + |*Value*|5| 1. Restart the API web app App Service - Go to the API web app App Service - Navigate to the "Overview" blade - Click the "Restart" button at the top of the page. - > It will take a few minutes for the App Service to restart. When it restarts, the application will use the `Api:App:RetryDemo` configuration. You need to restart the App Service any time you update a configuration value. + > It will take a few minutes for the App Service to restart. When it restarts, the application will use the `Api:App:RetryDemo` configuration. You need to restart the App Service any time you update a configuration value unless you're using the [sentinal key](https://learn.microsoft.com/azure/azure-app-configuration/enable-dynamic-configuration-aspnet-core) approach. -To see these recommendations in action you can click on the "Upcoming Concerts" page in the Relecloud web app. Since the Web API is returning an error for every request you will see that the front-end applied the Retry Pattern up to three times to request the data for this page. If you reload the "Upcoming Concernts" page you can see that the Circuit Breaker has detected these three errors and that the circuit is now open. When the circuit is open there are no new requests sent to the Web API web app for 30 seconds. This presents a fail-fast behavior to our users and also reduces the number of requests sent to the unhealthy Web API web app so it has more time to recover. +To see these recommendations in action you can click on the "Upcoming Concerts" page in the Relecloud web app. Since the Web API is returning an error for every request you will see that the front-end applied the Retry pattern up to three times to request the data for this page. If you reload the "Upcoming Concernts" page you can see that the Circuit Breaker has detected these errors and that the circuit is now open. When the circuit is open there are no new requests sent to the Web API web app for 30 seconds. This presents a fail-fast behavior to our users and also reduces the number of requests sent to the unhealthy Web API web app so it has more time to recover. -> Note that App Insights can up to a minute to aggregate the data it receives, and failed requests might not appear right away in the Failures view. +> Note that App Insights can take up to a minute to aggregate the data it receives, and failed requests might not appear right away in the Failures view. For more information, see: - [Application Insights Live Metrics](/azure/azure-monitor/app/live-stream) - [Visual Studio and Application Insights live telemetry](/azure/azure-monitor/app/visual-studio) -> We recommend you cleanup by deleting the `Api:App:RetryDemo` setting. +> We recommend you cleanup by deleting the `Api:App:RetryDemo` setting. And restart both web apps to resume from a known state. -### Cache-Aside Pattern +## Cache-Aside pattern -The cache-aside pattern enables us to limit read queries to SQL server. It also provides a layer of redundancy that can keep parts of our application running in the event of issue with Azure SQL Database. +The Cache-Aside pattern enables us to reduce read queries to SQL server. It also provides a layer of redundancy that can keep parts of our application running in the event of issue with Azure SQL Database. -For more information, see [cache-aside pattern](https://learn.microsoft.com/azure/architecture/patterns/cache-aside). +For more information, see [Cache-Aside pattern](https://learn.microsoft.com/azure/architecture/patterns/cache-aside). We can observe this behavior in App Insights by testing two different pages. First, visit the "Upcoming Concerts" page and refresh the page a couple of times. The first time the page is loaded the web API app will send a request to SQL server, but the following requests will go to Azure Cache for Redis. -![image of App Insights shows connection to SQL server to retrieve data](./assets/Guide/Simulating_AppInsightsRequestWithSqlServer.png) - -In this screenshot above we see a connection was made to SQL server and that this request took 742ms. +![image of App Insights shows connection to SQL server to retrieve data](./assets/images/Guide/Simulating_AppInsightsRequestWithSqlServer.png) -![image of App Insights shows request returns data without SQL](./assets/Guide/Simulating_AppInsightsRequestWithoutSql.png) +In this screenshot above we see a connection was made to SQL server and that retrieving the data took 131.1 ms. -In the next request we see that the API call was only 55ms because it didn't have to connect to SQL Server and instead used the data from Azure Cache for Redis. +![image of App Insights shows request returns data without SQL](./assets/images/Guide/Simulating_AppInsightsRequestWithoutSql.png) -![image of Azure Cache for Redis Console lists all keys](./assets/Guide/Simulating_RedisConsoleListKeys.png) +In the next request we see that the total duration of the API call was only 10.4 ms because it didn't have to connect to SQL Server and instead used the data from Azure Cache for Redis. Using the (PREVIEW) Redis Console we can see this data stored in Redis. -![image of Azure Cache for Redis Console shows data for upcoming concerts](./assets/Guide/Simulating_RedisConsoleShowUpcomingConcerts.png) +Open the Redis Console by navigating to the Azure Cache for Redis resource in the Azure Portal and clicking the "Console" link above the overview details for this resource. + +![image of Azure Cache for Redis Console](./assets/images/Guide/Simulating_RedisConsole.png) + + +Run the following command to see all cached keys: + +``` +SCAN 0 COUNT 1000 MATCH * +``` + +![image of Azure Cache for Redis Console lists all keys](./assets/images/Guide/Simulating_RedisConsoleListKeys.png) + +Run the next command to see the concert data cached from the database: + +``` +HGETALL UpcomingConcerts +``` + +![image of Azure Cache for Redis Console shows data for upcoming concerts](./assets/images/Guide/Simulating_RedisConsoleShowUpcomingConcerts.png) + +> You can use the command `DEL UpcomingConcerts` to delete this data from Redis and see the cache rebuild. \ No newline at end of file diff --git a/dev-containers.md b/dev-containers.md deleted file mode 100644 index 13cf7a55..00000000 --- a/dev-containers.md +++ /dev/null @@ -1,28 +0,0 @@ -# Overview -The Visual Studio Code Dev Containers extension lets you use a Docker container as a full-featured development environment. It delivers all tooling required to deploy the application enivrionment and deploy the application code. For more information on Dev Containers, please refer to this [tutorial](https://code.visualstudio.com/docs/devcontainers/tutorial) - -# Pre-requisites -* Docker - * If using Windows Subsystem for Linux, docker needs to be inside WSL - * If using Windows, Docker for Desktop needs to be installed -* Visual Studio Code - * Visual Code for the Web can not be used. There is an issue deploying Azure AD resources when using DevContainers. -* [Dev Container Extenstion](vscode:extension/ms-vscode-remote.remote-containers) - -> **_NOTE:_** Access to a Github Codespace fullfills all the pre-requisites - -# Dev Container Setup -1. git clone https://github.com/Azure/reliable-web-app-pattern-dotnet -1. Open the folder reliable-web-app-pattern-dotnet in Visual Studio Code -1. A prompt to open the folder in Dev Containers will appear in the lower right. - * ![screenshot dev container open](./assets/devcontainers/devcontainers1.png) -1. Click `Reopen in Container` -1. The container will start to build - * ![screenshot dev container building](./assets/devcontainers/devcontainers2.png) -1. When the container is built, open a new shell in the upper right hand corner of the integrated terminal - * ![screenshot dev container shell](./assets/devcontainers/devcontainers4.png) -1. Confirm that `azd` and `az bicep` are install correctly - * ![screenshot dev container azd](./assets/devcontainers/devcontainers5.png) - * ![screenshot dev container bicep](./assets/devcontainers/devcontainers6.png) -1. Continue on deploying the environment as before. - * [Steps to deploy the reference implementation](README.md#steps-to-deploy-the-reference-implementation) diff --git a/developer-experience.md b/developer-experience.md new file mode 100644 index 00000000..b6073953 --- /dev/null +++ b/developer-experience.md @@ -0,0 +1,117 @@ +# Developer Experience + +The dev team uses Visual Studio and they integrate directly with Azure resources when building the code. The team chooses this workflow to so they can integration test with Azure before their code reaches the QA team. + +> **NOTE** +> +> This developer experience is only supported for development deployments. Production deployments +> use network isolation and do not allow devs to connect from their workstation. + +Most configurations in the project are stored in Azure App Configuration with secrets saved into Azure Key Vault. To connect to these resources from a developer workstation you need to complete the following steps. + +1. Add your identity to the Azure SQL resource +1. Set up front-end web app configuration +1. Set up back-end web app configuration + +To support this workflow the following steps will store data in [User Secrets](https://learn.microsoft.com/aspnet/core/security/app-secrets?view=aspnetcore-6.0&tabs=windows) because the code is configured so that these values override configurations and secrets saved in Azure. + +> Note that `secrets.json` file is stored relative to the tooling that supports them. Use the Windows Terminal to execute the following commands instead of the Dev Container if you want to use Visual Studio to launch the project. Read [How the Secret Manager tool works](https://learn.microsoft.com/aspnet/core/security/app-secrets?view=aspnetcore-8.0&tabs=linux#how-the-secret-manager-tool-works) to learn more. + +## Authenticate with Azure + +1. If you are not using PowerShell 7+, run the following command (you can use [$PSVersionTable.PSVersion](https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_powershell_editions) to check your version): + + ```sh + pwsh + ``` + +1. Connect to Azure + + ```pwsh + Import-Module Az.Resources + ``` + + ```pwsh + Connect-AzAccount + ``` + +1. Set the subscription to the one you want to use (you can use [Get-AzSubscription](https://learn.microsoft.com/powershell/module/az.accounts/get-azsubscription?view=azps-11.3.0) to list available subscriptions): + + ```pwsh + $AZURE_SUBSCRIPTION_ID="" + ``` + + ```pwsh + Set-AzContext -SubscriptionId $AZURE_SUBSCRIPTION_ID + ``` + +## 1. Add your identity to the Azure SQL resource + +1. Run the following script to automate the process in docs [Configure and manage Microsoft Entra authentication with Azure SQL](https://learn.microsoft.com/en-us/azure/azure-sql/database/authentication-aad-configure?view=azuresql&tabs=azure-powershell) + + ```pwsh + ./infra/scripts/devexperience/call-make-sql-account.ps1 + ``` + +## 2. Set up front-end web app configuration + +1. Get the Azure App Configuration URI + ```pwsh + $appConfigurationUri = ((azd env get-values --output json | ConvertFrom-Json).APP_CONFIG_SERVICE_URI) + ``` + +1. Switch to the front-end web app directory + ```pwsh + cd src/Relecloud.Web.CallCenter + ``` +1. Clear any existing user secrets + ```pwsh + dotnet user-secrets clear + ``` +1. Set the Relecloud API base URI + ```pwsh + dotnet user-secrets set "App:RelecloudApi:BaseUri" "https://localhost:7242" + ``` + +1. Set the Azure App Configuration URI + ```pwsh + dotnet user-secrets set "App:AppConfig:Uri" $appConfigurationUri + ``` + +1. Switch back to the root of the repository + ```pwsh + cd ../.. + ``` + +## 3. Set up back-end web app configuration + + ```pwsh + cd src/Relecloud.Web.CallCenter.Api + ``` + + ```pwsh + dotnet user-secrets clear + ``` + + ```pwsh + dotnet user-secrets set "App:AppConfig:Uri" $appConfigurationUri + ``` + +## 4. Launch the project with Visual Studio + +1. Open the project in Visual Studio +1. Configure the solution to start both the front-end and back-end web apps + 1. Right-click the **Relecloud** solution and pick **Set Startup Projects...** + 1. Choose **Multiple startup projects** + 1. Change the dropdowns for *Relecloud.Web.CallCenter* and *Relecloud.Web.CallCenter.Api* to the action of **Start**. + 1. Click **Ok** to close the popup + + ![screenshot of Visual Studio solution startup configuration](assets/images/configure-multiple-startup-projects.png) + +1. Run the project (F5) +1. Open the browser and navigate to `https://localhost:7227/` + + ![screenshot of web app home page](assets/images/WebAppHomePage.png) + +## Next steps +You can learn more about the web app by reading the [Pattern Simulations](demo.md) documentation. \ No newline at end of file diff --git a/infra/appConfigSvcKeyValue.bicep b/infra/appConfigSvcKeyValue.bicep deleted file mode 100644 index ee7b2485..00000000 --- a/infra/appConfigSvcKeyValue.bicep +++ /dev/null @@ -1,16 +0,0 @@ -@description('Name of the App Configuration Service where the App Service loads configuration') -param appConfigurationServiceName string - -@description('A host name for the Azure Front Door that protects the front end web app') -param frontDoorUri string - -resource appConfigurationService 'Microsoft.AppConfiguration/configurationStores@2022-05-01' existing = { - name: appConfigurationServiceName - - resource frontDoorRedirectUri 'keyValues@2022-05-01' = { - name: 'App:FrontDoorUri' - properties: { - value: frontDoorUri - } - } -} diff --git a/infra/appSvcAutoScaleSettings.bicep b/infra/appSvcAutoScaleSettings.bicep deleted file mode 100644 index 67b7d37e..00000000 --- a/infra/appSvcAutoScaleSettings.bicep +++ /dev/null @@ -1,77 +0,0 @@ -@minLength(1) -@description('Specifies the name of an existing app service plan that will receive scale rules') -param appServicePlanName string - -@description('Enables the template to choose different SKU by environment') -param isProd bool - -@description('The Azure location where this solution is deployed') -param location string = resourceGroup().location - -@description('An object collection that contains annotations to describe the deployed azure resources to improve operational visibility') -param tags object - -var scaleOutThreshold = 85 -var scaleInThreshold = 60 - -resource appServicePlan 'Microsoft.Web/serverfarms@2021-03-01' existing = { - name: appServicePlanName -} - -resource apiAppScaleRule 'Microsoft.Insights/autoscalesettings@2014-04-01' = if (isProd) { - name: '${appServicePlanName}-autoscale' - location: location - tags: tags - properties: { - targetResourceUri: appServicePlan.id - enabled: true - profiles: [ - { - name: 'Auto created scale condition' - capacity: { - minimum: string(1) - maximum: string(10) - default: string(1) - } - rules: [ - { - metricTrigger: { - metricResourceUri: appServicePlan.id - metricName: 'CpuPercentage' - timeGrain: 'PT5M' - statistic: 'Average' - timeWindow: 'PT10M' - timeAggregation: 'Average' - operator: 'GreaterThan' - threshold: scaleOutThreshold - } - scaleAction: { - direction: 'Increase' - type: 'ChangeCount' - value: string(1) - cooldown: 'PT10M' - } - } - { - metricTrigger: { - metricResourceUri: appServicePlan.id - metricName: 'CpuPercentage' - timeGrain: 'PT5M' - statistic: 'Average' - timeWindow: 'PT10M' - timeAggregation: 'Average' - operator: 'LessThan' - threshold: scaleInThreshold - } - scaleAction: { - direction: 'Decrease' - type: 'ChangeCount' - value: string(1) - cooldown: 'PT10M' - } - } - ] - } - ] - } -} diff --git a/infra/applicationinsights.bicep b/infra/applicationinsights.bicep deleted file mode 100644 index 3a78fa8d..00000000 --- a/infra/applicationinsights.bicep +++ /dev/null @@ -1,1255 +0,0 @@ -@minLength(1) -@description('A generated identifier used to create unique resources') -param resourceToken string - -@minLength(1) -@description('Primary location for all resources. Should specify an Azure region. e.g. `eastus2` ') -param location string - -@description('An object collection that contains annotations to describe the deployed azure resources to improve operational visibility') -param tags object - -@minLength(1) -@description('An Id for a log analytics workspace that contains events to show in a dashboard') -param workspaceId string - -resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = { - name: 'web-${resourceToken}-appi' - location: location - kind: 'web' - tags: tags - properties: { - Application_Type: 'web' - WorkspaceResourceId: workspaceId - } -} - -// 2020-09-01-preview because that is the latest valid version -resource applicationInsightsDashboard 'Microsoft.Portal/dashboards@2020-09-01-preview' = { - name: 'web-${resourceToken}-appid' - location: location - tags: tags - properties: { - lenses: [ - { - order: 0 - parts: [ - { - position: { - x: 0 - y: 0 - colSpan: 2 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'id' - value: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - { - name: 'Version' - value: '1.0' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/AspNetOverviewPinnedPart' - asset: { - idInputName: 'id' - type: 'ApplicationInsights' - } - defaultMenuItemId: 'overview' - } - } - { - position: { - x: 2 - y: 0 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsights.name - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'Version' - value: '1.0' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/ProactiveDetectionAsyncPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - defaultMenuItemId: 'ProactiveDetection' - } - } - { - position: { - x: 3 - y: 0 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsights.name - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'ResourceId' - value: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/QuickPulseButtonSmallPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - } - } - { - position: { - x: 4 - y: 0 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsights.name - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'TimeContext' - value: { - durationMs: 86400000 - endTime: null - createdTime: '2018-05-04T01:20:33.345Z' - isInitialTime: true - grain: 1 - useDashboardTimeRange: false - } - } - { - name: 'Version' - value: '1.0' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/AvailabilityNavButtonPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - } - } - { - position: { - x: 5 - y: 0 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsights.name - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'TimeContext' - value: { - durationMs: 86400000 - endTime: null - createdTime: '2018-05-08T18:47:35.237Z' - isInitialTime: true - grain: 1 - useDashboardTimeRange: false - } - } - { - name: 'ConfigurationId' - value: '78ce933e-e864-4b05-a27b-71fd55a6afad' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/AppMapButtonPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - } - } - { - position: { - x: 0 - y: 1 - colSpan: 3 - rowSpan: 1 - } - metadata: { - inputs: [] - type: 'Extension/HubsExtension/PartType/MarkdownPart' - settings: { - content: { - settings: { - content: '# Usage' - title: '' - subtitle: '' - } - } - } - } - } - { - position: { - x: 3 - y: 1 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsights.name - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'TimeContext' - value: { - durationMs: 86400000 - endTime: null - createdTime: '2018-05-04T01:22:35.782Z' - isInitialTime: true - grain: 1 - useDashboardTimeRange: false - } - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/UsageUsersOverviewPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - } - } - { - position: { - x: 4 - y: 1 - colSpan: 3 - rowSpan: 1 - } - metadata: { - inputs: [] - type: 'Extension/HubsExtension/PartType/MarkdownPart' - settings: { - content: { - settings: { - content: '# Reliability' - title: '' - subtitle: '' - } - } - } - } - } - { - position: { - x: 7 - y: 1 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ResourceId' - value: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - { - name: 'DataModel' - value: { - version: '1.0.0' - timeContext: { - durationMs: 86400000 - createdTime: '2018-05-04T23:42:40.072Z' - isInitialTime: false - grain: 1 - useDashboardTimeRange: false - } - } - isOptional: true - } - { - name: 'ConfigurationId' - value: '8a02f7bf-ac0f-40e1-afe9-f0e72cfee77f' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/CuratedBladeFailuresPinnedPart' - isAdapter: true - asset: { - idInputName: 'ResourceId' - type: 'ApplicationInsights' - } - defaultMenuItemId: 'failures' - } - } - { - position: { - x: 8 - y: 1 - colSpan: 3 - rowSpan: 1 - } - metadata: { - inputs: [] - type: 'Extension/HubsExtension/PartType/MarkdownPart' - settings: { - content: { - settings: { - content: '# Responsiveness\r\n' - title: '' - subtitle: '' - } - } - } - } - } - { - position: { - x: 11 - y: 1 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ResourceId' - value: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - { - name: 'DataModel' - value: { - version: '1.0.0' - timeContext: { - durationMs: 86400000 - createdTime: '2018-05-04T23:43:37.804Z' - isInitialTime: false - grain: 1 - useDashboardTimeRange: false - } - } - isOptional: true - } - { - name: 'ConfigurationId' - value: '2a8ede4f-2bee-4b9c-aed9-2db0e8a01865' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/CuratedBladePerformancePinnedPart' - isAdapter: true - asset: { - idInputName: 'ResourceId' - type: 'ApplicationInsights' - } - defaultMenuItemId: 'performance' - } - } - { - position: { - x: 12 - y: 1 - colSpan: 3 - rowSpan: 1 - } - metadata: { - inputs: [] - type: 'Extension/HubsExtension/PartType/MarkdownPart' - settings: { - content: { - settings: { - content: '# Browser' - title: '' - subtitle: '' - } - } - } - } - } - { - position: { - x: 15 - y: 1 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsights.name - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'MetricsExplorerJsonDefinitionId' - value: 'BrowserPerformanceTimelineMetrics' - } - { - name: 'TimeContext' - value: { - durationMs: 86400000 - createdTime: '2018-05-08T12:16:27.534Z' - isInitialTime: false - grain: 1 - useDashboardTimeRange: false - } - } - { - name: 'CurrentFilter' - value: { - eventTypes: [ - 4 - 1 - 3 - 5 - 2 - 6 - 13 - ] - typeFacets: {} - isPermissive: false - } - } - { - name: 'id' - value: { - Name: applicationInsights.name - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'Version' - value: '1.0' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/MetricsExplorerBladePinnedPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - defaultMenuItemId: 'browser' - } - } - { - position: { - x: 0 - y: 2 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'sessions/count' - aggregationType: 5 - namespace: 'microsoft.insights/components/kusto' - metricVisualization: { - displayName: 'Sessions' - color: '#47BDF5' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'users/count' - aggregationType: 5 - namespace: 'microsoft.insights/components/kusto' - metricVisualization: { - displayName: 'Users' - color: '#7E58FF' - } - } - ] - title: 'Unique sessions and users' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - openBladeOnClick: { - openBlade: true - destinationBlade: { - extensionName: 'HubsExtension' - bladeName: 'ResourceMenuBlade' - parameters: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - menuid: 'segmentationUsers' - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 4 - y: 2 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'requests/failed' - aggregationType: 7 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Failed requests' - color: '#EC008C' - } - } - ] - title: 'Failed requests' - visualization: { - chartType: 3 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - openBladeOnClick: { - openBlade: true - destinationBlade: { - extensionName: 'HubsExtension' - bladeName: 'ResourceMenuBlade' - parameters: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - menuid: 'failures' - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 8 - y: 2 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'requests/duration' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Server response time' - color: '#00BCF2' - } - } - ] - title: 'Server response time' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - openBladeOnClick: { - openBlade: true - destinationBlade: { - extensionName: 'HubsExtension' - bladeName: 'ResourceMenuBlade' - parameters: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - menuid: 'performance' - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 12 - y: 2 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'browserTimings/networkDuration' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Page load network connect time' - color: '#7E58FF' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'browserTimings/processingDuration' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Client processing time' - color: '#44F1C8' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'browserTimings/sendDuration' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Send request time' - color: '#EB9371' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'browserTimings/receiveDuration' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Receiving response time' - color: '#0672F1' - } - } - ] - title: 'Average page load time breakdown' - visualization: { - chartType: 3 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 0 - y: 5 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'availabilityResults/availabilityPercentage' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Availability' - color: '#47BDF5' - } - } - ] - title: 'Average availability' - visualization: { - chartType: 3 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - openBladeOnClick: { - openBlade: true - destinationBlade: { - extensionName: 'HubsExtension' - bladeName: 'ResourceMenuBlade' - parameters: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - menuid: 'availability' - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 4 - y: 5 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'exceptions/server' - aggregationType: 7 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Server exceptions' - color: '#47BDF5' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'dependencies/failed' - aggregationType: 7 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Dependency failures' - color: '#7E58FF' - } - } - ] - title: 'Server exceptions and Dependency failures' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 8 - y: 5 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'performanceCounters/processorCpuPercentage' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Processor time' - color: '#47BDF5' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'performanceCounters/processCpuPercentage' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Process CPU' - color: '#7E58FF' - } - } - ] - title: 'Average processor and process CPU utilization' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 12 - y: 5 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'exceptions/browser' - aggregationType: 7 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Browser exceptions' - color: '#47BDF5' - } - } - ] - title: 'Browser exceptions' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 0 - y: 8 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'availabilityResults/count' - aggregationType: 7 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Availability test results count' - color: '#47BDF5' - } - } - ] - title: 'Availability test results count' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 4 - y: 8 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'performanceCounters/processIOBytesPerSecond' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Process IO rate' - color: '#47BDF5' - } - } - ] - title: 'Average process I/O rate' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 8 - y: 8 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsights.name}' - } - name: 'performanceCounters/memoryAvailableBytes' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Available memory' - color: '#47BDF5' - } - } - ] - title: 'Average available memory' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - ] - } - ] - } -} - -output APPLICATIONINSIGHTS_CONNECTION_STRING string = applicationInsights.properties.ConnectionString -output APPLICATIONINSIGHTS_INSTRUMENTATION_KEY string = applicationInsights.properties.InstrumentationKey diff --git a/infra/azureAdSettings.bicep b/infra/azureAdSettings.bicep deleted file mode 100644 index 80299038..00000000 --- a/infra/azureAdSettings.bicep +++ /dev/null @@ -1,89 +0,0 @@ -@minLength(1) -@description('The name of the Key Vault that will store AAD secrets for the web app') -param keyVaultName string - -@minLength(1) -@description('The name of the Azure App Configuration Service that will store AAD secrets for the web app') -param appConfigurationServiceName string - -@description('A scope used by the front-end public web app to get authorized access to the public web api. Looks similar to api://33333333-bbbb-4444-cccc-555555555555/relecloud.api') -param azureAdApiScopeFrontEnd string - -@description('A unique identifier of the API web app') -param azureAdClientIdForBackEnd string - -@description('A unique identifier of the front-end web app') -param azureAdClientIdForFrontEnd string - -@secure() -@description('A secret generated by Azure AD so that the web app can establish trust with Azure AD') -param azureAdClientSecretForFrontEnd string - -@description('A unique identifier of the Azure AD tenant') -param azureAdTenantId string - -// the semi-colon is not a valid character for a kv key name so we use alternate dotnet syntax of -- to specify this nested config setting -var clientSecretName = 'AzureAd--ClientSecret' - -resource kv 'Microsoft.KeyVault/vaults@2021-11-01-preview' existing = { - name: keyVaultName - - resource kvFrontEndAzureAdClientSecret 'secrets@2021-11-01-preview' = { - name: clientSecretName - properties: { - value: azureAdClientSecretForFrontEnd - } - } -} - -resource appConfigSvc 'Microsoft.AppConfiguration/configurationStores@2022-05-01' existing = { - name: appConfigurationServiceName - - //begin front-end web app settings - resource appConfigSvcFrontEndAzureAdApiScope 'keyValues@2022-05-01' = { - name: 'App:RelecloudApi:AttendeeScope' - properties: { - value: azureAdApiScopeFrontEnd - } - } - - resource appConfigSvcAzureAdClientId 'keyValues@2022-05-01' = { - name: 'AzureAd:ClientId' - properties: { - value: azureAdClientIdForFrontEnd - } - } - - resource appConfigSvcFrontEndAzureAdClientSecret 'keyValues@2022-05-01' = { - name: 'AzureAd:ClientSecret' - properties: { - value: string({ - uri: '${kv.properties.vaultUri}secrets/${clientSecretName}' - }) - contentType: 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' - } - } - - resource appConfigSvcAzureAdTenantId 'keyValues@2022-05-01' = { - name: 'AzureAd:TenantId' - properties: { - value: azureAdTenantId - } - } - - //begin web API app settings - - resource appConfigSvcAzureAdClientIdForBackEnd 'keyValues@2022-05-01' = { - name: 'Api:AzureAd:ClientId' - properties: { - value: azureAdClientIdForBackEnd - } - } - - resource appConfigSvcApiAzureAdTenantId 'keyValues@2022-05-01' = { - name: 'Api:AzureAd:TenantId' - properties: { - value: azureAdTenantId - } - } -} diff --git a/infra/azureFrontDoor.bicep b/infra/azureFrontDoor.bicep deleted file mode 100644 index 7d14b6a1..00000000 --- a/infra/azureFrontDoor.bicep +++ /dev/null @@ -1,189 +0,0 @@ -// this file is included for the sample to make it easy to get started -// for customer scenarios we recommend reusing your Azure Front Door -// as it supports multiple origins, and endpoints for different needs - -// avoids resource token naming since front door is a global balancer -var globalResourceToken = uniqueString(resourceGroup().id) -var frontDoorEndpointName = 'afd-${globalResourceToken}' - -@minLength(1) -@description('ResourceId for a log analytics workspace that will collect diagnostic info for Key Vault and Front Door') -param logAnalyticsWorkspaceIdForDiagnostics string - -@description('An object collection that contains annotations to describe the deployed azure resources to improve operational visibility') -param tags object - -@minLength(1) -@description('The hostname of the backend. Must be an IP address or FQDN.') -param primaryBackendAddress string - -@description('The hostname of the backend. Must be an IP address or FQDN.') -param secondaryBackendAddress string - -var frontDoorProfileName = 'afd-${globalResourceToken}' -var frontDoorOriginGroupName = 'MyOriginGroup' -var frontDoorOriginName = 'MyAppServiceOrigin' -var frontDoorRouteName = 'MyRoute' - -resource frontDoorProfile 'Microsoft.Cdn/profiles@2021-06-01' = { - name: frontDoorProfileName - tags: tags - location: 'global' - sku: { - name: 'Premium_AzureFrontDoor' - } -} - -resource logAnalyticsWorkspaceDiagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { - scope: frontDoorProfile - name: 'diagnosticSettings' - properties: { - workspaceId: logAnalyticsWorkspaceIdForDiagnostics - logs: [ - { - category: 'FrontDoorWebApplicationFirewallLog' - enabled: true - } - ] - } -} - -resource frontDoorEndpoint 'Microsoft.Cdn/profiles/afdEndpoints@2021-06-01' = { - name: frontDoorEndpointName - parent: frontDoorProfile - location: 'global' - properties: { - enabledState: 'Enabled' - } -} - -resource frontDoorOriginGroup 'Microsoft.Cdn/profiles/originGroups@2021-06-01' = { - name: frontDoorOriginGroupName - parent: frontDoorProfile - properties: { - loadBalancingSettings: { - sampleSize: 4 - successfulSamplesRequired: 3 - } - healthProbeSettings: { - probePath: '/healthz' - probeRequestType: 'HEAD' - probeProtocol: 'Https' - probeIntervalInSeconds: 100 - } - } -} - -resource frontDoorPrimaryOrigin 'Microsoft.Cdn/profiles/originGroups/origins@2021-06-01' = { - name: '${frontDoorOriginName}1' - parent: frontDoorOriginGroup - properties: { - hostName: primaryBackendAddress - httpPort: 80 - httpsPort: 443 - originHostHeader: primaryBackendAddress - priority: 1 - weight: 1000 - } -} - -resource frontDoorSecondaryOrigin 'Microsoft.Cdn/profiles/originGroups/origins@2021-06-01' = if (secondaryBackendAddress != 'none') { - name: '${frontDoorOriginName}2' - parent: frontDoorOriginGroup - properties: { - hostName: secondaryBackendAddress - httpPort: 80 - httpsPort: 443 - originHostHeader: secondaryBackendAddress - priority: 2 - weight: 1000 - } -} - -resource frontDoorRoute 'Microsoft.Cdn/profiles/afdEndpoints/routes@2021-06-01' = { - name: frontDoorRouteName - parent: frontDoorEndpoint - dependsOn: [ - // These explicit dependencies are required to ensure that the origin group is not empty when the route is created. - frontDoorPrimaryOrigin - frontDoorSecondaryOrigin - ] - properties: { - originGroup: { - id: frontDoorOriginGroup.id - } - supportedProtocols: [ - 'Http' - 'Https' - ] - patternsToMatch: [ - '/*' - ] - forwardingProtocol: 'HttpsOnly' - linkToDefaultDomain: 'Enabled' - httpsRedirect: 'Enabled' - } -} - -resource frontdoorWebApplicationFirewallPolicy 'Microsoft.Network/frontdoorwebapplicationfirewallpolicies@2020-11-01' = { - name: 'wafpolicy${globalResourceToken}' - location: 'Global' - sku: { - name: 'Premium_AzureFrontDoor' - } - properties: { - policySettings: { - enabledState: 'Enabled' - mode: 'Prevention' - requestBodyCheck: 'Enabled' - } - customRules: { - rules: [] - } - managedRules: { - managedRuleSets: [ - { - ruleSetType: 'Microsoft_DefaultRuleSet' - ruleSetVersion: '2.0' - ruleSetAction: 'Block' - ruleGroupOverrides: [] - exclusions: [] - } - { - ruleSetType: 'Microsoft_BotManagerRuleSet' - ruleSetVersion: '1.0' - ruleSetAction: 'Block' - ruleGroupOverrides: [] - exclusions: [] - } - ] - } - } -} - -resource profiles_manualryckozesqpn24_name_manualwafpolicy_cfc67469 'Microsoft.Cdn/profiles/securitypolicies@2021-06-01' = { - parent: frontDoorProfile - name: 'wafpolicy-${globalResourceToken}' - properties: { - parameters: { - wafPolicy: { - id: frontdoorWebApplicationFirewallPolicy.id - } - associations: [ - { - domains: [ - { - id: frontDoorEndpoint.id - } - ] - patternsToMatch: [ - '/*' - ] - } - ] - type: 'WebApplicationFirewall' - } - } -} - -output HOST_NAME string = frontDoorEndpoint.properties.hostName diff --git a/infra/azureKeyVaultDiagnostics.bicep b/infra/azureKeyVaultDiagnostics.bicep deleted file mode 100644 index 2cd42e74..00000000 --- a/infra/azureKeyVaultDiagnostics.bicep +++ /dev/null @@ -1,31 +0,0 @@ -@minLength(1) -@description('ResourceId for a log analytics workspace that will collect diagnostic info for Key Vault and Front Door') -param logAnalyticsWorkspaceIdForDiagnostics string - -@minLength(1) -@description('Name of a key vault that shuold be monitored') -param keyVaultName string - -resource existingKeyVault 'Microsoft.KeyVault/vaults@2021-11-01-preview' existing = { - name: keyVaultName -} - -resource keyVaultDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { - scope: existingKeyVault - name: 'default' - properties: { - workspaceId: logAnalyticsWorkspaceIdForDiagnostics - logs: [ - { - category: 'AuditEvent' - enabled: true - } - ] - metrics: [ - { - category: 'AllMetrics' - enabled: true - } - ] - } -} diff --git a/infra/azureRedisCache.bicep b/infra/azureRedisCache.bicep deleted file mode 100644 index 58d1eccd..00000000 --- a/infra/azureRedisCache.bicep +++ /dev/null @@ -1,139 +0,0 @@ -@description('The id for the user-assigned managed identity that runs deploymentScripts') -param devOpsManagedIdentityId string - -@description('Enables the template to choose different SKU by environment') -param isProd bool - -@minLength(1) -@description('The name of the Key Vault that will store AAD secrets for the web app') -param keyVaultName string - -@description('The Azure location where this solution is deployed') -param location string - -@description('A generated identifier used to create unique resources') -param resourceToken string - -@description('Name for private endpoint') -param privateEndpointNameForRedis string - -@description('Name of subnet for private endpoint') -param privateEndpointSubnetName string - -@description('Name of vnet for private endpoint') -param privateEndpointVnetName string - -@description('An object collection that contains annotations to describe the deployed azure resources to improve operational visibility') -param tags object - -@description('Ensures that the idempotent scripts are executed each time the deployment is executed') -param uniqueScriptId string = newGuid() - -var redisCacheSkuName = isProd ? 'Standard' : 'Basic' -var redisCacheFamilyName = isProd ? 'C' : 'C' -var redisCacheCapacity = isProd ? 1 : 0 - -resource redisCache 'Microsoft.Cache/Redis@2022-05-01' = { - name: '${resourceToken}-rediscache' - location: location - tags: tags - properties: { - redisVersion: '6.0' - sku: { - name: redisCacheSkuName - family: redisCacheFamilyName - capacity: redisCacheCapacity - } - enableNonSslPort: false - publicNetworkAccess: 'Disabled' - redisConfiguration: { - 'maxmemory-reserved': '30' - 'maxfragmentationmemory-reserved': '30' - 'maxmemory-delta': '30' - } - } -} - -resource existingKeyVault 'Microsoft.KeyVault/vaults@2021-11-01-preview' existing = { - name: keyVaultName - scope: resourceGroup() - - resource kvSecretRedis 'secrets@2021-11-01-preview' = { - name: 'App--RedisCache--ConnectionString' - tags: tags - properties: { - value: '${redisCache.name}.redis.cache.windows.net:6380,password=${redisCache.listKeys().primaryKey},ssl=True,abortConnect=False' - } - } -} - -resource vnet 'Microsoft.Network/virtualNetworks@2020-07-01' existing = { - name: privateEndpointVnetName -} - -resource privateEndpointForRedis 'Microsoft.Network/privateEndpoints@2020-07-01' = { - name: privateEndpointNameForRedis - location: location - tags: tags - properties: { - subnet: { - id: resourceId('Microsoft.Network/virtualNetworks/subnets', vnet.name, privateEndpointSubnetName) - } - privateLinkServiceConnections: [ - { - name: redisCache.name - properties: { - privateLinkServiceId: redisCache.id - groupIds: [ - 'redisCache' - ] - } - } - ] - } - dependsOn: [ - vnet - ] -} - -resource privateDnsZoneNameForRedis 'Microsoft.Network/privateDnsZones@2020-06-01' = { - name: 'privatelink.redis.cache.windows.net' - location: 'global' - tags: tags -} - -resource privateDnsZoneNameForRedis_link 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = { - parent: privateDnsZoneNameForRedis - name: '${privateDnsZoneNameForRedis.name}-link' - location: 'global' - tags: tags - properties: { - registrationEnabled: false - virtualNetwork: { - id: vnet.id - } - } -} - -resource makeRedisAccessibleForDevs 'Microsoft.Resources/deploymentScripts@2020-10-01' = if (!isProd) { - name: 'makeRedisAccessibleForDevs' - location: location - tags: tags - kind:'AzureCLI' - identity:{ - type: 'UserAssigned' - userAssignedIdentities: { - '${devOpsManagedIdentityId}': {} - } - } - properties: { - forceUpdateTag: uniqueScriptId - azCliVersion: '2.37.0' - retentionInterval: 'P1D' - scriptContent: loadTextContent('./deploymentScripts/azureRedisCachePublicDevAccess.sh') - arguments:' --subscription ${subscription().subscriptionId} --resource-group ${resourceGroup().name} --name ${redisCache.name}' - } -} - -output keyVaultRedisConnStrName string = existingKeyVault::kvSecretRedis.name -output privateDnsZoneId string = privateDnsZoneNameForRedis.id diff --git a/infra/azureSqlDatabase.bicep b/infra/azureSqlDatabase.bicep deleted file mode 100644 index 8bb86ddd..00000000 --- a/infra/azureSqlDatabase.bicep +++ /dev/null @@ -1,144 +0,0 @@ -@minLength(1) -@description('The id for the user-assigned managed identity that runs deploymentScripts') -param devOpsManagedIdentityId string - -@description('Expecting the user-assigned managed identity that represents the API web app. Will become the SQL db admin') -param managedIdentity object - -@minLength(1) -@description('A generated identifier used to create unique resources') -param resourceToken string - -@description('Enables the template to choose different SKU by environment') -param isProd bool - -@minLength(1) -@description('The name of an admin account that can be used to add Managed Identities to Azure SQL') -param sqlAdministratorLogin string - -@secure() -@minLength(1) -// note - this password should not be saved. the apps, and devs, connect with Managed Identity or Azure AD -@description('The password for an admin account that can be used to add Managed Identities to Azure SQL') -param sqlAdministratorPassword string - -@description('Ensures that the idempotent scripts are executed each time the deployment is executed') -param uniqueScriptId string = newGuid() - -@minLength(1) -@description('Primary location for all resources. Should specify an Azure region. e.g. `eastus2` ') -param location string - -@description('An object collection that contains annotations to describe the deployed azure resources to improve operational visibility') -param tags object - -var sqlServerName = '${resourceToken}-sql-server' - -resource allowSqlAdminScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = { - name: 'allowSqlAdminScript' - location: location - tags: tags - kind: 'AzurePowerShell' - identity:{ - type: 'UserAssigned' - userAssignedIdentities: { - '${devOpsManagedIdentityId}': {} - } - } - properties: { - forceUpdateTag: uniqueScriptId - azPowerShellVersion: '7.4' - retentionInterval: 'P1D' - cleanupPreference: 'OnSuccess' - arguments: '-SqlServerName \'${sqlServerName}\' -ResourceGroupName \'${resourceGroup().name}\'' - scriptContent: loadTextContent('./deploymentScripts/enableSqlAdminForServer.ps1') - } -} - -resource sqlServer 'Microsoft.Sql/servers@2021-02-01-preview' = { - name: sqlServerName - location: location - tags: tags - properties: { - administratorLogin: sqlAdministratorLogin - administratorLoginPassword: sqlAdministratorPassword - administrators: { - login: managedIdentity.name - principalType: 'User' - sid: managedIdentity.properties.principalId - tenantId: managedIdentity.properties.tenantId - } - version: '12.0' - } - dependsOn:[ - allowSqlAdminScript - ] -} - -var sqlCatalogName = '${resourceToken}-sql-database' -var skuTierName = isProd ? 'Premium' : 'Standard' -var dtuCapacity = isProd ? 125 : 10 -var requestedBackupStorageRedundancy = isProd ? 'Geo' : 'Local' -var readScale = isProd ? 'Enabled' : 'Disabled' - - -resource sqlDatabase 'Microsoft.Sql/servers/databases@2021-11-01-preview' = { - name: '${sqlServer.name}/${sqlCatalogName}' - location: location - tags: union(tags, { - displayName: sqlCatalogName - }) - sku: { - name: skuTierName - tier: skuTierName - capacity: dtuCapacity - } - properties: { - requestedBackupStorageRedundancy: requestedBackupStorageRedundancy - readScale: readScale - } -} - -// To allow applications hosted inside Azure to connect to your SQL server, Azure connections must be enabled. -// To enable Azure connections, there must be a firewall rule with starting and ending IP addresses set to 0.0.0.0. -// This recommended rule is only applicable to Azure SQL Database. -// Ref: https://learn.microsoft.com/azure/azure-sql/database/firewall-configure?view=azuresql#connections-from-inside-azure -resource allowAllWindowsAzureIps 'Microsoft.Sql/servers/firewallRules@2021-11-01-preview' = { - name: 'AllowAllWindowsAzureIps' - parent: sqlServer - properties: { - endIpAddress: '0.0.0.0' - startIpAddress: '0.0.0.0' - } -} - -resource createSqlUserScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = { - name: 'createSqlUserScript' - location: location - tags: tags - kind: 'AzurePowerShell' - identity:{ - type: 'UserAssigned' - userAssignedIdentities: { - '${devOpsManagedIdentityId}': {} - } - } - properties: { - forceUpdateTag: uniqueScriptId - azPowerShellVersion: '7.4' - retentionInterval: 'P1D' - cleanupPreference: 'OnSuccess' - arguments: '-ServerName \'${sqlServer.name}\' -ResourceGroupName \'${resourceGroup().name}\' -ServerUri \'${sqlServer.properties.fullyQualifiedDomainName}\' -CatalogName \'${sqlCatalogName}\' -ApplicationId \'${managedIdentity.properties.principalId}\' -ManagedIdentityName \'${managedIdentity.name}\' -SqlAdminLogin \'${sqlAdministratorLogin}\' -SqlAdminPwd \'${sqlAdministratorPassword}\' -IsProd ${isProd ? '1' : '0'}' - scriptContent: loadTextContent('./deploymentScripts/createSqlAcctForManagedIdentity.ps1') - } - dependsOn:[ - sqlDatabase - ] -} - -output sqlServerFqdn string = sqlServer.properties.fullyQualifiedDomainName -output sqlCatalogName string = sqlCatalogName - -output sqlServerName string = sqlServer.name -output sqlServerId string = sqlServer.id -output sqlDatabaseName string = sqlDatabase.name diff --git a/infra/azureStorage.bicep b/infra/azureStorage.bicep deleted file mode 100644 index 12289e5d..00000000 --- a/infra/azureStorage.bicep +++ /dev/null @@ -1,78 +0,0 @@ -@description('Enables the template to choose different SKU by environment') -param isProd bool - -@minLength(1) -@description('Primary location for all resources. Should specify an Azure region. e.g. `eastus2` ') -param location string - -@minLength(1) -@description('A generated identifier used to create unique resources') -param resourceToken string - -@description('An object collection that contains annotations to describe the deployed azure resources to improve operational visibility') -param tags object - -@description('Role assignments to add when resource is created') -param roleAssignmentsList array - -@description('Id of subnet for private endpoint') -param privateLinkSubnetId string - -@description('Id of Azure Private DNS for private endpoint') -param privateDnsZoneId string - - -var storageSku = isProd ? 'Standard_ZRS' : 'Standard_LRS' - -resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = { - name: '${resourceToken}storage' //storage account name cannot contain character '-' - tags: tags - location: location - sku: { - name: storageSku - } - kind: 'StorageV2' - properties: { - publicNetworkAccess: 'Disabled' - } -} - -resource blobServices 'Microsoft.Storage/storageAccounts/blobServices@2022-09-01' = { - parent: storageAccount - name:'default' -} - -resource container 'Microsoft.Storage/storageAccounts/blobServices/containers@2022-09-01' = { - parent: blobServices - name: 'tickets' -} - -resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = [for roleAssignment in roleAssignmentsList: { - name: guid(roleAssignment.principalId, roleAssignment.roleDefinitionId, resourceGroup().id) - scope: container - properties: { - description: roleAssignment.description - principalId: roleAssignment.principalId - roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', roleAssignment.roleDefinitionId) - principalType: roleAssignment.principalType - } -}] - -module privateLink 'connectByPrivateLink.bicep'={ - name: '${storageAccount.name}-privateLink' - params: { - location: location - name: 'privateEndpointForTickeStore' - tags: tags - serviceResourceId: storageAccount.id - subnetResourceId: privateLinkSubnetId - serviceGroupIds: ['blob'] - privateDnsZoneId: privateDnsZoneId - } -} - - -output storageAccountResourceId string = storageAccount.id -output storageAccocuntBlobURL string = storageAccount.properties.primaryEndpoints.blob -output containerId string = container.id -output containerName string = container.name diff --git a/infra/bicepconfig.json b/infra/bicepconfig.json new file mode 100644 index 00000000..1b46d8c9 --- /dev/null +++ b/infra/bicepconfig.json @@ -0,0 +1,6 @@ +{ + "experimentalFeaturesEnabled": { + "sourceMapping": true, + "userDefinedTypes": true + } +} \ No newline at end of file diff --git a/infra/connectByPrivateLink.bicep b/infra/connectByPrivateLink.bicep deleted file mode 100644 index 1d962409..00000000 --- a/infra/connectByPrivateLink.bicep +++ /dev/null @@ -1,62 +0,0 @@ -@minLength(1) -@description('Name of the private endpoint that will be created for this connection') -param name string - -@minLength(1) -@description('Primary location for all resources. Should specify an Azure region. e.g. `eastus2` ') -param location string - -@minLength(1) -@description('The resourceId of an existing Azure subnet that will be used to create a private endpoint connection') -param subnetResourceId string - -@minLength(1) -@description('The resourceId of an existing Azure private DNS that will provide the routing for this private endpoint') -param privateDnsZoneId string - -@minLength(1) -@description('The resourceId of an existing Azure resource that will be accessed by the private endpoint connection') -param serviceResourceId string - -@description('The type of Azure resource that will be networked as a private endpoint such as `configurationStores` or `vault`') -param serviceGroupIds array - -@description('An object collection that contains annotations to describe the deployed azure resources to improve operational visibility') -param tags object - -resource privateEndpoint 'Microsoft.Network/privateEndpoints@2020-07-01' = { - name: name - location: location - tags: tags - properties: { - subnet: { - id: subnetResourceId - } - privateLinkServiceConnections: [ - { - name: name - properties: { - privateLinkServiceId: serviceResourceId - groupIds: serviceGroupIds - } - } - ] - } -} - -resource privateDnsZoneGroup 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2020-07-01' = { - name: privateEndpoint.name - parent: privateEndpoint - - properties: { - privateDnsZoneConfigs: [ - { - name: name - properties: { - privateDnsZoneId: privateDnsZoneId - } - } - ] - } -} - diff --git a/infra/core/compute/postDeploymentScript/post-deployment.sh b/infra/core/compute/postDeploymentScript/post-deployment.sh new file mode 100644 index 00000000..40216d2e --- /dev/null +++ b/infra/core/compute/postDeploymentScript/post-deployment.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# install AZD +curl -fsSL https://aka.ms/install-azd.sh | sudo bash + +# add Microsoft package feed for the dotnet install +# Get Ubuntu version +declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi) + +# Download Microsoft signing key and repository +wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb -O packages-microsoft-prod.deb + +# Install Microsoft signing key and repository +sudo dpkg -i packages-microsoft-prod.deb + +# Clean up +rm packages-microsoft-prod.deb + +# Update packages +sudo apt-get -y update + +# install jq +sudo apt-get install -y jq + +# install dotnet +sudo apt-get install -y dotnet-sdk-8.0 + +# install Azure CLI +curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash + +# make directory for SCP +mkdir /home/azureadmin/web-app-pattern + +sudo chown -R azureadmin:azureadmin /home/azureadmin/web-app-pattern + +# install pwsh core + +# Download the PowerShell package file +wget https://github.com/PowerShell/PowerShell/releases/download/v7.4.1/powershell_7.4.1-1.deb_amd64.deb + +################################### +# Install the PowerShell package +sudo dpkg -i powershell_7.4.1-1.deb_amd64.deb + +# Resolve missing dependencies and finish the install (if necessary) +sudo apt-get install -f + +# Delete the downloaded package file +rm powershell_7.4.1-1.deb_amd64.deb + +# install Az module +sudo pwsh -Command "Install-Module -Name Az -Repository PSGallery -Scope AllUsers -Force" \ No newline at end of file diff --git a/infra/core/compute/ubuntu-jumpbox.bicep b/infra/core/compute/ubuntu-jumpbox.bicep new file mode 100644 index 00000000..f9e43a9b --- /dev/null +++ b/infra/core/compute/ubuntu-jumpbox.bicep @@ -0,0 +1,275 @@ +targetScope = 'resourceGroup' + +/* +** Ubuntu VM Jumpbox +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates an Ubuntu VM with appropriate capabilities to act as a +** jumpbox +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The name of the primary resource') +param name string + +@minLength(3) +@maxLength(15) +@description('The name of the linux PC. By default, this will be automatically constructed by the resource name.') +param computerLinuxName string? + +@description('Username for the Virtual Machine.') +param adminUsername string + +@description('Type of authentication to use on the Virtual Machine. SSH key is recommended.') +@allowed([ + 'sshPublicKey' + 'password' +]) +param authenticationType string = 'password' + +@description('SSH Key or password for the Virtual Machine. SSH key is recommended.') +@secure() +param adminPasswordOrKey string + +@description('The Ubuntu version for the VM. This will pick a fully patched image of this given Ubuntu version.') +@allowed([ + 'Ubuntu-1804' + 'Ubuntu-2004' + 'Ubuntu-2204' +]) +param ubuntuOSVersion string = 'Ubuntu-2204' + +@description('Location for all resources.') +param location string = resourceGroup().location + +@description('The size of the VM') +param vmSize string = 'Standard_B2ms' + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ + +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +@description('The subnet ID to use for the resource.') +param subnetId string + +/* +** Settings +*/ + +// ======================================================================== +// VARIABLES +// ======================================================================== + +// based on the images allowed we enable TrustedLaunch by default to opt-in to security features by default. +// this can be swapped to 'Standard' if the user wants to opt-out of TrustedLaunch +// Trusted launch guards against boot kits, rootkits, and kernel-level malware. +// Learn more at https://learn.microsoft.com/en-us/azure/virtual-machines/trusted-launch +var securityType = 'TrustedLaunch' +var validComputerName = replace(replace(name, '-', ''), '_', '') +var computerName = !empty(computerLinuxName) ? computerLinuxName : length(validComputerName) > 15 ? substring(validComputerName, 0, 15) : validComputerName + +var configScriptRepoUrl = 'https://raw.githubusercontent.com/KSchlobohm/reliable-web-app-vm-postconfiguration/main' + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +var imageReference = { + 'Ubuntu-1804': { + publisher: 'Canonical' + offer: 'UbuntuServer' + sku: '18_04-lts-gen2' + version: 'latest' + } + 'Ubuntu-2004': { + publisher: 'Canonical' + offer: '0001-com-ubuntu-server-focal' + sku: '20_04-lts-gen2' + version: 'latest' + } + 'Ubuntu-2204': { + publisher: 'Canonical' + offer: '0001-com-ubuntu-server-jammy' + sku: '22_04-lts-gen2' + version: 'latest' + } +} +var osDiskType = 'Standard_LRS' +var linuxConfiguration = (authenticationType == 'password') ? {} : { + disablePasswordAuthentication: true + ssh: { + publicKeys: [ + { + path: '/home/${adminUsername}/.ssh/authorized_keys' + keyData: adminPasswordOrKey + } + ] + } +} +var securityProfileJson = { + uefiSettings: { + secureBootEnabled: true + vTpmEnabled: true + } + securityType: securityType +} +var extensionName = 'GuestAttestation' +var extensionPublisher = 'Microsoft.Azure.Security.LinuxAttestation' +var extensionVersion = '1.0' +var maaTenantName = 'GuestAttestation' +var maaEndpoint = substring('emptystring', 0, 0) + + +resource networkInterface 'Microsoft.Network/networkInterfaces@2022-11-01' = { + name: 'nic-${name}' + location: location + tags: tags + properties: { + enableAcceleratedNetworking: false + enableIPForwarding: false + ipConfigurations: [ + { + name: 'ipconfig1' + properties: { + primary: true + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: subnetId + } + } + } + ] + } +} + + +resource virtualMachine 'Microsoft.Compute/virtualMachines@2021-11-01' = { + name: name + location: location + properties: { + hardwareProfile: { + vmSize: vmSize + } + storageProfile: { + osDisk: { + createOption: 'FromImage' + managedDisk: { + storageAccountType: osDiskType + } + } + imageReference: imageReference[ubuntuOSVersion] + } + networkProfile: { + networkInterfaces: [ + { + id: networkInterface.id + } + ] + } + osProfile: { + computerName: computerName + adminUsername: adminUsername + adminPassword: adminPasswordOrKey + linuxConfiguration: ((authenticationType == 'password') ? null : linuxConfiguration) + } + securityProfile: ((securityType == 'TrustedLaunch') ? securityProfileJson : null) + } + tags: tags +} + +resource vmExtension 'Microsoft.Compute/virtualMachines/extensions@2022-03-01' = if ((securityType == 'TrustedLaunch') && ((securityProfileJson.uefiSettings.secureBootEnabled == true) && (securityProfileJson.uefiSettings.vTpmEnabled == true))) { + parent: virtualMachine + name: extensionName + location: location + properties: { + publisher: extensionPublisher + type: extensionName + typeHandlerVersion: extensionVersion + autoUpgradeMinorVersion: true + enableAutomaticUpgrade: true + settings: { + AttestationConfig: { + MaaSettings: { + maaEndpoint: maaEndpoint + maaTenantName: maaTenantName + } + } + } + } +} + +resource postDeploymentScript 'Microsoft.Compute/virtualMachines/extensions@2023-03-01' = { + name: 'postDeploymentScript' + location: location + parent: virtualMachine + properties: { + publisher: 'Microsoft.Azure.Extensions' + type: 'CustomScript' + typeHandlerVersion: '2.1' + autoUpgradeMinorVersion: true + settings: { + skipDos2Unix:false + } + protectedSettings: { + commandToExecute: 'chmod +x post-deployment.sh && bash post-deployment.sh' + fileUris: [ + '${configScriptRepoUrl}/post-deployment.sh' + ] + } + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: virtualMachine + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: [] + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +output id string = virtualMachine.id +output name string = virtualMachine.name + +output computer_name string = computerName! diff --git a/infra/core/compute/windows-buildagent.bicep b/infra/core/compute/windows-buildagent.bicep new file mode 100644 index 00000000..ddf15a95 --- /dev/null +++ b/infra/core/compute/windows-buildagent.bicep @@ -0,0 +1,277 @@ +targetScope = 'resourceGroup' + +/* +** Windows 11 Build Agent +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates a Windows 11 VM with appropriate capabilities to act as a +** Build Agent with either Azure DevOps or GitHub Actions. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/BuildAgentSettings.bicep +@description('Describes the required settings for a Azure DevOps Pipeline runner') +type AzureDevopsSettings = { + @description('The URL of the Azure DevOps organization to use for this agent') + organizationUrl: string + + @description('The Personal Access Token (PAT) to use for the Azure DevOps agent') + token: string +} + +@description('Describes the required settings for a GitHub Actions runner') +type GithubActionsSettings = { + @description('The URL of the GitHub repository to use for this agent') + repositoryUrl: string + + @description('The Personal Access Token (PAT) to use for the GitHub Actions runner') + token: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of a user-assigned managed identity to use as the identity for this resource. Use a blank string for a system-assigned identity.') +param managedIdentityId string = '' + +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +@description('The subnet ID to use for the resource.') +param subnetId string + +/* +** Settings +*/ +@secure() +@minLength(8) +@description('The password for the administrator account on the build agent.') +param administratorPassword string + +@minLength(8) +@description('The username for the administrator account on the build agent.') +param administratorUsername string + +@description('If provided, the Azure DevOps settings to use for the build agent.') +param azureDevopsSettings AzureDevopsSettings? + +@description('If provided, the GitHub Actions settings to use for the build agent.') +param githubActionsSettings GithubActionsSettings? + +@minLength(3) +@maxLength(15) +@description('The name of the windows PC. By default, this will be automatically constructed by the resource name.') +param computerWindowsName string? + +@description('If true, join the computer to the Microsoft Entra ID domain.') +param joinToMicrosoftEntraId bool = true + +@description('The SKU for the virtual machine.') +param sku string = 'Standard_B2ms' + +@description('If true, install the Azure CLI, SSMS, and git on the machine.') +param installTools bool = true + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var identity = !empty(managedIdentityId) ? { + type: 'UserAssigned' + userAssignedIdentities: { + '${managedIdentityId}': {} + } +} : { + type: 'SystemAssigned' +} + +var validComputerName = replace(replace(name, '-', ''), '_', '') +var computerName = !empty(computerWindowsName) ? computerWindowsName : length(validComputerName) > 15 ? substring(validComputerName, 0, 15) : validComputerName + +var installToolsOption = installTools ? ' -install_clis -install_ssms' : '' + +var azureDevopsOption = azureDevopsSettings != null ? ' -ado_organization "${azureDevopsSettings!.organizationUrl}" -ado_token "${azureDevopsSettings!.token}"' : '' +var githubActionsOption = githubActionsSettings != null ? ' -github_repository "${githubActionsSettings!.repositoryUrl}" -github_token "${githubActionsSettings!.token}"' : '' +var doInstall = azureDevopsSettings != null || githubActionsSettings != null + + +// This is the URL to the App Service Landing Zone Accelerator GitHub repository. +// See: https://github.com/Azure/appservice-landing-zone-accelerator +var landingZoneAcceleratorUrl = 'https://raw.githubusercontent.com/Azure/appservice-landing-zone-accelerator/main/scenarios/shared/scripts/win-devops-vm-extensions' + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource networkInterface 'Microsoft.Network/networkInterfaces@2022-11-01' = if (doInstall) { + name: 'nic-${name}' + location: location + tags: tags + properties: { + enableAcceleratedNetworking: false + enableIPForwarding: false + ipConfigurations: [ + { + name: 'ipconfig1' + properties: { + primary: true + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: subnetId + } + } + } + ] + } +} + +resource virtualMachine 'Microsoft.Compute/virtualMachines@2023-03-01' = if (doInstall) { + name: name + location: location + tags: tags + identity: identity + properties: { + diagnosticsProfile: { + bootDiagnostics: { + enabled: true + } + } + hardwareProfile: { + vmSize: sku + } + networkProfile: { + networkInterfaces: [ + { + id: networkInterface.id + properties: { + deleteOption: 'Delete' + } + } + ] + } + osProfile: { + adminPassword: administratorPassword + adminUsername: administratorUsername + computerName: computerName + windowsConfiguration: { + provisionVMAgent: true + enableAutomaticUpdates: true + patchSettings: { + patchMode: 'AutomaticByOS' + assessmentMode: 'ImageDefault' + enableHotpatching: false + } + enableVMAgentPlatformUpdates: true + } + } + storageProfile: { + imageReference: { + publisher: 'MicrosoftWindowsDesktop' + offer: 'Windows-11' + sku: 'win11-22h2-pro' + version: 'latest' + } + osDisk: { + osType: 'Windows' + createOption: 'FromImage' + managedDisk: { + storageAccountType: 'Standard_LRS' + } + } + } + } +} + +resource aadLoginExtension 'Microsoft.Compute/virtualMachines/extensions@2023-03-01' = if (doInstall && joinToMicrosoftEntraId) { + name: 'AADLoginForWindows' + location: location + parent: virtualMachine + properties: { + publisher: 'Microsoft.Azure.ActiveDirectory' + type: 'AADLoginForWindows' + typeHandlerVersion: '1.0' + autoUpgradeMinorVersion: true + } +} + +resource postDeploymentScript 'Microsoft.Compute/virtualMachines/extensions@2023-03-01' = if (doInstall) { + name: 'postDeploymentScript' + location: location + parent: virtualMachine + properties: { + publisher: 'Microsoft.Compute' + type: 'CustomScriptExtension' + typeHandlerVersion: '1.10' + autoUpgradeMinorVersion: true + settings: { + fileUris: [ + '${landingZoneAcceleratorUrl}/post-deployment.ps1' + ] + } + protectedSettings: { + commandToExecute: 'powershell.exe -ExecutionPolicy Unrestricted -File post-deployment.ps1${installToolsOption}${azureDevopsOption}${githubActionsOption}' + } + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (doInstall && diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: virtualMachine + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: [] + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = virtualMachine.id +output name string = virtualMachine.name + +output computer_name string = computerName! diff --git a/infra/core/compute/windows-jumpbox.bicep b/infra/core/compute/windows-jumpbox.bicep new file mode 100644 index 00000000..7fa7f88f --- /dev/null +++ b/infra/core/compute/windows-jumpbox.bicep @@ -0,0 +1,247 @@ +targetScope = 'resourceGroup' + +/* +** Windows 11 Jumpbox +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates a Windows 11 VM with appropriate capabilities to act as a +** jumpbox. This includes the Windows CLI, git, and SSMS. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of a user-assigned managed identity to use as the identity for this resource. Use a blank string for a system-assigned identity.') +param managedIdentityId string = '' + +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +@description('The subnet ID to use for the resource.') +param subnetId string + +/* +** Settings +*/ +@secure() +@minLength(8) +@description('The password for the administrator account on the jump box.') +param administratorPassword string + +@minLength(8) +@description('The username for the administrator account on the jump box.') +param administratorUsername string + +@minLength(3) +@maxLength(15) +@description('The name of the windows PC. By default, this will be automatically constructed by the resource name.') +param computerWindowsName string? + +@description('If true, join the computer to the Microsoft Entra ID domain.') +param joinToMicrosoftEntraId bool = true + +@description('The SKU for the virtual machine.') +param sku string = 'Standard_B2ms' + +@description('If true, install the Azure CLI, SSMS, and git on the machine.') +param installTools bool = true + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var identity = !empty(managedIdentityId) ? { + type: 'UserAssigned' + userAssignedIdentities: { + '${managedIdentityId}': {} + } +} : { + type: 'SystemAssigned' +} + +var validComputerName = replace(replace(name, '-', ''), '_', '') +var computerName = !empty(computerWindowsName) ? computerWindowsName : length(validComputerName) > 15 ? substring(validComputerName, 0, 15) : validComputerName + +var installToolsOption = installTools ? '-install_clis' : '' + +// This is the URL to the App Service Landing Zone Accelerator GitHub repository. +// See: https://github.com/Azure/appservice-landing-zone-accelerator +var landingZoneAcceleratorUrl = 'https://raw.githubusercontent.com/Azure/appservice-landing-zone-accelerator/main/scenarios/shared/scripts/win-devops-vm-extensions' + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource networkInterface 'Microsoft.Network/networkInterfaces@2022-11-01' = { + name: 'nic-${name}' + location: location + tags: tags + properties: { + enableAcceleratedNetworking: false + enableIPForwarding: false + ipConfigurations: [ + { + name: 'ipconfig1' + properties: { + primary: true + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: subnetId + } + } + } + ] + } +} + +resource virtualMachine 'Microsoft.Compute/virtualMachines@2023-03-01' = { + name: name + location: location + tags: tags + identity: identity + properties: { + diagnosticsProfile: { + bootDiagnostics: { + enabled: true + } + } + hardwareProfile: { + vmSize: sku + } + networkProfile: { + networkInterfaces: [ + { + id: networkInterface.id + properties: { + deleteOption: 'Delete' + } + } + ] + } + osProfile: { + adminPassword: administratorPassword + adminUsername: administratorUsername + computerName: computerName + windowsConfiguration: { + provisionVMAgent: true + enableAutomaticUpdates: true + patchSettings: { + patchMode: 'AutomaticByOS' + assessmentMode: 'ImageDefault' + enableHotpatching: false + } + enableVMAgentPlatformUpdates: true + } + } + storageProfile: { + imageReference: { + publisher: 'MicrosoftWindowsDesktop' + offer: 'Windows-11' + sku: 'win11-23h2-pro' + version: 'latest' + } + osDisk: { + osType: 'Windows' + createOption: 'FromImage' + managedDisk: { + storageAccountType: 'Standard_LRS' + } + } + } + } +} + +resource aadLoginExtension 'Microsoft.Compute/virtualMachines/extensions@2023-03-01' = if (joinToMicrosoftEntraId) { + name: 'AADLoginForWindows' + location: location + parent: virtualMachine + properties: { + publisher: 'Microsoft.Azure.ActiveDirectory' + type: 'AADLoginForWindows' + typeHandlerVersion: '1.0' + autoUpgradeMinorVersion: true + } +} + +resource postDeploymentScript 'Microsoft.Compute/virtualMachines/extensions@2023-03-01' = { + name: 'postDeploymentScript' + location: location + parent: virtualMachine + properties: { + publisher: 'Microsoft.Compute' + type: 'CustomScriptExtension' + typeHandlerVersion: '1.10' + autoUpgradeMinorVersion: true + settings: { + fileUris: [ + '${landingZoneAcceleratorUrl}/post-deployment.ps1' + ] + } + protectedSettings: { + commandToExecute: 'powershell.exe -ExecutionPolicy Unrestricted -File post-deployment.ps1 ${installToolsOption}' + } + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: virtualMachine + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: [] + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = virtualMachine.id +output name string = virtualMachine.name + +output computer_name string = computerName! diff --git a/infra/core/config/app-configuration.bicep b/infra/core/config/app-configuration.bicep new file mode 100644 index 00000000..d77e2f8c --- /dev/null +++ b/infra/core/config/app-configuration.bicep @@ -0,0 +1,197 @@ +targetScope = 'resourceGroup' + +/* +** App Configuration Store +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates an Azure App Configuration Store resource, including permission grants and diagnostics. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/ApplicationIdentity.bicep +@description('Type describing an application identity.') +type ApplicationIdentity = { + @description('The ID of the identity') + principalId: string + + @description('The type of identity - either ServicePrincipal or User') + principalType: 'ServicePrincipal' | 'User' +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/PrivateEndpointSettings.bicep +@description('Type describing the private endpoint settings.') +type PrivateEndpointSettings = { + @description('The name of the resource group to hold the Private DNS Zone. By default, this uses the same resource group as the resource.') + dnsResourceGroupName: string + + @description('The name of the private endpoint resource. By default, this uses a prefix of \'pe-\' followed by the name of the resource.') + name: string + + @description('The name of the resource group to hold the private endpoint. By default, this uses the same resource group as the resource.') + resourceGroupName: string + + @description('The ID of the subnet to link the private endpoint to.') + subnetId: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ +@description('Whether or not public endpoint access is allowed for this server') +param enablePublicNetworkAccess bool = true + +@description('If set, the private endpoint settings for this resource') +param privateEndpointSettings PrivateEndpointSettings? + +@description('The list of application identities to be granted owner access to the application resources.') +param ownerIdentities ApplicationIdentity[] = [] + +@description('The list of application identities to be granted reader access to the application resources.') +param readerIdentities ApplicationIdentity[] = [] + +@description('Specifies the SKU of the app configuration store.') +param skuName string = 'standard' + +// ======================================================================== +// VARIABLES +// ======================================================================== + +/* https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles */ + +// Allows full access to App Configuration data. +var appConfigurationDataOwnerRoleId = '5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b' + +// Allows read access to App Configuration data. +var appConfigurationDataReaderRoleId = '516239f1-63e1-4d78-a4de-a74fb236a071' + +var logCategories = [ + 'Audit' + 'HttpRequest' +] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource grantDataOwnerAccess 'Microsoft.Authorization/roleAssignments@2022-04-01' = [ for id in ownerIdentities: if (!empty(id.principalId)) { + name: guid(appConfigurationDataOwnerRoleId, id.principalId, appConfigStore.id, resourceGroup().name) + scope: appConfigStore + properties: { + principalType: id.principalType + roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', appConfigurationDataOwnerRoleId) + principalId: id.principalId + } +}] + +resource grantDataReaderAccess 'Microsoft.Authorization/roleAssignments@2022-04-01' = [ for id in readerIdentities: if (!empty(id.principalId)) { + name: guid(appConfigurationDataReaderRoleId, id.principalId, appConfigStore.id, resourceGroup().name) + scope: appConfigStore + properties: { + principalType: id.principalType + roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', appConfigurationDataReaderRoleId) + principalId: id.principalId + } +}] + +resource appConfigStore 'Microsoft.AppConfiguration/configurationStores@2023-03-01' = { + name: name + location: location + properties: { + // when publicNetworkAccess is Disabled - must pair with build agent to set config values + publicNetworkAccess: enablePublicNetworkAccess ? 'Enabled' : 'Disabled' + } + sku: { + name: skuName + } +} + +module privateEndpoint '../network/private-endpoint.bicep' = if (privateEndpointSettings != null) { + name: '${name}-private-endpoint' + scope: resourceGroup(privateEndpointSettings != null ? privateEndpointSettings!.resourceGroupName : resourceGroup().name) + params: { + name: privateEndpointSettings != null ? privateEndpointSettings!.name : 'pep-${name}' + location: location + tags: tags + dnsRsourceGroupName: privateEndpointSettings == null ? resourceGroup().name : privateEndpointSettings!.dnsResourceGroupName + + // Dependencies + linkServiceId: appConfigStore.id + linkServiceName: appConfigStore.name + subnetId: privateEndpointSettings != null ? privateEndpointSettings!.subnetId : '' + + // Settings + dnsZoneName: 'privatelink.azconfig.io' + groupIds: [ 'configurationStores' ] + } +} + +resource appConfigDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: appConfigStore + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: map(logCategories, (category) => { + category: category + enabled: diagnosticSettings!.enableLogs + }) + metrics: [ + { + category: 'AllMetrics' + enabled: true + } + ] + } +} + + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = appConfigStore.id +output name string = appConfigStore.name +output app_config_uri string = appConfigStore.properties.endpoint diff --git a/infra/core/cost-management/budget.bicep b/infra/core/cost-management/budget.bicep new file mode 100644 index 00000000..2590dbe3 --- /dev/null +++ b/infra/core/cost-management/budget.bicep @@ -0,0 +1,96 @@ +targetScope = 'resourceGroup' + +/* +** Budget +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Provides a recurring budget for the resource group. You must specify +** the amount minimally. +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The name of the primary resource') +param name string + +@description('The total amount of cost or usage to track with the budget; this is in the currency of the billing account.') +param amount int = 1000 + +@description('The time covered by a budget. Tracking of the amount will be reset based on the time grain.') +@allowed([ 'Monthly', 'Quarterly', 'Annually' ]) +param timeGrain string = 'Monthly' + +@description('The start date must be first of the month in YYYY-MM-DD format. Future start date should not be more than three months. Past start date should be selected within the timegrain preiod.') +param startDate string = utcNow('yyyy-MM') + +@description('The end date for the budget in YYYY-MM-DD format. If not provided, we default this to 10 years from the start date.') +param endDate string = dateTimeAdd(utcNow(), 'P10Y', 'yyyy-MM') + +@description('Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0.01 and 1000.') +param firstThreshold int = 75 + +@description('Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0.01 and 1000.') +param secondThreshold int = 95 + +@description('The list of email addresses to send the budget notification to when the threshold is exceeded.') +param contactEmails string[] + +@description('The set of values for the resource group filter.') +param resourceGroups string[] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource budget 'Microsoft.Consumption/budgets@2021-10-01' = { + name: name + properties: { + timePeriod: { + startDate: '${startDate}-01' + endDate: '${endDate}-01' + } + timeGrain: timeGrain + amount: amount + category: 'Cost' + notifications: { + NotificationForExceededBudget1: { + enabled: true + operator: 'GreaterThan' + threshold: firstThreshold + contactEmails: contactEmails + } + NotificationForExceededBudget2: { + enabled: true + operator: 'GreaterThan' + threshold: secondThreshold + contactEmails: contactEmails + } + NotificationForExceededBudget3: { + enabled: true + operator: 'GreaterThan' + threshold: 100 + contactEmails: contactEmails + } + } + filter: { + dimensions: { + name: 'ResourceGroupName' + operator: 'In' + values: resourceGroups + } + } + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = budget.id +output name string = budget.name + diff --git a/infra/core/database/azure-cache-for-redis.bicep b/infra/core/database/azure-cache-for-redis.bicep new file mode 100644 index 00000000..3be97689 --- /dev/null +++ b/infra/core/database/azure-cache-for-redis.bicep @@ -0,0 +1,165 @@ +targetScope = 'resourceGroup' + +/* +** Azure Cache for Redis +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates an Azure Cache for Redis resource, including permission grants and diagnostics. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/PrivateEndpointSettings.bicep +@description('Type describing the private endpoint settings.') +type PrivateEndpointSettings = { + @description('The name of the resource group to hold the Private DNS Zone. By default, this uses the same resource group as the resource.') + dnsResourceGroupName: string + + @description('The name of the private endpoint resource.') + name: string + + @description('The name of the resource group to hold the private endpoint.') + resourceGroupName: string + + @description('The ID of the subnet to link the private endpoint to.') + subnetId: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ + +@description('Specify a boolean value that indicates whether to allow access via non-SSL ports.') +param enableNonSslPort bool = false + +@description('Specify the pricing tier of the new Azure Redis Cache.') +@allowed([ + 'Basic' + 'Standard' + 'Premium' +]) +param redisCacheSku string = 'Standard' + +@description('Specify the family for the sku. C = Basic/Standard, P = Premium.') +@allowed([ + 'C' + 'P' +]) +param redisCacheFamily string = 'C' + +@description('Specify the size of the new Azure Redis Cache instance. Valid values: for C (Basic/Standard) family (0, 1, 2, 3, 4, 5, 6), for P (Premium) family (1, 2, 3, 4)') +@allowed([ + 0 + 1 + 2 + 3 + 4 + 5 + 6 +]) +param redisCacheCapacity int = 1 + +@description('If set, the private endpoint settings for this resource') +param privateEndpointSettings PrivateEndpointSettings? + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource cache 'Microsoft.Cache/redis@2023-04-01' = { + name: name + location: location + tags: tags + properties: { + enableNonSslPort: enableNonSslPort + minimumTlsVersion: '1.2' + sku: { + capacity: redisCacheCapacity + family: redisCacheFamily + name: redisCacheSku + } + } +} + +module privateEndpoint '../network/private-endpoint.bicep' = if (privateEndpointSettings != null) { + name: '${name}-private-endpoint' + scope: resourceGroup(privateEndpointSettings != null ? privateEndpointSettings!.resourceGroupName : resourceGroup().name) + params: { + name: privateEndpointSettings != null ? privateEndpointSettings!.name : 'pep-${name}' + location: location + tags: tags + dnsRsourceGroupName: privateEndpointSettings == null ? resourceGroup().name : privateEndpointSettings!.dnsResourceGroupName + + // Dependencies + linkServiceId: cache.id + linkServiceName: cache.name + subnetId: privateEndpointSettings != null ? privateEndpointSettings!.subnetId : '' + + // Settings + dnsZoneName: 'privatelink.redis.cache.windows.net' + groupIds: [ 'redisCache' ] + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: cache + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: map([ 'ConnectedClientList' ], (category) => { + category: category + enabled: diagnosticSettings!.enableLogs + }) + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +output name string = cache.name diff --git a/infra/core/database/create-sql-user-and-role.bicep b/infra/core/database/create-sql-user-and-role.bicep new file mode 100644 index 00000000..d51c7286 --- /dev/null +++ b/infra/core/database/create-sql-user-and-role.bicep @@ -0,0 +1,76 @@ +targetScope = 'resourceGroup' + +/* +** Create a User and Role on the SQL Database +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The Azure region for the resource.') +param location string + +@description('The tags to associate with this resource.') +param tags object = {} + +@description('The comma-separated list of database roles to assign to the user.') +param databaseRoles string = 'db_datareader' + +@description('The ID of the managed identity to be used to run the script.') +param managedIdentityId string + +@description('The principal (or object) ID of the user to create.') +param principalId string + +@description('The name of the user to create.') +param principalName string = '' + +@allowed([ 'ServicePrincipal', 'User' ]) +@description('The type of identity referenced by \'principalId\'.') +param principalType string = 'ServicePrincipal' + +@description('The name of the SQL Database resource.') +param sqlDatabaseName string + +@description('The name of the SQL Server resource.') +param sqlServerName string + +@description('Do not set - unique script ID to force the script to run.') +param uniqueScriptId string = newGuid() + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource createSqlUserAndRole 'Microsoft.Resources/deploymentScripts@2020-10-01' = { + name: 'createSqlUserAndRole-${principalId}' + location: location + tags: tags + kind: 'AzurePowerShell' + identity: { + type: 'UserAssigned' + userAssignedIdentities: { + '${managedIdentityId}': {} + } + } + properties: { + forceUpdateTag: uniqueScriptId + azPowerShellVersion: '7.4' + retentionInterval: 'PT1H' + cleanupPreference: 'OnExpiration' + arguments: join([ + '-SqlServerName \'${sqlServerName}\'' + '-SqlDatabaseName \'${sqlDatabaseName}\'' + '-ObjectId \'${principalId}\'' + !empty(principalName) ? '-DisplayName \'${principalName}\'' : '' + principalType == 'ServicePrincipal' ? '-IsServicePrincipal' : '' + '-DatabaseRoles ${databaseRoles}' + ], ' ') + scriptContent: loadTextContent('./scripts/create-sql-user-and-role.ps1') + } +} diff --git a/infra/core/database/scripts/create-sql-user-and-role.ps1 b/infra/core/database/scripts/create-sql-user-and-role.ps1 new file mode 100644 index 00000000..fb30f4c6 --- /dev/null +++ b/infra/core/database/scripts/create-sql-user-and-role.ps1 @@ -0,0 +1,108 @@ +#Requires -Version 7.0 + +<# +.SYNOPSIS + Creates a SQL user and assigns the user account to one or more roles. + +.DESCRIPTION + During an application deployment, the managed identity (and potentially the developer identity) + must be added to the SQL database as a user and assigned to one or more roles. This script + does exactly that using the owner managed identity. + +.PARAMETER SqlServerName + The name of the SQL Server resource +.PARAMETER SqlDatabaseName + The name of the SQL Database resource +.PARAMETER ObjectId + The Object (Principal) ID of the user to be added. +.PARAMETER DisplayName + The display name of the user to be added. This is optional. If not provided, the Get-AzADUser cmdlet + will be used to retrieve the display name. +.PARAMETER IsServicePrincipal + True if the ObjectId refers to a service principal rather than a user. +.PARAMETER DatabaseRoles + The comma-separated list of database roles that need to be assigned to the user. +#> + +Param( + [string] $SqlServerName, + [string] $SqlDatabaseName, + [string] $ObjectId, + [string] $DisplayName, + [switch] $IsServicePrincipal = $false, + [string[]] $DatabaseRoles = @('db_datareader','db_datawriter') +) + +function Resolve-Module($moduleName) { + # If module is imported; say that and do nothing + if (Get-Module | Where-Object { $_.Name -eq $moduleName }) { + Write-Debug "Module $moduleName is already imported" + } elseif (Get-Module -ListAvailable | Where-Object { $_.Name -eq $moduleName }) { + Import-Module $moduleName + } elseif (Find-Module -Name $moduleName | Where-Object { $_.Name -eq $moduleName }) { + Install-Module $moduleName -Force -Scope CurrentUser + Import-Module $moduleName + } else { + Write-Error "Module $moduleName not found" + Write-Host "###vso[task.complete result=Failed;]Failed" + [Environment]::exit(1) + } +} + +function ConvertTo-Sid($applicationId) { + [System.Guid]$guid = [System.Guid]::Parse($applicationId) + foreach ($byte in $guid.ToByteArray()) { + $byteGuid += [System.String]::Format("{0:X2}", $byte) + } + return "0x" + $byteGuid +} + +### +### MAIN SCRIPT +### +Resolve-Module -moduleName SqlServer + +# Get the SID for the ObjectId we are using +$Sid = ConvertTo-Sid -applicationId $ObjectId + +# Construct the SQL to create the user. +$sqlList = [System.Collections.ArrayList]@() + +$UserCreationOpt = if ($IsServicePrincipal) { "WITH sid = $($Sid), type = E" } else { "FROM EXTERNAL PROVIDER" } +$CreateUserSql = @" +IF NOT EXISTS ( + SELECT * FROM sys.database_principals WHERE name = N'$($DisplayName)' +) +CREATE USER [$($DisplayName)] $($UserCreationOpt); + +"@ +$sqlList.Add($CreateUserSql) | Out-Null + +foreach ($role in $DatabaseRoles) { + $GrantRoleSql = @" +IF NOT EXISTS ( + SELECT * FROM sys.database_principals p + JOIN sys.database_role_members $($role)_role ON $($role)_role.member_principal_id = p.principal_id + JOIN sys.database_principals role_names ON role_names.principal_id = $($role)_role.role_principal_id AND role_names.[name] = '$($role)' + WHERE p.[name]=N'$($DisplayName)' + ) +ALTER ROLE $($role) ADD MEMBER [$($DisplayName)]; + +"@ + $sqlList.Add($GrantRoleSql) | Out-Null +} + +# Execute the SQL Command on Azure SQL. +foreach ($sqlcmd in $sqlList) { + try { + $sqlcmd | Write-Output + $token = (Get-AzAccessToken -ResourceUrl https://database.windows.net/).Token + Invoke-SqlCmd -ServerInstance "$SqlServerName.database.windows.net" -Database $SqlDatabaseName -AccessToken $token -Query $sqlcmd -ErrorAction 'Stop' -StatisticsVariable 'stats' + $stats | ConvertTo-Json -Depth 10 | Write-Output + } catch { + Write-Error $_.Exception.Message + Write-Host "###vso[task.complete result=Failed;]Failed" + [Environment]::exit(1) + } +} + diff --git a/infra/core/database/sql-database.bicep b/infra/core/database/sql-database.bicep new file mode 100644 index 00000000..2e38eda8 --- /dev/null +++ b/infra/core/database/sql-database.bicep @@ -0,0 +1,181 @@ +targetScope = 'resourceGroup' + +/* +** SQL Database on an existing SQL Server +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/PrivateEndpointSettings.bicep +@description('Type describing the private endpoint settings.') +type PrivateEndpointSettings = { + @description('The name of the resource group to hold the Private DNS Zone. By default, this uses the same resource group as the resource.') + dnsResourceGroupName: string + + @description('The name of the private endpoint resource. By default, this uses a prefix of \'pe-\' followed by the name of the resource.') + name: string + + @description('The name of the resource group to hold the private endpoint. By default, this uses the same resource group as the resource.') + resourceGroupName: string + + @description('The ID of the subnet to link the private endpoint to.') + subnetId: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +@description('The SQL Server resource name.') +param sqlServerName string + +/* +** Settings +*/ +@description('The number of DTUs to allocate to the database.') +param dtuCapacity int + +@description('If set, the private endpoint settings for this resource') +param privateEndpointSettings PrivateEndpointSettings? + +@allowed([ 'Basic', 'Standard', 'Premium' ]) +@description('The service tier to use for the database.') +param sku string = 'Basic' + +@description('If true, enable availability zone redundancy.') +param zoneRedundant bool = false + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var logCategories = [ + 'SQLSecurityAuditEvents' + 'DevOpsOperationsAudit' + 'AutomaticTuning' + 'Blocks' + 'DatabaseWaitStatistics' + 'Deadlocks' + 'Errors' + 'QueryStoreRuntimeStatistics' + 'QueryStoreWaitStatistics' + 'SQLInsights' + 'Timeouts' +] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource sqlServer 'Microsoft.Sql/servers@2021-11-01' existing = { + name: sqlServerName +} + +resource sqlDatabase 'Microsoft.Sql/servers/databases@2021-11-01' = { + name: name + parent: sqlServer + location: location + tags: union(tags, { displayName: name }) + sku: { + name: sku + tier: sku + capacity: sku == 'Basic' ? 5 : dtuCapacity + } + properties: { + requestedBackupStorageRedundancy: zoneRedundant ? 'Zone' : 'Local' + readScale: sku == 'Premium' ? 'Enabled' : 'Disabled' + collation: 'SQL_Latin1_General_CP1_CI_AS' + zoneRedundant: zoneRedundant + } +} + +module privateEndpoint '../network/private-endpoint.bicep' = if (privateEndpointSettings != null) { + name: '${name}-sql-private-endpoint' + scope: resourceGroup(privateEndpointSettings != null ? privateEndpointSettings!.resourceGroupName : resourceGroup().name) + params: { + name: privateEndpointSettings != null ? privateEndpointSettings!.name : 'pep-${name}' + location: location + tags: tags + dnsRsourceGroupName: privateEndpointSettings == null ? resourceGroup().name : privateEndpointSettings!.dnsResourceGroupName + + + // Dependencies + linkServiceId: sqlServer.id + linkServiceName: '${sqlServer.name}/${sqlDatabase.name}' + subnetId: privateEndpointSettings != null ? privateEndpointSettings!.subnetId : '' + + // Settings + dnsZoneName: 'privatelink${az.environment().suffixes.sqlServerHostname}' + groupIds: [ 'sqlServer' ] + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: sqlDatabase + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: map(logCategories, (category) => { + category: category + enabled: diagnosticSettings!.enableLogs + }) + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = sqlDatabase.id +output name string = sqlDatabase.name +output connection_string string = 'Server=tcp:${sqlServer.properties.fullyQualifiedDomainName},1433;Initial Catalog=${sqlDatabase.name};Authentication=Active Directory Default; Connect Timeout=180' + +output sql_server_id string = sqlServer.id +output sql_server_name string = sqlServer.name +output sql_server_hostname string = sqlServer.properties.fullyQualifiedDomainName diff --git a/infra/core/database/sql-server.bicep b/infra/core/database/sql-server.bicep new file mode 100644 index 00000000..73a7ff5b --- /dev/null +++ b/infra/core/database/sql-server.bicep @@ -0,0 +1,147 @@ +targetScope = 'resourceGroup' + +/* +** This template creates an Azure SQL Server. +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Defines a SQL Server, with a user-assigned managed identity. +** The Server is separated from the database, to allow for multiple +** databases to be created on the same server. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +type FirewallRules = { + @description('The list of IP address CIDR blocks to allow access from.') + allowedIpAddresses: string[] +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The Name of a user-assigned managed identity to use as the identity for this resource. Use a blank string for a system-assigned identity.') +param managedIdentityName string = '' + +/* +** Settings +*/ +@description('Whether or not public endpoint access is allowed for this server') +param enablePublicNetworkAccess bool = true + +@description('The firewall rules to install on the Key Vault.') +param firewallRules FirewallRules? + +@secure() +@minLength(8) +@description('The password for the administrator account on the SQL Server.') +param sqlAdministratorPassword string = newGuid() + +@minLength(8) +@description('The username for the administrator account on the SQL Server.') +param sqlAdministratorUsername string = 'adminuser' + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var allowedCidrBlocks = firewallRules != null ? map(firewallRules!.allowedIpAddresses, ipaddr => { + name: replace(replace(ipaddr, '.', '_'), '/','_') + startIpAddress: parseCidr(ipaddr).firstUsable + endIpAddress: parseCidr(ipaddr).lastUsable +}) : [] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' existing = { + name: managedIdentityName +} + +resource sqlServer 'Microsoft.Sql/servers@2021-11-01' = { + name: name + location: location + tags: tags + properties: { + administratorLogin: sqlAdministratorUsername + administratorLoginPassword: sqlAdministratorPassword + administrators: { + azureADOnlyAuthentication: false + login: managedIdentity.name + principalType: 'User' + sid: managedIdentity.properties.principalId + tenantId: managedIdentity.properties.tenantId + } + publicNetworkAccess: enablePublicNetworkAccess || firewallRules != null ? 'Enabled' : 'Disabled' + version: '12.0' + } + + resource allowAzureServices 'firewallRules' = if (enablePublicNetworkAccess) { + name: 'AllowAllWindowsAzureIps' + properties: { + endIpAddress: '0.0.0.0' + startIpAddress: '0.0.0.0' + } + } + + resource allowClientIps 'firewallRules' = [ for entry in allowedCidrBlocks: { + name: 'AllowClientIp-${entry.name}' + properties: { + endIpAddress: entry.endIpAddress + startIpAddress: entry.startIpAddress + } + }] + + resource auditSettings 'auditingSettings' = { + name: 'default' + properties: { + state: diagnosticSettings.enableLogs ? 'Enabled' : 'Disabled' + isAzureMonitorTargetEnabled: true + } + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = sqlServer.id +output name string = sqlServer.name +output hostname string = sqlServer.properties.fullyQualifiedDomainName diff --git a/infra/core/hosting/app-service-plan.bicep b/infra/core/hosting/app-service-plan.bicep new file mode 100644 index 00000000..c5dfc44d --- /dev/null +++ b/infra/core/hosting/app-service-plan.bicep @@ -0,0 +1,208 @@ +targetScope = 'resourceGroup' + +/* +** App Service Plan +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +@description('A type that describes the auto-scale settings via Microsoft.Insights') +type AutoScaleSettings = { + @description('The minimum number of scale units to provision.') + minCapacity: int + + @description('The maximum number of scale units to provision.') + maxCapacity: int + + @description('The CPU percentage at which point to scale in.') + scaleInThreshold: int? + + @description('The CPU percentage at which point to scale out.') + scaleOutThreshold: int? +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('If using network isolation, the network isolation settings to use.') +param diagnosticSettings DiagnosticSettings? + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ +@description('If set, the auto-scale settings') +param autoScaleSettings AutoScaleSettings? + +@allowed([ 'Windows', 'Linux' ]) +@description('The OS for the application that will be run on this App Service Plan. Default is windows.') +param serverType string = 'Windows' + +@allowed([ 'B1', 'B2', 'B3', 'P0v3', 'P1v3', 'P2v3', 'P3v3', 'S1', 'S2', 'S3' ]) +@description('The SKU to use for the compute platform.') +param sku string = 'B1' + +@description('If true, set this App Service Plan to be availability zone redundant.') +param zoneRedundant bool = false + +// ======================================================================== +// VARIABLES +// ======================================================================== + +// Default auto-scale settings +var defaultScaleInThreshold = 40 +var defaultScaleOutThreshold = 75 + +// https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/patterns-configuration-set#example +var environmentConfigurationMap = { + B1: { name: 'B1', tier: 'Basic', size: 'B1', family: 'B' } + B2: { name: 'B2', tier: 'Basic', size: 'B2', family: 'B' } + B3: { name: 'B3', tier: 'Basic', size: 'B3', family: 'B' } + P0v3: { name: 'P0v3', tier: 'PremiumV3', size: 'P0v3', family: 'Pv3' } + P1v3: { name: 'P1v3', tier: 'PremiumV3', size: 'P1v3', family: 'Pv3' } + P2v3: { name: 'P2v3', tier: 'PremiumV3', size: 'P2v3', family: 'Pv3' } + P3v3: { name: 'P3v3', tier: 'PremiumV3', size: 'P3v3', family: 'Pv3' } + S1: { name: 'S1', tier: 'Standard', size: 'S1', family: 'S' } + S2: { name: 'S2', tier: 'Standard', size: 'S2', family: 'S' } + S3: { name: 'S3', tier: 'Standard', size: 'S3', family: 'S' } +} + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource appServicePlan 'Microsoft.Web/serverfarms@2022-09-01' = { + name: name + location: location + tags: tags + sku: { + name: environmentConfigurationMap[sku].name + tier: environmentConfigurationMap[sku].tier + size: environmentConfigurationMap[sku].size + family: environmentConfigurationMap[sku].family + capacity: (environmentConfigurationMap[sku].tier == 'PremiumV3' && zoneRedundant) ? 3 : 1 + } + kind: serverType == 'Windows' ? '' : 'linux' + properties: { + perSiteScaling: true + reserved: serverType == 'Linux' + zoneRedundant: zoneRedundant + } +} + +resource autoScaleRule 'Microsoft.Insights/autoscalesettings@2022-10-01' = if (autoScaleSettings != null) { + name: '${name}-autoscale' + location: location + tags: tags + properties: { + targetResourceUri: appServicePlan.id + enabled: true + profiles: [ + { + name: 'Auto created scale condition' + capacity: { + minimum: string(zoneRedundant ? 3 : autoScaleSettings!.minCapacity) + maximum: string(autoScaleSettings!.maxCapacity) + default: string(zoneRedundant ? 3 : autoScaleSettings!.minCapacity) + } + rules: [ + { + metricTrigger: { + metricResourceUri: appServicePlan.id + metricName: 'CpuPercentage' + timeGrain: 'PT5M' + statistic: 'Average' + timeWindow: 'PT10M' + timeAggregation: 'Average' + operator: 'GreaterThan' + threshold: autoScaleSettings.?scaleOutThreshold ?? defaultScaleOutThreshold + } + scaleAction: { + direction: 'Increase' + type: 'ChangeCount' + value: string(1) + cooldown: 'PT10M' + } + } + { + metricTrigger: { + metricResourceUri: appServicePlan.id + metricName: 'CpuPercentage' + timeGrain: 'PT5M' + statistic: 'Average' + timeWindow: 'PT10M' + timeAggregation: 'Average' + operator: 'LessThan' + threshold: autoScaleSettings.?scaleInThreshold ?? defaultScaleInThreshold + } + scaleAction: { + direction: 'Decrease' + type: 'ChangeCount' + value: string(1) + cooldown: 'PT10M' + } + } + ] + } + ] + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: appServicePlan + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: [] + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = appServicePlan.id +output name string = appServicePlan.name diff --git a/infra/core/hosting/app-service.bicep b/infra/core/hosting/app-service.bicep new file mode 100644 index 00000000..51266968 --- /dev/null +++ b/infra/core/hosting/app-service.bicep @@ -0,0 +1,225 @@ +targetScope = 'resourceGroup' + +/* +** An App Service running on a pre-existing App Service Plan +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/PrivateEndpointSettings.bicep +@description('Type describing the private endpoint settings.') +type PrivateEndpointSettings = { + @description('The name of the resource group to hold the Private DNS Zone. By default, this uses the same resource group as the resource.') + dnsResourceGroupName: string + + @description('The name of the private endpoint resource. By default, this uses a prefix of \'pe-\' followed by the name of the resource.') + name: string + + @description('The name of the resource group to hold the private endpoint. By default, this uses the same resource group as the resource.') + resourceGroupName: string + + @description('The ID of the subnet to link the private endpoint to.') + subnetId: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The name of the App Service Plan to use for compute resources.') +param appServicePlanName string + +@description('The ID of a user-assigned managed identity to use as the identity for this resource. Use a blank string for a system-assigned identity.') +param managedIdentityId string = '' + +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +@description('If using VNET integration, the ID of the subnet to route all outbound traffic through.') +param outboundSubnetId string = '' + +/* +** Settings +*/ +@description('The list of App Settings for this App Service.') +param appSettings object + +@description('If true, enable public network access for this resource.') +param enablePublicNetworkAccess bool = true + +@description('The list of IP security restrictions to configure.') +param ipSecurityRestrictions object[] = [] + +@description('If set, the private endpoint settings for this resource') +param privateEndpointSettings PrivateEndpointSettings? + +@description('The service prefix to use.') +param servicePrefix string + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var identity = !empty(managedIdentityId) ? { + type: 'UserAssigned' + userAssignedIdentities: { + '${managedIdentityId}': {} + } +} : { + type: 'SystemAssigned' +} + +var logCategories = [ + 'AppServiceAppLogs' + 'AppServiceConsoleLogs' + 'AppServiceHTTPLogs' + 'AppServicePlatformLogs' +] + +var defaultAppServiceProperties = { + clientAffinityEnabled: false + httpsOnly: true + publicNetworkAccess: enablePublicNetworkAccess ? 'Enabled' : 'Disabled' + serverFarmId: resourceId('Microsoft.Web/serverfarms', appServicePlanName) + siteConfig: { + alwaysOn: true + detailedErrorLoggingEnabled: diagnosticSettings.enableLogs + httpLoggingEnabled: diagnosticSettings.enableLogs + requestTracingEnabled: diagnosticSettings.enableLogs + ftpsState: 'Disabled' + ipSecurityRestrictions: ipSecurityRestrictions + minTlsVersion: '1.2' + } +} + +var networkIsolationAppServiceProperties = !empty(outboundSubnetId) ? { + virtualNetworkSubnetId: outboundSubnetId + vnetRouteAllEnabled: true +} : {} + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource appService 'Microsoft.Web/sites@2022-09-01' = { + name: name + location: location + tags: union(tags, { 'azd-service-name': servicePrefix }) + kind: 'web' + identity: identity + properties: union(defaultAppServiceProperties, networkIsolationAppServiceProperties) + + resource configAppSettings 'config' = { + name: 'appsettings' + properties: appSettings + } + + resource configLogs 'config' = { + name: 'logs' + properties: { + applicationLogs: { + fileSystem: { level: 'Verbose' } + } + detailedErrorMessages: { + enabled: true + } + failedRequestsTracing: { + enabled: true + } + httpLogs: { + fileSystem: { + enabled: true + retentionInDays: 2 + retentionInMb: 100 + } + } + } + dependsOn: [ + configAppSettings + ] + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: appService + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: map(logCategories, (category) => { + category: category + enabled: diagnosticSettings!.enableLogs + }) + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +module privateEndpoint '../network/private-endpoint.bicep' = if (privateEndpointSettings != null) { + name: '${name}-private-endpoint' + scope: resourceGroup(privateEndpointSettings != null ? privateEndpointSettings!.resourceGroupName : resourceGroup().name) + params: { + name: privateEndpointSettings != null ? privateEndpointSettings!.name : 'pep-${name}' + location: location + tags: tags + dnsRsourceGroupName: privateEndpointSettings == null ? resourceGroup().name : privateEndpointSettings!.dnsResourceGroupName + + // Dependencies + linkServiceId: appService.id + linkServiceName: appService.name + subnetId: privateEndpointSettings != null ? privateEndpointSettings!.subnetId : '' + + // Settings + dnsZoneName: 'privatelink.azurewebsites.net' + groupIds: [ 'sites' ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = appService.id +output name string = appService.name +output hostname string = appService.properties.defaultHostName +output uri string = 'https://${appService.properties.defaultHostName}' diff --git a/infra/core/identity/managed-identity.bicep b/infra/core/identity/managed-identity.bicep new file mode 100644 index 00000000..731a20f1 --- /dev/null +++ b/infra/core/identity/managed-identity.bicep @@ -0,0 +1,40 @@ +targetScope = 'resourceGroup' + +/* +** User-Assigned Managed Identity +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { + name: name + location: location + tags: tags +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = managedIdentity.id +output name string = managedIdentity.name +output principal_id string = managedIdentity.properties.principalId diff --git a/infra/core/identity/resource-group-role-assignment.bicep b/infra/core/identity/resource-group-role-assignment.bicep new file mode 100644 index 00000000..9a9a667b --- /dev/null +++ b/infra/core/identity/resource-group-role-assignment.bicep @@ -0,0 +1,49 @@ +targetScope = 'resourceGroup' + +/* +** Assigns a role to a managed identity +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The name of a managed identity.') +param identityName string + +@description('Azure role id for assignment') +param roleId string + +@description('A description of the purpose for the role assignment') +param roleDescription string + + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' existing = { + name: identityName +} + +resource devOpsIdentityRoleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = { + name: guid(roleId, identityName, resourceGroup().id) + scope: resourceGroup() + properties: { + principalType: 'ServicePrincipal' + roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', roleId) + principalId: managedIdentity.properties.principalId + description: roleDescription + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output identity_name string = identityName diff --git a/infra/core/monitor/application-insights.bicep b/infra/core/monitor/application-insights.bicep new file mode 100644 index 00000000..da470968 --- /dev/null +++ b/infra/core/monitor/application-insights.bicep @@ -0,0 +1,60 @@ +targetScope = 'resourceGroup' + +/* +** Application Insights +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates an Application Insights resource linked to the provided Log +** Analytics Workspace. +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ +@allowed([ 'web', 'ios', 'other', 'store', 'java', 'phone' ]) +@description('The kind of application being monitored.') +param kind string = 'web' + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = { + name: name + location: location + tags: tags + kind: kind + properties: { + Application_Type: kind == 'web' ? 'web' : 'other' + WorkspaceResourceId: logAnalyticsWorkspaceId + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = applicationInsights.id +output name string = applicationInsights.name diff --git a/infra/core/monitor/log-analytics-workspace.bicep b/infra/core/monitor/log-analytics-workspace.bicep new file mode 100644 index 00000000..934b7836 --- /dev/null +++ b/infra/core/monitor/log-analytics-workspace.bicep @@ -0,0 +1,66 @@ +targetScope = 'resourceGroup' + +/* +** Log Analytics Workspace +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@allowed([ 'PerGB2018', 'PerNode', 'Premium', 'Standalone', 'Standard' ]) +@description('The name of the pricing SKU to use.') +param sku string = 'PerGB2018' + +@minValue(0) +@description('The workspace daily quota for ingestion. Use 0 for unlimited.') +param dailyQuotaInGB int = 0 + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var skuProperties = { + sku: { + name: sku + } +} +var quotaProperties = dailyQuotaInGB > 0 ? { dailyQuotaGb: dailyQuotaInGB } : {} + +var retentionProperties = { + retentionInDays: 30 +} + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' = { + name: name + location: location + tags: tags + properties: union(skuProperties, quotaProperties, retentionProperties) +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = logAnalyticsWorkspace.id +output name string = logAnalyticsWorkspace.name diff --git a/infra/core/network/bastion-host.bicep b/infra/core/network/bastion-host.bicep new file mode 100644 index 00000000..0d06abef --- /dev/null +++ b/infra/core/network/bastion-host.bicep @@ -0,0 +1,155 @@ +targetScope = 'resourceGroup' + +/* +** Bastion Host +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates a bastion host and diagnostics. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +@description('The ID of the subnet to link the bastion host to.') +param subnetId string + +/* +** Settings +*/ +@description('The name of the public IP address resource to create. If not specified, a name will be generated.') +param publicIpAddressName string = '' + +@allowed([ 'Basic', 'Standard' ]) +@description('The pricing SKU to choose.') +param sku string = 'Basic' + +@description('If true, enable availability zone redundancy.') +param zoneRedundant bool = false + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var pipName = !empty(publicIpAddressName) ? publicIpAddressName : 'pip-${name}' + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +module publicIpAddress '../network/public-ip-address.bicep' = { + name: pipName + params: { + location: location + name: pipName + tags: tags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + allocationMethod: 'Static' + diagnosticSettings: diagnosticSettings + domainNameLabel: name + ipAddressType: 'IPv4' + sku: 'Standard' + tier: 'Regional' + zoneRedundant: zoneRedundant + } +} + +resource bastionHost 'Microsoft.Network/bastionHosts@2022-11-01' = { + name: name + location: location + tags: tags + sku: { + name: sku + } + properties: { + enableTunneling: sku == 'Standard' ? true : false + ipConfigurations: [ + { + name: 'ipconfig1' + properties: { + privateIPAllocationMethod: 'Dynamic' + publicIPAddress: { + id: publicIpAddress.outputs.id + } + subnet: { + id: subnetId + } + } + } + ] + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: bastionHost + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: [ + { + category: 'BastionAuditLogs' + enabled: diagnosticSettings!.enableLogs + } + ] + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = bastionHost.id +output name string = bastionHost.name + +output hostname string = publicIpAddress.outputs.hostname diff --git a/infra/core/network/ddos-protection-plan.bicep b/infra/core/network/ddos-protection-plan.bicep new file mode 100644 index 00000000..cd2c05fd --- /dev/null +++ b/infra/core/network/ddos-protection-plan.bicep @@ -0,0 +1,44 @@ +targetScope = 'resourceGroup' + +/* +** DDoS Protection Plan +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Create a DDoS Protection Plan. +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource ddosProtectionPlan 'Microsoft.Network/ddosProtectionPlans@2022-11-01' = { + location: location + name: name + tags: tags + properties: { + + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = ddosProtectionPlan.id +output name string = ddosProtectionPlan.name diff --git a/infra/core/network/firewall.bicep b/infra/core/network/firewall.bicep new file mode 100644 index 00000000..cd4069ab --- /dev/null +++ b/infra/core/network/firewall.bicep @@ -0,0 +1,192 @@ +targetScope = 'resourceGroup' + +/* +** Azure Firewall Resource +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** A fully stateful firewall as a service that provides both east-west and north-south traffic inspection. +** https://learn.microsoft.com/en-us/azure/firewall/overview +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The resource ID of the Firewall Policy that should be attached to this firewall.') +param firewallPolicyId string = '' + +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +@description('The ID of the subnet to link the firewall to.') +param subnetId string + +/* +** Settings +*/ +@description('The name of the Public IP Address resource to use for outbound connectivity. If not specified, a name will be created.') +param publicIpAddressName string = '' + +@allowed([ 'Standard', 'Premium' ]) +@description('The pricing SKU to configure.') +param sku string = 'Standard' + +@description('The operational mode for threat intelligence. The default is to alert, but not deny traffic.') +param threatIntelMode string = 'Alert' + +@description('If true, the resource should be redundant across all availability zones.') +param zoneRedundant bool = false + +/* +** The firewall rules to install. +*/ +@description('The list of application rule collections to configure') +param applicationRuleCollections object[] = [] + +@description('The list of NAT rule collections to configure.') +param natRuleCollections object[] = [] + +@description('The list of network rule collections to configure.') +param networkRuleCollections object[] = [] + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var pipName = !empty(publicIpAddressName) ? publicIpAddressName : 'pip-${name}' + +var logCategories = [ + 'AZFWApplicationRuleAggregation' + 'AZFWNatRuleAggregation' + 'AZFWNetworkRuleAggregation' + 'AZFWThreatIntel' + 'AZFWApplicationRule' + 'AZFWFlowTrace' + 'AZFWIdpsSignature' + 'AZFWNatRule' + 'AZFWNetworkRule' +] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +module publicIpAddress '../network/public-ip-address.bicep' = { + name: pipName + params: { + location: location + name: pipName + tags: tags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + allocationMethod: 'Static' + diagnosticSettings: diagnosticSettings + domainNameLabel: name + ipAddressType: 'IPv4' + sku: 'Standard' + tier: 'Regional' + zoneRedundant: zoneRedundant + } +} + +resource azureFirewall 'Microsoft.Network/azureFirewalls@2022-11-01' = { + name: name + location: location + tags: tags + properties: { + firewallPolicy: !empty(firewallPolicyId) ? { + id: firewallPolicyId + } : null + ipConfigurations: [ + { + name: 'ipconfig1' + properties: { + subnet: { + id: subnetId + } + publicIPAddress: { + id: publicIpAddress.outputs.id + } + } + } + ] + sku: { + name: 'AZFW_VNet' + tier: sku + } + applicationRuleCollections: applicationRuleCollections + natRuleCollections: natRuleCollections + networkRuleCollections: networkRuleCollections + threatIntelMode: threatIntelMode + } + zones: zoneRedundant ? [ '1', '2', '3' ] : [] +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: azureFirewall + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: map(logCategories, (category) => { + category: category + enabled: diagnosticSettings!.enableLogs + }) + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = azureFirewall.id +output name string = azureFirewall.name + +output hostname string = publicIpAddress.outputs.hostname +output internal_ip_address string = azureFirewall.properties.ipConfigurations[0].properties.privateIPAddress diff --git a/infra/core/network/network-security-group.bicep b/infra/core/network/network-security-group.bicep new file mode 100644 index 00000000..b037626f --- /dev/null +++ b/infra/core/network/network-security-group.bicep @@ -0,0 +1,94 @@ +targetScope = 'resourceGroup' + +/* +** Network Security Group +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates a floating Network Security Group that can be attached to a +** subnet or network interface. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ +@description('The list of security rules to attach to this network security group.') +param securityRules object[] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource networkSecurityGroup 'Microsoft.Network/networkSecurityGroups@2022-11-01' = { + name: name + location: location + tags: tags + properties: { + securityRules: securityRules + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: networkSecurityGroup + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: map([ 'NetworkSecurityGroupEvent', 'NetworkSecurityGroupRuleCounter' ], (category) => { + category: category + enabled: diagnosticSettings!.enableLogs + }) + metrics: [] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = networkSecurityGroup.id +output name string = networkSecurityGroup.name + diff --git a/infra/core/network/peer-virtual-network.bicep b/infra/core/network/peer-virtual-network.bicep new file mode 100644 index 00000000..a0b75869 --- /dev/null +++ b/infra/core/network/peer-virtual-network.bicep @@ -0,0 +1,47 @@ +targetScope = 'resourceGroup' + +/* +** Peer two virtual networks together. +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The name of the primary resource') +param name string + +/* +** Dependencies +*/ +@description('The name of the local virtual network.') +param virtualNetworkName string = '' + +@description('The ID of the remote virtual network.') +param remoteVirtualNetworkId string = '' + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-11-01' existing = { + name: virtualNetworkName + + resource peer 'virtualNetworkPeerings' = { + name: name + properties: { + allowVirtualNetworkAccess: true + allowGatewayTransit: false + allowForwardedTraffic: false + useRemoteGateways: false + remoteVirtualNetwork: { + id: remoteVirtualNetworkId + } + } + } +} + diff --git a/infra/core/network/private-dns-zone-link.bicep b/infra/core/network/private-dns-zone-link.bicep new file mode 100644 index 00000000..ecde2f86 --- /dev/null +++ b/infra/core/network/private-dns-zone-link.bicep @@ -0,0 +1,52 @@ +targetScope = 'resourceGroup' + +/* +** Private DNS Zone +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Adds a vnet for DNS zone link to a private DNS zone. +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The name of the primary resource') +param name string + +/* +** Dependencies +*/ +@description('Array of custom objects describing vNet links of the DNS zone. Each object should contain vnetName, vnetId, registrationEnabled') +param virtualNetworkLinks array = [] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource privateDnsZone 'Microsoft.Network/privateDnsZones@2020-06-01' existing = { + name: name +} + +resource privateDnsZoneLink 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = [ for vnet in virtualNetworkLinks: { + parent: privateDnsZone + name: '${vnet.vnetName}-link' + location: 'global' + properties: { + registrationEnabled: vnet.registrationEnabled + virtualNetwork: { + id: vnet.vnetId + } + } +}] + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = privateDnsZone.id +output name string = privateDnsZone.name + diff --git a/infra/core/network/private-dns-zone.bicep b/infra/core/network/private-dns-zone.bicep new file mode 100644 index 00000000..deeac603 --- /dev/null +++ b/infra/core/network/private-dns-zone.bicep @@ -0,0 +1,58 @@ +targetScope = 'resourceGroup' + +/* +** Private DNS Zone +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates a private DNS zone (mostly used for private endpoints) and links +** it to the specified virtual network. +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('Array of custom objects describing vNet links of the DNS zone. Each object should contain vnetName, vnetId, registrationEnabled') +param virtualNetworkLinks array = [] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource privateDnsZone 'Microsoft.Network/privateDnsZones@2020-06-01' = { + name: name + location: 'global' + tags: tags +} + +resource privateDnsZoneLink 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = [ for vnet in virtualNetworkLinks: { + parent: privateDnsZone + name: '${vnet.vnetName}-link' + location: 'global' + properties: { + registrationEnabled: vnet.registrationEnabled + virtualNetwork: { + id: vnet.vnetId + } + } +}] + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = privateDnsZone.id +output name string = privateDnsZone.name + diff --git a/infra/core/network/private-endpoint.bicep b/infra/core/network/private-endpoint.bicep new file mode 100644 index 00000000..696c96f7 --- /dev/null +++ b/infra/core/network/private-endpoint.bicep @@ -0,0 +1,95 @@ +targetScope = 'resourceGroup' + +/* +** Private Endpoint +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates a private endpoint for a resource. +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of the linked service') +param linkServiceId string + +@description('The name of the linked service') +param linkServiceName string + +@description('The ID of the subnet to host the private endpoint') +param subnetId string + +/* +** Settings +*/ + +@description('The resourceGroup where the Private DNS zone is located') +param dnsRsourceGroupName string + +@description('The DNS zone name that will be used for registering the private link.') +param dnsZoneName string + +@description('The list of group IDs to redirect through the private endpoint.') +param groupIds string[] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource privateEndpoint 'Microsoft.Network/privateEndpoints@2022-11-01' = { + name: name + location: location + tags: tags + properties: { + subnet: { + id: subnetId + } + privateLinkServiceConnections: [ + { + name: linkServiceName + properties: { + privateLinkServiceId: linkServiceId + groupIds: groupIds + } + } + ] + } +} + +resource dnsGroupName 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2022-11-01' = { + name: 'mydnsgroupname' + parent: privateEndpoint + properties: { + privateDnsZoneConfigs: [ + { + name: 'config1' + properties: { + privateDnsZoneId: dnsRsourceGroupName == '' ? resourceId('Microsoft.Network/privateDnsZones', dnsZoneName) : resourceId(dnsRsourceGroupName, 'Microsoft.Network/privateDnsZones', dnsZoneName) + } + } + ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = privateEndpoint.id +output name string = privateEndpoint.name diff --git a/infra/core/network/public-ip-address.bicep b/infra/core/network/public-ip-address.bicep new file mode 100644 index 00000000..1617c763 --- /dev/null +++ b/infra/core/network/public-ip-address.bicep @@ -0,0 +1,129 @@ +targetScope = 'resourceGroup' + +/* +** Public IP Address +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates a public IP address and diagnostics resource. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ +@allowed([ 'Dynamic', 'Static' ]) +@description('The public IP address allocation method. The default is dynamic allocation.') +param allocationMethod string = 'Dynamic' + +@description('The DNS label for the resource. This will become a domain name of domainlabel.region.cloudapp.azure.com') +param domainNameLabel string + +@allowed([ 'IPv4', 'IPv6']) +@description('The type of public IP address to generate') +param ipAddressType string = 'IPv4' + +@allowed([ 'Basic', 'Standard' ]) +param sku string = 'Basic' + +@allowed([ 'Regional', 'Global' ]) +param tier string = 'Regional' + +@description('True if you want the resource to be zone redundant') +param zoneRedundant bool = false + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource publicIpAddress 'Microsoft.Network/publicIPAddresses@2022-11-01' = { + location: location + name: name + tags: tags + properties: { + ddosSettings: { + protectionMode: 'VirtualNetworkInherited' + } + dnsSettings: { + domainNameLabel: domainNameLabel + } + publicIPAddressVersion: ipAddressType + publicIPAllocationMethod: allocationMethod + idleTimeoutInMinutes: 4 + } + sku: { + name: sku + tier: tier + } + zones: zoneRedundant ? [ '1', '2', '3' ] : [] +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: publicIpAddress + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: map( [ 'DDoSMitigationFlowLogs', 'DDoSMitigationReports', 'DDoSProtectionNotifications' ], (category) => { + category: category + enabled: diagnosticSettings!.enableLogs + }) + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = publicIpAddress.id +output name string = publicIpAddress.name + +output hostname string = publicIpAddress.properties.dnsSettings.fqdn diff --git a/infra/core/network/route-table.bicep b/infra/core/network/route-table.bicep new file mode 100644 index 00000000..9a75f716 --- /dev/null +++ b/infra/core/network/route-table.bicep @@ -0,0 +1,52 @@ +targetScope = 'resourceGroup' + +/* +** Route Table +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Settings +*/ +@description('Optional. Switch to disable BGP route propagation.') +param disableBgpRoutePropagation bool = false + +@description('The list of routes to install in the route table') +param routes object[] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource routeTable 'Microsoft.Network/routeTables@2022-11-01' = { + name: name + location: location + tags: tags + properties: { + routes: routes + disableBgpRoutePropagation: disableBgpRoutePropagation + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = routeTable.id +output name string = routeTable.name diff --git a/infra/core/network/virtual-network.bicep b/infra/core/network/virtual-network.bicep new file mode 100644 index 00000000..6740f472 --- /dev/null +++ b/infra/core/network/virtual-network.bicep @@ -0,0 +1,114 @@ +targetScope = 'resourceGroup' + +/* +** Virtual Network Resource +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates a new virtual network, plus diagnostics for the resource. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('If a DDoS protection plan is in use, the ID of the plan to associate with this virtual network.') +param ddosProtectionPlanId string = '' + +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ +@description('The CIDR block to use for the address prefix of this virtual network.') +param addressPrefix string + +@description('The set of subnets to use for this resource') +param subnets object[] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-11-01' = { + location: location + name: name + tags: tags + properties: { + addressSpace: { + addressPrefixes: [ addressPrefix ] + } + ddosProtectionPlan: !empty(ddosProtectionPlanId) ? { + id: ddosProtectionPlanId + } : null + enableDdosProtection: !empty(ddosProtectionPlanId) + subnets: subnets + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: virtualNetwork + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: [ + { + category: 'VMProtectionAlerts' + enabled: diagnosticSettings!.enableLogs + } + ] + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = virtualNetwork.id +output name string = virtualNetwork.name + +output subnets object = toObject(virtualNetwork.properties.subnets, subnet => subnet.name) diff --git a/infra/core/security/front-door-route-approval.bicep b/infra/core/security/front-door-route-approval.bicep new file mode 100644 index 00000000..e25e9e9b --- /dev/null +++ b/infra/core/security/front-door-route-approval.bicep @@ -0,0 +1,54 @@ +/* +** Azure Front Door Route Approval +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ===================================================================================================================== +// PARAMETERS +// ===================================================================================================================== + +@description('The Azure region used to host the deployment script') +param location string + +@description('The owner managed identity used to auto-approve the private endpoint') +param managedIdentityName string + +@description('Force the deployment script to run') +param utcValue string = utcNow() + +// ===================================================================================================================== +// AZURE RESOURCES +// ===================================================================================================================== + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' existing = { + name: managedIdentityName +} + +resource approval 'Microsoft.Resources/deploymentScripts@2020-10-01' = { + name: 'auto-approve-private-endpoint' + location: location + kind: 'AzureCLI' + identity: { + type: 'UserAssigned' + userAssignedIdentities: { + '${managedIdentity.id}': {} + } + } + properties: { + forceUpdateTag: utcValue + azCliVersion: '2.47.0' + timeout: 'PT30M' + environmentVariables: [ + { + name: 'ResourceGroupName' + value: resourceGroup().name + } + ] + scriptContent: loadTextContent('./scripts/front-door-route-approval.sh') + cleanupPreference: 'OnExpiration' + retentionInterval: 'PT1H' + } +} diff --git a/infra/core/security/front-door-route.bicep b/infra/core/security/front-door-route.bicep new file mode 100644 index 00000000..1424e6a3 --- /dev/null +++ b/infra/core/security/front-door-route.bicep @@ -0,0 +1,139 @@ +/* +** Azure Front Door Route +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ===================================================================================================================== +// USER-DEFINED TYPES +// ===================================================================================================================== + +type PrivateLinkSettings = { + @description('The resource ID of the private endpoint resource') + privateEndpointResourceId: string? + + @description('The private link resource type') + linkResourceType: string? + + @description('The Azure region hosting the private link') + location: string? +} + +// ===================================================================================================================== +// PARAMETERS +// ===================================================================================================================== + +@description('The name of the Azure Front Door endpoint to configure.') +param frontDoorEndpointName string + +@description('The name of the Azure Front Door profile to configure.') +param frontDoorProfileName string + +@description('The HTTP method to use for the health probe') +@allowed([ 'HEAD', 'GET' ]) +param healthProbeMethod string = 'HEAD' + +@description('The path portion of the URI for the health probe') +param healthProbePath string = '/' + +@description('The prefix for the name of the resources to create') +param originPrefix string + +@description('The private link settings for the backend service') +param privateLinkSettings PrivateLinkSettings = {} + +@description('The route pattern to route to this backend service') +param routePattern string + +@description('The host name to use for backend service routing') +param serviceAddress string + +@description('A directory path on the origin that AzureFrontDoor can use to retrieve content from, e.g. contoso.cloudapp.net/originpath') +param originPath string + +// ===================================================================================================================== +// CALCULATED VARIABLES +// ===================================================================================================================== + +var isPrivateLinkOrigin = contains(privateLinkSettings, 'privateEndpointResourceId') + +var privateLinkOriginDetails = isPrivateLinkOrigin ? { + privateLink: { + id: privateLinkSettings.privateEndpointResourceId ?? '' + } + groupId: privateLinkSettings.linkResourceType ?? '' + privateLinkLocation: privateLinkSettings.location ?? '' + requestMessage: 'Please approve the private link request' +} : null + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource profile 'Microsoft.Cdn/profiles@2021-06-01' existing = { + name: frontDoorProfileName +} + +resource endpoint 'Microsoft.Cdn/profiles/afdEndpoints@2021-06-01' existing = { + name: frontDoorEndpointName + parent: profile +} + +resource originGroup 'Microsoft.Cdn/profiles/originGroups@2021-06-01' = { + name: '${originPrefix}-origin-group' + parent: profile + properties: { + loadBalancingSettings: { + sampleSize: 4 + successfulSamplesRequired: 3 + } + healthProbeSettings: { + probePath: healthProbePath + probeRequestType: healthProbeMethod + probeProtocol: 'Https' + probeIntervalInSeconds: 120 + } + } +} + +resource origin 'Microsoft.Cdn/profiles/originGroups/origins@2021-06-01' = { + name: '${originPrefix}-origin' + parent: originGroup + properties: { + hostName: serviceAddress + httpPort: 80 + httpsPort: 443 + originHostHeader: serviceAddress + priority: 1 + sharedPrivateLinkResource: isPrivateLinkOrigin ? privateLinkOriginDetails : null + weight: 1000 + } +} + +resource route 'Microsoft.Cdn/profiles/afdEndpoints/routes@2021-06-01' = { + name: '${originPrefix}-route' + parent: endpoint + dependsOn: [ + origin + ] + properties: { + originGroup: { + id: originGroup.id + } + supportedProtocols: [ 'Http', 'Https' ] + patternsToMatch: [ routePattern ] + forwardingProtocol: 'HttpsOnly' + linkToDefaultDomain: 'Enabled' + httpsRedirect: 'Enabled' + originPath: originPath + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output endpoint string = 'https://${endpoint.properties.hostName}${routePattern}' +output uri string = 'https://${endpoint.properties.hostName}' diff --git a/infra/core/security/front-door-with-waf.bicep b/infra/core/security/front-door-with-waf.bicep new file mode 100644 index 00000000..9b6e8407 --- /dev/null +++ b/infra/core/security/front-door-with-waf.bicep @@ -0,0 +1,192 @@ +/* +** Azure Front Door +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates an Azure Front Door resource with a Web application Firewall +*/ + +// ===================================================================================================================== +// USER-DEFINED TYPES +// ===================================================================================================================== + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +type WAFRuleSet = { + @description('The name of the rule set') + name: string + + @description('The version of the rule set') + version: string +} + +// ===================================================================================================================== +// PARAMETERS +// ===================================================================================================================== + +@description('The diagnostic settings to use for this resource') +param diagnosticSettings DiagnosticSettings + +@description('The tags to associate with the resource') +param tags object + +/* +** Resource names to create +*/ +@description('The name of the Azure Front Door endpoint to create') +param frontDoorEndpointName string + +@description('The name of the Azure Front Door profile to create') +param frontDoorProfileName string + +@description('The name of the Web Application Firewall to create') +param webApplicationFirewallName string + +/* +** Dependencies +*/ +@description('The Log Analytics Workspace to send diagnostic and audit data to') +param logAnalyticsWorkspaceId string + +/* +** Service settings +*/ +@description('A list of managed rule sets to enable') +param managedRules WAFRuleSet[] + +@allowed([ 'Premium', 'Standard' ]) +@description('The pricing plan to use for the Azure Front Door and Web Application Firewall') +param sku string + +// ===================================================================================================================== +// CALCULATED VARIABLES +// ===================================================================================================================== + +// For a list of all categories that this resource supports, see: https://learn.microsoft.com/azure/azure-monitor/essentials/resource-logs-categories +var logCategories = [ + 'FrontDoorAccessLog' + 'FrontDoorWebApplicationFirewallLog' +] + +// Convert the managed rule sets list into the object form required by the web application firewall +var managedRuleSets = map(managedRules, rule => { + ruleSetType: rule.name + ruleSetVersion: rule.version + ruleSetAction: 'Block' + ruleGroupOverrides: [] + exclusions: [] +}) + +// ===================================================================================================================== +// AZURE RESOURCES +// ===================================================================================================================== + +resource frontDoorProfile 'Microsoft.Cdn/profiles@2023-05-01' = { + name: frontDoorProfileName + location: 'global' + tags: tags + sku: { + name: '${sku}_AzureFrontDoor' + } +} + +resource frontDoorEndpoint 'Microsoft.Cdn/profiles/afdEndpoints@2023-05-01' = { + name: frontDoorEndpointName + parent: frontDoorProfile + location: 'global' + tags: tags + properties: { + enabledState: 'Enabled' + } +} + +resource wafPolicy 'Microsoft.Network/FrontDoorWebApplicationFirewallPolicies@2022-05-01' = { + name: webApplicationFirewallName + location: 'global' + tags: tags + sku: { + name: '${sku}_AzureFrontDoor' + } + properties: { + policySettings: { + enabledState: 'Enabled' + mode: 'Prevention' + requestBodyCheck: 'Enabled' + } + customRules: { + rules: [] + } + managedRules: { + managedRuleSets: sku == 'Premium' ? managedRuleSets : [] + } + } +} + +resource wafPolicyLink 'Microsoft.Cdn/profiles/securityPolicies@2023-05-01' = { + name: '${webApplicationFirewallName}-link' + parent: frontDoorProfile + properties: { + parameters: { + type: 'WebApplicationFirewall' + wafPolicy: { + id: wafPolicy.id + } + associations: [ + { + domains: [ + { id: frontDoorEndpoint.id } + ] + patternsToMatch: [ + '/*' + ] + } + ] + } + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${frontDoorProfileName}-diagnostics' + scope: frontDoorProfile + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: map(logCategories, (category) => { + category: category + enabled: diagnosticSettings!.enableLogs + }) + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +// ===================================================================================================================== +// AZURE RESOURCES +// ===================================================================================================================== + +output endpoint_name string = frontDoorEndpoint.name +output profile_name string = frontDoorProfile.name +output waf_name string = wafPolicy.name + +output front_door_id string = frontDoorProfile.properties.frontDoorId +output hostname string = frontDoorEndpoint.properties.hostName +output uri string = 'https://${frontDoorEndpoint.properties.hostName}' diff --git a/infra/core/security/key-vault-secrets.bicep b/infra/core/security/key-vault-secrets.bicep new file mode 100644 index 00000000..f62ea1d5 --- /dev/null +++ b/infra/core/security/key-vault-secrets.bicep @@ -0,0 +1,57 @@ +targetScope = 'resourceGroup' + +/* +** Write secrets to Key Vault +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Writes a set of secrets to the connected Key Vault. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +@description('The form of each Key Vault Secret to store.') +type KeyVaultSecret = { + @description('The key for the secret') + key: string + + @description('The value of the secret') + value: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The name of the Key Vault resource') +param name string + +/* +** Settings +*/ +@description('The list of secrets to store in the Key Vault') +param secrets KeyVaultSecret[] + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' existing = { + name: name +} + +resource keyVaultSecretResources 'Microsoft.KeyVault/vaults/secrets@2023-02-01' = [for secret in secrets: { + name: secret.key + parent: keyVault + properties: { + contentType: 'text/plain; charset=utf-8' + value: secret.value + } +}] + +#disable-next-line outputs-should-not-contain-secrets // Doesn't contain a secret, just contains the ID references +output secret_ids array = [for (secret, i) in secrets: keyVaultSecretResources[i].id] diff --git a/infra/core/security/key-vault.bicep b/infra/core/security/key-vault.bicep new file mode 100644 index 00000000..ebf3c9c5 --- /dev/null +++ b/infra/core/security/key-vault.bicep @@ -0,0 +1,206 @@ +targetScope = 'resourceGroup' + +/* +** Key Vault +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates a Key Vault resource, including permission grants and diagnostics. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/ApplicationIdentity.bicep +@description('Type describing an application identity.') +type ApplicationIdentity = { + @description('The ID of the identity') + principalId: string + + @description('The type of identity - either ServicePrincipal or User') + principalType: 'ServicePrincipal' | 'User' +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/PrivateEndpointSettings.bicep +@description('Type describing the private endpoint settings.') +type PrivateEndpointSettings = { + @description('The name of the resource group to hold the Private DNS Zone. By default, this uses the same resource group as the resource.') + dnsResourceGroupName: string + + @description('The name of the private endpoint resource.') + name: string + + @description('The name of the resource group to hold the private endpoint.') + resourceGroupName: string + + @description('The ID of the subnet to link the private endpoint to.') + subnetId: string +} + +type FirewallRules = { + @description('The list of IP address CIDR blocks to allow access from.') + allowedIpAddresses: string[] +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ +@description('Whether or not public endpoint access is allowed for this server') +param enablePublicNetworkAccess bool = true + +@description('The firewall rules to install on the Key Vault.') +param firewallRules FirewallRules? + +@description('The list of application identities to be granted owner access to the application resources.') +param ownerIdentities ApplicationIdentity[] = [] + +@description('If set, the private endpoint settings for this resource') +param privateEndpointSettings PrivateEndpointSettings? + +@description('The list of application identities to be granted reader access to the application resources.') +param readerIdentities ApplicationIdentity[] = [] + +// ======================================================================== +// VARIABLES +// ======================================================================== + +@description('Built in \'Key Vault Administrator\' role ID: https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles') +var vaultAdministratorRoleId = '00482a5a-887f-4fb3-b363-3b7fe8e74483' + +@description('Built in \'Key Vault Secrets User\' role ID: https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles') +var vaultSecretsUserRoleId = '4633458b-17de-408a-b874-0445c86b69e6' + +var networkAcls = firewallRules != null ? { + bypass: 'AzureServices' + defaultAction: 'Deny' + ipRules: map(firewallRules!.allowedIpAddresses, (ipAddr) => { value: ipAddr }) +} : { + bypass: 'None' +} + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { + name: name + location: location + tags: tags + properties: { + enableRbacAuthorization: true + networkAcls: networkAcls + publicNetworkAccess: enablePublicNetworkAccess || firewallRules != null ? 'Enabled' : 'Disabled' + sku: { + family: 'A' + name: 'standard' + } + tenantId: subscription().tenantId + } +} + +resource grantVaultAdminAccess 'Microsoft.Authorization/roleAssignments@2022-04-01' = [ for id in ownerIdentities: if (!empty(id.principalId)) { + name: guid(vaultAdministratorRoleId, id.principalId, keyVault.id, resourceGroup().name) + scope: keyVault + properties: { + principalType: id.principalType + roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', vaultAdministratorRoleId) + principalId: id.principalId + } +}] + +resource grantSecretsUserAccess 'Microsoft.Authorization/roleAssignments@2022-04-01' = [ for id in readerIdentities: if (!empty(id.principalId)) { + name: guid(vaultSecretsUserRoleId, id.principalId, keyVault.id, resourceGroup().name) + scope: keyVault + properties: { + principalType: id.principalType + roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', vaultSecretsUserRoleId) + principalId: id.principalId + } +}] + +module privateEndpoint '../network/private-endpoint.bicep' = if (privateEndpointSettings != null) { + name: '${name}-private-endpoint' + scope: resourceGroup(privateEndpointSettings != null ? privateEndpointSettings!.resourceGroupName : resourceGroup().name) + params: { + name: privateEndpointSettings != null ? privateEndpointSettings!.name : 'pep-${name}' + location: location + tags: tags + dnsRsourceGroupName: privateEndpointSettings == null ? resourceGroup().name : privateEndpointSettings!.dnsResourceGroupName + + // Dependencies + linkServiceId: keyVault.id + linkServiceName: keyVault.name + subnetId: privateEndpointSettings != null ? privateEndpointSettings!.subnetId : '' + + // Settings + dnsZoneName: 'privatelink.vaultcore.azure.net' + groupIds: [ 'vault' ] + } +} + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: keyVault + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: map([ 'AuditEvent', 'AzurePolicyEvaluationDetails' ], (category) => { + category: category + enabled: diagnosticSettings!.enableLogs + }) + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output id string = keyVault.id +output name string = keyVault.name +output vaultUri string = keyVault.properties.vaultUri diff --git a/infra/core/security/scripts/front-door-route-approval.sh b/infra/core/security/scripts/front-door-route-approval.sh new file mode 100644 index 00000000..2eb569e9 --- /dev/null +++ b/infra/core/security/scripts/front-door-route-approval.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +# This script approves pending private endpoint connections for Azure Web Apps. +# It retrieves the resource group name from the environment variable $ResourceGroupName. +# It then lists all the web apps in the specified resource group and retrieves their IDs. +# For each web app, it checks for pending private endpoint connections and approves them. +# The approval is done by calling the 'az network private-endpoint-connection approve' command. +# The description for the approval is set to "ApprovedByCli". +# +# Usage: ./front-door-route-approval.sh +# +# Prerequisites: +# - Azure CLI must be installed and logged in. +# - The environment variable $ResourceGroupName must be set to the desired resource group name. +# +# Note: This script requires appropriate permissions to approve private endpoint connections. + +rg_name="$ResourceGroupName" +if [[ -z "$rg_name" ]]; then + echo "Resource group name not set. Please set the environment variable \$ResourceGroupName" + exit 1 +fi + +webapp_ids=$(az webapp list -g $rg_name --query "[].id" | jq -r '.[]') + +# Validate that we found a front-end and back-end web app. +# When deploying multi-region, we expect to find 2 web apps as two resource groups are deployed. +if [[ $(echo "$webapp_ids" | wc -w) -ne 2 ]]; then + echo "Invalid webapp_ids length. Expected 2, but found $(echo "$webapp_ids" | wc -w)" + exit 1 +else + echo "Proceeding to approve private endpoint connections for web apps in resource group: $rg_name" +fi + +for webapp_id in $webapp_ids; do + retry_count=0 + echo "Approving private endpoint connections for web app with ID: !!$webapp_id!!" + + # Retrieve the pending private endpoint connections for the web app. + # The front door pending private endpoint connections will be created asynchronously + # so the retry has been added for this scenario to await the asynchronous operation. + while [[ $retry_count -lt 5 ]]; do + fd_approved_conn_ids=$(az network private-endpoint-connection list --id "$webapp_id" --query "[?properties.provisioningState == 'Succeeded'].id" -o tsv) + # break from loop if we found 2 approved private endpoint connections + # because that means there is nothing to approve + if [[ $(echo "$fd_approved_conn_ids" | wc -w) -eq 2 ]]; then + echo "Found 2 approved private endpoint connections for web app with ID: $webapp_id" + fd_conn_ids="" + break + fi + + fd_conn_ids=$(az network private-endpoint-connection list --id "$webapp_id" --query "[?properties.provisioningState == 'Pending'].id" -o tsv) + # break from loop if we found any pending private endpoint connections + if [[ $(echo "$fd_conn_ids" | wc -w) -gt 0 ]]; then + break + fi + + retry_count=$((retry_count + 1)) + # allows for a maximum of 30 seconds waiting with an incrementally increasing sleep duration + sleep_duration=$((retry_count * 2)) + echo "... retrying in $sleep_duration seconds" + sleep $sleep_duration + done + + # report an error condition; we expect to find 2 approved private endpoint connections or to have something that needs approved + if [[ $retry_count -eq 5 ]]; then + echo "Failed to find pending private endpoint connections for web app with ID: $webapp_id" + exit 1 + fi + + # Approve any pending private endpoint connections. + for fd_conn_id in $fd_conn_ids; do + echo "Approved private endpoint connection with ID: $fd_conn_id" + az network private-endpoint-connection approve --id "$fd_conn_id" --description "ApprovedByCli" + done +done diff --git a/infra/core/storage/storage-account-blob.bicep b/infra/core/storage/storage-account-blob.bicep new file mode 100644 index 00000000..88f71875 --- /dev/null +++ b/infra/core/storage/storage-account-blob.bicep @@ -0,0 +1,96 @@ +targetScope = 'resourceGroup' + +/* +** Azure Storage Account +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The name of the primary resource') +param name string + +@description('A collection of objects with each object describing the container name and access level') +param containers array = [] + +/* +** Dependencies +*/ +@description('The name of the storage account.') +param storageAccountName string + +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ + +@description('The blob service properties for blob soft delete.') +param deleteRetentionPolicy object = {} + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource storage 'Microsoft.Storage/storageAccounts@2022-05-01' existing = { + name: storageAccountName +} + +resource blobServices 'Microsoft.Storage/storageAccounts/blobServices@2022-05-01' = if (!empty(containers)) { + parent: storage + name: 'default' + properties: { + deleteRetentionPolicy: deleteRetentionPolicy + } + + resource container 'containers' = [for container in containers: { + name: container.name + properties: { + publicAccess: contains(container, 'publicAccess') ? container.publicAccess : 'None' + } + }] +} + + +resource diagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = if (diagnosticSettings != null && !empty(logAnalyticsWorkspaceId)) { + name: '${name}-diagnostics' + scope: blobServices + properties: { + workspaceId: logAnalyticsWorkspaceId + logs: map([ 'StorageDelete', 'StorageRead', 'StorageWrite' ], (category) => { + category: category + enabled: diagnosticSettings!.enableLogs + }) + metrics: [ + { + category: 'AllMetrics' + enabled: diagnosticSettings!.enableMetrics + } + ] + } +} diff --git a/infra/core/storage/storage-account.bicep b/infra/core/storage/storage-account.bicep new file mode 100644 index 00000000..96683ecb --- /dev/null +++ b/infra/core/storage/storage-account.bicep @@ -0,0 +1,188 @@ +targetScope = 'resourceGroup' + +/* +** Azure Storage Account +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/ApplicationIdentity.bicep +@description('Type describing an application identity.') +type ApplicationIdentity = { + @description('The ID of the identity') + principalId: string + + @description('The type of identity - either ServicePrincipal or User') + principalType: 'ServicePrincipal' | 'User' +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/PrivateEndpointSettings.bicep +@description('Type describing the private endpoint settings.') +type PrivateEndpointSettings = { + @description('The name of the resource group to hold the Private DNS Zone. By default, this uses the same resource group as the resource.') + dnsResourceGroupName: string + + @description('The name of the private endpoint resource.') + name: string + + @description('The name of the resource group to hold the private endpoint.') + resourceGroupName: string + + @description('The ID of the subnet to link the private endpoint to.') + subnetId: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The Azure region for the resource.') +param location string + +@description('The name of the primary resource') +param name string + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Settings +*/ + +@description('Required for storage accounts where kind = BlobStorage. The access tier is used for billing.') +@allowed(['Cool', 'Hot', 'Premium' ]) +param accessTier string = 'Hot' + +@description('Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is true for this property.') +param allowBlobPublicAccess bool = true + +@description('Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property.') +param allowCrossTenantReplication bool = true + +@description('Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Microsoft Entra ID. The default value is null, which is equivalent to true.') +param allowSharedKeyAccess bool = true + +@description('The list of application identities to be granted contributor access to the application resources.') +param contributorIdentities ApplicationIdentity[] = [] + +@description('Whether or not public endpoint access is allowed for this server') +param enablePublicNetworkAccess bool = true + +@description('Required. Indicates the type of storage account.') +@allowed(['BlobStorage', 'BlockBlobStorage', 'FileStorage', 'Storage', 'StorageV2' ]) +param kind string = 'StorageV2' + +@description('Set the minimum TLS version to be permitted on requests to storage.') +@allowed(['TLS1_0','TLS1_1','TLS1_2']) +param minimumTlsVersion string = 'TLS1_2' + +@description('The list of application identities to be granted owner access to the application resources.') +param ownerIdentities ApplicationIdentity[] = [] + +@description('If set, the private endpoint settings for this resource') +param privateEndpointSettings PrivateEndpointSettings? + +@description('Required. Gets or sets the SKU name.') +param sku object = { name: 'Standard_LRS' } + +// ======================================================================== +// VARIABLES +// ======================================================================== + +/* https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles */ + +// Provides full access to Azure Storage blob containers and data, including assigning POSIX access control. +var storageBlobDataOwnerRoleId = 'b7e6dc6d-f1e8-4753-8033-0f276bb0955b' + +// Read, write, and delete Azure Storage containers and blobs. To learn which actions are required for a given data operation +var storageBlobDataContributorRoleId = 'ba92f5b4-2d11-453d-a403-e96b0029c9fe' + +var defaultToOAuthAuthentication = false +var dnsEndpointType = 'Standard' + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource storage 'Microsoft.Storage/storageAccounts@2022-05-01' = { + name: name + location: location + tags: tags + kind: kind + sku: sku + properties: { + accessTier: accessTier + allowBlobPublicAccess: allowBlobPublicAccess + allowCrossTenantReplication: allowCrossTenantReplication + allowSharedKeyAccess: allowSharedKeyAccess + defaultToOAuthAuthentication: defaultToOAuthAuthentication + dnsEndpointType: dnsEndpointType + minimumTlsVersion: minimumTlsVersion + publicNetworkAccess: enablePublicNetworkAccess ? 'Enabled' : 'Disabled' + } +} + +resource grantOwnerAccess 'Microsoft.Authorization/roleAssignments@2022-04-01' = [ for id in ownerIdentities: if (!empty(id.principalId)) { + name: guid(storageBlobDataOwnerRoleId, id.principalId, storage.id, resourceGroup().name) + scope: storage + properties: { + principalType: id.principalType + roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', storageBlobDataOwnerRoleId) + principalId: id.principalId + } +}] + +resource grantContributorAccess 'Microsoft.Authorization/roleAssignments@2022-04-01' = [ for id in contributorIdentities: if (!empty(id.principalId)) { + name: guid(storageBlobDataContributorRoleId, id.principalId, storage.id, resourceGroup().name) + scope: storage + properties: { + principalType: id.principalType + roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', storageBlobDataContributorRoleId) + principalId: id.principalId + } +}] + +module privateEndpoint '../network/private-endpoint.bicep' = if (privateEndpointSettings != null) { + name: '${name}-private-endpoint' + scope: resourceGroup(privateEndpointSettings != null ? privateEndpointSettings!.resourceGroupName : resourceGroup().name) + params: { + name: privateEndpointSettings != null ? privateEndpointSettings!.name : 'pep-${name}' + location: location + tags: tags + dnsRsourceGroupName: privateEndpointSettings == null ? resourceGroup().name : privateEndpointSettings!.dnsResourceGroupName + + // Dependencies + linkServiceId: storage.id + linkServiceName: storage.name + subnetId: privateEndpointSettings != null ? privateEndpointSettings!.subnetId : '' + + // Settings + dnsZoneName: 'privatelink.blob.${environment().suffixes.storage}' + groupIds: [ 'blob' ] + } +} + +output name string = storage.name +output primaryEndpoints object = storage.properties.primaryEndpoints diff --git a/infra/createAppRegistrations.ps1 b/infra/createAppRegistrations.ps1 deleted file mode 100644 index 21e11068..00000000 --- a/infra/createAppRegistrations.ps1 +++ /dev/null @@ -1,447 +0,0 @@ -#Requires -Version 7.0 - -<# -.SYNOPSIS - Creates two Azure AD app registrations for the reliable-web-app-pattern-dotnet - and saves the configuration data in App Configuration Svc and Key Vault. - - -.DESCRIPTION - The Relecloud web app uses Azure AD to authenticate and authorize the users that can - make concert ticket purchases. To prove that the website is a trusted, and secure, resource - the web app must handshake with Azure AD by providing the configuration settings like the following. - - TenantID identifies which Azure AD instance holds the users that should be authorized - - ClientID identifies which app this code says it represents - - ClientSecret provides a secret known only to Azure AD, and shared with the web app, to - validate that Azure AD can trust this web app - - This script will create the App Registrations that provide these configurations. Once those - are created the configuration data will be saved to Azure App Configuration and the secret - will be saved in Azure Key Vault so that the web app can read these values and provide them - to Azure AD during the authentication process. - - NOTE: This functionality assumes that the web app, app configuration service, and app - service have already been successfully deployed. - -.PARAMETER ResourceGroupName - A required parameter for the name of resource group that contains the environment that was - created by the azd command. The cmdlet will populate the App Config Svc and Key - Vault services in this resource group with Azure AD app registration config data. -#> - -Param( - [Alias("g")] - [Parameter(Mandatory = $true, HelpMessage = "Name of the resource group that was created by azd")] - [String]$ResourceGroupName -) - -$canSetSecondAzureLocation = 1 - -$Debug = $psboundparameters.debug.ispresent - -Write-Debug "Inputs" -Write-Debug "----------------------------------------------" -Write-Debug "resourceGroupName='$resourceGroupName'" -Write-Debug "" - -if ($ResourceGroupName -eq "-rg") { - Write-Error "FATAL ERROR: $ResourceGroupName could not be found in the current subscription" - exit 5 -} -$groupExists = (az group exists -n $ResourceGroupName) -if ($groupExists -eq 'false') { - Write-Error "FATAL ERROR: $ResourceGroupName could not be found in the current subscription" - exit 6 -} -else { - Write-Debug "Found resource group named: $ResourceGroupName" -} - -$keyVaultName = (az keyvault list -g "$ResourceGroupName" --query "[? starts_with(name,'rc-')].name" -o tsv) -$appConfigSvcName = (az appconfig list -g "$ResourceGroupName" --query "[].name" -o tsv) - -# updated az resource selection to filter to first based on https://github.com/Azure/azure-cli/issues/25214 -$frontEndWebAppName = (az resource list -g "$ResourceGroupName" --query "[? tags.\`"azd-service-name\`" == 'web' ].name | [0]" -o tsv) - -$resourceToken = $frontEndWebAppName.substring(4, 13) -$environmentName = $ResourceGroupName.substring(0, $ResourceGroupName.Length - 3) - -$frontDoorProfileName = (az resource list -g $ResourceGroupName --query "[? kind=='frontdoor' ].name | [0]" -o tsv) -$frontEndWebAppUri = (az afd endpoint list -g $ResourceGroupName --profile-name $frontDoorProfileName --query "[].hostName | [0]" -o tsv --only-show-errors) -$frontEndWebAppUri = "https://$frontEndWebAppUri" - -$secondaryResourceGroupName = $ResourceGroupName.Substring(0,$ResourceGroupName.Length-2) + "secondary-rg" -$group2Exists = (az group exists -n $secondaryResourceGroupName) -if ($group2Exists -eq 'false') { - $secondaryResourceGroupName = '' -} - -# updated az resource selection to filter to first based on https://github.com/Azure/azure-cli/issues/25214 -$mySqlServer = (az resource list -g $ResourceGroupName --query "[?type=='Microsoft.Sql/servers'].name | [0]" -o tsv) -$azdEnvironmentData=(azd env get-values) -$isProd=($azdEnvironmentData | select-string 'IS_PROD="true"').Count -gt 0 - -Write-Debug "Derived inputs" -Write-Debug "----------------------------------------------" -Write-Debug "isProd=$isProd" -Write-Debug "keyVaultName=$keyVaultName" -Write-Debug "appConfigSvcName=$appConfigSvcName" -Write-Debug "frontDoorProfileName=$frontDoorProfileName" -Write-Debug "frontEndWebAppUri=$frontEndWebAppUri" -Write-Debug "resourceToken=$resourceToken" -Write-Debug "environmentName=$environmentName" -Write-Debug "secondaryResourceGroupName=$secondaryResourceGroupName" -Write-Debug "" - -if ($keyVaultName.Length -eq 0) { - Write-Error "FATAL ERROR: Could not find Key Vault resource. Confirm the --ResourceGroupName is the one created by the ``azd provision`` command." - exit 7 -} - -Write-Debug "Runtime values" -Write-Debug "----------------------------------------------" -$frontEndWebAppName = "$environmentName-$resourceToken-frontend" -$apiWebAppName = "$environmentName-$resourceToken-api" -$maxNumberOfRetries = 20 - -Write-Debug "frontEndWebAppName='$frontEndWebAppName'" -Write-Debug "apiWebAppName='$apiWebAppName'" -Write-Debug "maxNumberOfRetries=$maxNumberOfRetries" - -$tenantId = (az account show --query "tenantId" -o tsv) -$userObjectId = (az account show --query "id" -o tsv) - -Write-Debug "tenantId='$tenantId'" -Write-Debug "" - -if ($Debug) { - Read-Host -Prompt "Press enter to continue" > $null - Write-Debug "..." -} - -# Resolves permission constraint that prevents the deploymentScript from running this command -# https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/134 - -if ($isProd) { - az sql server update -n $mySqlServer -g $ResourceGroupName --set publicNetworkAccess="Disabled" > $null -} - -$frontEndWebObjectId = (az ad app list --filter "displayName eq '$frontEndWebAppName'" --query "[].id" -o tsv) - -if ($frontEndWebObjectId.Length -eq 0) { - - # this web app doesn't exist and must be creaed - - $frontEndWebAppClientId = (az ad app create ` - --display-name $frontEndWebAppName ` - --sign-in-audience AzureADMyOrg ` - --app-roles '"[{ \"allowedMemberTypes\": [ \"User\" ], \"description\": \"Relecloud Administrator\", \"displayName\": \"Relecloud Administrator\", \"isEnabled\": \"true\", \"value\": \"Administrator\" }]"' ` - --web-redirect-uris $frontEndWebAppUri/signin-oidc https://localhost:7227/signin-oidc ` - --enable-id-token-issuance ` - --query appId --output tsv) - - Write-Host "frontEndWebAppClientId='$frontEndWebAppClientId'" - - if ($frontEndWebAppClientId.Length -eq 0) { - Write-Error "FATAL ERROR: Failed to create front-end app registration" - exit 8 - } - - $isWebAppCreated = 0 - $currentRetryCount = 0 - while ( $isWebAppCreated -eq 0) { - # assumes that we only need to create client secret if the app registration did not exist - $frontEndWebAppClientSecret = (az ad app credential reset --id $frontEndWebAppClientId --query "password" -o tsv --only-show-errors 2> $null) - $isWebAppCreated = $frontEndWebAppClientSecret.Length # treating 0 as $false and positive nums as $true - - $currentRetryCount++ - - if ($currentRetryCount -gt $maxNumberOfRetries) { - Write-Error "FATAL ERROR: Tried to create a client secret too many times" - exit 14 - } - - if ($isWebAppCreated -eq 0) { - Write-Debug "... trying to create clientSecret for front-end attempt #$currentRetryCount" - } - else { - Write-Host "... created clientSecret for front-end" - Write-Host "" - } - - # sleep until the app registration is created - Start-Sleep -Seconds 3 - } - - # prod environments do not allow public network access, this must be changed before we can set values - if ($isProd) { - # open the app config so that the local user can access - az appconfig update --name $appConfigSvcName --resource-group $ResourceGroupName --enable-public-network true > $null - - # open the key vault so that the local user can access - az keyvault update --name $keyVaultName --resource-group $ResourceGroupName --public-network-access Enabled > $null - } - - # save 'AzureAd:ClientSecret' to Key Vault - az keyvault secret set --name 'AzureAd--ClientSecret' --vault-name $keyVaultName --value $frontEndWebAppClientSecret --only-show-errors > $null - Write-Host "Set keyvault value for: 'AzureAd--ClientSecret'" - - # save 'AzureAd:TenantId' to App Config Svc - az appconfig kv set --name $appConfigSvcName --key 'AzureAd:TenantId' --value $tenantId --yes --only-show-errors > $null - Write-Host "Set appconfig value for: 'AzureAd:TenantId'" - - #save 'AzureAd:ClientId' to App Config Svc - az appconfig kv set --name $appConfigSvcName --key 'AzureAd:ClientId' --value $frontEndWebAppClientId --yes --only-show-errors > $null - Write-Host "Set appconfig value for: 'AzureAd:ClientId'" - - # prod environments do not allow public network access - if ($isProd) { - # close the app config so that the local user can access - az appconfig update --name $appConfigSvcName --resource-group $ResourceGroupName --enable-public-network false > $null - - # close the key vault so that the local user can access - az keyvault update --name $keyVaultName --resource-group $ResourceGroupName --public-network-access Disabled > $null - } -} -else { - Write-Host "frontend app registration objectId=$frontEndWebObjectId already exists. Delete the '$frontEndWebAppName' app registration to recreate or reset the settings." - $frontEndWebAppClientId = (az ad app show --id $frontEndWebObjectId --query "appId" -o tsv) - $canSetSecondAzureLocation = 2 -} - -Write-Host "" -Write-Host "Finished app registration for front-end" -Write-Host "" - -$apiObjectId = (az ad app list --filter "displayName eq '$apiWebAppName'" --query "[].id" -o tsv) - - -if ( $apiObjectId.Length -eq 0 ) { - # the api app registration does not exist and must be created - - $apiWebAppClientId = (az ad app create ` - --display-name $apiWebAppName ` - --sign-in-audience AzureADMyOrg ` - --app-roles '[{ \"allowedMemberTypes\": [ \"User\" ], \"description\": \"Relecloud Administrator\", \"displayName\": \"Relecloud Administrator\", \"isEnabled\": \"true\", \"value\": \"Administrator\" }]' ` - --query appId --output tsv) - - Write-Debug "apiWebAppClientId='$apiWebAppClientId'" - - # sleep until the app registration is created correctly - $isApiCreated = 0 - $currentRetryCount = 0 - - while ($isApiCreated -eq 0) { - $apiObjectId = (az ad app show --id $apiWebAppClientId --query id -o tsv 2> $null) - $isApiCreated = $apiObjectId.Length # treating 0 as $false and positive nums as $true - - $currentRetryCount++ - if ($currentRetryCount -gt $maxNumberOfRetries) { - Write-Error 'FATAL ERROR: Tried to create retrieve the apiObjectId too many times' - exit 15 - } - - if ($isApiCreated -eq 0) { - Write-Debug "... trying to retrieve apiObjectId attempt #$currentRetryCount" - } - else { - Write-Debug "... retrieved apiObjectId='$apiObjectId'" - } - - Start-Sleep -Seconds 3 - } - - # Expose an API by defining a scope - # application ID URI will be clientId by default - - $scopeName = 'relecloud.api' - - $isScopeAdded = 0 - $currentRetryCount = 0 - - while ($isScopeAdded -eq 0) { - - az rest ` - --method PATCH ` - --uri "https://graph.microsoft.com/v1.0/applications/$apiObjectId" ` - --headers 'Content-Type=application/json' ` - --body "{ identifierUris:[ 'api://$apiWebAppClientId' ], api: { oauth2PermissionScopes: [ { value: '$scopeName', adminConsentDescription: 'Relecloud API access', adminConsentDisplayName: 'Relecloud API access', id: 'c791b666-cc87-4904-bc9f-c5945e08ba8f', isEnabled: true, type: 'Admin' } ] } }" 2> $null - - $createdScope = (az ad app show --id $apiWebAppClientId --query 'api.oauth2PermissionScopes[0].value' -o tsv 2> $null) - - if ($createdScope -eq $scopeName) { - $isScopeAdded = 1 - Write-Debug "... added scope $scopeName" - } - else { - $currentRetryCount++ - Write-Host "... trying to add scope attempt #$currentRetryCount" - if ($currentRetryCount -gt $maxNumberOfRetries) { - Write-Error 'FATAL ERROR: Tried to set scopes too many times' - exit 16 - } - } - - Start-Sleep -Seconds 3 - } - - Write-Host "... assigned scope to api" - - $permId = '' - $currentRetryCount = 0 - while ($permId.Length -eq 0 ) { - $permId = (az ad app show --id $apiWebAppClientId --query 'api.oauth2PermissionScopes[].id' -o tsv 2> $null) - - if ($permId.Length -eq 0 ) { - $currentRetryCount++ - Write-Debug "... trying to retrieve permId attempt #$currentRetryCount" - - if ($currentRetryCount -gt $maxNumberOfRetries) { - Write-Error 'FATAL ERROR: Tried to retrieve permissionId too many times' - exit 17 - } - } - else { - Write-Debug "... retrieved permId=$permId" - } - - Start-Sleep -Seconds 3 - } - - $preAuthedAppApplicationId = $frontEndWebAppClientId - - # Preauthorize the front-end as a client to suppress scope requests - $authorizedApps = '' - $currentRetryCount = 0 - while ($authorizedApps.Length -eq 0) { - az rest ` - --method PATCH ` - --uri "https://graph.microsoft.com/v1.0/applications/$apiObjectId" ` - --headers 'Content-Type=application/json' ` - --body "{api:{preAuthorizedApplications:[{appId:'$preAuthedAppApplicationId',delegatedPermissionIds:['$permId']}]}}" 2> $null - - $authorizedApps = (az ad app show --id $apiObjectId --query "api.preAuthorizedApplications" -o tsv 2> $null) - - if ($authorizedApps.Length -eq 0) { - $currentRetryCount++ - Write-Debug "... trying to set front-end app as an preAuthorized client attempt #$currentRetryCount" - - if ($currentRetryCount -gt $maxNumberOfRetries) { - Write-Error 'FATAL ERROR: Tried to authorize the front-end app too many times' - exit 18 - } - } - else { - Write-Host "front-end web app is now preAuthorized" - Write-Host "" - } - - Start-Sleep -Seconds 3 - } - - # prod environments do not allow public network access, this must be changed before we can set values - if ($isProd) { - # open the app config so that the local user can access - az appconfig update --name $appConfigSvcName --resource-group $ResourceGroupName --enable-public-network true > $null - } - - # save 'App:RelecloudApi:AttendeeScope' scope for role to App Config Svc - az appconfig kv set --name $appConfigSvcName --key 'App:RelecloudApi:AttendeeScope' --value "api://$apiWebAppClientId/$scopeName" --yes --only-show-errors > $null - Write-Host "Set appconfig value for: 'App:RelecloudApi:AttendeeScope'" - - # save 'Api:AzureAd:ClientId' to App Config Svc - az appconfig kv set --name $appConfigSvcName --key 'Api:AzureAd:ClientId' --value $apiWebAppClientId --yes --only-show-errors > $null - Write-Host "Set appconfig value for: 'Api:AzureAd:ClientId'" - - # save 'Api:AzureAd:TenantId' to App Config Svc - az appconfig kv set --name $appConfigSvcName --key 'Api:AzureAd:TenantId' --value $tenantId --yes --only-show-errors > $null - Write-Host "Set appconfig value for: 'Api:AzureAd:TenantId'" - - # prod environments do not allow public network access - if ($isProd) { - # close the app config so that the local user can access - az appconfig update --name $appConfigSvcName --resource-group $ResourceGroupName --enable-public-network false > $null - } -} -else { - Write-Host "API app registration objectId=$apiObjectId already exists. Delete the '$apiWebAppName' app registration to recreate or reset the settings." - $canSetSecondAzureLocation = 3 -} - -############## Copy the App Configuration and Key Vault settings to second azure location ############## - -if ($secondaryResourceGroupName.Length -gt 0 -and $canSetSecondAzureLocation -eq 1) { - - # assumes there is only one vault deployed to this resource group that will match this filter - $secondaryKeyVaultName = (az keyvault list -g "$secondaryResourceGroupName" --query "[? name.starts_with(@,'rc-') ].name" -o tsv) - - $secondaryAppConfigSvcName = (az appconfig list -g "$secondaryResourceGroupName" --query "[].name" -o tsv) - - Write-Debug "" - Write-Debug "Derived inputs for second azure location" - Write-Debug "----------------------------------------------" - Write-Debug "secondaryKeyVaultName=$secondaryKeyVaultName" - Write-Debug "secondaryAppConfigSvcName=$secondaryAppConfigSvcName" - - if ($secondaryKeyVaultName.Length -eq 0) { - Write-Debug "No secondary vault to configure" - exit 0 - } - - Write-Host "" - Write-Host "Now configuring secondary key vault" - - # prod environments do not allow public network access, this must be changed before we can set values - if ($isProd) { - # open the app config so that the local user can access - az appconfig update --name $secondaryAppConfigSvcName --resource-group $secondaryResourceGroupName --enable-public-network true > $null - - # open the key vault so that the local user can access - az keyvault update --name $secondaryKeyVaultName --resource-group $secondaryResourceGroupName --public-network-access Enabled > $null - } - - # save 'AzureAd:ClientSecret' to Key Vault - az keyvault secret set --name 'AzureAd--ClientSecret' --vault-name $secondaryKeyVaultName --value $frontEndWebAppClientSecret --only-show-errors > $null - Write-Host "... Set keyvault value for: 'AzureAd--ClientSecret'" - - Write-Host "" - Write-Host "Now configuring secondary app config svc" - # save 'AzureAd:TenantId' to App Config Svc - az appconfig kv set --name $secondaryAppConfigSvcName --key 'AzureAd:TenantId' --value $tenantId --yes --only-show-errors > $null - Write-Host "... Set appconfig value for: 'AzureAd:TenantId'" - - #save 'AzureAd:ClientId' to App Config Svc - az appconfig kv set --name $secondaryAppConfigSvcName --key 'AzureAd:ClientId' --value $frontEndWebAppClientId --yes --only-show-errors > $null - Write-Host "... Set appconfig value for: 'AzureAd:ClientId'" - - # save 'App:RelecloudApi:AttendeeScope' scope for role to App Config Svc - az appconfig kv set --name $secondaryAppConfigSvcName --key 'App:RelecloudApi:AttendeeScope' --value "api://$apiWebAppClientId/$scopeName" --yes --only-show-errors > $null - Write-Host "... Set appconfig value for: 'App:RelecloudApi:AttendeeScope'" - - # save 'Api:AzureAd:ClientId' to App Config Svc - az appconfig kv set --name $secondaryAppConfigSvcName --key 'Api:AzureAd:ClientId' --value $apiWebAppClientId --yes --only-show-errors > $null - Write-Host "... Set appconfig value for: 'Api:AzureAd:ClientId'" - - # save 'Api:AzureAd:TenantId' to App Config Svc - az appconfig kv set --name $secondaryAppConfigSvcName --key 'Api:AzureAd:TenantId' --value $tenantId --yes --only-show-errors > $null - Write-Host "... Set appconfig value for: 'Api:AzureAd:TenantId'" - - # prod environments do not allow public network access - if ($isProd) { - # close the app config so that the local user can access - az appconfig update --name $secondaryAppConfigSvcName --resource-group $secondaryResourceGroupName --enable-public-network false > $null - - # close the key vault so that the local user can access - az keyvault update --name $secondaryKeyVaultName --resource-group $secondaryResourceGroupName --public-network-access Disabled > $null - } - -} elseif ($canSetSecondAzureLocation -eq 2) { - Write-Host "" - Write-Host "skipped setup for secondary azure location because frontend app registration objectId=$frontEndWebObjectId already exists." -} elseif ($canSetSecondAzureLocation -eq 3) { - Write-Host "" - Write-Host "skipped setup for secondary location because API app registration objectId=$apiObjectId already exists." -} - -# all done -exit 0 \ No newline at end of file diff --git a/infra/createAppRegistrations.sh b/infra/createAppRegistrations.sh deleted file mode 100755 index c6255cc5..00000000 --- a/infra/createAppRegistrations.sh +++ /dev/null @@ -1,501 +0,0 @@ -#!/bin/bash - -# This script is part of the sample's workflow for configuring App Registrations -# in Azure AD and saving the appropriate values in Key Vault, and Azure App Config Service -# so that the application can authenticate users. Note that an app registration is -# something you'll want to set up once, and reuse for every version of the web app -# that you deploy. You can learn more about app registrations at -# https://learn.microsoft.com/en-us/azure/active-directory/develop/application-model -# -# If you do not have permission to create App Registrations consider -# sharing this script, or something similar, with your administrators to help them -# set up the variables you need to integrate with Azure AD -# -# This code may be repurposed for your scenario as desired -# but is not covered by the guidance in this content. - -POSITIONAL_ARGS=() - -debug='' - -while [[ $# -gt 0 ]]; do - case $1 in - --resource-group|-g) - resourceGroupName="$2" - shift # past argument - shift # past value - ;; - --debug) - debug=1 - shift # past argument - ;; - --help*) - echo "" - echo "" - echo "" - echo "Command" - echo " createAppRegistrations.sh : Will create two app registrations for the reliable-web-app-pattern-dotnet and register settings with App Configuration Svc and Key Vault." - echo "" - echo "Arguments" - echo " --resource-group -g : Name of resource group containing the environment that was created by the azd command." - echo "" - exit 1 - ;; - -*|--*) - echo "Unknown option $1" - exit 1 - ;; - *) - POSITIONAL_ARGS+=("$1") # save positional arg - shift # past argument - ;; - esac -done - -green='\033[0;32m' -yellow='\e[0;33m' -red='\e[1;31m' -clear='\033[0m' - -if [[ ${#resourceGroupName} -eq 0 ]]; then - printf "${red}FATAL ERROR:${clear} Missing required parameter --resource-group" - echo "" - exit 6 -fi - -canSetSecondAzureLocation=1 - -echo "Inputs" -echo "----------------------------------------------" -echo "resourceGroupName='$resourceGroupName'" -echo "" - -# assumes there is only one vault deployed to this resource group that will match this filter -keyVaultName=$(az keyvault list -g "$resourceGroupName" --query "[?name.starts_with(@,'rc-')].name" -o tsv) - -appConfigSvcName=$(az appconfig list -g "$resourceGroupName" --query "[].name" -o tsv) - -appServiceRootUri='azurewebsites.net' # hard coded because app svc does not return the public endpoint -# updated az resource selection to filter to first based on https://github.com/Azure/azure-cli/issues/25214 -frontEndWebAppName=$(az resource list -g "$resourceGroupName" --query "[?tags.\"azd-service-name\"=='web'].name" -o tsv) -frontEndWebAppUri="https://$frontEndWebAppName.$appServiceRootUri" - -# assumes resourceToken is located in app service frontend web app name -# assumes the uniquestring function from the bicep template always returns a string of length 13 -resourceToken=${frontEndWebAppName:4:13} - -# assumes environment name is used to build resourceGroupName -locationOfHyphen=$(echo $resourceGroupName | awk -F "-" '{print length($0)-length($NF)}') -environmentName=${resourceGroupName:0:$locationOfHyphen-1} - - -frontDoorProfileName=$(az resource list -g $resourceGroupName --query "[? kind=='frontdoor' ].name" -o tsv) -echo "frontDoorProfileName=$frontDoorProfileName" -frontEndWebAppHostName=$(az afd endpoint list -g $resourceGroupName --profile-name $frontDoorProfileName --query "[].hostName" -o tsv --only-show-errors) -echo "frontEndWebAppHostName=$frontEndWebAppHostName" -frontEndWebAppUri="https://$frontEndWebAppHostName" - -substring="-rg" -secondaryResourceGroupName=(${resourceGroupName%%$substring*}) -secondaryResourceGroupName+="-secondary-rg" -group2Exists=$(az group exists -n $secondaryResourceGroupName) -if [[ $group2Exists == 'false' ]]; then - secondaryResourceGroupName='' -fi - -# updated az resource selection to filter to first based on https://github.com/Azure/azure-cli/issues/25214 -mySqlServer=$(az resource list -g $resourceGroupName --query "[?type=='Microsoft.Sql/servers'].name" -o tsv) - -azdData=$(azd env get-values) -isProd='' -if [[ $azdData =~ 'IS_PROD="true"' ]]; then - isProd=true -fi - -echo "Derived inputs" -echo "----------------------------------------------" -if [[ $isProd ]]; then - echo "isProd=true" -else - echo "isProd=false" -fi -echo "keyVaultName=$keyVaultName" -echo "appConfigSvcName=$appConfigSvcName" -echo "frontEndWebAppUri=$frontEndWebAppUri" -echo "resourceToken=$resourceToken" -echo "environmentName=$environmentName" -echo "secondaryResourceGroupName=$secondaryResourceGroupName" -echo "" - -if [[ ${#keyVaultName} -eq 0 ]]; then - printf "${red}FATAL ERROR:${clear} Could not find Key Vault resource. Confirm the --resourceGroupName is the one created by the `azd provision` command." - echo "" - exit 7 -fi - -echo "Runtime values" -echo "----------------------------------------------" -frontEndWebAppName="$environmentName-$resourceToken-frontend" -apiWebAppName="$environmentName-$resourceToken-api" -maxNumberOfRetries=20 - -echo "frontEndWebAppName='$frontEndWebAppName'" -echo "apiWebAppName='$apiWebAppName'" -echo "maxNumberOfRetries=$maxNumberOfRetries" - -tenantId=$(az account show --query "tenantId" -o tsv) - -userObjectId=$(az account show --query "id" -o tsv) - -echo "tenantId='$tenantId'" -echo "" - -if [[ $debug ]]; then - read -n 1 -r -s -p "Press any key to continue..." - echo '' - echo "..." -fi - -# prod environments do not allow public network access, this must be changed before we can set values -if [[ $isProd ]]; then - # Resolves permission constraint that prevents the deploymentScript from running this command - # https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/134 - az sql server update -n $mySqlServer -g $resourceGroupName --set publicNetworkAccess="Disabled" > /dev/null -fi - -frontEndWebObjectId=$(az ad app list --filter "displayName eq '$frontEndWebAppName'" --query "[].id" -o tsv) - -if [[ ${#frontEndWebObjectId} -eq 0 ]]; then - - # this web app doesn't exist and must be created - - frontEndWebAppClientId=$(az ad app create \ - --display-name $frontEndWebAppName \ - --sign-in-audience AzureADMyOrg \ - --app-roles '[{ "allowedMemberTypes": [ "User" ], "description": "Relecloud Administrator", "displayName": "Relecloud Administrator", "isEnabled": "true", "value": "Administrator" }]' \ - --web-redirect-uris $frontEndWebAppUri/signin-oidc https://localhost:7227/signin-oidc \ - --enable-id-token-issuance \ - --query appId --output tsv) - - echo "frontEndWebAppClientId='$frontEndWebAppClientId'" - - if [[ ${#frontEndWebAppClientId} -eq 0 ]]; then - printf "${red}FATAL ERROR:${clear} Unknown Azure AD error. Failed to create front-end app registration." - echo "" - - exit 8 - fi - - - isWebAppCreated=0 - currentRetryCount=0 - while [ $isWebAppCreated -eq 0 ] - do - # assumes that we only need to create client secret if the app registration did not exist - frontEndWebAppClientSecret=$(az ad app credential reset --id $frontEndWebAppClientId --query "password" -o tsv --only-show-errors 2> /dev/null) - isWebAppCreated=${#frontEndWebAppClientSecret} - - currentRetryCount=$((currentRetryCount + 1)) - if [[ $currentRetryCount -gt $maxNumberOfRetries ]]; then - echo "FATAL ERROR: Tried to create a client secret too many times" 1>&2 - - printf "${red}FATAL ERROR:${clear} Unknown Azure AD error. Could not create and retrieve a client secret. Tried to create a client secret too many times" - echo "" - - exit 14 - fi - - if [[ $isWebAppCreated -eq 0 ]]; then - echo "... trying to create clientSecret for front-end attempt #$currentRetryCount" - else - echo "... created clientSecret for front-end" - echo "" - fi - - # sleep until the app registration is created - sleep 3 - done - - # prod environments do not allow public network access, this must be changed before we can set values - if [[ $isProd ]]; then - # open the app config so that the local user can access - az appconfig update --name $appConfigSvcName --resource-group $resourceGroupName --enable-public-network true > /dev/null - - # open the key vault so that the local user can access - az keyvault update --name $keyVaultName --resource-group $resourceGroupName --public-network-access Enabled > /dev/null - fi - - # save 'AzureAd:ClientSecret' to Key Vault - az keyvault secret set --name 'AzureAd--ClientSecret' --vault-name $keyVaultName --value $frontEndWebAppClientSecret --only-show-errors > /dev/null - echo "Set keyvault value for: 'AzureAd--ClientSecret'" - - # save 'AzureAd:TenantId' to App Config Svc - az appconfig kv set --name $appConfigSvcName --key 'AzureAd:TenantId' --value $tenantId --yes --only-show-errors > /dev/null - echo "Set appconfig value for: 'AzureAd:TenantId'" - - # save 'AzureAd:ClientId' to App Config Svc - az appconfig kv set --name $appConfigSvcName --key 'AzureAd:ClientId' --value $frontEndWebAppClientId --yes --only-show-errors > /dev/null - echo "Set appconfig value for: 'AzureAd:ClientId'" - - # prod environments do not allow public network access - if [[ $isProd ]]; then - # close the app config so that the local user cannot access - az appconfig update --name $appConfigSvcName --resource-group $resourceGroupName --enable-public-network false > /dev/null - - # close the key vault so that the local user cannot access - az keyvault update --name $keyVaultName --resource-group $resourceGroupName --public-network-access Disabled > /dev/null - fi -else - echo "frontend app registration objectId=$frontEndWebObjectId already exists. Delete the '$frontEndWebAppName' app registration to recreate or reset the settings." - frontEndWebAppClientId=$(az ad app show --id $frontEndWebObjectId --query "appId" -o tsv) - echo "frontEndWebAppClientId='$frontEndWebAppClientId'" - canSetSecondAzureLocation=2 -fi - -echo "" -echo "Finished app registration for front-end" -echo "" - -apiObjectId=$(az ad app list --filter "displayName eq '$apiWebAppName'" --query "[].id" -o tsv) - -if [[ ${#apiObjectId} -eq 0 ]]; then - # the api app registration does not exist and must be created - - apiWebAppClientId=$(az ad app create \ - --display-name $apiWebAppName \ - --sign-in-audience AzureADMyOrg \ - --app-roles '[{ "allowedMemberTypes": [ "User" ], "description": "Relecloud Administrator", "displayName": "Relecloud Administrator", "isEnabled": "true", "value": "Administrator" }]' \ - --query appId --output tsv) - - echo "apiWebAppClientId='$apiWebAppClientId'" - - # sleep until the app registration is created correctly - isApiCreated=0 - currentRetryCount=0 - - while [ $isApiCreated -eq 0 ] - do - apiObjectId=$(az ad app show --id $apiWebAppClientId --query id -o tsv 2> /dev/null) - isApiCreated=${#apiObjectId} - - currentRetryCount=$((currentRetryCount + 1)) - if [[ $currentRetryCount -gt $maxNumberOfRetries ]]; then - printf "${red}FATAL ERROR:${clear} Unknown Azure AD error. Tried to create retrieve the apiObjectId too many times." - echo "" - - exit 15 - fi - - if [[ $isApiCreated -eq 0 ]]; then - echo "... trying to retrieve apiObjectId attempt #$currentRetryCount" - else - echo "... retrieved apiObjectId='$apiObjectId'" - fi - - sleep 3 - done - - # Expose an API by defining a scope - # application ID URI will be clientId by default - - scopeName='relecloud.api' - - isScopeAdded=0 - currentRetryCount=0 - while [ $isScopeAdded -eq 0 ] - do - az rest \ - --method PATCH \ - --uri "https://graph.microsoft.com/v1.0/applications/$apiObjectId" \ - --headers 'Content-Type=application/json' \ - --body "{ identifierUris:[ 'api://$apiWebAppClientId' ], api: { oauth2PermissionScopes: [ { value: '$scopeName', adminConsentDescription: 'Relecloud API access', adminConsentDisplayName: 'Relecloud API access', id: 'c791b666-cc87-4904-bc9f-c5945e08ba8f', isEnabled: true, type: 'Admin' } ] } }" 2> /dev/null - - createdScope=$(az ad app show --id $apiWebAppClientId --query 'api.oauth2PermissionScopes[0].value' -o tsv 2> /dev/null) - - if [[ $createdScope == $scopeName ]]; then - isScopeAdded=1 - echo "... added scope $scopeName" - else - currentRetryCount=$((currentRetryCount + 1)) - echo "... trying to add scope attempt #$currentRetryCount" - if [[ $currentRetryCount -gt $maxNumberOfRetries ]]; then - printf "${red}FATAL ERROR:${clear} Unknown Azure AD error. Tried to set scopes too many times." - echo "" - - exit 16 - fi - fi - - sleep 3 - done - - echo "... assigned scope to api" - - permId='' - currentRetryCount=0 - while [ ${#permId} -eq 0 ] - do - permId=$(az ad app show --id $apiWebAppClientId --query 'api.oauth2PermissionScopes[].id' -o tsv 2> /dev/null) - - if [[ ${#permId} -eq 0 ]]; then - currentRetryCount=$((currentRetryCount + 1)) - echo "... trying to retrieve permId attempt #$currentRetryCount" - - if [[ $currentRetryCount -gt $maxNumberOfRetries ]]; then - printf "${red}FATAL ERROR:${clear} Unknown Azure AD error. Tried to retrieve permissionId too many times" - echo "" - - exit 17 - fi - else - echo "... retrieved permId=$permId" - fi - - sleep 3 - done - - preAuthedAppApplicationId=$frontEndWebAppClientId - - # Preauthorize the front-end as a client to suppress scope requests - authorizedApps='' - currentRetryCount=0 - while [ ${#authorizedApps} -eq 0 ] - do - az rest \ - --method PATCH \ - --uri "https://graph.microsoft.com/v1.0/applications/$apiObjectId" \ - --headers 'Content-Type=application/json' \ - --body "{api:{preAuthorizedApplications:[{appId:'$preAuthedAppApplicationId',delegatedPermissionIds:['$permId']}]}}" 2> /dev/null - - authorizedApps=$(az ad app show --id $apiObjectId --query "api.preAuthorizedApplications[].appId" -o tsv 2> /dev/null) - - if [[ ${#authorizedApps} -eq 0 ]]; then - currentRetryCount=$((currentRetryCount + 1)) - echo "... trying to set front-end app as an preAuthorized client attempt #$currentRetryCount" - - if [[ $currentRetryCount -gt $maxNumberOfRetries ]]; then - printf "${red}FATAL ERROR:${clear} Unknown Azure AD error. Tried to authorize the front-end app too many times" - echo "" - - exit 18 - fi - else - echo "front-end web app is now preAuthorized" - echo "" - fi - - sleep 3 - done - - # prod environments do not allow public network access, this must be changed before we can set values - if [[ $isProd ]]; then - # open the app config so that the local user can access - az appconfig update --name $appConfigSvcName --resource-group $resourceGroupName --enable-public-network true > /dev/null - fi - - # save 'App:RelecloudApi:AttendeeScope' scope for role to App Config Svc - az appconfig kv set --name $appConfigSvcName --key 'App:RelecloudApi:AttendeeScope' --value "api://$apiWebAppClientId/$scopeName" --yes --only-show-errors > /dev/null - echo "Set appconfig value for: 'App:RelecloudApi:AttendeeScope'" - - # save 'Api:AzureAd:ClientId' to App Config Svc - az appconfig kv set --name $appConfigSvcName --key 'Api:AzureAd:ClientId' --value $apiWebAppClientId --yes --only-show-errors > /dev/null - echo "Set appconfig value for: 'Api:AzureAd:ClientId'" - - # save 'Api:AzureAd:TenantId' to App Config Svc - az appconfig kv set --name $appConfigSvcName --key 'Api:AzureAd:TenantId' --value $tenantId --yes --only-show-errors > /dev/null - echo "Set appconfig value for: 'Api:AzureAd:TenantId'" - - # prod environments do not allow public network access - if [[ $isProd ]]; then - # close the app config so that the local user cannot access - az appconfig update --name $appConfigSvcName --resource-group $resourceGroupName --enable-public-network false > /dev/null - fi -else - echo "API app registration objectId=$apiObjectId already exists. Delete the '$apiWebAppName' app registration to recreate or reset the settings." - canSetSecondAzureLocation=3 -fi - -############## Copy the App Configuration and Key Vault settings to second azure location ############## - -if [[ ${#secondaryResourceGroupName} -gt 0 && $canSetSecondAzureLocation -eq 1 ]]; then - - # assumes there is only one vault deployed to this resource group that will match this filter - secondaryKeyVaultName=$(az keyvault list -g "$secondaryResourceGroupName" --query "[?name.starts_with(@,'rc-')].name" -o tsv) - - secondaryAppConfigSvcName=$(az appconfig list -g "$secondaryResourceGroupName" --query "[].name" -o tsv) - - echo "" - echo "Derived inputs for second azure location" - echo "----------------------------------------------" - echo "secondaryKeyVaultName=$secondaryKeyVaultName" - echo "secondaryAppConfigSvcName=$secondaryAppConfigSvcName" - - if [[ ${#secondaryKeyVaultName} -eq 0 ]]; then - echo "" - printf "${green}Finished successfully${clear} after configuring 1 Key Vault and 1 App Configuration Service!" - echo "" - echo "" - exit 0 - fi - - echo "" - echo "Now configuring secondary key vault" - - # prod environments do not allow public network access, this must be changed before we can set values - if [[ $isProd ]]; then - # open the app config so that the local user can access - az appconfig update --name $secondaryAppConfigSvcName --resource-group $secondaryResourceGroupName --enable-public-network true > /dev/null - - # open the key vault so that the local user can access - az keyvault update --name $secondaryKeyVaultName --resource-group $secondaryResourceGroupName --public-network-access Enabled > /dev/null - fi - - # save 'AzureAd:ClientSecret' to Key Vault - az keyvault secret set --name 'AzureAd--ClientSecret' --vault-name $secondaryKeyVaultName --value $frontEndWebAppClientSecret --only-show-errors > /dev/null - echo "... Set keyvault value for: 'AzureAd--ClientSecret'" - - echo "" - echo "Now configuring secondary app config svc" - # save 'AzureAd:TenantId' to App Config Svc - az appconfig kv set --name $secondaryAppConfigSvcName --key 'AzureAd:TenantId' --value $tenantId --yes --only-show-errors > /dev/null - echo "... Set appconfig value for: 'AzureAd:TenantId'" - - #save 'AzureAd:ClientId' to App Config Svc - az appconfig kv set --name $secondaryAppConfigSvcName --key 'AzureAd:ClientId' --value $frontEndWebAppClientId --yes --only-show-errors > /dev/null - echo "... Set appconfig value for: 'AzureAd:ClientId'" - - # save 'App:RelecloudApi:AttendeeScope' scope for role to App Config Svc - az appconfig kv set --name $secondaryAppConfigSvcName --key 'App:RelecloudApi:AttendeeScope' --value "api://$apiWebAppClientId/$scopeName" --yes --only-show-errors > /dev/null - echo "... Set appconfig value for: 'App:RelecloudApi:AttendeeScope'" - - # save 'Api:AzureAd:ClientId' to App Config Svc - az appconfig kv set --name $secondaryAppConfigSvcName --key 'Api:AzureAd:ClientId' --value $apiWebAppClientId --yes --only-show-errors > /dev/null - echo "... Set appconfig value for: 'Api:AzureAd:ClientId'" - - # save 'Api:AzureAd:TenantId' to App Config Svc - az appconfig kv set --name $secondaryAppConfigSvcName --key 'Api:AzureAd:TenantId' --value $tenantId --yes --only-show-errors > /dev/null - echo "... Set appconfig value for: 'Api:AzureAd:TenantId'" - - # prod environments do not allow public network access - if [[ $isProd ]]; then - # close the app config so that the local user cannot access - az appconfig update --name $secondaryAppConfigSvcName --resource-group $secondaryResourceGroupName --enable-public-network false > /dev/null - - # close the key vault so that the local user cannot access - az keyvault update --name $secondaryKeyVaultName --resource-group $secondaryResourceGroupName --public-network-access Disabled > /dev/null - fi - - echo "" - printf "${green}Finished successfully${clear} after configuring 2 Key Vaults and 2 App Configuration Services!" - echo "" - echo "" -elif [[ $canSetSecondAzureLocation -eq 2 ]]; then - echo "" - echo "skipped setup for secondary azure location because frontend app registration objectId=$frontEndWebObjectId already exists." -elif [[ $canSetSecondAzureLocation -eq 3 ]]; then - echo "" - echo "skipped setup for secondary location because API app registration objectId=$apiObjectId already exists." -fi - -# all done -exit 0 diff --git a/infra/deploymentScripts/azureRedisCachePublicDevAccess.sh b/infra/deploymentScripts/azureRedisCachePublicDevAccess.sh deleted file mode 100644 index 76879a66..00000000 --- a/infra/deploymentScripts/azureRedisCachePublicDevAccess.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash - -POSITIONAL_ARGS=() - -while [[ $# -gt 0 ]]; do - case $1 in - --name|-n) - redisCacheName="$2" - shift # past argument - shift # past value - ;; - --resource-group|-g) - resourceGroupName="$2" - shift # past argument - shift # past value - ;; - --subscription|-s) - subscriptionId="$2" - shift # past argument - shift # past value - ;; - --help*) - echo "" - echo "" - echo "" - echo "Command" - echo " azureRedisCachePublicDevAccess.sh : is used by devs to make Redis accessible for non-prod dev tasks" - echo "" - echo "Arguments" - echo " --resource-group -g : Name of resource group where this Redis Cache is deployed." - echo " --subscription -s : The subscriptionId where this Redis Cache is deployed." - echo " --name -n : Name of the Redis Cache that should be modified." - echo "" - exit 1 - ;; - -*|--*) - echo "Unknown option $1" - exit 1 - ;; - *) - POSITIONAL_ARGS+=("$1") # save positional arg - shift # past argument - ;; - esac -done - -if [[ ${#resourceGroupName} -eq 0 ]]; then - echo "FATAL ERROR: Missing required parameter --resource-group" 1>&2 - exit 6 -fi - -if [[ ${#subscriptionId} -eq 0 ]]; then - echo "FATAL ERROR: Missing required parameter --subscription" 1>&2 - exit 7 -fi - -if [[ ${#redisCacheName} -eq 0 ]]; then - echo "FATAL ERROR: Missing required parameter --name" 1>&2 - exit 8 -fi - -az rest \ - --method PATCH \ - --uri "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Cache/Redis/$redisCacheName?api-version=2020-06-01" \ - --headers 'Content-Type=application/json' \ - --body "{ \"properties\": { \"publicNetworkAccess\":\"Enabled\" } }" \ No newline at end of file diff --git a/infra/deploymentScripts/createSqlAcctForManagedIdentity.ps1 b/infra/deploymentScripts/createSqlAcctForManagedIdentity.ps1 deleted file mode 100644 index fb840f6b..00000000 --- a/infra/deploymentScripts/createSqlAcctForManagedIdentity.ps1 +++ /dev/null @@ -1,82 +0,0 @@ -#Requires -Version 7.0 - -<# -.SYNOPSIS - Used to create Sql Account for Managed Identity -.DESCRIPTION - Creates a new Sql Account for the Managed Identity service principal and grants account db_owner role - - Also configures the Sql Database for AAD authentication only - - NOTE: This script is not intended to be run from a local environment. - This script is run by azd during devOps deployment. - For the local environment version of this script, please see makeSqlUserAccount.ps1 - - This script provides a workflow to automatically configure the deployed Azure resources and make it easier to get - started. It is not intended as part of a recommended best practice as we do not recommend deploying Azure SQL - with network configurations that would allow a deployment script such as this to connect. - - We recommend handling this one-time process as part of your SQL data migration process - More details can be found in our docs for Azure SQL server - https://learn.microsoft.com/en-us/azure/app-service/tutorial-connect-msi-sql-database?tabs=windowsclient%2Cef%2Cdotnet -.PARAMETER ServerName - A required parameter for the name of target Azure SQL Server. -.PARAMETER ResourceGroupName - A required parameter for the name of resource group that contains the environment that was - created by the azd command. -.PARAMETER ServerUri - A required parameter for the Uri of target Azure SQL Server. -.PARAMETER CatalogName - A required parameter for the name the Azure SQL Database name used. -.PARAMETER ApplicationId - A required parameter for the Managed Identity's Application ID used to generate its SID - used for creating a user in SQL. -.PARAMETER ManagedIdentityName - A required parameter for the name of Managed Identity that will be used. -.PARAMETER SqlAdminLogin - A required parameter for the SQL Administrator Login used. -.PARAMETER SqlAdminPwd - A required parameter for the SQL Administrator Password used. -.PARAMETER IsProd - A required parameter indicating Production environment is being used. -#> - -Param( - [Parameter(Mandatory = $true)][string]$ServerName, - [Parameter(Mandatory = $true)][string]$ResourceGroupName, - [Parameter(Mandatory = $true)][string]$ServerUri, - [Parameter(Mandatory = $true)][string]$CatalogName, - [Parameter(Mandatory = $true)][string]$ApplicationId, - [Parameter(Mandatory = $true)][string]$ManagedIdentityName, - [Parameter(Mandatory = $true)][string]$SqlAdminLogin, - [Parameter(Mandatory = $true)][string]$SqlAdminPwd, - [Parameter(Mandatory = $true)][bool]$IsProd -) - -# Make Invoke-Sqlcmd available -Install-Module -Name SqlServer -Force -Import-Module -Name SqlServer - -# translate applicationId into SID -[guid]$guid = [System.Guid]::Parse($ApplicationId) - -foreach ($byte in $guid.ToByteArray()) { - $byteGuid += [System.String]::Format("{0:X2}", $byte) -} -$Sid = "0x" + $byteGuid - -# Prepare SQL cmd to CREATE USER -$CreateUserSQL = "IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'$ManagedIdentityName') create user [$ManagedIdentityName] with sid = $Sid, type = E;" - -# Connect as SQL Admin acct and execute SQL cmd -Invoke-Sqlcmd -ServerInstance $ServerUri -database $CatalogName -Username $SqlAdminLogin -Password $SqlAdminPwd -Query $CreateUserSQL - -# Prepare SQL cmd to grant db_owner role -$GrantDbOwner = "IF NOT EXISTS (SELECT * FROM sys.database_principals p JOIN sys.database_role_members db_owner_role ON db_owner_role.member_principal_id = p.principal_id JOIN sys.database_principals role_names ON role_names.principal_id = db_owner_role.role_principal_id AND role_names.[name] = 'db_owner' WHERE p.[name]=N'$ManagedIdentityName') ALTER ROLE db_owner ADD MEMBER [$ManagedIdentityName];" - -# Connect as SQL Admin acct and execute SQL cmd -Invoke-Sqlcmd -ServerInstance $ServerUri -database $CatalogName -Username $SqlAdminLogin -Password $SqlAdminPwd -Query $GrantDbOwner - -# Restrict access to Azure AD users -Enable-AzSqlServerActiveDirectoryOnlyAuthentication -ServerName $ServerName -ResourceGroupName $ResourceGroupName - diff --git a/infra/deploymentScripts/enableSqlAdminForServer.ps1 b/infra/deploymentScripts/enableSqlAdminForServer.ps1 deleted file mode 100644 index cd6ecf53..00000000 --- a/infra/deploymentScripts/enableSqlAdminForServer.ps1 +++ /dev/null @@ -1,40 +0,0 @@ -#Requires -Version 7.0 - -<# -.SYNOPSIS - Used to enable Sql Authentication only for target Azure SQL Server -.DESCRIPTION - Used to enable Sql Authentication only for target Azure SQL Server - - NOTE: This script is not intended to be run from a local environment. - This script is run by azd during devOps deployment. This script handles rolling back auth changes - that would block the createSqlAcctForManagedIdentity.ps1 scripts from connecting when run as a deploymentScript - https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/224 - - This script provides a workflow to automatically configure the deployed Azure resources and make it easier to get - started. It is not intended as part of a recommended best practice as we do not recommend deploying Azure SQL - with network configurations that would allow a deployment script such as this to connect. - -.PARAMETER SqlServerName - A required parameter for the name of the Azure SQL Server instance. -.PARAMETER ResourceGroupName - A required parameter for the name of resource group that contains the environment that was - created by the azd command. -#> - -Param( - [Parameter(Mandatory = $true)][string]$SqlServerName, - [Parameter(Mandatory = $true)][string]$ResourceGroupName -) - -# check if resource group exists -if (!(Get-AzResourceGroup -Name $ResourceGroupName -ErrorAction SilentlyContinue)) { - Exit -} - -$DoesSqlServerExist = Get-AzResource -ResourceGroupName $ResourceGroupName -ODataQuery "ResourceType eq 'Microsoft.Sql/servers'" - -if ($DoesSqlServerExist) { - Write-Host "Disabling Ad only admin" - Disable-AzSqlServerActiveDirectoryOnlyAuthentication -ServerName $SqlServerName -ResourceGroupName $ResourceGroupName -} \ No newline at end of file diff --git a/infra/devOpsIdentitySetup.bicep b/infra/devOpsIdentitySetup.bicep deleted file mode 100644 index 85d98fb3..00000000 --- a/infra/devOpsIdentitySetup.bicep +++ /dev/null @@ -1,35 +0,0 @@ - -@minLength(1) -@description('Primary location for all resources. Should specify an Azure region. e.g. `eastus2` ') -param location string - -@minLength(1) -@description('A generated identifier used to create unique resources') -param resourceToken string - -@description('An object collection that contains annotations to describe the deployed azure resources to improve operational visibility') -param tags object - -@description('A user-assigned managed identity that is used to run deploymentScripts on this resource group.') -resource devOpsManagedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { - name: 'devops-${resourceToken}-identity' - location: location - tags: tags -} - -@description('Built in \'Contributor\' role ID: https://learn.microsoft.com/azure/role-based-access-control/built-in-roles') -// Allows read access to App Configuration data -var contributorRole = 'b24988ac-6180-42a0-ab88-20f7382dd24c' - -resource devOpsIdentityRoleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = { - name: guid(contributorRole, devOpsManagedIdentity.id) - scope: resourceGroup() - properties: { - principalType: 'ServicePrincipal' - roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', contributorRole) - principalId: devOpsManagedIdentity.properties.principalId - description: 'Grant the "Contributor" role to the user-assigned managed identity so it can run deployment scripts.' - } -} - -output devOpsManagedIdentityId string = devOpsManagedIdentity.id diff --git a/infra/devOpsScripts/appConfigSvcPurge.sh b/infra/devOpsScripts/appConfigSvcPurge.sh deleted file mode 100644 index ad3f2c52..00000000 --- a/infra/devOpsScripts/appConfigSvcPurge.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash - -# This file is part of our engineering process to build and maintain this file. -# See the README markdown file in .github/workflows for further details -# https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/232 - -POSITIONAL_ARGS=() - -while [[ $# -gt 0 ]]; do - case $1 in - --resource-group|-g) - resourceGroupName="$2" - shift # past argument - shift # past value - ;; - -*|--*) - echo "Unknown option $1" - exit 1 - ;; - *) - POSITIONAL_ARGS+=("$1") # save positional arg - shift # past argument - ;; - esac -done - -echo "Inputs" -echo "----------------------------------------------" -echo "resourceGroupName=$resourceGroupName" -echo "----------------------------------------------" - -deletedAppConfigSvcName=$(az appconfig list-deleted --query "[?configurationStoreId.contains(@,'$resourceGroupName')].name" -o tsv) - -if [[ ${#deletedAppConfigSvcName} -gt 0 ]]; then - az appconfig purge --name $deletedAppConfigSvcName --yes - echo "Purged $deletedAppConfigSvcName" -else - echo "No appconfig to purge" -fi - -deletedKeyVaultSvcName=$(az keyvault list-deleted --query "[? properties.vaultId.contains(@,'$resourceGroupName')] | [0].name" -o tsv) -currentRetryCount=0 - -while [ ${#deletedKeyVaultSvcName} -ne 0 ] -do - if [[ $currentRetryCount -gt 6 ]]; then - echo "FATAL ERROR: Tried to purge key vault too many times" 1>&2 - exit 14 - fi - - if [[ ${#deletedKeyVaultSvcName} -gt 0 ]]; then - echo "Purging $deletedKeyVaultSvcName" - az keyvault purge --name $deletedKeyVaultSvcName - else - echo "Done purging key vaults" - fi - - currentRetryCount=$((currentRetryCount + 1)) - deletedKeyVaultSvcName=$(az keyvault list-deleted --query "[? properties.vaultId.contains(@,'$resourceGroupName')] | [0].name" -o tsv) -done \ No newline at end of file diff --git a/infra/devOpsScripts/validateDeployment.ps1 b/infra/devOpsScripts/validateDeployment.ps1 deleted file mode 100644 index d2fb8940..00000000 --- a/infra/devOpsScripts/validateDeployment.ps1 +++ /dev/null @@ -1,110 +0,0 @@ -#Requires -Version 7.0 - -<# -.SYNOPSIS - Examines the web app that was deployed to identify any known issues and provide recommendations. - - -.DESCRIPTION - Use this command to examine your deployed settings and automatically find recommendations - that can help you troubleshoot issues that you may encounter. - - This script was created after identifying intermittent Azure deployment issues. Many - of which can be resolved by re-running 'azd provision' command. - - NOTE: This script is used by our QA process to ensure the quality of this sample it measures - characteristics of the deployment and will be modified as needed to explore intermittent issues - - This engineering code may be repurposed for your scenario as desired - but is not covered by the guidance in this content. - - This functionality assumes that the web app, app configuration service, and app - service have already been successfully deployed. - -.PARAMETER ResourceGroupName - A required parameter for the name of resource group that contains the environment that was - created by the azd command. The cmdlet will populate the App Config Svc and Key - Vault services in this resource group with Azure AD app registration config data. -#> - -Param( - [Alias("g")] - [Parameter(Mandatory = $true, HelpMessage = "Name of the resource group that was created by azd")] - [String]$ResourceGroupName -) - -if ($ResourceGroupName.Length -eq 0) { - Write-Error 'FATAL ERROR: Missing required parameter --resource-group' - exit 6 -} - -if ($ResourceGroupName -eq '-rg') { - Write-Error 'FATAL ERROR: Required parameter --resource-group was not initialized' - exit 7 -} - -### check if group exists ### - -$groupExists=$(az group exists -n $ResourceGroupName) - -if ($groupExists -eq 'false') { - Write-Error "Missing required resource group. The resource group '$ResourceGroupName' does not exist" - Write-Error "Recommended Action: run the `azd provision` command again to overlay the missing settings" - exit 32 -} else { - Write-Debug "Validated that the resource group does exist" -} - -### end check group exists ### - - -### validate web app settings ### - -# checking for known issue 87 -# https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/87 - -$frontEndWebAppName=$(az resource list -g "$ResourceGroupName" --query "[? tags.\`"azd-service-name\`" == 'web' ].name" -o tsv) - -if ($frontEndWebAppName.Length -eq 0) { - Write-Error "Cannot find the front-end web app" - Write-Error "Recommended Action: run the 'azd provision' command again to overlay the missing settings" - exit 32 -} else { - Write-Debug "Found front-end web app named '$frontEndWebAppName'" -} - -$frontEndAppSvcUri=$(az webapp config appsettings list -n $frontEndWebAppName -g $ResourceGroupName --query "[?name=='App:AppConfig:Uri'].value" -o tsv) - -if ($frontEndAppSvcUri.Length -eq 0) { - Write-Error "Missing required Azure App Service configuration setting front-end web app: App:AppConfig:Uri" - Write-Error "Recommended Action: run the 'azd provision' command again to overlay the missing settings" - exit 33 -} else { - Write-Debug "Validated that the App Service was configured with setting 'App:AppConfig:Uri' equal to '$frontEndAppSvcUri'" -} - -$apiWebAppName=$(az resource list -g "$ResourceGroupName" --query "[? tags.\`"azd-service-name\`" == 'api' ].name" -o tsv) - -if ($apiWebAppName.Length -eq 0 ) { - Write-Error "Cannot find the API web app" - Write-Error "Recommended Action: run the 'azd provision' command again to overlay the missing settings" - exit 34 -} else { - Write-Debug "Found API web app named '$apiWebAppName'" -} - -$apiAppSvcUri=$(az webapp config appsettings list -n $apiWebAppName -g $ResourceGroupName --query "[?name=='Api:AppConfig:Uri'].value" -o tsv) - -if ($apiAppSvcUri.Length -eq 0) { - Write-Error "Missing required Azure App Service configuration setting for api web app: Api:AppConfig:Uri" - Write-Error "Recommended Action: run the 'azd provision' command again to overlay the missing settings" - exit 35 -} else { - Write-Debug "Validated that the App Service was configured with setting 'Api:AppConfig:Uri' equal to '$apiAppSvcUri'" -} - -# end of check for issue 87 - -Write-Host "All settings validated successfully..." -Write-Host "If this script was unable to diagnose your problem then please create a GitHub issue" -exit 0 \ No newline at end of file diff --git a/infra/localDevScripts/addLocalIPToSqlFirewall.ps1 b/infra/localDevScripts/addLocalIPToSqlFirewall.ps1 deleted file mode 100644 index 9a79db1a..00000000 --- a/infra/localDevScripts/addLocalIPToSqlFirewall.ps1 +++ /dev/null @@ -1,61 +0,0 @@ -#Requires -Version 7.0 - -<# -.SYNOPSIS - Used by developers to get access to Azure SQL database -.DESCRIPTION - Makes a web request to a public site to retrieve the user's public IP address - and then adds that IP address to the Azure SQL Database Firewall as an allowed connection. - - NOTE: This functionality assumes that the web app, app configuration service, and app - service have already been successfully deployed. - -.PARAMETER ResourceGroupName - A required parameter for the name of resource group that contains the environment that was - created by the azd command. -#> - -Param( - [Alias("g")] - [Parameter(Mandatory = $true, HelpMessage = "Name of the resource group that was created by azd")] - $ResourceGroupName -) - -if ($ResourceGroupName -eq "-rg") { - Write-Error "FATAL ERROR: $ResourceGroupName could not be found in the current subscription" - exit 5 -} - -$groupExists = (az group exists -n "$ResourceGroupName") -if ($groupExists -eq 'false') { - Write-Error "FATAL ERROR: $ResourceGroupName could not be found in the current subscription" - exit 6 -} -else { - Write-Debug "Found resource group named: $ResourceGroupName" -} - -Write-Debug "`$ResourceGroupName = '$ResourceGroupName'" - -$myIpAddress = (Invoke-WebRequest ipinfo.io/ip) - -Write-Debug "`$myIpAddress = '$myIpAddress'" - -# updated az resource selection to filter to first based on https://github.com/Azure/azure-cli/issues/25214 -$mySqlServer = (az resource list -g $ResourceGroupName --query "[?type=='Microsoft.Sql/servers'].name | [0]" -o tsv) - -Write-Debug "`$mySqlServer = '$mySqlServer'" - -$customRuleName = "devbox_$((Get-Date).ToString("yyyy-mm-dd_HH-MM-ss"))" - -Write-Debug "`$customRuleName = '$customRuleName'" - -# Resolves permission constraint that prevents the deploymentScript from running this command -# https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/134 -az sql server update -n $mySqlServer -g $ResourceGroupName --set publicNetworkAccess="Enabled" > $null - -Write-Debug "Change Rule" - -az sql server firewall-rule create -g $ResourceGroupName -s $mySqlServer -n $customRuleName --start-ip-address $myIpAddress --end-ip-address $myIpAddress - -Write-Host "Successful" -ForegroundColor Green -NoNewline; Write-Host " this client's IP address was added to Azure SQL Firewall" \ No newline at end of file diff --git a/infra/localDevScripts/addLocalIPToSqlFirewall.sh b/infra/localDevScripts/addLocalIPToSqlFirewall.sh deleted file mode 100644 index 2db6aa36..00000000 --- a/infra/localDevScripts/addLocalIPToSqlFirewall.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash - -# This script is part of the sample's workflow for giving developers access -# to the resources that were deployed. Note that a better solution, beyond -# the scope of this demo, would be to associate permissions based on -# Azure AD groups so that all team members inherit access from Azure AD. -# https://learn.microsoft.com/en-us/azure/active-directory/roles/groups-concept -# -# This code may be repurposed for your scenario as desired -# but is not covered by the guidance in this content. - -POSITIONAL_ARGS=() - -while [[ $# -gt 0 ]]; do - case $1 in - --resource-group|-g) - resourceGroupName="$2" - shift # past argument - shift # past value - ;; - --help*) - echo "" - echo "" - echo "" - echo "Command" - echo " addLocalIPToSqlFirewall.sh : Makes a web request to a public site to retrieve the user's public IP address and then adds that IP address to the Azure SQL Database Firewall as an allowed connection." - echo "" - echo "Arguments" - echo " --resource-group -g : Name of resource group containing the environment that was created by the azd command." - echo "" - exit 1 - ;; - -*|--*) - echo "Unknown option $1" - exit 1 - ;; - *) - POSITIONAL_ARGS+=("$1") # save positional arg - shift # past argument - ;; - esac -done - -green='\033[0;32m' -yellow='\e[0;33m' -red='\e[1;31m' -clear='\033[0m' - -if [[ ${#resourceGroupName} -eq 0 ]]; then - printf "${red}FATAL ERROR:${clear} Missing required parameter --resource-group" - echo "" - - exit 6 -fi - -myIpAddress=$(wget -q -O - ipinfo.io/ip) -# updated az resource selection to filter to first based on https://github.com/Azure/azure-cli/issues/25214 -mySqlServer=$(az resource list -g $resourceGroupName --query "[?type=='Microsoft.Sql/servers'].name " -o tsv) - -# Resolves permission constraint that prevents the deploymentScript from running this command -# https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/134 -az sql server update -n $mySqlServer -g $resourceGroupName --set publicNetworkAccess="Enabled" > /dev/null - -az sql server firewall-rule create -g $resourceGroupName -s $mySqlServer -n "devbox_$(date +"%Y-%m-%d_%I-%M-%S")" --start-ip-address $myIpAddress --end-ip-address $myIpAddress - -printf "${green}Finished successfully${clear}" -echo "" - -exit 0 \ No newline at end of file diff --git a/infra/localDevScripts/getSecretsForLocalDev.ps1 b/infra/localDevScripts/getSecretsForLocalDev.ps1 deleted file mode 100644 index 777dc22f..00000000 --- a/infra/localDevScripts/getSecretsForLocalDev.ps1 +++ /dev/null @@ -1,138 +0,0 @@ -#Requires -Version 7.0 - -<# -.SYNOPSIS - Will show a json snippet you can save in Visual Studio secrets.json file to run the code locally. -.DESCRIPTION - Supports the local development workflow by retrieving the secrets and configuration necessary - to run the web app sample locally. The secrets and configurations displayed as outputs from this - command should be copied into a secrets.json file to keep secrets out of source control. - - -.PARAMETER ResourceGroupName - Name of resource group containing the environment that was created by the azd command. -.PARAMETER Web - Print the json snippet for the api web app. Defaults to False. -.PARAMETER Api - Print the json snippet for the front-end web app. Defaults to False. -#> - -Param( - [Alias("g")] - [Parameter(Mandatory = $true, HelpMessage = "Name of the resource group that was created by azd")] - [String]$ResourceGroupName, - - [Alias("w")] - [Parameter(Mandatory = $false, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $false)] - [switch]$Web, - - [Alias("a")] - [Parameter(Mandatory = $false, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $false)] - [switch]$Api -) - -$web_app = $Web -$api_app = $Api - -$groupExists = (az group exists -n $ResourceGroupName) -if ($groupExists -eq 'false') { - Write-Error "FATAL ERROR: $ResourceGroupName could not be found in the current subscription" - exit 6 -} -else { - Write-Debug "Found resource group named: $ResourceGroupName" -} - -Write-Debug "`$web_app=$web_app" -Write-Debug "`$api_app=$api_app" - -if ( $web_app -eq $false -and $api_app -eq $false ) { - Write-Error 'FATAL ERROR: Missing required flag -Web or -Api' - exit 7 -} - -Write-Debug "" -Write-Debug "Inputs" -Write-Debug "----------------------------------------------" -Write-Debug "ResourceGroupName='$ResourceGroupName'" -Write-Debug "" - -# assumes there is only one vault deployed to this resource group that will match this filter -$keyVaultName = (az keyvault list -g "$ResourceGroupName" --query "[? name.starts_with(@,'rc-') ].name" -o tsv) - -$appConfigSvcName = (az resource list -g $ResourceGroupName --query "[? type== 'Microsoft.AppConfiguration/configurationStores' ].name" -o tsv) - -$appConfigUri = (az appconfig show -n $appConfigSvcName -g $ResourceGroupName --query "endpoint" -o tsv 2> $null) - -Write-Debug "Derived inputs" -Write-Debug "----------------------------------------------" -Write-Debug "keyVaultName=$keyVaultName" -Write-Debug "appConfigSvcName=$appConfigSvcName" - -### -# Step1: Print json snippet for web app -### - -if ($web_app) { - # get 'AzureAd:ClientSecret' from Key Vault - $frontEndAzureAdClientSecret = (az keyvault secret show --vault-name $keyVaultName --name AzureAd--ClientSecret -o tsv --query "value" 2> $null) - - # get 'App:RedisCache:ConnectionString' from Key Vault - $frontEndRedisConnStr = (az keyvault secret show --vault-name $keyVaultName --name App--RedisCache--ConnectionString -o tsv --query "value" 2> $null) - - # get 'App:RelecloudApi:AttendeeScope' from App Configuration Svc - $frontEndAttendeeScope = (az appconfig kv show -n $appConfigSvcName --key App:RelecloudApi:AttendeeScope -o tsv --query value 2> $null) - - # get 'App:RelecloudApi:BaseUri' from App Configuration svc - # frontEndBaseUri=$(az appconfig kv show -n $appConfigSvcName --key App:RelecloudApi:BaseUri -o tsv --query value 2> $null) - $frontEndBaseUri = "https://localhost:7242" - - # get 'AzureAd:ClientId' from App Configuration svc - $frontEndAzureAdClientId = (az appconfig kv show -n $appConfigSvcName --key AzureAd:ClientId -o tsv --query value 2> $null) - - # get 'AzureAd:TenantId' from App Configuration svc - $frontEndAzureAdTenantId = (az appconfig kv show -n $appConfigSvcName --key AzureAd:TenantId -o tsv --query value 2> $null) - - Write-Host "" - Write-Host "{" - Write-Host " `"App:AppConfig:Uri`": `"$appConfigUri`"," - Write-Host " `"App:RedisCache:ConnectionString`": `"$frontEndRedisConnStr`"," - Write-Host " `"App:RelecloudApi:AttendeeScope`": `"$frontEndAttendeeScope`"," - Write-Host " `"App:RelecloudApi:BaseUri`": `"$frontEndBaseUri`"," - Write-Host " `"AzureAd:ClientId`": `"$frontEndAzureAdClientId`"," - Write-Host " `"AzureAd:ClientSecret`": `"$frontEndAzureAdClientSecret`"," - Write-Host " `"AzureAd:TenantId`": `"$frontEndAzureAdTenantId`"" - Write-Host "}" - Write-Host "" - Write-Host "Successful" -ForegroundColor Green -NoNewline; Write-Host " use these values to start debugging locally" -} - -if ($api_app) { - # App:StorageAccount:ConnectionString - $apiAppQueueConnStr = (az keyvault secret show --vault-name $keyVaultName --name App--StorageAccount--ConnectionString -o tsv --query "value" 2> $null) - - # get 'App:RedisCache:ConnectionString' from Key Vault - $apiAppRedisConnStr = (az keyvault secret show --vault-name $keyVaultName --name App--RedisCache--ConnectionString -o tsv --query "value" 2> $null) - - # get 'Api:AzureAd:ClientId' from App Configuration svc - $apiAppAzureAdClientId = (az appconfig kv show -n $appConfigSvcName --key Api:AzureAd:ClientId -o tsv --query value 2> $null) - - # get 'Api:AzureAd:TenantId' from App Configuration svc - $apiAppAzureAdTenantId = (az appconfig kv show -n $appConfigSvcName --key Api:AzureAd:TenantId -o tsv --query value 2> $null) - - # App:SqlDatabase:ConnectionString - $apiAppSqlConnStr = (az appconfig kv show -n $appConfigSvcName --key App:SqlDatabase:ConnectionString -o tsv --query value 2> $null) - - Write-Host "" - Write-Host "{" - Write-Host " `"Api:AppConfig:Uri`": `"$appConfigUri`"," - Write-Host " `"Api:AzureAd:ClientId`": `"$apiAppAzureAdClientId`"," - Write-Host " `"Api:AzureAd:TenantId`": `"$apiAppAzureAdTenantId`"," - Write-Host " `"App:RedisCache:ConnectionString`": `"$apiAppRedisConnStr`"," - Write-Host " `"App:SqlDatabase:ConnectionString`": `"$apiAppSqlConnStr`"," - Write-Host " `"App:StorageAccount:QueueConnectionString`": `"$apiAppQueueConnStr`"" - Write-Host "}" - Write-Host "" - - Write-Host "Successful" -ForegroundColor Green -NoNewline; Write-Host " use these values to start debugging locally" -} diff --git a/infra/localDevScripts/getSecretsForLocalDev.sh b/infra/localDevScripts/getSecretsForLocalDev.sh deleted file mode 100644 index 4147873d..00000000 --- a/infra/localDevScripts/getSecretsForLocalDev.sh +++ /dev/null @@ -1,184 +0,0 @@ -#!/bin/bash - -# This script is part of the sample's workflow for giving developers access -# to the resources that were deployed. Note that a better solution, beyond -# the scope of this demo, would be to associate permissions based on -# Azure AD groups so that all team members inherit access from Azure AD. -# https://learn.microsoft.com/en-us/azure/active-directory/roles/groups-concept -# -# This code may be repurposed for your scenario as desired -# but is not covered by the guidance in this content. - -web_app='' -api_app='' -debug='' - -POSITIONAL_ARGS=() - -while [[ $# -gt 0 ]]; do - case $1 in - --resource-group|-g) - resourceGroupName="$2" - shift # past argument - shift # past value - ;; - --web|-w) - web_app=true - shift # past argument - ;; - --api|-a) - api_app=true - shift # past argument - ;; - --debug) - debug=true - shift # past argument - ;; - --help*) - echo "" - echo "" - echo "" - echo "Command" - echo " getSecretsForLocalDev.sh : Will show a json snippet you can save in Visual Studio secrets.json file to run the code locally." - echo "" - echo "Arguments" - echo " --resource-group -g : Name of resource group containing the environment that was created by the azd command." - echo "" - echo " Must select one or more of the following flags" - echo " --api -a : Print the json snippet for the api web app. Defaults to False." - echo " --web -w : Print the json snippet for the front-end web app. Defaults to False." - echo "" - exit 1 - ;; - -*|--*) - echo "Unknown option $1" - exit 1 - ;; - *) - POSITIONAL_ARGS+=("$1") # save positional arg - shift # past argument - ;; - esac -done - -green='\033[0;32m' -yellow='\e[0;33m' -red='\e[1;31m' -clear='\033[0m' - -if [[ ${#resourceGroupName} -eq 0 ]]; then - printf "${red}FATAL ERROR:${clear} Missing required parameter --resource-group" - echo "" - - exit 6 -fi - -if [[ $web_app == '' && $api_app == '' ]]; then - printf "${red}FATAL ERROR:${clear} Missing required flag --web or --api" - echo "" - - exit 7 -fi - -if [[ $debug ]]; then - echo "" - echo "Inputs" - echo "----------------------------------------------" - echo "resourceGroupName='$resourceGroupName'" - echo "" -fi - -# assumes there is only one vault deployed to this resource group that will match this filter -keyVaultName=$(az keyvault list -g "$resourceGroupName" --query "[?name.starts_with(@,'rc-')].name " -o tsv) - -appConfigSvcName=$(az resource list -g $resourceGroupName --query "[?type=='Microsoft.AppConfiguration/configurationStores'].name " -o tsv) - -appConfigUri=$(az appconfig show -n $appConfigSvcName -g $resourceGroupName --query "endpoint" -o tsv 2> /dev/null) - -if [[ $debug ]]; then - echo "Derived inputs" - echo "----------------------------------------------" - echo "keyVaultName=$keyVaultName" - echo "appConfigSvcName=$appConfigSvcName" - - read -n 1 -r -s -p "Press any key to continue..." - echo '' - echo "..." -fi - -### -# Step1: Print json snippet for web app -### - -if [[ $web_app ]]; then - # get 'AzureAd:ClientSecret' from Key Vault - frontEndAzureAdClientSecret=$(az keyvault secret show --vault-name $keyVaultName --name AzureAd--ClientSecret -o tsv --query "value" 2> /dev/null) - - # get 'App:RedisCache:ConnectionString' from Key Vault - frontEndRedisConnStr=$(az keyvault secret show --vault-name $keyVaultName --name App--RedisCache--ConnectionString -o tsv --query "value" 2> /dev/null) - - # get 'App:RelecloudApi:AttendeeScope' from App Configuration Svc - frontEndAttendeeScope=$(az appconfig kv show -n $appConfigSvcName --key App:RelecloudApi:AttendeeScope -o tsv --query value 2> /dev/null) - - # get 'App:RelecloudApi:BaseUri' from App Configuration svc - # frontEndBaseUri=$(az appconfig kv show -n $appConfigSvcName --key App:RelecloudApi:BaseUri -o tsv --query value 2> /dev/null) - frontEndBaseUri="https://localhost:7242" - - # get 'AzureAd:ClientId' from App Configuration svc - frontEndAzureAdClientId=$(az appconfig kv show -n $appConfigSvcName --key AzureAd:ClientId -o tsv --query value 2> /dev/null) - - # get 'AzureAd:TenantId' from App Configuration svc - frontEndAzureAdTenantId=$(az appconfig kv show -n $appConfigSvcName --key AzureAd:TenantId -o tsv --query value 2> /dev/null) - - echo "" - echo "{" - echo " \"App:AppConfig:Uri\": \"$appConfigUri\"," - echo " \"App:RedisCache:ConnectionString\": \"$frontEndRedisConnStr\"," - echo " \"App:RelecloudApi:AttendeeScope\": \"$frontEndAttendeeScope\"," - echo " \"App:RelecloudApi:BaseUri\": \"$frontEndBaseUri\"," - echo " \"AzureAd:ClientId\": \"$frontEndAzureAdClientId\"," - echo " \"AzureAd:ClientSecret\": \"$frontEndAzureAdClientSecret\"," - echo " \"AzureAd:TenantId\": \"$frontEndAzureAdTenantId\"" - echo "}" - echo "" - - printf "${green}Finished successfully${clear}" - echo "" - - exit 0 -fi - - -if [[ $api_app ]]; then - - # App:StorageAccount:ConnectionString - apiAppQueueConnStr=$(az keyvault secret show --vault-name $keyVaultName --name App--StorageAccount--ConnectionString -o tsv --query "value" 2> /dev/null) - - # get 'App:RedisCache:ConnectionString' from Key Vault - apiAppRedisConnStr=$(az keyvault secret show --vault-name $keyVaultName --name App--RedisCache--ConnectionString -o tsv --query "value" 2> /dev/null) - - # get 'Api:AzureAd:ClientId' from App Configuration svc - apiAppAzureAdClientId=$(az appconfig kv show -n $appConfigSvcName --key Api:AzureAd:ClientId -o tsv --query value 2> /dev/null) - - # get 'Api:AzureAd:TenantId' from App Configuration svc - apiAppAzureAdTenantId=$(az appconfig kv show -n $appConfigSvcName --key Api:AzureAd:TenantId -o tsv --query value 2> /dev/null) - - # App:SqlDatabase:ConnectionString - apiAppSqlConnStr=$(az appconfig kv show -n $appConfigSvcName --key App:SqlDatabase:ConnectionString -o tsv --query value 2> /dev/null) - - echo "" - echo "{" - echo " \"Api:AppConfig:Uri\": \"$appConfigUri\"," - echo " \"Api:AzureAd:ClientId\": \"$apiAppAzureAdClientId\"," - echo " \"Api:AzureAd:TenantId\": \"$apiAppAzureAdTenantId\"," - echo " \"App:RedisCache:ConnectionString\": \"$apiAppRedisConnStr\"," - echo " \"App:SqlDatabase:ConnectionString\": \"$apiAppSqlConnStr\"," - echo " \"App:StorageAccount:QueueConnectionString\": \"$apiAppQueueConnStr\"" - echo "}" - echo "" - - printf "${green}Finished successfully${clear}" - echo "" - - exit 0 -fi diff --git a/infra/localDevScripts/makeSqlUserAccount.ps1 b/infra/localDevScripts/makeSqlUserAccount.ps1 deleted file mode 100644 index a454509f..00000000 --- a/infra/localDevScripts/makeSqlUserAccount.ps1 +++ /dev/null @@ -1,127 +0,0 @@ -#Requires -Version 7.0 - -<# -.SYNOPSIS - Will make the SQL user account required to authenticate with Azure AD to Azure SQL Database. -.DESCRIPTION - Will make the SQL user account required to authenticate with Azure AD to Azure SQL Database. - - -.PARAMETER ResourceGroupName - Name of resource group containing the environment that was created by the azd command. -#> - -Param( - [Alias("g")] - [Parameter(Mandatory = $true, HelpMessage = "Name of the resource group that was created by azd")] - [String]$ResourceGroupName -) - -# this will reset the SQL password because the password is not saved during set up -Write-Host "WARNING: this script will reset the password for the SQL Admin on Azure SQL Server." -Write-Host " Since this scenario uses Managed Identity, and no one accesses the database with this password, there should be no impact" -Write-Host "Use command interrupt if you would like to abort" -Read-Host -Prompt "Press enter if you wish to proceed" > $null -Write-Host "..." - -if (Get-Module -ListAvailable -Name SqlServer) { - Write-Debug "SQL Already Installed" -} -else { - try { - Install-Module -Name SqlServer -AllowClobber -Confirm:$False -Force - } - catch [Exception] { - $_.message - exit - } -} - -Import-Module -Name SqlServer - -if ($ResourceGroupName -eq "-rg") { - Write-Error "FATAL ERROR: $ResourceGroupName could not be found in the current subscription" - exit 5 -} - -$groupExists = (az group exists -n $ResourceGroupName) -if ($groupExists -eq 'false') { - Write-Error "FATAL ERROR: $ResourceGroupName could not be found in the current subscription" - exit 6 -} -else { - Write-Debug "Found resource group named: $ResourceGroupName" -} - -$azureAdUsername = (az ad signed-in-user show --query userPrincipalName -o tsv) -Write-Debug "`$azureAdUsername='$azureAdUsername'" -$objectIdForCurrentUser = (az ad signed-in-user show --query id -o tsv) -Write-Debug "`$objectIdForCurrentUser='$objectIdForCurrentUser'" - -# updated az resource selection to filter to first based on https://github.com/Azure/azure-cli/issues/25214 -$databaseServer = (az resource list -g $ResourceGroupName --query "[?type=='Microsoft.Sql/servers'].name | [0]" -o tsv ) -Write-Debug "`$databaseServer='$databaseServer'" - -$databaseServerFqdn = (az sql server show -n $databaseServer -g $ResourceGroupName --query fullyQualifiedDomainName -o tsv) -Write-Debug "`$databaseServerFqdn='$databaseServerFqdn'" - -# updated az resource selection to filter to first based on https://github.com/Azure/azure-cli/issues/25214 -$databaseName = (az resource list -g $ResourceGroupName --query "[?type=='Microsoft.Sql/servers/databases' && name.ends_with(@, 'database')].tags.displayName | [0]" -o tsv) -Write-Debug "`$databaseName='$databaseName'" - - -# disable Azure AD only admin access -# the current user does not have access to login to SQL so we need to use the SQL Admin account -az sql server ad-only-auth disable -n $databaseServer -g $ResourceGroupName - -# https://learn.microsoft.com/en-us/sql/relational-databases/security/password-policy?view=sql-server-ver16 -$TokenSet = @{ - U = [Char[]]'ABCDEFGHIJKLMNOPQRSTUVWXYZ' - L = [Char[]]'abcdefghijklmnopqrstuvwxyz' - N = [Char[]]'0123456789' - S = [Char[]]'!#$%' -} - -$Upper = Get-Random -Count 5 -InputObject $TokenSet.U -$Lower = Get-Random -Count 5 -InputObject $TokenSet.L -$Number = Get-Random -Count 5 -InputObject $TokenSet.N -$Special = Get-Random -Count 5 -InputObject $TokenSet.S - -$StringSet = $Upper + $Lower + $Number + $Special - -# new random password -$sqlPassword = ((Get-Random -Count 15 -InputObject $StringSet) -join '') -$sqlAdmin = (az sql server show --name $databaseServer -g $ResourceGroupName --query "administratorLogin" -o tsv) - -az sql server update -n $databaseServer -g $ResourceGroupName -p "$sqlPassword" - -# translate applicationId into SID -[guid]$guid = [System.Guid]::Parse($objectIdForCurrentUser) - -foreach ($byte in $guid.ToByteArray()) { - $byteGuid += [System.String]::Format("{0:X2}", $byte) -} -$Sid = "0x" + $byteGuid - -# Prepare SQL cmd to CREATE USER -$createUserSQL = "IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'$azureAdUsername') create user [$azureAdUsername] with sid = $Sid, type = E;" - -# Connect as SQL Admin acct and execute SQL cmd -Invoke-Sqlcmd -ServerInstance $databaseServerFqdn -database $databaseName -Username $sqlAdmin -Password $sqlPassword -Query $createUserSQL -Write-Debug "Created user" - -Invoke-Sqlcmd -ServerInstance $databaseServerFqdn -database 'master' -Username $sqlAdmin -Password $sqlPassword -Query $createUserSQL -Write-Debug "Created for root db" - -# Prepare SQL cmd to grant db_owner role -$grantDbOwner = "IF NOT EXISTS (SELECT * FROM sys.database_principals p JOIN sys.database_role_members db_owner_role ON db_owner_role.member_principal_id = p.principal_id JOIN sys.database_principals role_names ON role_names.principal_id = db_owner_role.role_principal_id AND role_names.[name] = 'db_owner' WHERE p.[name]=N'$azureAdUsername') ALTER ROLE db_owner ADD MEMBER [$azureAdUsername];" - -# Connect as SQL Admin acct and execute SQL cmd -Invoke-Sqlcmd -ServerInstance $databaseServerFqdn -database $databaseName -Username $sqlAdmin -Password $sqlPassword -Query $grantDbOwner - -Write-Debug "Granted db_owner" - -# enable Azure AD only admin access -az sql server ad-only-auth enable -n $databaseServer -g $ResourceGroupName - -Write-Host "Successful" -ForegroundColor Green -NoNewline; Write-Host " an account for the current user was created in Azure SQL" \ No newline at end of file diff --git a/infra/localDevScripts/makeSqlUserAccount.sh b/infra/localDevScripts/makeSqlUserAccount.sh deleted file mode 100644 index 3b89d576..00000000 --- a/infra/localDevScripts/makeSqlUserAccount.sh +++ /dev/null @@ -1,144 +0,0 @@ -#!/bin/bash - -# This script is part of the sample's workflow for giving developers access -# to the resources that were deployed. Note that a better solution, beyond -# the scope of this demo, would be to associate permissions based on -# Azure AD groups so that all team members inherit access from Azure AD. -# https://learn.microsoft.com/en-us/azure/active-directory/roles/groups-concept -# -# This code may be repurposed for your scenario as desired -# but is not covered by the guidance in this content. - -POSITIONAL_ARGS=() - -while [[ $# -gt 0 ]]; do - case $1 in - --resource-group|-g) - resourceGroupName="$2" - shift # past argument - shift # past value - ;; - --debug) - debug=true - shift # past argument - ;; - --help*) - echo "" - echo "" - echo "" - echo "Command" - echo " makeSqlUserAccount.sh : Will make the SQL user account required to authenticate with Azure AD to Azure SQL Database." - echo "" - echo "Arguments" - echo " --resource-group -g : Name of resource group containing the environment that was created by the azd command." - echo "" - exit 1 - ;; - -*|--*) - echo "Unknown option $1" - exit 1 - ;; - *) - POSITIONAL_ARGS+=("$1") # save positional arg - shift # past argument - ;; - esac -done - -green='\033[0;32m' -yellow='\e[0;33m' -red='\e[1;31m' -clear='\033[0m' - -if [[ ${#resourceGroupName} -eq 0 ]]; then - printf "${red}FATAL ERROR:${clear} Missing required parameter --resource-group" - echo "" - - exit 6 -fi - -# this will reset the SQL password because the password is not saved during set up -printf "${yellow}WARNING:${clear} this script will reset the password for the SQL Admin on Azure SQL Server." -echo "" -echo " Since this scenario uses Managed Identity, and no one accesses the database with this password, there should be no impact" -echo "Use command interrupt if you would like to abort" -read -n 1 -r -s -p "Press any key to continue..." -echo '' -echo "..." - -if ! [ -x "$(command -v ./sqlcmd)" ]; then - echo 'installing sqlcmd' - - wget https://github.com/microsoft/go-sqlcmd/releases/download/v0.9.1/sqlcmd-v0.9.1-linux-x64.tar.bz2 - tar x -f sqlcmd-v0.9.1-linux-x64.tar.bz2 - -else - echo 'found sqlcmd' -fi - -azureAdUsername=$(az ad signed-in-user show --query userPrincipalName -o tsv) - -objectIdForCurrentUser=$(az ad signed-in-user show --query id -o tsv) - -# using json format bypasses issue with tsv format observed in this issue -# https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/202 -databaseServer=$(az resource list -g $resourceGroupName --query "[? type=='Microsoft.Sql/servers'].name" -o tsv) - -databaseServerFqdn=$(az sql server show -n $databaseServer -g $resourceGroupName --query fullyQualifiedDomainName -o tsv) - -# updated az resource selection to filter to first based on https://github.com/Azure/azure-cli/issues/25214 -databaseName=$(az resource list -g $resourceGroupName --query "[?type=='Microsoft.Sql/servers/databases' && name.ends_with(@, 'database')].tags.displayName" -o tsv) - -sqlAdmin=$(az sql server show --name $databaseServer -g $resourceGroupName --query "administratorLogin" -o tsv) - -# new random password -# https://learn.microsoft.com/en-us/sql/relational-databases/security/password-policy?view=sql-server-ver16 -sqlPassword=$(sed "s/[^a-zA-Z0-9\!#\$%*()]//g" <<< $(cat /dev/urandom | tr -dc 'a-zA-Z0-9!@#$%*()-+' | fold -w 32 | head -n 1)) - -echo "connecting to: $databaseServerFqdn" -echo "opening: $databaseName" - -# disable Azure AD only admin access -az sql server ad-only-auth disable -n $databaseServer -g $resourceGroupName - -az sql server update -n $databaseServer -g $resourceGroupName -p $sqlPassword - -cat < createSqlUser.sql -DECLARE @myObjectId varchar(100) = '$objectIdForCurrentUser' -DECLARE @sid binary(16) = CAST(CAST(@myObjectId as uniqueidentifier) as binary(16)) - -DECLARE @sql nvarchar(max) = N'CREATE user [$azureAdUsername] WITH TYPE = E, SID = 0x' + convert(varchar(1000), @sid, 2); - -IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'$azureAdUsername') - EXEC sys.sp_executesql @sql; - -SCRIPT_END - -export SQLCMDPASSWORD=$sqlPassword -./sqlcmd -S "tcp:$databaseServerFqdn,1433" -U $sqlAdmin -i createSqlUser.sql - -cat < updateSqlUserPerms.sql -DECLARE @myObjectId varchar(100) = '$objectIdForCurrentUser' -DECLARE @sid binary(16) = CAST(CAST(@myObjectId as uniqueidentifier) as binary(16)) - -DECLARE @sql nvarchar(max) = N'CREATE user [$azureAdUsername] WITH TYPE = E, SID = 0x' + convert(varchar(1000), @sid, 2); - -IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'$azureAdUsername') - EXEC sys.sp_executesql @sql; - -IF NOT EXISTS (SELECT * FROM sys.database_principals p JOIN sys.database_role_members db_owner_role ON db_owner_role.member_principal_id = p.principal_id JOIN sys.database_principals role_names ON role_names.principal_id = db_owner_role.role_principal_id AND role_names.[name] = 'db_owner' WHERE p.[name]=N'$azureAdUsername') - ALTER ROLE db_owner ADD MEMBER [$azureAdUsername]; - -SCRIPT_END - -./sqlcmd -S "tcp:$databaseServerFqdn,1433" -d $databaseName -U $sqlAdmin -i updateSqlUserPerms.sql - -export SQLCMDPASSWORD=clear - -# enable Azure AD only admin access -az sql server ad-only-auth enable -n $databaseServer -g $resourceGroupName - -printf "${green}Finished successfully${clear}" -echo "" - -exit 0 \ No newline at end of file diff --git a/infra/logAnalyticsWorkspaceForDiagnostics.bicep b/infra/logAnalyticsWorkspaceForDiagnostics.bicep deleted file mode 100644 index 594b1648..00000000 --- a/infra/logAnalyticsWorkspaceForDiagnostics.bicep +++ /dev/null @@ -1,24 +0,0 @@ -@minLength(1) -@description('Name for a log analytics workspace that will collect diagnostic info for Key Vault and Front Door') -param logAnalyticsWorkspaceNameForDiagnstics string - -@minLength(1) -@description('Primary location for all resources. Should specify an Azure region. e.g. `eastus2` ') -param location string - -@description('An object collection that contains annotations to describe the deployed azure resources to improve operational visibility') -param tags object - -resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2021-06-01' = { - name: logAnalyticsWorkspaceNameForDiagnstics - location: location - tags: tags - properties: { - retentionInDays: 30 - sku: { - name: 'PerGB2018' - } - } -} - -output LOG_WORKSPACE_ID string = logAnalyticsWorkspace.id diff --git a/infra/main.bicep b/infra/main.bicep index 319b3d8a..a15c7c8b 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -1,224 +1,568 @@ targetScope = 'subscription' -@minLength(1) -@maxLength(64) -@description('Name of the the environment which is used to generate a short unqiue hash used in all resources.') -param name string +// ======================================================================== +// +// Relecloud Scenario of the Reliable Web Application (RWA) +// Infrastructure description +// Copyright (C) 2023 Microsoft, Inc. +// +// ======================================================================== -@minLength(1) -@description('Primary location for all resources. Should specify an Azure region. e.g. `eastus2` ') +/* +** Parameters that are provided by Azure Developer CLI. +** +** If you are running this with bicep, use the main.parameters.json +** and overrides to generate these. +*/ + + +@minLength(3) +@maxLength(18) +@description('The environment name - a unique string that is used to identify THIS deployment.') +param environmentName string + +@minLength(3) +@description('The name of the Azure region that will be used for the deployment.') param location string -@minLength(1) -@description('Id of the user or app to assign application roles') -param principalId string +@minLength(3) +@description('The email address of the owner of the workload.') +param ownerEmail string + +@minLength(3) +@description('The name of the owner of the workload.') +param ownerName string -@description('Will select production ready SKUs when `true`') -param isProd string = 'false' +@description('The ID of the running user or service principal. This will be set as the owner when needed.') +param principalId string = '' -@description('Should specify an Azure region, if not set to none, to trigger multiregional deployment. The second region should be different than the `location` . e.g. `westus3`') -param secondaryAzureLocation string +@allowed([ 'ServicePrincipal', 'User' ]) +@description('The type of the principal specified in \'principalId\'') +param principalType string = 'ServicePrincipal' +/* +** Passwords - specify these! +*/ @secure() -@description('Specifies a password that will be used to secure the Azure SQL Database') -param azureSqlPassword string = '' +@minLength(8) +@description('The password for the SQL administrator account. This will be used for the jump box, SQL server, and anywhere else a password is needed for creating a resource.') +param databasePassword string + +@secure() +@minLength(12) +@description('The password for the jump box administrator account.') +param jumpboxAdministratorPassword string + -// Adding RBAC permissions via the script enables the sample to work around a permission propagation issue outlined in the issue -// https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/138 -@minLength(1) -@description('When the deployment is executed by a user we give the principal RBAC access to key vault') -param principalType string +@minLength(8) +@description('The username for the administrator account. This will be used for the jump box, SQL server, and anywhere else a password is needed for creating a resource.') +param administratorUsername string = 'azureadmin' /* -The following Azure AD parameters enable the code to reuse an existing app registration -https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/160 -These values are created by the createAppRegistration.ps1 script found in deploy-solution.md -These values are not optional when the code runs, but they are optional at deployment time -as you may choose to re-use an existing app registration or choose to create a new one. +** Parameters that make changes to the deployment based on requirements. They mostly have +** "reasonable" defaults such that a developer can just run "azd up" and get a working dev +** system. */ -@description('A scope used by the front-end public web app to get authorized access to the public web api. Looks similar to api://33333333-bbbb-4444-cccc-555555555555/relecloud.api') -param azureAdApiScopeFrontEnd string -@description('A unique identifier of the API web app') -param azureAdClientIdForBackEnd string +// Settings for setting up a build agent for Azure DevOps +@description('The URL of the Azure DevOps organization. If this and the adoToken is provided, then an Azure DevOps build agent will be deployed.') +param adoOrganizationUrl string = '' + +@description('The access token for the Azure DevOps organization. If this and the adoOrganizationUrl is provided, then an Azure DevOps build agent will be deployed.') +param adoToken string = '' + +// Settings for setting up a build agent for GitHub Actions +@description('The URL of the GitHub repository. If this and the githubToken is provided, then a GitHub Actions build agent will be deployed.') +param githubRepositoryUrl string = '' + +@description('The personal access token for the GitHub repository. If this and the githubRepositoryUrl is provided, then a GitHub Actions build agent will be deployed.') +param githubToken string = '' + +// The IP address for the current system. This is used to set up the firewall +// for Key Vault and SQL Server if in development mode. +@description('The IP address of the current system. This is used to set up the firewall for Key Vault and SQL Server if in development mode.') +param clientIpAddress string = '' + +// A differentiator for the environment. This is used in CI/CD testing to ensure +// that each environment is unique. +@description('A differentiator for the environment. Set this to a build number or date to ensure that the resource groups and resources are unique.') +param differentiator string = 'none' + +// Environment type - dev or prod; affects sizing and what else is deployed alongside. +@allowed([ 'dev', 'prod' ]) +@description('The set of pricing SKUs to choose for resources. \'dev\' uses cheaper SKUs by avoiding features that are unnecessary for writing code.') +param environmentType string = 'dev' + +// Deploy Hub Resources; if auto, then +// - environmentType == dev && networkIsolation == true => true +@allowed([ 'auto', 'false', 'true' ]) +@description('Deploy hub resources. Normally, the hub resources are not deployed since the app developer wouldn\'t have access, but we also need to be able to deploy a complete solution') +param deployHubNetwork string = 'auto' + +// Network isolation - determines if the app is deployed in a VNET or not. +// if environmentType == prod => true +// if environmentType == dev => false +@allowed([ 'auto', 'false', 'true' ]) +@description('Deploy the application in network isolation mode. \'auto\' will deploy in isolation only if deploying to production.') +param networkIsolation string = 'auto' + +// Secondary Azure location - provides the name of the 2nd Azure region. Blank by default to represent a single region deployment. +@description('Should specify an Azure region. If not set to empty string then deploy to single region, else trigger multiregional deployment. The second region should be different than the `location`. e.g. `westus3`') +param azureSecondaryLocation string = '' + +// Common App Service Plan - determines if a common app service plan should be deployed. +// auto = yes in dev, no in prod. +@allowed([ 'auto', 'false', 'true' ]) +@description('Should we deploy a common app service plan, used by both the API and WEB app services? \'auto\' will deploy a common app service plan in dev, but separate plans in prod.') +param useCommonAppServicePlan string = 'auto' + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var prefix = '${environmentName}-${environmentType}' + +// Boolean to indicate the various values for the deployment settings +var isMultiLocationDeployment = azureSecondaryLocation == '' ? false : true +var isProduction = environmentType == 'prod' +var isNetworkIsolated = networkIsolation == 'true' || (networkIsolation == 'auto' && isProduction) +var willDeployHubNetwork = isNetworkIsolated && (deployHubNetwork == 'true' || (deployHubNetwork == 'auto' && isProduction)) +var willDeployCommonAppServicePlan = useCommonAppServicePlan == 'true' || (useCommonAppServicePlan == 'auto' && !isProduction) + +// A unique token that is used as a differentiator for all resources. All resources within the +// same deployment will have the same token. +var primaryResourceToken = uniqueString(subscription().id, environmentName, environmentType, location, differentiator) +var secondaryResourceToken = uniqueString(subscription().id, environmentName, environmentType, azureSecondaryLocation, differentiator) + +var defaultDeploymentSettings = { + isMultiLocationDeployment: isMultiLocationDeployment + isProduction: isProduction + isNetworkIsolated: isNetworkIsolated + isPrimaryLocation: true + location: location + name: environmentName + principalId: principalId + principalType: principalType + resourceToken: primaryResourceToken + stage: environmentType + tags: { + 'azd-env-name': environmentName + 'azd-env-type': environmentType + 'azd-owner-email': ownerEmail + 'azd-owner-name': ownerName + ResourceToken: primaryResourceToken + } + workloadTags: { + WorkloadIdentifier: environmentName + WorkloadName: environmentName + Environment: environmentType + OwnerName: ownerEmail + ServiceClass: isProduction ? 'Silver' : 'Dev' + OpsCommitment: 'Workload operations' + } +} -@description('A unique identifier of the front-end web app') -param azureAdClientIdForFrontEnd string +var primaryNamingDeployment = defaultDeploymentSettings +var secondaryNamingDeployment = union(defaultDeploymentSettings, { + isPrimaryLocation: false + location: azureSecondaryLocation + resourceToken: secondaryResourceToken + tags: { + ResourceToken: secondaryResourceToken + } +}) + +var primaryDeployment = { + workloadTags: { + HubGroupName: isNetworkIsolated ? naming.outputs.resourceNames.hubResourceGroup : naming.outputs.resourceNames.resourceGroup + IsPrimaryLocation: 'true' + PrimaryLocation: location + SecondaryLocation: azureSecondaryLocation + } +} -@secure() -@description('A secret generated by Azure AD so that the web app can establish trust with Azure AD') -param azureAdClientSecretForFrontEnd string +var primaryDeploymentSettings = union(defaultDeploymentSettings, primaryDeployment) -@description('A unique identifier of the Azure AD tenant') -param azureAdTenantId string +var secondDeployment = { + location: azureSecondaryLocation + isPrimaryLocation: false + resourceToken: secondaryResourceToken + tags: { + ResourceToken: secondaryResourceToken + } + workloadTags: { + HubGroupName: isNetworkIsolated ? naming.outputs.resourceNames.hubResourceGroup : '' + IsPrimaryLocation: 'false' + PrimaryLocation: location + SecondaryLocation: azureSecondaryLocation + } +} -var isProdBool = isProd == 'true' ? true : false +// a copy of the deploymentSettings that is aware these details describe a second deployment +var secondaryDeploymentSettings = union(defaultDeploymentSettings, secondDeployment) -var tags = { - 'azd-env-name': name +var diagnosticSettings = { + logRetentionInDays: isProduction ? 30 : 3 + metricRetentionInDays: isProduction ? 7 : 3 + enableLogs: true + enableMetrics: true } -var isMultiLocationDeployment = secondaryAzureLocation == '' ? false : true +var installBuildAgent = isNetworkIsolated && ((!empty(adoOrganizationUrl) && !empty(adoToken)) || (!empty(githubRepositoryUrl) && !empty(githubToken))) -var primaryResourceGroupName = '${name}-rg' -var secondaryResourceGroupName = '${name}-secondary-rg' +var spokeAddressPrefixPrimary = '10.0.16.0/20' +var spokeAddressPrefixSecondary = '10.0.32.0/20' -var primaryResourceToken = toLower(uniqueString(subscription().id, primaryResourceGroupName, location)) -var secondaryResourceToken = toLower(uniqueString(subscription().id, secondaryResourceGroupName, secondaryAzureLocation)) +// ======================================================================== +// BICEP MODULES +// ======================================================================== -module logAnalyticsForDiagnostics 'logAnalyticsWorkspaceForDiagnostics.bicep' = { - name: 'logAnalyticsForDiagnostics' - scope: primaryResourceGroup +/* +** Every single resource can have a naming override. Overrides should be placed +** into the 'naming.overrides.jsonc' file. The output of this module drives the +** naming of all resources. +*/ +module naming './modules/naming.bicep' = { + name: '${prefix}-naming' params: { - tags: tags - location: location - logAnalyticsWorkspaceNameForDiagnstics: 'diagnostics-${primaryResourceToken}-log' + deploymentSettings: primaryNamingDeployment + differentiator: differentiator != 'none' ? differentiator : '' + overrides: loadJsonContent('./naming.overrides.jsonc') + primaryLocation: location } } -resource primaryResourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: primaryResourceGroupName - location: location - tags: tags +module naming2 './modules/naming.bicep' = { + name: '${prefix}-naming2' + params: { + deploymentSettings: secondaryNamingDeployment + differentiator: differentiator != 'none' ? '${differentiator}2' : '2' + overrides: loadJsonContent('./naming.overrides.jsonc') + primaryLocation: location + } } -module devOpsIdentitySetup './devOpsIdentitySetup.bicep' = { - name: 'devOpsIdentitySetup' - scope: primaryResourceGroup +/* +** Workload resources are organized into one of three resource groups: +** +** hubResourceGroup - contains the hub network resources +** spokeResourceGroup - contains the spoke network resources +** applicationResourceGroup - contains the application resources +** +** Not all of the resource groups are necessarily available - it +** depends on the settings. +*/ +module resourceGroups './modules/resource-groups.bicep' = { + name: '${prefix}-resource-groups' params: { - tags: tags - location: location - resourceToken: primaryResourceToken + deploymentSettings: primaryDeploymentSettings + resourceNames: naming.outputs.resourceNames + + // Settings + deployHubNetwork: willDeployHubNetwork } } -// temporary workaround for multiple resource group bug -// https://github.com/Azure/azure-dev/issues/690 -// `azd down` expects to be able to delete this resource because it was listed by the azure deployment output even when it is not deployed -resource secondaryResourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { - name: secondaryResourceGroupName - location: isMultiLocationDeployment ? secondaryAzureLocation : location - tags: tags +module resourceGroups2 './modules/resource-groups.bicep' = if (isMultiLocationDeployment) { + name: '${prefix}-resource-groups2' + params: { + deploymentSettings: secondaryDeploymentSettings + resourceNames: naming2.outputs.resourceNames + + // Settings + deployHubNetwork: willDeployHubNetwork + } } -module primaryResources './resources.bicep' = { - name: 'primary-${primaryResourceToken}' - scope: primaryResourceGroup +/* +** Azure Monitor Resources +** +** Azure Monitor resources (Log Analytics Workspace and Application Insights) are +** homed in the hub network when it's available, and the application resource group +** when it's not available. +*/ +module azureMonitor './modules/azure-monitor.bicep' = { + name: '${prefix}-azure-monitor' params: { - azureSqlPassword: azureSqlPassword - devOpsManagedIdentityId: devOpsIdentitySetup.outputs.devOpsManagedIdentityId - isProd: isProdBool - location: location - principalId: principalId - principalType: principalType - resourceToken: primaryResourceToken - tags: tags - azureAdApiScopeFrontEnd: azureAdApiScopeFrontEnd - azureAdClientIdForBackEnd: azureAdClientIdForBackEnd - azureAdClientIdForFrontEnd: azureAdClientIdForFrontEnd - azureAdClientSecretForFrontEnd: azureAdClientSecretForFrontEnd - azureAdTenantId: azureAdTenantId + deploymentSettings: primaryDeploymentSettings + resourceNames: naming.outputs.resourceNames + resourceGroupName: willDeployHubNetwork ? resourceGroups.outputs.hub_resource_group_name : resourceGroups.outputs.application_resource_group_name } } -module devOpsIdentitySetupSecondary './devOpsIdentitySetup.bicep' = if (isMultiLocationDeployment) { - name: 'devOpsIdentitySetupSecondary' - scope: secondaryResourceGroup +/* +** Create the hub network, if requested. +** +** The hub network consists of the following resources +** +** The hub virtual network with subnets for Bastion Hosts and Firewall +** The bastion host +** The firewall +** A route table that is used within the spoke to reach the firewall +** +** We also set up a budget with cost alerting for the hub network (separate +** from the application budget) +*/ +module hubNetwork './modules/hub-network.bicep' = if (willDeployHubNetwork) { + name: '${prefix}-hub-network' params: { - tags: tags - location: location - resourceToken: secondaryResourceToken + deploymentSettings: primaryDeploymentSettings + diagnosticSettings: diagnosticSettings + resourceNames: naming.outputs.resourceNames + + // Dependencies + logAnalyticsWorkspaceId: azureMonitor.outputs.log_analytics_workspace_id + + // Settings + administratorPassword: jumpboxAdministratorPassword + administratorUsername: administratorUsername + createDevopsSubnet: true + enableBastionHost: true + // DDoS protection is recommended for Production deployments + // however, for this sample we disable this feature because DDoS should be configured to protect multiple subscriptions, deployments, and resources + // learn more at https://learn.microsoft.com/azure/ddos-protection/ddos-protection-overview + enableDDoSProtection: false // primaryDeploymentSettings.isProduction + enableFirewall: true + enableJumpBox: true } + dependsOn: [ + resourceGroups + ] } -module secondaryResources './resources.bicep' = if (isMultiLocationDeployment) { - name: 'secondary-${primaryResourceToken}' - scope: secondaryResourceGroup +/* +** The hub network MAY have created an Azure Monitor workspace. If it did, we don't need +** to do it again. If not, we'll create one in the application resource group +*/ + + +/* +** The spoke network is the network that the application resources are deployed into. +*/ +module spokeNetwork './modules/spoke-network.bicep' = if (isNetworkIsolated) { + name: '${prefix}-spoke-network' + params: { + deploymentSettings: primaryDeploymentSettings + diagnosticSettings: diagnosticSettings + resourceNames: naming.outputs.resourceNames + + // Dependencies + logAnalyticsWorkspaceId: azureMonitor.outputs.log_analytics_workspace_id + firewallInternalIpAddress: willDeployHubNetwork ? hubNetwork.outputs.firewall_ip_address : '' + + // Settings + addressPrefix: spokeAddressPrefixPrimary + } + dependsOn: [ + resourceGroups + ] +} + +module spokeNetwork2 './modules/spoke-network.bicep' = if (isNetworkIsolated && isMultiLocationDeployment) { + name: '${prefix}-spoke-network2' + params: { + deploymentSettings: secondaryDeploymentSettings + diagnosticSettings: diagnosticSettings + resourceNames: naming2.outputs.resourceNames + + // Dependencies + logAnalyticsWorkspaceId: azureMonitor.outputs.log_analytics_workspace_id + firewallInternalIpAddress: willDeployHubNetwork ? hubNetwork.outputs.firewall_ip_address : '' + + // Settings + addressPrefix: spokeAddressPrefixSecondary + } + dependsOn: [ + resourceGroups2 + ] +} + +/* +** Now that the networking resources have been created, we need to peer the networks. This is +** only done if the hub network was created in this deployment. If the hub network was not +** deployed, then a manual peering process needs to be done. +*/ +module peerHubAndPrimarySpokeVirtualNetworks './modules/peer-networks.bicep' = if (willDeployHubNetwork && isNetworkIsolated) { + name: '${prefix}-peer-hub-primary-networks' + params: { + hubNetwork: { + name: willDeployHubNetwork ? hubNetwork.outputs.virtual_network_name : '' + resourceGroupName: naming.outputs.resourceNames.hubResourceGroup + } + spokeNetwork: { + name: isNetworkIsolated ? spokeNetwork.outputs.virtual_network_name : '' + resourceGroupName: naming.outputs.resourceNames.spokeResourceGroup + } + } +} + +/* peer the hub and spoke for secondary region if it was deployed */ +module peerHubAndSecondarySpokeVirtualNetworks './modules/peer-networks.bicep' = if (willDeployHubNetwork && isNetworkIsolated && isMultiLocationDeployment) { + name: '${prefix}-peer-hub-secondary-networks' params: { - azureSqlPassword: azureSqlPassword - // when not deployed, the evaluation of this template must still supply a valid parameter - devOpsManagedIdentityId: isMultiLocationDeployment ? devOpsIdentitySetupSecondary.outputs.devOpsManagedIdentityId : 'none' - isProd: isProdBool - location: secondaryAzureLocation - principalId: principalId - principalType: principalType - resourceToken: secondaryResourceToken - tags: tags - azureAdApiScopeFrontEnd: azureAdApiScopeFrontEnd - azureAdClientIdForBackEnd: azureAdClientIdForBackEnd - azureAdClientIdForFrontEnd: azureAdClientIdForFrontEnd - azureAdClientSecretForFrontEnd: azureAdClientSecretForFrontEnd - azureAdTenantId: azureAdTenantId + hubNetwork: { + name: isMultiLocationDeployment ? hubNetwork.outputs.virtual_network_name : '' + resourceGroupName: naming.outputs.resourceNames.hubResourceGroup + } + spokeNetwork: { + name: isMultiLocationDeployment ? spokeNetwork2.outputs.virtual_network_name : '' + resourceGroupName: isMultiLocationDeployment ? naming2.outputs.resourceNames.spokeResourceGroup : '' + } } } -module azureFrontDoor './azureFrontDoor.bicep' = { - name: 'frontDoor-${primaryResourceToken}' - scope: primaryResourceGroup +/* +** Create the application resources. +*/ + +module frontdoor './modules/shared-frontdoor.bicep' = { + name: '${prefix}-frontdoor' params: { - tags: tags - logAnalyticsWorkspaceIdForDiagnostics: logAnalyticsForDiagnostics.outputs.LOG_WORKSPACE_ID - primaryBackendAddress: primaryResources.outputs.WEB_URI - secondaryBackendAddress: isMultiLocationDeployment ? secondaryResources.outputs.WEB_URI : 'none' + deploymentSettings: primaryDeploymentSettings + diagnosticSettings: diagnosticSettings + resourceNames: naming.outputs.resourceNames + + // Dependencies + logAnalyticsWorkspaceId: azureMonitor.outputs.log_analytics_workspace_id } } -module primaryAppConfigSvcFrontDoorUri 'appConfigSvcKeyValue.bicep' = { - name: 'primaryKeyValue' - scope: primaryResourceGroup - params:{ - appConfigurationServiceName: primaryResources.outputs.APP_CONFIGURATION_SVC_NAME - frontDoorUri: azureFrontDoor.outputs.HOST_NAME +module application './modules/application-resources.bicep' = { + name: '${prefix}-application' + params: { + deploymentSettings: primaryDeploymentSettings + diagnosticSettings: diagnosticSettings + resourceNames: naming.outputs.resourceNames + + // Dependencies + applicationInsightsId: azureMonitor.outputs.application_insights_id + logAnalyticsWorkspaceId: azureMonitor.outputs.log_analytics_workspace_id + dnsResourceGroupName: willDeployHubNetwork ? resourceGroups.outputs.hub_resource_group_name : '' + subnets: isNetworkIsolated ? spokeNetwork.outputs.subnets : {} + frontDoorSettings: frontdoor.outputs.settings + + // Settings + administratorUsername: administratorUsername + databasePassword: databasePassword + clientIpAddress: clientIpAddress + useCommonAppServicePlan: willDeployCommonAppServicePlan } + dependsOn: [ + resourceGroups + spokeNetwork + ] } -module primaryKeyVaultDiagnostics 'azureKeyVaultDiagnostics.bicep' = { - name: 'primaryKeyVaultDiagnostics' - scope: primaryResourceGroup +module application2 './modules/application-resources.bicep' = if (isMultiLocationDeployment) { + name: '${prefix}-application2' params: { - keyVaultName: primaryResources.outputs.KEY_VAULT_NAME - logAnalyticsWorkspaceIdForDiagnostics: logAnalyticsForDiagnostics.outputs.LOG_WORKSPACE_ID + deploymentSettings: secondaryDeploymentSettings + diagnosticSettings: diagnosticSettings + resourceNames: naming2.outputs.resourceNames + + // Dependencies + applicationInsightsId: azureMonitor.outputs.application_insights_id + logAnalyticsWorkspaceId: azureMonitor.outputs.log_analytics_workspace_id + dnsResourceGroupName: willDeployHubNetwork ? resourceGroups.outputs.hub_resource_group_name : '' + subnets: isNetworkIsolated && isMultiLocationDeployment? spokeNetwork2.outputs.subnets : {} + frontDoorSettings: frontdoor.outputs.settings + + // Settings + administratorUsername: administratorUsername + databasePassword: databasePassword + clientIpAddress: clientIpAddress + useCommonAppServicePlan: willDeployCommonAppServicePlan } + dependsOn: [ + resourceGroups2 + spokeNetwork2 + ] } -module secondaryAppConfigSvcFrontDoorUri 'appConfigSvcKeyValue.bicep' = if (isMultiLocationDeployment) { - name: 'secondaryKeyValue' - scope: secondaryResourceGroup - params:{ - appConfigurationServiceName: isMultiLocationDeployment ? secondaryResources.outputs.APP_CONFIGURATION_SVC_NAME : 'none' - frontDoorUri: azureFrontDoor.outputs.HOST_NAME +/* +** Runs for all configurations (NotIsolated, Isolated, and MultiLocation) +*/ +module applicationPostConfiguration './modules/application-post-config.bicep' = { + name: '${prefix}-application-postconfig' + params: { + deploymentSettings: primaryDeploymentSettings + administratorPassword: jumpboxAdministratorPassword + administratorUsername: administratorUsername + databasePassword: databasePassword + keyVaultName: isNetworkIsolated? hubNetwork.outputs.key_vault_name : application.outputs.key_vault_name + kvResourceGroupName: isNetworkIsolated? resourceGroups.outputs.hub_resource_group_name : resourceGroups.outputs.application_resource_group_name + readerIdentities: union(application.outputs.service_managed_identities, defaultDeploymentSettings.isMultiLocationDeployment ? application2.outputs.service_managed_identities : []) + redisCacheNamePrimary: application.outputs.redis_cache_name + redisCacheNameSecondary: isMultiLocationDeployment ? application2.outputs.redis_cache_name : application.outputs.redis_cache_name + resourceNames: naming.outputs.resourceNames + applicationResourceGroupNamePrimary: resourceGroups.outputs.application_resource_group_name + applicationResourceGroupNameSecondary: isMultiLocationDeployment ? resourceGroups2.outputs.application_resource_group_name : '' } } -module secondaryKeyVaultDiagnostics 'azureKeyVaultDiagnostics.bicep' = if (isMultiLocationDeployment) { - name: 'secondaryKeyVaultDiagnostics' - scope: secondaryResourceGroup +/* +** Create a build agent (only if network isolated and the relevant information has been provided) +*/ +module buildAgent './modules/build-agent.bicep' = if (installBuildAgent) { + name: '${prefix}-build-agent' params: { - keyVaultName: isMultiLocationDeployment ? secondaryResources.outputs.KEY_VAULT_NAME : 'none' - logAnalyticsWorkspaceIdForDiagnostics: logAnalyticsForDiagnostics.outputs.LOG_WORKSPACE_ID + deploymentSettings: primaryDeploymentSettings + diagnosticSettings: diagnosticSettings + resourceNames: naming.outputs.resourceNames + + // Dependencies + logAnalyticsWorkspaceId: azureMonitor.outputs.log_analytics_workspace_id + managedIdentityId: application.outputs.owner_managed_identity_id + subnets: isNetworkIsolated ? spokeNetwork.outputs.subnets : {} + + // Settings + administratorPassword: jumpboxAdministratorPassword + administratorUsername: administratorUsername + adoOrganizationUrl: adoOrganizationUrl + adoToken: adoToken + githubRepositoryUrl: githubRepositoryUrl + githubToken: githubToken } } +/* +** Enterprise App Patterns Telemetry +** A non-billable resource deployed to Azure to identify the template +*/ @description('Enable usage and telemetry feedback to Microsoft.') param enableTelemetry bool = true -var telemetryId = '063f9e42-c824-4573-8a47-5f6112612fe2-${location}' -resource telemetrydeployment 'Microsoft.Resources/deployments@2021-04-01' = if (enableTelemetry) { - name: telemetryId - location: location - properties: { - mode: 'Incremental' - template: { - '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' - contentVersion: '1.0.0.0' - resources: {} - } +module telemetry './modules/telemetry.bicep' = if (enableTelemetry) { + name: '${prefix}-telemetry' + params: { + deploymentSettings: primaryDeploymentSettings } } -output WEB_URI string = 'https://${azureFrontDoor.outputs.HOST_NAME}' -output AZURE_LOCATION string = location - -output DEBUG_IS_MULTI_LOCATION_DEPLOYMENT bool = isMultiLocationDeployment -output DEBUG_SECONDARY_AZURE_LOCATION string = secondaryAzureLocation -output DEBUG_IS_PROD bool = isProdBool +// ======================================================================== +// OUTPUTS +// ======================================================================== + +// Hub resources +output BASTION_NAME string = willDeployHubNetwork ? hubNetwork.outputs.bastion_name : '' +output BASTION_RESOURCE_GROUP string = willDeployHubNetwork ? resourceGroups.outputs.hub_resource_group_name : '' +output bastion_hostname string = willDeployHubNetwork ? hubNetwork.outputs.bastion_hostname : '' +output firewall_hostname string = willDeployHubNetwork ? hubNetwork.outputs.firewall_hostname : '' + +// Spoke resources +output build_agent string = installBuildAgent ? buildAgent.outputs.build_agent_hostname : '' +output JUMPBOX_RESOURCE_ID string = isNetworkIsolated ? hubNetwork.outputs.jumpbox_resource_id : '' + +// Application resources +output AZURE_RESOURCE_GROUP string = resourceGroups.outputs.application_resource_group_name +output SECONDARY_RESOURCE_GROUP string = isMultiLocationDeployment ? resourceGroups2.outputs.application_resource_group_name : 'not-deployed' +output service_managed_identities object[] = application.outputs.service_managed_identities +output service_web_endpoints string[] = application.outputs.service_web_endpoints +output AZURE_OPS_VAULT_NAME string = isNetworkIsolated ? hubNetwork.outputs.key_vault_name : application.outputs.key_vault_name + +// Local development values +output AZURE_PRINCIPAL_TYPE string = principalType +output APP_CONFIG_SERVICE_URI string = application.outputs.app_config_uri +output WEB_URI string = application.outputs.web_uri +output SQL_DATABASE_NAME string = application.outputs.sql_database_name +output SQL_SERVER_NAME string = application.outputs.sql_server_name diff --git a/infra/main.parameters.json b/infra/main.parameters.json index 5e92dd62..30422f82 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -2,44 +2,62 @@ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { - "name": { - "value": "${AZURE_ENV_NAME}" + "adoOrganizationUrl": { + "value": "${AZURE_DEVOPS_ORG_URL}" }, - "location": { - "value": "${AZURE_LOCATION}" + "adoToken": { + "value": "${AZURE_DEVOPS_TOKEN}" }, - "principalId": { - "value": "${AZURE_PRINCIPAL_ID}" + "clientIpAddress": { + "value": "${AZD_IP_ADDRESS}" }, - "secondaryAzureLocation": { - "value": "${SECONDARY_AZURE_LOCATION}" + "databasePassword": { + "value": "$(secretOrRandomPassword ${AZURE_OPS_VAULT_NAME} Application--SqlAdministratorPassword)" }, - "isProd": { - "value": "${IS_PROD}" + "differentiator": { + "value": "${AZURE_CI_DIFFERENTIATOR=none}" }, - "azureSqlPassword": { - "value": "$(secretOrRandomPassword ${AZURE_KEYVAULT_NAME} sqlAdminPassword)" + "enableTelemetry": { + "value": "${ENABLE_TELEMETRY=true}" }, - "principalType": { - "value": "${PRINCIPAL_TYPE=user}" + "environmentName": { + "value": "${AZURE_ENV_NAME}" }, - "azureAdApiScopeFrontEnd": { - "value": "$(secretOrRandomPassword ${AZURE_OPS_VAULT_NAME} azureAdApiScopeFrontEnd)" + "environmentType": { + "value": "${ENVIRONMENT=dev}" }, - "azureAdClientIdForBackEnd": { - "value": "$(secretOrRandomPassword ${AZURE_OPS_VAULT_NAME} azureAdClientIdForBackEnd)" + "githubRepositoryUrl": { + "value": "${GITHUB_REPO}" }, - "azureAdClientIdForFrontEnd": { - "value": "$(secretOrRandomPassword ${AZURE_OPS_VAULT_NAME} azureAdClientIdForFrontEnd)" + "githubToken": { + "value": "${GITHUB_TOKEN}" }, - "azureAdClientSecretForFrontEnd": { - "value": "$(secretOrRandomPassword ${AZURE_OPS_VAULT_NAME} azureAdClientSecretForFrontEnd)" + "jumpboxAdministratorPassword": { + "value": "$(secretOrRandomPassword ${AZURE_OPS_VAULT_NAME} Jumpbox--AdministratorPassword)" }, - "azureAdTenantId": { - "value": "$(secretOrRandomPassword ${AZURE_OPS_VAULT_NAME} azureAdTenantId)" + "location": { + "value": "${AZURE_LOCATION}" }, - "enableTelemetry": { - "value": "${ENABLE_TELEMETRY=true}" + "principalId": { + "value": "${AZURE_PRINCIPAL_ID}" + }, + "principalType": { + "value": "${AZURE_PRINCIPAL_TYPE=User}" + }, + "deployHubNetwork": { + "value": "${DEPLOY_HUB_NETWORK=auto}" + }, + "networkIsolation": { + "value": "${NETWORK_ISOLATION=auto}" + }, + "ownerEmail": { + "value": "${OWNER_EMAIL=noreply@contoso.com}" + }, + "ownerName": { + "value": "${OWNER_NAME=notset}" + }, + "azureSecondaryLocation": { + "value": "${AZURE_SECONDARY_LOCATION}" } } } \ No newline at end of file diff --git a/infra/modules/application-appservice.bicep b/infra/modules/application-appservice.bicep new file mode 100644 index 00000000..951c7fca --- /dev/null +++ b/infra/modules/application-appservice.bicep @@ -0,0 +1,239 @@ +targetScope = 'resourceGroup' + +/* +** An App Service running on a App Service Plan +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/PrivateEndpointSettings.bicep +@description('Type describing the private endpoint settings.') +type PrivateEndpointSettings = { + @description('The name of the resource group to hold the Private DNS Zone. By default, this uses the same resource group as the resource.') + dnsResourceGroupName: string + + @description('The name of the private endpoint resource. By default, this uses a prefix of \'pe-\' followed by the name of the resource.') + name: string? + + @description('The name of the resource group to hold the private endpoint. By default, this uses the same resource group as the resource.') + resourceGroupName: string? + + @description('The ID of the subnet to link the private endpoint to.') + subnetId: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The deployment settings to use for this deployment.') +param deploymentSettings DeploymentSettings + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The tags to associate with this resource.') +param tags object = {} + +/* +** Dependencies +*/ +@description('The name of the App Configuration store to configure for configuration.') +param appConfigurationName string + +@description('The ID of the Application Insights instance to use for logging.') +param applicationInsightsId string + +@description('The name of the App Service Plan to use for compute resources.') +param appServicePlanName string + +@description('The managed identity name to use as the identity of the App Service.') +param managedIdentityName string + +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ +@description('The name of the App Service to create.') +param appServiceName string + +@description('If using VNET integration, the ID of the subnet for outbound traffic.') +param outboundSubnetId string = '' + +@description('If using network isolation, the settings for the private endpoint.') +param privateEndpointSettings PrivateEndpointSettings? + +@description('If not blank, restrict the App Service to only allow traffic from the specified front door.') +param restrictToFrontDoor string = '' + +@description('The service prefix to use.') +param servicePrefix string + +@description('If true, use an existing App Service Plan') +param useExistingAppServicePlan bool = false + +// ======================================================================== +// VARIABLES +// ======================================================================== + +// Get the name and resource group for the Application Insights instance. +// var applicationInsightsName = split('/', applicationInsightsId)[8] +// var applicationInsightsRG = split('/', applicationInsightsId)[4] + +var applicationInsights = reference(applicationInsightsId, '2020-02-02') + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + + +resource appConfigurationStore 'Microsoft.AppConfiguration/configurationStores@2023-03-01' existing = { + name: appConfigurationName +} + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' existing = { + name: managedIdentityName +} + +module appServicePlan '../core/hosting/app-service-plan.bicep' = if (!useExistingAppServicePlan) { + name: '${servicePrefix}-app-service-plan' + params: { + name: appServicePlanName + location: deploymentSettings.location + tags: tags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + autoScaleSettings: deploymentSettings.isProduction ? { maxCapacity: 10, minCapacity: 3 } : null + diagnosticSettings: diagnosticSettings + sku: deploymentSettings.isProduction ? 'P1v3' : 'B1' + zoneRedundant: deploymentSettings.isProduction + } +} + +module appService '../core/hosting/app-service.bicep' = { + name: '${servicePrefix}-app-service' + params: { + name: appServiceName + location: deploymentSettings.location + tags: tags + + // Dependencies + appServicePlanName: useExistingAppServicePlan ? appServicePlanName : appServicePlan.outputs.name + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + managedIdentityId: managedIdentity.id + outboundSubnetId: outboundSubnetId + + // Settings + appSettings: { + SCM_DO_BUILD_DURING_DEPLOYMENT: 'false' + ASPNETCORE_ENVIRONMENT: deploymentSettings.isProduction ? 'Production' : 'Development' + + // Application Insights + ApplicationInsightsAgent_EXTENSION_VERSION: '~2' + XDT_MicrosoftApplicationInsights_Mode: 'recommended' + InstrumentationEngine_EXTENSION_VERSION: '~1' + XDT_MicrosoftApplicationInsights_BaseExtensions: '~1' + APPLICATIONINSIGHTS_CONNECTION_STRING: applicationInsights.ConnectionString + APPLICATIONINSIGHTS_INSTRUMENTATIONKEY: applicationInsights.InstrumentationKey + + // Identity for DefaultAzureCredential connections + AZURE_CLIENT_ID: managedIdentity.properties.clientId + + // App Configuration + 'App:AppConfig:Uri': appConfigurationStore.properties.endpoint + } + diagnosticSettings: diagnosticSettings + enablePublicNetworkAccess: !deploymentSettings.isNetworkIsolated + ipSecurityRestrictions: !empty(restrictToFrontDoor) ? [ + { + tag: 'ServiceTag' + ipAddress: 'AzureFrontDoor.Backend' + action: 'Allow' + priority: 100 + headers: { + 'x-azure-fdid': [ restrictToFrontDoor ] + } + name: 'Allow traffic from Front Door' + } + ] : [] + privateEndpointSettings: privateEndpointSettings + servicePrefix: servicePrefix + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output app_service_id string = appService.outputs.id +output app_service_name string = appService.outputs.name +output app_service_hostname string = appService.outputs.hostname +output app_service_uri string = appService.outputs.uri + diff --git a/infra/modules/application-post-config.bicep b/infra/modules/application-post-config.bicep new file mode 100644 index 00000000..cf03e3ce --- /dev/null +++ b/infra/modules/application-post-config.bicep @@ -0,0 +1,251 @@ +targetScope = 'subscription' + +/* +** Application Infrastructure post-configuration +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** The Application consists of a virtual network that has shared resources that +** are generally associated with a hub. This module provides post-configuration +** actions such as creating key-vault secrets to save information from +** modules that depend on the hub. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The deployment settings to use for this deployment.') +param deploymentSettings DeploymentSettings + +/* +** Passwords - specify these! +*/ +@secure() +@minLength(12) +@description('The password for the administrator account. This will be used for the jump box, SQL server, and anywhere else a password is needed for creating a resource.') +param administratorPassword string = newGuid() + +@minLength(8) +@description('The username for the administrator account on the jump box.') +param administratorUsername string = 'adminuser' + +@secure() +@minLength(8) +@description('The password for the administrator account on the SQL Server.') +param databasePassword string + +@description('The resource names for the resources to be created.') +param resourceNames object + +/* +** Dependencies +*/ +@description('The resource names for the resources to be created.') +param keyVaultName string + +@description('Name of the hub resource group containing the key vault.') +param kvResourceGroupName string + +@description('Name of the primary Azure Cache for Redis.') +param redisCacheNamePrimary string + +@description('Name of the second Azure Cache for Redis.') +param redisCacheNameSecondary string + +@description('Name of the resource group containing Azure Cache for Redis.') +param applicationResourceGroupNamePrimary string + +@description('Name of the resource group containing Azure Cache for Redis.') +param applicationResourceGroupNameSecondary string + +@description('List of user assigned managed identities that will receive Secrets User role to the shared key vault') +param readerIdentities object[] + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var microsoftEntraIdApiClientId = 'Api--MicrosoftEntraId--ClientId' +var microsoftEntraIdApiInstance = 'Api--MicrosoftEntraId--Instance' +var microsoftEntraIdApiScope = 'App--RelecloudApi--AttendeeScope' +var microsoftEntraIdApiTenantId = 'Api--MicrosoftEntraId--TenantId' +var microsoftEntraIdCallbackPath = 'MicrosoftEntraId--CallbackPath' +var microsoftEntraIdClientId = 'MicrosoftEntraId--ClientId' +var microsoftEntraIdClientSecret = 'MicrosoftEntraId--ClientSecret' +var microsoftEntraIdInstance = 'MicrosoftEntraId--Instance' +var microsoftEntraIdSignedOutCallbackPath = 'MicrosoftEntraId--SignedOutCallbackPath' +var microsoftEntraIdTenantId = 'MicrosoftEntraId--TenantId' +var redisCacheSecretNamePrimary = 'App--RedisCache--ConnectionString-Primary' +var redisCacheSecretNameSecondary = 'App--RedisCache--ConnectionString-Secondary' + +var multiRegionalSecrets = deploymentSettings.isMultiLocationDeployment ? [redisCacheSecretNameSecondary] : [] + +var listOfAppConfigSecrets = [ + microsoftEntraIdApiClientId + microsoftEntraIdApiInstance + microsoftEntraIdApiScope + microsoftEntraIdApiTenantId + microsoftEntraIdCallbackPath + microsoftEntraIdClientId + microsoftEntraIdClientSecret + microsoftEntraIdInstance + microsoftEntraIdSignedOutCallbackPath + microsoftEntraIdTenantId +] + +var listOfSecretNames = union(listOfAppConfigSecrets, + [ + redisCacheSecretNamePrimary + ], multiRegionalSecrets) + +// ======================================================================== +// EXISTING RESOURCES +// ======================================================================== + +resource existingKvResourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' existing = { + name: kvResourceGroupName +} + +resource existingPrimaryRedisCache 'Microsoft.Cache/redis@2023-04-01' existing = { + name: redisCacheNamePrimary + scope: resourceGroup(applicationResourceGroupNamePrimary) +} + +resource existingSecondaryRediscache 'Microsoft.Cache/redis@2023-04-01' existing = if (deploymentSettings.isMultiLocationDeployment) { + name: redisCacheNameSecondary + scope: resourceGroup(deploymentSettings.isMultiLocationDeployment ? applicationResourceGroupNameSecondary : applicationResourceGroupNamePrimary) +} + +resource existingKeyVault 'Microsoft.KeyVault/vaults@2023-02-01' existing = { + name: keyVaultName + scope: existingKvResourceGroup +} + +// ======================================================================== +// AZURE MODULES +// ======================================================================== + +module writeJumpBoxCredentialsToKeyVault '../core/security/key-vault-secrets.bicep' = if (deploymentSettings.isNetworkIsolated) { + name: 'hub-write-jumpbox-credentials-${deploymentSettings.resourceToken}' + scope: existingKvResourceGroup + params: { + name: existingKeyVault.name + secrets: [ + { key: 'Jumpbox--AdministratorPassword', value: administratorPassword } + { key: 'Jumpbox--AdministratorUsername', value: administratorUsername } + { key: 'Jumpbox--ComputerName', value: resourceNames.hubJumpbox } + ] + } +} + +module writeSqlAdminInfoToKeyVault '../core/security/key-vault-secrets.bicep' = { + name: 'write-sql-admin-info-to-keyvault' + scope: existingKvResourceGroup + params: { + name: existingKeyVault.name + secrets: [ + { key: 'Application--SqlAdministratorUsername', value: administratorUsername } + { key: 'Application--SqlAdministratorPassword', value: databasePassword } + ] + } +} + +module writePrimaryRedisSecret '../core/security/key-vault-secrets.bicep' = { + name: 'write-primary-redis-secret-to-keyvault' + scope: existingKvResourceGroup + params: { + name: existingKeyVault.name + secrets: [ + { key: redisCacheSecretNamePrimary, value: '${existingPrimaryRedisCache.name}.redis.cache.windows.net:6380,password=${existingPrimaryRedisCache.listKeys().primaryKey},ssl=True,abortConnect=False' } + ] + } +} + +module writeSecondaryRedisSecret '../core/security/key-vault-secrets.bicep' = if (deploymentSettings.isMultiLocationDeployment) { + name: 'write-secondary-redis-secret-to-keyvault' + scope: existingKvResourceGroup + params: { + name: existingKeyVault.name + secrets: [ + { key: redisCacheSecretNameSecondary, value: '${existingSecondaryRediscache.name}.redis.cache.windows.net:6380,password=${existingSecondaryRediscache.listKeys().primaryKey},ssl=True,abortConnect=False' } + ] + } +} + +// ======================================================================== // +// Microsoft Entra Application Registration placeholders +// ======================================================================== // +module writeAppRegistrationSecrets '../core/security/key-vault-secrets.bicep' = [ for secretName in listOfAppConfigSecrets: { + name: 'write-temp-kv-secret-${secretName}' + scope: existingKvResourceGroup + params: { + name: existingKeyVault.name + secrets: [ + { key: secretName, value: 'placeholder-populated-by-script' } + ] + } +}] + +// ======================================================================== // +// Grant reader permissions for the web apps to access the key vault +// ======================================================================== // + +module grantSecretsUserAccessBySecretName './grant-secret-user.bicep' = [ for secretName in listOfSecretNames: { + scope: existingKvResourceGroup + name: 'grant-kv-access-for-${secretName}' + params: { + keyVaultName: existingKeyVault.name + readerIdentities: readerIdentities + secretName: secretName + } + dependsOn: [ + writeAppRegistrationSecrets + ] +}] diff --git a/infra/modules/application-resources.bicep b/infra/modules/application-resources.bicep new file mode 100644 index 00000000..7837cccf --- /dev/null +++ b/infra/modules/application-resources.bicep @@ -0,0 +1,565 @@ +targetScope = 'subscription' + +/* +** Application Infrastructure +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/FrontDoorSettings.bicep +@description('Type describing the settings for Azure Front Door.') +type FrontDoorSettings = { + @description('The name of the Azure Front Door endpoint') + endpointName: string + + @description('Front Door Id used for traffic restriction') + frontDoorId: string + + @description('The hostname that can be used to access Azure Front Door content.') + hostname: string + + @description('The profile name that is used for configuring Front Door routes.') + profileName: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The deployment settings to use for this deployment.') +param deploymentSettings DeploymentSettings + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The resource names for the resources to be created.') +param resourceNames object + +/* +** Dependencies +*/ +@description('The ID of the Application Insights resource to use for App Service logging.') +param applicationInsightsId string = '' + +@description('When deploying a hub, the private endpoints will need this parameter to specify the resource group that holds the Private DNS zones') +param dnsResourceGroupName string = '' + +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +@description('The list of subnets that are used for linking into the virtual network if using network isolation.') +param subnets object = {} + +@description('The settings for a pre-configured Azure Front Door that provides WAF for App Services.') +param frontDoorSettings FrontDoorSettings + +/* +** Settings +*/ +@secure() +@minLength(8) +@description('The password for the administrator account on the SQL Server.') +param databasePassword string + +@minLength(8) +@description('The username for the administrator account on the SQL Server.') +param administratorUsername string + +@description('The IP address of the current system. This is used to set up the firewall for Key Vault and SQL Server if in development mode.') +param clientIpAddress string = '' + +@description('If true, use a common App Service Plan. If false, use a separate App Service Plan per App Service.') +param useCommonAppServicePlan bool + +// ======================================================================== +// VARIABLES +// ======================================================================== + +// The tags to apply to all resources in this workload +var moduleTags = union(deploymentSettings.tags, deploymentSettings.workloadTags) + +// If the sqlResourceGroup != the application resource group, don't create a server. +var createSqlServer = resourceNames.sqlResourceGroup == resourceNames.resourceGroup + +// Budget amounts +// All values are calculated in dollars (rounded to nearest dollar) in the South Central US region. +var budget = { + sqlDatabase: deploymentSettings.isProduction ? 457 : 15 + appServicePlan: (deploymentSettings.isProduction ? 690 : 55) * (useCommonAppServicePlan ? 1 : 2) + virtualNetwork: deploymentSettings.isNetworkIsolated ? 4 : 0 + privateEndpoint: deploymentSettings.isNetworkIsolated ? 9 : 0 + frontDoor: deploymentSettings.isProduction || deploymentSettings.isNetworkIsolated ? 335 : 38 +} +var budgetAmount = reduce(map(items(budget), (obj) => obj.value), 0, (total, amount) => total + amount) + +// describes the Azure Storage container where ticket images will be stored after they are rendered during purchase +var ticketContainerName = 'tickets' + +// Built-in Azure Contributor role +var contributorRole = 'b24988ac-6180-42a0-ab88-20f7382dd24c' + +// ======================================================================== +// EXISTING RESOURCES +// ======================================================================== + +resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' existing = { + name: resourceNames.resourceGroup +} + +// ======================================================================== +// NEW RESOURCES +// ======================================================================== + +/* +** Identities used by the application. +*/ +module ownerManagedIdentity '../core/identity/managed-identity.bicep' = { + name: 'owner-managed-identity-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.ownerManagedIdentity + location: deploymentSettings.location + tags: moduleTags + } +} + +module appManagedIdentity '../core/identity/managed-identity.bicep' = { + name: 'application-managed-identity-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.appManagedIdentity + location: deploymentSettings.location + tags: moduleTags + } +} + +module ownerManagedIdentityRoleAssignment '../core/identity/resource-group-role-assignment.bicep' = { + name: 'owner-managed-identity-role-assignment-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + identityName: ownerManagedIdentity.outputs.name + roleId: contributorRole + roleDescription: 'Grant the "Contributor" role to the user-assigned managed identity so it can run deployment scripts.' + } +} + +/* +** App Configuration - used for storing configuration data +*/ +module appConfiguration '../core/config/app-configuration.bicep' = { + name: 'application-app-configuration-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.appConfiguration + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + diagnosticSettings: diagnosticSettings + enablePublicNetworkAccess: !deploymentSettings.isNetworkIsolated + ownerIdentities: [ + { principalId: deploymentSettings.principalId, principalType: deploymentSettings.principalType } + { principalId: ownerManagedIdentity.outputs.principal_id, principalType: 'ServicePrincipal' } + ] + privateEndpointSettings: deploymentSettings.isNetworkIsolated ? { + dnsResourceGroupName: dnsResourceGroupName + name: resourceNames.appConfigurationPrivateEndpoint + resourceGroupName: resourceNames.spokeResourceGroup + subnetId: subnets[resourceNames.spokePrivateEndpointSubnet].id + + } : null + readerIdentities: [ + { principalId: appManagedIdentity.outputs.principal_id, principalType: 'ServicePrincipal' } + ] + } +} + +/* +** Key Vault - used for storing configuration secrets. +** This vault is deployed with the application when not using Network Isolation. +*/ +module keyVault '../core/security/key-vault.bicep' = if (!deploymentSettings.isNetworkIsolated) { + name: 'application-key-vault-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.keyVault + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + diagnosticSettings: diagnosticSettings + enablePublicNetworkAccess: true + ownerIdentities: [ + { principalId: deploymentSettings.principalId, principalType: deploymentSettings.principalType } + { principalId: ownerManagedIdentity.outputs.principal_id, principalType: 'ServicePrincipal' } + ] + privateEndpointSettings: deploymentSettings.isNetworkIsolated ? { + dnsResourceGroupName: dnsResourceGroupName + name: resourceNames.keyVaultPrivateEndpoint + resourceGroupName: resourceNames.spokeResourceGroup + subnetId: subnets[resourceNames.spokePrivateEndpointSubnet].id + } : null + readerIdentities: [ + { principalId: appManagedIdentity.outputs.principal_id, principalType: 'ServicePrincipal' } + ] + } +} + +/* +** SQL Database +*/ +module sqlServer '../core/database/sql-server.bicep' = if (createSqlServer) { + name: 'application-sql-server-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.sqlServer + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + managedIdentityName: ownerManagedIdentity.outputs.name + + // Settings + firewallRules: !deploymentSettings.isProduction && !empty(clientIpAddress) ? { + allowedIpAddresses: [ '${clientIpAddress}/32' ] + } : null + diagnosticSettings: diagnosticSettings + enablePublicNetworkAccess: !deploymentSettings.isNetworkIsolated + sqlAdministratorPassword: databasePassword + sqlAdministratorUsername: administratorUsername + } +} + +module sqlDatabase '../core/database/sql-database.bicep' = { + name: 'application-sql-database-${deploymentSettings.resourceToken}' + scope: az.resourceGroup(resourceNames.sqlResourceGroup) + params: { + name: resourceNames.sqlDatabase + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + sqlServerName: createSqlServer ? sqlServer.outputs.name : resourceNames.sqlServer + + // Settings + diagnosticSettings: diagnosticSettings + dtuCapacity: deploymentSettings.isProduction ? 125 : 10 + privateEndpointSettings: deploymentSettings.isNetworkIsolated ? { + dnsResourceGroupName: dnsResourceGroupName + name: resourceNames.sqlDatabasePrivateEndpoint + resourceGroupName: resourceNames.spokeResourceGroup + subnetId: subnets[resourceNames.spokePrivateEndpointSubnet].id + } : null + sku: deploymentSettings.isProduction ? 'Premium' : 'Standard' + zoneRedundant: deploymentSettings.isProduction + } +} + +/* +** App Services +*/ +module commonAppServicePlan '../core/hosting/app-service-plan.bicep' = if (useCommonAppServicePlan) { + name: 'application-app-service-plan-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.commonAppServicePlan + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + autoScaleSettings: deploymentSettings.isProduction ? { maxCapacity: 10, minCapacity: 3 } : null + diagnosticSettings: diagnosticSettings + sku: deploymentSettings.isProduction ? 'P1v3' : 'B1' + zoneRedundant: deploymentSettings.isProduction + } +} + +module webService './application-appservice.bicep' = { + name: 'application-webservice-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + deploymentSettings: deploymentSettings + diagnosticSettings: diagnosticSettings + // mapping code projects to web apps by tags matching names from azure.yaml + tags: moduleTags + + // Dependencies + appConfigurationName: appConfiguration.outputs.name + applicationInsightsId: applicationInsightsId + appServicePlanName: useCommonAppServicePlan ? commonAppServicePlan.outputs.name : resourceNames.webAppServicePlan + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + // uses ownerManagedIdentity with code first schema and seeding operations + // separate approach will be researched by 1852428 + managedIdentityName: ownerManagedIdentity.outputs.name + + // Settings + appServiceName: resourceNames.webAppService + outboundSubnetId: deploymentSettings.isNetworkIsolated ? subnets[resourceNames.spokeWebOutboundSubnet].id : '' + privateEndpointSettings: deploymentSettings.isNetworkIsolated ? { + dnsResourceGroupName: dnsResourceGroupName + name: resourceNames.webAppServicePrivateEndpoint + resourceGroupName: resourceNames.spokeResourceGroup + subnetId: subnets[resourceNames.spokeWebInboundSubnet].id + } : null + restrictToFrontDoor: frontDoorSettings.frontDoorId + servicePrefix: 'web-callcenter-service' + useExistingAppServicePlan: useCommonAppServicePlan + } +} + +module webServiceFrontDoorRoute '../core/security/front-door-route.bicep' = if (deploymentSettings.isPrimaryLocation) { + name: 'web-service-front-door-route-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + frontDoorEndpointName: frontDoorSettings.endpointName + frontDoorProfileName: frontDoorSettings.profileName + healthProbeMethod:'GET' + originPath: '/api/' + originPrefix: 'web-service' + serviceAddress: webService.outputs.app_service_hostname + routePattern: '/api/*' + privateLinkSettings: deploymentSettings.isNetworkIsolated ? { + privateEndpointResourceId: webService.outputs.app_service_id + linkResourceType: 'sites' + location: deploymentSettings.location + } : {} + } +} + +module webFrontend './application-appservice.bicep' = { + name: 'application-webfrontend-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + deploymentSettings: deploymentSettings + diagnosticSettings: diagnosticSettings + // mapping code projects to web apps by tags matching names from azure.yaml + tags: moduleTags + + // Dependencies + appConfigurationName: appConfiguration.outputs.name + applicationInsightsId: applicationInsightsId + appServicePlanName: useCommonAppServicePlan ? commonAppServicePlan.outputs.name : resourceNames.webAppServicePlan + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + managedIdentityName: appManagedIdentity.outputs.name + + // Settings + appServiceName: resourceNames.webAppFrontend + outboundSubnetId: deploymentSettings.isNetworkIsolated ? subnets[resourceNames.spokeWebOutboundSubnet].id : '' + privateEndpointSettings: deploymentSettings.isNetworkIsolated ? { + dnsResourceGroupName: dnsResourceGroupName + name: resourceNames.webAppFrontendPrivateEndpoint + resourceGroupName: resourceNames.spokeResourceGroup + subnetId: subnets[resourceNames.spokeWebInboundSubnet].id + } : null + restrictToFrontDoor: frontDoorSettings.frontDoorId + servicePrefix: 'web-callcenter-frontend' + useExistingAppServicePlan: useCommonAppServicePlan + } +} + +module webFrontendFrontDoorRoute '../core/security/front-door-route.bicep' = if (deploymentSettings.isPrimaryLocation) { + name: 'web-frontend-front-door-route-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + frontDoorEndpointName: frontDoorSettings.endpointName + frontDoorProfileName: frontDoorSettings.profileName + healthProbeMethod:'GET' + originPath: '/' + originPrefix: 'web-frontend' + serviceAddress: webFrontend.outputs.app_service_hostname + routePattern: '/*' + privateLinkSettings: deploymentSettings.isNetworkIsolated ? { + privateEndpointResourceId: webFrontend.outputs.app_service_id + linkResourceType: 'sites' + location: deploymentSettings.location + } : {} + } +} + +/* +** Azure Cache for Redis +*/ + +module redis '../core/database/azure-cache-for-redis.bicep' = { + name: 'application-redis-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.redis + location: deploymentSettings.location + diagnosticSettings: diagnosticSettings + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + // vault provided by Hub resource group when network isolated + redisCacheSku : deploymentSettings.isProduction ? 'Standard' : 'Basic' + redisCacheFamily : 'C' + redisCacheCapacity: deploymentSettings.isProduction ? 1 : 0 + + privateEndpointSettings: deploymentSettings.isNetworkIsolated ? { + dnsResourceGroupName: dnsResourceGroupName + name: resourceNames.redisPrivateEndpoint + resourceGroupName: resourceNames.spokeResourceGroup + subnetId: subnets[resourceNames.spokePrivateEndpointSubnet].id + } : null + } +} + +/* +** Azure Storage +*/ + +module storageAccount '../core/storage/storage-account.bicep' = { + name: 'application-storage-account-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + location: deploymentSettings.location + name: resourceNames.storageAccount + + // Settings + allowSharedKeyAccess: false + ownerIdentities: [ + { principalId: deploymentSettings.principalId, principalType: deploymentSettings.principalType } + { principalId: ownerManagedIdentity.outputs.principal_id, principalType: 'ServicePrincipal' } + ] + privateEndpointSettings: deploymentSettings.isNetworkIsolated ? { + dnsResourceGroupName: dnsResourceGroupName + name: resourceNames.storageAccountPrivateEndpoint + resourceGroupName: resourceNames.spokeResourceGroup + subnetId: subnets[resourceNames.spokePrivateEndpointSubnet].id + } : null + } +} + +module storageAccountContainer '../core/storage/storage-account-blob.bicep' = { + name: 'application-storage-account-container-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.storageAccountContainer + storageAccountName: storageAccount.outputs.name + diagnosticSettings: diagnosticSettings + containers: [ + { name: ticketContainerName } + ] + } +} + +module approveFrontDoorPrivateLinks '../core/security/front-door-route-approval.bicep' = if (deploymentSettings.isNetworkIsolated && deploymentSettings.isPrimaryLocation) { + name: 'approve-front-door-routes-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + location: deploymentSettings.location + managedIdentityName: ownerManagedIdentityRoleAssignment.outputs.identity_name + } + // private endpoint approval between front door and web app depends on both resources + dependsOn: [ + webService + webServiceFrontDoorRoute + webFrontend + webFrontendFrontDoorRoute + ] +} + +module applicationBudget '../core/cost-management/budget.bicep' = { + name: 'application-budget-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.budget + amount: budgetAmount + contactEmails: [ + deploymentSettings.tags['azd-owner-email'] + ] + resourceGroups: union([ resourceGroup.name ], deploymentSettings.isNetworkIsolated ? [ resourceNames.spokeResourceGroup ] : []) + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output app_config_uri string = appConfiguration.outputs.app_config_uri +output key_vault_name string = deploymentSettings.isNetworkIsolated ? resourceNames.keyVault : keyVault.outputs.name +output redis_cache_name string = redis.outputs.name + +output owner_managed_identity_id string = ownerManagedIdentity.outputs.id +output app_managed_identity_id string = appManagedIdentity.outputs.id + +output service_managed_identities object[] = [ + { principalId: ownerManagedIdentity.outputs.principal_id, principalType: 'ServicePrincipal', role: 'owner' } + { principalId: appManagedIdentity.outputs.principal_id, principalType: 'ServicePrincipal', role: 'application' } +] + +output service_web_endpoints string[] = [ deploymentSettings.isPrimaryLocation ? webFrontendFrontDoorRoute.outputs.endpoint : webFrontend.outputs.app_service_uri ] +output web_uri string = deploymentSettings.isPrimaryLocation ? webFrontendFrontDoorRoute.outputs.uri : webFrontend.outputs.app_service_uri + +output sql_server_name string = sqlServer.outputs.name +output sql_database_name string = sqlDatabase.outputs.name diff --git a/infra/modules/azure-fqdns.jsonc b/infra/modules/azure-fqdns.jsonc new file mode 100644 index 00000000..f2b2c693 --- /dev/null +++ b/infra/modules/azure-fqdns.jsonc @@ -0,0 +1,51 @@ +{ + "azureMonitor": [ + "dc.applicationinsights.azure.com", + "dc.applicationinsights.microsoft.com", + "dc.services.visualstudio.com", + "*.in.applicationinsights.azure.com", + "live.applicationinsights.azure.com", + "rt.applicationinsights.microsoft.com", + "rt.services.visualstudio.com", + "*.livediagnostics.monitor.azure.com", + "*.monitoring.azure.com", + "agent.azureserviceprofiler.net", + "*.agent.azureserviceprofiler.net", + "*.monitor.azure.com" + ], + "certificateServices": [ + "*.delivery.mp.microsoft.com", + "ctldl.windowsupdate.com", + "ocsp.msocsp.com", + "oneocsp.microsoft.com", + "crl.microsoft.com", + "www.microsoft.com", + "*.digicert.com", + "*.symantec.com", + "*.symcb.com", + "*.d-trust.net" + ], + "coreServices": [ + "management.azure.com", + "management.core.windows.net", + "login.microsoftonline.com", + "login.windows.net", + "login.live.com", + "graph.windows.net" + ], + "developerServices": [ + "github.com", + "*.github.com", + "*.nuget.org", + "*.blob.core.windows.net", + "raw.githubusercontent.com", + "dev.azure.com", + "portal.azure.com", + "*.portal.azure.com", + "*.portal.azure.net", + "appservice.azureedge.net", + "*.azurewebsites.net", + "edge.management.azure.com", + "*.azurefd.net" + ] +} \ No newline at end of file diff --git a/infra/modules/azure-monitor.bicep b/infra/modules/azure-monitor.bicep new file mode 100644 index 00000000..511c8ac8 --- /dev/null +++ b/infra/modules/azure-monitor.bicep @@ -0,0 +1,139 @@ +targetScope = 'subscription' + +/* +** Azure Monitor Workload +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The deployment settings to use for this deployment.') +param deploymentSettings DeploymentSettings + +@description('The resource names for the resources to be created.') +param resourceNames object + +@description('The name of the resource group which should hold Azure Monitor resources.') +param resourceGroupName string + +// ======================================================================== +// VARIABLES +// ======================================================================== + +// The tags to apply to all resources in this workload +var moduleTags = union(deploymentSettings.tags, { + WorkloadName: deploymentSettings.name + Environment: deploymentSettings.stage + OwnerName: deploymentSettings.tags['azd-owner-email'] + ServiceClass: deploymentSettings.isProduction ? 'Silver' : 'Dev' + OpsCommitment: 'Workload operations' +}) + +// ======================================================================== +// AZURE MODULES +// ======================================================================== + +resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' existing = { + name: resourceGroupName +} + +module logAnalytics '../core/monitor/log-analytics-workspace.bicep' = { + name: 'workload-log-analytics' + scope: resourceGroup + params: { + name: resourceNames.logAnalyticsWorkspace + location: deploymentSettings.location + tags: moduleTags + + // Settings + sku: 'PerGB2018' + } +} + +module applicationInsights '../core/monitor/application-insights.bicep' = { + name: 'workload-application-insights' + scope: resourceGroup + params: { + name: resourceNames.applicationInsights + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalytics.outputs.id + + // Settings + kind: 'web' + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output application_insights_id string = applicationInsights.outputs.id +output log_analytics_workspace_id string = logAnalytics.outputs.id diff --git a/infra/modules/build-agent.bicep b/infra/modules/build-agent.bicep new file mode 100644 index 00000000..cfe63319 --- /dev/null +++ b/infra/modules/build-agent.bicep @@ -0,0 +1,194 @@ +targetScope = 'subscription' + +/* +** Create a Build Agent for Devops +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/BuildAgentSettings.bicep +@description('Describes the required settings for a Azure DevOps Pipeline runner') +type AzureDevopsSettings = { + @description('The URL of the Azure DevOps organization to use for this agent') + organizationUrl: string + + @description('The Personal Access Token (PAT) to use for the Azure DevOps agent') + token: string +} + +@description('Describes the required settings for a GitHub Actions runner') +type GithubActionsSettings = { + @description('The URL of the GitHub repository to use for this agent') + repositoryUrl: string + + @description('The Personal Access Token (PAT) to use for the GitHub Actions runner') + token: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The deployment settings to use for this deployment.') +param deploymentSettings DeploymentSettings + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The resource names for the resources to be created.') +param resourceNames object + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +@description('The ID of the managed identity to use as the identity for communicating with other services.') +param managedIdentityId string + +@description('The list of subnets that are used for linking into the virtual network if using network isolation.') +param subnets object + +/* +** Settings +*/ +@secure() +@minLength(8) +@description('The password for the administrator account on the build agent.') +param administratorPassword string + +@minLength(8) +@description('The username for the administrator account on the build agent.') +param administratorUsername string + +@description('The URL of the Azure DevOps organization. If this and the adoToken is provided, then an Azure DevOps build agent will be deployed.') +param adoOrganizationUrl string = '' + +@description('The access token for the Azure DevOps organization. If this and the adoOrganizationUrl is provided, then an Azure DevOps build agent will be deployed.') +param adoToken string = '' + +// Settings for setting up a build agent for GitHub Actions +@description('The URL of the GitHub repository. If this and the githubToken is provided, then a GitHub Actions build agent will be deployed.') +param githubRepositoryUrl string = '' + +@description('The personal access token for the GitHub repository. If this and the githubRepositoryUrl is provided, then a GitHub Actions build agent will be deployed.') +param githubToken string = '' + +// ======================================================================== +// VARIABLES +// ======================================================================== + +// The tags to apply to all resources in this workload +var moduleTags = union(deploymentSettings.tags, deploymentSettings.workloadTags, { + WorkloadType: 'Devops' +}) + +// ======================================================================== +// EXISTING RESOURCES +// ======================================================================== + +resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' existing = { + name: resourceNames.spokeResourceGroup +} + +// ======================================================================== +// NEW RESOURCES +// ======================================================================== + +module buildAgent '../core/compute/windows-buildagent.bicep' = { + name: 'devops-build-agent' + scope: resourceGroup + params: { + name: resourceNames.buildAgent + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + managedIdentityId: managedIdentityId + subnetId: subnets[resourceNames.spokeDevopsSubnet].id + + // Settings + administratorPassword: administratorPassword + administratorUsername: administratorUsername + azureDevopsSettings: !empty(adoOrganizationUrl) && !empty(adoToken) ? { + organizationUrl: adoOrganizationUrl + token: adoToken + } : null + diagnosticSettings: diagnosticSettings + githubActionsSettings: !empty(githubRepositoryUrl) && !empty(githubToken) ? { + repositoryUrl: githubRepositoryUrl + token: githubToken + } : null + } +} + +// ======================================================================== +// NEW RESOURCES +// ======================================================================== + +output build_agent_id string = buildAgent.outputs.id +output build_agent_name string = buildAgent.outputs.name +output build_agent_hostname string = buildAgent.outputs.computer_name diff --git a/infra/modules/grant-secret-user.bicep b/infra/modules/grant-secret-user.bicep new file mode 100644 index 00000000..e9929f32 --- /dev/null +++ b/infra/modules/grant-secret-user.bicep @@ -0,0 +1,57 @@ +targetScope = 'resourceGroup' + +/* +** Find existing secrets and grant access to the reader identities. +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +*/ + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('Name of the existing Key Vault that contains the secret') +param keyVaultName string + +@description('List of user assigned managed identities that will receive Secrets User role to the shared key vault') +param readerIdentities object[] + +@description('Name of the existing Key Vault secret that will be readable') +param secretName string + +// ======================================================================== +// VARIABLES +// ======================================================================== + +@description('Built in \'Key Vault Secrets User\' role ID: https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles') +var vaultSecretsUserRoleId = '4633458b-17de-408a-b874-0445c86b69e6' + +// ======================================================================== +// EXISTING RESOURCES +// ======================================================================== + +resource existingKeyVault 'Microsoft.KeyVault/vaults@2019-09-01' existing = { + name: keyVaultName +} + +resource existingSecret 'Microsoft.KeyVault/vaults/secrets@2019-09-01' existing = { + name: secretName + parent: existingKeyVault +} + +// ======================================================================== +// AZURE MODULES +// ======================================================================== + +resource grantSecretsUserAccess 'Microsoft.Authorization/roleAssignments@2022-04-01' = [ for id in readerIdentities: if (!empty(id.principalId)) { + name: guid(vaultSecretsUserRoleId, id.principalId, existingSecret.id, resourceGroup().name) + scope: existingSecret + properties: { + principalType: id.principalType + roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', vaultSecretsUserRoleId) + principalId: id.principalId + } +}] diff --git a/infra/modules/hub-network.bicep b/infra/modules/hub-network.bicep new file mode 100644 index 00000000..5961fd24 --- /dev/null +++ b/infra/modules/hub-network.bicep @@ -0,0 +1,483 @@ +targetScope = 'subscription' + +/* +** Hub Network Infrastructure +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** The Hub Network consists of a virtual network that hosts resources that +** are generally associated with a hub. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The deployment settings to use for this deployment.') +param deploymentSettings DeploymentSettings + +@description('The diagnostic settings to use for this deployment.') +param diagnosticSettings DiagnosticSettings + +@description('The resource names for the resources to be created.') +param resourceNames object + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +/* +** Settings +*/ +@secure() +@minLength(8) +@description('The password for the administrator account on the jump box.') +param administratorPassword string = newGuid() + +@minLength(8) +@description('The username for the administrator account on the jump box.') +param administratorUsername string = 'adminuser' + +@description('If enabled, an Ubuntu jump box will be deployed. Ensure you enable the bastion host as well.') +param enableJumpBox bool = false + +@description('The CIDR block to use for the address prefix of this virtual network.') +param addressPrefix string = '10.0.0.0/20' + +@description('If enabled, a Bastion Host will be deployed with a public IP address.') +param enableBastionHost bool = false + +@description('If enabled, DDoS Protection will be enabled on the virtual network') +param enableDDoSProtection bool = true + +@description('If enabled, an Azure Firewall will be deployed with a public IP address.') +param enableFirewall bool = true + +@description('The address spaces allowed to connect through the firewall. By default, we allow all RFC1918 address spaces') +param internalAddressSpace string[] = [ '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16' ] + +@description('If true, create a subnet for Devops resources') +param createDevopsSubnet bool = false + +// ======================================================================== +// VARIABLES +// ======================================================================== + +// The tags to apply to all resources in this workload +var moduleTags = union(deploymentSettings.tags, { + WorkloadName: 'NetworkHub' + OpsCommitment: 'Platform operations' + ServiceClass: deploymentSettings.isProduction ? 'Gold' : 'Dev' +}) + +// The subnet prefixes for the individual subnets inside the virtual network +var subnetPrefixes = [ for i in range(0, 16): cidrSubnet(addressPrefix, 26, i)] + +// The individual subnet definitions. +var bastionHostSubnetDefinition = { + name: resourceNames.hubSubnetBastionHost + properties: { + addressPrefix: subnetPrefixes[2] + privateEndpointNetworkPolicies: 'Disabled' + } +} + +var firewallSubnetDefinition = { + name: resourceNames.hubSubnetFirewall + properties: { + addressPrefix: subnetPrefixes[1] + privateEndpointNetworkPolicies: 'Disabled' + } +} + +var privateEndpointSubnet = { + name: resourceNames.hubSubnetPrivateEndpoint + properties: { + addressPrefix: subnetPrefixes[0] + privateEndpointNetworkPolicies: 'Disabled' + } +} + +var devopsSubnet = { + name: resourceNames.spokeDevopsSubnet + properties: { + addressPrefix: subnetPrefixes[6] + privateEndpointNetworkPolicies: 'Disabled' + } +} + +var subnets = union( + [privateEndpointSubnet], + enableBastionHost ? [bastionHostSubnetDefinition] : [], + enableFirewall ? [firewallSubnetDefinition] : [], + createDevopsSubnet ? [devopsSubnet] : [] +) + +// Some helpers for the firewall rules +var allowTraffic = { type: 'allow' } +var httpProtocol = { port: '80', protocolType: 'HTTP' } +var httpsProtocol = { port: '443', protocolType: 'HTTPS' } +var azureFqdns = loadJsonContent('./azure-fqdns.jsonc') + +// The firewall application rules +var applicationRuleCollections = [ + { + name: 'Azure-Monitor' + properties: { + action: allowTraffic + priority: 201 + rules: [ + { + name: 'allow-azure-monitor' + protocols: [ httpsProtocol ] + sourceAddresses: internalAddressSpace + targetFqdns: azureFqdns.azureMonitor + } + ] + } + } + { + name: 'Core-Dependencies' + properties: { + action: allowTraffic + priority: 200 + rules: [ + { + name: 'allow-core-apis' + protocols: [ httpsProtocol ] + sourceAddresses: internalAddressSpace + targetFqdns: azureFqdns.coreServices + } + { + name: 'allow-developer-services' + protocols: [ httpsProtocol ] + sourceAddresses: internalAddressSpace + targetFqdns: azureFqdns.developerServices + } + { + name: 'allow-certificate-dependencies' + protocols: [ httpProtocol, httpsProtocol ] + sourceAddresses: internalAddressSpace + targetFqdns: azureFqdns.certificateServices + } + ] + } + } +] + +// The subnet prefixes for the individual subnets inside the virtual network + +var networkRuleCollections = [ + { + name: 'Windows-VM-Connectivity-Requirements' + properties: { + action: { + type: 'allow' + } + priority: 202 + rules: [ + { + destinationAddresses: [ + '20.118.99.224' + '40.83.235.53' + '23.102.135.246' + '51.4.143.248' + '23.97.0.13' + '52.126.105.2' + ] + destinationPorts: [ + '*' + ] + name: 'allow-kms-activation' + protocols: [ + 'Any' + ] + sourceAddresses: [ subnetPrefixes[6] ] + } + { + destinationAddresses: [ + '*' + ] + destinationPorts: [ + '123' + '12000' + ] + name: 'allow-ntp' + protocols: [ + 'Any' + ] + sourceAddresses: [ subnetPrefixes[6] ] + } + ] + } + }] +// Our firewall does not use NAT rule collections, but you can set them up here. +var natRuleCollections = [] + +// Budget amounts +// All values are calculated in dollars (rounded to nearest dollar) in the South Central US region. +var budgetCategories = deploymentSettings.isProduction ? { + ddosProtectionPlan: 0 /* Includes protection for 100 public IP addresses */ + azureMonitor: 87 /* Estimate 1GiB/day Analytics, 1GiB/day Basic Logs */ + applicationInsights: 152 /* Estimate 5GiB/day Application Insights */ + keyVault: 1 /* Minimal usage - < 100 operations per month */ + virtualNetwork: 0 /* Virtual networks are free - peering included in spoke */ + firewall: 290 /* Basic plan, 100GiB processed */ + bastionHost: 212 /* Standard plan */ + jumpbox: 85 /* Standard_B2ms, S10 managed disk, minimal bandwidth usage */ +} : { + ddosProtectionPlan: 0 /* Includes protection for 100 public IP addresses */ + azureMonitor: 69 /* Estimate 1GiB/day Analytics + Basic Logs */ + applicationInsights: 187 /* Estimate 1GiB/day Application Insights */ + keyVault: 1 /* Minimal usage - < 100 operations per month */ + virtualNetwork: 0 /* Virtual networks are free - peering included in spoke */ + firewall: 290 /* Standard plan, 100GiB processed */ + bastionHost: 139 /* Basic plan */ + jumpbox: 85 /* Standard_B2ms, S10 managed disk, minimal bandwidth usage */ +} +var budgetAmount = reduce(map(items(budgetCategories), (obj) => obj.value), 0, (total, amount) => total + amount) + +// ======================================================================== +// AZURE MODULES +// ======================================================================== + +resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' existing = { + name: resourceNames.hubResourceGroup +} + +module ddosProtectionPlan '../core/network/ddos-protection-plan.bicep' = if (enableDDoSProtection) { + name: 'hub-ddos-protection-plan-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.hubDDoSProtectionPlan + location: deploymentSettings.location + tags: moduleTags + } +} + +module virtualNetwork '../core/network/virtual-network.bicep' = { + name: 'hub-virtual-network-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.hubVirtualNetwork + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + ddosProtectionPlanId: enableDDoSProtection ? ddosProtectionPlan.outputs.id : '' + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + addressPrefix: addressPrefix + diagnosticSettings: diagnosticSettings + subnets: subnets + } +} + +module firewall '../core/network/firewall.bicep' = if (enableFirewall) { + name: 'hub-firewall-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.hubFirewall + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + subnetId: virtualNetwork.outputs.subnets[resourceNames.hubSubnetFirewall].id + + // Settings + diagnosticSettings: diagnosticSettings + publicIpAddressName: resourceNames.hubFirewallPublicIpAddress + sku: 'Standard' + threatIntelMode: 'Deny' + zoneRedundant: deploymentSettings.isProduction + + // Firewall rules + applicationRuleCollections: applicationRuleCollections + natRuleCollections: natRuleCollections + networkRuleCollections: networkRuleCollections + } +} + + +module jumpbox '../core/compute/ubuntu-jumpbox.bicep' = if (enableJumpBox) { + name: 'hub-jumpbox-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.hubJumpbox + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + subnetId: virtualNetwork.outputs.subnets[resourceNames.spokeDevopsSubnet].id + + // Settings + adminPasswordOrKey: administratorPassword + adminUsername: administratorUsername + diagnosticSettings: diagnosticSettings + } +} + + +module bastionHost '../core/network/bastion-host.bicep' = if (enableBastionHost) { + name: 'hub-bastion-host-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.hubBastionHost + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + subnetId: virtualNetwork.outputs.subnets[resourceNames.hubSubnetBastionHost].id + + // Settings + diagnosticSettings: diagnosticSettings + publicIpAddressName: resourceNames.hubBastionPublicIpAddress + sku: deploymentSettings.isProduction ? 'Standard' : 'Basic' + zoneRedundant: deploymentSettings.isProduction + } +} + +/* + The vault will always be deployed because it stores Microsoft Entra app registration details. + The dynamic part of this feature is whether or not the Vault is located in the Hub (yes, when Network Isolated) + or if it is located in the Workload resource group (yes, when Network Isolation is not enabled). + */ +module sharedKeyVault '../core/security/key-vault.bicep' = { + name: 'shared-key-vault-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.keyVault + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + diagnosticSettings: diagnosticSettings + enablePublicNetworkAccess: true + ownerIdentities: [ + { principalId: deploymentSettings.principalId, principalType: deploymentSettings.principalType } + ] + privateEndpointSettings: { + dnsResourceGroupName: resourceGroup.name + name: resourceNames.keyVaultPrivateEndpoint + resourceGroupName: resourceGroup.name + subnetId: virtualNetwork.outputs.subnets[privateEndpointSubnet.name].id + } + } +} + +module hubBudget '../core/cost-management/budget.bicep' = { + name: 'hub-budget-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.hubBudget + amount: budgetAmount + contactEmails: [ + deploymentSettings.tags['azd-owner-email'] + ] + resourceGroups: [ + resourceGroup.name + ] + } +} + +var virtualNetworkLinks = [ + { + vnetName: virtualNetwork.outputs.name + vnetId: virtualNetwork.outputs.id + registrationEnabled: false + } +] + +module privateDnsZones './private-dns-zones.bicep' = { + name: 'hub-private-dns-zone-deploy-${deploymentSettings.resourceToken}' + params:{ + deploymentSettings: deploymentSettings + hubResourceGroupName: resourceGroup.name + virtualNetworkLinks: virtualNetworkLinks + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output bastion_name string = enableBastionHost ? bastionHost.outputs.name : '' +output bastion_hostname string = enableBastionHost ? bastionHost.outputs.hostname : '' +output firewall_hostname string = enableFirewall ? firewall.outputs.hostname : '' +output firewall_ip_address string = enableFirewall ? firewall.outputs.internal_ip_address : '' +output virtual_network_id string = virtualNetwork.outputs.id +output virtual_network_name string = virtualNetwork.outputs.name +output key_vault_name string = enableJumpBox ? sharedKeyVault.outputs.name : '' +output jumpbox_computer_name string = enableJumpBox ? jumpbox.outputs.computer_name : '' +output jumpbox_resource_id string = enableJumpBox ? jumpbox.outputs.id : '' diff --git a/infra/modules/naming.bicep b/infra/modules/naming.bicep new file mode 100644 index 00000000..6b1ad42e --- /dev/null +++ b/infra/modules/naming.bicep @@ -0,0 +1,231 @@ +targetScope = 'subscription' + +/* +** Resource Naming +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Provides a name for every resource that may be created. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The global deployment settings') +param deploymentSettings DeploymentSettings + +@description('A differentiator for the environment. Set this to a build number or date to ensure that the resource groups and resources are unique.') +param differentiator string = '' + +@description('The primary Azure location to deploy resources and the location of the hub.') +param primaryLocation string + +var resourceToken = deploymentSettings.resourceToken + +@description('The overrides for the naming scheme. Load this from the naming.overrides.jsonc file.') +param overrides object = {} + +// ======================================================================== +// VARIABLES +// ======================================================================== + +// The prefix for resource groups +var diffPrefix = !empty(differentiator) ? '-${differentiator}' : '' +var hubResourceGroupPrefix = 'rg-${deploymentSettings.name}-${deploymentSettings.stage}-${primaryLocation}' +var resourceGroupPrefix = 'rg-${deploymentSettings.name}-${deploymentSettings.stage}-${deploymentSettings.location}${diffPrefix}' + +// The list of resource names that are used in the deployment. The default +// names use Cloud Adoption Framework abbreviations. +// See: https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/resource-abbreviations +var defaultResourceNames = { + // Hub network resources + hubBastionHost: 'bas-${resourceToken}' + hubBastionPublicIpAddress: 'pip-bas-${resourceToken}' + hubBudget: 'budget-hub-${resourceToken}' + hubDDoSProtectionPlan: 'ddos-${resourceToken}' + hubFirewall: 'afw-${resourceToken}' + hubFirewallPublicIpAddress: 'pip-afw-${resourceToken}' + hubJumpbox: 'vm-jump-${resourceToken}' + hubResourceGroup: '${hubResourceGroupPrefix}-hub' + hubSubnetBastionHost: 'AzureBastionSubnet' + hubSubnetFirewall: 'AzureFirewallSubnet' + hubSubnetJumpbox: 'JumpboxSubnet' + hubSubnetPrivateEndpoint: 'PrivateEndpointSubnet' + hubVirtualNetwork: 'vnet-hub-${resourceToken}' + + // Spoke network resources + spokeApiInboundSubnet: 'API-Inbound' + spokeApiInboundNSG: 'nsg-api-in-${resourceToken}' + spokeApiOutboundSubnet: 'API-Outbound' + spokeApiOutboundNSG: 'nsg-api-out-${resourceToken}' + spokeDevopsSubnet: 'DevopsBuildAgents' + spokeDeploymentSubnet: 'Deployment' + spokeResourceGroup: '${resourceGroupPrefix}-spoke' + spokeRouteTable: 'rt-${resourceToken}' + spokePrivateEndpointNSG: 'nsg-pep-${resourceToken}' + spokePrivateEndpointSubnet: 'Private-Endpoints' + spokeVirtualNetwork: 'vnet-spoke-${resourceToken}' + spokeWebInboundSubnet: 'Web-Inbound-${resourceToken}' + spokeWebInboundNSG: 'nsg-web-in-${resourceToken}' + spokeWebOutboundSubnet: 'Web-Outbound-${resourceToken}' + spokeWebOutboundNSG: 'nsg-web-out-${resourceToken}' + + // Common resources - may be in hub or application resource group + applicationInsights: 'appi-${resourceToken}' + buildAgent: 'vm-buildagent-${resourceToken}' + logAnalyticsWorkspace: 'log-${resourceToken}' + keyVault: 'kv-${resourceToken}' + keyVaultPrivateEndpoint: 'pep-kv-${resourceToken}' + + // Application resources + apiAppService: 'app-api-${resourceToken}' + apiAppServicePlan: 'asp-api-${resourceToken}' + apiPrivateEndpoint: 'pep-api-${resourceToken}' + appConfiguration: 'appconfig-${resourceToken}' + appConfigurationPrivateEndpoint: 'pep-appconfig-${resourceToken}' + appManagedIdentity: 'id-app-${resourceToken}' + budget: 'budget-${deploymentSettings.name}-${deploymentSettings.stage}-${deploymentSettings.location}${diffPrefix}' + commonAppServicePlan: 'asp-common-${resourceToken}' + frontDoorEndpoint: 'fde-${resourceToken}' + frontDoorProfile: 'afd-${resourceToken}' + ownerManagedIdentity: 'id-owner-${resourceToken}' + resourceGroup: '${resourceGroupPrefix}-application' + redis: 'redis-${resourceToken}' + redisPrivateEndpoint: 'pep-redis-${resourceToken}' + storageAccount: 'st${deploymentSettings.stage}${resourceToken}' + storageAccountPrivateEndpoint: 'pep-st-${resourceToken}' + storageAccountContainer: 'tickets' + sqlDatabase: 'relecloud-${resourceToken}' + sqlDatabasePrivateEndpoint: 'pep-sqldb-${resourceToken}' + sqlServer: 'sql-${resourceToken}' + sqlResourceGroup: '${resourceGroupPrefix}-application' + webAppFrontend: 'app-webfrontend-${resourceToken}' + webAppService: 'app-webservice-${resourceToken}' + webAppServicePlan: 'asp-web-${resourceToken}' + webApplicationFirewall: 'waf${resourceToken}' + webAppFrontendPrivateEndpoint: 'pep-web-frontend-${resourceToken}' + webAppServicePrivateEndpoint: 'pep-web-service-${resourceToken}' +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output resourceToken string = resourceToken + +output resourceNames object = { + // Hub network resources + hubBastionHost: contains(overrides, 'hubBastionHost') && !empty(overrides.hubBastionHost) ? overrides.hubBastionHost : defaultResourceNames.hubBastionHost + hubBastionPublicIpAddress: contains(overrides, 'hubBastionPublicIpAddress') && !empty(overrides.hubBastionPublicIpAddress) ? overrides.hubBastionPublicIpAddress : defaultResourceNames.hubBastionPublicIpAddress + hubBudget: contains(overrides, 'hubBudget') && !empty(overrides.hubBudget) ? overrides.hubBudget : defaultResourceNames.hubBudget + hubDDoSProtectionPlan: contains(overrides, 'hubDDoSProtectionPlan') && !empty(overrides.hubDDoSProtectionPlan) ? overrides.hubDDoSProtectionPlan : defaultResourceNames.hubDDoSProtectionPlan + hubFirewall: contains(overrides, 'hubFirewall') && !empty(overrides.hubFirewall) ? overrides.hubFirewall : defaultResourceNames.hubFirewall + hubFirewallPublicIpAddress: contains(overrides, 'hubFirewallPublicIpAddress') && !empty(overrides.hubFirewallPublicIpAddress) ? overrides.hubFirewallPublicIpAddress : defaultResourceNames.hubFirewallPublicIpAddress + hubJumpbox: contains(overrides, 'hubJumpbox') && !empty(overrides.hubJumpbox) ? overrides.hubJumpbox : defaultResourceNames.hubJumpbox + hubResourceGroup: contains(overrides, 'hubResourceGroup') && !empty(overrides.hubResourceGroup) ? overrides.hubResourceGroup : defaultResourceNames.hubResourceGroup + hubSubnetBastionHost: contains(overrides, 'hubSubnetBastionHost') && !empty(overrides.hubSubnetBastionHost) ? overrides.hubSubnetBastionHost : defaultResourceNames.hubSubnetBastionHost + hubSubnetFirewall: contains(overrides, 'hubSubnetFirewall') && !empty(overrides.hubSubnetFirewall) ? overrides.hubSubnetFirewall : defaultResourceNames.hubSubnetFirewall + hubSubnetJumpbox: contains(overrides, 'hubSubnetJumpbox') && !empty(overrides.hubSubnetJumpbox) ? overrides.hubSubnetJumpbox : defaultResourceNames.hubSubnetJumpbox + hubSubnetPrivateEndpoint: contains(overrides, 'hubSubnetPrivateEndpoint') && !empty(overrides.hubSubnetPrivateEndpoint) ? overrides.hubSubnetPrivateEndpoint : defaultResourceNames.hubSubnetPrivateEndpoint + hubVirtualNetwork: contains(overrides, 'hubVirtualNetwork') && !empty(overrides.hubVirtualNetwork) ? overrides.hubVirtualNetwork : defaultResourceNames.hubVirtualNetwork + + // Spoke network resources + spokeApiInboundSubnet: contains(overrides, 'spokeApiInboundSubnet') && !empty(overrides.spokeApiInboundSubnet) ? overrides.spokeApiInboundSubnet : defaultResourceNames.spokeApiInboundSubnet + spokeApiInboundNSG: contains(overrides, 'spokeApiInboundNSG') && !empty(overrides.spokeApiInboundNSG) ? overrides.spokeApiInboundNSG : defaultResourceNames.spokeApiInboundNSG + spokeApiOutboundSubnet: contains(overrides, 'spokeApiOutboundSubnet') && !empty(overrides.spokeApiOutboundSubnet) ? overrides.spokeApiOutboundSubnet : defaultResourceNames.spokeApiOutboundSubnet + spokeApiOutboundNSG: contains(overrides, 'spokeApiOutboundNSG') && !empty(overrides.spokeApiOutboundNSG) ? overrides.spokeApiOutboundNSG : defaultResourceNames.spokeApiOutboundNSG + spokeDevopsSubnet: contains(overrides, 'spokeDevopsSubnet') && !empty(overrides.spokeDevopsSubnet) ? overrides.spokeDevopsSubnet : defaultResourceNames.spokeDevopsSubnet + spokeDeploymentSubnet: contains(overrides, 'spokeDeploymentSubnet') && !empty(overrides.spokeDeploymentSubnet) ? overrides.spokeDeploymentSubnet : defaultResourceNames.spokeDeploymentSubnet + spokeResourceGroup: contains(overrides, 'spokeResourceGroup') && !empty(overrides.spokeResourceGroup) ? overrides.spokeResourceGroup : defaultResourceNames.spokeResourceGroup + spokeRouteTable: contains(overrides, 'spokeRouteTable') && !empty(overrides.spokeRouteTable) ? overrides.spokeRouteTable : defaultResourceNames.spokeRouteTable + spokePrivateEndpointNSG: contains(overrides, 'spokePrivateEndpointNSG') && !empty(overrides.spokePrivateEndpointNSG) ? overrides.spokePrivateEndpointNSG : defaultResourceNames.spokePrivateEndpointNSG + spokePrivateEndpointSubnet: contains(overrides, 'spokePrivateEndpointSubnet') && !empty(overrides.spokePrivateEndpointSubnet) ? overrides.spokePrivateEndpointSubnet : defaultResourceNames.spokePrivateEndpointSubnet + spokeVirtualNetwork: contains(overrides, 'spokeVirtualNetwork') && !empty(overrides.spokeVirtualNetwork) ? overrides.spokeVirtualNetwork : defaultResourceNames.spokeVirtualNetwork + spokeWebInboundSubnet: contains(overrides, 'spokeWebInboundSubnet') && !empty(overrides.spokeWebInboundSubnet) ? overrides.spokeWebInboundSubnet : defaultResourceNames.spokeWebInboundSubnet + spokeWebInboundNSG: contains(overrides, 'spokeWebInboundNSG') && !empty(overrides.spokeWebInboundNSG) ? overrides.spokeWebInboundNSG : defaultResourceNames.spokeWebInboundNSG + spokeWebOutboundSubnet: contains(overrides, 'spokeWebOutboundSubnet') && !empty(overrides.spokeWebOutboundSubnet) ? overrides.spokeWebOutboundSubnet : defaultResourceNames.spokeWebOutboundSubnet + spokeWebOutboundNSG: contains(overrides, 'spokeWebOutboundNSG') && !empty(overrides.spokeWebOutboundNSG) ? overrides.spokeWebOutboundNSG : defaultResourceNames.spokeWebOutboundNSG + + // Common services - may be in hub or application resource group + applicationInsights: contains(overrides, 'applicationInsights') && !empty(overrides.applicationInsights) ? overrides.applicationInsights : defaultResourceNames.applicationInsights + buildAgent: contains(overrides, 'buildAgent') && !empty(overrides.buildAgent) ? overrides.buildAgent : defaultResourceNames.buildAgent + logAnalyticsWorkspace: contains(overrides, 'logAnalyticsWorkspace') && !empty(overrides.logAnalyticsWorkspace) ? overrides.logAnalyticsWorkspace : defaultResourceNames.logAnalyticsWorkspace + + // Application resources + apiAppService: contains(overrides, 'apiAppService') && !empty(overrides.apiAppService) ? overrides.apiAppService : defaultResourceNames.apiAppService + apiAppServicePlan: contains(overrides, 'apiAppServicePlan') && !empty(overrides.apiAppServicePlan) ? overrides.apiAppServicePlan : defaultResourceNames.apiAppServicePlan + apiPrivateEndpoint: contains(overrides, 'apiPrivateEndpoint') && !empty(overrides.apiPrivateEndpoint) ? overrides.apiPrivateEndpoint : defaultResourceNames.apiPrivateEndpoint + appConfiguration: contains(overrides, 'appConfiguration') && !empty(overrides.appConfiguration) ? overrides.appConfiguration : defaultResourceNames.appConfiguration + appConfigurationPrivateEndpoint: contains(overrides, 'appConfigurationPrivateEndpoint') && !empty(overrides.appConfigurationPrivateEndpoint) ? overrides.appConfigurationPrivateEndpoint : defaultResourceNames.appConfigurationPrivateEndpoint + appManagedIdentity: contains(overrides, 'appManagedIdentity') && !empty(overrides.appManagedIdentity) ? overrides.appManagedIdentity : defaultResourceNames.appManagedIdentity + budget: contains(overrides, 'budget') && !empty(overrides.budget) ? overrides.budget : defaultResourceNames.budget + commonAppServicePlan: contains(overrides, 'commonAppServicePlan') && !empty(overrides.commonAppServicePlan) ? overrides.commonAppServicePlan : defaultResourceNames.commonAppServicePlan + frontDoorEndpoint: contains(overrides, 'frontDoorEndpoint') && !empty(overrides.frontDoorEndpoint) ? overrides.frontDoorEndpoint : defaultResourceNames.frontDoorEndpoint + frontDoorProfile: contains(overrides, 'frontDoorProfile') && !empty(overrides.frontDoorProfile) ? overrides.frontDoorProfile : defaultResourceNames.frontDoorProfile + keyVault: contains(overrides, 'keyVault') && !empty(overrides.keyVault) ? overrides.keyVault : defaultResourceNames.keyVault + keyVaultPrivateEndpoint: contains(overrides, 'keyVaultPrivateEndpoint') && !empty(overrides.keyVaultPrivateEndpoint) ? overrides.keyVaultPrivateEndpoint : defaultResourceNames.keyVaultPrivateEndpoint + ownerManagedIdentity: contains(overrides, 'ownerManagedIdentity') && !empty(overrides.ownerManagedIdentity) ? overrides.ownerManagedIdentity : defaultResourceNames.ownerManagedIdentity + redis: contains(overrides, 'redis') && !empty(overrides.redis) ? overrides.redis : defaultResourceNames.redis + redisPrivateEndpoint: contains(overrides, 'redisPrivateEndpoint') && !empty(overrides.redisPrivateEndpoint) ? overrides.redisPrivateEndpoint : defaultResourceNames.redisPrivateEndpoint + resourceGroup: contains(overrides, 'resourceGroup') && !empty(overrides.resourceGroup) ? overrides.resourceGroup : defaultResourceNames.resourceGroup + storageAccount: contains(overrides, 'storageAccount') && !empty(overrides.storageAccount) ? overrides.storageAccount : defaultResourceNames.storageAccount + storageAccountPrivateEndpoint: contains(overrides, 'storageAccountPrivateEndpoint') && !empty(overrides.storageAccountPrivateEndpoint) ? overrides.storageAccountPrivateEndpoint : defaultResourceNames.storageAccountPrivateEndpoint + storageAccountContainer: contains(overrides, 'storageAccountContainer') && !empty(overrides.storageAccountContainer) ? overrides.storageAccountContainer : defaultResourceNames.storageAccountContainer + sqlDatabase: contains(overrides, 'sqlDatabase') && !empty(overrides.sqlDatabase) ? overrides.sqlDatabase : defaultResourceNames.sqlDatabase + sqlDatabasePrivateEndpoint: contains(overrides, 'sqlDatabasePrivateEndpoint') && !empty(overrides.sqlDatabasePrivateEndpoint) ? overrides.sqlDatabasePrivateEndpoint : defaultResourceNames.sqlDatabasePrivateEndpoint + sqlServer: contains(overrides, 'sqlServer') && !empty(overrides.sqlServer) ? overrides.sqlServer : defaultResourceNames.sqlServer + sqlResourceGroup: contains(overrides, 'sqlResourceGroup') && !empty(overrides.sqlResourceGroup) ? overrides.sqlResourceGroup : defaultResourceNames.sqlResourceGroup + webAppFrontend: contains(overrides, 'webAppFrontend') && !empty(overrides.webAppFrontend) ? overrides.webAppFrontend : defaultResourceNames.webAppFrontend + webAppService: contains(overrides, 'webAppService') && !empty(overrides.webAppService) ? overrides.webAppService : defaultResourceNames.webAppService + webAppServicePlan: contains(overrides, 'webAppServicePlan') && !empty(overrides.webAppServicePlan) ? overrides.webAppServicePlan : defaultResourceNames.webAppServicePlan + webApplicationFirewall: contains(overrides, 'webApplicationFirewall') && !empty(overrides.webApplicationFirewall) ? overrides.webApplicationFirewall : defaultResourceNames.webApplicationFirewall + webAppFrontendPrivateEndpoint: contains(overrides, 'webAppFrontendPrivateEndpoint') && !empty(overrides.webAppFrontendPrivateEndpoint) ? overrides.webAppFrontendPrivateEndpoint : defaultResourceNames.webAppFrontendPrivateEndpoint + webAppServicePrivateEndpoint: contains(overrides, 'webAppServicePrivateEndpoint') && !empty(overrides.webAppServicePrivateEndpoint) ? overrides.webAppServicePrivateEndpoint : defaultResourceNames.webAppServicePrivateEndpoint +} diff --git a/infra/modules/peer-networks.bicep b/infra/modules/peer-networks.bicep new file mode 100644 index 00000000..034f6fd5 --- /dev/null +++ b/infra/modules/peer-networks.bicep @@ -0,0 +1,66 @@ +targetScope = 'subscription' + +/* +** Two-way Virtual Network Peering +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +@description('A type to describe a virtual network') +type VirtualNetworkDefinition = { + @description('The name of the virtual network') + name: string + + @description('The name of the resource group that contains the virtual network') + resourceGroupName: string +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The network definition for the hub network') +param hubNetwork VirtualNetworkDefinition + +@description('The network definition of the spoke network') +param spokeNetwork VirtualNetworkDefinition + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource hubVirtualNetwork 'Microsoft.Network/virtualNetworks@2020-06-01' existing = { + name: hubNetwork.name + scope: resourceGroup(hubNetwork.resourceGroupName) +} + +resource spokeVirtualNetwork 'Microsoft.Network/virtualNetworks@2020-06-01' existing = { + name: spokeNetwork.name + scope: resourceGroup(spokeNetwork.resourceGroupName) +} + +module peerSpokeToHub '../core/network/peer-virtual-network.bicep' = { + name: 'peer-${spokeNetwork.name}-to-${hubNetwork.name}-network' + scope: resourceGroup(spokeNetwork.resourceGroupName) + params: { + name: 'peerTo-${hubVirtualNetwork.name}' + virtualNetworkName: spokeVirtualNetwork.name + remoteVirtualNetworkId: hubVirtualNetwork.id + } +} + +module peerHubToSpoke '../core/network/peer-virtual-network.bicep' = { + name: 'peer-${hubNetwork.name}-to-${spokeNetwork.name}-network' + scope: resourceGroup(hubNetwork.resourceGroupName) + params: { + name: 'peerTo-${spokeVirtualNetwork.name}' + virtualNetworkName: hubVirtualNetwork.name + remoteVirtualNetworkId: spokeVirtualNetwork.id + } +} diff --git a/infra/modules/private-dns-zones.bicep b/infra/modules/private-dns-zones.bicep new file mode 100644 index 00000000..d720f169 --- /dev/null +++ b/infra/modules/private-dns-zones.bicep @@ -0,0 +1,123 @@ +targetScope = 'subscription' + +/* +** Private DNS Zones +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** The Hub Network contains these Private DNS Zones that provide dynamic +** DNS registration for private endpoints in all virtual networks +** associated with this deployment by virtualNetworkLinks. +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The deployment settings to use for this deployment.') +param deploymentSettings DeploymentSettings + +@description('The list of private DNS zones to create in this virtual network.') +param privateDnsZones array = [ + 'privatelink.vaultcore.azure.net' + 'privatelink${az.environment().suffixes.sqlServerHostname}' + 'privatelink.azurewebsites.net' + 'privatelink.redis.cache.windows.net' + 'privatelink.azconfig.io' + 'privatelink.blob.${environment().suffixes.storage}' +] + +@description('The hub resource group name.') +param hubResourceGroupName string + +@description('Specifies if DNS zone will be created, or if we are attaching to an existing one') +param createDnsZone bool = true + +@description('Array of custom objects describing vNet links of the DNS zone. Each object should contain vnetName, vnetId, registrationEnabled') +param virtualNetworkLinks array = [] + +// ======================================================================== +// VARIABLES +// ======================================================================== + +// The tags to apply to all resources in this workload +var moduleTags = union(deploymentSettings.tags, { + WorkloadName: 'NetworkHub' + OpsCommitment: 'Platform operations' + ServiceClass: deploymentSettings.isProduction ? 'Gold' : 'Dev' +}) + +// ======================================================================== +// AZURE Resources +// ======================================================================== + +resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' existing = { + name: hubResourceGroupName +} + +module createNewDnsZones '../core/network/private-dns-zone.bicep' = [ for dnsZoneName in createDnsZone ? privateDnsZones : []: { + name: 'create-new-dns-zone-${dnsZoneName}' + scope: resourceGroup + params: { + name: dnsZoneName + tags: moduleTags + virtualNetworkLinks: virtualNetworkLinks + } +}] + +module updateVnetLinkForDnsZones '../core/network/private-dns-zone-link.bicep' = [ for dnsZoneName in !createDnsZone ? privateDnsZones : []: { + name: createDnsZone ? 'hub-vnet-link-for-dns-${dnsZoneName}' : deploymentSettings.isPrimaryLocation ? 'spk-0-vnet-link-for-dns-${dnsZoneName}' : 'spk-1-link-for-dns-${dnsZoneName}' + scope: resourceGroup + params: { + name: dnsZoneName + virtualNetworkLinks: virtualNetworkLinks + } +}] + +output dns_resource_group_name string = resourceGroup.name diff --git a/infra/modules/resource-groups.bicep b/infra/modules/resource-groups.bicep new file mode 100644 index 00000000..b6fe2a7b --- /dev/null +++ b/infra/modules/resource-groups.bicep @@ -0,0 +1,109 @@ +targetScope = 'subscription' + +/* +** Resource Groups +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** Creates all the resource groups needed by this deployment +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The global deployment settings') +param deploymentSettings DeploymentSettings + +@description('The list of resource names to use') +param resourceNames object + +@description('If true, deploy a hub network') +param deployHubNetwork bool + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var createHub = deployHubNetwork && resourceNames.hubResourceGroup != resourceNames.resourceGroup && deploymentSettings.isPrimaryLocation +var createSpoke = deploymentSettings.isNetworkIsolated && resourceNames.spokeResourceGroup != resourceNames.resourceGroup + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource hubResourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' = if (createHub) { + name: resourceNames.hubResourceGroup + location: deploymentSettings.location + tags: union(deploymentSettings.tags, { + WorkloadName: 'NetworkHub' + OpsCommitment: 'Platform operations' + }) +} + +resource spokeResourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' = if (createSpoke) { + name: resourceNames.spokeResourceGroup + location: deploymentSettings.location + tags: union(deploymentSettings.tags, deploymentSettings.workloadTags) +} + +resource applicationResourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' = { + name: resourceNames.resourceGroup + location: deploymentSettings.location + tags: union(deploymentSettings.tags, deploymentSettings.workloadTags) +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + + +output application_resource_group_name string = applicationResourceGroup.name +output spoke_resource_group_name string = createSpoke ? spokeResourceGroup.name : 'spoke-not-created' +output hub_resource_group_name string = createHub ? hubResourceGroup.name : 'hub-not-created' diff --git a/infra/modules/shared-frontdoor.bicep b/infra/modules/shared-frontdoor.bicep new file mode 100644 index 00000000..31da1692 --- /dev/null +++ b/infra/modules/shared-frontdoor.bicep @@ -0,0 +1,157 @@ +targetScope = 'subscription' + +/* +** Azure Front Door resource for the front-end and API web apps +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// From: infra/types/FrontDoorSettings.bicep +@description('Type describing the settings for Azure Front Door.') +type FrontDoorSettings = { + @description('The name of the Azure Front Door endpoint') + endpointName: string + + @description('Front Door Id used for traffic restriction') + frontDoorId: string + + @description('The hostname that can be used to access Azure Front Door content.') + hostname: string + + @description('The profile name that is used for configuring Front Door routes.') + profileName: string +} + + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The deployment settings to use for this deployment.') +param deploymentSettings DeploymentSettings + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The resource names for the resources to be created.') +param resourceNames object + +/* +** Dependencies +*/ + +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +// ======================================================================== +// VARIABLES +// ======================================================================== + +// The tags to apply to all resources in this workload +var moduleTags = union(deploymentSettings.tags, deploymentSettings.workloadTags) + +// ======================================================================== +// EXISTING RESOURCES +// ======================================================================== + +resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' existing = { + name: resourceNames.resourceGroup +} + +// ======================================================================== +// NEW RESOURCES +// ======================================================================== + +/* +** Azure Front Door with Web Application Firewall +*/ +module frontDoor '../core/security/front-door-with-waf.bicep' = { + name: 'application-front-door-with-waf' + scope: resourceGroup + params: { + frontDoorEndpointName: resourceNames.frontDoorEndpoint + frontDoorProfileName: resourceNames.frontDoorProfile + webApplicationFirewallName: resourceNames.webApplicationFirewall + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Service settings + diagnosticSettings: diagnosticSettings + managedRules: deploymentSettings.isProduction ? [ + { name: 'Microsoft_DefaultRuleSet', version: '2.1' } + { name: 'Microsoft_BotManagerRuleSet', version: '1.0' } + ] : [] + sku: deploymentSettings.isProduction || deploymentSettings.isNetworkIsolated ? 'Premium' : 'Standard' + } +} + +output settings FrontDoorSettings = { + endpointName: frontDoor.outputs.endpoint_name + frontDoorId: frontDoor.outputs.front_door_id + hostname: frontDoor.outputs.hostname + profileName: frontDoor.outputs.profile_name +} diff --git a/infra/modules/spoke-network.bicep b/infra/modules/spoke-network.bicep new file mode 100644 index 00000000..740ef0e6 --- /dev/null +++ b/infra/modules/spoke-network.bicep @@ -0,0 +1,393 @@ +targetScope = 'subscription' + +/* +** Spoke Network Infrastructure +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** +** The Spoke Network consists of a virtual network that hosts resources that +** are associated with the web app workload (e.g. private endpoints). +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The deployment settings to use for this deployment.') +param deploymentSettings DeploymentSettings + +@description('The diagnostic settings to use for logging and metrics.') +param diagnosticSettings DiagnosticSettings + +@description('The resource names for the resources to be created.') +param resourceNames object + +/* +** Dependencies +*/ +@description('The ID of the Log Analytics workspace to use for diagnostics and logging.') +param logAnalyticsWorkspaceId string = '' + +@description('If set, the ID of the table holding the outbound route to the firewall in the hub network') +param firewallInternalIpAddress string = '' + +/* +** Settings +*/ + +@description('The CIDR block to use for the address prefix of this virtual network.') +param addressPrefix string = '10.0.16.0/20' + + + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var enableFirewall = !empty(firewallInternalIpAddress) + +// The tags to apply to all resources in this workload +var moduleTags = union(deploymentSettings.tags, deploymentSettings.workloadTags) + +// The subnet prefixes for the individual subnets inside the virtual network +var subnetPrefixes = [ for i in range(0, 16): cidrSubnet(addressPrefix, 26, i)] + +// When creating the virtual network, we need to set up a service delegation for app services. +var appServiceDelegation = [ + { + name: 'ServiceDelegation' + properties: { + serviceName: 'Microsoft.Web/serverFarms' + } + } +] + +// Network security group rules +var allowHttpsInbound = { + name: 'Allow-HTTPS-Inbound' + properties: { + access: 'Allow' + description: 'Allow HTTPS inbound traffic' + destinationAddressPrefix: '*' + destinationPortRange: '443' + direction: 'Inbound' + priority: 100 + protocol: 'Tcp' + sourceAddressPrefix: '*' + sourcePortRange: '*' + } +} + +var allowSqlInbound = { + name: 'Allow-SQL-Inbound' + properties: { + access: 'Allow' + description: 'Allow SQL inbound traffic' + destinationAddressPrefix: '*' + destinationPortRange: '1433' + direction: 'Inbound' + priority: 110 + protocol: 'Tcp' + sourceAddressPrefix: '*' + sourcePortRange: '*' + } +} + +var denyAllInbound = { + name: 'Deny-All-Inbound' + properties: { + access: 'Deny' + description: 'Deny all inbound traffic' + destinationAddressPrefix: '*' + destinationPortRange: '*' + direction: 'Inbound' + priority: 1000 + protocol: 'Tcp' + sourceAddressPrefix: '*' + sourcePortRange: '*' + } +} + +// Sets up the route table when there is one specified. +var routeTableSettings = enableFirewall ? { + routeTable: { id: routeTable.outputs.id } +} : {} + + +// ======================================================================== +// AZURE MODULES +// ======================================================================== + +resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' existing = { + name: resourceNames.spokeResourceGroup +} + +module apiInboundNSG '../core/network/network-security-group.bicep' = { + name: 'spoke-api-inbound-nsg-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.spokeApiInboundNSG + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + diagnosticSettings: diagnosticSettings + securityRules: [ + allowHttpsInbound + denyAllInbound + ] + } +} + +module apiOutboundNSG '../core/network/network-security-group.bicep' = { + name: 'spoke-api-outbound-nsg-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.spokeApiOutboundNSG + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + diagnosticSettings: diagnosticSettings + securityRules: [ + denyAllInbound + ] + } +} + +module privateEndpointNSG '../core/network/network-security-group.bicep' = { + name: 'spoke-pep-nsg-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.spokePrivateEndpointNSG + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + diagnosticSettings: diagnosticSettings + securityRules: [ + allowHttpsInbound + allowSqlInbound + denyAllInbound + ] + } +} + +module webInboundNSG '../core/network/network-security-group.bicep' = { + name: 'spoke-web-inbound-nsg-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.spokeWebInboundNSG + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + diagnosticSettings: diagnosticSettings + securityRules: [ + allowHttpsInbound + denyAllInbound + ] + } +} + +module webOutboundNSG '../core/network/network-security-group.bicep' = { + name: 'spoke-web-outbound-nsg-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.spokeWebOutboundNSG + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + diagnosticSettings: diagnosticSettings + securityRules: [ + denyAllInbound + ] + } +} + +module virtualNetwork '../core/network/virtual-network.bicep' = { + name: 'spoke-virtual-network-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.spokeVirtualNetwork + location: deploymentSettings.location + tags: moduleTags + + // Dependencies + logAnalyticsWorkspaceId: logAnalyticsWorkspaceId + + // Settings + addressPrefix: addressPrefix + diagnosticSettings: diagnosticSettings + subnets: [ + { + name: resourceNames.spokePrivateEndpointSubnet + properties: { + addressPrefix: subnetPrefixes[0] + networkSecurityGroup: { id: privateEndpointNSG.outputs.id } + privateEndpointNetworkPolicies: 'Disabled' + } + } + { + name: resourceNames.spokeApiInboundSubnet + properties: { + addressPrefix: subnetPrefixes[1] + networkSecurityGroup: { id: apiInboundNSG.outputs.id } + privateEndpointNetworkPolicies: 'Disabled' + } + } + { + name: resourceNames.spokeApiOutboundSubnet + properties: union({ + addressPrefix: subnetPrefixes[2] + delegations: appServiceDelegation + networkSecurityGroup: { id: apiOutboundNSG.outputs.id } + privateEndpointNetworkPolicies: 'Enabled' + }, routeTableSettings) + } + { + name: resourceNames.spokeWebInboundSubnet + properties: { + addressPrefix: subnetPrefixes[3] + networkSecurityGroup: { id: webInboundNSG.outputs.id } + privateEndpointNetworkPolicies: 'Disabled' + } + } + { + name: resourceNames.spokeWebOutboundSubnet + properties: union({ + addressPrefix: subnetPrefixes[4] + delegations: appServiceDelegation + networkSecurityGroup: { id: webOutboundNSG.outputs.id } + privateEndpointNetworkPolicies: 'Enabled' + }, routeTableSettings) + }] + } +} + +module routeTable '../core/network/route-table.bicep' = if (enableFirewall) { + name: 'spoke-route-table-${deploymentSettings.resourceToken}' + scope: resourceGroup + params: { + name: resourceNames.spokeRouteTable + location: deploymentSettings.location + tags: moduleTags + + // Settings + routes: [ + { + name: 'defaultEgress' + properties: { + addressPrefix: '0.0.0.0/0' + nextHopIpAddress: firewallInternalIpAddress + nextHopType: 'VirtualAppliance' + } + } + ] + } +} + + +var virtualNetworkLinks = [ + { + vnetName: virtualNetwork.outputs.name + vnetId: virtualNetwork.outputs.id + registrationEnabled: false + } +] + +module privateDnsZones './private-dns-zones.bicep' = { + name: 'spoke-prvt-dns-zone-deploy-${deploymentSettings.resourceToken}' + params:{ + createDnsZone: false //we are reusing the existing DNS zone and linking a vnet + deploymentSettings: deploymentSettings + hubResourceGroupName: resourceNames.hubResourceGroup + virtualNetworkLinks: virtualNetworkLinks + } +} + +// ======================================================================== +// OUTPUTS +// ======================================================================== + +output virtual_network_id string = virtualNetwork.outputs.id +output virtual_network_name string = virtualNetwork.outputs.name +output subnets object = virtualNetwork.outputs.subnets diff --git a/infra/modules/telemetry.bicep b/infra/modules/telemetry.bicep new file mode 100644 index 00000000..dc870c49 --- /dev/null +++ b/infra/modules/telemetry.bicep @@ -0,0 +1,84 @@ +targetScope = 'subscription' + +/* +** Enterprise App Patterns Telemetry +** Copyright (C) 2023 Microsoft, Inc. +** All Rights Reserved +** +*************************************************************************** +** Review the enableTelemetry parameter to understand telemetry collection +*/ + +// ======================================================================== +// USER-DEFINED TYPES +// ======================================================================== + +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} + +// ======================================================================== +// PARAMETERS +// ======================================================================== + +@description('The deployment settings to use for this deployment.') +param deploymentSettings DeploymentSettings + +// ======================================================================== +// VARIABLES +// ======================================================================== + +var telemetryId = '063f9e42-c824-4573-8a47-5f6112612fe2' + +// ======================================================================== +// AZURE RESOURCES +// ======================================================================== + +resource telemetrySubscription 'Microsoft.Resources/deployments@2021-04-01' = { + name: '${telemetryId}-${deploymentSettings.location}' + location: deploymentSettings.location + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#' + contentVersion: '1.0.0.0' + resources: {} + } + } +} diff --git a/infra/naming.overrides.jsonc b/infra/naming.overrides.jsonc new file mode 100644 index 00000000..a46d42b0 --- /dev/null +++ b/infra/naming.overrides.jsonc @@ -0,0 +1,77 @@ +{ + /* + ** Use this file to override any of the names that are chosen for resources. + */ + + // Hub network resources + // "hubBastionHost": "", + // "hubBastionPublicIpAddress": "", + // "hubBudget": "", + // "hubDDoSProtectionPlan": "", + // "hubFirewall": "", + // "hubFirewallPublicIpAddress": "", + // "hubJumpbox": "", + // "hubResourceGroup": "", + // "hubSubnetBastionHost": "", + // "hubSubnetFirewall": "", + // "hubSubnetJumpbox": "", + // "hubSubnetPrivateEndpoint": "", + // "hubVirtualNetwork": "", + + // Spoke network resources + // "spokeApiInboundSubnet": "", + // "spokeApiInboundNSG": "", + // "spokeApiOutboundSubnet": "", + // "spokeApiOutboundNSG": "", + // "spokeDevopsSubnet": "", + // "spokeDeploymentSubnet": "", + // "spokeResourceGroup": "", + // "spokeRouteTableRouteTable": "", + // "spokePrivateEndpointNSG": "", + // "spokePrivateEndpointSubnet": "", + // "spokeVirtualNetwork": "", + // "spokeWebInboundSubnet": "", + // "spokeWebInboundNSG": "", + // "spokeWebOutboundSubnet": "", + // "spokeWebOutboundNSG": "", + + // Common services - may be in hub or application resource group + // "applicationInsights": "", + // "buildAgent": "", + // "keyVault": "", + // "keyVaultPrivateEndpoint": "", + // "logAnalyticsWorkspace": "", + + // Application resources + // "apiAppService": "", + // "apiAppServicePlan": "", + // "apiPrivateEndpoint": "", + // "appConfiguration": "", + // "appConfigurationPrivateEndpoint": "", + // "appManagedIdentity": "", + // "budget": "", + // "commonAppServicePlan": "", + // "frontDoorEndpoint": "", + // "frontDoorProfile": "", + // "ownerManagedIdentity": "", + // "redis": "", + // "redisPrivateEndpoint": "", + // "resourceGroup": "", + // "storageAccount": "", + // "storageAccountContainer": "", + // "sqlDatabase": "", + // "sqlDatabasePrivateEndpoint": "", + // "sqlServer": "", + // "sqlResourceGroup": "", + // "webAppFrontend": "", + // "webAppService": "", + // "webAppServicePlan": "", + // "webApplicationFirewall": "", + // "webAppFrontendPrivateEndpoint": "", + // "webwebAppServicePrivateEndpoint": "", + + /* + ** End of file - don't remove the next line as it signifies the end. + */ + "__end__": "" +} \ No newline at end of file diff --git a/infra/resources.bicep b/infra/resources.bicep deleted file mode 100644 index 214a1de8..00000000 --- a/infra/resources.bicep +++ /dev/null @@ -1,794 +0,0 @@ -@description('Enables the template to choose different SKU by environment') -param isProd bool - -@description('The id for the user-assigned managed identity that runs deploymentScripts') -param devOpsManagedIdentityId string - -@secure() -@minLength(1) -@description('Specifies a password that will be used to secure the Azure SQL Database') -param azureSqlPassword string - -@minLength(1) -@description('Primary location for all resources. Should specify an Azure region. e.g. `eastus2` ') -param location string - -@minLength(1) -@description('The user running the deployment will be given access to the deployed resources such as Key Vault and App Config svc') -param principalId string - -@description('A generated identifier used to create unique resources') -param resourceToken string - -// Adding RBAC permissions via the script enables the sample to work around a permission propagation issue outlined in the issue -// https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/138 -@minLength(1) -@description('When the deployment is executed by a user we give the principal RBAC access to key vault') -param principalType string - -@description('An object collection that contains annotations to describe the deployed azure resources to improve operational visibility') -param tags object - -/* -The following Azure AD parameters enable the code to reuse an existing app registration -https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/160 -These values are created by the createAppRegistration.ps1 script found in deploy-solution.md -These values are not optional when the code runs, but they are optional at deployment time -as you may choose to re-use an existing app registration or choose to create a new one. -*/ -@description('A scope used by the front-end public web app to get authorized access to the public web api. Looks similar to api://33333333-bbbb-4444-cccc-555555555555/relecloud.api') -param azureAdApiScopeFrontEnd string - -@description('A unique identifier of the API web app') -param azureAdClientIdForBackEnd string - -@description('A unique identifier of the front-end web app') -param azureAdClientIdForFrontEnd string - -@secure() -@description('A secret generated by Azure AD so that the web app can establish trust with Azure AD') -param azureAdClientSecretForFrontEnd string - -@description('A unique identifier of the Azure AD tenant') -param azureAdTenantId string - -module setUpAzureAdSettings 'azureAdSettings.bicep' = { - name: 'setUpAzureAdSettings' - params: { - keyVaultName: keyVault.name - appConfigurationServiceName: appConfigService.name - azureAdApiScopeFrontEnd: azureAdApiScopeFrontEnd - azureAdClientIdForBackEnd: azureAdClientIdForBackEnd - azureAdClientIdForFrontEnd: azureAdClientIdForFrontEnd - azureAdClientSecretForFrontEnd: azureAdClientSecretForFrontEnd - azureAdTenantId: azureAdTenantId - } -} - -@description('A user-assigned managed identity that is used by the App Service app') -resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { - name: 'web-${resourceToken}-identity' - location: location - tags: tags -} - -@description('Built in \'Data Reader\' role ID: https://learn.microsoft.com/azure/role-based-access-control/built-in-roles') -var appConfigurationRoleDefinitionId = '516239f1-63e1-4d78-a4de-a74fb236a071' - -@description('Grant the \'Data Reader\' role to the user-assigned managed identity, at the scope of the resource group.') -resource appConfigRoleAssignmentForWebApps 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = { - name: guid(appConfigurationRoleDefinitionId, appConfigService.id, managedIdentity.name, resourceToken) - scope: resourceGroup() - properties: { - principalType: 'ServicePrincipal' - roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', appConfigurationRoleDefinitionId) - principalId: managedIdentity.properties.principalId - description: 'Grant the "Data Reader" role to the user-assigned managed identity so it can access the azure app configuration service.' - } -} - -@description('Grant the \'Data Reader\' role to the principal, at the scope of the resource group.') -resource appConfigRoleAssignmentForPrincipal 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = if (principalType == 'user') { - name: guid(appConfigurationRoleDefinitionId, appConfigService.id, principalId, resourceToken) - scope: resourceGroup() - properties: { - principalType: 'User' - roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', appConfigurationRoleDefinitionId) - principalId: principalId - description: 'Grant the "Data Reader" role to the principal identity so it can access the azure app configuration service.' - } -} - -@description('Built in \'Key Secrets User\' role ID: https://learn.microsoft.com/azure/role-based-access-control/built-in-roles') -var keyVaultSecretsUserRoleDefinitionId = '4633458b-17de-408a-b874-0445c86b69e6' - -@description('Grant the \'Data Reader\' role to the principal, at the scope of the resource group.') -resource keyVaultRoleAssignmentForWebApp 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = { - name: guid(keyVaultSecretsUserRoleDefinitionId, appConfigService.id, principalId, resourceToken) - scope: resourceGroup() - properties: { - principalType: 'ServicePrincipal' - roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', keyVaultSecretsUserRoleDefinitionId) - principalId: managedIdentity.properties.principalId - description: 'Grant the "Key Secrets User" role to the principal identity so it can manage the key vault service.' - } -} - -@description('Built in \'Key Vault Administrator\' role ID: https://learn.microsoft.com/azure/role-based-access-control/built-in-roles') -var keyVaultAdminRoleDefinitionId = '00482a5a-887f-4fb3-b363-3b7fe8e74483' - -@description('Grant the \'Data Reader\' role to the principal, at the scope of the resource group.') -resource keyVaultRoleAssignmentForPrincipal 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = if (principalType == 'user') { - name: guid(keyVaultAdminRoleDefinitionId, appConfigService.id, principalId, resourceToken) - scope: resourceGroup() - properties: { - principalType: 'User' - roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', keyVaultAdminRoleDefinitionId) - principalId: principalId - description: 'Grant the "Key Vault Administrator" role to the principal identity so it can manage the key vault service.' - } -} - -// for non-prod scenarios we allow public network connections for the local dev experience -var keyVaultPublicNetworkAccess = isProd ? 'disabled' : 'enabled' - -resource keyVault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = { - name: 'rc-${resourceToken}-kv' // keyvault name cannot start with a number - location: location - tags: tags - properties: { - publicNetworkAccess: keyVaultPublicNetworkAccess - networkAcls:{ - defaultAction: 'Allow' - bypass: 'AzureServices' - } - enableRbacAuthorization: true - sku: { - family: 'A' - name: 'standard' - } - tenantId: subscription().tenantId - } -} - -resource appConfigService 'Microsoft.AppConfiguration/configurationStores@2022-05-01' = { - name: '${resourceToken}-appconfig' - location: location - tags: tags - sku: { - name: 'Standard' - } - properties:{ - // This network mode supports making the sample easier to get started - // It uses public network access because the values are set by the Azure Resource Provider - // by this declarative bicep file. To disable public network access would require - // access to the vnet and connecting over the private endpoint - // https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/230 - publicNetworkAccess:'Enabled' - } - - resource baseApiUrlAppConfigSetting 'keyValues@2022-05-01' = { - name: 'App:RelecloudApi:BaseUri' - properties: { - value: 'https://${api.properties.defaultHostName}' - } - } - - resource sqlConnStrAppConfigSetting 'keyValues@2022-05-01' = { - name: 'App:SqlDatabase:ConnectionString' - properties: { - value: 'Server=tcp:${sqlSetup.outputs.sqlServerFqdn},1433;Initial Catalog=${sqlSetup.outputs.sqlCatalogName};Authentication=Active Directory Default' - } - } - - resource redisConnAppConfigKvRef 'keyValues@2022-05-01' = { - name: 'App:RedisCache:ConnectionString' - properties: { - value: string({ - uri: '${keyVault.properties.vaultUri}secrets/${redisSetup.outputs.keyVaultRedisConnStrName}' - }) - contentType: 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' - } - } - - resource storageAccountBlobUrlAppConfigSetting 'keyValues@2022-05-01' = { - name: 'App:StorageAccount:Url' - properties: { - value: storageSetup.outputs.storageAccocuntBlobURL - } - } - - resource storageAccountBlobContainerAppConfigSetting 'keyValues@2022-05-01' = { - name: 'App:StorageAccount:Container' - properties: { - value: storageSetup.outputs.containerName - } - } -} - -// provides additional diagnostic information from aspNet when deploying non-prod environments -var aspNetCoreEnvironment = isProd ? 'Production' : 'Development' - -resource web 'Microsoft.Web/sites@2021-03-01' = { - name: 'web-${resourceToken}-web-app' - location: location - tags: union(tags, { - 'azd-service-name': 'web' - }) - properties: { - serverFarmId: webAppServicePlan.id - clientAffinityEnabled: false - siteConfig: { - alwaysOn: true - ftpsState: 'Disabled' - // Set to true to route all outbound app traffic into virtual network (see https://learn.microsoft.com/azure/app-service/overview-vnet-integration#application-routing) - vnetRouteAllEnabled: false - } - httpsOnly: true - - // Enable regional virtual network integration. - virtualNetworkSubnetId: vnet::webSubnet.id - } - - identity: { - type: 'UserAssigned' - userAssignedIdentities: { - '${managedIdentity.id}': {} - } - } - - resource appSettings 'config' = { - name: 'appsettings' - properties: { - ASPNETCORE_ENVIRONMENT: aspNetCoreEnvironment - AZURE_CLIENT_ID: managedIdentity.properties.clientId - APPLICATIONINSIGHTS_CONNECTION_STRING: webApplicationInsightsResources.outputs.APPLICATIONINSIGHTS_CONNECTION_STRING - 'App:AppConfig:Uri': appConfigService.properties.endpoint - SCM_DO_BUILD_DURING_DEPLOYMENT: 'false' - // App Insights settings - // https://learn.microsoft.com/azure/azure-monitor/app/azure-web-apps-net#application-settings-definitions - APPINSIGHTS_INSTRUMENTATIONKEY: webApplicationInsightsResources.outputs.APPLICATIONINSIGHTS_INSTRUMENTATION_KEY - ApplicationInsightsAgent_EXTENSION_VERSION: '~2' - XDT_MicrosoftApplicationInsights_Mode: 'recommended' - InstrumentationEngine_EXTENSION_VERSION: '~1' - XDT_MicrosoftApplicationInsights_BaseExtensions: '~1' - } - } - - resource logs 'config' = { - name: 'logs' - properties: { - applicationLogs: { - fileSystem: { - level: 'Verbose' - } - } - detailedErrorMessages: { - enabled: true - } - failedRequestsTracing: { - enabled: true - } - httpLogs: { - fileSystem: { - enabled: true - retentionInDays: 1 - retentionInMb: 35 - } - } - } - dependsOn: [ - appSettings - ] - } -} - -resource api 'Microsoft.Web/sites@2021-01-15' = { - name: 'api-${resourceToken}-web-app' - location: location - tags: union(tags, { - 'azd-service-name': 'api' - }) - properties: { - serverFarmId: apiAppServicePlan.id - clientAffinityEnabled: false - siteConfig: { - alwaysOn: true - ftpsState: 'Disabled' - - // Set to true to route all outbound app traffic into virtual network (see https://learn.microsoft.com/azure/app-service/overview-vnet-integration#application-routing) - vnetRouteAllEnabled: false - } - httpsOnly: true - - // Enable regional virtual network integration. - virtualNetworkSubnetId: vnet::apiSubnet.id - } - - identity: { - type: 'UserAssigned' - userAssignedIdentities: { - '${managedIdentity.id}': {} - } - } - - resource appSettings 'config' = { - name: 'appsettings' - properties: { - ASPNETCORE_ENVIRONMENT: aspNetCoreEnvironment - AZURE_CLIENT_ID: managedIdentity.properties.clientId - APPLICATIONINSIGHTS_CONNECTION_STRING: webApplicationInsightsResources.outputs.APPLICATIONINSIGHTS_CONNECTION_STRING - 'Api:AppConfig:Uri': appConfigService.properties.endpoint - SCM_DO_BUILD_DURING_DEPLOYMENT: 'false' - // App Insights settings - // https://learn.microsoft.com/azure/azure-monitor/app/azure-web-apps-net#application-settings-definitions - APPINSIGHTS_INSTRUMENTATIONKEY: webApplicationInsightsResources.outputs.APPLICATIONINSIGHTS_INSTRUMENTATION_KEY - ApplicationInsightsAgent_EXTENSION_VERSION: '~2' - XDT_MicrosoftApplicationInsights_Mode: 'recommended' - InstrumentationEngine_EXTENSION_VERSION: '~1' - XDT_MicrosoftApplicationInsights_BaseExtensions: '~1' - } - } - - resource logs 'config' = { - name: 'logs' - properties: { - applicationLogs: { - fileSystem: { - level: 'Verbose' - } - } - detailedErrorMessages: { - enabled: true - } - failedRequestsTracing: { - enabled: true - } - httpLogs: { - fileSystem: { - enabled: true - retentionInDays: 1 - retentionInMb: 35 - } - } - } - dependsOn: [ - appSettings - ] - } -} - -var appServicePlanSku = (isProd) ? 'P1v2' : 'B1' - -resource webAppServicePlan 'Microsoft.Web/serverfarms@2021-03-01' = { - name: '${resourceToken}-web-plan' - location: location - tags: tags - sku: { - name: appServicePlanSku - } - properties: { - - } - dependsOn: [ - // found that Redis network connectivity was not available if web app is deployed first (until restart) - // delaying deployment allows us to skip the restart - redisSetup - ] -} - -module webServicePlanAutoScale './appSvcAutoScaleSettings.bicep' = { - name: 'deploy-${webAppServicePlan.name}-scalesettings' - params: { - appServicePlanName: webAppServicePlan.name - location: location - isProd: isProd - tags: tags - } -} - -resource apiAppServicePlan 'Microsoft.Web/serverfarms@2021-03-01' = { - name: '${resourceToken}-api-plan' - location: location - tags: tags - sku: { - name: appServicePlanSku - } - properties: { - - } - dependsOn: [ - // found that Redis network connectivity was not available if web app is deployed first (until restart) - // delaying deployment allows us to skip the restart - redisSetup - ] -} - -module apiServicePlanAutoScale './appSvcAutoScaleSettings.bicep' = { - name: 'deploy-${apiAppServicePlan.name}-scalesettings' - params: { - appServicePlanName: apiAppServicePlan.name - location: location - isProd: isProd - tags: tags - } -} - -resource webLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-03-01-preview' = { - name: 'web-${resourceToken}-log' - location: location - tags: tags - properties: { - retentionInDays: 30 - sku: { - name: 'PerGB2018' - } - } -} - -module webApplicationInsightsResources './applicationinsights.bicep' = { - name: 'web-${resourceToken}-app-insights' - params: { - resourceToken: resourceToken - location: location - tags: tags - workspaceId: webLogAnalyticsWorkspace.id - } -} - -module sqlSetup 'azureSqlDatabase.bicep' = { - name: 'sqlSetup' - scope: resourceGroup() - params: { - devOpsManagedIdentityId: devOpsManagedIdentityId - isProd: isProd - location: location - managedIdentity: { - name: managedIdentity.name - id: managedIdentity.id - properties: { - clientId: managedIdentity.properties.clientId - principalId: managedIdentity.properties.principalId - tenantId: managedIdentity.properties.tenantId - } - } - resourceToken: resourceToken - sqlAdministratorLogin: 'sqladmin${resourceToken}' - sqlAdministratorPassword: azureSqlPassword - tags: tags - } - dependsOn: [ - vnet - ] -} - -var privateEndpointNameForRedis = 'privateEndpointForRedis' -module redisSetup 'azureRedisCache.bicep' = { - name: 'redisSetup' - scope: resourceGroup() - params: { - devOpsManagedIdentityId: devOpsManagedIdentityId - isProd: isProd - keyVaultName: keyVault.name - location: location - resourceToken: resourceToken - tags: tags - privateEndpointNameForRedis: privateEndpointNameForRedis - privateEndpointSubnetName: privateEndpointSubnetName - privateEndpointVnetName: vnet.name - } -} - -@description('Built in \'Storage Blob Data Owner\' role ID: https://learn.microsoft.com/azure/role-based-access-control/built-in-roles') -// Allows read and write access to storage blob data -var storageBlobDataOwnerRoleDefinitionId = 'b7e6dc6d-f1e8-4753-8033-0f276bb0955b' - -var storageAccountRoleAssignments =[ - { - principalId: managedIdentity.properties.principalId - roleDefinitionId: storageBlobDataOwnerRoleDefinitionId - description: 'Give the application read and write permission to storage account.' - principalType:'ServicePrincipal' - } -] - -module storageSetup 'azureStorage.bicep' = { - name: 'storageSetup' - scope: resourceGroup() - params: { - isProd: isProd - location: location - resourceToken: resourceToken - roleAssignmentsList: storageAccountRoleAssignments - tags: tags - privateLinkSubnetId: vnet::privateEndpointSubnet.id - privateDnsZoneId: privateDnsZoneForStorage.id - } -} - -resource storageRoleAssignmentForPrincipal 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = if (principalType == 'user') { - name: guid(storageBlobDataOwnerRoleDefinitionId, storageSetup.name, principalId, resourceToken) - scope: resourceGroup() - properties: { - principalType: 'User' - roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', storageBlobDataOwnerRoleDefinitionId) - principalId: principalId - description: 'Grant the "Storage Blob Data Owner" role to the developer so they can write to Azure storage while doing local development.' - } -} - -var privateEndpointSubnetName = 'subnetPrivateEndpoints' -var subnetApiAppService = 'subnetApiAppService' -var subnetWebAppService = 'subnetWebAppService' - -resource vnet 'Microsoft.Network/virtualNetworks@2020-07-01' = { - name: 'rc-${resourceToken}-vnet' - location: location - tags: tags - properties: { - addressSpace: { - addressPrefixes: [ - '10.0.0.0/16' - ] - } - subnets: [ - { - name: privateEndpointSubnetName - properties: { - addressPrefix: '10.0.0.0/24' - privateEndpointNetworkPolicies: 'Disabled' - } - } - { - name: subnetWebAppService - properties: { - addressPrefix: '10.0.1.0/24' - delegations: [ - { - name: 'delegation' - properties: { - serviceName: 'Microsoft.Web/serverfarms' - } - } - ] - } - } - { - name: subnetApiAppService - properties: { - addressPrefix: '10.0.2.0/24' - delegations: [ - { - name: 'delegation' - properties: { - serviceName: 'Microsoft.Web/serverfarms' - } - } - ] - } - } - ] - } - - resource apiSubnet 'subnets' existing = { - name: subnetApiAppService - } - - resource webSubnet 'subnets' existing = { - name: subnetWebAppService - } - - resource privateEndpointSubnet 'subnets' existing = { - name: privateEndpointSubnetName - } -} - -resource privateEndpointForSql 'Microsoft.Network/privateEndpoints@2020-07-01' = { - name: 'privateEndpointForSql' - location: location - tags: tags - properties: { - subnet: { - id: resourceId('Microsoft.Network/virtualNetworks/subnets', vnet.name, privateEndpointSubnetName) - } - privateLinkServiceConnections: [ - { - name: '${sqlSetup.outputs.sqlServerName}/${sqlSetup.outputs.sqlDatabaseName}' - properties: { - privateLinkServiceId: sqlSetup.outputs.sqlServerId - groupIds: [ - 'sqlServer' - ] - } - } - ] - } -} - -resource privateDnsZoneNameForSql 'Microsoft.Network/privateDnsZones@2020-06-01' = { - name: 'privatelink${environment().suffixes.sqlServerHostname}' - location: 'global' - tags: tags -} - -resource privateDnsZoneNameForSql_link 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = { - parent: privateDnsZoneNameForSql - name: '${privateDnsZoneNameForSql.name}-link' - location: 'global' - tags: tags - properties: { - registrationEnabled: false - virtualNetwork: { - id: vnet.id - } - } -} - -resource sqlPvtEndpointDnsGroupName 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2020-07-01' = { - name: '${privateEndpointForSql.name}/mydnsgroupname' - properties: { - privateDnsZoneConfigs: [ - { - name: 'config1' - properties: { - privateDnsZoneId: privateDnsZoneNameForSql.id - } - } - ] - } -} - -resource redisPvtEndpointDnsGroupName 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2020-07-01' = { - name: '${privateEndpointNameForRedis}/mydnsgroupname' - properties: { - privateDnsZoneConfigs: [ - { - name: 'config1' - properties: { - privateDnsZoneId: redisSetup.outputs.privateDnsZoneId - } - } - ] - } -} - -// private link for Key vault - -resource privateDnsZoneNameForKv 'Microsoft.Network/privateDnsZones@2020-06-01' = { - name: 'privatelink.vaultcore.azure.net' - location: 'global' - tags: tags -} - -resource privateDnsZoneNameForKv_link 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = { - parent: privateDnsZoneNameForKv - name: '${privateDnsZoneNameForKv.name}-link' - location: 'global' - tags: tags - properties: { - registrationEnabled: false - virtualNetwork: { - id: vnet.id - } - } -} - -resource pvtEndpointDnsGroupNameForKv 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2020-07-01' = { - name: '${privateEndpointForKv.name}/mydnsgroupname' - properties: { - privateDnsZoneConfigs: [ - { - name: 'config1' - properties: { - privateDnsZoneId: privateDnsZoneNameForKv.id - } - } - ] - } -} - -resource privateEndpointForKv 'Microsoft.Network/privateEndpoints@2020-07-01' = { - name: 'privateEndpointForKv' - location: location - tags: tags - properties: { - subnet: { - id: resourceId('Microsoft.Network/virtualNetworks/subnets', vnet.name, privateEndpointSubnetName) - } - privateLinkServiceConnections: [ - { - name: keyVault.name - properties: { - privateLinkServiceId: keyVault.id - groupIds: [ - 'vault' - ] - } - } - ] - } -} - -resource privateDnsZoneForStorage 'Microsoft.Network/privateDnsZones@2020-06-01' = { - name: 'privatelink.blob.${environment().suffixes.storage}' - location: 'global' - tags: tags - dependsOn: [ - vnet - ] -} - -resource privateDnsZoneForStorage_link 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = { - parent: privateDnsZoneForStorage - name: '${privateDnsZoneForStorage.name}-link' - location: 'global' - tags: tags - properties: { - registrationEnabled: false - virtualNetwork: { - id: vnet.id - } - } -} - -// private link for App Config Svc - -resource privateDnsZoneNameForAppConfig 'Microsoft.Network/privateDnsZones@2020-06-01' = { - name: 'privatelink.azconfig.io' - location: 'global' - tags: tags -} - -resource privateDnsZoneNameForAppConfig_link 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = { - parent: privateDnsZoneNameForAppConfig - name: '${privateDnsZoneNameForAppConfig.name}-link' - location: 'global' - tags: tags - properties: { - registrationEnabled: false - virtualNetwork: { - id: vnet.id - } - } -} - -resource pvtEndpointDnsGroupNameForAppConfig 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2020-07-01' = { - name: '${privateEndpointForAppConfig.name}/mydnsgroupname' - properties: { - privateDnsZoneConfigs: [ - { - name: 'config1' - properties: { - privateDnsZoneId: privateDnsZoneNameForAppConfig.id - } - } - ] - } -} - -resource privateEndpointForAppConfig 'Microsoft.Network/privateEndpoints@2020-07-01' = { - name: 'privateEndpointForAppConfig' - location: location - tags: tags - properties: { - subnet: { - id: resourceId('Microsoft.Network/virtualNetworks/subnets', vnet.name, privateEndpointSubnetName) - } - privateLinkServiceConnections: [ - { - name: appConfigService.name - properties: { - privateLinkServiceId: appConfigService.id - groupIds: [ - 'configurationStores' - ] - } - } - ] - } -} - -output KEY_VAULT_NAME string = keyVault.name -output APP_CONFIGURATION_SVC_NAME string = appConfigService.name -output WEB_URI string = web.properties.defaultHostName -output API_URI string = api.properties.defaultHostName diff --git a/infra/scripts/devexperience/call-make-sql-account.ps1 b/infra/scripts/devexperience/call-make-sql-account.ps1 new file mode 100644 index 00000000..72a6f14d --- /dev/null +++ b/infra/scripts/devexperience/call-make-sql-account.ps1 @@ -0,0 +1,48 @@ +<# +.SYNOPSIS +Calls the make-sql-account.ps1 script to create a SQL account for a given resource group, SQL server, and database. + +.DESCRIPTION +This script retrieves the necessary parameters from the AZD environment variables and Key Vault, and then calls the make-sql-account.ps1 script with the appropriate arguments. + +.PARAMETER resourceGroupName +The name of the Azure resource group where the SQL server and database are located. + +.PARAMETER sqlServerName +The name of the SQL server. + +.PARAMETER sqlDatabaseName +The name of the SQL database. + +.PARAMETER keyVaultName +The name of the Azure Key Vault where the SQL administrator credentials are stored. + +.EXAMPLE +./call-make-sql-account.ps1 + +This example demonstrates how to call the script to create a SQL account using the default environment variables and Key Vault. + +#> + +$resourceGroupName = ((azd env get-values --output json | ConvertFrom-Json).AZURE_RESOURCE_GROUP) +$sqlServerName = ((azd env get-values --output json | ConvertFrom-Json).SQL_SERVER_NAME) +$sqlDatabaseName = ((azd env get-values --output json | ConvertFrom-Json).SQL_DATABASE_NAME) +$keyVaultName = ((azd env get-values --output json | ConvertFrom-Json).AZURE_OPS_VAULT_NAME) + +$sqlAdmin = (Get-AzKeyVaultSecret -VaultName $keyVaultName -Name "Application--SqlAdministratorUsername" -AsPlainText) +$secureSqlPassword = ConvertTo-SecureString -String (Get-AzKeyVaultSecret -VaultName $keyVaultName -Name "Application--SqlAdministratorPassword" -AsPlainText) -AsPlainText -Force + +$accountId = (Get-AzContext).Account.ExtendedProperties["HomeAccountId"].Split(".")[0] +$accountAlias = (Get-AzContext).Account.Id + +$Cred = New-Object System.Management.Automation.PSCredential ($sqlAdmin, $secureSqlPassword) + +Write-Host "Calling make-sql-account.ps1 for group:'$resourceGroupName'..." + +./infra/scripts/devexperience/make-sql-account.ps1 ` + -ResourceGroup $resourceGroupName ` + -SqlServerName $sqlServerName ` + -SqlDatabaseName $sqlDatabaseName ` + -AccountAlias $accountAlias ` + -AccountId $accountId ` + -Credential $Cred \ No newline at end of file diff --git a/infra/scripts/devexperience/make-sql-account.ps1 b/infra/scripts/devexperience/make-sql-account.ps1 new file mode 100644 index 00000000..81b37389 --- /dev/null +++ b/infra/scripts/devexperience/make-sql-account.ps1 @@ -0,0 +1,132 @@ +<# +.SYNOPSIS +This script creates a SQL account for a specified Entra ID account so that the user can connect to Azure SQL. + +.PARAMETER ResourceGroup +The name of the resource group where the SQL Server is located. + +.PARAMETER SqlServerName +The name of the SQL Server. + +.PARAMETER SqlDatabaseName +The name of the SQL database. + +.PARAMETER AccountAlias +The account alias of the Entra ID account to be added to Azure SQL. + +.PARAMETER AccountId +The ID of the Entra ID account to be added to Azure SQL. + +.EXAMPLE +./make-sql-account.ps1 -ResourceGroup "myResourceGroup" -SqlServerName "mySqlServer" -SqlDatabaseName "mySqlDatabase" -AccountId "mySqlAccount" -Credential $Creds +Creates a SQL account with the specified parameters. + +#> + +Param( + [Parameter(Mandatory=$true)] + [string] $ResourceGroup, + + [Parameter(Mandatory=$true)] + [string] $SqlServerName, + + [Parameter(Mandatory=$true)] + [string] $SqlDatabaseName, + + [Parameter(Mandatory=$true)] + [string] $AccountAlias, + + [Parameter(Mandatory=$true)] + [string] $AccountId, + + [Parameter(Mandatory=$true)] + [System.Management.Automation.PSCredential]$Credential +) + +<# +.SYNOPSIS + Tests to ensure that the Powershell module we need is installed and imported before use. +.PARAMETER ModuleName + The name of the module to test for. +#> +function Test-ModuleImported { + param( + [Parameter(Mandatory=$true)] + [string] $ModuleName + ) + + if ((Get-Module -ListAvailable -Name $ModuleName) -and (Get-Module -Name $ModuleName -ErrorAction SilentlyContinue)) { + Write-Verbose "The '$($ModuleName)' module is installed and imported." + } + else { + $SavedVerbosePreference = $global:VerbosePreference + try { + Write-Verbose "Importing '$($ModuleName)' module" + $global:VerbosePreference = 'SilentlyContinue' + Import-Module -Name $ModuleName -ErrorAction Stop + $global:VerbosePreference = $SavedVerbosePreference + Write-Verbose "The '$($ModuleName)' module is imported successfully." + } + catch { + Write-Error "Failed to import the '$($ModuleName)' module. Please install the '$($ModuleName)' module before running this script." + exit 12 + } + finally { + $global:VerbosePreference = $SavedVerbosePreference + } + } +} + +<# +.SYNOPSIS + Checks to ensure that the user is authenticated with Azure before running the script. +#> +function Test-AzureConnected { + if (Get-AzContext -ErrorAction SilentlyContinue) { + Write-Verbose "The user is authenticated with Azure." + } + else { + Write-Error "You are not authenticated with Azure. Please run 'Connect-AzAccount' to authenticate before running this script." + exit 10 + } +} + +Test-ModuleImported -ModuleName Az.Resources +Test-ModuleImported -ModuleName SqlServer +Test-AzureConnected + +# Prompt formatting features + +$defaultColor = if ($PSVersionTable.PSVersion.Major -ge 6) { "`e[0m" } else { "" } +$successColor = if ($PSVersionTable.PSVersion.Major -ge 6) { "`e[32m" } else { "" } + +[guid]$guid = [System.Guid]::Parse($accountId) + +foreach ($byte in $guid.ToByteArray()) { + $byteGuid += [System.String]::Format("{0:X2}", $byte) +} +$Sid = "0x" + $byteGuid + +$fullyQualifiedDomainName = (Get-AzSqlServer -ResourceGroupName $ResourceGroup -ServerName $SqlServerName).FullyQualifiedDomainName + + +# Prepare SQL cmd to CREATE USER +$createUserSQL = "IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'$AccountAlias') create user [$AccountAlias] with sid = $Sid, type = E;" + +# Connect as SQL Admin acct and execute SQL cmd +Invoke-Sqlcmd -ServerInstance $fullyQualifiedDomainName -database $sqlDatabaseName -Credential $Credential -Query $createUserSQL +Write-Host "`tCreated user" + +Invoke-Sqlcmd -ServerInstance $fullyQualifiedDomainName -database 'master' -Credential $Credential -Query $createUserSQL +Write-Host "`tCreated for root db" + +# Prepare SQL cmd to grant db_owner role +$grantDbOwner = "IF NOT EXISTS (SELECT * FROM sys.database_principals p JOIN sys.database_role_members db_owner_role ON db_owner_role.member_principal_id = p.principal_id JOIN sys.database_principals role_names ON role_names.principal_id = db_owner_role.role_principal_id AND role_names.[name] = 'db_owner' WHERE p.[name]=N'$AccountAlias') ALTER ROLE db_owner ADD MEMBER [$AccountAlias];" + +# Connect as SQL Admin acct and execute SQL cmd +Invoke-Sqlcmd -ServerInstance $fullyQualifiedDomainName -database $sqlDatabaseName -Credential $Credential -Query $grantDbOwner + +Write-Host "`tGranted db_owner" + +Write-Host "`nFinished $($successColor)successfully$($defaultColor)." +Write-Host "An account for the current user was created in Azure SQL" \ No newline at end of file diff --git a/infra/scripts/postdeploy/show-webapp-uri.ps1 b/infra/scripts/postdeploy/show-webapp-uri.ps1 new file mode 100644 index 00000000..d6cb1b71 --- /dev/null +++ b/infra/scripts/postdeploy/show-webapp-uri.ps1 @@ -0,0 +1,14 @@ + +# The AZD deploy command shows the links to the azurewebsites.net resources +# We block access to these resources and instead want to show the Azure Front Door URL + +# Prompt formatting features + +$defaultColor = if ($Host.UI.SupportsVirtualTerminal) { "`e[0m" } else { "" } +$highlightColor = if ($Host.UI.SupportsVirtualTerminal) { "`e[36m" } else { "" } + +# End of Prompt formatting features + +Write-Host "`nUse this URI to access the web app:" +$azureFrontDoorUri=(azd env get-values --output json | ConvertFrom-Json).WEB_URI +Write-Host "`t$($highlightColor)$azureFrontDoorUri$($defaultColor)" \ No newline at end of file diff --git a/infra/scripts/postdeploy/show-webapp-uri.sh b/infra/scripts/postdeploy/show-webapp-uri.sh new file mode 100755 index 00000000..d0ef1c06 --- /dev/null +++ b/infra/scripts/postdeploy/show-webapp-uri.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# The AZD deploy command shows the links to the azurewebsites.net resources +# We block access to these resources and instead want to show the Azure Front Door URL + +pwsh ./infra/scripts/postdeploy/show-webapp-uri.ps1 \ No newline at end of file diff --git a/infra/scripts/postprovision/call-create-app-registrations.ps1 b/infra/scripts/postprovision/call-create-app-registrations.ps1 new file mode 100644 index 00000000..070440cb --- /dev/null +++ b/infra/scripts/postprovision/call-create-app-registrations.ps1 @@ -0,0 +1,28 @@ +<# +.SYNOPSIS + This script will be run by the Azure Developer CLI, and will have access to the AZD_* vars + This calls the create app registration.ps1 with the correct AZD provisioned resource group. + +.DESCRIPTION + This script will be run by the Azure Developer CLI, and will set the required + app configuration settings for the Relecloud web app as part of the code deployment process. + + Depends on the AZURE_RESOURCE_GROUP environment variable being set. AZD requires this to + understand which resource group to deploy to so this script uses it to learn about the + environment where the configuration settings should be set. + +#> + +# if this is CI/CD then we want to skip this step because the app registrations already exist +$principalType = (azd env get-values --output json | ConvertFrom-Json).AZURE_PRINCIPAL_TYPE + +if ($principalType -eq "ServicePrincipal") { + Write-Host "Skipping create-app-registrations.ps1 because principalType is ServicePrincipal" + exit 0 +} + +$resourceGroupName=(azd env get-values --output json | ConvertFrom-Json).AZURE_RESOURCE_GROUP + +Write-Host "Calling create-app-registrations.ps1 for group:'$resourceGroupName'..." + +./infra/scripts/postprovision/create-app-registrations.ps1 -ResourceGroupName $resourceGroupName -NoPrompt \ No newline at end of file diff --git a/infra/scripts/postprovision/call-create-app-registrations.sh b/infra/scripts/postprovision/call-create-app-registrations.sh new file mode 100755 index 00000000..09fc541f --- /dev/null +++ b/infra/scripts/postprovision/call-create-app-registrations.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# if this is CI/CD then we want to skip this step because the app registrations already exist +principalType=$((azd env get-values --output json) | jq -r .AZURE_PRINCIPAL_TYPE) + +if [ "$principalType" == "ServicePrincipal" ]; then + echo "Skipping create-app-registrations.ps1 because principalType is ServicePrincipal" + exit 0 +fi + +# This script is run by azd pre-provision hook and is part of the deployment lifecycle run when deploying the code for the Relecloud web app. +resourceGroupName=$((azd env get-values --output json) | jq -r .AZURE_RESOURCE_GROUP) + +echo "Calling create-app-registrations.ps1 for group:'resourceGroupName'..." + +pwsh ./infra/scripts/postprovision/create-app-registrations.ps1 -ResourceGroupName $resourceGroupName -NoPrompt \ No newline at end of file diff --git a/infra/scripts/postprovision/create-app-registrations.ps1 b/infra/scripts/postprovision/create-app-registrations.ps1 new file mode 100644 index 00000000..e0faffce --- /dev/null +++ b/infra/scripts/postprovision/create-app-registrations.ps1 @@ -0,0 +1,504 @@ +<# +.SYNOPSIS + Creates Microsoft Entra ID App Registrations for the call center web and api applications + and saves the configuration data in App Configuration Svc and Key Vault. + Depends on Az module. + + + +.DESCRIPTION + The web app uses Microsoft Entra ID to authenticate and authorize the users that can + make concert ticket purchases. This script configures the required settings and saves them in Key Vault. + The following settings are configured: + + Api--MicrosoftEntraId--ClientId Identifies the web app to Microsoft Entra ID + Api--MicrosoftEntraId--TenantId Identifies which Microsoft Entra ID instance holds the users that should be authorized + MicrosoftEntraId--CallbackPath The path that Microsoft Entra ID should redirect to after a successful login + MicrosoftEntraId--ClientId Identifies the web app to Microsoft Entra ID + MicrosoftEntraId--ClientSecret Provides a secret known by Microsoft Entra ID, and shared with the web app, to validate that Microsoft Entra ID can trust this web app + MicrosoftEntraId--Instance Identifies which Microsoft Entra ID instance holds the users that should be authorized + MicrosoftEntraId--SignedOutCallbackPath The path that Microsoft Entra ID should redirect to after a successful logout + MicrosoftEntraId--TenantId Identifies which Microsoft Entra ID instance holds the users that should be authorized + + This script will create the App Registrations that provide these configurations. Once those + are created the configuration data will be saved to Azure App Configuration and the secret + will be saved in Azure Key Vault so that the web app can read these values and provide them + to Microsoft Entra ID during the authentication process. + + NOTE: This functionality assumes that the web app, app configuration service, and app + service have already been successfully deployed. + +.PARAMETER ResourceGroupName + A required parameter for the name of resource group that contains the environment that was + created by the azd command. The cmdlet will populate the App Config Svc and Key + Vault services in this resource group with Microsoft Entra ID app registration config data. + +.EXAMPLE + PS C:\> .\create-app-registrations.ps1 -ResourceGroupName rg-rele231127v4-dev-westus3-application + + This example will create the app registrations for the rele231127v4 environment. +#> + +Param( + [Alias("g")] + [Parameter(Mandatory = $true, HelpMessage = "Name of the application resource group that was created by azd")] + [String]$ResourceGroupName, + [Parameter(Mandatory = $false, HelpMessage = "Use default values for all prompts")] + [Switch]$NoPrompt +) + +$MAX_RETRY_ATTEMPTS = 10 +$API_SCOPE_NAME = "relecloud.api" + +# Prompt formatting features + +$defaultColor = if ($Host.UI.SupportsVirtualTerminal) { "`e[0m" } else { "" } +$successColor = if ($Host.UI.SupportsVirtualTerminal) { "`e[32m" } else { "" } +$highlightColor = if ($Host.UI.SupportsVirtualTerminal) { "`e[36m" } else { "" } + +# End of Prompt formatting features + +# Function definitions + +function Get-CachedResourceGroup { + param( + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName + ) + + if ($global:resourceGroups -and $global:resourceGroups.ContainsKey($ResourceGroupName)) { + return $global:resourceGroups[$ResourceGroupName] + } + + $resourceGroup = Get-AzResourceGroup -Name $ResourceGroupName -ErrorAction SilentlyContinue + + if (!$global:resourceGroups) { + $global:resourceGroups = @{} + } + + $global:resourceGroups[$ResourceGroupName] = $resourceGroup + + return $resourceGroup +} + +function Get-WorkloadName { + param( + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName + ) + + $resourceGroup = Get-CachedResourceGroup -ResourceGroupName $ResourceGroupName + # Something like 'rele231116v1' + return $resourceGroup.Tags["WorkloadName"] +} + +function Get-WorkloadResourceToken { + param( + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName + ) + $resourceGroup = Get-CachedResourceGroup -ResourceGroupName $ResourceGroupName + # Something like 'c2auhsbjt6h6i' + return $resourceGroup.Tags["ResourceToken"] +} + +function Get-WorkloadEnvironment { + param( + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName + ) + $resourceGroup = Get-CachedResourceGroup -ResourceGroupName $ResourceGroupName + # Something like 'dev', 'test', 'prod' + return $resourceGroup.Tags["Environment"] +} + +function Get-ApiAppRegistration { + param( + [Parameter(Mandatory = $true)] + [string]$AppRegistrationName, + [Parameter(Mandatory = $true)] + [string]$ExistingAppRegistrationId + ) + + # get an existing Front-end App Registration + $apiAppRegistration = Get-AzADApplication -DisplayName $AppRegistrationName -ErrorAction SilentlyContinue + + # if it doesn't exist, then return a new one we created + if (!$apiAppRegistration) { + Write-Host "`tCreating the API registration $highlightColor'$($AppRegistrationName)'$defaultColor" + + return New-ApiAppRegistration ` + -AppRegistrationName $AppRegistrationName -ExistingAppRegistrationId $ExistingAppRegistrationId + } + + Write-Host "`tRetrieved the existing API registration $highlightColor'$($apiAppRegistration.Id)'$defaultColor" + return $apiAppRegistration +} + +function New-ApiAppRegistration { + param( + [Parameter(Mandatory = $true)] + [string]$AppRegistrationName, + [Parameter(Mandatory = $true)] + [string]$ExistingAppRegistrationId + ) + + $delegatedPermissionId = (New-Guid).ToString() + + # Define the OAuth2 permissions (scopes) for the API + # https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.powershell.cmdlets.resources.msgraph.models.apiv10.imicrosoftgraphapiapplication?view=az-ps-latest + # typing is case sensitive on the following objects and properites + $apiPermissions = [Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.IMicrosoftGraphApiApplication]@{ + Oauth2PermissionScope = [Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.IMicrosoftGraphPermissionScope[]]@( + [Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.IMicrosoftGraphPermissionScope ]@{ + Id = $delegatedPermissionId + Type = "User" + AdminConsentDescription = "Allow the app to access the web API as a user" + AdminConsentDisplayName = "Access the web API" + IsEnabled = $true + Value = $API_SCOPE_NAME + UserConsentDescription = "Allow the app to access the web API on your behalf" + UserConsentDisplayName = "Access the web API" + }) + PreAuthorizedApplication = [Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.IMicrosoftGraphPreAuthorizedApplication[]]@( + [Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.IMicrosoftGraphPreAuthorizedApplication]@{ + AppId = $ExistingAppRegistrationId + DelegatedPermissionId = @($delegatedPermissionId) + } + ) + } + + # log the API permissions to console for debugging + #Write-Host "`t`tAPI Permissions:" + #Write-Host "`t`t`t$($apiPermissions | ConvertTo-Json -Depth 100)" + + # create a Microsoft Entra ID App Registration for the front-end web app + $apiAppRegistration = New-AzADApplication ` + -DisplayName $AppRegistrationName ` + -SignInAudience "AzureADMyOrg" ` + -Api $apiPermissions ` + -ErrorAction Stop + + # set the identifier URI to the app ID (this is the default behavior) + $apiAppRegistration.IdentifierUri = @("api://$($apiAppRegistration.AppId)") + + # save the change + Update-AzADApplication -ObjectId $apiAppRegistration.Id -IdentifierUris $apiAppRegistration.IdentifierUri + + # $clientId = "" + # while ($clientId -eq "" -and $attempts -lt $MAX_RETRY_ATTEMPTS) + # { + # $MAX_RETRY_ATTEMPTS = $MAX_RETRY_ATTEMPTS + 1 + # try { + # $clientId = (Get-AzADApplication -DisplayName $AppRegistrationName -ErrorAction Stop).ApplicationId + # } + # catch { + # Write-Host "`t`tFailed to retrieve the client ID for the front-end app registration. Will try again in 3 seconds." + # Start-Sleep -Seconds 3 + # } + # } + + return $apiAppRegistration +} + +function Get-FrontendAppRegistration { + param( + [Parameter(Mandatory = $true)] + [string]$AppRegistrationName, + [Parameter(Mandatory = $true)] + [string]$AzureWebsiteRedirectUri, + [Parameter(Mandatory = $true)] + [string]$AzureWebsiteLogoutUri, + [Parameter(Mandatory = $true)] + [string]$LocalhostWebsiteRedirectUri + ) + + # get an existing Front-end App Registration + $frontendAppRegistration = Get-AzADApplication -DisplayName $AppRegistrationName -ErrorAction SilentlyContinue + + # if it doesn't exist, then return a new one we created + if (!$frontendAppRegistration) { + Write-Host "`tCreating the front-end app registration $highlightColor'$($AppRegistrationName)'$defaultColor" + + return New-FrontendAppRegistration ` + -AzureWebsiteRedirectUri $AzureWebsiteRedirectUri ` + -AzureWebsiteLogoutUri $AzureWebsiteLogoutUri ` + -LocalhostWebsiteRedirectUri $LocalhostWebsiteRedirectUri ` + -AppRegistrationName $AppRegistrationName + } + + Write-Host "`tRetrieved the existing front-end app registration $highlightColor'$($frontendAppRegistration.Id)'$defaultColor" + return $frontendAppRegistration +} + +function New-FrontendAppRegistration { + param( + [Parameter(Mandatory = $true)] + [string]$AppRegistrationName, + [Parameter(Mandatory = $true)] + [string]$AzureWebsiteRedirectUri, + [Parameter(Mandatory = $true)] + [string]$AzureWebsiteLogoutUri, + [Parameter(Mandatory = $true)] + [string]$LocalhostWebsiteRedirectUri + ) + $websiteApp = @{ + "LogoutUrl" = $AzureWebsiteLogoutUri + "RedirectUris" = @($AzureWebsiteRedirectUri, $LocalhostWebsiteRedirectUri) + "ImplicitGrantSetting" = @{ + "EnableAccessTokenIssuance" = $false + "EnableIdTokenIssuance" = $true + } + } + + # create a Microsoft Entra ID App Registration for the front-end web app + $frontendAppRegistration = New-AzADApplication ` + -DisplayName $AppRegistrationName ` + -SignInAudience "AzureADMyOrg" ` + -Web $websiteApp ` + -ErrorAction Stop + + # $clientId = "" + # while ($clientId -eq "" -and $attempts -lt $MAX_RETRY_ATTEMPTS) + # { + # $MAX_RETRY_ATTEMPTS = $MAX_RETRY_ATTEMPTS + 1 + # try { + # $clientId = (Get-AzADApplication -DisplayName $AppRegistrationName -ErrorAction Stop).ApplicationId + # } + # catch { + # Write-Host "`t`tFailed to retrieve the client ID for the front-end app registration. Will try again in 3 seconds." + # Start-Sleep -Seconds 3 + # } + # } + + return $frontendAppRegistration +} + +# End of function definitions + + +# Check for required features + +if ((Get-Module -ListAvailable -Name Az.Resources) -and (Get-Module -Name Az.Resources -ErrorAction SilentlyContinue)) { + Write-Debug "The 'Az.Resources' module is installed and imported." + if (Get-AzContext -ErrorAction SilentlyContinue) { + Write-Debug "The user is authenticated with Azure." + } + else { + Write-Error "You are not authenticated with Azure. Please run 'Connect-AzAccount' to authenticate before running this script." + exit 10 + } +} +else { + try { + Write-Host "Importing 'Az.Resources' module" + Import-Module -Name Az.Resources -ErrorAction Stop + Write-Debug "The 'Az.Resources' module is imported successfully." + if (Get-AzContext -ErrorAction SilentlyContinue) { + Write-Debug "The user is authenticated with Azure." + } + else { + Write-Error "You are not authenticated with Azure. Please run 'Connect-AzAccount' to authenticate before running this script." + exit 11 + } + } + catch { + Write-Error "Failed to import the 'Az.Resources' module. Please install and import the 'Az' module before running this script." + exit 12 + } +} + +# End of feature checking + +# Set defaults +$defaultFrontEndAppRegistrationName = "$(Get-WorkloadName -ResourceGroupName $ResourceGroupName)-$(Get-WorkloadEnvironment -ResourceGroupName $ResourceGroupName)-front-webapp-$(Get-WorkloadResourceToken -ResourceGroupName $ResourceGroupName)" +$defaultApiAppRegistrationName = "$(Get-WorkloadName -ResourceGroupName $ResourceGroupName)-$(Get-WorkloadEnvironment -ResourceGroupName $ResourceGroupName)-api-webapp-$(Get-WorkloadResourceToken -ResourceGroupName $ResourceGroupName)" +$defaultKeyVaultname = "kv-$(Get-WorkloadResourceToken -ResourceGroupName $ResourceGroupName)" + +$frontDoorProfile = (Get-AzFrontDoorCdnProfile -ResourceGroupName $ResourceGroupName) +$frontDoorEndpoint = (Get-AzFrontDoorCdnEndpoint -ProfileName $frontDoorProfile.Name -ResourceGroupName $ResourceGroupName) +$defaultAzureWebsiteUri = "https://$($frontDoorEndpoint.HostName)" + +# End of Set defaults + +# Gather inputs + +# The web app has two websites so we need to create two app registrations. +# This app registration is for the back-end API that the front-end website will call. +$apiAppRegistrationName = "" +if (-not $NoPrompt) { + $apiAppRegistrationName = Read-Host -Prompt "`nWhat should the name of the API web app registration be? [default: $highlightColor$defaultApiAppRegistrationName$defaultColor]" +} + +if ($apiAppRegistrationName -eq "") { + $apiAppRegistrationName = $defaultApiAppRegistrationName +} + +# This app registration is for the front-end website that users will interact with. +$frontendAppRegistrationName = "" +if (-not $NoPrompt) { + $frontendAppRegistrationName = Read-Host -Prompt "`nWhat should the name of the Front-end web app registration be? [default: $highlightColor$defaultFrontEndAppRegistrationName$defaultColor]" +} + +if ($frontendAppRegistrationName -eq "") { + $frontendAppRegistrationName = $defaultFrontEndAppRegistrationName +} + +# This is where the App Registration details will be stored +$keyVaultName = "" +if (-not $NoPrompt) { + $keyVaultName = Read-Host -Prompt "`nWhat is the name of the Key Vault that should store the App Registration details? [default: $highlightColor$defaultKeyVaultname$defaultColor]" +} + +if ($keyVaultName -eq "") { + $keyVaultName = $defaultKeyVaultname +} + +$azureWebsiteUri = "" +if (-not $NoPrompt) { + $azureWebsiteUri = Read-Host -Prompt "`nWhat is the login redirect uri of the website? [default: $highlightColor$defaultAzureWebsiteUri$defaultColor]" +} + +if ($azureWebsiteUri -eq "") { + $azureWebsiteUri = $defaultAzureWebsiteUri +} + +$tenantId = (Get-AzContext).Tenant.Id + +# hard coded localhost URL comes from startup properties of the web app +$localhostWebsiteRedirectUri = "https://localhost:7227/signin-oidc" +$azureWebsiteRedirectUri = "$azureWebsiteUri/signin-oidc" +$azureWebsiteLogoutUri = "$azureWebsiteUri/signout-oidc" + +# End of Gather inputs + +# Display working state for confirmation +Write-Host "`nSetup for App Registrations" -ForegroundColor Yellow +Write-Host "`ttenantId='$tenantId'" +Write-Host "`tresourceGroupName='$resourceGroupName'" +Write-Host "`tfrontendAppRegistrationName='$frontendAppRegistrationName'" +Write-Host "`tkeyVaultName='$keyVaultName'" +Write-Host "`tlocalhostWebsiteRedirectUri='$localhostWebsiteRedirectUri'" +Write-Host "`tazureWebsiteRedirectUri='$azureWebsiteRedirectUri'" +Write-Host "`tazureWebsiteLogoutUri='$azureWebsiteLogoutUri'" +Write-Host "`tapiAppRegistrationName='$apiAppRegistrationName'" + +$confirmation = "" +if (-not $NoPrompt) { + $confirmation = Read-Host -Prompt "`nHit enter proceed with creating app registrations" +} + +if ($confirmation -ne "") { + Write-Host "`nExiting without creating app registrations." + exit 13 +} + +# End of Display working state for confirmation + +# Test the existence of the Key Vault +$keyVault = Get-AzKeyVault -VaultName $keyVaultName -ErrorAction SilentlyContinue + +if (!$keyVault) { + Write-Error "The Key Vault '$keyVaultName' does not exist. Please create the Key Vault before running this script." + exit 14 +} + +# Test to see if the current user has permissions to create secrets in the Key Vault +try { + $secretValue = ConvertTo-SecureString -String 'https://login.microsoftonline.com/' -AsPlainText -Force + Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'MicrosoftEntraId--Instance' -SecretValue $secretValue -ErrorAction Stop > $null +} catch { + Write-Error "Unable to save data to '$keyVaultName'. Please check your permissions and the network restrictions on the Key Vault." + exit 15 +} + +# Set static values +$secretValue = ConvertTo-SecureString -String '/signin-oidc' -AsPlainText -Force +Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'MicrosoftEntraId--CallbackPath' -SecretValue $secretValue -ErrorAction Stop > $null +Write-Host "`tSaved the $highlightColor'MicrosoftEntraId--CallbackPath'$defaultColor to Key Vault" + +$secretValue = ConvertTo-SecureString -String '/signout-oidc' -AsPlainText -Force +Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'MicrosoftEntraId--SignedOutCallbackPath' -SecretValue $secretValue -ErrorAction Stop > $null +Write-Host "`tSaved the $highlightColor'MicrosoftEntraId--SignedOutCallbackPath'$defaultColor to Key Vault" + +$secretInstance = ConvertTo-SecureString -String 'https://login.microsoftonline.com/' -AsPlainText -Force +Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'Api--MicrosoftEntraId--Instance' -SecretValue $secretInstance -ErrorAction Stop > $null +Write-Host "`tSaved the $highlightColor'Api--MicrosoftEntraId--Instance'$defaultColor to Key Vault" + +Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'MicrosoftEntraId--Instance' -SecretValue $secretInstance -ErrorAction Stop > $null +Write-Host "`tSaved the $highlightColor'MicrosoftEntraId--Instance'$defaultColor to Key Vault" + +# Write TenantId to Key Vault +$secretValue = ConvertTo-SecureString -String $tenantId -AsPlainText -Force +Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'Api--MicrosoftEntraId--TenantId' -SecretValue $secretValue -ErrorAction Stop > $null +Write-Host "`tSaved the $highlightColor'Api--MicrosoftEntraId--TenantId'$defaultColor to Key Vault" + +$secretValue = ConvertTo-SecureString -String $tenantId -AsPlainText -Force +Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'MicrosoftEntraId--TenantId' -SecretValue $secretValue -ErrorAction Stop > $null +Write-Host "`tSaved the $highlightColor'MicrosoftEntraId--TenantId'$defaultColor to Key Vault" + +# Get or Create the front-end app registration +$frontendAppRegistration = Get-FrontendAppRegistration ` + -AzureWebsiteRedirectUri $azureWebsiteRedirectUri ` + -AzureWebsiteLogoutUri $azureWebsiteLogoutUri ` + -LocalhostWebsiteRedirectUri $localhostWebsiteRedirectUri ` + -AppRegistrationName $frontendAppRegistrationName + +# Write to Key Vault +$secretValue = ConvertTo-SecureString -String $frontendAppRegistration.AppId -AsPlainText -Force +Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'MicrosoftEntraId--ClientId' -SecretValue $secretValue -ErrorAction Stop > $null +Write-Host "`tSaved the $highlightColor'MicrosoftEntraId--ClientId'$defaultColor to Key Vault" + +# List client secrets +$clientSecrets = Get-AzADAppCredential -ObjectId $frontendAppRegistration.Id -ErrorAction SilentlyContinue +# If there are secrets, then delete them +if ($clientSecrets) { + # for each client secret + foreach ($clientSecret in $clientSecrets) { + # delete the client secret + Remove-AzADAppCredential -ObjectId $frontendAppRegistration.Id -KeyId $clientSecret.KeyId -ErrorAction Stop > $null + } +} + +# Create a new client secret with a 1 year expiration +$clientSecrets = New-AzADAppCredential -ObjectId $frontendAppRegistration.Id -EndDate (Get-Date).AddYears(1) -ErrorAction Stop + +# Write to Key Vault +$secretValue = ConvertTo-SecureString -String $clientSecrets.SecretText -AsPlainText -Force +Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'MicrosoftEntraId--ClientSecret' -SecretValue $secretValue -ErrorAction Stop > $null +Write-Host "`tSaved the $highlightColor'MicrosoftEntraId--ClientSecret'$defaultColor to Key Vault" + +# Get or Create the api app registration +$apiAppRegistration = Get-ApiAppRegistration ` + -AppRegistrationName $apiAppRegistrationName ` + -ExistingAppRegistrationId $frontendAppRegistration.AppId + +# Write to Key Vault +$secretValue = ConvertTo-SecureString -String $apiAppRegistration.AppId -AsPlainText -Force +Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'Api--MicrosoftEntraId--ClientId' -SecretValue $secretValue -ErrorAction Stop > $null +Write-Host "`tSaved the $highlightColor'Api--MicrosoftEntraId--ClientId'$defaultColor to Key Vault" + +$scopeDetails = $apiAppRegistration.Api.Oauth2PermissionScope | Where-Object { $_.Value -eq $API_SCOPE_NAME } +if (!$scopeDetails) { + Write-Error "Unable to find the scope '$API_SCOPE_NAME' in the API app registration. Please check the API app registration in Microsoft Entra ID." + exit 16 +} + +Write-Host "`tFound the scope $highlightColor'$($scopeDetails.Value)'$defaultColor with ID $highlightColor'$($scopeDetails.Id)'$defaultColor" + +# Check permission for front-end app registration to verify it has access to the API app registration +$apiPermission = Get-AzADAppPermission -ObjectId $frontendAppRegistration.Id -ErrorAction SilentlyContinue | Where-Object { $_.ApiId -eq $apiAppRegistration.AppId -and $_.Type -eq 'Scope' } +if (!$apiPermission) { + Write-Host "`tCreating the permission for the front-end app registration to access the API app registration" + $apiPermission = Add-AzADAppPermission -ObjectId $frontendAppRegistration.Id -ApiId $apiAppRegistration.AppId -PermissionId $scopeDetails.Id -ErrorAction Stop +} + +$formattedScope = "$($apiAppRegistration.IdentifierUri)/$($scopeDetails.Value)" +$secretValue = ConvertTo-SecureString -String $formattedScope -AsPlainText -Force +Set-AzKeyVaultSecret -VaultName $keyVault.VaultName -Name 'App--RelecloudApi--AttendeeScope' -SecretValue $secretValue -ErrorAction Stop > $null +Write-Host "`tSaved the $highlightColor'App--RelecloudApi--AttendeeScope'$defaultColor to Key Vault" + +Write-Host "`nFinished create-app-registrations $($successColor)successfully$($defaultColor)." + +# all done +exit 0 \ No newline at end of file diff --git a/infra/scripts/predeploy/call-set-app-configuration.ps1 b/infra/scripts/predeploy/call-set-app-configuration.ps1 new file mode 100644 index 00000000..6b1c9710 --- /dev/null +++ b/infra/scripts/predeploy/call-set-app-configuration.ps1 @@ -0,0 +1,21 @@ +<# +.SYNOPSIS + This script will be run by the Azure Developer CLI, and will have access to the AZD_* vars + This ensures the the app configuration service is reachable from the current environment. + +.DESCRIPTION + This script will be run by the Azure Developer CLI, and will set the required + app configuration settings for the Relecloud web app as part of the code deployment process. + + Depends on the AZURE_RESOURCE_GROUP environment variable being set. AZD requires this to + understand which resource group to deploy to so this script uses it to learn about the + environment where the configuration settings should be set. + +#> + +$resourceGroupName = ((azd env get-values --output json) | ConvertFrom-Json).AZURE_RESOURCE_GROUP +$webUri = ((azd env get-values --output json) | ConvertFrom-Json).WEB_URI + +Write-Host "Calling set-app-configuration.ps1 for group:'$resourceGroupName' with webUri:'$webUri' ..." + +./infra/scripts/predeploy/set-app-configuration.ps1 -ResourceGroupName $resourceGroupName -WebUri $webUri -NoPrompt \ No newline at end of file diff --git a/infra/scripts/predeploy/call-set-app-configuration.sh b/infra/scripts/predeploy/call-set-app-configuration.sh new file mode 100755 index 00000000..7154bde3 --- /dev/null +++ b/infra/scripts/predeploy/call-set-app-configuration.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# This script is run by azd pre-provision hook and is part of the deployment lifecycle run when deploying the code for the Relecloud web app. +resourceGroupName=$((azd env get-values --output json) | jq -r .AZURE_RESOURCE_GROUP) +webUri=$((azd env get-values --output json) | jq -r .WEB_URI) + +echo "Calling set-app-configuration.ps1 for group:'$resourceGroupName' with webUri:'$webUri' ..." + +pwsh ./infra/scripts/predeploy/set-app-configuration.ps1 -ResourceGroupName $resourceGroupName -WebUri $webUri -NoPrompt \ No newline at end of file diff --git a/infra/scripts/predeploy/set-app-configuration.ps1 b/infra/scripts/predeploy/set-app-configuration.ps1 new file mode 100644 index 00000000..12f24f5f --- /dev/null +++ b/infra/scripts/predeploy/set-app-configuration.ps1 @@ -0,0 +1,266 @@ +<# +.SYNOPSIS + This script will be run by the Azure Developer CLI, and will have access to the AZD_* vars + This ensures the the app configuration service is reachable from the current environment. + +.DESCRIPTION + This script will be run by the Azure Developer CLI, and will set the required + app configuration settings for the Relecloud web app as part of the code deployment process. + + Depends on the AZURE_RESOURCE_GROUP environment variable being set. AZD requires this to + understand which resource group to deploy to so this script uses it to learn about the + environment where the configuration settings should be set. + +#> + +Param( + [Alias("g")] + [Parameter(Mandatory = $true, HelpMessage = "Name of the application resource group that was created by azd")] + [String]$ResourceGroupName, + [Parameter(Mandatory = $true, HelpMessage = "URI used for OAuth with Microsoft Entra ID. This is the URI of the web app.")] + [String]$WebUri, + [Parameter(Mandatory = $false, HelpMessage = "Use default values for all prompts")] + [Switch]$NoPrompt +) + +if ((Get-Module -ListAvailable -Name Az.Resources) -and (Get-Module -Name Az.Resources -ErrorAction SilentlyContinue)) { + Write-Debug "The 'Az.Resources' module is installed and imported." + if (Get-AzContext -ErrorAction SilentlyContinue) { + Write-Debug "The user is authenticated with Azure." + } + else { + Write-Error "You are not authenticated with Azure. Please run 'Connect-AzAccount' to authenticate before running this script." + exit 10 + } +} +else { + try { + Write-Host "Importing 'Az.Resources' module" + Import-Module -Name Az.Resources -ErrorAction Stop + Write-Debug "The 'Az.Resources' module is imported successfully." + if (Get-AzContext -ErrorAction SilentlyContinue) { + Write-Debug "The user is authenticated with Azure." + } + else { + Write-Error "You are not authenticated with Azure. Please run 'Connect-AzAccount' to authenticate before running this script." + exit 11 + } + } + catch { + Write-Error "Failed to import the 'Az' module. Please install and import the 'Az' module before running this script." + exit 12 + } +} + +# Prompt formatting features + +$defaultColor = if ($PSVersionTable.PSVersion.Major -ge 6) { "`e[0m" } else { "" } +$successColor = if ($PSVersionTable.PSVersion.Major -ge 6) { "`e[32m" } else { "" } +$highlightColor = if ($PSVersionTable.PSVersion.Major -ge 6) { "`e[36m" } else { "" } + +# End of Prompt formatting features + +function Get-WorkloadSqlManagedIdentityConnectionString { + param( + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName + ) + Write-Host "`tGetting sql server connection for $highlightColor'$ResourceGroupName'$defaultColor" + + $group = Get-AzResourceGroup -Name $ResourceGroupName + + # the group contains tags that explain what the default name of the Azure SQL resource should be + $sqlServerResourceName = "sql-$($group.Tags["ResourceToken"])" + $sqlDatabaseCatalogName = "relecloud-$($group.Tags["ResourceToken"])" + + # if sql server is not found, then throw an error + if ($sqlServerResourceName.Length -lt 4) { + throw "SQL server not found in resource group $group.ResourceGroupName" + } + + $sqlServerResource = Get-AzSqlServer -ServerName $sqlServerResourceName -ResourceGroupName $group.ResourceGroupName + + return "Server=tcp:$($sqlServerResource.FullyQualifiedDomainName),1433;Initial Catalog=$($sqlDatabaseCatalogName);Authentication=Active Directory Default; Connect Timeout=180" +} + +function Get-WorkloadStorageAccount { + param( + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName + ) + Write-Host "`tGetting storage account for $highlightColor'$ResourceGroupName'$defaultColor" + + $group = Get-AzResourceGroup -Name $ResourceGroupName + + # the group contains tags that explain what the default name of the storage account should be + $storageAccountName = "st$($group.Tags["Environment"])$($group.Tags["ResourceToken"])" + + # if storage account is not found, then throw an error + if ($storageAccountName.Length -lt 6) { + throw "Storage account not found in resource group $group.ResourceGroupName" + } + + return Get-AzStorageAccount -Name $storageAccountName -ResourceGroupName $group.ResourceGroupName +} + +function Get-WorkloadKeyVault { + param( + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName + ) + Write-Host "`tGetting key vault for $highlightColor'$ResourceGroupName'$defaultColor" + + $group = Get-AzResourceGroup -Name $ResourceGroupName + $hubGroup = Get-AzResourceGroup -Name $group.Tags["HubGroupName"] + + # the group contains tags that explain what the default name of the kv should be + $keyVaultName = "kv-$($hubGroup.Tags["ResourceToken"])" + + # if key vault is not found, then throw an error + if ($keyVaultName.Length -lt 4) { + throw "Key vault not found in resource group $hubGroup.ResourceGroupName" + } + + return Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $hubGroup.ResourceGroupName +} + +function Get-RedisCacheKeyName { + param( + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName + ) + Write-Host "`tGetting redis cache key name for $highlightColor'$ResourceGroupName'$defaultColor" + + $group = Get-AzResourceGroup -Name $ResourceGroupName + + # if the group contains a tag 'IsPrimary' then use the primary redis cache + if ($group.Tags["IsPrimaryLocation"] -eq "true") { + # matches hard coded value in application-post-config.bicep module + return "App--RedisCache--ConnectionString-Primary" + } + + # matches hard coded value in application-post-config.bicep module + return "App--RedisCache--ConnectionString-Secondary" + +} + +Write-Host "Configuring app settings for $highlightColor'$ResourceGroupName'$defaultColor" + +# default settings +$defaultAzureStorageTicketContainerName = "tickets" # matches the default defined in application-resources.bicep file +$defaultSqlConnectionString = (Get-WorkloadSqlManagedIdentityConnectionString -ResourceGroupName $ResourceGroupName) # the connection string to the SQL database set with Managed Identity +$defaultAzureStorageTicketUri = (Get-WorkloadStorageAccount -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob # the URI of the storage account container where tickets are stored +$defaultAzureFrontDoorHostName = $WebUri.Substring("https://".Length) # the hostname of the front door +$defaultRelecloudBaseUri = "$WebUri/api" # used by the frontend to call the backend through the front door +$defaultKeyVaultUri = (Get-WorkloadKeyVault -ResourceGroupName $ResourceGroupName).VaultUri # the URI of the key vault where secrets are stored +$defaultRedisCacheKeyName = (Get-RedisCacheKeyName -ResourceGroupName $ResourceGroupName) # workloads use independent redis caches and a shared vault to store the connection string + +# prompt to confirm settings +$azureStorageTicketContainerName = "" +if (-not $NoPrompt) { + $azureStorageTicketContainerName = Read-Host -Prompt "`nWhat value should be used for the Azure storage container name? [default: $highlightColor$defaultAzureStorageTicketContainerName$defaultColor]" +} + +if ($azureStorageTicketContainerName -eq "") { + $azureStorageTicketContainerName = $defaultAzureStorageTicketContainerName +} + +$sqlConnectionString = "" +if (-not $NoPrompt) { + $sqlConnectionString = Read-Host -Prompt "`nWhat value should be used for the SQL connection string? [default: $highlightColor$defaultSqlConnectionString$defaultColor]" +} + +if ($sqlConnectionString -eq "") { + $sqlConnectionString = $defaultSqlConnectionString +} + +$azureStorageTicketUri = "" +if (-not $NoPrompt) { + $azureStorageTicketUri = Read-Host -Prompt "`nWhat value should be used for the Azure storage URI? [default: $highlightColor$defaultAzureStorageTicketUri$defaultColor]" +} + +if ($azureStorageTicketUri -eq "") { + $azureStorageTicketUri = $defaultAzureStorageTicketUri +} + +$azureFrontDoorHostName = "" +if (-not $NoPrompt) { + $azureFrontDoorHostName = Read-Host -Prompt "`nWhat value should be used for the Azure Front Door Host? [default: $highlightColor$defaultAzureFrontDoorHostName$defaultColor]" +} + +if ($azureFrontDoorHostName -eq "") { + $azureFrontDoorHostName = $defaultAzureFrontDoorHostName +} + +$relecloudBaseUri = "" +if (-not $NoPrompt) { + $relecloudBaseUri = Read-Host -Prompt "`nWhat value should be used for the Relecloud Base URI? [default: $highlightColor$defaultRelecloudBaseUri$defaultColor]" +} + +if ($relecloudBaseUri -eq "") { + $relecloudBaseUri = $defaultRelecloudBaseUri +} + +$keyVaultUri = "" +if (-not $NoPrompt) { + $keyVaultUri = Read-Host -Prompt "`nWhat value should be used for the Key Vault URI? [default: $highlightColor$defaultKeyVaultUri$defaultColor]" +} + +if ($keyVaultUri -eq "") { + $keyVaultUri = $defaultKeyVaultUri +} + +$redisCacheKeyName = "" +if (-not $NoPrompt) { + $redisCacheKeyName = Read-Host -Prompt "`nWhat value should be used for the RedisCacheKeyName? [default: $highlightColor$defaultRedisCacheKeyName$defaultColor]" +} + +if ($redisCacheKeyName -eq "") { + $redisCacheKeyName = $defaultRedisCacheKeyName +} + +# display the settings so that the user can verify them in the output log +Write-Host "`nWorking settings:" +Write-Host "`tazureStorageTicketContainerName: $highlightColor'$azureStorageTicketContainerName'$defaultColor" +Write-Host "`tresourceGroupName: $highlightColor'$resourceGroupName'$defaultColor" +Write-Host "`tSqlConnectionString: $highlightColor'$sqlConnectionString'$defaultColor" +Write-Host "`tAzureStorageTicketUri: $highlightColor'$azureStorageTicketUri'$defaultColor" +Write-Host "`tAzureFrontDoorHostName: $highlightColor'$azureFrontDoorHostName'$defaultColor" +Write-Host "`tRelecloudBaseUri: $highlightColor'$relecloudBaseUri'$defaultColor" +Write-Host "`tRedisCacheKeyName: $highlightColor'$redisCacheKeyName'$defaultColor" + +# handles multi-regional app configuration because the app config must be in the same region as the code deployment +$configStore = Get-AzAppConfigurationStore -ResourceGroupName $resourceGroupName + +try { + Write-Host "`nSetting values in $highlightColor$($configStore.Endpoint)$defaultColor..." + + Write-Host "`nSet values for backend..." + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key App:SqlDatabase:ConnectionString -Value $sqlConnectionString > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key App:StorageAccount:Container -Value $azureStorageTicketContainerName > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key App:StorageAccount:Uri -Value $azureStorageTicketUri > $null + + Write-Host "Set values for frontend..." + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key App:FrontDoorHostname -Value $azureFrontDoorHostName > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key App:RelecloudApi:BaseUri -Value $relecloudBaseUri > $null + + Write-Host "Set values for key vault references..." + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key Api:MicrosoftEntraId:ClientId -Value "{ `"uri`":`"$($keyVaultUri)secrets/Api--MicrosoftEntraId--ClientId`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key Api:MicrosoftEntraId:Instance -Value "{ `"uri`":`"$($keyVaultUri)secrets/Api--MicrosoftEntraId--Instance`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key Api:MicrosoftEntraId:TenantId -Value "{ `"uri`":`"$($keyVaultUri)secrets/Api--MicrosoftEntraId--TenantId`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key App:RedisCache:ConnectionString -Value "{ `"uri`":`"$($keyVaultUri)secrets/$($redisCacheKeyName)`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key App:RelecloudApi:AttendeeScope -Value "{ `"uri`":`"$($keyVaultUri)secrets/App--RelecloudApi--AttendeeScope`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key MicrosoftEntraId:Instance -Value "{ `"uri`":`"$($keyVaultUri)secrets/MicrosoftEntraId--Instance`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key MicrosoftEntraId:CallbackPath -Value "{ `"uri`":`"$($keyVaultUri)secrets/MicrosoftEntraId--CallbackPath`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key MicrosoftEntraId:ClientId -Value "{ `"uri`":`"$($keyVaultUri)secrets/MicrosoftEntraId--ClientId`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key MicrosoftEntraId:ClientSecret -Value "{ `"uri`":`"$($keyVaultUri)secrets/MicrosoftEntraId--ClientSecret`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key MicrosoftEntraId:Instance -Value "{ `"uri`":`"$($keyVaultUri)secrets/MicrosoftEntraId--Instance`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key MicrosoftEntraId:SignedOutCallbackPath -Value "{ `"uri`":`"$($keyVaultUri)secrets/MicrosoftEntraId--SignedOutCallbackPath`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + Set-AzAppConfigurationKeyValue -Endpoint $configStore.Endpoint -Key MicrosoftEntraId:TenantId -Value "{ `"uri`":`"$($keyVaultUri)secrets/MicrosoftEntraId--TenantId`"}" -ContentType 'application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8' > $null + + Write-Host "`nFinished set-app-configuration $($successColor)successfully$($defaultColor).`n" +} +catch { + "Failed to set app configuration values" | Write-Error + throw $_ +} diff --git a/infra/scripts/predown/call-cleanup.ps1 b/infra/scripts/predown/call-cleanup.ps1 new file mode 100644 index 00000000..0e6c4632 --- /dev/null +++ b/infra/scripts/predown/call-cleanup.ps1 @@ -0,0 +1,31 @@ +<# +.SYNOPSIS + This script will be run by the Azure Developer CLI, and will have access to the AZD_* vars + This calls the cleanup.ps1 script with the correct AZD resource group. + +.DESCRIPTION + This script will be run by the Azure Developer CLI, and will remove resources + that are not deleted as part of the `azd down` command such as the following: + - App registrations + - Azure budgets + - Azure diagnostic settings + + Script also deletes private endpoints. + + Depends on the AZURE_RESOURCE_GROUP environment variable being set. AZD requires this to + understand which resource group to deploy to so this script uses it to learn about the + environment where the configuration settings should be set. + +#> + +$resourceGroupName=(azd env get-values --output json | ConvertFrom-Json).AZURE_RESOURCE_GROUP + +# if the resource group is not set, then exit +if (-not $resourceGroupName) { + Write-Host "AZURE_RESOURCE_GROUP not set..." + exit 0 +} + +Write-Host "Calling cleanup.ps1 for group:'$resourceGroupName'..." + +./testscripts/cleanup.ps1 -ResourceGroup $resourceGroupName -NoPrompt -Purge \ No newline at end of file diff --git a/infra/scripts/predown/call-cleanup.sh b/infra/scripts/predown/call-cleanup.sh new file mode 100755 index 00000000..047f23ab --- /dev/null +++ b/infra/scripts/predown/call-cleanup.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# This script will be run by the Azure Developer CLI, and will have access to the AZD_* vars +# This calls the cleanup.ps1 script with the correct AZD resource group. + +# This script will be run by the Azure Developer CLI, and will remove resources +# that are not deleted as part of the `azd down` command such as the following: +# - App registrations +# - Azure budgets +# - Azure diagnostic settings +# Script also deletes private endpoints. +# Depends on the AZURE_RESOURCE_GROUP environment variable being set. AZD requires this to +# understand which resource group to deploy to so this script uses it to learn about the +# environment where the configuration settings should be set. + +resourceGroupName=$(azd env get-values --output json | jq -r '.AZURE_RESOURCE_GROUP') + +# if the resource group equals the string 'null', then exit +if [ "$resourceGroupName" == "null" ]; then + echo "AZURE_RESOURCE_GROUP not set..." + exit 0 +fi + + +echo "Calling cleanup.ps1 for group:'$resourceGroupName'..." + +pwsh ./testscripts/cleanup.ps1 -ResourceGroup "$resourceGroupName" -NoPrompt -Purge diff --git a/infra/scripts/preprovision/validate-params.ps1 b/infra/scripts/preprovision/validate-params.ps1 new file mode 100644 index 00000000..6af268b8 --- /dev/null +++ b/infra/scripts/preprovision/validate-params.ps1 @@ -0,0 +1,30 @@ +<# +.SYNOPSIS + This script validates the parameters for the deployment of the Azure DevOps environment. + +.DESCRIPTION + The script retrieves the configuration values from Azure DevOps and validates the environment type and network isolation settings. + It checks if the environment type is either 'dev' or 'prod' and if the network isolation is enabled for the 'prod' environment type. + If any of the parameters are invalid, an error message is displayed and the script exits with a non-zero status code. + +.NOTES + - This script requires the Azure CLI to be installed and logged in to Azure DevOps. + - The configuration values are retrieved using the 'azd env get-values' command. + +.EXAMPLE + ./validate-params.ps1 + + This example runs the script to validate the parameters using the default configuration values. +#> + + +$azdConfig = azd env get-values -o json | ConvertFrom-Json -Depth 9 -AsHashtable + + +$environmentType = $azdConfig['ENVIRONMENT'] ?? 'dev' + +# Block invalid deployment scenarios by helping the user understand the valid AZD options +if ($environmentType -ne 'dev' -and $environmentType -ne 'prod') { + Write-Error "Invalid AZD environment type: '$environmentType'. Valid values are 'dev' or 'prod'." + exit 1 +} \ No newline at end of file diff --git a/infra/scripts/preprovision/validate-params.sh b/infra/scripts/preprovision/validate-params.sh new file mode 100755 index 00000000..9de16cc8 --- /dev/null +++ b/infra/scripts/preprovision/validate-params.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# This script validates the parameters for the deployment of the Azure DevOps environment. + +# The script retrieves the configuration values from Azure DevOps and validates the environment type and network isolation settings. +# It checks if the environment type is either 'dev' or 'prod' and if the network isolation is enabled for the 'prod' environment type. +# If any of the parameters are invalid, an error message is displayed and the script exits with a non-zero status code. + +# This script requires the Azure CLI to be installed and logged in to Azure DevOps. +# The configuration values are retrieved using the 'azd env get-values' command. + +# Example usage: ./validate-params.sh + +environmentType=$(azd env get-values -o json | jq -r '.ENVIRONMENT') + +# default environmentType to dev if not set +if [[ $environmentType == "null" ]]; then + environmentType="dev" +fi + +# Block invalid deployment scenarios by helping the user understand the valid AZD options +if [[ $environmentType != "dev" && $environmentType != "prod" ]]; then + echo "" + echo " Invalid AZD environment type: '$environmentType'. Valid values are 'dev' or 'prod'." + exit 1 +fi \ No newline at end of file diff --git a/infra/scripts/preprovision/whats-my-ip.ps1 b/infra/scripts/preprovision/whats-my-ip.ps1 new file mode 100644 index 00000000..8f7e3ffc --- /dev/null +++ b/infra/scripts/preprovision/whats-my-ip.ps1 @@ -0,0 +1,19 @@ +<# +.SYNOPSIS + This script will be run by the Azure Developer CLI. + + Retrieves the public IP address of the current system, as seen by Azure. To do this, it + uses ipinfo.io as an external service. Afterwards, it sets the AZD_IP_ADDRESS environment + variable and sets the `azd env set` command to set it within Azure Developer CLI as well. +#> + +$ipaddr = Invoke-RestMethod -Uri https://ipinfo.io/ip + +# if $ipaddress is empty, exit with error +if ([string]::IsNullOrEmpty($ipaddr)) { + Write-Error "Unable to retrieve public IP address" + exit 1 +} + +$env:AZD_IP_ADDRESS = $ipaddr +azd env set AZD_IP_ADDRESS $ipaddr \ No newline at end of file diff --git a/infra/scripts/preprovision/whats-my-ip.sh b/infra/scripts/preprovision/whats-my-ip.sh new file mode 100755 index 00000000..63e016a5 --- /dev/null +++ b/infra/scripts/preprovision/whats-my-ip.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +# This script will be run by the Azure Developer CLI. +# +# Retrieves the public IP address of the current system, as seen by Azure. To do this, it +# uses ipinfo.io as an external service. Afterwards, it sets the AZD_IP_ADDRESS environment +# variable and sets the `azd env set` command to set it within Azure Developer CLI as well. + +echo '...make API call' +ipaddress=`curl -s https://ipinfo.io/ip` + +# if $ipaddress is empty, exit with error +if [ -z "$ipaddress" ]; then + echo '...no IP address returned' + exit 1 +fi + +echo '...export' +export AZD_IP_ADDRESS=$ipaddress + +echo '...set value' +azd env set AZD_IP_ADDRESS $ipaddress \ No newline at end of file diff --git a/infra/types/ApplicationIdentity.bicep b/infra/types/ApplicationIdentity.bicep new file mode 100644 index 00000000..a71c8746 --- /dev/null +++ b/infra/types/ApplicationIdentity.bicep @@ -0,0 +1,9 @@ +// From: infra/types/ApplicationIdentity.bicep +@description('Type describing an application identity.') +type ApplicationIdentity = { + @description('The ID of the identity') + principalId: string + + @description('The type of identity - either ServicePrincipal or User') + principalType: 'ServicePrincipal' | 'User' +} diff --git a/infra/types/BuildAgentSettings.bicep b/infra/types/BuildAgentSettings.bicep new file mode 100644 index 00000000..a9a706a6 --- /dev/null +++ b/infra/types/BuildAgentSettings.bicep @@ -0,0 +1,18 @@ +// From: infra/types/BuildAgentSettings.bicep +@description('Describes the required settings for a Azure DevOps Pipeline runner') +type AzureDevopsSettings = { + @description('The URL of the Azure DevOps organization to use for this agent') + organizationUrl: string + + @description('The Personal Access Token (PAT) to use for the Azure DevOps agent') + token: string +} + +@description('Describes the required settings for a GitHub Actions runner') +type GithubActionsSettings = { + @description('The URL of the GitHub repository to use for this agent') + repositoryUrl: string + + @description('The Personal Access Token (PAT) to use for the GitHub Actions runner') + token: string +} diff --git a/infra/types/DeploymentSettings.bicep b/infra/types/DeploymentSettings.bicep new file mode 100644 index 00000000..9041a137 --- /dev/null +++ b/infra/types/DeploymentSettings.bicep @@ -0,0 +1,39 @@ +// From: infra/types/DeploymentSettings.bicep +@description('Type that describes the global deployment settings') +type DeploymentSettings = { + @description('If \'true\', then two regional deployments will be performed.') + isMultiLocationDeployment: bool + + @description('If \'true\', use production SKUs and settings.') + isProduction: bool + + @description('If \'true\', isolate the workload in a virtual network.') + isNetworkIsolated: bool + + @description('If \'false\', then this is a multi-location deployment for the second location.') + isPrimaryLocation: bool + + @description('The Azure region to host resources') + location: string + + @description('The name of the workload.') + name: string + + @description('The ID of the principal that is being used to deploy resources.') + principalId: string + + @description('The type of the \'principalId\' property.') + principalType: 'ServicePrincipal' | 'User' + + @description('The token to use for naming resources. This should be unique to the deployment.') + resourceToken: string + + @description('The development stage for this application') + stage: 'dev' | 'prod' + + @description('The common tags that should be used for all created resources') + tags: object + + @description('The common tags that should be used for all workload resources') + workloadTags: object +} diff --git a/infra/types/DiagnosticSettings.bicep b/infra/types/DiagnosticSettings.bicep new file mode 100644 index 00000000..79642756 --- /dev/null +++ b/infra/types/DiagnosticSettings.bicep @@ -0,0 +1,15 @@ +// From: infra/types/DiagnosticSettings.bicep +@description('The diagnostic settings for a resource') +type DiagnosticSettings = { + @description('The number of days to retain log data.') + logRetentionInDays: int + + @description('The number of days to retain metric data.') + metricRetentionInDays: int + + @description('If true, enable diagnostic logging.') + enableLogs: bool + + @description('If true, enable metrics logging.') + enableMetrics: bool +} diff --git a/infra/types/FrontDoorSettings.bicep b/infra/types/FrontDoorSettings.bicep new file mode 100644 index 00000000..8c7e4479 --- /dev/null +++ b/infra/types/FrontDoorSettings.bicep @@ -0,0 +1,15 @@ +// From: infra/types/FrontDoorSettings.bicep +@description('Type describing the settings for Azure Front Door.') +type FrontDoorSettings = { + @description('The name of the Azure Front Door endpoint') + endpointName: string + + @description('Front Door Id used for traffic restriction') + frontDoorId: string + + @description('The hostname that can be used to access Azure Front Door content.') + hostname: string + + @description('The profile name that is used for configuring Front Door routes.') + profileName: string +} diff --git a/infra/types/PrivateEndpointSettings.bicep b/infra/types/PrivateEndpointSettings.bicep new file mode 100644 index 00000000..1b011476 --- /dev/null +++ b/infra/types/PrivateEndpointSettings.bicep @@ -0,0 +1,15 @@ +// From: infra/types/PrivateEndpointSettings.bicep +@description('Type describing the private endpoint settings.') +type PrivateEndpointSettings = { + @description('The name of the resource group to hold the Private DNS Zone. By default, this uses the same resource group as the resource.') + dnsResourceGroupName: string + + @description('The name of the private endpoint resource.') + name: string + + @description('The name of the resource group to hold the private endpoint.') + resourceGroupName: string + + @description('The ID of the subnet to link the private endpoint to.') + subnetId: string +} diff --git a/known-issues.md b/known-issues.md index de0fa8fe..b1a302d2 100644 --- a/known-issues.md +++ b/known-issues.md @@ -1,58 +1,6 @@ # Known issues This document helps with troubleshooting and provides an introduction to the most requested features, gotchas, and questions. -## Work from our backlog -These issues relate to content in our sample that we're working to modify. Open issues are provided for further detail and status updates. +## Data consistency for multi-regional deployments -### Improved DevOps flows and QA -- [GH Action to Deploy Web App with App Registration](https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/298) - -### Data consistency for multi-regional deployments - -This sample includes a feature to deploy to two Azure regions. The feature is intended to support the high availability scenario by deploying resources in an active/passive configuration. The sample currently supports the ability to fail-over web-traffic so requests can be handled from a second region. However it does not support data synchronization between two regions. - -This can result in users losing trust in the system when they observe that the system is online but their data is missing. The following issues represent the work remaining to address data synchronization. - -Open issues: -* [Implement multiregional Azure SQL](https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/44) -* [Implement multiregional Storage](https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/122) - -## Troubleshooting -The following topics are intended to help readers with our most commonly reported issues. - -* **Cannot execute shellscript `/bin/bash^M: bad interpreter`** - This error happens when Windows users checked out code from a Windows environment - and try to execute the code from Windows Subsystem for Linux (WSL). The issue is - caused by Git tools that automatically convert `LF` characters based on the local - environment. - - Run the following commands to change the windows line endings to linux line endings: - - ```bash - sed "s/$(printf '\r')\$//" -i ./infra/createAppRegistrations.sh - sed "s/$(printf '\r')\$//" -i ./infra/deploymentScripts/validateDeployment.sh - sed "s/$(printf '\r')\$//" -i ./infra/localDevScripts/addLocalIPToSqlFirewall.sh - sed "s/$(printf '\r')\$//" -i ./infra/localDevScripts/getSecretsForLocalDev.sh - sed "s/$(printf '\r')\$//" -i ./infra/localDevScripts/makeSqlUserAccount.sh - ``` - -* **Error: no project exists; to create a new project, run 'azd init'** - This error is most often reported when users try to run `azd` commands before running the `cd` command to switch to the directory where the repo was cloned. - - > You may need to `cd` into the directory you cloned to run this command. - -* **The deployment 'relecloudresources' already exists in location** - This error most often happens when trying a new region with the same for `$myEnvironment` - - When the `azd provision` command runs it creates a deployment resource in your subscription. You must delete this deployment before you can change the Azure region. - - > Please see the [teardown instructions](README.md#clean-up-azure-resources) to address this issue. - -* **Error: Invalid value specified for property 'web' of resource 'Application'** - This error most often happens when the user is running the 'createAppRegistrations.sh' file to create new app registrations and the region of user is different than the region of provisioned azure resources. For ex. the user from Canada is running this script on their local machine and the Azure region selected is East US. - - > You may need to wait a bit longer (15-20 minutes) before running the below command - - ```bash - ./infra/createAppRegistrations.sh -g "$myEnvironmentName-rg" - ``` \ No newline at end of file +This sample includes a feature to deploy to two Azure regions. The feature is intended to support the high availability scenario by deploying resources in an active/passive configuration. The sample currently supports the ability to fail-over web-traffic so requests can be handled from a second region. However it does not support data synchronization between two regions. \ No newline at end of file diff --git a/prerequisites.md b/prerequisites.md new file mode 100644 index 00000000..ccd5cedd --- /dev/null +++ b/prerequisites.md @@ -0,0 +1,74 @@ +# Prerequisites + + If you want to use a [VSCode Dev Container](https://code.visualstudio.com/docs/devcontainers/containers#_system-requirements) see the `VSCode Dev Container prerequisites` section below. + + +## Pre-requisites + +> ⚠️ Note that for the `Connect-AzAccount` and `azd auth login` you must use the same account. And, you may also need to specify the `--tenant` option or `--tenant-id` as required by your administrator. + +The following tools are pre-requisites to running the associated deployment steps on Windows without using the Dev Container. + +1. To run the scripts, Windows users require PowerShell 7.2 (LTS) or above. + + 1. PowerShell users - [Install PowerShell](https://learn.microsoft.com/powershell/scripting/install/installing-powershell-on-windows) + Run the following to verify that you're running the latest PowerShell + + ```ps1 + $PsVersionTable + ``` + +1. [Install Git](https://github.com/git-guides/install-git) + Run the following to verify that git is available + ```ps1 + git version + ``` + +1. [Install the Azure CLI](https://docs.microsoft.com/cli/azure/install-azure-cli). + Run the following command to verify that you're running version + 2.38.0 or higher. + + ```ps1 + az version + ``` + + After the installation, run the following command to [sign in to Azure PowerShell interactively](https://learn.microsoft.com/powershell/azure/authenticate-interactive). + + ```ps1 + Connect-AzAccount + ``` +1. [Upgrade the Azure CLI Bicep extension](https://learn.microsoft.com/azure/azure-resource-manager/bicep/install#azure-cli). + Run the following command to verify that you're running version 0.12.40 or higher. + + ```ps1 + az bicep version + ``` + +1. [Install the Azure Dev CLI](https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd). + Run the following command to verify that the Azure Dev CLI is installed. + + ```ps1 + azd auth login + ``` + +1. [Install .NET 7 SDK](https://dotnet.microsoft.com/download/dotnet/7.0) + Run the following command to verify that the .NET SDK 7.0 is installed. + ```ps1 + dotnet --version + ``` + +## Platform compatibility + +| | Native | Dev Container | +|-------------|-----------|--------------| +| Windows | ✅ | ✅ | +| Windows WSL | ✅ | ✅ | +| macOS | ✅ | ✅ | +| macOS arm64 | ✅ | ✅ | + +## VSCode Dev Container prerequisites + +1. Docker Desktop +1. VSCode +1. VSCode ms-vscode-remote.remote-containers extension +1. git \ No newline at end of file diff --git a/prod-deployment.md b/prod-deployment.md new file mode 100644 index 00000000..9e3f38c2 --- /dev/null +++ b/prod-deployment.md @@ -0,0 +1,269 @@ +# Steps to deploy the production deployment +This section describes the deployment steps for the reference implementation of a reliable web application pattern with .NET on Microsoft Azure. These steps guide you through using the jump box that is deployed when performing a network isolated deployment because access to resources will be restricted from public network access and must be performed from a machine connected to the vnet. + +![Diagram showing the network focused architecture of the reference implementation.](./assets/icons/reliable-web-app-vnet.svg) + +## Prerequisites + +We recommend that you use a Dev Container to deploy this application. The requirements are as follows: + +- [Azure Subscription](https://azure.microsoft.com/pricing/member-offers/msdn-benefits-details/). +- [Visual Studio Code](https://code.visualstudio.com/). +- [Docker Desktop](https://www.docker.com/get-started/). +- [Permissions to register an application in Microsoft Entra ID](https://learn.microsoft.com/azure/active-directory/develop/quickstart-register-app). +- Visual Studio Code [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). + +If you do not wish to use a Dev Container, please refer to the [prerequisites](prerequisites.md) for detailed information on how to set up your development system to build, run, and deploy the application. + +> **Note** +> +> These steps are used to connect to a Linux jump box where you can deploy the code. The jump box is not designed to be a build server. You should use a devOps pipeline to manage build agents and deploy code into the environment. Also note that for this content the jump box is a Linux VM. This can be swapped with a Windows VM based on your organization's requirements. + +## Steps to deploy the reference implementation + +The following detailed deployment steps assume you are using a Dev Container inside Visual Studio Code. + +### 1. Log in to Azure + +1. Start a powershell session in the dev container terminal: + + ```sh + pwsh + ``` + +1. Import the Azure cmdlets: + + ```pwsh + Import-Module Az.Resources + ``` + +1. Log in to Azure: + + ```pwsh + Connect-AzAccount + ``` + +1. Set the subscription to the one you want to use (you can use [Get-AzSubscription](https://learn.microsoft.com/powershell/module/az.accounts/get-azsubscription?view=azps-11.3.0) to list available subscriptions): + + + ```pwsh + $AZURE_SUBSCRIPTION_ID="" + ``` + + ```pwsh + Set-AzContext -SubscriptionId $AZURE_SUBSCRIPTION_ID + ``` + +1. Azure Developer CLI (azd) has its own authentication context. Run the following command to authenticate to Azure: + + ```pwsh + azd auth login + ``` + + +### 2. Provision the app + +1. Create a new AZD environment to store your deployment configuration values: + + ```pwsh + azd env new + ``` + +1. Set the default subscription for the azd context: + + ```pwsh + azd env set AZURE_SUBSCRIPTION_ID $AZURE_SUBSCRIPTION_ID + ``` + +1. To create the prod deployment: + + ```pwsh + azd env set ENVIRONMENT prod + ``` + +1. Production is a multi-region deployment. Choose an Azure region for the primary deployment (Run `(Get-AzLocation).Location` to see a list of locations): + + ```pwsh + azd env set AZURE_LOCATION + ``` + + *You want to make sure the region has availability zones. Azure App Service is configured with [Availability zone support](https://learn.microsoft.com/en-us/azure/reliability/reliability-app-service?tabs=graph%2Ccli#availability-zone-support).* + +1. Choose an Azure region for the secondary deployment: + + ```pwsh + azd env set AZURE_SECONDARY_LOCATION + ``` + + *We encourage readers to choose paired regions for multi-regional web apps. Paired regions typically offer low network latency, data residency in the same geography, and sequential updating. Read [Azure paired regions](https://learn.microsoft.com/en-us/azure/reliability/cross-region-replication-azure#azure-paired-regions) to learn more about these regions.* + +1. Run the following command to create the Azure resources (about 45-minutes to provision): + + ```pwsh + azd provision + ``` + +### 3. Upload the code to the jump box + +> **WARNING** +> +> When the prod deployment is performed the Key Vault resource will be deployed with public network access enabled. This allows the reader to access the Key Vault to retrieve the username and password for the jump box. This also allows you to save data created by the `create-app-registration` script directly to the Key Vault. We recommend reviewing this approach with your security team as you may want to change this approach. One option to consider is adding the jump box to the domain, disabling public network access for Key Vault, and running the `create-app-registration` script from the jump box. + +To retrieve the generated password: + +1. Retrieve the username and password for your jump box: + + - Locate the Hub resource group in the Azure Portal. + - Open the Azure Key Vault from the list of resources. + - Select **Secrets** from the menu sidebar. + - Select **Jumpbox--AdministratorPassword**. + - Select the currently enabled version. + - Press **Show Secret Value**. + - Note the secret value for later use. + - Repeat the proecess for the **Jumpbox--AdministratorUsername** secret. + +1. Start a new PowerShell session in the terminal (In VS Code use `Ctrl+Shift+~`). Run the following command from the dev container terminal to start a new PowerShell session: + ``` + pwsh + ``` + +1. We use the [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/) to create a bastion tunnel that allows us to connect to the jump box: + + + + ```pwsh + az login + ``` + + ```pwsh + $AZURE_SUBSCRIPTION_ID = ((azd env get-values --output json | ConvertFrom-Json).AZURE_SUBSCRIPTION_ID) + ``` + + ```pwsh + az account set --subscription $AZURE_SUBSCRIPTION_ID + ``` + + +1. Run the following to set the environment variables for the bastion tunnel: + + ```pwsh + $bastionName = ((azd env get-values --output json | ConvertFrom-Json).BASTION_NAME) + $resourceGroupName = ((azd env get-values --output json | ConvertFrom-Json).BASTION_RESOURCE_GROUP) + $targetResourceId = ((azd env get-values --output json | ConvertFrom-Json).JUMPBOX_RESOURCE_ID) + ``` + +1. Run the following command to create a bastion tunnel to the jump box: + ```pwsh + az network bastion tunnel --name $bastionName --resource-group $resourceGroupName --target-resource-id $targetResourceId --resource-port 22 --port 50022 + ``` + + > **NOTE** + > + > Now that the tunnel is open, change back to use the original PowerShell session to deploy the code. + + +1. From PowerShell use the following SCP command to upload the code to the jump box (use the password you retrieved from Key Vault to authenticate the SCP command): + ```shell + scp -r -P 50022 * azureadmin@127.0.0.1:/home/azureadmin/web-app-pattern + ``` + + > If you were unable to connect due to [Remote host identification has changed](troubleshooting.md#remote-host-identification-has-changed) + +1. From PowerShell use the SCP command to upload the AZD environment to the jump box: + ```shell + scp -r -P 50022 ./.azure azureadmin@127.0.0.1:/home/azureadmin/web-app-pattern + ``` + +1. Run the following command to start a shell session on the jump box: + + ```shell + ssh azureadmin@127.0.0.1 -p 50022 + ``` + +### 4. Deploy code from the jump box + +1. Change to the directory where you uploaded the code: + + ```shell + cd web-app-pattern + ``` + +1. Change the exeuatable permissions on the scripts: + + + ```shell + chmod +x ./infra/scripts/**/*.sh + ``` + +1. Start a PowerShell session: + + ```shell + pwsh + ``` + +1. [Sign in to Azure PowerShell interactively](https://learn.microsoft.com/powershell/azure/authenticate-interactive): + + ```pwsh + Connect-AzAccount -UseDeviceAuthentication + ``` + + ```pwsh + Set-AzContext -SubscriptionId ((azd env get-values --output json | ConvertFrom-Json).AZURE_SUBSCRIPTION_ID) + ``` + +1. [Sign in to azd](https://learn.microsoft.com/azure/developer/azure-developer-cli/reference#azd-auth-login): + + ```pwsh + azd auth login --use-device-code + ``` + +1. Deploy the application to the primary region using: + + + + ```pwsh + azd deploy + ``` + + It takes approximately 5 minutes to deploy the code. + + > **WARNING** + > + > In some scenarios, the DNS entries for resources secured with Private Endpoint may have been cached incorrectly. It can take up to 10-minutes for the DNS cache to expire. + +1. Deploy the application to the secondary region using: + + ```pwsh + azd env set AZURE_RESOURCE_GROUP ((azd env get-values --output json | ConvertFrom-Json).SECONDARY_RESOURCE_GROUP) + ``` + + ```pwsh + azd deploy + ``` + +1. Use the URL displayed in the console output to launch the Relecloud application that you have deployed: + + ![screenshot of Relecloud app home page](assets/images/WebAppHomePage.png) + +### 5. Teardown + +1. Close the PowerShell session on the jump box: + + ```shell + exit + ``` + +1. Close your SSH session: + + ```shell + exit + ``` + +1. Close your background shell that opened the bastion tunnel with the interrupt command Ctrl+C. + +1. To tear down the deployment, run the following command from your dev container to remove all resources from Azure: + + ```pwsh + azd down --purge --force + ``` \ No newline at end of file diff --git a/src/Relecloud.Web.Api/Infrastructure/RetryTestingMiddleware.cs b/src/Relecloud.Web.Api/Infrastructure/RetryTestingMiddleware.cs deleted file mode 100644 index 50b5d7c5..00000000 --- a/src/Relecloud.Web.Api/Infrastructure/RetryTestingMiddleware.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System.Net; - -/* -NOTICE: This class is not intended for production scenarios. - -This middleware feature is included to demonstrate the Retry and -Circuit Breaker patterns that are discussed in the guide. - -Adding this feature to a production web app may cause stability issues. -*/ -namespace Relecloud.Web.Api.Infrastructure -{ - public class RetryTestingMiddleware - { - private readonly RequestDelegate _next; - private int _requestCount = 0; - - public RetryTestingMiddleware(RequestDelegate next) - { - _next = next; - } - - public async Task InvokeAsync(HttpContext context) - { - var config = context.RequestServices.GetService(); - if (config != null) - { - if (!string.IsNullOrEmpty(config["Api:App:RetryDemo"])) - { - int errorRate = 2; - if (int.TryParse(config["Api:App:RetryDemo"], out int newErrorRate)) - { - //by default this middleware throws an error every-other time - //we can use the config to override this and change the frequency - errorRate = newErrorRate; - } - if (_requestCount++ % errorRate == 0) - { - // When enabled this simulation demonstrates the retry pattern - await ReturnErrorResponse(context); - } - } - } - - await _next(context); - } - - private Task ReturnErrorResponse(HttpContext context) - { - context.Response.ContentType = "application/json"; - context.Response.StatusCode = (int)HttpStatusCode.ServiceUnavailable; - - return Task.CompletedTask; - } - } - - public static class RetryTestingMiddlewareExtensions - { - public static IApplicationBuilder UseRetryTestingMiddleware( - this IApplicationBuilder builder) - { - return builder.UseMiddleware(); - } - } -} diff --git a/src/Relecloud.Web.Api/Services/TicketManagementService/TicketImageService.cs b/src/Relecloud.Web.Api/Services/TicketManagementService/TicketImageService.cs deleted file mode 100644 index 171567f1..00000000 --- a/src/Relecloud.Web.Api/Services/TicketManagementService/TicketImageService.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Azure.Identity; -using Azure.Storage.Blobs; - -namespace Relecloud.Web.Api.Services.TicketManagementService -{ - public class TicketImageService : ITicketImageService - { - private readonly IConfiguration configuration; - private readonly ILogger logger; - public TicketImageService(IConfiguration configuration, ILogger logger) - { - this.configuration = configuration; - this.logger = logger; - } - - public Task GetTicketImagesAsync(string imageName) - { - try - { - var storageUrl = configuration["App:StorageAccount:Url"]; - var storageContainer = configuration["App:StorageAccount:Container"]; - Uri blobUri = new($"{storageUrl}/{storageContainer}/{imageName}"); - - BlobClient blobClient = new(blobUri, new DefaultAzureCredential()); - return blobClient.OpenReadAsync(); - } - catch (Exception ex) - { - this.logger.LogError(ex, $"Unable to retrieve image {imageName}"); - return Task.FromResult(Stream.Null); - } - } - } -} \ No newline at end of file diff --git a/src/Relecloud.Web.Api/Controllers/ConcertController.cs b/src/Relecloud.Web.CallCenter.Api/Controllers/ConcertController.cs similarity index 100% rename from src/Relecloud.Web.Api/Controllers/ConcertController.cs rename to src/Relecloud.Web.CallCenter.Api/Controllers/ConcertController.cs diff --git a/src/Relecloud.Web.Api/Controllers/ImageController.cs b/src/Relecloud.Web.CallCenter.Api/Controllers/ImageController.cs similarity index 100% rename from src/Relecloud.Web.Api/Controllers/ImageController.cs rename to src/Relecloud.Web.CallCenter.Api/Controllers/ImageController.cs diff --git a/src/Relecloud.Web.Api/Controllers/SearchController.cs b/src/Relecloud.Web.CallCenter.Api/Controllers/SearchController.cs similarity index 100% rename from src/Relecloud.Web.Api/Controllers/SearchController.cs rename to src/Relecloud.Web.CallCenter.Api/Controllers/SearchController.cs diff --git a/src/Relecloud.Web.Api/Controllers/TicketController.cs b/src/Relecloud.Web.CallCenter.Api/Controllers/TicketController.cs similarity index 87% rename from src/Relecloud.Web.Api/Controllers/TicketController.cs rename to src/Relecloud.Web.CallCenter.Api/Controllers/TicketController.cs index 209d0afc..7fefc438 100644 --- a/src/Relecloud.Web.Api/Controllers/TicketController.cs +++ b/src/Relecloud.Web.CallCenter.Api/Controllers/TicketController.cs @@ -90,23 +90,36 @@ public async Task PurchaseTicketsAsync(PurchaseTicketsRequest pur } var errors = new List(); - if (purchaseTicketRequest.PaymentDetails == null) + if (purchaseTicketRequest == null) { - errors.Add("Missing required payment details"); + errors.Add("Purchase ticket request must not be null"); } - if (purchaseTicketRequest.ConcertIdsAndTicketCounts == null) + else { - errors.Add("Missing required concert ticket details"); - } - if (string.IsNullOrEmpty(purchaseTicketRequest.UserId)) - { - errors.Add("Missing required userId"); + if (purchaseTicketRequest.PaymentDetails == null) + { + errors.Add("Missing required payment details"); + } + if (purchaseTicketRequest.ConcertIdsAndTicketCounts == null) + { + errors.Add("Missing required concert ticket details"); + } + if (string.IsNullOrEmpty(purchaseTicketRequest.UserId)) + { + errors.Add("Missing required userId"); + } } + if (errors.Any()) { return BadRequest(PurchaseTicketsResult.ErrorResponse(errors)); } + await this.concertRepository.CreateOrUpdateUserAsync(new User{ + Id = purchaseTicketRequest!.UserId ?? Guid.Empty.ToString(), + DisplayName = purchaseTicketRequest!.PaymentDetails!.Name + }); + var orderTotal = await TotalInvoiceAmountAsync(purchaseTicketRequest); var preAuthRequest = new PreAuthPaymentRequest { @@ -121,11 +134,7 @@ public async Task PurchaseTicketsAsync(PurchaseTicketsRequest pur return BadRequest(PurchaseTicketsResult.ErrorResponse("We were unable to process this card. Please review your payment details.")); } - #pragma warning disable CS8602 // Dereference of a possibly null reference. - //null chec handled by error messages above - var customer = await this.concertRepository.GetCustomerByEmailAsync(purchaseTicketRequest.PaymentDetails.Email); - #pragma warning restore CS8602 // Dereference of a possibly null reference. - + var customer = await this.concertRepository.GetCustomerByEmailAsync(purchaseTicketRequest.PaymentDetails!.Email); var customerId = customer?.Id ?? 0; if (customerId == 0) { diff --git a/src/Relecloud.Web.Api/Controllers/UserController.cs b/src/Relecloud.Web.CallCenter.Api/Controllers/UserController.cs similarity index 100% rename from src/Relecloud.Web.Api/Controllers/UserController.cs rename to src/Relecloud.Web.CallCenter.Api/Controllers/UserController.cs diff --git a/src/Relecloud.Web.Api/Infrastructure/ApplicationInitializer.cs b/src/Relecloud.Web.CallCenter.Api/Infrastructure/ApplicationInitializer.cs similarity index 100% rename from src/Relecloud.Web.Api/Infrastructure/ApplicationInitializer.cs rename to src/Relecloud.Web.CallCenter.Api/Infrastructure/ApplicationInitializer.cs diff --git a/src/Relecloud.Web.Api/Infrastructure/CacheKeys.cs b/src/Relecloud.Web.CallCenter.Api/Infrastructure/CacheKeys.cs similarity index 100% rename from src/Relecloud.Web.Api/Infrastructure/CacheKeys.cs rename to src/Relecloud.Web.CallCenter.Api/Infrastructure/CacheKeys.cs diff --git a/src/Relecloud.Web.CallCenter.Api/Infrastructure/IntermittentErrorRequestMiddleware.cs b/src/Relecloud.Web.CallCenter.Api/Infrastructure/IntermittentErrorRequestMiddleware.cs new file mode 100644 index 00000000..6b420bc6 --- /dev/null +++ b/src/Relecloud.Web.CallCenter.Api/Infrastructure/IntermittentErrorRequestMiddleware.cs @@ -0,0 +1,74 @@ +namespace Relecloud.Web.Api.Infrastructure; + +using System.Net; + +/* +NOTICE: This class is not intended for production scenarios. + +This middleware feature is included to demonstrate the Retry and +Circuit Breaker patterns that are discussed in the guide. + +Adding this feature to a production web app may cause stability issues. +*/ +public class IntermittentErrorRequestMiddleware +{ + private readonly RequestDelegate _next; + private static int _requestCount = 0; + private static int _backToBackExceptionCount = -1; + + public IntermittentErrorRequestMiddleware(RequestDelegate next) + { + _next = next; + } + + public async Task InvokeAsync(HttpContext context) + { + if (_backToBackExceptionCount == -1) + { + LoadConfiguration(context); + } + + if (_backToBackExceptionCount > 0 && ++_requestCount % (_backToBackExceptionCount + 1) > 0) + { + // When enabled this simulation demonstrates the retry pattern + await ReturnErrorResponse(context); + return; + } + + await _next(context); + } + + private static void LoadConfiguration(HttpContext context) + { + var config = context.RequestServices.GetService(); + if (config != null) + { + if (!string.IsNullOrEmpty(config["Api:App:RetryDemo"])) + { + if (int.TryParse(config["Api:App:RetryDemo"], out int newErrorRate)) + { + // When set to 1 this simulation will return an error every other request + // When set to 2 this simulation will return two errors between successful requests + _backToBackExceptionCount = newErrorRate; + } + } + } + } + + private Task ReturnErrorResponse(HttpContext context) + { + context.Response.ContentType = "application/json"; + context.Response.StatusCode = (int)HttpStatusCode.ServiceUnavailable; + + return Task.CompletedTask; + } +} + +public static class IntermittentErrorRequestMiddlewareExtensions +{ + public static IApplicationBuilder UseIntermittentErrorRequestMiddleware( + this IApplicationBuilder builder) + { + return builder.UseMiddleware(); + } +} diff --git a/src/Relecloud.Web.Api/Infrastructure/ModelStateDictionaryExtensions.cs b/src/Relecloud.Web.CallCenter.Api/Infrastructure/ModelStateDictionaryExtensions.cs similarity index 100% rename from src/Relecloud.Web.Api/Infrastructure/ModelStateDictionaryExtensions.cs rename to src/Relecloud.Web.CallCenter.Api/Infrastructure/ModelStateDictionaryExtensions.cs diff --git a/src/Relecloud.Web.Api/Infrastructure/Roles.cs b/src/Relecloud.Web.CallCenter.Api/Infrastructure/Roles.cs similarity index 100% rename from src/Relecloud.Web.Api/Infrastructure/Roles.cs rename to src/Relecloud.Web.CallCenter.Api/Infrastructure/Roles.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220125000051_AddVisibleFields.Designer.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220125000051_AddVisibleFields.Designer.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220125000051_AddVisibleFields.Designer.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220125000051_AddVisibleFields.Designer.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220125000051_AddVisibleFields.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220125000051_AddVisibleFields.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220125000051_AddVisibleFields.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220125000051_AddVisibleFields.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220125000722_AddAuditFieldsToConcert.Designer.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220125000722_AddAuditFieldsToConcert.Designer.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220125000722_AddAuditFieldsToConcert.Designer.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220125000722_AddAuditFieldsToConcert.Designer.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220125000722_AddAuditFieldsToConcert.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220125000722_AddAuditFieldsToConcert.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220125000722_AddAuditFieldsToConcert.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220125000722_AddAuditFieldsToConcert.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220126181356_AddCheckoutTables.Designer.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220126181356_AddCheckoutTables.Designer.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220126181356_AddCheckoutTables.Designer.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220126181356_AddCheckoutTables.Designer.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220126181356_AddCheckoutTables.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220126181356_AddCheckoutTables.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220126181356_AddCheckoutTables.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220126181356_AddCheckoutTables.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220208203826_CreateTicketNumbers.Designer.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220208203826_CreateTicketNumbers.Designer.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220208203826_CreateTicketNumbers.Designer.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220208203826_CreateTicketNumbers.Designer.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220208203826_CreateTicketNumbers.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220208203826_CreateTicketNumbers.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220208203826_CreateTicketNumbers.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220208203826_CreateTicketNumbers.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220208231619_SelectTicketManagementService.Designer.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220208231619_SelectTicketManagementService.Designer.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220208231619_SelectTicketManagementService.Designer.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220208231619_SelectTicketManagementService.Designer.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220208231619_SelectTicketManagementService.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220208231619_SelectTicketManagementService.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220208231619_SelectTicketManagementService.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220208231619_SelectTicketManagementService.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220209201351_TicketServiceConcertIdIsNullable.Designer.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220209201351_TicketServiceConcertIdIsNullable.Designer.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220209201351_TicketServiceConcertIdIsNullable.Designer.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220209201351_TicketServiceConcertIdIsNullable.Designer.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220209201351_TicketServiceConcertIdIsNullable.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220209201351_TicketServiceConcertIdIsNullable.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220209201351_TicketServiceConcertIdIsNullable.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220209201351_TicketServiceConcertIdIsNullable.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220215010613_AddTicketNumberToTicket.Designer.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220215010613_AddTicketNumberToTicket.Designer.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220215010613_AddTicketNumberToTicket.Designer.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220215010613_AddTicketNumberToTicket.Designer.cs diff --git a/src/Relecloud.Web.Api/Migrations/20220215010613_AddTicketNumberToTicket.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/20220215010613_AddTicketNumberToTicket.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/20220215010613_AddTicketNumberToTicket.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/20220215010613_AddTicketNumberToTicket.cs diff --git a/src/Relecloud.Web.Api/Migrations/ConcertDataContextModelSnapshot.cs b/src/Relecloud.Web.CallCenter.Api/Migrations/ConcertDataContextModelSnapshot.cs similarity index 100% rename from src/Relecloud.Web.Api/Migrations/ConcertDataContextModelSnapshot.cs rename to src/Relecloud.Web.CallCenter.Api/Migrations/ConcertDataContextModelSnapshot.cs diff --git a/src/Relecloud.Web.Api/Program.cs b/src/Relecloud.Web.CallCenter.Api/Program.cs similarity index 64% rename from src/Relecloud.Web.Api/Program.cs rename to src/Relecloud.Web.CallCenter.Api/Program.cs index a17c4b7a..ba8675b2 100644 --- a/src/Relecloud.Web.Api/Program.cs +++ b/src/Relecloud.Web.CallCenter.Api/Program.cs @@ -1,17 +1,21 @@ +// Copyright (c) Microsoft Corporation. All Rights Reserved. +// Licensed under the MIT License. + using Azure.Identity; using Microsoft.IdentityModel.Logging; using Relecloud.Web.Api; var builder = WebApplication.CreateBuilder(args); -var hasRequiredConfigSettings = !string.IsNullOrEmpty(builder.Configuration["Api:AppConfig:Uri"]); +var hasRequiredConfigSettings = !string.IsNullOrEmpty(builder.Configuration["App:AppConfig:Uri"]); if (hasRequiredConfigSettings) { builder.Configuration.AddAzureAppConfiguration(options => { options - .Connect(new Uri(builder.Configuration["Api:AppConfig:Uri"]), new DefaultAzureCredential()) + .Connect(new Uri(builder.Configuration["App:AppConfig:Uri"]), new DefaultAzureCredential()) + .UseFeatureFlags() // Feature flags will be loaded and, by default, refreshed every 30 seconds .ConfigureKeyVault(kv => { // Some of the values coming from Azure App Configuration are stored Key Vault, use @@ -32,7 +36,7 @@ } // Apps migrating to 6.0 don't need to use the new minimal hosting model -// https://learn.microsoft.com/aspnet/core/migration/50-to-60?view=aspnetcore-6.0&tabs=visual-studio#apps-migrating-to-60-dont-need-to-use-the-new-minimal-hosting-model +// https://learn.microsoft.com/en-us/aspnet/core/migration/50-to-60?view=aspnetcore-6.0&tabs=visual-studio#apps-migrating-to-60-dont-need-to-use-the-new-minimal-hosting-model var startup = new Startup(builder.Configuration); // Add services to the container. @@ -41,7 +45,7 @@ startup.ConfigureServices(builder.Services); } -var hasAzureAdSettings = !string.IsNullOrEmpty(builder.Configuration["Api:AzureAd:ClientId"]); +var hasMicrosoftEntraIdSettings = !string.IsNullOrEmpty(builder.Configuration["Api:MicrosoftEntraId:ClientId"]); var app = builder.Build(); @@ -49,9 +53,9 @@ { startup.Configure(app, app.Environment); } -else if (!hasAzureAdSettings) +else if (!hasMicrosoftEntraIdSettings) { - app.MapGet("/", () => "Could not find required Azure AD settings. Check your App Config Service, you may need to run the createAppRegistrations script."); + app.MapGet("/", () => "Could not find required Microsoft Entra ID settings. Check your App Config Service, you may need to run the createAppRegistrations script."); } else { diff --git a/src/Relecloud.Web.Api/Properties/launchSettings.json b/src/Relecloud.Web.CallCenter.Api/Properties/launchSettings.json similarity index 100% rename from src/Relecloud.Web.Api/Properties/launchSettings.json rename to src/Relecloud.Web.CallCenter.Api/Properties/launchSettings.json diff --git a/src/Relecloud.Web.Api/Relecloud.Web.Api.csproj b/src/Relecloud.Web.CallCenter.Api/Relecloud.Web.CallCenter.Api.csproj similarity index 96% rename from src/Relecloud.Web.Api/Relecloud.Web.Api.csproj rename to src/Relecloud.Web.CallCenter.Api/Relecloud.Web.CallCenter.Api.csproj index 81825756..348e8127 100644 --- a/src/Relecloud.Web.Api/Relecloud.Web.Api.csproj +++ b/src/Relecloud.Web.CallCenter.Api/Relecloud.Web.CallCenter.Api.csproj @@ -38,7 +38,7 @@ - + diff --git a/src/Relecloud.Web.Api/Services/IConcertRepository.cs b/src/Relecloud.Web.CallCenter.Api/Services/IConcertRepository.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/IConcertRepository.cs rename to src/Relecloud.Web.CallCenter.Api/Services/IConcertRepository.cs diff --git a/src/Relecloud.Web.Api/Services/IPaymentGatewayService.cs b/src/Relecloud.Web.CallCenter.Api/Services/IPaymentGatewayService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/IPaymentGatewayService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/IPaymentGatewayService.cs diff --git a/src/Relecloud.Web.Api/Services/MockServices/MockConcertRepository.cs b/src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockConcertRepository.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/MockServices/MockConcertRepository.cs rename to src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockConcertRepository.cs diff --git a/src/Relecloud.Web.Api/Services/MockServices/MockConcertSearchService.cs b/src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockConcertSearchService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/MockServices/MockConcertSearchService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockConcertSearchService.cs diff --git a/src/Relecloud.Web.Api/Services/MockServices/MockPaymentGatewayService.cs b/src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockPaymentGatewayService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/MockServices/MockPaymentGatewayService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockPaymentGatewayService.cs diff --git a/src/Relecloud.Web.Api/Services/MockServices/MockTicketImageService.cs b/src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockTicketImageService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/MockServices/MockTicketImageService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockTicketImageService.cs diff --git a/src/Relecloud.Web.Api/Services/MockServices/MockTicketManagementService.cs b/src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockTicketManagementService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/MockServices/MockTicketManagementService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockTicketManagementService.cs diff --git a/src/Relecloud.Web.Api/Services/MockServices/MockTicketRenderingService.cs b/src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockTicketRenderingService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/MockServices/MockTicketRenderingService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/MockServices/MockTicketRenderingService.cs diff --git a/src/Relecloud.Web.Api/Services/PaymentGatewayService/CapturePaymentRequest.cs b/src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/CapturePaymentRequest.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/PaymentGatewayService/CapturePaymentRequest.cs rename to src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/CapturePaymentRequest.cs diff --git a/src/Relecloud.Web.Api/Services/PaymentGatewayService/CapturePaymentResult.cs b/src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/CapturePaymentResult.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/PaymentGatewayService/CapturePaymentResult.cs rename to src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/CapturePaymentResult.cs diff --git a/src/Relecloud.Web.Api/Services/PaymentGatewayService/CapturePaymentResultStatus.cs b/src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/CapturePaymentResultStatus.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/PaymentGatewayService/CapturePaymentResultStatus.cs rename to src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/CapturePaymentResultStatus.cs diff --git a/src/Relecloud.Web.Api/Services/PaymentGatewayService/PreAuthPaymentRequest.cs b/src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/PreAuthPaymentRequest.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/PaymentGatewayService/PreAuthPaymentRequest.cs rename to src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/PreAuthPaymentRequest.cs diff --git a/src/Relecloud.Web.Api/Services/PaymentGatewayService/PreAuthPaymentResult.cs b/src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/PreAuthPaymentResult.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/PaymentGatewayService/PreAuthPaymentResult.cs rename to src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/PreAuthPaymentResult.cs diff --git a/src/Relecloud.Web.Api/Services/PaymentGatewayService/PreAuthPaymentResultStatus.cs b/src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/PreAuthPaymentResultStatus.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/PaymentGatewayService/PreAuthPaymentResultStatus.cs rename to src/Relecloud.Web.CallCenter.Api/Services/PaymentGatewayService/PreAuthPaymentResultStatus.cs diff --git a/src/Relecloud.Web.Api/Services/Search/AzureSearchConcertSearchService.cs b/src/Relecloud.Web.CallCenter.Api/Services/Search/AzureSearchConcertSearchService.cs similarity index 98% rename from src/Relecloud.Web.Api/Services/Search/AzureSearchConcertSearchService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/Search/AzureSearchConcertSearchService.cs index c06ce4e8..d8f31a55 100644 --- a/src/Relecloud.Web.Api/Services/Search/AzureSearchConcertSearchService.cs +++ b/src/Relecloud.Web.CallCenter.Api/Services/Search/AzureSearchConcertSearchService.cs @@ -32,7 +32,7 @@ public AzureSearchConcertSearchService(string searchServiceName, string concerts this.searchServiceUri = new Uri($"https://{searchServiceName}.search.windows.net"); this.concertsSqlDatabaseConnectionString = concertsSqlDatabaseConnectionString; - // https://learn.microsoft.com/azure/architecture/best-practices/retry-service-specific#retry-mechanism-5 + // https://learn.microsoft.com/en-us/azure/architecture/best-practices/retry-service-specific#retry-mechanism-5 // The default policy retries with exponential backoff when Azure Search returns a 5xx or 408 (Request Timeout) response. this.concertsIndexClient = new SearchClient(this.searchServiceUri, IndexNameConcerts, new DefaultAzureCredential()); } diff --git a/src/Relecloud.Web.Api/Services/Search/SqlDatabaseConcertSearchService.cs b/src/Relecloud.Web.CallCenter.Api/Services/Search/SqlDatabaseConcertSearchService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/Search/SqlDatabaseConcertSearchService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/Search/SqlDatabaseConcertSearchService.cs diff --git a/src/Relecloud.Web.Api/Services/SqlDatabaseConcertRepository/ConcertDataContext.cs b/src/Relecloud.Web.CallCenter.Api/Services/SqlDatabaseConcertRepository/ConcertDataContext.cs similarity index 98% rename from src/Relecloud.Web.Api/Services/SqlDatabaseConcertRepository/ConcertDataContext.cs rename to src/Relecloud.Web.CallCenter.Api/Services/SqlDatabaseConcertRepository/ConcertDataContext.cs index ec3adda3..534c5adf 100644 --- a/src/Relecloud.Web.Api/Services/SqlDatabaseConcertRepository/ConcertDataContext.cs +++ b/src/Relecloud.Web.CallCenter.Api/Services/SqlDatabaseConcertRepository/ConcertDataContext.cs @@ -45,8 +45,6 @@ public void Initialize() } // Add random concerts to the database. - // This is a work of fiction. Names, characters, places and incidents are used fictitiously as content for this demo - // Any resemblance to actual events or locales or persons, living or dead, is entirely coincidental var random = new Random(); var artists = new[] { new { Name = "Marina Rodríguez", Genre = "Pop", Tour = "Cosmic Festival", Description = "Marina Rodríguez (born August 16, 1978) is a fictional musician and singer-songwriter. She grew up in a rural town and began playing the piano at 5 years old. As a teenager, she started writing her own songs and performing at local venues. She gained a reputation as a talented musician and singer." }, diff --git a/src/Relecloud.Web.Api/Services/SqlDatabaseConcertRepository/SqlDatabaseConcertRepository.cs b/src/Relecloud.Web.CallCenter.Api/Services/SqlDatabaseConcertRepository/SqlDatabaseConcertRepository.cs similarity index 97% rename from src/Relecloud.Web.Api/Services/SqlDatabaseConcertRepository/SqlDatabaseConcertRepository.cs rename to src/Relecloud.Web.CallCenter.Api/Services/SqlDatabaseConcertRepository/SqlDatabaseConcertRepository.cs index 42c83386..eb417cba 100644 --- a/src/Relecloud.Web.Api/Services/SqlDatabaseConcertRepository/SqlDatabaseConcertRepository.cs +++ b/src/Relecloud.Web.CallCenter.Api/Services/SqlDatabaseConcertRepository/SqlDatabaseConcertRepository.cs @@ -141,8 +141,9 @@ public void Dispose() return null; } + // assumes email address is stored as LowerCase return await this.database.Customers.AsNoTracking() - .Where(u => u.Email.ToLower() == email.ToLower()).SingleOrDefaultAsync(); + .Where(u => u.Email == email.ToLower()).SingleOrDefaultAsync(); } public async Task CreateCustomerAsync(Customer newCustomer) diff --git a/src/Relecloud.Web.Api/Services/TicketManagementService/ITicketImageService.cs b/src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/ITicketImageService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/TicketManagementService/ITicketImageService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/ITicketImageService.cs diff --git a/src/Relecloud.Web.Api/Services/TicketManagementService/ITicketManagementService.cs b/src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/ITicketManagementService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/TicketManagementService/ITicketManagementService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/ITicketManagementService.cs diff --git a/src/Relecloud.Web.Api/Services/TicketManagementService/ITicketRenderingService.cs b/src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/ITicketRenderingService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/TicketManagementService/ITicketRenderingService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/ITicketRenderingService.cs diff --git a/src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/TicketImageService.cs b/src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/TicketImageService.cs new file mode 100644 index 00000000..b3db2b83 --- /dev/null +++ b/src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/TicketImageService.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All Rights Reserved. +// Licensed under the MIT License. + +using Azure.Storage.Blobs; + +namespace Relecloud.Web.Api.Services.TicketManagementService +{ + public class TicketImageService : ITicketImageService + { + private readonly ILogger logger; + private readonly BlobContainerClient blobContainerClient; + + public TicketImageService(IConfiguration configuration, BlobServiceClient blobServiceClient, ILogger logger) + { + this.logger = logger; + + // It is best practice to create Azure SDK clients once and reuse them. + // https://learn.microsoft.com/azure/storage/blobs/storage-blob-client-management#manage-client-objects + // https://devblogs.microsoft.com/azure-sdk/lifetime-management-and-thread-safety-guarantees-of-azure-sdk-net-clients/ + this.blobContainerClient = blobServiceClient.GetBlobContainerClient(configuration["App:StorageAccount:Container"]); + } + + public Task GetTicketImagesAsync(string imageName) + { + try + { + this.logger.LogInformation("Retrieving image {ImageName} from blob storage container {ContainerName}.", imageName, blobContainerClient.Name); + var blobClient = blobContainerClient.GetBlobClient(imageName); + + return blobClient.OpenReadAsync(); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Unable to retrieve image {ImageName} from blob storage container {ContainerName}", imageName, blobContainerClient.Name); + return Task.FromResult(Stream.Null); + } + } + } +} diff --git a/src/Relecloud.Web.Api/Services/TicketManagementService/TicketManagementService.cs b/src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/TicketManagementService.cs similarity index 100% rename from src/Relecloud.Web.Api/Services/TicketManagementService/TicketManagementService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/TicketManagementService.cs diff --git a/src/Relecloud.Web.Api/Services/TicketManagementService/TicketRenderingService.cs b/src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/TicketRenderingService.cs similarity index 98% rename from src/Relecloud.Web.Api/Services/TicketManagementService/TicketRenderingService.cs rename to src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/TicketRenderingService.cs index f55da842..e13d34c2 100644 --- a/src/Relecloud.Web.Api/Services/TicketManagementService/TicketRenderingService.cs +++ b/src/Relecloud.Web.CallCenter.Api/Services/TicketManagementService/TicketRenderingService.cs @@ -12,7 +12,7 @@ namespace Relecloud.Web.Api.Services.TicketManagementService { - public class TicketRenderingService : ITicketRenderingService + public class TicketRenderingService : ITicketRenderingService { private const string BlobNameFormatString = "ticket-{EntityId}.png"; @@ -101,7 +101,7 @@ private MemoryStream RenderImage(Ticket ticket) private async Task SaveImageAsync(Ticket ticket, MemoryStream ticketImageBlob) { - var storageUrl = configuration["App:StorageAccount:Url"]; + var storageUrl = configuration["App:StorageAccount:Uri"]; var storageContainer = configuration["App:StorageAccount:Container"]; var blobName = BlobNameFormatString.Replace("{EntityId}", ticket.Id.ToString()); Uri blobUri = new($"{storageUrl}/{storageContainer}/{blobName}"); diff --git a/src/Relecloud.Web.Api/Startup.cs b/src/Relecloud.Web.CallCenter.Api/Startup.cs similarity index 76% rename from src/Relecloud.Web.Api/Startup.cs rename to src/Relecloud.Web.CallCenter.Api/Startup.cs index 51384d54..236f1973 100644 --- a/src/Relecloud.Web.Api/Startup.cs +++ b/src/Relecloud.Web.CallCenter.Api/Startup.cs @@ -1,13 +1,19 @@ -using Microsoft.EntityFrameworkCore; +// Copyright (c) Microsoft Corporation. All Rights Reserved. +// Licensed under the MIT License. + +using Azure.Core; +using Azure.Identity; +using Azure.Storage.Blobs; +using Microsoft.EntityFrameworkCore; using Microsoft.Identity.Web; using Microsoft.IdentityModel.Logging; +using Relecloud.Web.Models.Services; using Relecloud.Web.Api.Infrastructure; using Relecloud.Web.Api.Services; using Relecloud.Web.Api.Services.MockServices; using Relecloud.Web.Api.Services.Search; using Relecloud.Web.Api.Services.SqlDatabaseConcertRepository; using Relecloud.Web.Api.Services.TicketManagementService; -using Relecloud.Web.Models.Services; using Relecloud.Web.Services.Search; using System.Diagnostics; @@ -23,11 +29,15 @@ public Startup(IConfiguration configuration) public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { + var azureCredential = GetAzureCredential(); + // Add services to the container. - AddAzureAdServices(services); + AddMicrosoftEntraIdServices(services); services.AddControllers(); + services.AddAzureAppConfiguration(); + // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle services.AddEndpointsApiExplorer(); services.AddSwaggerGen(); @@ -40,17 +50,18 @@ public void ConfigureServices(IServiceCollection services) AddPaymentGatewayService(services); AddTicketManagementService(services); AddTicketImageService(services); - services.AddHealthChecks(); // The ApplicationInitializer is injected in the Configure method with all its dependencies and will ensure // they are all properly initialized upon construction. services.AddScoped(); + + services.AddHealthChecks(); } - private void AddAzureAdServices(IServiceCollection services) + private void AddMicrosoftEntraIdServices(IServiceCollection services) { // Adds Microsoft Identity platform (AAD v2.0) support to protect this Api - services.AddMicrosoftIdentityWebApiAuthentication(Configuration, "Api:AzureAd"); + services.AddMicrosoftIdentityWebApiAuthentication(Configuration, "Api:MicrosoftEntraId"); } private void AddTicketManagementService(IServiceCollection services) @@ -68,12 +79,6 @@ private void AddTicketManagementService(IServiceCollection services) } } - - private void AddTicketImageService(IServiceCollection services) - { - services.AddScoped(); - } - private void AddAzureSearchService(IServiceCollection services) { var azureSearchServiceName = Configuration["App:AzureSearch:ServiceName"]; @@ -140,8 +145,33 @@ private void AddPaymentGatewayService(IServiceCollection services) services.AddScoped(); } + private void AddTicketImageService(IServiceCollection services) + { + // It is best practice to create Azure SDK clients once and reuse them. + // https://learn.microsoft.com/azure/storage/blobs/storage-blob-client-management#manage-client-objects + // https://devblogs.microsoft.com/azure-sdk/lifetime-management-and-thread-safety-guarantees-of-azure-sdk-net-clients/ + services.AddSingleton(); + var storageAccountUri = Configuration["App:StorageAccount:Uri"] + ?? throw new InvalidOperationException("Required configuration missing. Could not find App:StorageAccount:Uri setting."); + services.AddSingleton(sp => new BlobServiceClient(new Uri(storageAccountUri), GetAzureCredential())); + } + + private TokenCredential GetAzureCredential() => + Configuration["App:AzureCredentialType"] switch + { + "AzureCLI" => new AzureCliCredential(), + "Environment" => new EnvironmentCredential(), + "ManagedIdentity" => new ManagedIdentityCredential(Configuration["AZURE_CLIENT_ID"]), + "VisualStudio" => new VisualStudioCredential(), + "VisualStudioCode" => new VisualStudioCodeCredential(), + _ => new DefaultAzureCredential(new DefaultAzureCredentialOptions { ManagedIdentityClientId = Configuration["AZURE_CLIENT_ID"] }), + }; + public void Configure(WebApplication app, IWebHostEnvironment env) { + // Allows refreshing configuration values from Azure App Configuration + app.UseAzureAppConfiguration(); + // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { @@ -165,15 +195,17 @@ public void Configure(WebApplication app, IWebHostEnvironment env) IdentityModelEventSource.ShowPII = true; } - app.UseRetryTestingMiddleware(); + app.UseIntermittentErrorRequestMiddleware(); app.UseHttpsRedirection(); app.UseAuthentication(); app.UseAuthorization(); + + app.MapHealthChecks("/healthz"); + app.MapGet("/", () => "Default Web API endpoint"); app.MapControllers(); - app.MapHealthChecks("/healthz"); } } } diff --git a/src/Relecloud.Web.Api/appsettings.Development.json b/src/Relecloud.Web.CallCenter.Api/appsettings.Development.json similarity index 100% rename from src/Relecloud.Web.Api/appsettings.Development.json rename to src/Relecloud.Web.CallCenter.Api/appsettings.Development.json diff --git a/src/Relecloud.Web.Api/appsettings.json b/src/Relecloud.Web.CallCenter.Api/appsettings.json similarity index 89% rename from src/Relecloud.Web.Api/appsettings.json rename to src/Relecloud.Web.CallCenter.Api/appsettings.json index e2a8415f..19694647 100644 --- a/src/Relecloud.Web.Api/appsettings.json +++ b/src/Relecloud.Web.CallCenter.Api/appsettings.json @@ -5,7 +5,7 @@ "Microsoft.AspNetCore": "Warning" } }, - "Api:AzureAd": { + "Api:MicrosoftEntraId": { "Instance": "https://login.microsoftonline.com/", "ClientId": "", "TenantId": "" diff --git a/src/Relecloud.Web/Controllers/CartController.cs b/src/Relecloud.Web.CallCenter/Controllers/CartController.cs similarity index 97% rename from src/Relecloud.Web/Controllers/CartController.cs rename to src/Relecloud.Web.CallCenter/Controllers/CartController.cs index 4aef4747..04da42d9 100644 --- a/src/Relecloud.Web/Controllers/CartController.cs +++ b/src/Relecloud.Web.CallCenter/Controllers/CartController.cs @@ -1,15 +1,15 @@ using Microsoft.ApplicationInsights; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Relecloud.Web.Infrastructure; +using Relecloud.Web.CallCenter.Infrastructure; +using Relecloud.Web.CallCenter.Services; +using Relecloud.Web.CallCenter.ViewModels; using Relecloud.Web.Models.ConcertContext; using Relecloud.Web.Models.Services; using Relecloud.Web.Models.TicketManagement; using Relecloud.Web.Models.TicketManagement.Payment; -using Relecloud.Web.Services; -using Relecloud.Web.ViewModels; -namespace Relecloud.Web.Controllers +namespace Relecloud.Web.CallCenter.Controllers { public class CartController : Controller { diff --git a/src/Relecloud.Web/Controllers/ConcertController.cs b/src/Relecloud.Web.CallCenter/Controllers/ConcertController.cs similarity index 98% rename from src/Relecloud.Web/Controllers/ConcertController.cs rename to src/Relecloud.Web.CallCenter/Controllers/ConcertController.cs index f2585c02..17a1b269 100644 --- a/src/Relecloud.Web/Controllers/ConcertController.cs +++ b/src/Relecloud.Web.CallCenter/Controllers/ConcertController.cs @@ -1,12 +1,12 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Relecloud.Web.Infrastructure; +using Relecloud.Web.CallCenter.Infrastructure; +using Relecloud.Web.CallCenter.ViewModels; using Relecloud.Web.Models.ConcertContext; using Relecloud.Web.Models.Search; using Relecloud.Web.Models.Services; -using Relecloud.Web.ViewModels; -namespace Relecloud.Web.Controllers +namespace Relecloud.Web.CallCenter.Controllers { public class ConcertController : Controller { diff --git a/src/Relecloud.Web/Controllers/HomeController.cs b/src/Relecloud.Web.CallCenter/Controllers/HomeController.cs similarity index 91% rename from src/Relecloud.Web/Controllers/HomeController.cs rename to src/Relecloud.Web.CallCenter/Controllers/HomeController.cs index 220d6ac8..8df32492 100644 --- a/src/Relecloud.Web/Controllers/HomeController.cs +++ b/src/Relecloud.Web.CallCenter/Controllers/HomeController.cs @@ -1,6 +1,6 @@ using Microsoft.AspNetCore.Mvc; -namespace Relecloud.Web.Controllers +namespace Relecloud.Web.CallCenter.Controllers { public class HomeController : Controller { diff --git a/src/Relecloud.Web/Controllers/ImageController.cs b/src/Relecloud.Web.CallCenter/Controllers/ImageController.cs similarity index 88% rename from src/Relecloud.Web/Controllers/ImageController.cs rename to src/Relecloud.Web.CallCenter/Controllers/ImageController.cs index 83ec222e..e95e9482 100644 --- a/src/Relecloud.Web/Controllers/ImageController.cs +++ b/src/Relecloud.Web.CallCenter/Controllers/ImageController.cs @@ -1,10 +1,11 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Relecloud.Web.Services; +using Relecloud.Web.CallCenter.Services; -namespace Relecloud.Web.Api.Controllers; -[Route("api/[controller]")] +namespace Relecloud.Web.CallCenter.Controllers; + +[Route("webapi/[controller]")] [ApiController] public class ImageController : ControllerBase { @@ -33,4 +34,4 @@ public async Task GetTicketImage(string imageName) return Problem("Unable to get the image"); } } -} +} \ No newline at end of file diff --git a/src/Relecloud.Web/Controllers/TicketController.cs b/src/Relecloud.Web.CallCenter/Controllers/TicketController.cs similarity index 91% rename from src/Relecloud.Web/Controllers/TicketController.cs rename to src/Relecloud.Web.CallCenter/Controllers/TicketController.cs index cb353f38..3eb66e9e 100644 --- a/src/Relecloud.Web/Controllers/TicketController.cs +++ b/src/Relecloud.Web.CallCenter/Controllers/TicketController.cs @@ -1,11 +1,11 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Relecloud.Web.Infrastructure; -using Relecloud.Web.Models; +using Relecloud.Web.CallCenter.Infrastructure; +using Relecloud.Web.CallCenter.ViewModels; using Relecloud.Web.Models.ConcertContext; using Relecloud.Web.Models.Services; -namespace Relecloud.Web.Controllers +namespace Relecloud.Web.CallCenter.Controllers { [Authorize] public class TicketController : Controller diff --git a/src/Relecloud.Web/Infrastructure/CacheKeys.cs b/src/Relecloud.Web.CallCenter/Infrastructure/CacheKeys.cs similarity index 68% rename from src/Relecloud.Web/Infrastructure/CacheKeys.cs rename to src/Relecloud.Web.CallCenter/Infrastructure/CacheKeys.cs index a8f2a02f..b8000b35 100644 --- a/src/Relecloud.Web/Infrastructure/CacheKeys.cs +++ b/src/Relecloud.Web.CallCenter/Infrastructure/CacheKeys.cs @@ -1,4 +1,4 @@ -namespace Relecloud.Web.Infrastructure +namespace Relecloud.Web.CallCenter.Infrastructure { public static class CacheKeys { diff --git a/src/Relecloud.Web/Infrastructure/ExtensionMethods.cs b/src/Relecloud.Web.CallCenter/Infrastructure/ExtensionMethods.cs similarity index 93% rename from src/Relecloud.Web/Infrastructure/ExtensionMethods.cs rename to src/Relecloud.Web.CallCenter/Infrastructure/ExtensionMethods.cs index f841ccc1..06e3cc5b 100644 --- a/src/Relecloud.Web/Infrastructure/ExtensionMethods.cs +++ b/src/Relecloud.Web.CallCenter/Infrastructure/ExtensionMethods.cs @@ -1,4 +1,7 @@ -using Microsoft.AspNetCore.Html; +// Copyright (c) Microsoft Corporation. All Rights Reserved. +// Licensed under the MIT License. + +using Microsoft.AspNetCore.Html; using Microsoft.AspNetCore.Mvc.ModelBinding; using Microsoft.AspNetCore.Mvc.Rendering; using Relecloud.Web.Models.ConcertContext; @@ -6,13 +9,13 @@ using System.Security.Claims; using System.Text.Json; -namespace Relecloud.Web.Infrastructure +namespace Relecloud.Web.CallCenter.Infrastructure { public static class ExtensionMethods { public static string GetUniqueId(this ClaimsPrincipal user) { - // Azure AD issues a globally unique user ID in the objectidentifier claim. + // Microsoft Entra ID issues a globally unique user ID in the objectidentifier claim. return user?.FindFirstValue("http://schemas.microsoft.com/identity/claims/objectidentifier") ?? new Guid().ToString(); } diff --git a/src/Relecloud.Web/Infrastructure/RelecloudApiConfiguration.cs b/src/Relecloud.Web.CallCenter/Infrastructure/RelecloudApiConfiguration.cs similarity index 86% rename from src/Relecloud.Web/Infrastructure/RelecloudApiConfiguration.cs rename to src/Relecloud.Web.CallCenter/Infrastructure/RelecloudApiConfiguration.cs index 3856d6ff..2e5b924a 100644 --- a/src/Relecloud.Web/Infrastructure/RelecloudApiConfiguration.cs +++ b/src/Relecloud.Web.CallCenter/Infrastructure/RelecloudApiConfiguration.cs @@ -1,6 +1,6 @@ using System.Text.Json; -namespace Relecloud.Web.Infrastructure +namespace Relecloud.Web.CallCenter.Infrastructure { public class RelecloudApiConfiguration { diff --git a/src/Relecloud.Web/Infrastructure/Roles.cs b/src/Relecloud.Web.CallCenter/Infrastructure/Roles.cs similarity index 66% rename from src/Relecloud.Web/Infrastructure/Roles.cs rename to src/Relecloud.Web.CallCenter/Infrastructure/Roles.cs index b0726cbc..baec2a90 100644 --- a/src/Relecloud.Web/Infrastructure/Roles.cs +++ b/src/Relecloud.Web.CallCenter/Infrastructure/Roles.cs @@ -1,4 +1,4 @@ -namespace Relecloud.Web.Infrastructure +namespace Relecloud.Web.CallCenter.Infrastructure { public static class Roles { diff --git a/src/Relecloud.Web/Program.cs b/src/Relecloud.Web.CallCenter/Program.cs similarity index 70% rename from src/Relecloud.Web/Program.cs rename to src/Relecloud.Web.CallCenter/Program.cs index 0f746528..e7101b27 100644 --- a/src/Relecloud.Web/Program.cs +++ b/src/Relecloud.Web.CallCenter/Program.cs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. All Rights Reserved. +// Licensed under the MIT License. + using Azure.Identity; using Microsoft.IdentityModel.Logging; using Relecloud.Web; @@ -32,7 +35,7 @@ } // Apps migrating to 6.0 don't need to use the new minimal hosting model -// https://learn.microsoft.com/aspnet/core/migration/50-to-60?view=aspnetcore-6.0&tabs=visual-studio#apps-migrating-to-60-dont-need-to-use-the-new-minimal-hosting-model +// https://learn.microsoft.com/en-us/aspnet/core/migration/50-to-60?view=aspnetcore-6.0&tabs=visual-studio#apps-migrating-to-60-dont-need-to-use-the-new-minimal-hosting-model var startup = new Startup(builder.Configuration); // Add services to the container. @@ -41,18 +44,18 @@ startup.ConfigureServices(builder.Services); } -var hasAzureAdSettings = !string.IsNullOrEmpty(builder.Configuration["AzureAd:ClientId"]); +var hasMicrosoftEntraIdSettings = !string.IsNullOrEmpty(builder.Configuration["MicrosoftEntraId:ClientId"]); var app = builder.Build(); -if (hasRequiredConfigSettings && hasAzureAdSettings) +if (hasRequiredConfigSettings && hasMicrosoftEntraIdSettings) { startup.Configure(app, app.Environment); } -else if (!hasAzureAdSettings) +else if (!hasMicrosoftEntraIdSettings) { app.MapGet("/", () => $"" + - "Could not find required Azure AD settings. Check your App Config Service, you may need to run the createAppRegistrations script."); + "Could not find required Microsoft Entra ID settings. Check your App Config Service, you may need to run the create-app-registrations script."); } else { diff --git a/src/Relecloud.Web/Properties/launchSettings.json b/src/Relecloud.Web.CallCenter/Properties/launchSettings.json similarity index 100% rename from src/Relecloud.Web/Properties/launchSettings.json rename to src/Relecloud.Web.CallCenter/Properties/launchSettings.json diff --git a/src/Relecloud.Web/Relecloud.Web.csproj b/src/Relecloud.Web.CallCenter/Relecloud.Web.CallCenter.csproj similarity index 95% rename from src/Relecloud.Web/Relecloud.Web.csproj rename to src/Relecloud.Web.CallCenter/Relecloud.Web.CallCenter.csproj index fa657e4e..641ce9c3 100644 --- a/src/Relecloud.Web/Relecloud.Web.csproj +++ b/src/Relecloud.Web.CallCenter/Relecloud.Web.CallCenter.csproj @@ -30,7 +30,7 @@ - + diff --git a/src/Relecloud.Web.CallCenter/Services/ITicketImageService.cs b/src/Relecloud.Web.CallCenter/Services/ITicketImageService.cs new file mode 100644 index 00000000..3bb66f0f --- /dev/null +++ b/src/Relecloud.Web.CallCenter/Services/ITicketImageService.cs @@ -0,0 +1,6 @@ +namespace Relecloud.Web.CallCenter.Services; + +public interface ITicketImageService +{ + Task GetTicketImagesAsync(string imageName); +} \ No newline at end of file diff --git a/src/Relecloud.Web/Services/ITicketPurchaseService.cs b/src/Relecloud.Web.CallCenter/Services/ITicketPurchaseService.cs similarity index 81% rename from src/Relecloud.Web/Services/ITicketPurchaseService.cs rename to src/Relecloud.Web.CallCenter/Services/ITicketPurchaseService.cs index 58ec7708..cba3a584 100644 --- a/src/Relecloud.Web/Services/ITicketPurchaseService.cs +++ b/src/Relecloud.Web.CallCenter/Services/ITicketPurchaseService.cs @@ -1,6 +1,6 @@ using Relecloud.Web.Models.TicketManagement; -namespace Relecloud.Web.Services +namespace Relecloud.Web.CallCenter.Services { public interface ITicketPurchaseService { diff --git a/src/Relecloud.Web/Services/MockServices/MockConcertContextService.cs b/src/Relecloud.Web.CallCenter/Services/MockServices/MockConcertContextService.cs similarity index 96% rename from src/Relecloud.Web/Services/MockServices/MockConcertContextService.cs rename to src/Relecloud.Web.CallCenter/Services/MockServices/MockConcertContextService.cs index d1078e32..7de3d6a5 100644 --- a/src/Relecloud.Web/Services/MockServices/MockConcertContextService.cs +++ b/src/Relecloud.Web.CallCenter/Services/MockServices/MockConcertContextService.cs @@ -1,7 +1,7 @@ using Relecloud.Web.Models.ConcertContext; using Relecloud.Web.Models.Services; -namespace Relecloud.Web.Services.MockServices +namespace Relecloud.Web.CallCenter.Services.MockServices { public class MockConcertContextService : IConcertContextService { diff --git a/src/Relecloud.Web/Services/MockServices/MockConcertSearchService.cs b/src/Relecloud.Web.CallCenter/Services/MockServices/MockConcertSearchService.cs similarity index 91% rename from src/Relecloud.Web/Services/MockServices/MockConcertSearchService.cs rename to src/Relecloud.Web.CallCenter/Services/MockServices/MockConcertSearchService.cs index 260791e7..e205e10f 100644 --- a/src/Relecloud.Web/Services/MockServices/MockConcertSearchService.cs +++ b/src/Relecloud.Web.CallCenter/Services/MockServices/MockConcertSearchService.cs @@ -1,7 +1,7 @@ using Relecloud.Web.Models.Search; using Relecloud.Web.Models.Services; -namespace Relecloud.Web.Services.MockServices +namespace Relecloud.Web.CallCenter.Services.MockServices { public class MockConcertSearchService : IConcertSearchService { diff --git a/src/Relecloud.Web/Services/MockServices/MockTicketImageService.cs b/src/Relecloud.Web.CallCenter/Services/MockServices/MockTicketImageService.cs similarity index 77% rename from src/Relecloud.Web/Services/MockServices/MockTicketImageService.cs rename to src/Relecloud.Web.CallCenter/Services/MockServices/MockTicketImageService.cs index 1947a5ee..16f30894 100644 --- a/src/Relecloud.Web/Services/MockServices/MockTicketImageService.cs +++ b/src/Relecloud.Web.CallCenter/Services/MockServices/MockTicketImageService.cs @@ -1,4 +1,4 @@ -namespace Relecloud.Web.Services.MockServices; +namespace Relecloud.Web.CallCenter.Services.MockServices; public class MockTicketImageService : ITicketImageService { @@ -6,4 +6,4 @@ public Task GetTicketImagesAsync(string imageName) { return Task.FromResult(new MemoryStream() as Stream); } -} +} \ No newline at end of file diff --git a/src/Relecloud.Web/Services/MockServices/MockTicketPurchaseService.cs b/src/Relecloud.Web.CallCenter/Services/MockServices/MockTicketPurchaseService.cs similarity index 87% rename from src/Relecloud.Web/Services/MockServices/MockTicketPurchaseService.cs rename to src/Relecloud.Web.CallCenter/Services/MockServices/MockTicketPurchaseService.cs index d6809734..d5230c1a 100644 --- a/src/Relecloud.Web/Services/MockServices/MockTicketPurchaseService.cs +++ b/src/Relecloud.Web.CallCenter/Services/MockServices/MockTicketPurchaseService.cs @@ -1,6 +1,6 @@ using Relecloud.Web.Models.TicketManagement; -namespace Relecloud.Web.Services.MockServices +namespace Relecloud.Web.CallCenter.Services.MockServices { public class MockTicketPurchaseService : ITicketPurchaseService { diff --git a/src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiConcertSearchService.cs b/src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiConcertSearchService.cs similarity index 94% rename from src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiConcertSearchService.cs rename to src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiConcertSearchService.cs index f335b05e..eeb043da 100644 --- a/src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiConcertSearchService.cs +++ b/src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiConcertSearchService.cs @@ -1,10 +1,10 @@ -using Relecloud.Web.Infrastructure; +using Relecloud.Web.CallCenter.Infrastructure; using Relecloud.Web.Models.Search; using Relecloud.Web.Models.Services; using System.Net; using System.Text.Json; -namespace Relecloud.Web.Services.RelecloudApiServices +namespace Relecloud.Web.CallCenter.Services.RelecloudApiServices { public class RelecloudApiConcertSearchService : IConcertSearchService { diff --git a/src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiConcertService.cs b/src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiConcertService.cs similarity index 98% rename from src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiConcertService.cs rename to src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiConcertService.cs index d7c6754f..35c8fa09 100644 --- a/src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiConcertService.cs +++ b/src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiConcertService.cs @@ -1,14 +1,14 @@ using Microsoft.Extensions.Options; using Microsoft.Identity.Web; -using Relecloud.Web.Infrastructure; +using Relecloud.Web.CallCenter.Infrastructure; +using Relecloud.Web.CallCenter.Services.RelecloudApiServices; using Relecloud.Web.Models.ConcertContext; using Relecloud.Web.Models.Services; -using Relecloud.Web.Services.RelecloudApiServices; using System.Net; using System.Net.Http.Headers; using System.Text.Json; -namespace Relecloud.Web.Services.ApiConcertService +namespace Relecloud.Web.CallCenter.Services.ApiConcertService { public class RelecloudApiConcertService : IConcertContextService { diff --git a/src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiOptions.cs b/src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiOptions.cs similarity index 68% rename from src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiOptions.cs rename to src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiOptions.cs index df2909e7..46d0a2e2 100644 --- a/src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiOptions.cs +++ b/src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiOptions.cs @@ -1,4 +1,4 @@ -namespace Relecloud.Web.Services.RelecloudApiServices +namespace Relecloud.Web.CallCenter.Services.RelecloudApiServices { public class RelecloudApiOptions { diff --git a/src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiTicketImageService.cs b/src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiTicketImageService.cs similarity index 94% rename from src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiTicketImageService.cs rename to src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiTicketImageService.cs index 79671687..bf1e6fc6 100644 --- a/src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiTicketImageService.cs +++ b/src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiTicketImageService.cs @@ -1,9 +1,9 @@ -using Microsoft.Extensions.Options; +using Microsoft.Extensions.Options; using Microsoft.Identity.Web; using System.Net.Http.Headers; -namespace Relecloud.Web.Services.RelecloudApiServices; +namespace Relecloud.Web.CallCenter.Services.RelecloudApiServices; public class RelecloudApiTicketImageService : ITicketImageService { @@ -43,4 +43,4 @@ private async Task PrepareAuthenticatedClient() httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); } } -} +} \ No newline at end of file diff --git a/src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiTicketPurchaseService.cs b/src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiTicketPurchaseService.cs similarity index 95% rename from src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiTicketPurchaseService.cs rename to src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiTicketPurchaseService.cs index a85f3b37..c53b5992 100644 --- a/src/Relecloud.Web/Services/RelecloudApiServices/RelecloudApiTicketPurchaseService.cs +++ b/src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiTicketPurchaseService.cs @@ -1,12 +1,12 @@ using Microsoft.Extensions.Options; using Microsoft.Identity.Web; -using Relecloud.Web.Infrastructure; +using Relecloud.Web.CallCenter.Infrastructure; using Relecloud.Web.Models.TicketManagement; using System.Net; using System.Net.Http.Headers; using System.Text.Json; -namespace Relecloud.Web.Services.RelecloudApiServices +namespace Relecloud.Web.CallCenter.Services.RelecloudApiServices { public class RelecloudApiTicketPurchaseService : ITicketPurchaseService { diff --git a/src/Relecloud.Web/Startup.cs b/src/Relecloud.Web.CallCenter/Startup.cs similarity index 80% rename from src/Relecloud.Web/Startup.cs rename to src/Relecloud.Web.CallCenter/Startup.cs index fadafa61..1d0fb0e6 100644 --- a/src/Relecloud.Web/Startup.cs +++ b/src/Relecloud.Web.CallCenter/Startup.cs @@ -1,23 +1,23 @@ -using Microsoft.AspNetCore.Authentication.OpenIdConnect; +// Copyright (c) Microsoft Corporation. All Rights Reserved. +// Licensed under the MIT License. + +using Microsoft.AspNetCore.Authentication.OpenIdConnect; using Microsoft.AspNetCore.HttpOverrides; using Microsoft.Identity.Web; using Microsoft.Identity.Web.TokenCacheProviders.Distributed; using Microsoft.Identity.Web.UI; using Microsoft.IdentityModel.Logging; using Microsoft.Net.Http.Headers; - using Polly; using Polly.Contrib.WaitAndRetry; using Polly.Extensions.Http; - -using Relecloud.Web.Infrastructure; using Relecloud.Web.Models.ConcertContext; using Relecloud.Web.Models.Services; -using Relecloud.Web.Services; -using Relecloud.Web.Services.ApiConcertService; -using Relecloud.Web.Services.MockServices; -using Relecloud.Web.Services.RelecloudApiServices; - +using Relecloud.Web.CallCenter.Infrastructure; +using Relecloud.Web.CallCenter.Services; +using Relecloud.Web.CallCenter.Services.ApiConcertService; +using Relecloud.Web.CallCenter.Services.MockServices; +using Relecloud.Web.CallCenter.Services.RelecloudApiServices; using System.Diagnostics; namespace Relecloud.Web @@ -36,7 +36,7 @@ public void ConfigureServices(IServiceCollection services) services.AddHttpContextAccessor(); services.Configure(Configuration.GetSection("App:RelecloudApi")); services.AddOptions(); - AddAzureAdServices(services); + AddMicrosoftEntraIdServices(services); services.AddControllersWithViews(); services.AddApplicationInsightsTelemetry(Configuration["App:Api:ApplicationInsights:ConnectionString"]); @@ -48,7 +48,7 @@ public void ConfigureServices(IServiceCollection services) services.AddHealthChecks(); // Add support for session state. - // NOTE: If there is a distributed cache service (e.g. Redis) then this will be used to store session data. + // NOTE: If there is a distibuted cache service (e.g. Redis) then this will be used to store session data. services.AddSession(); } @@ -80,7 +80,7 @@ private void AddTicketPurchaseService(IServiceCollection services) { httpClient.BaseAddress = new Uri(baseUri); httpClient.DefaultRequestHeaders.Add(HeaderNames.Accept, "application/json"); - httpClient.DefaultRequestHeaders.Add(HeaderNames.UserAgent, "Relecloud.Web"); + httpClient.DefaultRequestHeaders.Add(HeaderNames.UserAgent, "Relecloud.Web.CallCenter"); }) .AddPolicyHandler(GetRetryPolicy()) .AddPolicyHandler(GetCircuitBreakerPolicy()); @@ -100,13 +100,13 @@ private void AddConcertSearchService(IServiceCollection services) { httpClient.BaseAddress = new Uri(baseUri); httpClient.DefaultRequestHeaders.Add(HeaderNames.Accept, "application/json"); - httpClient.DefaultRequestHeaders.Add(HeaderNames.UserAgent, "Relecloud.Web"); + httpClient.DefaultRequestHeaders.Add(HeaderNames.UserAgent, "Relecloud.Web.CallCenter"); }) .AddPolicyHandler(GetRetryPolicy()) .AddPolicyHandler(GetCircuitBreakerPolicy()); } } - + private void AddTicketImageService(IServiceCollection services) { var baseUri = Configuration["App:RelecloudApi:BaseUri"]; @@ -120,7 +120,7 @@ private void AddTicketImageService(IServiceCollection services) { httpClient.BaseAddress = new Uri(baseUri); httpClient.DefaultRequestHeaders.Add(HeaderNames.Accept, "application/octet-stream"); - httpClient.DefaultRequestHeaders.Add(HeaderNames.UserAgent, "Relecloud.Web"); + httpClient.DefaultRequestHeaders.Add(HeaderNames.UserAgent, "Relecloud.Web.CallCenter"); }) .AddPolicyHandler(GetRetryPolicy()) .AddPolicyHandler(GetCircuitBreakerPolicy()); @@ -146,7 +146,7 @@ private static IAsyncPolicy GetCircuitBreakerPolicy() private void AddConcertContextService(IServiceCollection services) { - string baseUri = Configuration["App:RelecloudApi:BaseUri"]; + var baseUri = Configuration["App:RelecloudApi:BaseUri"]; if (string.IsNullOrWhiteSpace(baseUri)) { services.AddScoped(); @@ -164,7 +164,7 @@ private void AddConcertContextService(IServiceCollection services) } } - private void AddAzureAdServices(IServiceCollection services) + private void AddMicrosoftEntraIdServices(IServiceCollection services) { services.AddRazorPages().AddMicrosoftIdentityUI(); @@ -176,13 +176,13 @@ private void AddAzureAdServices(IServiceCollection services) }); }); - var builder = services.AddMicrosoftIdentityWebAppAuthentication(Configuration, "AzureAd") + var builder = services.AddMicrosoftIdentityWebAppAuthentication(Configuration, "MicrosoftEntraId") .EnableTokenAcquisitionToCallDownstreamApi(new string[] { }) .AddDownstreamWebApi("relecloud-api", Configuration.GetSection("GraphBeta")); // when using Microsoft.Identity.Web to retrieve an access token on behalf of the authenticated user // you should use a shared session state provider. - // https://learn.microsoft.com/azure/active-directory-b2c/configure-authentication-sample-web-app-with-api?tabs=visual-studio#token-cache-for-a-web-app + // https://learn.microsoft.com/en-us/azure/active-directory-b2c/configure-authentication-sample-web-app-with-api?tabs=visual-studio#token-cache-for-a-web-app if (string.IsNullOrEmpty(Configuration["App:RedisCache:ConnectionString"])) { builder.AddInMemoryTokenCaches(); @@ -195,40 +195,42 @@ private void AddAzureAdServices(IServiceCollection services) options.DisableL1Cache = true; }); } - - // this sample uses AFD for the URL registered with Azure AD to make it easier to get started - // but we recommend host name preservation for production scenarios - // https://learn.microsoft.com/en-us/azure/architecture/best-practices/host-name-preservation - services.Configure(options => - { - // not needed when using host name preservation - options.ForwardedHeaders = ForwardedHeaders.XForwardedHost | ForwardedHeaders.XForwardedProto; - }); - services.Configure(Configuration.GetSection("AzureAd")); - services.Configure((Action)(options => + services.Configure(Configuration.GetSection("MicrosoftEntraId")); + if (!Debugger.IsAttached) { - var frontDoorUri = Configuration["App:FrontDoorUri"]; - var callbackPath = Configuration["AzureAd:CallbackPath"]; + // this sample uses AFD for the URL registered with Microsoft Entra ID to make it easier to get started + // but we recommend host name preservation for production scenarios + // https://learn.microsoft.com/en-us/azure/architecture/best-practices/host-name-preservation + services.Configure(options => + { + // not needed when using host name preservation + options.ForwardedHeaders = ForwardedHeaders.XForwardedHost | ForwardedHeaders.XForwardedProto; + }); - options.Events = new OpenIdConnectEvents + services.Configure((Action)(options => { - OnRedirectToIdentityProvider = ctx => { + var frontDoorHostname = Configuration["App:FrontDoorHostname"]; + var callbackPath = Configuration["MicrosoftEntraId:CallbackPath"]; + + options.Events.OnTokenValidated += async ctx => + { + await CreateOrUpdateUserInformation(ctx); + }; + options.Events.OnRedirectToIdentityProvider += ctx => + { // not needed when using host name preservation - ctx.ProtocolMessage.RedirectUri = $"https://{frontDoorUri}{callbackPath}"; + ctx.ProtocolMessage.RedirectUri = $"https://{frontDoorHostname}{callbackPath}"; return Task.CompletedTask; - }, - OnRedirectToIdentityProviderForSignOut = ctx => { + }; + options.Events.OnRedirectToIdentityProviderForSignOut += ctx => + { // not needed when using host name preservation - ctx.ProtocolMessage.PostLogoutRedirectUri = $"https://{frontDoorUri}"; + ctx.ProtocolMessage.PostLogoutRedirectUri = $"https://{frontDoorHostname}"; return Task.CompletedTask; - }, - OnTokenValidated = async ctx => - { - await CreateOrUpdateUserInformation(ctx); - } - }; - })); + }; + })); + } } private static async Task CreateOrUpdateUserInformation(TokenValidatedContext ctx) @@ -251,7 +253,7 @@ private static async Task CreateOrUpdateUserInformation(TokenValidatedContext ct catch (Exception ex) { var logger = ctx.HttpContext.RequestServices.GetRequiredService>(); - logger.LogError(ex, "Unhandled exception from Startup.TransformRoleClaims"); + logger.LogError(ex, "Unhandled exception from Startup.CreateOrUpdateUserInformation"); } } @@ -272,11 +274,10 @@ public void Configure(WebApplication app, IWebHostEnvironment env) IdentityModelEventSource.ShowPII = true; } - // this sample uses AFD for the URL registered with Azure AD to make it easier to get started + // this sample uses AFD for the URL registered with Microsoft Entra ID to make it easier to get started // but we recommend host name preservation for production scenarios // https://learn.microsoft.com/en-us/azure/architecture/best-practices/host-name-preservation app.UseForwardedHeaders(); - app.UseRetryTestingMiddleware(); app.UseHttpsRedirection(); app.UseStaticFiles(); @@ -296,7 +297,6 @@ public void Configure(WebApplication app, IWebHostEnvironment env) name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapRazorPages(); - endpoints.MapControllers(); }); } } diff --git a/src/Relecloud.Web/ViewModels/CartViewModel.cs b/src/Relecloud.Web.CallCenter/ViewModels/CartViewModel.cs similarity index 91% rename from src/Relecloud.Web/ViewModels/CartViewModel.cs rename to src/Relecloud.Web.CallCenter/ViewModels/CartViewModel.cs index e179e7d1..7f5aad10 100644 --- a/src/Relecloud.Web/ViewModels/CartViewModel.cs +++ b/src/Relecloud.Web.CallCenter/ViewModels/CartViewModel.cs @@ -1,6 +1,6 @@ using Relecloud.Web.Models.ConcertContext; -namespace Relecloud.Web.ViewModels +namespace Relecloud.Web.CallCenter.ViewModels { public class CartViewModel { diff --git a/src/Relecloud.Web/ViewModels/CheckoutViewModel.cs b/src/Relecloud.Web.CallCenter/ViewModels/CheckoutViewModel.cs similarity index 96% rename from src/Relecloud.Web/ViewModels/CheckoutViewModel.cs rename to src/Relecloud.Web.CallCenter/ViewModels/CheckoutViewModel.cs index 12c52de3..491108f4 100644 --- a/src/Relecloud.Web/ViewModels/CheckoutViewModel.cs +++ b/src/Relecloud.Web.CallCenter/ViewModels/CheckoutViewModel.cs @@ -2,7 +2,7 @@ using Relecloud.Web.Models.TicketManagement.Payment; using System.ComponentModel.DataAnnotations; -namespace Relecloud.Web.ViewModels +namespace Relecloud.Web.CallCenter.ViewModels { public class CheckoutViewModel { diff --git a/src/Relecloud.Web/ViewModels/ConcertViewModel.cs b/src/Relecloud.Web.CallCenter/ViewModels/ConcertViewModel.cs similarity index 75% rename from src/Relecloud.Web/ViewModels/ConcertViewModel.cs rename to src/Relecloud.Web.CallCenter/ViewModels/ConcertViewModel.cs index 8d027065..b31df951 100644 --- a/src/Relecloud.Web/ViewModels/ConcertViewModel.cs +++ b/src/Relecloud.Web.CallCenter/ViewModels/ConcertViewModel.cs @@ -1,6 +1,6 @@ using Relecloud.Web.Models.ConcertContext; -namespace Relecloud.Web.ViewModels +namespace Relecloud.Web.CallCenter.ViewModels { public class ConcertViewModel { diff --git a/src/Relecloud.Web/ViewModels/TicketViewModel.cs b/src/Relecloud.Web.CallCenter/ViewModels/TicketViewModel.cs similarity index 87% rename from src/Relecloud.Web/ViewModels/TicketViewModel.cs rename to src/Relecloud.Web.CallCenter/ViewModels/TicketViewModel.cs index e00d74f1..bd8e5bb5 100644 --- a/src/Relecloud.Web/ViewModels/TicketViewModel.cs +++ b/src/Relecloud.Web.CallCenter/ViewModels/TicketViewModel.cs @@ -1,6 +1,6 @@ using Relecloud.Web.Models.ConcertContext; -namespace Relecloud.Web.Models +namespace Relecloud.Web.CallCenter.ViewModels { public class TicketViewModel { diff --git a/src/Relecloud.Web/Views/Cart/Add.cshtml b/src/Relecloud.Web.CallCenter/Views/Cart/Add.cshtml similarity index 100% rename from src/Relecloud.Web/Views/Cart/Add.cshtml rename to src/Relecloud.Web.CallCenter/Views/Cart/Add.cshtml diff --git a/src/Relecloud.Web/Views/Cart/Checkout.cshtml b/src/Relecloud.Web.CallCenter/Views/Cart/Checkout.cshtml similarity index 98% rename from src/Relecloud.Web/Views/Cart/Checkout.cshtml rename to src/Relecloud.Web.CallCenter/Views/Cart/Checkout.cshtml index cae0876e..14925de2 100644 --- a/src/Relecloud.Web/Views/Cart/Checkout.cshtml +++ b/src/Relecloud.Web.CallCenter/Views/Cart/Checkout.cshtml @@ -1,4 +1,4 @@ -@model Relecloud.Web.ViewModels.CheckoutViewModel +@model Relecloud.Web.CallCenter.ViewModels.CheckoutViewModel @{ ViewData["Title"] = "Checkout"; } diff --git a/src/Relecloud.Web/Views/Cart/Index.cshtml b/src/Relecloud.Web.CallCenter/Views/Cart/Index.cshtml similarity index 97% rename from src/Relecloud.Web/Views/Cart/Index.cshtml rename to src/Relecloud.Web.CallCenter/Views/Cart/Index.cshtml index 68ced096..406e45f3 100644 --- a/src/Relecloud.Web/Views/Cart/Index.cshtml +++ b/src/Relecloud.Web.CallCenter/Views/Cart/Index.cshtml @@ -1,4 +1,4 @@ -@model Relecloud.Web.ViewModels.CartViewModel +@model Relecloud.Web.CallCenter.ViewModels.CartViewModel @{ ViewData["Title"] = "Your Cart"; } diff --git a/src/Relecloud.Web/Views/Concert/Create.cshtml b/src/Relecloud.Web.CallCenter/Views/Concert/Create.cshtml similarity index 98% rename from src/Relecloud.Web/Views/Concert/Create.cshtml rename to src/Relecloud.Web.CallCenter/Views/Concert/Create.cshtml index 3a51c987..43d6ca3c 100644 --- a/src/Relecloud.Web/Views/Concert/Create.cshtml +++ b/src/Relecloud.Web.CallCenter/Views/Concert/Create.cshtml @@ -1,4 +1,4 @@ -@using Relecloud.Web.ViewModels +@using Relecloud.Web.CallCenter.ViewModels @model ConcertViewModel diff --git a/src/Relecloud.Web/Views/Concert/Delete.cshtml b/src/Relecloud.Web.CallCenter/Views/Concert/Delete.cshtml similarity index 100% rename from src/Relecloud.Web/Views/Concert/Delete.cshtml rename to src/Relecloud.Web.CallCenter/Views/Concert/Delete.cshtml diff --git a/src/Relecloud.Web/Views/Concert/Details.cshtml b/src/Relecloud.Web.CallCenter/Views/Concert/Details.cshtml similarity index 100% rename from src/Relecloud.Web/Views/Concert/Details.cshtml rename to src/Relecloud.Web.CallCenter/Views/Concert/Details.cshtml diff --git a/src/Relecloud.Web/Views/Concert/Edit.cshtml b/src/Relecloud.Web.CallCenter/Views/Concert/Edit.cshtml similarity index 98% rename from src/Relecloud.Web/Views/Concert/Edit.cshtml rename to src/Relecloud.Web.CallCenter/Views/Concert/Edit.cshtml index f39403b4..f71968cf 100644 --- a/src/Relecloud.Web/Views/Concert/Edit.cshtml +++ b/src/Relecloud.Web.CallCenter/Views/Concert/Edit.cshtml @@ -1,4 +1,4 @@ -@using Relecloud.Web.ViewModels +@using Relecloud.Web.CallCenter.ViewModels @model ConcertViewModel diff --git a/src/Relecloud.Web/Views/Concert/Index.cshtml b/src/Relecloud.Web.CallCenter/Views/Concert/Index.cshtml similarity index 100% rename from src/Relecloud.Web/Views/Concert/Index.cshtml rename to src/Relecloud.Web.CallCenter/Views/Concert/Index.cshtml diff --git a/src/Relecloud.Web/Views/Concert/Search.cshtml b/src/Relecloud.Web.CallCenter/Views/Concert/Search.cshtml similarity index 100% rename from src/Relecloud.Web/Views/Concert/Search.cshtml rename to src/Relecloud.Web.CallCenter/Views/Concert/Search.cshtml diff --git a/src/Relecloud.Web/Views/Concert/Search.cshtml.cs b/src/Relecloud.Web.CallCenter/Views/Concert/Search.cshtml.cs similarity index 100% rename from src/Relecloud.Web/Views/Concert/Search.cshtml.cs rename to src/Relecloud.Web.CallCenter/Views/Concert/Search.cshtml.cs diff --git a/src/Relecloud.Web/Views/Home/Index.cshtml b/src/Relecloud.Web.CallCenter/Views/Home/Index.cshtml similarity index 100% rename from src/Relecloud.Web/Views/Home/Index.cshtml rename to src/Relecloud.Web.CallCenter/Views/Home/Index.cshtml diff --git a/src/Relecloud.Web/Views/Shared/Error.cshtml b/src/Relecloud.Web.CallCenter/Views/Shared/Error.cshtml similarity index 100% rename from src/Relecloud.Web/Views/Shared/Error.cshtml rename to src/Relecloud.Web.CallCenter/Views/Shared/Error.cshtml diff --git a/src/Relecloud.Web/Views/Shared/_Layout.cshtml b/src/Relecloud.Web.CallCenter/Views/Shared/_Layout.cshtml similarity index 97% rename from src/Relecloud.Web/Views/Shared/_Layout.cshtml rename to src/Relecloud.Web.CallCenter/Views/Shared/_Layout.cshtml index 8448d9a2..11873b2b 100644 --- a/src/Relecloud.Web/Views/Shared/_Layout.cshtml +++ b/src/Relecloud.Web.CallCenter/Views/Shared/_Layout.cshtml @@ -7,7 +7,7 @@ - + diff --git a/src/Relecloud.Web/Views/Shared/_Layout.cshtml.css b/src/Relecloud.Web.CallCenter/Views/Shared/_Layout.cshtml.css similarity index 100% rename from src/Relecloud.Web/Views/Shared/_Layout.cshtml.css rename to src/Relecloud.Web.CallCenter/Views/Shared/_Layout.cshtml.css diff --git a/src/Relecloud.Web/Views/Shared/_ValidationScriptsPartial.cshtml b/src/Relecloud.Web.CallCenter/Views/Shared/_ValidationScriptsPartial.cshtml similarity index 100% rename from src/Relecloud.Web/Views/Shared/_ValidationScriptsPartial.cshtml rename to src/Relecloud.Web.CallCenter/Views/Shared/_ValidationScriptsPartial.cshtml diff --git a/src/Relecloud.Web/Views/Ticket/Index.cshtml b/src/Relecloud.Web.CallCenter/Views/Ticket/Index.cshtml similarity index 89% rename from src/Relecloud.Web/Views/Ticket/Index.cshtml rename to src/Relecloud.Web.CallCenter/Views/Ticket/Index.cshtml index 508bad4f..b6b1fa9d 100644 --- a/src/Relecloud.Web/Views/Ticket/Index.cshtml +++ b/src/Relecloud.Web.CallCenter/Views/Ticket/Index.cshtml @@ -1,5 +1,4 @@ -@model TicketViewModel - +@model Relecloud.Web.CallCenter.ViewModels.TicketViewModel @{ ViewData["Title"] = "Tickets you've booked"; } @@ -39,11 +38,11 @@ else { if (ticket.Concert == null) { - Unknown Ticket @ticket.ConcertId + Unknown Ticket @ticket.ConcertId } else { - @ticket.Concert.Artist + @ticket.Concert.Artist } } diff --git a/src/Relecloud.Web/Views/_ViewImports.cshtml b/src/Relecloud.Web.CallCenter/Views/_ViewImports.cshtml similarity index 57% rename from src/Relecloud.Web/Views/_ViewImports.cshtml rename to src/Relecloud.Web.CallCenter/Views/_ViewImports.cshtml index 3342f574..24550684 100644 --- a/src/Relecloud.Web/Views/_ViewImports.cshtml +++ b/src/Relecloud.Web.CallCenter/Views/_ViewImports.cshtml @@ -1,5 +1,5 @@ @using Relecloud.Web -@using Relecloud.Web.Infrastructure -@using Relecloud.Web.Models @using Relecloud.Web.Models.ConcertContext +@using Relecloud.Web.CallCenter.Infrastructure +@using Relecloud.Web.CallCenter.ViewModels @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/src/Relecloud.Web/Views/_ViewStart.cshtml b/src/Relecloud.Web.CallCenter/Views/_ViewStart.cshtml similarity index 100% rename from src/Relecloud.Web/Views/_ViewStart.cshtml rename to src/Relecloud.Web.CallCenter/Views/_ViewStart.cshtml diff --git a/src/Relecloud.Web/appsettings.Development.json b/src/Relecloud.Web.CallCenter/appsettings.Development.json similarity index 100% rename from src/Relecloud.Web/appsettings.Development.json rename to src/Relecloud.Web.CallCenter/appsettings.Development.json diff --git a/src/Relecloud.Web/appsettings.json b/src/Relecloud.Web.CallCenter/appsettings.json similarity index 97% rename from src/Relecloud.Web/appsettings.json rename to src/Relecloud.Web.CallCenter/appsettings.json index 27896721..288c7b6f 100644 --- a/src/Relecloud.Web/appsettings.json +++ b/src/Relecloud.Web.CallCenter/appsettings.json @@ -5,7 +5,7 @@ "Microsoft.AspNetCore": "Warning" } }, - "AzureAd": { + "MicrosoftEntraId": { "Instance": "https://login.microsoftonline.com/", "ClientId": "", "TenantId": "", diff --git a/src/Relecloud.Web/wwwroot/css/site.css b/src/Relecloud.Web.CallCenter/wwwroot/css/site.css similarity index 100% rename from src/Relecloud.Web/wwwroot/css/site.css rename to src/Relecloud.Web.CallCenter/wwwroot/css/site.css diff --git a/src/Relecloud.Web/wwwroot/favicon.ico b/src/Relecloud.Web.CallCenter/wwwroot/favicon.ico similarity index 100% rename from src/Relecloud.Web/wwwroot/favicon.ico rename to src/Relecloud.Web.CallCenter/wwwroot/favicon.ico diff --git a/src/Relecloud.Web/wwwroot/img/banner.jpg b/src/Relecloud.Web.CallCenter/wwwroot/img/banner.jpg similarity index 100% rename from src/Relecloud.Web/wwwroot/img/banner.jpg rename to src/Relecloud.Web.CallCenter/wwwroot/img/banner.jpg diff --git a/src/Relecloud.Web/wwwroot/js/site.js b/src/Relecloud.Web.CallCenter/wwwroot/js/site.js similarity index 100% rename from src/Relecloud.Web/wwwroot/js/site.js rename to src/Relecloud.Web.CallCenter/wwwroot/js/site.js diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/LICENSE b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/LICENSE similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/LICENSE rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/LICENSE diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.js diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js diff --git a/src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map diff --git a/src/Relecloud.Web/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt diff --git a/src/Relecloud.Web/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js diff --git a/src/Relecloud.Web/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js diff --git a/src/Relecloud.Web/wwwroot/lib/jquery-validation/LICENSE.md b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation/LICENSE.md similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery-validation/LICENSE.md rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation/LICENSE.md diff --git a/src/Relecloud.Web/wwwroot/lib/jquery-validation/dist/additional-methods.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation/dist/additional-methods.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery-validation/dist/additional-methods.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation/dist/additional-methods.js diff --git a/src/Relecloud.Web/wwwroot/lib/jquery-validation/dist/additional-methods.min.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation/dist/additional-methods.min.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery-validation/dist/additional-methods.min.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation/dist/additional-methods.min.js diff --git a/src/Relecloud.Web/wwwroot/lib/jquery-validation/dist/jquery.validate.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation/dist/jquery.validate.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery-validation/dist/jquery.validate.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation/dist/jquery.validate.js diff --git a/src/Relecloud.Web/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js diff --git a/src/Relecloud.Web/wwwroot/lib/jquery/LICENSE.txt b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery/LICENSE.txt similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery/LICENSE.txt rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery/LICENSE.txt diff --git a/src/Relecloud.Web/wwwroot/lib/jquery/dist/jquery.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery/dist/jquery.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery/dist/jquery.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery/dist/jquery.js diff --git a/src/Relecloud.Web/wwwroot/lib/jquery/dist/jquery.min.js b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery/dist/jquery.min.js similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery/dist/jquery.min.js rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery/dist/jquery.min.js diff --git a/src/Relecloud.Web/wwwroot/lib/jquery/dist/jquery.min.map b/src/Relecloud.Web.CallCenter/wwwroot/lib/jquery/dist/jquery.min.map similarity index 100% rename from src/Relecloud.Web/wwwroot/lib/jquery/dist/jquery.min.map rename to src/Relecloud.Web.CallCenter/wwwroot/lib/jquery/dist/jquery.min.map diff --git a/src/Relecloud.Web/wwwroot/robots.txt b/src/Relecloud.Web.CallCenter/wwwroot/robots.txt similarity index 100% rename from src/Relecloud.Web/wwwroot/robots.txt rename to src/Relecloud.Web.CallCenter/wwwroot/robots.txt diff --git a/src/Relecloud.Models/ConcertContext/Concert.cs b/src/Relecloud.Web.Models/ConcertContext/Concert.cs similarity index 100% rename from src/Relecloud.Models/ConcertContext/Concert.cs rename to src/Relecloud.Web.Models/ConcertContext/Concert.cs diff --git a/src/Relecloud.Models/ConcertContext/CreateResult.cs b/src/Relecloud.Web.Models/ConcertContext/CreateResult.cs similarity index 100% rename from src/Relecloud.Models/ConcertContext/CreateResult.cs rename to src/Relecloud.Web.Models/ConcertContext/CreateResult.cs diff --git a/src/Relecloud.Models/ConcertContext/Customer.cs b/src/Relecloud.Web.Models/ConcertContext/Customer.cs similarity index 100% rename from src/Relecloud.Models/ConcertContext/Customer.cs rename to src/Relecloud.Web.Models/ConcertContext/Customer.cs diff --git a/src/Relecloud.Models/ConcertContext/DeleteResult.cs b/src/Relecloud.Web.Models/ConcertContext/DeleteResult.cs similarity index 100% rename from src/Relecloud.Models/ConcertContext/DeleteResult.cs rename to src/Relecloud.Web.Models/ConcertContext/DeleteResult.cs diff --git a/src/Relecloud.Models/ConcertContext/PagedResult.cs b/src/Relecloud.Web.Models/ConcertContext/PagedResult.cs similarity index 100% rename from src/Relecloud.Models/ConcertContext/PagedResult.cs rename to src/Relecloud.Web.Models/ConcertContext/PagedResult.cs diff --git a/src/Relecloud.Models/ConcertContext/Ticket.cs b/src/Relecloud.Web.Models/ConcertContext/Ticket.cs similarity index 100% rename from src/Relecloud.Models/ConcertContext/Ticket.cs rename to src/Relecloud.Web.Models/ConcertContext/Ticket.cs diff --git a/src/Relecloud.Models/ConcertContext/TicketNumber.cs b/src/Relecloud.Web.Models/ConcertContext/TicketNumber.cs similarity index 100% rename from src/Relecloud.Models/ConcertContext/TicketNumber.cs rename to src/Relecloud.Web.Models/ConcertContext/TicketNumber.cs diff --git a/src/Relecloud.Models/ConcertContext/UpdateResult.cs b/src/Relecloud.Web.Models/ConcertContext/UpdateResult.cs similarity index 100% rename from src/Relecloud.Models/ConcertContext/UpdateResult.cs rename to src/Relecloud.Web.Models/ConcertContext/UpdateResult.cs diff --git a/src/Relecloud.Models/ConcertContext/User.cs b/src/Relecloud.Web.Models/ConcertContext/User.cs similarity index 100% rename from src/Relecloud.Models/ConcertContext/User.cs rename to src/Relecloud.Web.Models/ConcertContext/User.cs diff --git a/src/Relecloud.Models/Relecloud.Web.Models.csproj b/src/Relecloud.Web.Models/Relecloud.Web.Models.csproj similarity index 100% rename from src/Relecloud.Models/Relecloud.Web.Models.csproj rename to src/Relecloud.Web.Models/Relecloud.Web.Models.csproj diff --git a/src/Relecloud.Models/Search/ConcertSearchResult.cs b/src/Relecloud.Web.Models/Search/ConcertSearchResult.cs similarity index 100% rename from src/Relecloud.Models/Search/ConcertSearchResult.cs rename to src/Relecloud.Web.Models/Search/ConcertSearchResult.cs diff --git a/src/Relecloud.Models/Search/SearchFacet.cs b/src/Relecloud.Web.Models/Search/SearchFacet.cs similarity index 100% rename from src/Relecloud.Models/Search/SearchFacet.cs rename to src/Relecloud.Web.Models/Search/SearchFacet.cs diff --git a/src/Relecloud.Models/Search/SearchFacetValue.cs b/src/Relecloud.Web.Models/Search/SearchFacetValue.cs similarity index 100% rename from src/Relecloud.Models/Search/SearchFacetValue.cs rename to src/Relecloud.Web.Models/Search/SearchFacetValue.cs diff --git a/src/Relecloud.Models/Search/SearchRequest.cs b/src/Relecloud.Web.Models/Search/SearchRequest.cs similarity index 100% rename from src/Relecloud.Models/Search/SearchRequest.cs rename to src/Relecloud.Web.Models/Search/SearchRequest.cs diff --git a/src/Relecloud.Models/Search/SearchResponse.cs b/src/Relecloud.Web.Models/Search/SearchResponse.cs similarity index 100% rename from src/Relecloud.Models/Search/SearchResponse.cs rename to src/Relecloud.Web.Models/Search/SearchResponse.cs diff --git a/src/Relecloud.Models/Services/IConcertContextService.cs b/src/Relecloud.Web.Models/Services/IConcertContextService.cs similarity index 100% rename from src/Relecloud.Models/Services/IConcertContextService.cs rename to src/Relecloud.Web.Models/Services/IConcertContextService.cs diff --git a/src/Relecloud.Models/Services/IConcertSearchService.cs b/src/Relecloud.Web.Models/Services/IConcertSearchService.cs similarity index 100% rename from src/Relecloud.Models/Services/IConcertSearchService.cs rename to src/Relecloud.Web.Models/Services/IConcertSearchService.cs diff --git a/src/Relecloud.Models/Services/IServiceProviderResult.cs b/src/Relecloud.Web.Models/Services/IServiceProviderResult.cs similarity index 100% rename from src/Relecloud.Models/Services/IServiceProviderResult.cs rename to src/Relecloud.Web.Models/Services/IServiceProviderResult.cs diff --git a/src/Relecloud.Models/TicketManagement/CountAvailableTicketsResult.cs b/src/Relecloud.Web.Models/TicketManagement/CountAvailableTicketsResult.cs similarity index 100% rename from src/Relecloud.Models/TicketManagement/CountAvailableTicketsResult.cs rename to src/Relecloud.Web.Models/TicketManagement/CountAvailableTicketsResult.cs diff --git a/src/Relecloud.Models/TicketManagement/HaveTicketsBeenSoldResult.cs b/src/Relecloud.Web.Models/TicketManagement/HaveTicketsBeenSoldResult.cs similarity index 100% rename from src/Relecloud.Models/TicketManagement/HaveTicketsBeenSoldResult.cs rename to src/Relecloud.Web.Models/TicketManagement/HaveTicketsBeenSoldResult.cs diff --git a/src/Relecloud.Models/TicketManagement/Payment/CardTypes.cs b/src/Relecloud.Web.Models/TicketManagement/Payment/CardTypes.cs similarity index 100% rename from src/Relecloud.Models/TicketManagement/Payment/CardTypes.cs rename to src/Relecloud.Web.Models/TicketManagement/Payment/CardTypes.cs diff --git a/src/Relecloud.Models/TicketManagement/Payment/PaymentDetails.cs b/src/Relecloud.Web.Models/TicketManagement/Payment/PaymentDetails.cs similarity index 100% rename from src/Relecloud.Models/TicketManagement/Payment/PaymentDetails.cs rename to src/Relecloud.Web.Models/TicketManagement/Payment/PaymentDetails.cs diff --git a/src/Relecloud.Models/TicketManagement/PurchaseTicketsRequest.cs b/src/Relecloud.Web.Models/TicketManagement/PurchaseTicketsRequest.cs similarity index 100% rename from src/Relecloud.Models/TicketManagement/PurchaseTicketsRequest.cs rename to src/Relecloud.Web.Models/TicketManagement/PurchaseTicketsRequest.cs diff --git a/src/Relecloud.Models/TicketManagement/PurchaseTicketsResult.cs b/src/Relecloud.Web.Models/TicketManagement/PurchaseTicketsResult.cs similarity index 100% rename from src/Relecloud.Models/TicketManagement/PurchaseTicketsResult.cs rename to src/Relecloud.Web.Models/TicketManagement/PurchaseTicketsResult.cs diff --git a/src/Relecloud.Models/TicketManagement/PurchaseTicketsResultStatus.cs b/src/Relecloud.Web.Models/TicketManagement/PurchaseTicketsResultStatus.cs similarity index 100% rename from src/Relecloud.Models/TicketManagement/PurchaseTicketsResultStatus.cs rename to src/Relecloud.Web.Models/TicketManagement/PurchaseTicketsResultStatus.cs diff --git a/src/Relecloud.Models/TicketManagement/ReserveTicketsResult.cs b/src/Relecloud.Web.Models/TicketManagement/ReserveTicketsResult.cs similarity index 100% rename from src/Relecloud.Models/TicketManagement/ReserveTicketsResult.cs rename to src/Relecloud.Web.Models/TicketManagement/ReserveTicketsResult.cs diff --git a/src/Relecloud.Models/TicketManagement/ReserveTicketsResultStatus.cs b/src/Relecloud.Web.Models/TicketManagement/ReserveTicketsResultStatus.cs similarity index 100% rename from src/Relecloud.Models/TicketManagement/ReserveTicketsResultStatus.cs rename to src/Relecloud.Web.Models/TicketManagement/ReserveTicketsResultStatus.cs diff --git a/src/Relecloud.Web/Infrastructure/RedirectSampleMiddleware.cs b/src/Relecloud.Web/Infrastructure/RedirectSampleMiddleware.cs deleted file mode 100644 index d701c090..00000000 --- a/src/Relecloud.Web/Infrastructure/RedirectSampleMiddleware.cs +++ /dev/null @@ -1,56 +0,0 @@ -/* -NOTICE: This class is not intended for production scenarios. - -This middleware feature is included to help readers try the sample. -When a user visits the app service directly we will redirect to -Azure Front Door which is registered with Azure AD. -In a prod scenario we recommend using Access Restrictions -to ensure the Front Door cannot be bypassed which would show an error page. - -Note that we also recommend host name preservation which -means that end users would never see the azure web app url, or the azure front door url -https://learn.microsoft.com/en-us/azure/architecture/best-practices/host-name-preservation -*/ -using Microsoft.AspNetCore.Http; - -namespace Relecloud.Web.Infrastructure -{ - public class RedirectSampleMiddleware - { - private readonly RequestDelegate _next; - - public RedirectSampleMiddleware(RequestDelegate next) - { - _next = next; - } - - public async Task InvokeAsync(HttpContext context) - { - var config = context.RequestServices.GetService(); - if (config != null && !string.IsNullOrEmpty(config["App:FrontDoorUri"])) - { - var hostUri = context.Request.GetTypedHeaders().Host.ToString(); - var frontDoorUri = config["App:FrontDoorUri"]; - - if (context.Request.Path.Value != "/healthz" && hostUri != frontDoorUri) - { - // the forwarded host header should be populated by Front Door - // block this attempt to access the web app directly by redirecting to Front Door - context.Response.Redirect($"https://{frontDoorUri}"); - return; - } - } - - await _next(context); - } - } - - public static class RedirectSampleMiddlewareExtensions - { - public static IApplicationBuilder UseRetryTestingMiddleware( - this IApplicationBuilder builder) - { - return builder.UseMiddleware(); - } - } -} diff --git a/src/Relecloud.Web/Services/ITicketImageService.cs b/src/Relecloud.Web/Services/ITicketImageService.cs deleted file mode 100644 index 04246e66..00000000 --- a/src/Relecloud.Web/Services/ITicketImageService.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Relecloud.Web.Infrastructure; - -using Relecloud.Web.Models.TicketManagement; - -using System.Net; -using Azure.Core; - -namespace Relecloud.Web.Services; - -public interface ITicketImageService -{ - Task GetTicketImagesAsync(string imageName); -} diff --git a/src/Relecloud.sln b/src/Relecloud.sln index 4f0d6205..4818fa75 100644 --- a/src/Relecloud.sln +++ b/src/Relecloud.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.1.32104.313 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Relecloud.Web.Api", "Relecloud.Web.Api\Relecloud.Web.Api.csproj", "{13320B78-0B26-4026-ADCE-FE84E1735097}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Relecloud.Web.CallCenter", "Relecloud.Web.CallCenter\Relecloud.Web.CallCenter.csproj", "{2A48F2D7-51D1-4C69-8E7E-3F7A6E4F7BED}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Relecloud.Web.Models", "Relecloud.Models\Relecloud.Web.Models.csproj", "{CFDE9EEE-4994-43DF-8F99-123E88BEDDE8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Relecloud.Web.Models", "Relecloud.Web.Models\Relecloud.Web.Models.csproj", "{257EA44D-0632-4029-ADD9-92EDD4B70931}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Relecloud.Web", "Relecloud.Web\Relecloud.Web.csproj", "{58966CC0-F7FC-467F-8DEF-6D8EC4B2DC3D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Relecloud.Web.CallCenter.Api", "Relecloud.Web.CallCenter.Api\Relecloud.Web.CallCenter.Api.csproj", "{0B28CA97-C813-41B7-A415-EFDCA4FB372E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5A9852C0-088E-411F-B195-450AFF5B954D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{FDD97D72-A655-45EB-8709-0E5265C12BE0}" ProjectSection(SolutionItems) = preProject global.json = global.json EndProjectSection @@ -20,18 +20,18 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {13320B78-0B26-4026-ADCE-FE84E1735097}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {13320B78-0B26-4026-ADCE-FE84E1735097}.Debug|Any CPU.Build.0 = Debug|Any CPU - {13320B78-0B26-4026-ADCE-FE84E1735097}.Release|Any CPU.ActiveCfg = Release|Any CPU - {13320B78-0B26-4026-ADCE-FE84E1735097}.Release|Any CPU.Build.0 = Release|Any CPU - {CFDE9EEE-4994-43DF-8F99-123E88BEDDE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CFDE9EEE-4994-43DF-8F99-123E88BEDDE8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CFDE9EEE-4994-43DF-8F99-123E88BEDDE8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CFDE9EEE-4994-43DF-8F99-123E88BEDDE8}.Release|Any CPU.Build.0 = Release|Any CPU - {58966CC0-F7FC-467F-8DEF-6D8EC4B2DC3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {58966CC0-F7FC-467F-8DEF-6D8EC4B2DC3D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {58966CC0-F7FC-467F-8DEF-6D8EC4B2DC3D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {58966CC0-F7FC-467F-8DEF-6D8EC4B2DC3D}.Release|Any CPU.Build.0 = Release|Any CPU + {2A48F2D7-51D1-4C69-8E7E-3F7A6E4F7BED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A48F2D7-51D1-4C69-8E7E-3F7A6E4F7BED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A48F2D7-51D1-4C69-8E7E-3F7A6E4F7BED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A48F2D7-51D1-4C69-8E7E-3F7A6E4F7BED}.Release|Any CPU.Build.0 = Release|Any CPU + {257EA44D-0632-4029-ADD9-92EDD4B70931}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {257EA44D-0632-4029-ADD9-92EDD4B70931}.Debug|Any CPU.Build.0 = Debug|Any CPU + {257EA44D-0632-4029-ADD9-92EDD4B70931}.Release|Any CPU.ActiveCfg = Release|Any CPU + {257EA44D-0632-4029-ADD9-92EDD4B70931}.Release|Any CPU.Build.0 = Release|Any CPU + {0B28CA97-C813-41B7-A415-EFDCA4FB372E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B28CA97-C813-41B7-A415-EFDCA4FB372E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B28CA97-C813-41B7-A415-EFDCA4FB372E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B28CA97-C813-41B7-A415-EFDCA4FB372E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/global.json b/src/global.json index a03cb3d1..0dbd016b 100644 --- a/src/global.json +++ b/src/global.json @@ -3,7 +3,7 @@ // updated to the latest released Major version // SDK and runtime version numbers do not require sync // https://learn.microsoft.com/en-us/dotnet/core/tools/global-json - "version": "7.0.100", + "version": "8.0.100", "rollForward": "latestFeature" } } \ No newline at end of file diff --git a/testscripts/README.md b/testscripts/README.md new file mode 100644 index 00000000..8bade422 --- /dev/null +++ b/testscripts/README.md @@ -0,0 +1,74 @@ +# Testing scripts +These scripts are used by the engineering team to accelerate the testing process through deployment automation. + +## Workflow + +1. From terminal in the devcontainer start powershell + + ```sh + pwsh + ``` + +1. Install the required PowerShell modules + + ```pwsh + Install-Module Az + ``` + + ```pwsh + Import-Module Az + ``` + +1. Validate your connection settings + + ```pwsh + Get-AzContext + ``` + + ```pwsh + azd config get defaults.subscription + ``` + + * If you are not authenticated then run the following to set your account context. + + ```pwsh + Connect-AzAccount + ``` + + ```pwsh + azd auth login + ``` + + * If you need to change your default subscription. + + ```pwsh + Set-AzContext -Subscription {your_subscription_id} + ``` + + ```pwsh + azd config set defaults.subscription {your_subscription_id} + ``` + +1. Start a provision + + > It is encouraged to use a distinct name for each deployment + + ```pwsh + .\testscripts\setup.ps1 -NotIsolated -Development -CommonAppServicePlan -SingleLocation -Name reledev7 + ``` + + + +1. Run a deployment + + ```pwsh + azd deploy + ``` + +1. Clean up a provisioned environment + + > Find the full name of the application resource group to be supplied as the value for *ResourceGroup* param + + ```pwsh + .\testscripts\cleanup.ps1 -ResourceGroup rg-reledev7-dev-westus3-application + ``` \ No newline at end of file diff --git a/testscripts/call-validate-deployment.sh b/testscripts/call-validate-deployment.sh new file mode 100755 index 00000000..92eecf5f --- /dev/null +++ b/testscripts/call-validate-deployment.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# This script is run by GitHub workflow and is part of the deployment lifecycle run when validatinng the deployment for the Relecloud web app. +resourceGroupName=$((azd env get-values --output json) | jq -r .AZURE_RESOURCE_GROUP) +echo "Calling validate-deployment.sh for group:'$resourceGroupName'..." +./testscripts/validate-deployment.sh -g $resourceGroupName \ No newline at end of file diff --git a/testscripts/cleanup.ps1 b/testscripts/cleanup.ps1 new file mode 100644 index 00000000..17566fb0 --- /dev/null +++ b/testscripts/cleanup.ps1 @@ -0,0 +1,376 @@ +<# +.SYNOPSIS + Cleans up the Azure resources for the Reliable Web App pattern for a given azd environment. +.DESCRIPTION + There are times that azd down doesn't work well. At time of writing, this includes complex + environments with multiple resource groups and networking. To remedy this, this script removes + the Azure resources in the correct order. + + If you do not provide any parameters, this script will clean up the most current azd environment. +.PARAMETER Prefix + The prefix of the Azure environment to clean up. Provide this OR the ResourceGroup parameter to + clean up a specific environment. +.PARAMETER ResourceGroup + The name of the application resource group to clean up. Provide this OR the Prefix parameter to clean + up a specific environment. +.PARAMETER SpokeResourceGroup + If you provide the ResourceGroup parameter and are using network isolation, then you must also provide + the SpokeResourceGroup if it is a different resource group. If you don't, then the spoke network will + not be cleaned up. +.PARAMETER HubResourceGroup + If you provide the ResourceGroup parameter and have deployed a hub network, then you must also provide + the HubResourceGroup if it is a different resource group. If you don't, then the hub network will not + be cleaned up. +.PARAMETER DeleteGroups + Defaults to true, but if you set this to false, then the resource groups will not be deleted. This is + expected behavior when combined with the `azd down` command which will take responsibility for deleting + the resource groups. +.NOTES + This command requires that Az modules are installed and imported. It also requires that you have an + active Azure session. If you are not authenticated with Azure, you will be prompted to authenticate. +#> + +Param( + [Parameter(Mandatory = $false)][string]$Prefix, + [Parameter(Mandatory = $false)][string]$ResourceGroup, + [Parameter(Mandatory = $false)][string]$SecondaryResourceGroup, + [Parameter(Mandatory = $false)][string]$SpokeResourceGroup, + [Parameter(Mandatory = $false)][string]$SecondarySpokeResourceGroup, + [Parameter(Mandatory = $false)][string]$HubResourceGroup, + [Parameter(Mandatory = $false)][switch]$SkipResourceGroupDeletion, + [Parameter(Mandatory = $false)][switch]$Purge, + [Parameter(Mandatory = $false)][switch]$NoPrompt +) + + +if ((Get-Module -ListAvailable -Name Az) -and (Get-Module -Name Az.Resources -ErrorAction SilentlyContinue)) { + Write-Debug "The 'Az.Resources' module is installed and imported." + if (Get-AzContext -ErrorAction SilentlyContinue) { + Write-Debug "The user is authenticated with Azure." + } + else { + Write-Error "You are not authenticated with Azure. Please run 'Connect-AzAccount' to authenticate before running this script." + exit 10 + } +} +else { + try { + Write-Host "Importing 'Az.Resources' module" + Import-Module -Name Az.Resources -ErrorAction Stop + Write-Debug "The 'Az.Resources' module is imported successfully." + if (Get-AzContext -ErrorAction SilentlyContinue) { + Write-Debug "The user is authenticated with Azure." + } + else { + Write-Error "You are not authenticated with Azure. Please run 'Connect-AzAccount' to authenticate before running this script." + exit 11 + } + } + catch { + Write-Error "Failed to import the 'Az' module. Please install and import the 'Az' module before running this script." + exit 12 + } +} + +function Test-ResourceGroupExists($resourceGroupName) { + $resourceGroup = Get-AzResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue + return $null -ne $resourceGroup +} + +# Default Settings +$rgPrefix = "" +$rgApplication = "" +$rgSpoke = "" +$rgHub = "" +$rgSecondaryApplication = "" +$rgSecondarySpoke = "" +#$CleanupAzureDirectory = $false + +$azdConfig = azd env get-values -o json | ConvertFrom-Json -Depth 9 -AsHashtable + +if ($Prefix) { + $rgPrefix = $Prefix + $rgApplication = "$rgPrefix-application" + $rgSpoke = "$rgPrefix-spoke" + $rgSecondaryApplication = "$rgPrefix-2-application" + $rgSecondarySpoke = "$rgPrefix-2-spoke" + $rgHub = "$rgPrefix-hub" +} else { + if (!$ResourceGroup) { + if (!(Test-Path -Path ./.azure -PathType Container)) { + "No .azure directory found and no resource group information provided - cannot clean up" + exit 8 + } + $environmentName = $azdConfig['AZURE_ENV_NAME'] + $environmentType = $azdConfig['AZURE_ENV_TYPE'] ?? 'dev' + $location = $azdConfig['AZURE_LOCATION'] + $locationSecondary = $azdConfig['AZURE_LOCATION'] ?? $azdConfig['AZURE_LOCATION'] + $rgPrefix = "rg-$environmentName-$environmentType" + $rgApplication = "$rgPrefix-$location-application" + $rgSpoke = "$rgPrefix-$location-spoke" + $rgSecondaryApplication = "$rgPrefix-$locationSecondary-2-application" + Write-Host "Secondary Application Resource Group: $rgSecondaryApplication" + $rgSecondarySpoke = "$rgPrefix-$locationSecondary-2-spoke" + Write-Host "Secondary Spoke Resource Group: $rgSecondarySpoke" + $rgHub = "$rgPrefix-hub" + #$CleanupAzureDirectory = $true + } else { + $rgApplication = $ResourceGroup + if (Test-ResourceGroupExists -ResourceGroupName $rgApplication) { + # Tags on the group describe the environment + $rgResource = Get-AzResourceGroup -Name $rgApplication -ErrorAction SilentlyContinue + $rgPrefix = $ResourceGroup.Substring(0, $ResourceGroup.IndexOf('-application') - $rgResource.Location.Length - 1) + $location = $rgResource.Location + $locationSecondary = $rgResource.Tags['SecondaryLocation'] ?? $rgResource.Location + } + } +} + +if ($SecondaryResourceGroup) { + $rgSecondaryApplication = $SecondaryResourceGroup +} elseif ($rgSecondaryApplication -eq '') { + $rgSecondaryApplication = "$rgPrefix-$locationSecondary-2-application" +} +if ($SpokeResourceGroup) { + $rgSpoke = $SpokeResourceGroup +} elseif ($rgSpoke -eq '') { + $rgSpoke = "$rgPrefix-$location-spoke" +} +if ($SecondarySpokeResourceGroup) { + $rgSecondarySpoke = $SecondarySpokeResourceGroup +} elseif ($rgSecondarySpoke -eq '') { + $rgSecondarySpoke = "$rgPrefix-$locationSecondary-2-spoke" +} +if ($HubResourceGroup) { + $rgHub = $HubResourceGroup +} elseif ($rgHub -eq '') { + $rgHub = "$rgPrefix-$location-hub" +} + +# Gets an access token for accessing Azure Resource Manager APIs +function Get-AzAccessToken { + $azContext = Get-AzContext + $azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile + $profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile) + $token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId) + return $token +} + +# Get-AzConsumptionBudget doesn't seem to return the list of budgets, +# so we use the REST API instead. +function Get-AzBudget($resourceGroupName) { + $azContext = Get-AzContext + $token = Get-AzAccessToken + $authHeader = @{ + 'Content-Type'='application/json' + 'Authorization'='Bearer ' + $token.AccessToken + } + $baseUri = "https://management.azure.com/subscriptions/$($azContext.Subscription)/resourceGroups/$($resourceGroupName)/providers/Microsoft.Consumption/budgets" + $apiVersion = "?api-version=2023-05-01" + $restUri = "$($baseUri)$($apiVersion)" + $result = Invoke-RestMethod -Uri $restUri -Method GET -Header $authHeader + return $result.value +} + +function Remove-ConsumptionBudgetForResourceGroup($resourceGroupName) { + Get-AzBudget -ResourceGroupName $resourceGroupName + | Foreach-Object { + "`tRemoving $resourceGroupName::$($_.name)" | Write-Output + Remove-AzConsumptionBudget -Name $_.name -ResourceGroupName $resourceGroupName + } +} + +function Remove-DiagnosticSettingsForResourceGroup($resourceGroupName) { + Get-AzResource -ResourceGroupName $resourceGroupName + | Foreach-Object { + $resourceName = $_.Name + $resourceId = $_.ResourceId + Get-AzDiagnosticSetting -ResourceId $resourceId -ErrorAction SilentlyContinue | Foreach-Object { + "`tRemoving $resourceGroupName::$resourceName::$($_.Name)" | Write-Output + Remove-AzDiagnosticSetting -ResourceId $resourceId -Name $_.Name + } + } +} + +function Remove-PrivateEndpointsForResourceGroup($resourceGroupName) { + Get-AzPrivateEndpoint -ResourceGroupName $resourceGroupName + | Foreach-Object { + "`tRemoving $resourceGroupName::$($_.Name)" | Write-Output + Remove-AzPrivateEndpoint -Name $_.Name -ResourceGroupName $_.ResourceGroupName -Force + } +} + +function Remove-ResourceGroupFromAzure($resourceGroupName) { + if (Test-ResourceGroupExists -ResourceGroupName $resourceGroupName) { + "`tRemoving $resourceGroupName" | Write-Output + Remove-AzResourceGroup -Name $resourceGroupName -Force + } +} + +function Test-EntraAppRegistrationExists($name) { + $appRegistration = Get-AzADApplication -DisplayName $name -ErrorAction SilentlyContinue + return $null -ne $appRegistration +} + +function Remove-AzADApplicationByName($name) { + $appRegistration = Get-AzADApplication -DisplayName $name -ErrorAction SilentlyContinue + if ($appRegistration) { + "`tRemoving $name" | Write-Output + Remove-AzADApplication -ObjectId $appRegistration.Id + } +} + +function Get-ResourceToken($resourceGroupName) { + $defaultRedisNamePrefix = 'redis-' + $redisInstances = Get-AzRedisCache -ResourceGroupName $resourceGroupName -ErrorAction SilentlyContinue + + if ($redisInstances.Count -eq 0) { + return "notfound" + } + + return ($redisInstances | Select-Object -First 1).Name.Substring($defaultRedisNamePrefix.Length) +} + +<# +.SYNOPSIS + Reads input from the user, but taking care of default value and request to + not prompt the user. +.PARAMETER Prompt + The prompt to display to the user. +.PARAMETER DefaultValue + The default value to use if the user just hits Enter. +.PARAMETER NoPrompt + If specified, don't prompt - just use the default value. +#> +function Read-ApplicationPrompt { + param( + [Parameter(Mandatory = $true)] + [string] $Prompt, + + [Parameter(Mandatory = $true)] + [string] $DefaultValue, + + [Parameter(Mandatory = $false)] + [switch] $NoPrompt = $false + ) + + $returnValue = "" + if (-not $NoPrompt) { + $returnValue = Read-Host -Prompt "`n$($Prompt) [default: $(Get-HighlightedText($DefaultValue))] " + } + if ([string]::IsNullOrWhiteSpace($returnValue)) { + $returnValue = $DefaultValue + } + return $returnValue +} +"`nCleaning up environment for application '$rgApplication'" | Write-Output + +# Get the list of resource groups to deal with +$resourceGroups = [System.Collections.ArrayList]@() +if (Test-ResourceGroupExists -ResourceGroupName $rgApplication) { + "`tFound application resource group: $rgApplication" | Write-Output + $resourceGroups.Add($rgApplication) | Out-Null +} else { + "`tConfirm the correct subscription was selected and check the spelling of the group to be deleted" | Write-Warning + "`tCould not find resource group: $rgApplication" | Write-Error + exit 9 +} +if (Test-ResourceGroupExists -ResourceGroupName $rgSecondaryApplication) { + "`tFound secondary application resource group: $rgSecondaryApplication" | Write-Output + $resourceGroups.Add($rgSecondaryApplication) | Out-Null +} + + +if (Test-ResourceGroupExists -ResourceGroupName $rgSpoke) { + "`tFound spoke resource group: $rgSpoke" | Write-Output + $resourceGroups.Add($rgSpoke) | Out-Null +} +if (Test-ResourceGroupExists -ResourceGroupName $rgSecondarySpoke) { + "`tFound secondary spoke resource group: $rgSecondarySpoke" | Write-Output + $resourceGroups.Add($rgSecondarySpoke) | Out-Null +} +if (Test-ResourceGroupExists -ResourceGroupName $rgHub) { + "`tFound hub resource group: $rgHub" | Write-Output + $resourceGroups.Add($rgHub) | Out-Null +} + +$resourceToken=(Get-ResourceToken -resourceGroupName $rgApplication) # expecting to be something like 'fjmjdbizcdxt4' +$appRegistrations = [System.Collections.ArrayList]@() +$calculatedAppRegistrationNameForApi = "$rgPrefix-api-webapp-$resourceToken".Substring(3) +$calculatedAppRegistrationNameForFrontend = "$rgPrefix-front-webapp-$resourceToken".Substring(3) + +if (Test-EntraAppRegistrationExists -Name $calculatedAppRegistrationNameForApi) { + "`tFound Entra ID App Registration: $calculatedAppRegistrationNameForApi" | Write-Output + $appRegistrations.Add($calculatedAppRegistrationNameForApi) | Out-Null +} +if (Test-EntraAppRegistrationExists -Name $calculatedAppRegistrationNameForFrontend) { + "`tFound Entra ID App Registration: $calculatedAppRegistrationNameForFrontend" | Write-Output + $appRegistrations.Add($calculatedAppRegistrationNameForFrontend) | Out-Null +} + +# Determine if we need to purge the App Configuration and Key Vault. +$defaultPurgeResources = if ($Purge) { "y" } else { "n" } +$purgeResources = Read-ApplicationPrompt -Prompt "Do you wish to puge resources that cannot be reassigned immediately (such as Key Vault)? [y/n]" -DefaultValue $defaultPurgeResources -NoPrompt:$NoPrompt + +# press enter to proceed +if (-not $NoPrompt) { + "`nPress enter to proceed with cleanup or CTRL+C to cancel" | Write-Output + $null = Read-Host +} + +# we don't want to delete the app registrations because we reuse them when running in pipeline +# when running in pipeline, the AZURE_PRINCIPAL_TYPE is set to 'ServicePrincipal' +if ($azdConfig['AZURE_PRINCIPAL_TYPE'] -eq 'User') { + "`nRemoving Entra ID App Registration..." | Write-Output + foreach($appRegistration in $appRegistrations) { + Remove-AzADApplicationByName -Name $appRegistration + } +} + +if ($purgeResources -eq "y") { + "> Remove and purge purgeable resources:" | Write-Output + foreach ($resourceGroupName in $resourceGroups) { + Get-AzKeyVault -ResourceGroupName $resourceGroupName | Foreach-Object { + "`tRemoving $($_.VaultName)" | Write-Output + Remove-AzKeyVault -VaultName $_.VaultName -ResourceGroupName $resourceGroupName -Force + "`tPurging $($_.VaultName)" | Write-Output + Remove-AzKeyVault -VaultName $_.VaultName -Location $_.Location -InRemovedState -Force -ErrorAction SilentlyContinue + } + + Get-AzAppConfigurationStore -ResourceGroupName $resourceGroupName | Foreach-Object { + "`tRemoving $($_.Name)" | Write-Output + Remove-AzAppConfigurationStore -Name $_.Name -ResourceGroupName $resourceGroupName + "`tPurging $($_.Name)" | Write-Output + Clear-AzAppConfigurationDeletedStore -Location $_.Location -Name $_.Name -ErrorAction SilentlyContinue + } + } +} + +"`nRemoving resources from resource groups..." | Write-Output +"> Private Endpoints:" | Write-Output +foreach ($resourceGroupName in $resourceGroups) { + Remove-PrivateEndpointsForResourceGroup -ResourceGroupName $resourceGroupName +} + +"> Budgets:" | Write-Output +foreach ($resourceGroupName in $resourceGroups) { + Remove-ConsumptionBudgetForResourceGroup -ResourceGroupName $resourceGroupName +} + +"> Diagnostic Settings:" | Write-Output +foreach ($resourceGroupName in $resourceGroups) { + Remove-DiagnosticSettingsForResourceGroup -ResourceGroupName $resourceGroupName +} + +# if $SkipResourceGroupDeletion is false, then we skip the resource group deletion +# flag is expected to be set to false when combined with the `azd down` command +if (-not $SkipResourceGroupDeletion) { + "`nRemoving resource groups in order..." | Write-Output + Remove-ResourceGroupFromAzure -ResourceGroupName $rgApplication + Remove-ResourceGroupFromAzure -ResourceGroupName $rgSecondaryApplication + Remove-ResourceGroupFromAzure -ResourceGroupName $rgSpoke + Remove-ResourceGroupFromAzure -ResourceGroupName $rgSecondarySpoke + Remove-ResourceGroupFromAzure -ResourceGroupName $rgHub + + "`nCleanup complete." | Write-Output +} \ No newline at end of file diff --git a/testscripts/setup.ps1 b/testscripts/setup.ps1 new file mode 100644 index 00000000..5943f213 --- /dev/null +++ b/testscripts/setup.ps1 @@ -0,0 +1,376 @@ +<# +.SYNOPSIS + Sets the deployment up with one command. This tries to be smart about + what you want and does the provisioning and deployment steps in one + command. +.DESCRIPTION + When installing the Relecloud web app, you have to make many choices - are + you running in network isolation mode? Do you need a hub? Would you like + to save money by deploying with a common app service plan? This script + will prompt you for these choices and then deploy the infrastructure for + you. +.PARAMETER CommonAppServicePlan + If included, deploy a common app service plan. +.PARAMETER NoCommonAppServicePlan + If included, do not deploy a common app service plan. +.PARAMETER Hub + If included, deploy a hub network. No effect if not using network isolation +.PARAMETER NoHub + If included, do not deploy a hub network. +.PARAMETER Isolated + If included, isolate the application in a VNET. +.PARAMETER NotIsolated + If included, do not isolate the application in a VNET. +.PARAMETER Name + The environment name to use. +.PARAMETER Production + If included, use production settings. +.PARAMETER Development + If included, use development settings. +.PARAMETER SingleLocation + The default behavior creating an Azure deployment targeting a single Azure region. +.PARAMETER MultiLocation + If included, do not prompt for any information. This will use the default + settings for all options. +.PARAMETER NoPrompt + If included, do not prompt for any information. This will use the default + settings for all options. +#> + +Param( + [switch]$CommonAppServicePlan, + [switch]$NoCommonAppServicePlan, + [switch]$Hub, + [switch]$NoHub, + [switch]$Isolated, + [switch]$NotIsolated, + [string]$Name = "", + [switch]$Production, + [switch]$Development, + [switch]$NoPrompt, + [switch]$SingleLocation, + [string]$AzureLocation = "", + [switch]$MultiLocation, + [string]$SecondAzureLocation = "" +) + +function FormatMenu { + param([array]$items, [int]$position) + + for ($i = 0 ; $i -le $items.Length; $i++) { + $item = $items[$i] + if ($i -eq $position) { + Write-Host "> $($item)" -ForegroundColor Green + } else { + Write-Host " $($item)" + } + } +} + +function ShowMenu { + param([string]$title, [array]$keys, [array]$items, [string]$defaultValue) + + $vkeycode = 0 + $pos = [array]::FindIndex($keys, [Predicate[string]] { param($s) $s -eq $defaultValue }) + $startPos = [System.Console]::CursorTop + if ($items.Length -gt 0) { + try { + [System.Console]::CursorVisible = $false + FormatMenu -items $items -position $pos + while ($vkeycode -ne 13 -and $vkeycode -ne 27) { + $press = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") + $vkeycode = $press.VirtualKeyCode + if ($vkeycode -eq 27) { + Write-Host "`nERROR: Escape pressed; aborting setup" -ForegroundColor Red + [System.Console]::CursorVisible = $true + [System.Environment]::Exit(1) + } + if ($vkeycode -eq 35) { + $pos = $items.Length - 1 + } + if ($vkeycode -eq 36) { + $pos = 0 + } + if ($vkeycode -eq 38 -or $press.Character -eq 'k') { + $pos-- + } + if ($vkeycode -eq 40 -or $press.Character -eq 'j') { + $pos++ + } + + if ($pos -lt 0) { + $pos = 0 + } + if ($pos -ge $items.Length) { + $pos = $items.Length - 1 + } + + [System.Console]::SetCursorPosition(0, $startPos) + FormatMenu -items $items -position $pos + } + } + finally { + $yPos = $startPos + $items.Length + if ($yPos -ge $Host.UI.RawUI.BufferSize.Height) { + Clear-Host + } else { + [System.Console]::SetCursorPosition(0, $yPos) + } + [System.Console]::CursorVisible = $true + } + } + else { + Write-Host "`nERROR: No items provided for question; aborting setup" -ForegroundColor Red + [System.Console]::CursorVisible = $true + [System.Environment]::Exit(1) + } + + return $keys[$pos] +} + +# End of function definitions + +# Check for required features + +if ((Get-Module -ListAvailable -Name Az) -and (Get-Module -Name Az.Resources -ErrorAction SilentlyContinue)) { + Write-Debug "The 'Az.Resources' module is installed and imported." + if (Get-AzContext -ErrorAction SilentlyContinue) { + Write-Debug "The user is authenticated with Azure." + } + else { + Write-Error "You are not authenticated with Azure. Please run 'Connect-AzAccount' to authenticate before running this script." + exit 10 + } +} +else { + try { + Write-Host "Importing 'Az.Resources' module" + Import-Module -Name Az.Resources -ErrorAction Stop + Write-Debug "The 'Az.Resources' module is imported successfully." + if (Get-AzContext -ErrorAction SilentlyContinue) { + Write-Debug "The user is authenticated with Azure." + } + else { + Write-Error "You are not authenticated with Azure. Please run 'Connect-AzAccount' to authenticate before running this script." + exit 11 + } + } + catch { + Write-Error "Failed to import the 'Az' module. Please install and import the 'Az' module before running this script." + exit 12 + } +} + +# End of feature checking + +# Check for conflicting parameters + +if ($CommonAppServicePlan -and $NoCommonAppServicePlan) { + "You cannot specify both -CommonAppServicePlan and -NoCommonAppServicePlan" + exit 1 +} + +if ($Hub -and $NoHub) { + "You cannot specify both -Hub and -NoHub" + exit 1 +} + +if ($Isolated -and $NotIsolated) { + "You cannot specify both -Isolated and -NotIsolated" + exit 1 +} + +if ($Production -and $Development) { + "You cannot specify both -Production and -Development" + exit 1 +} + +if ($SingleLocation -and $MultiLocation) { + "You cannot specify both -SingleLocation and -MultiLocation" + exit 1 +} + +if ($Production -and $NotIsolated) { + "The Production scenario requires network isolation to be enabled" + exit 1 +} + +if (!$SingleLocation -and !$MultiLocation -and !$NotIsolated) { + "You must specify either -SingleLocation or -MultiLocation" + exit 1 +} + +if ($Isolated -and $NoHub) { + Write-Host 'Warning:' -ForegroundColor Yellow -BackgroundColor Black + Write-Host "When deployed with isolation certain features, and access, will only be availble from within the vnet. You must attach a hub to activate these features." +} + + +# End of parameter checking + +# Start of script + +Write-Host "Relecloud Application Setup" -ForegroundColor Yellow -BackgroundColor Black + +$defaultEmailAddress = (Get-AzContext).Account.Id +if (!$NoPrompt) { + $emailAddr = Read-Host -Prompt "`nWhat is your email address? [default: $defaultEmailAddress]" + if ($emailAddr -eq "") { + $emailAddr = $defaultEmailAddress + } +} + +$defaultName = (Get-AzAdUser -UserPrincipalName $emailAddr).DisplayName +if (!$NoPrompt) { + $ownerName = Read-Host -Prompt "`nWhat is your name? [default: $defaultName]" + if ($ownerName -eq "") { + $ownerName = $defaultName + } + if ($ownerName -eq "") { + $ownerName = $emailAddr + } +} + +$currentDate = Get-Date -Format "yyyyMMddHHmm" +$defaultName = "fe-$currentDate" +$environmentName = $defaultName +$truefalse = @("true", "false") +if ($Name -ne "") { + $environmentName = $Name +} elseif (!$NoPrompt) { + $environmentName = Read-Host -Prompt "`nWhat should the environment name be? [default: $defaultName]" + if ($environmentName -eq "") { + $environmentName = $defaultName + } +} + +$environmentType = "dev" +if ($Development) { + $environmentType = "dev" +} elseif ($Production) { + $environmentType = "prod" +} elseif (!$NoPrompt) { + Write-Host "`nWhat environment stage are you deploying?" + $items = @( "Development", "Production" ) + $environmentType = ShowMenu -keys @( "dev", "prod") -items $items -defaultValue $environmentType +} + +$networkIsolation = $environmentType -eq "prod" +if ($Isolated) { + $networkIsolation = $true +} elseif ($NotIsolated) { + $networkIsolation = $false +} elseif (!$NoPrompt) { + Write-Host "`nDo you want the environment to be network isolated (in a VNET)?" + $items = @( "Yes - use network isolation", "No - do not use network isolation" ) + $isIsolated = ShowMenu -keys $truefalse -items $items -defaultValue $(if ($networkIsolation -eq $true) { "true" } else { "false" }) + $networkIsolation = $isIsolated -eq "true" +} + +$deployHubNetwork = $networkIsolation -eq $true -and $environmentType -eq "dev" +if ($networkIsolation) { + if ($Hub) { + $deployHubNetwork = $true + } elseif ($NoHub) { + $deployHubNetwork = $false + } elseif (!$NoPrompt) { + Write-Host "`nDo you want to deploy a hub network with an Azure Firewall, Bastion, and Jump box?" + $items = @( "Yes - deploy a hub network", "No - do not deploy a hub network" ) + $useHub = ShowMenu -keys $truefalse -items $items -defaultValue $(if ($deployHubNetwork -eq $true) { "true" } else { "false" }) + $deployHubNetwork = $useHub -eq "true" + } +} + +$casp = $environmentType -eq "dev" +if ($CommonAppServicePlan) { + $casp = $true +} elseif ($NoCommonAppServicePlan) { + $casp = $false +} elseif (!$NoPrompt) { + Write-Host "`nDo you want to use a common App Service Plan for all App Services?" + $items = @( "Use a common App Service Plan for all App Services", "Use a dedicated App Service Plan for each App Service" ) + $sCasp = ShowMenu -keys $truefalse -items $items -defaultValue $(if ($casp -eq $true) { "true" } else { "false" }) + $casp = $sCasp -eq "true" +} + +$defaultAzureLocation = "westus3" +# if azure location was set then use it, otherwise use the default +$azureLocationCmd = $AzureLocation + +if ($null -eq $AzureLocation -or $AzureLocation -eq "") { + $azureLocationCmd = $defaultAzureLocation +} + +$defaultSecondAzureLocation = "eastus" +if ($null -eq $SecondAzureLocation -or $SecondAzureLocation -eq "") { + $secondAzureLocationCmd = $defaultSecondAzureLocation +} + +$subscriptionName = (Get-AzContext).Subscription.Name + +Write-Host "`nProposed settings:" -ForegroundColor Yellow +Write-Host "`tSubscription name: $subscriptionName" +Write-Host "`tOwner name: $ownerName" +Write-Host "`tEmail address: $emailAddr" +Write-Host "`tEnvironment name: $environmentName" +Write-Host "`tEnvironment type: $environmentType" +Write-Host "`tNetwork isolation: $networkIsolation" +Write-Host "`tDeploy hub network: $deployHubNetwork" +Write-Host "`tAzure location: $azureLocationCmd" +Write-Host "`tDeploy second location: $MultiLocation" + +if ($MultiLocation) { + Write-Host "`tSecond Azure location: $secondAzureLocationCmd" +} +Write-Host "`tUse common App Service Plan: $casp" + +if (!$NoPrompt) { + Write-Host "`nDo you want to proceed with the deployment?" + $items = @("Continue to deployment.", "Cancel deployment.") + $q = ShowMenu -keys $truefalse -items $items -defaultValue "false" + if ($q -eq "false") { + exit 0 + } +} + +# Check if any object has the "Name" property equal to "$environmentName" +$jsonEnvironmentOutput = (azd env list -o json) +$envList = $jsonEnvironmentOutput | ConvertFrom-Json +$environmentFound = $false + +foreach ($env in $envList) { + if ($env.Name -eq $environmentName) { + $environmentFound = $true + break + } +} + +if ($environmentFound) { + Write-Host "`nWARNING: Environment $environmentName already exists. " -ForegroundColor Yellow + # Select the existing environment + azd env select $environmentName +} else { + # Create the environment + azd env new $environmentName +} + +$azureSubscriptionId = (Get-AzContext).Subscription.Id + +azd env set AZURE_SUBSCRIPTION_ID $azureSubscriptionId +azd env set AZURE_LOCATION $azureLocationCmd +azd env set AZURE_ENV_TYPE $environmentType +azd env set NETWORK_ISOLATION $(if ($networkIsolation) { "true" } else { "false" }) +azd env set DEPLOY_HUB_NETWORK $(if ($deployHubNetwork) { "true" } else { "false" }) +azd env set COMMON_APP_SERVICE_PLAN $(if ($casp) { "true" } else { "false" }) +azd env set OWNER_EMAIL $emailAddr +azd env set OWNER_NAME "$ownerName" + +if ($MultiLocation) { + azd env set SECONDARY_AZURE_LOCATION $secondAzureLocationCmd +} + +if ($NoPrompt) { + azd provision --no-prompt +} else { + azd provision +} \ No newline at end of file diff --git a/testscripts/validate-deployment.ps1 b/testscripts/validate-deployment.ps1 new file mode 100644 index 00000000..f86ed17e --- /dev/null +++ b/testscripts/validate-deployment.ps1 @@ -0,0 +1,94 @@ +#Requires -Version 7.0 + +<# +.SYNOPSIS + Examines the web app that was deployed to identify any known issues and provide recommendations. + + +.DESCRIPTION + Use this command to examine your deployed settings and automatically find recommendations + that can help you troubleshoot issues that you may encounter. + + This script was created after identifying intermittent Azure deployment issues. Many + of which can be resolved by re-running 'azd provision' command. + + NOTE: This functionality assumes that the web app, app configuration service, and app + service have already been successfully deployed. + +.PARAMETER ResourceGroupName + A required parameter for the name of resource group that contains the environment that was + created by the azd command. +#> + +Param( + [Alias("g")] + [Parameter(Mandatory = $true, HelpMessage = "Name of the resource group that was created by azd")] + [String]$ResourceGroupName +) + +if ($ResourceGroupName.Length -eq 0) { + Write-Error 'FATAL ERROR: Missing required parameter --resource-group' + exit 6 +} + +if ($ResourceGroupName -eq '-rg') { + Write-Error 'FATAL ERROR: Required parameter --resource-group was not initialized' + exit 7 +} + +### check if group exists ### + +$groupExists=$(az group exists -n $ResourceGroupName) + +if ($groupExists -eq 'false') { + Write-Error "Missing required resource group. The resource group '$ResourceGroupName' does not exist" + Write-Error "Recommended Action: run the `azd provision` command again to overlay the missing settings" + exit 32 +} else { + Write-Debug "Validated that the resource group does exist" +} + +### end check group exists ### + + +### validate web app settings ### + +# checking for known issue 87 +# https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/87 + +foreach ($appTag in @("web-callcenter-frontend", "web-callcenter-service")) { + + $appName=$(az resource list -g "$ResourceGroupName" --query "[? tags.\`"azd-service-name\`" == '$appTag' ].name" -o tsv) + + if ($appName.Length -eq 0) { + Write-Error "Cannot find the app with tag: $appTag" + Write-Error "Recommended Action: run the 'azd provision' command again to overlay the missing settings" + exit 32 + } else { + Write-Debug "Found app with tag: $appTag, appName: $appName" + } + + # Determine which appConfig key we are looking for depending on api versus web flavor of our application + if ($appTag -like "*api") { + $appSettingConfig="Api:AppConfig:Uri" + } else { + $appSettingConfig="App:AppConfig:Uri" + } + + $AppSvcUri=$(az webapp config appsettings list -n $appName -g $ResourceGroupName --query "[?name=='$appSettingConfig'].value" -o tsv) + + if ($AppSvcUri.Length -eq 0) { + Write-Error "Missing required Azure App Service configuration setting $appSettingConfig in app: $appName" + Write-Error "Recommended Action: run the 'azd provision' command again to overlay the missing settings" + exit 35 + } else { + Write-Debug "Validated that the App Service was configured with setting $appSettingsConfig equal to '$AppSvcUri'" + } +} + + +# end of check for issue 87 + +Write-Host "All settings validated successfully..." +Write-Host "If this script was unable to diagnose your problem then please create a GitHub issue" +exit 0 \ No newline at end of file diff --git a/infra/devOpsScripts/validateDeployment.sh b/testscripts/validate-deployment.sh old mode 100644 new mode 100755 similarity index 50% rename from infra/devOpsScripts/validateDeployment.sh rename to testscripts/validate-deployment.sh index 18fe28fd..0ad4cc28 --- a/infra/devOpsScripts/validateDeployment.sh +++ b/testscripts/validate-deployment.sh @@ -1,10 +1,8 @@ #!/bin/bash -# This script is used by our QA process to ensure the quality of this sample it measures -# characteristics of the deployment and will be modified as needed to explore intermittent issues - -# This engineering code may be repurposed for your scenario as desired -# but is not covered by the guidance in this content. +# This script is used by the DevOps flow to validate settings of resources +# that were deployed by the azd command. This script is not intended to be +# run manually by a developer. POSITIONAL_ARGS=() @@ -70,45 +68,38 @@ fi # checking for known issue 87 # https://github.com/Azure/reliable-web-app-pattern-dotnet/issues/87 -frontEndWebAppName=$(az resource list -g "$resourceGroupName" --query "[?tags.\"azd-service-name\"=='web'].name" -o tsv) -if [[ ${#frontEndWebAppName} -eq 0 ]]; then - echo "Cannot find the front-end web app" 1>&2 - echo "Recommended Action: run the 'azd provision' command again to overlay the missing settings" 1>&2 - exit 32 -elif [[ $debug ]]; then - echo "Found front-end web app named '$frontEndWebAppName' " -fi +for appTag in web-callcenter-service web-callcenter-frontend; do -frontEndAppSvcUri=$(az webapp config appsettings list -n $frontEndWebAppName -g $resourceGroupName --query "[?name=='App:AppConfig:Uri'].value" -o tsv) + appName=$(az resource list -g "$resourceGroupName" --query "[?tags.\"azd-service-name\"=='${appTag}'].name" -o tsv) -if [[ ${#frontEndAppSvcUri} -eq 0 ]]; then - echo "Missing required Azure App Service configuration setting front-end web app: App:AppConfig:Uri" 1>&2 - echo "Recommended Action: run the 'azd provision' command again to overlay the missing settings" 1>&2 - exit 33 -elif [[ $debug ]]; then - echo "Validated that the App Service was configured with setting 'App:AppConfig:Uri' equal to '$frontEndAppSvcUri'" -fi + if [[ ${#appName} -eq 0 ]]; then + echo "Cannot find the app with tag: $appTag" 1>&2 + echo "Recommended Action: run the 'azd provision' command again to overlay the missing settings" 1>&2 + exit 32 + elif [[ $debug ]]; then + echo "Found app with tag: '$appTag', appName: '$appName' " + fi -apiWebAppName=$(az resource list -g "$resourceGroupName" --query "[?tags.\"azd-service-name\"=='api'].name" -o tsv) + # Determine which appConfig key we are looking for depending on api versus web flavor of our application + if [[ $appTag == *"api"* ]]; + then + appSettingConfig="Api:AppConfig:Uri" + else + appSettingConfig="App:AppConfig:Uri" + fi -if [[ ${#apiWebAppName} -eq 0 ]]; then - echo "Cannot find the API web app" 1>&2 - echo "Recommended Action: run the 'azd provision' command again to overlay the missing settings" 1>&2 - exit 34 -elif [[ $debug ]]; then - echo "Found API web app named '$apiWebAppName'" -fi + appUri=$(az webapp config appsettings list -n $appName -g $resourceGroupName --query "[?name=='$appSettingConfig'].value" -o tsv) -apiAppSvcUri=$(az webapp config appsettings list -n $apiWebAppName -g $resourceGroupName --query "[?name=='Api:AppConfig:Uri'].value" -o tsv) + if [[ ${#appUri} -eq 0 ]]; then + echo "Missing required Azure App Service configuration setting $appSettingConfig in app: $appName" 1>&2 + echo "Recommended Action: run the 'azd provision' command again to overlay the missing settings" 1>&2 + exit 33 + elif [[ $debug ]]; then + echo "Validated that the App Service was configured with setting '$appSettingConfig' equal to '$appUri'" + fi -if [[ ${#apiAppSvcUri} -eq 0 ]]; then - echo "Missing required Azure App Service configuration setting for api web app: Api:AppConfig:Uri" 1>&2 - echo "Recommended Action: run the 'azd provision' command again to overlay the missing settings" - exit 35 -elif [[ $debug ]]; then - echo "Validated that the App Service was configured with setting 'Api:AppConfig:Uri' equal to '$apiAppSvcUri'" -fi +done # end of check for issue 87 diff --git a/troubleshooting.md b/troubleshooting.md new file mode 100644 index 00000000..e9bcf82c --- /dev/null +++ b/troubleshooting.md @@ -0,0 +1,84 @@ +# Troubleshooting +This document helps with troubleshooting RWA deployment challenges. + +## Error: no project exists; to create a new project, run 'azd init' +This error is most often reported when users try to run `azd` commands before running the `cd` command to switch to the directory where the repo was cloned. + +### Workaround + +Verify that you are in the directory where the `azure.yaml` file is located. You may need to `cd` into the directory to proceed. + +## BadRequest: Azure subscription is not registered with CDN Provider. +This error message surfaces from the `azd provision` command when trying to follow the guide to provision an Azure Front Door. + +Most [Azure resource providers](https://learn.microsoft.com/en-us/azure/azure-resource-manager/troubleshooting/error-register-resource-provider) are registered automatically by the Microsoft Azure portal or the command-line interface, but not all. If you haven't used a particular resource provider before, you might need to register that provider. + +**Full error message** +``` +ERROR: deployment failed: error deploying infrastructure: failed deploying: deploying to subscription: + +Deployment Error Details: +BadRequest: Azure subscription is not registered with CDN Provider. +``` + +### Workaround + +1. Register the provider + ```ps1 + az provider register --namespace Microsoft.Cdn + ``` + +1. Wait for the registration process to complete (waited about 3-min) + +1. Run the following to confirm the provider is registered + ```ps1 + az provider list --query "[? namespace=='Microsoft.Cdn'].id" + ``` + + You should see a notice that the operation succeeded: + ``` + [ + "/subscriptions/{subscriptionId}/providers/Microsoft.Cdn" + ] + ``` + +## Warning: Remote host identification has changed +This warning message is displayed when the SSH key fingerprint for the remote host has changed since the last time you connected. This can happen if you have re-provisioned the environment which will recreate the VMs and thus their fingerprints. + +**Full warning message** +```sh +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! +``` + +### Workaround + +1. Remove the previous fingerprint which is stored in a file called `known_hosts` in your user's `.ssh` directory. Run the following command to remove the old fingerprint: + ```sh + ssh-keygen -R [127.0.0.1]:50022 + ``` + +## The deployment already exists in location +This error most often happens when trying a new region with the same for a deployment with the same name used for the AZD environment name (e.g. by default it would be `dotnetwebapp`). + +When the `azd provision` command runs it creates a deployment resource in your subscription. You must delete this deployment before you can change the Azure region. + +### Workaround + +> The following steps assume you are logged in with `az` cli. + +1. Find the name of the Deployment you want to delete + + ```sh + az deployment sub list --query "[].name" -o tsv + ``` + +1. Delete the deployment by name + + ```sh + az deployment sub delete -n + ``` + +1. You should now be able to run the `azd provision` command and resume your deployment. \ No newline at end of file

Xc%j16gDLXk3nZQ`Z2)i;LRTxenhZ7R3&OYZy=?HVfu5prAs%HnPPNe5rfA}S^xH~lk` z^>qUmJbK5T;(KepRa!=P8usFuYz6T$n@CTrWpO}xt=h6Jj4JyYUU-U+K&>`MiG2H2 zKHhq)Mm{d#iy1+p4-LOmiOskeo{jXdemFRP(IuY#y;GAs1l-Vs`E|6cM^=UF%DMhcONMqknXsl9{6dmz8Ght=&KZeVbn;Tz{wA)RZV^5S(~ptmN;cPNOQ z<6E)xsqJt6WaZ9b9P+m7Jhx;VXtYcU?3JC&5D8E~>o4(a%w87*k;H^{aEvsCOJN50 zG;=S|(jBidLOtJ5VAM;|FIdDB8b&tgpH{3>r*34Va>!ENpCNNZec|}+FR`lJ!s+-S zU#aOkD1ZJ^re@m4{Le6(4@YsW_pU>WPk-2cDRLv6<+(=J+Q>C8R)OkXE6Ig2@k35O zlS&j1TCWfjWGF)FBuuRU*?vK|ogm2dNw|R`qoq+Vi-Rg&S8o+Tpw=m_WrNghF$s?* zV|g7dfL_g3rd85Po+ol@I0k~}th?{Vz-HDA~Jo`mudPU zwYre7`&GEMKZs(0wmK>3aj{d*tvU5rNrEZ{Ox1TiZ95hvGuIbgmlDwKE@QzI8w6qZ zhm-NbZuiv5rgBY61anmm?JSlQs1#{SW+M4i9Z^9w1_lO(5pXK)O_b-IzcbrD_*7#A z@+_2cJXmLe_j+_J5P83X&j(Wddfb&CNtKx&YTZuPxR(5K@_-*G7uuQUAN+`zMrkPh%xr0*Yt-U^+ybNvs-^ayDqa%Y@KM*xww6UE0qT$`i?S6wNM@N=o63_lSz-C=0>i`8U5qsc0 z>jN3G9WlnIm|W*j4GYw1?jkv3tR zkQJF&YqtU?MLZ#~rg@(qDS@-ibozYhY_%kin>k(B-0yBN&M`afpyTuGNCW@O9AqLk z8LXds48Y%AKNl63<#z?XEwl~J9D+`bOcM{G!coI23!=0BR(z$+v(#GiNp(6~qU}9eD zZxB|&p<_XY820M=W+D3FAnv5FTJAN%Tp?+5$&lQ1Z$eCACow^F-vO~p?WV}jF#OBq z6MwRv50HnfrSvj{pWp#aLxaXH2kHpnT0h;Z=j}(dqwƝwyRH+{X@MGas$CyY;w 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 N002ovPDHLkV1g5nX-@zE literal 0 HcmV?d00001 diff --git a/assets/images/Guide/Simulating_RedisConsoleListKeys.png b/assets/images/Guide/Simulating_RedisConsoleListKeys.png new file mode 100644 index 0000000000000000000000000000000000000000..62630f717e17f892f60d85911a4da0599c0408ea GIT binary patch literal 73975 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