functions/New-Notification.ps1

 <#
    .SYNOPSIS
    Create a new notification.
 
    .PARAMETER SensorId
    The notification will be added to this sensor.
 
    .PARAMETER UserId
    The id of the User to be added.
 
    .PARAMETER SendEmail
    Should the alarm be sent via email. If not specified the default for the user will be selected.
     
    .PARAMETER SendTextmessage
    Should the alarm be sent via text message (SMS). If not specified the default for the user will be selected.
     
    .PARAMETER SendTicket
    Should the alarm be sent to the ticket system. If not specified the default for the user will be selected.
 
    .PARAMETER DeferId
    The deferid you want to use. To see all posible DeferIDs use the CmdLet Get-SEDispatchTime
 
    .PARAMETER AuthToken
    Either a session or an API key. If no AuthToken is provided the global Server-Eye session will be used if available.
     
#>

function New-Notification {
    [CmdletBinding(DefaultParameterSetName="ofSensor")]
    Param(
        [parameter(ValueFromPipelineByPropertyName,ParameterSetName='ofSensor')]
        $SensorId,
        [parameter(ValueFromPipelineByPropertyName,ParameterSetName='ofSensorhub')]
        [Alias("ConnectorID")]
        $SensorhubId,
        [Parameter(ValueFromPipelineByPropertyName,Mandatory=$true)]
        $UserId,
        [switch]$SendEmail,
        [switch]$SendTextmessage,
        [switch]$SendTicket,
        $DeferId="",
        $AuthToken
    )

    Begin {
        $AuthToken = Test-SEAuth -AuthToken $AuthToken
    }

    Process {
        if ($SensorId) {
            newNotificationofSensor -AuthToken $AuthToken -SensorID $SensorId -UserId $UserId -SendEmail $SendEmail.IsPresent -SendTextmessage $SendTextmessage.IsPresent -SendTicket $SendTicket.IsPresent -deferid $deferid
        } elseif ($SensorhubId) {
            newNotificationofContainer -AuthToken $AuthToken -SensorHubID $SensorhubId -UserId $UserId -SendEmail $SendEmail.IsPresent -SendTextmessage $SendTextmessage.IsPresent -SendTicket $SendTicket.IsPresent -deferid $deferid
        } else {
            Write-Error "Unsupported input"
        }
        
    }

    End{

    }
}

function NewNotificationofSensor {
    Param(
    #Parameter help description
    [Parameter(Mandatory=$true)]
    $SensorID,
    [Parameter(Mandatory=$true)]
    $UserId,
    [Parameter(Mandatory=$false)]
    $SendEmail,
    [Parameter(Mandatory=$false)]
    $SendTextmessage,
    [Parameter(Mandatory=$false)]
    $SendTicket,
    [Parameter(Mandatory=$false)]
    $deferid,
    [Parameter(Mandatory=$true)]
    $Authtoken
    )
    $noti = New-SeApiAgentNotification -AuthToken $Authtoken -AId $sensorId -UserId $UserId -Email $SendEmail -Phone $SendTextmessage -Ticket $SendTicket
    formatSensorNotificationNew -Authtoken $Authtoken -notiID $noti.nid -sensorid $noti.aid  -DeferId $deferid
}

function formatSensorNotificationNew($notiID, $Authtoken, $SensorId, $deferid){
    $n = Get-SENotification -SensorId  $SensorId -AuthToken $AuthToken | Where-Object {$_.NotificationId -eq $notiID}
    $sensor = Get-SESensor -SensorId $SensorId -AuthToken $AuthToken
    [PSCustomObject]@{
        Name = $n.Name
        Email = $n.email
        byEmail = $n.byEmail
        byTextmessage = $n.byTextmessage
        byTicket = $n.byTicket
        Defer        = if ($deferId -ne "") {
            Set-SeApiAgentNotification -AuthToken $AuthToken -aid $SensorId -NId $n.NotificationId -DeferId $deferId | Out-Null
            $gnn = Get-SeApiAgentNotificationList -AuthToken $AuthToken -aid $SensorId | Where-Object {$_.Nid -eq $n.NotificationId}
            [PSCustomObject]@{
                Defertime = $gnn.deferTime
                Defername = $gnn.deferName
            }
        }
        else {
            "No Deferid was set."
        }
        NotificationId = $n.NotificationId
        Sensor = $sensor.name
        SensorID = $sensor.SensorId
        Sensorhub = $sensor.sensorhub
        'OCC-Connector' = $sensor.'OCC-Connector'
        Customer = $sensor.customer
    }
}

function NewNotificationofContainer {
    Param(
        #Parameter help description
        [Parameter(Mandatory=$true)]
        $SensorhubID,
        [Parameter(Mandatory=$true)]
        $UserId,
        [Parameter(Mandatory=$false)]
        $SendEmail,
        [Parameter(Mandatory=$false)]
        $SendTextmessage,
        [Parameter(Mandatory=$false)]
        $SendTicket,
        [Parameter(Mandatory=$false)]
        $deferid,
        [Parameter(Mandatory=$true)]
        $Authtoken
        )
    $noti = New-SeApiContainerNotification -AuthToken $Authtoken -CId $SensorhubID -UserId $UserId -Email $SendEmail -Phone $SendTextmessage -Ticket $SendTicket
    $container = Get-SeApiContainer -AuthToken $Authtoken -CId $SensorhubID

    $sensorhubName = ""
    $connectorName = ""
    $customerName = ""
    
    if ($container.type -eq "0") {
        $customer = Get-SeApiCustomer -AuthToken $Authtoken -CId $container.customerId
        $connectorName = $container.Name
        $customerName = $customer.companyName
    } else {
        $sensorhub = Get-SESensorhub -AuthToken $Authtoken -SensorhubId $SensorhubID
        $sensorhubName = $sensorhub.Name
        $SensorhubId = $Sensorhub.sensorhubId 
        $connectorName = $sensorhub.'OCC-Connector'
        $customerName = $sensorhub.Customer
    }
    
    formatContainerNotificationNew -notiID $noti.nid -authoken $Authtoken -SensorhubID $noti.cid -deferid $deferId

}

function formatContainerNotificationNew($notiID, $authoken, $SensorhubID, $deferId){
    $n = Get-SENotification -SensorhubId $SensorhubId -AuthToken $authoken | Where-Object {$_.NotificationId -eq $notiID}
    [PSCustomObject]@{
        Name = $n.Name
        Email = $n.email
        byEmail = $n.byEmail
        byTextmessage = $n.byTextmessage
        byTicket = $n.byTicket
        Defer        = if ($deferId -ne "") {
            Set-SeApiContainerNotification -AuthToken $AuthToken -cid $SensorhubID -NId $n.NotificationId -DeferId $deferId | Out-Null
            $gnn = Get-SeApiContainerNotificationList -AuthToken $AuthToken -cid $SensorhubID | Where-Object {$_.Nid -eq $n.NotificationId}
            [PSCustomObject]@{
                Defertime = $gnn.deferTime
                Defername = $gnn.deferName
            }
        }
        else {
            "No Deferid was set."
        }
        NotificationId = $n.NotificationId
        Sensorhub = $sensorhubName
        SensorhubId = $SensorhubId
        'OCC-Connector' = $connectorName
        Customer = $customerName
    }
}
# SIG # Begin signature block
# MIIlRQYJKoZIhvcNAQcCoIIlNjCCJTICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUKEkxNelGSEjzIVeAJZyCXeuz
# 12Cggh8uMIIFVTCCBD2gAwIBAgIQNi6d2QZSadlgoaqpVGQMODANBgkqhkiG9w0B
# AQsFADB8MQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy
# MRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxJDAi
# BgNVBAMTG1NlY3RpZ28gUlNBIENvZGUgU2lnbmluZyBDQTAeFw0xOTAzMTQwMDAw
# MDBaFw0yMTAzMTMyMzU5NTlaMIGnMQswCQYDVQQGEwJERTEOMAwGA1UEEQwFNjY1
# NzExETAPBgNVBAgMCFNhYXJsYW5kMRIwEAYDVQQHDAlFcHBlbGJvcm4xGTAXBgNV
# BAkMEEtvc3NtYW5zdHJhc3NlIDcxIjAgBgNVBAoMGUtyw6RtZXIgSVQgU29sdXRp
# b25zIEdtYkgxIjAgBgNVBAMMGUtyw6RtZXIgSVQgU29sdXRpb25zIEdtYkgwggEi
# MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz5/2ukRz5+MhkBio6esyRFg6h
# W1ehLJre46pO2p19epAe6/gCnjQlMXIAM2Ydpsnt8Z8LEUKrVrGGODQvLQ6fsrNF
# 4FDPhj4zc5H5wHI/SOMBu1u6DNtWvJKJ/UBfnkk9CbrRzkzGeSVZ81TiXT+J43+V
# NhXtJ9jX19tcLE3VnyaCQFn4psVwF6zfQPYOyhP+7iRvSgzEGM0vz5oi9Sp4Uqbw
# sus2e4oZ+fT74iCFj9fYXeP/o1fKOiV2iFbk4cVMBIw1hNCNkW9d88C7yivtH4E5
# 6mYYXl5SOk2k4KOACaPjpEI4IZfcoJ/yLKFjzyzyg2u90poEJ7SZinNScFAJAgMB
# AAGjggGlMIIBoTAfBgNVHSMEGDAWgBQO4TqoUzox1Yq+wbutZxoDha00DjAdBgNV
# HQ4EFgQUkgffFDW7uWc8B0iUnOE4laGEiJcwDgYDVR0PAQH/BAQDAgeAMAwGA1Ud
# EwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwEQYJYIZIAYb4QgEBBAQDAgQQ
# MEAGA1UdIAQ5MDcwNQYMKwYBBAGyMQECAQMCMCUwIwYIKwYBBQUHAgEWF2h0dHBz
# Oi8vc2VjdGlnby5jb20vQ1BTMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwu
# c2VjdGlnby5jb20vU2VjdGlnb1JTQUNvZGVTaWduaW5nQ0EuY3JsMHMGCCsGAQUF
# BwEBBGcwZTA+BggrBgEFBQcwAoYyaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0
# aWdvUlNBQ29kZVNpZ25pbmdDQS5jcnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3Nw
# LnNlY3RpZ28uY29tMB0GA1UdEQQWMBSBEmluZm9Aa3JhZW1lci1pdC5kZTANBgkq
# hkiG9w0BAQsFAAOCAQEABItcE+38EnSo1FiIAtLUfD1pLKcYEjGDoIlsgWuruo1+
# Zgh0+di0uubTvL3p5JKvysy4bydzKyxLiAbU+2M2c6t1NIaZ6yyvxp3Y1RQf72II
# cDqrIprzmfbEKm2VW1wAgqggl3wzsI9hdFNJxIc6/DmB3Z+U63g8aV4yheqifoXE
# tTKLy6wr4OmSMnxp133BOOJ+SwshgyOAkWEOS7I0zz6w7ojTMOizwBP7ExUYPc+N
# KiqbNthrZ3MitfVn2BdAQrq738yd7AZvKKWU8MJjQT5rNY131V4L873FE7ecUi82
# 1egW8R1y7+Y934/RIBRMKFD+KqQG98QMyG6zw92RbDCCBd4wggPGoAMCAQICEAH9
# bTD8o8pRqBu8ZA41Ay0wDQYJKoZIhvcNAQEMBQAwgYgxCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UE
# ChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNB
# IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEwMDIwMTAwMDAwMFoXDTM4MDEx
# ODIzNTk1OVowgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQw
# EgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3
# b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9y
# aXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9Cs
# Vw127c0n00ytUINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZ
# tF+mvX2do2NCtnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8
# /hPwhxR79uQfjtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax
# 1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9
# yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf
# 4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQN
# wZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kC
# nusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/
# kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhC
# LkMaTLTwJUdZ+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgE
# JTm4Diup8kyXHAc/DVL17e8vgg8CAwEAAaNCMEAwHQYDVR0OBBYEFFN5v1qqK0rP
# VIDh2JvAnfKyA2bLMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
# CSqGSIb3DQEBDAUAA4ICAQBc1HwNz/cBfUGZZQxzxVKfy/jPmQZ/G9pDFZ+eAlVX
# lhTxUjwnh5Qo7R86ATeidvxTUMCEm8ZrTrqMIU+ijlVikfNpFdi8iOPEqgv976jp
# S1UqBiBtVXgpGe5fMFxLJBFV/ySabl4qK+4LTZ9/9wE4lBSVQwcJ+2Cp7hyrEoyg
# ml6nmGpZbYs/CPvI0UWvGBVkkBIPcyguxeIkTvxY7PD0Rf4is+svjtLZRWEFwZdv
# qHZyj4uMNq+/DQXOcY3mpm8fbKZxYsXY0INyDPFnEYkMnBNMcjTfvNVx36px3eG5
# bIw8El1l2r1XErZDa//l3k1mEVHPma7sF7bocZGM3kn+3TVxohUnlBzPYeMmu2+j
# ZyUhXebdHQsuaBs7gq/sg2eF1JhRdLG5mYCJ/394GVx5SmAukkCuTDcqLMnHYsgO
# Xfc2W8rgJSUBtN0aB5x3AD/Q3NXsPdT6uz/MhdZvf6kt37kC9/WXmrU12sNnsIdK
# qSieI47/XCdr4bBP8wfuAC7UWYfLUkGV6vRH1+5kQVV8jVkCld1incK57loodISl
# m7eQxwwH3/WJNnQy1ijBsLAL4JxMwxzW/ONptUdGgS+igqvTY0RwxI3/LTO6rY97
# tXCIrj4Zz0Ao2PzIkLtdmSL1UuZYxR+IMUPuiB3Xxo48Q2odpxjefT0W8WL5ypCo
# /TCCBfUwggPdoAMCAQICEB2iSDBvmyYY0ILgln0z02owDQYJKoZIhvcNAQEMBQAw
# gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
# ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
# VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE4
# MTEwMjAwMDAwMFoXDTMwMTIzMTIzNTk1OVowfDELMAkGA1UEBhMCR0IxGzAZBgNV
# BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE
# ChMPU2VjdGlnbyBMaW1pdGVkMSQwIgYDVQQDExtTZWN0aWdvIFJTQSBDb2RlIFNp
# Z25pbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCGIo0yhXoY
# n0nwli9jCB4t3HyfFM/jJrYlZilAhlRGdDFixRDtsocnppnLlTDAVvWkdcapDlBi
# pVGREGrgS2Ku/fD4GKyn/+4uMyD6DBmJqGx7rQDDYaHcaWVtH24nlteXUYam9Cfl
# fGqLlR5bYNV+1xaSnAAvaPeX7Wpyvjg7Y96Pv25MQV0SIAhZ6DnNj9LWzwa0VwW2
# TqE+V2sfmLzEYtYbC43HZhtKn52BxHJAteJf7wtF/6POF6YtVbC3sLxUap28jVZT
# xvC6eVBJLPcDuf4vZTXyIuosB69G2flGHNyMfHEo8/6nxhTdVZFuihEN3wYklX0P
# p6F8OtqGNWHTAgMBAAGjggFkMIIBYDAfBgNVHSMEGDAWgBRTeb9aqitKz1SA4dib
# wJ3ysgNmyzAdBgNVHQ4EFgQUDuE6qFM6MdWKvsG7rWcaA4WtNA4wDgYDVR0PAQH/
# BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYIKwYBBQUHAwMG
# CCsGAQUFBwMIMBEGA1UdIAQKMAgwBgYEVR0gADBQBgNVHR8ESTBHMEWgQ6BBhj9o
# dHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVNFUlRydXN0UlNBQ2VydGlmaWNhdGlv
# bkF1dGhvcml0eS5jcmwwdgYIKwYBBQUHAQEEajBoMD8GCCsGAQUFBzAChjNodHRw
# Oi8vY3J0LnVzZXJ0cnVzdC5jb20vVVNFUlRydXN0UlNBQWRkVHJ1c3RDQS5jcnQw
# JQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcN
# AQEMBQADggIBAE1jUO1HNEphpNveaiqMm/EAAB4dYns61zLC9rPgY7P7YQCImhtt
# EAcET7646ol4IusPRuzzRl5ARokS9At3WpwqQTr81vTr5/cVlTPDoYMot94v5JT3
# hTODLUpASL+awk9KsY8k9LOBN9O3ZLCmI2pZaFJCX/8E6+F0ZXkI9amT3mtxQJmW
# unjxucjiwwgWsatjWsgVgG10Xkp1fqW4w2y1z99KeYdcx0BNYzX2MNPPtQoOCwR/
# oEuuu6Ol0IQAkz5TXTSlADVpbL6fICUQDRn7UJBhvjmPeo5N9p8OHv4HURJmgyYZ
# SJXOSsnBf/M6BZv5b9+If8AjntIeQ3pFMcGcTanwWbJZGehqjSkEAnd8S0vNcL46
# slVaeD68u28DECV3FTSK+TbMQ5Lkuk/xYpMoJVcp+1EZx6ElQGqEV8aynbG8HAra
# fGd+fS7pKEwYfsR7MUFxmksp7As9V1DSyt39ngVR5UR43QHesXWYDVQk/fBO4+L4
# g71yuss9Ou7wXheSaG3IYfmm8SoKC6W59J7umDIFhZ7r+YMp08Ysfb06dy6LN0Kg
# aoLtO0qqlBCk4Q34F8W2WnkzGJLjtXX4oemOCiUe5B7xn1qHI/+fpFGe+zmAEc3b
# tcSnqIBv5VPU4OOiwtJbGvoyJi1qV3AcPKRYLqPzW0sH3DJZ84enGm1YMIIG7DCC
# BNSgAwIBAgIQMA9vrN1mmHR8qUY2p3gtuTANBgkqhkiG9w0BAQwFADCBiDELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBD
# aXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVT
# RVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTkwNTAyMDAw
# MDAwWhcNMzgwMTE4MjM1OTU5WjB9MQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
# YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0
# aWdvIExpbWl0ZWQxJTAjBgNVBAMTHFNlY3RpZ28gUlNBIFRpbWUgU3RhbXBpbmcg
# Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDIGwGv2Sx+iJl9AZg/
# IJC9nIAhVJO5z6A+U++zWsB21hoEpc5Hg7XrxMxJNMvzRWW5+adkFiYJ+9UyUnku
# yWPCE5u2hj8BBZJmbyGr1XEQeYf0RirNxFrJ29ddSU1yVg/cyeNTmDoqHvzOWEnT
# v/M5u7mkI0Ks0BXDf56iXNc48RaycNOjxN+zxXKsLgp3/A2UUrf8H5VzJD0BKLwP
# DU+zkQGObp0ndVXRFzs0IXuXAZSvf4DP0REKV4TJf1bgvUacgr6Unb+0ILBgfrhN
# 9Q0/29DqhYyKVnHRLZRMyIw80xSinL0m/9NTIMdgaZtYClT0Bef9Maz5yIUXx7gp
# GaQpL0bj3duRX58/Nj4OMGcrRrc1r5a+2kxgzKi7nw0U1BjEMJh0giHPYla1IXMS
# Hv2qyghYh3ekFesZVf/QOVQtJu5FGjpvzdeE8NfwKMVPZIMC1Pvi3vG8Aij0bdon
# igbSlofe6GsO8Ft96XZpkyAcSpcsdxkrk5WYnJee647BeFbGRCXfBhKaBi2fA179
# g6JTZ8qx+o2hZMmIklnLqEbAyfKm/31X2xJ2+opBJNQb/HKlFKLUrUMcpEmLQTkU
# Ax4p+hulIq6lw02C0I3aa7fb9xhAV3PwcaP7Sn1FNsH3jYL6uckNU4B9+rY5WDLv
# bxhQiddPnTO9GrWdod6VQXqngwIDAQABo4IBWjCCAVYwHwYDVR0jBBgwFoAUU3m/
# WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFBqh+GEZIA/DQXdFKI7RNV8GEgRV
# MA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMBMGA1UdJQQMMAoG
# CCsGAQUFBwMIMBEGA1UdIAQKMAgwBgYEVR0gADBQBgNVHR8ESTBHMEWgQ6BBhj9o
# dHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVNFUlRydXN0UlNBQ2VydGlmaWNhdGlv
# bkF1dGhvcml0eS5jcmwwdgYIKwYBBQUHAQEEajBoMD8GCCsGAQUFBzAChjNodHRw
# Oi8vY3J0LnVzZXJ0cnVzdC5jb20vVVNFUlRydXN0UlNBQWRkVHJ1c3RDQS5jcnQw
# JQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcN
# AQEMBQADggIBAG1UgaUzXRbhtVOBkXXfA3oyCy0lhBGysNsqfSoF9bw7J/RaoLlJ
# WZApbGHLtVDb4n35nwDvQMOt0+LkVvlYQc/xQuUQff+wdB+PxlwJ+TNe6qAcJlhc
# 87QRD9XVw+K81Vh4v0h24URnbY+wQxAPjeT5OGK/EwHFhaNMxcyyUzCVpNb0llYI
# uM1cfwGWvnJSajtCN3wWeDmTk5SbsdyybUFtZ83Jb5A9f0VywRsj1sJVhGbks8Vm
# Bvbz1kteraMrQoohkv6ob1olcGKBc2NeoLvY3NdK0z2vgwY4Eh0khy3k/ALWPncE
# vAQ2ted3y5wujSMYuaPCRx3wXdahc1cFaJqnyTdlHb7qvNhCg0MFpYumCf/RoZSm
# Tqo9CfUFbLfSZFrYKiLCS53xOV5M3kg9mzSWmglfjv33sVKRzj+J9hyhtal1H3G/
# W0NdZT1QgW6r8NDT/LKzH7aZlib0PHmLXGTMze4nmuWgwAxyh8FuTVrTHurwROYy
# bxzrF06Uw3hlIDsPQaof6aFBnf6xuKBlKjTg3qj5PObBMLvAoGMs/FwWAKjQxH/q
# EZ0eBsambTJdtDgJK0kHqv3sMNrxpy/Pt/360KOE2See+wFmd7lWEOEgbsausfm2
# usg1XTN2jvF8IAwqd661ogKGuinutFoAsYyr4/kKyVRd1LlqdJ69SK6YMIIHBjCC
# BO6gAwIBAgIQPRo1cjAVgmMw0BNxfoJBCDANBgkqhkiG9w0BAQwFADB9MQswCQYD
# VQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdT
# YWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxJTAjBgNVBAMTHFNlY3Rp
# Z28gUlNBIFRpbWUgU3RhbXBpbmcgQ0EwHhcNMTkwNTAyMDAwMDAwWhcNMzAwODAx
# MjM1OTU5WjCBhDELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
# c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEYMBYGA1UECgwPU2VjdGlnbyBMaW1pdGVk
# MSwwKgYDVQQDDCNTZWN0aWdvIFJTQSBUaW1lIFN0YW1waW5nIFNpZ25lciAjMTCC
# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMtRUP9W/vx4Y3ABk1qeGPQ7
# U/YHryFs9aIPfR1wLYR0SIucipUFPVmE+ZGAeVEs2Yq3wQuaugqKzWZPA4sBuzDK
# q73bwE8SXvwKzOJFsAE4irtN59QcVJjtOVjPW8IvRZgxCvk1OLgxLm20Hjly4bgq
# vp+MjBqlRq4LK0yZ/ixL/Ci5IjpmF9CqVoohwPOWJLTQhSZruvBvZJh5pq29XNhT
# aysK1nKKhUbjDRgG2sZ7QVY2mxU+8WoRoPdm9RjQgFVjh2hm6w55VYJco+1JuHGG
# npM3sGuj6mJso66W6Ln9i6vG9llbADxXIBgtcAOnnO+S63mhx13sfLSPS9/rXfyj
# IN2SOOVqUTprhZxMoJgIaVsG5yoZ0JWTiztrigUJKdjW2tvjcvpcSi97FVaGMr9/
# BQmdLSrPUOHmYSDbxwaAXE4URr6uV3Giqmwwkxx+d8sG6VfNkfXVM3Ic4drKbuvz
# D+x5W7snnuge/i/yu3/p5dBn67gNfKQrWQOLle0iKM36LDvHFhGv49axUGdpxY71
# edCt/4fM+H+q+aLtYfjIjWnasfRRketnV9FkEetkywO9SVU6RUMYLCVs0S8MLW/1
# QTUkoPJjWRZf2aTpLE7buzESxm34W24D3MsVjxuNcuzbDxWQ1hJO7uIAMSWTNW9q
# W6USY0ABirlpiDqIuA8ZAgMBAAGjggF4MIIBdDAfBgNVHSMEGDAWgBQaofhhGSAP
# w0F3RSiO0TVfBhIEVTAdBgNVHQ4EFgQUb02GB9gyJ54sKdLQEwOAgd0FgykwDgYD
# VR0PAQH/BAQDAgbAMAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH
# AwgwQAYDVR0gBDkwNzA1BgwrBgEEAbIxAQIBAwgwJTAjBggrBgEFBQcCARYXaHR0
# cHM6Ly9zZWN0aWdvLmNvbS9DUFMwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2Ny
# bC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBVGltZVN0YW1waW5nQ0EuY3JsMHQGCCsG
# AQUFBwEBBGgwZjA/BggrBgEFBQcwAoYzaHR0cDovL2NydC5zZWN0aWdvLmNvbS9T
# ZWN0aWdvUlNBVGltZVN0YW1waW5nQ0EuY3J0MCMGCCsGAQUFBzABhhdodHRwOi8v
# b2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAwGjts9jUUJvv03XL
# Dzv3JNN6N0WNLO8W+1GpLB+1JbWKn10LwhsgdI1mDzbLqvY2DQ9+j0tKdENlrA0q
# 9grta23FCTjtABv45dymCkAFR++Eygm8Q2aDv5/t24490UFksXACLQNXWxhvHCzL
# HrIA6LoJL1uBBDW5qWNtjgjFGNHhIaz5EgoUwBLbfiWdrB0QwFqlg9IfGmZV/Jsq
# 4uw3V47l35Yw+MCTC0MY+QJvqVGvuFcK8xwHaTmPN5xt15GupS5J6Ures9CMvzmQ
# DcCBzvAqBzoMpi1R0nLzU8b5ve/vDGlJd58sVsTpoQg9B67FHtaEIse8fUMbWDhi
# TtEFJYTFQvgfL/bb+quMVOxFimwSTTBaUuWkFwki5u9v9V+GQ9+hLb1KRpKggZYs
# YZd/QG/YP4w1WqvRxqA7hWZUgO8fGvXxm7ChJ32y5wvP9i2cWBOUqYb8RVKiKG1/
# dA9SkUl66RL4qTuwkv19kRTpW21IlPLIlu4FOLPF7DA/4QcgBLHYi7z9sz5v8gJT
# BvSg7cmacqOXXwD7y2PQ6M10/XXJ1DZFunsSWXLt5/J6UAB4+EOaRtjfv1TUXrHH
# 0bwbg/Qr5wvoR8hTnswarPb6inVTbCCFqdW4arokjoorCJGfNwQc9m+i3TSqkf/G
# FS4eQhoJKU/0xs3ikaLTQAyOeOMxggWBMIIFfQIBATCBkDB8MQswCQYDVQQGEwJH
# QjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3Jk
# MRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxJDAiBgNVBAMTG1NlY3RpZ28gUlNB
# IENvZGUgU2lnbmluZyBDQQIQNi6d2QZSadlgoaqpVGQMODAJBgUrDgMCGgUAoHgw
# GAYKKwYBBAGCNwIBDDEKMAigAoAAoQKAADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGC
# NwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQx
# FgQURgPWh3QsYh0X5+bDf4xv5kBHcG8wDQYJKoZIhvcNAQEBBQAEggEAVLk+4jS5
# Rc0Bq51p5bj1PFDUbaMgTOZ/xoCmXbmhIE9ibmD+LTuCdelonAX3pUpZf0bLtYD9
# 7ebGDcpL2twlat3iN74dhEgXTR4y1o69m6Hf0CyrOl2hpuf5u3ZpVBgaqpqbN6VY
# CH/aR8ZUW9vXpYXlECv3TfKQ+QEoL+Csop/i5Goyq36E5k5gjThD62Mpb7sK7afE
# 7QNB/ftJUrxpJId+3V6KkG8LZ8lOTyRAx+oNp+mfNRpHb/e1hLI0H6y0ck8x6u5Y
# eIWLaBAzrhB5ucqsY3lhz5kN7dcwtHSqOlDBrS++ntoOr8vXAp/5lx+3SrjRLNYq
# Khcb6g3Q7H7qiKGCA0swggNHBgkqhkiG9w0BCQYxggM4MIIDNAIBATCBkTB9MQsw
# CQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQH
# EwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxJTAjBgNVBAMTHFNl
# Y3RpZ28gUlNBIFRpbWUgU3RhbXBpbmcgQ0ECED0aNXIwFYJjMNATcX6CQQgwDQYJ
# YIZIAWUDBAICBQCgeTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3
# DQEJBTEPFw0yMDEwMDIxNDMzMTZaMD8GCSqGSIb3DQEJBDEyBDBVTbEp+S/R3ESR
# 0uz4zjPimlTHfqwZVDSTtScD9ohQ1Fy0jmt8s6IWX2HjHopf7SQwDQYJKoZIhvcN
# AQEBBQAEggIAdSaSVzMRH/ioOgLX7iTW4HwBuTS6Ze/GsXlmxTDyGt7P5oPb/iJm
# 85eQYQNy6QZzhzkFl98cFNKO7KZuY7DTXmCHPkW3/RQr9eD+r3hahqEIDNoP+Yjx
# KrYv2G2VrWqArL6NyNcb/4ffZHs4rV/CWQU3ZXLmOnTiwMgcu/fNndOAe75+II77
# FXMqdMQqFbsB1UJXHmC3O08BsHBW2U9bVMOMxxESXz4fuoYdZESEh1SqTNINwg6Y
# T3l8SwZdxlKhuD+j3RV24v2/qg5i3F1XGlU4rux3+TAFU87kApWT1yLGGy08PwyF
# IGB3WcaFJ020Pem0qljZ08RrrngkWlB4ASjoRBOAjWC7bef0adQjbxbeBWA81YhF
# 7LWQHKK4avpNUrK2xDD67O1i4rFfmcFMBP8APdGd/DrD0yw6IuKOWxJHM6f/RLy1
# CX5YscUj1W3ALu5tYBDhc8XPE+mmCoGwGqsPuZwRUWhNAdWkAT3crJN1n2j3V2TR
# Kjy9+Yi5yXXsBCabxNcKUCRAcKqPgdwh5MSAC9fAqUqhUZhx0BWKphDjwLblYgbz
# kxXjNWWRhOmLPSp41lHuVrjj8qfGbZA5P5iEzGj2R050pd2f1hz76JVaMJyzz0t6
# urFxgVCiQXZrXPJ5S7NyaFxuqXniX3YErU1bQVqkPnRGPnrc9s36O+Q=
# SIG # End signature block