public/maester/entra/Test-MtHighRiskAppPermissions.ps1

<#
.SYNOPSIS
    Check if any applications or service principals have high risk Graph permissions that can lead to direct or indirect paths
    to Global Admin and full tenant takeover. The permissions are based on the research published at https://github.com/emiliensocchi/azure-tiering/tree/main.
 
.DESCRIPTION
    Applications that use Graph API permissions with a risk of having a direct or indirect path to Global Admin and full tenant takeover.
 
.EXAMPLE
    Test-MtHighRiskAppPermissions
 
    Returns true if no application has Tier-0 graph permissions
 
.LINK
    https://maester.dev/docs/commands/Test-MtHighRiskAppPermissions
#>

function Test-MtHighRiskAppPermissions {
    [CmdletBinding()]
    [OutputType([bool])]
    param(
        # Check for direct path to Global Admin or indirect path through a combination of permissions. Default is "All".
        [ValidateSet('All', 'Direct', 'Indirect')]
        [String] $AttackPath = "All"
    )

    if (-not (Test-MtConnection Graph)) {
        Add-MtTestResultDetail -SkippedBecause NotConnectedGraph
        return $null
    }

    $allCriticalGraphPermissions = @(
        [pscustomobject]@{
            Id='2f6817f8-7b12-4f0f-bc18-eeaf60705a9e';
            Name='PrivilegedAccess.ReadWrite.AzureADGroup';
            Type='Application';
            Path='Direct'
        }
        [pscustomobject]@{
            Id='32531c59-1f32-461f-b8df-6f8a3b89f73b';
            Name='PrivilegedAccess.ReadWrite.AzureADGroup';
            Type='Delegated'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='41202f2c-f7ab-45be-b001-85c9728b9d69';
            Name='PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup';
            Type='Application'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='06dbc45d-6708-4ef0-a797-f797ee68bf4b';
            Name='PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup';
            Type='Delegated'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='dd199f4a-f148-40a4-a2ec-f0069cc799ec';
            Name='RoleAssignmentSchedule.ReadWrite.Directory';
            Type='Application'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='8c026be3-8e26-4774-9372-8d5d6f21daff';
            Name='RoleAssignmentSchedule.ReadWrite.Directory';
            Type='Delegated'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='9e3f62cf-ca93-4989-b6ce-bf83c28f9fe8';
            Name='RoleManagement.ReadWrite.Directory';
            Type='Application'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='d01b97e9-cbc0-49fe-810a-750afd5527a3';
            Name='RoleManagement.ReadWrite.Directory';
            Type='Delegated'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='eccc023d-eccf-4e7b-9683-8813ab36cecc';
            Name='User.DeleteRestore.All';
            Type='Application'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='4bb440cd-2cf2-4f90-8004-aa2acd2537c5';
            Name='User.DeleteRestore.All';
            Type='Delegated'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='3011c876-62b7-4ada-afa2-506cbbecc68c';
            Name='User.EnableDisableAccount.All';
            Type='Application'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='f92e74e7-2563-467f-9dd0-902688cb5863';
            Name='User.EnableDisableAccount.All';
            Type='Delegated'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='50483e42-d915-4231-9639-7fdb7fd190e5';
            Name='UserAuthenticationMethod.ReadWrite.All';
            Type='Application'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='b7887744-6746-4312-813d-72daeaee7e2d';
            Name='UserAuthenticationMethod.ReadWrite.All';
            Type='Delegated'
            Path='Direct'
        }
        [pscustomobject]@{
            Id='5eb59dd3-1da2-4329-8733-9dabdc435916';
            Name='AdministrativeUnit.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='7b8a2d34-6b3f-4542-a343-54651608ad81';
            Name='AdministrativeUnit.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9';
            Name='Application.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='bdfbf15f-ee85-4955-8675-146e8e5296b5';
            Name='Application.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='18a4783c-866b-4cc7-a460-3d5e5662c884';
            Name='Application.ReadWrite.OwnedBy';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='06b708a9-e830-4db3-a914-8e69da51d44f';
            Name='AppRoleAssignment.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='84bccea3-f856-4a8a-967b-dbe0a3d53a64';
            Name='AppRoleAssignment.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='9241abd9-d0e6-425a-bd4f-47ba86e767a4';
            Name='DeviceManagementConfiguration.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='0883f392-0a7a-443d-8c76-16a6d39c7b63';
            Name='DeviceManagementConfiguration.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='e330c4f0-4170-414e-a55a-2f022ec2b57b';
            Name='DeviceManagementRBAC.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='0c5e8a55-87a6-4556-93ab-adc52c4d862d';
            Name='DeviceManagementRBAC.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='19dbc75e-c2e2-444c-a770-ec69d8559fc7';
            Name='Directory.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='c5366453-9fb0-48a5-a156-24f0c49a4b84';
            Name='Directory.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='9acd699f-1e81-4958-b001-93b1d2506e19';
            Name='EntitlementManagement.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='ae7a573d-81d7-432b-ad44-4ed5c9d89038';
            Name='EntitlementManagement.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='62a82d76-70ea-41e2-9197-370581804d09';
            Name='Group.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='4e46008b-f24c-477d-8fff-7bb4ec7aafe0';
            Name='Group.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='dbaae8cf-10b5-4b86-a4a1-f871c94c6695';
            Name='GroupMember.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='f81125ac-d3b7-4573-a3b2-7099cc39df9e';
            Name='GroupMember.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='29c18626-4985-4dcd-85c0-193eef327366';
            Name='Policy.ReadWrite.AuthenticationMethod';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='7e823077-d88e-468f-a337-e18f1f0e6c7c';
            Name='Policy.ReadWrite.AuthenticationMethod';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='a402ca1c-2696-4531-972d-6e5ee4aa11ea';
            Name='Policy.ReadWrite.PermissionGrant';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='2672f8bb-fd5e-42e0-85e1-ec764dd2614e';
            Name='Policy.ReadWrite.PermissionGrant';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='618b6020-bca8-4de6-99f6-ef445fa4d857';
            Name='PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='ba974594-d163-484e-ba39-c330d5897667';
            Name='PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='fee28b28-e1f3-4841-818e-2704dc62245f';
            Name='RoleEligibilitySchedule.ReadWrite.Directory';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='62ade113-f8e0-4bf9-a6ba-5acb31db32fd';
            Name='RoleEligibilitySchedule.ReadWrite.Directory';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='b38dcc4d-a239-4ed6-aa84-6c65b284f97c';
            Name='RoleManagementPolicy.ReadWrite.AzureADGroup';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='0da165c7-3f15-4236-b733-c0b0f6abe41d';
            Name='RoleManagementPolicy.ReadWrite.AzureADGroup';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='31e08e0a-d3f7-4ca2-ac39-7343fb83e8ad';
            Name='RoleManagementPolicy.ReadWrite.Directory';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='1ff1be21-34eb-448c-9ac9-ce1f506b2a68';
            Name='RoleManagementPolicy.ReadWrite.Directory';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='741f803b-c850-494e-b5df-cde7c675a1ca';
            Name='User.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='204e0828-b5ca-4ad8-b9f3-f32a958e7cc4';
            Name='User.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='cc117bb9-00cf-4eb8-b580-ea2a878fe8f7';
            Name='User-PasswordProfile.ReadWrite.All';
            Type='Application'
            Path='Indirect'
        }
        [pscustomobject]@{
            Id='56760768-b641-451f-8906-e1b8ab31bca7';
            Name='User-PasswordProfile.ReadWrite.All';
            Type='Delegated'
            Path='Indirect'
        }
   )

    $return = $true

    Write-Verbose "Test-MtHighRiskAppPermissions: Checking applications for high-risk permissions"
    try {
        $allApiAssignments = [System.Collections.Generic.List[PSCustomObject]]::new()
        $msGraphResourceId = "9647a6cf-c144-4b57-92bc-34d54075f29b"

        $allServicePrincipals = Invoke-MtGraphRequest -RelativeUri "servicePrincipals"
        foreach ($sp in $allServicePrincipals) {
            If (([string]::IsNullOrEmpty($sp.Id))) {
                Continue
            }
            $spUrl = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/Overview/objectId/$($sp.id)/appId/$($sp.appId)"

            $spAppRoleAssignments = Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/$($sp.Id)/appRoleAssignments" -Method GET
            $spAppRoleAssignments.value | Where-Object { $_.resourceId -eq $msGraphResourceId } | ForEach-Object {
                $allApiAssignments.Add([PSCustomObject]@{
                    appDisplayName = $sp.appDisplayName
                    objectId = $sp.Id
                    appId = $sp.appId
                    appUrl = $spUrl
                    permissionId = $_.appRoleId
                    permissionName = $null
                    type = "Application"
                })
            }

            $spOauth2PermissionGrants = Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/$($sp.Id)/oauth2PermissionGrants" -Method GET
            $spOauth2PermissionGrants.value | Where-Object { $_.resourceId -eq $msGraphResourceId } | ForEach-Object {
                $_.scope.Split(" ") | ForEach-Object {
                    $allApiAssignments.Add([PSCustomObject]@{
                        appDisplayName = $sp.appDisplayName
                        objectId = $sp.Id
                        appId = $sp.appId
                        appUrl = $spUrl
                        permissionId = $null
                        permissionName = $_.Trim()
                        type = "Delegated"
                    })
                }
            }
        }

        if ($attackPath -ne "All") {
            $allCriticalGraphPermissionsToCheck = $allCriticalGraphPermissions | Where-Object { $_.Path -eq $attackPath }
            $attackPathStr = $attackPath.ToLower()
        } else {
            $attackPathStr = "direct or indirect"
            $allCriticalGraphPermissionsToCheck = $allCriticalGraphPermissions
        }

        $allAssignedCriticalPermissions = [System.Collections.Generic.List[PSCustomObject]]::new()
        foreach ($apiAssignment in $allApiAssignments) {
            foreach ($criticalGraphPermission in $allCriticalGraphPermissionsToCheck) {
                $compareAssignmet = if ($apiAssignment.type -eq "Application") { $apiAssignment.permissionId } else { $apiAssignment.permissionName }
                $compareGraphPermission = if ($apiAssignment.type -eq "Application") { $criticalGraphPermission.Id } else { $criticalGraphPermission.Name }

                if (($compareAssignmet -eq $compareGraphPermission) -and ($apiAssignment.type -eq $criticalGraphPermission.Type)) {
                    $allAssignedCriticalPermissions.Add([PSCustomObject]@{
                        ApplicationName = $apiAssignment.appDisplayName
                        ApplicationId = $apiAssignment.appId
                        ApplicationUrl = $apiAssignment.appUrl
                        PermissionName = $criticalGraphPermission.Name
                        PermissionType = $criticalGraphPermission.Type
                        AttackPath = $criticalGraphPermission.Path
                    })
                }
            }
        }
        $return = if (($allAssignedCriticalPermissions | Measure-Object).Count -eq 0) { $true } else { $false }

        if ($return) {
            $testResultMarkdown = "Well done. No application has graph permissions with a risk of having a $($attackPathStr) path to Global Admin and full tenant takeover."
        } else {
            $testResultMarkdown = "At least one application has graph permissions with a risk of having a $($attackPathStr) path to Global Admin and full tenant takeover.`n`n%TestResult%"

            $result = "| ApplicationName | ApplicationId | PermissionName | PermissionType | AttackPath |`n"
            $result += "| --- | --- | --- | --- | --- |`n"
            foreach ($assignedCriticalPermission in $allAssignedCriticalPermissions) {
                $appMdLink = "[$($assignedCriticalPermission.ApplicationName)]($($assignedCriticalPermission.ApplicationUrl))"
                $result += "| $($appMdLink) | $($assignedCriticalPermission.ApplicationId) | $($assignedCriticalPermission.PermissionName) | $($assignedCriticalPermission.PermissionType) | $($assignedCriticalPermission.AttackPath) |`n"
            }
            $testResultMarkdown = $testResultMarkdown -replace "%TestResult%", $result
        }
        Add-MtTestResultDetail -Result $testResultMarkdown
    } catch {
        $return = $false
        Write-Error $_.Exception.Message
    }
    return $return
}

# SIG # Begin signature block
# MIIuqgYJKoZIhvcNAQcCoIIumzCCLpcCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBEPPeeeKgo0G3e
# CcH4TKxCkDGYZH570T7UgPFichpaeqCCE5QwggWQMIIDeKADAgECAhAFmxtXno4h
# MuI5B72nd3VcMA0GCSqGSIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV
# BAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0xMzA4MDExMjAwMDBaFw0z
# ODAxMTUxMjAwMDBaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0
# IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
# AL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3EMB/z
# G6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKyunWZ
# anMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsFxl7s
# Wxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU15zHL
# 2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJBMtfb
# BHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObURWBf3
# JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6nj3c
# AORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxBYKqx
# YxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5SUUd0
# viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+xq4aL
# T8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjQjBAMA8GA1Ud
# EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTs1+OC0nFdZEzf
# Lmc/57qYrhwPTzANBgkqhkiG9w0BAQwFAAOCAgEAu2HZfalsvhfEkRvDoaIAjeNk
# aA9Wz3eucPn9mkqZucl4XAwMX+TmFClWCzZJXURj4K2clhhmGyMNPXnpbWvWVPjS
# PMFDQK4dUPVS/JA7u5iZaWvHwaeoaKQn3J35J64whbn2Z006Po9ZOSJTROvIXQPK
# 7VB6fWIhCoDIc2bRoAVgX+iltKevqPdtNZx8WorWojiZ83iL9E3SIAveBO6Mm0eB
# cg3AFDLvMFkuruBx8lbkapdvklBtlo1oepqyNhR6BvIkuQkRUNcIsbiJeoQjYUIp
# 5aPNoiBB19GcZNnqJqGLFNdMGbJQQXE9P01wI4YMStyB0swylIQNCAmXHE/A7msg
# dDDS4Dk0EIUhFQEI6FUy3nFJ2SgXUE3mvk3RdazQyvtBuEOlqtPDBURPLDab4vri
# RbgjU2wGb2dVf0a1TD9uKFp5JtKkqGKX0h7i7UqLvBv9R0oN32dmfrJbQdA75PQ7
# 9ARj6e/CVABRoIoqyc54zNXqhwQYs86vSYiv85KZtrPmYQ/ShQDnUBrkG5WdGaG5
# nLGbsQAe79APT0JsyQq87kP6OnGlyE0mpTX9iV28hWIdMtKgK1TtmlfB2/oQzxm3
# i0objwG2J5VT6LaJbVu8aNQj6ItRolb58KaAoNYes7wPD1N1KarqE3fk3oyBIa0H
# EEcRrYc9B9F1vM/zZn4wggawMIIEmKADAgECAhAIrUCyYNKcTJ9ezam9k67ZMA0G
# CSqGSIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0
# IFRydXN0ZWQgUm9vdCBHNDAeFw0yMTA0MjkwMDAwMDBaFw0zNjA0MjgyMzU5NTla
# MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UE
# AxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEz
# ODQgMjAyMSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVtC9C
# 0CiteLdd1TlZG7GIQvUzjOs9gZdwxbvEhSYwn6SOaNhc9es0JAfhS0/TeEP0F9ce
# 2vnS1WcaUk8OoVf8iJnBkcyBAz5NcCRks43iCH00fUyAVxJrQ5qZ8sU7H/Lvy0da
# E6ZMswEgJfMQ04uy+wjwiuCdCcBlp/qYgEk1hz1RGeiQIXhFLqGfLOEYwhrMxe6T
# SXBCMo/7xuoc82VokaJNTIIRSFJo3hC9FFdd6BgTZcV/sk+FLEikVoQ11vkunKoA
# FdE3/hoGlMJ8yOobMubKwvSnowMOdKWvObarYBLj6Na59zHh3K3kGKDYwSNHR7Oh
# D26jq22YBoMbt2pnLdK9RBqSEIGPsDsJ18ebMlrC/2pgVItJwZPt4bRc4G/rJvmM
# 1bL5OBDm6s6R9b7T+2+TYTRcvJNFKIM2KmYoX7BzzosmJQayg9Rc9hUZTO1i4F4z
# 8ujo7AqnsAMrkbI2eb73rQgedaZlzLvjSFDzd5Ea/ttQokbIYViY9XwCFjyDKK05
# huzUtw1T0PhH5nUwjewwk3YUpltLXXRhTT8SkXbev1jLchApQfDVxW0mdmgRQRNY
# mtwmKwH0iU1Z23jPgUo+QEdfyYFQc4UQIyFZYIpkVMHMIRroOBl8ZhzNeDhFMJlP
# /2NPTLuqDQhTQXxYPUez+rbsjDIJAsxsPAxWEQIDAQABo4IBWTCCAVUwEgYDVR0T
# AQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHwYD
# VR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMG
# A1UdJQQMMAoGCCsGAQUFBwMDMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYY
# aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2Fj
# ZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNV
# HR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRU
# cnVzdGVkUm9vdEc0LmNybDAcBgNVHSAEFTATMAcGBWeBDAEDMAgGBmeBDAEEATAN
# BgkqhkiG9w0BAQwFAAOCAgEAOiNEPY0Idu6PvDqZ01bgAhql+Eg08yy25nRm95Ry
# sQDKr2wwJxMSnpBEn0v9nqN8JtU3vDpdSG2V1T9J9Ce7FoFFUP2cvbaF4HZ+N3HL
# IvdaqpDP9ZNq4+sg0dVQeYiaiorBtr2hSBh+3NiAGhEZGM1hmYFW9snjdufE5Btf
# Q/g+lP92OT2e1JnPSt0o618moZVYSNUa/tcnP/2Q0XaG3RywYFzzDaju4ImhvTnh
# OE7abrs2nfvlIVNaw8rpavGiPttDuDPITzgUkpn13c5UbdldAhQfQDN8A+KVssIh
# dXNSy0bYxDQcoqVLjc1vdjcshT8azibpGL6QB7BDf5WIIIJw8MzK7/0pNVwfiThV
# 9zeKiwmhywvpMRr/LhlcOXHhvpynCgbWJme3kuZOX956rEnPLqR0kq3bPKSchh/j
# wVYbKyP/j7XqiHtwa+aguv06P0WmxOgWkVKLQcBIhEuWTatEQOON8BUozu3xGFYH
# Ki8QxAwIZDwzj64ojDzLj4gLDb879M4ee47vtevLt/B3E+bnKD+sEq6lLyJsQfmC
# XBVmzGwOysWGw/YmMwwHS6DTBwJqakAwSEs0qFEgu60bhQjiWQ1tygVQK+pKHJ6l
# /aCnHwZ05/LWUpD9r4VIIflXO7ScA+2GRfS0YW6/aOImYIbqyK+p/pQd52MbOoZW
# eE4wggdIMIIFMKADAgECAhAKgjCQR6s2I8rDH7I9rOuaMA0GCSqGSIb3DQEBCwUA
# MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UE
# AxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEz
# ODQgMjAyMSBDQTEwHhcNMjIwNTE4MDAwMDAwWhcNMjUwNTE3MjM1OTU5WjBNMQsw
# CQYDVQQGEwJERTEQMA4GA1UEBxMHSGFtYnVyZzEVMBMGA1UEChMMRmFiaWFuIEJh
# ZGVyMRUwEwYDVQQDEwxGYWJpYW4gQmFkZXIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
# DwAwggIKAoICAQDBI8VJts4gUJjzaL//82nAioe/sYkIOqO74ImDtMCiMNXYINLP
# vao3Y9iNXlqd+H+N4lUa0DsGsJ4paQvNUf0/ilbnaO4SHBF7t9u/uz4+SlOEsF3B
# BeH8kcReki/2MuQ4YfdjGvGghLlt2fMp+7JSvyon8n5Tpr1KCQ6QU0zqkYcUZjZO
# xEDzAyNN2mFgZMp/nzmEfiYPv8arV1vvYhAOmigpdg9mhtD4sC4u0X9GBNUfVi2D
# /rWZ3bylXflDJm6MBxyhgmOANbN5zHs7tx1i7ACWw9+Hov5gVU7H0vK5pUVCDrDr
# d7UM1gSC4iY+Xq1a0Aw4eaBfF3hrjD8fS29SSqM4fkrh1TgJaZwhKeR2Hax0c3DH
# yCN9h7dPClbGUU5TUcRp7ocA0Xq1W0jJWFBHBLsnUM0k7Uog4ZkMGEqGI+SWvXtY
# ydHl5gQI51xpyQcNP3JkndAeRPQYxrcqdlJHnpGE5vPs0fyWUlFJn/bLMM48CGIU
# 6sqNk9hgvxHnbjxmTE7FtMlalOFbnd0o8zpv02i2qIlbmu7h45WrTKNIx208u21A
# C7ocS00ojX3QCK/lc89BgzIjU8dUtjmxXumbfqEiljkRbbcecmzfTbgCIXjkU3Wb
# EeVSSbtz4Jiw0BufJEmUhxTIXXbVqQU1W4ZBTBshCe2ZChr+TF3++ljakQIDAQAB
# o4ICBjCCAgIwHwYDVR0jBBgwFoAUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHQYDVR0O
# BBYEFPUKlMJ9lsMeVu5KQOaYqYXKAg45MA4GA1UdDwEB/wQEAwIHgDATBgNVHSUE
# DDAKBggrBgEFBQcDAzCBtQYDVR0fBIGtMIGqMFOgUaBPhk1odHRwOi8vY3JsMy5k
# aWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZT
# SEEzODQyMDIxQ0ExLmNybDBToFGgT4ZNaHR0cDovL2NybDQuZGlnaWNlcnQuY29t
# L0RpZ2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hBMzg0MjAyMUNB
# MS5jcmwwPgYDVR0gBDcwNTAzBgZngQwBBAEwKTAnBggrBgEFBQcCARYbaHR0cDov
# L3d3dy5kaWdpY2VydC5jb20vQ1BTMIGUBggrBgEFBQcBAQSBhzCBhDAkBggrBgEF
# BQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMFwGCCsGAQUFBzAChlBodHRw
# Oi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2ln
# bmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqG
# SIb3DQEBCwUAA4ICAQAJwchVKGCBGuhUPGL5IN8k6pUzZn3ZPbli/zHJYYxSbXhs
# YQ4GCd8eIhQmYr0GmbST+GdgSlXkiWXz9F/bSX7K+XBOPWbiy3ZGvhzzhFIaatbz
# eaRjEyGDlgu0uJl1p80JyS737bp2BnnfsrtgOEa4h5aDvTxVyECcMRvwKWKpYxgv
# Doni9qBD3UTl6Y+mrsWEOzao0wSWeuNZQuNCRhEaUN/DbYBymy0KsQGRz7XxZmXo
# EPY7DUPXCExXo/XjvZmBNyjo9ynwEqGuqihRerYIPBhclv+IU3BGe7sKzvy752Uu
# 76xc3Gxsa49P0iD7k68LUWIcx45rhpLwdlKlNu7jDxxyUv0R1eqWBVcULY+UOKv/
# Zb1WP2zq2JKneF2Uft0g7kURCHwkut08XApdnx2uC8/box/XWMK/KQz5BCb2OEH9
# WECfCKySBSh0iR+jHRGMm0JCQ1PWheolUSvAGqX8hVBQ1AJHtDt8DxTaNTwUFORi
# vJRABBogSrFq/dz4aoz3hOHcLkW+s67gJTbz8dm5ONlkIE/uzYRb//htFRBKdcHi
# ZqzNRH7/xH5tf77J8f867UdAvloaj2rYvfqhpUWNozbzbDWnMUARR/SOClSQF4k4
# VR4W+KthbKp7H6grDLxXOCz4Ep3sU5KEtrvAJqLV+N9i+k7sbFul1gmpqc0yYDGC
# GmwwghpoAgEBMH0waTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
# bmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IENvZGUgU2lnbmluZyBS
# U0E0MDk2IFNIQTM4NCAyMDIxIENBMQIQCoIwkEerNiPKwx+yPazrmjANBglghkgB
# ZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJ
# AzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8G
# CSqGSIb3DQEJBDEiBCDK1tkTCDZDIeC/tzN2vRwERtJWM2ENIea1SmK2O+xgGDAN
# BgkqhkiG9w0BAQEFAASCAgC424ceTWSiWgkmuLXd6yguLLJVNFb4vPT5y0KBVPEZ
# M3pteFGU/9qjs4BOiPEnoX/VyBtubgNzCBvRje9PpwOSYcKScLl7oYKrwUHU7Is0
# P9Q3i8Q0c/nL6p/P50TWTA/njXIn4WjtdxFrmZPs6B8cVrSR4P1LPE4dh3fQwTpV
# iK4RLnGO01vnbEDiTwONTjspCxhQ1wVkOGnU4smo2ONIJKOJyHI6elWP+2svjHxH
# /jXmPN2rqoVT7ZkbUc9nydiR6e7VDiSmDYX9eJrHPnlIUGvxV8C9SVo0ol30YBNQ
# O/tNQPLN6qOjRtitTiBuIyepFnmY09azFiPHy7UJytQ2N77JLyxWl7clBQAz2gaM
# fMmFsOiG9aM2nJmaKO6+r5u4dixFrnt5JrXBRnrZhFuhN4tJB1Byiocq8tuao/nG
# gMXq6wv7wJQ4SfL33kGQnxk88WsjAENdfk/rdmBkPx8AS0B+/TvjWC0ArJd+CuPW
# xBe40//4ax3UHts8UPRXwmhZAxLxOHcvJcoCKKWe5Xh7tpz4vURVC7lhBm7u47XR
# WMksvshWVn3Hv1UjyzU6+xkGmezZZQhOAwRBjYCzILRtHytA6qgIeK32ukzCgmp+
# SV/lGwFOyBtTdAGGcTUNczgYU6PnNZEPQzykdx/DVvjXxaEkm08Ws8QSnMZrTZQP
# oaGCFzkwghc1BgorBgEEAYI3AwMBMYIXJTCCFyEGCSqGSIb3DQEHAqCCFxIwghcO
# AgEDMQ8wDQYJYIZIAWUDBAIBBQAwdwYLKoZIhvcNAQkQAQSgaARmMGQCAQEGCWCG
# SAGG/WwHATAxMA0GCWCGSAFlAwQCAQUABCB5QCRddSpvbFUdzlvRPqi+0JXOTZiB
# +Z+wJaTNB/rW4wIQVaxSGcgvLoHj1sT7gwlnkBgPMjAyNTAyMTkyMTU0MDFaoIIT
# AzCCBrwwggSkoAMCAQICEAuuZrxaun+Vh8b56QTjMwQwDQYJKoZIhvcNAQELBQAw
# YzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYDVQQD
# EzJEaWdpQ2VydCBUcnVzdGVkIEc0IFJTQTQwOTYgU0hBMjU2IFRpbWVTdGFtcGlu
# ZyBDQTAeFw0yNDA5MjYwMDAwMDBaFw0zNTExMjUyMzU5NTlaMEIxCzAJBgNVBAYT
# AlVTMREwDwYDVQQKEwhEaWdpQ2VydDEgMB4GA1UEAxMXRGlnaUNlcnQgVGltZXN0
# YW1wIDIwMjQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC+anOf9pUh
# q5Ywultt5lmjtej9kR8YxIg7apnjpcH9CjAgQxK+CMR0Rne/i+utMeV5bUlYYSuu
# M4vQngvQepVHVzNLO9RDnEXvPghCaft0djvKKO+hDu6ObS7rJcXa/UKvNminKQPT
# v/1+kBPgHGlP28mgmoCw/xi6FG9+Un1h4eN6zh926SxMe6We2r1Z6VFZj75MU/HN
# mtsgtFjKfITLutLWUdAoWle+jYZ49+wxGE1/UXjWfISDmHuI5e/6+NfQrxGFSKx+
# rDdNMsePW6FLrphfYtk/FLihp/feun0eV+pIF496OVh4R1TvjQYpAztJpVIfdNsE
# vxHofBf1BWkadc+Up0Th8EifkEEWdX4rA/FE1Q0rqViTbLVZIqi6viEk3RIySho1
# XyHLIAOJfXG5PEppc3XYeBH7xa6VTZ3rOHNeiYnY+V4j1XbJ+Z9dI8ZhqcaDHOoj
# 5KGg4YuiYx3eYm33aebsyF6eD9MF5IDbPgjvwmnAalNEeJPvIeoGJXaeBQjIK13S
# lnzODdLtuThALhGtyconcVuPI8AaiCaiJnfdzUcb3dWnqUnjXkRFwLtsVAxFvGqs
# xUA2Jq/WTjbnNjIUzIs3ITVC6VBKAOlb2u29Vwgfta8b2ypi6n2PzP0nVepsFk8n
# lcuWfyZLzBaZ0MucEdeBiXL+nUOGhCjl+QIDAQABo4IBizCCAYcwDgYDVR0PAQH/
# BAQDAgeAMAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwIAYD
# VR0gBBkwFzAIBgZngQwBBAIwCwYJYIZIAYb9bAcBMB8GA1UdIwQYMBaAFLoW2W1N
# hS9zKXaaL3WMaiCPnshvMB0GA1UdDgQWBBSfVywDdw4oFZBmpWNe7k+SH3agWzBa
# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNl
# cnRUcnVzdGVkRzRSU0E0MDk2U0hBMjU2VGltZVN0YW1waW5nQ0EuY3JsMIGQBggr
# BgEFBQcBAQSBgzCBgDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQu
# Y29tMFgGCCsGAQUFBzAChkxodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGln
# aUNlcnRUcnVzdGVkRzRSU0E0MDk2U0hBMjU2VGltZVN0YW1waW5nQ0EuY3J0MA0G
# CSqGSIb3DQEBCwUAA4ICAQA9rR4fdplb4ziEEkfZQ5H2EdubTggd0ShPz9Pce4FL
# Jl6reNKLkZd5Y/vEIqFWKt4oKcKz7wZmXa5VgW9B76k9NJxUl4JlKwyjUkKhk3aY
# x7D8vi2mpU1tKlY71AYXB8wTLrQeh83pXnWwwsxc1Mt+FWqz57yFq6laICtKjPIC
# YYf/qgxACHTvypGHrC8k1TqCeHk6u4I/VBQC9VK7iSpU5wlWjNlHlFFv/M93748Y
# TeoXU/fFa9hWJQkuzG2+B7+bMDvmgF8VlJt1qQcl7YFUMYgZU1WM6nyw23vT6QSg
# wX5Pq2m0xQ2V6FJHu8z4LXe/371k5QrN9FQBhLLISZi2yemW0P8ZZfx4zvSWzVXp
# Ab9k4Hpvpi6bUe8iK6WonUSV6yPlMwerwJZP/Gtbu3CKldMnn+LmmRTkTXpFIEB0
# 6nXZrDwhCGED+8RsWQSIXZpuG4WLFQOhtloDRWGoCwwc6ZpPddOFkM2LlTbMcqFS
# zm4cd0boGhBq7vkqI1uHRz6Fq1IX7TaRQuR+0BGOzISkcqwXu7nMpFu3mgrlgbAW
# +BzikRVQ3K2YHcGkiKjA4gi4OA/kz1YCsdhIBHXqBzR0/Zd2QwQ/l4Gxftt/8wY3
# grcc/nS//TVkej9nmUYu83BDtccHHXKibMs/yXHhDXNkoPIdynhVAku7aRZOwqw6
# pDCCBq4wggSWoAMCAQICEAc2N7ckVHzYR6z9KGYqXlswDQYJKoZIhvcNAQELBQAw
# YjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQ
# d3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UEAxMYRGlnaUNlcnQgVHJ1c3RlZCBSb290
# IEc0MB4XDTIyMDMyMzAwMDAwMFoXDTM3MDMyMjIzNTk1OVowYzELMAkGA1UEBhMC
# VVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYDVQQDEzJEaWdpQ2VydCBU
# cnVzdGVkIEc0IFJTQTQwOTYgU0hBMjU2IFRpbWVTdGFtcGluZyBDQTCCAiIwDQYJ
# KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMaGNQZJs8E9cklRVcclA8TykTepl1Gh
# 1tKD0Z5Mom2gsMyD+Vr2EaFEFUJfpIjzaPp985yJC3+dH54PMx9QEwsmc5Zt+Feo
# An39Q7SE2hHxc7Gz7iuAhIoiGN/r2j3EF3+rGSs+QtxnjupRPfDWVtTnKC3r07G1
# decfBmWNlCnT2exp39mQh0YAe9tEQYncfGpXevA3eZ9drMvohGS0UvJ2R/dhgxnd
# X7RUCyFobjchu0CsX7LeSn3O9TkSZ+8OpWNs5KbFHc02DVzV5huowWR0QKfAcsW6
# Th+xtVhNef7Xj3OTrCw54qVI1vCwMROpVymWJy71h6aPTnYVVSZwmCZ/oBpHIEPj
# Q2OAe3VuJyWQmDo4EbP29p7mO1vsgd4iFNmCKseSv6De4z6ic/rnH1pslPJSlREr
# WHRAKKtzQ87fSqEcazjFKfPKqpZzQmiftkaznTqj1QPgv/CiPMpC3BhIfxQ0z9JM
# q++bPf4OuGQq+nUoJEHtQr8FnGZJUlD0UfM2SU2LINIsVzV5K6jzRWC8I41Y99xh
# 3pP+OcD5sjClTNfpmEpYPtMDiP6zj9NeS3YSUZPJjAw7W4oiqMEmCPkUEBIDfV8j
# u2TjY+Cm4T72wnSyPx4JduyrXUZ14mCjWAkBKAAOhFTuzuldyF4wEr1GnrXTdrnS
# DmuZDNIztM2xAgMBAAGjggFdMIIBWTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1Ud
# DgQWBBS6FtltTYUvcyl2mi91jGogj57IbzAfBgNVHSMEGDAWgBTs1+OC0nFdZEzf
# Lmc/57qYrhwPTzAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwgw
# dwYIKwYBBQUHAQEEazBpMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
# dC5jb20wQQYIKwYBBQUHMAKGNWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9E
# aWdpQ2VydFRydXN0ZWRSb290RzQuY3J0MEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6
# Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRSb290RzQuY3JsMCAG
# A1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCGSAGG/WwHATANBgkqhkiG9w0BAQsFAAOC
# AgEAfVmOwJO2b5ipRCIBfmbW2CFC4bAYLhBNE88wU86/GPvHUF3iSyn7cIoNqilp
# /GnBzx0H6T5gyNgL5Vxb122H+oQgJTQxZ822EpZvxFBMYh0MCIKoFr2pVs8Vc40B
# IiXOlWk/R3f7cnQU1/+rT4osequFzUNf7WC2qk+RZp4snuCKrOX9jLxkJodskr2d
# fNBwCnzvqLx1T7pa96kQsl3p/yhUifDVinF2ZdrM8HKjI/rAJ4JErpknG6skHibB
# t94q6/aesXmZgaNWhqsKRcnfxI2g55j7+6adcq/Ex8HBanHZxhOACcS2n82HhyS7
# T6NJuXdmkfFynOlLAlKnN36TU6w7HQhJD5TNOXrd/yVjmScsPT9rp/Fmw0HNT7ZA
# myEhQNC3EyTN3B14OuSereU0cZLXJmvkOHOrpgFPvT87eK1MrfvElXvtCl8zOYdB
# eHo46Zzh3SP9HSjTx/no8Zhf+yvYfvJGnXUsHicsJttvFXseGYs2uJPU5vIXmVnK
# cPA3v5gA3yAWTyf7YGcWoWa63VXAOimGsJigK+2VQbc61RWYMbRiCQ8KvYHZE/6/
# pNHzV9m8BPqC3jLfBInwAM1dwvnQI38AC+R2AibZ8GV2QqYphwlHK+Z/GqSFD/yY
# lvZVVCsfgPrA8g4r5db7qS9EFUrnEw4d2zc4GqEr9u3WfPwwggWNMIIEdaADAgEC
# AhAOmxiO+dAt5+/bUOIIQBhaMA0GCSqGSIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVT
# MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
# b20xJDAiBgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4
# MDEwMDAwMDBaFw0zMTExMDkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV
# BAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQAD
# ggIPADCCAgoCggIBAL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVir
# dprNrnsbhA3EMB/zG6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcW
# WVVyr2iTcMKyunWZanMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5O
# yJP4IWGbNOsFxl7sWxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7K
# e13jrclPXuU15zHL2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1
# gj4QkXCrVYJBMtfbBHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn
# 3aQnvKFPObURWBf3JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7n
# DmOu5tTvkpI6nj3cAORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIR
# t7t/8tWMcCxBYKqxYxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEd
# slQpJYls5Q5SUUd0viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j
# 7CFfxCBRa2+xq4aLT8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMB
# AAGjggE6MIIBNjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzf
# Lmc/57qYrhwPTzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzAOBgNV
# HQ8BAf8EBAMCAYYweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8v
# b2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRp
# Z2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4w
# PDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJl
# ZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQEMBQAD
# ggEBAHCgv0NcVec4X6CjdBs9thbX979XB72arKGHLOyFXqkauyL4hxppVCLtpIh3
# bb0aFPQTSnovLbc47/T/gLn4offyct4kvFIDyE7QKt76LVbP+fT3rDB6mouyXtTP
# 0UNEm0Mh65ZyoUi0mcudT6cGAxN3J0TU53/oWajwvy8LpunyNDzs9wPHh6jSTEAZ
# NUZqaVSwuKFWjuyk1T3osdz9HNj0d1pcVIxv76FQPfx2CWiEn2/K2yCNNWAcAgPL
# ILCsWKAOQGPFmCLBsln1VWvPJ6tsds5vIy30fnFqI2si/xK4VC0nftg62fC2h5b9
# W9FcrBjDTZ9ztwGpn1eqXijiuZQxggN2MIIDcgIBATB3MGMxCzAJBgNVBAYTAlVT
# MRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1
# c3RlZCBHNCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEAuuZrxaun+V
# h8b56QTjMwQwDQYJYIZIAWUDBAIBBQCggdEwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3
# DQEJEAEEMBwGCSqGSIb3DQEJBTEPFw0yNTAyMTkyMTU0MDFaMCsGCyqGSIb3DQEJ
# EAIMMRwwGjAYMBYEFNvThe5i29I+e+T2cUhQhyTVhltFMC8GCSqGSIb3DQEJBDEi
# BCA37cDlJnDphpP+m0lWDX+sWwkGtNlBa5er0+YfijlBqzA3BgsqhkiG9w0BCRAC
# LzEoMCYwJDAiBCB2dp+o8mMvH0MLOiMwrtZWdf7Xc9sF1mW5BZOYQ4+a2zANBgkq
# hkiG9w0BAQEFAASCAgCaF7KPkTsYi8CGPgg8AxJR2Eh93fkb+FCJCs03Jm5yhpne
# 5vosohJO7v6W/b+ogObeP9v+cc/s94z7O1U1p343o0Im8OAxh1n0PS5rDZghRZB4
# moPe2amA5vgmlV7u3StL7EM1pBF8W/0G6su93Wmj+27wiPElHL6OMij6sXlU6b1h
# anenZ77UnMpDgXI0azfNZeWMGaigSEVBBV4XekZ1hzvCng3vPY+K9Y9VMcXJT5r0
# ihaBsEfpa6iVg4rxm//NVYf8lP0FfUtk/Ei/4z5PkKN6l6Lgjimkz8ldeuyCyPNn
# t3mfLcoW2PmhAD2NBFATZwmDOjJXRT//bAyFEnLDyKYebAtxBQ1WukbJGbo60ezb
# cWX/S29oq05GOMrhtWUs1EwAML4HvwPGT9p+QDiYlI+CGCOmb6qKfiPSFerQ1u0w
# hVWfIolHNiEaFTx8xxHK+j23ztNzPX9x1/bAEq19XVuvkafeYF4z6zwGuoXllUxC
# JZn/80xceg2tW2vnNQc/+cfRfG92TrtVJNn5e18RLoORs8ltFolyX4EE4tKbKv9d
# zDVrenTF1kV9rEIn/AQkevjl+YHgBnnCpi075Z6BL5drEQPXHyv/SVl7kMLG/okj
# vn3OmoyygYlJFys0Nc9O9uGOYIBmJsH77DzRq8xTUgxqSAH79Va+cHULHmXtvw==
# SIG # End signature block