ecabs-components 1.1.57 → 1.1.62
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/README.md +7 -1
- package/esm2022/lib/base/consts/error-messages.consts.mjs +13 -1
- package/esm2022/lib/base/directives/date-mask.directive.mjs +56 -80
- package/esm2022/lib/base/directives/time-mask.directive.mjs +12 -35
- package/esm2022/lib/base/directives/time-range.directive.mjs +6 -32
- package/esm2022/lib/base/utils/time-mask.util.mjs +87 -0
- package/esm2022/lib/ecabs-button-toggle/ecabs-button-toggle.component.mjs +2 -2
- package/esm2022/lib/ecabs-buttons-v2/ecabs-buttons-v2.component.mjs +2 -2
- package/esm2022/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.mjs +105 -0
- package/esm2022/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.mjs +22 -0
- package/esm2022/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.mjs +4 -6
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +31 -11
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-input-range/ecabs-input-range.component.mjs +188 -0
- package/esm2022/lib/ecabs-input-range/ecabs-input-range.module.mjs +40 -0
- package/esm2022/lib/ecabs-time-range-input-v2/config.model.mjs +2 -0
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.mjs +167 -0
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.mjs +32 -0
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.mjs +29 -0
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +3 -55
- package/esm2022/public-api.mjs +8 -1
- package/fesm2022/ecabs-components.mjs +734 -290
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/lib/base/directives/date-mask.directive.d.ts +6 -7
- package/lib/base/directives/time-mask.directive.d.ts +2 -3
- package/lib/base/directives/time-range.directive.d.ts +1 -2
- package/lib/base/utils/time-mask.util.d.ts +3 -0
- package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.d.ts +29 -0
- package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.d.ts +12 -0
- package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +4 -2
- package/lib/ecabs-input-range/ecabs-input-range.component.d.ts +44 -0
- package/lib/ecabs-input-range/ecabs-input-range.module.d.ts +13 -0
- package/lib/ecabs-time-range-input-v2/config.model.d.ts +5 -0
- package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.d.ts +51 -0
- package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.d.ts +11 -0
- package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.d.ts +12 -0
- package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +0 -5
- package/package.json +3 -2
- package/public-api.d.ts +7 -0
- package/src/assets/styles/scss/utilities/_variables.scss +1 -0
- package/src/assets/styles/tailwind/index.scss +1 -1
- package/esm2022/lib/base/consts/date-mask.consts.mjs +0 -76
- package/lib/base/consts/date-mask.consts.d.ts +0 -7
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, forwardRef, } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import EcabsElementBaseComponent from '../base/element-base';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../base/element-wrapper/element-wrapper.component";
|
|
7
|
+
import * as i2 from "@angular/material/checkbox";
|
|
8
|
+
export class EcabsCheckboxV2Component extends EcabsElementBaseComponent {
|
|
9
|
+
injector;
|
|
10
|
+
destroyRef;
|
|
11
|
+
label = '';
|
|
12
|
+
showLabel = false;
|
|
13
|
+
checkboxChanged = new EventEmitter();
|
|
14
|
+
val = false;
|
|
15
|
+
get value() {
|
|
16
|
+
return this.val;
|
|
17
|
+
}
|
|
18
|
+
get hasError() {
|
|
19
|
+
return (!!this.control &&
|
|
20
|
+
this.control.invalid &&
|
|
21
|
+
(this.control.touched || this.control.dirty));
|
|
22
|
+
}
|
|
23
|
+
set value(value) {
|
|
24
|
+
if (value !== undefined && this.val !== value) {
|
|
25
|
+
this.val = value;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
constructor(injector, destroyRef) {
|
|
29
|
+
super();
|
|
30
|
+
this.injector = injector;
|
|
31
|
+
this.destroyRef = destroyRef;
|
|
32
|
+
}
|
|
33
|
+
onChange = () => { };
|
|
34
|
+
onTouched = () => { };
|
|
35
|
+
ngAfterViewInit() {
|
|
36
|
+
const ngControl = this.injector.get(NgControl, null);
|
|
37
|
+
if (ngControl) {
|
|
38
|
+
this.control = ngControl.control;
|
|
39
|
+
this.validationLabel = this.label || this.validationLabel;
|
|
40
|
+
this.control.statusChanges
|
|
41
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
42
|
+
.subscribe(() => {
|
|
43
|
+
this.updateDisabledState();
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
this.updateDisabledState();
|
|
47
|
+
}
|
|
48
|
+
toggle(event) {
|
|
49
|
+
this.value = !!event.checked;
|
|
50
|
+
this.onChange(this.value);
|
|
51
|
+
this.onTouched();
|
|
52
|
+
this.checkboxChanged.emit(this.value);
|
|
53
|
+
}
|
|
54
|
+
onRowClick() {
|
|
55
|
+
if (!this.disabled) {
|
|
56
|
+
this.value = !this.value;
|
|
57
|
+
this.onChange(this.value);
|
|
58
|
+
this.onTouched();
|
|
59
|
+
this.checkboxChanged.emit(this.value);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
onKeyDown(event) {
|
|
63
|
+
if (event.key === ' ' || event.key === 'Enter') {
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
this.onRowClick();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
onBlur() {
|
|
69
|
+
this.onTouched();
|
|
70
|
+
}
|
|
71
|
+
writeValue(value) {
|
|
72
|
+
this.value = !!value;
|
|
73
|
+
}
|
|
74
|
+
registerOnChange(fn) {
|
|
75
|
+
this.onChange = fn;
|
|
76
|
+
}
|
|
77
|
+
registerOnTouched(fn) {
|
|
78
|
+
this.onTouched = fn;
|
|
79
|
+
}
|
|
80
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsCheckboxV2Component, deps: [{ token: i0.Injector }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsCheckboxV2Component, selector: "ecabs-checkbox-v2", inputs: { label: "label", showLabel: "showLabel" }, outputs: { checkboxChanged: "checkboxChanged" }, providers: [
|
|
82
|
+
{
|
|
83
|
+
provide: NG_VALUE_ACCESSOR,
|
|
84
|
+
useExisting: forwardRef(() => EcabsCheckboxV2Component),
|
|
85
|
+
multi: true,
|
|
86
|
+
},
|
|
87
|
+
], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div\r\n class=\"ecabs-checkbox-v2\"\r\n [class.ecabs-checkbox-v2--checked]=\"value\"\r\n [class.ecabs-checkbox-v2--disabled]=\"disabled\"\r\n [class.ecabs-checkbox-v2--error]=\"hasError\"\r\n [attr.tabindex]=\"disabled ? null : 0\"\r\n (click)=\"onRowClick()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n >\r\n <span class=\"form-field__label text-base pl-2\">{{ label }}</span>\r\n\r\n <mat-checkbox\r\n class=\"ecabs-checkbox-v2__control\"\r\n [id]=\"name\"\r\n [name]=\"name\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"value\"\r\n color=\"primary\"\r\n [disableRipple]=\"true\"\r\n (change)=\"toggle($event)\"\r\n (blur)=\"onBlur()\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n </mat-checkbox>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: [":root{--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #df3838;--color-error-opacity: #fbe4e4;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-warn: #f2994a;--color-warn-rgb: 242, 153, 74;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-warning: #f2994a;--color-warning-opacity: #fdf0e4;--color-success: #075145;--color-success--opacity: #affebf;--color-success-rgb: 7, 81, 69;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-option-label-text-size: 14px}.ecabs-checkbox-v2{display:flex;align-items:center;justify-content:space-between;width:100%;padding:4px 8px;border:1px solid var(--color-gray-200);border-radius:.5rem;background-color:var(--color-white);cursor:pointer}.ecabs-checkbox-v2:hover{border-color:var(--color-gray-300);background-color:var(--color-gray-50)}.ecabs-checkbox-v2--checked{border-color:var(--color-brand-dark)}.ecabs-checkbox-v2--error{border-color:var(--color-error)}.ecabs-checkbox-v2--error:hover{border-color:var(--color-error);background-color:var(--color-white)}.ecabs-checkbox-v2--disabled{opacity:.5;cursor:default;border-color:var(--color-gray-200);background-color:var(--color-white)}.ecabs-checkbox-v2--disabled:hover{border-color:var(--color-gray-200);background-color:var(--color-white)}\n"], dependencies: [{ kind: "component", type: i1.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
88
|
+
}
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsCheckboxV2Component, decorators: [{
|
|
90
|
+
type: Component,
|
|
91
|
+
args: [{ selector: 'ecabs-checkbox-v2', providers: [
|
|
92
|
+
{
|
|
93
|
+
provide: NG_VALUE_ACCESSOR,
|
|
94
|
+
useExisting: forwardRef(() => EcabsCheckboxV2Component),
|
|
95
|
+
multi: true,
|
|
96
|
+
},
|
|
97
|
+
], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div\r\n class=\"ecabs-checkbox-v2\"\r\n [class.ecabs-checkbox-v2--checked]=\"value\"\r\n [class.ecabs-checkbox-v2--disabled]=\"disabled\"\r\n [class.ecabs-checkbox-v2--error]=\"hasError\"\r\n [attr.tabindex]=\"disabled ? null : 0\"\r\n (click)=\"onRowClick()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n >\r\n <span class=\"form-field__label text-base pl-2\">{{ label }}</span>\r\n\r\n <mat-checkbox\r\n class=\"ecabs-checkbox-v2__control\"\r\n [id]=\"name\"\r\n [name]=\"name\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"value\"\r\n color=\"primary\"\r\n [disableRipple]=\"true\"\r\n (change)=\"toggle($event)\"\r\n (blur)=\"onBlur()\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n </mat-checkbox>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: [":root{--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #df3838;--color-error-opacity: #fbe4e4;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-warn: #f2994a;--color-warn-rgb: 242, 153, 74;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-warning: #f2994a;--color-warning-opacity: #fdf0e4;--color-success: #075145;--color-success--opacity: #affebf;--color-success-rgb: 7, 81, 69;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-option-label-text-size: 14px}.ecabs-checkbox-v2{display:flex;align-items:center;justify-content:space-between;width:100%;padding:4px 8px;border:1px solid var(--color-gray-200);border-radius:.5rem;background-color:var(--color-white);cursor:pointer}.ecabs-checkbox-v2:hover{border-color:var(--color-gray-300);background-color:var(--color-gray-50)}.ecabs-checkbox-v2--checked{border-color:var(--color-brand-dark)}.ecabs-checkbox-v2--error{border-color:var(--color-error)}.ecabs-checkbox-v2--error:hover{border-color:var(--color-error);background-color:var(--color-white)}.ecabs-checkbox-v2--disabled{opacity:.5;cursor:default;border-color:var(--color-gray-200);background-color:var(--color-white)}.ecabs-checkbox-v2--disabled:hover{border-color:var(--color-gray-200);background-color:var(--color-white)}\n"] }]
|
|
98
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.DestroyRef }]; }, propDecorators: { label: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], showLabel: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], checkboxChanged: [{
|
|
103
|
+
type: Output
|
|
104
|
+
}] } });
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtY2hlY2tib3gtdjIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLWNoZWNrYm94LXYyL2VjYWJzLWNoZWNrYm94LXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1jaGVja2JveC12Mi9lY2Ficy1jaGVja2JveC12Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFFWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsR0FFVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8seUJBQXlCLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFjN0QsTUFBTSxPQUFPLHdCQUNYLFNBQVEseUJBQXlCO0lBaUNkO0lBQ0E7SUE5QlYsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUdYLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFHbEIsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFdkQsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUVaLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxDQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztZQUNwQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQzdD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RUFBRSxDQUFDLHdCQUF3QixDQUFDO2dCQUN2RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaURDOUJILGszQkEyQkE7OzRGREthLHdCQUF3QjtrQkFacEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFHbEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7NEJBQ3ZELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3dIQU9RLEtBQUs7c0JBRGIsS0FBSztnQkFJRyxTQUFTO3NCQURqQixLQUFLO2dCQUlHLGVBQWU7c0JBRHZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBmb3J3YXJkUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIE5nQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLWNoZWNrYm94LXYyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtY2hlY2tib3gtdjIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWNoZWNrYm94LXYyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFY2Fic0NoZWNrYm94VjJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzQ2hlY2tib3hWMkNvbXBvbmVudFxyXG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXRcclxue1xyXG4gIEBJbnB1dCgpXHJcbiAgb3ZlcnJpZGUgbGFiZWwgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBvdmVycmlkZSBzaG93TGFiZWwgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgY2hlY2tib3hDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICB2YWwgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgISF0aGlzLmNvbnRyb2wgJiZcclxuICAgICAgdGhpcy5jb250cm9sLmludmFsaWQgJiZcclxuICAgICAgKHRoaXMuY29udHJvbC50b3VjaGVkIHx8IHRoaXMuY29udHJvbC5kaXJ0eSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMudmFsICE9PSB2YWx1ZSkge1xyXG4gICAgICB0aGlzLnZhbCA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZixcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuXHJcbiAgICBpZiAobmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uTGFiZWwgPSB0aGlzLmxhYmVsIHx8IHRoaXMudmFsaWRhdGlvbkxhYmVsO1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGUoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gISFldmVudC5jaGVja2VkO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICB0aGlzLmNoZWNrYm94Q2hhbmdlZC5lbWl0KHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25Sb3dDbGljaygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gIXRoaXMudmFsdWU7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICAgIHRoaXMuY2hlY2tib3hDaGFuZ2VkLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICcgJyB8fCBldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5vblJvd0NsaWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSAhIXZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbn1cclxuIiwiPGVjYWJzLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImVjYWJzLWNoZWNrYm94LXYyXCJcclxuICAgIFtjbGFzcy5lY2Ficy1jaGVja2JveC12Mi0tY2hlY2tlZF09XCJ2YWx1ZVwiXHJcbiAgICBbY2xhc3MuZWNhYnMtY2hlY2tib3gtdjItLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtjbGFzcy5lY2Ficy1jaGVja2JveC12Mi0tZXJyb3JdPVwiaGFzRXJyb3JcIlxyXG4gICAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQgPyBudWxsIDogMFwiXHJcbiAgICAoY2xpY2spPVwib25Sb3dDbGljaygpXCJcclxuICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcclxuICA+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvcm0tZmllbGRfX2xhYmVsIHRleHQtYmFzZSBwbC0yXCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcblxyXG4gICAgPG1hdC1jaGVja2JveFxyXG4gICAgICBjbGFzcz1cImVjYWJzLWNoZWNrYm94LXYyX19jb250cm9sXCJcclxuICAgICAgW2lkXT1cIm5hbWVcIlxyXG4gICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW2NoZWNrZWRdPVwidmFsdWVcIlxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcclxuICAgICAgKGNoYW5nZSk9XCJ0b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICA+XHJcbiAgICA8L21hdC1jaGVja2JveD5cclxuICA8L2Rpdj5cclxuPC9lY2Ficy1lbGVtZW50LXdyYXBwZXI+XHJcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
|
|
7
|
+
import { EcabsCheckboxV2Component } from './ecabs-checkbox-v2.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class EcabsCheckboxV2Module {
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsCheckboxV2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsCheckboxV2Module, declarations: [EcabsCheckboxV2Component], imports: [CommonModule, ElementWrapperModule, FormsModule, MatIconModule, MatCheckboxModule], exports: [EcabsCheckboxV2Component] });
|
|
12
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsCheckboxV2Module, imports: [CommonModule, ElementWrapperModule, FormsModule, MatIconModule, MatCheckboxModule] });
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsCheckboxV2Module, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
declarations: [EcabsCheckboxV2Component],
|
|
18
|
+
imports: [CommonModule, ElementWrapperModule, FormsModule, MatIconModule, MatCheckboxModule],
|
|
19
|
+
exports: [EcabsCheckboxV2Component],
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtY2hlY2tib3gtdjIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLWNoZWNrYm94LXYyL2VjYWJzLWNoZWNrYm94LXYyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQU96RSxNQUFNLE9BQU8scUJBQXFCO3dHQUFyQixxQkFBcUI7eUdBQXJCLHFCQUFxQixpQkFKakIsd0JBQXdCLGFBQzdCLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixhQUNqRix3QkFBd0I7eUdBRXZCLHFCQUFxQixZQUh0QixZQUFZLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUI7OzRGQUdoRixxQkFBcUI7a0JBTGpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixDQUFDO29CQUM1RixPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRWxlbWVudFdyYXBwZXJNb2R1bGUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQtd3JhcHBlci9lbGVtZW50LXdyYXBwZXIubW9kdWxlJztcclxuaW1wb3J0IHsgRWNhYnNDaGVja2JveFYyQ29tcG9uZW50IH0gZnJvbSAnLi9lY2Ficy1jaGVja2JveC12Mi5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtFY2Fic0NoZWNrYm94VjJDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEVsZW1lbnRXcmFwcGVyTW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtFY2Fic0NoZWNrYm94VjJDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNDaGVja2JveFYyTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -13,6 +13,7 @@ import * as i2 from "../base/services/unsubscribe.service";
|
|
|
13
13
|
import * as i3 from "../base/element-wrapper/element-wrapper.component";
|
|
14
14
|
import * as i4 from "@angular/material/datepicker";
|
|
15
15
|
import * as i5 from "@angular/forms";
|
|
16
|
+
import * as i6 from "../base/directives/date-mask.directive";
|
|
16
17
|
export class EcabsDateRangePickerComponentV2 extends EcabsElementBaseComponent {
|
|
17
18
|
injector;
|
|
18
19
|
ecabsDatePickerHeaderService;
|
|
@@ -202,9 +203,6 @@ export class EcabsDateRangePickerComponentV2 extends EcabsElementBaseComponent {
|
|
|
202
203
|
return;
|
|
203
204
|
}
|
|
204
205
|
}
|
|
205
|
-
if (!control.errors) {
|
|
206
|
-
control.setErrors(required ? { required: true } : null);
|
|
207
|
-
}
|
|
208
206
|
}
|
|
209
207
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateRangePickerComponentV2, deps: [{ token: i0.Injector }, { token: i1.EcabsDatePickerHeaderService }, { token: i2.UnsubscribeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
210
208
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateRangePickerComponentV2, selector: "ecabs-date-range-picker-v2", inputs: { minDate: "minDate", maxDate: "maxDate", touchUi: "touchUi", cancelLabel: "cancelLabel", applyLabel: "applyLabel", startDatePlaceholder: "startDatePlaceholder", endDatePlaceholder: "endDatePlaceholder", separatorLabel: "separatorLabel", excludeHolidays: "excludeHolidays", excludeWeekends: "excludeWeekends", specificDates: "specificDates", holidayOptions: "holidayOptions" }, outputs: { onblur: "onblur" }, providers: [
|
|
@@ -214,7 +212,7 @@ export class EcabsDateRangePickerComponentV2 extends EcabsElementBaseComponent {
|
|
|
214
212
|
multi: true,
|
|
215
213
|
},
|
|
216
214
|
UnsubscribeService,
|
|
217
|
-
], viewQueries: [{ propertyName: "pickerTo", first: true, predicate: ["pickerTo"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__range--wrapper\">\r\n <div class=\"form-field__range\">\r\n <input\r\n class=\"border-none w-full\"\r\n id=\"{{ name + 'dateFrom' }}\"\r\n [(ngModel)]=\"dateFrom\"\r\n [placeholder]=\"startDatePlaceholder ?? translationConfig?.startDatePlaceholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"pickerFrom\"\r\n [min]=\"minDateFrom\"\r\n [max]=\"maxDateFrom\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n (blur)=\"onTouch()\"\r\n (click)=\"pickerFrom.open()\"\r\n />\r\n <mat-datepicker #pickerFrom\r\n [panelClass]=\"panelClass\"\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\">\r\n </mat-datepicker>\r\n </div>\r\n\r\n <span class=\"text-gray-400 px-3 text-sm\">{{ separatorLabel }}</span>\r\n <div class=\"form-field__range\">\r\n <input\r\n class=\"border-none w-full\"\r\n id=\"{{ name + 'dateTo' }}\"\r\n [(ngModel)]=\"dateTo\"\r\n [placeholder]=\"endDatePlaceholder ?? translationConfig?.endDatePlaceholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"pickerTo\"\r\n [min]=\"minDateTo\"\r\n [max]=\"maxDateTo\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n (blur)=\"onTouch()\"\r\n (click)=\"pickerTo.open()\"\r\n />\r\n <mat-datepicker #pickerTo\r\n [panelClass]=\"panelClass\"\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\">\r\n </mat-datepicker>\r\n </div>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: [""], dependencies: [{ kind: "component", type: i3.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
215
|
+
], viewQueries: [{ propertyName: "pickerTo", first: true, predicate: ["pickerTo"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__range--wrapper\">\r\n <div class=\"form-field__range\">\r\n <input\r\n class=\"border-none w-full\"\r\n id=\"{{ name + 'dateFrom' }}\"\r\n [(ngModel)]=\"dateFrom\"\r\n [placeholder]=\"startDatePlaceholder ?? translationConfig?.startDatePlaceholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"pickerFrom\"\r\n [min]=\"minDateFrom\"\r\n [max]=\"maxDateFrom\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n ecabsMaskDate\r\n (blur)=\"onTouch()\"\r\n (click)=\"pickerFrom.open()\"\r\n />\r\n <mat-datepicker #pickerFrom\r\n [panelClass]=\"panelClass\"\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\">\r\n </mat-datepicker>\r\n </div>\r\n\r\n <span class=\"text-gray-400 px-3 text-sm\">{{ separatorLabel }}</span>\r\n <div class=\"form-field__range\">\r\n <input\r\n class=\"border-none w-full\"\r\n id=\"{{ name + 'dateTo' }}\"\r\n [(ngModel)]=\"dateTo\"\r\n [placeholder]=\"endDatePlaceholder ?? translationConfig?.endDatePlaceholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"pickerTo\"\r\n [min]=\"minDateTo\"\r\n [max]=\"maxDateTo\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n ecabsMaskDate\r\n (blur)=\"onTouch()\"\r\n (click)=\"pickerTo.open()\"\r\n />\r\n <mat-datepicker #pickerTo\r\n [panelClass]=\"panelClass\"\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\">\r\n </mat-datepicker>\r\n </div>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: [""], dependencies: [{ kind: "component", type: i3.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.EcabsMaskDateDirective, selector: "[ecabsMaskDate]", inputs: ["isDateTimeMask", "considerSeconds"] }] });
|
|
218
216
|
}
|
|
219
217
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateRangePickerComponentV2, decorators: [{
|
|
220
218
|
type: Component,
|
|
@@ -225,7 +223,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
225
223
|
multi: true,
|
|
226
224
|
},
|
|
227
225
|
UnsubscribeService,
|
|
228
|
-
], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__range--wrapper\">\r\n <div class=\"form-field__range\">\r\n <input\r\n class=\"border-none w-full\"\r\n id=\"{{ name + 'dateFrom' }}\"\r\n [(ngModel)]=\"dateFrom\"\r\n [placeholder]=\"startDatePlaceholder ?? translationConfig?.startDatePlaceholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"pickerFrom\"\r\n [min]=\"minDateFrom\"\r\n [max]=\"maxDateFrom\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n (blur)=\"onTouch()\"\r\n (click)=\"pickerFrom.open()\"\r\n />\r\n <mat-datepicker #pickerFrom\r\n [panelClass]=\"panelClass\"\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\">\r\n </mat-datepicker>\r\n </div>\r\n\r\n <span class=\"text-gray-400 px-3 text-sm\">{{ separatorLabel }}</span>\r\n <div class=\"form-field__range\">\r\n <input\r\n class=\"border-none w-full\"\r\n id=\"{{ name + 'dateTo' }}\"\r\n [(ngModel)]=\"dateTo\"\r\n [placeholder]=\"endDatePlaceholder ?? translationConfig?.endDatePlaceholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"pickerTo\"\r\n [min]=\"minDateTo\"\r\n [max]=\"maxDateTo\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n (blur)=\"onTouch()\"\r\n (click)=\"pickerTo.open()\"\r\n />\r\n <mat-datepicker #pickerTo\r\n [panelClass]=\"panelClass\"\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\">\r\n </mat-datepicker>\r\n </div>\r\n </div>\r\n</ecabs-element-wrapper>\r\n" }]
|
|
226
|
+
], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__range--wrapper\">\r\n <div class=\"form-field__range\">\r\n <input\r\n class=\"border-none w-full\"\r\n id=\"{{ name + 'dateFrom' }}\"\r\n [(ngModel)]=\"dateFrom\"\r\n [placeholder]=\"startDatePlaceholder ?? translationConfig?.startDatePlaceholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"pickerFrom\"\r\n [min]=\"minDateFrom\"\r\n [max]=\"maxDateFrom\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n ecabsMaskDate\r\n (blur)=\"onTouch()\"\r\n (click)=\"pickerFrom.open()\"\r\n />\r\n <mat-datepicker #pickerFrom\r\n [panelClass]=\"panelClass\"\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\">\r\n </mat-datepicker>\r\n </div>\r\n\r\n <span class=\"text-gray-400 px-3 text-sm\">{{ separatorLabel }}</span>\r\n <div class=\"form-field__range\">\r\n <input\r\n class=\"border-none w-full\"\r\n id=\"{{ name + 'dateTo' }}\"\r\n [(ngModel)]=\"dateTo\"\r\n [placeholder]=\"endDatePlaceholder ?? translationConfig?.endDatePlaceholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"pickerTo\"\r\n [min]=\"minDateTo\"\r\n [max]=\"maxDateTo\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n ecabsMaskDate\r\n (blur)=\"onTouch()\"\r\n (click)=\"pickerTo.open()\"\r\n />\r\n <mat-datepicker #pickerTo\r\n [panelClass]=\"panelClass\"\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\">\r\n </mat-datepicker>\r\n </div>\r\n </div>\r\n</ecabs-element-wrapper>\r\n" }]
|
|
229
227
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.EcabsDatePickerHeaderService }, { type: i2.UnsubscribeService }]; }, propDecorators: { minDate: [{
|
|
230
228
|
type: Input
|
|
231
229
|
}], maxDate: [{
|
|
@@ -256,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
256
254
|
type: ViewChild,
|
|
257
255
|
args: ['pickerTo']
|
|
258
256
|
}] } });
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItdjIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mi9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLGlCQUFpQixFQUFFLFNBQVMsRUFBc0IsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEgsT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsT0FBTyxJQUFJLGFBQWEsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUVoRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8seUJBQXlCLE1BQU0sc0JBQXNCLENBQUM7QUFNN0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUNMLHFDQUFxQyxFQUN0QyxNQUFNLHlGQUF5RixDQUFDOzs7Ozs7O0FBZWpHLE1BQU0sT0FBTywrQkFDWCxTQUFRLHlCQUF5QjtJQXNGZDtJQUNBO0lBQ0E7SUF0RlYsT0FBTyxDQUFPO0lBQ2QsT0FBTyxDQUFPO0lBQ2Qs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QkFNZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtNYXREYXRlUmFuZ2VQaWNrZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQge2Zvcm1hdCwgaXNFcXVhbCwgaXNWYWxpZH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQgSG9saWRheXMgZnJvbSAnZGF0ZS1ob2xpZGF5cyc7XHJcbmltcG9ydCB7aXNFcXVhbCBhcyBsb2Rhc2hJc0VxdWFsfSBmcm9tICdsb2Rhc2gnO1xyXG5cclxuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5pbXBvcnQge1xyXG4gIEVjYWJzRGF0ZVBpY2tlckhvbGlkYXlPcHRpb25zLFxyXG4gIEVjYWJzRGF0ZVBpY2tlclRyYW5zbGF0aW9ucyxcclxufSBmcm9tICcuLi9iYXNlL21vZGVscy9lY2Ficy1kYXRlLXBpY2tlci10cmFuc2xhdGlvbnMubW9kZWxzJztcclxuaW1wb3J0IHtFY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL2VjYWJzLWRhdGUtcGlja2VyLXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHtVbnN1YnNjcmliZVNlcnZpY2V9IGZyb20gJy4uL2Jhc2Uvc2VydmljZXMvdW5zdWJzY3JpYmUuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgRWNhYnNEYXRlUmFuZ2VQaWNrZXJIZWFkZXJDb21wb25lbnRWMlxyXG59IGZyb20gJy4vY29tcG9uZW50cy9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci1oZWFkZXIvZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItaGVhZGVyLXYyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItdjIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogRWNhYnNEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnRWMixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgVW5zdWJzY3JpYmVTZXJ2aWNlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic0RhdGVSYW5nZVBpY2tlckNvbXBvbmVudFYyXHJcbiAgZXh0ZW5kcyBFY2Fic0VsZW1lbnRCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZTtcclxuICBASW5wdXQoKSBtYXhEYXRlOiBEYXRlO1xyXG4gIEBJbnB1dCgpIHRvdWNoVWkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBjYW5jZWxMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwcGx5TGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBzdGFydERhdGVQbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVuZERhdGVQbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNlcGFyYXRvckxhYmVsID0gJ3RvJztcclxuICBASW5wdXQoKSBleGNsdWRlSG9saWRheXM6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZXhjbHVkZVdlZWtlbmRzOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNwZWNpZmljRGF0ZXM6IERhdGVbXTtcclxuICBASW5wdXQoKSBob2xpZGF5T3B0aW9uczogRWNhYnNEYXRlUGlja2VySG9saWRheU9wdGlvbnM7XHJcblxyXG4gIEBPdXRwdXQoKSBvbmJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICB2YWw6IHtcclxuICAgIGRhdGVGcm9tOiBzdHJpbmc7XHJcbiAgICBkYXRlVG86IHN0cmluZztcclxuICB9O1xyXG5cclxuICBAVmlld0NoaWxkKCdwaWNrZXJUbycpIHBpY2tlclRvOiBNYXREYXRlUmFuZ2VQaWNrZXI8YW55PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgaGVhZGVyID0gRWNhYnNEYXRlUmFuZ2VQaWNrZXJIZWFkZXJDb21wb25lbnRWMjtcclxuICBfZGF0ZUZyb206IHN0cmluZztcclxuICBfZGF0ZVRvOiBzdHJpbmc7XHJcbiAgdHJhbnNsYXRpb25Db25maWc6IEVjYWJzRGF0ZVBpY2tlclRyYW5zbGF0aW9ucztcclxuICBtaW5EYXRlRnJvbT86IERhdGUgPSB1bmRlZmluZWQ7XHJcbiAgbWF4RGF0ZUZyb20/OiBEYXRlID0gdW5kZWZpbmVkO1xyXG4gIG1pbkRhdGVUbz86IERhdGUgPSB1bmRlZmluZWQ7XHJcbiAgbWF4RGF0ZVRvPzogRGF0ZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhbmVsQ2xhc3MgPSAnZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItdjInO1xyXG5cclxuICBwcml2YXRlIGhvbGlkYXlJbnN0YW5jZTogSG9saWRheXM7XHJcblxyXG4gIGdldCB2YWx1ZSgpOiB7XHJcbiAgICBkYXRlRnJvbTogc3RyaW5nO1xyXG4gICAgZGF0ZVRvOiBzdHJpbmc7XHJcbiAgfSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWw7XHJcbiAgfVxyXG5cclxuICBnZXQgZGF0ZUZyb20oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRlRnJvbTtcclxuICB9XHJcblxyXG4gIGdldCBkYXRlVG8oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRlVG87XHJcbiAgfVxyXG5cclxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIHNldCB2YWx1ZSh2YWw6IHsgZGF0ZUZyb206IHN0cmluZzsgZGF0ZVRvOiBzdHJpbmcgfSkge1xyXG4gICAgaWYgKHRoaXMudmFsICE9PSB2YWwpIHtcclxuICAgICAgdGhpcy52YWwgPSB2YWw7XHJcbiAgICAgIHRoaXMuZGF0ZUZyb20gPSB2YWwuZGF0ZUZyb207XHJcbiAgICAgIHRoaXMuZGF0ZVRvID0gdmFsLmRhdGVUbztcclxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xyXG4gICAgICB0aGlzLm9uVG91Y2godmFsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgc2V0IGRhdGVGcm9tKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5fZGF0ZUZyb20gIT09IHZhbCAmJiBpc1ZhbGlkKG5ldyBEYXRlKHZhbCkpKSB7XHJcbiAgICAgIHRoaXMuX2RhdGVGcm9tID0gdmFsO1xyXG4gICAgICB0aGlzLm1pbkRhdGVUbyA9IG5ldyBEYXRlKHZhbCk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuZGF0ZVRvKSB7XHJcbiAgICAgICAgdGhpcy5waWNrZXJUbz8ub3BlbigpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm9uQXBwbHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgc2V0IGRhdGVUbyh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuX2RhdGVUbyAhPT0gdmFsICYmIGlzVmFsaWQobmV3IERhdGUodmFsKSkpIHtcclxuICAgICAgdGhpcy5fZGF0ZVRvID0gdmFsO1xyXG4gICAgICB0aGlzLm1heERhdGVGcm9tID0gbmV3IERhdGUodmFsKTtcclxuICAgICAgdGhpcy5vbkFwcGx5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlOiBFY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZVNlcnZpY2U6IFVuc3Vic2NyaWJlU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7bWluRGF0ZSwgbWF4RGF0ZX0gPSBjaGFuZ2VzO1xyXG5cclxuICAgIGlmIChtaW5EYXRlPy5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5taW5EYXRlRnJvbSA9IG1pbkRhdGU/LmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy5taW5EYXRlVG8gPSBtaW5EYXRlPy5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG1heERhdGU/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLm1heERhdGVGcm9tID0gbWF4RGF0ZT8uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLm1heERhdGVUbyA9IG1heERhdGU/LmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRDb25maWcoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZVNlcnZpY2Uuc3Vic2NyaXB0aW9uKCkpKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb25maWcpID0+ICh0aGlzLnRyYW5zbGF0aW9uQ29uZmlnID0gY29uZmlnKSk7XHJcblxyXG4gICAgaWYgKHRoaXMuaG9saWRheU9wdGlvbnM/LmNvdW50cnlDb2RlKSB7XHJcbiAgICAgIHRoaXMuaG9saWRheUluc3RhbmNlID0gbmV3IEhvbGlkYXlzKHRoaXMuaG9saWRheU9wdGlvbnMuY291bnRyeUNvZGUudG9VcHBlckNhc2UoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAobmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlU2VydmljZS5zdWJzY3JpcHRpb24oKSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRhdGVSYW5nZVZhbGlkYXRvcih0aGlzLmNvbnRyb2wpKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRlRnJvbSA9IHRoaXMudmFsdWUuZGF0ZUZyb207XHJcbiAgICAgICAgdGhpcy5kYXRlVG8gPSB0aGlzLnZhbHVlLmRhdGVUbztcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7XHJcbiAgfTtcclxuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgYmx1ckNoYW5nZShlKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uYmx1ci5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25BcHBseSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0ge1xyXG4gICAgICBkYXRlRnJvbTogdGhpcy5kYXRlRnJvbSxcclxuICAgICAgZGF0ZVRvOiB0aGlzLmRhdGVUbyxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKCFsb2Rhc2hJc0VxdWFsKHRoaXMudmFsdWUsIG5ld1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLnZhbCA9IG5ld1ZhbHVlO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy5vblRvdWNoKG5ld1ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnZhbHVlID0ge1xyXG4gICAgICBkYXRlRnJvbTogdGhpcy5kYXRlRnJvbSxcclxuICAgICAgZGF0ZVRvOiB0aGlzLmRhdGVUbyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJEYXRlUmFuZ2UgPSAoZGF0ZTogRGF0ZSk6IGJvb2xlYW4gPT4ge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XHJcblxyXG4gICAgaWYgKGlzVmFsaWQobmV3IERhdGUoZGF0ZSkpKSB7XHJcbiAgICAgIGNvbnN0IGRheSA9IGRhdGU/LmdldERheSgpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZXhjbHVkZVdlZWtlbmRzKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGRheSAhPT0gMCAmJiBkYXkgIT09IDY7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmV4Y2x1ZGVIb2xpZGF5cykge1xyXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLmlzRGF0ZU5vdEhvbGlkYXkoZGF0ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnNwZWNpZmljRGF0ZXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBzcGVjaWZpY0RhdGVzID0gdGhpcy5zcGVjaWZpY0RhdGVzO1xyXG4gICAgICAgIGlmIChzcGVjaWZpY0RhdGVzICYmIHNwZWNpZmljRGF0ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSBzcGVjaWZpY0RhdGVzLmZpbmRJbmRleCgoc3BlY2lmaWNEYXRlKSA9PiBpc0VxdWFsKGRhdGUsIHNwZWNpZmljRGF0ZSkpO1xyXG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGluZGV4ID09PSAtMTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH07XHJcblxyXG4gIGlzRGF0ZU5vdEhvbGlkYXkoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qge2NvdW50cnlDb2RlLCB0aW1lWm9uZU9mZnNldH0gPSB0aGlzLmhvbGlkYXlPcHRpb25zID8/IHt9O1xyXG5cclxuICAgIGlmIChjb3VudHJ5Q29kZSAmJiB0aW1lWm9uZU9mZnNldCkge1xyXG4gICAgICByZXR1cm4gIXRoaXMuaG9saWRheUluc3RhbmNlPy5pc0hvbGlkYXkoYCR7Zm9ybWF0KGRhdGUsICd5eXl5LU1NLWRkJyl9VDAwOjAwOjAwJHt0aW1lWm9uZU9mZnNldH1gKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGRhdGVSYW5nZVZhbGlkYXRvcihjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcclxuICAgIGNvbnN0IHJlcXVpcmVkID0gY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuICAgIGlmIChjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHtkYXRlRnJvbSwgZGF0ZVRvfSA9IGNvbnRyb2wudmFsdWU7XHJcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xyXG5cclxuICAgICAgaWYgKHJlcXVpcmVkICYmICghZGF0ZUZyb20gfHwgZGF0ZUZyb20/Lmxlbmd0aCA9PT0gMCkgJiYgKCFkYXRlVG8gfHwgZGF0ZVRvPy5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoe3JlcXVpcmVkOiB0cnVlfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIWRhdGVGcm9tICYmIGRhdGVUbykge1xyXG4gICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHtkYXRlRnJvbVJhbmdlUmVxdWlyZWQ6IHRydWV9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChkYXRlRnJvbSAmJiAhZGF0ZVRvKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoe2RhdGVUb1JhbmdlUmVxdWlyZWQ6IHRydWV9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChuZXcgRGF0ZShkYXRlRnJvbSkgPiBuZXcgRGF0ZShkYXRlVG8pKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoe2RhdGVGcm9tTW9yZVRoYW5EYXRlVG86IHRydWV9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghY29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgY29udHJvbC5zZXRFcnJvcnMocmVxdWlyZWQgPyB7cmVxdWlyZWQ6IHRydWV9IDogbnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxlY2Ficy1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX3JhbmdlLS13cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9fcmFuZ2VcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJib3JkZXItbm9uZSB3LWZ1bGxcIlxyXG4gICAgICAgIGlkPVwie3sgbmFtZSArICdkYXRlRnJvbScgfX1cIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZUZyb21cIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJzdGFydERhdGVQbGFjZWhvbGRlciA/PyB0cmFuc2xhdGlvbkNvbmZpZz8uc3RhcnREYXRlUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyRnJvbVwiXHJcbiAgICAgICAgW21pbl09XCJtaW5EYXRlRnJvbVwiXHJcbiAgICAgICAgW21heF09XCJtYXhEYXRlRnJvbVwiXHJcbiAgICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZmlsdGVyRGF0ZVJhbmdlXCJcclxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxyXG4gICAgICAgIChjbGljayk9XCJwaWNrZXJGcm9tLm9wZW4oKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyRnJvbVxyXG4gICAgICAgICAgICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwicGFuZWxDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FsZW5kYXJIZWFkZXJDb21wb25lbnRdPVwiaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0b3VjaFVpXT1cInRvdWNoVWlcIj5cclxuICAgICAgPC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTQwMCBweC0zIHRleHQtc21cIj57eyBzZXBhcmF0b3JMYWJlbCB9fTwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19yYW5nZVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cImJvcmRlci1ub25lIHctZnVsbFwiXHJcbiAgICAgICAgaWQ9XCJ7eyBuYW1lICsgJ2RhdGVUbycgfX1cIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZVRvXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZW5kRGF0ZVBsYWNlaG9sZGVyID8/IHRyYW5zbGF0aW9uQ29uZmlnPy5lbmREYXRlUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyVG9cIlxyXG4gICAgICAgIFttaW5dPVwibWluRGF0ZVRvXCJcclxuICAgICAgICBbbWF4XT1cIm1heERhdGVUb1wiXHJcbiAgICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZmlsdGVyRGF0ZVJhbmdlXCJcclxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxyXG4gICAgICAgIChjbGljayk9XCJwaWNrZXJUby5vcGVuKClcIlxyXG4gICAgICAvPlxyXG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlclRvXHJcbiAgICAgICAgICAgICAgICAgICAgICBbcGFuZWxDbGFzc109XCJwYW5lbENsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjYWxlbmRhckhlYWRlckNvbXBvbmVudF09XCJoZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3RvdWNoVWldPVwidG91Y2hVaVwiPlxyXG4gICAgICA8L21hdC1kYXRlcGlja2VyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZWNhYnMtZWxlbWVudC13cmFwcGVyPlxyXG4iXX0=
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItdjIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mi9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLGlCQUFpQixFQUFFLFNBQVMsRUFBc0IsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEgsT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsT0FBTyxJQUFJLGFBQWEsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUVoRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8seUJBQXlCLE1BQU0sc0JBQXNCLENBQUM7QUFNN0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUNMLHFDQUFxQyxFQUN0QyxNQUFNLHlGQUF5RixDQUFDOzs7Ozs7OztBQWVqRyxNQUFNLE9BQU8sK0JBQ1gsU0FBUSx5QkFBeUI7SUFzRmQ7SUFDQTtJQUNBO0lBdEZWLE9BQU8sQ0FBTztJQUNkLE9BQU8sQ0FBTztJQUNk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YUFDUjtZQUVELElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3pDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBQyxzQkFBc0IsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO2dCQUNsRCxPQUFPO2FBQ1I7U0FDRjtJQUNILENBQUM7d0dBL09VLCtCQUErQjs0RkFBL0IsK0JBQStCLHNkQVQvQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSwrQkFBK0I7Z0JBQzVDLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRCxrQkFBa0I7U0FDbkIsNEtDM0NILHd5REFnREE7OzRGREhhLCtCQUErQjtrQkFiM0MsU0FBUzsrQkFDRSw0QkFBNEIsYUFHM0I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxpQ0FBaUM7NEJBQzVDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELGtCQUFrQjtxQkFDbkI7MktBS1EsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFNZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtNYXREYXRlUmFuZ2VQaWNrZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQge2Zvcm1hdCwgaXNFcXVhbCwgaXNWYWxpZH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQgSG9saWRheXMgZnJvbSAnZGF0ZS1ob2xpZGF5cyc7XHJcbmltcG9ydCB7aXNFcXVhbCBhcyBsb2Rhc2hJc0VxdWFsfSBmcm9tICdsb2Rhc2gnO1xyXG5cclxuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5pbXBvcnQge1xyXG4gIEVjYWJzRGF0ZVBpY2tlckhvbGlkYXlPcHRpb25zLFxyXG4gIEVjYWJzRGF0ZVBpY2tlclRyYW5zbGF0aW9ucyxcclxufSBmcm9tICcuLi9iYXNlL21vZGVscy9lY2Ficy1kYXRlLXBpY2tlci10cmFuc2xhdGlvbnMubW9kZWxzJztcclxuaW1wb3J0IHtFY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL2VjYWJzLWRhdGUtcGlja2VyLXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHtVbnN1YnNjcmliZVNlcnZpY2V9IGZyb20gJy4uL2Jhc2Uvc2VydmljZXMvdW5zdWJzY3JpYmUuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgRWNhYnNEYXRlUmFuZ2VQaWNrZXJIZWFkZXJDb21wb25lbnRWMlxyXG59IGZyb20gJy4vY29tcG9uZW50cy9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci1oZWFkZXIvZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItaGVhZGVyLXYyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItdjIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogRWNhYnNEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnRWMixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgVW5zdWJzY3JpYmVTZXJ2aWNlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic0RhdGVSYW5nZVBpY2tlckNvbXBvbmVudFYyXHJcbiAgZXh0ZW5kcyBFY2Fic0VsZW1lbnRCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZTtcclxuICBASW5wdXQoKSBtYXhEYXRlOiBEYXRlO1xyXG4gIEBJbnB1dCgpIHRvdWNoVWkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBjYW5jZWxMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwcGx5TGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBzdGFydERhdGVQbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVuZERhdGVQbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNlcGFyYXRvckxhYmVsID0gJ3RvJztcclxuICBASW5wdXQoKSBleGNsdWRlSG9saWRheXM6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZXhjbHVkZVdlZWtlbmRzOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNwZWNpZmljRGF0ZXM6IERhdGVbXTtcclxuICBASW5wdXQoKSBob2xpZGF5T3B0aW9uczogRWNhYnNEYXRlUGlja2VySG9saWRheU9wdGlvbnM7XHJcblxyXG4gIEBPdXRwdXQoKSBvbmJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICB2YWw6IHtcclxuICAgIGRhdGVGcm9tOiBzdHJpbmc7XHJcbiAgICBkYXRlVG86IHN0cmluZztcclxuICB9O1xyXG5cclxuICBAVmlld0NoaWxkKCdwaWNrZXJUbycpIHBpY2tlclRvOiBNYXREYXRlUmFuZ2VQaWNrZXI8YW55PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgaGVhZGVyID0gRWNhYnNEYXRlUmFuZ2VQaWNrZXJIZWFkZXJDb21wb25lbnRWMjtcclxuICBfZGF0ZUZyb206IHN0cmluZztcclxuICBfZGF0ZVRvOiBzdHJpbmc7XHJcbiAgdHJhbnNsYXRpb25Db25maWc6IEVjYWJzRGF0ZVBpY2tlclRyYW5zbGF0aW9ucztcclxuICBtaW5EYXRlRnJvbT86IERhdGUgPSB1bmRlZmluZWQ7XHJcbiAgbWF4RGF0ZUZyb20/OiBEYXRlID0gdW5kZWZpbmVkO1xyXG4gIG1pbkRhdGVUbz86IERhdGUgPSB1bmRlZmluZWQ7XHJcbiAgbWF4RGF0ZVRvPzogRGF0ZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhbmVsQ2xhc3MgPSAnZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItdjInO1xyXG5cclxuICBwcml2YXRlIGhvbGlkYXlJbnN0YW5jZTogSG9saWRheXM7XHJcblxyXG4gIGdldCB2YWx1ZSgpOiB7XHJcbiAgICBkYXRlRnJvbTogc3RyaW5nO1xyXG4gICAgZGF0ZVRvOiBzdHJpbmc7XHJcbiAgfSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWw7XHJcbiAgfVxyXG5cclxuICBnZXQgZGF0ZUZyb20oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRlRnJvbTtcclxuICB9XHJcblxyXG4gIGdldCBkYXRlVG8oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRlVG87XHJcbiAgfVxyXG5cclxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gIHNldCB2YWx1ZSh2YWw6IHsgZGF0ZUZyb206IHN0cmluZzsgZGF0ZVRvOiBzdHJpbmcgfSkge1xyXG4gICAgaWYgKHRoaXMudmFsICE9PSB2YWwpIHtcclxuICAgICAgdGhpcy52YWwgPSB2YWw7XHJcbiAgICAgIHRoaXMuZGF0ZUZyb20gPSB2YWwuZGF0ZUZyb207XHJcbiAgICAgIHRoaXMuZGF0ZVRvID0gdmFsLmRhdGVUbztcclxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xyXG4gICAgICB0aGlzLm9uVG91Y2godmFsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgc2V0IGRhdGVGcm9tKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5fZGF0ZUZyb20gIT09IHZhbCAmJiBpc1ZhbGlkKG5ldyBEYXRlKHZhbCkpKSB7XHJcbiAgICAgIHRoaXMuX2RhdGVGcm9tID0gdmFsO1xyXG4gICAgICB0aGlzLm1pbkRhdGVUbyA9IG5ldyBEYXRlKHZhbCk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuZGF0ZVRvKSB7XHJcbiAgICAgICAgdGhpcy5waWNrZXJUbz8ub3BlbigpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm9uQXBwbHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgc2V0IGRhdGVUbyh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuX2RhdGVUbyAhPT0gdmFsICYmIGlzVmFsaWQobmV3IERhdGUodmFsKSkpIHtcclxuICAgICAgdGhpcy5fZGF0ZVRvID0gdmFsO1xyXG4gICAgICB0aGlzLm1heERhdGVGcm9tID0gbmV3IERhdGUodmFsKTtcclxuICAgICAgdGhpcy5vbkFwcGx5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlOiBFY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZVNlcnZpY2U6IFVuc3Vic2NyaWJlU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7bWluRGF0ZSwgbWF4RGF0ZX0gPSBjaGFuZ2VzO1xyXG5cclxuICAgIGlmIChtaW5EYXRlPy5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5taW5EYXRlRnJvbSA9IG1pbkRhdGU/LmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy5taW5EYXRlVG8gPSBtaW5EYXRlPy5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG1heERhdGU/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLm1heERhdGVGcm9tID0gbWF4RGF0ZT8uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLm1heERhdGVUbyA9IG1heERhdGU/LmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRDb25maWcoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZVNlcnZpY2Uuc3Vic2NyaXB0aW9uKCkpKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb25maWcpID0+ICh0aGlzLnRyYW5zbGF0aW9uQ29uZmlnID0gY29uZmlnKSk7XHJcblxyXG4gICAgaWYgKHRoaXMuaG9saWRheU9wdGlvbnM/LmNvdW50cnlDb2RlKSB7XHJcbiAgICAgIHRoaXMuaG9saWRheUluc3RhbmNlID0gbmV3IEhvbGlkYXlzKHRoaXMuaG9saWRheU9wdGlvbnMuY291bnRyeUNvZGUudG9VcHBlckNhc2UoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAobmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlU2VydmljZS5zdWJzY3JpcHRpb24oKSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRhdGVSYW5nZVZhbGlkYXRvcih0aGlzLmNvbnRyb2wpKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRlRnJvbSA9IHRoaXMudmFsdWUuZGF0ZUZyb207XHJcbiAgICAgICAgdGhpcy5kYXRlVG8gPSB0aGlzLnZhbHVlLmRhdGVUbztcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7XHJcbiAgfTtcclxuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgYmx1ckNoYW5nZShlKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uYmx1ci5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25BcHBseSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0ge1xyXG4gICAgICBkYXRlRnJvbTogdGhpcy5kYXRlRnJvbSxcclxuICAgICAgZGF0ZVRvOiB0aGlzLmRhdGVUbyxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKCFsb2Rhc2hJc0VxdWFsKHRoaXMudmFsdWUsIG5ld1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLnZhbCA9IG5ld1ZhbHVlO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy5vblRvdWNoKG5ld1ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnZhbHVlID0ge1xyXG4gICAgICBkYXRlRnJvbTogdGhpcy5kYXRlRnJvbSxcclxuICAgICAgZGF0ZVRvOiB0aGlzLmRhdGVUbyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJEYXRlUmFuZ2UgPSAoZGF0ZTogRGF0ZSk6IGJvb2xlYW4gPT4ge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XHJcblxyXG4gICAgaWYgKGlzVmFsaWQobmV3IERhdGUoZGF0ZSkpKSB7XHJcbiAgICAgIGNvbnN0IGRheSA9IGRhdGU/LmdldERheSgpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZXhjbHVkZVdlZWtlbmRzKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGRheSAhPT0gMCAmJiBkYXkgIT09IDY7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmV4Y2x1ZGVIb2xpZGF5cykge1xyXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLmlzRGF0ZU5vdEhvbGlkYXkoZGF0ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnNwZWNpZmljRGF0ZXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBzcGVjaWZpY0RhdGVzID0gdGhpcy5zcGVjaWZpY0RhdGVzO1xyXG4gICAgICAgIGlmIChzcGVjaWZpY0RhdGVzICYmIHNwZWNpZmljRGF0ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSBzcGVjaWZpY0RhdGVzLmZpbmRJbmRleCgoc3BlY2lmaWNEYXRlKSA9PiBpc0VxdWFsKGRhdGUsIHNwZWNpZmljRGF0ZSkpO1xyXG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGluZGV4ID09PSAtMTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH07XHJcblxyXG4gIGlzRGF0ZU5vdEhvbGlkYXkoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qge2NvdW50cnlDb2RlLCB0aW1lWm9uZU9mZnNldH0gPSB0aGlzLmhvbGlkYXlPcHRpb25zID8/IHt9O1xyXG5cclxuICAgIGlmIChjb3VudHJ5Q29kZSAmJiB0aW1lWm9uZU9mZnNldCkge1xyXG4gICAgICByZXR1cm4gIXRoaXMuaG9saWRheUluc3RhbmNlPy5pc0hvbGlkYXkoYCR7Zm9ybWF0KGRhdGUsICd5eXl5LU1NLWRkJyl9VDAwOjAwOjAwJHt0aW1lWm9uZU9mZnNldH1gKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGRhdGVSYW5nZVZhbGlkYXRvcihjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcclxuICAgIGNvbnN0IHJlcXVpcmVkID0gY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuICAgIGlmIChjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHtkYXRlRnJvbSwgZGF0ZVRvfSA9IGNvbnRyb2wudmFsdWU7XHJcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xyXG5cclxuICAgICAgaWYgKHJlcXVpcmVkICYmICghZGF0ZUZyb20gfHwgZGF0ZUZyb20/Lmxlbmd0aCA9PT0gMCkgJiYgKCFkYXRlVG8gfHwgZGF0ZVRvPy5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoe3JlcXVpcmVkOiB0cnVlfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIWRhdGVGcm9tICYmIGRhdGVUbykge1xyXG4gICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHtkYXRlRnJvbVJhbmdlUmVxdWlyZWQ6IHRydWV9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChkYXRlRnJvbSAmJiAhZGF0ZVRvKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoe2RhdGVUb1JhbmdlUmVxdWlyZWQ6IHRydWV9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChuZXcgRGF0ZShkYXRlRnJvbSkgPiBuZXcgRGF0ZShkYXRlVG8pKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoe2RhdGVGcm9tTW9yZVRoYW5EYXRlVG86IHRydWV9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGVjYWJzLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9fcmFuZ2UtLXdyYXBwZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19yYW5nZVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cImJvcmRlci1ub25lIHctZnVsbFwiXHJcbiAgICAgICAgaWQ9XCJ7eyBuYW1lICsgJ2RhdGVGcm9tJyB9fVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlRnJvbVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInN0YXJ0RGF0ZVBsYWNlaG9sZGVyID8/IHRyYW5zbGF0aW9uQ29uZmlnPy5zdGFydERhdGVQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJGcm9tXCJcclxuICAgICAgICBbbWluXT1cIm1pbkRhdGVGcm9tXCJcclxuICAgICAgICBbbWF4XT1cIm1heERhdGVGcm9tXCJcclxuICAgICAgICBbbWF0RGF0ZXBpY2tlckZpbHRlcl09XCJmaWx0ZXJEYXRlUmFuZ2VcIlxyXG4gICAgICAgIGVjYWJzTWFza0RhdGVcclxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxyXG4gICAgICAgIChjbGljayk9XCJwaWNrZXJGcm9tLm9wZW4oKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyRnJvbVxyXG4gICAgICAgICAgICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwicGFuZWxDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FsZW5kYXJIZWFkZXJDb21wb25lbnRdPVwiaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0b3VjaFVpXT1cInRvdWNoVWlcIj5cclxuICAgICAgPC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTQwMCBweC0zIHRleHQtc21cIj57eyBzZXBhcmF0b3JMYWJlbCB9fTwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19yYW5nZVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cImJvcmRlci1ub25lIHctZnVsbFwiXHJcbiAgICAgICAgaWQ9XCJ7eyBuYW1lICsgJ2RhdGVUbycgfX1cIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZVRvXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZW5kRGF0ZVBsYWNlaG9sZGVyID8/IHRyYW5zbGF0aW9uQ29uZmlnPy5lbmREYXRlUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyVG9cIlxyXG4gICAgICAgIFttaW5dPVwibWluRGF0ZVRvXCJcclxuICAgICAgICBbbWF4XT1cIm1heERhdGVUb1wiXHJcbiAgICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZmlsdGVyRGF0ZVJhbmdlXCJcclxuICAgICAgICBlY2Fic01hc2tEYXRlXHJcbiAgICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcclxuICAgICAgICAoY2xpY2spPVwicGlja2VyVG8ub3BlbigpXCJcclxuICAgICAgLz5cclxuICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXJUb1xyXG4gICAgICAgICAgICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwicGFuZWxDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FsZW5kYXJIZWFkZXJDb21wb25lbnRdPVwiaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0b3VjaFVpXT1cInRvdWNoVWlcIj5cclxuICAgICAgPC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cclxuIl19
|
|
@@ -50,7 +50,7 @@ export class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
|
|
|
50
50
|
preventCallSetterPickerValue = false;
|
|
51
51
|
runTimeout = false;
|
|
52
52
|
translationConfig;
|
|
53
|
-
isEmptyFormat =
|
|
53
|
+
isEmptyFormat = undefined;
|
|
54
54
|
get value() {
|
|
55
55
|
return this.val;
|
|
56
56
|
}
|
|
@@ -67,19 +67,22 @@ export class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
|
|
|
67
67
|
return this._seconds;
|
|
68
68
|
}
|
|
69
69
|
set hours(value) {
|
|
70
|
-
if (value
|
|
71
|
-
|
|
70
|
+
if (value === undefined || this._hours === value) {
|
|
71
|
+
return;
|
|
72
72
|
}
|
|
73
|
+
this._hours = this.normalizeWithAutoPad(value, 3);
|
|
73
74
|
}
|
|
74
75
|
set minutes(value) {
|
|
75
|
-
if (value
|
|
76
|
-
|
|
76
|
+
if (value === undefined || this._minutes === value) {
|
|
77
|
+
return;
|
|
77
78
|
}
|
|
79
|
+
this._minutes = this.normalizeWithAutoPad(value, 6);
|
|
78
80
|
}
|
|
79
81
|
set seconds(value) {
|
|
80
|
-
if (value
|
|
81
|
-
|
|
82
|
+
if (value === undefined || this._seconds === value) {
|
|
83
|
+
return;
|
|
82
84
|
}
|
|
85
|
+
this._seconds = this.normalizeWithAutoPad(value, 6);
|
|
83
86
|
}
|
|
84
87
|
set value(val) {
|
|
85
88
|
if (val && this.val?.getTime() !== new Date(val).getTime()) {
|
|
@@ -185,7 +188,24 @@ export class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
|
|
|
185
188
|
}
|
|
186
189
|
return result;
|
|
187
190
|
}
|
|
188
|
-
|
|
191
|
+
normalizeWithAutoPad(rawValue, autoPadFrom) {
|
|
192
|
+
const digits = this.toDigits(rawValue, 2);
|
|
193
|
+
if (!digits) {
|
|
194
|
+
return '';
|
|
195
|
+
}
|
|
196
|
+
if (digits.length === 1) {
|
|
197
|
+
const first = parseInt(digits, 10);
|
|
198
|
+
if (first >= autoPadFrom) {
|
|
199
|
+
return this.formatTwoDigits(first);
|
|
200
|
+
}
|
|
201
|
+
return digits;
|
|
202
|
+
}
|
|
203
|
+
return this.formatTwoDigits(parseInt(digits, 10));
|
|
204
|
+
}
|
|
205
|
+
toDigits(value, maxLength) {
|
|
206
|
+
return value?.toString().replace(/\D/g, '').slice(0, maxLength) ?? '';
|
|
207
|
+
}
|
|
208
|
+
formatTwoDigits(num) {
|
|
189
209
|
return this.decimalPipe.transform(num, '2.0-0') ?? '00';
|
|
190
210
|
}
|
|
191
211
|
setValues(date) {
|
|
@@ -211,7 +231,7 @@ export class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
|
|
|
211
231
|
},
|
|
212
232
|
DecimalPipe,
|
|
213
233
|
UnsubscribeService,
|
|
214
|
-
], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomInput"], descendants: true }, { propertyName: "matCustomPicker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\" class=\"datepicker-ui\">\r\n <mat-datepicker-actions>\r\n <div class=\"actions\">\r\n <div class=\"time--inputs\">\r\n <input\r\n class=\"form-field__input time\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hours\"\r\n [value]=\"_hours\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hours\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutes\"\r\n [(ngModel)]=\"minutes\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n\r\n <ng-container *ngIf=\"!hideSeconds\">\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"seconds\"\r\n [(ngModel)]=\"seconds\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </ng-container>\r\n </div>\r\n\r\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n (apply)=\"onApply()\">\r\n </ecabs-date-picker-actions>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input #matCustomInput\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n
|
|
234
|
+
], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomInput"], descendants: true }, { propertyName: "matCustomPicker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\" class=\"datepicker-ui\">\r\n <mat-datepicker-actions>\r\n <div class=\"actions\">\r\n <div class=\"time--inputs\">\r\n <input\r\n class=\"form-field__input time\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hours\"\r\n [value]=\"_hours\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hours\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutes\"\r\n [(ngModel)]=\"minutes\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n\r\n <ng-container *ngIf=\"!hideSeconds\">\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"seconds\"\r\n [(ngModel)]=\"seconds\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </ng-container>\r\n </div>\r\n\r\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n (apply)=\"onApply()\">\r\n </ecabs-date-picker-actions>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input #matCustomInput\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n placeholder=\"dd/MM/yyyy, HH:mm\"\r\n [disabled]=\"disabled\"\r\n ecabsMaskDate\r\n [isDateTimeMask]=\"true\"\r\n [considerSeconds]=\"!hideSeconds\"\r\n (blur)=\"onTouch()\"\r\n />\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\r\n <mat-icon matDatepickerToggleIcon\r\n class=\"text-gray-500\">\r\n calendar_today\r\n </mat-icon>\r\n </mat-datepicker-toggle>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: [".time--inputs:before,.time--inputs:after{position:absolute;content:\"\"}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0;margin:0}.time--inputs{position:relative;display:flex;gap:.5rem;justify-content:center;align-items:center;margin-top:2.4rem;margin-bottom:2.4rem}.time--inputs:before,.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300)}.time--inputs:before{top:-1.6rem}.time--inputs:after{bottom:-1.6rem}.font-bold{font-weight:700}.actions{display:flex;flex-direction:column;width:100%!important;row-gap:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: i9.EcabsNumberBorderDirective, selector: "[ecabsNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "directive", type: i10.EcabsMaskDateDirective, selector: "[ecabsMaskDate]", inputs: ["isDateTimeMask", "considerSeconds"] }, { kind: "component", type: i11.EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "directive", type: i12.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] });
|
|
215
235
|
}
|
|
216
236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimePickerComponent, decorators: [{
|
|
217
237
|
type: Component,
|
|
@@ -223,7 +243,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
223
243
|
},
|
|
224
244
|
DecimalPipe,
|
|
225
245
|
UnsubscribeService,
|
|
226
|
-
], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\" class=\"datepicker-ui\">\r\n <mat-datepicker-actions>\r\n <div class=\"actions\">\r\n <div class=\"time--inputs\">\r\n <input\r\n class=\"form-field__input time\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hours\"\r\n [value]=\"_hours\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hours\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutes\"\r\n [(ngModel)]=\"minutes\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n\r\n <ng-container *ngIf=\"!hideSeconds\">\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"seconds\"\r\n [(ngModel)]=\"seconds\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </ng-container>\r\n </div>\r\n\r\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n (apply)=\"onApply()\">\r\n </ecabs-date-picker-actions>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input #matCustomInput\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n
|
|
246
|
+
], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\" class=\"datepicker-ui\">\r\n <mat-datepicker-actions>\r\n <div class=\"actions\">\r\n <div class=\"time--inputs\">\r\n <input\r\n class=\"form-field__input time\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hours\"\r\n [value]=\"_hours\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hours\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutes\"\r\n [(ngModel)]=\"minutes\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n\r\n <ng-container *ngIf=\"!hideSeconds\">\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"seconds\"\r\n [(ngModel)]=\"seconds\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </ng-container>\r\n </div>\r\n\r\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n (apply)=\"onApply()\">\r\n </ecabs-date-picker-actions>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input #matCustomInput\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n placeholder=\"dd/MM/yyyy, HH:mm\"\r\n [disabled]=\"disabled\"\r\n ecabsMaskDate\r\n [isDateTimeMask]=\"true\"\r\n [considerSeconds]=\"!hideSeconds\"\r\n (blur)=\"onTouch()\"\r\n />\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\r\n <mat-icon matDatepickerToggleIcon\r\n class=\"text-gray-500\">\r\n calendar_today\r\n </mat-icon>\r\n </mat-datepicker-toggle>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: [".time--inputs:before,.time--inputs:after{position:absolute;content:\"\"}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0;margin:0}.time--inputs{position:relative;display:flex;gap:.5rem;justify-content:center;align-items:center;margin-top:2.4rem;margin-bottom:2.4rem}.time--inputs:before,.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300)}.time--inputs:before{top:-1.6rem}.time--inputs:after{bottom:-1.6rem}.font-bold{font-weight:700}.actions{display:flex;flex-direction:column;width:100%!important;row-gap:1rem}\n"] }]
|
|
227
247
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.DecimalPipe }, { type: i0.ChangeDetectorRef }, { type: i2.EcabsDatePickerHeaderService }, { type: i3.UnsubscribeService }]; }, propDecorators: { matCustomInput: [{
|
|
228
248
|
type: ViewChild,
|
|
229
249
|
args: ['matCustomInput', { static: false }]
|
|
@@ -247,4 +267,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
247
267
|
}], preserveOriginalValue: [{
|
|
248
268
|
type: Input
|
|
249
269
|
}] } });
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtZGF0ZS10aW1lLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXRpbWUtcGlja2VyL2VjYWJzLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsR0FDWCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBR0wsU0FBUyxFQUVULFVBQVUsRUFFVixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxHQUVWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQUc3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxvRkFBb0YsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFpQnhJLE1BQU0sT0FBTyw0QkFDWCxTQUFRLHlCQUF5QjtJQWdJZDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBaEluQixjQUFjLENBQWE7SUFHM0IsZUFBZSxDQUFzQjtJQUU1QixPQUFPLENBQU87SUFDZCxPQUFP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QUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgZm9ybWF0LFxyXG4gIGlzU2FtZU1pbnV0ZSxcclxuICBpc1ZhbGlkLFxyXG4gIHBhcnNlLFxyXG4gIHNldEhvdXJzLFxyXG4gIHNldE1pbnV0ZXMsXHJcbiAgc2V0U2Vjb25kcyxcclxufSBmcm9tICdkYXRlLWZucyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIE5nQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5pbXBvcnQgeyBFY2Fic0RhdGVQaWNrZXJUcmFuc2xhdGlvbnMgfSBmcm9tICcuLi9iYXNlL21vZGVscy9lY2Ficy1kYXRlLXBpY2tlci10cmFuc2xhdGlvbnMubW9kZWxzJztcclxuaW1wb3J0IHsgRWNhYnNEYXRlUGlja2VySGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2Jhc2Uvc2VydmljZXMvZWNhYnMtZGF0ZS1waWNrZXItdHJhbnNsYXRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVbnN1YnNjcmliZVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL3Vuc3Vic2NyaWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFY2Fic0RhdGVUaW1lUGlja2VySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VjYWJzLWRhdGUtdGltZS1waWNrZXItaGVhZGVyL2VjYWJzLWRhdGUtdGltZS1waWNrZXItaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtZGF0ZS10aW1lLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVjYWJzRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBEZWNpbWFsUGlwZSxcclxuICAgIFVuc3Vic2NyaWJlU2VydmljZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNEYXRlVGltZVBpY2tlckNvbXBvbmVudFxyXG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uSW5pdFxyXG57XHJcbiAgQFZpZXdDaGlsZCgnbWF0Q3VzdG9tSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBtYXRDdXN0b21JbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgncGlja2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgbWF0Q3VzdG9tUGlja2VyOiBNYXREYXRlcGlja2VyPERhdGU+O1xyXG5cclxuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlO1xyXG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGU7XHJcbiAgQElucHV0KCkgdG91Y2hVaSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhpZGVTZWNvbmRzID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjYW5jZWxMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwcGx5TGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBhcHBseU1pbkRhdGVBdXRvID0gdHJ1ZTtcclxuICAvKiogV2hlbiB0cnVlLCBwcmVzZXJ2ZXMgdGhlIG9yaWdpbmFsIHZhbHVlICh3aXRoIHRpbWV6b25lKSBpZiB1c2VyIGhhc24ndCBjaGFuZ2VkIHRoZSBkYXRlL3RpbWUgKi9cclxuICBASW5wdXQoKSBwcmVzZXJ2ZU9yaWdpbmFsVmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgX2hvdXJzID0gJzEyJztcclxuICBfbWludXRlcyA9ICcwMCc7XHJcbiAgX3NlY29uZHMgPSAnMDAnO1xyXG4gIF9kYXRlOiBEYXRlO1xyXG4gIC8qKiBTdG9yZXMgdGhlIG9yaWdpbmFsIGlucHV0IHZhbHVlIHRvIHByZXNlcnZlIHN0cmluZyBmb3JtYXQgd2l0aCB0aW1lem9uZSAqL1xyXG4gIHByaXZhdGUgX29yaWdpbmFsVmFsdWU6IERhdGUgfCBzdHJpbmc7XHJcbiAgX3BpY2tlclZhbHVlOiBzdHJpbmc7XHJcbiAgdmFsOiBEYXRlO1xyXG4gIGhlYWRlciA9IEVjYWJzRGF0ZVRpbWVQaWNrZXJIZWFkZXJDb21wb25lbnQ7XHJcbiAgbWF4VmFsdWVIb3VycyA9IDIzO1xyXG4gIG1heFZhbHVlTWludXRlc1NlY29uZHMgPSA1OTtcclxuICBwcmV2ZW50Q2FsbFNldHRlclBpY2tlclZhbHVlID0gZmFsc2U7XHJcbiAgcnVuVGltZW91dCA9IGZhbHNlO1xyXG4gIHRyYW5zbGF0aW9uQ29uZmlnOiBFY2Fic0RhdGVQaWNrZXJUcmFuc2xhdGlvbnM7XHJcbiAgaXNFbXB0eUZvcm1hdCA9ICdfL19fL19fX18sIF9fOl9fJztcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBpY2tlclZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGlja2VyVmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgaG91cnMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9ob3VycztcclxuICB9XHJcblxyXG4gIGdldCBtaW51dGVzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWludXRlcztcclxuICB9XHJcblxyXG4gIGdldCBzZWNvbmRzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2Vjb25kcztcclxuICB9XHJcblxyXG4gIHNldCBob3Vycyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9ob3VycyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5faG91cnMgPSB0aGlzLnJvdW5kTnVtYmVyKCt2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgbWludXRlcyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9taW51dGVzICE9PSB2YWx1ZSkge1xyXG4gICAgICB0aGlzLl9taW51dGVzID0gdGhpcy5yb3VuZE51bWJlcigrdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IHNlY29uZHModmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fc2Vjb25kcyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fc2Vjb25kcyA9IHRoaXMucm91bmROdW1iZXIoK3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSh2YWwpIHtcclxuICAgIGlmICh2YWwgJiYgdGhpcy52YWw/LmdldFRpbWUoKSAhPT0gbmV3IERhdGUodmFsKS5nZXRUaW1lKCkpIHtcclxuICAgICAgaWYgKCF0aGlzLnByZXZlbnRDYWxsU2V0dGVyUGlja2VyVmFsdWUpIHtcclxuICAgICAgICB0aGlzLnBpY2tlclZhbHVlID0gdGhpcy5mb3JtYXREYXRlVGltZSh2YWwpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucHJldmVudENhbGxTZXR0ZXJQaWNrZXJWYWx1ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0IHBpY2tlclZhbHVlKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXZhbCB8fCB2YWwgPT09IHRoaXMuaXNFbXB0eUZvcm1hdCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLnNldFZhbHVlcyh1bmRlZmluZWQpO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRhdGUgPSBwYXJzZShcclxuICAgICAgdmFsLnJlcGxhY2UoJ18nLCAnJyksXHJcbiAgICAgIHRoaXMuaGlkZVNlY29uZHMgPyBgZGQvTU0veXl5eSwgSEg6bW1gIDogYGRkL01NL3l5eXksIEhIOm1tOnNzYCxcclxuICAgICAgbmV3IERhdGUoKSxcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGlzVmFsaWQoZGF0ZSkgJiYgdGhpcy5fcGlja2VyVmFsdWUgIT09IHZhbCkge1xyXG4gICAgICBpZiAodGhpcy5taW5EYXRlICYmIGRhdGUgPCB0aGlzLm1pbkRhdGUgJiYgdGhpcy5hcHBseU1pbkRhdGVBdXRvKSB7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZXModGhpcy5taW5EYXRlKTtcclxuICAgICAgICB0aGlzLl9waWNrZXJWYWx1ZSA9IHZhbDtcclxuICAgICAgICB0aGlzLnByZXZlbnRDYWxsU2V0dGVyUGlja2VyVmFsdWUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbkRhdGU7XHJcbiAgICAgICAgdGhpcy5ydW5UaW1lb3V0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hQaWNrZXJWYWx1ZSh0aGlzLm1pbkRhdGUpO1xyXG5cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLm1heERhdGUgJiYgZGF0ZSA+IHRoaXMubWF4RGF0ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0VmFsdWVzKHRoaXMubWF4RGF0ZSk7XHJcbiAgICAgICAgdGhpcy5fcGlja2VyVmFsdWUgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5wcmV2ZW50Q2FsbFNldHRlclBpY2tlclZhbHVlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5tYXhEYXRlO1xyXG4gICAgICAgIHRoaXMucnVuVGltZW91dCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoUGlja2VyVmFsdWUodGhpcy5tYXhEYXRlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJ1blRpbWVvdXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fcGlja2VyVmFsdWUgPSB2YWw7XHJcbiAgICAgIHRoaXMucHJldmVudENhbGxTZXR0ZXJQaWNrZXJWYWx1ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlO1xyXG4gICAgICB0aGlzLnNldFZhbHVlcyhkYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlOiBFY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZVNlcnZpY2U6IFVuc3Vic2NyaWJlU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWNhYnNEYXRlUGlja2VySGVhZGVyU2VydmljZVxyXG4gICAgICAuZ2V0Q29uZmlnKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLnN1YnNjcmlwdGlvbigpKSlcclxuICAgICAgLnN1YnNjcmliZSgoY29uZmlnKSA9PiAodGhpcy50cmFuc2xhdGlvbkNvbmZpZyA9IGNvbmZpZykpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xyXG4gICAgaWYgKG5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBjb250cm9sRGF0ZSA9IHRoaXMuY29udHJvbC52YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKGNvbnRyb2xEYXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFZhbHVlcyhjb250cm9sRGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIFN0b3JlIG9yaWdpbmFsIHZhbHVlIG9uIGZpcnN0IHdyaXRlIHRvIHByZXNlcnZlIHN0cmluZyBmb3JtYXQgd2l0aCB0aW1lem9uZVxyXG4gICAgaWYgKHRoaXMucHJlc2VydmVPcmlnaW5hbFZhbHVlICYmICF0aGlzLl9vcmlnaW5hbFZhbHVlICYmIHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX29yaWdpbmFsVmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBvbkFwcGx5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2RhdGUgJiYgdGhpcy5fc2Vjb25kcyAmJiB0aGlzLl9taW51dGVzICYmIHRoaXMuX2hvdXJzKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBzZXRTZWNvbmRzKFxyXG4gICAgICAgIHNldE1pbnV0ZXMoXHJcbiAgICAgICAgICBzZXRIb3VycyhuZXcgRGF0ZSh0aGlzLl9kYXRlKSwgK3RoaXMuX2hvdXJzKSxcclxuICAgICAgICAgICt0aGlzLl9taW51dGVzLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgK3RoaXMuX3NlY29uZHMsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWZyZXNoUGlja2VyVmFsdWUoZGF0ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnJ1blRpbWVvdXQpIHtcclxuICAgICAgICB0aGlzLl9waWNrZXJWYWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZVRpbWUoZGF0ZSk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDMwMDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlVGltZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQgPSAnJztcclxuXHJcbiAgICBpZiAoZGF0ZSAmJiBpc1ZhbGlkKG5ldyBEYXRlKGRhdGUpKSkge1xyXG4gICAgICByZXN1bHQgPSB0aGlzLmhpZGVTZWNvbmRzXHJcbiAgICAgICAgPyBmb3JtYXQobmV3IERhdGUoZGF0ZSksIGBkZC9NTS95eXl5LCBISDptbWApXHJcbiAgICAgICAgOiBmb3JtYXQobmV3IERhdGUoZGF0ZSksIGBkZC9NTS95eXl5LCBISDptbTpzc2ApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJvdW5kTnVtYmVyKG51bTogbnVtYmVyKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0obnVtLCAnMi4wLTAnKSA/PyAnMDAnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZXMoZGF0ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgLy8gUHJlc2VydmUgb3JpZ2luYWwgdmFsdWUgaWYgdGltZSB1bmNoYW5nZWRcclxuICAgIGNvbnN0IHNob3VsZFJldHVybk9yaWdpbmFsVmFsdWUgPVxyXG4gICAgICB0aGlzLl9vcmlnaW5hbFZhbHVlICYmIGlzU2FtZU1pbnV0ZShuZXcgRGF0ZSh0aGlzLl9vcmlnaW5hbFZhbHVlKSwgZGF0ZSk7XHJcblxyXG4gICAgY29uc3QgdmFsdWVUb0VtaXQgPSBzaG91bGRSZXR1cm5PcmlnaW5hbFZhbHVlID8gdGhpcy5fb3JpZ2luYWxWYWx1ZSA6IGRhdGU7XHJcblxyXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZVRvRW1pdCk7XHJcbiAgICB0aGlzLm9uVG91Y2godmFsdWVUb0VtaXQpO1xyXG5cclxuICAgIGNvbnN0IGRhdGVUb1VzZSA9IHZhbHVlVG9FbWl0ID8gbmV3IERhdGUodmFsdWVUb0VtaXQpIDogZGF0ZTtcclxuICAgIHRoaXMuX2RhdGUgPSBkYXRlVG9Vc2U7XHJcblxyXG4gICAgaWYgKGRhdGVUb1VzZSAmJiBpc1ZhbGlkKGRhdGVUb1VzZSkpIHtcclxuICAgICAgdGhpcy5ob3VycyA9IGRhdGVUb1VzZS5nZXRIb3VycygpLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMubWludXRlcyA9IGRhdGVUb1VzZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5zZWNvbmRzID0gZGF0ZVRvVXNlLmdldFNlY29uZHMoKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZWNhYnMtZWxlbWVudC13cmFwcGVyIFtkYXRhXT1cImdldERhdGEoKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dC0td3JhcHBlciB3LWZ1bGxcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cImZha2UtaW5wdXRcIlxyXG4gICAgICBbaWRdPVwiX2RhdGVcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cIl9kYXRlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcclxuICAgICAgW21pbl09XCJtaW5EYXRlXCJcclxuICAgICAgW21heF09XCJtYXhEYXRlXCJcclxuICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcclxuICAgIC8+XHJcbiAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlciBbY2FsZW5kYXJIZWFkZXJDb21wb25lbnRdPVwiaGVhZGVyXCIgW3RvdWNoVWldPVwidG91Y2hVaVwiIGNsYXNzPVwiZGF0ZXBpY2tlci11aVwiPlxyXG4gICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtLWlucHV0c1wiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgIGVjYWJzRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgIGVjYWJzTnVtYmVyQm9yZGVyXHJcbiAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cImhvdXJzXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiX2hvdXJzXCJcclxuICAgICAgICAgICAgICBbbWF4VmFsdWVdPVwibWF4VmFsdWVIb3Vyc1wiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJob3Vyc1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+Ojwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB0aW1lXCJcclxuICAgICAgICAgICAgICBbaWRdPVwibWludXRlc1wiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtaW51dGVzXCJcclxuICAgICAgICAgICAgICBlY2Fic0RpZ2l0c09ubHlcclxuICAgICAgICAgICAgICBlY2Fic051bWJlckJvcmRlclxyXG4gICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZU1pbnV0ZXNTZWNvbmRzXCJcclxuICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZVNlY29uZHNcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPjo8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgICAgW2lkXT1cInNlY29uZHNcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWNvbmRzXCJcclxuICAgICAgICAgICAgICAgIGVjYWJzRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgICAgZWNhYnNOdW1iZXJCb3JkZXJcclxuICAgICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlTWludXRlc1NlY29uZHNcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGVjYWJzLWRhdGUtcGlja2VyLWFjdGlvbnMgW2FwcGx5TGFiZWxdPVwiYXBwbHlMYWJlbCA/PyB0cmFuc2xhdGlvbkNvbmZpZz8uYXBwbHlMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FuY2VsTGFiZWxdPVwiY2FuY2VsTGFiZWwgPz8gdHJhbnNsYXRpb25Db25maWc/LmNhbmNlbExhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSk9XCJvbkFwcGx5KClcIj5cclxuICAgICAgICAgIDwvZWNhYnMtZGF0ZS1waWNrZXItYWN0aW9ucz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtZGF0ZXBpY2tlci1hY3Rpb25zPlxyXG4gICAgPC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgIDxpbnB1dCAjbWF0Q3VzdG9tSW5wdXRcclxuICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHctZnVsbCBkYXRlLWlucHV0XCJcclxuICAgICAgICAgICBbaWRdPVwibmFtZVwiXHJcbiAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwaWNrZXJWYWx1ZVwiXHJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgIGVjYWJzTWFza0RhdGVcclxuICAgICAgICAgICBbaXNEYXRlVGltZU1hc2tdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgW2NvbnNpZGVyU2Vjb25kc109XCIhaGlkZVNlY29uZHNcIlxyXG4gICAgICAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAvPlxyXG5cclxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBtYXREYXRlcGlja2VyVG9nZ2xlSWNvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwXCI+XHJcbiAgICAgICAgY2FsZW5kYXJfdG9kYXlcclxuICAgICAgPC9tYXQtaWNvbj5cclxuICAgIDwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gIDwvZGl2PlxyXG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cclxuIl19
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtZGF0ZS10aW1lLXBpY2tlci9lY2Ficy1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXRpbWUtcGlja2VyL2VjYWJzLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsR0FDWCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBR0wsU0FBUyxFQUVULFVBQVUsRUFFVixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxHQUVWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQUc3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxvRkFBb0YsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFpQnhJLE1BQU0sT0FBTyw0QkFDWCxTQUFRLHlCQUF5QjtJQXNJZDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBdEluQixjQUFjLENBQWE7SUFHM0IsZUFBZSxDQUFzQjtJQUU1QixPQUFPLENBQU87SUFDZCxPQUFP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LEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNsRDtJQUNILENBQUM7d0dBelFVLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLGlTQVY1QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQzNELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRCxXQUFXO1lBQ1gsa0JBQWtCO1NBQ25CLCtQQ2pESCxvM0ZBK0VBOzs0RkQ1QmEsNEJBQTRCO2tCQWR4QyxTQUFTOytCQUNFLHdCQUF3QixhQUd2Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzs0QkFDM0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsV0FBVzt3QkFDWCxrQkFBa0I7cUJBQ25CO3FPQU9ELGNBQWM7c0JBRGIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSTlDLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUc3QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBmb3JtYXQsXHJcbiAgaXNTYW1lTWludXRlLFxyXG4gIGlzVmFsaWQsXHJcbiAgcGFyc2UsXHJcbiAgc2V0SG91cnMsXHJcbiAgc2V0TWludXRlcyxcclxuICBzZXRTZWNvbmRzLFxyXG59IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgTmdDb250cm9sLFxyXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcbmltcG9ydCB7IEVjYWJzRGF0ZVBpY2tlclRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL2Jhc2UvbW9kZWxzL2VjYWJzLWRhdGUtcGlja2VyLXRyYW5zbGF0aW9ucy5tb2RlbHMnO1xyXG5pbXBvcnQgeyBFY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS9zZXJ2aWNlcy9lY2Ficy1kYXRlLXBpY2tlci10cmFuc2xhdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IFVuc3Vic2NyaWJlU2VydmljZSB9IGZyb20gJy4uL2Jhc2Uvc2VydmljZXMvdW5zdWJzY3JpYmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEVjYWJzRGF0ZVRpbWVQaWNrZXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWNhYnMtZGF0ZS10aW1lLXBpY2tlci1oZWFkZXIvZWNhYnMtZGF0ZS10aW1lLXBpY2tlci1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1kYXRlLXRpbWUtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWNhYnNEYXRlVGltZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIERlY2ltYWxQaXBlLFxyXG4gICAgVW5zdWJzY3JpYmVTZXJ2aWNlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic0RhdGVUaW1lUGlja2VyQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBFY2Fic0VsZW1lbnRCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0XHJcbntcclxuICBAVmlld0NoaWxkKCdtYXRDdXN0b21JbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIG1hdEN1c3RvbUlucHV0OiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBtYXRDdXN0b21QaWNrZXI6IE1hdERhdGVwaWNrZXI8RGF0ZT47XHJcblxyXG4gIEBJbnB1dCgpIG1pbkRhdGU6IERhdGU7XHJcbiAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZTtcclxuICBASW5wdXQoKSB0b3VjaFVpID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGlkZVNlY29uZHMgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNhbmNlbExhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYXBwbHlMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwcGx5TWluRGF0ZUF1dG8gPSB0cnVlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHByZXNlcnZlcyB0aGUgb3JpZ2luYWwgdmFsdWUgKHdpdGggdGltZXpvbmUpIGlmIHVzZXIgaGFzbid0IGNoYW5nZWQgdGhlIGRhdGUvdGltZSAqL1xyXG4gIEBJbnB1dCgpIHByZXNlcnZlT3JpZ2luYWxWYWx1ZSA9IGZhbHNlO1xyXG5cclxuICBfaG91cnMgPSAnMTInO1xyXG4gIF9taW51dGVzID0gJzAwJztcclxuICBfc2Vjb25kcyA9ICcwMCc7XHJcbiAgX2RhdGU6IERhdGU7XHJcbiAgLyoqIFN0b3JlcyB0aGUgb3JpZ2luYWwgaW5wdXQgdmFsdWUgdG8gcHJlc2VydmUgc3RyaW5nIGZvcm1hdCB3aXRoIHRpbWV6b25lICovXHJcbiAgcHJpdmF0ZSBfb3JpZ2luYWxWYWx1ZTogRGF0ZSB8IHN0cmluZztcclxuICBfcGlja2VyVmFsdWU6IHN0cmluZztcclxuICB2YWw6IERhdGU7XHJcbiAgaGVhZGVyID0gRWNhYnNEYXRlVGltZVBpY2tlckhlYWRlckNvbXBvbmVudDtcclxuICBtYXhWYWx1ZUhvdXJzID0gMjM7XHJcbiAgbWF4VmFsdWVNaW51dGVzU2Vjb25kcyA9IDU5O1xyXG4gIHByZXZlbnRDYWxsU2V0dGVyUGlja2VyVmFsdWUgPSBmYWxzZTtcclxuICBydW5UaW1lb3V0ID0gZmFsc2U7XHJcbiAgdHJhbnNsYXRpb25Db25maWc6IEVjYWJzRGF0ZVBpY2tlclRyYW5zbGF0aW9ucztcclxuICBpc0VtcHR5Rm9ybWF0ID0gdW5kZWZpbmVkO1xyXG5cclxuICBnZXQgdmFsdWUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWw7XHJcbiAgfVxyXG5cclxuICBnZXQgcGlja2VyVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9waWNrZXJWYWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBob3VycygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hvdXJzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbnV0ZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9taW51dGVzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlY29uZHMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWNvbmRzO1xyXG4gIH1cclxuXHJcbiAgc2V0IGhvdXJzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX2hvdXJzID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5faG91cnMgPSB0aGlzLm5vcm1hbGl6ZVdpdGhBdXRvUGFkKHZhbHVlLCAzKTtcclxuICB9XHJcblxyXG4gIHNldCBtaW51dGVzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX21pbnV0ZXMgPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9taW51dGVzID0gdGhpcy5ub3JtYWxpemVXaXRoQXV0b1BhZCh2YWx1ZSwgNik7XHJcbiAgfVxyXG5cclxuICBzZXQgc2Vjb25kcyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLl9zZWNvbmRzID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fc2Vjb25kcyA9IHRoaXMubm9ybWFsaXplV2l0aEF1dG9QYWQodmFsdWUsIDYpO1xyXG4gIH1cclxuXHJcbiAgc2V0IHZhbHVlKHZhbCkge1xyXG4gICAgaWYgKHZhbCAmJiB0aGlzLnZhbD8uZ2V0VGltZSgpICE9PSBuZXcgRGF0ZSh2YWwpLmdldFRpbWUoKSkge1xyXG4gICAgICBpZiAoIXRoaXMucHJldmVudENhbGxTZXR0ZXJQaWNrZXJWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMucGlja2VyVmFsdWUgPSB0aGlzLmZvcm1hdERhdGVUaW1lKHZhbCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wcmV2ZW50Q2FsbFNldHRlclBpY2tlclZhbHVlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgcGlja2VyVmFsdWUodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICghdmFsIHx8IHZhbCA9PT0gdGhpcy5pc0VtcHR5Rm9ybWF0KSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMuc2V0VmFsdWVzKHVuZGVmaW5lZCk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGF0ZSA9IHBhcnNlKFxyXG4gICAgICB2YWwucmVwbGFjZSgnXycsICcnKSxcclxuICAgICAgdGhpcy5oaWRlU2Vjb25kcyA/IGBkZC9NTS95eXl5LCBISDptbWAgOiBgZGQvTU0veXl5eSwgSEg6bW06c3NgLFxyXG4gICAgICBuZXcgRGF0ZSgpLFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoaXNWYWxpZChkYXRlKSAmJiB0aGlzLl9waWNrZXJWYWx1ZSAhPT0gdmFsKSB7XHJcbiAgICAgIGlmICh0aGlzLm1pbkRhdGUgJiYgZGF0ZSA8IHRoaXMubWluRGF0ZSAmJiB0aGlzLmFwcGx5TWluRGF0ZUF1dG8pIHtcclxuICAgICAgICB0aGlzLnNldFZhbHVlcyh0aGlzLm1pbkRhdGUpO1xyXG4gICAgICAgIHRoaXMuX3BpY2tlclZhbHVlID0gdmFsO1xyXG4gICAgICAgIHRoaXMucHJldmVudENhbGxTZXR0ZXJQaWNrZXJWYWx1ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubWluRGF0ZTtcclxuICAgICAgICB0aGlzLnJ1blRpbWVvdXQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFBpY2tlclZhbHVlKHRoaXMubWluRGF0ZSk7XHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMubWF4RGF0ZSAmJiBkYXRlID4gdGhpcy5tYXhEYXRlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZXModGhpcy5tYXhEYXRlKTtcclxuICAgICAgICB0aGlzLl9waWNrZXJWYWx1ZSA9IHZhbDtcclxuICAgICAgICB0aGlzLnByZXZlbnRDYWxsU2V0dGVyUGlja2VyVmFsdWUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1heERhdGU7XHJcbiAgICAgICAgdGhpcy5ydW5UaW1lb3V0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hQaWNrZXJWYWx1ZSh0aGlzLm1heERhdGUpO1xyXG5cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucnVuVGltZW91dCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLl9waWNrZXJWYWx1ZSA9IHZhbDtcclxuICAgICAgdGhpcy5wcmV2ZW50Q2FsbFNldHRlclBpY2tlclZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy52YWx1ZSA9IGRhdGU7XHJcbiAgICAgIHRoaXMuc2V0VmFsdWVzKGRhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVjYWJzRGF0ZVBpY2tlckhlYWRlclNlcnZpY2U6IEVjYWJzRGF0ZVBpY2tlckhlYWRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlU2VydmljZTogVW5zdWJzY3JpYmVTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRDb25maWcoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZVNlcnZpY2Uuc3Vic2NyaXB0aW9uKCkpKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb25maWcpID0+ICh0aGlzLnRyYW5zbGF0aW9uQ29uZmlnID0gY29uZmlnKSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAobmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xEYXRlID0gdGhpcy5jb250cm9sLnZhbHVlO1xyXG5cclxuICAgICAgICBpZiAoY29udHJvbERhdGUpIHtcclxuICAgICAgICAgIHRoaXMuc2V0VmFsdWVzKGNvbnRyb2xEYXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcclxuXHJcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgLy8gU3RvcmUgb3JpZ2luYWwgdmFsdWUgb24gZmlyc3Qgd3JpdGUgdG8gcHJlc2VydmUgc3RyaW5nIGZvcm1hdCB3aXRoIHRpbWV6b25lXHJcbiAgICBpZiAodGhpcy5wcmVzZXJ2ZU9yaWdpbmFsVmFsdWUgJiYgIXRoaXMuX29yaWdpbmFsVmFsdWUgJiYgdmFsdWUpIHtcclxuICAgICAgdGhpcy5fb3JpZ2luYWxWYWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcblxyXG4gIG9uQXBwbHkoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZGF0ZSAmJiB0aGlzLl9zZWNvbmRzICYmIHRoaXMuX21pbnV0ZXMgJiYgdGhpcy5faG91cnMpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHNldFNlY29uZHMoXHJcbiAgICAgICAgc2V0TWludXRlcyhcclxuICAgICAgICAgIHNldEhvdXJzKG5ldyBEYXRlKHRoaXMuX2RhdGUpLCArdGhpcy5faG91cnMpLFxyXG4gICAgICAgICAgK3RoaXMuX21pbnV0ZXMsXHJcbiAgICAgICAgKSxcclxuICAgICAgICArdGhpcy5fc2Vjb25kcyxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZnJlc2hQaWNrZXJWYWx1ZShkYXRlOiBEYXRlKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMucnVuVGltZW91dCkge1xyXG4gICAgICAgIHRoaXMuX3BpY2tlclZhbHVlID0gdGhpcy5mb3JtYXREYXRlVGltZShkYXRlKTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMzAwMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdERhdGVUaW1lKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG5cclxuICAgIGlmIChkYXRlICYmIGlzVmFsaWQobmV3IERhdGUoZGF0ZSkpKSB7XHJcbiAgICAgIHJlc3VsdCA9IHRoaXMuaGlkZVNlY29uZHNcclxuICAgICAgICA/IGZvcm1hdChuZXcgRGF0ZShkYXRlKSwgYGRkL01NL3l5eXksIEhIOm1tYClcclxuICAgICAgICA6IGZvcm1hdChuZXcgRGF0ZShkYXRlKSwgYGRkL01NL3l5eXksIEhIOm1tOnNzYCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbm9ybWFsaXplV2l0aEF1dG9QYWQocmF3VmFsdWU6IHN0cmluZywgYXV0b1BhZEZyb206IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBkaWdpdHMgPSB0aGlzLnRvRGlnaXRzKHJhd1ZhbHVlLCAyKTtcclxuXHJcbiAgICBpZiAoIWRpZ2l0cykge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRpZ2l0cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgY29uc3QgZmlyc3QgPSBwYXJzZUludChkaWdpdHMsIDEwKTtcclxuXHJcbiAgICAgIGlmIChmaXJzdCA+PSBhdXRvUGFkRnJvbSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdFR3b0RpZ2l0cyhmaXJzdCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBkaWdpdHM7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0VHdvRGlnaXRzKHBhcnNlSW50KGRpZ2l0cywgMTApKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9EaWdpdHModmFsdWU6IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHZhbHVlPy50b1N0cmluZygpLnJlcGxhY2UoL1xcRC9nLCAnJykuc2xpY2UoMCwgbWF4TGVuZ3RoKSA/PyAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0VHdvRGlnaXRzKG51bTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybShudW0sICcyLjAtMCcpID8/ICcwMCc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFZhbHVlcyhkYXRlOiBEYXRlKTogdm9pZCB7XHJcbiAgICAvLyBQcmVzZXJ2ZSBvcmlnaW5hbCB2YWx1ZSBpZiB0aW1lIHVuY2hhbmdlZFxyXG4gICAgY29uc3Qgc2hvdWxkUmV0dXJuT3JpZ2luYWxWYWx1ZSA9XHJcbiAgICAgIHRoaXMuX29yaWdpbmFsVmFsdWUgJiYgaXNTYW1lTWludXRlKG5ldyBEYXRlKHRoaXMuX29yaWdpbmFsVmFsdWUpLCBkYXRlKTtcclxuXHJcbiAgICBjb25zdCB2YWx1ZVRvRW1pdCA9IHNob3VsZFJldHVybk9yaWdpbmFsVmFsdWUgPyB0aGlzLl9vcmlnaW5hbFZhbHVlIDogZGF0ZTtcclxuXHJcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlVG9FbWl0KTtcclxuICAgIHRoaXMub25Ub3VjaCh2YWx1ZVRvRW1pdCk7XHJcblxyXG4gICAgY29uc3QgZGF0ZVRvVXNlID0gdmFsdWVUb0VtaXQgPyBuZXcgRGF0ZSh2YWx1ZVRvRW1pdCkgOiBkYXRlO1xyXG4gICAgdGhpcy5fZGF0ZSA9IGRhdGVUb1VzZTtcclxuXHJcbiAgICBpZiAoZGF0ZVRvVXNlICYmIGlzVmFsaWQoZGF0ZVRvVXNlKSkge1xyXG4gICAgICB0aGlzLmhvdXJzID0gZGF0ZVRvVXNlLmdldEhvdXJzKCkudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5taW51dGVzID0gZGF0ZVRvVXNlLmdldE1pbnV0ZXMoKS50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLnNlY29uZHMgPSBkYXRlVG9Vc2UuZ2V0U2Vjb25kcygpLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxlY2Ficy1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS13cmFwcGVyIHctZnVsbFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwiZmFrZS1pbnB1dFwiXHJcbiAgICAgIFtpZF09XCJfZGF0ZVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiX2RhdGVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIlxyXG4gICAgICBbbWluXT1cIm1pbkRhdGVcIlxyXG4gICAgICBbbWF4XT1cIm1heERhdGVcIlxyXG4gICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxyXG4gICAgLz5cclxuICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyIFtjYWxlbmRhckhlYWRlckNvbXBvbmVudF09XCJoZWFkZXJcIiBbdG91Y2hVaV09XCJ0b3VjaFVpXCIgY2xhc3M9XCJkYXRlcGlja2VyLXVpXCI+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlci1hY3Rpb25zPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS0taW5wdXRzXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQgdGltZVwiXHJcbiAgICAgICAgICAgICAgZWNhYnNEaWdpdHNPbmx5XHJcbiAgICAgICAgICAgICAgZWNhYnNOdW1iZXJCb3JkZXJcclxuICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbaWRdPVwiaG91cnNcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJfaG91cnNcIlxyXG4gICAgICAgICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZUhvdXJzXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhvdXJzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj46PC9zcGFuPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHRpbWVcIlxyXG4gICAgICAgICAgICAgIFtpZF09XCJtaW51dGVzXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1pbnV0ZXNcIlxyXG4gICAgICAgICAgICAgIGVjYWJzRGlnaXRzT25seVxyXG4gICAgICAgICAgICAgIGVjYWJzTnVtYmVyQm9yZGVyXHJcbiAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlTWludXRlc1NlY29uZHNcIlxyXG4gICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoaWRlU2Vjb25kc1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+Ojwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQgdGltZVwiXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwic2Vjb25kc1wiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlY29uZHNcIlxyXG4gICAgICAgICAgICAgICAgZWNhYnNEaWdpdHNPbmx5XHJcbiAgICAgICAgICAgICAgICBlY2Fic051bWJlckJvcmRlclxyXG4gICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbbWF4VmFsdWVdPVwibWF4VmFsdWVNaW51dGVzU2Vjb25kc1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZWNhYnMtZGF0ZS1waWNrZXItYWN0aW9ucyBbYXBwbHlMYWJlbF09XCJhcHBseUxhYmVsID8/IHRyYW5zbGF0aW9uQ29uZmlnPy5hcHBseUxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYW5jZWxMYWJlbF09XCJjYW5jZWxMYWJlbCA/PyB0cmFuc2xhdGlvbkNvbmZpZz8uY2FuY2VsTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5KT1cIm9uQXBwbHkoKVwiPlxyXG4gICAgICAgICAgPC9lY2Ficy1kYXRlLXBpY2tlci1hY3Rpb25zPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1kYXRlcGlja2VyLWFjdGlvbnM+XHJcbiAgICA8L21hdC1kYXRlcGlja2VyPlxyXG4gICAgPGlucHV0ICNtYXRDdXN0b21JbnB1dFxyXG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQgdy1mdWxsIGRhdGUtaW5wdXRcIlxyXG4gICAgICAgICAgIFtpZF09XCJuYW1lXCJcclxuICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBpY2tlclZhbHVlXCJcclxuICAgICAgICAgICBwbGFjZWhvbGRlcj1cImRkL01NL3l5eXksIEhIOm1tXCJcclxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgIGVjYWJzTWFza0RhdGVcclxuICAgICAgICAgICBbaXNEYXRlVGltZU1hc2tdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgW2NvbnNpZGVyU2Vjb25kc109XCIhaGlkZVNlY29uZHNcIlxyXG4gICAgICAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAvPlxyXG5cclxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBtYXREYXRlcGlja2VyVG9nZ2xlSWNvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwXCI+XHJcbiAgICAgICAgY2FsZW5kYXJfdG9kYXlcclxuICAgICAgPC9tYXQtaWNvbj5cclxuICAgIDwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gIDwvZGl2PlxyXG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cclxuIl19
|