public/Get-IvantiWCGlobalSettings.ps1

<#
.SYNOPSIS
    Retrieves Ivanti Workspace Control global user preference (Zero Profile) settings from XML files.
 
.DESCRIPTION
    Processes Ivanti Workspace Control XML building block file(s) and extracts the global user
    preference profiles ("Zero Profiles"), converting each enabled profile's capture settings
    (folder, file and registry rules) into AppVentiX User State Roaming capture rules. Supports
    both a single XML file and a directory containing multiple XML files.
 
.PARAMETER XmlFilePath
    (Legacy parameter) Path to a single Ivanti Workspace Control XML building block file.
    This parameter is maintained for backward compatibility. Use -XmlPath instead.
 
.PARAMETER XmlPath
    Path to either a single XML file or a directory containing multiple XML files.
 
.PARAMETER AsJson
    Switch to output the results as JSON format instead of PowerShell objects.
 
.PARAMETER ExportFor
    Target system for export. Valid value: AppVentiX.
 
.EXAMPLE
    Get-IvantiWCGlobalSetting -XmlFilePath "C:\Config\GlobalSettings.xml"
 
    Processes a single XML file (legacy parameter usage).
 
.EXAMPLE
    Get-IvantiWCGlobalSetting -XmlPath "C:\Config\GlobalSettings\" -AsJson
 
    Processes all XML files in the specified directory and outputs as JSON.
 
.LINK
    Import-IvantiWCGlobalSetting
 
.NOTES
    Function : Get-IvantiWCGlobalSetting
    Author : John Billekens
    Copyright : (c) John Billekens Consultancy & AppVentiX
    Version : 2026.915.1616
#>

function Get-IvantiWCGlobalSetting {
    [CmdletBinding()]
    param(
        [Parameter(
            Mandatory = $true,
            ParameterSetName = 'ByFilePath',
            HelpMessage = "Path to the Ivanti Workspace Control XML building block file."
        )]
        [ValidateScript({
                if (-not (Test-Path $_ -PathType Leaf)) {
                    throw "File '$_' does not exist."
                }
                return $true
            })]
        [string]$XmlFilePath,

        [Parameter(
            Mandatory = $true,
            ParameterSetName = 'ByPath',
            HelpMessage = "Path to the Ivanti Workspace Control XML building block file or directory containing XML files."
        )]
        [ValidateScript({
                if (-not (Test-Path $_)) {
                    throw "Path '$_' does not exist."
                }
                return $true
            })]
        [string]$XmlPath,

        [Parameter(
            Mandatory = $false,
            HelpMessage = "Output the results as JSON."
        )]
        [switch]$AsJson,

        [ValidateSet("AppVentiX")]
        [string]$ExportFor = "AppVentiX"
    )

    $JsonOutput = @()
    $userPreferencesToProcess = @()

    if ($PSCmdlet.ParameterSetName -eq 'ByFilePath') {
        $XmlPath = $XmlFilePath
    }

    # Determine if XmlPath is a file or directory
    if (Test-Path -Path $XmlPath -PathType Leaf) {
        # Single XML file mode

        try {
            Write-Verbose "Reading and parsing the Ivanti XML file at '$($XmlPath)'."
            [xml]$IvantiXmlData = ConvertFrom-IvantiBB -XmlFilePath $XmlPath
        } catch {
            Write-Error "Failed to read or parse the XML file '$($XmlPath)'. Error: $($_.Exception.Message)"
            return # Stop execution if file can't be read
        }
        Write-Verbose "Retrieving application nodes from the XML data."
        $userPreferencesToProcess = @($IvantiXmlData.SelectSingleNode('/respowerfuse/buildingblock/userpreferences'))

    } elseif (Test-Path -Path $XmlPath -PathType Container) {
        # Directory with multiple XML files mode
        Write-Verbose "Processing directory containing multiple XML files: $XmlPath"
        $XmlFiles = Get-ChildItem -Path $XmlPath -Filter "*.xml" -File

        if ($XmlFiles.Count -eq 0) {
            Write-Warning "No XML files found in directory: $XmlPath"
            return
        }

        Write-Verbose "Found $($XmlFiles.Count) XML file(s) in directory."

        foreach ($XmlFile in $XmlFiles) {
            try {
                [xml]$XmlData = ConvertFrom-IvantiBB -XmlFilePath $XmlFile.FullName
                $userpreferences = @($XmlData.SelectSingleNode('/respowerfuse/buildingblock/userpreferences'))

                if ($userpreferences.Count -gt 0) {
                    $userPreferencesToProcess += $userpreferences
                    Write-Verbose "Loaded $($userpreferences.Count) userpreferences node(s) from '$($XmlFile.Name)'"
                } else {
                    Write-Warning "No userpreferences nodes found in file: $($XmlFile.Name)"
                }
            } catch {
                Write-Warning "Failed to load XML file '$($XmlFile.Name)': $_"
                continue
            }
        }
    } else {
        Write-Error "XmlPath must be either a file or a directory."
        return
    }
    $zeroProfileProfiles = @($userPreferencesToProcess.profiles.profile)
    $userStateRoamingRules = @()
    if ($zeroProfileProfiles.count -gt 0) {
        foreach ($zeroProfile in $zeroProfileProfiles) {
            $Script:Warning = $false
            if ($zeroProfile.enabled -ieq 'no') {
                Write-Warning "[Skip] Zero profile $($zeroProfile.name) is disabled, skipping entry."
                $Script:Warning = $true
            } else {
                $userStateRoamingRule = [PSCustomObject]@{
                    Name         = $zeroProfile.name
                    Enabled      = $(if ($zeroProfile.enabled -ieq 'yes') { "True" } else { "False" })
                    Description  = $zeroProfile.description
                    CaptureRules = @()
                }
                $zeroProfileSettings = @($zeroProfile.settings.setting)
                foreach ($zeroProfileSetting in $zeroProfileSettings) {
                    $captureRule = [PSCustomObject]@{
                        Kind              = ""
                        Path              = ""
                        Exclude           = ""
                        IncludeSubfolders = ""
                        Enabled           = ""
                        Description       = ""
                    }

                    Write-Verbose "[Info] Processing profile $($zeroProfile.name) of type '$($zeroProfileSetting.type)'"
                    switch ($zeroProfileSetting.type) {
                        "folder" {
                            $captureRule.Kind = "Folder"
                            $captureRule.Path = $zeroProfileSetting.data
                            $captureRule.IncludeSubfolders = "True"
                            $captureRule.Enabled = $(if ($zeroProfileSetting.enabled -ieq 'yes') { "True" } else { "False" })
                        }
                        "foldersingle" {
                            $captureRule.Kind = "Folder"
                            $captureRule.Path = $zeroProfileSetting.data
                            $captureRule.IncludeSubfolders = "False"
                            $captureRule.Enabled = $(if ($zeroProfileSetting.enabled -ieq 'yes') { "True" } else { "False" })
                        }
                        "file" {
                            $captureRule.Kind = "File"
                            $captureRule.Path = $zeroProfileSetting.data
                            $captureRule.IncludeSubfolders = "False"
                            $captureRule.Enabled = $(if ($zeroProfileSetting.enabled -ieq 'yes') { "True" } else { "False" })
                        }
                        "regtree" {
                            $captureRule.Kind = "Registry"
                            $captureRule.Path = "$($zeroProfileSetting.data)".Replace('HKEY_CURRENT_USER', 'HKCU')
                            $captureRule.IncludeSubfolders = "True"
                            $captureRule.Enabled = $(if ($zeroProfileSetting.enabled -ieq 'yes') { "True" } else { "False" })
                        }
                        "regkey" {
                            $captureRule.Kind = "Registry"
                            $captureRule.Path = "$($zeroProfileSetting.data)".Replace('HKEY_CURRENT_USER', 'HKCU')
                            $captureRule.IncludeSubfolders = "False"
                            $captureRule.Enabled = $(if ($zeroProfileSetting.enabled -ieq 'yes') { "True" } else { "False" })
                        }
                        "regval" {
                            $captureRule.Kind = "Registry"
                            $capturePath = Join-Path -Path $zeroProfileSetting.data -ChildPath $zeroProfileSetting.value
                            $captureRule.Path = $capturePath.Replace('HKEY_CURRENT_USER', 'HKCU')
                            $captureRule.IncludeSubfolders = "False"
                            $captureRule.Enabled = $(if ($zeroProfileSetting.enabled -ieq 'yes') { "True" } else { "False" })
                        }
                        default {
                            Write-Warning "[$($Application.appid)][Skip] Profile $($zeroProfileSetting.name) has an unrecognized type '$($zeroProfileSetting.type)', skipping entry."
                            $Script:Warning = $true
                        }
                    }
                    if (-not [string]::IsNullOrEmpty($captureRule.Kind)) {
                        $userStateRoamingRule.CaptureRules += $captureRule
                    }
                }
            }
            $userStateRoamingRules += $userStateRoamingRule
        }
        if ($Script:Warning -eq $true) {
            # New line after warnings for better readability in the console output
            Write-Warning "********************************************************************************************************"
        }
    }

    $Output = [PSCustomObject]@{
        Name    = "GlobalSettings"
        Enabled = $(if ($userStateRoamingRules.Count -gt 0) { "True" } else { "False" })
    }
    switch ($ExportFor) {
        "AppVentiX" {
            $AppVentiXUserStateRoamingRules = @($userStateRoamingRules)
            $Output | Add-Member -MemberType NoteProperty -Name "AppVentiXUserStateRoamingRules" -Value $AppVentiXUserStateRoamingRules
        }
    }

    if ($AsJson) {
        $JsonOutput += $Output
    } else {
        Write-Output $Output
    }

}

# SIG # Begin signature block
# MII5zAYJKoZIhvcNAQcCoII5vTCCObkCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAnragrvJMEeMpD
# ZACvSzdP+uncrCnBsAnLeAEm2QgagaCCIfAwggXMMIIDtKADAgECAhBUmNLR1FsZ
# lUgTecgRwIeZMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jvc29mdCBJZGVu
# dGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAy
# MDAeFw0yMDA0MTYxODM2MTZaFw00NTA0MTYxODQ0NDBaMHcxCzAJBgNVBAYTAlVT
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jv
# c29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRo
# b3JpdHkgMjAyMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALORKgeD
# Bmf9np3gx8C3pOZCBH8Ppttf+9Va10Wg+3cL8IDzpm1aTXlT2KCGhFdFIMeiVPvH
# or+Kx24186IVxC9O40qFlkkN/76Z2BT2vCcH7kKbK/ULkgbk/WkTZaiRcvKYhOuD
# PQ7k13ESSCHLDe32R0m3m/nJxxe2hE//uKya13NnSYXjhr03QNAlhtTetcJtYmrV
# qXi8LW9J+eVsFBT9FMfTZRY33stuvF4pjf1imxUs1gXmuYkyM6Nix9fWUmcIxC70
# ViueC4fM7Ke0pqrrBc0ZV6U6CwQnHJFnni1iLS8evtrAIMsEGcoz+4m+mOJyoHI1
# vnnhnINv5G0Xb5DzPQCGdTiO0OBJmrvb0/gwytVXiGhNctO/bX9x2P29Da6SZEi3
# W295JrXNm5UhhNHvDzI9e1eM80UHTHzgXhgONXaLbZ7LNnSrBfjgc10yVpRnlyUK
# xjU9lJfnwUSLgP3B+PR0GeUw9gb7IVc+BhyLaxWGJ0l7gpPKWeh1R+g/OPTHU3mg
# trTiXFHvvV84wRPmeAyVWi7FQFkozA8kwOy6CXcjmTimthzax7ogttc32H83rwjj
# O3HbbnMbfZlysOSGM1l0tRYAe1BtxoYT2v3EOYI9JACaYNq6lMAFUSw0rFCZE4e7
# swWAsk0wAly4JoNdtGNz764jlU9gKL431VulAgMBAAGjVDBSMA4GA1UdDwEB/wQE
# AwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIftJqhSobyhmYBAcnz1AQ
# T2ioojAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQwFAAOCAgEAr2rd5hnn
# LZRDGU7L6VCVZKUDkQKL4jaAOxWiUsIWGbZqWl10QzD0m/9gdAmxIR6QFm3FJI9c
# Zohj9E/MffISTEAQiwGf2qnIrvKVG8+dBetJPnSgaFvlVixlHIJ+U9pW2UYXeZJF
# xBA2CFIpF8svpvJ+1Gkkih6PsHMNzBxKq7Kq7aeRYwFkIqgyuH4yKLNncy2RtNwx
# AQv3Rwqm8ddK7VZgxCwIo3tAsLx0J1KH1r6I3TeKiW5niB31yV2g/rarOoDXGpc8
# FzYiQR6sTdWD5jw4vU8w6VSp07YEwzJ2YbuwGMUrGLPAgNW3lbBeUU0i/OxYqujY
# lLSlLu2S3ucYfCFX3VVj979tzR/SpncocMfiWzpbCNJbTsgAlrPhgzavhgplXHT2
# 6ux6anSg8Evu75SjrFDyh+3XOjCDyft9V77l4/hByuVkrrOj7FjshZrM77nq81YY
# uVxzmq/FdxeDWds3GhhyVKVB0rYjdaNDmuV3fJZ5t0GNv+zcgKCf0Xd1WF81E+Al
# GmcLfc4l+gcK5GEh2NQc5QfGNpn0ltDGFf5Ozdeui53bFv0ExpK91IjmqaOqu/dk
# ODtfzAzQNb50GQOmxapMomE2gj4d8yu8l13bS3g7LfU772Aj6PXsCyM2la+YZr9T
# 03u4aUoqlmZpxJTG9F9urJh4iIAGXKKy7aIwggalMIIEjaADAgECAhMzAAaUWe5z
# +vRUV1LQAAAABpRZMA0GCSqGSIb3DQEBDAUAMFoxCzAJBgNVBAYTAlVTMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJ
# RCBWZXJpZmllZCBDUyBFT0MgQ0EgMDQwHhcNMjYwOTIwMTYzODA1WhcNMjYwOTIz
# MTYzODA1WjBoMQswCQYDVQQGEwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDEP
# MA0GA1UEBxMGSGVpbG9vMRcwFQYDVQQKEw5BcHBWZW50aVggQi5WLjEXMBUGA1UE
# AxMOQXBwVmVudGlYIEIuVi4wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB
# gQCSNxT5K2Gismucj1ubr+xlIYMEsmvq+X9oZGFTTldTcCbYWCBL9DWTLN8ySd+T
# TpHhO+Jbqd2LdXft477h4bGDwwSfBBw59ErjBr/FOFMeDAopnRIEuJVWssRLVVrK
# QipBLfDK7x7IV/WumONQvounLOT9BeLHTk2cmDK2ZNXdCW58efmSs9Cy3QgOxQj5
# kQ+zkZKjEy7RQXcbN24y+ggHmkEcTkTrizEHUBL0UNvjGSbz3DUQxnWGQb7gxdd0
# bxpJGgWEMUsfi8Z61QBwp0gN0KFArE/YeKI3O2Uafor9MC3PZDUTOE4ms3+aREA3
# H2Ps03Df7RH7ST2gKIYCXuyV/wimHNxU4ssijrMPZkj5c3pAA1gJ3hQ6I8jYKSW3
# RtnPL1YQkBVVtq3ZxUl0hCb0ME5tFcB8Fl9ca5WObf7ep0IYltcoRbzF6Oz7t+iO
# W90LKE9OwNYChEZ9fs1+FoVy9FHZDsFDEsKjVUlz7UCKvAepaZ2zfsJTyv7W3d53
# xMcCAwEAAaOCAdQwggHQMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMDsG
# A1UdJQQ0MDIGCisGAQQBgjdhAQAGCCsGAQUFBwMDBhorBgEEAYI3YaL8yC6uh9F6
# gZ2lyVCBwcKCJzAdBgNVHQ4EFgQUUw8WKOnVo/YRKJgvP8Gaxi+b9zwwHwYDVR0j
# BBgwFoAUmvFUd3UMhxY3RqCs3nn59H/BeOkwZwYDVR0fBGAwXjBcoFqgWIZWaHR0
# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwSUQl
# MjBWZXJpZmllZCUyMENTJTIwRU9DJTIwQ0ElMjAwNC5jcmwwdAYIKwYBBQUHAQEE
# aDBmMGQGCCsGAQUFBzAChlhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz
# L2NlcnRzL01pY3Jvc29mdCUyMElEJTIwVmVyaWZpZWQlMjBDUyUyMEVPQyUyMENB
# JTIwMDQuY3J0MFQGA1UdIARNMEswSQYEVR0gADBBMD8GCCsGAQUFBwIBFjNodHRw
# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0w
# DQYJKoZIhvcNAQEMBQADggIBAGQIvhCWFyyFmomYNOAy+UqXlo6x75UCOwL31EKv
# zTRVwsvyqRZ2RTEonjRG2XjIIVJfOBU0mepTAt98oC6djuoEczv6sY6dQ5xTOK5O
# 72oYp1pi6BMmOUZOEmUcsc1H6nxbqCX5eNnHACf4Th6MlMbQhZb9h4bMt6XJeNpw
# 9XhRa+vY/NZ73aPviwS+PmhFlUSv25cN2yV8/fJ7x4LDgt29Bd6n7ZmJDhul+dZO
# /1lGRBLeI47WhC5YRLRskpi9GXjU8WM8bm+BhORTzePftBabXRhcWznIU4Mxn1sG
# 9PPqbqgHNgxInoP6LjMu8pfFLoTpwYQ0z5ac4vMEmQZh+wJA5OgBk9w3HNf073Ed
# 0/zqRrhJ+aGik6nB3bofbVgAyLD8zPKOsIr3O+ST7DDae9jMjQ+4Td/kR5EZDPSz
# 2kLqcs+LhYbVhs/R+hKrbVH1fjylMTjedWpR7Vd2BGpgmXM0MWtoaHTONuFBR66d
# fO3O4NKTC3nNymkY/S74BQd1z0mFyV6MyyO7J/tR4wwaB7rwQqOtrHZPJOTymEdI
# KhEdfM1wD8cUKRP1saEmb3nt26+8J1w3X2hI1lNGELKVlKTtQsFTn8zIFj8Dk2AQ
# vBP7GFWrd7alDTmev0QNPnnxA6vWM/P5A1plXiuj8pJ/OnTG08eZF+9esuNn3LQQ
# rOX8MIIGpTCCBI2gAwIBAgITMwAGlFnuc/r0VFdS0AAAAAaUWTANBgkqhkiG9w0B
# AQwFADBaMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
# aW9uMSswKQYDVQQDEyJNaWNyb3NvZnQgSUQgVmVyaWZpZWQgQ1MgRU9DIENBIDA0
# MB4XDTI2MDkyMDE2MzgwNVoXDTI2MDkyMzE2MzgwNVowaDELMAkGA1UEBhMCTkwx
# FjAUBgNVBAgTDU5vb3JkLUhvbGxhbmQxDzANBgNVBAcTBkhlaWxvbzEXMBUGA1UE
# ChMOQXBwVmVudGlYIEIuVi4xFzAVBgNVBAMTDkFwcFZlbnRpWCBCLlYuMIIBojAN
# BgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAkjcU+SthorJrnI9bm6/sZSGDBLJr
# 6vl/aGRhU05XU3Am2FggS/Q1kyzfMknfk06R4TviW6ndi3V37eO+4eGxg8MEnwQc
# OfRK4wa/xThTHgwKKZ0SBLiVVrLES1VaykIqQS3wyu8eyFf1rpjjUL6Lpyzk/QXi
# x05NnJgytmTV3QlufHn5krPQst0IDsUI+ZEPs5GSoxMu0UF3GzduMvoIB5pBHE5E
# 64sxB1AS9FDb4xkm89w1EMZ1hkG+4MXXdG8aSRoFhDFLH4vGetUAcKdIDdChQKxP
# 2HiiNztlGn6K/TAtz2Q1EzhOJrN/mkRANx9j7NNw3+0R+0k9oCiGAl7slf8Iphzc
# VOLLIo6zD2ZI+XN6QANYCd4UOiPI2Cklt0bZzy9WEJAVVbat2cVJdIQm9DBObRXA
# fBZfXGuVjm3+3qdCGJbXKEW8xejs+7fojlvdCyhPTsDWAoRGfX7NfhaFcvRR2Q7B
# QxLCo1VJc+1AirwHqWmds37CU8r+1t3ed8THAgMBAAGjggHUMIIB0DAMBgNVHRMB
# Af8EAjAAMA4GA1UdDwEB/wQEAwIHgDA7BgNVHSUENDAyBgorBgEEAYI3YQEABggr
# BgEFBQcDAwYaKwYBBAGCN2Gi/MgurofReoGdpclQgcHCgicwHQYDVR0OBBYEFFMP
# Fijp1aP2ESiYLz/BmsYvm/c8MB8GA1UdIwQYMBaAFJrxVHd1DIcWN0agrN55+fR/
# wXjpMGcGA1UdHwRgMF4wXKBaoFiGVmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w
# a2lvcHMvY3JsL01pY3Jvc29mdCUyMElEJTIwVmVyaWZpZWQlMjBDUyUyMEVPQyUy
# MENBJTIwMDQuY3JsMHQGCCsGAQUFBwEBBGgwZjBkBggrBgEFBQcwAoZYaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBJRCUy
# MFZlcmlmaWVkJTIwQ1MlMjBFT0MlMjBDQSUyMDA0LmNydDBUBgNVHSAETTBLMEkG
# BFUdIAAwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br
# aW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMA0GCSqGSIb3DQEBDAUAA4ICAQBkCL4Q
# lhcshZqJmDTgMvlKl5aOse+VAjsC99RCr800VcLL8qkWdkUxKJ40Rtl4yCFSXzgV
# NJnqUwLffKAunY7qBHM7+rGOnUOcUziuTu9qGKdaYugTJjlGThJlHLHNR+p8W6gl
# +XjZxwAn+E4ejJTG0IWW/YeGzLelyXjacPV4UWvr2PzWe92j74sEvj5oRZVEr9uX
# DdslfP3ye8eCw4LdvQXep+2ZiQ4bpfnWTv9ZRkQS3iOO1oQuWES0bJKYvRl41PFj
# PG5vgYTkU83j37QWm10YXFs5yFODMZ9bBvTz6m6oBzYMSJ6D+i4zLvKXxS6E6cGE
# NM+WnOLzBJkGYfsCQOToAZPcNxzX9O9xHdP86ka4SfmhopOpwd26H21YAMiw/Mzy
# jrCK9zvkk+ww2nvYzI0PuE3f5EeRGQz0s9pC6nLPi4WG1YbP0foSq21R9X48pTE4
# 3nVqUe1XdgRqYJlzNDFraGh0zjbhQUeunXztzuDSkwt5zcppGP0u+AUHdc9Jhcle
# jMsjuyf7UeMMGge68EKjrax2TyTk8phHSCoRHXzNcA/HFCkT9bGhJm957duvvCdc
# N19oSNZTRhCylZSk7ULBU5/MyBY/A5NgELwT+xhVq3e2pQ05nr9EDT558QOr1jPz
# +QNaZV4ro/KSfzp0xtPHmRfvXrLjZ9y0EKzl/DCCBygwggUQoAMCAQICEzMAAAAX
# J0UJC4uHr8YAAAAAABcwDQYJKoZIhvcNAQEMBQAwYzELMAkGA1UEBhMCVVMxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE0MDIGA1UEAxMrTWljcm9zb2Z0
# IElEIFZlcmlmaWVkIENvZGUgU2lnbmluZyBQQ0EgMjAyMTAeFw0yNjAzMjYxODEx
# MzFaFw0zMTAzMjYxODExMzFaMFoxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJRCBWZXJpZmll
# ZCBDUyBFT0MgQ0EgMDQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCC
# x2T+Aw9mKgGVzJ+Tq0PMn49G3itIsYpbx7ClLSRHFe1RELdPcZ1sIqWOhsSfy6yy
# qEapClGH9Je9FXA1cQgZvvpQbkg+QInVLr/0EPrVBCwrM96lbRI2PxNeCwXG9Lsy
# W2hG6KQgintDmNCBo4zpDIr377plVdSliZm6UB7rHwmvBnR02QT6tnrqWq2ihzB6
# lRJVTEzuh0OafzIMeMnYM0+x+ve5EOLHdfiq+HXiMf9Jb7YLHtYgyHIiJA7bTWLq
# FSLGaTh7ZlbxbsLXA91OOroEpv7OjzFuu3tkpC9FflA4Dp2Euq4+qPmxUqfGp+TX
# 0gLRJp9NJOzzILjcTD3rkFFFbxUv1xyg6avivFDLtoKBhM2Td138umE1pNOacanu
# SYtPHIeQHmB6haFi64avLBLwTTAm/Rbit860cFXR72wq+5Qh4hSmezHqKXERWPpV
# Be+APrJ4Iqc+aPeMmIkoCWZQO22HnLNFUFSXjiwyIbgvlH/LIAJEqTafTzxDZgKh
# lLU7zr6gwsq3WNpcYQI6NuxWnwh3VVDDyF7onQqKs5Ll7bleVN0Y8VvqgE45ppyB
# bvwqN/Run5fMCCRz3aYMY0kZhKO92eP7t4zHqZ5bQMAgZ0tE2Pz/jb0wiykUF/Pc
# oOqqk3vVLiRDYst6vd3GEMNzMpUUvQcvBG46+COIbwIDAQABo4IB3DCCAdgwDgYD
# VR0PAQH/BAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBSa8VR3dQyH
# FjdGoKzeefn0f8F46TBUBgNVHSAETTBLMEkGBFUdIAAwQTA/BggrBgEFBQcCARYz
# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku
# aHRtMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMBIGA1UdEwEB/wQIMAYBAf8C
# AQAwHwYDVR0jBBgwFoAU2UEpsA8PY2zvadf1zSmepEhqMOYwcAYDVR0fBGkwZzBl
# oGOgYYZfaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9z
# b2Z0JTIwSUQlMjBWZXJpZmllZCUyMENvZGUlMjBTaWduaW5nJTIwUENBJTIwMjAy
# MS5jcmwwfQYIKwYBBQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMElEJTIwVmVyaWZp
# ZWQlMjBDb2RlJTIwU2lnbmluZyUyMFBDQSUyMDIwMjEuY3J0MA0GCSqGSIb3DQEB
# DAUAA4ICAQCQdVoZ/U0m38l2iKaZFlsxavptpoOLyaR1a9ZK2TSF1kOnFJhMDse6
# KkCgsveoiEjXTVc6Xt86IKHn76Nk5qZB0BXv2iMRQ2giAJmYvZcmstoZqfB2M3Kd
# 5wnJhUJOtF/b6HsqSelY6nhrF06zor1lDmDQixBZcLB9zR1+RKQso1jekNxYuUk+
# HaN3k1S57qk0O//YbkwU0mELCW04N5vICMZx5T5c7Nq/7uLvbVhCdD7f2bZpA4U7
# vOkB1ooB4AaER3pjoJ0Mad5LFyi6Na9p9Zu/hrLeOjU5FItS5YxsqvlfXxAThJ17
# 6CmkYstKRmytSHZ7JhKRfV6e9Zftk/ODb/CK4pGVAVqsOf4337bQGrOHHCQ3IvN9
# gmnUuDh8JdvbheoWPHxIN1GB5sUiY584tXN7xdD8LCSsRqJvQ8e7a3gZWTgViugR
# s1QWq+N0G9Nje6JHlN1CjJehge+H5PGktJja+juGEr0P+ukSkcL6qaZxFQTh3SDI
# 71lvW++3bl/Ezd6SO8N9Udw+reoyvRHCyTiSsplZQSBTVJdPmo3qCpGuyHFtPo5C
# Bn3/FPTiqJd3M9BHoqKd0G9Kmg6fGcAvFwnLNXA2kov727wRljL3ypfqL7iAT/Yn
# pxul6RwHRlcOf9dDGg1RRvr92NP/CWVXIb68geR2rvU/NsfmtjF1wDCCB54wggWG
# oAMCAQICEzMAAAAHh6M0o3uljhwAAAAAAAcwDQYJKoZIhvcNAQEMBQAwdzELMAkG
# A1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjFIMEYGA1UE
# AxM/TWljcm9zb2Z0IElkZW50aXR5IFZlcmlmaWNhdGlvbiBSb290IENlcnRpZmlj
# YXRlIEF1dGhvcml0eSAyMDIwMB4XDTIxMDQwMTIwMDUyMFoXDTM2MDQwMTIwMTUy
# MFowYzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjE0MDIGA1UEAxMrTWljcm9zb2Z0IElEIFZlcmlmaWVkIENvZGUgU2lnbmluZyBQ
# Q0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALLwwK8ZiCji
# 3VR6TElsaQhVCbRS/3pK+MHrJSj3Zxd3KU3rlfL3qrZilYKJNqztA9OQacr1AwoN
# cHbKBLbsQAhBnIB34zxf52bDpIO3NJlfIaTE/xrweLoQ71lzCHkD7A4As1Bs076I
# u+mA6cQzsYYH/Cbl1icwQ6C65rU4V9NQhNUwgrx9rGQ//h890Q8JdjLLw0nV+ayQ
# 2Fbkd242o9kH82RZsH3HEyqjAB5a8+Ae2nPIPc8sZU6ZE7iRrRZywRmrKDp5+Tcm
# JX9MRff241UaOBs4NmHOyke8oU1TYrkxh+YeHgfWo5tTgkoSMoayqoDpHOLJs+qG
# 8Tvh8SnifW2Jj3+ii11TS8/FGngEaNAWrbyfNrC69oKpRQXY9bGH6jn9NEJv9weF
# xhTwyvx9OJLXmRGbAUXN1U9nf4lXezky6Uh/cgjkVd6CGUAf0K+Jw+GE/5VpIVbc
# Nr9rNE50Sbmy/4RTCEGvOq3GhjITbCa4crCzTTHgYYjHs1NbOc6brH+eKpWLtr+b
# Gecy9CrwQyx7S/BfYJ+ozst7+yZtG2wR461uckFu0t+gCwLdN0A6cFtSRtR8bvxV
# FyWwTtgMMFRuBa3vmUOTnfKLsLefRaQcVTgRnzeLzdpt32cdYKp+dhr2ogc+qM6K
# 4CBI5/j4VFyC4QFeUP2YAidLtvpXRRo3AgMBAAGjggI1MIICMTAOBgNVHQ8BAf8E
# BAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFNlBKbAPD2Ns72nX9c0p
# nqRIajDmMFQGA1UdIARNMEswSQYEVR0gADBBMD8GCCsGAQUFBwIBFjNodHRwOi8v
# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wGQYJ
# KwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
# GDAWgBTIftJqhSobyhmYBAcnz1AQT2ioojCBhAYDVR0fBH0wezB5oHegdYZzaHR0
# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwSWRl
# bnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRo
# b3JpdHklMjAyMDIwLmNybDCBwwYIKwYBBQUHAQEEgbYwgbMwgYEGCCsGAQUFBzAC
# hnVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29m
# dCUyMElkZW50aXR5JTIwVmVyaWZpY2F0aW9uJTIwUm9vdCUyMENlcnRpZmljYXRl
# JTIwQXV0aG9yaXR5JTIwMjAyMC5jcnQwLQYIKwYBBQUHMAGGIWh0dHA6Ly9vbmVv
# Y3NwLm1pY3Jvc29mdC5jb20vb2NzcDANBgkqhkiG9w0BAQwFAAOCAgEAfyUqnv7U
# q+rdZgrbVyNMul5skONbhls5fccPlmIbzi+OwVdPQ4H55v7VOInnmezQEeW4LqK0
# wja+fBznANbXLB0KrdMCbHQpbLvG6UA/Xv2pfpVIE1CRFfNF4XKO8XYEa3oW8oVH
# +KZHgIQRIwAbyFKQ9iyj4aOWeAzwk+f9E5StNp5T8FG7/VEURIVWArbAzPt9ThVN
# 3w1fAZkF7+YU9kbq1bCR2YD+MtunSQ1Rft6XG7b4e0ejRA7mB2IoX5hNh3UEauY0
# byxNRG+fT2MCEhQl9g2i2fs6VOG19CNep7SquKaBjhWmirYyANb0RJSLWjinMLXN
# OAga10n8i9jqeprzSMU5ODmrMCJE12xS/NWShg/tuLjAsKP6SzYZ+1Ry358ZTFcx
# 0FS/mx2vSoU8s8HRvy+rnXqyUJ9HBqS0DErVLjQwK8VtsBdekBmdTbQVoCgPCqr+
# PDPB3xajYnzevs7eidBsM71PINK2BoE2UfMwxCCX3mccFgx6UsQeRSdVVVNSyALQ
# e6PT12418xon2iDGE81OGCreLzDcMAZnrUAx4XQLUz6ZTl65yPUiOh3k7Yww94lD
# f+8oG2oZmDh5O1Qe38E+M3vhKwmzIeoB1dVLlz4i3IpaDcR+iuGjH2TdaC1ZOmBX
# iCRKJLj4DT2uhJ04ji+tHD6n58vhavFIrmcxghcyMIIXLgIBATBxMFoxCzAJBgNV
# BAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMT
# Ik1pY3Jvc29mdCBJRCBWZXJpZmllZCBDUyBFT0MgQ0EgMDQCEzMABpRZ7nP69FRX
# UtAAAAAGlFkwDQYJYIZIAWUDBAIBBQCgXjAQBgorBgEEAYI3AgEMMQIwADAZBgkq
# hkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAvBgkqhkiG9w0BCQQxIgQgl2fUIuylGoYJ
# tSaOHdk1mpbXKNiTdnZdVYP2bpU+vrgwDQYJKoZIhvcNAQEBBQAEggGAEflG07mI
# Khi54ccTSDu/1AjczKaILl2TYcAsYttX0OjCyZqjy3QhHhx94j0LxgpwwdBfRmRM
# 6JZ32PuDM4UvrjdTuYgqcNPH3/VnsP9RiiKnYYVG329je4z/mpn0xjCqVTaignlE
# EpTNVO3p+1xFAf7BGVIF8HLXd/9nUN4nQhswNufOB+4oOFivPXbVAD8+MJ2MPNgA
# OagYiMy9GCWS5CkOzx3wAXjstZwSnVuvpOFri12/Lnaw6wh7XpB+w5giw3tX719+
# i3zGMtz0HaHN7sIq9QcsWY8HyNfTIVa8Ca9fdBfKXlAuu1SK5PnGdKJjy+SbT74n
# RuZ6Qb/pvaLyV481UqrZ5x9LcqEIPuDeixN7/4eeOGttCdSw2KjNb0HpHeYHzH5i
# bdA4Rqr6gabG+FAiSLgpUSFJg64VZuFE383boLkLF8/yaEZhuVlg+M77+MuGQ4H6
# o5lotjCr9BPuCWx6s205hiS4IlQmODquSPkwzolxu70axckwX37ROzF2oYIUsjCC
# FK4GCisGAQQBgjcDAwExghSeMIIUmgYJKoZIhvcNAQcCoIIUizCCFIcCAQMxDzAN
# BglghkgBZQMEAgEFADCCAWoGCyqGSIb3DQEJEAEEoIIBWQSCAVUwggFRAgEBBgor
# BgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAEIEBkTuHcS3V3WBp/RTKijSPTnQNC
# CjhAJosm+aPmYpqhAgZqmsvf3BoYEzIwMjYwOTIyMTIzNTI4LjI2NlowBIACAfSg
# gemkgeYwgeMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTAr
# BgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUG
# A1UECxMeblNoaWVsZCBUU1MgRVNOOjdBMUEtMDVFMC1EOTQ3MTUwMwYDVQQDEyxN
# aWNyb3NvZnQgUHVibGljIFJTQSBUaW1lIFN0YW1waW5nIEF1dGhvcml0eaCCDykw
# ggeCMIIFaqADAgECAhMzAAAABeXPD/9mLsmHAAAAAAAFMA0GCSqGSIb3DQEBDAUA
# MHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# SDBGBgNVBAMTP01pY3Jvc29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBD
# ZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAyMDAeFw0yMDExMTkyMDMyMzFaFw0zNTEx
# MTkyMDQyMzFaMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
# cG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFt
# cGluZyBDQSAyMDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnnzn
# UmP94MWfBX1jtQYioxwe1+eXM9ETBb1lRkd3kcFdcG9/sqtDlwxKoVIcaqDb+omF
# io5DHC4RBcbyQHjXCwMk/l3TOYtgoBjxnG/eViS4sOx8y4gSq8Zg49REAf5huXhI
# kQRKe3Qxs8Sgp02KHAznEa/Ssah8nWo5hJM1xznkRsFPu6rfDHeZeG1Wa1wISvlk
# pOQooTULFm809Z0ZYlQ8Lp7i5F9YciFlyAKwn6yjN/kR4fkquUWfGmMopNq/B8U/
# pdoZkZZQbxNlqJOiBGgCWpx69uKqKhTPVi3gVErnc/qi+dR8A2MiAz0kN0nh7SqI
# NGbmw5OIRC0EsZ31WF3Uxp3GgZwetEKxLms73KG/Z+MkeuaVDQQheangOEMGJ4pQ
# ZH55ngI0Tdy1bi69INBV5Kn2HVJo9XxRYR/JPGAaM6xGl57Ei95HUw9NV/uC3yFj
# rhc087qLJQawSC3xzY/EXzsT4I7sDbxOmM2rl4uKK6eEpurRduOQ2hTkmG1hSuWY
# BunFGNv21Kt4N20AKmbeuSnGnsBCd2cjRKG79+TX+sTehawOoxfeOO/jR7wo3liw
# kGdzPJYHgnJ54UxbckF914AqHOiEV7xTnD1a69w/UTxwjEugpIPMIIE67SFZ2PMo
# 27xjlLAHWW3l1CEAFjLNHd3EQ79PUr8FUXetXr0CAwEAAaOCAhswggIXMA4GA1Ud
# DwEB/wQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUa2koOjUvSGNA
# z3vYr0npPtk92yEwVAYDVR0gBE0wSzBJBgRVHSAAMEEwPwYIKwYBBQUHAgEWM2h0
# dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0
# bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMA
# QTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFMh+0mqFKhvKGZgEByfPUBBP
# aKiiMIGEBgNVHR8EfTB7MHmgd6B1hnNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v
# cGtpb3BzL2NybC9NaWNyb3NvZnQlMjBJZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUy
# MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMjAuY3JsMIGUBggr
# BgEFBQcBAQSBhzCBhDCBgQYIKwYBBQUHMAKGdWh0dHA6Ly93d3cubWljcm9zb2Z0
# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwSWRlbnRpdHklMjBWZXJpZmlj
# YXRpb24lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDIwLmNy
# dDANBgkqhkiG9w0BAQwFAAOCAgEAX4h2x35ttVoVdedMeGj6TuHYRJklFaW4sTQ5
# r+k77iB79cSLNe+GzRjv4pVjJviceW6AF6ycWoEYR0LYhaa0ozJLU5Yi+LCmcrdo
# vkl53DNt4EXs87KDogYb9eGEndSpZ5ZM74LNvVzY0/nPISHz0Xva71QjD4h+8z2X
# MOZzY7YQ0Psw+etyNZ1CesufU211rLslLKsO8F2aBs2cIo1k+aHOhrw9xw6JCWON
# NboZ497mwYW5EfN0W3zL5s3ad4Xtm7yFM7Ujrhc0aqy3xL7D5FR2J7x9cLWMq7eb
# 0oYioXhqV2tgFqbKHeDick+P8tHYIFovIP7YG4ZkJWag1H91KlELGWi3SLv10o4K
# Gag42pswjybTi4toQcC/irAodDW8HNtX+cbz0sMptFJK+KObAnDFHEsukxD+7jFf
# EV9Hh/+CSxKRsmnuiovCWIOb+H7DRon9TlxydiFhvu88o0w35JkNbJxTk4MhF/Kg
# aXn0GxdH8elEa2Imq45gaa8D+mTm8LWVydt4ytxYP/bqjN49D9NZ81coE6aQWm88
# TwIf4R4YZbOpMKN0CyejaPNN41LGXHeCUMYmBx3PkP8ADHD1J2Cr/6tjuOOCztfp
# +o9Nc+ZoIAkpUcA/X2gSMkgHAPUvIdtoSAHEUKiBhI6JQivRepyvWcl+JYbYbBh7
# pmgAXVswggefMIIFh6ADAgECAhMzAAAAW0q1jUEybdx0AAAAAABbMA0GCSqGSIb3
# DQEBDAUAMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGlu
# ZyBDQSAyMDIwMB4XDTI2MDEwODE4NTkwNVoXDTI3MDEwNzE4NTkwNVowgeMxCzAJ
# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv
# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs
# ZCBUU1MgRVNOOjdBMUEtMDVFMC1EOTQ3MTUwMwYDVQQDEyxNaWNyb3NvZnQgUHVi
# bGljIFJTQSBUaW1lIFN0YW1waW5nIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEB
# BQADggIPADCCAgoCggIBAJBUzBbbnlDXee0B0KD5G4/475thFyfctCyuESTWQXvl
# Li4Wx/td2qUdeq4ideeg6VWhiOHfu3wJV4TUGSRtqh9Ccr1BmiBKv9iuFpgHyIBu
# 5Qx38ZsxwlFeXVS+ZqJJKnXRbDNQdcYSoC/6c0hQJ/PH50DBRDQkPXVwyFizLrRH
# 9AlrJeUg7BKeT23zftS8/KOJLvEEbHOF6pSOY3ZVprZUWbWjWwRTmoHaQ/E8vrWt
# LNyEJ+b089VW1Ikra3t4GTB5Wby3CL1K2zYnAxBIvafsKMFyj9OuXHcTPKMDoFSM
# eamG9MKOMb6uoG1PjdnDgsLP6EOMRSzrLL7jED1mbB9RSd9fhty+HQr6vZgsBn6o
# Uy+YTpNVLskwdtUM82WYAkPztlOt3AiL0qyV7/U3j/uq3vHMjPM0w0340M57Nei0
# g4BCcMt0dbqoc91VgCb3/36sHQANontn1HOF2oLk8190QRS43isHVra8H8sf5+Gl
# qIYsYiCKX04HZiOzZW826nVI6d++8lyTeWmpj90Ua9uPbJhVjwE3oh6tO510ySqm
# SMSLEN07p3Ibe3E6BAb2w93rWzb26+dpSthbKF4kApofqBsWPX4MEtHKSOftPmVT
# CQ47tghrVuHia9jY+Hsj01m4KW4WtkmVm3L6hMZECMa4sjMxAXz+bX/AJhWTe6TZ
# AgMBAAGjggHLMIIBxzAdBgNVHQ4EFgQU7/LqUlWWYhXJdXwgYKx4b8Gv0rYwHwYD
# VR0jBBgwFoAUa2koOjUvSGNAz3vYr0npPtk92yEwbAYDVR0fBGUwYzBhoF+gXYZb
# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw
# UHVibGljJTIwUlNBJTIwVGltZXN0YW1waW5nJTIwQ0ElMjAyMDIwLmNybDB5Bggr
# BgEFBQcBAQRtMGswaQYIKwYBBQUHMAKGXWh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
# bS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwUHVibGljJTIwUlNBJTIwVGltZXN0
# YW1waW5nJTIwQ0ElMjAyMDIwLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQM
# MAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDBmBgNVHSAEXzBdMFEGDCsGAQQB
# gjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v
# cGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wCAYGZ4EMAQQCMA0GCSqGSIb3DQEB
# DAUAA4ICAQAAH+zd+XKh4OxXYMWFmtgilXAQGctOjCUB1w/uBiC/OXcH3Ia4/Xbd
# UhKzFbaiTbIE6vYZKd1p4u7nKOLkawymAMVyuO7LSl6rLKttZIyLhWjTK0zXOz0u
# 4xLq9+bRtBEKJvA6sD5nJwH1IO6z1YizyuIRoalMCnbrUixfWxQn4TAmN7t9uk+X
# 2FUThEa3ewzRwhtG+xwaAbLMkxRmR24JnfXd1VxKo90+m7Wzuov96Uugx5wZdewi
# IIm1ZWTj4lCJHup679LcOa7tAxJMipVaSltQH9fm9TOKczlfxtWuBcLU4duZfqwg
# sILsH7PMkcX1zwQzQD0yAtPhnYz9KNG125bX+iilOe1S8RHqv2bbBpMpao4kcUvQ
# I6dMgKRvFmm1eLbhSNOQplDMTGD1tNVdNGkI96jUu+troUjWMMi46TQfBAHxtDTp
# RhIu/87vAVQ8Z6RHhFxesz4Ed5JThaIQRAy6GcO/Jk+QzDzoZ0arRIkIsGJ7rZgO
# VAjx9ctfw8lH9RfjcwB3wdGBYNMNVJqQpUai2Taddf5pXzTZEHIqLEF53SrBjIeI
# noQrP7U5VlXiMQsxewLdINrAE2l2TR3KBikb+RQRygbTp8jj2yiC0NCUwG+K+ndg
# lN5RMbXjFW6aKa59Xq+b8XzK/DK+AJtgOpHgJv8Qrk62A+twOVLOpjGCA9QwggPQ
# AgEBMHgwYTELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
# dGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5n
# IENBIDIwMjACEzMAAABbSrWNQTJt3HQAAAAAAFswDQYJYIZIAWUDBAIBBQCgggEt
# MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgVx2j
# GAeNU1OXXw82WA/SyCBjL7UaK/2Z9uasmEiSkugwgd0GCyqGSIb3DQEJEAIvMYHN
# MIHKMIHHMIGgBCAvMQNVXZ0b0xxlGw8X/3IEybObuT6a5W1d61CW+cGD7zB8MGWk
# YzBhMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
# MTIwMAYDVQQDEylNaWNyb3NvZnQgUHVibGljIFJTQSBUaW1lc3RhbXBpbmcgQ0Eg
# MjAyMAITMwAAAFtKtY1BMm3cdAAAAAAAWzAiBCC8NMyCMnDR/NAY3CMzFDkJVJLQ
# HeMiaYstwo6awVZvKjANBgkqhkiG9w0BAQsFAASCAgA03OeXthFMMp3Ams/DpA9T
# I43dm37AttvHk0DD+ySC3vqFyvflRregUR9euKr5cjM2hH1Ca9w9k19xacC2esg6
# 02kGNtqAvFuu3VOJyq5biAF8/ghI8nkFKY5eftKmPSDs2Mzv3/BrTZEHf2PpZIrb
# 9/1dnkA6Xe+MlXPz0uSbqh4GLffZ/IqccmtPVcOuwmeEcN9P9hF99a9bkSQ5L3Y4
# ykI28T1EpRatlmr1vrYjOZeAyc1J7etm2HF933Z3rfxd4cN8SPTq8duWaZ7XR8BN
# unZlzlF6tiyuh25HAuOi9zTh/ssNuwwA83wheufWHRwjAPSk0pVZ9oyJ7701rzJR
# qLp/wkCXN7yFgVb6lrh8IRJbciFRN9N/62wSas3nAvxCYzVRTelyBJ/w2f73IbP5
# dkhjYLMYndQ6FtBoI8BWvcrEr29tOX55lI0HG/DERecqDvI+SJQLobzl/rwEuZAM
# z3cUloGj27ROl3GJZS3la4ywB1JXLoIPW7F623daae07VaqimtRym0CwqbQaVl4C
# Sgsg44sHTsk5Dfwx/nbNZgu5Lb+rK0zOEmX36g/mgS33tjHtGKTuPfV8TcKbAUpL
# 3IFAh/vtPa/ogzlaG8XsO9e8z18HwO3JZYcTIRk4lSthvBkh3MsrL+NBJ/E39STF
# TIpx7Oks0U6n26De6QrPSg==
# SIG # End signature block