valtech-components 4.0.989 → 4.0.990
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 +24 -5
- package/esm2022/lib/components/organisms/survey-builder/types.mjs +1 -1
- package/esm2022/lib/services/payments/config.mjs +23 -0
- package/esm2022/lib/services/payments/index.mjs +4 -0
- package/esm2022/lib/services/payments/payments-gateway.service.mjs +69 -0
- package/esm2022/lib/services/payments/types.mjs +8 -0
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/valtech-components.mjs +118 -5
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/survey-builder/survey-builder.component.d.ts +9 -2
- package/lib/components/organisms/survey-builder/types.d.ts +28 -1
- package/lib/services/payments/config.d.ts +14 -0
- package/lib/services/payments/index.d.ts +3 -0
- package/lib/services/payments/payments-gateway.service.d.ts +53 -0
- package/lib/services/payments/types.d.ts +33 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -12,7 +12,7 @@ import { ButtonComponent } from '../../atoms/button/button.component';
|
|
|
12
12
|
import { FormFieldComponent } from '../../molecules/form-field/form-field.component';
|
|
13
13
|
import { FIELD_TYPES_WITH_OPTIONS, FieldSchemaEditorComponent, } from '../field-schema-editor/field-schema-editor.component';
|
|
14
14
|
import { FIELD_SCHEMA_EDITOR_I18N } from '../field-schema-editor/field-schema-editor.i18n';
|
|
15
|
-
import { SURVEY_QUESTION_TYPES } from './types';
|
|
15
|
+
import { SURVEY_QUESTION_TYPES, } from './types';
|
|
16
16
|
import { SURVEY_BUILDER_I18N } from './survey-builder.i18n';
|
|
17
17
|
import * as i0 from "@angular/core";
|
|
18
18
|
const NAMESPACE = 'SurveyBuilder';
|
|
@@ -40,6 +40,13 @@ export class SurveyBuilderComponent {
|
|
|
40
40
|
constructor() {
|
|
41
41
|
this.props = {};
|
|
42
42
|
this.saved = new EventEmitter();
|
|
43
|
+
/**
|
|
44
|
+
* Emite lo escrito, ya validado, SIN guardarlo. Solo con `props.persist:
|
|
45
|
+
* false` — ver el comentario de ese campo: cuando la app tiene endpoint
|
|
46
|
+
* propio, guardar desde acá se salta la validación de la entidad dueña y el
|
|
47
|
+
* permiso de la vertical.
|
|
48
|
+
*/
|
|
49
|
+
this.draft = new EventEmitter();
|
|
43
50
|
this.i18n = inject(I18nService);
|
|
44
51
|
this.requests = inject(RequestService);
|
|
45
52
|
this.formBuilder = inject(RequestFormBuilderService);
|
|
@@ -201,7 +208,6 @@ export class SurveyBuilderComponent {
|
|
|
201
208
|
this.validationError.set(this.t('missingOptions'));
|
|
202
209
|
return;
|
|
203
210
|
}
|
|
204
|
-
this.saving.set(true);
|
|
205
211
|
const fieldSchema = [];
|
|
206
212
|
rows.forEach((row, index) => {
|
|
207
213
|
const name = this.formBuilder.uniqueFieldName(row.name || row.label, fieldSchema);
|
|
@@ -215,8 +221,19 @@ export class SurveyBuilderComponent {
|
|
|
215
221
|
options: row.options,
|
|
216
222
|
}, index));
|
|
217
223
|
});
|
|
218
|
-
const typeId = this.props.typeId ?? `${this.props.typePrefix ?? DEFAULT_TYPE_PREFIX}:${this.formBuilder.toToken(title)}`;
|
|
219
224
|
const subtitle = this.subtitleControl.value.trim();
|
|
225
|
+
// La app guarda: acá solo se valida y se entrega lo escrito.
|
|
226
|
+
if (this.props.persist === false) {
|
|
227
|
+
this.draft.emit({ label: title, subtitle, questions: fieldSchema });
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
this.saving.set(true);
|
|
231
|
+
// `typeId` derivado del título: sirve para un tipo de solicitud de
|
|
232
|
+
// plataforma, donde el título ES la identidad. Para una encuesta atada a
|
|
233
|
+
// una entidad NO alcanza — dos eventos con el mismo título colisionarían en
|
|
234
|
+
// el mismo tipo y compartirían respuestas. Por eso una vertical usa su
|
|
235
|
+
// endpoint (`persist: false`) y arma el id con la entidad adentro.
|
|
236
|
+
const typeId = this.props.typeId ?? `${this.props.typePrefix ?? DEFAULT_TYPE_PREFIX}:${this.formBuilder.toToken(title)}`;
|
|
220
237
|
const payload = {
|
|
221
238
|
label: title,
|
|
222
239
|
subtitle,
|
|
@@ -257,7 +274,7 @@ export class SurveyBuilderComponent {
|
|
|
257
274
|
};
|
|
258
275
|
}
|
|
259
276
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SurveyBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
260
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SurveyBuilderComponent, isStandalone: true, selector: "val-survey-builder", inputs: { props: "props" }, outputs: { saved: "saved" }, ngImport: i0, template: `
|
|
277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SurveyBuilderComponent, isStandalone: true, selector: "val-survey-builder", inputs: { props: "props" }, outputs: { saved: "saved", draft: "draft" }, ngImport: i0, template: `
|
|
261
278
|
<div class="survey-builder">
|
|
262
279
|
<val-form-field [label]="t('titleLabel')">
|
|
263
280
|
<val-text-input [props]="{ control: titleControl, placeholder: t('titlePlaceholder') }" />
|
|
@@ -489,5 +506,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
489
506
|
type: Input
|
|
490
507
|
}], saved: [{
|
|
491
508
|
type: Output
|
|
509
|
+
}], draft: [{
|
|
510
|
+
type: Output
|
|
492
511
|
}] } });
|
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9zdXJ2ZXktYnVpbGRlci9zdXJ2ZXktYnVpbGRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRXBHLE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixHQUMzQixNQUFNLHNEQUFzRCxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTNGLE9BQU8sRUFBaUQscUJB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QW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3FCQUMzQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0R1Q7d0RBMkZRLEtBQUs7c0JBQWIsS0FBSztnQkFDYSxLQUFLO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3JlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBSZXF1ZXN0Rm9ybUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVxdWVzdHMvcmVxdWVzdC1mb3JtLWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGaWVsZFNjaGVtYURlZiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgRklFTERfVFlQRVNfV0lUSF9PUFRJT05TLFxuICBGaWVsZFNjaGVtYUVkaXRvckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vZmllbGQtc2NoZW1hLWVkaXRvci9maWVsZC1zY2hlbWEtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGSUVMRF9TQ0hFTUFfRURJVE9SX0kxOE4gfSBmcm9tICcuLi9maWVsZC1zY2hlbWEtZWRpdG9yL2ZpZWxkLXNjaGVtYS1lZGl0b3IuaTE4bic7XG5pbXBvcnQgeyBFZGl0YWJsZUZpZWxkRGVmLCBGaWVsZFNjaGVtYUVkaXRvck1ldGFkYXRhIH0gZnJvbSAnLi4vZmllbGQtc2NoZW1hLWVkaXRvci90eXBlcyc7XG5pbXBvcnQgeyBTdXJ2ZXlCdWlsZGVyTWV0YWRhdGEsIFN1cnZleUJ1aWxkZXJTYXZlRXZlbnQsIFNVUlZFWV9RVUVTVElPTl9UWVBFUyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU1VSVkVZX0JVSUxERVJfSTE4TiB9IGZyb20gJy4vc3VydmV5LWJ1aWxkZXIuaTE4bic7XG5cbmNvbnN0IE5BTUVTUEFDRSA9ICdTdXJ2ZXlCdWlsZGVyJztcbmNvbnN0IEVESVRPUl9OQU1FU1BBQ0UgPSAnRmllbGRTY2hlbWFFZGl0b3InO1xuY29uc3QgREVGQVVMVF9UWVBFX1BSRUZJWCA9ICdzdXJ2ZXknO1xuXG5sZXQgcm93VWlkID0gMDtcblxuLyoqXG4gKiB2YWwtc3VydmV5LWJ1aWxkZXJcbiAqXG4gKiBBdXRvcsOtYSBkZSB1bmEgZW5jdWVzdGE6IHTDrXR1bG8sIHN1YnTDrXR1bG8sIHByZWd1bnRhcyDigJQgYXJtYSBvIGFjdHVhbGl6YSB1blxuICogYFJlcXVlc3RUeXBlQ29uZmlnYCBjb24gYFR5cGU6IFwiPHByZWZpeD46PHNsdWc+XCJgIChBRFItMDkyKSwgYHNraXBSZXZpZXc6XG4gKiB0cnVlYCAoY2FkYSByZXNwdWVzdGEgc2UgYWdyZWdhLCBubyBzZSByZXZpc2EgdW5hIHBvciB1bmEpIHkgZWwgYEVudGl0eVJlZmBcbiAqIHF1ZSBsZSBwYXNhIGVsIGNvbnN1bWVyIChlai4gZWwgZXZlbnRvIGRlIGJpbmdvIGR1ZcOxbyBkZSBsYSBlbmN1ZXN0YSkuXG4gKlxuICogQ2FkYSBwcmVndW50YSBzZSBlZGl0YSBjb24gYHZhbC1maWVsZC1zY2hlbWEtZWRpdG9yYCwgZWwgbWlzbW8gZWRpdG9yIHF1ZSB1c2FcbiAqIGVsIGNoZWNrb3V0IGRlIGJpbmdvIOKAlCBkZSBhaMOtIHF1ZSB1bmEgcHJlZ3VudGEgdGVuZ2EgdGlwbywgcGxhY2Vob2xkZXIsIG5vdGFcbiAqIHkgb3BjaW9uZXMsIG5vIHNvbG8gdGV4dG8uIExhIHYxIGRlIGVzdGUgY29tcG9uZW50ZSB0ZW7DrWEgc3UgcHJvcGlvIGVkaXRvclxuICogcG9icmUgKGRvcyB0aXBvcywgc2luIG9wY2lvbmVzKTsgbGEgRmFzZSA1IGRlbCBBRFItMDkyIGxvIHJlZW1wbGF6w7MgcG9yIGVsXG4gKiBvcmdhbmlzbSBjb21wYXJ0aWRvIGVuIHZleiBkZSBtZWpvcmFybG8gcG9yIGR1cGxpY2Fkby5cbiAqXG4gKiBFbCBjYXTDoWxvZ28gcXVlIG9mcmVjZSBzYWxlIGRlIGBTVVJWRVlfUVVFU1RJT05fVFlQRVNgIOKAlCBhY290YWRvIGEgbG8gcXVlXG4gKiBgdmFsLXN1cnZleS1yZXNwb25zZWAgc2FiZSByZW5kZXJpemFyLCBubyBhIGxvIHF1ZSBlbCBlZGl0b3Igc2FiZSBlZGl0YXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zdXJ2ZXktYnVpbGRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBGaWVsZFNjaGVtYUVkaXRvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJcIj5cbiAgICAgIDx2YWwtZm9ybS1maWVsZCBbbGFiZWxdPVwidCgndGl0bGVMYWJlbCcpXCI+XG4gICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwieyBjb250cm9sOiB0aXRsZUNvbnRyb2wsIHBsYWNlaG9sZGVyOiB0KCd0aXRsZVBsYWNlaG9sZGVyJykgfVwiIC8+XG4gICAgICA8L3ZhbC1mb3JtLWZpZWxkPlxuICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJ0KCdzdWJ0aXRsZUxhYmVsJylcIj5cbiAgICAgICAgPHZhbC10ZXh0LWlucHV0IFtwcm9wc109XCJ7IGNvbnRyb2w6IHN1YnRpdGxlQ29udHJvbCwgcGxhY2Vob2xkZXI6IHQoJ3N1YnRpdGxlUGxhY2Vob2xkZXInKSB9XCIgLz5cbiAgICAgIDwvdmFsLWZvcm0tZmllbGQ+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fcXVlc3Rpb25zXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3F1ZXN0aW9ucy1sYWJlbFwiPnt7IHQoJ3F1ZXN0aW9uc0xhYmVsJykgfX08L3NwYW4+XG5cbiAgICAgICAgQGlmICghcXVlc3Rpb25zKCkubGVuZ3RoKSB7XG4gICAgICAgICAgPHAgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fZW1wdHlcIj57eyB0KCdub1F1ZXN0aW9ucycpIH19PC9wPlxuICAgICAgICB9XG5cbiAgICAgICAgQGZvciAocm93IG9mIHF1ZXN0aW9ucygpOyB0cmFjayByb3cuaWQ7IGxldCBpID0gJGluZGV4OyBsZXQgZmlyc3QgPSAkZmlyc3Q7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3Jvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1idWlsZGVyX19yb3ctaGVhZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3Jvdy10ZXh0XCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyByb3cubGFiZWwgfHwgdCgndW50aXRsZWRRdWVzdGlvbicpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdHlwZUxhYmVsKHJvdy50eXBlKSB9fXt7IHJvdy5yZXF1aXJlZCA/ICcgwrcgJyArIHQoJ3JlcXVpcmVkVGFnJykgOiAnJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fcm93LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cImljb25BY3Rpb24oJ3EtdXAtJyArIHJvdy5pZCwgJ2Fycm93LXVwLW91dGxpbmUnLCB0KCdtb3ZlVXAnKSwgZmlyc3QpXCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm1vdmUoaSwgLTEpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwiaWNvbkFjdGlvbigncS1kb3duLScgKyByb3cuaWQsICdhcnJvdy1kb3duLW91dGxpbmUnLCB0KCdtb3ZlRG93bicpLCBsYXN0KVwiXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJtb3ZlKGksIDEpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwiaWNvbkFjdGlvbigncS1jb3B5LScgKyByb3cuaWQsICdjb3B5LW91dGxpbmUnLCB0KCdkdXBsaWNhdGVRdWVzdGlvbicpKVwiXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkdXBsaWNhdGUocm93KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cImljb25BY3Rpb24oJ3EtZWRpdC0nICsgcm93LmlkLCAnY3JlYXRlLW91dGxpbmUnLCB0KCdlZGl0UXVlc3Rpb24nKSlcIlxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidG9nZ2xlRWRpdChyb3cpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwiaWNvbkFjdGlvbigncS1yZW1vdmUtJyArIHJvdy5pZCwgJ3RyYXNoLW91dGxpbmUnLCB0KCdyZW1vdmVRdWVzdGlvbicpLCBmYWxzZSwgJ2RhbmdlcicpXCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInJlbW92ZVF1ZXN0aW9uKHJvdylcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAoZWRpdGluZ0lkKCkgPT09IHJvdy5pZCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWJ1aWxkZXJfX3Jvdy1lZGl0b3JcIj5cbiAgICAgICAgICAgICAgICA8dmFsLWZpZWxkLXNjaGVtYS1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICNlZGl0b3JcbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJlZGl0b3JQcm9wcyhyb3cpXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cImRyYWZ0UXVlc3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoc2F2ZSk9XCJhcHBseVF1ZXN0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHRva2VuOiAncS1kb25lLScgKyByb3cuaWQsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHQoJ2RvbmVFZGl0aW5nJyksXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgICAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJlZGl0b3Iuc3VibWl0KClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgdG9rZW46ICdzdXJ2ZXktYnVpbGRlci1hZGQtcXVlc3Rpb24nLFxuICAgICAgICAgICAgdGV4dDogdCgnYWRkUXVlc3Rpb24nKSxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgIGljb246IHsgbmFtZTogJ2FkZC1vdXRsaW5lJywgc2xvdDogJ3N0YXJ0JyB9LFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChvbkNsaWNrKT1cImFkZFF1ZXN0aW9uKClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAodmFsaWRhdGlvbkVycm9yKCkpIHtcbiAgICAgICAgPHAgY2xhc3M9XCJzdXJ2ZXktYnVpbGRlcl9fZXJyb3JcIj57eyB2YWxpZGF0aW9uRXJyb3IoKSB9fTwvcD5cbiAgICAgIH1cblxuICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICB0b2tlbjogJ3N1cnZleS1idWlsZGVyLXNhdmUnLFxuICAgICAgICAgIHRleHQ6IHQoJ3NhdmUnKSxcbiAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgc3RhdGU6IHNhdmluZygpID8gJ1dPUktJTkcnIDogJ0VOQUJMRUQnLFxuICAgICAgICB9XCJcbiAgICAgICAgKG9uQ2xpY2spPVwic2F2ZSgpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuc3VydmV5LWJ1aWxkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICB9XG4gICAgICAuc3VydmV5LWJ1aWxkZXJfX3F1ZXN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcXVlc3Rpb25zLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fZW1wdHkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12YWwtcmFkaXVzLW1kLCAxMnB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpKTtcbiAgICAgIH1cbiAgICAgIC8qIE1vYmlsZS1maXJzdDogZWwgdGV4dG8gZGUgbGEgcHJlZ3VudGEgeSBzdXMgYWNjaW9uZXMgYXBpbGFkb3MuIEVuIGZpbGFcbiAgICAgICAgIGZpamEsIGNpbmNvIGJvdG9uZXMgbGUgY29tZW4gZWwgYW5jaG8gYWwgdGV4dG8geSBsbyBwYXJ0ZW4gZW4gbXVjaGFzXG4gICAgICAgICBsw61uZWFzIGFuZ29zdGFzIOKAlCBqdXN0byBlbiBlbCB2aWV3cG9ydCBkb25kZSBtw6FzIHNlIHVzYS4gKi9cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LWhlYWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LXRleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1idWlsZGVyX19yb3ctdGV4dCBzdHJvbmcge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IsICMwMDApO1xuICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LXRleHQgc3BhbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICB9XG4gICAgICAuc3VydmV5LWJ1aWxkZXJfX3Jvdy1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LWVkaXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1idWlsZGVyX19lcnJvciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gICAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LWhlYWQge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG4gICAgICAgIC5zdXJ2ZXktYnVpbGRlcl9fcm93LXRleHQge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHM6IFN1cnZleUJ1aWxkZXJNZXRhZGF0YSA9IHt9O1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1cnZleUJ1aWxkZXJTYXZlRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0cyA9IGluamVjdChSZXF1ZXN0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXIgPSBpbmplY3QoUmVxdWVzdEZvcm1CdWlsZGVyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHRpdGxlQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgeyBub25OdWxsYWJsZTogdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgc3VidGl0bGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSBxdWVzdGlvbnMgPSBzaWduYWw8RWRpdGFibGVGaWVsZERlZltdPihbXSk7XG4gIHJlYWRvbmx5IGVkaXRpbmdJZCA9IHNpZ25hbCgnJyk7XG4gIHJlYWRvbmx5IHZhbGlkYXRpb25FcnJvciA9IHNpZ25hbCgnJyk7XG4gIHJlYWRvbmx5IHNhdmluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKE5BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKE5BTUVTUEFDRSwgU1VSVkVZX0JVSUxERVJfSTE4Tik7XG4gICAgfVxuICAgIC8vIEVsIG5vbWJyZSBkZWwgdGlwbyBkZSBjYWRhIHByZWd1bnRhIHNlIG11ZXN0cmEgZW4gbGEgZmlsYSBjb2xhcHNhZGEsIHF1ZVxuICAgIC8vIGRpYnVqYSBlc3RlIGNvbXBvbmVudGUgeSBubyBlbCBlZGl0b3Ig4oCUIHNpIG5hZGllIG1vbnTDsyB1biBlZGl0b3IgdG9kYXbDrWEsXG4gICAgLy8gZWwgbmFtZXNwYWNlIG5vIGV4aXN0aXLDrWEgeSBsYSBmaWxhIG1vc3RyYXLDrWEgbGEgY2xhdmUgY3J1ZGEuXG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKEVESVRPUl9OQU1FU1BBQ0UpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhFRElUT1JfTkFNRVNQQUNFLCBGSUVMRF9TQ0hFTUFfRURJVE9SX0kxOE4pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5wcm9wcy50eXBlSWQpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2ZnID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5yZXF1ZXN0cy5nZXRSZXF1ZXN0VHlwZSh0aGlzLnByb3BzLnR5cGVJZCkpO1xuICAgICAgdGhpcy50aXRsZUNvbnRyb2wuc2V0VmFsdWUoY2ZnLmxhYmVsKTtcbiAgICAgIHRoaXMuc3VidGl0bGVDb250cm9sLnNldFZhbHVlKGNmZy5zdWJ0aXRsZSA/PyAnJyk7XG4gICAgICB0aGlzLnF1ZXN0aW9ucy5zZXQoWy4uLmNmZy5maWVsZFNjaGVtYV0uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpLm1hcChmID0+IHRoaXMucm93RnJvbUZpZWxkKGYpKSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzdXJ2ZXlCdWlsZGVyLmxvYWQnLFxuICAgICAgICBmYWxsYmFja0tleTogJ2xvYWRFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IE5BTUVTUEFDRSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgTkFNRVNQQUNFKTtcbiAgfVxuXG4gIHR5cGVMYWJlbCh0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGB0eXBlJHt0eXBlfWAsIEVESVRPUl9OQU1FU1BBQ0UpO1xuICB9XG5cbiAgcXVlc3Rpb25UeXBlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucXVlc3Rpb25UeXBlcz8ubGVuZ3RoID8gdGhpcy5wcm9wcy5xdWVzdGlvblR5cGVzIDogU1VSVkVZX1FVRVNUSU9OX1RZUEVTO1xuICB9XG5cbiAgZWRpdG9yUHJvcHMocm93OiBFZGl0YWJsZUZpZWxkRGVmKTogRmllbGRTY2hlbWFFZGl0b3JNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHsgbW9kZTogJ2VkaXQnLCBmaWVsZDogcm93LCBhbGxvd2VkVHlwZXM6IHRoaXMucXVlc3Rpb25UeXBlcygpIH07XG4gIH1cblxuICBpY29uQWN0aW9uKFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgaWNvbjogc3RyaW5nLFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjb2xvcjogQ29sb3IgPSAnZGFyaydcbiAgKTogQnV0dG9uTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICB0b2tlbixcbiAgICAgIHRleHQ6ICcnLFxuICAgICAgYXJpYUxhYmVsOiBsYWJlbCxcbiAgICAgIGNvbG9yLFxuICAgICAgZmlsbDogJ2NsZWFyJyxcbiAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgc3RhdGU6IGRpc2FibGVkID8gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICBpY29uOiB7IG5hbWU6IGljb24sIHNsb3Q6ICdpY29uLW9ubHknIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFkZFF1ZXN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvdzogRWRpdGFibGVGaWVsZERlZiA9IHtcbiAgICAgIGlkOiBgcm93LSR7cm93VWlkKyt9YCxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgbGFiZWw6ICcnLFxuICAgICAgcGxhY2Vob2xkZXJUZXh0OiAnJyxcbiAgICAgIGhpbnRUZXh0OiAnJyxcbiAgICAgIHR5cGU6IHRoaXMucXVlc3Rpb25UeXBlcygpWzBdLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfTtcbiAgICB0aGlzLnF1ZXN0aW9ucy51cGRhdGUocm93cyA9PiBbLi4ucm93cywgcm93XSk7XG4gICAgLy8gVW5hIHByZWd1bnRhIHJlY2nDqW4gYWdyZWdhZGEgZXN0w6EgdmFjw61hOiBhYnJpcmxhIGVzIGVsIMO6bmljbyBwYXNvXG4gICAgLy8gc2lndWllbnRlIHBvc2libGUsIHkgZGVqYXJsYSBjZXJyYWRhIGxhIGhhcsOtYSB2ZXIgY29tbyB1bmEgZmlsYSByb3RhLlxuICAgIHRoaXMuZWRpdGluZ0lkLnNldChyb3cuaWQpO1xuICB9XG5cbiAgdG9nZ2xlRWRpdChyb3c6IEVkaXRhYmxlRmllbGREZWYpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRpbmdJZC51cGRhdGUoY3VycmVudCA9PiAoY3VycmVudCA9PT0gcm93LmlkID8gJycgOiByb3cuaWQpKTtcbiAgfVxuXG4gIHJlbW92ZVF1ZXN0aW9uKHJvdzogRWRpdGFibGVGaWVsZERlZik6IHZvaWQge1xuICAgIHRoaXMucXVlc3Rpb25zLnVwZGF0ZShyb3dzID0+IHJvd3MuZmlsdGVyKHIgPT4gci5pZCAhPT0gcm93LmlkKSk7XG4gICAgaWYgKHRoaXMuZWRpdGluZ0lkKCkgPT09IHJvdy5pZCkgdGhpcy5lZGl0aW5nSWQuc2V0KCcnKTtcbiAgfVxuXG4gIGR1cGxpY2F0ZShyb3c6IEVkaXRhYmxlRmllbGREZWYpOiB2b2lkIHtcbiAgICBjb25zdCBjb3B5OiBFZGl0YWJsZUZpZWxkRGVmID0ge1xuICAgICAgLi4ucm93LFxuICAgICAgaWQ6IGByb3ctJHtyb3dVaWQrK31gLFxuICAgICAgLy8gU2luIHRva2VuIHByb3BpbyBsYSBjb3BpYSBwaXNhcsOtYSBsYXMgcmVzcHVlc3RhcyBkZWwgb3JpZ2luYWw6IGRvc1xuICAgICAgLy8gY2FtcG9zIGNvbiBlbCBtaXNtbyBgbmFtZWAgc29uIGVsIG1pc21vIGNhbXBvIHBhcmEgZWwgYmFja2VuZC5cbiAgICAgIG5hbWU6IHRoaXMuZm9ybUJ1aWxkZXIudW5pcXVlRmllbGROYW1lKHJvdy5uYW1lIHx8IHJvdy5sYWJlbCwgdGhpcy5xdWVzdGlvbnMoKSksXG4gICAgICBvcHRpb25zOiByb3cub3B0aW9ucyA/IHJvdy5vcHRpb25zLm1hcChvID0+ICh7IC4uLm8gfSkpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gICAgdGhpcy5xdWVzdGlvbnMudXBkYXRlKHJvd3MgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSByb3dzLmZpbmRJbmRleChyID0+IHIuaWQgPT09IHJvdy5pZCk7XG4gICAgICByZXR1cm4gWy4uLnJvd3Muc2xpY2UoMCwgaW5kZXggKyAxKSwgY29weSwgLi4ucm93cy5zbGljZShpbmRleCArIDEpXTtcbiAgICB9KTtcbiAgfVxuXG4gIG1vdmUoaW5kZXg6IG51bWJlciwgZGVsdGE6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGluZGV4ICsgZGVsdGE7XG4gICAgdGhpcy5xdWVzdGlvbnMudXBkYXRlKHJvd3MgPT4ge1xuICAgICAgaWYgKHRhcmdldCA8IDAgfHwgdGFyZ2V0ID49IHJvd3MubGVuZ3RoKSByZXR1cm4gcm93cztcbiAgICAgIGNvbnN0IG5leHQgPSBbLi4ucm93c107XG4gICAgICBbbmV4dFtpbmRleF0sIG5leHRbdGFyZ2V0XV0gPSBbbmV4dFt0YXJnZXRdLCBuZXh0W2luZGV4XV07XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgbG8gcXVlIHNlIGVzdMOhIGVzY3JpYmllbmRvLCBzaW4gY2VycmFyIGVsIGVkaXRvciBuaSB2YWxpZGFyLlxuICAgKlxuICAgKiBTaW4gZXN0bywgbG8gdGlwZWFkbyBzb2xvIGV4aXN0w61hIGRlbnRybyBkZWwgZWRpdG9yIGhhc3RhIHF1ZSBhbGd1aWVuXG4gICAqIHRvY2FiYSBcIkxpc3RvXCI6IGxhIGZpbGEgc2VndcOtYSBkaWNpZW5kbyBcIlByZWd1bnRhIHNpbiB0ZXh0b1wiIHksIHBlb3IsXG4gICAqIFwiR3VhcmRhciBlbmN1ZXN0YVwiIGZhbGxhYmEgY29uIFwidG9kYXMgbGFzIHByZWd1bnRhcyBuZWNlc2l0YW4gdGV4dG9cIiBzb2JyZVxuICAgKiB1bmEgcHJlZ3VudGEgcXVlIGVuIHBhbnRhbGxhIGNsYXJhbWVudGUgdGVuw61hIHRleHRvLiBUb2NhciBcIkxpc3RvXCIgZXJhIHVuXG4gICAqIHBhc28gb2JsaWdhdG9yaW8gcXVlIG5vIHNlIHZlw61hIHBvciBuaW5nw7puIGxhZG8uXG4gICAqL1xuICBkcmFmdFF1ZXN0aW9uKGZpZWxkOiBFZGl0YWJsZUZpZWxkRGVmKTogdm9pZCB7XG4gICAgdGhpcy5xdWVzdGlvbnMudXBkYXRlKHJvd3MgPT4gcm93cy5tYXAociA9PiAoci5pZCA9PT0gZmllbGQuaWQgPyB7IC4uLnIsIC4uLmZpZWxkIH0gOiByKSkpO1xuICAgIGlmICh0aGlzLnZhbGlkYXRpb25FcnJvcigpKSB0aGlzLnZhbGlkYXRpb25FcnJvci5zZXQoJycpO1xuICB9XG5cbiAgYXBwbHlRdWVzdGlvbihmaWVsZDogRWRpdGFibGVGaWVsZERlZik6IHZvaWQge1xuICAgIHRoaXMucXVlc3Rpb25zLnVwZGF0ZShyb3dzID0+XG4gICAgICByb3dzLm1hcChyID0+XG4gICAgICAgIHIuaWQgPT09IGZpZWxkLmlkXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIC4uLmZpZWxkLFxuICAgICAgICAgICAgICBuYW1lOiB0aGlzLmZvcm1CdWlsZGVyLnVuaXF1ZUZpZWxkTmFtZShcbiAgICAgICAgICAgICAgICBmaWVsZC5uYW1lIHx8IGZpZWxkLmxhYmVsLFxuICAgICAgICAgICAgICAgIHJvd3MuZmlsdGVyKG8gPT4gby5pZCAhPT0gci5pZClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHJcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuZWRpdGluZ0lkLnNldCgnJyk7XG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3Iuc2V0KCcnKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkpIHJldHVybjtcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5zZXQoJycpO1xuXG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLnRpdGxlQ29udHJvbC52YWx1ZS50cmltKCk7XG4gICAgaWYgKCF0aXRsZSkge1xuICAgICAgdGhpcy50aXRsZUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3Iuc2V0KHRoaXMudCgnbm9UaXRsZScpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByb3dzID0gdGhpcy5xdWVzdGlvbnMoKTtcbiAgICBpZiAoIXJvd3MubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5zZXQodGhpcy50KCdub1F1ZXN0aW9ucycpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHJvd3Muc29tZShyID0+ICFyLmxhYmVsLnRyaW0oKSkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnNldCh0aGlzLnQoJ2VtcHR5UXVlc3Rpb25MYWJlbCcpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gRWwgZWRpdG9yIHlhIGxvIHZhbGlkYSBhbCBjZXJyYXIgY2FkYSBwcmVndW50YSwgcGVybyB1bmEgcHJlZ3VudGEgYWJpZXJ0YVxuICAgIC8vIChvIGNhcmdhZGEgZGUgdW5hIGVuY3Vlc3RhIHZpZWphKSBwdWVkZSBsbGVnYXIgYWPDoSBzaW4gb3BjaW9uZXMuXG4gICAgaWYgKHJvd3Muc29tZShyID0+IEZJRUxEX1RZUEVTX1dJVEhfT1BUSU9OUy5pbmNsdWRlcyhyLnR5cGUpICYmICFyLm9wdGlvbnM/Lmxlbmd0aCkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnNldCh0aGlzLnQoJ21pc3NpbmdPcHRpb25zJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2F2aW5nLnNldCh0cnVlKTtcblxuICAgIGNvbnN0IGZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYURlZltdID0gW107XG4gICAgcm93cy5mb3JFYWNoKChyb3csIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5mb3JtQnVpbGRlci51bmlxdWVGaWVsZE5hbWUocm93Lm5hbWUgfHwgcm93LmxhYmVsLCBmaWVsZFNjaGVtYSk7XG4gICAgICBmaWVsZFNjaGVtYS5wdXNoKFxuICAgICAgICB0aGlzLmZvcm1CdWlsZGVyLmNyZWF0ZUZpZWxkU2NoZW1hKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBsYWJlbDogcm93LmxhYmVsLnRyaW0oKSxcbiAgICAgICAgICAgIHR5cGU6IHJvdy50eXBlLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHJvdy5yZXF1aXJlZCxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyVGV4dDogcm93LnBsYWNlaG9sZGVyVGV4dCxcbiAgICAgICAgICAgIGhpbnRUZXh0OiByb3cuaGludFRleHQsXG4gICAgICAgICAgICBvcHRpb25zOiByb3cub3B0aW9ucyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluZGV4XG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0eXBlSWQgPVxuICAgICAgdGhpcy5wcm9wcy50eXBlSWQgPz8gYCR7dGhpcy5wcm9wcy50eXBlUHJlZml4ID8/IERFRkFVTFRfVFlQRV9QUkVGSVh9OiR7dGhpcy5mb3JtQnVpbGRlci50b1Rva2VuKHRpdGxlKX1gO1xuICAgIGNvbnN0IHN1YnRpdGxlID0gdGhpcy5zdWJ0aXRsZUNvbnRyb2wudmFsdWUudHJpbSgpO1xuXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGxhYmVsOiB0aXRsZSxcbiAgICAgIHN1YnRpdGxlLFxuICAgICAgZW50aXR5UmVmOiB0aGlzLnByb3BzLmVudGl0eVJlZixcbiAgICAgIHNraXBSZXZpZXc6IHRydWUsXG4gICAgICBza2lwU3VibWl0dGVySWRlbnRpdHk6IHRydWUsXG4gICAgICBmaWVsZFNjaGVtYSxcbiAgICAgIGFsbG93QW5vbnltb3VzOiB0aGlzLnByb3BzLmFsbG93QW5vbnltb3VzID8/IHRydWUsXG4gICAgICB2aXNpYmlsaXR5OiB0aGlzLnByb3BzLnZpc2liaWxpdHkgPz8gKCdQVUJMSUMnIGFzIGNvbnN0KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2FsbCQgPSB0aGlzLnByb3BzLnR5cGVJZFxuICAgICAgPyB0aGlzLnJlcXVlc3RzLnVwZGF0ZVJlcXVlc3RUeXBlKHRoaXMucHJvcHMudHlwZUlkLCBwYXlsb2FkKVxuICAgICAgOiB0aGlzLnJlcXVlc3RzLmNyZWF0ZVJlcXVlc3RUeXBlKHsgLi4ucGF5bG9hZCwgdHlwZUlkIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR5cGVDb25maWcgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShjYWxsJCk7XG4gICAgICB0aGlzLnNhdmluZy5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5zYXZlZC5lbWl0KHsgdHlwZUNvbmZpZyB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuc2F2aW5nLnNldChmYWxzZSk7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzdXJ2ZXlCdWlsZGVyLnNhdmUnLFxuICAgICAgICBmYWxsYmFja0tleTogJ3NhdmVFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IE5BTUVTUEFDRSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcm93RnJvbUZpZWxkKGY6IEZpZWxkU2NoZW1hRGVmKTogRWRpdGFibGVGaWVsZERlZiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBgcm93LSR7cm93VWlkKyt9YCxcbiAgICAgIG5hbWU6IGYubmFtZSxcbiAgICAgIGxhYmVsOiBmLmxhYmVsID8/ICcnLFxuICAgICAgcGxhY2Vob2xkZXJUZXh0OiBmLnBsYWNlaG9sZGVyVGV4dCA/PyAnJyxcbiAgICAgIGhpbnRUZXh0OiBmLmhpbnRUZXh0ID8/ICcnLFxuICAgICAgdHlwZTogZi50eXBlLFxuICAgICAgcmVxdWlyZWQ6ICEhZi5yZXF1aXJlZCxcbiAgICAgIG9wdGlvbnM6IGYub3B0aW9ucyxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
512
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9zdXJ2ZXktYnVpbGRlci9zdXJ2ZXktYnVpbGRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRXBHLE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixHQUMzQixNQUFNLHNEQUFzRCxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTNGLE9BQU8sRUFJTCxxQkFBcUIsR0FDdEIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTVELE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQztBQUNsQyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDO0FBQzdDLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDO0FBRXJDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQUVmOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBa05ILE1BQU0sT0FBTyxzQkFBc0I7SUF1QmpDO1FBdEJTLFVBQUssR0FBMEIsRUFBRSxDQUFDO1FBQ3hCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUN0RTs7Ozs7V0FLRztRQUNnQixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFL0MsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixhQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDaEQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTdDLGlCQUFZLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsb0JBQWUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RCxjQUFTLEdBQUcsTUFBTSxDQUFxQixFQUFFLENBQUMsQ0FBQztRQUMzQyxjQUFTLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLFdBQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFHOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsMkVBQTJFO1FBQzNFLDRFQUE0RTtRQUM1RSxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLHdCQUF3QixDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQy9CLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVHLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO2dCQUN0QixPQUFPLEVBQUUsb0JBQW9CO2dCQUM3QixXQUFXLEVBQUUsV0FBVztnQkFDeEIsYUFBYSxFQUFFLFNBQVM7YUFDekIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxDQUFDLENBQUMsR0FBVztRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO0lBQzdGLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBcUI7UUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUVELFVBQVUsQ0FDUixLQUFhLEVBQ2IsSUFBWSxFQUNaLEtBQWEsRUFDYixRQUFRLEdBQUcsS0FBSyxFQUNoQixRQUFlLE1BQU07UUFFckIsT0FBTztZQUNMLEtBQUs7WUFDTCxJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUs7WUFDTCxJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPO1lBQ3BFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtTQUN4QyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLEdBQUcsR0FBcUI7WUFDNUIsRUFBRSxFQUFFLE9BQU8sTUFBTSxFQUFFLEVBQUU7WUFDckIsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsRUFBRTtZQUNULGVBQWUsRUFBRSxFQUFFO1lBQ25CLFFBQVEsRUFBRSxFQUFFO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUMsb0VBQW9FO1FBQ3BFLHdFQUF3RTtRQUN4RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFxQjtRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFxQjtRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFxQjtRQUM3QixNQUFNLElBQUksR0FBcUI7WUFDN0IsR0FBRyxHQUFHO1lBQ04sRUFBRSxFQUFFLE9BQU8sTUFBTSxFQUFFLEVBQUU7WUFDckIscUVBQXFFO1lBQ3JFLGlFQUFpRTtZQUNqRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDcEUsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuRCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDL0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixJQUFJLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3JELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN2QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMxRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsYUFBYSxDQUFDLEtBQXVCO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQXVCO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDWCxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ2YsQ0FBQyxDQUFDO2dCQUNFLEdBQUcsS0FBSztnQkFDUixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQ3BDLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssRUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUNoQzthQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FDTixDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ2hELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztZQUN2RCxPQUFPO1FBQ1QsQ0FBQztRQUNELDRFQUE0RTtRQUM1RSxtRUFBbUU7UUFDbkUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNwRixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUNuRCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFxQixFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbEYsV0FBVyxDQUFDLElBQUksQ0FDZCxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUNoQztnQkFDRSxJQUFJO2dCQUNKLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDdkIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO2dCQUNkLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtnQkFDdEIsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlO2dCQUNwQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7Z0JBQ3RCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTzthQUNyQixFQUNELEtBQUssQ0FDTixDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRW5ELDZEQUE2RDtRQUM3RCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDcEUsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QixtRUFBbUU7UUFDbkUseUVBQXlFO1FBQ3pFLDRFQUE0RTtRQUM1RSx1RUFBdUU7UUFDdkUsbUVBQW1FO1FBQ25FLE1BQU0sTUFBTSxHQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksbUJBQW1CLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUU1RyxNQUFNLE9BQU8sR0FBRztZQUNkLEtBQUssRUFBRSxLQUFLO1lBQ1osUUFBUTtZQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFDL0IsVUFBVSxFQUFFLElBQUk7WUFDaEIscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixXQUFXO1lBQ1gsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLElBQUk7WUFDakQsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFLLFFBQWtCO1NBQ3pELENBQUM7UUFFRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO1lBQzdELENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLFdBQVcsRUFBRSxXQUFXO2dCQUN4QixhQUFhLEVBQUUsU0FBUzthQUN6QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxDQUFpQjtRQUNwQyxPQUFPO1lBQ0wsRUFBRSxFQUFFLE9BQU8sTUFBTSxFQUFFLEVBQUU7WUFDckIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQixlQUFlLEVBQUUsQ0FBQyxDQUFDLGVBQWUsSUFBSSxFQUFFO1lBQ3hDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUU7WUFDMUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtZQUN0QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87U0FDbkIsQ0FBQztJQUNKLENBQUM7K0dBcFJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHVKQXRNdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRHVCw2K0NBbkhDLFlBQVksOEJBQ1osbUJBQW1CLCtCQUNuQixrQkFBa0Isd0ZBQ2xCLGVBQWUsMEdBQ2Ysa0JBQWtCLDhFQUNsQiwwQkFBMEI7OzRGQXdNakIsc0JBQXNCO2tCQWpObEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQiwwQkFBMEI7cUJBQzNCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRHVDt3REEyRlEsS0FBSztzQkFBYixLQUFLO2dCQUNhLEtBQUs7c0JBQXZCLE1BQU07Z0JBT1ksS0FBSztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdEZvcm1CdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3JlcXVlc3QtZm9ybS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRTY2hlbWFEZWYgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy90eXBlcyc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEZJRUxEX1RZUEVTX1dJVEhfT1BUSU9OUyxcbiAgRmllbGRTY2hlbWFFZGl0b3JDb21wb25lbnQsXG59IGZyb20gJy4uL2ZpZWxkLXNjaGVtYS1lZGl0b3IvZmllbGQtc2NoZW1hLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRklFTERfU0NIRU1BX0VESVRPUl9JMThOIH0gZnJvbSAnLi4vZmllbGQtc2NoZW1hLWVkaXRvci9maWVsZC1zY2hlbWEtZWRpdG9yLmkxOG4nO1xuaW1wb3J0IHsgRWRpdGFibGVGaWVsZERlZiwgRmllbGRTY2hlbWFFZGl0b3JNZXRhZGF0YSB9IGZyb20gJy4uL2ZpZWxkLXNjaGVtYS1lZGl0b3IvdHlwZXMnO1xuaW1wb3J0IHtcbiAgU3VydmV5QnVpbGRlck1ldGFkYXRhLFxuICBTdXJ2ZXlCdWlsZGVyU2F2ZUV2ZW50LFxuICBTdXJ2ZXlEcmFmdEV2ZW50LFxuICBTVVJWRVlfUVVFU1RJT05fVFlQRVMsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU1VSVkVZX0JVSUxERVJfSTE4TiB9IGZyb20gJy4vc3VydmV5LWJ1aWxkZXIuaTE4bic7XG5cbmNvbnN0IE5BTUVTUEFDRSA9ICdTdXJ2ZXlCdWlsZGVyJztcbmNvbnN0IEVESVRPUl9OQU1FU1BBQ0UgPSAnRmllbGRTY2hlbWFFZGl0b3InO1xuY29uc3QgREVGQVVMVF9UWVBFX1BSRUZJWCA9ICdzdXJ2ZXknO1xuXG5sZXQgcm93VWlkID0gMDtcblxuLyoqXG4gKiB2YWwtc3VydmV5LWJ1aWxkZXJcbiAqXG4gKiBBdXRvcsOtYSBkZSB1bmEgZW5jdWVzdGE6IHTDrXR1bG8sIHN1YnTDrXR1bG8sIHByZWd1bnRhcyDigJQgYXJtYSBvIGFjdHVhbGl6YSB1blxuICogYFJlcXVlc3RUeXBlQ29uZmlnYCBjb24gYFR5cGU6IFwiPHByZWZpeD46PHNsdWc+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
|
|
@@ -33,4 +33,4 @@ export const SURVEY_QUESTION_TYPES = [
|
|
|
33
33
|
'EMAIL',
|
|
34
34
|
'PHONE',
|
|
35
35
|
];
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1idWlsZGVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxjQUFjO0lBQ2QsUUFBUTtJQUNSLE9BQU87SUFDUCxjQUFjO0lBQ2QsUUFBUTtJQUNSLE1BQU07SUFDTixVQUFVO0lBQ1YsUUFBUTtJQUNSLE1BQU07SUFDTixPQUFPO0lBQ1AsT0FBTztDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbnRpdHlSZWYsXG4gIEZpZWxkU2NoZW1hRGVmLFxuICBSZXF1ZXN0VHlwZUNvbmZpZyxcbiAgUmVxdWVzdFZpc2liaWxpdHksXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcblxuLyoqXG4gKiBUaXBvcyBkZSBwcmVndW50YSBxdWUgb2ZyZWNlIHVuYSBlbmN1ZXN0YS5cbiAqXG4gKiBFbCBjb3J0ZSBubyBlcyBlc3TDqXRpY286ICoqdG9kbyB0aXBvIHF1ZSBlc3RhIGxpc3RhIG9mcmV6Y2EsIGB2YWwtc3VydmV5LXJlc3BvbnNlYFxuICogdGllbmUgcXVlIHNhYmVyIHJlbmRlcml6YXJsbyoqLCBvIGxhIGVuY3Vlc3RhIHNlIGd1YXJkYSBiaWVuIHkgc2UgcmVzcG9uZGUgbWFsXG4gKiAodW4gcmF0aW5nIGRpYnVqYWRvIGNvbW8gY2FqYSBkZSB0ZXh0bykuIEFtcGxpYXIgYWPDoSBvYmxpZ2EgYSBhbXBsaWFyIGVsXG4gKiByZW5kZXJlciBlbiBsYSBtaXNtYSBlbnRyZWdhLlxuICpcbiAqIExvcyBzZWlzIHByaW1lcm9zIHNvbiBkZSByZXNwdWVzdGEgY2VycmFkYSDigJQgYGNsb3NlZEFuc3dlclR5cGVzYCBlblxuICogYGJhY2tlbmQvZ28vc2VydmljZXMvcmVxdWVzdC9hZ2dyZWdhdGUuZ29gIGxvcyBjdWVudGEgcG9yIHZhbG9yIGVuIGVsXG4gKiBkYXNoYm9hcmQuIExvcyBzZWlzIMO6bHRpbW9zIHNvbiBhYmllcnRvczogZWwgZGFzaGJvYXJkIGxpc3RhIHN1cyByZXNwdWVzdGFzLlxuICpcbiAqIGBGSUxFYC9gQVRUQUNITUVOVGAgcXVlZGFuIGRlbGliZXJhZGFtZW50ZSBmdWVyYTogdW5hIGVuY3Vlc3RhIGVzIHDDumJsaWNhIHlcbiAqIGFuw7NuaW1hIHBvciBkZWZhdWx0LCB5IGFjZXB0YXIgc3ViaWRhcyBhaMOtIGVzIHN1cGVyZmljaWUgZGUgYWJ1c28gc2luIHVuIGNhc29cbiAqIGRlIHVzbyBxdWUgbG8gcGlkYS5cbiAqXG4gKiBgQ0hFQ0tgIHRhbWJpw6luIHF1ZWTDsyBmdWVyYSwgcG9yIG90cm8gbW90aXZvOiBwYXJhIHF1aWVuIHJlc3BvbmRlIGVyYSBsYSBtaXNtYVxuICogcHJlZ3VudGEgcXVlIGBUT0dHTEVgLiBEb3MgZm9ybWFzIGRlIGVzY3JpYmlyIFwic8OtIG8gbm9cIiBubyBsZSBkYWJhbiB1bmEgb3BjacOzblxuICogYSBxdWllbiBhcm1hIGxhIGVuY3Vlc3RhLCBsZSBkYWJhbiB1bmEgZHVkYS4gRWwgcmVuZGVyZXIgeSBsYSBhZ3JlZ2FjacOzblxuICogc2lndWVuIGVudGVuZGllbmRvIGBDSEVDS2Ag4oCUIHVuYSBlbmN1ZXN0YSB2aWVqYSBxdWUgbG8gdGVuZ2Egc2UgcmVzcG9uZGUgeSBzZVxuICogY3VlbnRhIGlndWFsLlxuICovXG5leHBvcnQgY29uc3QgU1VSVkVZX1FVRVNUSU9OX1RZUEVTID0gW1xuICAnRU1PSklfUkFUSU5HJyxcbiAgJ1NFTEVDVCcsXG4gICdSQURJTycsXG4gICdNVUxUSV9TRUxFQ1QnLFxuICAnVE9HR0xFJyxcbiAgJ1RFWFQnLFxuICAnVEVYVEFSRUEnLFxuICAnTlVNQkVSJyxcbiAgJ0RBVEUnLFxuICAnRU1BSUwnLFxuICAnUEhPTkUnLFxuXTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBRdWVkw7MgZGUgbGEgdjEgZGVsIGJ1aWxkZXIgKEFEUi0wOTIgRmFzZSAyKSwgY3VhbmRvIHVuYSBwcmVndW50YVxuICogZXJhIHNvbG8gbGFiZWwgKyB1bm8gZGUgZG9zIHRpcG9zLiBIb3kgdW5hIHByZWd1bnRhIGVzIHVuIGBFZGl0YWJsZUZpZWxkRGVmYFxuICogY29tcGxldG8g4oCUIHZlciBgdmFsLWZpZWxkLXNjaGVtYS1lZGl0b3JgLiBObyBzZSB1c2EgZW4gbmluZ8O6biBsYWRvOyBzZVxuICogY29uc2VydmEgdW4gY2ljbG8gcGFyYSBubyByb21wZXIgdW4gaW1wb3J0IHBlcmRpZG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VydmV5UXVlc3Rpb25Sb3cge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnVEVYVEFSRUEnIHwgJ0VNT0pJX1JBVElORyc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleUJ1aWxkZXJNZXRhZGF0YSB7XG4gIC8qKiBTaSBzZSBwYXNhLCBlZGl0YSBlc2UgdGlwbyBleGlzdGVudGU7IHNpIG5vLCBjcmVhIHVubyBudWV2by4gKi9cbiAgdHlwZUlkPzogc3RyaW5nO1xuICAvKiogUHJlZmlqbyBkZWwgYFR5cGVgIGRlbCBSZXF1ZXN0VHlwZUNvbmZpZyDigJQgZWwgY29tcG9uZW50ZSBhcm1hIGBcIjxwcmVmaXg+OjxzbHVnPlwiYC4gKi9cbiAgdHlwZVByZWZpeD86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICAvKiogRGVmYXVsdCAnUFVCTElDJyDigJQgZWwgY2FzbyBtw6FzIGNvbcO6bjogbGluayBlbnZpYWRvIGEgZ2VudGUgc2luIGN1ZW50YS4gKi9cbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xuICAvKiogRGVmYXVsdCB0cnVlLiAqL1xuICBhbGxvd0Fub255bW91cz86IGJvb2xlYW47XG4gIC8qKiBBY290YSBlbCBjYXTDoWxvZ28gZGUgYFNVUlZFWV9RVUVTVElPTl9UWVBFU2Agc2kgdW5hIGFwcCBxdWllcmUgb2ZyZWNlciBtZW5vcy4gKi9cbiAgcXVlc3Rpb25UeXBlcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogU2kgZWwgYnVpbGRlciBndWFyZGEgcG9yIHN1IGN1ZW50YSBjb250cmEgYC92Mi9yZXF1ZXN0LXR5cGVzYC5cbiAgICpcbiAgICogRGVmYXVsdCBgdHJ1ZWAgcG9yIGNvbXBhdGliaWxpZGFkLCBwZXJvICoqdW5hIGFwcCBjb24gZW5kcG9pbnQgcHJvcGlvIGRlYmVcbiAgICogcGFzYXIgYGZhbHNlYCoqIHkgZ3VhcmRhciBlbGxhOiBlbCBlbmRwb2ludCBkZSBsYSB2ZXJ0aWNhbCBlcyBlbCBxdWUgdmFsaWRhXG4gICAqIGxhIGVudGlkYWQgZHVlw7FhLCBldml0YSBxdWUgZG9zIGVuY3Vlc3RhcyBkZSBkaXN0aW50byBldmVudG8gY29saXNpb25lbiBlblxuICAgKiBlbCBtaXNtbyBgdHlwZUlkYCwgeSBhdXRvcml6YSBjb24gU1UgcGVybWlzby4gQ29uIGBmYWxzZWAsIGBzYXZlKClgIHZhbGlkYVxuICAgKiB5IGVtaXRlIGBkcmFmdGAgc2luIHRvY2FyIGxhIHJlZC5cbiAgICovXG4gIHBlcnNpc3Q/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleUJ1aWxkZXJTYXZlRXZlbnQge1xuICB0eXBlQ29uZmlnOiBSZXF1ZXN0VHlwZUNvbmZpZztcbn1cblxuLyoqXG4gKiBMbyBxdWUgc2UgZXNjcmliacOzLCBzaW4gcGVyc2lzdGlyLlxuICpcbiAqIEV4aXN0ZSBwb3JxdWUgKiplbCBidWlsZGVyIG5vIHNpZW1wcmUgZGViZSBndWFyZGFyIHBvciBzdSBjdWVudGEqKi4gQ3VhbmRvIGxhXG4gKiBhcHAgdGllbmUgc3UgcHJvcGlvIGVuZHBvaW50IGRlIGRvbWluaW8gKGVsIGRlIGJpbmdvIHZhbGlkYSBlbCBldmVudG8sIGFjb3RhXG4gKiBlbCBgdHlwZUlkYCBwYXJhIHF1ZSBkb3MgZXZlbnRvcyBubyBjb2xpc2lvbmVuIHkgYXV0b3JpemEgY29uIGVsIHBlcm1pc28gZGVcbiAqIGxhIHZlcnRpY2FsIGVuIHZleiBkZSBgYXBwczptYW5hZ2VgKSwgZ3VhcmRhciBkZXNkZSBhY8OhIHNlIHNhbHRhIHRvZG8gZXNvLlxuICpcbiAqIExvcyB0cmVzIGNhbXBvcyBzb24gZXhhY3RhbWVudGUgbG9zIGRlIGBDcmVhdGVFdmVudFN1cnZleVJlcXVlc3RgIGVuXG4gKiBgc2VydmljZXMvYmluZ28vc3VydmV5LmdvYCDigJQgbm8gZXMgY2FzdWFsaWRhZDogZXMgZWwgY29udHJhdG8gcXVlIGxhIGFwcFxuICogbmVjZXNpdGEgcmVlbnZpYXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VydmV5RHJhZnRFdmVudCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHN1YnRpdGxlOiBzdHJpbmc7XG4gIHF1ZXN0aW9uczogRmllbGRTY2hlbWFEZWZbXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { InjectionToken, makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
/** Token de inyección de la configuración de pagos. */
|
|
3
|
+
export const VALTECH_PAYMENTS_CONFIG = new InjectionToken('ValtechPaymentsConfig');
|
|
4
|
+
export const DEFAULT_PAYMENTS_CONFIG = {
|
|
5
|
+
paymentsPrefix: '/v1/payments',
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Provee el cliente de pasarelas de pago.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* providePaymentsGateway({ apiUrl: environment.apiUrl }),
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export function providePaymentsGateway(config) {
|
|
16
|
+
return makeEnvironmentProviders([
|
|
17
|
+
{
|
|
18
|
+
provide: VALTECH_PAYMENTS_CONFIG,
|
|
19
|
+
useValue: { ...DEFAULT_PAYMENTS_CONFIG, ...config },
|
|
20
|
+
},
|
|
21
|
+
]);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9wYXltZW50cy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixjQUFjLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0YsdURBQXVEO0FBQ3ZELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUN2RCx1QkFBdUIsQ0FDeEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFtQztJQUNyRSxjQUFjLEVBQUUsY0FBYztDQUMvQixDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsTUFBNkI7SUFFN0IsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QjtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsUUFBUSxFQUFFLEVBQUUsR0FBRyx1QkFBdUIsRUFBRSxHQUFHLE1BQU0sRUFBRTtTQUNwRDtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgSW5qZWN0aW9uVG9rZW4sIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsdGVjaFBheW1lbnRzQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKiBUb2tlbiBkZSBpbnllY2Npw7NuIGRlIGxhIGNvbmZpZ3VyYWNpw7NuIGRlIHBhZ29zLiAqL1xuZXhwb3J0IGNvbnN0IFZBTFRFQ0hfUEFZTUVOVFNfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPFZhbHRlY2hQYXltZW50c0NvbmZpZz4oXG4gICdWYWx0ZWNoUGF5bWVudHNDb25maWcnLFxuKTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEFZTUVOVFNfQ09ORklHOiBQYXJ0aWFsPFZhbHRlY2hQYXltZW50c0NvbmZpZz4gPSB7XG4gIHBheW1lbnRzUHJlZml4OiAnL3YxL3BheW1lbnRzJyxcbn07XG5cbi8qKlxuICogUHJvdmVlIGVsIGNsaWVudGUgZGUgcGFzYXJlbGFzIGRlIHBhZ28uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHByb3ZpZGVQYXltZW50c0dhdGV3YXkoeyBhcGlVcmw6IGVudmlyb25tZW50LmFwaVVybCB9KSxcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVBheW1lbnRzR2F0ZXdheShcbiAgY29uZmlnOiBWYWx0ZWNoUGF5bWVudHNDb25maWcsXG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFZBTFRFQ0hfUEFZTUVOVFNfQ09ORklHLFxuICAgICAgdXNlVmFsdWU6IHsgLi4uREVGQVVMVF9QQVlNRU5UU19DT05GSUcsIC4uLmNvbmZpZyB9LFxuICAgIH0sXG4gIF0pO1xufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './config';
|
|
3
|
+
export * from './payments-gateway.service';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3BheW1lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vcGF5bWVudHMtZ2F0ZXdheS5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Injectable, inject } from '@angular/core';
|
|
3
|
+
import { VALTECH_PAYMENTS_CONFIG } from './config';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Cliente del onboarding de pasarelas de pago (ADR-028).
|
|
7
|
+
*
|
|
8
|
+
* Conecta la cuenta de UNA ORGANIZACIÓN con una pasarela, para que el dinero
|
|
9
|
+
* le llegue directo. Ese es el punto: si el dinero pasara por una cuenta de
|
|
10
|
+
* Valtech, Valtech sería un PSP regulado por la CMF (ver ADR-028). Por eso
|
|
11
|
+
* todas las operaciones son por `orgId`, y no existe acá un modo "cuenta de la
|
|
12
|
+
* plataforma".
|
|
13
|
+
*
|
|
14
|
+
* Vive en la lib y no en una app porque el flujo es idéntico en todas: Bingo
|
|
15
|
+
* lo usa para que cada colegio cobre sus cartones, y Chesed para que cada
|
|
16
|
+
* refugio reciba aportes. Lo que cambia entre apps es qué se cobra, no cómo se
|
|
17
|
+
* conecta la cuenta.
|
|
18
|
+
*
|
|
19
|
+
* Autenticación: no agrega el Bearer a mano — lo pone el interceptor de
|
|
20
|
+
* `provideValtechAuth`. Errores: no se capturan acá; los maneja la pantalla.
|
|
21
|
+
*/
|
|
22
|
+
export class PaymentsGatewayService {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.http = inject(HttpClient);
|
|
25
|
+
this.config = inject(VALTECH_PAYMENTS_CONFIG, { optional: true });
|
|
26
|
+
}
|
|
27
|
+
get base() {
|
|
28
|
+
const apiUrl = this.config?.apiUrl ?? '';
|
|
29
|
+
const prefix = this.config?.paymentsPrefix ?? '/v1/payments';
|
|
30
|
+
return `${apiUrl}${prefix}`;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Estado de conexión de la organización con una pasarela.
|
|
34
|
+
*
|
|
35
|
+
* Es lo que decide si la app puede ofrecer el cobro: `connected` habilita,
|
|
36
|
+
* `expired` y `revoked` NO. Mostrar un botón de pago con un token revocado
|
|
37
|
+
* lleva al usuario a un cobro que falla después de que ya decidió pagar.
|
|
38
|
+
*/
|
|
39
|
+
getConnectionStatus(orgId, gateway) {
|
|
40
|
+
return this.http.get(`${this.base}/credentials/orgs/${orgId}/${gateway}/connection-status`);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* URL de autorización OAuth, con su `state` CSRF.
|
|
44
|
+
*
|
|
45
|
+
* El caller guarda el `state` antes de redirigir y lo compara al volver: sin
|
|
46
|
+
* eso, cualquiera podría completar la conexión de otra organización.
|
|
47
|
+
*/
|
|
48
|
+
getOAuthAuthorizeURL(orgId, gateway) {
|
|
49
|
+
return this.http.get(`${this.base}/credentials/orgs/${orgId}/${gateway}/oauth/authorize-url`);
|
|
50
|
+
}
|
|
51
|
+
/** Desconecta la credencial de la organización para esa pasarela. */
|
|
52
|
+
disconnect(orgId, gateway) {
|
|
53
|
+
return this.http.delete(`${this.base}/credentials/orgs/${orgId}/${gateway}`);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Guarda una credencial de acceso directo (pasarelas sin OAuth, ej. Khipu).
|
|
57
|
+
* El token es el secreto del cobrador.
|
|
58
|
+
*/
|
|
59
|
+
setCredential(orgId, gateway, accessToken) {
|
|
60
|
+
return this.http.put(`${this.base}/credentials/orgs/${orgId}/${gateway}`, { accessToken });
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaymentsGatewayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
63
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaymentsGatewayService, providedIn: 'root' }); }
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaymentsGatewayService, decorators: [{
|
|
66
|
+
type: Injectable,
|
|
67
|
+
args: [{ providedIn: 'root' }]
|
|
68
|
+
}] });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudHMtZ2F0ZXdheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9wYXltZW50cy9wYXltZW50cy1nYXRld2F5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBRVUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQixXQUFNLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0FrRHRFO0lBaERDLElBQVksSUFBSTtRQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLGNBQWMsSUFBSSxjQUFjLENBQUM7UUFDN0QsT0FBTyxHQUFHLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsbUJBQW1CLENBQUMsS0FBYSxFQUFFLE9BQWU7UUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsSUFBSSxxQkFBcUIsS0FBSyxJQUFJLE9BQU8sb0JBQW9CLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxvQkFBb0IsQ0FBQyxLQUFhLEVBQUUsT0FBZTtRQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxJQUFJLHFCQUFxQixLQUFLLElBQUksT0FBTyxzQkFBc0IsQ0FDeEUsQ0FBQztJQUNKLENBQUM7SUFFRCxxRUFBcUU7SUFDckUsVUFBVSxDQUFDLEtBQWEsRUFBRSxPQUFlO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ3JCLEdBQUcsSUFBSSxDQUFDLElBQUkscUJBQXFCLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FDcEQsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxXQUFtQjtRQUMvRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxJQUFJLHFCQUFxQixLQUFLLElBQUksT0FBTyxFQUFFLEVBQ25ELEVBQUUsV0FBVyxFQUFFLENBQ2hCLENBQUM7SUFDSixDQUFDOytHQW5EVSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQURULE1BQU07OzRGQUNuQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVkFMVEVDSF9QQVlNRU5UU19DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdHVzUmVzcG9uc2UsIE9BdXRoQXV0aG9yaXplVVJMUmVzcG9uc2UgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBDbGllbnRlIGRlbCBvbmJvYXJkaW5nIGRlIHBhc2FyZWxhcyBkZSBwYWdvIChBRFItMDI4KS5cbiAqXG4gKiBDb25lY3RhIGxhIGN1ZW50YSBkZSBVTkEgT1JHQU5JWkFDScOTTiBjb24gdW5hIHBhc2FyZWxhLCBwYXJhIHF1ZSBlbCBkaW5lcm9cbiAqIGxlIGxsZWd1ZSBkaXJlY3RvLiBFc2UgZXMgZWwgcHVudG86IHNpIGVsIGRpbmVybyBwYXNhcmEgcG9yIHVuYSBjdWVudGEgZGVcbiAqIFZhbHRlY2gsIFZhbHRlY2ggc2Vyw61hIHVuIFBTUCByZWd1bGFkbyBwb3IgbGEgQ01GICh2ZXIgQURSLTAyOCkuIFBvciBlc29cbiAqIHRvZGFzIGxhcyBvcGVyYWNpb25lcyBzb24gcG9yIGBvcmdJZGAsIHkgbm8gZXhpc3RlIGFjw6EgdW4gbW9kbyBcImN1ZW50YSBkZSBsYVxuICogcGxhdGFmb3JtYVwiLlxuICpcbiAqIFZpdmUgZW4gbGEgbGliIHkgbm8gZW4gdW5hIGFwcCBwb3JxdWUgZWwgZmx1am8gZXMgaWTDqW50aWNvIGVuIHRvZGFzOiBCaW5nb1xuICogbG8gdXNhIHBhcmEgcXVlIGNhZGEgY29sZWdpbyBjb2JyZSBzdXMgY2FydG9uZXMsIHkgQ2hlc2VkIHBhcmEgcXVlIGNhZGFcbiAqIHJlZnVnaW8gcmVjaWJhIGFwb3J0ZXMuIExvIHF1ZSBjYW1iaWEgZW50cmUgYXBwcyBlcyBxdcOpIHNlIGNvYnJhLCBubyBjw7NtbyBzZVxuICogY29uZWN0YSBsYSBjdWVudGEuXG4gKlxuICogQXV0ZW50aWNhY2nDs246IG5vIGFncmVnYSBlbCBCZWFyZXIgYSBtYW5vIOKAlCBsbyBwb25lIGVsIGludGVyY2VwdG9yIGRlXG4gKiBgcHJvdmlkZVZhbHRlY2hBdXRoYC4gRXJyb3Jlczogbm8gc2UgY2FwdHVyYW4gYWPDoTsgbG9zIG1hbmVqYSBsYSBwYW50YWxsYS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQYXltZW50c0dhdGV3YXlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChWQUxURUNIX1BBWU1FTlRTX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcml2YXRlIGdldCBiYXNlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5jb25maWc/LmFwaVVybCA/PyAnJztcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmNvbmZpZz8ucGF5bWVudHNQcmVmaXggPz8gJy92MS9wYXltZW50cyc7XG4gICAgcmV0dXJuIGAke2FwaVVybH0ke3ByZWZpeH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzdGFkbyBkZSBjb25leGnDs24gZGUgbGEgb3JnYW5pemFjacOzbiBjb24gdW5hIHBhc2FyZWxhLlxuICAgKlxuICAgKiBFcyBsbyBxdWUgZGVjaWRlIHNpIGxhIGFwcCBwdWVkZSBvZnJlY2VyIGVsIGNvYnJvOiBgY29ubmVjdGVkYCBoYWJpbGl0YSxcbiAgICogYGV4cGlyZWRgIHkgYHJldm9rZWRgIE5PLiBNb3N0cmFyIHVuIGJvdMOzbiBkZSBwYWdvIGNvbiB1biB0b2tlbiByZXZvY2Fkb1xuICAgKiBsbGV2YSBhbCB1c3VhcmlvIGEgdW4gY29icm8gcXVlIGZhbGxhIGRlc3B1w6lzIGRlIHF1ZSB5YSBkZWNpZGnDsyBwYWdhci5cbiAgICovXG4gIGdldENvbm5lY3Rpb25TdGF0dXMob3JnSWQ6IHN0cmluZywgZ2F0ZXdheTogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb25uZWN0aW9uU3RhdHVzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb25uZWN0aW9uU3RhdHVzUmVzcG9uc2U+KFxuICAgICAgYCR7dGhpcy5iYXNlfS9jcmVkZW50aWFscy9vcmdzLyR7b3JnSWR9LyR7Z2F0ZXdheX0vY29ubmVjdGlvbi1zdGF0dXNgLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVVJMIGRlIGF1dG9yaXphY2nDs24gT0F1dGgsIGNvbiBzdSBgc3RhdGVgIENTUkYuXG4gICAqXG4gICAqIEVsIGNhbGxlciBndWFyZGEgZWwgYHN0YXRlYCBhbnRlcyBkZSByZWRpcmlnaXIgeSBsbyBjb21wYXJhIGFsIHZvbHZlcjogc2luXG4gICAqIGVzbywgY3VhbHF1aWVyYSBwb2Ryw61hIGNvbXBsZXRhciBsYSBjb25leGnDs24gZGUgb3RyYSBvcmdhbml6YWNpw7NuLlxuICAgKi9cbiAgZ2V0T0F1dGhBdXRob3JpemVVUkwob3JnSWQ6IHN0cmluZywgZ2F0ZXdheTogc3RyaW5nKTogT2JzZXJ2YWJsZTxPQXV0aEF1dGhvcml6ZVVSTFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8T0F1dGhBdXRob3JpemVVUkxSZXNwb25zZT4oXG4gICAgICBgJHt0aGlzLmJhc2V9L2NyZWRlbnRpYWxzL29yZ3MvJHtvcmdJZH0vJHtnYXRld2F5fS9vYXV0aC9hdXRob3JpemUtdXJsYCxcbiAgICApO1xuICB9XG5cbiAgLyoqIERlc2NvbmVjdGEgbGEgY3JlZGVuY2lhbCBkZSBsYSBvcmdhbml6YWNpw7NuIHBhcmEgZXNhIHBhc2FyZWxhLiAqL1xuICBkaXNjb25uZWN0KG9yZ0lkOiBzdHJpbmcsIGdhdGV3YXk6IHN0cmluZyk6IE9ic2VydmFibGU8eyBvcGVyYXRpb25JZDogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx7IG9wZXJhdGlvbklkOiBzdHJpbmcgfT4oXG4gICAgICBgJHt0aGlzLmJhc2V9L2NyZWRlbnRpYWxzL29yZ3MvJHtvcmdJZH0vJHtnYXRld2F5fWAsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgdW5hIGNyZWRlbmNpYWwgZGUgYWNjZXNvIGRpcmVjdG8gKHBhc2FyZWxhcyBzaW4gT0F1dGgsIGVqLiBLaGlwdSkuXG4gICAqIEVsIHRva2VuIGVzIGVsIHNlY3JldG8gZGVsIGNvYnJhZG9yLlxuICAgKi9cbiAgc2V0Q3JlZGVudGlhbChvcmdJZDogc3RyaW5nLCBnYXRld2F5OiBzdHJpbmcsIGFjY2Vzc1Rva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgb3BlcmF0aW9uSWQ6IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8eyBvcGVyYXRpb25JZDogc3RyaW5nIH0+KFxuICAgICAgYCR7dGhpcy5iYXNlfS9jcmVkZW50aWFscy9vcmdzLyR7b3JnSWR9LyR7Z2F0ZXdheX1gLFxuICAgICAgeyBhY2Nlc3NUb2tlbiB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contratos del onboarding de pasarelas de pago (ADR-028).
|
|
3
|
+
*
|
|
4
|
+
* Espejo reducido del backend: solo lo que una app necesita para conectar la
|
|
5
|
+
* cuenta de una organización y saber si puede cobrar.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3BheW1lbnRzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250cmF0b3MgZGVsIG9uYm9hcmRpbmcgZGUgcGFzYXJlbGFzIGRlIHBhZ28gKEFEUi0wMjgpLlxuICpcbiAqIEVzcGVqbyByZWR1Y2lkbyBkZWwgYmFja2VuZDogc29sbyBsbyBxdWUgdW5hIGFwcCBuZWNlc2l0YSBwYXJhIGNvbmVjdGFyIGxhXG4gKiBjdWVudGEgZGUgdW5hIG9yZ2FuaXphY2nDs24geSBzYWJlciBzaSBwdWVkZSBjb2JyYXIuXG4gKi9cblxuLyoqIEVzdGFkbyBkZWwgY2ljbG8gZGUgdmlkYSBkZSB1bmEgY3JlZGVuY2lhbCBPQXV0aC4gKi9cbmV4cG9ydCB0eXBlIE9BdXRoU3RhdHVzID0gJ25ldmVyJyB8ICdjb25uZWN0ZWQnIHwgJ2V4cGlyZWQnIHwgJ3Jldm9rZWQnO1xuXG4vKipcbiAqIFJlc3B1ZXN0YSBkZSBgY29ubmVjdGlvbi1zdGF0dXNgLiBObyBleHBvbmUgZWwgdG9rZW46IHNvbG8gdW4gZW5tYXNjYXJhZG9cbiAqIGluZm9ybWF0aXZvLCBwb3JxdWUgbGEgVUkgbnVuY2EgbmVjZXNpdGEgZWwgc2VjcmV0by5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uU3RhdHVzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBjb25uZWN0ZWQ6IGJvb2xlYW47XG4gIG9hdXRoU3RhdHVzOiBPQXV0aFN0YXR1cztcbiAgY29ubmVjdGVkQXQ/OiBzdHJpbmc7XG4gIG1hc2tlZFRva2VuPzogc3RyaW5nO1xufVxuXG4vKiogUmVzcHVlc3RhIGRlIGBvYXV0aC9hdXRob3JpemUtdXJsYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhBdXRob3JpemVVUkxSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGF1dGhvcml6ZVVybDogc3RyaW5nO1xuICAvKiogQ1NSRi4gRWwgY2FsbGVyIGxvIGd1YXJkYSBhbnRlcyBkZSByZWRpcmlnaXIgeSBsbyBjb21wYXJhIGFsIHZvbHZlci4gKi9cbiAgc3RhdGU6IHN0cmluZztcbn1cblxuLyoqIENvbmZpZ3VyYWNpw7NuIGRlbCBjbGllbnRlIGRlIHBhZ29zLiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWx0ZWNoUGF5bWVudHNDb25maWcge1xuICAvKiogQmFzZSBkZWwgYmFja2VuZCwgc2luIGJhcnJhIGZpbmFsIChlai4gYGh0dHBzOi8vYXBpLWRldi5teXZhbHRlY2guY29tYCkuICovXG4gIGFwaVVybDogc3RyaW5nO1xuICAvKiogUHJlZmlqbyBkZSBsYSBBUEkgZGUgcGFnb3MuIERlZmF1bHQgYC92MS9wYXltZW50c2AuICovXG4gIHBheW1lbnRzUHJlZml4Pzogc3RyaW5nO1xufVxuIl19
|
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.990';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45OTAnO1xuIl19
|