valtech-components 4.0.991 → 4.0.993
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/components/organisms/survey-builder/survey-builder.component.mjs +12 -4
- package/esm2022/lib/components/organisms/survey-builder/types.mjs +1 -1
- package/esm2022/lib/services/i18n/i18n.service.mjs +17 -4
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +28 -7
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/survey-builder/survey-builder.component.d.ts +1 -0
- package/lib/components/organisms/survey-builder/types.d.ts +10 -0
- package/lib/services/i18n/i18n.service.d.ts +14 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -68,13 +68,16 @@ export class SurveyBuilderComponent {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
async ngOnInit() {
|
|
71
|
+
// Sembrado directo: la app ya tenía la encuesta, no hace falta leerla.
|
|
72
|
+
if (this.props.initial) {
|
|
73
|
+
this.hydrate(this.props.initial.label, this.props.initial.subtitle, this.props.initial.questions);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
71
76
|
if (!this.props.typeId)
|
|
72
77
|
return;
|
|
73
78
|
try {
|
|
74
79
|
const cfg = await firstValueFrom(this.requests.getRequestType(this.props.typeId));
|
|
75
|
-
this.
|
|
76
|
-
this.subtitleControl.setValue(cfg.subtitle ?? '');
|
|
77
|
-
this.questions.set([...cfg.fieldSchema].sort((a, b) => a.order - b.order).map(f => this.rowFromField(f)));
|
|
80
|
+
this.hydrate(cfg.label, cfg.subtitle ?? '', cfg.fieldSchema);
|
|
78
81
|
}
|
|
79
82
|
catch (err) {
|
|
80
83
|
this.errors.handle(err, {
|
|
@@ -261,6 +264,11 @@ export class SurveyBuilderComponent {
|
|
|
261
264
|
});
|
|
262
265
|
}
|
|
263
266
|
}
|
|
267
|
+
hydrate(label, subtitle, questions) {
|
|
268
|
+
this.titleControl.setValue(label ?? '');
|
|
269
|
+
this.subtitleControl.setValue(subtitle ?? '');
|
|
270
|
+
this.questions.set([...(questions ?? [])].sort((a, b) => a.order - b.order).map(f => this.rowFromField(f)));
|
|
271
|
+
}
|
|
264
272
|
rowFromField(f) {
|
|
265
273
|
return {
|
|
266
274
|
id: `row-${rowUid++}`,
|
|
@@ -509,4 +517,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
509
517
|
}], draft: [{
|
|
510
518
|
type: Output
|
|
511
519
|
}] } });
|
|
512
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9zdXJ2ZXktYnVpbGRlci9zdXJ2ZXktYnVpbGRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRXBHLE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixHQUMzQixNQUFNLHNEQUFzRCxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTNGLE9BQU8sRUFJTCxxQkFB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LEVBQUUsQ0FBQyxDQUFDLE9BQU87U0FDbkIsQ0FBQztJQUNKLENBQUM7K0dBcFJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHVKQXRNdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRHVCw2K0NBbkhDLFlBQVksOEJBQ1osbUJBQW1CLCtCQUNuQixrQkFBa0Isd0ZBQ2xCLGVBQWUsMEdBQ2Ysa0JBQWtCLDhFQUNsQiwwQkFBMEI7OzRGQXdNakIsc0JBQXNCO2tCQWpObEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQiwwQkFBMEI7cUJBQzNCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRHVDt3REEyRlEsS0FBSztzQkFBYixLQUFLO2dCQUNhLEtBQUs7c0JBQXZCLE1BQU07Z0JBT1ksS0FBSztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdEZvcm1CdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3JlcXVlc3QtZm9ybS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRTY2hlbWFEZWYgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy90eXBlcyc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEZJRUxEX1RZUEVTX1dJVEhfT1BUSU9OUyxcbiAgRmllbGRTY2hlbWFFZGl0b3JDb21wb25lbnQsXG59IGZyb20gJy4uL2ZpZWxkLXNjaGVtYS1lZGl0b3IvZmllbGQtc2NoZW1hLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRklFTERfU0NIRU1BX0VESVRPUl9JMThOIH0gZnJvbSAnLi4vZmllbGQtc2NoZW1hLWVkaXRvci9maWVsZC1zY2hlbWEtZWRpdG9yLmkxOG4nO1xuaW1wb3J0IHsgRWRpdGFibGVGaWVsZERlZiwgRmllbGRTY2hlbWFFZGl0b3JNZXRhZGF0YSB9IGZyb20gJy4uL2ZpZWxkLXNjaGVtYS1lZGl0b3IvdHlwZXMnO1xuaW1wb3J0IHtcbiAgU3VydmV5QnVpbGRlck1ldGFkYXRhLFxuICBTdXJ2ZXlCdWlsZGVyU2F2ZUV2ZW50LFxuICBTdXJ2ZXlEcmFmdEV2ZW50LFxuICBTVVJWRVlfUVVFU1RJT05fVFlQRVMsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU1VSVkVZX0JVSUxERVJfSTE4TiB9IGZyb20gJy4vc3VydmV5LWJ1aWxkZXIuaTE4bic7XG5cbmNvbnN0IE5BTUVTUEFDRSA9ICdTdXJ2ZXlCdWlsZGVyJztcbmNvbnN0IEVESVRPUl9OQU1FU1BBQ0UgPSAnRmllbGRTY2hlbWFFZGl0b3InO1xuY29uc3QgREVGQVVMVF9UWVBFX1BSRUZJWCA9ICdzdXJ2ZXknO1xuXG5sZXQgcm93VWlkID0gMDtcblxuLyoqXG4gKiB2YWwtc3VydmV5LWJ1aWxkZXJcbiAqXG4gKiBBdXRvcsOtYSBkZSB1bmEgZW5jdWVzdGE6IHTDrXR1bG8sIHN1YnTDrXR1bG8sIHByZWd1bnRhcyDigJQgYXJtYSBvIGFjdHVhbGl6YSB1blxuICogYFJlcXVlc3RUeXBlQ29uZmlnYCBjb24gYFR5cGU6IFwiPHByZWZpeD46PHNsdWc+XCJgIChBRFItMDkyKSwgYHNraXBSZXZpZXc6XG4gKiB0cnVlYCAoY2FkYSByZXNwdWVzdGEgc2UgYWdyZWdhLCBubyBzZSByZXZpc2EgdW5hIHBvciB1bmEpIHkgZWwgYEVudGl0eVJlZmBcbiAqIHF1ZSBsZSBwYXNhIGVsIGNvbnN1bWVyIChlai4gZWwgZXZlbnRvIGRlIGJpbmdvIGR1ZcOxbyBkZSBsYSBlbmN1ZXN0YSkuXG4gKlxuICogQ2FkYSBwcmVndW50YSBzZSBlZGl0YSBjb24gYHZhbC1maWVsZC1zY2hlbWEtZWRpdG9yYCwgZWwgbWlzbW8gZWRpdG9yIHF1ZSB1c2FcbiAqIGVsIGNoZWNrb3V0IGRlIGJpbmdvIOKAlCBkZSBhaMOtIHF1ZSB1bmEgcHJlZ3VudGEgdGVuZ2EgdGlwbywgcGxhY2Vob2xkZXIsIG5vdGFcbiAqIHkgb3BjaW9uZXMsIG5vIHNvbG8gdGV4dG8uIExhIHYxIGRlIGVzdGUgY29tcG9uZW50ZSB0ZW7DrWEgc3UgcHJvcGlvIGVkaXRvclxuICogcG9icmUgKGRvcyB0aXBvcywgc2luIG9wY2lvbmVzKTsgbGEgRmFzZSA1IGRlbCBBRFItMDkyIGxvIHJlZW1wbGF6w7MgcG9yIGVsXG4gKiBvcmdhbmlzbSBjb21wYXJ0aWRvIGVuIHZleiBkZSBtZWpvcmFybG8gcG9yIGR1cGxpY2Fkby5cbiAqXG4gKiBFbCBjYXTDoWxvZ28gcXVlIG9mcmVjZSBzYWxlIGRlIGBTVVJWRVlfUVVFU1RJT05fVFlQRVNgIOKAlCBhY290YWRvIGEgbG8gcXVlXG4gKiBgdmFsLXN1cnZleS1yZXNwb25zZWAgc2FiZSByZW5kZXJpemFyLCBubyBhIGxvIHF1ZSBlbCBlZGl0b3Igc2FiZSBlZGl0YXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zdXJ2ZXktYnVpbGRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBGaWVsZFNjaGVtYUVkaXRvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJcIj5cbiAgICAgIDx2YWwtZm9ybS1maWVsZCBbbGFiZWxdPVwidCgndGl0bGVMYWJlbCcpXCI+XG4gICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwieyBjb250cm9sOiB0aXRsZUNvbnRyb2wsIHBsYWNlaG9sZGVyOiB0KCd0aXRsZVBsYWNlaG9sZGVyJykgfVwiIC8+XG4gICAgICA8L3ZhbC1mb3JtLWZpZWxkPlxuICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJ0KCdzdWJ0aXRsZUxhYmVsJylcIj5cbiAgICAgICAgPHZhbC10ZXh0LWlucHV0IFtwcm9wc109XCJ7IGNvbnRyb2w6IHN1YnRpdGxlQ29udHJvbCwgcGxhY2Vob2xkZXI6IHQoJ3N1YnRpdGxlUGxhY2Vob2xkZXInKSB9XCIgLz5cbiAgICAgIDwvdmFsLWZvcm0tZmllbGQ+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fcXVlc3Rpb25zXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3F1ZXN0aW9ucy1sYWJlbFwiPnt7IHQoJ3F1ZXN0aW9uc0xhYmVsJykgfX08L3NwYW4+XG5cbiAgICAgICAgQGlmICghcXVlc3Rpb25zKCkubGVuZ3RoKSB7XG4gICAgICAgICAgPHAgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fZW1wdHlcIj57eyB0KCdub1F1ZXN0aW9ucycpIH19PC9wPlxuICAgICAgICB9XG5cbiAgICAgICAgQGZvciAocm93IG9mIHF1ZXN0aW9ucygpOyB0cmFjayByb3cuaWQ7IGxldCBpID0gJGluZGV4OyBsZXQgZmlyc3QgPSAkZmlyc3Q7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3Jvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1idWlsZGVyX19yb3ctaGVhZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3Jvdy10ZXh0XCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyByb3cubGFiZWwgfHwgdCgndW50aXRsZWRRdWVzdGlvbicpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdHlwZUxhYmVsKHJvdy50eXBlKSB9fXt7IHJvdy5yZXF1aXJlZCA/ICcgwrcgJyArIHQoJ3JlcXVpcmVkVGFnJykgOiAnJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fcm93LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cImljb25BY3Rpb24oJ3EtdXAtJyArIHJvdy5pZCwgJ2Fycm93LXVwLW91dGxpbmUnLCB0KCdtb3ZlVXAnKSwgZmlyc3QpXCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm1vdmUoaSwgLTEpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwiaWNvbkFjdGlvbigncS1kb3duLScgKyByb3cuaWQsICdhcnJvdy1kb3duLW91dGxpbmUnLCB0KCdtb3ZlRG93bicpLCBsYXN0KVwiXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJtb3ZlKGksIDEpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwiaWNvbkFjdGlvbigncS1jb3B5LScgKyByb3cuaWQsICdjb3B5LW91dGxpbmUnLCB0KCdkdXBsaWNhdGVRdWVzdGlvbicpKVwiXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkdXBsaWNhdGUocm93KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cImljb25BY3Rpb24oJ3EtZWRpdC0nICsgcm93LmlkLCAnY3JlYXRlLW91dGxpbmUnLCB0KCdlZGl0UXVlc3Rpb24nKSlcIlxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidG9nZ2xlRWRpdChyb3cpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwiaWNvbkFjdGlvbigncS1yZW1vdmUtJyArIHJvdy5pZCwgJ3RyYXNoLW91dGxpbmUnLCB0KCdyZW1vdmVRdWVzdGlvbicpLCBmYWxzZSwgJ2RhbmdlcicpXCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInJlbW92ZVF1ZXN0aW9uKHJvdylcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAoZWRpdGluZ0lkKCkgPT09IHJvdy5pZCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3Jvdy1lZGl0b3JcIj5cbiAgICAgICAgICAgICAgICA8dmFsLWZpZWxkLXNjaGVtYS1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICNlZGl0b3JcbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJlZGl0b3JQcm9wcyhyb3cpXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cImRyYWZ0UXVlc3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoc2F2ZSk9XCJhcHBseVF1ZXN0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHRva2VuOiAncS1kb25lLScgKyByb3cuaWQsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHQoJ2RvbmVFZGl0aW5nJyksXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgICAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJlZGl0b3Iuc3VibWl0KClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgdG9rZW46ICdzdXJ2ZXktYnVpbGRlci1hZGQtcXVlc3Rpb24nLFxuICAgICAgICAgICAgdGV4dDogdCgnYWRkUXVlc3Rpb24nKSxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgIGljb246IHsgbmFtZTogJ2FkZC1vdXRsaW5lJywgc2xvdDogJ3N0YXJ0JyB9LFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChvbkNsaWNrKT1cImFkZFF1ZXN0aW9uKClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAodmFsaWRhdGlvbkVycm9yKCkpIHtcbiAgICAgICAgPHAgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fZXJyb3JcIj57eyB2YWxpZGF0aW9uRXJyb3IoKSB9fTwvcD5cbiAgICAgIH1cblxuICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICB0b2tlbjogJ3N1cnZleS1idWlsZGVyLXNhdmUnLFxuICAgICAgICAgIHRleHQ6IHQoJ3NhdmUnKSxcbiAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgc3RhdGU6IHNhdmluZygpID8gJ1dPUktJTkcnIDogJ0VOQUJMRUQnLFxuICAgICAgICB9XCJcbiAgICAgICAgKG9uQ2xpY2spPVwic2F2ZSgpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuc3VydmV5LWJ1aWxkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICB9XG4gICAgICAuc3VydmV5LWJ1aWxkZXJfX3F1ZXN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcXVlc3Rpb25zLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fZW1wdHkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12YWwtcmFkaXVzLW1kLCAxMnB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpKTtcbiAgICAgIH1cbiAgICAgIC8qIE1vYmlsZS1maXJzdDogZWwgdGV4dG8gZGUgbGEgcHJlZ3VudGEgeSBzdXMgYWNjaW9uZXMgYXBpbGFkb3MuIEVuIGZpbGFcbiAgICAgICAgIGZpamEsIGNpbmNvIGJvdG9uZXMgbGUgY29tZW4gZWwgYW5jaG8gYWwgdGV4dG8geSBsbyBwYXJ0ZW4gZW4gbXVjaGFzXG4gICAgICAgICBsw61uZWFzIGFuZ29zdGFzIOKAlCBqdXN0byBlbiBlbCB2aWV3cG9ydCBkb25kZSBtw6FzIHNlIHVzYS4gKi9cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LWhlYWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LXRleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1idWlsZGVyX19yb3ctdGV4dCBzdHJvbmcge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IsICMwMDApO1xuICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LXRleHQgc3BhbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICB9XG4gICAgICAuc3VydmV5LWJ1aWxkZXJfX3Jvdy1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LWVkaXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1idWlsZGVyX19lcnJvciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gICAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LWhlYWQge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG4gICAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LXRleHQge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHM6IFN1cnZleUJ1aWxkZXJNZXRhZGF0YSA9IHt9O1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1cnZleUJ1aWxkZXJTYXZlRXZlbnQ+KCk7XG4gIC8qKlxuICAgKiBFbWl0ZSBsbyBlc2NyaXRvLCB5YSB2YWxpZGFkbywgU0lOIGd1YXJkYXJsby4gU29sbyBjb24gYHByb3BzLnBlcnNpc3Q6XG4gICAqIGZhbHNlYCDigJQgdmVyIGVsIGNvbWVudGFyaW8gZGUgZXNlIGNhbXBvOiBjdWFuZG8gbGEgYXBwIHRpZW5lIGVuZHBvaW50XG4gICAqIHByb3BpbywgZ3VhcmRhciBkZXNkZSBhY8OhIHNlIHNhbHRhIGxhIHZhbGlkYWNpw7NuIGRlIGxhIGVudGlkYWQgZHVlw7FhIHkgZWxcbiAgICogcGVybWlzbyBkZSBsYSB2ZXJ0aWNhbC5cbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBkcmFmdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VydmV5RHJhZnRFdmVudD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RzID0gaW5qZWN0KFJlcXVlc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlciA9IGluamVjdChSZXF1ZXN0Rm9ybUJ1aWxkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgdGl0bGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSBzdWJ0aXRsZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHJlYWRvbmx5IHF1ZXN0aW9ucyA9IHNpZ25hbDxFZGl0YWJsZUZpZWxkRGVmW10+KFtdKTtcbiAgcmVhZG9ubHkgZWRpdGluZ0lkID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgdmFsaWRhdGlvbkVycm9yID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgc2F2aW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoTkFNRVNQQUNFKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoTkFNRVNQQUNFLCBTVVJWRVlfQlVJTERFUl9JMThOKTtcbiAgICB9XG4gICAgLy8gRWwgbm9tYnJlIGRlbCB0aXBvIGRlIGNhZGEgcHJlZ3VudGEgc2UgbXVlc3RyYSBlbiBsYSBmaWxhIGNvbGFwc2FkYSwgcXVlXG4gICAgLy8gZGlidWphIGVzdGUgY29tcG9uZW50ZSB5IG5vIGVsIGVkaXRvciDigJQgc2kgbmFkaWUgbW9udMOzIHVuIGVkaXRvciB0b2RhdsOtYSxcbiAgICAvLyBlbCBuYW1lc3BhY2Ugbm8gZXhpc3RpcsOtYSB5IGxhIGZpbGEgbW9zdHJhcsOtYSBsYSBjbGF2ZSBjcnVkYS5cbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoRURJVE9SX05BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKEVESVRPUl9OQU1FU1BBQ0UsIEZJRUxEX1NDSEVNQV9FRElUT1JfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLnR5cGVJZCkgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjZmcgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlcXVlc3RzLmdldFJlcXVlc3RUeXBlKHRoaXMucHJvcHMudHlwZUlkKSk7XG4gICAgICB0aGlzLnRpdGxlQ29udHJvbC5zZXRWYWx1ZShjZmcubGFiZWwpO1xuICAgICAgdGhpcy5zdWJ0aXRsZUNvbnRyb2wuc2V0VmFsdWUoY2ZnLnN1YnRpdGxlID8/ICcnKTtcbiAgICAgIHRoaXMucXVlc3Rpb25zLnNldChbLi4uY2ZnLmZpZWxkU2NoZW1hXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikubWFwKGYgPT4gdGhpcy5yb3dGcm9tRmllbGQoZikpKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ3N1cnZleUJ1aWxkZXIubG9hZCcsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnbG9hZEVycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogTkFNRVNQQUNFLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCBOQU1FU1BBQ0UpO1xuICB9XG5cbiAgdHlwZUxhYmVsKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoYHR5cGUke3R5cGV9YCwgRURJVE9SX05BTUVTUEFDRSk7XG4gIH1cblxuICBxdWVzdGlvblR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5xdWVzdGlvblR5cGVzPy5sZW5ndGggPyB0aGlzLnByb3BzLnF1ZXN0aW9uVHlwZXMgOiBTVVJWRVlfUVVFU1RJT05fVFlQRVM7XG4gIH1cblxuICBlZGl0b3JQcm9wcyhyb3c6IEVkaXRhYmxlRmllbGREZWYpOiBGaWVsZFNjaGVtYUVkaXRvck1ldGFkYXRhIHtcbiAgICByZXR1cm4geyBtb2RlOiAnZWRpdCcsIGZpZWxkOiByb3csIGFsbG93ZWRUeXBlczogdGhpcy5xdWVzdGlvblR5cGVzKCkgfTtcbiAgfVxuXG4gIGljb25BY3Rpb24oXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBpY29uOiBzdHJpbmcsXG4gICAgbGFiZWw6IHN0cmluZyxcbiAgICBkaXNhYmxlZCA9IGZhbHNlLFxuICAgIGNvbG9yOiBDb2xvciA9ICdkYXJrJ1xuICApOiBCdXR0b25NZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuLFxuICAgICAgdGV4dDogJycsXG4gICAgICBhcmlhTGFiZWw6IGxhYmVsLFxuICAgICAgY29sb3IsXG4gICAgICBmaWxsOiAnY2xlYXInLFxuICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICBzdGF0ZTogZGlzYWJsZWQgPyBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIGljb246IHsgbmFtZTogaWNvbiwgc2xvdDogJ2ljb24tb25seScgfSxcbiAgICB9O1xuICB9XG5cbiAgYWRkUXVlc3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3Qgcm93OiBFZGl0YWJsZUZpZWxkRGVmID0ge1xuICAgICAgaWQ6IGByb3ctJHtyb3dVaWQrK31gLFxuICAgICAgbmFtZTogJycsXG4gICAgICBsYWJlbDogJycsXG4gICAgICBwbGFjZWhvbGRlclRleHQ6ICcnLFxuICAgICAgaGludFRleHQ6ICcnLFxuICAgICAgdHlwZTogdGhpcy5xdWVzdGlvblR5cGVzKClbMF0sXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9O1xuICAgIHRoaXMucXVlc3Rpb25zLnVwZGF0ZShyb3dzID0+IFsuLi5yb3dzLCByb3ddKTtcbiAgICAvLyBVbmEgcHJlZ3VudGEgcmVjacOpbiBhZ3JlZ2FkYSBlc3TDoSB2YWPDrWE6IGFicmlybGEgZXMgZWwgw7puaWNvIHBhc29cbiAgICAvLyBzaWd1aWVudGUgcG9zaWJsZSwgeSBkZWphcmxhIGNlcnJhZGEgbGEgaGFyw61hIHZlciBjb21vIHVuYSBmaWxhIHJvdGEuXG4gICAgdGhpcy5lZGl0aW5nSWQuc2V0KHJvdy5pZCk7XG4gIH1cblxuICB0b2dnbGVFZGl0KHJvdzogRWRpdGFibGVGaWVsZERlZik6IHZvaWQge1xuICAgIHRoaXMuZWRpdGluZ0lkLnVwZGF0ZShjdXJyZW50ID0+IChjdXJyZW50ID09PSByb3cuaWQgPyAnJyA6IHJvdy5pZCkpO1xuICB9XG5cbiAgcmVtb3ZlUXVlc3Rpb24ocm93OiBFZGl0YWJsZUZpZWxkRGVmKTogdm9pZCB7XG4gICAgdGhpcy5xdWVzdGlvbnMudXBkYXRlKHJvd3MgPT4gcm93cy5maWx0ZXIociA9PiByLmlkICE9PSByb3cuaWQpKTtcbiAgICBpZiAodGhpcy5lZGl0aW5nSWQoKSA9PT0gcm93LmlkKSB0aGlzLmVkaXRpbmdJZC5zZXQoJycpO1xuICB9XG5cbiAgZHVwbGljYXRlKHJvdzogRWRpdGFibGVGaWVsZERlZik6IHZvaWQge1xuICAgIGNvbnN0IGNvcHk6IEVkaXRhYmxlRmllbGREZWYgPSB7XG4gICAgICAuLi5yb3csXG4gICAgICBpZDogYHJvdy0ke3Jvd1VpZCsrfWAsXG4gICAgICAvLyBTaW4gdG9rZW4gcHJvcGlvIGxhIGNvcGlhIHBpc2Fyw61hIGxhcyByZXNwdWVzdGFzIGRlbCBvcmlnaW5hbDogZG9zXG4gICAgICAvLyBjYW1wb3MgY29uIGVsIG1pc21vIGBuYW1lYCBzb24gZWwgbWlzbW8gY2FtcG8gcGFyYSBlbCBiYWNrZW5kLlxuICAgICAgbmFtZTogdGhpcy5mb3JtQnVpbGRlci51bmlxdWVGaWVsZE5hbWUocm93Lm5hbWUgfHwgcm93LmxhYmVsLCB0aGlzLnF1ZXN0aW9ucygpKSxcbiAgICAgIG9wdGlvbnM6IHJvdy5vcHRpb25zID8gcm93Lm9wdGlvbnMubWFwKG8gPT4gKHsgLi4ubyB9KSkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgICB0aGlzLnF1ZXN0aW9ucy51cGRhdGUocm93cyA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHJvd3MuZmluZEluZGV4KHIgPT4gci5pZCA9PT0gcm93LmlkKTtcbiAgICAgIHJldHVybiBbLi4ucm93cy5zbGljZSgwLCBpbmRleCArIDEpLCBjb3B5LCAuLi5yb3dzLnNsaWNlKGluZGV4ICsgMSldO1xuICAgIH0pO1xuICB9XG5cbiAgbW92ZShpbmRleDogbnVtYmVyLCBkZWx0YTogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gaW5kZXggKyBkZWx0YTtcbiAgICB0aGlzLnF1ZXN0aW9ucy51cGRhdGUocm93cyA9PiB7XG4gICAgICBpZiAodGFyZ2V0IDwgMCB8fCB0YXJnZXQgPj0gcm93cy5sZW5ndGgpIHJldHVybiByb3dzO1xuICAgICAgY29uc3QgbmV4dCA9IFsuLi5yb3dzXTtcbiAgICAgIFtuZXh0W2luZGV4XSwgbmV4dFt0YXJnZXRdXSA9IFtuZXh0W3RhcmdldF0sIG5leHRbaW5kZXhdXTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEd1YXJkYSBsbyBxdWUgc2UgZXN0w6EgZXNjcmliaWVuZG8sIHNpbiBjZXJyYXIgZWwgZWRpdG9yIG5pIHZhbGlkYXIuXG4gICAqXG4gICAqIFNpbiBlc3RvLCBsbyB0aXBlYWRvIHNvbG8gZXhpc3TDrWEgZGVudHJvIGRlbCBlZGl0b3IgaGFzdGEgcXVlIGFsZ3VpZW5cbiAgICogdG9jYWJhIFwiTGlzdG9cIjogbGEgZmlsYSBzZWd1w61hIGRpY2llbmRvIFwiUHJlZ3VudGEgc2luIHRleHRvXCIgeSwgcGVvcixcbiAgICogXCJHdWFyZGFyIGVuY3Vlc3RhXCIgZmFsbGFiYSBjb24gXCJ0b2RhcyBsYXMgcHJlZ3VudGFzIG5lY2VzaXRhbiB0ZXh0b1wiIHNvYnJlXG4gICAqIHVuYSBwcmVndW50YSBxdWUgZW4gcGFudGFsbGEgY2xhcmFtZW50ZSB0ZW7DrWEgdGV4dG8uIFRvY2FyIFwiTGlzdG9cIiBlcmEgdW5cbiAgICogcGFzbyBvYmxpZ2F0b3JpbyBxdWUgbm8gc2UgdmXDrWEgcG9yIG5pbmfDum4gbGFkby5cbiAgICovXG4gIGRyYWZ0UXVlc3Rpb24oZmllbGQ6IEVkaXRhYmxlRmllbGREZWYpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXN0aW9ucy51cGRhdGUocm93cyA9PiByb3dzLm1hcChyID0+IChyLmlkID09PSBmaWVsZC5pZCA/IHsgLi4uciwgLi4uZmllbGQgfSA6IHIpKSk7XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvbkVycm9yKCkpIHRoaXMudmFsaWRhdGlvbkVycm9yLnNldCgnJyk7XG4gIH1cblxuICBhcHBseVF1ZXN0aW9uKGZpZWxkOiBFZGl0YWJsZUZpZWxkRGVmKTogdm9pZCB7XG4gICAgdGhpcy5xdWVzdGlvbnMudXBkYXRlKHJvd3MgPT5cbiAgICAgIHJvd3MubWFwKHIgPT5cbiAgICAgICAgci5pZCA9PT0gZmllbGQuaWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuZm9ybUJ1aWxkZXIudW5pcXVlRmllbGROYW1lKFxuICAgICAgICAgICAgICAgIGZpZWxkLm5hbWUgfHwgZmllbGQubGFiZWwsXG4gICAgICAgICAgICAgICAgcm93cy5maWx0ZXIobyA9PiBvLmlkICE9PSByLmlkKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogclxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5lZGl0aW5nSWQuc2V0KCcnKTtcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5zZXQoJycpO1xuICB9XG5cbiAgYXN5bmMgc2F2ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zYXZpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnNldCgnJyk7XG5cbiAgICBjb25zdCB0aXRsZSA9IHRoaXMudGl0bGVDb250cm9sLnZhbHVlLnRyaW0oKTtcbiAgICBpZiAoIXRpdGxlKSB7XG4gICAgICB0aGlzLnRpdGxlQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5zZXQodGhpcy50KCdub1RpdGxlJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJvd3MgPSB0aGlzLnF1ZXN0aW9ucygpO1xuICAgIGlmICghcm93cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnNldCh0aGlzLnQoJ25vUXVlc3Rpb25zJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocm93cy5zb21lKHIgPT4gIXIubGFiZWwudHJpbSgpKSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3Iuc2V0KHRoaXMudCgnZW1wdHlRdWVzdGlvbkxhYmVsJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBFbCBlZGl0b3IgeWEgbG8gdmFsaWRhIGFsIGNlcnJhciBjYWRhIHByZWd1bnRhLCBwZXJvIHVuYSBwcmVndW50YSBhYmllcnRhXG4gICAgLy8gKG8gY2FyZ2FkYSBkZSB1bmEgZW5jdWVzdGEgdmllamEpIHB1ZWRlIGxsZWdhciBhY8OhIHNpbiBvcGNpb25lcy5cbiAgICBpZiAocm93cy5zb21lKHIgPT4gRklFTERfVFlQRVNfV0lUSF9PUFRJT05TLmluY2x1ZGVzKHIudHlwZSkgJiYgIXIub3B0aW9ucz8ubGVuZ3RoKSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3Iuc2V0KHRoaXMudCgnbWlzc2luZ09wdGlvbnMnKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hRGVmW10gPSBbXTtcbiAgICByb3dzLmZvckVhY2goKHJvdywgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmZvcm1CdWlsZGVyLnVuaXF1ZUZpZWxkTmFtZShyb3cubmFtZSB8fCByb3cubGFiZWwsIGZpZWxkU2NoZW1hKTtcbiAgICAgIGZpZWxkU2NoZW1hLnB1c2goXG4gICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY3JlYXRlRmllbGRTY2hlbWEoXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGxhYmVsOiByb3cubGFiZWwudHJpbSgpLFxuICAgICAgICAgICAgdHlwZTogcm93LnR5cGUsXG4gICAgICAgICAgICByZXF1aXJlZDogcm93LnJlcXVpcmVkLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXJUZXh0OiByb3cucGxhY2Vob2xkZXJUZXh0LFxuICAgICAgICAgICAgaGludFRleHQ6IHJvdy5oaW50VGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHJvdy5vcHRpb25zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaW5kZXhcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHN1YnRpdGxlID0gdGhpcy5zdWJ0aXRsZUNvbnRyb2wudmFsdWUudHJpbSgpO1xuXG4gICAgLy8gTGEgYXBwIGd1YXJkYTogYWPDoSBzb2xvIHNlIHZhbGlkYSB5IHNlIGVudHJlZ2EgbG8gZXNjcml0by5cbiAgICBpZiAodGhpcy5wcm9wcy5wZXJzaXN0ID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5kcmFmdC5lbWl0KHsgbGFiZWw6IHRpdGxlLCBzdWJ0aXRsZSwgcXVlc3Rpb25zOiBmaWVsZFNjaGVtYSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNhdmluZy5zZXQodHJ1ZSk7XG5cbiAgICAvLyBgdHlwZUlkYCBkZXJpdmFkbyBkZWwgdMOtdHVsbzogc2lydmUgcGFyYSB1biB0aXBvIGRlIHNvbGljaXR1ZCBkZVxuICAgIC8vIHBsYXRhZm9ybWEsIGRvbmRlIGVsIHTDrXR1bG8gRVMgbGEgaWRlbnRpZGFkLiBQYXJhIHVuYSBlbmN1ZXN0YSBhdGFkYSBhXG4gICAgLy8gdW5hIGVudGlkYWQgTk8gYWxjYW56YSDigJQgZG9zIGV2ZW50b3MgY29uIGVsIG1pc21vIHTDrXR1bG8gY29saXNpb25hcsOtYW4gZW5cbiAgICAvLyBlbCBtaXNtbyB0aXBvIHkgY29tcGFydGlyw61hbiByZXNwdWVzdGFzLiBQb3IgZXNvIHVuYSB2ZXJ0aWNhbCB1c2Egc3VcbiAgICAvLyBlbmRwb2ludCAoYHBlcnNpc3Q6IGZhbHNlYCkgeSBhcm1hIGVsIGlkIGNvbiBsYSBlbnRpZGFkIGFkZW50cm8uXG4gICAgY29uc3QgdHlwZUlkID1cbiAgICAgIHRoaXMucHJvcHMudHlwZUlkID8/IGAke3RoaXMucHJvcHMudHlwZVByZWZpeCA/PyBERUZBVUxUX1RZUEVfUFJFRklYfToke3RoaXMuZm9ybUJ1aWxkZXIudG9Ub2tlbih0aXRsZSl9YDtcblxuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBsYWJlbDogdGl0bGUsXG4gICAgICBzdWJ0aXRsZSxcbiAgICAgIGVudGl0eVJlZjogdGhpcy5wcm9wcy5lbnRpdHlSZWYsXG4gICAgICBza2lwUmV2aWV3OiB0cnVlLFxuICAgICAgc2tpcFN1Ym1pdHRlcklkZW50aXR5OiB0cnVlLFxuICAgICAgZmllbGRTY2hlbWEsXG4gICAgICBhbGxvd0Fub255bW91czogdGhpcy5wcm9wcy5hbGxvd0Fub255bW91cyA/PyB0cnVlLFxuICAgICAgdmlzaWJpbGl0eTogdGhpcy5wcm9wcy52aXNpYmlsaXR5ID8/ICgnUFVCTElDJyBhcyBjb25zdCksXG4gICAgfTtcblxuICAgIGNvbnN0IGNhbGwkID0gdGhpcy5wcm9wcy50eXBlSWRcbiAgICAgID8gdGhpcy5yZXF1ZXN0cy51cGRhdGVSZXF1ZXN0VHlwZSh0aGlzLnByb3BzLnR5cGVJZCwgcGF5bG9hZClcbiAgICAgIDogdGhpcy5yZXF1ZXN0cy5jcmVhdGVSZXF1ZXN0VHlwZSh7IC4uLnBheWxvYWQsIHR5cGVJZCB9KTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0eXBlQ29uZmlnID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oY2FsbCQpO1xuICAgICAgdGhpcy5zYXZpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuc2F2ZWQuZW1pdCh7IHR5cGVDb25maWcgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLnNhdmluZy5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnc3VydmV5QnVpbGRlci5zYXZlJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzYXZlRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiBOQU1FU1BBQ0UsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJvd0Zyb21GaWVsZChmOiBGaWVsZFNjaGVtYURlZik6IEVkaXRhYmxlRmllbGREZWYge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogYHJvdy0ke3Jvd1VpZCsrfWAsXG4gICAgICBuYW1lOiBmLm5hbWUsXG4gICAgICBsYWJlbDogZi5sYWJlbCA/PyAnJyxcbiAgICAgIHBsYWNlaG9sZGVyVGV4dDogZi5wbGFjZWhvbGRlclRleHQgPz8gJycsXG4gICAgICBoaW50VGV4dDogZi5oaW50VGV4dCA/PyAnJyxcbiAgICAgIHR5cGU6IGYudHlwZSxcbiAgICAgIHJlcXVpcmVkOiAhIWYucmVxdWlyZWQsXG4gICAgICBvcHRpb25zOiBmLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
520
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9zdXJ2ZXktYnVpbGRlci9zdXJ2ZXktYnVpbGRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRXBHLE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixHQUMzQixNQUFNLHNEQUFzRCxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTNGLE9BQU8sRUFJTCxxQkFB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Ozs7Ozs7OztHQTRHVDt3REEyRlEsS0FBSztzQkFBYixLQUFLO2dCQUNhLEtBQUs7c0JBQXZCLE1BQU07Z0JBT1ksS0FBSztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdEZvcm1CdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3JlcXVlc3QtZm9ybS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRTY2hlbWFEZWYgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy90eXBlcyc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEZJRUxEX1RZUEVTX1dJVEhfT1BUSU9OUyxcbiAgRmllbGRTY2hlbWFFZGl0b3JDb21wb25lbnQsXG59IGZyb20gJy4uL2ZpZWxkLXNjaGVtYS1lZGl0b3IvZmllbGQtc2NoZW1hLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRklFTERfU0NIRU1BX0VESVRPUl9JMThOIH0gZnJvbSAnLi4vZmllbGQtc2NoZW1hLWVkaXRvci9maWVsZC1zY2hlbWEtZWRpdG9yLmkxOG4nO1xuaW1wb3J0IHsgRWRpdGFibGVGaWVsZERlZiwgRmllbGRTY2hlbWFFZGl0b3JNZXRhZGF0YSB9IGZyb20gJy4uL2ZpZWxkLXNjaGVtYS1lZGl0b3IvdHlwZXMnO1xuaW1wb3J0IHtcbiAgU3VydmV5QnVpbGRlck1ldGFkYXRhLFxuICBTdXJ2ZXlCdWlsZGVyU2F2ZUV2ZW50LFxuICBTdXJ2ZXlEcmFmdEV2ZW50LFxuICBTVVJWRVlfUVVFU1RJT05fVFlQRVMsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU1VSVkVZX0JVSUxERVJfSTE4TiB9IGZyb20gJy4vc3VydmV5LWJ1aWxkZXIuaTE4bic7XG5cbmNvbnN0IE5BTUVTUEFDRSA9ICdTdXJ2ZXlCdWlsZGVyJztcbmNvbnN0IEVESVRPUl9OQU1FU1BBQ0UgPSAnRmllbGRTY2hlbWFFZGl0b3InO1xuY29uc3QgREVGQVVMVF9UWVBFX1BSRUZJWCA9ICdzdXJ2ZXknO1xuXG5sZXQgcm93VWlkID0gMDtcblxuLyoqXG4gKiB2YWwtc3VydmV5LWJ1aWxkZXJcbiAqXG4gKiBBdXRvcsOtYSBkZSB1bmEgZW5jdWVzdGE6IHTDrXR1bG8sIHN1YnTDrXR1bG8sIHByZWd1bnRhcyDigJQgYXJtYSBvIGFjdHVhbGl6YSB1blxuICogYFJlcXVlc3RUeXBlQ29uZmlnYCBjb24gYFR5cGU6IFwiPHByZWZpeD46PHNsdWc+XCJgIChBRFItMDkyKSwgYHNraXBSZXZpZXc6XG4gKiB0cnVlYCAoY2FkYSByZXNwdWVzdGEgc2UgYWdyZWdhLCBubyBzZSByZXZpc2EgdW5hIHBvciB1bmEpIHkgZWwgYEVudGl0eVJlZmBcbiAqIHF1ZSBsZSBwYXNhIGVsIGNvbnN1bWVyIChlai4gZWwgZXZlbnRvIGRlIGJpbmdvIGR1ZcOxbyBkZSBsYSBlbmN1ZXN0YSkuXG4gKlxuICogQ2FkYSBwcmVndW50YSBzZSBlZGl0YSBjb24gYHZhbC1maWVsZC1zY2hlbWEtZWRpdG9yYCwgZWwgbWlzbW8gZWRpdG9yIHF1ZSB1c2FcbiAqIGVsIGNoZWNrb3V0IGRlIGJpbmdvIOKAlCBkZSBhaMOtIHF1ZSB1bmEgcHJlZ3VudGEgdGVuZ2EgdGlwbywgcGxhY2Vob2xkZXIsIG5vdGFcbiAqIHkgb3BjaW9uZXMsIG5vIHNvbG8gdGV4dG8uIExhIHYxIGRlIGVzdGUgY29tcG9uZW50ZSB0ZW7DrWEgc3UgcHJvcGlvIGVkaXRvclxuICogcG9icmUgKGRvcyB0aXBvcywgc2luIG9wY2lvbmVzKTsgbGEgRmFzZSA1IGRlbCBBRFItMDkyIGxvIHJlZW1wbGF6w7MgcG9yIGVsXG4gKiBvcmdhbmlzbSBjb21wYXJ0aWRvIGVuIHZleiBkZSBtZWpvcmFybG8gcG9yIGR1cGxpY2Fkby5cbiAqXG4gKiBFbCBjYXTDoWxvZ28gcXVlIG9mcmVjZSBzYWxlIGRlIGBTVVJWRVlfUVVFU1RJT05fVFlQRVNgIOKAlCBhY290YWRvIGEgbG8gcXVlXG4gKiBgdmFsLXN1cnZleS1yZXNwb25zZWAgc2FiZSByZW5kZXJpemFyLCBubyBhIGxvIHF1ZSBlbCBlZGl0b3Igc2FiZSBlZGl0YXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zdXJ2ZXktYnVpbGRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBGaWVsZFNjaGVtYUVkaXRvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJcIj5cbiAgICAgIDx2YWwtZm9ybS1maWVsZCBbbGFiZWxdPVwidCgndGl0bGVMYWJlbCcpXCI+XG4gICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwieyBjb250cm9sOiB0aXRsZUNvbnRyb2wsIHBsYWNlaG9sZGVyOiB0KCd0aXRsZVBsYWNlaG9sZGVyJykgfVwiIC8+XG4gICAgICA8L3ZhbC1mb3JtLWZpZWxkPlxuICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJ0KCdzdWJ0aXRsZUxhYmVsJylcIj5cbiAgICAgICAgPHZhbC10ZXh0LWlucHV0IFtwcm9wc109XCJ7IGNvbnRyb2w6IHN1YnRpdGxlQ29udHJvbCwgcGxhY2Vob2xkZXI6IHQoJ3N1YnRpdGxlUGxhY2Vob2xkZXInKSB9XCIgLz5cbiAgICAgIDwvdmFsLWZvcm0tZmllbGQ+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fcXVlc3Rpb25zXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3F1ZXN0aW9ucy1sYWJlbFwiPnt7IHQoJ3F1ZXN0aW9uc0xhYmVsJykgfX08L3NwYW4+XG5cbiAgICAgICAgQGlmICghcXVlc3Rpb25zKCkubGVuZ3RoKSB7XG4gICAgICAgICAgPHAgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fZW1wdHlcIj57eyB0KCdub1F1ZXN0aW9ucycpIH19PC9wPlxuICAgICAgICB9XG5cbiAgICAgICAgQGZvciAocm93IG9mIHF1ZXN0aW9ucygpOyB0cmFjayByb3cuaWQ7IGxldCBpID0gJGluZGV4OyBsZXQgZmlyc3QgPSAkZmlyc3Q7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3Jvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1idWlsZGVyX19yb3ctaGVhZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3Jvdy10ZXh0XCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyByb3cubGFiZWwgfHwgdCgndW50aXRsZWRRdWVzdGlvbicpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdHlwZUxhYmVsKHJvdy50eXBlKSB9fXt7IHJvdy5yZXF1aXJlZCA/ICcgwrcgJyArIHQoJ3JlcXVpcmVkVGFnJykgOiAnJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fcm93LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cImljb25BY3Rpb24oJ3EtdXAtJyArIHJvdy5pZCwgJ2Fycm93LXVwLW91dGxpbmUnLCB0KCdtb3ZlVXAnKSwgZmlyc3QpXCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm1vdmUoaSwgLTEpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwiaWNvbkFjdGlvbigncS1kb3duLScgKyByb3cuaWQsICdhcnJvdy1kb3duLW91dGxpbmUnLCB0KCdtb3ZlRG93bicpLCBsYXN0KVwiXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJtb3ZlKGksIDEpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwiaWNvbkFjdGlvbigncS1jb3B5LScgKyByb3cuaWQsICdjb3B5LW91dGxpbmUnLCB0KCdkdXBsaWNhdGVRdWVzdGlvbicpKVwiXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkdXBsaWNhdGUocm93KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cImljb25BY3Rpb24oJ3EtZWRpdC0nICsgcm93LmlkLCAnY3JlYXRlLW91dGxpbmUnLCB0KCdlZGl0UXVlc3Rpb24nKSlcIlxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidG9nZ2xlRWRpdChyb3cpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwiaWNvbkFjdGlvbigncS1yZW1vdmUtJyArIHJvdy5pZCwgJ3RyYXNoLW91dGxpbmUnLCB0KCdyZW1vdmVRdWVzdGlvbicpLCBmYWxzZSwgJ2RhbmdlcicpXCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInJlbW92ZVF1ZXN0aW9uKHJvdylcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAoZWRpdGluZ0lkKCkgPT09IHJvdy5pZCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3Jvdy1lZGl0b3JcIj5cbiAgICAgICAgICAgICAgICA8dmFsLWZpZWxkLXNjaGVtYS1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICNlZGl0b3JcbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJlZGl0b3JQcm9wcyhyb3cpXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cImRyYWZ0UXVlc3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoc2F2ZSk9XCJhcHBseVF1ZXN0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHRva2VuOiAncS1kb25lLScgKyByb3cuaWQsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHQoJ2RvbmVFZGl0aW5nJyksXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgICAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJlZGl0b3Iuc3VibWl0KClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgdG9rZW46ICdzdXJ2ZXktYnVpbGRlci1hZGQtcXVlc3Rpb24nLFxuICAgICAgICAgICAgdGV4dDogdCgnYWRkUXVlc3Rpb24nKSxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgIGljb246IHsgbmFtZTogJ2FkZC1vdXRsaW5lJywgc2xvdDogJ3N0YXJ0JyB9LFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChvbkNsaWNrKT1cImFkZFF1ZXN0aW9uKClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAodmFsaWRhdGlvbkVycm9yKCkpIHtcbiAgICAgICAgPHAgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fZXJyb3JcIj57eyB2YWxpZGF0aW9uRXJyb3IoKSB9fTwvcD5cbiAgICAgIH1cblxuICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICB0b2tlbjogJ3N1cnZleS1idWlsZGVyLXNhdmUnLFxuICAgICAgICAgIHRleHQ6IHQoJ3NhdmUnKSxcbiAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgc3RhdGU6IHNhdmluZygpID8gJ1dPUktJTkcnIDogJ0VOQUJMRUQnLFxuICAgICAgICB9XCJcbiAgICAgICAgKG9uQ2xpY2spPVwic2F2ZSgpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuc3VydmV5LWJ1aWxkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICB9XG4gICAgICAuc3VydmV5LWJ1aWxkZXJfX3F1ZXN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcXVlc3Rpb25zLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fZW1wdHkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12YWwtcmFkaXVzLW1kLCAxMnB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpKTtcbiAgICAgIH1cbiAgICAgIC8qIE1vYmlsZS1maXJzdDogZWwgdGV4dG8gZGUgbGEgcHJlZ3VudGEgeSBzdXMgYWNjaW9uZXMgYXBpbGFkb3MuIEVuIGZpbGFcbiAgICAgICAgIGZpamEsIGNpbmNvIGJvdG9uZXMgbGUgY29tZW4gZWwgYW5jaG8gYWwgdGV4dG8geSBsbyBwYXJ0ZW4gZW4gbXVjaGFzXG4gICAgICAgICBsw61uZWFzIGFuZ29zdGFzIOKAlCBqdXN0byBlbiBlbCB2aWV3cG9ydCBkb25kZSBtw6FzIHNlIHVzYS4gKi9cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LWhlYWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LXRleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1idWlsZGVyX19yb3ctdGV4dCBzdHJvbmcge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IsICMwMDApO1xuICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LXRleHQgc3BhbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICB9XG4gICAgICAuc3VydmV5LWJ1aWxkZXJfX3Jvdy1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LWVkaXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1idWlsZGVyX19lcnJvciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gICAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LWhlYWQge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG4gICAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LXRleHQge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHM6IFN1cnZleUJ1aWxkZXJNZXRhZGF0YSA9IHt9O1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1cnZleUJ1aWxkZXJTYXZlRXZlbnQ+KCk7XG4gIC8qKlxuICAgKiBFbWl0ZSBsbyBlc2NyaXRvLCB5YSB2YWxpZGFkbywgU0lOIGd1YXJkYXJsby4gU29sbyBjb24gYHByb3BzLnBlcnNpc3Q6XG4gICAqIGZhbHNlYCDigJQgdmVyIGVsIGNvbWVudGFyaW8gZGUgZXNlIGNhbXBvOiBjdWFuZG8gbGEgYXBwIHRpZW5lIGVuZHBvaW50XG4gICAqIHByb3BpbywgZ3VhcmRhciBkZXNkZSBhY8OhIHNlIHNhbHRhIGxhIHZhbGlkYWNpw7NuIGRlIGxhIGVudGlkYWQgZHVlw7FhIHkgZWxcbiAgICogcGVybWlzbyBkZSBsYSB2ZXJ0aWNhbC5cbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBkcmFmdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VydmV5RHJhZnRFdmVudD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RzID0gaW5qZWN0KFJlcXVlc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlciA9IGluamVjdChSZXF1ZXN0Rm9ybUJ1aWxkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgdGl0bGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSBzdWJ0aXRsZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHJlYWRvbmx5IHF1ZXN0aW9ucyA9IHNpZ25hbDxFZGl0YWJsZUZpZWxkRGVmW10+KFtdKTtcbiAgcmVhZG9ubHkgZWRpdGluZ0lkID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgdmFsaWRhdGlvbkVycm9yID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgc2F2aW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoTkFNRVNQQUNFKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoTkFNRVNQQUNFLCBTVVJWRVlfQlVJTERFUl9JMThOKTtcbiAgICB9XG4gICAgLy8gRWwgbm9tYnJlIGRlbCB0aXBvIGRlIGNhZGEgcHJlZ3VudGEgc2UgbXVlc3RyYSBlbiBsYSBmaWxhIGNvbGFwc2FkYSwgcXVlXG4gICAgLy8gZGlidWphIGVzdGUgY29tcG9uZW50ZSB5IG5vIGVsIGVkaXRvciDigJQgc2kgbmFkaWUgbW9udMOzIHVuIGVkaXRvciB0b2RhdsOtYSxcbiAgICAvLyBlbCBuYW1lc3BhY2Ugbm8gZXhpc3RpcsOtYSB5IGxhIGZpbGEgbW9zdHJhcsOtYSBsYSBjbGF2ZSBjcnVkYS5cbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoRURJVE9SX05BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKEVESVRPUl9OQU1FU1BBQ0UsIEZJRUxEX1NDSEVNQV9FRElUT1JfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gU2VtYnJhZG8gZGlyZWN0bzogbGEgYXBwIHlhIHRlbsOtYSBsYSBlbmN1ZXN0YSwgbm8gaGFjZSBmYWx0YSBsZWVybGEuXG4gICAgaWYgKHRoaXMucHJvcHMuaW5pdGlhbCkge1xuICAgICAgdGhpcy5oeWRyYXRlKHRoaXMucHJvcHMuaW5pdGlhbC5sYWJlbCwgdGhpcy5wcm9wcy5pbml0aWFsLnN1YnRpdGxlLCB0aGlzLnByb3BzLmluaXRpYWwucXVlc3Rpb25zKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnByb3BzLnR5cGVJZCkgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjZmcgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlcXVlc3RzLmdldFJlcXVlc3RUeXBlKHRoaXMucHJvcHMudHlwZUlkKSk7XG4gICAgICB0aGlzLmh5ZHJhdGUoY2ZnLmxhYmVsLCBjZmcuc3VidGl0bGUgPz8gJycsIGNmZy5maWVsZFNjaGVtYSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzdXJ2ZXlCdWlsZGVyLmxvYWQnLFxuICAgICAgICBmYWxsYmFja0tleTogJ2xvYWRFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IE5BTUVTUEFDRSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgTkFNRVNQQUNFKTtcbiAgfVxuXG4gIHR5cGVMYWJlbCh0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGB0eXBlJHt0eXBlfWAsIEVESVRPUl9OQU1FU1BBQ0UpO1xuICB9XG5cbiAgcXVlc3Rpb25UeXBlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucXVlc3Rpb25UeXBlcz8ubGVuZ3RoID8gdGhpcy5wcm9wcy5xdWVzdGlvblR5cGVzIDogU1VSVkVZX1FVRVNUSU9OX1RZUEVTO1xuICB9XG5cbiAgZWRpdG9yUHJvcHMocm93OiBFZGl0YWJsZUZpZWxkRGVmKTogRmllbGRTY2hlbWFFZGl0b3JNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHsgbW9kZTogJ2VkaXQnLCBmaWVsZDogcm93LCBhbGxvd2VkVHlwZXM6IHRoaXMucXVlc3Rpb25UeXBlcygpIH07XG4gIH1cblxuICBpY29uQWN0aW9uKFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgaWNvbjogc3RyaW5nLFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjb2xvcjogQ29sb3IgPSAnZGFyaydcbiAgKTogQnV0dG9uTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICB0b2tlbixcbiAgICAgIHRleHQ6ICcnLFxuICAgICAgYXJpYUxhYmVsOiBsYWJlbCxcbiAgICAgIGNvbG9yLFxuICAgICAgZmlsbDogJ2NsZWFyJyxcbiAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgc3RhdGU6IGRpc2FibGVkID8gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICBpY29uOiB7IG5hbWU6IGljb24sIHNsb3Q6ICdpY29uLW9ubHknIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFkZFF1ZXN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvdzogRWRpdGFibGVGaWVsZERlZiA9IHtcbiAgICAgIGlkOiBgcm93LSR7cm93VWlkKyt9YCxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgbGFiZWw6ICcnLFxuICAgICAgcGxhY2Vob2xkZXJUZXh0OiAnJyxcbiAgICAgIGhpbnRUZXh0OiAnJyxcbiAgICAgIHR5cGU6IHRoaXMucXVlc3Rpb25UeXBlcygpWzBdLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfTtcbiAgICB0aGlzLnF1ZXN0aW9ucy51cGRhdGUocm93cyA9PiBbLi4ucm93cywgcm93XSk7XG4gICAgLy8gVW5hIHByZWd1bnRhIHJlY2nDqW4gYWdyZWdhZGEgZXN0w6EgdmFjw61hOiBhYnJpcmxhIGVzIGVsIMO6bmljbyBwYXNvXG4gICAgLy8gc2lndWllbnRlIHBvc2libGUsIHkgZGVqYXJsYSBjZXJyYWRhIGxhIGhhcsOtYSB2ZXIgY29tbyB1bmEgZmlsYSByb3RhLlxuICAgIHRoaXMuZWRpdGluZ0lkLnNldChyb3cuaWQpO1xuICB9XG5cbiAgdG9nZ2xlRWRpdChyb3c6IEVkaXRhYmxlRmllbGREZWYpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRpbmdJZC51cGRhdGUoY3VycmVudCA9PiAoY3VycmVudCA9PT0gcm93LmlkID8gJycgOiByb3cuaWQpKTtcbiAgfVxuXG4gIHJlbW92ZVF1ZXN0aW9uKHJvdzogRWRpdGFibGVGaWVsZERlZik6IHZvaWQge1xuICAgIHRoaXMucXVlc3Rpb25zLnVwZGF0ZShyb3dzID0+IHJvd3MuZmlsdGVyKHIgPT4gci5pZCAhPT0gcm93LmlkKSk7XG4gICAgaWYgKHRoaXMuZWRpdGluZ0lkKCkgPT09IHJvdy5pZCkgdGhpcy5lZGl0aW5nSWQuc2V0KCcnKTtcbiAgfVxuXG4gIGR1cGxpY2F0ZShyb3c6IEVkaXRhYmxlRmllbGREZWYpOiB2b2lkIHtcbiAgICBjb25zdCBjb3B5OiBFZGl0YWJsZUZpZWxkRGVmID0ge1xuICAgICAgLi4ucm93LFxuICAgICAgaWQ6IGByb3ctJHtyb3dVaWQrK31gLFxuICAgICAgLy8gU2luIHRva2VuIHByb3BpbyBsYSBjb3BpYSBwaXNhcsOtYSBsYXMgcmVzcHVlc3RhcyBkZWwgb3JpZ2luYWw6IGRvc1xuICAgICAgLy8gY2FtcG9zIGNvbiBlbCBtaXNtbyBgbmFtZWAgc29uIGVsIG1pc21vIGNhbXBvIHBhcmEgZWwgYmFja2VuZC5cbiAgICAgIG5hbWU6IHRoaXMuZm9ybUJ1aWxkZXIudW5pcXVlRmllbGROYW1lKHJvdy5uYW1lIHx8IHJvdy5sYWJlbCwgdGhpcy5xdWVzdGlvbnMoKSksXG4gICAgICBvcHRpb25zOiByb3cub3B0aW9ucyA/IHJvdy5vcHRpb25zLm1hcChvID0+ICh7IC4uLm8gfSkpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gICAgdGhpcy5xdWVzdGlvbnMudXBkYXRlKHJvd3MgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSByb3dzLmZpbmRJbmRleChyID0+IHIuaWQgPT09IHJvdy5pZCk7XG4gICAgICByZXR1cm4gWy4uLnJvd3Muc2xpY2UoMCwgaW5kZXggKyAxKSwgY29weSwgLi4ucm93cy5zbGljZShpbmRleCArIDEpXTtcbiAgICB9KTtcbiAgfVxuXG4gIG1vdmUoaW5kZXg6IG51bWJlciwgZGVsdGE6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGluZGV4ICsgZGVsdGE7XG4gICAgdGhpcy5xdWVzdGlvbnMudXBkYXRlKHJvd3MgPT4ge1xuICAgICAgaWYgKHRhcmdldCA8IDAgfHwgdGFyZ2V0ID49IHJvd3MubGVuZ3RoKSByZXR1cm4gcm93cztcbiAgICAgIGNvbnN0IG5leHQgPSBbLi4ucm93c107XG4gICAgICBbbmV4dFtpbmRleF0sIG5leHRbdGFyZ2V0XV0gPSBbbmV4dFt0YXJnZXRdLCBuZXh0W2luZGV4XV07XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgbG8gcXVlIHNlIGVzdMOhIGVzY3JpYmllbmRvLCBzaW4gY2VycmFyIGVsIGVkaXRvciBuaSB2YWxpZGFyLlxuICAgKlxuICAgKiBTaW4gZXN0bywgbG8gdGlwZWFkbyBzb2xvIGV4aXN0w61hIGRlbnRybyBkZWwgZWRpdG9yIGhhc3RhIHF1ZSBhbGd1aWVuXG4gICAqIHRvY2FiYSBcIkxpc3RvXCI6IGxhIGZpbGEgc2VndcOtYSBkaWNpZW5kbyBcIlByZWd1bnRhIHNpbiB0ZXh0b1wiIHksIHBlb3IsXG4gICAqIFwiR3VhcmRhciBlbmN1ZXN0YVwiIGZhbGxhYmEgY29uIFwidG9kYXMgbGFzIHByZWd1bnRhcyBuZWNlc2l0YW4gdGV4dG9cIiBzb2JyZVxuICAgKiB1bmEgcHJlZ3VudGEgcXVlIGVuIHBhbnRhbGxhIGNsYXJhbWVudGUgdGVuw61hIHRleHRvLiBUb2NhciBcIkxpc3RvXCIgZXJhIHVuXG4gICAqIHBhc28gb2JsaWdhdG9yaW8gcXVlIG5vIHNlIHZlw61hIHBvciBuaW5nw7puIGxhZG8uXG4gICAqL1xuICBkcmFmdFF1ZXN0aW9uKGZpZWxkOiBFZGl0YWJsZUZpZWxkRGVmKTogdm9pZCB7XG4gICAgdGhpcy5xdWVzdGlvbnMudXBkYXRlKHJvd3MgPT4gcm93cy5tYXAociA9PiAoci5pZCA9PT0gZmllbGQuaWQgPyB7IC4uLnIsIC4uLmZpZWxkIH0gOiByKSkpO1xuICAgIGlmICh0aGlzLnZhbGlkYXRpb25FcnJvcigpKSB0aGlzLnZhbGlkYXRpb25FcnJvci5zZXQoJycpO1xuICB9XG5cbiAgYXBwbHlRdWVzdGlvbihmaWVsZDogRWRpdGFibGVGaWVsZERlZik6IHZvaWQge1xuICAgIHRoaXMucXVlc3Rpb25zLnVwZGF0ZShyb3dzID0+XG4gICAgICByb3dzLm1hcChyID0+XG4gICAgICAgIHIuaWQgPT09IGZpZWxkLmlkXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIC4uLmZpZWxkLFxuICAgICAgICAgICAgICBuYW1lOiB0aGlzLmZvcm1CdWlsZGVyLnVuaXF1ZUZpZWxkTmFtZShcbiAgICAgICAgICAgICAgICBmaWVsZC5uYW1lIHx8IGZpZWxkLmxhYmVsLFxuICAgICAgICAgICAgICAgIHJvd3MuZmlsdGVyKG8gPT4gby5pZCAhPT0gci5pZClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHJcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuZWRpdGluZ0lkLnNldCgnJyk7XG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3Iuc2V0KCcnKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkpIHJldHVybjtcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5zZXQoJycpO1xuXG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLnRpdGxlQ29udHJvbC52YWx1ZS50cmltKCk7XG4gICAgaWYgKCF0aXRsZSkge1xuICAgICAgdGhpcy50aXRsZUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3Iuc2V0KHRoaXMudCgnbm9UaXRsZScpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByb3dzID0gdGhpcy5xdWVzdGlvbnMoKTtcbiAgICBpZiAoIXJvd3MubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5zZXQodGhpcy50KCdub1F1ZXN0aW9ucycpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHJvd3Muc29tZShyID0+ICFyLmxhYmVsLnRyaW0oKSkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnNldCh0aGlzLnQoJ2VtcHR5UXVlc3Rpb25MYWJlbCcpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gRWwgZWRpdG9yIHlhIGxvIHZhbGlkYSBhbCBjZXJyYXIgY2FkYSBwcmVndW50YSwgcGVybyB1bmEgcHJlZ3VudGEgYWJpZXJ0YVxuICAgIC8vIChvIGNhcmdhZGEgZGUgdW5hIGVuY3Vlc3RhIHZpZWphKSBwdWVkZSBsbGVnYXIgYWPDoSBzaW4gb3BjaW9uZXMuXG4gICAgaWYgKHJvd3Muc29tZShyID0+IEZJRUxEX1RZUEVTX1dJVEhfT1BUSU9OUy5pbmNsdWRlcyhyLnR5cGUpICYmICFyLm9wdGlvbnM/Lmxlbmd0aCkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnNldCh0aGlzLnQoJ21pc3NpbmdPcHRpb25zJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYURlZltdID0gW107XG4gICAgcm93cy5mb3JFYWNoKChyb3csIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5mb3JtQnVpbGRlci51bmlxdWVGaWVsZE5hbWUocm93Lm5hbWUgfHwgcm93LmxhYmVsLCBmaWVsZFNjaGVtYSk7XG4gICAgICBmaWVsZFNjaGVtYS5wdXNoKFxuICAgICAgICB0aGlzLmZvcm1CdWlsZGVyLmNyZWF0ZUZpZWxkU2NoZW1hKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBsYWJlbDogcm93LmxhYmVsLnRyaW0oKSxcbiAgICAgICAgICAgIHR5cGU6IHJvdy50eXBlLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHJvdy5yZXF1aXJlZCxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyVGV4dDogcm93LnBsYWNlaG9sZGVyVGV4dCxcbiAgICAgICAgICAgIGhpbnRUZXh0OiByb3cuaGludFRleHQsXG4gICAgICAgICAgICBvcHRpb25zOiByb3cub3B0aW9ucyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluZGV4XG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBzdWJ0aXRsZSA9IHRoaXMuc3VidGl0bGVDb250cm9sLnZhbHVlLnRyaW0oKTtcblxuICAgIC8vIExhIGFwcCBndWFyZGE6IGFjw6Egc29sbyBzZSB2YWxpZGEgeSBzZSBlbnRyZWdhIGxvIGVzY3JpdG8uXG4gICAgaWYgKHRoaXMucHJvcHMucGVyc2lzdCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuZHJhZnQuZW1pdCh7IGxhYmVsOiB0aXRsZSwgc3VidGl0bGUsIHF1ZXN0aW9uczogZmllbGRTY2hlbWEgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zYXZpbmcuc2V0KHRydWUpO1xuXG4gICAgLy8gYHR5cGVJZGAgZGVyaXZhZG8gZGVsIHTDrXR1bG86IHNpcnZlIHBhcmEgdW4gdGlwbyBkZSBzb2xpY2l0dWQgZGVcbiAgICAvLyBwbGF0YWZvcm1hLCBkb25kZSBlbCB0w610dWxvIEVTIGxhIGlkZW50aWRhZC4gUGFyYSB1bmEgZW5jdWVzdGEgYXRhZGEgYVxuICAgIC8vIHVuYSBlbnRpZGFkIE5PIGFsY2FuemEg4oCUIGRvcyBldmVudG9zIGNvbiBlbCBtaXNtbyB0w610dWxvIGNvbGlzaW9uYXLDrWFuIGVuXG4gICAgLy8gZWwgbWlzbW8gdGlwbyB5IGNvbXBhcnRpcsOtYW4gcmVzcHVlc3Rhcy4gUG9yIGVzbyB1bmEgdmVydGljYWwgdXNhIHN1XG4gICAgLy8gZW5kcG9pbnQgKGBwZXJzaXN0OiBmYWxzZWApIHkgYXJtYSBlbCBpZCBjb24gbGEgZW50aWRhZCBhZGVudHJvLlxuICAgIGNvbnN0IHR5cGVJZCA9XG4gICAgICB0aGlzLnByb3BzLnR5cGVJZCA/PyBgJHt0aGlzLnByb3BzLnR5cGVQcmVmaXggPz8gREVGQVVMVF9UWVBFX1BSRUZJWH06JHt0aGlzLmZvcm1CdWlsZGVyLnRvVG9rZW4odGl0bGUpfWA7XG5cbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgbGFiZWw6IHRpdGxlLFxuICAgICAgc3VidGl0bGUsXG4gICAgICBlbnRpdHlSZWY6IHRoaXMucHJvcHMuZW50aXR5UmVmLFxuICAgICAgc2tpcFJldmlldzogdHJ1ZSxcbiAgICAgIHNraXBTdWJtaXR0ZXJJZGVudGl0eTogdHJ1ZSxcbiAgICAgIGZpZWxkU2NoZW1hLFxuICAgICAgYWxsb3dBbm9ueW1vdXM6IHRoaXMucHJvcHMuYWxsb3dBbm9ueW1vdXMgPz8gdHJ1ZSxcbiAgICAgIHZpc2liaWxpdHk6IHRoaXMucHJvcHMudmlzaWJpbGl0eSA/PyAoJ1BVQkxJQycgYXMgY29uc3QpLFxuICAgIH07XG5cbiAgICBjb25zdCBjYWxsJCA9IHRoaXMucHJvcHMudHlwZUlkXG4gICAgICA/IHRoaXMucmVxdWVzdHMudXBkYXRlUmVxdWVzdFR5cGUodGhpcy5wcm9wcy50eXBlSWQsIHBheWxvYWQpXG4gICAgICA6IHRoaXMucmVxdWVzdHMuY3JlYXRlUmVxdWVzdFR5cGUoeyAuLi5wYXlsb2FkLCB0eXBlSWQgfSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdHlwZUNvbmZpZyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKGNhbGwkKTtcbiAgICAgIHRoaXMuc2F2aW5nLnNldChmYWxzZSk7XG4gICAgICB0aGlzLnNhdmVkLmVtaXQoeyB0eXBlQ29uZmlnIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5zYXZpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ3N1cnZleUJ1aWxkZXIuc2F2ZScsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc2F2ZUVycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogTkFNRVNQQUNFLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoeWRyYXRlKGxhYmVsOiBzdHJpbmcsIHN1YnRpdGxlOiBzdHJpbmcsIHF1ZXN0aW9uczogRmllbGRTY2hlbWFEZWZbXSk6IHZvaWQge1xuICAgIHRoaXMudGl0bGVDb250cm9sLnNldFZhbHVlKGxhYmVsID8/ICcnKTtcbiAgICB0aGlzLnN1YnRpdGxlQ29udHJvbC5zZXRWYWx1ZShzdWJ0aXRsZSA/PyAnJyk7XG4gICAgdGhpcy5xdWVzdGlvbnMuc2V0KFsuLi4ocXVlc3Rpb25zID8/IFtdKV0uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpLm1hcChmID0+IHRoaXMucm93RnJvbUZpZWxkKGYpKSk7XG4gIH1cblxuICBwcml2YXRlIHJvd0Zyb21GaWVsZChmOiBGaWVsZFNjaGVtYURlZik6IEVkaXRhYmxlRmllbGREZWYge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogYHJvdy0ke3Jvd1VpZCsrfWAsXG4gICAgICBuYW1lOiBmLm5hbWUsXG4gICAgICBsYWJlbDogZi5sYWJlbCA/PyAnJyxcbiAgICAgIHBsYWNlaG9sZGVyVGV4dDogZi5wbGFjZWhvbGRlclRleHQgPz8gJycsXG4gICAgICBoaW50VGV4dDogZi5oaW50VGV4dCA/PyAnJyxcbiAgICAgIHR5cGU6IGYudHlwZSxcbiAgICAgIHJlcXVpcmVkOiAhIWYucmVxdWlyZWQsXG4gICAgICBvcHRpb25zOiBmLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -33,4 +33,4 @@ export const SURVEY_QUESTION_TYPES = [
|
|
|
33
33
|
'EMAIL',
|
|
34
34
|
'PHONE',
|
|
35
35
|
];
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1idWlsZGVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxjQUFjO0lBQ2QsUUFBUTtJQUNSLE9BQU87SUFDUCxjQUFjO0lBQ2QsUUFBUTtJQUNSLE1BQU07SUFDTixVQUFVO0lBQ1YsUUFBUTtJQUNSLE1BQU07SUFDTixPQUFPO0lBQ1AsT0FBTztDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbnRpdHlSZWYsXG4gIEZpZWxkU2NoZW1hRGVmLFxuICBSZXF1ZXN0VHlwZUNvbmZpZyxcbiAgUmVxdWVzdFZpc2liaWxpdHksXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcblxuLyoqXG4gKiBUaXBvcyBkZSBwcmVndW50YSBxdWUgb2ZyZWNlIHVuYSBlbmN1ZXN0YS5cbiAqXG4gKiBFbCBjb3J0ZSBubyBlcyBlc3TDqXRpY286ICoqdG9kbyB0aXBvIHF1ZSBlc3RhIGxpc3RhIG9mcmV6Y2EsIGB2YWwtc3VydmV5LXJlc3BvbnNlYFxuICogdGllbmUgcXVlIHNhYmVyIHJlbmRlcml6YXJsbyoqLCBvIGxhIGVuY3Vlc3RhIHNlIGd1YXJkYSBiaWVuIHkgc2UgcmVzcG9uZGUgbWFsXG4gKiAodW4gcmF0aW5nIGRpYnVqYWRvIGNvbW8gY2FqYSBkZSB0ZXh0bykuIEFtcGxpYXIgYWPDoSBvYmxpZ2EgYSBhbXBsaWFyIGVsXG4gKiByZW5kZXJlciBlbiBsYSBtaXNtYSBlbnRyZWdhLlxuICpcbiAqIExvcyBzZWlzIHByaW1lcm9zIHNvbiBkZSByZXNwdWVzdGEgY2VycmFkYSDigJQgYGNsb3NlZEFuc3dlclR5cGVzYCBlblxuICogYGJhY2tlbmQvZ28vc2VydmljZXMvcmVxdWVzdC9hZ2dyZWdhdGUuZ29gIGxvcyBjdWVudGEgcG9yIHZhbG9yIGVuIGVsXG4gKiBkYXNoYm9hcmQuIExvcyBzZWlzIMO6bHRpbW9zIHNvbiBhYmllcnRvczogZWwgZGFzaGJvYXJkIGxpc3RhIHN1cyByZXNwdWVzdGFzLlxuICpcbiAqIGBGSUxFYC9gQVRUQUNITUVOVGAgcXVlZGFuIGRlbGliZXJhZGFtZW50ZSBmdWVyYTogdW5hIGVuY3Vlc3RhIGVzIHDDumJsaWNhIHlcbiAqIGFuw7NuaW1hIHBvciBkZWZhdWx0LCB5IGFjZXB0YXIgc3ViaWRhcyBhaMOtIGVzIHN1cGVyZmljaWUgZGUgYWJ1c28gc2luIHVuIGNhc29cbiAqIGRlIHVzbyBxdWUgbG8gcGlkYS5cbiAqXG4gKiBgQ0hFQ0tgIHRhbWJpw6luIHF1ZWTDsyBmdWVyYSwgcG9yIG90cm8gbW90aXZvOiBwYXJhIHF1aWVuIHJlc3BvbmRlIGVyYSBsYSBtaXNtYVxuICogcHJlZ3VudGEgcXVlIGBUT0dHTEVgLiBEb3MgZm9ybWFzIGRlIGVzY3JpYmlyIFwic8OtIG8gbm9cIiBubyBsZSBkYWJhbiB1bmEgb3BjacOzblxuICogYSBxdWllbiBhcm1hIGxhIGVuY3Vlc3RhLCBsZSBkYWJhbiB1bmEgZHVkYS4gRWwgcmVuZGVyZXIgeSBsYSBhZ3JlZ2FjacOzblxuICogc2lndWVuIGVudGVuZGllbmRvIGBDSEVDS2Ag4oCUIHVuYSBlbmN1ZXN0YSB2aWVqYSBxdWUgbG8gdGVuZ2Egc2UgcmVzcG9uZGUgeSBzZVxuICogY3VlbnRhIGlndWFsLlxuICovXG5leHBvcnQgY29uc3QgU1VSVkVZX1FVRVNUSU9OX1RZUEVTID0gW1xuICAnRU1PSklfUkFUSU5HJyxcbiAgJ1NFTEVDVCcsXG4gICdSQURJTycsXG4gICdNVUxUSV9TRUxFQ1QnLFxuICAnVE9HR0xFJyxcbiAgJ1RFWFQnLFxuICAnVEVYVEFSRUEnLFxuICAnTlVNQkVSJyxcbiAgJ0RBVEUnLFxuICAnRU1BSUwnLFxuICAnUEhPTkUnLFxuXTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBRdWVkw7MgZGUgbGEgdjEgZGVsIGJ1aWxkZXIgKEFEUi0wOTIgRmFzZSAyKSwgY3VhbmRvIHVuYSBwcmVndW50YVxuICogZXJhIHNvbG8gbGFiZWwgKyB1bm8gZGUgZG9zIHRpcG9zLiBIb3kgdW5hIHByZWd1bnRhIGVzIHVuIGBFZGl0YWJsZUZpZWxkRGVmYFxuICogY29tcGxldG8g4oCUIHZlciBgdmFsLWZpZWxkLXNjaGVtYS1lZGl0b3JgLiBObyBzZSB1c2EgZW4gbmluZ8O6biBsYWRvOyBzZVxuICogY29uc2VydmEgdW4gY2ljbG8gcGFyYSBubyByb21wZXIgdW4gaW1wb3J0IHBlcmRpZG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VydmV5UXVlc3Rpb25Sb3cge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnVEVYVEFSRUEnIHwgJ0VNT0pJX1JBVElORyc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleUJ1aWxkZXJNZXRhZGF0YSB7XG4gIC8qKiBTaSBzZSBwYXNhLCBlZGl0YSBlc2UgdGlwbyBleGlzdGVudGU7IHNpIG5vLCBjcmVhIHVubyBudWV2by4gKi9cbiAgdHlwZUlkPzogc3RyaW5nO1xuICAvKiogUHJlZmlqbyBkZWwgYFR5cGVgIGRlbCBSZXF1ZXN0VHlwZUNvbmZpZyDigJQgZWwgY29tcG9uZW50ZSBhcm1hIGBcIjxwcmVmaXg+OjxzbHVnPlwiYC4gKi9cbiAgdHlwZVByZWZpeD86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICAvKiogRGVmYXVsdCAnUFVCTElDJyDigJQgZWwgY2FzbyBtw6FzIGNvbcO6bjogbGluayBlbnZpYWRvIGEgZ2VudGUgc2luIGN1ZW50YS4gKi9cbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xuICAvKiogRGVmYXVsdCB0cnVlLiAqL1xuICBhbGxvd0Fub255bW91cz86IGJvb2xlYW47XG4gIC8qKiBBY290YSBlbCBjYXTDoWxvZ28gZGUgYFNVUlZFWV9RVUVTVElPTl9UWVBFU2Agc2kgdW5hIGFwcCBxdWllcmUgb2ZyZWNlciBtZW5vcy4gKi9cbiAgcXVlc3Rpb25UeXBlcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogU2kgZWwgYnVpbGRlciBndWFyZGEgcG9yIHN1IGN1ZW50YSBjb250cmEgYC92Mi9yZXF1ZXN0LXR5cGVzYC5cbiAgICpcbiAgICogRGVmYXVsdCBgdHJ1ZWAgcG9yIGNvbXBhdGliaWxpZGFkLCBwZXJvICoqdW5hIGFwcCBjb24gZW5kcG9pbnQgcHJvcGlvIGRlYmVcbiAgICogcGFzYXIgYGZhbHNlYCoqIHkgZ3VhcmRhciBlbGxhOiBlbCBlbmRwb2ludCBkZSBsYSB2ZXJ0aWNhbCBlcyBlbCBxdWUgdmFsaWRhXG4gICAqIGxhIGVudGlkYWQgZHVlw7FhLCBldml0YSBxdWUgZG9zIGVuY3Vlc3RhcyBkZSBkaXN0aW50byBldmVudG8gY29saXNpb25lbiBlblxuICAgKiBlbCBtaXNtbyBgdHlwZUlkYCwgeSBhdXRvcml6YSBjb24gU1UgcGVybWlzby4gQ29uIGBmYWxzZWAsIGBzYXZlKClgIHZhbGlkYVxuICAgKiB5IGVtaXRlIGBkcmFmdGAgc2luIHRvY2FyIGxhIHJlZC5cbiAgICovXG4gIHBlcnNpc3Q/
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1idWlsZGVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxjQUFjO0lBQ2QsUUFBUTtJQUNSLE9BQU87SUFDUCxjQUFjO0lBQ2QsUUFBUTtJQUNSLE1BQU07SUFDTixVQUFVO0lBQ1YsUUFBUTtJQUNSLE1BQU07SUFDTixPQUFPO0lBQ1AsT0FBTztDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbnRpdHlSZWYsXG4gIEZpZWxkU2NoZW1hRGVmLFxuICBSZXF1ZXN0VHlwZUNvbmZpZyxcbiAgUmVxdWVzdFZpc2liaWxpdHksXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcblxuLyoqXG4gKiBUaXBvcyBkZSBwcmVndW50YSBxdWUgb2ZyZWNlIHVuYSBlbmN1ZXN0YS5cbiAqXG4gKiBFbCBjb3J0ZSBubyBlcyBlc3TDqXRpY286ICoqdG9kbyB0aXBvIHF1ZSBlc3RhIGxpc3RhIG9mcmV6Y2EsIGB2YWwtc3VydmV5LXJlc3BvbnNlYFxuICogdGllbmUgcXVlIHNhYmVyIHJlbmRlcml6YXJsbyoqLCBvIGxhIGVuY3Vlc3RhIHNlIGd1YXJkYSBiaWVuIHkgc2UgcmVzcG9uZGUgbWFsXG4gKiAodW4gcmF0aW5nIGRpYnVqYWRvIGNvbW8gY2FqYSBkZSB0ZXh0bykuIEFtcGxpYXIgYWPDoSBvYmxpZ2EgYSBhbXBsaWFyIGVsXG4gKiByZW5kZXJlciBlbiBsYSBtaXNtYSBlbnRyZWdhLlxuICpcbiAqIExvcyBzZWlzIHByaW1lcm9zIHNvbiBkZSByZXNwdWVzdGEgY2VycmFkYSDigJQgYGNsb3NlZEFuc3dlclR5cGVzYCBlblxuICogYGJhY2tlbmQvZ28vc2VydmljZXMvcmVxdWVzdC9hZ2dyZWdhdGUuZ29gIGxvcyBjdWVudGEgcG9yIHZhbG9yIGVuIGVsXG4gKiBkYXNoYm9hcmQuIExvcyBzZWlzIMO6bHRpbW9zIHNvbiBhYmllcnRvczogZWwgZGFzaGJvYXJkIGxpc3RhIHN1cyByZXNwdWVzdGFzLlxuICpcbiAqIGBGSUxFYC9gQVRUQUNITUVOVGAgcXVlZGFuIGRlbGliZXJhZGFtZW50ZSBmdWVyYTogdW5hIGVuY3Vlc3RhIGVzIHDDumJsaWNhIHlcbiAqIGFuw7NuaW1hIHBvciBkZWZhdWx0LCB5IGFjZXB0YXIgc3ViaWRhcyBhaMOtIGVzIHN1cGVyZmljaWUgZGUgYWJ1c28gc2luIHVuIGNhc29cbiAqIGRlIHVzbyBxdWUgbG8gcGlkYS5cbiAqXG4gKiBgQ0hFQ0tgIHRhbWJpw6luIHF1ZWTDsyBmdWVyYSwgcG9yIG90cm8gbW90aXZvOiBwYXJhIHF1aWVuIHJlc3BvbmRlIGVyYSBsYSBtaXNtYVxuICogcHJlZ3VudGEgcXVlIGBUT0dHTEVgLiBEb3MgZm9ybWFzIGRlIGVzY3JpYmlyIFwic8OtIG8gbm9cIiBubyBsZSBkYWJhbiB1bmEgb3BjacOzblxuICogYSBxdWllbiBhcm1hIGxhIGVuY3Vlc3RhLCBsZSBkYWJhbiB1bmEgZHVkYS4gRWwgcmVuZGVyZXIgeSBsYSBhZ3JlZ2FjacOzblxuICogc2lndWVuIGVudGVuZGllbmRvIGBDSEVDS2Ag4oCUIHVuYSBlbmN1ZXN0YSB2aWVqYSBxdWUgbG8gdGVuZ2Egc2UgcmVzcG9uZGUgeSBzZVxuICogY3VlbnRhIGlndWFsLlxuICovXG5leHBvcnQgY29uc3QgU1VSVkVZX1FVRVNUSU9OX1RZUEVTID0gW1xuICAnRU1PSklfUkFUSU5HJyxcbiAgJ1NFTEVDVCcsXG4gICdSQURJTycsXG4gICdNVUxUSV9TRUxFQ1QnLFxuICAnVE9HR0xFJyxcbiAgJ1RFWFQnLFxuICAnVEVYVEFSRUEnLFxuICAnTlVNQkVSJyxcbiAgJ0RBVEUnLFxuICAnRU1BSUwnLFxuICAnUEhPTkUnLFxuXTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBRdWVkw7MgZGUgbGEgdjEgZGVsIGJ1aWxkZXIgKEFEUi0wOTIgRmFzZSAyKSwgY3VhbmRvIHVuYSBwcmVndW50YVxuICogZXJhIHNvbG8gbGFiZWwgKyB1bm8gZGUgZG9zIHRpcG9zLiBIb3kgdW5hIHByZWd1bnRhIGVzIHVuIGBFZGl0YWJsZUZpZWxkRGVmYFxuICogY29tcGxldG8g4oCUIHZlciBgdmFsLWZpZWxkLXNjaGVtYS1lZGl0b3JgLiBObyBzZSB1c2EgZW4gbmluZ8O6biBsYWRvOyBzZVxuICogY29uc2VydmEgdW4gY2ljbG8gcGFyYSBubyByb21wZXIgdW4gaW1wb3J0IHBlcmRpZG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VydmV5UXVlc3Rpb25Sb3cge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnVEVYVEFSRUEnIHwgJ0VNT0pJX1JBVElORyc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleUJ1aWxkZXJNZXRhZGF0YSB7XG4gIC8qKiBTaSBzZSBwYXNhLCBlZGl0YSBlc2UgdGlwbyBleGlzdGVudGU7IHNpIG5vLCBjcmVhIHVubyBudWV2by4gKi9cbiAgdHlwZUlkPzogc3RyaW5nO1xuICAvKiogUHJlZmlqbyBkZWwgYFR5cGVgIGRlbCBSZXF1ZXN0VHlwZUNvbmZpZyDigJQgZWwgY29tcG9uZW50ZSBhcm1hIGBcIjxwcmVmaXg+OjxzbHVnPlwiYC4gKi9cbiAgdHlwZVByZWZpeD86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICAvKiogRGVmYXVsdCAnUFVCTElDJyDigJQgZWwgY2FzbyBtw6FzIGNvbcO6bjogbGluayBlbnZpYWRvIGEgZ2VudGUgc2luIGN1ZW50YS4gKi9cbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xuICAvKiogRGVmYXVsdCB0cnVlLiAqL1xuICBhbGxvd0Fub255bW91cz86IGJvb2xlYW47XG4gIC8qKiBBY290YSBlbCBjYXTDoWxvZ28gZGUgYFNVUlZFWV9RVUVTVElPTl9UWVBFU2Agc2kgdW5hIGFwcCBxdWllcmUgb2ZyZWNlciBtZW5vcy4gKi9cbiAgcXVlc3Rpb25UeXBlcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogU2kgZWwgYnVpbGRlciBndWFyZGEgcG9yIHN1IGN1ZW50YSBjb250cmEgYC92Mi9yZXF1ZXN0LXR5cGVzYC5cbiAgICpcbiAgICogRGVmYXVsdCBgdHJ1ZWAgcG9yIGNvbXBhdGliaWxpZGFkLCBwZXJvICoqdW5hIGFwcCBjb24gZW5kcG9pbnQgcHJvcGlvIGRlYmVcbiAgICogcGFzYXIgYGZhbHNlYCoqIHkgZ3VhcmRhciBlbGxhOiBlbCBlbmRwb2ludCBkZSBsYSB2ZXJ0aWNhbCBlcyBlbCBxdWUgdmFsaWRhXG4gICAqIGxhIGVudGlkYWQgZHVlw7FhLCBldml0YSBxdWUgZG9zIGVuY3Vlc3RhcyBkZSBkaXN0aW50byBldmVudG8gY29saXNpb25lbiBlblxuICAgKiBlbCBtaXNtbyBgdHlwZUlkYCwgeSBhdXRvcml6YSBjb24gU1UgcGVybWlzby4gQ29uIGBmYWxzZWAsIGBzYXZlKClgIHZhbGlkYVxuICAgKiB5IGVtaXRlIGBkcmFmdGAgc2luIHRvY2FyIGxhIHJlZC5cbiAgICovXG4gIHBlcnNpc3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogU2llbWJyYSBlbCBidWlsZGVyIGNvbiB1bmEgZW5jdWVzdGEgcXVlIHlhIGV4aXN0ZSwgc2luIGlyIGEgYnVzY2FybGEuXG4gICAqXG4gICAqIFZhIGRlIGxhIG1hbm8gZGUgYHBlcnNpc3Q6IGZhbHNlYDogbGEgYXBwIHF1ZSB0aWVuZSBlbmRwb2ludCBwcm9waW8geWFcbiAgICogcmVjaWJpw7MgbGEgZW5jdWVzdGEgZW4gc3UgbGlzdGFkbywgYXPDrSBxdWUgcGVkaXJsYSBkZSBudWV2byBwb3IgZWwgZW5kcG9pbnRcbiAgICogZ2Vuw6lyaWNvIHNlcsOtYSB1bmEgbGVjdHVyYSBkZSBtw6FzIOKAlCB5IGVuY2ltYSBwb3IgdW5hIHbDrWEgcXVlIGV4aWdlXG4gICAqIGBhcHBzOm1hbmFnZWAuIENvbiBgdHlwZUlkYCBlbCBidWlsZGVyIGNhcmdhIFkgZ3VhcmRhIHNvbG87IGNvbiBgaW5pdGlhbGBcbiAgICogc29sbyBzZSBsbGVuYS5cbiAgICovXG4gIGluaXRpYWw/OiBTdXJ2ZXlEcmFmdEV2ZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleUJ1aWxkZXJTYXZlRXZlbnQge1xuICB0eXBlQ29uZmlnOiBSZXF1ZXN0VHlwZUNvbmZpZztcbn1cblxuLyoqXG4gKiBMbyBxdWUgc2UgZXNjcmliacOzLCBzaW4gcGVyc2lzdGlyLlxuICpcbiAqIEV4aXN0ZSBwb3JxdWUgKiplbCBidWlsZGVyIG5vIHNpZW1wcmUgZGViZSBndWFyZGFyIHBvciBzdSBjdWVudGEqKi4gQ3VhbmRvIGxhXG4gKiBhcHAgdGllbmUgc3UgcHJvcGlvIGVuZHBvaW50IGRlIGRvbWluaW8gKGVsIGRlIGJpbmdvIHZhbGlkYSBlbCBldmVudG8sIGFjb3RhXG4gKiBlbCBgdHlwZUlkYCBwYXJhIHF1ZSBkb3MgZXZlbnRvcyBubyBjb2xpc2lvbmVuIHkgYXV0b3JpemEgY29uIGVsIHBlcm1pc28gZGVcbiAqIGxhIHZlcnRpY2FsIGVuIHZleiBkZSBgYXBwczptYW5hZ2VgKSwgZ3VhcmRhciBkZXNkZSBhY8OhIHNlIHNhbHRhIHRvZG8gZXNvLlxuICpcbiAqIExvcyB0cmVzIGNhbXBvcyBzb24gZXhhY3RhbWVudGUgbG9zIGRlIGBDcmVhdGVFdmVudFN1cnZleVJlcXVlc3RgIGVuXG4gKiBgc2VydmljZXMvYmluZ28vc3VydmV5LmdvYCDigJQgbm8gZXMgY2FzdWFsaWRhZDogZXMgZWwgY29udHJhdG8gcXVlIGxhIGFwcFxuICogbmVjZXNpdGEgcmVlbnZpYXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VydmV5RHJhZnRFdmVudCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHN1YnRpdGxlOiBzdHJpbmc7XG4gIHF1ZXN0aW9uczogRmllbGRTY2hlbWFEZWZbXTtcbn1cbiJdfQ==
|
|
@@ -217,7 +217,20 @@ export class I18nService {
|
|
|
217
217
|
return namespace in this._content();
|
|
218
218
|
}
|
|
219
219
|
/**
|
|
220
|
-
* Carga idioma guardado en localStorage o
|
|
220
|
+
* Carga el idioma guardado en localStorage, o adivina desde el navegador.
|
|
221
|
+
*
|
|
222
|
+
* La detección de acá es PROVISIONAL y NO se persiste, a propósito. El
|
|
223
|
+
* constructor corre antes que el APP_INITIALIZER de `provideValtechI18n`,
|
|
224
|
+
* que es quien conoce la config real de la app. Cuando esto persistía el
|
|
225
|
+
* idioma detectado, el initializer leía esa misma clave un instante después,
|
|
226
|
+
* la tomaba por preferencia guardada del usuario y entraba por la rama
|
|
227
|
+
* `stored` — así que `detectBrowserLanguage: false` no tenía efecto en
|
|
228
|
+
* ninguna app del factory. Escribir acá fabricaba una preferencia que el
|
|
229
|
+
* usuario nunca expresó.
|
|
230
|
+
*
|
|
231
|
+
* Persistir es responsabilidad de `setLanguage()`, que se llama cuando la
|
|
232
|
+
* elección sí es del usuario (o cuando el initializer ya decidió con la
|
|
233
|
+
* config a la vista).
|
|
221
234
|
*/
|
|
222
235
|
loadStoredLanguage() {
|
|
223
236
|
// SSR: sin localStorage/navigator. Mantenemos el default; el browser
|
|
@@ -230,11 +243,11 @@ export class I18nService {
|
|
|
230
243
|
this._lang.set(stored);
|
|
231
244
|
return;
|
|
232
245
|
}
|
|
233
|
-
//
|
|
246
|
+
// Adivinanza provisional mientras el initializer no haya corrido. Sin
|
|
247
|
+
// persistir: ver el comentario del método.
|
|
234
248
|
const browserLang = navigator.language.split('-')[0];
|
|
235
249
|
if (this.isValidLanguage(browserLang)) {
|
|
236
250
|
this._lang.set(browserLang);
|
|
237
|
-
localStorage.setItem(LANG_STORAGE_KEY, browserLang);
|
|
238
251
|
}
|
|
239
252
|
}
|
|
240
253
|
/**
|
|
@@ -273,4 +286,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
273
286
|
type: Inject,
|
|
274
287
|
args: [PLATFORM_ID]
|
|
275
288
|
}] }] });
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2kxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUNwQixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRTlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFFSCxNQUFNLE9BQU8sV0FBVztJQTJCdEIsWUFBaUMsVUFBa0I7UUExQm5ELDZCQUE2QjtRQUNaLFVBQUssR0FBRyxNQUFNLENBQVcsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDOUQsYUFBUSxHQUFHLE1BQU0sQ0FBZSxFQUFFLENBQUMsQ0FBQztRQUNwQyx3QkFBbUIsR0FBRyxNQUFNLENBQWEsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVsRyxvQkFBb0I7UUFDWCxTQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQix1QkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFcEUsdUNBQXVDO1FBQzlCLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFD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V0FBVyxrQkEyQkYsV0FBVzttSEEzQnBCLFdBQVcsY0FERSxNQUFNOzs0RkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQTRCbkIsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgSTE4bkxhbmcsXG4gIExhbmd1YWdlc0NvbnRlbnQsXG4gIENvbnRlbnRTdG9yZSxcbiAgTEFOR19TVE9SQUdFX0tFWSxcbiAgREVGQVVMVF9JMThOX0NPTkZJRyxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRUaW1lT2ZEYXlLZXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvdXRpbHMvZGF0ZXRpbWUnO1xuXG4vKipcbiAqIFNlcnZpY2lvIGRlIGludGVybmFjaW9uYWxpemFjacOzbiBiYXNhZG8gZW4gQW5ndWxhciBTaWduYWxzLlxuICpcbiAqIENhcmFjdGVyw61zdGljYXM6XG4gKiAtIFNpbiBSeEpTOiB1c2EgU2lnbmFscyBwYXJhIGV2aXRhciBtZW1vcnkgbGVha3MgeSBjb25nZWxhbWllbnRvXG4gKiAtIE5hbWVzcGFjZS1iYXNlZDogb3JnYW5pemEgdHJhZHVjY2lvbmVzIHBvciBjb250ZXh0b1xuICogLSBGYWxsYmFjayBtdWx0aS1uaXZlbDogbmFtZXNwYWNlIOKGkiBfZ2xvYmFsIOKGkiBwbGFjZWhvbGRlclxuICogLSBJbnRlcnBvbGFjacOzbjogc29wb3J0YSB7dmFyaWFibGV9IGVuIHRleHRvc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFbiB1biBjb21wb25lbnRlXG4gKiBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAqXG4gKiAvLyBPYnRlbmVyIHRleHRvXG4gKiBjb25zdCB0aXRsZSA9IHRoaXMuaTE4bi50KCd0aXRsZScsICdMb2dpbicpO1xuICpcbiAqIC8vIENvbiBpbnRlcnBvbGFjacOzblxuICogY29uc3Qgd2VsY29tZSA9IHRoaXMuaTE4bi50KCd3ZWxjb21lJywgJ0xvZ2luJywgeyBuYW1lOiAnSnVhbicgfSk7XG4gKlxuICogLy8gQ2FtYmlhciBpZGlvbWFcbiAqIHRoaXMuaTE4bi5zZXRMYW5ndWFnZSgnZW4nKTtcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJMThuU2VydmljZSB7XG4gIC8vIEVzdGFkbyBpbnRlcm5vIGNvbiBTaWduYWxzXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhbmcgPSBzaWduYWw8STE4bkxhbmc+KERFRkFVTFRfSTE4Tl9DT05GSUcuZGVmYXVsdExhbmd1YWdlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudCA9IHNpZ25hbDxDb250ZW50U3RvcmU+KHt9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkTGFuZ3VhZ2VzID0gc2lnbmFsPEkxOG5MYW5nW10+KERFRkFVTFRfSTE4Tl9DT05GSUcuc3VwcG9ydGVkTGFuZ3VhZ2VzKTtcblxuICAvLyBQw7pibGljb3MgcmVhZG9ubHlcbiAgcmVhZG9ubHkgbGFuZyA9IHRoaXMuX2xhbmcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBzdXBwb3J0ZWRMYW5ndWFnZXMgPSB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMuYXNSZWFkb25seSgpO1xuXG4gIC8vIENvbXB1dGVkIHBhcmEgdmVyaWZpY2FjaW9uZXMgcsOhcGlkYXNcbiAgcmVhZG9ubHkgaXNTcGFuaXNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbGFuZygpID09PSAnZXMnKTtcbiAgcmVhZG9ubHkgaXNFbmdsaXNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbGFuZygpID09PSAnZW4nKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogS2V5cyBmYWx0YW50ZXMgeWEgYWR2ZXJ0aWRhcyAoYG5zLmtleS5sYW5nYCkuIEdhcmFudGl6YSBxdWUgZWwgd2FybmluZyBzZVxuICAgKiBlbWl0YSBVTkEgc29sYSB2ZXogcG9yIGtleSwgbnVuY2EgcG9yIGNhZGEgY2hhbmdlLWRldGVjdGlvbi5cbiAgICpcbiAgICogQ3LDrXRpY286IGBnZXRUZXh0YCBzZSBldmFsw7phIGVuIGJpbmRpbmdzIGRlIHRlbXBsYXRlICh1bmEgdmV6IHBvciBDRCkuIFNpXG4gICAqIGFkdmlydGnDqXJhbW9zIGVuIGNhZGEgbGxhbWFkYSwgdW4gYGNvbnNvbGUud2FybmAgcG9yIENEICsgZWwgYHZhbC1kZWJ1Zy1jb25zb2xlYFxuICAgKiAocXVlIGVzcGVqYSBgY29uc29sZS4qYCBhIHVuIHNpZ25hbCkgY3JlYSB1biBsb29wIGluZmluaXRvIGRlIENEIHF1ZSBjb25nZWxhXG4gICAqIGVsIG5hdmVnYWRvciBlbiBkZXYuIERlZHVwbGljYXIgY29ydGEgZXNlIGxvb3AgZW4gc3Ugb3JpZ2VuLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfd2FybmVkTWlzc2luZyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdCkge1xuICAgIHRoaXMuaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCk7XG4gICAgdGhpcy5sb2FkU3RvcmVkTGFuZ3VhZ2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHRleHRvIHRyYWR1Y2lkbyAoYWxpYXMgY29ydG8gZGUgZ2V0VGV4dClcbiAgICpcbiAgICogQHBhcmFtIGtleSBDbGF2ZSBkZWwgdGV4dG9cbiAgICogQHBhcmFtIG5hbWVzcGFjZSBOYW1lc3BhY2UgKGRlZmF1bHQ6ICdfZ2xvYmFsJylcbiAgICogQHBhcmFtIGRhdGEgVmFyaWFibGVzIHBhcmEgaW50ZXJwb2xhY2nDs25cbiAgICogQHJldHVybnMgVGV4dG8gdHJhZHVjaWRvIG8gcGxhY2Vob2xkZXIgW25hbWVzcGFjZS5rZXldXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGkxOG4udCgnc3VibWl0Jyk7ICAgICAgICAgICAgICAgICAgICAvLyBidXNjYSBlbiBfZ2xvYmFsXG4gICAqIGkxOG4udCgndGl0bGUnLCAnTG9naW4nKTsgICAgICAgICAgICAvLyBidXNjYSBlbiBMb2dpblxuICAgKiBpMThuLnQoJ3dlbGNvbWUnLCAnTG9naW4nLCB7bmFtZX0pOyAgLy8gY29uIGludGVycG9sYWNpw7NuXG4gICAqL1xuICB0KGtleTogc3RyaW5nLCBuYW1lc3BhY2U/OiBzdHJpbmcsIGRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUZXh0KGtleSwgbmFtZXNwYWNlLCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdGltZS1vZi1kYXkgZ3JlZXRpbmcgaW4gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIFVzZXMgYnVuZGxlZCBrZXlzIGBnb29kTW9ybmluZ2AgLyBgZ29vZEFmdGVybm9vbmAgLyBgZ29vZEV2ZW5pbmdgIGZyb20gYF9nbG9iYWxgLlxuICAgKiBSZWFjdGl2ZSB0byBgbGFuZygpYCB3aGVuIGNhbGxlZCBpbnNpZGUgYSBgY29tcHV0ZWQoKWAuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIE9wdGlvbmFsIG5hbWUgdG8gYXBwZW5kOiBcIkJ1ZW5vcyBkw61hcywgSnVhblwiXG4gICAqIEBwYXJhbSBkYXRlIE9wdGlvbmFsIGRhdGUgdG8gZXZhbHVhdGUgKGRlZmF1bHRzIHRvIG5vdylcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogZ3JlZXRpbmcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAqICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICogICByZXR1cm4gdGhpcy5pMThuLmdyZWV0aW5nKHRoaXMuYXV0aC51c2VyKCk/Lm5hbWUpO1xuICAgKiB9KTtcbiAgICovXG4gIGdyZWV0aW5nKG5hbWU/OiBzdHJpbmcsIGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpKTogc3RyaW5nIHtcbiAgICB0aGlzLl9sYW5nKCk7IC8vIHRyYWNrIGZvciByZWFjdGl2aXR5IGluc2lkZSBjb21wdXRlZCgpXG4gICAgY29uc3QgdGV4dCA9IHRoaXMudChnZXRUaW1lT2ZEYXlLZXkoZGF0ZSkpO1xuICAgIHJldHVybiBuYW1lID8gYCR7dGV4dH0sICR7bmFtZX1gIDogdGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHRleHRvIHRyYWR1Y2lkb1xuICAgKlxuICAgKiBGYWxsYmFjayBvcmRlcjpcbiAgICogMS4gY29udGVudFtuYW1lc3BhY2VdW2xhbmddW2tleV1cbiAgICogMi4gY29udGVudFsnX2dsb2JhbCddW2xhbmddW2tleV1cbiAgICogMy4gXCJcIiAoc3RyaW5nIHZhY8Otbykg4oCUIG51bmNhIHVuIHBsYWNlaG9sZGVyIHZpc2libGUgbmkgdW4gdmFsb3IgcXVlXG4gICAqICAgIHJvbXBhIGVsIHJlbmRlci4gRWwgY29uc3VtZXIgcHVlZGUgYXBsaWNhciBzdSBwcm9waW8gZmFsbGJhY2sgY29uIGB8fGAuXG4gICAqL1xuICBnZXRUZXh0KGtleTogc3RyaW5nLCBuYW1lc3BhY2U/OiBzdHJpbmcsIGRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fY29udGVudCgpO1xuICAgIGNvbnN0IGxhbmcgPSB0aGlzLl9sYW5nKCk7XG4gICAgY29uc3QgbnMgPSBuYW1lc3BhY2UgfHwgJ19nbG9iYWwnO1xuXG4gICAgLy8gQnVzY2FyIGVuIG5hbWVzcGFjZSBlc3BlY8OtZmljb1xuICAgIGxldCB0ZXh0ID0gY29udGVudFtuc10/LltsYW5nXT8uW2tleV07XG5cbiAgICAvLyBGYWxsYmFjayBhIF9nbG9iYWxcbiAgICBpZiAoIXRleHQgJiYgbnMgIT09ICdfZ2xvYmFsJykge1xuICAgICAgdGV4dCA9IGNvbnRlbnRbJ19nbG9iYWwnXT8uW2xhbmddPy5ba2V5XTtcbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjayBzZWd1cm86IHN0cmluZyB2YWPDrW8uIFNlIGFkdmllcnRlIFVOQSB2ZXogcG9yIGtleSAodmVyXG4gICAgLy8gYF93YXJuZWRNaXNzaW5nYCkgcGFyYSBxdWUgdW4gYmluZGluZyBldmFsdWFkbyBwb3IgQ0Qgbm8gZ2VuZXJlIHVuXG4gICAgLy8gY29uc29sZS53YXJuIHBvciBjYWRhIGNoYW5nZS1kZXRlY3Rpb24gKHF1ZSBkaXNwYXJhcsOtYSB1biBsb29wIGNvbiBlbFxuICAgIC8vIGRlYnVnLWNvbnNvbGUpLiBObyBkZXZvbHZlbW9zIGBbbnMua2V5XWAg4oCUIHVuIHBsYWNlaG9sZGVyIHZpc2libGVcbiAgICAvLyBlbnN1Y2lhIGxhIFVJIHksIGFsIHNlciB0cnV0aHksIGFudWxhIGxvcyBgfHwgZmFsbGJhY2tgIGRlbCBjb25zdW1lci5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIGNvbnN0IHdhcm5LZXkgPSBgJHtuc30uJHtrZXl9LiR7bGFuZ31gO1xuICAgICAgaWYgKCF0aGlzLl93YXJuZWRNaXNzaW5nLmhhcyh3YXJuS2V5KSkge1xuICAgICAgICB0aGlzLl93YXJuZWRNaXNzaW5nLmFkZCh3YXJuS2V5KTtcbiAgICAgICAgY29uc29sZS53YXJuKGBbaTE4bl0gTWlzc2luZyB0cmFuc2xhdGlvbjogJHtuc30uJHtrZXl9ICgke2xhbmd9KWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8vIEFwbGljYXIgaW50ZXJwb2xhY2nDs24gc2kgaGF5IGRhdGFcbiAgICBpZiAoZGF0YSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGUodGV4dCwgZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogQ2FtYmlhIGVsIGlkaW9tYSBkZSBsYSBhcGxpY2FjacOzblxuICAgKlxuICAgKiBAcGFyYW0gbGFuZyBOdWV2byBpZGlvbWFcbiAgICogQHBhcmFtIGZvcmNlUmVsb2FkIFNpIHRydWUsIHJlY2FyZ2EgbGEgcMOhZ2luYSAoZmFsbGJhY2sgc2kgcmVhY3RpdmlkYWQgZmFsbGEpXG4gICAqL1xuICBzZXRMYW5ndWFnZShsYW5nOiBJMThuTGFuZywgZm9yY2VSZWxvYWQgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc3VwcG9ydGVkTGFuZ3VhZ2VzKCkuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIGNvbnNvbGUud2FybihgW2kxOG5dIExhbmd1YWdlICcke2xhbmd9JyBub3QgaW4gc3VwcG9ydGVkIGxhbmd1YWdlc2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChsYW5nID09PSB0aGlzLl9sYW5nKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBQZXJzaXN0aXIgZW4gbG9jYWxTdG9yYWdlIChicm93c2VyLW9ubHkpXG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShMQU5HX1NUT1JBR0VfS0VZLCBsYW5nKTtcbiAgICB9XG5cbiAgICAvLyBBY3R1YWxpemFyIHNpZ25hbFxuICAgIHRoaXMuX2xhbmcuc2V0KGxhbmcpO1xuXG4gICAgLy8gRmFsbGJhY2s6IHJlY2FyZ2FyIHNpIHNlIHNvbGljaXRhXG4gICAgaWYgKGZvcmNlUmVsb2FkICYmIHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdHJhIGNvbnRlbmlkbyBkZSB0cmFkdWNjaW9uZXMgcGFyYSB1biBuYW1lc3BhY2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWVzcGFjZSBOb21icmUgZGVsIG5hbWVzcGFjZVxuICAgKiBAcGFyYW0gY29udGVudCBDb250ZW5pZG8gZGUgdHJhZHVjY2lvbmVzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGkxOG4ucmVnaXN0ZXJDb250ZW50KCdMb2dpbicsIHtcbiAgICogICBlczogeyB0aXRsZTogJ0luaWNpYXIgc2VzacOzbicgfSxcbiAgICogICBlbjogeyB0aXRsZTogJ1NpZ24gaW4nIH1cbiAgICogfSk7XG4gICAqL1xuICByZWdpc3RlckNvbnRlbnQobmFtZXNwYWNlOiBzdHJpbmcsIGNvbnRlbnQ6IExhbmd1YWdlc0NvbnRlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250ZW50LnVwZGF0ZShzdG9yZSA9PiAoe1xuICAgICAgLi4uc3RvcmUsXG4gICAgICBbbmFtZXNwYWNlXTogY29udGVudCxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0cmEgZGVmYXVsdHMgcGFyYSB1biBuYW1lc3BhY2UsIG1lemNsYW5kbyBzb2xvIGxhcyBrZXlzIGF1c2VudGVzIHBvciBpZGlvbWEuXG4gICAqIEEgZGlmZXJlbmNpYSBkZSBgcmVnaXN0ZXJDb250ZW50YCwgbm8gc29icmVlc2NyaWJlIGtleXMgcXVlIGVsIGNvbnN1bWVyIHlhIHJlZ2lzdHLDsy5cbiAgICogw5pzYWxvIGVuIGNvbXBvbmVudGVzIGRlIGxhIGxpYiBwYXJhIHF1ZSBzdXMgZGVmYXVsdHMgZnVuY2lvbmVuIGluY2x1c28gY3VhbmRvIGVsXG4gICAqIGNvbnN1bWVyIHJlZ2lzdHLDsyBlbCBuYW1lc3BhY2UgZGUgZm9ybWEgcGFyY2lhbC5cbiAgICovXG4gIHJlZ2lzdGVyRGVmYXVsdHMobmFtZXNwYWNlOiBzdHJpbmcsIGRlZmF1bHRzOiBMYW5ndWFnZXNDb250ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY29udGVudC51cGRhdGUoc3RvcmUgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBzdG9yZVtuYW1lc3BhY2VdO1xuICAgICAgaWYgKCFleGlzdGluZykgcmV0dXJuIHsgLi4uc3RvcmUsIFtuYW1lc3BhY2VdOiBkZWZhdWx0cyB9O1xuICAgICAgY29uc3QgbWVyZ2VkOiBMYW5ndWFnZXNDb250ZW50ID0geyAuLi5leGlzdGluZyB9O1xuICAgICAgZm9yIChjb25zdCBsYW5nIG9mIE9iamVjdC5rZXlzKGRlZmF1bHRzKSBhcyBBcnJheTxrZXlvZiBMYW5ndWFnZXNDb250ZW50Pikge1xuICAgICAgICBjb25zdCBkZWZMYW5nID0gZGVmYXVsdHNbbGFuZ10gPz8ge307XG4gICAgICAgIGNvbnN0IGN1ckxhbmcgPSAoZXhpc3RpbmdbbGFuZ10gPz8ge30pIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgICAgIG1lcmdlZFtsYW5nXSA9IHsgLi4uKGRlZkxhbmcgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPiksIC4uLmN1ckxhbmcgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IC4uLnN0b3JlLCBbbmFtZXNwYWNlXTogbWVyZ2VkIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0cmEgbcO6bHRpcGxlcyBuYW1lc3BhY2VzIGRlIHVuYSB2ZXpcbiAgICpcbiAgICogQHBhcmFtIGNvbnRlbnRTdG9yZSBPYmpldG8gY29uIG5hbWVzcGFjZXMgY29tbyBrZXlzXG4gICAqL1xuICByZWdpc3RlckNvbnRlbnRCdWxrKGNvbnRlbnRTdG9yZTogQ29udGVudFN0b3JlKTogdm9pZCB7XG4gICAgdGhpcy5fY29udGVudC51cGRhdGUoc3RvcmUgPT4gKHtcbiAgICAgIC4uLnN0b3JlLFxuICAgICAgLi4uY29udGVudFN0b3JlLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmEgbG9zIGlkaW9tYXMgc29wb3J0YWRvc1xuICAgKi9cbiAgc2V0STE4bkxhbmd1YWdlcyhsYW5ndWFnZXM6IEkxOG5MYW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMuc2V0KGxhbmd1YWdlcyk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB0b2RvcyBsb3MgbmFtZXNwYWNlcyByZWdpc3RyYWRvc1xuICAgKi9cbiAgZ2V0TmFtZXNwYWNlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2NvbnRlbnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgdW4gbmFtZXNwYWNlIHRpZW5lIHRyYWR1Y2Npb25lc1xuICAgKi9cbiAgaGFzTmFtZXNwYWNlKG5hbWVzcGFjZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5hbWVzcGFjZSBpbiB0aGlzLl9jb250ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FyZ2EgaWRpb21hIGd1YXJkYWRvIGVuIGxvY2FsU3RvcmFnZSBvIGRldGVjdGEgZGVsIG5hdmVnYWRvclxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkU3RvcmVkTGFuZ3VhZ2UoKTogdm9pZCB7XG4gICAgLy8gU1NSOiBzaW4gbG9jYWxTdG9yYWdlL25hdmlnYXRvci4gTWFudGVuZW1vcyBlbCBkZWZhdWx0OyBlbCBicm93c2VyXG4gICAgLy8gaHlkcmF0YXLDoSBlbCBsYW5nIHJlYWwgY3VhbmRvIGVsIGNsaWVudGUgYXJyYW5xdWUuXG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKExBTkdfU1RPUkFHRV9LRVkpO1xuXG4gICAgaWYgKHN0b3JlZCAmJiB0aGlzLmlzVmFsaWRMYW5ndWFnZShzdG9yZWQpKSB7XG4gICAgICB0aGlzLl9sYW5nLnNldChzdG9yZWQgYXMgSTE4bkxhbmcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIERldGVjdGFyIGlkaW9tYSBkZWwgbmF2ZWdhZG9yXG4gICAgY29uc3QgYnJvd3NlckxhbmcgPSBuYXZpZ2F0b3IubGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXSBhcyBJMThuTGFuZztcbiAgICBpZiAodGhpcy5pc1ZhbGlkTGFuZ3VhZ2UoYnJvd3NlckxhbmcpKSB7XG4gICAgICB0aGlzLl9sYW5nLnNldChicm93c2VyTGFuZyk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShMQU5HX1NUT1JBR0VfS0VZLCBicm93c2VyTGFuZyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYSBzaSB1biBpZGlvbWEgZXN0w6Egc29wb3J0YWRvXG4gICAqL1xuICBwcml2YXRlIGlzVmFsaWRMYW5ndWFnZShsYW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3VwcG9ydGVkTGFuZ3VhZ2VzKCkuaW5jbHVkZXMobGFuZyBhcyBJMThuTGFuZyk7XG4gIH1cblxuICAvKipcbiAgICogUmVlbXBsYXphIHt2YXJpYWJsZX0gZW4gdGV4dG8gY29uIHZhbG9yZXMgZGUgZGF0YVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBpbnRlcnBvbGF0ZSgnSG9sYSB7bmFtZX0nLCB7IG5hbWU6ICdKdWFuJyB9KSAgIC8vICdIb2xhIEp1YW4nXG4gICAqIGludGVycG9sYXRlKCdIb2xhIHt7bmFtZX19JywgeyBuYW1lOiAnSnVhbicgfSkgLy8gJ0hvbGEgSnVhbidcbiAgICpcbiAgICogU2UgYWNlcHRhbiBsYXMgRE9TIG5vdGFjaW9uZXMgYSBwcm9ww7NzaXRvLiBDb24gc29sbyBge2NsYXZlfWAsIHVuIHRleHRvXG4gICAqIGVzY3JpdG8gY29tbyBge3tjbGF2ZX19YCByZWVtcGxhemFiYSBlbCBpbnRlcmlvciB5IGRlamFiYSBsYXMgbGxhdmVzIGRlXG4gICAqIGFmdWVyYSBhIGxhIHZpc3RhIGRlbCB1c3VhcmlvIChcIkVzdGUgZXMgbWkgY2FydMOzbiBwYXJhIHtHYWxhIDIwMjZ9XCIpLCBzaW5cbiAgICogZmFsbGFyIGVuIG5pbmfDum4gbGFkby4gRWwgZXN0aWxvIGRlIGxsYXZlcyBkZSB1biB0ZXh0byBubyBkZWJlcsOtYSBzZXIgdW5hXG4gICAqIHRyYW1wYTogbGEgbGliIGFjZXB0YSBhbWJvcyB5IGVsIGNvbnN1bWlkb3IgZXNjcmliZSBjb21vIHByZWZpZXJhLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnRlcnBvbGF0ZSh0ZXh0OiBzdHJpbmcsIGRhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhkYXRhKS5yZWR1Y2UoKHJlc3VsdCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zdCBkb2JsZSA9IG5ldyBSZWdFeHAoYFxcXFx7XFxcXHtcXFxccyoke2tleX1cXFxccypcXFxcfVxcXFx9YCwgJ2cnKTtcbiAgICAgIGNvbnN0IHNpbXBsZSA9IG5ldyBSZWdFeHAoYFxcXFx7XFxcXHMqJHtrZXl9XFxcXHMqXFxcXH1gLCAnZycpO1xuICAgICAgcmV0dXJuIHJlc3VsdC5yZXBsYWNlKGRvYmxlLCB2YWx1ZSkucmVwbGFjZShzaW1wbGUsIHZhbHVlKTtcbiAgICB9LCB0ZXh0KTtcbiAgfVxufVxuIl19
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2kxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUNwQixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRTlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFFSCxNQUFNLE9BQU8sV0FBVztJQTJCdEIsWUFBaUMsVUFBa0I7UUExQm5ELDZCQUE2QjtRQUNaLFVBQUssR0FBRyxNQUFNLENBQVcsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDOUQsYUFBUSxHQUFHLE1BQU0sQ0FBZSxFQUFFLENBQUMsQ0FBQztRQUNwQyx3QkFBbUIsR0FBRyxNQUFNLENBQWEsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVsRyxvQkFBb0I7UUFDWCxTQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQix1QkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFcEUsdUNBQXVDO1FBQzlCLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFD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QVcsY0FERSxNQUFNOzs0RkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQTRCbkIsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgSTE4bkxhbmcsXG4gIExhbmd1YWdlc0NvbnRlbnQsXG4gIENvbnRlbnRTdG9yZSxcbiAgTEFOR19TVE9SQUdFX0tFWSxcbiAgREVGQVVMVF9JMThOX0NPTkZJRyxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRUaW1lT2ZEYXlLZXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvdXRpbHMvZGF0ZXRpbWUnO1xuXG4vKipcbiAqIFNlcnZpY2lvIGRlIGludGVybmFjaW9uYWxpemFjacOzbiBiYXNhZG8gZW4gQW5ndWxhciBTaWduYWxzLlxuICpcbiAqIENhcmFjdGVyw61zdGljYXM6XG4gKiAtIFNpbiBSeEpTOiB1c2EgU2lnbmFscyBwYXJhIGV2aXRhciBtZW1vcnkgbGVha3MgeSBjb25nZWxhbWllbnRvXG4gKiAtIE5hbWVzcGFjZS1iYXNlZDogb3JnYW5pemEgdHJhZHVjY2lvbmVzIHBvciBjb250ZXh0b1xuICogLSBGYWxsYmFjayBtdWx0aS1uaXZlbDogbmFtZXNwYWNlIOKGkiBfZ2xvYmFsIOKGkiBwbGFjZWhvbGRlclxuICogLSBJbnRlcnBvbGFjacOzbjogc29wb3J0YSB7dmFyaWFibGV9IGVuIHRleHRvc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFbiB1biBjb21wb25lbnRlXG4gKiBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAqXG4gKiAvLyBPYnRlbmVyIHRleHRvXG4gKiBjb25zdCB0aXRsZSA9IHRoaXMuaTE4bi50KCd0aXRsZScsICdMb2dpbicpO1xuICpcbiAqIC8vIENvbiBpbnRlcnBvbGFjacOzblxuICogY29uc3Qgd2VsY29tZSA9IHRoaXMuaTE4bi50KCd3ZWxjb21lJywgJ0xvZ2luJywgeyBuYW1lOiAnSnVhbicgfSk7XG4gKlxuICogLy8gQ2FtYmlhciBpZGlvbWFcbiAqIHRoaXMuaTE4bi5zZXRMYW5ndWFnZSgnZW4nKTtcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJMThuU2VydmljZSB7XG4gIC8vIEVzdGFkbyBpbnRlcm5vIGNvbiBTaWduYWxzXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhbmcgPSBzaWduYWw8STE4bkxhbmc+KERFRkFVTFRfSTE4Tl9DT05GSUcuZGVmYXVsdExhbmd1YWdlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudCA9IHNpZ25hbDxDb250ZW50U3RvcmU+KHt9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkTGFuZ3VhZ2VzID0gc2lnbmFsPEkxOG5MYW5nW10+KERFRkFVTFRfSTE4Tl9DT05GSUcuc3VwcG9ydGVkTGFuZ3VhZ2VzKTtcblxuICAvLyBQw7pibGljb3MgcmVhZG9ubHlcbiAgcmVhZG9ubHkgbGFuZyA9IHRoaXMuX2xhbmcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBzdXBwb3J0ZWRMYW5ndWFnZXMgPSB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMuYXNSZWFkb25seSgpO1xuXG4gIC8vIENvbXB1dGVkIHBhcmEgdmVyaWZpY2FjaW9uZXMgcsOhcGlkYXNcbiAgcmVhZG9ubHkgaXNTcGFuaXNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbGFuZygpID09PSAnZXMnKTtcbiAgcmVhZG9ubHkgaXNFbmdsaXNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbGFuZygpID09PSAnZW4nKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogS2V5cyBmYWx0YW50ZXMgeWEgYWR2ZXJ0aWRhcyAoYG5zLmtleS5sYW5nYCkuIEdhcmFudGl6YSBxdWUgZWwgd2FybmluZyBzZVxuICAgKiBlbWl0YSBVTkEgc29sYSB2ZXogcG9yIGtleSwgbnVuY2EgcG9yIGNhZGEgY2hhbmdlLWRldGVjdGlvbi5cbiAgICpcbiAgICogQ3LDrXRpY286IGBnZXRUZXh0YCBzZSBldmFsw7phIGVuIGJpbmRpbmdzIGRlIHRlbXBsYXRlICh1bmEgdmV6IHBvciBDRCkuIFNpXG4gICAqIGFkdmlydGnDqXJhbW9zIGVuIGNhZGEgbGxhbWFkYSwgdW4gYGNvbnNvbGUud2FybmAgcG9yIENEICsgZWwgYHZhbC1kZWJ1Zy1jb25zb2xlYFxuICAgKiAocXVlIGVzcGVqYSBgY29uc29sZS4qYCBhIHVuIHNpZ25hbCkgY3JlYSB1biBsb29wIGluZmluaXRvIGRlIENEIHF1ZSBjb25nZWxhXG4gICAqIGVsIG5hdmVnYWRvciBlbiBkZXYuIERlZHVwbGljYXIgY29ydGEgZXNlIGxvb3AgZW4gc3Ugb3JpZ2VuLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfd2FybmVkTWlzc2luZyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdCkge1xuICAgIHRoaXMuaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCk7XG4gICAgdGhpcy5sb2FkU3RvcmVkTGFuZ3VhZ2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHRleHRvIHRyYWR1Y2lkbyAoYWxpYXMgY29ydG8gZGUgZ2V0VGV4dClcbiAgICpcbiAgICogQHBhcmFtIGtleSBDbGF2ZSBkZWwgdGV4dG9cbiAgICogQHBhcmFtIG5hbWVzcGFjZSBOYW1lc3BhY2UgKGRlZmF1bHQ6ICdfZ2xvYmFsJylcbiAgICogQHBhcmFtIGRhdGEgVmFyaWFibGVzIHBhcmEgaW50ZXJwb2xhY2nDs25cbiAgICogQHJldHVybnMgVGV4dG8gdHJhZHVjaWRvIG8gcGxhY2Vob2xkZXIgW25hbWVzcGFjZS5rZXldXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGkxOG4udCgnc3VibWl0Jyk7ICAgICAgICAgICAgICAgICAgICAvLyBidXNjYSBlbiBfZ2xvYmFsXG4gICAqIGkxOG4udCgndGl0bGUnLCAnTG9naW4nKTsgICAgICAgICAgICAvLyBidXNjYSBlbiBMb2dpblxuICAgKiBpMThuLnQoJ3dlbGNvbWUnLCAnTG9naW4nLCB7bmFtZX0pOyAgLy8gY29uIGludGVycG9sYWNpw7NuXG4gICAqL1xuICB0KGtleTogc3RyaW5nLCBuYW1lc3BhY2U/OiBzdHJpbmcsIGRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUZXh0KGtleSwgbmFtZXNwYWNlLCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdGltZS1vZi1kYXkgZ3JlZXRpbmcgaW4gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIFVzZXMgYnVuZGxlZCBrZXlzIGBnb29kTW9ybmluZ2AgLyBgZ29vZEFmdGVybm9vbmAgLyBgZ29vZEV2ZW5pbmdgIGZyb20gYF9nbG9iYWxgLlxuICAgKiBSZWFjdGl2ZSB0byBgbGFuZygpYCB3aGVuIGNhbGxlZCBpbnNpZGUgYSBgY29tcHV0ZWQoKWAuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIE9wdGlvbmFsIG5hbWUgdG8gYXBwZW5kOiBcIkJ1ZW5vcyBkw61hcywgSnVhblwiXG4gICAqIEBwYXJhbSBkYXRlIE9wdGlvbmFsIGRhdGUgdG8gZXZhbHVhdGUgKGRlZmF1bHRzIHRvIG5vdylcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogZ3JlZXRpbmcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAqICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICogICByZXR1cm4gdGhpcy5pMThuLmdyZWV0aW5nKHRoaXMuYXV0aC51c2VyKCk/Lm5hbWUpO1xuICAgKiB9KTtcbiAgICovXG4gIGdyZWV0aW5nKG5hbWU/OiBzdHJpbmcsIGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpKTogc3RyaW5nIHtcbiAgICB0aGlzLl9sYW5nKCk7IC8vIHRyYWNrIGZvciByZWFjdGl2aXR5IGluc2lkZSBjb21wdXRlZCgpXG4gICAgY29uc3QgdGV4dCA9IHRoaXMudChnZXRUaW1lT2ZEYXlLZXkoZGF0ZSkpO1xuICAgIHJldHVybiBuYW1lID8gYCR7dGV4dH0sICR7bmFtZX1gIDogdGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHRleHRvIHRyYWR1Y2lkb1xuICAgKlxuICAgKiBGYWxsYmFjayBvcmRlcjpcbiAgICogMS4gY29udGVudFtuYW1lc3BhY2VdW2xhbmddW2tleV1cbiAgICogMi4gY29udGVudFsnX2dsb2JhbCddW2xhbmddW2tleV1cbiAgICogMy4gXCJcIiAoc3RyaW5nIHZhY8Otbykg4oCUIG51bmNhIHVuIHBsYWNlaG9sZGVyIHZpc2libGUgbmkgdW4gdmFsb3IgcXVlXG4gICAqICAgIHJvbXBhIGVsIHJlbmRlci4gRWwgY29uc3VtZXIgcHVlZGUgYXBsaWNhciBzdSBwcm9waW8gZmFsbGJhY2sgY29uIGB8fGAuXG4gICAqL1xuICBnZXRUZXh0KGtleTogc3RyaW5nLCBuYW1lc3BhY2U/OiBzdHJpbmcsIGRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fY29udGVudCgpO1xuICAgIGNvbnN0IGxhbmcgPSB0aGlzLl9sYW5nKCk7XG4gICAgY29uc3QgbnMgPSBuYW1lc3BhY2UgfHwgJ19nbG9iYWwnO1xuXG4gICAgLy8gQnVzY2FyIGVuIG5hbWVzcGFjZSBlc3BlY8OtZmljb1xuICAgIGxldCB0ZXh0ID0gY29udGVudFtuc10/LltsYW5nXT8uW2tleV07XG5cbiAgICAvLyBGYWxsYmFjayBhIF9nbG9iYWxcbiAgICBpZiAoIXRleHQgJiYgbnMgIT09ICdfZ2xvYmFsJykge1xuICAgICAgdGV4dCA9IGNvbnRlbnRbJ19nbG9iYWwnXT8uW2xhbmddPy5ba2V5XTtcbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjayBzZWd1cm86IHN0cmluZyB2YWPDrW8uIFNlIGFkdmllcnRlIFVOQSB2ZXogcG9yIGtleSAodmVyXG4gICAgLy8gYF93YXJuZWRNaXNzaW5nYCkgcGFyYSBxdWUgdW4gYmluZGluZyBldmFsdWFkbyBwb3IgQ0Qgbm8gZ2VuZXJlIHVuXG4gICAgLy8gY29uc29sZS53YXJuIHBvciBjYWRhIGNoYW5nZS1kZXRlY3Rpb24gKHF1ZSBkaXNwYXJhcsOtYSB1biBsb29wIGNvbiBlbFxuICAgIC8vIGRlYnVnLWNvbnNvbGUpLiBObyBkZXZvbHZlbW9zIGBbbnMua2V5XWAg4oCUIHVuIHBsYWNlaG9sZGVyIHZpc2libGVcbiAgICAvLyBlbnN1Y2lhIGxhIFVJIHksIGFsIHNlciB0cnV0aHksIGFudWxhIGxvcyBgfHwgZmFsbGJhY2tgIGRlbCBjb25zdW1lci5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIGNvbnN0IHdhcm5LZXkgPSBgJHtuc30uJHtrZXl9LiR7bGFuZ31gO1xuICAgICAgaWYgKCF0aGlzLl93YXJuZWRNaXNzaW5nLmhhcyh3YXJuS2V5KSkge1xuICAgICAgICB0aGlzLl93YXJuZWRNaXNzaW5nLmFkZCh3YXJuS2V5KTtcbiAgICAgICAgY29uc29sZS53YXJuKGBbaTE4bl0gTWlzc2luZyB0cmFuc2xhdGlvbjogJHtuc30uJHtrZXl9ICgke2xhbmd9KWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8vIEFwbGljYXIgaW50ZXJwb2xhY2nDs24gc2kgaGF5IGRhdGFcbiAgICBpZiAoZGF0YSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGUodGV4dCwgZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogQ2FtYmlhIGVsIGlkaW9tYSBkZSBsYSBhcGxpY2FjacOzblxuICAgKlxuICAgKiBAcGFyYW0gbGFuZyBOdWV2byBpZGlvbWFcbiAgICogQHBhcmFtIGZvcmNlUmVsb2FkIFNpIHRydWUsIHJlY2FyZ2EgbGEgcMOhZ2luYSAoZmFsbGJhY2sgc2kgcmVhY3RpdmlkYWQgZmFsbGEpXG4gICAqL1xuICBzZXRMYW5ndWFnZShsYW5nOiBJMThuTGFuZywgZm9yY2VSZWxvYWQgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc3VwcG9ydGVkTGFuZ3VhZ2VzKCkuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIGNvbnNvbGUud2FybihgW2kxOG5dIExhbmd1YWdlICcke2xhbmd9JyBub3QgaW4gc3VwcG9ydGVkIGxhbmd1YWdlc2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChsYW5nID09PSB0aGlzLl9sYW5nKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBQZXJzaXN0aXIgZW4gbG9jYWxTdG9yYWdlIChicm93c2VyLW9ubHkpXG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShMQU5HX1NUT1JBR0VfS0VZLCBsYW5nKTtcbiAgICB9XG5cbiAgICAvLyBBY3R1YWxpemFyIHNpZ25hbFxuICAgIHRoaXMuX2xhbmcuc2V0KGxhbmcpO1xuXG4gICAgLy8gRmFsbGJhY2s6IHJlY2FyZ2FyIHNpIHNlIHNvbGljaXRhXG4gICAgaWYgKGZvcmNlUmVsb2FkICYmIHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdHJhIGNvbnRlbmlkbyBkZSB0cmFkdWNjaW9uZXMgcGFyYSB1biBuYW1lc3BhY2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWVzcGFjZSBOb21icmUgZGVsIG5hbWVzcGFjZVxuICAgKiBAcGFyYW0gY29udGVudCBDb250ZW5pZG8gZGUgdHJhZHVjY2lvbmVzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGkxOG4ucmVnaXN0ZXJDb250ZW50KCdMb2dpbicsIHtcbiAgICogICBlczogeyB0aXRsZTogJ0luaWNpYXIgc2VzacOzbicgfSxcbiAgICogICBlbjogeyB0aXRsZTogJ1NpZ24gaW4nIH1cbiAgICogfSk7XG4gICAqL1xuICByZWdpc3RlckNvbnRlbnQobmFtZXNwYWNlOiBzdHJpbmcsIGNvbnRlbnQ6IExhbmd1YWdlc0NvbnRlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250ZW50LnVwZGF0ZShzdG9yZSA9PiAoe1xuICAgICAgLi4uc3RvcmUsXG4gICAgICBbbmFtZXNwYWNlXTogY29udGVudCxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0cmEgZGVmYXVsdHMgcGFyYSB1biBuYW1lc3BhY2UsIG1lemNsYW5kbyBzb2xvIGxhcyBrZXlzIGF1c2VudGVzIHBvciBpZGlvbWEuXG4gICAqIEEgZGlmZXJlbmNpYSBkZSBgcmVnaXN0ZXJDb250ZW50YCwgbm8gc29icmVlc2NyaWJlIGtleXMgcXVlIGVsIGNvbnN1bWVyIHlhIHJlZ2lzdHLDsy5cbiAgICogw5pzYWxvIGVuIGNvbXBvbmVudGVzIGRlIGxhIGxpYiBwYXJhIHF1ZSBzdXMgZGVmYXVsdHMgZnVuY2lvbmVuIGluY2x1c28gY3VhbmRvIGVsXG4gICAqIGNvbnN1bWVyIHJlZ2lzdHLDsyBlbCBuYW1lc3BhY2UgZGUgZm9ybWEgcGFyY2lhbC5cbiAgICovXG4gIHJlZ2lzdGVyRGVmYXVsdHMobmFtZXNwYWNlOiBzdHJpbmcsIGRlZmF1bHRzOiBMYW5ndWFnZXNDb250ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY29udGVudC51cGRhdGUoc3RvcmUgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBzdG9yZVtuYW1lc3BhY2VdO1xuICAgICAgaWYgKCFleGlzdGluZykgcmV0dXJuIHsgLi4uc3RvcmUsIFtuYW1lc3BhY2VdOiBkZWZhdWx0cyB9O1xuICAgICAgY29uc3QgbWVyZ2VkOiBMYW5ndWFnZXNDb250ZW50ID0geyAuLi5leGlzdGluZyB9O1xuICAgICAgZm9yIChjb25zdCBsYW5nIG9mIE9iamVjdC5rZXlzKGRlZmF1bHRzKSBhcyBBcnJheTxrZXlvZiBMYW5ndWFnZXNDb250ZW50Pikge1xuICAgICAgICBjb25zdCBkZWZMYW5nID0gZGVmYXVsdHNbbGFuZ10gPz8ge307XG4gICAgICAgIGNvbnN0IGN1ckxhbmcgPSAoZXhpc3RpbmdbbGFuZ10gPz8ge30pIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgICAgIG1lcmdlZFtsYW5nXSA9IHsgLi4uKGRlZkxhbmcgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPiksIC4uLmN1ckxhbmcgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IC4uLnN0b3JlLCBbbmFtZXNwYWNlXTogbWVyZ2VkIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0cmEgbcO6bHRpcGxlcyBuYW1lc3BhY2VzIGRlIHVuYSB2ZXpcbiAgICpcbiAgICogQHBhcmFtIGNvbnRlbnRTdG9yZSBPYmpldG8gY29uIG5hbWVzcGFjZXMgY29tbyBrZXlzXG4gICAqL1xuICByZWdpc3RlckNvbnRlbnRCdWxrKGNvbnRlbnRTdG9yZTogQ29udGVudFN0b3JlKTogdm9pZCB7XG4gICAgdGhpcy5fY29udGVudC51cGRhdGUoc3RvcmUgPT4gKHtcbiAgICAgIC4uLnN0b3JlLFxuICAgICAgLi4uY29udGVudFN0b3JlLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmEgbG9zIGlkaW9tYXMgc29wb3J0YWRvc1xuICAgKi9cbiAgc2V0STE4bkxhbmd1YWdlcyhsYW5ndWFnZXM6IEkxOG5MYW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMuc2V0KGxhbmd1YWdlcyk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB0b2RvcyBsb3MgbmFtZXNwYWNlcyByZWdpc3RyYWRvc1xuICAgKi9cbiAgZ2V0TmFtZXNwYWNlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2NvbnRlbnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgdW4gbmFtZXNwYWNlIHRpZW5lIHRyYWR1Y2Npb25lc1xuICAgKi9cbiAgaGFzTmFtZXNwYWNlKG5hbWVzcGFjZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5hbWVzcGFjZSBpbiB0aGlzLl9jb250ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FyZ2EgZWwgaWRpb21hIGd1YXJkYWRvIGVuIGxvY2FsU3RvcmFnZSwgbyBhZGl2aW5hIGRlc2RlIGVsIG5hdmVnYWRvci5cbiAgICpcbiAgICogTGEgZGV0ZWNjacOzbiBkZSBhY8OhIGVzIFBST1ZJU0lPTkFMIHkgTk8gc2UgcGVyc2lzdGUsIGEgcHJvcMOzc2l0by4gRWxcbiAgICogY29uc3RydWN0b3IgY29ycmUgYW50ZXMgcXVlIGVsIEFQUF9JTklUSUFMSVpFUiBkZSBgcHJvdmlkZVZhbHRlY2hJMThuYCxcbiAgICogcXVlIGVzIHF1aWVuIGNvbm9jZSBsYSBjb25maWcgcmVhbCBkZSBsYSBhcHAuIEN1YW5kbyBlc3RvIHBlcnNpc3TDrWEgZWxcbiAgICogaWRpb21hIGRldGVjdGFkbywgZWwgaW5pdGlhbGl6ZXIgbGXDrWEgZXNhIG1pc21hIGNsYXZlIHVuIGluc3RhbnRlIGRlc3B1w6lzLFxuICAgKiBsYSB0b21hYmEgcG9yIHByZWZlcmVuY2lhIGd1YXJkYWRhIGRlbCB1c3VhcmlvIHkgZW50cmFiYSBwb3IgbGEgcmFtYVxuICAgKiBgc3RvcmVkYCDigJQgYXPDrSBxdWUgYGRldGVjdEJyb3dzZXJMYW5ndWFnZTogZmFsc2VgIG5vIHRlbsOtYSBlZmVjdG8gZW5cbiAgICogbmluZ3VuYSBhcHAgZGVsIGZhY3RvcnkuIEVzY3JpYmlyIGFjw6EgZmFicmljYWJhIHVuYSBwcmVmZXJlbmNpYSBxdWUgZWxcbiAgICogdXN1YXJpbyBudW5jYSBleHByZXPDsy5cbiAgICpcbiAgICogUGVyc2lzdGlyIGVzIHJlc3BvbnNhYmlsaWRhZCBkZSBgc2V0TGFuZ3VhZ2UoKWAsIHF1ZSBzZSBsbGFtYSBjdWFuZG8gbGFcbiAgICogZWxlY2Npw7NuIHPDrSBlcyBkZWwgdXN1YXJpbyAobyBjdWFuZG8gZWwgaW5pdGlhbGl6ZXIgeWEgZGVjaWRpw7MgY29uIGxhXG4gICAqIGNvbmZpZyBhIGxhIHZpc3RhKS5cbiAgICovXG4gIHByaXZhdGUgbG9hZFN0b3JlZExhbmd1YWdlKCk6IHZvaWQge1xuICAgIC8vIFNTUjogc2luIGxvY2FsU3RvcmFnZS9uYXZpZ2F0b3IuIE1hbnRlbmVtb3MgZWwgZGVmYXVsdDsgZWwgYnJvd3NlclxuICAgIC8vIGh5ZHJhdGFyw6EgZWwgbGFuZyByZWFsIGN1YW5kbyBlbCBjbGllbnRlIGFycmFucXVlLlxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMQU5HX1NUT1JBR0VfS0VZKTtcblxuICAgIGlmIChzdG9yZWQgJiYgdGhpcy5pc1ZhbGlkTGFuZ3VhZ2Uoc3RvcmVkKSkge1xuICAgICAgdGhpcy5fbGFuZy5zZXQoc3RvcmVkIGFzIEkxOG5MYW5nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBBZGl2aW5hbnphIHByb3Zpc2lvbmFsIG1pZW50cmFzIGVsIGluaXRpYWxpemVyIG5vIGhheWEgY29ycmlkby4gU2luXG4gICAgLy8gcGVyc2lzdGlyOiB2ZXIgZWwgY29tZW50YXJpbyBkZWwgbcOpdG9kby5cbiAgICBjb25zdCBicm93c2VyTGFuZyA9IG5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdIGFzIEkxOG5MYW5nO1xuICAgIGlmICh0aGlzLmlzVmFsaWRMYW5ndWFnZShicm93c2VyTGFuZykpIHtcbiAgICAgIHRoaXMuX2xhbmcuc2V0KGJyb3dzZXJMYW5nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhIHNpIHVuIGlkaW9tYSBlc3TDoSBzb3BvcnRhZG9cbiAgICovXG4gIHByaXZhdGUgaXNWYWxpZExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMoKS5pbmNsdWRlcyhsYW5nIGFzIEkxOG5MYW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWVtcGxhemEge3ZhcmlhYmxlfSBlbiB0ZXh0byBjb24gdmFsb3JlcyBkZSBkYXRhXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGludGVycG9sYXRlKCdIb2xhIHtuYW1lfScsIHsgbmFtZTogJ0p1YW4nIH0pICAgLy8gJ0hvbGEgSnVhbidcbiAgICogaW50ZXJwb2xhdGUoJ0hvbGEge3tuYW1lfX0nLCB7IG5hbWU6ICdKdWFuJyB9KSAvLyAnSG9sYSBKdWFuJ1xuICAgKlxuICAgKiBTZSBhY2VwdGFuIGxhcyBET1Mgbm90YWNpb25lcyBhIHByb3DDs3NpdG8uIENvbiBzb2xvIGB7Y2xhdmV9YCwgdW4gdGV4dG9cbiAgICogZXNjcml0byBjb21vIGB7e2NsYXZlfX1gIHJlZW1wbGF6YWJhIGVsIGludGVyaW9yIHkgZGVqYWJhIGxhcyBsbGF2ZXMgZGVcbiAgICogYWZ1ZXJhIGEgbGEgdmlzdGEgZGVsIHVzdWFyaW8gKFwiRXN0ZSBlcyBtaSBjYXJ0w7NuIHBhcmEge0dhbGEgMjAyNn1cIiksIHNpblxuICAgKiBmYWxsYXIgZW4gbmluZ8O6biBsYWRvLiBFbCBlc3RpbG8gZGUgbGxhdmVzIGRlIHVuIHRleHRvIG5vIGRlYmVyw61hIHNlciB1bmFcbiAgICogdHJhbXBhOiBsYSBsaWIgYWNlcHRhIGFtYm9zIHkgZWwgY29uc3VtaWRvciBlc2NyaWJlIGNvbW8gcHJlZmllcmEuXG4gICAqL1xuICBwcml2YXRlIGludGVycG9sYXRlKHRleHQ6IHN0cmluZywgZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGRhdGEpLnJlZHVjZSgocmVzdWx0LCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IGRvYmxlID0gbmV3IFJlZ0V4cChgXFxcXHtcXFxce1xcXFxzKiR7a2V5fVxcXFxzKlxcXFx9XFxcXH1gLCAnZycpO1xuICAgICAgY29uc3Qgc2ltcGxlID0gbmV3IFJlZ0V4cChgXFxcXHtcXFxccyoke2tleX1cXFxccypcXFxcfWAsICdnJyk7XG4gICAgICByZXR1cm4gcmVzdWx0LnJlcGxhY2UoZG9ibGUsIHZhbHVlKS5yZXBsYWNlKHNpbXBsZSwgdmFsdWUpO1xuICAgIH0sIHRleHQpO1xuICB9XG59XG4iXX0=
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.993';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45OTMnO1xuIl19
|
|
@@ -70,7 +70,7 @@ import fixWebmDuration from 'fix-webm-duration';
|
|
|
70
70
|
* Current version of valtech-components.
|
|
71
71
|
* This is automatically updated during the publish process.
|
|
72
72
|
*/
|
|
73
|
-
const VERSION = '4.0.
|
|
73
|
+
const VERSION = '4.0.993';
|
|
74
74
|
|
|
75
75
|
function evaluateValtechAccess(rule, context, features = {}, visitedFeatures = new Set()) {
|
|
76
76
|
if (rule == null)
|
|
@@ -1958,7 +1958,20 @@ class I18nService {
|
|
|
1958
1958
|
return namespace in this._content();
|
|
1959
1959
|
}
|
|
1960
1960
|
/**
|
|
1961
|
-
* Carga idioma guardado en localStorage o
|
|
1961
|
+
* Carga el idioma guardado en localStorage, o adivina desde el navegador.
|
|
1962
|
+
*
|
|
1963
|
+
* La detección de acá es PROVISIONAL y NO se persiste, a propósito. El
|
|
1964
|
+
* constructor corre antes que el APP_INITIALIZER de `provideValtechI18n`,
|
|
1965
|
+
* que es quien conoce la config real de la app. Cuando esto persistía el
|
|
1966
|
+
* idioma detectado, el initializer leía esa misma clave un instante después,
|
|
1967
|
+
* la tomaba por preferencia guardada del usuario y entraba por la rama
|
|
1968
|
+
* `stored` — así que `detectBrowserLanguage: false` no tenía efecto en
|
|
1969
|
+
* ninguna app del factory. Escribir acá fabricaba una preferencia que el
|
|
1970
|
+
* usuario nunca expresó.
|
|
1971
|
+
*
|
|
1972
|
+
* Persistir es responsabilidad de `setLanguage()`, que se llama cuando la
|
|
1973
|
+
* elección sí es del usuario (o cuando el initializer ya decidió con la
|
|
1974
|
+
* config a la vista).
|
|
1962
1975
|
*/
|
|
1963
1976
|
loadStoredLanguage() {
|
|
1964
1977
|
// SSR: sin localStorage/navigator. Mantenemos el default; el browser
|
|
@@ -1971,11 +1984,11 @@ class I18nService {
|
|
|
1971
1984
|
this._lang.set(stored);
|
|
1972
1985
|
return;
|
|
1973
1986
|
}
|
|
1974
|
-
//
|
|
1987
|
+
// Adivinanza provisional mientras el initializer no haya corrido. Sin
|
|
1988
|
+
// persistir: ver el comentario del método.
|
|
1975
1989
|
const browserLang = navigator.language.split('-')[0];
|
|
1976
1990
|
if (this.isValidLanguage(browserLang)) {
|
|
1977
1991
|
this._lang.set(browserLang);
|
|
1978
|
-
localStorage.setItem(LANG_STORAGE_KEY$1, browserLang);
|
|
1979
1992
|
}
|
|
1980
1993
|
}
|
|
1981
1994
|
/**
|
|
@@ -40792,13 +40805,16 @@ class SurveyBuilderComponent {
|
|
|
40792
40805
|
}
|
|
40793
40806
|
}
|
|
40794
40807
|
async ngOnInit() {
|
|
40808
|
+
// Sembrado directo: la app ya tenía la encuesta, no hace falta leerla.
|
|
40809
|
+
if (this.props.initial) {
|
|
40810
|
+
this.hydrate(this.props.initial.label, this.props.initial.subtitle, this.props.initial.questions);
|
|
40811
|
+
return;
|
|
40812
|
+
}
|
|
40795
40813
|
if (!this.props.typeId)
|
|
40796
40814
|
return;
|
|
40797
40815
|
try {
|
|
40798
40816
|
const cfg = await firstValueFrom(this.requests.getRequestType(this.props.typeId));
|
|
40799
|
-
this.
|
|
40800
|
-
this.subtitleControl.setValue(cfg.subtitle ?? '');
|
|
40801
|
-
this.questions.set([...cfg.fieldSchema].sort((a, b) => a.order - b.order).map(f => this.rowFromField(f)));
|
|
40817
|
+
this.hydrate(cfg.label, cfg.subtitle ?? '', cfg.fieldSchema);
|
|
40802
40818
|
}
|
|
40803
40819
|
catch (err) {
|
|
40804
40820
|
this.errors.handle(err, {
|
|
@@ -40985,6 +41001,11 @@ class SurveyBuilderComponent {
|
|
|
40985
41001
|
});
|
|
40986
41002
|
}
|
|
40987
41003
|
}
|
|
41004
|
+
hydrate(label, subtitle, questions) {
|
|
41005
|
+
this.titleControl.setValue(label ?? '');
|
|
41006
|
+
this.subtitleControl.setValue(subtitle ?? '');
|
|
41007
|
+
this.questions.set([...(questions ?? [])].sort((a, b) => a.order - b.order).map(f => this.rowFromField(f)));
|
|
41008
|
+
}
|
|
40988
41009
|
rowFromField(f) {
|
|
40989
41010
|
return {
|
|
40990
41011
|
id: `row-${rowUid++}`,
|