custom/Approve-ZNAssetOutboundRuleReview.ps1
<# .Synopsis Approve a "pending review" rule with or without changes .Description Approve a "pending review" rule with or without changes .Link https://github.com/zeronetworks/zero-powershell/zeronetworks/Approve-ZNAssetOutboundRuleReview #> function Approve-ZNAssetOutboundRuleReview { [OutputType([ZeroNetworks.PowerShell.Cmdlets.Api.Models.Any])] [CmdletBinding(DefaultParameterSetName = 'ApproveExpanded', PositionalBinding = $false, SupportsShouldProcess, ConfirmImpact = 'Medium')] param( [Parameter(ParameterSetName = 'ApproveExpanded')] [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')] [System.String] # Account Name ${AccountName}, [Parameter(ParameterSetName = 'ApproveExpanded', Mandatory)] [Parameter(ParameterSetName = 'ApproveWithChangesExpanded', Mandatory)] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')] [System.String] # Asset Id ${AssetId}, [Parameter(ParameterSetName = 'ApproveExpanded', Mandatory)] [Parameter(ParameterSetName = 'ApproveWithChangesExpanded', Mandatory)] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')] [System.String] # rule Id ${RuleId}, [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [System.String] # Comments ${Details}, [Parameter(ParameterSetName = 'ApproveWithChangesExpanded', Mandatory)] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [ValidateSet('HumanTrafficCoveredByMFA', 'TightenRuleScope', 'MissingPortOrProcess', 'AffectedEntitiesContainedInAnExisitingGroup', 'RedundantRule', 'TrafficShouldBeBlocked', 'Other')] # Review Reason int32 ${Reason}, [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [int32] # Action ${Action}, [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [System.String] # the rule description. ${Description}, #[-RuleInfoDescription <String>] [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [string[]] # excluded destination asset(s). ${ExcludedLocalIdsList}, #[-RuleInfoExcludedLocalIdsList <String[]>] [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [Int64] # when the rule should expiry. ${ExpiresAt}, #[-RuleInfoExpiresAt <Int64>] [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [int32] # ip sec configuration ${IpSecOpt}, [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [System.String] # The Destination asset(s). ${LocalEntityId}, #[-RuleInfoLocalEntityId <String>] [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [System.String[]] # the destination process paths. ${LocalProcessesList}, #[-RuleInfoLocalProcessesList <String[]>] [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [ZeroNetworks.PowerShell.Cmdlets.Api.Models.IPortsListItem[]] # the destination ports and protocols. ${PortsList}, #[-RuleInfoPortsList <IPortsListItem[]>] [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [string[]] # the source asset(s). ${RemoteEntityIdsList}, #[-RuleInfoRemoteEntityIdsList <String[]>] [Parameter(ParameterSetName = 'ApproveWithChangesExpanded')] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')] [int32] # the rule state. ${State}, [Parameter()] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')] [System.Management.Automation.SwitchParameter] # Run the command as a job ${AsJob}, [Parameter(DontShow)] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')] [System.Management.Automation.SwitchParameter] # Wait for .NET debugger to attach ${Break}, [Parameter(DontShow)] [ValidateNotNull()] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')] [ZeroNetworks.PowerShell.Cmdlets.Api.Runtime.SendAsyncStep[]] # SendAsync Pipeline Steps to be appended to the front of the pipeline ${HttpPipelineAppend}, [Parameter(DontShow)] [ValidateNotNull()] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')] [ZeroNetworks.PowerShell.Cmdlets.Api.Runtime.SendAsyncStep[]] # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, [Parameter()] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')] [System.Management.Automation.SwitchParameter] # Run the command asynchronously ${NoWait}, [Parameter(DontShow)] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')] [System.Uri] # The URI for the proxy server to use ${Proxy}, [Parameter(DontShow)] [ValidateNotNull()] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')] [System.Management.Automation.PSCredential] # Credentials for a proxy server to use for the remote call ${ProxyCredential}, [Parameter(DontShow)] [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')] [System.Management.Automation.SwitchParameter] # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) process { try { #handle based on paramtersetname switch ($PsCmdlet.ParameterSetName) { "ApproveExpanded" { ZeroNetworks.internal\Approve-ZNAssetOutboundRulesReview @PSBoundParameters } "ApproveWithChangesExpanded" { #Handle Get $ruleId = $PSBoundParameters['RuleId'].ToString() $rule = ZeroNetworks\Get-ZNOutboundRule -RuleId $ruleId $ruleReview = [ZeroNetworks.PowerShell.Cmdlets.Api.Models.RuleReviewApproveWithChanges]::new() if ($PSBoundParameters['Reason']) { if ($PSBoundParameters['Reason'] -eq 'Other') { if (!$PSBoundParameters['Details']) { Write-Error "You must provide Details if Reason is Other" } } switch ($PSBoundParameters['Reason']) { 'HumanTrafficCoveredByMFA' { $intReason = 1 } 'TightenRuleScope' { $intReason = 2 } 'MissingPortOrProcess' { $intReason = 3 } 'AffectedEntitiesContainedInAnExisitingGroup' { $intReason = 4 } 'RedundantRule' { $intReason = 5 } 'TrafficShouldBeBlocked' { $intReason = 6 } "Other" { $intReason = 7 } } $ruleReview.ReviewReason = $intReason $null = $PSBoundParameters.Remove('Reason') } if ($PSBoundParameters['Details']) { $ruleReview.ReviewDetails = $PSBoundParameters['Details'] $null = $PSBoundParameters.Remove('Details') } $ruleReview.RuleInfoDirection = 2 if ($PSBoundParameters['Action']) { $ruleReview.RuleInfoAction = $PSBoundParameters['Action'] $null = $PSBoundParameters.Remove('Action') } else { $ruleReview.RuleInfoAction = $rule.ItemAction $null = $PSBoundParameters.Remove('Action') } if ($PSBoundParameters['Description']) { $ruleReview.RuleInfoDescription = $PSBoundParameters['Description'] $null = $PSBoundParameters.Remove('Description') } else { $ruleReview.RuleInfoDescription = $rule.ItemDescription $null = $PSBoundParameters.Remove('Description') } if ($PSBoundParameters['ExcludedLocalIdsList']) { $ruleReview.RuleInfoExcludedLocalIdsList = $PSBoundParameters['ExcludedLocalIdsList'] $null = $PSBoundParameters.Remove('ExcludedLocalIdsList') } else { $ruleReview.RuleInfoExcludedLocalIdsList = $rule.ItemExcludedLocalIdsList $null = $PSBoundParameters.Remove('ExcludedLocalIdsList') } if ($PSBoundParameters['ExpiresAt']) { $ruleReview.RuleInfoExpiresAt = $PSBoundParameters['ExpiresAt'] $null = $PSBoundParameters.Remove('ExpiresAt') } else { $ruleReview.RuleInfoExpiresAt = $rule.ItemExpiresAt $null = $PSBoundParameters.Remove('ExpiresAt') } if ($PSBoundParameters['IpSecOpt']) { $ruleReview.RuleInfoIpSecOpt = $PSBoundParameters['IpSecOpt'] $null = $PSBoundParameters.Remove('IpSecOpt') } else { $ruleReview.RuleInfoIpSecOpt = $rule.ItemIpSecOpt $null = $PSBoundParameters.Remove('IpSecOpt') } if ($PSBoundParameters['LocalEntityId']) { $ruleReview.RuleInfoLocalEntityId = $PSBoundParameters['LocalEntityId'] $null = $PSBoundParameters.Remove('LocalEntityId') } else { $ruleReview.RuleInfoLocalEntityId = $rule.ItemLocalEntityId $null = $PSBoundParameters.Remove('LocalEntityId') } if ($PSBoundParameters['LocalProcessesList']) { $ruleReview.RuleInfoLocalProcessesList = $PSBoundParameters['LocalProcessesList'] $null = $PSBoundParameters.Remove('LocalProcessesList') } else { $ruleReview.RuleInfoLocalProcessesList = $rule.ItemLocalProcessesList $null = $PSBoundParameters.Remove('LocalProcessesList') } if ($PSBoundParameters['PortsList']) { $ruleReview.RuleInfoPortsList = $PSBoundParameters['PortsList'] $null = $PSBoundParameters.Remove('PortsList') } else { $ruleReview.RuleInfoPortsList = $rule.ItemPortsList $null = $PSBoundParameters.Remove('PortsList') } if ($PSBoundParameters['RemoteEntityIdsList']) { $ruleReview.RuleInfoRemoteEntityIdsList = $PSBoundParameters['RemoteEntityIdsList'] $null = $PSBoundParameters.Remove('RemoteEntityIdsList') } else { $ruleReview.RuleInfoRemoteEntityIdsList = $rule.ItemRemoteEntityIdsList $null = $PSBoundParameters.Remove('RemoteEntityIdsList') } if ($PSBoundParameters['State']) { $ruleReview.RuleInfoState = $PSBoundParameters['State'] $null = $PSBoundParameters.Remove('State') } else { $ruleReview.RuleInfoState = 1 $null = $PSBoundParameters.Remove('State') } $null = $PSBoundParameters.Add('Body', $ruleReview) ZeroNetworks.internal\Approve-ZNAssetOutboundRulesReview @PSBoundParameters } } } catch { throw } } } # SIG # Begin signature block # MIItZwYJKoZIhvcNAQcCoIItWDCCLVQCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB8nsQ6ktyJbm0u # KFtYomn6Sa8b5vLhEXfurrNkoZ+/gKCCEmswggVvMIIEV6ADAgECAhBI/JO0YFWU # jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI # DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM # EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy # dmljZXMwHhcNMjEwNTI1MDAwMDAwWhcNMjgxMjMxMjM1OTU5WjBWMQswCQYDVQQG # EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRTZWN0aWdv # IFB1YmxpYyBDb2RlIFNpZ25pbmcgUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEBAQUA # A4ICDwAwggIKAoICAQCN55QSIgQkdC7/FiMCkoq2rjaFrEfUI5ErPtx94jGgUW+s # hJHjUoq14pbe0IdjJImK/+8Skzt9u7aKvb0Ffyeba2XTpQxpsbxJOZrxbW6q5KCD # J9qaDStQ6Utbs7hkNqR+Sj2pcaths3OzPAsM79szV+W+NDfjlxtd/R8SPYIDdub7 # P2bSlDFp+m2zNKzBenjcklDyZMeqLQSrw2rq4C+np9xu1+j/2iGrQL+57g2extme # me/G3h+pDHazJyCh1rr9gOcB0u/rgimVcI3/uxXP/tEPNqIuTzKQdEZrRzUTdwUz # T2MuuC3hv2WnBGsY2HH6zAjybYmZELGt2z4s5KoYsMYHAXVn3m3pY2MeNn9pib6q # RT5uWl+PoVvLnTCGMOgDs0DGDQ84zWeoU4j6uDBl+m/H5x2xg3RpPqzEaDux5mcz # mrYI4IAFSEDu9oJkRqj1c7AGlfJsZZ+/VVscnFcax3hGfHCqlBuCF6yH6bbJDoEc # QNYWFyn8XJwYK+pF9e+91WdPKF4F7pBMeufG9ND8+s0+MkYTIDaKBOq3qgdGnA2T # OglmmVhcKaO5DKYwODzQRjY1fJy67sPV+Qp2+n4FG0DKkjXp1XrRtX8ArqmQqsV/ # AZwQsRb8zG4Y3G9i/qZQp7h7uJ0VP/4gDHXIIloTlRmQAOka1cKG8eOO7F/05QID # AQABo4IBEjCCAQ4wHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYD # VR0OBBYEFDLrkpr/NZZILyhAQnAgNpFcF4XmMA4GA1UdDwEB/wQEAwIBhjAPBgNV # HRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMDMBsGA1UdIAQUMBIwBgYE # VR0gADAIBgZngQwBBAEwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC5jb21v # ZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNAYIKwYBBQUHAQEE # KDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZI # hvcNAQEMBQADggEBABK/oe+LdJqYRLhpRrWrJAoMpIpnuDqBv0WKfVIHqI0fTiGF # OaNrXi0ghr8QuK55O1PNtPvYRL4G2VxjZ9RAFodEhnIq1jIV9RKDwvnhXRFAZ/ZC # J3LFI+ICOBpMIOLbAffNRk8monxmwFE2tokCVMf8WPtsAO7+mKYulaEMUykfb9gZ # pk+e96wJ6l2CxouvgKe9gUhShDHaMuwV5KZMPWw5c9QLhTkg4IUaaOGnSDip0TYl # d8GNGRbFiExmfS9jzpjoad+sPKhdnckcW67Y8y90z7h+9teDnRGWYpquRRPaf9xH # +9/DUp/mBlXpnYzyOmJRvOwkDynUWICE5EV7WtgwggYcMIIEBKADAgECAhAz1wio # kUBTGeKlu9M5ua1uMA0GCSqGSIb3DQEBDAUAMFYxCzAJBgNVBAYTAkdCMRgwFgYD # VQQKEw9TZWN0aWdvIExpbWl0ZWQxLTArBgNVBAMTJFNlY3RpZ28gUHVibGljIENv # ZGUgU2lnbmluZyBSb290IFI0NjAeFw0yMTAzMjIwMDAwMDBaFw0zNjAzMjEyMzU5 # NTlaMFcxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxLjAs # BgNVBAMTJVNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBFViBSMzYwggGi # MA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC70f4et0JbePWQp64sg/GNIdMw # hoV739PN2RZLrIXFuwHP4owoEXIEdiyBxasSekBKxRDogRQ5G19PB/YwMDB/NSXl # wHM9QAmU6Kj46zkLVdW2DIseJ/jePiLBv+9l7nPuZd0o3bsffZsyf7eZVReqskmo # PBBqOsMhspmoQ9c7gqgZYbU+alpduLyeE9AKnvVbj2k4aOqlH1vKI+4L7bzQHkND # brBTjMJzKkQxbr6PuMYC9ruCBBV5DFIg6JgncWHvL+T4AvszWbX0w1Xn3/YIIq62 # 0QlZ7AGfc4m3Q0/V8tm9VlkJ3bcX9sR0gLqHRqwG29sEDdVOuu6MCTQZlRvmcBME # Jd+PuNeEM4xspgzraLqVT3xE6NRpjSV5wyHxNXf4T7YSVZXQVugYAtXueciGoWnx # G06UE2oHYvDQa5mll1CeHDOhHu5hiwVoHI717iaQg9b+cYWnmvINFD42tRKtd3V6 # zOdGNmqQU8vGlHHeBzoh+dYyZ+CcblSGoGSgg8sCAwEAAaOCAWMwggFfMB8GA1Ud # IwQYMBaAFDLrkpr/NZZILyhAQnAgNpFcF4XmMB0GA1UdDgQWBBSBMpJBKyjNRsjE # osYqORLsSKk/FDAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAT # BgNVHSUEDDAKBggrBgEFBQcDAzAaBgNVHSAEEzARMAYGBFUdIAAwBwYFZ4EMAQMw # SwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdv # UHVibGljQ29kZVNpZ25pbmdSb290UjQ2LmNybDB7BggrBgEFBQcBAQRvMG0wRgYI # KwYBBQUHMAKGOmh0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0Nv # ZGVTaWduaW5nUm9vdFI0Ni5wN2MwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNl # Y3RpZ28uY29tMA0GCSqGSIb3DQEBDAUAA4ICAQBfNqz7+fZyWhS38Asd3tj9lwHS # /QHumS2G6Pa38Dn/1oFKWqdCSgotFZ3mlP3FaUqy10vxFhJM9r6QZmWLLXTUqwj3 # ahEDCHd8vmnhsNufJIkD1t5cpOCy1rTP4zjVuW3MJ9bOZBHoEHJ20/ng6SyJ6UnT # s5eWBgrh9grIQZqRXYHYNneYyoBBl6j4kT9jn6rNVFRLgOr1F2bTlHH9nv1HMePp # GoYd074g0j+xUl+yk72MlQmYco+VAfSYQ6VK+xQmqp02v3Kw/Ny9hA3s7TSoXpUr # OBZjBXXZ9jEuFWvilLIq0nQ1tZiao/74Ky+2F0snbFrmuXZe2obdq2TWauqDGIgb # MYL1iLOUJcAhLwhpAuNMu0wqETDrgXkG4UGVKtQg9guT5Hx2DJ0dJmtfhAH2KpnN # r97H8OQYok6bLyoMZqaSdSa+2UA1E2+upjcaeuitHFFjBypWBmztfhj24+xkc6Zt # CDaLrw+ZrnVrFyvCTWrDUUZBVumPwo3/E3Gb2u2e05+r5UWmEsUUWlJBl6MGAAjF # 5hzqJ4I8O9vmRsTvLQA1E802fZ3lqicIBczOwDYOSxlP0GOabb/FKVMxItt1UHeG # 0PL4au5rBhs+hSMrl8h+eplBDN1Yfw6owxI9OjWb4J0sjBeBVESoeh2YnZZ/WVim # VGX/UUIL+Efrz/jlvzCCBtQwggU8oAMCAQICEEhqM5UGO2li0g/diYHDnGMwDQYJ # KoZIhvcNAQELBQAwVzELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGlt # aXRlZDEuMCwGA1UEAxMlU2VjdGlnbyBQdWJsaWMgQ29kZSBTaWduaW5nIENBIEVW # IFIzNjAeFw0yNDA1MDYwMDAwMDBaFw0yNzA1MDYyMzU5NTlaMIGYMRIwEAYDVQQF # Ewk1MTYwMTYxNTExEzARBgsrBgEEAYI3PAIBAxMCSUwxHTAbBgNVBA8TFFByaXZh # dGUgT3JnYW5pemF0aW9uMQswCQYDVQQGEwJJTDERMA8GA1UECAwIVGVsIEF2aXYx # FjAUBgNVBAoMDVplcm8gTmV0d29ya3MxFjAUBgNVBAMMDVplcm8gTmV0d29ya3Mw # ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKnQeCu0/ri+8v7oLwpNVU # 5zgD+5HFVGZdW4kPLRAIPWiqgzr7tqLjl6avUTgEyamM+DQKdhArtJx4rmI6f83r # RnHs2ncRUYZVYimI98q2Biwic4WcHTreuoNqshW6dT60lgVtkGrB27Rb9HZOyAAG # APdjtPXjqlYKuf373Q/6f8W7V8CM8OggVtWtbxC6zQcZxk/ybhi0dRRIax2154kk # uItwSprYxzlnaxAz23dGTsX1HT2++P2bVqEK26WD7LutViWkYFl3UJYSqHbGZpip # RqacOFQy/1M2IhtYEJUobxW5KMAA1NyHBHyo9/8Q/nHlb9b6WKWHxtYdhv8drH0A # BST9xY7H3F1KNPzwGKDJCTJYbWi16RfAmzv5gMbToR1bKduju+pZpngjTwiOtfOy # edZ2GQcIqNC6D1kUMue6ntXgthGLV+LCDJ5oJPYfAfCjgMcVmKH8rJdJZKUP0p9/ # TJJop97Sbl+JaqoFuI56XWQ1+VnFodOnYuil0E2eqQh/9dGuLKoc8CGeN4Am7mdP # aq81Mqm99qLv/12VaA8IGRSDNK8hvhqeUtmUjFpgvSY5V//aG+Jt+THV832ZdbtP # 4aY9PXE3bk797YblZogb7hDJn5l1uOdBxRNYiCLCgImcEaL75hORkTHCaeOkFGkh # aPvQYl86jRyXH2atgtRrPQIDAQABo4IB2DCCAdQwHwYDVR0jBBgwFoAUgTKSQSso # zUbIxKLGKjkS7EipPxQwHQYDVR0OBBYEFGpSOI5RUBrCx7giLVaOkzLUyUJwMA4G # A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMD # MEkGA1UdIARCMEAwNQYMKwYBBAGyMQECAQYBMCUwIwYIKwYBBQUHAgEWF2h0dHBz # Oi8vc2VjdGlnby5jb20vQ1BTMAcGBWeBDAEDMEsGA1UdHwREMEIwQKA+oDyGOmh0 # dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5nQ0FF # VlIzNi5jcmwwewYIKwYBBQUHAQEEbzBtMEYGCCsGAQUFBzAChjpodHRwOi8vY3J0 # LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2RlU2lnbmluZ0NBRVZSMzYuY3J0 # MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTBKBgNVHREEQzBB # oBwGCCsGAQUFBwgDoBAwDgwMSUwtNTE2MDE2MTUxgSFkYW5pZWwubHVwb25lbmtv # QHplcm9uZXR3b3Jrcy5jb20wDQYJKoZIhvcNAQELBQADggGBAHaSsBW+hVthxDMg # 9sH8JWAXHStnAgXHlMk7uahK30MY1YmIVicPCZuhtLXZ16rJncf7OcoCB92MBPgf # KpyLOPbiiPRJ7E1kvAIrdVzGJpArbxQJCfqAWagp4/zJkKxPIOPJZlLX8oJp9AQ3 # oOOw1aV6O+BnZ5xgzLTp2HCAuHCfnJYYC7gXjw8XT+E/c/0m9o3RCDGmyGLUnFqs # X3vQGdnZEO5TIMP1OFvFW5wi9JLctXw1jz4l8ui5pKmYYGOFTsDESLzTmTtBTh73 # 7CZOQbjd8oJAf24S4FJSzAsqozdUN6ne1DHWWI8RIY6yFg2BzHYuma5x+z3Nlpnq # Z1OTg8Lub8jGOG1avLN6jw3yDk4FbVqdBNg34yCDZoZSn9AvxrQ+e2w4/X3ITezE # /FcqReVXnldPcfn8Yu48h0i3wcz18L45nCRQa5LwKSuCoyjgOJ9IbPdbabbF74bj # hIW5E5ZWl7RBGCF9Wa41LHmBDsgCsOQGnrqEyQdcGxnCrU2WSDGCGlIwghpOAgEB # MGswVzELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDEuMCwG # A1UEAxMlU2VjdGlnbyBQdWJsaWMgQ29kZSBTaWduaW5nIENBIEVWIFIzNgIQSGoz # lQY7aWLSD92JgcOcYzANBglghkgBZQMEAgEFAKB8MBAGCisGAQQBgjcCAQwxAjAA # MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgor # BgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCCk9KGJJir202/3qH3nQ4JqsMAC+V5O # rf9xhLcN2+TyezANBgkqhkiG9w0BAQEFAASCAgAAslShEZEXE8n+C/HEYTV9jas7 # 08jjSXOoPKKcWiqhxPG9rByUlCIFnXwpxb4yav+vHmes8rycDIvbitKIW91myusL # 8KWaWAgq4r9XtnGMzdeaf4rKcHRL8HmA4LbIlmzS1fsgQbxro0kE7bSWyc1MnNCD # ClsxBW9VzgvhU/TBCc+hK9BwX3xnyodSVoniHVl222geB4C/Pd1kZ1tDr5wuakmD # cmqrxamjD3EjZq0uckdf1WP7VnWDagKjEQv5ZsMhhQejeruDf7lDKEw6JsvzxYVY # +tvKBitEY7KVntqe+1maKg4na+p3Joup4w8Ag+KNibkGaeXC3z5g59G65DROTGEG # yhBg7x1K3RIspRFvNjcKaEI21tsw77LR9Z4yZ5lFeYrtGjAFqgUqswHCj9c32vld # kY5eYzcgZZqvRqnQd9QksgWQkLboyk1nBl/EmYt56b2dyxCRlt+i2jhfdIrtYHxv # 9tUSwWyagZbyGM5LYHy7Edl7wzpWN+L8Y8X3V9Kmwju2/SDngdwOpUiu3j2udpdd # eXUoMkcOQQKCCKWfYiiunXrvjYWiTqQb1678WmDrRBcS/6OsGhh/mqUmfmyS4sd3 # M3WZAxkigvA4xiKngwUHVwlFNEXkv4HFKKP7LMpqr4Oi7HE4Qop4POjeDQZFuuE+ # 6H1eCfPraBuRg8Df2KGCFzowghc2BgorBgEEAYI3AwMBMYIXJjCCFyIGCSqGSIb3 # DQEHAqCCFxMwghcPAgEDMQ8wDQYJYIZIAWUDBAIBBQAweAYLKoZIhvcNAQkQAQSg # aQRnMGUCAQEGCWCGSAGG/WwHATAxMA0GCWCGSAFlAwQCAQUABCC4aw7XLFsnBEYt # W5NoDBq3gtmxc2+uJtO7m6SK0TljGwIRAKd3Cd8yQxy0lFHl9Oj8iiQYDzIwMjUw # NDAxMTE1NjE4WqCCEwMwgga8MIIEpKADAgECAhALrma8Wrp/lYfG+ekE4zMEMA0G # CSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg # SW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1 # NiBUaW1lU3RhbXBpbmcgQ0EwHhcNMjQwOTI2MDAwMDAwWhcNMzUxMTI1MjM1OTU5 # WjBCMQswCQYDVQQGEwJVUzERMA8GA1UEChMIRGlnaUNlcnQxIDAeBgNVBAMTF0Rp # Z2lDZXJ0IFRpbWVzdGFtcCAyMDI0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC # CgKCAgEAvmpzn/aVIauWMLpbbeZZo7Xo/ZEfGMSIO2qZ46XB/QowIEMSvgjEdEZ3 # v4vrrTHleW1JWGErrjOL0J4L0HqVR1czSzvUQ5xF7z4IQmn7dHY7yijvoQ7ujm0u # 6yXF2v1CrzZopykD07/9fpAT4BxpT9vJoJqAsP8YuhRvflJ9YeHjes4fduksTHul # ntq9WelRWY++TFPxzZrbILRYynyEy7rS1lHQKFpXvo2GePfsMRhNf1F41nyEg5h7 # iOXv+vjX0K8RhUisfqw3TTLHj1uhS66YX2LZPxS4oaf33rp9HlfqSBePejlYeEdU # 740GKQM7SaVSH3TbBL8R6HwX9QVpGnXPlKdE4fBIn5BBFnV+KwPxRNUNK6lYk2y1 # WSKour4hJN0SMkoaNV8hyyADiX1xuTxKaXN12HgR+8WulU2d6zhzXomJ2PleI9V2 # yfmfXSPGYanGgxzqI+ShoOGLomMd3mJt92nm7Mheng/TBeSA2z4I78JpwGpTRHiT # 7yHqBiV2ngUIyCtd0pZ8zg3S7bk4QC4RrcnKJ3FbjyPAGogmoiZ33c1HG93Vp6lJ # 415ERcC7bFQMRbxqrMVANiav1k425zYyFMyLNyE1QulQSgDpW9rtvVcIH7WvG9sq # Yup9j8z9J1XqbBZPJ5XLln8mS8wWmdDLnBHXgYly/p1DhoQo5fkCAwEAAaOCAYsw # ggGHMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoG # CCsGAQUFBwMIMCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCGSAGG/WwHATAfBgNV # HSMEGDAWgBS6FtltTYUvcyl2mi91jGogj57IbzAdBgNVHQ4EFgQUn1csA3cOKBWQ # ZqVjXu5Pkh92oFswWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDovL2NybDMuZGlnaWNl # cnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0UlNBNDA5NlNIQTI1NlRpbWVTdGFtcGlu # Z0NBLmNybDCBkAYIKwYBBQUHAQEEgYMwgYAwJAYIKwYBBQUHMAGGGGh0dHA6Ly9v # Y3NwLmRpZ2ljZXJ0LmNvbTBYBggrBgEFBQcwAoZMaHR0cDovL2NhY2VydHMuZGln # aWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0UlNBNDA5NlNIQTI1NlRpbWVTdGFt # cGluZ0NBLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAPa0eH3aZW+M4hBJH2UOR9hHb # m04IHdEoT8/T3HuBSyZeq3jSi5GXeWP7xCKhVireKCnCs+8GZl2uVYFvQe+pPTSc # VJeCZSsMo1JCoZN2mMew/L4tpqVNbSpWO9QGFwfMEy60HofN6V51sMLMXNTLfhVq # s+e8haupWiArSozyAmGH/6oMQAh078qRh6wvJNU6gnh5OruCP1QUAvVSu4kqVOcJ # VozZR5RRb/zPd++PGE3qF1P3xWvYViUJLsxtvge/mzA75oBfFZSbdakHJe2BVDGI # GVNVjOp8sNt70+kEoMF+T6tptMUNlehSR7vM+C13v9+9ZOUKzfRUAYSyyEmYtsnp # ltD/GWX8eM70ls1V6QG/ZOB6b6Yum1HvIiulqJ1Elesj5TMHq8CWT/xrW7twipXT # J5/i5pkU5E16RSBAdOp12aw8IQhhA/vEbFkEiF2abhuFixUDobZaA0VhqAsMHOma # T3XThZDNi5U2zHKhUs5uHHdG6BoQau75KiNbh0c+hatSF+02kULkftARjsyEpHKs # F7u5zKRbt5oK5YGwFvgc4pEVUNytmB3BpIiowOIIuDgP5M9WArHYSAR16gc0dP2X # dkMEP5eBsX7bf/MGN4K3HP50v/01ZHo/Z5lGLvNwQ7XHBx1yomzLP8lx4Q1zZKDy # Hcp4VQJLu2kWTsKsOqQwggauMIIElqADAgECAhAHNje3JFR82Ees/ShmKl5bMA0G # CSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ # bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0 # IFRydXN0ZWQgUm9vdCBHNDAeFw0yMjAzMjMwMDAwMDBaFw0zNzAzMjIyMzU5NTla # MGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UE # AxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBp # bmcgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDGhjUGSbPBPXJJ # UVXHJQPE8pE3qZdRodbSg9GeTKJtoLDMg/la9hGhRBVCX6SI82j6ffOciQt/nR+e # DzMfUBMLJnOWbfhXqAJ9/UO0hNoR8XOxs+4rgISKIhjf69o9xBd/qxkrPkLcZ47q # UT3w1lbU5ygt69OxtXXnHwZljZQp09nsad/ZkIdGAHvbREGJ3HxqV3rwN3mfXazL # 6IRktFLydkf3YYMZ3V+0VAshaG43IbtArF+y3kp9zvU5EmfvDqVjbOSmxR3NNg1c # 1eYbqMFkdECnwHLFuk4fsbVYTXn+149zk6wsOeKlSNbwsDETqVcplicu9Yemj052 # FVUmcJgmf6AaRyBD40NjgHt1biclkJg6OBGz9vae5jtb7IHeIhTZgirHkr+g3uM+ # onP65x9abJTyUpURK1h0QCirc0PO30qhHGs4xSnzyqqWc0Jon7ZGs506o9UD4L/w # ojzKQtwYSH8UNM/STKvvmz3+DrhkKvp1KCRB7UK/BZxmSVJQ9FHzNklNiyDSLFc1 # eSuo80VgvCONWPfcYd6T/jnA+bIwpUzX6ZhKWD7TA4j+s4/TXkt2ElGTyYwMO1uK # IqjBJgj5FBASA31fI7tk42PgpuE+9sJ0sj8eCXbsq11GdeJgo1gJASgADoRU7s7p # XcheMBK9Rp6103a50g5rmQzSM7TNsQIDAQABo4IBXTCCAVkwEgYDVR0TAQH/BAgw # BgEB/wIBADAdBgNVHQ4EFgQUuhbZbU2FL3MpdpovdYxqII+eyG8wHwYDVR0jBBgw # FoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQM # MAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0cDov # L29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0cy5k # aWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8EPDA6 # MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVk # Um9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwDQYJ # KoZIhvcNAQELBQADggIBAH1ZjsCTtm+YqUQiAX5m1tghQuGwGC4QTRPPMFPOvxj7 # x1Bd4ksp+3CKDaopafxpwc8dB+k+YMjYC+VcW9dth/qEICU0MWfNthKWb8RQTGId # DAiCqBa9qVbPFXONASIlzpVpP0d3+3J0FNf/q0+KLHqrhc1DX+1gtqpPkWaeLJ7g # iqzl/Yy8ZCaHbJK9nXzQcAp876i8dU+6WvepELJd6f8oVInw1YpxdmXazPByoyP6 # wCeCRK6ZJxurJB4mwbfeKuv2nrF5mYGjVoarCkXJ38SNoOeY+/umnXKvxMfBwWpx # 2cYTgAnEtp/Nh4cku0+jSbl3ZpHxcpzpSwJSpzd+k1OsOx0ISQ+UzTl63f8lY5kn # LD0/a6fxZsNBzU+2QJshIUDQtxMkzdwdeDrknq3lNHGS1yZr5Dhzq6YBT70/O3it # TK37xJV77QpfMzmHQXh6OOmc4d0j/R0o08f56PGYX/sr2H7yRp11LB4nLCbbbxV7 # HhmLNriT1ObyF5lZynDwN7+YAN8gFk8n+2BnFqFmut1VwDophrCYoCvtlUG3OtUV # mDG0YgkPCr2B2RP+v6TR81fZvAT6gt4y3wSJ8ADNXcL50CN/AAvkdgIm2fBldkKm # KYcJRyvmfxqkhQ/8mJb2VVQrH4D6wPIOK+XW+6kvRBVK5xMOHds3OBqhK/bt1nz8 # MIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0BAQwFADBl # MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 # d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv # b3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQswCQYDVQQG # EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl # cnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G # CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7J # IT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxS # D1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb # 7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1ef # VFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoY # OAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSa # M0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI # 8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9L # BADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfm # Q6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDr # McXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15Gkv # mB0t9dmpsh3lGwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E # FgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAUReuir/SSy4IxLVGL # p6chnfNtyA8wDgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEBBG0wazAkBggrBgEF # BQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRw # Oi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0Eu # Y3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9E # aWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAowCDAGBgRVHSAAMA0G # CSqGSIb3DQEBDAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/Vwe9mqyhhyzshV6p # Grsi+IcaaVQi7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLeJLxSA8hO0Cre+i1W # z/n096wwepqLsl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE1Od/6Fmo8L8vC6bp # 8jQ87PcDx4eo0kxAGTVGamlUsLihVo7spNU96LHc/RzY9HdaXFSMb++hUD38dglo # hJ9vytsgjTVgHAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbObyMt9H5xaiNrIv8S # uFQtJ37YOtnwtoeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMYIDdjCCA3ICAQEwdzBj # MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMT # MkRpZ2lDZXJ0IFRydXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5n # IENBAhALrma8Wrp/lYfG+ekE4zMEMA0GCWCGSAFlAwQCAQUAoIHRMBoGCSqGSIb3 # DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjUwNDAxMTE1NjE4 # WjArBgsqhkiG9w0BCRACDDEcMBowGDAWBBTb04XuYtvSPnvk9nFIUIck1YZbRTAv # BgkqhkiG9w0BCQQxIgQgmEDm2u3e4jvMQgJG9+4Sesa6W7MuHQrAMc/kWbz31dow # NwYLKoZIhvcNAQkQAi8xKDAmMCQwIgQgdnafqPJjLx9DCzojMK7WVnX+13PbBdZl # uQWTmEOPmtswDQYJKoZIhvcNAQEBBQAEggIATFQwme/FPlF9SpSBjOLN0Vipv2hd # 0yH2tEN6GUGIGFSqCVuBQrjAGsX7vtfSx9Umv+hQACESrP+7hE4XuJvuInHrhKYZ # qj5avV93RtnzVmmr4HpQMZ7IwKz7PRxKmsGqE0skm5jofDfhMRMK3RrfBD1wr544 # +WeGsA5s3u8k3Zrrndd+6ll1WqjOYS/L5rn3L4j1msXZ/pawUL5KwNd5S0W/38Et # Cv+wx21cnyWre1YHtgz5LSSf0syk49qi4VoFE3OBUns7gu8PBCFbm/LJtBEFqsH2 # Cbkikvc01r3lf4B23WhbbqBcKJoLKeoc+iQAzVpBflkVm6Jt0aQiN8N4XV9lbh2O # WHThCQp158Yd4Xb6gvVhF8R2FdWX1Z7W4lknXrOtL3ksvmt8aC+ooVsz4nC/jTHh # AETITLzV32Ek7zmW5VWnlO/2N4Gu/haWeLl89TOM8DfwAgJl+9vnG+xUAEuf+2Ug # yrlnyKf3EFz2PgyvdGJFTFNFvRuinC0pQYzFdfyyvrN5EFG4cgCdX/p/QXmQWG1X # XRcwTf78grwrm8NX3A9U+BwVmQA21YL9+t+547JKN3xojn0pDWR6I5vPhkgEI//V # xmsbFAz2AY/cUWNZ7G/g3kP4cQN2+ZX2yR237k0nwgz8RggDhFzI92O6GWKzalih # efhyirQiTeOevdU= # SIG # End signature block |