Model/NamespaceManagementClustersInfo.ps1

#
# NamespaceManagement Paths
# The vcenter namespace_management package provides services for managing Namespaces.
# Version: v7.0U2
# Contact: powercli@vmware.com
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.DESCRIPTION
 
The Clusters.Info structure contains detailed information about the cluster statistics and status related to vSphere Namespaces.
 
.PARAMETER SizeHint
No description available.
.PARAMETER StatSummary
No description available.
.PARAMETER ConfigStatus
No description available.
.PARAMETER Messages
Current set of messages associated with the object.
.PARAMETER KubernetesStatus
No description available.
.PARAMETER KubernetesStatusMessages
Current set of messages associated with the object.
.PARAMETER ApiServerManagementEndpoint
Kubernetes API Server IP address on the management network. This is a floating IP and assigned to one of the control plane VMs on the management network. This endpoint is used by vSphere components.
.PARAMETER ApiServerClusterEndpoint
Kubernetes API Server IP address via cluster network. This is the IP address of the Kubernetes LoadBalancer type service fronting the apiservers. This endpoint is the one configured in kubeconfig after login, and used for most human and application interaction with Kubernetes.
.PARAMETER ApiServers
Identifier of the Kubernetes API servers. These are the IP addresses of the VM instances for the Kubernetes control plane on the management network.
.PARAMETER TlsManagementEndpointCertificate
PEM-encoded x509 certificate used by TLS endpoint on Kubernetes API servers when accessed from the management network, e.g. from ESX servers or VCSA. This certificate is only valid for use with the apiServerManagementEndpoint.
.PARAMETER TlsEndpointCertificate
PEM-encoded x509 certificate used by TLS endpoint on Kubernetes API servers when accessed via the load balancer, e.g. devops user on corporate network. This certificate is only valid for use with the apiServerClusterEndpoint.
.PARAMETER NetworkProvider
No description available.
.PARAMETER NcpClusterNetworkInfo
No description available.
.PARAMETER WorkloadNetworks
No description available.
.PARAMETER WorkloadNtpServers
Information about NTP server DNS names or IP addresses to use for workloads such as Tanzu Kubernetes Grid VMs, specified in order of preference. This field is optional because it was added in a newer version than its parent node.
.PARAMETER LoadBalancers
Information related to the Load balancer used for provisioning virtual servers in the namespace. This field is optional and it is only relevant when the value of Clusters.Info.network-provider is VSPHERE_NETWORK.
.PARAMETER ServiceCidr
No description available.
.PARAMETER MasterManagementNetwork
No description available.
.PARAMETER MasterDNS
List of DNS server IP addresses to use on Kubernetes API server, specified in order of preference.
.PARAMETER WorkerDNS
List of DNS server IP addresses to use for pods that execute on the worker nodes (which are native pods on ESXi hosts in the vSphere Namespaces Supervisor).
.PARAMETER MasterStoragePolicy
Identifier of storage policy associated with Kubernetes API server. This field is optional because it was added in a newer version than its parent node. When clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.
.PARAMETER EphemeralStoragePolicy
Identifier of storage policy associated with ephemeral disks of all the Kubernetes Pods in the cluster. This field is optional because it was added in a newer version than its parent node. When clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: SpsStorageProfile. When operations return a value of this structure as a result, the field will be an identifier for the resource type: SpsStorageProfile.
.PARAMETER LoginBanner
Disclaimer to be displayed prior to login via the Kubectl plugin. If unset, just skip it.
.PARAMETER MasterDNSNames
List of additional DNS names to associate with the Kubernetes API server. These DNS names are embedded in the TLS certificate presented by the API server. If unset, no additional DNS names are embedded in the TLS certificate.
.PARAMETER ImageStorage
No description available.
.PARAMETER DefaultImageRegistry
No description available.
.PARAMETER DefaultImageRepository
Default image repository to use when Kubernetes Pod container specification does not specify it as part of the container image name. If unset, defaults to Docker Hub official repository in case of Docker Hub image registry, otherwise defaults to empty string.
.PARAMETER MasterDNSSearchDomains
List of domains (for example ""vmware.com"") to be searched when trying to lookup a host name on Kubernetes API server, specified in order of preference.
.PARAMETER MasterNTPServers
List of NTP server DNS names or IP addresses to use on Kubernetes API server, specified in order of preference. If unset, VMware Tools based time synchronization is enabled.
.PARAMETER DefaultKubernetesServiceContentLibrary
Identifier of the Content Library which holds the VM Images for vSphere Kubernetes Service. This Content Library should be subscribed to VMware's hosted vSphere Kubernetes Service Repository. When clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: com.vmware.content.Library. When operations return a value of this structure as a result, the field will be an identifier for the resource type: com.vmware.content.Library.
.OUTPUTS
 
NamespaceManagementClustersInfo<PSCustomObject>
 
.LINK
 
Online Version: https://developer.vmware.com/docs/vsphere-automation/latest/vcenter/data-structures/NamespaceManagement/Clusters/Info/
#>


function Initialize-NamespaceManagementClustersInfo {
    [CmdletBinding(HelpURI = "https://developer.vmware.com/docs/vsphere-automation/latest/vcenter/data-structures/NamespaceManagement/Clusters/Info/")]
    Param (
        [Parameter(Mandatory = $false, Position = 0, ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("TINY", "SMALL", "MEDIUM", "LARGE")]
        ${SizeHint},
        [Parameter(Mandatory = $true, Position = 1, ValueFromPipelineByPropertyName = $true)]
        [PSTypeName("NamespaceManagementClustersStats")]
        [PSCustomObject]
        ${StatSummary},
        [Parameter(Mandatory = $true, Position = 2, ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("CONFIGURING", "REMOVING", "RUNNING", "ERROR")]
        ${ConfigStatus},
        [Parameter(Mandatory = $true, Position = 3, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${Messages},
        [Parameter(Mandatory = $true, Position = 4, ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("READY", "WARNING", "ERROR")]
        ${KubernetesStatus},
        [Parameter(Mandatory = $true, Position = 5, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${KubernetesStatusMessages},
        [Parameter(Mandatory = $true, Position = 6, ValueFromPipelineByPropertyName = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${ApiServerManagementEndpoint},
        [Parameter(Mandatory = $true, Position = 7, ValueFromPipelineByPropertyName = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${ApiServerClusterEndpoint},
        [Parameter(Mandatory = $true, Position = 8, ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${ApiServers},
        [Parameter(Mandatory = $false, Position = 9, ValueFromPipelineByPropertyName = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${TlsManagementEndpointCertificate},
        [Parameter(Mandatory = $false, Position = 10, ValueFromPipelineByPropertyName = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${TlsEndpointCertificate},
        [Parameter(Mandatory = $true, Position = 11, ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("NSXT_CONTAINER_PLUGIN", "VSPHERE_NETWORK")]
        ${NetworkProvider},
        [Parameter(Mandatory = $false, Position = 12, ValueFromPipelineByPropertyName = $true)]
        [PSTypeName("NamespaceManagementClustersNCPClusterNetworkInfo")]
        [PSCustomObject]
        ${NcpClusterNetworkInfo},
        [Parameter(Mandatory = $false, Position = 13, ValueFromPipelineByPropertyName = $true)]
        [PSTypeName("NamespaceManagementClustersWorkloadNetworksInfo")]
        [PSCustomObject]
        ${WorkloadNetworks},
        [Parameter(Mandatory = $false, Position = 14, ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${WorkloadNtpServers},
        [Parameter(Mandatory = $false, Position = 15, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${LoadBalancers},
        [Parameter(Mandatory = $true, Position = 16, ValueFromPipelineByPropertyName = $true)]
        [PSTypeName("NamespaceManagementIpv4Cidr")]
        [PSCustomObject]
        ${ServiceCidr},
        [Parameter(Mandatory = $false, Position = 17, ValueFromPipelineByPropertyName = $true)]
        [PSTypeName("NamespaceManagementClustersNetworkSpec")]
        [PSCustomObject]
        ${MasterManagementNetwork},
        [Parameter(Mandatory = $false, Position = 18, ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${MasterDNS},
        [Parameter(Mandatory = $false, Position = 19, ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${WorkerDNS},
        [Parameter(Mandatory = $false, Position = 20, ValueFromPipelineByPropertyName = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${MasterStoragePolicy},
        [Parameter(Mandatory = $false, Position = 21, ValueFromPipelineByPropertyName = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${EphemeralStoragePolicy},
        [Parameter(Mandatory = $false, Position = 22, ValueFromPipelineByPropertyName = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${LoginBanner},
        [Parameter(Mandatory = $false, Position = 23, ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${MasterDNSNames},
        [Parameter(Mandatory = $false, Position = 24, ValueFromPipelineByPropertyName = $true)]
        [PSTypeName("NamespaceManagementClustersImageStorageSpec")]
        [PSCustomObject]
        ${ImageStorage},
        [Parameter(Mandatory = $false, Position = 25, ValueFromPipelineByPropertyName = $true)]
        [PSTypeName("NamespaceManagementClustersImageRegistry")]
        [PSCustomObject]
        ${DefaultImageRegistry},
        [Parameter(Mandatory = $false, Position = 26, ValueFromPipelineByPropertyName = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${DefaultImageRepository},
        [Parameter(Mandatory = $false, Position = 27, ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${MasterDNSSearchDomains},
        [Parameter(Mandatory = $false, Position = 28, ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${MasterNTPServers},
        [Parameter(Mandatory = $false, Position = 29, ValueFromPipelineByPropertyName = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${DefaultKubernetesServiceContentLibrary}
    )

    Process {
        'Creating PSCustomObject: VMware.Sdk.vSphere.vCenter.NamespaceManagement => vSphereNamespaceManagementClustersInfo' | Write-Debug

        if ($StatSummary -eq $null) {
            throw "invalid value for 'StatSummary', 'StatSummary' cannot be null."
        }

        if ($ConfigStatus -eq $null) {
            throw "invalid value for 'ConfigStatus', 'ConfigStatus' cannot be null."
        }

        if ($Messages -eq $null) {
            throw "invalid value for 'Messages', 'Messages' cannot be null."
        }

        if ($KubernetesStatus -eq $null) {
            throw "invalid value for 'KubernetesStatus', 'KubernetesStatus' cannot be null."
        }

        if ($KubernetesStatusMessages -eq $null) {
            throw "invalid value for 'KubernetesStatusMessages', 'KubernetesStatusMessages' cannot be null."
        }

        if ($ApiServers -eq $null) {
            throw "invalid value for 'ApiServers', 'ApiServers' cannot be null."
        }

        if ($NetworkProvider -eq $null) {
            throw "invalid value for 'NetworkProvider', 'NetworkProvider' cannot be null."
        }

        if ($ServiceCidr -eq $null) {
            throw "invalid value for 'ServiceCidr', 'ServiceCidr' cannot be null."
        }


        $PSO = [PSCustomObject]@{
            "PSTypeName" = "NamespaceManagementClustersInfo"
            "size_hint" = ${SizeHint}
            "stat_summary" = ${StatSummary}
            "config_status" = ${ConfigStatus}
            "messages" = ${Messages}
            "kubernetes_status" = ${KubernetesStatus}
            "kubernetes_status_messages" = ${KubernetesStatusMessages}
            "api_server_management_endpoint" = ${ApiServerManagementEndpoint}
            "api_server_cluster_endpoint" = ${ApiServerClusterEndpoint}
            "api_servers" = ${ApiServers}
            "tls_management_endpoint_certificate" = ${TlsManagementEndpointCertificate}
            "tls_endpoint_certificate" = ${TlsEndpointCertificate}
            "network_provider" = ${NetworkProvider}
            "ncp_cluster_network_info" = ${NcpClusterNetworkInfo}
            "workload_networks" = ${WorkloadNetworks}
            "workload_ntp_servers" = ${WorkloadNtpServers}
            "load_balancers" = ${LoadBalancers}
            "service_cidr" = ${ServiceCidr}
            "master_management_network" = ${MasterManagementNetwork}
            "master_DNS" = ${MasterDNS}
            "worker_DNS" = ${WorkerDNS}
            "master_storage_policy" = ${MasterStoragePolicy}
            "ephemeral_storage_policy" = ${EphemeralStoragePolicy}
            "login_banner" = ${LoginBanner}
            "Master_DNS_names" = ${MasterDNSNames}
            "image_storage" = ${ImageStorage}
            "default_image_registry" = ${DefaultImageRegistry}
            "default_image_repository" = ${DefaultImageRepository}
            "master_DNS_search_domains" = ${MasterDNSSearchDomains}
            "master_NTP_servers" = ${MasterNTPServers}
            "default_kubernetes_service_content_library" = ${DefaultKubernetesServiceContentLibrary}
        }


        return $PSO
    }
}


# SIG # Begin signature block
# MIIexgYJKoZIhvcNAQcCoIIetzCCHrMCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBkZbkiBBIr7LyT
# xRLi6thHC1oCcBHndx/U/lK9zpoqGqCCDdowggawMIIEmKADAgECAhAIrUCyYNKc
# TJ9ezam9k67ZMA0GCSqGSIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV
# BAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yMTA0MjkwMDAwMDBaFw0z
# NjA0MjgyMzU5NTlaMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
# SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcg
# UlNBNDA5NiBTSEEzODQgMjAyMSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
# ggIKAoICAQDVtC9C0CiteLdd1TlZG7GIQvUzjOs9gZdwxbvEhSYwn6SOaNhc9es0
# JAfhS0/TeEP0F9ce2vnS1WcaUk8OoVf8iJnBkcyBAz5NcCRks43iCH00fUyAVxJr
# Q5qZ8sU7H/Lvy0daE6ZMswEgJfMQ04uy+wjwiuCdCcBlp/qYgEk1hz1RGeiQIXhF
# LqGfLOEYwhrMxe6TSXBCMo/7xuoc82VokaJNTIIRSFJo3hC9FFdd6BgTZcV/sk+F
# LEikVoQ11vkunKoAFdE3/hoGlMJ8yOobMubKwvSnowMOdKWvObarYBLj6Na59zHh
# 3K3kGKDYwSNHR7OhD26jq22YBoMbt2pnLdK9RBqSEIGPsDsJ18ebMlrC/2pgVItJ
# wZPt4bRc4G/rJvmM1bL5OBDm6s6R9b7T+2+TYTRcvJNFKIM2KmYoX7BzzosmJQay
# g9Rc9hUZTO1i4F4z8ujo7AqnsAMrkbI2eb73rQgedaZlzLvjSFDzd5Ea/ttQokbI
# YViY9XwCFjyDKK05huzUtw1T0PhH5nUwjewwk3YUpltLXXRhTT8SkXbev1jLchAp
# QfDVxW0mdmgRQRNYmtwmKwH0iU1Z23jPgUo+QEdfyYFQc4UQIyFZYIpkVMHMIRro
# OBl8ZhzNeDhFMJlP/2NPTLuqDQhTQXxYPUez+rbsjDIJAsxsPAxWEQIDAQABo4IB
# WTCCAVUwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUaDfg67Y7+F8Rhvv+
# YXsIiGX0TkIwHwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0P
# AQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMDMHcGCCsGAQUFBwEBBGswaTAk
# BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAC
# hjVodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9v
# dEc0LmNydDBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5j
# b20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNybDAcBgNVHSAEFTATMAcGBWeBDAED
# MAgGBmeBDAEEATANBgkqhkiG9w0BAQwFAAOCAgEAOiNEPY0Idu6PvDqZ01bgAhql
# +Eg08yy25nRm95RysQDKr2wwJxMSnpBEn0v9nqN8JtU3vDpdSG2V1T9J9Ce7FoFF
# UP2cvbaF4HZ+N3HLIvdaqpDP9ZNq4+sg0dVQeYiaiorBtr2hSBh+3NiAGhEZGM1h
# mYFW9snjdufE5BtfQ/g+lP92OT2e1JnPSt0o618moZVYSNUa/tcnP/2Q0XaG3Ryw
# YFzzDaju4ImhvTnhOE7abrs2nfvlIVNaw8rpavGiPttDuDPITzgUkpn13c5Ubdld
# AhQfQDN8A+KVssIhdXNSy0bYxDQcoqVLjc1vdjcshT8azibpGL6QB7BDf5WIIIJw
# 8MzK7/0pNVwfiThV9zeKiwmhywvpMRr/LhlcOXHhvpynCgbWJme3kuZOX956rEnP
# LqR0kq3bPKSchh/jwVYbKyP/j7XqiHtwa+aguv06P0WmxOgWkVKLQcBIhEuWTatE
# QOON8BUozu3xGFYHKi8QxAwIZDwzj64ojDzLj4gLDb879M4ee47vtevLt/B3E+bn
# KD+sEq6lLyJsQfmCXBVmzGwOysWGw/YmMwwHS6DTBwJqakAwSEs0qFEgu60bhQji
# WQ1tygVQK+pKHJ6l/aCnHwZ05/LWUpD9r4VIIflXO7ScA+2GRfS0YW6/aOImYIbq
# yK+p/pQd52MbOoZWeE4wggciMIIFCqADAgECAhAOxvKydqFGoH0ObZNXteEIMA0G
# CSqGSIb3DQEBCwUAMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
# SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcg
# UlNBNDA5NiBTSEEzODQgMjAyMSBDQTEwHhcNMjEwODEwMDAwMDAwWhcNMjMwODEw
# MjM1OTU5WjCBhzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExEjAQ
# BgNVBAcTCVBhbG8gQWx0bzEVMBMGA1UEChMMVk13YXJlLCBJbmMuMRUwEwYDVQQD
# EwxWTXdhcmUsIEluYy4xITAfBgkqhkiG9w0BCQEWEm5vcmVwbHlAdm13YXJlLmNv
# bTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAMD6lJG8OWkM12huIQpO
# /q9JnhhhW5UyW9if3/UnoFY3oqmp0JYX/ZrXogUHYXmbt2gk01zz2P5Z89mM4gqR
# bGYC2tx+Lez4GxVkyslVPI3PXYcYSaRp39JsF3yYifnp9R+ON8O3Gf5/4EaFmbeT
# ElDCFBfExPMqtSvPZDqekodzX+4SK1PIZxCyR3gml8R3/wzhb6Li0mG7l0evQUD0
# FQAbKJMlBk863apeX4ALFZtrnCpnMlOjRb85LsjV5Ku4OhxQi1jlf8wR+za9C3DU
# ki60/yiWPu+XXwEUqGInIihECBbp7hfFWrnCCaOgahsVpgz8kKg/XN4OFq7rbh4q
# 5IkTauqFhHaE7HKM5bbIBkZ+YJs2SYvu7aHjw4Z8aRjaIbXhI1G+NtaNY7kSRrE4
# fAyC2X2zV5i4a0AuAMM40C1Wm3gTaNtRTHnka/pbynUlFjP+KqAZhOniJg4AUfjX
# sG+PG1LH2+w/sfDl1A8liXSZU1qJtUs3wBQFoSGEaGBeDQIDAQABo4ICJTCCAiEw
# HwYDVR0jBBgwFoAUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHQYDVR0OBBYEFIhC+HL9
# QlvsWsztP/I5wYwdfCFNMB0GA1UdEQQWMBSBEm5vcmVwbHlAdm13YXJlLmNvbTAO
# BgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwgbUGA1UdHwSBrTCB
# qjBToFGgT4ZNaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3Rl
# ZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hBMzg0MjAyMUNBMS5jcmwwU6BRoE+GTWh0
# dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWdu
# aW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3JsMD4GA1UdIAQ3MDUwMwYGZ4EMAQQB
# MCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzCBlAYI
# KwYBBQUHAQEEgYcwgYQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0
# LmNvbTBcBggrBgEFBQcwAoZQaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0Rp
# Z2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hBMzg0MjAyMUNBMS5j
# cnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEACQAYaQI6Nt2KgxdN
# 6qqfcHB33EZRSXkvs8O9iPZkdDjEx+2fgbBPLUvk9A7T8mRw7brbcJv4PLTYJDFo
# c5mlcmG7/5zwTOuIs2nBGXc/uxCnyW8p7kD4Y0JxPKEVQoIQ8lJS9Uy/hBjyakeV
# ef982JyzvDbOlLBy6AS3ZpXVkRY5y3Va+3v0R/0xJ+JRxUicQhiZRidq2TCiWEas
# d+tLL6jrKaBO+rmP52IM4eS9d4Yids7ogKEBAlJi0NbvuKO0CkgOlFjp1tOvD4sQ
# taHIMmqi40p4Tjyf/sY6yGjROXbMeeF1vlwbBAASPWpQuEIxrNHoVN30YfJyuOWj
# zdiJUTpeLn9XdjM3UlhfaHP+oIAKcmkd33c40SFRlQG9+P9Wlm7TcPxGU4wzXI8n
# Cw/h235jFlAAiWq9L2r7Un7YduqsheJVpGoXmRXJH0T2G2eNFS5/+2sLn98kN2Cn
# J7j6C242onjkZuGL2/+gqx8m5Jbpu9P4IAeTC1He/mX9j6XpIu+7uBoRVwuWD1i0
# N5SiUz7Lfnbr6Q1tHMXKDLFdwVKZos2AKEZhv4SU0WvenMJKDgkkhVeHPHbTahQf
# P1MetR8tdRs7uyTWAjPK5xf5DLEkXbMrUkpJ089fPvAGVHBcHRMqFA5egexOb6sj
# tKncUjJ1xAAtAExGdCh6VD2U5iYxghBCMIIQPgIBATB9MGkxCzAJBgNVBAYTAlVT
# MRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1
# c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEzODQgMjAyMSBDQTECEA7G
# 8rJ2oUagfQ5tk1e14QgwDQYJYIZIAWUDBAIBBQCggZYwGQYJKoZIhvcNAQkDMQwG
# CisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwKgYKKwYB
# BAGCNwIBDDEcMBqhGIAWaHR0cDovL3d3dy52bXdhcmUuY29tLzAvBgkqhkiG9w0B
# CQQxIgQg7+cLBcNNq9YTCimz7TfIW273cp7l7THVSmhUeM/JyQIwDQYJKoZIhvcN
# AQEBBQAEggGAnFIzmt5KieAQU4GrSz5l8hhbN/C9FPgC9ca1JU29Rr+PIxTavTWu
# pJvAJ3NKv9Xb2z0l3LfG+oUNu0QPHbQQF7lSox03zRNB8aRhoFh1KjdK9qy4OJiM
# +JMBpcBC+TNuYb9AOlGTn5IsuolerQEgHVV6anTkeN5vvD+ZEYIcqIm7Yvj9+50A
# ykqx4W2GAe/EI8g5DHB7hkr+UMg5nHRo7Rt+Z4DdZt1X898ZXdPFiN0IyVGn6CF7
# RdrahgduyMhtkQLt3nZrdkQ5/N+WpL2lkuAuyivV+N2yzwyEiFMUd9bkAHZjvjvA
# neYpK+dTKCG2GTsrJpoNoorSO1uGXv3bhWZcXOdGF9za99RO/V77QZQN06bVcm/L
# ASdauG7Y8g54kmS37+jVie/nqlJag9PMCL2vtO5rsjv2EDwNg2gmhkCnWXetk4wk
# xqLX9fn99UdXRoEh0JZjplKtQI3Wq8/jaymy4wZdoRkdZkm20E/IPXgHm9x6IKWN
# zzkPQJFu9UKToYINfTCCDXkGCisGAQQBgjcDAwExgg1pMIINZQYJKoZIhvcNAQcC
# oIINVjCCDVICAQMxDzANBglghkgBZQMEAgEFADB3BgsqhkiG9w0BCRABBKBoBGYw
# ZAIBAQYJYIZIAYb9bAcBMDEwDQYJYIZIAWUDBAIBBQAEILOkOsju/9U8QspFgydK
# dDNj7MawgMqh3UdSkdKw5SUuAhAM9STNnTKwD3OdFnENWXhQGA8yMDIxMDkxMzE2
# MTQwMFqgggo3MIIE/jCCA+agAwIBAgIQDUJK4L46iP9gQCHOFADw3TANBgkqhkiG
# 9w0BAQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkw
# FwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEy
# IEFzc3VyZWQgSUQgVGltZXN0YW1waW5nIENBMB4XDTIxMDEwMTAwMDAwMFoXDTMx
# MDEwNjAwMDAwMFowSDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
# bmMuMSAwHgYDVQQDExdEaWdpQ2VydCBUaW1lc3RhbXAgMjAyMTCCASIwDQYJKoZI
# hvcNAQEBBQADggEPADCCAQoCggEBAMLmYYRnxYr1DQikRcpja1HXOhFCvQp1dU2U
# tAxQtSYQ/h3Ib5FrDJbnGlxI70Tlv5thzRWRYlq4/2cLnGP9NmqB+in43Stwhd4C
# GPN4bbx9+cdtCT2+anaH6Yq9+IRdHnbJ5MZ2djpT0dHTWjaPxqPhLxs6t2HWc+xO
# bTOKfF1FLUuxUOZBOjdWhtyTI433UCXoZObd048vV7WHIOsOjizVI9r0TXhG4wOD
# MSlKXAwxikqMiMX3MFr5FK8VX2xDSQn9JiNT9o1j6BqrW7EdMMKbaYK02/xWVLwf
# oYervnpbCiAvSwnJlaeNsvrWY4tOpXIc7p96AXP4Gdb+DUmEvQECAwEAAaOCAbgw
# ggG0MA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoG
# CCsGAQUFBwMIMEEGA1UdIAQ6MDgwNgYJYIZIAYb9bAcBMCkwJwYIKwYBBQUHAgEW
# G2h0dHA6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAfBgNVHSMEGDAWgBT0tuEgHf4p
# rtLkYaWyoiWyyBc1bjAdBgNVHQ4EFgQUNkSGjqS6sGa+vCgtHUQ23eNqerwwcQYD
# VR0fBGowaDAyoDCgLoYsaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNz
# dXJlZC10cy5jcmwwMqAwoC6GLGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEy
# LWFzc3VyZWQtdHMuY3JsMIGFBggrBgEFBQcBAQR5MHcwJAYIKwYBBQUHMAGGGGh0
# dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBPBggrBgEFBQcwAoZDaHR0cDovL2NhY2Vy
# dHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3VyZWRJRFRpbWVzdGFtcGlu
# Z0NBLmNydDANBgkqhkiG9w0BAQsFAAOCAQEASBzctemaI7znGucgDo5nRv1CclF0
# CiNHo6uS0iXEcFm+FKDlJ4GlTRQVGQd58NEEw4bZO73+RAJmTe1ppA/2uHDPYuj1
# UUp4eTZ6J7fz51Kfk6ftQ55757TdQSKJ+4eiRgNO/PT+t2R3Y18jUmmDgvoaU+2Q
# zI2hF3MN9PNlOXBL85zWenvaDLw9MtAby/Vh/HUIAHa8gQ74wOFcz8QRcucbZEnY
# Ipp1FUL1LTI4gdr0YKK6tFL7XOBhJCVPst/JKahzQ1HavWPWH1ub9y4bTxMd90oN
# cX6Xt/Q/hOvB46NJofrOp79Wz7pZdmGJX36ntI5nePk2mOHLKNpbh6aKLzCCBTEw
# ggQZoAMCAQICEAqhJdbWMht+QeQF2jaXwhUwDQYJKoZIhvcNAQELBQAwZTELMAkG
# A1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRp
# Z2ljZXJ0LmNvbTEkMCIGA1UEAxMbRGlnaUNlcnQgQXNzdXJlZCBJRCBSb290IENB
# MB4XDTE2MDEwNzEyMDAwMFoXDTMxMDEwNzEyMDAwMFowcjELMAkGA1UEBhMCVVMx
# FTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNv
# bTExMC8GA1UEAxMoRGlnaUNlcnQgU0hBMiBBc3N1cmVkIElEIFRpbWVzdGFtcGlu
# ZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3QMu5LzY9/3am6
# gpnFOVQoV7YjSsQOB0UzURB90Pl9TWh+57ag9I2ziOSXv2MhkJi/E7xX08PhfgjW
# ahQAOPcuHjvuzKb2Mln+X2U/4Jvr40ZHBhpVfgsnfsCi9aDg3iI/Dv9+lfvzo7oi
# PhisEeTwmQNtO4V8CdPuXciaC1TjqAlxa+DPIhAPdc9xck4Krd9AOly3UeGheRTG
# TSQjMF287DxgaqwvB8z98OpH2YhQXv1mblZhJymJhFHmgudGUP2UKiyn5HU+upgP
# hH+fMRTWrdXyZMt7HgXQhBlyF/EXBu89zdZN7wZC/aJTKk+FHcQdPK/P2qwQ9d2s
# rOlW/5MCAwEAAaOCAc4wggHKMB0GA1UdDgQWBBT0tuEgHf4prtLkYaWyoiWyyBc1
# bjAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzASBgNVHRMBAf8ECDAG
# AQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDCDB5Bggr
# BgEFBQcBAQRtMGswJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNv
# bTBDBggrBgEFBQcwAoY3aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lD
# ZXJ0QXNzdXJlZElEUm9vdENBLmNydDCBgQYDVR0fBHoweDA6oDigNoY0aHR0cDov
# L2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDA6
# oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElE
# Um9vdENBLmNybDBQBgNVHSAESTBHMDgGCmCGSAGG/WwAAgQwKjAoBggrBgEFBQcC
# ARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzALBglghkgBhv1sBwEwDQYJ
# KoZIhvcNAQELBQADggEBAHGVEulRh1Zpze/d2nyqY3qzeM8GN0CE70uEv8rPAwL9
# xafDDiBCLK938ysfDCFaKrcFNB1qrpn4J6JmvwmqYN92pDqTD/iy0dh8GWLoXoIl
# HsS6HHssIeLWWywUNUMEaLLbdQLgcseY1jxk5R9IEBhfiThhTWJGJIdjjJFSLK8p
# ieV4H9YLFKWA1xJHcLN11ZOFk362kmf7U2GJqPVrlsD0WGkNfMgBsbkodbeZY4Ui
# jGHKeZR+WfyMD+NvtQEmtmyl7odRIeRYYJu6DC0rbaLEfrvEJStHAgh8Sa4TtuF8
# QkIoxhhWz0E0tmZdtnR79VYzIi8iNrJLokqV2PWmjlIxggKGMIICggIBATCBhjBy
# MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
# d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
# SUQgVGltZXN0YW1waW5nIENBAhANQkrgvjqI/2BAIc4UAPDdMA0GCWCGSAFlAwQC
# AQUAoIHRMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUx
# DxcNMjEwOTEzMTYxNDAwWjArBgsqhkiG9w0BCRACDDEcMBowGDAWBBTh14Ko4ZG+
# 72vKFpG1qrSUpiSb8zAvBgkqhkiG9w0BCQQxIgQg4dtLbiBdvVnT5QokAbM+xxL3
# z2r1enTnr61mVatblGowNwYLKoZIhvcNAQkQAi8xKDAmMCQwIgQgsxCQBrwK2YMH
# kVcp4EQDQVyD4ykrYU8mlkyNNXHs9akwDQYJKoZIhvcNAQEBBQAEggEAYUZuOvjE
# eCFzbsrppQ5VjvlN7pH8+7AlXaAwdZSrTAqiVCClB9YY+dYizXki9oMIrcG1VsGj
# W/ZvmkRuyTmOxaMsqn/zLV+kRWc8YhG9vBPpUQnJ5G9OLiCN7R2tmstuUZYHd9Rq
# eDDBSpp/mumDQcrnuPV8bD6lIUoyj4tzIkqyaW0VR6vsAcuNcSYg6GmgQDYzJPAg
# rymcLRwWrn9Z/ZZCoa/sOIdBq4Gs8MxK2sHZ/4TF8+PWShfcwXwtluPfCOwWscsO
# 9qdLgUwo5Rs94Lq7aYFn5Gt+9DUiprRSxjSXRNVmPQXjP8qa8+IlTZ2Mc8I1/CVY
# kdSUV49wCGPzMg==
# SIG # End signature block