PSIsonas/bin/PSIsonas.psm1
2024-12-17 15:26:19 -06:00

352 lines
39 KiB
PowerShell
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<#
.NOTES
--------------------------------------------------------------------------------
Code generated by: SAPIEN Technologies, Inc., PowerShell Studio 2024 v5.8.251 (L)
Generated on: 12/17/2024 12:44 PM
Generated by: Alexis Lazcano
Organization: Saratoga Corporate Management Group, LLC
--------------------------------------------------------------------------------
.DESCRIPTION
Script generated by PowerShell Studio 2024
#>
<#
===========================================================================
Created on: 12/17/2024 10:35 AM
Created by: Alexis Lazcano
Organization: Saratoga Corporate Management Group, LLC
Filename: PSIsonas.psm1
-------------------------------------------------------------------------
Module Name: PSIsonas
===========================================================================
#>
Function Get-IsonasRequestHeaders
{
$tokenPair = "$env:ISONAS_TokenID`:$env:ISONAS_TokenValue"
$tokenBase64 = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($tokenPair))
$Headers = @{
'Authorization' = "Basic $tokenBase64"
'Content-Type' = 'application/merge-patch+json'
}
return $Headers
}
function Test-IsonasConnection
{
$API_Users = $env:ISONAS_API_URL + "users"
$Response = Invoke-RestMethod -Uri "$API_Users/?includeDisabled=false&limit=1" -Headers $(Get-IsonasRequestHeaders)
if ($Reponse.Status -eq "Success") { return $true }
else
{
return $false
}
}
function Get-IsonasUsers {
param
(
[Parameter(Position = 1)]
[switch]$All,
[Parameter(Mandatory = $false,
Position = 2)]
[ValidateNotNullOrEmpty()]
[int]$Limit = 200,
[Parameter(Position = 3)]
[bool]$IncludeDisabled = $false
)
$API_Users = $env:ISONAS_API_URL + "users"
if ($All)
{
Write-Host "All users was used"
$TargetUrl = "$API_Users/"
}
else
{
Write-Host "All users was NOT used"
$TargetUrl = "$API_Users/?includeDisabled=$IncludeDisabled&limit=$Limit"
}
$Response = Invoke-RestMethod -Uri $TargetUrl -Headers $(Get-IsonasRequestHeaders) -Method GET
$flattened = $response | ForEach-Object {
$obj = [PSCustomObject]@{
Id = $_.Id
CreatedTime = $_.createdTime
UpdatedTime = $_.updatedTime
FirstName = $_.firstName
LastName = $_.lastName
AreaID = $_.areaId
EmployeeId = $_.employeeId
IsDisabled = $_.isDisabled
}
foreach ($field in $_.userDefinedFields)
{
$propertyName = $field.name -replace '\s', ''
$obj | Add-Member -MemberType NoteProperty -Name $propertyName -Value $field.value
}
$obj
}
return $flattened
}
# SIG # Begin signature block
# MIIvYQYJKoZIhvcNAQcCoIIvUjCCL04CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBNUOmW6vy2zD09
# yivA3HbLWIeGGstB0thKyEVkLX5rsKCCKGYwggQyMIIDGqADAgECAgEBMA0GCSqG
# SIb3DQEBBQUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNo
# ZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1p
# dGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXMwHhcNMDQwMTAx
# MDAwMDAwWhcNMjgxMjMxMjM1OTU5WjB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
# R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFD
# b21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZp
# Y2VzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvkCd9G7h6naHHE1F
# RI6+RsiDBp3BKv4YH47kAvrzq11QihYxC5oG0MVwIs1JLVRjzLZuaEYLU+rLTCTA
# vHJO6vEVrvRUmhIKw3qyM2Di2olV8yJY897cz++DhqKMlE+faPKYkEaEJ8d2v+PM
# NSyLXgdkZYLASLCokflhn3YgUKiRx2a163hiA1bwihoT6jGjHqCZ/Tj29icyWG8H
# 9Wu4+xQrr7eqzNZjX3OM2gWZqDioyxd4NlGs6Z70eDqNzw/ZQuKYDKsvnw4B3u+f
# mUnxLd+sdE0bmLVHxeUp0fmQGMdinL6DxyZ7Poolx8DdneY1aBAgnY/Y3tLDhJwN
# XugvyQIDAQABo4HAMIG9MB0GA1UdDgQWBBSgEQojPpbxB+zirynvgqV/0DCktDAO
# BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zB7BgNVHR8EdDByMDigNqA0
# hjJodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
# LmNybDA2oDSgMoYwaHR0cDovL2NybC5jb21vZG8ubmV0L0FBQUNlcnRpZmljYXRl
# U2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQAIVvwC8Jvo/6T61nvGRIDO
# T8TF9gBYzKa2vBRJaAR26ObuXewCD2DWjVAYTyZOAePmsKXuv7x0VEG//fwSuMdP
# WvSJYAV/YLcFSvP28cK/xLl0hrYtfWvM0vNG3S/G4GrDwzQDLH2W3VrCDqcKmcEF
# i6sML/NcOs9sN1UJh95TQGxY7/y2q2VuBPYb3DzgWhXGntnxWUgwIWUDbOzpIXPs
# mwOh4DetoBUYj/q6As6nLKkQEyzU5QgmqyKXYPiQXnTUoppTvfKpaOCibsLXbLGj
# D56/62jnVvKu8uMrODoJgbVrhde+Le0/GreyY+L1YiyC1GoAQVDxOYOflek2lphu
# MIIFbzCCBFegAwIBAgIQSPyTtGBVlI02p8mKidaUFjANBgkqhkiG9w0BAQwFADB7
# MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
# VQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UE
# AwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTIxMDUyNTAwMDAwMFoXDTI4
# MTIzMTIzNTk1OVowVjELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGlt
# aXRlZDEtMCsGA1UEAxMkU2VjdGlnbyBQdWJsaWMgQ29kZSBTaWduaW5nIFJvb3Qg
# UjQ2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjeeUEiIEJHQu/xYj
# ApKKtq42haxH1CORKz7cfeIxoFFvrISR41KKteKW3tCHYySJiv/vEpM7fbu2ir29
# BX8nm2tl06UMabG8STma8W1uquSggyfamg0rUOlLW7O4ZDakfko9qXGrYbNzszwL
# DO/bM1flvjQ345cbXf0fEj2CA3bm+z9m0pQxafptszSswXp43JJQ8mTHqi0Eq8Nq
# 6uAvp6fcbtfo/9ohq0C/ue4NnsbZnpnvxt4fqQx2sycgoda6/YDnAdLv64IplXCN
# /7sVz/7RDzaiLk8ykHRGa0c1E3cFM09jLrgt4b9lpwRrGNhx+swI8m2JmRCxrds+
# LOSqGLDGBwF1Z95t6WNjHjZ/aYm+qkU+blpfj6Fby50whjDoA7NAxg0POM1nqFOI
# +rgwZfpvx+cdsYN0aT6sxGg7seZnM5q2COCABUhA7vaCZEao9XOwBpXybGWfv1Vb
# HJxXGsd4RnxwqpQbghesh+m2yQ6BHEDWFhcp/FycGCvqRfXvvdVnTyheBe6QTHrn
# xvTQ/PrNPjJGEyA2igTqt6oHRpwNkzoJZplYXCmjuQymMDg80EY2NXycuu7D1fkK
# dvp+BRtAypI16dV60bV/AK6pkKrFfwGcELEW/MxuGNxvYv6mUKe4e7idFT/+IAx1
# yCJaE5UZkADpGtXChvHjjuxf9OUCAwEAAaOCARIwggEOMB8GA1UdIwQYMBaAFKAR
# CiM+lvEH7OKvKe+CpX/QMKS0MB0GA1UdDgQWBBQy65Ka/zWWSC8oQEJwIDaRXBeF
# 5jAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zATBgNVHSUEDDAKBggr
# BgEFBQcDAzAbBgNVHSAEFDASMAYGBFUdIAAwCAYGZ4EMAQQBMEMGA1UdHwQ8MDow
# OKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0FBQUNlcnRpZmljYXRlU2Vy
# dmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29j
# c3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUAA4IBAQASv6Hvi3SamES4aUa1
# qyQKDKSKZ7g6gb9Fin1SB6iNH04hhTmja14tIIa/ELiueTtTzbT72ES+BtlcY2fU
# QBaHRIZyKtYyFfUSg8L54V0RQGf2QidyxSPiAjgaTCDi2wH3zUZPJqJ8ZsBRNraJ
# AlTH/Fj7bADu/pimLpWhDFMpH2/YGaZPnvesCepdgsaLr4CnvYFIUoQx2jLsFeSm
# TD1sOXPUC4U5IOCFGmjhp0g4qdE2JXfBjRkWxYhMZn0vY86Y6GnfrDyoXZ3JHFuu
# 2PMvdM+4fvbXg50RlmKarkUT2n/cR/vfw1Kf5gZV6Z2M8jpiUbzsJA8p1FiAhORF
# e1rYMIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAw
# TDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkds
# b2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcN
# MzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBS
# NjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIw
# DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss
# grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToV
# Bu1kZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRM
# IRxDaNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIf
# KtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfI
# WHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2
# HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH
# 8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+
# 7o/hbguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfnc
# BZ4nWUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWz
# jMpYrZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bon
# vzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
# BTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAW
# gBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9
# lVLNnsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3i
# EZGtIxg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5
# Mr6155wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm
# 8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/h
# pvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEa
# SHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1
# 0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TI
# vWfspA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt
# 9x+vJJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEg
# fn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJ
# wGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBAwggYaMIIEAqADAgECAhBiHW0MUgGe
# O5B5FSCJIRwKMA0GCSqGSIb3DQEBDAUAMFYxCzAJBgNVBAYTAkdCMRgwFgYDVQQK
# Ew9TZWN0aWdvIExpbWl0ZWQxLTArBgNVBAMTJFNlY3RpZ28gUHVibGljIENvZGUg
# U2lnbmluZyBSb290IFI0NjAeFw0yMTAzMjIwMDAwMDBaFw0zNjAzMjEyMzU5NTla
# MFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxKzApBgNV
# BAMTIlNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYwggGiMA0GCSqG
# SIb3DQEBAQUAA4IBjwAwggGKAoIBgQCbK51T+jU/jmAGQ2rAz/V/9shTUxjIztNs
# fvxYB5UXeWUzCxEeAEZGbEN4QMgCsJLZUKhWThj/yPqy0iSZhXkZ6Pg2A2NVDgFi
# gOMYzB2OKhdqfWGVoYW3haT29PSTahYkwmMv0b/83nbeECbiMXhSOtbam+/36F09
# fy1tsB8je/RV0mIk8XL/tfCK6cPuYHE215wzrK0h1SWHTxPbPuYkRdkP05ZwmRmT
# nAO5/arnY83jeNzhP06ShdnRqtZlV59+8yv+KIhE5ILMqgOZYAENHNX9SJDm+qxp
# 4VqpB3MV/h53yl41aHU5pledi9lCBbH9JeIkNFICiVHNkRmq4TpxtwfvjsUedyz8
# rNyfQJy/aOs5b4s+ac7IH60B+Ja7TVM+EKv1WuTGwcLmoU3FpOFMbmPj8pz44MPZ
# 1f9+YEQIQty/NQd/2yGgW+ufflcZ/ZE9o1M7a5Jnqf2i2/uMSWymR8r2oQBMdlyh
# 2n5HirY4jKnFH/9gRvd+QOfdRrJZb1sCAwEAAaOCAWQwggFgMB8GA1UdIwQYMBaA
# FDLrkpr/NZZILyhAQnAgNpFcF4XmMB0GA1UdDgQWBBQPKssghyi47G9IritUpimq
# F6TNDDAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADATBgNVHSUE
# DDAKBggrBgEFBQcDAzAbBgNVHSAEFDASMAYGBFUdIAAwCAYGZ4EMAQQBMEsGA1Ud
# HwREMEIwQKA+oDyGOmh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1Ymxp
# Y0NvZGVTaWduaW5nUm9vdFI0Ni5jcmwwewYIKwYBBQUHAQEEbzBtMEYGCCsGAQUF
# BzAChjpodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2RlU2ln
# bmluZ1Jvb3RSNDYucDdjMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdv
# LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEABv+C4XdjNm57oRUgmxP/BP6YdURhw1aV
# cdGRP4Wh60BAscjW4HL9hcpkOTz5jUug2oeunbYAowbFC2AKK+cMcXIBD0ZdOaWT
# syNyBBsMLHqafvIhrCymlaS98+QpoBCyKppP0OcxYEdU0hpsaqBBIZOtBajjcw5+
# w/KeFvPYfLF/ldYpmlG+vd0xqlqd099iChnyIMvY5HexjO2AmtsbpVn0OhNcWbWD
# RF/3sBp6fWXhz7DcML4iTAWS+MVXeNLj1lJziVKEoroGs9Mlizg0bUMbOalOhOfC
# ipnx8CaLZeVme5yELg09Jlo8BMe80jO37PU8ejfkP9/uPak7VLwELKxAMcJszkye
# iaerlphwoKx1uHRzNyE6bxuSKcutisqmKL5OTunAvtONEoteSiabkPVSZ2z76mKn
# zAfZxCl/3dq3dUNw4rg3sTCggkHSRqTqlLMS7gjrhTqBmzu1L90Y1KWN/Y5JKdGv
# spbOrTfOXyXvmPL6E52z1NZJ6ctuMFBQZH3pwWvqURR8AgQdULUvrxjUYbHHj95E
# jza63zdrEcxWLDX6xWls/GDnVNueKjWUH3fTv1Y8Wdho698YADR7TNx8X8z2Bev6
# SivBBOHY+uqiirZtg0y9ShQoPzmCcn63Syatatvx157YK9hlcPmVoa1oDE5/L9Uo
# 2bC5a4CH2RwwggY4MIIEoKADAgECAhAtmKdfiMvdO1IQbTd6fBa6MA0GCSqGSIb3
# DQEBDAUAMFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQx
# KzApBgNVBAMTIlNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYwHhcN
# MjQwNDExMDAwMDAwWhcNMjcwNDExMjM1OTU5WjBPMQswCQYDVQQGEwJVUzEOMAwG
# A1UECAwFVGV4YXMxFzAVBgNVBAoMDkFsZXhpcyBMYXpjYW5vMRcwFQYDVQQDDA5B
# bGV4aXMgTGF6Y2FubzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKg7
# hRQ9vDT0fbynZ5iB6fSigpiQUu9/AOptoquc28xEGm9sXZFRyAqr2Se7HsOztyQz
# av3TYDFTVvB3XexN5vDTI4qQvP2FzPxGYbQBkyrUUsPrfviw4+DuELXfMQ4Se0Aj
# MX8pyeP1UpgpRKCRBPIXrgqeMOfiXMkQHu9aoDUYmzj5LAWUCZjnv6mt/45NBmjg
# HZUsyDqXHfRflVrJaSfi1q5UN6t3f95TEFR7KBzbxL1QoQEgPWCdk7dx9acZ476c
# SNDpbir0m85dGsvinaiR1uy9/4vfg2V8d6ognxhhdg81ept4ZTU1cGnsvHRCKdYt
# jBCFFN/WZol4e30RqIZStbCZoLxHZBW5n664YT9MjBforwvqMwjXClpL/Q87kfvA
# omhVzOwQfT19/UF3Qg6tT0zFFSpuc34VjIqUqRh/LgQNDQKOdtvUiYivilti9wwa
# jKrM/6e4cfCFyvgVnLwD/7R0yj1gd1hFt8l7kYTB9ewEy2xHn8DnrnhDSQCHDQmy
# HrcTQ0YOwEF4dUEkX/3ndbANPuVxq4J/h+hglamlzU+NPuKGpIZvYuzZ+TwwbJD2
# IG/nvCdMiqKDKcqbUwyW/o2ko0kGmzax9eUn2tfBiomSZjfaW8OJHoar3eAqxFBa
# u1bShf6YMw7fMXZW1Kt0NLQ2KmaKx/0UhrSBVI5HAgMBAAGjggGJMIIBhTAfBgNV
# HSMEGDAWgBQPKssghyi47G9IritUpimqF6TNDDAdBgNVHQ4EFgQUcS7omwNXSFlA
# 3bp4Z+TA77cET3gwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwEwYDVR0l
# BAwwCgYIKwYBBQUHAwMwSgYDVR0gBEMwQTA1BgwrBgEEAbIxAQIBAwIwJTAjBggr
# BgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQQBMEkGA1Ud
# HwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1Ymxp
# Y0NvZGVTaWduaW5nQ0FSMzYuY3JsMHkGCCsGAQUFBwEBBG0wazBEBggrBgEFBQcw
# AoY4aHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljQ29kZVNpZ25p
# bmdDQVIzNi5jcnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29t
# MA0GCSqGSIb3DQEBDAUAA4IBgQCPbC4qjujf6ydVChUteYCIzuw/PSBV5dbEAJj7
# UgCGLY0WPVDr6zQQN/5CQPuP0LFPWrJQHC+AzPZB1BrSoq2CZyQczTjGhUyypDmw
# t3i7aA9xAuFvRadmeV0xKoI4mMxN08K1Dfhb8clfdTRxS86Z7ZSTphd5tr5PSv3t
# qf0LbmGgDTdaa+K6j0Pr9VddrxcHUlEnJ6mwS29ECnC2O7e8Hsnmi/CHgPzZPZkO
# I8CI7IAXDlYw0WgfCzRul4d5SZXCFbXawIL/zkFs1RM5R+FOuZqUpinAhkeolso/
# I17n1tfJzN3dpsxjLHlx9LNH3cV3T3SZojvcEcjazt1jXVVFW348qx6OwBFgJnVr
# +6V+Vq7xAieQfuiO5uREA931p3aS5yrbwc2MS7IbzINNfiNyXXPKZd1DsvAksxpd
# xVBm0LE90XfY02moC9NRkoeu6KK/rVVOT57EogBD/q5KiTYHpTYDpbFsvhrg2z/v
# d75vwMaV8vK2CC/vfh7z0ruXzn4wggZZMIIEQaADAgECAg0B7BySQN79LkBdfEd0
# MA0GCSqGSIb3DQEBDAUAMEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9vdCBDQSAt
# IFI2MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4X
# DTE4MDYyMDAwMDAwMFoXDTM0MTIxMDAwMDAwMFowWzELMAkGA1UEBhMCQkUxGTAX
# BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNVBAMTKEdsb2JhbFNpZ24gVGlt
# ZXN0YW1waW5nIENBIC0gU0hBMzg0IC0gRzQwggIiMA0GCSqGSIb3DQEBAQUAA4IC
# DwAwggIKAoICAQDwAuIwI/rgG+GadLOvdYNfqUdSx2E6Y3w5I3ltdPwx5HQSGZb6
# zidiW64HiifuV6PENe2zNMeswwzrgGZt0ShKwSy7uXDycq6M95laXXauv0SofEEk
# jo+6xU//NkGrpy39eE5DiP6TGRfZ7jHPvIo7bmrEiPDul/bc8xigS5kcDoenJuGI
# yaDlmeKe9JxMP11b7Lbv0mXPRQtUPbFUUweLmW64VJmKqDGSO/J6ffwOWN+BauGw
# bB5lgirUIceU/kKWO/ELsX9/RpgOhz16ZevRVqkuvftYPbWF+lOZTVt07XJLog2C
# NxkM0KvqWsHvD9WZuT/0TzXxnA/TNxNS2SU07Zbv+GfqCL6PSXr/kLHU9ykV1/kN
# XdaHQx50xHAotIB7vSqbu4ThDqxvDbm19m1W/oodCT4kDmcmx/yyDaCUsLKUzHvm
# Z/6mWLLU2EESwVX9bpHFu7FMCEue1EIGbxsY1TbqZK7O/fUF5uJm0A4FIayxEQYj
# GeT7BTRE6giunUlnEYuC5a1ahqdm/TMDAd6ZJflxbumcXQJMYDzPAo8B/XLukvGn
# Et5CEk3sqSbldwKsDlcMCdFhniaI/MiyTdtk8EWfusE/VKPYdgKVbGqNyiJc9gwE
# 4yn6S7Ac0zd0hNkdZqs0c48efXxeltY9GbCX6oxQkW2vV4Z+EDcdaxoU3wIDAQAB
# o4IBKTCCASUwDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
# VR0OBBYEFOoWxmnn48tXRTkzpPBAvtDDvWWWMB8GA1UdIwQYMBaAFK5sBaOTE+Ki
# 5+LXHNbH8H/IZ1OgMD4GCCsGAQUFBwEBBDIwMDAuBggrBgEFBQcwAYYiaHR0cDov
# L29jc3AyLmdsb2JhbHNpZ24uY29tL3Jvb3RyNjA2BgNVHR8ELzAtMCugKaAnhiVo
# dHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL3Jvb3QtcjYuY3JsMEcGA1UdIARAMD4w
# PAYEVR0gADA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNv
# bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQwFAAOCAgEAf+KI2VdnK0JfgacJC7rE
# uygYVtZMv9sbB3DG+wsJrQA6YDMfOcYWaxlASSUIHuSb99akDY8elvKGohfeQb9P
# 4byrze7AI4zGhf5LFST5GETsH8KkrNCyz+zCVmUdvX/23oLIt59h07VGSJiXAmd6
# FpVK22LG0LMCzDRIRVXd7OlKn14U7XIQcXZw0g+W8+o3V5SRGK/cjZk4GVjCqaF+
# om4VJuq0+X8q5+dIZGkv0pqhcvb3JEt0Wn1yhjWzAlcfi5z8u6xM3vreU0yD/RKx
# tklVT3WdrG9KyC5qucqIwxIwTrIIc59eodaZzul9S5YszBZrGM3kWTeGCSziRday
# zW6CdaXajR63Wy+ILj198fKRMAWcznt8oMWsr1EG8BHHHTDFUVZg6HyVPSLj1Qok
# UyeXgPpIiScseeI85Zse46qEgok+wEr1If5iEO0dMPz2zOpIJ3yLdUJ/a8vzpWuV
# HwRYNAqJ7YJQ5NF7qMnmvkiqK1XZjbclIA4bUaDUY6qD6mxyYUrJ+kPExlfFnbY8
# sIuwuRwx773vFNgUQGwgHcIt6AvGjW2MtnHtUiH+PvafnzkarqzSL3ogsfSsqh3i
# LRSd+pZqHcY8yvPZHL9TTaRHWXyVxENB+SXiLBB+gfkNlKd98rUJ9dhgckBQlSDU
# Q0S++qCV5yBZtnjGpGqqIpswggZ7MIIEY6ADAgECAhABB2SbCLCn/n3WVKjy9Cn2
# MA0GCSqGSIb3DQEBCwUAMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxT
# aWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIFRpbWVzdGFtcGluZyBDQSAt
# IFNIQTM4NCAtIEc0MB4XDTIzMTEwNzE3MTM0MFoXDTM0MTIwOTE3MTM0MFowbDEL
# MAkGA1UEBhMCQkUxGTAXBgNVBAoMEEdsb2JhbFNpZ24gbnYtc2ExQjBABgNVBAMM
# OUdsb2JhbHNpZ24gVFNBIGZvciBNUyBBdXRoZW50aWNvZGUgQWR2YW5jZWQgLSBH
# NCAtIDIwMjMxMTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALmomz6p
# ptxC00Gfik1DRwn5aIsT+3WPmVzKgEJh74664XHWR5CtmU1jA7bvqSaj+zbqbhRH
# 99dNRHSyKl6dMl8EaK+3yc9bCycvKE6C3o61s4n65xFJyCdAXpNvCSHG1l+Y87e6
# oUByrt0P384hQgRUOOrKIt0DuRqh4LcclyhzLCCNP2aydpnaOsn2cpZSdNh9ZW7g
# Im/+r0b9fq9OyImBMqGYK49357Kj1ZqfH9GDIE5N70w7UXuRI+GDSqJvuATmZBRL
# Ljt86bX9s242REA29b4h5ujQ+n73qE5GrJSw0Cl04rGXqn848YnierfKbAUwGFhv
# fVt+OpHUfG9O/+kxfqWCNeEu/wpg6lKFV4d65CqvPKLfedvgeY/fke3/Jj12QEvf
# G0v2gqjqgyitU7a3ltcdLYzvv32KnpR8U6lkBGt8zBZnGTGCkun0OrzUiKi9ju5P
# EnnY/+CWkFB+ARX/8ONsXhr0r0DF5Sc9Rvg6QTj/OUi03AYB+zsIKGhpqQIDAQAB
# o4IBqDCCAaQwDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMI
# MB0GA1UdDgQWBBT4o6flI3VW0aWlO4luFnHLVdaICTBWBgNVHSAETzBNMAgGBmeB
# DAEEAjBBBgkrBgEEAaAyAR4wNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93d3cuZ2xv
# YmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wDAYDVR0TAQH/BAIwADCBkAYIKwYBBQUH
# AQEEgYMwgYAwOQYIKwYBBQUHMAGGLWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29t
# L2NhL2dzdHNhY2FzaGEzODRnNDBDBggrBgEFBQcwAoY3aHR0cDovL3NlY3VyZS5n
# bG9iYWxzaWduLmNvbS9jYWNlcnQvZ3N0c2FjYXNoYTM4NGc0LmNydDAfBgNVHSME
# GDAWgBTqFsZp5+PLV0U5M6TwQL7Qw71lljBBBgNVHR8EOjA4MDagNKAyhjBodHRw
# Oi8vY3JsLmdsb2JhbHNpZ24uY29tL2NhL2dzdHNhY2FzaGEzODRnNC5jcmwwDQYJ
# KoZIhvcNAQELBQADggIBAHArWS5rBVK1Jlchtc8Q6JrwrMtyVGhtVUWZljlYRxvQ
# aWsobPCTi6ZEy3jJq05ixIIfBZDerAaWO66gRg2BhuyQcNyyNS7LVS1DR2+Lek5B
# P/6yIZxAMditj5U3GoLryLcOp6FcGqrAakn9D4oEBybC2Q7PJgN9MEW/bFB6D+kk
# NkyApOgiQStgZrysC88yyIB/KkbHnMLlHw/WVfkCDGHFvGKPXaMiYetqmHiwZC8J
# sA3JuAgcWl4GMCRdcYN2OP1IaphdP0JIbyyENvzm/pLC0nBjQYO19KAKZVrVQfSD
# qDAbyNZbbkDow83mN+LJ6VVci1PE7uHfu9O1kYq7Z3O1CPCoSKsOG+BEcL7iBOcR
# qeE/UEGaDGYKVkXBBUH5QhX9BKaRtfpMFop+fgWaoYd0VP3Hp8Dmk2edpB0qXDoE
# tU7VFx6j4o3uPjwKgU9ZMfsF/5gZ05i4BthIm0mT4QLHbbIsitzqXtvUb/0HrB48
# NlF38T4skmT1mPBPK5oQ89pfOPpKQsl/YKObSaEzCxDOwk+l07KAWBkm+kMJSrV1
# 1Z7Yrw2vHrb7S0l4/V+x6obteup3utHs54Y1Cflau5bh9gpX+f3W/iQaAFC9nk3I
# kRg37NIozg+ul0Ydwnxgy7uaZK6WtbnlynrletZ4QSTeZsn2UBdFpX/TH+oe2u/o
# MYIGUTCCBk0CAQEwaDBUMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBM
# aW1pdGVkMSswKQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0Eg
# UjM2AhAtmKdfiMvdO1IQbTd6fBa6MA0GCWCGSAFlAwQCAQUAoEwwGQYJKoZIhvcN
# AQkDMQwGCisGAQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEIE5fhpG2HzdQbMy/AVM3
# xD8FKXey33kc0Jh9OEZrKhfhMA0GCSqGSIb3DQEBAQUABIICABbJB6fM41FpmH/K
# ZJjhrKj05WkSJTdBTHkbysYVIoUZRkBl8/gE/fvAX9rn3Z+PHnnYIlGADrIqWacV
# qqS58wPQFCP15lXPYz3CtBvBnA+LBwNFWgptb+rN7KrYVKetklH6o+bkFBIAxwnD
# 2Ckm4txeQqtkjOKnj1UEnwIQm3fdnGRaDNdwxT2mIYD0P5U0Ykgymp5im5Ftw/2g
# sap/XvPMMgjtyr+lCri50HId1zigTsemSV5MQjbMqmrC+yWxalE/ch9m7qVN7Bqh
# q9KEhGBzKXdwNbVVsm/u8WdEQuk4lHBW+jmxsKjRrvUtIIR7Wfd8HfPw4oqg3LBB
# g4HsJLXIOfYbTkwYrdwIUFYcCZj5jbEd1V5lHAqElLB7a9bk2UAsSTexLH+P55g6
# cUsF+8elhmv+FvUfSx4o+v8XLydIEWwzSAIOWYHRQIORWMNRT+vA/fuYK+sxU7UA
# 0jAym94Qw8NzWr/PM85A3iNabLRY2a44QUQaWZa9hxYRohv4e2t+qXSghQ/E49w6
# Q49QnqyGb0w07C2CfmVB/RlINuf+XnyUHX77bV6D3ZJcuYz7WBJD6+kjQlyB/GfZ
# dOpKVc3sZX0ujuXUVmvV0WJfSJDNW0a6eI68HIuO580CoJsGyR04F3rYBL/1aqOk
# u653XUbtyUzH5g8n+oM/fb7oNw9+oYIDbDCCA2gGCSqGSIb3DQEJBjGCA1kwggNV
# AgEBMG8wWzELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex
# MTAvBgNVBAMTKEdsb2JhbFNpZ24gVGltZXN0YW1waW5nIENBIC0gU0hBMzg0IC0g
# RzQCEAEHZJsIsKf+fdZUqPL0KfYwCwYJYIZIAWUDBAIBoIIBPTAYBgkqhkiG9w0B
# CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDEyMTcxODQ0MTJaMCsG
# CSqGSIb3DQEJNDEeMBwwCwYJYIZIAWUDBAIBoQ0GCSqGSIb3DQEBCwUAMC8GCSqG
# SIb3DQEJBDEiBCAE9v6E5iD/guGCy7mk2t2Uj8wNYM4Keg22NLuwIU1ztDCBpAYL
# KoZIhvcNAQkQAgwxgZQwgZEwgY4wgYsEFETTk5zNG4h/hnrM2oHsrw9l/NJZMHMw
# X6RdMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEw
# LwYDVQQDEyhHbG9iYWxTaWduIFRpbWVzdGFtcGluZyBDQSAtIFNIQTM4NCAtIEc0
# AhABB2SbCLCn/n3WVKjy9Cn2MA0GCSqGSIb3DQEBCwUABIIBgLHEYT6XIrC5idRB
# cXGe8A1JJ4BnNShmQCIsSRD/pnmAKrgNPuIdo9yeVJZgUEulRO5zD98FpGA4I97E
# iV1C5riQ9DFPYsgxfrJDdwariwjo0jE+kupvPDjVC7RhlvndruTzJV6Bes7+4uMh
# cyHLSzbq5403Vexkr0ceK1wgWqyibDCHK0tEL8pPIFoP80hZnZRI6NXOLl0/qUa9
# DKIi0rrvMybP0J6nwokXfPO4BEr+ayj7Aky05X9G3dpfd/cMjXxRdsNoy0S78H8x
# KR8eGRvMIX8OTK8mRSuDe6y9CgKroR24JT6oOf8eyzAbDuhc4M+hg+f6Si28dBCo
# 4w4O7rznqUhvI6uQYDW+qBVJuh3OTDwACRkLG9AgHNh+l7oc1QU59P79QE+JWwvf
# hILJOqWcS1PpBBwlLsE+VL1IY/ucgmQ0SJbA0KxwiVDptdCl7xlerUzriX9yNAqY
# ScNmzdeFKHbBk/rlebsA7PXVslGdBFzObucae/9JBT0zJ2fw5A==
# SIG # End signature block