diff --git a/deploy/bicep/main.bicep b/deploy/bicep/main.bicep index 34c3c054..b4fda49f 100644 --- a/deploy/bicep/main.bicep +++ b/deploy/bicep/main.bicep @@ -159,6 +159,4 @@ output configServiceImport object = { 'Endpoint:Orchestrator:AuthCode': orchestrator.outputs.key 'Encryption:KeyStorage': storage_wj.outputs.connectionString 'Audit:ConnectionString': storage_wj.outputs.connectionString - 'Adapter:Session:Storage:ConnectoinString': storage_wj.outputs.connectionString - 'Adapter:Token:Storage:ConnectionString': storage_wj.outputs.connectionString } diff --git a/openapi/openapi.json b/openapi/openapi.json index f3583eff..013c77d7 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -1069,16 +1069,15 @@ "operationId": "GetDeploymentScope", "parameters": [ { - "name": "deploymentScopeId", + "name": "organizationId", "in": "path", "required": true, "schema": { - "type": "string", - "nullable": true + "type": "string" } }, { - "name": "organizationId", + "name": "deploymentScopeId", "in": "path", "required": true, "schema": { @@ -1133,16 +1132,15 @@ "operationId": "UpdateDeploymentScope", "parameters": [ { - "name": "deploymentScopeId", + "name": "organizationId", "in": "path", "required": true, "schema": { - "type": "string", - "nullable": true + "type": "string" } }, { - "name": "organizationId", + "name": "deploymentScopeId", "in": "path", "required": true, "schema": { @@ -1206,16 +1204,15 @@ "operationId": "DeleteDeploymentScope", "parameters": [ { - "name": "deploymentScopeId", + "name": "organizationId", "in": "path", "required": true, "schema": { - "type": "string", - "nullable": true + "type": "string" } }, { - "name": "organizationId", + "name": "deploymentScopeId", "in": "path", "required": true, "schema": { @@ -1263,13 +1260,13 @@ } } }, - "/orgs/{organizationId}/scopes/{deploymentScopeId}/authorize": { - "put": { + "/orgs/{organizationId}/scopes/{deploymentScopeId}/authorize/initialize": { + "get": { "tags": [ - "DeploymentScopes" + "DeploymentScopesAuthorization" ], - "summary": "Authorize an existing Deployment Scope.", - "operationId": "AuthorizeDeploymentScope", + "summary": "Initialize a new authorization session for a deployment scope.", + "operationId": "InitializeAuthorization", "parameters": [ { "name": "organizationId", @@ -1288,33 +1285,9 @@ } } ], - "requestBody": { - "content": { - "application/json-patch+json": { - "schema": { - "$ref": "#/components/schemas/DeploymentScope" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeploymentScope" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DeploymentScope" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/DeploymentScope" - } - } - } - }, "responses": { "200": { - "description": "The DeploymentScope was updated.", + "description": "Returns the DeploymentScope that was initialized for an authorization session", "content": { "application/json": { "schema": { @@ -1333,16 +1306,6 @@ } } }, - "404": { - "description": "A DeploymentScope with the id provided was not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResult" - } - } - } - }, "401": { "description": "Unauthorized" }, diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 5f204421..5dc225a6 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -662,13 +662,12 @@ paths: summary: Gets a Deployment Scope. operationId: GetDeploymentScope parameters: - - name: deploymentScopeId + - name: organizationId in: path required: true schema: type: string - nullable: true - - name: organizationId + - name: deploymentScopeId in: path required: true schema: @@ -702,13 +701,12 @@ paths: summary: Updates an existing Deployment Scope. operationId: UpdateDeploymentScope parameters: - - name: deploymentScopeId + - name: organizationId in: path required: true schema: type: string - nullable: true - - name: organizationId + - name: deploymentScopeId in: path required: true schema: @@ -747,13 +745,12 @@ paths: summary: Deletes a Deployment Scope. operationId: DeleteDeploymentScope parameters: - - name: deploymentScopeId + - name: organizationId in: path required: true schema: type: string - nullable: true - - name: organizationId + - name: deploymentScopeId in: path required: true schema: @@ -781,12 +778,12 @@ paths: description: Unauthorized '403': description: Forbidden - '/orgs/{organizationId}/scopes/{deploymentScopeId}/authorize': - put: + '/orgs/{organizationId}/scopes/{deploymentScopeId}/authorize/initialize': + get: tags: - - DeploymentScopes - summary: Authorize an existing Deployment Scope. - operationId: AuthorizeDeploymentScope + - DeploymentScopesAuthorization + summary: Initialize a new authorization session for a deployment scope. + operationId: InitializeAuthorization parameters: - name: organizationId in: path @@ -798,23 +795,9 @@ paths: required: true schema: type: string - requestBody: - content: - application/json-patch+json: - schema: - $ref: '#/components/schemas/DeploymentScope' - application/json: - schema: - $ref: '#/components/schemas/DeploymentScope' - text/json: - schema: - $ref: '#/components/schemas/DeploymentScope' - application/*+json: - schema: - $ref: '#/components/schemas/DeploymentScope' responses: '200': - description: The DeploymentScope was updated. + description: Returns the DeploymentScope that was initialized for an authorization session content: application/json: schema: @@ -825,12 +808,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResult' - '404': - description: A DeploymentScope with the id provided was not found. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResult' '401': description: Unauthorized '403': diff --git a/src/GlobalExtensions.cs b/src/GlobalExtensions.cs index 650966b0..29d5a7a9 100644 --- a/src/GlobalExtensions.cs +++ b/src/GlobalExtensions.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; @@ -10,6 +11,20 @@ namespace TeamCloud { internal static class GlobalExtensions { + internal static string ToHexString(this byte[] bytes) + { + var builder = new StringBuilder(bytes.Length * 2); + + foreach (byte b in bytes) + builder.AppendFormat("{0:x2}", b); + + return builder.ToString(); + } + + internal static bool HasCustomAttribute(this MemberInfo memberInfo, bool inherit) + where T: Attribute + => memberInfo is null ? throw new ArgumentNullException(nameof(memberInfo)) : memberInfo.GetCustomAttributes(typeof(T), inherit).Any(); + internal static void Add(this List tasks, Func callback) { if (tasks is null) diff --git a/src/TeamCloud.API/Auth/AuthExtensions.cs b/src/TeamCloud.API/Auth/AuthExtensions.cs index 40c3f85a..8800ee20 100644 --- a/src/TeamCloud.API/Auth/AuthExtensions.cs +++ b/src/TeamCloud.API/Auth/AuthExtensions.cs @@ -9,8 +9,10 @@ using System.Linq; using System.Security.Claims; using System.Threading.Tasks; +using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; +using TeamCloud.API.Auth.Schemes; using TeamCloud.API.Services; using TeamCloud.Data; using TeamCloud.Model.Data; @@ -117,6 +119,21 @@ internal static IServiceCollection AddTeamCloudAuthorization(this IServiceCollec ProjectUserRole.Admin.AuthPolicy(), UserRolePolicies.ScheduleWritePolicy); }); + + options.AddPolicy(AuthPolicies.AdapterAuthorizationInit, policy => + { + policy.RequireRole(OrganizationUserRole.Owner.AuthPolicy(), + OrganizationUserRole.Admin.AuthPolicy()); + }); + + options.AddPolicy(AuthPolicies.AdapterAuthorizationFlow, policy => + { + policy.AddAuthenticationSchemes(AdapterAuthenticationDefaults.AuthenticationScheme); + + policy.RequireRole(OrganizationUserRole.Owner.AuthPolicy(), + OrganizationUserRole.Admin.AuthPolicy(), + OrganizationUserRole.Adapter.AuthPolicy()); + }); }); return services; @@ -145,7 +162,7 @@ internal static async Task> ResolveClaimsAsync(this HttpConte return claims; var userRepository = httpContext.RequestServices - .GetRequiredService(); + .GetRequiredService(); var user = await userRepository .GetAsync(organizationId, userId) diff --git a/src/TeamCloud.API/Auth/AuthPolicies.cs b/src/TeamCloud.API/Auth/AuthPolicies.cs index 252bf0c7..96b28d40 100644 --- a/src/TeamCloud.API/Auth/AuthPolicies.cs +++ b/src/TeamCloud.API/Auth/AuthPolicies.cs @@ -22,7 +22,9 @@ public static class AuthPolicies public const string ProjectUserWrite = nameof(ProjectUserWrite); public const string ProjectComponentOwner = nameof(ProjectComponentOwner); - public const string ProjectScheduleOwner = nameof(ProjectScheduleOwner); + + public const string AdapterAuthorizationInit = nameof(AdapterAuthorizationInit); + public const string AdapterAuthorizationFlow = nameof(AdapterAuthorizationFlow); } } diff --git a/src/TeamCloud.API/Auth/Schemes/AdapterAuthenticationDefaults.cs b/src/TeamCloud.API/Auth/Schemes/AdapterAuthenticationDefaults.cs new file mode 100644 index 00000000..8fbe7fbf --- /dev/null +++ b/src/TeamCloud.API/Auth/Schemes/AdapterAuthenticationDefaults.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Authentication.Cookies; + +namespace TeamCloud.API.Auth.Schemes +{ + public static class AdapterAuthenticationDefaults + { + public const string AuthenticationScheme = "Adapter"; + + public const string AuthenticationType = "Adapter"; + + public const string QueryParam = "ott"; + + public const string ClaimType = "ott"; + + public static readonly string CookiePrefix = CookieAuthenticationDefaults.CookiePrefix; + } +} diff --git a/src/TeamCloud.API/Auth/Schemes/AdapterAuthenticationExtensions.cs b/src/TeamCloud.API/Auth/Schemes/AdapterAuthenticationExtensions.cs new file mode 100644 index 00000000..75ba10a1 --- /dev/null +++ b/src/TeamCloud.API/Auth/Schemes/AdapterAuthenticationExtensions.cs @@ -0,0 +1,24 @@ +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Authentication.Cookies; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Options; +using System; +using System.Diagnostics; + +namespace TeamCloud.API.Auth.Schemes +{ + public static class AdapterAuthenticationExtensions + { + public static AuthenticationBuilder AddAdapterAuthentication(this AuthenticationBuilder authenticationBuilder) + { + authenticationBuilder.Services.TryAddEnumerable(ServiceDescriptor.Singleton, PostConfigureCookieAuthenticationOptions>()); + + return authenticationBuilder.AddScheme(AdapterAuthenticationDefaults.AuthenticationScheme, options => + { + options.ExpireTimeSpan = TimeSpan.FromMinutes(5); + options.SlidingExpiration = true; + }); + } + } +} diff --git a/src/TeamCloud.API/Auth/Schemes/AdapterAuthenticationHandler.cs b/src/TeamCloud.API/Auth/Schemes/AdapterAuthenticationHandler.cs new file mode 100644 index 00000000..c3efd3be --- /dev/null +++ b/src/TeamCloud.API/Auth/Schemes/AdapterAuthenticationHandler.cs @@ -0,0 +1,192 @@ +using System.Linq; +using System.Net; +using System.Security.Claims; +using System.Text.Encodings.Web; +using System.Threading.Tasks; +using DotLiquid; +using Flurl; +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Authentication.Cookies; +using Microsoft.AspNetCore.Http.Extensions; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using TeamCloud.Adapters; +using TeamCloud.API.Services; +using TeamCloud.Azure; +using TeamCloud.Data; +using TeamCloud.Model.Data; +using YamlDotNet.Core.Tokens; + +namespace TeamCloud.API.Auth.Schemes +{ + public sealed class AdapterAuthenticationHandler : CookieAuthenticationHandler + { + const string ObjectIdClaimType = "http://schemas.microsoft.com/identity/claims/objectidentifier"; + const string TenantIdClaimType = "http://schemas.microsoft.com/identity/claims/tenantid"; + + private readonly OneTimeTokenService oneTimeTokenService; + private readonly IAzureSessionService azureSessionService; + private readonly IUserRepository userRepository; + private readonly IDeploymentScopeRepository deploymentScopeRepository; + private readonly IAdapterProvider adapterProvider; + + public AdapterAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock, OneTimeTokenService oneTimeTokenService, IAzureSessionService azureSessionService, IUserRepository userRepository, IDeploymentScopeRepository deploymentScopeRepository, IAdapterProvider adapterProvider) : base(options, logger, encoder, clock) + { + this.oneTimeTokenService = oneTimeTokenService ?? throw new System.ArgumentNullException(nameof(oneTimeTokenService)); + this.azureSessionService = azureSessionService ?? throw new System.ArgumentNullException(nameof(azureSessionService)); + this.userRepository = userRepository ?? throw new System.ArgumentNullException(nameof(userRepository)); + this.deploymentScopeRepository = deploymentScopeRepository ?? throw new System.ArgumentNullException(nameof(deploymentScopeRepository)); + this.adapterProvider = adapterProvider ?? throw new System.ArgumentNullException(nameof(adapterProvider)); + } + + protected override async Task InitializeEventsAsync() + { + await base + .InitializeEventsAsync() + .ConfigureAwait(false); + + Events.OnValidatePrincipal = async (context) => + { + if (context.Request.Query.TryGetValue(AdapterAuthenticationDefaults.QueryParam, out var queryValue)) + { + var match = context.Principal.Claims + .Any(c => c.Type == AdapterAuthenticationDefaults.ClaimType && c.Value == queryValue.ToString()); + + if (!match) + context.RejectPrincipal(); + } + else + { + var newPrincipal = new ClaimsPrincipal(); + + foreach (var identity in context.Principal.Identities) + { + if (identity.AuthenticationType.Equals(AdapterAuthenticationDefaults.AuthenticationType)) + { + var newIdentity = new ClaimsIdentity(identity.Claims.Where(c => !c.Type.Equals(ClaimTypes.Role)), AdapterAuthenticationDefaults.AuthenticationType); + + var userId = identity.Claims.FirstOrDefault(c => c.Type.Equals(ObjectIdClaimType))?.Value; + + if (!string.IsNullOrEmpty(userId)) + { + var tenantId = await azureSessionService + .GetTenantIdAsync() + .ConfigureAwait(false); + + newIdentity.AddClaims(await Context + .ResolveClaimsAsync(tenantId.ToString(), userId) + .ConfigureAwait(false)); + } + + newPrincipal.AddIdentity(newIdentity); + } + else + { + newPrincipal.AddIdentity(identity); + } + } + + if (newPrincipal.Identity is null) + { + context.RejectPrincipal(); + } + else + { + context.ShouldRenew = true; + context.ReplacePrincipal(newPrincipal); + } + } + }; + + Events.OnRedirectToAccessDenied = (context) => + { + context.Response.StatusCode = (int)HttpStatusCode.Forbidden; + + return context.Response.CompleteAsync(); + }; + + Events.OnRedirectToLogin = async (context) => + { + context.Response.StatusCode = (int)HttpStatusCode.Unauthorized; + + if (Request.Query.TryGetValue(AdapterAuthenticationDefaults.QueryParam, out var queryValue)) + { + var oneTimeTokenEntity = await oneTimeTokenService + .InvalidateTokenAsync(queryValue.ToString()) + .ConfigureAwait(false); + + if (oneTimeTokenEntity != null) + { + var user = await userRepository + .GetAsync(oneTimeTokenEntity.OrganizationId.ToString(), oneTimeTokenEntity.UserId.ToString(), expand: true) + .ConfigureAwait(false); + + var tenantId = await azureSessionService + .GetTenantIdAsync() + .ConfigureAwait(false); + + var claims = (await Context + .ResolveClaimsAsync(tenantId.ToString(), oneTimeTokenEntity.UserId.ToString()) + .ConfigureAwait(false)).ToList(); + + claims.Add(new Claim(ClaimTypes.Name, user.DisplayName)); + claims.Add(new Claim(ObjectIdClaimType, oneTimeTokenEntity.UserId.ToString())); + claims.Add(new Claim(TenantIdClaimType, tenantId.ToString())); + claims.Add(new Claim(AdapterAuthenticationDefaults.ClaimType, oneTimeTokenEntity.Token)); + + var claimsIdentity = new ClaimsIdentity(claims, AdapterAuthenticationDefaults.AuthenticationType); + var claimsPrincipal = new ClaimsPrincipal(claimsIdentity); + + await SignInAsync(claimsPrincipal, context.Properties).ConfigureAwait(false); + + context.Response.Redirect(OriginalPath); + } + } + + await context.Response + .CompleteAsync() + .ConfigureAwait(false); + }; + } + + protected override async Task HandleAuthenticateAsync() + { + var authenticateResult = await base + .HandleAuthenticateAsync() + .ConfigureAwait(false); + + if (authenticateResult.None && Request.RouteValues.TryGetValue("organizationId", out var organizationId) && Request.RouteValues.TryGetValue("deploymentScopeId", out var deploymentScopeId)) + { + var deploymentScope = await deploymentScopeRepository + .GetAsync($"{organizationId}", $"{deploymentScopeId}") + .ConfigureAwait(false); + + var adapter = deploymentScope is null + ? default(Adapter) + : adapterProvider.GetAdapter(deploymentScope.Type); + + if (adapter is IAdapterAuthorize adapterAuthorize) + { + var servicePrincial = await adapterAuthorize + .ResolvePrincipalAsync(deploymentScope, Context.Request) + .ConfigureAwait(false); + + if (servicePrincial != null) + { + var claimsIdentity = servicePrincial.ToClaimsIdentity(AdapterAuthenticationDefaults.AuthenticationType); + + claimsIdentity.AddClaims(await Context + .ResolveClaimsAsync(servicePrincial.TenantId.ToString(), servicePrincial.ObjectId.ToString()) + .ConfigureAwait(false)); + + var claimsPrincipal = new ClaimsPrincipal(claimsIdentity); + + authenticateResult = AuthenticateResult.Success(new AuthenticationTicket(claimsPrincipal, AdapterAuthenticationDefaults.AuthenticationScheme)); + } + } + } + + return authenticateResult; + } + } +} diff --git a/src/TeamCloud.API/Controllers/Core/TeamCloudController.cs b/src/TeamCloud.API/Controllers/Core/TeamCloudController.cs index 78e17cd8..36b1d0f3 100644 --- a/src/TeamCloud.API/Controllers/Core/TeamCloudController.cs +++ b/src/TeamCloud.API/Controllers/Core/TeamCloudController.cs @@ -66,7 +66,7 @@ protected async Task WithContextAsync(Func() + var contextUser = await UserService .CurrentUserAsync(OrganizationId) .ConfigureAwait(false); @@ -89,7 +89,7 @@ protected async Task WithContextAsync(Func() { - GetService().CurrentUserAsync(OrganizationId), + UserService.CurrentUserAsync(OrganizationId), GetContextDocumentAsync() }; @@ -118,7 +118,7 @@ protected async Task WithContextAsync(Func() { - GetService().CurrentUserAsync(OrganizationId), + UserService.CurrentUserAsync(OrganizationId), GetContextDocumentAsync(), GetContextDocumentAsync() }; @@ -149,7 +149,7 @@ protected async Task WithContextAsync(Func() { - GetService().CurrentUserAsync(OrganizationId), + UserService.CurrentUserAsync(OrganizationId), GetContextDocumentAsync(), GetContextDocumentAsync(), GetContextDocumentAsync() @@ -176,7 +176,7 @@ private async Task GetContextDocumentAsync() var task = typeof(T) switch { _ when typeof(T) == typeof(Organization) => GetService() - .GetAsync(GetService().CurrentUserTenant, OrganizationId) + .GetAsync(UserService.CurrentUserTenant, OrganizationId) .ContinueWith(task => OnNull(task.Result as T, $"A Organization with the slug or id '{OrganizationId}' was not found."), TaskContinuationOptions.OnlyOnRanToCompletion), _ when typeof(T) == typeof(Project) => GetService() @@ -199,7 +199,7 @@ _ when typeof(T) == typeof(ComponentTask) => GetService OnNull(task.Result as T, $"A Component task with id '{TaskId}' was not found."), TaskContinuationOptions.OnlyOnRanToCompletion), - _ when typeof(T) == typeof(User) => GetService() + _ when typeof(T) == typeof(User) => UserService .GetUserIdAsync(UserId) .ContinueWith(task => OnNull(task.Result, $"A User with the name or id '{UserId}' was not found."), TaskContinuationOptions.OnlyOnRanToCompletion) .ContinueWith(task => GetService().GetAsync(OrganizationId, task.Result), TaskContinuationOptions.OnlyOnRanToCompletion).Unwrap() diff --git a/src/TeamCloud.API/Controllers/DeploymentScopesAuthorizationController.cs b/src/TeamCloud.API/Controllers/DeploymentScopesAuthorizationController.cs new file mode 100644 index 00000000..5ef05986 --- /dev/null +++ b/src/TeamCloud.API/Controllers/DeploymentScopesAuthorizationController.cs @@ -0,0 +1,115 @@ +using System; +using System.Security.Claims; +using System.Threading.Tasks; +using Flurl; +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Authentication.Cookies; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Extensions; +using Microsoft.AspNetCore.Mvc; +using Swashbuckle.AspNetCore.Annotations; +using TeamCloud.Adapters; +using TeamCloud.Adapters.Authorization; +using TeamCloud.API.Auth; +using TeamCloud.API.Auth.Schemes; +using TeamCloud.API.Controllers.Core; +using TeamCloud.API.Data.Results; +using TeamCloud.API.Services; +using TeamCloud.API.Swagger; +using TeamCloud.Http; +using TeamCloud.Model.Data; +using TeamCloud.Serialization; + +namespace TeamCloud.API.Controllers +{ + [ApiController] + [Route("orgs/{organizationId:organizationId}/scopes/{deploymentScopeId:deploymentScopeId}/authorize")] + public class DeploymentScopesAuthorizationController : TeamCloudController + { + private readonly OneTimeTokenService oneTimeTokenService; + private readonly IAdapterProvider adapterProvider; + private readonly IAuthorizationEndpointsResolver authorizationEndpointsResolver; + + public DeploymentScopesAuthorizationController(OneTimeTokenService oneTimeTokenService, IAdapterProvider adapterProvider, IAuthorizationEndpointsResolver authorizationEndpointsResolver) : base() + { + this.oneTimeTokenService = oneTimeTokenService ?? throw new ArgumentNullException(nameof(oneTimeTokenService)); + this.adapterProvider = adapterProvider ?? throw new ArgumentNullException(nameof(adapterProvider)); + this.authorizationEndpointsResolver = authorizationEndpointsResolver ?? throw new ArgumentNullException(nameof(authorizationEndpointsResolver)); + } + + [HttpGet()] + [HttpPost()] + [Authorize(Policy = AuthPolicies.AdapterAuthorizationFlow)] + [Produces("text/html")] + [SwaggerIgnore] + public Task Authorize() => WithContextAsync(async (contextUser, deploymentScope) => + { + if (adapterProvider.GetAdapter(deploymentScope.Type) is IAdapterAuthorize adapterAuthorize) + { + var authorizationEndpoints = await authorizationEndpointsResolver + .GetAuthorizationEndpointsAsync(deploymentScope) + .ConfigureAwait(false); + + return await adapterAuthorize + .HandleAuthorizeAsync(deploymentScope, Request, authorizationEndpoints) + .ConfigureAwait(false); + } + else + { + return ErrorResult.NotFound($"Could not find authorize endpoint for {deploymentScope}").ToActionResult(); + } + }); + + + [HttpGet("callback")] + [HttpPost("callback")] + [Authorize(Policy = AuthPolicies.AdapterAuthorizationFlow)] + //[AllowAnonymous] + [Produces("text/html")] + [SwaggerIgnore] + public Task Callback() => WithContextAsync(async (contextUser, deploymentScope) => + { + if (adapterProvider.GetAdapter(deploymentScope.Type) is IAdapterAuthorize adapterAuthorize) + { + var authorizationEndpoints = await authorizationEndpointsResolver + .GetAuthorizationEndpointsAsync(deploymentScope) + .ConfigureAwait(false); + + return await adapterAuthorize + .HandleCallbackAsync(deploymentScope, Request, authorizationEndpoints) + .ConfigureAwait(false); + } + else + { + return ErrorResult.NotFound($"Could not find authorize endpoint for {deploymentScope}").ToActionResult(); + } + }); + + [HttpGet("initialize")] + [Authorize(Policy = AuthPolicies.AdapterAuthorizationInit)] + [Produces("application/json")] + [SwaggerOperation(OperationId = "InitializeAuthorization", Summary = "Initialize a new authorization session for a deployment scope.")] + [SwaggerResponse(StatusCodes.Status200OK, "Returns the DeploymentScope that was initialized for an authorization session", typeof(DataResult))] + [SwaggerResponse(StatusCodes.Status400BadRequest, "A validation error occured.", typeof(ErrorResult))] + public Task Initialize() => WithContextAsync(async (contextUser, deploymentScope) => + { + if (!deploymentScope.Authorizable) + return ErrorResult + .BadRequest($"Deployment scope {deploymentScope} doesn't support authorization", ResultErrorCode.ServerError) + .ToActionResult(); + + var token = await oneTimeTokenService + .AcquireTokenAsync(contextUser,TimeSpan.FromMinutes(1)) + .ConfigureAwait(false); + + deploymentScope.AuthorizeUrl = deploymentScope.AuthorizeUrl + .SetQueryParam(AdapterAuthenticationDefaults.QueryParam, token) + .ToString(); + + return DataResult + .Ok(deploymentScope) + .ToActionResult(); + }); + } +} diff --git a/src/TeamCloud.API/Controllers/DeploymentScopesController.cs b/src/TeamCloud.API/Controllers/DeploymentScopesController.cs index f414487d..d5bd44f3 100644 --- a/src/TeamCloud.API/Controllers/DeploymentScopesController.cs +++ b/src/TeamCloud.API/Controllers/DeploymentScopesController.cs @@ -12,10 +12,13 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Swashbuckle.AspNetCore.Annotations; +using TeamCloud.Adapters.Authorization; +using TeamCloud.Adapters; using TeamCloud.API.Auth; using TeamCloud.API.Controllers.Core; using TeamCloud.API.Data; using TeamCloud.API.Data.Results; +using TeamCloud.API.Swagger; using TeamCloud.Data; using TeamCloud.Model.Commands; using TeamCloud.Model.Data; @@ -43,7 +46,7 @@ public DeploymentScopesController(IDeploymentScopeRepository deploymentScopeRepo [SwaggerOperation(OperationId = "GetDeploymentScopes", Summary = "Gets all Deployment Scopes.")] [SwaggerResponse(StatusCodes.Status200OK, "Returns all Deployment Scopes.", typeof(DataResult>))] [SwaggerResponse(StatusCodes.Status400BadRequest, "A validation error occured.", typeof(ErrorResult))] - public async Task Get() + public async Task List() { var deploymentScopes = await deploymentScopeRepository .ListAsync(OrganizationId) @@ -62,7 +65,7 @@ public async Task Get() [SwaggerResponse(StatusCodes.Status200OK, "Returns a DeploymentScope.", typeof(DataResult))] [SwaggerResponse(StatusCodes.Status400BadRequest, "A validation error occured.", typeof(ErrorResult))] [SwaggerResponse(StatusCodes.Status404NotFound, "A DeploymentScope with the id provided was not found.", typeof(ErrorResult))] - public Task Get(string deploymentScopeId) => WithContextAsync((contextUser, deploymentScope) => + public Task Get() => WithContextAsync((contextUser, deploymentScope) => { return DataResult .Ok(deploymentScope) @@ -114,8 +117,7 @@ public Task Post([FromBody] DeploymentScopeDefinition deploymentS [SwaggerResponse(StatusCodes.Status200OK, "The DeploymentScope was updated.", typeof(DataResult))] [SwaggerResponse(StatusCodes.Status400BadRequest, "A validation error occured.", typeof(ErrorResult))] [SwaggerResponse(StatusCodes.Status404NotFound, "A Deployment Scope with the ID provided in the request body could not be found.", typeof(ErrorResult))] - [SuppressMessage("Usage", "CA1801: Review unused parameters", Justification = "Used by base class and makes signiture unique")] - public Task Put([FromRoute] string deploymentScopeId, [FromBody] DeploymentScope deploymentScopeUpdate) => WithContextAsync(async (contextUser, deploymentScope) => + public Task Put([FromBody] DeploymentScope deploymentScopeUpdate) => WithContextAsync(async (contextUser, deploymentScope) => { if (deploymentScopeUpdate is null) return ErrorResult @@ -176,8 +178,7 @@ public Task Put([FromRoute] string deploymentScopeId, [FromBody] [SwaggerResponse(StatusCodes.Status204NoContent, "The DeploymentScope was deleted.", typeof(DataResult))] [SwaggerResponse(StatusCodes.Status400BadRequest, "A validation error occured.", typeof(ErrorResult))] [SwaggerResponse(StatusCodes.Status404NotFound, "A DeploymentScope with the id provided was not found.", typeof(ErrorResult))] - [SuppressMessage("Usage", "CA1801: Review unused parameters", Justification = "Used by base class and makes signiture unique")] - public Task Delete([FromRoute] string deploymentScopeId) => WithContextAsync(async (contextUser, deploymentScope) => + public Task Delete() => WithContextAsync(async (contextUser, deploymentScope) => { var command = new DeploymentScopeDeleteCommand(contextUser, deploymentScope); @@ -186,34 +187,6 @@ public Task Delete([FromRoute] string deploymentScopeId) => WithC .ConfigureAwait(false); }); - [HttpPut("{deploymentScopeId:deploymentScopeId}/authorize")] - [Authorize(Policy = AuthPolicies.OrganizationAdmin)] - [SwaggerOperation(OperationId = "AuthorizeDeploymentScope", Summary = "Authorize an existing Deployment Scope.")] - [SwaggerResponse(StatusCodes.Status200OK, "The DeploymentScope was updated.", typeof(DataResult))] - [SwaggerResponse(StatusCodes.Status400BadRequest, "A validation error occured.", typeof(ErrorResult))] - [SwaggerResponse(StatusCodes.Status404NotFound, "A DeploymentScope with the id provided was not found.", typeof(ErrorResult))] - public Task Authorize([FromBody] DeploymentScope deploymentScopeAuthorize) => WithContextAsync(async (contextUser, deploymentScope) => - { - if (deploymentScopeAuthorize is null) - return ErrorResult - .BadRequest("Request body must not be empty.", ResultErrorCode.ValidationError) - .ToActionResult(); - if (!deploymentScopeAuthorize.TryValidate(out var validationResult, serviceProvider: HttpContext.RequestServices)) - return ErrorResult - .BadRequest(validationResult) - .ToActionResult(); - - if (!deploymentScopeAuthorize.Id.Equals(deploymentScope.Id, StringComparison.Ordinal)) - return ErrorResult - .BadRequest(new ValidationError { Field = "id", Message = $"DeploymentScopes's id does match the identifier provided in the path." }) - .ToActionResult(); - - var command = new DeploymentScopeAuthorizeCommand(contextUser, deploymentScope); - - return await Orchestrator - .InvokeAndReturnActionResultAsync(command, Request) - .ConfigureAwait(false); - }); } } diff --git a/src/TeamCloud.API/Options/TeamCloudAdapterAuthorizeOptions.cs b/src/TeamCloud.API/Options/TeamCloudAdapterAuthorizeOptions.cs index 8e1c410f..7350fc45 100644 --- a/src/TeamCloud.API/Options/TeamCloudAdapterAuthorizeOptions.cs +++ b/src/TeamCloud.API/Options/TeamCloudAdapterAuthorizeOptions.cs @@ -13,17 +13,15 @@ namespace TeamCloud.API.Options [Options] public sealed class TeamCloudAdapterAuthorizeOptions : IAuthorizationSessionOptions, IAuthorizationTokenOptions { - private readonly AdapterSessionStorageOptions sessionStorageOptions; - private readonly AdapterTokenStorageOptions tokenStorageOptions; + private readonly AzureStorageOptions azureStorageOptions; - public TeamCloudAdapterAuthorizeOptions(AdapterSessionStorageOptions sessionStorageOptions, AdapterTokenStorageOptions tokenStorageOptions) + public TeamCloudAdapterAuthorizeOptions(AzureStorageOptions azureStorageOptions) { - this.sessionStorageOptions = sessionStorageOptions ?? throw new ArgumentNullException(nameof(sessionStorageOptions)); - this.tokenStorageOptions = tokenStorageOptions ?? throw new ArgumentNullException(nameof(tokenStorageOptions)); + this.azureStorageOptions = azureStorageOptions ?? throw new ArgumentNullException(nameof(azureStorageOptions)); } - string IAuthorizationSessionOptions.ConnectionString => sessionStorageOptions.ConnectionString; + string IAuthorizationSessionOptions.ConnectionString => azureStorageOptions.ConnectionString; - string IAuthorizationTokenOptions.ConnectionString => tokenStorageOptions.ConnectionString; + string IAuthorizationTokenOptions.ConnectionString => azureStorageOptions.ConnectionString; } } diff --git a/src/TeamCloud.API/Options/TeamCloudEndpointOptions.cs b/src/TeamCloud.API/Options/TeamCloudEndpointOptions.cs index 2cf00a9d..cc4886da 100644 --- a/src/TeamCloud.API/Options/TeamCloudEndpointOptions.cs +++ b/src/TeamCloud.API/Options/TeamCloudEndpointOptions.cs @@ -10,7 +10,7 @@ namespace TeamCloud.API.Options { [Options] - public class TeamCloudEndpointOptions : IOrchestratorOptions + public class TeamCloudEndpointOptions : IOrchestratorServiceOptions { private readonly EndpointOrchestratorOptions endpointOrchestratorOptions; @@ -21,8 +21,8 @@ public TeamCloudEndpointOptions(EndpointOrchestratorOptions endpointOrchestrator public string Orchestrator => endpointOrchestratorOptions?.Url; - string IOrchestratorOptions.Url => endpointOrchestratorOptions?.Url; + string IOrchestratorServiceOptions.Url => endpointOrchestratorOptions?.Url; - string IOrchestratorOptions.AuthCode => endpointOrchestratorOptions?.AuthCode; + string IOrchestratorServiceOptions.AuthCode => endpointOrchestratorOptions?.AuthCode; } } diff --git a/src/TeamCloud.API/Services/OneTimeTokenService.cs b/src/TeamCloud.API/Services/OneTimeTokenService.cs new file mode 100644 index 00000000..d6affe64 --- /dev/null +++ b/src/TeamCloud.API/Services/OneTimeTokenService.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Security.Cryptography; +using System.Threading.Tasks; +using Microsoft.Azure.Cosmos.Serialization.HybridRow; +using Microsoft.Azure.Cosmos.Table; +using Nito.AsyncEx; +using TeamCloud.Model.Data; + +namespace TeamCloud.API.Services +{ + public class OneTimeTokenService + { + private readonly IOneTimeTokenServiceOptions options; + private readonly AsyncLazy tableInstance; + + public OneTimeTokenService(IOneTimeTokenServiceOptions options) + { + this.options = options ?? throw new ArgumentNullException(nameof(options)); + + tableInstance = new AsyncLazy(async () => + { + var table = CloudStorageAccount + .Parse(this.options.ConnectionString) + .CreateCloudTableClient() + .GetTableReference(nameof(OneTimeTokenService)); + + await table + .CreateIfNotExistsAsync() + .ConfigureAwait(false); + + return table; + }); + } + + public async Task AcquireTokenAsync(User user, TimeSpan? ttl = null) + { + var table = await tableInstance.ConfigureAwait(false); + var entity = new OneTimeTokenServiceEntity(Guid.Parse(user.Organization), Guid.Parse(user.Id), ttl); + + _ = await table + .ExecuteAsync(TableOperation.Insert(entity)) + .ConfigureAwait(false); + + return entity.Token; + } + + public async Task InvalidateTokenAsync(string token) + { + if (string.IsNullOrWhiteSpace(token)) + throw new ArgumentException($"'{nameof(token)}' cannot be null or whitespace.", nameof(token)); + + var timestamp = DateTimeOffset.UtcNow; + + var table = await tableInstance.ConfigureAwait(false); + + var filter = TableQuery.CombineFilters( + OneTimeTokenServiceEntity.DefaultPartitionKeyFilter, + TableOperators.And, + TableQuery.CombineFilters( + TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, token), + TableOperators.Or, + TableQuery.GenerateFilterConditionForDate("Expires", QueryComparisons.LessThanOrEqual, timestamp))); + + var response = await table + .ExecuteQuerySegmentedAsync(new TableQuery().Where(filter), default) + .ConfigureAwait(false); + + OneTimeTokenServiceEntity entity = null; + + while (true) + { + entity ??= response.Results + .SingleOrDefault(r => r.Token.Equals(token) && r.Expires > timestamp); + + var batch = new TableBatchOperation(); + + response.Results + .ToList() + .ForEach(r => { r.TableEntity.ETag = "*"; batch.Add(TableOperation.Delete(r)); }); + + if (batch.Any()) + { + await table + .ExecuteBatchAsync(batch) + .ConfigureAwait(false); + } + + if (response.ContinuationToken != null) + { + response = await table + .ExecuteQuerySegmentedAsync(new TableQuery().Where(filter), response.ContinuationToken) + .ConfigureAwait(false); + } + else + { + break; + } + } + + return entity; + } + } +} diff --git a/src/TeamCloud.API/Services/OneTimeTokenServiceEntity.cs b/src/TeamCloud.API/Services/OneTimeTokenServiceEntity.cs new file mode 100644 index 00000000..e6c1540b --- /dev/null +++ b/src/TeamCloud.API/Services/OneTimeTokenServiceEntity.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Security.Cryptography; +using System.Text.RegularExpressions; +using Microsoft.Azure.Cosmos.Table; + +namespace TeamCloud.API.Services +{ + public class OneTimeTokenServiceEntity : ITableEntity + { + public static string DefaultPartitionKeyValue => nameof(OneTimeTokenServiceEntity); + + public static string DefaultPartitionKeyFilter => TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, DefaultPartitionKeyValue); + + // expression to sanitize a token so it can be used as a rowkey in Azure table storage + private static readonly Regex DisallowedCharsInRowKeyExpression = new Regex(@"[\\\\#%+/?\u0000-\u001F\u007F-\u009F]"); + + public static string CreateToken() + { + using var rng = new RNGCryptoServiceProvider(); + + var buffer = new byte[60]; + + rng.GetNonZeroBytes(buffer); + + return DisallowedCharsInRowKeyExpression.Replace(Convert.ToBase64String(buffer), string.Empty); + } + + public OneTimeTokenServiceEntity() + {} + + public OneTimeTokenServiceEntity(Guid organizationId, Guid userId, TimeSpan? ttl = null) + { + OrganizationId = organizationId; + UserId = userId; + + if (ttl.HasValue && ttl.Value > TimeSpan.Zero) + { + Expires = DateTimeOffset.UtcNow.Add(ttl.Value); + } + } + + public string Token => TableEntity.RowKey; + + public Guid OrganizationId { get; set; } + + public Guid UserId { get; set; } + + public DateTimeOffset Expires { get; set; } = DateTimeOffset.UtcNow.AddMinutes(1); + + public ITableEntity TableEntity => this; + + string ITableEntity.PartitionKey { get; set; } = DefaultPartitionKeyValue; + + string ITableEntity.RowKey { get; set; } = CreateToken(); + + DateTimeOffset ITableEntity.Timestamp { get; set; } + + string ITableEntity.ETag { get; set; } + + void ITableEntity.ReadEntity(IDictionary properties, OperationContext operationContext) + => Microsoft.Azure.Cosmos.Table.TableEntity.ReadUserObject(this, properties, operationContext); + + IDictionary ITableEntity.WriteEntity(OperationContext operationContext) + => Microsoft.Azure.Cosmos.Table.TableEntity.WriteUserObject(this, operationContext); + } +} diff --git a/src/TeamCloud.API/Services/OneTimeTokenServiceOptions.cs b/src/TeamCloud.API/Services/OneTimeTokenServiceOptions.cs new file mode 100644 index 00000000..0e8fcb58 --- /dev/null +++ b/src/TeamCloud.API/Services/OneTimeTokenServiceOptions.cs @@ -0,0 +1,25 @@ +using System; +using TeamCloud.Configuration; +using TeamCloud.Configuration.Options; + +namespace TeamCloud.API.Services +{ + + public interface IOneTimeTokenServiceOptions + { + public string ConnectionString { get; } + } + + [Options] + public sealed class OneTimeTokenServiceOptions : IOneTimeTokenServiceOptions + { + private readonly AzureStorageOptions azureStorageOptions; + + public OneTimeTokenServiceOptions(AzureStorageOptions azureStorageOptions) + { + this.azureStorageOptions = azureStorageOptions ?? throw new ArgumentNullException(nameof(azureStorageOptions)); + } + + public string ConnectionString => azureStorageOptions.ConnectionString; + } +} diff --git a/src/TeamCloud.API/Services/OrchestratorService.cs b/src/TeamCloud.API/Services/OrchestratorService.cs index 513eebe9..04d042e6 100644 --- a/src/TeamCloud.API/Services/OrchestratorService.cs +++ b/src/TeamCloud.API/Services/OrchestratorService.cs @@ -15,10 +15,10 @@ namespace TeamCloud.API.Services { public sealed class OrchestratorService { - private readonly IOrchestratorOptions options; + private readonly IOrchestratorServiceOptions options; private readonly IHttpContextAccessor httpContextAccessor; - public OrchestratorService(IOrchestratorOptions options, IHttpContextAccessor httpContextAccessor) + public OrchestratorService(IOrchestratorServiceOptions options, IHttpContextAccessor httpContextAccessor) { this.options = options ?? throw new ArgumentNullException(nameof(options)); this.httpContextAccessor = httpContextAccessor ?? throw new ArgumentNullException(nameof(httpContextAccessor)); diff --git a/src/TeamCloud.API/Services/OrchestratorExtensions.cs b/src/TeamCloud.API/Services/OrchestratorServiceExtensions.cs similarity index 99% rename from src/TeamCloud.API/Services/OrchestratorExtensions.cs rename to src/TeamCloud.API/Services/OrchestratorServiceExtensions.cs index 24e533a9..e52f6833 100644 --- a/src/TeamCloud.API/Services/OrchestratorExtensions.cs +++ b/src/TeamCloud.API/Services/OrchestratorServiceExtensions.cs @@ -13,7 +13,7 @@ namespace TeamCloud.API.Services { - public static class OrchestratorExtensions + public static class OrchestratorServiceExtensions { public static ICommandResult SetResultLinks(this ICommandResult commandResult, IHttpContextAccessor httpContextAccessor, HttpResponseMessage commandResponse, string projectId) { diff --git a/src/TeamCloud.API/Services/OrchestratorOptions.cs b/src/TeamCloud.API/Services/OrchestratorServiceOptions.cs similarity index 81% rename from src/TeamCloud.API/Services/OrchestratorOptions.cs rename to src/TeamCloud.API/Services/OrchestratorServiceOptions.cs index c289e9af..916a20c6 100644 --- a/src/TeamCloud.API/Services/OrchestratorOptions.cs +++ b/src/TeamCloud.API/Services/OrchestratorServiceOptions.cs @@ -5,7 +5,7 @@ namespace TeamCloud.API.Services { - public interface IOrchestratorOptions + public interface IOrchestratorServiceOptions { public string Url { get; } diff --git a/src/TeamCloud.API/Services/UserService.cs b/src/TeamCloud.API/Services/UserService.cs index de100511..f784aaf3 100644 --- a/src/TeamCloud.API/Services/UserService.cs +++ b/src/TeamCloud.API/Services/UserService.cs @@ -44,22 +44,25 @@ public async Task CurrentUserAsync(string organizationId, bool allowUnsafe { User user = null; - if (!string.IsNullOrEmpty(organizationId)) + if (!string.IsNullOrEmpty(CurrentUserId)) { - user = await userRepository - .GetAsync(organizationId, CurrentUserId) - .ConfigureAwait(false); - } + if (!string.IsNullOrEmpty(organizationId)) + { + user = await userRepository + .GetAsync(organizationId, CurrentUserId) + .ConfigureAwait(false); + } - if (user is null && allowUnsafe) - { - user = new User + if (user is null && allowUnsafe) { - Id = CurrentUserId, - Organization = organizationId, - Role = OrganizationUserRole.None, - UserType = UserType.User - }; + user = new User + { + Id = CurrentUserId, + Organization = organizationId, + Role = OrganizationUserRole.None, + UserType = UserType.User + }; + } } return user; diff --git a/src/TeamCloud.API/Startup.cs b/src/TeamCloud.API/Startup.cs index 005d70b8..5d3bc061 100644 --- a/src/TeamCloud.API/Startup.cs +++ b/src/TeamCloud.API/Startup.cs @@ -6,11 +6,14 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Net; using System.Reflection; using System.Security.Claims; +using System.Threading.Tasks; using FluentValidation; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.AzureAD.UI; +using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.DataProtection; @@ -34,10 +37,12 @@ using TeamCloud.Adapters.AzureResourceManager; using TeamCloud.Adapters.GitHub; using TeamCloud.API.Auth; +using TeamCloud.API.Auth.Schemes; using TeamCloud.API.Middleware; using TeamCloud.API.Options; using TeamCloud.API.Routing; using TeamCloud.API.Services; +using TeamCloud.API.Swagger; using TeamCloud.Audit; using TeamCloud.Azure; using TeamCloud.Azure.Deployment; @@ -93,12 +98,12 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, AzureRes app .UseSwagger() - .UseSwaggerUI(c => + .UseSwaggerUI(setup => { - c.SwaggerEndpoint("/swagger/v1/swagger.json", "TeamCloud API v1"); - c.OAuthClientId(resourceManagerOptions.ClientId); - c.OAuthClientSecret(""); - c.OAuthUsePkce(); + setup.SwaggerEndpoint("/swagger/v1/swagger.json", "TeamCloud API v1"); + setup.OAuthClientId(resourceManagerOptions.ClientId); + setup.OAuthClientSecret(""); + setup.OAuthUsePkce(); }); app @@ -178,6 +183,7 @@ public void ConfigureServices(IServiceCollection services) .AddSingleton() .AddSingleton() .AddSingleton() + .AddSingleton() .AddSingleton() .AddSingleton(); @@ -251,6 +257,8 @@ private static void ConfigureSwagger(IServiceCollection services, AzureResourceM services .AddSwaggerGen(options => { + options.DocumentFilter(); + options.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", @@ -314,7 +322,8 @@ private static void ConfigureAuthentication(IServiceCollection services, AzureRe { options.Instance = AzureEnvironment.AzureGlobalCloud.AuthenticationEndpoint; options.TenantId = azureResourceManagerOptions.TenantId; - }); + }) + .AddAdapterAuthentication(); services .AddHttpContextAccessor() diff --git a/src/TeamCloud.API/Swagger/SwaggerDocumentFilter.cs b/src/TeamCloud.API/Swagger/SwaggerDocumentFilter.cs new file mode 100644 index 00000000..9dc3c7d7 --- /dev/null +++ b/src/TeamCloud.API/Swagger/SwaggerDocumentFilter.cs @@ -0,0 +1,19 @@ +using Microsoft.OpenApi.Models; +using Swashbuckle.AspNetCore.SwaggerGen; + +namespace TeamCloud.API.Swagger +{ + internal sealed class SwaggerDocumentFilter : IDocumentFilter + { + public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context) + { + foreach (var apiDescription in context.ApiDescriptions) + { + if (apiDescription.TryGetMethodInfo(out var methodInfo) && methodInfo.HasCustomAttribute(false)) + { + swaggerDoc.Paths.Remove($"/{apiDescription.RelativePath}"); + } + } + } + } +} diff --git a/src/TeamCloud.API/Swagger/SwaggerIgnoreAttribute.cs b/src/TeamCloud.API/Swagger/SwaggerIgnoreAttribute.cs new file mode 100644 index 00000000..a0376ffd --- /dev/null +++ b/src/TeamCloud.API/Swagger/SwaggerIgnoreAttribute.cs @@ -0,0 +1,9 @@ +using System; + +namespace TeamCloud.API.Swagger +{ + [AttributeUsage(AttributeTargets.Method)] + internal sealed class SwaggerIgnoreAttribute : Attribute + { + } +} diff --git a/src/TeamCloud.Adapters.AzureDevOps/AzureDevOpsAdapter.cs b/src/TeamCloud.Adapters.AzureDevOps/AzureDevOpsAdapter.cs index 534107e6..82d73d04 100644 --- a/src/TeamCloud.Adapters.AzureDevOps/AzureDevOpsAdapter.cs +++ b/src/TeamCloud.Adapters.AzureDevOps/AzureDevOpsAdapter.cs @@ -15,6 +15,7 @@ using Flurl; using Flurl.Http; using Flurl.Http.Configuration; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.DevOps.Licensing.WebApi; using Microsoft.Azure.WebJobs; @@ -57,7 +58,7 @@ namespace TeamCloud.Adapters.AzureDevOps { - public sealed class AzureDevOpsAdapter : Adapter, IAdapterAuthorize + public sealed class AzureDevOpsAdapter : AdapterWithIdentity, IAdapterAuthorize { private const string VisualStudioAuthUrl = "https://app.vssps.visualstudio.com/oauth2/authorize"; private const string VisualStudioTokenUrl = "https://app.vssps.visualstudio.com/oauth2/token"; @@ -130,24 +131,16 @@ public override async Task IsAuthorizedAsync(DeploymentScope deploymentSco return !(token is null); } - Task IAdapterAuthorize.CreateSessionAsync(DeploymentScope deploymentScope) - { - if (deploymentScope is null) - throw new ArgumentNullException(nameof(deploymentScope)); + Task IAdapterAuthorize.ResolvePrincipalAsync(DeploymentScope deploymentScope, HttpRequest request) + => Task.FromResult(null); - if (deploymentScope.Type != Type) - throw new ArgumentException("Argument value can not be handled", nameof(deploymentScope)); - - return SessionClient.SetAsync(new AzureDevOpsSession(deploymentScope)); - } - - async Task IAdapterAuthorize.HandleAuthorizeAsync(DeploymentScope deploymentScope, HttpRequestMessage requestMessage, IAuthorizationEndpoints authorizationEndpoints) + async Task IAdapterAuthorize.HandleAuthorizeAsync(DeploymentScope deploymentScope, HttpRequest request, IAuthorizationEndpoints authorizationEndpoints) { if (deploymentScope is null) throw new ArgumentNullException(nameof(deploymentScope)); - if (requestMessage is null) - throw new ArgumentNullException(nameof(requestMessage)); + if (request is null) + throw new ArgumentNullException(nameof(request)); if (authorizationEndpoints is null) throw new ArgumentNullException(nameof(authorizationEndpoints)); @@ -156,23 +149,27 @@ async Task IAdapterAuthorize.HandleAuthorizeAsync(DeploymentScope .GetAsync(deploymentScope) .ConfigureAwait(false); - var task = requestMessage.Method switch + authorizationSession ??= await SessionClient + .SetAsync(new AzureDevOpsSession(deploymentScope)) + .ConfigureAwait(false); + + var task = request.Method.ToUpperInvariant() switch { - HttpMethod m when m == HttpMethod.Get => HandleAuthorizeGetAsync(deploymentScope, authorizationSession, requestMessage, authorizationEndpoints), - HttpMethod m when m == HttpMethod.Post => HandleAuthorizePostAsync(deploymentScope, authorizationSession, requestMessage, authorizationEndpoints), + "GET" => HandleAuthorizeGetAsync(deploymentScope, authorizationSession, request, authorizationEndpoints), + "POST" => HandleAuthorizePostAsync(deploymentScope, authorizationSession, request, authorizationEndpoints), _ => Task.FromException(new NotImplementedException()) }; return await task.ConfigureAwait(false); } - async Task IAdapterAuthorize.HandleCallbackAsync(DeploymentScope deploymentScope, HttpRequestMessage requestMessage, IAuthorizationEndpoints authorizationEndpoints) + async Task IAdapterAuthorize.HandleCallbackAsync(DeploymentScope deploymentScope, HttpRequest request, IAuthorizationEndpoints authorizationEndpoints) { if (deploymentScope is null) throw new ArgumentNullException(nameof(deploymentScope)); - if (requestMessage is null) - throw new ArgumentNullException(nameof(requestMessage)); + if (request is null) + throw new ArgumentNullException(nameof(request)); if (authorizationEndpoints is null) throw new ArgumentNullException(nameof(authorizationEndpoints)); @@ -186,13 +183,11 @@ async Task IAdapterAuthorize.HandleCallbackAsync(DeploymentScope return new NotFoundResult(); } - var queryParams = requestMessage.RequestUri.ParseQueryString(); - - if (queryParams.TryGetValue("error", out string error)) + if (request.Query.TryGetValue("error", out var error)) { return new RedirectResult(authorizationEndpoints.AuthorizationUrl.SetQueryParam("error", error)); } - else if (!queryParams.TryGetValue("state", out string state) || !authorizationSession.SessionState.Equals(state, StringComparison.OrdinalIgnoreCase)) + else if (!request.Query.TryGetValue("state", out var state) || !authorizationSession.SessionState.Equals(state, StringComparison.OrdinalIgnoreCase)) { return new RedirectResult(authorizationEndpoints.AuthorizationUrl.SetQueryParam("error", "Authorization state invalid")); } @@ -203,7 +198,7 @@ async Task IAdapterAuthorize.HandleCallbackAsync(DeploymentScope client_assertion_type = "urn:ietf:params:oauth:client-assertion-type:jwt-bearer", client_assertion = authorizationSession.ClientSecret, grant_type = "urn:ietf:params:oauth:grant-type:jwt-bearer", - assertion = queryParams.Get("code"), + assertion = request.Query.GetValueOrDefault("code").ToString(), redirect_uri = authorizationEndpoints.CallbackUrl }; @@ -268,16 +263,15 @@ static async Task GetErrorDescriptionAsync(HttpResponseMessage responseM } } - private async Task HandleAuthorizeGetAsync(DeploymentScope deploymentScope, AzureDevOpsSession authorizationSession, HttpRequestMessage requestMessage, IAuthorizationEndpoints authorizationEndpoints) + private async Task HandleAuthorizeGetAsync(DeploymentScope deploymentScope, AzureDevOpsSession authorizationSession, HttpRequest request, IAuthorizationEndpoints authorizationEndpoints) { - var queryParams = Url.ParseQueryParams(requestMessage.RequestUri.Query); - var queryError = queryParams.GetValueOrDefault("error", StringComparison.OrdinalIgnoreCase); + var queryError = request.Query.GetValueOrDefault("error").ToString(); if (!string.IsNullOrEmpty(queryError)) { log.LogWarning($"Authorization failed: {queryError}"); } - else if (queryParams.ContainsKey("succeeded")) + else if (request.Query.ContainsKey("succeeded")) { log.LogInformation($"Authorization succeeded"); } @@ -297,15 +291,15 @@ private async Task HandleAuthorizeGetAsync(DeploymentScope deploy data = data, session = authorizationSession, error = queryError ?? string.Empty, - succeeded = queryParams.ContainsKey("succeeded") + succeeded = request.Query.ContainsKey("succeeded") }) }; } - private async Task HandleAuthorizePostAsync(DeploymentScope deploymentScope, AzureDevOpsSession authorizationSession, HttpRequestMessage requestMessage, IAuthorizationEndpoints authorizationEndpoints) + private async Task HandleAuthorizePostAsync(DeploymentScope deploymentScope, AzureDevOpsSession authorizationSession, HttpRequest request, IAuthorizationEndpoints authorizationEndpoints) { - var payload = await requestMessage.Content - .ReadAsStringAsync() + var payload = await request + .ReadStringAsync() .ConfigureAwait(false); var payloadParams = Url.ParseQueryParams(payload); @@ -1180,7 +1174,7 @@ await gitClient }); public override Task GetServiceCredentialAsync(Component component) - => ExecuteAsync(component, async (componentOrganization, componentDeploymentScope, comonentProject) => + => WithContextAsync(component, async (componentOrganization, componentDeploymentScope, comonentProject) => { var token = await TokenClient .GetAsync(componentDeploymentScope) diff --git a/src/TeamCloud.Adapters.GitHub/GitHubAdapter.cs b/src/TeamCloud.Adapters.GitHub/GitHubAdapter.cs index 9cac8ad0..6479d776 100644 --- a/src/TeamCloud.Adapters.GitHub/GitHubAdapter.cs +++ b/src/TeamCloud.Adapters.GitHub/GitHubAdapter.cs @@ -6,21 +6,28 @@ using System; using System.Collections.Generic; using System.Globalization; +using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Reflection; +using System.Security.Claims; +using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using Flurl; using Flurl.Http; using Flurl.Http.Configuration; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.Azure.Cosmos.Core; using Microsoft.Azure.Management.CosmosDB.Fluent.Models; using Microsoft.Azure.Management.DevTestLabs.Models; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Host; using Microsoft.Extensions.Logging; +using Microsoft.OData.Json; +using Newtonsoft.Json; using Octokit; using Octokit.Internal; using Org.BouncyCastle.Asn1.Crmf; @@ -46,7 +53,7 @@ namespace TeamCloud.Adapters.GitHub { - public sealed partial class GitHubAdapter : Adapter, IAdapterAuthorize, IAdapterIdentity + public sealed partial class GitHubAdapter : AdapterWithIdentity, IAdapterAuthorize { private static readonly IJsonSerializer GitHubSerializer = new SimpleJsonSerializer(); @@ -122,37 +129,80 @@ public override async Task IsAuthorizedAsync(DeploymentScope deploymentSco return !(token is null); } - Task IAdapterAuthorize.CreateSessionAsync(DeploymentScope deploymentScope) + async Task IAdapterAuthorize.ResolvePrincipalAsync(DeploymentScope deploymentScope, HttpRequest request) { + const string SignatureHeader = "X-Hub-Signature-256"; + if (deploymentScope is null) throw new ArgumentNullException(nameof(deploymentScope)); - if (deploymentScope.Type != Type) - throw new ArgumentException("Argument value can not be handled", nameof(deploymentScope)); + if (request is null) + throw new ArgumentNullException(nameof(request)); + + if (request.Headers.TryGetValue(SignatureHeader, out var signatureValue) && !string.IsNullOrEmpty(signatureValue)) + { + var token = await TokenClient + .GetAsync(deploymentScope) + .ConfigureAwait(false); + + if (!string.IsNullOrEmpty(token?.WebhookSecret)) + { + var signature = signatureValue + .ToString() + .Substring(signatureValue.ToString().IndexOf('=') + 1); + + // CAUTION - we need to read the body but leave + // the request's body stream open so it stays + // available for subsequent requests + + var body = await request + .ReadStringAsync(leaveOpen: true) + .ConfigureAwait(false); + + var secret = Encoding.ASCII + .GetBytes(token.WebhookSecret); + + using var hmac = new HMACSHA256(secret); + + var hash = hmac + .ComputeHash(Encoding.ASCII.GetBytes(body)) + .ToHexString(); - return SessionClient.SetAsync(new GitHubSession(deploymentScope)); + if (hash.Equals(signature)) + { + // signature successfully validated - lets use the adapters identity to proceed + return await GetServiceIdentityAsync(deploymentScope).ConfigureAwait(false); + } + } + } + + return null; } - async Task IAdapterAuthorize.HandleAuthorizeAsync(DeploymentScope deploymentScope, HttpRequestMessage requestMessage, IAuthorizationEndpoints authorizationEndpoints) + async Task IAdapterAuthorize.HandleAuthorizeAsync(DeploymentScope deploymentScope, HttpRequest request, IAuthorizationEndpoints authorizationEndpoints) { if (deploymentScope is null) throw new ArgumentNullException(nameof(deploymentScope)); - if (requestMessage is null) - throw new ArgumentNullException(nameof(requestMessage)); + if (request is null) + throw new ArgumentNullException(nameof(request)); if (authorizationEndpoints is null) throw new ArgumentNullException(nameof(authorizationEndpoints)); - var queryParams = Flurl.Url.ParseQueryParams(requestMessage.RequestUri.Query); + var queryParams = Url.ParseQueryParams(request.QueryString.ToString()); var queryState = queryParams.GetValueOrDefault("state", StringComparison.OrdinalIgnoreCase); var queryCode = queryParams.GetValueOrDefault("code", StringComparison.OrdinalIgnoreCase); var queryError = queryParams.GetValueOrDefault("error", StringComparison.OrdinalIgnoreCase); - var authorizationSession = await SessionClient + var session = await SessionClient .GetAsync(deploymentScope) .ConfigureAwait(false); + session ??= await SessionClient + .SetAsync(new GitHubSession(deploymentScope)) + .ConfigureAwait(false); + var data = string.IsNullOrWhiteSpace(deploymentScope.InputData) ? default : TeamCloudSerialize.DeserializeObject(deploymentScope.InputData); @@ -163,8 +213,7 @@ async Task IAdapterAuthorize.HandleAuthorizeAsync(DeploymentScope if (string.IsNullOrEmpty(queryError) && Guid.TryParse(queryState, out var stateId)) { - - if (!stateId.ToString().Equals(authorizationSession.SessionId, StringComparison.OrdinalIgnoreCase)) + if (!stateId.ToString().Equals(session.SessionId, StringComparison.OrdinalIgnoreCase)) { return new RedirectResult(authorizationEndpoints.AuthorizationUrl.SetQueryParam("error", "Session timed out.").ToString()); } @@ -223,25 +272,25 @@ async Task IAdapterAuthorize.HandleAuthorizeAsync(DeploymentScope authorizationEndpoints = authorizationEndpoints, token = token, data = data, - session = authorizationSession, + session = session, error = queryError ?? string.Empty, succeeded = queryParams.ContainsKey("succeeded") }; } - async Task IAdapterAuthorize.HandleCallbackAsync(DeploymentScope deploymentScope, HttpRequestMessage requestMessage, IAuthorizationEndpoints authorizationEndpoints) + async Task IAdapterAuthorize.HandleCallbackAsync(DeploymentScope deploymentScope, HttpRequest request, IAuthorizationEndpoints authorizationEndpoints) { if (deploymentScope is null) throw new ArgumentNullException(nameof(deploymentScope)); - if (requestMessage is null) - throw new ArgumentNullException(nameof(requestMessage)); + if (request is null) + throw new ArgumentNullException(nameof(request)); if (authorizationEndpoints is null) throw new ArgumentNullException(nameof(authorizationEndpoints)); - var json = await requestMessage.Content - .ReadAsJsonAsync() + var json = await request + .ReadJsonAsync() .ConfigureAwait(false); var appId = json @@ -398,7 +447,7 @@ private Task ExecuteAsync(Component component, User contextUser, IAsy if (callback is null) throw new ArgumentNullException(nameof(callback)); - return base.ExecuteAsync(component, async (componentOrganization, componentDeploymentScope, componentProject) => + return base.WithContextAsync(component, async (componentOrganization, componentDeploymentScope, componentProject) => { var token = await TokenClient .GetAsync(componentDeploymentScope) @@ -466,7 +515,7 @@ private Task ExecuteAsync(Component component, User contextUser, IAsy .ListAdminsAsync(component.Organization) .ToArrayAsync() .ConfigureAwait(false); - + await Task.WhenAll( EnsurePermissionAsync(projectTeam, project, "write"), @@ -536,7 +585,7 @@ async Task EnsureTeamAsync(string teamName, Team parentTeam, NewTeam teamD .CreateForOrganization(token.Owner.Login, projectDefinition) .ConfigureAwait(false); } - catch (ApiException exc) when (exc.StatusCode == HttpStatusCode.UnprocessableEntity) + catch (ApiException exc) when (exc.StatusCode == HttpStatusCode.UnprocessableEntity) { // the project already exists - try to re-fetch project information @@ -678,56 +727,72 @@ protected override Task CreateComponentAsync(Component component, Org while (repository is null) { - try - { - repositoryTemplateUrl ??= await GetTemplateRepositoryUrlAsync().ConfigureAwait(false); + repositoryTemplateUrl ??= await GetTemplateRepositoryUrlAsync().ConfigureAwait(false); - var repositoryTemplate = string.IsNullOrEmpty(repositoryTemplateUrl) - ? null // as there is no repository template url available we won't find a repo - : await GetTemplateRepositoryAsync(repositoryTemplateUrl).ConfigureAwait(false); + var repositoryTemplate = string.IsNullOrEmpty(repositoryTemplateUrl) + ? null // as there is no repository template url available we won't find a repo + : await GetTemplateRepositoryAsync(repositoryTemplateUrl).ConfigureAwait(false); - if (repositoryTemplate is null) - { - // the fact that there is no repository template just means that - // we can't use the repo templating factory provided by GitHub, but - // need to fall back to a classic repository import later on if a - // template repository git url is given. + if (repositoryTemplate is null) + { + // the fact that there is no repository template just means that + // we can't use the repo templating factory provided by GitHub, but + // need to fall back to a classic repository import later on if a + // template repository git url is given. - var data = string.IsNullOrWhiteSpace(componentDeploymentScope.InputData) - ? default - : TeamCloudSerialize.DeserializeObject(componentDeploymentScope.InputData); + var data = string.IsNullOrWhiteSpace(componentDeploymentScope.InputData) + ? default + : TeamCloudSerialize.DeserializeObject(componentDeploymentScope.InputData); - var repoSettings = new NewRepository(repositoryName) - { - Description = repositoryDescription, - AutoInit = string.IsNullOrWhiteSpace(repositoryTemplateUrl), - Private = !(data?.PublicRepository ?? false) - }; + var repoSettings = new NewRepository(repositoryName) + { + Description = repositoryDescription, + AutoInit = string.IsNullOrWhiteSpace(repositoryTemplateUrl), + Private = !(data?.PublicRepository ?? false) + }; + try + { repository = await client.Repository .Create(owner.Login, repoSettings) .ConfigureAwait(false); } - else + catch (RepositoryExistsException) { - // use the GitHub template repository as a blueprint to create a new - // repository. as this API call isn't supported by the Octokit client - // library we need to fall back to a raw API call via Flurl. + repositoryName = GetRepositoryName(componentProject, component, ++repositoryCount); + } + } + else + { + // use the GitHub template repository as a blueprint to create a new + // repository. as this API call isn't supported by the Octokit client + // library we need to fall back to a raw API call via Flurl. - var payload = new - { - owner = owner.Login, - name = repositoryName, - description = repositoryDescription - }; + var payload = new + { + owner = owner.Login, + name = repositoryName, + description = repositoryDescription + }; - var response = await repositoryTemplate.Url.ToString() - .AppendPathSegment("generate") - .WithGitHubHeaders("baptiste-preview") - .WithGitHubCredentials(client.Credentials) - .PostJsonAsync(payload) - .ConfigureAwait(false); + var response = await repositoryTemplate.Url.ToString() + .AppendPathSegment("generate") + .WithGitHubHeaders("baptiste-preview") + .WithGitHubCredentials(client.Credentials) + .AllowHttpStatus(HttpStatusCode.UnprocessableEntity) + .PostJsonAsync(payload) + .ConfigureAwait(false); + + if (response.StatusCode == HttpStatusCode.UnprocessableEntity) + { + // the generate from template repo operation returns this + // status code if the target repo name already exists. + // lets make the repo name unique and try again. + repositoryName = GetRepositoryName(componentProject, component, ++repositoryCount); + } + else + { var json = await response.Content .ReadAsStringAsync() .ConfigureAwait(false); @@ -735,10 +800,6 @@ protected override Task CreateComponentAsync(Component component, Org repository = GitHubSerializer.Deserialize(json); } } - catch (RepositoryExistsException) - { - repositoryName = GetRepositoryName(componentProject, component, ++repositoryCount); - } } if (!GitHubIdentifier.FromUrl(repository.HtmlUrl).ToString().Equals(component.ResourceId, StringComparison.OrdinalIgnoreCase)) diff --git a/src/TeamCloud.Adapters/Adapter.cs b/src/TeamCloud.Adapters/Adapter.cs index dc88de14..68aeeec2 100644 --- a/src/TeamCloud.Adapters/Adapter.cs +++ b/src/TeamCloud.Adapters/Adapter.cs @@ -135,182 +135,24 @@ public virtual Task GetServiceCredentialAsync(Component compo public abstract Task IsAuthorizedAsync(DeploymentScope deploymentScope); public Task CreateComponentAsync(Component component, User contextUser, IAsyncCollector commandQueue) - { - if (component is null) - throw new ArgumentNullException(nameof(component)); - - if (contextUser is null) - throw new ArgumentNullException(nameof(contextUser)); - - if (commandQueue is null) - throw new ArgumentNullException(nameof(commandQueue)); - - return ExecuteAsync(component, async (componentOrganization, componentDeploymentScope, componentProject) => - { - if (this is IAdapterIdentity) - { - await EnsureServiceIdentityUserAsync(component, contextUser, commandQueue) - .ConfigureAwait(false); - } - - return await CreateComponentAsync(component, componentOrganization, componentDeploymentScope, componentProject, contextUser, commandQueue) - .ConfigureAwait(false); - }); - } + => WithContextAsync(component, (componentOrganization, componentDeploymentScope, componentProject) + => CreateComponentAsync(component, componentOrganization, componentDeploymentScope, componentProject, contextUser, commandQueue)); protected abstract Task CreateComponentAsync(Component component, Organization organization, DeploymentScope deploymentScope, Project project, User contextUser, IAsyncCollector commandQueue); public Task UpdateComponentAsync(Component component, User contextUser, IAsyncCollector commandQueue) - { - if (component is null) - throw new ArgumentNullException(nameof(component)); - - if (contextUser is null) - throw new ArgumentNullException(nameof(contextUser)); - - if (commandQueue is null) - throw new ArgumentNullException(nameof(commandQueue)); - - return ExecuteAsync(component, async (componentOrganization, componentDeploymentScope, componentProject) => - { - if (this is IAdapterIdentity) - { - await EnsureServiceIdentityUserAsync(component, contextUser, commandQueue) - .ConfigureAwait(false); - } - - return await UpdateComponentAsync(component, componentOrganization, componentDeploymentScope, componentProject, contextUser, commandQueue) - .ConfigureAwait(false); - }); - } + => WithContextAsync(component, (componentOrganization, componentDeploymentScope, componentProject) + => UpdateComponentAsync(component, componentOrganization, componentDeploymentScope, componentProject, contextUser, commandQueue)); protected abstract Task UpdateComponentAsync(Component component, Organization organization, DeploymentScope deploymentScope, Project project, User contextUser, IAsyncCollector commandQueue); public Task DeleteComponentAsync(Component component, User contextUser, IAsyncCollector commandQueue) - { - if (component is null) - throw new ArgumentNullException(nameof(component)); - - if (contextUser is null) - throw new ArgumentNullException(nameof(contextUser)); - - if (commandQueue is null) - throw new ArgumentNullException(nameof(commandQueue)); - - return ExecuteAsync(component, async (componentOrganization, componentDeploymentScope, componentProject) => - { - if (this is IAdapterIdentity) - { - await EnsureServiceIdentityUserAsync(component, contextUser, commandQueue) - .ConfigureAwait(false); - } - - return await DeleteComponentAsync(component, componentOrganization, componentDeploymentScope, componentProject, contextUser, commandQueue) - .ConfigureAwait(false); - }); - } + => WithContextAsync(component, (componentOrganization, componentDeploymentScope, componentProject) + => DeleteComponentAsync(component, componentOrganization, componentDeploymentScope, componentProject, contextUser, commandQueue)); protected abstract Task DeleteComponentAsync(Component component, Organization organization, DeploymentScope deploymentScope, Project project, User contextUser, IAsyncCollector commandQueue); - private async Task EnsureServiceIdentityUserAsync(Component component, User contextUser, IAsyncCollector commandQueue) - { - var servicePrincipal = await GetServiceIdentityAsync(component) - .ConfigureAwait(false); - - if (servicePrincipal != null) - { - await ExecuteAsync(component, async (componentOrganization, componentDeploymentScope, componentProject) => - { - var servicePrincipalUser = await userRepository - .GetAsync(component.Organization, servicePrincipal.ObjectId.ToString()) - .ConfigureAwait(false); - - if (servicePrincipalUser is null || servicePrincipalUser.ProjectMembership(componentProject.Id) is null) - { - var servicePrincipalUserIsNew = (servicePrincipalUser is null); - - servicePrincipalUser ??= new User - { - Id = servicePrincipal.ObjectId.ToString(), - Role = OrganizationUserRole.None, - UserType = Model.Data.UserType.Service, - Organization = component.Organization - }; - - servicePrincipalUser.EnsureProjectMembership(componentProject.Id, ProjectUserRole.Adapter); - - var projectUserCommand = servicePrincipalUserIsNew - ? (ICommand)new ProjectUserCreateCommand(contextUser, servicePrincipalUser, componentProject.Id) - : (ICommand)new ProjectUserUpdateCommand(contextUser, servicePrincipalUser, componentProject.Id); - - await commandQueue - .AddAsync(projectUserCommand) - .ConfigureAwait(false); - } - - }).ConfigureAwait(false); - } - } - - protected Task GetServiceIdentityAsync(Component component, bool withPassword = false) - => this is IAdapterIdentity ? ExecuteAsync(component, async (componentOrganization, componentDeploymentScope, componentProject) => - { - var servicePrincipalKey = Guid.Parse(componentDeploymentScope.Organization) - .Combine(Guid.Parse(componentDeploymentScope.Id), Guid.Parse(componentProject.Id)); - - var servicePrincipalName = $"{this.GetType().Name}/{servicePrincipalKey}"; - - var servicePrincipal = await azureDirectoryService - .GetServicePrincipalAsync(servicePrincipalName) - .ConfigureAwait(false); - - if (servicePrincipal is null) - { - // there is no service principal for the current deployment scope - // create a new one that we can use to create/update the corresponding - // service endpoint in the current team project - - servicePrincipal = await azureDirectoryService - .CreateServicePrincipalAsync(servicePrincipalName) - .ConfigureAwait(false); - } - else if (servicePrincipal.ExpiresOn.GetValueOrDefault(DateTime.MinValue) < DateTime.UtcNow) - { - // a service principal exists, but its secret is expired. lets refresh - // the service principal (create a new secret) so we can move on - // creating/updating the corresponding service endpoint. - - servicePrincipal = await azureDirectoryService - .RefreshServicePrincipalAsync(servicePrincipalName) - .ConfigureAwait(false); - } - - if (!string.IsNullOrEmpty(servicePrincipal.Password)) - { - var secretsStore = await secretsStoreProvider - .GetSecretsStoreAsync(componentProject) - .ConfigureAwait(false); - - servicePrincipal = await secretsStore - .SetSecretAsync(servicePrincipal.ObjectId.ToString(), servicePrincipal) - .ConfigureAwait(false); - } - else if (withPassword) - { - var secretsStore = await secretsStoreProvider - .GetSecretsStoreAsync(componentProject) - .ConfigureAwait(false); - - servicePrincipal = (await secretsStore - .GetSecretAsync(servicePrincipal.ObjectId.ToString()) - .ConfigureAwait(false)) ?? servicePrincipal; - } - - return servicePrincipal; - - }) : Task.FromResult(default(AzureServicePrincipal)); - - protected async Task ExecuteAsync(Component component, Func callback) + protected async Task WithContextAsync(Component component, Func callback) { if (component is null) throw new ArgumentNullException(nameof(component)); @@ -337,7 +179,7 @@ protected async Task ExecuteAsync(Component component, Func ExecuteAsync(Component component, Func> callback) + protected async Task WithContextAsync(Component component, Func> callback) { if (component is null) throw new ArgumentNullException(nameof(component)); @@ -364,4 +206,182 @@ protected async Task ExecuteAsync(Component component, Func GetServiceIdentityAsync(Component component, bool withPassword = false) + { + if (this is IAdapterIdentity) + { + var servicePrincipalKey = Guid.Parse(component.Organization) + .Combine(Guid.Parse(component.DeploymentScopeId), Guid.Parse(component.ProjectId)); + + var servicePrincipalName = $"{this.GetType().Name}/{servicePrincipalKey}"; + + var servicePrincipal = await azureDirectoryService + .GetServicePrincipalAsync(servicePrincipalName) + .ConfigureAwait(false); + + if (servicePrincipal is null) + { + // there is no service principal for the current deployment scope + // create a new one that we can use to create/update the corresponding + // service endpoint in the current team project + + servicePrincipal = await azureDirectoryService + .CreateServicePrincipalAsync(servicePrincipalName) + .ConfigureAwait(false); + } + else if (servicePrincipal.ExpiresOn.GetValueOrDefault(DateTime.MinValue) < DateTime.UtcNow) + { + // a service principal exists, but its secret is expired. lets refresh + // the service principal (create a new secret) so we can move on + // creating/updating the corresponding service endpoint. + + servicePrincipal = await azureDirectoryService + .RefreshServicePrincipalAsync(servicePrincipalName) + .ConfigureAwait(false); + } + + if (!string.IsNullOrEmpty(servicePrincipal.Password)) + { + var project = await projectRepository + .GetAsync(component.Organization, component.ProjectId) + .ConfigureAwait(false); + + var secretsStore = await secretsStoreProvider + .GetSecretsStoreAsync(project) + .ConfigureAwait(false); + + servicePrincipal = await secretsStore + .SetSecretAsync(servicePrincipal.ObjectId.ToString(), servicePrincipal) + .ConfigureAwait(false); + } + else if (withPassword) + { + var project = await projectRepository + .GetAsync(component.Organization, component.ProjectId) + .ConfigureAwait(false); + + var secretsStore = await secretsStoreProvider + .GetSecretsStoreAsync(project) + .ConfigureAwait(false); + + servicePrincipal = (await secretsStore + .GetSecretAsync(servicePrincipal.ObjectId.ToString()) + .ConfigureAwait(false)) ?? servicePrincipal; + } + + return servicePrincipal; + } + + return null; + } + + public virtual async Task GetServiceIdentityAsync(DeploymentScope deploymentScope, bool withPassword = false) + { + if (this is IAdapterIdentity) + { + var servicePrincipalKey = Guid.Parse(deploymentScope.Organization) + .Combine(Guid.Parse(deploymentScope.Id)); + + var servicePrincipalName = $"{this.GetType().Name}/{servicePrincipalKey}"; + + var servicePrincipal = await azureDirectoryService + .GetServicePrincipalAsync(servicePrincipalName) + .ConfigureAwait(false); + + if (servicePrincipal is null) + { + // there is no service principal for the current deployment scope + // create a new one that we can use to create/update the corresponding + // service endpoint in the current team project + + servicePrincipal = await azureDirectoryService + .CreateServicePrincipalAsync(servicePrincipalName) + .ConfigureAwait(false); + } + else if (servicePrincipal.ExpiresOn.GetValueOrDefault(DateTime.MinValue) < DateTime.UtcNow) + { + // a service principal exists, but its secret is expired. lets refresh + // the service principal (create a new secret) so we can move on + // creating/updating the corresponding service endpoint. + + servicePrincipal = await azureDirectoryService + .RefreshServicePrincipalAsync(servicePrincipalName) + .ConfigureAwait(false); + } + + if (!string.IsNullOrEmpty(servicePrincipal.Password)) + { + var tenantId = await azureSessionService + .GetTenantIdAsync() + .ConfigureAwait(false); + + var organization = await organizationRepository + .GetAsync(tenantId.ToString(), deploymentScope.Organization) + .ConfigureAwait(false); + + var secretsStore = await secretsStoreProvider + .GetSecretsStoreAsync(organization) + .ConfigureAwait(false); + + servicePrincipal = await secretsStore + .SetSecretAsync(servicePrincipal.ObjectId.ToString(), servicePrincipal) + .ConfigureAwait(false); + } + else if (withPassword) + { + var tenantId = await azureSessionService + .GetTenantIdAsync() + .ConfigureAwait(false); + + var organization = await organizationRepository + .GetAsync(tenantId.ToString(), deploymentScope.Organization) + .ConfigureAwait(false); + + var secretsStore = await secretsStoreProvider + .GetSecretsStoreAsync(organization) + .ConfigureAwait(false); + + servicePrincipal = (await secretsStore + .GetSecretAsync(servicePrincipal.ObjectId.ToString()) + .ConfigureAwait(false)) ?? servicePrincipal; + } + + return servicePrincipal; + } + + return null; + } + + } } diff --git a/src/TeamCloud.Adapters/AdapterExtensions.cs b/src/TeamCloud.Adapters/AdapterExtensions.cs index 88d37bf5..3aac1d84 100644 --- a/src/TeamCloud.Adapters/AdapterExtensions.cs +++ b/src/TeamCloud.Adapters/AdapterExtensions.cs @@ -16,6 +16,7 @@ using TeamCloud.Adapters.Authorization; using TeamCloud.Adapters.Diagnostics; using TeamCloud.Adapters.Threading; +using TeamCloud.Configuration; using TeamCloud.Model.Data; namespace TeamCloud.Adapters @@ -45,6 +46,9 @@ public static IServiceCollection AddTeamCloudAdapters(this IServiceCollection se if (configuration is null) throw new ArgumentNullException(nameof(configuration)); + services + .AddTeamCloudOptions(); + services .TryAddSingleton(); @@ -52,14 +56,11 @@ public static IServiceCollection AddTeamCloudAdapters(this IServiceCollection se .TryAddSingleton(); services - .TryAddTransient(provider => AuthorizationSessionOptions.Default); + .TryAddSingleton(); services .TryAddSingleton(); - services - .TryAddTransient(provider => AuthorizationTokenOptions.Default); - services .TryAddSingleton(); diff --git a/src/TeamCloud.Adapters/Authorization/AuthorizationEndpoints.cs b/src/TeamCloud.Adapters/Authorization/AuthorizationEndpoints.cs new file mode 100644 index 00000000..cc9323f4 --- /dev/null +++ b/src/TeamCloud.Adapters/Authorization/AuthorizationEndpoints.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TeamCloud.Adapters.Authorization +{ + public sealed class AuthorizationEndpoints : IAuthorizationEndpoints + { + public string AuthorizationUrl { get; internal set; } + + public string CallbackUrl { get; internal set; } + } +} diff --git a/src/TeamCloud.Adapters/Authorization/AuthorizationEndpointsResolver.cs b/src/TeamCloud.Adapters/Authorization/AuthorizationEndpointsResolver.cs new file mode 100644 index 00000000..cc7fe23c --- /dev/null +++ b/src/TeamCloud.Adapters/Authorization/AuthorizationEndpointsResolver.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Flurl; +using TeamCloud.Model.Data; + +namespace TeamCloud.Adapters.Authorization +{ + public sealed class AuthorizationEndpointsResolver : IAuthorizationEndpointsResolver + { + private readonly IAuthorizationEndpointsResolverOptions options; + + public AuthorizationEndpointsResolver(IAuthorizationEndpointsResolverOptions options) + { + this.options = options ?? throw new ArgumentNullException(nameof(options)); + } + + public Task GetAuthorizationEndpointsAsync(DeploymentScope deploymentScope) + => deploymentScope is null ? throw new ArgumentNullException(nameof(deploymentScope)) : Task.FromResult(new AuthorizationEndpoints() + { + AuthorizationUrl = options.BaseUrl.AppendPathSegments(deploymentScope.ToString(), "authorize").ToString(), + CallbackUrl = options.BaseUrl.AppendPathSegments(deploymentScope.ToString(), "authorize", "callback").ToString() + }); + } +} diff --git a/src/TeamCloud.Adapters/Authorization/AuthorizationEndpointsResolverOptions.cs b/src/TeamCloud.Adapters/Authorization/AuthorizationEndpointsResolverOptions.cs new file mode 100644 index 00000000..86c45d6d --- /dev/null +++ b/src/TeamCloud.Adapters/Authorization/AuthorizationEndpointsResolverOptions.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Text; +using TeamCloud.Configuration; +using TeamCloud.Configuration.Options; + +namespace TeamCloud.Adapters.Authorization +{ + [Options] + public sealed class AuthorizationEndpointsResolverOptions : IAuthorizationEndpointsResolverOptions + { + private readonly EndpointApiOptions endpointApiOptions; + + public AuthorizationEndpointsResolverOptions(EndpointApiOptions endpointApiOptions) + { + this.endpointApiOptions = endpointApiOptions ?? throw new ArgumentNullException(nameof(endpointApiOptions)); + } + + public string BaseUrl => endpointApiOptions.Url; + } +} diff --git a/src/TeamCloud.Adapters/Authorization/AuthorizationSessionClient.cs b/src/TeamCloud.Adapters/Authorization/AuthorizationSessionClient.cs index ca9d469f..dce452b0 100644 --- a/src/TeamCloud.Adapters/Authorization/AuthorizationSessionClient.cs +++ b/src/TeamCloud.Adapters/Authorization/AuthorizationSessionClient.cs @@ -15,14 +15,14 @@ namespace TeamCloud.Adapters.Authorization public sealed class AuthorizationSessionClient : IAuthorizationSessionClient { - public const string TableName = "AuthorizationSession"; + public const string TableName = "Adapters"; private readonly IAuthorizationSessionOptions options; private readonly AsyncLazy tableInstance; public AuthorizationSessionClient(IAuthorizationSessionOptions options) { - this.options = options ?? AuthorizationSessionOptions.Default; + this.options = options ?? throw new ArgumentNullException(nameof(options)); tableInstance = new AsyncLazy(async () => { @@ -57,11 +57,15 @@ public async Task GetAsync(Deploym var session = response.Result as TAuthorizationSession; if (session?.Active ?? false) + { return session; - - await table - .ExecuteAsync(TableOperation.Delete(session)) - .ConfigureAwait(false); + } + else if (session != null) + { + await table + .ExecuteAsync(TableOperation.Delete(session)) + .ConfigureAwait(false); + } return null; } diff --git a/src/TeamCloud.Adapters/Authorization/AuthorizationSessionOptions.cs b/src/TeamCloud.Adapters/Authorization/AuthorizationSessionOptions.cs index 7e21a328..5795c55f 100644 --- a/src/TeamCloud.Adapters/Authorization/AuthorizationSessionOptions.cs +++ b/src/TeamCloud.Adapters/Authorization/AuthorizationSessionOptions.cs @@ -4,18 +4,22 @@ */ using System; +using TeamCloud.Configuration; +using TeamCloud.Configuration.Options; namespace TeamCloud.Adapters.Authorization { + [Options] public sealed class AuthorizationSessionOptions : IAuthorizationSessionOptions { - public static IAuthorizationSessionOptions Default - => new AuthorizationSessionOptions(); + private readonly AzureStorageOptions azureStorageOptions; - private AuthorizationSessionOptions() - { } + public AuthorizationSessionOptions(AzureStorageOptions azureStorageOptions) + { + this.azureStorageOptions = azureStorageOptions ?? throw new ArgumentNullException(nameof(azureStorageOptions)); + } public string ConnectionString - => Environment.GetEnvironmentVariable("AzureWebJobsStorage"); + => azureStorageOptions.ConnectionString ?? Environment.GetEnvironmentVariable("AzureWebJobsStorage"); } } diff --git a/src/TeamCloud.Adapters/Authorization/AuthorizationTokenClient.cs b/src/TeamCloud.Adapters/Authorization/AuthorizationTokenClient.cs index 6aed236a..e3a071bb 100644 --- a/src/TeamCloud.Adapters/Authorization/AuthorizationTokenClient.cs +++ b/src/TeamCloud.Adapters/Authorization/AuthorizationTokenClient.cs @@ -14,7 +14,7 @@ namespace TeamCloud.Adapters.Authorization { public sealed class AuthorizationTokenClient : IAuthorizationTokenClient { - public const string TableName = "AuthorizationToken"; + public const string TableName = "Adapters"; private readonly IAuthorizationTokenOptions options; @@ -22,7 +22,7 @@ public sealed class AuthorizationTokenClient : IAuthorizationTokenClient public AuthorizationTokenClient(IAuthorizationTokenOptions options) { - this.options = options ?? AuthorizationTokenOptions.Default; + this.options = options ?? throw new ArgumentNullException(nameof(options)); tableInstance = new AsyncLazy(async () => { diff --git a/src/TeamCloud.Adapters/Authorization/AuthorizationTokenOptions.cs b/src/TeamCloud.Adapters/Authorization/AuthorizationTokenOptions.cs index 5f291597..48389be3 100644 --- a/src/TeamCloud.Adapters/Authorization/AuthorizationTokenOptions.cs +++ b/src/TeamCloud.Adapters/Authorization/AuthorizationTokenOptions.cs @@ -4,18 +4,22 @@ */ using System; +using TeamCloud.Configuration; +using TeamCloud.Configuration.Options; namespace TeamCloud.Adapters.Authorization { + [Options] public sealed class AuthorizationTokenOptions : IAuthorizationTokenOptions { - public static IAuthorizationTokenOptions Default - => new AuthorizationTokenOptions(); + private readonly AzureStorageOptions azureStorageOptions; - private AuthorizationTokenOptions() - { } + public AuthorizationTokenOptions(AzureStorageOptions azureStorageOptions) + { + this.azureStorageOptions = azureStorageOptions ?? throw new ArgumentNullException(nameof(azureStorageOptions)); + } public string ConnectionString - => Environment.GetEnvironmentVariable("AzureWebJobsStorage"); + => azureStorageOptions.ConnectionString ?? Environment.GetEnvironmentVariable("AzureWebJobsStorage"); } } diff --git a/src/TeamCloud.Adapters/Authorization/IAuthorizationEndpointsResolver.cs b/src/TeamCloud.Adapters/Authorization/IAuthorizationEndpointsResolver.cs new file mode 100644 index 00000000..3c1c6d54 --- /dev/null +++ b/src/TeamCloud.Adapters/Authorization/IAuthorizationEndpointsResolver.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using TeamCloud.Model.Data; + +namespace TeamCloud.Adapters.Authorization +{ + public interface IAuthorizationEndpointsResolver + { + Task GetAuthorizationEndpointsAsync(DeploymentScope deploymentScope); + } +} diff --git a/src/TeamCloud.Adapters/Authorization/IAuthorizationEndpointsResolverOptions.cs b/src/TeamCloud.Adapters/Authorization/IAuthorizationEndpointsResolverOptions.cs new file mode 100644 index 00000000..92867af8 --- /dev/null +++ b/src/TeamCloud.Adapters/Authorization/IAuthorizationEndpointsResolverOptions.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TeamCloud.Adapters.Authorization +{ + public interface IAuthorizationEndpointsResolverOptions + { + public string BaseUrl { get; } + } +} diff --git a/src/TeamCloud.Adapters/IAdapterAuthorize.cs b/src/TeamCloud.Adapters/IAdapterAuthorize.cs index 407f55ca..1259f1da 100644 --- a/src/TeamCloud.Adapters/IAdapterAuthorize.cs +++ b/src/TeamCloud.Adapters/IAdapterAuthorize.cs @@ -4,20 +4,23 @@ */ using System.Net.Http; +using System.Security.Claims; using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using TeamCloud.Adapters.Authorization; +using TeamCloud.Azure.Directory; using TeamCloud.Model.Data; namespace TeamCloud.Adapters { public interface IAdapterAuthorize : IAdapter { - Task CreateSessionAsync(DeploymentScope deploymentScope); + Task ResolvePrincipalAsync(DeploymentScope deploymentScope, HttpRequest request); - Task HandleAuthorizeAsync(DeploymentScope deploymentScope, HttpRequestMessage requestMessage, IAuthorizationEndpoints authorizationEndpoints); + Task HandleAuthorizeAsync(DeploymentScope deploymentScope, HttpRequest request, IAuthorizationEndpoints authorizationEndpoints); - Task HandleCallbackAsync(DeploymentScope deploymentScope, HttpRequestMessage requestMessage, IAuthorizationEndpoints authorizationEndpoints); + Task HandleCallbackAsync(DeploymentScope deploymentScope, HttpRequest request, IAuthorizationEndpoints authorizationEndpoints); } } diff --git a/src/TeamCloud.Adapters/IAdapterIdentity.cs b/src/TeamCloud.Adapters/IAdapterIdentity.cs index 290a1d4a..1bfb4570 100644 --- a/src/TeamCloud.Adapters/IAdapterIdentity.cs +++ b/src/TeamCloud.Adapters/IAdapterIdentity.cs @@ -1,15 +1,16 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - */ - -using System; +using System; using System.Collections.Generic; using System.Text; +using System.Threading.Tasks; +using TeamCloud.Azure.Directory; +using TeamCloud.Model.Data; namespace TeamCloud.Adapters { public interface IAdapterIdentity : IAdapter { + Task GetServiceIdentityAsync(DeploymentScope deploymentScope, bool withPassword = false); + + Task GetServiceIdentityAsync(Component component, bool withPassword = false); } } diff --git a/src/TeamCloud.Adapters/TeamCloud.Adapters.csproj b/src/TeamCloud.Adapters/TeamCloud.Adapters.csproj index 758c5c47..c900b2bb 100644 --- a/src/TeamCloud.Adapters/TeamCloud.Adapters.csproj +++ b/src/TeamCloud.Adapters/TeamCloud.Adapters.csproj @@ -24,6 +24,8 @@ + + diff --git a/src/TeamCloud.Azure.Directory/AzureDirectoryService.cs b/src/TeamCloud.Azure.Directory/AzureDirectoryService.cs index 4f761434..dd6e81bd 100644 --- a/src/TeamCloud.Azure.Directory/AzureDirectoryService.cs +++ b/src/TeamCloud.Azure.Directory/AzureDirectoryService.cs @@ -312,14 +312,12 @@ private static async Task GetGroupInnerAsync(GraphRbacManagementCl private static async Task GetServicePrincipalInnerAsync(GraphRbacManagementClient client, string identifier) { var query = new ODataQuery(); - - var httpIdentifier = $"http://{identifier}"; - var httpsIdentifier = $"https://{identifier}"; + var fqIdentifier = $"api://{identifier}"; if (identifier.IsGuid()) query.SetFilter(sp => sp.ObjectId == identifier || sp.AppId == identifier || sp.ServicePrincipalNames.Contains(identifier)); - else if (!identifier.StartsWithHttp()) - query.SetFilter(sp => sp.ServicePrincipalNames.Contains(identifier) || sp.ServicePrincipalNames.Contains(httpIdentifier) || sp.ServicePrincipalNames.Contains(httpsIdentifier)); + else if (!identifier.StartsWith("api://")) + query.SetFilter(sp => sp.ServicePrincipalNames.Contains(identifier) || sp.ServicePrincipalNames.Contains(fqIdentifier)); else query.SetFilter(sp => sp.ServicePrincipalNames.Contains(identifier)); @@ -416,18 +414,20 @@ public async Task CreateServicePrincipalAsync(string name if (name is null) throw new ArgumentNullException(nameof(name)); - name = SanitizeServicePrincipalName(name); + try + { + name = SanitizeServicePrincipalName(name); - using var client = await azureSessionService - .CreateClientAsync(AzureEndpoint.GraphEndpoint) - .ConfigureAwait(false); + using var client = await azureSessionService + .CreateClientAsync(AzureEndpoint.GraphEndpoint) + .ConfigureAwait(false); - var parameters = new ApplicationCreateParameters() - { - DisplayName = name, - AvailableToOtherTenants = false, - IdentifierUris = new List { $"http://{name}" }, - RequiredResourceAccess = new List { + var parameters = new ApplicationCreateParameters() + { + DisplayName = name, + AvailableToOtherTenants = false, + IdentifierUris = new List { $"api://{name}" }, + RequiredResourceAccess = new List { new RequiredResourceAccess { ResourceAppId = "00000003-0000-0000-c000-000000000000", ResourceAccess = new List { @@ -438,22 +438,22 @@ public async Task CreateServicePrincipalAsync(string name } } } - }; + }; - var application = await client.Applications - .CreateAsync(parameters) - .ConfigureAwait(false); + var application = await client.Applications + .CreateAsync(parameters) + .ConfigureAwait(false); - var principal = await client.ServicePrincipals - .CreateAsync(new ServicePrincipalCreateParameters { AppId = application.AppId }) - .ConfigureAwait(false); + var principal = await client.ServicePrincipals + .CreateAsync(new ServicePrincipalCreateParameters { AppId = application.AppId }) + .ConfigureAwait(false); - var expiresOn = DateTime.UtcNow.AddYears(1); + var expiresOn = DateTime.UtcNow.AddYears(1); - password ??= CreateServicePrincipalPassword(); + password ??= CreateServicePrincipalPassword(); - await client.Applications - .UpdatePasswordCredentialsAsync(application.ObjectId, new List { + await client.Applications + .UpdatePasswordCredentialsAsync(application.ObjectId, new List { new PasswordCredential { StartDate = DateTime.UtcNow, EndDate = expiresOn, @@ -461,19 +461,24 @@ await client.Applications Value = password, CustomKeyIdentifier = Encoding.UTF8.GetBytes(SECRET_DESCRIPTION) } - }).ConfigureAwait(false); + }).ConfigureAwait(false); - var azureServicePrincipal = new AzureServicePrincipal() + var azureServicePrincipal = new AzureServicePrincipal() + { + ObjectId = Guid.Parse(principal.ObjectId), + ApplicationId = Guid.Parse(principal.AppId), + TenantId = Guid.Parse(principal.AppOwnerTenantId), + Name = principal.ServicePrincipalNames.FirstOrDefault(), + Password = password, + ExpiresOn = expiresOn + }; + + return azureServicePrincipal; + } + catch { - ObjectId = Guid.Parse(principal.ObjectId), - ApplicationId = Guid.Parse(principal.AppId), - TenantId = Guid.Parse(principal.AppOwnerTenantId), - Name = principal.ServicePrincipalNames.FirstOrDefault(), - Password = password, - ExpiresOn = expiresOn - }; - - return azureServicePrincipal; + throw; + } } public async Task RefreshServicePrincipalAsync(string identifier, string password = null) diff --git a/src/TeamCloud.Azure.Directory/AzureServicePrincipal.cs b/src/TeamCloud.Azure.Directory/AzureServicePrincipal.cs index aa7d332d..93bbb70d 100644 --- a/src/TeamCloud.Azure.Directory/AzureServicePrincipal.cs +++ b/src/TeamCloud.Azure.Directory/AzureServicePrincipal.cs @@ -4,6 +4,8 @@ */ using System; +using System.Collections.Generic; +using System.Security.Claims; namespace TeamCloud.Azure.Directory { @@ -15,5 +17,20 @@ public sealed class AzureServicePrincipal public string Name { get; internal set; } public string Password { get; internal set; } public DateTime? ExpiresOn { get; internal set; } + + public ClaimsIdentity ToClaimsIdentity(string authenticationType = null) + { + const string ObjectIdClaimType = "http://schemas.microsoft.com/identity/claims/objectidentifier"; + const string TenantIdClaimType = "http://schemas.microsoft.com/identity/claims/tenantid"; + + var claims = new List() + { + new Claim(ObjectIdClaimType, ObjectId.ToString()), + new Claim(TenantIdClaimType, TenantId.ToString()), + new Claim(ClaimTypes.Name, Name) + }; + + return new ClaimsIdentity(claims, authenticationType); + } } } diff --git a/src/TeamCloud.Configuration.Options/AdapterSessionStorageOptions.cs b/src/TeamCloud.Configuration.Options/AdapterSessionStorageOptions.cs deleted file mode 100644 index 50c332ca..00000000 --- a/src/TeamCloud.Configuration.Options/AdapterSessionStorageOptions.cs +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - */ - -using System; - -namespace TeamCloud.Configuration.Options -{ - [Options("Adapter:Session:Storage")] - public sealed class AdapterSessionStorageOptions - { - public string ConnectionString { get; set; } = Environment.GetEnvironmentVariable("AzureWebJobsStorage"); - } -} diff --git a/src/TeamCloud.Configuration.Options/AdapterTokenStorageOptions.cs b/src/TeamCloud.Configuration.Options/AdapterTokenStorageOptions.cs deleted file mode 100644 index 2afc3c15..00000000 --- a/src/TeamCloud.Configuration.Options/AdapterTokenStorageOptions.cs +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - */ - -using System; - -namespace TeamCloud.Configuration.Options -{ - [Options("Adapter:Token:Storage")] - public sealed class AdapterTokenStorageOptions - { - public string ConnectionString { get; set; } = Environment.GetEnvironmentVariable("AzureWebJobsStorage"); - } -} diff --git a/src/TeamCloud.Configuration.Options/AzureStorageOptions.cs b/src/TeamCloud.Configuration.Options/AzureStorageOptions.cs new file mode 100644 index 00000000..01fe66cf --- /dev/null +++ b/src/TeamCloud.Configuration.Options/AzureStorageOptions.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TeamCloud.Configuration.Options +{ + [Options("Azure:Storage")] + public sealed class AzureStorageOptions + { + public string ConnectionString { get; set; } = Environment.GetEnvironmentVariable("AzureWebJobsStorage"); + } +} diff --git a/src/TeamCloud.Configuration/Extensions.cs b/src/TeamCloud.Configuration/Extensions.cs index 2f0033ba..77a39b87 100644 --- a/src/TeamCloud.Configuration/Extensions.cs +++ b/src/TeamCloud.Configuration/Extensions.cs @@ -92,16 +92,11 @@ public static IConfigurationBuilder AddConfigurationService(this IConfigurationB } } - public static IServiceCollection AddTeamCloudOptions(this IServiceCollection services, Assembly assembly, params Assembly[] additionalAssemblies) + public static IServiceCollection AddTeamCloudOptions(this IServiceCollection services, params Assembly[] additionalAssemblies) { - if (assembly is null) - { - throw new ArgumentNullException(nameof(assembly)); - } - var assemblies = new HashSet(additionalAssemblies) { - assembly + Assembly.GetCallingAssembly() }; var optionsMap = assemblies diff --git a/src/TeamCloud.Data.Expanders/DeploymentScopeExpander.cs b/src/TeamCloud.Data.Expanders/DeploymentScopeExpander.cs index b8b84891..698c28ab 100644 --- a/src/TeamCloud.Data.Expanders/DeploymentScopeExpander.cs +++ b/src/TeamCloud.Data.Expanders/DeploymentScopeExpander.cs @@ -7,9 +7,11 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Flurl; using Microsoft.ApplicationInsights; using Newtonsoft.Json.Linq; using TeamCloud.Adapters; +using TeamCloud.Adapters.Authorization; using TeamCloud.Model.Data; namespace TeamCloud.Data.Expanders @@ -18,10 +20,12 @@ public sealed class DeploymentScopeExpander : DocumentExpander, IDocumentExpander { private readonly IAdapterProvider adapterProvider; + private readonly IAuthorizationEndpointsResolver authorizationEndpointsResolver; - public DeploymentScopeExpander(IAdapterProvider adapterProvider, TelemetryClient telemetryClient) : base(false, telemetryClient) + public DeploymentScopeExpander(IAdapterProvider adapterProvider, IAuthorizationEndpointsResolver authorizationEndpointsResolver, TelemetryClient telemetryClient) : base(false, telemetryClient) { this.adapterProvider = adapterProvider ?? throw new ArgumentNullException(nameof(adapterProvider)); + this.authorizationEndpointsResolver = authorizationEndpointsResolver ?? throw new ArgumentNullException(nameof(authorizationEndpointsResolver)); } public async Task ExpandAsync(DeploymentScope document) @@ -42,14 +46,20 @@ public async Task ExpandAsync(DeploymentScope document) if (adapter is IAdapterAuthorize adapterAuthorize) { document.Authorizable = true; + document.Authorized = await adapterAuthorize .IsAuthorizedAsync(document) .ConfigureAwait(false); + + document.AuthorizeUrl = (await authorizationEndpointsResolver + .GetAuthorizationEndpointsAsync(document) + .ConfigureAwait(false))?.AuthorizationUrl; } else { document.Authorizable = false; document.Authorized = !(adapter is null); + document.AuthorizeUrl = null; } if (document.Type == DeploymentScopeType.AzureResourceManager && !string.IsNullOrWhiteSpace(document.InputData)) diff --git a/src/TeamCloud.Data.Expanders/TeamCloud.Data.Expanders.csproj b/src/TeamCloud.Data.Expanders/TeamCloud.Data.Expanders.csproj index 78287605..cb8238a5 100644 --- a/src/TeamCloud.Data.Expanders/TeamCloud.Data.Expanders.csproj +++ b/src/TeamCloud.Data.Expanders/TeamCloud.Data.Expanders.csproj @@ -12,6 +12,8 @@ + + diff --git a/src/TeamCloud.Git/Caching/RepositoryCache.cs b/src/TeamCloud.Git/Caching/RepositoryCache.cs index 1ddb3aa4..a1626104 100644 --- a/src/TeamCloud.Git/Caching/RepositoryCache.cs +++ b/src/TeamCloud.Git/Caching/RepositoryCache.cs @@ -40,7 +40,10 @@ private static string CreateKey(string endpoint) throw new ArgumentNullException(nameof(endpoint)); // so let's get hacky and do some custom stuff - var key = endpoint.Replace("/", "[s]", StringComparison.Ordinal).Replace("?", "[q]", StringComparison.Ordinal).Replace("#", "[h]", StringComparison.Ordinal); + var key = endpoint + .Replace("/", "[s]", StringComparison.Ordinal) + .Replace("?", "[q]", StringComparison.Ordinal) + .Replace("#", "[h]", StringComparison.Ordinal); return key; } diff --git a/src/TeamCloud.Http/Extensions.cs b/src/TeamCloud.Http/Extensions.cs index ec405d82..dad7f4ac 100644 --- a/src/TeamCloud.Http/Extensions.cs +++ b/src/TeamCloud.Http/Extensions.cs @@ -12,6 +12,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Reflection; +using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; @@ -20,8 +21,11 @@ using Flurl.Http.Configuration; using Microsoft.ApplicationInsights.Extensibility; using Microsoft.ApplicationInsights.Extensibility.Implementation; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Internal; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Primitives; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using TeamCloud.Http.Telemetry; @@ -31,6 +35,62 @@ namespace TeamCloud.Http public static class Extensions { + public static async Task ReadStringAsync(this HttpRequest request, bool leaveOpen = false) + { + if (request is null) + throw new ArgumentNullException(nameof(request)); + + if (leaveOpen) + request.EnableBuffering(); + + try + { + using var reader = new StreamReader( + request.Body, + Encoding.UTF8, + detectEncodingFromByteOrderMarks: true, + bufferSize: 4096, + leaveOpen: leaveOpen); + + return await reader + .ReadToEndAsync() + .ConfigureAwait(false); + } + finally + { + if (leaveOpen) + request.Body.Position = 0; + } + } + + public static async Task ReadJsonAsync(this HttpRequest request, bool leaveOpen = false) + { + if (request is null) + throw new ArgumentNullException(nameof(request)); + + if (leaveOpen) + request.EnableBuffering(); + + try + { + using var reader = new StreamReader( + request.Body, + Encoding.UTF8, + detectEncodingFromByteOrderMarks: true, + bufferSize: 4096, + leaveOpen: leaveOpen); + + return await JToken + .ReadFromAsync(new JsonTextReader(reader)) + .ConfigureAwait(false); + } + finally + { + if (leaveOpen) + request.Body.Position = 0; + } + } + public static IServiceCollection AddTeamCloudHttp(this IServiceCollection services, Action configure = null) { services.AddSingleton(new TeamCloudTelemetryInitializer(Assembly.GetCallingAssembly())); @@ -80,10 +140,23 @@ static IHttpClientFactory CreateHttpClientFactory(IServiceProvider serviceProvid public static string GetValueOrDefault(this QueryParamCollection queryParameters, string name, StringComparison comparisonType = StringComparison.Ordinal) => queryParameters.FirstOrDefault(qp => qp.Name.Equals(name, comparisonType))?.Value as string; + public static StringValues GetValueOrDefault(this IQueryCollection queryCollection, string key) + => queryCollection.TryGetValue(key, out var value) ? value : StringValues.Empty; + + public static Url ClearQueryParams(this string url) + => new Url(url).ClearQueryParams(); + + public static Url ClearQueryParams(this Url url) + { + url.QueryParams.Clear(); + return url; + } + [SuppressMessage("Design", "CA1068:CancellationToken parameters must come last", Justification = "Following the method syntax of Flurl")] public static Task GetJObjectAsync(this IFlurlRequest request, CancellationToken cancellationToken = default, HttpCompletionOption completionOption = HttpCompletionOption.ResponseContentRead) => request.GetJsonAsync(cancellationToken, completionOption); + [SuppressMessage("Design", "CA1068:CancellationToken parameters must come last", Justification = "Following the method syntax of Flurl")] public static Task GetJObjectAsync(this Url url, CancellationToken cancellationToken = default, HttpCompletionOption completionOption = HttpCompletionOption.ResponseContentRead) => url.GetJsonAsync(cancellationToken, completionOption); diff --git a/src/TeamCloud.Http/TeamCloud.Http.csproj b/src/TeamCloud.Http/TeamCloud.Http.csproj index 04eb58e0..0e65fda3 100644 --- a/src/TeamCloud.Http/TeamCloud.Http.csproj +++ b/src/TeamCloud.Http/TeamCloud.Http.csproj @@ -11,6 +11,8 @@ + + diff --git a/src/TeamCloud.Model/Commands/DeploymentScopeAuthorizeCommand.cs b/src/TeamCloud.Model/Commands/DeploymentScopeAuthorizeCommand.cs deleted file mode 100644 index 4364b9ac..00000000 --- a/src/TeamCloud.Model/Commands/DeploymentScopeAuthorizeCommand.cs +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - */ - -using System; -using TeamCloud.Model.Commands.Core; -using TeamCloud.Model.Data; - -namespace TeamCloud.Model.Commands -{ - public sealed class DeploymentScopeAuthorizeCommand : CustomCommand - { - public DeploymentScopeAuthorizeCommand(User user, DeploymentScope payload, Guid? commandId = null) : base(user, payload, commandId) - { } - } -} diff --git a/src/TeamCloud.Model/Commands/DeploymentScopeAuthorizeCommandResult.cs b/src/TeamCloud.Model/Commands/DeploymentScopeAuthorizeCommandResult.cs deleted file mode 100644 index 16d5b7cf..00000000 --- a/src/TeamCloud.Model/Commands/DeploymentScopeAuthorizeCommandResult.cs +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - */ - -using System; -using System.Collections.Generic; -using System.Text; -using TeamCloud.Model.Commands.Core; -using TeamCloud.Model.Data; - -namespace TeamCloud.Model.Commands -{ - public sealed class DeploymentScopeAuthorizeCommandResult : CommandResult - { - } -} diff --git a/src/TeamCloud.Model/Data/Component.cs b/src/TeamCloud.Model/Data/Component.cs index ccc14010..c2a27793 100644 --- a/src/TeamCloud.Model/Data/Component.cs +++ b/src/TeamCloud.Model/Data/Component.cs @@ -13,6 +13,7 @@ namespace TeamCloud.Model.Data { [SoftDelete(60 * 60 * 24)] // 24 hours [JsonObject(NamingStrategyType = typeof(TeamCloudNamingStrategy))] + [ContainerPath("/orgs/{Organization}/projects/{ProjectId}/components/{Id}")] public sealed class Component : ContainerDocument, ISoftDelete, IProjectContext, IDeploymentScopeContext, IEquatable, IValidatable, ISlug, IResourceReference { /// diff --git a/src/TeamCloud.Model/Data/ComponentTask.cs b/src/TeamCloud.Model/Data/ComponentTask.cs index 9e672dc6..4d14ddcb 100644 --- a/src/TeamCloud.Model/Data/ComponentTask.cs +++ b/src/TeamCloud.Model/Data/ComponentTask.cs @@ -12,6 +12,7 @@ namespace TeamCloud.Model.Data { [JsonObject(NamingStrategyType = typeof(TeamCloudNamingStrategy))] + [ContainerPath("/orgs/{Organization}/projects/{ProjectId}/components/{ComponentId}/tasks/{Id}")] public sealed class ComponentTask : ContainerDocument, IEquatable, IValidatable, IResourceReference, IComponentContext { private string typeName; diff --git a/src/TeamCloud.Model/Data/Core/ContainerDocument.cs b/src/TeamCloud.Model/Data/Core/ContainerDocument.cs index 64393387..90b1674b 100644 --- a/src/TeamCloud.Model/Data/Core/ContainerDocument.cs +++ b/src/TeamCloud.Model/Data/Core/ContainerDocument.cs @@ -4,6 +4,8 @@ */ using System; +using System.Globalization; +using System.Linq; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using TeamCloud.Model.Common; @@ -50,21 +52,13 @@ public virtual object Clone(bool reset) return clone; } - public override string ToString() => this switch + public override string ToString() { - IProjectContext projectContext - => $"/orgs/{projectContext.Organization}/projects/{projectContext.ProjectId}/{this.GetType().Name.ToLowerInvariant()}s/{this.Id}", + var attribute = GetType() + .GetCustomAttributes(typeof(ContainerPathAttribute), false) + .FirstOrDefault() as ContainerPathAttribute; - IOrganizationContext organizationContext - => $"/orgs/{organizationContext.Organization}/{this.GetType().Name.ToLowerInvariant()}s/{this.Id}", - - Organization organization - => $"/orgs/{organization.Id}", - - IIdentifiable identifiable - => $"{GetType().Name}[{identifiable.Id}]", - - _ => base.ToString() - }; + return attribute?.ResolvePath(this) ?? $"{GetType().Name}@{Id}"; + } } } diff --git a/src/TeamCloud.Model/Data/Core/ContainerPathAttribute.cs b/src/TeamCloud.Model/Data/Core/ContainerPathAttribute.cs new file mode 100644 index 00000000..d852fa16 --- /dev/null +++ b/src/TeamCloud.Model/Data/Core/ContainerPathAttribute.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Text.RegularExpressions; + +namespace TeamCloud.Model.Data.Core +{ + [AttributeUsage(AttributeTargets.Class)] + internal class ContainerPathAttribute : Attribute + { + private static readonly ConcurrentDictionary PropertyCache = new ConcurrentDictionary(); + private static readonly ConcurrentDictionary FieldCache = new ConcurrentDictionary(); + + private static readonly Regex TokenExpression = new Regex("[^{}]+(?=})"); + private static readonly Regex SanitizeGuidExpression = new Regex(@"\{[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}\}"); + + public ContainerPathAttribute(string pathTemplate) + { + if (string.IsNullOrWhiteSpace(pathTemplate)) + throw new ArgumentException($"'{nameof(pathTemplate)}' cannot be null or whitespace.", nameof(pathTemplate)); + + PathTemplate = pathTemplate; + } + + public string PathTemplate { get; } + + public string ResolvePath(IContainerDocument containerDocument) + { + if (containerDocument is null) + throw new ArgumentNullException(nameof(containerDocument)); + + var path = TokenExpression.Replace(PathTemplate, match => + { + var key = $"{match.Value}@{containerDocument.GetType()}"; + + var property = PropertyCache.GetOrAdd(key, _ => + { + var propertyFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty; + + var property = containerDocument.GetType() + .GetProperty(match.Value, propertyFlags); + + return property ?? containerDocument.GetType() + .GetProperties(propertyFlags) + .FirstOrDefault(p => p.Name.Equals(match.Value, StringComparison.OrdinalIgnoreCase)); + }); + + if (property != null) + { + return $"{property.GetValue(containerDocument)}"; + } + + var field = FieldCache.GetOrAdd(key, _ => + { + var fieldFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField; + + var field = containerDocument.GetType() + .GetField(match.Value, fieldFlags); + + return field ?? containerDocument.GetType() + .GetFields(fieldFlags) + .FirstOrDefault(f => f.Name.Equals(match.Value, StringComparison.OrdinalIgnoreCase)); + }); + + if (field != null) + { + return $"{field.GetValue(containerDocument)}"; + } + + return default; + }); + + return SanitizeGuidExpression.Replace(path, match => Guid.Parse(match.Value).ToString()); + } + } +} diff --git a/src/TeamCloud.Model/Data/DeploymentScope.cs b/src/TeamCloud.Model/Data/DeploymentScope.cs index e604ce5d..95cd7ed1 100644 --- a/src/TeamCloud.Model/Data/DeploymentScope.cs +++ b/src/TeamCloud.Model/Data/DeploymentScope.cs @@ -13,6 +13,7 @@ namespace TeamCloud.Model.Data { [JsonObject(NamingStrategyType = typeof(TeamCloudNamingStrategy))] + [ContainerPath("/orgs/{Organization}/scopes/{Id}")] public sealed class DeploymentScope : ContainerDocument, IOrganizationContext, ISlug, IEquatable, IValidatable { [PartitionKey] diff --git a/src/TeamCloud.Model/Data/Organization.cs b/src/TeamCloud.Model/Data/Organization.cs index 2d82c369..9c0fd2ff 100644 --- a/src/TeamCloud.Model/Data/Organization.cs +++ b/src/TeamCloud.Model/Data/Organization.cs @@ -13,6 +13,7 @@ namespace TeamCloud.Model.Data { [JsonObject(NamingStrategyType = typeof(TeamCloudNamingStrategy))] + [ContainerPath("/orgs/{Id}")] public sealed class Organization : ContainerDocument, ISlug, IEquatable, ITags, IResourceReference { [PartitionKey] @@ -44,6 +45,8 @@ public string Slug public ResourceState ResourceState { get; set; } = ResourceState.Pending; + public string SecretsVaultId { get; set; } + public string GalleryId { get; set; } public string RegistryId { get; set; } diff --git a/src/TeamCloud.Model/Data/OrganizationUserRole.cs b/src/TeamCloud.Model/Data/OrganizationUserRole.cs index 075a1c46..e4120c62 100644 --- a/src/TeamCloud.Model/Data/OrganizationUserRole.cs +++ b/src/TeamCloud.Model/Data/OrganizationUserRole.cs @@ -14,6 +14,7 @@ public enum OrganizationUserRole None, Member, Admin, - Owner + Owner, + Adapter } } diff --git a/src/TeamCloud.Model/Data/Project.cs b/src/TeamCloud.Model/Data/Project.cs index a99f3361..13a39a92 100644 --- a/src/TeamCloud.Model/Data/Project.cs +++ b/src/TeamCloud.Model/Data/Project.cs @@ -14,6 +14,7 @@ namespace TeamCloud.Model.Data { [SoftDelete(60 * 60 * 24)] // 24 hours [JsonObject(NamingStrategyType = typeof(TeamCloudNamingStrategy))] + [ContainerPath("/orgs/{Organization}/projects/{Id}")] public sealed class Project : ContainerDocument, ISoftDelete, IOrganizationContext, ISlug, IEquatable, IResourceReference { [PartitionKey] diff --git a/src/TeamCloud.Model/Data/Schedule.cs b/src/TeamCloud.Model/Data/Schedule.cs index fe9d48e6..933ffe8c 100644 --- a/src/TeamCloud.Model/Data/Schedule.cs +++ b/src/TeamCloud.Model/Data/Schedule.cs @@ -14,6 +14,8 @@ namespace TeamCloud.Model.Data { [JsonObject(NamingStrategyType = typeof(TeamCloudNamingStrategy))] + [ContainerPath("/orgs/{Organization}/projects/{ProjectId}/schedules/{Id}")] + public sealed class Schedule : ContainerDocument, IProjectContext, IEquatable, IValidatable { [JsonProperty(Required = Required.Always)] diff --git a/src/TeamCloud.Model/Data/User.cs b/src/TeamCloud.Model/Data/User.cs index 9d9ce9ae..eb629567 100644 --- a/src/TeamCloud.Model/Data/User.cs +++ b/src/TeamCloud.Model/Data/User.cs @@ -15,6 +15,8 @@ namespace TeamCloud.Model.Data { [JsonObject(NamingStrategyType = typeof(TeamCloudNamingStrategy))] + [ContainerPath("/orgs/{Organization}/users/{Id}")] + public sealed class User : ContainerDocument, IOrganizationContext, IEquatable, IProperties, INotificationRecipient { [PartitionKey] diff --git a/src/TeamCloud.Orchestrator/API/AuthorizationTrigger.cs b/src/TeamCloud.Orchestrator/API/AuthorizationTrigger.cs deleted file mode 100644 index ab7edab1..00000000 --- a/src/TeamCloud.Orchestrator/API/AuthorizationTrigger.cs +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - */ - -using System; -using System.Linq; -using System.Net.Http; -using System.Threading.Tasks; -using System.Web; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Azure.WebJobs; -using Microsoft.Azure.WebJobs.Extensions.Http; -using Microsoft.Extensions.Logging; -using TeamCloud.Adapters; -using TeamCloud.Adapters.Authorization; -using TeamCloud.Data; -using TeamCloud.Model.Data; -using TeamCloud.Orchestration; - -namespace TeamCloud.Orchestrator.API -{ - public sealed class AuthorizationTrigger - { - internal static string ResolveTokenValue(string token, DeploymentScope deploymentScope) - { - if (deploymentScope is null) - return default(string); - - var property = deploymentScope.GetType() - .GetProperties() - .SingleOrDefault(p => p.CanRead && p.Name.Equals(token, StringComparison.OrdinalIgnoreCase)); - - var propertyValue = property? - .GetValue(deploymentScope)? - .ToString(); - - return propertyValue is null - ? null - : HttpUtility.UrlEncode(propertyValue); - } - - private readonly IDeploymentScopeRepository deploymentScopeRepository; - private readonly IFunctionsHost functionsHost; - private readonly IAdapterProvider adapterProvider; - - public AuthorizationTrigger(IDeploymentScopeRepository deploymentScopeRepository, IFunctionsHost functionsHost, IAdapterProvider adapterProvider) - { - this.deploymentScopeRepository = deploymentScopeRepository ?? throw new ArgumentNullException(nameof(deploymentScopeRepository)); - this.functionsHost = functionsHost ?? FunctionsHost.Default; - this.adapterProvider = adapterProvider ?? throw new ArgumentNullException(nameof(adapterProvider)); - } - - private async Task ExecuteAsync(string organization, string deploymentScopeId, Func> callback) - { - if (string.IsNullOrWhiteSpace(organization) || string.IsNullOrWhiteSpace(deploymentScopeId)) - return new NotFoundResult(); - - if (callback is null) - throw new ArgumentNullException(nameof(callback)); - - var deploymentScope = await deploymentScopeRepository - .GetAsync(organization, deploymentScopeId) - .ConfigureAwait(false); - - if (deploymentScope != null && adapterProvider.GetAdapter(deploymentScope.Type) is IAdapterAuthorize adapterAuthorize) - { - var authorizationEndpoints = new AuthorizationEndpoints() - { - AuthorizationUrl = await FunctionsEnvironment - .GetFunctionUrlAsync(nameof(Authorize), functionsHost, replaceToken: (token) => ResolveTokenValue(token, deploymentScope)) - .ConfigureAwait(false), - - CallbackUrl = await FunctionsEnvironment - .GetFunctionUrlAsync(nameof(Callback), functionsHost, replaceToken: (token) => ResolveTokenValue(token, deploymentScope)) - .ConfigureAwait(false) - }; - - return await callback(adapterAuthorize, deploymentScope, authorizationEndpoints) - .ConfigureAwait(false); - } - - return new NotFoundResult(); - } - - [FunctionName(nameof(Authorize))] - public Task Authorize( - [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "authorize/{organization}/{id}")] HttpRequestMessage requestMessage, - string organization, - string id) => ExecuteAsync(organization, id, (authorizationAdapter, deploymentScope, authorizationEndpoints) => - { - return authorizationAdapter.HandleAuthorizeAsync(deploymentScope, requestMessage, authorizationEndpoints); - }); - - [FunctionName(nameof(Callback))] - public Task Callback( - [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "authorize/{organization}/{id}/callback")] HttpRequestMessage requestMessage, - string organization, - string id) => ExecuteAsync(organization, id, (authorizationAdapter, deploymentScope, authorizationEndpoints) => - { - return authorizationAdapter.HandleCallbackAsync(deploymentScope, requestMessage, authorizationEndpoints); - }); - - private class AuthorizationEndpoints : IAuthorizationEndpoints - { - public string AuthorizationUrl { get; set; } - - public string CallbackUrl { get; set; } - } - } -} diff --git a/src/TeamCloud.Orchestrator/Command/Handlers/ComponentCreateCommandHandler.cs b/src/TeamCloud.Orchestrator/Command/Handlers/ComponentCreateCommandHandler.cs index 14857351..d6840f02 100644 --- a/src/TeamCloud.Orchestrator/Command/Handlers/ComponentCreateCommandHandler.cs +++ b/src/TeamCloud.Orchestrator/Command/Handlers/ComponentCreateCommandHandler.cs @@ -8,6 +8,7 @@ using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.DurableTask; using Microsoft.Extensions.Logging; +using TeamCloud.Adapters; using TeamCloud.Data; using TeamCloud.Model.Commands; using TeamCloud.Model.Commands.Core; @@ -18,10 +19,19 @@ namespace TeamCloud.Orchestrator.Command.Handlers public sealed class ComponentCreateCommandHandler : CommandHandler { private readonly IComponentRepository componentRepository; + private readonly IDeploymentScopeRepository deploymentScopeRepository; + private readonly IAdapterProvider adapterProvider; + private readonly IUserRepository userRepository; - public ComponentCreateCommandHandler(IComponentRepository componentRepository) + public ComponentCreateCommandHandler(IComponentRepository componentRepository, + IDeploymentScopeRepository deploymentScopeRepository, + IAdapterProvider adapterProvider, + IUserRepository userRepository) { this.componentRepository = componentRepository ?? throw new ArgumentNullException(nameof(componentRepository)); + this.deploymentScopeRepository = deploymentScopeRepository; + this.adapterProvider = adapterProvider ?? throw new ArgumentNullException(nameof(adapterProvider)); + this.userRepository = userRepository ?? throw new ArgumentNullException(nameof(userRepository)); } public override bool Orchestration => false; @@ -42,6 +52,38 @@ public override async Task HandleAsync(ComponentCreateCommand co .AddAsync(command.Payload) .ConfigureAwait(false); + var deploymentScope = await deploymentScopeRepository + .GetAsync(commandResult.Result.Organization, commandResult.Result.DeploymentScopeId) + .ConfigureAwait(false); + + if (adapterProvider.GetAdapter(deploymentScope.Type) is IAdapterIdentity adapterIdentity) + { + var servicePrincipal = await adapterIdentity + .GetServiceIdentityAsync(commandResult.Result) + .ConfigureAwait(false); + + var servicePrincipalUser = await userRepository + .GetAsync(commandResult.Result.Organization, servicePrincipal.ObjectId.ToString()) + .ConfigureAwait(false); + + if (servicePrincipalUser is null) + { + servicePrincipalUser ??= new User + { + Id = servicePrincipal.ObjectId.ToString(), + Role = OrganizationUserRole.Adapter, + UserType = Model.Data.UserType.Service, + Organization = commandResult.Result.Organization + }; + + servicePrincipalUser.EnsureProjectMembership(commandResult.Result.ProjectId, ProjectUserRole.Adapter); + + await commandQueue + .AddAsync(new ProjectUserCreateCommand(command.User, servicePrincipalUser, commandResult.Result.ProjectId)) + .ConfigureAwait(false); + } + } + var componentTask = new ComponentTask { Organization = commandResult.Result.Organization, diff --git a/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeCommandHandler.cs b/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeCommandHandler.cs deleted file mode 100644 index 3d8328c2..00000000 --- a/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeCommandHandler.cs +++ /dev/null @@ -1,170 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - */ - -using System; -using System.Threading.Tasks; -using Microsoft.Azure.WebJobs; -using Microsoft.Azure.WebJobs.Extensions.DurableTask; -using Microsoft.Extensions.Logging; -using TeamCloud.Adapters; -using TeamCloud.Adapters.Authorization; -using TeamCloud.Data; -using TeamCloud.Model.Commands; -using TeamCloud.Model.Commands.Core; -using TeamCloud.Orchestration; -using TeamCloud.Orchestrator.API; - -namespace TeamCloud.Orchestrator.Command.Handlers -{ - public sealed class DeploymentScopeCommandHandler : CommandHandler, - ICommandHandler, - ICommandHandler, - ICommandHandler, - ICommandHandler - { - private readonly IDeploymentScopeRepository deploymentScopeRepository; - private readonly IAuthorizationSessionClient authorizationSessionClient; - private readonly IAdapterProvider adapterProvider; - private readonly IFunctionsHost functionsHost; - - public DeploymentScopeCommandHandler( - IDeploymentScopeRepository deploymentScopeRepository, - IAuthorizationSessionClient authorizationSessionClient, - IAdapterProvider adapterProvider, - IFunctionsHost functionsHost) - { - this.deploymentScopeRepository = deploymentScopeRepository ?? throw new ArgumentNullException(nameof(deploymentScopeRepository)); - this.authorizationSessionClient = authorizationSessionClient ?? throw new ArgumentNullException(nameof(authorizationSessionClient)); - this.adapterProvider = adapterProvider ?? throw new ArgumentNullException(nameof(adapterProvider)); - this.functionsHost = functionsHost ?? FunctionsHost.Default; - } - - public override bool Orchestration => false; - - public async Task HandleAsync(DeploymentScopeCreateCommand command, IAsyncCollector commandQueue, IDurableClient orchestrationClient, IDurableOrchestrationContext orchestrationContext, ILogger log) - { - if (command is null) - throw new ArgumentNullException(nameof(command)); - - if (commandQueue is null) - throw new ArgumentNullException(nameof(commandQueue)); - - var commandResult = command.CreateResult(); - - try - { - commandResult.Result = await deploymentScopeRepository - .AddAsync(command.Payload) - .ConfigureAwait(false); - - commandResult.RuntimeStatus = CommandRuntimeStatus.Completed; - } - catch (Exception exc) - { - commandResult.Errors.Add(exc); - } - - return commandResult; - } - - public async Task HandleAsync(DeploymentScopeUpdateCommand command, IAsyncCollector commandQueue, IDurableClient orchestrationClient, IDurableOrchestrationContext orchestrationContext, ILogger log) - { - if (command is null) - throw new ArgumentNullException(nameof(command)); - - if (commandQueue is null) - throw new ArgumentNullException(nameof(commandQueue)); - - var commandResult = command.CreateResult(); - - try - { - commandResult.Result = await deploymentScopeRepository - .SetAsync(command.Payload) - .ConfigureAwait(false); - - commandResult.RuntimeStatus = CommandRuntimeStatus.Completed; - } - catch (Exception exc) - { - commandResult.Errors.Add(exc); - } - - return commandResult; - } - - public async Task HandleAsync(DeploymentScopeDeleteCommand command, IAsyncCollector commandQueue, IDurableClient orchestrationClient, IDurableOrchestrationContext orchestrationContext, ILogger log) - { - if (command is null) - throw new ArgumentNullException(nameof(command)); - - if (commandQueue is null) - throw new ArgumentNullException(nameof(commandQueue)); - - var commandResult = command.CreateResult(); - - try - { - commandResult.Result = await deploymentScopeRepository - .RemoveAsync(command.Payload) - .ConfigureAwait(false); - - commandResult.RuntimeStatus = CommandRuntimeStatus.Completed; - } - catch (Exception exc) - { - commandResult.Errors.Add(exc); - } - - return commandResult; - } - - public async Task HandleAsync(DeploymentScopeAuthorizeCommand command, IAsyncCollector commandQueue, IDurableClient orchestrationClient, IDurableOrchestrationContext orchestrationContext, ILogger log) - { - if (command is null) - throw new ArgumentNullException(nameof(command)); - - if (commandQueue is null) - throw new ArgumentNullException(nameof(commandQueue)); - - var commandResult = command.CreateResult(); - - try - { - commandResult.Result = command.Payload; - - var adapter = adapterProvider.GetAdapter(command.Payload.Type); - - if (adapter is null) - { - throw new NullReferenceException($"Could not find adapter for {command.Payload}"); - } - else if (adapter is IAdapterAuthorize adapterAuthorize) - { - await adapterAuthorize - .CreateSessionAsync(command.Payload) - .ConfigureAwait(false); - - commandResult.Result.AuthorizeUrl = await FunctionsEnvironment - .GetFunctionUrlAsync(nameof(AuthorizationTrigger.Authorize), functionsHost, replaceToken: (token) => AuthorizationTrigger.ResolveTokenValue(token, command.Payload)) - .ConfigureAwait(false); - - commandResult.RuntimeStatus = CommandRuntimeStatus.Completed; - } - else - { - throw new NotSupportedException($"Authorization not supported for {command.Payload}"); - } - - } - catch (Exception exc) - { - commandResult.Errors.Add(exc); - } - - return commandResult; - } - } -} diff --git a/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeCreateCommandHandler.cs b/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeCreateCommandHandler.cs new file mode 100644 index 00000000..a5220976 --- /dev/null +++ b/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeCreateCommandHandler.cs @@ -0,0 +1,90 @@ +/** + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + */ + +using System; +using System.Threading.Tasks; +using Microsoft.Azure.WebJobs; +using Microsoft.Azure.WebJobs.Extensions.DurableTask; +using Microsoft.Extensions.Logging; +using TeamCloud.Adapters; +using TeamCloud.Data; +using TeamCloud.Model.Commands; +using TeamCloud.Model.Commands.Core; +using TeamCloud.Model.Data; + +namespace TeamCloud.Orchestrator.Command.Handlers +{ + public sealed class DeploymentScopeCreateCommandHandler : CommandHandler, + ICommandHandler + { + private readonly IDeploymentScopeRepository deploymentScopeRepository; + private readonly IUserRepository userRepository; + private readonly IAdapterProvider adapterProvider; + + public DeploymentScopeCreateCommandHandler( + IDeploymentScopeRepository deploymentScopeRepository, + IUserRepository userRepository, + IAdapterProvider adapterProvider) + { + this.deploymentScopeRepository = deploymentScopeRepository ?? throw new ArgumentNullException(nameof(deploymentScopeRepository)); + this.userRepository = userRepository ?? throw new ArgumentNullException(nameof(userRepository)); + this.adapterProvider = adapterProvider ?? throw new ArgumentNullException(nameof(adapterProvider)); + } + + public override bool Orchestration => false; + + public async Task HandleAsync(DeploymentScopeCreateCommand command, IAsyncCollector commandQueue, IDurableClient orchestrationClient, IDurableOrchestrationContext orchestrationContext, ILogger log) + { + if (command is null) + throw new ArgumentNullException(nameof(command)); + + if (commandQueue is null) + throw new ArgumentNullException(nameof(commandQueue)); + + var commandResult = command.CreateResult(); + + try + { + commandResult.Result = await deploymentScopeRepository + .AddAsync(command.Payload) + .ConfigureAwait(false); + + if (adapterProvider.GetAdapter(commandResult.Result.Type) is IAdapterIdentity adapterIdentity) + { + var servicePrincipal = await adapterIdentity + .GetServiceIdentityAsync(commandResult.Result) + .ConfigureAwait(false); + + var servicePrincipalUser = await userRepository + .GetAsync(commandResult.Result.Organization, servicePrincipal.ObjectId.ToString()) + .ConfigureAwait(false); + + if (servicePrincipalUser is null) + { + servicePrincipalUser ??= new User + { + Id = servicePrincipal.ObjectId.ToString(), + Role = OrganizationUserRole.Adapter, + UserType = Model.Data.UserType.Service, + Organization = commandResult.Result.Organization + }; + + await commandQueue + .AddAsync(new OrganizationUserCreateCommand(command.User, servicePrincipalUser)) + .ConfigureAwait(false); + } + } + + commandResult.RuntimeStatus = CommandRuntimeStatus.Completed; + } + catch (Exception exc) + { + commandResult.Errors.Add(exc); + } + + return commandResult; + } + } +} diff --git a/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeDeleteCommandHandler.cs b/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeDeleteCommandHandler.cs new file mode 100644 index 00000000..177350e6 --- /dev/null +++ b/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeDeleteCommandHandler.cs @@ -0,0 +1,55 @@ +/** + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + */ + +using System; +using System.Threading.Tasks; +using Microsoft.Azure.WebJobs; +using Microsoft.Azure.WebJobs.Extensions.DurableTask; +using Microsoft.Extensions.Logging; +using TeamCloud.Data; +using TeamCloud.Model.Commands; +using TeamCloud.Model.Commands.Core; + +namespace TeamCloud.Orchestrator.Command.Handlers +{ + public sealed class DeploymentScopeDeleteCommandHandler : CommandHandler, + ICommandHandler + { + private readonly IDeploymentScopeRepository deploymentScopeRepository; + + public DeploymentScopeDeleteCommandHandler(IDeploymentScopeRepository deploymentScopeRepository) + { + this.deploymentScopeRepository = deploymentScopeRepository ?? throw new ArgumentNullException(nameof(deploymentScopeRepository)); + } + + public override bool Orchestration => false; + + public async Task HandleAsync(DeploymentScopeDeleteCommand command, IAsyncCollector commandQueue, IDurableClient orchestrationClient, IDurableOrchestrationContext orchestrationContext, ILogger log) + { + if (command is null) + throw new ArgumentNullException(nameof(command)); + + if (commandQueue is null) + throw new ArgumentNullException(nameof(commandQueue)); + + var commandResult = command.CreateResult(); + + try + { + commandResult.Result = await deploymentScopeRepository + .RemoveAsync(command.Payload) + .ConfigureAwait(false); + + commandResult.RuntimeStatus = CommandRuntimeStatus.Completed; + } + catch (Exception exc) + { + commandResult.Errors.Add(exc); + } + + return commandResult; + } + } +} diff --git a/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeUpdateCommandHandler.cs b/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeUpdateCommandHandler.cs new file mode 100644 index 00000000..01e09e47 --- /dev/null +++ b/src/TeamCloud.Orchestrator/Command/Handlers/DeploymentScopeUpdateCommandHandler.cs @@ -0,0 +1,55 @@ +/** + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + */ + +using System; +using System.Threading.Tasks; +using Microsoft.Azure.WebJobs; +using Microsoft.Azure.WebJobs.Extensions.DurableTask; +using Microsoft.Extensions.Logging; +using TeamCloud.Data; +using TeamCloud.Model.Commands; +using TeamCloud.Model.Commands.Core; + +namespace TeamCloud.Orchestrator.Command.Handlers +{ + public sealed class DeploymentScopeUpdateCommandHandler : CommandHandler, + ICommandHandler + { + private readonly IDeploymentScopeRepository deploymentScopeRepository; + + public DeploymentScopeUpdateCommandHandler(IDeploymentScopeRepository deploymentScopeRepository) + { + this.deploymentScopeRepository = deploymentScopeRepository ?? throw new ArgumentNullException(nameof(deploymentScopeRepository)); + } + + public override bool Orchestration => false; + + public async Task HandleAsync(DeploymentScopeUpdateCommand command, IAsyncCollector commandQueue, IDurableClient orchestrationClient, IDurableOrchestrationContext orchestrationContext, ILogger log) + { + if (command is null) + throw new ArgumentNullException(nameof(command)); + + if (commandQueue is null) + throw new ArgumentNullException(nameof(commandQueue)); + + var commandResult = command.CreateResult(); + + try + { + commandResult.Result = await deploymentScopeRepository + .SetAsync(command.Payload) + .ConfigureAwait(false); + + commandResult.RuntimeStatus = CommandRuntimeStatus.Completed; + } + catch (Exception exc) + { + commandResult.Errors.Add(exc); + } + + return commandResult; + } + } +} diff --git a/src/TeamCloud.Orchestrator/Options/TeamCloudAdapterAuthorizeOptions.cs b/src/TeamCloud.Orchestrator/Options/TeamCloudAdapterAuthorizeOptions.cs index 1eeb1af3..39b53bc6 100644 --- a/src/TeamCloud.Orchestrator/Options/TeamCloudAdapterAuthorizeOptions.cs +++ b/src/TeamCloud.Orchestrator/Options/TeamCloudAdapterAuthorizeOptions.cs @@ -13,17 +13,15 @@ namespace TeamCloud.Orchestrator.Options [Options] public sealed class TeamCloudAdapterAuthorizeOptions : IAuthorizationSessionOptions, IAuthorizationTokenOptions { - private readonly AdapterSessionStorageOptions sessionStorageOptions; - private readonly AdapterTokenStorageOptions tokenStorageOptions; + private readonly AzureStorageOptions azureStorageOptions; - public TeamCloudAdapterAuthorizeOptions(AdapterSessionStorageOptions sessionStorageOptions, AdapterTokenStorageOptions tokenStorageOptions) + public TeamCloudAdapterAuthorizeOptions(AzureStorageOptions azureStorageOptions) { - this.sessionStorageOptions = sessionStorageOptions ?? throw new ArgumentNullException(nameof(sessionStorageOptions)); - this.tokenStorageOptions = tokenStorageOptions ?? throw new ArgumentNullException(nameof(tokenStorageOptions)); + this.azureStorageOptions = azureStorageOptions ?? throw new ArgumentNullException(nameof(azureStorageOptions)); } - string IAuthorizationSessionOptions.ConnectionString => sessionStorageOptions.ConnectionString; + string IAuthorizationSessionOptions.ConnectionString => azureStorageOptions.ConnectionString; - string IAuthorizationTokenOptions.ConnectionString => tokenStorageOptions.ConnectionString; + string IAuthorizationTokenOptions.ConnectionString => azureStorageOptions.ConnectionString; } } diff --git a/src/TeamCloud.Orchestrator/Templates/SharedResourcesTemplate.json b/src/TeamCloud.Orchestrator/Templates/SharedResourcesTemplate.json index ade6bb02..92c0f0e8 100644 --- a/src/TeamCloud.Orchestrator/Templates/SharedResourcesTemplate.json +++ b/src/TeamCloud.Orchestrator/Templates/SharedResourcesTemplate.json @@ -60,57 +60,78 @@ }, "mode": "Incremental", "parameters": {}, - "template": { - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "variables": { - "resourcePrefix": "tc", - "organizationSharedImageGallery": "[concat(variables('resourcePrefix'), uniqueString(resourceGroup().id))]", - "organizationContainerRegistry": "[concat(variables('resourcePrefix'), uniqueString(resourceGroup().id))]", - "organizationStorageAccount": "[concat(variables('resourcePrefix'), uniqueString(resourceGroup().id))]" - }, - "resources": [ - { - "name": "[variables('organizationSharedImageGallery')]", - "type": "Microsoft.Compute/galleries", - "apiVersion": "2020-09-30", - "location": "[resourceGroup().location]" - }, - { - "name": "[variables('organizationContainerRegistry')]", - "type": "Microsoft.ContainerRegistry/registries", - "apiVersion": "2019-12-01-preview", - "location": "[resourceGroup().location]", - "sku": { - "name": "Standard" - }, - "properties": { - "adminUserEnabled": false - } - }, - { - "name": "[variables('organizationStorageAccount')]", - "type": "Microsoft.Storage/storageAccounts", - "apiVersion": "2019-06-01", - "location": "[resourceGroup().location]", - "sku": { - "name": "Premium_LRS" - }, - "kind": "StorageV2" - } - ], - "outputs": { - "organizationData": { - "type": "object", - "value": { - "resourceId": "[resourceGroup().id]", - "galleryId": "[resourceId('Microsoft.Compute/galleries', variables('organizationSharedImageGallery'))]", - "registryId": "[resourceId('Microsoft.ContainerRegistry/registries', variables('organizationContainerRegistry'))]", - "storageId": "[resourceId('Microsoft.Storage/storageAccounts', variables('organizationStorageAccount'))]" - } - } - } - } + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "outputs": { + "organizationData": { + "type": "object", + "value": { + "resourceId": "[resourceGroup().id]", + "secretsVaultId": "[resourceId('Microsoft.KeyVault/vaults',variables('organizationSecretsVault'))]", + "galleryId": "[resourceId('Microsoft.Compute/galleries', variables('organizationSharedImageGallery'))]", + "registryId": "[resourceId('Microsoft.ContainerRegistry/registries', variables('organizationContainerRegistry'))]", + "storageId": "[resourceId('Microsoft.Storage/storageAccounts', variables('organizationStorageAccount'))]" + } + } + }, + "resources": [ + { + "name": "[variables('organizationSecretsVault')]", + "type": "Microsoft.KeyVault/vaults", + "apiVersion": "2019-09-01", + "location": "[resourceGroup().location]", + "properties": { + "sku": { + "name": "Standard", + "family": "A" + }, + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "enableSoftDelete": true, + "tenantId": "[subscription().tenantId]", + "accessPolicies": [] + } + }, + { + "name": "[variables('organizationSharedImageGallery')]", + "type": "Microsoft.Compute/galleries", + "apiVersion": "2020-09-30", + "location": "[resourceGroup().location]", + "properties": {} + }, + { + "name": "[variables('organizationContainerRegistry')]", + "type": "Microsoft.ContainerRegistry/registries", + "apiVersion": "2019-12-01-preview", + "location": "[resourceGroup().location]", + "sku": { + "name": "Standard" + }, + "properties": { + "adminUserEnabled": false + } + }, + { + "apiVersion": "2019-06-01", + "kind": "StorageV2", + "location": "[resourceGroup().location]", + "name": "[variables('organizationStorageAccount')]", + "sku": { + "name": "Premium_LRS" + }, + "type": "Microsoft.Storage/storageAccounts" + } + ], + "variables": { + "resourcePrefix": "tc", + "organizationSecretsVault": "[concat(variables('resourcePrefix'), uniqueString(resourceGroup().id), '-secrets')]", + "organizationSharedImageGallery": "[concat(variables('resourcePrefix'), uniqueString(resourceGroup().id))]", + "organizationContainerRegistry": "[concat(variables('resourcePrefix'), uniqueString(resourceGroup().id))]", + "organizationStorageAccount": "[concat(variables('resourcePrefix'), uniqueString(resourceGroup().id))]" + } + } } }, { diff --git a/src/TeamCloud.Secrets/ISecretsStoreProvider.cs b/src/TeamCloud.Secrets/ISecretsStoreProvider.cs index 7efa545e..1e9693df 100644 --- a/src/TeamCloud.Secrets/ISecretsStoreProvider.cs +++ b/src/TeamCloud.Secrets/ISecretsStoreProvider.cs @@ -10,6 +10,8 @@ namespace TeamCloud.Secrets { public interface ISecretsStoreProvider { + Task GetSecretsStoreAsync(Organization organization); + Task GetSecretsStoreAsync(Project project); } } diff --git a/src/TeamCloud.Secrets/SecretsStoreProvider.cs b/src/TeamCloud.Secrets/SecretsStoreProvider.cs index 9c9e8649..fa50f047 100644 --- a/src/TeamCloud.Secrets/SecretsStoreProvider.cs +++ b/src/TeamCloud.Secrets/SecretsStoreProvider.cs @@ -28,6 +28,42 @@ internal SecretsStoreProvider(IServiceProvider serviceProvider) this.azureResourceService = serviceProvider.GetRequiredService(); } + public async Task GetSecretsStoreAsync(Organization organization) + { + if (organization is null) + throw new ArgumentNullException(nameof(organization)); + + if (string.IsNullOrEmpty(organization.SecretsVaultId)) + throw new ArgumentException($"Secrets vault not available.", nameof(organization)); + + var keyVaultResource = await keyVaultResourceCache.GetOrAdd(organization.SecretsVaultId, (key) => new AsyncLazy(async () => + { + var secretsVault = await azureResourceService + .GetResourceAsync(organization.SecretsVaultId, true) + .ConfigureAwait(false); + + var identity = await azureResourceService.AzureSessionService + .GetIdentityAsync() + .ConfigureAwait(false); + + await secretsVault + .SetAllSecretPermissionsAsync(identity.ObjectId) + .ConfigureAwait(false); + + return secretsVault; + + })).ConfigureAwait(false); + + try + { + return ActivatorUtilities.CreateInstance(serviceProvider, keyVaultResource); + } + catch + { + throw; + } + } + public async Task GetSecretsStoreAsync(Project project) { if (project is null) @@ -39,7 +75,7 @@ public async Task GetSecretsStoreAsync(Project project) var keyVaultResource = await keyVaultResourceCache.GetOrAdd(project.SecretsVaultId, (key) => new AsyncLazy(async () => { var secretsVault = await azureResourceService - .GetResourceAsync(project.SharedVaultId, true) + .GetResourceAsync(project.SecretsVaultId, true) .ConfigureAwait(false); var identity = await azureResourceService.AzureSessionService diff --git a/web/src/components/DeploymentScopeList.tsx b/web/src/components/DeploymentScopeList.tsx index 8026f467..e8cf94c8 100644 --- a/web/src/components/DeploymentScopeList.tsx +++ b/web/src/components/DeploymentScopeList.tsx @@ -9,7 +9,7 @@ import { ContentList } from '.'; import { useOrg, useDeploymentScopes } from '../hooks'; import collaboration from '../img/MSC17_collaboration_010_noBG.png' -import { api } from '../API'; +import { useAuthorizeDeployemntScope } from '../hooks/useAuthorizeDeploymentScope'; export const DeploymentScopeList: React.FC = () => { @@ -18,6 +18,7 @@ export const DeploymentScopeList: React.FC = () => { const { data: org } = useOrg(); const { data: scopes } = useDeploymentScopes(); + const authorizeDeploymentScope = useAuthorizeDeployemntScope(); const columns: IColumn[] = [ { key: 'displayName', name: 'Name', minWidth: 200, fieldName: 'displayName' }, @@ -30,10 +31,10 @@ export const DeploymentScopeList: React.FC = () => { ]; const _onItemAuthorize = async (scope: DeploymentScope): Promise => { - // console.log(JSON.stringify(scope)); - let response = await api.authorizeDeploymentScope(scope.id, scope.organization, { body: scope }); - if (response && response.data && response.data.authorizeUrl) { - window.open(response.data.authorizeUrl, "_blank"); + if (scope?.authorizeUrl) { + let authorizedScope = await authorizeDeploymentScope(scope); + window.open(authorizedScope?.authorizeUrl ?? scope?.authorizeUrl, "_blank"); + // window.open(scope?.authorizeUrl, "_self"); } }; diff --git a/web/src/hooks/useAuthorizeDeploymentScope.ts b/web/src/hooks/useAuthorizeDeploymentScope.ts new file mode 100644 index 00000000..22668292 --- /dev/null +++ b/web/src/hooks/useAuthorizeDeploymentScope.ts @@ -0,0 +1,33 @@ +import { useQueryClient, useMutation } from "react-query"; +import { DeploymentScope } from "teamcloud"; +import { useDeploymentScopes } from "."; +import { api } from "../API"; + + + +export const useAuthorizeDeployemntScope = () => { + + const { data: deploymentScopes } = useDeploymentScopes(); + + const queryClient = useQueryClient(); + + return useMutation(async (deploymentScope: DeploymentScope) => { + + const { data } = await api.initializeAuthorization(deploymentScope.organization, deploymentScope.id, { + onResponse: (raw, flat) => { + if (raw.status >= 400) + throw new Error(raw.parsedBody || raw.bodyAsText || `Error: ${raw.status}`) + } + }); + + return data; + }, { + onSuccess: data => { + if (data) { + queryClient.setQueryData(['org', data.organization, 'deploymentscope'], deploymentScopes?.map(ds => ds.id === data.id ? data : ds)); + queryClient.setQueryData(['org', data.organization, 'deploymentscope', data.id], data); + } + } + }).mutateAsync +} + diff --git a/web/src/hooks/useCancelProjectComponentTask.ts b/web/src/hooks/useCancelProjectComponentTask.ts index 093091e7..52d370b0 100644 --- a/web/src/hooks/useCancelProjectComponentTask.ts +++ b/web/src/hooks/useCancelProjectComponentTask.ts @@ -33,10 +33,8 @@ export const useCancelProjectComponentTask = () => { onSuccess: data => { if (data) { - var componentTasksSanitized = componentTasks?.map(ct => ct.id === data.id ? data : ct); - - queryClient.setQueryData(['org', org?.id, 'project', project?.id, 'component', component?.id, 'componenttask', data.id], data) - queryClient.setQueryData(['org', org?.id, 'project', project?.id, 'component', component?.id, 'componenttask', data.id, 'componenttask'], componentTasksSanitized) + queryClient.setQueryData(['org', data.organization, 'project', data.projectId, 'component', data.componentId, 'componenttask'], componentTasks?.map(ct => ct.id === data.id ? data : ct)) + queryClient.setQueryData(['org', data.organization, 'project', data.projectId, 'component', data.componentId, 'componenttask', data.id], data) history.push(`/orgs/${org?.slug ?? orgId}/projects/${project?.slug ?? projectId}/components/${component?.slug ?? itemId}/tasks/${data.id}`); } diff --git a/web/src/hooks/useCreateDeploymentScope.ts b/web/src/hooks/useCreateDeploymentScope.ts index f2127455..7c6ba30a 100644 --- a/web/src/hooks/useCreateDeploymentScope.ts +++ b/web/src/hooks/useCreateDeploymentScope.ts @@ -26,8 +26,10 @@ export const useCreateDeploymentScope = () => { return data; }, { onSuccess: data => { - if (data) - queryClient.setQueryData(['org', org!.id, 'scopes'], [data]); + if (data) { + queryClient.invalidateQueries(['org', org!.id, 'scopes']); + queryClient.invalidateQueries(['org', org?.id, 'user']); + } } }).mutateAsync } diff --git a/web/src/hooks/useUsers.ts b/web/src/hooks/useUsers.ts index eafe5826..1ca7c51c 100644 --- a/web/src/hooks/useUsers.ts +++ b/web/src/hooks/useUsers.ts @@ -12,7 +12,7 @@ export const useUsers = () => { const isAuthenticated = useIsAuthenticated(); - return useQuery(['org', org?.id, 'user'], async () => { + return useQuery(['org', org?.id, 'users'], async () => { const { data } = await api.getOrganizationUsers(org!.id, { onResponse: (raw, flat) => { diff --git a/web/teamcloud/dist-esm/models/index.d.ts b/web/teamcloud/dist-esm/models/index.d.ts index 1ae1d8a7..7b6d2c7b 100644 --- a/web/teamcloud/dist-esm/models/index.d.ts +++ b/web/teamcloud/dist-esm/models/index.d.ts @@ -1001,11 +1001,10 @@ export interface TeamCloudDeleteDeploymentScopeOptionalParams extends coreClient /** Contains response data for the deleteDeploymentScope operation. */ export declare type TeamCloudDeleteDeploymentScopeResponse = DeploymentScopeDataResult; /** Optional parameters. */ -export interface TeamCloudAuthorizeDeploymentScopeOptionalParams extends coreClient.OperationOptions { - body?: DeploymentScope; +export interface TeamCloudInitializeAuthorizationOptionalParams extends coreClient.OperationOptions { } -/** Contains response data for the authorizeDeploymentScope operation. */ -export declare type TeamCloudAuthorizeDeploymentScopeResponse = DeploymentScopeDataResult; +/** Contains response data for the initializeAuthorization operation. */ +export declare type TeamCloudInitializeAuthorizationResponse = DeploymentScopeDataResult; /** Optional parameters. */ export interface TeamCloudNegotiateSignalROptionalParams extends coreClient.OperationOptions { } diff --git a/web/teamcloud/dist-esm/models/index.d.ts.map b/web/teamcloud/dist-esm/models/index.d.ts.map index e4816932..9debc69c 100644 --- a/web/teamcloud/dist-esm/models/index.d.ts.map +++ b/web/teamcloud/dist-esm/models/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AAEjD,MAAM,WAAW,gCAAgC;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,mBAAmB,CAAC;IAChC,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,2BAA2B,CAAC;IACtC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,yBAAyB,CAAC;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,IAAI,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,iCAAiC,EAAE,CAAC;IACrD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,6BAA6B,CAAC;IACpC,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,+BAA+B,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,IAAI,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,sBAAsB;IACrC,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,IAAI;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,6BAA6B;IAC7B,UAAU,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAChD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,6BAA6B;IAC7B,UAAU,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,CAAC,EAAE,iBAAiB,CAAC;IACzC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,UAAU,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,6BAA6B;IAC7B,IAAI,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,0FAA0F;IAC1F,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,mBAAmB,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,oBAAoB,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,cAAc,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,gCAAgC,EAAE,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,+EAA+E;AAC/E,oBAAY,2BAA2B;IACrC,oBAAoB,yBAAyB;IAC7C,WAAW,gBAAgB;IAC3B,MAAM,WAAW;CAClB;AAED;;;;;;;;GAQG;AACH,oBAAY,sBAAsB,GAAG,MAAM,CAAC;AAE5C,wEAAwE;AACxE,oBAAY,oBAAoB;IAC9B,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,YAAY,iBAAiB;IAC7B,SAAS,cAAc;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,oBAAY,eAAe,GAAG,MAAM,CAAC;AAErC,sEAAsE;AACtE,oBAAY,kBAAkB;IAC5B,WAAW,gBAAgB;IAC3B,UAAU,eAAe;CAC1B;AAED;;;;;;;GAOG;AACH,oBAAY,aAAa,GAAG,MAAM,CAAC;AAEnC,+EAA+E;AAC/E,oBAAY,2BAA2B;IACrC,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,MAAM,WAAW;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,oBAAY,sBAAsB,GAAG,MAAM,CAAC;AAE5C,0EAA0E;AAC1E,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED;;;;;;;;GAQG;AACH,oBAAY,iBAAiB,GAAG,MAAM,CAAC;AAEvC,2EAA2E;AAC3E,oBAAY,uBAAuB;IACjC,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED;;;;;;;;;;;GAWG;AACH,oBAAY,kBAAkB,GAAG,MAAM,CAAC;AAExC,oFAAoF;AACpF,oBAAY,gCAAgC;IAC1C,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED;;;;;;;;GAQG;AACH,oBAAY,2BAA2B,GAAG,MAAM,CAAC;AAEjD,gFAAgF;AAChF,oBAAY,4BAA4B;IACtC,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED;;;;;;;;;GASG;AACH,oBAAY,uBAAuB,GAAG,MAAM,CAAC;AAE7C,kFAAkF;AAClF,oBAAY,8BAA8B;IACxC,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED;;;;;;;;GAQG;AACH,oBAAY,yBAAyB,GAAG,MAAM,CAAC;AAE/C,8EAA8E;AAC9E,oBAAY,0BAA0B;IACpC,WAAW,gBAAgB;IAC3B,UAAU,eAAe;CAC1B;AAED;;;;;;;GAOG;AACH,oBAAY,qBAAqB,GAAG,MAAM,CAAC;AAE3C,4EAA4E;AAC5E,oBAAY,wBAAwB;IAClC,oBAAoB,yBAAyB;IAC7C,WAAW,gBAAgB;IAC3B,MAAM,WAAW;CAClB;AAED;;;;;;;;GAQG;AACH,oBAAY,mBAAmB,GAAG,MAAM,CAAC;AAEzC,0FAA0F;AAC1F,oBAAY,sCAAsC;IAChD,WAAW,gBAAgB;IAC3B,UAAU,eAAe;CAC1B;AAED;;;;;;;GAOG;AACH,oBAAY,iCAAiC,GAAG,MAAM,CAAC;AAEvD,sFAAsF;AACtF,oBAAY,kCAAkC;IAC5C,oBAAoB,yBAAyB;IAC7C,WAAW,gBAAgB;IAC3B,MAAM,WAAW;CAClB;AAED;;;;;;;;GAQG;AACH,oBAAY,6BAA6B,GAAG,MAAM,CAAC;AAEnD,wFAAwF;AACxF,oBAAY,oCAAoC;IAC9C,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,OAAO,YAAY;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,oBAAY,+BAA+B,GAAG,MAAM,CAAC;AAErD,kFAAkF;AAClF,oBAAY,8BAA8B;IACxC,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,MAAM,WAAW;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,oBAAY,yBAAyB,GAAG,MAAM,CAAC;AAE/C,iEAAiE;AACjE,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED;;;;;;;;;GASG;AACH,oBAAY,QAAQ,GAAG,MAAM,CAAC;AAE9B,iEAAiE;AACjE,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED;;;;;;;;;GASG;AACH,oBAAY,QAAQ,GAAG,MAAM,CAAC;AAE9B,8EAA8E;AAC9E,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED;;;;;;;;;;GAUG;AACH,oBAAY,qBAAqB,GAAG,MAAM,CAAC;AAE3C,6EAA6E;AAC7E,oBAAY,yBAAyB;IACnC,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,MAAM,WAAW;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,oBAAY,oBAAoB,GAAG,MAAM,CAAC;AAE1C,+EAA+E;AAC/E,oBAAY,2BAA2B;IACrC,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,oBAAY,sBAAsB,GAAG,MAAM,CAAC;AAE5C,yFAAyF;AACzF,oBAAY,qCAAqC;IAC/C,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,oBAAY,gCAAgC,GAAG,MAAM,CAAC;AAEtD,2BAA2B;AAC3B,MAAM,WAAW,kCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,4DAA4D;AAC5D,oBAAY,4BAA4B,GAAG,gCAAgC,CAAC;AAE5E,2BAA2B;AAC3B,MAAM,WAAW,oCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,8DAA8D;AAC9D,oBAAY,8BAA8B,GAAG,uBAAuB,CAAC;AAErE,2BAA2B;AAC3B,MAAM,WAAW,sCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC5B;AAED,gEAAgE;AAChE,oBAAY,gCAAgC,GAAG,mBAAmB,CAAC;AAEnE,2BAA2B;AAC3B,MAAM,WAAW,mCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,6DAA6D;AAC7D,oBAAY,6BAA6B,GAAG,mBAAmB,CAAC;AAEhE,2BAA2B;AAC3B,MAAM,WAAW,sCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,gEAAgE;AAChE,oBAAY,gCAAgC,GAAG,YAAY,CAAC;AAE5D,2BAA2B;AAC3B,MAAM,WAAW,wCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,kEAAkE;AAClE,oBAAY,kCAAkC,GAAG,2BAA2B,CAAC;AAE7E,2BAA2B;AAC3B,MAAM,WAAW,0CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,uBAAuB,CAAC;CAChC;AAED,oEAAoE;AACpE,oBAAY,oCAAoC,GAAG,uBAAuB,CAAC;AAE3E,2BAA2B;AAC3B,MAAM,WAAW,uCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,iEAAiE;AACjE,oBAAY,iCAAiC,GAAG,uBAAuB,CAAC;AAExE,2BAA2B;AAC3B,MAAM,WAAW,0CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,oEAAoE;AACpE,oBAAY,oCAAoC,GAAG,uBAAuB,CAAC;AAE3E,2BAA2B;AAC3B,MAAM,WAAW,yCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,mEAAmE;AACnE,oBAAY,mCAAmC,GAAG,uBAAuB,CAAC;AAE1E,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,+BAA+B,CAAC;AAErF,2BAA2B;AAC3B,MAAM,WAAW,2CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,qEAAqE;AACrE,oBAAY,qCAAqC,GAAG,2BAA2B,CAAC;AAEhF,2BAA2B;AAC3B,MAAM,WAAW,0CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,oEAAoE;AACpE,oBAAY,oCAAoC,GAAG,6BAA6B,CAAC;AAEjF,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,yBAAyB,CAAC;CAClC;AAED,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,yBAAyB,CAAC;AAE/E,2BAA2B;AAC3B,MAAM,WAAW,yCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,mEAAmE;AACnE,oBAAY,mCAAmC,GAAG,yBAAyB,CAAC;AAE5E,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,yBAAyB,CAAC;AAE/E,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,yBAAyB,CAAC;AAE/E,2BAA2B;AAC3B,MAAM,WAAW,8CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,wEAAwE;AACxE,oBAAY,wCAAwC,GAAG,yBAAyB,CAAC;AAEjF,2BAA2B;AAC3B,MAAM,WAAW,uCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,2BAA2B;AAC3B,MAAM,WAAW,sCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,gEAAgE;AAChE,oBAAY,gCAAgC,GAAG,gCAAgC,CAAC;AAEhF,2BAA2B;AAC3B,MAAM,WAAW,oCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,8DAA8D;AAC9D,oBAAY,8BAA8B,GAAG,4BAA4B,CAAC;AAE1E,2BAA2B;AAC3B,MAAM,WAAW,uCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,iEAAiE;AACjE,oBAAY,iCAAiC,GAAG,oBAAoB,CAAC;AAErE,2BAA2B;AAC3B,MAAM,WAAW,uCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,iEAAiE;AACjE,oBAAY,iCAAiC,GAAG,0BAA0B,CAAC;AAE3E,2BAA2B;AAC3B,MAAM,WAAW,yCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,sBAAsB,CAAC;CAC/B;AAED,mEAAmE;AACnE,oBAAY,mCAAmC,GAAG,sBAAsB,CAAC;AAEzE,2BAA2B;AAC3B,MAAM,WAAW,sCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,gEAAgE;AAChE,oBAAY,gCAAgC,GAAG,sBAAsB,CAAC;AAEtE,2BAA2B;AAC3B,MAAM,WAAW,yCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,mEAAmE;AACnE,oBAAY,mCAAmC,GAAG,YAAY,CAAC;AAE/D,2BAA2B;AAC3B,MAAM,WAAW,2CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,qEAAqE;AACrE,oBAAY,qCAAqC,GAAG,kBAAkB,CAAC;AAEvE,2BAA2B;AAC3B,MAAM,WAAW,6CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED,uEAAuE;AACvE,oBAAY,uCAAuC,GAAG,cAAc,CAAC;AAErE,2BAA2B;AAC3B,MAAM,WAAW,0CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,oEAAoE;AACpE,oBAAY,oCAAoC,GAAG,cAAc,CAAC;AAElE,2BAA2B;AAC3B,MAAM,WAAW,6CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,uEAAuE;AACvE,oBAAY,uCAAuC,GAAG,cAAc,CAAC;AAErE,2BAA2B;AAC3B,MAAM,WAAW,6CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,uEAAuE;AACvE,oBAAY,uCAAuC,GAAG,YAAY,CAAC;AAEnE,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,cAAc,CAAC;AAEpE,2BAA2B;AAC3B,MAAM,WAAW,+CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,yEAAyE;AACzE,oBAAY,yCAAyC,GAAG,cAAc,CAAC;AAEvE,2BAA2B;AAC3B,MAAM,WAAW,kCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,4DAA4D;AAC5D,oBAAY,4BAA4B,GAAG,qBAAqB,CAAC;AAEjE,2BAA2B;AAC3B,MAAM,WAAW,oCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,8DAA8D;AAC9D,oBAAY,8BAA8B,GAAG,iBAAiB,CAAC;AAE/D,2BAA2B;AAC3B,MAAM,WAAW,iCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,2DAA2D;AAC3D,oBAAY,2BAA2B,GAAG,iBAAiB,CAAC;AAE5D,2BAA2B;AAC3B,MAAM,WAAW,oCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,8DAA8D;AAC9D,oBAAY,8BAA8B,GAAG,YAAY,CAAC;AAE1D,2BAA2B;AAC3B,MAAM,WAAW,2CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,qEAAqE;AACrE,oBAAY,qCAAqC,GAAG,6BAA6B,CAAC;AAElF,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,yBAAyB,CAAC;CAClC;AAED,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,yBAAyB,CAAC;AAE/E,2BAA2B;AAC3B,MAAM,WAAW,yCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,mEAAmE;AACnE,oBAAY,mCAAmC,GAAG,yBAAyB,CAAC;AAE5E,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,YAAY,CAAC;AAElE,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,yBAAyB,CAAC;AAE/E,2BAA2B;AAC3B,MAAM,WAAW,qCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,+DAA+D;AAC/D,oBAAY,+BAA+B,GAAG,0BAA0B,CAAC;AAEzE,2BAA2B;AAC3B,MAAM,WAAW,uCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,6BAA6B;IAC7B,IAAI,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,iEAAiE;AACjE,oBAAY,iCAAiC,GAAG,YAAY,CAAC;AAE7D,2BAA2B;AAC3B,MAAM,WAAW,uCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,6BAA6B;IAC7B,IAAI,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,iEAAiE;AACjE,oBAAY,iCAAiC,GAAG,YAAY,CAAC;AAE7D,2BAA2B;AAC3B,MAAM,WAAW,yCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,mEAAmE;AACnE,oBAAY,mCAAmC,GAAG,0BAA0B,CAAC;AAE7E,2BAA2B;AAC3B,MAAM,WAAW,uCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,iEAAiE;AACjE,oBAAY,iCAAiC,GAAG,YAAY,CAAC;AAE7D,2BAA2B;AAC3B,MAAM,WAAW,0CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,oEAAoE;AACpE,oBAAY,oCAAoC,GAAG,6BAA6B,CAAC;AAEjF,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,yBAAyB,CAAC;CAClC;AAED,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,yBAAyB,CAAC;AAE/E,2BAA2B;AAC3B,MAAM,WAAW,yCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,mEAAmE;AACnE,oBAAY,mCAAmC,GAAG,yBAAyB,CAAC;AAE5E,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,yBAAyB,CAAC;AAE/E,2BAA2B;AAC3B,MAAM,WAAW,4CACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,sEAAsE;AACtE,oBAAY,sCAAsC,GAAG,yBAAyB,CAAC;AAE/E,2BAA2B;AAC3B,MAAM,WAAW,sCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,gEAAgE;AAChE,oBAAY,gCAAgC,GAAG,kBAAkB,CAAC;AAElE,2BAA2B;AAC3B,MAAM,WAAW,wCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED,kEAAkE;AAClE,oBAAY,kCAAkC,GAAG,cAAc,CAAC;AAEhE,2BAA2B;AAC3B,MAAM,WAAW,qCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,+DAA+D;AAC/D,oBAAY,+BAA+B,GAAG,cAAc,CAAC;AAE7D,2BAA2B;AAC3B,MAAM,WAAW,wCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,kEAAkE;AAClE,oBAAY,kCAAkC,GAAG,cAAc,CAAC;AAEhE,2BAA2B;AAC3B,MAAM,WAAW,wCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,kEAAkE;AAClE,oBAAY,kCAAkC,GAAG,YAAY,CAAC;AAE9D,2BAA2B;AAC3B,MAAM,WAAW,uCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,iEAAiE;AACjE,oBAAY,iCAAiC,GAAG,cAAc,CAAC;AAE/D,2BAA2B;AAC3B,MAAM,WAAW,0CACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,oEAAoE;AACpE,oBAAY,oCAAoC,GAAG,cAAc,CAAC;AAElE,2BAA2B;AAC3B,MAAM,WAAW,mCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,6DAA6D;AAC7D,oBAAY,6BAA6B,GAAG,sBAAsB,CAAC;AAEnE,2BAA2B;AAC3B,MAAM,WAAW,qCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAED,+DAA+D;AAC/D,oBAAY,+BAA+B,GAAG,kBAAkB,CAAC;AAEjE,2BAA2B;AAC3B,MAAM,WAAW,kCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,4DAA4D;AAC5D,oBAAY,4BAA4B,GAAG,kBAAkB,CAAC;AAE9D,2BAA2B;AAC3B,MAAM,WAAW,qCACf,SAAQ,UAAU,CAAC,gBAAgB;IACnC,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,+DAA+D;AAC/D,oBAAY,+BAA+B,GAAG,kBAAkB,CAAC;AAEjE,2BAA2B;AAC3B,MAAM,WAAW,kCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,4DAA4D;AAC5D,oBAAY,4BAA4B,GAAG,kBAAkB,CAAC;AAE9D,2BAA2B;AAC3B,MAAM,WAAW,gCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,0DAA0D;AAC1D,oBAAY,0BAA0B,GAAG,YAAY,CAAC;AAEtD,2BAA2B;AAC3B,MAAM,WAAW,uCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,iEAAiE;AACjE,oBAAY,iCAAiC,GAAG,YAAY,CAAC;AAE7D,2BAA2B;AAC3B,MAAM,WAAW,sCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,gEAAgE;AAChE,oBAAY,gCAAgC,GAAG,qBAAqB,CAAC;AAErE,2BAA2B;AAC3B,MAAM,WAAW,wCACf,SAAQ,UAAU,CAAC,gBAAgB;CAAG;AAExC,kEAAkE;AAClE,oBAAY,kCAAkC,GAAG,qBAAqB,CAAC;AAEvE,2BAA2B;AAC3B,MAAM,WAAW,uBACf,SAAQ,UAAU,CAAC,oBAAoB;IACvC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"} \ No newline at end of file diff --git a/web/teamcloud/dist-esm/models/parameters.d.ts b/web/teamcloud/dist-esm/models/parameters.d.ts index 43038fba..db71710c 100644 --- a/web/teamcloud/dist-esm/models/parameters.d.ts +++ b/web/teamcloud/dist-esm/models/parameters.d.ts @@ -13,7 +13,6 @@ export declare const id: OperationURLParameter; export declare const body2: OperationParameter; export declare const deploymentScopeId: OperationURLParameter; export declare const body3: OperationParameter; -export declare const contentType1: OperationParameter; export declare const timeRange: OperationQueryParameter; export declare const commands: OperationQueryParameter; export declare const commandId: OperationURLParameter; diff --git a/web/teamcloud/dist-esm/models/parameters.d.ts.map b/web/teamcloud/dist-esm/models/parameters.d.ts.map index 4068da4d..bb2a635a 100644 --- a/web/teamcloud/dist-esm/models/parameters.d.ts.map +++ b/web/teamcloud/dist-esm/models/parameters.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/models/parameters.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAkB5B,eAAO,MAAM,MAAM,EAAE,kBAUpB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,qBAUnB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,uBASrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,qBAS5B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,qBASvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,kBAUzB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,kBAGlB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,qBASzB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,qBASpB,CAAC;AAEF,eAAO,MAAM,EAAE,EAAE,qBAShB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAS/B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,kBAU1B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,uBAQvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,uBAatB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,qBASvB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,uBASpB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,qBASpB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAS/B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBASpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,qBASpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBAGpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAS/B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBAGpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBAGpB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,qBASxB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBAGpB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,qBASxB,CAAC"} \ No newline at end of file +{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/models/parameters.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAkB5B,eAAO,MAAM,MAAM,EAAE,kBAUpB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,qBAUnB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,uBASrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,qBAS5B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,qBASvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,kBAUzB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,kBAGlB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,qBASzB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,qBASpB,CAAC;AAEF,eAAO,MAAM,EAAE,EAAE,qBAShB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAS/B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,uBAQvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,uBAatB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,qBASvB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,uBASpB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,qBASpB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAS/B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,kBAGnB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBASpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,qBASpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBAGpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,qBAS/B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBAGpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBAGpB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,qBASxB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,kBAGpB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,qBASxB,CAAC"} \ No newline at end of file diff --git a/web/teamcloud/dist-esm/models/parameters.js b/web/teamcloud/dist-esm/models/parameters.js index ee0e3b85..7331b78a 100644 --- a/web/teamcloud/dist-esm/models/parameters.js +++ b/web/teamcloud/dist-esm/models/parameters.js @@ -125,17 +125,6 @@ export const body3 = { parameterPath: ["options", "body"], mapper: DeploymentScopeMapper }; -export const contentType1 = { - parameterPath: ["options", "contentType"], - mapper: { - defaultValue: "application/json-patch+json", - isConstant: true, - serializedName: "Content-Type", - type: { - name: "String" - } - } -}; export const timeRange = { parameterPath: ["options", "timeRange"], mapper: { diff --git a/web/teamcloud/dist-esm/models/parameters.js.map b/web/teamcloud/dist-esm/models/parameters.js.map index bc194923..9d8ae008 100644 --- a/web/teamcloud/dist-esm/models/parameters.js.map +++ b/web/teamcloud/dist-esm/models/parameters.js.map @@ -1 +1 @@ -{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/models/parameters.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/models/parameters.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/web/teamcloud/dist-esm/teamCloud.d.ts b/web/teamcloud/dist-esm/teamCloud.d.ts index ec8f38d6..0de4e236 100644 --- a/web/teamcloud/dist-esm/teamCloud.d.ts +++ b/web/teamcloud/dist-esm/teamCloud.d.ts @@ -1,6 +1,6 @@ import * as coreAuth from "@azure/core-auth"; import { TeamCloudContext } from "./teamCloudContext"; -import { TeamCloudOptionalParams, TeamCloudGetAdaptersOptionalParams, TeamCloudGetAdaptersResponse, TeamCloudGetComponentsOptionalParams, TeamCloudGetComponentsResponse, TeamCloudCreateComponentOptionalParams, TeamCloudCreateComponentResponse, TeamCloudGetComponentOptionalParams, TeamCloudGetComponentResponse, TeamCloudDeleteComponentOptionalParams, TeamCloudDeleteComponentResponse, TeamCloudGetComponentTasksOptionalParams, TeamCloudGetComponentTasksResponse, TeamCloudCreateComponentTaskOptionalParams, TeamCloudCreateComponentTaskResponse, TeamCloudGetComponentTaskOptionalParams, TeamCloudGetComponentTaskResponse, TeamCloudCancelComponentTaskOptionalParams, TeamCloudCancelComponentTaskResponse, TeamCloudReRunComponentTaskOptionalParams, TeamCloudReRunComponentTaskResponse, TeamCloudGetComponentTemplatesOptionalParams, TeamCloudGetComponentTemplatesResponse, TeamCloudGetComponentTemplateOptionalParams, TeamCloudGetComponentTemplateResponse, TeamCloudGetDeploymentScopesOptionalParams, TeamCloudGetDeploymentScopesResponse, TeamCloudCreateDeploymentScopeOptionalParams, TeamCloudCreateDeploymentScopeResponse, TeamCloudGetDeploymentScopeOptionalParams, TeamCloudGetDeploymentScopeResponse, TeamCloudUpdateDeploymentScopeOptionalParams, TeamCloudUpdateDeploymentScopeResponse, TeamCloudDeleteDeploymentScopeOptionalParams, TeamCloudDeleteDeploymentScopeResponse, TeamCloudAuthorizeDeploymentScopeOptionalParams, TeamCloudAuthorizeDeploymentScopeResponse, TeamCloudNegotiateSignalROptionalParams, TeamCloudGetAuditEntriesOptionalParams, TeamCloudGetAuditEntriesResponse, TeamCloudGetAuditEntryOptionalParams, TeamCloudGetAuditEntryResponse, TeamCloudGetAuditCommandsOptionalParams, TeamCloudGetAuditCommandsResponse, TeamCloudGetOrganizationsOptionalParams, TeamCloudGetOrganizationsResponse, TeamCloudCreateOrganizationOptionalParams, TeamCloudCreateOrganizationResponse, TeamCloudGetOrganizationOptionalParams, TeamCloudGetOrganizationResponse, TeamCloudDeleteOrganizationOptionalParams, TeamCloudDeleteOrganizationResponse, TeamCloudGetOrganizationUsersOptionalParams, TeamCloudGetOrganizationUsersResponse, TeamCloudCreateOrganizationUserOptionalParams, TeamCloudCreateOrganizationUserResponse, TeamCloudGetOrganizationUserOptionalParams, TeamCloudGetOrganizationUserResponse, TeamCloudUpdateOrganizationUserOptionalParams, TeamCloudUpdateOrganizationUserResponse, TeamCloudDeleteOrganizationUserOptionalParams, TeamCloudDeleteOrganizationUserResponse, TeamCloudGetOrganizationUserMeOptionalParams, TeamCloudGetOrganizationUserMeResponse, TeamCloudUpdateOrganizationUserMeOptionalParams, TeamCloudUpdateOrganizationUserMeResponse, TeamCloudGetProjectsOptionalParams, TeamCloudGetProjectsResponse, TeamCloudCreateProjectOptionalParams, TeamCloudCreateProjectResponse, TeamCloudGetProjectOptionalParams, TeamCloudGetProjectResponse, TeamCloudDeleteProjectOptionalParams, TeamCloudDeleteProjectResponse, TeamCloudGetProjectIdentitiesOptionalParams, TeamCloudGetProjectIdentitiesResponse, TeamCloudCreateProjectIdentityOptionalParams, TeamCloudCreateProjectIdentityResponse, TeamCloudGetProjectIdentityOptionalParams, TeamCloudGetProjectIdentityResponse, TeamCloudUpdateProjectIdentityOptionalParams, TeamCloudUpdateProjectIdentityResponse, TeamCloudDeleteProjectIdentityOptionalParams, TeamCloudDeleteProjectIdentityResponse, TeamCloudGetProjectTagsOptionalParams, TeamCloudGetProjectTagsResponse, TeamCloudCreateProjectTagOptionalParams, TeamCloudCreateProjectTagResponse, TeamCloudUpdateProjectTagOptionalParams, TeamCloudUpdateProjectTagResponse, TeamCloudGetProjectTagByKeyOptionalParams, TeamCloudGetProjectTagByKeyResponse, TeamCloudDeleteProjectTagOptionalParams, TeamCloudDeleteProjectTagResponse, TeamCloudGetProjectTemplatesOptionalParams, TeamCloudGetProjectTemplatesResponse, TeamCloudCreateProjectTemplateOptionalParams, TeamCloudCreateProjectTemplateResponse, TeamCloudGetProjectTemplateOptionalParams, TeamCloudGetProjectTemplateResponse, TeamCloudUpdateProjectTemplateOptionalParams, TeamCloudUpdateProjectTemplateResponse, TeamCloudDeleteProjectTemplateOptionalParams, TeamCloudDeleteProjectTemplateResponse, TeamCloudGetProjectUsersOptionalParams, TeamCloudGetProjectUsersResponse, TeamCloudCreateProjectUserOptionalParams, TeamCloudCreateProjectUserResponse, TeamCloudGetProjectUserOptionalParams, TeamCloudGetProjectUserResponse, TeamCloudUpdateProjectUserOptionalParams, TeamCloudUpdateProjectUserResponse, TeamCloudDeleteProjectUserOptionalParams, TeamCloudDeleteProjectUserResponse, TeamCloudGetProjectUserMeOptionalParams, TeamCloudGetProjectUserMeResponse, TeamCloudUpdateProjectUserMeOptionalParams, TeamCloudUpdateProjectUserMeResponse, TeamCloudGetSchedulesOptionalParams, TeamCloudGetSchedulesResponse, TeamCloudCreateScheduleOptionalParams, TeamCloudCreateScheduleResponse, TeamCloudGetScheduleOptionalParams, TeamCloudGetScheduleResponse, TeamCloudUpdateScheduleOptionalParams, TeamCloudUpdateScheduleResponse, TeamCloudRunScheduleOptionalParams, TeamCloudRunScheduleResponse, TeamCloudGetStatusOptionalParams, TeamCloudGetStatusResponse, TeamCloudGetProjectStatusOptionalParams, TeamCloudGetProjectStatusResponse, TeamCloudGetUserProjectsOptionalParams, TeamCloudGetUserProjectsResponse, TeamCloudGetUserProjectsMeOptionalParams, TeamCloudGetUserProjectsMeResponse } from "./models"; +import { TeamCloudOptionalParams, TeamCloudGetAdaptersOptionalParams, TeamCloudGetAdaptersResponse, TeamCloudGetComponentsOptionalParams, TeamCloudGetComponentsResponse, TeamCloudCreateComponentOptionalParams, TeamCloudCreateComponentResponse, TeamCloudGetComponentOptionalParams, TeamCloudGetComponentResponse, TeamCloudDeleteComponentOptionalParams, TeamCloudDeleteComponentResponse, TeamCloudGetComponentTasksOptionalParams, TeamCloudGetComponentTasksResponse, TeamCloudCreateComponentTaskOptionalParams, TeamCloudCreateComponentTaskResponse, TeamCloudGetComponentTaskOptionalParams, TeamCloudGetComponentTaskResponse, TeamCloudCancelComponentTaskOptionalParams, TeamCloudCancelComponentTaskResponse, TeamCloudReRunComponentTaskOptionalParams, TeamCloudReRunComponentTaskResponse, TeamCloudGetComponentTemplatesOptionalParams, TeamCloudGetComponentTemplatesResponse, TeamCloudGetComponentTemplateOptionalParams, TeamCloudGetComponentTemplateResponse, TeamCloudGetDeploymentScopesOptionalParams, TeamCloudGetDeploymentScopesResponse, TeamCloudCreateDeploymentScopeOptionalParams, TeamCloudCreateDeploymentScopeResponse, TeamCloudGetDeploymentScopeOptionalParams, TeamCloudGetDeploymentScopeResponse, TeamCloudUpdateDeploymentScopeOptionalParams, TeamCloudUpdateDeploymentScopeResponse, TeamCloudDeleteDeploymentScopeOptionalParams, TeamCloudDeleteDeploymentScopeResponse, TeamCloudInitializeAuthorizationOptionalParams, TeamCloudInitializeAuthorizationResponse, TeamCloudNegotiateSignalROptionalParams, TeamCloudGetAuditEntriesOptionalParams, TeamCloudGetAuditEntriesResponse, TeamCloudGetAuditEntryOptionalParams, TeamCloudGetAuditEntryResponse, TeamCloudGetAuditCommandsOptionalParams, TeamCloudGetAuditCommandsResponse, TeamCloudGetOrganizationsOptionalParams, TeamCloudGetOrganizationsResponse, TeamCloudCreateOrganizationOptionalParams, TeamCloudCreateOrganizationResponse, TeamCloudGetOrganizationOptionalParams, TeamCloudGetOrganizationResponse, TeamCloudDeleteOrganizationOptionalParams, TeamCloudDeleteOrganizationResponse, TeamCloudGetOrganizationUsersOptionalParams, TeamCloudGetOrganizationUsersResponse, TeamCloudCreateOrganizationUserOptionalParams, TeamCloudCreateOrganizationUserResponse, TeamCloudGetOrganizationUserOptionalParams, TeamCloudGetOrganizationUserResponse, TeamCloudUpdateOrganizationUserOptionalParams, TeamCloudUpdateOrganizationUserResponse, TeamCloudDeleteOrganizationUserOptionalParams, TeamCloudDeleteOrganizationUserResponse, TeamCloudGetOrganizationUserMeOptionalParams, TeamCloudGetOrganizationUserMeResponse, TeamCloudUpdateOrganizationUserMeOptionalParams, TeamCloudUpdateOrganizationUserMeResponse, TeamCloudGetProjectsOptionalParams, TeamCloudGetProjectsResponse, TeamCloudCreateProjectOptionalParams, TeamCloudCreateProjectResponse, TeamCloudGetProjectOptionalParams, TeamCloudGetProjectResponse, TeamCloudDeleteProjectOptionalParams, TeamCloudDeleteProjectResponse, TeamCloudGetProjectIdentitiesOptionalParams, TeamCloudGetProjectIdentitiesResponse, TeamCloudCreateProjectIdentityOptionalParams, TeamCloudCreateProjectIdentityResponse, TeamCloudGetProjectIdentityOptionalParams, TeamCloudGetProjectIdentityResponse, TeamCloudUpdateProjectIdentityOptionalParams, TeamCloudUpdateProjectIdentityResponse, TeamCloudDeleteProjectIdentityOptionalParams, TeamCloudDeleteProjectIdentityResponse, TeamCloudGetProjectTagsOptionalParams, TeamCloudGetProjectTagsResponse, TeamCloudCreateProjectTagOptionalParams, TeamCloudCreateProjectTagResponse, TeamCloudUpdateProjectTagOptionalParams, TeamCloudUpdateProjectTagResponse, TeamCloudGetProjectTagByKeyOptionalParams, TeamCloudGetProjectTagByKeyResponse, TeamCloudDeleteProjectTagOptionalParams, TeamCloudDeleteProjectTagResponse, TeamCloudGetProjectTemplatesOptionalParams, TeamCloudGetProjectTemplatesResponse, TeamCloudCreateProjectTemplateOptionalParams, TeamCloudCreateProjectTemplateResponse, TeamCloudGetProjectTemplateOptionalParams, TeamCloudGetProjectTemplateResponse, TeamCloudUpdateProjectTemplateOptionalParams, TeamCloudUpdateProjectTemplateResponse, TeamCloudDeleteProjectTemplateOptionalParams, TeamCloudDeleteProjectTemplateResponse, TeamCloudGetProjectUsersOptionalParams, TeamCloudGetProjectUsersResponse, TeamCloudCreateProjectUserOptionalParams, TeamCloudCreateProjectUserResponse, TeamCloudGetProjectUserOptionalParams, TeamCloudGetProjectUserResponse, TeamCloudUpdateProjectUserOptionalParams, TeamCloudUpdateProjectUserResponse, TeamCloudDeleteProjectUserOptionalParams, TeamCloudDeleteProjectUserResponse, TeamCloudGetProjectUserMeOptionalParams, TeamCloudGetProjectUserMeResponse, TeamCloudUpdateProjectUserMeOptionalParams, TeamCloudUpdateProjectUserMeResponse, TeamCloudGetSchedulesOptionalParams, TeamCloudGetSchedulesResponse, TeamCloudCreateScheduleOptionalParams, TeamCloudCreateScheduleResponse, TeamCloudGetScheduleOptionalParams, TeamCloudGetScheduleResponse, TeamCloudUpdateScheduleOptionalParams, TeamCloudUpdateScheduleResponse, TeamCloudRunScheduleOptionalParams, TeamCloudRunScheduleResponse, TeamCloudGetStatusOptionalParams, TeamCloudGetStatusResponse, TeamCloudGetProjectStatusOptionalParams, TeamCloudGetProjectStatusResponse, TeamCloudGetUserProjectsOptionalParams, TeamCloudGetUserProjectsResponse, TeamCloudGetUserProjectsMeOptionalParams, TeamCloudGetUserProjectsMeResponse } from "./models"; export declare class TeamCloud extends TeamCloudContext { /** * Initializes a new instance of the TeamCloud class. @@ -116,32 +116,32 @@ export declare class TeamCloud extends TeamCloudContext { createDeploymentScope(organizationId: string, options?: TeamCloudCreateDeploymentScopeOptionalParams): Promise; /** * Gets a Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ - getDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudGetDeploymentScopeOptionalParams): Promise; + getDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudGetDeploymentScopeOptionalParams): Promise; /** * Updates an existing Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ - updateDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudUpdateDeploymentScopeOptionalParams): Promise; + updateDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudUpdateDeploymentScopeOptionalParams): Promise; /** * Deletes a Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ - deleteDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudDeleteDeploymentScopeOptionalParams): Promise; + deleteDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudDeleteDeploymentScopeOptionalParams): Promise; /** - * Authorize an existing Deployment Scope. + * Initialize a new authorization session for a deployment scope. * @param organizationId * @param deploymentScopeId * @param options The options parameters. */ - authorizeDeploymentScope(organizationId: string, deploymentScopeId: string | null, options?: TeamCloudAuthorizeDeploymentScopeOptionalParams): Promise; + initializeAuthorization(organizationId: string, deploymentScopeId: string, options?: TeamCloudInitializeAuthorizationOptionalParams): Promise; /** * Negotiates the SignalR connection. * @param organizationId diff --git a/web/teamcloud/dist-esm/teamCloud.d.ts.map b/web/teamcloud/dist-esm/teamCloud.d.ts.map index e0ce44a8..c457f9db 100644 --- a/web/teamcloud/dist-esm/teamCloud.d.ts.map +++ b/web/teamcloud/dist-esm/teamCloud.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"teamCloud.d.ts","sourceRoot":"","sources":["../src/teamCloud.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"teamCloud.d.ts","sourceRoot":"","sources":["../src/teamCloud.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/web/teamcloud/dist-esm/teamCloud.js b/web/teamcloud/dist-esm/teamCloud.js index bcd28c73..8d7199bf 100644 --- a/web/teamcloud/dist-esm/teamCloud.js +++ b/web/teamcloud/dist-esm/teamCloud.js @@ -154,39 +154,39 @@ export class TeamCloud extends TeamCloudContext { } /** * Gets a Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ - getDeploymentScope(deploymentScopeId, organizationId, options) { - return this.sendOperationRequest({ deploymentScopeId, organizationId, options }, getDeploymentScopeOperationSpec); + getDeploymentScope(organizationId, deploymentScopeId, options) { + return this.sendOperationRequest({ organizationId, deploymentScopeId, options }, getDeploymentScopeOperationSpec); } /** * Updates an existing Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ - updateDeploymentScope(deploymentScopeId, organizationId, options) { - return this.sendOperationRequest({ deploymentScopeId, organizationId, options }, updateDeploymentScopeOperationSpec); + updateDeploymentScope(organizationId, deploymentScopeId, options) { + return this.sendOperationRequest({ organizationId, deploymentScopeId, options }, updateDeploymentScopeOperationSpec); } /** * Deletes a Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ - deleteDeploymentScope(deploymentScopeId, organizationId, options) { - return this.sendOperationRequest({ deploymentScopeId, organizationId, options }, deleteDeploymentScopeOperationSpec); + deleteDeploymentScope(organizationId, deploymentScopeId, options) { + return this.sendOperationRequest({ organizationId, deploymentScopeId, options }, deleteDeploymentScopeOperationSpec); } /** - * Authorize an existing Deployment Scope. + * Initialize a new authorization session for a deployment scope. * @param organizationId * @param deploymentScopeId * @param options The options parameters. */ - authorizeDeploymentScope(organizationId, deploymentScopeId, options) { - return this.sendOperationRequest({ organizationId, deploymentScopeId, options }, authorizeDeploymentScopeOperationSpec); + initializeAuthorization(organizationId, deploymentScopeId, options) { + return this.sendOperationRequest({ organizationId, deploymentScopeId, options }, initializeAuthorizationOperationSpec); } /** * Negotiates the SignalR connection. @@ -1067,9 +1067,9 @@ const deleteDeploymentScopeOperationSpec = { headerParameters: [Parameters.accept], serializer }; -const authorizeDeploymentScopeOperationSpec = { - path: "/orgs/{organizationId}/scopes/{deploymentScopeId}/authorize", - httpMethod: "PUT", +const initializeAuthorizationOperationSpec = { + path: "/orgs/{organizationId}/scopes/{deploymentScopeId}/authorize/initialize", + httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.DeploymentScopeDataResult @@ -1078,19 +1078,14 @@ const authorizeDeploymentScopeOperationSpec = { bodyMapper: Mappers.ErrorResult }, 401: {}, - 403: {}, - 404: { - bodyMapper: Mappers.ErrorResult - } + 403: {} }, - requestBody: Parameters.body3, urlParameters: [ Parameters.$host, Parameters.organizationId, Parameters.deploymentScopeId ], - headerParameters: [Parameters.accept, Parameters.contentType1], - mediaType: "json", + headerParameters: [Parameters.accept], serializer }; const negotiateSignalROperationSpec = { diff --git a/web/teamcloud/dist-esm/teamCloud.js.map b/web/teamcloud/dist-esm/teamCloud.js.map index 0ce07d34..cad92e02 100644 --- a/web/teamcloud/dist-esm/teamCloud.js.map +++ b/web/teamcloud/dist-esm/teamCloud.js.map @@ -1 +1 @@ -{"version":3,"file":"teamCloud.js","sourceRoot":"","sources":["../src/teamCloud.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA4ItD,MAAM,OAAO,SAAU,SAAQ,gBAAgB;IAC7C;;;;;OAKG;IACH,YACE,WAAqC,EACrC,KAAa,EACb,OAAiC;QAEjC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,WAAW,CACT,OAA4C;QAE5C,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;OAKG;IACH,aAAa,CACX,cAAsB,EACtB,SAAiB,EACjB,OAA8C;QAE9C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,eAAe,CACb,cAAsB,EACtB,SAAiB,EACjB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CACV,WAA0B,EAC1B,cAAsB,EACtB,SAAiB,EACjB,OAA6C;QAE7C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACnD,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CACb,WAA0B,EAC1B,cAAsB,EACtB,SAAiB,EACjB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACnD,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CACf,cAAsB,EACtB,SAAiB,EACjB,WAA0B,EAC1B,OAAkD;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EACnD,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CACjB,cAAsB,EACtB,SAAiB,EACjB,WAA0B,EAC1B,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EACnD,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB,CACd,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,WAA0B,EAC1B,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EAC3D,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,mBAAmB,CACjB,cAAsB,EACtB,SAAiB,EACjB,WAA0B,EAC1B,MAAqB,EACrB,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,EAC3D,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,kBAAkB,CAChB,cAAsB,EACtB,SAAiB,EACjB,WAA0B,EAC1B,MAAqB,EACrB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,EAC3D,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,cAAsB,EACtB,SAAiB,EACjB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAClB,EAAiB,EACjB,cAAsB,EACtB,SAAiB,EACjB,OAAqD;QAErD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC1C,iCAAiC,CAClC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CACjB,cAAsB,EACtB,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CACnB,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAChB,iBAAgC,EAChC,cAAsB,EACtB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,EAC9C,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,iBAAgC,EAChC,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,EAC9C,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,iBAAgC,EAChC,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,EAC9C,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CACtB,cAAsB,EACtB,iBAAgC,EAChC,OAAyD;QAEzD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAC9C,qCAAqC,CACtC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,cAAsB,EACtB,SAAiB,EACjB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,eAAe,CACb,cAAsB,EACtB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,aAAa,CACX,SAAiB,EACjB,cAAsB,EACtB,OAA8C;QAE9C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,EACtC,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CACd,cAAsB,EACtB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,gBAAgB,CACd,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,OAAO,EAAE,EACX,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAChB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,OAAO,EAAE,EACX,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,eAAe,CACb,cAAsB,EACtB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAChB,cAAsB,EACtB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAClB,cAAsB,EACtB,OAAqD;QAErD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,iCAAiC,CAClC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CACpB,cAAsB,EACtB,OAAuD;QAEvD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CACjB,MAAqB,EACrB,cAAsB,EACtB,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,EACnC,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,sBAAsB,CACpB,MAAqB,EACrB,cAAsB,EACtB,OAAuD;QAEvD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,EACnC,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,sBAAsB,CACpB,MAAqB,EACrB,cAAsB,EACtB,OAAuD;QAEvD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,EACnC,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CACnB,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,wBAAwB,CACtB,cAAsB,EACtB,OAAyD;QAEzD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,qCAAqC,CACtC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,WAAW,CACT,cAAsB,EACtB,OAA4C;QAE5C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,aAAa,CACX,cAAsB,EACtB,OAA8C;QAE9C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,UAAU,CACR,SAAiB,EACjB,cAAsB,EACtB,OAA2C;QAE3C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,EACtC,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,aAAa,CACX,SAAiB,EACjB,cAAsB,EACtB,OAA8C;QAE9C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,EACtC,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAClB,cAAsB,EACtB,SAAiB,EACjB,OAAqD;QAErD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,iCAAiC,CAClC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,cAAsB,EACtB,SAAiB,EACjB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,iBAAgC,EAChC,cAAsB,EACtB,SAAiB,EACjB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACzD,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CACnB,iBAAgC,EAChC,cAAsB,EACtB,SAAiB,EACjB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACzD,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CACnB,iBAAgC,EAChC,cAAsB,EACtB,SAAiB,EACjB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACzD,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,cAAc,CACZ,cAAsB,EACtB,SAAiB,EACjB,OAA+C;QAE/C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,cAAsB,EACtB,SAAiB,EACjB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,cAAsB,EACtB,SAAiB,EACjB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9C,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CACd,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9C,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CACjB,cAAsB,EACtB,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CACnB,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAChB,iBAAgC,EAChC,cAAsB,EACtB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,EAC9C,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,iBAAgC,EAChC,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,EAC9C,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,iBAAgC,EAChC,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,EAC9C,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,eAAe,CACb,cAAsB,EACtB,SAAiB,EACjB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CACf,cAAsB,EACtB,SAAiB,EACjB,OAAkD;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CACZ,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAA+C;QAE/C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9C,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CACf,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAAkD;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9C,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CACf,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAAkD;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9C,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,cAAsB,EACtB,SAAiB,EACjB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CACjB,cAAsB,EACtB,SAAiB,EACjB,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,YAAY,CACV,cAAsB,EACtB,SAAiB,EACjB,OAA6C;QAE7C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,cAAc,CACZ,cAAsB,EACtB,SAAiB,EACjB,OAA+C;QAE/C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CACT,UAAyB,EACzB,cAAsB,EACtB,SAAiB,EACjB,OAA4C;QAE5C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAClD,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CACZ,UAAyB,EACzB,cAAsB,EACtB,SAAiB,EACjB,OAA+C;QAE/C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAClD,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CACT,UAAyB,EACzB,cAAsB,EACtB,SAAiB,EACjB,OAA4C;QAE5C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAClD,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,SAAS,CACP,UAAkB,EAClB,cAAsB,EACtB,OAA0C;QAE1C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,EACvC,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CACd,SAAiB,EACjB,UAAkB,EAClB,cAAsB,EACtB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,EAClD,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,eAAe,CACb,cAAsB,EACtB,MAAqB,EACrB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,EACnC,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CACf,cAAsB,EACtB,OAAkD;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,8BAA8B,CAC/B,CAAC;IACJ,CAAC;CACF;AACD,2BAA2B;AAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AAE3E,MAAM,wBAAwB,GAA6B;IACzD,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,gCAAgC;SACrD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;IACjC,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,0BAA0B,GAA6B;IAC3D,IAAI,EAAE,wDAAwD;IAC9D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,uBAAuB;SAC5C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,eAAe,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;IACrC,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,wDAAwD;IAC9D,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,mBAAmB;SACxC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,IAAI;IAC5B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,yBAAyB,GAA6B;IAC1D,IAAI,EAAE,sEAAsE;IAC5E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,mBAAmB;SACxC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;KACvB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,sEAAsE;IAC5E,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,mBAAmB;SACxC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;KACvB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,8BAA8B,GAA6B;IAC/D,IAAI,EACF,4EAA4E;IAC9E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,2BAA2B;SAChD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;KACvB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EACF,4EAA4E;IAC9E,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,uBAAuB;SAC5C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;KACvB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EACF,qFAAqF;IACvF,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,uBAAuB;SAC5C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EACF,4FAA4F;IAC9F,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,uBAAuB;SAC5C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EACF,2FAA2F;IAC7F,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,uBAAuB;SAC5C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,uDAAuD;IAC7D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,+BAA+B;SACpD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,iCAAiC,GAA6B;IAClE,IAAI,EAAE,4DAA4D;IAClE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,2BAA2B;SAChD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,EAAE;KACd;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EAAE,+BAA+B;IACrC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,6BAA6B;SAClD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,+BAA+B;IACrC,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EAAE,mDAAmD;IACzD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,mDAAmD;IACzD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,mDAAmD;IACzD,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,qCAAqC,GAA6B;IACtE,IAAI,EAAE,6DAA6D;IACnE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC;IAC9D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,uDAAuD;IAC7D,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IACxC,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,8BAA8B;IACpC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,gCAAgC;SACrD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,eAAe,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC;IAC5D,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,0BAA0B,GAA6B;IAC3D,IAAI,EAAE,0CAA0C;IAChD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,4BAA4B;SACjD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,eAAe,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACpC,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,uCAAuC;IAC7C,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,oBAAoB;SACzC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,0BAA0B;SAC/C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;IACjC,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,sBAAsB;SAC3C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;IACjC,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,wBAAwB;IAC9B,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,sBAAsB;SAC3C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EAAE,wBAAwB;IAC9B,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,iCAAiC,GAA6B;IAClE,IAAI,EAAE,8BAA8B;IACpC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,mCAAmC,GAA6B;IACpE,IAAI,EAAE,8BAA8B;IACpC,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EAAE,uCAAuC;IAC7C,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,mCAAmC,GAA6B;IACpE,IAAI,EAAE,uCAAuC;IAC7C,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,mCAAmC,GAA6B;IACpE,IAAI,EAAE,uCAAuC;IAC7C,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,2BAA2B;IACjC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,qCAAqC,GAA6B;IACtE,IAAI,EAAE,2BAA2B;IACjC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,wBAAwB,GAA6B;IACzD,IAAI,EAAE,iCAAiC;IACvC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,qBAAqB;SAC1C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,0BAA0B,GAA6B;IAC3D,IAAI,EAAE,iCAAiC;IACvC,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,iBAAiB;SACtC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,uBAAuB,GAA6B;IACxD,IAAI,EAAE,6CAA6C;IACnD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,iBAAiB;SACtC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,0BAA0B,GAA6B;IAC3D,IAAI,EAAE,6CAA6C;IACnD,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,iCAAiC,GAA6B;IAClE,IAAI,EAAE,wDAAwD;IAC9D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,6BAA6B;SAClD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,wDAAwD;IAC9D,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EACF,4EAA4E;IAC9E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EACF,4EAA4E;IAC9E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EACF,4EAA4E;IAC9E,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,2BAA2B,GAA6B;IAC5D,IAAI,EAAE,kDAAkD;IACxD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,0BAA0B;SAC/C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,kDAAkD;IACxD,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,kDAAkD;IACxD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EAAE,2DAA2D;IACjE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,0BAA0B;SAC/C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,2DAA2D;IACjE,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EAAE,kCAAkC;IACxC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,6BAA6B;SAClD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,kCAAkC;IACxC,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EAAE,sDAAsD;IAC5D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,sDAAsD;IAC5D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,sDAAsD;IAC5D,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,mDAAmD;IACzD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,8BAA8B,GAA6B;IAC/D,IAAI,EAAE,mDAAmD;IACzD,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,2BAA2B,GAA6B;IAC5D,IAAI,EAAE,4DAA4D;IAClE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,8BAA8B,GAA6B;IAC/D,IAAI,EAAE,4DAA4D;IAClE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,8BAA8B,GAA6B;IAC/D,IAAI,EAAE,4DAA4D;IAClE,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,sDAAsD;IAC5D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EAAE,sDAAsD;IAC5D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,yBAAyB,GAA6B;IAC1D,IAAI,EAAE,uDAAuD;IAC7D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,sBAAsB;SAC3C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,2BAA2B,GAA6B;IAC5D,IAAI,EAAE,uDAAuD;IAC7D,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,wBAAwB,GAA6B;IACzD,IAAI,EAAE,oEAAoE;IAC1E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,UAAU;KACtB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,2BAA2B,GAA6B;IAC5D,IAAI,EAAE,oEAAoE;IAC1E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,UAAU;KACtB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,wBAAwB,GAA6B;IACzD,IAAI,EACF,wEAAwE;IAC1E,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,UAAU;KACtB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,sBAAsB,GAA6B;IACvD,IAAI,EAAE,4CAA4C;IAClD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,UAAU;KACtB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,iEAAiE;IACvE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,UAAU;KACtB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,gDAAgD;IACtD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,qBAAqB;SAC1C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,8BAA8B,GAA6B;IAC/D,IAAI,EAAE,oCAAoC;IAC1C,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,qBAAqB;SAC1C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC"} \ No newline at end of file +{"version":3,"file":"teamCloud.js","sourceRoot":"","sources":["../src/teamCloud.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA4ItD,MAAM,OAAO,SAAU,SAAQ,gBAAgB;IAC7C;;;;;OAKG;IACH,YACE,WAAqC,EACrC,KAAa,EACb,OAAiC;QAEjC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,WAAW,CACT,OAA4C;QAE5C,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;OAKG;IACH,aAAa,CACX,cAAsB,EACtB,SAAiB,EACjB,OAA8C;QAE9C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,eAAe,CACb,cAAsB,EACtB,SAAiB,EACjB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CACV,WAA0B,EAC1B,cAAsB,EACtB,SAAiB,EACjB,OAA6C;QAE7C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACnD,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CACb,WAA0B,EAC1B,cAAsB,EACtB,SAAiB,EACjB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACnD,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CACf,cAAsB,EACtB,SAAiB,EACjB,WAA0B,EAC1B,OAAkD;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EACnD,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CACjB,cAAsB,EACtB,SAAiB,EACjB,WAA0B,EAC1B,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EACnD,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB,CACd,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,WAA0B,EAC1B,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EAC3D,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,mBAAmB,CACjB,cAAsB,EACtB,SAAiB,EACjB,WAA0B,EAC1B,MAAqB,EACrB,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,EAC3D,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,kBAAkB,CAChB,cAAsB,EACtB,SAAiB,EACjB,WAA0B,EAC1B,MAAqB,EACrB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,EAC3D,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,cAAsB,EACtB,SAAiB,EACjB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAClB,EAAiB,EACjB,cAAsB,EACtB,SAAiB,EACjB,OAAqD;QAErD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC1C,iCAAiC,CAClC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CACjB,cAAsB,EACtB,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CACnB,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAChB,cAAsB,EACtB,iBAAyB,EACzB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAC9C,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,cAAsB,EACtB,iBAAyB,EACzB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAC9C,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,cAAsB,EACtB,iBAAyB,EACzB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAC9C,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,uBAAuB,CACrB,cAAsB,EACtB,iBAAyB,EACzB,OAAwD;QAExD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAC9C,oCAAoC,CACrC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,cAAsB,EACtB,SAAiB,EACjB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,eAAe,CACb,cAAsB,EACtB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,aAAa,CACX,SAAiB,EACjB,cAAsB,EACtB,OAA8C;QAE9C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,EACtC,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CACd,cAAsB,EACtB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,gBAAgB,CACd,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,OAAO,EAAE,EACX,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAChB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,OAAO,EAAE,EACX,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,eAAe,CACb,cAAsB,EACtB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAChB,cAAsB,EACtB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAClB,cAAsB,EACtB,OAAqD;QAErD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,iCAAiC,CAClC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CACpB,cAAsB,EACtB,OAAuD;QAEvD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CACjB,MAAqB,EACrB,cAAsB,EACtB,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,EACnC,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,sBAAsB,CACpB,MAAqB,EACrB,cAAsB,EACtB,OAAuD;QAEvD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,EACnC,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,sBAAsB,CACpB,MAAqB,EACrB,cAAsB,EACtB,OAAuD;QAEvD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,EACnC,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CACnB,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,wBAAwB,CACtB,cAAsB,EACtB,OAAyD;QAEzD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,qCAAqC,CACtC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,WAAW,CACT,cAAsB,EACtB,OAA4C;QAE5C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,aAAa,CACX,cAAsB,EACtB,OAA8C;QAE9C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,UAAU,CACR,SAAiB,EACjB,cAAsB,EACtB,OAA2C;QAE3C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,EACtC,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,aAAa,CACX,SAAiB,EACjB,cAAsB,EACtB,OAA8C;QAE9C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,EACtC,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAClB,cAAsB,EACtB,SAAiB,EACjB,OAAqD;QAErD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,iCAAiC,CAClC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,cAAsB,EACtB,SAAiB,EACjB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,iBAAgC,EAChC,cAAsB,EACtB,SAAiB,EACjB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACzD,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CACnB,iBAAgC,EAChC,cAAsB,EACtB,SAAiB,EACjB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACzD,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CACnB,iBAAgC,EAChC,cAAsB,EACtB,SAAiB,EACjB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACzD,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,cAAc,CACZ,cAAsB,EACtB,SAAiB,EACjB,OAA+C;QAE/C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,cAAsB,EACtB,SAAiB,EACjB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,cAAsB,EACtB,SAAiB,EACjB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9C,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CACd,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9C,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CACjB,cAAsB,EACtB,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CACnB,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAChB,iBAAgC,EAChC,cAAsB,EACtB,OAAmD;QAEnD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,EAC9C,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,iBAAgC,EAChC,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,EAC9C,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,iBAAgC,EAChC,cAAsB,EACtB,OAAsD;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,EAC9C,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,eAAe,CACb,cAAsB,EACtB,SAAiB,EACjB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CACf,cAAsB,EACtB,SAAiB,EACjB,OAAkD;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CACZ,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAA+C;QAE/C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9C,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CACf,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAAkD;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9C,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CACf,MAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAAkD;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAC9C,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,cAAsB,EACtB,SAAiB,EACjB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CACjB,cAAsB,EACtB,SAAiB,EACjB,OAAoD;QAEpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,YAAY,CACV,cAAsB,EACtB,SAAiB,EACjB,OAA6C;QAE7C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,cAAc,CACZ,cAAsB,EACtB,SAAiB,EACjB,OAA+C;QAE/C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EACtC,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CACT,UAAyB,EACzB,cAAsB,EACtB,SAAiB,EACjB,OAA4C;QAE5C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAClD,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CACZ,UAAyB,EACzB,cAAsB,EACtB,SAAiB,EACjB,OAA+C;QAE/C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAClD,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CACT,UAAyB,EACzB,cAAsB,EACtB,SAAiB,EACjB,OAA4C;QAE5C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,EAClD,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,SAAS,CACP,UAAkB,EAClB,cAAsB,EACtB,OAA0C;QAE1C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,EACvC,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CACd,SAAiB,EACjB,UAAkB,EAClB,cAAsB,EACtB,OAAiD;QAEjD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,EAClD,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,eAAe,CACb,cAAsB,EACtB,MAAqB,EACrB,OAAgD;QAEhD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,EACnC,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CACf,cAAsB,EACtB,OAAkD;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,EAAE,cAAc,EAAE,OAAO,EAAE,EAC3B,8BAA8B,CAC/B,CAAC;IACJ,CAAC;CACF;AACD,2BAA2B;AAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AAE3E,MAAM,wBAAwB,GAA6B;IACzD,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,gCAAgC;SACrD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;IACjC,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,0BAA0B,GAA6B;IAC3D,IAAI,EAAE,wDAAwD;IAC9D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,uBAAuB;SAC5C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,eAAe,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;IACrC,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,wDAAwD;IAC9D,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,mBAAmB;SACxC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,IAAI;IAC5B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,yBAAyB,GAA6B;IAC1D,IAAI,EAAE,sEAAsE;IAC5E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,mBAAmB;SACxC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;KACvB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,sEAAsE;IAC5E,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,mBAAmB;SACxC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;KACvB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,8BAA8B,GAA6B;IAC/D,IAAI,EACF,4EAA4E;IAC9E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,2BAA2B;SAChD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;KACvB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EACF,4EAA4E;IAC9E,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,uBAAuB;SAC5C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;KACvB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EACF,qFAAqF;IACvF,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,uBAAuB;SAC5C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EACF,4FAA4F;IAC9F,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,uBAAuB;SAC5C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EACF,2FAA2F;IAC7F,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,uBAAuB;SAC5C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,uDAAuD;IAC7D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,+BAA+B;SACpD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,iCAAiC,GAA6B;IAClE,IAAI,EAAE,4DAA4D;IAClE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,2BAA2B;SAChD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,EAAE;KACd;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EAAE,+BAA+B;IACrC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,6BAA6B;SAClD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,+BAA+B;IACrC,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EAAE,mDAAmD;IACzD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,mDAAmD;IACzD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,mDAAmD;IACzD,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,oCAAoC,GAA6B;IACrE,IAAI,EACF,wEAAwE;IAC1E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,uDAAuD;IAC7D,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IACxC,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,8BAA8B;IACpC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,gCAAgC;SACrD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,eAAe,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC;IAC5D,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,0BAA0B,GAA6B;IAC3D,IAAI,EAAE,0CAA0C;IAChD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,4BAA4B;SACjD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,eAAe,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACpC,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,uCAAuC;IAC7C,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,oBAAoB;SACzC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,0BAA0B;SAC/C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;IACjC,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,sBAAsB;SAC3C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;IACjC,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,wBAAwB;IAC9B,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,sBAAsB;SAC3C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EAAE,wBAAwB;IAC9B,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,iCAAiC,GAA6B;IAClE,IAAI,EAAE,8BAA8B;IACpC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,mCAAmC,GAA6B;IACpE,IAAI,EAAE,8BAA8B;IACpC,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EAAE,uCAAuC;IAC7C,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,mCAAmC,GAA6B;IACpE,IAAI,EAAE,uCAAuC;IAC7C,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,mCAAmC,GAA6B;IACpE,IAAI,EAAE,uCAAuC;IAC7C,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,2BAA2B;IACjC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,qCAAqC,GAA6B;IACtE,IAAI,EAAE,2BAA2B;IACjC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,wBAAwB,GAA6B;IACzD,IAAI,EAAE,iCAAiC;IACvC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,qBAAqB;SAC1C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,0BAA0B,GAA6B;IAC3D,IAAI,EAAE,iCAAiC;IACvC,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,iBAAiB;SACtC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,uBAAuB,GAA6B;IACxD,IAAI,EAAE,6CAA6C;IACnD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,iBAAiB;SACtC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,0BAA0B,GAA6B;IAC3D,IAAI,EAAE,6CAA6C;IACnD,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,iCAAiC,GAA6B;IAClE,IAAI,EAAE,wDAAwD;IAC9D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,6BAA6B;SAClD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,wDAAwD;IAC9D,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EACF,4EAA4E;IAC9E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EACF,4EAA4E;IAC9E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EACF,4EAA4E;IAC9E,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,2BAA2B,GAA6B;IAC5D,IAAI,EAAE,kDAAkD;IACxD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,0BAA0B;SAC/C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,kDAAkD;IACxD,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,kDAAkD;IACxD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EAAE,2DAA2D;IACjE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,0BAA0B;SAC/C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,2DAA2D;IACjE,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EAAE,kCAAkC;IACxC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,6BAA6B;SAClD;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,kCAAkC;IACxC,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,+BAA+B,GAA6B;IAChE,IAAI,EAAE,sDAAsD;IAC5D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,sDAAsD;IAC5D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,kCAAkC,GAA6B;IACnE,IAAI,EAAE,sDAAsD;IAC5D,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,yBAAyB;SAC9C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,iBAAiB;KAC7B;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,mDAAmD;IACzD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,8BAA8B,GAA6B;IAC/D,IAAI,EAAE,mDAAmD;IACzD,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,2BAA2B,GAA6B;IAC5D,IAAI,EAAE,4DAA4D;IAClE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,8BAA8B,GAA6B;IAC/D,IAAI,EAAE,4DAA4D;IAClE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,8BAA8B,GAA6B;IAC/D,IAAI,EAAE,4DAA4D;IAClE,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,sDAAsD;IAC5D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,gCAAgC,GAA6B;IACjE,IAAI,EAAE,sDAAsD;IAC5D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,cAAc;SACnC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,KAAK;IAC7B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,yBAAyB,GAA6B;IAC1D,IAAI,EAAE,uDAAuD;IAC7D,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,sBAAsB;SAC3C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,2BAA2B,GAA6B;IAC5D,IAAI,EAAE,uDAAuD;IAC7D,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;KACrB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,wBAAwB,GAA6B;IACzD,IAAI,EAAE,oEAAoE;IAC1E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,UAAU;KACtB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,2BAA2B,GAA6B;IAC5D,IAAI,EAAE,oEAAoE;IAC1E,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,WAAW,EAAE,UAAU,CAAC,MAAM;IAC9B,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,UAAU;KACtB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7D,SAAS,EAAE,MAAM;IACjB,UAAU;CACX,CAAC;AACF,MAAM,wBAAwB,GAA6B;IACzD,IAAI,EACF,wEAAwE;IAC1E,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,kBAAkB;SACvC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,UAAU;KACtB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,sBAAsB,GAA6B;IACvD,IAAI,EAAE,4CAA4C;IAClD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,UAAU;KACtB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,6BAA6B,GAA6B;IAC9D,IAAI,EAAE,iEAAiE;IACvE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,YAAY;SACjC;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,UAAU;KACtB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,4BAA4B,GAA6B;IAC7D,IAAI,EAAE,gDAAgD;IACtD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,qBAAqB;SAC1C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE;QACb,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,MAAM;KAClB;IACD,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC;AACF,MAAM,8BAA8B,GAA6B;IAC/D,IAAI,EAAE,oCAAoC;IAC1C,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,qBAAqB;SAC1C;QACD,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;QACD,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,UAAU,EAAE,OAAO,CAAC,WAAW;SAChC;KACF;IACD,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC;IAC5D,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACrC,UAAU;CACX,CAAC"} \ No newline at end of file diff --git a/web/teamcloud/review/teamcloud.api.md b/web/teamcloud/review/teamcloud.api.md index 0dd3d50f..9d447db5 100644 --- a/web/teamcloud/review/teamcloud.api.md +++ b/web/teamcloud/review/teamcloud.api.md @@ -1161,7 +1161,6 @@ export interface StringListDataResult { // @public (undocumented) export class TeamCloud extends TeamCloudContext { constructor(credentials: coreAuth.TokenCredential, $host: string, options?: TeamCloudOptionalParams); - authorizeDeploymentScope(organizationId: string, deploymentScopeId: string | null, options?: TeamCloudAuthorizeDeploymentScopeOptionalParams): Promise; cancelComponentTask(organizationId: string, projectId: string, componentId: string | null, taskId: string | null, options?: TeamCloudCancelComponentTaskOptionalParams): Promise; createComponent(organizationId: string, projectId: string, options?: TeamCloudCreateComponentOptionalParams): Promise; createComponentTask(organizationId: string, projectId: string, componentId: string | null, options?: TeamCloudCreateComponentTaskOptionalParams): Promise; @@ -1175,7 +1174,7 @@ export class TeamCloud extends TeamCloudContext { createProjectUser(organizationId: string, projectId: string, options?: TeamCloudCreateProjectUserOptionalParams): Promise; createSchedule(organizationId: string, projectId: string, options?: TeamCloudCreateScheduleOptionalParams): Promise; deleteComponent(componentId: string | null, organizationId: string, projectId: string, options?: TeamCloudDeleteComponentOptionalParams): Promise; - deleteDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudDeleteDeploymentScopeOptionalParams): Promise; + deleteDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudDeleteDeploymentScopeOptionalParams): Promise; deleteOrganization(organizationId: string, options?: TeamCloudDeleteOrganizationOptionalParams): Promise; deleteOrganizationUser(userId: string | null, organizationId: string, options?: TeamCloudDeleteOrganizationUserOptionalParams): Promise; deleteProject(projectId: string, organizationId: string, options?: TeamCloudDeleteProjectOptionalParams): Promise; @@ -1193,7 +1192,7 @@ export class TeamCloud extends TeamCloudContext { getComponentTasks(organizationId: string, projectId: string, componentId: string | null, options?: TeamCloudGetComponentTasksOptionalParams): Promise; getComponentTemplate(id: string | null, organizationId: string, projectId: string, options?: TeamCloudGetComponentTemplateOptionalParams): Promise; getComponentTemplates(organizationId: string, projectId: string, options?: TeamCloudGetComponentTemplatesOptionalParams): Promise; - getDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudGetDeploymentScopeOptionalParams): Promise; + getDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudGetDeploymentScopeOptionalParams): Promise; getDeploymentScopes(organizationId: string, options?: TeamCloudGetDeploymentScopesOptionalParams): Promise; getOrganization(organizationId: string, options?: TeamCloudGetOrganizationOptionalParams): Promise; getOrganizations(options?: TeamCloudGetOrganizationsOptionalParams): Promise; @@ -1217,10 +1216,11 @@ export class TeamCloud extends TeamCloudContext { getStatus(trackingId: string, organizationId: string, options?: TeamCloudGetStatusOptionalParams): Promise; getUserProjects(organizationId: string, userId: string | null, options?: TeamCloudGetUserProjectsOptionalParams): Promise; getUserProjectsMe(organizationId: string, options?: TeamCloudGetUserProjectsMeOptionalParams): Promise; + initializeAuthorization(organizationId: string, deploymentScopeId: string, options?: TeamCloudInitializeAuthorizationOptionalParams): Promise; negotiateSignalR(organizationId: string, projectId: string, options?: TeamCloudNegotiateSignalROptionalParams): Promise; reRunComponentTask(organizationId: string, projectId: string, componentId: string | null, taskId: string | null, options?: TeamCloudReRunComponentTaskOptionalParams): Promise; runSchedule(scheduleId: string | null, organizationId: string, projectId: string, options?: TeamCloudRunScheduleOptionalParams): Promise; - updateDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudUpdateDeploymentScopeOptionalParams): Promise; + updateDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudUpdateDeploymentScopeOptionalParams): Promise; updateOrganizationUser(userId: string | null, organizationId: string, options?: TeamCloudUpdateOrganizationUserOptionalParams): Promise; updateOrganizationUserMe(organizationId: string, options?: TeamCloudUpdateOrganizationUserMeOptionalParams): Promise; updateProjectIdentity(projectIdentityId: string | null, organizationId: string, projectId: string, options?: TeamCloudUpdateProjectIdentityOptionalParams): Promise; @@ -1231,15 +1231,6 @@ export class TeamCloud extends TeamCloudContext { updateSchedule(scheduleId: string | null, organizationId: string, projectId: string, options?: TeamCloudUpdateScheduleOptionalParams): Promise; } -// @public -export interface TeamCloudAuthorizeDeploymentScopeOptionalParams extends coreClient.OperationOptions { - // (undocumented) - body?: DeploymentScope; -} - -// @public -export type TeamCloudAuthorizeDeploymentScopeResponse = DeploymentScopeDataResult; - // @public export interface TeamCloudCancelComponentTaskOptionalParams extends coreClient.OperationOptions { } @@ -1662,6 +1653,13 @@ export interface TeamCloudGetUserProjectsOptionalParams extends coreClient.Opera // @public export type TeamCloudGetUserProjectsResponse = ProjectListDataResult; +// @public +export interface TeamCloudInitializeAuthorizationOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type TeamCloudInitializeAuthorizationResponse = DeploymentScopeDataResult; + // @public export interface TeamCloudNegotiateSignalROptionalParams extends coreClient.OperationOptions { } diff --git a/web/teamcloud/src/models/index.ts b/web/teamcloud/src/models/index.ts index 0235d63b..eaeb6183 100644 --- a/web/teamcloud/src/models/index.ts +++ b/web/teamcloud/src/models/index.ts @@ -1136,13 +1136,11 @@ export interface TeamCloudDeleteDeploymentScopeOptionalParams export type TeamCloudDeleteDeploymentScopeResponse = DeploymentScopeDataResult; /** Optional parameters. */ -export interface TeamCloudAuthorizeDeploymentScopeOptionalParams - extends coreClient.OperationOptions { - body?: DeploymentScope; -} +export interface TeamCloudInitializeAuthorizationOptionalParams + extends coreClient.OperationOptions {} -/** Contains response data for the authorizeDeploymentScope operation. */ -export type TeamCloudAuthorizeDeploymentScopeResponse = DeploymentScopeDataResult; +/** Contains response data for the initializeAuthorization operation. */ +export type TeamCloudInitializeAuthorizationResponse = DeploymentScopeDataResult; /** Optional parameters. */ export interface TeamCloudNegotiateSignalROptionalParams diff --git a/web/teamcloud/src/models/parameters.ts b/web/teamcloud/src/models/parameters.ts index 234297c9..136f5d64 100644 --- a/web/teamcloud/src/models/parameters.ts +++ b/web/teamcloud/src/models/parameters.ts @@ -161,18 +161,6 @@ export const body3: OperationParameter = { mapper: DeploymentScopeMapper }; -export const contentType1: OperationParameter = { - parameterPath: ["options", "contentType"], - mapper: { - defaultValue: "application/json-patch+json", - isConstant: true, - serializedName: "Content-Type", - type: { - name: "String" - } - } -}; - export const timeRange: OperationQueryParameter = { parameterPath: ["options", "timeRange"], mapper: { diff --git a/web/teamcloud/src/teamCloud.ts b/web/teamcloud/src/teamCloud.ts index 6d3008d3..8f58b97c 100644 --- a/web/teamcloud/src/teamCloud.ts +++ b/web/teamcloud/src/teamCloud.ts @@ -47,8 +47,8 @@ import { TeamCloudUpdateDeploymentScopeResponse, TeamCloudDeleteDeploymentScopeOptionalParams, TeamCloudDeleteDeploymentScopeResponse, - TeamCloudAuthorizeDeploymentScopeOptionalParams, - TeamCloudAuthorizeDeploymentScopeResponse, + TeamCloudInitializeAuthorizationOptionalParams, + TeamCloudInitializeAuthorizationResponse, TeamCloudNegotiateSignalROptionalParams, TeamCloudGetAuditEntriesOptionalParams, TeamCloudGetAuditEntriesResponse, @@ -416,69 +416,69 @@ export class TeamCloud extends TeamCloudContext { /** * Gets a Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ getDeploymentScope( - deploymentScopeId: string | null, organizationId: string, + deploymentScopeId: string, options?: TeamCloudGetDeploymentScopeOptionalParams ): Promise { return this.sendOperationRequest( - { deploymentScopeId, organizationId, options }, + { organizationId, deploymentScopeId, options }, getDeploymentScopeOperationSpec ); } /** * Updates an existing Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ updateDeploymentScope( - deploymentScopeId: string | null, organizationId: string, + deploymentScopeId: string, options?: TeamCloudUpdateDeploymentScopeOptionalParams ): Promise { return this.sendOperationRequest( - { deploymentScopeId, organizationId, options }, + { organizationId, deploymentScopeId, options }, updateDeploymentScopeOperationSpec ); } /** * Deletes a Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ deleteDeploymentScope( - deploymentScopeId: string | null, organizationId: string, + deploymentScopeId: string, options?: TeamCloudDeleteDeploymentScopeOptionalParams ): Promise { return this.sendOperationRequest( - { deploymentScopeId, organizationId, options }, + { organizationId, deploymentScopeId, options }, deleteDeploymentScopeOperationSpec ); } /** - * Authorize an existing Deployment Scope. + * Initialize a new authorization session for a deployment scope. * @param organizationId * @param deploymentScopeId * @param options The options parameters. */ - authorizeDeploymentScope( + initializeAuthorization( organizationId: string, - deploymentScopeId: string | null, - options?: TeamCloudAuthorizeDeploymentScopeOptionalParams - ): Promise { + deploymentScopeId: string, + options?: TeamCloudInitializeAuthorizationOptionalParams + ): Promise { return this.sendOperationRequest( { organizationId, deploymentScopeId, options }, - authorizeDeploymentScopeOperationSpec + initializeAuthorizationOperationSpec ); } @@ -1761,9 +1761,10 @@ const deleteDeploymentScopeOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer }; -const authorizeDeploymentScopeOperationSpec: coreClient.OperationSpec = { - path: "/orgs/{organizationId}/scopes/{deploymentScopeId}/authorize", - httpMethod: "PUT", +const initializeAuthorizationOperationSpec: coreClient.OperationSpec = { + path: + "/orgs/{organizationId}/scopes/{deploymentScopeId}/authorize/initialize", + httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.DeploymentScopeDataResult @@ -1772,19 +1773,14 @@ const authorizeDeploymentScopeOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResult }, 401: {}, - 403: {}, - 404: { - bodyMapper: Mappers.ErrorResult - } + 403: {} }, - requestBody: Parameters.body3, urlParameters: [ Parameters.$host, Parameters.organizationId, Parameters.deploymentScopeId ], - headerParameters: [Parameters.accept, Parameters.contentType1], - mediaType: "json", + headerParameters: [Parameters.accept], serializer }; const negotiateSignalROperationSpec: coreClient.OperationSpec = { diff --git a/web/teamcloud/temp/teamcloud.api.json b/web/teamcloud/temp/teamcloud.api.json index 12627d5f..a896f5f6 100644 --- a/web/teamcloud/temp/teamcloud.api.json +++ b/web/teamcloud/temp/teamcloud.api.json @@ -11725,95 +11725,6 @@ } ] }, - { - "kind": "Method", - "canonicalReference": "teamcloud!TeamCloud#authorizeDeploymentScope:member(1)", - "docComment": "/**\n * Authorize an existing Deployment Scope.\n *\n * @param organizationId - \n *\n * @param deploymentScopeId - \n *\n * @param options - The options parameters.\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "authorizeDeploymentScope(organizationId: " - }, - { - "kind": "Content", - "text": "string" - }, - { - "kind": "Content", - "text": ", deploymentScopeId: " - }, - { - "kind": "Content", - "text": "string | null" - }, - { - "kind": "Content", - "text": ", options?: " - }, - { - "kind": "Reference", - "text": "TeamCloudAuthorizeDeploymentScopeOptionalParams", - "canonicalReference": "teamcloud!TeamCloudAuthorizeDeploymentScopeOptionalParams:interface" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Promise", - "canonicalReference": "!Promise:interface" - }, - { - "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "TeamCloudAuthorizeDeploymentScopeResponse", - "canonicalReference": "teamcloud!TeamCloudAuthorizeDeploymentScopeResponse:type" - }, - { - "kind": "Content", - "text": ">" - }, - { - "kind": "Content", - "text": ";" - } - ], - "isStatic": false, - "returnTypeTokenRange": { - "startIndex": 7, - "endIndex": 11 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "organizationId", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - } - }, - { - "parameterName": "deploymentScopeId", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - } - }, - { - "parameterName": "options", - "parameterTypeTokenRange": { - "startIndex": 5, - "endIndex": 6 - } - } - ], - "name": "authorizeDeploymentScope" - }, { "kind": "Method", "canonicalReference": "teamcloud!TeamCloud#cancelComponentTask:member(1)", @@ -12944,19 +12855,19 @@ { "kind": "Method", "canonicalReference": "teamcloud!TeamCloud#deleteDeploymentScope:member(1)", - "docComment": "/**\n * Deletes a Deployment Scope.\n *\n * @param deploymentScopeId - \n *\n * @param organizationId - \n *\n * @param options - The options parameters.\n */\n", + "docComment": "/**\n * Deletes a Deployment Scope.\n *\n * @param organizationId - \n *\n * @param deploymentScopeId - \n *\n * @param options - The options parameters.\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "deleteDeploymentScope(deploymentScopeId: " + "text": "deleteDeploymentScope(organizationId: " }, { "kind": "Content", - "text": "string | null" + "text": "string" }, { "kind": "Content", - "text": ", organizationId: " + "text": ", deploymentScopeId: " }, { "kind": "Content", @@ -13007,14 +12918,14 @@ "overloadIndex": 1, "parameters": [ { - "parameterName": "deploymentScopeId", + "parameterName": "organizationId", "parameterTypeTokenRange": { "startIndex": 1, "endIndex": 2 } }, { - "parameterName": "organizationId", + "parameterName": "deploymentScopeId", "parameterTypeTokenRange": { "startIndex": 3, "endIndex": 4 @@ -14591,19 +14502,19 @@ { "kind": "Method", "canonicalReference": "teamcloud!TeamCloud#getDeploymentScope:member(1)", - "docComment": "/**\n * Gets a Deployment Scope.\n *\n * @param deploymentScopeId - \n *\n * @param organizationId - \n *\n * @param options - The options parameters.\n */\n", + "docComment": "/**\n * Gets a Deployment Scope.\n *\n * @param organizationId - \n *\n * @param deploymentScopeId - \n *\n * @param options - The options parameters.\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "getDeploymentScope(deploymentScopeId: " + "text": "getDeploymentScope(organizationId: " }, { "kind": "Content", - "text": "string | null" + "text": "string" }, { "kind": "Content", - "text": ", organizationId: " + "text": ", deploymentScopeId: " }, { "kind": "Content", @@ -14654,14 +14565,14 @@ "overloadIndex": 1, "parameters": [ { - "parameterName": "deploymentScopeId", + "parameterName": "organizationId", "parameterTypeTokenRange": { "startIndex": 1, "endIndex": 2 } }, { - "parameterName": "organizationId", + "parameterName": "deploymentScopeId", "parameterTypeTokenRange": { "startIndex": 3, "endIndex": 4 @@ -16664,6 +16575,95 @@ ], "name": "getUserProjectsMe" }, + { + "kind": "Method", + "canonicalReference": "teamcloud!TeamCloud#initializeAuthorization:member(1)", + "docComment": "/**\n * Initialize a new authorization session for a deployment scope.\n *\n * @param organizationId - \n *\n * @param deploymentScopeId - \n *\n * @param options - The options parameters.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "initializeAuthorization(organizationId: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ", deploymentScopeId: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ", options?: " + }, + { + "kind": "Reference", + "text": "TeamCloudInitializeAuthorizationOptionalParams", + "canonicalReference": "teamcloud!TeamCloudInitializeAuthorizationOptionalParams:interface" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Reference", + "text": "Promise", + "canonicalReference": "!Promise:interface" + }, + { + "kind": "Content", + "text": "<" + }, + { + "kind": "Reference", + "text": "TeamCloudInitializeAuthorizationResponse", + "canonicalReference": "teamcloud!TeamCloudInitializeAuthorizationResponse:type" + }, + { + "kind": "Content", + "text": ">" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isStatic": false, + "returnTypeTokenRange": { + "startIndex": 7, + "endIndex": 11 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "organizationId", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "parameterName": "deploymentScopeId", + "parameterTypeTokenRange": { + "startIndex": 3, + "endIndex": 4 + } + }, + { + "parameterName": "options", + "parameterTypeTokenRange": { + "startIndex": 5, + "endIndex": 6 + } + } + ], + "name": "initializeAuthorization" + }, { "kind": "Method", "canonicalReference": "teamcloud!TeamCloud#negotiateSignalR:member(1)", @@ -16970,19 +16970,19 @@ { "kind": "Method", "canonicalReference": "teamcloud!TeamCloud#updateDeploymentScope:member(1)", - "docComment": "/**\n * Updates an existing Deployment Scope.\n *\n * @param deploymentScopeId - \n *\n * @param organizationId - \n *\n * @param options - The options parameters.\n */\n", + "docComment": "/**\n * Updates an existing Deployment Scope.\n *\n * @param organizationId - \n *\n * @param deploymentScopeId - \n *\n * @param options - The options parameters.\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "updateDeploymentScope(deploymentScopeId: " + "text": "updateDeploymentScope(organizationId: " }, { "kind": "Content", - "text": "string | null" + "text": "string" }, { "kind": "Content", - "text": ", organizationId: " + "text": ", deploymentScopeId: " }, { "kind": "Content", @@ -17033,14 +17033,14 @@ "overloadIndex": 1, "parameters": [ { - "parameterName": "deploymentScopeId", + "parameterName": "organizationId", "parameterTypeTokenRange": { "startIndex": 1, "endIndex": 2 } }, { - "parameterName": "organizationId", + "parameterName": "deploymentScopeId", "parameterTypeTokenRange": { "startIndex": 3, "endIndex": 4 @@ -17805,92 +17805,6 @@ }, "implementsTokenRanges": [] }, - { - "kind": "Interface", - "canonicalReference": "teamcloud!TeamCloudAuthorizeDeploymentScopeOptionalParams:interface", - "docComment": "/**\n * Optional parameters.\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "export interface TeamCloudAuthorizeDeploymentScopeOptionalParams extends " - }, - { - "kind": "Content", - "text": "coreClient." - }, - { - "kind": "Reference", - "text": "OperationOptions", - "canonicalReference": "@azure/core-client!OperationOptions:interface" - }, - { - "kind": "Content", - "text": " " - } - ], - "releaseTag": "Public", - "name": "TeamCloudAuthorizeDeploymentScopeOptionalParams", - "members": [ - { - "kind": "PropertySignature", - "canonicalReference": "teamcloud!TeamCloudAuthorizeDeploymentScopeOptionalParams#body:member", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "body?: " - }, - { - "kind": "Reference", - "text": "DeploymentScope", - "canonicalReference": "teamcloud!DeploymentScope:interface" - }, - { - "kind": "Content", - "text": ";" - } - ], - "releaseTag": "Public", - "name": "body", - "propertyTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - } - } - ], - "extendsTokenRanges": [ - { - "startIndex": 1, - "endIndex": 4 - } - ] - }, - { - "kind": "TypeAlias", - "canonicalReference": "teamcloud!TeamCloudAuthorizeDeploymentScopeResponse:type", - "docComment": "/**\n * Contains response data for the authorizeDeploymentScope operation.\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "export declare type TeamCloudAuthorizeDeploymentScopeResponse = " - }, - { - "kind": "Reference", - "text": "DeploymentScopeDataResult", - "canonicalReference": "teamcloud!DeploymentScopeDataResult:interface" - }, - { - "kind": "Content", - "text": ";" - } - ], - "releaseTag": "Public", - "name": "TeamCloudAuthorizeDeploymentScopeResponse", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 2 - } - }, { "kind": "Interface", "canonicalReference": "teamcloud!TeamCloudCancelComponentTaskOptionalParams:interface", @@ -21660,6 +21574,65 @@ "endIndex": 2 } }, + { + "kind": "Interface", + "canonicalReference": "teamcloud!TeamCloudInitializeAuthorizationOptionalParams:interface", + "docComment": "/**\n * Optional parameters.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export interface TeamCloudInitializeAuthorizationOptionalParams extends " + }, + { + "kind": "Content", + "text": "coreClient." + }, + { + "kind": "Reference", + "text": "OperationOptions", + "canonicalReference": "@azure/core-client!OperationOptions:interface" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "TeamCloudInitializeAuthorizationOptionalParams", + "members": [], + "extendsTokenRanges": [ + { + "startIndex": 1, + "endIndex": 4 + } + ] + }, + { + "kind": "TypeAlias", + "canonicalReference": "teamcloud!TeamCloudInitializeAuthorizationResponse:type", + "docComment": "/**\n * Contains response data for the initializeAuthorization operation.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare type TeamCloudInitializeAuthorizationResponse = " + }, + { + "kind": "Reference", + "text": "DeploymentScopeDataResult", + "canonicalReference": "teamcloud!DeploymentScopeDataResult:interface" + }, + { + "kind": "Content", + "text": ";" + } + ], + "releaseTag": "Public", + "name": "TeamCloudInitializeAuthorizationResponse", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, { "kind": "Interface", "canonicalReference": "teamcloud!TeamCloudNegotiateSignalROptionalParams:interface", diff --git a/web/teamcloud/temp/teamcloud.api.md b/web/teamcloud/temp/teamcloud.api.md index 0dd3d50f..9d447db5 100644 --- a/web/teamcloud/temp/teamcloud.api.md +++ b/web/teamcloud/temp/teamcloud.api.md @@ -1161,7 +1161,6 @@ export interface StringListDataResult { // @public (undocumented) export class TeamCloud extends TeamCloudContext { constructor(credentials: coreAuth.TokenCredential, $host: string, options?: TeamCloudOptionalParams); - authorizeDeploymentScope(organizationId: string, deploymentScopeId: string | null, options?: TeamCloudAuthorizeDeploymentScopeOptionalParams): Promise; cancelComponentTask(organizationId: string, projectId: string, componentId: string | null, taskId: string | null, options?: TeamCloudCancelComponentTaskOptionalParams): Promise; createComponent(organizationId: string, projectId: string, options?: TeamCloudCreateComponentOptionalParams): Promise; createComponentTask(organizationId: string, projectId: string, componentId: string | null, options?: TeamCloudCreateComponentTaskOptionalParams): Promise; @@ -1175,7 +1174,7 @@ export class TeamCloud extends TeamCloudContext { createProjectUser(organizationId: string, projectId: string, options?: TeamCloudCreateProjectUserOptionalParams): Promise; createSchedule(organizationId: string, projectId: string, options?: TeamCloudCreateScheduleOptionalParams): Promise; deleteComponent(componentId: string | null, organizationId: string, projectId: string, options?: TeamCloudDeleteComponentOptionalParams): Promise; - deleteDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudDeleteDeploymentScopeOptionalParams): Promise; + deleteDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudDeleteDeploymentScopeOptionalParams): Promise; deleteOrganization(organizationId: string, options?: TeamCloudDeleteOrganizationOptionalParams): Promise; deleteOrganizationUser(userId: string | null, organizationId: string, options?: TeamCloudDeleteOrganizationUserOptionalParams): Promise; deleteProject(projectId: string, organizationId: string, options?: TeamCloudDeleteProjectOptionalParams): Promise; @@ -1193,7 +1192,7 @@ export class TeamCloud extends TeamCloudContext { getComponentTasks(organizationId: string, projectId: string, componentId: string | null, options?: TeamCloudGetComponentTasksOptionalParams): Promise; getComponentTemplate(id: string | null, organizationId: string, projectId: string, options?: TeamCloudGetComponentTemplateOptionalParams): Promise; getComponentTemplates(organizationId: string, projectId: string, options?: TeamCloudGetComponentTemplatesOptionalParams): Promise; - getDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudGetDeploymentScopeOptionalParams): Promise; + getDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudGetDeploymentScopeOptionalParams): Promise; getDeploymentScopes(organizationId: string, options?: TeamCloudGetDeploymentScopesOptionalParams): Promise; getOrganization(organizationId: string, options?: TeamCloudGetOrganizationOptionalParams): Promise; getOrganizations(options?: TeamCloudGetOrganizationsOptionalParams): Promise; @@ -1217,10 +1216,11 @@ export class TeamCloud extends TeamCloudContext { getStatus(trackingId: string, organizationId: string, options?: TeamCloudGetStatusOptionalParams): Promise; getUserProjects(organizationId: string, userId: string | null, options?: TeamCloudGetUserProjectsOptionalParams): Promise; getUserProjectsMe(organizationId: string, options?: TeamCloudGetUserProjectsMeOptionalParams): Promise; + initializeAuthorization(organizationId: string, deploymentScopeId: string, options?: TeamCloudInitializeAuthorizationOptionalParams): Promise; negotiateSignalR(organizationId: string, projectId: string, options?: TeamCloudNegotiateSignalROptionalParams): Promise; reRunComponentTask(organizationId: string, projectId: string, componentId: string | null, taskId: string | null, options?: TeamCloudReRunComponentTaskOptionalParams): Promise; runSchedule(scheduleId: string | null, organizationId: string, projectId: string, options?: TeamCloudRunScheduleOptionalParams): Promise; - updateDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudUpdateDeploymentScopeOptionalParams): Promise; + updateDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudUpdateDeploymentScopeOptionalParams): Promise; updateOrganizationUser(userId: string | null, organizationId: string, options?: TeamCloudUpdateOrganizationUserOptionalParams): Promise; updateOrganizationUserMe(organizationId: string, options?: TeamCloudUpdateOrganizationUserMeOptionalParams): Promise; updateProjectIdentity(projectIdentityId: string | null, organizationId: string, projectId: string, options?: TeamCloudUpdateProjectIdentityOptionalParams): Promise; @@ -1231,15 +1231,6 @@ export class TeamCloud extends TeamCloudContext { updateSchedule(scheduleId: string | null, organizationId: string, projectId: string, options?: TeamCloudUpdateScheduleOptionalParams): Promise; } -// @public -export interface TeamCloudAuthorizeDeploymentScopeOptionalParams extends coreClient.OperationOptions { - // (undocumented) - body?: DeploymentScope; -} - -// @public -export type TeamCloudAuthorizeDeploymentScopeResponse = DeploymentScopeDataResult; - // @public export interface TeamCloudCancelComponentTaskOptionalParams extends coreClient.OperationOptions { } @@ -1662,6 +1653,13 @@ export interface TeamCloudGetUserProjectsOptionalParams extends coreClient.Opera // @public export type TeamCloudGetUserProjectsResponse = ProjectListDataResult; +// @public +export interface TeamCloudInitializeAuthorizationOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type TeamCloudInitializeAuthorizationResponse = DeploymentScopeDataResult; + // @public export interface TeamCloudNegotiateSignalROptionalParams extends coreClient.OperationOptions { } diff --git a/web/teamcloud/types/teamcloud.d.ts b/web/teamcloud/types/teamcloud.d.ts index 538f685e..d530fe97 100644 --- a/web/teamcloud/types/teamcloud.d.ts +++ b/web/teamcloud/types/teamcloud.d.ts @@ -1053,32 +1053,32 @@ export declare class TeamCloud extends TeamCloudContext { createDeploymentScope(organizationId: string, options?: TeamCloudCreateDeploymentScopeOptionalParams): Promise; /** * Gets a Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ - getDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudGetDeploymentScopeOptionalParams): Promise; + getDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudGetDeploymentScopeOptionalParams): Promise; /** * Updates an existing Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ - updateDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudUpdateDeploymentScopeOptionalParams): Promise; + updateDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudUpdateDeploymentScopeOptionalParams): Promise; /** * Deletes a Deployment Scope. - * @param deploymentScopeId * @param organizationId + * @param deploymentScopeId * @param options The options parameters. */ - deleteDeploymentScope(deploymentScopeId: string | null, organizationId: string, options?: TeamCloudDeleteDeploymentScopeOptionalParams): Promise; + deleteDeploymentScope(organizationId: string, deploymentScopeId: string, options?: TeamCloudDeleteDeploymentScopeOptionalParams): Promise; /** - * Authorize an existing Deployment Scope. + * Initialize a new authorization session for a deployment scope. * @param organizationId * @param deploymentScopeId * @param options The options parameters. */ - authorizeDeploymentScope(organizationId: string, deploymentScopeId: string | null, options?: TeamCloudAuthorizeDeploymentScopeOptionalParams): Promise; + initializeAuthorization(organizationId: string, deploymentScopeId: string, options?: TeamCloudInitializeAuthorizationOptionalParams): Promise; /** * Negotiates the SignalR connection. * @param organizationId @@ -1426,14 +1426,6 @@ export declare class TeamCloud extends TeamCloudContext { getUserProjectsMe(organizationId: string, options?: TeamCloudGetUserProjectsMeOptionalParams): Promise; } -/** Optional parameters. */ -export declare interface TeamCloudAuthorizeDeploymentScopeOptionalParams extends coreClient.OperationOptions { - body?: DeploymentScope; -} - -/** Contains response data for the authorizeDeploymentScope operation. */ -export declare type TeamCloudAuthorizeDeploymentScopeResponse = DeploymentScopeDataResult; - /** Optional parameters. */ export declare interface TeamCloudCancelComponentTaskOptionalParams extends coreClient.OperationOptions { } @@ -1849,6 +1841,13 @@ export declare interface TeamCloudGetUserProjectsOptionalParams extends coreClie /** Contains response data for the getUserProjects operation. */ export declare type TeamCloudGetUserProjectsResponse = ProjectListDataResult; +/** Optional parameters. */ +export declare interface TeamCloudInitializeAuthorizationOptionalParams extends coreClient.OperationOptions { +} + +/** Contains response data for the initializeAuthorization operation. */ +export declare type TeamCloudInitializeAuthorizationResponse = DeploymentScopeDataResult; + /** Optional parameters. */ export declare interface TeamCloudNegotiateSignalROptionalParams extends coreClient.OperationOptions { }