zek 17.3.97 → 17.3.118
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/directives/delayed-input.directive.mjs +57 -0
- package/esm2022/lib/directives/index.mjs +2 -0
- package/esm2022/lib/models/tree.mjs +2 -0
- package/esm2022/lib/models/tree.model.mjs +4 -1
- package/esm2022/lib/modules/alert/toast/toast.mjs +3 -6
- package/esm2022/lib/modules/progress/progress.mjs +3 -6
- package/esm2022/lib/services/auth.service.mjs +14 -20
- package/esm2022/lib/services/web.api.mjs +1 -1
- package/esm2022/lib/utils/array-helper.mjs +91 -27
- package/esm2022/lib/utils/index.mjs +2 -1
- package/esm2022/lib/utils/interval-helper.mjs +32 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/zek.mjs +195 -56
- package/fesm2022/zek.mjs.map +1 -1
- package/lib/directives/delayed-input.directive.d.ts +15 -0
- package/lib/directives/index.d.ts +1 -0
- package/lib/models/tree.d.ts +22 -0
- package/lib/models/tree.model.d.ts +3 -0
- package/lib/services/web.api.d.ts +1 -1
- package/lib/utils/array-helper.d.ts +12 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/interval-helper.d.ts +12 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/esm2022/lib/models/flatten-tree.mjs +0 -2
- package/lib/models/flatten-tree.d.ts +0 -6
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { debounceTime } from 'rxjs/operators';
|
|
4
|
+
import { Convert, MathHelper } from '../utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ZekDelayedInputDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this._inputSubject$ = new Subject();
|
|
9
|
+
this.delayedInput = new EventEmitter();
|
|
10
|
+
this._delay = 500;
|
|
11
|
+
}
|
|
12
|
+
get delay() {
|
|
13
|
+
return this._delay;
|
|
14
|
+
}
|
|
15
|
+
set delay(v) {
|
|
16
|
+
const tmp = MathHelper.clamp(Convert.toNumber(v), 1, 3600000);
|
|
17
|
+
if (this._delay !== tmp) {
|
|
18
|
+
this._delay = tmp;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
this.initSubscription();
|
|
23
|
+
}
|
|
24
|
+
initSubscription() {
|
|
25
|
+
// Emit values after the specified debounce time
|
|
26
|
+
this._inputSubject$.pipe(debounceTime(this.delay)).subscribe((value) => {
|
|
27
|
+
this.delayedInput.emit(value);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
// ngOnChanges(changes: SimpleChanges) {
|
|
31
|
+
// if (changes['delayTime']) {
|
|
32
|
+
// // Reset the subscription when delayTime changes
|
|
33
|
+
// this._inputSubject$ = new Subject<string>(); // Replace the Subject
|
|
34
|
+
// this.initSubscription(); // Reinitialize with the new delayTime
|
|
35
|
+
// }
|
|
36
|
+
// }
|
|
37
|
+
onInput(value) {
|
|
38
|
+
this._inputSubject$.next(value); // Push new value to the Subject
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekDelayedInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
41
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ZekDelayedInputDirective, isStandalone: true, selector: "[zek-delayed-input]", inputs: { delay: "delay" }, outputs: { delayedInput: "delayedInput" }, host: { listeners: { "input": "onInput($event.target.value)" } }, ngImport: i0 }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekDelayedInputDirective, decorators: [{
|
|
44
|
+
type: Directive,
|
|
45
|
+
args: [{
|
|
46
|
+
standalone: true,
|
|
47
|
+
selector: '[zek-delayed-input]'
|
|
48
|
+
}]
|
|
49
|
+
}], propDecorators: { delayedInput: [{
|
|
50
|
+
type: Output
|
|
51
|
+
}], delay: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], onInput: [{
|
|
54
|
+
type: HostListener,
|
|
55
|
+
args: ['input', ['$event.target.value']]
|
|
56
|
+
}] } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXllZC1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9kaXJlY3RpdmVzL2RlbGF5ZWQtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBTy9DLE1BQU0sT0FBTyx3QkFBd0I7SUFKckM7UUFNWSxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDckMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTVDLFdBQU0sR0FBRyxHQUFHLENBQUM7S0FtQ3hCO0lBbENHLElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFDSSxLQUFLLENBQUMsQ0FBYztRQUNwQixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQVMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLGtDQUFrQztJQUNsQywyREFBMkQ7SUFDM0QsOEVBQThFO0lBQzlFLDBFQUEwRTtJQUMxRSxVQUFVO0lBQ1YsSUFBSTtJQUdKLE9BQU8sQ0FBQyxLQUFhO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZ0NBQWdDO0lBQ3JFLENBQUM7OEdBdkNRLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUJBQXFCO2lCQUNsQzs4QkFJYSxZQUFZO3NCQUFyQixNQUFNO2dCQU9ILEtBQUs7c0JBRFIsS0FBSztnQkE0Qk4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29udmVydCwgTWF0aEhlbHBlciB9IGZyb20gJy4uL3V0aWxzJztcclxuaW1wb3J0IHsgTnVtYmVySW5wdXQgfSBmcm9tICcuLi9jb21wb25lbnRzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHNlbGVjdG9yOiAnW3play1kZWxheWVkLWlucHV0XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFpla0RlbGF5ZWRJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7Ly9PbkNoYW5nZXNcclxuXHJcbiAgICBwcml2YXRlIF9pbnB1dFN1YmplY3QkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIGRlbGF5ZWRJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIHByaXZhdGUgX2RlbGF5ID0gNTAwO1xyXG4gICAgZ2V0IGRlbGF5KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGF5O1xyXG4gICAgfVxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBkZWxheSh2OiBOdW1iZXJJbnB1dCkge1xyXG4gICAgICAgIGNvbnN0IHRtcCA9IE1hdGhIZWxwZXIuY2xhbXAoQ29udmVydC50b051bWJlcih2KSwgMSwgM182MDBfMDAwKTtcclxuICAgICAgICBpZiAodGhpcy5fZGVsYXkgIT09IHRtcCkge1xyXG4gICAgICAgICAgICB0aGlzLl9kZWxheSA9IHRtcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0U3Vic2NyaXB0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0U3Vic2NyaXB0aW9uKCkge1xyXG4gICAgICAgIC8vIEVtaXQgdmFsdWVzIGFmdGVyIHRoZSBzcGVjaWZpZWQgZGVib3VuY2UgdGltZVxyXG4gICAgICAgIHRoaXMuX2lucHV0U3ViamVjdCQucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWxheSkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kZWxheWVkSW5wdXQuZW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgLy8gICAgIGlmIChjaGFuZ2VzWydkZWxheVRpbWUnXSkge1xyXG4gICAgLy8gICAgICAgICAvLyBSZXNldCB0aGUgc3Vic2NyaXB0aW9uIHdoZW4gZGVsYXlUaW1lIGNoYW5nZXNcclxuICAgIC8vICAgICAgICAgdGhpcy5faW5wdXRTdWJqZWN0JCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTsgLy8gUmVwbGFjZSB0aGUgU3ViamVjdFxyXG4gICAgLy8gICAgICAgICB0aGlzLmluaXRTdWJzY3JpcHRpb24oKTsgLy8gUmVpbml0aWFsaXplIHdpdGggdGhlIG5ldyBkZWxheVRpbWVcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKVxyXG4gICAgb25JbnB1dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5faW5wdXRTdWJqZWN0JC5uZXh0KHZhbHVlKTsgLy8gUHVzaCBuZXcgdmFsdWUgdG8gdGhlIFN1YmplY3RcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './delayed-input.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RlbGF5ZWQtaW5wdXQuZGlyZWN0aXZlJzsiXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL21vZGVscy90cmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElGbGF0dGVuVHJlZTxUS2V5ID0gYW55LCBUVmFsdWUgPSBhbnk+IHtcclxuICAgIGtleT86IFRLZXkgfCBudWxsO1xyXG4gICAgdmFsdWU/OiBUVmFsdWUgfCBudWxsO1xyXG4gICAgaW5kZW50OiBudW1iZXI7XHJcbiAgICBjb3VudDogbnVtYmVyO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElOb2RlIHtcclxuICAgIGlkOiBudW1iZXI7XHJcbiAgICBwYXJlbnRJZD86IG51bWJlciB8IG51bGw7XHJcbiAgICBuYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY2hlY2tlZD86IGJvb2xlYW4gfCBudWxsO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRyZWVOb2RlIGV4dGVuZHMgSU5vZGUge1xyXG4gICAgY2hpbGRyZW46IElUcmVlTm9kZVtdIHwgbnVsbDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIElGbGF0dGVuVHJlZU5vZGUge1xyXG4gICAgaWQ/OiBudW1iZXIgfCBudWxsO1xyXG4gICAgbmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBpbmRlbnQ6IG51bWJlcjtcclxuICAgIGNvdW50OiBudW1iZXI7XHJcbiAgICBjaGVja2VkPzogYm9vbGVhbiB8IG51bGw7XHJcbn1cclxuIl19
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { KeyPairChecked } from './key-pair.model';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated use ITreeNode
|
|
4
|
+
*/
|
|
2
5
|
export class Tree extends KeyPairChecked {
|
|
3
6
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL21vZGVscy90cmVlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRDs7R0FFRztBQUNILE1BQU0sT0FBTyxJQUFLLFNBQVEsY0FBOEI7Q0FNdkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlQYWlyQ2hlY2tlZCB9IGZyb20gJy4va2V5LXBhaXIubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIHVzZSBJVHJlZU5vZGVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBUcmVlIGV4dGVuZHMgS2V5UGFpckNoZWNrZWQ8bnVtYmVyLCBzdHJpbmc+IHtcclxuICAgIHBhcmVudElkPzogbnVtYmVyIHwgbnVsbDtcclxuICAgIGNoaWxkcmVuPzogVHJlZVtdIHwgbnVsbDtcclxuICAgIGNoaWxkcmVuQ291bnQ/OiBudW1iZXIgfCBudWxsO1xyXG4gICAgaW5kZW50PzogbnVtYmVyIHwgbnVsbDtcclxuICAgIGNoaWxkcmVuSWRzPzogbnVtYmVyW10gfCBudWxsO1xyXG59Il19
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { BootstrapHelper, Convert } from '../../../utils';
|
|
2
|
+
import { BootstrapHelper, Convert, MathHelper } from '../../../utils';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../../../services/alert.service";
|
|
6
6
|
import * as i2 from "@angular/common";
|
|
7
|
-
function clamp(v, min = 10, max = 3600000) {
|
|
8
|
-
return Math.max(min, Math.min(max, v));
|
|
9
|
-
}
|
|
10
7
|
export class ZekToast {
|
|
11
8
|
get delay() {
|
|
12
9
|
return this._delay;
|
|
13
10
|
}
|
|
14
11
|
set delay(v) {
|
|
15
|
-
const tmp = clamp(Convert.toNumber(v) || 0);
|
|
12
|
+
const tmp = MathHelper.clamp(Convert.toNumber(v) || 0, 10, 3600000);
|
|
16
13
|
if (this._delay !== tmp) {
|
|
17
14
|
this._delay = tmp;
|
|
18
15
|
}
|
|
@@ -119,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
119
116
|
}], icon: [{
|
|
120
117
|
type: Input
|
|
121
118
|
}] } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2FsZXJ0L3RvYXN0L3RvYXN0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9hbGVydC90b2FzdC90b2FzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUUvQyxTQUFTLEtBQUssQ0FBQyxDQUFTLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsT0FBTztJQUM3QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQVNELE1BQU0sT0FBTyxRQUFRO0lBQ2pCLElBQ0ksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsQ0FBYztRQUNwQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDdEIsQ0FBQztJQUNMLENBQUM7SUFVRCxZQUE2QixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVR2RCxXQUFNLEdBQVcsSUFBSSxDQUFDO1FBR2IsU0FBSSxHQUFHLElBQUksQ0FBQztRQUVyQixXQUFNLEdBQVUsRUFBRSxDQUFDO0lBSXdDLENBQUM7SUFFNUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUN6RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1QsK0NBQStDO2dCQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDakIsT0FBTztZQUNYLENBQUM7WUFFRCxxQkFBcUI7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUzQixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLDhEQUE4RDtnQkFDOUQsd0NBQXdDO2dCQUN4QyxZQUFZO1lBQ2hCLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFHaEIsdUVBQXVFO1lBQ3ZFLHVEQUF1RDtZQUN2RCwwQ0FBMEM7WUFDMUMsS0FBSztZQUNMLDJCQUEyQjtZQUMzQixnQkFBZ0I7WUFDaEIsTUFBTTtRQUNWLENBQUMsQ0FBQyxDQUFDO0lBSVAsQ0FBQztJQUdELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUdELEtBQUs7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBWTtRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBR0QsT0FBTyxDQUFDLEtBQVk7UUFDaEIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3JCLE9BQU87UUFHWCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsS0FBSyxDQUFDLElBQUksR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsS0FBWSxDQUFDO1FBQ3JCLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLEtBQUssU0FBUztnQkFDVixDQUFDLENBQUMsR0FBRyxHQUFHLHVCQUF1QixDQUFDO2dCQUNoQyxNQUFNO1lBQ1YsS0FBSyxTQUFTO2dCQUNWLENBQUMsQ0FBQyxHQUFHLEdBQUcsdUJBQXVCLENBQUM7Z0JBQ2hDLHNDQUFzQztnQkFDdEMsMENBQTBDO2dCQUMxQyxNQUFNO1lBQ1YsS0FBSyxRQUFRO2dCQUNULENBQUMsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCLENBQUM7Z0JBQy9CLG9DQUFvQztnQkFDcEMsd0NBQXdDO2dCQUN4QyxNQUFNO1lBQ1YsS0FBSyxTQUFTO2dCQUNWLENBQUMsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCLENBQUM7Z0JBQy9CLHVDQUF1QztnQkFDdkMsMkNBQTJDO2dCQUMzQyxNQUFNO1lBQ1YsS0FBSyxNQUFNO2dCQUNQLENBQUMsQ0FBQyxHQUFHLEdBQUcsb0JBQW9CLENBQUM7Z0JBQzdCLHFDQUFxQztnQkFDckMseUNBQXlDO2dCQUN6QyxNQUFNO1lBQ1YsS0FBSyxPQUFPO2dCQUNSLENBQUMsQ0FBQyxHQUFHLEdBQUcsb0JBQW9CLENBQUM7Z0JBQzdCLE1BQU07WUFDVixLQUFLLE1BQU07Z0JBQ1AsQ0FBQyxDQUFDLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQztnQkFDN0IsTUFBTTtZQUdWO2dCQUNJLENBQUMsQ0FBQyxHQUFHLEdBQUcseUJBQXlCLENBQUM7Z0JBQ2xDLE1BQU07UUFDZCxDQUFDO0lBQ0wsQ0FBQzs4R0E3SFEsUUFBUTtrR0FBUixRQUFRLCtHQ3BCckIscXREQTJCTSw0R0RUUSxZQUFZOzsyRkFFYixRQUFRO2tCQVBwQixTQUFTO2lDQUNNLElBQUksWUFDTixXQUFXLFdBR1osQ0FBQyxZQUFZLENBQUM7aUZBSW5CLEtBQUs7c0JBRFIsS0FBSztnQkFhRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQm9vdHN0cmFwSGVscGVyLCBDb252ZXJ0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xyXG4vL2RlY2xhcmUgbGV0IGJvb3RzdHJhcDogYW55O1xyXG5cclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBUb2FzdCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOdW1iZXJJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuZnVuY3Rpb24gY2xhbXAodjogbnVtYmVyLCBtaW4gPSAxMCwgbWF4ID0gMzYwMDAwMCkge1xyXG4gICAgcmV0dXJuIE1hdGgubWF4KG1pbiwgTWF0aC5taW4obWF4LCB2KSk7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHNlbGVjdG9yOiAnemVrLXRvYXN0JyxcclxuICAgIHN0eWxlVXJsczogWycuL3RvYXN0LmNzcyddLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0Lmh0bWwnLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFpla1RvYXN0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBkZWxheSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kZWxheTtcclxuICAgIH1cclxuICAgIHNldCBkZWxheSh2OiBOdW1iZXJJbnB1dCkge1xyXG4gICAgICAgIGNvbnN0IHRtcCA9IGNsYW1wKENvbnZlcnQudG9OdW1iZXIodikgfHwgMCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX2RlbGF5ICE9PSB0bXApIHtcclxuICAgICAgICAgICAgdGhpcy5fZGVsYXkgPSB0bXA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgX2RlbGF5OiBudW1iZXIgPSAzMDAwO1xyXG4gICAgXHJcbiAgICBcclxuICAgIEBJbnB1dCgpIGljb24gPSB0cnVlO1xyXG5cclxuICAgIHRvYXN0czogYW55W10gPSBbXTtcclxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgX3RpbWVvdXQ6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLmFsZXJ0U2VydmljZS5nZXRUb2FzdCgpLnN1YnNjcmliZSgodG9hc3Q6IFRvYXN0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdG9hc3QpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNsZWFyIGFsZXJ0cyB3aGVuIGFuIGVtcHR5IGFsZXJ0IGlzIHJlY2VpdmVkXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0cyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBhZGQgdG9hc3QgdG8gYXJyYXlcclxuICAgICAgICAgICAgdGhpcy5jc3NJbml0KHRvYXN0KTtcclxuICAgICAgICAgICAgdGhpcy50b2FzdHMudW5zaGlmdCh0b2FzdCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl90aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZSh0b2FzdCk7XHJcbiAgICAgICAgICAgICAgICAvLyBsZXQgdG9hc3RFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGB0b2FzdC0ke3RvYXN0LmlkfWApO1xyXG4gICAgICAgICAgICAgICAgLy8gbGV0IHQgPSBuZXcgYm9vdHN0cmFwLlRvYXN0KHRvYXN0RWwpO1xyXG4gICAgICAgICAgICAgICAgLy8gdC5zaG93KCk7XHJcbiAgICAgICAgICAgIH0sIHRoaXMuX2RlbGF5KTtcclxuXHJcblxyXG4gICAgICAgICAgICAvLyBsZXQgdG9hc3RFbExpc3QgPSBbXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50b2FzdCcpKVxyXG4gICAgICAgICAgICAvLyBsZXQgdG9hc3RMaXN0ID0gdG9hc3RFbExpc3QubWFwKGZ1bmN0aW9uICh0b2FzdEVsKSB7XHJcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4gbmV3IGJvb3RzdHJhcC5Ub2FzdCh0b2FzdEVsKVxyXG4gICAgICAgICAgICAvLyB9KVxyXG4gICAgICAgICAgICAvLyB0b2FzdExpc3QuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIHQuc2hvdygpO1xyXG4gICAgICAgICAgICAvLyB9KTtcclxuICAgICAgICB9KTtcclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jbGVhclRpbWVvdXQoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuY2xlYXIoKTtcclxuICAgIH1cclxuICAgIHJlbW92ZSh0b2FzdDogVG9hc3QpIHtcclxuICAgICAgICB0aGlzLnRvYXN0cyA9IHRoaXMudG9hc3RzLmZpbHRlcih4ID0+IHggIT09IHRvYXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclRpbWVvdXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RpbWVvdXQpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpO1xyXG4gICAgICAgICAgICB0aGlzLl90aW1lb3V0ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNzc0luaXQodG9hc3Q6IFRvYXN0KSB7XHJcbiAgICAgICAgaWYgKCF0b2FzdCB8fCAhdG9hc3QudHlwZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaWNvbiAmJiAhdG9hc3QuaWNvbikge1xyXG4gICAgICAgICAgICB0b2FzdC5pY29uID0gQm9vdHN0cmFwSGVscGVyLmNzc0FsZXJ0SWNvbih0b2FzdC50eXBlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2ID0gdG9hc3QgYXMgYW55O1xyXG4gICAgICAgIHN3aXRjaCAodG9hc3QudHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdwcmltYXJ5JzpcclxuICAgICAgICAgICAgICAgIHYuY3NzID0gJ2JnLXByaW1hcnkgdGV4dC13aGl0ZSc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XHJcbiAgICAgICAgICAgICAgICB2LmNzcyA9ICdiZy1zdWNjZXNzIHRleHQtd2hpdGUnO1xyXG4gICAgICAgICAgICAgICAgLy8gdi5pY29uQ29sb3IgPSAndGV4dC0tYWNjZW50LWdyZWVuJztcclxuICAgICAgICAgICAgICAgIC8vIHYuYm9yZGVyQ29sb3IgPSAnYm9yZGVyLS1hY2NlbnQtZ3JlZW4nO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2Rhbmdlcic6XHJcbiAgICAgICAgICAgICAgICB2LmNzcyA9ICdiZy1kYW5nZXIgdGV4dC13aGl0ZSc7XHJcbiAgICAgICAgICAgICAgICAvLyB2Lmljb25Db2xvciA9ICd0ZXh0LS1hY2NlbnQtcmVkJztcclxuICAgICAgICAgICAgICAgIC8vIHYuYm9yZGVyQ29sb3IgPSAnYm9yZGVyLS1hY2NlbnQtcmVkJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd3YXJuaW5nJzpcclxuICAgICAgICAgICAgICAgIHYuY3NzID0gJ2JnLXdhcm5pbmcgdGV4dC1kYXJrJztcclxuICAgICAgICAgICAgICAgIC8vIHYuaWNvbkNvbG9yID0gJ3RleHQtLWFjY2VudC15ZWxsb3cnO1xyXG4gICAgICAgICAgICAgICAgLy8gdi5ib3JkZXJDb2xvciA9ICdib3JkZXItLWFjY2VudC15ZWxsb3cnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2luZm8nOlxyXG4gICAgICAgICAgICAgICAgdi5jc3MgPSAnYmctaW5mbyB0ZXh0LXdoaXRlJztcclxuICAgICAgICAgICAgICAgIC8vIHYuaWNvbkNvbG9yID0gJ3RleHQtLWFjY2VudC1ibHVlJztcclxuICAgICAgICAgICAgICAgIC8vIHYuYm9yZGVyQ29sb3IgPSAnYm9yZGVyLS1hY2NlbnQtYmx1ZSc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbGlnaHQnOlxyXG4gICAgICAgICAgICAgICAgdi5jc3MgPSAnYmctbGlnaHQgdGV4dC1kYXJrJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdkYXJrJzpcclxuICAgICAgICAgICAgICAgIHYuY3NzID0gJ2JnLWRhcmsgdGV4dC13aGl0ZSc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcblxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdi5jc3MgPSAnYmctc2Vjb25kYXJ5IHRleHQtd2hpdGUnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwidG9hc3QtY29udGFpbmVyIHBvc2l0aW9uLWZpeGVkIHRvcC0wIGVuZC0wIHAtM1wiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgdG9hc3Qgb2YgdG9hc3RzXCIgY2xhc3M9XCJ0b2FzdCBmYWRlIHNob3cgYm9yZGVyLTAge3sgdG9hc3QuY3NzIH19XCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCIgW2F0dHIuZGF0YS1icy1kZWxheV09XCJfZGVsYXlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMVwiICpuZ0lmPVwiaWNvbiAmJiB0b2FzdC5pY29uXCI+PGkgY2xhc3M9XCJ7eyB0b2FzdC5pY29uIH19XCI+PC9pPjwvc3Bhbj5cclxuICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cIm1lLWF1dG9cIiAqbmdJZj1cInRvYXN0LnRpdGxlXCI+e3sgdG9hc3QudGl0bGUgfX08L3N0cm9uZz5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2UgbXMtYXV0byBtZS0yXCIgZGF0YS1icy1kaXNtaXNzPVwidG9hc3RcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwicmVtb3ZlKHRvYXN0KVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1ib2R5XCI+XHJcbiAgICAgICAgICAgIHt7IHRvYXN0Lm1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSA8ZGl2ICpuZ0Zvcj1cImxldCB0b2FzdCBvZiB0b2FzdHNcIiBjbGFzcz1cInRvYXN0IGZhZGUgc2hvd1wiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIGFyaWEtYXRvbWljPVwidHJ1ZVwiIGRhdGEtYnMtZGVsYXk9XCIzMDAwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWJvZHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHBlLTEgYm9yZGVyLXN0YXJ0IGJvcmRlci04IHt7dG9hc3QuYm9yZGVyQ29sb3J9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidG9hc3QuaWNvblwiIGNsYXNzPVwiaWNvbiBmbGV4LXNocmluay0wIHt7dG9hc3QuaWNvbkNvbG9yfX1cIj48aSBjbGFzcz1cInt7dG9hc3QuaWNvbn19XCI+PC9pPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b2FzdC50aXRsZVwiPjxoNT57e3RvYXN0LnRpdGxlfX08L2g1PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHRvYXN0Lm1lc3NhZ2UgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlIG1zLWF1dG8gbWUtMlwiIGRhdGEtYnMtZGlzbWlzcz1cInRvYXN0XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cInJlbW92ZSh0b2FzdClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuPC9kaXY+Il19
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2FsZXJ0L3RvYXN0L3RvYXN0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9hbGVydC90b2FzdC90b2FzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFTL0MsTUFBTSxPQUFPLFFBQVE7SUFDakIsSUFDSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFjO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQVVELFlBQTZCLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBVHZELFdBQU0sR0FBVyxJQUFJLENBQUM7UUFHYixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBRXJCLFdBQU0sR0FBVSxFQUFFLENBQUM7SUFJd0MsQ0FBQztJQUU1RCxRQUFRO1FBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEs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QUssTUFBTTtnQkFDUCxDQUFDLENBQUMsR0FBRyxHQUFHLG9CQUFvQixDQUFDO2dCQUM3QixNQUFNO1lBR1Y7Z0JBQ0ksQ0FBQyxDQUFDLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQztnQkFDbEMsTUFBTTtRQUNkLENBQUM7SUFDTCxDQUFDOzhHQTdIUSxRQUFRO2tHQUFSLFFBQVEsK0dDZnJCLHF0REEyQk0sNEdEZFEsWUFBWTs7MkZBRWIsUUFBUTtrQkFQcEIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sV0FBVyxXQUdaLENBQUMsWUFBWSxDQUFDO2lGQUluQixLQUFLO3NCQURSLEtBQUs7Z0JBYUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJvb3RzdHJhcEhlbHBlciwgQ29udmVydCwgTWF0aEhlbHBlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgVG9hc3QgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTnVtYmVySW5wdXQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHNlbGVjdG9yOiAnemVrLXRvYXN0JyxcclxuICAgIHN0eWxlVXJsczogWycuL3RvYXN0LmNzcyddLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0Lmh0bWwnLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFpla1RvYXN0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBkZWxheSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kZWxheTtcclxuICAgIH1cclxuICAgIHNldCBkZWxheSh2OiBOdW1iZXJJbnB1dCkge1xyXG4gICAgICAgIGNvbnN0IHRtcCA9IE1hdGhIZWxwZXIuY2xhbXAoQ29udmVydC50b051bWJlcih2KSB8fCAwLCAxMCwgMzYwMDAwMCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX2RlbGF5ICE9PSB0bXApIHtcclxuICAgICAgICAgICAgdGhpcy5fZGVsYXkgPSB0bXA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgX2RlbGF5OiBudW1iZXIgPSAzMDAwO1xyXG4gICAgXHJcbiAgICBcclxuICAgIEBJbnB1dCgpIGljb24gPSB0cnVlO1xyXG5cclxuICAgIHRvYXN0czogYW55W10gPSBbXTtcclxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgX3RpbWVvdXQ6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLmFsZXJ0U2VydmljZS5nZXRUb2FzdCgpLnN1YnNjcmliZSgodG9hc3Q6IFRvYXN0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdG9hc3QpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNsZWFyIGFsZXJ0cyB3aGVuIGFuIGVtcHR5IGFsZXJ0IGlzIHJlY2VpdmVkXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0cyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBhZGQgdG9hc3QgdG8gYXJyYXlcclxuICAgICAgICAgICAgdGhpcy5jc3NJbml0KHRvYXN0KTtcclxuICAgICAgICAgICAgdGhpcy50b2FzdHMudW5zaGlmdCh0b2FzdCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl90aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZSh0b2FzdCk7XHJcbiAgICAgICAgICAgICAgICAvLyBsZXQgdG9hc3RFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGB0b2FzdC0ke3RvYXN0LmlkfWApO1xyXG4gICAgICAgICAgICAgICAgLy8gbGV0IHQgPSBuZXcgYm9vdHN0cmFwLlRvYXN0KHRvYXN0RWwpO1xyXG4gICAgICAgICAgICAgICAgLy8gdC5zaG93KCk7XHJcbiAgICAgICAgICAgIH0sIHRoaXMuX2RlbGF5KTtcclxuXHJcblxyXG4gICAgICAgICAgICAvLyBsZXQgdG9hc3RFbExpc3QgPSBbXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50b2FzdCcpKVxyXG4gICAgICAgICAgICAvLyBsZXQgdG9hc3RMaXN0ID0gdG9hc3RFbExpc3QubWFwKGZ1bmN0aW9uICh0b2FzdEVsKSB7XHJcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4gbmV3IGJvb3RzdHJhcC5Ub2FzdCh0b2FzdEVsKVxyXG4gICAgICAgICAgICAvLyB9KVxyXG4gICAgICAgICAgICAvLyB0b2FzdExpc3QuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIHQuc2hvdygpO1xyXG4gICAgICAgICAgICAvLyB9KTtcclxuICAgICAgICB9KTtcclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jbGVhclRpbWVvdXQoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuY2xlYXIoKTtcclxuICAgIH1cclxuICAgIHJlbW92ZSh0b2FzdDogVG9hc3QpIHtcclxuICAgICAgICB0aGlzLnRvYXN0cyA9IHRoaXMudG9hc3RzLmZpbHRlcih4ID0+IHggIT09IHRvYXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclRpbWVvdXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RpbWVvdXQpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpO1xyXG4gICAgICAgICAgICB0aGlzLl90aW1lb3V0ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNzc0luaXQodG9hc3Q6IFRvYXN0KSB7XHJcbiAgICAgICAgaWYgKCF0b2FzdCB8fCAhdG9hc3QudHlwZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaWNvbiAmJiAhdG9hc3QuaWNvbikge1xyXG4gICAgICAgICAgICB0b2FzdC5pY29uID0gQm9vdHN0cmFwSGVscGVyLmNzc0FsZXJ0SWNvbih0b2FzdC50eXBlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2ID0gdG9hc3QgYXMgYW55O1xyXG4gICAgICAgIHN3aXRjaCAodG9hc3QudHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdwcmltYXJ5JzpcclxuICAgICAgICAgICAgICAgIHYuY3NzID0gJ2JnLXByaW1hcnkgdGV4dC13aGl0ZSc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XHJcbiAgICAgICAgICAgICAgICB2LmNzcyA9ICdiZy1zdWNjZXNzIHRleHQtd2hpdGUnO1xyXG4gICAgICAgICAgICAgICAgLy8gdi5pY29uQ29sb3IgPSAndGV4dC0tYWNjZW50LWdyZWVuJztcclxuICAgICAgICAgICAgICAgIC8vIHYuYm9yZGVyQ29sb3IgPSAnYm9yZGVyLS1hY2NlbnQtZ3JlZW4nO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2Rhbmdlcic6XHJcbiAgICAgICAgICAgICAgICB2LmNzcyA9ICdiZy1kYW5nZXIgdGV4dC13aGl0ZSc7XHJcbiAgICAgICAgICAgICAgICAvLyB2Lmljb25Db2xvciA9ICd0ZXh0LS1hY2NlbnQtcmVkJztcclxuICAgICAgICAgICAgICAgIC8vIHYuYm9yZGVyQ29sb3IgPSAnYm9yZGVyLS1hY2NlbnQtcmVkJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd3YXJuaW5nJzpcclxuICAgICAgICAgICAgICAgIHYuY3NzID0gJ2JnLXdhcm5pbmcgdGV4dC1kYXJrJztcclxuICAgICAgICAgICAgICAgIC8vIHYuaWNvbkNvbG9yID0gJ3RleHQtLWFjY2VudC15ZWxsb3cnO1xyXG4gICAgICAgICAgICAgICAgLy8gdi5ib3JkZXJDb2xvciA9ICdib3JkZXItLWFjY2VudC15ZWxsb3cnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2luZm8nOlxyXG4gICAgICAgICAgICAgICAgdi5jc3MgPSAnYmctaW5mbyB0ZXh0LXdoaXRlJztcclxuICAgICAgICAgICAgICAgIC8vIHYuaWNvbkNvbG9yID0gJ3RleHQtLWFjY2VudC1ibHVlJztcclxuICAgICAgICAgICAgICAgIC8vIHYuYm9yZGVyQ29sb3IgPSAnYm9yZGVyLS1hY2NlbnQtYmx1ZSc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbGlnaHQnOlxyXG4gICAgICAgICAgICAgICAgdi5jc3MgPSAnYmctbGlnaHQgdGV4dC1kYXJrJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdkYXJrJzpcclxuICAgICAgICAgICAgICAgIHYuY3NzID0gJ2JnLWRhcmsgdGV4dC13aGl0ZSc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcblxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdi5jc3MgPSAnYmctc2Vjb25kYXJ5IHRleHQtd2hpdGUnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwidG9hc3QtY29udGFpbmVyIHBvc2l0aW9uLWZpeGVkIHRvcC0wIGVuZC0wIHAtM1wiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgdG9hc3Qgb2YgdG9hc3RzXCIgY2xhc3M9XCJ0b2FzdCBmYWRlIHNob3cgYm9yZGVyLTAge3sgdG9hc3QuY3NzIH19XCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCIgW2F0dHIuZGF0YS1icy1kZWxheV09XCJfZGVsYXlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMVwiICpuZ0lmPVwiaWNvbiAmJiB0b2FzdC5pY29uXCI+PGkgY2xhc3M9XCJ7eyB0b2FzdC5pY29uIH19XCI+PC9pPjwvc3Bhbj5cclxuICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cIm1lLWF1dG9cIiAqbmdJZj1cInRvYXN0LnRpdGxlXCI+e3sgdG9hc3QudGl0bGUgfX08L3N0cm9uZz5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2UgbXMtYXV0byBtZS0yXCIgZGF0YS1icy1kaXNtaXNzPVwidG9hc3RcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwicmVtb3ZlKHRvYXN0KVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1ib2R5XCI+XHJcbiAgICAgICAgICAgIHt7IHRvYXN0Lm1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSA8ZGl2ICpuZ0Zvcj1cImxldCB0b2FzdCBvZiB0b2FzdHNcIiBjbGFzcz1cInRvYXN0IGZhZGUgc2hvd1wiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIGFyaWEtYXRvbWljPVwidHJ1ZVwiIGRhdGEtYnMtZGVsYXk9XCIzMDAwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvYXN0LWJvZHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHBlLTEgYm9yZGVyLXN0YXJ0IGJvcmRlci04IHt7dG9hc3QuYm9yZGVyQ29sb3J9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidG9hc3QuaWNvblwiIGNsYXNzPVwiaWNvbiBmbGV4LXNocmluay0wIHt7dG9hc3QuaWNvbkNvbG9yfX1cIj48aSBjbGFzcz1cInt7dG9hc3QuaWNvbn19XCI+PC9pPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b2FzdC50aXRsZVwiPjxoNT57e3RvYXN0LnRpdGxlfX08L2g1PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHRvYXN0Lm1lc3NhZ2UgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlIG1zLWF1dG8gbWUtMlwiIGRhdGEtYnMtZGlzbWlzcz1cInRvYXN0XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cInJlbW92ZSh0b2FzdClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuPC9kaXY+Il19
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { Convert } from '../../utils';
|
|
2
|
+
import { Convert, MathHelper } from '../../utils';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
|
-
function clamp(v, min = 0, max = 100) {
|
|
7
|
-
return Math.max(min, Math.min(max, v));
|
|
8
|
-
}
|
|
9
6
|
export class ZekProgress {
|
|
10
7
|
constructor() {
|
|
11
8
|
this._value = 0;
|
|
@@ -21,7 +18,7 @@ export class ZekProgress {
|
|
|
21
18
|
return this._value;
|
|
22
19
|
}
|
|
23
20
|
set value(v) {
|
|
24
|
-
const tmp = clamp(Convert.toNumber(v) || 0);
|
|
21
|
+
const tmp = MathHelper.clamp(Convert.toNumber(v) || 0, 0, 100);
|
|
25
22
|
if (this._value !== tmp) {
|
|
26
23
|
this._value = tmp;
|
|
27
24
|
}
|
|
@@ -97,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
97
94
|
}], background: [{
|
|
98
95
|
type: Input
|
|
99
96
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL3Byb2dyZXNzL3Byb2dyZXNzLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9wcm9ncmVzcy9wcm9ncmVzcy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBYS9DLE1BQU0sT0FBTyxXQUFXO0lBVHhCO1FBb0JZLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFVbkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVNuQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBY2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFVakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQVNsQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQVk3QixZQUFPLEdBQWtCLElBQUksQ0FBQztRQVU5QixnQkFBVyxHQUFlLFNBQVMsQ0FBQztLQUMvQztJQXJGRyxJQUNJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLENBQWM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLENBQUM7SUFDTCxDQUFDO0lBSUQsSUFDSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxDQUFlO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFHRCxJQUNJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLENBQWU7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUdELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN2RCxDQUFDO0lBR0QsSUFDSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxDQUFlO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFJRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLENBQWU7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUdELElBQ0ksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsQ0FBNEI7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFLRCxJQUNJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLENBQWM7UUFDckIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBSUQsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxDQUFhO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBcEZRLFdBQVc7a0dBQVgsV0FBVywwUENoQnhCLCtoQkFXTSwrRURFRSxZQUFZOzsyRkFHUCxXQUFXO2tCQVR2QixTQUFTO2lDQUNNLElBQUksWUFDTixjQUFjLFdBR2Y7d0JBQ0wsWUFBWTtxQkFDZjs4QkFJRyxLQUFLO3NCQURSLEtBQUs7Z0JBY0YsU0FBUztzQkFEWixLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSztnQkFlRixPQUFPO3NCQURWLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSztnQkFZRixNQUFNO3NCQURULEtBQUs7Z0JBWUYsVUFBVTtzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIE51bWJlcklucHV0IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IENvbnZlcnQsIE1hdGhIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG50eXBlIEJhY2tncm91bmQgPSAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm5pbmcnIHwgJ2luZm8nIHwgJ2xpZ2h0JyB8ICdkYXJrJyB8ICdib2R5JyB8ICd3aGl0ZScgfCAndHJhbnNwYXJlbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgc2VsZWN0b3I6ICd6ZWstcHJvZ3Jlc3MnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2dyZXNzLmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFpla1Byb2dyZXNzIHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgdmFsdWUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzZXQgdmFsdWUodjogTnVtYmVySW5wdXQpIHtcclxuICAgICAgICBjb25zdCB0bXAgPSBNYXRoSGVscGVyLmNsYW1wKENvbnZlcnQudG9OdW1iZXIodikgfHwgMCwgMCwgMTAwKTtcclxuICAgICAgICBpZiAodGhpcy5fdmFsdWUgIT09IHRtcCkge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRtcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF92YWx1ZTogbnVtYmVyID0gMDtcclxuXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93VmFsdWUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dWYWx1ZTtcclxuICAgIH1cclxuICAgIHNldCBzaG93VmFsdWUodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd1ZhbHVlID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX3Nob3dWYWx1ZSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2hvd1RpdGxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93VGl0bGU7XHJcbiAgICB9XHJcbiAgICBzZXQgc2hvd1RpdGxlKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX3Nob3dUaXRsZSA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9zaG93VGl0bGUgPSB0cnVlO1xyXG5cclxuICAgIGdldCBfdGl0bGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dUaXRsZSA/IGAke3RoaXMuX3ZhbHVlfSAlYCA6IG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc3RyaXBlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3RyaXBlZDtcclxuICAgIH1cclxuICAgIHNldCBzdHJpcGVkKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX3N0cmlwZWQgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc3RyaXBlZCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGFuaW1hdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hbmltYXRlZDtcclxuICAgIH1cclxuICAgIHNldCBhbmltYXRlZCh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9hbmltYXRlZCA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9hbmltYXRlZCA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbGFiZWwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xyXG4gICAgfVxyXG4gICAgc2V0IGxhYmVsKHY6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9sYWJlbCA9IHYgPyB2IDogbnVsbDtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2xhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaGVpZ2h0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBzZXQgaGVpZ2h0KHY6IE51bWJlcklucHV0KSB7XHJcbiAgICAgICAgY29uc3QgdG1wID0gQ29udmVydC50b051bWJlcih2KSB8fCAwO1xyXG4gICAgICAgIHRoaXMuX2hlaWdodCA9IHRtcCA+IDAgPyB0bXAgOiBudWxsO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBiYWNrZ3JvdW5kKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9iYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG4gICAgc2V0IGJhY2tncm91bmQodjogQmFja2dyb3VuZCkge1xyXG4gICAgICAgIHRoaXMuX2JhY2tncm91bmQgPSB2O1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfYmFja2dyb3VuZDogQmFja2dyb3VuZCA9ICdwcmltYXJ5JztcclxufSIsIjxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCIgW3RpdGxlXT1cIl90aXRsZVwiID5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXIgYmcte3tiYWNrZ3JvdW5kfX1cIiByb2xlPVwicHJvZ3Jlc3NiYXJcIlxyXG4gICAgICAgIFtjbGFzcy5wcm9ncmVzcy1iYXItc3RyaXBlZF09XCJzdHJpcGVkIHx8IGFuaW1hdGVkXCJcclxuICAgICAgICBbY2xhc3MucHJvZ3Jlc3MtYmFyLWFuaW1hdGVkXT1cImFuaW1hdGVkXCJcclxuICAgICAgICBbc3R5bGUud2lkdGguJV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJ2YWx1ZVwiXHJcbiAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxyXG4gICAgICAgIGFyaWEtdmFsdWVtYXg9XCIxMDBcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1ZhbHVlXCI+e3t2YWx1ZX19JTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -26,32 +26,24 @@ export class AuthService {
|
|
|
26
26
|
}
|
|
27
27
|
_starTimer() {
|
|
28
28
|
this._stopTimer();
|
|
29
|
-
let interval = this.getExpired().getTime() - new Date().getTime();
|
|
29
|
+
let interval = this.getExpired().getTime() - new Date().getTime() + 1000;
|
|
30
30
|
if (interval < 1000)
|
|
31
31
|
interval = 1000;
|
|
32
32
|
if (interval > 0 && this._user) {
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
33
|
+
this._timerId = setTimeout(() => {
|
|
34
|
+
this._onTick();
|
|
35
35
|
}, interval);
|
|
36
|
-
if (this._user) {
|
|
37
|
-
this._timerId = setInterval(() => {
|
|
38
|
-
this._onTick();
|
|
39
|
-
}, 1000);
|
|
40
|
-
}
|
|
41
36
|
}
|
|
42
37
|
}
|
|
43
38
|
_stopTimer() {
|
|
44
39
|
if (typeof this._timerId === 'number') {
|
|
45
|
-
|
|
40
|
+
clearTimeout(this._timerId);
|
|
46
41
|
}
|
|
47
42
|
}
|
|
48
43
|
_onTick() {
|
|
49
44
|
const newValue = this._isAuthenticated;
|
|
50
|
-
if (this._auth !== newValue) {
|
|
51
|
-
this.
|
|
52
|
-
if (!newValue) {
|
|
53
|
-
this.logout();
|
|
54
|
-
}
|
|
45
|
+
if (this._auth !== newValue && !newValue) {
|
|
46
|
+
this.logout();
|
|
55
47
|
}
|
|
56
48
|
}
|
|
57
49
|
_starRefreshTokenTimer() {
|
|
@@ -109,11 +101,13 @@ export class AuthService {
|
|
|
109
101
|
}
|
|
110
102
|
}
|
|
111
103
|
this._user = user;
|
|
112
|
-
//if
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
104
|
+
// if (!this._auth) {
|
|
105
|
+
// this._auth = true;
|
|
106
|
+
// this.emitOnSignedIn();
|
|
107
|
+
// }
|
|
108
|
+
this._auth = true;
|
|
109
|
+
this.emitOnSignedIn();
|
|
110
|
+
//restart timers for new timeouts
|
|
117
111
|
this._starTimer();
|
|
118
112
|
this._starRefreshTokenTimer();
|
|
119
113
|
}
|
|
@@ -197,4 +191,4 @@ export class AuthService {
|
|
|
197
191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AuthService, decorators: [{
|
|
198
192
|
type: Injectable
|
|
199
193
|
}], ctorParameters: () => [] });
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUErQixPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFHeEQsTUFBTSxPQUFPLFdBQVc7YUFDYixhQUFRLEdBQUcsTUFBTSxBQUFULENBQVU7YUFDbEIsMkJBQXNCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEFBQWpCLENBQWtCO0lBTy9DO1FBTFEsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFVBQUssR0FBcUIsSUFBSSxDQUFDO1FBS25DLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDO0lBR0QsSUFBWSxnQkFBZ0I7UUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ2pDLE9BQU8sSUFBSSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUlELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFJTyxVQUFVO1FBQ2QsSUFB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SSxDQUFDO2dCQUNwQixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN6QixNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksS0FBSztvQkFDTCxPQUFPLElBQUksQ0FBQztZQUNwQixDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxJQUFTO1FBQ3ZCLHVEQUF1RDtRQUN2RCxtQ0FBbUM7UUFDbkMsOENBQThDO1FBRTlDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVyRCxvQ0FBb0M7UUFDcEMsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQzs4R0FqUFEsV0FBVztrSEFBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEtleVBhaXIsIExvZ2luVG9rZW4sIExvZ2luVXNlciB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIsIE9iamVjdEhlbHBlciwgU3RvcmFnZUhlbHBlciB9IGZyb20gJy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQml0d2lzZUhlbHBlciB9IGZyb20gJy4uL3V0aWxzL2JpdHdpc2UtaGVscGVyJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICAgIHN0YXRpYyBVU0VSX0tFWSA9ICd1c2VyJztcclxuICAgIHN0YXRpYyBSRUZSRVNIX1RPS0VOX0lOVEVSVkFMID0gMTUgKiA2MCAqIDEwMDA7XHJcblxyXG4gICAgcHJpdmF0ZSBfYXV0aCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfdXNlcjogTG9naW5Vc2VyIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIF90aW1lcklkOiBhbnk7XHJcbiAgICBwcml2YXRlIF9yZWZyZXNoVGltZXJJZDogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIGNvbnN0IHVzZXIgPSBTdG9yYWdlSGVscGVyLmdldChBdXRoU2VydmljZS5VU0VSX0tFWSk7XHJcbiAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5pdCh1c2VyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgZ2V0IF9pc0F1dGhlbnRpY2F0ZWQoKSB7XHJcbiAgICAgICAgY29uc3QgZXhwaXJlZCA9IHRoaXMuZ2V0RXhwaXJlZCgpXHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCkgPCBleHBpcmVkO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgZ2V0IHVzZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXI7XHJcbiAgICB9XHJcbiAgICBnZXQgaXNBdXRoZW50aWNhdGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfc3RhclRpbWVyKCkge1xyXG4gICAgICAgIHRoaXMuX3N0b3BUaW1lcigpOyAgICAgIFxyXG5cclxuICAgICAgICBsZXQgaW50ZXJ2YWwgPSB0aGlzLmdldEV4cGlyZWQoKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICBpZiAoaW50ZXJ2YWwgPCAxMDAwKVxyXG4gICAgICAgICAgICBpbnRlcnZhbCA9IDEwMDA7XHJcbiAgICAgICAgaWYgKGludGVydmFsID4gMCAmJiB0aGlzLl91c2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hUaW1lcklkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0T25SZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICAgICAgfSwgaW50ZXJ2YWwpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fdXNlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdGltZXJJZCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vblRpY2soKTtcclxuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc3RvcFRpbWVyKCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fdGltZXJJZCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl90aW1lcklkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfb25UaWNrKCkge1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5faXNBdXRoZW50aWNhdGVkO1xyXG4gICAgICAgIGlmICh0aGlzLl9hdXRoICE9PSBuZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9hdXRoID0gbmV3VmFsdWU7XHJcbiAgICAgICAgICAgIGlmICghbmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9nb3V0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgX3N0YXJSZWZyZXNoVG9rZW5UaW1lcigpIHtcclxuICAgICAgICB0aGlzLl9zdG9wUmVmcmVzaFRva2VuVGltZXIoKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBBdXRoU2VydmljZS5SRUZSRVNIX1RPS0VOX0lOVEVSVkFMO1xyXG4gICAgICAgIGlmIChpbnRlcnZhbCA+IDAgJiYgdGhpcy5fdXNlcikge1xyXG4gICAgICAgICAgICB0aGlzLl9yZWZyZXNoVGltZXJJZCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW1pdE9uUmVmcmVzaFRva2VuKCk7XHJcbiAgICAgICAgICAgIH0sIGludGVydmFsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9zdG9wUmVmcmVzaFRva2VuVGltZXIoKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9yZWZyZXNoVGltZXJJZCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9yZWZyZXNoVGltZXJJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZW1pdE9uUmVmcmVzaFRva2VuKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25SZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIGVtaXRPblNpZ25lZEluKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9vblNpZ25lZEluU3ViamVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vblNpZ25lZEluU3ViamVjdC5uZXh0KHRoaXMuX2F1dGgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vblNpZ25lZEluU3ViamVjdD86IFN1YmplY3Q8Ym9vbGVhbj47Ly9CZWhhdmlvclN1YmplY3QgaXMgZm9yIGluaXRpYWwgZmlydCB2YWx1ZSA9IGZhbHNlXHJcbiAgICBwcml2YXRlIF9vblNpZ25lZEluT2JzZXJ2YWJsZT86IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBnZXQgb25TaWduZWRJbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBpZiAoIXRoaXMuX29uU2lnbmVkSW5TdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTsvLyh0aGlzLmlzQXV0aGVudGljYXRlZCk7XHJcbiAgICAgICAgICAgIHRoaXMuX29uU2lnbmVkSW5PYnNlcnZhYmxlID0gdGhpcy5fb25TaWduZWRJblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX29uU2lnbmVkSW5PYnNlcnZhYmxlKVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJfb25FeGVjdXRlT2JzZXJ2YWJsZSBpcyB1bmRlZmluZWRcIik7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9vblNpZ25lZEluT2JzZXJ2YWJsZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfb25SZWZyZXNoVG9rZW5TdWJqZWN0PzogU3ViamVjdDx2b2lkPjtcclxuICAgIHByaXZhdGUgX29uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZT86IE9ic2VydmFibGU8dm9pZD47XHJcbiAgICBnZXQgb25SZWZyZXNoVG9rZW4oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25SZWZyZXNoVG9rZW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgICAgICAgICAgdGhpcy5fb25SZWZyZXNoVG9rZW5PYnNlcnZhYmxlID0gdGhpcy5fb25SZWZyZXNoVG9rZW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9vblJlZnJlc2hUb2tlbk9ic2VydmFibGUpXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIm9uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZSBpcyB1bmRlZmluZWRcIik7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9vblJlZnJlc2hUb2tlbk9ic2VydmFibGU7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBsb2dpbih1c2VyOiBMb2dpblRva2VuIHwgTG9naW5Vc2VyKSB7XHJcbiAgICAgICAgU3RvcmFnZUhlbHBlci5zZXQoQXV0aFNlcnZpY2UuVVNFUl9LRVksIHVzZXIpO1xyXG4gICAgICAgIHRoaXMuX2luaXQodXNlcik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9pbml0KHVzZXI6IExvZ2luVG9rZW4gfCBMb2dpblVzZXIpIHtcclxuICAgICAgICBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAvL2NvbnZlcnQgc3RyaW5nIHRvIGxvY2FsIGRhdGUvdGltZVxyXG4gICAgICAgICAgICB1c2VyLmV4cGlyZWQgPSBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKHVzZXIuZXhwaXJlZCkgPyBEYXRlSGVscGVyLnBhcnNlRGF0ZSh1c2VyLmV4cGlyZWQpIDogdXNlci5leHBpcmVkO1xyXG5cclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodXNlci5yb2xlcykpIHtcclxuICAgICAgICAgICAgICAgIHVzZXIucm9sZXMgPSB1c2VyLnJvbGVzLm1hcChmdW5jdGlvbiAoZTogYW55KSB7IHJldHVybiBlID8gZS50b1VwcGVyQ2FzZSgpIDogZTsgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fdXNlciA9IHVzZXIgYXMgYW55O1xyXG4gICAgICAgIC8vaWYgb2xkIHZhbHVlIHdhcyBmYWxzZSBhbmQgd2Ugc2V0IHRydWUgdGhlbiB3ZSBuZWVkIHRvIGVtaXRcclxuICAgICAgICBpZiAoIXRoaXMuX2F1dGgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0aCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdE9uU2lnbmVkSW4oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3N0YXJUaW1lcigpO1xyXG4gICAgICAgIHRoaXMuX3N0YXJSZWZyZXNoVG9rZW5UaW1lcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvZ291dCgpIHtcclxuICAgICAgICBTdG9yYWdlSGVscGVyLnNldChBdXRoU2VydmljZS5VU0VSX0tFWSwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5fdXNlciA9IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuX2F1dGgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0aCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmVtaXRPblNpZ25lZEluKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdG9wVGltZXIoKTtcclxuICAgICAgICB0aGlzLl9zdG9wUmVmcmVzaFRva2VuVGltZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB1c2VyIGV4cGlyeSBkYXRlLiBpZiB1c2VyIGlzIG51bGwgcmV0dXJucyBtaW4gSlMgZGF0ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0RXhwaXJlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy51c2VyPy5leHBpcmVkID8/IG5ldyBEYXRlKDApO1xyXG4gICAgfVxyXG5cclxuICAgIGhhc1Blcm1pc3Npb24ocGVybWlzc2lvbj86IEtleVBhaXI8bnVtYmVyLCBudW1iZXI+IHwgbnVtYmVyIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghcGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBrZXkgPSAwO1xyXG4gICAgICAgIGxldCB2YWx1ZTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodHlwZW9mIHBlcm1pc3Npb24gPT09ICdudW1iZXInIHx8IHR5cGVvZiBwZXJtaXNzaW9uID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBrZXkgPSArcGVybWlzc2lvbjtcclxuICAgICAgICB9Ly8gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uKSkge1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgcGVybWlzc2lvbiA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgaWYgKCFwZXJtaXNzaW9uLmtleSlcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICAgICAga2V5ID0gcGVybWlzc2lvbi5rZXk7XHJcbiAgICAgICAgICAgIHZhbHVlID0gcGVybWlzc2lvbi52YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmhhc1Blcm1pc3Npb25zKFtrZXldLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGhhc1Blcm1pc3Npb25zKHBlcm1pc3Npb25zPzogQXJyYXk8bnVtYmVyPiwgdmFsdWU/OiBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9ucyB8fCBwZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyO1xyXG4gICAgICAgIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXIgPyB1c2VyLnBlcm1pc3Npb25zIDogbnVsbDtcclxuICAgICAgICBpZiAoIXVzZXJQZXJtaXNzaW9ucykge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcCA9IHBlcm1pc3Npb25zW2ldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSB1c2VyUGVybWlzc2lvbnNbcF07XHJcbiAgICAgICAgICAgICAgICBpZiAoZm91bmQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gQml0d2lzZUhlbHBlci5oYXNGbGFnKGZvdW5kLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1Blcm1pc3Npb24pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcCA9IHBlcm1pc3Npb25zW2ldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSB1c2VyUGVybWlzc2lvbnNbcF07XHJcbiAgICAgICAgICAgICAgICBpZiAoZm91bmQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaGFzRGF0YVBlcm1pc3Npb24oZGF0YTogYW55KSB7XHJcbiAgICAgICAgLy9pZiAoZGF0YSA9PT0gdW5kZWZpbmVkIHx8IGRhdGEgPT09IG51bGwpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIC8vIGNvbnN0IGFsbG93ZWRSb2xlcyA9IGRhdGEucm9sZXM7XHJcbiAgICAgICAgLy8gbGV0IGlzSW5Sb2xlID0gdGhpcy5pc0luUm9sZShhbGxvd2VkUm9sZXMpO1xyXG5cclxuICAgICAgICBjb25zdCBwZXJtaXNzaW9uID0gZGF0YS5wZXJtaXNzaW9uO1xyXG5cclxuICAgICAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gdGhpcy5oYXNQZXJtaXNzaW9uKHBlcm1pc3Npb24pO1xyXG5cclxuICAgICAgICAvLyByZXR1cm4gaXNJblJvbGUgJiYgaGFzUGVybWlzc2lvbjtcclxuICAgICAgICByZXR1cm4gaGFzUGVybWlzc2lvbjtcclxuICAgIH1cclxufSJdfQ==
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUErQixPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFHeEQsTUFBTSxPQUFPLFdBQVc7YUFDYixhQUFRLEdBQUcsTUFBTSxBQUFULENBQVU7YUFDbEIsMkJBQXNCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEFBQWpCLENBQWtCO0lBTy9DO1FBTFEsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFVBQUssR0FBcUIsSUFBSSxDQUFDO1FBS25DLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDO0lBR0QsSUFBWSxnQkFBZ0I7UUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ2pDLE9BQU8sSUFBSSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUlELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxVQUFVO1FBQ2QsSUFB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QUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLEtBQUs7b0JBQ0wsT0FBTyxJQUFJLENBQUM7WUFDcEIsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBR0QsaUJBQWlCLENBQUMsSUFBUztRQUN2Qix1REFBdUQ7UUFDdkQsbUNBQW1DO1FBQ25DLDhDQUE4QztRQUU5QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRW5DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckQsb0NBQW9DO1FBQ3BDLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7OEdBMU9RLFdBQVc7a0hBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBLZXlQYWlyLCBMb2dpblRva2VuLCBMb2dpblVzZXIgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEYXRlSGVscGVyLCBPYmplY3RIZWxwZXIsIFN0b3JhZ2VIZWxwZXIgfSBmcm9tICcuLi91dGlscyc7XHJcbmltcG9ydCB7IEJpdHdpc2VIZWxwZXIgfSBmcm9tICcuLi91dGlscy9iaXR3aXNlLWhlbHBlcic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XHJcbiAgICBzdGF0aWMgVVNFUl9LRVkgPSAndXNlcic7XHJcbiAgICBzdGF0aWMgUkVGUkVTSF9UT0tFTl9JTlRFUlZBTCA9IDE1ICogNjAgKiAxMDAwO1xyXG5cclxuICAgIHByaXZhdGUgX2F1dGggPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX3VzZXI6IExvZ2luVXNlciB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBfdGltZXJJZDogYW55O1xyXG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRpbWVySWQ6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBjb25zdCB1c2VyID0gU3RvcmFnZUhlbHBlci5nZXQoQXV0aFNlcnZpY2UuVVNFUl9LRVkpO1xyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXQodXNlcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIGdldCBfaXNBdXRoZW50aWNhdGVkKCkge1xyXG4gICAgICAgIGNvbnN0IGV4cGlyZWQgPSB0aGlzLmdldEV4cGlyZWQoKVxyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSgpIDwgZXhwaXJlZDtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGdldCB1c2VyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyO1xyXG4gICAgfVxyXG4gICAgZ2V0IGlzQXV0aGVudGljYXRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXV0aDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zdGFyVGltZXIoKSB7XHJcbiAgICAgICAgdGhpcy5fc3RvcFRpbWVyKCk7XHJcblxyXG4gICAgICAgIGxldCBpbnRlcnZhbCA9IHRoaXMuZ2V0RXhwaXJlZCgpLmdldFRpbWUoKSAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgMTAwMDtcclxuICAgICAgICBpZiAoaW50ZXJ2YWwgPCAxMDAwKVxyXG4gICAgICAgICAgICBpbnRlcnZhbCA9IDEwMDA7XHJcbiAgICAgICAgaWYgKGludGVydmFsID4gMCAmJiB0aGlzLl91c2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX29uVGljaygpO1xyXG4gICAgICAgICAgICB9LCBpbnRlcnZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc3RvcFRpbWVyKCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fdGltZXJJZCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVySWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vblRpY2soKSB7XHJcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLl9pc0F1dGhlbnRpY2F0ZWQ7XHJcbiAgICAgICAgaWYgKHRoaXMuX2F1dGggIT09IG5ld1ZhbHVlICYmICFuZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ291dCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfc3RhclJlZnJlc2hUb2tlblRpbWVyKCkge1xyXG4gICAgICAgIHRoaXMuX3N0b3BSZWZyZXNoVG9rZW5UaW1lcigpO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IEF1dGhTZXJ2aWNlLlJFRlJFU0hfVE9LRU5fSU5URVJWQUw7XHJcbiAgICAgICAgaWYgKGludGVydmFsID4gMCAmJiB0aGlzLl91c2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hUaW1lcklkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0T25SZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICAgICAgfSwgaW50ZXJ2YWwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX3N0b3BSZWZyZXNoVG9rZW5UaW1lcigpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3JlZnJlc2hUaW1lcklkID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuX3JlZnJlc2hUaW1lcklkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbWl0T25SZWZyZXNoVG9rZW4oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX29uUmVmcmVzaFRva2VuU3ViamVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgZW1pdE9uU2lnbmVkSW4oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0Lm5leHQodGhpcy5fYXV0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX29uU2lnbmVkSW5TdWJqZWN0PzogU3ViamVjdDxib29sZWFuPjsvL0JlaGF2aW9yU3ViamVjdCBpcyBmb3IgaW5pdGlhbCBmaXJ0IHZhbHVlID0gZmFsc2VcclxuICAgIHByaXZhdGUgX29uU2lnbmVkSW5PYnNlcnZhYmxlPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGdldCBvblNpZ25lZEluKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGlmICghdGhpcy5fb25TaWduZWRJblN1YmplY3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25TaWduZWRJblN1YmplY3QgPSBuZXcgU3ViamVjdDxib29sZWFuPigpOy8vKHRoaXMuaXNBdXRoZW50aWNhdGVkKTtcclxuICAgICAgICAgICAgdGhpcy5fb25TaWduZWRJbk9ic2VydmFibGUgPSB0aGlzLl9vblNpZ25lZEluU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fb25TaWduZWRJbk9ic2VydmFibGUpXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIl9vbkV4ZWN1dGVPYnNlcnZhYmxlIGlzIHVuZGVmaW5lZFwiKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uU2lnbmVkSW5PYnNlcnZhYmxlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIF9vblJlZnJlc2hUb2tlblN1YmplY3Q/OiBTdWJqZWN0PHZvaWQ+O1xyXG4gICAgcHJpdmF0ZSBfb25SZWZyZXNoVG9rZW5PYnNlcnZhYmxlPzogT2JzZXJ2YWJsZTx2b2lkPjtcclxuICAgIGdldCBvblJlZnJlc2hUb2tlbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgICAgICBpZiAoIXRoaXMuX29uUmVmcmVzaFRva2VuU3ViamVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgICAgICAgICB0aGlzLl9vblJlZnJlc2hUb2tlbk9ic2VydmFibGUgPSB0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX29uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZSlcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwib25SZWZyZXNoVG9rZW5PYnNlcnZhYmxlIGlzIHVuZGVmaW5lZFwiKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGxvZ2luKHVzZXI6IExvZ2luVG9rZW4gfCBMb2dpblVzZXIpIHtcclxuICAgICAgICBTdG9yYWdlSGVscGVyLnNldChBdXRoU2VydmljZS5VU0VSX0tFWSwgdXNlcik7XHJcbiAgICAgICAgdGhpcy5faW5pdCh1c2VyKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2luaXQodXNlcjogTG9naW5Ub2tlbiB8IExvZ2luVXNlcikge1xyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgIC8vY29udmVydCBzdHJpbmcgdG8gbG9jYWwgZGF0ZS90aW1lXHJcbiAgICAgICAgICAgIHVzZXIuZXhwaXJlZCA9IE9iamVjdEhlbHBlci5pc0RlZmluZWQodXNlci5leHBpcmVkKSA/IERhdGVIZWxwZXIucGFyc2VEYXRlKHVzZXIuZXhwaXJlZCkgOiB1c2VyLmV4cGlyZWQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh1c2VyLnJvbGVzKSkge1xyXG4gICAgICAgICAgICAgICAgdXNlci5yb2xlcyA9IHVzZXIucm9sZXMubWFwKGZ1bmN0aW9uIChlOiBhbnkpIHsgcmV0dXJuIGUgPyBlLnRvVXBwZXJDYXNlKCkgOiBlOyB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91c2VyID0gdXNlciBhcyBhbnk7XHJcblxyXG4gICAgICAgIC8vIGlmICghdGhpcy5fYXV0aCkge1xyXG4gICAgICAgIC8vICAgICB0aGlzLl9hdXRoID0gdHJ1ZTtcclxuICAgICAgICAvLyAgICAgdGhpcy5lbWl0T25TaWduZWRJbigpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICB0aGlzLl9hdXRoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVtaXRPblNpZ25lZEluKCk7XHJcblxyXG4gICAgICAgIC8vcmVzdGFydCB0aW1lcnMgZm9yIG5ldyB0aW1lb3V0c1xyXG4gICAgICAgIHRoaXMuX3N0YXJUaW1lcigpO1xyXG4gICAgICAgIHRoaXMuX3N0YXJSZWZyZXNoVG9rZW5UaW1lcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvZ291dCgpIHtcclxuICAgICAgICBTdG9yYWdlSGVscGVyLnNldChBdXRoU2VydmljZS5VU0VSX0tFWSwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5fdXNlciA9IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuX2F1dGgpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0aCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmVtaXRPblNpZ25lZEluKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdG9wVGltZXIoKTtcclxuICAgICAgICB0aGlzLl9zdG9wUmVmcmVzaFRva2VuVGltZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB1c2VyIGV4cGlyeSBkYXRlLiBpZiB1c2VyIGlzIG51bGwgcmV0dXJucyBtaW4gSlMgZGF0ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0RXhwaXJlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy51c2VyPy5leHBpcmVkID8/IG5ldyBEYXRlKDApO1xyXG4gICAgfVxyXG5cclxuICAgIGhhc1Blcm1pc3Npb24ocGVybWlzc2lvbj86IEtleVBhaXI8bnVtYmVyLCBudW1iZXI+IHwgbnVtYmVyIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghcGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBrZXkgPSAwO1xyXG4gICAgICAgIGxldCB2YWx1ZTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodHlwZW9mIHBlcm1pc3Npb24gPT09ICdudW1iZXInIHx8IHR5cGVvZiBwZXJtaXNzaW9uID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBrZXkgPSArcGVybWlzc2lvbjtcclxuICAgICAgICB9Ly8gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uKSkge1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgcGVybWlzc2lvbiA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgaWYgKCFwZXJtaXNzaW9uLmtleSlcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICAgICAga2V5ID0gcGVybWlzc2lvbi5rZXk7XHJcbiAgICAgICAgICAgIHZhbHVlID0gcGVybWlzc2lvbi52YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmhhc1Blcm1pc3Npb25zKFtrZXldLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGhhc1Blcm1pc3Npb25zKHBlcm1pc3Npb25zPzogQXJyYXk8bnVtYmVyPiwgdmFsdWU/OiBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9ucyB8fCBwZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyO1xyXG4gICAgICAgIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXIgPyB1c2VyLnBlcm1pc3Npb25zIDogbnVsbDtcclxuICAgICAgICBpZiAoIXVzZXJQZXJtaXNzaW9ucykge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcCA9IHBlcm1pc3Npb25zW2ldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSB1c2VyUGVybWlzc2lvbnNbcF07XHJcbiAgICAgICAgICAgICAgICBpZiAoZm91bmQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gQml0d2lzZUhlbHBlci5oYXNGbGFnKGZvdW5kLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1Blcm1pc3Npb24pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcCA9IHBlcm1pc3Npb25zW2ldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSB1c2VyUGVybWlzc2lvbnNbcF07XHJcbiAgICAgICAgICAgICAgICBpZiAoZm91bmQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaGFzRGF0YVBlcm1pc3Npb24oZGF0YTogYW55KSB7XHJcbiAgICAgICAgLy9pZiAoZGF0YSA9PT0gdW5kZWZpbmVkIHx8IGRhdGEgPT09IG51bGwpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIC8vIGNvbnN0IGFsbG93ZWRSb2xlcyA9IGRhdGEucm9sZXM7XHJcbiAgICAgICAgLy8gbGV0IGlzSW5Sb2xlID0gdGhpcy5pc0luUm9sZShhbGxvd2VkUm9sZXMpO1xyXG5cclxuICAgICAgICBjb25zdCBwZXJtaXNzaW9uID0gZGF0YS5wZXJtaXNzaW9uO1xyXG5cclxuICAgICAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gdGhpcy5oYXNQZXJtaXNzaW9uKHBlcm1pc3Npb24pO1xyXG5cclxuICAgICAgICAvLyByZXR1cm4gaXNJblJvbGUgJiYgaGFzUGVybWlzc2lvbjtcclxuICAgICAgICByZXR1cm4gaGFzUGVybWlzc2lvbjtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -136,4 +136,4 @@ export class CustomHttpParamEncoder {
|
|
|
136
136
|
return decodeURIComponent(value);
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3NlcnZpY2VzL3dlYi5hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLENBQUEsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFPckMsTUFBTSxPQUFPLFlBQVk7SUFDckIsWUFDdUIsSUFBZ0IsRUFDaEIsSUFBaUIsRUFDRyxPQUFlO1FBRm5DLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNHLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFDMUQsQ0FBQztJQUVELEdBQUcsQ0FBVSxHQUFXLEVBQUUsTUFBWTtRQUNsQyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4Rzs7Ozs7Ozs7O01BU0Y7SUFDRixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUFlO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQyxJ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Y3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMvKiwgSHR0cEVycm9yUmVzcG9uc2UqLyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG4vL2ltcG9ydCB7IG9mIH0gZnJvbSAncnhqcy9vYnNlcnZhYmxlL29mJztcclxuLy9pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbi8vaW1wb3J0IHsgZGVsZXRlTnVsbFByb3BlcnRpZXMgfSBmcm9tICcuLi91dGlscyc7XHJcbi8vaW1wb3J0IHsgSHR0cEVycm9ySGFuZGxlciwgSGFuZGxlRXJyb3IgfSBmcm9tICcuL2h0dHAtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cFBhcmFtZXRlckNvZGVjIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBUElfQkFTRV9VUkwgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBVcmxIZWxwZXIgfSBmcm9tICcuLi91dGlscyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdlYkFwaUNvbmZpZyB7XHJcbiAgICBiYXNlVXJsOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFdlYkFwaUNsaWVudCB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aDogQXV0aFNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBUElfQkFTRV9VUkwpIHByaXZhdGUgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICBjb25zdCBjb21iaW5lZFVybCA9IFVybEhlbHBlci5jb21iaW5lKHRoaXMuYmFzZVVybCwgdXJsKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPihjb21iaW5lZFVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgICAgIC8qLmNhdGNoKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih1cmwpKSlcclxuICAgICAgICAuZG8oKHJlczogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgLy8gSGFuZGxlIHN1Y2Nlc3MsIG1heWJlIGRpc3BsYXkgbm90aWZpY2F0aW9uXHJcbiAgICAgICAgfSwgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgLy8gSGFuZGxlIGVycm9yc1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBSZXF1ZXN0IGNvbXBsZXRlZFxyXG4gICAgICAgIH0pO1xyXG4gICAgKi9cclxuICAgIH1cclxuXHJcbiAgICBnZXRTdHJpbmcodXJsOiBzdHJpbmcsIHBhcmFtcz86IG9iamVjdCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xyXG4gICAgICAgIGNvbnN0IGNvbWJpbmVkVXJsID0gVXJsSGVscGVyLmNvbWJpbmUodGhpcy5iYXNlVXJsLCB1cmwpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGNvbWJpbmVkVXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLCByZXNwb25zZVR5cGU6ICd0ZXh0JywgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgfVxyXG4gICAgZ2V0Qnl0ZXModXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8QXJyYXlCdWZmZXI+IHtcclxuICAgICAgICBjb25zdCBjb21iaW5lZFVybCA9IFVybEhlbHBlci5jb21iaW5lKHRoaXMuYmFzZVVybCwgdXJsKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChjb21iaW5lZFVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInLCBwYXJhbXM6IHRoaXMudG9IdHRwUGFyYW1zKHBhcmFtcykgfSk7XHJcbiAgICB9XHJcbiAgICBnZXRCbG9iKHVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgICAgICBjb25zdCBjb21iaW5lZFVybCA9IFVybEhlbHBlci5jb21iaW5lKHRoaXMuYmFzZVVybCwgdXJsKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChjb21iaW5lZFVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcmVzcG9uc2VUeXBlOiAnYmxvYicsIHBhcmFtczogdGhpcy50b0h0dHBQYXJhbXMocGFyYW1zKSB9KTtcclxuICAgIH1cclxuICAgIHBvc3RCbG9iKHVybDogc3RyaW5nLCBib2R5OiBhbnkpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgICAgICBjb25zdCBjb21iaW5lZFVybCA9IFVybEhlbHBlci5jb21iaW5lKHRoaXMuYmFzZVVybCwgdXJsKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoY29tYmluZWRVcmwsIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgdG9IdHRwUGFyYW1zKG9iajogYW55KSB7XHJcbiAgICAgICAgaWYgKCFvYmopXHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IG5ldyBDdXN0b21IdHRwUGFyYW1FbmNvZGVyKCkgfSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSkge1xyXG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IG9ialtrZXldO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQgfHwgZmllbGQgPT09IG51bGwgfHwgKHR5cGVvZiBmaWVsZCA9PT0gJ3N0cmluZycgJiYgZmllbGQubGVuZ3RoID09PSAwKSlcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWVsZDtcclxuICAgICAgICAgICAgLy8gaWYgKHR5cGVvZiBmaWVsZCA9PT0gJ3N0cmluZycgJiYgZmllbGQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAvLyAgICAgdmFsdWUgPSBmaWVsZC5yZXBsYWNlKC9cXCsvZ2ksICclMkInKTtcclxuICAgICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcclxuICAgICAgICAgICAgLy8gaWYgKGZpZWxkIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgLy8gICAgIGZpZWxkLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoYCR7a2V5fVtdYCwgaXRlbSk7XHJcbiAgICAgICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoa2V5LCBmaWVsZCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcclxuXHJcblxyXG4gICAgICAgIC8vZGVsZXRlTnVsbFByb3BlcnRpZXMob2JqKTtcclxuICAgICAgICAvL2NvbW1lbnQgYmVjYXVzZSBpbnRbXSBub3Qgc2VuZGluZyBpbiBjIyBpdCBzZW5kIFwiMSwyLDMsNFwiXHJcbiAgICAgICAgLy8gcmV0dXJuIG9ialxyXG4gICAgICAgIC8vICAgICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikucmVkdWNlKChwLCBrZXkpID0+IHAuc2V0KGtleSwgb2JqW2tleV0pLCBuZXcgSHR0cFBhcmFtcygpKVxyXG4gICAgICAgIC8vICAgICA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvL3RvS2V5UGFpcnMob2JqOiBhbnkpOiBLZXlQYWlyW10gfCB1bmRlZmluZWQge1xyXG4gICAgLy8gICAgaWYgKG9iaiBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgLy8gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopO1xyXG4gICAgLy8gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxLZXlQYWlyPigpO1xyXG4gICAgLy8gICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgIC8vICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvYmpbcHJvcGVydHldO1xyXG4gICAgLy8gICAgICAgICAgICByZXN1bHQucHVzaCh7IGtleTogcHJvcGVydHksIHZhbHVlOiB2YWx1ZSB9KTtcclxuICAgIC8vICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIC8vICAgIH1cclxuICAgIC8vICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAvL31cclxuXHJcbiAgICBwb3N0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55IHwgbnVsbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihVcmxIZWxwZXIuY29tYmluZSh0aGlzLmJhc2VVcmwsIHVybCksIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKGJvZHkpIH0pO1xyXG4gICAgICAgIC8vLnBpcGUoXHJcbiAgICAgICAgLy9jYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodXJsKSlcclxuICAgICAgICAvLyk7XHJcbiAgICB9XHJcbiAgICBwdXQ8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnkgfCBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oVXJsSGVscGVyLmNvbWJpbmUodGhpcy5iYXNlVXJsLCB1cmwpLCBib2R5LCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycyhib2R5KSB9KTtcclxuICAgICAgICAvLy5waXBlKFxyXG4gICAgICAgIC8vY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHVybCkpXHJcbiAgICAgICAgLy8pO1xyXG4gICAgfVxyXG4gICAgZGVsZXRlKHVybDogc3RyaW5nLCBib2R5PzogYW55IHwgbnVsbCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0KCdkZWxldGUnLCBVcmxIZWxwZXIuY29tYmluZSh0aGlzLmJhc2VVcmwsIHVybCksIHsgYm9keSwgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKGJvZHkpIH0pO1xyXG4gICAgICAgIC8vcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoZW52aXJvbm1lbnQudXJsICsgdXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pO1xyXG4gICAgICAgIC8vLnBpcGUoXHJcbiAgICAgICAgLy9jYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodXJsKSlcclxuICAgICAgICAvLyk7XHJcbiAgICB9XHJcbiAgICBwYXRjaDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSB8IG51bGwpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPFQ+KFVybEhlbHBlci5jb21iaW5lKHRoaXMuYmFzZVVybCwgdXJsKSwgYm9keSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoYm9keSkgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRIZWFkZXJzKGJvZHk/OiBhbnkgfCBudWxsKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIGxldCBodHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICAgIGlmICghKGJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkpXHJcbiAgICAgICAgICAgIGh0dHBIZWFkZXJzID0gaHR0cEhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIGNvbnN0IHRtcCA9IHRoaXMuYXV0aC51c2VyO1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gdG1wID8gdG1wLnRva2VuIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0b2tlbilcclxuICAgICAgICAgICAgaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCB0b2tlbik7XHJcbiAgICAgICAgcmV0dXJuIGh0dHBIZWFkZXJzO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy9wcml2YXRlIGdldFBhcmFtcyhwYXJhbXM/OiBLZXlQYWlyW10gfCBudWxsKSB7XHJcbiAgICAvLyAgICBpZiAoIXBhcmFtcyB8fCBwYXJhbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIC8vICAgIH1cclxuICAgIC8vICAgIGxldCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgIC8vICAgIGlmIChwYXJhbXMpIHtcclxuICAgIC8vICAgICAgICBmb3IgKGxldCBwYXJhbSBvZiBwYXJhbXMpIHtcclxuICAgIC8vICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KHBhcmFtLmtleSwgcGFyYW0udmFsdWUpO1xyXG4gICAgLy8gICAgICAgIH1cclxuICAgIC8vICAgIH1cclxuICAgIC8vICAgIHJldHVybiBodHRwUGFyYW1zO1xyXG4gICAgLy99XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUh0dHBQYXJhbUVuY29kZXIgaW1wbGVtZW50cyBIdHRwUGFyYW1ldGVyQ29kZWMge1xyXG4gICAgZW5jb2RlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGtleSk7XHJcbiAgICB9XHJcbiAgICBlbmNvZGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcclxuICAgIH1cclxuICAgIGRlY29kZUtleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChrZXkpO1xyXG4gICAgfVxyXG4gICAgZGVjb2RlVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3NlcnZpY2VzL3dlYi5hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLENBQUEsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFPckMsTUFBTSxPQUFPLFlBQVk7SUFDckIsWUFDdUIsSUFBZ0IsRUFDaEIsSUFBaUIsRUFDRyxPQUFlO1FBRm5DLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNHLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFDMUQsQ0FBQztJQUVELEdBQUcsQ0FBVSxHQUFXLEVBQUUsTUFBWTtRQUNsQyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4Rzs7Ozs7Ozs7O01BU0Y7SUFDRixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUFlO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQyxJ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Y3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMvKiwgSHR0cEVycm9yUmVzcG9uc2UqLyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG4vL2ltcG9ydCB7IG9mIH0gZnJvbSAncnhqcy9vYnNlcnZhYmxlL29mJztcclxuLy9pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbi8vaW1wb3J0IHsgZGVsZXRlTnVsbFByb3BlcnRpZXMgfSBmcm9tICcuLi91dGlscyc7XHJcbi8vaW1wb3J0IHsgSHR0cEVycm9ySGFuZGxlciwgSGFuZGxlRXJyb3IgfSBmcm9tICcuL2h0dHAtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cFBhcmFtZXRlckNvZGVjIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBUElfQkFTRV9VUkwgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBVcmxIZWxwZXIgfSBmcm9tICcuLi91dGlscyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdlYkFwaUNvbmZpZyB7XHJcbiAgICBiYXNlVXJsOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFdlYkFwaUNsaWVudCB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aDogQXV0aFNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBUElfQkFTRV9VUkwpIHByaXZhdGUgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICBjb25zdCBjb21iaW5lZFVybCA9IFVybEhlbHBlci5jb21iaW5lKHRoaXMuYmFzZVVybCwgdXJsKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPihjb21iaW5lZFVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgICAgIC8qLmNhdGNoKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih1cmwpKSlcclxuICAgICAgICAuZG8oKHJlczogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgLy8gSGFuZGxlIHN1Y2Nlc3MsIG1heWJlIGRpc3BsYXkgbm90aWZpY2F0aW9uXHJcbiAgICAgICAgfSwgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgLy8gSGFuZGxlIGVycm9yc1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBSZXF1ZXN0IGNvbXBsZXRlZFxyXG4gICAgICAgIH0pO1xyXG4gICAgKi9cclxuICAgIH1cclxuXHJcbiAgICBnZXRTdHJpbmcodXJsOiBzdHJpbmcsIHBhcmFtcz86IG9iamVjdCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xyXG4gICAgICAgIGNvbnN0IGNvbWJpbmVkVXJsID0gVXJsSGVscGVyLmNvbWJpbmUodGhpcy5iYXNlVXJsLCB1cmwpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGNvbWJpbmVkVXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLCByZXNwb25zZVR5cGU6ICd0ZXh0JywgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgfVxyXG4gICAgZ2V0Qnl0ZXModXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8QXJyYXlCdWZmZXI+IHtcclxuICAgICAgICBjb25zdCBjb21iaW5lZFVybCA9IFVybEhlbHBlci5jb21iaW5lKHRoaXMuYmFzZVVybCwgdXJsKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChjb21iaW5lZFVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInLCBwYXJhbXM6IHRoaXMudG9IdHRwUGFyYW1zKHBhcmFtcykgfSk7XHJcbiAgICB9XHJcbiAgICBnZXRCbG9iKHVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgICAgICBjb25zdCBjb21iaW5lZFVybCA9IFVybEhlbHBlci5jb21iaW5lKHRoaXMuYmFzZVVybCwgdXJsKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChjb21iaW5lZFVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcmVzcG9uc2VUeXBlOiAnYmxvYicsIHBhcmFtczogdGhpcy50b0h0dHBQYXJhbXMocGFyYW1zKSB9KTtcclxuICAgIH1cclxuICAgIHBvc3RCbG9iKHVybDogc3RyaW5nLCBib2R5OiBhbnkpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgICAgICBjb25zdCBjb21iaW5lZFVybCA9IFVybEhlbHBlci5jb21iaW5lKHRoaXMuYmFzZVVybCwgdXJsKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoY29tYmluZWRVcmwsIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgdG9IdHRwUGFyYW1zKG9iajogYW55KSB7XHJcbiAgICAgICAgaWYgKCFvYmopXHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IG5ldyBDdXN0b21IdHRwUGFyYW1FbmNvZGVyKCkgfSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSkge1xyXG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IG9ialtrZXldO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQgfHwgZmllbGQgPT09IG51bGwgfHwgKHR5cGVvZiBmaWVsZCA9PT0gJ3N0cmluZycgJiYgZmllbGQubGVuZ3RoID09PSAwKSlcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWVsZDtcclxuICAgICAgICAgICAgLy8gaWYgKHR5cGVvZiBmaWVsZCA9PT0gJ3N0cmluZycgJiYgZmllbGQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAvLyAgICAgdmFsdWUgPSBmaWVsZC5yZXBsYWNlKC9cXCsvZ2ksICclMkInKTtcclxuICAgICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcclxuICAgICAgICAgICAgLy8gaWYgKGZpZWxkIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgLy8gICAgIGZpZWxkLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoYCR7a2V5fVtdYCwgaXRlbSk7XHJcbiAgICAgICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoa2V5LCBmaWVsZCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcclxuXHJcblxyXG4gICAgICAgIC8vZGVsZXRlTnVsbFByb3BlcnRpZXMob2JqKTtcclxuICAgICAgICAvL2NvbW1lbnQgYmVjYXVzZSBpbnRbXSBub3Qgc2VuZGluZyBpbiBjIyBpdCBzZW5kIFwiMSwyLDMsNFwiXHJcbiAgICAgICAgLy8gcmV0dXJuIG9ialxyXG4gICAgICAgIC8vICAgICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikucmVkdWNlKChwLCBrZXkpID0+IHAuc2V0KGtleSwgb2JqW2tleV0pLCBuZXcgSHR0cFBhcmFtcygpKVxyXG4gICAgICAgIC8vICAgICA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvL3RvS2V5UGFpcnMob2JqOiBhbnkpOiBLZXlQYWlyW10gfCB1bmRlZmluZWQge1xyXG4gICAgLy8gICAgaWYgKG9iaiBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgLy8gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopO1xyXG4gICAgLy8gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxLZXlQYWlyPigpO1xyXG4gICAgLy8gICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgIC8vICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvYmpbcHJvcGVydHldO1xyXG4gICAgLy8gICAgICAgICAgICByZXN1bHQucHVzaCh7IGtleTogcHJvcGVydHksIHZhbHVlOiB2YWx1ZSB9KTtcclxuICAgIC8vICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIC8vICAgIH1cclxuICAgIC8vICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAvL31cclxuXHJcbiAgICBwb3N0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55IHwgbnVsbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihVcmxIZWxwZXIuY29tYmluZSh0aGlzLmJhc2VVcmwsIHVybCksIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKGJvZHkpIH0pO1xyXG4gICAgICAgIC8vLnBpcGUoXHJcbiAgICAgICAgLy9jYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodXJsKSlcclxuICAgICAgICAvLyk7XHJcbiAgICB9XHJcbiAgICBwdXQ8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnkgfCBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oVXJsSGVscGVyLmNvbWJpbmUodGhpcy5iYXNlVXJsLCB1cmwpLCBib2R5LCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycyhib2R5KSB9KTtcclxuICAgICAgICAvLy5waXBlKFxyXG4gICAgICAgIC8vY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHVybCkpXHJcbiAgICAgICAgLy8pO1xyXG4gICAgfVxyXG4gICAgZGVsZXRlPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55IHwgbnVsbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdDxUPignZGVsZXRlJywgVXJsSGVscGVyLmNvbWJpbmUodGhpcy5iYXNlVXJsLCB1cmwpLCB7IGJvZHksIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycyhib2R5KSB9KTtcclxuICAgICAgICAvL3JldHVybiB0aGlzLmh0dHAuZGVsZXRlKGVudmlyb25tZW50LnVybCArIHVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KTtcclxuICAgICAgICAvLy5waXBlKFxyXG4gICAgICAgIC8vY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHVybCkpXHJcbiAgICAgICAgLy8pO1xyXG4gICAgfVxyXG4gICAgcGF0Y2g8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnkgfCBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxUPihVcmxIZWxwZXIuY29tYmluZSh0aGlzLmJhc2VVcmwsIHVybCksIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKGJvZHkpIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0SGVhZGVycyhib2R5PzogYW55IHwgbnVsbCk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICBsZXQgaHR0cEhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgICBpZiAoIShib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpKVxyXG4gICAgICAgICAgICBodHRwSGVhZGVycyA9IGh0dHBIZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICBjb25zdCB0bXAgPSB0aGlzLmF1dGgudXNlcjtcclxuICAgICAgICBjb25zdCB0b2tlbiA9IHRtcCA/IHRtcC50b2tlbiA6IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodG9rZW4pXHJcbiAgICAgICAgICAgIGh0dHBIZWFkZXJzID0gaHR0cEhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgdG9rZW4pO1xyXG4gICAgICAgIHJldHVybiBodHRwSGVhZGVycztcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8vcHJpdmF0ZSBnZXRQYXJhbXMocGFyYW1zPzogS2V5UGFpcltdIHwgbnVsbCkge1xyXG4gICAgLy8gICAgaWYgKCFwYXJhbXMgfHwgcGFyYW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgLy8gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAvLyAgICB9XHJcbiAgICAvLyAgICBsZXQgaHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAvLyAgICBpZiAocGFyYW1zKSB7XHJcbiAgICAvLyAgICAgICAgZm9yIChsZXQgcGFyYW0gb2YgcGFyYW1zKSB7XHJcbiAgICAvLyAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldChwYXJhbS5rZXksIHBhcmFtLnZhbHVlKTtcclxuICAgIC8vICAgICAgICB9XHJcbiAgICAvLyAgICB9XHJcbiAgICAvLyAgICByZXR1cm4gaHR0cFBhcmFtcztcclxuICAgIC8vfVxyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21IdHRwUGFyYW1FbmNvZGVyIGltcGxlbWVudHMgSHR0cFBhcmFtZXRlckNvZGVjIHtcclxuICAgIGVuY29kZUtleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChrZXkpO1xyXG4gICAgfVxyXG4gICAgZW5jb2RlVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBkZWNvZGVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoa2V5KTtcclxuICAgIH1cclxuICAgIGRlY29kZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xyXG4gICAgfVxyXG59Il19
|