aws-cdk 2.175.1 → 2.176.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +4 -4
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/api/aws-auth/credential-plugins.js +5 -5
- package/lib/api/aws-auth/sdk-provider.js +3 -2
- package/lib/api/aws-auth/sdk.js +3 -2
- package/lib/api/cxapp/cloud-assembly.js +4 -4
- package/lib/api/deploy-stack.js +11 -10
- package/lib/api/deployments.js +4 -4
- package/lib/api/environment-access.js +3 -2
- package/lib/api/environment-resources.js +3 -2
- package/lib/api/garbage-collection/garbage-collector.js +9 -9
- package/lib/api/garbage-collection/progress-printer.js +3 -3
- package/lib/api/hotswap-deployments.js +11 -10
- package/lib/api/logs/find-cloudwatch-logs.js +3 -2
- package/lib/api/logs/logs-monitor.js +3 -3
- package/lib/api/nested-stack-helpers.js +3 -2
- package/lib/api/plugin/plugin.js +1 -1
- package/lib/api/util/cloudformation/stack-activity-monitor.d.ts +4 -4
- package/lib/api/util/cloudformation/stack-activity-monitor.js +9 -9
- package/lib/api/util/cloudformation/stack-event-poller.js +3 -2
- package/lib/api/util/cloudformation.js +3 -3
- package/lib/cdk-toolkit.js +32 -33
- package/lib/cli.js +12 -7
- package/lib/commands/context.js +20 -20
- package/lib/commands/docs.js +2 -2
- package/lib/commands/doctor.js +9 -9
- package/lib/commands/migrate.js +16 -16
- package/lib/config.d.ts +6 -3
- package/lib/config.js +10 -7
- package/lib/context-providers/ami.js +2 -2
- package/lib/context-providers/index.js +3 -2
- package/lib/convert-to-user-input.d.ts +3 -0
- package/lib/convert-to-user-input.js +431 -0
- package/lib/diff.js +3 -3
- package/lib/import.js +6 -6
- package/lib/index.js +50 -35
- package/lib/init-hooks.js +3 -2
- package/lib/init-templates/.init-version.json +1 -1
- package/lib/init-templates/.recommended-feature-flags.json +2 -1
- package/lib/init-templates/app/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +1 -1
- package/lib/init-templates/app/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +1 -1
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +1 -1
- package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +1 -1
- package/lib/init.d.ts +1 -1
- package/lib/init.js +20 -19
- package/lib/logging.d.ts +112 -48
- package/lib/logging.js +176 -133
- package/lib/notices.js +13 -12
- package/lib/parse-command-line-arguments.js +2 -2
- package/lib/settings.d.ts +2 -0
- package/lib/settings.js +3 -1
- package/lib/toolkit/cli-io-host.d.ts +56 -25
- package/lib/toolkit/cli-io-host.js +49 -22
- package/lib/toolkit/error.js +2 -2
- package/lib/{cli-arguments.d.ts → user-input.d.ts} +8 -8
- package/lib/user-input.js +3 -0
- package/lib/util/archive.js +3 -2
- package/lib/util/asset-publishing.js +3 -3
- package/lib/util/error.d.ts +9 -0
- package/lib/util/error.js +22 -0
- package/lib/version.js +2 -2
- package/package.json +12 -11
- package/scripts/user-input-gen +2 -0
- package/scripts/user-input-gen.js +17 -0
- package/test/api/exec.test.js +3 -3
- package/test/api/fake-sts.js +3 -2
- package/test/api/logs/logging.test.js +269 -0
- package/test/api/sdk-provider.test.js +3 -3
- package/test/api/stack-activity-monitor.test.js +16 -16
- package/test/api/util/error.test.d.ts +1 -0
- package/test/api/util/error.test.js +26 -0
- package/test/cli-arguments.test.js +126 -81
- package/test/cli.test.js +8 -8
- package/test/init.test.js +5 -5
- package/test/jest-bufferedconsole.d.ts +14 -0
- package/test/jest-bufferedconsole.js +72 -0
- package/test/notices.test.js +14 -14
- package/test/toolkit/cli-io-host.test.js +93 -188
- package/test/util/silent.js +2 -2
- package/test/version.test.js +5 -5
- package/lib/cli-arguments.js +0 -3
- package/lib/convert-to-cli-args.d.ts +0 -2
- package/lib/convert-to-cli-args.js +0 -234
- package/scripts/cli-args-gen +0 -2
- package/scripts/cli-args-gen.js +0 -16
- package/test/api/logs/cli-logging.test.js +0 -135
- /package/scripts/{cli-args-gen.d.ts → user-input-gen.d.ts} +0 -0
- /package/test/api/logs/{cli-logging.test.d.ts → logging.test.d.ts} +0 -0
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertYargsToUserInput = convertYargsToUserInput;
|
|
4
|
+
exports.convertConfigToUserInput = convertConfigToUserInput;
|
|
5
|
+
// @ts-ignore TS6133
|
|
6
|
+
function convertYargsToUserInput(args) {
|
|
7
|
+
const globalOptions = {
|
|
8
|
+
app: args.app,
|
|
9
|
+
build: args.build,
|
|
10
|
+
context: args.context,
|
|
11
|
+
plugin: args.plugin,
|
|
12
|
+
trace: args.trace,
|
|
13
|
+
strict: args.strict,
|
|
14
|
+
lookups: args.lookups,
|
|
15
|
+
ignoreErrors: args.ignoreErrors,
|
|
16
|
+
json: args.json,
|
|
17
|
+
verbose: args.verbose,
|
|
18
|
+
debug: args.debug,
|
|
19
|
+
profile: args.profile,
|
|
20
|
+
proxy: args.proxy,
|
|
21
|
+
caBundlePath: args.caBundlePath,
|
|
22
|
+
ec2creds: args.ec2creds,
|
|
23
|
+
versionReporting: args.versionReporting,
|
|
24
|
+
pathMetadata: args.pathMetadata,
|
|
25
|
+
assetMetadata: args.assetMetadata,
|
|
26
|
+
roleArn: args.roleArn,
|
|
27
|
+
staging: args.staging,
|
|
28
|
+
output: args.output,
|
|
29
|
+
notices: args.notices,
|
|
30
|
+
noColor: args.noColor,
|
|
31
|
+
ci: args.ci,
|
|
32
|
+
unstable: args.unstable,
|
|
33
|
+
};
|
|
34
|
+
let commandOptions;
|
|
35
|
+
switch (args._[0]) {
|
|
36
|
+
case 'list':
|
|
37
|
+
case 'ls':
|
|
38
|
+
commandOptions = {
|
|
39
|
+
long: args.long,
|
|
40
|
+
showDependencies: args.showDependencies,
|
|
41
|
+
STACKS: args.STACKS,
|
|
42
|
+
};
|
|
43
|
+
break;
|
|
44
|
+
case 'synth':
|
|
45
|
+
case 'synthesize':
|
|
46
|
+
commandOptions = {
|
|
47
|
+
exclusively: args.exclusively,
|
|
48
|
+
validation: args.validation,
|
|
49
|
+
quiet: args.quiet,
|
|
50
|
+
STACKS: args.STACKS,
|
|
51
|
+
};
|
|
52
|
+
break;
|
|
53
|
+
case 'bootstrap':
|
|
54
|
+
commandOptions = {
|
|
55
|
+
bootstrapBucketName: args.bootstrapBucketName,
|
|
56
|
+
bootstrapKmsKeyId: args.bootstrapKmsKeyId,
|
|
57
|
+
examplePermissionsBoundary: args.examplePermissionsBoundary,
|
|
58
|
+
customPermissionsBoundary: args.customPermissionsBoundary,
|
|
59
|
+
bootstrapCustomerKey: args.bootstrapCustomerKey,
|
|
60
|
+
qualifier: args.qualifier,
|
|
61
|
+
publicAccessBlockConfiguration: args.publicAccessBlockConfiguration,
|
|
62
|
+
tags: args.tags,
|
|
63
|
+
execute: args.execute,
|
|
64
|
+
trust: args.trust,
|
|
65
|
+
trustForLookup: args.trustForLookup,
|
|
66
|
+
cloudformationExecutionPolicies: args.cloudformationExecutionPolicies,
|
|
67
|
+
force: args.force,
|
|
68
|
+
terminationProtection: args.terminationProtection,
|
|
69
|
+
showTemplate: args.showTemplate,
|
|
70
|
+
toolkitStackName: args.toolkitStackName,
|
|
71
|
+
template: args.template,
|
|
72
|
+
previousParameters: args.previousParameters,
|
|
73
|
+
ENVIRONMENTS: args.ENVIRONMENTS,
|
|
74
|
+
};
|
|
75
|
+
break;
|
|
76
|
+
case 'gc':
|
|
77
|
+
commandOptions = {
|
|
78
|
+
action: args.action,
|
|
79
|
+
type: args.type,
|
|
80
|
+
rollbackBufferDays: args.rollbackBufferDays,
|
|
81
|
+
createdBufferDays: args.createdBufferDays,
|
|
82
|
+
confirm: args.confirm,
|
|
83
|
+
bootstrapStackName: args.bootstrapStackName,
|
|
84
|
+
ENVIRONMENTS: args.ENVIRONMENTS,
|
|
85
|
+
};
|
|
86
|
+
break;
|
|
87
|
+
case 'deploy':
|
|
88
|
+
commandOptions = {
|
|
89
|
+
all: args.all,
|
|
90
|
+
buildExclude: args.buildExclude,
|
|
91
|
+
exclusively: args.exclusively,
|
|
92
|
+
requireApproval: args.requireApproval,
|
|
93
|
+
notificationArns: args.notificationArns,
|
|
94
|
+
tags: args.tags,
|
|
95
|
+
execute: args.execute,
|
|
96
|
+
changeSetName: args.changeSetName,
|
|
97
|
+
method: args.method,
|
|
98
|
+
importExistingResources: args.importExistingResources,
|
|
99
|
+
force: args.force,
|
|
100
|
+
parameters: args.parameters,
|
|
101
|
+
outputsFile: args.outputsFile,
|
|
102
|
+
previousParameters: args.previousParameters,
|
|
103
|
+
toolkitStackName: args.toolkitStackName,
|
|
104
|
+
progress: args.progress,
|
|
105
|
+
rollback: args.rollback,
|
|
106
|
+
hotswap: args.hotswap,
|
|
107
|
+
hotswapFallback: args.hotswapFallback,
|
|
108
|
+
watch: args.watch,
|
|
109
|
+
logs: args.logs,
|
|
110
|
+
concurrency: args.concurrency,
|
|
111
|
+
assetParallelism: args.assetParallelism,
|
|
112
|
+
assetPrebuild: args.assetPrebuild,
|
|
113
|
+
ignoreNoStacks: args.ignoreNoStacks,
|
|
114
|
+
STACKS: args.STACKS,
|
|
115
|
+
};
|
|
116
|
+
break;
|
|
117
|
+
case 'rollback':
|
|
118
|
+
commandOptions = {
|
|
119
|
+
all: args.all,
|
|
120
|
+
toolkitStackName: args.toolkitStackName,
|
|
121
|
+
force: args.force,
|
|
122
|
+
validateBootstrapVersion: args.validateBootstrapVersion,
|
|
123
|
+
orphan: args.orphan,
|
|
124
|
+
STACKS: args.STACKS,
|
|
125
|
+
};
|
|
126
|
+
break;
|
|
127
|
+
case 'import':
|
|
128
|
+
commandOptions = {
|
|
129
|
+
execute: args.execute,
|
|
130
|
+
changeSetName: args.changeSetName,
|
|
131
|
+
toolkitStackName: args.toolkitStackName,
|
|
132
|
+
rollback: args.rollback,
|
|
133
|
+
force: args.force,
|
|
134
|
+
recordResourceMapping: args.recordResourceMapping,
|
|
135
|
+
resourceMapping: args.resourceMapping,
|
|
136
|
+
STACK: args.STACK,
|
|
137
|
+
};
|
|
138
|
+
break;
|
|
139
|
+
case 'watch':
|
|
140
|
+
commandOptions = {
|
|
141
|
+
buildExclude: args.buildExclude,
|
|
142
|
+
exclusively: args.exclusively,
|
|
143
|
+
changeSetName: args.changeSetName,
|
|
144
|
+
force: args.force,
|
|
145
|
+
toolkitStackName: args.toolkitStackName,
|
|
146
|
+
progress: args.progress,
|
|
147
|
+
rollback: args.rollback,
|
|
148
|
+
hotswap: args.hotswap,
|
|
149
|
+
hotswapFallback: args.hotswapFallback,
|
|
150
|
+
logs: args.logs,
|
|
151
|
+
concurrency: args.concurrency,
|
|
152
|
+
STACKS: args.STACKS,
|
|
153
|
+
};
|
|
154
|
+
break;
|
|
155
|
+
case 'destroy':
|
|
156
|
+
commandOptions = {
|
|
157
|
+
all: args.all,
|
|
158
|
+
exclusively: args.exclusively,
|
|
159
|
+
force: args.force,
|
|
160
|
+
STACKS: args.STACKS,
|
|
161
|
+
};
|
|
162
|
+
break;
|
|
163
|
+
case 'diff':
|
|
164
|
+
commandOptions = {
|
|
165
|
+
exclusively: args.exclusively,
|
|
166
|
+
contextLines: args.contextLines,
|
|
167
|
+
template: args.template,
|
|
168
|
+
strict: args.strict,
|
|
169
|
+
securityOnly: args.securityOnly,
|
|
170
|
+
fail: args.fail,
|
|
171
|
+
processed: args.processed,
|
|
172
|
+
quiet: args.quiet,
|
|
173
|
+
changeSet: args.changeSet,
|
|
174
|
+
STACKS: args.STACKS,
|
|
175
|
+
};
|
|
176
|
+
break;
|
|
177
|
+
case 'metadata':
|
|
178
|
+
commandOptions = {
|
|
179
|
+
STACK: args.STACK,
|
|
180
|
+
};
|
|
181
|
+
break;
|
|
182
|
+
case 'acknowledge':
|
|
183
|
+
case 'ack':
|
|
184
|
+
commandOptions = {
|
|
185
|
+
ID: args.ID,
|
|
186
|
+
};
|
|
187
|
+
break;
|
|
188
|
+
case 'notices':
|
|
189
|
+
commandOptions = {
|
|
190
|
+
unacknowledged: args.unacknowledged,
|
|
191
|
+
};
|
|
192
|
+
break;
|
|
193
|
+
case 'init':
|
|
194
|
+
commandOptions = {
|
|
195
|
+
language: args.language,
|
|
196
|
+
list: args.list,
|
|
197
|
+
generateOnly: args.generateOnly,
|
|
198
|
+
TEMPLATE: args.TEMPLATE,
|
|
199
|
+
};
|
|
200
|
+
break;
|
|
201
|
+
case 'migrate':
|
|
202
|
+
commandOptions = {
|
|
203
|
+
stackName: args.stackName,
|
|
204
|
+
language: args.language,
|
|
205
|
+
account: args.account,
|
|
206
|
+
region: args.region,
|
|
207
|
+
fromPath: args.fromPath,
|
|
208
|
+
fromStack: args.fromStack,
|
|
209
|
+
outputPath: args.outputPath,
|
|
210
|
+
fromScan: args.fromScan,
|
|
211
|
+
filter: args.filter,
|
|
212
|
+
compress: args.compress,
|
|
213
|
+
};
|
|
214
|
+
break;
|
|
215
|
+
case 'context':
|
|
216
|
+
commandOptions = {
|
|
217
|
+
reset: args.reset,
|
|
218
|
+
force: args.force,
|
|
219
|
+
clear: args.clear,
|
|
220
|
+
};
|
|
221
|
+
break;
|
|
222
|
+
case 'docs':
|
|
223
|
+
case 'doc':
|
|
224
|
+
commandOptions = {
|
|
225
|
+
browser: args.browser,
|
|
226
|
+
};
|
|
227
|
+
break;
|
|
228
|
+
case 'doctor':
|
|
229
|
+
commandOptions = {};
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
const userInput = {
|
|
233
|
+
command: args._[0],
|
|
234
|
+
globalOptions,
|
|
235
|
+
[args._[0]]: commandOptions,
|
|
236
|
+
};
|
|
237
|
+
return userInput;
|
|
238
|
+
}
|
|
239
|
+
// @ts-ignore TS6133
|
|
240
|
+
function convertConfigToUserInput(config) {
|
|
241
|
+
const globalOptions = {
|
|
242
|
+
app: config.app,
|
|
243
|
+
build: config.build,
|
|
244
|
+
context: config.context,
|
|
245
|
+
plugin: config.plugin,
|
|
246
|
+
trace: config.trace,
|
|
247
|
+
strict: config.strict,
|
|
248
|
+
lookups: config.lookups,
|
|
249
|
+
ignoreErrors: config.ignoreErrors,
|
|
250
|
+
json: config.json,
|
|
251
|
+
verbose: config.verbose,
|
|
252
|
+
debug: config.debug,
|
|
253
|
+
profile: config.profile,
|
|
254
|
+
proxy: config.proxy,
|
|
255
|
+
caBundlePath: config.caBundlePath,
|
|
256
|
+
ec2creds: config.ec2creds,
|
|
257
|
+
versionReporting: config.versionReporting,
|
|
258
|
+
pathMetadata: config.pathMetadata,
|
|
259
|
+
assetMetadata: config.assetMetadata,
|
|
260
|
+
roleArn: config.roleArn,
|
|
261
|
+
staging: config.staging,
|
|
262
|
+
output: config.output,
|
|
263
|
+
notices: config.notices,
|
|
264
|
+
noColor: config.noColor,
|
|
265
|
+
ci: config.ci,
|
|
266
|
+
unstable: config.unstable,
|
|
267
|
+
};
|
|
268
|
+
const listOptions = {
|
|
269
|
+
long: config.list?.long,
|
|
270
|
+
showDependencies: config.list?.showDependencies,
|
|
271
|
+
};
|
|
272
|
+
const synthOptions = {
|
|
273
|
+
exclusively: config.synth?.exclusively,
|
|
274
|
+
validation: config.synth?.validation,
|
|
275
|
+
quiet: config.synth?.quiet,
|
|
276
|
+
};
|
|
277
|
+
const bootstrapOptions = {
|
|
278
|
+
bootstrapBucketName: config.bootstrap?.bootstrapBucketName,
|
|
279
|
+
bootstrapKmsKeyId: config.bootstrap?.bootstrapKmsKeyId,
|
|
280
|
+
examplePermissionsBoundary: config.bootstrap?.examplePermissionsBoundary,
|
|
281
|
+
customPermissionsBoundary: config.bootstrap?.customPermissionsBoundary,
|
|
282
|
+
bootstrapCustomerKey: config.bootstrap?.bootstrapCustomerKey,
|
|
283
|
+
qualifier: config.bootstrap?.qualifier,
|
|
284
|
+
publicAccessBlockConfiguration: config.bootstrap?.publicAccessBlockConfiguration,
|
|
285
|
+
tags: config.bootstrap?.tags,
|
|
286
|
+
execute: config.bootstrap?.execute,
|
|
287
|
+
trust: config.bootstrap?.trust,
|
|
288
|
+
trustForLookup: config.bootstrap?.trustForLookup,
|
|
289
|
+
cloudformationExecutionPolicies: config.bootstrap?.cloudformationExecutionPolicies,
|
|
290
|
+
force: config.bootstrap?.force,
|
|
291
|
+
terminationProtection: config.bootstrap?.terminationProtection,
|
|
292
|
+
showTemplate: config.bootstrap?.showTemplate,
|
|
293
|
+
toolkitStackName: config.bootstrap?.toolkitStackName,
|
|
294
|
+
template: config.bootstrap?.template,
|
|
295
|
+
previousParameters: config.bootstrap?.previousParameters,
|
|
296
|
+
};
|
|
297
|
+
const gcOptions = {
|
|
298
|
+
action: config.gc?.action,
|
|
299
|
+
type: config.gc?.type,
|
|
300
|
+
rollbackBufferDays: config.gc?.rollbackBufferDays,
|
|
301
|
+
createdBufferDays: config.gc?.createdBufferDays,
|
|
302
|
+
confirm: config.gc?.confirm,
|
|
303
|
+
bootstrapStackName: config.gc?.bootstrapStackName,
|
|
304
|
+
};
|
|
305
|
+
const deployOptions = {
|
|
306
|
+
all: config.deploy?.all,
|
|
307
|
+
buildExclude: config.deploy?.buildExclude,
|
|
308
|
+
exclusively: config.deploy?.exclusively,
|
|
309
|
+
requireApproval: config.deploy?.requireApproval,
|
|
310
|
+
notificationArns: config.deploy?.notificationArns,
|
|
311
|
+
tags: config.deploy?.tags,
|
|
312
|
+
execute: config.deploy?.execute,
|
|
313
|
+
changeSetName: config.deploy?.changeSetName,
|
|
314
|
+
method: config.deploy?.method,
|
|
315
|
+
importExistingResources: config.deploy?.importExistingResources,
|
|
316
|
+
force: config.deploy?.force,
|
|
317
|
+
parameters: config.deploy?.parameters,
|
|
318
|
+
outputsFile: config.deploy?.outputsFile,
|
|
319
|
+
previousParameters: config.deploy?.previousParameters,
|
|
320
|
+
toolkitStackName: config.deploy?.toolkitStackName,
|
|
321
|
+
progress: config.deploy?.progress,
|
|
322
|
+
rollback: config.deploy?.rollback,
|
|
323
|
+
hotswap: config.deploy?.hotswap,
|
|
324
|
+
hotswapFallback: config.deploy?.hotswapFallback,
|
|
325
|
+
watch: config.deploy?.watch,
|
|
326
|
+
logs: config.deploy?.logs,
|
|
327
|
+
concurrency: config.deploy?.concurrency,
|
|
328
|
+
assetParallelism: config.deploy?.assetParallelism,
|
|
329
|
+
assetPrebuild: config.deploy?.assetPrebuild,
|
|
330
|
+
ignoreNoStacks: config.deploy?.ignoreNoStacks,
|
|
331
|
+
};
|
|
332
|
+
const rollbackOptions = {
|
|
333
|
+
all: config.rollback?.all,
|
|
334
|
+
toolkitStackName: config.rollback?.toolkitStackName,
|
|
335
|
+
force: config.rollback?.force,
|
|
336
|
+
validateBootstrapVersion: config.rollback?.validateBootstrapVersion,
|
|
337
|
+
orphan: config.rollback?.orphan,
|
|
338
|
+
};
|
|
339
|
+
const importOptions = {
|
|
340
|
+
execute: config.import?.execute,
|
|
341
|
+
changeSetName: config.import?.changeSetName,
|
|
342
|
+
toolkitStackName: config.import?.toolkitStackName,
|
|
343
|
+
rollback: config.import?.rollback,
|
|
344
|
+
force: config.import?.force,
|
|
345
|
+
recordResourceMapping: config.import?.recordResourceMapping,
|
|
346
|
+
resourceMapping: config.import?.resourceMapping,
|
|
347
|
+
};
|
|
348
|
+
const watchOptions = {
|
|
349
|
+
buildExclude: config.watch?.buildExclude,
|
|
350
|
+
exclusively: config.watch?.exclusively,
|
|
351
|
+
changeSetName: config.watch?.changeSetName,
|
|
352
|
+
force: config.watch?.force,
|
|
353
|
+
toolkitStackName: config.watch?.toolkitStackName,
|
|
354
|
+
progress: config.watch?.progress,
|
|
355
|
+
rollback: config.watch?.rollback,
|
|
356
|
+
hotswap: config.watch?.hotswap,
|
|
357
|
+
hotswapFallback: config.watch?.hotswapFallback,
|
|
358
|
+
logs: config.watch?.logs,
|
|
359
|
+
concurrency: config.watch?.concurrency,
|
|
360
|
+
};
|
|
361
|
+
const destroyOptions = {
|
|
362
|
+
all: config.destroy?.all,
|
|
363
|
+
exclusively: config.destroy?.exclusively,
|
|
364
|
+
force: config.destroy?.force,
|
|
365
|
+
};
|
|
366
|
+
const diffOptions = {
|
|
367
|
+
exclusively: config.diff?.exclusively,
|
|
368
|
+
contextLines: config.diff?.contextLines,
|
|
369
|
+
template: config.diff?.template,
|
|
370
|
+
strict: config.diff?.strict,
|
|
371
|
+
securityOnly: config.diff?.securityOnly,
|
|
372
|
+
fail: config.diff?.fail,
|
|
373
|
+
processed: config.diff?.processed,
|
|
374
|
+
quiet: config.diff?.quiet,
|
|
375
|
+
changeSet: config.diff?.changeSet,
|
|
376
|
+
};
|
|
377
|
+
const metadataOptions = {};
|
|
378
|
+
const acknowledgeOptions = {};
|
|
379
|
+
const noticesOptions = {
|
|
380
|
+
unacknowledged: config.notices?.unacknowledged,
|
|
381
|
+
};
|
|
382
|
+
const initOptions = {
|
|
383
|
+
language: config.init?.language,
|
|
384
|
+
list: config.init?.list,
|
|
385
|
+
generateOnly: config.init?.generateOnly,
|
|
386
|
+
};
|
|
387
|
+
const migrateOptions = {
|
|
388
|
+
stackName: config.migrate?.stackName,
|
|
389
|
+
language: config.migrate?.language,
|
|
390
|
+
account: config.migrate?.account,
|
|
391
|
+
region: config.migrate?.region,
|
|
392
|
+
fromPath: config.migrate?.fromPath,
|
|
393
|
+
fromStack: config.migrate?.fromStack,
|
|
394
|
+
outputPath: config.migrate?.outputPath,
|
|
395
|
+
fromScan: config.migrate?.fromScan,
|
|
396
|
+
filter: config.migrate?.filter,
|
|
397
|
+
compress: config.migrate?.compress,
|
|
398
|
+
};
|
|
399
|
+
const contextOptions = {
|
|
400
|
+
reset: config.context?.reset,
|
|
401
|
+
force: config.context?.force,
|
|
402
|
+
clear: config.context?.clear,
|
|
403
|
+
};
|
|
404
|
+
const docsOptions = {
|
|
405
|
+
browser: config.docs?.browser,
|
|
406
|
+
};
|
|
407
|
+
const doctorOptions = {};
|
|
408
|
+
const userInput = {
|
|
409
|
+
globalOptions,
|
|
410
|
+
list: listOptions,
|
|
411
|
+
synth: synthOptions,
|
|
412
|
+
bootstrap: bootstrapOptions,
|
|
413
|
+
gc: gcOptions,
|
|
414
|
+
deploy: deployOptions,
|
|
415
|
+
rollback: rollbackOptions,
|
|
416
|
+
import: importOptions,
|
|
417
|
+
watch: watchOptions,
|
|
418
|
+
destroy: destroyOptions,
|
|
419
|
+
diff: diffOptions,
|
|
420
|
+
metadata: metadataOptions,
|
|
421
|
+
acknowledge: acknowledgeOptions,
|
|
422
|
+
notices: noticesOptions,
|
|
423
|
+
init: initOptions,
|
|
424
|
+
migrate: migrateOptions,
|
|
425
|
+
context: contextOptions,
|
|
426
|
+
docs: docsOptions,
|
|
427
|
+
doctor: doctorOptions,
|
|
428
|
+
};
|
|
429
|
+
return userInput;
|
|
430
|
+
}
|
|
431
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC10by11c2VyLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29udmVydC10by11c2VyLWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0EsMERBMFBDO0FBR0QsNERBK0xDO0FBN2JELG9CQUFvQjtBQUNwQixTQUFnQix1QkFBdUIsQ0FBQyxJQUFTO0lBQy9DLE1BQU0sYUFBYSxHQUFrQjtRQUNuQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7UUFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1FBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtRQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1FBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztRQUNyQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7UUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1FBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztRQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1FBQ2pCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtRQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtRQUN2QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7UUFDL0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztRQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1FBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztR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RUFBRSxRQUFRO1FBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU07UUFDOUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsUUFBUTtLQUNuQyxDQUFDO0lBQ0YsTUFBTSxjQUFjLEdBQUc7UUFDckIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSztRQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLO1FBQzVCLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUs7S0FDN0IsQ0FBQztJQUNGLE1BQU0sV0FBVyxHQUFHO1FBQ2xCLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU87S0FDOUIsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN6QixNQUFNLFNBQVMsR0FBYztRQUMzQixhQUFhO1FBQ2IsSUFBSSxFQUFFLFdBQVc7UUFDakIsS0FBSyxFQUFFLFlBQVk7UUFDbkIsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixFQUFFLEVBQUUsU0FBUztRQUNiLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLFFBQVEsRUFBRSxlQUFlO1FBQ3pCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLEtBQUssRUFBRSxZQUFZO1FBQ25CLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLElBQUksRUFBRSxXQUFXO1FBQ2pCLFFBQVEsRUFBRSxlQUFlO1FBQ3pCLFdBQVcsRUFBRSxrQkFBa0I7UUFDL0IsT0FBTyxFQUFFLGNBQWM7UUFDdkIsSUFBSSxFQUFFLFdBQVc7UUFDakIsT0FBTyxFQUFFLGNBQWM7UUFDdkIsT0FBTyxFQUFFLGNBQWM7UUFDdkIsSUFBSSxFQUFFLFdBQVc7UUFDakIsTUFBTSxFQUFFLGFBQWE7S0FDdEIsQ0FBQztJQUVGLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHRU5FUkFURUQgRlJPTSBwYWNrYWdlcy9hd3MtY2RrL2xpYi9jb25maWcudHMuXG4vLyBEbyBub3QgZWRpdCBieSBoYW5kOyBhbGwgY2hhbmdlcyB3aWxsIGJlIG92ZXJ3cml0dGVuIGF0IGJ1aWxkIHRpbWUgZnJvbSB0aGUgY29uZmlnIGZpbGUuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBlc2xpbnQtZGlzYWJsZSBAc3R5bGlzdGljL21heC1sZW4gKi9cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICcuL3NldHRpbmdzJztcbmltcG9ydCB7IFVzZXJJbnB1dCwgR2xvYmFsT3B0aW9ucyB9IGZyb20gJy4vdXNlci1pbnB1dCc7XG5cbi8vIEB0cy1pZ25vcmUgVFM2MTMzXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFlhcmdzVG9Vc2VySW5wdXQoYXJnczogYW55KTogVXNlcklucHV0IHtcbiAgY29uc3QgZ2xvYmFsT3B0aW9uczogR2xvYmFsT3B0aW9ucyA9IHtcbiAgICBhcHA6IGFyZ3MuYXBwLFxuICAgIGJ1aWxkOiBhcmdzLmJ1aWxkLFxuICAgIGNvbnRleHQ6IGFyZ3MuY29udGV4dCxcbiAgICBwbHVnaW46IGFyZ3MucGx1Z2luLFxuICAgIHRyYWNlOiBhcmdzLnRyYWNlLFxuICAgIHN0cmljdDogYXJncy5zdHJpY3QsXG4gICAgbG9va3VwczogYXJncy5sb29rdXBzLFxuICAgIGlnbm9yZUVycm9yczogYXJncy5pZ25vcmVFcnJvcnMsXG4gICAganNvbjogYXJncy5qc29uLFxuICAgIHZlcmJvc2U6IGFyZ3MudmVyYm9zZSxcbiAgICBkZWJ1ZzogYXJncy5kZWJ1ZyxcbiAgICBwcm9maWxlOiBhcmdzLnByb2ZpbGUsXG4gICAgcHJveHk6IGFyZ3MucHJveHksXG4gICAgY2FCdW5kbGVQYXRoOiBhcmdzLmNhQnVuZGxlUGF0aCxcbiAgICBlYzJjcmVkczogYXJncy5lYzJjcmVkcyxcbiAgICB2ZXJzaW9uUmVwb3J0aW5nOiBhcmdzLnZlcnNpb25SZXBvcnRpbmcsXG4gICAgcGF0aE1ldGFkYXRhOiBhcmdzLnBhdGhNZXRhZGF0YSxcbiAgICBhc3NldE1ldGFkYXRhOiBhcmdzLmFzc2V0TWV0YWRhdGEsXG4gICAgcm9sZUFybjogYXJncy5yb2xlQXJuLFxuICAgIHN0YWdpbmc6IGFyZ3Muc3RhZ2luZyxcbiAgICBvdXRwdXQ6IGFyZ3Mub3V0cHV0LFxuICAgIG5vdGljZXM6IGFyZ3Mubm90aWNlcyxcbiAgICBub0NvbG9yOiBhcmdzLm5vQ29sb3IsXG4gICAgY2k6IGFyZ3MuY2ksXG4gICAgdW5zdGFibGU6IGFyZ3MudW5zdGFibGUsXG4gIH07XG4gIGxldCBjb21tYW5kT3B0aW9ucztcbiAgc3dpdGNoIChhcmdzLl9bMF0gYXMgQ29tbWFuZCkge1xuICAgIGNhc2UgJ2xpc3QnOlxuICAgIGNhc2UgJ2xzJzpcbiAgICAgIGNvbW1hbmRPcHRpb25zID0ge1xuICAgICAgICBsb25nOiBhcmdzLmxvbmcsXG4gICAgICAgIHNob3dEZXBlbmRlbmNpZXM6IGFyZ3Muc2hvd0RlcGVuZGVuY2llcyxcbiAgICAgICAgU1RBQ0tTOiBhcmdzLlNUQUNLUyxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3N5bnRoJzpcbiAgICBjYXNlICdzeW50aGVzaXplJzpcbiAgICAgIGNvbW1hbmRPcHRpb25zID0ge1xuICAgICAgICBleGNsdXNpdmVseTogYXJncy5leGNsdXNpdmVseSxcbiAgICAgICAgdmFsaWRhdGlvbjogYXJncy52YWxpZGF0aW9uLFxuICAgICAgICBxdWlldDogYXJncy5xdWlldCxcbiAgICAgICAgU1RBQ0tTOiBhcmdzLlNUQUNLUyxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2Jvb3RzdHJhcCc6XG4gICAgICBjb21tYW5kT3B0aW9ucyA9IHtcbiAgICAgICAgYm9vdHN0cmFwQnVja2V0TmFtZTogYXJncy5ib290c3RyYXBCdWNrZXROYW1lLFxuICAgICAgICBib290c3RyYXBLbXNLZXlJZDogYXJncy5ib290c3RyYXBLbXNLZXlJZCxcbiAgICAgICAgZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnk6IGFyZ3MuZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnksXG4gICAgICAgIGN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk6IGFyZ3MuY3VzdG9tUGVybWlzc2lvbnNCb3VuZGFyeSxcbiAgICAgICAgYm9vdHN0cmFwQ3VzdG9tZXJLZXk6IGFyZ3MuYm9vdHN0cmFwQ3VzdG9tZXJLZXksXG4gICAgICAgIHF1YWxpZmllcjogYXJncy5xdWFsaWZpZXIsXG4gICAgICAgIHB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjogYXJncy5wdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24sXG4gICAgICAgIHRhZ3M6IGFyZ3MudGFncyxcbiAgICAgICAgZXhlY3V0ZTogYXJncy5leGVjdXRlLFxuICAgICAgICB0cnVzdDogYXJncy50cnVzdCxcbiAgICAgICAgdHJ1c3RGb3JMb29rdXA6IGFyZ3MudHJ1c3RGb3JMb29rdXAsXG4gICAgICAgIGNsb3VkZm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXM6IGFyZ3MuY2xvdWRmb3JtYXRpb25FeGVjdXRpb25Qb2xpY2llcyxcbiAgICAgICAgZm9yY2U6IGFyZ3MuZm9yY2UsXG4gICAgICAgIHRlcm1pbmF0aW9uUHJvdGVjdGlvbjogYXJncy50ZXJtaW5hdGlvblByb3RlY3Rpb24sXG4gICAgICAgIHNob3dUZW1wbGF0ZTogYXJncy5zaG93VGVtcGxhdGUsXG4gICAgICAgIHRvb2xraXRTdGFja05hbWU6IGFyZ3MudG9vbGtpdFN0YWNrTmFtZSxcbiAgICAgICAgdGVtcGxhdGU6IGFyZ3MudGVtcGxhdGUsXG4gICAgICAgIHByZXZpb3VzUGFyYW1ldGVyczogYXJncy5wcmV2aW91c1BhcmFtZXRlcnMsXG4gICAgICAgIEVOVklST05NRU5UUzogYXJncy5FTlZJUk9OTUVOVFMsXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdnYyc6XG4gICAgICBjb21tYW5kT3B0aW9ucyA9IHtcbiAgICAgICAgYWN0aW9uOiBhcmdzLmFjdGlvbixcbiAgICAgICAgdHlwZTogYXJncy50eXBlLFxuICAgICAgICByb2xsYmFja0J1ZmZlckRheXM6IGFyZ3Mucm9sbGJhY2tCdWZmZXJEYXlzLFxuICAgICAgICBjcmVhdGVkQnVmZmVyRGF5czogYXJncy5jcmVhdGVkQnVmZmVyRGF5cyxcbiAgICAgICAgY29uZmlybTogYXJncy5jb25maXJtLFxuICAgICAgICBib290c3RyYXBTdGFja05hbWU6IGFyZ3MuYm9vdHN0cmFwU3RhY2tOYW1lLFxuICAgICAgICBFTlZJUk9OTUVOVFM6IGFyZ3MuRU5WSVJPTk1FTlRTLFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZGVwbG95JzpcbiAgICAgIGNvbW1hbmRPcHRpb25zID0ge1xuICAgICAgICBhbGw6IGFyZ3MuYWxsLFxuICAgICAgICBidWlsZEV4Y2x1ZGU6IGFyZ3MuYnVpbGRFeGNsdWRlLFxuICAgICAgICBleGNsdXNpdmVseTogYXJncy5leGNsdXNpdmVseSxcbiAgICAgICAgcmVxdWlyZUFwcHJvdmFsOiBhcmdzLnJlcXVpcmVBcHByb3ZhbCxcbiAgICAgICAgbm90aWZpY2F0aW9uQXJuczogYXJncy5ub3RpZmljYXRpb25Bcm5zLFxuICAgICAgICB0YWdzOiBhcmdzLnRhZ3MsXG4gICAgICAgIGV4ZWN1dGU6IGFyZ3MuZXhlY3V0ZSxcbiAgICAgICAgY2hhbmdlU2V0TmFtZTogYXJncy5jaGFuZ2VTZXROYW1lLFxuICAgICAgICBtZXRob2Q6IGFyZ3MubWV0aG9kLFxuICAgICAgICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlczogYXJncy5pbXBvcnRFeGlzdGluZ1Jlc291cmNlcyxcbiAgICAgICAgZm9yY2U6IGFyZ3MuZm9yY2UsXG4gICAgICAgIHBhcmFtZXRlcnM6IGFyZ3MucGFyYW1ldGVycyxcbiAgICAgICAgb3V0cHV0c0ZpbGU6IGFyZ3Mub3V0cHV0c0ZpbGUsXG4gICAgICAgIHByZXZpb3VzUGFyYW1ldGVyczogYXJncy5wcmV2aW91c1BhcmFtZXRlcnMsXG4gICAgICAgIHRvb2xraXRTdGFja05hbWU6IGFyZ3MudG9vbGtpdFN0YWNrTmFtZSxcbiAgICAgICAgcHJvZ3Jlc3M6IGFyZ3MucHJvZ3Jlc3MsXG4gICAgICAgIHJvbGxiYWNrOiBhcmdzLnJvbGxiYWNrLFxuICAgICAgICBob3Rzd2FwOiBhcmdzLmhvdHN3YXAsXG4gICAgICAgIGhvdHN3YXBGYWxsYmFjazogYXJncy5ob3Rzd2FwRmFsbGJhY2ssXG4gICAgICAgIHdhdGNoOiBhcmdzLndhdGNoLFxuICAgICAgICBsb2dzOiBhcmdzLmxvZ3MsXG4gICAgICAgIGNvbmN1cnJlbmN5OiBhcmdzLmNvbmN1cnJlbmN5LFxuICAgICAgICBhc3NldFBhcmFsbGVsaXNtOiBhcmdzLmFzc2V0UGFyYWxsZWxpc20sXG4gICAgICAgIGFzc2V0UHJlYnVpbGQ6IGFyZ3MuYXNzZXRQcmVidWlsZCxcbiAgICAgICAgaWdub3JlTm9TdGFja3M6IGFyZ3MuaWdub3JlTm9TdGFja3MsXG4gICAgICAgIFNUQUNLUzogYXJncy5TVEFDS1MsXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdyb2xsYmFjayc6XG4gICAgICBjb21tYW5kT3B0aW9ucyA9IHtcbiAgICAgICAgYWxsOiBhcmdzLmFsbCxcbiAgICAgICAgdG9vbGtpdFN0YWNrTmFtZTogYXJncy50b29sa2l0U3RhY2tOYW1lLFxuICAgICAgICBmb3JjZTogYXJncy5mb3JjZSxcbiAgICAgICAgdmFsaWRhdGVCb290c3RyYXBWZXJzaW9uOiBhcmdzLnZhbGlkYXRlQm9vdHN0cmFwVmVyc2lvbixcbiAgICAgICAgb3JwaGFuOiBhcmdzLm9ycGhhbixcbiAgICAgICAgU1RBQ0tTOiBhcmdzLlNUQUNLUyxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2ltcG9ydCc6XG4gICAgICBjb21tYW5kT3B0aW9ucyA9IHtcbiAgICAgICAgZXhlY3V0ZTogYXJncy5leGVjdXRlLFxuICAgICAgICBjaGFuZ2VTZXROYW1lOiBhcmdzLmNoYW5nZVNldE5hbWUsXG4gICAgICAgIHRvb2xraXRTdGFja05hbWU6IGFyZ3MudG9vbGtpdFN0YWNrTmFtZSxcbiAgICAgICAgcm9sbGJhY2s6IGFyZ3Mucm9sbGJhY2ssXG4gICAgICAgIGZvcmNlOiBhcmdzLmZvcmNlLFxuICAgICAgICByZWNvcmRSZXNvdXJjZU1hcHBpbmc6IGFyZ3MucmVjb3JkUmVzb3VyY2VNYXBwaW5nLFxuICAgICAgICByZXNvdXJjZU1hcHBpbmc6IGFyZ3MucmVzb3VyY2VNYXBwaW5nLFxuICAgICAgICBTVEFDSzogYXJncy5TVEFDSyxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3dhdGNoJzpcbiAgICAgIGNvbW1hbmRPcHRpb25zID0ge1xuICAgICAgICBidWlsZEV4Y2x1ZGU6IGFyZ3MuYnVpbGRFeGNsdWRlLFxuICAgICAgICBleGNsdXNpdmVseTogYXJncy5leGNsdXNpdmVseSxcbiAgICAgICAgY2hhbmdlU2V0TmFtZTogYXJncy5jaGFuZ2VTZXROYW1lLFxuICAgICAgICBmb3JjZTogYXJncy5mb3JjZSxcbiAgICAgICAgdG9vbGtpdFN0YWNrTmFtZTogYXJncy50b29sa2l0U3RhY2tOYW1lLFxuICAgICAgICBwcm9ncmVzczogYXJncy5wcm9ncmVzcyxcbiAgICAgICAgcm9sbGJhY2s6IGFyZ3Mucm9sbGJhY2ssXG4gICAgICAgIGhvdHN3YXA6IGFyZ3MuaG90c3dhcCxcbiAgICAgICAgaG90c3dhcEZhbGxiYWNrOiBhcmdzLmhvdHN3YXBGYWxsYmFjayxcbiAgICAgICAgbG9nczogYXJncy5sb2dzLFxuICAgICAgICBjb25jdXJyZW5jeTogYXJncy5jb25jdXJyZW5jeSxcbiAgICAgICAgU1RBQ0tTOiBhcmdzLlNUQUNLUyxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2Rlc3Ryb3knOlxuICAgICAgY29tbWFuZE9wdGlvbnMgPSB7XG4gICAgICAgIGFsbDogYXJncy5hbGwsXG4gICAgICAgIGV4Y2x1c2l2ZWx5OiBhcmdzLmV4Y2x1c2l2ZWx5LFxuICAgICAgICBmb3JjZTogYXJncy5mb3JjZSxcbiAgICAgICAgU1RBQ0tTOiBhcmdzLlNUQUNLUyxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2RpZmYnOlxuICAgICAgY29tbWFuZE9wdGlvbnMgPSB7XG4gICAgICAgIGV4Y2x1c2l2ZWx5OiBhcmdzLmV4Y2x1c2l2ZWx5LFxuICAgICAgICBjb250ZXh0TGluZXM6IGFyZ3MuY29udGV4dExpbmVzLFxuICAgICAgICB0ZW1wbGF0ZTogYXJncy50ZW1wbGF0ZSxcbiAgICAgICAgc3RyaWN0OiBhcmdzLnN0cmljdCxcbiAgICAgICAgc2VjdXJpdHlPbmx5OiBhcmdzLnNlY3VyaXR5T25seSxcbiAgICAgICAgZmFpbDogYXJncy5mYWlsLFxuICAgICAgICBwcm9jZXNzZWQ6IGFyZ3MucHJvY2Vzc2VkLFxuICAgICAgICBxdWlldDogYXJncy5xdWlldCxcbiAgICAgICAgY2hhbmdlU2V0OiBhcmdzLmNoYW5nZVNldCxcbiAgICAgICAgU1RBQ0tTOiBhcmdzLlNUQUNLUyxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ21ldGFkYXRhJzpcbiAgICAgIGNvbW1hbmRPcHRpb25zID0ge1xuICAgICAgICBTVEFDSzogYXJncy5TVEFDSyxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2Fja25vd2xlZGdlJzpcbiAgICBjYXNlICdhY2snOlxuICAgICAgY29tbWFuZE9wdGlvbnMgPSB7XG4gICAgICAgIElEOiBhcmdzLklELFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnbm90aWNlcyc6XG4gICAgICBjb21tYW5kT3B0aW9ucyA9IHtcbiAgICAgICAgdW5hY2tub3dsZWRnZWQ6IGFyZ3MudW5hY2tub3dsZWRnZWQsXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpbml0JzpcbiAgICAgIGNvbW1hbmRPcHRpb25zID0ge1xuICAgICAgICBsYW5ndWFnZTogYXJncy5sYW5ndWFnZSxcbiAgICAgICAgbGlzdDogYXJncy5saXN0LFxuICAgICAgICBnZW5lcmF0ZU9ubHk6IGFyZ3MuZ2VuZXJhdGVPbmx5LFxuICAgICAgICBURU1QTEFURTogYXJncy5URU1QTEFURSxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ21pZ3JhdGUnOlxuICAgICAgY29tbWFuZE9wdGlvbnMgPSB7XG4gICAgICAgIHN0YWNrTmFtZTogYXJncy5zdGFja05hbWUsXG4gICAgICAgIGxhbmd1YWdlOiBhcmdzLmxhbmd1YWdlLFxuICAgICAgICBhY2NvdW50OiBhcmdzLmFjY291bnQsXG4gICAgICAgIHJlZ2lvbjogYXJncy5yZWdpb24sXG4gICAgICAgIGZyb21QYXRoOiBhcmdzLmZyb21QYXRoLFxuICAgICAgICBmcm9tU3RhY2s6IGFyZ3MuZnJvbVN0YWNrLFxuICAgICAgICBvdXRwdXRQYXRoOiBhcmdzLm91dHB1dFBhdGgsXG4gICAgICAgIGZyb21TY2FuOiBhcmdzLmZyb21TY2FuLFxuICAgICAgICBmaWx0ZXI6IGFyZ3MuZmlsdGVyLFxuICAgICAgICBjb21wcmVzczogYXJncy5jb21wcmVzcyxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2NvbnRleHQnOlxuICAgICAgY29tbWFuZE9wdGlvbnMgPSB7XG4gICAgICAgIHJlc2V0OiBhcmdzLnJlc2V0LFxuICAgICAgICBmb3JjZTogYXJncy5mb3JjZSxcbiAgICAgICAgY2xlYXI6IGFyZ3MuY2xlYXIsXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdkb2NzJzpcbiAgICBjYXNlICdkb2MnOlxuICAgICAgY29tbWFuZE9wdGlvbnMgPSB7XG4gICAgICAgIGJyb3dzZXI6IGFyZ3MuYnJvd3NlcixcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2RvY3Rvcic6XG4gICAgICBjb21tYW5kT3B0aW9ucyA9IHt9O1xuICAgICAgYnJlYWs7XG4gIH1cbiAgY29uc3QgdXNlcklucHV0OiBVc2VySW5wdXQgPSB7XG4gICAgY29tbWFuZDogYXJncy5fWzBdLFxuICAgIGdsb2JhbE9wdGlvbnMsXG4gICAgW2FyZ3MuX1swXV06IGNvbW1hbmRPcHRpb25zLFxuICB9O1xuXG4gIHJldHVybiB1c2VySW5wdXQ7XG59XG5cbi8vIEB0cy1pZ25vcmUgVFM2MTMzXG5leHBvcnQgZnVuY3Rpb24gY29udmVydENvbmZpZ1RvVXNlcklucHV0KGNvbmZpZzogYW55KTogVXNlcklucHV0IHtcbiAgY29uc3QgZ2xvYmFsT3B0aW9uczogR2xvYmFsT3B0aW9ucyA9IHtcbiAgICBhcHA6IGNvbmZpZy5hcHAsXG4gICAgYnVpbGQ6IGNvbmZpZy5idWlsZCxcbiAgICBjb250ZXh0OiBjb25maWcuY29udGV4dCxcbiAgICBwbHVnaW46IGNvbmZpZy5wbHVnaW4sXG4gICAgdHJhY2U6IGNvbmZpZy50cmFjZSxcbiAgICBzdHJpY3Q6IGNvbmZpZy5zdHJpY3QsXG4gICAgbG9va3VwczogY29uZmlnLmxvb2t1cHMsXG4gICAgaWdub3JlRXJyb3JzOiBjb25maWcuaWdub3JlRXJyb3JzLFxuICAgIGpzb246IGNvbmZpZy5qc29uLFxuICAgIHZlcmJvc2U6IGNvbmZpZy52ZXJib3NlLFxuICAgIGRlYnVnOiBjb25maWcuZGVidWcsXG4gICAgcHJvZmlsZTogY29uZmlnLnByb2ZpbGUsXG4gICAgcHJveHk6IGNvbmZpZy5wcm94eSxcbiAgICBjYUJ1bmRsZVBhdGg6IGNvbmZpZy5jYUJ1bmRsZVBhdGgsXG4gICAgZWMyY3JlZHM6IGNvbmZpZy5lYzJjcmVkcyxcbiAgICB2ZXJzaW9uUmVwb3J0aW5nOiBjb25maWcudmVyc2lvblJlcG9ydGluZyxcbiAgICBwYXRoTWV0YWRhdGE6IGNvbmZpZy5wYXRoTWV0YWRhdGEsXG4gICAgYXNzZXRNZXRhZGF0YTogY29uZmlnLmFzc2V0TWV0YWRhdGEsXG4gICAgcm9sZUFybjogY29uZmlnLnJvbGVBcm4sXG4gICAgc3RhZ2luZzogY29uZmlnLnN0YWdpbmcsXG4gICAgb3V0cHV0OiBjb25maWcub3V0cHV0LFxuICAgIG5vdGljZXM6IGNvbmZpZy5ub3RpY2VzLFxuICAgIG5vQ29sb3I6IGNvbmZpZy5ub0NvbG9yLFxuICAgIGNpOiBjb25maWcuY2ksXG4gICAgdW5zdGFibGU6IGNvbmZpZy51bnN0YWJsZSxcbiAgfTtcbiAgY29uc3QgbGlzdE9wdGlvbnMgPSB7XG4gICAgbG9uZzogY29uZmlnLmxpc3Q/LmxvbmcsXG4gICAgc2hvd0RlcGVuZGVuY2llczogY29uZmlnLmxpc3Q/LnNob3dEZXBlbmRlbmNpZXMsXG4gIH07XG4gIGNvbnN0IHN5bnRoT3B0aW9ucyA9IHtcbiAgICBleGNsdXNpdmVseTogY29uZmlnLnN5bnRoPy5leGNsdXNpdmVseSxcbiAgICB2YWxpZGF0aW9uOiBjb25maWcuc3ludGg/LnZhbGlkYXRpb24sXG4gICAgcXVpZXQ6IGNvbmZpZy5zeW50aD8ucXVpZXQsXG4gIH07XG4gIGNvbnN0IGJvb3RzdHJhcE9wdGlvbnMgPSB7XG4gICAgYm9vdHN0cmFwQnVja2V0TmFtZTogY29uZmlnLmJvb3RzdHJhcD8uYm9vdHN0cmFwQnVja2V0TmFtZSxcbiAgICBib290c3RyYXBLbXNLZXlJZDogY29uZmlnLmJvb3RzdHJhcD8uYm9vdHN0cmFwS21zS2V5SWQsXG4gICAgZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnk6IGNvbmZpZy5ib290c3RyYXA/LmV4YW1wbGVQZXJtaXNzaW9uc0JvdW5kYXJ5LFxuICAgIGN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk6IGNvbmZpZy5ib290c3RyYXA/LmN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnksXG4gICAgYm9vdHN0cmFwQ3VzdG9tZXJLZXk6IGNvbmZpZy5ib290c3RyYXA/LmJvb3RzdHJhcEN1c3RvbWVyS2V5LFxuICAgIHF1YWxpZmllcjogY29uZmlnLmJvb3RzdHJhcD8ucXVhbGlmaWVyLFxuICAgIHB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjogY29uZmlnLmJvb3RzdHJhcD8ucHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uLFxuICAgIHRhZ3M6IGNvbmZpZy5ib290c3RyYXA/LnRhZ3MsXG4gICAgZXhlY3V0ZTogY29uZmlnLmJvb3RzdHJhcD8uZXhlY3V0ZSxcbiAgICB0cnVzdDogY29uZmlnLmJvb3RzdHJhcD8udHJ1c3QsXG4gICAgdHJ1c3RGb3JMb29rdXA6IGNvbmZpZy5ib290c3RyYXA/LnRydXN0Rm9yTG9va3VwLFxuICAgIGNsb3VkZm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXM6IGNvbmZpZy5ib290c3RyYXA/LmNsb3VkZm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXMsXG4gICAgZm9yY2U6IGNvbmZpZy5ib290c3RyYXA/LmZvcmNlLFxuICAgIHRlcm1pbmF0aW9uUHJvdGVjdGlvbjogY29uZmlnLmJvb3RzdHJhcD8udGVybWluYXRpb25Qcm90ZWN0aW9uLFxuICAgIHNob3dUZW1wbGF0ZTogY29uZmlnLmJvb3RzdHJhcD8uc2hvd1RlbXBsYXRlLFxuICAgIHRvb2xraXRTdGFja05hbWU6IGNvbmZpZy5ib290c3RyYXA/LnRvb2xraXRTdGFja05hbWUsXG4gICAgdGVtcGxhdGU6IGNvbmZpZy5ib290c3RyYXA/LnRlbXBsYXRlLFxuICAgIHByZXZpb3VzUGFyYW1ldGVyczogY29uZmlnLmJvb3RzdHJhcD8ucHJldmlvdXNQYXJhbWV0ZXJzLFxuICB9O1xuICBjb25zdCBnY09wdGlvbnMgPSB7XG4gICAgYWN0aW9uOiBjb25maWcuZ2M/LmFjdGlvbixcbiAgICB0eXBlOiBjb25maWcuZ2M/LnR5cGUsXG4gICAgcm9sbGJhY2tCdWZmZXJEYXlzOiBjb25maWcuZ2M/LnJvbGxiYWNrQnVmZmVyRGF5cyxcbiAgICBjcmVhdGVkQnVmZmVyRGF5czogY29uZmlnLmdjPy5jcmVhdGVkQnVmZmVyRGF5cyxcbiAgICBjb25maXJtOiBjb25maWcuZ2M/LmNvbmZpcm0sXG4gICAgYm9vdHN0cmFwU3RhY2tOYW1lOiBjb25maWcuZ2M/LmJvb3RzdHJhcFN0YWNrTmFtZSxcbiAgfTtcbiAgY29uc3QgZGVwbG95T3B0aW9ucyA9IHtcbiAgICBhbGw6IGNvbmZpZy5kZXBsb3k/LmFsbCxcbiAgICBidWlsZEV4Y2x1ZGU6IGNvbmZpZy5kZXBsb3k/LmJ1aWxkRXhjbHVkZSxcbiAgICBleGNsdXNpdmVseTogY29uZmlnLmRlcGxveT8uZXhjbHVzaXZlbHksXG4gICAgcmVxdWlyZUFwcHJvdmFsOiBjb25maWcuZGVwbG95Py5yZXF1aXJlQXBwcm92YWwsXG4gICAgbm90aWZpY2F0aW9uQXJuczogY29uZmlnLmRlcGxveT8ubm90aWZpY2F0aW9uQXJucyxcbiAgICB0YWdzOiBjb25maWcuZGVwbG95Py50YWdzLFxuICAgIGV4ZWN1dGU6IGNvbmZpZy5kZXBsb3k/LmV4ZWN1dGUsXG4gICAgY2hhbmdlU2V0TmFtZTogY29uZmlnLmRlcGxveT8uY2hhbmdlU2V0TmFtZSxcbiAgICBtZXRob2Q6IGNvbmZpZy5kZXBsb3k/Lm1ldGhvZCxcbiAgICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlczogY29uZmlnLmRlcGxveT8uaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXMsXG4gICAgZm9yY2U6IGNvbmZpZy5kZXBsb3k/LmZvcmNlLFxuICAgIHBhcmFtZXRlcnM6IGNvbmZpZy5kZXBsb3k/LnBhcmFtZXRlcnMsXG4gICAgb3V0cHV0c0ZpbGU6IGNvbmZpZy5kZXBsb3k/Lm91dHB1dHNGaWxlLFxuICAgIHByZXZpb3VzUGFyYW1ldGVyczogY29uZmlnLmRlcGxveT8ucHJldmlvdXNQYXJhbWV0ZXJzLFxuICAgIHRvb2xraXRTdGFja05hbWU6IGNvbmZpZy5kZXBsb3k/LnRvb2xraXRTdGFja05hbWUsXG4gICAgcHJvZ3Jlc3M6IGNvbmZpZy5kZXBsb3k/LnByb2dyZXNzLFxuICAgIHJvbGxiYWNrOiBjb25maWcuZGVwbG95Py5yb2xsYmFjayxcbiAgICBob3Rzd2FwOiBjb25maWcuZGVwbG95Py5ob3Rzd2FwLFxuICAgIGhvdHN3YXBGYWxsYmFjazogY29uZmlnLmRlcGxveT8uaG90c3dhcEZhbGxiYWNrLFxuICAgIHdhdGNoOiBjb25maWcuZGVwbG95Py53YXRjaCxcbiAgICBsb2dzOiBjb25maWcuZGVwbG95Py5sb2dzLFxuICAgIGNvbmN1cnJlbmN5OiBjb25maWcuZGVwbG95Py5jb25jdXJyZW5jeSxcbiAgICBhc3NldFBhcmFsbGVsaXNtOiBjb25maWcuZGVwbG95Py5hc3NldFBhcmFsbGVsaXNtLFxuICAgIGFzc2V0UHJlYnVpbGQ6IGNvbmZpZy5kZXBsb3k/LmFzc2V0UHJlYnVpbGQsXG4gICAgaWdub3JlTm9TdGFja3M6IGNvbmZpZy5kZXBsb3k/Lmlnbm9yZU5vU3RhY2tzLFxuICB9O1xuICBjb25zdCByb2xsYmFja09wdGlvbnMgPSB7XG4gICAgYWxsOiBjb25maWcucm9sbGJhY2s/LmFsbCxcbiAgICB0b29sa2l0U3RhY2tOYW1lOiBjb25maWcucm9sbGJhY2s/LnRvb2xraXRTdGFja05hbWUsXG4gICAgZm9yY2U6IGNvbmZpZy5yb2xsYmFjaz8uZm9yY2UsXG4gICAgdmFsaWRhdGVCb290c3RyYXBWZXJzaW9uOiBjb25maWcucm9sbGJhY2s/LnZhbGlkYXRlQm9vdHN0cmFwVmVyc2lvbixcbiAgICBvcnBoYW46IGNvbmZpZy5yb2xsYmFjaz8ub3JwaGFuLFxuICB9O1xuICBjb25zdCBpbXBvcnRPcHRpb25zID0ge1xuICAgIGV4ZWN1dGU6IGNvbmZpZy5pbXBvcnQ/LmV4ZWN1dGUsXG4gICAgY2hhbmdlU2V0TmFtZTogY29uZmlnLmltcG9ydD8uY2hhbmdlU2V0TmFtZSxcbiAgICB0b29sa2l0U3RhY2tOYW1lOiBjb25maWcuaW1wb3J0Py50b29sa2l0U3RhY2tOYW1lLFxuICAgIHJvbGxiYWNrOiBjb25maWcuaW1wb3J0Py5yb2xsYmFjayxcbiAgICBmb3JjZTogY29uZmlnLmltcG9ydD8uZm9yY2UsXG4gICAgcmVjb3JkUmVzb3VyY2VNYXBwaW5nOiBjb25maWcuaW1wb3J0Py5yZWNvcmRSZXNvdXJjZU1hcHBpbmcsXG4gICAgcmVzb3VyY2VNYXBwaW5nOiBjb25maWcuaW1wb3J0Py5yZXNvdXJjZU1hcHBpbmcsXG4gIH07XG4gIGNvbnN0IHdhdGNoT3B0aW9ucyA9IHtcbiAgICBidWlsZEV4Y2x1ZGU6IGNvbmZpZy53YXRjaD8uYnVpbGRFeGNsdWRlLFxuICAgIGV4Y2x1c2l2ZWx5OiBjb25maWcud2F0Y2g/LmV4Y2x1c2l2ZWx5LFxuICAgIGNoYW5nZVNldE5hbWU6IGNvbmZpZy53YXRjaD8uY2hhbmdlU2V0TmFtZSxcbiAgICBmb3JjZTogY29uZmlnLndhdGNoPy5mb3JjZSxcbiAgICB0b29sa2l0U3RhY2tOYW1lOiBjb25maWcud2F0Y2g/LnRvb2xraXRTdGFja05hbWUsXG4gICAgcHJvZ3Jlc3M6IGNvbmZpZy53YXRjaD8ucHJvZ3Jlc3MsXG4gICAgcm9sbGJhY2s6IGNvbmZpZy53YXRjaD8ucm9sbGJhY2ssXG4gICAgaG90c3dhcDogY29uZmlnLndhdGNoPy5ob3Rzd2FwLFxuICAgIGhvdHN3YXBGYWxsYmFjazogY29uZmlnLndhdGNoPy5ob3Rzd2FwRmFsbGJhY2ssXG4gICAgbG9nczogY29uZmlnLndhdGNoPy5sb2dzLFxuICAgIGNvbmN1cnJlbmN5OiBjb25maWcud2F0Y2g/LmNvbmN1cnJlbmN5LFxuICB9O1xuICBjb25zdCBkZXN0cm95T3B0aW9ucyA9IHtcbiAgICBhbGw6IGNvbmZpZy5kZXN0cm95Py5hbGwsXG4gICAgZXhjbHVzaXZlbHk6IGNvbmZpZy5kZXN0cm95Py5leGNsdXNpdmVseSxcbiAgICBmb3JjZTogY29uZmlnLmRlc3Ryb3k/LmZvcmNlLFxuICB9O1xuICBjb25zdCBkaWZmT3B0aW9ucyA9IHtcbiAgICBleGNsdXNpdmVseTogY29uZmlnLmRpZmY/LmV4Y2x1c2l2ZWx5LFxuICAgIGNvbnRleHRMaW5lczogY29uZmlnLmRpZmY/LmNvbnRleHRMaW5lcyxcbiAgICB0ZW1wbGF0ZTogY29uZmlnLmRpZmY/LnRlbXBsYXRlLFxuICAgIHN0cmljdDogY29uZmlnLmRpZmY/LnN0cmljdCxcbiAgICBzZWN1cml0eU9ubHk6IGNvbmZpZy5kaWZmPy5zZWN1cml0eU9ubHksXG4gICAgZmFpbDogY29uZmlnLmRpZmY/LmZhaWwsXG4gICAgcHJvY2Vzc2VkOiBjb25maWcuZGlmZj8ucHJvY2Vzc2VkLFxuICAgIHF1aWV0OiBjb25maWcuZGlmZj8ucXVpZXQsXG4gICAgY2hhbmdlU2V0OiBjb25maWcuZGlmZj8uY2hhbmdlU2V0LFxuICB9O1xuICBjb25zdCBtZXRhZGF0YU9wdGlvbnMgPSB7fTtcbiAgY29uc3QgYWNrbm93bGVkZ2VPcHRpb25zID0ge307XG4gIGNvbnN0IG5vdGljZXNPcHRpb25zID0ge1xuICAgIHVuYWNrbm93bGVkZ2VkOiBjb25maWcubm90aWNlcz8udW5hY2tub3dsZWRnZWQsXG4gIH07XG4gIGNvbnN0IGluaXRPcHRpb25zID0ge1xuICAgIGxhbmd1YWdlOiBjb25maWcuaW5pdD8ubGFuZ3VhZ2UsXG4gICAgbGlzdDogY29uZmlnLmluaXQ/Lmxpc3QsXG4gICAgZ2VuZXJhdGVPbmx5OiBjb25maWcuaW5pdD8uZ2VuZXJhdGVPbmx5LFxuICB9O1xuICBjb25zdCBtaWdyYXRlT3B0aW9ucyA9IHtcbiAgICBzdGFja05hbWU6IGNvbmZpZy5taWdyYXRlPy5zdGFja05hbWUsXG4gICAgbGFuZ3VhZ2U6IGNvbmZpZy5taWdyYXRlPy5sYW5ndWFnZSxcbiAgICBhY2NvdW50OiBjb25maWcubWlncmF0ZT8uYWNjb3VudCxcbiAgICByZWdpb246IGNvbmZpZy5taWdyYXRlPy5yZWdpb24sXG4gICAgZnJvbVBhdGg6IGNvbmZpZy5taWdyYXRlPy5mcm9tUGF0aCxcbiAgICBmcm9tU3RhY2s6IGNvbmZpZy5taWdyYXRlPy5mcm9tU3RhY2ssXG4gICAgb3V0cHV0UGF0aDogY29uZmlnLm1pZ3JhdGU/Lm91dHB1dFBhdGgsXG4gICAgZnJvbVNjYW46IGNvbmZpZy5taWdyYXRlPy5mcm9tU2NhbixcbiAgICBmaWx0ZXI6IGNvbmZpZy5taWdyYXRlPy5maWx0ZXIsXG4gICAgY29tcHJlc3M6IGNvbmZpZy5taWdyYXRlPy5jb21wcmVzcyxcbiAgfTtcbiAgY29uc3QgY29udGV4dE9wdGlvbnMgPSB7XG4gICAgcmVzZXQ6IGNvbmZpZy5jb250ZXh0Py5yZXNldCxcbiAgICBmb3JjZTogY29uZmlnLmNvbnRleHQ/LmZvcmNlLFxuICAgIGNsZWFyOiBjb25maWcuY29udGV4dD8uY2xlYXIsXG4gIH07XG4gIGNvbnN0IGRvY3NPcHRpb25zID0ge1xuICAgIGJyb3dzZXI6IGNvbmZpZy5kb2NzPy5icm93c2VyLFxuICB9O1xuICBjb25zdCBkb2N0b3JPcHRpb25zID0ge307XG4gIGNvbnN0IHVzZXJJbnB1dDogVXNlcklucHV0ID0ge1xuICAgIGdsb2JhbE9wdGlvbnMsXG4gICAgbGlzdDogbGlzdE9wdGlvbnMsXG4gICAgc3ludGg6IHN5bnRoT3B0aW9ucyxcbiAgICBib290c3RyYXA6IGJvb3RzdHJhcE9wdGlvbnMsXG4gICAgZ2M6IGdjT3B0aW9ucyxcbiAgICBkZXBsb3k6IGRlcGxveU9wdGlvbnMsXG4gICAgcm9sbGJhY2s6IHJvbGxiYWNrT3B0aW9ucyxcbiAgICBpbXBvcnQ6IGltcG9ydE9wdGlvbnMsXG4gICAgd2F0Y2g6IHdhdGNoT3B0aW9ucyxcbiAgICBkZXN0cm95OiBkZXN0cm95T3B0aW9ucyxcbiAgICBkaWZmOiBkaWZmT3B0aW9ucyxcbiAgICBtZXRhZGF0YTogbWV0YWRhdGFPcHRpb25zLFxuICAgIGFja25vd2xlZGdlOiBhY2tub3dsZWRnZU9wdGlvbnMsXG4gICAgbm90aWNlczogbm90aWNlc09wdGlvbnMsXG4gICAgaW5pdDogaW5pdE9wdGlvbnMsXG4gICAgbWlncmF0ZTogbWlncmF0ZU9wdGlvbnMsXG4gICAgY29udGV4dDogY29udGV4dE9wdGlvbnMsXG4gICAgZG9jczogZG9jc09wdGlvbnMsXG4gICAgZG9jdG9yOiBkb2N0b3JPcHRpb25zLFxuICB9O1xuXG4gIHJldHVybiB1c2VySW5wdXQ7XG59XG4iXX0=
|
package/lib/diff.js
CHANGED
|
@@ -53,10 +53,10 @@ function printStackDiff(oldTemplate, newTemplate, strict, context, quiet, stackN
|
|
|
53
53
|
}, context);
|
|
54
54
|
}
|
|
55
55
|
else if (!quiet) {
|
|
56
|
-
(0, logging_1.
|
|
56
|
+
(0, logging_1.info)(chalk.green('There were no differences'));
|
|
57
57
|
}
|
|
58
58
|
if (filteredChangesCount > 0) {
|
|
59
|
-
(0, logging_1.
|
|
59
|
+
(0, logging_1.info)(chalk.yellow(`Omitted ${filteredChangesCount} changes because they are likely mangled non-ASCII characters. Use --strict to print them.`));
|
|
60
60
|
}
|
|
61
61
|
for (const nestedStackLogicalId of Object.keys(nestedStackTemplates ?? {})) {
|
|
62
62
|
if (!nestedStackTemplates) {
|
|
@@ -159,4 +159,4 @@ function obscureDiff(diff) {
|
|
|
159
159
|
});
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpZmYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNEJBLHdDQTJFQztBQWVELDhDQXNCQztBQTVJRCwrQkFBOEI7QUFDOUIsMkRBQTJEO0FBQzNELHNFQVFzQztBQUV0QywrQkFBK0I7QUFFL0IsdUNBQTJDO0FBQzNDLDJDQUErQztBQUUvQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsY0FBYyxDQUM1QixXQUFnQixFQUNoQixXQUE4QyxFQUM5QyxNQUFlLEVBQ2YsT0FBZSxFQUNmLEtBQWMsRUFDZCxTQUFrQixFQUNsQixTQUFtQyxFQUNuQyxRQUFrQixFQUNsQixTQUF1QixPQUFPLENBQUMsTUFBTSxFQUNyQyxvQkFBK0U7SUFDL0UsSUFBSSxJQUFJLEdBQUcsSUFBQSw4QkFBUSxFQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUU1RSxxRUFBcUU7SUFDckUsSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBQSxhQUFNLEVBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsdUZBQXVGLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQseURBQXlEO0lBQ3pELElBQUksb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFBLDhDQUF3QixFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RyxNQUFNLFdBQVcsR0FBRyxJQUFBLDhCQUFRLEVBQUMsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLG9CQUFvQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksb0JBQW9CLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCw2REFBNkQ7SUFDN0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQixjQUFjLEVBQUUsQ0FBQztRQUNqQixJQUFBLHVDQUFpQixFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDOUIsR0FBRyx3QkFBd0IsQ0FBQyxXQUFXLENBQUM7WUFDeEMsR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLENBQUM7U0FDdEMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNkLENBQUM7U0FBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsSUFBQSxlQUFLLEVBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELElBQUksb0JBQW9CLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0IsSUFBQSxlQUFLLEVBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLG9CQUFvQiw0RkFBNEYsQ0FBQyxDQUFDLENBQUM7SUFDbkosQ0FBQztJQUVELEtBQUssTUFBTSxvQkFBb0IsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDM0UsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDMUIsTUFBTTtRQUNSLENBQUM7UUFDRCxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRTlELFdBQW1CLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztRQUMvRCxjQUFjLElBQUksY0FBYyxDQUM5QixXQUFXLENBQUMsZ0JBQWdCLEVBQzVCLFdBQVcsRUFDWCxNQUFNLEVBQ04sT0FBTyxFQUNQLEtBQUssRUFDTCxXQUFXLENBQUMsWUFBWSxJQUFJLG9CQUFvQixFQUNoRCxTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLENBQUMsb0JBQW9CLENBQ2pDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVELElBQVksZUFNWDtBQU5ELFdBQVksZUFBZTtJQUN6QixrQ0FBZSxDQUFBO0lBRWYsMkNBQXdCLENBQUE7SUFFeEIsNENBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQU5XLGVBQWUsK0JBQWYsZUFBZSxRQU0xQjtBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsV0FBZ0IsRUFDaEIsV0FBOEMsRUFDOUMsZUFBZ0MsRUFDaEMsTUFBZ0IsRUFDaEIsU0FBa0IsRUFDbEIsU0FBbUMsRUFDbkMsU0FBdUIsT0FBTyxDQUFDLE1BQU07SUFFckMsTUFBTSxJQUFJLEdBQUcsSUFBQSw4QkFBUSxFQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXBFLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDaEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFBLGFBQU0sRUFBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUQsbUNBQW1DO1FBQ25DLElBQUEsaUJBQU8sRUFBQyxpSUFBaUksZUFBZSxJQUFJLENBQUMsQ0FBQztRQUM5SixJQUFBLGlCQUFPLEVBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUU1RSxJQUFBLDJDQUFxQixFQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDaEYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLG9CQUFvQixDQUFDLElBQWtCLEVBQUUsZUFBZ0M7SUFDaEYsUUFBUSxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztRQUN6QyxLQUFLLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUNsRSxLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUNsRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksb0JBQVksQ0FBQyxnQ0FBZ0MsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsS0FBd0M7SUFDckUsTUFBTSxHQUFHLEdBQTZCLEVBQUUsQ0FBQztJQUN6QyxLQUFLLE1BQU0sRUFBRSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN6RixHQUFHLENBQUMsRUFBRSxDQUFDLElBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsUUFBYTtJQUM3QyxNQUFNLEdBQUcsR0FBMkIsRUFBRSxDQUFDO0lBRXZDLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBSSxRQUFnQixFQUFFLFFBQVEsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxJQUFrQjtJQUNyQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQUMsT0FBTyxJQUFJLENBQUM7WUFBQyxDQUFDO1lBQzdCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDO2dCQUFDLE9BQU8sS0FBSyxDQUFDO1lBQUMsQ0FBQztZQUM3RCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztnQkFBQyxPQUFPLEtBQUssQ0FBQztZQUFDLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQztZQUFDLENBQUM7WUFDN0IsSUFBSSxNQUFNLENBQUMsZUFBZSxLQUFLLG9CQUFvQixFQUFFLENBQUM7Z0JBQUMsT0FBTyxLQUFLLENBQUM7WUFBQyxDQUFDO1lBQ3RFLElBQUksTUFBTSxDQUFDLGVBQWUsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO2dCQUFDLE9BQU8sS0FBSyxDQUFDO1lBQUMsQ0FBQztZQUN0RSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd1dGlsJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQge1xuICB0eXBlIERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0LFxuICB0eXBlIEZvcm1hdFN0cmVhbSxcbiAgdHlwZSBUZW1wbGF0ZURpZmYsXG4gIGZvcm1hdERpZmZlcmVuY2VzLFxuICBmb3JtYXRTZWN1cml0eUNoYW5nZXMsXG4gIGZ1bGxEaWZmLFxuICBtYW5nbGVMaWtlQ2xvdWRGb3JtYXRpb24sXG59IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gZnJvbSAnLi9hcGkvbmVzdGVkLXN0YWNrLWhlbHBlcnMnO1xuaW1wb3J0IHsgcHJpbnQsIHdhcm5pbmcgfSBmcm9tICcuL2xvZ2dpbmcnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi90b29sa2l0L2Vycm9yJztcblxuLyoqXG4gKiBQcmV0dHktcHJpbnRzIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHR3byB0ZW1wbGF0ZSBzdGF0ZXMgdG8gdGhlIGNvbnNvbGUuXG4gKlxuICogQHBhcmFtIG9sZFRlbXBsYXRlIHRoZSBvbGQvY3VycmVudCBzdGF0ZSBvZiB0aGUgc3RhY2suXG4gKiBAcGFyYW0gbmV3VGVtcGxhdGUgdGhlIG5ldy90YXJnZXQgc3RhdGUgb2YgdGhlIHN0YWNrLlxuICogQHBhcmFtIHN0cmljdCAgICAgIGRvIG5vdCBmaWx0ZXIgb3V0IEFXUzo6Q0RLOjpNZXRhZGF0YSBvciBSdWxlc1xuICogQHBhcmFtIGNvbnRleHQgICAgIGxpbmVzIG9mIGNvbnRleHQgdG8gdXNlIGluIGFyYml0cmFyeSBKU09OIGRpZmZcbiAqIEBwYXJhbSBxdWlldCAgICAgICBzaWxlbmNlcyBcXCdUaGVyZSB3ZXJlIG5vIGRpZmZlcmVuY2VzXFwnIG1lc3NhZ2VzXG4gKlxuICogQHJldHVybnMgdGhlIG51bWJlciBvZiBzdGFja3MgaW4gdGhpcyBzdGFjayB0cmVlIHRoYXQgaGF2ZSBkaWZmZXJlbmNlcywgaW5jbHVkaW5nIHRoZSB0b3AtbGV2ZWwgcm9vdCBzdGFja1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRTdGFja0RpZmYoXG4gIG9sZFRlbXBsYXRlOiBhbnksXG4gIG5ld1RlbXBsYXRlOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIHN0cmljdDogYm9vbGVhbixcbiAgY29udGV4dDogbnVtYmVyLFxuICBxdWlldDogYm9vbGVhbixcbiAgc3RhY2tOYW1lPzogc3RyaW5nLFxuICBjaGFuZ2VTZXQ/OiBEZXNjcmliZUNoYW5nZVNldE91dHB1dCxcbiAgaXNJbXBvcnQ/OiBib29sZWFuLFxuICBzdHJlYW06IEZvcm1hdFN0cmVhbSA9IHByb2Nlc3Muc3RkZXJyLFxuICBuZXN0ZWRTdGFja1RlbXBsYXRlcz86IHsgW25lc3RlZFN0YWNrTG9naWNhbElkOiBzdHJpbmddOiBOZXN0ZWRTdGFja1RlbXBsYXRlcyB9KTogbnVtYmVyIHtcbiAgbGV0IGRpZmYgPSBmdWxsRGlmZihvbGRUZW1wbGF0ZSwgbmV3VGVtcGxhdGUudGVtcGxhdGUsIGNoYW5nZVNldCwgaXNJbXBvcnQpO1xuXG4gIC8vIG11c3Qgb3V0cHV0IHRoZSBzdGFjayBuYW1lIGlmIHRoZXJlIGFyZSBkaWZmZXJlbmNlcywgZXZlbiBpZiBxdWlldFxuICBpZiAoc3RhY2tOYW1lICYmICghcXVpZXQgfHwgIWRpZmYuaXNFbXB0eSkpIHtcbiAgICBzdHJlYW0ud3JpdGUoZm9ybWF0KCdTdGFjayAlc1xcbicsIGNoYWxrLmJvbGQoc3RhY2tOYW1lKSkpO1xuICB9XG5cbiAgaWYgKCFxdWlldCAmJiBpc0ltcG9ydCkge1xuICAgIHN0cmVhbS53cml0ZSgnUGFyYW1ldGVycyBhbmQgcnVsZXMgY3JlYXRlZCBkdXJpbmcgbWlncmF0aW9uIGRvIG5vdCBhZmZlY3QgcmVzb3VyY2UgY29uZmlndXJhdGlvbi5cXG4nKTtcbiAgfVxuXG4gIC8vIGRldGVjdCBhbmQgZmlsdGVyIG91dCBtYW5nbGVkIGNoYXJhY3RlcnMgZnJvbSB0aGUgZGlmZlxuICBsZXQgZmlsdGVyZWRDaGFuZ2VzQ291bnQgPSAwO1xuICBpZiAoZGlmZi5kaWZmZXJlbmNlQ291bnQgJiYgIXN0cmljdCkge1xuICAgIGNvbnN0IG1hbmdsZWROZXdUZW1wbGF0ZSA9IEpTT04ucGFyc2UobWFuZ2xlTGlrZUNsb3VkRm9ybWF0aW9uKEpTT04uc3RyaW5naWZ5KG5ld1RlbXBsYXRlLnRlbXBsYXRlKSkpO1xuICAgIGNvbnN0IG1hbmdsZWREaWZmID0gZnVsbERpZmYob2xkVGVtcGxhdGUsIG1hbmdsZWROZXdUZW1wbGF0ZSwgY2hhbmdlU2V0KTtcbiAgICBmaWx0ZXJlZENoYW5nZXNDb3VudCA9IE1hdGgubWF4KDAsIGRpZmYuZGlmZmVyZW5jZUNvdW50IC0gbWFuZ2xlZERpZmYuZGlmZmVyZW5jZUNvdW50KTtcbiAgICBpZiAoZmlsdGVyZWRDaGFuZ2VzQ291bnQgPiAwKSB7XG4gICAgICBkaWZmID0gbWFuZ2xlZERpZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gZmlsdGVyIG91dCAnQVdTOjpDREs6Ok1ldGFkYXRhJyByZXNvdXJjZXMgZnJvbSB0aGUgdGVtcGxhdGVcbiAgLy8gZmlsdGVyIG91dCAnQ2hlY2tCb290c3RyYXBWZXJzaW9uJyBydWxlcyBmcm9tIHRoZSB0ZW1wbGF0ZVxuICBpZiAoIXN0cmljdCkge1xuICAgIG9ic2N1cmVEaWZmKGRpZmYpO1xuICB9XG5cbiAgbGV0IHN0YWNrRGlmZkNvdW50ID0gMDtcbiAgaWYgKCFkaWZmLmlzRW1wdHkpIHtcbiAgICBzdGFja0RpZmZDb3VudCsrO1xuICAgIGZvcm1hdERpZmZlcmVuY2VzKHN0cmVhbSwgZGlmZiwge1xuICAgICAgLi4ubG9naWNhbElkTWFwRnJvbVRlbXBsYXRlKG9sZFRlbXBsYXRlKSxcbiAgICAgIC4uLmJ1aWxkTG9naWNhbFRvUGF0aE1hcChuZXdUZW1wbGF0ZSksXG4gICAgfSwgY29udGV4dCk7XG4gIH0gZWxzZSBpZiAoIXF1aWV0KSB7XG4gICAgcHJpbnQoY2hhbGsuZ3JlZW4oJ1RoZXJlIHdlcmUgbm8gZGlmZmVyZW5jZXMnKSk7XG4gIH1cbiAgaWYgKGZpbHRlcmVkQ2hhbmdlc0NvdW50ID4gMCkge1xuICAgIHByaW50KGNoYWxrLnllbGxvdyhgT21pdHRlZCAke2ZpbHRlcmVkQ2hhbmdlc0NvdW50fSBjaGFuZ2VzIGJlY2F1c2UgdGhleSBhcmUgbGlrZWx5IG1hbmdsZWQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIFVzZSAtLXN0cmljdCB0byBwcmludCB0aGVtLmApKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgbmVzdGVkU3RhY2tMb2dpY2FsSWQgb2YgT2JqZWN0LmtleXMobmVzdGVkU3RhY2tUZW1wbGF0ZXMgPz8ge30pKSB7XG4gICAgaWYgKCFuZXN0ZWRTdGFja1RlbXBsYXRlcykge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNvbnN0IG5lc3RlZFN0YWNrID0gbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbmVzdGVkU3RhY2tMb2dpY2FsSWRdO1xuXG4gICAgKG5ld1RlbXBsYXRlIGFzIGFueSkuX3RlbXBsYXRlID0gbmVzdGVkU3RhY2suZ2VuZXJhdGVkVGVtcGxhdGU7XG4gICAgc3RhY2tEaWZmQ291bnQgKz0gcHJpbnRTdGFja0RpZmYoXG4gICAgICBuZXN0ZWRTdGFjay5kZXBsb3llZFRlbXBsYXRlLFxuICAgICAgbmV3VGVtcGxhdGUsXG4gICAgICBzdHJpY3QsXG4gICAgICBjb250ZXh0LFxuICAgICAgcXVpZXQsXG4gICAgICBuZXN0ZWRTdGFjay5waHlzaWNhbE5hbWUgPz8gbmVzdGVkU3RhY2tMb2dpY2FsSWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBpc0ltcG9ydCxcbiAgICAgIHN0cmVhbSxcbiAgICAgIG5lc3RlZFN0YWNrLm5lc3RlZFN0YWNrVGVtcGxhdGVzLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gc3RhY2tEaWZmQ291bnQ7XG59XG5cbmV4cG9ydCBlbnVtIFJlcXVpcmVBcHByb3ZhbCB7XG4gIE5ldmVyID0gJ25ldmVyJyxcblxuICBBbnlDaGFuZ2UgPSAnYW55LWNoYW5nZScsXG5cbiAgQnJvYWRlbmluZyA9ICdicm9hZGVuaW5nJyxcbn1cblxuLyoqXG4gKiBQcmludCB0aGUgc2VjdXJpdHkgY2hhbmdlcyBvZiB0aGlzIGRpZmYsIGlmIHRoZSBjaGFuZ2UgaXMgaW1wYWN0ZnVsIGVub3VnaCBhY2NvcmRpbmcgdG8gdGhlIGFwcHJvdmFsIGxldmVsXG4gKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFuZ2VzIGFyZSBwcm9tcHQtd29ydGh5LCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludFNlY3VyaXR5RGlmZihcbiAgb2xkVGVtcGxhdGU6IGFueSxcbiAgbmV3VGVtcGxhdGU6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgcmVxdWlyZUFwcHJvdmFsOiBSZXF1aXJlQXBwcm92YWwsXG4gIF9xdWlldD86IGJvb2xlYW4sXG4gIHN0YWNrTmFtZT86IHN0cmluZyxcbiAgY2hhbmdlU2V0PzogRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQsXG4gIHN0cmVhbTogRm9ybWF0U3RyZWFtID0gcHJvY2Vzcy5zdGRlcnIsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgZGlmZiA9IGZ1bGxEaWZmKG9sZFRlbXBsYXRlLCBuZXdUZW1wbGF0ZS50ZW1wbGF0ZSwgY2hhbmdlU2V0KTtcblxuICBpZiAoZGlmZlJlcXVpcmVzQXBwcm92YWwoZGlmZiwgcmVxdWlyZUFwcHJvdmFsKSkge1xuICAgIHN0cmVhbS53cml0ZShmb3JtYXQoJ1N0YWNrICVzXFxuJywgY2hhbGsuYm9sZChzdGFja05hbWUpKSk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgIHdhcm5pbmcoYFRoaXMgZGVwbG95bWVudCB3aWxsIG1ha2UgcG90ZW50aWFsbHkgc2Vuc2l0aXZlIGNoYW5nZXMgYWNjb3JkaW5nIHRvIHlvdXIgY3VycmVudCBzZWN1cml0eSBhcHByb3ZhbCBsZXZlbCAoLS1yZXF1aXJlLWFwcHJvdmFsICR7cmVxdWlyZUFwcHJvdmFsfSkuYCk7XG4gICAgd2FybmluZygnUGxlYXNlIGNvbmZpcm0geW91IGludGVuZCB0byBtYWtlIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uczpcXG4nKTtcblxuICAgIGZvcm1hdFNlY3VyaXR5Q2hhbmdlcyhwcm9jZXNzLnN0ZG91dCwgZGlmZiwgYnVpbGRMb2dpY2FsVG9QYXRoTWFwKG5ld1RlbXBsYXRlKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIHRoZSBkaWZmIGhhcyBzZWN1cml0eS1pbXBhY3RpbmcgY2hhbmdlcyB0aGF0IG5lZWQgY29uZmlybWF0aW9uXG4gKlxuICogVE9ETzogRmlsdGVyIHRoZSBzZWN1cml0eSBpbXBhY3QgZGV0ZXJtaW5hdGlvbiBiYXNlZCBvZmYgb2YgYW4gZW51bSB0aGF0IGFsbG93c1xuICogdXMgdG8gcGljayBtaW5pbXVtIFwic2V2ZXJpdGllc1wiIHRvIGFsZXJ0IG9uLlxuICovXG5mdW5jdGlvbiBkaWZmUmVxdWlyZXNBcHByb3ZhbChkaWZmOiBUZW1wbGF0ZURpZmYsIHJlcXVpcmVBcHByb3ZhbDogUmVxdWlyZUFwcHJvdmFsKSB7XG4gIHN3aXRjaCAocmVxdWlyZUFwcHJvdmFsKSB7XG4gICAgY2FzZSBSZXF1aXJlQXBwcm92YWwuTmV2ZXI6IHJldHVybiBmYWxzZTtcbiAgICBjYXNlIFJlcXVpcmVBcHByb3ZhbC5BbnlDaGFuZ2U6IHJldHVybiBkaWZmLnBlcm1pc3Npb25zQW55Q2hhbmdlcztcbiAgICBjYXNlIFJlcXVpcmVBcHByb3ZhbC5Ccm9hZGVuaW5nOiByZXR1cm4gZGlmZi5wZXJtaXNzaW9uc0Jyb2FkZW5lZDtcbiAgICBkZWZhdWx0OiB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBVbnJlY29nbml6ZWQgYXBwcm92YWwgbGV2ZWw6ICR7cmVxdWlyZUFwcHJvdmFsfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTG9naWNhbFRvUGF0aE1hcChzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSB7XG4gIGNvbnN0IG1hcDogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gIGZvciAoY29uc3QgbWQgb2Ygc3RhY2suZmluZE1ldGFkYXRhQnlUeXBlKGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuTE9HSUNBTF9JRCkpIHtcbiAgICBtYXBbbWQuZGF0YSBhcyBzdHJpbmddID0gbWQucGF0aDtcbiAgfVxuICByZXR1cm4gbWFwO1xufVxuXG5mdW5jdGlvbiBsb2dpY2FsSWRNYXBGcm9tVGVtcGxhdGUodGVtcGxhdGU6IGFueSkge1xuICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBmb3IgKGNvbnN0IFtsb2dpY2FsSWQsIHJlc291cmNlXSBvZiBPYmplY3QuZW50cmllcyh0ZW1wbGF0ZS5SZXNvdXJjZXMgPz8ge30pKSB7XG4gICAgY29uc3QgcGF0aCA9IChyZXNvdXJjZSBhcyBhbnkpPy5NZXRhZGF0YT8uWydhd3M6Y2RrOnBhdGgnXTtcbiAgICBpZiAocGF0aCkge1xuICAgICAgcmV0W2xvZ2ljYWxJZF0gPSBwYXRoO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBhbnkgdGVtcGxhdGUgZWxlbWVudHMgdGhhdCB3ZSBkb24ndCB3YW50IHRvIHNob3cgdXNlcnMuXG4gKiBUaGlzIGlzIGN1cnJlbnRseTpcbiAqIC0gQVdTOjpDREs6Ok1ldGFkYXRhIHJlc291cmNlXG4gKiAtIENoZWNrQm9vdHN0cmFwVmVyc2lvbiBSdWxlXG4gKi9cbmZ1bmN0aW9uIG9ic2N1cmVEaWZmKGRpZmY6IFRlbXBsYXRlRGlmZikge1xuICBpZiAoZGlmZi51bmtub3duKSB7XG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTc5NDJcbiAgICBkaWZmLnVua25vd24gPSBkaWZmLnVua25vd24uZmlsdGVyKGNoYW5nZSA9PiB7XG4gICAgICBpZiAoIWNoYW5nZSkgeyByZXR1cm4gdHJ1ZTsgfVxuICAgICAgaWYgKGNoYW5nZS5uZXdWYWx1ZT8uQ2hlY2tCb290c3RyYXBWZXJzaW9uKSB7IHJldHVybiBmYWxzZTsgfVxuICAgICAgaWYgKGNoYW5nZS5vbGRWYWx1ZT8uQ2hlY2tCb290c3RyYXBWZXJzaW9uKSB7IHJldHVybiBmYWxzZTsgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBpZiAoZGlmZi5yZXNvdXJjZXMpIHtcbiAgICBkaWZmLnJlc291cmNlcyA9IGRpZmYucmVzb3VyY2VzLmZpbHRlcihjaGFuZ2UgPT4ge1xuICAgICAgaWYgKCFjaGFuZ2UpIHsgcmV0dXJuIHRydWU7IH1cbiAgICAgIGlmIChjaGFuZ2UubmV3UmVzb3VyY2VUeXBlID09PSAnQVdTOjpDREs6Ok1ldGFkYXRhJykgeyByZXR1cm4gZmFsc2U7IH1cbiAgICAgIGlmIChjaGFuZ2Uub2xkUmVzb3VyY2VUeXBlID09PSAnQVdTOjpDREs6Ok1ldGFkYXRhJykgeyByZXR1cm4gZmFsc2U7IH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpZmYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNEJBLHdDQTJFQztBQWVELDhDQXNCQztBQTVJRCwrQkFBOEI7QUFDOUIsMkRBQTJEO0FBQzNELHNFQVFzQztBQUV0QywrQkFBK0I7QUFFL0IsdUNBQTBDO0FBQzFDLDJDQUErQztBQUUvQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsY0FBYyxDQUM1QixXQUFnQixFQUNoQixXQUE4QyxFQUM5QyxNQUFlLEVBQ2YsT0FBZSxFQUNmLEtBQWMsRUFDZCxTQUFrQixFQUNsQixTQUFtQyxFQUNuQyxRQUFrQixFQUNsQixTQUF1QixPQUFPLENBQUMsTUFBTSxFQUNyQyxvQkFBK0U7SUFDL0UsSUFBSSxJQUFJLEdBQUcsSUFBQSw4QkFBUSxFQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUU1RSxxRUFBcUU7SUFDckUsSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBQSxhQUFNLEVBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsdUZBQXVGLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQseURBQXlEO0lBQ3pELElBQUksb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFBLDhDQUF3QixFQUFD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SSxNQUFNLENBQUMsZUFBZSxLQUFLLG9CQUFvQixFQUFFLENBQUM7Z0JBQUMsT0FBTyxLQUFLLENBQUM7WUFBQyxDQUFDO1lBQ3RFLElBQUksTUFBTSxDQUFDLGVBQWUsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO2dCQUFDLE9BQU8sS0FBSyxDQUFDO1lBQUMsQ0FBQztZQUN0RSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd1dGlsJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQge1xuICB0eXBlIERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0LFxuICB0eXBlIEZvcm1hdFN0cmVhbSxcbiAgdHlwZSBUZW1wbGF0ZURpZmYsXG4gIGZvcm1hdERpZmZlcmVuY2VzLFxuICBmb3JtYXRTZWN1cml0eUNoYW5nZXMsXG4gIGZ1bGxEaWZmLFxuICBtYW5nbGVMaWtlQ2xvdWRGb3JtYXRpb24sXG59IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gZnJvbSAnLi9hcGkvbmVzdGVkLXN0YWNrLWhlbHBlcnMnO1xuaW1wb3J0IHsgaW5mbywgd2FybmluZyB9IGZyb20gJy4vbG9nZ2luZyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuL3Rvb2xraXQvZXJyb3InO1xuXG4vKipcbiAqIFByZXR0eS1wcmludHMgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdHdvIHRlbXBsYXRlIHN0YXRlcyB0byB0aGUgY29uc29sZS5cbiAqXG4gKiBAcGFyYW0gb2xkVGVtcGxhdGUgdGhlIG9sZC9jdXJyZW50IHN0YXRlIG9mIHRoZSBzdGFjay5cbiAqIEBwYXJhbSBuZXdUZW1wbGF0ZSB0aGUgbmV3L3RhcmdldCBzdGF0ZSBvZiB0aGUgc3RhY2suXG4gKiBAcGFyYW0gc3RyaWN0ICAgICAgZG8gbm90IGZpbHRlciBvdXQgQVdTOjpDREs6Ok1ldGFkYXRhIG9yIFJ1bGVzXG4gKiBAcGFyYW0gY29udGV4dCAgICAgbGluZXMgb2YgY29udGV4dCB0byB1c2UgaW4gYXJiaXRyYXJ5IEpTT04gZGlmZlxuICogQHBhcmFtIHF1aWV0ICAgICAgIHNpbGVuY2VzIFxcJ1RoZXJlIHdlcmUgbm8gZGlmZmVyZW5jZXNcXCcgbWVzc2FnZXNcbiAqXG4gKiBAcmV0dXJucyB0aGUgbnVtYmVyIG9mIHN0YWNrcyBpbiB0aGlzIHN0YWNrIHRyZWUgdGhhdCBoYXZlIGRpZmZlcmVuY2VzLCBpbmNsdWRpbmcgdGhlIHRvcC1sZXZlbCByb290IHN0YWNrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludFN0YWNrRGlmZihcbiAgb2xkVGVtcGxhdGU6IGFueSxcbiAgbmV3VGVtcGxhdGU6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgc3RyaWN0OiBib29sZWFuLFxuICBjb250ZXh0OiBudW1iZXIsXG4gIHF1aWV0OiBib29sZWFuLFxuICBzdGFja05hbWU/OiBzdHJpbmcsXG4gIGNoYW5nZVNldD86IERlc2NyaWJlQ2hhbmdlU2V0T3V0cHV0LFxuICBpc0ltcG9ydD86IGJvb2xlYW4sXG4gIHN0cmVhbTogRm9ybWF0U3RyZWFtID0gcHJvY2Vzcy5zdGRlcnIsXG4gIG5lc3RlZFN0YWNrVGVtcGxhdGVzPzogeyBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0pOiBudW1iZXIge1xuICBsZXQgZGlmZiA9IGZ1bGxEaWZmKG9sZFRlbXBsYXRlLCBuZXdUZW1wbGF0ZS50ZW1wbGF0ZSwgY2hhbmdlU2V0LCBpc0ltcG9ydCk7XG5cbiAgLy8gbXVzdCBvdXRwdXQgdGhlIHN0YWNrIG5hbWUgaWYgdGhlcmUgYXJlIGRpZmZlcmVuY2VzLCBldmVuIGlmIHF1aWV0XG4gIGlmIChzdGFja05hbWUgJiYgKCFxdWlldCB8fCAhZGlmZi5pc0VtcHR5KSkge1xuICAgIHN0cmVhbS53cml0ZShmb3JtYXQoJ1N0YWNrICVzXFxuJywgY2hhbGsuYm9sZChzdGFja05hbWUpKSk7XG4gIH1cblxuICBpZiAoIXF1aWV0ICYmIGlzSW1wb3J0KSB7XG4gICAgc3RyZWFtLndyaXRlKCdQYXJhbWV0ZXJzIGFuZCBydWxlcyBjcmVhdGVkIGR1cmluZyBtaWdyYXRpb24gZG8gbm90IGFmZmVjdCByZXNvdXJjZSBjb25maWd1cmF0aW9uLlxcbicpO1xuICB9XG5cbiAgLy8gZGV0ZWN0IGFuZCBmaWx0ZXIgb3V0IG1hbmdsZWQgY2hhcmFjdGVycyBmcm9tIHRoZSBkaWZmXG4gIGxldCBmaWx0ZXJlZENoYW5nZXNDb3VudCA9IDA7XG4gIGlmIChkaWZmLmRpZmZlcmVuY2VDb3VudCAmJiAhc3RyaWN0KSB7XG4gICAgY29uc3QgbWFuZ2xlZE5ld1RlbXBsYXRlID0gSlNPTi5wYXJzZShtYW5nbGVMaWtlQ2xvdWRGb3JtYXRpb24oSlNPTi5zdHJpbmdpZnkobmV3VGVtcGxhdGUudGVtcGxhdGUpKSk7XG4gICAgY29uc3QgbWFuZ2xlZERpZmYgPSBmdWxsRGlmZihvbGRUZW1wbGF0ZSwgbWFuZ2xlZE5ld1RlbXBsYXRlLCBjaGFuZ2VTZXQpO1xuICAgIGZpbHRlcmVkQ2hhbmdlc0NvdW50ID0gTWF0aC5tYXgoMCwgZGlmZi5kaWZmZXJlbmNlQ291bnQgLSBtYW5nbGVkRGlmZi5kaWZmZXJlbmNlQ291bnQpO1xuICAgIGlmIChmaWx0ZXJlZENoYW5nZXNDb3VudCA+IDApIHtcbiAgICAgIGRpZmYgPSBtYW5nbGVkRGlmZjtcbiAgICB9XG4gIH1cblxuICAvLyBmaWx0ZXIgb3V0ICdBV1M6OkNESzo6TWV0YWRhdGEnIHJlc291cmNlcyBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAvLyBmaWx0ZXIgb3V0ICdDaGVja0Jvb3RzdHJhcFZlcnNpb24nIHJ1bGVzIGZyb20gdGhlIHRlbXBsYXRlXG4gIGlmICghc3RyaWN0KSB7XG4gICAgb2JzY3VyZURpZmYoZGlmZik7XG4gIH1cblxuICBsZXQgc3RhY2tEaWZmQ291bnQgPSAwO1xuICBpZiAoIWRpZmYuaXNFbXB0eSkge1xuICAgIHN0YWNrRGlmZkNvdW50Kys7XG4gICAgZm9ybWF0RGlmZmVyZW5jZXMoc3RyZWFtLCBkaWZmLCB7XG4gICAgICAuLi5sb2dpY2FsSWRNYXBGcm9tVGVtcGxhdGUob2xkVGVtcGxhdGUpLFxuICAgICAgLi4uYnVpbGRMb2dpY2FsVG9QYXRoTWFwKG5ld1RlbXBsYXRlKSxcbiAgICB9LCBjb250ZXh0KTtcbiAgfSBlbHNlIGlmICghcXVpZXQpIHtcbiAgICBpbmZvKGNoYWxrLmdyZWVuKCdUaGVyZSB3ZXJlIG5vIGRpZmZlcmVuY2VzJykpO1xuICB9XG4gIGlmIChmaWx0ZXJlZENoYW5nZXNDb3VudCA+IDApIHtcbiAgICBpbmZvKGNoYWxrLnllbGxvdyhgT21pdHRlZCAke2ZpbHRlcmVkQ2hhbmdlc0NvdW50fSBjaGFuZ2VzIGJlY2F1c2UgdGhleSBhcmUgbGlrZWx5IG1hbmdsZWQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIFVzZSAtLXN0cmljdCB0byBwcmludCB0aGVtLmApKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgbmVzdGVkU3RhY2tMb2dpY2FsSWQgb2YgT2JqZWN0LmtleXMobmVzdGVkU3RhY2tUZW1wbGF0ZXMgPz8ge30pKSB7XG4gICAgaWYgKCFuZXN0ZWRTdGFja1RlbXBsYXRlcykge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNvbnN0IG5lc3RlZFN0YWNrID0gbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbmVzdGVkU3RhY2tMb2dpY2FsSWRdO1xuXG4gICAgKG5ld1RlbXBsYXRlIGFzIGFueSkuX3RlbXBsYXRlID0gbmVzdGVkU3RhY2suZ2VuZXJhdGVkVGVtcGxhdGU7XG4gICAgc3RhY2tEaWZmQ291bnQgKz0gcHJpbnRTdGFja0RpZmYoXG4gICAgICBuZXN0ZWRTdGFjay5kZXBsb3llZFRlbXBsYXRlLFxuICAgICAgbmV3VGVtcGxhdGUsXG4gICAgICBzdHJpY3QsXG4gICAgICBjb250ZXh0LFxuICAgICAgcXVpZXQsXG4gICAgICBuZXN0ZWRTdGFjay5waHlzaWNhbE5hbWUgPz8gbmVzdGVkU3RhY2tMb2dpY2FsSWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBpc0ltcG9ydCxcbiAgICAgIHN0cmVhbSxcbiAgICAgIG5lc3RlZFN0YWNrLm5lc3RlZFN0YWNrVGVtcGxhdGVzLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gc3RhY2tEaWZmQ291bnQ7XG59XG5cbmV4cG9ydCBlbnVtIFJlcXVpcmVBcHByb3ZhbCB7XG4gIE5ldmVyID0gJ25ldmVyJyxcblxuICBBbnlDaGFuZ2UgPSAnYW55LWNoYW5nZScsXG5cbiAgQnJvYWRlbmluZyA9ICdicm9hZGVuaW5nJyxcbn1cblxuLyoqXG4gKiBQcmludCB0aGUgc2VjdXJpdHkgY2hhbmdlcyBvZiB0aGlzIGRpZmYsIGlmIHRoZSBjaGFuZ2UgaXMgaW1wYWN0ZnVsIGVub3VnaCBhY2NvcmRpbmcgdG8gdGhlIGFwcHJvdmFsIGxldmVsXG4gKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFuZ2VzIGFyZSBwcm9tcHQtd29ydGh5LCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludFNlY3VyaXR5RGlmZihcbiAgb2xkVGVtcGxhdGU6IGFueSxcbiAgbmV3VGVtcGxhdGU6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgcmVxdWlyZUFwcHJvdmFsOiBSZXF1aXJlQXBwcm92YWwsXG4gIF9xdWlldD86IGJvb2xlYW4sXG4gIHN0YWNrTmFtZT86IHN0cmluZyxcbiAgY2hhbmdlU2V0PzogRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQsXG4gIHN0cmVhbTogRm9ybWF0U3RyZWFtID0gcHJvY2Vzcy5zdGRlcnIsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgZGlmZiA9IGZ1bGxEaWZmKG9sZFRlbXBsYXRlLCBuZXdUZW1wbGF0ZS50ZW1wbGF0ZSwgY2hhbmdlU2V0KTtcblxuICBpZiAoZGlmZlJlcXVpcmVzQXBwcm92YWwoZGlmZiwgcmVxdWlyZUFwcHJvdmFsKSkge1xuICAgIHN0cmVhbS53cml0ZShmb3JtYXQoJ1N0YWNrICVzXFxuJywgY2hhbGsuYm9sZChzdGFja05hbWUpKSk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgIHdhcm5pbmcoYFRoaXMgZGVwbG95bWVudCB3aWxsIG1ha2UgcG90ZW50aWFsbHkgc2Vuc2l0aXZlIGNoYW5nZXMgYWNjb3JkaW5nIHRvIHlvdXIgY3VycmVudCBzZWN1cml0eSBhcHByb3ZhbCBsZXZlbCAoLS1yZXF1aXJlLWFwcHJvdmFsICR7cmVxdWlyZUFwcHJvdmFsfSkuYCk7XG4gICAgd2FybmluZygnUGxlYXNlIGNvbmZpcm0geW91IGludGVuZCB0byBtYWtlIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uczpcXG4nKTtcblxuICAgIGZvcm1hdFNlY3VyaXR5Q2hhbmdlcyhwcm9jZXNzLnN0ZG91dCwgZGlmZiwgYnVpbGRMb2dpY2FsVG9QYXRoTWFwKG5ld1RlbXBsYXRlKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIHRoZSBkaWZmIGhhcyBzZWN1cml0eS1pbXBhY3RpbmcgY2hhbmdlcyB0aGF0IG5lZWQgY29uZmlybWF0aW9uXG4gKlxuICogVE9ETzogRmlsdGVyIHRoZSBzZWN1cml0eSBpbXBhY3QgZGV0ZXJtaW5hdGlvbiBiYXNlZCBvZmYgb2YgYW4gZW51bSB0aGF0IGFsbG93c1xuICogdXMgdG8gcGljayBtaW5pbXVtIFwic2V2ZXJpdGllc1wiIHRvIGFsZXJ0IG9uLlxuICovXG5mdW5jdGlvbiBkaWZmUmVxdWlyZXNBcHByb3ZhbChkaWZmOiBUZW1wbGF0ZURpZmYsIHJlcXVpcmVBcHByb3ZhbDogUmVxdWlyZUFwcHJvdmFsKSB7XG4gIHN3aXRjaCAocmVxdWlyZUFwcHJvdmFsKSB7XG4gICAgY2FzZSBSZXF1aXJlQXBwcm92YWwuTmV2ZXI6IHJldHVybiBmYWxzZTtcbiAgICBjYXNlIFJlcXVpcmVBcHByb3ZhbC5BbnlDaGFuZ2U6IHJldHVybiBkaWZmLnBlcm1pc3Npb25zQW55Q2hhbmdlcztcbiAgICBjYXNlIFJlcXVpcmVBcHByb3ZhbC5Ccm9hZGVuaW5nOiByZXR1cm4gZGlmZi5wZXJtaXNzaW9uc0Jyb2FkZW5lZDtcbiAgICBkZWZhdWx0OiB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBVbnJlY29nbml6ZWQgYXBwcm92YWwgbGV2ZWw6ICR7cmVxdWlyZUFwcHJvdmFsfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTG9naWNhbFRvUGF0aE1hcChzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSB7XG4gIGNvbnN0IG1hcDogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gIGZvciAoY29uc3QgbWQgb2Ygc3RhY2suZmluZE1ldGFkYXRhQnlUeXBlKGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuTE9HSUNBTF9JRCkpIHtcbiAgICBtYXBbbWQuZGF0YSBhcyBzdHJpbmddID0gbWQucGF0aDtcbiAgfVxuICByZXR1cm4gbWFwO1xufVxuXG5mdW5jdGlvbiBsb2dpY2FsSWRNYXBGcm9tVGVtcGxhdGUodGVtcGxhdGU6IGFueSkge1xuICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBmb3IgKGNvbnN0IFtsb2dpY2FsSWQsIHJlc291cmNlXSBvZiBPYmplY3QuZW50cmllcyh0ZW1wbGF0ZS5SZXNvdXJjZXMgPz8ge30pKSB7XG4gICAgY29uc3QgcGF0aCA9IChyZXNvdXJjZSBhcyBhbnkpPy5NZXRhZGF0YT8uWydhd3M6Y2RrOnBhdGgnXTtcbiAgICBpZiAocGF0aCkge1xuICAgICAgcmV0W2xvZ2ljYWxJZF0gPSBwYXRoO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBhbnkgdGVtcGxhdGUgZWxlbWVudHMgdGhhdCB3ZSBkb24ndCB3YW50IHRvIHNob3cgdXNlcnMuXG4gKiBUaGlzIGlzIGN1cnJlbnRseTpcbiAqIC0gQVdTOjpDREs6Ok1ldGFkYXRhIHJlc291cmNlXG4gKiAtIENoZWNrQm9vdHN0cmFwVmVyc2lvbiBSdWxlXG4gKi9cbmZ1bmN0aW9uIG9ic2N1cmVEaWZmKGRpZmY6IFRlbXBsYXRlRGlmZikge1xuICBpZiAoZGlmZi51bmtub3duKSB7XG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTc5NDJcbiAgICBkaWZmLnVua25vd24gPSBkaWZmLnVua25vd24uZmlsdGVyKGNoYW5nZSA9PiB7XG4gICAgICBpZiAoIWNoYW5nZSkgeyByZXR1cm4gdHJ1ZTsgfVxuICAgICAgaWYgKGNoYW5nZS5uZXdWYWx1ZT8uQ2hlY2tCb290c3RyYXBWZXJzaW9uKSB7IHJldHVybiBmYWxzZTsgfVxuICAgICAgaWYgKGNoYW5nZS5vbGRWYWx1ZT8uQ2hlY2tCb290c3RyYXBWZXJzaW9uKSB7IHJldHVybiBmYWxzZTsgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBpZiAoZGlmZi5yZXNvdXJjZXMpIHtcbiAgICBkaWZmLnJlc291cmNlcyA9IGRpZmYucmVzb3VyY2VzLmZpbHRlcihjaGFuZ2UgPT4ge1xuICAgICAgaWYgKCFjaGFuZ2UpIHsgcmV0dXJuIHRydWU7IH1cbiAgICAgIGlmIChjaGFuZ2UubmV3UmVzb3VyY2VUeXBlID09PSAnQVdTOjpDREs6Ok1ldGFkYXRhJykgeyByZXR1cm4gZmFsc2U7IH1cbiAgICAgIGlmIChjaGFuZ2Uub2xkUmVzb3VyY2VUeXBlID09PSAnQVdTOjpDREs6Ok1ldGFkYXRhJykgeyByZXR1cm4gZmFsc2U7IH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|