@qbs-origin/origin-form 0.8.2 → 0.8.3
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/esm2022/lib/formly/formly-paragraph/formly-paragraph.component.mjs +16 -2
- package/esm2022/lib/model-population.helper.mjs +115 -3
- package/esm2022/lib/models/application.model.mjs +1 -1
- package/esm2022/lib/models/forms.model.mjs +24 -21
- package/esm2022/lib/origin-form.component.mjs +205 -141
- package/esm2022/lib/services/applicationData.service.mjs +15 -8
- package/fesm2022/qbs-origin-origin-form.mjs +367 -167
- package/fesm2022/qbs-origin-origin-form.mjs.map +1 -1
- package/lib/formly/formly-paragraph/formly-paragraph.component.d.ts +1 -0
- package/lib/models/application.model.d.ts +3 -3
- package/lib/models/forms.model.d.ts +3 -0
- package/lib/origin-form.component.d.ts +1 -2
- package/lib/services/applicationData.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -55,14 +55,14 @@ export class AppDataFill {
|
|
|
55
55
|
language: language || '',
|
|
56
56
|
offerId: offerId || '',
|
|
57
57
|
isSubmitted: isSubmitted || false,
|
|
58
|
-
parentAppDataUuid: parentAppDataUuid || ''
|
|
58
|
+
parentAppDataUuid: parentAppDataUuid || ''
|
|
59
59
|
};
|
|
60
60
|
this.flux = flux || [];
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
export class AppData {
|
|
64
64
|
constructor(data) {
|
|
65
|
-
(this.id = data.id ?? undefined), (this.appDataId = data.appDataId || '');
|
|
65
|
+
((this.id = data.id ?? undefined), (this.appDataId = data.appDataId || ''));
|
|
66
66
|
this.appConfigurationId = data.appConfigurationId || 0;
|
|
67
67
|
this.fillData = data.fillData;
|
|
68
68
|
this.initFlowValues = data.initFlowValues;
|
|
@@ -82,7 +82,8 @@ export class FormModelExtenxions {
|
|
|
82
82
|
this.formModel = model;
|
|
83
83
|
}
|
|
84
84
|
addInitFlowValuesItems(items) {
|
|
85
|
-
const initFlowValuesRaw = this.formModel?.generalData
|
|
85
|
+
const initFlowValuesRaw = this.formModel?.generalData
|
|
86
|
+
?.initFlowValues;
|
|
86
87
|
if (initFlowValuesRaw === null || initFlowValuesRaw === undefined) {
|
|
87
88
|
return;
|
|
88
89
|
}
|
|
@@ -135,7 +136,7 @@ export class FormModelExtenxions {
|
|
|
135
136
|
return {
|
|
136
137
|
fieldName: `initFlowValues_${underscorePath}`,
|
|
137
138
|
fieldType: StepControlType.Metadata,
|
|
138
|
-
id: `initFlowValues_${underscorePath}
|
|
139
|
+
id: `initFlowValues_${underscorePath}`
|
|
139
140
|
};
|
|
140
141
|
}
|
|
141
142
|
fluxItems(untilStepIdentifier = undefined) {
|
|
@@ -145,7 +146,7 @@ export class FormModelExtenxions {
|
|
|
145
146
|
items.push({
|
|
146
147
|
fieldName: fieldValue,
|
|
147
148
|
fieldType: StepControlType.Metadata,
|
|
148
|
-
id: `metadata.${fieldValue}
|
|
149
|
+
id: `metadata.${fieldValue}`
|
|
149
150
|
});
|
|
150
151
|
});
|
|
151
152
|
}
|
|
@@ -173,13 +174,13 @@ export class FormModelExtenxions {
|
|
|
173
174
|
StepControlType.Buttons,
|
|
174
175
|
StepControlType.NewRow,
|
|
175
176
|
StepControlType.FluxInfo,
|
|
176
|
-
StepControlType.Paragraph
|
|
177
|
+
StepControlType.Paragraph
|
|
177
178
|
].includes(control.type) == false) {
|
|
178
179
|
items.push({
|
|
179
180
|
fieldName: `${step.name} -> ${section.title} -> ${control.title}`,
|
|
180
181
|
fieldType: control.type,
|
|
181
182
|
manulInputControlType: control.specificControlData?.type,
|
|
182
|
-
id: control.identifier
|
|
183
|
+
id: control.identifier
|
|
183
184
|
});
|
|
184
185
|
}
|
|
185
186
|
});
|
|
@@ -199,7 +200,7 @@ export class FormModelExtenxions {
|
|
|
199
200
|
fieldType: step.type,
|
|
200
201
|
id: document?.documentId
|
|
201
202
|
? `upload.${document.documentId}`
|
|
202
|
-
: `${step.type}.${step.name}
|
|
203
|
+
: `${step.type}.${step.name}`
|
|
203
204
|
});
|
|
204
205
|
});
|
|
205
206
|
}
|
|
@@ -211,7 +212,7 @@ export class FormModelExtenxions {
|
|
|
211
212
|
fieldType: step.type,
|
|
212
213
|
id: document?.id
|
|
213
214
|
? `generate.${document.id}`
|
|
214
|
-
: `${step.type}.${step.name}
|
|
215
|
+
: `${step.type}.${step.name}`
|
|
215
216
|
});
|
|
216
217
|
});
|
|
217
218
|
}
|
|
@@ -223,7 +224,7 @@ export class FormModelExtenxions {
|
|
|
223
224
|
fieldType: step.type,
|
|
224
225
|
id: document?.id
|
|
225
226
|
? `sign.${document.id}`
|
|
226
|
-
: `${step.type}.${step.name}
|
|
227
|
+
: `${step.type}.${step.name}`
|
|
227
228
|
});
|
|
228
229
|
});
|
|
229
230
|
}
|
|
@@ -234,7 +235,7 @@ export class FormModelExtenxions {
|
|
|
234
235
|
fieldType: step.type,
|
|
235
236
|
id: document?.id
|
|
236
237
|
? `system.${document.id}`
|
|
237
|
-
: `${step.type}.${step.name}
|
|
238
|
+
: `${step.type}.${step.name}`
|
|
238
239
|
});
|
|
239
240
|
});
|
|
240
241
|
}
|
|
@@ -250,7 +251,7 @@ export class FormModelExtenxions {
|
|
|
250
251
|
items.push({
|
|
251
252
|
fieldName: `${apiMethod.method} -> ${f.fieldName}`,
|
|
252
253
|
fieldType: StepControlType.ApiMethodField,
|
|
253
|
-
id: f.id
|
|
254
|
+
id: f.id
|
|
254
255
|
});
|
|
255
256
|
});
|
|
256
257
|
}
|
|
@@ -269,7 +270,7 @@ export class FormModelExtenxions {
|
|
|
269
270
|
const allApiItems = [
|
|
270
271
|
...this.formModel.api.getItems,
|
|
271
272
|
...this.formModel.api.validationItems,
|
|
272
|
-
...this.formModel.api.sendItems
|
|
273
|
+
...this.formModel.api.sendItems
|
|
273
274
|
];
|
|
274
275
|
offerMethodsIds.forEach((methodId) => {
|
|
275
276
|
const apiMethod = allApiItems.find((item) => item.id === methodId);
|
|
@@ -278,7 +279,7 @@ export class FormModelExtenxions {
|
|
|
278
279
|
items.push({
|
|
279
280
|
fieldName: `${apiMethod.method} -> ${f.fieldName}`,
|
|
280
281
|
fieldType: FluxType.ViewOffer,
|
|
281
|
-
id: `api_${apiMethod.id} -> ${f.id}
|
|
282
|
+
id: `api_${apiMethod.id} -> ${f.id}`
|
|
282
283
|
});
|
|
283
284
|
});
|
|
284
285
|
}
|
|
@@ -435,7 +436,7 @@ export const initialFormulareState = {
|
|
|
435
436
|
showNameStep: false,
|
|
436
437
|
showAllSteps: false,
|
|
437
438
|
showProgressBar: false,
|
|
438
|
-
initFlowValues: ''
|
|
439
|
+
initFlowValues: ''
|
|
439
440
|
},
|
|
440
441
|
design: {
|
|
441
442
|
fonts: [],
|
|
@@ -451,7 +452,7 @@ export const initialFormulareState = {
|
|
|
451
452
|
marginLeft: '',
|
|
452
453
|
marginRight: '',
|
|
453
454
|
marginTop: '',
|
|
454
|
-
marginBottom: ''
|
|
455
|
+
marginBottom: ''
|
|
455
456
|
},
|
|
456
457
|
flux: [],
|
|
457
458
|
api: { getItems: [], validationItems: [], sendItems: [] },
|
|
@@ -459,16 +460,16 @@ export const initialFormulareState = {
|
|
|
459
460
|
documents: [],
|
|
460
461
|
statuses: [],
|
|
461
462
|
display: {
|
|
462
|
-
sections: []
|
|
463
|
+
sections: []
|
|
463
464
|
},
|
|
464
465
|
generatedCss: {},
|
|
465
466
|
metadataFields: [],
|
|
466
467
|
errors: {},
|
|
467
468
|
applicationMappings: {
|
|
468
469
|
applicationTypeId: 0,
|
|
469
|
-
columnMappings: []
|
|
470
|
+
columnMappings: []
|
|
470
471
|
},
|
|
471
|
-
parentChildConfig: undefined
|
|
472
|
+
parentChildConfig: undefined
|
|
472
473
|
},
|
|
473
474
|
selectedTab: 'Date generale',
|
|
474
475
|
canGetFromProd: false,
|
|
@@ -476,7 +477,7 @@ export const initialFormulareState = {
|
|
|
476
477
|
canPublishInProd: false,
|
|
477
478
|
canPublishInTest: false,
|
|
478
479
|
applicationUuid: '',
|
|
479
|
-
version: ''
|
|
480
|
+
version: ''
|
|
480
481
|
};
|
|
481
482
|
export class PartnerDictionaryMapping {
|
|
482
483
|
}
|
|
@@ -511,6 +512,8 @@ export class FieldsMapping {
|
|
|
511
512
|
export class MethodField {
|
|
512
513
|
constructor() {
|
|
513
514
|
this.manulInputControlType = undefined;
|
|
515
|
+
this.fieldValue = undefined;
|
|
516
|
+
this.expectedValue = undefined;
|
|
514
517
|
}
|
|
515
518
|
}
|
|
516
519
|
export class GetMethodField {
|
|
@@ -656,4 +659,4 @@ export var AppDataStatus;
|
|
|
656
659
|
AppDataStatus[AppDataStatus["new"] = 0] = "new";
|
|
657
660
|
AppDataStatus[AppDataStatus["finished"] = 1] = "finished";
|
|
658
661
|
})(AppDataStatus || (AppDataStatus = {}));
|
|
659
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL21vZGVscy9mb3Jtcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSxjQUFjLENBQUM7QUFHMUUsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNFLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsa0JBQWEsR0FBVyw2QkFBNkIsQ0FBQztRQUN0RCxvQkFBZSxHQUFXLDJEQUEyRCxDQUFDO0lBQ3hGLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxjQUFjO0lBQTNCO1FBQ0UsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFDRSwwQkFBcUIsR0FBa0IsSUFBSSxDQUFDO1FBQzVDLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUN2Qyx1QkFBa0IsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBQ3BFLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxTQUFTO0NBZ0JyQjtBQUVELE1BQU0sT0FBTyxjQUFjO0lBT3pCLFlBQ0UsWUFBb0IsRUFBRSxFQUN0QixZQUFvQixFQUFFLEVBQ3RCLGNBQXNCLEVBQUUsRUFDeEIsVUFBcUIsRUFDckIsWUFBdUI7UUFFdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFB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O0FBQ2QsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFiZWxJbmZvIH0gZnJvbSAnLi9sYWJlbC1pbmZvLm1vZGVsJztcbmltcG9ydCB7IFBhcnRuZXIgfSBmcm9tICcuL3BhcnRuZXIubW9kZWwnO1xuaW1wb3J0IHsgRGljdGlvbmFyeUxhYmVsSW5mbyB9IGZyb20gJy4uL290aGVycy9kaWN0aW9uYXJ5LWxhYmVsLWluZm8nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25NYXBwaW5ncyB9IGZyb20gJy4vYXBwbGljYXRpb24tdHlwZS5tb2RlbCc7XG5pbXBvcnQgeyBDc3NSdWxlcyB9IGZyb20gJy4uL290aGVycy91dGlscyc7XG5pbXBvcnQgeyBGbHV4SGVscGVyIH0gZnJvbSAnLi4vb3RoZXJzL2ZsdXgtaGVscGVyJztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkNvbnRyb2wsIFNlY3Rpb25EYXRhLCBTdGVwRGF0YSB9IGZyb20gJy4vZmx1eC5tb2RlbCc7XG5cblxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkNvbmZpZyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGl0bGVUZW1wbGF0ZTogc3RyaW5nID0gJ1N0YXR1cyB1cGRhdGU6IHtzdGF0dXNOYW1lfSc7XG4gIG1lc3NhZ2VUZW1wbGF0ZTogc3RyaW5nID0gJ1lvdXIgYXBwbGljYXRpb24gc3RhdHVzIGhhcyBiZWVuIHVwZGF0ZWQgdG86IHtzdGF0dXNOYW1lfSc7XG59XG5cbmV4cG9ydCBjbGFzcyBJbmhlcml0ZWRGaWVsZCB7XG4gIGlkOiBzdHJpbmcgPSAnJztcbiAgZmllbGROYW1lOiBzdHJpbmcgPSAnJztcbn1cblxuZXhwb3J0IGNsYXNzIFBhcmVudENoaWxkQ29uZmlnIHtcbiAgcGFyZW50QXBwbGljYXRpb25VdWlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgaW5oZXJpdGVkRmllbGRzOiBJbmhlcml0ZWRGaWVsZFtdID0gW107XG4gIG5vdGlmaWNhdGlvbkNvbmZpZzogTm90aWZpY2F0aW9uQ29uZmlnID0gbmV3IE5vdGlmaWNhdGlvbkNvbmZpZygpO1xufVxuXG5leHBvcnQgY2xhc3MgRm9ybU1vZGVsIHtcbiAgYXBwbGljYXRpb25JZDogbnVtYmVyO1xuICBhcHBsaWNhdGlvblV1aWQ6IHN0cmluZztcbiAgZ2VuZXJhbERhdGE6IEdlbmVyYWxEYXRhTW9kZWw7XG4gIGRlc2lnbjogRGVzaWduTW9kZWw7XG4gIGZsdXg6IFN0ZXBEYXRhW107XG4gIGFwaTogQXBpRGF0YTtcbiAgcGFydG5lcnM6IEFwcFBhcnRuZXJbXTtcbiAgZG9jdW1lbnRzOiBBcHBEb2N1bWVudFtdO1xuICBzdGF0dXNlczogU3RhdHVzTW9kZWxbXTtcbiAgZGlzcGxheTogRGlzcGxheU1vZGVsO1xuICBnZW5lcmF0ZWRDc3M6IENzc1J1bGVzO1xuICBtZXRhZGF0YUZpZWxkczogW107XG4gIGVycm9yczogeyBbdGFiTmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcbiAgYXBwbGljYXRpb25NYXBwaW5nczogQXBwbGljYXRpb25NYXBwaW5ncztcbiAgcGFyZW50Q2hpbGRDb25maWc/OiBQYXJlbnRDaGlsZENvbmZpZztcbn1cblxuZXhwb3J0IGNsYXNzIEFwcERhdGFDb250cm9sIHtcbiAgY29udHJvbElkOiBzdHJpbmc7XG4gIGZpbGxWYWx1ZTogc3RyaW5nO1xuICBmaWxsVmFsdWVJZDogc3RyaW5nO1xuICBmaWxsVmFsdWVzPzogc3RyaW5nW107XG4gIGZpbGxWYWx1ZUlkcz86IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbnRyb2xJZDogc3RyaW5nID0gJycsXG4gICAgZmlsbFZhbHVlOiBzdHJpbmcgPSAnJyxcbiAgICBmaWxsVmFsdWVJZDogc3RyaW5nID0gJycsXG4gICAgZmlsbFZhbHVlcz86IHN0cmluZ1tdLFxuICAgIGZpbGxWYWx1ZUlkcz86IHN0cmluZ1tdXG4gICkge1xuICAgIHRoaXMuY29udHJvbElkID0gY29udHJvbElkIHx8ICcnO1xuICAgIHRoaXMuZmlsbFZhbHVlID0gZmlsbFZhbHVlIHx8ICcnO1xuICAgIHRoaXMuZmlsbFZhbHVlSWQgPSBmaWxsVmFsdWVJZCB8fCAnJztcbiAgICB0aGlzLmZpbGxWYWx1ZXMgPSBmaWxsVmFsdWVzO1xuICAgIHRoaXMuZmlsbFZhbHVlSWRzID0gZmlsbFZhbHVlSWRzO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBEYXRhU2VjdGlvbiB7XG4gIHNlY3Rpb25JZDogc3RyaW5nO1xuICBjb250cm9sczogQXBwRGF0YUNvbnRyb2xbXTtcblxuICBjb25zdHJ1Y3RvcihzZWN0aW9uSWQ6IHN0cmluZyA9ICcnLCBjb250cm9sczogQXBwRGF0YUNvbnRyb2xbXSA9IFtdKSB7XG4gICAgdGhpcy5zZWN0aW9uSWQgPSBzZWN0aW9uSWQgfHwgJyc7XG4gICAgdGhpcy5jb250cm9scyA9IGNvbnRyb2xzIHx8IFtdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBEYXRhU3RlcCB7XG4gIHN0ZXBJZDogc3RyaW5nO1xuICB0eXBlOiBudW1iZXI7XG4gIHNlY3Rpb25zOiBBcHBEYXRhU2VjdGlvbltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0ZXBJZDogc3RyaW5nID0gJycsXG4gICAgdHlwZTogbnVtYmVyLFxuICAgIHNlY3Rpb25zOiBBcHBEYXRhU2VjdGlvbltdID0gW11cbiAgKSB7XG4gICAgdGhpcy5zdGVwSWQgPSBzdGVwSWQgfHwgJyc7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnNlY3Rpb25zID0gc2VjdGlvbnMgfHwgW107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcERhdGFGaWxsIHtcbiAgbWV0YWRhdGE6IHtcbiAgICBhcHBEYXRhSWQ6IHN0cmluZztcbiAgICBjb25maWd1cmF0aW9uSWQ6IHN0cmluZztcbiAgICBjdXJyZW50U3RlcElkOiBzdHJpbmc7XG4gICAgc3RhdHVzSWQ6IHN0cmluZztcbiAgICBsYW5ndWFnZTogc3RyaW5nO1xuICAgIG9mZmVySWQ6IHN0cmluZztcbiAgICBpc1N1Ym1pdHRlZDogYm9vbGVhbjtcbiAgICBwYXJlbnRBcHBEYXRhVXVpZD86IHN0cmluZztcbiAgfTtcbiAgZmx1eDogQXBwRGF0YVN0ZXBbXTtcbiAgaW5pdEZsb3dWYWx1ZXM/OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYXBwRGF0YUlkOiBzdHJpbmcgPSAnJyxcbiAgICBjb25maWd1cmF0aW9uSWQ6IHN0cmluZyA9ICcnLFxuICAgIGN1cnJlbnRTdGVwSWQ6IHN0cmluZyA9ICcnLFxuICAgIHN0YXR1c0lkOiBzdHJpbmcgPSAnJyxcbiAgICBsYW5ndWFnZTogc3RyaW5nID0gJycsXG4gICAgZmx1eDogQXBwRGF0YVN0ZXBbXSA9IFtdLFxuICAgIG9mZmVySWQ6IHN0cmluZyA9ICcnLFxuICAgIGlzU3VibWl0dGVkOiBib29sZWFuID0gZmFsc2UsXG4gICAgcGFyZW50QXBwRGF0YVV1aWQ6IHN0cmluZyA9ICcnXG4gICkge1xuICAgIHRoaXMubWV0YWRhdGEgPSB7XG4gICAgICBhcHBEYXRhSWQ6IGFwcERhdGFJZCB8fCAnJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25JZDogY29uZmlndXJhdGlvbklkIHx8ICcnLFxuICAgICAgY3VycmVudFN0ZXBJZDogY3VycmVudFN0ZXBJZCB8fCAnJyxcbiAgICAgIHN0YXR1c0lkOiBzdGF0dXNJZCB8fCAnJyxcbiAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZSB8fCAnJyxcbiAgICAgIG9mZmVySWQ6IG9mZmVySWQgfHwgJycsXG4gICAgICBpc1N1Ym1pdHRlZDogaXNTdWJtaXR0ZWQgfHwgZmFsc2UsXG4gICAgICBwYXJlbnRBcHBEYXRhVXVpZDogcGFyZW50QXBwRGF0YVV1aWQgfHwgJycsXG4gICAgfTtcbiAgICB0aGlzLmZsdXggPSBmbHV4IHx8IFtdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBEYXRhIHtcbiAgaWQ/OiBudW1iZXI7XG4gIGFwcERhdGFJZDogc3RyaW5nO1xuICBhcHBDb25maWd1cmF0aW9uSWQ6IG51bWJlcjtcbiAgZmlsbERhdGE/OiBBcHBEYXRhRmlsbDtcbiAgaW5pdEZsb3dWYWx1ZXM/OiBzdHJpbmc7XG4gIHdpdGhOZXh0U3RlcDogYm9vbGVhbjtcbiAgYmxvY2tQcmV2aW91c1N0ZXA6IGJvb2xlYW47XG4gIGVudjogc3RyaW5nO1xuICBzdGF0dXM6IEFwcERhdGFTdGF0dXM7XG4gIHBhcmVudEFwcERhdGFVdWlkPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IHtcbiAgICBpZD86IG51bWJlcjtcbiAgICBhcHBEYXRhSWQ6IHN0cmluZztcbiAgICBhcHBDb25maWd1cmF0aW9uSWQ6IG51bWJlcjtcbiAgICBmaWxsRGF0YT86IEFwcERhdGFGaWxsO1xuICAgIGluaXRGbG93VmFsdWVzPzogc3RyaW5nO1xuICAgIHdpdGhOZXh0U3RlcDogYm9vbGVhbjtcbiAgICBibG9ja1ByZXZpb3VzU3RlcDogYm9vbGVhbjtcbiAgICBlbnY6IHN0cmluZztcbiAgICBwYXJlbnRBcHBEYXRhVXVpZD86IHN0cmluZztcbiAgfSkge1xuICAgICh0aGlzLmlkID0gZGF0YS5pZCA/PyB1bmRlZmluZWQpLCAodGhpcy5hcHBEYXRhSWQgPSBkYXRhLmFwcERhdGFJZCB8fCAnJyk7XG4gICAgdGhpcy5hcHBDb25maWd1cmF0aW9uSWQgPSBkYXRhLmFwcENvbmZpZ3VyYXRpb25JZCB8fCAwO1xuICAgIHRoaXMuZmlsbERhdGEgPSBkYXRhLmZpbGxEYXRhO1xuICAgIHRoaXMuaW5pdEZsb3dWYWx1ZXMgPSBkYXRhLmluaXRGbG93VmFsdWVzO1xuICAgIHRoaXMud2l0aE5leHRTdGVwID0gZGF0YS53aXRoTmV4dFN0ZXA7XG4gICAgdGhpcy5ibG9ja1ByZXZpb3VzU3RlcCA9IGRhdGEuYmxvY2tQcmV2aW91c1N0ZXA7XG4gICAgdGhpcy5wYXJlbnRBcHBEYXRhVXVpZCA9IGRhdGEucGFyZW50QXBwRGF0YVV1aWQ7XG4gICAgaWYgKCFkYXRhLmVudikge1xuICAgICAgdGhpcy5lbnYgPSAnQ29uZmlnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbnYgPSBkYXRhLmVudjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1Nb2RlbEV4dGVueGlvbnMge1xuICBmb3JtTW9kZWw6IEZvcm1Nb2RlbDtcblxuICBjb25zdHJ1Y3Rvcihtb2RlbDogRm9ybU1vZGVsKSB7XG4gICAgdGhpcy5mb3JtTW9kZWwgPSBtb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5pdEZsb3dWYWx1ZXNJdGVtcyhpdGVtczogTWV0aG9kRmllbGRbXSk6IHZvaWQge1xuICAgIGNvbnN0IGluaXRGbG93VmFsdWVzUmF3ID0gKHRoaXMuZm9ybU1vZGVsIGFzIGFueSk/LmdlbmVyYWxEYXRhPy5pbml0Rmxvd1ZhbHVlcztcbiAgICBpZiAoaW5pdEZsb3dWYWx1ZXNSYXcgPT09IG51bGwgfHwgaW5pdEZsb3dWYWx1ZXNSYXcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBwYXJzZWQ6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIGluaXRGbG93VmFsdWVzUmF3ID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgdHJpbW1lZCA9IGluaXRGbG93VmFsdWVzUmF3LnRyaW0oKTtcbiAgICAgIGlmICghdHJpbW1lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKHRyaW1tZWQpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIElmIGNvbmZpZyBjb250YWlucyBpbnZhbGlkIEpTT04sIGRvIG5vdCBleHBvc2UgYW55IGluaXRGbG93VmFsdWVzIGZpZWxkcy5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZWQgPSBpbml0Rmxvd1ZhbHVlc1JhdztcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQoaXRlbXMubWFwKChpKSA9PiBpLmlkKSk7XG4gICAgY29uc3Qgb3V0OiBNZXRob2RGaWVsZFtdID0gW107XG5cbiAgICBjb25zdCB3YWxrID0gKG5vZGU6IGFueSwgcGF0aFBhcnRzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgaWYgKG5vZGUgPT09IG51bGwgfHwgbm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChwYXRoUGFydHMubGVuZ3RoID4gMCkgb3V0LnB1c2godGhpcy5idWlsZEluaXRGbG93RmllbGQocGF0aFBhcnRzKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgICAgbm9kZS5mb3JFYWNoKChjaGlsZCwgaWR4KSA9PiB3YWxrKGNoaWxkLCBbLi4ucGF0aFBhcnRzLCBTdHJpbmcoaWR4KV0pKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIG5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG5vZGUpLmZvckVhY2goKGtleSkgPT4gd2Fsayhub2RlW2tleV0sIFsuLi5wYXRoUGFydHMsIGtleV0pKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocGF0aFBhcnRzLmxlbmd0aCA+IDApIG91dC5wdXNoKHRoaXMuYnVpbGRJbml0Rmxvd0ZpZWxkKHBhdGhQYXJ0cykpO1xuICAgIH07XG5cbiAgICB3YWxrKHBhcnNlZCwgW10pO1xuXG4gICAgZm9yIChjb25zdCBmIG9mIG91dCkge1xuICAgICAgaWYgKCFleGlzdGluZ0lkcy5oYXMoZi5pZCkpIHtcbiAgICAgICAgaXRlbXMucHVzaChmKTtcbiAgICAgICAgZXhpc3RpbmdJZHMuYWRkKGYuaWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJbml0Rmxvd0ZpZWxkKHBhdGhQYXJ0czogc3RyaW5nW10pOiBNZXRob2RGaWVsZCB7XG4gICAgY29uc3QgdW5kZXJzY29yZVBhdGggPSBwYXRoUGFydHMuam9pbignXycpO1xuICAgIHJldHVybiB7XG4gICAgICBmaWVsZE5hbWU6IGBpbml0Rmxvd1ZhbHVlc18ke3VuZGVyc2NvcmVQYXRofWAsXG4gICAgICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZS5NZXRhZGF0YSxcbiAgICAgIGlkOiBgaW5pdEZsb3dWYWx1ZXNfJHt1bmRlcnNjb3JlUGF0aH1gLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZmx1eEl0ZW1zKFxuICAgIHVudGlsU3RlcElkZW50aWZpZXI6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICApOiBNZXRob2RGaWVsZFtdIHtcbiAgICBsZXQgaXRlbXM6IE1ldGhvZEZpZWxkW10gPSBbXTtcblxuICAgIGlmICh0aGlzLmZvcm1Nb2RlbC5tZXRhZGF0YUZpZWxkcykge1xuICAgICAgdGhpcy5mb3JtTW9kZWwubWV0YWRhdGFGaWVsZHMuZm9yRWFjaCgoZmllbGRWYWx1ZSkgPT4ge1xuICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICBmaWVsZE5hbWU6IGZpZWxkVmFsdWUsXG4gICAgICAgICAgZmllbGRUeXBlOiBTdGVwQ29udHJvbFR5cGUuTWV0YWRhdGEsXG4gICAgICAgICAgaWQ6IGBtZXRhZGF0YS4ke2ZpZWxkVmFsdWV9YCxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZEluaXRGbG93VmFsdWVzSXRlbXMoaXRlbXMpO1xuXG4gICAgaWYgKCF0aGlzLmZvcm1Nb2RlbD8uZmx1eCkge1xuICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1Nb2RlbC5kb2N1bWVudHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGl0ZW1zID0gaXRlbXMuY29uY2F0KHRoaXMuZXh0cmFjdERvY3VtZW50c0ZsdXhJdGVtcyh0aGlzLmZvcm1Nb2RlbC5mbHV4KSk7XG4gICAgfVxuICAgIGl0ZW1zID0gaXRlbXMuY29uY2F0KFxuICAgICAgdGhpcy5leHRyYWN0U2VjdGlvbnNGbHV4SXRlbXModGhpcy5mb3JtTW9kZWwuZmx1eCwgdW50aWxTdGVwSWRlbnRpZmllcilcbiAgICApO1xuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG4gIHByaXZhdGUgZXh0cmFjdFNlY3Rpb25zRmx1eEl0ZW1zKFxuICAgIHN0ZXBzOiBTdGVwRGF0YVtdLFxuICAgIHVudGlsU3RlcElkZW50aWZpZXI6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICApOiBNZXRob2RGaWVsZFtdIHtcbiAgICBsZXQgaXRlbXM6IE1ldGhvZEZpZWxkW10gPSBbXTtcblxuICAgIGZvciAobGV0IHN0ZXAgb2Ygc3RlcHMpIHtcbiAgICAgIGlmIChzdGVwLnNlY3Rpb25zKSB7XG4gICAgICAgIGlmICh1bnRpbFN0ZXBJZGVudGlmaWVyICYmIHN0ZXAuaWRlbnRpZmllciA9PT0gdW50aWxTdGVwSWRlbnRpZmllcikge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHN0ZXAuc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChzZWN0aW9uLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICBzZWN0aW9uLmNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIFN0ZXBDb250cm9sVHlwZS5CdXR0b25zLFxuICAgICAgICAgICAgICAgICAgU3RlcENvbnRyb2xUeXBlLk5ld1JvdyxcbiAgICAgICAgICAgICAgICAgIFN0ZXBDb250cm9sVHlwZS5GbHV4SW5mbyxcbiAgICAgICAgICAgICAgICAgIFN0ZXBDb250cm9sVHlwZS5QYXJhZ3JhcGgsXG4gICAgICAgICAgICAgICAgXS5pbmNsdWRlcyhjb250cm9sLnR5cGUpID09IGZhbHNlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7c2VjdGlvbi50aXRsZX0gLT4gJHtjb250cm9sLnRpdGxlfWAsXG4gICAgICAgICAgICAgICAgICBmaWVsZFR5cGU6IGNvbnRyb2wudHlwZSxcbiAgICAgICAgICAgICAgICAgIG1hbnVsSW5wdXRDb250cm9sVHlwZTogY29udHJvbC5zcGVjaWZpY0NvbnRyb2xEYXRhPy50eXBlLFxuICAgICAgICAgICAgICAgICAgaWQ6IGNvbnRyb2wuaWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3REb2N1bWVudHNGbHV4SXRlbXMoc3RlcERhdGE6IFN0ZXBEYXRhW10pOiBNZXRob2RGaWVsZFtdIHtcbiAgICBsZXQgaXRlbXM6IE1ldGhvZEZpZWxkW10gPSBbXTtcblxuICAgIHN0ZXBEYXRhPy5mb3JFYWNoKChzdGVwKSA9PiB7XG4gICAgICBpZiAoc3RlcC50eXBlID09PSBGbHV4VHlwZS5VcGxvYWREb2N1bWVudCkge1xuICAgICAgICBzdGVwLmNvbmZpZz8uZG9jdW1lbnRzPy5mb3JFYWNoKFxuICAgICAgICAgIChkb2N1bWVudDogeyBkb2N1bWVudElkOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7XG4gICAgICAgICAgICAgICAgRmx1eEhlbHBlci5nZXREb2N1bWVudE5hbWVCeUlkKFxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnQ/LmRvY3VtZW50SWQsXG4gICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Nb2RlbFxuICAgICAgICAgICAgICAgICkgfHwgZG9jdW1lbnQubmFtZVxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgZmllbGRUeXBlOiBzdGVwLnR5cGUsXG4gICAgICAgICAgICAgIGlkOiBkb2N1bWVudD8uZG9jdW1lbnRJZFxuICAgICAgICAgICAgICAgID8gYHVwbG9hZC4ke2RvY3VtZW50LmRvY3VtZW50SWR9YFxuICAgICAgICAgICAgICAgIDogYCR7c3RlcC50eXBlfS4ke3N0ZXAubmFtZX1gLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChzdGVwLnR5cGUgPT09IEZsdXhUeXBlLkdlbmVyYXRlRG9jdW1lbnQpIHtcbiAgICAgICAgc3RlcC5jb25maWc/LmdlbmVyYXRlZERvY3VtZW50cz8uZm9yRWFjaChcbiAgICAgICAgICAoZG9jdW1lbnQ6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZE5hbWU6IGAke3N0ZXAubmFtZX0gLT4gJHtcbiAgICAgICAgICAgICAgICBGbHV4SGVscGVyLmdldERvY3VtZW50TmFtZUJ5SWQoZG9jdW1lbnQ/LmlkLCB0aGlzLmZvcm1Nb2RlbCkgfHxcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5uYW1lXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICBmaWVsZFR5cGU6IHN0ZXAudHlwZSxcbiAgICAgICAgICAgICAgaWQ6IGRvY3VtZW50Py5pZFxuICAgICAgICAgICAgICAgID8gYGdlbmVyYXRlLiR7ZG9jdW1lbnQuaWR9YFxuICAgICAgICAgICAgICAgIDogYCR7c3RlcC50eXBlfS4ke3N0ZXAubmFtZX1gLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChzdGVwLnR5cGUgPT09IEZsdXhUeXBlLlNpZ24pIHtcbiAgICAgICAgaWYgKHN0ZXAuY29uZmlnPy5kb2N1bWVudHMpIHtcbiAgICAgICAgICBzdGVwLmNvbmZpZz8uZG9jdW1lbnRzLmZvckVhY2goXG4gICAgICAgICAgICAoZG9jdW1lbnQ6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7XG4gICAgICAgICAgICAgICAgICBGbHV4SGVscGVyLmdldERvY3VtZW50TmFtZUJ5SWQoXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Py5pZCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtTW9kZWxcbiAgICAgICAgICAgICAgICAgICkgfHwgZG9jdW1lbnQubmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogc3RlcC50eXBlLFxuICAgICAgICAgICAgICAgIGlkOiBkb2N1bWVudD8uaWRcbiAgICAgICAgICAgICAgICAgID8gYHNpZ24uJHtkb2N1bWVudC5pZH1gXG4gICAgICAgICAgICAgICAgICA6IGAke3N0ZXAudHlwZX0uJHtzdGVwLm5hbWV9YCxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGVwLmNvbmZpZz8uc3lzdGVtRG9jdW1lbnRzKSB7XG4gICAgICAgICAgc3RlcC5jb25maWc/LnN5c3RlbURvY3VtZW50cy5mb3JFYWNoKFxuICAgICAgICAgICAgKGRvY3VtZW50OiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogYCR7c3RlcC5uYW1lfSAtPiAke1xuICAgICAgICAgICAgICAgICAgRmx1eEhlbHBlci5nZXREb2N1bWVudE5hbWVCeUlkKFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudD8uaWQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybU1vZGVsXG4gICAgICAgICAgICAgICAgICApIHx8IGRvY3VtZW50Lm5hbWVcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgICBmaWVsZFR5cGU6IHN0ZXAudHlwZSxcbiAgICAgICAgICAgICAgICBpZDogZG9jdW1lbnQ/LmlkXG4gICAgICAgICAgICAgICAgICA/IGBzeXN0ZW0uJHtkb2N1bWVudC5pZH1gXG4gICAgICAgICAgICAgICAgICA6IGAke3N0ZXAudHlwZX0uJHtzdGVwLm5hbWV9YCxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHB1YmxpYyBmbHV4SXRlbXNXaXRoR2V0QXBpTWV0aG9kcyhcbiAgICBleGNsdWRlZE1ldGhvZElkOiBzdHJpbmcgPSAnJ1xuICApOiBNZXRob2RGaWVsZFtdIHtcbiAgICBsZXQgaXRlbXMgPSB0aGlzLmZsdXhJdGVtcygpO1xuICAgIHRoaXMuZm9ybU1vZGVsLmFwaS5nZXRJdGVtcy5mb3JFYWNoKChhcGlNZXRob2QpID0+IHtcbiAgICAgIGlmIChhcGlNZXRob2QuaWQgIT09IGV4Y2x1ZGVkTWV0aG9kSWQpIHtcbiAgICAgICAgYXBpTWV0aG9kLmZpZWxkcz8uZm9yRWFjaCgoZikgPT4ge1xuICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgZmllbGROYW1lOiBgJHthcGlNZXRob2QubWV0aG9kfSAtPiAke2YuZmllbGROYW1lfWAsXG4gICAgICAgICAgICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZS5BcGlNZXRob2RGaWVsZCxcbiAgICAgICAgICAgIGlkOiBmLmlkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHB1YmxpYyBvZmZlck1ldGhvZHNJdGVtcygpOiBNZXRob2RGaWVsZFtdIHtcbiAgICBsZXQgaXRlbXM6IE1ldGhvZEZpZWxkW10gPSBbXTtcblxuICAgIGxldCBvZmZlck1ldGhvZHNJZHM6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5mb3JtTW9kZWwucGFydG5lcnM/LmZvckVhY2goKHApID0+IHtcbiAgICAgIHAuZ2VuZXJhbFNldHRpbmdzLm9mZmVycz8uZm9yRWFjaCgobykgPT4ge1xuICAgICAgICBvZmZlck1ldGhvZHNJZHMucHVzaChvLmFwaU1ldGhvZElkKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgb2ZmZXJNZXRob2RzSWRzID0gWy4uLm5ldyBTZXQob2ZmZXJNZXRob2RzSWRzKV07XG5cbiAgICBjb25zdCBhbGxBcGlJdGVtcyA9IFtcbiAgICAgIC4uLnRoaXMuZm9ybU1vZGVsLmFwaS5nZXRJdGVtcyxcbiAgICAgIC4uLnRoaXMuZm9ybU1vZGVsLmFwaS52YWxpZGF0aW9uSXRlbXMsXG4gICAgICAuLi50aGlzLmZvcm1Nb2RlbC5hcGkuc2VuZEl0ZW1zLFxuICAgIF07XG5cbiAgICBvZmZlck1ldGhvZHNJZHMuZm9yRWFjaCgobWV0aG9kSWQpID0+IHtcbiAgICAgIGNvbnN0IGFwaU1ldGhvZCA9IGFsbEFwaUl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IG1ldGhvZElkKTtcbiAgICAgIGlmIChhcGlNZXRob2QpIHtcbiAgICAgICAgYXBpTWV0aG9kLmZpZWxkcz8uZm9yRWFjaCgoZikgPT4ge1xuICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgZmllbGROYW1lOiBgJHthcGlNZXRob2QubWV0aG9kfSAtPiAke2YuZmllbGROYW1lfWAsXG4gICAgICAgICAgICBmaWVsZFR5cGU6IEZsdXhUeXBlLlZpZXdPZmZlcixcbiAgICAgICAgICAgIGlkOiBgYXBpXyR7YXBpTWV0aG9kLmlkfSAtPiAke2YuaWR9YCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwaURhdGEge1xuICBnZXRJdGVtczogR2V0QXBpSXRlbVtdO1xuICB2YWxpZGF0aW9uSXRlbXM6IEFwaUl0ZW1bXTtcbiAgc2VuZEl0ZW1zOiBBcGlJdGVtW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcGlJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgbWV0aG9kOiBzdHJpbmc7XG4gIGZpZWxkczogTWV0aG9kRmllbGRbXTtcbiAgdHlwZTogQXBpTWV0aG9kVHlwZTtcbn1cblxuZXhwb3J0IGNsYXNzIEdldEFwaUl0ZW0ge1xuICBpZDogc3RyaW5nO1xuICBtZXRob2Q6IHN0cmluZztcbiAgZmllbGRzOiBHZXRNZXRob2RGaWVsZFtdO1xuICB0eXBlOiBBcGlNZXRob2RUeXBlO1xufVxuZXhwb3J0IGNsYXNzIERlc2lnbk1vZGVsIHtcbiAgZm9udHM6IEZvbnRDb25maWdbXSA9IFtdO1xuICBidXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xuICBvdHBBY3Rpb25CdXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xuICBjb21wb25lbnRzOiBDb21wb25lbnRDb25maWdbXSA9IFtdO1xuICB0YWJsZXM6IFRhYmxlQ29uZmlnW10gPSBbXTtcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGZvbnRTaXplOiBzdHJpbmc7XG4gIGJ1dHRvbnNIb3Jpem9udGFsUG9zaXRpb246IHN0cmluZztcbiAgYnV0dG9uc1ZlcnRpY2FsUG9zaXRpb246IHN0cmluZztcbiAgbWF4V2lkdGg6IHN0cmluZztcbiAgbWFyZ2luTGVmdDogc3RyaW5nO1xuICBtYXJnaW5SaWdodDogc3RyaW5nO1xuICBtYXJnaW5Ub3A6IHN0cmluZztcbiAgbWFyZ2luQm90dG9tOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBpZiAoZGF0YS5mb250cykge1xuICAgICAgICB0aGlzLmZvbnRzID0gZGF0YS5mb250cy5tYXAoKGZvbnQ6IGFueSkgPT4gbmV3IEZvbnRDb25maWcoZm9udCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YS5idXR0b25zKSB7XG4gICAgICAgIHRoaXMuYnV0dG9ucyA9IGRhdGEuYnV0dG9ucy5tYXAoXG4gICAgICAgICAgKGJ1dHRvbjogYW55KSA9PiBuZXcgQnV0dG9uQ29uZmlnKGJ1dHRvbilcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGEuY29tcG9uZW50cykge1xuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSBkYXRhLmNvbXBvbmVudHMubWFwKFxuICAgICAgICAgIChjb21wb25lbnQ6IGFueSkgPT4gbmV3IENvbXBvbmVudENvbmZpZyhjb21wb25lbnQpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhLnRhYmxlcykge1xuICAgICAgICB0aGlzLnRhYmxlcyA9IGRhdGEudGFibGVzLm1hcCgodGFibGU6IGFueSkgPT4gbmV3IFRhYmxlQ29uZmlnKHRhYmxlKSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gZGF0YS5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICB0aGlzLmZvbnRTaXplID0gZGF0YS5mb250U2l6ZTtcbiAgICAgIHRoaXMuYnV0dG9uc0hvcml6b250YWxQb3NpdGlvbiA9IGRhdGEuaG9yaXpvbnRhbFBvc2l0aW9uO1xuICAgICAgdGhpcy5idXR0b25zVmVydGljYWxQb3NpdGlvbiA9IGRhdGEudmVydGljYWxQb3NpdGlvbjtcbiAgICAgIHRoaXMubWF4V2lkdGggPSBkYXRhLm1heFdpZHRoO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9udENvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZm9udEZhbWlseTogc3RyaW5nO1xuICBmb250U2l6ZTogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBmb250V2VpZ2h0OiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xuICBsZXR0ZXJTcGFjaW5nOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICB0aGlzLmZvbnRGYW1pbHkgPSBkYXRhLmZvbnRGYW1pbHk7XG4gICAgICB0aGlzLmZvbnRTaXplID0gZGF0YS5mb250U2l6ZTtcbiAgICAgIHRoaXMuY29sb3IgPSBkYXRhLmNvbG9yO1xuICAgICAgdGhpcy5mb250V2VpZ2h0ID0gZGF0YS5mb250V2VpZ2h0O1xuICAgICAgdGhpcy50ZXh0QWxpZ24gPSBkYXRhLnRleHRBbGlnbjtcbiAgICAgIHRoaXMubGV0dGVyU3BhY2luZyA9IGRhdGEubGV0dGVyU3BhY2luZztcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGJvcmRlcjogc3RyaW5nO1xuICBib3JkZXJDb2xvcjogc3RyaW5nO1xuICBib3JkZXJSYWRpdXM6IHN0cmluZztcbiAgaG9yaXpvbnRhbFBhZGRpbmc6IHN0cmluZztcbiAgdmVydGljYWxQYWRkaW5nOiBzdHJpbmc7XG4gIGZvbnRGYW1pbHk6IHN0cmluZztcbiAgZm9udFNpemU6IHN0cmluZztcbiAgbGV0dGVyU3BhY2luZzogc3RyaW5nO1xuICB3aWR0aDogc3RyaW5nO1xuICBoZWlnaHQ6IHN0cmluZztcbiAgbWluV2lkdGg6IHN0cmluZztcbiAgbWluSGVpZ2h0OiBzdHJpbmc7XG4gIG1heFdpZHRoOiBzdHJpbmc7XG4gIG1heEhlaWdodDogc3RyaW5nO1xuICBob3Jpem9udGFsUG9zaXRpb24/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGRhdGEuYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy5jb2xvciA9IGRhdGEuY29sb3I7XG4gICAgICB0aGlzLmJvcmRlciA9IGRhdGEuYm9yZGVyO1xuICAgICAgdGhpcy5ib3JkZXJDb2xvciA9IGRhdGEuYm9yZGVyQ29sb3I7XG4gICAgICB0aGlzLmJvcmRlclJhZGl1cyA9IGRhdGEuYm9yZGVyUmFkaXVzO1xuICAgICAgdGhpcy5ob3Jpem9udGFsUGFkZGluZyA9IGRhdGEuaG9yaXpvbnRhbFBhZGRpbmc7XG4gICAgICB0aGlzLnZlcnRpY2FsUGFkZGluZyA9IGRhdGEudmVydGljYWxQYWRkaW5nO1xuICAgICAgdGhpcy5mb250RmFtaWx5ID0gZGF0YS5mb250RmFtaWx5O1xuICAgICAgdGhpcy5mb250U2l6ZSA9IGRhdGEuZm9udFNpemU7XG4gICAgICB0aGlzLmxldHRlclNwYWNpbmcgPSBkYXRhLmxldHRlclNwYWNpbmc7XG4gICAgICB0aGlzLndpZHRoID0gZGF0YS53aWR0aDtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHQ7XG4gICAgICB0aGlzLm1pbldpZHRoID0gZGF0YS5taW5XaWR0aDtcbiAgICAgIHRoaXMubWluSGVpZ2h0ID0gZGF0YS5taW5IZWlnaHQ7XG4gICAgICB0aGlzLm1heFdpZHRoID0gZGF0YS5tYXhXaWR0aDtcbiAgICAgIHRoaXMubWF4SGVpZ2h0ID0gZGF0YS5tYXhIZWlnaHQ7XG4gICAgICB0aGlzLmhvcml6b250YWxQb3NpdGlvbiA9IGRhdGEuaG9yaXpvbnRhbFBvc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFibGVDb25maWcge1xuICBoZWFkZXJDb25maWc6IEhlYWRlckNvbmZpZztcbiAgZGV0YWlsQ29uZmlnOiBEZXRhaWxDb25maWc7XG5cbiAgY29uc3RydWN0b3IodGFibGU/OiBhbnkpIHtcbiAgICBpZiAodGFibGUpIHtcbiAgICAgIHRoaXMuaGVhZGVyQ29uZmlnID0gdGFibGUuaGVhZGVyQ29uZmlnO1xuICAgICAgdGhpcy5kZXRhaWxDb25maWcgPSB0YWJsZS5kZXRhaWxDb25maWc7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIZWFkZXJDb25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICB0ZXh0Q29sb3I6IHN0cmluZztcbiAgYm9yZGVyOiBzdHJpbmc7XG4gIGJvcmRlckNvbG9yOiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xuICBmb250RmFtaWx5OiBzdHJpbmc7XG4gIGZvbnRTaXplOiBzdHJpbmc7XG4gIGxldHRlclNwYWNpbmc6IHN0cmluZztcbiAgcGFkZGluZzogc3RyaW5nO1xuICBib3JkZXJDb2xsYXBzZTogc3RyaW5nO1xuICBib3JkZXJTcGFjaW5nOiBzdHJpbmc7XG4gIHZlcnRpY2FsQWxpZ246IHN0cmluZztcbiAgd2lkdGg6IHN0cmluZztcbiAgaGVpZ2h0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGRhdGEuYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy50ZXh0Q29sb3IgPSBkYXRhLmNvbG9yO1xuICAgICAgdGhpcy5ib3JkZXIgPSBkYXRhLmJvcmRlcjtcbiAgICAgIHRoaXMudGV4dEFsaWduID0gZGF0YS50ZXh0QWxpZ247XG4gICAgICB0aGlzLmZvbnRGYW1pbHkgPSBkYXRhLmZvbnRGYW1pbHk7XG4gICAgICB0aGlzLmZvbnRTaXplID0gZGF0YS5mb250U2l6ZTtcbiAgICAgIHRoaXMubGV0dGVyU3BhY2luZyA9IGRhdGEubGV0dGVyU3BhY2luZztcbiAgICAgIHRoaXMucGFkZGluZyA9IGRhdGEucGFkZGluZztcbiAgICAgIHRoaXMuYm9yZGVyQ29sbGFwc2UgPSBkYXRhLmJvcmRlckNvbGxhcHNlO1xuICAgICAgdGhpcy5ib3JkZXJTcGFjaW5nID0gZGF0YS5ib3JkZXJTcGFjaW5nO1xuICAgICAgdGhpcy52ZXJ0aWNhbEFsaWduID0gZGF0YS52ZXJ0aWNhbEFsaWduO1xuICAgICAgdGhpcy53aWR0aCA9IGRhdGEud2lkdGg7XG4gICAgICB0aGlzLmhlaWdodCA9IGRhdGEuaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGV0YWlsQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgdGV4dENvbG9yOiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xuICBsZXR0ZXJTcGFjaW5nOiBzdHJpbmc7XG4gIHBhZGRpbmc6IHN0cmluZztcbiAgcm93Qm9yZGVyOiBzdHJpbmc7XG4gIHJvd0JvcmRlckNvbG9yOiBzdHJpbmc7XG4gIGhvdmVyQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIHZlcnRpY2FsQWxpZ246IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gZGF0YS5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICB0aGlzLnRleHRDb2xvciA9IGRhdGEuY29sb3I7XG4gICAgICB0aGlzLnRleHRBbGlnbiA9IGRhdGEudGV4dEFsaWduO1xuICAgICAgdGhpcy5sZXR0ZXJTcGFjaW5nID0gZGF0YS5sZXR0ZXJTcGFjaW5nO1xuICAgICAgdGhpcy5wYWRkaW5nID0gZGF0YS5wYWRkaW5nO1xuICAgICAgdGhpcy5yb3dCb3JkZXIgPSBkYXRhLnJvd0JvcmRlcjtcbiAgICAgIHRoaXMuaG92ZXJCYWNrZ3JvdW5kQ29sb3IgPSBkYXRhLmhvdmVyQmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy52ZXJ0aWNhbEFsaWduID0gZGF0YS52ZXJ0aWNhbEFsaWduO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50Q29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgYm9yZGVyOiBzdHJpbmc7XG4gIGJvcmRlclJhZGl1czogc3RyaW5nO1xuICBsYWJlbFN0eWxlOiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgYm9yZGVyQ29sb3I/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHdlaWdodD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgc3RhcnRDb2xvcj86IHN0cmluZztcbiAgZW5kQ29sb3I/OiBzdHJpbmc7XG4gIGhlaWdodD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gZGF0YS5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICB0aGlzLmJvcmRlciA9IGRhdGEuYm9yZGVyO1xuICAgICAgdGhpcy5ib3JkZXJSYWRpdXMgPSBkYXRhLmJvcmRlclJhZGl1cztcbiAgICAgIHRoaXMubGFiZWxTdHlsZSA9IGRhdGEubGFiZWxTdHlsZTtcbiAgICAgIHRoaXMudGV4dEFsaWduID0gZGF0YS50ZXh0QWxpZ247XG4gICAgICB0aGlzLmNvbG9yID0gZGF0YS5jb2xvcjtcbiAgICAgIHRoaXMud2VpZ2h0ID0gZGF0YS53ZWlnaHQ7XG4gICAgICB0aGlzLnN0YXJ0Q29sb3IgPSBkYXRhLnN0YXJ0Q29sb3I7XG4gICAgICB0aGlzLmVuZENvbG9yID0gZGF0YS5lbmRDb2xvcjtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHQ7XG4gICAgfVxuICB9XG59XG5leHBvcnQgY2xhc3MgRGlzcGxheU1vZGVsIHtcbiAgc2VjdGlvbnM6IFNlY3Rpb25EYXRhW107XG59XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmFsRGF0YU1vZGVsIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhcHBsaWNhdGlvblR5cGU6IG51bWJlcjtcbiAgbGFuZ3VhZ2VzOiBzdHJpbmdbXTtcbiAgZGVmYXVsdExhbmd1YWdlOiBzdHJpbmc7XG4gIGNvbnRpbnVlV2l0aE9mZmVyOiBib29sZWFuO1xuICBzaG93Q291bnRlclN0ZXA6IGJvb2xlYW47XG4gIHNob3dOYW1lU3RlcDogYm9vbGVhbjtcbiAgc2hvd0FsbFN0ZXBzOiBib29sZWFuO1xuICBzaG93UHJvZ3Jlc3NCYXI6IGJvb2xlYW47XG4gIGluaXRGbG93VmFsdWVzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1zU3RhdGUge1xuICBkYXRhOiBGb3JtTW9kZWw7XG4gIHNlbGVjdGVkVGFiOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgY2FuR2V0RnJvbVByb2Q6IGJvb2xlYW47XG4gIGNhbkdldEZyb21UZXN0OiBib29sZWFuO1xuICBjYW5QdWJsaXNoSW5Qcm9kOiBib29sZWFuO1xuICBjYW5QdWJsaXNoSW5UZXN0OiBib29sZWFuO1xuICBhcHBsaWNhdGlvblV1aWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxGb3JtdWxhcmVTdGF0ZTogRm9ybXNTdGF0ZSA9IHtcbiAgZGF0YToge1xuICAgIGFwcGxpY2F0aW9uSWQ6IDAsXG4gICAgYXBwbGljYXRpb25VdWlkOiAnJyxcbiAgICBnZW5lcmFsRGF0YToge1xuICAgICAgbmFtZTogJycsXG4gICAgICBhcHBsaWNhdGlvblR5cGU6IDAsXG4gICAgICBsYW5ndWFnZXM6IFtdLFxuICAgICAgZGVmYXVsdExhbmd1YWdlOiAnJyxcbiAgICAgIGNvbnRpbnVlV2l0aE9mZmVyOiBmYWxzZSxcbiAgICAgIHNob3dDb3VudGVyU3RlcDogZmFsc2UsXG4gICAgICBzaG93TmFtZVN0ZXA6IGZhbHNlLFxuICAgICAgc2hvd0FsbFN0ZXBzOiBmYWxzZSxcbiAgICAgIHNob3dQcm9ncmVzc0JhcjogZmFsc2UsXG4gICAgICBpbml0Rmxvd1ZhbHVlczogJycsXG4gICAgfSxcbiAgICBkZXNpZ246IHtcbiAgICAgIGZvbnRzOiBbXSxcbiAgICAgIGJ1dHRvbnM6IFtdLFxuICAgICAgb3RwQWN0aW9uQnV0dG9uczogW10sXG4gICAgICBjb21wb25lbnRzOiBbXSxcbiAgICAgIHRhYmxlczogW10sXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcnLFxuICAgICAgZm9udFNpemU6ICcnLFxuICAgICAgYnV0dG9uc0hvcml6b250YWxQb3NpdGlvbjogJycsXG4gICAgICBidXR0b25zVmVydGljYWxQb3NpdGlvbjogJycsXG4gICAgICBtYXhXaWR0aDogJycsXG4gICAgICBtYXJnaW5MZWZ0OiAnJyxcbiAgICAgIG1hcmdpblJpZ2h0OiAnJyxcbiAgICAgIG1hcmdpblRvcDogJycsXG4gICAgICBtYXJnaW5Cb3R0b206ICcnLFxuICAgIH0sXG4gICAgZmx1eDogW10sXG4gICAgYXBpOiB7IGdldEl0ZW1zOiBbXSwgdmFsaWRhdGlvbkl0ZW1zOiBbXSwgc2VuZEl0ZW1zOiBbXSB9LFxuICAgIHBhcnRuZXJzOiBbXSxcbiAgICBkb2N1bWVudHM6IFtdLFxuICAgIHN0YXR1c2VzOiBbXSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICBzZWN0aW9uczogW10sXG4gICAgfSxcbiAgICBnZW5lcmF0ZWRDc3M6IHt9LFxuICAgIG1ldGFkYXRhRmllbGRzOiBbXSxcbiAgICBlcnJvcnM6IHt9LFxuICAgIGFwcGxpY2F0aW9uTWFwcGluZ3M6IHtcbiAgICAgIGFwcGxpY2F0aW9uVHlwZUlkOiAwLFxuICAgICAgY29sdW1uTWFwcGluZ3M6IFtdLFxuICAgIH0sXG4gICAgcGFyZW50Q2hpbGRDb25maWc6IHVuZGVmaW5lZCxcbiAgfSxcbiAgc2VsZWN0ZWRUYWI6ICdEYXRlIGdlbmVyYWxlJyxcbiAgY2FuR2V0RnJvbVByb2Q6IGZhbHNlLFxuICBjYW5HZXRGcm9tVGVzdDogZmFsc2UsXG4gIGNhblB1Ymxpc2hJblByb2Q6IGZhbHNlLFxuICBjYW5QdWJsaXNoSW5UZXN0OiBmYWxzZSxcbiAgYXBwbGljYXRpb25VdWlkOiAnJyxcbiAgdmVyc2lvbjogJycsXG59O1xuXG5leHBvcnQgY2xhc3MgUGFydG5lckRpY3Rpb25hcnlNYXBwaW5nIHtcbiAgZGljdGlvbmFyeUlkOiBzdHJpbmc7XG4gIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmc7XG4gIG1hcHBpbmdzOiBQYXJ0bmVyS2V5VmFsdWVJdGVtW107XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyU2V0dGluZ3Mge1xuICBwYXJ0bmVyTWV0aG9kc0FwaTogUGFydG5lck1ldGhvZEFwaVtdID0gW107XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyTWV0aG9kQXBpIHtcbiAgbWV0aG9kSWQ6IHN0cmluZztcbiAgbWV0aG9kVHlwZTogc3RyaW5nO1xuICBjYWxsVHlwZTogc3RyaW5nO1xuICBib2R5Q29uZmlndXJhdGlvbjogUGFydG5lck1ldGhvZEJvZHk7XG4gIHJlc3BvbnNlQ29uZmlndXJhdGlvbjogUGFydG5lck1ldGhvZFJlc3BvbnNlO1xuICB1cmxDb25maWd1cmF0aW9uOiBQYXJ0bmVyTWV0aG9kVXJsO1xuICBhdXRoVmFsdWU6IFBhcnRuZXJNZXRob2RBcGlBdXRoO1xuICBoZWFkZXJzOiBQYXJ0bmVyS2V5VmFsdWVJdGVtW107XG4gIC8vIElOQk9VTkQtc3BlY2lmaWMgcHJvcGVydGllc1xuICBpbmJvdW5kTWV0aG9kVHlwZT86IEluYm91bmRNZXRob2RUeXBlOyAvLyBUeXBlIG9mIElOQk9VTkQgbWV0aG9kXG59XG5cbmV4cG9ydCBlbnVtIEluYm91bmRNZXRob2RUeXBlIHtcbiAgU3RhbmRhcmQgPSAnU3RhbmRhcmQnLFxuICBTdGF0dXNNZXRob2QgPSAnU3RhdHVzTWV0aG9kJyxcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnRuZXJNZXRob2RBcGlBdXRoIHtcbiAgaGVhZGVyTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgYXBpS2V5OiBzdHJpbmcgfCBudWxsO1xuICBhdXRoVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUGFydG5lcktleVZhbHVlSXRlbSB7XG4gIGtleTogc3RyaW5nO1xuICBrZXlOYW1lOiBzdHJpbmcgfCBudWxsO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIFBhcnRuZXJTdGF0dXNNYXBwaW5nIHtcbiAgcGFydG5lclN0YXR1czogc3RyaW5nO1xuICBhcHBTdGF0dXM6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnRuZXJNZXRob2RVcmwge1xuICB1cmxWYWx1ZTogc3RyaW5nO1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIHRlc3RVcmw6IHN0cmluZztcbiAgcHJvZFVybDogc3RyaW5nO1xuICBwYXJhbWV0ZXJNYXBwaW5nczogVXJsTWFwRmllbGRzW107XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyTWV0aG9kUmVzcG9uc2Uge1xuICBjb250ZW50VHlwZTogc3RyaW5nO1xuICBqc29uVmFsdWU6IHN0cmluZztcbiAgcmVzcG9uc2VNYXBGaWVsZHM6IEZpZWxkc01hcHBpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFVybE1hcEZpZWxkcyB7XG4gIHVybFBhcmFtZXRlcjogc3RyaW5nO1xuICBmbHV4RmllbGQ6IHN0cmluZztcbiAgZmx1eEZpZWxkSWQ6IHN0cmluZztcbiAgZmllbGRUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyTWV0aG9kQm9keSB7XG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gIGpzb25WYWx1ZTogc3RyaW5nO1xuICBib2R5TWFwRmllbGRzOiBGaWVsZHNNYXBwaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBGaWVsZHNNYXBwaW5nIHtcbiAgcGFydG5lckZpZWxkOiBzdHJpbmc7XG4gIGZsdXhGaWVsZElkOiBzdHJpbmc7XG4gIG1ldGhvZEZpZWxkSWQ6IHN0cmluZztcbiAgZmllbGRUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNZXRob2RGaWVsZCB7XG4gIGlkOiBzdHJpbmc7XG4gIGZpZWxkTmFtZTogc3RyaW5nO1xuICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZSB8IEZsdXhUeXBlIHwgc3RyaW5nO1xuICBtYW51bElucHV0Q29udHJvbFR5cGU/OiBNYW51YWxJbnB1dENvbnRyb2xUeXBlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY2xhc3MgR2V0TWV0aG9kRmllbGQge1xuICBpZDogc3RyaW5nO1xuICBmaWVsZE5hbWU6IHN0cmluZztcbiAgZmllbGRUeXBlOiBTdGVwQ29udHJvbFR5cGUgfCBGbHV4VHlwZSB8IHN0cmluZztcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTWFudWFsSW5wdXRDb250cm9sRGF0YSB7XG4gIHR5cGU6IE1hbnVhbElucHV0Q29udHJvbFR5cGU7XG4gIGlzU2ltcGxlVmFsaWRhdGlvbjogYm9vbGVhbjtcbiAgaXNBcGlWYWxpZGF0aW9uOiBib29sZWFuO1xuICBhcGlWYWxpZGF0aW9uTWV0aG9kPzogc3RyaW5nIHwgbnVsbDtcbiAgYXBpVmFsaWRhdGlvblBhcnRuZXI/OiBzdHJpbmcgfCBudWxsO1xuICBhbGxvd2VkQ2hhcmFjdGVycz86IHN0cmluZztcbiAgbWF4Q2hhcmFjdGVycz86IG51bWJlcjtcbiAgbWluVmFsdWU/OiBudW1iZXI7XG4gIG1heFZhbHVlPzogbnVtYmVyO1xuICBhbGxvd09ubHlQYXN0PzogYm9vbGVhbjtcbiAgYWxsb3dPbmx5RnV0dXJlPzogYm9vbGVhbjtcbiAgaXNNYW5kYXRvcnk6IGJvb2xlYW47XG4gIGlzUHJlY29tcGxldGFibGU/OiBib29sZWFuO1xuICBwcmVjb21wbGV0aW9uRmllbGRJZD86IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJhZ3JhcGhDb250cm9sRGF0YSB7XG4gIGRlc2NyaXB0aW9uVHJhbnNsYXRpb25zOiBMYWJlbEluZm9bXTtcbiAgaXNNYW5kYXRvcnk6IGJvb2xlYW47XG4gIGlzTWFuZGF0b3J5VHJhbnNsYXRpb25zPzogTGFiZWxJbmZvW107XG59XG5cbmV4cG9ydCBjbGFzcyBEaWN0aW9uYXJ5Q29udHJvbERhdGEge1xuICBkaWN0aW9uYXJ5VVVJRDogc3RyaW5nO1xuICBzaG93QXNSYWRpb0J1dHRvbnNMaXN0OiBib29sZWFuO1xuICByZWxhdGVkRGljdGlvbmFyaWVzVHJhbnNsYXRpb25zOiBEaWN0aW9uYXJ5TGFiZWxJbmZvW107XG4gIGRpY3Rpb25hcnlEZWZhdWx0VmFsdWVJZD86IG51bWJlciB8IG51bGw7XG4gIHNlbGVjdGVkUmVsYXRlZERpY3Rpb25hcmllczogc3RyaW5nW107XG4gIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24/OiBib29sZWFuO1xuICBpc01hbmRhdG9yeT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEZsdXhUeXBlIHtcbiAgS3ljID0gMCxcbiAgRW1haWwgPSAxLFxuICBQaG9uZSA9IDIsXG4gIFNpZ24gPSAzLFxuICBTdGF0dXMgPSA0LFxuICBDdXN0b20gPSA1LFxuICBQYXVzZSA9IDYsXG4gIElkU2NhbiA9IDcsXG4gIEdlbmVyYXRlRG9jdW1lbnQgPSA4LFxuICBBY3Rpb24gPSA5LFxuICBVcGxvYWREb2N1bWVudCA9IDEwLFxuICBEb3dubG9hZERvY3VtZW50ID0gMTEsXG4gIFZpZXdPZmZlciA9IDEyLFxuICBGaW5hbCA9IDEzLFxuICBWaWV3RG9jdW1lbnQgPSAxNCxcbiAgTkVUT1BJQSA9IDE1LFxuICBFVVBMQVRFU0MgPSAxNixcbiAgT3BlbkJhbmtpbmcgPSAxNyxcbn1cblxuZXhwb3J0IGVudW0gU2VjdGlvblR5cGUge1xuICBQcmVzZW50YXRpb24sXG4gIENvbGxlY3QsXG4gIERpc3BsYXksXG59XG5cbmV4cG9ydCBlbnVtIFN0ZXBDb250cm9sVHlwZSB7XG4gIE1hbnVhbElucHV0ID0gMCxcbiAgUGFyYWdyYXBoID0gMSxcbiAgQ2hlY2tCb3ggPSAyLFxuICBEaWN0aW9uYXJ5ID0gMyxcbiAgQnV0dG9ucyA9IDQsXG4gIEZsdXhJbmZvID0gNSxcbiAgTmV3Um93ID0gNixcbiAgTWV0YWRhdGEgPSA3LFxuICBBcGlNZXRob2RGaWVsZCA9IDgsXG4gIERvd25sb2FkRG9jdW1lbnRzID0gOSxcbiAgVmlld0RvY3VtZW50cyA9IDEwLFxuICBVcGxvYWREb2N1bWVudHMgPSAxMSxcbn1cblxuZXhwb3J0IGVudW0gRGltZW5zaW9uVHlwZSB7XG4gIFBlcmNlbnRhZ2UsXG4gIFBpeGVscyxcbn1cblxuZXhwb3J0IGVudW0gTWFudWFsSW5wdXRDb250cm9sVHlwZSB7XG4gIFRleHQsXG4gIE51bWVyaWMsXG4gIERhdGVUaW1lLFxuICBFbWFpbCxcbiAgUGhvbmUsXG4gIFRleHRBcmVhLFxufVxuXG5leHBvcnQgZW51bSBTaWduYXR1cmVUeXBlIHtcbiAgRWxlY3Ryb25pYyxcbiAgSGFuZHdyaXR0ZW4sXG4gIFF1YWxpZmllZCxcbn1cblxuZXhwb3J0IGVudW0gQXBpTWV0aG9kVHlwZSB7XG4gIEdldERhdGEsXG4gIFNlbmREYXRhLFxuICBWYWxpZGF0aW9uLFxufVxuXG5leHBvcnQgY2xhc3MgU3RhdHVzTW9kZWwge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG9yZGVyOiBudW1iZXI7XG4gIGZpbmFsOiBib29sZWFuO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgYWN0aW9uczogU3RhdHVzQWN0aW9uW10gPSBbXTtcbiAgY2hpbGRBcHBsaWNhdGlvblV1aWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZGVudW1pcmU6IHN0cmluZyxcbiAgICBvcmRpbmU6IG51bWJlcixcbiAgICBmaW5hbDogYm9vbGVhbixcbiAgICBpc0FjdGl2ZTogYm9vbGVhbixcbiAgICBhY3Rpb25zOiBTdGF0dXNBY3Rpb25bXSxcbiAgICBjaGlsZEFwcGxpY2F0aW9uVXVpZHM6IHN0cmluZ1tdID0gW11cbiAgKSB7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMubmFtZSA9IGRlbnVtaXJlO1xuICAgIHRoaXMub3JkZXIgPSBvcmRpbmU7XG4gICAgdGhpcy5maW5hbCA9IGZpbmFsO1xuICAgIHRoaXMuaXNBY3RpdmUgPSBpc0FjdGl2ZTtcbiAgICB0aGlzLmFjdGlvbnMgPSBhY3Rpb25zO1xuICAgIHRoaXMuY2hpbGRBcHBsaWNhdGlvblV1aWRzID0gY2hpbGRBcHBsaWNhdGlvblV1aWRzIHx8IFtdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdGF0dXNBY3Rpb24ge1xuICBpZD86IHN0cmluZztcbiAgYWN0aW9uVGl0bGU6IHN0cmluZztcbiAgYXBpTWV0aG9kSWQ6IHN0cmluZztcbiAgcGFydG5lcklkczogbnVtYmVyW10gPSBbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFByZXNlbnRhdGlvblBhcmFncmFwaENvbnRyb2wgZXh0ZW5kcyBQcmVzZW50YXRpb25Db250cm9sIHtcbiAgZGVzY3JpcHRpb25UcmFuc2xhdGlvbnM6IExhYmVsSW5mb1tdO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBBcHBQYXJ0bmVyIGV4dGVuZHMgUGFydG5lciB7XG4gIGRvY3VtZW50cz86IEFwcFBhcnRuZXJEb2N1bWVudHNbXSA9IFtdO1xuICBnZW5lcmFsU2V0dGluZ3M6IEFwcFBhcnRuZXJHZW5lcmFsU2V0dGluZ3M7XG4gIHBhcnRuZXJTZXR0aW5nczogUGFydG5lclNldHRpbmdzO1xuICBwYXJ0bmVyRGljdGlvbmFyeU1hcHBpbmc6IFBhcnRuZXJEaWN0aW9uYXJ5TWFwcGluZ1tdO1xuICBwYXJ0bmVyU3RhdHVzTWFwcGluZzogUGFydG5lclN0YXR1c01hcHBpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcFBhcnRuZXJHZW5lcmFsU2V0dGluZ3Mge1xuICBhY2NlcHRNdWx0aXBsZU9mZmVyczogYm9vbGVhbjtcbiAgb2ZmZXJzOiBBcHBQYXJ0bmVyR2VuZXJhbFNldHRpbmdzT2ZmZXJbXSA9IFtdO1xuICByZWNlaXZlZE9mZmVyczogQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc1JlY2VpdmVkT2ZmZXJbXSA9IFtdO1xuICB2YWxhYmlsaXR5OiBudW1iZXI7XG4gIGhhc0N1c3RvbVZhbGFiaWxpdHk6IGJvb2xlYW47XG4gIHN0YXR1c1dvcmtlclNldHRpbmdzOiBBcHBTdGF0dXNXb3JrZXJTZXR0aW5ncztcbn1cbmV4cG9ydCBjbGFzcyBBcHBTdGF0dXNXb3JrZXJTZXR0aW5ncyB7XG4gIG1heFJldHJpZXM6IG51bWJlcjtcbiAgbG9vcEludGVydmFsOiBudW1iZXI7XG59XG5leHBvcnQgY2xhc3MgQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc09mZmVyIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBhcGlNZXRob2RJZDogc3RyaW5nO1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGN1c3RvbVZhbGFiaWxpdHk/OiBudW1iZXI7XG4gIGFwaU1ldGhvZEZpZWxkcz86IGFueVtdID0gW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBQYXJ0bmVyR2VuZXJhbFNldHRpbmdzUmVjZWl2ZWRPZmZlciB7XG4gIGlkOiBzdHJpbmc7XG4gIG9mZmVyczogQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc09mZmVyW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBQYXJ0bmVyRG9jdW1lbnRzIHtcbiAgaWQ6IHN0cmluZztcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBkb2N1bWVudE5hbWU6IHN0cmluZztcbiAgYXBpTWV0aG9kSWQ6IHN0cmluZztcbiAgaXNFZGl0TW9kZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcERvY3VtZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0cmFuc2xhdGlvbnM6IExhYmVsSW5mb1tdO1xuICBnZW5lcmF0ZWRCeUFwcDogYm9vbGVhbjtcbiAgaXNTdGF0aWM6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICB2ZXJzaW9uczogQXBwRG9jdW1lbnRWZXJzaW9uW10gPSBbXTtcbn1cbmV4cG9ydCBjbGFzcyBTaWduZWREb2N1bWVudCBleHRlbmRzIEFwcERvY3VtZW50IHtcbiAgc291cmNlRG9jdW1lbnRzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBEb2N1bWVudEV4dGVuZGVkIGV4dGVuZHMgQXBwRG9jdW1lbnQge1xuICBpc0FwaURvY3VtZW50PzogYm9vbGVhbjsgXG59XG5cbmV4cG9ydCBjbGFzcyBBcHBEb2N1bWVudFZlcnNpb24ge1xuICBpZDogbnVtYmVyO1xuICBhcHBsaWNhdGlvbklkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIHZhbGlkRnJvbTogRGF0ZTtcbiAgdmFsaWRUbzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgaXNFZGl0TW9kZTogYm9vbGVhbjtcbiAgZGF0YTogc3RyaW5nIHwgbnVsbDtcbiAgZmx1eEJvb2ttYXJrczogQm9va21hcmtNYXBwaW5nW107XG4gIGlzVGVtcG9yYXJ5OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQm9va21hcmtNYXBwaW5nIHtcbiAgYm9va21hcms6IHN0cmluZztcbiAgY29udHJvbElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvclRyYW5zbGF0aW9ucyB7XG4gIGNvZGU6IHN0cmluZztcbiAgdHJhbnNsYXRpb25zOiBMYWJlbEluZm9bXTtcbn1cblxuZXhwb3J0IGNsYXNzIFVwbG9hZERvY3VtZW50IHtcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBmaWxlTmFtZTogc3RyaW5nO1xuICBmaWxlRGF0YTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY2xhc3MgVXBsb2FkRG9jdW1lbnREZXRhaWxzIGV4dGVuZHMgVXBsb2FkRG9jdW1lbnQge1xuICBkb2N1bWVudE5hbWU6IHN0cmluZztcbiAgZG9jdW1lbnRFeHRlbnNpb25zOiBzdHJpbmc7XG4gIGRvY3VtZW50TWF4U2l6ZTogbnVtYmVyO1xuICBpc01hbmRhdG9yeTogYm9vbGVhbjtcbiAgaXNVcGxvYWRpbmc6IGJvb2xlYW47XG4gIGlzVXBsb2FkU3VjY2VzczogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFN0ZXBzU2V0dGluZ3Mge1xuICBzaG93Q291bnRlcjogYm9vbGVhbjtcbiAgc2hvd0xhYmVsczogYm9vbGVhbjtcbiAgc2hvd0FsbFN0ZXBzOiBib29sZWFuO1xuICBzaG93UHJvZ3Jlc3NCYXI6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEFwcERhdGFTdGF0dXMge1xuICBuZXcgPSAwLFxuICBmaW5pc2hlZCA9IDEsXG59XG4iXX0=
|
|
662
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL21vZGVscy9mb3Jtcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSxjQUFjLENBQUM7QUFFMUUsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNFLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsa0JBQWEsR0FBVyw2QkFBNkIsQ0FBQztRQUN0RCxvQkFBZSxHQUNiLDJEQUEyRCxDQUFDO0lBQ2hFLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxjQUFjO0lBQTNCO1FBQ0UsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFDRSwwQkFBcUIsR0FBa0IsSUFBSSxDQUFDO1FBQzVDLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUN2Qyx1QkFBa0IsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBQ3BFLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxTQUFTO0NBZ0JyQjtBQUVELE1BQU0sT0FBTyxjQUFjO0lBT3pCLFlBQ0UsWUFBb0IsRUFBRSxFQUN0QixZQUFvQixFQUFFLEVBQ3RCLGNBQXNCLEVBQUUsRUFDeEIsVUFBcUIsRUFDckIsWUFBdUI7UUFFdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFB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QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLCtDQUFPLENBQUE7SUFDUCx5REFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFiZWxJbmZvIH0gZnJvbSAnLi9sYWJlbC1pbmZvLm1vZGVsJztcbmltcG9ydCB7IFBhcnRuZXIgfSBmcm9tICcuL3BhcnRuZXIubW9kZWwnO1xuaW1wb3J0IHsgRGljdGlvbmFyeUxhYmVsSW5mbyB9IGZyb20gJy4uL290aGVycy9kaWN0aW9uYXJ5LWxhYmVsLWluZm8nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25NYXBwaW5ncyB9IGZyb20gJy4vYXBwbGljYXRpb24tdHlwZS5tb2RlbCc7XG5pbXBvcnQgeyBDc3NSdWxlcyB9IGZyb20gJy4uL290aGVycy91dGlscyc7XG5pbXBvcnQgeyBGbHV4SGVscGVyIH0gZnJvbSAnLi4vb3RoZXJzL2ZsdXgtaGVscGVyJztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkNvbnRyb2wsIFNlY3Rpb25EYXRhLCBTdGVwRGF0YSB9IGZyb20gJy4vZmx1eC5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Db25maWcge1xuICBlbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHRpdGxlVGVtcGxhdGU6IHN0cmluZyA9ICdTdGF0dXMgdXBkYXRlOiB7c3RhdHVzTmFtZX0nO1xuICBtZXNzYWdlVGVtcGxhdGU6IHN0cmluZyA9XG4gICAgJ1lvdXIgYXBwbGljYXRpb24gc3RhdHVzIGhhcyBiZWVuIHVwZGF0ZWQgdG86IHtzdGF0dXNOYW1lfSc7XG59XG5cbmV4cG9ydCBjbGFzcyBJbmhlcml0ZWRGaWVsZCB7XG4gIGlkOiBzdHJpbmcgPSAnJztcbiAgZmllbGROYW1lOiBzdHJpbmcgPSAnJztcbn1cblxuZXhwb3J0IGNsYXNzIFBhcmVudENoaWxkQ29uZmlnIHtcbiAgcGFyZW50QXBwbGljYXRpb25VdWlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgaW5oZXJpdGVkRmllbGRzOiBJbmhlcml0ZWRGaWVsZFtdID0gW107XG4gIG5vdGlmaWNhdGlvbkNvbmZpZzogTm90aWZpY2F0aW9uQ29uZmlnID0gbmV3IE5vdGlmaWNhdGlvbkNvbmZpZygpO1xufVxuXG5leHBvcnQgY2xhc3MgRm9ybU1vZGVsIHtcbiAgYXBwbGljYXRpb25JZDogbnVtYmVyO1xuICBhcHBsaWNhdGlvblV1aWQ6IHN0cmluZztcbiAgZ2VuZXJhbERhdGE6IEdlbmVyYWxEYXRhTW9kZWw7XG4gIGRlc2lnbjogRGVzaWduTW9kZWw7XG4gIGZsdXg6IFN0ZXBEYXRhW107XG4gIGFwaTogQXBpRGF0YTtcbiAgcGFydG5lcnM6IEFwcFBhcnRuZXJbXTtcbiAgZG9jdW1lbnRzOiBBcHBEb2N1bWVudFtdO1xuICBzdGF0dXNlczogU3RhdHVzTW9kZWxbXTtcbiAgZGlzcGxheTogRGlzcGxheU1vZGVsO1xuICBnZW5lcmF0ZWRDc3M6IENzc1J1bGVzO1xuICBtZXRhZGF0YUZpZWxkczogW107XG4gIGVycm9yczogeyBbdGFiTmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcbiAgYXBwbGljYXRpb25NYXBwaW5nczogQXBwbGljYXRpb25NYXBwaW5ncztcbiAgcGFyZW50Q2hpbGRDb25maWc/OiBQYXJlbnRDaGlsZENvbmZpZztcbn1cblxuZXhwb3J0IGNsYXNzIEFwcERhdGFDb250cm9sIHtcbiAgY29udHJvbElkOiBzdHJpbmc7XG4gIGZpbGxWYWx1ZTogc3RyaW5nO1xuICBmaWxsVmFsdWVJZDogc3RyaW5nO1xuICBmaWxsVmFsdWVzPzogc3RyaW5nW107XG4gIGZpbGxWYWx1ZUlkcz86IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbnRyb2xJZDogc3RyaW5nID0gJycsXG4gICAgZmlsbFZhbHVlOiBzdHJpbmcgPSAnJyxcbiAgICBmaWxsVmFsdWVJZDogc3RyaW5nID0gJycsXG4gICAgZmlsbFZhbHVlcz86IHN0cmluZ1tdLFxuICAgIGZpbGxWYWx1ZUlkcz86IHN0cmluZ1tdXG4gICkge1xuICAgIHRoaXMuY29udHJvbElkID0gY29udHJvbElkIHx8ICcnO1xuICAgIHRoaXMuZmlsbFZhbHVlID0gZmlsbFZhbHVlIHx8ICcnO1xuICAgIHRoaXMuZmlsbFZhbHVlSWQgPSBmaWxsVmFsdWVJZCB8fCAnJztcbiAgICB0aGlzLmZpbGxWYWx1ZXMgPSBmaWxsVmFsdWVzO1xuICAgIHRoaXMuZmlsbFZhbHVlSWRzID0gZmlsbFZhbHVlSWRzO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBEYXRhU2VjdGlvbiB7XG4gIHNlY3Rpb25JZDogc3RyaW5nO1xuICBjb250cm9sczogQXBwRGF0YUNvbnRyb2xbXTtcblxuICBjb25zdHJ1Y3RvcihzZWN0aW9uSWQ6IHN0cmluZyA9ICcnLCBjb250cm9sczogQXBwRGF0YUNvbnRyb2xbXSA9IFtdKSB7XG4gICAgdGhpcy5zZWN0aW9uSWQgPSBzZWN0aW9uSWQgfHwgJyc7XG4gICAgdGhpcy5jb250cm9scyA9IGNvbnRyb2xzIHx8IFtdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBEYXRhU3RlcCB7XG4gIHN0ZXBJZDogc3RyaW5nO1xuICB0eXBlOiBudW1iZXI7XG4gIHNlY3Rpb25zOiBBcHBEYXRhU2VjdGlvbltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0ZXBJZDogc3RyaW5nID0gJycsXG4gICAgdHlwZTogbnVtYmVyLFxuICAgIHNlY3Rpb25zOiBBcHBEYXRhU2VjdGlvbltdID0gW11cbiAgKSB7XG4gICAgdGhpcy5zdGVwSWQgPSBzdGVwSWQgfHwgJyc7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnNlY3Rpb25zID0gc2VjdGlvbnMgfHwgW107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcERhdGFGaWxsIHtcbiAgbWV0YWRhdGE6IHtcbiAgICBhcHBEYXRhSWQ6IHN0cmluZztcbiAgICBjb25maWd1cmF0aW9uSWQ6IHN0cmluZztcbiAgICBjdXJyZW50U3RlcElkOiBzdHJpbmc7XG4gICAgc3RhdHVzSWQ6IHN0cmluZztcbiAgICBsYW5ndWFnZTogc3RyaW5nO1xuICAgIG9mZmVySWQ6IHN0cmluZztcbiAgICBpc1N1Ym1pdHRlZDogYm9vbGVhbjtcbiAgICBwYXJlbnRBcHBEYXRhVXVpZD86IHN0cmluZztcbiAgfTtcbiAgZmx1eDogQXBwRGF0YVN0ZXBbXTtcbiAgaW5pdEZsb3dWYWx1ZXM/OiBhbnk7XG4gIGluaGVyaXRlZEZpZWxkcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYXBwRGF0YUlkOiBzdHJpbmcgPSAnJyxcbiAgICBjb25maWd1cmF0aW9uSWQ6IHN0cmluZyA9ICcnLFxuICAgIGN1cnJlbnRTdGVwSWQ6IHN0cmluZyA9ICcnLFxuICAgIHN0YXR1c0lkOiBzdHJpbmcgPSAnJyxcbiAgICBsYW5ndWFnZTogc3RyaW5nID0gJycsXG4gICAgZmx1eDogQXBwRGF0YVN0ZXBbXSA9IFtdLFxuICAgIG9mZmVySWQ6IHN0cmluZyA9ICcnLFxuICAgIGlzU3VibWl0dGVkOiBib29sZWFuID0gZmFsc2UsXG4gICAgcGFyZW50QXBwRGF0YVV1aWQ6IHN0cmluZyA9ICcnXG4gICkge1xuICAgIHRoaXMubWV0YWRhdGEgPSB7XG4gICAgICBhcHBEYXRhSWQ6IGFwcERhdGFJZCB8fCAnJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25JZDogY29uZmlndXJhdGlvbklkIHx8ICcnLFxuICAgICAgY3VycmVudFN0ZXBJZDogY3VycmVudFN0ZXBJZCB8fCAnJyxcbiAgICAgIHN0YXR1c0lkOiBzdGF0dXNJZCB8fCAnJyxcbiAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZSB8fCAnJyxcbiAgICAgIG9mZmVySWQ6IG9mZmVySWQgfHwgJycsXG4gICAgICBpc1N1Ym1pdHRlZDogaXNTdWJtaXR0ZWQgfHwgZmFsc2UsXG4gICAgICBwYXJlbnRBcHBEYXRhVXVpZDogcGFyZW50QXBwRGF0YVV1aWQgfHwgJydcbiAgICB9O1xuICAgIHRoaXMuZmx1eCA9IGZsdXggfHwgW107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcERhdGEge1xuICBpZD86IG51bWJlcjtcbiAgYXBwRGF0YUlkOiBzdHJpbmc7XG4gIGFwcENvbmZpZ3VyYXRpb25JZDogbnVtYmVyO1xuICBmaWxsRGF0YT86IEFwcERhdGFGaWxsO1xuICBpbml0Rmxvd1ZhbHVlcz86IHN0cmluZztcbiAgd2l0aE5leHRTdGVwOiBib29sZWFuO1xuICBibG9ja1ByZXZpb3VzU3RlcDogYm9vbGVhbjtcbiAgZW52OiBzdHJpbmc7XG4gIHN0YXR1czogQXBwRGF0YVN0YXR1cztcbiAgcGFyZW50QXBwRGF0YVV1aWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YToge1xuICAgIGlkPzogbnVtYmVyO1xuICAgIGFwcERhdGFJZDogc3RyaW5nO1xuICAgIGFwcENvbmZpZ3VyYXRpb25JZDogbnVtYmVyO1xuICAgIGZpbGxEYXRhPzogQXBwRGF0YUZpbGw7XG4gICAgaW5pdEZsb3dWYWx1ZXM/OiBzdHJpbmc7XG4gICAgd2l0aE5leHRTdGVwOiBib29sZWFuO1xuICAgIGJsb2NrUHJldmlvdXNTdGVwOiBib29sZWFuO1xuICAgIGVudjogc3RyaW5nO1xuICAgIHBhcmVudEFwcERhdGFVdWlkPzogc3RyaW5nO1xuICB9KSB7XG4gICAgKCh0aGlzLmlkID0gZGF0YS5pZCA/PyB1bmRlZmluZWQpLCAodGhpcy5hcHBEYXRhSWQgPSBkYXRhLmFwcERhdGFJZCB8fCAnJykpO1xuICAgIHRoaXMuYXBwQ29uZmlndXJhdGlvbklkID0gZGF0YS5hcHBDb25maWd1cmF0aW9uSWQgfHwgMDtcbiAgICB0aGlzLmZpbGxEYXRhID0gZGF0YS5maWxsRGF0YTtcbiAgICB0aGlzLmluaXRGbG93VmFsdWVzID0gZGF0YS5pbml0Rmxvd1ZhbHVlcztcbiAgICB0aGlzLndpdGhOZXh0U3RlcCA9IGRhdGEud2l0aE5leHRTdGVwO1xuICAgIHRoaXMuYmxvY2tQcmV2aW91c1N0ZXAgPSBkYXRhLmJsb2NrUHJldmlvdXNTdGVwO1xuICAgIHRoaXMucGFyZW50QXBwRGF0YVV1aWQgPSBkYXRhLnBhcmVudEFwcERhdGFVdWlkO1xuICAgIGlmICghZGF0YS5lbnYpIHtcbiAgICAgIHRoaXMuZW52ID0gJ0NvbmZpZyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW52ID0gZGF0YS5lbnY7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtTW9kZWxFeHRlbnhpb25zIHtcbiAgZm9ybU1vZGVsOiBGb3JtTW9kZWw7XG5cbiAgY29uc3RydWN0b3IobW9kZWw6IEZvcm1Nb2RlbCkge1xuICAgIHRoaXMuZm9ybU1vZGVsID0gbW9kZWw7XG4gIH1cblxuICBwcml2YXRlIGFkZEluaXRGbG93VmFsdWVzSXRlbXMoaXRlbXM6IE1ldGhvZEZpZWxkW10pOiB2b2lkIHtcbiAgICBjb25zdCBpbml0Rmxvd1ZhbHVlc1JhdyA9ICh0aGlzLmZvcm1Nb2RlbCBhcyBhbnkpPy5nZW5lcmFsRGF0YVxuICAgICAgPy5pbml0Rmxvd1ZhbHVlcztcbiAgICBpZiAoaW5pdEZsb3dWYWx1ZXNSYXcgPT09IG51bGwgfHwgaW5pdEZsb3dWYWx1ZXNSYXcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBwYXJzZWQ6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIGluaXRGbG93VmFsdWVzUmF3ID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgdHJpbW1lZCA9IGluaXRGbG93VmFsdWVzUmF3LnRyaW0oKTtcbiAgICAgIGlmICghdHJpbW1lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKHRyaW1tZWQpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIElmIGNvbmZpZyBjb250YWlucyBpbnZhbGlkIEpTT04sIGRvIG5vdCBleHBvc2UgYW55IGluaXRGbG93VmFsdWVzIGZpZWxkcy5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZWQgPSBpbml0Rmxvd1ZhbHVlc1JhdztcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQoaXRlbXMubWFwKChpKSA9PiBpLmlkKSk7XG4gICAgY29uc3Qgb3V0OiBNZXRob2RGaWVsZFtdID0gW107XG5cbiAgICBjb25zdCB3YWxrID0gKG5vZGU6IGFueSwgcGF0aFBhcnRzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgaWYgKG5vZGUgPT09IG51bGwgfHwgbm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChwYXRoUGFydHMubGVuZ3RoID4gMCkgb3V0LnB1c2godGhpcy5idWlsZEluaXRGbG93RmllbGQocGF0aFBhcnRzKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgICAgbm9kZS5mb3JFYWNoKChjaGlsZCwgaWR4KSA9PiB3YWxrKGNoaWxkLCBbLi4ucGF0aFBhcnRzLCBTdHJpbmcoaWR4KV0pKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIG5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG5vZGUpLmZvckVhY2goKGtleSkgPT5cbiAgICAgICAgICB3YWxrKG5vZGVba2V5XSwgWy4uLnBhdGhQYXJ0cywga2V5XSlcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocGF0aFBhcnRzLmxlbmd0aCA+IDApIG91dC5wdXNoKHRoaXMuYnVpbGRJbml0Rmxvd0ZpZWxkKHBhdGhQYXJ0cykpO1xuICAgIH07XG5cbiAgICB3YWxrKHBhcnNlZCwgW10pO1xuXG4gICAgZm9yIChjb25zdCBmIG9mIG91dCkge1xuICAgICAgaWYgKCFleGlzdGluZ0lkcy5oYXMoZi5pZCkpIHtcbiAgICAgICAgaXRlbXMucHVzaChmKTtcbiAgICAgICAgZXhpc3RpbmdJZHMuYWRkKGYuaWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJbml0Rmxvd0ZpZWxkKHBhdGhQYXJ0czogc3RyaW5nW10pOiBNZXRob2RGaWVsZCB7XG4gICAgY29uc3QgdW5kZXJzY29yZVBhdGggPSBwYXRoUGFydHMuam9pbignXycpO1xuICAgIHJldHVybiB7XG4gICAgICBmaWVsZE5hbWU6IGBpbml0Rmxvd1ZhbHVlc18ke3VuZGVyc2NvcmVQYXRofWAsXG4gICAgICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZS5NZXRhZGF0YSxcbiAgICAgIGlkOiBgaW5pdEZsb3dWYWx1ZXNfJHt1bmRlcnNjb3JlUGF0aH1gXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBmbHV4SXRlbXMoXG4gICAgdW50aWxTdGVwSWRlbnRpZmllcjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gICk6IE1ldGhvZEZpZWxkW10ge1xuICAgIGxldCBpdGVtczogTWV0aG9kRmllbGRbXSA9IFtdO1xuXG4gICAgaWYgKHRoaXMuZm9ybU1vZGVsLm1ldGFkYXRhRmllbGRzKSB7XG4gICAgICB0aGlzLmZvcm1Nb2RlbC5tZXRhZGF0YUZpZWxkcy5mb3JFYWNoKChmaWVsZFZhbHVlKSA9PiB7XG4gICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgIGZpZWxkTmFtZTogZmllbGRWYWx1ZSxcbiAgICAgICAgICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZS5NZXRhZGF0YSxcbiAgICAgICAgICBpZDogYG1ldGFkYXRhLiR7ZmllbGRWYWx1ZX1gXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRJbml0Rmxvd1ZhbHVlc0l0ZW1zKGl0ZW1zKTtcblxuICAgIGlmICghdGhpcy5mb3JtTW9kZWw/LmZsdXgpIHtcbiAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb3JtTW9kZWwuZG9jdW1lbnRzPy5sZW5ndGggPiAwKSB7XG4gICAgICBpdGVtcyA9IGl0ZW1zLmNvbmNhdCh0aGlzLmV4dHJhY3REb2N1bWVudHNGbHV4SXRlbXModGhpcy5mb3JtTW9kZWwuZmx1eCkpO1xuICAgIH1cbiAgICBpdGVtcyA9IGl0ZW1zLmNvbmNhdChcbiAgICAgIHRoaXMuZXh0cmFjdFNlY3Rpb25zRmx1eEl0ZW1zKHRoaXMuZm9ybU1vZGVsLmZsdXgsIHVudGlsU3RlcElkZW50aWZpZXIpXG4gICAgKTtcblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuICBwcml2YXRlIGV4dHJhY3RTZWN0aW9uc0ZsdXhJdGVtcyhcbiAgICBzdGVwczogU3RlcERhdGFbXSxcbiAgICB1bnRpbFN0ZXBJZGVudGlmaWVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgKTogTWV0aG9kRmllbGRbXSB7XG4gICAgbGV0IGl0ZW1zOiBNZXRob2RGaWVsZFtdID0gW107XG5cbiAgICBmb3IgKGxldCBzdGVwIG9mIHN0ZXBzKSB7XG4gICAgICBpZiAoc3RlcC5zZWN0aW9ucykge1xuICAgICAgICBpZiAodW50aWxTdGVwSWRlbnRpZmllciAmJiBzdGVwLmlkZW50aWZpZXIgPT09IHVudGlsU3RlcElkZW50aWZpZXIpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBzdGVwLnNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoc2VjdGlvbi5jb250cm9scykge1xuICAgICAgICAgICAgc2VjdGlvbi5jb250cm9scy5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBTdGVwQ29udHJvbFR5cGUuQnV0dG9ucyxcbiAgICAgICAgICAgICAgICAgIFN0ZXBDb250cm9sVHlwZS5OZXdSb3csXG4gICAgICAgICAgICAgICAgICBTdGVwQ29udHJvbFR5cGUuRmx1eEluZm8sXG4gICAgICAgICAgICAgICAgICBTdGVwQ29udHJvbFR5cGUuUGFyYWdyYXBoXG4gICAgICAgICAgICAgICAgXS5pbmNsdWRlcyhjb250cm9sLnR5cGUpID09IGZhbHNlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7c2VjdGlvbi50aXRsZX0gLT4gJHtjb250cm9sLnRpdGxlfWAsXG4gICAgICAgICAgICAgICAgICBmaWVsZFR5cGU6IGNvbnRyb2wudHlwZSxcbiAgICAgICAgICAgICAgICAgIG1hbnVsSW5wdXRDb250cm9sVHlwZTogY29udHJvbC5zcGVjaWZpY0NvbnRyb2xEYXRhPy50eXBlLFxuICAgICAgICAgICAgICAgICAgaWQ6IGNvbnRyb2wuaWRlbnRpZmllclxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdERvY3VtZW50c0ZsdXhJdGVtcyhzdGVwRGF0YTogU3RlcERhdGFbXSk6IE1ldGhvZEZpZWxkW10ge1xuICAgIGxldCBpdGVtczogTWV0aG9kRmllbGRbXSA9IFtdO1xuXG4gICAgc3RlcERhdGE/LmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgIGlmIChzdGVwLnR5cGUgPT09IEZsdXhUeXBlLlVwbG9hZERvY3VtZW50KSB7XG4gICAgICAgIHN0ZXAuY29uZmlnPy5kb2N1bWVudHM/LmZvckVhY2goXG4gICAgICAgICAgKGRvY3VtZW50OiB7IGRvY3VtZW50SWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZE5hbWU6IGAke3N0ZXAubmFtZX0gLT4gJHtcbiAgICAgICAgICAgICAgICBGbHV4SGVscGVyLmdldERvY3VtZW50TmFtZUJ5SWQoXG4gICAgICAgICAgICAgICAgICBkb2N1bWVudD8uZG9jdW1lbnRJZCxcbiAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybU1vZGVsXG4gICAgICAgICAgICAgICAgKSB8fCBkb2N1bWVudC5uYW1lXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICBmaWVsZFR5cGU6IHN0ZXAudHlwZSxcbiAgICAgICAgICAgICAgaWQ6IGRvY3VtZW50Py5kb2N1bWVudElkXG4gICAgICAgICAgICAgICAgPyBgdXBsb2FkLiR7ZG9jdW1lbnQuZG9jdW1lbnRJZH1gXG4gICAgICAgICAgICAgICAgOiBgJHtzdGVwLnR5cGV9LiR7c3RlcC5uYW1lfWBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoc3RlcC50eXBlID09PSBGbHV4VHlwZS5HZW5lcmF0ZURvY3VtZW50KSB7XG4gICAgICAgIHN0ZXAuY29uZmlnPy5nZW5lcmF0ZWREb2N1bWVudHM/LmZvckVhY2goXG4gICAgICAgICAgKGRvY3VtZW50OiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7XG4gICAgICAgICAgICAgICAgRmx1eEhlbHBlci5nZXREb2N1bWVudE5hbWVCeUlkKGRvY3VtZW50Py5pZCwgdGhpcy5mb3JtTW9kZWwpIHx8XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQubmFtZVxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgZmllbGRUeXBlOiBzdGVwLnR5cGUsXG4gICAgICAgICAgICAgIGlkOiBkb2N1bWVudD8uaWRcbiAgICAgICAgICAgICAgICA/IGBnZW5lcmF0ZS4ke2RvY3VtZW50LmlkfWBcbiAgICAgICAgICAgICAgICA6IGAke3N0ZXAudHlwZX0uJHtzdGVwLm5hbWV9YFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChzdGVwLnR5cGUgPT09IEZsdXhUeXBlLlNpZ24pIHtcbiAgICAgICAgaWYgKHN0ZXAuY29uZmlnPy5kb2N1bWVudHMpIHtcbiAgICAgICAgICBzdGVwLmNvbmZpZz8uZG9jdW1lbnRzLmZvckVhY2goXG4gICAgICAgICAgICAoZG9jdW1lbnQ6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7XG4gICAgICAgICAgICAgICAgICBGbHV4SGVscGVyLmdldERvY3VtZW50TmFtZUJ5SWQoXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Py5pZCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtTW9kZWxcbiAgICAgICAgICAgICAgICAgICkgfHwgZG9jdW1lbnQubmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogc3RlcC50eXBlLFxuICAgICAgICAgICAgICAgIGlkOiBkb2N1bWVudD8uaWRcbiAgICAgICAgICAgICAgICAgID8gYHNpZ24uJHtkb2N1bWVudC5pZH1gXG4gICAgICAgICAgICAgICAgICA6IGAke3N0ZXAudHlwZX0uJHtzdGVwLm5hbWV9YFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0ZXAuY29uZmlnPy5zeXN0ZW1Eb2N1bWVudHMpIHtcbiAgICAgICAgICBzdGVwLmNvbmZpZz8uc3lzdGVtRG9jdW1lbnRzLmZvckVhY2goXG4gICAgICAgICAgICAoZG9jdW1lbnQ6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGROYW1lOiBgJHtzdGVwLm5hbWV9IC0+ICR7XG4gICAgICAgICAgICAgICAgICBGbHV4SGVscGVyLmdldERvY3VtZW50TmFtZUJ5SWQoXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Py5pZCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtTW9kZWxcbiAgICAgICAgICAgICAgICAgICkgfHwgZG9jdW1lbnQubmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogc3RlcC50eXBlLFxuICAgICAgICAgICAgICAgIGlkOiBkb2N1bWVudD8uaWRcbiAgICAgICAgICAgICAgICAgID8gYHN5c3RlbS4ke2RvY3VtZW50LmlkfWBcbiAgICAgICAgICAgICAgICAgIDogYCR7c3RlcC50eXBlfS4ke3N0ZXAubmFtZX1gXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBwdWJsaWMgZmx1eEl0ZW1zV2l0aEdldEFwaU1ldGhvZHMoXG4gICAgZXhjbHVkZWRNZXRob2RJZDogc3RyaW5nID0gJydcbiAgKTogTWV0aG9kRmllbGRbXSB7XG4gICAgbGV0IGl0ZW1zID0gdGhpcy5mbHV4SXRlbXMoKTtcbiAgICB0aGlzLmZvcm1Nb2RlbC5hcGkuZ2V0SXRlbXMuZm9yRWFjaCgoYXBpTWV0aG9kKSA9PiB7XG4gICAgICBpZiAoYXBpTWV0aG9kLmlkICE9PSBleGNsdWRlZE1ldGhvZElkKSB7XG4gICAgICAgIGFwaU1ldGhvZC5maWVsZHM/LmZvckVhY2goKGYpID0+IHtcbiAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkTmFtZTogYCR7YXBpTWV0aG9kLm1ldGhvZH0gLT4gJHtmLmZpZWxkTmFtZX1gLFxuICAgICAgICAgICAgZmllbGRUeXBlOiBTdGVwQ29udHJvbFR5cGUuQXBpTWV0aG9kRmllbGQsXG4gICAgICAgICAgICBpZDogZi5pZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHB1YmxpYyBvZmZlck1ldGhvZHNJdGVtcygpOiBNZXRob2RGaWVsZFtdIHtcbiAgICBsZXQgaXRlbXM6IE1ldGhvZEZpZWxkW10gPSBbXTtcblxuICAgIGxldCBvZmZlck1ldGhvZHNJZHM6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5mb3JtTW9kZWwucGFydG5lcnM/LmZvckVhY2goKHApID0+IHtcbiAgICAgIHAuZ2VuZXJhbFNldHRpbmdzLm9mZmVycz8uZm9yRWFjaCgobykgPT4ge1xuICAgICAgICBvZmZlck1ldGhvZHNJZHMucHVzaChvLmFwaU1ldGhvZElkKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgb2ZmZXJNZXRob2RzSWRzID0gWy4uLm5ldyBTZXQob2ZmZXJNZXRob2RzSWRzKV07XG5cbiAgICBjb25zdCBhbGxBcGlJdGVtcyA9IFtcbiAgICAgIC4uLnRoaXMuZm9ybU1vZGVsLmFwaS5nZXRJdGVtcyxcbiAgICAgIC4uLnRoaXMuZm9ybU1vZGVsLmFwaS52YWxpZGF0aW9uSXRlbXMsXG4gICAgICAuLi50aGlzLmZvcm1Nb2RlbC5hcGkuc2VuZEl0ZW1zXG4gICAgXTtcblxuICAgIG9mZmVyTWV0aG9kc0lkcy5mb3JFYWNoKChtZXRob2RJZCkgPT4ge1xuICAgICAgY29uc3QgYXBpTWV0aG9kID0gYWxsQXBpSXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gbWV0aG9kSWQpO1xuICAgICAgaWYgKGFwaU1ldGhvZCkge1xuICAgICAgICBhcGlNZXRob2QuZmllbGRzPy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZE5hbWU6IGAke2FwaU1ldGhvZC5tZXRob2R9IC0+ICR7Zi5maWVsZE5hbWV9YCxcbiAgICAgICAgICAgIGZpZWxkVHlwZTogRmx1eFR5cGUuVmlld09mZmVyLFxuICAgICAgICAgICAgaWQ6IGBhcGlfJHthcGlNZXRob2QuaWR9IC0+ICR7Zi5pZH1gXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcGlEYXRhIHtcbiAgZ2V0SXRlbXM6IEdldEFwaUl0ZW1bXTtcbiAgdmFsaWRhdGlvbkl0ZW1zOiBBcGlJdGVtW107XG4gIHNlbmRJdGVtczogQXBpSXRlbVtdO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpSXRlbSB7XG4gIGlkOiBzdHJpbmc7XG4gIG1ldGhvZDogc3RyaW5nO1xuICBmaWVsZHM6IE1ldGhvZEZpZWxkW107XG4gIHR5cGU6IEFwaU1ldGhvZFR5cGU7XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRBcGlJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgbWV0aG9kOiBzdHJpbmc7XG4gIGZpZWxkczogR2V0TWV0aG9kRmllbGRbXTtcbiAgdHlwZTogQXBpTWV0aG9kVHlwZTtcbn1cbmV4cG9ydCBjbGFzcyBEZXNpZ25Nb2RlbCB7XG4gIGZvbnRzOiBGb250Q29uZmlnW10gPSBbXTtcbiAgYnV0dG9uczogQnV0dG9uQ29uZmlnW10gPSBbXTtcbiAgb3RwQWN0aW9uQnV0dG9uczogQnV0dG9uQ29uZmlnW10gPSBbXTtcbiAgY29tcG9uZW50czogQ29tcG9uZW50Q29uZmlnW10gPSBbXTtcbiAgdGFibGVzOiBUYWJsZUNvbmZpZ1tdID0gW107XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICBmb250U2l6ZTogc3RyaW5nO1xuICBidXR0b25zSG9yaXpvbnRhbFBvc2l0aW9uOiBzdHJpbmc7XG4gIGJ1dHRvbnNWZXJ0aWNhbFBvc2l0aW9uOiBzdHJpbmc7XG4gIG1heFdpZHRoOiBzdHJpbmc7XG4gIG1hcmdpbkxlZnQ6IHN0cmluZztcbiAgbWFyZ2luUmlnaHQ6IHN0cmluZztcbiAgbWFyZ2luVG9wOiBzdHJpbmc7XG4gIG1hcmdpbkJvdHRvbTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKGRhdGEuZm9udHMpIHtcbiAgICAgICAgdGhpcy5mb250cyA9IGRhdGEuZm9udHMubWFwKChmb250OiBhbnkpID0+IG5ldyBGb250Q29uZmlnKGZvbnQpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGEuYnV0dG9ucykge1xuICAgICAgICB0aGlzLmJ1dHRvbnMgPSBkYXRhLmJ1dHRvbnMubWFwKFxuICAgICAgICAgIChidXR0b246IGFueSkgPT4gbmV3IEJ1dHRvbkNvbmZpZyhidXR0b24pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhLmNvbXBvbmVudHMpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRzID0gZGF0YS5jb21wb25lbnRzLm1hcChcbiAgICAgICAgICAoY29tcG9uZW50OiBhbnkpID0+IG5ldyBDb21wb25lbnRDb25maWcoY29tcG9uZW50KVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YS50YWJsZXMpIHtcbiAgICAgICAgdGhpcy50YWJsZXMgPSBkYXRhLnRhYmxlcy5tYXAoKHRhYmxlOiBhbnkpID0+IG5ldyBUYWJsZUNvbmZpZyh0YWJsZSkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGRhdGEuYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy5mb250U2l6ZSA9IGRhdGEuZm9udFNpemU7XG4gICAgICB0aGlzLmJ1dHRvbnNIb3Jpem9udGFsUG9zaXRpb24gPSBkYXRhLmhvcml6b250YWxQb3NpdGlvbjtcbiAgICAgIHRoaXMuYnV0dG9uc1ZlcnRpY2FsUG9zaXRpb24gPSBkYXRhLnZlcnRpY2FsUG9zaXRpb247XG4gICAgICB0aGlzLm1heFdpZHRoID0gZGF0YS5tYXhXaWR0aDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvbnRDb25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIGZvbnRGYW1pbHk6IHN0cmluZztcbiAgZm9udFNpemU6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgZm9udFdlaWdodDogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbiAgbGV0dGVyU3BhY2luZzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgdGhpcy5mb250RmFtaWx5ID0gZGF0YS5mb250RmFtaWx5O1xuICAgICAgdGhpcy5mb250U2l6ZSA9IGRhdGEuZm9udFNpemU7XG4gICAgICB0aGlzLmNvbG9yID0gZGF0YS5jb2xvcjtcbiAgICAgIHRoaXMuZm9udFdlaWdodCA9IGRhdGEuZm9udFdlaWdodDtcbiAgICAgIHRoaXMudGV4dEFsaWduID0gZGF0YS50ZXh0QWxpZ247XG4gICAgICB0aGlzLmxldHRlclNwYWNpbmcgPSBkYXRhLmxldHRlclNwYWNpbmc7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCdXR0b25Db25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBib3JkZXI6IHN0cmluZztcbiAgYm9yZGVyQ29sb3I6IHN0cmluZztcbiAgYm9yZGVyUmFkaXVzOiBzdHJpbmc7XG4gIGhvcml6b250YWxQYWRkaW5nOiBzdHJpbmc7XG4gIHZlcnRpY2FsUGFkZGluZzogc3RyaW5nO1xuICBmb250RmFtaWx5OiBzdHJpbmc7XG4gIGZvbnRTaXplOiBzdHJpbmc7XG4gIGxldHRlclNwYWNpbmc6IHN0cmluZztcbiAgd2lkdGg6IHN0cmluZztcbiAgaGVpZ2h0OiBzdHJpbmc7XG4gIG1pbldpZHRoOiBzdHJpbmc7XG4gIG1pbkhlaWdodDogc3RyaW5nO1xuICBtYXhXaWR0aDogc3RyaW5nO1xuICBtYXhIZWlnaHQ6IHN0cmluZztcbiAgaG9yaXpvbnRhbFBvc2l0aW9uPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSBkYXRhLmJhY2tncm91bmRDb2xvcjtcbiAgICAgIHRoaXMuY29sb3IgPSBkYXRhLmNvbG9yO1xuICAgICAgdGhpcy5ib3JkZXIgPSBkYXRhLmJvcmRlcjtcbiAgICAgIHRoaXMuYm9yZGVyQ29sb3IgPSBkYXRhLmJvcmRlckNvbG9yO1xuICAgICAgdGhpcy5ib3JkZXJSYWRpdXMgPSBkYXRhLmJvcmRlclJhZGl1cztcbiAgICAgIHRoaXMuaG9yaXpvbnRhbFBhZGRpbmcgPSBkYXRhLmhvcml6b250YWxQYWRkaW5nO1xuICAgICAgdGhpcy52ZXJ0aWNhbFBhZGRpbmcgPSBkYXRhLnZlcnRpY2FsUGFkZGluZztcbiAgICAgIHRoaXMuZm9udEZhbWlseSA9IGRhdGEuZm9udEZhbWlseTtcbiAgICAgIHRoaXMuZm9udFNpemUgPSBkYXRhLmZvbnRTaXplO1xuICAgICAgdGhpcy5sZXR0ZXJTcGFjaW5nID0gZGF0YS5sZXR0ZXJTcGFjaW5nO1xuICAgICAgdGhpcy53aWR0aCA9IGRhdGEud2lkdGg7XG4gICAgICB0aGlzLmhlaWdodCA9IGRhdGEuaGVpZ2h0O1xuICAgICAgdGhpcy5taW5XaWR0aCA9IGRhdGEubWluV2lkdGg7XG4gICAgICB0aGlzLm1pbkhlaWdodCA9IGRhdGEubWluSGVpZ2h0O1xuICAgICAgdGhpcy5tYXhXaWR0aCA9IGRhdGEubWF4V2lkdGg7XG4gICAgICB0aGlzLm1heEhlaWdodCA9IGRhdGEubWF4SGVpZ2h0O1xuICAgICAgdGhpcy5ob3Jpem9udGFsUG9zaXRpb24gPSBkYXRhLmhvcml6b250YWxQb3NpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlQ29uZmlnIHtcbiAgaGVhZGVyQ29uZmlnOiBIZWFkZXJDb25maWc7XG4gIGRldGFpbENvbmZpZzogRGV0YWlsQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKHRhYmxlPzogYW55KSB7XG4gICAgaWYgKHRhYmxlKSB7XG4gICAgICB0aGlzLmhlYWRlckNvbmZpZyA9IHRhYmxlLmhlYWRlckNvbmZpZztcbiAgICAgIHRoaXMuZGV0YWlsQ29uZmlnID0gdGFibGUuZGV0YWlsQ29uZmlnO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgdGV4dENvbG9yOiBzdHJpbmc7XG4gIGJvcmRlcjogc3RyaW5nO1xuICBib3JkZXJDb2xvcjogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbiAgZm9udEZhbWlseTogc3RyaW5nO1xuICBmb250U2l6ZTogc3RyaW5nO1xuICBsZXR0ZXJTcGFjaW5nOiBzdHJpbmc7XG4gIHBhZGRpbmc6IHN0cmluZztcbiAgYm9yZGVyQ29sbGFwc2U6IHN0cmluZztcbiAgYm9yZGVyU3BhY2luZzogc3RyaW5nO1xuICB2ZXJ0aWNhbEFsaWduOiBzdHJpbmc7XG4gIHdpZHRoOiBzdHJpbmc7XG4gIGhlaWdodDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSBkYXRhLmJhY2tncm91bmRDb2xvcjtcbiAgICAgIHRoaXMudGV4dENvbG9yID0gZGF0YS5jb2xvcjtcbiAgICAgIHRoaXMuYm9yZGVyID0gZGF0YS5ib3JkZXI7XG4gICAgICB0aGlzLnRleHRBbGlnbiA9IGRhdGEudGV4dEFsaWduO1xuICAgICAgdGhpcy5mb250RmFtaWx5ID0gZGF0YS5mb250RmFtaWx5O1xuICAgICAgdGhpcy5mb250U2l6ZSA9IGRhdGEuZm9udFNpemU7XG4gICAgICB0aGlzLmxldHRlclNwYWNpbmcgPSBkYXRhLmxldHRlclNwYWNpbmc7XG4gICAgICB0aGlzLnBhZGRpbmcgPSBkYXRhLnBhZGRpbmc7XG4gICAgICB0aGlzLmJvcmRlckNvbGxhcHNlID0gZGF0YS5ib3JkZXJDb2xsYXBzZTtcbiAgICAgIHRoaXMuYm9yZGVyU3BhY2luZyA9IGRhdGEuYm9yZGVyU3BhY2luZztcbiAgICAgIHRoaXMudmVydGljYWxBbGlnbiA9IGRhdGEudmVydGljYWxBbGlnbjtcbiAgICAgIHRoaXMud2lkdGggPSBkYXRhLndpZHRoO1xuICAgICAgdGhpcy5oZWlnaHQgPSBkYXRhLmhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERldGFpbENvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbiAgbGV0dGVyU3BhY2luZzogc3RyaW5nO1xuICBwYWRkaW5nOiBzdHJpbmc7XG4gIHJvd0JvcmRlcjogc3RyaW5nO1xuICByb3dCb3JkZXJDb2xvcjogc3RyaW5nO1xuICBob3ZlckJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICB2ZXJ0aWNhbEFsaWduOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGRhdGEuYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy50ZXh0Q29sb3IgPSBkYXRhLmNvbG9yO1xuICAgICAgdGhpcy50ZXh0QWxpZ24gPSBkYXRhLnRleHRBbGlnbjtcbiAgICAgIHRoaXMubGV0dGVyU3BhY2luZyA9IGRhdGEubGV0dGVyU3BhY2luZztcbiAgICAgIHRoaXMucGFkZGluZyA9IGRhdGEucGFkZGluZztcbiAgICAgIHRoaXMucm93Qm9yZGVyID0gZGF0YS5yb3dCb3JkZXI7XG4gICAgICB0aGlzLmhvdmVyQmFja2dyb3VuZENvbG9yID0gZGF0YS5ob3ZlckJhY2tncm91bmRDb2xvcjtcbiAgICAgIHRoaXMudmVydGljYWxBbGlnbiA9IGRhdGEudmVydGljYWxBbGlnbjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbXBvbmVudENvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGJvcmRlcjogc3RyaW5nO1xuICBib3JkZXJSYWRpdXM6IHN0cmluZztcbiAgbGFiZWxTdHlsZTogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGJvcmRlckNvbG9yPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB3ZWlnaHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHN0YXJ0Q29sb3I/OiBzdHJpbmc7XG4gIGVuZENvbG9yPzogc3RyaW5nO1xuICBoZWlnaHQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IGRhdGEuYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy5ib3JkZXIgPSBkYXRhLmJvcmRlcjtcbiAgICAgIHRoaXMuYm9yZGVyUmFkaXVzID0gZGF0YS5ib3JkZXJSYWRpdXM7XG4gICAgICB0aGlzLmxhYmVsU3R5bGUgPSBkYXRhLmxhYmVsU3R5bGU7XG4gICAgICB0aGlzLnRleHRBbGlnbiA9IGRhdGEudGV4dEFsaWduO1xuICAgICAgdGhpcy5jb2xvciA9IGRhdGEuY29sb3I7XG4gICAgICB0aGlzLndlaWdodCA9IGRhdGEud2VpZ2h0O1xuICAgICAgdGhpcy5zdGFydENvbG9yID0gZGF0YS5zdGFydENvbG9yO1xuICAgICAgdGhpcy5lbmRDb2xvciA9IGRhdGEuZW5kQ29sb3I7XG4gICAgICB0aGlzLmhlaWdodCA9IGRhdGEuaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuZXhwb3J0IGNsYXNzIERpc3BsYXlNb2RlbCB7XG4gIHNlY3Rpb25zOiBTZWN0aW9uRGF0YVtdO1xufVxuXG5leHBvcnQgY2xhc3MgR2VuZXJhbERhdGFNb2RlbCB7XG4gIG5hbWU6IHN0cmluZztcbiAgYXBwbGljYXRpb25UeXBlOiBudW1iZXI7XG4gIGxhbmd1YWdlczogc3RyaW5nW107XG4gIGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nO1xuICBjb250aW51ZVdpdGhPZmZlcjogYm9vbGVhbjtcbiAgc2hvd0NvdW50ZXJTdGVwOiBib29sZWFuO1xuICBzaG93TmFtZVN0ZXA6IGJvb2xlYW47XG4gIHNob3dBbGxTdGVwczogYm9vbGVhbjtcbiAgc2hvd1Byb2dyZXNzQmFyOiBib29sZWFuO1xuICBpbml0Rmxvd1ZhbHVlcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3Jtc1N0YXRlIHtcbiAgZGF0YTogRm9ybU1vZGVsO1xuICBzZWxlY3RlZFRhYjogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGNhbkdldEZyb21Qcm9kOiBib29sZWFuO1xuICBjYW5HZXRGcm9tVGVzdDogYm9vbGVhbjtcbiAgY2FuUHVibGlzaEluUHJvZDogYm9vbGVhbjtcbiAgY2FuUHVibGlzaEluVGVzdDogYm9vbGVhbjtcbiAgYXBwbGljYXRpb25VdWlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsRm9ybXVsYXJlU3RhdGU6IEZvcm1zU3RhdGUgPSB7XG4gIGRhdGE6IHtcbiAgICBhcHBsaWNhdGlvbklkOiAwLFxuICAgIGFwcGxpY2F0aW9uVXVpZDogJycsXG4gICAgZ2VuZXJhbERhdGE6IHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgYXBwbGljYXRpb25UeXBlOiAwLFxuICAgICAgbGFuZ3VhZ2VzOiBbXSxcbiAgICAgIGRlZmF1bHRMYW5ndWFnZTogJycsXG4gICAgICBjb250aW51ZVdpdGhPZmZlcjogZmFsc2UsXG4gICAgICBzaG93Q291bnRlclN0ZXA6IGZhbHNlLFxuICAgICAgc2hvd05hbWVTdGVwOiBmYWxzZSxcbiAgICAgIHNob3dBbGxTdGVwczogZmFsc2UsXG4gICAgICBzaG93UHJvZ3Jlc3NCYXI6IGZhbHNlLFxuICAgICAgaW5pdEZsb3dWYWx1ZXM6ICcnXG4gICAgfSxcbiAgICBkZXNpZ246IHtcbiAgICAgIGZvbnRzOiBbXSxcbiAgICAgIGJ1dHRvbnM6IFtdLFxuICAgICAgb3RwQWN0aW9uQnV0dG9uczogW10sXG4gICAgICBjb21wb25lbnRzOiBbXSxcbiAgICAgIHRhYmxlczogW10sXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcnLFxuICAgICAgZm9udFNpemU6ICcnLFxuICAgICAgYnV0dG9uc0hvcml6b250YWxQb3NpdGlvbjogJycsXG4gICAgICBidXR0b25zVmVydGljYWxQb3NpdGlvbjogJycsXG4gICAgICBtYXhXaWR0aDogJycsXG4gICAgICBtYXJnaW5MZWZ0OiAnJyxcbiAgICAgIG1hcmdpblJpZ2h0OiAnJyxcbiAgICAgIG1hcmdpblRvcDogJycsXG4gICAgICBtYXJnaW5Cb3R0b206ICcnXG4gICAgfSxcbiAgICBmbHV4OiBbXSxcbiAgICBhcGk6IHsgZ2V0SXRlbXM6IFtdLCB2YWxpZGF0aW9uSXRlbXM6IFtdLCBzZW5kSXRlbXM6IFtdIH0sXG4gICAgcGFydG5lcnM6IFtdLFxuICAgIGRvY3VtZW50czogW10sXG4gICAgc3RhdHVzZXM6IFtdLFxuICAgIGRpc3BsYXk6IHtcbiAgICAgIHNlY3Rpb25zOiBbXVxuICAgIH0sXG4gICAgZ2VuZXJhdGVkQ3NzOiB7fSxcbiAgICBtZXRhZGF0YUZpZWxkczogW10sXG4gICAgZXJyb3JzOiB7fSxcbiAgICBhcHBsaWNhdGlvbk1hcHBpbmdzOiB7XG4gICAgICBhcHBsaWNhdGlvblR5cGVJZDogMCxcbiAgICAgIGNvbHVtbk1hcHBpbmdzOiBbXVxuICAgIH0sXG4gICAgcGFyZW50Q2hpbGRDb25maWc6IHVuZGVmaW5lZFxuICB9LFxuICBzZWxlY3RlZFRhYjogJ0RhdGUgZ2VuZXJhbGUnLFxuICBjYW5HZXRGcm9tUHJvZDogZmFsc2UsXG4gIGNhbkdldEZyb21UZXN0OiBmYWxzZSxcbiAgY2FuUHVibGlzaEluUHJvZDogZmFsc2UsXG4gIGNhblB1Ymxpc2hJblRlc3Q6IGZhbHNlLFxuICBhcHBsaWNhdGlvblV1aWQ6ICcnLFxuICB2ZXJzaW9uOiAnJ1xufTtcblxuZXhwb3J0IGNsYXNzIFBhcnRuZXJEaWN0aW9uYXJ5TWFwcGluZyB7XG4gIGRpY3Rpb25hcnlJZDogc3RyaW5nO1xuICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nO1xuICBtYXBwaW5nczogUGFydG5lcktleVZhbHVlSXRlbVtdO1xufVxuXG5leHBvcnQgY2xhc3MgUGFydG5lclNldHRpbmdzIHtcbiAgcGFydG5lck1ldGhvZHNBcGk6IFBhcnRuZXJNZXRob2RBcGlbXSA9IFtdO1xufVxuXG5leHBvcnQgY2xhc3MgUGFydG5lck1ldGhvZEFwaSB7XG4gIG1ldGhvZElkOiBzdHJpbmc7XG4gIG1ldGhvZFR5cGU6IHN0cmluZztcbiAgY2FsbFR5cGU6IHN0cmluZztcbiAgYm9keUNvbmZpZ3VyYXRpb246IFBhcnRuZXJNZXRob2RCb2R5O1xuICByZXNwb25zZUNvbmZpZ3VyYXRpb246IFBhcnRuZXJNZXRob2RSZXNwb25zZTtcbiAgdXJsQ29uZmlndXJhdGlvbjogUGFydG5lck1ldGhvZFVybDtcbiAgYXV0aFZhbHVlOiBQYXJ0bmVyTWV0aG9kQXBpQXV0aDtcbiAgaGVhZGVyczogUGFydG5lcktleVZhbHVlSXRlbVtdO1xuICAvLyBJTkJPVU5ELXNwZWNpZmljIHByb3BlcnRpZXNcbiAgaW5ib3VuZE1ldGhvZFR5cGU/OiBJbmJvdW5kTWV0aG9kVHlwZTsgLy8gVHlwZSBvZiBJTkJPVU5EIG1ldGhvZFxufVxuXG5leHBvcnQgZW51bSBJbmJvdW5kTWV0aG9kVHlwZSB7XG4gIFN0YW5kYXJkID0gJ1N0YW5kYXJkJyxcbiAgU3RhdHVzTWV0aG9kID0gJ1N0YXR1c01ldGhvZCdcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnRuZXJNZXRob2RBcGlBdXRoIHtcbiAgaGVhZGVyTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgYXBpS2V5OiBzdHJpbmcgfCBudWxsO1xuICBhdXRoVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUGFydG5lcktleVZhbHVlSXRlbSB7XG4gIGtleTogc3RyaW5nO1xuICBrZXlOYW1lOiBzdHJpbmcgfCBudWxsO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIFBhcnRuZXJTdGF0dXNNYXBwaW5nIHtcbiAgcGFydG5lclN0YXR1czogc3RyaW5nO1xuICBhcHBTdGF0dXM6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnRuZXJNZXRob2RVcmwge1xuICB1cmxWYWx1ZTogc3RyaW5nO1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIHRlc3RVcmw6IHN0cmluZztcbiAgcHJvZFVybDogc3RyaW5nO1xuICBwYXJhbWV0ZXJNYXBwaW5nczogVXJsTWFwRmllbGRzW107XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyTWV0aG9kUmVzcG9uc2Uge1xuICBjb250ZW50VHlwZTogc3RyaW5nO1xuICBqc29uVmFsdWU6IHN0cmluZztcbiAgcmVzcG9uc2VNYXBGaWVsZHM6IEZpZWxkc01hcHBpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFVybE1hcEZpZWxkcyB7XG4gIHVybFBhcmFtZXRlcjogc3RyaW5nO1xuICBmbHV4RmllbGQ6IHN0cmluZztcbiAgZmx1eEZpZWxkSWQ6IHN0cmluZztcbiAgZmllbGRUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0bmVyTWV0aG9kQm9keSB7XG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gIGpzb25WYWx1ZTogc3RyaW5nO1xuICBib2R5TWFwRmllbGRzOiBGaWVsZHNNYXBwaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBGaWVsZHNNYXBwaW5nIHtcbiAgcGFydG5lckZpZWxkOiBzdHJpbmc7XG4gIGZsdXhGaWVsZElkOiBzdHJpbmc7XG4gIG1ldGhvZEZpZWxkSWQ6IHN0cmluZztcbiAgZmllbGRUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNZXRob2RGaWVsZCB7XG4gIGlkOiBzdHJpbmc7XG4gIGZpZWxkTmFtZTogc3RyaW5nO1xuICBmaWVsZFR5cGU6IFN0ZXBDb250cm9sVHlwZSB8IEZsdXhUeXBlIHwgc3RyaW5nO1xuICBtYW51bElucHV0Q29udHJvbFR5cGU/OiBNYW51YWxJbnB1dENvbnRyb2xUeXBlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBmaWVsZFZhbHVlPzogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBleHBlY3RlZFZhbHVlPzogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY2xhc3MgR2V0TWV0aG9kRmllbGQge1xuICBpZDogc3RyaW5nO1xuICBmaWVsZE5hbWU6IHN0cmluZztcbiAgZmllbGRUeXBlOiBTdGVwQ29udHJvbFR5cGUgfCBGbHV4VHlwZSB8IHN0cmluZztcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTWFudWFsSW5wdXRDb250cm9sRGF0YSB7XG4gIHR5cGU6IE1hbnVhbElucHV0Q29udHJvbFR5cGU7XG4gIGlzU2ltcGxlVmFsaWRhdGlvbjogYm9vbGVhbjtcbiAgaXNBcGlWYWxpZGF0aW9uOiBib29sZWFuO1xuICBhcGlWYWxpZGF0aW9uTWV0aG9kPzogc3RyaW5nIHwgbnVsbDtcbiAgYXBpVmFsaWRhdGlvblBhcnRuZXI/OiBzdHJpbmcgfCBudWxsO1xuICBhbGxvd2VkQ2hhcmFjdGVycz86IHN0cmluZztcbiAgbWF4Q2hhcmFjdGVycz86IG51bWJlcjtcbiAgbWluVmFsdWU/OiBudW1iZXI7XG4gIG1heFZhbHVlPzogbnVtYmVyO1xuICBhbGxvd09ubHlQYXN0PzogYm9vbGVhbjtcbiAgYWxsb3dPbmx5RnV0dXJlPzogYm9vbGVhbjtcbiAgaXNNYW5kYXRvcnk6IGJvb2xlYW47XG4gIGlzUHJlY29tcGxldGFibGU/OiBib29sZWFuO1xuICBwcmVjb21wbGV0aW9uRmllbGRJZD86IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJhZ3JhcGhDb250cm9sRGF0YSB7XG4gIGRlc2NyaXB0aW9uVHJhbnNsYXRpb25zOiBMYWJlbEluZm9bXTtcbiAgaXNNYW5kYXRvcnk6IGJvb2xlYW47XG4gIGlzTWFuZGF0b3J5VHJhbnNsYXRpb25zPzogTGFiZWxJbmZvW107XG59XG5cbmV4cG9ydCBjbGFzcyBEaWN0aW9uYXJ5Q29udHJvbERhdGEge1xuICBkaWN0aW9uYXJ5VVVJRDogc3RyaW5nO1xuICBzaG93QXNSYWRpb0J1dHRvbnNMaXN0OiBib29sZWFuO1xuICByZWxhdGVkRGljdGlvbmFyaWVzVHJhbnNsYXRpb25zOiBEaWN0aW9uYXJ5TGFiZWxJbmZvW107XG4gIGRpY3Rpb25hcnlEZWZhdWx0VmFsdWVJZD86IG51bWJlciB8IG51bGw7XG4gIHNlbGVjdGVkUmVsYXRlZERpY3Rpb25hcmllczogc3RyaW5nW107XG4gIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24/OiBib29sZWFuO1xuICBpc01hbmRhdG9yeT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEZsdXhUeXBlIHtcbiAgS3ljID0gMCxcbiAgRW1haWwgPSAxLFxuICBQaG9uZSA9IDIsXG4gIFNpZ24gPSAzLFxuICBTdGF0dXMgPSA0LFxuICBDdXN0b20gPSA1LFxuICBQYXVzZSA9IDYsXG4gIElkU2NhbiA9IDcsXG4gIEdlbmVyYXRlRG9jdW1lbnQgPSA4LFxuICBBY3Rpb24gPSA5LFxuICBVcGxvYWREb2N1bWVudCA9IDEwLFxuICBEb3dubG9hZERvY3VtZW50ID0gMTEsXG4gIFZpZXdPZmZlciA9IDEyLFxuICBGaW5hbCA9IDEzLFxuICBWaWV3RG9jdW1lbnQgPSAxNCxcbiAgTkVUT1BJQSA9IDE1LFxuICBFVVBMQVRFU0MgPSAxNixcbiAgT3BlbkJhbmtpbmcgPSAxN1xufVxuXG5leHBvcnQgZW51bSBTZWN0aW9uVHlwZSB7XG4gIFByZXNlbnRhdGlvbixcbiAgQ29sbGVjdCxcbiAgRGlzcGxheVxufVxuXG5leHBvcnQgZW51bSBTdGVwQ29udHJvbFR5cGUge1xuICBNYW51YWxJbnB1dCA9IDAsXG4gIFBhcmFncmFwaCA9IDEsXG4gIENoZWNrQm94ID0gMixcbiAgRGljdGlvbmFyeSA9IDMsXG4gIEJ1dHRvbnMgPSA0LFxuICBGbHV4SW5mbyA9IDUsXG4gIE5ld1JvdyA9IDYsXG4gIE1ldGFkYXRhID0gNyxcbiAgQXBpTWV0aG9kRmllbGQgPSA4LFxuICBEb3dubG9hZERvY3VtZW50cyA9IDksXG4gIFZpZXdEb2N1bWVudHMgPSAxMCxcbiAgVXBsb2FkRG9jdW1lbnRzID0gMTFcbn1cblxuZXhwb3J0IGVudW0gRGltZW5zaW9uVHlwZSB7XG4gIFBlcmNlbnRhZ2UsXG4gIFBpeGVsc1xufVxuXG5leHBvcnQgZW51bSBNYW51YWxJbnB1dENvbnRyb2xUeXBlIHtcbiAgVGV4dCxcbiAgTnVtZXJpYyxcbiAgRGF0ZVRpbWUsXG4gIEVtYWlsLFxuICBQaG9uZSxcbiAgVGV4dEFyZWFcbn1cblxuZXhwb3J0IGVudW0gU2lnbmF0dXJlVHlwZSB7XG4gIEVsZWN0cm9uaWMsXG4gIEhhbmR3cml0dGVuLFxuICBRdWFsaWZpZWRcbn1cblxuZXhwb3J0IGVudW0gQXBpTWV0aG9kVHlwZSB7XG4gIEdldERhdGEsXG4gIFNlbmREYXRhLFxuICBWYWxpZGF0aW9uXG59XG5cbmV4cG9ydCBjbGFzcyBTdGF0dXNNb2RlbCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjtcbiAgZmluYWw6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBhY3Rpb25zOiBTdGF0dXNBY3Rpb25bXSA9IFtdO1xuICBjaGlsZEFwcGxpY2F0aW9uVXVpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBkZW51bWlyZTogc3RyaW5nLFxuICAgIG9yZGluZTogbnVtYmVyLFxuICAgIGZpbmFsOiBib29sZWFuLFxuICAgIGlzQWN0aXZlOiBib29sZWFuLFxuICAgIGFjdGlvbnM6IFN0YXR1c0FjdGlvbltdLFxuICAgIGNoaWxkQXBwbGljYXRpb25VdWlkczogc3RyaW5nW10gPSBbXVxuICApIHtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5uYW1lID0gZGVudW1pcmU7XG4gICAgdGhpcy5vcmRlciA9IG9yZGluZTtcbiAgICB0aGlzLmZpbmFsID0gZmluYWw7XG4gICAgdGhpcy5pc0FjdGl2ZSA9IGlzQWN0aXZlO1xuICAgIHRoaXMuYWN0aW9ucyA9IGFjdGlvbnM7XG4gICAgdGhpcy5jaGlsZEFwcGxpY2F0aW9uVXVpZHMgPSBjaGlsZEFwcGxpY2F0aW9uVXVpZHMgfHwgW107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN0YXR1c0FjdGlvbiB7XG4gIGlkPzogc3RyaW5nO1xuICBhY3Rpb25UaXRsZTogc3RyaW5nO1xuICBhcGlNZXRob2RJZDogc3RyaW5nO1xuICBwYXJ0bmVySWRzOiBudW1iZXJbXSA9IFtdO1xufVxuXG5leHBvcnQgY2xhc3MgUHJlc2VudGF0aW9uUGFyYWdyYXBoQ29udHJvbCBleHRlbmRzIFByZXNlbnRhdGlvbkNvbnRyb2wge1xuICBkZXNjcmlwdGlvblRyYW5zbGF0aW9uczogTGFiZWxJbmZvW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBQYXJ0bmVyIGV4dGVuZHMgUGFydG5lciB7XG4gIGRvY3VtZW50cz86IEFwcFBhcnRuZXJEb2N1bWVudHNbXSA9IFtdO1xuICBnZW5lcmFsU2V0dGluZ3M6IEFwcFBhcnRuZXJHZW5lcmFsU2V0dGluZ3M7XG4gIHBhcnRuZXJTZXR0aW5nczogUGFydG5lclNldHRpbmdzO1xuICBwYXJ0bmVyRGljdGlvbmFyeU1hcHBpbmc6IFBhcnRuZXJEaWN0aW9uYXJ5TWFwcGluZ1tdO1xuICBwYXJ0bmVyU3RhdHVzTWFwcGluZzogUGFydG5lclN0YXR1c01hcHBpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcFBhcnRuZXJHZW5lcmFsU2V0dGluZ3Mge1xuICBhY2NlcHRNdWx0aXBsZU9mZmVyczogYm9vbGVhbjtcbiAgb2ZmZXJzOiBBcHBQYXJ0bmVyR2VuZXJhbFNldHRpbmdzT2ZmZXJbXSA9IFtdO1xuICByZWNlaXZlZE9mZmVyczogQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc1JlY2VpdmVkT2ZmZXJbXSA9IFtdO1xuICB2YWxhYmlsaXR5OiBudW1iZXI7XG4gIGhhc0N1c3RvbVZhbGFiaWxpdHk6IGJvb2xlYW47XG4gIHN0YXR1c1dvcmtlclNldHRpbmdzOiBBcHBTdGF0dXNXb3JrZXJTZXR0aW5ncztcbn1cbmV4cG9ydCBjbGFzcyBBcHBTdGF0dXNXb3JrZXJTZXR0aW5ncyB7XG4gIG1heFJldHJpZXM6IG51bWJlcjtcbiAgbG9vcEludGVydmFsOiBudW1iZXI7XG59XG5leHBvcnQgY2xhc3MgQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc09mZmVyIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBhcGlNZXRob2RJZDogc3RyaW5nO1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGN1c3RvbVZhbGFiaWxpdHk/OiBudW1iZXI7XG4gIGFwaU1ldGhvZEZpZWxkcz86IGFueVtdID0gW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBQYXJ0bmVyR2VuZXJhbFNldHRpbmdzUmVjZWl2ZWRPZmZlciB7XG4gIGlkOiBzdHJpbmc7XG4gIG9mZmVyczogQXBwUGFydG5lckdlbmVyYWxTZXR0aW5nc09mZmVyW107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBQYXJ0bmVyRG9jdW1lbnRzIHtcbiAgaWQ6IHN0cmluZztcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBkb2N1bWVudE5hbWU6IHN0cmluZztcbiAgYXBpTWV0aG9kSWQ6IHN0cmluZztcbiAgaXNFZGl0TW9kZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcERvY3VtZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0cmFuc2xhdGlvbnM6IExhYmVsSW5mb1tdO1xuICBnZW5lcmF0ZWRCeUFwcDogYm9vbGVhbjtcbiAgaXNTdGF0aWM6IGJvb2xlYW47XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICB2ZXJzaW9uczogQXBwRG9jdW1lbnRWZXJzaW9uW10gPSBbXTtcbn1cbmV4cG9ydCBjbGFzcyBTaWduZWREb2N1bWVudCBleHRlbmRzIEFwcERvY3VtZW50IHtcbiAgc291cmNlRG9jdW1lbnRzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBEb2N1bWVudEV4dGVuZGVkIGV4dGVuZHMgQXBwRG9jdW1lbnQge1xuICBpc0FwaURvY3VtZW50PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcERvY3VtZW50VmVyc2lvbiB7XG4gIGlkOiBudW1iZXI7XG4gIGFwcGxpY2F0aW9uSWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgdmFsaWRGcm9tOiBEYXRlO1xuICB2YWxpZFRvOiBEYXRlIHwgdW5kZWZpbmVkO1xuICBpc0VkaXRNb2RlOiBib29sZWFuO1xuICBkYXRhOiBzdHJpbmcgfCBudWxsO1xuICBmbHV4Qm9va21hcmtzOiBCb29rbWFya01hcHBpbmdbXTtcbiAgaXNUZW1wb3Jhcnk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBCb29rbWFya01hcHBpbmcge1xuICBib29rbWFyazogc3RyaW5nO1xuICBjb250cm9sSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yVHJhbnNsYXRpb25zIHtcbiAgY29kZTogc3RyaW5nO1xuICB0cmFuc2xhdGlvbnM6IExhYmVsSW5mb1tdO1xufVxuXG5leHBvcnQgY2xhc3MgVXBsb2FkRG9jdW1lbnQge1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGZpbGVEYXRhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBVcGxvYWREb2N1bWVudERldGFpbHMgZXh0ZW5kcyBVcGxvYWREb2N1bWVudCB7XG4gIGRvY3VtZW50TmFtZTogc3RyaW5nO1xuICBkb2N1bWVudEV4dGVuc2lvbnM6IHN0cmluZztcbiAgZG9jdW1lbnRNYXhTaXplOiBudW1iZXI7XG4gIGlzTWFuZGF0b3J5OiBib29sZWFuO1xuICBpc1VwbG9hZGluZzogYm9vbGVhbjtcbiAgaXNVcGxvYWRTdWNjZXNzOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgU3RlcHNTZXR0aW5ncyB7XG4gIHNob3dDb3VudGVyOiBib29sZWFuO1xuICBzaG93TGFiZWxzOiBib29sZWFuO1xuICBzaG93QWxsU3RlcHM6IGJvb2xlYW47XG4gIHNob3dQcm9ncmVzc0JhcjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gQXBwRGF0YVN0YXR1cyB7XG4gIG5ldyA9IDAsXG4gIGZpbmlzaGVkID0gMVxufVxuIl19
|