@ardium-ui/ui 3.3.0-alpha.1 → 3.3.0-alpha.4
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/_internal/focusable-component.mjs +7 -5
- package/esm2022/lib/_internal/form-field-component.mjs +5 -3
- package/esm2022/lib/_internal/selectable-list-component.mjs +6 -6
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/form-field/form-field.component.mjs +3 -4
- package/esm2022/lib/form-field/horizontal-form-field.component.mjs +3 -4
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +12 -7
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +14 -4
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +23 -11
- package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +3 -3
- package/esm2022/lib/inputs/input/input.component.mjs +3 -3
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +3 -3
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +3 -3
- package/esm2022/lib/segment/segment.component.mjs +3 -3
- package/esm2022/lib/select/select.component.mjs +3 -3
- package/fesm2022/ardium-ui-ui.mjs +81 -52
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/focusable-component.d.ts +2 -1
- package/lib/_internal/form-field-component.d.ts +2 -1
- package/lib/form-field/form-field.component.d.ts +0 -1
- package/lib/form-field/horizontal-form-field.component.d.ts +0 -1
- package/lib/form-field-frame/form-field-frame.component.d.ts +3 -2
- package/lib/inputs/digit-input/digit-input.component.d.ts +5 -2
- package/lib/inputs/digit-input/digit-input.utils.d.ts +1 -0
- package/package.json +1 -1
- package/prebuilt-themes/default/chips.css.map +1 -1
- package/prebuilt-themes/default/form-field-frame.css +10 -4
- package/prebuilt-themes/default/form-field-frame.css.map +1 -1
- package/prebuilt-themes/default/form-field.css +12 -0
- package/prebuilt-themes/default/form-field.css.map +1 -1
- package/prebuilt-themes/default/inputs/digit-input.css +9 -3
- package/prebuilt-themes/default/inputs/digit-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/file-input.css +0 -5
- package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/input.css +0 -5
- package/prebuilt-themes/default/inputs/input.css.map +1 -1
- package/prebuilt-themes/default/inputs/number-input.css +6 -3
- package/prebuilt-themes/default/inputs/number-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/simple-input.css +0 -5
- package/prebuilt-themes/default/inputs/simple-input.css.map +1 -1
- package/prebuilt-themes/default/segment.css +6 -3
- package/prebuilt-themes/default/segment.css.map +1 -1
- package/themes/default/_mixins.scss +6 -4
- package/themes/default/form-field-frame.scss +5 -1
- package/themes/default/form-field.scss +13 -0
- package/themes/default/inputs/digit-input.scss +5 -0
- package/themes/default/inputs/file-input.scss +0 -6
- package/themes/default/inputs/input.scss +1 -7
- package/themes/default/inputs/simple-input.scss +1 -8
|
@@ -10,8 +10,7 @@ export class ArdiumFormFieldFrameComponent extends _FocusableComponentBase {
|
|
|
10
10
|
constructor(defaults) {
|
|
11
11
|
super(defaults);
|
|
12
12
|
this.hasError = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
13
|
-
|
|
14
|
-
this.isFocused = false;
|
|
13
|
+
this.isSuccess = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
15
14
|
//! appearance
|
|
16
15
|
/**
|
|
17
16
|
* The appearance of the component, aka the styling.
|
|
@@ -30,7 +29,8 @@ export class ArdiumFormFieldFrameComponent extends _FocusableComponentBase {
|
|
|
30
29
|
`ard-variant-${this.variant()}`,
|
|
31
30
|
this.compact() ? 'ard-compact' : '',
|
|
32
31
|
this.hasError() ? 'ard-has-error' : '',
|
|
33
|
-
this.
|
|
32
|
+
this.isSuccess() ? 'ard-is-success' : '',
|
|
33
|
+
this.isFocused() ? 'ard-focused' : 'ard-unfocused',
|
|
34
34
|
].join(' '));
|
|
35
35
|
//! prefix & suffix
|
|
36
36
|
this.prefixTemplateInput = input(undefined, { alias: 'prefixTemplate' });
|
|
@@ -38,8 +38,12 @@ export class ArdiumFormFieldFrameComponent extends _FocusableComponentBase {
|
|
|
38
38
|
this.prefixTemplate = contentChild(ArdFormFieldPrefixTemplateDirective);
|
|
39
39
|
this.suffixTemplate = contentChild(ArdFormFieldSuffixTemplateDirective);
|
|
40
40
|
}
|
|
41
|
+
//! focused state
|
|
42
|
+
set _setIsFocused(v) {
|
|
43
|
+
this.isFocused.set(v);
|
|
44
|
+
}
|
|
41
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldFrameComponent, deps: [{ token: ARD_FORM_FIELD_FRAME_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: { hasError: { classPropertyName: "hasError", publicName: "hasError", isSignal: true, isRequired: false, transformFunction: null },
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: { hasError: { classPropertyName: "hasError", publicName: "hasError", isSignal: true, isRequired: false, transformFunction: null }, isSuccess: { classPropertyName: "isSuccess", publicName: "isSuccess", isSignal: true, isRequired: false, transformFunction: null }, _setIsFocused: { classPropertyName: "_setIsFocused", publicName: "isFocused", isSignal: false, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, prefixTemplateInput: { classPropertyName: "prefixTemplateInput", publicName: "prefixTemplate", isSignal: true, isRequired: false, transformFunction: null }, suffixTemplateInput: { classPropertyName: "suffixTemplateInput", publicName: "suffixTemplate", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdFormFieldPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdFormFieldSuffixTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ard-form-field-frame\"\n [ngClass]=\"ngClasses()\"\n>\n <div class=\"ard-form-field-overlay\"></div>\n @if (prefixTemplateInput() ?? prefixTemplate()) {\n <div class=\"ard-form-field-prefix-container\">\n <ng-template [ngTemplateOutlet]=\"prefixTemplateInput() ?? prefixTemplate()?.template ?? null\"></ng-template>\n </div>\n }\n <div class=\"ard-form-field-content-container\">\n <ng-content></ng-content>\n </div>\n @if (suffixTemplateInput() ?? suffixTemplate()) {\n <div class=\"ard-form-field-suffix-container\">\n <ng-template [ngTemplateOutlet]=\"suffixTemplateInput() ?? suffixTemplate()?.template ?? null\"></ng-template>\n </div>\n }\n</div>\n", styles: [".ard-form-field-frame{position:relative}.ard-form-field-overlay{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
43
47
|
}
|
|
44
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldFrameComponent, decorators: [{
|
|
45
49
|
type: Component,
|
|
@@ -47,7 +51,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
47
51
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
48
52
|
type: Inject,
|
|
49
53
|
args: [ARD_FORM_FIELD_FRAME_DEFAULTS]
|
|
50
|
-
}] }], propDecorators: {
|
|
51
|
-
type: Input
|
|
54
|
+
}] }], propDecorators: { _setIsFocused: [{
|
|
55
|
+
type: Input,
|
|
56
|
+
args: [{ alias: 'isFocused' }]
|
|
52
57
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1mcmFtZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQtZnJhbWUvZm9ybS1maWVsZC1mcmFtZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQtZnJhbWUvZm9ybS1maWVsZC1mcmFtZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUVMLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsWUFBWSxFQUNaLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRixPQUFPLEVBQUUsNkJBQTZCLEVBQTZCLE1BQU0sNkJBQTZCLENBQUM7QUFDdkcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQVN6SCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQXVCO0lBRXhFLFlBQW1ELFFBQW1DO1FBQ3BGLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUdULGFBQVEsR0FBRyxLQUFLLENBQWUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLGNBQVMsR0FBRyxLQUFLLENBQWUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBUTlGLGNBQWM7UUFDZDs7V0FFRztRQUNNLGVBQVUsR0FBRyxLQUFLLENBQXdCLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25GOztXQUVHO1FBQ00sWUFBTyxHQUFHLEtBQUssQ0FBcUIsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekU7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFlLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVuRixjQUFTLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRSxDQUN6QztZQUNFLGtCQUFrQixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDckMsZUFBZSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZTtTQUNuRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDWixDQUFDO1FBRUYsbUJBQW1CO1FBQ1Ysd0JBQW1CLEdBQUcsS0FBSyxDQUE2QixTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ2hHLHdCQUFtQixHQUFHLEtBQUssQ0FBNkIsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUNoRyxtQkFBYyxHQUFHLFlBQVksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ25FLG1CQUFjLEdBQUcsWUFBWSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUF6QzVFLENBQUM7SUFLRCxpQkFBaUI7SUFDakIsSUFDSSxhQUFhLENBQUMsQ0FBVTtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDOytHQWJVLDZCQUE2QixrQkFFcEIsNkJBQTZCO21HQUZ0Qyw2QkFBNkIsbXNDQTRDRCxtQ0FBbUMsaUdBQ25DLG1DQUFtQyx1RkN0RTVFLGlzQkFtQkE7OzRGRE1hLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDRSxzQkFBc0IsaUJBR2pCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQUlsQyxNQUFNOzJCQUFDLDZCQUE2Qjt5Q0FTN0MsYUFBYTtzQkFEaEIsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgY29tcHV0ZWQsXHJcbiAgY29udGVudENoaWxkLFxyXG4gIGlucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX2ludGVybmFsL2ZvY3VzYWJsZS1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBBUkRfRk9STV9GSUVMRF9GUkFNRV9ERUZBVUxUUywgQXJkRm9ybUZpZWxkRnJhbWVEZWZhdWx0cyB9IGZyb20gJy4vZm9ybS1maWVsZC1mcmFtZS5kZWZhdWx0cyc7XHJcbmltcG9ydCB7IEFyZEZvcm1GaWVsZFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLCBBcmRGb3JtRmllbGRTdWZmaXhUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1maWVsZC1mcmFtZS5kaXJlY3RpdmVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWZvcm0tZmllbGQtZnJhbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLWZyYW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLWZyYW1lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUZvcm1GaWVsZEZyYW1lQ29tcG9uZW50IGV4dGVuZHMgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2Uge1xyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRGb3JtRmllbGRGcmFtZURlZmF1bHRzO1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVJEX0ZPUk1fRklFTERfRlJBTUVfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmRGb3JtRmllbGRGcmFtZURlZmF1bHRzKSB7XHJcbiAgICBzdXBlcihkZWZhdWx0cyk7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBoYXNFcnJvciA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBpc1N1Y2Nlc3MgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIC8vISBmb2N1c2VkIHN0YXRlXHJcbiAgQElucHV0KHsgYWxpYXM6ICdpc0ZvY3VzZWQnIH0pXHJcbiAgc2V0IF9zZXRJc0ZvY3VzZWQodjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQuc2V0KHYpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICAvKipcclxuICAgKiBUaGUgYXBwZWFyYW5jZSBvZiB0aGUgY29tcG9uZW50LCBha2EgdGhlIHN0eWxpbmcuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IGlucHV0PEZvcm1FbGVtZW50QXBwZWFyYW5jZT4oRm9ybUVsZW1lbnRBcHBlYXJhbmNlLk91dGxpbmVkKTtcclxuICAvKipcclxuICAgKiBUaGUgdmFyaWFudCBvZiB0aGUgY29tcG9uZW50LCBha2EgdGhlIHNoYXBlLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDxGb3JtRWxlbWVudFZhcmlhbnQ+KEZvcm1FbGVtZW50VmFyaWFudC5Sb3VuZGVkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0byB1c2UgdGhlIGNvbXBhY3Qgc3R5bGluZyBvciBub3QuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PlxyXG4gICAgW1xyXG4gICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2UoKX1gLFxyXG4gICAgICBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLFxyXG4gICAgICB0aGlzLmNvbXBhY3QoKSA/ICdhcmQtY29tcGFjdCcgOiAnJyxcclxuICAgICAgdGhpcy5oYXNFcnJvcigpID8gJ2FyZC1oYXMtZXJyb3InIDogJycsXHJcbiAgICAgIHRoaXMuaXNTdWNjZXNzKCkgPyAnYXJkLWlzLXN1Y2Nlc3MnIDogJycsXHJcbiAgICAgIHRoaXMuaXNGb2N1c2VkKCkgPyAnYXJkLWZvY3VzZWQnIDogJ2FyZC11bmZvY3VzZWQnLFxyXG4gICAgXS5qb2luKCcgJylcclxuICApO1xyXG5cclxuICAvLyEgcHJlZml4ICYgc3VmZml4XHJcbiAgcmVhZG9ubHkgcHJlZml4VGVtcGxhdGVJbnB1dCA9IGlucHV0PE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+Pih1bmRlZmluZWQsIHsgYWxpYXM6ICdwcmVmaXhUZW1wbGF0ZScgfSk7XHJcbiAgcmVhZG9ubHkgc3VmZml4VGVtcGxhdGVJbnB1dCA9IGlucHV0PE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+Pih1bmRlZmluZWQsIHsgYWxpYXM6ICdzdWZmaXhUZW1wbGF0ZScgfSk7XHJcbiAgcmVhZG9ubHkgcHJlZml4VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkRm9ybUZpZWxkUHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZEZvcm1GaWVsZFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlKTtcclxufVxyXG4iLCI8ZGl2XG4gIGNsYXNzPVwiYXJkLWZvcm0tZmllbGQtZnJhbWVcIlxuICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJhcmQtZm9ybS1maWVsZC1vdmVybGF5XCI+PC9kaXY+XG4gIEBpZiAocHJlZml4VGVtcGxhdGVJbnB1dCgpID8/IHByZWZpeFRlbXBsYXRlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGQtcHJlZml4LWNvbnRhaW5lclwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByZWZpeFRlbXBsYXRlSW5wdXQoKSA/PyBwcmVmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZSA/PyBudWxsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGQtY29udGVudC1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICBAaWYgKHN1ZmZpeFRlbXBsYXRlSW5wdXQoKSA/PyBzdWZmaXhUZW1wbGF0ZSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkLXN1ZmZpeC1jb250YWluZXJcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzdWZmaXhUZW1wbGF0ZUlucHV0KCkgPz8gc3VmZml4VGVtcGxhdGUoKT8udGVtcGxhdGUgPz8gbnVsbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -36,6 +36,7 @@ export class ArdiumDigitInputComponent extends _FormFieldComponentBase {
|
|
|
36
36
|
this._oldConfigArrayDataLength = this.configArrayData().length;
|
|
37
37
|
this._emitChange();
|
|
38
38
|
});
|
|
39
|
+
this._wasViewInit = false;
|
|
39
40
|
//! value two-way binding
|
|
40
41
|
this.outputAsString = input(this._DEFAULTS.outputAsString, { transform: v => coerceBooleanProperty(v) });
|
|
41
42
|
this.outputControlValueAccessorOnFinish = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
@@ -58,13 +59,22 @@ export class ArdiumDigitInputComponent extends _FormFieldComponentBase {
|
|
|
58
59
|
isInputEmpty(index) {
|
|
59
60
|
return !this.model.isDefinedAtIndex(index);
|
|
60
61
|
}
|
|
61
|
-
//! control value accessor's write value implementation
|
|
62
62
|
writeValue(v) {
|
|
63
|
+
if (!this._wasViewInit) {
|
|
64
|
+
this._valueBeforeViewInit = v;
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
63
67
|
this._writeValue(v);
|
|
64
68
|
}
|
|
65
69
|
_writeValue(v) {
|
|
66
70
|
return this.model.writeValue(v);
|
|
67
71
|
}
|
|
72
|
+
ngAfterViewInit() {
|
|
73
|
+
this._wasViewInit = true;
|
|
74
|
+
if (this._valueBeforeViewInit) {
|
|
75
|
+
this._writeValue(this._valueBeforeViewInit);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
68
78
|
set value(v) {
|
|
69
79
|
this.writeValue(v);
|
|
70
80
|
}
|
|
@@ -163,7 +173,7 @@ export class ArdiumDigitInputComponent extends _FormFieldComponentBase {
|
|
|
163
173
|
provide: _FormFieldComponentBase,
|
|
164
174
|
useExisting: ArdiumDigitInputComponent,
|
|
165
175
|
},
|
|
166
|
-
], viewQueries: [{ propertyName: "inputs", predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-digit-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-error]=\"hasError()\"\r\n>\r\n @for (data of configArrayData(); track $index) {\r\n <div\r\n class=\"ard-digit-input__item\"\r\n [class.ard-digit-input__item-with-input]=\"data.type === 'input'\"\r\n >\r\n @if (data.type === 'input') {\r\n <input\r\n #input\r\n #focusableElement\r\n class=\"ard-digit-input__input\"\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [readonly]=\"data.readonly\"\r\n [placeholder]=\"data.placeholder\"\r\n [class.ard-digit-input__input-readonly]=\"data.readonly\"\r\n [class.ard-digit-input__input-empty]=\"isInputEmpty(data.index!)\"\r\n (paste)=\"onPaste($event, data.index!)\"\r\n (input)=\"onInput($event, data.index!)\"\r\n (focus)=\"onFocusMaster($event, data.index!)\"\r\n (blur)=\"onBlurMaster($event, data.index!)\"\r\n (keydown)=\"onKeydown($event, data.index!)\"\r\n />\r\n } @else {\r\n <div class=\"ard-digit-input__static\">\r\n {{ data.char }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
176
|
+
], viewQueries: [{ propertyName: "inputs", predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-digit-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-error]=\"hasError()\"\r\n [class.ard-is-success]=\"isSuccess()\"\r\n>\r\n @for (data of configArrayData(); track $index) {\r\n <div\r\n class=\"ard-digit-input__item\"\r\n [class.ard-digit-input__item-with-input]=\"data.type === 'input'\"\r\n >\r\n @if (data.type === 'input') {\r\n <input\r\n #input\r\n #focusableElement\r\n class=\"ard-digit-input__input\"\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [readonly]=\"data.readonly\"\r\n [placeholder]=\"data.placeholder\"\r\n [class.ard-digit-input__input-readonly]=\"data.readonly\"\r\n [class.ard-digit-input__input-empty]=\"isInputEmpty(data.index!)\"\r\n (paste)=\"onPaste($event, data.index!)\"\r\n (input)=\"onInput($event, data.index!)\"\r\n (focus)=\"onFocusMaster($event, data.index!)\"\r\n (blur)=\"onBlurMaster($event, data.index!)\"\r\n (keydown)=\"onKeydown($event, data.index!)\"\r\n />\r\n } @else {\r\n <div class=\"ard-digit-input__static\">\r\n {{ data.char }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
167
177
|
}
|
|
168
178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumDigitInputComponent, decorators: [{
|
|
169
179
|
type: Component,
|
|
@@ -177,11 +187,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
177
187
|
provide: _FormFieldComponentBase,
|
|
178
188
|
useExisting: ArdiumDigitInputComponent,
|
|
179
189
|
},
|
|
180
|
-
], template: "<div\r\n class=\"ard-digit-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-error]=\"hasError()\"\r\n>\r\n @for (data of configArrayData(); track $index) {\r\n <div\r\n class=\"ard-digit-input__item\"\r\n [class.ard-digit-input__item-with-input]=\"data.type === 'input'\"\r\n >\r\n @if (data.type === 'input') {\r\n <input\r\n #input\r\n #focusableElement\r\n class=\"ard-digit-input__input\"\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [readonly]=\"data.readonly\"\r\n [placeholder]=\"data.placeholder\"\r\n [class.ard-digit-input__input-readonly]=\"data.readonly\"\r\n [class.ard-digit-input__input-empty]=\"isInputEmpty(data.index!)\"\r\n (paste)=\"onPaste($event, data.index!)\"\r\n (input)=\"onInput($event, data.index!)\"\r\n (focus)=\"onFocusMaster($event, data.index!)\"\r\n (blur)=\"onBlurMaster($event, data.index!)\"\r\n (keydown)=\"onKeydown($event, data.index!)\"\r\n />\r\n } @else {\r\n <div class=\"ard-digit-input__static\">\r\n {{ data.char }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n" }]
|
|
190
|
+
], template: "<div\r\n class=\"ard-digit-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-error]=\"hasError()\"\r\n [class.ard-is-success]=\"isSuccess()\"\r\n>\r\n @for (data of configArrayData(); track $index) {\r\n <div\r\n class=\"ard-digit-input__item\"\r\n [class.ard-digit-input__item-with-input]=\"data.type === 'input'\"\r\n >\r\n @if (data.type === 'input') {\r\n <input\r\n #input\r\n #focusableElement\r\n class=\"ard-digit-input__input\"\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [readonly]=\"data.readonly\"\r\n [placeholder]=\"data.placeholder\"\r\n [class.ard-digit-input__input-readonly]=\"data.readonly\"\r\n [class.ard-digit-input__input-empty]=\"isInputEmpty(data.index!)\"\r\n (paste)=\"onPaste($event, data.index!)\"\r\n (input)=\"onInput($event, data.index!)\"\r\n (focus)=\"onFocusMaster($event, data.index!)\"\r\n (blur)=\"onBlurMaster($event, data.index!)\"\r\n (keydown)=\"onKeydown($event, data.index!)\"\r\n />\r\n } @else {\r\n <div class=\"ard-digit-input__static\">\r\n {{ data.char }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n" }]
|
|
181
191
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
182
192
|
type: Inject,
|
|
183
193
|
args: [ARD_DIGIT_INPUT_DEFAULTS]
|
|
184
194
|
}] }], propDecorators: { value: [{
|
|
185
195
|
type: Input
|
|
186
196
|
}] } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvZGlnaXQtaW5wdXQvZGlnaXQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvZGlnaXQtaW5wdXQvZGlnaXQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFFTCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBeUIsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQXNCdEQsTUFBTSxPQUFPLHlCQUNYLFNBQVEsdUJBQXVCO0lBSS9CLFlBQThDLFFBQStCO1FBQzNFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUdsQixjQUFjO1FBQ0wsV0FBTSxHQUFHLFlBQVksQ0FBK0IsT0FBTyxDQUFDLENBQUM7UUFFdEUsY0FBYztRQUNHLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRCxjQUFjO1FBQ0wsZUFBVSxHQUFHLEtBQUssQ0FBd0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMs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NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxXQUFXLDJCQUEyQjt5QkFDdkM7cUJBQ0Y7OzBCQU9ZLE1BQU07MkJBQUMsd0JBQXdCO3lDQStEeEMsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGVmZmVjdCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIGlucHV0LFxyXG4gIG91dHB1dCxcclxuICB2aWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBfRm9ybUZpZWxkQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9mb3JtLWZpZWxkLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XHJcbmltcG9ydCB7IEFSRF9ESUdJVF9JTlBVVF9ERUZBVUxUUywgQXJkRGlnaXRJbnB1dERlZmF1bHRzIH0gZnJvbSAnLi9kaWdpdC1pbnB1dC5kZWZhdWx0cyc7XHJcbmltcG9ydCB7IERpZ2l0SW5wdXRNb2RlbCB9IGZyb20gJy4vZGlnaXQtaW5wdXQubW9kZWwnO1xyXG5pbXBvcnQgeyBEaWdpdElucHV0Q29uZmlnLCBEaWdpdElucHV0U2hhcGUgfSBmcm9tICcuL2RpZ2l0LWlucHV0LnR5cGVzJztcclxuaW1wb3J0IHsgRGlnaXRJbnB1dE1vZGVsSG9zdCB9IGZyb20gJy4vZGlnaXQtaW5wdXQudXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtZGlnaXQtaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWdpdC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlnaXQtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtRGlnaXRJbnB1dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogX0Zvcm1GaWVsZENvbXBvbmVudEJhc2UsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBBcmRpdW1EaWdpdElucHV0Q29tcG9uZW50LFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtRGlnaXRJbnB1dENvbXBvbmVudFxyXG4gIGV4dGVuZHMgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2VcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBEaWdpdElucHV0TW9kZWxIb3N0LCBPbkluaXRcclxue1xyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmREaWdpdElucHV0RGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfRElHSVRfSU5QVVRfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmREaWdpdElucHV0RGVmYXVsdHMpIHtcclxuICAgIHN1cGVyKGRlZmF1bHRzKTtcclxuICB9XHJcblxyXG4gIC8vISBpbnB1dHMgcmVmXHJcbiAgcmVhZG9ubHkgaW5wdXRzID0gdmlld0NoaWxkcmVuPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KCdpbnB1dCcpO1xyXG5cclxuICAvLyEgZGF0YSBtb2RlbFxyXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9kZWwgPSBuZXcgRGlnaXRJbnB1dE1vZGVsKHRoaXMpO1xyXG5cclxuICAvLyEgYXBwZWFyYW5jZVxyXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxGb3JtRWxlbWVudEFwcGVhcmFuY2U+KHRoaXMuX0RFRkFVTFRTLmFwcGVhcmFuY2UpO1xyXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDxGb3JtRWxlbWVudFZhcmlhbnQ+KHRoaXMuX0RFRkFVTFRTLnZhcmlhbnQpO1xyXG4gIHJlYWRvbmx5IHNoYXBlID0gaW5wdXQ8RGlnaXRJbnB1dFNoYXBlPih0aGlzLl9ERUZBVUxUUy5zaGFwZSk7XHJcblxyXG4gIHJlYWRvbmx5IGNvbXBhY3QgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmNvbXBhY3QsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQoKCk6IHN0cmluZyA9PlxyXG4gICAgW1xyXG4gICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2UoKX1gLFxyXG4gICAgICBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLFxyXG4gICAgICBgYXJkLXNoYXBlLSR7dGhpcy5zaGFwZSgpfWAsXHJcbiAgICAgIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnLFxyXG4gICAgXS5qb2luKCcgJylcclxuICApO1xyXG5cclxuICAvLyEgbW9kZWwgYWNjZXNzIHBvaW50c1xyXG4gIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPHZvaWQsIERpZ2l0SW5wdXRDb25maWc+KHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiB0aGlzLm1vZGVsLnNldENvbmZpZyh2KSxcclxuICB9KTtcclxuICByZWFkb25seSBjb25maWdBcnJheURhdGEgPSB0aGlzLm1vZGVsLmNvbmZpZ0FycmF5RGF0YTtcclxuXHJcbiAgcHJpdmF0ZSBfb2xkQ29uZmlnQXJyYXlEYXRhTGVuZ3RoID0gLTE7XHJcbiAgcmVhZG9ubHkgY29uZmlnQXJyYXlEYXRhRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcclxuICAgIGlmICh0aGlzLmNvbmZpZ0FycmF5RGF0YSgpLmxlbmd0aCA9PT0gdGhpcy5fb2xkQ29uZmlnQXJyYXlEYXRhTGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fb2xkQ29uZmlnQXJyYXlEYXRhTGVuZ3RoID0gdGhpcy5jb25maWdBcnJheURhdGEoKS5sZW5ndGg7XHJcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XHJcbiAgfSk7XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX29sZENvbmZpZ0FycmF5RGF0YUxlbmd0aCA9IHRoaXMuY29uZmlnQXJyYXlEYXRhKCkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgaXNJbnB1dEVtcHR5KGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5tb2RlbC5pc0RlZmluZWRBdEluZGV4KGluZGV4KTtcclxuICB9XHJcblxyXG4gIC8vISBjb250cm9sIHZhbHVlIGFjY2Vzc29yJ3Mgd3JpdGUgdmFsdWUgaW1wbGVtZW50YXRpb25cclxuICB3cml0ZVZhbHVlKHY6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fd3JpdGVWYWx1ZSh2KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfd3JpdGVWYWx1ZSh2OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG5cclxuICAvLyEgdmFsdWUgdHdvLXdheSBiaW5kaW5nXHJcbiAgcmVhZG9ubHkgb3V0cHV0QXNTdHJpbmcgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLm91dHB1dEFzU3RyaW5nLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIHJlYWRvbmx5IG91dHB1dENvbnRyb2xWYWx1ZUFjY2Vzc29yT25GaW5pc2ggPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKHY6IHN0cmluZyB8IChzdHJpbmcgfCBudWxsKVtdIHwgbnVsbCkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHYpO1xyXG4gIH1cclxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxzdHJpbmcgfCAoc3RyaW5nIHwgbnVsbClbXSB8IG51bGw+KCk7XHJcblxyXG4gIHJlYWRvbmx5IHN0cmluZ1ZhbHVlID0gdGhpcy5tb2RlbC5zdHJpbmdWYWx1ZTtcclxuXHJcbiAgcmVhZG9ubHkgZW1pdHRhYmxlVmFsdWUgPSBjb21wdXRlZCgoKTogc3RyaW5nIHwgKHN0cmluZyB8IG51bGwpW10gfCBudWxsID0+IHtcclxuICAgIGlmICh0aGlzLm91dHB1dEFzU3RyaW5nKCkpIHJldHVybiB0aGlzLm1vZGVsLnN0cmluZ1ZhbHVlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbC52YWx1ZSgpO1xyXG4gIH0pO1xyXG5cclxuICAvLyEgZXZlbnQgZW1pdHRlcnNcclxuICByZWFkb25seSBmaW5pc2hlZFZhbHVlID0gb3V0cHV0PHN0cmluZyB8IChzdHJpbmcgfCBudWxsKVtdIHwgbnVsbD4oKTtcclxuXHJcbiAgcmVhZG9ubHkgZm9jdXNJbmRleEV2ZW50ID0gb3V0cHV0PG51bWJlcj4oeyBhbGlhczogJ2ZvY3VzSW5kZXgnIH0pO1xyXG4gIHJlYWRvbmx5IGJsdXJJbmRleEV2ZW50ID0gb3V0cHV0PG51bWJlcj4oeyBhbGlhczogJ2JsdXJJbmRleCcgfSk7XHJcblxyXG4gIC8vISBldmVudCBoYW5kbGVyc1xyXG4gIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICghdmFsdWUpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLmlucHV0cygpLmxlbmd0aCAtIGluZGV4O1xyXG4gICAgdmFsdWVcclxuICAgICAgLnNsaWNlKDAsIG1heExlbmd0aClcclxuICAgICAgLnNwbGl0KCcnKVxyXG4gICAgICAuZm9yRWFjaCgoY2hhciwgaSkgPT4ge1xyXG4gICAgICAgIHRoaXMubW9kZWwudmFsaWRhdGVJbnB1dEFuZFNldFZhbHVlKGNoYXIsIGluZGV4ICsgaSk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5mb2N1c0J5SW5kZXgoaW5kZXggLSAxICsgTWF0aC5taW4odmFsdWUubGVuZ3RoLCBtYXhMZW5ndGgpKTtcclxuICB9XHJcbiAgb25JbnB1dChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHdhc0NoYW5nZWQgPSB0aGlzLl91cGRhdGVTaW5nbGVJbnB1dFZhbHVlKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUsIGluZGV4KTtcclxuICAgIGlmICghd2FzQ2hhbmdlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5mb2N1c0J5SW5kZXgoaW5kZXggKyAxKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdXBkYXRlU2luZ2xlSW5wdXRWYWx1ZSh2YWx1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGFuZ2VSZXN1bHQgPSB0aGlzLm1vZGVsLnZhbGlkYXRlSW5wdXRBbmRTZXRWYWx1ZSh2YWx1ZSwgaW5kZXgpO1xyXG4gICAgaWYgKCFjaGFuZ2VSZXN1bHQ/Lndhc0NoYW5nZWQpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZWwuaXNWYWx1ZUZ1bGwoKSkge1xyXG4gICAgICB0aGlzLmJsdXIoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBmb2N1c0J5SW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW47XHJcbiAgZm9jdXNCeUluZGV4KGluZGV4OiBudW1iZXIsIHRyeUZvY3VzaW5nTmV4dDogYm9vbGVhbiwgZGlyZWN0aW9uOiAxIHwgLTEpOiBib29sZWFuO1xyXG4gIGZvY3VzQnlJbmRleChpbmRleDogbnVtYmVyLCB0cnlGb2N1c2luZ05leHQ/OiBib29sZWFuLCBkaXJlY3Rpb24/OiAxIHwgLTEpOiBib29sZWFuIHtcclxuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5pbnB1dHMoKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgIGNvbnN0IG5leHRFbCA9IHRoaXMuaW5wdXRzKClbaW5kZXhdPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKCFuZXh0RWwpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBuZXh0RWwuZm9jdXMoKTtcclxuICAgIGlmICh0cnlGb2N1c2luZ05leHQgJiYgZGlyZWN0aW9uICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IG5leHRFbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5mb2N1c0J5SW5kZXgoaW5kZXggKyBkaXJlY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IG5leHRFbDtcclxuICB9XHJcbiAgLy9mb2N1cywgYmx1ciwgY2hhbmdlXHJcbiAgb25Gb2N1c01hc3RlcihldmVudDogRm9jdXNFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1c0luZGV4RXZlbnQuZW1pdChpbmRleCk7XHJcbiAgICB0aGlzLm9uRm9jdXMoZXZlbnQpO1xyXG4gIH1cclxuICBvbkJsdXJNYXN0ZXIoZXZlbnQ6IEZvY3VzRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuYmx1ckluZGV4RXZlbnQuZW1pdChpbmRleCk7XHJcbiAgICB0aGlzLm9uQmx1cihldmVudCk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLmVtaXR0YWJsZVZhbHVlKCk7XHJcbiAgICBpZiAoIXRoaXMub3V0cHV0Q29udHJvbFZhbHVlQWNjZXNzb3JPbkZpbmlzaCgpIHx8IHRoaXMubW9kZWwuaXNWYWx1ZUZ1bGwoKSkgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgICBpZiAodGhpcy5tb2RlbC5pc1ZhbHVlRnVsbCgpKSB7XHJcbiAgICAgIHRoaXMuZmluaXNoZWRWYWx1ZS5lbWl0KHYpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XHJcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XHJcbiAgICAgICAgdGhpcy5mb2N1c0J5SW5kZXgoaW5kZXggLSAxLCB0cnVlLCAtMSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcclxuICAgICAgICB0aGlzLmZvY3VzQnlJbmRleChpbmRleCArIDEsIHRydWUsICsxKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNhc2UgJ0hvbWUnOlxyXG4gICAgICAgIHRoaXMuZm9jdXNCeUluZGV4KDAsIHRydWUsIDEpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgY2FzZSAnRW5kJzpcclxuICAgICAgICB0aGlzLmZvY3VzQnlJbmRleCh0aGlzLmlucHV0cy5sZW5ndGggLSAxLCB0cnVlLCAtMSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICBjYXNlICdCYWNrc3BhY2UnOlxyXG4gICAgICBjYXNlICdEZWxldGUnOlxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNpbmdsZUlucHV0VmFsdWUoJycsIGluZGV4KTtcclxuICAgICAgICB0aGlzLmZvY3VzQnlJbmRleChpbmRleCAtIDEsIHRydWUsIC0xKTtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiYXJkLWRpZ2l0LWlucHV0XCJcclxuICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXHJcbiAgW2NsYXNzLmFyZC1oYXMtZXJyb3JdPVwiaGFzRXJyb3IoKVwiXHJcbj5cclxuICBAZm9yIChkYXRhIG9mIGNvbmZpZ0FycmF5RGF0YSgpOyB0cmFjayAkaW5kZXgpIHtcclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImFyZC1kaWdpdC1pbnB1dF9faXRlbVwiXHJcbiAgICBbY2xhc3MuYXJkLWRpZ2l0LWlucHV0X19pdGVtLXdpdGgtaW5wdXRdPVwiZGF0YS50eXBlID09PSAnaW5wdXQnXCJcclxuICA+XHJcbiAgICBAaWYgKGRhdGEudHlwZSA9PT0gJ2lucHV0Jykge1xyXG4gICAgPGlucHV0XHJcbiAgICAgICNpbnB1dFxyXG4gICAgICAjZm9jdXNhYmxlRWxlbWVudFxyXG4gICAgICBjbGFzcz1cImFyZC1kaWdpdC1pbnB1dF9faW5wdXRcIlxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgIFtyZWFkb25seV09XCJkYXRhLnJlYWRvbmx5XCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEucGxhY2Vob2xkZXJcIlxyXG4gICAgICBbY2xhc3MuYXJkLWRpZ2l0LWlucHV0X19pbnB1dC1yZWFkb25seV09XCJkYXRhLnJlYWRvbmx5XCJcclxuICAgICAgW2NsYXNzLmFyZC1kaWdpdC1pbnB1dF9faW5wdXQtZW1wdHldPVwiaXNJbnB1dEVtcHR5KGRhdGEuaW5kZXghKVwiXHJcbiAgICAgIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudCwgZGF0YS5pbmRleCEpXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50LCBkYXRhLmluZGV4ISlcIlxyXG4gICAgICAoZm9jdXMpPVwib25Gb2N1c01hc3RlcigkZXZlbnQsIGRhdGEuaW5kZXghKVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1ck1hc3RlcigkZXZlbnQsIGRhdGEuaW5kZXghKVwiXHJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQsIGRhdGEuaW5kZXghKVwiXHJcbiAgICAvPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWRpZ2l0LWlucHV0X19zdGF0aWNcIj5cclxuICAgICAge3sgZGF0YS5jaGFyIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvZGlnaXQtaW5wdXQvZGlnaXQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvZGlnaXQtaW5wdXQvZGlnaXQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFFTCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBeUIsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQXNCdEQsTUFBTSxPQUFPLHlCQUNYLFNBQVEsdUJBQXVCO0lBSS9CLFlBQThDLFFBQStCO1FBQzNFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUdsQixjQUFjO1FBQ0wsV0FBTSxHQUFHLFlBQVksQ0FBK0IsT0FBTyxDQUFDLENBQUM7UUFFdEUsY0FBYztRQUNHLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRCxjQUFjO1FBQ0wsZUFBVSxHQUFHLEtBQUssQ0FBd0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMs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LEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsV0FBVyxFQUFFLHlCQUF5QjthQUN2QztTQUNGLHFKQ3pDSCx3cENBb0NBOzs0RkRPYSx5QkFBeUI7a0JBbEJyQyxTQUFTOytCQUNFLGlCQUFpQixpQkFHWixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxXQUFXLDJCQUEyQjt5QkFDdkM7cUJBQ0Y7OzBCQU9ZLE1BQU07MkJBQUMsd0JBQXdCO3lDQTZFeEMsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgY29tcHV0ZWQsXHJcbiAgZWZmZWN0LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5wdXQsXHJcbiAgb3V0cHV0LFxyXG4gIHZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IF9Gb3JtRmllbGRDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vX2ludGVybmFsL2Zvcm0tZmllbGQtY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUVsZW1lbnRBcHBlYXJhbmNlLCBGb3JtRWxlbWVudFZhcmlhbnQgfSBmcm9tICcuLi8uLi90eXBlcy90aGVtaW5nLnR5cGVzJztcclxuaW1wb3J0IHsgQVJEX0RJR0lUX0lOUFVUX0RFRkFVTFRTLCBBcmREaWdpdElucHV0RGVmYXVsdHMgfSBmcm9tICcuL2RpZ2l0LWlucHV0LmRlZmF1bHRzJztcclxuaW1wb3J0IHsgRGlnaXRJbnB1dE1vZGVsIH0gZnJvbSAnLi9kaWdpdC1pbnB1dC5tb2RlbCc7XHJcbmltcG9ydCB7IERpZ2l0SW5wdXRDb25maWcsIERpZ2l0SW5wdXRTaGFwZSB9IGZyb20gJy4vZGlnaXQtaW5wdXQudHlwZXMnO1xyXG5pbXBvcnQgeyBEaWdpdElucHV0TW9kZWxIb3N0IH0gZnJvbSAnLi9kaWdpdC1pbnB1dC51dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1kaWdpdC1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpZ2l0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaWdpdC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1EaWdpdElucHV0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBfRm9ybUZpZWxkQ29tcG9uZW50QmFzZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IEFyZGl1bURpZ2l0SW5wdXRDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1EaWdpdElucHV0Q29tcG9uZW50XHJcbiAgZXh0ZW5kcyBfRm9ybUZpZWxkQ29tcG9uZW50QmFzZVxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIERpZ2l0SW5wdXRNb2RlbEhvc3QsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZERpZ2l0SW5wdXREZWZhdWx0cztcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFSRF9ESUdJVF9JTlBVVF9ERUZBVUxUUykgZGVmYXVsdHM6IEFyZERpZ2l0SW5wdXREZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGlucHV0cyByZWZcclxuICByZWFkb25seSBpbnB1dHMgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ2lucHV0Jyk7XHJcblxyXG4gIC8vISBkYXRhIG1vZGVsXHJcbiAgcHJpdmF0ZSByZWFkb25seSBtb2RlbCA9IG5ldyBEaWdpdElucHV0TW9kZWwodGhpcyk7XHJcblxyXG4gIC8vISBhcHBlYXJhbmNlXHJcbiAgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IGlucHV0PEZvcm1FbGVtZW50QXBwZWFyYW5jZT4odGhpcy5fREVGQVVMVFMuYXBwZWFyYW5jZSk7XHJcbiAgcmVhZG9ubHkgdmFyaWFudCA9IGlucHV0PEZvcm1FbGVtZW50VmFyaWFudD4odGhpcy5fREVGQVVMVFMudmFyaWFudCk7XHJcbiAgcmVhZG9ubHkgc2hhcGUgPSBpbnB1dDxEaWdpdElucHV0U2hhcGU+KHRoaXMuX0RFRkFVTFRTLnNoYXBlKTtcclxuXHJcbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuY29tcGFjdCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG5cclxuICByZWFkb25seSBuZ0NsYXNzZXMgPSBjb21wdXRlZCgoKTogc3RyaW5nID0+XHJcbiAgICBbXHJcbiAgICAgIGBhcmQtYXBwZWFyYW5jZS0ke3RoaXMuYXBwZWFyYW5jZSgpfWAsXHJcbiAgICAgIGBhcmQtdmFyaWFudC0ke3RoaXMudmFyaWFudCgpfWAsXHJcbiAgICAgIGBhcmQtc2hhcGUtJHt0aGlzLnNoYXBlKCl9YCxcclxuICAgICAgdGhpcy5jb21wYWN0KCkgPyAnYXJkLWNvbXBhY3QnIDogJycsXHJcbiAgICBdLmpvaW4oJyAnKVxyXG4gICk7XHJcblxyXG4gIC8vISBtb2RlbCBhY2Nlc3MgcG9pbnRzXHJcbiAgcmVhZG9ubHkgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8dm9pZCwgRGlnaXRJbnB1dENvbmZpZz4oe1xyXG4gICAgdHJhbnNmb3JtOiB2ID0+IHRoaXMubW9kZWwuc2V0Q29uZmlnKHYpLFxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGNvbmZpZ0FycmF5RGF0YSA9IHRoaXMubW9kZWwuY29uZmlnQXJyYXlEYXRhO1xyXG5cclxuICBwcml2YXRlIF9vbGRDb25maWdBcnJheURhdGFMZW5ndGggPSAtMTtcclxuICByZWFkb25seSBjb25maWdBcnJheURhdGFFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnQXJyYXlEYXRhKCkubGVuZ3RoID09PSB0aGlzLl9vbGRDb25maWdBcnJheURhdGFMZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9vbGRDb25maWdBcnJheURhdGFMZW5ndGggPSB0aGlzLmNvbmZpZ0FycmF5RGF0YSgpLmxlbmd0aDtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICB9KTtcclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fb2xkQ29uZmlnQXJyYXlEYXRhTGVuZ3RoID0gdGhpcy5jb25maWdBcnJheURhdGEoKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBpc0lucHV0RW1wdHkoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLm1vZGVsLmlzRGVmaW5lZEF0SW5kZXgoaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGNvbnRyb2wgdmFsdWUgYWNjZXNzb3IncyB3cml0ZSB2YWx1ZSBpbXBsZW1lbnRhdGlvblxyXG4gIHByaXZhdGUgX3ZhbHVlQmVmb3JlVmlld0luaXQ/OiBhbnk7XHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fd2FzVmlld0luaXQpIHtcclxuICAgICAgdGhpcy5fdmFsdWVCZWZvcmVWaWV3SW5pdCA9IHY7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3dyaXRlVmFsdWUodik7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3dyaXRlVmFsdWUodjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbC53cml0ZVZhbHVlKHYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfd2FzVmlld0luaXQgPSBmYWxzZTtcclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl93YXNWaWV3SW5pdCA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuX3ZhbHVlQmVmb3JlVmlld0luaXQpIHtcclxuICAgICAgdGhpcy5fd3JpdGVWYWx1ZSh0aGlzLl92YWx1ZUJlZm9yZVZpZXdJbml0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISB2YWx1ZSB0d28td2F5IGJpbmRpbmdcclxuICByZWFkb25seSBvdXRwdXRBc1N0cmluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMub3V0cHV0QXNTdHJpbmcsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgb3V0cHV0Q29udHJvbFZhbHVlQWNjZXNzb3JPbkZpbmlzaCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodjogc3RyaW5nIHwgKHN0cmluZyB8IG51bGwpW10gfCBudWxsKSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gb3V0cHV0PHN0cmluZyB8IChzdHJpbmcgfCBudWxsKVtdIHwgbnVsbD4oKTtcclxuXHJcbiAgcmVhZG9ubHkgc3RyaW5nVmFsdWUgPSB0aGlzLm1vZGVsLnN0cmluZ1ZhbHVlO1xyXG5cclxuICByZWFkb25seSBlbWl0dGFibGVWYWx1ZSA9IGNvbXB1dGVkKCgpOiBzdHJpbmcgfCAoc3RyaW5nIHwgbnVsbClbXSB8IG51bGwgPT4ge1xyXG4gICAgaWYgKHRoaXMub3V0cHV0QXNTdHJpbmcoKSkgcmV0dXJuIHRoaXMubW9kZWwuc3RyaW5nVmFsdWUoKTtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsLnZhbHVlKCk7XHJcbiAgfSk7XHJcblxyXG4gIC8vISBldmVudCBlbWl0dGVyc1xyXG4gIHJlYWRvbmx5IGZpbmlzaGVkVmFsdWUgPSBvdXRwdXQ8c3RyaW5nIHwgKHN0cmluZyB8IG51bGwpW10gfCBudWxsPigpO1xyXG5cclxuICByZWFkb25seSBmb2N1c0luZGV4RXZlbnQgPSBvdXRwdXQ8bnVtYmVyPih7IGFsaWFzOiAnZm9jdXNJbmRleCcgfSk7XHJcbiAgcmVhZG9ubHkgYmx1ckluZGV4RXZlbnQgPSBvdXRwdXQ8bnVtYmVyPih7IGFsaWFzOiAnYmx1ckluZGV4JyB9KTtcclxuXHJcbiAgLy8hIGV2ZW50IGhhbmRsZXJzXHJcbiAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dCcpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMuaW5wdXRzKCkubGVuZ3RoIC0gaW5kZXg7XHJcbiAgICB2YWx1ZVxyXG4gICAgICAuc2xpY2UoMCwgbWF4TGVuZ3RoKVxyXG4gICAgICAuc3BsaXQoJycpXHJcbiAgICAgIC5mb3JFYWNoKChjaGFyLCBpKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC52YWxpZGF0ZUlucHV0QW5kU2V0VmFsdWUoY2hhciwgaW5kZXggKyBpKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmZvY3VzQnlJbmRleChpbmRleCAtIDEgKyBNYXRoLm1pbih2YWx1ZS5sZW5ndGgsIG1heExlbmd0aCkpO1xyXG4gIH1cclxuICBvbklucHV0KGV2ZW50OiBFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3Qgd2FzQ2hhbmdlZCA9IHRoaXMuX3VwZGF0ZVNpbmdsZUlucHV0VmFsdWUoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSwgaW5kZXgpO1xyXG4gICAgaWYgKCF3YXNDaGFuZ2VkKSByZXR1cm47XHJcbiAgICB0aGlzLmZvY3VzQnlJbmRleChpbmRleCArIDEpO1xyXG4gIH1cclxuICBwcml2YXRlIF91cGRhdGVTaW5nbGVJbnB1dFZhbHVlKHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNoYW5nZVJlc3VsdCA9IHRoaXMubW9kZWwudmFsaWRhdGVJbnB1dEFuZFNldFZhbHVlKHZhbHVlLCBpbmRleCk7XHJcbiAgICBpZiAoIWNoYW5nZVJlc3VsdD8ud2FzQ2hhbmdlZCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuXHJcbiAgICBpZiAodGhpcy5tb2RlbC5pc1ZhbHVlRnVsbCgpKSB7XHJcbiAgICAgIHRoaXMuYmx1cigpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIGZvY3VzQnlJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbjtcclxuICBmb2N1c0J5SW5kZXgoaW5kZXg6IG51bWJlciwgdHJ5Rm9jdXNpbmdOZXh0OiBib29sZWFuLCBkaXJlY3Rpb246IDEgfCAtMSk6IGJvb2xlYW47XHJcbiAgZm9jdXNCeUluZGV4KGluZGV4OiBudW1iZXIsIHRyeUZvY3VzaW5nTmV4dD86IGJvb2xlYW4sIGRpcmVjdGlvbj86IDEgfCAtMSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLmlucHV0cygpLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY29uc3QgbmV4dEVsID0gdGhpcy5pbnB1dHMoKVtpbmRleF0/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoIW5leHRFbCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIG5leHRFbC5mb2N1cygpO1xyXG4gICAgaWYgKHRyeUZvY3VzaW5nTmV4dCAmJiBkaXJlY3Rpb24gJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gbmV4dEVsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvY3VzQnlJbmRleChpbmRleCArIGRpcmVjdGlvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbmV4dEVsO1xyXG4gIH1cclxuICAvL2ZvY3VzLCBibHVyLCBjaGFuZ2VcclxuICBvbkZvY3VzTWFzdGVyKGV2ZW50OiBGb2N1c0V2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzSW5kZXhFdmVudC5lbWl0KGluZGV4KTtcclxuICAgIHRoaXMub25Gb2N1cyhldmVudCk7XHJcbiAgfVxyXG4gIG9uQmx1ck1hc3RlcihldmVudDogRm9jdXNFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5ibHVySW5kZXhFdmVudC5lbWl0KGluZGV4KTtcclxuICAgIHRoaXMub25CbHVyKGV2ZW50KTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdiA9IHRoaXMuZW1pdHRhYmxlVmFsdWUoKTtcclxuICAgIGlmICghdGhpcy5vdXRwdXRDb250cm9sVmFsdWVBY2Nlc3Nvck9uRmluaXNoKCkgfHwgdGhpcy5tb2RlbC5pc1ZhbHVlRnVsbCgpKSB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQ/Lih2KTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcclxuICAgIGlmICh0aGlzLm1vZGVsLmlzVmFsdWVGdWxsKCkpIHtcclxuICAgICAgdGhpcy5maW5pc2hlZFZhbHVlLmVtaXQodik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcclxuICAgICAgICB0aGlzLmZvY3VzQnlJbmRleChpbmRleCAtIDEsIHRydWUsIC0xKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxyXG4gICAgICAgIHRoaXMuZm9jdXNCeUluZGV4KGluZGV4ICsgMSwgdHJ1ZSwgKzEpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgY2FzZSAnSG9tZSc6XHJcbiAgICAgICAgdGhpcy5mb2N1c0J5SW5kZXgoMCwgdHJ1ZSwgMSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICBjYXNlICdFbmQnOlxyXG4gICAgICAgIHRoaXMuZm9jdXNCeUluZGV4KHRoaXMuaW5wdXRzLmxlbmd0aCAtIDEsIHRydWUsIC0xKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XHJcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2luZ2xlSW5wdXRWYWx1ZSgnJywgaW5kZXgpO1xyXG4gICAgICAgIHRoaXMuZm9jdXNCeUluZGV4KGluZGV4IC0gMSwgdHJ1ZSwgLTEpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJhcmQtZGlnaXQtaW5wdXRcIlxyXG4gIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcclxuICBbY2xhc3MuYXJkLWhhcy1lcnJvcl09XCJoYXNFcnJvcigpXCJcclxuICBbY2xhc3MuYXJkLWlzLXN1Y2Nlc3NdPVwiaXNTdWNjZXNzKClcIlxyXG4+XHJcbiAgQGZvciAoZGF0YSBvZiBjb25maWdBcnJheURhdGEoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhcmQtZGlnaXQtaW5wdXRfX2l0ZW1cIlxyXG4gICAgW2NsYXNzLmFyZC1kaWdpdC1pbnB1dF9faXRlbS13aXRoLWlucHV0XT1cImRhdGEudHlwZSA9PT0gJ2lucHV0J1wiXHJcbiAgPlxyXG4gICAgQGlmIChkYXRhLnR5cGUgPT09ICdpbnB1dCcpIHtcclxuICAgIDxpbnB1dFxyXG4gICAgICAjaW5wdXRcclxuICAgICAgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgY2xhc3M9XCJhcmQtZGlnaXQtaW5wdXRfX2lucHV0XCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICBbcmVhZG9ubHldPVwiZGF0YS5yZWFkb25seVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLnBsYWNlaG9sZGVyXCJcclxuICAgICAgW2NsYXNzLmFyZC1kaWdpdC1pbnB1dF9faW5wdXQtcmVhZG9ubHldPVwiZGF0YS5yZWFkb25seVwiXHJcbiAgICAgIFtjbGFzcy5hcmQtZGlnaXQtaW5wdXRfX2lucHV0LWVtcHR5XT1cImlzSW5wdXRFbXB0eShkYXRhLmluZGV4ISlcIlxyXG4gICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQsIGRhdGEuaW5kZXghKVwiXHJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudCwgZGF0YS5pbmRleCEpXCJcclxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXNNYXN0ZXIoJGV2ZW50LCBkYXRhLmluZGV4ISlcIlxyXG4gICAgICAoYmx1cik9XCJvbkJsdXJNYXN0ZXIoJGV2ZW50LCBkYXRhLmluZGV4ISlcIlxyXG4gICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50LCBkYXRhLmluZGV4ISlcIlxyXG4gICAgLz5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1kaWdpdC1pbnB1dF9fc3RhdGljXCI+XHJcbiAgICAgIHt7IGRhdGEuY2hhciB9fVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
@@ -48,13 +48,23 @@ export class DigitInputModel {
|
|
|
48
48
|
return !!this.value()?.[index];
|
|
49
49
|
}
|
|
50
50
|
writeValue(v) {
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
if (this._ardHost.outputAsString()) {
|
|
52
|
+
if (!isAnyString(v) && !isNull(v)) {
|
|
53
|
+
throw new Error(`ARD-FT0040b: Trying to set <ard-digit-input>'s value to "${v}" (of type ${typeof v}), but the input uses [outputAsString]="true", and thus expects string or null.`);
|
|
54
|
+
}
|
|
55
|
+
const vArray = v?.split('') ?? [];
|
|
56
|
+
if (vArray.length > this._configArrayNoStatics().length) {
|
|
57
|
+
console.warn(`ARD-WA0041: Value provided to <ard-digit-input> is too long. Got ${vArray.length} characters, but expected a maximum of ${this._configArrayNoStatics().length} characters.`);
|
|
58
|
+
}
|
|
59
|
+
return this._writeValue(vArray);
|
|
60
|
+
}
|
|
61
|
+
if (!isAnyString(v) && !isNull(v) && !isArray(v)) {
|
|
62
|
+
throw new Error(`ARD-FT0041: Trying to set <ard-digit-input>'s value to "${v}" (of type ${typeof v}), expected string or array of characters.`);
|
|
56
63
|
}
|
|
57
64
|
const vArray = coerceArrayProperty(v);
|
|
65
|
+
if (vArray.length > this._configArrayNoStatics().length) {
|
|
66
|
+
console.warn(`ARD-WA0041: Value provided to <ard-digit-input> is too long. Got ${vArray.length} characters, but expected a maximum of ${this._configArrayNoStatics().length} characters.`);
|
|
67
|
+
}
|
|
58
68
|
const problemIndex = vArray.findIndex(el => !isAnyString(el) || el.length > 1);
|
|
59
69
|
if (problemIndex !== -1) {
|
|
60
70
|
throw new Error(`ARD-FT0042: Array passed to <ard-digit-input>'s value must only contain strings of length 1 or 0. Element "${vArray[problemIndex]}" at index ${problemIndex} does not match those requirements.`);
|
|
@@ -62,17 +72,19 @@ export class DigitInputModel {
|
|
|
62
72
|
return this._writeValue(vArray);
|
|
63
73
|
}
|
|
64
74
|
_writeValue(v) {
|
|
65
|
-
const
|
|
75
|
+
const isOldValueTheSame = this.value() ? this.value().every((ch, i) => ch === v?.[i]) : !v;
|
|
76
|
+
if (isOldValueTheSame)
|
|
77
|
+
return false;
|
|
66
78
|
this.value.set(v && v.map(el => el || null));
|
|
67
79
|
this.validateValueAndUpdate();
|
|
68
80
|
this._updateInputElements();
|
|
69
|
-
return
|
|
81
|
+
return true;
|
|
70
82
|
}
|
|
71
83
|
_updateInputElements() {
|
|
72
|
-
const
|
|
84
|
+
const v = this.value() ?? [];
|
|
73
85
|
let i = 0;
|
|
74
86
|
for (const inputEl of this._ardHost.inputs()) {
|
|
75
|
-
inputEl.nativeElement.value =
|
|
87
|
+
inputEl.nativeElement.value = v[i] ?? '';
|
|
76
88
|
i++;
|
|
77
89
|
}
|
|
78
90
|
}
|
|
@@ -148,7 +160,7 @@ export class DigitInputModel {
|
|
|
148
160
|
//get the corresponding HTML input element
|
|
149
161
|
const inputEl = this._ardHost.inputs()[index];
|
|
150
162
|
if (!inputEl) {
|
|
151
|
-
throw new Error("ARD-IS0048: <ard-digit-input>'s value changed, but its corresponding input element could not be found.
|
|
163
|
+
throw new Error("ARD-IS0048: <ard-digit-input>'s value changed, but its corresponding input element could not be found. If you are reading this, you probably experienced a problem with Ardium UI. Please report this issue to the creators.");
|
|
152
164
|
}
|
|
153
165
|
//update the input element and value array
|
|
154
166
|
const newVal = inputChar ?? before;
|
|
@@ -207,4 +219,4 @@ export class DigitInputModel {
|
|
|
207
219
|
return char;
|
|
208
220
|
}
|
|
209
221
|
}
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNGLE9BQU8sRUFJTCx5QkFBeUIsRUFDekIsYUFBYSxHQUNkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUF3Qix3QkFBd0IsRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixRQUE2QjtRQUE3QixhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQWdCaEMsaUJBQVksR0FBRyxNQUFNLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRXRELG9CQUFlLEdBQUcsUUFBUSxDQUF5QixHQUFHLEVBQUU7WUFDL0QsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakMsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ2xCLE9BQU87d0JBQ0wsSUFBSSxFQUFFLHdCQUF3QixDQUFDLE1BQU07d0JBQ3JDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtxQkFDZ0IsQ0FBQztnQkFDbkMsQ0FBQztnQkFDRCxPQUFPO29CQUNMLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxLQUFLO29CQUNwQyxLQUFLLEVBQUUsVUFBVSxFQUFFO29CQUNuQixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7b0JBQ3BCLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxJQUFJLEVBQUU7aUJBQ0YsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRWMsMEJBQXFCLEdBQUcsUUFBUSxDQUMvQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBNkIsQ0FDcEYsQ0FBQztRQUVPLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFMUUsVUFBSyxHQUFHLE1BQU0sQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFFL0MsZ0JBQVcsR0FBRyxRQUFRLENBQzdCLEdBQVcsRUFBRSxDQUNYLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7YUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQzthQUNSLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FDckIsQ0FBQztRQUVPLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFuRDFILDJDQUEyQztRQUMzQyxNQUFNLENBQ0osR0FBRyxFQUFFO1lBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUU3QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLEdBQUc7b0JBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxNQUFNO29CQUFFLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3RELE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDaEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUF3Q0QsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVSxDQUFDLENBQU07UUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakQsa0NBQWtDO1lBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsSUFBSSxLQUFLLENBQ1AsMkRBQTJELENBQUMsY0FBYyxPQUFPLENBQUMseUNBQXlDLENBQzVILENBQ0YsQ0FBQztZQUNGLHFCQUFxQjtZQUNyQixDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLFlBQVksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQ2IsOEdBQThHLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxZQUFZLHFDQUFxQyxDQUNsTSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ08sV0FBVyxDQUFDLENBQWtCO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLE9BQU8sTUFBTSxLQUFLLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pELENBQUMsRUFBRSxDQUFDO1FBQ04sQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsU0FBUyxDQUFDLE1BQXdCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNPLFVBQVUsQ0FBQyxNQUF3QjtRQUN6QywrQkFBK0I7UUFDL0IsSUFBSSxjQUFjLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNqRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxjQUFjLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWUsQ0FBQztZQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEcsT0FBTztRQUNULENBQUM7UUFDRCwwQkFBMEI7UUFDMUIsSUFBSSxTQUFnRSxDQUFDO1FBQ3JFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDeEIsU0FBUyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNyQixDQUFDO1FBQ0QsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUMzQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2xHLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO2dCQUNELE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQztZQUVELFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ1YsS0FBSyx5QkFBeUIsQ0FBQyxNQUFNO29CQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxLQUFLLHlCQUF5QixDQUFDLE1BQU07b0JBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pELEtBQUsseUJBQXlCLENBQUMsWUFBWTtvQkFDekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDcEQsS0FBSyx5QkFBeUIsQ0FBQyxPQUFPO29CQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBRTVEO29CQUNFLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRkFBc0YsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDOUcsQ0FBQztvQkFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLDRDQUE0QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVHLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELCtCQUErQjtJQUMvQix3QkFBd0IsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUNuRCxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUUxRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckIsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1AsMEVBQTBFO1FBQzFFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEQsaURBQWlEO1FBQ2pELElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN0RCxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELHFEQUFxRDtRQUNyRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRCxLQUFLLEdBQUcsU0FBUyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFcEQsc0NBQXNDO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFL0YsMENBQTBDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDYiwwTUFBME0sQ0FDM00sQ0FBQztRQUNKLENBQUM7UUFDRCwwQ0FBMEM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsU0FBUyxJQUFJLE1BQU0sQ0FBQztRQUNuQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBRTNDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxHQUFHO2dCQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDbkIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDO1lBQy9CLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsMkNBQTJDO1FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxLQUFLLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUNELHNCQUFzQjtRQUNwQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPO1FBRWYsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sUUFBUSxHQUFzQixFQUFFLENBQUM7UUFDdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pGLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQztZQUV0QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsU0FBUztZQUNYLENBQUM7WUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvRCxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ08sbUJBQW1CLENBQUMsSUFBbUIsRUFBRSxNQUFjLEVBQUUsTUFBOEI7UUFDN0YsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FDYiw2S0FBNkssQ0FDOUssQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV2QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTVCLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FDVix1TUFBdU0sQ0FDeE0sQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb2VyY2VBcnJheVByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBpc0FueVN0cmluZywgaXNBcnJheSwgaXNGdW5jdGlvbiwgaXNOdWxsLCBpc051bWJlciwgaXNSZWdFeHAgfSBmcm9tICdzaW1wbGUtYm9vbCc7XHJcbmltcG9ydCB7XHJcbiAgRGlnaXRJbnB1dEFjY2VwdE9iamVjdCxcclxuICBEaWdpdElucHV0Q29uZmlnLFxyXG4gIERpZ2l0SW5wdXRPcHRpb24sXHJcbiAgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbixcclxuICBUcmFuc2Zvcm1UeXBlLFxyXG59IGZyb20gJy4vZGlnaXQtaW5wdXQudHlwZXMnO1xyXG5pbXBvcnQgeyBEaWdpdElucHV0Q29uZmlnRGF0YSwgRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlLCBEaWdpdElucHV0TW9kZWxIb3N0LCBfc2FuaXRpemVSZWdFeHBTdHJpbmcgfSBmcm9tICcuL2RpZ2l0LWlucHV0LnV0aWxzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEaWdpdElucHV0TW9kZWwge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FyZEhvc3Q6IERpZ2l0SW5wdXRNb2RlbEhvc3QpIHtcclxuICAgIC8vc2V0IHRoZSB2YWx1ZSBhcnJheSB0byBiZSB0aGUgc2FtZSBsZW5ndGhcclxuICAgIGVmZmVjdChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuY29uZmlnQXJyYXlEYXRhKCkubGVuZ3RoO1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlLnVwZGF0ZShhcnIgPT4ge1xyXG4gICAgICAgICAgaWYgKCFhcnIpIHJldHVybiBuZXcgQXJyYXkobGVuZ3RoKS5maWxsKG51bGwpO1xyXG4gICAgICAgICAgaWYgKGFyci5sZW5ndGggPj0gbGVuZ3RoKSByZXR1cm4gYXJyLnNsaWNlKDAsIGxlbmd0aCk7XHJcbiAgICAgICAgICByZXR1cm4gWy4uLmFyciwgLi4ubmV3IEFycmF5KGxlbmd0aCAtIGFyci5sZW5ndGgpLmZpbGwobnVsbCldO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWdBcnJheSA9IHNpZ25hbDxEaWdpdElucHV0T3B0aW9uW10+KFtdKTtcclxuXHJcbiAgcmVhZG9ubHkgY29uZmlnQXJyYXlEYXRhID0gY29tcHV0ZWQ8RGlnaXRJbnB1dENvbmZpZ0RhdGFbXT4oKCkgPT4ge1xyXG4gICAgbGV0IGlucHV0SW5kZXggPSAwO1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ0FycmF5KCkubWFwKHYgPT4ge1xyXG4gICAgICBpZiAoJ3N0YXRpYycgaW4gdikge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICB0eXBlOiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUuU3RhdGljLFxyXG4gICAgICAgICAgY2hhcjogdi5zdGF0aWMsXHJcbiAgICAgICAgfSBzYXRpc2ZpZXMgRGlnaXRJbnB1dENvbmZpZ0RhdGE7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUuSW5wdXQsXHJcbiAgICAgICAgaW5kZXg6IGlucHV0SW5kZXgrKyxcclxuICAgICAgICByZWFkb25seTogdi5yZWFkb25seSxcclxuICAgICAgICBwbGFjZWhvbGRlcjogdi5wbGFjZWhvbGRlciA/PyAnJyxcclxuICAgICAgfSBzYXRpc2ZpZXMgRGlnaXRJbnB1dENvbmZpZ0RhdGE7XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnQXJyYXlOb1N0YXRpY3MgPSBjb21wdXRlZDxEaWdpdElucHV0QWNjZXB0T2JqZWN0W10+KFxyXG4gICAgKCkgPT4gdGhpcy5fY29uZmlnQXJyYXkoKS5maWx0ZXIodiA9PiAhKCdzdGF0aWMnIGluIHYpKSBhcyBEaWdpdElucHV0QWNjZXB0T2JqZWN0W11cclxuICApO1xyXG5cclxuICByZWFkb25seSBpc0NvbmZpZ0RlZmluZWQgPSBjb21wdXRlZCgoKTogYm9vbGVhbiA9PiB0aGlzLl9jb25maWdBcnJheSgpLmxlbmd0aCA+IDApO1xyXG5cclxuICByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDwoc3RyaW5nIHwgbnVsbClbXSB8IG51bGw+KG51bGwpO1xyXG5cclxuICByZWFkb25seSBzdHJpbmdWYWx1ZSA9IGNvbXB1dGVkKFxyXG4gICAgKCk6IHN0cmluZyA9PlxyXG4gICAgICB0aGlzLnZhbHVlKClcclxuICAgICAgICA/Lm1hcCh2ID0+IHYgPz8gJyAnKVxyXG4gICAgICAgIC5qb2luKCcnKVxyXG4gICAgICAgIC50cmltRW5kKCkgPz8gJydcclxuICApO1xyXG5cclxuICByZWFkb25seSBpc1ZhbHVlRnVsbCA9IGNvbXB1dGVkKCgpOiBib29sZWFuID0+IHRoaXMudmFsdWUoKT8uZmlsdGVyKHYgPT4gdikubGVuZ3RoID09PSB0aGlzLl9jb25maWdBcnJheU5vU3RhdGljcygpLmxlbmd0aCk7XHJcblxyXG4gIGlzRGVmaW5lZEF0SW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy52YWx1ZSgpPy5baW5kZXhdO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICghaXNBcnJheSh2KSAmJiAhaXNBbnlTdHJpbmcodikgJiYgIWlzTnVsbCh2KSkge1xyXG4gICAgICAvL3dhcm4gd2hlbiB1c2luZyBub24tc3RyaW5nIHZhbHVlXHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBuZXcgRXJyb3IoXHJcbiAgICAgICAgICBgQVJELVdBMDAyMDogVHJ5aW5nIHRvIHNldCA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIHRvIFwiJHt2fVwiIChvZiB0eXBlICR7dHlwZW9mIHZ9KSwgZXhwZWN0ZWQgc3RyaW5nIG9yIGFycmF5IG9mIHN0cmluZ3MuYFxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgICAgLy9ub3JtYWxpemUgdGhlIHZhbHVlXHJcbiAgICAgIHYgPSB2Py50b1N0cmluZz8uKCkgPz8gU3RyaW5nKHYpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdkFycmF5ID0gY29lcmNlQXJyYXlQcm9wZXJ0eSh2KTtcclxuICAgIGNvbnN0IHByb2JsZW1JbmRleCA9IHZBcnJheS5maW5kSW5kZXgoZWwgPT4gIWlzQW55U3RyaW5nKGVsKSB8fCBlbC5sZW5ndGggPiAxKTtcclxuICAgIGlmIChwcm9ibGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBgQVJELUZUMDA0MjogQXJyYXkgcGFzc2VkIHRvIDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgbXVzdCBvbmx5IGNvbnRhaW4gc3RyaW5ncyBvZiBsZW5ndGggMSBvciAwLiBFbGVtZW50IFwiJHt2QXJyYXlbcHJvYmxlbUluZGV4XX1cIiBhdCBpbmRleCAke3Byb2JsZW1JbmRleH0gZG9lcyBub3QgbWF0Y2ggdGhvc2UgcmVxdWlyZW1lbnRzLmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl93cml0ZVZhbHVlKHZBcnJheSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3dyaXRlVmFsdWUodjogc3RyaW5nW10gfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBvbGRWYWwgPSB0aGlzLnZhbHVlKCk7XHJcbiAgICB0aGlzLnZhbHVlLnNldCh2ICYmIHYubWFwKGVsID0+IGVsIHx8IG51bGwpKTtcclxuICAgIHRoaXMudmFsaWRhdGVWYWx1ZUFuZFVwZGF0ZSgpO1xyXG4gICAgdGhpcy5fdXBkYXRlSW5wdXRFbGVtZW50cygpO1xyXG4gICAgcmV0dXJuIG9sZFZhbCAhPT0gdjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUlucHV0RWxlbWVudHMoKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPz8gW107XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBmb3IgKGNvbnN0IGlucHV0RWwgb2YgdGhpcy5fYXJkSG9zdC5pbnB1dHMoKSkge1xyXG4gICAgICBpbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZSgpPy5baV0gPz8gJyc7XHJcbiAgICAgIGkrKztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISBzZXR0aW5nIGNvbmZpZ1xyXG4gIHNldENvbmZpZyhjb25maWc6IERpZ2l0SW5wdXRDb25maWcpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NldENvbmZpZyhjb25maWcpO1xyXG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlQW5kVXBkYXRlKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NldENvbmZpZyhjb25maWc6IERpZ2l0SW5wdXRDb25maWcpOiB2b2lkIHtcclxuICAgIC8vbWFwIGEgbnVtYmVyIHRvIHJlYWR5IG9iamVjdHNcclxuICAgIGxldCBjb25maWdBc051bWJlciA9IGlzQW55U3RyaW5nKGNvbmZpZykgPyBOdW1iZXIoY29uZmlnKSA6IG51bGw7XHJcbiAgICBpZiAoaXNOdW1iZXIoY29uZmlnKSB8fCBpc051bWJlcihjb25maWdBc051bWJlcikpIHtcclxuICAgICAgY29uZmlnQXNOdW1iZXIgPSBpc051bWJlcihjb25maWcpID8gY29uZmlnIDogY29uZmlnQXNOdW1iZXIhO1xyXG4gICAgICB0aGlzLl9jb25maWdBcnJheS5zZXQobmV3IEFycmF5KGNvbmZpZ0FzTnVtYmVyKS5maWxsKHsgYWNjZXB0OiAoc3RyOiBzdHJpbmcpID0+IC9bMC05XS8udGVzdChzdHIpIH0pKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy9tYXAgYSBzdHJpbmcgdG8gYW4gYXJyYXlcclxuICAgIGxldCBjb25maWdBcnI6IHN0cmluZ1tdIHwgRXhjbHVkZTxEaWdpdElucHV0Q29uZmlnLCBudW1iZXIgfCBzdHJpbmc+O1xyXG4gICAgaWYgKGlzQW55U3RyaW5nKGNvbmZpZykpIHtcclxuICAgICAgY29uZmlnQXJyID0gY29lcmNlQXJyYXlQcm9wZXJ0eShjb25maWcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uZmlnQXJyID0gY29uZmlnO1xyXG4gICAgfVxyXG4gICAgLy9tYXAgYXJyYXkgdG8gcmVhZHkgb2JqZWN0c1xyXG4gICAgdGhpcy5fY29uZmlnQXJyYXkuc2V0KFxyXG4gICAgICBjb25maWdBcnIubWFwKCh2LCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFpc0FueVN0cmluZyh2KSkge1xyXG4gICAgICAgICAgaWYgKCdhY2NlcHQnIGluIHYgJiYgIWlzRnVuY3Rpb24odi5hY2NlcHQpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlZ0V4cCA9IGlzUmVnRXhwKHYuYWNjZXB0KSA/IHYuYWNjZXB0IDogbmV3IFJlZ0V4cChgWyR7X3Nhbml0aXplUmVnRXhwU3RyaW5nKHYuYWNjZXB0KX1dYCk7XHJcbiAgICAgICAgICAgIHYuYWNjZXB0ID0gc3RyID0+IHJlZ0V4cC50ZXN0KHN0cik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN3aXRjaCAodikge1xyXG4gICAgICAgICAgY2FzZSBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLk51bWJlcjpcclxuICAgICAgICAgICAgcmV0dXJuIHsgYWNjZXB0OiBzdHIgPT4gL1swLTldLy50ZXN0KHN0cikgfTtcclxuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5MZXR0ZXI6XHJcbiAgICAgICAgICAgIHJldHVybiB7IGFjY2VwdDogc3RyID0+IC9bYS16QS1aXS8udGVzdChzdHIpIH07XHJcbiAgICAgICAgICBjYXNlIERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb24uQWxwaGFudW1lcmljOlxyXG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvWzAtOWEtekEtWl0vLnRlc3Qoc3RyKSB9O1xyXG4gICAgICAgICAgY2FzZSBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLlNwZWNpYWw6XHJcbiAgICAgICAgICAgIHJldHVybiB7IGFjY2VwdDogc3RyID0+IC9bIUAjJCVeJiotXz0rL1xcXFwuLF0vLnRlc3Qoc3RyKSB9O1xyXG5cclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChjb25maWdBcnIubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUkQtTkYwMDQzUzogPGFyZC1kaWdpdC1pbnB1dD4ncyBjb25maWcgaXMgaW52YWxpZC4gRXhwZWN0ZWQgbnVtYmVyIG9yIGFycmF5LCBnb3QgXCIke3Z9XCJgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1ORjAwNDNCOiBGb3VuZCBpbnZhbGlkIHN0cmluZyBcIiR7dn1cIiBpbiA8YXJkLWRpZ2l0LWlucHV0PidzIGNvbmZpZyBhdCBpbmRleCAke2l9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vISB2YWxpZGF0ZSBhZ2FpbnN0IHRoZSBjb25maWdcclxuICB2YWxpZGF0ZUlucHV0QW5kU2V0VmFsdWUoaW5wdXQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IG51bGwgfCB7IHdhc0NoYW5nZWQ6IGJvb2xlYW4sIHJlc3VsdENoYXI6IHN0cmluZyB8IG51bGwgfSB7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5fY29uZmlnQXJyYXlOb1N0YXRpY3MoKS5sZW5ndGgpIHJldHVybiBudWxsO1xyXG5cclxuICAgIGxldCB2ID0gdGhpcy52YWx1ZSgpO1xyXG4gICAgLy9wcmVwYXJlIHRoZSB2YWx1ZSBhcnJheSBpZiBkb2VzIG5vdCBleGlzdFxyXG4gICAgaWYgKCF2KSB7XHJcbiAgICAgIHRoaXMudmFsdWUuc2V0KFtdKTtcclxuICAgIH1cclxuICAgIHYgPSBbXTtcclxuICAgIC8vcHJlcGFyZSB0aGUgY2hhcmFjdGVycyBiZWZvcmUgdGhlIGN1cnJlbnQgb25lICh0byBiZSB1c2VkIGluIHZhbGlkYXRpb24pXHJcbiAgICBjb25zdCBiZWZvcmUgPSB0aGlzLnN0cmluZ1ZhbHVlKCkuY2hhckF0KGluZGV4KTtcclxuXHJcbiAgICAvL3JlbW92ZSB0aGUgb2xkIGNoYXJhY3RlciBmcm9tIHRoZSBpbnB1dCBlbGVtZW50XHJcbiAgICBpZiAoYmVmb3JlICYmIGlucHV0Lmxlbmd0aCA+IDEgJiYgaW5wdXQubWF0Y2goYmVmb3JlKSkge1xyXG4gICAgICBpbnB1dCA9IGlucHV0LnJlcGxhY2UoYmVmb3JlLCAnJyk7XHJcbiAgICB9XHJcbiAgICAvL3VzZSBvbmx5IHRoZSBmaXJzdCBvciBsYXN0IGNoYXJhY3RlciAoZXJyb3Igc2FmZXR5KVxyXG4gICAgY29uc3QgZmlyc3RDaGFyID0gaW5wdXQuY2hhckF0KDApO1xyXG4gICAgY29uc3QgbGFzdENoYXIgPSBpbnB1dC5jaGFyQXQoaW5wdXQubGVuZ3RoIC0gMSk7XHJcbiAgICBpbnB1dCA9IGZpcnN0Q2hhciA9PT0gYmVmb3JlID8gbGFzdENoYXIgOiBmaXJzdENoYXI7XHJcblxyXG4gICAgLy92YWxpZGF0ZSBhbmQgdHJhbnNmb3JtLCBpZiBuZWNlc3NhcnlcclxuICAgIGNvbnN0IGlucHV0Q2hhciA9IHRoaXMuX3ZhbGlkYXRlU2luZ2xlQ2hhcihpbnB1dCwgYmVmb3JlLCB0aGlzLl9jb25maWdBcnJheU5vU3RhdGljcygpW2luZGV4XSk7XHJcblxyXG4gICAgLy9nZXQgdGhlIGNvcnJlc3BvbmRpbmcgSFRNTCBpbnB1dCBlbGVtZW50XHJcbiAgICBjb25zdCBpbnB1dEVsID0gdGhpcy5fYXJkSG9zdC5pbnB1dHMoKVtpbmRleF07XHJcbiAgICBpZiAoIWlucHV0RWwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIFwiQVJELUlTMDA0ODogPGFyZC1kaWdpdC1pbnB1dD4ncyB2YWx1ZSBjaGFuZ2VkLCBidXQgaXRzIGNvcnJlc3BvbmRpbmcgaW5wdXQgZWxlbWVudCBjb3VsZCBub3QgYmUgZm91bmQuIFRoaXMgaXMgZXJyb3IgaXMgZmF0YWwgdG8gdGhlIGZ1bmN0aW9uaW5nIG9mIEFyZGl1bSBVSS4gUGxlYXNlIHJlcG9ydCB0aGlzIGlzc3VlIHRvIHRoZSBjcmVhdG9ycy5cIlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgLy91cGRhdGUgdGhlIGlucHV0IGVsZW1lbnQgYW5kIHZhbHVlIGFycmF5XHJcbiAgICBjb25zdCBuZXdWYWwgPSBpbnB1dENoYXIgPz8gYmVmb3JlO1xyXG4gICAgaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbmV3VmFsID8/ICcnO1xyXG5cclxuICAgIHRoaXMudmFsdWUudXBkYXRlKGFyciA9PiB7XHJcbiAgICAgIGlmICghYXJyKSBhcnIgPSBbXTtcclxuICAgICAgY29uc3QgbmV3QXJyID0gWy4uLmFycl07XHJcbiAgICAgIG5ld0FycltpbmRleF0gPSBuZXdWYWwgfHwgbnVsbDtcclxuICAgICAgcmV0dXJuIG5ld0FycjtcclxuICAgIH0pO1xyXG4gICAgLy9yZXR1cm4gY2hhbmdlcyBtYXJrZXIgYW5kIHZhbGlkYXRlZCB2YWx1ZVxyXG4gICAgcmV0dXJuIHsgd2FzQ2hhbmdlZDogbmV3VmFsICE9PSBiZWZvcmUsIHJlc3VsdENoYXI6IGlucHV0Q2hhciB9O1xyXG4gIH1cclxuICB2YWxpZGF0ZVZhbHVlQW5kVXBkYXRlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWUoKTtcclxuICAgIGlmICghdikgcmV0dXJuO1xyXG5cclxuICAgIGxldCBiZWZvcmUgPSAnJztcclxuICAgIGNvbnN0IG5ld1ZhbHVlOiAoc3RyaW5nIHwgbnVsbClbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLm1pbih0aGlzLl9jb25maWdBcnJheU5vU3RhdGljcygpLmxlbmd0aCwgdi5sZW5ndGgpOyBpKyspIHtcclxuICAgICAgY29uc3QgY2hhciA9IHZbaV07XHJcbiAgICAgIGJlZm9yZSArPSBjaGFyID8/ICcgJztcclxuXHJcbiAgICAgIGlmICghY2hhcikge1xyXG4gICAgICAgIG5ld1ZhbHVlLnB1c2goY2hhcik7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5fY29uZmlnQXJyYXlOb1N0YXRpY3MoKVtpXTtcclxuXHJcbiAgICAgIGNvbnN0IG5ld0NoYXIgPSB0aGlzLl92YWxpZGF0ZVNpbmdsZUNoYXIoY2hhciwgYmVmb3JlLCBjb25maWcpO1xyXG4gICAgICBuZXdWYWx1ZS5wdXNoKG5ld0NoYXIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZS5zZXQobmV3VmFsdWUpO1xyXG4gIH1cclxuICBwcml2YXRlIF92YWxpZGF0ZVNpbmdsZUNoYXIoY2hhcjogc3RyaW5nIHwgbnVsbCwgYmVmb3JlOiBzdHJpbmcsIGNvbmZpZzogRGlnaXRJbnB1dEFjY2VwdE9iamVjdCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKGNvbmZpZy5yZWFkb25seSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYEFSRC1JUzAwNDlSOiB0cnlpbmcgdG8gc2V0IHZhbHVlIG9mIGEgPGFyZC1kaWdpdC1pbnB1dD4ncyByZWFkb25seSBmaWVsZC4gVGhpcyBpcyBlcnJvciBpcyBmYXRhbCB0byB0aGUgZnVuY3Rpb25pbmcgb2YgQXJkaXVtIFVJLiBQbGVhc2UgcmVwb3J0IHRoaXMgaXNzdWUgdG8gdGhlIGNyZWF0b3JzLmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICghaXNGdW5jdGlvbihjb25maWcuYWNjZXB0KSkge1xyXG4gICAgICBjb25zdCByZWdFeHAgPSBpc1JlZ0V4cChjb25maWcuYWNjZXB0KSA/IGNvbmZpZy5hY2NlcHQgOiBuZXcgUmVnRXhwKGBbJHtfc2FuaXRpemVSZWdFeHBTdHJpbmcoY29uZmlnLmFjY2VwdCl9XWApO1xyXG4gICAgICBjb25maWcuYWNjZXB0ID0gc3RyID0+IHJlZ0V4cC50ZXN0KHN0cik7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNoYXIpIHJldHVybiBjaGFyO1xyXG5cclxuICAgIGNvbnN0IGNhbkFjY2VwdCA9IGNvbmZpZy5hY2NlcHQoY2hhciwgYmVmb3JlKTtcclxuICAgIGlmICghY2FuQWNjZXB0KSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICBpZiAoY29uZmlnLnRyYW5zZm9ybSkge1xyXG4gICAgICBpZiAoY29uZmlnLnRyYW5zZm9ybSA9PT0gVHJhbnNmb3JtVHlwZS5Mb3dlcmNhc2UpIHtcclxuICAgICAgICByZXR1cm4gY2hhci50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcudHJhbnNmb3JtID09PSBUcmFuc2Zvcm1UeXBlLlVwcGVyY2FzZSkge1xyXG4gICAgICAgIHJldHVybiBjaGFyLnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgIGBBUkQtSVMwMDQ5VDogPGFyZC1kaWdpdC1pbnB1dD4ncyB2YWx1ZSB2YWxpZGF0b3IgZW5jb3VudGVyZWQgYW4gdW5leHBlY3RlZCB2YWx1ZSBvZiB0aGUgY29uZmlnJ3MgXCJ0cmFuc2Zvcm1cIiBwcm9wZXJ0eS4gQXJkaXVtIFVJIHdhcyBhYmxlIHRvIGhhbmRsZSB0aGlzIGlzc3VlLCBidXQgcGxlYXNlIHJlcG9ydCBpdCB0byB0aGUgY3JlYXRvcnMuYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNoYXI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNGLE9BQU8sRUFJTCx5QkFBeUIsRUFDekIsYUFBYSxHQUNkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUF3Qix3QkFBd0IsRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixRQUE2QjtRQUE3QixhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQWdCaEMsaUJBQVksR0FBRyxNQUFNLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRXRELG9CQUFlLEdBQUcsUUFBUSxDQUF5QixHQUFHLEVBQUU7WUFDL0QsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakMsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ2xCLE9BQU87d0JBQ0wsSUFBSSxFQUFFLHdCQUF3QixDQUFDLE1BQU07d0JBQ3JDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtxQkFDZ0IsQ0FBQztnQkFDbkMsQ0FBQztnQkFDRCxPQUFPO29CQUNMLElBQUksRUFBRSx3QkFBd0IsQ0FB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Q0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV2QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTVCLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FDVix1TUFBdU0sQ0FDeE0sQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb2VyY2VBcnJheVByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBpc0FueVN0cmluZywgaXNBcnJheSwgaXNGdW5jdGlvbiwgaXNOdWxsLCBpc051bWJlciwgaXNSZWdFeHAgfSBmcm9tICdzaW1wbGUtYm9vbCc7XHJcbmltcG9ydCB7XHJcbiAgRGlnaXRJbnB1dEFjY2VwdE9iamVjdCxcclxuICBEaWdpdElucHV0Q29uZmlnLFxyXG4gIERpZ2l0SW5wdXRPcHRpb24sXHJcbiAgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbixcclxuICBUcmFuc2Zvcm1UeXBlLFxyXG59IGZyb20gJy4vZGlnaXQtaW5wdXQudHlwZXMnO1xyXG5pbXBvcnQgeyBEaWdpdElucHV0Q29uZmlnRGF0YSwgRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlLCBEaWdpdElucHV0TW9kZWxIb3N0LCBfc2FuaXRpemVSZWdFeHBTdHJpbmcgfSBmcm9tICcuL2RpZ2l0LWlucHV0LnV0aWxzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEaWdpdElucHV0TW9kZWwge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FyZEhvc3Q6IERpZ2l0SW5wdXRNb2RlbEhvc3QpIHtcclxuICAgIC8vc2V0IHRoZSB2YWx1ZSBhcnJheSB0byBiZSB0aGUgc2FtZSBsZW5ndGhcclxuICAgIGVmZmVjdChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuY29uZmlnQXJyYXlEYXRhKCkubGVuZ3RoO1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlLnVwZGF0ZShhcnIgPT4ge1xyXG4gICAgICAgICAgaWYgKCFhcnIpIHJldHVybiBuZXcgQXJyYXkobGVuZ3RoKS5maWxsKG51bGwpO1xyXG4gICAgICAgICAgaWYgKGFyci5sZW5ndGggPj0gbGVuZ3RoKSByZXR1cm4gYXJyLnNsaWNlKDAsIGxlbmd0aCk7XHJcbiAgICAgICAgICByZXR1cm4gWy4uLmFyciwgLi4ubmV3IEFycmF5KGxlbmd0aCAtIGFyci5sZW5ndGgpLmZpbGwobnVsbCldO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWdBcnJheSA9IHNpZ25hbDxEaWdpdElucHV0T3B0aW9uW10+KFtdKTtcclxuXHJcbiAgcmVhZG9ubHkgY29uZmlnQXJyYXlEYXRhID0gY29tcHV0ZWQ8RGlnaXRJbnB1dENvbmZpZ0RhdGFbXT4oKCkgPT4ge1xyXG4gICAgbGV0IGlucHV0SW5kZXggPSAwO1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ0FycmF5KCkubWFwKHYgPT4ge1xyXG4gICAgICBpZiAoJ3N0YXRpYycgaW4gdikge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICB0eXBlOiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUuU3RhdGljLFxyXG4gICAgICAgICAgY2hhcjogdi5zdGF0aWMsXHJcbiAgICAgICAgfSBzYXRpc2ZpZXMgRGlnaXRJbnB1dENvbmZpZ0RhdGE7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUuSW5wdXQsXHJcbiAgICAgICAgaW5kZXg6IGlucHV0SW5kZXgrKyxcclxuICAgICAgICByZWFkb25seTogdi5yZWFkb25seSxcclxuICAgICAgICBwbGFjZWhvbGRlcjogdi5wbGFjZWhvbGRlciA/PyAnJyxcclxuICAgICAgfSBzYXRpc2ZpZXMgRGlnaXRJbnB1dENvbmZpZ0RhdGE7XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnQXJyYXlOb1N0YXRpY3MgPSBjb21wdXRlZDxEaWdpdElucHV0QWNjZXB0T2JqZWN0W10+KFxyXG4gICAgKCkgPT4gdGhpcy5fY29uZmlnQXJyYXkoKS5maWx0ZXIodiA9PiAhKCdzdGF0aWMnIGluIHYpKSBhcyBEaWdpdElucHV0QWNjZXB0T2JqZWN0W11cclxuICApO1xyXG5cclxuICByZWFkb25seSBpc0NvbmZpZ0RlZmluZWQgPSBjb21wdXRlZCgoKTogYm9vbGVhbiA9PiB0aGlzLl9jb25maWdBcnJheSgpLmxlbmd0aCA+IDApO1xyXG5cclxuICByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDwoc3RyaW5nIHwgbnVsbClbXSB8IG51bGw+KG51bGwpO1xyXG5cclxuICByZWFkb25seSBzdHJpbmdWYWx1ZSA9IGNvbXB1dGVkKFxyXG4gICAgKCk6IHN0cmluZyA9PlxyXG4gICAgICB0aGlzLnZhbHVlKClcclxuICAgICAgICA/Lm1hcCh2ID0+IHYgPz8gJyAnKVxyXG4gICAgICAgIC5qb2luKCcnKVxyXG4gICAgICAgIC50cmltRW5kKCkgPz8gJydcclxuICApO1xyXG5cclxuICByZWFkb25seSBpc1ZhbHVlRnVsbCA9IGNvbXB1dGVkKCgpOiBib29sZWFuID0+IHRoaXMudmFsdWUoKT8uZmlsdGVyKHYgPT4gdikubGVuZ3RoID09PSB0aGlzLl9jb25maWdBcnJheU5vU3RhdGljcygpLmxlbmd0aCk7XHJcblxyXG4gIGlzRGVmaW5lZEF0SW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy52YWx1ZSgpPy5baW5kZXhdO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLl9hcmRIb3N0Lm91dHB1dEFzU3RyaW5nKCkpIHtcclxuICAgICAgaWYgKCFpc0FueVN0cmluZyh2KSAmJiAhaXNOdWxsKHYpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgYEFSRC1GVDAwNDBiOiBUcnlpbmcgdG8gc2V0IDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgdG8gXCIke3Z9XCIgKG9mIHR5cGUgJHt0eXBlb2Ygdn0pLCBidXQgdGhlIGlucHV0IHVzZXMgW291dHB1dEFzU3RyaW5nXT1cInRydWVcIiwgYW5kIHRodXMgZXhwZWN0cyBzdHJpbmcgb3IgbnVsbC5gXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB2QXJyYXkgPSB2Py5zcGxpdCgnJykgPz8gW107XHJcblxyXG4gICAgICBpZiAodkFycmF5Lmxlbmd0aCA+IHRoaXMuX2NvbmZpZ0FycmF5Tm9TdGF0aWNzKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgYEFSRC1XQTAwNDE6IFZhbHVlIHByb3ZpZGVkIHRvIDxhcmQtZGlnaXQtaW5wdXQ+IGlzIHRvbyBsb25nLiBHb3QgJHtcclxuICAgICAgICAgICAgdkFycmF5Lmxlbmd0aFxyXG4gICAgICAgICAgfSBjaGFyYWN0ZXJzLCBidXQgZXhwZWN0ZWQgYSBtYXhpbXVtIG9mICR7dGhpcy5fY29uZmlnQXJyYXlOb1N0YXRpY3MoKS5sZW5ndGh9IGNoYXJhY3RlcnMuYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuX3dyaXRlVmFsdWUodkFycmF5KTtcclxuICAgIH1cclxuICAgIGlmICghaXNBbnlTdHJpbmcodikgJiYgIWlzTnVsbCh2KSAmJiAhaXNBcnJheSh2KSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYEFSRC1GVDAwNDE6IFRyeWluZyB0byBzZXQgPGFyZC1kaWdpdC1pbnB1dD4ncyB2YWx1ZSB0byBcIiR7dn1cIiAob2YgdHlwZSAke3R5cGVvZiB2fSksIGV4cGVjdGVkIHN0cmluZyBvciBhcnJheSBvZiBjaGFyYWN0ZXJzLmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHZBcnJheSA9IGNvZXJjZUFycmF5UHJvcGVydHkodik7XHJcblxyXG4gICAgaWYgKHZBcnJheS5sZW5ndGggPiB0aGlzLl9jb25maWdBcnJheU5vU3RhdGljcygpLmxlbmd0aCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgYEFSRC1XQTAwNDE6IFZhbHVlIHByb3ZpZGVkIHRvIDxhcmQtZGlnaXQtaW5wdXQ+IGlzIHRvbyBsb25nLiBHb3QgJHtcclxuICAgICAgICAgIHZBcnJheS5sZW5ndGhcclxuICAgICAgICB9IGNoYXJhY3RlcnMsIGJ1dCBleHBlY3RlZCBhIG1heGltdW0gb2YgJHt0aGlzLl9jb25maWdBcnJheU5vU3RhdGljcygpLmxlbmd0aH0gY2hhcmFjdGVycy5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwcm9ibGVtSW5kZXggPSB2QXJyYXkuZmluZEluZGV4KGVsID0+ICFpc0FueVN0cmluZyhlbCkgfHwgZWwubGVuZ3RoID4gMSk7XHJcbiAgICBpZiAocHJvYmxlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYEFSRC1GVDAwNDI6IEFycmF5IHBhc3NlZCB0byA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIG11c3Qgb25seSBjb250YWluIHN0cmluZ3Mgb2YgbGVuZ3RoIDEgb3IgMC4gRWxlbWVudCBcIiR7dkFycmF5W3Byb2JsZW1JbmRleF19XCIgYXQgaW5kZXggJHtwcm9ibGVtSW5kZXh9IGRvZXMgbm90IG1hdGNoIHRob3NlIHJlcXVpcmVtZW50cy5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fd3JpdGVWYWx1ZSh2QXJyYXkpO1xyXG4gIH1cclxuICBwcml2YXRlIF93cml0ZVZhbHVlKHY6IHN0cmluZ1tdIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaXNPbGRWYWx1ZVRoZVNhbWUgPSB0aGlzLnZhbHVlKCkgPyB0aGlzLnZhbHVlKCkhLmV2ZXJ5KChjaCwgaSkgPT4gY2ggPT09IHY/LltpXSkgOiAhdjtcclxuICAgIGlmIChpc09sZFZhbHVlVGhlU2FtZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgdGhpcy52YWx1ZS5zZXQodiAmJiB2Lm1hcChlbCA9PiBlbCB8fCBudWxsKSk7XHJcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWVBbmRVcGRhdGUoKTtcclxuICAgIHRoaXMuX3VwZGF0ZUlucHV0RWxlbWVudHMoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlSW5wdXRFbGVtZW50cygpIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlKCkgPz8gW107XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBmb3IgKGNvbnN0IGlucHV0RWwgb2YgdGhpcy5fYXJkSG9zdC5pbnB1dHMoKSkge1xyXG4gICAgICBpbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2W2ldID8/ICcnO1xyXG4gICAgICBpKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyEgc2V0dGluZyBjb25maWdcclxuICBzZXRDb25maWcoY29uZmlnOiBEaWdpdElucHV0Q29uZmlnKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRDb25maWcoY29uZmlnKTtcclxuICAgIHRoaXMudmFsaWRhdGVWYWx1ZUFuZFVwZGF0ZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZXRDb25maWcoY29uZmlnOiBEaWdpdElucHV0Q29uZmlnKTogdm9pZCB7XHJcbiAgICAvL21hcCBhIG51bWJlciB0byByZWFkeSBvYmplY3RzXHJcbiAgICBsZXQgY29uZmlnQXNOdW1iZXIgPSBpc0FueVN0cmluZyhjb25maWcpID8gTnVtYmVyKGNvbmZpZykgOiBudWxsO1xyXG4gICAgaWYgKGlzTnVtYmVyKGNvbmZpZykgfHwgaXNOdW1iZXIoY29uZmlnQXNOdW1iZXIpKSB7XHJcbiAgICAgIGNvbmZpZ0FzTnVtYmVyID0gaXNOdW1iZXIoY29uZmlnKSA/IGNvbmZpZyA6IGNvbmZpZ0FzTnVtYmVyITtcclxuICAgICAgdGhpcy5fY29uZmlnQXJyYXkuc2V0KG5ldyBBcnJheShjb25maWdBc051bWJlcikuZmlsbCh7IGFjY2VwdDogKHN0cjogc3RyaW5nKSA9PiAvWzAtOV0vLnRlc3Qoc3RyKSB9KSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vbWFwIGEgc3RyaW5nIHRvIGFuIGFycmF5XHJcbiAgICBsZXQgY29uZmlnQXJyOiBzdHJpbmdbXSB8IEV4Y2x1ZGU8RGlnaXRJbnB1dENvbmZpZywgbnVtYmVyIHwgc3RyaW5nPjtcclxuICAgIGlmIChpc0FueVN0cmluZyhjb25maWcpKSB7XHJcbiAgICAgIGNvbmZpZ0FyciA9IGNvZXJjZUFycmF5UHJvcGVydHkoY29uZmlnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbmZpZ0FyciA9IGNvbmZpZztcclxuICAgIH1cclxuICAgIC8vbWFwIGFycmF5IHRvIHJlYWR5IG9iamVjdHNcclxuICAgIHRoaXMuX2NvbmZpZ0FycmF5LnNldChcclxuICAgICAgY29uZmlnQXJyLm1hcCgodiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghaXNBbnlTdHJpbmcodikpIHtcclxuICAgICAgICAgIGlmICgnYWNjZXB0JyBpbiB2ICYmICFpc0Z1bmN0aW9uKHYuYWNjZXB0KSkge1xyXG4gICAgICAgICAgICBjb25zdCByZWdFeHAgPSBpc1JlZ0V4cCh2LmFjY2VwdCkgPyB2LmFjY2VwdCA6IG5ldyBSZWdFeHAoYFske19zYW5pdGl6ZVJlZ0V4cFN0cmluZyh2LmFjY2VwdCl9XWApO1xyXG4gICAgICAgICAgICB2LmFjY2VwdCA9IHN0ciA9PiByZWdFeHAudGVzdChzdHIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzd2l0Y2ggKHYpIHtcclxuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5OdW1iZXI6XHJcbiAgICAgICAgICAgIHJldHVybiB7IGFjY2VwdDogc3RyID0+IC9bMC05XS8udGVzdChzdHIpIH07XHJcbiAgICAgICAgICBjYXNlIERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb24uTGV0dGVyOlxyXG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvW2EtekEtWl0vLnRlc3Qoc3RyKSB9O1xyXG4gICAgICAgICAgY2FzZSBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLkFscGhhbnVtZXJpYzpcclxuICAgICAgICAgICAgcmV0dXJuIHsgYWNjZXB0OiBzdHIgPT4gL1swLTlhLXpBLVpdLy50ZXN0KHN0cikgfTtcclxuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5TcGVjaWFsOlxyXG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvWyFAIyQlXiYqLV89Ky9cXFxcLixdLy50ZXN0KHN0cikgfTtcclxuXHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBpZiAoY29uZmlnQXJyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQVJELU5GMDA0M1M6IDxhcmQtZGlnaXQtaW5wdXQ+J3MgY29uZmlnIGlzIGludmFsaWQuIEV4cGVjdGVkIG51bWJlciBvciBhcnJheSwgZ290IFwiJHt2fVwiYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUkQtTkYwMDQzQjogRm91bmQgaW52YWxpZCBzdHJpbmcgXCIke3Z9XCIgaW4gPGFyZC1kaWdpdC1pbnB1dD4ncyBjb25maWcgYXQgaW5kZXggJHtpfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyEgdmFsaWRhdGUgYWdhaW5zdCB0aGUgY29uZmlnXHJcbiAgdmFsaWRhdGVJbnB1dEFuZFNldFZhbHVlKGlucHV0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBudWxsIHwgeyB3YXNDaGFuZ2VkOiBib29sZWFuOyByZXN1bHRDaGFyOiBzdHJpbmcgfCBudWxsIH0ge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuX2NvbmZpZ0FycmF5Tm9TdGF0aWNzKCkubGVuZ3RoKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICBsZXQgdiA9IHRoaXMudmFsdWUoKTtcclxuICAgIC8vcHJlcGFyZSB0aGUgdmFsdWUgYXJyYXkgaWYgZG9lcyBub3QgZXhpc3RcclxuICAgIGlmICghdikge1xyXG4gICAgICB0aGlzLnZhbHVlLnNldChbXSk7XHJcbiAgICB9XHJcbiAgICB2ID0gW107XHJcbiAgICAvL3ByZXBhcmUgdGhlIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBjdXJyZW50IG9uZSAodG8gYmUgdXNlZCBpbiB2YWxpZGF0aW9uKVxyXG4gICAgY29uc3QgYmVmb3JlID0gdGhpcy5zdHJpbmdWYWx1ZSgpLmNoYXJBdChpbmRleCk7XHJcblxyXG4gICAgLy9yZW1vdmUgdGhlIG9sZCBjaGFyYWN0ZXIgZnJvbSB0aGUgaW5wdXQgZWxlbWVudFxyXG4gICAgaWYgKGJlZm9yZSAmJiBpbnB1dC5sZW5ndGggPiAxICYmIGlucHV0Lm1hdGNoKGJlZm9yZSkpIHtcclxuICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKGJlZm9yZSwgJycpO1xyXG4gICAgfVxyXG4gICAgLy91c2Ugb25seSB0aGUgZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIgKGVycm9yIHNhZmV0eSlcclxuICAgIGNvbnN0IGZpcnN0Q2hhciA9IGlucHV0LmNoYXJBdCgwKTtcclxuICAgIGNvbnN0IGxhc3RDaGFyID0gaW5wdXQuY2hhckF0KGlucHV0Lmxlbmd0aCAtIDEpO1xyXG4gICAgaW5wdXQgPSBmaXJzdENoYXIgPT09IGJlZm9yZSA/IGxhc3RDaGFyIDogZmlyc3RDaGFyO1xyXG5cclxuICAgIC8vdmFsaWRhdGUgYW5kIHRyYW5zZm9ybSwgaWYgbmVjZXNzYXJ5XHJcbiAgICBjb25zdCBpbnB1dENoYXIgPSB0aGlzLl92YWxpZGF0ZVNpbmdsZUNoYXIoaW5wdXQsIGJlZm9yZSwgdGhpcy5fY29uZmlnQXJyYXlOb1N0YXRpY3MoKVtpbmRleF0pO1xyXG5cclxuICAgIC8vZ2V0IHRoZSBjb3JyZXNwb25kaW5nIEhUTUwgaW5wdXQgZWxlbWVudFxyXG4gICAgY29uc3QgaW5wdXRFbCA9IHRoaXMuX2FyZEhvc3QuaW5wdXRzKClbaW5kZXhdO1xyXG4gICAgaWYgKCFpbnB1dEVsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBcIkFSRC1JUzAwNDg6IDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgY2hhbmdlZCwgYnV0IGl0cyBjb3JyZXNwb25kaW5nIGlucHV0IGVsZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLiBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcywgeW91IHByb2JhYmx5IGV4cGVyaWVuY2VkIGEgcHJvYmxlbSB3aXRoIEFyZGl1bSBVSS4gUGxlYXNlIHJlcG9ydCB0aGlzIGlzc3VlIHRvIHRoZSBjcmVhdG9ycy5cIlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgLy91cGRhdGUgdGhlIGlucHV0IGVsZW1lbnQgYW5kIHZhbHVlIGFycmF5XHJcbiAgICBjb25zdCBuZXdWYWwgPSBpbnB1dENoYXIgPz8gYmVmb3JlO1xyXG4gICAgaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbmV3VmFsID8/ICcnO1xyXG5cclxuICAgIHRoaXMudmFsdWUudXBkYXRlKGFyciA9PiB7XHJcbiAgICAgIGlmICghYXJyKSBhcnIgPSBbXTtcclxuICAgICAgY29uc3QgbmV3QXJyID0gWy4uLmFycl07XHJcbiAgICAgIG5ld0FycltpbmRleF0gPSBuZXdWYWwgfHwgbnVsbDtcclxuICAgICAgcmV0dXJuIG5ld0FycjtcclxuICAgIH0pO1xyXG4gICAgLy9yZXR1cm4gY2hhbmdlcyBtYXJrZXIgYW5kIHZhbGlkYXRlZCB2YWx1ZVxyXG4gICAgcmV0dXJuIHsgd2FzQ2hhbmdlZDogbmV3VmFsICE9PSBiZWZvcmUsIHJlc3VsdENoYXI6IGlucHV0Q2hhciB9O1xyXG4gIH1cclxuICB2YWxpZGF0ZVZhbHVlQW5kVXBkYXRlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWUoKTtcclxuICAgIGlmICghdikgcmV0dXJuO1xyXG5cclxuICAgIGxldCBiZWZvcmUgPSAnJztcclxuICAgIGNvbnN0IG5ld1ZhbHVlOiAoc3RyaW5nIHwgbnVsbClbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLm1pbih0aGlzLl9jb25maWdBcnJheU5vU3RhdGljcygpLmxlbmd0aCwgdi5sZW5ndGgpOyBpKyspIHtcclxuICAgICAgY29uc3QgY2hhciA9IHZbaV07XHJcbiAgICAgIGJlZm9yZSArPSBjaGFyID8/ICcgJztcclxuXHJcbiAgICAgIGlmICghY2hhcikge1xyXG4gICAgICAgIG5ld1ZhbHVlLnB1c2goY2hhcik7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5fY29uZmlnQXJyYXlOb1N0YXRpY3MoKVtpXTtcclxuXHJcbiAgICAgIGNvbnN0IG5ld0NoYXIgPSB0aGlzLl92YWxpZGF0ZVNpbmdsZUNoYXIoY2hhciwgYmVmb3JlLCBjb25maWcpO1xyXG4gICAgICBuZXdWYWx1ZS5wdXNoKG5ld0NoYXIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZS5zZXQobmV3VmFsdWUpO1xyXG4gIH1cclxuICBwcml2YXRlIF92YWxpZGF0ZVNpbmdsZUNoYXIoY2hhcjogc3RyaW5nIHwgbnVsbCwgYmVmb3JlOiBzdHJpbmcsIGNvbmZpZzogRGlnaXRJbnB1dEFjY2VwdE9iamVjdCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKGNvbmZpZy5yZWFkb25seSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYEFSRC1JUzAwNDlSOiB0cnlpbmcgdG8gc2V0IHZhbHVlIG9mIGEgPGFyZC1kaWdpdC1pbnB1dD4ncyByZWFkb25seSBmaWVsZC4gVGhpcyBpcyBlcnJvciBpcyBmYXRhbCB0byB0aGUgZnVuY3Rpb25pbmcgb2YgQXJkaXVtIFVJLiBQbGVhc2UgcmVwb3J0IHRoaXMgaXNzdWUgdG8gdGhlIGNyZWF0b3JzLmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICghaXNGdW5jdGlvbihjb25maWcuYWNjZXB0KSkge1xyXG4gICAgICBjb25zdCByZWdFeHAgPSBpc1JlZ0V4cChjb25maWcuYWNjZXB0KSA/IGNvbmZpZy5hY2NlcHQgOiBuZXcgUmVnRXhwKGBbJHtfc2FuaXRpemVSZWdFeHBTdHJpbmcoY29uZmlnLmFjY2VwdCl9XWApO1xyXG4gICAgICBjb25maWcuYWNjZXB0ID0gc3RyID0+IHJlZ0V4cC50ZXN0KHN0cik7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNoYXIpIHJldHVybiBjaGFyO1xyXG5cclxuICAgIGNvbnN0IGNhbkFjY2VwdCA9IGNvbmZpZy5hY2NlcHQoY2hhciwgYmVmb3JlKTtcclxuICAgIGlmICghY2FuQWNjZXB0KSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICBpZiAoY29uZmlnLnRyYW5zZm9ybSkge1xyXG4gICAgICBpZiAoY29uZmlnLnRyYW5zZm9ybSA9PT0gVHJhbnNmb3JtVHlwZS5Mb3dlcmNhc2UpIHtcclxuICAgICAgICByZXR1cm4gY2hhci50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcudHJhbnNmb3JtID09PSBUcmFuc2Zvcm1UeXBlLlVwcGVyY2FzZSkge1xyXG4gICAgICAgIHJldHVybiBjaGFyLnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgIGBBUkQtSVMwMDQ5VDogPGFyZC1kaWdpdC1pbnB1dD4ncyB2YWx1ZSB2YWxpZGF0b3IgZW5jb3VudGVyZWQgYW4gdW5leHBlY3RlZCB2YWx1ZSBvZiB0aGUgY29uZmlnJ3MgXCJ0cmFuc2Zvcm1cIiBwcm9wZXJ0eS4gQXJkaXVtIFVJIHdhcyBhYmxlIHRvIGhhbmRsZSB0aGlzIGlzc3VlLCBidXQgcGxlYXNlIHJlcG9ydCBpdCB0byB0aGUgY3JlYXRvcnMuYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNoYXI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -5,4 +5,4 @@ export const DigitInputConfigDataType = {
|
|
|
5
5
|
export function _sanitizeRegExpString(str) {
|
|
6
6
|
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxRQUFRO0NBQ1IsQ0FBQztBQUdYLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFXO0lBQy9DLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZ2l0SW5wdXRDb25maWdEYXRhIHtcclxuICB0eXBlOiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGU7XHJcbiAgY2hhcj86IHN0cmluZztcclxuICBpbmRleD86IG51bWJlcjtcclxuICByZWFkb25seT86IGJvb2xlYW47XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEaWdpdElucHV0TW9kZWxIb3N0IHtcclxuICByZWFkb25seSBpbnB1dHM6IFNpZ25hbDxyZWFkb25seSBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+W10+O1xyXG4gIHJlYWRvbmx5IG91dHB1dEFzU3RyaW5nOiBTaWduYWw8Ym9vbGVhbj47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUgPSB7XHJcbiAgSW5wdXQ6ICdpbnB1dCcsXHJcbiAgU3RhdGljOiAnc3RhdGljJyxcclxufSBhcyBjb25zdDtcclxuZXhwb3J0IHR5cGUgRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlID0gKHR5cGVvZiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUpW2tleW9mIHR5cGVvZiBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGVdO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9zYW5pdGl6ZVJlZ0V4cFN0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpO1xyXG59XHJcbiJdfQ==
|
|
@@ -155,7 +155,7 @@ export class ArdiumHexInputComponent extends _FormFieldComponentBase {
|
|
|
155
155
|
provide: _FormFieldComponentBase,
|
|
156
156
|
useExisting: forwardRef(() => ArdiumHexInputComponent),
|
|
157
157
|
},
|
|
158
|
-
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdHexInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdHexInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdHexInputPlaceholderTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "textInputEl", first: true, predicate: ["textInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [hasError]=\"hasError()\"\r\n [isFocused]=\"isFocused\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-hex-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup()\"\r\n >\r\n <div\r\n class=\"ard-hash-container\"\r\n *ngIf=\"showHash\"\r\n >\r\n #\r\n </div>\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n\r\n <input\r\n #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n (input)=\"onInput(textInput.value, $event)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (change)=\"onChange($event)\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["hasError", "isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: i3._ClearButtonComponent, selector: "ard-clear-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
158
|
+
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdHexInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdHexInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdHexInputPlaceholderTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "textInputEl", first: true, predicate: ["textInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [isFocused]=\"isFocused()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-hex-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup()\"\r\n >\r\n <div\r\n class=\"ard-hash-container\"\r\n *ngIf=\"showHash\"\r\n >\r\n #\r\n </div>\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n\r\n <input\r\n #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n (input)=\"onInput(textInput.value, $event)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (change)=\"onChange($event)\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["hasError", "isSuccess", "isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: i3._ClearButtonComponent, selector: "ard-clear-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
159
159
|
}
|
|
160
160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumHexInputComponent, decorators: [{
|
|
161
161
|
type: Component,
|
|
@@ -169,11 +169,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
169
169
|
provide: _FormFieldComponentBase,
|
|
170
170
|
useExisting: forwardRef(() => ArdiumHexInputComponent),
|
|
171
171
|
},
|
|
172
|
-
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [hasError]=\"hasError()\"\r\n [isFocused]=\"isFocused\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-hex-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup()\"\r\n >\r\n <div\r\n class=\"ard-hash-container\"\r\n *ngIf=\"showHash\"\r\n >\r\n #\r\n </div>\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n\r\n <input\r\n #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n (input)=\"onInput(textInput.value, $event)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (change)=\"onChange($event)\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;pointer-events:none}\n"] }]
|
|
172
|
+
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [isFocused]=\"isFocused()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-hex-input\"\r\n [class.ard-has-value]=\"value\"\r\n (mouseup)=\"onMouseup()\"\r\n >\r\n <div\r\n class=\"ard-hash-container\"\r\n *ngIf=\"showHash\"\r\n >\r\n #\r\n </div>\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n\r\n <input\r\n #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n (input)=\"onInput(textInput.value, $event)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (change)=\"onChange($event)\"\r\n (mouseup)=\"$event.stopPropagation()\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;pointer-events:none}\n"] }]
|
|
173
173
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
174
174
|
type: Inject,
|
|
175
175
|
args: [ARD_HEX_INPUT_DEFAULTS]
|
|
176
176
|
}] }], propDecorators: { value: [{
|
|
177
177
|
type: Input
|
|
178
178
|
}] } });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL2hleC1pbnB1dC9oZXgtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaGV4LWlucHV0L2hleC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUVaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFJL0UsT0FBTyxFQUFFLHNCQUFzQixFQUF1QixNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFDTCx1Q0FBdUMsRUFDdkMsa0NBQWtDLEVBQ2xDLGtDQUFrQyxHQUNuQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBb0JyRSxNQUFNLE9BQU8sdUJBQ1gsU0FBUSx1QkFBdUI7SUFJL0IsWUFBNEMsUUFBNkI7UUFDdkUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxCLGNBQWM7UUFDTCxnQkFBVyxHQUFHLFNBQVMsQ0FBK0IsV0FBVyxDQUFDLENBQUM7UUFFekQsZUFBVSxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFD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Q0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDOytHQXhLVSx1QkFBdUIsa0JBS2Qsc0JBQXNCO21HQUwvQix1QkFBdUIsZ3NEQVp2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsdUJBQXVCO2dCQUNoQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2FBQ3ZEO1NBQ0Ysc0VBNEJzQyxrQ0FBa0MsaUdBQ2xDLGtDQUFrQyxzR0FLN0IsdUNBQXVDLGlOQy9FckYsdW5EQXNEQTs7NEZEUGEsdUJBQXVCO2tCQWxCbkMsU0FBUzsrQkFDRSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDO3lCQUN2RDtxQkFDRjs7MEJBT1ksTUFBTTsyQkFBQyxzQkFBc0I7eUNBaUZ0QyxLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZCxcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIElucHV0LFxyXG4gIG91dHB1dCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9faW50ZXJuYWwvZm9ybS1maWVsZC1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBDYXNlVHJhbnNmb3JtZXJUeXBlIH0gZnJvbSAnLi4vaW5wdXQtdHlwZXMnO1xyXG5pbXBvcnQgeyBBUkRfSEVYX0lOUFVUX0RFRkFVTFRTLCBBcmRIZXhJbnB1dERlZmF1bHRzIH0gZnJvbSAnLi9oZXgtaW5wdXQuZGVmYXVsdHMnO1xyXG5pbXBvcnQge1xyXG4gIEFyZEhleElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRIZXhJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZEhleElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUsXHJcbn0gZnJvbSAnLi9oZXgtaW5wdXQuZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IEhleElucHV0TW9kZWwsIEhleElucHV0TW9kZWxIb3N0IH0gZnJvbSAnLi9oZXgtaW5wdXQubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtaGV4LWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGV4LWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZXgtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtSGV4SW5wdXRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IF9Gb3JtRmllbGRDb21wb25lbnRCYXNlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1IZXhJbnB1dENvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1IZXhJbnB1dENvbXBvbmVudFxyXG4gIGV4dGVuZHMgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2VcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBIZXhJbnB1dE1vZGVsSG9zdCwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZEhleElucHV0RGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfSEVYX0lOUFVUX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkSGV4SW5wdXREZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG4gIH1cclxuICAvLyEgaW5wdXQgdmlld1xyXG4gIHJlYWRvbmx5IHRleHRJbnB1dEVsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KCd0ZXh0SW5wdXQnKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0TW9kZWwgPSBuZXcgSGV4SW5wdXRNb2RlbCh0aGlzKTtcclxuICBwcm90ZWN0ZWQgX3dhc1ZpZXdJbml0ID0gZmFsc2U7XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fd2FzVmlld0luaXQgPSB0cnVlO1xyXG4gICAgdGhpcy5fc2V0SW5wdXRBdHRyaWJ1dGVzKCk7XHJcbiAgICAvL3NldCB0aGUgdmFsdWVcclxuICAgIGlmICh0aGlzLl92YWx1ZUJlZm9yZUluaXQpIHtcclxuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCk7XHJcbiAgICAgIGRlbGV0ZSB0aGlzLl92YWx1ZUJlZm9yZUluaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBpbnB1dElkID0gaW5wdXQ8TnVsbGFibGU8c3RyaW5nPj4oKTtcclxuXHJcbiAgLy8hIHByZWZpeCAmIHN1ZmZpeFxyXG4gIHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZEhleElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZEhleElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICAvLyEgcGxhY2Vob2xkZXJcclxuICByZWFkb25seSBwbGFjZWhvbGRlciA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHRoaXMuX0RFRkFVTFRTLnBsYWNlaG9sZGVyKTtcclxuXHJcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRIZXhJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICByZWFkb25seSBzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKTogYm9vbGVhbiA9PiBCb29sZWFuKHRoaXMucGxhY2Vob2xkZXIoKSkgJiYgIXRoaXMuaW5wdXRNb2RlbC5zdHJpbmdWYWx1ZSgpKTtcclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICAvL2FsbCBoYW5kbGVkIGluIGFyZC1mb3JtLWZpZWxkLWZyYW1lIGNvbXBvbmVudFxyXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxGb3JtRWxlbWVudEFwcGVhcmFuY2U+KHRoaXMuX0RFRkFVTFRTLmFwcGVhcmFuY2UpO1xyXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDxGb3JtRWxlbWVudFZhcmlhbnQ+KHRoaXMuX0RFRkFVTFRTLnZhcmlhbnQpO1xyXG5cclxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIC8vISBzZXR0aW5nc1xyXG4gIHJlYWRvbmx5IGNhc2UgPSBpbnB1dDxDYXNlVHJhbnNmb3JtZXJUeXBlPih0aGlzLl9ERUZBVUxUUy5jYXNlKTtcclxuXHJcbiAgcmVhZG9ubHkgbWF4RGlnaXRzID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55Pih0aGlzLl9ERUZBVUxUUy5tYXhEaWdpdHMsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5tYXhEaWdpdHMpLFxyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBoaWRlSGFzaCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaGlkZUhhc2gsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBzaG93SGFzaCA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmhpZGVIYXNoKCkpO1xyXG5cclxuICAvLyEgY2xlYXIgYnV0dG9uXHJcbiAgcmVhZG9ubHkgY2xlYXJhYmxlID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jbGVhcmFibGUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgY2xlYXJCdXR0b25UaXRsZSA9IGlucHV0PHN0cmluZz4odGhpcy5fREVGQVVMVFMuY2xlYXJCdXR0b25UaXRsZSk7XHJcblxyXG4gIHJlYWRvbmx5IHNob3VsZFNob3dDbGVhckJ1dHRvbiA9IGNvbXB1dGVkPGJvb2xlYW4+KFxyXG4gICAgKCkgPT4gdGhpcy5jbGVhcmFibGUoKSAmJiAhdGhpcy5kaXNhYmxlZCgpICYmIEJvb2xlYW4odGhpcy5pbnB1dE1vZGVsPy52YWx1ZSgpKVxyXG4gICk7XHJcblxyXG4gIG9uQ2xlYXJCdXR0b25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmlucHV0TW9kZWwuY2xlYXIoKTtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIHRoaXMuX2VtaXRJbnB1dCgpO1xyXG4gICAgdGhpcy5jbGVhckV2ZW50LmVtaXQoKTtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIC8vISBvdGhlciBpbnB1dHNcclxuICByZWFkb25seSBpbnB1dEF0dHJzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4oe30pO1xyXG5cclxuICAvLyEgY29udHJvbCB2YWx1ZSBhY2Nlc3NvcidzIHdyaXRlIHZhbHVlIGltcGxlbWVudGF0aW9uXHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5fd2FzVmlld0luaXQpIHtcclxuICAgICAgdGhpcy5fdmFsdWVCZWZvcmVJbml0ID0gdjtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dE1vZGVsLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG5cclxuICAvLyEgdmFsdWUgdHdvLXdheSBiaW5kaW5nXHJcbiAgcHJvdGVjdGVkIF92YWx1ZUJlZm9yZUluaXQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZSh2OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBpZiAoIXRoaXMuX3dhc1ZpZXdJbml0KSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCA9IHY7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMud3JpdGVWYWx1ZSh2KTtcclxuICB9XHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5wdXRNb2RlbD8uaGFzaFNpZ25WYWx1ZSgpO1xyXG4gIH1cclxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxzdHJpbmc+KCk7XHJcblxyXG4gIC8vISBldmVudCBlbWl0dGVyc1xyXG4gIHJlYWRvbmx5IGlucHV0RXZlbnQgPSBvdXRwdXQ8c3RyaW5nPih7IGFsaWFzOiAnaW5wdXQnIH0pO1xyXG4gIHJlYWRvbmx5IGNoYW5nZUV2ZW50ID0gb3V0cHV0PHN0cmluZz4oeyBhbGlhczogJ2NoYW5nZScgfSk7XHJcbiAgcmVhZG9ubHkgY2xlYXJFdmVudCA9IG91dHB1dDx2b2lkPih7IGFsaWFzOiAnY2xlYXInIH0pO1xyXG5cclxuICAvLyEgZXZlbnQgaGFuZGxlcnNcclxuICBvbklucHV0KG5ld1ZhbDogc3RyaW5nLCBldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgY29uc3QgdmFsdWVIYXNDaGFuZ2VkID0gdGhpcy5pbnB1dE1vZGVsLndyaXRlVmFsdWUobmV3VmFsKTtcclxuICAgIGlmICghdmFsdWVIYXNDaGFuZ2VkKSByZXR1cm47XHJcbiAgICB0aGlzLl9lbWl0SW5wdXQoKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9lbWl0SW5wdXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnB1dE1vZGVsLmhhc2hTaWduVmFsdWUoKTtcclxuICAgIHRoaXMuaW5wdXRFdmVudC5lbWl0KHYpO1xyXG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnB1dE1vZGVsLmhhc2hTaWduVmFsdWUoKTtcclxuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh2KTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25CbHVyKGV2ZW50KTtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vc21hcnQgZm9jdXNcclxuICBvbk1vdXNldXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi50eXBlID09PSAnUmFuZ2UnKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25Db3B5KGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgIC8vZG9lcyB0aGUgc2VsZWN0aW9uIGNvdmVyIHRoZSBlbnRpcmUgaW5wdXRcclxuICAgICAgKCh0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDAgJiZcclxuICAgICAgICB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID09PSB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB8fFxyXG4gICAgICAgIC8vb3IgaXMgemVyby13aWRlXHJcbiAgICAgICAgdGhpcy50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kKVxyXG4gICAgKSB7XHJcbiAgICAgIGV2ZW50LmNsaXBib2FyZERhdGE/LnNldERhdGEoJ3RleHQvcGxhaW4nLCB0aGlzLnZhbHVlKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISBoZWxwZXJzXHJcbiAgcHJvdGVjdGVkIF9zZXRJbnB1dEF0dHJpYnV0ZXMoKSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMudGV4dElucHV0RWwoKSEubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XHJcbiAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgYXV0b2NvcnJlY3Q6ICdvZmYnLFxyXG4gICAgICBhdXRvY2FwaXRhbGl6ZTogJ29mZicsXHJcbiAgICAgIGF1dG9jb21wbGV0ZTogJ29mZicsXHJcbiAgICAgIHRhYmluZGV4OiBTdHJpbmcodGhpcy50YWJJbmRleCksXHJcbiAgICAgIC4uLnRoaXMuaW5wdXRBdHRycyxcclxuICAgIH07XHJcblxyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcclxuICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKGtleSwgU3RyaW5nKGF0dHJpYnV0ZXNba2V5XSkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8YXJkLWZvcm0tZmllbGQtZnJhbWVcclxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlKClcIlxyXG4gIFt2YXJpYW50XT1cInZhcmlhbnQoKVwiXHJcbiAgW2NvbXBhY3RdPVwiY29tcGFjdCgpXCJcclxuICBbaGFzRXJyb3JdPVwiaGFzRXJyb3IoKVwiXHJcbiAgW2lzRm9jdXNlZF09XCJpc0ZvY3VzZWRcIlxyXG4gIFtwcmVmaXhUZW1wbGF0ZV09XCJwcmVmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZVwiXHJcbiAgW3N1ZmZpeFRlbXBsYXRlXT1cInN1ZmZpeFRlbXBsYXRlKCk/LnRlbXBsYXRlXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYXJkLWhleC1pbnB1dFwiXHJcbiAgICBbY2xhc3MuYXJkLWhhcy12YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAobW91c2V1cCk9XCJvbk1vdXNldXAoKVwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImFyZC1oYXNoLWNvbnRhaW5lclwiXHJcbiAgICAgICpuZ0lmPVwic2hvd0hhc2hcIlxyXG4gICAgPlxyXG4gICAgICAjXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgIEBpZiAoc2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyKCkpIHtcclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyKCkgfX08L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICN0ZXh0SW5wdXRcclxuICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkKClcIlxyXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQodGV4dElucHV0LnZhbHVlLCAkZXZlbnQpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAobW91c2V1cCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgIChjb3B5KT1cIm9uQ29weSgkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZiAoc2hvdWxkU2hvd0NsZWFyQnV0dG9uKCkpIHtcclxuICAgICAgPGFyZC1jbGVhci1idXR0b25cclxuICAgICAgICBbdGl0bGVdPVwiY2xlYXJCdXR0b25UaXRsZSgpXCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGVhckJ1dHRvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2FyZC1mb3JtLWZpZWxkLWZyYW1lPlxyXG4iXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL2hleC1pbnB1dC9oZXgtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaGV4LWlucHV0L2hleC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUVaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFJL0UsT0FBTyxFQUFFLHNCQUFzQixFQUF1QixNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFDTCx1Q0FBdUMsRUFDdkMsa0NBQWtDLEVBQ2xDLGtDQUFrQyxHQUNuQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBb0JyRSxNQUFNLE9BQU8sdUJBQ1gsU0FBUSx1QkFBdUI7SUFJL0IsWUFBNEMsUUFBNkI7UUFDdkUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxCLGNBQWM7UUFDTCxnQkFBVyxHQUFHLFNBQVMsQ0FBK0IsV0FBVyxDQUFDLENBQUM7UUFFekQsZUFBVSxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFD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Q0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDOytHQXhLVSx1QkFBdUIsa0JBS2Qsc0JBQXNCO21HQUwvQix1QkFBdUIsZ3NEQVp2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsdUJBQXVCO2dCQUNoQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2FBQ3ZEO1NBQ0Ysc0VBNEJzQyxrQ0FBa0MsaUdBQ2xDLGtDQUFrQyxzR0FLN0IsdUNBQXVDLGlOQy9FckYsMHBEQXVEQTs7NEZEUmEsdUJBQXVCO2tCQWxCbkMsU0FBUzsrQkFDRSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDO3lCQUN2RDtxQkFDRjs7MEJBT1ksTUFBTTsyQkFBQyxzQkFBc0I7eUNBaUZ0QyxLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZCxcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIElucHV0LFxyXG4gIG91dHB1dCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9faW50ZXJuYWwvZm9ybS1maWVsZC1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBDYXNlVHJhbnNmb3JtZXJUeXBlIH0gZnJvbSAnLi4vaW5wdXQtdHlwZXMnO1xyXG5pbXBvcnQgeyBBUkRfSEVYX0lOUFVUX0RFRkFVTFRTLCBBcmRIZXhJbnB1dERlZmF1bHRzIH0gZnJvbSAnLi9oZXgtaW5wdXQuZGVmYXVsdHMnO1xyXG5pbXBvcnQge1xyXG4gIEFyZEhleElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRIZXhJbnB1dFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZEhleElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUsXHJcbn0gZnJvbSAnLi9oZXgtaW5wdXQuZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IEhleElucHV0TW9kZWwsIEhleElucHV0TW9kZWxIb3N0IH0gZnJvbSAnLi9oZXgtaW5wdXQubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtaGV4LWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGV4LWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZXgtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtSGV4SW5wdXRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IF9Gb3JtRmllbGRDb21wb25lbnRCYXNlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1IZXhJbnB1dENvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1IZXhJbnB1dENvbXBvbmVudFxyXG4gIGV4dGVuZHMgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2VcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBIZXhJbnB1dE1vZGVsSG9zdCwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZEhleElucHV0RGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfSEVYX0lOUFVUX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkSGV4SW5wdXREZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG4gIH1cclxuICAvLyEgaW5wdXQgdmlld1xyXG4gIHJlYWRvbmx5IHRleHRJbnB1dEVsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KCd0ZXh0SW5wdXQnKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0TW9kZWwgPSBuZXcgSGV4SW5wdXRNb2RlbCh0aGlzKTtcclxuICBwcm90ZWN0ZWQgX3dhc1ZpZXdJbml0ID0gZmFsc2U7XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fd2FzVmlld0luaXQgPSB0cnVlO1xyXG4gICAgdGhpcy5fc2V0SW5wdXRBdHRyaWJ1dGVzKCk7XHJcbiAgICAvL3NldCB0aGUgdmFsdWVcclxuICAgIGlmICh0aGlzLl92YWx1ZUJlZm9yZUluaXQpIHtcclxuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCk7XHJcbiAgICAgIGRlbGV0ZSB0aGlzLl92YWx1ZUJlZm9yZUluaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBpbnB1dElkID0gaW5wdXQ8TnVsbGFibGU8c3RyaW5nPj4oKTtcclxuXHJcbiAgLy8hIHByZWZpeCAmIHN1ZmZpeFxyXG4gIHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZEhleElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZEhleElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICAvLyEgcGxhY2Vob2xkZXJcclxuICByZWFkb25seSBwbGFjZWhvbGRlciA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHRoaXMuX0RFRkFVTFRTLnBsYWNlaG9sZGVyKTtcclxuXHJcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRIZXhJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICByZWFkb25seSBzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKTogYm9vbGVhbiA9PiBCb29sZWFuKHRoaXMucGxhY2Vob2xkZXIoKSkgJiYgIXRoaXMuaW5wdXRNb2RlbC5zdHJpbmdWYWx1ZSgpKTtcclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICAvL2FsbCBoYW5kbGVkIGluIGFyZC1mb3JtLWZpZWxkLWZyYW1lIGNvbXBvbmVudFxyXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxGb3JtRWxlbWVudEFwcGVhcmFuY2U+KHRoaXMuX0RFRkFVTFRTLmFwcGVhcmFuY2UpO1xyXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDxGb3JtRWxlbWVudFZhcmlhbnQ+KHRoaXMuX0RFRkFVTFRTLnZhcmlhbnQpO1xyXG5cclxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIC8vISBzZXR0aW5nc1xyXG4gIHJlYWRvbmx5IGNhc2UgPSBpbnB1dDxDYXNlVHJhbnNmb3JtZXJUeXBlPih0aGlzLl9ERUZBVUxUUy5jYXNlKTtcclxuXHJcbiAgcmVhZG9ubHkgbWF4RGlnaXRzID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55Pih0aGlzLl9ERUZBVUxUUy5tYXhEaWdpdHMsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5tYXhEaWdpdHMpLFxyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBoaWRlSGFzaCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuaGlkZUhhc2gsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBzaG93SGFzaCA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmhpZGVIYXNoKCkpO1xyXG5cclxuICAvLyEgY2xlYXIgYnV0dG9uXHJcbiAgcmVhZG9ubHkgY2xlYXJhYmxlID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jbGVhcmFibGUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgY2xlYXJCdXR0b25UaXRsZSA9IGlucHV0PHN0cmluZz4odGhpcy5fREVGQVVMVFMuY2xlYXJCdXR0b25UaXRsZSk7XHJcblxyXG4gIHJlYWRvbmx5IHNob3VsZFNob3dDbGVhckJ1dHRvbiA9IGNvbXB1dGVkPGJvb2xlYW4+KFxyXG4gICAgKCkgPT4gdGhpcy5jbGVhcmFibGUoKSAmJiAhdGhpcy5kaXNhYmxlZCgpICYmIEJvb2xlYW4odGhpcy5pbnB1dE1vZGVsPy52YWx1ZSgpKVxyXG4gICk7XHJcblxyXG4gIG9uQ2xlYXJCdXR0b25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmlucHV0TW9kZWwuY2xlYXIoKTtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIHRoaXMuX2VtaXRJbnB1dCgpO1xyXG4gICAgdGhpcy5jbGVhckV2ZW50LmVtaXQoKTtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIC8vISBvdGhlciBpbnB1dHNcclxuICByZWFkb25seSBpbnB1dEF0dHJzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4oe30pO1xyXG5cclxuICAvLyEgY29udHJvbCB2YWx1ZSBhY2Nlc3NvcidzIHdyaXRlIHZhbHVlIGltcGxlbWVudGF0aW9uXHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5fd2FzVmlld0luaXQpIHtcclxuICAgICAgdGhpcy5fdmFsdWVCZWZvcmVJbml0ID0gdjtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dE1vZGVsLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG5cclxuICAvLyEgdmFsdWUgdHdvLXdheSBiaW5kaW5nXHJcbiAgcHJvdGVjdGVkIF92YWx1ZUJlZm9yZUluaXQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZSh2OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBpZiAoIXRoaXMuX3dhc1ZpZXdJbml0KSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCA9IHY7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMud3JpdGVWYWx1ZSh2KTtcclxuICB9XHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5wdXRNb2RlbD8uaGFzaFNpZ25WYWx1ZSgpO1xyXG4gIH1cclxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxzdHJpbmc+KCk7XHJcblxyXG4gIC8vISBldmVudCBlbWl0dGVyc1xyXG4gIHJlYWRvbmx5IGlucHV0RXZlbnQgPSBvdXRwdXQ8c3RyaW5nPih7IGFsaWFzOiAnaW5wdXQnIH0pO1xyXG4gIHJlYWRvbmx5IGNoYW5nZUV2ZW50ID0gb3V0cHV0PHN0cmluZz4oeyBhbGlhczogJ2NoYW5nZScgfSk7XHJcbiAgcmVhZG9ubHkgY2xlYXJFdmVudCA9IG91dHB1dDx2b2lkPih7IGFsaWFzOiAnY2xlYXInIH0pO1xyXG5cclxuICAvLyEgZXZlbnQgaGFuZGxlcnNcclxuICBvbklucHV0KG5ld1ZhbDogc3RyaW5nLCBldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgY29uc3QgdmFsdWVIYXNDaGFuZ2VkID0gdGhpcy5pbnB1dE1vZGVsLndyaXRlVmFsdWUobmV3VmFsKTtcclxuICAgIGlmICghdmFsdWVIYXNDaGFuZ2VkKSByZXR1cm47XHJcbiAgICB0aGlzLl9lbWl0SW5wdXQoKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9lbWl0SW5wdXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnB1dE1vZGVsLmhhc2hTaWduVmFsdWUoKTtcclxuICAgIHRoaXMuaW5wdXRFdmVudC5lbWl0KHYpO1xyXG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnB1dE1vZGVsLmhhc2hTaWduVmFsdWUoKTtcclxuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh2KTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25CbHVyKGV2ZW50KTtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vc21hcnQgZm9jdXNcclxuICBvbk1vdXNldXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi50eXBlID09PSAnUmFuZ2UnKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25Db3B5KGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgIC8vZG9lcyB0aGUgc2VsZWN0aW9uIGNvdmVyIHRoZSBlbnRpcmUgaW5wdXRcclxuICAgICAgKCh0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDAgJiZcclxuICAgICAgICB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID09PSB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB8fFxyXG4gICAgICAgIC8vb3IgaXMgemVyby13aWRlXHJcbiAgICAgICAgdGhpcy50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kKVxyXG4gICAgKSB7XHJcbiAgICAgIGV2ZW50LmNsaXBib2FyZERhdGE/LnNldERhdGEoJ3RleHQvcGxhaW4nLCB0aGlzLnZhbHVlKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISBoZWxwZXJzXHJcbiAgcHJvdGVjdGVkIF9zZXRJbnB1dEF0dHJpYnV0ZXMoKSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMudGV4dElucHV0RWwoKSEubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XHJcbiAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgYXV0b2NvcnJlY3Q6ICdvZmYnLFxyXG4gICAgICBhdXRvY2FwaXRhbGl6ZTogJ29mZicsXHJcbiAgICAgIGF1dG9jb21wbGV0ZTogJ29mZicsXHJcbiAgICAgIHRhYmluZGV4OiBTdHJpbmcodGhpcy50YWJJbmRleCksXHJcbiAgICAgIC4uLnRoaXMuaW5wdXRBdHRycyxcclxuICAgIH07XHJcblxyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcclxuICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKGtleSwgU3RyaW5nKGF0dHJpYnV0ZXNba2V5XSkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8YXJkLWZvcm0tZmllbGQtZnJhbWVcclxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlKClcIlxyXG4gIFt2YXJpYW50XT1cInZhcmlhbnQoKVwiXHJcbiAgW2NvbXBhY3RdPVwiY29tcGFjdCgpXCJcclxuICBbaGFzRXJyb3JdPVwiaGFzRXJyb3IoKVwiXHJcbiAgW2lzU3VjY2Vzc109XCJpc1N1Y2Nlc3MoKVwiXHJcbiAgW2lzRm9jdXNlZF09XCJpc0ZvY3VzZWQoKVwiXHJcbiAgW3ByZWZpeFRlbXBsYXRlXT1cInByZWZpeFRlbXBsYXRlKCk/LnRlbXBsYXRlXCJcclxuICBbc3VmZml4VGVtcGxhdGVdPVwic3VmZml4VGVtcGxhdGUoKT8udGVtcGxhdGVcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhcmQtaGV4LWlucHV0XCJcclxuICAgIFtjbGFzcy5hcmQtaGFzLXZhbHVlXT1cInZhbHVlXCJcclxuICAgIChtb3VzZXVwKT1cIm9uTW91c2V1cCgpXCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiYXJkLWhhc2gtY29udGFpbmVyXCJcclxuICAgICAgKm5nSWY9XCJzaG93SGFzaFwiXHJcbiAgICA+XHJcbiAgICAgICNcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1pbnB1dC1jb250YWluZXJcIj5cclxuICAgICAgQGlmIChzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIoKSkge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIoKSB9fTwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwbGFjZWhvbGRlclRlbXBsYXRlKCk/LnRlbXBsYXRlIHx8IGRlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgfVxyXG5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgI3RleHRJbnB1dFxyXG4gICAgICAgICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIFthdHRyLmlkXT1cImlucHV0SWQoKVwiXHJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dCh0ZXh0SW5wdXQudmFsdWUsICRldmVudClcIlxyXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChtb3VzZXVwKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgKGNvcHkpPVwib25Db3B5KCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmIChzaG91bGRTaG93Q2xlYXJCdXR0b24oKSkge1xyXG4gICAgICA8YXJkLWNsZWFyLWJ1dHRvblxyXG4gICAgICAgIFt0aXRsZV09XCJjbGVhckJ1dHRvblRpdGxlKClcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNsZWFyQnV0dG9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvYXJkLWZvcm0tZmllbGQtZnJhbWU+XHJcbiJdfQ==
|