exports/latest-2019-04-30/Update-AzADApplication.ps1

<#
.Synopsis
Update an existing application.
.Description
Update an existing application.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.resources/update-azadapplication
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IApplicationUpdateParameters
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.IResourcesIdentity
.Outputs
System.Boolean
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
APPROLE <IAppRole[]>: The collection of application roles that an application may declare. These roles can be assigned to users, groups or service principals.
  [AllowedMemberType <String[]>]: Specifies whether this app role definition can be assigned to users and groups by setting to 'User', or to other applications (that are accessing this application in daemon service scenarios) by setting to 'Application', or to both.
  [Description <String>]: Permission help text that appears in the admin app assignment and consent experiences.
  [DisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment experiences.
  [Id <String>]: Unique role identifier inside the appRoles collection.
  [IsEnabled <Boolean?>]: When creating or updating a role definition, this must be set to true (which is the default). To delete a role, this must first be set to false. At that point, in a subsequent call, this role may be removed.
  [Value <String>]: Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
 
INPUTOBJECT <IResourcesIdentity>: Identity Parameter
  [ApplianceDefinitionId <String>]: The fully qualified ID of the appliance definition, including the appliance name and the appliance definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applianceDefinitions/{applianceDefinition-name}
  [ApplianceDefinitionName <String>]: The name of the appliance definition.
  [ApplianceId <String>]: The fully qualified ID of the appliance, including the appliance name and the appliance resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/appliances/{appliance-name}
  [ApplianceName <String>]: The name of the appliance.
  [ApplicationDefinitionId <String>]: The fully qualified ID of the managed application definition, including the managed application name and the managed application definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applicationDefinitions/{applicationDefinition-name}
  [ApplicationDefinitionName <String>]: The name of the managed application definition.
  [ApplicationId <String>]: The application ID.
  [ApplicationId1 <String>]: The fully qualified ID of the managed application, including the managed application name and the managed application resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applications/{application-name}
  [ApplicationName <String>]: The name of the managed application.
  [ApplicationObjectId <String>]: Application object ID.
  [DenyAssignmentId <String>]: The ID of the deny assignment to get.
  [DeploymentName <String>]: The name of the deployment.
  [DomainName <String>]: name of the domain.
  [FeatureName <String>]: The name of the feature to get.
  [GroupId <String>]: Management Group ID.
  [GroupObjectId <String>]: The object ID of the group from which to remove the member.
  [Id <String>]: Resource identity path
  [LinkId <String>]: The fully qualified ID of the resource link. Use the format, /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/{provider-namespace}/{resource-type}/{resource-name}/Microsoft.Resources/links/{link-name}. For example, /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myGroup/Microsoft.Web/sites/mySite/Microsoft.Resources/links/myLink
  [LockName <String>]: The name of lock.
  [ManagementGroupId <String>]: The ID of the management group.
  [MemberObjectId <String>]: Member object id
  [ObjectId <String>]: Application object ID.
  [OperationId <String>]: The ID of the operation to get.
  [OwnerObjectId <String>]: Owner object id
  [ParentResourcePath <String>]: The parent resource identity.
  [PolicyAssignmentId <String>]: The ID of the policy assignment to delete. Use the format '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'.
  [PolicyAssignmentName <String>]: The name of the policy assignment to delete.
  [PolicyDefinitionName <String>]: The name of the policy definition to create.
  [PolicySetDefinitionName <String>]: The name of the policy set definition to create.
  [ResourceGroupName <String>]: The name of the resource group that contains the resource to delete. The name is case insensitive.
  [ResourceId <String>]: The fully qualified ID of the resource, including the resource name and resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}
  [ResourceName <String>]: The name of the resource to delete.
  [ResourceProviderNamespace <String>]: The namespace of the resource provider.
  [ResourceType <String>]: The resource type.
  [RoleAssignmentId <String>]: The ID of the role assignment to delete.
  [RoleAssignmentName <String>]: The name of the role assignment to delete.
  [RoleDefinitionId <String>]: The ID of the role definition to delete.
  [RoleId <String>]: The ID of the role assignment to delete.
  [Scope <String>]: The scope for the lock.
  [SourceResourceGroupName <String>]: The name of the resource group containing the resources to move.
  [SubscriptionId <String>]: The ID of the target subscription.
  [TagName <String>]: The name of the tag.
  [TagValue <String>]: The value of the tag to delete.
  [TenantId <String>]: The tenant ID.
  [UpnOrObjectId <String>]: The object ID or principal name of the user for which to get information.
 
KEYCREDENTIALS <IKeyCredential[]>: A collection of KeyCredential objects.
  [CustomKeyIdentifier <String>]: Custom Key Identifier
  [EndDate <DateTime?>]: End date.
  [KeyId <String>]: Key ID.
  [StartDate <DateTime?>]: Start date.
  [Type <String>]: Type. Acceptable values are 'AsymmetricX509Cert' and 'Symmetric'.
  [Usage <String>]: Usage. Acceptable values are 'Verify' and 'Sign'.
  [Value <String>]: Key value.
 
OAUTH2PERMISSION <IOAuth2Permission[]>: The collection of OAuth 2.0 permission scopes that the web API (resource) application exposes to client applications. These permission scopes may be granted to client applications during consent.
  [AdminConsentDescription <String>]: Permission help text that appears in the admin consent and app assignment experiences.
  [AdminConsentDisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment experiences.
  [Id <String>]: Unique scope permission identifier inside the oauth2Permissions collection.
  [IsEnabled <Boolean?>]: When creating or updating a permission, this property must be set to true (which is the default). To delete a permission, this property must first be set to false. At that point, in a subsequent call, the permission may be removed.
  [Type <String>]: Specifies whether this scope permission can be consented to by an end user, or whether it is a tenant-wide permission that must be consented to by a Company Administrator. Possible values are "User" or "Admin".
  [UserConsentDescription <String>]: Permission help text that appears in the end user consent experience.
  [UserConsentDisplayName <String>]: Display name for the permission that appears in the end user consent experience.
  [Value <String>]: The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
 
OPTIONALCLAIMACCESSTOKEN <IOptionalClaim[]>: Optional claims requested to be included in the access token.
  [AdditionalProperty <IOptionalClaimAdditionalProperties>]:
  [Essential <Boolean?>]: Is this a required claim.
  [Name <String>]: Claim name.
  [Source <String>]: Claim source.
 
OPTIONALCLAIMIDTOKEN <IOptionalClaim[]>: Optional claims requested to be included in the id token.
  [AdditionalProperty <IOptionalClaimAdditionalProperties>]:
  [Essential <Boolean?>]: Is this a required claim.
  [Name <String>]: Claim name.
  [Source <String>]: Claim source.
 
OPTIONALCLAIMSAMLTOKEN <IOptionalClaim[]>: Optional claims requested to be included in the saml token.
  [AdditionalProperty <IOptionalClaimAdditionalProperties>]:
  [Essential <Boolean?>]: Is this a required claim.
  [Name <String>]: Claim name.
  [Source <String>]: Claim source.
 
PARAMETER <IApplicationUpdateParameters>: Request parameters for updating a new application.
  [AllowGuestsSignIn <Boolean?>]: A property on the application to indicate if the application accepts other IDPs or not or partially accepts.
  [AllowPassthroughUser <Boolean?>]: Indicates that the application supports pass through users who have no presence in the resource tenant.
  [AppLogoUrl <String>]: The url for the application logo image stored in a CDN.
  [AppPermission <String[]>]: The application permissions.
  [AppRole <IAppRole[]>]: The collection of application roles that an application may declare. These roles can be assigned to users, groups or service principals.
    [AllowedMemberType <String[]>]: Specifies whether this app role definition can be assigned to users and groups by setting to 'User', or to other applications (that are accessing this application in daemon service scenarios) by setting to 'Application', or to both.
    [Description <String>]: Permission help text that appears in the admin app assignment and consent experiences.
    [DisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment experiences.
    [Id <String>]: Unique role identifier inside the appRoles collection.
    [IsEnabled <Boolean?>]: When creating or updating a role definition, this must be set to true (which is the default). To delete a role, this must first be set to false. At that point, in a subsequent call, this role may be removed.
    [Value <String>]: Specifies the value of the roles claim that the application should expect in the authentication and access tokens.
  [AvailableToOtherTenant <Boolean?>]: Whether the application is available to other tenants.
  [ErrorUrl <String>]: A URL provided by the author of the application to report errors when using the application.
  [GroupMembershipClaim <GroupMembershipClaimTypes?>]: Configures the groups claim issued in a user or OAuth 2.0 access token that the app expects.
  [Homepage <String>]: The home page of the application.
  [InformationalUrlMarketing <String>]: The marketing URI
  [InformationalUrlPrivacy <String>]: The privacy policy URI
  [InformationalUrlSupport <String>]: The support URI
  [InformationalUrlTermsOfService <String>]: The terms of service URI
  [IsDeviceOnlyAuthSupported <Boolean?>]: Specifies whether this application supports device authentication without a user. The default is false.
  [KeyCredentials <IKeyCredential[]>]: A collection of KeyCredential objects.
    [CustomKeyIdentifier <String>]: Custom Key Identifier
    [EndDate <DateTime?>]: End date.
    [KeyId <String>]: Key ID.
    [StartDate <DateTime?>]: Start date.
    [Type <String>]: Type. Acceptable values are 'AsymmetricX509Cert' and 'Symmetric'.
    [Usage <String>]: Usage. Acceptable values are 'Verify' and 'Sign'.
    [Value <String>]: Key value.
  [KnownClientApplication <String[]>]: Client applications that are tied to this resource application. Consent to any of the known client applications will result in implicit consent to the resource application through a combined consent dialog (showing the OAuth permission scopes required by the client and the resource).
  [LogoutUrl <String>]: the url of the logout page
  [Oauth2AllowImplicitFlow <Boolean?>]: Whether to allow implicit grant flow for OAuth2
  [Oauth2AllowUrlPathMatching <Boolean?>]: Specifies whether during a token Request Azure AD will allow path matching of the redirect URI against the applications collection of replyURLs. The default is false.
  [Oauth2Permission <IOAuth2Permission[]>]: The collection of OAuth 2.0 permission scopes that the web API (resource) application exposes to client applications. These permission scopes may be granted to client applications during consent.
    [AdminConsentDescription <String>]: Permission help text that appears in the admin consent and app assignment experiences.
    [AdminConsentDisplayName <String>]: Display name for the permission that appears in the admin consent and app assignment experiences.
    [Id <String>]: Unique scope permission identifier inside the oauth2Permissions collection.
    [IsEnabled <Boolean?>]: When creating or updating a permission, this property must be set to true (which is the default). To delete a permission, this property must first be set to false. At that point, in a subsequent call, the permission may be removed.
    [Type <String>]: Specifies whether this scope permission can be consented to by an end user, or whether it is a tenant-wide permission that must be consented to by a Company Administrator. Possible values are "User" or "Admin".
    [UserConsentDescription <String>]: Permission help text that appears in the end user consent experience.
    [UserConsentDisplayName <String>]: Display name for the permission that appears in the end user consent experience.
    [Value <String>]: The value of the scope claim that the resource application should expect in the OAuth 2.0 access token.
  [Oauth2RequirePostResponse <Boolean?>]: Specifies whether, as part of OAuth 2.0 token requests, Azure AD will allow POST requests, as opposed to GET requests. The default is false, which specifies that only GET requests will be allowed.
  [OptionalClaimAccessToken <IOptionalClaim[]>]: Optional claims requested to be included in the access token.
    [AdditionalProperty <IOptionalClaimAdditionalProperties>]:
    [Essential <Boolean?>]: Is this a required claim.
    [Name <String>]: Claim name.
    [Source <String>]: Claim source.
  [OptionalClaimIdToken <IOptionalClaim[]>]: Optional claims requested to be included in the id token.
  [OptionalClaimSamlToken <IOptionalClaim[]>]: Optional claims requested to be included in the saml token.
  [OrgRestriction <String[]>]: A list of tenants allowed to access application.
  [PasswordCredentials <IPasswordCredential[]>]: A collection of PasswordCredential objects
    [CustomKeyIdentifier <Byte[]>]: Custom Key Identifier
    [EndDate <DateTime?>]: End date.
    [KeyId <String>]: Key ID.
    [StartDate <DateTime?>]: Start date.
    [Value <String>]: Key value.
  [PreAuthorizedApplication <IPreAuthorizedApplication[]>]: list of pre-authorized applications.
    [AppId <String>]: Represents the application id.
    [Extension <IPreAuthorizedApplicationExtension[]>]: Collection of extensions from the resource application.
      [Condition <String[]>]: The extension's conditions.
    [Permission <IPreAuthorizedApplicationPermission[]>]: Collection of required app permissions/entitlements from the resource application.
      [AccessGrant <String[]>]: The list of permissions.
      [DirectAccessGrant <Boolean?>]: Indicates whether the permission set is DirectAccess or impersonation.
  [PublicClient <Boolean?>]: Specifies whether this application is a public client (such as an installed application running on a mobile device). Default is false.
  [PublisherDomain <String>]: Reliable domain which can be used to identify an application.
  [ReplyUrl <String[]>]: A collection of reply URLs for the application.
  [RequiredResourceAccess <IRequiredResourceAccess[]>]: Specifies resources that this application requires access to and the set of OAuth permission scopes and application roles that it needs under each of those resources. This pre-configuration of required resource access drives the consent experience.
    ResourceAccess <IResourceAccess[]>: The list of OAuth2.0 permission scopes and app roles that the application requires from the specified resource.
      Id <String>: The unique identifier for one of the OAuth2Permission or AppRole instances that the resource application exposes.
      [Type <String>]: Specifies whether the id property references an OAuth2Permission or an AppRole. Possible values are "scope" or "role".
    [ResourceAppId <String>]: The unique identifier for the resource that the application requires access to. This should be equal to the appId declared on the target resource application.
  [SamlMetadataUrl <String>]: The URL to the SAML metadata for the application.
  [SignInAudience <String>]: Audience for signing in to the application (AzureADMyOrganization, AzureADAllOrganizations, AzureADAndMicrosoftAccounts).
  [WwwHomepage <String>]: The primary Web page.
  [DisplayName <String>]: The display name of the application.
  [IdentifierUri <String[]>]: A collection of URIs for the application.
 
PASSWORDCREDENTIALS <IPasswordCredential[]>: A collection of PasswordCredential objects
  [CustomKeyIdentifier <Byte[]>]: Custom Key Identifier
  [EndDate <DateTime?>]: End date.
  [KeyId <String>]: Key ID.
  [StartDate <DateTime?>]: Start date.
  [Value <String>]: Key value.
 
PREAUTHORIZEDAPPLICATION <IPreAuthorizedApplication[]>: list of pre-authorized applications.
  [AppId <String>]: Represents the application id.
  [Extension <IPreAuthorizedApplicationExtension[]>]: Collection of extensions from the resource application.
    [Condition <String[]>]: The extension's conditions.
  [Permission <IPreAuthorizedApplicationPermission[]>]: Collection of required app permissions/entitlements from the resource application.
    [AccessGrant <String[]>]: The list of permissions.
    [DirectAccessGrant <Boolean?>]: Indicates whether the permission set is DirectAccess or impersonation.
 
REQUIREDRESOURCEACCESS <IRequiredResourceAccess[]>: Specifies resources that this application requires access to and the set of OAuth permission scopes and application roles that it needs under each of those resources. This pre-configuration of required resource access drives the consent experience.
  ResourceAccess <IResourceAccess[]>: The list of OAuth2.0 permission scopes and app roles that the application requires from the specified resource.
    Id <String>: The unique identifier for one of the OAuth2Permission or AppRole instances that the resource application exposes.
    [Type <String>]: Specifies whether the id property references an OAuth2Permission or an AppRole. Possible values are "scope" or "role".
  [ResourceAppId <String>]: The unique identifier for the resource that the application requires access to. This should be equal to the appId declared on the target resource application.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.resources/update-azadapplication
#>

function Update-AzADApplication {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='PatchExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Resources.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Patch', Mandatory)]
    [Parameter(ParameterSetName='PatchExpanded', Mandatory)]
    [Alias('ApplicationObjectId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Path')]
    [System.String]
    # Application object ID.
    ${ObjectId},

    [Parameter(ParameterSetName='Patch', Mandatory)]
    [Parameter(ParameterSetName='PatchExpanded', Mandatory)]
    [Parameter(ParameterSetName='PatchByApplicationId', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Path')]
    [System.String]
    # The tenant ID.
    ${TenantId},

    [Parameter(ParameterSetName='PatchViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.IResourcesIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='PatchByApplicationId', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Path')]
    [System.String]
    # Application ID.
    ${ApplicationId},

    [Parameter(ParameterSetName='Patch', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='PatchViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IApplicationUpdateParameters]
    # Request parameters for updating a new application.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # A property on the application to indicate if the application accepts other IDPs or not or partially accepts.
    ${AllowGuestsSignIn},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Indicates that the application supports pass through users who have no presence in the resource tenant.
    ${AllowPassthroughUser},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # The url for the application logo image stored in a CDN.
    ${AppLogoUrl},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String[]]
    # The application permissions.
    ${AppPermission},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IAppRole[]]
    # The collection of application roles that an application may declare.
    # These roles can be assigned to users, groups or service principals.
    # To construct, see NOTES section for APPROLE properties and create a hash table.
    ${AppRole},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Whether the application is available to other tenants.
    ${AvailableToOtherTenants},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # The display name of the application.
    ${DisplayName},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # A URL provided by the author of the application to report errors when using the application.
    ${ErrorUrl},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Resources.Support.GroupMembershipClaimTypes])]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Support.GroupMembershipClaimTypes]
    # Configures the groups claim issued in a user or OAuth 2.0 access token that the app expects.
    ${GroupMembershipClaim},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # The home page of the application.
    ${Homepage},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String[]]
    # A collection of URIs for the application.
    ${IdentifierUri},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # The marketing URI
    ${InformationalUrlMarketing},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # The privacy policy URI
    ${InformationalUrlPrivacy},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # The support URI
    ${InformationalUrlSupport},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # The terms of service URI
    ${InformationalUrlTermsOfService},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Specifies whether this application supports device authentication without a user.
    # The default is false.
    ${IsDeviceOnlyAuthSupported},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IKeyCredential[]]
    # A collection of KeyCredential objects.
    # To construct, see NOTES section for KEYCREDENTIALS properties and create a hash table.
    ${KeyCredentials},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String[]]
    # Client applications that are tied to this resource application.
    # Consent to any of the known client applications will result in implicit consent to the resource application through a combined consent dialog (showing the OAuth permission scopes required by the client and the resource).
    ${KnownClientApplication},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # the url of the logout page
    ${LogoutUrl},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Whether to allow implicit grant flow for OAuth2
    ${Oauth2AllowImplicitFlow},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Specifies whether during a token Request Azure AD will allow path matching of the redirect URI against the applications collection of replyURLs.
    # The default is false.
    ${Oauth2AllowUrlPathMatching},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IOAuth2Permission[]]
    # The collection of OAuth 2.0 permission scopes that the web API (resource) application exposes to client applications.
    # These permission scopes may be granted to client applications during consent.
    # To construct, see NOTES section for OAUTH2PERMISSION properties and create a hash table.
    ${Oauth2Permission},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Specifies whether, as part of OAuth 2.0 token requests, Azure AD will allow POST requests, as opposed to GET requests.
    # The default is false, which specifies that only GET requests will be allowed.
    ${Oauth2RequirePostResponse},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IOptionalClaim[]]
    # Optional claims requested to be included in the access token.
    # To construct, see NOTES section for OPTIONALCLAIMACCESSTOKEN properties and create a hash table.
    ${OptionalClaimAccessToken},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IOptionalClaim[]]
    # Optional claims requested to be included in the id token.
    # To construct, see NOTES section for OPTIONALCLAIMIDTOKEN properties and create a hash table.
    ${OptionalClaimIdToken},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IOptionalClaim[]]
    # Optional claims requested to be included in the saml token.
    # To construct, see NOTES section for OPTIONALCLAIMSAMLTOKEN properties and create a hash table.
    ${OptionalClaimSamlToken},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String[]]
    # A list of tenants allowed to access application.
    ${OrgRestriction},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IPasswordCredential[]]
    # A collection of PasswordCredential objects
    # To construct, see NOTES section for PASSWORDCREDENTIALS properties and create a hash table.
    ${PasswordCredentials},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IPreAuthorizedApplication[]]
    # list of pre-authorized applications.
    # To construct, see NOTES section for PREAUTHORIZEDAPPLICATION properties and create a hash table.
    ${PreAuthorizedApplication},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Specifies whether this application is a public client (such as an installed application running on a mobile device).
    # Default is false.
    ${PublicClient},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # Reliable domain which can be used to identify an application.
    ${PublisherDomain},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String[]]
    # A collection of reply URLs for the application.
    ${ReplyUrl},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Models.Api16.IRequiredResourceAccess[]]
    # Specifies resources that this application requires access to and the set of OAuth permission scopes and application roles that it needs under each of those resources.
    # This pre-configuration of required resource access drives the consent experience.
    # To construct, see NOTES section for REQUIREDRESOURCEACCESS properties and create a hash table.
    ${RequiredResourceAccess},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # The URL to the SAML metadata for the application.
    ${SamlMetadataUrl},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # Audience for signing in to the application (AzureADMyOrganization, AzureADAllOrganizations, AzureADAndMicrosoftAccounts).
    ${SignInAudience},

    [Parameter(ParameterSetName='PatchExpanded')]
    [Parameter(ParameterSetName='PatchViaIdentityExpanded')]
    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.String]
    # The primary Web page.
    ${WwwHomepage},

    [Parameter(ParameterSetName='PatchByApplicationId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Whether the application is available to other tenants.
    ${AvailableToOtherTenant},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Runtime')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Runtime')]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Resources.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Patch = 'Az.Resources.private\Update-AzADApplication_Patch';
            PatchExpanded = 'Az.Resources.private\Update-AzADApplication_PatchExpanded';
            PatchViaIdentity = 'Az.Resources.private\Update-AzADApplication_PatchViaIdentity';
            PatchViaIdentityExpanded = 'Az.Resources.private\Update-AzADApplication_PatchViaIdentityExpanded';
            PatchByApplicationId = 'Az.Resources.custom\Update-AzADApplication_PatchByApplicationId';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {
        throw
    }
}

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# SIG # Begin signature block
# MIIjhgYJKoZIhvcNAQcCoIIjdzCCI3MCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA1b+4u2qr4A1mr
# mKlTDzhRvAalJEfY0C+GDzYRhFqdYaCCDYEwggX/MIID56ADAgECAhMzAAABUZ6N
# j0Bxow5BAAAAAAFRMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ2WhcNMjAwNTAyMjEzNzQ2WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCVWsaGaUcdNB7xVcNmdfZiVBhYFGcn8KMqxgNIvOZWNH9JYQLuhHhmJ5RWISy1
# oey3zTuxqLbkHAdmbeU8NFMo49Pv71MgIS9IG/EtqwOH7upan+lIq6NOcw5fO6Os
# +12R0Q28MzGn+3y7F2mKDnopVu0sEufy453gxz16M8bAw4+QXuv7+fR9WzRJ2CpU
# 62wQKYiFQMfew6Vh5fuPoXloN3k6+Qlz7zgcT4YRmxzx7jMVpP/uvK6sZcBxQ3Wg
# B/WkyXHgxaY19IAzLq2QiPiX2YryiR5EsYBq35BP7U15DlZtpSs2wIYTkkDBxhPJ
# IDJgowZu5GyhHdqrst3OjkSRAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUV4Iarkq57esagu6FUBb270Zijc8w
# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU0MTM1MB8GA1UdIwQYMBaAFEhu
# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w
# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx
# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAWg+A
# rS4Anq7KrogslIQnoMHSXUPr/RqOIhJX+32ObuY3MFvdlRElbSsSJxrRy/OCCZdS
# se+f2AqQ+F/2aYwBDmUQbeMB8n0pYLZnOPifqe78RBH2fVZsvXxyfizbHubWWoUf
# NW/FJlZlLXwJmF3BoL8E2p09K3hagwz/otcKtQ1+Q4+DaOYXWleqJrJUsnHs9UiL
# crVF0leL/Q1V5bshob2OTlZq0qzSdrMDLWdhyrUOxnZ+ojZ7UdTY4VnCuogbZ9Zs
# 9syJbg7ZUS9SVgYkowRsWv5jV4lbqTD+tG4FzhOwcRQwdb6A8zp2Nnd+s7VdCuYF
# sGgI41ucD8oxVfcAMjF9YX5N2s4mltkqnUe3/htVrnxKKDAwSYliaux2L7gKw+bD
# 1kEZ/5ozLRnJ3jjDkomTrPctokY/KaZ1qub0NUnmOKH+3xUK/plWJK8BOQYuU7gK
# YH7Yy9WSKNlP7pKj6i417+3Na/frInjnBkKRCJ/eYTvBH+s5guezpfQWtU4bNo/j
# 8Qw2vpTQ9w7flhH78Rmwd319+YTmhv7TcxDbWlyteaj4RK2wk3pY1oSz2JPE5PNu
# Nmd9Gmf6oePZgy7Ii9JLLq8SnULV7b+IP0UXRY9q+GdRjM2AEX6msZvvPCIoG0aY
# HQu9wZsKEK2jqvWi8/xdeeeSI9FN6K1w4oVQM4Mwggd6MIIFYqADAgECAgphDpDS
# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0
# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla
# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT
# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG
# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S
# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz
# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7
# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u
# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33
# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl
# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP
# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB
# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF
# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM
# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ
# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO
# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0
# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB
# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw
# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA
# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY
# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj
# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd
# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ
# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf
# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ
# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j
# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B
# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96
# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7
# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I
# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVWzCCFVcCAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAVGejY9AcaMOQQAAAAABUTAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgf9X5WWy5
# ZrSGbQSQzRsNY4vgKbGA6nBeJWydTjjRcYIwQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQBk6ANGf3OxNjDkDyxitGFc7IYsZGN1lMpCu13fZ769
# X7AWCLe9zECBQyEtej/G/2Qt4mQLuuTM8i+u6DVJJDU5U8JLhMuxP7gGecpPefbX
# c4EDurWQvZuutzV3DgVqOOW0ZXU3PcJR44v/m2RJ+DYbl1HWFHJkEs3vfv4iRS0U
# iK3aUa7cUcSz81jiTqhU7e1IBXkXkmKp5hy0R+aMcF/YILBA0UAYksc5tF8d7UUs
# scSgjAZjjbcV00306Dmxc5BxLDw4z+E3V2tJHgiY8bemUEpzi1NhCVN8tkULlKi3
# Que/v4/AwETUXqf9vpiB5mgW9Y0hvLVZYkjGP5JQsottoYIS5TCCEuEGCisGAQQB
# gjcDAwExghLRMIISzQYJKoZIhvcNAQcCoIISvjCCEroCAQMxDzANBglghkgBZQME
# AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEIIZTKQ+YJaLO0AwcHlMR0xn7kR6ZjmkZIiimGtoo
# XvqSAgZdjpQ3jJoYEzIwMTkxMDA4MTIxMTQwLjM4OFowBIACAfSggdCkgc0wgcox
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p
# Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg
# RVNOOjNCQkQtRTMzOC1FOUExMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt
# cCBTZXJ2aWNloIIOPDCCBPEwggPZoAMCAQICEzMAAAD0wKpcc8v+rA8AAAAAAPQw
# DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
# dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN
# MTgxMDI0MjExNDI1WhcNMjAwMTEwMjExNDI1WjCByjELMAkGA1UEBhMCVVMxEzAR
# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
# Y3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2Eg
# T3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046M0JCRC1FMzM4LUU5
# QTExJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G
# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQY7TeTsdQXJevkSG86VTj2fDLqFYy
# 7WloMrG9n+/ZwdP03lKNqsBIxcdvhp/aSI25XDvnp01pjiPV1ZOBNrEs+fJigxIl
# TpVrX3+awEFty190WA+yvHSJMYqWj7IKolH7RUEKVkSj4cWnYiW6HxRRVLVIax0H
# Xh6NX8NpzpSPjPQn3+anbZ3NYGYrzM6ZHsEryFLFsKD7/uSQFv9lA993J5wUTE8f
# W/uaAlFbw/Epjmel9LAQ/HgBr/7tYm9UPMPX171LfkRb6jE8MHOaQQekcBO4bgho
# EofBT6r54P9GacguULvU7033MGLQhhGNFIF6mb7jauRgKWOJjH7rEljtAgMBAAGj
# ggEbMIIBFzAdBgNVHQ4EFgQUnLgfJwcXkbsNIS7ZEufr3IJS9agwHwYDVR0jBBgw
# FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
# L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB
# XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0
# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx
# MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN
# BgkqhkiG9w0BAQsFAAOCAQEAcIPtmx4u2tziOmue9xmTte/lqMzodrmb2F2RijP5
# kDxaDnuavWnofNttWRVil4jZzLCZEvQKuVIWvW2gVFSawe7zt3GzorjeS49nGdzD
# aVnYRI/baTY24fxF12cEqvNj08PrWNQwhxPuES5xOcDIbIOHAeG/ddcXXd7OuW5G
# Nxgus95inCcyF/NdCjrSYFTFYZZEM9sDeRomEpdnmWqwj+YL/Ymux0PEjgVbaE28
# CBCeoLJ2/chyvJJFp6YW8DIqZUQYRcQRnLYZwomNbx0rL8myEykDnjw6kiPSdf2P
# fHBzNzeooTxra+/y3X4KTwy+lcDIPT0X92wDfUsbwBiGYzCCBnEwggRZoAMCAQIC
# CmEJgSoAAAAAAAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRp
# ZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTEwMDcwMTIxMzY1NVoXDTI1MDcwMTIx
# NDY1NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
# BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQG
# A1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggEiMA0GCSqGSIb3
# DQEBAQUAA4IBDwAwggEKAoIBAQCpHQ28dxGKOiDs/BOX9fp/aZRrdFQQ1aUKAIKF
# ++18aEssX8XD5WHCdrc+Zitb8BVTJwQxH0EbGpUdzgkTjnxhMFmxMEQP8WCIhFRD
# DNdNuDgIs0Ldk6zWczBXJoKjRQ3Q6vVHgc2/JGAyWGBG8lhHhjKEHnRhZ5FfgVSx
# z5NMksHEpl3RYRNuKMYa+YaAu99h/EbBJx0kZxJyGiGKr0tkiVBisV39dx898Fd1
# rL2KQk1AUdEPnAY+Z3/1ZsADlkR+79BL/W7lmsqxqPJ6Kgox8NpOBpG2iAg16Hgc
# sOmZzTznL0S6p/TcZL2kAcEgCZN4zfy8wMlEXV4WnAEFTyJNAgMBAAGjggHmMIIB
# 4jAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU1WM6XIoxkPNDe3xGG8UzaFqF
# bVUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
# EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYD
# VR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwv
# cHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEB
# BE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j
# ZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwgaAGA1UdIAEB/wSBlTCB
# kjCBjwYJKwYBBAGCNy4DMIGBMD0GCCsGAQUFBwIBFjFodHRwOi8vd3d3Lm1pY3Jv
# c29mdC5jb20vUEtJL2RvY3MvQ1BTL2RlZmF1bHQuaHRtMEAGCCsGAQUFBwICMDQe
# MiAdAEwAZQBnAGEAbABfAFAAbwBsAGkAYwB5AF8AUwB0AGEAdABlAG0AZQBuAHQA
# LiAdMA0GCSqGSIb3DQEBCwUAA4ICAQAH5ohRDeLG4Jg/gXEDPZ2joSFvs+umzPUx
# vs8F4qn++ldtGTCzwsVmyWrf9efweL3HqJ4l4/m87WtUVwgrUYJEEvu5U4zM9GAS
# inbMQEBBm9xcF/9c+V4XNZgkVkt070IQyK+/f8Z/8jd9Wj8c8pl5SpFSAK84Dxf1
# L3mBZdmptWvkx872ynoAb0swRCQiPM/tA6WWj1kpvLb9BOFwnzJKJ/1Vry/+tuWO
# M7tiX5rbV0Dp8c6ZZpCM/2pif93FSguRJuI57BlKcWOdeyFtw5yjojz6f32WapB4
# pm3S4Zz5Hfw42JT0xqUKloakvZ4argRCg7i1gJsiOCC1JeVk7Pf0v35jWSUPei45
# V3aicaoGig+JFrphpxHLmtgOR5qAxdDNp9DvfYPw4TtxCd9ddJgiCGHasFAeb73x
# 4QDf5zEHpJM692VHeOj4qEir995yfmFrb3epgcunCaw5u+zGy9iCtHLNHfS4hQEe
# gPsbiSpUObJb2sgNVZl6h3M7COaYLeqN4DMuEin1wC9UJyH3yKxO2ii4sanblrKn
# QqLJzxlBTeCG+SqaoxFmMNO7dDJL32N79ZmKLxvHIa9Zta7cRDyXUHHXodLFVeNp
# 3lfB0d4wwP3M5k37Db9dT+mdHhk4L7zPWAUu7w2gUDXa7wknHNWzfjUeCLraNtvT
# X4/edIhJEqGCAs4wggI3AgEBMIH4oYHQpIHNMIHKMQswCQYDVQQGEwJVUzETMBEG
# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
# cm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBP
# cGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjozQkJELUUzMzgtRTlB
# MTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcG
# BSsOAwIaAxUAmyMx+a+6rCaE0EH3UFeoc6yTGDeggYMwgYCkfjB8MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
# VGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOFG6lUwIhgPMjAx
# OTEwMDgxODU4MjlaGA8yMDE5MTAwOTE4NTgyOVowdzA9BgorBgEEAYRZCgQBMS8w
# LTAKAgUA4UbqVQIBADAKAgEAAgIjxgIB/zAHAgEAAgIRpzAKAgUA4Ug71QIBADA2
# BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIB
# AAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAHzHE3gJgRlncmw6e5Z7g+BI3QKpIDDS
# Oa6U/Z9RC8iPmfnm8sFuwNtj36AFBgR95u/73VpCQq76k/rCJ88yX9t2LMhehmKH
# 6/kdHE7drIjMtBsRuhuO7nwHUnvHwniPEUyjHYQTOK1GRypL8d9f+q6sngjBReK6
# cFYK5vCbWHP2MYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB
# IDIwMTACEzMAAAD0wKpcc8v+rA8AAAAAAPQwDQYJYIZIAWUDBAIBBQCgggFKMBoG
# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgHllqi0IV
# hj+uaHeLajV4N+yceQajT+tS+k/rGWgIa7owgfoGCyqGSIb3DQEJEAIvMYHqMIHn
# MIHkMIG9BCA6By8tCMiCbaETbRxKjjaJems5eLv16IdLu50ljOIy1zCBmDCBgKR+
# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT
# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAA9MCqXHPL/qwPAAAA
# AAD0MCIEILoGfz8PjufhsE5OYTEZf94gF1Unh5ii86ytwcgNmAR6MA0GCSqGSIb3
# DQEBCwUABIIBALsgGX8gJZfuMb8oU2SJhwiAbhVdXG4mPkRh1YRvUS3dkweiZcH6
# JV8DsdHLqRvf46fPWHq1tOLqE5grl18OfzcPgUyMzBvikrDn2PwAnMoZojihs5xt
# HYf8aVYf8kgO2xVWdhDoU06u5gUEA4xH6g6EhgJwIImHUgD0r31FMT+FKKtE/Usz
# qqxXRErToLHUTqQogYQggF8qxtEzmdU7y5Q6R5X8rjhcvQdAmjYx4ymwYu4w8nYQ
# VrDHa81/GnNrypaffa2QqizfCt6x+IewSV8ZZI1LGQ1IHKOeI982fGNIA4bikXGg
# pkqm3z1qNWsK5cYVfbBu/VNDZpHeqS5py/4=
# SIG # End signature block