custom/New-AzMLWorkspaceCommandJobObject.ps1


# ----------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code
# is regenerated.
# ----------------------------------------------------------------------------------

<#
.Synopsis
Create an in-memory object for CommandJob.
.Description
Create an in-memory object for CommandJob.
 
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.CommandJob
.Link
https://docs.microsoft.com/powershell/module/az.MLWorkspace/new-AzMLWorkspaceCommandJobObject
#>

function New-AzMLWorkspaceCommandJobObject {
    [OutputType('Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.CommandJob')]
    [CmdletBinding(PositionalBinding=$false)]
    Param(

        [Parameter(HelpMessage="ARM resource ID of the code asset.")]
        [string]
        $CodeId,
        [Parameter(Mandatory, HelpMessage="[Required] The command to execute on startup of the job. eg. `"python train.py`".")]
        [string]
        $Command,
        [Parameter(HelpMessage="[Required] Specifies the type of distribution framework.")]
        [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Support.DistributionType])]
        [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Support.DistributionType]
        $DistributionType,
        [Parameter(Mandatory, HelpMessage="[Required] The ARM resource ID of the Environment specification for the job.")]
        [string]
        $EnvironmentId,
        [Parameter(HelpMessage="Environment variables included in the job.")]
        # [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.ICommandJobEnvironmentVariables]
        [hashtable]
        $EnvironmentVariable,
        [Parameter(HelpMessage="Mapping of input data bindings used in the job.")]
        [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.ICommandJobInputs]
        $JobInput,
        [Parameter(HelpMessage="The max run duration in ISO 8601 format, after which the job will be cancelled. Only supports duration with precision as low as Seconds.")]
        [System.TimeSpan]
        $LimitTimeout,
        [Parameter(HelpMessage="Mapping of output data bindings used in the job.")]
        [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.ICommandJobOutputs]
        $JobOutput,
        [Parameter(HelpMessage="Optional number of instances or nodes used by the compute target.")]
        [int]
        $ResourceInstanceCount,
        [Parameter(HelpMessage="Optional type of VM used as supported by the compute target.")]
        [string]
        $ResourceInstanceType,
        [Parameter(HelpMessage="Additional properties bag.")]
        [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.IResourceConfigurationProperties]
        $ResourceProperty,
        [Parameter(HelpMessage="ARM resource ID of the compute resource.")]
        [string]
        $ComputeId,
        [Parameter(HelpMessage="Display name of job.")]
        [string]
        $DisplayName,
        [Parameter(HelpMessage="The name of the experiment the job belongs to. If not set, the job is placed in the `"Default`" experiment.")]
        [string]
        $ExperimentName,
        [Parameter(HelpMessage="[Required] Specifies the type of identity framework.")]
        [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Support.IdentityConfigurationType])]
        [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Support.IdentityConfigurationType]
        $IdentityType,
        [Parameter(HelpMessage="Is the asset archived?.")]
        [bool]
        $IsArchived,
        # [Parameter(HelpMessage="List of JobEndpoints.
        # For local jobs, a job endpoint will have an endpoint value of FileStreamObject.")]
        # [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.IJobBaseServices]
        # $Service,
        
        [Parameter(HelpMessage="Url for endpoint.")]
        [string]
        $ServiceEndpoint,
        [Parameter(HelpMessage="Port for endpoint.")]
        [int]
        $ServicePort,
        [Parameter(HelpMessage="Additional properties to set on the endpoint.")]
        [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.IJobServiceProperties]
        $ServiceProperty,
        [Parameter(HelpMessage="Endpoint type.")]
        [string]
        $ServiceType,

        [Parameter(HelpMessage="The asset description text.")]
        [string]
        $Description,
        [Parameter(HelpMessage="The asset property dictionary.")]
        [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.IResourceBaseProperties]
        $Property,
        [Parameter(HelpMessage="Tag dictionary. Tags can be added, removed, and updated.")]
        [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.IResourceBaseTags]
        $Tag
    )

    process {
        $Object = [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.CommandJob]::New()
        $Object.JobType = 'Command'
        $Object.LimitJobLimitsType = 'Command' # Required define in swagger.
        $Service = [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.JobBaseServices]::New()

        if ($PSBoundParameters.ContainsKey('CodeId')) {
            $Object.CodeId = $CodeId
        }
        if ($PSBoundParameters.ContainsKey('Command')) {
            $Object.Command = $Command
        }
        if ($PSBoundParameters.ContainsKey('DistributionType')) {
            $Object.DistributionType = $DistributionType
        }
        if ($PSBoundParameters.ContainsKey('EnvironmentId')) {
            $Object.EnvironmentId = $EnvironmentId
        }
        if ($PSBoundParameters.ContainsKey('EnvironmentVariable')) {
            $EnvironmentVariableObj = [Microsoft.Azure.PowerShell.Cmdlets.MachineLearningServices.Models.Api20220501.ICommandJobEnvironmentVariables]::New()
            $EnvironmentVariableObj.CopyFrom($EnvironmentVariable);
            $Object.EnvironmentVariable = $EnvironmentVariableObj
        }
        if ($PSBoundParameters.ContainsKey('JobInput')) {
            $Object.Input = $JobInput
        }
        if ($PSBoundParameters.ContainsKey('LimitJobLimitsType')) {
        }
        if ($PSBoundParameters.ContainsKey('LimitTimeout')) {
            $Object.LimitTimeout = $LimitTimeout
        }
        if ($PSBoundParameters.ContainsKey('JobOutput')) {
            $Object.Output = $JobOutput
        }
        if ($PSBoundParameters.ContainsKey('ResourceInstanceCount')) {
            $Object.ResourceInstanceCount = $ResourceInstanceCount
        }
        if ($PSBoundParameters.ContainsKey('ResourceInstanceType')) {
            $Object.ResourceInstanceType = $ResourceInstanceType
        }
        if ($PSBoundParameters.ContainsKey('ResourceProperty')) {
            $Object.ResourceProperty = $ResourceProperty
        }
        if ($PSBoundParameters.ContainsKey('ComputeId')) {
            $Object.ComputeId = $ComputeId
        }
        if ($PSBoundParameters.ContainsKey('DisplayName')) {
            $Object.DisplayName = $DisplayName
        }
        if ($PSBoundParameters.ContainsKey('ExperimentName')) {
            $Object.ExperimentName = $ExperimentName
        }
        if ($PSBoundParameters.ContainsKey('IdentityType')) {
            $Object.IdentityType = $IdentityType
        }
        if ($PSBoundParameters.ContainsKey('IsArchived')) {
            $Object.IsArchived = $IsArchived
        }
        # if ($PSBoundParameters.ContainsKey('Service')) {
        # $Object.Service = $Service
        # }
        if ($PSBoundParameters.ContainsKey('ServiceEndpoint')) {
            $Service.Endpoint = $ServiceEndpoint
        }
        if ($PSBoundParameters.ContainsKey('ServicePort')) {
            $Service.Port = $ServicePort
        }
        if ($PSBoundParameters.ContainsKey('ServiceProperty')) {
            $Service.Property = $ServiceProperty
        }
        if ($PSBoundParameters.ContainsKey('ServiceType')) {
            $Service.Type = $ServiceType
        }
        
        if ($PSBoundParameters.ContainsKey('Description')) {
            $Object.Description = $Description
        }
        if ($PSBoundParameters.ContainsKey('Property')) {
            $Object.Property = $Property
        }
        if ($PSBoundParameters.ContainsKey('Tag')) {
            $Object.Tag = $Tag
        }
        $Object.Service = $Service
        return $Object
    }
}


# SIG # Begin signature block
# MIInuwYJKoZIhvcNAQcCoIInrDCCJ6gCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBoDGVBHzuz+98B
# mtk5FEWOX0Zj3yPdvZ6s4NqZmtmMUqCCDYUwggYDMIID66ADAgECAhMzAAACU+OD
# 3pbexW7MAAAAAAJTMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMzAwWhcNMjIwOTAxMTgzMzAwWjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQDLhxHwq3OhH+4J+SX4qS/VQG8HybccH7tnG+BUqrXubfGuDFYPZ29uCuHfQlO1
# lygLgMpJ4Geh6/6poQ5VkDKfVssn6aA1PCzIh8iOPMQ9Mju3sLF9Sn+Pzuaie4BN
# rp0MuZLDEXgVYx2WNjmzqcxC7dY9SC3znOh5qUy2vnmWygC7b9kj0d3JrGtjc5q5
# 0WfV3WLXAQHkeRROsJFBZfXFGoSvRljFFUAjU/zdhP92P+1JiRRRikVy/sqIhMDY
# +7tVdzlE2fwnKOv9LShgKeyEevgMl0B1Fq7E2YeBZKF6KlhmYi9CE1350cnTUoU4
# YpQSnZo0YAnaenREDLfFGKTdAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUlZpLWIccXoxessA/DRbe26glhEMw
# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh
# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzQ2NzU5ODAfBgNVHSMEGDAW
# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v
# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw
# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx
# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB
# AKVY+yKcJVVxf9W2vNkL5ufjOpqcvVOOOdVyjy1dmsO4O8khWhqrecdVZp09adOZ
# 8kcMtQ0U+oKx484Jg11cc4Ck0FyOBnp+YIFbOxYCqzaqMcaRAgy48n1tbz/EFYiF
# zJmMiGnlgWFCStONPvQOBD2y/Ej3qBRnGy9EZS1EDlRN/8l5Rs3HX2lZhd9WuukR
# bUk83U99TPJyo12cU0Mb3n1HJv/JZpwSyqb3O0o4HExVJSkwN1m42fSVIVtXVVSa
# YZiVpv32GoD/dyAS/gyplfR6FI3RnCOomzlycSqoz0zBCPFiCMhVhQ6qn+J0GhgR
# BJvGKizw+5lTfnBFoqKZJDROz+uGDl9tw6JvnVqAZKGrWv/CsYaegaPePFrAVSxA
# yUwOFTkAqtNC8uAee+rv2V5xLw8FfpKJ5yKiMKnCKrIaFQDr5AZ7f2ejGGDf+8Tz
# OiK1AgBvOW3iTEEa/at8Z4+s1CmnEAkAi0cLjB72CJedU1LAswdOCWM2MDIZVo9j
# 0T74OkJLTjPd3WNEyw0rBXTyhlbYQsYt7ElT2l2TTlF5EmpVixGtj4ChNjWoKr9y
# TAqtadd2Ym5FNB792GzwNwa631BPCgBJmcRpFKXt0VEQq7UXVNYBiBRd+x4yvjqq
# 5aF7XC5nXCgjbCk7IXwmOphNuNDNiRq83Ejjnc7mxrJGMIIHejCCBWKgAwIBAgIK
# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw
# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD
# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG
# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la
# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc
# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D
# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+
# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk
# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6
# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd
# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL
# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd
# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3
# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS
# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI
# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL
# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD
# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv
# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF
# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h
# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA
# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn
# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7
# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b
# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/
# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy
# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp
# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi
# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb
# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS
# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL
# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX
# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGYwwghmIAgEBMIGVMH4x
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p
# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAJT44Pelt7FbswAAAAA
# AlMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIHjM
# kjizEtPQOcXsWFwrUICHqKN4EG2Ojsr7AZD+9/64MEIGCisGAQQBgjcCAQwxNDAy
# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20wDQYJKoZIhvcNAQEBBQAEggEAtnOhwCaLwPabUDoB/hNYQgw3Ig8akauAsfHG
# IoknQfEG+G47ZfF1vCAwP1o0aAqxMMOjji66tCTUVE7LEJ36OA+T0FnNjhu7bRP6
# YGteZ1dIVUDEA6JT99+mQLHo1ilpH6DHv4hwwro8zyhIehPTP9UsUFXI1fvGWGeR
# F0IPXeok+eR85iuXK1RMX+cmc68qPQaahOSgUIo37XVB4hQ8T3rgwnhUPPylU/P7
# 77HgjUxx7/sgdeV6uLlA6cslnzvOzoLVa1hRkok4FgA882dCOk2/JaG+ec36Fn3F
# ipKI8qwzZFyjfn8hRhnpPMPArJki/aokWsE+kuJBEqyDm1jYkKGCFxYwghcSBgor
# BgEEAYI3AwMBMYIXAjCCFv4GCSqGSIb3DQEHAqCCFu8wghbrAgEDMQ8wDQYJYIZI
# AWUDBAIBBQAwggFZBgsqhkiG9w0BCRABBKCCAUgEggFEMIIBQAIBAQYKKwYBBAGE
# WQoDATAxMA0GCWCGSAFlAwQCAQUABCD3XBOFZC/qHphDIiOMSM31aeQhrKR8LFjx
# 12eNOPBVkQIGYrMejum0GBMyMDIyMDYzMDA5NTg1Ny4yMTdaMASAAgH0oIHYpIHV
# MIHSMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL
# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsT
# HVRoYWxlcyBUU1MgRVNOOjNCRDQtNEI4MC02OUMzMSUwIwYDVQQDExxNaWNyb3Nv
# ZnQgVGltZS1TdGFtcCBTZXJ2aWNloIIRZTCCBxQwggT8oAMCAQICEzMAAAGJtL+G
# MIQcS48AAQAAAYkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
# UENBIDIwMTAwHhcNMjExMDI4MTkyNzQxWhcNMjMwMTI2MTkyNzQxWjCB0jELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9z
# b2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMg
# VFNTIEVTTjozQkQ0LTRCODAtNjlDMzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt
# U3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL0G
# V8WRZmuqZZrjsrzaVfMTjTsHGKJWRvwY8mVhkpOSThmi8qyiHeVcVR1h5bJiROEr
# 587HabCplcfKLTjb3iFBb0nHhGafFV5ruZtX7vC+3Pt5cF3Im43HKrRL7ULJaJEF
# cdK/i+eGm6zQ2q8BRu9yGkYnSEtYvXPrpyfKGMoQ0S6wsrBQFcckITzWZFiu2fP1
# RrpGiiwFh1wof/ked4eNoBS/vf5gAC8cwl17qH4vH/1ygpu8TcFXNYTjQgs+qKve
# ALn81TZJCFuG61EIGKQnCZvVNFzZkL7a6KWA5/VLWPGENDSnp1z7XYCx3UPDZ794
# oBKyi61iNGuZ+Y43Sn8JPvJr2pKnWZpTrHnjktV7KUDSQCtbmZZQCE3J0GTnDuaH
# 4zkN97o1nJAF3c/v8d6O5eAFP00jjMxmTMIVHbVcAt3UmyLaUlRYJ4zNgjhCfc4A
# mnbzoqxgyzeO9Y2SNowpZI7CU3YD5N+N00AOCRb3bP7p2atLi6/p4md1+ODgcdsf
# oFZZZ9nOFG2VzbngOMktUyRm2yRSCCwJk1APQLo+XiEhk2zYslse/R5wjk2q9/UB
# CqM5uC505g18tPyiPx/52GRirkx33JD9vMEEtOqw/nw0ucS8HETAlvdg5B15rW4R
# skYpQTi+S8WXpUH8beeMJeFlAtAHQBKJT3pDg8DvAgMBAAGjggE2MIIBMjAdBgNV
# HQ4EFgQUl28fs0daeCCAHoLgOqxypK35e1AwHwYDVR0jBBgwFoAUn6cVXQBeYl2D
# 9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3Nv
# ZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy
# MDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1l
# LVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUE
# DDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQsFAAOCAgEAjrS3aVlCOCsHyy632iqy
# wfdg6mwLKRljONU2juCZfrB8T6OdtrrtxikAo5pEVq3h7ZX8svZDpOy1msd5N5Hv
# BrX3rX24e6h9C3ldlzloN/QTpx3+pk3GauxWEmWXIdSQ0I3PfPjnZaMPqFoodA27
# eAlf3tfWXBPtZ9c81pLJFBHdH+YzyFIrN96fr5GPLM3bgLQnCHDxVISPB2+WpT1A
# DzIxs8Cm+zSCm53/I/HD9fALOSL3nJBdKIdXMOt0WP7zyutiw2HaYu1pxtjm754H
# 1lSrcIsEyOIx49nDvat+xw3vzz5dteoEqVGYdGqduJipjA33CqdTeJhHbMc+KLHj
# qz2HhbBx1iRSegIr76p+9Ck3iaaea/g8Uqm3kstJsSFDqv5QGlMYDUkFVF9urfK/
# n3IpKHyr9t1h67UVd7e61U7AfWM60WoopJs+vCuR1nbfTKlC8T0D6PqaWdC0apDm
# nuOuvlCkWNCcVrXazHObx5R2X56o2sI/0bDNkukOn2vU/Qp2NTc+w2ARt8mScgjx
# bK4FNObPZY6n7EqbaRXVIfUeHHvi+9UlgyzNsf9TBSyxwDG17BKfCpaBBrWg1C58
# bX0trWIX7ihqkV6BHwzwDJyHU70D4dxh0OEo5JAQERy9DGO+WpYRkyh1owtmi1Tq
# PKGyiAZPIX5xQ1H/xMlcOLkwggdxMIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAA
# AAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
# cnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBB
# dXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwx
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p
# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOC
# Ag8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YB
# f2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKD
# RLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus
# 9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN7928jaTj
# kY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56
# KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39
# IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHo
# vwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJo
# LhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMh
# XV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREd
# cu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEA
# AaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqn
# Uv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnp
# cjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRw
# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0w
# EwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEw
# CwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/o
# olxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNy
# b3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYt
# MjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5t
# aWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5j
# cnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+
# TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2Y
# urYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4
# U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJ
# w7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb
# 30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ
# /gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGO
# WhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFE
# fnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJ
# jXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rR
# nj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUz
# WLOhcGbyoYIC1DCCAj0CAQEwggEAoYHYpIHVMIHSMQswCQYDVQQGEwJVUzETMBEG
# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
# cm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBP
# cGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjNCRDQt
# NEI4MC02OUMzMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl
# oiMKAQEwBwYFKw4DAhoDFQAhpQmt5Hrcnrnsu2yTaVpDLognEKCBgzCBgKR+MHwx
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p
# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBBQUAAgUA5md/
# 9jAiGA8yMDIyMDYzMDA5NTA0NloYDzIwMjIwNzAxMDk1MDQ2WjB0MDoGCisGAQQB
# hFkKBAExLDAqMAoCBQDmZ3/2AgEAMAcCAQACAgKJMAcCAQACAhE6MAoCBQDmaNF2
# AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSCh
# CjAIAgEAAgMBhqAwDQYJKoZIhvcNAQEFBQADgYEAIBv1GJB/gCMQu7IeWePE7p6q
# 8vhSKuGpNlzZSXOpivjP2YX8+VHm32ro9RdyXdz/PGA6EfCLVf8renXDwl3jGnqv
# HyqBh/osHHCb3z1/yYpjqol5/ebc+35mfh+YzzrUdb7wA4LlS6yZlKtjnAcj/o6i
# 5lVbTX62rmadV7ngE94xggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEG
# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
# cm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFt
# cCBQQ0EgMjAxMAITMwAAAYm0v4YwhBxLjwABAAABiTANBglghkgBZQMEAgEFAKCC
# AUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCDB
# RSwg1FbWTuW8yMQxuyzynasbtYI6o7ld9DWXW3FMJDCB+gYLKoZIhvcNAQkQAi8x
# geowgecwgeQwgb0EIGZ3RzHcUFdVbG6Vhzkx6lhMnL3ESZu3GOvZf1Jk/I9FMIGY
# MIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
# BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQG
# A1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAGJtL+GMIQc
# S48AAQAAAYkwIgQgucF92ZvXZjt9f4VnFIsu4ql/jgcaeT3Jkopjpe9Fd0QwDQYJ
# KoZIhvcNAQELBQAEggIALnGv42ypjnaWA2wyVGJkwA/TJM8zzBVC5nMtNdb+XS8+
# s89w7qvvNmhQjFYCzGWzd+Tzvtc9j4lRzCKr1HkAURDySnlDpZtz/Se+e68OiJLz
# SidncHVVDBv5TdpVuhB3+pG9LjlRu8zNTHYtC0If9SssGxcWfySMB+ImCgV+qP4v
# dbW5oYiD6KonYuHKWHst/cAZjWLIIvlfpxuzSvjBwVWxKQzDKTi11C1YF0e3fISU
# hod91lRNDnow2JRRwswFklXml4xrLXg+oU3y/HeQbIzCMSEn8dLehUJuWNV80xf1
# bVbTPjzMe9rQUBH2prZz5PE2FUjYhxe1+LtDbSTccic6WK5Eu525vMtJ4KYAzwOf
# 8cQk7lrWVyz+458+iwtBO6VSp6ZMOhgPbEruhbvwau57T1zWrwohSPdg89erPDIU
# aDfWt5AR8k2RHoAz8isnR9hN9CBBctrYjJgMGzaQmj/7Tjnm1yxa14d0ybYgXhmx
# UYsFX49O23HdLJJ5rJT+TwSBe5SPL5lRAPBvUDOjwcdZaBgx+XD87m99CfDGEfDM
# 2fFFQdH/paiHRbpDCPEcmUIf3tMPBpiQ4OHW61cLilS24l1Bo9HoZAq6rVjdyJmJ
# JOHDJ6sSl0I3HaVZv+FBmQf2repoZttTRFJLpbelAH5YpOdrcnJ6O1eNxkHHBcU=
# SIG # End signature block