@netforbpo/aws-cdk-aws-connect-lib 0.2.1
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 +13639 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarn/patches/@nikovirtala-projen-vitest-npm-2.1.33-4935219e07.patch +292 -0
- package/.yarn/releases/yarn-4.4.1.cjs +925 -0
- package/.yarnrc.yml +4 -0
- package/CHANGELOG.md +25 -0
- package/LICENSE +202 -0
- package/README.md +132 -0
- package/lib/contact_flow.d.ts +48 -0
- package/lib/contact_flow.js +107 -0
- package/lib/contact_flow_module.d.ts +35 -0
- package/lib/contact_flow_module.js +96 -0
- package/lib/email_address.d.ts +36 -0
- package/lib/email_address.js +25 -0
- package/lib/hierarchy_group.d.ts +4 -0
- package/lib/hierarchy_group.js +3 -0
- package/lib/hours_of_operation.d.ts +62 -0
- package/lib/hours_of_operation.js +136 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.js +31 -0
- package/lib/instance.d.ts +154 -0
- package/lib/instance.js +136 -0
- package/lib/phone_number.d.ts +50 -0
- package/lib/phone_number.js +46 -0
- package/lib/queue.d.ts +56 -0
- package/lib/queue.js +42 -0
- package/lib/quick_connect.d.ts +63 -0
- package/lib/quick_connect.js +70 -0
- package/lib/routing_profile.d.ts +4 -0
- package/lib/routing_profile.js +3 -0
- package/lib/security_profile.d.ts +4 -0
- package/lib/security_profile.js +3 -0
- package/lib/storage_config.d.ts +80 -0
- package/lib/storage_config.js +130 -0
- package/lib/traffic_distribution_group.d.ts +25 -0
- package/lib/traffic_distribution_group.js +23 -0
- package/lib/user.d.ts +63 -0
- package/lib/user.js +105 -0
- package/package.json +92 -0
- package/vitest.config.ts +46 -0
|
Binary file
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
diff --git a/.jsii b/.jsii
|
|
2
|
+
index 8ad7ac348a9c7c8fe9e7c52608f39aa9d61da642..e791248231dafba560361e98547d22637e998704 100644
|
|
3
|
+
--- a/.jsii
|
|
4
|
+
+++ b/.jsii
|
|
5
|
+
@@ -299,7 +299,7 @@
|
|
6
|
+
},
|
|
7
|
+
"locationInModule": {
|
|
8
|
+
"filename": "src/index.ts",
|
|
9
|
+
- "line": 296
|
|
10
|
+
+ "line": 302
|
|
11
|
+
},
|
|
12
|
+
"parameters": [
|
|
13
|
+
{
|
|
14
|
+
@@ -320,7 +320,7 @@
|
|
15
|
+
"kind": "class",
|
|
16
|
+
"locationInModule": {
|
|
17
|
+
"filename": "src/index.ts",
|
|
18
|
+
- "line": 269
|
|
19
|
+
+ "line": 274
|
|
20
|
+
},
|
|
21
|
+
"methods": [
|
|
22
|
+
{
|
|
23
|
+
@@ -329,7 +329,7 @@
|
|
24
|
+
},
|
|
25
|
+
"locationInModule": {
|
|
26
|
+
"filename": "src/index.ts",
|
|
27
|
+
- "line": 270
|
|
28
|
+
+ "line": 275
|
|
29
|
+
},
|
|
30
|
+
"name": "of",
|
|
31
|
+
"parameters": [
|
|
32
|
+
@@ -354,7 +354,7 @@
|
|
33
|
+
},
|
|
34
|
+
"locationInModule": {
|
|
35
|
+
"filename": "src/index.ts",
|
|
36
|
+
- "line": 358
|
|
37
|
+
+ "line": 365
|
|
38
|
+
},
|
|
39
|
+
"name": "addExclude",
|
|
40
|
+
"parameters": [
|
|
41
|
+
@@ -372,7 +372,7 @@
|
|
42
|
+
},
|
|
43
|
+
"locationInModule": {
|
|
44
|
+
"filename": "src/index.ts",
|
|
45
|
+
- "line": 353
|
|
46
|
+
+ "line": 360
|
|
47
|
+
},
|
|
48
|
+
"name": "addInclude",
|
|
49
|
+
"parameters": [
|
|
50
|
+
@@ -390,7 +390,7 @@
|
|
51
|
+
},
|
|
52
|
+
"locationInModule": {
|
|
53
|
+
"filename": "src/index.ts",
|
|
54
|
+
- "line": 370
|
|
55
|
+
+ "line": 377
|
|
56
|
+
},
|
|
57
|
+
"name": "configureCoverageProvider",
|
|
58
|
+
"parameters": [
|
|
59
|
+
@@ -408,7 +408,7 @@
|
|
60
|
+
},
|
|
61
|
+
"locationInModule": {
|
|
62
|
+
"filename": "src/index.ts",
|
|
63
|
+
- "line": 390
|
|
64
|
+
+ "line": 397
|
|
65
|
+
},
|
|
66
|
+
"name": "configureCoverageReporters",
|
|
67
|
+
"parameters": [
|
|
68
|
+
@@ -431,7 +431,7 @@
|
|
69
|
+
},
|
|
70
|
+
"locationInModule": {
|
|
71
|
+
"filename": "src/index.ts",
|
|
72
|
+
- "line": 365
|
|
73
|
+
+ "line": 372
|
|
74
|
+
},
|
|
75
|
+
"name": "configureEnvironment",
|
|
76
|
+
"parameters": [
|
|
77
|
+
@@ -449,7 +449,7 @@
|
|
78
|
+
},
|
|
79
|
+
"locationInModule": {
|
|
80
|
+
"filename": "src/index.ts",
|
|
81
|
+
- "line": 397
|
|
82
|
+
+ "line": 404
|
|
83
|
+
},
|
|
84
|
+
"name": "configureGlobals"
|
|
85
|
+
},
|
|
86
|
+
@@ -460,7 +460,7 @@
|
|
87
|
+
},
|
|
88
|
+
"locationInModule": {
|
|
89
|
+
"filename": "src/index.ts",
|
|
90
|
+
- "line": 343
|
|
91
|
+
+ "line": 350
|
|
92
|
+
},
|
|
93
|
+
"name": "preSynthesize",
|
|
94
|
+
"overrides": "projen.Component"
|
|
95
|
+
@@ -893,6 +893,28 @@
|
|
96
|
+
"primitive": "string"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
+ {
|
|
100
|
+
+ "abstract": true,
|
|
101
|
+
+ "docs": {
|
|
102
|
+
+ "stability": "stable",
|
|
103
|
+
+ "summary": "Extra config options to merge into the main configuration."
|
|
104
|
+
+ },
|
|
105
|
+
+ "immutable": true,
|
|
106
|
+
+ "locationInModule": {
|
|
107
|
+
+ "filename": "src/index.ts",
|
|
108
|
+
+ "line": 264
|
|
109
|
+
+ },
|
|
110
|
+
+ "name": "extraConfig",
|
|
111
|
+
+ "optional": true,
|
|
112
|
+
+ "type": {
|
|
113
|
+
+ "collection": {
|
|
114
|
+
+ "elementtype": {
|
|
115
|
+
+ "primitive": "any"
|
|
116
|
+
+ },
|
|
117
|
+
+ "kind": "map"
|
|
118
|
+
+ }
|
|
119
|
+
+ }
|
|
120
|
+
+ },
|
|
121
|
+
{
|
|
122
|
+
"abstract": true,
|
|
123
|
+
"docs": {
|
|
124
|
+
@@ -903,7 +925,7 @@
|
|
125
|
+
"immutable": true,
|
|
126
|
+
"locationInModule": {
|
|
127
|
+
"filename": "src/index.ts",
|
|
128
|
+
- "line": 266
|
|
129
|
+
+ "line": 271
|
|
130
|
+
},
|
|
131
|
+
"name": "vitestVersion",
|
|
132
|
+
"optional": true,
|
|
133
|
+
@@ -916,5 +938,5 @@
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"version": "2.1.33",
|
|
137
|
+
- "fingerprint": "TzzaJvfzQUUdHggtnQpv+x3NMBtw+mwJWEGiDC55joM="
|
|
138
|
+
+ "fingerprint": "5CXoe5JkbpF2dosnlIGNDNuSVzJUF15wF98qhQwnSdY="
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
diff --git a/API.md b/API.md
|
|
142
|
+
index 258ef0cc2f6d3dff1ea8b6d45291a3e8b9609b61..41ad48f08643a84c494c9ffb75507f15476b8bab 100644
|
|
143
|
+
--- a/API.md
|
|
144
|
+
+++ b/API.md
|
|
145
|
+
@@ -581,6 +581,7 @@ const vitestOptions: VitestOptions = { ... }
|
|
146
|
+
| --- | --- | --- |
|
|
147
|
+
| <code><a href="#@nikovirtala/projen-vitest.VitestOptions.property.config">config</a></code> | <code><a href="#@nikovirtala/projen-vitest.VitestConfigOptions">VitestConfigOptions</a></code> | Initial config options. |
|
|
148
|
+
| <code><a href="#@nikovirtala/projen-vitest.VitestOptions.property.configFilePath">configFilePath</a></code> | <code>string</code> | Config file path. |
|
|
149
|
+
+| <code><a href="#@nikovirtala/projen-vitest.VitestOptions.property.extraConfig">extraConfig</a></code> | <code>{[ key: string ]: any}</code> | Extra config options to merge into the main configuration. |
|
|
150
|
+
| <code><a href="#@nikovirtala/projen-vitest.VitestOptions.property.vitestVersion">vitestVersion</a></code> | <code>string</code> | Vitest version. |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
@@ -610,6 +611,18 @@ Config file path.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
+##### `extraConfig`<sup>Optional</sup> <a name="extraConfig" id="@nikovirtala/projen-vitest.VitestOptions.property.extraConfig"></a>
|
|
158
|
+
+
|
|
159
|
+
+```typescript
|
|
160
|
+
+public readonly extraConfig: {[ key: string ]: any};
|
|
161
|
+
+```
|
|
162
|
+
+
|
|
163
|
+
+- *Type:* {[ key: string ]: any}
|
|
164
|
+
+
|
|
165
|
+
+Extra config options to merge into the main configuration.
|
|
166
|
+
+
|
|
167
|
+
+---
|
|
168
|
+
+
|
|
169
|
+
##### `vitestVersion`<sup>Optional</sup> <a name="vitestVersion" id="@nikovirtala/projen-vitest.VitestOptions.property.vitestVersion"></a>
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
diff --git a/lib/index.d.ts b/lib/index.d.ts
|
|
173
|
+
index f77672065034fa55d620a9a06259a73046db35a4..b1c2b7c03eeac428662d8de735ecea10f59c66a4 100644
|
|
174
|
+
--- a/lib/index.d.ts
|
|
175
|
+
+++ b/lib/index.d.ts
|
|
176
|
+
@@ -219,6 +219,10 @@ export interface VitestOptions {
|
|
177
|
+
* Initial config options.
|
|
178
|
+
*/
|
|
179
|
+
readonly config?: VitestConfigOptions;
|
|
180
|
+
+ /**
|
|
181
|
+
+ * Extra config options to merge into the main configuration.
|
|
182
|
+
+ */
|
|
183
|
+
+ readonly extraConfig?: Record<string, unknown>;
|
|
184
|
+
/**
|
|
185
|
+
* Vitest version.
|
|
186
|
+
*
|
|
187
|
+
@@ -229,6 +233,7 @@ export interface VitestOptions {
|
|
188
|
+
export declare class Vitest extends Component {
|
|
189
|
+
static of(project: NodeProject): Vitest | undefined;
|
|
190
|
+
private readonly configFilePath;
|
|
191
|
+
+ private readonly extraConfig;
|
|
192
|
+
private readonly include;
|
|
193
|
+
private readonly exclude;
|
|
194
|
+
private readonly isolate;
|
|
195
|
+
diff --git a/lib/index.js b/lib/index.js
|
|
196
|
+
index 016b7b96d5fec8d55ce370e53ef1bde493bb5aa5..30b401f8c766d5f7cc816bdb9761b7323a13d025 100644
|
|
197
|
+
--- a/lib/index.js
|
|
198
|
+
+++ b/lib/index.js
|
|
199
|
+
@@ -130,6 +130,7 @@ class Vitest extends component_1.Component {
|
|
200
|
+
this.updateSnapshots = options.config?.updateSnapshots ?? true;
|
|
201
|
+
this.printConsoleTrace = options.config?.printConsoleTrace ?? true;
|
|
202
|
+
this.slowTestThreshold = options.config?.slowTestThreshold ?? 300;
|
|
203
|
+
+ this.extraConfig = options.extraConfig ?? {};
|
|
204
|
+
project.addDevDeps(`vitest@${this.version}`);
|
|
205
|
+
this.configureCoverageProvider(this.coverageProvider);
|
|
206
|
+
if (this.globals && this.isTypescriptProject() && this.project.tryFindObjectFile(this.typecheckTsconfig)) {
|
|
207
|
+
@@ -235,40 +236,42 @@ class Vitest extends component_1.Component {
|
|
208
|
+
defineConfigImport,
|
|
209
|
+
"",
|
|
210
|
+
"export default defineConfig({",
|
|
211
|
+
- " test: {",
|
|
212
|
+
+ " test: ",
|
|
213
|
+
...this.renderTestOptions(),
|
|
214
|
+
- " },",
|
|
215
|
+
"});",
|
|
216
|
+
];
|
|
217
|
+
}
|
|
218
|
+
renderTestOptions() {
|
|
219
|
+
- const lines = [];
|
|
220
|
+
- lines.push(` bail: ${this.bail},`);
|
|
221
|
+
- lines.push(" coverage: {");
|
|
222
|
+
- lines.push(` enabled: ${this.coverageEnabled},`);
|
|
223
|
+
- lines.push(` provider: "${this.coverageProvider}",`);
|
|
224
|
+
- lines.push(` reporter: ${JSON.stringify(this.coverageReporters)},`);
|
|
225
|
+
- lines.push(` reportsDirectory: "${this.coverageDirectory}",`);
|
|
226
|
+
- lines.push(" },");
|
|
227
|
+
- lines.push(` environment: "${this.environment}",`);
|
|
228
|
+
- lines.push(` exclude: ${JSON.stringify(Array.from(this.exclude))},`);
|
|
229
|
+
- lines.push(` globals: ${this.globals},`);
|
|
230
|
+
- lines.push(` include: ${JSON.stringify(Array.from(this.include))},`);
|
|
231
|
+
- lines.push(` isolate: ${this.isolate},`);
|
|
232
|
+
- lines.push(` passWithNoTests: ${this.passWithNoTests},`);
|
|
233
|
+
- lines.push(` printConsoleTrace: ${this.printConsoleTrace},`);
|
|
234
|
+
- lines.push(` pool: "${this.pool}",`);
|
|
235
|
+
- lines.push(` slowTestThreshold: ${this.slowTestThreshold},`);
|
|
236
|
+
- lines.push(" typecheck: {");
|
|
237
|
+
- lines.push(` enabled: ${this.typecheckEnabled},`);
|
|
238
|
+
- lines.push(` checker: "${this.typecheckChecker}",`);
|
|
239
|
+
- lines.push(` tsconfig: "${this.typecheckTsconfig}",`);
|
|
240
|
+
- lines.push(" },");
|
|
241
|
+
- lines.push(` update: ${this.updateSnapshots},`);
|
|
242
|
+
- return lines;
|
|
243
|
+
+ const options = {
|
|
244
|
+
+ bail: this.bail,
|
|
245
|
+
+ coverage: {
|
|
246
|
+
+ enabled: this.coverageEnabled,
|
|
247
|
+
+ provider: this.coverageProvider,
|
|
248
|
+
+ reporter: this.coverageReporters,
|
|
249
|
+
+ reportsDirectory: this.coverageDirectory,
|
|
250
|
+
+ },
|
|
251
|
+
+ environment: this.environment,
|
|
252
|
+
+ exclude: Array.from(this.exclude),
|
|
253
|
+
+ globals: this.globals,
|
|
254
|
+
+ include: Array.from(this.include),
|
|
255
|
+
+ isolate: this.isolate,
|
|
256
|
+
+ passWithNoTests: this.passWithNoTests,
|
|
257
|
+
+ printConsoleTrace: this.printConsoleTrace,
|
|
258
|
+
+ pool: this.pool,
|
|
259
|
+
+ slowTestThreshold: this.slowTestThreshold,
|
|
260
|
+
+ typecheck: {
|
|
261
|
+
+ enabled: this.typecheckEnabled,
|
|
262
|
+
+ checker: this.typecheckChecker,
|
|
263
|
+
+ tsconfig: this.typecheckTsconfig,
|
|
264
|
+
+ },
|
|
265
|
+
+ update: this.updateSnapshots,
|
|
266
|
+
+ ...this.extraConfig,
|
|
267
|
+
+ };
|
|
268
|
+
+ const data = JSON.stringify(options, null, 2);
|
|
269
|
+
+ return data.split("\n").map((line) => ` ${line}`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
exports.Vitest = Vitest;
|
|
273
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
274
|
+
-Vitest[_a] = { fqn: "@nikovirtala/projen-vitest.Vitest", version: "2.1.33" };
|
|
275
|
+
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsb0RBQWlEO0FBQ2pELDBEQUF5RDtBQUN6RCxzREFBK0Q7QUFDL0Qsa0RBQStDO0FBRS9DLElBQVksV0EwQlg7QUExQkQsV0FBWSxXQUFXO0lBQ25COzs7O09BSUc7SUFDSCw0Q0FBNkIsQ0FBQTtJQUU3Qjs7OztPQUlHO0lBQ0gsc0NBQXVCLENBQUE7SUFFdkI7Ozs7T0FJRztJQUNILDhCQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDRCQUFhLENBQUE7QUFDakIsQ0FBQyxFQTFCVyxXQUFXLDJCQUFYLFdBQVcsUUEwQnRCO0FBRUQsSUFBWSxJQStCWDtBQS9CRCxXQUFZLElBQUk7SUFDWjs7OztPQUlHO0lBQ0gsdUJBQWUsQ0FBQTtJQUVmOzs7O09BSUc7SUFDSCwyQkFBbUIsQ0FBQTtJQUVuQjs7Ozs7O09BTUc7SUFDSCwyQkFBbUIsQ0FBQTtJQUVuQjs7Ozs7T0FLRztJQUNILCtCQUF1QixDQUFBO0FBQzNCLENBQUMsRUEvQlcsSUFBSSxvQkFBSixJQUFJLFFBK0JmO0FBRUQsSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQ3hCOztPQUVHO0lBQ0gseUNBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCw2QkFBUyxDQUFBO0FBQ2IsQ0FBQyxFQVZXLGdCQUFnQixnQ0FBaEIsZ0JBQWdCLFFBVTNCO0FBRUQsSUFBWSxnQkF5Qlg7QUF6QkQsV0FBWSxnQkFBZ0I7SUFDeEI7O09BRUc7SUFDSCxxQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILGlDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILGlDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILGlDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILGlDQUFhLENBQUE7QUFDakIsQ0FBQyxFQXpCVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixR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LENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMvQixLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7UUFDekQsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsQ0FBQztRQUMzRCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JCLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztRQUVuRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOztBQWhPTCx3QkFpT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJwcm9qZW4vbGliL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUgfSBmcm9tIFwicHJvamVuL2xpYi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB7IEplc3QsIHR5cGUgTm9kZVByb2plY3QgfSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBUZXh0RmlsZSB9IGZyb20gXCJwcm9qZW4vbGliL3RleHRmaWxlXCI7XG5cbmV4cG9ydCBlbnVtIEVudmlyb25tZW50IHtcbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gVmVyY2VsJ3MgRWRnZSBSdW50aW1lIFZNLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly9lZGdlLXJ1bnRpbWUudmVyY2VsLmFwcC9wYWNrYWdlcy92bVxuICAgICAqL1xuICAgIEVER0VfUlVOVElNRSA9IFwiZWRnZS1ydW50aW1lXCIsXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gYGhhcHB5LWRvbWAgZW52aXJvbm1lbnQuXG4gICAgICpcbiAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vY2Fwcmljb3JuODYvaGFwcHktZG9tXG4gICAgICovXG4gICAgSEFQUFlfRE9NID0gXCJoYXBweS1kb21cIixcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBganNkb21gIGVudmlyb25tZW50LlxuICAgICAqXG4gICAgICogaHR0cHM6Ly9naXRodWIuY29tL2pzZG9tL2pzZG9tXG4gICAgICovXG4gICAgSlNET00gPSBcImpzZG9tXCIsXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gYSBOb2RlLmpzIGVudmlyb25tZW50LlxuICAgICAqL1xuICAgIE5PREUgPSBcIm5vZGVcIixcbn1cblxuZXhwb3J0IGVudW0gUG9vbCB7XG4gICAgLyoqXG4gICAgICogUnVuIHRlc3RzIGluIGBub2RlOmNoaWxkX3Byb2Nlc3NgIHVzaW5nIFtgZm9yaygpYF0oaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9jaGlsZF9wcm9jZXNzLmh0bWwjY2hpbGRfcHJvY2Vzc2Zvcmttb2R1bGVwYXRoLWFyZ3Mtb3B0aW9ucylcbiAgICAgKlxuICAgICAqIFRlc3QgaXNvbGF0aW9uICh3aGVuIGVuYWJsZWQpIGlzIGRvbmUgYnkgc3Bhd25pbmcgYSBuZXcgY2hpbGQgcHJvY2VzcyBmb3IgZWFjaCB0ZXN0IGZpbGUuXG4gICAgICovXG4gICAgRk9SS1MgPSBcImZvcmtzXCIsXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gYG5vZGU6d29ya2VyX3RocmVhZHNgLlxuICAgICAqXG4gICAgICogVGVzdCBpc29sYXRpb24gKHdoZW4gZW5hYmxlZCkgaXMgZG9uZSBieSBzcGF3bmluZyBhIG5ldyB0aHJlYWQgZm9yIGVhY2ggdGVzdCBmaWxlLlxuICAgICAqL1xuICAgIFRIUkVBRFMgPSBcInRocmVhZHNcIixcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBpc29sYXRlZCBgbm9kZTp2bWAuXG4gICAgICpcbiAgICAgKiBUZXN0IGZpbGVzIGFyZSBydW4gcGFyYWxsZWwgdXNpbmcgYG5vZGU6Y2hpbGRfcHJvY2Vzc2AgW2Bmb3JrKClgXShodHRwczovL25vZGVqcy5vcmcvYXBpL2NoaWxkX3Byb2Nlc3MuaHRtbCNjaGlsZF9wcm9jZXNzZm9ya21vZHVsZXBhdGgtYXJncy1vcHRpb25zKVxuICAgICAqXG4gICAgICogVGhpcyBtYWtlcyB0ZXN0cyBydW4gZmFzdGVyLCBidXQgVk0gbW9kdWxlIGlzIHVuc3RhYmxlLiBZb3VyIHRlc3RzIG1pZ2h0IGxlYWsgbWVtb3J5LlxuICAgICAqL1xuICAgIFZNRk9SS1MgPSBcInZtZm9ya3NcIixcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBpc29sYXRlZCBgbm9kZTp2bWAuXG4gICAgICogVGVzdCBmaWxlcyBhcmUgcnVuIHBhcmFsbGVsIHVzaW5nIGBub2RlOndvcmtlcl90aHJlYWRzYC5cbiAgICAgKlxuICAgICAqIFRoaXMgbWFrZXMgdGVzdHMgcnVuIGZhc3RlciwgYnV0IFZNIG1vZHVsZSBpcyB1bnN0YWJsZS4gWW91ciB0ZXN0cyBtaWdodCBsZWFrIG1lbW9yeS5cbiAgICAgKi9cbiAgICBWTVRIUkVBRFMgPSBcInZtdGhyZWFkc1wiLFxufVxuXG5leHBvcnQgZW51bSBDb3ZlcmFnZVByb3ZpZGVyIHtcbiAgICAvKipcbiAgICAgKiBQcm92aWRlIGNvdmVyYWdlIHJlcG9ydCB1c2luZyBpc3RhbmJ1bC4gaHR0cHM6Ly9pc3RhbmJ1bC5qcy5vcmdcbiAgICAgKi9cbiAgICBJU1RBTkJVTCA9IFwiaXN0YW5idWxcIixcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGUgY292ZXJhZ2UgcmVwb3J0cyB1c2luZyB2OC4gaHR0cHM6Ly92OC5kZXYvYmxvZy9qYXZhc2NyaXB0LWNvZGUtY292ZXJhZ2VcbiAgICAgKi9cbiAgICBWOCA9IFwidjhcIixcbn1cblxuZXhwb3J0IGVudW0gQ292ZXJhZ2VSZXBvcnRlciB7XG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgYGNsb3ZlcmAgcmVwb3J0LlxuICAgICAqL1xuICAgIENMT1ZFUiA9IFwiY2xvdmVyXCIsXG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBgSFRNTGAgcmVwb3J0LlxuICAgICAqL1xuICAgIEhUTUwgPSBcImh0bWxcIixcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGBKU09OYCByZXBvcnQuXG4gICAgICovXG4gICAgSlNPTiA9IFwianNvblwiLFxuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgYExDT1ZgIHJlcG9ydC5cbiAgICAgKi9cbiAgICBMQ09WID0gXCJsY292XCIsXG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBgdGV4dGAgcmVwb3J0LlxuICAgICAqL1xuICAgIFRFWFQgPSBcInRleHRcIixcbn1cblxuLyoqXG4gKiBWaXRlc3QgQ29uZmlnLiBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnL1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpdGVzdENvbmZpZ09wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBnbG9iIHBhdHRlcm5zIHRoYXQgbWF0Y2ggeW91ciB0ZXN0IGZpbGVzLiBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNpbmNsdWRlXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIFZpdGVzdCdzIGBjb25maWdEZWZhdWx0cy5pbmNsdWRlYFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluY2x1ZGU/OiBBcnJheTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogQSBsaXN0IG9mIGdsb2IgcGF0dGVybnMgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB5b3VyIHRlc3QgZmlsZXMuXG4gICAgICogaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jZXhjbHVkZVxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBWaXRlc3QncyBgY29uZmlnRGVmYXVsdHMuZXhjbHVkZWBcbiAgICAgKi9cbiAgICByZWFkb25seSBleGNsdWRlPzogQXJyYXk8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBlbnZpcm9ubWVudCB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGVzdGluZy4gaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jZW52aXJvbm1lbnRcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwibm9kZVwiXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBFbnZpcm9ubWVudDtcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBhbiBpc29sYXRlZCBlbnZpcm9ubWVudC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB2bVRocmVhZHMgcG9vbC5cbiAgICAgKlxuICAgICAqIERpc2FibGluZyB0aGlzIG9wdGlvbiBtaWdodCBpbXByb3ZlIHBlcmZvcm1hbmNlIGlmIHlvdXIgY29kZSBkb2Vzbid0IHJlbHkgb24gc2lkZSBlZmZlY3RzLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jaXNvbGF0ZVxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlzb2xhdGU/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUG9vbCB1c2VkIHRvIHJ1biB0ZXN0cyBpbi4gaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jcG9vbFxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJmb3Jrc1wiXG4gICAgICovXG4gICAgcmVhZG9ubHkgcG9vbD86IFBvb2w7XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhcGlzIGdsb2JhbGx5LiBJZiB5b3UgcHJlZmVyIHRvIHVzZSB0aGUgQVBJcyBnbG9iYWxseSBsaWtlIEplc3QsIHNldCB0byBgdHJ1ZWAuXG4gICAgICogaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jZ2xvYmFsc1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBnbG9iYWxzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIENvdmVyYWdlIGVuYWJsZWQuIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2NvdmVyYWdlLWVuYWJsZWRcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICByZWFkb25seSBjb3ZlcmFnZUVuYWJsZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQ292ZXJhZ2UgcHJvdmlkZXIgdHlwZS4gaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jY292ZXJhZ2UtcHJvdmlkZXJcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwidjhcIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvdmVyYWdlUHJvdmlkZXI/OiBDb3ZlcmFnZVByb3ZpZGVyO1xuXG4gICAgLyoqXG4gICAgICogQ292ZXJhZ2UgcmVwb3J0ZXJzLiBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNjb3ZlcmFnZS1yZXBvcnRlclxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ1tcInRleHRcIiwgXCJsY292XCJdJ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvdmVyYWdlUmVwb3J0ZXJzPzogQXJyYXk8Q292ZXJhZ2VSZXBvcnRlcj47XG5cbiAgICAvKipcbiAgICAgKiBDb3ZlcmFnZSBvdXRwdXQgZGlyZWN0b3J5LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJjb3ZlcmFnZVwiXG4gICAgICovXG4gICAgcmVhZG9ubHkgY292ZXJhZ2VEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGUgdHlwZWNoZWNraW5nIGFsb25nc2lkZSB5b3VyIHJlZ3VsYXIgdGVzdHMuIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3R5cGVjaGVjay1lbmFibGVkXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlIChmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cylcbiAgICAgKi9cbiAgICByZWFkb25seSB0eXBlY2hlY2tFbmFibGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRvb2wgdG8gdXNlIGZvciB0eXBlIGNoZWNraW5nLiBDaGVja2VyIHNob3VsZCBpbXBsZW1lbnQgdGhlIHNhbWUgb3V0cHV0IGZvcm1hdCBhcyBgdHNjYC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3R5cGVjaGVjay1jaGVja2VyXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcInRzYyAtLW5vRW1pdFwiXG4gICAgICovXG4gICAgcmVhZG9ubHkgdHlwZWNoZWNrQ2hlY2tlcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFBhdGggdG8gY3VzdG9tIHRzY29uZmlnLCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCByb290LiBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyN0eXBlY2hlY2stdHNjb25maWdcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwidHNjb25maWcuZGV2Lmpzb25cIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHR5cGVjaGVja1RzY29uZmlnPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVml0ZXN0IHdpbGwgbm90IGZhaWwsIGlmIG5vIHRlc3RzIHdpbGwgYmUgZm91bmQuIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3Bhc3N3aXRobm90ZXN0c1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBhc3NXaXRoTm9UZXN0cz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTdG9wIHJ1bm5pbmcgdGVzdHMgYWZ0ZXIgY2VydGFpbiBudW1iZXIgb2YgZmFpbHVyZXMuIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2JhaWxcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICByZWFkb25seSBiYWlsPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHNuYXBzaG90IGZpbGVzLiBUaGlzIHdpbGwgdXBkYXRlIGFsbCBjaGFuZ2VkIHNuYXBzaG90cyBhbmQgZGVsZXRlIG9ic29sZXRlIG9uZXMuXG4gICAgICogaHR0cHM6Ly92aXRlc3QuZGV2L2d1aWRlL3NuYXBzaG90Lmh0bWwjdXBkYXRpbmctc25hcHNob3RzXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcmVhZG9ubHkgdXBkYXRlU25hcHNob3RzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEFsd2F5cyBwcmludCBjb25zb2xlIHRyYWNlcyB3aGVuIGNhbGxpbmcgYW55IGNvbnNvbGUgbWV0aG9kLiBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNjb25zb2xldHJhY2VcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICByZWFkb25seSBwcmludENvbnNvbGVUcmFjZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZnRlciB3aGljaCBhIHRlc3Qgb3Igc3VpdGUgaXMgY29uc2lkZXJlZCBzbG93LlxuICAgICAqIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3Nsb3d0ZXN0dGhyZXNob2xkXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAzMDBcbiAgICAgKi9cbiAgICByZWFkb25seSBzbG93VGVzdFRocmVzaG9sZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWaXRlc3RPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBDb25maWcgZmlsZSBwYXRoLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJ2aXRlc3QuY29uZmlnLnRzXCJcbiAgICAgKi9cbiAgICByZWFkb25seSBjb25maWdGaWxlUGF0aD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEluaXRpYWwgY29uZmlnIG9wdGlvbnMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY29uZmlnPzogVml0ZXN0Q29uZmlnT3B0aW9ucztcblxuICAgIC8qKlxuICAgICAqIFZpdGVzdCB2ZXJzaW9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJeNFwiXG4gICAgICovXG4gICAgcmVhZG9ubHkgdml0ZXN0VmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFZpdGVzdCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBOb2RlUHJvamVjdCk6IFZpdGVzdCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGlzVml0ZXN0ID0gKGM6IENvbXBvbmVudCk6IGMgaXMgVml0ZXN0ID0+IGMgaW5zdGFuY2VvZiBWaXRlc3Q7XG4gICAgICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChpc1ZpdGVzdCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdGaWxlUGF0aDogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5jbHVkZTogU2V0PHN0cmluZz47XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGNsdWRlOiBTZXQ8c3RyaW5nPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzb2xhdGU6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb29sOiBQb29sO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY292ZXJhZ2VFbmFibGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHlwZWNoZWNrRW5hYmxlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHR5cGVjaGVja0NoZWNrZXI6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHR5cGVjaGVja1RzY29uZmlnOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXNzV2l0aE5vVGVzdHM6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBiYWlsOiBudW1iZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1cGRhdGVTbmFwc2hvdHM6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudDogc3RyaW5nO1xuICAgIHByaXZhdGUgZ2xvYmFsczogYm9vbGVhbjtcbiAgICBwcml2YXRlIGNvdmVyYWdlUHJvdmlkZXI6IENvdmVyYWdlUHJvdmlkZXI7XG4gICAgcHJpdmF0ZSBjb3ZlcmFnZVJlcG9ydGVyczogQXJyYXk8Q292ZXJhZ2VSZXBvcnRlcj47XG4gICAgcHJpdmF0ZSBjb3ZlcmFnZURpcmVjdG9yeTogc3RyaW5nO1xuICAgIHByaXZhdGUgdmVyc2lvbjogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbnRDb25zb2xlVHJhY2U6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBzbG93VGVzdFRocmVzaG9sZDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM6IFZpdGVzdE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgICAgICB0aGlzLmNvbmZpZ0ZpbGVQYXRoID0gb3B0aW9ucy5jb25maWdGaWxlUGF0aCA/PyBcInZpdGVzdC5jb25maWcudHNcIjtcbiAgICAgICAgdGhpcy5pbmNsdWRlID0gbmV3IFNldChvcHRpb25zLmNvbmZpZz8uaW5jbHVkZSA/PyBbXCIqKi8qLnt0ZXN0LHNwZWN9Lj8oY3xtKVtqdF1zPyh4KVwiXSk7XG4gICAgICAgIHRoaXMuZXhjbHVkZSA9IG5ldyBTZXQoXG4gICAgICAgICAgICBvcHRpb25zLmNvbmZpZz8uZXhjbHVkZSA/PyBbXG4gICAgICAgICAgICAgICAgXCIqKi9ub2RlX21vZHVsZXMvKipcIixcbiAgICAgICAgICAgICAgICBcIioqL2Rpc3QvKipcIixcbiAgICAgICAgICAgICAgICBcIioqL2N5cHJlc3MvKipcIixcbiAgICAgICAgICAgICAgICBcIioqLy57aWRlYSxnaXQsY2FjaGUsb3V0cHV0LHRlbXB9LyoqXCIsXG4gICAgICAgICAgICAgICAgXCIqKi97a2FybWEscm9sbHVwLHdlYnBhY2ssdml0ZSx2aXRlc3QsamVzdCxhdmEsYmFiZWwsbnljLGN5cHJlc3MsdHN1cCxidWlsZCxlc2xpbnQscHJldHRpZXJ9LmNvbmZpZy4qXCIsXG4gICAgICAgICAgICBdLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmlzb2xhdGUgPSBvcHRpb25zLmNvbmZpZz8uaXNvbGF0ZSA/PyB0cnVlO1xuICAgICAgICB0aGlzLnBvb2wgPSBvcHRpb25zLmNvbmZpZz8ucG9vbCA/PyBQb29sLkZPUktTO1xuICAgICAgICB0aGlzLmNvdmVyYWdlRW5hYmxlZCA9IG9wdGlvbnMuY29uZmlnPy5jb3ZlcmFnZUVuYWJsZWQgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy50eXBlY2hlY2tFbmFibGVkID0gb3B0aW9ucy5jb25maWc/LnR5cGVjaGVja0VuYWJsZWQgPz8gdGhpcy5pc1R5cGVzY3JpcHRQcm9qZWN0KCk7XG4gICAgICAgIHRoaXMudHlwZWNoZWNrQ2hlY2tlciA9IG9wdGlvbnMuY29uZmlnPy50eXBlY2hlY2tDaGVja2VyID8/IFwidHNjIC0tbm9FbWl0XCI7XG4gICAgICAgIHRoaXMudHlwZWNoZWNrVHNjb25maWcgPSBvcHRpb25zLmNvbmZpZz8udHlwZWNoZWNrVHNjb25maWcgPz8gXCJ0c2NvbmZpZy5kZXYuanNvblwiO1xuICAgICAgICB0aGlzLnBhc3NXaXRoTm9UZXN0cyA9IG9wdGlvbnMuY29uZmlnPy5wYXNzV2l0aE5vVGVzdHMgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5iYWlsID0gb3B0aW9ucy5jb25maWc/LmJhaWwgPz8gMDtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IG9wdGlvbnMuY29uZmlnPy5lbnZpcm9ubWVudCA/PyBFbnZpcm9ubWVudC5OT0RFO1xuICAgICAgICB0aGlzLmdsb2JhbHMgPSBvcHRpb25zLmNvbmZpZz8uZ2xvYmFscyA/PyBmYWxzZTtcbiAgICAgICAgdGhpcy5jb3ZlcmFnZVByb3ZpZGVyID0gb3B0aW9ucy5jb25maWc/LmNvdmVyYWdlUHJvdmlkZXIgPz8gQ292ZXJhZ2VQcm92aWRlci5WODtcbiAgICAgICAgdGhpcy5jb3ZlcmFnZVJlcG9ydGVycyA9IG9wdGlvbnMuY29uZmlnPy5jb3ZlcmFnZVJlcG9ydGVycyA/PyBbQ292ZXJhZ2VSZXBvcnRlci5URVhULCBDb3ZlcmFnZVJlcG9ydGVyLkxDT1ZdO1xuICAgICAgICB0aGlzLmNvdmVyYWdlRGlyZWN0b3J5ID0gb3B0aW9ucy5jb25maWc/LmNvdmVyYWdlRGlyZWN0b3J5ID8/IFwiY292ZXJhZ2VcIjtcbiAgICAgICAgdGhpcy52ZXJzaW9uID0gb3B0aW9ucy52aXRlc3RWZXJzaW9uID8/IFwiXjRcIjtcbiAgICAgICAgdGhpcy51cGRhdGVTbmFwc2hvdHMgPSBvcHRpb25zLmNvbmZpZz8udXBkYXRlU25hcHNob3RzID8/IHRydWU7XG4gICAgICAgIHRoaXMucHJpbnRDb25zb2xlVHJhY2UgPSBvcHRpb25zLmNvbmZpZz8ucHJpbnRDb25zb2xlVHJhY2UgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5zbG93VGVzdFRocmVzaG9sZCA9IG9wdGlvbnMuY29uZmlnPy5zbG93VGVzdFRocmVzaG9sZCA/PyAzMDA7XG5cbiAgICAgICAgcHJvamVjdC5hZGREZXZEZXBzKGB2aXRlc3RAJHt0aGlzLnZlcnNpb259YCk7XG4gICAgICAgIHRoaXMuY29uZmlndXJlQ292ZXJhZ2VQcm92aWRlcih0aGlzLmNvdmVyYWdlUHJvdmlkZXIpO1xuXG4gICAgICAgIGlmICh0aGlzLmdsb2JhbHMgJiYgdGhpcy5pc1R5cGVzY3JpcHRQcm9qZWN0KCkgJiYgdGhpcy5wcm9qZWN0LnRyeUZpbmRPYmplY3RGaWxlKHRoaXMudHlwZWNoZWNrVHNjb25maWcpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyZUdsb2JhbHMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvdmVyYWdlRGlyZWN0b3J5UGF0aCA9IHBhdGgucG9zaXguam9pbihcIi9cIiwgdGhpcy5jb3ZlcmFnZURpcmVjdG9yeSwgXCIvXCIpO1xuICAgICAgICBwcm9qZWN0Lm5wbWlnbm9yZT8uZXhjbHVkZShjb3ZlcmFnZURpcmVjdG9yeVBhdGgpO1xuICAgICAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKGNvdmVyYWdlRGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgICAgdGhpcy5hZGRUZXN0Q29tbWFuZCgpO1xuICAgICAgICB0aGlzLnN5bnRoZXNpemVDb25maWcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICAgICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpO1xuXG4gICAgICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHRoaXMucHJvamVjdC5jb21wb25lbnRzKSB7XG4gICAgICAgICAgICBpZiAoY29tcG9uZW50IGluc3RhbmNlb2YgSmVzdCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInZpdGVzdCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIGplc3RcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkSW5jbHVkZShwYXR0ZXJuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbmNsdWRlLmFkZChwYXR0ZXJuKTtcbiAgICAgICAgdGhpcy5zeW50aGVzaXplQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEV4Y2x1ZGUocGF0dGVybjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhjbHVkZS5hZGQocGF0dGVybik7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IHNob3VsZCB3ZSBoYXZlIHB1YmxpYyBtZXRob2QgZm9yIGVhY2ggY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgb3Igb25seSBhbGxvdyBjb25maWcgdGhydSBwcm9wcz9cblxuICAgIHB1YmxpYyBjb25maWd1cmVFbnZpcm9ubWVudChlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuICAgICAgICB0aGlzLnN5bnRoZXNpemVDb25maWcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uZmlndXJlQ292ZXJhZ2VQcm92aWRlcihwcm92aWRlcjogQ292ZXJhZ2VQcm92aWRlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm92aWRlclBhY2thZ2VzID0ge1xuICAgICAgICAgICAgW0NvdmVyYWdlUHJvdmlkZXIuVjhdOiBgQHZpdGVzdC9jb3ZlcmFnZS12OEAke3RoaXMudmVyc2lvbn1gLFxuICAgICAgICAgICAgW0NvdmVyYWdlUHJvdmlkZXIuSVNUQU5CVUxdOiBgQHZpdGVzdC9jb3ZlcmFnZS1pc3RhbmJ1bEAke3RoaXMudmVyc2lvbn1gLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHJlbW92ZSBleGlzdGluZyBwcm92aWRlciBwYWNrYWdlcyBpZiB0aGV5IGV4aXN0XG4gICAgICAgIGZvciAoY29uc3QgcHJvdmlkZXJQYWNrYWdlIG9mIE9iamVjdC52YWx1ZXMocHJvdmlkZXJQYWNrYWdlcykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0LmRlcHMucmVtb3ZlRGVwZW5kZW5jeShwcm92aWRlclBhY2thZ2UpO1xuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLy8gaWdub3JlIGVycm9ycyB3aGVuIGRlcGVuZGVuY3kgZG9lc24ndCBleGlzdFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShwcm92aWRlclBhY2thZ2VzW3Byb3ZpZGVyXSwgRGVwZW5kZW5jeVR5cGUuREVWRU5WKTtcbiAgICAgICAgdGhpcy5jb3ZlcmFnZVByb3ZpZGVyID0gcHJvdmlkZXI7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maWd1cmVDb3ZlcmFnZVJlcG9ydGVycyhyZXBvcnRlcnM6IEFycmF5PENvdmVyYWdlUmVwb3J0ZXI+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY292ZXJhZ2VSZXBvcnRlcnMgPSByZXBvcnRlcnM7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGhvdyBhYm91dCByZW1vdmluZyB0aGUgYHZpdGVzdC9nbG9iYWxzYCBmcm9tIHRzY29uZmlnP1xuXG4gICAgcHVibGljIGNvbmZpZ3VyZUdsb2JhbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVHNDb25maWcoKTtcbiAgICAgICAgdGhpcy5zeW50aGVzaXplQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUc0NvbmZpZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdHNjb25maWcgPSB0aGlzLnByb2plY3QudHJ5RmluZE9iamVjdEZpbGUodGhpcy50eXBlY2hlY2tUc2NvbmZpZyk7XG5cbiAgICAgICAgaWYgKCF0c2NvbmZpZykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5hYmxlIHRvIGZpbmQgdHNjb25maWdcIik7XG4gICAgICAgIH1cblxuICAgICAgICB0c2NvbmZpZy5hZGRUb0FycmF5KFwiY29tcGlsZXJPcHRpb25zLnR5cGVzXCIsIFwidml0ZXN0L2dsb2JhbHNcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1R5cGVzY3JpcHRQcm9qZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9qZWN0LmRlcHMudHJ5R2V0RGVwZW5kZW5jeShcInR5cGVzY3JpcHRcIikgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFRlc3RDb21tYW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2plY3QudGVzdFRhc2suZXhlYyhcInZpdGVzdCBydW5cIiwge1xuICAgICAgICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHRlc3RXYXRjaCA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwidGVzdDp3YXRjaFwiKTtcbiAgICAgICAgaWYgKCF0ZXN0V2F0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKFwidGVzdDp3YXRjaFwiLCB7XG4gICAgICAgICAgICAgICAgZXhlYzogXCJ2aXRlc3Qgd2F0Y2hcIixcbiAgICAgICAgICAgICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGVzdFVwZGF0ZVNuYXBzaG90cyA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwidGVzdDp1cGRhdGVcIik7XG4gICAgICAgIGlmICghdGVzdFVwZGF0ZVNuYXBzaG90cykge1xuICAgICAgICAgICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soXCJ0ZXN0OnVwZGF0ZVwiLCB7XG4gICAgICAgICAgICAgICAgZXhlYzogXCJ2aXRlc3QgLS11cGRhdGVcIixcbiAgICAgICAgICAgICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW50aGVzaXplQ29uZmlnKCk6IHZvaWQge1xuICAgICAgICAvLyBvaCBkZWFyIVxuICAgICAgICB0aGlzLnByb2plY3QudHJ5UmVtb3ZlRmlsZSh0aGlzLmNvbmZpZ0ZpbGVQYXRoKTtcblxuICAgICAgICBuZXcgVGV4dEZpbGUodGhpcywgdGhpcy5jb25maWdGaWxlUGF0aCwge1xuICAgICAgICAgICAgbGluZXM6IHRoaXMucmVuZGVyQ29uZmlnKCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyQ29uZmlnKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICBjb25zdCBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0IGFzIE5vZGVQcm9qZWN0O1xuICAgICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHByb2plY3QucGFja2FnZS5wYWNrYWdlTmFtZTtcbiAgICAgICAgY29uc3QgZGVmaW5lQ29uZmlnSW1wb3J0ID1cbiAgICAgICAgICAgIHBhY2thZ2VOYW1lID09PSBcIkBuaWtvdmlydGFsYS9wcm9qZW4tdml0ZXN0XCJcbiAgICAgICAgICAgICAgICA/ICdpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZXN0L2NvbmZpZ1wiOydcbiAgICAgICAgICAgICAgICA6ICdpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiQG5pa292aXJ0YWxhL3Byb2plbi12aXRlc3QvbGliL2J1bmRsZWQtZGVmaW5lLWNvbmZpZ1wiOyc7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIGRlZmluZUNvbmZpZ0ltcG9ydCxcbiAgICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgICBcImV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7XCIsXG4gICAgICAgICAgICBcIiAgdGVzdDoge1wiLFxuICAgICAgICAgICAgLi4udGhpcy5yZW5kZXJUZXN0T3B0aW9ucygpLFxuICAgICAgICAgICAgXCIgIH0sXCIsXG4gICAgICAgICAgICBcIn0pO1wiLFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyVGVzdE9wdGlvbnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGxpbmVzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgICAgICAgbGluZXMucHVzaChgICAgIGJhaWw6ICR7dGhpcy5iYWlsfSxgKTtcbiAgICAgICAgbGluZXMucHVzaChcIiAgICBjb3ZlcmFnZToge1wiKTtcbiAgICAgICAgbGluZXMucHVzaChgICAgICAgZW5hYmxlZDogJHt0aGlzLmNvdmVyYWdlRW5hYmxlZH0sYCk7XG4gICAgICAgIGxpbmVzLnB1c2goYCAgICAgIHByb3ZpZGVyOiBcIiR7dGhpcy5jb3ZlcmFnZVByb3ZpZGVyfVwiLGApO1xuICAgICAgICBsaW5lcy5wdXNoKGAgICAgICByZXBvcnRlcjogJHtKU09OLnN0cmluZ2lmeSh0aGlzLmNvdmVyYWdlUmVwb3J0ZXJzKX0sYCk7XG4gICAgICAgIGxpbmVzLnB1c2goYCAgICAgIHJlcG9ydHNEaXJlY3Rvcnk6IFwiJHt0aGlzLmNvdmVyYWdlRGlyZWN0b3J5fVwiLGApO1xuICAgICAgICBsaW5lcy5wdXNoKFwiICAgIH0sXCIpO1xuICAgICAgICBsaW5lcy5wdXNoKGAgICAgZW52aXJvbm1lbnQ6IFwiJHt0aGlzLmVudmlyb25tZW50fVwiLGApO1xuICAgICAgICBsaW5lcy5wdXNoKGAgICAgZXhjbHVkZTogJHtKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKHRoaXMuZXhjbHVkZSkpfSxgKTtcbiAgICAgICAgbGluZXMucHVzaChgICAgIGdsb2JhbHM6ICR7dGhpcy5nbG9iYWxzfSxgKTtcbiAgICAgICAgbGluZXMucHVzaChgICAgIGluY2x1ZGU6ICR7SlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbSh0aGlzLmluY2x1ZGUpKX0sYCk7XG4gICAgICAgIGxpbmVzLnB1c2goYCAgICBpc29sYXRlOiAke3RoaXMuaXNvbGF0ZX0sYCk7XG4gICAgICAgIGxpbmVzLnB1c2goYCAgICBwYXNzV2l0aE5vVGVzdHM6ICR7dGhpcy5wYXNzV2l0aE5vVGVzdHN9LGApO1xuICAgICAgICBsaW5lcy5wdXNoKGAgICAgcHJpbnRDb25zb2xlVHJhY2U6ICR7dGhpcy5wcmludENvbnNvbGVUcmFjZX0sYCk7XG4gICAgICAgIGxpbmVzLnB1c2goYCAgICBwb29sOiBcIiR7dGhpcy5wb29sfVwiLGApO1xuICAgICAgICBsaW5lcy5wdXNoKGAgICAgc2xvd1Rlc3RUaHJlc2hvbGQ6ICR7dGhpcy5zbG93VGVzdFRocmVzaG9sZH0sYCk7XG4gICAgICAgIGxpbmVzLnB1c2goXCIgICAgdHlwZWNoZWNrOiB7XCIpO1xuICAgICAgICBsaW5lcy5wdXNoKGAgICAgICBlbmFibGVkOiAke3RoaXMudHlwZWNoZWNrRW5hYmxlZH0sYCk7XG4gICAgICAgIGxpbmVzLnB1c2goYCAgICAgIGNoZWNrZXI6IFwiJHt0aGlzLnR5cGVjaGVja0NoZWNrZXJ9XCIsYCk7XG4gICAgICAgIGxpbmVzLnB1c2goYCAgICAgIHRzY29uZmlnOiBcIiR7dGhpcy50eXBlY2hlY2tUc2NvbmZpZ31cIixgKTtcbiAgICAgICAgbGluZXMucHVzaChcIiAgICB9LFwiKTtcbiAgICAgICAgbGluZXMucHVzaChgICAgIHVwZGF0ZTogJHt0aGlzLnVwZGF0ZVNuYXBzaG90c30sYCk7XG5cbiAgICAgICAgcmV0dXJuIGxpbmVzO1xuICAgIH1cbn1cbiJdfQ==
|
|
276
|
+
|
|
277
|
+
+Vitest[_a] = { fqn: "@nikovirtala/projen-vitest.Vitest", version: "2.1.34" };
|
|
278
|
+
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsb0RBQWlEO0FBQ2pELDBEQUF5RDtBQUN6RCxzREFBK0Q7QUFDL0Qsa0RBQStDO0FBRS9DLElBQVksV0EwQlg7QUExQkQsV0FBWSxXQUFXO0lBQ25COzs7O09BSUc7SUFDSCw0Q0FBNkIsQ0FBQTtJQUU3Qjs7OztPQUlHO0lBQ0gsc0NBQXVCLENBQUE7SUFFdkI7Ozs7T0FJRztJQUNILDhCQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDRCQUFhLENBQUE7QUFDakIsQ0FBQyxFQTFCVyxXQUFXLDJCQUFYLFdBQVcsUUEwQnRCO0FBRUQsSUFBWSxJQStCWDtBQS9CRCxXQUFZLElBQUk7SUFDWjs7OztPQUlHO0lBQ0gsdUJBQWUsQ0FBQTtJQUVmOzs7O09BSUc7SUFDSCwyQkFBbUIsQ0FBQTtJQUVuQjs7Ozs7O09BTUc7SUFDSCwyQkFBbUIsQ0FBQTtJQUVuQjs7Ozs7T0FLRztJQUNILCtCQUF1QixDQUFBO0FBQzNCLENBQUMsRUEvQlcsSUFBSSxvQkFBSixJQUFJLFFBK0JmO0FBRUQsSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQ3hCOztPQUVHO0lBQ0gseUNBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCw2QkFBUyxDQUFBO0FBQ2IsQ0FBQyxFQVZXLGdCQUFnQixnQ0FBaEIsZ0JBQWdCLFFBVTNCO0FBRUQsSUFBWSxnQkF5Qlg7QUF6QkQsV0FBWSxnQkFBZ0I7SUFDeEI7O09BRUc7SUFDSCxxQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILGlDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILGlDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILGlDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILGlDQUFhLENBQUE7QUFDakIsQ0FBQyxFQXpCVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixR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QzNDO1lBQ0QsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDakMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDakMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3pDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7WUFDekMsU0FBUyxFQUFFO2dCQUNQLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2dCQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtnQkFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUI7YUFDbkM7WUFDRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDNUIsR0FBRyxJQUFJLENBQUMsV0FBVztTQUN0QixDQUFDO1FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDOztBQW5PTCx3QkFvT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJwcm9qZW4vbGliL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUgfSBmcm9tIFwicHJvamVuL2xpYi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB7IEplc3QsIHR5cGUgTm9kZVByb2plY3QgfSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBUZXh0RmlsZSB9IGZyb20gXCJwcm9qZW4vbGliL3RleHRmaWxlXCI7XG5cbmV4cG9ydCBlbnVtIEVudmlyb25tZW50IHtcbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gVmVyY2VsJ3MgRWRnZSBSdW50aW1lIFZNLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly9lZGdlLXJ1bnRpbWUudmVyY2VsLmFwcC9wYWNrYWdlcy92bVxuICAgICAqL1xuICAgIEVER0VfUlVOVElNRSA9IFwiZWRnZS1ydW50aW1lXCIsXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gYGhhcHB5LWRvbWAgZW52aXJvbm1lbnQuXG4gICAgICpcbiAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vY2Fwcmljb3JuODYvaGFwcHktZG9tXG4gICAgICovXG4gICAgSEFQUFlfRE9NID0gXCJoYXBweS1kb21cIixcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBganNkb21gIGVudmlyb25tZW50LlxuICAgICAqXG4gICAgICogaHR0cHM6Ly9naXRodWIuY29tL2pzZG9tL2pzZG9tXG4gICAgICovXG4gICAgSlNET00gPSBcImpzZG9tXCIsXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gYSBOb2RlLmpzIGVudmlyb25tZW50LlxuICAgICAqL1xuICAgIE5PREUgPSBcIm5vZGVcIixcbn1cblxuZXhwb3J0IGVudW0gUG9vbCB7XG4gICAgLyoqXG4gICAgICogUnVuIHRlc3RzIGluIGBub2RlOmNoaWxkX3Byb2Nlc3NgIHVzaW5nIFtgZm9yaygpYF0oaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9jaGlsZF9wcm9jZXNzLmh0bWwjY2hpbGRfcHJvY2Vzc2Zvcmttb2R1bGVwYXRoLWFyZ3Mtb3B0aW9ucylcbiAgICAgKlxuICAgICAqIFRlc3QgaXNvbGF0aW9uICh3aGVuIGVuYWJsZWQpIGlzIGRvbmUgYnkgc3Bhd25pbmcgYSBuZXcgY2hpbGQgcHJvY2VzcyBmb3IgZWFjaCB0ZXN0IGZpbGUuXG4gICAgICovXG4gICAgRk9SS1MgPSBcImZvcmtzXCIsXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gYG5vZGU6d29ya2VyX3RocmVhZHNgLlxuICAgICAqXG4gICAgICogVGVzdCBpc29sYXRpb24gKHdoZW4gZW5hYmxlZCkgaXMgZG9uZSBieSBzcGF3bmluZyBhIG5ldyB0aHJlYWQgZm9yIGVhY2ggdGVzdCBmaWxlLlxuICAgICAqL1xuICAgIFRIUkVBRFMgPSBcInRocmVhZHNcIixcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBpc29sYXRlZCBgbm9kZTp2bWAuXG4gICAgICpcbiAgICAgKiBUZXN0IGZpbGVzIGFyZSBydW4gcGFyYWxsZWwgdXNpbmcgYG5vZGU6Y2hpbGRfcHJvY2Vzc2AgW2Bmb3JrKClgXShodHRwczovL25vZGVqcy5vcmcvYXBpL2NoaWxkX3Byb2Nlc3MuaHRtbCNjaGlsZF9wcm9jZXNzZm9ya21vZHVsZXBhdGgtYXJncy1vcHRpb25zKVxuICAgICAqXG4gICAgICogVGhpcyBtYWtlcyB0ZXN0cyBydW4gZmFzdGVyLCBidXQgVk0gbW9kdWxlIGlzIHVuc3RhYmxlLiBZb3VyIHRlc3RzIG1pZ2h0IGxlYWsgbWVtb3J5LlxuICAgICAqL1xuICAgIFZNRk9SS1MgPSBcInZtZm9ya3NcIixcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBpc29sYXRlZCBgbm9kZTp2bWAuXG4gICAgICogVGVzdCBmaWxlcyBhcmUgcnVuIHBhcmFsbGVsIHVzaW5nIGBub2RlOndvcmtlcl90aHJlYWRzYC5cbiAgICAgKlxuICAgICAqIFRoaXMgbWFrZXMgdGVzdHMgcnVuIGZhc3RlciwgYnV0IFZNIG1vZHVsZSBpcyB1bnN0YWJsZS4gWW91ciB0ZXN0cyBtaWdodCBsZWFrIG1lbW9yeS5cbiAgICAgKi9cbiAgICBWTVRIUkVBRFMgPSBcInZtdGhyZWFkc1wiLFxufVxuXG5leHBvcnQgZW51bSBDb3ZlcmFnZVByb3ZpZGVyIHtcbiAgICAvKipcbiAgICAgKiBQcm92aWRlIGNvdmVyYWdlIHJlcG9ydCB1c2luZyBpc3RhbmJ1bC4gaHR0cHM6Ly9pc3RhbmJ1bC5qcy5vcmdcbiAgICAgKi9cbiAgICBJU1RBTkJVTCA9IFwiaXN0YW5idWxcIixcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGUgY292ZXJhZ2UgcmVwb3J0cyB1c2luZyB2OC4gaHR0cHM6Ly92OC5kZXYvYmxvZy9qYXZhc2NyaXB0LWNvZGUtY292ZXJhZ2VcbiAgICAgKi9cbiAgICBWOCA9IFwidjhcIixcbn1cblxuZXhwb3J0IGVudW0gQ292ZXJhZ2VSZXBvcnRlciB7XG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgYGNsb3ZlcmAgcmVwb3J0LlxuICAgICAqL1xuICAgIENMT1ZFUiA9IFwiY2xvdmVyXCIsXG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBgSFRNTGAgcmVwb3J0LlxuICAgICAqL1xuICAgIEhUTUwgPSBcImh0bWxcIixcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGBKU09OYCByZXBvcnQuXG4gICAgICovXG4gICAgSlNPTiA9IFwianNvblwiLFxuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgYExDT1ZgIHJlcG9ydC5cbiAgICAgKi9cbiAgICBMQ09WID0gXCJsY292XCIsXG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBgdGV4dGAgcmVwb3J0LlxuICAgICAqL1xuICAgIFRFWFQgPSBcInRleHRcIixcbn1cblxuLyoqXG4gKiBWaXRlc3QgQ29uZmlnLiBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnL1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpdGVzdENvbmZpZ09wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBnbG9iIHBhdHRlcm5zIHRoYXQgbWF0Y2ggeW91ciB0ZXN0IGZpbGVzLiBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNpbmNsdWRlXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIFZpdGVzdCdzIGBjb25maWdEZWZhdWx0cy5pbmNsdWRlYFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluY2x1ZGU/OiBBcnJheTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogQSBsaXN0IG9mIGdsb2IgcGF0dGVybnMgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB5b3VyIHRlc3QgZmlsZXMuXG4gICAgICogaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jZXhjbHVkZVxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBWaXRlc3QncyBgY29uZmlnRGVmYXVsdHMuZXhjbHVkZWBcbiAgICAgKi9cbiAgICByZWFkb25seSBleGNsdWRlPzogQXJyYXk8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBlbnZpcm9ubWVudCB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGVzdGluZy4gaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jZW52aXJvbm1lbnRcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwibm9kZVwiXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBFbnZpcm9ubWVudDtcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBhbiBpc29sYXRlZCBlbnZpcm9ubWVudC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB2bVRocmVhZHMgcG9vbC5cbiAgICAgKlxuICAgICAqIERpc2FibGluZyB0aGlzIG9wdGlvbiBtaWdodCBpbXByb3ZlIHBlcmZvcm1hbmNlIGlmIHlvdXIgY29kZSBkb2Vzbid0IHJlbHkgb24gc2lkZSBlZmZlY3RzLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jaXNvbGF0ZVxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlzb2xhdGU/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUG9vbCB1c2VkIHRvIHJ1biB0ZXN0cyBpbi4gaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jcG9vbFxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJmb3Jrc1wiXG4gICAgICovXG4gICAgcmVhZG9ubHkgcG9vbD86IFBvb2w7XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhcGlzIGdsb2JhbGx5LiBJZiB5b3UgcHJlZmVyIHRvIHVzZSB0aGUgQVBJcyBnbG9iYWxseSBsaWtlIEplc3QsIHNldCB0byBgdHJ1ZWAuXG4gICAgICogaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jZ2xvYmFsc1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBnbG9iYWxzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIENvdmVyYWdlIGVuYWJsZWQuIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2NvdmVyYWdlLWVuYWJsZWRcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICByZWFkb25seSBjb3ZlcmFnZUVuYWJsZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQ292ZXJhZ2UgcHJvdmlkZXIgdHlwZS4gaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jY292ZXJhZ2UtcHJvdmlkZXJcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwidjhcIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvdmVyYWdlUHJvdmlkZXI/OiBDb3ZlcmFnZVByb3ZpZGVyO1xuXG4gICAgLyoqXG4gICAgICogQ292ZXJhZ2UgcmVwb3J0ZXJzLiBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNjb3ZlcmFnZS1yZXBvcnRlclxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ1tcInRleHRcIiwgXCJsY292XCJdJ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvdmVyYWdlUmVwb3J0ZXJzPzogQXJyYXk8Q292ZXJhZ2VSZXBvcnRlcj47XG5cbiAgICAvKipcbiAgICAgKiBDb3ZlcmFnZSBvdXRwdXQgZGlyZWN0b3J5LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJjb3ZlcmFnZVwiXG4gICAgICovXG4gICAgcmVhZG9ubHkgY292ZXJhZ2VEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGUgdHlwZWNoZWNraW5nIGFsb25nc2lkZSB5b3VyIHJlZ3VsYXIgdGVzdHMuIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3R5cGVjaGVjay1lbmFibGVkXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlIChmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cylcbiAgICAgKi9cbiAgICByZWFkb25seSB0eXBlY2hlY2tFbmFibGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRvb2wgdG8gdXNlIGZvciB0eXBlIGNoZWNraW5nLiBDaGVja2VyIHNob3VsZCBpbXBsZW1lbnQgdGhlIHNhbWUgb3V0cHV0IGZvcm1hdCBhcyBgdHNjYC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3R5cGVjaGVjay1jaGVja2VyXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcInRzYyAtLW5vRW1pdFwiXG4gICAgICovXG4gICAgcmVhZG9ubHkgdHlwZWNoZWNrQ2hlY2tlcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFBhdGggdG8gY3VzdG9tIHRzY29uZmlnLCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCByb290LiBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyN0eXBlY2hlY2stdHNjb25maWdcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwidHNjb25maWcuZGV2Lmpzb25cIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHR5cGVjaGVja1RzY29uZmlnPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVml0ZXN0IHdpbGwgbm90IGZhaWwsIGlmIG5vIHRlc3RzIHdpbGwgYmUgZm91bmQuIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3Bhc3N3aXRobm90ZXN0c1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBhc3NXaXRoTm9UZXN0cz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTdG9wIHJ1bm5pbmcgdGVzdHMgYWZ0ZXIgY2VydGFpbiBudW1iZXIgb2YgZmFpbHVyZXMuIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2JhaWxcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICByZWFkb25seSBiYWlsPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHNuYXBzaG90IGZpbGVzLiBUaGlzIHdpbGwgdXBkYXRlIGFsbCBjaGFuZ2VkIHNuYXBzaG90cyBhbmQgZGVsZXRlIG9ic29sZXRlIG9uZXMuXG4gICAgICogaHR0cHM6Ly92aXRlc3QuZGV2L2d1aWRlL3NuYXBzaG90Lmh0bWwjdXBkYXRpbmctc25hcHNob3RzXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcmVhZG9ubHkgdXBkYXRlU25hcHNob3RzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEFsd2F5cyBwcmludCBjb25zb2xlIHRyYWNlcyB3aGVuIGNhbGxpbmcgYW55IGNvbnNvbGUgbWV0aG9kLiBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNjb25zb2xldHJhY2VcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICByZWFkb25seSBwcmludENvbnNvbGVUcmFjZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZnRlciB3aGljaCBhIHRlc3Qgb3Igc3VpdGUgaXMgY29uc2lkZXJlZCBzbG93LlxuICAgICAqIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3Nsb3d0ZXN0dGhyZXNob2xkXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAzMDBcbiAgICAgKi9cbiAgICByZWFkb25seSBzbG93VGVzdFRocmVzaG9sZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWaXRlc3RPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBDb25maWcgZmlsZSBwYXRoLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJ2aXRlc3QuY29uZmlnLnRzXCJcbiAgICAgKi9cbiAgICByZWFkb25seSBjb25maWdGaWxlUGF0aD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEluaXRpYWwgY29uZmlnIG9wdGlvbnMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY29uZmlnPzogVml0ZXN0Q29uZmlnT3B0aW9ucztcblxuICAgIC8qKlxuICAgICAqIEV4dHJhIGNvbmZpZyBvcHRpb25zIHRvIG1lcmdlIGludG8gdGhlIG1haW4gY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBleHRyYUNvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gICAgLyoqXG4gICAgICogVml0ZXN0IHZlcnNpb24uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcIl40XCJcbiAgICAgKi9cbiAgICByZWFkb25seSB2aXRlc3RWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVml0ZXN0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IE5vZGVQcm9qZWN0KTogVml0ZXN0IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgaXNWaXRlc3QgPSAoYzogQ29tcG9uZW50KTogYyBpcyBWaXRlc3QgPT4gYyBpbnN0YW5jZW9mIFZpdGVzdDtcbiAgICAgICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzVml0ZXN0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ0ZpbGVQYXRoOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHRyYUNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmNsdWRlOiBTZXQ8c3RyaW5nPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4Y2x1ZGU6IFNldDxzdHJpbmc+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNvbGF0ZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvb2w6IFBvb2w7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3ZlcmFnZUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSB0eXBlY2hlY2tFbmFibGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHlwZWNoZWNrQ2hlY2tlcjogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHlwZWNoZWNrVHNjb25maWc6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhc3NXaXRoTm9UZXN0czogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJhaWw6IG51bWJlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVwZGF0ZVNuYXBzaG90czogYm9vbGVhbjtcbiAgICBwcml2YXRlIGVudmlyb25tZW50OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBnbG9iYWxzOiBib29sZWFuO1xuICAgIHByaXZhdGUgY292ZXJhZ2VQcm92aWRlcjogQ292ZXJhZ2VQcm92aWRlcjtcbiAgICBwcml2YXRlIGNvdmVyYWdlUmVwb3J0ZXJzOiBBcnJheTxDb3ZlcmFnZVJlcG9ydGVyPjtcbiAgICBwcml2YXRlIGNvdmVyYWdlRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmludENvbnNvbGVUcmFjZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNsb3dUZXN0VGhyZXNob2xkOiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogVml0ZXN0T3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgICAgIHRoaXMuY29uZmlnRmlsZVBhdGggPSBvcHRpb25zLmNvbmZpZ0ZpbGVQYXRoID8/IFwidml0ZXN0LmNvbmZpZy50c1wiO1xuICAgICAgICB0aGlzLmluY2x1ZGUgPSBuZXcgU2V0KG9wdGlvbnMuY29uZmlnPy5pbmNsdWRlID8/IFtcIioqLyoue3Rlc3Qsc3BlY30uPyhjfG0pW2p0XXM/KHgpXCJdKTtcbiAgICAgICAgdGhpcy5leGNsdWRlID0gbmV3IFNldChcbiAgICAgICAgICAgIG9wdGlvbnMuY29uZmlnPy5leGNsdWRlID8/IFtcbiAgICAgICAgICAgICAgICBcIioqL25vZGVfbW9kdWxlcy8qKlwiLFxuICAgICAgICAgICAgICAgIFwiKiovZGlzdC8qKlwiLFxuICAgICAgICAgICAgICAgIFwiKiovY3lwcmVzcy8qKlwiLFxuICAgICAgICAgICAgICAgIFwiKiovLntpZGVhLGdpdCxjYWNoZSxvdXRwdXQsdGVtcH0vKipcIixcbiAgICAgICAgICAgICAgICBcIioqL3trYXJtYSxyb2xsdXAsd2VicGFjayx2aXRlLHZpdGVzdCxqZXN0LGF2YSxiYWJlbCxueWMsY3lwcmVzcyx0c3VwLGJ1aWxkLGVzbGludCxwcmV0dGllcn0uY29uZmlnLipcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaXNvbGF0ZSA9IG9wdGlvbnMuY29uZmlnPy5pc29sYXRlID8/IHRydWU7XG4gICAgICAgIHRoaXMucG9vbCA9IG9wdGlvbnMuY29uZmlnPy5wb29sID8/IFBvb2wuRk9SS1M7XG4gICAgICAgIHRoaXMuY292ZXJhZ2VFbmFibGVkID0gb3B0aW9ucy5jb25maWc/LmNvdmVyYWdlRW5hYmxlZCA/PyB0cnVlO1xuICAgICAgICB0aGlzLnR5cGVjaGVja0VuYWJsZWQgPSBvcHRpb25zLmNvbmZpZz8udHlwZWNoZWNrRW5hYmxlZCA/PyB0aGlzLmlzVHlwZXNjcmlwdFByb2plY3QoKTtcbiAgICAgICAgdGhpcy50eXBlY2hlY2tDaGVja2VyID0gb3B0aW9ucy5jb25maWc/LnR5cGVjaGVja0NoZWNrZXIgPz8gXCJ0c2MgLS1ub0VtaXRcIjtcbiAgICAgICAgdGhpcy50eXBlY2hlY2tUc2NvbmZpZyA9IG9wdGlvbnMuY29uZmlnPy50eXBlY2hlY2tUc2NvbmZpZyA/PyBcInRzY29uZmlnLmRldi5qc29uXCI7XG4gICAgICAgIHRoaXMucGFzc1dpdGhOb1Rlc3RzID0gb3B0aW9ucy5jb25maWc/LnBhc3NXaXRoTm9UZXN0cyA/PyB0cnVlO1xuICAgICAgICB0aGlzLmJhaWwgPSBvcHRpb25zLmNvbmZpZz8uYmFpbCA/PyAwO1xuICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gb3B0aW9ucy5jb25maWc/LmVudmlyb25tZW50ID8/IEVudmlyb25tZW50Lk5PREU7XG4gICAgICAgIHRoaXMuZ2xvYmFscyA9IG9wdGlvbnMuY29uZmlnPy5nbG9iYWxzID8/IGZhbHNlO1xuICAgICAgICB0aGlzLmNvdmVyYWdlUHJvdmlkZXIgPSBvcHRpb25zLmNvbmZpZz8uY292ZXJhZ2VQcm92aWRlciA/PyBDb3ZlcmFnZVByb3ZpZGVyLlY4O1xuICAgICAgICB0aGlzLmNvdmVyYWdlUmVwb3J0ZXJzID0gb3B0aW9ucy5jb25maWc/LmNvdmVyYWdlUmVwb3J0ZXJzID8/IFtDb3ZlcmFnZVJlcG9ydGVyLlRFWFQsIENvdmVyYWdlUmVwb3J0ZXIuTENPVl07XG4gICAgICAgIHRoaXMuY292ZXJhZ2VEaXJlY3RvcnkgPSBvcHRpb25zLmNvbmZpZz8uY292ZXJhZ2VEaXJlY3RvcnkgPz8gXCJjb3ZlcmFnZVwiO1xuICAgICAgICB0aGlzLnZlcnNpb24gPSBvcHRpb25zLnZpdGVzdFZlcnNpb24gPz8gXCJeNFwiO1xuICAgICAgICB0aGlzLnVwZGF0ZVNuYXBzaG90cyA9IG9wdGlvbnMuY29uZmlnPy51cGRhdGVTbmFwc2hvdHMgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmludENvbnNvbGVUcmFjZSA9IG9wdGlvbnMuY29uZmlnPy5wcmludENvbnNvbGVUcmFjZSA/PyB0cnVlO1xuICAgICAgICB0aGlzLnNsb3dUZXN0VGhyZXNob2xkID0gb3B0aW9ucy5jb25maWc/LnNsb3dUZXN0VGhyZXNob2xkID8/IDMwMDtcbiAgICAgICAgdGhpcy5leHRyYUNvbmZpZyA9IG9wdGlvbnMuZXh0cmFDb25maWcgPz8ge307XG5cbiAgICAgICAgcHJvamVjdC5hZGREZXZEZXBzKGB2aXRlc3RAJHt0aGlzLnZlcnNpb259YCk7XG4gICAgICAgIHRoaXMuY29uZmlndXJlQ292ZXJhZ2VQcm92aWRlcih0aGlzLmNvdmVyYWdlUHJvdmlkZXIpO1xuXG4gICAgICAgIGlmICh0aGlzLmdsb2JhbHMgJiYgdGhpcy5pc1R5cGVzY3JpcHRQcm9qZWN0KCkgJiYgdGhpcy5wcm9qZWN0LnRyeUZpbmRPYmplY3RGaWxlKHRoaXMudHlwZWNoZWNrVHNjb25maWcpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyZUdsb2JhbHMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvdmVyYWdlRGlyZWN0b3J5UGF0aCA9IHBhdGgucG9zaXguam9pbihcIi9cIiwgdGhpcy5jb3ZlcmFnZURpcmVjdG9yeSwgXCIvXCIpO1xuICAgICAgICBwcm9qZWN0Lm5wbWlnbm9yZT8uZXhjbHVkZShjb3ZlcmFnZURpcmVjdG9yeVBhdGgpO1xuICAgICAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKGNvdmVyYWdlRGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgICAgdGhpcy5hZGRUZXN0Q29tbWFuZCgpO1xuICAgICAgICB0aGlzLnN5bnRoZXNpemVDb25maWcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICAgICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpO1xuXG4gICAgICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHRoaXMucHJvamVjdC5jb21wb25lbnRzKSB7XG4gICAgICAgICAgICBpZiAoY29tcG9uZW50IGluc3RhbmNlb2YgSmVzdCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInZpdGVzdCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIGplc3RcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkSW5jbHVkZShwYXR0ZXJuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbmNsdWRlLmFkZChwYXR0ZXJuKTtcbiAgICAgICAgdGhpcy5zeW50aGVzaXplQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEV4Y2x1ZGUocGF0dGVybjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhjbHVkZS5hZGQocGF0dGVybik7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IHNob3VsZCB3ZSBoYXZlIHB1YmxpYyBtZXRob2QgZm9yIGVhY2ggY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgb3Igb25seSBhbGxvdyBjb25maWcgdGhydSBwcm9wcz9cblxuICAgIHB1YmxpYyBjb25maWd1cmVFbnZpcm9ubWVudChlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuICAgICAgICB0aGlzLnN5bnRoZXNpemVDb25maWcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uZmlndXJlQ292ZXJhZ2VQcm92aWRlcihwcm92aWRlcjogQ292ZXJhZ2VQcm92aWRlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm92aWRlclBhY2thZ2VzID0ge1xuICAgICAgICAgICAgW0NvdmVyYWdlUHJvdmlkZXIuVjhdOiBgQHZpdGVzdC9jb3ZlcmFnZS12OEAke3RoaXMudmVyc2lvbn1gLFxuICAgICAgICAgICAgW0NvdmVyYWdlUHJvdmlkZXIuSVNUQU5CVUxdOiBgQHZpdGVzdC9jb3ZlcmFnZS1pc3RhbmJ1bEAke3RoaXMudmVyc2lvbn1gLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHJlbW92ZSBleGlzdGluZyBwcm92aWRlciBwYWNrYWdlcyBpZiB0aGV5IGV4aXN0XG4gICAgICAgIGZvciAoY29uc3QgcHJvdmlkZXJQYWNrYWdlIG9mIE9iamVjdC52YWx1ZXMocHJvdmlkZXJQYWNrYWdlcykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0LmRlcHMucmVtb3ZlRGVwZW5kZW5jeShwcm92aWRlclBhY2thZ2UpO1xuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLy8gaWdub3JlIGVycm9ycyB3aGVuIGRlcGVuZGVuY3kgZG9lc24ndCBleGlzdFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShwcm92aWRlclBhY2thZ2VzW3Byb3ZpZGVyXSwgRGVwZW5kZW5jeVR5cGUuREVWRU5WKTtcbiAgICAgICAgdGhpcy5jb3ZlcmFnZVByb3ZpZGVyID0gcHJvdmlkZXI7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maWd1cmVDb3ZlcmFnZVJlcG9ydGVycyhyZXBvcnRlcnM6IEFycmF5PENvdmVyYWdlUmVwb3J0ZXI+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY292ZXJhZ2VSZXBvcnRlcnMgPSByZXBvcnRlcnM7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGhvdyBhYm91dCByZW1vdmluZyB0aGUgYHZpdGVzdC9nbG9iYWxzYCBmcm9tIHRzY29uZmlnP1xuXG4gICAgcHVibGljIGNvbmZpZ3VyZUdsb2JhbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVHNDb25maWcoKTtcbiAgICAgICAgdGhpcy5zeW50aGVzaXplQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUc0NvbmZpZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdHNjb25maWcgPSB0aGlzLnByb2plY3QudHJ5RmluZE9iamVjdEZpbGUodGhpcy50eXBlY2hlY2tUc2NvbmZpZyk7XG5cbiAgICAgICAgaWYgKCF0c2NvbmZpZykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5hYmxlIHRvIGZpbmQgdHNjb25maWdcIik7XG4gICAgICAgIH1cblxuICAgICAgICB0c2NvbmZpZy5hZGRUb0FycmF5KFwiY29tcGlsZXJPcHRpb25zLnR5cGVzXCIsIFwidml0ZXN0L2dsb2JhbHNcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1R5cGVzY3JpcHRQcm9qZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9qZWN0LmRlcHMudHJ5R2V0RGVwZW5kZW5jeShcInR5cGVzY3JpcHRcIikgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFRlc3RDb21tYW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2plY3QudGVzdFRhc2suZXhlYyhcInZpdGVzdCBydW5cIiwge1xuICAgICAgICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHRlc3RXYXRjaCA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwidGVzdDp3YXRjaFwiKTtcbiAgICAgICAgaWYgKCF0ZXN0V2F0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKFwidGVzdDp3YXRjaFwiLCB7XG4gICAgICAgICAgICAgICAgZXhlYzogXCJ2aXRlc3Qgd2F0Y2hcIixcbiAgICAgICAgICAgICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGVzdFVwZGF0ZVNuYXBzaG90cyA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwidGVzdDp1cGRhdGVcIik7XG4gICAgICAgIGlmICghdGVzdFVwZGF0ZVNuYXBzaG90cykge1xuICAgICAgICAgICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soXCJ0ZXN0OnVwZGF0ZVwiLCB7XG4gICAgICAgICAgICAgICAgZXhlYzogXCJ2aXRlc3QgLS11cGRhdGVcIixcbiAgICAgICAgICAgICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW50aGVzaXplQ29uZmlnKCk6IHZvaWQge1xuICAgICAgICAvLyBvaCBkZWFyIVxuICAgICAgICB0aGlzLnByb2plY3QudHJ5UmVtb3ZlRmlsZSh0aGlzLmNvbmZpZ0ZpbGVQYXRoKTtcblxuICAgICAgICBuZXcgVGV4dEZpbGUodGhpcywgdGhpcy5jb25maWdGaWxlUGF0aCwge1xuICAgICAgICAgICAgbGluZXM6IHRoaXMucmVuZGVyQ29uZmlnKCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyQ29uZmlnKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICBjb25zdCBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0IGFzIE5vZGVQcm9qZWN0O1xuICAgICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHByb2plY3QucGFja2FnZS5wYWNrYWdlTmFtZTtcbiAgICAgICAgY29uc3QgZGVmaW5lQ29uZmlnSW1wb3J0ID1cbiAgICAgICAgICAgIHBhY2thZ2VOYW1lID09PSBcIkBuaWtvdmlydGFsYS9wcm9qZW4tdml0ZXN0XCJcbiAgICAgICAgICAgICAgICA/ICdpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZXN0L2NvbmZpZ1wiOydcbiAgICAgICAgICAgICAgICA6ICdpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiQG5pa292aXJ0YWxhL3Byb2plbi12aXRlc3QvbGliL2J1bmRsZWQtZGVmaW5lLWNvbmZpZ1wiOyc7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIGRlZmluZUNvbmZpZ0ltcG9ydCxcbiAgICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgICBcImV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7XCIsXG4gICAgICAgICAgICBcIiAgdGVzdDogXCIsXG4gICAgICAgICAgICAuLi50aGlzLnJlbmRlclRlc3RPcHRpb25zKCksXG4gICAgICAgICAgICBcIn0pO1wiLFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyVGVzdE9wdGlvbnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBiYWlsOiB0aGlzLmJhaWwsXG4gICAgICAgICAgICBjb3ZlcmFnZToge1xuICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRoaXMuY292ZXJhZ2VFbmFibGVkLFxuICAgICAgICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLmNvdmVyYWdlUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgcmVwb3J0ZXI6IHRoaXMuY292ZXJhZ2VSZXBvcnRlcnMsXG4gICAgICAgICAgICAgICAgcmVwb3J0c0RpcmVjdG9yeTogdGhpcy5jb3ZlcmFnZURpcmVjdG9yeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudCxcbiAgICAgICAgICAgIGV4Y2x1ZGU6IEFycmF5LmZyb20odGhpcy5leGNsdWRlKSxcbiAgICAgICAgICAgIGdsb2JhbHM6IHRoaXMuZ2xvYmFscyxcbiAgICAgICAgICAgIGluY2x1ZGU6IEFycmF5LmZyb20odGhpcy5pbmNsdWRlKSxcbiAgICAgICAgICAgIGlzb2xhdGU6IHRoaXMuaXNvbGF0ZSxcbiAgICAgICAgICAgIHBhc3NXaXRoTm9UZXN0czogdGhpcy5wYXNzV2l0aE5vVGVzdHMsXG4gICAgICAgICAgICBwcmludENvbnNvbGVUcmFjZTogdGhpcy5wcmludENvbnNvbGVUcmFjZSxcbiAgICAgICAgICAgIHBvb2w6IHRoaXMucG9vbCxcbiAgICAgICAgICAgIHNsb3dUZXN0VGhyZXNob2xkOiB0aGlzLnNsb3dUZXN0VGhyZXNob2xkLFxuICAgICAgICAgICAgdHlwZWNoZWNrOiB7XG4gICAgICAgICAgICAgICAgZW5hYmxlZDogdGhpcy50eXBlY2hlY2tFbmFibGVkLFxuICAgICAgICAgICAgICAgIGNoZWNrZXI6IHRoaXMudHlwZWNoZWNrQ2hlY2tlcixcbiAgICAgICAgICAgICAgICB0c2NvbmZpZzogdGhpcy50eXBlY2hlY2tUc2NvbmZpZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGU6IHRoaXMudXBkYXRlU25hcHNob3RzLFxuICAgICAgICAgICAgLi4udGhpcy5leHRyYUNvbmZpZyxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucywgbnVsbCwgMik7XG4gICAgICAgIHJldHVybiBkYXRhLnNwbGl0KFwiXFxuXCIpLm1hcCgobGluZSkgPT4gYCAgJHtsaW5lfWApO1xuICAgIH1cbn1cbiJdfQ==
|
|
279
|
+
|
|
280
|
+
diff --git a/package.json b/package.json
|
|
281
|
+
index 31cc5b59cf34f867801c7d511817411c6d0ee9df..602119ce8e3a028f1e350ef9df632ab78c936768 100644
|
|
282
|
+
--- a/package.json
|
|
283
|
+
+++ b/package.json
|
|
284
|
+
@@ -42,7 +42,7 @@
|
|
285
|
+
"publishConfig": {
|
|
286
|
+
"access": "public"
|
|
287
|
+
},
|
|
288
|
+
- "version": "2.1.33",
|
|
289
|
+
+ "version": "2.1.34",
|
|
290
|
+
"types": "lib/index.d.ts",
|
|
291
|
+
"stability": "stable",
|
|
292
|
+
"jsii": {
|