@payloadcms/db-mongodb 3.0.0-alpha.18 → 3.0.0-alpha.19
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/dist/connect.js +5 -20
- package/dist/create.js +6 -21
- package/dist/createGlobal.js +6 -21
- package/dist/createGlobalVersion.js +4 -14
- package/dist/createMigration.js +9 -24
- package/dist/createVersion.js +4 -14
- package/dist/deleteMany.js +4 -14
- package/dist/deleteOne.js +6 -21
- package/dist/deleteVersions.js +4 -14
- package/dist/destroy.js +7 -22
- package/dist/find.js +10 -25
- package/dist/findGlobal.js +8 -23
- package/dist/findGlobalVersions.js +12 -27
- package/dist/findOne.js +6 -21
- package/dist/findVersions.js +10 -25
- package/dist/index.js +64 -79
- package/dist/init.js +24 -39
- package/dist/migrateFresh.js +11 -24
- package/dist/models/buildCollectionSchema.js +8 -23
- package/dist/models/buildGlobalModel.js +9 -24
- package/dist/models/buildSchema.js +22 -37
- package/dist/queries/buildAndOrConditions.js +4 -14
- package/dist/queries/buildQuery.js +6 -16
- package/dist/queries/buildSearchParams.js +20 -32
- package/dist/queries/buildSortParam.js +4 -14
- package/dist/queries/getLocalizedSortProperty.js +8 -18
- package/dist/queries/getLocalizedSortProperty.spec.js +19 -23
- package/dist/queries/mock.js +0 -1
- package/dist/queries/operatorMap.js +2 -12
- package/dist/queries/parseParams.js +12 -27
- package/dist/queries/sanitizeQueryValue.js +8 -23
- package/dist/queryDrafts.js +11 -26
- package/dist/testCredentials.js +4 -25
- package/dist/transactions/beginTransaction.js +6 -16
- package/dist/transactions/commitTransaction.js +2 -12
- package/dist/transactions/rollbackTransaction.js +2 -12
- package/dist/types.js +2 -5
- package/dist/updateGlobal.js +6 -21
- package/dist/updateGlobalVersion.js +4 -14
- package/dist/updateOne.js +8 -23
- package/dist/updateVersion.js +4 -14
- package/dist/utilities/handleError.js +6 -21
- package/dist/utilities/sanitizeInternalFields.js +2 -12
- package/dist/withSession.js +5 -12
- package/package.json +3 -3
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable class-methods-use-this */ /* eslint-disable @typescript-eslint/no-use-before-define */
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
|
|
12
|
-
const _types = require("payload/types");
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
1
|
+
/* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable class-methods-use-this */ /* eslint-disable @typescript-eslint/no-use-before-define */ import mongoose from 'mongoose';
|
|
2
|
+
import { fieldAffectsData, fieldIsLocalized, fieldIsPresentationalOnly, tabHasName } from 'payload/types';
|
|
18
3
|
const formatBaseSchema = (field, buildSchemaOptions)=>{
|
|
19
4
|
const { disableUnique, draftsEnabled, indexSortableFields } = buildSchemaOptions;
|
|
20
5
|
const schema = {
|
|
@@ -22,7 +7,7 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
|
|
|
22
7
|
required: false,
|
|
23
8
|
unique: !disableUnique && field.unique || false
|
|
24
9
|
};
|
|
25
|
-
if (schema.unique && (field.localized || draftsEnabled ||
|
|
10
|
+
if (schema.unique && (field.localized || draftsEnabled || fieldAffectsData(field) && field.type !== 'group' && field.type !== 'tab' && field.required !== true)) {
|
|
26
11
|
schema.sparse = true;
|
|
27
12
|
}
|
|
28
13
|
if (field.hidden) {
|
|
@@ -31,7 +16,7 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
|
|
|
31
16
|
return schema;
|
|
32
17
|
};
|
|
33
18
|
const localizeSchema = (entity, schema, localization)=>{
|
|
34
|
-
if (
|
|
19
|
+
if (fieldIsLocalized(entity) && localization && Array.isArray(localization.locales)) {
|
|
35
20
|
return {
|
|
36
21
|
type: localization.localeCodes.reduce((localeSchema, locale)=>({
|
|
37
22
|
...localeSchema,
|
|
@@ -49,17 +34,17 @@ const buildSchema = (config, configFields, buildSchemaOptions = {})=>{
|
|
|
49
34
|
let fields = {};
|
|
50
35
|
let schemaFields = configFields;
|
|
51
36
|
if (!allowIDField) {
|
|
52
|
-
const idField = schemaFields.find((field)=>
|
|
37
|
+
const idField = schemaFields.find((field)=>fieldAffectsData(field) && field.name === 'id');
|
|
53
38
|
if (idField) {
|
|
54
39
|
fields = {
|
|
55
40
|
_id: idField.type === 'number' ? Number : String
|
|
56
41
|
};
|
|
57
|
-
schemaFields = schemaFields.filter((field)=>!(
|
|
42
|
+
schemaFields = schemaFields.filter((field)=>!(fieldAffectsData(field) && field.name === 'id'));
|
|
58
43
|
}
|
|
59
44
|
}
|
|
60
|
-
const schema = new
|
|
45
|
+
const schema = new mongoose.Schema(fields, options);
|
|
61
46
|
schemaFields.forEach((field)=>{
|
|
62
|
-
if (!
|
|
47
|
+
if (!fieldIsPresentationalOnly(field)) {
|
|
63
48
|
const addFieldSchema = fieldToSchemaMap[field.type];
|
|
64
49
|
if (addFieldSchema) {
|
|
65
50
|
addFieldSchema(field, schema, config, buildSchemaOptions);
|
|
@@ -93,7 +78,7 @@ const fieldToSchemaMap = {
|
|
|
93
78
|
blocks: (field, schema, config, buildSchemaOptions)=>{
|
|
94
79
|
const fieldSchema = {
|
|
95
80
|
type: [
|
|
96
|
-
new
|
|
81
|
+
new mongoose.Schema({}, {
|
|
97
82
|
_id: false,
|
|
98
83
|
discriminatorKey: 'blockType'
|
|
99
84
|
})
|
|
@@ -104,7 +89,7 @@ const fieldToSchemaMap = {
|
|
|
104
89
|
[field.name]: localizeSchema(field, fieldSchema, config.localization)
|
|
105
90
|
});
|
|
106
91
|
field.blocks.forEach((blockItem)=>{
|
|
107
|
-
const blockSchema = new
|
|
92
|
+
const blockSchema = new mongoose.Schema({}, {
|
|
108
93
|
_id: false,
|
|
109
94
|
id: false
|
|
110
95
|
});
|
|
@@ -195,7 +180,7 @@ const fieldToSchemaMap = {
|
|
|
195
180
|
json: (field, schema, config, buildSchemaOptions)=>{
|
|
196
181
|
const baseSchema = {
|
|
197
182
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
198
|
-
type:
|
|
183
|
+
type: mongoose.Schema.Types.Mixed
|
|
199
184
|
};
|
|
200
185
|
schema.add({
|
|
201
186
|
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
@@ -277,20 +262,20 @@ const fieldToSchemaMap = {
|
|
|
277
262
|
localeSchema = {
|
|
278
263
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
279
264
|
_id: false,
|
|
280
|
-
type:
|
|
265
|
+
type: mongoose.Schema.Types.Mixed,
|
|
281
266
|
relationTo: {
|
|
282
267
|
type: String,
|
|
283
268
|
enum: field.relationTo
|
|
284
269
|
},
|
|
285
270
|
value: {
|
|
286
|
-
type:
|
|
271
|
+
type: mongoose.Schema.Types.Mixed,
|
|
287
272
|
refPath: `${field.name}.${locale}.relationTo`
|
|
288
273
|
}
|
|
289
274
|
};
|
|
290
275
|
} else {
|
|
291
276
|
localeSchema = {
|
|
292
277
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
293
|
-
type:
|
|
278
|
+
type: mongoose.Schema.Types.Mixed,
|
|
294
279
|
ref: field.relationTo
|
|
295
280
|
};
|
|
296
281
|
}
|
|
@@ -310,13 +295,13 @@ const fieldToSchemaMap = {
|
|
|
310
295
|
schemaToReturn = {
|
|
311
296
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
312
297
|
_id: false,
|
|
313
|
-
type:
|
|
298
|
+
type: mongoose.Schema.Types.Mixed,
|
|
314
299
|
relationTo: {
|
|
315
300
|
type: String,
|
|
316
301
|
enum: field.relationTo
|
|
317
302
|
},
|
|
318
303
|
value: {
|
|
319
|
-
type:
|
|
304
|
+
type: mongoose.Schema.Types.Mixed,
|
|
320
305
|
refPath: `${field.name}.relationTo`
|
|
321
306
|
}
|
|
322
307
|
};
|
|
@@ -331,7 +316,7 @@ const fieldToSchemaMap = {
|
|
|
331
316
|
} else {
|
|
332
317
|
schemaToReturn = {
|
|
333
318
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
334
|
-
type:
|
|
319
|
+
type: mongoose.Schema.Types.Mixed,
|
|
335
320
|
ref: field.relationTo
|
|
336
321
|
};
|
|
337
322
|
if (field.hasMany) {
|
|
@@ -350,7 +335,7 @@ const fieldToSchemaMap = {
|
|
|
350
335
|
richText: (field, schema, config, buildSchemaOptions)=>{
|
|
351
336
|
const baseSchema = {
|
|
352
337
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
353
|
-
type:
|
|
338
|
+
type: mongoose.Schema.Types.Mixed
|
|
354
339
|
};
|
|
355
340
|
schema.add({
|
|
356
341
|
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
@@ -384,7 +369,7 @@ const fieldToSchemaMap = {
|
|
|
384
369
|
},
|
|
385
370
|
tabs: (field, schema, config, buildSchemaOptions)=>{
|
|
386
371
|
field.tabs.forEach((tab)=>{
|
|
387
|
-
if (
|
|
372
|
+
if (tabHasName(tab)) {
|
|
388
373
|
const baseSchema = {
|
|
389
374
|
type: buildSchema(config, tab.fields, {
|
|
390
375
|
disableUnique: buildSchemaOptions.disableUnique,
|
|
@@ -432,7 +417,7 @@ const fieldToSchemaMap = {
|
|
|
432
417
|
upload: (field, schema, config, buildSchemaOptions)=>{
|
|
433
418
|
const baseSchema = {
|
|
434
419
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
435
|
-
type:
|
|
420
|
+
type: mongoose.Schema.Types.Mixed,
|
|
436
421
|
ref: field.relationTo
|
|
437
422
|
};
|
|
438
423
|
schema.add({
|
|
@@ -440,6 +425,6 @@ const fieldToSchemaMap = {
|
|
|
440
425
|
});
|
|
441
426
|
}
|
|
442
427
|
};
|
|
443
|
-
|
|
428
|
+
export default buildSchema;
|
|
444
429
|
|
|
445
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmltcG9ydCB0eXBlIHsgSW5kZXhPcHRpb25zLCBTY2hlbWEsIFNjaGVtYU9wdGlvbnMsIFNjaGVtYVR5cGVPcHRpb25zIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZywgU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgdHlwZSB7XG4gIEFycmF5RmllbGQsXG4gIEJsb2NrLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgR3JvdXBGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOb25QcmVzZW50YXRpb25hbEZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJpY2hUZXh0RmllbGQsXG4gIFJvd0ZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGFiLFxuICBUYWJzRmllbGQsXG4gIFRleHRGaWVsZCxcbiAgVGV4dGFyZWFGaWVsZCxcbiAgVXBsb2FkRmllbGQsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBtb25nb29zZSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB7XG4gIGZpZWxkQWZmZWN0c0RhdGEsXG4gIGZpZWxkSXNMb2NhbGl6ZWQsXG4gIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHksXG4gIHRhYkhhc05hbWUsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmV4cG9ydCB0eXBlIEJ1aWxkU2NoZW1hT3B0aW9ucyA9IHtcbiAgYWxsb3dJREZpZWxkPzogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlPzogYm9vbGVhblxuICBkcmFmdHNFbmFibGVkPzogYm9vbGVhblxuICBpbmRleFNvcnRhYmxlRmllbGRzPzogYm9vbGVhblxuICBvcHRpb25zPzogU2NoZW1hT3B0aW9uc1xufVxuXG50eXBlIEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gKFxuICBmaWVsZDogRmllbGQsXG4gIHNjaGVtYTogU2NoZW1hLFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4pID0+IHZvaWRcblxuY29uc3QgZm9ybWF0QmFzZVNjaGVtYSA9IChmaWVsZDogRmllbGRBZmZlY3RpbmdEYXRhLCBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucykgPT4ge1xuICBjb25zdCB7IGRpc2FibGVVbmlxdWUsIGRyYWZ0c0VuYWJsZWQsIGluZGV4U29ydGFibGVGaWVsZHMgfSA9IGJ1aWxkU2NoZW1hT3B0aW9uc1xuICBjb25zdCBzY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgIGluZGV4OiBmaWVsZC5pbmRleCB8fCAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBpbmRleFNvcnRhYmxlRmllbGRzIHx8IGZhbHNlLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB1bmlxdWU6ICghZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHx8IGZhbHNlLFxuICB9XG5cbiAgaWYgKFxuICAgIHNjaGVtYS51bmlxdWUgJiZcbiAgICAoZmllbGQubG9jYWxpemVkIHx8XG4gICAgICBkcmFmdHNFbmFibGVkIHx8XG4gICAgICAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ2dyb3VwJyAmJlxuICAgICAgICBmaWVsZC50eXBlICE9PSAndGFiJyAmJlxuICAgICAgICBmaWVsZC5yZXF1aXJlZCAhPT0gdHJ1ZSkpXG4gICkge1xuICAgIHNjaGVtYS5zcGFyc2UgPSB0cnVlXG4gIH1cblxuICBpZiAoZmllbGQuaGlkZGVuKSB7XG4gICAgc2NoZW1hLmhpZGRlbiA9IHRydWVcbiAgfVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgbG9jYWxpemVTY2hlbWEgPSAoXG4gIGVudGl0eTogTm9uUHJlc2VudGF0aW9uYWxGaWVsZCB8IFRhYixcbiAgc2NoZW1hLFxuICBsb2NhbGl6YXRpb246IFNhbml0aXplZExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlLFxuKSA9PiB7XG4gIGlmIChmaWVsZElzTG9jYWxpemVkKGVudGl0eSkgJiYgbG9jYWxpemF0aW9uICYmIEFycmF5LmlzQXJyYXkobG9jYWxpemF0aW9uLmxvY2FsZXMpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoXG4gICAgICAgIChsb2NhbGVTY2hlbWEsIGxvY2FsZSkgPT4gKHtcbiAgICAgICAgICAuLi5sb2NhbGVTY2hlbWEsXG4gICAgICAgICAgW2xvY2FsZV06IHNjaGVtYSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBidWlsZFNjaGVtYSA9IChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGNvbmZpZ0ZpZWxkczogRmllbGRbXSxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7fSxcbik6IFNjaGVtYSA9PiB7XG4gIGNvbnN0IHsgYWxsb3dJREZpZWxkLCBvcHRpb25zIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgbGV0IGZpZWxkcyA9IHt9XG5cbiAgbGV0IHNjaGVtYUZpZWxkcyA9IGNvbmZpZ0ZpZWxkc1xuXG4gIGlmICghYWxsb3dJREZpZWxkKSB7XG4gICAgY29uc3QgaWRGaWVsZCA9IHNjaGVtYUZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcbiAgICBpZiAoaWRGaWVsZCkge1xuICAgICAgZmllbGRzID0ge1xuICAgICAgICBfaWQ6IGlkRmllbGQudHlwZSA9PT0gJ251bWJlcicgPyBOdW1iZXIgOiBTdHJpbmcsXG4gICAgICB9XG4gICAgICBzY2hlbWFGaWVsZHMgPSBzY2hlbWFGaWVsZHMuZmlsdGVyKFxuICAgICAgICAoZmllbGQpID0+ICEoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJyksXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NoZW1hID0gbmV3IG1vbmdvb3NlLlNjaGVtYShmaWVsZHMsIG9wdGlvbnMpXG5cbiAgc2NoZW1hRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgaWYgKCFmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5KGZpZWxkKSkge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtmaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoZmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgZmllbGRUb1NjaGVtYU1hcDogUmVjb3JkPHN0cmluZywgRmllbGRTY2hlbWFHZW5lcmF0b3I+ID0ge1xuICBhcnJheTogKFxuICAgIGZpZWxkOiBBcnJheUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFtcbiAgICAgICAgYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgICBhbGxvd0lERmllbGQ6IHRydWUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBibG9ja3M6IChcbiAgICBmaWVsZDogQmxvY2tGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZmllbGRTY2hlbWEgPSB7XG4gICAgICB0eXBlOiBbbmV3IG1vbmdvb3NlLlNjaGVtYSh7fSwgeyBfaWQ6IGZhbHNlLCBkaXNjcmltaW5hdG9yS2V5OiAnYmxvY2tUeXBlJyB9KV0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBmaWVsZFNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGZpZWxkLmJsb2Nrcy5mb3JFYWNoKChibG9ja0l0ZW06IEJsb2NrKSA9PiB7XG4gICAgICBjb25zdCBibG9ja1NjaGVtYSA9IG5ldyBtb25nb29zZS5TY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgaWQ6IGZhbHNlIH0pXG5cbiAgICAgIGJsb2NrSXRlbS5maWVsZHMuZm9yRWFjaCgoYmxvY2tGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW2Jsb2NrRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgICAgYWRkRmllbGRTY2hlbWEoYmxvY2tGaWVsZCwgYmxvY2tTY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5mb3JFYWNoKChsb2NhbGVDb2RlKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICAgIHNjaGVtYS5wYXRoKGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlQ29kZX1gKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQb3NzaWJsZSBpbmNvcnJlY3QgdHlwaW5nIGluIG1vbmdvb3NlIHR5cGVzLCB0aGlzIHdvcmtzXG4gICAgICAgIHNjaGVtYS5wYXRoKGZpZWxkLm5hbWUpLmRpc2NyaW1pbmF0b3IoYmxvY2tJdGVtLnNsdWcsIGJsb2NrU2NoZW1hKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGNoZWNrYm94OiAoXG4gICAgZmllbGQ6IENoZWNrYm94RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IEJvb2xlYW4gfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBjb2RlOiAoXG4gICAgZmllbGQ6IENvZGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29sbGFwc2libGU6IChcbiAgICBmaWVsZDogQ29sbGFwc2libGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgZmllbGQuZmllbGRzLmZvckVhY2goKHN1YkZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoc3ViRmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgZGF0ZTogKFxuICAgIGZpZWxkOiBEYXRlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IERhdGUgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBlbWFpbDogKFxuICAgIGZpZWxkOiBFbWFpbEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBncm91cDogKFxuICAgIGZpZWxkOiBHcm91cEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRCYXNlU2NoZW1hID0gZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKVxuXG4gICAgLy8gY2FycnkgaW5kZXhTb3J0YWJsZUZpZWxkcyB0aHJvdWdoIHRvIHZlcnNpb25zIGlmIGRyYWZ0cyBlbmFibGVkXG4gICAgY29uc3QgaW5kZXhTb3J0YWJsZUZpZWxkcyA9XG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuaW5kZXhTb3J0YWJsZUZpZWxkcyAmJlxuICAgICAgZmllbGQubmFtZSA9PT0gJ3ZlcnNpb24nICYmXG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZFxuXG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdHRlZEJhc2VTY2hlbWEsXG4gICAgICB0eXBlOiBidWlsZFNjaGVtYShjb25maWcsIGZpZWxkLmZpZWxkcywge1xuICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgIGluZGV4U29ydGFibGVGaWVsZHMsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGpzb246IChcbiAgICBmaWVsZDogSlNPTkZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIG51bWJlcjogKFxuICAgIGZpZWxkOiBOdW1iZXJGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW051bWJlcl0gOiBOdW1iZXIsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBwb2ludDogKFxuICAgIGZpZWxkOiBQb2ludEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXG4gICAgICB9LFxuICAgICAgY29vcmRpbmF0ZXM6IHtcbiAgICAgICAgdHlwZTogW051bWJlcl0sXG4gICAgICAgIGRlZmF1bHQ6IGZpZWxkLmRlZmF1bHRWYWx1ZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmIChidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUgJiYgZmllbGQubG9jYWxpemVkKSB7XG4gICAgICBiYXNlU2NoZW1hLmNvb3JkaW5hdGVzLnNwYXJzZSA9IHRydWVcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBpZiAoZmllbGQuaW5kZXggPT09IHRydWUgfHwgZmllbGQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaW5kZXhPcHRpb25zOiBJbmRleE9wdGlvbnMgPSB7fVxuICAgICAgaWYgKCFidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgaW5kZXhPcHRpb25zLnNwYXJzZSA9IHRydWVcbiAgICAgICAgaW5kZXhPcHRpb25zLnVuaXF1ZSA9IHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZXMuZm9yRWFjaCgobG9jYWxlKSA9PiB7XG4gICAgICAgICAgc2NoZW1hLmluZGV4KHsgW2Ake2ZpZWxkLm5hbWV9LiR7bG9jYWxlfWBdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjaGVtYS5pbmRleCh7IFtmaWVsZC5uYW1lXTogJzJkc3BoZXJlJyB9LCBpbmRleE9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9LFxuICByYWRpbzogKFxuICAgIGZpZWxkOiBSYWRpb0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGVudW06IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0pLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcmVsYXRpb25zaGlwOiAoXG4gICAgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBoYXNNYW55UmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKVxuICAgIGxldCBzY2hlbWFUb1JldHVybjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICB0eXBlOiBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLnJlZHVjZSgobG9jYWxlcywgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgbGV0IGxvY2FsZVNjaGVtYTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICAgICAgICBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlfS5yZWxhdGlvblRvYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubG9jYWxlcyxcbiAgICAgICAgICAgIFtsb2NhbGVdOiBmaWVsZC5oYXNNYW55ID8geyB0eXBlOiBbbG9jYWxlU2NoZW1hXSwgZGVmYXVsdDogdW5kZWZpbmVkIH0gOiBsb2NhbGVTY2hlbWEsXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7fSksXG4gICAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGhhc01hbnlSZWxhdGlvbnMpIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LnJlbGF0aW9uVG9gLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgICB0eXBlOiBbc2NoZW1hVG9SZXR1cm5dLFxuICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICByZWY6IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IHNjaGVtYVRvUmV0dXJuLFxuICAgIH0pXG4gIH0sXG4gIHJpY2hUZXh0OiAoXG4gICAgZmllbGQ6IFJpY2hUZXh0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcm93OiAoXG4gICAgZmllbGQ6IFJvd0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBzZWxlY3Q6IChcbiAgICBmaWVsZDogU2VsZWN0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgYmFzZVNjaGVtYS5lbnVtLnB1c2gobnVsbClcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZC5oYXNNYW55ID8gW2Jhc2VTY2hlbWFdIDogYmFzZVNjaGVtYSxcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCB0YWIuZmllbGRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFiLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICB0ZXh0OiAoXG4gICAgZmllbGQ6IFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB0ZXh0YXJlYTogKFxuICAgIGZpZWxkOiBUZXh0YXJlYUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJmb3JtYXRCYXNlU2NoZW1hIiwiZmllbGQiLCJidWlsZFNjaGVtYU9wdGlvbnMiLCJkaXNhYmxlVW5pcXVlIiwiZHJhZnRzRW5hYmxlZCIsImluZGV4U29ydGFibGVGaWVsZHMiLCJzY2hlbWEiLCJpbmRleCIsInVuaXF1ZSIsInJlcXVpcmVkIiwibG9jYWxpemVkIiwiZmllbGRBZmZlY3RzRGF0YSIsInR5cGUiLCJzcGFyc2UiLCJoaWRkZW4iLCJsb2NhbGl6ZVNjaGVtYSIsImVudGl0eSIsImxvY2FsaXphdGlvbiIsImZpZWxkSXNMb2NhbGl6ZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsb2NhbGVzIiwibG9jYWxlQ29kZXMiLCJyZWR1Y2UiLCJsb2NhbGVTY2hlbWEiLCJsb2NhbGUiLCJfaWQiLCJidWlsZFNjaGVtYSIsImNvbmZpZyIsImNvbmZpZ0ZpZWxkcyIsImFsbG93SURGaWVsZCIsIm9wdGlvbnMiLCJmaWVsZHMiLCJzY2hlbWFGaWVsZHMiLCJpZEZpZWxkIiwiZmluZCIsIm5hbWUiLCJOdW1iZXIiLCJTdHJpbmciLCJmaWx0ZXIiLCJtb25nb29zZSIsIlNjaGVtYSIsImZvckVhY2giLCJmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5IiwiYWRkRmllbGRTY2hlbWEiLCJmaWVsZFRvU2NoZW1hTWFwIiwiYXJyYXkiLCJiYXNlU2NoZW1hIiwiaWQiLCJtaW5pbWl6ZSIsImRlZmF1bHQiLCJ1bmRlZmluZWQiLCJhZGQiLCJibG9ja3MiLCJmaWVsZFNjaGVtYSIsImRpc2NyaW1pbmF0b3JLZXkiLCJibG9ja0l0ZW0iLCJibG9ja1NjaGVtYSIsImJsb2NrRmllbGQiLCJsb2NhbGVDb2RlIiwicGF0aCIsImRpc2NyaW1pbmF0b3IiLCJzbHVnIiwiY2hlY2tib3giLCJCb29sZWFuIiwiY29kZSIsImNvbGxhcHNpYmxlIiwic3ViRmllbGQiLCJkYXRlIiwiRGF0ZSIsImVtYWlsIiwiZ3JvdXAiLCJmb3JtYXR0ZWRCYXNlU2NoZW1hIiwianNvbiIsIlR5cGVzIiwiTWl4ZWQiLCJudW1iZXIiLCJoYXNNYW55IiwicG9pbnQiLCJlbnVtIiwiY29vcmRpbmF0ZXMiLCJkZWZhdWx0VmFsdWUiLCJpbmRleE9wdGlvbnMiLCJyYWRpbyIsIm1hcCIsIm9wdGlvbiIsInZhbHVlIiwicmVsYXRpb25zaGlwIiwiaGFzTWFueVJlbGF0aW9ucyIsInJlbGF0aW9uVG8iLCJzY2hlbWFUb1JldHVybiIsInJlZlBhdGgiLCJyZWYiLCJyaWNoVGV4dCIsInJvdyIsInNlbGVjdCIsInB1c2giLCJ0YWJzIiwidGFiIiwidGFiSGFzTmFtZSIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCJdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9ELEdBQ3BELHlDQUF5QyxHQUN6QywwREFBMEQ7Ozs7K0JBeWxCMUQ7OztlQUFBOzs7aUVBMWpCcUI7dUJBTWQ7Ozs7OztBQWlCUCxNQUFNQSxtQkFBbUIsQ0FBQ0MsT0FBMkJDO0lBQ25ELE1BQU0sRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLG1CQUFtQixFQUFFLEdBQUdIO0lBQzlELE1BQU1JLFNBQXFDO1FBQ3pDQyxPQUFPTixNQUFNTSxLQUFLLElBQUssQ0FBQ0osaUJBQWlCRixNQUFNTyxNQUFNLElBQUtILHVCQUF1QjtRQUNqRkksVUFBVTtRQUNWRCxRQUFRLEFBQUMsQ0FBQ0wsaUJBQWlCRixNQUFNTyxNQUFNLElBQUs7SUFDOUM7SUFFQSxJQUNFRixPQUFPRSxNQUFNLElBQ1pQLENBQUFBLE1BQU1TLFNBQVMsSUFDZE4saUJBQ0NPLElBQUFBLHVCQUFnQixFQUFDVixVQUNoQkEsTUFBTVcsSUFBSSxLQUFLLFdBQ2ZYLE1BQU1XLElBQUksS0FBSyxTQUNmWCxNQUFNUSxRQUFRLEtBQUssSUFBSSxHQUMzQjtRQUNBSCxPQUFPTyxNQUFNLEdBQUc7SUFDbEI7SUFFQSxJQUFJWixNQUFNYSxNQUFNLEVBQUU7UUFDaEJSLE9BQU9RLE1BQU0sR0FBRztJQUNsQjtJQUVBLE9BQU9SO0FBQ1Q7QUFFQSxNQUFNUyxpQkFBaUIsQ0FDckJDLFFBQ0FWLFFBQ0FXO0lBRUEsSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNGLFdBQVdDLGdC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
|
|
430
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmltcG9ydCB0eXBlIHsgSW5kZXhPcHRpb25zLCBTY2hlbWEsIFNjaGVtYU9wdGlvbnMsIFNjaGVtYVR5cGVPcHRpb25zIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZywgU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgdHlwZSB7XG4gIEFycmF5RmllbGQsXG4gIEJsb2NrLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgR3JvdXBGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOb25QcmVzZW50YXRpb25hbEZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJpY2hUZXh0RmllbGQsXG4gIFJvd0ZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGFiLFxuICBUYWJzRmllbGQsXG4gIFRleHRGaWVsZCxcbiAgVGV4dGFyZWFGaWVsZCxcbiAgVXBsb2FkRmllbGQsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBtb25nb29zZSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB7XG4gIGZpZWxkQWZmZWN0c0RhdGEsXG4gIGZpZWxkSXNMb2NhbGl6ZWQsXG4gIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHksXG4gIHRhYkhhc05hbWUsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmV4cG9ydCB0eXBlIEJ1aWxkU2NoZW1hT3B0aW9ucyA9IHtcbiAgYWxsb3dJREZpZWxkPzogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlPzogYm9vbGVhblxuICBkcmFmdHNFbmFibGVkPzogYm9vbGVhblxuICBpbmRleFNvcnRhYmxlRmllbGRzPzogYm9vbGVhblxuICBvcHRpb25zPzogU2NoZW1hT3B0aW9uc1xufVxuXG50eXBlIEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gKFxuICBmaWVsZDogRmllbGQsXG4gIHNjaGVtYTogU2NoZW1hLFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4pID0+IHZvaWRcblxuY29uc3QgZm9ybWF0QmFzZVNjaGVtYSA9IChmaWVsZDogRmllbGRBZmZlY3RpbmdEYXRhLCBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucykgPT4ge1xuICBjb25zdCB7IGRpc2FibGVVbmlxdWUsIGRyYWZ0c0VuYWJsZWQsIGluZGV4U29ydGFibGVGaWVsZHMgfSA9IGJ1aWxkU2NoZW1hT3B0aW9uc1xuICBjb25zdCBzY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgIGluZGV4OiBmaWVsZC5pbmRleCB8fCAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBpbmRleFNvcnRhYmxlRmllbGRzIHx8IGZhbHNlLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB1bmlxdWU6ICghZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHx8IGZhbHNlLFxuICB9XG5cbiAgaWYgKFxuICAgIHNjaGVtYS51bmlxdWUgJiZcbiAgICAoZmllbGQubG9jYWxpemVkIHx8XG4gICAgICBkcmFmdHNFbmFibGVkIHx8XG4gICAgICAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ2dyb3VwJyAmJlxuICAgICAgICBmaWVsZC50eXBlICE9PSAndGFiJyAmJlxuICAgICAgICBmaWVsZC5yZXF1aXJlZCAhPT0gdHJ1ZSkpXG4gICkge1xuICAgIHNjaGVtYS5zcGFyc2UgPSB0cnVlXG4gIH1cblxuICBpZiAoZmllbGQuaGlkZGVuKSB7XG4gICAgc2NoZW1hLmhpZGRlbiA9IHRydWVcbiAgfVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgbG9jYWxpemVTY2hlbWEgPSAoXG4gIGVudGl0eTogTm9uUHJlc2VudGF0aW9uYWxGaWVsZCB8IFRhYixcbiAgc2NoZW1hLFxuICBsb2NhbGl6YXRpb246IFNhbml0aXplZExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlLFxuKSA9PiB7XG4gIGlmIChmaWVsZElzTG9jYWxpemVkKGVudGl0eSkgJiYgbG9jYWxpemF0aW9uICYmIEFycmF5LmlzQXJyYXkobG9jYWxpemF0aW9uLmxvY2FsZXMpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoXG4gICAgICAgIChsb2NhbGVTY2hlbWEsIGxvY2FsZSkgPT4gKHtcbiAgICAgICAgICAuLi5sb2NhbGVTY2hlbWEsXG4gICAgICAgICAgW2xvY2FsZV06IHNjaGVtYSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBidWlsZFNjaGVtYSA9IChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGNvbmZpZ0ZpZWxkczogRmllbGRbXSxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7fSxcbik6IFNjaGVtYSA9PiB7XG4gIGNvbnN0IHsgYWxsb3dJREZpZWxkLCBvcHRpb25zIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgbGV0IGZpZWxkcyA9IHt9XG5cbiAgbGV0IHNjaGVtYUZpZWxkcyA9IGNvbmZpZ0ZpZWxkc1xuXG4gIGlmICghYWxsb3dJREZpZWxkKSB7XG4gICAgY29uc3QgaWRGaWVsZCA9IHNjaGVtYUZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcbiAgICBpZiAoaWRGaWVsZCkge1xuICAgICAgZmllbGRzID0ge1xuICAgICAgICBfaWQ6IGlkRmllbGQudHlwZSA9PT0gJ251bWJlcicgPyBOdW1iZXIgOiBTdHJpbmcsXG4gICAgICB9XG4gICAgICBzY2hlbWFGaWVsZHMgPSBzY2hlbWFGaWVsZHMuZmlsdGVyKFxuICAgICAgICAoZmllbGQpID0+ICEoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJyksXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NoZW1hID0gbmV3IG1vbmdvb3NlLlNjaGVtYShmaWVsZHMsIG9wdGlvbnMpXG5cbiAgc2NoZW1hRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgaWYgKCFmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5KGZpZWxkKSkge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtmaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoZmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgZmllbGRUb1NjaGVtYU1hcDogUmVjb3JkPHN0cmluZywgRmllbGRTY2hlbWFHZW5lcmF0b3I+ID0ge1xuICBhcnJheTogKFxuICAgIGZpZWxkOiBBcnJheUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFtcbiAgICAgICAgYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgICBhbGxvd0lERmllbGQ6IHRydWUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBibG9ja3M6IChcbiAgICBmaWVsZDogQmxvY2tGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZmllbGRTY2hlbWEgPSB7XG4gICAgICB0eXBlOiBbbmV3IG1vbmdvb3NlLlNjaGVtYSh7fSwgeyBfaWQ6IGZhbHNlLCBkaXNjcmltaW5hdG9yS2V5OiAnYmxvY2tUeXBlJyB9KV0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBmaWVsZFNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGZpZWxkLmJsb2Nrcy5mb3JFYWNoKChibG9ja0l0ZW06IEJsb2NrKSA9PiB7XG4gICAgICBjb25zdCBibG9ja1NjaGVtYSA9IG5ldyBtb25nb29zZS5TY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgaWQ6IGZhbHNlIH0pXG5cbiAgICAgIGJsb2NrSXRlbS5maWVsZHMuZm9yRWFjaCgoYmxvY2tGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW2Jsb2NrRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgICAgYWRkRmllbGRTY2hlbWEoYmxvY2tGaWVsZCwgYmxvY2tTY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5mb3JFYWNoKChsb2NhbGVDb2RlKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICAgIHNjaGVtYS5wYXRoKGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlQ29kZX1gKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQb3NzaWJsZSBpbmNvcnJlY3QgdHlwaW5nIGluIG1vbmdvb3NlIHR5cGVzLCB0aGlzIHdvcmtzXG4gICAgICAgIHNjaGVtYS5wYXRoKGZpZWxkLm5hbWUpLmRpc2NyaW1pbmF0b3IoYmxvY2tJdGVtLnNsdWcsIGJsb2NrU2NoZW1hKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGNoZWNrYm94OiAoXG4gICAgZmllbGQ6IENoZWNrYm94RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IEJvb2xlYW4gfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBjb2RlOiAoXG4gICAgZmllbGQ6IENvZGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29sbGFwc2libGU6IChcbiAgICBmaWVsZDogQ29sbGFwc2libGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgZmllbGQuZmllbGRzLmZvckVhY2goKHN1YkZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoc3ViRmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgZGF0ZTogKFxuICAgIGZpZWxkOiBEYXRlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IERhdGUgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBlbWFpbDogKFxuICAgIGZpZWxkOiBFbWFpbEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBncm91cDogKFxuICAgIGZpZWxkOiBHcm91cEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRCYXNlU2NoZW1hID0gZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKVxuXG4gICAgLy8gY2FycnkgaW5kZXhTb3J0YWJsZUZpZWxkcyB0aHJvdWdoIHRvIHZlcnNpb25zIGlmIGRyYWZ0cyBlbmFibGVkXG4gICAgY29uc3QgaW5kZXhTb3J0YWJsZUZpZWxkcyA9XG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuaW5kZXhTb3J0YWJsZUZpZWxkcyAmJlxuICAgICAgZmllbGQubmFtZSA9PT0gJ3ZlcnNpb24nICYmXG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZFxuXG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdHRlZEJhc2VTY2hlbWEsXG4gICAgICB0eXBlOiBidWlsZFNjaGVtYShjb25maWcsIGZpZWxkLmZpZWxkcywge1xuICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgIGluZGV4U29ydGFibGVGaWVsZHMsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGpzb246IChcbiAgICBmaWVsZDogSlNPTkZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIG51bWJlcjogKFxuICAgIGZpZWxkOiBOdW1iZXJGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW051bWJlcl0gOiBOdW1iZXIsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBwb2ludDogKFxuICAgIGZpZWxkOiBQb2ludEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXG4gICAgICB9LFxuICAgICAgY29vcmRpbmF0ZXM6IHtcbiAgICAgICAgdHlwZTogW051bWJlcl0sXG4gICAgICAgIGRlZmF1bHQ6IGZpZWxkLmRlZmF1bHRWYWx1ZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmIChidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUgJiYgZmllbGQubG9jYWxpemVkKSB7XG4gICAgICBiYXNlU2NoZW1hLmNvb3JkaW5hdGVzLnNwYXJzZSA9IHRydWVcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBpZiAoZmllbGQuaW5kZXggPT09IHRydWUgfHwgZmllbGQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaW5kZXhPcHRpb25zOiBJbmRleE9wdGlvbnMgPSB7fVxuICAgICAgaWYgKCFidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgaW5kZXhPcHRpb25zLnNwYXJzZSA9IHRydWVcbiAgICAgICAgaW5kZXhPcHRpb25zLnVuaXF1ZSA9IHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZXMuZm9yRWFjaCgobG9jYWxlKSA9PiB7XG4gICAgICAgICAgc2NoZW1hLmluZGV4KHsgW2Ake2ZpZWxkLm5hbWV9LiR7bG9jYWxlfWBdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjaGVtYS5pbmRleCh7IFtmaWVsZC5uYW1lXTogJzJkc3BoZXJlJyB9LCBpbmRleE9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9LFxuICByYWRpbzogKFxuICAgIGZpZWxkOiBSYWRpb0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGVudW06IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0pLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcmVsYXRpb25zaGlwOiAoXG4gICAgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBoYXNNYW55UmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKVxuICAgIGxldCBzY2hlbWFUb1JldHVybjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICB0eXBlOiBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLnJlZHVjZSgobG9jYWxlcywgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgbGV0IGxvY2FsZVNjaGVtYTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICAgICAgICBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlfS5yZWxhdGlvblRvYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubG9jYWxlcyxcbiAgICAgICAgICAgIFtsb2NhbGVdOiBmaWVsZC5oYXNNYW55ID8geyB0eXBlOiBbbG9jYWxlU2NoZW1hXSwgZGVmYXVsdDogdW5kZWZpbmVkIH0gOiBsb2NhbGVTY2hlbWEsXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7fSksXG4gICAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGhhc01hbnlSZWxhdGlvbnMpIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LnJlbGF0aW9uVG9gLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgICB0eXBlOiBbc2NoZW1hVG9SZXR1cm5dLFxuICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICByZWY6IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IHNjaGVtYVRvUmV0dXJuLFxuICAgIH0pXG4gIH0sXG4gIHJpY2hUZXh0OiAoXG4gICAgZmllbGQ6IFJpY2hUZXh0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcm93OiAoXG4gICAgZmllbGQ6IFJvd0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBzZWxlY3Q6IChcbiAgICBmaWVsZDogU2VsZWN0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgYmFzZVNjaGVtYS5lbnVtLnB1c2gobnVsbClcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZC5oYXNNYW55ID8gW2Jhc2VTY2hlbWFdIDogYmFzZVNjaGVtYSxcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCB0YWIuZmllbGRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFiLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICB0ZXh0OiAoXG4gICAgZmllbGQ6IFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB0ZXh0YXJlYTogKFxuICAgIGZpZWxkOiBUZXh0YXJlYUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJtb25nb29zZSIsImZpZWxkQWZmZWN0c0RhdGEiLCJmaWVsZElzTG9jYWxpemVkIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSIsInRhYkhhc05hbWUiLCJmb3JtYXRCYXNlU2NoZW1hIiwiZmllbGQiLCJidWlsZFNjaGVtYU9wdGlvbnMiLCJkaXNhYmxlVW5pcXVlIiwiZHJhZnRzRW5hYmxlZCIsImluZGV4U29ydGFibGVGaWVsZHMiLCJzY2hlbWEiLCJpbmRleCIsInVuaXF1ZSIsInJlcXVpcmVkIiwibG9jYWxpemVkIiwidHlwZSIsInNwYXJzZSIsImhpZGRlbiIsImxvY2FsaXplU2NoZW1hIiwiZW50aXR5IiwibG9jYWxpemF0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwibG9jYWxlcyIsImxvY2FsZUNvZGVzIiwicmVkdWNlIiwibG9jYWxlU2NoZW1hIiwibG9jYWxlIiwiX2lkIiwiYnVpbGRTY2hlbWEiLCJjb25maWciLCJjb25maWdGaWVsZHMiLCJhbGxvd0lERmllbGQiLCJvcHRpb25zIiwiZmllbGRzIiwic2NoZW1hRmllbGRzIiwiaWRGaWVsZCIsImZpbmQiLCJuYW1lIiwiTnVtYmVyIiwiU3RyaW5nIiwiZmlsdGVyIiwiU2NoZW1hIiwiZm9yRWFjaCIsImFkZEZpZWxkU2NoZW1hIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5IiwiYmFzZVNjaGVtYSIsImlkIiwibWluaW1pemUiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwiYWRkIiwiYmxvY2tzIiwiZmllbGRTY2hlbWEiLCJkaXNjcmltaW5hdG9yS2V5IiwiYmxvY2tJdGVtIiwiYmxvY2tTY2hlbWEiLCJibG9ja0ZpZWxkIiwibG9jYWxlQ29kZSIsInBhdGgiLCJkaXNjcmltaW5hdG9yIiwic2x1ZyIsImNoZWNrYm94IiwiQm9vbGVhbiIsImNvZGUiLCJjb2xsYXBzaWJsZSIsInN1YkZpZWxkIiwiZGF0ZSIsIkRhdGUiLCJlbWFpbCIsImdyb3VwIiwiZm9ybWF0dGVkQmFzZVNjaGVtYSIsImpzb24iLCJUeXBlcyIsIk1peGVkIiwibnVtYmVyIiwiaGFzTWFueSIsInBvaW50IiwiZW51bSIsImNvb3JkaW5hdGVzIiwiZGVmYXVsdFZhbHVlIiwiaW5kZXhPcHRpb25zIiwicmFkaW8iLCJtYXAiLCJvcHRpb24iLCJ2YWx1ZSIsInJlbGF0aW9uc2hpcCIsImhhc01hbnlSZWxhdGlvbnMiLCJyZWxhdGlvblRvIiwic2NoZW1hVG9SZXR1cm4iLCJyZWZQYXRoIiwicmVmIiwicmljaFRleHQiLCJyb3ciLCJzZWxlY3QiLCJwdXNoIiwidGFicyIsInRhYiIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCJdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9ELEdBQ3BELHlDQUF5QyxHQUN6QywwREFBMEQsR0ErQjFELE9BQU9BLGNBQWMsV0FBVTtBQUMvQixTQUNFQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixFQUNoQkMseUJBQXlCLEVBQ3pCQyxVQUFVLFFBQ0wsZ0JBQWU7QUFpQnRCLE1BQU1DLG1CQUFtQixDQUFDQyxPQUEyQkM7SUFDbkQsTUFBTSxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsbUJBQW1CLEVBQUUsR0FBR0g7SUFDOUQsTUFBTUksU0FBcUM7UUFDekNDLE9BQU9OLE1BQU1NLEtBQUssSUFBSyxDQUFDSixpQkFBaUJGLE1BQU1PLE1BQU0sSUFBS0gsdUJBQXVCO1FBQ2pGSSxVQUFVO1FBQ1ZELFFBQVEsQUFBQyxDQUFDTCxpQkFBaUJGLE1BQU1PLE1BQU0sSUFBSztJQUM5QztJQUVBLElBQ0VGLE9BQU9FLE1BQU0sSUFDWlAsQ0FBQUEsTUFBTVMsU0FBUyxJQUNkTixpQkFDQ1IsaUJBQWlCSyxVQUNoQkEsTUFBTVUsSUFBSSxLQUFLLFdBQ2ZWLE1BQU1VLElBQUksS0FBSyxTQUNmVixNQUFNUSxRQUFRLEtBQUssSUFBSSxHQUMzQjtRQUNBSCxPQUFPTSxNQUFNLEdBQUc7SUFDbEI7SUFFQSxJQUFJWCxNQUFNWSxNQUFNLEVBQUU7UUFDaEJQLE9BQU9PLE1BQU0sR0FBRztJQUNsQjtJQUVBLE9BQU9QO0FBQ1Q7QUFFQSxNQUFNUSxpQkFBaUIsQ0FDckJDLFFBQ0FULFFB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
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "buildAndOrConditions", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return buildAndOrConditions;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _parseParams = require("./parseParams");
|
|
12
|
-
async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale, payload, where }) {
|
|
1
|
+
import { parseParams } from './parseParams';
|
|
2
|
+
export async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale, payload, where }) {
|
|
13
3
|
const completedConditions = [];
|
|
14
4
|
// Loop over all AND / OR operations and add them to the AND / OR query param
|
|
15
5
|
// Operations should come through as an array
|
|
@@ -18,7 +8,7 @@ async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale
|
|
|
18
8
|
// If the operation is properly formatted as an object
|
|
19
9
|
if (typeof condition === 'object') {
|
|
20
10
|
// eslint-disable-next-line no-await-in-loop
|
|
21
|
-
const result = await
|
|
11
|
+
const result = await parseParams({
|
|
22
12
|
collectionSlug,
|
|
23
13
|
fields,
|
|
24
14
|
globalSlug,
|
|
@@ -34,4 +24,4 @@ async function buildAndOrConditions({ collectionSlug, fields, globalSlug, locale
|
|
|
34
24
|
return completedConditions;
|
|
35
25
|
}
|
|
36
26
|
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkQW5kT3JDb25kaXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBXaGVyZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHBhcnNlUGFyYW1zIH0gZnJvbSAnLi9wYXJzZVBhcmFtcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgY29sbGVjdGlvblNsdWcsXG4gIGZpZWxkcyxcbiAgZ2xvYmFsU2x1ZyxcbiAgbG9jYWxlLFxuICBwYXlsb2FkLFxuICB3aGVyZSxcbn06IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGdsb2JhbFNsdWc/OiBzdHJpbmdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIHBheWxvYWQ6IFBheWxvYWRcbiAgd2hlcmU6IFdoZXJlW11cbn0pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkQW5kT3JDb25kaXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBXaGVyZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHBhcnNlUGFyYW1zIH0gZnJvbSAnLi9wYXJzZVBhcmFtcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgY29sbGVjdGlvblNsdWcsXG4gIGZpZWxkcyxcbiAgZ2xvYmFsU2x1ZyxcbiAgbG9jYWxlLFxuICBwYXlsb2FkLFxuICB3aGVyZSxcbn06IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGdsb2JhbFNsdWc/OiBzdHJpbmdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIHBheWxvYWQ6IFBheWxvYWRcbiAgd2hlcmU6IFdoZXJlW11cbn0pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+IHtcbiAgY29uc3QgY29tcGxldGVkQ29uZGl0aW9ucyA9IFtdXG4gIC8vIExvb3Agb3ZlciBhbGwgQU5EIC8gT1Igb3BlcmF0aW9ucyBhbmQgYWRkIHRoZW0gdG8gdGhlIEFORCAvIE9SIHF1ZXJ5IHBhcmFtXG4gIC8vIE9wZXJhdGlvbnMgc2hvdWxkIGNvbWUgdGhyb3VnaCBhcyBhbiBhcnJheVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgZm9yIChjb25zdCBjb25kaXRpb24gb2Ygd2hlcmUpIHtcbiAgICAvLyBJZiB0aGUgb3BlcmF0aW9uIGlzIHByb3Blcmx5IGZvcm1hdHRlZCBhcyBhbiBvYmplY3RcbiAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmU6IGNvbmRpdGlvbixcbiAgICAgIH0pXG4gICAgICBpZiAoT2JqZWN0LmtleXMocmVzdWx0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbXBsZXRlZENvbmRpdGlvbnMucHVzaChyZXN1bHQpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjb21wbGV0ZWRDb25kaXRpb25zXG59XG4iXSwibmFtZXMiOlsicGFyc2VQYXJhbXMiLCJidWlsZEFuZE9yQ29uZGl0aW9ucyIsImNvbGxlY3Rpb25TbHVnIiwiZmllbGRzIiwiZ2xvYmFsU2x1ZyIsImxvY2FsZSIsInBheWxvYWQiLCJ3aGVyZSIsImNvbXBsZXRlZENvbmRpdGlvbnMiLCJjb25kaXRpb24iLCJyZXN1bHQiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBR0EsU0FBU0EsV0FBVyxRQUFRLGdCQUFlO0FBRTNDLE9BQU8sZUFBZUMscUJBQXFCLEVBQ3pDQyxjQUFjLEVBQ2RDLE1BQU0sRUFDTkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLE9BQU8sRUFDUEMsS0FBSyxFQVFOO0lBQ0MsTUFBTUMsc0JBQXNCLEVBQUU7SUFDOUIsNkVBQTZFO0lBQzdFLDZDQUE2QztJQUM3QyxnREFBZ0Q7SUFDaEQsS0FBSyxNQUFNQyxhQUFhRixNQUFPO1FBQzdCLHNEQUFzRDtRQUN0RCxJQUFJLE9BQU9FLGNBQWMsVUFBVTtZQUNqQyw0Q0FBNEM7WUFDNUMsTUFBTUMsU0FBUyxNQUFNVixZQUFZO2dCQUMvQkU7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FDO2dCQUNBQyxPQUFPRTtZQUNUO1lBQ0EsSUFBSUUsT0FBT0MsSUFBSSxDQUFDRixRQUFRRyxNQUFNLEdBQUcsR0FBRztnQkFDbENMLG9CQUFvQk0sSUFBSSxDQUFDSjtZQUMzQjtRQUNGO0lBQ0Y7SUFDQSxPQUFPRjtBQUNUIn0=
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _errors = require("payload/errors");
|
|
12
|
-
const _parseParams = require("./parseParams");
|
|
1
|
+
import { QueryError } from 'payload/errors';
|
|
2
|
+
import { parseParams } from './parseParams';
|
|
13
3
|
// This plugin asynchronously builds a list of Mongoose query constraints
|
|
14
4
|
// which can then be used in subsequent Mongoose queries.
|
|
15
5
|
const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
|
|
@@ -28,7 +18,7 @@ const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
|
|
|
28
18
|
}
|
|
29
19
|
}
|
|
30
20
|
const errors = [];
|
|
31
|
-
const result = await
|
|
21
|
+
const result = await parseParams({
|
|
32
22
|
collectionSlug,
|
|
33
23
|
fields,
|
|
34
24
|
globalSlug,
|
|
@@ -37,13 +27,13 @@ const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
|
|
|
37
27
|
where
|
|
38
28
|
});
|
|
39
29
|
if (errors.length > 0) {
|
|
40
|
-
throw new
|
|
30
|
+
throw new QueryError(errors);
|
|
41
31
|
}
|
|
42
32
|
return result;
|
|
43
33
|
}
|
|
44
34
|
modifiedSchema.statics.buildQuery = buildQuery;
|
|
45
35
|
};
|
|
46
36
|
};
|
|
47
|
-
|
|
37
|
+
export default getBuildQueryPlugin;
|
|
48
38
|
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuXG5pbXBvcnQgeyBwYXJzZVBhcmFtcyB9IGZyb20gJy4vcGFyc2VQYXJhbXMnXG5cbnR5cGUgR2V0QnVpbGRRdWVyeVBsdWdpbkFyZ3MgPSB7XG4gIGNvbGxlY3Rpb25TbHVnPzogc3RyaW5nXG4gIHZlcnNpb25zRmllbGRzPzogRmllbGRbXVxufVxuXG5leHBvcnQgdHlwZSBCdWlsZFF1ZXJ5QXJncyA9IHtcbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICB3aGVyZTogV2hlcmVcbn1cblxuLy8gVGhpcyBwbHVnaW4gYXN5bmNocm9ub3VzbHkgYnVpbGRzIGEgbGlzdCBvZiBNb25nb29zZSBxdWVyeSBjb25zdHJhaW50c1xuLy8gd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCBpbiBzdWJzZXF1ZW50IE1vbmdvb3NlIHF1ZXJpZXMuXG5jb25zdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luID0gKHsgY29sbGVjdGlvblNsdWcsIHZlcnNpb25zRmllbGRzIH06IEdldEJ1aWxkUXVlcnlQbHVnaW5BcmdzID0ge30pID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGJ1aWxkUXVlcnlQbHVnaW4oc2NoZW1hKSB7XG4gICAgY29uc3QgbW9kaWZpZWRTY2hlbWEgPSBzY2hlbWFcbiAgICBhc3luYyBmdW5jdGlvbiBidWlsZFF1ZXJ5KHtcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBsb2NhbGUsXG4gICAgICBwYXlsb2FkLFxuICAgICAgd2hlcmUsXG4gICAgfTogQnVpbGRRdWVyeUFyZ3MpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgICBsZXQgZmllbGRzID0gdmVyc2lvbnNGaWVsZHNcbiAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgIGlmIChnbG9iYWxTbHVnKSB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gcGF5bG9hZC5nbG9iYWxzLmNvbmZpZy5maW5kKCh7IHNsdWcgfSkgPT4gc2x1ZyA9PT0gZ2xvYmFsU2x1ZylcbiAgICAgICAgICBmaWVsZHMgPSBnbG9iYWxDb25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbGxlY3Rpb25TbHVnKSB7XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbkNvbmZpZyA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddLmNvbmZpZ1xuICAgICAgICAgIGZpZWxkcyA9IGNvbGxlY3Rpb25Db25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGVycm9ycyA9IFtdXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmUsXG4gICAgICB9KVxuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuXG5pbXBvcnQgeyBwYXJzZVBhcmFtcyB9IGZyb20gJy4vcGFyc2VQYXJhbXMnXG5cbnR5cGUgR2V0QnVpbGRRdWVyeVBsdWdpbkFyZ3MgPSB7XG4gIGNvbGxlY3Rpb25TbHVnPzogc3RyaW5nXG4gIHZlcnNpb25zRmllbGRzPzogRmllbGRbXVxufVxuXG5leHBvcnQgdHlwZSBCdWlsZFF1ZXJ5QXJncyA9IHtcbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICB3aGVyZTogV2hlcmVcbn1cblxuLy8gVGhpcyBwbHVnaW4gYXN5bmNocm9ub3VzbHkgYnVpbGRzIGEgbGlzdCBvZiBNb25nb29zZSBxdWVyeSBjb25zdHJhaW50c1xuLy8gd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCBpbiBzdWJzZXF1ZW50IE1vbmdvb3NlIHF1ZXJpZXMuXG5jb25zdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luID0gKHsgY29sbGVjdGlvblNsdWcsIHZlcnNpb25zRmllbGRzIH06IEdldEJ1aWxkUXVlcnlQbHVnaW5BcmdzID0ge30pID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGJ1aWxkUXVlcnlQbHVnaW4oc2NoZW1hKSB7XG4gICAgY29uc3QgbW9kaWZpZWRTY2hlbWEgPSBzY2hlbWFcbiAgICBhc3luYyBmdW5jdGlvbiBidWlsZFF1ZXJ5KHtcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBsb2NhbGUsXG4gICAgICBwYXlsb2FkLFxuICAgICAgd2hlcmUsXG4gICAgfTogQnVpbGRRdWVyeUFyZ3MpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgICBsZXQgZmllbGRzID0gdmVyc2lvbnNGaWVsZHNcbiAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgIGlmIChnbG9iYWxTbHVnKSB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gcGF5bG9hZC5nbG9iYWxzLmNvbmZpZy5maW5kKCh7IHNsdWcgfSkgPT4gc2x1ZyA9PT0gZ2xvYmFsU2x1ZylcbiAgICAgICAgICBmaWVsZHMgPSBnbG9iYWxDb25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbGxlY3Rpb25TbHVnKSB7XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbkNvbmZpZyA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddLmNvbmZpZ1xuICAgICAgICAgIGZpZWxkcyA9IGNvbGxlY3Rpb25Db25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGVycm9ycyA9IFtdXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmUsXG4gICAgICB9KVxuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoZXJyb3JzKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICAgIG1vZGlmaWVkU2NoZW1hLnN0YXRpY3MuYnVpbGRRdWVyeSA9IGJ1aWxkUXVlcnlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luXG4iXSwibmFtZXMiOlsiUXVlcnlFcnJvciIsInBhcnNlUGFyYW1zIiwiZ2V0QnVpbGRRdWVyeVBsdWdpbiIsImNvbGxlY3Rpb25TbHVnIiwidmVyc2lvbnNGaWVsZHMiLCJidWlsZFF1ZXJ5UGx1Z2luIiwic2NoZW1hIiwibW9kaWZpZWRTY2hlbWEiLCJidWlsZFF1ZXJ5IiwiZ2xvYmFsU2x1ZyIsImxvY2FsZSIsInBheWxvYWQiLCJ3aGVyZSIsImZpZWxkcyIsImdsb2JhbENvbmZpZyIsImdsb2JhbHMiLCJjb25maWciLCJmaW5kIiwic2x1ZyIsImNvbGxlY3Rpb25Db25maWciLCJjb2xsZWN0aW9ucyIsImVycm9ycyIsInJlc3VsdCIsImxlbmd0aCIsInN0YXRpY3MiXSwibWFwcGluZ3MiOiJBQUdBLFNBQVNBLFVBQVUsUUFBUSxpQkFBZ0I7QUFFM0MsU0FBU0MsV0FBVyxRQUFRLGdCQUFlO0FBYzNDLHlFQUF5RTtBQUN6RSx5REFBeUQ7QUFDekQsTUFBTUMsc0JBQXNCLENBQUMsRUFBRUMsY0FBYyxFQUFFQyxjQUFjLEVBQTJCLEdBQUcsQ0FBQyxDQUFDO0lBQzNGLE9BQU8sU0FBU0MsaUJBQWlCQyxNQUFNO1FBQ3JDLE1BQU1DLGlCQUFpQkQ7UUFDdkIsZUFBZUUsV0FBVyxFQUN4QkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLE9BQU8sRUFDUEMsS0FBSyxFQUNVO1lBQ2YsSUFBSUMsU0FBU1Q7WUFDYixJQUFJLENBQUNTLFFBQVE7Z0JBQ1gsSUFBSUosWUFBWTtvQkFDZCxNQUFNSyxlQUFlSCxRQUFRSSxPQUFPLENBQUNDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsRUFBRUMsSUFBSSxFQUFFLEdBQUtBLFNBQVNUO29CQUN4RUksU0FBU0MsYUFBYUQsTUFBTTtnQkFDOUI7Z0JBQ0EsSUFBSVYsZ0JBQWdCO29CQUNsQixNQUFNZ0IsbUJBQW1CUixRQUFRUyxXQUFXLENBQUNqQixlQUFlLENBQUNhLE1BQU07b0JBQ25FSCxTQUFTTSxpQkFBaUJOLE1BQU07Z0JBQ2xDO1lBQ0Y7WUFDQSxNQUFNUSxTQUFTLEVBQUU7WUFDakIsTUFBTUMsU0FBUyxNQUFNckIsWUFBWTtnQkFDL0JFO2dCQUNBVTtnQkFDQUo7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7WUFDRjtZQUVBLElBQUlTLE9BQU9FLE1BQU0sR0FBRyxHQUFHO2dCQUNyQixNQUFNLElBQUl2QixXQUFXcUI7WUFDdkI7WUFFQSxPQUFPQztRQUNUO1FBQ0FmLGVBQWVpQixPQUFPLENBQUNoQixVQUFVLEdBQUdBO0lBQ3RDO0FBQ0Y7QUFFQSxlQUFlTixvQkFBbUIifQ==
|