@azure/arm-msi 2.1.0-beta.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +6 -9
  2. package/LICENSE +1 -1
  3. package/README.md +2 -2
  4. package/dist/index.js +240 -321
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.min.js +1 -1
  7. package/dist/index.min.js.map +1 -1
  8. package/dist-esm/samples-dev/federatedIdentityCredentialsCreateOrUpdateSample.js +13 -5
  9. package/dist-esm/samples-dev/federatedIdentityCredentialsCreateOrUpdateSample.js.map +1 -1
  10. package/dist-esm/samples-dev/federatedIdentityCredentialsDeleteSample.js +12 -4
  11. package/dist-esm/samples-dev/federatedIdentityCredentialsDeleteSample.js.map +1 -1
  12. package/dist-esm/samples-dev/federatedIdentityCredentialsGetSample.js +12 -4
  13. package/dist-esm/samples-dev/federatedIdentityCredentialsGetSample.js.map +1 -1
  14. package/dist-esm/samples-dev/federatedIdentityCredentialsListSample.js +12 -4
  15. package/dist-esm/samples-dev/federatedIdentityCredentialsListSample.js.map +1 -1
  16. package/dist-esm/samples-dev/operationsListSample.js +11 -3
  17. package/dist-esm/samples-dev/operationsListSample.js.map +1 -1
  18. package/dist-esm/samples-dev/systemAssignedIdentitiesGetByScopeSample.js +11 -3
  19. package/dist-esm/samples-dev/systemAssignedIdentitiesGetByScopeSample.js.map +1 -1
  20. package/dist-esm/samples-dev/userAssignedIdentitiesCreateOrUpdateSample.js +11 -4
  21. package/dist-esm/samples-dev/userAssignedIdentitiesCreateOrUpdateSample.js.map +1 -1
  22. package/dist-esm/samples-dev/userAssignedIdentitiesDeleteSample.js +11 -4
  23. package/dist-esm/samples-dev/userAssignedIdentitiesDeleteSample.js.map +1 -1
  24. package/dist-esm/samples-dev/userAssignedIdentitiesGetSample.js +11 -4
  25. package/dist-esm/samples-dev/userAssignedIdentitiesGetSample.js.map +1 -1
  26. package/dist-esm/samples-dev/userAssignedIdentitiesListByResourceGroupSample.js +11 -4
  27. package/dist-esm/samples-dev/userAssignedIdentitiesListByResourceGroupSample.js.map +1 -1
  28. package/dist-esm/samples-dev/userAssignedIdentitiesListBySubscriptionSample.js +10 -3
  29. package/dist-esm/samples-dev/userAssignedIdentitiesListBySubscriptionSample.js.map +1 -1
  30. package/dist-esm/samples-dev/userAssignedIdentitiesUpdateSample.js +11 -4
  31. package/dist-esm/samples-dev/userAssignedIdentitiesUpdateSample.js.map +1 -1
  32. package/dist-esm/src/index.d.ts +1 -0
  33. package/dist-esm/src/index.d.ts.map +1 -1
  34. package/dist-esm/src/index.js +1 -0
  35. package/dist-esm/src/index.js.map +1 -1
  36. package/dist-esm/src/managedServiceIdentityClient.d.ts.map +1 -1
  37. package/dist-esm/src/managedServiceIdentityClient.js +21 -16
  38. package/dist-esm/src/managedServiceIdentityClient.js.map +1 -1
  39. package/dist-esm/src/models/index.d.ts +43 -86
  40. package/dist-esm/src/models/index.d.ts.map +1 -1
  41. package/dist-esm/src/models/index.js +12 -1
  42. package/dist-esm/src/models/index.js.map +1 -1
  43. package/dist-esm/src/models/mappers.d.ts +1 -2
  44. package/dist-esm/src/models/mappers.d.ts.map +1 -1
  45. package/dist-esm/src/models/mappers.js +51 -85
  46. package/dist-esm/src/models/mappers.js.map +1 -1
  47. package/dist-esm/src/models/parameters.d.ts +4 -6
  48. package/dist-esm/src/models/parameters.d.ts.map +1 -1
  49. package/dist-esm/src/models/parameters.js +29 -42
  50. package/dist-esm/src/models/parameters.js.map +1 -1
  51. package/dist-esm/src/operations/federatedIdentityCredentials.d.ts +6 -6
  52. package/dist-esm/src/operations/federatedIdentityCredentials.d.ts.map +1 -1
  53. package/dist-esm/src/operations/federatedIdentityCredentials.js +32 -25
  54. package/dist-esm/src/operations/federatedIdentityCredentials.js.map +1 -1
  55. package/dist-esm/src/operations/operations.d.ts.map +1 -1
  56. package/dist-esm/src/operations/operations.js +19 -8
  57. package/dist-esm/src/operations/operations.js.map +1 -1
  58. package/dist-esm/src/operations/userAssignedIdentities.d.ts +1 -26
  59. package/dist-esm/src/operations/userAssignedIdentities.d.ts.map +1 -1
  60. package/dist-esm/src/operations/userAssignedIdentities.js +37 -143
  61. package/dist-esm/src/operations/userAssignedIdentities.js.map +1 -1
  62. package/dist-esm/src/operationsInterfaces/federatedIdentityCredentials.d.ts +4 -4
  63. package/dist-esm/src/operationsInterfaces/userAssignedIdentities.d.ts +1 -8
  64. package/dist-esm/src/operationsInterfaces/userAssignedIdentities.d.ts.map +1 -1
  65. package/dist-esm/src/pagingHelper.d.ts +13 -0
  66. package/dist-esm/src/pagingHelper.d.ts.map +1 -0
  67. package/dist-esm/src/pagingHelper.js +32 -0
  68. package/dist-esm/src/pagingHelper.js.map +1 -0
  69. package/package.json +8 -6
  70. package/review/arm-msi.api.md +25 -44
  71. package/src/index.ts +1 -0
  72. package/src/managedServiceIdentityClient.ts +27 -18
  73. package/src/models/index.ts +47 -96
  74. package/src/models/mappers.ts +52 -87
  75. package/src/models/parameters.ts +31 -46
  76. package/src/operations/federatedIdentityCredentials.ts +39 -26
  77. package/src/operations/operations.ts +21 -9
  78. package/src/operations/userAssignedIdentities.ts +46 -190
  79. package/src/operationsInterfaces/federatedIdentityCredentials.ts +4 -4
  80. package/src/operationsInterfaces/userAssignedIdentities.ts +0 -13
  81. package/src/pagingHelper.ts +39 -0
  82. package/types/arm-msi.d.ts +59 -103
  83. package/types/tsdoc-metadata.json +1 -1
  84. package/dist-esm/samples-dev/userAssignedIdentitiesListAssociatedResourcesSample.d.ts +0 -2
  85. package/dist-esm/samples-dev/userAssignedIdentitiesListAssociatedResourcesSample.d.ts.map +0 -1
  86. package/dist-esm/samples-dev/userAssignedIdentitiesListAssociatedResourcesSample.js +0 -55
  87. package/dist-esm/samples-dev/userAssignedIdentitiesListAssociatedResourcesSample.js.map +0 -1
@@ -2,59 +2,6 @@ import * as coreAuth from '@azure/core-auth';
2
2
  import * as coreClient from '@azure/core-client';
3
3
  import { PagedAsyncIterableIterator } from '@azure/core-paging';
4
4
 
5
- /** Azure resources returned by the resource action to get a list of assigned resources. */
6
- export declare interface AssociatedResourcesListResult {
7
- /**
8
- * Total number of Azure resources assigned to the identity.
9
- * NOTE: This property will not be serialized. It can only be populated by the server.
10
- */
11
- readonly totalCount?: number;
12
- /**
13
- * The collection of Azure resources returned by the resource action to get a list of assigned resources.
14
- * NOTE: This property will not be serialized. It can only be populated by the server.
15
- */
16
- readonly value?: AzureResource[];
17
- /**
18
- * The url to get the next page of results, if any.
19
- * NOTE: This property will not be serialized. It can only be populated by the server.
20
- */
21
- readonly nextLink?: string;
22
- }
23
-
24
- /** Describes an Azure resource that is attached to an identity. */
25
- export declare interface AzureResource {
26
- /**
27
- * The ID of this resource.
28
- * NOTE: This property will not be serialized. It can only be populated by the server.
29
- */
30
- readonly id?: string;
31
- /**
32
- * The name of this resource.
33
- * NOTE: This property will not be serialized. It can only be populated by the server.
34
- */
35
- readonly name?: string;
36
- /**
37
- * The type of this resource.
38
- * NOTE: This property will not be serialized. It can only be populated by the server.
39
- */
40
- readonly type?: string;
41
- /**
42
- * The name of the resource group this resource belongs to.
43
- * NOTE: This property will not be serialized. It can only be populated by the server.
44
- */
45
- readonly resourceGroup?: string;
46
- /**
47
- * The ID of the subscription this resource belongs to.
48
- * NOTE: This property will not be serialized. It can only be populated by the server.
49
- */
50
- readonly subscriptionId?: string;
51
- /**
52
- * The name of the subscription this resource belongs to.
53
- * NOTE: This property will not be serialized. It can only be populated by the server.
54
- */
55
- readonly subscriptionDisplayName?: string;
56
- }
57
-
58
5
  /** An error response from the ManagedServiceIdentity service. */
59
6
  export declare interface CloudError {
60
7
  /** A list of additional details about the error. */
@@ -73,6 +20,18 @@ export declare interface CloudErrorBody {
73
20
  details?: CloudErrorBody[];
74
21
  }
75
22
 
23
+ /**
24
+ * Defines values for CreatedByType. \
25
+ * {@link KnownCreatedByType} can be used interchangeably with CreatedByType,
26
+ * this enum contains the known values that the service supports.
27
+ * ### Known values supported by the service
28
+ * **User** \
29
+ * **Application** \
30
+ * **ManagedIdentity** \
31
+ * **Key**
32
+ */
33
+ export declare type CreatedByType = string;
34
+
76
35
  /** Describes a federated identity credential. */
77
36
  export declare interface FederatedIdentityCredential extends ProxyResource {
78
37
  /** The URL of the issuer to be trusted. */
@@ -87,14 +46,14 @@ export declare interface FederatedIdentityCredential extends ProxyResource {
87
46
  export declare interface FederatedIdentityCredentials {
88
47
  /**
89
48
  * Lists all the federated identity credentials under the specified user assigned identity.
90
- * @param resourceGroupName The name of the Resource Group to which the identity belongs.
49
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
91
50
  * @param resourceName The name of the identity resource.
92
51
  * @param options The options parameters.
93
52
  */
94
53
  list(resourceGroupName: string, resourceName: string, options?: FederatedIdentityCredentialsListOptionalParams): PagedAsyncIterableIterator<FederatedIdentityCredential>;
95
54
  /**
96
55
  * Create or update a federated identity credential under the specified user assigned identity.
97
- * @param resourceGroupName The name of the Resource Group to which the identity belongs.
56
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
98
57
  * @param resourceName The name of the identity resource.
99
58
  * @param federatedIdentityCredentialResourceName The name of the federated identity credential
100
59
  * resource.
@@ -104,7 +63,7 @@ export declare interface FederatedIdentityCredentials {
104
63
  createOrUpdate(resourceGroupName: string, resourceName: string, federatedIdentityCredentialResourceName: string, parameters: FederatedIdentityCredential, options?: FederatedIdentityCredentialsCreateOrUpdateOptionalParams): Promise<FederatedIdentityCredentialsCreateOrUpdateResponse>;
105
64
  /**
106
65
  * Gets the federated identity credential.
107
- * @param resourceGroupName The name of the Resource Group to which the identity belongs.
66
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
108
67
  * @param resourceName The name of the identity resource.
109
68
  * @param federatedIdentityCredentialResourceName The name of the federated identity credential
110
69
  * resource.
@@ -113,7 +72,7 @@ export declare interface FederatedIdentityCredentials {
113
72
  get(resourceGroupName: string, resourceName: string, federatedIdentityCredentialResourceName: string, options?: FederatedIdentityCredentialsGetOptionalParams): Promise<FederatedIdentityCredentialsGetResponse>;
114
73
  /**
115
74
  * Deletes the federated identity credential.
116
- * @param resourceGroupName The name of the Resource Group to which the identity belongs.
75
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
117
76
  * @param resourceName The name of the identity resource.
118
77
  * @param federatedIdentityCredentialResourceName The name of the federated identity credential
119
78
  * resource.
@@ -142,10 +101,6 @@ export declare type FederatedIdentityCredentialsGetResponse = FederatedIdentityC
142
101
 
143
102
  /** Optional parameters. */
144
103
  export declare interface FederatedIdentityCredentialsListNextOptionalParams extends coreClient.OperationOptions {
145
- /** Number of records to return. */
146
- top?: number;
147
- /** A skip token is used to continue retrieving items after an operation returns a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skipToken parameter that specifies a starting point to use for subsequent calls. */
148
- skiptoken?: string;
149
104
  }
150
105
 
151
106
  /** Contains response data for the listNext operation. */
@@ -170,6 +125,15 @@ export declare interface FederatedIdentityCredentialsListResult {
170
125
  nextLink?: string;
171
126
  }
172
127
 
128
+ /**
129
+ * Given the last `.value` produced by the `byPage` iterator,
130
+ * returns a continuation token that can be used to begin paging from
131
+ * that point later.
132
+ * @param page An object from accessing `value` on the IteratorResult from a `byPage` iterator.
133
+ * @returns The continuation token that can be passed into byPage() during future calls.
134
+ */
135
+ export declare function getContinuationToken(page: unknown): string | undefined;
136
+
173
137
  /** Describes an identity resource. */
174
138
  export declare interface Identity extends TrackedResource {
175
139
  /**
@@ -214,6 +178,18 @@ export declare interface IdentityUpdate extends Resource {
214
178
  readonly clientId?: string;
215
179
  }
216
180
 
181
+ /** Known values of {@link CreatedByType} that the service accepts. */
182
+ export declare enum KnownCreatedByType {
183
+ /** User */
184
+ User = "User",
185
+ /** Application */
186
+ Application = "Application",
187
+ /** ManagedIdentity */
188
+ ManagedIdentity = "ManagedIdentity",
189
+ /** Key */
190
+ Key = "Key"
191
+ }
192
+
217
193
  export declare class ManagedServiceIdentityClient extends coreClient.ServiceClient {
218
194
  $host: string;
219
195
  apiVersion: string;
@@ -301,7 +277,7 @@ export declare interface ProxyResource extends Resource {
301
277
  /** Common fields that are returned in the response for all Azure Resource Manager resources */
302
278
  export declare interface Resource {
303
279
  /**
304
- * Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
280
+ * Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
305
281
  * NOTE: This property will not be serialized. It can only be populated by the server.
306
282
  */
307
283
  readonly id?: string;
@@ -315,6 +291,11 @@ export declare interface Resource {
315
291
  * NOTE: This property will not be serialized. It can only be populated by the server.
316
292
  */
317
293
  readonly type?: string;
294
+ /**
295
+ * Azure Resource Manager metadata containing createdBy and modifiedBy information.
296
+ * NOTE: This property will not be serialized. It can only be populated by the server.
297
+ */
298
+ readonly systemData?: SystemData;
318
299
  }
319
300
 
320
301
  /** Interface representing a SystemAssignedIdentities. */
@@ -365,6 +346,22 @@ export declare interface SystemAssignedIdentity extends ProxyResource {
365
346
  readonly clientSecretUrl?: string;
366
347
  }
367
348
 
349
+ /** Metadata pertaining to creation and last modification of the resource. */
350
+ export declare interface SystemData {
351
+ /** The identity that created the resource. */
352
+ createdBy?: string;
353
+ /** The type of identity that created the resource. */
354
+ createdByType?: CreatedByType;
355
+ /** The timestamp of resource creation (UTC). */
356
+ createdAt?: Date;
357
+ /** The identity that last modified the resource. */
358
+ lastModifiedBy?: string;
359
+ /** The type of identity that last modified the resource. */
360
+ lastModifiedByType?: CreatedByType;
361
+ /** The timestamp of resource last modification (UTC) */
362
+ lastModifiedAt?: Date;
363
+ }
364
+
368
365
  /** The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' */
369
366
  export declare interface TrackedResource extends Resource {
370
367
  /** Resource tags. */
@@ -388,13 +385,6 @@ export declare interface UserAssignedIdentities {
388
385
  * @param options The options parameters.
389
386
  */
390
387
  listByResourceGroup(resourceGroupName: string, options?: UserAssignedIdentitiesListByResourceGroupOptionalParams): PagedAsyncIterableIterator<Identity>;
391
- /**
392
- * Lists the associated resources for this identity.
393
- * @param resourceGroupName The name of the Resource Group to which the identity belongs.
394
- * @param resourceName The name of the identity resource.
395
- * @param options The options parameters.
396
- */
397
- listAssociatedResources(resourceGroupName: string, resourceName: string, options?: UserAssignedIdentitiesListAssociatedResourcesOptionalParams): PagedAsyncIterableIterator<AzureResource>;
398
388
  /**
399
389
  * Create or update an identity in the specified subscription and resource group.
400
390
  * @param resourceGroupName The name of the Resource Group to which the identity belongs.
@@ -445,40 +435,6 @@ export declare interface UserAssignedIdentitiesGetOptionalParams extends coreCli
445
435
  /** Contains response data for the get operation. */
446
436
  export declare type UserAssignedIdentitiesGetResponse = Identity;
447
437
 
448
- /** Optional parameters. */
449
- export declare interface UserAssignedIdentitiesListAssociatedResourcesNextOptionalParams extends coreClient.OperationOptions {
450
- /** OData filter expression to apply to the query. */
451
- filter?: string;
452
- /** OData orderBy expression to apply to the query. */
453
- orderby?: string;
454
- /** Number of records to return. */
455
- top?: number;
456
- /** Number of records to skip. */
457
- skip?: number;
458
- /** A skip token is used to continue retrieving items after an operation returns a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skipToken parameter that specifies a starting point to use for subsequent calls. */
459
- skiptoken?: string;
460
- }
461
-
462
- /** Contains response data for the listAssociatedResourcesNext operation. */
463
- export declare type UserAssignedIdentitiesListAssociatedResourcesNextResponse = AssociatedResourcesListResult;
464
-
465
- /** Optional parameters. */
466
- export declare interface UserAssignedIdentitiesListAssociatedResourcesOptionalParams extends coreClient.OperationOptions {
467
- /** OData filter expression to apply to the query. */
468
- filter?: string;
469
- /** OData orderBy expression to apply to the query. */
470
- orderby?: string;
471
- /** Number of records to return. */
472
- top?: number;
473
- /** Number of records to skip. */
474
- skip?: number;
475
- /** A skip token is used to continue retrieving items after an operation returns a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skipToken parameter that specifies a starting point to use for subsequent calls. */
476
- skiptoken?: string;
477
- }
478
-
479
- /** Contains response data for the listAssociatedResources operation. */
480
- export declare type UserAssignedIdentitiesListAssociatedResourcesResponse = AssociatedResourcesListResult;
481
-
482
438
  /** Optional parameters. */
483
439
  export declare interface UserAssignedIdentitiesListByResourceGroupNextOptionalParams extends coreClient.OperationOptions {
484
440
  }
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.18.11"
8
+ "packageVersion": "7.34.2"
9
9
  }
10
10
  ]
11
11
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=userAssignedIdentitiesListAssociatedResourcesSample.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"userAssignedIdentitiesListAssociatedResourcesSample.d.ts","sourceRoot":"","sources":["../../samples-dev/userAssignedIdentitiesListAssociatedResourcesSample.ts"],"names":[],"mappings":""}
@@ -1,55 +0,0 @@
1
- /*
2
- * Copyright (c) Microsoft Corporation.
3
- * Licensed under the MIT License.
4
- *
5
- * Code generated by Microsoft (R) AutoRest Code Generator.
6
- * Changes may cause incorrect behavior and will be lost if the code is regenerated.
7
- */
8
- import { __asyncValues, __awaiter } from "tslib";
9
- // Copyright (c) Microsoft Corporation.
10
- // Licensed under the MIT License.
11
- import { ManagedServiceIdentityClient } from "@azure/arm-msi";
12
- import { DefaultAzureCredential } from "@azure/identity";
13
- /**
14
- * This sample demonstrates how to Lists the associated resources for this identity.
15
- *
16
- * @summary Lists the associated resources for this identity.
17
- * x-ms-original-file: specification/msi/resource-manager/Microsoft.ManagedIdentity/preview/2022-01-31-preview/examples/IdentityListAssociatedResources.json
18
- */
19
- function identityListAssociatedResources() {
20
- var e_1, _a;
21
- return __awaiter(this, void 0, void 0, function* () {
22
- const subscriptionId = "1cscb752-d7c9-463f-9731-fd31edada74a";
23
- const resourceGroupName = "testrg";
24
- const resourceName = "testid";
25
- const filter = "contains(name, 'test')";
26
- const orderby = "name asc";
27
- const top = 10;
28
- const skip = 1;
29
- const options = {
30
- filter,
31
- orderby,
32
- top,
33
- skip
34
- };
35
- const credential = new DefaultAzureCredential();
36
- const client = new ManagedServiceIdentityClient(credential, subscriptionId);
37
- const resArray = new Array();
38
- try {
39
- for (var _b = __asyncValues(client.userAssignedIdentities.listAssociatedResources(resourceGroupName, resourceName, options)), _c; _c = yield _b.next(), !_c.done;) {
40
- let item = _c.value;
41
- resArray.push(item);
42
- }
43
- }
44
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
45
- finally {
46
- try {
47
- if (_c && !_c.done && (_a = _b.return)) yield _a.call(_b);
48
- }
49
- finally { if (e_1) throw e_1.error; }
50
- }
51
- console.log(resArray);
52
- });
53
- }
54
- identityListAssociatedResources().catch(console.error);
55
- //# sourceMappingURL=userAssignedIdentitiesListAssociatedResourcesSample.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"userAssignedIdentitiesListAssociatedResourcesSample.js","sourceRoot":"","sources":["../../samples-dev/userAssignedIdentitiesListAssociatedResourcesSample.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;AAEH,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,EAEL,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;;;GAKG;AACH,SAAe,+BAA+B;;;QAC5C,MAAM,cAAc,GAAG,sCAAsC,CAAC;QAC9D,MAAM,iBAAiB,GAAG,QAAQ,CAAC;QACnC,MAAM,YAAY,GAAG,QAAQ,CAAC;QAC9B,MAAM,MAAM,GAAG,wBAAwB,CAAC;QACxC,MAAM,OAAO,GAAG,UAAU,CAAC;QAC3B,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,CAAC,CAAC;QACf,MAAM,OAAO,GAAgE;YAC3E,MAAM;YACN,OAAO;YACP,GAAG;YACH,IAAI;SACL,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,4BAA4B,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;;YAC7B,KAAuB,IAAA,KAAA,cAAA,MAAM,CAAC,sBAAsB,CAAC,uBAAuB,CAC1E,iBAAiB,EACjB,YAAY,EACZ,OAAO,CACR,CAAA,IAAA;gBAJU,IAAI,IAAI,WAAA,CAAA;gBAKjB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;;;;;;;;;QACD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;;CACvB;AAED,+BAA+B,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}