@taiga-ui/kit 3.75.0 → 3.77.0
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/bundles/taiga-ui-kit-components-accordion.umd.js +2 -5
- package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-multi.umd.js +24 -43
- package/bundles/taiga-ui-kit-components-input-date-multi.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-range.umd.js +25 -43
- package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date.umd.js +29 -46
- package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-slider.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-tag.umd.js +9 -5
- package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-multi-select-option.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-multi-select-option.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-multi-select.umd.js +5 -2
- package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-radio.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tag.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-textarea.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-textarea.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-toggle.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
- package/components/accordion/accordion-item/accordion-item.component.d.ts +0 -1
- package/components/input-date/input-date.component.d.ts +7 -7
- package/components/input-date-multi/input-date-multi.component.d.ts +4 -7
- package/components/input-date-range/input-date-range.component.d.ts +4 -7
- package/components/input-tag/input-tag.component.d.ts +2 -1
- package/components/input-tag/input-tag.options.d.ts +1 -0
- package/components/multi-select/multi-select.component.d.ts +2 -1
- package/esm2015/components/accordion/accordion-item/accordion-item.component.js +2 -5
- package/esm2015/components/accordion/accordion.component.js +1 -1
- package/esm2015/components/checkbox/checkbox.component.js +1 -1
- package/esm2015/components/input-date/input-date.component.js +28 -41
- package/esm2015/components/input-date-multi/input-date-multi.component.js +23 -38
- package/esm2015/components/input-date-range/input-date-range.component.js +24 -38
- package/esm2015/components/input-slider/input-slider.component.js +1 -1
- package/esm2015/components/input-tag/input-tag.component.js +8 -5
- package/esm2015/components/input-tag/input-tag.options.js +3 -2
- package/esm2015/components/multi-select/multi-select.component.js +6 -3
- package/esm2015/components/multi-select-option/multi-select-option.component.js +1 -1
- package/esm2015/components/radio/radio.component.js +1 -1
- package/esm2015/components/tag/tag.component.js +1 -1
- package/esm2015/components/textarea/deprecated.js +1 -1
- package/esm2015/components/textarea/textarea.component.js +1 -1
- package/esm2015/components/toggle/toggle.component.js +1 -1
- package/fesm2015/taiga-ui-kit-components-accordion.js +2 -5
- package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
- package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-multi.js +24 -38
- package/fesm2015/taiga-ui-kit-components-input-date-multi.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-range.js +25 -38
- package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date.js +29 -41
- package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-slider.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-tag.js +9 -5
- package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-multi-select-option.js +1 -1
- package/fesm2015/taiga-ui-kit-components-multi-select-option.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-multi-select.js +5 -2
- package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-radio.js +1 -1
- package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-tag.js +1 -1
- package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-textarea.js +2 -2
- package/fesm2015/taiga-ui-kit-components-textarea.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-toggle.js +1 -1
- package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, Inject,
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, Inject, inject, InjectFlags, Input, Optional, Self, ViewChild, } from '@angular/core';
|
|
3
3
|
import { NgControl } from '@angular/forms';
|
|
4
4
|
import { MASKITO_DEFAULT_OPTIONS } from '@maskito/core';
|
|
5
5
|
import { maskitoDateOptionsGenerator } from '@maskito/kit';
|
|
6
6
|
import { AbstractTuiNullableControl, ALWAYS_FALSE_HANDLER, changeDateSeparator, DATE_FILLER_LENGTH, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, TUI_IS_MOBILE, tuiAsControl, tuiAsFocusableItemAccessor, tuiDateClamp, TuiDay, TuiMonth, tuiNullableSame, tuiPure, } from '@taiga-ui/cdk';
|
|
7
|
-
import { TUI_DEFAULT_MARKER_HANDLER,
|
|
7
|
+
import { TUI_DEFAULT_MARKER_HANDLER, TUI_DROPDOWN_COMPONENT, TUI_TEXTFIELD_SIZE, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
|
|
8
8
|
import { TUI_DATE_MODE_MASKITO_ADAPTER } from '@taiga-ui/kit/constants';
|
|
9
9
|
import { TUI_DATE_TEXTS, TUI_DATE_VALUE_TRANSFORMER, TUI_INPUT_DATE_OPTIONS, TUI_MOBILE_CALENDAR, tuiDateStreamWithTransformer, } from '@taiga-ui/kit/tokens';
|
|
10
|
-
import {
|
|
11
|
-
import { map, takeUntil } from 'rxjs/operators';
|
|
10
|
+
import { map } from 'rxjs/operators';
|
|
12
11
|
import * as i0 from "@angular/core";
|
|
13
12
|
import * as i1 from "@taiga-ui/core";
|
|
14
13
|
import * as i2 from "@taiga-ui/cdk";
|
|
@@ -20,11 +19,9 @@ import * as i7 from "./native-date/native-date.component";
|
|
|
20
19
|
import * as i8 from "@angular/forms";
|
|
21
20
|
import * as i9 from "rxjs";
|
|
22
21
|
export class TuiInputDateComponent extends AbstractTuiNullableControl {
|
|
23
|
-
constructor(control, cdr,
|
|
22
|
+
constructor(control, cdr, isMobile, mobileCalendar, dateFormat, dateSeparator, dateTexts$, valueTransformer, options, textfieldSize) {
|
|
24
23
|
super(control, cdr, valueTransformer);
|
|
25
|
-
this.injector = injector;
|
|
26
24
|
this.isMobile = isMobile;
|
|
27
|
-
this.dialogs = dialogs;
|
|
28
25
|
this.mobileCalendar = mobileCalendar;
|
|
29
26
|
this.dateFormat = dateFormat;
|
|
30
27
|
this.dateSeparator = dateSeparator;
|
|
@@ -61,6 +58,9 @@ export class TuiInputDateComponent extends AbstractTuiNullableControl {
|
|
|
61
58
|
var _a;
|
|
62
59
|
return !!((_a = this.textfield) === null || _a === void 0 ? void 0 : _a.focused);
|
|
63
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated
|
|
63
|
+
*/
|
|
64
64
|
get computedMobile() {
|
|
65
65
|
return this.isMobile && (!!this.mobileCalendar || this.nativePicker);
|
|
66
66
|
}
|
|
@@ -90,13 +90,9 @@ export class TuiInputDateComponent extends AbstractTuiNullableControl {
|
|
|
90
90
|
return ((_a = this.nativeFocusableElement) === null || _a === void 0 ? void 0 : _a.value) || '';
|
|
91
91
|
}
|
|
92
92
|
set nativeValue(value) {
|
|
93
|
-
if (
|
|
94
|
-
|
|
93
|
+
if (this.nativeFocusableElement) {
|
|
94
|
+
this.nativeFocusableElement.value = value;
|
|
95
95
|
}
|
|
96
|
-
this.nativeFocusableElement.value = value;
|
|
97
|
-
}
|
|
98
|
-
get canOpen() {
|
|
99
|
-
return this.interactive && !this.computedMobile;
|
|
100
96
|
}
|
|
101
97
|
get computedMask() {
|
|
102
98
|
return this.activeItem
|
|
@@ -108,7 +104,7 @@ export class TuiInputDateComponent extends AbstractTuiNullableControl {
|
|
|
108
104
|
return (value && this.items.find(item => item.day.daySame(value))) || null;
|
|
109
105
|
}
|
|
110
106
|
onClick() {
|
|
111
|
-
if (!this.isMobile) {
|
|
107
|
+
if (!this.isMobile && this.interactive) {
|
|
112
108
|
this.open = !this.open;
|
|
113
109
|
}
|
|
114
110
|
}
|
|
@@ -124,30 +120,15 @@ export class TuiInputDateComponent extends AbstractTuiNullableControl {
|
|
|
124
120
|
this.onIconClick();
|
|
125
121
|
}
|
|
126
122
|
onIconClick() {
|
|
127
|
-
if (
|
|
128
|
-
|
|
123
|
+
if (this.isMobile && this.interactive) {
|
|
124
|
+
this.open = true;
|
|
129
125
|
}
|
|
130
|
-
this.dialogs
|
|
131
|
-
.open(new PolymorpheusComponent(this.mobileCalendar, this.injector), {
|
|
132
|
-
size: 'fullscreen',
|
|
133
|
-
closeable: false,
|
|
134
|
-
data: {
|
|
135
|
-
single: true,
|
|
136
|
-
min: this.min,
|
|
137
|
-
max: this.max,
|
|
138
|
-
disabledItemHandler: this.disabledItemHandler,
|
|
139
|
-
},
|
|
140
|
-
})
|
|
141
|
-
.pipe(takeUntil(this.destroy$))
|
|
142
|
-
.subscribe(value => {
|
|
143
|
-
this.value = value;
|
|
144
|
-
});
|
|
145
126
|
}
|
|
146
127
|
onValueChange(value) {
|
|
147
128
|
if (this.control) {
|
|
148
129
|
this.control.updateValueAndValidity({ emitEvent: false });
|
|
149
130
|
}
|
|
150
|
-
if (!value) {
|
|
131
|
+
if (!value && !this.mobileCalendar) {
|
|
151
132
|
this.onOpenChange(true);
|
|
152
133
|
}
|
|
153
134
|
this.value =
|
|
@@ -188,12 +169,18 @@ export class TuiInputDateComponent extends AbstractTuiNullableControl {
|
|
|
188
169
|
});
|
|
189
170
|
}
|
|
190
171
|
}
|
|
191
|
-
TuiInputDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token:
|
|
172
|
+
TuiInputDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_IS_MOBILE }, { token: TUI_MOBILE_CALENDAR, optional: true }, { token: TUI_DATE_FORMAT }, { token: TUI_DATE_SEPARATOR }, { token: TUI_DATE_TEXTS }, { token: TUI_DATE_VALUE_TRANSFORMER, optional: true }, { token: TUI_INPUT_DATE_OPTIONS }, { token: TUI_TEXTFIELD_SIZE }], target: i0.ɵɵFactoryTarget.Component });
|
|
192
173
|
TuiInputDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputDateComponent, selector: "tui-input-date", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", items: "items", defaultActiveYearMonth: "defaultActiveYearMonth" }, host: { listeners: { "click": "onClick()" }, properties: { "attr.data-size": "this.size" } }, providers: [
|
|
193
174
|
tuiAsFocusableItemAccessor(TuiInputDateComponent),
|
|
194
175
|
tuiAsControl(TuiInputDateComponent),
|
|
195
176
|
tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
|
|
196
|
-
|
|
177
|
+
{
|
|
178
|
+
provide: TUI_DROPDOWN_COMPONENT,
|
|
179
|
+
useFactory: () => (inject(TUI_IS_MOBILE) &&
|
|
180
|
+
inject(TUI_MOBILE_CALENDAR, InjectFlags.Optional)) ||
|
|
181
|
+
inject(TUI_DROPDOWN_COMPONENT, InjectFlags.SkipSelf),
|
|
182
|
+
},
|
|
183
|
+
], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive && !nativePicker\"\n [content]=\"dropdown\"\n [open]=\"open && interactive && !nativePicker\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"filler$ | async as filler\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"computedMask\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"getComputedFiller(filler || '')\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (focusedChange)=\"onFocused($event)\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content></ng-content>\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n ></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-svg\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n appearance=\"icon\"\n automation-id=\"tui-input-date-range__icon\"\n tuiWrapper\n [class.t-icon]=\"!computedDisabled\"\n [src]=\"src\"\n (click)=\"onIconClick()\"\n ></tui-svg>\n <input\n *ngIf=\"isMobile && nativePicker\"\n tuiDate\n class=\"t-native-input\"\n />\n </ng-template>\n\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"type\"\n >\n <tui-calendar\n automation-id=\"tui-input-date__calendar\"\n tuiPreventDefault=\"mousedown\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n ></tui-calendar>\n <div\n *ngIf=\"items.length === 1\"\n tuiPreventDefault=\"mousedown\"\n class=\"t-button\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"onDayClick(items[0].day)\"\n >\n {{ items[0] }}\n </button>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-button{display:flex;height:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-base-03)}.t-button button{flex:1;text-align:center}.t-native-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiCalendarComponent, selector: "tui-calendar", inputs: ["initialView", "month", "disabledItemHandler", "min", "max", "minViewedMonth", "maxViewedMonth", "hoveredItem", "showAdjacent", "markerHandler", "value"], outputs: ["dayClick", "monthChange", "hoveredItemChange"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i2.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i3.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { type: i1.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.TuiNativeDateDirective, selector: "input[tuiDate]" }, { type: i5.PolymorpheusTemplate, selector: "ng-template[polymorpheus]", inputs: ["polymorpheus"], exportAs: ["polymorpheus"] }, { type: i2.TuiPreventDefaultDirective, selector: "[tuiPreventDefault]", inputs: ["tuiPreventDefault"] }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
197
184
|
__decorate([
|
|
198
185
|
tuiPure
|
|
199
186
|
], TuiInputDateComponent.prototype, "computeMaskOptions", null);
|
|
@@ -208,6 +195,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
208
195
|
tuiAsFocusableItemAccessor(TuiInputDateComponent),
|
|
209
196
|
tuiAsControl(TuiInputDateComponent),
|
|
210
197
|
tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
|
|
198
|
+
{
|
|
199
|
+
provide: TUI_DROPDOWN_COMPONENT,
|
|
200
|
+
useFactory: () => (inject(TUI_IS_MOBILE) &&
|
|
201
|
+
inject(TUI_MOBILE_CALENDAR, InjectFlags.Optional)) ||
|
|
202
|
+
inject(TUI_DROPDOWN_COMPONENT, InjectFlags.SkipSelf),
|
|
203
|
+
},
|
|
211
204
|
],
|
|
212
205
|
}]
|
|
213
206
|
}], ctorParameters: function () { return [{ type: i8.NgControl, decorators: [{
|
|
@@ -220,15 +213,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
220
213
|
}] }, { type: i0.ChangeDetectorRef, decorators: [{
|
|
221
214
|
type: Inject,
|
|
222
215
|
args: [ChangeDetectorRef]
|
|
223
|
-
}] }, { type: i0.Injector, decorators: [{
|
|
224
|
-
type: Inject,
|
|
225
|
-
args: [Injector]
|
|
226
216
|
}] }, { type: undefined, decorators: [{
|
|
227
217
|
type: Inject,
|
|
228
218
|
args: [TUI_IS_MOBILE]
|
|
229
|
-
}] }, { type: i1.TuiDialogService, decorators: [{
|
|
230
|
-
type: Inject,
|
|
231
|
-
args: [TuiDialogService]
|
|
232
219
|
}] }, { type: i0.Type, decorators: [{
|
|
233
220
|
type: Optional
|
|
234
221
|
}, {
|
|
@@ -276,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
276
263
|
type: HostListener,
|
|
277
264
|
args: ['click']
|
|
278
265
|
}], computeMaskOptions: [] } });
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBRUosU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsdUJBQXVCLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN6RCxPQUFPLEVBQ0gsMEJBQTBCLEVBRTFCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUViLFlBQVksRUFDWiwwQkFBMEIsRUFHMUIsWUFBWSxFQUVaLE1BQU0sRUFFTixRQUFRLEVBQ1IsZUFBZSxFQUNmLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFFaEIsOEJBQThCLEdBS2pDLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUNILGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLG1C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TixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBeUNGLElBQUk7c0JBRFAsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBeUY3QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkE0RmIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01BU0tJVE9fREVGQVVMVF9PUFRJT05TLCBNYXNraXRvT3B0aW9uc30gZnJvbSAnQG1hc2tpdG8vY29yZSc7XG5pbXBvcnQge21hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcn0gZnJvbSAnQG1hc2tpdG8va2l0JztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQWJzdHJhY3RUdWlWYWx1ZVRyYW5zZm9ybWVyLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIGNoYW5nZURhdGVTZXBhcmF0b3IsXG4gICAgREFURV9GSUxMRVJfTEVOR1RILFxuICAgIFRVSV9EQVRFX0ZPUk1BVCxcbiAgICBUVUlfREFURV9TRVBBUkFUT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURhdGVDbGFtcCxcbiAgICBUdWlEYXRlTW9kZSxcbiAgICBUdWlEYXksXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1vbnRoLFxuICAgIHR1aU51bGxhYmxlU2FtZSxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVIsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgVHVpTWFya2VySGFuZGxlcixcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpTmFtZWREYXl9IGZyb20gJ0B0YWlnYS11aS9raXQvY2xhc3Nlcyc7XG5pbXBvcnQge1RVSV9EQVRFX01PREVfTUFTS0lUT19BREFQVEVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICAgIFRVSV9EQVRFX1RFWFRTLFxuICAgIFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSLFxuICAgIFRVSV9JTlBVVF9EQVRFX09QVElPTlMsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUixcbiAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyLFxuICAgIFR1aUlucHV0RGF0ZU9wdGlvbnMsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0RGF0ZUNvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyKFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFR1aURheT5cbiAgICBpbXBsZW1lbnRzIFR1aVdpdGhPcHRpb25hbE1pbk1heDxUdWlEYXk+LCBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgbW9udGg6IFR1aU1vbnRoIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbjogVHVpRGF5IHwgbnVsbCA9IHRoaXMub3B0aW9ucy5taW47XG5cbiAgICBASW5wdXQoKVxuICAgIG1heDogVHVpRGF5IHwgbnVsbCA9IHRoaXMub3B0aW9ucy5tYXg7XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgbWFya2VySGFuZGxlcjogVHVpTWFya2VySGFuZGxlciA9IFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBpdGVtczogcmVhZG9ubHkgVHVpTmFtZWREYXlbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBkZWZhdWx0QWN0aXZlWWVhck1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICByZWFkb25seSB0eXBlITogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPjtcblxuICAgIHJlYWRvbmx5IGZpbGxlciQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZGF0ZVRleHRzJC5waXBlKFxuICAgICAgICBtYXAoZGF0ZVRleHRzID0+XG4gICAgICAgICAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yKGRhdGVUZXh0c1t0aGlzLmRhdGVGb3JtYXRdLCB0aGlzLmRhdGVTZXBhcmF0b3IpLFxuICAgICAgICApLFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVHVpRGlhbG9nU2VydmljZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dzOiBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9NT0JJTEVfQ0FMRU5EQVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlQ2FsZW5kYXI6IFR5cGU8UmVjb3JkPHN0cmluZywgYW55Pj4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX0ZPUk1BVCkgcmVhZG9ubHkgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfU0VQQVJBVE9SKSByZWFkb25seSBkYXRlU2VwYXJhdG9yOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUilcbiAgICAgICAgb3ZlcnJpZGUgcmVhZG9ubHkgdmFsdWVUcmFuc2Zvcm1lcjogQWJzdHJhY3RUdWlWYWx1ZVRyYW5zZm9ybWVyPFR1aURheSB8IG51bGw+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfREFURV9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0RGF0ZU9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNkciwgdmFsdWVUcmFuc2Zvcm1lcik7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFNpemUuc2l6ZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNaW4oKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluID8/IHRoaXMub3B0aW9ucy5taW47XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWF4KCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heCA/PyB0aGlzLm9wdGlvbnMubWF4O1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkPy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8/IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkPy5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1vYmlsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgJiYgKCEhdGhpcy5tb2JpbGVDYWxlbmRhciB8fCB0aGlzLm5hdGl2ZVBpY2tlcik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZVBpY2tlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5uYXRpdmVQaWNrZXI7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFySWNvbigpOiBUdWlJbnB1dERhdGVPcHRpb25zWydpY29uJ10ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmljb247XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgYWN0aXZlSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChhY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKGFjdGl2ZUl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUudG9TdHJpbmcodGhpcy5kYXRlRm9ybWF0LCB0aGlzLmRhdGVTZXBhcmF0b3IpIDogbmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQWN0aXZlWWVhck1vbnRoKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNbMF0gJiYgdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmRheVNhbWUodGhpcy5pdGVtc1swXS5kYXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pdGVtc1swXS5kaXNwbGF5RGF5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMubW9udGggfHxcbiAgICAgICAgICAgIHRoaXMudmFsdWUgfHxcbiAgICAgICAgICAgIHR1aURhdGVDbGFtcCh0aGlzLmRlZmF1bHRBY3RpdmVZZWFyTW9udGgsIHRoaXMuY29tcHV0ZWRNaW4sIHRoaXMuY29tcHV0ZWRNYXgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LnZhbHVlIHx8ICcnO1xuICAgIH1cblxuICAgIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJhY3RpdmUgJiYgIXRoaXMuY29tcHV0ZWRNb2JpbGU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWFzaygpOiBNYXNraXRvT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW1cbiAgICAgICAgICAgID8gTUFTS0lUT19ERUZBVUxUX09QVElPTlNcbiAgICAgICAgICAgIDogdGhpcy5jb21wdXRlTWFza09wdGlvbnMoXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGVTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVkTWluLFxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlZE1heCxcbiAgICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlSXRlbSgpOiBUdWlOYW1lZERheSB8IG51bGwge1xuICAgICAgICBjb25zdCB7dmFsdWV9ID0gdGhpcztcblxuICAgICAgICByZXR1cm4gKHZhbHVlICYmIHRoaXMuaXRlbXMuZmluZChpdGVtID0+IGl0ZW0uZGF5LmRheVNhbWUodmFsdWUpKSkgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q29tcHV0ZWRGaWxsZXIoZmlsbGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtID8gJycgOiBmaWxsZXI7XG4gICAgfVxuXG4gICAgLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuICAgIC8qKlxuICAgICAqIFRPRE86IFJlbW92ZSBpbiA0LjBcbiAgICAgKiBAZGVwcmVjYXRlZDogdXNlIHtAbGluayBvbkljb25DbGlja30gaW5zdGVhZFxuICAgICAqL1xuICAgIG9uTW9iaWxlQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25JY29uQ2xpY2soKTtcbiAgICB9XG5cbiAgICBvbkljb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXB1dGVkTW9iaWxlIHx8ICF0aGlzLm1vYmlsZUNhbGVuZGFyIHx8IHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nc1xuICAgICAgICAgICAgLm9wZW48VHVpRGF5PihuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50KHRoaXMubW9iaWxlQ2FsZW5kYXIsIHRoaXMuaW5qZWN0b3IpLCB7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ2Z1bGxzY3JlZW4nLFxuICAgICAgICAgICAgICAgIGNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBzaW5nbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG1pbjogdGhpcy5taW4sXG4gICAgICAgICAgICAgICAgICAgIG1heDogdGhpcy5tYXgsXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IHRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID1cbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCAhPT0gREFURV9GSUxMRVJfTEVOR1RIXG4gICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgOiBUdWlEYXkubm9ybWFsaXplUGFyc2UodmFsdWUsIHRoaXMuZGF0ZUZvcm1hdCk7XG4gICAgfVxuXG4gICAgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpRGF5IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihcbiAgICAgICAgb2xkVmFsdWU6IFR1aURheSB8IG51bGwsXG4gICAgICAgIG5ld1ZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpTnVsbGFibGVTYW1lKG9sZFZhbHVlLCBuZXdWYWx1ZSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVNYXNrT3B0aW9ucyhcbiAgICAgICAgbW9kZTogVHVpRGF0ZU1vZGUsXG4gICAgICAgIHNlcGFyYXRvcjogc3RyaW5nLFxuICAgICAgICBtaW46IFR1aURheSxcbiAgICAgICAgbWF4OiBUdWlEYXksXG4gICAgKTogTWFza2l0b09wdGlvbnMge1xuICAgICAgICByZXR1cm4gbWFza2l0b0RhdGVPcHRpb25zR2VuZXJhdG9yKHtcbiAgICAgICAgICAgIHNlcGFyYXRvcixcbiAgICAgICAgICAgIG1vZGU6IFRVSV9EQVRFX01PREVfTUFTS0lUT19BREFQVEVSW21vZGVdLFxuICAgICAgICAgICAgbWluOiBtaW4udG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICAgICAgICAgIG1heDogbWF4LnRvTG9jYWxOYXRpdmVEYXRlKCksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgY2xhc3M9XCJ0LWhvc3RlZFwiXG4gICAgW2Nhbk9wZW5dPVwiY2FuT3BlblwiXG4gICAgW2NvbnRlbnRdPVwiZHJvcGRvd25cIlxuICAgIFtvcGVuXT1cIm9wZW4gJiYgY2FuT3BlblwiXG4gICAgKG9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKCRldmVudClcIlxuPlxuICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICAqdHVpTGV0PVwiZmlsbGVyJCB8IGFzeW5jIGFzIGZpbGxlclwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZGF0ZS1yYW5nZV9fdGV4dGZpZWxkXCJcbiAgICAgICAgdHVpVmFsdWVBY2Nlc3NvclxuICAgICAgICBjbGFzcz1cInQtdGV4dGZpZWxkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICBbZm9jdXNhYmxlXT1cImNvbXB1dGVkRm9jdXNhYmxlXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW21hc2tpdG9dPVwiY29tcHV0ZWRNYXNrXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEZpbGxlcl09XCJnZXRDb21wdXRlZEZpbGxlcihmaWxsZXIgfHwgJycpXCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiY2FsZW5kYXJJY29uICYmIGljb25Db250ZW50XCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkVmFsdWVcIlxuICAgICAgICAoZm9jdXNlZENoYW5nZSk9XCJvbkZvY3VzZWQoJGV2ZW50KVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJpbnB1dFwiXG4gICAgICAgICAgICBzZWxlY3Q9XCJpbnB1dFwiXG4gICAgICAgID48L25nLWNvbnRlbnQ+XG4gICAgPC90dWktcHJpbWl0aXZlLXRleHRmaWVsZD5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkNvbnRlbnQ+XG4gICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY2FsZW5kYXJJY29uIGFzIHNyYzsgY29udGV4dDogeyRpbXBsaWNpdDogc2l6ZX1cIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1kYXRlLXJhbmdlX19pY29uXCJcbiAgICAgICAgICAgIHR1aVdyYXBwZXJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25dPVwiIWNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgW3NyY109XCJzcmNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKClcIlxuICAgICAgICA+PC90dWktc3ZnPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICpuZ0lmPVwiaXNNb2JpbGUgJiYgbmF0aXZlUGlja2VyXCJcbiAgICAgICAgICAgIHR1aURhdGVcbiAgICAgICAgICAgIGNsYXNzPVwidC1uYXRpdmUtaW5wdXRcIlxuICAgICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgI2Ryb3Bkb3duPVwicG9seW1vcnBoZXVzXCJcbiAgICAgICAgW3BvbHltb3JwaGV1c109XCJ0eXBlXCJcbiAgICA+XG4gICAgICAgIDx0dWktY2FsZW5kYXJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZGF0ZV9fY2FsZW5kYXJcIlxuICAgICAgICAgICAgdHVpUHJldmVudERlZmF1bHQ9XCJtb3VzZWRvd25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkSXRlbUhhbmRsZXJdPVwiZGlzYWJsZWRJdGVtSGFuZGxlclwiXG4gICAgICAgICAgICBbbWFya2VySGFuZGxlcl09XCJtYXJrZXJIYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXhdPVwiY29tcHV0ZWRNYXhcIlxuICAgICAgICAgICAgW21pbl09XCJjb21wdXRlZE1pblwiXG4gICAgICAgICAgICBbbW9udGhdPVwiY29tcHV0ZWRBY3RpdmVZZWFyTW9udGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKG1vbnRoQ2hhbmdlKT1cIm9uTW9udGhDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L3R1aS1jYWxlbmRhcj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtcy5sZW5ndGggPT09IDFcIlxuICAgICAgICAgICAgdHVpUHJldmVudERlZmF1bHQ9XCJtb3VzZWRvd25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGF5Q2xpY2soaXRlbXNbMF0uZGF5KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXRlbXNbMF0gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC90dWktaG9zdGVkLWRyb3Bkb3duPlxuIl19
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sV0FBVyxFQUNYLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUVKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLHVCQUF1QixFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUNILDBCQUEwQixFQUUxQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFFYixZQUFZLEVBQ1osMEJBQTBCLEVBRzFCLFlBQVksRUFFWixNQUFNLEVBRU4sUUFBUSxFQUNSLGVBQWUsRUFDZixPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBRWxCLDhCQUE4QixHQUtqQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFDSCxjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLHNCQUFz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O3dCQUNuQyw0QkFBNEIsQ0FBQywwQkFBMEIsQ0FBQzt3QkFDeEQ7NEJBQ0ksT0FBTyxFQUFFLHNCQUFzQjs0QkFDL0IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUNiLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQ0FDbEIsTUFBTSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQ0FDdEQsTUFBTSxDQUFDLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUM7eUJBQzNEO3FCQUNKO2lCQUNKOzswQkF1Q1EsUUFBUTs7MEJBQ1IsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxTQUFTOzswQkFFaEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixRQUFROzswQkFDUixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBRTFCLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxjQUFjOzswQkFFckIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUVqQyxNQUFNOzJCQUFDLHNCQUFzQjs7MEJBQzdCLE1BQU07MkJBQUMsa0JBQWtCOzRDQWxEYixTQUFTO3NCQUR6QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFNekMsR0FBRztzQkFERixLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBc0NGLElBQUk7c0JBRFAsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBc0Y3QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkE0RWIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0RmxhZ3MsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNQVNLSVRPX0RFRkFVTFRfT1BUSU9OUywgTWFza2l0b09wdGlvbnN9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHttYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3J9IGZyb20gJ0BtYXNraXRvL2tpdCc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIEFic3RyYWN0VHVpVmFsdWVUcmFuc2Zvcm1lcixcbiAgICBBTFdBWVNfRkFMU0VfSEFORExFUixcbiAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBUVUlfREFURV9GT1JNQVQsXG4gICAgVFVJX0RBVEVfU0VQQVJBVE9SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICB0dWlBc0NvbnRyb2wsXG4gICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IsXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEYXRlQ2xhbXAsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlNb250aCxcbiAgICB0dWlOdWxsYWJsZVNhbWUsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSLFxuICAgIFRVSV9EUk9QRE9XTl9DT01QT05FTlQsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aU1hcmtlckhhbmRsZXIsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aU5hbWVkRGF5fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtUVUlfREFURV9NT0RFX01BU0tJVE9fQURBUFRFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICBUVUlfSU5QVVRfREFURV9PUFRJT05TLFxuICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVIsXG4gICAgdHVpRGF0ZVN0cmVhbVdpdGhUcmFuc2Zvcm1lcixcbiAgICBUdWlJbnB1dERhdGVPcHRpb25zLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0RGF0ZUNvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyKFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0RST1BET1dOX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+XG4gICAgICAgICAgICAgICAgKGluamVjdChUVUlfSVNfTU9CSUxFKSAmJlxuICAgICAgICAgICAgICAgICAgICBpbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUiwgSW5qZWN0RmxhZ3MuT3B0aW9uYWwpKSB8fFxuICAgICAgICAgICAgICAgIGluamVjdChUVUlfRFJPUERPV05fQ09NUE9ORU5ULCBJbmplY3RGbGFncy5Ta2lwU2VsZiksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxUdWlEYXk+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5PiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIG1vbnRoOiBUdWlNb250aCB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBtaW46IFR1aURheSB8IG51bGwgPSB0aGlzLm9wdGlvbnMubWluO1xuXG4gICAgQElucHV0KClcbiAgICBtYXg6IFR1aURheSB8IG51bGwgPSB0aGlzLm9wdGlvbnMubWF4O1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgPSBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgaXRlbXM6IHJlYWRvbmx5IFR1aU5hbWVkRGF5W10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVmYXVsdEFjdGl2ZVllYXJNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgdHlwZSE6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpQWN0aXZlWm9uZURpcmVjdGl2ZT47XG5cbiAgICByZWFkb25seSBmaWxsZXIkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmRhdGVUZXh0cyQucGlwZShcbiAgICAgICAgbWFwKGRhdGVUZXh0cyA9PlxuICAgICAgICAgICAgY2hhbmdlRGF0ZVNlcGFyYXRvcihkYXRlVGV4dHNbdGhpcy5kYXRlRm9ybWF0XSwgdGhpcy5kYXRlU2VwYXJhdG9yKSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhcjogVHlwZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9TRVBBUkFUT1IpIHJlYWRvbmx5IGRhdGVTZXBhcmF0b3I6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgZGF0ZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpRGF0ZU1vZGUsIHN0cmluZz4+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSKVxuICAgICAgICBvdmVycmlkZSByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyOiBBYnN0cmFjdFR1aVZhbHVlVHJhbnNmb3JtZXI8VHVpRGF5IHwgbnVsbD4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9EQVRFX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHVpSW5wdXREYXRlT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2RyLCB2YWx1ZVRyYW5zZm9ybWVyKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcbiAgICBnZXQgc2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1pbigpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5taW4gPz8gdGhpcy5vcHRpb25zLm1pbjtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNYXgoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4ID8/IHRoaXMub3B0aW9ucy5tYXg7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQ/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQ/LmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICghIXRoaXMubW9iaWxlQ2FsZW5kYXIgfHwgdGhpcy5uYXRpdmVQaWNrZXIpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVQaWNrZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMubmF0aXZlUGlja2VyO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhckljb24oKTogVHVpSW5wdXREYXRlT3B0aW9uc1snaWNvbiddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29uO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIGFjdGl2ZUl0ZW19ID0gdGhpcztcblxuICAgICAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhhY3RpdmVJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKHRoaXMuZGF0ZUZvcm1hdCwgdGhpcy5kYXRlU2VwYXJhdG9yKSA6IG5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zWzBdICYmIHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5kYXlTYW1lKHRoaXMuaXRlbXNbMF0uZGF5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbMF0uZGlzcGxheURheTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLm1vbnRoIHx8XG4gICAgICAgICAgICB0aGlzLnZhbHVlIHx8XG4gICAgICAgICAgICB0dWlEYXRlQ2xhbXAodGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoLCB0aGlzLmNvbXB1dGVkTWluLCB0aGlzLmNvbXB1dGVkTWF4KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py52YWx1ZSB8fCAnJztcbiAgICB9XG5cbiAgICBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1hc2soKTogTWFza2l0b09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtXG4gICAgICAgICAgICA/IE1BU0tJVE9fREVGQVVMVF9PUFRJT05TXG4gICAgICAgICAgICA6IHRoaXMuY29tcHV0ZU1hc2tPcHRpb25zKFxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlZE1pbixcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRNYXgsXG4gICAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZUl0ZW0oKTogVHVpTmFtZWREYXkgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuICh2YWx1ZSAmJiB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmRheS5kYXlTYW1lKHZhbHVlKSkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSAmJiB0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q29tcHV0ZWRGaWxsZXIoZmlsbGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtID8gJycgOiBmaWxsZXI7XG4gICAgfVxuXG4gICAgLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuICAgIC8qKlxuICAgICAqIFRPRE86IFJlbW92ZSBpbiA0LjBcbiAgICAgKiBAZGVwcmVjYXRlZDogdXNlIHtAbGluayBvbkljb25DbGlja30gaW5zdGVhZFxuICAgICAqL1xuICAgIG9uTW9iaWxlQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25JY29uQ2xpY2soKTtcbiAgICB9XG5cbiAgICBvbkljb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGUgJiYgdGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSAmJiAhdGhpcy5tb2JpbGVDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID1cbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCAhPT0gREFURV9GSUxMRVJfTEVOR1RIXG4gICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgOiBUdWlEYXkubm9ybWFsaXplUGFyc2UodmFsdWUsIHRoaXMuZGF0ZUZvcm1hdCk7XG4gICAgfVxuXG4gICAgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpRGF5IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihcbiAgICAgICAgb2xkVmFsdWU6IFR1aURheSB8IG51bGwsXG4gICAgICAgIG5ld1ZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpTnVsbGFibGVTYW1lKG9sZFZhbHVlLCBuZXdWYWx1ZSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVNYXNrT3B0aW9ucyhcbiAgICAgICAgbW9kZTogVHVpRGF0ZU1vZGUsXG4gICAgICAgIHNlcGFyYXRvcjogc3RyaW5nLFxuICAgICAgICBtaW46IFR1aURheSxcbiAgICAgICAgbWF4OiBUdWlEYXksXG4gICAgKTogTWFza2l0b09wdGlvbnMge1xuICAgICAgICByZXR1cm4gbWFza2l0b0RhdGVPcHRpb25zR2VuZXJhdG9yKHtcbiAgICAgICAgICAgIHNlcGFyYXRvcixcbiAgICAgICAgICAgIG1vZGU6IFRVSV9EQVRFX01PREVfTUFTS0lUT19BREFQVEVSW21vZGVdLFxuICAgICAgICAgICAgbWluOiBtaW4udG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICAgICAgICAgIG1heDogbWF4LnRvTG9jYWxOYXRpdmVEYXRlKCksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgY2xhc3M9XCJ0LWhvc3RlZFwiXG4gICAgW2Nhbk9wZW5dPVwiaW50ZXJhY3RpdmUgJiYgIW5hdGl2ZVBpY2tlclwiXG4gICAgW2NvbnRlbnRdPVwiZHJvcGRvd25cIlxuICAgIFtvcGVuXT1cIm9wZW4gJiYgaW50ZXJhY3RpdmUgJiYgIW5hdGl2ZVBpY2tlclwiXG4gICAgKG9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKCRldmVudClcIlxuPlxuICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICAqdHVpTGV0PVwiZmlsbGVyJCB8IGFzeW5jIGFzIGZpbGxlclwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZGF0ZS1yYW5nZV9fdGV4dGZpZWxkXCJcbiAgICAgICAgdHVpVmFsdWVBY2Nlc3NvclxuICAgICAgICBjbGFzcz1cInQtdGV4dGZpZWxkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICBbZm9jdXNhYmxlXT1cImNvbXB1dGVkRm9jdXNhYmxlXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW21hc2tpdG9dPVwiY29tcHV0ZWRNYXNrXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEZpbGxlcl09XCJnZXRDb21wdXRlZEZpbGxlcihmaWxsZXIgfHwgJycpXCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiY2FsZW5kYXJJY29uICYmIGljb25Db250ZW50XCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkVmFsdWVcIlxuICAgICAgICAoZm9jdXNlZENoYW5nZSk9XCJvbkZvY3VzZWQoJGV2ZW50KVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJpbnB1dFwiXG4gICAgICAgICAgICBzZWxlY3Q9XCJpbnB1dFwiXG4gICAgICAgID48L25nLWNvbnRlbnQ+XG4gICAgPC90dWktcHJpbWl0aXZlLXRleHRmaWVsZD5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkNvbnRlbnQ+XG4gICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY2FsZW5kYXJJY29uIGFzIHNyYzsgY29udGV4dDogeyRpbXBsaWNpdDogc2l6ZX1cIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1kYXRlLXJhbmdlX19pY29uXCJcbiAgICAgICAgICAgIHR1aVdyYXBwZXJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25dPVwiIWNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgW3NyY109XCJzcmNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKClcIlxuICAgICAgICA+PC90dWktc3ZnPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICpuZ0lmPVwiaXNNb2JpbGUgJiYgbmF0aXZlUGlja2VyXCJcbiAgICAgICAgICAgIHR1aURhdGVcbiAgICAgICAgICAgIGNsYXNzPVwidC1uYXRpdmUtaW5wdXRcIlxuICAgICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgI2Ryb3Bkb3duPVwicG9seW1vcnBoZXVzXCJcbiAgICAgICAgW3BvbHltb3JwaGV1c109XCJ0eXBlXCJcbiAgICA+XG4gICAgICAgIDx0dWktY2FsZW5kYXJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZGF0ZV9fY2FsZW5kYXJcIlxuICAgICAgICAgICAgdHVpUHJldmVudERlZmF1bHQ9XCJtb3VzZWRvd25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkSXRlbUhhbmRsZXJdPVwiZGlzYWJsZWRJdGVtSGFuZGxlclwiXG4gICAgICAgICAgICBbbWFya2VySGFuZGxlcl09XCJtYXJrZXJIYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXhdPVwiY29tcHV0ZWRNYXhcIlxuICAgICAgICAgICAgW21pbl09XCJjb21wdXRlZE1pblwiXG4gICAgICAgICAgICBbbW9udGhdPVwiY29tcHV0ZWRBY3RpdmVZZWFyTW9udGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKG1vbnRoQ2hhbmdlKT1cIm9uTW9udGhDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L3R1aS1jYWxlbmRhcj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtcy5sZW5ndGggPT09IDFcIlxuICAgICAgICAgICAgdHVpUHJldmVudERlZmF1bHQ9XCJtb3VzZWRvd25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGF5Q2xpY2soaXRlbXNbMF0uZGF5KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXRlbXNbMF0gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC90dWktaG9zdGVkLWRyb3Bkb3duPlxuIl19
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, Inject,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, Inject, inject, InjectFlags, Input, Optional, Self, ViewChild, } from '@angular/core';
|
|
2
2
|
import { NgControl } from '@angular/forms';
|
|
3
3
|
import { maskitoDateOptionsGenerator } from '@maskito/kit';
|
|
4
4
|
import { AbstractTuiMultipleControl, ALWAYS_FALSE_HANDLER, changeDateSeparator, TUI_DATE_FORMAT, TUI_DATE_SEPARATOR, TUI_IS_MOBILE, tuiAsControl, tuiAsFocusableItemAccessor, tuiDateClamp, TuiDay, tuiIsString, TuiMonth, } from '@taiga-ui/cdk';
|
|
5
|
-
import { TUI_DEFAULT_MARKER_HANDLER,
|
|
5
|
+
import { TUI_DEFAULT_MARKER_HANDLER, TUI_DROPDOWN_COMPONENT, TUI_TEXTFIELD_SIZE, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
|
|
6
6
|
import { TuiStringifiableItem } from '@taiga-ui/kit/classes';
|
|
7
7
|
import { TuiInputTagComponent } from '@taiga-ui/kit/components/input-tag';
|
|
8
8
|
import { TUI_DATE_TEXTS, TUI_DATE_VALUE_TRANSFORMER, TUI_DONE_WORD, TUI_INPUT_DATE_OPTIONS, TUI_MOBILE_CALENDAR, tuiDateStreamWithTransformer, } from '@taiga-ui/kit/tokens';
|
|
9
9
|
import { tuiImmutableUpdateInputDateMulti } from '@taiga-ui/kit/utils';
|
|
10
|
-
import {
|
|
11
|
-
import { map, takeUntil } from 'rxjs/operators';
|
|
10
|
+
import { map } from 'rxjs/operators';
|
|
12
11
|
import * as i0 from "@angular/core";
|
|
13
12
|
import * as i1 from "@taiga-ui/core";
|
|
14
13
|
import * as i2 from "@taiga-ui/kit/components/input-tag";
|
|
@@ -19,12 +18,10 @@ import * as i6 from "@taiga-ui/cdk";
|
|
|
19
18
|
import * as i7 from "@angular/common";
|
|
20
19
|
import * as i8 from "rxjs";
|
|
21
20
|
export class TuiInputDateMultiComponent extends AbstractTuiMultipleControl {
|
|
22
|
-
constructor(control, cdr,
|
|
21
|
+
constructor(control, cdr, isMobile, mobileCalendar, dateFormat, dateSeparator, dateTexts$, valueTransformer, options, textfieldSize, doneWord$) {
|
|
23
22
|
var _a, _b;
|
|
24
23
|
super(control, cdr, valueTransformer);
|
|
25
|
-
this.injector = injector;
|
|
26
24
|
this.isMobile = isMobile;
|
|
27
|
-
this.dialogs = dialogs;
|
|
28
25
|
this.mobileCalendar = mobileCalendar;
|
|
29
26
|
this.dateFormat = dateFormat;
|
|
30
27
|
this.dateSeparator = dateSeparator;
|
|
@@ -66,7 +63,7 @@ export class TuiInputDateMultiComponent extends AbstractTuiMultipleControl {
|
|
|
66
63
|
this.valueMapper = value => value.map(item => new TuiStringifiableItem(item, item => String(item)));
|
|
67
64
|
}
|
|
68
65
|
onClick() {
|
|
69
|
-
if (!this.isMobile) {
|
|
66
|
+
if (!this.isMobile && this.interactive) {
|
|
70
67
|
this.open = !this.open;
|
|
71
68
|
}
|
|
72
69
|
}
|
|
@@ -103,28 +100,10 @@ export class TuiInputDateMultiComponent extends AbstractTuiMultipleControl {
|
|
|
103
100
|
this.value[this.value.length - 1] ||
|
|
104
101
|
tuiDateClamp(this.defaultActiveYearMonth, this.computedMin, this.computedMax));
|
|
105
102
|
}
|
|
106
|
-
get canOpen() {
|
|
107
|
-
return this.interactive && !this.computedMobile;
|
|
108
|
-
}
|
|
109
103
|
onIconClick() {
|
|
110
|
-
if (
|
|
111
|
-
|
|
104
|
+
if (this.isMobile && this.interactive) {
|
|
105
|
+
this.open = true;
|
|
112
106
|
}
|
|
113
|
-
this.dialogs
|
|
114
|
-
.open(new PolymorpheusComponent(this.mobileCalendar, this.injector), {
|
|
115
|
-
size: 'fullscreen',
|
|
116
|
-
closeable: false,
|
|
117
|
-
data: {
|
|
118
|
-
multi: true,
|
|
119
|
-
min: this.min,
|
|
120
|
-
max: this.max,
|
|
121
|
-
disabledItemHandler: this.disabledItemHandler,
|
|
122
|
-
},
|
|
123
|
-
})
|
|
124
|
-
.pipe(takeUntil(this.destroy$))
|
|
125
|
-
.subscribe(value => {
|
|
126
|
-
this.value = value;
|
|
127
|
-
});
|
|
128
107
|
}
|
|
129
108
|
onEnter(search) {
|
|
130
109
|
if (!this.tagValidator(search)) {
|
|
@@ -139,7 +118,7 @@ export class TuiInputDateMultiComponent extends AbstractTuiMultipleControl {
|
|
|
139
118
|
onValueChange(value) {
|
|
140
119
|
var _a;
|
|
141
120
|
(_a = this.control) === null || _a === void 0 ? void 0 : _a.updateValueAndValidity({ emitEvent: false });
|
|
142
|
-
if (!value.length) {
|
|
121
|
+
if (!value.length && !this.mobileCalendar) {
|
|
143
122
|
this.onOpenChange(true);
|
|
144
123
|
}
|
|
145
124
|
this.value = value.map(({ item }) => item);
|
|
@@ -164,12 +143,18 @@ export class TuiInputDateMultiComponent extends AbstractTuiMultipleControl {
|
|
|
164
143
|
this.open = false;
|
|
165
144
|
}
|
|
166
145
|
}
|
|
167
|
-
TuiInputDateMultiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateMultiComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token:
|
|
146
|
+
TuiInputDateMultiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateMultiComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_IS_MOBILE }, { token: TUI_MOBILE_CALENDAR, optional: true }, { token: TUI_DATE_FORMAT }, { token: TUI_DATE_SEPARATOR }, { token: TUI_DATE_TEXTS }, { token: TUI_DATE_VALUE_TRANSFORMER, optional: true }, { token: TUI_INPUT_DATE_OPTIONS }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_DONE_WORD }], target: i0.ɵɵFactoryTarget.Component });
|
|
168
147
|
TuiInputDateMultiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputDateMultiComponent, selector: "tui-input-date[multiple]", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", defaultActiveYearMonth: "defaultActiveYearMonth", expandable: "expandable", inputHidden: "inputHidden", search: "search", placeholder: "placeholder", rows: "rows", tagValidator: "tagValidator" }, host: { listeners: { "click": "onClick()" }, properties: { "attr.data-size": "this.size" } }, providers: [
|
|
169
148
|
tuiAsFocusableItemAccessor(TuiInputDateMultiComponent),
|
|
170
149
|
tuiAsControl(TuiInputDateMultiComponent),
|
|
171
150
|
tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
|
|
172
|
-
|
|
151
|
+
{
|
|
152
|
+
provide: TUI_DROPDOWN_COMPONENT,
|
|
153
|
+
useFactory: () => (inject(TUI_IS_MOBILE) &&
|
|
154
|
+
inject(TUI_MOBILE_CALENDAR, InjectFlags.Optional)) ||
|
|
155
|
+
inject(TUI_DROPDOWN_COMPONENT, InjectFlags.SkipSelf),
|
|
156
|
+
},
|
|
157
|
+
], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "inputTag", first: true, predicate: TuiInputTagComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive\"\n [content]=\"dropdown\"\n [open]=\"open && interactive\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-input-tag\n #inputTag\n class=\"t-input\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"false\"\n [expandable]=\"expandable\"\n [inputHidden]=\"inputHidden\"\n [maskito]=\"maskitoOptions\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"value | tuiMapper: valueMapper\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n (keydown.enter)=\"onEnter(inputTag.search || '')\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n <ng-content></ng-content>\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n ></ng-content>\n </tui-input-tag>\n\n <ng-template #iconContent>\n <tui-svg\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n appearance=\"icon\"\n tuiWrapper\n [class.t-icon]=\"!computedDisabled\"\n [src]=\"src\"\n (click)=\"onIconClick()\"\n ></tui-svg>\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.silent.prevent)=\"(0)\"\n ></tui-calendar>\n <div\n class=\"t-button\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"done()\"\n >\n {{ doneWord$ | async }}\n </button>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-button{display:flex;height:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-base-03)}.t-button button{flex:1;text-align:center}.t-native-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i2.TuiInputTagComponent, selector: "tui-input-tag", inputs: ["separator", "search", "editable", "tagValidator", "expandable", "rows", "inputHidden", "uniqueTags", "autoColor", "maxLength", "placeholder", "removable", "disabledItemHandler", "pseudoFocused"], outputs: ["searchChange"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiCalendarComponent, selector: "tui-calendar", inputs: ["initialView", "month", "disabledItemHandler", "min", "max", "minViewedMonth", "maxViewedMonth", "hoveredItem", "showAdjacent", "markerHandler", "value"], outputs: ["dayClick", "monthChange", "hoveredItemChange"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i3.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }], pipes: { "tuiMapper": i6.TuiMapperPipe, "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
173
158
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateMultiComponent, decorators: [{
|
|
174
159
|
type: Component,
|
|
175
160
|
args: [{
|
|
@@ -181,6 +166,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
181
166
|
tuiAsFocusableItemAccessor(TuiInputDateMultiComponent),
|
|
182
167
|
tuiAsControl(TuiInputDateMultiComponent),
|
|
183
168
|
tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
|
|
169
|
+
{
|
|
170
|
+
provide: TUI_DROPDOWN_COMPONENT,
|
|
171
|
+
useFactory: () => (inject(TUI_IS_MOBILE) &&
|
|
172
|
+
inject(TUI_MOBILE_CALENDAR, InjectFlags.Optional)) ||
|
|
173
|
+
inject(TUI_DROPDOWN_COMPONENT, InjectFlags.SkipSelf),
|
|
174
|
+
},
|
|
184
175
|
],
|
|
185
176
|
}]
|
|
186
177
|
}], ctorParameters: function () { return [{ type: i4.NgControl, decorators: [{
|
|
@@ -193,15 +184,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
193
184
|
}] }, { type: i0.ChangeDetectorRef, decorators: [{
|
|
194
185
|
type: Inject,
|
|
195
186
|
args: [ChangeDetectorRef]
|
|
196
|
-
}] }, { type: i0.Injector, decorators: [{
|
|
197
|
-
type: Inject,
|
|
198
|
-
args: [Injector]
|
|
199
187
|
}] }, { type: undefined, decorators: [{
|
|
200
188
|
type: Inject,
|
|
201
189
|
args: [TUI_IS_MOBILE]
|
|
202
|
-
}] }, { type: i1.TuiDialogService, decorators: [{
|
|
203
|
-
type: Inject,
|
|
204
|
-
args: [TuiDialogService]
|
|
205
190
|
}] }, { type: i0.Type, decorators: [{
|
|
206
191
|
type: Optional
|
|
207
192
|
}, {
|
|
@@ -265,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
265
250
|
type: HostBinding,
|
|
266
251
|
args: ['attr.data-size']
|
|
267
252
|
}] } });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1tdWx0aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLW11bHRpL2lucHV0LWRhdGUtbXVsdGkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1tdWx0aS9pbnB1dC1kYXRlLW11bHRpLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFFSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN6RCxPQUFPLEVBQ0gsMEJBQTBCLEVBRTFCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsWUFBWSxFQUNaLDBCQUEwQixFQUUxQixZQUFZLEVBRVosTUFBTSxFQUVOLFdBQVcsRUFFWCxRQUFRLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBRWhCLDhCQUE4QixHQUtqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFDSCxjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLGFBQWEsRUFD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ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXNraXRvT3B0aW9uc30gZnJvbSAnQG1hc2tpdG8vY29yZSc7XG5pbXBvcnQge21hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcn0gZnJvbSAnQG1hc2tpdG8va2l0JztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlNdWx0aXBsZUNvbnRyb2wsXG4gICAgQWJzdHJhY3RUdWlWYWx1ZVRyYW5zZm9ybWVyLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIGNoYW5nZURhdGVTZXBhcmF0b3IsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9EQVRFX1NFUEFSQVRPUixcbiAgICBUVUlfSVNfTU9CSUxFLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICB0dWlEYXRlQ2xhbXAsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc1N0cmluZyxcbiAgICBUdWlNYXBwZXIsXG4gICAgVHVpTW9udGgsXG4gICAgVHVpVHlwZWRNYXBwZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUixcbiAgICBUVUlfVEVYVEZJRUxEX1NJWkUsXG4gICAgVHVpRGlhbG9nU2VydmljZSxcbiAgICBUdWlNYXJrZXJIYW5kbGVyLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlTdHJpbmdpZmlhYmxlSXRlbX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jbGFzc2VzJztcbmltcG9ydCB7VHVpSW5wdXRUYWdDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC10YWcnO1xuaW1wb3J0IHtcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICBUVUlfRE9ORV9XT1JELFxuICAgIFRVSV9JTlBVVF9EQVRFX09QVElPTlMsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUixcbiAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyLFxuICAgIFR1aUlucHV0RGF0ZU9wdGlvbnMsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7dHVpSW1tdXRhYmxlVXBkYXRlSW5wdXREYXRlTXVsdGl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb21wb25lbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlW211bHRpcGxlXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUtbXVsdGkudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4uL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0RGF0ZU11bHRpQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0RGF0ZU11bHRpQ29tcG9uZW50KSxcbiAgICAgICAgdHVpRGF0ZVN0cmVhbVdpdGhUcmFuc2Zvcm1lcihUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUiksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlTXVsdGlDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTXVsdGlwbGVDb250cm9sPFR1aURheT5cbiAgICBpbXBsZW1lbnRzIFR1aVdpdGhPcHRpb25hbE1pbk1heDxUdWlEYXk+LCBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpSW5wdXRUYWdDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFRhZz86IFR1aUlucHV0VGFnQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSBtb250aDogVHVpTW9udGggfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgbWluOiBUdWlEYXkgfCBudWxsID0gdGhpcy5vcHRpb25zLm1pbjtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4OiBUdWlEYXkgfCBudWxsID0gdGhpcy5vcHRpb25zLm1heDtcblxuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyID0gVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIGRlZmF1bHRBY3RpdmVZZWFyTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgZXhwYW5kYWJsZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBpbnB1dEhpZGRlbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBzZWFyY2g6IHN0cmluZyB8IG51bGwgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXIgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgcm93cyA9IEluZmluaXR5O1xuXG4gICAgbWFza2l0b09wdGlvbnM6IE1hc2tpdG9PcHRpb25zID0gbWFza2l0b0RhdGVPcHRpb25zR2VuZXJhdG9yKHtcbiAgICAgICAgbW9kZTogJ2RkL21tL3l5eXknLFxuICAgICAgICBzZXBhcmF0b3I6ICcuJyxcbiAgICAgICAgbWluOiB0aGlzLm1pbj8udG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICAgICAgbWF4OiB0aGlzLm1heD8udG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICB9KTtcblxuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IGZpbGxlciQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZGF0ZVRleHRzJC5waXBlKFxuICAgICAgICBtYXAoZGF0ZVRleHRzID0+XG4gICAgICAgICAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yKGRhdGVUZXh0c1t0aGlzLmRhdGVGb3JtYXRdLCB0aGlzLmRhdGVTZXBhcmF0b3IpLFxuICAgICAgICApLFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVHVpRGlhbG9nU2VydmljZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dzOiBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9NT0JJTEVfQ0FMRU5EQVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlQ2FsZW5kYXI6IFR5cGU8UmVjb3JkPHN0cmluZywgYW55Pj4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX0ZPUk1BVCkgcmVhZG9ubHkgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfU0VQQVJBVE9SKSByZWFkb25seSBkYXRlU2VwYXJhdG9yOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUilcbiAgICAgICAgb3ZlcnJpZGUgcmVhZG9ubHkgdmFsdWVUcmFuc2Zvcm1lcjogQWJzdHJhY3RUdWlWYWx1ZVRyYW5zZm9ybWVyPFxuICAgICAgICAgICAgcmVhZG9ubHkgVHVpRGF5W11cbiAgICAgICAgPiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX0RBVEVfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlJbnB1dERhdGVPcHRpb25zLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfU0laRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9ET05FX1dPUkQpIHJlYWRvbmx5IGRvbmVXb3JkJDogT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjZHIsIHZhbHVlVHJhbnNmb3JtZXIpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgdGFnVmFsaWRhdG9yOiBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+ID0gKHRhZzogVHVpRGF5IHwgc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHt5ZWFyLCBtb250aCwgZGF5fSA9IHR1aUlzU3RyaW5nKHRhZylcbiAgICAgICAgICAgID8gVHVpRGF5LnBhcnNlUmF3RGF0ZVN0cmluZyh0YWcpXG4gICAgICAgICAgICA6IHRhZztcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBUdWlEYXkoeWVhciwgbW9udGgsIGRheSk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChUdWlEYXkuaXNWYWxpZERheSh5ZWFyLCBtb250aCwgZGF5KSAmJlxuICAgICAgICAgICAgICAgIHRoaXMubWluPy5kYXlCZWZvcmUoZGF0ZSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLm1heD8uZGF5QWZ0ZXIoZGF0ZSkpID8/XG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgZGlzYWJsZWRJdGVtSGFuZGxlcldyYXBwZXI6IFR1aU1hcHBlcjxcbiAgICAgICAgVHVpQm9vbGVhbkhhbmRsZXI8c3RyaW5nPiB8IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4sXG4gICAgICAgIFR1aUJvb2xlYW5IYW5kbGVyPFR1aVN0cmluZ2lmaWFibGVJdGVtPGFueT4gfCBzdHJpbmc+XG4gICAgPiA9IGhhbmRsZXIgPT4gc3RyaW5naWZpYWJsZSA9PlxuICAgICAgICB0dWlJc1N0cmluZyhzdHJpbmdpZmlhYmxlKSB8fCBoYW5kbGVyKHN0cmluZ2lmaWFibGUuaXRlbSk7XG5cbiAgICByZWFkb25seSB2YWx1ZU1hcHBlcjogVHVpVHlwZWRNYXBwZXI8XG4gICAgICAgIFtyZWFkb25seSBUdWlEYXlbXV0sXG4gICAgICAgIFJlYWRvbmx5QXJyYXk8VHVpU3RyaW5naWZpYWJsZUl0ZW08VHVpRGF5Pj5cbiAgICA+ID0gdmFsdWUgPT4gdmFsdWUubWFwKGl0ZW0gPT4gbmV3IFR1aVN0cmluZ2lmaWFibGVJdGVtKGl0ZW0sIGl0ZW0gPT4gU3RyaW5nKGl0ZW0pKSk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcbiAgICBnZXQgc2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVEcm9wZG93bk1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1pbigpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5taW4gPz8gdGhpcy5vcHRpb25zLm1pbjtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNYXgoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4ID8/IHRoaXMub3B0aW9ucy5tYXg7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQ/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQ/LmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSAmJiAhIXRoaXMubW9iaWxlQ2FsZW5kYXI7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFySWNvbigpOiBUdWlJbnB1dERhdGVPcHRpb25zWydpY29uJ10ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmljb247XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQWN0aXZlWWVhck1vbnRoKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMubW9udGggfHxcbiAgICAgICAgICAgIHRoaXMudmFsdWVbdGhpcy52YWx1ZS5sZW5ndGggLSAxXSB8fFxuICAgICAgICAgICAgdHVpRGF0ZUNsYW1wKHRoaXMuZGVmYXVsdEFjdGl2ZVllYXJNb250aCwgdGhpcy5jb21wdXRlZE1pbiwgdGhpcy5jb21wdXRlZE1heClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJhY3RpdmUgJiYgIXRoaXMuY29tcHV0ZWRNb2JpbGU7XG4gICAgfVxuXG4gICAgb25JY29uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb21wdXRlZE1vYmlsZSB8fCAhdGhpcy5tb2JpbGVDYWxlbmRhcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaWFsb2dzXG4gICAgICAgICAgICAub3BlbjxyZWFkb25seSBUdWlEYXlbXT4oXG4gICAgICAgICAgICAgICAgbmV3IFBvbHltb3JwaGV1c0NvbXBvbmVudCh0aGlzLm1vYmlsZUNhbGVuZGFyLCB0aGlzLmluamVjdG9yKSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHNpemU6ICdmdWxsc2NyZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW46IHRoaXMubWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4OiB0aGlzLm1heCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IHRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25FbnRlcihzZWFyY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGFnVmFsaWRhdG9yKHNlYXJjaCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB0dWlJbW11dGFibGVVcGRhdGVJbnB1dERhdGVNdWx0aShcbiAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICBUdWlEYXkubm9ybWFsaXplUGFyc2Uoc2VhcmNoKSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5pbnB1dFRhZykge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFRhZy5zZWFyY2ggPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZG9uZSgpO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IFJlYWRvbmx5QXJyYXk8VHVpU3RyaW5naWZpYWJsZUl0ZW08VHVpRGF5Pj4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlLm1hcCgoe2l0ZW19KSA9PiBpdGVtKTtcbiAgICB9XG5cbiAgICBvbkRheUNsaWNrKHZhbHVlOiBUdWlEYXkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHR1aUltbXV0YWJsZVVwZGF0ZUlucHV0RGF0ZU11bHRpKHRoaXMudmFsdWUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBkb25lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbk1vbnRoQ2hhbmdlKG1vbnRoOiBUdWlNb250aCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vbnRoID0gbW9udGg7XG4gICAgfVxuXG4gICAgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgc2V0RGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG59XG4iLCI8dHVpLWhvc3RlZC1kcm9wZG93blxuICAgIGNsYXNzPVwidC1ob3N0ZWRcIlxuICAgIFtjYW5PcGVuXT1cImNhbk9wZW5cIlxuICAgIFtjb250ZW50XT1cImRyb3Bkb3duXCJcbiAgICBbb3Blbl09XCJvcGVuICYmIGNhbk9wZW5cIlxuICAgIChvcGVuQ2hhbmdlKT1cIm9uT3BlbkNoYW5nZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLWlucHV0LXRhZ1xuICAgICAgICAjaW5wdXRUYWdcbiAgICAgICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2Rpc2FibGVkSXRlbUhhbmRsZXJdPVwiZGlzYWJsZWRJdGVtSGFuZGxlciB8IHR1aU1hcHBlcjogZGlzYWJsZWRJdGVtSGFuZGxlcldyYXBwZXJcIlxuICAgICAgICBbZWRpdGFibGVdPVwiZmFsc2VcIlxuICAgICAgICBbZXhwYW5kYWJsZV09XCJleHBhbmRhYmxlXCJcbiAgICAgICAgW2lucHV0SGlkZGVuXT1cImlucHV0SGlkZGVuXCJcbiAgICAgICAgW21hc2tpdG9dPVwibWFza2l0b09wdGlvbnNcIlxuICAgICAgICBbbmF0aXZlSWRdPVwibmF0aXZlSWRcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZSB8IHR1aU1hcHBlcjogdmFsdWVNYXBwZXJcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbcHNldWRvRm9jdXNdPVwicHNldWRvRm9jdXNcIlxuICAgICAgICBbcHNldWRvSG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgICAgICBbcHNldWRvSW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICBbcmVtb3ZhYmxlXT1cIiFuYXRpdmVEcm9wZG93bk1vZGVcIlxuICAgICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgICAgW3RhZ1ZhbGlkYXRvcl09XCJ0YWdWYWxpZGF0b3IgfCB0dWlNYXBwZXI6IGRpc2FibGVkSXRlbUhhbmRsZXJXcmFwcGVyXCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEZpbGxlcl09XCIoZmlsbGVyJCB8IGFzeW5jKSB8fCAnJ1wiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRJY29uXT1cImNhbGVuZGFySWNvbiAmJiBpY29uQ29udGVudFwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXIoaW5wdXRUYWcuc2VhcmNoIHx8ICcnKVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cImlucHV0XCJcbiAgICAgICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgPjwvbmctY29udGVudD5cbiAgICA8L3R1aS1pbnB1dC10YWc+XG5cbiAgICA8bmctdGVtcGxhdGUgI2ljb25Db250ZW50PlxuICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImNhbGVuZGFySWNvbiBhcyBzcmM7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHNpemV9XCJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgIHR1aVdyYXBwZXJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25dPVwiIWNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgW3NyY109XCJzcmNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKClcIlxuICAgICAgICA+PC90dWktc3ZnPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICAgICAgICA8dHVpLWNhbGVuZGFyXG4gICAgICAgICAgICBbZGlzYWJsZWRJdGVtSGFuZGxlcl09XCJkaXNhYmxlZEl0ZW1IYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXJrZXJIYW5kbGVyXT1cIm1hcmtlckhhbmRsZXJcIlxuICAgICAgICAgICAgW21heF09XCJjb21wdXRlZE1heFwiXG4gICAgICAgICAgICBbbWluXT1cImNvbXB1dGVkTWluXCJcbiAgICAgICAgICAgIFttb250aF09XCJjb21wdXRlZEFjdGl2ZVllYXJNb250aFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgKGRheUNsaWNrKT1cIm9uRGF5Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAobW9udGhDaGFuZ2UpPVwib25Nb250aENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZWRvd24uc2lsZW50LnByZXZlbnQpPVwiKDApXCJcbiAgICAgICAgPjwvdHVpLWNhbGVuZGFyPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgICAgIChtb3VzZWRvd24uc2lsZW50LnByZXZlbnQpPVwiKDApXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9uZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBkb25lV29yZCQgfCBhc3luYyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3R1aS1ob3N0ZWQtZHJvcGRvd24+XG4iXX0=
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1tdWx0aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLW11bHRpL2lucHV0LWRhdGUtbXVsdGkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1tdWx0aS9pbnB1dC1kYXRlLW11bHRpLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixXQUFXLEVBQ1gsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBRUosU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUNILDBCQUEwQixFQUUxQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLFlBQVksRUFDWiwwQkFBMEIsRUFFMUIsWUFBWSxFQUVaLE1BQU0sRUFFTixXQUFXLEVBRVgsUUFBUSxHQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUVsQiw4QkFBOEIsR0FLakMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQ0gsY0FBYyxFQUNkLDBCQUEwQixFQUMx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OzswQkFDUixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBRTFCLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxjQUFjOzswQkFFckIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUlqQyxNQUFNOzJCQUFDLHNCQUFzQjs7MEJBQzdCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFFekIsTUFBTTsyQkFBQyxhQUFhOzRDQTFFUixTQUFTO3NCQUR6QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFJeEIsUUFBUTtzQkFEeEIsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBTS9CLEdBQUc7c0JBREYsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkE4Q04sWUFBWTtzQkFEWCxLQUFLO2dCQWdCTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFtQmpCLElBQUk7c0JBRFAsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIGluamVjdCxcbiAgICBJbmplY3RGbGFncyxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hc2tpdG9PcHRpb25zfSBmcm9tICdAbWFza2l0by9jb3JlJztcbmltcG9ydCB7bWFza2l0b0RhdGVPcHRpb25zR2VuZXJhdG9yfSBmcm9tICdAbWFza2l0by9raXQnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU11bHRpcGxlQ29udHJvbCxcbiAgICBBYnN0cmFjdFR1aVZhbHVlVHJhbnNmb3JtZXIsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgY2hhbmdlRGF0ZVNlcGFyYXRvcixcbiAgICBUVUlfREFURV9GT1JNQVQsXG4gICAgVFVJX0RBVEVfU0VQQVJBVE9SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIHR1aURhdGVDbGFtcCxcbiAgICBUdWlEYXRlTW9kZSxcbiAgICBUdWlEYXksXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aUlzU3RyaW5nLFxuICAgIFR1aU1hcHBlcixcbiAgICBUdWlNb250aCxcbiAgICBUdWlUeXBlZE1hcHBlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSLFxuICAgIFRVSV9EUk9QRE9XTl9DT01QT05FTlQsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aU1hcmtlckhhbmRsZXIsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aVN0cmluZ2lmaWFibGVJdGVtfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlJbnB1dFRhZ0NvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LXRhZyc7XG5pbXBvcnQge1xuICAgIFRVSV9EQVRFX1RFWFRTLFxuICAgIFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSLFxuICAgIFRVSV9ET05FX1dPUkQsXG4gICAgVFVJX0lOUFVUX0RBVEVfT1BUSU9OUyxcbiAgICBUVUlfTU9CSUxFX0NBTEVOREFSLFxuICAgIHR1aURhdGVTdHJlYW1XaXRoVHJhbnNmb3JtZXIsXG4gICAgVHVpSW5wdXREYXRlT3B0aW9ucyxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHt0dWlJbW11dGFibGVVcGRhdGVJbnB1dERhdGVNdWx0aX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZVttdWx0aXBsZV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLW11bHRpLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi9pbnB1dC1kYXRlL2lucHV0LWRhdGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dERhdGVNdWx0aUNvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dERhdGVNdWx0aUNvbXBvbmVudCksXG4gICAgICAgIHR1aURhdGVTdHJlYW1XaXRoVHJhbnNmb3JtZXIoVFVJX0RBVEVfVkFMVUVfVFJBTlNGT1JNRVIpLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRFJPUERPV05fQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT5cbiAgICAgICAgICAgICAgICAoaW5qZWN0KFRVSV9JU19NT0JJTEUpICYmXG4gICAgICAgICAgICAgICAgICAgIGluamVjdChUVUlfTU9CSUxFX0NBTEVOREFSLCBJbmplY3RGbGFncy5PcHRpb25hbCkpIHx8XG4gICAgICAgICAgICAgICAgaW5qZWN0KFRVSV9EUk9QRE9XTl9DT01QT05FTlQsIEluamVjdEZsYWdzLlNraXBTZWxmKSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVNdWx0aUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlNdWx0aXBsZUNvbnRyb2w8VHVpRGF5PlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlJbnB1dFRhZ0NvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0VGFnPzogVHVpSW5wdXRUYWdDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIG1vbnRoOiBUdWlNb250aCB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBtaW46IFR1aURheSB8IG51bGwgPSB0aGlzLm9wdGlvbnMubWluO1xuXG4gICAgQElucHV0KClcbiAgICBtYXg6IFR1aURheSB8IG51bGwgPSB0aGlzLm9wdGlvbnMubWF4O1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgPSBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVmYXVsdEFjdGl2ZVllYXJNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgQElucHV0KClcbiAgICBleHBhbmRhYmxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGlucHV0SGlkZGVuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHNlYXJjaDogc3RyaW5nIHwgbnVsbCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICByb3dzID0gSW5maW5pdHk7XG5cbiAgICBtYXNraXRvT3B0aW9uczogTWFza2l0b09wdGlvbnMgPSBtYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3Ioe1xuICAgICAgICBtb2RlOiAnZGQvbW0veXl5eScsXG4gICAgICAgIHNlcGFyYXRvcjogJy4nLFxuICAgICAgICBtaW46IHRoaXMubWluPy50b0xvY2FsTmF0aXZlRGF0ZSgpLFxuICAgICAgICBtYXg6IHRoaXMubWF4Py50b0xvY2FsTmF0aXZlRGF0ZSgpLFxuICAgIH0pO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgZmlsbGVyJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5kYXRlVGV4dHMkLnBpcGUoXG4gICAgICAgIG1hcChkYXRlVGV4dHMgPT5cbiAgICAgICAgICAgIGNoYW5nZURhdGVTZXBhcmF0b3IoZGF0ZVRleHRzW3RoaXMuZGF0ZUZvcm1hdF0sIHRoaXMuZGF0ZVNlcGFyYXRvciksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9NT0JJTEVfQ0FMRU5EQVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlQ2FsZW5kYXI6IFR5cGU8UmVjb3JkPHN0cmluZywgYW55Pj4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX0ZPUk1BVCkgcmVhZG9ubHkgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfU0VQQVJBVE9SKSByZWFkb25seSBkYXRlU2VwYXJhdG9yOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUilcbiAgICAgICAgb3ZlcnJpZGUgcmVhZG9ubHkgdmFsdWVUcmFuc2Zvcm1lcjogQWJzdHJhY3RUdWlWYWx1ZVRyYW5zZm9ybWVyPFxuICAgICAgICAgICAgcmVhZG9ubHkgVHVpRGF5W11cbiAgICAgICAgPiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX0RBVEVfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlJbnB1dERhdGVPcHRpb25zLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfU0laRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9ET05FX1dPUkQpIHJlYWRvbmx5IGRvbmVXb3JkJDogT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjZHIsIHZhbHVlVHJhbnNmb3JtZXIpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgdGFnVmFsaWRhdG9yOiBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+ID0gKHRhZzogVHVpRGF5IHwgc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHt5ZWFyLCBtb250aCwgZGF5fSA9IHR1aUlzU3RyaW5nKHRhZylcbiAgICAgICAgICAgID8gVHVpRGF5LnBhcnNlUmF3RGF0ZVN0cmluZyh0YWcpXG4gICAgICAgICAgICA6IHRhZztcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBUdWlEYXkoeWVhciwgbW9udGgsIGRheSk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChUdWlEYXkuaXNWYWxpZERheSh5ZWFyLCBtb250aCwgZGF5KSAmJlxuICAgICAgICAgICAgICAgIHRoaXMubWluPy5kYXlCZWZvcmUoZGF0ZSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLm1heD8uZGF5QWZ0ZXIoZGF0ZSkpID8/XG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlICYmIHRoaXMuaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWFkb25seSBkaXNhYmxlZEl0ZW1IYW5kbGVyV3JhcHBlcjogVHVpTWFwcGVyPFxuICAgICAgICBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+IHwgVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PixcbiAgICAgICAgVHVpQm9vbGVhbkhhbmRsZXI8VHVpU3RyaW5naWZpYWJsZUl0ZW08YW55PiB8IHN0cmluZz5cbiAgICA+ID0gaGFuZGxlciA9PiBzdHJpbmdpZmlhYmxlID0+XG4gICAgICAgIHR1aUlzU3RyaW5nKHN0cmluZ2lmaWFibGUpIHx8IGhhbmRsZXIoc3RyaW5naWZpYWJsZS5pdGVtKTtcblxuICAgIHJlYWRvbmx5IHZhbHVlTWFwcGVyOiBUdWlUeXBlZE1hcHBlcjxcbiAgICAgICAgW3JlYWRvbmx5IFR1aURheVtdXSxcbiAgICAgICAgUmVhZG9ubHlBcnJheTxUdWlTdHJpbmdpZmlhYmxlSXRlbTxUdWlEYXk+PlxuICAgID4gPSB2YWx1ZSA9PiB2YWx1ZS5tYXAoaXRlbSA9PiBuZXcgVHVpU3RyaW5naWZpYWJsZUl0ZW0oaXRlbSwgaXRlbSA9PiBTdHJpbmcoaXRlbSkpKTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIGdldCBzaXplKCk6IFR1aVNpemVMIHwgVHVpU2l6ZVMge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGRTaXplLnNpemU7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZURyb3Bkb3duTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWluKCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA/PyB0aGlzLm9wdGlvbnMubWluO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1heCgpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXggPz8gdGhpcy5vcHRpb25zLm1heDtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRleHRmaWVsZD8uZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IFR1aUlucHV0RGF0ZU9wdGlvbnNbJ2ljb24nXSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaWNvbjtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRBY3RpdmVZZWFyTW9udGgoKTogVHVpTW9udGgge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5tb250aCB8fFxuICAgICAgICAgICAgdGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aCAtIDFdIHx8XG4gICAgICAgICAgICB0dWlEYXRlQ2xhbXAodGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoLCB0aGlzLmNvbXB1dGVkTWluLCB0aGlzLmNvbXB1dGVkTWF4KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uSWNvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSAmJiB0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25FbnRlcihzZWFyY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGFnVmFsaWRhdG9yKHNlYXJjaCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB0dWlJbW11dGFibGVVcGRhdGVJbnB1dERhdGVNdWx0aShcbiAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICBUdWlEYXkubm9ybWFsaXplUGFyc2Uoc2VhcmNoKSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5pbnB1dFRhZykge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFRhZy5zZWFyY2ggPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZG9uZSgpO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IFJlYWRvbmx5QXJyYXk8VHVpU3RyaW5naWZpYWJsZUl0ZW08VHVpRGF5Pj4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZS5sZW5ndGggJiYgIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlLm1hcCgoe2l0ZW19KSA9PiBpdGVtKTtcbiAgICB9XG5cbiAgICBvbkRheUNsaWNrKHZhbHVlOiBUdWlEYXkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHR1aUltbXV0YWJsZVVwZGF0ZUlucHV0RGF0ZU11bHRpKHRoaXMudmFsdWUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBkb25lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbk1vbnRoQ2hhbmdlKG1vbnRoOiBUdWlNb250aCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vbnRoID0gbW9udGg7XG4gICAgfVxuXG4gICAgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgc2V0RGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG59XG4iLCI8dHVpLWhvc3RlZC1kcm9wZG93blxuICAgIGNsYXNzPVwidC1ob3N0ZWRcIlxuICAgIFtjYW5PcGVuXT1cImludGVyYWN0aXZlXCJcbiAgICBbY29udGVudF09XCJkcm9wZG93blwiXG4gICAgW29wZW5dPVwib3BlbiAmJiBpbnRlcmFjdGl2ZVwiXG4gICAgKG9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKCRldmVudClcIlxuPlxuICAgIDx0dWktaW5wdXQtdGFnXG4gICAgICAgICNpbnB1dFRhZ1xuICAgICAgICBjbGFzcz1cInQtaW5wdXRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbZGlzYWJsZWRJdGVtSGFuZGxlcl09XCJkaXNhYmxlZEl0ZW1IYW5kbGVyIHwgdHVpTWFwcGVyOiBkaXNhYmxlZEl0ZW1IYW5kbGVyV3JhcHBlclwiXG4gICAgICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgIFtleHBhbmRhYmxlXT1cImV4cGFuZGFibGVcIlxuICAgICAgICBbaW5wdXRIaWRkZW5dPVwiaW5wdXRIaWRkZW5cIlxuICAgICAgICBbbWFza2l0b109XCJtYXNraXRvT3B0aW9uc1wiXG4gICAgICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgICAgIFtuZ01vZGVsXT1cInZhbHVlIHwgdHVpTWFwcGVyOiB2YWx1ZU1hcHBlclwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtwc2V1ZG9Gb2N1c109XCJwc2V1ZG9Gb2N1c1wiXG4gICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgIFtwc2V1ZG9JbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgIFtyZW1vdmFibGVdPVwiIW5hdGl2ZURyb3Bkb3duTW9kZVwiXG4gICAgICAgIFtyb3dzXT1cInJvd3NcIlxuICAgICAgICBbdGFnVmFsaWRhdG9yXT1cInRhZ1ZhbGlkYXRvciB8IHR1aU1hcHBlcjogZGlzYWJsZWRJdGVtSGFuZGxlcldyYXBwZXJcIlxuICAgICAgICBbdHVpVGV4dGZpZWxkRmlsbGVyXT1cIihmaWxsZXIkIHwgYXN5bmMpIHx8ICcnXCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiY2FsZW5kYXJJY29uICYmIGljb25Db250ZW50XCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcihpbnB1dFRhZy5zZWFyY2ggfHwgJycpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICA+PC9uZy1jb250ZW50PlxuICAgIDwvdHVpLWlucHV0LXRhZz5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkNvbnRlbnQ+XG4gICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY2FsZW5kYXJJY29uIGFzIHNyYzsgY29udGV4dDogeyRpbXBsaWNpdDogc2l6ZX1cIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgdHVpV3JhcHBlclxuICAgICAgICAgICAgW2NsYXNzLnQtaWNvbl09XCIhY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25JY29uQ2xpY2soKVwiXG4gICAgICAgID48L3R1aS1zdmc+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd24+XG4gICAgICAgIDx0dWktY2FsZW5kYXJcbiAgICAgICAgICAgIFtkaXNhYmxlZEl0ZW1IYW5kbGVyXT1cImRpc2FibGVkSXRlbUhhbmRsZXJcIlxuICAgICAgICAgICAgW21hcmtlckhhbmRsZXJdPVwibWFya2VySGFuZGxlclwiXG4gICAgICAgICAgICBbbWF4XT1cImNvbXB1dGVkTWF4XCJcbiAgICAgICAgICAgIFttaW5dPVwiY29tcHV0ZWRNaW5cIlxuICAgICAgICAgICAgW21vbnRoXT1cImNvbXB1dGVkQWN0aXZlWWVhck1vbnRoXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAoZGF5Q2xpY2spPVwib25EYXlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb250aENoYW5nZSk9XCJvbk1vbnRoQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgKG1vdXNlZG93bi5zaWxlbnQucHJldmVudCk9XCIoMClcIlxuICAgICAgICA+PC90dWktY2FsZW5kYXI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICAgICAgKG1vdXNlZG93bi5zaWxlbnQucHJldmVudCk9XCIoMClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb25lKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGRvbmVXb3JkJCB8IGFzeW5jIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvdHVpLWhvc3RlZC1kcm9wZG93bj5cbiJdfQ==
|