@acorex/components 17.1.1 → 17.1.3
Sign up to get free protection for your applications and to get access to all the features.
- package/common/lib/classes/components.class.d.ts +3 -2
- package/common/lib/components/value-component.class.d.ts +2 -1
- package/esm2022/collapse/lib/collapse-group.component.mjs +11 -9
- package/esm2022/common/lib/classes/components.class.mjs +1 -1
- package/esm2022/common/lib/components/selection-base.component.class.mjs +2 -2
- package/esm2022/common/lib/components/value-component.class.mjs +5 -2
- package/esm2022/form/lib/form-field.component.mjs +1 -2
- package/esm2022/form/lib/form.component.mjs +7 -4
- package/esm2022/number-box/lib/number-box.component.mjs +8 -28
- package/esm2022/otp/lib/otp.component.mjs +3 -3
- package/esm2022/select-box/lib/select-box.component.mjs +17 -11
- package/fesm2022/acorex-components-collapse.mjs +9 -7
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +5 -2
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +6 -4
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +7 -27
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +2 -2
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +16 -10
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/form/lib/form.component.d.ts +2 -1
- package/number-box/lib/number-box.component.d.ts +1 -1
- package/otp/lib/otp.component.d.ts +1 -1
- package/package.json +1 -1
@@ -99,9 +99,9 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
|
|
99
99
|
internalOptionChanged() {
|
100
100
|
this._updateMask();
|
101
101
|
}
|
102
|
-
|
102
|
+
reset() {
|
103
103
|
this.input.nativeElement.value = null;
|
104
|
-
super.
|
104
|
+
super.reset(true);
|
105
105
|
}
|
106
106
|
internalSetValue(value) {
|
107
107
|
// || (value == 0 && !this._maskObj.value)
|
@@ -166,12 +166,8 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
|
|
166
166
|
const decimalPointIndex = valStr.indexOf('.');
|
167
167
|
const _cursorPos = input.selectionStart;
|
168
168
|
if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
169
|
-
if (decimalPointIndex > 0 &&
|
170
|
-
|
171
|
-
this.decimals > 0) {
|
172
|
-
e.key === 'ArrowDown'
|
173
|
-
? this.decimalStepDown(true)
|
174
|
-
: this.decimalStepUp(true);
|
169
|
+
if (decimalPointIndex > 0 && _cursorPos > decimalPointIndex && this.decimals > 0) {
|
170
|
+
e.key === 'ArrowDown' ? this.decimalStepDown(true) : this.decimalStepUp(true);
|
175
171
|
}
|
176
172
|
else {
|
177
173
|
e.key === 'ArrowDown' ? this.stepDown(true) : this.stepUp(true);
|
@@ -204,19 +200,13 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
|
|
204
200
|
if (!this.value) {
|
205
201
|
this.commitValue(Math.max(this.minValue, 0), u);
|
206
202
|
}
|
207
|
-
this.commitValue(this.value +
|
208
|
-
toNumber(this.decimalStep == 'auto'
|
209
|
-
? 1 / Math.pow(10, this.decimals)
|
210
|
-
: this.decimalStep), u);
|
203
|
+
this.commitValue(this.value + toNumber(this.decimalStep == 'auto' ? 1 / Math.pow(10, this.decimals) : this.decimalStep), u);
|
211
204
|
}
|
212
205
|
decimalStepDown(u = false) {
|
213
206
|
if (!this.value) {
|
214
207
|
this.commitValue(Math.max(this.minValue, 0), u);
|
215
208
|
}
|
216
|
-
this.commitValue(this.value -
|
217
|
-
toNumber(this.decimalStep == 'auto'
|
218
|
-
? 1 / Math.pow(10, this.decimals)
|
219
|
-
: this.decimalStep), u);
|
209
|
+
this.commitValue(this.value - toNumber(this.decimalStep == 'auto' ? 1 / Math.pow(10, this.decimals) : this.decimalStep), u);
|
220
210
|
}
|
221
211
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXNumberBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
222
212
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", look: "look", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue", classNames: ["class", "classNames"] }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, providers: [
|
@@ -233,17 +223,7 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
|
|
233
223
|
}
|
234
224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
|
235
225
|
type: Component,
|
236
|
-
args: [{ selector: 'ax-number-box', inputs: [
|
237
|
-
'disabled',
|
238
|
-
'readonly',
|
239
|
-
'tabIndex',
|
240
|
-
'placeholder',
|
241
|
-
'value',
|
242
|
-
'state',
|
243
|
-
'name',
|
244
|
-
'id',
|
245
|
-
'look',
|
246
|
-
], outputs: [
|
226
|
+
args: [{ selector: 'ax-number-box', inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'], outputs: [
|
247
227
|
'valueChange',
|
248
228
|
'stateChange',
|
249
229
|
'onValueChanged',
|
@@ -291,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
291
271
|
type: ViewChild,
|
292
272
|
args: [IMaskDirective]
|
293
273
|
}] } });
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbnVtYmVyLWJveC9zcmMvbGliL251bWJlci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL251bWJlci1ib3gvc3JjL2xpYi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQUVuQzs7OztHQUlHO0FBMkNILE1BQU0sT0FBTyxvQkFDWCxTQUFRLE9BQU8sQ0FBQyxDQUFBLHlCQUFpQyxDQUFBLEVBQUUsZUFBZSxDQUFDO0lBM0NyRTs7UUErRFUscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBZWpDOztXQUVHO1FBRUgsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUVELGNBQVMsR0FBRyxDQUFDLENBQUM7UUFldEI7O1dBRUc7UUFFSCxnQkFBVyxHQUFv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LHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFFMUI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQzNELEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQ3BFLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQ3BFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQ25FOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFNbUIsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQU9QLGtCQUFrQjtzQkFENUIsS0FBSztnQkFnQkssZUFBZTtzQkFEekIsS0FBSztnQkFlTixJQUFJO3NCQURILEtBQUs7Z0JBUUssUUFBUTtzQkFEbEIsS0FBSztnQkFlTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZ0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBWU4sVUFBVTtzQkFEVCxLQUFLO3VCQUFDLE9BQU87Z0JBU04sY0FBYztzQkFEckIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hc2tEaXJlY3RpdmUgfSBmcm9tICdhbmd1bGFyLWltYXNrJztcbmltcG9ydCB7IE1hc2tlZE51bWJlciwgY3JlYXRlTWFzayB9IGZyb20gJ2ltYXNrJztcblxuaW1wb3J0IHtcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNFbXB0eSwgdG9OdW1iZXIgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcblxuLyoqXG4gKiBUaGUgTnVtYmVyQm94IGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbnVtYmVyLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtYmVyLWJveC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICd2YWx1ZScsXG4gICAgJ3N0YXRlJyxcbiAgICAnbmFtZScsXG4gICAgJ2lkJyxcbiAgICAnbG9vaycsXG4gIF0sXG4gIG91dHB1dHM6IFtcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdzdGF0ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ3JlYWRvbmx5Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWRDaGFuZ2UnLFxuICAgICdvbktleURvd24nLFxuICAgICdvbktleVVwJyxcbiAgICAnb25LZXlQcmVzcycsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTnVtYmVyQm94Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWE51bWJlckJveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE51bWJlckJveENvbXBvbmVudFxuICBleHRlbmRzIGNsYXNzZXMoTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudDxudW1iZXI+LCBNWExvb2tDb21wb25lbnQpXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdFxue1xuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgX3Rob3VzYW5kc1NlcGFyYXRvcjogc3RyaW5nO1xuICAvKipcbiAgICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCB0aG91c2FuZHNTZXBhcmF0b3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yO1xuICB9XG4gIHB1YmxpYyBzZXQgdGhvdXNhbmRzU2VwYXJhdG9yKHY6IHN0cmluZykge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICd0aG91c2FuZHNTZXBhcmF0b3InLFxuICAgICAgdmFsdWU6IHYgPz8gJycsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9wYWREZWNpbWFsWmVyb3MgPSBmYWxzZTtcbiAgLyoqXG4gICAqICBBIGNoYXJhY3RlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgc2VwYXJhdG9yIGNoYXJhY3Rlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcGFkRGVjaW1hbFplcm9zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wYWREZWNpbWFsWmVyb3M7XG4gIH1cbiAgcHVibGljIHNldCBwYWREZWNpbWFsWmVyb3ModjogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdwYWREZWNpbWFsWmVyb3MnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgdmFsdWUgdGhhdCBpcyB1c2VkIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgdGhlICoqSW50ZWdlcioqIHBhcnQgb2YgbnVtYmVyXG4gICAqL1xuICBASW5wdXQoKVxuICBzdGVwID0gMTtcblxuICBwcml2YXRlIF9kZWNpbWFscyA9IDA7XG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhhdCB0aGUgdXNlciBjYW4gZW50ZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGVjaW1hbHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGVjaW1hbHM7XG4gIH1cbiAgcHVibGljIHNldCBkZWNpbWFscyh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnZGVjaW1hbHMnLFxuICAgICAgdmFsdWU6IHYgPz8gMCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipEZWNpYW1sKiogcGFydCBvZiBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIGRlY2ltYWxTdGVwOiBudW1iZXIgfCAnYXV0bycgPSAnYXV0byc7XG5cbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgd2hldGhlciB0aGUgVXAgYW5kIERvd24gc3BpbiBidXR0b25zIHdpbGwgYmUgcmVuZGVyZWQgb3Igbm90XG4gICAqL1xuICBASW5wdXQoKVxuICBzaG93U3BpbkJ1dHRvbnMgPSB0cnVlO1xuXG4gIHByaXZhdGUgX21pblZhbHVlOiBudW1iZXIgPSBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUjtcbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgdGhlIHNtYWxsZXN0IHZhbHVlIHRoYXQgaXMgdmFsaWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWluVmFsdWU7XG4gIH1cbiAgcHVibGljIHNldCBtaW5WYWx1ZSh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnbWluVmFsdWUnLFxuICAgICAgdmFsdWU6IHYgIT0gbnVsbCA/IE51bWJlcih2KSA6IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWF4VmFsdWU6IG51bWJlciA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgZ3JlYXRlc3QgdmFsdWUgdGhhdCBpcyB2YWxpZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tYXhWYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdtYXhWYWx1ZScsXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoJ2NsYXNzJylcbiAgY2xhc3NOYW1lczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgX21hc2tPYmo6IE1hc2tlZE51bWJlcjtcblxuICBAVmlld0NoaWxkKElNYXNrRGlyZWN0aXZlKVxuICBwcml2YXRlIF9tYXNrRGlyZWN0aXZlOiBJTWFza0RpcmVjdGl2ZTxNYXNrZWROdW1iZXI+O1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbE9wdGlvbkNoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcbiAgICBzdXBlci5jbGVhcih0cnVlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGludGVybmFsU2V0VmFsdWUodmFsdWU6IGFueSk6IG51bWJlciB7XG4gICAgLy8gfHwgKHZhbHVlID09IDAgJiYgIXRoaXMuX21hc2tPYmoudmFsdWUpXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gICAgY29uc3QgdiA9IHRvTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAodiA8IHRoaXMubWluVmFsdWUpIHJldHVybiB0aGlzLm1pblZhbHVlO1xuICAgIGlmICh2ID4gdGhpcy5tYXhWYWx1ZSkgcmV0dXJuIHRoaXMubWF4VmFsdWU7XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVNYXNrKCkge1xuICAgIGlmICghdGhpcy5fbWFza09iaikge1xuICAgICAgdGhpcy5fbWFza09iaiA9IGNyZWF0ZU1hc2soe1xuICAgICAgICBtYXNrOiBOdW1iZXIsXG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcbiAgICAgICAgbWF4OiB0aGlzLm1heFZhbHVlLFxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnLFxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcbiAgICAgICAgcmFkaXg6ICcuJyxcbiAgICAgICAgcGFkRnJhY3Rpb25hbFplcm9zOiB0aGlzLmRlY2ltYWxzID4gMCAmJiB0aGlzLnBhZERlY2ltYWxaZXJvcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9tYXNrT2JqLmZvcm1hdCA9ICh2OiBudW1iZXIsIG0pID0+IHtcbiAgICAgICAgcmV0dXJuICFpc05hTih2KVxuICAgICAgICAgID8gdi50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XG4gICAgICAgICAgICAgIHVzZUdyb3VwaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyMCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiAnJztcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX21hc2tPYmoudXBkYXRlT3B0aW9ucyh7XG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcbiAgICAgICAgbWF4OiB0aGlzLm1heFZhbHVlLFxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnLFxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcbiAgICAgICAgcmFkaXg6ICcuJyxcbiAgICAgICAgcGFkRnJhY3Rpb25hbFplcm9zOiB0aGlzLmRlY2ltYWxzID4gMCAmJiB0aGlzLnBhZERlY2ltYWxaZXJvcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVWYWx1ZSgpO1xuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcbiAgfVxuXG4gIF9oYW5kbGVNb2RlbENoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlID09IDAgJiYgaXNFbXB0eSh0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py52YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLmNvbW1pdFZhbHVlKHZhbHVlLCB0cnVlKTtcbiAgfVxuXG4gIF9oYW5kbGVPbktleWRvd25FdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xuICAgIGNvbnN0IGlnbm9yZSA9ICgpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfTtcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgdmFsU3RyID0gaW5wdXQudmFsdWU7XG4gICAgY29uc3QgZGVjaW1hbFBvaW50SW5kZXggPSB2YWxTdHIuaW5kZXhPZignLicpO1xuICAgIGNvbnN0IF9jdXJzb3JQb3MgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCE7XG5cbiAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIGlmIChcbiAgICAgICAgZGVjaW1hbFBvaW50SW5kZXggPiAwICYmXG4gICAgICAgIF9jdXJzb3JQb3MgPiBkZWNpbWFsUG9pbnRJbmRleCAmJlxuICAgICAgICB0aGlzLmRlY2ltYWxzID4gMFxuICAgICAgKSB7XG4gICAgICAgIGUua2V5ID09PSAnQXJyb3dEb3duJ1xuICAgICAgICAgID8gdGhpcy5kZWNpbWFsU3RlcERvd24odHJ1ZSlcbiAgICAgICAgICA6IHRoaXMuZGVjaW1hbFN0ZXBVcCh0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGUua2V5ID09PSAnQXJyb3dEb3duJyA/IHRoaXMuc3RlcERvd24odHJ1ZSkgOiB0aGlzLnN0ZXBVcCh0cnVlKTtcbiAgICAgIH1cbiAgICAgIGlnbm9yZSgpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKF9jdXJzb3JQb3MsIF9jdXJzb3JQb3MpO1xuICAgICAgfSwgNSk7XG4gICAgfVxuICAgIHN1cGVyLmVtaXRPbktleWRvd25FdmVudChlKTtcbiAgfVxuXG4gIF9oYW5kbGVVcERvd25DbGljayh2OiAtMSB8IDEpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG4gICAgdiA9PSAxID8gdGhpcy5zdGVwVXAodHJ1ZSkgOiB0aGlzLnN0ZXBEb3duKHRydWUpO1xuICB9XG5cbiAgc3RlcFVwKHUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKSwgdSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSArIHRvTnVtYmVyKHRoaXMuc3RlcCksIHUpO1xuICB9XG5cbiAgc3RlcERvd24odSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApLCB1KTtcbiAgICB9XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLnZhbHVlIC0gdG9OdW1iZXIodGhpcy5zdGVwKSwgdSk7XG4gIH1cblxuICBkZWNpbWFsU3RlcFVwKHUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKSwgdSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWl0VmFsdWUoXG4gICAgICB0aGlzLnZhbHVlICtcbiAgICAgICAgdG9OdW1iZXIoXG4gICAgICAgICAgdGhpcy5kZWNpbWFsU3RlcCA9PSAnYXV0bydcbiAgICAgICAgICAgID8gMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKVxuICAgICAgICAgICAgOiB0aGlzLmRlY2ltYWxTdGVwXG4gICAgICAgICksXG4gICAgICB1XG4gICAgKTtcbiAgfVxuXG4gIGRlY2ltYWxTdGVwRG93bih1ID0gZmFsc2UpIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoTWF0aC5tYXgodGhpcy5taW5WYWx1ZSwgMCksIHUpO1xuICAgIH1cbiAgICB0aGlzLmNvbW1pdFZhbHVlKFxuICAgICAgdGhpcy52YWx1ZSAtXG4gICAgICAgIHRvTnVtYmVyKFxuICAgICAgICAgIHRoaXMuZGVjaW1hbFN0ZXAgPT0gJ2F1dG8nXG4gICAgICAgICAgICA/IDEgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFscylcbiAgICAgICAgICAgIDogdGhpcy5kZWNpbWFsU3RlcFxuICAgICAgICApLFxuICAgICAgdVxuICAgICk7XG4gIH1cblxuICAvLyBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgLy8gZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gIC8vICAgcmV0dXJuIGBheC1lZGl0b3ItY29udGFpbmVyIGF4LWxvb2stJHt0aGlzLmxvb2t9ICR7dGhpcy5kaXNhYmxlZCA/ICdheC1zdGF0ZS1kaXNhYmxlZCcgOiAnJ31gO1xuICAvLyB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtZWRpdG9yLWNvbnRhaW5lciBheC1sb29rLXt7bG9va319IHt7Y2xhc3NOYW1lc319XCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPiA8L25nLWNvbnRlbnQ+XG4gIDxpbnB1dCAjaW5wdXQgY2xhc3M9XCJheC1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgW2lkXT1cImlkXCIgW25hbWVdPVwibmFtZVwiIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiJ29mZidcIiBbaW1hc2tdPVwiX21hc2tPYmpcIiBbdW5tYXNrXT1cIid0eXBlZCdcIiBbYXR0ci5taW5dPVwibWluVmFsdWVcIiBbYXR0ci5tYXhdPVwibWF4VmFsdWVcIlxuICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgW25nTW9kZWxdPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJfaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGtleWRvd24pPVwiX2hhbmRsZU9uS2V5ZG93bkV2ZW50KCRldmVudClcIiAoa2V5dXApPVwiZW1pdE9uS2V5dXBFdmVudCgkZXZlbnQpXCJcbiAgICAoa2V5cHJlc3MpPVwiZW1pdE9uS2V5cHJlc3NFdmVudCgkZXZlbnQpXCIgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCIgLz5cbiAgQGlmKGlucHV0LnZhbHVlICYmICFkaXNhYmxlZCAmJiAhcmVhZG9ubHkpe1xuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jbGVhci1idXR0b25cIj48L25nLWNvbnRlbnQ+XG4gIH1cbiAgQGlmKHNob3dTcGluQnV0dG9ucyl7XG4gIDxkaXYgY2xhc3M9XCJheC1udW1iZXItYm94LWNvbnRyb2xcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1pY29uXCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChjbGljayk9XCJfaGFuZGxlVXBEb3duQ2xpY2soMSlcIiB0YWJpbmRleD1cIi0xXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PHNwYW5cbiAgICAgICAgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi11cCBheC1hcnJvdy1idXR0b24gXCI+PC9zcGFuPjwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cIl9oYW5kbGVVcERvd25DbGljaygtMSlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48c3BhblxuICAgICAgICBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLWRvd24gYXgtYXJyb3ctYnV0dG9uIFwiPjwvc3Bhbj48L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgfVxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPiA8L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPiA8L25nLWNvbnRlbnQ+XG48ZGl2IGNsYXNzPVwiYXgtZXJyb3ItY29udGFpbmVyXCI+PC9kaXY+Il19
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbnVtYmVyLWJveC9zcmMvbGliL251bWJlci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL251bWJlci1ib3gvc3JjL2xpYi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQUVuQzs7OztHQUlHO0FBaUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxPQUFPLENBQUMsQ0FBQSx5QkFBaUMsQ0FBQSxFQUFFLGVBQWUsQ0FBQztJQWhDckc7O1FBa0RVLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQWVqQzs7V0FFRztRQUVILFNBQUksR0FBRyxDQUFDLENBQUM7UUFFRCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBZXRCOztXQUVHO1FBRUgsZ0JBQVcsR0FB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LGlCQUFpQixDQUFDLElBQUksYUFFMUI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQzNELEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQ3BFLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQ3BFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsc0JBQXNCLEVBQUU7d0JBQ25FOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFHbUIsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQU9QLGtCQUFrQjtzQkFENUIsS0FBSztnQkFnQkssZUFBZTtzQkFEekIsS0FBSztnQkFlTixJQUFJO3NCQURILEtBQUs7Z0JBUUssUUFBUTtzQkFEbEIsS0FBSztnQkFlTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZ0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBWU4sVUFBVTtzQkFEVCxLQUFLO3VCQUFDLE9BQU87Z0JBU04sY0FBYztzQkFEckIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hc2tEaXJlY3RpdmUgfSBmcm9tICdhbmd1bGFyLWltYXNrJztcbmltcG9ydCB7IE1hc2tlZE51bWJlciwgY3JlYXRlTWFzayB9IGZyb20gJ2ltYXNrJztcblxuaW1wb3J0IHtcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNFbXB0eSwgdG9OdW1iZXIgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcblxuLyoqXG4gKiBUaGUgTnVtYmVyQm94IGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbnVtYmVyLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtYmVyLWJveC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAncmVhZG9ubHknLCAndGFiSW5kZXgnLCAncGxhY2Vob2xkZXInLCAndmFsdWUnLCAnc3RhdGUnLCAnbmFtZScsICdpZCcsICdsb29rJ10sXG4gIG91dHB1dHM6IFtcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdzdGF0ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ3JlYWRvbmx5Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWRDaGFuZ2UnLFxuICAgICdvbktleURvd24nLFxuICAgICdvbktleVVwJyxcbiAgICAnb25LZXlQcmVzcycsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTnVtYmVyQm94Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWE51bWJlckJveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE51bWJlckJveENvbXBvbmVudCBleHRlbmRzIGNsYXNzZXMoTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudDxudW1iZXI+LCBNWExvb2tDb21wb25lbnQpIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcHJpdmF0ZSBfdGhvdXNhbmRzU2VwYXJhdG9yOiBzdHJpbmc7XG4gIC8qKlxuICAgKiAgQSBjaGFyYWN0ZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHRob3VzYW5kc1NlcGFyYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90aG91c2FuZHNTZXBhcmF0b3I7XG4gIH1cbiAgcHVibGljIHNldCB0aG91c2FuZHNTZXBhcmF0b3Iodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3Rob3VzYW5kc1NlcGFyYXRvcicsXG4gICAgICB2YWx1ZTogdiA/PyAnJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3BhZERlY2ltYWxaZXJvcyA9IGZhbHNlO1xuICAvKipcbiAgICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBwYWREZWNpbWFsWmVyb3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZERlY2ltYWxaZXJvcztcbiAgfVxuICBwdWJsaWMgc2V0IHBhZERlY2ltYWxaZXJvcyh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3BhZERlY2ltYWxaZXJvcycsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipJbnRlZ2VyKiogcGFydCBvZiBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHN0ZXAgPSAxO1xuXG4gIHByaXZhdGUgX2RlY2ltYWxzID0gMDtcbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBkZWNpbWFscyB0aGF0IHRoZSB1c2VyIGNhbiBlbnRlclxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBkZWNpbWFscygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9kZWNpbWFscztcbiAgfVxuICBwdWJsaWMgc2V0IGRlY2ltYWxzKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdkZWNpbWFscycsXG4gICAgICB2YWx1ZTogdiA/PyAwLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgdGhlIHZhbHVlIHRoYXQgaXMgdXNlZCB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IHRoZSAqKkRlY2lhbWwqKiBwYXJ0IG9mIG51bWJlclxuICAgKi9cbiAgQElucHV0KClcbiAgZGVjaW1hbFN0ZXA6IG51bWJlciB8ICdhdXRvJyA9ICdhdXRvJztcblxuICAvKipcbiAgICogIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBVcCBhbmQgRG93biBzcGluIGJ1dHRvbnMgd2lsbCBiZSByZW5kZXJlZCBvciBub3RcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNob3dTcGluQnV0dG9ucyA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfbWluVmFsdWU6IG51bWJlciA9IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSO1xuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgc21hbGxlc3QgdmFsdWUgdGhhdCBpcyB2YWxpZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcbiAgfVxuICBwdWJsaWMgc2V0IG1pblZhbHVlKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdtaW5WYWx1ZScsXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9tYXhWYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSBncmVhdGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgbWF4VmFsdWUodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ21heFZhbHVlJyxcbiAgICAgIHZhbHVlOiB2ICE9IG51bGwgPyBOdW1iZXIodikgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgnY2xhc3MnKVxuICBjbGFzc05hbWVzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBfbWFza09iajogTWFza2VkTnVtYmVyO1xuXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXG4gIHByaXZhdGUgX21hc2tEaXJlY3RpdmU6IElNYXNrRGlyZWN0aXZlPE1hc2tlZE51bWJlcj47XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZU1hc2soKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGludGVybmFsT3B0aW9uQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XG4gIH1cblxuICBvdmVycmlkZSByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuICAgIHN1cGVyLnJlc2V0KHRydWUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogYW55KTogbnVtYmVyIHtcbiAgICAvLyB8fCAodmFsdWUgPT0gMCAmJiAhdGhpcy5fbWFza09iai52YWx1ZSlcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBjb25zdCB2ID0gdG9OdW1iZXIodmFsdWUpO1xuICAgIGlmICh2IDwgdGhpcy5taW5WYWx1ZSkgcmV0dXJuIHRoaXMubWluVmFsdWU7XG4gICAgaWYgKHYgPiB0aGlzLm1heFZhbHVlKSByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZU1hc2soKSB7XG4gICAgaWYgKCF0aGlzLl9tYXNrT2JqKSB7XG4gICAgICB0aGlzLl9tYXNrT2JqID0gY3JlYXRlTWFzayh7XG4gICAgICAgIG1hc2s6IE51bWJlcixcbiAgICAgICAgbWluOiB0aGlzLm1pblZhbHVlLFxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgfHwgJycsXG4gICAgICAgIHNjYWxlOiB0aGlzLmRlY2ltYWxzLFxuICAgICAgICByYWRpeDogJy4nLFxuICAgICAgICBwYWRGcmFjdGlvbmFsWmVyb3M6IHRoaXMuZGVjaW1hbHMgPiAwICYmIHRoaXMucGFkRGVjaW1hbFplcm9zLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX21hc2tPYmouZm9ybWF0ID0gKHY6IG51bWJlciwgbSkgPT4ge1xuICAgICAgICByZXR1cm4gIWlzTmFOKHYpXG4gICAgICAgICAgPyB2LnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcbiAgICAgICAgICAgICAgdXNlR3JvdXBpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIwLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6ICcnO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbWFza09iai51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgbWluOiB0aGlzLm1pblZhbHVlLFxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgfHwgJycsXG4gICAgICAgIHNjYWxlOiB0aGlzLmRlY2ltYWxzLFxuICAgICAgICByYWRpeDogJy4nLFxuICAgICAgICBwYWRGcmFjdGlvbmFsWmVyb3M6IHRoaXMuZGVjaW1hbHMgPiAwICYmIHRoaXMucGFkRGVjaW1hbFplcm9zLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZVZhbHVlKCk7XG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlQ29udHJvbCgpO1xuICB9XG5cbiAgX2hhbmRsZU1vZGVsQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPT0gMCAmJiBpc0VtcHR5KHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LnZhbHVlKSkge1xuICAgICAgdmFsdWUgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuY29tbWl0VmFsdWUodmFsdWUsIHRydWUpO1xuICB9XG5cbiAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG4gICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9O1xuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCB2YWxTdHIgPSBpbnB1dC52YWx1ZTtcbiAgICBjb25zdCBkZWNpbWFsUG9pbnRJbmRleCA9IHZhbFN0ci5pbmRleE9mKCcuJyk7XG4gICAgY29uc3QgX2N1cnNvclBvcyA9IGlucHV0LnNlbGVjdGlvblN0YXJ0ITtcblxuICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgaWYgKGRlY2ltYWxQb2ludEluZGV4ID4gMCAmJiBfY3Vyc29yUG9zID4gZGVjaW1hbFBvaW50SW5kZXggJiYgdGhpcy5kZWNpbWFscyA+IDApIHtcbiAgICAgICAgZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gdGhpcy5kZWNpbWFsU3RlcERvd24odHJ1ZSkgOiB0aGlzLmRlY2ltYWxTdGVwVXAodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlLmtleSA9PT0gJ0Fycm93RG93bicgPyB0aGlzLnN0ZXBEb3duKHRydWUpIDogdGhpcy5zdGVwVXAodHJ1ZSk7XG4gICAgICB9XG4gICAgICBpZ25vcmUoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShfY3Vyc29yUG9zLCBfY3Vyc29yUG9zKTtcbiAgICAgIH0sIDUpO1xuICAgIH1cbiAgICBzdXBlci5lbWl0T25LZXlkb3duRXZlbnQoZSk7XG4gIH1cblxuICBfaGFuZGxlVXBEb3duQ2xpY2sodjogLTEgfCAxKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xuICAgIHYgPT0gMSA/IHRoaXMuc3RlcFVwKHRydWUpIDogdGhpcy5zdGVwRG93bih0cnVlKTtcbiAgfVxuXG4gIHN0ZXBVcCh1ID0gZmFsc2UpIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoTWF0aC5tYXgodGhpcy5taW5WYWx1ZSwgMCksIHUpO1xuICAgIH1cbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMudmFsdWUgKyB0b051bWJlcih0aGlzLnN0ZXApLCB1KTtcbiAgfVxuXG4gIHN0ZXBEb3duKHUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKSwgdSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSAtIHRvTnVtYmVyKHRoaXMuc3RlcCksIHUpO1xuICB9XG5cbiAgZGVjaW1hbFN0ZXBVcCh1ID0gZmFsc2UpIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoTWF0aC5tYXgodGhpcy5taW5WYWx1ZSwgMCksIHUpO1xuICAgIH1cbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMudmFsdWUgKyB0b051bWJlcih0aGlzLmRlY2ltYWxTdGVwID09ICdhdXRvJyA/IDEgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFscykgOiB0aGlzLmRlY2ltYWxTdGVwKSwgdSk7XG4gIH1cblxuICBkZWNpbWFsU3RlcERvd24odSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApLCB1KTtcbiAgICB9XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLnZhbHVlIC0gdG9OdW1iZXIodGhpcy5kZWNpbWFsU3RlcCA9PSAnYXV0bycgPyAxIC8gTWF0aC5wb3coMTAsIHRoaXMuZGVjaW1hbHMpIDogdGhpcy5kZWNpbWFsU3RlcCksIHUpO1xuICB9XG5cbiAgLy8gQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIC8vIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAvLyAgIHJldHVybiBgYXgtZWRpdG9yLWNvbnRhaW5lciBheC1sb29rLSR7dGhpcy5sb29rfSAke3RoaXMuZGlzYWJsZWQgPyAnYXgtc3RhdGUtZGlzYWJsZWQnIDogJyd9YDtcbiAgLy8gfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWVkaXRvci1jb250YWluZXIgYXgtbG9vay17e2xvb2t9fSB7e2NsYXNzTmFtZXN9fVwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj4gPC9uZy1jb250ZW50PlxuICA8aW5wdXQgI2lucHV0IGNsYXNzPVwiYXgtaW5wdXRcIiB0eXBlPVwidGV4dFwiIFtpZF09XCJpZFwiIFtuYW1lXT1cIm5hbWVcIiBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cIidvZmYnXCIgW2ltYXNrXT1cIl9tYXNrT2JqXCIgW3VubWFza109XCIndHlwZWQnXCIgW2F0dHIubWluXT1cIm1pblZhbHVlXCIgW2F0dHIubWF4XT1cIm1heFZhbHVlXCJcbiAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MuYXgtc3RhdGUtcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiIFtuZ01vZGVsXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiX2hhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgIChrZXlkb3duKT1cIl9oYW5kbGVPbktleWRvd25FdmVudCgkZXZlbnQpXCIgKGtleXVwKT1cImVtaXRPbktleXVwRXZlbnQoJGV2ZW50KVwiXG4gICAgKGtleXByZXNzKT1cImVtaXRPbktleXByZXNzRXZlbnQoJGV2ZW50KVwiIChmb2N1cyk9XCJlbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIiAoYmx1cik9XCJlbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiIC8+XG4gIEBpZihpbnB1dC52YWx1ZSAmJiAhZGlzYWJsZWQgJiYgIXJlYWRvbmx5KXtcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtY2xlYXItYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICB9XG4gIEBpZihzaG93U3BpbkJ1dHRvbnMpe1xuICA8ZGl2IGNsYXNzPVwiYXgtbnVtYmVyLWJveC1jb250cm9sXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKDEpXCIgdGFiaW5kZXg9XCItMVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjxzcGFuXG4gICAgICAgIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tdXAgYXgtYXJyb3ctYnV0dG9uIFwiPjwvc3Bhbj48L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1pY29uXCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChjbGljayk9XCJfaGFuZGxlVXBEb3duQ2xpY2soLTEpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PHNwYW5cbiAgICAgICAgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi1kb3duIGF4LWFycm93LWJ1dHRvbiBcIj48L3NwYW4+PC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIH1cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj4gPC9uZy1jb250ZW50PlxuPC9kaXY+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cImF4LWVycm9yLWNvbnRhaW5lclwiPjwvZGl2PiJdfQ==
|
@@ -26,9 +26,9 @@ export class AXOtpComponent extends classes((MXValueComponent), MXLookComponent)
|
|
26
26
|
value: v,
|
27
27
|
});
|
28
28
|
}
|
29
|
-
|
29
|
+
reset() {
|
30
30
|
this._numbers = [];
|
31
|
-
this.
|
31
|
+
this.reset();
|
32
32
|
}
|
33
33
|
ngOnInit() {
|
34
34
|
super.ngOnInit();
|
@@ -155,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
155
155
|
}], onCompleted: [{
|
156
156
|
type: Output
|
157
157
|
}] } });
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9vdHAvc3JjL2xpYi9vdHAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL290cC9zcmMvbGliL290cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBbUJuQyxNQUFNLE9BQU8sY0FBZSxTQUFRLE9BQU8sQ0FBQyxDQUFBLGdCQUF3QixDQUFBLEVBQUUsZUFBZSxDQUFDO0lBaEJ0Rjs7UUFpQkUsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUd0QixpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBd0I5QyxnQkFBVyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUV6RixhQUFRLEdBQWEsRUFBRSxDQUFDO0tBaUhuQztJQXZJQyxJQUNXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLENBQVM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxRQUFRO1lBQ2QsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FB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Q0FBQzs4R0E5SVUsY0FBYztrR0FBZCxjQUFjLDhRQVJkO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7Z0JBQzdDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpREM5QkgsNnVCQVdpQzs7MkZEcUJwQixjQUFjO2tCQWhCMUIsU0FBUzsrQkFDRSxRQUFRLFVBR1YsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsV0FDeEMsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsbUJBQ3pCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDOzRCQUM3QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFNRCxZQUFZO3NCQURYLE1BQU07Z0JBTUksTUFBTTtzQkFEaEIsS0FBSztnQkFvQkksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1YTG9va0NvbXBvbmVudCwgTVhWYWx1ZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEFYT3RwQ29tcGxldGVkRXZlbnQgfSBmcm9tICcuL290cC5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW90cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vdHAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vdHAuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbJ3N0YXRlJywgJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ2xvb2snXSxcbiAgb3V0cHV0czogWydzdGF0ZUNoYW5nZScsICdkaXNhYmxlZENoYW5nZSddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWE90cENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE90cENvbXBvbmVudCBleHRlbmRzIGNsYXNzZXMoTVhWYWx1ZUNvbXBvbmVudDxzdHJpbmc+LCBNWExvb2tDb21wb25lbnQpIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgaW5wdXRzOiBudW1iZXJbXSA9IFtdO1xuXG4gIEBPdXRwdXQoKVxuICBsZW5ndGhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgX2xlbmd0aDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xlbmd0aDtcbiAgfVxuICBwdWJsaWMgc2V0IGxlbmd0aCh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnbGVuZ3RoJyxcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5fcmVuZGVyKCk7XG4gICAgICAgIHRoaXMuY2FsY0ZvbnRTaXplKCk7XG4gICAgICB9LFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBjbGVhcigpIHtcbiAgICB0aGlzLl9udW1iZXJzID0gW107XG4gICAgdGhpcy5zZXRTdGF0ZSgnY2xlYXInKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkNvbXBsZXRlZDogRXZlbnRFbWl0dGVyPEFYT3RwQ29tcGxldGVkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWE90cENvbXBsZXRlZEV2ZW50PigpO1xuXG4gIHByb3RlY3RlZCBfbnVtYmVyczogbnVtYmVyW10gPSBbXTtcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX3JlbmRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyKCkge1xuICAgIHRoaXMuaW5wdXRzID0gQXJyYXkodGhpcy5sZW5ndGgpXG4gICAgICAuZmlsbCgxKVxuICAgICAgLm1hcCgoeCwgaSkgPT4gaSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjRm9udFNpemUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25JbnB1dChldmVudDogYW55LCBpOiBudW1iZXIpIHtcbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MSW5wdXRFbGVtZW50PignLmF4LWlucHV0Jyk7XG4gICAgY29uc3QgbnVtYmVyUmVnZXggPSAvXlxcZCskLztcbiAgICBpZiAoIW51bWJlclJlZ2V4LnRlc3QoZXZlbnQudGFyZ2V0LnZhbHVlKSkge1xuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUuc2xpY2UoLTEpO1xuICAgIH1cbiAgICBpZiAoaW5wdXRzW2kgKyAxXSkge1xuICAgICAgaW5wdXRzW2kgKyAxXS5zZWxlY3QoKTtcbiAgICB9XG4gICAgdGhpcy5fbnVtYmVyc1tpXSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAvLyBpZiAodGhpcy5fbnVtYmVycy5maWx0ZXIoKGMpID0+IGMpLmxlbmd0aCA9PT0gdGhpcy5sZW5ndGgpIHtcbiAgICAvLyAgIHRoaXMuc2V0U3RhdGUoJ3N1Y2Nlc3MnKTtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgdGhpcy5zZXRTdGF0ZSgnZXJyb3InKTtcbiAgICAvLyB9XG4gICAgdGhpcy5vbkNvbXBsZXRlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogQVhPdHBDb21wb25lbnQsXG4gICAgICB2YWx1ZTogdGhpcy5fbnVtYmVycy5qb2luKCcnKSxcbiAgICAgIGlzQ29tcGxldGVkOiB0aGlzLl9udW1iZXJzLmZpbHRlcigoYykgPT4gYykubGVuZ3RoID09PSB0aGlzLmxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGludGVybmFsU2V0VmFsdWUodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9udW1iZXJzID0gdmFsdWU/LnRvU3RyaW5nKCkuc3BsaXQoJycpIGFzIGFueTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhbGNGb250U2l6ZSgpIHtcbiAgICBjb25zdCBzaXplID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTElucHV0RWxlbWVudD4oJy5heC1pbnB1dCcpPy5jbGllbnRXaWR0aDtcbiAgICBjb25zdCBmb250U2l6ZSA9IE1hdGgubWluKHNpemUsIHNpemUpICogMC41O1xuICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1mb250LXNpemUnLCBmb250U2l6ZSArICdweCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGk6IG51bWJlcikge1xuICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yQWxsPEhUTUxJbnB1dEVsZW1lbnQ+KCcuYXgtaW5wdXQnKTtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgICAgaW5wdXRzW2ldLnZhbHVlID0gJyc7XG4gICAgICAgIGlmIChpbnB1dHNbaSAtIDFdKSB7XG4gICAgICAgICAgaW5wdXRzW2kgLSAxXS5zZWxlY3QoKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX251bWJlcnNbaV0gPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICBpZiAoaW5wdXRzW2kgKyAxXSkge1xuICAgICAgICAgIGlucHV0c1tpICsgMV0uc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIGlmIChpbnB1dHNbaSAtIDFdKSB7XG4gICAgICAgICAgaW5wdXRzW2kgLSAxXS5zZWxlY3QoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICBpbnB1dHNbMF0uZm9jdXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbmQnOlxuICAgICAgICBpbnB1dHNbdGhpcy5sZW5ndGggLSAxXS5zZWxlY3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MSW5wdXRFbGVtZW50PignLmF4LWlucHV0Jyk7XG4gICAgY29uc3QgZGF0YSA9IGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dCcpO1xuICAgIGNvbnN0IGlzTnVtYmVyID0gL1xcZCsvO1xuXG4gICAgaWYgKGlzTnVtYmVyLnRlc3QoZGF0YSkpIHtcbiAgICAgIGlucHV0c1tpbnB1dHMubGVuZ3RoIC0gMV0uZm9jdXMoKTtcbiAgICAgIHRoaXMuX251bWJlcnMgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuX251bWJlcnNbaV0gPSArZGF0YVtpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkNsaWNrKGkpIHtcbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MSW5wdXRFbGVtZW50PignLmF4LWlucHV0Jyk7XG4gICAgaW5wdXRzW2ldLnNlbGVjdCgpO1xuICB9XG59XG4iLCI8ZGl2IGRpcj1cImx0clwiIGNsYXNzPVwiYXgtb3RwLWlucHV0LWNvbnRhaW5lciBheC1lZGl0b3ItY29udGFpbmVyIGF4LWxvb2ste3sgbG9vayB9fVwiXG4gIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6ICdyZXBlYXQoJyArIGlucHV0cy5sZW5ndGggKyAnLCBtaW5tYXgoMCwgMWZyKSknIH1cIlxuICAocGFzdGUpPVwiX2hhbmRsZU9uUGFzdGUoJGV2ZW50KVwiPlxuXG4gIEBmb3IoaW5wdXQgb2YgaW5wdXRzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSl7XG4gIDxpbnB1dCBjbGFzcz1cImF4LWlucHV0XCIgdHlwZT1cIm51bWJlclwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2NsYXNzLmF4LXN0YXRlLXN1Y2Nlc3NdPVwic3RhdGUgPT09ICdzdWNjZXNzJ1wiIFtjbGFzcy5heC1zdGF0ZS1lcnJvcl09XCJzdGF0ZSA9PT0gJ2Vycm9yJ1wiIG1heGxlbmd0aD1cIjFcIlxuICAgIFtuZ01vZGVsXT1cIl9udW1iZXJzW2ldXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgKGNsaWNrKT1cIl9oYW5kbGVPbkNsaWNrKGkpXCJcbiAgICAoaW5wdXQpPVwiX2hhbmRsZU9uSW5wdXQoJGV2ZW50LCBpKVwiIChrZXlkb3duKT1cIl9oYW5kbGVPbktleURvd24oJGV2ZW50LCBpKVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkXCIgLz5cbiAgfVxuPC9kaXY+XG48bmctdGVtcGxhdGUgI25hbWU+PC9uZy10ZW1wbGF0ZT4iXX0=
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9vdHAvc3JjL2xpYi9vdHAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL290cC9zcmMvbGliL290cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBbUJuQyxNQUFNLE9BQU8sY0FBZSxTQUFRLE9BQU8sQ0FBQyxDQUFBLGdCQUF3QixDQUFBLEVBQUUsZUFBZSxDQUFDO0lBaEJ0Rjs7UUFpQkUsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUd0QixpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBd0I5QyxnQkFBVyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUV6RixhQUFRLEdBQWEsRUFBRSxDQUFDO0tBaUhuQztJQXZJQyxJQUNXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLENBQVM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxRQUFRO1lBQ2QsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsS0FBSztRQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFNUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDN0IsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBVSxFQUFFLENBQVM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGdCQUFnQixDQUFtQixXQUFXLENBQUMsQ0FBQztRQUNyRixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ3hDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDdEMsK0RBQStEO1FBQy9ELDhCQUE4QjtRQUM5QixXQUFXO1FBQ1gsNEJBQTRCO1FBQzVCLElBQUk7UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNwQixTQUFTLEVBQUUsY0FBYztZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNO1NBQ25FLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ2xDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFRLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVTLFlBQVk7UUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBbUIsV0FBVyxDQUFDLEVBQUUsV0FBVyxDQUFDO1FBQzdGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUM1QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxLQUFvQixFQUFFLENBQVM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGdCQUFnQixDQUFtQixXQUFXLENBQUMsQ0FBQztRQUNyRixRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQixLQUFLLFdBQVc7Z0JBQ2QsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNsQixNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN2QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3pCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLFlBQVk7Z0JBQ2YsSUFBSSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2xCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLENBQUM7Z0JBQ0QsTUFBTTtZQUVSLEtBQUssV0FBVztnQkFDZCxJQUFJLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDbEIsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbEIsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxXQUFXO2dCQUNkLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQXFCO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBbUIsV0FBVyxDQUFDLENBQUM7UUFDckYsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXZCLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUM7UUFFRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVTLGNBQWMsQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBbUIsV0FBVyxDQUFDLENBQUM7UUFDckYsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBOUlVLGNBQWM7a0dBQWQsY0FBYyw4UUFSZDtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO2dCQUM3QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaURDOUJILDZ1QkFXaUM7OzJGRHFCcEIsY0FBYztrQkFoQjFCLFNBQVM7K0JBQ0UsUUFBUSxVQUdWLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLFdBQ3hDLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLG1CQUN6Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQzs0QkFDN0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBTUQsWUFBWTtzQkFEWCxNQUFNO2dCQU1JLE1BQU07c0JBRGhCLEtBQUs7Z0JBb0JJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNWExvb2tDb21wb25lbnQsIE1YVmFsdWVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBBWE90cENvbXBsZXRlZEV2ZW50IH0gZnJvbSAnLi9vdHAuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1vdHAnLFxuICB0ZW1wbGF0ZVVybDogJy4vb3RwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3RwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogWydzdGF0ZScsICdkaXNhYmxlZCcsICdyZWFkb25seScsICdsb29rJ10sXG4gIG91dHB1dHM6IFsnc3RhdGVDaGFuZ2UnLCAnZGlzYWJsZWRDaGFuZ2UnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhPdHBDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhPdHBDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YVmFsdWVDb21wb25lbnQ8c3RyaW5nPiwgTVhMb29rQ29tcG9uZW50KSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIGlucHV0czogbnVtYmVyW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgbGVuZ3RoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9sZW5ndGg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9sZW5ndGg7XG4gIH1cbiAgcHVibGljIHNldCBsZW5ndGgodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2xlbmd0aCcsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlbmRlcigpO1xuICAgICAgICB0aGlzLmNhbGNGb250U2l6ZSgpO1xuICAgICAgfSxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgcmVzZXQoKSB7XG4gICAgdGhpcy5fbnVtYmVycyA9IFtdO1xuICAgIHRoaXMucmVzZXQoKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkNvbXBsZXRlZDogRXZlbnRFbWl0dGVyPEFYT3RwQ29tcGxldGVkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWE90cENvbXBsZXRlZEV2ZW50PigpO1xuXG4gIHByb3RlY3RlZCBfbnVtYmVyczogbnVtYmVyW10gPSBbXTtcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX3JlbmRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyKCkge1xuICAgIHRoaXMuaW5wdXRzID0gQXJyYXkodGhpcy5sZW5ndGgpXG4gICAgICAuZmlsbCgxKVxuICAgICAgLm1hcCgoeCwgaSkgPT4gaSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxjRm9udFNpemUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25JbnB1dChldmVudDogYW55LCBpOiBudW1iZXIpIHtcbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MSW5wdXRFbGVtZW50PignLmF4LWlucHV0Jyk7XG4gICAgY29uc3QgbnVtYmVyUmVnZXggPSAvXlxcZCskLztcbiAgICBpZiAoIW51bWJlclJlZ2V4LnRlc3QoZXZlbnQudGFyZ2V0LnZhbHVlKSkge1xuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChldmVudC50YXJnZXQudmFsdWUubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUuc2xpY2UoLTEpO1xuICAgIH1cbiAgICBpZiAoaW5wdXRzW2kgKyAxXSkge1xuICAgICAgaW5wdXRzW2kgKyAxXS5zZWxlY3QoKTtcbiAgICB9XG4gICAgdGhpcy5fbnVtYmVyc1tpXSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAvLyBpZiAodGhpcy5fbnVtYmVycy5maWx0ZXIoKGMpID0+IGMpLmxlbmd0aCA9PT0gdGhpcy5sZW5ndGgpIHtcbiAgICAvLyAgIHRoaXMuc2V0U3RhdGUoJ3N1Y2Nlc3MnKTtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgdGhpcy5zZXRTdGF0ZSgnZXJyb3InKTtcbiAgICAvLyB9XG4gICAgdGhpcy5vbkNvbXBsZXRlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogQVhPdHBDb21wb25lbnQsXG4gICAgICB2YWx1ZTogdGhpcy5fbnVtYmVycy5qb2luKCcnKSxcbiAgICAgIGlzQ29tcGxldGVkOiB0aGlzLl9udW1iZXJzLmZpbHRlcigoYykgPT4gYykubGVuZ3RoID09PSB0aGlzLmxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGludGVybmFsU2V0VmFsdWUodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9udW1iZXJzID0gdmFsdWU/LnRvU3RyaW5nKCkuc3BsaXQoJycpIGFzIGFueTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhbGNGb250U2l6ZSgpIHtcbiAgICBjb25zdCBzaXplID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTElucHV0RWxlbWVudD4oJy5heC1pbnB1dCcpPy5jbGllbnRXaWR0aDtcbiAgICBjb25zdCBmb250U2l6ZSA9IE1hdGgubWluKHNpemUsIHNpemUpICogMC41O1xuICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1mb250LXNpemUnLCBmb250U2l6ZSArICdweCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGk6IG51bWJlcikge1xuICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yQWxsPEhUTUxJbnB1dEVsZW1lbnQ+KCcuYXgtaW5wdXQnKTtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgICAgaW5wdXRzW2ldLnZhbHVlID0gJyc7XG4gICAgICAgIGlmIChpbnB1dHNbaSAtIDFdKSB7XG4gICAgICAgICAgaW5wdXRzW2kgLSAxXS5zZWxlY3QoKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX251bWJlcnNbaV0gPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICBpZiAoaW5wdXRzW2kgKyAxXSkge1xuICAgICAgICAgIGlucHV0c1tpICsgMV0uc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIGlmIChpbnB1dHNbaSAtIDFdKSB7XG4gICAgICAgICAgaW5wdXRzW2kgLSAxXS5zZWxlY3QoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICBpbnB1dHNbMF0uZm9jdXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbmQnOlxuICAgICAgICBpbnB1dHNbdGhpcy5sZW5ndGggLSAxXS5zZWxlY3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MSW5wdXRFbGVtZW50PignLmF4LWlucHV0Jyk7XG4gICAgY29uc3QgZGF0YSA9IGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dCcpO1xuICAgIGNvbnN0IGlzTnVtYmVyID0gL1xcZCsvO1xuXG4gICAgaWYgKGlzTnVtYmVyLnRlc3QoZGF0YSkpIHtcbiAgICAgIGlucHV0c1tpbnB1dHMubGVuZ3RoIC0gMV0uZm9jdXMoKTtcbiAgICAgIHRoaXMuX251bWJlcnMgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuX251bWJlcnNbaV0gPSArZGF0YVtpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkNsaWNrKGkpIHtcbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MSW5wdXRFbGVtZW50PignLmF4LWlucHV0Jyk7XG4gICAgaW5wdXRzW2ldLnNlbGVjdCgpO1xuICB9XG59XG4iLCI8ZGl2IGRpcj1cImx0clwiIGNsYXNzPVwiYXgtb3RwLWlucHV0LWNvbnRhaW5lciBheC1lZGl0b3ItY29udGFpbmVyIGF4LWxvb2ste3sgbG9vayB9fVwiXG4gIFtuZ1N0eWxlXT1cInsgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6ICdyZXBlYXQoJyArIGlucHV0cy5sZW5ndGggKyAnLCBtaW5tYXgoMCwgMWZyKSknIH1cIlxuICAocGFzdGUpPVwiX2hhbmRsZU9uUGFzdGUoJGV2ZW50KVwiPlxuXG4gIEBmb3IoaW5wdXQgb2YgaW5wdXRzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSl7XG4gIDxpbnB1dCBjbGFzcz1cImF4LWlucHV0XCIgdHlwZT1cIm51bWJlclwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2NsYXNzLmF4LXN0YXRlLXN1Y2Nlc3NdPVwic3RhdGUgPT09ICdzdWNjZXNzJ1wiIFtjbGFzcy5heC1zdGF0ZS1lcnJvcl09XCJzdGF0ZSA9PT0gJ2Vycm9yJ1wiIG1heGxlbmd0aD1cIjFcIlxuICAgIFtuZ01vZGVsXT1cIl9udW1iZXJzW2ldXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgKGNsaWNrKT1cIl9oYW5kbGVPbkNsaWNrKGkpXCJcbiAgICAoaW5wdXQpPVwiX2hhbmRsZU9uSW5wdXQoJGV2ZW50LCBpKVwiIChrZXlkb3duKT1cIl9oYW5kbGVPbktleURvd24oJGV2ZW50LCBpKVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkXCIgLz5cbiAgfVxuPC9kaXY+XG48bmctdGVtcGxhdGUgI25hbWU+PC9uZy10ZW1wbGF0ZT4iXX0=
|
@@ -55,14 +55,10 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
|
|
55
55
|
}
|
56
56
|
//
|
57
57
|
//
|
58
|
-
this._listDataSource.onChanged
|
59
|
-
.pipe(this._unsubscriber.takeUntilDestroy)
|
60
|
-
.subscribe((data) => {
|
58
|
+
this._listDataSource.onChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((data) => {
|
61
59
|
this.setDropdownSize(data.totalCount);
|
62
60
|
});
|
63
|
-
this._listDataSource.onLoadingChanged
|
64
|
-
.pipe(this._unsubscriber.takeUntilDestroy)
|
65
|
-
.subscribe((loading) => {
|
61
|
+
this._listDataSource.onLoadingChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((loading) => {
|
66
62
|
this.isLoading.set(loading);
|
67
63
|
});
|
68
64
|
}
|
@@ -87,14 +83,14 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
|
|
87
83
|
//
|
88
84
|
this.onOpened.emit({
|
89
85
|
component: this,
|
90
|
-
isUserInteraction: e.isUserInteraction
|
86
|
+
isUserInteraction: e.isUserInteraction,
|
91
87
|
});
|
92
88
|
}
|
93
89
|
_handleOnClosedEvent(e) {
|
94
90
|
//this.input.focus();
|
95
91
|
this.onClosed.emit({
|
96
92
|
component: this,
|
97
|
-
isUserInteraction: e.isUserInteraction
|
93
|
+
isUserInteraction: e.isUserInteraction,
|
98
94
|
});
|
99
95
|
this._unsubscriber.unsubscribe();
|
100
96
|
}
|
@@ -223,7 +219,7 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
|
|
223
219
|
this._listDataSource.refresh();
|
224
220
|
}
|
225
221
|
refresh() {
|
226
|
-
this.
|
222
|
+
this.reset(false);
|
227
223
|
this.clearSelectionCache();
|
228
224
|
this.list?.refresh();
|
229
225
|
this.close();
|
@@ -266,7 +262,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
266
262
|
'multiple',
|
267
263
|
'valueField',
|
268
264
|
'textField',
|
269
|
-
], outputs: [
|
265
|
+
], outputs: [
|
266
|
+
'valueChange',
|
267
|
+
'stateChange',
|
268
|
+
'onValueChanged',
|
269
|
+
'onBlur',
|
270
|
+
'onFocus',
|
271
|
+
'readonlyChange',
|
272
|
+
'disabledChange',
|
273
|
+
'onOpened',
|
274
|
+
'onClosed',
|
275
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
270
276
|
{ provide: AXComponent, useExisting: AXSelectBoxComponent },
|
271
277
|
{ provide: AXFocusableComponent, useExisting: AXSelectBoxComponent },
|
272
278
|
{ provide: AXValuableComponent, useExisting: AXSelectBoxComponent },
|
@@ -316,4 +322,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
316
322
|
type: HostListener,
|
317
323
|
args: ['keydown', ['$event']]
|
318
324
|
}] } });
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc2VsZWN0LWJveC9zcmMvbGliL3NlbGVjdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdC1ib3gvc3JjL2xpYi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFHWCxvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBRWhCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFP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Z0JBR2xCLElBQUk7c0JBREgsU0FBUzt1QkFBQyxlQUFlO2dCQUkxQixTQUFTO3NCQURSLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkxQyxRQUFRO3NCQURqQixTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkErSG5ELGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENsZWFyYWJsZUNvbXBvbmVudCxcbiAgQVhDbG9zYmFsZUNvbXBvbmVudCxcbiAgQVhDb21wb25lbnQsXG4gIEFYRGF0YVNvdXJjZSxcbiAgQVhFdmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYSG90a2V5c1NlcnZpY2UsXG4gIEFYSXRlbUNsaWNrRXZlbnQsXG4gIEFYU2VhcmNoYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgQVhfU0VMRUNUSU9OX0RBVEFfVE9LRU4sXG4gIE1YTG9va0NvbXBvbmVudCxcbiAgTVhTZWxlY3Rpb25CcmlkZ2VTZXJ2aWNlLFxuICBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LFxuICBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJveENvbXBvbmVudCwgTVhEcm9wZG93bkJveEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhMaXN0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xpc3QnO1xuaW1wb3J0IHsgQVhTZWFyY2hCb3hDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XG5pbXBvcnQgeyBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpbmRMYXN0SW5kZXgsIGxhc3QsIG50aCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1zZWxlY3QtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndGFiSW5kZXgnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ21pblZhbHVlJyxcbiAgICAnbWF4VmFsdWUnLFxuICAgICd2YWx1ZScsXG4gICAgJ3N0YXRlJyxcbiAgICAnbmFtZScsXG4gICAgJ2lkJyxcbiAgICAndHlwZScsXG4gICAgJ2xvb2snLFxuICAgICdtdWx0aXBsZScsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICd0ZXh0RmllbGQnLFxuICBdLFxuICBvdXRwdXRzOiBbJ3ZhbHVlQ2hhbmdlJywgJ3N0YXRlQ2hhbmdlJywgJ29uVmFsdWVDaGFuZ2VkJywgJ29uQmx1cicsICdvbkZvY3VzJywgJ3JlYWRvbmx5Q2hhbmdlJywgJ2Rpc2FibGVkQ2hhbmdlJywgJ29uT3BlbmVkJywgJ29uQ2xvc2VkJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbG9zYmFsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFNlYXJjaGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhTZWxlY3RCb3hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgICAgIHVzZUNsYXNzOiBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UsXG4gICAgfSxcbiAgICBBWFVuc3Vic2NyaWJlcixcbiAgXSxcbiAgaG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWFNlbGVjdEJveENvbXBvbmVudFxuICBleHRlbmRzIGNsYXNzZXMoTVhEcm9wZG93bkJveEJhc2VDb21wb25lbnQsIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQsIE1YTG9va0NvbXBvbmVudClcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGhvdEtleVNlcnZpY2U6IEFYSG90a2V5c1NlcnZpY2UgPSBpbmplY3QoQVhIb3RrZXlzU2VydmljZSk7XG4gIHByb3RlY3RlZCBpc0xvYWRpbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlbmRlckxpc3QgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZHJvcGRvd25TaXplczogeyB3aWR0aDogc3RyaW5nOyBoZWlnaHQ6IHN0cmluZyB9ID0ge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAnYXV0bycsXG4gIH07XG5cbiAgcHJvdGVjdGVkIF9saXN0RGF0YVNvdXJjZTogQVhEYXRhU291cmNlPGFueT4gPSBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UoW10sIHtcbiAgICBrZXk6IHRoaXMudmFsdWVGaWVsZCxcbiAgICBwYWdlU2l6ZTogMTAsXG4gIH0pO1xuXG4gIHByaXZhdGUgX2RhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZTxhbnk+IHwgYW55W107XG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBBWERhdGFTb3VyY2U8YW55PiB8IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogQVhEYXRhU291cmNlPGFueT4gfCBhbnlbXSkge1xuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSB2O1xuICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZSA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZSh2LCB7XG4gICAgICAgIGtleTogdGhpcy52YWx1ZUZpZWxkLFxuICAgICAgICBwYWdlU2l6ZTogMTAsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgQVhEYXRhU291cmNlPGFueT47XG4gICAgfVxuICAgIC8vXG4gICAgLy9cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5vbkNoYW5nZWRcbiAgICAgIC5waXBlKHRoaXMuX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KVxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLnNldERyb3Bkb3duU2l6ZShkYXRhLnRvdGFsQ291bnQpO1xuICAgICAgfSk7XG4gICAgdGhpcy5fbGlzdERhdGFTb3VyY2Uub25Mb2FkaW5nQ2hhbmdlZFxuICAgICAgLnBpcGUodGhpcy5fdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpXG4gICAgICAuc3Vic2NyaWJlKChsb2FkaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChsb2FkaW5nKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBjYXB0aW9uOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIHNlbGVjdGVkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgZW1wdHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBsb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgZHJvcGRvd25XaWR0aCA9IDI2MDtcblxuICBAVmlld0NoaWxkKCdwYW5lbCcpIHBhbmVsITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZChBWExpc3RDb21wb25lbnQpXG4gIGxpc3Q6IEFYTGlzdENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEFYU2VhcmNoQm94Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzZWFyY2hCb3g6IEFYU2VhcmNoQm94Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQVhEcm9wZG93bkJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGRyb3Bkb3duOiBBWERyb3Bkb3duQm94Q29tcG9uZW50O1xuXG4gIHByb3RlY3RlZCBhdXRvSGVpZ2h0ID0gZmFsc2U7XG5cbiAgcHVibGljIHNlbGVjdGlvblNlcnZpY2UgPSBpbmplY3QoQVhfU0VMRUNUSU9OX0RBVEFfVE9LRU4pO1xuXG4gIHNlYXJjaEV2ZW50OiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVyID0gaW5qZWN0KEFYVW5zdWJzY3JpYmVyKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvL1xuICAgIHRoaXMucmVnaXN0ZXJWYWxpZGF0aW9uKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXREcm9wZG93blNpemUoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoQm94Py5vbktleURvd24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldEl0ZW1CeUtleShrZXk6IGFueSk6IFByb21pc2U8YW55PiB8IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbmQoa2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25PcGVuZWRFdmVudChlOiBBWEV2ZW50KSB7XG4gICAgdGhpcy5yZW5kZXJMaXN0ID0gdHJ1ZTtcbiAgICB0aGlzLmxpc3Q/LnJlbmRlcigpO1xuICAgIHRoaXMuX2hhbmRsZUZvY3VzKCk7XG4gICAgLy9cbiAgICB0aGlzLm9uT3BlbmVkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IGUuaXNVc2VySW50ZXJhY3Rpb25cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25DbG9zZWRFdmVudChlOiBBWEV2ZW50KSB7XG4gICAgLy90aGlzLmlucHV0LmZvY3VzKCk7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiBlLmlzVXNlckludGVyYWN0aW9uXG4gICAgfSk7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUZvY3VzKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2VhcmNoQm94KSB7XG4gICAgICAgIHRoaXMuc2VhcmNoQm94LmZvY3VzKCk7XG4gICAgICAgIC8vVE9ETzogdW5zdWJzY3JpYmVcbiAgICAgICAgdGhpcy5ob3RLZXlTZXJ2aWNlXG4gICAgICAgICAgLmFkZFNob3J0Y3V0KHsga2V5czogJ0NvbnRyb2wuZicsIGVsZW1lbnQ6IHRoaXMucGFuZWwubmF0aXZlRWxlbWVudCB9KVxuICAgICAgICAgIC5waXBlKHRoaXMuX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hCb3guZm9jdXMoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZWFyY2hCb3gub25LZXlEb3duLnBpcGUodGhpcy5fdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgIGlmIChlLm5hdGl2ZUV2ZW50LmNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGUubmF0aXZlRXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAgICAgdGhpcy5saXN0Py5mb2N1cygpO1xuICAgICAgICAgICAgZS5uYXRpdmVFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxpc3Q/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUJhZGdlUmVtb3ZlKGU6IE1vdXNlRXZlbnQsIGl0ZW0pIHtcbiAgICB0aGlzLnVuc2VsZWN0SXRlbXMoaXRlbSk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShlLmNvbXBvbmVudC5zZWxlY3RlZEl0ZW1zLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uSXRlbUNsaWNrKGU6IEFYSXRlbUNsaWNrRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHRoaXMuY2xvc2UoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGV0ZWN0QXV0b0hlaWdodCgpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIGRldGVjdEF1dG9IZWlnaHQoKSB7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGg6IG51bWJlciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LXNlbGVjdC1ib3gtc2VsZWN0aW9uJykuY2xpZW50V2lkdGg7XG4gICAgY29uc3QgaXRlbXNXaWR0aDogbnVtYmVyID0gQXJyYXkuZnJvbSh0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MRGl2RWxlbWVudD4oJy5heC1zZWxlY3RlZC10b2tlbicpKS5yZWR1Y2UoXG4gICAgICAoYSwgaSkgPT4gYSArIGkuY2xpZW50V2lkdGgsXG4gICAgICAwLFxuICAgICk7XG4gICAgdGhpcy5hdXRvSGVpZ2h0ID0gY29udGFpbmVyV2lkdGggLSBpdGVtc1dpZHRoIDw9IDg7XG4gICAgdGhpcy5kcm9wZG93bi51cGRhdGVQb3NpdGlvbigpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREcm9wZG93blNpemUoY291bnQgPSAwKSB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd24uaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duU2l6ZXMgPSB7XG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIGhlaWdodDogWydhdXRvJywgJzBweCddLmluY2x1ZGVzKHRoaXMuZHJvcGRvd25TaXplcy5oZWlnaHQpID8gYCR7TWF0aC5taW4oMTUsIGNvdW50KSAqIDQwfXB4YCA6IHRoaXMuZHJvcGRvd25TaXplcy5oZWlnaHQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvL1RPRE86IGNhbGMgbWluLXdpdGggZnJvbSBmb3JtdWxhIG9yIGNvbmZpZ1xuICAgICAgY29uc3QgaG9zdFdpZHRoID0gTWF0aC5tYXgodGhpcy5nZXRIb3N0RWxlbWVudCgpLm9mZnNldFdpZHRoLCB0aGlzLmRyb3Bkb3duV2lkdGgpO1xuICAgICAgdGhpcy5kcm9wZG93blNpemVzID0ge1xuICAgICAgICB3aWR0aDogYCR7aG9zdFdpZHRofXB4YCxcbiAgICAgICAgaGVpZ2h0OiBjb3VudCA9PSAwID8gJ2F1dG8nIDogYCR7TWF0aC5taW4oNSwgY291bnQpICogNDB9cHhgLFxuICAgICAgfTtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgX2hhbmRsZUtleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChlLmNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGUuY29kZSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLnNlbGVjdEl0ZW1CeU5hdihlLmNvZGUgPT09ICdBcnJvd0Rvd24nID8gMSA6IC0xKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKGUuY29kZSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMucG9wKCkpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICAvLyBpZiAoKGUuY29kZSA9PT0gJ1NwYWNlJyB8fCBlLmNvZGUgPT09ICdFbnRlcicpICYmIHRoaXMuaGFzSXRlbXMpIHtcbiAgICAvLyAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgIC8vICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyAgICAgICAgIHJldHVybjtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICBjb25zdCBpZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ2xpJyk/LmRhdGFzZXQ/LmlkO1xuICAgIC8vICAgICB0aGlzLnRvZ2dsZVNlbGVjdChpZCk7XG4gICAgLy8gICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIC8vIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SXRlbUJ5TmF2KHNpZ246IDEgfCAtMSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YVNvdXJjZSkgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5ub3JtYWxpemVJdGVtc0xpc3QodGhpcy5kYXRhU291cmNlKTtcbiAgICAgIGNvbnN0IF9sYXN0OiBhbnkgPSBsYXN0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICBsZXQgaSA9IC0xO1xuICAgICAgaWYgKF9sYXN0KSB7XG4gICAgICAgIGkgPSBmaW5kTGFzdEluZGV4KGl0ZW1zLCBbdGhpcy52YWx1ZUZpZWxkLCBfbGFzdFt0aGlzLnZhbHVlRmllbGRdXSk7XG4gICAgICB9XG4gICAgICBpICs9IHNpZ247XG4gICAgICBpZiAoaSA8IDAgfHwgaSA+PSBpdGVtcy5sZW5ndGgpIHJldHVybjtcbiAgICAgIGNvbnN0IG5leHQgPSBudGg8YW55PihpdGVtcywgaSk7XG4gICAgICBpZiAobmV4dCkge1xuICAgICAgICB0aGlzLnNlbGVjdEl0ZW1zKG5leHQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBzZWFyY2godGVybTogc3RyaW5nKSB7XG4gICAgaWYgKHRlcm0pIHtcbiAgICAgIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbHRlcih7XG4gICAgICAgIGZpZWxkOiB0aGlzLnRleHRGaWVsZCxcbiAgICAgICAgdmFsdWU6IHRlcm0sXG4gICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdjb250YWlucycgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIH1cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuY2xlYXIoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb25DYWNoZSgpO1xuICAgIHRoaXMubGlzdD8ucmVmcmVzaCgpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGF4LWRyb3Bkb3duLWJveCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAob25PcGVuZWQpPVwiX2hhbmRsZU9uT3BlbmVkRXZlbnQoJGV2ZW50KVwiXG4gIChvbkNsb3NlZCk9XCJfaGFuZGxlT25DbG9zZWRFdmVudCgkZXZlbnQpXCIgW2xvb2tdPVwibG9va1wiIFtjbGFzcy5heC1hdXRvLWhlaWdodF09XCJhdXRvSGVpZ2h0XCJcbiAgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCI+XG4gIDxuZy1jb250YWluZXIgaW5wdXQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1zZWxlY3Rpb24gYXgtY29udGVudFwiIFtjbGFzcy5heC1tdWx0aXBsZV09XCJtdWx0aXBsZVwiIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgIEBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1wbGFjZWhvbGRlclwiIHJvbGU9XCJ0ZXh0Ym94XCIgYXJlYS1yZWFkb25seT1cInRydWVcIj5cbiAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGZvciAoaXRlbSBvZiBzZWxlY3RlZEl0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIEBpZihzZWxlY3RlZFRlbXBsYXRlKSB7XG4gICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RlZFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOml0ZW0gfSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIH1cbiAgICAgIEBlbHNle1xuICAgICAgPGRpdiBjbGFzcz1cImF4LXNlbGVjdGVkLXRva2VuXCI+XG4gICAgICAgIHt7IGdldERpc3BsYXlUZXh0KGl0ZW0pIH19XG4gICAgICAgIEBpZiAoIWRpc2FibGVkICYmICFyZWFkb25seSAmJiBtdWx0aXBsZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jbG9zZVwiIChjbGljayk9XCJfaGFuZGxlQmFkZ2VSZW1vdmUoJGV2ZW50LCBpdGVtKVwiPiA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIEBpZiAoc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoICYmICFkaXNhYmxlZCAmJiAhcmVhZG9ubHkpIHtcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jbGVhci1idXR0b25cIj48L25nLWNvbnRlbnQ+XG4gICAgfVxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0YWJJbmRleF09XCItMVwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICA8IS0tIEBpZiAoaXNMb2FkaW5nKCkgJiYgIWlzT3Blbikge1xuICAgICAgICA8YXgtbG9hZGluZyB0eXBlPVwic3Bpbm5lclwiPjwvYXgtbG9hZGluZz5cbiAgICAgIH0gQGVsc2UgeyAtLT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tbGVmdCBheC1hcnJvdy1idXR0b25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJy1yb3RhdGlvbi05MCc6ICFpc09wZW4sXG4gICAgICAgICAgJ3JvdGF0aW9uLTkwJzogaXNPcGVuXG4gICAgICAgIH1cIj48L3NwYW4+XG4gICAgICA8IS0tIH0gLS0+XG4gICAgPC9idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+IDwvbmctY29udGVudD5cbiAgICA8bmctdGVtcGxhdGUgI3NlYXJjaD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXNlYXJjaC1ib3hcIj4gPC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIHBhbmVsPlxuICAgIDxkaXYgI3BhbmVsIGNsYXNzPVwiYXgtc2VsZWN0LWJveC1wYW5lbFwiIFtzdHlsZS5taW4td2lkdGhdPVwiZHJvcGRvd25TaXplcy53aWR0aFwiPlxuICAgICAgQGlmIChkcm9wZG93bi5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgIDxheC1oZWFkZXIgY2xhc3M9XCJheC1zb2xpZFwiPlxuICAgICAgICA8YXgtdGl0bGU+e3sgY2FwdGlvbiB8fCBwbGFjZWhvbGRlciB8fCAnc2VsZWN0Ym94LnBvcG92ZXIudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LXRpdGxlPlxuICAgICAgICA8YXgtY2xvc2UtYnV0dG9uXG4gICAgICAgICAgW2ljb25dPVwibXVsdGlwbGUgPyAnYXgtaWNvbiBheC1pY29uLWNoZWNrICFheC10ZXh0LXByaW1hcnktNTAwJyA6ICdheC1pY29uIGF4LWljb24tY2xvc2UnXCI+PC9heC1jbG9zZS1idXR0b24+XG4gICAgICA8L2F4LWhlYWRlcj5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2VhcmNoQm94KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChyZW5kZXJMaXN0KSB7XG4gICAgICA8YXgtbGlzdCBbZGF0YVNvdXJjZV09XCJfbGlzdERhdGFTb3VyY2VcIiBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIiBbc3R5bGUuaGVpZ2h0XT1cImRyb3Bkb3duU2l6ZXMuaGVpZ2h0XCJcbiAgICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkXCIgW2VtcHR5VGVtcGxhdGVdPVwiZW1wdHlUZW1wbGF0ZSA/PyBlbXB0eVwiXG4gICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCIgW2xvYWRpbmdUZW1wbGF0ZV09XCJsb2FkaW5nVGVtcGxhdGVcIiBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlVmFsdWVDaGFuZ2VkKCRldmVudClcIiBbc2VsZWN0aW9uTW9kZV09XCInaXRlbSdcIlxuICAgICAgICAob25JdGVtQ2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eT4ge3sgJ25vLXJlc3VsdC1mb3VuZCcgfCB0cmFuc2xhdGUgfCBhc3luY319IDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2F4LWxpc3Q+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgIEBpZiAobG9hZGluZ1RlbXBsYXRlKSB7XG4gICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtcC00XCI+XG4gICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgfVxuXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1mb290ZXJcIj4gPC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYXgtZHJvcGRvd24tYm94PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD4iXX0=
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc2VsZWN0LWJveC9zcmMvbGliL3NlbGVjdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdC1ib3gvc3JjL2xpYi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFHWCxvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBRWhCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFP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QkFBQyxPQUFPO2dCQUdsQixJQUFJO3NCQURILFNBQVM7dUJBQUMsZUFBZTtnQkFJMUIsU0FBUztzQkFEUixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJMUMsUUFBUTtzQkFEakIsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBK0huRCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXG4gIEFYQ2xvc2JhbGVDb21wb25lbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWERhdGFTb3VyY2UsXG4gIEFYRXZlbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWEhvdGtleXNTZXJ2aWNlLFxuICBBWEl0ZW1DbGlja0V2ZW50LFxuICBBWFNlYXJjaGFibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIEFYVmFsdWVDaGFuZ2VkRXZlbnQsXG4gIEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICBNWExvb2tDb21wb25lbnQsXG4gIE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSxcbiAgTVhTZWxlY3Rpb25WYWx1ZUNvbXBvbmVudCxcbiAgY29udmVydEFycmF5VG9EYXRhU291cmNlLFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYRHJvcGRvd25Cb3hDb21wb25lbnQsIE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYTGlzdENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9saXN0JztcbmltcG9ydCB7IEFYU2VhcmNoQm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaW5kTGFzdEluZGV4LCBsYXN0LCBudGggfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2VsZWN0LWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWJveC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICdtaW5WYWx1ZScsXG4gICAgJ21heFZhbHVlJyxcbiAgICAndmFsdWUnLFxuICAgICdzdGF0ZScsXG4gICAgJ25hbWUnLFxuICAgICdpZCcsXG4gICAgJ3R5cGUnLFxuICAgICdsb29rJyxcbiAgICAnbXVsdGlwbGUnLFxuICAgICd2YWx1ZUZpZWxkJyxcbiAgICAndGV4dEZpZWxkJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gICAgJ29uT3BlbmVkJyxcbiAgICAnb25DbG9zZWQnLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYQ2xlYXJhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYQ2xvc2JhbGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhTZWFyY2hhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYU2VsZWN0Qm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhfU0VMRUNUSU9OX0RBVEFfVE9LRU4sXG4gICAgICB1c2VDbGFzczogTVhTZWxlY3Rpb25CcmlkZ2VTZXJ2aWNlLFxuICAgIH0sXG4gICAgQVhVbnN1YnNjcmliZXIsXG4gIF0sXG4gIGhvc3Q6IHsgbmdTa2lwSHlkcmF0aW9uOiAndHJ1ZScgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTZWxlY3RCb3hDb21wb25lbnRcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50LCBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LCBNWExvb2tDb21wb25lbnQpXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgaG90S2V5U2VydmljZTogQVhIb3RrZXlzU2VydmljZSA9IGluamVjdChBWEhvdGtleXNTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGlzTG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVuZGVyTGlzdCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBkcm9wZG93blNpemVzOiB7IHdpZHRoOiBzdHJpbmc7IGhlaWdodDogc3RyaW5nIH0gPSB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgfTtcblxuICBwcm90ZWN0ZWQgX2xpc3REYXRhU291cmNlOiBBWERhdGFTb3VyY2U8YW55PiA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShbXSwge1xuICAgIGtleTogdGhpcy52YWx1ZUZpZWxkLFxuICAgIHBhZ2VTaXplOiAxMCxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogQVhEYXRhU291cmNlPGFueT4gfCBhbnlbXTtcbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IEFYRGF0YVNvdXJjZTxhbnk+IHwgYW55W10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YVNvdXJjZSh2OiBBWERhdGFTb3VyY2U8YW55PiB8IGFueVtdKSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHY7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICAgIHRoaXMuX2xpc3REYXRhU291cmNlID0gY29udmVydEFycmF5VG9EYXRhU291cmNlKHYsIHtcbiAgICAgICAga2V5OiB0aGlzLnZhbHVlRmllbGQsXG4gICAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSBhcyBBWERhdGFTb3VyY2U8YW55PjtcbiAgICB9XG4gICAgLy9cbiAgICAvL1xuICAgIHRoaXMuX2xpc3REYXRhU291cmNlLm9uQ2hhbmdlZC5waXBlKHRoaXMuX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuc2V0RHJvcGRvd25TaXplKGRhdGEudG90YWxDb3VudCk7XG4gICAgfSk7XG4gICAgdGhpcy5fbGlzdERhdGFTb3VyY2Uub25Mb2FkaW5nQ2hhbmdlZC5waXBlKHRoaXMuX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChsb2FkaW5nKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgY2FwdGlvbjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBzZWxlY3RlZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIGRyb3Bkb3duV2lkdGggPSAyNjA7XG5cbiAgQFZpZXdDaGlsZCgncGFuZWwnKSBwYW5lbCE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoQVhMaXN0Q29tcG9uZW50KVxuICBsaXN0OiBBWExpc3RDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZChBWFNlYXJjaEJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgc2VhcmNoQm94OiBBWFNlYXJjaEJveENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKEFYRHJvcGRvd25Cb3hDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBkcm9wZG93bjogQVhEcm9wZG93bkJveENvbXBvbmVudDtcblxuICBwcm90ZWN0ZWQgYXV0b0hlaWdodCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzZWxlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOKTtcblxuICBzZWFyY2hFdmVudDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIHByaXZhdGUgX3Vuc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgLy9cbiAgICB0aGlzLnJlZ2lzdGVyVmFsaWRhdGlvbigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0RHJvcGRvd25TaXplKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEJveD8ub25LZXlEb3duLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXRJdGVtQnlLZXkoa2V5OiBhbnkpOiBQcm9taXNlPGFueT4gfCBhbnkge1xuICAgIHJldHVybiB0aGlzLl9saXN0RGF0YVNvdXJjZS5maW5kKGtleSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uT3BlbmVkRXZlbnQoZTogQVhFdmVudCkge1xuICAgIHRoaXMucmVuZGVyTGlzdCA9IHRydWU7XG4gICAgdGhpcy5saXN0Py5yZW5kZXIoKTtcbiAgICB0aGlzLl9oYW5kbGVGb2N1cygpO1xuICAgIC8vXG4gICAgdGhpcy5vbk9wZW5lZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiBlLmlzVXNlckludGVyYWN0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkNsb3NlZEV2ZW50KGU6IEFYRXZlbnQpIHtcbiAgICAvL3RoaXMuaW5wdXQuZm9jdXMoKTtcbiAgICB0aGlzLm9uQ2xvc2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IGUuaXNVc2VySW50ZXJhY3Rpb24sXG4gICAgfSk7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUZvY3VzKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2VhcmNoQm94KSB7XG4gICAgICAgIHRoaXMuc2VhcmNoQm94LmZvY3VzKCk7XG4gICAgICAgIC8vVE9ETzogdW5zdWJzY3JpYmVcbiAgICAgICAgdGhpcy5ob3RLZXlTZXJ2aWNlXG4gICAgICAgICAgLmFkZFNob3J0Y3V0KHsga2V5czogJ0NvbnRyb2wuZicsIGVsZW1lbnQ6IHRoaXMucGFuZWwubmF0aXZlRWxlbWVudCB9KVxuICAgICAgICAgIC5waXBlKHRoaXMuX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hCb3guZm9jdXMoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZWFyY2hCb3gub25LZXlEb3duLnBpcGUodGhpcy5fdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgIGlmIChlLm5hdGl2ZUV2ZW50LmNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGUubmF0aXZlRXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAgICAgdGhpcy5saXN0Py5mb2N1cygpO1xuICAgICAgICAgICAgZS5uYXRpdmVFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxpc3Q/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUJhZGdlUmVtb3ZlKGU6IE1vdXNlRXZlbnQsIGl0ZW0pIHtcbiAgICB0aGlzLnVuc2VsZWN0SXRlbXMoaXRlbSk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShlLmNvbXBvbmVudC5zZWxlY3RlZEl0ZW1zLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uSXRlbUNsaWNrKGU6IEFYSXRlbUNsaWNrRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHRoaXMuY2xvc2UoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGV0ZWN0QXV0b0hlaWdodCgpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIGRldGVjdEF1dG9IZWlnaHQoKSB7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGg6IG51bWJlciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LXNlbGVjdC1ib3gtc2VsZWN0aW9uJykuY2xpZW50V2lkdGg7XG4gICAgY29uc3QgaXRlbXNXaWR0aDogbnVtYmVyID0gQXJyYXkuZnJvbSh0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MRGl2RWxlbWVudD4oJy5heC1zZWxlY3RlZC10b2tlbicpKS5yZWR1Y2UoXG4gICAgICAoYSwgaSkgPT4gYSArIGkuY2xpZW50V2lkdGgsXG4gICAgICAwLFxuICAgICk7XG4gICAgdGhpcy5hdXRvSGVpZ2h0ID0gY29udGFpbmVyV2lkdGggLSBpdGVtc1dpZHRoIDw9IDg7XG4gICAgdGhpcy5kcm9wZG93bi51cGRhdGVQb3NpdGlvbigpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREcm9wZG93blNpemUoY291bnQgPSAwKSB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd24uaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duU2l6ZXMgPSB7XG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIGhlaWdodDogWydhdXRvJywgJzBweCddLmluY2x1ZGVzKHRoaXMuZHJvcGRvd25TaXplcy5oZWlnaHQpID8gYCR7TWF0aC5taW4oMTUsIGNvdW50KSAqIDQwfXB4YCA6IHRoaXMuZHJvcGRvd25TaXplcy5oZWlnaHQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvL1RPRE86IGNhbGMgbWluLXdpdGggZnJvbSBmb3JtdWxhIG9yIGNvbmZpZ1xuICAgICAgY29uc3QgaG9zdFdpZHRoID0gTWF0aC5tYXgodGhpcy5nZXRIb3N0RWxlbWVudCgpLm9mZnNldFdpZHRoLCB0aGlzLmRyb3Bkb3duV2lkdGgpO1xuICAgICAgdGhpcy5kcm9wZG93blNpemVzID0ge1xuICAgICAgICB3aWR0aDogYCR7aG9zdFdpZHRofXB4YCxcbiAgICAgICAgaGVpZ2h0OiBjb3VudCA9PSAwID8gJ2F1dG8nIDogYCR7TWF0aC5taW4oNSwgY291bnQpICogNDB9cHhgLFxuICAgICAgfTtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgX2hhbmRsZUtleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChlLmNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGUuY29kZSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLnNlbGVjdEl0ZW1CeU5hdihlLmNvZGUgPT09ICdBcnJvd0Rvd24nID8gMSA6IC0xKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKGUuY29kZSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMucG9wKCkpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICAvLyBpZiAoKGUuY29kZSA9PT0gJ1NwYWNlJyB8fCBlLmNvZGUgPT09ICdFbnRlcicpICYmIHRoaXMuaGFzSXRlbXMpIHtcbiAgICAvLyAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgIC8vICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyAgICAgICAgIHJldHVybjtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICBjb25zdCBpZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ2xpJyk/LmRhdGFzZXQ/LmlkO1xuICAgIC8vICAgICB0aGlzLnRvZ2dsZVNlbGVjdChpZCk7XG4gICAgLy8gICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIC8vIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SXRlbUJ5TmF2KHNpZ246IDEgfCAtMSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YVNvdXJjZSkgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5ub3JtYWxpemVJdGVtc0xpc3QodGhpcy5kYXRhU291cmNlKTtcbiAgICAgIGNvbnN0IF9sYXN0OiBhbnkgPSBsYXN0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICBsZXQgaSA9IC0xO1xuICAgICAgaWYgKF9sYXN0KSB7XG4gICAgICAgIGkgPSBmaW5kTGFzdEluZGV4KGl0ZW1zLCBbdGhpcy52YWx1ZUZpZWxkLCBfbGFzdFt0aGlzLnZhbHVlRmllbGRdXSk7XG4gICAgICB9XG4gICAgICBpICs9IHNpZ247XG4gICAgICBpZiAoaSA8IDAgfHwgaSA+PSBpdGVtcy5sZW5ndGgpIHJldHVybjtcbiAgICAgIGNvbnN0IG5leHQgPSBudGg8YW55PihpdGVtcywgaSk7XG4gICAgICBpZiAobmV4dCkge1xuICAgICAgICB0aGlzLnNlbGVjdEl0ZW1zKG5leHQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBzZWFyY2godGVybTogc3RyaW5nKSB7XG4gICAgaWYgKHRlcm0pIHtcbiAgICAgIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbHRlcih7XG4gICAgICAgIGZpZWxkOiB0aGlzLnRleHRGaWVsZCxcbiAgICAgICAgdmFsdWU6IHRlcm0sXG4gICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdjb250YWlucycgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIH1cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMucmVzZXQoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb25DYWNoZSgpO1xuICAgIHRoaXMubGlzdD8ucmVmcmVzaCgpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGF4LWRyb3Bkb3duLWJveCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAob25PcGVuZWQpPVwiX2hhbmRsZU9uT3BlbmVkRXZlbnQoJGV2ZW50KVwiXG4gIChvbkNsb3NlZCk9XCJfaGFuZGxlT25DbG9zZWRFdmVudCgkZXZlbnQpXCIgW2xvb2tdPVwibG9va1wiIFtjbGFzcy5heC1hdXRvLWhlaWdodF09XCJhdXRvSGVpZ2h0XCJcbiAgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCI+XG4gIDxuZy1jb250YWluZXIgaW5wdXQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1zZWxlY3Rpb24gYXgtY29udGVudFwiIFtjbGFzcy5heC1tdWx0aXBsZV09XCJtdWx0aXBsZVwiIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgIEBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1wbGFjZWhvbGRlclwiIHJvbGU9XCJ0ZXh0Ym94XCIgYXJlYS1yZWFkb25seT1cInRydWVcIj5cbiAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGZvciAoaXRlbSBvZiBzZWxlY3RlZEl0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIEBpZihzZWxlY3RlZFRlbXBsYXRlKSB7XG4gICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RlZFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOml0ZW0gfSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIH1cbiAgICAgIEBlbHNle1xuICAgICAgPGRpdiBjbGFzcz1cImF4LXNlbGVjdGVkLXRva2VuXCI+XG4gICAgICAgIHt7IGdldERpc3BsYXlUZXh0KGl0ZW0pIH19XG4gICAgICAgIEBpZiAoIWRpc2FibGVkICYmICFyZWFkb25seSAmJiBtdWx0aXBsZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jbG9zZVwiIChjbGljayk9XCJfaGFuZGxlQmFkZ2VSZW1vdmUoJGV2ZW50LCBpdGVtKVwiPiA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIEBpZiAoc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoICYmICFkaXNhYmxlZCAmJiAhcmVhZG9ubHkpIHtcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jbGVhci1idXR0b25cIj48L25nLWNvbnRlbnQ+XG4gICAgfVxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0YWJJbmRleF09XCItMVwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICA8IS0tIEBpZiAoaXNMb2FkaW5nKCkgJiYgIWlzT3Blbikge1xuICAgICAgICA8YXgtbG9hZGluZyB0eXBlPVwic3Bpbm5lclwiPjwvYXgtbG9hZGluZz5cbiAgICAgIH0gQGVsc2UgeyAtLT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tbGVmdCBheC1hcnJvdy1idXR0b25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJy1yb3RhdGlvbi05MCc6ICFpc09wZW4sXG4gICAgICAgICAgJ3JvdGF0aW9uLTkwJzogaXNPcGVuXG4gICAgICAgIH1cIj48L3NwYW4+XG4gICAgICA8IS0tIH0gLS0+XG4gICAgPC9idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+IDwvbmctY29udGVudD5cbiAgICA8bmctdGVtcGxhdGUgI3NlYXJjaD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXNlYXJjaC1ib3hcIj4gPC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIHBhbmVsPlxuICAgIDxkaXYgI3BhbmVsIGNsYXNzPVwiYXgtc2VsZWN0LWJveC1wYW5lbFwiIFtzdHlsZS5taW4td2lkdGhdPVwiZHJvcGRvd25TaXplcy53aWR0aFwiPlxuICAgICAgQGlmIChkcm9wZG93bi5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgIDxheC1oZWFkZXIgY2xhc3M9XCJheC1zb2xpZFwiPlxuICAgICAgICA8YXgtdGl0bGU+e3sgY2FwdGlvbiB8fCBwbGFjZWhvbGRlciB8fCAnc2VsZWN0Ym94LnBvcG92ZXIudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LXRpdGxlPlxuICAgICAgICA8YXgtY2xvc2UtYnV0dG9uXG4gICAgICAgICAgW2ljb25dPVwibXVsdGlwbGUgPyAnYXgtaWNvbiBheC1pY29uLWNoZWNrICFheC10ZXh0LXByaW1hcnktNTAwJyA6ICdheC1pY29uIGF4LWljb24tY2xvc2UnXCI+PC9heC1jbG9zZS1idXR0b24+XG4gICAgICA8L2F4LWhlYWRlcj5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2VhcmNoQm94KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChyZW5kZXJMaXN0KSB7XG4gICAgICA8YXgtbGlzdCBbZGF0YVNvdXJjZV09XCJfbGlzdERhdGFTb3VyY2VcIiBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIiBbc3R5bGUuaGVpZ2h0XT1cImRyb3Bkb3duU2l6ZXMuaGVpZ2h0XCJcbiAgICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkXCIgW2VtcHR5VGVtcGxhdGVdPVwiZW1wdHlUZW1wbGF0ZSA/PyBlbXB0eVwiXG4gICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCIgW2xvYWRpbmdUZW1wbGF0ZV09XCJsb2FkaW5nVGVtcGxhdGVcIiBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlVmFsdWVDaGFuZ2VkKCRldmVudClcIiBbc2VsZWN0aW9uTW9kZV09XCInaXRlbSdcIlxuICAgICAgICAob25JdGVtQ2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eT4ge3sgJ25vLXJlc3VsdC1mb3VuZCcgfCB0cmFuc2xhdGUgfCBhc3luY319IDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2F4LWxpc3Q+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgIEBpZiAobG9hZGluZ1RlbXBsYXRlKSB7XG4gICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtcC00XCI+XG4gICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgfVxuXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1mb290ZXJcIj4gPC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYXgtZHJvcGRvd24tYm94PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD4iXX0=
|
@@ -167,10 +167,12 @@ class AXCollapseGroupComponent extends classes(MXBaseComponent, MXLookComponent)
|
|
167
167
|
name: 'accordion',
|
168
168
|
value,
|
169
169
|
afterCallback: (oldValue, newValue) => {
|
170
|
-
if (newValue)
|
170
|
+
if (newValue) {
|
171
171
|
this.applyAccordion();
|
172
|
-
|
172
|
+
}
|
173
|
+
else {
|
173
174
|
this.removeAccordion();
|
175
|
+
}
|
174
176
|
},
|
175
177
|
});
|
176
178
|
}
|
@@ -199,13 +201,15 @@ class AXCollapseGroupComponent extends classes(MXBaseComponent, MXLookComponent)
|
|
199
201
|
});
|
200
202
|
}
|
201
203
|
ngAfterViewInit() {
|
202
|
-
this.
|
204
|
+
if (this.accordion) {
|
205
|
+
this.applyAccordion();
|
206
|
+
}
|
203
207
|
}
|
204
208
|
applyAccordion() {
|
205
209
|
if (!this.look)
|
206
210
|
return;
|
207
211
|
if (this._items && this._items.length > 1) {
|
208
|
-
const activeIndex = this._items.get(this.activeIndex) || this._items
|
212
|
+
const activeIndex = this._items.get(this.activeIndex) || this._items.get(0);
|
209
213
|
this._items.forEach((c) => (c.isCollapsed = true));
|
210
214
|
if (activeIndex)
|
211
215
|
activeIndex.isCollapsed = false;
|
@@ -216,9 +220,7 @@ class AXCollapseGroupComponent extends classes(MXBaseComponent, MXLookComponent)
|
|
216
220
|
c1.onClick.subscribe((e) => {
|
217
221
|
if (!e.handled) {
|
218
222
|
this._activeIndex = list.indexOf(c1);
|
219
|
-
list
|
220
|
-
.filter((c2) => c2 != c1)
|
221
|
-
.forEach((c) => (c.isCollapsed = true));
|
223
|
+
list.filter((c2) => c2 != c1).forEach((c) => (c.isCollapsed = true));
|
222
224
|
}
|
223
225
|
}));
|
224
226
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-collapse.mjs","sources":["../../../../libs/components/collapse/src/lib/collapse.component.ts","../../../../libs/components/collapse/src/lib/collapse.component.html","../../../../libs/components/collapse/src/lib/collapse-group.component.ts","../../../../libs/components/collapse/src/lib/collapse.module.ts","../../../../libs/components/collapse/src/acorex-components-collapse.ts"],"sourcesContent":["import { AXClickEvent, MXInteractiveComponent, MXLookComponent, MXLookableComponent } from '@acorex/components/common';\nimport { AUTO_STYLE, animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n Optional,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { classes } from 'polytype';\n\nexport class AXCollapseClickEvent extends AXClickEvent {\n handled = false;\n}\n\n@Component({\n selector: 'ax-collapse',\n templateUrl: './collapse.component.html',\n inputs: ['disabled', 'look'],\n styleUrls: ['./collapse.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('collapse', [\n state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),\n state('true', style({ height: '0', visibility: 'hidden' })),\n transition('false => true', animate(150 + 'ms ease-in')),\n transition('true => false', animate(150 + 'ms ease-out')),\n ]),\n ],\n})\nexport class AXCollapseComponent extends classes(MXInteractiveComponent, MXLookComponent) {\n constructor(\n @Optional()\n @Host()\n private parent?: MXLookableComponent,\n ) {\n super();\n }\n\n /**\n * Fires each time the user clicks the panel header.\n * @event\n */\n @Output()\n onClick: EventEmitter<AXCollapseClickEvent> = new EventEmitter<AXCollapseClickEvent>();\n\n @Output()\n isCollapsedChange: EventEmitter<any> = new EventEmitter<any>();\n\n private _isCollapsed = false;\n /**\n * Providing a boolean value for its collapse state\n */\n @Input()\n public get isCollapsed(): boolean {\n return this._isCollapsed;\n }\n public set isCollapsed(v: boolean) {\n this.setOption({\n name: 'isCollapsed',\n value: v,\n afterCallback: () => {\n this.cdr.detectChanges();\n },\n });\n }\n\n private _showHeader = true;\n /**\n * Providing a boolean value for show or hide header\n */\n @Input()\n public get showHeader(): boolean {\n return this._showHeader;\n }\n public set showHeader(v: boolean) {\n this.setOption({\n name: 'showHeader',\n value: v,\n afterCallback: () => {\n this.cdr.detectChanges();\n },\n });\n }\n\n @Input()\n caption = '';\n\n @Input()\n icon = '';\n\n private _isLoading = false;\n /**\n * Providing a boolean value for its collapse state\n */\n @Input()\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this.setOption({\n name: 'isLoading',\n value: v,\n afterCallback: () => {\n this.cdr.detectChanges();\n },\n });\n }\n\n @Input()\n headerTemplate: TemplateRef<any>;\n\n handleHeaderClick(e: MouseEvent) {\n if (this.disabled || this.isLoading) return;\n const event = {\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n handled: false,\n };\n this.onClick.emit(event);\n if (!event.handled) {\n this.toggle();\n }\n }\n\n open() {\n this.isCollapsed = false;\n }\n\n close() {\n this.isCollapsed = true;\n }\n\n toggle() {\n this.isCollapsed = !this.isCollapsed;\n }\n\n @HostBinding('class')\n get __hostClass(): string[] {\n return [`${this.disabled ? 'ax-state-disabled' : ''}`, `ax-look-${this.parent?.look ? this.parent.look : this.look}`];\n }\n}\n","@if (showHeader) {\n<div class=\"ax-collapse-header\" [class.ax-state-collapsed]=\"isCollapsed\" (click)=\"handleHeaderClick($event)\">\n\n @if(headerTemplate){\n <div class=\"ax-collapse-custom-header-container\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { caption, isCollapsed } }\"></ng-container>\n </div>\n }@else{\n <div class=\"ax-collapse-header-container\">\n <div class=\"ax-collapse-header-start\">\n <span class=\"ax-collapse-header-icon\" [class]=\"icon\"> </span>\n <span>\n {{ caption }}\n </span>\n </div>\n <div class=\"ax-collapse-header-end\">\n @if(isLoading){\n <ax-loading></ax-loading>\n }@else {\n <span class=\"ax-icon ax-icon-chevron-left ax-collapse-arrow\"\n [ngClass]=\"{ '-rotation-90': isCollapsed, 'rotation-90': !isCollapsed }\"></span>\n }\n </div>\n </div>\n }\n\n</div>\n}\n<div class=\"ax-collapse-body\" [@collapse]=\"isCollapsed\">\n <div class=\"ax-collapse-body-content\">\n <ng-content></ng-content>\n </div>\n</div>","import {\n MXBaseComponent,\n MXLookComponent,\n MXLookableComponent,\n} from '@acorex/components/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { classes } from 'polytype';\nimport { Subscription } from 'rxjs';\nimport { AXCollapseComponent } from './collapse.component';\n\n@Component({\n selector: 'ax-collapse-group',\n inputs: ['look'],\n template: `<ng-content select=\"ax-collapse\"></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: MXLookableComponent,\n useExisting: AXCollapseGroupComponent,\n },\n ],\n})\nexport class AXCollapseGroupComponent\n extends classes(MXBaseComponent, MXLookComponent)\n implements AfterViewInit, OnDestroy\n{\n @Output()\n accordionChange: EventEmitter<boolean> = new EventEmitter();\n private _accordion?: boolean = false;\n\n /**\n * Enables accordion behavior, allowing only one collapsible item to be expanded at a time\n */\n @Input()\n get accordion(): boolean | undefined {\n return this._accordion;\n }\n set accordion(value: boolean) {\n this.setOption({\n name: 'accordion',\n value,\n afterCallback: (oldValue, newValue) => {\n if (newValue) this.applyAccordion();\n else this.removeAccordion();\n },\n });\n }\n\n @Output()\n activeIndexChange: EventEmitter<number> = new EventEmitter<number>();\n private _activeIndex = 0;\n /**\n * Index of the currently active item within the group\n */\n @Input()\n get activeIndex(): number {\n return this._activeIndex;\n }\n set activeIndex(value: number) {\n this.setOption({\n name: 'activeIndex',\n value,\n beforeCallback: (oldValue, newValue) => {\n const len = this._items?.length || 0;\n if (newValue < 0) newValue = 0;\n if (len > 0 && newValue >= len) {\n newValue = len - 1;\n }\n return newValue;\n },\n afterCallback: () => {\n this.applyAccordion();\n },\n });\n }\n\n @ContentChildren(AXCollapseComponent)\n private _items: QueryList<AXCollapseComponent>;\n\n private _subs: Subscription[] = [];\n\n ngAfterViewInit(): void {\n this.applyAccordion();\n }\n\n private applyAccordion() {\n if (!this.look) return;\n if (this._items && this._items.length > 1) {\n const activeIndex = this._items.get(this.activeIndex) || this._items[0];\n this._items.forEach((c) => (c.isCollapsed = true));\n if (activeIndex) activeIndex.isCollapsed = false;\n this._items.forEach((c1: AXCollapseComponent) => {\n const list = this._items.toArray();\n\n this._subs.push(\n // TODO: add and use a new event for status changes\n c1.onClick.subscribe((e) => {\n if (!e.handled) {\n this._activeIndex = list.indexOf(c1);\n list\n .filter((c2) => c2 != c1)\n .forEach((c) => (c.isCollapsed = true));\n }\n })\n );\n });\n }\n }\n\n private removeAccordion() {\n this._subs.forEach((s) => s.unsubscribe());\n this._subs = [];\n }\n\n ngOnDestroy(): void {\n this.removeAccordion();\n }\n\n @HostBinding('class')\n private get __hostClass(): string[] {\n return ['ax-collapse-group', `ax-look-${this.look}`];\n }\n}\n","import { AXLoadingModule } from '@acorex/components/loading';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXCollapseGroupComponent } from './collapse-group.component';\nimport { AXCollapseComponent } from './collapse.component';\n\n@NgModule({\n declarations: [AXCollapseComponent, AXCollapseGroupComponent],\n imports: [CommonModule, AXLoadingModule],\n exports: [AXCollapseComponent, AXCollapseGroupComponent],\n providers: [],\n})\nexport class AXCollapseModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-collapse.mjs","sources":["../../../../libs/components/collapse/src/lib/collapse.component.ts","../../../../libs/components/collapse/src/lib/collapse.component.html","../../../../libs/components/collapse/src/lib/collapse-group.component.ts","../../../../libs/components/collapse/src/lib/collapse.module.ts","../../../../libs/components/collapse/src/acorex-components-collapse.ts"],"sourcesContent":["import { AXClickEvent, MXInteractiveComponent, MXLookComponent, MXLookableComponent } from '@acorex/components/common';\nimport { AUTO_STYLE, animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n Optional,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { classes } from 'polytype';\n\nexport class AXCollapseClickEvent extends AXClickEvent {\n handled = false;\n}\n\n@Component({\n selector: 'ax-collapse',\n templateUrl: './collapse.component.html',\n inputs: ['disabled', 'look'],\n styleUrls: ['./collapse.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('collapse', [\n state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),\n state('true', style({ height: '0', visibility: 'hidden' })),\n transition('false => true', animate(150 + 'ms ease-in')),\n transition('true => false', animate(150 + 'ms ease-out')),\n ]),\n ],\n})\nexport class AXCollapseComponent extends classes(MXInteractiveComponent, MXLookComponent) {\n constructor(\n @Optional()\n @Host()\n private parent?: MXLookableComponent,\n ) {\n super();\n }\n\n /**\n * Fires each time the user clicks the panel header.\n * @event\n */\n @Output()\n onClick: EventEmitter<AXCollapseClickEvent> = new EventEmitter<AXCollapseClickEvent>();\n\n @Output()\n isCollapsedChange: EventEmitter<any> = new EventEmitter<any>();\n\n private _isCollapsed = false;\n /**\n * Providing a boolean value for its collapse state\n */\n @Input()\n public get isCollapsed(): boolean {\n return this._isCollapsed;\n }\n public set isCollapsed(v: boolean) {\n this.setOption({\n name: 'isCollapsed',\n value: v,\n afterCallback: () => {\n this.cdr.detectChanges();\n },\n });\n }\n\n private _showHeader = true;\n /**\n * Providing a boolean value for show or hide header\n */\n @Input()\n public get showHeader(): boolean {\n return this._showHeader;\n }\n public set showHeader(v: boolean) {\n this.setOption({\n name: 'showHeader',\n value: v,\n afterCallback: () => {\n this.cdr.detectChanges();\n },\n });\n }\n\n @Input()\n caption = '';\n\n @Input()\n icon = '';\n\n private _isLoading = false;\n /**\n * Providing a boolean value for its collapse state\n */\n @Input()\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this.setOption({\n name: 'isLoading',\n value: v,\n afterCallback: () => {\n this.cdr.detectChanges();\n },\n });\n }\n\n @Input()\n headerTemplate: TemplateRef<any>;\n\n handleHeaderClick(e: MouseEvent) {\n if (this.disabled || this.isLoading) return;\n const event = {\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n handled: false,\n };\n this.onClick.emit(event);\n if (!event.handled) {\n this.toggle();\n }\n }\n\n open() {\n this.isCollapsed = false;\n }\n\n close() {\n this.isCollapsed = true;\n }\n\n toggle() {\n this.isCollapsed = !this.isCollapsed;\n }\n\n @HostBinding('class')\n get __hostClass(): string[] {\n return [`${this.disabled ? 'ax-state-disabled' : ''}`, `ax-look-${this.parent?.look ? this.parent.look : this.look}`];\n }\n}\n","@if (showHeader) {\n<div class=\"ax-collapse-header\" [class.ax-state-collapsed]=\"isCollapsed\" (click)=\"handleHeaderClick($event)\">\n\n @if(headerTemplate){\n <div class=\"ax-collapse-custom-header-container\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { caption, isCollapsed } }\"></ng-container>\n </div>\n }@else{\n <div class=\"ax-collapse-header-container\">\n <div class=\"ax-collapse-header-start\">\n <span class=\"ax-collapse-header-icon\" [class]=\"icon\"> </span>\n <span>\n {{ caption }}\n </span>\n </div>\n <div class=\"ax-collapse-header-end\">\n @if(isLoading){\n <ax-loading></ax-loading>\n }@else {\n <span class=\"ax-icon ax-icon-chevron-left ax-collapse-arrow\"\n [ngClass]=\"{ '-rotation-90': isCollapsed, 'rotation-90': !isCollapsed }\"></span>\n }\n </div>\n </div>\n }\n\n</div>\n}\n<div class=\"ax-collapse-body\" [@collapse]=\"isCollapsed\">\n <div class=\"ax-collapse-body-content\">\n <ng-content></ng-content>\n </div>\n</div>","import { MXBaseComponent, MXLookComponent, MXLookableComponent } from '@acorex/components/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { classes } from 'polytype';\nimport { Subscription } from 'rxjs';\nimport { AXCollapseComponent } from './collapse.component';\n\n@Component({\n selector: 'ax-collapse-group',\n inputs: ['look'],\n template: `<ng-content select=\"ax-collapse\"></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: MXLookableComponent,\n useExisting: AXCollapseGroupComponent,\n },\n ],\n})\nexport class AXCollapseGroupComponent extends classes(MXBaseComponent, MXLookComponent) implements AfterViewInit, OnDestroy {\n @Output()\n accordionChange: EventEmitter<boolean> = new EventEmitter();\n private _accordion?: boolean = false;\n\n /**\n * Enables accordion behavior, allowing only one collapsible item to be expanded at a time\n */\n @Input()\n get accordion(): boolean | undefined {\n return this._accordion;\n }\n set accordion(value: boolean) {\n this.setOption({\n name: 'accordion',\n value,\n afterCallback: (oldValue, newValue) => {\n if (newValue) {\n this.applyAccordion();\n } else {\n this.removeAccordion();\n }\n },\n });\n }\n\n @Output()\n activeIndexChange: EventEmitter<number> = new EventEmitter<number>();\n private _activeIndex = 0;\n /**\n * Index of the currently active item within the group\n */\n @Input()\n get activeIndex(): number {\n return this._activeIndex;\n }\n set activeIndex(value: number) {\n this.setOption({\n name: 'activeIndex',\n value,\n beforeCallback: (oldValue, newValue) => {\n const len = this._items?.length || 0;\n if (newValue < 0) newValue = 0;\n if (len > 0 && newValue >= len) {\n newValue = len - 1;\n }\n return newValue;\n },\n afterCallback: () => {\n this.applyAccordion();\n },\n });\n }\n\n @ContentChildren(AXCollapseComponent)\n private _items: QueryList<AXCollapseComponent>;\n\n private _subs: Subscription[] = [];\n\n ngAfterViewInit(): void {\n if (this.accordion) {\n this.applyAccordion();\n }\n }\n\n private applyAccordion() {\n if (!this.look) return;\n if (this._items && this._items.length > 1) {\n const activeIndex = this._items.get(this.activeIndex) || this._items.get(0);\n this._items.forEach((c) => (c.isCollapsed = true));\n if (activeIndex) activeIndex.isCollapsed = false;\n this._items.forEach((c1: AXCollapseComponent) => {\n const list = this._items.toArray();\n\n this._subs.push(\n // TODO: add and use a new event for status changes\n c1.onClick.subscribe((e) => {\n if (!e.handled) {\n this._activeIndex = list.indexOf(c1);\n list.filter((c2) => c2 != c1).forEach((c) => (c.isCollapsed = true));\n }\n }),\n );\n });\n }\n }\n\n private removeAccordion() {\n this._subs.forEach((s) => s.unsubscribe());\n this._subs = [];\n }\n\n ngOnDestroy(): void {\n this.removeAccordion();\n }\n\n @HostBinding('class')\n private get __hostClass(): string[] {\n return ['ax-collapse-group', `ax-look-${this.look}`];\n }\n}\n","import { AXLoadingModule } from '@acorex/components/loading';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXCollapseGroupComponent } from './collapse-group.component';\nimport { AXCollapseComponent } from './collapse.component';\n\n@NgModule({\n declarations: [AXCollapseComponent, AXCollapseGroupComponent],\n imports: [CommonModule, AXLoadingModule],\n exports: [AXCollapseComponent, AXCollapseGroupComponent],\n providers: [],\n})\nexport class AXCollapseModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|