0% found this document useful (0 votes)
39 views17 pages

Site Core Ecommerce Deployment PS

SiteCoreEcommerceDeploymentPS

Uploaded by

Ankur Madaan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views17 pages

Site Core Ecommerce Deployment PS

SiteCoreEcommerceDeploymentPS

Uploaded by

Ankur Madaan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

#Requires -Version 3

param(

# The root folder with WDP files.

[string]$XCInstallRoot = "C:\Users\Administrator\SiteCore\Sitecore.Commerce.WDP.2020.01-
5.0.145",

# The root folder of SIF.Sitecore.Commerce package.

[string]$XCSIFInstallRoot = $PWD,

# Specifies whether or not to bypass the installation of the default SXA Storefront. By default, the
Sitecore XC installation script also deploys the SXA Storefront.

[bool]$SkipInstallDefaultStorefront = $false,

# Specifies whether or not to bypass the installation of the SXA Storefront packages.

# If set to $true, $TasksToSkip parameter will be populated with the list of tasks to skip in order to
bypass SXA Storefront packages installation.

[bool]$SkipDeployStorefrontPackages = $false,

# Path to the Master_SingleServer.json file provided in the SIF.Sitecore.Commerce package.

[string]$Path = "$XCSIFInstallRoot\Configuration\Commerce\Master_SingleServer.json",

# Path to the Commerce Solr schemas provided as part of the SIF.Sitecore.Commerce package.

[string]$SolrSchemas = "$XCSIFInstallRoot\SolrSchemas",

# Path to the SiteUtilityPages folder provided as part of the SIF.Sitecore.Commerce package.

[string]$SiteUtilitiesSrc = "$XCSIFInstallRoot\SiteUtilityPages",

# Path to the location where you downloaded the Microsoft.Web.XmlTransform.dll file.

[string]$MergeToolFullPath =
"$XCInstallRoot\MSBuild.Microsoft.VisualStudio.Web.targets*\tools\VSToolsPath\Web\Microsoft.Web.
XmlTransform.dll",

# Path to the Adventure Works Images.OnPrem SCWDP file

[string]$AdventureWorksImagesWdpFullPath = "$XCInstallRoot\Adventure Works


Images.OnPrem.scwdp.zip",

# Path to the Sitecore Commerce Connect Core SCWDP file.

[string]$CommerceConnectWdpFullPath = "$XCInstallRoot\Sitecore Commerce Connect


Core*.scwdp.zip",
# Path to the Sitecore Commerce Engine Connect OnPrem SCWDP file.

[string]$CEConnectWdpFullPath = "$XCInstallRoot\Sitecore Commerce Engine Connect*.scwdp.zip",

# Path to the Sitecore Commerce Experience Accelerator SCWDP file.

[string]$SXACommerceWdpFullPath = "$XCInstallRoot\Sitecore Commerce Experience


Accelerator*.scwdp.zip",

# Path to the Sitecore Commerce Experience Accelerator Habitat Catalog SCWDP file.

[string]$SXAStorefrontCatalogWdpFullPath = "$XCInstallRoot\Sitecore Commerce Experience


Accelerator Habitat*.scwdp.zip",

# Path to the Sitecore Commerce Experience Accelerator Storefront SCWDP file.

[string]$SXAStorefrontWdpFullPath = "$XCInstallRoot\Sitecore Commerce Experience Accelerator


Storefront*.scwdp.zip",

# Path to the Sitecore Commerce Experience Accelerator Storefront Themes SCWDP file.

[string]$SXAStorefrontThemeWdpFullPath = "$XCInstallRoot\Sitecore Commerce Experience


Accelerator Storefront Themes*.scwdp.zip",

# Path to the Sitecore Commerce Experience Analytics Core SCWDP file.

[string]$CommercexAnalyticsWdpFullPath = "$XCInstallRoot\Sitecore Commerce ExperienceAnalytics


Core*.scwdp.zip",

# Path to the Sitecore Commerce Experience Profile Core SCWDP file.

[string]$CommercexProfilesWdpFullPath = "$XCInstallRoot\Sitecore Commerce ExperienceProfile


Core*.scwdp.zip",

# Path to the Sitecore Commerce Marketing Automation Core SCWDP file.

[string]$CommerceMAWdpFullPath = "$XCInstallRoot\Sitecore Commerce Marketing Automation


Core*.scwdp.zip",

# Path to the Sitecore Commerce Marketing Automation for AutomationEngine zip file.

[string]$CommerceMAForAutomationEngineZIPFullPath = "$XCInstallRoot\Sitecore Commerce


Marketing Automation for AutomationEngine*.zip",

# Path to the Sitecore Experience Accelerator zip file.

[string]$SXAModuleZIPFullPath = "$XCInstallRoot\Sitecore Experience Accelerator*.zip",

# Path to the Sitecore PowerShell Extensions zip file.

[string]$PowerShellExtensionsModuleZIPFullPath =
"$XCInstallRoot\Sitecore.PowerShell.Extensions*.zip",

# Path to the Sitecore BizFx Server SCWDP file.


[string]$BizFxPackage = "$XCInstallRoot\Sitecore.BizFx.OnPrem*scwdp.zip",

# Path to the Commerce Engine Service SCWDP file.

[string]$CommerceEngineWdpFullPath =
"$XCInstallRoot\Sitecore.Commerce.Engine.OnPrem.Solr.*scwdp.zip",

# Path to the Sitecore.Commerce.Habitat.Images.OnPrem SCWDP file.

[string]$HabitatImagesWdpFullPath =
"$XCInstallRoot\Sitecore.Commerce.Habitat.Images.OnPrem.scwdp.zip",

# The prefix that will be used on SOLR, Website and Database instances. The default value matches
ankur modified the Sitecore XP default.

[string]$SiteNamePrefix = "sitecor93",

# The name of the Sitecore site instance.

[string]$SiteName = "sitecor93sc.dev.local",

# Identity Server site name.

[string]$IdentityServerSiteName = "sitecor93identityserver.dev.local",

# The url of the Sitecore Identity server.

[string]$SitecoreIdentityServerUrl = "https://$IdentityServerSiteName",

# The Commerce Engine Connect Client Id for the Sitecore Identity Server

[string]$CommerceEngineConnectClientId = "CommerceEngineConnect",

# The Commerce Engine Connect Client Secret for the Sitecore Identity Server,ankur--> modified
secret

[string]$CommerceEngineConnectClientSecret =
"Ez0s7j5rL3iiFDnU0XK4WX+7R+sxRDc5aV4hxzdulXM=",

# The host header name for the Sitecore storefront site.

[string]$SiteHostHeaderName = "sitecor93sc.dev.local",

# The path of the Sitecore XP site.

[string]$InstallDir = "$($Env:SYSTEMDRIVE)\inetpub\wwwroot\$SiteName",

# The path of the Sitecore XConnect site.

[string]$XConnectInstallDir = "$($Env:SYSTEMDRIVE)\inetpub\wwwroot\sitecor93xconnect.dev.local",
# The path to the inetpub folder where Commerce is installed.

[string]$CommerceInstallRoot = "$($Env:SYSTEMDRIVE)\inetpub\wwwroot\",

# The prefix for Sitecore core and master databases.

[string]$SqlDbPrefix = $SiteNamePrefix,

# The location of the database server where Sitecore XP databases are hosted. In case of named SQL
instance, use "SQLServerName\\SQLInstanceName"

[string]$SitecoreDbServer = $($Env:COMPUTERNAME),

# The name of the Sitecore core database.

[string]$SitecoreCoreDbName = "$($SqlDbPrefix)_Core",

# A SQL user with sysadmin privileges.

[string]$SqlUser = "sa",

# The password for $SQLAdminUser.

[string]$SqlPass = "admin@123",

# The name of the Sitecore domain.

[string]$SitecoreDomain = "sitecore",

# The name of the Sitecore user account.

[string]$SitecoreUsername = "admin",

# The password for the $SitecoreUsername.

[string]$SitecoreUserPassword = "admin@123",

# The prefix for the Search index. Using the SiteName value for the prefix is recommended.mdofied by
ankur

[string]$SearchIndexPrefix = "xc93",

# The URL of the Solr Server.

[string]$SolrUrl = "https://localhost:8983/solr",

# The folder that Solr has been installed to.modified by ankur

[string]$SolrRoot = "$($Env:SYSTEMDRIVE)\Solr8\Solr8solr-8.1.1",
# The name of the Solr Service. mdoified by ankur

[string]$SolrService = "Solr8solr-8.1.1",

# The prefix for the Storefront index. The default value is the SiteNamePrefix.

[string]$StorefrontIndexPrefix = $SiteNamePrefix,

# The URL of the Redis service.

[string]$RedisConfiguration = "localhost",

# The name of the Redis instance.

[string]$RedisInstanceName = "Redis",

# The path to the Redis installation.

[string]$RedisInstallationPath = "$($Env:SYSTEMDRIVE)\Program Files\Redis",

# The location of the database server where Commerce databases should be deployed. In case of
named SQL instance, use "SQLServerName\\SQLInstanceName"

[string]$CommerceServicesDbServer = $($Env:COMPUTERNAME),

# The name of the shared database for the Commerce Services.

[string]$CommerceServicesDbName = "SitecoreCommerce9_SharedEnvironments",

# The name of the global database for the Commerce Services.

[string]$CommerceServicesGlobalDbName = "SitecoreCommerce9_Global",

# The port for the Commerce Ops Service.

[string]$CommerceOpsServicesPort = "5015",

# The port for the Commerce Shops Service

[string]$CommerceShopsServicesPort = "5005",

# The port for the Commerce Authoring Service.

[string]$CommerceAuthoringServicesPort = "5000",

# The port for the Commerce Minions Service.

[string]$CommerceMinionsServicesPort = "5010",

# The postfix appended to Commerce services folders names and sitenames.

# The postfix allows you to host more than one Commerce installment on one server.
[string]$CommerceServicesPostfix = "Sc9",

# The postfix used as the root domain name (two-levels) to append as the hostname for Commerce
services.

# By default, all Commerce services are configured as sub-domains of the domain identified by the
postfix.

# Postfix validation enforces the following rules:

# 1. The first level (TopDomainName) must be 2-7 characters in length and can contain alphabetical
characters (a-z, A-Z) only. Numeric and special characters are not valid.

# 2. The second level (DomainName) can contain alpha-numeric characters (a-z, A-Z,and 0-9) and can
include one hyphen (-) character.

# Special characters (wildcard (*)), for example, are not valid.

[string]$CommerceServicesHostPostfix = "sc93.local",

# The name of the Sitecore XC Business Tools server.

[string]$BizFxSiteName = "SitecoreBizFx93",

# The port of the Sitecore XC Business Tools server.

[string]$BizFxPort = "4200",

# The prefix used in the EnvironmentName setting in the config.json file for each Commerce Engine
role.

[string]$EnvironmentsPrefix = "Habitat",

# The list of Commerce environment names. By default, the script deploys the AdventureWorks and
the Habitat environments.

[array]$Environments = @("AdventureWorksAuthoring", "HabitatAuthoring"),

# Commerce environments GUIDs used to clean existing Redis cache during deployment. Default
parameter values correspond to the default Commerce environment GUIDS.

[array]$EnvironmentsGuids = @("78a1ea611f3742a7ac899a3f46d60ca5",
"40e77b7b4be94186b53b5bfd89a6a83b"),

# The environments running the minions service. (This is required, for example, for running indexing
minions).

[array]$MinionEnvironments = @("AdventureWorksMinions", "HabitatMinions"),


# The domain of the local account used for the various application pools created as part of the
deployment.

[string]$UserDomain = "CORP",

# The user name for a local account to be set up for the various application pools that are created as
part of the deployment.

[string]$UserName = "CSFndRuntimeUser",

# The password for the $UserName.

[string]$UserPassword = "admin@123",

# The Braintree Merchant Id.

[string]$BraintreeMerchantId = "",

# The Braintree Public Key.

[string]$BraintreePublicKey = "",

# The Braintree Private Key.

[string]$BraintreePrivateKey = "",

# The Braintree Environment.

[string]$BraintreeEnvironment = "",

# List of comma-separated task names to skip during Sitecore XC deployment.

[string]$TasksToSkip = ""

Function Resolve-ItemPath {

param (

[Parameter(Mandatory = $true)]

[ValidateNotNullorEmpty()]

[string] $Path

process {
if ([string]::IsNullOrWhiteSpace($Path)) {

throw "Parameter could not be validated because it contains only whitespace. Please check script
parameters."

$itemPath = Resolve-Path -Path $Path -ErrorAction SilentlyContinue | Select-Object -First 1

if ([string]::IsNullOrEmpty($itemPath) -or (-not (Test-Path $itemPath))) {

throw "Path [$Path] could not be resolved. Please check script parameters."

Write-Host "Found [$itemPath]."

return $itemPath

if (($SkipDeployStorefrontPackages -eq $true) -and ($SkipInstallDefaultStorefront -eq $false)) {

throw "You cannot install the SXA Storefront without deploying necessary packages. If you want to
install the SXA Storefront, set [SkipDeployStorefrontPackages] parameter to [false]."

[string[]] $Skip = @()

if (-not ([string]::IsNullOrWhiteSpace($TasksToSkip))) {

$TasksToSkip.Split(',') | ForEach-Object { $Skip += $_.Trim() }

if ($SkipDeployStorefrontPackages) {

"Module-PowershellExtensions_CheckPaths",

"Module-PowershellExtensions_InstallModule",

"Module-SXAFramework_CheckPaths",

"Module-SXAFramework_InstallModule",

"Publish-Extensions_PublishToWeb",
"SXAStorefrontWdpsInstall_InstallCXAWDP",

"SXAStorefrontWdpsInstall_InstallSXAStorefrontWDP",

"SXAStorefrontWdpsInstall_InstallStorefrontThemesWDP",

"SXAStorefrontWdpsInstall_InstallStorefrontCatalogWDP",

"SXAStorefrontPostInstallationSteps_MergeWebConfig" | ForEach-Object { $Skip += $_.Trim() }

Push-Location $PSScriptRoot

$modulesPath = ( Join-Path -Path $PWD -ChildPath "Modules" )

if ($env:PSModulePath -notlike "*$modulesPath*") {

[Environment]::SetEnvironmentVariable("PSModulePath", "$env:PSModulePath;$modulesPath")

$deployCommerceParams = @{

Path = Resolve-ItemPath -Path $Path

SolrSchemas = Resolve-ItemPath -Path $SolrSchemas

SiteUtilitiesSrc = Resolve-ItemPath -Path $SiteUtilitiesSrc

MergeToolFullPath = Resolve-ItemPath -Path $MergeToolFullPath

AdventureWorksImagesWdpFullPath = Resolve-ItemPath -Path


$AdventureWorksImagesWdpFullPath

CommerceConnectWdpFullPath = Resolve-ItemPath -Path $CommerceConnectWdpFullPath

CEConnectWdpFullPath = Resolve-ItemPath -Path $CEConnectWdpFullPath

SXACommerceWdpFullPath = Resolve-ItemPath -Path $SXACommerceWdpFullPath

SXAStorefrontCatalogWdpFullPath = Resolve-ItemPath -Path $SXAStorefrontCatalogWdpFullPath

SXAStorefrontWdpFullPath = Resolve-ItemPath -Path $SXAStorefrontWdpFullPath

SXAStorefrontThemeWdpFullPath = Resolve-ItemPath -Path $SXAStorefrontThemeWdpFullPath

CommercexAnalyticsWdpFullPath = Resolve-ItemPath -Path $CommercexAnalyticsWdpFullPath

CommercexProfilesWdpFullPath = Resolve-ItemPath -Path $CommercexProfilesWdpFullPath


CommerceMAWdpFullPath = Resolve-ItemPath -Path $CommerceMAWdpFullPath

CommerceMAForAutomationEngineZIPFullPath = Resolve-ItemPath -Path


$CommerceMAForAutomationEngineZIPFullPath

SXAModuleZIPFullPath = Resolve-ItemPath -Path $SXAModuleZIPFullPath

PowerShellExtensionsModuleZIPFullPath = Resolve-ItemPath -Path


$PowerShellExtensionsModuleZIPFullPath

BizFxPackage = Resolve-ItemPath -Path $BizFxPackage

CommerceEngineWdpFullPath = Resolve-ItemPath -Path $CommerceEngineWdpFullPath

HabitatImagesWdpFullPath = Resolve-ItemPath -Path $HabitatImagesWdpFullPath

SiteName = $SiteName

SiteHostHeaderName = $SiteHostHeaderName

InstallDir = Resolve-ItemPath -Path $InstallDir

XConnectInstallDir = Resolve-ItemPath -Path $XConnectInstallDir

CommerceInstallRoot = Resolve-ItemPath -Path $CommerceInstallRoot

CommerceServicesDbServer = $CommerceServicesDbServer

CommerceServicesDbName = $CommerceServicesDbName

CommerceServicesGlobalDbName = $CommerceServicesGlobalDbName

SitecoreDbServer = $SitecoreDbServer

SitecoreCoreDbName = $SitecoreCoreDbName

SqlDbPrefix = $SqlDbPrefix

SqlAdminUser = $SqlUser

SqlAdminPassword = $SqlPass

SolrUrl = $SolrUrl

SolrRoot = Resolve-ItemPath -Path $SolrRoot

SolrService = $SolrService

SearchIndexPrefix = $SearchIndexPrefix

StorefrontIndexPrefix = $StorefrontIndexPrefix

CommerceServicesPostfix = $CommerceServicesPostfix

CommerceServicesHostPostfix = $CommerceServicesHostPostfix
EnvironmentsPrefix = $EnvironmentsPrefix

Environments = $Environments

EnvironmentsGuids = $EnvironmentsGuids

MinionEnvironments = $MinionEnvironments

CommerceOpsServicesPort = $CommerceOpsServicesPort

CommerceShopsServicesPort = $CommerceShopsServicesPort

CommerceAuthoringServicesPort = $CommerceAuthoringServicesPort

CommerceMinionsServicesPort = $CommerceMinionsServicesPort

RedisConfiguration = $RedisConfiguration

RedisInstanceName = $RedisInstanceName

RedisInstallationPath = Resolve-ItemPath -Path $RedisInstallationPath

UserDomain = $UserDomain

UserName = $UserName

UserPassword = $UserPassword

BraintreeMerchantId = $BraintreeMerchantId

BraintreePublicKey = $BraintreePublicKey

BraintreePrivateKey = $BraintreePrivateKey

BraintreeEnvironment = $BraintreeEnvironment

SitecoreDomain = $SitecoreDomain

SitecoreUsername = $SitecoreUsername

SitecoreUserPassword = $SitecoreUserPassword

BizFxSiteName = $BizFxSiteName

BizFxPort = $BizFxPort

SitecoreIdentityServerApplicationName = $IdentityServerSiteName

SitecoreIdentityServerUrl = $SitecoreIdentityServerUrl

SkipInstallDefaultStorefront = $SkipInstallDefaultStorefront

CommerceEngineConnectClientId = $CommerceEngineConnectClientId

CommerceEngineConnectClientSecret = $CommerceEngineConnectClientSecret

}
if ($Skip.Count -eq 0) {

Install-SitecoreConfiguration @deployCommerceParams -Verbose *>&1 | Tee-Object


"$XCSIFInstallRoot\XC-Install.log"

# Uncomment the below line and comment out the above if you want to remove the Sitecore XC

#Uninstall-SitecoreConfiguration @deployCommerceParams -Verbose *>&1 | Tee-Object


"$XCSIFInstallRoot\XC-Uninstall.log"

else {

Install-SitecoreConfiguration @deployCommerceParams -Skip $Skip -Verbose *>&1 | Tee-Object


"$XCSIFInstallRoot\XC-Install.log"

# Uncomment the below line and comment out the above if you want to remove the Sitecore XC

#Uninstall-SitecoreConfiguration @deployCommerceParams -Verbose *>&1 | Tee-Object


"$XCSIFInstallRoot\XC-Uninstall.log"

# SIG # Begin signature block

# MIIXwQYJKoZIhvcNAQcCoIIXsjCCF64CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB

# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR

# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU8Dgy+6D26X5vsSDIccvLPe3P

# DSygghL8MIID7jCCA1egAwIBAgIQfpPr+3zGTlnqS5p31Ab8OzANBgkqhkiG9w0B

# AQUFADCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIG

# A1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhh

# d3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcg
# Q0EwHhcNMTIxMjIxMDAwMDAwWhcNMjAxMjMwMjM1OTU5WjBeMQswCQYDVQQGEwJV

# UzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xMDAuBgNVBAMTJ1N5bWFu

# dGVjIFRpbWUgU3RhbXBpbmcgU2VydmljZXMgQ0EgLSBHMjCCASIwDQYJKoZIhvcN

# AQEBBQADggEPADCCAQoCggEBALGss0lUS5ccEgrYJXmRIlcqb9y4JsRDc2vCvy5Q

# WvsUwnaOQwElQ7Sh4kX06Ld7w3TMIte0lAAC903tv7S3RCRrzV9FO9FEzkMScxeC

# i2m0K8uZHqxyGyZNcR+xMd37UWECU6aq9UksBXhFpS+JzueZ5/6M4lc/PcaS3Er4

# ezPkeQr78HWIQZz/xQNRmarXbJ+TaYdlKYOFwmAUxMjJOxTawIHwHw103pIiq8r3

# +3R8J+b3Sht/p8OeLa6K6qbmqicWfWH3mHERvOJQoUvlXfrlDqcsn6plINPYlujI

# fKVOSET/GeJEB5IL12iEgF1qeGRFzWBGflTBE3zFefHJwXECAwEAAaOB+jCB9zAd

# BgNVHQ4EFgQUX5r1blzMzHSa1N197z/b7EyALt0wMgYIKwYBBQUHAQEEJjAkMCIG

# CCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3dGUuY29tMBIGA1UdEwEB/wQIMAYB

# Af8CAQAwPwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NybC50aGF3dGUuY29tL1Ro

# YXd0ZVRpbWVzdGFtcGluZ0NBLmNybDATBgNVHSUEDDAKBggrBgEFBQcDCDAOBgNV

# HQ8BAf8EBAMCAQYwKAYDVR0RBCEwH6QdMBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0y

# MDQ4LTEwDQYJKoZIhvcNAQEFBQADgYEAAwmbj3nvf1kwqu9otfrjCR27T4IGXTdf

# plKfFo3qHJIJRG71betYfDDo+WmNI3MLEm9Hqa45EfgqsZuwGsOO61mWAK3ODE2y

# 0DGmCFwqevzieh1XTKhlGOl5QGIllm7HxzdqgyEIjkHq3dlXPx13SYcqFgZepjhq

# IhKjURmDfrYwggSjMIIDi6ADAgECAhAOz/Q4yP6/NW4E2GqYGxpQMA0GCSqGSIb3

# DQEBBQUAMF4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3Jh

# dGlvbjEwMC4GA1UEAxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNlcyBD

# QSAtIEcyMB4XDTEyMTAxODAwMDAwMFoXDTIwMTIyOTIzNTk1OVowYjELMAkGA1UE

# BhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMTQwMgYDVQQDEytT

# eW1hbnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIFNpZ25lciAtIEc0MIIBIjAN

# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAomMLOUS4uyOnREm7Dv+h8GEKU5Ow

# mNutLA9KxW7/hjxTVQ8VzgQ/K/2plpbZvmF5C1vJTIZ25eBDSyKV7sIrQ8Gf2Gi0

# jkBP7oU4uRHFI/JkWPAVMm9OV6GuiKQC1yoezUvh3WPVF4kyW7BemVqonShQDhfu

# ltthO0VRHc8SVguSR/yrrvZmPUescHLnkudfzRC5xINklBm9JYDh6NIipdC6Anqh

# d5NbZcPuF3S8QYYq3AhMjJKMkS2ed0QfaNaodHfbDlsyi1aLM73ZY8hJnTrFxeoz

# C9Lxoxv0i77Zs1eLO94Ep3oisiSuLsdwxb5OgyYI+wu9qU+ZCOEQKHKqzQIDAQAB
# o4IBVzCCAVMwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAO

# BgNVHQ8BAf8EBAMCB4AwcwYIKwYBBQUHAQEEZzBlMCoGCCsGAQUFBzABhh5odHRw

# Oi8vdHMtb2NzcC53cy5zeW1hbnRlYy5jb20wNwYIKwYBBQUHMAKGK2h0dHA6Ly90

# cy1haWEud3Muc3ltYW50ZWMuY29tL3Rzcy1jYS1nMi5jZXIwPAYDVR0fBDUwMzAx

# oC+gLYYraHR0cDovL3RzLWNybC53cy5zeW1hbnRlYy5jb20vdHNzLWNhLWcyLmNy

# bDAoBgNVHREEITAfpB0wGzEZMBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtMjAdBgNV

# HQ4EFgQURsZpow5KFB7VTNpSYxc/Xja8DeYwHwYDVR0jBBgwFoAUX5r1blzMzHSa

# 1N197z/b7EyALt0wDQYJKoZIhvcNAQEFBQADggEBAHg7tJEqAEzwj2IwN3ijhCcH

# bxiy3iXcoNSUA6qGTiWfmkADHN3O43nLIWgG2rYytG2/9CwmYzPkSWRtDebDZw73

# BaQ1bHyJFsbpst+y6d0gxnEPzZV03LZc3r03H0N45ni1zSgEIKOq8UvEiCmRDoDR

# EfzdXHZuT14ORUZBbg2w6jiasTraCXEQ/Bx5tIB7rGn0/Zy2DBYr8X9bCT2bW+IW

# yhOBbQAuOA2oKY8s4bL0WqkBrxWcLC9JG9siu8P+eJRRw4axgohd8D20UaF5Mysu

# e7ncIAkTcetqGVvP6KUwVyyJST+5z3/Jvz4iaGNTmr1pdKzFHTx/kuDDvBzYBHUw

# ggUrMIIEE6ADAgECAhAHplztCw0v0TJNgwJhke9VMA0GCSqGSIb3DQEBCwUAMHIx

# CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3

# dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJ

# RCBDb2RlIFNpZ25pbmcgQ0EwHhcNMTcwODIzMDAwMDAwWhcNMjAwOTMwMTIwMDAw

# WjBoMQswCQYDVQQGEwJVUzELMAkGA1UECBMCY2ExEjAQBgNVBAcTCVNhdXNhbGl0

# bzEbMBkGA1UEChMSU2l0ZWNvcmUgVVNBLCBJbmMuMRswGQYDVQQDExJTaXRlY29y

# ZSBVU0EsIEluYy4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7PZ/g

# huhrQ/p/0Cg7BRrYjw7ZMx8HNBamEm0El+sedPWYeAAFrjDSpECxYjvK8/NOS9dk

# tC35XL2TREMOJk746mZqia+g+NQDPEaDjNPG/iT0gWsOeCa9dUcIUtnBQ0hBKsuR

# bau3n7w1uIgr3zf29vc9NhCoz1m2uBNIuLBlkKguXwgPt4rzj66+18JV3xyLQJoS

# 3ZAA8k6FnZltNB+4HB0LKpPmF8PmAm5fhwGz6JFTKe+HCBRtuwOEERSd1EN7TGKi

# xczSX8FJMz84dcOfALxjTj6RUF5TNSQLD2pACgYWl8MM0lEtD/1eif7TKMHqaA+s

# m/yJrlKEtOr836BvAgMBAAGjggHFMIIBwTAfBgNVHSMEGDAWgBRaxLl7Kgqjpepx

# A8Bg+S32ZXUOWDAdBgNVHQ4EFgQULh60SWOBOnU9TSFq0c2sWmMdu7EwDgYDVR0P

# AQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMHcGA1UdHwRwMG4wNaAzoDGG

# L2h0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
# MDWgM6Axhi9odHRwOi8vY3JsNC5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLWNz

# LWcxLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG/WwDATAqMCgGCCsGAQUFBwIBFhxo

# dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAEEATCBhAYIKwYBBQUH

# AQEEeDB2MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wTgYI

# KwYBBQUHMAKGQmh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFNI

# QTJBc3N1cmVkSURDb2RlU2lnbmluZ0NBLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqG

# SIb3DQEBCwUAA4IBAQBozpJhBdsaz19E9faa/wtrnssUreKxZVkYQ+NViWeyImc5

# qEZcDPy3Qgf731kVPnYuwi5S0U+qyg5p1CNn/WsvnJsdw8aO0lseadu8PECuHj1Z

# 5w4mi5rGNq+QVYSBB2vBh5Ps5rXuifBFF8YnUyBc2KuWBOCq6MTRN1H2sU5LtOUc

# Qkacv8hyom8DHERbd3mIBkV8fmtAmvwFYOCsXdBHOSwQUvfs53GySrnIYiWT0y56

# mVYPwDj7h/PdWO5hIuZm6n5ohInLig1weiVDJ254r+2pfyyRT+02JVVxyHFMCLwC

# ASs4vgbiZzMDltmoTDHz9gULxu/CfBGM0waMDu3cMIIFMDCCBBigAwIBAgIQBAkY

# G1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzEVMBMG

# A1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw

# IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMTMxMDIyMTIw

# MDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGln

# aUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhE

# aWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMIIBIjANBgkq

# hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8OEa9ndwfTCzFJGc/Q+0WZsTrb

# RPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq8JyGpdglrA55KDp+6dFn08b7

# KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRpwsJS8hRniolF1C2ho+mILCCV

# rhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/pfMuSoeU7MRzP6vIK5Fe7SrXp

# dOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3jNEgJSPrCGQ+UpbB8g8S9MWO

# D8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczyen6Yzqf0Z3yWT0QIDAQABo4IB

# zTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0l

# BAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRw

# Oi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRz

# LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwgYEGA1Ud

# HwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFz
# c3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNv

# bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwTwYDVR0gBEgwRjA4BgpghkgB

# hv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9D

# UFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsqCqOl6nEDwGD5LfZldQ5YMB8G

# A1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMA0GCSqGSIb3DQEBCwUAA4IB

# AQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHXfgtg/cM9D8Svi/3vKt8gVTew

# 4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddfRHnzNhQGivecRk5c/5CxGwcO

# kRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8AlEeKcFEehemhor5unXCBc2XGx

# DI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+L3J+HNdJRZboWR3p+nRka7Lr

# ZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8B4H6i9r5gkn3Ym6hU/oSlBiF

# LpKR6mhsRDKyZqHnGKSaZFHvMYIELzCCBCsCAQEwgYYwcjELMAkGA1UEBhMCVVMx

# FTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNv

# bTExMC8GA1UEAxMoRGlnaUNlcnQgU0hBMiBBc3N1cmVkIElEIENvZGUgU2lnbmlu

# ZyBDQQIQB6Zc7QsNL9EyTYMCYZHvVTAJBgUrDgMCGgUAoHAwEAYKKwYBBAGCNwIB

# DDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO

# MAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFK4Qz6/QDy8YhkZLV8S+Ph8p

# kKIYMA0GCSqGSIb3DQEBAQUABIIBADSYIz5Nd+yj/tpDVUD8+YGdFXQ2xghEtzUX

# 6r/GISFtE8s1489Yz++2cTXZEqeavRhB1Lyg7D/fvnWZYI2IJ6hByR0LDDJQML9l

# pB4DdPzAdsmH/PAyZVG0L8whCThiyAgaG7XzMQm2QQ+QIpFkPGL3KdYGLFISeic5

# ICgSfGJmexfVdMUgqROxGpIqu5merUe4FTlp4hDJaOJ9Ym9wdETaUZlomnuVMsyV

# 6vuQSBQN624qBLMJNCsFv196N+NZ3gtaRsjKkMNXNRP2DgUijikD+RAVrAqXYcqz

# qIJZuAC5ODKvRnApnURfULSpwN7AHk9T+KrV04+kSoY+/CfktL6hggILMIICBwYJ

# KoZIhvcNAQkGMYIB+DCCAfQCAQEwcjBeMQswCQYDVQQGEwJVUzEdMBsGA1UEChMU

# U3ltYW50ZWMgQ29ycG9yYXRpb24xMDAuBgNVBAMTJ1N5bWFudGVjIFRpbWUgU3Rh

# bXBpbmcgU2VydmljZXMgQ0EgLSBHMgIQDs/0OMj+vzVuBNhqmBsaUDAJBgUrDgMC

# GgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcN

# MjAwMTA5MjAzNDQzWjAjBgkqhkiG9w0BCQQxFgQU2i+3Pjo+vfk7EF10dceXg3Cr

# JW0wDQYJKoZIhvcNAQEBBQAEggEACMS6QSyaHepC8XBurklaibCEVHmxwf0KD+jg

# ykMQUD6tKb3APQwoVIltOk9eUV+V2Z3LVmtRsjZ1b98ZZGYHsDdzw5H4p9VwbNMW
# 1DQv/Uqt0qz65nVMtkHAzlZq3q1DuQLxMSd9VVUz9bhQ5UvTlkc/DRvWzow8NNOE

# HXVtVcu6mAQST7/Q1w0u/HThefYTcceNaovB+5AujX2LAxNU1WxM1VnhNuZl4CqQ

# QqfPhaqRMPpl3S2uCwg/8lOAj+0xWpLt2bVv7Pp+6VVOCWBtr0NuH50wR29bfh0x

# a1Y4+7RiWsoAJ4qmpq1DbPJ4wPXv77u9+ib/mtewgUDQam9Cnw==

# SIG # End signature block

You might also like