@microsoft/terraform-cdk-constructs 0.0.3-pre.6 → 0.0.3-pre.7
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.
- package/.jsii +909 -306
- package/API.md +2488 -255
- package/README.md +112 -18
- package/docs/images/ide-documentation.png +0 -0
- package/lib/azure-actiongroup/lib/actiongroup.d.ts +39 -0
- package/lib/azure-actiongroup/lib/actiongroup.js +40 -1
- package/lib/azure-applicationgateway/lib/gateway.d.ts +76 -0
- package/lib/azure-applicationgateway/lib/gateway.js +78 -2
- package/lib/azure-applicationinsights/lib/appinsights.d.ts +50 -0
- package/lib/azure-applicationinsights/lib/appinsights.js +52 -3
- package/lib/azure-containerregistry/lib/registry.d.ts +29 -0
- package/lib/azure-containerregistry/lib/registry.js +31 -2
- package/lib/azure-datalake/lib/datalake.d.ts +50 -0
- package/lib/azure-datalake/lib/datalake.js +51 -1
- package/lib/azure-datalake/lib/filesystem.d.ts +51 -0
- package/lib/azure-datalake/lib/filesystem.js +52 -1
- package/lib/azure-datalake/lib/path.d.ts +37 -0
- package/lib/azure-datalake/lib/path.js +38 -1
- package/lib/azure-eventhub/lib/authorization.d.ts +30 -0
- package/lib/azure-eventhub/lib/authorization.js +32 -2
- package/lib/azure-eventhub/lib/cluster.d.ts +29 -0
- package/lib/azure-eventhub/lib/cluster.js +31 -2
- package/lib/azure-eventhub/lib/consumer.d.ts +28 -0
- package/lib/azure-eventhub/lib/consumer.js +30 -2
- package/lib/azure-eventhub/lib/instance.d.ts +118 -0
- package/lib/azure-eventhub/lib/instance.js +120 -2
- package/lib/azure-eventhub/lib/kusto-connection.d.ts +41 -0
- package/lib/azure-eventhub/lib/kusto-connection.js +43 -2
- package/lib/azure-eventhub/lib/namespace.d.ts +74 -0
- package/lib/azure-eventhub/lib/namespace.js +76 -3
- package/lib/azure-functionapp/lib/functionapplinux.js +1 -1
- package/lib/azure-keyvault/lib/certificate.d.ts +96 -2
- package/lib/azure-keyvault/lib/certificate.js +55 -3
- package/lib/azure-keyvault/lib/key.d.ts +36 -0
- package/lib/azure-keyvault/lib/key.js +38 -2
- package/lib/azure-keyvault/lib/policy.d.ts +30 -0
- package/lib/azure-keyvault/lib/policy.js +32 -2
- package/lib/azure-keyvault/lib/secret.d.ts +31 -0
- package/lib/azure-keyvault/lib/secret.js +33 -2
- package/lib/azure-keyvault/lib/vault.d.ts +188 -0
- package/lib/azure-keyvault/lib/vault.js +191 -7
- package/lib/azure-kubernetes/lib/cluster.d.ts +25 -4
- package/lib/azure-kubernetes/lib/cluster.js +27 -6
- package/lib/azure-kusto/lib/cluster.d.ts +53 -0
- package/lib/azure-kusto/lib/cluster.js +55 -2
- package/lib/azure-kusto/lib/compute-specification.js +1 -1
- package/lib/azure-kusto/lib/database.d.ts +103 -0
- package/lib/azure-kusto/lib/database.js +105 -2
- package/lib/azure-loganalytics/lib/workspace.d.ts +47 -0
- package/lib/azure-loganalytics/lib/workspace.js +49 -2
- package/lib/azure-metricalert/lib/metric-alert.d.ts +43 -4
- package/lib/azure-metricalert/lib/metric-alert.js +45 -6
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +1 -1
- package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +92 -0
- package/lib/azure-networksecuritygroup/lib/securitygroup.js +95 -5
- package/lib/azure-queryrulealert/lib/query-rule-alert.d.ts +35 -4
- package/lib/azure-queryrulealert/lib/query-rule-alert.js +37 -6
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +28 -0
- package/lib/azure-resourcegroup/lib/resource-group.js +30 -2
- package/lib/azure-storageaccount/lib/account.d.ts +75 -48
- package/lib/azure-storageaccount/lib/account.js +77 -50
- package/lib/azure-storageaccount/lib/container.d.ts +94 -12
- package/lib/azure-storageaccount/lib/container.js +97 -15
- package/lib/azure-storageaccount/lib/fileshare.d.ts +36 -0
- package/lib/azure-storageaccount/lib/fileshare.js +39 -3
- package/lib/azure-storageaccount/lib/queue.d.ts +29 -0
- package/lib/azure-storageaccount/lib/queue.js +31 -2
- package/lib/azure-storageaccount/lib/table.d.ts +32 -0
- package/lib/azure-storageaccount/lib/table.js +34 -2
- package/lib/azure-virtualmachine/lib/image-references.js +2 -2
- package/lib/azure-virtualmachine/lib/vm.d.ts +84 -8
- package/lib/azure-virtualmachine/lib/vm.js +87 -11
- package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +98 -8
- package/lib/azure-virtualmachinescaleset/lib/cluster.js +101 -11
- package/lib/azure-virtualnetwork/lib/network.d.ts +61 -0
- package/lib/azure-virtualnetwork/lib/network.js +63 -3
- package/lib/azure-virtualnetwork/lib/peering.d.ts +39 -0
- package/lib/azure-virtualnetwork/lib/peering.js +41 -2
- package/lib/core-azure/lib/diagsettings.d.ts +37 -0
- package/lib/core-azure/lib/diagsettings.js +39 -2
- package/lib/core-azure/lib/rbac.d.ts +22 -4
- package/lib/core-azure/lib/rbac.js +24 -6
- package/lib/core-azure/lib/resource.d.ts +45 -0
- package/lib/core-azure/lib/resource.js +48 -4
- package/package.json +1 -1
|
@@ -10,29 +10,41 @@ const fileshare_1 = require("./fileshare");
|
|
|
10
10
|
const queue_1 = require("./queue");
|
|
11
11
|
const table_1 = require("./table");
|
|
12
12
|
const lib_1 = require("../../core-azure/lib");
|
|
13
|
-
/**
|
|
14
|
-
* Represents an Azure Storage Account within a Terraform deployment.
|
|
15
|
-
* This class provides methods to easily manage storage resources such as Containers,
|
|
16
|
-
* File Shares, Tables, Queues, and Network Rules.
|
|
17
|
-
*
|
|
18
|
-
* Example usage:
|
|
19
|
-
* ```typescript
|
|
20
|
-
* const storageAccount = new AzureStorageAccount(this, 'storageaccount', {
|
|
21
|
-
* name: 'myStorageAccount',
|
|
22
|
-
* location: 'East US',
|
|
23
|
-
* resourceGroup: myResourceGroup,
|
|
24
|
-
* accountReplicationType: 'LRS',
|
|
25
|
-
* accountTier: 'Standard',
|
|
26
|
-
* // other properties
|
|
27
|
-
* });
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
13
|
class Account extends lib_1.AzureResourceWithAlert {
|
|
31
14
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
15
|
+
* Represents an Azure Storage Account within a Terraform deployment.
|
|
16
|
+
*
|
|
17
|
+
* This class is responsible for the creation and management of an Azure Storage Account, which is a scalable and secure service
|
|
18
|
+
* for storing large amounts of unstructured data that can be accessed from anywhere in the world over HTTP or HTTPS. Common uses
|
|
19
|
+
* of the Azure Storage Account include storing of blobs (objects), file shares, tables, and queues. This class provides methods
|
|
20
|
+
* to manage storage resources, configure network rules, and integrate with Azure Active Directory for secure access management.
|
|
21
|
+
*
|
|
22
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
|
|
23
|
+
* @param id - The unique identifier for this instance of the storage account.
|
|
24
|
+
* @param props - The properties required to configure the Azure Storage Account, as defined in the AccountProps interface. These include:
|
|
25
|
+
* - `name`: The name of the storage account, which must be unique within the Azure region.
|
|
26
|
+
* - `location`: The Azure region where the storage account will be created.
|
|
27
|
+
* - `resourceGroup`: The Azure Resource Group under which the storage account will be deployed.
|
|
28
|
+
* - `accountReplicationType`: The type of data replication to ensure data durability and availability.
|
|
29
|
+
* - `accountTier`: The performance tier that affects the type of hardware used for the storage account.
|
|
30
|
+
* - `tags`: A dictionary of tags to apply to the storage account for organizational purposes.
|
|
31
|
+
*
|
|
32
|
+
* Example usage:
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const storageAccount = new Account(this, 'MyStorageAccount', {
|
|
35
|
+
* location: 'East US',
|
|
36
|
+
* name: 'myStorageAccount',
|
|
37
|
+
* resourceGroup: myResourceGroup,
|
|
38
|
+
* accountReplicationType: 'LRS',
|
|
39
|
+
* accountTier: 'Standard',
|
|
40
|
+
* enableHttpsTrafficOnly: true,
|
|
41
|
+
* tags: {
|
|
42
|
+
* environment: 'production'
|
|
43
|
+
* }
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
* This class sets up the storage account with the specified configurations, handles resource allocation, and applies security
|
|
47
|
+
* settings based on the properties provided.
|
|
36
48
|
*/
|
|
37
49
|
constructor(scope, id, props) {
|
|
38
50
|
super(scope, id);
|
|
@@ -69,15 +81,18 @@ class Account extends lib_1.AzureResourceWithAlert {
|
|
|
69
81
|
}
|
|
70
82
|
/**
|
|
71
83
|
* Adds a new container to the storage account.
|
|
72
|
-
* @param name The name of the container.
|
|
73
|
-
* @param containerAccessType The access
|
|
74
|
-
* @param metadata
|
|
75
|
-
* @returns The created
|
|
76
|
-
* @throws Error if a container with the same name already exists.
|
|
84
|
+
* @param name The name of the container. It must be unique within the storage account.
|
|
85
|
+
* @param containerAccessType The level of public access to the container. Defaults to 'private'.
|
|
86
|
+
* @param metadata Optional metadata for the container as key-value pairs.
|
|
87
|
+
* @returns The created Container instance.
|
|
88
|
+
* @throws Error if a container with the same name already exists within the storage account.
|
|
89
|
+
*
|
|
90
|
+
* This method creates a new container within the Azure storage account, allowing for the specification of access
|
|
91
|
+
* level and metadata. If the container already exists, it throws an error to prevent duplication.
|
|
77
92
|
*
|
|
78
93
|
* Example usage:
|
|
79
94
|
* ```typescript
|
|
80
|
-
* const container = storageAccount.addContainer('myContainer', 'private');
|
|
95
|
+
* const container = storageAccount.addContainer('myContainer', 'private', { owner: 'IT' });
|
|
81
96
|
* ```
|
|
82
97
|
*/
|
|
83
98
|
addContainer(name, containerAccessType, metadata) {
|
|
@@ -95,14 +110,17 @@ class Account extends lib_1.AzureResourceWithAlert {
|
|
|
95
110
|
}
|
|
96
111
|
/**
|
|
97
112
|
* Adds a new file share to the storage account.
|
|
98
|
-
* @param name The name of the file share.
|
|
99
|
-
* @param props Optional properties for the file share
|
|
100
|
-
* @returns The created
|
|
101
|
-
* @throws Error if a share with the same name already exists.
|
|
113
|
+
* @param name The name of the file share. Must be unique within the storage account.
|
|
114
|
+
* @param props Optional properties for configuring the file share, such as quota and access tier.
|
|
115
|
+
* @returns The created FileShare instance.
|
|
116
|
+
* @throws Error if a file share with the same name already exists.
|
|
117
|
+
*
|
|
118
|
+
* This method facilitates the addition of a file share to the storage account, with optional settings for
|
|
119
|
+
* capacity (quota) and data access frequency (access tier). If a file share with the same name exists, an error is thrown.
|
|
102
120
|
*
|
|
103
121
|
* Example usage:
|
|
104
122
|
* ```typescript
|
|
105
|
-
* const fileShare = storageAccount.
|
|
123
|
+
* const fileShare = storageAccount.addFileShare('myFileShare', { quota: 1024, accessTier: 'Hot' });
|
|
106
124
|
* ```
|
|
107
125
|
*/
|
|
108
126
|
addFileShare(name, props) {
|
|
@@ -126,14 +144,17 @@ class Account extends lib_1.AzureResourceWithAlert {
|
|
|
126
144
|
}
|
|
127
145
|
/**
|
|
128
146
|
* Adds a new table to the storage account.
|
|
129
|
-
* @param name The name of the table.
|
|
130
|
-
* @param acl Optional access control list for the table.
|
|
131
|
-
* @returns The created
|
|
147
|
+
* @param name The name of the table. Must be unique within the storage account.
|
|
148
|
+
* @param acl Optional access control list for the table, specifying permissions.
|
|
149
|
+
* @returns The created Table instance.
|
|
132
150
|
* @throws Error if a table with the same name already exists.
|
|
133
151
|
*
|
|
152
|
+
* This method creates a new table within the storage account, optionally allowing for access control configurations.
|
|
153
|
+
* It throws an error if a table with the same name already exists, ensuring uniqueness within the account.
|
|
154
|
+
*
|
|
134
155
|
* Example usage:
|
|
135
156
|
* ```typescript
|
|
136
|
-
* const table = storageAccount.addTable('myTable');
|
|
157
|
+
* const table = storageAccount.addTable('myTable', [{ id: 'policy1', type: 'read' }]);
|
|
137
158
|
* ```
|
|
138
159
|
*/
|
|
139
160
|
addTable(name, acl) {
|
|
@@ -150,13 +171,16 @@ class Account extends lib_1.AzureResourceWithAlert {
|
|
|
150
171
|
}
|
|
151
172
|
/**
|
|
152
173
|
* Adds a new queue to the storage account.
|
|
153
|
-
* @param name The name of the queue.
|
|
154
|
-
* @param metadata Optional metadata for the queue.
|
|
155
|
-
* @returns The created
|
|
174
|
+
* @param name The name of the queue. Must be unique within the storage account.
|
|
175
|
+
* @param metadata Optional metadata for the queue as key-value pairs.
|
|
176
|
+
* @returns The created Queue instance.
|
|
177
|
+
*
|
|
178
|
+
* This method creates a new queue in the storage account, with optional metadata. It is useful for message queuing
|
|
179
|
+
* in applications, enabling asynchronous task processing and inter-service communication.
|
|
156
180
|
*
|
|
157
181
|
* Example usage:
|
|
158
182
|
* ```typescript
|
|
159
|
-
* const queue = storageAccount.addQueue('myQueue');
|
|
183
|
+
* const queue = storageAccount.addQueue('myQueue', { priority: 'high' });
|
|
160
184
|
* ```
|
|
161
185
|
*/
|
|
162
186
|
addQueue(name, metadata) {
|
|
@@ -167,18 +191,21 @@ class Account extends lib_1.AzureResourceWithAlert {
|
|
|
167
191
|
});
|
|
168
192
|
}
|
|
169
193
|
/**
|
|
170
|
-
* Adds network rules to the storage account.
|
|
171
|
-
* @param props Configuration properties for the network rules.
|
|
172
|
-
* @returns The configured
|
|
194
|
+
* Adds network rules to the storage account to control access based on IP and virtual network settings.
|
|
195
|
+
* @param props Configuration properties for the network rules, including allowed IPs and virtual network subnet IDs.
|
|
196
|
+
* @returns The configured network rules.
|
|
197
|
+
*
|
|
198
|
+
* This method configures network rules for the storage account, specifying which IPs and virtual networks can access
|
|
199
|
+
* the storage resources. It allows detailed control over data security and access management.
|
|
173
200
|
*
|
|
174
201
|
* Example usage:
|
|
175
202
|
* ```typescript
|
|
176
203
|
* storageAccount.addNetworkRules({
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
204
|
+
* bypass: ['AzureServices'],
|
|
205
|
+
* defaultAction: 'Deny',
|
|
206
|
+
* ipRules: ['1.2.3.4/32'],
|
|
207
|
+
* virtualNetworkSubnetIds: ['subnetId'],
|
|
208
|
+
* });
|
|
182
209
|
* ```
|
|
183
210
|
*/
|
|
184
211
|
addNetworkRules(props) {
|
|
@@ -194,5 +221,5 @@ class Account extends lib_1.AzureResourceWithAlert {
|
|
|
194
221
|
}
|
|
195
222
|
exports.Account = Account;
|
|
196
223
|
_a = JSII_RTTI_SYMBOL_1;
|
|
197
|
-
Account[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_storageaccount.Account", version: "0.0.3-pre.
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1zdG9yYWdlYWNjb3VudC9saWIvYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGlGQUE2RTtBQUM3RSw2R0FHbUU7QUFHbkUsMkNBQXdDO0FBQ3hDLDJDQUF3RDtBQUN4RCxtQ0FBZ0M7QUFDaEMsbUNBQWdDO0FBQ2hDLDhDQUE4RDtBQTBHOUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFhLE9BQVEsU0FBUSw0QkFBc0I7SUFZakQ7Ozs7O09BS0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUUvQixtQ0FBbUM7UUFDbkMsTUFBTSxRQUFRLEdBQUc7WUFDZixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLHNCQUFzQixFQUFFLElBQUk7WUFDNUIsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLElBQUk7WUFDbEIsYUFBYSxFQUFFLFFBQVE7WUFDdkIsMEJBQTBCLEVBQUUsS0FBSztZQUNq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QUFrQixFQUFFLElBQUksQ0FBQyxJQUFJO1lBQzdCLEdBQUcsRUFBRSxHQUFHO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksUUFBUSxDQUFDLElBQVksRUFBRSxRQUFvQztRQUNoRSxPQUFPLElBQUksYUFBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDM0IsSUFBSSxFQUFFLElBQUk7WUFDVixrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUM3QixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSSxlQUFlLENBQ3BCLEtBQXdCO1FBRXhCLE9BQU8sSUFBSSwyREFBMkIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3BELGdCQUFnQixFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLHVCQUF1QixFQUFFLEtBQUssQ0FBQyx1QkFBdUI7WUFDdEQsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXBNSCwwQkFxTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgU3RvcmFnZUFjY291bnQgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N0b3JhZ2UtYWNjb3VudFwiO1xuaW1wb3J0IHtcbiAgU3RvcmFnZUFjY291bnROZXR3b3JrUnVsZXNBLFxuICBTdG9yYWdlQWNjb3VudE5ldHdvcmtSdWxlc1ByaXZhdGVMaW5rQWNjZXNzQSxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdG9yYWdlLWFjY291bnQtbmV0d29yay1ydWxlc1wiO1xuaW1wb3J0IHsgU3RvcmFnZVRhYmxlQWNsIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdG9yYWdlLXRhYmxlXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4vY29udGFpbmVyXCI7XG5pbXBvcnQgeyBGaWxlU2hhcmUsIEZpbGVTaGFyZVByb3BzIH0gZnJvbSBcIi4vZmlsZXNoYXJlXCI7XG5pbXBvcnQgeyBRdWV1ZSB9IGZyb20gXCIuL3F1ZXVlXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCIuL3RhYmxlXCI7XG5pbXBvcnQgeyBBenVyZVJlc291cmNlV2l0aEFsZXJ0IH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya1J1bGVzUHJvcHMge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHdoaWNoIHRyYWZmaWMgdG8gYnlwYXNzIGZyb20gdGhlIG5ldHdvcmsgcnVsZXMuIFRoZSBwb3NzaWJsZSB2YWx1ZXMgYXJlICdBenVyZVNlcnZpY2VzJywgJ0xvZ2dpbmcnLCAnTWV0cmljcycsXG4gICAqIGFuZCAnTm9uZScuIEJ5cGFzc2luZyAnQXp1cmVTZXJ2aWNlcycgZW5hYmxlcyBBenVyZSdzIGludGVybmFsIHNlcnZpY2VzIHRvIGFjY2VzcyB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYnlwYXNzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGFjdGlvbiBvZiB0aGUgbmV0d29yayBydWxlIHNldC4gT3B0aW9ucyBhcmUgJ0FsbG93JyBvciAnRGVueScuIFNldCB0byAnRGVueScgdG8gZW5hYmxlIG5ldHdvcmsgcnVsZXMgYW5kIHJlc3RyaWN0XG4gICAqIGFjY2VzcyB0byB0aGUgc3RvcmFnZSBhY2NvdW50LiAnQWxsb3cnIHBlcm1pdHMgYWNjZXNzIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QWN0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIElQIHJ1bGVzIHRvIGFsbG93IGFjY2VzcyB0byB0aGUgc3RvcmFnZSBhY2NvdW50LiBUaGVzZSBhcmUgc3BlY2lmaWVkIGFzIENJRFIgcmFuZ2VzLlxuICAgKiBFeGFtcGxlOiBbJzEuMi4zLjQvMzInLCAnNS42LjcuMC8yNCddIHRvIGFsbG93IHNwZWNpZmljIElQcy9zdWJuZXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXBSdWxlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiB2aXJ0dWFsIG5ldHdvcmsgc3VibmV0IElEcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgc3RvcmFnZSBhY2NvdW50LiBUaGlzIGVuYWJsZXMgeW91IHRvIHNlY3VyZSB0aGUgc3RvcmFnZVxuICAgKiBhY2NvdW50IHRvIGEgc3BlY2lmaWMgdmlydHVhbCBuZXR3b3JrIGFuZCBzdWJuZXQgd2l0aGluIEF6dXJlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmlydHVhbE5ldHdvcmtTdWJuZXRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2Ygb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIHByaXZhdGUgbGluayBhY2Nlc3Mgc2V0dGluZ3MuIEVhY2ggb2JqZWN0IGluIHRoZSBhcnJheSBkZWZpbmVzIHRoZSBzdWItcmVzb3VyY2UgbmFtZVxuICAgKiAoZS5nLiwgJ2Jsb2InLCAnZmlsZScpIGFuZCBpdHMgcmVzcGVjdGl2ZSBwcml2YXRlIGVuZHBvaW50IGNvbm5lY3Rpb25zIGZvciB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUxpbmtBY2Nlc3M/OiBTdG9yYWdlQWNjb3VudE5ldHdvcmtSdWxlc1ByaXZhdGVMaW5rQWNjZXNzQVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY291bnRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByZXBsaWNhdGlvbiB0byB1c2UgZm9yIHRoZSBzdG9yYWdlIGFjY291bnQuIFRoaXMgZGV0ZXJtaW5lcyBob3cgeW91ciBkYXRhIGlzIHJlcGxpY2F0ZWQgYWNyb3NzIEF6dXJlJ3MgaW5mcmFzdHJ1Y3R1cmUuXG4gICAqIEV4YW1wbGUgdmFsdWVzOiBMUlMgKExvY2FsbHkgUmVkdW5kYW50IFN0b3JhZ2UpLCBHUlMgKEdlby1SZWR1bmRhbnQgU3RvcmFnZSksIFJBR1JTIChSZWFkIEFjY2VzcyBHZW8tUmVkdW5kYW50IFN0b3JhZ2UpLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudFJlcGxpY2F0aW9uVHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBlcmZvcm1hbmNlIHRpZXIgb2YgdGhlIHN0b3JhZ2UgYWNjb3VudC4gRGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBoYXJkd2FyZSBhbmQgcGVyZm9ybWFuY2UgbGV2ZWwuXG4gICAqIEV4YW1wbGUgdmFsdWVzOiBTdGFuZGFyZCwgUHJlbWl1bS5cbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRUaWVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgcmVnaW9uIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN0b3JhZ2UgYWNjb3VudC4gTXVzdCBiZSB1bmlxdWUgYWNyb3NzIEF6dXJlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQXp1cmUgcmVzb3VyY2UgZ3JvdXAgaW4gd2hpY2ggdG8gY3JlYXRlIHRoZSBzdG9yYWdlIGFjY291bnQuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwPzogUmVzb3VyY2VHcm91cDtcblxuICAvKipcbiAgICogVGFncyB0byBhcHBseSB0byB0aGUgc3RvcmFnZSBhY2NvdW50LCB1c2VkIGZvciBjYXRlZ29yaXphdGlvbiBhbmQgYmlsbGluZyBwdXJwb3Nlcy5cbiAgICogRm9ybWF0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQSBib29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIGVuZm9yY2UgSFRUUFMgZm9yIGRhdGEgdHJhbnNmZXIgdG8gdGhlIHN0b3JhZ2UgYWNjb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUh0dHBzVHJhZmZpY09ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYW5hZ2VkIFNlcnZpY2UgSWRlbnRpdHkgKE1TSSkgZGV0YWlscy4gVXNlZCBmb3IgZW5hYmxpbmcgYW5kIG1hbmFnaW5nIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgKEFBRCkgYXV0aGVudGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eT86IGFueTsgLy8gUmVwbGFjZSAnYW55JyB3aXRoIGEgbW9yZSBzcGVjaWZpYyB0eXBlIGlmIGF2YWlsYWJsZS5cblxuICAvKipcbiAgICogVGhlIGRhdGEgYWNjZXNzIHRpZXIgb2YgdGhlIHN0b3JhZ2UgYWNjb3VudCwgd2hpY2ggaW1wYWN0cyBzdG9yYWdlIGNvc3RzIGFuZCBkYXRhIHJldHJpZXZhbCBzcGVlZHMuXG4gICAqIEV4YW1wbGUgdmFsdWVzOiBIb3QsIENvb2wuXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NUaWVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBIaWVyYXJjaGljYWwgTmFtZXNwYWNlIChITlMpIGlzIGVuYWJsZWQsIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBBenVyZSBEYXRhIExha2UgU3RvcmFnZSBHZW4yIGZlYXR1cmVzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNIbnNFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gVExTIHZlcnNpb24gdG8gYmUgdXNlZCBmb3Igc2VjdXJpbmcgY29ubmVjdGlvbnMgdG8gdGhlIHN0b3JhZ2UgYWNjb3VudC5cbiAgICogRXhhbXBsZSB2YWx1ZXM6IFRMUzFfMCwgVExTMV8xLCBUTFMxXzIuXG4gICAqL1xuICByZWFkb25seSBtaW5UbHNWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgcHVibGljIG5ldHdvcmsgYWNjZXNzIHRvIHRoZSBzdG9yYWdlIGFjY291bnQgaXMgYWxsb3dlZC5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY05ldHdvcmtBY2Nlc3NFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F6dXJlcm0vMy45Mi4wL2RvY3MvcmVzb3VyY2VzL3N0b3JhZ2VfYWNjb3VudCNhY2NvdW50X2tpbmQgU3RvcmFnZUFjY291bnQjYWNjb3VudF9raW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudEtpbmQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBenVyZSBTdG9yYWdlIEFjY291bnQgd2l0aGluIGEgVGVycmFmb3JtIGRlcGxveW1lbnQuXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIG1ldGhvZHMgdG8gZWFzaWx5IG1hbmFnZSBzdG9yYWdlIHJlc291cmNlcyBzdWNoIGFzIENvbnRhaW5lcnMsXG4gKiBGaWxlIFNoYXJlcywgVGFibGVzLCBRdWV1ZXMsIGFuZCBOZXR3b3JrIFJ1bGVzLlxuICpcbiAqIEV4YW1wbGUgdXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzdG9yYWdlQWNjb3VudCA9IG5ldyBBenVyZVN0b3JhZ2VBY2NvdW50KHRoaXMsICdzdG9yYWdlYWNjb3VudCcsIHtcbiAqICAgbmFtZTogJ215U3RvcmFnZUFjY291bnQnLFxuICogICBsb2NhdGlvbjogJ0Vhc3QgVVMnLFxuICogICByZXNvdXJjZUdyb3VwOiBteVJlc291cmNlR3JvdXAsXG4gKiAgIGFjY291bnRSZXBsaWNhdGlvblR5cGU6ICdMUlMnLFxuICogICBhY2NvdW50VGllcjogJ1N0YW5kYXJkJyxcbiAqICAgLy8gb3RoZXIgcHJvcGVydGllc1xuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEFjY291bnQgZXh0ZW5kcyBBenVyZVJlc291cmNlV2l0aEFsZXJ0IHtcbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBBY2NvdW50UHJvcHM7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcbiAgcHVibGljIHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIHB1YmxpYyByZWFkb25seSBhY2NvdW50S2luZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjb3VudFRpZXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXJzOiBNYXA8c3RyaW5nLCBDb250YWluZXI+O1xuICBwcml2YXRlIHJlYWRvbmx5IHNoYXJlczogTWFwPHN0cmluZywgRmlsZVNoYXJlPjtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWJsZXM6IE1hcDxzdHJpbmcsIFRhYmxlPjtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgYSBuZXcgQXp1cmVTdG9yYWdlQWNjb3VudC5cbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgc2NvcGVkIGNvbnN0cnVjdCBJRC5cbiAgICogQHBhcmFtIHByb3BzIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIEF6dXJlIFN0b3JhZ2UgQWNjb3VudC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBY2NvdW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMucmVzb3VyY2VHcm91cCA9IHRoaXMuc2V0dXBSZXNvdXJjZUdyb3VwKHByb3BzKTtcbiAgICB0aGlzLmNvbnRhaW5lcnMgPSBuZXcgTWFwPHN0cmluZywgQ29udGFpbmVyPigpO1xuICAgIHRoaXMuc2hhcmVzID0gbmV3IE1hcDxzdHJpbmcsIEZpbGVTaGFyZT4oKTtcbiAgICB0aGlzLnRhYmxlcyA9IG5ldyBNYXA8c3RyaW5nLCBUYWJsZT4oKTtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuICAgIHRoaXMubG9jYXRpb24gPSBwcm9wcy5sb2NhdGlvbjtcblxuICAgIC8vIGRlZmF1bHQgU3RvcmFnZSBBY2NvdW50IFNldHRpbmdzXG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBhY2NvdW50UmVwbGljYXRpb25UeXBlOiBcIkxSU1wiLFxuICAgICAgYWNjb3VudFRpZXI6IFwiU3RhbmRhcmRcIixcbiAgICAgIGVuYWJsZUh0dHBzVHJhZmZpY09ubHk6IHRydWUsXG4gICAgICBhY2Nlc3NUaWVyOiBcIkhvdFwiLFxuICAgICAgaXNIbnNFbmFibGVkOiB0cnVlLFxuICAgICAgbWluVGxzVmVyc2lvbjogXCJUTFMxXzJcIixcbiAgICAgIHB1YmxpY25ldHdvcmtBY2Nlc3NFbmFibGVkOiBmYWxzZSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH07XG5cbiAgICAvLyBDcmVhdGUgdGhlIHN0b3JhZ2UgYWNjb3VudFxuICAgIGNvbnN0IHN0b3JhZ2VBY2NvdW50ID0gbmV3IFN0b3JhZ2VBY2NvdW50KHRoaXMsIFwic3RvcmFnZWFjY291bnRcIiwge1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICBuYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHRoaXMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgbG9jYXRpb246IHByb3BzLmxvY2F0aW9uLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICB9KTtcblxuICAgIHRoaXMuaWQgPSBzdG9yYWdlQWNjb3VudC5pZDtcbiAgICB0aGlzLm5hbWUgPSBzdG9yYWdlQWNjb3VudC5uYW1lO1xuICAgIHRoaXMuYWNjb3VudEtpbmQgPSBzdG9yYWdlQWNjb3VudC5hY2NvdW50S2luZDtcbiAgICB0aGlzLmFjY291bnRUaWVyID0gc3RvcmFnZUFjY291bnQuYWNjb3VudFRpZXI7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5ldyBjb250YWluZXIgdG8gdGhlIHN0b3JhZ2UgYWNjb3VudC5cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIGNvbnRhaW5lckFjY2Vzc1R5cGUgVGhlIGFjY2VzcyB0eXBlIG9mIHRoZSBjb250YWluZXIgKGUuZy4sICdibG9iJywgJ3ByaXZhdGUnKS5cbiAgICogQHBhcmFtIG1ldGFkYXRhIE1ldGFkYXRhIGZvciB0aGUgY29udGFpbmVyLlxuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBBenVyZVN0b3JhZ2VDb250YWluZXIuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgYSBjb250YWluZXIgd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGNvbnRhaW5lciA9IHN0b3JhZ2VBY2NvdW50LmFkZENvbnRhaW5lcignbXlDb250YWluZXInLCAncHJpdmF0ZScpO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhZGRDb250YWluZXIoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNvbnRhaW5lckFjY2Vzc1R5cGU/OiBzdHJpbmcsXG4gICAgbWV0YWRhdGE/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICApOiBDb250YWluZXIge1xuICAgIGlmICh0aGlzLmNvbnRhaW5lcnMuaGFzKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbnRhaW5lciAnJHtuYW1lfScgYWxyZWFkeSBleGlzdHMuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3Q29udGFpbmVyID0gbmV3IENvbnRhaW5lcih0aGlzLCBuYW1lLCB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgc3RvcmFnZUFjY291bnROYW1lOiB0aGlzLm5hbWUsXG4gICAgICBjb250YWluZXJBY2Nlc3NUeXBlOiBjb250YWluZXJBY2Nlc3NUeXBlIHx8IFwicHJpdmF0ZVwiLFxuICAgICAgbWV0YWRhdGE6IG1ldGFkYXRhIHx8IHt9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb250YWluZXJzLnNldChuYW1lLCBuZXdDb250YWluZXIpO1xuICAgIHJldHVybiBuZXdDb250YWluZXI7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5ldyBmaWxlIHNoYXJlIHRvIHRoZSBzdG9yYWdlIGFjY291bnQuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHNoYXJlLlxuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgcHJvcGVydGllcyBmb3IgdGhlIGZpbGUgc2hhcmUgKGUuZy4sIHF1b3RhLCBhY2Nlc3MgdGllcikuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIEF6dXJlU3RvcmFnZVNoYXJlLlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIGEgc2hhcmUgd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGZpbGVTaGFyZSA9IHN0b3JhZ2VBY2NvdW50LmFkZFNoYXJlKCdteUZpbGVTaGFyZScsIHsgcXVvdGE6IDEwMjQsIGFjY2Vzc1RpZXI6ICdIb3QnIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhZGRGaWxlU2hhcmUobmFtZTogc3RyaW5nLCBwcm9wcz86IEZpbGVTaGFyZVByb3BzKTogRmlsZVNoYXJlIHtcbiAgICBpZiAodGhpcy5zaGFyZXMuaGFzKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNoYXJlICcke25hbWV9JyBhbHJlYWR5IGV4aXN0cy5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIHF1b3RhOiBwcm9wcz8ucXVvdGEgfHwgMTAyNCxcbiAgICAgIGFjY2Vzc1RpZXI6IHByb3BzPy5hY2Nlc3NUaWVyIHx8IFwiSG90XCIsXG4gICAgICBlbmFibGVkUHJvdG9jb2w6IHByb3BzPy5lbmFibGVkUHJvdG9jb2wgfHwgXCJTTUJcIixcbiAgICAgIGFjbDogcHJvcHM/LmFjbCB8fCBbXSxcbiAgICAgIG1ldGFkYXRhOiBwcm9wcz8ubWV0YWRhdGEgfHwge30sXG4gICAgfTtcblxuICAgIGNvbnN0IG5ld1NoYXJlID0gbmV3IEZpbGVTaGFyZSh0aGlzLCBuYW1lLCB7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICBzdG9yYWdlQWNjb3VudE5hbWU6IHRoaXMubmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMuc2hhcmVzLnNldChuYW1lLCBuZXdTaGFyZSk7XG4gICAgcmV0dXJuIG5ld1NoYXJlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgdGFibGUgdG8gdGhlIHN0b3JhZ2UgYWNjb3VudC5cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHRhYmxlLlxuICAgKiBAcGFyYW0gYWNsIE9wdGlvbmFsIGFjY2VzcyBjb250cm9sIGxpc3QgZm9yIHRoZSB0YWJsZS5cbiAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgQXp1cmVTdG9yYWdlVGFibGUuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgYSB0YWJsZSB3aXRoIHRoZSBzYW1lIG5hbWUgYWxyZWFkeSBleGlzdHMuXG4gICAqXG4gICAqIEV4YW1wbGUgdXNhZ2U6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgdGFibGUgPSBzdG9yYWdlQWNjb3VudC5hZGRUYWJsZSgnbXlUYWJsZScpO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhZGRUYWJsZShuYW1lOiBzdHJpbmcsIGFjbD86IFN0b3JhZ2VUYWJsZUFjbFtdKTogVGFibGUge1xuICAgIGlmICh0aGlzLnRhYmxlcy5oYXMobmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGFibGUgJyR7bmFtZX0nIGFscmVhZHkgZXhpc3RzLmApO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1RhYmxlID0gbmV3IFRhYmxlKHRoaXMsIG5hbWUsIHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICBzdG9yYWdlQWNjb3VudE5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGFjbDogYWNsLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWJsZXMuc2V0KG5hbWUsIG5ld1RhYmxlKTtcbiAgICByZXR1cm4gbmV3VGFibGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5ldyBxdWV1ZSB0byB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcXVldWUuXG4gICAqIEBwYXJhbSBtZXRhZGF0YSBPcHRpb25hbCBtZXRhZGF0YSBmb3IgdGhlIHF1ZXVlLlxuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBBenVyZVN0b3JhZ2VRdWV1ZS5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBxdWV1ZSA9IHN0b3JhZ2VBY2NvdW50LmFkZFF1ZXVlKCdteVF1ZXVlJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFkZFF1ZXVlKG5hbWU6IHN0cmluZywgbWV0YWRhdGE/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogUXVldWUge1xuICAgIHJldHVybiBuZXcgUXVldWUodGhpcywgbmFtZSwge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHN0b3JhZ2VBY2NvdW50TmFtZTogdGhpcy5uYW1lLFxuICAgICAgbWV0YWRhdGE6IG1ldGFkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbmV0d29yayBydWxlcyB0byB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKiBAcGFyYW0gcHJvcHMgQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgbmV0d29yayBydWxlcy5cbiAgICogQHJldHVybnMgVGhlIGNvbmZpZ3VyZWQgU3RvcmFnZUFjY291bnROZXR3b3JrUnVsZXNBLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIHN0b3JhZ2VBY2NvdW50LmFkZE5ldHdvcmtSdWxlcyh7XG4gICAqICAgICBieXBhc3M6IFsnQXp1cmVTZXJ2aWNlcyddLFxuICAgKiAgICAgZGVmYXVsdEFjdGlvbjogJ0RlbnknLFxuICAgKiAgICAgaXBSdWxlczogWycxLjIuMy40LzMyJ10sXG4gICAqICAgICB2aXJ0dWFsTmV0d29ya1N1Ym5ldElkczogWydzdWJuZXRJZCddLFxuICAgKiAgfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFkZE5ldHdvcmtSdWxlcyhcbiAgICBwcm9wczogTmV0d29ya1J1bGVzUHJvcHMsXG4gICk6IFN0b3JhZ2VBY2NvdW50TmV0d29ya1J1bGVzQSB7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlQWNjb3VudE5ldHdvcmtSdWxlc0EodGhpcywgXCJydWxlc1wiLCB7XG4gICAgICBzdG9yYWdlQWNjb3VudElkOiB0aGlzLmlkLFxuICAgICAgYnlwYXNzOiBwcm9wcy5ieXBhc3MsXG4gICAgICBkZWZhdWx0QWN0aW9uOiBwcm9wcy5kZWZhdWx0QWN0aW9uLFxuICAgICAgaXBSdWxlczogcHJvcHMuaXBSdWxlcyxcbiAgICAgIHZpcnR1YWxOZXR3b3JrU3VibmV0SWRzOiBwcm9wcy52aXJ0dWFsTmV0d29ya1N1Ym5ldElkcyxcbiAgICAgIHByaXZhdGVMaW5rQWNjZXNzOiBwcm9wcy5wcml2YXRlTGlua0FjY2VzcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
224
|
+
Account[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_storageaccount.Account", version: "0.0.3-pre.7" };
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1zdG9yYWdlYWNjb3VudC9saWIvYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGlGQUE2RTtBQUM3RSw2R0FHbUU7QUFHbkUsMkNBQXdDO0FBQ3hDLDJDQUF3RDtBQUN4RCxtQ0FBZ0M7QUFDaEMsbUNBQWdDO0FBQ2hDLDhDQUE4RDtBQTBHOUQsTUFBYSxPQUFRLFNBQVEsNEJBQXNCO0lBWWpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0NHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQjtRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFFL0IsbUNBQW1DO1FBQ25DLE1BQU0sUUFBUSxHQUFHO1lBQ2Ysc0JBQXNCLEVBQUUsS0FBSztZQUM3QixXQUFXLEVBQUUsVUFBVTtZQUN2QixzQkFBc0IsRUFBRSxJQUFJO1lBQzVCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLDBCQUEwQixFQUFFLEtBQUs7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LElBQUk7WUFDVixrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUM3QixHQUFHLEVBQUUsR0FBRztTQUNULENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoQyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUVJLFFBQVEsQ0FBQyxJQUFZLEVBQUUsUUFBb0M7UUFDaEUsT0FBTyxJQUFJLGFBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQzNCLElBQUksRUFBRSxJQUFJO1lBQ1Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDN0IsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUVJLGVBQWUsQ0FDcEIsS0FBd0I7UUFFeEIsT0FBTyxJQUFJLDJEQUEyQixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDcEQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDekIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtZQUNsQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLHVCQUF1QjtZQUN0RCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBclBILDBCQXNQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBTdG9yYWdlQWNjb3VudCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvc3RvcmFnZS1hY2NvdW50XCI7XG5pbXBvcnQge1xuICBTdG9yYWdlQWNjb3VudE5ldHdvcmtSdWxlc0EsXG4gIFN0b3JhZ2VBY2NvdW50TmV0d29ya1J1bGVzUHJpdmF0ZUxpbmtBY2Nlc3NBLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N0b3JhZ2UtYWNjb3VudC1uZXR3b3JrLXJ1bGVzXCI7XG5pbXBvcnQgeyBTdG9yYWdlVGFibGVBY2wgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N0b3JhZ2UtdGFibGVcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi9jb250YWluZXJcIjtcbmltcG9ydCB7IEZpbGVTaGFyZSwgRmlsZVNoYXJlUHJvcHMgfSBmcm9tIFwiLi9maWxlc2hhcmVcIjtcbmltcG9ydCB7IFF1ZXVlIH0gZnJvbSBcIi4vcXVldWVcIjtcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcIi4vdGFibGVcIjtcbmltcG9ydCB7IEF6dXJlUmVzb3VyY2VXaXRoQWxlcnQgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUnVsZXNQcm9wcyB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hpY2ggdHJhZmZpYyB0byBieXBhc3MgZnJvbSB0aGUgbmV0d29yayBydWxlcy4gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgJ0F6dXJlU2VydmljZXMnLCAnTG9nZ2luZycsICdNZXRyaWNzJyxcbiAgICogYW5kICdOb25lJy4gQnlwYXNzaW5nICdBenVyZVNlcnZpY2VzJyBlbmFibGVzIEF6dXJlJ3MgaW50ZXJuYWwgc2VydmljZXMgdG8gYWNjZXNzIHRoZSBzdG9yYWdlIGFjY291bnQuXG4gICAqL1xuICByZWFkb25seSBieXBhc3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYWN0aW9uIG9mIHRoZSBuZXR3b3JrIHJ1bGUgc2V0LiBPcHRpb25zIGFyZSAnQWxsb3cnIG9yICdEZW55Jy4gU2V0IHRvICdEZW55JyB0byBlbmFibGUgbmV0d29yayBydWxlcyBhbmQgcmVzdHJpY3RcbiAgICogYWNjZXNzIHRvIHRoZSBzdG9yYWdlIGFjY291bnQuICdBbGxvdycgcGVybWl0cyBhY2Nlc3MgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRBY3Rpb246IHN0cmluZztcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgSVAgcnVsZXMgdG8gYWxsb3cgYWNjZXNzIHRvIHRoZSBzdG9yYWdlIGFjY291bnQuIFRoZXNlIGFyZSBzcGVjaWZpZWQgYXMgQ0lEUiByYW5nZXMuXG4gICAqIEV4YW1wbGU6IFsnMS4yLjMuNC8zMicsICc1LjYuNy4wLzI0J10gdG8gYWxsb3cgc3BlY2lmaWMgSVBzL3N1Ym5ldHMuXG4gICAqL1xuICByZWFkb25seSBpcFJ1bGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHZpcnR1YWwgbmV0d29yayBzdWJuZXQgSURzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSBzdG9yYWdlIGFjY291bnQuIFRoaXMgZW5hYmxlcyB5b3UgdG8gc2VjdXJlIHRoZSBzdG9yYWdlXG4gICAqIGFjY291bnQgdG8gYSBzcGVjaWZpYyB2aXJ0dWFsIG5ldHdvcmsgYW5kIHN1Ym5ldCB3aXRoaW4gQXp1cmUuXG4gICAqL1xuICByZWFkb25seSB2aXJ0dWFsTmV0d29ya1N1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBvYmplY3RzIHJlcHJlc2VudGluZyB0aGUgcHJpdmF0ZSBsaW5rIGFjY2VzcyBzZXR0aW5ncy4gRWFjaCBvYmplY3QgaW4gdGhlIGFycmF5IGRlZmluZXMgdGhlIHN1Yi1yZXNvdXJjZSBuYW1lXG4gICAqIChlLmcuLCAnYmxvYicsICdmaWxlJykgYW5kIGl0cyByZXNwZWN0aXZlIHByaXZhdGUgZW5kcG9pbnQgY29ubmVjdGlvbnMgZm9yIHRoZSBzdG9yYWdlIGFjY291bnQuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlTGlua0FjY2Vzcz86IFN0b3JhZ2VBY2NvdW50TmV0d29ya1J1bGVzUHJpdmF0ZUxpbmtBY2Nlc3NBW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3VudFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHJlcGxpY2F0aW9uIHRvIHVzZSBmb3IgdGhlIHN0b3JhZ2UgYWNjb3VudC4gVGhpcyBkZXRlcm1pbmVzIGhvdyB5b3VyIGRhdGEgaXMgcmVwbGljYXRlZCBhY3Jvc3MgQXp1cmUncyBpbmZyYXN0cnVjdHVyZS5cbiAgICogRXhhbXBsZSB2YWx1ZXM6IExSUyAoTG9jYWxseSBSZWR1bmRhbnQgU3RvcmFnZSksIEdSUyAoR2VvLVJlZHVuZGFudCBTdG9yYWdlKSwgUkFHUlMgKFJlYWQgQWNjZXNzIEdlby1SZWR1bmRhbnQgU3RvcmFnZSkuXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50UmVwbGljYXRpb25UeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyZm9ybWFuY2UgdGllciBvZiB0aGUgc3RvcmFnZSBhY2NvdW50LiBEZXRlcm1pbmVzIHRoZSB0eXBlIG9mIGhhcmR3YXJlIGFuZCBwZXJmb3JtYW5jZSBsZXZlbC5cbiAgICogRXhhbXBsZSB2YWx1ZXM6IFN0YW5kYXJkLCBQcmVtaXVtLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudFRpZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBenVyZSByZWdpb24gaW4gd2hpY2ggdG8gY3JlYXRlIHRoZSBzdG9yYWdlIGFjY291bnQuXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RvcmFnZSBhY2NvdW50LiBNdXN0IGJlIHVuaXF1ZSBhY3Jvc3MgQXp1cmUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBBenVyZSByZXNvdXJjZSBncm91cCBpbiB3aGljaCB0byBjcmVhdGUgdGhlIHN0b3JhZ2UgYWNjb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXA/OiBSZXNvdXJjZUdyb3VwO1xuXG4gIC8qKlxuICAgKiBUYWdzIHRvIGFwcGx5IHRvIHRoZSBzdG9yYWdlIGFjY291bnQsIHVzZWQgZm9yIGNhdGVnb3JpemF0aW9uIGFuZCBiaWxsaW5nIHB1cnBvc2VzLlxuICAgKiBGb3JtYXQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBBIGJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gZW5mb3JjZSBIVFRQUyBmb3IgZGF0YSB0cmFuc2ZlciB0byB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlSHR0cHNUcmFmZmljT25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE1hbmFnZWQgU2VydmljZSBJZGVudGl0eSAoTVNJKSBkZXRhaWxzLiBVc2VkIGZvciBlbmFibGluZyBhbmQgbWFuYWdpbmcgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSAoQUFEKSBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aXR5PzogYW55OyAvLyBSZXBsYWNlICdhbnknIHdpdGggYSBtb3JlIHNwZWNpZmljIHR5cGUgaWYgYXZhaWxhYmxlLlxuXG4gIC8qKlxuICAgKiBUaGUgZGF0YSBhY2Nlc3MgdGllciBvZiB0aGUgc3RvcmFnZSBhY2NvdW50LCB3aGljaCBpbXBhY3RzIHN0b3JhZ2UgY29zdHMgYW5kIGRhdGEgcmV0cmlldmFsIHNwZWVkcy5cbiAgICogRXhhbXBsZSB2YWx1ZXM6IEhvdCwgQ29vbC5cbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc1RpZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIEhpZXJhcmNoaWNhbCBOYW1lc3BhY2UgKEhOUykgaXMgZW5hYmxlZCwgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIEF6dXJlIERhdGEgTGFrZSBTdG9yYWdlIEdlbjIgZmVhdHVyZXMuXG4gICAqL1xuICByZWFkb25seSBpc0huc0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBUTFMgdmVyc2lvbiB0byBiZSB1c2VkIGZvciBzZWN1cmluZyBjb25uZWN0aW9ucyB0byB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKiBFeGFtcGxlIHZhbHVlczogVExTMV8wLCBUTFMxXzEsIFRMUzFfMi5cbiAgICovXG4gIHJlYWRvbmx5IG1pblRsc1ZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgYm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciBwdWJsaWMgbmV0d29yayBhY2Nlc3MgdG8gdGhlIHN0b3JhZ2UgYWNjb3VudCBpcyBhbGxvd2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXp1cmVybS8zLjkyLjAvZG9jcy9yZXNvdXJjZXMvc3RvcmFnZV9hY2NvdW50I2FjY291bnRfa2luZCBTdG9yYWdlQWNjb3VudCNhY2NvdW50X2tpbmR9XG4gICAqL1xuICByZWFkb25seSBhY2NvdW50S2luZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFjY291bnQgZXh0ZW5kcyBBenVyZVJlc291cmNlV2l0aEFsZXJ0IHtcbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBBY2NvdW50UHJvcHM7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcbiAgcHVibGljIHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIHB1YmxpYyByZWFkb25seSBhY2NvdW50S2luZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjb3VudFRpZXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXJzOiBNYXA8c3RyaW5nLCBDb250YWluZXI+O1xuICBwcml2YXRlIHJlYWRvbmx5IHNoYXJlczogTWFwPHN0cmluZywgRmlsZVNoYXJlPjtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWJsZXM6IE1hcDxzdHJpbmcsIFRhYmxlPjtcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBhbiBBenVyZSBTdG9yYWdlIEFjY291bnQgd2l0aGluIGEgVGVycmFmb3JtIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBjcmVhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBhbiBBenVyZSBTdG9yYWdlIEFjY291bnQsIHdoaWNoIGlzIGEgc2NhbGFibGUgYW5kIHNlY3VyZSBzZXJ2aWNlXG4gICAqIGZvciBzdG9yaW5nIGxhcmdlIGFtb3VudHMgb2YgdW5zdHJ1Y3R1cmVkIGRhdGEgdGhhdCBjYW4gYmUgYWNjZXNzZWQgZnJvbSBhbnl3aGVyZSBpbiB0aGUgd29ybGQgb3ZlciBIVFRQIG9yIEhUVFBTLiBDb21tb24gdXNlc1xuICAgKiBvZiB0aGUgQXp1cmUgU3RvcmFnZSBBY2NvdW50IGluY2x1ZGUgc3RvcmluZyBvZiBibG9icyAob2JqZWN0cyksIGZpbGUgc2hhcmVzLCB0YWJsZXMsIGFuZCBxdWV1ZXMuIFRoaXMgY2xhc3MgcHJvdmlkZXMgbWV0aG9kc1xuICAgKiB0byBtYW5hZ2Ugc3RvcmFnZSByZXNvdXJjZXMsIGNvbmZpZ3VyZSBuZXR3b3JrIHJ1bGVzLCBhbmQgaW50ZWdyYXRlIHdpdGggQXp1cmUgQWN0aXZlIERpcmVjdG9yeSBmb3Igc2VjdXJlIGFjY2VzcyBtYW5hZ2VtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0LCB0eXBpY2FsbHkgcmVwcmVzZW50aW5nIHRoZSBDbG91ZCBEZXZlbG9wbWVudCBLaXQgKENESykgc3RhY2suXG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZSBvZiB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgcHJvcGVydGllcyByZXF1aXJlZCB0byBjb25maWd1cmUgdGhlIEF6dXJlIFN0b3JhZ2UgQWNjb3VudCwgYXMgZGVmaW5lZCBpbiB0aGUgQWNjb3VudFByb3BzIGludGVyZmFjZS4gVGhlc2UgaW5jbHVkZTpcbiAgICogICAgICAgICAgICAgICAgLSBgbmFtZWA6IFRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGFjY291bnQsIHdoaWNoIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgQXp1cmUgcmVnaW9uLlxuICAgKiAgICAgICAgICAgICAgICAtIGBsb2NhdGlvbmA6IFRoZSBBenVyZSByZWdpb24gd2hlcmUgdGhlIHN0b3JhZ2UgYWNjb3VudCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqICAgICAgICAgICAgICAgIC0gYHJlc291cmNlR3JvdXBgOiBUaGUgQXp1cmUgUmVzb3VyY2UgR3JvdXAgdW5kZXIgd2hpY2ggdGhlIHN0b3JhZ2UgYWNjb3VudCB3aWxsIGJlIGRlcGxveWVkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBhY2NvdW50UmVwbGljYXRpb25UeXBlYDogVGhlIHR5cGUgb2YgZGF0YSByZXBsaWNhdGlvbiB0byBlbnN1cmUgZGF0YSBkdXJhYmlsaXR5IGFuZCBhdmFpbGFiaWxpdHkuXG4gICAqICAgICAgICAgICAgICAgIC0gYGFjY291bnRUaWVyYDogVGhlIHBlcmZvcm1hbmNlIHRpZXIgdGhhdCBhZmZlY3RzIHRoZSB0eXBlIG9mIGhhcmR3YXJlIHVzZWQgZm9yIHRoZSBzdG9yYWdlIGFjY291bnQuXG4gICAqICAgICAgICAgICAgICAgIC0gYHRhZ3NgOiBBIGRpY3Rpb25hcnkgb2YgdGFncyB0byBhcHBseSB0byB0aGUgc3RvcmFnZSBhY2NvdW50IGZvciBvcmdhbml6YXRpb25hbCBwdXJwb3Nlcy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBzdG9yYWdlQWNjb3VudCA9IG5ldyBBY2NvdW50KHRoaXMsICdNeVN0b3JhZ2VBY2NvdW50Jywge1xuICAgKiAgIGxvY2F0aW9uOiAnRWFzdCBVUycsXG4gICAqICAgbmFtZTogJ215U3RvcmFnZUFjY291bnQnLFxuICAgKiAgIHJlc291cmNlR3JvdXA6IG15UmVzb3VyY2VHcm91cCxcbiAgICogICBhY2NvdW50UmVwbGljYXRpb25UeXBlOiAnTFJTJyxcbiAgICogICBhY2NvdW50VGllcjogJ1N0YW5kYXJkJyxcbiAgICogICBlbmFibGVIdHRwc1RyYWZmaWNPbmx5OiB0cnVlLFxuICAgKiAgIHRhZ3M6IHtcbiAgICogICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbidcbiAgICogICB9XG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICogVGhpcyBjbGFzcyBzZXRzIHVwIHRoZSBzdG9yYWdlIGFjY291bnQgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb25zLCBoYW5kbGVzIHJlc291cmNlIGFsbG9jYXRpb24sIGFuZCBhcHBsaWVzIHNlY3VyaXR5XG4gICAqIHNldHRpbmdzIGJhc2VkIG9uIHRoZSBwcm9wZXJ0aWVzIHByb3ZpZGVkLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFjY291bnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5yZXNvdXJjZUdyb3VwID0gdGhpcy5zZXR1cFJlc291cmNlR3JvdXAocHJvcHMpO1xuICAgIHRoaXMuY29udGFpbmVycyA9IG5ldyBNYXA8c3RyaW5nLCBDb250YWluZXI+KCk7XG4gICAgdGhpcy5zaGFyZXMgPSBuZXcgTWFwPHN0cmluZywgRmlsZVNoYXJlPigpO1xuICAgIHRoaXMudGFibGVzID0gbmV3IE1hcDxzdHJpbmcsIFRhYmxlPigpO1xuICAgIHRoaXMubmFtZSA9IHByb3BzLm5hbWU7XG4gICAgdGhpcy5sb2NhdGlvbiA9IHByb3BzLmxvY2F0aW9uO1xuXG4gICAgLy8gZGVmYXVsdCBTdG9yYWdlIEFjY291bnQgU2V0dGluZ3NcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGFjY291bnRSZXBsaWNhdGlvblR5cGU6IFwiTFJTXCIsXG4gICAgICBhY2NvdW50VGllcjogXCJTdGFuZGFyZFwiLFxuICAgICAgZW5hYmxlSHR0cHNUcmFmZmljT25seTogdHJ1ZSxcbiAgICAgIGFjY2Vzc1RpZXI6IFwiSG90XCIsXG4gICAgICBpc0huc0VuYWJsZWQ6IHRydWUsXG4gICAgICBtaW5UbHNWZXJzaW9uOiBcIlRMUzFfMlwiLFxuICAgICAgcHVibGljbmV0d29ya0FjY2Vzc0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcblxuICAgIC8vIENyZWF0ZSB0aGUgc3RvcmFnZSBhY2NvdW50XG4gICAgY29uc3Qgc3RvcmFnZUFjY291bnQgPSBuZXcgU3RvcmFnZUFjY291bnQodGhpcywgXCJzdG9yYWdlYWNjb3VudFwiLCB7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogdGhpcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICBsb2NhdGlvbjogcHJvcHMubG9jYXRpb24sXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pZCA9IHN0b3JhZ2VBY2NvdW50LmlkO1xuICAgIHRoaXMubmFtZSA9IHN0b3JhZ2VBY2NvdW50Lm5hbWU7XG4gICAgdGhpcy5hY2NvdW50S2luZCA9IHN0b3JhZ2VBY2NvdW50LmFjY291bnRLaW5kO1xuICAgIHRoaXMuYWNjb3VudFRpZXIgPSBzdG9yYWdlQWNjb3VudC5hY2NvdW50VGllcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbmV3IGNvbnRhaW5lciB0byB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyLiBJdCBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHN0b3JhZ2UgYWNjb3VudC5cbiAgICogQHBhcmFtIGNvbnRhaW5lckFjY2Vzc1R5cGUgVGhlIGxldmVsIG9mIHB1YmxpYyBhY2Nlc3MgdG8gdGhlIGNvbnRhaW5lci4gRGVmYXVsdHMgdG8gJ3ByaXZhdGUnLlxuICAgKiBAcGFyYW0gbWV0YWRhdGEgT3B0aW9uYWwgbWV0YWRhdGEgZm9yIHRoZSBjb250YWluZXIgYXMga2V5LXZhbHVlIHBhaXJzLlxuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBDb250YWluZXIgaW5zdGFuY2UuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgYSBjb250YWluZXIgd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzIHdpdGhpbiB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGEgbmV3IGNvbnRhaW5lciB3aXRoaW4gdGhlIEF6dXJlIHN0b3JhZ2UgYWNjb3VudCwgYWxsb3dpbmcgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIG9mIGFjY2Vzc1xuICAgKiBsZXZlbCBhbmQgbWV0YWRhdGEuIElmIHRoZSBjb250YWluZXIgYWxyZWFkeSBleGlzdHMsIGl0IHRocm93cyBhbiBlcnJvciB0byBwcmV2ZW50IGR1cGxpY2F0aW9uLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGNvbnRhaW5lciA9IHN0b3JhZ2VBY2NvdW50LmFkZENvbnRhaW5lcignbXlDb250YWluZXInLCAncHJpdmF0ZScsIHsgb3duZXI6ICdJVCcgfSk7XG4gICAqIGBgYFxuICAgKi9cblxuICBwdWJsaWMgYWRkQ29udGFpbmVyKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBjb250YWluZXJBY2Nlc3NUeXBlPzogc3RyaW5nLFxuICAgIG1ldGFkYXRhPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgKTogQ29udGFpbmVyIHtcbiAgICBpZiAodGhpcy5jb250YWluZXJzLmhhcyhuYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb250YWluZXIgJyR7bmFtZX0nIGFscmVhZHkgZXhpc3RzLmApO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0NvbnRhaW5lciA9IG5ldyBDb250YWluZXIodGhpcywgbmFtZSwge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHN0b3JhZ2VBY2NvdW50TmFtZTogdGhpcy5uYW1lLFxuICAgICAgY29udGFpbmVyQWNjZXNzVHlwZTogY29udGFpbmVyQWNjZXNzVHlwZSB8fCBcInByaXZhdGVcIixcbiAgICAgIG1ldGFkYXRhOiBtZXRhZGF0YSB8fCB7fSxcbiAgICB9KTtcblxuICAgIHRoaXMuY29udGFpbmVycy5zZXQobmFtZSwgbmV3Q29udGFpbmVyKTtcbiAgICByZXR1cm4gbmV3Q29udGFpbmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgZmlsZSBzaGFyZSB0byB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZmlsZSBzaGFyZS4gTXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBzdG9yYWdlIGFjY291bnQuXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBwcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyB0aGUgZmlsZSBzaGFyZSwgc3VjaCBhcyBxdW90YSBhbmQgYWNjZXNzIHRpZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIEZpbGVTaGFyZSBpbnN0YW5jZS5cbiAgICogQHRocm93cyBFcnJvciBpZiBhIGZpbGUgc2hhcmUgd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBmYWNpbGl0YXRlcyB0aGUgYWRkaXRpb24gb2YgYSBmaWxlIHNoYXJlIHRvIHRoZSBzdG9yYWdlIGFjY291bnQsIHdpdGggb3B0aW9uYWwgc2V0dGluZ3MgZm9yXG4gICAqIGNhcGFjaXR5IChxdW90YSkgYW5kIGRhdGEgYWNjZXNzIGZyZXF1ZW5jeSAoYWNjZXNzIHRpZXIpLiBJZiBhIGZpbGUgc2hhcmUgd2l0aCB0aGUgc2FtZSBuYW1lIGV4aXN0cywgYW4gZXJyb3IgaXMgdGhyb3duLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGZpbGVTaGFyZSA9IHN0b3JhZ2VBY2NvdW50LmFkZEZpbGVTaGFyZSgnbXlGaWxlU2hhcmUnLCB7IHF1b3RhOiAxMDI0LCBhY2Nlc3NUaWVyOiAnSG90JyB9KTtcbiAgICogYGBgXG4gICAqL1xuXG4gIHB1YmxpYyBhZGRGaWxlU2hhcmUobmFtZTogc3RyaW5nLCBwcm9wcz86IEZpbGVTaGFyZVByb3BzKTogRmlsZVNoYXJlIHtcbiAgICBpZiAodGhpcy5zaGFyZXMuaGFzKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNoYXJlICcke25hbWV9JyBhbHJlYWR5IGV4aXN0cy5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIHF1b3RhOiBwcm9wcz8ucXVvdGEgfHwgMTAyNCxcbiAgICAgIGFjY2Vzc1RpZXI6IHByb3BzPy5hY2Nlc3NUaWVyIHx8IFwiSG90XCIsXG4gICAgICBlbmFibGVkUHJvdG9jb2w6IHByb3BzPy5lbmFibGVkUHJvdG9jb2wgfHwgXCJTTUJcIixcbiAgICAgIGFjbDogcHJvcHM/LmFjbCB8fCBbXSxcbiAgICAgIG1ldGFkYXRhOiBwcm9wcz8ubWV0YWRhdGEgfHwge30sXG4gICAgfTtcblxuICAgIGNvbnN0IG5ld1NoYXJlID0gbmV3IEZpbGVTaGFyZSh0aGlzLCBuYW1lLCB7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICBzdG9yYWdlQWNjb3VudE5hbWU6IHRoaXMubmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMuc2hhcmVzLnNldChuYW1lLCBuZXdTaGFyZSk7XG4gICAgcmV0dXJuIG5ld1NoYXJlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgdGFibGUgdG8gdGhlIHN0b3JhZ2UgYWNjb3VudC5cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHRhYmxlLiBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHN0b3JhZ2UgYWNjb3VudC5cbiAgICogQHBhcmFtIGFjbCBPcHRpb25hbCBhY2Nlc3MgY29udHJvbCBsaXN0IGZvciB0aGUgdGFibGUsIHNwZWNpZnlpbmcgcGVybWlzc2lvbnMuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIFRhYmxlIGluc3RhbmNlLlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIGEgdGFibGUgd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGEgbmV3IHRhYmxlIHdpdGhpbiB0aGUgc3RvcmFnZSBhY2NvdW50LCBvcHRpb25hbGx5IGFsbG93aW5nIGZvciBhY2Nlc3MgY29udHJvbCBjb25maWd1cmF0aW9ucy5cbiAgICogSXQgdGhyb3dzIGFuIGVycm9yIGlmIGEgdGFibGUgd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzLCBlbnN1cmluZyB1bmlxdWVuZXNzIHdpdGhpbiB0aGUgYWNjb3VudC5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCB0YWJsZSA9IHN0b3JhZ2VBY2NvdW50LmFkZFRhYmxlKCdteVRhYmxlJywgW3sgaWQ6ICdwb2xpY3kxJywgdHlwZTogJ3JlYWQnIH1dKTtcbiAgICogYGBgXG4gICAqL1xuXG4gIHB1YmxpYyBhZGRUYWJsZShuYW1lOiBzdHJpbmcsIGFjbD86IFN0b3JhZ2VUYWJsZUFjbFtdKTogVGFibGUge1xuICAgIGlmICh0aGlzLnRhYmxlcy5oYXMobmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGFibGUgJyR7bmFtZX0nIGFscmVhZHkgZXhpc3RzLmApO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1RhYmxlID0gbmV3IFRhYmxlKHRoaXMsIG5hbWUsIHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICBzdG9yYWdlQWNjb3VudE5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGFjbDogYWNsLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWJsZXMuc2V0KG5hbWUsIG5ld1RhYmxlKTtcbiAgICByZXR1cm4gbmV3VGFibGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5ldyBxdWV1ZSB0byB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcXVldWUuIE11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgc3RvcmFnZSBhY2NvdW50LlxuICAgKiBAcGFyYW0gbWV0YWRhdGEgT3B0aW9uYWwgbWV0YWRhdGEgZm9yIHRoZSBxdWV1ZSBhcyBrZXktdmFsdWUgcGFpcnMuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIFF1ZXVlIGluc3RhbmNlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGEgbmV3IHF1ZXVlIGluIHRoZSBzdG9yYWdlIGFjY291bnQsIHdpdGggb3B0aW9uYWwgbWV0YWRhdGEuIEl0IGlzIHVzZWZ1bCBmb3IgbWVzc2FnZSBxdWV1aW5nXG4gICAqIGluIGFwcGxpY2F0aW9ucywgZW5hYmxpbmcgYXN5bmNocm9ub3VzIHRhc2sgcHJvY2Vzc2luZyBhbmQgaW50ZXItc2VydmljZSBjb21tdW5pY2F0aW9uLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHF1ZXVlID0gc3RvcmFnZUFjY291bnQuYWRkUXVldWUoJ215UXVldWUnLCB7IHByaW9yaXR5OiAnaGlnaCcgfSk7XG4gICAqIGBgYFxuICAgKi9cblxuICBwdWJsaWMgYWRkUXVldWUobmFtZTogc3RyaW5nLCBtZXRhZGF0YT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBRdWV1ZSB7XG4gICAgcmV0dXJuIG5ldyBRdWV1ZSh0aGlzLCBuYW1lLCB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgc3RvcmFnZUFjY291bnROYW1lOiB0aGlzLm5hbWUsXG4gICAgICBtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBuZXR3b3JrIHJ1bGVzIHRvIHRoZSBzdG9yYWdlIGFjY291bnQgdG8gY29udHJvbCBhY2Nlc3MgYmFzZWQgb24gSVAgYW5kIHZpcnR1YWwgbmV0d29yayBzZXR0aW5ncy5cbiAgICogQHBhcmFtIHByb3BzIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIG5ldHdvcmsgcnVsZXMsIGluY2x1ZGluZyBhbGxvd2VkIElQcyBhbmQgdmlydHVhbCBuZXR3b3JrIHN1Ym5ldCBJRHMuXG4gICAqIEByZXR1cm5zIFRoZSBjb25maWd1cmVkIG5ldHdvcmsgcnVsZXMuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgbmV0d29yayBydWxlcyBmb3IgdGhlIHN0b3JhZ2UgYWNjb3VudCwgc3BlY2lmeWluZyB3aGljaCBJUHMgYW5kIHZpcnR1YWwgbmV0d29ya3MgY2FuIGFjY2Vzc1xuICAgKiB0aGUgc3RvcmFnZSByZXNvdXJjZXMuIEl0IGFsbG93cyBkZXRhaWxlZCBjb250cm9sIG92ZXIgZGF0YSBzZWN1cml0eSBhbmQgYWNjZXNzIG1hbmFnZW1lbnQuXG4gICAqXG4gICAqIEV4YW1wbGUgdXNhZ2U6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogc3RvcmFnZUFjY291bnQuYWRkTmV0d29ya1J1bGVzKHtcbiAgICogICBieXBhc3M6IFsnQXp1cmVTZXJ2aWNlcyddLFxuICAgKiAgIGRlZmF1bHRBY3Rpb246ICdEZW55JyxcbiAgICogICBpcFJ1bGVzOiBbJzEuMi4zLjQvMzInXSxcbiAgICogICB2aXJ0dWFsTmV0d29ya1N1Ym5ldElkczogWydzdWJuZXRJZCddLFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuXG4gIHB1YmxpYyBhZGROZXR3b3JrUnVsZXMoXG4gICAgcHJvcHM6IE5ldHdvcmtSdWxlc1Byb3BzLFxuICApOiBTdG9yYWdlQWNjb3VudE5ldHdvcmtSdWxlc0Ege1xuICAgIHJldHVybiBuZXcgU3RvcmFnZUFjY291bnROZXR3b3JrUnVsZXNBKHRoaXMsIFwicnVsZXNcIiwge1xuICAgICAgc3RvcmFnZUFjY291bnRJZDogdGhpcy5pZCxcbiAgICAgIGJ5cGFzczogcHJvcHMuYnlwYXNzLFxuICAgICAgZGVmYXVsdEFjdGlvbjogcHJvcHMuZGVmYXVsdEFjdGlvbixcbiAgICAgIGlwUnVsZXM6IHByb3BzLmlwUnVsZXMsXG4gICAgICB2aXJ0dWFsTmV0d29ya1N1Ym5ldElkczogcHJvcHMudmlydHVhbE5ldHdvcmtTdWJuZXRJZHMsXG4gICAgICBwcml2YXRlTGlua0FjY2VzczogcHJvcHMucHJpdmF0ZUxpbmtBY2Nlc3MsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,19 +6,62 @@ export declare class Container extends Construct {
|
|
|
6
6
|
private readonly blobs;
|
|
7
7
|
private readonly storageAccountName;
|
|
8
8
|
private readonly storageContainerName;
|
|
9
|
+
/**
|
|
10
|
+
* Represents an Azure Storage Container within a specific Azure Storage Account.
|
|
11
|
+
*
|
|
12
|
+
* This class is designed for the creation and management of an Azure Storage Container, which serves as a unit of storage
|
|
13
|
+
* that houses data objects, known as blobs. Containers are analogous to directories in a file system, and are used to organize
|
|
14
|
+
* sets of blobs within a storage account. This class allows for granular control over blob storage, providing functionalities
|
|
15
|
+
* such as setting access levels, managing metadata, and implementing security measures like encryption scopes.
|
|
16
|
+
*
|
|
17
|
+
* @param scope - The scope in which to define this construct, typically a reference to the Cloud Development Kit (CDK) stack.
|
|
18
|
+
* @param id - The unique identifier for this instance of the container.
|
|
19
|
+
* @param props - Configuration properties for the Azure Storage Container, based on the StorageContainerConfig interface. These include:
|
|
20
|
+
* - `name`: The name of the storage container, which must be unique within the associated storage account.
|
|
21
|
+
* - `storageAccountName`: The name of the storage account where this container is located.
|
|
22
|
+
* - `containerAccessType`: Defines the level of public access to the container. Options include 'container',
|
|
23
|
+
* 'blob', or 'none', controlling how the blobs within the container can be accessed.
|
|
24
|
+
* - `defaultEncryptionScope`: Specifies the default encryption scope for the container, enhancing data security.
|
|
25
|
+
* - `encryptionScopeOverrideEnabled`: Allows or prevents overriding the encryption scope on a per-blob basis.
|
|
26
|
+
* - `metadata`: Key-value pairs that provide additional information about the container, which can be used for
|
|
27
|
+
* organizational, search, or billing purposes.
|
|
28
|
+
* - `timeouts`: Specifies custom timeout settings for CRUD operations on the container, providing control over
|
|
29
|
+
* operation durations and retries.
|
|
30
|
+
*
|
|
31
|
+
* Example usage:
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const storageContainer = new Container(this, 'MyContainer', {
|
|
34
|
+
* name: 'mycontainer',
|
|
35
|
+
* storageAccountName: 'mystorageaccount',
|
|
36
|
+
* containerAccessType: 'blob',
|
|
37
|
+
* defaultEncryptionScope: 'myEncryptionScope',
|
|
38
|
+
* encryptionScopeOverrideEnabled: true,
|
|
39
|
+
* metadata: {
|
|
40
|
+
* department: 'Finance'
|
|
41
|
+
* }
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
* This instantiation sets up a storage container with specified properties including access types and metadata. It is ready
|
|
45
|
+
* to house blobs and provides methods to manage these blobs effectively.
|
|
46
|
+
*/
|
|
9
47
|
constructor(scope: Construct, id: string, props: StorageContainerConfig);
|
|
10
48
|
/**
|
|
11
|
-
* Adds a blob to
|
|
49
|
+
* Adds a blob to this Azure Storage Container.
|
|
12
50
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* @returns The created AzureStorageBlob instance.
|
|
51
|
+
* This method facilitates the addition of a blob to an Azure Storage Container managed by this class. It handles the creation and
|
|
52
|
+
* configuration of the blob, including setting its type, source content, and metadata. This is useful for uploading various types
|
|
53
|
+
* of unstructured data, such as images, videos, documents, or other binary files, into a cloud-based storage solution.
|
|
17
54
|
*
|
|
18
|
-
*
|
|
19
|
-
* the source of the blob's content
|
|
20
|
-
*
|
|
21
|
-
*
|
|
55
|
+
* @param blobName - The name of the blob to be added, which will be used as the blob's unique identifier within the container.
|
|
56
|
+
* @param filePath - The file path or URL for the source of the blob's content. This specifies the location of the file to be uploaded.
|
|
57
|
+
* @param props - Optional configuration properties for the blob, which include:
|
|
58
|
+
* - `type`: The type of the blob (e.g., 'Block', 'Append', 'Page'). Default is 'Block'.
|
|
59
|
+
* - `contentType`: The MIME type of the blob's content, such as 'application/octet-stream' for binary data. This helps browsers
|
|
60
|
+
* and other clients handle the file correctly when it's downloaded or accessed.
|
|
61
|
+
* - `metadata`: A dictionary of key-value pairs to store as metadata with the blob. Metadata is typically used to store additional
|
|
62
|
+
* details about the blob, such as tags, descriptions, or other attributes.
|
|
63
|
+
*
|
|
64
|
+
* @returns The newly created Blob object, which represents the blob added to the storage container.
|
|
22
65
|
*
|
|
23
66
|
* Example usage:
|
|
24
67
|
* ```typescript
|
|
@@ -28,13 +71,52 @@ export declare class Container extends Construct {
|
|
|
28
71
|
* metadata: { customKey: 'customValue' }
|
|
29
72
|
* });
|
|
30
73
|
* ```
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
74
|
+
* In this example, a new blob named 'exampleBlob' is added to the storage container. The content of the blob is sourced
|
|
75
|
+
* from a local file specified by `filePath`. The blob is configured as a 'Block' type with 'text/plain' content type and
|
|
76
|
+
* custom metadata. The method returns the blob instance for further use or reference.
|
|
34
77
|
*/
|
|
35
78
|
addBlob(blobName: string, filePath: string, props?: StorageBlobConfig): Blob;
|
|
36
79
|
}
|
|
37
80
|
export declare class Blob extends Construct {
|
|
38
81
|
readonly name: string;
|
|
82
|
+
/**
|
|
83
|
+
* Represents a blob within an Azure Storage Container.
|
|
84
|
+
*
|
|
85
|
+
* This class is responsible for the creation and management of a blob in an Azure Storage Container. Blobs are unstructured
|
|
86
|
+
* data objects, which can include files like images, documents, videos, or any other file type. The Blob class provides a way
|
|
87
|
+
* to manage these files in the cloud, allowing for scalable, durable, and accessible data storage. This class supports various
|
|
88
|
+
* blob types such as block blobs for text and binary data, append blobs for log files, and page blobs for large volumes of
|
|
89
|
+
* random access data.
|
|
90
|
+
*
|
|
91
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
|
|
92
|
+
* @param id - The unique identifier for this instance of the blob.
|
|
93
|
+
* @param props - Configuration properties for the Azure Storage Blob. These properties may include:
|
|
94
|
+
* - `name`: The name of the blob, which must be unique within the container.
|
|
95
|
+
* - `storageAccountName`: The name of the storage account in which the blob is stored.
|
|
96
|
+
* - `storageContainerName`: The name of the storage container in which the blob resides.
|
|
97
|
+
* - `type`: The type of the blob (e.g., 'Block', 'Append', 'Page').
|
|
98
|
+
* - `source`: The source of the blob's content, which could be a path to a file or a URL.
|
|
99
|
+
* - `contentType`: The MIME type of the blob's content, such as 'application/octet-stream' for binary data.
|
|
100
|
+
* - `metadata`: A dictionary of strings that represents metadata to associate with the blob.
|
|
101
|
+
* - `accessTier`: The data access tier, affecting storage costs and data retrieval speeds.
|
|
102
|
+
* - `cacheControl`, `contentEncoding`, `contentDisposition`, `contentMd5`: Optional parameters for controlling the caching behavior,
|
|
103
|
+
* encoding, content disposition, and integrity check of the blob.
|
|
104
|
+
*
|
|
105
|
+
* Example usage:
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const myBlob = new Blob(this, 'MyBlob', {
|
|
108
|
+
* name: 'exampleblob',
|
|
109
|
+
* storageAccountName: 'mystorageaccount',
|
|
110
|
+
* storageContainerName: 'mycontainer',
|
|
111
|
+
* type: 'Block',
|
|
112
|
+
* source: './path/to/file.jpg',
|
|
113
|
+
* contentType: 'image/jpeg',
|
|
114
|
+
* metadata: {
|
|
115
|
+
* author: 'John Doe'
|
|
116
|
+
* }
|
|
117
|
+
* });
|
|
118
|
+
* ```
|
|
119
|
+
* This class initializes a blob with the specified configurations and handles the uploading of content from the specified source.
|
|
120
|
+
*/
|
|
39
121
|
constructor(scope: Construct, id: string, props: StorageBlobConfig);
|
|
40
122
|
}
|
|
@@ -7,6 +7,44 @@ const storage_blob_1 = require("@cdktf/provider-azurerm/lib/storage-blob");
|
|
|
7
7
|
const storage_container_1 = require("@cdktf/provider-azurerm/lib/storage-container");
|
|
8
8
|
const constructs_1 = require("constructs");
|
|
9
9
|
class Container extends constructs_1.Construct {
|
|
10
|
+
/**
|
|
11
|
+
* Represents an Azure Storage Container within a specific Azure Storage Account.
|
|
12
|
+
*
|
|
13
|
+
* This class is designed for the creation and management of an Azure Storage Container, which serves as a unit of storage
|
|
14
|
+
* that houses data objects, known as blobs. Containers are analogous to directories in a file system, and are used to organize
|
|
15
|
+
* sets of blobs within a storage account. This class allows for granular control over blob storage, providing functionalities
|
|
16
|
+
* such as setting access levels, managing metadata, and implementing security measures like encryption scopes.
|
|
17
|
+
*
|
|
18
|
+
* @param scope - The scope in which to define this construct, typically a reference to the Cloud Development Kit (CDK) stack.
|
|
19
|
+
* @param id - The unique identifier for this instance of the container.
|
|
20
|
+
* @param props - Configuration properties for the Azure Storage Container, based on the StorageContainerConfig interface. These include:
|
|
21
|
+
* - `name`: The name of the storage container, which must be unique within the associated storage account.
|
|
22
|
+
* - `storageAccountName`: The name of the storage account where this container is located.
|
|
23
|
+
* - `containerAccessType`: Defines the level of public access to the container. Options include 'container',
|
|
24
|
+
* 'blob', or 'none', controlling how the blobs within the container can be accessed.
|
|
25
|
+
* - `defaultEncryptionScope`: Specifies the default encryption scope for the container, enhancing data security.
|
|
26
|
+
* - `encryptionScopeOverrideEnabled`: Allows or prevents overriding the encryption scope on a per-blob basis.
|
|
27
|
+
* - `metadata`: Key-value pairs that provide additional information about the container, which can be used for
|
|
28
|
+
* organizational, search, or billing purposes.
|
|
29
|
+
* - `timeouts`: Specifies custom timeout settings for CRUD operations on the container, providing control over
|
|
30
|
+
* operation durations and retries.
|
|
31
|
+
*
|
|
32
|
+
* Example usage:
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const storageContainer = new Container(this, 'MyContainer', {
|
|
35
|
+
* name: 'mycontainer',
|
|
36
|
+
* storageAccountName: 'mystorageaccount',
|
|
37
|
+
* containerAccessType: 'blob',
|
|
38
|
+
* defaultEncryptionScope: 'myEncryptionScope',
|
|
39
|
+
* encryptionScopeOverrideEnabled: true,
|
|
40
|
+
* metadata: {
|
|
41
|
+
* department: 'Finance'
|
|
42
|
+
* }
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
* This instantiation sets up a storage container with specified properties including access types and metadata. It is ready
|
|
46
|
+
* to house blobs and provides methods to manage these blobs effectively.
|
|
47
|
+
*/
|
|
10
48
|
constructor(scope, id, props) {
|
|
11
49
|
super(scope, id);
|
|
12
50
|
this.blobs = new Map();
|
|
@@ -22,17 +60,22 @@ class Container extends constructs_1.Construct {
|
|
|
22
60
|
this.storageContainerName = container.name;
|
|
23
61
|
}
|
|
24
62
|
/**
|
|
25
|
-
* Adds a blob to
|
|
63
|
+
* Adds a blob to this Azure Storage Container.
|
|
26
64
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* @returns The created AzureStorageBlob instance.
|
|
65
|
+
* This method facilitates the addition of a blob to an Azure Storage Container managed by this class. It handles the creation and
|
|
66
|
+
* configuration of the blob, including setting its type, source content, and metadata. This is useful for uploading various types
|
|
67
|
+
* of unstructured data, such as images, videos, documents, or other binary files, into a cloud-based storage solution.
|
|
31
68
|
*
|
|
32
|
-
*
|
|
33
|
-
* the source of the blob's content
|
|
34
|
-
*
|
|
35
|
-
*
|
|
69
|
+
* @param blobName - The name of the blob to be added, which will be used as the blob's unique identifier within the container.
|
|
70
|
+
* @param filePath - The file path or URL for the source of the blob's content. This specifies the location of the file to be uploaded.
|
|
71
|
+
* @param props - Optional configuration properties for the blob, which include:
|
|
72
|
+
* - `type`: The type of the blob (e.g., 'Block', 'Append', 'Page'). Default is 'Block'.
|
|
73
|
+
* - `contentType`: The MIME type of the blob's content, such as 'application/octet-stream' for binary data. This helps browsers
|
|
74
|
+
* and other clients handle the file correctly when it's downloaded or accessed.
|
|
75
|
+
* - `metadata`: A dictionary of key-value pairs to store as metadata with the blob. Metadata is typically used to store additional
|
|
76
|
+
* details about the blob, such as tags, descriptions, or other attributes.
|
|
77
|
+
*
|
|
78
|
+
* @returns The newly created Blob object, which represents the blob added to the storage container.
|
|
36
79
|
*
|
|
37
80
|
* Example usage:
|
|
38
81
|
* ```typescript
|
|
@@ -42,9 +85,9 @@ class Container extends constructs_1.Construct {
|
|
|
42
85
|
* metadata: { customKey: 'customValue' }
|
|
43
86
|
* });
|
|
44
87
|
* ```
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
88
|
+
* In this example, a new blob named 'exampleBlob' is added to the storage container. The content of the blob is sourced
|
|
89
|
+
* from a local file specified by `filePath`. The blob is configured as a 'Block' type with 'text/plain' content type and
|
|
90
|
+
* custom metadata. The method returns the blob instance for further use or reference.
|
|
48
91
|
*/
|
|
49
92
|
addBlob(blobName, filePath, props) {
|
|
50
93
|
const newStorageBlob = new Blob(this, blobName, {
|
|
@@ -62,8 +105,47 @@ class Container extends constructs_1.Construct {
|
|
|
62
105
|
}
|
|
63
106
|
exports.Container = Container;
|
|
64
107
|
_a = JSII_RTTI_SYMBOL_1;
|
|
65
|
-
Container[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_storageaccount.Container", version: "0.0.3-pre.
|
|
108
|
+
Container[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_storageaccount.Container", version: "0.0.3-pre.7" };
|
|
66
109
|
class Blob extends constructs_1.Construct {
|
|
110
|
+
/**
|
|
111
|
+
* Represents a blob within an Azure Storage Container.
|
|
112
|
+
*
|
|
113
|
+
* This class is responsible for the creation and management of a blob in an Azure Storage Container. Blobs are unstructured
|
|
114
|
+
* data objects, which can include files like images, documents, videos, or any other file type. The Blob class provides a way
|
|
115
|
+
* to manage these files in the cloud, allowing for scalable, durable, and accessible data storage. This class supports various
|
|
116
|
+
* blob types such as block blobs for text and binary data, append blobs for log files, and page blobs for large volumes of
|
|
117
|
+
* random access data.
|
|
118
|
+
*
|
|
119
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
|
|
120
|
+
* @param id - The unique identifier for this instance of the blob.
|
|
121
|
+
* @param props - Configuration properties for the Azure Storage Blob. These properties may include:
|
|
122
|
+
* - `name`: The name of the blob, which must be unique within the container.
|
|
123
|
+
* - `storageAccountName`: The name of the storage account in which the blob is stored.
|
|
124
|
+
* - `storageContainerName`: The name of the storage container in which the blob resides.
|
|
125
|
+
* - `type`: The type of the blob (e.g., 'Block', 'Append', 'Page').
|
|
126
|
+
* - `source`: The source of the blob's content, which could be a path to a file or a URL.
|
|
127
|
+
* - `contentType`: The MIME type of the blob's content, such as 'application/octet-stream' for binary data.
|
|
128
|
+
* - `metadata`: A dictionary of strings that represents metadata to associate with the blob.
|
|
129
|
+
* - `accessTier`: The data access tier, affecting storage costs and data retrieval speeds.
|
|
130
|
+
* - `cacheControl`, `contentEncoding`, `contentDisposition`, `contentMd5`: Optional parameters for controlling the caching behavior,
|
|
131
|
+
* encoding, content disposition, and integrity check of the blob.
|
|
132
|
+
*
|
|
133
|
+
* Example usage:
|
|
134
|
+
* ```typescript
|
|
135
|
+
* const myBlob = new Blob(this, 'MyBlob', {
|
|
136
|
+
* name: 'exampleblob',
|
|
137
|
+
* storageAccountName: 'mystorageaccount',
|
|
138
|
+
* storageContainerName: 'mycontainer',
|
|
139
|
+
* type: 'Block',
|
|
140
|
+
* source: './path/to/file.jpg',
|
|
141
|
+
* contentType: 'image/jpeg',
|
|
142
|
+
* metadata: {
|
|
143
|
+
* author: 'John Doe'
|
|
144
|
+
* }
|
|
145
|
+
* });
|
|
146
|
+
* ```
|
|
147
|
+
* This class initializes a blob with the specified configurations and handles the uploading of content from the specified source.
|
|
148
|
+
*/
|
|
67
149
|
constructor(scope, id, props) {
|
|
68
150
|
super(scope, id);
|
|
69
151
|
// Create a storage container
|
|
@@ -81,5 +163,5 @@ class Blob extends constructs_1.Construct {
|
|
|
81
163
|
}
|
|
82
164
|
exports.Blob = Blob;
|
|
83
165
|
_b = JSII_RTTI_SYMBOL_1;
|
|
84
|
-
Blob[_b] = { fqn: "@microsoft/terraform-cdk-constructs.azure_storageaccount.Blob", version: "0.0.3-pre.
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXN0b3JhZ2VhY2NvdW50L2xpYi9jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyRUFHa0Q7QUFDbEQscUZBR3VEO0FBQ3ZELDJDQUF1QztBQUV2QyxNQUFhLFNBQVUsU0FBUSxzQkFBUztJQU10QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBZ0IsQ0FBQztRQUVyQyw2QkFBNkI7UUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxvQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3hELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCO1lBQzVDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7WUFDOUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO1FBQ25ELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bd0JHO0lBQ0gsT0FBTyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0IsRUFBRSxLQUF5QjtRQUNuRSxNQUFNLGNBQWMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQzlDLElBQUksRUFBRSxRQUFRO1lBQ2Qsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMzQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1lBQy9DLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLE9BQU87WUFDNUIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLElBQUksMEJBQTBCO1lBQzdELFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7O0FBN0RILDhCQThEQzs7O0FBRUQsTUFBYSxJQUFLLFNBQVEsc0JBQVM7SUFHakMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLDZCQUE2QjtRQUM3QixJQUFJLDBCQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUM1QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUM1QyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CO1lBQ2hELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQzs7QUFsQkgsb0JBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgU3RvcmFnZUJsb2IsXG4gIFN0b3JhZ2VCbG9iQ29uZmlnLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N0b3JhZ2UtYmxvYlwiO1xuaW1wb3J0IHtcbiAgU3RvcmFnZUNvbnRhaW5lcixcbiAgU3RvcmFnZUNvbnRhaW5lckNvbmZpZyxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdG9yYWdlLWNvbnRhaW5lclwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmxvYnM6IE1hcDxzdHJpbmcsIEJsb2I+O1xuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VBY2NvdW50TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VDb250YWluZXJOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0b3JhZ2VDb250YWluZXJDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5ibG9icyA9IG5ldyBNYXA8c3RyaW5nLCBCbG9iPigpO1xuXG4gICAgLy8gQ3JlYXRlIGEgc3RvcmFnZSBjb250YWluZXJcbiAgICBjb25zdCBjb250YWluZXIgPSBuZXcgU3RvcmFnZUNvbnRhaW5lcih0aGlzLCBcImNvbnRhaW5lclwiLCB7XG4gICAgICBuYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgc3RvcmFnZUFjY291bnROYW1lOiBwcm9wcy5zdG9yYWdlQWNjb3VudE5hbWUsXG4gICAgICBjb250YWluZXJBY2Nlc3NUeXBlOiBwcm9wcy5jb250YWluZXJBY2Nlc3NUeXBlLFxuICAgICAgbWV0YWRhdGE6IHByb3BzLm1ldGFkYXRhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcbiAgICB0aGlzLnN0b3JhZ2VBY2NvdW50TmFtZSA9IHByb3BzLnN0b3JhZ2VBY2NvdW50TmFtZTtcbiAgICB0aGlzLnN0b3JhZ2VDb250YWluZXJOYW1lID0gY29udGFpbmVyLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGJsb2IgdG8gYW4gQXp1cmUgU3RvcmFnZSBDb250YWluZXIuXG4gICAqXG4gICAqIEBwYXJhbSBibG9iTmFtZSBUaGUgbmFtZSBvZiB0aGUgYmxvYiB0byBiZSBhZGRlZC5cbiAgICogQHBhcmFtIGZpbGVQYXRoIFRoZSBmaWxlIHBhdGggb3IgVVJMIGZvciB0aGUgc291cmNlIG9mIHRoZSBibG9iJ3MgY29udGVudC5cbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIGJsb2IsIHN1Y2ggYXMgYmxvYiB0eXBlLCBjb250ZW50IHR5cGUsIGFuZCBtZXRhZGF0YS5cbiAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgQXp1cmVTdG9yYWdlQmxvYiBpbnN0YW5jZS5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgZW5hYmxlcyB0aGUgYWRkaXRpb24gb2YgYSBibG9iIHRvIGFuIEF6dXJlIFN0b3JhZ2UgQ29udGFpbmVyLiBJdCBhbGxvd3Mgc3BlY2lmeWluZ1xuICAgKiB0aGUgc291cmNlIG9mIHRoZSBibG9iJ3MgY29udGVudCwgYXMgd2VsbCBhcyBvdGhlciBwcm9wZXJ0aWVzIGxpa2UgdGhlIGJsb2IncyB0eXBlIChkZWZhdWx0IGlzICdCbG9jaycpLFxuICAgKiBjb250ZW50IHR5cGUsIGFuZCBtZXRhZGF0YS4gVGhlIGBmaWxlUGF0aGAgcGFyYW1ldGVyIHNob3VsZCBwb2ludCB0byB0aGUgbG9jYXRpb24gb2YgdGhlIGZpbGUgdG8gYmVcbiAgICogdXBsb2FkZWQgYXMgYSBibG9iLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHN0b3JhZ2VCbG9iID0gc3RvcmFnZUNvbnRhaW5lci5hZGRCbG9iKCdleGFtcGxlQmxvYicsICcuL3BhdGgvdG8vbG9jYWwvZmlsZS50eHQnLCB7XG4gICAqICAgdHlwZTogJ0Jsb2NrJyxcbiAgICogICBjb250ZW50VHlwZTogJ3RleHQvcGxhaW4nLFxuICAgKiAgIG1ldGFkYXRhOiB7IGN1c3RvbUtleTogJ2N1c3RvbVZhbHVlJyB9XG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogSW4gdGhpcyBleGFtcGxlLCBhIGJsb2IgbmFtZWQgJ2V4YW1wbGVCbG9iJyBpcyBhZGRlZCB0byB0aGUgc3RvcmFnZSBjb250YWluZXIuIFRoZSBjb250ZW50IG9mIHRoZSBibG9iXG4gICAqIGlzIHNvdXJjZWQgZnJvbSBhIGxvY2FsIGZpbGUuIFRoZSBibG9iIGlzIG9mIHR5cGUgJ0Jsb2NrJyB3aXRoIGEgY29udGVudCB0eXBlIG9mICd0ZXh0L3BsYWluJyBhbmQgY3VzdG9tIG1ldGFkYXRhLlxuICAgKi9cbiAgYWRkQmxvYihibG9iTmFtZTogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nLCBwcm9wcz86IFN0b3JhZ2VCbG9iQ29uZmlnKTogQmxvYiB7XG4gICAgY29uc3QgbmV3U3RvcmFnZUJsb2IgPSBuZXcgQmxvYih0aGlzLCBibG9iTmFtZSwge1xuICAgICAgbmFtZTogYmxvYk5hbWUsXG4gICAgICBzdG9yYWdlQWNjb3VudE5hbWU6IHRoaXMuc3RvcmFnZUFjY291bnROYW1lLFxuICAgICAgc3RvcmFnZUNvbnRhaW5lck5hbWU6IHRoaXMuc3RvcmFnZUNvbnRhaW5lck5hbWUsXG4gICAgICB0eXBlOiBwcm9wcz8udHlwZSB8fCBcIkJsb2NrXCIsXG4gICAgICBzb3VyY2U6IGZpbGVQYXRoLFxuICAgICAgY29udGVudFR5cGU6IHByb3BzPy5jb250ZW50VHlwZSB8fCBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiLFxuICAgICAgbWV0YWRhdGE6IHByb3BzPy5tZXRhZGF0YSB8fCB7fSxcbiAgICB9KTtcbiAgICB0aGlzLmJsb2JzLnNldChibG9iTmFtZSwgbmV3U3RvcmFnZUJsb2IpO1xuICAgIHJldHVybiBuZXdTdG9yYWdlQmxvYjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmxvYiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RvcmFnZUJsb2JDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gQ3JlYXRlIGEgc3RvcmFnZSBjb250YWluZXJcbiAgICBuZXcgU3RvcmFnZUJsb2IodGhpcywgXCJibG9iXCIsIHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICBzdG9yYWdlQWNjb3VudE5hbWU6IHByb3BzLnN0b3JhZ2VBY2NvdW50TmFtZSxcbiAgICAgIHN0b3JhZ2VDb250YWluZXJOYW1lOiBwcm9wcy5zdG9yYWdlQ29udGFpbmVyTmFtZSxcbiAgICAgIHR5cGU6IHByb3BzLnR5cGUsXG4gICAgICBzb3VyY2U6IHByb3BzLnNvdXJjZSxcbiAgICAgIGNvbnRlbnRUeXBlOiBwcm9wcy5jb250ZW50VHlwZSxcbiAgICAgIG1ldGFkYXRhOiBwcm9wcy5tZXRhZGF0YSxcbiAgICB9KTtcblxuICAgIHRoaXMubmFtZSA9IHByb3BzLm5hbWU7XG4gIH1cbn1cbiJdfQ==
|
|
166
|
+
Blob[_b] = { fqn: "@microsoft/terraform-cdk-constructs.azure_storageaccount.Blob", version: "0.0.3-pre.7" };
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXN0b3JhZ2VhY2NvdW50L2xpYi9jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyRUFHa0Q7QUFDbEQscUZBR3VEO0FBQ3ZELDJDQUF1QztBQUV2QyxNQUFhLFNBQVUsU0FBUSxzQkFBUztJQU10Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFDRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFnQixDQUFDO1FBRXJDLDZCQUE2QjtRQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLG9DQUFnQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDeEQsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7WUFDNUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtZQUM5QyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUM7UUFDbkQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTZCRztJQUNILE9BQU8sQ0FBQyxRQUFnQixFQUFFLFFBQWdCLEVBQUUsS0FBeUI7UUFDbkUsTUFBTSxjQUFjLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxJQUFJLEVBQUUsUUFBUTtZQUNkLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0Msb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUMvQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxPQUFPO1lBQzVCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxJQUFJLDBCQUEwQjtZQUM3RCxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsSUFBSSxFQUFFO1NBQ2hDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN6QyxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDOztBQXhHSCw4QkF5R0M7OztBQUVELE1BQWEsSUFBSyxTQUFRLHNCQUFTO0lBR2pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXNDRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQiw2QkFBNkI7UUFDN0IsSUFBSSwwQkFBVyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDNUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7WUFDNUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtZQUNoRCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUM7O0FBekRILG9CQTBEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFN0b3JhZ2VCbG9iLFxuICBTdG9yYWdlQmxvYkNvbmZpZyxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdG9yYWdlLWJsb2JcIjtcbmltcG9ydCB7XG4gIFN0b3JhZ2VDb250YWluZXIsXG4gIFN0b3JhZ2VDb250YWluZXJDb25maWcsXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvc3RvcmFnZS1jb250YWluZXJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBDb250YWluZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGJsb2JzOiBNYXA8c3RyaW5nLCBCbG9iPjtcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlQWNjb3VudE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlQ29udGFpbmVyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGFuIEF6dXJlIFN0b3JhZ2UgQ29udGFpbmVyIHdpdGhpbiBhIHNwZWNpZmljIEF6dXJlIFN0b3JhZ2UgQWNjb3VudC5cbiAgICpcbiAgICogVGhpcyBjbGFzcyBpcyBkZXNpZ25lZCBmb3IgdGhlIGNyZWF0aW9uIGFuZCBtYW5hZ2VtZW50IG9mIGFuIEF6dXJlIFN0b3JhZ2UgQ29udGFpbmVyLCB3aGljaCBzZXJ2ZXMgYXMgYSB1bml0IG9mIHN0b3JhZ2VcbiAgICogdGhhdCBob3VzZXMgZGF0YSBvYmplY3RzLCBrbm93biBhcyBibG9icy4gQ29udGFpbmVycyBhcmUgYW5hbG9nb3VzIHRvIGRpcmVjdG9yaWVzIGluIGEgZmlsZSBzeXN0ZW0sIGFuZCBhcmUgdXNlZCB0byBvcmdhbml6ZVxuICAgKiBzZXRzIG9mIGJsb2JzIHdpdGhpbiBhIHN0b3JhZ2UgYWNjb3VudC4gVGhpcyBjbGFzcyBhbGxvd3MgZm9yIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBibG9iIHN0b3JhZ2UsIHByb3ZpZGluZyBmdW5jdGlvbmFsaXRpZXNcbiAgICogc3VjaCBhcyBzZXR0aW5nIGFjY2VzcyBsZXZlbHMsIG1hbmFnaW5nIG1ldGFkYXRhLCBhbmQgaW1wbGVtZW50aW5nIHNlY3VyaXR5IG1lYXN1cmVzIGxpa2UgZW5jcnlwdGlvbiBzY29wZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSBhIHJlZmVyZW5jZSB0byB0aGUgQ2xvdWQgRGV2ZWxvcG1lbnQgS2l0IChDREspIHN0YWNrLlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgQXp1cmUgU3RvcmFnZSBDb250YWluZXIsIGJhc2VkIG9uIHRoZSBTdG9yYWdlQ29udGFpbmVyQ29uZmlnIGludGVyZmFjZS4gVGhlc2UgaW5jbHVkZTpcbiAgICogICAgICAgICAgICAgICAgLSBgbmFtZWA6IFRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5lciwgd2hpY2ggbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBhc3NvY2lhdGVkIHN0b3JhZ2UgYWNjb3VudC5cbiAgICogICAgICAgICAgICAgICAgLSBgc3RvcmFnZUFjY291bnROYW1lYDogVGhlIG5hbWUgb2YgdGhlIHN0b3JhZ2UgYWNjb3VudCB3aGVyZSB0aGlzIGNvbnRhaW5lciBpcyBsb2NhdGVkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBjb250YWluZXJBY2Nlc3NUeXBlYDogRGVmaW5lcyB0aGUgbGV2ZWwgb2YgcHVibGljIGFjY2VzcyB0byB0aGUgY29udGFpbmVyLiBPcHRpb25zIGluY2x1ZGUgJ2NvbnRhaW5lcicsXG4gICAqICAgICAgICAgICAgICAgICAgJ2Jsb2InLCBvciAnbm9uZScsIGNvbnRyb2xsaW5nIGhvdyB0aGUgYmxvYnMgd2l0aGluIHRoZSBjb250YWluZXIgY2FuIGJlIGFjY2Vzc2VkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBkZWZhdWx0RW5jcnlwdGlvblNjb3BlYDogU3BlY2lmaWVzIHRoZSBkZWZhdWx0IGVuY3J5cHRpb24gc2NvcGUgZm9yIHRoZSBjb250YWluZXIsIGVuaGFuY2luZyBkYXRhIHNlY3VyaXR5LlxuICAgKiAgICAgICAgICAgICAgICAtIGBlbmNyeXB0aW9uU2NvcGVPdmVycmlkZUVuYWJsZWRgOiBBbGxvd3Mgb3IgcHJldmVudHMgb3ZlcnJpZGluZyB0aGUgZW5jcnlwdGlvbiBzY29wZSBvbiBhIHBlci1ibG9iIGJhc2lzLlxuICAgKiAgICAgICAgICAgICAgICAtIGBtZXRhZGF0YWA6IEtleS12YWx1ZSBwYWlycyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29udGFpbmVyLCB3aGljaCBjYW4gYmUgdXNlZCBmb3JcbiAgICogICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25hbCwgc2VhcmNoLCBvciBiaWxsaW5nIHB1cnBvc2VzLlxuICAgKiAgICAgICAgICAgICAgICAtIGB0aW1lb3V0c2A6IFNwZWNpZmllcyBjdXN0b20gdGltZW91dCBzZXR0aW5ncyBmb3IgQ1JVRCBvcGVyYXRpb25zIG9uIHRoZSBjb250YWluZXIsIHByb3ZpZGluZyBjb250cm9sIG92ZXJcbiAgICogICAgICAgICAgICAgICAgICBvcGVyYXRpb24gZHVyYXRpb25zIGFuZCByZXRyaWVzLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHN0b3JhZ2VDb250YWluZXIgPSBuZXcgQ29udGFpbmVyKHRoaXMsICdNeUNvbnRhaW5lcicsIHtcbiAgICogICBuYW1lOiAnbXljb250YWluZXInLFxuICAgKiAgIHN0b3JhZ2VBY2NvdW50TmFtZTogJ215c3RvcmFnZWFjY291bnQnLFxuICAgKiAgIGNvbnRhaW5lckFjY2Vzc1R5cGU6ICdibG9iJyxcbiAgICogICBkZWZhdWx0RW5jcnlwdGlvblNjb3BlOiAnbXlFbmNyeXB0aW9uU2NvcGUnLFxuICAgKiAgIGVuY3J5cHRpb25TY29wZU92ZXJyaWRlRW5hYmxlZDogdHJ1ZSxcbiAgICogICBtZXRhZGF0YToge1xuICAgKiAgICAgZGVwYXJ0bWVudDogJ0ZpbmFuY2UnXG4gICAqICAgfVxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqIFRoaXMgaW5zdGFudGlhdGlvbiBzZXRzIHVwIGEgc3RvcmFnZSBjb250YWluZXIgd2l0aCBzcGVjaWZpZWQgcHJvcGVydGllcyBpbmNsdWRpbmcgYWNjZXNzIHR5cGVzIGFuZCBtZXRhZGF0YS4gSXQgaXMgcmVhZHlcbiAgICogdG8gaG91c2UgYmxvYnMgYW5kIHByb3ZpZGVzIG1ldGhvZHMgdG8gbWFuYWdlIHRoZXNlIGJsb2JzIGVmZmVjdGl2ZWx5LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0b3JhZ2VDb250YWluZXJDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5ibG9icyA9IG5ldyBNYXA8c3RyaW5nLCBCbG9iPigpO1xuXG4gICAgLy8gQ3JlYXRlIGEgc3RvcmFnZSBjb250YWluZXJcbiAgICBjb25zdCBjb250YWluZXIgPSBuZXcgU3RvcmFnZUNvbnRhaW5lcih0aGlzLCBcImNvbnRhaW5lclwiLCB7XG4gICAgICBuYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgc3RvcmFnZUFjY291bnROYW1lOiBwcm9wcy5zdG9yYWdlQWNjb3VudE5hbWUsXG4gICAgICBjb250YWluZXJBY2Nlc3NUeXBlOiBwcm9wcy5jb250YWluZXJBY2Nlc3NUeXBlLFxuICAgICAgbWV0YWRhdGE6IHByb3BzLm1ldGFkYXRhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcbiAgICB0aGlzLnN0b3JhZ2VBY2NvdW50TmFtZSA9IHByb3BzLnN0b3JhZ2VBY2NvdW50TmFtZTtcbiAgICB0aGlzLnN0b3JhZ2VDb250YWluZXJOYW1lID0gY29udGFpbmVyLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGJsb2IgdG8gdGhpcyBBenVyZSBTdG9yYWdlIENvbnRhaW5lci5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgZmFjaWxpdGF0ZXMgdGhlIGFkZGl0aW9uIG9mIGEgYmxvYiB0byBhbiBBenVyZSBTdG9yYWdlIENvbnRhaW5lciBtYW5hZ2VkIGJ5IHRoaXMgY2xhc3MuIEl0IGhhbmRsZXMgdGhlIGNyZWF0aW9uIGFuZFxuICAgKiBjb25maWd1cmF0aW9uIG9mIHRoZSBibG9iLCBpbmNsdWRpbmcgc2V0dGluZyBpdHMgdHlwZSwgc291cmNlIGNvbnRlbnQsIGFuZCBtZXRhZGF0YS4gVGhpcyBpcyB1c2VmdWwgZm9yIHVwbG9hZGluZyB2YXJpb3VzIHR5cGVzXG4gICAqIG9mIHVuc3RydWN0dXJlZCBkYXRhLCBzdWNoIGFzIGltYWdlcywgdmlkZW9zLCBkb2N1bWVudHMsIG9yIG90aGVyIGJpbmFyeSBmaWxlcywgaW50byBhIGNsb3VkLWJhc2VkIHN0b3JhZ2Ugc29sdXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBibG9iTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBibG9iIHRvIGJlIGFkZGVkLCB3aGljaCB3aWxsIGJlIHVzZWQgYXMgdGhlIGJsb2IncyB1bmlxdWUgaWRlbnRpZmllciB3aXRoaW4gdGhlIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gVGhlIGZpbGUgcGF0aCBvciBVUkwgZm9yIHRoZSBzb3VyY2Ugb2YgdGhlIGJsb2IncyBjb250ZW50LiBUaGlzIHNwZWNpZmllcyB0aGUgbG9jYXRpb24gb2YgdGhlIGZpbGUgdG8gYmUgdXBsb2FkZWQuXG4gICAqIEBwYXJhbSBwcm9wcyAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIGJsb2IsIHdoaWNoIGluY2x1ZGU6XG4gICAqICAgICAgICAgICAgICAgIC0gYHR5cGVgOiBUaGUgdHlwZSBvZiB0aGUgYmxvYiAoZS5nLiwgJ0Jsb2NrJywgJ0FwcGVuZCcsICdQYWdlJykuIERlZmF1bHQgaXMgJ0Jsb2NrJy5cbiAgICogICAgICAgICAgICAgICAgLSBgY29udGVudFR5cGVgOiBUaGUgTUlNRSB0eXBlIG9mIHRoZSBibG9iJ3MgY29udGVudCwgc3VjaCBhcyAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyBmb3IgYmluYXJ5IGRhdGEuIFRoaXMgaGVscHMgYnJvd3NlcnNcbiAgICogICAgICAgICAgICAgICAgICBhbmQgb3RoZXIgY2xpZW50cyBoYW5kbGUgdGhlIGZpbGUgY29ycmVjdGx5IHdoZW4gaXQncyBkb3dubG9hZGVkIG9yIGFjY2Vzc2VkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBtZXRhZGF0YWA6IEEgZGljdGlvbmFyeSBvZiBrZXktdmFsdWUgcGFpcnMgdG8gc3RvcmUgYXMgbWV0YWRhdGEgd2l0aCB0aGUgYmxvYi4gTWV0YWRhdGEgaXMgdHlwaWNhbGx5IHVzZWQgdG8gc3RvcmUgYWRkaXRpb25hbFxuICAgKiAgICAgICAgICAgICAgICAgIGRldGFpbHMgYWJvdXQgdGhlIGJsb2IsIHN1Y2ggYXMgdGFncywgZGVzY3JpcHRpb25zLCBvciBvdGhlciBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbmV3bHkgY3JlYXRlZCBCbG9iIG9iamVjdCwgd2hpY2ggcmVwcmVzZW50cyB0aGUgYmxvYiBhZGRlZCB0byB0aGUgc3RvcmFnZSBjb250YWluZXIuXG4gICAqXG4gICAqIEV4YW1wbGUgdXNhZ2U6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3Qgc3RvcmFnZUJsb2IgPSBzdG9yYWdlQ29udGFpbmVyLmFkZEJsb2IoJ2V4YW1wbGVCbG9iJywgJy4vcGF0aC90by9sb2NhbC9maWxlLnR4dCcsIHtcbiAgICogICB0eXBlOiAnQmxvY2snLFxuICAgKiAgIGNvbnRlbnRUeXBlOiAndGV4dC9wbGFpbicsXG4gICAqICAgbWV0YWRhdGE6IHsgY3VzdG9tS2V5OiAnY3VzdG9tVmFsdWUnIH1cbiAgICogfSk7XG4gICAqIGBgYFxuICAgKiBJbiB0aGlzIGV4YW1wbGUsIGEgbmV3IGJsb2IgbmFtZWQgJ2V4YW1wbGVCbG9iJyBpcyBhZGRlZCB0byB0aGUgc3RvcmFnZSBjb250YWluZXIuIFRoZSBjb250ZW50IG9mIHRoZSBibG9iIGlzIHNvdXJjZWRcbiAgICogZnJvbSBhIGxvY2FsIGZpbGUgc3BlY2lmaWVkIGJ5IGBmaWxlUGF0aGAuIFRoZSBibG9iIGlzIGNvbmZpZ3VyZWQgYXMgYSAnQmxvY2snIHR5cGUgd2l0aCAndGV4dC9wbGFpbicgY29udGVudCB0eXBlIGFuZFxuICAgKiBjdXN0b20gbWV0YWRhdGEuIFRoZSBtZXRob2QgcmV0dXJucyB0aGUgYmxvYiBpbnN0YW5jZSBmb3IgZnVydGhlciB1c2Ugb3IgcmVmZXJlbmNlLlxuICAgKi9cbiAgYWRkQmxvYihibG9iTmFtZTogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nLCBwcm9wcz86IFN0b3JhZ2VCbG9iQ29uZmlnKTogQmxvYiB7XG4gICAgY29uc3QgbmV3U3RvcmFnZUJsb2IgPSBuZXcgQmxvYih0aGlzLCBibG9iTmFtZSwge1xuICAgICAgbmFtZTogYmxvYk5hbWUsXG4gICAgICBzdG9yYWdlQWNjb3VudE5hbWU6IHRoaXMuc3RvcmFnZUFjY291bnROYW1lLFxuICAgICAgc3RvcmFnZUNvbnRhaW5lck5hbWU6IHRoaXMuc3RvcmFnZUNvbnRhaW5lck5hbWUsXG4gICAgICB0eXBlOiBwcm9wcz8udHlwZSB8fCBcIkJsb2NrXCIsXG4gICAgICBzb3VyY2U6IGZpbGVQYXRoLFxuICAgICAgY29udGVudFR5cGU6IHByb3BzPy5jb250ZW50VHlwZSB8fCBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiLFxuICAgICAgbWV0YWRhdGE6IHByb3BzPy5tZXRhZGF0YSB8fCB7fSxcbiAgICB9KTtcbiAgICB0aGlzLmJsb2JzLnNldChibG9iTmFtZSwgbmV3U3RvcmFnZUJsb2IpO1xuICAgIHJldHVybiBuZXdTdG9yYWdlQmxvYjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmxvYiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBhIGJsb2Igd2l0aGluIGFuIEF6dXJlIFN0b3JhZ2UgQ29udGFpbmVyLlxuICAgKlxuICAgKiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgY3JlYXRpb24gYW5kIG1hbmFnZW1lbnQgb2YgYSBibG9iIGluIGFuIEF6dXJlIFN0b3JhZ2UgQ29udGFpbmVyLiBCbG9icyBhcmUgdW5zdHJ1Y3R1cmVkXG4gICAqIGRhdGEgb2JqZWN0cywgd2hpY2ggY2FuIGluY2x1ZGUgZmlsZXMgbGlrZSBpbWFnZXMsIGRvY3VtZW50cywgdmlkZW9zLCBvciBhbnkgb3RoZXIgZmlsZSB0eXBlLiBUaGUgQmxvYiBjbGFzcyBwcm92aWRlcyBhIHdheVxuICAgKiB0byBtYW5hZ2UgdGhlc2UgZmlsZXMgaW4gdGhlIGNsb3VkLCBhbGxvd2luZyBmb3Igc2NhbGFibGUsIGR1cmFibGUsIGFuZCBhY2Nlc3NpYmxlIGRhdGEgc3RvcmFnZS4gVGhpcyBjbGFzcyBzdXBwb3J0cyB2YXJpb3VzXG4gICAqIGJsb2IgdHlwZXMgc3VjaCBhcyBibG9jayBibG9icyBmb3IgdGV4dCBhbmQgYmluYXJ5IGRhdGEsIGFwcGVuZCBibG9icyBmb3IgbG9nIGZpbGVzLCBhbmQgcGFnZSBibG9icyBmb3IgbGFyZ2Ugdm9sdW1lcyBvZlxuICAgKiByYW5kb20gYWNjZXNzIGRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSByZXByZXNlbnRpbmcgdGhlIENsb3VkIERldmVsb3BtZW50IEtpdCAoQ0RLKSBzdGFjay5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBibG9iLlxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBBenVyZSBTdG9yYWdlIEJsb2IuIFRoZXNlIHByb3BlcnRpZXMgbWF5IGluY2x1ZGU6XG4gICAqICAgICAgICAgICAgICAgIC0gYG5hbWVgOiBUaGUgbmFtZSBvZiB0aGUgYmxvYiwgd2hpY2ggbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBjb250YWluZXIuXG4gICAqICAgICAgICAgICAgICAgIC0gYHN0b3JhZ2VBY2NvdW50TmFtZWA6IFRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGFjY291bnQgaW4gd2hpY2ggdGhlIGJsb2IgaXMgc3RvcmVkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBzdG9yYWdlQ29udGFpbmVyTmFtZWA6IFRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5lciBpbiB3aGljaCB0aGUgYmxvYiByZXNpZGVzLlxuICAgKiAgICAgICAgICAgICAgICAtIGB0eXBlYDogVGhlIHR5cGUgb2YgdGhlIGJsb2IgKGUuZy4sICdCbG9jaycsICdBcHBlbmQnLCAnUGFnZScpLlxuICAgKiAgICAgICAgICAgICAgICAtIGBzb3VyY2VgOiBUaGUgc291cmNlIG9mIHRoZSBibG9iJ3MgY29udGVudCwgd2hpY2ggY291bGQgYmUgYSBwYXRoIHRvIGEgZmlsZSBvciBhIFVSTC5cbiAgICogICAgICAgICAgICAgICAgLSBgY29udGVudFR5cGVgOiBUaGUgTUlNRSB0eXBlIG9mIHRoZSBibG9iJ3MgY29udGVudCwgc3VjaCBhcyAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyBmb3IgYmluYXJ5IGRhdGEuXG4gICAqICAgICAgICAgICAgICAgIC0gYG1ldGFkYXRhYDogQSBkaWN0aW9uYXJ5IG9mIHN0cmluZ3MgdGhhdCByZXByZXNlbnRzIG1ldGFkYXRhIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBibG9iLlxuICAgKiAgICAgICAgICAgICAgICAtIGBhY2Nlc3NUaWVyYDogVGhlIGRhdGEgYWNjZXNzIHRpZXIsIGFmZmVjdGluZyBzdG9yYWdlIGNvc3RzIGFuZCBkYXRhIHJldHJpZXZhbCBzcGVlZHMuXG4gICAqICAgICAgICAgICAgICAgIC0gYGNhY2hlQ29udHJvbGAsIGBjb250ZW50RW5jb2RpbmdgLCBgY29udGVudERpc3Bvc2l0aW9uYCwgYGNvbnRlbnRNZDVgOiBPcHRpb25hbCBwYXJhbWV0ZXJzIGZvciBjb250cm9sbGluZyB0aGUgY2FjaGluZyBiZWhhdmlvcixcbiAgICogICAgICAgICAgICAgICAgICBlbmNvZGluZywgY29udGVudCBkaXNwb3NpdGlvbiwgYW5kIGludGVncml0eSBjaGVjayBvZiB0aGUgYmxvYi5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBteUJsb2IgPSBuZXcgQmxvYih0aGlzLCAnTXlCbG9iJywge1xuICAgKiAgIG5hbWU6ICdleGFtcGxlYmxvYicsXG4gICAqICAgc3RvcmFnZUFjY291bnROYW1lOiAnbXlzdG9yYWdlYWNjb3VudCcsXG4gICAqICAgc3RvcmFnZUNvbnRhaW5lck5hbWU6ICdteWNvbnRhaW5lcicsXG4gICAqICAgdHlwZTogJ0Jsb2NrJyxcbiAgICogICBzb3VyY2U6ICcuL3BhdGgvdG8vZmlsZS5qcGcnLFxuICAgKiAgIGNvbnRlbnRUeXBlOiAnaW1hZ2UvanBlZycsXG4gICAqICAgbWV0YWRhdGE6IHtcbiAgICogICAgIGF1dGhvcjogJ0pvaG4gRG9lJ1xuICAgKiAgIH1cbiAgICogfSk7XG4gICAqIGBgYFxuICAgKiBUaGlzIGNsYXNzIGluaXRpYWxpemVzIGEgYmxvYiB3aXRoIHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbnMgYW5kIGhhbmRsZXMgdGhlIHVwbG9hZGluZyBvZiBjb250ZW50IGZyb20gdGhlIHNwZWNpZmllZCBzb3VyY2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RvcmFnZUJsb2JDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gQ3JlYXRlIGEgc3RvcmFnZSBjb250YWluZXJcbiAgICBuZXcgU3RvcmFnZUJsb2IodGhpcywgXCJibG9iXCIsIHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICBzdG9yYWdlQWNjb3VudE5hbWU6IHByb3BzLnN0b3JhZ2VBY2NvdW50TmFtZSxcbiAgICAgIHN0b3JhZ2VDb250YWluZXJOYW1lOiBwcm9wcy5zdG9yYWdlQ29udGFpbmVyTmFtZSxcbiAgICAgIHR5cGU6IHByb3BzLnR5cGUsXG4gICAgICBzb3VyY2U6IHByb3BzLnNvdXJjZSxcbiAgICAgIGNvbnRlbnRUeXBlOiBwcm9wcy5jb250ZW50VHlwZSxcbiAgICAgIG1ldGFkYXRhOiBwcm9wcy5tZXRhZGF0YSxcbiAgICB9KTtcblxuICAgIHRoaXMubmFtZSA9IHByb3BzLm5hbWU7XG4gIH1cbn1cbiJdfQ==
|