@catchpower/device-config-interaction 0.0.16 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/lib/command.service.mjs +5 -5
- package/esm2022/lib/crc-check.service.mjs +4 -4
- package/esm2022/lib/dataset-processing.service.mjs +4 -4
- package/esm2022/lib/device-config-dataset.service.mjs +5 -5
- package/esm2022/lib/device-config-interaction.module.mjs +4 -4
- package/esm2022/lib/device-config-interaction.service.mjs +4 -4
- package/esm2022/lib/device-live-dataset.service.mjs +5 -5
- package/esm2022/lib/interfaces/devices-list.mjs +1 -1
- package/fesm2022/catchpower-device-config-interaction.mjs +25 -25
- package/fesm2022/catchpower-device-config-interaction.mjs.map +1 -1
- package/lib/interfaces/devices-list.d.ts +4 -0
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CpDevicesList
|
|
2
2
|
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0 and currently targets Angular 18.
|
|
4
4
|
|
|
5
5
|
## Code scaffolding
|
|
6
6
|
|
|
@@ -54,13 +54,13 @@ export class CommandService {
|
|
|
54
54
|
//console.log(JSON.stringify(send));
|
|
55
55
|
return send;
|
|
56
56
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
58
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommandService, deps: [{ token: i1.DatasetProcessingService }, { token: i2.CrcCheckService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
58
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommandService, providedIn: 'root' }); }
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommandService, decorators: [{
|
|
61
61
|
type: Injectable,
|
|
62
62
|
args: [{
|
|
63
63
|
providedIn: 'root',
|
|
64
64
|
}]
|
|
65
|
-
}], ctorParameters:
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
}], ctorParameters: () => [{ type: i1.DatasetProcessingService }, { type: i2.CrcCheckService }] });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2NvbW1hbmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBYTNDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1UsR0FBNkIsRUFDN0IsVUFBMkI7UUFEM0IsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7SUFDbEMsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FDckIsYUFBc0IsRUFDdEIsT0FBZSxFQUNmLFVBQTBCO1FBRTFCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLE1BQU0sWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM1QywrQ0FBK0M7WUFDL0MsSUFBSSxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMvQixNQUFNLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxvRUFBb0U7UUFDcEUsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0Isa0VBQWtFO1lBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxXQUFXLEdBQWlCO1lBQzlCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTztZQUNwQyxjQUFjLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxjQUFjO1lBQ2xELFFBQVEsRUFBRSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUM7U0FDdkMsQ0FBQztRQUNGLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUU3QyxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5FLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQzNCLGFBQXNCLEVBQ3RCLE9BQWUsRUFDZixVQUEwQjtRQUUxQixJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUM7UUFDcEIsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0IsR0FBRyxHQUFHLFVBQVUsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEUsTUFBTSxJQUFJLEdBQUc7WUFDWCxZQUFZLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUM3RCxDQUFDO1FBQ0Ysb0NBQW9DO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0FsRVUsY0FBYzttSEFBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJQ29tbWFuZERhdGEsXG4gIElDb21tYW5kRGF0YUFwaSxcbiAgSURldmljZSxcbiAgSVJhd0RhdGFPYmosXG59IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgRGF0YXNldFByb2Nlc3NpbmdTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhc2V0LXByb2Nlc3Npbmcuc2VydmljZSc7XG5pbXBvcnQgeyBDcmNDaGVja1NlcnZpY2UgfSBmcm9tICcuL2NyYy1jaGVjay5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkcHM6IERhdGFzZXRQcm9jZXNzaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGNyY1NlcnZpY2U6IENyY0NoZWNrU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqICBGb3IgQmx1ZXRvb3RoIGNvbW1hbmQgc2VuZFxuICAgKiBAcGFyYW0gY3VycmVudERldmljZVxuICAgKiBAcGFyYW0gY29tbWFuZFxuICAgKiBAcGFyYW0gcmF3RGF0YU9ialxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlQ29tbWFuZERhdGEoXG4gICAgY3VycmVudERldmljZTogSURldmljZSxcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgcmF3RGF0YU9iaj86IElSYXdEYXRhT2JqW11cbiAgKSB7XG4gICAgbGV0IG9wQ29kZSA9IDA7XG4gICAgY29uc3QgY29tYW5kQnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGN1cnJlbnREZXZpY2Uud3JpdGUuYnVmZmVyU2l6ZSk7XG5cbiAgICBjdXJyZW50RGV2aWNlLmNvbW1hbmRzLmZvckVhY2goKGNvbW1hbmRPYmopID0+IHtcbiAgICAgIC8vY29uc29sZS5sb2coJ0NvbW1hbmQgTmFtZScsIGNvbW1hbmRPYmoubmFtZSk7XG4gICAgICBpZiAoY29tbWFuZCA9PSBjb21tYW5kT2JqLm5hbWUpIHtcbiAgICAgICAgb3BDb2RlID0gcGFyc2VJbnQoY29tbWFuZE9iai5vcENvZGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy9jb25zb2xlLmxvZygnIyMjIyMjIyMjIyMgICAgICAkJCQkJCQkJCQkJCQgICAgIE9wIENvZGUgJywgb3BDb2RlKTtcbiAgICBpZiAocmF3RGF0YU9iaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvL2NvbnNvbGUubG9nKCdjcmVhdGUgQ29tbWFuZCBEYXRhLCBSYXcgRGF0YSBPYmplY3QgaXMgcHJlc2VudC4nKTtcbiAgICAgIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KGNvbWFuZEJ1ZmZlcik7XG4gICAgICByYXdEYXRhT2JqLmZvckVhY2goKHJhdykgPT4ge1xuICAgICAgICB0aGlzLmRwcy53cml0ZVZhbHVlVG9CdWZmZXIocmF3LmJ1ZmZlciwgcmF3LnZhbHVlLCBkYXRhVmlldyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgY29tbWFuZERhdGE6IElDb21tYW5kRGF0YSA9IHtcbiAgICAgIG9wQ29kZTogb3BDb2RlLFxuICAgICAgc2VydmljZTogY3VycmVudERldmljZS53cml0ZS5zZXJ2aWNlLFxuICAgICAgY2hhcmFjdGVyaXN0aWM6IGN1cnJlbnREZXZpY2Uud3JpdGUuY2hhcmFjdGVyaXN0aWMsXG4gICAgICBieXRlRGF0YTogbmV3IFVpbnQ4QXJyYXkoY29tYW5kQnVmZmVyKSxcbiAgICB9O1xuICAgIGNvbW1hbmREYXRhLmJ5dGVEYXRhWzBdID0gY29tbWFuZERhdGEub3BDb2RlO1xuXG4gICAgY29tbWFuZERhdGEgPSBhd2FpdCB0aGlzLmNyY1NlcnZpY2Uud3JpdGVDcmNUb0NvbW1hbmQoY29tbWFuZERhdGEpO1xuXG4gICAgcmV0dXJuIGNvbW1hbmREYXRhO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQ29tbWFuZERhdGFGb3JBcGkoXG4gICAgY3VycmVudERldmljZTogSURldmljZSxcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgcmF3RGF0YU9iaj86IElSYXdEYXRhT2JqW11cbiAgKTogUHJvbWlzZTxJQ29tbWFuZERhdGFBcGk+IHtcbiAgICBsZXQgcmF3ID0gdW5kZWZpbmVkO1xuICAgIGlmIChyYXdEYXRhT2JqICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJhdyA9IHJhd0RhdGFPYmo7XG4gICAgfVxuICAgIGNvbnN0IGNvbW1hbmRCdCA9IHRoaXMuY3JlYXRlQ29tbWFuZERhdGEoY3VycmVudERldmljZSwgY29tbWFuZCwgcmF3KTtcbiAgICBjb25zdCBzZW5kID0ge1xuICAgICAgc2VyaWFsTnVtYmVyOiBjdXJyZW50RGV2aWNlLnNlcmlhbC50b1N0cmluZygpLFxuICAgICAgZGF0YTogdGhpcy5kcHMudWludDhBcnJheVRvQXJyYXkoKGF3YWl0IGNvbW1hbmRCdCkuYnl0ZURhdGEpLFxuICAgIH07XG4gICAgLy9jb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShzZW5kKSk7XG4gICAgcmV0dXJuIHNlbmQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -93,13 +93,13 @@ export class CrcCheckService {
|
|
|
93
93
|
commandData.byteData[254] = checkSum[1];
|
|
94
94
|
return commandData;
|
|
95
95
|
}
|
|
96
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
97
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CrcCheckService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
97
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CrcCheckService, providedIn: 'root' }); }
|
|
98
98
|
}
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CrcCheckService, decorators: [{
|
|
100
100
|
type: Injectable,
|
|
101
101
|
args: [{
|
|
102
102
|
providedIn: 'root',
|
|
103
103
|
}]
|
|
104
104
|
}] });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JjLWNoZWNrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXZpY2UtY29uZmlnLWludGVyYWN0aW9uL3NyYy9saWIvY3JjLWNoZWNrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGVBQWU7SUFINUI7UUFJRSxrQkFBa0I7UUFDbEIsY0FBUyxHQUFHO1lBQ1YsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtTQUN2QixDQUFDO1FBQ0YsY0FBUyxHQUFHO1lBQ1YsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtTQUN2QixDQUFDO0tBb0VIO0lBbEVDLGtCQUFrQjtJQUVsQixTQUFTLENBQ1AsT0FBbUIsRUFDbkIsU0FBaUIsRUFDakIsVUFBVSxHQUFHLENBQUM7UUFFZCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsa0NBQWtDO1FBQ3ZELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLGlDQUFpQztRQUN0RCxJQUFJLE1BQU0sQ0FBQyxDQUFDLHNDQUFzQztRQUNsRCxJQUFJLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFFN0IsT0FBTyxTQUFTLEVBQUUsRUFBRTtZQUNsQixNQUFNLEdBQUcsUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHVCQUF1QjtZQUVqRSxXQUFXLEVBQUUsQ0FBQztZQUNkLFFBQVEsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUNQLGFBQStCLEVBQy9CLGlCQUFtQztRQUVuQyxPQUFPLENBQUMsR0FBRyxDQUNULHNCQUFzQixFQUN0QixhQUFhLEVBQ2IsWUFBWSxFQUNaLGlCQUFpQixDQUNsQixDQUFDO1FBQ0YsSUFDRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFDekM7WUFDQSxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNO1lBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFdBQXlCO1FBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUM3QixXQUFXLENBQUMsUUFBUSxFQUNwQixXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ2hDLENBQUM7UUFFRixPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXpELFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXhDLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7K0dBcEhVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUNvbW1hbmREYXRhIH0gZnJvbSAnLi4vcHVibGljLWFwaSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDcmNDaGVja1NlcnZpY2Uge1xuICAvLyBjaGVja3N1bSBhcnJheXNcbiAgYXVjaENSQ0hpID0gW1xuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAxLCAweGMwLCAweDgwLCAweDQxLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAwLCAweGMxLCAweDgxLCAweDQwLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsXG4gICAgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAxLCAweGMwLCAweDgwLCAweDQxLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSxcbiAgICAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAwLCAweGMxLCAweDgxLCAweDQwLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAxLCAweGMwLCAweDgwLCAweDQxLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsXG4gIF07XG4gIGF1Y2hDUkNMbyA9IFtcbiAgICAweDAwLCAweGMwLCAweGMxLCAweDAxLCAweGMzLCAweDAzLCAweDAyLCAweGMyLCAweGM2LCAweDA2LCAweDA3LCAweGM3LFxuICAgIDB4MDUsIDB4YzUsIDB4YzQsIDB4MDQsIDB4Y2MsIDB4MGMsIDB4MGQsIDB4Y2QsIDB4MGYsIDB4Y2YsIDB4Y2UsIDB4MGUsXG4gICAgMHgwYSwgMHhjYSwgMHhjYiwgMHgwYiwgMHhjOSwgMHgwOSwgMHgwOCwgMHhjOCwgMHhkOCwgMHgxOCwgMHgxOSwgMHhkOSxcbiAgICAweDFiLCAweGRiLCAweGRhLCAweDFhLCAweDFlLCAweGRlLCAweGRmLCAweDFmLCAweGRkLCAweDFkLCAweDFjLCAweGRjLFxuICAgIDB4MTQsIDB4ZDQsIDB4ZDUsIDB4MTUsIDB4ZDcsIDB4MTcsIDB4MTYsIDB4ZDYsIDB4ZDIsIDB4MTIsIDB4MTMsIDB4ZDMsXG4gICAgMHgxMSwgMHhkMSwgMHhkMCwgMHgxMCwgMHhmMCwgMHgzMCwgMHgzMSwgMHhmMSwgMHgzMywgMHhmMywgMHhmMiwgMHgzMixcbiAgICAweDM2LCAweGY2LCAweGY3LCAweDM3LCAweGY1LCAweDM1LCAweDM0LCAweGY0LCAweDNjLCAweGZjLCAweGZkLCAweDNkLFxuICAgIDB4ZmYsIDB4M2YsIDB4M2UsIDB4ZmUsIDB4ZmEsIDB4M2EsIDB4M2IsIDB4ZmIsIDB4MzksIDB4ZjksIDB4ZjgsIDB4MzgsXG4gICAgMHgyOCwgMHhlOCwgMHhlOSwgMHgyOSwgMHhlYiwgMHgyYiwgMHgyYSwgMHhlYSwgMHhlZSwgMHgyZSwgMHgyZiwgMHhlZixcbiAgICAweDJkLCAweGVkLCAweGVjLCAweDJjLCAweGU0LCAweDI0LCAweDI1LCAweGU1LCAweDI3LCAweGU3LCAweGU2LCAweDI2LFxuICAgIDB4MjIsIDB4ZTIsIDB4ZTMsIDB4MjMsIDB4ZTEsIDB4MjEsIDB4MjAsIDB4ZTAsIDB4YTAsIDB4NjAsIDB4NjEsIDB4YTEsXG4gICAgMHg2MywgMHhhMywgMHhhMiwgMHg2MiwgMHg2NiwgMHhhNiwgMHhhNywgMHg2NywgMHhhNSwgMHg2NSwgMHg2NCwgMHhhNCxcbiAgICAweDZjLCAweGFjLCAweGFkLCAweDZkLCAweGFmLCAweDZmLCAweDZlLCAweGFlLCAweGFhLCAweDZhLCAweDZiLCAweGFiLFxuICAgIDB4NjksIDB4YTksIDB4YTgsIDB4NjgsIDB4NzgsIDB4YjgsIDB4YjksIDB4NzksIDB4YmIsIDB4N2IsIDB4N2EsIDB4YmEsXG4gICAgMHhiZSwgMHg3ZSwgMHg3ZiwgMHhiZiwgMHg3ZCwgMHhiZCwgMHhiYywgMHg3YywgMHhiNCwgMHg3NCwgMHg3NSwgMHhiNSxcbiAgICAweDc3LCAweGI3LCAweGI2LCAweDc2LCAweDcyLCAweGIyLCAweGIzLCAweDczLCAweGIxLCAweDcxLCAweDcwLCAweGIwLFxuICAgIDB4NTAsIDB4OTAsIDB4OTEsIDB4NTEsIDB4OTMsIDB4NTMsIDB4NTIsIDB4OTIsIDB4OTYsIDB4NTYsIDB4NTcsIDB4OTcsXG4gICAgMHg1NSwgMHg5NSwgMHg5NCwgMHg1NCwgMHg5YywgMHg1YywgMHg1ZCwgMHg5ZCwgMHg1ZiwgMHg5ZiwgMHg5ZSwgMHg1ZSxcbiAgICAweDVhLCAweDlhLCAweDliLCAweDViLCAweDk5LCAweDU5LCAweDU4LCAweDk4LCAweDg4LCAweDQ4LCAweDQ5LCAweDg5LFxuICAgIDB4NGIsIDB4OGIsIDB4OGEsIDB4NGEsIDB4NGUsIDB4OGUsIDB4OGYsIDB4NGYsIDB4OGQsIDB4NGQsIDB4NGMsIDB4OGMsXG4gICAgMHg0NCwgMHg4NCwgMHg4NSwgMHg0NSwgMHg4NywgMHg0NywgMHg0NiwgMHg4NiwgMHg4MiwgMHg0MiwgMHg0MywgMHg4MyxcbiAgICAweDQxLCAweDgxLCAweDgwLCAweDQwLFxuICBdO1xuXG4gIC8vY29uc3RydWN0b3IoKSB7fVxuXG4gIF9idWlsZENSQyhcbiAgICBwdWNoTXNnOiBVaW50OEFycmF5LFxuICAgIHVzRGF0YUxlbjogbnVtYmVyLFxuICAgIHN0YXJ0SW5kZXggPSAwXG4gICk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgIGNvbnNvbGUubG9nKCdTdGFydCBvZiBDUkMgY2hlY2sgZ2VuZXJhdGlvbi4nKTtcbiAgICBsZXQgdWNoQ1JDSGkgPSAweGZmOyAvKiBoaWdoIGJ5dGUgb2YgQ1JDIGluaXRpYWxpemVkICovXG4gICAgbGV0IHVjaENSQ0xvID0gMHhmZjsgLyogbG93IGJ5dGUgb2YgQ1JDIGluaXRpYWxpemVkICovXG4gICAgbGV0IHVJbmRleDsgLyogd2lsbCBpbmRleCBpbnRvIENSQyBsb29rdXAgdGFibGUgKi9cbiAgICBsZXQgYnVmZmVySW5kZXggPSBzdGFydEluZGV4O1xuXG4gICAgd2hpbGUgKHVzRGF0YUxlbi0tKSB7XG4gICAgICB1SW5kZXggPSB1Y2hDUkNMbyBeIHB1Y2hNc2dbYnVmZmVySW5kZXhdOyAvKiBjYWxjdWxhdGUgdGhlIENSQyAqL1xuXG4gICAgICBidWZmZXJJbmRleCsrO1xuICAgICAgdWNoQ1JDTG8gPSB1Y2hDUkNIaSBeIHRoaXMuYXVjaENSQ0hpW3VJbmRleF07XG4gICAgICB1Y2hDUkNIaSA9IHRoaXMuYXVjaENSQ0xvW3VJbmRleF07XG4gICAgfVxuXG4gICAgcmV0dXJuIFt1Y2hDUkNIaSwgdWNoQ1JDTG9dO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBzZW50VmFsdWVQYWlyXG4gICAqIEBwYXJhbSByZWNlaXZlZFZhbHVlUGFpclxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc2F2ZUNoZWNrKFxuICAgIHNlbnRWYWx1ZVBhaXI6IFtudW1iZXIsIG51bWJlcl0sXG4gICAgcmVjZWl2ZWRWYWx1ZVBhaXI6IFtudW1iZXIsIG51bWJlcl1cbiAgKTogYm9vbGVhbiB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICAnQ1JDIHNhdmUgY2hlY2sgc2VudCAnLFxuICAgICAgc2VudFZhbHVlUGFpcixcbiAgICAgICcgcmVjaWV2ZWQgJyxcbiAgICAgIHJlY2VpdmVkVmFsdWVQYWlyXG4gICAgKTtcbiAgICBpZiAoXG4gICAgICBzZW50VmFsdWVQYWlyWzBdID09PSByZWNlaXZlZFZhbHVlUGFpclswXSAmJlxuICAgICAgc2VudFZhbHVlUGFpclsxXSA9PT0gcmVjZWl2ZWRWYWx1ZVBhaXJbMV1cbiAgICApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdDUkMgY29tcGFyZSBjaGVjayBUUlVFJyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ0NSQyBjb21wYXJlIGNoZWNrIEZBTFNFJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgd3JpdGVDcmNUb0NvbW1hbmQoY29tbWFuZERhdGE6IElDb21tYW5kRGF0YSkge1xuICAgIGNvbnNvbGUubG9nKCdXUklURSBDUkMgVE8gQ09NTUFORCBUUklHR0VSRUQgJyk7XG4gICAgY29uc3QgY2hlY2tTdW0gPSB0aGlzLl9idWlsZENSQyhcbiAgICAgIGNvbW1hbmREYXRhLmJ5dGVEYXRhLFxuICAgICAgY29tbWFuZERhdGEuYnl0ZURhdGEubGVuZ3RoIC0gMlxuICAgICk7XG5cbiAgICBjb25zb2xlLmxvZygnIyMjIyMjICMjIyMjIyMgICAgQ1JDMTYgdmFsdWVzICcsIGNoZWNrU3VtKTtcblxuICAgIGNvbW1hbmREYXRhLmJ5dGVEYXRhWzI1M10gPSBjaGVja1N1bVswXTtcbiAgICBjb21tYW5kRGF0YS5ieXRlRGF0YVsyNTRdID0gY2hlY2tTdW1bMV07XG5cbiAgICByZXR1cm4gY29tbWFuZERhdGE7XG4gIH1cbn1cbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JjLWNoZWNrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXZpY2UtY29uZmlnLWludGVyYWN0aW9uL3NyYy9saWIvY3JjLWNoZWNrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGVBQWU7SUFINUI7UUFJRSxrQkFBa0I7UUFDbEIsY0FBUyxHQUFHO1lBQ1YsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtTQUN2QixDQUFDO1FBQ0YsY0FBUyxHQUFHO1lBQ1YsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN0RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDdEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtTQUN2QixDQUFDO0tBb0VIO0lBbEVDLGtCQUFrQjtJQUVsQixTQUFTLENBQ1AsT0FBbUIsRUFDbkIsU0FBaUIsRUFDakIsVUFBVSxHQUFHLENBQUM7UUFFZCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsa0NBQWtDO1FBQ3ZELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLGlDQUFpQztRQUN0RCxJQUFJLE1BQU0sQ0FBQyxDQUFDLHNDQUFzQztRQUNsRCxJQUFJLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFFN0IsT0FBTyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ25CLE1BQU0sR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsdUJBQXVCO1lBRWpFLFdBQVcsRUFBRSxDQUFDO1lBQ2QsUUFBUSxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FDUCxhQUErQixFQUMvQixpQkFBbUM7UUFFbkMsT0FBTyxDQUFDLEdBQUcsQ0FDVCxzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLFlBQVksRUFDWixpQkFBaUIsQ0FDbEIsQ0FBQztRQUNGLElBQ0UsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLGlCQUFpQixDQUFDLENBQUMsQ0FBQztZQUN6QyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQ3pDLENBQUM7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUN2QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFdBQXlCO1FBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUM3QixXQUFXLENBQUMsUUFBUSxFQUNwQixXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ2hDLENBQUM7UUFFRixPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXpELFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXhDLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7K0dBcEhVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUNvbW1hbmREYXRhIH0gZnJvbSAnLi4vcHVibGljLWFwaSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDcmNDaGVja1NlcnZpY2Uge1xuICAvLyBjaGVja3N1bSBhcnJheXNcbiAgYXVjaENSQ0hpID0gW1xuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAxLCAweGMwLCAweDgwLCAweDQxLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAwLCAweGMxLCAweDgxLCAweDQwLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsXG4gICAgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAxLCAweGMwLCAweDgwLCAweDQxLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSxcbiAgICAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAwLCAweGMxLCAweDgxLCAweDQwLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsIDB4MDEsIDB4YzAsIDB4ODAsIDB4NDEsXG4gICAgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMCwgMHhjMSwgMHg4MSwgMHg0MCwgMHgwMSwgMHhjMCwgMHg4MCwgMHg0MSxcbiAgICAweDAwLCAweGMxLCAweDgxLCAweDQwLCAweDAxLCAweGMwLCAweDgwLCAweDQxLCAweDAxLCAweGMwLCAweDgwLCAweDQxLFxuICAgIDB4MDAsIDB4YzEsIDB4ODEsIDB4NDAsXG4gIF07XG4gIGF1Y2hDUkNMbyA9IFtcbiAgICAweDAwLCAweGMwLCAweGMxLCAweDAxLCAweGMzLCAweDAzLCAweDAyLCAweGMyLCAweGM2LCAweDA2LCAweDA3LCAweGM3LFxuICAgIDB4MDUsIDB4YzUsIDB4YzQsIDB4MDQsIDB4Y2MsIDB4MGMsIDB4MGQsIDB4Y2QsIDB4MGYsIDB4Y2YsIDB4Y2UsIDB4MGUsXG4gICAgMHgwYSwgMHhjYSwgMHhjYiwgMHgwYiwgMHhjOSwgMHgwOSwgMHgwOCwgMHhjOCwgMHhkOCwgMHgxOCwgMHgxOSwgMHhkOSxcbiAgICAweDFiLCAweGRiLCAweGRhLCAweDFhLCAweDFlLCAweGRlLCAweGRmLCAweDFmLCAweGRkLCAweDFkLCAweDFjLCAweGRjLFxuICAgIDB4MTQsIDB4ZDQsIDB4ZDUsIDB4MTUsIDB4ZDcsIDB4MTcsIDB4MTYsIDB4ZDYsIDB4ZDIsIDB4MTIsIDB4MTMsIDB4ZDMsXG4gICAgMHgxMSwgMHhkMSwgMHhkMCwgMHgxMCwgMHhmMCwgMHgzMCwgMHgzMSwgMHhmMSwgMHgzMywgMHhmMywgMHhmMiwgMHgzMixcbiAgICAweDM2LCAweGY2LCAweGY3LCAweDM3LCAweGY1LCAweDM1LCAweDM0LCAweGY0LCAweDNjLCAweGZjLCAweGZkLCAweDNkLFxuICAgIDB4ZmYsIDB4M2YsIDB4M2UsIDB4ZmUsIDB4ZmEsIDB4M2EsIDB4M2IsIDB4ZmIsIDB4MzksIDB4ZjksIDB4ZjgsIDB4MzgsXG4gICAgMHgyOCwgMHhlOCwgMHhlOSwgMHgyOSwgMHhlYiwgMHgyYiwgMHgyYSwgMHhlYSwgMHhlZSwgMHgyZSwgMHgyZiwgMHhlZixcbiAgICAweDJkLCAweGVkLCAweGVjLCAweDJjLCAweGU0LCAweDI0LCAweDI1LCAweGU1LCAweDI3LCAweGU3LCAweGU2LCAweDI2LFxuICAgIDB4MjIsIDB4ZTIsIDB4ZTMsIDB4MjMsIDB4ZTEsIDB4MjEsIDB4MjAsIDB4ZTAsIDB4YTAsIDB4NjAsIDB4NjEsIDB4YTEsXG4gICAgMHg2MywgMHhhMywgMHhhMiwgMHg2MiwgMHg2NiwgMHhhNiwgMHhhNywgMHg2NywgMHhhNSwgMHg2NSwgMHg2NCwgMHhhNCxcbiAgICAweDZjLCAweGFjLCAweGFkLCAweDZkLCAweGFmLCAweDZmLCAweDZlLCAweGFlLCAweGFhLCAweDZhLCAweDZiLCAweGFiLFxuICAgIDB4NjksIDB4YTksIDB4YTgsIDB4NjgsIDB4NzgsIDB4YjgsIDB4YjksIDB4NzksIDB4YmIsIDB4N2IsIDB4N2EsIDB4YmEsXG4gICAgMHhiZSwgMHg3ZSwgMHg3ZiwgMHhiZiwgMHg3ZCwgMHhiZCwgMHhiYywgMHg3YywgMHhiNCwgMHg3NCwgMHg3NSwgMHhiNSxcbiAgICAweDc3LCAweGI3LCAweGI2LCAweDc2LCAweDcyLCAweGIyLCAweGIzLCAweDczLCAweGIxLCAweDcxLCAweDcwLCAweGIwLFxuICAgIDB4NTAsIDB4OTAsIDB4OTEsIDB4NTEsIDB4OTMsIDB4NTMsIDB4NTIsIDB4OTIsIDB4OTYsIDB4NTYsIDB4NTcsIDB4OTcsXG4gICAgMHg1NSwgMHg5NSwgMHg5NCwgMHg1NCwgMHg5YywgMHg1YywgMHg1ZCwgMHg5ZCwgMHg1ZiwgMHg5ZiwgMHg5ZSwgMHg1ZSxcbiAgICAweDVhLCAweDlhLCAweDliLCAweDViLCAweDk5LCAweDU5LCAweDU4LCAweDk4LCAweDg4LCAweDQ4LCAweDQ5LCAweDg5LFxuICAgIDB4NGIsIDB4OGIsIDB4OGEsIDB4NGEsIDB4NGUsIDB4OGUsIDB4OGYsIDB4NGYsIDB4OGQsIDB4NGQsIDB4NGMsIDB4OGMsXG4gICAgMHg0NCwgMHg4NCwgMHg4NSwgMHg0NSwgMHg4NywgMHg0NywgMHg0NiwgMHg4NiwgMHg4MiwgMHg0MiwgMHg0MywgMHg4MyxcbiAgICAweDQxLCAweDgxLCAweDgwLCAweDQwLFxuICBdO1xuXG4gIC8vY29uc3RydWN0b3IoKSB7fVxuXG4gIF9idWlsZENSQyhcbiAgICBwdWNoTXNnOiBVaW50OEFycmF5LFxuICAgIHVzRGF0YUxlbjogbnVtYmVyLFxuICAgIHN0YXJ0SW5kZXggPSAwXG4gICk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgIGNvbnNvbGUubG9nKCdTdGFydCBvZiBDUkMgY2hlY2sgZ2VuZXJhdGlvbi4nKTtcbiAgICBsZXQgdWNoQ1JDSGkgPSAweGZmOyAvKiBoaWdoIGJ5dGUgb2YgQ1JDIGluaXRpYWxpemVkICovXG4gICAgbGV0IHVjaENSQ0xvID0gMHhmZjsgLyogbG93IGJ5dGUgb2YgQ1JDIGluaXRpYWxpemVkICovXG4gICAgbGV0IHVJbmRleDsgLyogd2lsbCBpbmRleCBpbnRvIENSQyBsb29rdXAgdGFibGUgKi9cbiAgICBsZXQgYnVmZmVySW5kZXggPSBzdGFydEluZGV4O1xuXG4gICAgd2hpbGUgKHVzRGF0YUxlbi0tKSB7XG4gICAgICB1SW5kZXggPSB1Y2hDUkNMbyBeIHB1Y2hNc2dbYnVmZmVySW5kZXhdOyAvKiBjYWxjdWxhdGUgdGhlIENSQyAqL1xuXG4gICAgICBidWZmZXJJbmRleCsrO1xuICAgICAgdWNoQ1JDTG8gPSB1Y2hDUkNIaSBeIHRoaXMuYXVjaENSQ0hpW3VJbmRleF07XG4gICAgICB1Y2hDUkNIaSA9IHRoaXMuYXVjaENSQ0xvW3VJbmRleF07XG4gICAgfVxuXG4gICAgcmV0dXJuIFt1Y2hDUkNIaSwgdWNoQ1JDTG9dO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBzZW50VmFsdWVQYWlyXG4gICAqIEBwYXJhbSByZWNlaXZlZFZhbHVlUGFpclxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc2F2ZUNoZWNrKFxuICAgIHNlbnRWYWx1ZVBhaXI6IFtudW1iZXIsIG51bWJlcl0sXG4gICAgcmVjZWl2ZWRWYWx1ZVBhaXI6IFtudW1iZXIsIG51bWJlcl1cbiAgKTogYm9vbGVhbiB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICAnQ1JDIHNhdmUgY2hlY2sgc2VudCAnLFxuICAgICAgc2VudFZhbHVlUGFpcixcbiAgICAgICcgcmVjaWV2ZWQgJyxcbiAgICAgIHJlY2VpdmVkVmFsdWVQYWlyXG4gICAgKTtcbiAgICBpZiAoXG4gICAgICBzZW50VmFsdWVQYWlyWzBdID09PSByZWNlaXZlZFZhbHVlUGFpclswXSAmJlxuICAgICAgc2VudFZhbHVlUGFpclsxXSA9PT0gcmVjZWl2ZWRWYWx1ZVBhaXJbMV1cbiAgICApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdDUkMgY29tcGFyZSBjaGVjayBUUlVFJyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ0NSQyBjb21wYXJlIGNoZWNrIEZBTFNFJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgd3JpdGVDcmNUb0NvbW1hbmQoY29tbWFuZERhdGE6IElDb21tYW5kRGF0YSkge1xuICAgIGNvbnNvbGUubG9nKCdXUklURSBDUkMgVE8gQ09NTUFORCBUUklHR0VSRUQgJyk7XG4gICAgY29uc3QgY2hlY2tTdW0gPSB0aGlzLl9idWlsZENSQyhcbiAgICAgIGNvbW1hbmREYXRhLmJ5dGVEYXRhLFxuICAgICAgY29tbWFuZERhdGEuYnl0ZURhdGEubGVuZ3RoIC0gMlxuICAgICk7XG5cbiAgICBjb25zb2xlLmxvZygnIyMjIyMjICMjIyMjIyMgICAgQ1JDMTYgdmFsdWVzICcsIGNoZWNrU3VtKTtcblxuICAgIGNvbW1hbmREYXRhLmJ5dGVEYXRhWzI1M10gPSBjaGVja1N1bVswXTtcbiAgICBjb21tYW5kRGF0YS5ieXRlRGF0YVsyNTRdID0gY2hlY2tTdW1bMV07XG5cbiAgICByZXR1cm4gY29tbWFuZERhdGE7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -512,13 +512,13 @@ export class DatasetProcessingService {
|
|
|
512
512
|
});
|
|
513
513
|
});
|
|
514
514
|
}
|
|
515
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
516
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
515
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatasetProcessingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
516
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatasetProcessingService, providedIn: 'root' }); }
|
|
517
517
|
}
|
|
518
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
518
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatasetProcessingService, decorators: [{
|
|
519
519
|
type: Injectable,
|
|
520
520
|
args: [{
|
|
521
521
|
providedIn: 'root',
|
|
522
522
|
}]
|
|
523
523
|
}] });
|
|
524
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1wcm9jZXNzaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXZpY2UtY29uZmlnLWludGVyYWN0aW9uL3NyYy9saWIvZGF0YXNldC1wcm9jZXNzaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFjM0MsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxrQkFBa0I7SUFDbEI7OztPQUdHO0lBQ0gsa0JBQWtCLENBQUMsR0FBZSxFQUFFLE1BQWdCO1FBQ2xELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUNkLFFBQVEsR0FBRyxDQUFDLE1BQU0sRUFBRTtnQkFDbEIsS0FBSyxDQUFDO29CQUNKLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDckMsTUFBTTtnQkFDUixLQUFLLEVBQUU7b0JBQ0wsS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2xELE1BQU07Z0JBQ1IsS0FBSyxFQUFFO29CQUNMLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNsRCxNQUFNO2FBQ1Q7U0FDRjthQUFNO1lBQ0wsUUFBUSxHQUFHLENBQUMsTUFBTSxFQUFFO2dCQUNsQixLQUFLLENBQUM7b0JBQ0osS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN0QyxNQUFNO2dCQUNSLEtBQUssRUFBRTtvQkFDTCxLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxH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Q0wsTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFpQixDQUFDLENBQUM7U0FDcEQ7UUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxRCxvREFBb0Q7UUFDcEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN0QyxTQUFTLENBQUMsS0FBSztnQkFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUM7b0JBQ3hELFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQTZCO1FBQ3hDLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDeEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2pFLFNBQVMsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F6a0JVLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJQnVmZmVyT2JqLFxuICBJUHJvY2Vzc0RhdGFPYmosXG4gIElQcm9jZXNzRGF0YVN0ZXAsXG4gIElSYXdEYXRhT2JqLFxuICBJT3RoZXJEYXRhT2JqLFxuICBJQ29uZmlnLFxuICBJRGlzcGxheSxcbn0gZnJvbSAnLi4vbGliL2ludGVyZmFjZXMvZGV2aWNlcy1saXN0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFzZXRQcm9jZXNzaW5nU2VydmljZSB7XG4gIC8vY29uc3RydWN0b3IoKSB7fVxuICAvKlxuICAgKiBGb3IgdXNlIHdpdGggRGF0YVZpZXdcbiAgICpcbiAgICovXG4gIGdldFZhbHVlZnJvbUJ1ZmZlcihvYmo6IElCdWZmZXJPYmosIGJ1ZmZlcjogRGF0YVZpZXcpIHtcbiAgICBsZXQgdmFsdWUgPSAwO1xuICAgIGlmIChvYmouc2lnbmVkKSB7XG4gICAgICBzd2l0Y2ggKG9iai5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgIHZhbHVlID0gYnVmZmVyLmdldEludDgob2JqLnBvc2l0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICB2YWx1ZSA9IGJ1ZmZlci5nZXRJbnQxNihvYmoucG9zaXRpb24sIG9iai5saXR0bGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgIHZhbHVlID0gYnVmZmVyLmdldEludDMyKG9iai5wb3NpdGlvbiwgb2JqLmxpdHRsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAob2JqLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgdmFsdWUgPSBidWZmZXIuZ2V0VWludDgob2JqLnBvc2l0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICB2YWx1ZSA9IGJ1ZmZlci5nZXRVaW50MTYob2JqLnBvc2l0aW9uLCBvYmoubGl0dGxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICB2YWx1ZSA9IGJ1ZmZlci5nZXRVaW50MzIob2JqLnBvc2l0aW9uLCBvYmoubGl0dGxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgLypcbiAgICogRm9yIHVzZSB3aXRoIERhdGFWaWV3XG4gICAqXG4gICAqXG4gICAqL1xuICB3cml0ZVZhbHVlVG9CdWZmZXIob2JqOiBJQnVmZmVyT2JqLCB2YWx1ZTogbnVtYmVyLCBidWZmZXI6IERhdGFWaWV3KSB7XG4gICAgaWYgKG9iai5zaWduZWQpIHtcbiAgICAgIHN3aXRjaCAob2JqLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgYnVmZmVyLnNldEludDgob2JqLnBvc2l0aW9uLCB2YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgYnVmZmVyLnNldEludDE2KG9iai5wb3NpdGlvbiwgdmFsdWUsIG9iai5saXR0bGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgIGJ1ZmZlci5zZXRJbnQzMihvYmoucG9zaXRpb24sIHZhbHVlLCBvYmoubGl0dGxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoIChvYmoubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICBidWZmZXIuc2V0VWludDgob2JqLnBvc2l0aW9uLCB2YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgYnVmZmVyLnNldFVpbnQxNihvYmoucG9zaXRpb24sIHZhbHVlLCBvYmoubGl0dGxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICBidWZmZXIuc2V0VWludDMyKG9iai5wb3NpdGlvbiwgdmFsdWUsIG9iai5saXR0bGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJ1blByb2Nlc3MoXG4gICAgcHJvY2VzczogSVByb2Nlc3NEYXRhT2JqLFxuICAgIHJhd0RhdGE6IElSYXdEYXRhT2JqW10sXG4gICAgb3RoZXJEYXRhOiBJT3RoZXJEYXRhT2JqW11cbiAgKSB7XG4gICAgY29uc3QgdmFsdWVzOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0gdGhpcy5nZXRDaHVua1ZhbHVlcyhcbiAgICAgIHByb2Nlc3MuZGF0YSxcbiAgICAgIHJhd0RhdGEsXG4gICAgICBvdGhlckRhdGFcbiAgICApO1xuICAgIC8vY29uc29sZS5sb2coJ3Byb2Nlc3MgdmFsdWVzICcsIHZhbHVlcyk7XG4gICAgbGV0IHBWYWw6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gPSAwO1xuICAgIHN3aXRjaCAocHJvY2Vzcy50eXBlKSB7XG4gICAgICBjYXNlICdhc3MnOlxuICAgICAgICBwVmFsID0gdGhpcy5hc3NlbWJsZVByb2Nlc3ModmFsdWVzKTtcbiAgICAgICAgcHJvY2Vzcy52YWx1ZSA9IHBWYWw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ2NvbSc6XG4gICAgICAgIHBWYWwgPSB0aGlzLmNvbXBhcmVQcm9jZXNzKFxuICAgICAgICAgIHZhbHVlcyBhcyBbbnVtYmVyLCAnPCcgfCAnPD0nIHwgJz09JyB8ICc+PScgfCAnPicsIG51bWJlcl0sXG4gICAgICAgICAgcHJvY2Vzc1xuICAgICAgICApO1xuICAgICAgICBwcm9jZXNzLnZhbHVlID0gcFZhbDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAnY2FsJzpcbiAgICAgICAgcFZhbCA9IHRoaXMuY2FsY3VsYXRlUHJvY2VzcyhcbiAgICAgICAgICB2YWx1ZXMgYXMgW251bWJlciwgJysnIHwgJy0nIHwgJy8nIHwgJyonLCBudW1iZXJdXG4gICAgICAgICk7XG4gICAgICAgIHByb2Nlc3MudmFsdWUgPSBwVmFsO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICd0Zm0nOlxuICAgICAgICBwVmFsID0gdGhpcy50Zm1Qcm9jZXNzKHZhbHVlcyBhcyBudW1iZXJbXSk7XG4gICAgICAgIHByb2Nlc3MudmFsdWUgPSBwVmFsO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICdjZHQnOlxuICAgICAgICBwVmFsID0gdGhpcy5jZHRQcm9jZXNzKHZhbHVlcyBhcyBzdHJpbmdbXSk7XG4gICAgICAgIHByb2Nlc3MudmFsdWUgPSBwVmFsO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICdpdGQnOlxuICAgICAgICBwVmFsID0gdGhpcy5pdGRQcm9jZXNzKHZhbHVlcyBhcyBudW1iZXJbXSk7XG4gICAgICAgIHByb2Nlc3MudmFsdWUgPSBwVmFsO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICdpdHMnOlxuICAgICAgICBwVmFsID0gdGhpcy5pdHNQcm9jZXNzKHZhbHVlcyBhcyBudW1iZXJbXSk7XG4gICAgICAgIHByb2Nlc3MudmFsdWUgPSBwVmFsO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICdic3YnOlxuICAgICAgICBwVmFsID0gdGhpcy5ic3ZQcm9jZXNzKHZhbHVlcyk7XG4gICAgICAgIHByb2Nlc3MudmFsdWUgPSBwVmFsO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICd2ZmEnOlxuICAgICAgICBwVmFsID0gdGhpcy52ZmFQcm9jZXNzKHZhbHVlcyBhcyBudW1iZXJbXSwgcHJvY2Vzcyk7XG4gICAgICAgIHByb2Nlc3MudmFsdWUgPSBwVmFsO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICdjdHMnOlxuICAgICAgICBwVmFsID0gdGhpcy5jdHNQcm9jZXNzKHZhbHVlcyBhcyBudW1iZXJbXSk7XG4gICAgICAgIHByb2Nlc3MudmFsdWUgPSBwVmFsO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgYXNzZW1ibGVQcm9jZXNzKHZhbHVlczogKHN0cmluZyB8IG51bWJlcilbXSkge1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICB2YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgcmVzdWx0ICs9IHY7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGRpc2Fzc2VtYmxlUHJvY2VzcyhzdHJpbmc6IHN0cmluZywgdmFsdWVzOiBJUHJvY2Vzc0RhdGFTdGVwW10pIHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IGxlbmd0aCA9IDA7XG4gICAgdmFsdWVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWwsICdzdHJMZW5ndGgnKSkge1xuICAgICAgICBsZW5ndGggPSB2YWwuc3RyTGVuZ3RoIGFzIG51bWJlcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHN0ciA9IHZhbC52YWx1ZSBhcyBzdHJpbmc7XG4gICAgICAgIGxlbmd0aCA9IHN0ci5sZW5ndGg7XG4gICAgICB9XG4gICAgICBpZiAodmFsLmZyb21EYXRhID09ICdyYXcnKSB7XG4gICAgICAgIHJlc3VsdFt2YWwudmFsdWVdID0gTnVtYmVyKHN0cmluZy5zdWJzdHJpbmcoaSwgaSArIGxlbmd0aCkpO1xuICAgICAgfVxuICAgICAgaSA9IGkgKyBsZW5ndGg7XG4gICAgfSk7XG4gICAgLy9jb25zb2xlLmxvZygnRGlzYXNzZW1ibGUgUmVzdWx0ICcsIEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBjb21wYXJlUHJvY2VzcyhcbiAgICB2YWx1ZXM6IFtudW1iZXIsICc8JyB8ICc8PScgfCAnPT0nIHwgJz49JyB8ICc+JywgbnVtYmVyXSxcbiAgICBwcm9jZXNzOiBJUHJvY2Vzc0RhdGFPYmpcbiAgKSB7XG4gICAgY29uc3QgcmVzdWx0OiBib29sZWFuID0gdGhpcy5jb21wYXJlVmFsdWVzKHZhbHVlc1swXSwgdmFsdWVzWzFdLCB2YWx1ZXNbMl0pO1xuICAgIGxldCB0ZXh0ID0gJ04vQSc7XG4gICAgaWYgKCdjb21UeHQnIGluIHByb2Nlc3MpIHtcbiAgICAgIGlmIChwcm9jZXNzLmNvbVR4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0ZXh0ID0gcHJvY2Vzcy5jb21UeHRbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHByb2Nlc3MuY29tVHh0WzFdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0ZXh0O1xuICB9XG5cbiAgY29tcGFyZVZhbHVlcyh2MTogbnVtYmVyLCBvcDogJzwnIHwgJzw9JyB8ICc9PScgfCAnPj0nIHwgJz4nLCB2MjogbnVtYmVyKSB7XG4gICAgc3dpdGNoIChvcCkge1xuICAgICAgY2FzZSAnPCc6XG4gICAgICAgIHJldHVybiB2MSA8IHYyO1xuICAgICAgY2FzZSAnPD0nOlxuICAgICAgICByZXR1cm4gdjEgPD0gdjI7XG4gICAgICBjYXNlICc9PSc6XG4gICAgICAgIHJldHVybiB2MSA9PSB2MjtcbiAgICAgIGNhc2UgJz49JzpcbiAgICAgICAgcmV0dXJuIHYxID49IHYyO1xuICAgICAgY2FzZSAnPic6XG4gICAgICAgIHJldHVybiB2MSA+IHYyO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZVByb2Nlc3ModmFsdWVzOiBbbnVtYmVyLCAnKycgfCAnLScgfCAnLycgfCAnKicsIG51bWJlcl0pIHtcbiAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVWYWx1ZXModmFsdWVzWzBdLCB2YWx1ZXNbMV0sIHZhbHVlc1syXSk7XG4gIH1cblxuICBjYWxjdWxhdGVWYWx1ZXModjE6IG51bWJlciwgb3A6ICcrJyB8ICctJyB8ICcvJyB8ICcqJywgdjI6IG51bWJlcikge1xuICAgIHN3aXRjaCAob3ApIHtcbiAgICAgIGNhc2UgJysnOlxuICAgICAgICByZXR1cm4gdjEgKyB2MjtcbiAgICAgIGNhc2UgJy0nOlxuICAgICAgICByZXR1cm4gdjEgLSB2MjtcbiAgICAgIGNhc2UgJy8nOlxuICAgICAgICByZXR1cm4gdjEgLyB2MjtcbiAgICAgIGNhc2UgJyonOlxuICAgICAgICByZXR1cm4gdjEgKiB2MjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuXG4gIHRmbVByb2Nlc3ModmFsdWVzOiBudW1iZXJbXSkge1xuICAgIGNvbnN0IGhvdXJzOiBudW1iZXIgPSBNYXRoLmZsb29yKCh2YWx1ZXNbMF0gKiA2MCkgLyAzNjAwKTtcbiAgICBjb25zdCBtaW5zOiBudW1iZXIgPSBNYXRoLmZsb29yKCh2YWx1ZXNbMF0gKiA2MCAtIGhvdXJzICogMzYwMCkgLyA2MCk7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheVRpbWUoaG91cnMsIG1pbnMpO1xuICB9XG5cbiAgY2R0UHJvY2Vzcyh2YWx1ZXM6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgaG91cnM6IG51bWJlciA9IHBhcnNlSW50KHZhbHVlc1swXS5zdWJzdHJpbmcoMTEsIDEzKSk7XG4gICAgY29uc3QgbWluczogbnVtYmVyID0gcGFyc2VJbnQodmFsdWVzWzBdLnN1YnN0cmluZygxNCwgMTYpKTtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5VGltZShob3VycywgbWlucyk7XG4gIH1cblxuICAvL05ldyBwcm9jZXNzIHRvIHBpY2sgdmFsdWUgZnJvbSBhcnJheSBiYXNlZCBvbiBpbnRlcmdlciB2YWx1ZVxuICB2ZmFQcm9jZXNzKHZhbHVlczogbnVtYmVyW10sIHByb2Nlc3M6IElQcm9jZXNzRGF0YU9iaikge1xuICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzWzBdO1xuICAgIGlmIChwcm9jZXNzLnZhbHVlc0xpc3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHZhbHVlIDwgcHJvY2Vzcy52YWx1ZXNMaXN0Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcHJvY2Vzcy52YWx1ZXNMaXN0W3ZhbHVlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnbmlwJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICduL2EnO1xuICAgIH1cbiAgfVxuXG4gIGl0ZFByb2Nlc3ModmFsdWVzOiBudW1iZXJbXSkge1xuICAgIGxldCBob3VyczogbnVtYmVyID0gTWF0aC5mbG9vcigodmFsdWVzWzBdICogNjApIC8gMzYwMCk7XG4gICAgLy9jb25zb2xlLmxvZyhcImhvdXJzIFwiLCBob3Vycyk7XG4gICAgY29uc3QgbWluczogbnVtYmVyID0gTWF0aC5mbG9vcigodmFsdWVzWzBdICogNjAgLSBob3VycyAqIDM2MDApIC8gNjApO1xuICAgIC8vY29uc29sZS5sb2coXCJtaW5zIFwiLCBtaW5zKTtcbiAgICBsZXQgaDogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGxldCBtOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgaWYgKGhvdXJzID4gMjMpIHtcbiAgICAgIGhvdXJzID0gaG91cnMgLSAyNDtcbiAgICB9XG4gICAgaWYgKGhvdXJzIDwgMTApIHtcbiAgICAgIGggPSAnMCcgKyBob3VycztcbiAgICB9IGVsc2Uge1xuICAgICAgaCA9IGhvdXJzO1xuICAgIH1cbiAgICBpZiAobWlucyA8IDEwKSB7XG4gICAgICBtID0gJzAnICsgbWlucztcbiAgICB9IGVsc2Uge1xuICAgICAgbSA9IG1pbnM7XG4gICAgfVxuICAgIGNvbnN0IHN0cmluZzogc3RyaW5nID0gJzAwMDAtMDAtMDBUJyArIGggKyAnOicgKyBtO1xuICAgIC8vY29uc29sZS5sb2coXCIkJV4mJl4lJSQkJV4mJiZeJSUlJV5eXiYmJl5eJV4lJSVeXl4mIGR0IHN0cmluZyBcIiwgc3RyaW5nKTtcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgZHRpUHJvY2VzcyhzdHJpbmc6IHN0cmluZywgdmFsdWVzOiBJUHJvY2Vzc0RhdGFTdGVwW10pIHtcbiAgICAvL2NvbnNvbGUubG9nKFwiZHRpUHJvY2VzcyBpbnB1dHMgc3RyaW5nOiBcIiwgc3RyaW5nLCBcIiBWYWx1ZXM6IFwiLCB2YWx1ZXMpO1xuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmcgfCBudW1iZXJdOiBudW1iZXIgfSA9IHt9O1xuICAgIGxldCBoOiBudW1iZXI7XG4gICAgbGV0IG06IG51bWJlcjtcbiAgICB2YWx1ZXMuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAvLyBoID0gTnVtYmVyKHN0cmluZy5zdWJzdHIoMTEsIDIpKTtcbiAgICAgIC8vIG0gPSBOdW1iZXIoc3RyaW5nLnN1YnN0cigxNCwgMikpO1xuICAgICAgaCA9IE51bWJlcihzdHJpbmcuc3Vic3RyaW5nKDExLCAxMykpO1xuICAgICAgbSA9IE51bWJlcihzdHJpbmcuc3Vic3RyaW5nKDE0LCAxNikpO1xuICAgICAgcmVzdWx0W3ZhbC52YWx1ZV0gPSBoICogNjAgKyBtO1xuICAgIH0pO1xuICAgIC8vY29uc29sZS5sb2coXCJkYXRlIHRvIGludGVnZXIgUmVzdWx0IFwiLCBKU09OLnN0cmluZ2lmeShyZXN1bHQpKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgaXRzUHJvY2Vzcyh2YWx1ZXM6IG51bWJlcltdKSB7XG4gICAgLy9jb25zb2xlLmxvZygnaXRzUHJvY2VzcyB2YWx1ZXMnLCBKU09OLnN0cmluZ2lmeSh2YWx1ZXMpKTtcbiAgICBjb25zdCBzdHI6IHN0cmluZyA9IHZhbHVlc1swXS50b1N0cmluZygpO1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICBzdGlQcm9jZXNzKHN0cmluZzogc3RyaW5nLCB2YWx1ZXM6IElQcm9jZXNzRGF0YVN0ZXBbXSkge1xuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmcgfCBudW1iZXJdOiBudW1iZXIgfSA9IHt9O1xuICAgIHZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgIHJlc3VsdFt2YWwudmFsdWVdID0gTnVtYmVyKHN0cmluZyk7XG4gICAgfSk7XG4gICAgLy9jb25zb2xlLmxvZyhcInN0cmluZyB0byBpbnRlZ2VyIFJlc3VsdCBcIiwgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGJzdlByb2Nlc3ModmFsdWVzOiAobnVtYmVyIHwgc3RyaW5nKVtdKSB7XG4gICAgY29uc3Qgc3RhcnRWYWx1ZTogc3RyaW5nID0gdmFsdWVzWzBdIGFzIHN0cmluZztcbiAgICBjb25zdCBwb3MxOiBudW1iZXIgPSB2YWx1ZXNbMV0gYXMgbnVtYmVyO1xuICAgIGNvbnN0IHBvczI6IG51bWJlciA9IHBvczEgKyAxO1xuICAgIGNvbnN0IGJpbmFyeVN0cjogc3RyaW5nID0gcGFyc2VJbnQoc3RhcnRWYWx1ZSwgMTApXG4gICAgICAudG9TdHJpbmcoMilcbiAgICAgIC5wYWRTdGFydCg0LCAnMCcpO1xuICAgIHJldHVybiBiaW5hcnlTdHIuc3Vic3RyaW5nKHBvczEsIHBvczIpO1xuICB9XG5cbiAgYnN2UmV2ZXJ0KFxuICAgIHN0cmluZzogc3RyaW5nLFxuICAgIHZhbHVlczogSVByb2Nlc3NEYXRhU3RlcFtdLFxuICAgIGJzc09iajogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfVxuICApIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJzc09iaiwgdmFsdWVzWzBdLnZhbHVlKSkge1xuICAgICAgYnNzT2JqW3ZhbHVlc1swXS52YWx1ZV0gPSB0aGlzLnJlcGxhY2VDaGFyQXQoXG4gICAgICAgIGJzc09ialt2YWx1ZXNbMF0udmFsdWVdIGFzIHN0cmluZyxcbiAgICAgICAgdmFsdWVzWzFdLnZhbHVlIGFzIG51bWJlcixcbiAgICAgICAgc3RyaW5nXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBic3NPYmpbdmFsdWVzWzBdLnZhbHVlXSA9ICcwMDAwJztcbiAgICAgIGJzc09ialt2YWx1ZXNbMF0udmFsdWVdID0gdGhpcy5yZXBsYWNlQ2hhckF0KFxuICAgICAgICBic3NPYmpbdmFsdWVzWzBdLnZhbHVlXSBhcyBzdHJpbmcsXG4gICAgICAgIHZhbHVlc1sxXS52YWx1ZSBhcyBudW1iZXIsXG4gICAgICAgIHN0cmluZ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGJzc09iajtcbiAgfVxuXG4gIHN0Y1Byb2Nlc3ModmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IGluaXRBcnJheSA9IHZhbHVlLnNwbGl0KCcnKTtcbiAgICBjb25zdCByZXN1bHRBcnJheTogbnVtYmVyW10gPSBbXTtcbiAgICBpbml0QXJyYXkuZm9yRWFjaCgodikgPT4ge1xuICAgICAgcmVzdWx0QXJyYXkucHVzaCh2LmNoYXJDb2RlQXQoMCkpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHRBcnJheTtcbiAgfVxuXG4gIGN0c1Byb2Nlc3ModmFsdWVzOiBudW1iZXJbXSkge1xuICAgIC8vIGxldCByZXN1bHQ6IHN0cmluZyA9IFwiXCI7XG4gICAgY29uc3QgYXJ5OiBudW1iZXJbXSA9IFtdO1xuICAgIHZhbHVlcy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICBpZiAodiA+PSAwKSB7XG4gICAgICAgIGFyeS5wdXNoKHYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXJ5LnB1c2goMCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy9jb25zb2xlLmxvZyhcIkNUUyBQUk9DRVNTIElOUFVUIFZBTFVFUyBcIiwgdmFsdWVzKTtcbiAgICBsZXQgc3RyID0gU3RyaW5nLmZyb21DaGFyQ29kZSguLi5hcnkpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gICAgc3RyID0gc3RyLnJlcGxhY2UoL1tcXHUwMDAwXS9nLCAnJyk7XG4gICAgLy9zdHIgPSBzdHIucmVwbGFjZSgvW15cXHgyMC1cXHg3RV0vZywgXCJcIik7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIGN0c1JldmVydChcbiAgICBvdGhlck9iajogSU90aGVyRGF0YU9iaixcbiAgICByZXN1bHRzOiB7IFtrZXk6IHN0cmluZyB8IG51bWJlcl06IHN0cmluZyB8IG51bWJlciB9XG4gICkge1xuICAgIGNvbnN0IHZhbEFyeSA9IHRoaXMuc3RjUHJvY2Vzcyg8c3RyaW5nPm90aGVyT2JqLnZhbHVlKTtcbiAgICAvL2NvbnNvbGUubG9nKFwiVkFMIEFSUkFZXCIsIHZhbEFyeSk7XG4gICAgLy9jb25zb2xlLmxvZyhcIlBST0NFU1MgREFUQVwiLCBKU09OLnN0cmluZ2lmeShvdGhlck9iai5wcm9jZXNzRGF0YSkpO1xuICAgIGxldCBwcm9ncmVzcyA9IDA7XG4gICAgb3RoZXJPYmoucHJvY2Vzc0RhdGFbMF0uZGF0YS5mb3JFYWNoKChwcm9jZXNzKSA9PiB7XG4gICAgICBjb25zdCByZXM6IHsgW2tleTogc3RyaW5nIHwgbnVtYmVyXTogc3RyaW5nIHwgbnVtYmVyIH0gPSB7fTtcblxuICAgICAgaWYgKHZhbEFyeS5sZW5ndGggPj0gcHJvZ3Jlc3MpIHtcbiAgICAgICAgcmVzW3Byb2Nlc3MudmFsdWVdID0gdmFsQXJ5W3Byb2dyZXNzXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc1twcm9jZXNzLnZhbHVlXSA9IDA7XG4gICAgICB9XG4gICAgICByZXN1bHRzID0gT2JqZWN0LmFzc2lnbihyZXN1bHRzLCByZXMpO1xuICAgICAgKytwcm9ncmVzcztcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIGJpbmFyeVN0clRvRGVjaW1hbChzdHI6IHN0cmluZykge1xuICAgIHJldHVybiBwYXJzZUludChzdHIsIDIpO1xuICB9XG5cbiAgcmVwbGFjZUNoYXJBdChzdHJpbmc6IHN0cmluZywgaW5kZXg6IG51bWJlciwgY2hhcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHN0cmluZy5zdWJzdHJpbmcoMCwgaW5kZXgpICsgY2hhciArIHN0cmluZy5zdWJzdHJpbmcoaW5kZXggKyBjaGFyLmxlbmd0aClcbiAgICApO1xuICAgIC8vcmV0dXJuIHN0cmluZy5zdWJzdHIoMCwgaW5kZXgpICsgY2hhciArIHN0cmluZy5zdWJzdHIoaW5kZXggKyBjaGFyLmxlbmd0aCk7XG4gIH1cblxuICB3cml0ZUZvcm1WYWx1ZXNUb1Jhd09iaihcbiAgICBmb3JtVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9LFxuICAgIHJhd09iajogSVJhd0RhdGFPYmpbXVxuICApIHtcbiAgICAvLyByYXdPYmouZm9yRWFjaCgocmF3KSA9PiB7XG4gICAgLy8gICBpZiAoZm9ybVZhbHVlcy5oYXNPd25Qcm9wZXJ0eShyYXcubmFtZSkpIHtcbiAgICAvLyAgICAgcmF3LnZhbHVlID0gTWF0aC5yb3VuZChmb3JtVmFsdWVzW3Jhdy5uYW1lXSAvIHJhdy5tdWx0aSk7XG4gICAgLy8gICB9XG4gICAgLy8gfSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYXdPYmoubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZm9ybVZhbHVlcywgcmF3T2JqW2ldLm5hbWUpKSB7XG4gICAgICAgIHJhd09ialtpXS52YWx1ZSA9IE1hdGgucm91bmQoXG4gICAgICAgICAgKGZvcm1WYWx1ZXNbcmF3T2JqW2ldLm5hbWVdIGFzIG51bWJlcikgLyByYXdPYmpbaV0ubXVsdGlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJhd09iajtcbiAgfVxuXG4gIGdldFB3ZChyYXdWYWx1ZXM6IElSYXdEYXRhT2JqW10pIHtcbiAgICBjb25zdCBwd2RBcnJheTogbnVtYmVyW10gPSBbXTtcbiAgICBsZXQgaTogbnVtYmVyO1xuICAgIGxldCBuYW1lOiBzdHJpbmc7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykge1xuICAgICAgaWYgKGkgPCAxMCkge1xuICAgICAgICBuYW1lID0gJ3Bhc3NfMCcgKyBpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmFtZSA9ICdwYXNzXycgKyBpO1xuICAgICAgfVxuICAgICAgcmF3VmFsdWVzLmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgaWYgKHYubmFtZSA9PSBuYW1lKSB7XG4gICAgICAgICAgcHdkQXJyYXkucHVzaCh2LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHB3ZEFycmF5O1xuICB9XG5cbiAgc3RyVG9Qd2Qoc3RyaW5nOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwd2RBcnJheTogbnVtYmVyW10gPSBbXTtcbiAgICBsZXQgaTogbnVtYmVyO1xuXG4gICAgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICBzdHJpbmcgPSAnJztcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykge1xuICAgICAgaWYgKGkgPCBzdHJpbmcubGVuZ3RoKSB7XG4gICAgICAgIHB3ZEFycmF5LnB1c2goc3RyaW5nLmNoYXJDb2RlQXQoaSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHdkQXJyYXkucHVzaCgwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcHdkQXJyYXk7XG4gIH1cblxuICBjaGtQd2QoYXJyMTogbnVtYmVyW10sIGFycjI6IG51bWJlcltdKSB7XG4gICAgaWYgKFxuICAgICAgIUFycmF5LmlzQXJyYXkoYXJyMSkgfHxcbiAgICAgICFBcnJheS5pc0FycmF5KGFycjIpIHx8XG4gICAgICBhcnIxLmxlbmd0aCAhPT0gYXJyMi5sZW5ndGhcbiAgICApXG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycjEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnIxW2ldICE9PSBhcnIyW2ldKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB3cml0ZVB3ZFRvQ29uZmlnKHBhc3NBcnJheTogbnVtYmVyW10sIHJhd09iajogSVJhd0RhdGFPYmpbXSkge1xuICAgIGxldCBpOiBudW1iZXI7XG4gICAgbGV0IG5hbWU6IHN0cmluZztcblxuICAgIC8vY29uc29sZS5sb2coXCJCZWZvcmUgd3JpdGUgcGFzc3dvcmQgXCIsIEpTT04uc3RyaW5naWZ5KHJhd09iaikpO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHtcbiAgICAgIGlmIChpIDwgMTApIHtcbiAgICAgICAgbmFtZSA9ICdwYXNzXzAnICsgaTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5hbWUgPSAncGFzc18nICsgaTtcbiAgICAgIH1cbiAgICAgIHJhd09iai5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgIGlmICh2Lm5hbWUgPT0gbmFtZSkge1xuICAgICAgICAgIHYudmFsdWUgPSBwYXNzQXJyYXlbaV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vY29uc29sZS5sb2coXCJBZnRlciB3cml0ZSBwYXNzd29yZCBcIiwgSlNPTi5zdHJpbmdpZnkocmF3T2JqKSk7XG5cbiAgICByZXR1cm4gcmF3T2JqO1xuICB9XG5cbiAgZGlzcGxheVRpbWUoaG91cnM6IG51bWJlciwgbWluczogbnVtYmVyKSB7XG4gICAgLy9jb25zb2xlLmxvZyhcImhvdXJzID0gXCIsIGhvdXJzLCBcIiBtaW5zID0gXCIsIG1pbnMpO1xuICAgIGxldCBtOiBudW1iZXIgfCBzdHJpbmcgPSBtaW5zO1xuICAgIGxldCBwID0gJ2FtJztcbiAgICBpZiAobWlucyA8IDEwKSB7XG4gICAgICBtID0gJzAnICsgbWlucztcbiAgICB9XG4gICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgIHAgPSAncG0nO1xuICAgIH1cbiAgICBpZiAoaG91cnMgPT0gMCkge1xuICAgICAgaG91cnMgPSAxMjtcbiAgICB9XG4gICAgaWYgKGhvdXJzID4gMTIpIHtcbiAgICAgIGhvdXJzIC09IDEyO1xuICAgIH1cbiAgICByZXR1cm4gaG91cnMgKyAnOicgKyBtICsgJyAnICsgcDtcbiAgfVxuXG4gIGdldENodW5rVmFsdWVzKFxuICAgIHByb2Nlc3NEYXRhOiBJUHJvY2Vzc0RhdGFTdGVwW10sXG4gICAgcmF3RGF0YTogSVJhd0RhdGFPYmpbXSxcbiAgICBvdGhlckRhdGE6IElPdGhlckRhdGFPYmpbXVxuICApIHtcbiAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAvLyAgICdHRVQgQ0hVTksgVkFMVUVTICcsXG4gICAgLy8gICBKU09OLnN0cmluZ2lmeShyYXdEYXRhKSxcbiAgICAvLyAgICcgJyxcbiAgICAvLyAgIEpTT04uc3RyaW5naWZ5KG90aGVyRGF0YSlcbiAgICAvLyApO1xuICAgIGxldCB2OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgY29uc3QgdmFsdWVzOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0gW107XG4gICAgcHJvY2Vzc0RhdGEuZm9yRWFjaCgoY2h1bmspID0+IHtcbiAgICAgIC8vY29uc29sZS5sb2coJ1Byb2Nlc3MgUmF3IGNodW5rICcsIEpTT04uc3RyaW5naWZ5KGNodW5rKSk7XG4gICAgICBzd2l0Y2ggKGNodW5rLmZyb21EYXRhKSB7XG4gICAgICAgIGNhc2UgJ3Jhdyc6XG4gICAgICAgICAgcmF3RGF0YS5mb3JFYWNoKChyZCkgPT4ge1xuICAgICAgICAgICAgaWYgKHJkLm5hbWUgPT0gY2h1bmsudmFsdWUpIHtcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnUkFXIGNodW5rIG5hbWU6ICcsIHJkLm5hbWUpO1xuICAgICAgICAgICAgICB2ID0gcmQudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ290aGVyJzpcbiAgICAgICAgICBvdGhlckRhdGEuZm9yRWFjaCgob2QpID0+IHtcbiAgICAgICAgICAgIGlmIChvZC5uYW1lID09IGNodW5rLnZhbHVlKSB7XG4gICAgICAgICAgICAgIHYgPSBvZC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbm8nOlxuICAgICAgICAgIHYgPSBjaHVuay52YWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBjaHVuay5zdHJMZW5ndGggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHZhbHVlcy5wdXNoKHYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcGFkID0gdi50b1N0cmluZygpLnBhZFN0YXJ0KGNodW5rLnN0ckxlbmd0aCwgJzAnKTtcbiAgICAgICAgdmFsdWVzLnB1c2gocGFkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgdWludDhBcnJheVRvQXJyYXkodWludDg6IFVpbnQ4QXJyYXkpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odWludDgpO1xuICB9XG5cbiAgYXJyYXlUb1VpbnQ4QXJyYXkoYXJyYXk6IG51bWJlcltdKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShhcnJheSk7XG4gIH1cblxuICBpc1VpbnQ4QXJyYXkodjogbnVtYmVyW10gfCBVaW50OEFycmF5KSB7XG4gICAgY29uc3QgaXNTdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuICAgIHJldHVybiBpc1N0ci5jYWxsKHYpID09PSAnW29iamVjdCBVaW50OEFycmF5XSc7XG4gIH1cblxuICBwcm9jZXNzUmF3KGlucHV0OiBudW1iZXJbXSB8IFVpbnQ4QXJyYXksIGNvbmZpZ09iajogSUNvbmZpZyB8IElEaXNwbGF5KSB7XG4gICAgbGV0IGJ1ZmZlcjogVWludDhBcnJheTtcbiAgICBpZiAodGhpcy5pc1VpbnQ4QXJyYXkoaW5wdXQpKSB7XG4gICAgICBidWZmZXIgPSBpbnB1dCBhcyBVaW50OEFycmF5O1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXIgPSB0aGlzLmFycmF5VG9VaW50OEFycmF5KGlucHV0IGFzIG51bWJlcltdKTtcbiAgICB9XG4gICAgY29uc3QgcmF3RGF0YUJ1ZmZlciA9IG5ldyBEYXRhVmlldyhidWZmZXIuYnVmZmVyLCAwLCAyNTQpO1xuICAgIC8vY29uc29sZS5sb2coJ1BST0NFU1MgUkFXIENPTkZJRyAnLCByYXdEYXRhQnVmZmVyKTtcbiAgICBjb25maWdPYmoucmF3RGF0YS5mb3JFYWNoKChkYXRhcG9pbnQpID0+IHtcbiAgICAgIGRhdGFwb2ludC52YWx1ZSA9XG4gICAgICAgIHRoaXMuZ2V0VmFsdWVmcm9tQnVmZmVyKGRhdGFwb2ludC5idWZmZXIsIHJhd0RhdGFCdWZmZXIpICpcbiAgICAgICAgZGF0YXBvaW50Lm11bHRpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvY2Vzc090aGVyKGNvbmZpZ09iajogSUNvbmZpZyB8IElEaXNwbGF5KSB7XG4gICAgY29uZmlnT2JqLm90aGVyRGF0YS5mb3JFYWNoKChkYXRhUG9pbnQpID0+IHtcbiAgICAgIGRhdGFQb2ludC5wcm9jZXNzRGF0YS5mb3JFYWNoKChwcm9jZXNzKSA9PiB7XG4gICAgICAgIHRoaXMucnVuUHJvY2Vzcyhwcm9jZXNzLCBjb25maWdPYmoucmF3RGF0YSwgY29uZmlnT2JqLm90aGVyRGF0YSk7XG4gICAgICAgIGRhdGFQb2ludC52YWx1ZSA9IHByb2Nlc3MudmFsdWU7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
524
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1wcm9jZXNzaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXZpY2UtY29uZmlnLWludGVyYWN0aW9uL3NyYy9saWIvZGF0YXNldC1wcm9jZXNzaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFjM0MsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxrQkFBa0I7SUFDbEI7OztPQUdHO0lBQ0gsa0JBQWtCLENBQUMsR0FBZSxFQUFFLE1BQWdCO1FBQ2xELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsUUFBUSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ25CLEtBQUssQ0FBQztvQkFDSixLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3JDLE1BQU07Z0JBQ1IsS0FBSyxFQUFFO29CQUNMLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNsRCxNQUFNO2dCQUNSLEtBQUssRUFBRTtvQkFDTCxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDbEQsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNuQixLQUFLLENBQUM7b0JBQ0osS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN0QyxNQUFNO2dCQUNSLEtBQUssRUFBRTtvQkFDTCxL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QztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBNkI7UUFDeEMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN4QyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDakUsU0FBUyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQXprQlUsd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIElCdWZmZXJPYmosXG4gIElQcm9jZXNzRGF0YU9iaixcbiAgSVByb2Nlc3NEYXRhU3RlcCxcbiAgSVJhd0RhdGFPYmosXG4gIElPdGhlckRhdGFPYmosXG4gIElDb25maWcsXG4gIElEaXNwbGF5LFxufSBmcm9tICcuLi9saWIvaW50ZXJmYWNlcy9kZXZpY2VzLWxpc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YXNldFByb2Nlc3NpbmdTZXJ2aWNlIHtcbiAgLy9jb25zdHJ1Y3RvcigpIHt9XG4gIC8qXG4gICAqIEZvciB1c2Ugd2l0aCBEYXRhVmlld1xuICAgKlxuICAgKi9cbiAgZ2V0VmFsdWVmcm9tQnVmZmVyKG9iajogSUJ1ZmZlck9iaiwgYnVmZmVyOiBEYXRhVmlldykge1xuICAgIGxldCB2YWx1ZSA9IDA7XG4gICAgaWYgKG9iai5zaWduZWQpIHtcbiAgICAgIHN3aXRjaCAob2JqLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgdmFsdWUgPSBidWZmZXIuZ2V0SW50OChvYmoucG9zaXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE2OlxuICAgICAgICAgIHZhbHVlID0gYnVmZmVyLmdldEludDE2KG9iai5wb3NpdGlvbiwgb2JqLmxpdHRsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgdmFsdWUgPSBidWZmZXIuZ2V0SW50MzIob2JqLnBvc2l0aW9uLCBvYmoubGl0dGxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoIChvYmoubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICB2YWx1ZSA9IGJ1ZmZlci5nZXRVaW50OChvYmoucG9zaXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE2OlxuICAgICAgICAgIHZhbHVlID0gYnVmZmVyLmdldFVpbnQxNihvYmoucG9zaXRpb24sIG9iai5saXR0bGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgIHZhbHVlID0gYnVmZmVyLmdldFVpbnQzMihvYmoucG9zaXRpb24sIG9iai5saXR0bGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKlxuICAgKiBGb3IgdXNlIHdpdGggRGF0YVZpZXdcbiAgICpcbiAgICpcbiAgICovXG4gIHdyaXRlVmFsdWVUb0J1ZmZlcihvYmo6IElCdWZmZXJPYmosIHZhbHVlOiBudW1iZXIsIGJ1ZmZlcjogRGF0YVZpZXcpIHtcbiAgICBpZiAob2JqLnNpZ25lZCkge1xuICAgICAgc3dpdGNoIChvYmoubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICBidWZmZXIuc2V0SW50OChvYmoucG9zaXRpb24sIHZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICBidWZmZXIuc2V0SW50MTYob2JqLnBvc2l0aW9uLCB2YWx1ZSwgb2JqLmxpdHRsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgYnVmZmVyLnNldEludDMyKG9iai5wb3NpdGlvbiwgdmFsdWUsIG9iai5saXR0bGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKG9iai5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgIGJ1ZmZlci5zZXRVaW50OChvYmoucG9zaXRpb24sIHZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICBidWZmZXIuc2V0VWludDE2KG9iai5wb3NpdGlvbiwgdmFsdWUsIG9iai5saXR0bGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgIGJ1ZmZlci5zZXRVaW50MzIob2JqLnBvc2l0aW9uLCB2YWx1ZSwgb2JqLmxpdHRsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcnVuUHJvY2VzcyhcbiAgICBwcm9jZXNzOiBJUHJvY2Vzc0RhdGFPYmosXG4gICAgcmF3RGF0YTogSVJhd0RhdGFPYmpbXSxcbiAgICBvdGhlckRhdGE6IElPdGhlckRhdGFPYmpbXVxuICApIHtcbiAgICBjb25zdCB2YWx1ZXM6IChzdHJpbmcgfCBudW1iZXIpW10gPSB0aGlzLmdldENodW5rVmFsdWVzKFxuICAgICAgcHJvY2Vzcy5kYXRhLFxuICAgICAgcmF3RGF0YSxcbiAgICAgIG90aGVyRGF0YVxuICAgICk7XG4gICAgLy9jb25zb2xlLmxvZygncHJvY2VzcyB2YWx1ZXMgJywgdmFsdWVzKTtcbiAgICBsZXQgcFZhbDogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiA9IDA7XG4gICAgc3dpdGNoIChwcm9jZXNzLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2Fzcyc6XG4gICAgICAgIHBWYWwgPSB0aGlzLmFzc2VtYmxlUHJvY2Vzcyh2YWx1ZXMpO1xuICAgICAgICBwcm9jZXNzLnZhbHVlID0gcFZhbDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAnY29tJzpcbiAgICAgICAgcFZhbCA9IHRoaXMuY29tcGFyZVByb2Nlc3MoXG4gICAgICAgICAgdmFsdWVzIGFzIFtudW1iZXIsICc8JyB8ICc8PScgfCAnPT0nIHwgJz49JyB8ICc+JywgbnVtYmVyXSxcbiAgICAgICAgICBwcm9jZXNzXG4gICAgICAgICk7XG4gICAgICAgIHByb2Nlc3MudmFsdWUgPSBwVmFsO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICdjYWwnOlxuICAgICAgICBwVmFsID0gdGhpcy5jYWxjdWxhdGVQcm9jZXNzKFxuICAgICAgICAgIHZhbHVlcyBhcyBbbnVtYmVyLCAnKycgfCAnLScgfCAnLycgfCAnKicsIG51bWJlcl1cbiAgICAgICAgKTtcbiAgICAgICAgcHJvY2Vzcy52YWx1ZSA9IHBWYWw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ3RmbSc6XG4gICAgICAgIHBWYWwgPSB0aGlzLnRmbVByb2Nlc3ModmFsdWVzIGFzIG51bWJlcltdKTtcbiAgICAgICAgcHJvY2Vzcy52YWx1ZSA9IHBWYWw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ2NkdCc6XG4gICAgICAgIHBWYWwgPSB0aGlzLmNkdFByb2Nlc3ModmFsdWVzIGFzIHN0cmluZ1tdKTtcbiAgICAgICAgcHJvY2Vzcy52YWx1ZSA9IHBWYWw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ2l0ZCc6XG4gICAgICAgIHBWYWwgPSB0aGlzLml0ZFByb2Nlc3ModmFsdWVzIGFzIG51bWJlcltdKTtcbiAgICAgICAgcHJvY2Vzcy52YWx1ZSA9IHBWYWw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ2l0cyc6XG4gICAgICAgIHBWYWwgPSB0aGlzLml0c1Byb2Nlc3ModmFsdWVzIGFzIG51bWJlcltdKTtcbiAgICAgICAgcHJvY2Vzcy52YWx1ZSA9IHBWYWw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ2Jzdic6XG4gICAgICAgIHBWYWwgPSB0aGlzLmJzdlByb2Nlc3ModmFsdWVzKTtcbiAgICAgICAgcHJvY2Vzcy52YWx1ZSA9IHBWYWw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ3ZmYSc6XG4gICAgICAgIHBWYWwgPSB0aGlzLnZmYVByb2Nlc3ModmFsdWVzIGFzIG51bWJlcltdLCBwcm9jZXNzKTtcbiAgICAgICAgcHJvY2Vzcy52YWx1ZSA9IHBWYWw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ2N0cyc6XG4gICAgICAgIHBWYWwgPSB0aGlzLmN0c1Byb2Nlc3ModmFsdWVzIGFzIG51bWJlcltdKTtcbiAgICAgICAgcHJvY2Vzcy52YWx1ZSA9IHBWYWw7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBhc3NlbWJsZVByb2Nlc3ModmFsdWVzOiAoc3RyaW5nIHwgbnVtYmVyKVtdKSB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIHZhbHVlcy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICByZXN1bHQgKz0gdjtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZGlzYXNzZW1ibGVQcm9jZXNzKHN0cmluZzogc3RyaW5nLCB2YWx1ZXM6IElQcm9jZXNzRGF0YVN0ZXBbXSkge1xuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgbGVuZ3RoID0gMDtcbiAgICB2YWx1ZXMuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwgJ3N0ckxlbmd0aCcpKSB7XG4gICAgICAgIGxlbmd0aCA9IHZhbC5zdHJMZW5ndGggYXMgbnVtYmVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3RyID0gdmFsLnZhbHVlIGFzIHN0cmluZztcbiAgICAgICAgbGVuZ3RoID0gc3RyLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGlmICh2YWwuZnJvbURhdGEgPT0gJ3JhdycpIHtcbiAgICAgICAgcmVzdWx0W3ZhbC52YWx1ZV0gPSBOdW1iZXIoc3RyaW5nLnN1YnN0cmluZyhpLCBpICsgbGVuZ3RoKSk7XG4gICAgICB9XG4gICAgICBpID0gaSArIGxlbmd0aDtcbiAgICB9KTtcbiAgICAvL2NvbnNvbGUubG9nKCdEaXNhc3NlbWJsZSBSZXN1bHQgJywgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGNvbXBhcmVQcm9jZXNzKFxuICAgIHZhbHVlczogW251bWJlciwgJzwnIHwgJzw9JyB8ICc9PScgfCAnPj0nIHwgJz4nLCBudW1iZXJdLFxuICAgIHByb2Nlc3M6IElQcm9jZXNzRGF0YU9ialxuICApIHtcbiAgICBjb25zdCByZXN1bHQ6IGJvb2xlYW4gPSB0aGlzLmNvbXBhcmVWYWx1ZXModmFsdWVzWzBdLCB2YWx1ZXNbMV0sIHZhbHVlc1syXSk7XG4gICAgbGV0IHRleHQgPSAnTi9BJztcbiAgICBpZiAoJ2NvbVR4dCcgaW4gcHJvY2Vzcykge1xuICAgICAgaWYgKHByb2Nlc3MuY29tVHh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRleHQgPSBwcm9jZXNzLmNvbVR4dFswXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcHJvY2Vzcy5jb21UeHRbMV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICBjb21wYXJlVmFsdWVzKHYxOiBudW1iZXIsIG9wOiAnPCcgfCAnPD0nIHwgJz09JyB8ICc+PScgfCAnPicsIHYyOiBudW1iZXIpIHtcbiAgICBzd2l0Y2ggKG9wKSB7XG4gICAgICBjYXNlICc8JzpcbiAgICAgICAgcmV0dXJuIHYxIDwgdjI7XG4gICAgICBjYXNlICc8PSc6XG4gICAgICAgIHJldHVybiB2MSA8PSB2MjtcbiAgICAgIGNhc2UgJz09JzpcbiAgICAgICAgcmV0dXJuIHYxID09IHYyO1xuICAgICAgY2FzZSAnPj0nOlxuICAgICAgICByZXR1cm4gdjEgPj0gdjI7XG4gICAgICBjYXNlICc+JzpcbiAgICAgICAgcmV0dXJuIHYxID4gdjI7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2FsY3VsYXRlUHJvY2Vzcyh2YWx1ZXM6IFtudW1iZXIsICcrJyB8ICctJyB8ICcvJyB8ICcqJywgbnVtYmVyXSkge1xuICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZVZhbHVlcyh2YWx1ZXNbMF0sIHZhbHVlc1sxXSwgdmFsdWVzWzJdKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZVZhbHVlcyh2MTogbnVtYmVyLCBvcDogJysnIHwgJy0nIHwgJy8nIHwgJyonLCB2MjogbnVtYmVyKSB7XG4gICAgc3dpdGNoIChvcCkge1xuICAgICAgY2FzZSAnKyc6XG4gICAgICAgIHJldHVybiB2MSArIHYyO1xuICAgICAgY2FzZSAnLSc6XG4gICAgICAgIHJldHVybiB2MSAtIHYyO1xuICAgICAgY2FzZSAnLyc6XG4gICAgICAgIHJldHVybiB2MSAvIHYyO1xuICAgICAgY2FzZSAnKic6XG4gICAgICAgIHJldHVybiB2MSAqIHYyO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgdGZtUHJvY2Vzcyh2YWx1ZXM6IG51bWJlcltdKSB7XG4gICAgY29uc3QgaG91cnM6IG51bWJlciA9IE1hdGguZmxvb3IoKHZhbHVlc1swXSAqIDYwKSAvIDM2MDApO1xuICAgIGNvbnN0IG1pbnM6IG51bWJlciA9IE1hdGguZmxvb3IoKHZhbHVlc1swXSAqIDYwIC0gaG91cnMgKiAzNjAwKSAvIDYwKTtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5VGltZShob3VycywgbWlucyk7XG4gIH1cblxuICBjZHRQcm9jZXNzKHZhbHVlczogc3RyaW5nW10pIHtcbiAgICBjb25zdCBob3VyczogbnVtYmVyID0gcGFyc2VJbnQodmFsdWVzWzBdLnN1YnN0cmluZygxMSwgMTMpKTtcbiAgICBjb25zdCBtaW5zOiBudW1iZXIgPSBwYXJzZUludCh2YWx1ZXNbMF0uc3Vic3RyaW5nKDE0LCAxNikpO1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlUaW1lKGhvdXJzLCBtaW5zKTtcbiAgfVxuXG4gIC8vTmV3IHByb2Nlc3MgdG8gcGljayB2YWx1ZSBmcm9tIGFycmF5IGJhc2VkIG9uIGludGVyZ2VyIHZhbHVlXG4gIHZmYVByb2Nlc3ModmFsdWVzOiBudW1iZXJbXSwgcHJvY2VzczogSVByb2Nlc3NEYXRhT2JqKSB7XG4gICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNbMF07XG4gICAgaWYgKHByb2Nlc3MudmFsdWVzTGlzdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodmFsdWUgPCBwcm9jZXNzLnZhbHVlc0xpc3QubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzLnZhbHVlc0xpc3RbdmFsdWVdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICduaXAnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ24vYSc7XG4gICAgfVxuICB9XG5cbiAgaXRkUHJvY2Vzcyh2YWx1ZXM6IG51bWJlcltdKSB7XG4gICAgbGV0IGhvdXJzOiBudW1iZXIgPSBNYXRoLmZsb29yKCh2YWx1ZXNbMF0gKiA2MCkgLyAzNjAwKTtcbiAgICAvL2NvbnNvbGUubG9nKFwiaG91cnMgXCIsIGhvdXJzKTtcbiAgICBjb25zdCBtaW5zOiBudW1iZXIgPSBNYXRoLmZsb29yKCh2YWx1ZXNbMF0gKiA2MCAtIGhvdXJzICogMzYwMCkgLyA2MCk7XG4gICAgLy9jb25zb2xlLmxvZyhcIm1pbnMgXCIsIG1pbnMpO1xuICAgIGxldCBoOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgbGV0IG06IG51bWJlciB8IHN0cmluZztcbiAgICBpZiAoaG91cnMgPiAyMykge1xuICAgICAgaG91cnMgPSBob3VycyAtIDI0O1xuICAgIH1cbiAgICBpZiAoaG91cnMgPCAxMCkge1xuICAgICAgaCA9ICcwJyArIGhvdXJzO1xuICAgIH0gZWxzZSB7XG4gICAgICBoID0gaG91cnM7XG4gICAgfVxuICAgIGlmIChtaW5zIDwgMTApIHtcbiAgICAgIG0gPSAnMCcgKyBtaW5zO1xuICAgIH0gZWxzZSB7XG4gICAgICBtID0gbWlucztcbiAgICB9XG4gICAgY29uc3Qgc3RyaW5nOiBzdHJpbmcgPSAnMDAwMC0wMC0wMFQnICsgaCArICc6JyArIG07XG4gICAgLy9jb25zb2xlLmxvZyhcIiQlXiYmXiUlJCQlXiYmJl4lJSUlXl5eJiYmXl4lXiUlJV5eXiYgZHQgc3RyaW5nIFwiLCBzdHJpbmcpO1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBkdGlQcm9jZXNzKHN0cmluZzogc3RyaW5nLCB2YWx1ZXM6IElQcm9jZXNzRGF0YVN0ZXBbXSkge1xuICAgIC8vY29uc29sZS5sb2coXCJkdGlQcm9jZXNzIGlucHV0cyBzdHJpbmc6IFwiLCBzdHJpbmcsIFwiIFZhbHVlczogXCIsIHZhbHVlcyk7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZyB8IG51bWJlcl06IG51bWJlciB9ID0ge307XG4gICAgbGV0IGg6IG51bWJlcjtcbiAgICBsZXQgbTogbnVtYmVyO1xuICAgIHZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgIC8vIGggPSBOdW1iZXIoc3RyaW5nLnN1YnN0cigxMSwgMikpO1xuICAgICAgLy8gbSA9IE51bWJlcihzdHJpbmcuc3Vic3RyKDE0LCAyKSk7XG4gICAgICBoID0gTnVtYmVyKHN0cmluZy5zdWJzdHJpbmcoMTEsIDEzKSk7XG4gICAgICBtID0gTnVtYmVyKHN0cmluZy5zdWJzdHJpbmcoMTQsIDE2KSk7XG4gICAgICByZXN1bHRbdmFsLnZhbHVlXSA9IGggKiA2MCArIG07XG4gICAgfSk7XG4gICAgLy9jb25zb2xlLmxvZyhcImRhdGUgdG8gaW50ZWdlciBSZXN1bHQgXCIsIEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpdHNQcm9jZXNzKHZhbHVlczogbnVtYmVyW10pIHtcbiAgICAvL2NvbnNvbGUubG9nKCdpdHNQcm9jZXNzIHZhbHVlcycsIEpTT04uc3RyaW5naWZ5KHZhbHVlcykpO1xuICAgIGNvbnN0IHN0cjogc3RyaW5nID0gdmFsdWVzWzBdLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIHN0aVByb2Nlc3Moc3RyaW5nOiBzdHJpbmcsIHZhbHVlczogSVByb2Nlc3NEYXRhU3RlcFtdKSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZyB8IG51bWJlcl06IG51bWJlciB9ID0ge307XG4gICAgdmFsdWVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgcmVzdWx0W3ZhbC52YWx1ZV0gPSBOdW1iZXIoc3RyaW5nKTtcbiAgICB9KTtcbiAgICAvL2NvbnNvbGUubG9nKFwic3RyaW5nIHRvIGludGVnZXIgUmVzdWx0IFwiLCBKU09OLnN0cmluZ2lmeShyZXN1bHQpKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYnN2UHJvY2Vzcyh2YWx1ZXM6IChudW1iZXIgfCBzdHJpbmcpW10pIHtcbiAgICBjb25zdCBzdGFydFZhbHVlOiBzdHJpbmcgPSB2YWx1ZXNbMF0gYXMgc3RyaW5nO1xuICAgIGNvbnN0IHBvczE6IG51bWJlciA9IHZhbHVlc1sxXSBhcyBudW1iZXI7XG4gICAgY29uc3QgcG9zMjogbnVtYmVyID0gcG9zMSArIDE7XG4gICAgY29uc3QgYmluYXJ5U3RyOiBzdHJpbmcgPSBwYXJzZUludChzdGFydFZhbHVlLCAxMClcbiAgICAgIC50b1N0cmluZygyKVxuICAgICAgLnBhZFN0YXJ0KDQsICcwJyk7XG4gICAgcmV0dXJuIGJpbmFyeVN0ci5zdWJzdHJpbmcocG9zMSwgcG9zMik7XG4gIH1cblxuICBic3ZSZXZlcnQoXG4gICAgc3RyaW5nOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBJUHJvY2Vzc0RhdGFTdGVwW10sXG4gICAgYnNzT2JqOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9XG4gICkge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnNzT2JqLCB2YWx1ZXNbMF0udmFsdWUpKSB7XG4gICAgICBic3NPYmpbdmFsdWVzWzBdLnZhbHVlXSA9IHRoaXMucmVwbGFjZUNoYXJBdChcbiAgICAgICAgYnNzT2JqW3ZhbHVlc1swXS52YWx1ZV0gYXMgc3RyaW5nLFxuICAgICAgICB2YWx1ZXNbMV0udmFsdWUgYXMgbnVtYmVyLFxuICAgICAgICBzdHJpbmdcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJzc09ialt2YWx1ZXNbMF0udmFsdWVdID0gJzAwMDAnO1xuICAgICAgYnNzT2JqW3ZhbHVlc1swXS52YWx1ZV0gPSB0aGlzLnJlcGxhY2VDaGFyQXQoXG4gICAgICAgIGJzc09ialt2YWx1ZXNbMF0udmFsdWVdIGFzIHN0cmluZyxcbiAgICAgICAgdmFsdWVzWzFdLnZhbHVlIGFzIG51bWJlcixcbiAgICAgICAgc3RyaW5nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYnNzT2JqO1xuICB9XG5cbiAgc3RjUHJvY2Vzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5pdEFycmF5ID0gdmFsdWUuc3BsaXQoJycpO1xuICAgIGNvbnN0IHJlc3VsdEFycmF5OiBudW1iZXJbXSA9IFtdO1xuICAgIGluaXRBcnJheS5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICByZXN1bHRBcnJheS5wdXNoKHYuY2hhckNvZGVBdCgwKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdEFycmF5O1xuICB9XG5cbiAgY3RzUHJvY2Vzcyh2YWx1ZXM6IG51bWJlcltdKSB7XG4gICAgLy8gbGV0IHJlc3VsdDogc3RyaW5nID0gXCJcIjtcbiAgICBjb25zdCBhcnk6IG51bWJlcltdID0gW107XG4gICAgdmFsdWVzLmZvckVhY2goKHYpID0+IHtcbiAgICAgIGlmICh2ID49IDApIHtcbiAgICAgICAgYXJ5LnB1c2godik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcnkucHVzaCgwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvL2NvbnNvbGUubG9nKFwiQ1RTIFBST0NFU1MgSU5QVVQgVkFMVUVTIFwiLCB2YWx1ZXMpO1xuICAgIGxldCBzdHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmFyeSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRyb2wtcmVnZXhcbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvW1xcdTAwMDBdL2csICcnKTtcbiAgICAvL3N0ciA9IHN0ci5yZXBsYWNlKC9bXlxceDIwLVxceDdFXS9nLCBcIlwiKTtcbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgY3RzUmV2ZXJ0KFxuICAgIG90aGVyT2JqOiBJT3RoZXJEYXRhT2JqLFxuICAgIHJlc3VsdHM6IHsgW2tleTogc3RyaW5nIHwgbnVtYmVyXTogc3RyaW5nIHwgbnVtYmVyIH1cbiAgKSB7XG4gICAgY29uc3QgdmFsQXJ5ID0gdGhpcy5zdGNQcm9jZXNzKDxzdHJpbmc+b3RoZXJPYmoudmFsdWUpO1xuICAgIC8vY29uc29sZS5sb2coXCJWQUwgQVJSQVlcIiwgdmFsQXJ5KTtcbiAgICAvL2NvbnNvbGUubG9nKFwiUFJPQ0VTUyBEQVRBXCIsIEpTT04uc3RyaW5naWZ5KG90aGVyT2JqLnByb2Nlc3NEYXRhKSk7XG4gICAgbGV0IHByb2dyZXNzID0gMDtcbiAgICBvdGhlck9iai5wcm9jZXNzRGF0YVswXS5kYXRhLmZvckVhY2goKHByb2Nlc3MpID0+IHtcbiAgICAgIGNvbnN0IHJlczogeyBba2V5OiBzdHJpbmcgfCBudW1iZXJdOiBzdHJpbmcgfCBudW1iZXIgfSA9IHt9O1xuXG4gICAgICBpZiAodmFsQXJ5Lmxlbmd0aCA+PSBwcm9ncmVzcykge1xuICAgICAgICByZXNbcHJvY2Vzcy52YWx1ZV0gPSB2YWxBcnlbcHJvZ3Jlc3NdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzW3Byb2Nlc3MudmFsdWVdID0gMDtcbiAgICAgIH1cbiAgICAgIHJlc3VsdHMgPSBPYmplY3QuYXNzaWduKHJlc3VsdHMsIHJlcyk7XG4gICAgICArK3Byb2dyZXNzO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgYmluYXJ5U3RyVG9EZWNpbWFsKHN0cjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHN0ciwgMik7XG4gIH1cblxuICByZXBsYWNlQ2hhckF0KHN0cmluZzogc3RyaW5nLCBpbmRleDogbnVtYmVyLCBjaGFyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgc3RyaW5nLnN1YnN0cmluZygwLCBpbmRleCkgKyBjaGFyICsgc3RyaW5nLnN1YnN0cmluZyhpbmRleCArIGNoYXIubGVuZ3RoKVxuICAgICk7XG4gICAgLy9yZXR1cm4gc3RyaW5nLnN1YnN0cigwLCBpbmRleCkgKyBjaGFyICsgc3RyaW5nLnN1YnN0cihpbmRleCArIGNoYXIubGVuZ3RoKTtcbiAgfVxuXG4gIHdyaXRlRm9ybVZhbHVlc1RvUmF3T2JqKFxuICAgIGZvcm1WYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0sXG4gICAgcmF3T2JqOiBJUmF3RGF0YU9ialtdXG4gICkge1xuICAgIC8vIHJhd09iai5mb3JFYWNoKChyYXcpID0+IHtcbiAgICAvLyAgIGlmIChmb3JtVmFsdWVzLmhhc093blByb3BlcnR5KHJhdy5uYW1lKSkge1xuICAgIC8vICAgICByYXcudmFsdWUgPSBNYXRoLnJvdW5kKGZvcm1WYWx1ZXNbcmF3Lm5hbWVdIC8gcmF3Lm11bHRpKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJhd09iai5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtVmFsdWVzLCByYXdPYmpbaV0ubmFtZSkpIHtcbiAgICAgICAgcmF3T2JqW2ldLnZhbHVlID0gTWF0aC5yb3VuZChcbiAgICAgICAgICAoZm9ybVZhbHVlc1tyYXdPYmpbaV0ubmFtZV0gYXMgbnVtYmVyKSAvIHJhd09ialtpXS5tdWx0aVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmF3T2JqO1xuICB9XG5cbiAgZ2V0UHdkKHJhd1ZhbHVlczogSVJhd0RhdGFPYmpbXSkge1xuICAgIGNvbnN0IHB3ZEFycmF5OiBudW1iZXJbXSA9IFtdO1xuICAgIGxldCBpOiBudW1iZXI7XG4gICAgbGV0IG5hbWU6IHN0cmluZztcblxuICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDEwKSB7XG4gICAgICAgIG5hbWUgPSAncGFzc18wJyArIGk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuYW1lID0gJ3Bhc3NfJyArIGk7XG4gICAgICB9XG4gICAgICByYXdWYWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICBpZiAodi5uYW1lID09IG5hbWUpIHtcbiAgICAgICAgICBwd2RBcnJheS5wdXNoKHYudmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHdkQXJyYXk7XG4gIH1cblxuICBzdHJUb1B3ZChzdHJpbmc6IHN0cmluZykge1xuICAgIGNvbnN0IHB3ZEFycmF5OiBudW1iZXJbXSA9IFtdO1xuICAgIGxldCBpOiBudW1iZXI7XG5cbiAgICBpZiAoc3RyaW5nID09IG51bGwpIHtcbiAgICAgIHN0cmluZyA9ICcnO1xuICAgIH1cblxuICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7XG4gICAgICBpZiAoaSA8IHN0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgcHdkQXJyYXkucHVzaChzdHJpbmcuY2hhckNvZGVBdChpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwd2RBcnJheS5wdXNoKDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwd2RBcnJheTtcbiAgfVxuXG4gIGNoa1B3ZChhcnIxOiBudW1iZXJbXSwgYXJyMjogbnVtYmVyW10pIHtcbiAgICBpZiAoXG4gICAgICAhQXJyYXkuaXNBcnJheShhcnIxKSB8fFxuICAgICAgIUFycmF5LmlzQXJyYXkoYXJyMikgfHxcbiAgICAgIGFycjEubGVuZ3RoICE9PSBhcnIyLmxlbmd0aFxuICAgIClcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyMS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFycjFbaV0gIT09IGFycjJbaV0pIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHdyaXRlUHdkVG9Db25maWcocGFzc0FycmF5OiBudW1iZXJbXSwgcmF3T2JqOiBJUmF3RGF0YU9ialtdKSB7XG4gICAgbGV0IGk6IG51bWJlcjtcbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuXG4gICAgLy9jb25zb2xlLmxvZyhcIkJlZm9yZSB3cml0ZSBwYXNzd29yZCBcIiwgSlNPTi5zdHJpbmdpZnkocmF3T2JqKSk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykge1xuICAgICAgaWYgKGkgPCAxMCkge1xuICAgICAgICBuYW1lID0gJ3Bhc3NfMCcgKyBpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmFtZSA9ICdwYXNzXycgKyBpO1xuICAgICAgfVxuICAgICAgcmF3T2JqLmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgaWYgKHYubmFtZSA9PSBuYW1lKSB7XG4gICAgICAgICAgdi52YWx1ZSA9IHBhc3NBcnJheVtpXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy9jb25zb2xlLmxvZyhcIkFmdGVyIHdyaXRlIHBhc3N3b3JkIFwiLCBKU09OLnN0cmluZ2lmeShyYXdPYmopKTtcblxuICAgIHJldHVybiByYXdPYmo7XG4gIH1cblxuICBkaXNwbGF5VGltZShob3VyczogbnVtYmVyLCBtaW5zOiBudW1iZXIpIHtcbiAgICAvL2NvbnNvbGUubG9nKFwiaG91cnMgPSBcIiwgaG91cnMsIFwiIG1pbnMgPSBcIiwgbWlucyk7XG4gICAgbGV0IG06IG51bWJlciB8IHN0cmluZyA9IG1pbnM7XG4gICAgbGV0IHAgPSAnYW0nO1xuICAgIGlmIChtaW5zIDwgMTApIHtcbiAgICAgIG0gPSAnMCcgKyBtaW5zO1xuICAgIH1cbiAgICBpZiAoaG91cnMgPiAxMSkge1xuICAgICAgcCA9ICdwbSc7XG4gICAgfVxuICAgIGlmIChob3VycyA9PSAwKSB7XG4gICAgICBob3VycyA9IDEyO1xuICAgIH1cbiAgICBpZiAoaG91cnMgPiAxMikge1xuICAgICAgaG91cnMgLT0gMTI7XG4gICAgfVxuICAgIHJldHVybiBob3VycyArICc6JyArIG0gKyAnICcgKyBwO1xuICB9XG5cbiAgZ2V0Q2h1bmtWYWx1ZXMoXG4gICAgcHJvY2Vzc0RhdGE6IElQcm9jZXNzRGF0YVN0ZXBbXSxcbiAgICByYXdEYXRhOiBJUmF3RGF0YU9ialtdLFxuICAgIG90aGVyRGF0YTogSU90aGVyRGF0YU9ialtdXG4gICkge1xuICAgIC8vIGNvbnNvbGUubG9nKFxuICAgIC8vICAgJ0dFVCBDSFVOSyBWQUxVRVMgJyxcbiAgICAvLyAgIEpTT04uc3RyaW5naWZ5KHJhd0RhdGEpLFxuICAgIC8vICAgJyAnLFxuICAgIC8vICAgSlNPTi5zdHJpbmdpZnkob3RoZXJEYXRhKVxuICAgIC8vICk7XG4gICAgbGV0IHY6IHN0cmluZyB8IG51bWJlcjtcbiAgICBjb25zdCB2YWx1ZXM6IChzdHJpbmcgfCBudW1iZXIpW10gPSBbXTtcbiAgICBwcm9jZXNzRGF0YS5mb3JFYWNoKChjaHVuaykgPT4ge1xuICAgICAgLy9jb25zb2xlLmxvZygnUHJvY2VzcyBSYXcgY2h1bmsgJywgSlNPTi5zdHJpbmdpZnkoY2h1bmspKTtcbiAgICAgIHN3aXRjaCAoY2h1bmsuZnJvbURhdGEpIHtcbiAgICAgICAgY2FzZSAncmF3JzpcbiAgICAgICAgICByYXdEYXRhLmZvckVhY2goKHJkKSA9PiB7XG4gICAgICAgICAgICBpZiAocmQubmFtZSA9PSBjaHVuay52YWx1ZSkge1xuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdSQVcgY2h1bmsgbmFtZTogJywgcmQubmFtZSk7XG4gICAgICAgICAgICAgIHYgPSByZC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnb3RoZXInOlxuICAgICAgICAgIG90aGVyRGF0YS5mb3JFYWNoKChvZCkgPT4ge1xuICAgICAgICAgICAgaWYgKG9kLm5hbWUgPT0gY2h1bmsudmFsdWUpIHtcbiAgICAgICAgICAgICAgdiA9IG9kLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdubyc6XG4gICAgICAgICAgdiA9IGNodW5rLnZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGNodW5rLnN0ckxlbmd0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdmFsdWVzLnB1c2godik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwYWQgPSB2LnRvU3RyaW5nKCkucGFkU3RhcnQoY2h1bmsuc3RyTGVuZ3RoLCAnMCcpO1xuICAgICAgICB2YWx1ZXMucHVzaChwYWQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cblxuICB1aW50OEFycmF5VG9BcnJheSh1aW50ODogVWludDhBcnJheSk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh1aW50OCk7XG4gIH1cblxuICBhcnJheVRvVWludDhBcnJheShhcnJheTogbnVtYmVyW10pOiBVaW50OEFycmF5IHtcbiAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKGFycmF5KTtcbiAgfVxuXG4gIGlzVWludDhBcnJheSh2OiBudW1iZXJbXSB8IFVpbnQ4QXJyYXkpIHtcbiAgICBjb25zdCBpc1N0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG4gICAgcmV0dXJuIGlzU3RyLmNhbGwodikgPT09ICdbb2JqZWN0IFVpbnQ4QXJyYXldJztcbiAgfVxuXG4gIHByb2Nlc3NSYXcoaW5wdXQ6IG51bWJlcltdIHwgVWludDhBcnJheSwgY29uZmlnT2JqOiBJQ29uZmlnIHwgSURpc3BsYXkpIHtcbiAgICBsZXQgYnVmZmVyOiBVaW50OEFycmF5O1xuICAgIGlmICh0aGlzLmlzVWludDhBcnJheShpbnB1dCkpIHtcbiAgICAgIGJ1ZmZlciA9IGlucHV0IGFzIFVpbnQ4QXJyYXk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlciA9IHRoaXMuYXJyYXlUb1VpbnQ4QXJyYXkoaW5wdXQgYXMgbnVtYmVyW10pO1xuICAgIH1cbiAgICBjb25zdCByYXdEYXRhQnVmZmVyID0gbmV3IERhdGFWaWV3KGJ1ZmZlci5idWZmZXIsIDAsIDI1NCk7XG4gICAgLy9jb25zb2xlLmxvZygnUFJPQ0VTUyBSQVcgQ09ORklHICcsIHJhd0RhdGFCdWZmZXIpO1xuICAgIGNvbmZpZ09iai5yYXdEYXRhLmZvckVhY2goKGRhdGFwb2ludCkgPT4ge1xuICAgICAgZGF0YXBvaW50LnZhbHVlID1cbiAgICAgICAgdGhpcy5nZXRWYWx1ZWZyb21CdWZmZXIoZGF0YXBvaW50LmJ1ZmZlciwgcmF3RGF0YUJ1ZmZlcikgKlxuICAgICAgICBkYXRhcG9pbnQubXVsdGk7XG4gICAgfSk7XG4gIH1cblxuICBwcm9jZXNzT3RoZXIoY29uZmlnT2JqOiBJQ29uZmlnIHwgSURpc3BsYXkpIHtcbiAgICBjb25maWdPYmoub3RoZXJEYXRhLmZvckVhY2goKGRhdGFQb2ludCkgPT4ge1xuICAgICAgZGF0YVBvaW50LnByb2Nlc3NEYXRhLmZvckVhY2goKHByb2Nlc3MpID0+IHtcbiAgICAgICAgdGhpcy5ydW5Qcm9jZXNzKHByb2Nlc3MsIGNvbmZpZ09iai5yYXdEYXRhLCBjb25maWdPYmoub3RoZXJEYXRhKTtcbiAgICAgICAgZGF0YVBvaW50LnZhbHVlID0gcHJvY2Vzcy52YWx1ZTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -175,13 +175,13 @@ export class DeviceConfigDatasetService {
|
|
|
175
175
|
//console.log('END OF GENERATE FORMGROUP');
|
|
176
176
|
return configForm;
|
|
177
177
|
}
|
|
178
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
179
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
178
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceConfigDatasetService, deps: [{ token: i1.DatasetProcessingService }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
179
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceConfigDatasetService, providedIn: 'root' }); }
|
|
180
180
|
}
|
|
181
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceConfigDatasetService, decorators: [{
|
|
182
182
|
type: Injectable,
|
|
183
183
|
args: [{
|
|
184
184
|
providedIn: 'root',
|
|
185
185
|
}]
|
|
186
|
-
}], ctorParameters:
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWNvbmZpZy1kYXRhc2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXZpY2UtY29uZmlnLWludGVyYWN0aW9uL3NyYy9saWIvZGV2aWNlLWNvbmZpZy1kYXRhc2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLGtCQUFrQixFQUNsQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVF4QixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQ1UsR0FBNkIsRUFDOUIsV0FBK0I7UUFEOUIsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0lBQ3JDLENBQUM7SUFFSixhQUFhLENBQUMsTUFBNkIsRUFBRSxNQUFlO1FBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBZTtRQUN6QiwrQ0FBK0M7UUFDL0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUMzQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO29CQUM1QixJQUFJLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLElBQUksRUFBRTt3QkFD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QkFDSDthQUNGO1NBQ0Y7UUFDRCwyQ0FBMkM7UUFDM0MsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzsrR0E3TlUsMEJBQTBCO21IQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFVudHlwZWRGb3JtR3JvdXAsXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRhc2V0UHJvY2Vzc2luZ1NlcnZpY2UgfSBmcm9tICcuL2RhdGFzZXQtcHJvY2Vzc2luZy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgSUNvbmZpZywgSUZvcm1EYXRhT2JqIH0gZnJvbSAnLi4vbGliL2ludGVyZmFjZXMvZGV2aWNlcy1saXN0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERldmljZUNvbmZpZ0RhdGFzZXRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkcHM6IERhdGFzZXRQcm9jZXNzaW5nU2VydmljZSxcbiAgICBwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlclxuICApIHt9XG5cbiAgcHJvY2Vzc0NvbmZpZyhidWZmZXI6IG51bWJlcltdIHwgVWludDhBcnJheSwgY29uZmlnOiBJQ29uZmlnKSB7XG4gICAgdGhpcy5kcHMucHJvY2Vzc1JhdyhidWZmZXIsIGNvbmZpZyk7XG4gICAgdGhpcy5kcHMucHJvY2Vzc090aGVyKGNvbmZpZyk7XG4gICAgdGhpcy5wcm9jZXNzRm9ybShjb25maWcpO1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBwcm9jZXNzRm9ybShjb25maWc6IElDb25maWcpIHtcbiAgICAvL2NvbnNvbGUubG9nKFwiU3RhcnRpbmcgdG8gcHJvY2VzcyBmb3JtIGRhdGFcIik7XG4gICAgY29uZmlnLmZvcm1EYXRhLmZvckVhY2goKGZvcm1TZWN0aW9uKSA9PiB7XG4gICAgICBmb3JtU2VjdGlvbi5kYXRhT2Jqcy5mb3JFYWNoKChmb3JtQ29udHJvbCkgPT4ge1xuICAgICAgICBjb25maWcucmF3RGF0YS5mb3JFYWNoKChkcCkgPT4ge1xuICAgICAgICAgIGlmIChmb3JtQ29udHJvbC5kYXRhSWQgPT0gZHAubmFtZSkge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wudmFsdWUgPSBkcC52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25maWcub3RoZXJEYXRhLmZvckVhY2goKGRwKSA9PiB7XG4gICAgICAgICAgaWYgKGZvcm1Db250cm9sLmRhdGFJZCA9PSBkcC5uYW1lKSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC52YWx1ZSA9IGRwLnZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb2Nlc3NSZXN1bHRzVG9Gb3JtRGF0YShcbiAgICBmb3JtUmVzdWx0czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSxcbiAgICBjb25maWc6IElDb25maWdcbiAgKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25maWcuZm9ybURhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzLmxlbmd0aDsgeCsrKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoXG4gICAgICAgICAgICBmb3JtUmVzdWx0cyxcbiAgICAgICAgICAgIGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS5kYXRhSWRcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS52YWx1ZSA9XG4gICAgICAgICAgICBmb3JtUmVzdWx0c1tjb25maWcuZm9ybURhdGFbaV0uZGF0YU9ianNbeF0uZGF0YUlkXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoXG4gICAgICAgICAgICBjb25maWcuZm9ybURhdGFbaV0uZGF0YU9ianNbeF0sXG4gICAgICAgICAgICAnYXV0b0lucHV0J1xuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS5hdXRvSW5wdXQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcImF1dG8gZGF0ZSBjb25kaXRpb24gbWV0XCIpO1xuICAgICAgICAgICAgY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzW3hdLnZhbHVlID0gdGhpcy5jdXJyZW50RGF0ZVRpbWVTdHIoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL2NvbnNvbGUubG9nKFwiZm9ybWRhdGEgb2JqZWN0IHVwZGF0ZWRcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnLmZvcm1EYXRhKSk7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIGN1cnJlbnREYXRlVGltZVN0cigpIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBzdHIgPVxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpICtcbiAgICAgICctJyArXG4gICAgICAoZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpICtcbiAgICAgICctJyArXG4gICAgICBkYXRlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgJ1QnICtcbiAgICAgIGRhdGUuZ2V0SG91cnMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgJzonICtcbiAgICAgIGRhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgZXh0cmFjdEJhY2tUb1Jhdyhjb25maWc6IElDb25maWcpOiBJQ29uZmlnIHtcbiAgICBjb25zdCBvdGhlclRvUHJvY2VzczogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfSA9IHt9O1xuICAgIGxldCB2YWx1ZXNUb1JhdzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfSA9IHt9O1xuICAgIGxldCBic3M6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgc3RyaW5nIH0gPSB7fTtcblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAnZm9ybURhdGEnKSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25maWcuZm9ybURhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCBjb25maWcuZm9ybURhdGFbaV0uZGF0YU9ianMubGVuZ3RoOyB4KyspIHtcbiAgICAgICAgICBsZXQgaXNSYXdEYXRhID0gZmFsc2U7XG4gICAgICAgICAgZm9yIChsZXQgeiA9IDA7IHogPCBjb25maWcucmF3RGF0YS5sZW5ndGg7IHorKykge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBjb25maWcucmF3RGF0YVt6XS5uYW1lID09IGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS5kYXRhSWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB2YWx1ZXNUb1Jhd1tjb25maWcuZm9ybURhdGFbaV0uZGF0YU9ianNbeF0uZGF0YUlkXSA9XG4gICAgICAgICAgICAgICAgY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzW3hdLnZhbHVlO1xuICAgICAgICAgICAgICBpc1Jhd0RhdGEgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNSYXdEYXRhID09IGZhbHNlKSB7XG4gICAgICAgICAgICBvdGhlclRvUHJvY2Vzc1tjb25maWcuZm9ybURhdGFbaV0uZGF0YU9ianNbeF0uZGF0YUlkXSA9XG4gICAgICAgICAgICAgIGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnLm90aGVyRGF0YS5mb3JFYWNoKChvdGhlck9iaikgPT4ge1xuICAgICAgICBvdGhlclRvUHJvY2Vzc1tvdGhlck9iai5uYW1lXSA9IG90aGVyT2JqLnZhbHVlO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy9jb25zb2xlLmxvZygnT3RoZXIgdG8gUHJvY2VzcyAnLCBKU09OLnN0cmluZ2lmeShvdGhlclRvUHJvY2VzcykpO1xuXG4gICAgY29uZmlnLm90aGVyRGF0YS5mb3JFYWNoKChvdGhlck9iaikgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBvdGhlclRvUHJvY2Vzc1tvdGhlck9iai5uYW1lXTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKFxuICAgICAgLy8gICAnRVhUUkFDVCBCQUNLIFRPIFJBVyAnLFxuICAgICAgLy8gICAnICcsXG4gICAgICAvLyAgIG90aGVyT2JqLm5hbWUsXG4gICAgICAvLyAgICcgJyxcbiAgICAgIC8vICAgSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gICAgICAvLyApO1xuICAgICAgb3RoZXJPYmoucHJvY2Vzc0RhdGEuZm9yRWFjaCgocGRvKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocGRvLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdhc3MnOlxuICAgICAgICAgICAgdmFsdWVzVG9SYXcgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICB2YWx1ZXNUb1JhdyxcbiAgICAgICAgICAgICAgdGhpcy5kcHMuZGlzYXNzZW1ibGVQcm9jZXNzKHZhbHVlIGFzIHN0cmluZywgcGRvLmRhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgJ2l0ZCc6XG4gICAgICAgICAgICB2YWx1ZXNUb1JhdyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHZhbHVlc1RvUmF3LFxuICAgICAgICAgICAgICB0aGlzLmRwcy5kdGlQcm9jZXNzKHZhbHVlIGFzIHN0cmluZywgcGRvLmRhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgJ2l0cyc6XG4gICAgICAgICAgICB2YWx1ZXNUb1JhdyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHZhbHVlc1RvUmF3LFxuICAgICAgICAgICAgICB0aGlzLmRwcy5zdGlQcm9jZXNzKHZhbHVlIGFzIHN0cmluZywgcGRvLmRhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgJ2Jzdic6XG4gICAgICAgICAgICBic3MgPSB0aGlzLmRwcy5ic3ZSZXZlcnQodmFsdWUgYXMgc3RyaW5nLCBwZG8uZGF0YSwgYnNzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAoT2JqZWN0LmtleXMoYnNzKS5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHN0ciBpbiBic3MpIHtcbiAgICAgICAgdmFsdWVzVG9SYXdbc3RyXSA9IHRoaXMuZHBzLmJpbmFyeVN0clRvRGVjaW1hbChic3Nbc3RyXSBhcyBzdHJpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25maWcucmF3RGF0YSA9IHRoaXMuZHBzLndyaXRlRm9ybVZhbHVlc1RvUmF3T2JqKFxuICAgICAgdmFsdWVzVG9SYXcsXG4gICAgICBjb25maWcucmF3RGF0YVxuICAgICk7XG4gICAgLy9jb25zb2xlLmxvZyhcInJhd0RhdGEgT2JqIFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcucmF3RGF0YSkpO1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBnZW5lcmF0ZVZhbGlkYXRpb25SdWxlcyhmb3JtRmllbGQ6IElGb3JtRGF0YU9iaikge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcblxuICAgIGlmIChmb3JtRmllbGQucmVxdWlyZWQgPT0gdHJ1ZSkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1GaWVsZCwgJ21pbicpKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkLm1pbiAhPT0gdW5kZWZpbmVkKVxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oZm9ybUZpZWxkLm1pbikpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1GaWVsZCwgJ21heCcpKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkLm1heCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgoZm9ybUZpZWxkLm1heCkpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1GaWVsZCwgJ21pbkxlbmd0aCcpKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkLm1pbkxlbmd0aCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoZm9ybUZpZWxkLm1pbkxlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1GaWVsZCwgJ21heExlbmd0aCcpKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkLm1heExlbmd0aCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoZm9ybUZpZWxkLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1GaWVsZCwgJ3JleCcpKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkLnJleCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKGZvcm1GaWVsZC5yZXgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cblxuICBnZW5lcmF0ZUZvcm1Hcm91cChjb25maWc6IElDb25maWcsIGJsYWNrTGlzdDogc3RyaW5nW10pIHtcbiAgICAvL2NvbnNvbGUubG9nKCdHZW5lcmF0ZSBmb3JtIGdyb3VwIFRSSUdHRVJFRCcpO1xuICAgIGNvbnN0IGNvbmZpZ0Zvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmZpZy5mb3JtRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgLy9jb25zb2xlLmxvZyhcIkZPUk0gU0VDVElPTiBcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnLmZvcm1EYXRhW2ldKSk7XG4gICAgICBmb3IgKGxldCB4ID0gMDsgeCA8IGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqcy5sZW5ndGg7IHgrKykge1xuICAgICAgICBpZiAoIWJsYWNrTGlzdC5pbmNsdWRlcyhjb25maWcuZm9ybURhdGFbaV0udGl0bGUpKSB7XG4gICAgICAgICAgbGV0IGZpZWxkRGlzYWJsZSA9IGZhbHNlO1xuICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmdlbmVyYXRlVmFsaWRhdGlvblJ1bGVzKFxuICAgICAgICAgICAgY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzW3hdXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoIWNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS5hY3RpdmUpIHtcbiAgICAgICAgICAgIGZpZWxkRGlzYWJsZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vY29uc29sZS5sb2coJ0FERCBDT05UUk9MJyk7XG4gICAgICAgICAgY29uZmlnRm9ybS5hZGRDb250cm9sKFxuICAgICAgICAgICAgY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzW3hdLmRhdGFJZCxcbiAgICAgICAgICAgIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzW3hdLnZhbHVlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiBmaWVsZERpc2FibGUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHZhbGlkYXRvcnNcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vY29uc29sZS5sb2coJ0VORCBPRiBHRU5FUkFURSBGT1JNR1JPVVAnKTtcbiAgICByZXR1cm4gY29uZmlnRm9ybTtcbiAgfVxufVxuIl19
|
|
186
|
+
}], ctorParameters: () => [{ type: i1.DatasetProcessingService }, { type: i2.UntypedFormBuilder }] });
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWNvbmZpZy1kYXRhc2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXZpY2UtY29uZmlnLWludGVyYWN0aW9uL3NyYy9saWIvZGV2aWNlLWNvbmZpZy1kYXRhc2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLGtCQUFrQixFQUNsQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVF4QixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQ1UsR0FBNkIsRUFDOUIsV0FBK0I7UUFEOUIsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0lBQ3JDLENBQUM7SUFFSixhQUFhLENBQUMsTUFBNkIsRUFBRSxNQUFlO1FBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBZTtRQUN6QiwrQ0FBK0M7UUFDL0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUMzQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO29CQUM1QixJQUFJLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFD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QUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNELElBQUksU0FBUyxDQUFDLEdBQUcsS0FBSyxTQUFTO2dCQUM3QixVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNELElBQUksU0FBUyxDQUFDLEdBQUcsS0FBSyxTQUFTO2dCQUM3QixVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pFLElBQUksU0FBUyxDQUFDLFNBQVMsS0FBSyxTQUFTO2dCQUNuQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pFLElBQUksU0FBUyxDQUFDLFNBQVMsS0FBSyxTQUFTO2dCQUNuQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNELElBQUksU0FBUyxDQUFDLEdBQUcsS0FBSyxTQUFTO2dCQUM3QixVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFlLEVBQUUsU0FBbUI7UUFDcEQsK0NBQStDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFNUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEQsbUVBQW1FO1lBQ25FLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNsRCxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7b0JBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FDN0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQy9CLENBQUM7b0JBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUMzQyxZQUFZLEdBQUcsSUFBSSxDQUFDO29CQUN0QixDQUFDO29CQUNELDZCQUE2QjtvQkFDN0IsVUFBVSxDQUFDLFVBQVUsQ0FDbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUNyQyxJQUFJLGtCQUFrQixDQUNwQjt3QkFDRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSzt3QkFDM0MsUUFBUSxFQUFFLFlBQVk7cUJBQ3ZCLEVBQ0QsVUFBVSxDQUNYLENBQ0YsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCwyQ0FBMkM7UUFDM0MsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzsrR0E3TlUsMEJBQTBCO21IQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFVudHlwZWRGb3JtR3JvdXAsXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRhc2V0UHJvY2Vzc2luZ1NlcnZpY2UgfSBmcm9tICcuL2RhdGFzZXQtcHJvY2Vzc2luZy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgSUNvbmZpZywgSUZvcm1EYXRhT2JqIH0gZnJvbSAnLi4vbGliL2ludGVyZmFjZXMvZGV2aWNlcy1saXN0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERldmljZUNvbmZpZ0RhdGFzZXRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkcHM6IERhdGFzZXRQcm9jZXNzaW5nU2VydmljZSxcbiAgICBwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlclxuICApIHt9XG5cbiAgcHJvY2Vzc0NvbmZpZyhidWZmZXI6IG51bWJlcltdIHwgVWludDhBcnJheSwgY29uZmlnOiBJQ29uZmlnKSB7XG4gICAgdGhpcy5kcHMucHJvY2Vzc1JhdyhidWZmZXIsIGNvbmZpZyk7XG4gICAgdGhpcy5kcHMucHJvY2Vzc090aGVyKGNvbmZpZyk7XG4gICAgdGhpcy5wcm9jZXNzRm9ybShjb25maWcpO1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBwcm9jZXNzRm9ybShjb25maWc6IElDb25maWcpIHtcbiAgICAvL2NvbnNvbGUubG9nKFwiU3RhcnRpbmcgdG8gcHJvY2VzcyBmb3JtIGRhdGFcIik7XG4gICAgY29uZmlnLmZvcm1EYXRhLmZvckVhY2goKGZvcm1TZWN0aW9uKSA9PiB7XG4gICAgICBmb3JtU2VjdGlvbi5kYXRhT2Jqcy5mb3JFYWNoKChmb3JtQ29udHJvbCkgPT4ge1xuICAgICAgICBjb25maWcucmF3RGF0YS5mb3JFYWNoKChkcCkgPT4ge1xuICAgICAgICAgIGlmIChmb3JtQ29udHJvbC5kYXRhSWQgPT0gZHAubmFtZSkge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wudmFsdWUgPSBkcC52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25maWcub3RoZXJEYXRhLmZvckVhY2goKGRwKSA9PiB7XG4gICAgICAgICAgaWYgKGZvcm1Db250cm9sLmRhdGFJZCA9PSBkcC5uYW1lKSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC52YWx1ZSA9IGRwLnZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb2Nlc3NSZXN1bHRzVG9Gb3JtRGF0YShcbiAgICBmb3JtUmVzdWx0czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSxcbiAgICBjb25maWc6IElDb25maWdcbiAgKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25maWcuZm9ybURhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzLmxlbmd0aDsgeCsrKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoXG4gICAgICAgICAgICBmb3JtUmVzdWx0cyxcbiAgICAgICAgICAgIGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS5kYXRhSWRcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS52YWx1ZSA9XG4gICAgICAgICAgICBmb3JtUmVzdWx0c1tjb25maWcuZm9ybURhdGFbaV0uZGF0YU9ianNbeF0uZGF0YUlkXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoXG4gICAgICAgICAgICBjb25maWcuZm9ybURhdGFbaV0uZGF0YU9ianNbeF0sXG4gICAgICAgICAgICAnYXV0b0lucHV0J1xuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS5hdXRvSW5wdXQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcImF1dG8gZGF0ZSBjb25kaXRpb24gbWV0XCIpO1xuICAgICAgICAgICAgY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzW3hdLnZhbHVlID0gdGhpcy5jdXJyZW50RGF0ZVRpbWVTdHIoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL2NvbnNvbGUubG9nKFwiZm9ybWRhdGEgb2JqZWN0IHVwZGF0ZWRcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnLmZvcm1EYXRhKSk7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIGN1cnJlbnREYXRlVGltZVN0cigpIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBzdHIgPVxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpICtcbiAgICAgICctJyArXG4gICAgICAoZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpICtcbiAgICAgICctJyArXG4gICAgICBkYXRlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgJ1QnICtcbiAgICAgIGRhdGUuZ2V0SG91cnMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgJzonICtcbiAgICAgIGRhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgZXh0cmFjdEJhY2tUb1Jhdyhjb25maWc6IElDb25maWcpOiBJQ29uZmlnIHtcbiAgICBjb25zdCBvdGhlclRvUHJvY2VzczogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfSA9IHt9O1xuICAgIGxldCB2YWx1ZXNUb1JhdzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfSA9IHt9O1xuICAgIGxldCBic3M6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgc3RyaW5nIH0gPSB7fTtcblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAnZm9ybURhdGEnKSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25maWcuZm9ybURhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCBjb25maWcuZm9ybURhdGFbaV0uZGF0YU9ianMubGVuZ3RoOyB4KyspIHtcbiAgICAgICAgICBsZXQgaXNSYXdEYXRhID0gZmFsc2U7XG4gICAgICAgICAgZm9yIChsZXQgeiA9IDA7IHogPCBjb25maWcucmF3RGF0YS5sZW5ndGg7IHorKykge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBjb25maWcucmF3RGF0YVt6XS5uYW1lID09IGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS5kYXRhSWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB2YWx1ZXNUb1Jhd1tjb25maWcuZm9ybURhdGFbaV0uZGF0YU9ianNbeF0uZGF0YUlkXSA9XG4gICAgICAgICAgICAgICAgY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzW3hdLnZhbHVlO1xuICAgICAgICAgICAgICBpc1Jhd0RhdGEgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNSYXdEYXRhID09IGZhbHNlKSB7XG4gICAgICAgICAgICBvdGhlclRvUHJvY2Vzc1tjb25maWcuZm9ybURhdGFbaV0uZGF0YU9ianNbeF0uZGF0YUlkXSA9XG4gICAgICAgICAgICAgIGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnLm90aGVyRGF0YS5mb3JFYWNoKChvdGhlck9iaikgPT4ge1xuICAgICAgICBvdGhlclRvUHJvY2Vzc1tvdGhlck9iai5uYW1lXSA9IG90aGVyT2JqLnZhbHVlO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy9jb25zb2xlLmxvZygnT3RoZXIgdG8gUHJvY2VzcyAnLCBKU09OLnN0cmluZ2lmeShvdGhlclRvUHJvY2VzcykpO1xuXG4gICAgY29uZmlnLm90aGVyRGF0YS5mb3JFYWNoKChvdGhlck9iaikgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBvdGhlclRvUHJvY2Vzc1tvdGhlck9iai5uYW1lXTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKFxuICAgICAgLy8gICAnRVhUUkFDVCBCQUNLIFRPIFJBVyAnLFxuICAgICAgLy8gICAnICcsXG4gICAgICAvLyAgIG90aGVyT2JqLm5hbWUsXG4gICAgICAvLyAgICcgJyxcbiAgICAgIC8vICAgSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gICAgICAvLyApO1xuICAgICAgb3RoZXJPYmoucHJvY2Vzc0RhdGEuZm9yRWFjaCgocGRvKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocGRvLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdhc3MnOlxuICAgICAgICAgICAgdmFsdWVzVG9SYXcgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICB2YWx1ZXNUb1JhdyxcbiAgICAgICAgICAgICAgdGhpcy5kcHMuZGlzYXNzZW1ibGVQcm9jZXNzKHZhbHVlIGFzIHN0cmluZywgcGRvLmRhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgJ2l0ZCc6XG4gICAgICAgICAgICB2YWx1ZXNUb1JhdyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHZhbHVlc1RvUmF3LFxuICAgICAgICAgICAgICB0aGlzLmRwcy5kdGlQcm9jZXNzKHZhbHVlIGFzIHN0cmluZywgcGRvLmRhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgJ2l0cyc6XG4gICAgICAgICAgICB2YWx1ZXNUb1JhdyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHZhbHVlc1RvUmF3LFxuICAgICAgICAgICAgICB0aGlzLmRwcy5zdGlQcm9jZXNzKHZhbHVlIGFzIHN0cmluZywgcGRvLmRhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgJ2Jzdic6XG4gICAgICAgICAgICBic3MgPSB0aGlzLmRwcy5ic3ZSZXZlcnQodmFsdWUgYXMgc3RyaW5nLCBwZG8uZGF0YSwgYnNzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAoT2JqZWN0LmtleXMoYnNzKS5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHN0ciBpbiBic3MpIHtcbiAgICAgICAgdmFsdWVzVG9SYXdbc3RyXSA9IHRoaXMuZHBzLmJpbmFyeVN0clRvRGVjaW1hbChic3Nbc3RyXSBhcyBzdHJpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25maWcucmF3RGF0YSA9IHRoaXMuZHBzLndyaXRlRm9ybVZhbHVlc1RvUmF3T2JqKFxuICAgICAgdmFsdWVzVG9SYXcsXG4gICAgICBjb25maWcucmF3RGF0YVxuICAgICk7XG4gICAgLy9jb25zb2xlLmxvZyhcInJhd0RhdGEgT2JqIFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcucmF3RGF0YSkpO1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBnZW5lcmF0ZVZhbGlkYXRpb25SdWxlcyhmb3JtRmllbGQ6IElGb3JtRGF0YU9iaikge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcblxuICAgIGlmIChmb3JtRmllbGQucmVxdWlyZWQgPT0gdHJ1ZSkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1GaWVsZCwgJ21pbicpKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkLm1pbiAhPT0gdW5kZWZpbmVkKVxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oZm9ybUZpZWxkLm1pbikpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1GaWVsZCwgJ21heCcpKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkLm1heCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgoZm9ybUZpZWxkLm1heCkpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1GaWVsZCwgJ21pbkxlbmd0aCcpKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkLm1pbkxlbmd0aCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoZm9ybUZpZWxkLm1pbkxlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1GaWVsZCwgJ21heExlbmd0aCcpKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkLm1heExlbmd0aCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoZm9ybUZpZWxkLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1GaWVsZCwgJ3JleCcpKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkLnJleCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKGZvcm1GaWVsZC5yZXgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cblxuICBnZW5lcmF0ZUZvcm1Hcm91cChjb25maWc6IElDb25maWcsIGJsYWNrTGlzdDogc3RyaW5nW10pIHtcbiAgICAvL2NvbnNvbGUubG9nKCdHZW5lcmF0ZSBmb3JtIGdyb3VwIFRSSUdHRVJFRCcpO1xuICAgIGNvbnN0IGNvbmZpZ0Zvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmZpZy5mb3JtRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgLy9jb25zb2xlLmxvZyhcIkZPUk0gU0VDVElPTiBcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnLmZvcm1EYXRhW2ldKSk7XG4gICAgICBmb3IgKGxldCB4ID0gMDsgeCA8IGNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqcy5sZW5ndGg7IHgrKykge1xuICAgICAgICBpZiAoIWJsYWNrTGlzdC5pbmNsdWRlcyhjb25maWcuZm9ybURhdGFbaV0udGl0bGUpKSB7XG4gICAgICAgICAgbGV0IGZpZWxkRGlzYWJsZSA9IGZhbHNlO1xuICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmdlbmVyYXRlVmFsaWRhdGlvblJ1bGVzKFxuICAgICAgICAgICAgY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzW3hdXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoIWNvbmZpZy5mb3JtRGF0YVtpXS5kYXRhT2Jqc1t4XS5hY3RpdmUpIHtcbiAgICAgICAgICAgIGZpZWxkRGlzYWJsZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vY29uc29sZS5sb2coJ0FERCBDT05UUk9MJyk7XG4gICAgICAgICAgY29uZmlnRm9ybS5hZGRDb250cm9sKFxuICAgICAgICAgICAgY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzW3hdLmRhdGFJZCxcbiAgICAgICAgICAgIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29uZmlnLmZvcm1EYXRhW2ldLmRhdGFPYmpzW3hdLnZhbHVlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiBmaWVsZERpc2FibGUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHZhbGlkYXRvcnNcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vY29uc29sZS5sb2coJ0VORCBPRiBHRU5FUkFURSBGT1JNR1JPVVAnKTtcbiAgICByZXR1cm4gY29uZmlnRm9ybTtcbiAgfVxufVxuIl19
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class CpDevicesListModule {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
6
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListModule }); }
|
|
6
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListModule }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListModule, decorators: [{
|
|
9
9
|
type: NgModule,
|
|
10
10
|
args: [{
|
|
11
11
|
declarations: [],
|
|
@@ -46,13 +46,13 @@ export class CpDevicesListService {
|
|
|
46
46
|
}
|
|
47
47
|
return value;
|
|
48
48
|
}
|
|
49
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
50
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
50
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListService, providedIn: 'root' }); }
|
|
51
51
|
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListService, decorators: [{
|
|
53
53
|
type: Injectable,
|
|
54
54
|
args: [{
|
|
55
55
|
providedIn: 'root',
|
|
56
56
|
}]
|
|
57
57
|
}] });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2RldmljZS1jb25maWctaW50ZXJhY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDOztBQUsvQixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLGtCQUFrQjtJQUVsQixLQUFLLENBQUMsY0FBYyxDQUNsQixJQUFZLEVBQ1osSUFBWSxFQUNaLFdBQVcsR0FBRyxJQUFJO1FBRWxCLDBEQUEwRDtRQUMxRCxNQUFNLE9BQU8sR0FBRztZQUNkLGFBQWEsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNwQyxjQUFjLEVBQUUsV0FBVztTQUM1QixDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTzthQUNqQyxPQUFPLENBQUM7WUFDUCxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxJQUFJO1lBQ1QsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQzthQUNELElBQUksQ0FDSCxDQUFDLEdBQWtCLEVBQUUsRUFBRTtZQUNyQixJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLGdFQUFnRTtnQkFDaEUsT0FBTyxHQUFHLENBQUMsSUFBb0IsQ0FBQztZQUNsQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLEtBQUssQ0FDZCw4QkFBOEIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUNyRCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsRUFDRCxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUN2QixPQUFPLElBQUksS0FBSyxDQUNkLDhCQUE4QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQ3ZELENBQUM7UUFDSixDQUFDLENBQ0YsQ0FBQztRQUVKLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxlQUFlLENBQ2IsT0FBMkIsRUFDM0IsSUFBWTtRQUVaLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDakQsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDcEIsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFnQixFQUFFLEVBQUU7Z0JBQzNDLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDckIsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ3BCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBNURVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJQ29uZmlnLFxuICBJRGV2aWNlc0xpc3QsXG4gIElEaXNwbGF5LFxuICBJT3RoZXJEYXRhT2JqLFxuICBJUmF3RGF0YU9iaixcbn0gZnJvbSAnLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBBeGlvc1Jlc3BvbnNlIH0gZnJvbSAnYXhpb3MnO1xuaW1wb3J0ICogYXMgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ3BEZXZpY2VzTGlzdFNlcnZpY2Uge1xuICAvL2NvbnN0cnVjdG9yKCkge31cblxuICBhc3luYyBnZXREZXZpY2VzTGlzdChcbiAgICBfdXJsOiBzdHJpbmcsXG4gICAgYXV0aDogc3RyaW5nLFxuICAgIGxpc3RWZXJzaW9uID0gJy0xJ1xuICApOiBQcm9taXNlPElEZXZpY2VzTGlzdCB8IEVycm9yPiB7XG4gICAgLy9jb25zb2xlLmxvZygnZ2V0RGV2aWNlc0xpc3QgZnVuY3Rpb24gVFJJR0dFUkVEICcsIF91cmwpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICBBdXRob3JpemF0aW9uOiAnQmFzaWMgJyArIGJ0b2EoYXV0aCksXG4gICAgICAnbGlzdC12ZXJzaW9uJzogbGlzdFZlcnNpb24sXG4gICAgfTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmRlZmF1bHRcbiAgICAgIC5yZXF1ZXN0KHtcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgdXJsOiBfdXJsLFxuICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC50aGVuKFxuICAgICAgICAocmVzOiBBeGlvc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT0gMjAwKSB7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCAnZ2V0IERMIGZ1bmN0aW9uIFNVQ0NFU1MgJywgSlNPTi5zdHJpbmdpZnkocmVzKSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmRhdGEgYXMgSURldmljZXNMaXN0O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgICAgICAgICAgICAnRVJST1IgZ2V0dGluZyBEZXZpY2VzIExpc3QuICcgKyBKU09OLnN0cmluZ2lmeShyZXMpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBBeGlvc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICAgICAgICAgICdFUlJPUiBnZXR0aW5nIERldmljZXMgTGlzdC4gJyArIEpTT04uc3RyaW5naWZ5KGVycm9yKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBnZXRWYWx1ZUZyb21PYmooXG4gICAgZWxlbWVudDogSURpc3BsYXkgfCBJQ29uZmlnLFxuICAgIG5hbWU6IHN0cmluZ1xuICApOiAoc3RyaW5nIHwgbnVtYmVyKSB8IG51bGwge1xuICAgIGxldCB2YWx1ZSA9IG51bGw7XG4gICAgbGV0IG5vdEluT3RoZXIgPSB0cnVlO1xuICAgIGVsZW1lbnQub3RoZXJEYXRhLmZvckVhY2goKG90aGVyOiBJT3RoZXJEYXRhT2JqKSA9PiB7XG4gICAgICBpZiAob3RoZXIubmFtZSA9PSBuYW1lKSB7XG4gICAgICAgIHZhbHVlID0gb3RoZXIudmFsdWU7XG4gICAgICAgIG5vdEluT3RoZXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAobm90SW5PdGhlcikge1xuICAgICAgZWxlbWVudC5yYXdEYXRhLmZvckVhY2goKHJhdzogSVJhd0RhdGFPYmopID0+IHtcbiAgICAgICAgaWYgKHJhdy5uYW1lID09IG5hbWUpIHtcbiAgICAgICAgICB2YWx1ZSA9IHJhdy52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuIl19
|
|
@@ -55,13 +55,13 @@ export class DeviceLiveDatasetService {
|
|
|
55
55
|
}
|
|
56
56
|
return result;
|
|
57
57
|
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
59
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceLiveDatasetService, deps: [{ token: i1.DatasetProcessingService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
59
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceLiveDatasetService, providedIn: 'root' }); }
|
|
60
60
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceLiveDatasetService, decorators: [{
|
|
62
62
|
type: Injectable,
|
|
63
63
|
args: [{
|
|
64
64
|
providedIn: 'root',
|
|
65
65
|
}]
|
|
66
|
-
}], ctorParameters:
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
}], ctorParameters: () => [{ type: i1.DatasetProcessingService }] });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWxpdmUtZGF0YXNldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2RldmljZS1saXZlLWRhdGFzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRM0MsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUFvQixHQUE2QjtRQUE3QixRQUFHLEdBQUgsR0FBRyxDQUEwQjtJQUFHLENBQUM7SUFFckQsY0FBYyxDQUFDLE1BQTZCLEVBQUUsT0FBaUI7UUFDN0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFpQjtRQUM3QixPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzNCLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3ZCLElBQUksRUFBRSxHQUFvQixFQUFFLENBQUM7b0JBQzdCLElBQUksT0FBTyxHQUFHLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO3dCQUN2QyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFOzRCQUM5QixJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dDQUM1QixJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUUsQ0FBQztvQ0FDckMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQ0FDcEMsQ0FBQztxQ0FBTSxDQUFDO29DQUNOLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dDQUNqQixDQUFDOzRCQUNILENBQUM7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTs0QkFDbEMsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQ0FDOUIsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7NEJBQ25CLENBQUM7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsSUFBSSxPQUFPLEdBQUcsQ0FBQyxPQUFPLEtBQUssV0FBVyxFQUFFLENBQUM7NEJBQ3ZDLEVBQUUsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQzt3QkFDeEIsQ0FBQzt3QkFDRCxJQUFJLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQzs0QkFDdEMsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO3dCQUN2QixDQUFDO3dCQUNELEdBQUcsQ0FBQyxLQUFLLEdBQVcsRUFBRSxDQUFDO29CQUN6QixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUNaLE1BQWUsRUFDZixVQUFpQztRQUVqQyxNQUFNLE1BQU0sR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBRWxELElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25CLE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNoQyxNQUFNLElBQUksR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNkLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7K0dBekRVLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhc2V0UHJvY2Vzc2luZ1NlcnZpY2UgfSBmcm9tICcuL2RhdGFzZXQtcHJvY2Vzc2luZy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgSURpc3BsYXksIElEZXZpY2UgfSBmcm9tICcuLi9saWIvaW50ZXJmYWNlcy9kZXZpY2VzLWxpc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlTGl2ZURhdGFzZXRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkcHM6IERhdGFzZXRQcm9jZXNzaW5nU2VydmljZSkge31cblxuICBwcm9jZXNzRGlzcGxheShidWZmZXI6IG51bWJlcltdIHwgVWludDhBcnJheSwgZGlzcGxheTogSURpc3BsYXkpIHtcbiAgICB0aGlzLmRwcy5wcm9jZXNzUmF3KGJ1ZmZlciwgZGlzcGxheSk7XG4gICAgdGhpcy5kcHMucHJvY2Vzc090aGVyKGRpc3BsYXkpO1xuICAgIHRoaXMucHJvY2Vzc0xheW91dChkaXNwbGF5KTtcbiAgICByZXR1cm4gZGlzcGxheTtcbiAgfVxuXG4gIHByb2Nlc3NMYXlvdXQoZGlzcGxheTogSURpc3BsYXkpIHtcbiAgICBkaXNwbGF5LmxheW91dC5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XG4gICAgICBzZWN0aW9uLnJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgIHJvdy5jb2xzLmZvckVhY2goKGNvbCkgPT4ge1xuICAgICAgICAgIGxldCB3djogc3RyaW5nIHwgbnVtYmVyID0gJyc7XG4gICAgICAgICAgaWYgKHR5cGVvZiBjb2wucmVmRGF0YSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXkucmF3RGF0YS5mb3JFYWNoKChyYXcpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHJhdy5uYW1lID09IGNvbC5yZWZEYXRhKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2wucm91bmQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICB3diA9IHJhdy52YWx1ZS50b0ZpeGVkKGNvbC5yb3VuZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHd2ID0gcmF3LnZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkaXNwbGF5Lm90aGVyRGF0YS5mb3JFYWNoKChvdGhlcikgPT4ge1xuICAgICAgICAgICAgICBpZiAob3RoZXIubmFtZSA9PSBjb2wucmVmRGF0YSkge1xuICAgICAgICAgICAgICAgIHd2ID0gb3RoZXIudmFsdWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2wucHJlcGVuZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgd3YgPSBjb2wucHJlcGVuZCArIHd2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2wuYXBwZW5kICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICB3diA9IHd2ICsgY29sLmFwcGVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbC52YWx1ZSA9IDxzdHJpbmc+d3Y7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcnNzaURhdGEoXG4gICAgZGV2aWNlOiBJRGV2aWNlLFxuICAgIHJzc2lTaWduYWw6ICgpID0+IFByb21pc2U8bnVtYmVyPlxuICApOiBQcm9taXNlPHsgZGV2aWNlTmFtZTogc3RyaW5nOyByc3NpOiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHsgZGV2aWNlTmFtZTogJ04vQScsIHJzc2k6ICdOL0EnIH07XG5cbiAgICBpZiAoZGV2aWNlICE9IG51bGwpIHtcbiAgICAgIHJlc3VsdC5kZXZpY2VOYW1lID0gZGV2aWNlLm5hbWU7XG4gICAgICBjb25zdCByc3NpID0gYXdhaXQgcnNzaVNpZ25hbCgpO1xuICAgICAgaWYgKHJzc2kgPD0gMCkge1xuICAgICAgICByZXN1bHQucnNzaSA9IHJzc2kudG9TdHJpbmcoKSArICcgZEJhJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2ludGVyZmFjZXMvZGV2aWNlcy1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIGNvbXBsZXRlIGRldmljZXMgbGlzdCAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGV2aWNlc0xpc3Qge1xuICAvKiogVmVyc2lvbiBvZiB0aGUgZGV2aWNlcyBsaXN0ICovXG4gIGxpc3RWZXJzaW9uOiBudW1iZXI7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbiAgLyoqIExpc3Qgb2YgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZGV2aWNlcyAqL1xuICBkZXZpY2VzTGlzdD86IElEZXZpY2VbXTtcbiAgLyoqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGZhbGwgb3V0c2lkZSBvZiBhIHNpbmdsZSBkZXZpY2UgKGkuZS4gU2l0ZSBjb25maWd1cmF0aW9ucykgT1IgY29uZmlndXJhdGlvbiBvcHRpb25zIHdoaWNoIGFyZSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIGRldmljZSBtb2RlbHMuICovXG4gIGV4dHJhQ29uZmlnT3B0aW9ucz86IHtcbiAgICAvKiogQ3VycmVudCBrZXkgb3B0aW9ucyBhcmUgd2lmaSwgdGV0aGVyRGF0YSwgdGV0aGVyQ29uZmlnLCBzdW5zcGVjU3RhdGUsIHN1bnNwZWNDb25maWcsIHN1bnNwZWNTY2FuLCBzdW5zcGVjTGlzdCwgc3Vuc3BlY3NldERldmljZXMgKi9cbiAgICBba2V5OiBzdHJpbmddOiBJRXh0cmFDb25maWdPcHRpb247XG4gIH07XG4gIHZlckhpc3Rvcnk/OiBJVmVyc2lvbkhpc3RvcnlPYmpbXTtcbiAgd2l6YXJkPzoge1xuICAgIGludmVydGVycz86IElXaXphcmRJbnZlcnRlcltdO1xuICAgIGh3Pzoge1xuICAgICAgW2tleTogc3RyaW5nXTogSVdpemFyZE92ZXJyaWRlW107XG4gICAgfTtcbiAgICBhY0xvYWRUeXBlcz86IHtcbiAgICAgIFtrZXk6IHN0cmluZ106IElXaXphcmRPdmVycmlkZVtdO1xuICAgIH07XG4gICAgZHJtTG9hZFR5cGVzPzoge1xuICAgICAgW2tleTogc3RyaW5nXTogSVdpemFyZE92ZXJyaWRlW107XG4gICAgfTtcbiAgfTtcbn1cblxuLyoqIEFsbCB0aGUgcmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIGEgZGV2aWNlIG1vZGVsLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGV2aWNlIHtcbiAgLyoqIFRoZSBtb2RlbCBJRCBvZiB0aGUgZGV2aWNlICovXG4gIGlkOiBudW1iZXI7XG4gIC8qKiBUaGUgTW9kZWwgTmFtZSBvZiB0aGUgZGV2aWNlICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFRoZSBzZXJpYWwgbnVtYmVyIG9mIHRoZSBkZXZpY2UgKi9cbiAgc2VyaWFsOiBudW1iZXI7XG4gIC8qKiBGaXJtd2FyZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGZvciB0aGUgZGV2aWNlICovXG4gIGZ3VmVyc2lvbjogSUZ3VmVyc2lvbk9iajtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgLyoqIEEgbGlzdCBvZiBjb21tYW5kcyBmb3IgdGhlIGRldmljZSAqL1xuICBjb21tYW5kczogSURldmljZUNvbW1hbmRbXTtcbiAgLyoqIEJsdWV0b290aCB3cml0ZSBjb21tYW5kIGluZm9ybWF0aW9uICovXG4gIHdyaXRlOiBJRGV2aWNlV247XG4gIC8qKiBCbHVldG9vdGggbm90aWZ5IGNvbW1hbmQgaW5mb3JtYXRpb24gKi9cbiAgbm90aWZ5OiBJRGV2aWNlV247XG4gIC8qKiBEZXZpY2UgY29uZmlndXJhdGlvbiBvYmplY3QsIGNvbnRhaW5zIHJhdyBieXRlIGluZm9ybWF0aW9uIHJhdyBkYXRhIHZhbHVlIGluZm9ybWF0aW9uIGFuZCBmb3JtIGluZm9ybWF0aW9uIGZvciB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGV2aWNlLiAqL1xuICBjb25maWc/OiBJQ29uZmlnO1xuICAvKiogRGV2aWNlIGRpc3BsYXkgb2JqZWN0LCBjb250YWlucyBpbmZvcm1hdGlvbiBmb3IgdGhlIGxpdmUgZGlzcGxheSBvZiB0aGUgZGV2aWNlcyBkYXRhICovXG4gIGRpc3BsYXk6IElEaXNwbGF5O1xuICAvKiogRXh0cmEgY29uZmlndXJhdGlvbiBvcHRpb25zIHVzZWQgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aGljaCBhcmUgY29tbW9uIHRvIG11bHRpcGxlIGRldmljZXMgb3IgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgZmFsbCBvdXRzaWRlIG9mIGEgZGV2aWNlIChpLmUuIEEgc2l0ZSBjb25maWd1cmF0aW9uIG9wdGlvbikuICovXG4gIGV4dHJhQ29uZmlnOiB7XG4gICAgLyoqIEN1cnJlbnQga2V5IG9wdGlvbnMgYXJlIHdpZmksIHRldGhlckRhdGEsIHRldGhlckNvbmZpZywgc3Vuc3BlY1N0YXRlLCBzdW5zcGVjQ29uZmlnLCBzdW5zcGVjU2Nhbiwgc3Vuc3BlY0xpc3QsIHN1bnNwZWNzZXREZXZpY2VzICovXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcbiAgfTtcbn1cblxuLyoqIE91dGxpbmVzIGRhdGEgcmVxdWlyZWQgZm9yIGFuIGV4dHJhIGNvbmZpZyBvcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV4dHJhQ29uZmlnT3B0aW9uIHtcbiAgcmF3RGF0YT86IElSYXdEYXRhT2JqW107XG4gIG90aGVyRGF0YT86IElPdGhlckRhdGFPYmpbXTtcbiAgZXZMaXN0PzogSUV2TGlzdEl0ZW1bXTtcbn1cblxuLyoqIEEgcmF3IGRhdGEgb2JqZWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIElSYXdEYXRhT2JqIHtcbiAgLyoqIG5hbWUgb2YgdGhlIGRhdGEgcG9pbnQgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogdmFsdWUgb2YgdGhlIHJhdyBkYXRhICovXG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKiBkZXRhaWwgdGhlIGRhdGFzIGxvY2F0aW9uIGluIHRoZSByYXcgZGF0YSBidWZmZXIgKi9cbiAgYnVmZmVyOiBJQnVmZmVyT2JqO1xuICAvKiogTXVsdGlwbGVyIHRvIGJlIHVzZWQgb24gdGhlIHZhbHVlICovXG4gIG11bHRpOiBudW1iZXI7XG59XG5cbi8qKiB1c2VkIHRvIHByb2Nlc3MgcmF3IGRhdGEgaW50byBhIHVzYWJsZSBmb3JtIGFuZCB0byByZXR1cm4gdGhlIGRhdGEgdG8gYSByYXcgZm9ybSAqL1xuZXhwb3J0IGludGVyZmFjZSBJT3RoZXJEYXRhT2JqIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBwcm9jZXNzRGF0YTogSVByb2Nlc3NEYXRhT2JqW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUV2TGlzdEl0ZW0ge1xuICBsaXN0TmFtZTogc3RyaW5nO1xuICBkZXZpY2VOYW1lOiBzdHJpbmc7XG4gIHBoYXNlczogMSB8IDM7XG4gIGNvbm5lY3RvcnM6IG51bWJlcjtcbiAgY3VycmVudExpbWl0OiBudW1iZXI7XG4gIGltcGxDbGFzczogc3RyaW5nO1xufVxuXG4vKiogQ29udGFpbnMgUmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIGdldHRpbmcgYW5kIHVzaW5nIGRldmljZXMgZmlybXdhcmUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZ3VmVyc2lvbk9iaiB7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgdXJsOiBzdHJpbmc7XG4gIGZpbGVzOiBzdHJpbmdbXTtcbiAgcGFja2V0OiBudW1iZXI7XG4gIGRldklkPzogbnVtYmVyO1xuICBkZXZOYW1lPzogc3RyaW5nO1xuICBkZXZTZXJpYWw/OiBudW1iZXI7XG4gIGZ3QXZhaWxhYmxlPzogYm9vbGVhbjtcbiAgY3VycmVudFZlcnNpb24/OiBudW1iZXI7XG59XG5cbi8qKiBPYmplY3QgZGVzY3JpYmluZyBhIGJsdWV0b29oIGRldmljZSBjb21tYW5kICovXG5leHBvcnQgaW50ZXJmYWNlIElEZXZpY2VDb21tYW5kIHtcbiAgbmFtZTogc3RyaW5nO1xuICBvcENvZGU6IHN0cmluZztcbiAgcmVxdWVzdERhdGE6IGJvb2xlYW47XG4gIHJlc3BvbnNlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEZXZpY2VXbiB7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgY2hhcmFjdGVyaXN0aWM6IHN0cmluZztcbiAgYnVmZmVyU2l6ZTogbnVtYmVyO1xufVxuXG4vKiogQWxsIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgZ2V0dGluZyBhbmQgdXNpbmcgY29uZmlndXJhdGlvbiBkYXRhICovXG5leHBvcnQgaW50ZXJmYWNlIElDb25maWcge1xuICByYXdEYXRhOiBJUmF3RGF0YU9ialtdO1xuICBvdGhlckRhdGE6IElPdGhlckRhdGFPYmpbXTtcbiAgZm9ybURhdGE6IElGb3JtU2VjdGlvbk9ialtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEaXNwbGF5IHtcbiAgcmF3RGF0YTogSVJhd0RhdGFPYmpbXTtcbiAgb3RoZXJEYXRhOiBJT3RoZXJEYXRhT2JqW107XG4gIGxheW91dDogSURpc1NlY3RPYmpbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQnVmZmVyT2JqIHtcbiAgc2lnbmVkOiBib29sZWFuO1xuICBsZW5ndGg6IG51bWJlcjtcbiAgcG9zaXRpb246IG51bWJlcjtcbiAgbGl0dGxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9jZXNzRGF0YU9iaiB7XG4gIC8qKiBDdXJyZW50bHkgdXNlZCBcImFzc1wiID0gYXNzZW1ibGUsIGpvaW4gY2hhcmFjdGVycyAvIHN0cmluZ3MgdG9nZXRoZXIuIFwiY29tXCIgPSBjb21wYXJlIHR3byB2YWx1ZXMuIFwiY2FsXCIgPSBjYWxjdWxhdGUgYSB2YWx1ZS4gXCJ0Zm1cIiA9IHRpbWUgZnJvbSBtaW51dGVzLiBcImNkdFwiID0gdGltZSBmcm9tIGRhdGV0aW1lIHN0cmluZy4gXCJpdGRcIiA9IG1pbnV0ZXMgdG8gdGltZSBpbiBJU08gODYwMSBmb3JtYXQuIFwiaXRzXCIgPSBpbnRlZ2VyIHRvIHN0cmluZy4gXCJic3ZcIiA9IG5vdCBzdXJlLiBcInZmYVwiID0gdmFsdWUgZnJvbSBhcnJheS4gXCJjdHNcIiA9IGFycmF5IG9mIGNoYXJhY3RlciBjb2RlcyB0byBzdHJpbmcuKi9cbiAgdHlwZTpcbiAgICB8ICdhc3MnXG4gICAgfCAnY29tJ1xuICAgIHwgJ2NhbCdcbiAgICB8ICd0Zm0nXG4gICAgfCAnY2R0J1xuICAgIHwgJ2l0ZCdcbiAgICB8ICdpdHMnXG4gICAgfCAnYnN2J1xuICAgIHwgJ3B3ZCdcbiAgICB8ICd2ZmEnXG4gICAgfCAnY3RzJztcbiAgdmFsdWU6IG51bWJlciB8IHN0cmluZztcbiAgZGF0YTogSVByb2Nlc3NEYXRhU3RlcFtdO1xuICBjb21UeHQ/OiBbc3RyaW5nLCBzdHJpbmddO1xuICB2YWx1ZXNMaXN0Pzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1TZWN0aW9uT2JqIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGF0YU9ianM6IElGb3JtRGF0YU9ialtdO1xuICBtYXhIZWlnaHQ/OiBzdHJpbmc7XG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgaGVhZERpc3BsYXlPYmo/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpc1NlY3RPYmoge1xuICB0aXRsZTogc3RyaW5nO1xuICByb3dzOiBJRGlzUm93T2JqW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVByb2Nlc3NEYXRhU3RlcCB7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGZyb21EYXRhOiAncmF3JyB8ICdvdGhlcicgfCAnbm8nO1xuICBzdHJMZW5ndGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1EYXRhT2JqIHtcbiAgZGF0YUlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGlucHV0VHlwZTogJ251bWJlcicgfCAndGV4dCcgfCAnc2VsZWN0JyB8ICdkYXRldGltZScgfCAncGFzc3dvcmQnIHwgJ3BhZ2UnO1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBpbnB1dE1vZGU/OiAnZGVjaW1hbCcgfCAnbnVtZXJpYycgfCAndGV4dCc7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgcmV4Pzogc3RyaW5nO1xuICBzZWxlY3RWYWx1ZXM/OiBJU2VsZWN0SXRlbU9ialtdO1xuICBkdEZvcm1hdD86IHN0cmluZztcbiAgdmFsTXNnPzogc3RyaW5nO1xuICBjb21wYXJlPzogYm9vbGVhbjtcbiAgYXV0b0lucHV0PzogYm9vbGVhbjtcbiAgcGFnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEaXNSb3dPYmoge1xuICBjb2xzOiBJRGlzVW5pdE9ialtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEaXNVbml0T2JqIHtcbiAgdGl0bGU6IGJvb2xlYW47XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgcmVmRGF0YT86IHN0cmluZztcbiAgcHJlcGVuZD86IHN0cmluZztcbiAgYXBwZW5kPzogc3RyaW5nO1xuICBpc0RhdGVUaW1lPzogYm9vbGVhbjtcbiAgcm91bmQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGV2aWNlLWNvbmZpZy1pbnRlcmFjdGlvbi9zcmMvbGliL2ludGVyZmFjZXMvZGV2aWNlcy1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIGNvbXBsZXRlIGRldmljZXMgbGlzdCAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGV2aWNlc0xpc3Qge1xuICAvKiogVmVyc2lvbiBvZiB0aGUgZGV2aWNlcyBsaXN0ICovXG4gIGxpc3RWZXJzaW9uOiBudW1iZXI7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbiAgLyoqIExpc3Qgb2YgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZGV2aWNlcyAqL1xuICBkZXZpY2VzTGlzdD86IElEZXZpY2VbXTtcbiAgLyoqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IGZhbGwgb3V0c2lkZSBvZiBhIHNpbmdsZSBkZXZpY2UgKGkuZS4gU2l0ZSBjb25maWd1cmF0aW9ucykgT1IgY29uZmlndXJhdGlvbiBvcHRpb25zIHdoaWNoIGFyZSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIGRldmljZSBtb2RlbHMuICovXG4gIGV4dHJhQ29uZmlnT3B0aW9ucz86IHtcbiAgICAvKiogQ3VycmVudCBrZXkgb3B0aW9ucyBhcmUgd2lmaSwgdGV0aGVyRGF0YSwgdGV0aGVyQ29uZmlnLCBzdW5zcGVjU3RhdGUsIHN1bnNwZWNDb25maWcsIHN1bnNwZWNTY2FuLCBzdW5zcGVjTGlzdCwgc3Vuc3BlY3NldERldmljZXMgKi9cbiAgICBba2V5OiBzdHJpbmddOiBJRXh0cmFDb25maWdPcHRpb247XG4gIH07XG4gIHZlckhpc3Rvcnk/OiBJVmVyc2lvbkhpc3RvcnlPYmpbXTtcbiAgd2l6YXJkPzoge1xuICAgIGludmVydGVycz86IElXaXphcmRJbnZlcnRlcltdO1xuICAgIGh3Pzoge1xuICAgICAgW2tleTogc3RyaW5nXTogSVdpemFyZE92ZXJyaWRlW107XG4gICAgfTtcbiAgICBhY0xvYWRUeXBlcz86IHtcbiAgICAgIFtrZXk6IHN0cmluZ106IElXaXphcmRPdmVycmlkZVtdO1xuICAgIH07XG4gICAgZHJtTG9hZFR5cGVzPzoge1xuICAgICAgW2tleTogc3RyaW5nXTogSVdpemFyZE92ZXJyaWRlW107XG4gICAgfTtcbiAgfTtcbn1cblxuLyoqIEFsbCB0aGUgcmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIGEgZGV2aWNlIG1vZGVsLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGV2aWNlIHtcbiAgLyoqIFRoZSBtb2RlbCBJRCBvZiB0aGUgZGV2aWNlICovXG4gIGlkOiBudW1iZXI7XG4gIC8qKiBUaGUgTW9kZWwgTmFtZSBvZiB0aGUgZGV2aWNlICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFRoZSBzZXJpYWwgbnVtYmVyIG9mIHRoZSBkZXZpY2UgKi9cbiAgc2VyaWFsOiBudW1iZXI7XG4gIC8qKiBGaXJtd2FyZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGZvciB0aGUgZGV2aWNlICovXG4gIGZ3VmVyc2lvbjogSUZ3VmVyc2lvbk9iajtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgLyoqIEEgbGlzdCBvZiBjb21tYW5kcyBmb3IgdGhlIGRldmljZSAqL1xuICBjb21tYW5kczogSURldmljZUNvbW1hbmRbXTtcbiAgLyoqIEJsdWV0b290aCB3cml0ZSBjb21tYW5kIGluZm9ybWF0aW9uICovXG4gIHdyaXRlOiBJRGV2aWNlV247XG4gIC8qKiBCbHVldG9vdGggbm90aWZ5IGNvbW1hbmQgaW5mb3JtYXRpb24gKi9cbiAgbm90aWZ5OiBJRGV2aWNlV247XG4gIC8qKiBEZXZpY2UgY29uZmlndXJhdGlvbiBvYmplY3QsIGNvbnRhaW5zIHJhdyBieXRlIGluZm9ybWF0aW9uIHJhdyBkYXRhIHZhbHVlIGluZm9ybWF0aW9uIGFuZCBmb3JtIGluZm9ybWF0aW9uIGZvciB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGV2aWNlLiAqL1xuICBjb25maWc/OiBJQ29uZmlnO1xuICAvKiogRGV2aWNlIGRpc3BsYXkgb2JqZWN0LCBjb250YWlucyBpbmZvcm1hdGlvbiBmb3IgdGhlIGxpdmUgZGlzcGxheSBvZiB0aGUgZGV2aWNlcyBkYXRhICovXG4gIGRpc3BsYXk6IElEaXNwbGF5O1xuICAvKiogRXh0cmEgY29uZmlndXJhdGlvbiBvcHRpb25zIHVzZWQgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aGljaCBhcmUgY29tbW9uIHRvIG11bHRpcGxlIGRldmljZXMgb3IgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgZmFsbCBvdXRzaWRlIG9mIGEgZGV2aWNlIChpLmUuIEEgc2l0ZSBjb25maWd1cmF0aW9uIG9wdGlvbikuICovXG4gIGV4dHJhQ29uZmlnOiB7XG4gICAgLyoqIEN1cnJlbnQga2V5IG9wdGlvbnMgYXJlIHdpZmksIHRldGhlckRhdGEsIHRldGhlckNvbmZpZywgc3Vuc3BlY1N0YXRlLCBzdW5zcGVjQ29uZmlnLCBzdW5zcGVjU2Nhbiwgc3Vuc3BlY0xpc3QsIHN1bnNwZWNzZXREZXZpY2VzICovXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcbiAgfTtcbn1cblxuLyoqIE91dGxpbmVzIGRhdGEgcmVxdWlyZWQgZm9yIGFuIGV4dHJhIGNvbmZpZyBvcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV4dHJhQ29uZmlnT3B0aW9uIHtcbiAgcmF3RGF0YT86IElSYXdEYXRhT2JqW107XG4gIG90aGVyRGF0YT86IElPdGhlckRhdGFPYmpbXTtcbiAgZXZMaXN0PzogSUV2TGlzdEl0ZW1bXTtcbn1cblxuLyoqIEEgcmF3IGRhdGEgb2JqZWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIElSYXdEYXRhT2JqIHtcbiAgLyoqIG5hbWUgb2YgdGhlIGRhdGEgcG9pbnQgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogdmFsdWUgb2YgdGhlIHJhdyBkYXRhICovXG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKiBkZXRhaWwgdGhlIGRhdGFzIGxvY2F0aW9uIGluIHRoZSByYXcgZGF0YSBidWZmZXIgKi9cbiAgYnVmZmVyOiBJQnVmZmVyT2JqO1xuICAvKiogTXVsdGlwbGVyIHRvIGJlIHVzZWQgb24gdGhlIHZhbHVlICovXG4gIG11bHRpOiBudW1iZXI7XG59XG5cbi8qKiB1c2VkIHRvIHByb2Nlc3MgcmF3IGRhdGEgaW50byBhIHVzYWJsZSBmb3JtIGFuZCB0byByZXR1cm4gdGhlIGRhdGEgdG8gYSByYXcgZm9ybSAqL1xuZXhwb3J0IGludGVyZmFjZSBJT3RoZXJEYXRhT2JqIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBwcm9jZXNzRGF0YTogSVByb2Nlc3NEYXRhT2JqW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUV2TGlzdEl0ZW0ge1xuICBsaXN0TmFtZTogc3RyaW5nO1xuICBkZXZpY2VOYW1lOiBzdHJpbmc7XG4gIHBoYXNlczogMSB8IDM7XG4gIGNvbm5lY3RvcnM6IG51bWJlcjtcbiAgY3VycmVudExpbWl0OiBudW1iZXI7XG4gIGltcGxDbGFzczogc3RyaW5nO1xufVxuXG4vKiogQ29udGFpbnMgUmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIGdldHRpbmcgYW5kIHVzaW5nIGRldmljZXMgZmlybXdhcmUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZ3VmVyc2lvbk9iaiB7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgdXJsOiBzdHJpbmc7XG4gIGZpbGVzOiBzdHJpbmdbXTtcbiAgcGFja2V0OiBudW1iZXI7XG4gIGRldklkPzogbnVtYmVyO1xuICBkZXZOYW1lPzogc3RyaW5nO1xuICBkZXZTZXJpYWw/OiBudW1iZXI7XG4gIGZ3QXZhaWxhYmxlPzogYm9vbGVhbjtcbiAgY3VycmVudFZlcnNpb24/OiBudW1iZXI7XG59XG5cbi8qKiBPYmplY3QgZGVzY3JpYmluZyBhIGJsdWV0b29oIGRldmljZSBjb21tYW5kICovXG5leHBvcnQgaW50ZXJmYWNlIElEZXZpY2VDb21tYW5kIHtcbiAgbmFtZTogc3RyaW5nO1xuICBvcENvZGU6IHN0cmluZztcbiAgcmVxdWVzdERhdGE6IGJvb2xlYW47XG4gIHJlc3BvbnNlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEZXZpY2VXbiB7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgY2hhcmFjdGVyaXN0aWM6IHN0cmluZztcbiAgYnVmZmVyU2l6ZTogbnVtYmVyO1xufVxuXG4vKiogQWxsIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgZ2V0dGluZyBhbmQgdXNpbmcgY29uZmlndXJhdGlvbiBkYXRhICovXG5leHBvcnQgaW50ZXJmYWNlIElDb25maWcge1xuICByYXdEYXRhOiBJUmF3RGF0YU9ialtdO1xuICBvdGhlckRhdGE6IElPdGhlckRhdGFPYmpbXTtcbiAgZm9ybURhdGE6IElGb3JtU2VjdGlvbk9ialtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEaXNwbGF5IHtcbiAgcmF3RGF0YTogSVJhd0RhdGFPYmpbXTtcbiAgb3RoZXJEYXRhOiBJT3RoZXJEYXRhT2JqW107XG4gIGxheW91dDogSURpc1NlY3RPYmpbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQnVmZmVyT2JqIHtcbiAgc2lnbmVkOiBib29sZWFuO1xuICBsZW5ndGg6IG51bWJlcjtcbiAgcG9zaXRpb246IG51bWJlcjtcbiAgbGl0dGxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9jZXNzRGF0YU9iaiB7XG4gIC8qKiBDdXJyZW50bHkgdXNlZCBcImFzc1wiID0gYXNzZW1ibGUsIGpvaW4gY2hhcmFjdGVycyAvIHN0cmluZ3MgdG9nZXRoZXIuIFwiY29tXCIgPSBjb21wYXJlIHR3byB2YWx1ZXMuIFwiY2FsXCIgPSBjYWxjdWxhdGUgYSB2YWx1ZS4gXCJ0Zm1cIiA9IHRpbWUgZnJvbSBtaW51dGVzLiBcImNkdFwiID0gdGltZSBmcm9tIGRhdGV0aW1lIHN0cmluZy4gXCJpdGRcIiA9IG1pbnV0ZXMgdG8gdGltZSBpbiBJU08gODYwMSBmb3JtYXQuIFwiaXRzXCIgPSBpbnRlZ2VyIHRvIHN0cmluZy4gXCJic3ZcIiA9IG5vdCBzdXJlLiBcInZmYVwiID0gdmFsdWUgZnJvbSBhcnJheS4gXCJjdHNcIiA9IGFycmF5IG9mIGNoYXJhY3RlciBjb2RlcyB0byBzdHJpbmcuKi9cbiAgdHlwZTpcbiAgICB8ICdhc3MnXG4gICAgfCAnY29tJ1xuICAgIHwgJ2NhbCdcbiAgICB8ICd0Zm0nXG4gICAgfCAnY2R0J1xuICAgIHwgJ2l0ZCdcbiAgICB8ICdpdHMnXG4gICAgfCAnYnN2J1xuICAgIHwgJ3B3ZCdcbiAgICB8ICd2ZmEnXG4gICAgfCAnY3RzJztcbiAgdmFsdWU6IG51bWJlciB8IHN0cmluZztcbiAgZGF0YTogSVByb2Nlc3NEYXRhU3RlcFtdO1xuICBjb21UeHQ/OiBbc3RyaW5nLCBzdHJpbmddO1xuICB2YWx1ZXNMaXN0Pzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1TZWN0aW9uT2JqIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGF0YU9ianM6IElGb3JtRGF0YU9ialtdO1xuICBtYXhIZWlnaHQ/OiBzdHJpbmc7XG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgaGVhZERpc3BsYXlPYmo/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpc1NlY3RPYmoge1xuICB0aXRsZTogc3RyaW5nO1xuICByb3dzOiBJRGlzUm93T2JqW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVByb2Nlc3NEYXRhU3RlcCB7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGZyb21EYXRhOiAncmF3JyB8ICdvdGhlcicgfCAnbm8nO1xuICBzdHJMZW5ndGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1EYXRhT2JqIHtcbiAgZGF0YUlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGlucHV0VHlwZTogJ251bWJlcicgfCAndGV4dCcgfCAnc2VsZWN0JyB8ICdkYXRldGltZScgfCAncGFzc3dvcmQnIHwgJ3BhZ2UnO1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBpbnB1dE1vZGU/OiAnZGVjaW1hbCcgfCAnbnVtZXJpYycgfCAndGV4dCc7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgcmV4Pzogc3RyaW5nO1xuICBzZWxlY3RWYWx1ZXM/OiBJU2VsZWN0SXRlbU9ialtdO1xuICBkdEZvcm1hdD86IHN0cmluZztcbiAgdmFsTXNnPzogc3RyaW5nO1xuICBjb21wYXJlPzogYm9vbGVhbjtcbiAgYXV0b0lucHV0PzogYm9vbGVhbjtcbiAgcGFnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEaXNSb3dPYmoge1xuICBjb2xzOiBJRGlzVW5pdE9ialtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEaXNVbml0T2JqIHtcbiAgdGl0bGU6IGJvb2xlYW47XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgcmVmRGF0YT86IHN0cmluZztcbiAgcHJlcGVuZD86IHN0cmluZztcbiAgYXBwZW5kPzogc3RyaW5nO1xuICBpc0RhdGVUaW1lPzogYm9vbGVhbjtcbiAgcm91bmQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGVjdEl0ZW1PYmoge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBleHRyYV92YWx1ZXM/OiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbW1hbmREYXRhIHtcbiAgb3BDb2RlOiBudW1iZXI7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgY2hhcmFjdGVyaXN0aWM6IHN0cmluZztcbiAgYnl0ZURhdGE6IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbW1hbmREYXRhQXBpIHtcbiAgc2VyaWFsTnVtYmVyOiBzdHJpbmc7XG4gIGRhdGE6IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWZXJzaW9uSGlzdG9yeU9iaiB7XG4gIG1vZGVsSWQ6IG51bWJlcjtcbiAgbWluVmVyc2lvbjogbnVtYmVyO1xuICBiYXNlVmVyc2lvbjogbnVtYmVyO1xuICBmZWF0dXJlczogSVZlcnNpb25IaXN0b3J5RmVhdHVyZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWZXJzaW9uSGlzdG9yeUZlYXR1cmUge1xuICB2ZXJGZWF0dXJlOiBzdHJpbmc7XG4gIG1pblZlcnNpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJV2l6YXJkSW52ZXJ0ZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIG1ldGVySWQ6IG51bWJlcjtcbiAgZGV2aWNlTW9kZWxzOiBudW1iZXJbXTtcbiAgY29udHJvbE1vZGU6ICdtb2NrJyB8ICdzdW5zcGVjJyB8ICdtb2NrLXNwZWMnO1xuICBwaGFzZUNvdW50OiAxIHwgMztcbiAgZG9jUmVmPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElXaXphcmRPdmVycmlkZSB7XG4gIG92ZXJyaWRlTnVtYmVyOiBudW1iZXI7XG4gIG92ZXJyaWRlVHlwZTogbnVtYmVyO1xuICBzdGFydFRpbWU6IG51bWJlcjtcbiAgZW5kVGltZTogbnVtYmVyO1xuICBhYm92ZVdhdHRzOiBudW1iZXI7XG4gIGJlbG93V2F0dHM6IG51bWJlcjtcbiAgYWJvdmVUaW1lOiBudW1iZXI7XG4gIGJlbG93VGltZTogbnVtYmVyO1xuICBtaW5PblRpbWU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJV2l6YXJkQ29uZmlnIHtcbiAgaW52ZXJ0ZXJzOiBJV2l6YXJkSW52ZXJ0ZXJbXTtcbiAgaHc6IHsgW2tleTogc3RyaW5nXTogSVdpemFyZE92ZXJyaWRlW10gfTtcbiAgYWNMb2FkVHlwZXM6IHN0cmluZ1tdO1xuICBkcm1Mb2FkVHlwZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdW5zcGVjRGV2aWNlUHJvZ3Jlc3Mge1xuICBpcF9hZGRyZXNzOiBzdHJpbmc7XG4gIHBvcnQ6IG51bWJlcjtcbiAgc2xhdmVpZDogbnVtYmVyO1xuICBzZXJpYWw6IHN0cmluZztcbiAgbWZnOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -49,10 +49,10 @@ class CpDevicesListService {
|
|
|
49
49
|
}
|
|
50
50
|
return value;
|
|
51
51
|
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
53
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
53
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListService, providedIn: 'root' }); }
|
|
54
54
|
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListService, decorators: [{
|
|
56
56
|
type: Injectable,
|
|
57
57
|
args: [{
|
|
58
58
|
providedIn: 'root',
|
|
@@ -571,10 +571,10 @@ class DatasetProcessingService {
|
|
|
571
571
|
});
|
|
572
572
|
});
|
|
573
573
|
}
|
|
574
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
575
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
574
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatasetProcessingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
575
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatasetProcessingService, providedIn: 'root' }); }
|
|
576
576
|
}
|
|
577
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
577
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatasetProcessingService, decorators: [{
|
|
578
578
|
type: Injectable,
|
|
579
579
|
args: [{
|
|
580
580
|
providedIn: 'root',
|
|
@@ -674,10 +674,10 @@ class CrcCheckService {
|
|
|
674
674
|
commandData.byteData[254] = checkSum[1];
|
|
675
675
|
return commandData;
|
|
676
676
|
}
|
|
677
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
678
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
677
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CrcCheckService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
678
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CrcCheckService, providedIn: 'root' }); }
|
|
679
679
|
}
|
|
680
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
680
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CrcCheckService, decorators: [{
|
|
681
681
|
type: Injectable,
|
|
682
682
|
args: [{
|
|
683
683
|
providedIn: 'root',
|
|
@@ -736,15 +736,15 @@ class CommandService {
|
|
|
736
736
|
//console.log(JSON.stringify(send));
|
|
737
737
|
return send;
|
|
738
738
|
}
|
|
739
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
740
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
739
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommandService, deps: [{ token: DatasetProcessingService }, { token: CrcCheckService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
740
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommandService, providedIn: 'root' }); }
|
|
741
741
|
}
|
|
742
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
742
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommandService, decorators: [{
|
|
743
743
|
type: Injectable,
|
|
744
744
|
args: [{
|
|
745
745
|
providedIn: 'root',
|
|
746
746
|
}]
|
|
747
|
-
}], ctorParameters:
|
|
747
|
+
}], ctorParameters: () => [{ type: DatasetProcessingService }, { type: CrcCheckService }] });
|
|
748
748
|
|
|
749
749
|
class DeviceConfigDatasetService {
|
|
750
750
|
constructor(dps, formBuilder) {
|
|
@@ -918,15 +918,15 @@ class DeviceConfigDatasetService {
|
|
|
918
918
|
//console.log('END OF GENERATE FORMGROUP');
|
|
919
919
|
return configForm;
|
|
920
920
|
}
|
|
921
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
922
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
921
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceConfigDatasetService, deps: [{ token: DatasetProcessingService }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
922
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceConfigDatasetService, providedIn: 'root' }); }
|
|
923
923
|
}
|
|
924
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
924
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceConfigDatasetService, decorators: [{
|
|
925
925
|
type: Injectable,
|
|
926
926
|
args: [{
|
|
927
927
|
providedIn: 'root',
|
|
928
928
|
}]
|
|
929
|
-
}], ctorParameters:
|
|
929
|
+
}], ctorParameters: () => [{ type: DatasetProcessingService }, { type: i2.UntypedFormBuilder }] });
|
|
930
930
|
|
|
931
931
|
class DeviceLiveDatasetService {
|
|
932
932
|
constructor(dps) {
|
|
@@ -982,22 +982,22 @@ class DeviceLiveDatasetService {
|
|
|
982
982
|
}
|
|
983
983
|
return result;
|
|
984
984
|
}
|
|
985
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
986
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
985
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceLiveDatasetService, deps: [{ token: DatasetProcessingService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
986
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceLiveDatasetService, providedIn: 'root' }); }
|
|
987
987
|
}
|
|
988
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
988
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceLiveDatasetService, decorators: [{
|
|
989
989
|
type: Injectable,
|
|
990
990
|
args: [{
|
|
991
991
|
providedIn: 'root',
|
|
992
992
|
}]
|
|
993
|
-
}], ctorParameters:
|
|
993
|
+
}], ctorParameters: () => [{ type: DatasetProcessingService }] });
|
|
994
994
|
|
|
995
995
|
class CpDevicesListModule {
|
|
996
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
997
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
998
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
996
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
997
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListModule }); }
|
|
998
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListModule }); }
|
|
999
999
|
}
|
|
1000
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1000
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CpDevicesListModule, decorators: [{
|
|
1001
1001
|
type: NgModule,
|
|
1002
1002
|
args: [{
|
|
1003
1003
|
declarations: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catchpower-device-config-interaction.mjs","sources":["../../../projects/device-config-interaction/src/lib/device-config-interaction.service.ts","../../../projects/device-config-interaction/src/lib/dataset-processing.service.ts","../../../projects/device-config-interaction/src/lib/crc-check.service.ts","../../../projects/device-config-interaction/src/lib/command.service.ts","../../../projects/device-config-interaction/src/lib/device-config-dataset.service.ts","../../../projects/device-config-interaction/src/lib/device-live-dataset.service.ts","../../../projects/device-config-interaction/src/lib/device-config-interaction.module.ts","../../../projects/device-config-interaction/src/public-api.ts","../../../projects/device-config-interaction/src/catchpower-device-config-interaction.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n IConfig,\n IDevicesList,\n IDisplay,\n IOtherDataObj,\n IRawDataObj,\n} from '../public-api';\nimport { AxiosResponse } from 'axios';\nimport * as axios from 'axios';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CpDevicesListService {\n //constructor() {}\n\n async getDevicesList(\n _url: string,\n auth: string,\n listVersion = '-1'\n ): Promise<IDevicesList | Error> {\n //console.log('getDevicesList function TRIGGERED ', _url);\n const headers = {\n Authorization: 'Basic ' + btoa(auth),\n 'list-version': listVersion,\n };\n const response = await axios.default\n .request({\n method: 'get',\n url: _url,\n headers: headers,\n })\n .then(\n (res: AxiosResponse) => {\n if (res.status == 200) {\n //console.log( 'get DL function SUCCESS ', JSON.stringify(res));\n return res.data as IDevicesList;\n } else {\n return new Error(\n 'ERROR getting Devices List. ' + JSON.stringify(res)\n );\n }\n },\n (error: AxiosResponse) => {\n return new Error(\n 'ERROR getting Devices List. ' + JSON.stringify(error)\n );\n }\n );\n\n return response;\n }\n\n getValueFromObj(\n element: IDisplay | IConfig,\n name: string\n ): (string | number) | null {\n let value = null;\n let notInOther = true;\n element.otherData.forEach((other: IOtherDataObj) => {\n if (other.name == name) {\n value = other.value;\n notInOther = false;\n }\n });\n if (notInOther) {\n element.rawData.forEach((raw: IRawDataObj) => {\n if (raw.name == name) {\n value = raw.value;\n }\n });\n }\n return value;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n IBufferObj,\n IProcessDataObj,\n IProcessDataStep,\n IRawDataObj,\n IOtherDataObj,\n IConfig,\n IDisplay,\n} from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DatasetProcessingService {\n //constructor() {}\n /*\n * For use with DataView\n *\n */\n getValuefromBuffer(obj: IBufferObj, buffer: DataView) {\n let value = 0;\n if (obj.signed) {\n switch (obj.length) {\n case 8:\n value = buffer.getInt8(obj.position);\n break;\n case 16:\n value = buffer.getInt16(obj.position, obj.little);\n break;\n case 32:\n value = buffer.getInt32(obj.position, obj.little);\n break;\n }\n } else {\n switch (obj.length) {\n case 8:\n value = buffer.getUint8(obj.position);\n break;\n case 16:\n value = buffer.getUint16(obj.position, obj.little);\n break;\n case 32:\n value = buffer.getUint32(obj.position, obj.little);\n break;\n }\n }\n return value;\n }\n\n /*\n * For use with DataView\n *\n *\n */\n writeValueToBuffer(obj: IBufferObj, value: number, buffer: DataView) {\n if (obj.signed) {\n switch (obj.length) {\n case 8:\n buffer.setInt8(obj.position, value);\n break;\n case 16:\n buffer.setInt16(obj.position, value, obj.little);\n break;\n case 32:\n buffer.setInt32(obj.position, value, obj.little);\n break;\n }\n } else {\n switch (obj.length) {\n case 8:\n buffer.setUint8(obj.position, value);\n break;\n case 16:\n buffer.setUint16(obj.position, value, obj.little);\n break;\n case 32:\n buffer.setUint32(obj.position, value, obj.little);\n break;\n }\n }\n }\n\n runProcess(\n process: IProcessDataObj,\n rawData: IRawDataObj[],\n otherData: IOtherDataObj[]\n ) {\n const values: (string | number)[] = this.getChunkValues(\n process.data,\n rawData,\n otherData\n );\n //console.log('process values ', values);\n let pVal: string | number | boolean = 0;\n switch (process.type) {\n case 'ass':\n pVal = this.assembleProcess(values);\n process.value = pVal;\n return;\n case 'com':\n pVal = this.compareProcess(\n values as [number, '<' | '<=' | '==' | '>=' | '>', number],\n process\n );\n process.value = pVal;\n return;\n case 'cal':\n pVal = this.calculateProcess(\n values as [number, '+' | '-' | '/' | '*', number]\n );\n process.value = pVal;\n return;\n case 'tfm':\n pVal = this.tfmProcess(values as number[]);\n process.value = pVal;\n return;\n case 'cdt':\n pVal = this.cdtProcess(values as string[]);\n process.value = pVal;\n return;\n case 'itd':\n pVal = this.itdProcess(values as number[]);\n process.value = pVal;\n return;\n case 'its':\n pVal = this.itsProcess(values as number[]);\n process.value = pVal;\n return;\n case 'bsv':\n pVal = this.bsvProcess(values);\n process.value = pVal;\n return;\n case 'vfa':\n pVal = this.vfaProcess(values as number[], process);\n process.value = pVal;\n return;\n case 'cts':\n pVal = this.ctsProcess(values as number[]);\n process.value = pVal;\n return;\n }\n }\n\n assembleProcess(values: (string | number)[]) {\n let result = '';\n values.forEach((v) => {\n result += v;\n });\n return result;\n }\n\n disassembleProcess(string: string, values: IProcessDataStep[]) {\n const result: { [key: string]: number } = {};\n let i = 0;\n let length = 0;\n values.forEach((val) => {\n if (Object.prototype.hasOwnProperty.call(val, 'strLength')) {\n length = val.strLength as number;\n } else {\n const str = val.value as string;\n length = str.length;\n }\n if (val.fromData == 'raw') {\n result[val.value] = Number(string.substring(i, i + length));\n }\n i = i + length;\n });\n //console.log('Disassemble Result ', JSON.stringify(result));\n return result;\n }\n\n compareProcess(\n values: [number, '<' | '<=' | '==' | '>=' | '>', number],\n process: IProcessDataObj\n ) {\n const result: boolean = this.compareValues(values[0], values[1], values[2]);\n let text = 'N/A';\n if ('comTxt' in process) {\n if (process.comTxt !== undefined) {\n if (result) {\n text = process.comTxt[0];\n } else {\n return process.comTxt[1];\n }\n }\n }\n return text;\n }\n\n compareValues(v1: number, op: '<' | '<=' | '==' | '>=' | '>', v2: number) {\n switch (op) {\n case '<':\n return v1 < v2;\n case '<=':\n return v1 <= v2;\n case '==':\n return v1 == v2;\n case '>=':\n return v1 >= v2;\n case '>':\n return v1 > v2;\n default:\n return false;\n }\n }\n\n calculateProcess(values: [number, '+' | '-' | '/' | '*', number]) {\n return this.calculateValues(values[0], values[1], values[2]);\n }\n\n calculateValues(v1: number, op: '+' | '-' | '/' | '*', v2: number) {\n switch (op) {\n case '+':\n return v1 + v2;\n case '-':\n return v1 - v2;\n case '/':\n return v1 / v2;\n case '*':\n return v1 * v2;\n default:\n return 0;\n }\n }\n\n tfmProcess(values: number[]) {\n const hours: number = Math.floor((values[0] * 60) / 3600);\n const mins: number = Math.floor((values[0] * 60 - hours * 3600) / 60);\n return this.displayTime(hours, mins);\n }\n\n cdtProcess(values: string[]) {\n const hours: number = parseInt(values[0].substring(11, 13));\n const mins: number = parseInt(values[0].substring(14, 16));\n return this.displayTime(hours, mins);\n }\n\n //New process to pick value from array based on interger value\n vfaProcess(values: number[], process: IProcessDataObj) {\n const value = values[0];\n if (process.valuesList !== undefined) {\n if (value < process.valuesList.length) {\n return process.valuesList[value];\n } else {\n return 'nip';\n }\n } else {\n return 'n/a';\n }\n }\n\n itdProcess(values: number[]) {\n let hours: number = Math.floor((values[0] * 60) / 3600);\n //console.log(\"hours \", hours);\n const mins: number = Math.floor((values[0] * 60 - hours * 3600) / 60);\n //console.log(\"mins \", mins);\n let h: number | string;\n let m: number | string;\n if (hours > 23) {\n hours = hours - 24;\n }\n if (hours < 10) {\n h = '0' + hours;\n } else {\n h = hours;\n }\n if (mins < 10) {\n m = '0' + mins;\n } else {\n m = mins;\n }\n const string: string = '0000-00-00T' + h + ':' + m;\n //console.log(\"$%^&&^%%$$%^&&&^%%%%^^^&&&^^%^%%%^^^& dt string \", string);\n return string;\n }\n\n dtiProcess(string: string, values: IProcessDataStep[]) {\n //console.log(\"dtiProcess inputs string: \", string, \" Values: \", values);\n const result: { [key: string | number]: number } = {};\n let h: number;\n let m: number;\n values.forEach((val) => {\n // h = Number(string.substr(11, 2));\n // m = Number(string.substr(14, 2));\n h = Number(string.substring(11, 13));\n m = Number(string.substring(14, 16));\n result[val.value] = h * 60 + m;\n });\n //console.log(\"date to integer Result \", JSON.stringify(result));\n return result;\n }\n\n itsProcess(values: number[]) {\n //console.log('itsProcess values', JSON.stringify(values));\n const str: string = values[0].toString();\n return str;\n }\n\n stiProcess(string: string, values: IProcessDataStep[]) {\n const result: { [key: string | number]: number } = {};\n values.forEach((val) => {\n result[val.value] = Number(string);\n });\n //console.log(\"string to integer Result \", JSON.stringify(result));\n return result;\n }\n\n bsvProcess(values: (number | string)[]) {\n const startValue: string = values[0] as string;\n const pos1: number = values[1] as number;\n const pos2: number = pos1 + 1;\n const binaryStr: string = parseInt(startValue, 10)\n .toString(2)\n .padStart(4, '0');\n return binaryStr.substring(pos1, pos2);\n }\n\n bsvRevert(\n string: string,\n values: IProcessDataStep[],\n bssObj: { [key: string]: string | number }\n ) {\n if (Object.prototype.hasOwnProperty.call(bssObj, values[0].value)) {\n bssObj[values[0].value] = this.replaceCharAt(\n bssObj[values[0].value] as string,\n values[1].value as number,\n string\n );\n } else {\n bssObj[values[0].value] = '0000';\n bssObj[values[0].value] = this.replaceCharAt(\n bssObj[values[0].value] as string,\n values[1].value as number,\n string\n );\n }\n return bssObj;\n }\n\n stcProcess(value: string) {\n const initArray = value.split('');\n const resultArray: number[] = [];\n initArray.forEach((v) => {\n resultArray.push(v.charCodeAt(0));\n });\n return resultArray;\n }\n\n ctsProcess(values: number[]) {\n // let result: string = \"\";\n const ary: number[] = [];\n values.forEach((v) => {\n if (v >= 0) {\n ary.push(v);\n } else {\n ary.push(0);\n }\n });\n //console.log(\"CTS PROCESS INPUT VALUES \", values);\n let str = String.fromCharCode(...ary);\n // eslint-disable-next-line no-control-regex\n str = str.replace(/[\\u0000]/g, '');\n //str = str.replace(/[^\\x20-\\x7E]/g, \"\");\n return str;\n }\n\n ctsRevert(\n otherObj: IOtherDataObj,\n results: { [key: string | number]: string | number }\n ) {\n const valAry = this.stcProcess(<string>otherObj.value);\n //console.log(\"VAL ARRAY\", valAry);\n //console.log(\"PROCESS DATA\", JSON.stringify(otherObj.processData));\n let progress = 0;\n otherObj.processData[0].data.forEach((process) => {\n const res: { [key: string | number]: string | number } = {};\n\n if (valAry.length >= progress) {\n res[process.value] = valAry[progress];\n } else {\n res[process.value] = 0;\n }\n results = Object.assign(results, res);\n ++progress;\n });\n return results;\n }\n\n binaryStrToDecimal(str: string) {\n return parseInt(str, 2);\n }\n\n replaceCharAt(string: string, index: number, char: string) {\n return (\n string.substring(0, index) + char + string.substring(index + char.length)\n );\n //return string.substr(0, index) + char + string.substr(index + char.length);\n }\n\n writeFormValuesToRawObj(\n formValues: { [key: string]: string | number },\n rawObj: IRawDataObj[]\n ) {\n // rawObj.forEach((raw) => {\n // if (formValues.hasOwnProperty(raw.name)) {\n // raw.value = Math.round(formValues[raw.name] / raw.multi);\n // }\n // });\n for (let i = 0; i < rawObj.length; i++) {\n if (Object.prototype.hasOwnProperty.call(formValues, rawObj[i].name)) {\n rawObj[i].value = Math.round(\n (formValues[rawObj[i].name] as number) / rawObj[i].multi\n );\n }\n }\n return rawObj;\n }\n\n getPwd(rawValues: IRawDataObj[]) {\n const pwdArray: number[] = [];\n let i: number;\n let name: string;\n\n for (i = 0; i < 16; i++) {\n if (i < 10) {\n name = 'pass_0' + i;\n } else {\n name = 'pass_' + i;\n }\n rawValues.forEach((v) => {\n if (v.name == name) {\n pwdArray.push(v.value);\n }\n });\n }\n\n return pwdArray;\n }\n\n strToPwd(string: string) {\n const pwdArray: number[] = [];\n let i: number;\n\n if (string == null) {\n string = '';\n }\n\n for (i = 0; i < 16; i++) {\n if (i < string.length) {\n pwdArray.push(string.charCodeAt(i));\n } else {\n pwdArray.push(0);\n }\n }\n\n return pwdArray;\n }\n\n chkPwd(arr1: number[], arr2: number[]) {\n if (\n !Array.isArray(arr1) ||\n !Array.isArray(arr2) ||\n arr1.length !== arr2.length\n )\n return false;\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) return false;\n }\n\n return true;\n }\n\n writePwdToConfig(passArray: number[], rawObj: IRawDataObj[]) {\n let i: number;\n let name: string;\n\n //console.log(\"Before write password \", JSON.stringify(rawObj));\n\n for (i = 0; i < 16; i++) {\n if (i < 10) {\n name = 'pass_0' + i;\n } else {\n name = 'pass_' + i;\n }\n rawObj.forEach((v) => {\n if (v.name == name) {\n v.value = passArray[i];\n }\n });\n }\n\n //console.log(\"After write password \", JSON.stringify(rawObj));\n\n return rawObj;\n }\n\n displayTime(hours: number, mins: number) {\n //console.log(\"hours = \", hours, \" mins = \", mins);\n let m: number | string = mins;\n let p = 'am';\n if (mins < 10) {\n m = '0' + mins;\n }\n if (hours > 11) {\n p = 'pm';\n }\n if (hours == 0) {\n hours = 12;\n }\n if (hours > 12) {\n hours -= 12;\n }\n return hours + ':' + m + ' ' + p;\n }\n\n getChunkValues(\n processData: IProcessDataStep[],\n rawData: IRawDataObj[],\n otherData: IOtherDataObj[]\n ) {\n // console.log(\n // 'GET CHUNK VALUES ',\n // JSON.stringify(rawData),\n // ' ',\n // JSON.stringify(otherData)\n // );\n let v: string | number;\n const values: (string | number)[] = [];\n processData.forEach((chunk) => {\n //console.log('Process Raw chunk ', JSON.stringify(chunk));\n switch (chunk.fromData) {\n case 'raw':\n rawData.forEach((rd) => {\n if (rd.name == chunk.value) {\n //console.log('RAW chunk name: ', rd.name);\n v = rd.value;\n }\n });\n break;\n case 'other':\n otherData.forEach((od) => {\n if (od.name == chunk.value) {\n v = od.value;\n }\n });\n break;\n case 'no':\n v = chunk.value;\n break;\n }\n\n if (typeof chunk.strLength === 'undefined') {\n values.push(v);\n } else {\n const pad = v.toString().padStart(chunk.strLength, '0');\n values.push(pad);\n }\n });\n return values;\n }\n\n uint8ArrayToArray(uint8: Uint8Array): number[] {\n return Array.from(uint8);\n }\n\n arrayToUint8Array(array: number[]): Uint8Array {\n return Uint8Array.from(array);\n }\n\n isUint8Array(v: number[] | Uint8Array) {\n const isStr = Object.prototype.toString;\n return isStr.call(v) === '[object Uint8Array]';\n }\n\n processRaw(input: number[] | Uint8Array, configObj: IConfig | IDisplay) {\n let buffer: Uint8Array;\n if (this.isUint8Array(input)) {\n buffer = input as Uint8Array;\n } else {\n buffer = this.arrayToUint8Array(input as number[]);\n }\n const rawDataBuffer = new DataView(buffer.buffer, 0, 254);\n //console.log('PROCESS RAW CONFIG ', rawDataBuffer);\n configObj.rawData.forEach((datapoint) => {\n datapoint.value =\n this.getValuefromBuffer(datapoint.buffer, rawDataBuffer) *\n datapoint.multi;\n });\n }\n\n processOther(configObj: IConfig | IDisplay) {\n configObj.otherData.forEach((dataPoint) => {\n dataPoint.processData.forEach((process) => {\n this.runProcess(process, configObj.rawData, configObj.otherData);\n dataPoint.value = process.value;\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ICommandData } from '../public-api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CrcCheckService {\n // checksum arrays\n auchCRCHi = [\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40,\n ];\n auchCRCLo = [\n 0x00, 0xc0, 0xc1, 0x01, 0xc3, 0x03, 0x02, 0xc2, 0xc6, 0x06, 0x07, 0xc7,\n 0x05, 0xc5, 0xc4, 0x04, 0xcc, 0x0c, 0x0d, 0xcd, 0x0f, 0xcf, 0xce, 0x0e,\n 0x0a, 0xca, 0xcb, 0x0b, 0xc9, 0x09, 0x08, 0xc8, 0xd8, 0x18, 0x19, 0xd9,\n 0x1b, 0xdb, 0xda, 0x1a, 0x1e, 0xde, 0xdf, 0x1f, 0xdd, 0x1d, 0x1c, 0xdc,\n 0x14, 0xd4, 0xd5, 0x15, 0xd7, 0x17, 0x16, 0xd6, 0xd2, 0x12, 0x13, 0xd3,\n 0x11, 0xd1, 0xd0, 0x10, 0xf0, 0x30, 0x31, 0xf1, 0x33, 0xf3, 0xf2, 0x32,\n 0x36, 0xf6, 0xf7, 0x37, 0xf5, 0x35, 0x34, 0xf4, 0x3c, 0xfc, 0xfd, 0x3d,\n 0xff, 0x3f, 0x3e, 0xfe, 0xfa, 0x3a, 0x3b, 0xfb, 0x39, 0xf9, 0xf8, 0x38,\n 0x28, 0xe8, 0xe9, 0x29, 0xeb, 0x2b, 0x2a, 0xea, 0xee, 0x2e, 0x2f, 0xef,\n 0x2d, 0xed, 0xec, 0x2c, 0xe4, 0x24, 0x25, 0xe5, 0x27, 0xe7, 0xe6, 0x26,\n 0x22, 0xe2, 0xe3, 0x23, 0xe1, 0x21, 0x20, 0xe0, 0xa0, 0x60, 0x61, 0xa1,\n 0x63, 0xa3, 0xa2, 0x62, 0x66, 0xa6, 0xa7, 0x67, 0xa5, 0x65, 0x64, 0xa4,\n 0x6c, 0xac, 0xad, 0x6d, 0xaf, 0x6f, 0x6e, 0xae, 0xaa, 0x6a, 0x6b, 0xab,\n 0x69, 0xa9, 0xa8, 0x68, 0x78, 0xb8, 0xb9, 0x79, 0xbb, 0x7b, 0x7a, 0xba,\n 0xbe, 0x7e, 0x7f, 0xbf, 0x7d, 0xbd, 0xbc, 0x7c, 0xb4, 0x74, 0x75, 0xb5,\n 0x77, 0xb7, 0xb6, 0x76, 0x72, 0xb2, 0xb3, 0x73, 0xb1, 0x71, 0x70, 0xb0,\n 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97,\n 0x55, 0x95, 0x94, 0x54, 0x9c, 0x5c, 0x5d, 0x9d, 0x5f, 0x9f, 0x9e, 0x5e,\n 0x5a, 0x9a, 0x9b, 0x5b, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89,\n 0x4b, 0x8b, 0x8a, 0x4a, 0x4e, 0x8e, 0x8f, 0x4f, 0x8d, 0x4d, 0x4c, 0x8c,\n 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,\n 0x41, 0x81, 0x80, 0x40,\n ];\n\n //constructor() {}\n\n _buildCRC(\n puchMsg: Uint8Array,\n usDataLen: number,\n startIndex = 0\n ): [number, number] {\n console.log('Start of CRC check generation.');\n let uchCRCHi = 0xff; /* high byte of CRC initialized */\n let uchCRCLo = 0xff; /* low byte of CRC initialized */\n let uIndex; /* will index into CRC lookup table */\n let bufferIndex = startIndex;\n\n while (usDataLen--) {\n uIndex = uchCRCLo ^ puchMsg[bufferIndex]; /* calculate the CRC */\n\n bufferIndex++;\n uchCRCLo = uchCRCHi ^ this.auchCRCHi[uIndex];\n uchCRCHi = this.auchCRCLo[uIndex];\n }\n\n return [uchCRCHi, uchCRCLo];\n }\n\n /**\n *\n * @param sentValuePair\n * @param receivedValuePair\n * @returns\n */\n saveCheck(\n sentValuePair: [number, number],\n receivedValuePair: [number, number]\n ): boolean {\n console.log(\n 'CRC save check sent ',\n sentValuePair,\n ' recieved ',\n receivedValuePair\n );\n if (\n sentValuePair[0] === receivedValuePair[0] &&\n sentValuePair[1] === receivedValuePair[1]\n ) {\n console.log('CRC compare check TRUE');\n return true;\n } else {\n console.log('CRC compare check FALSE');\n return false;\n }\n }\n\n async writeCrcToCommand(commandData: ICommandData) {\n console.log('WRITE CRC TO COMMAND TRIGGERED ');\n const checkSum = this._buildCRC(\n commandData.byteData,\n commandData.byteData.length - 2\n );\n\n console.log('###### ####### CRC16 values ', checkSum);\n\n commandData.byteData[253] = checkSum[0];\n commandData.byteData[254] = checkSum[1];\n\n return commandData;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ICommandData,\n ICommandDataApi,\n IDevice,\n IRawDataObj,\n} from '../public-api';\nimport { DatasetProcessingService } from './dataset-processing.service';\nimport { CrcCheckService } from './crc-check.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommandService {\n constructor(\n private dps: DatasetProcessingService,\n private crcService: CrcCheckService\n ) {}\n\n /**\n * For Bluetooth command send\n * @param currentDevice\n * @param command\n * @param rawDataObj\n * @returns\n */\n async createCommandData(\n currentDevice: IDevice,\n command: string,\n rawDataObj?: IRawDataObj[]\n ) {\n let opCode = 0;\n const comandBuffer = new ArrayBuffer(currentDevice.write.bufferSize);\n\n currentDevice.commands.forEach((commandObj) => {\n //console.log('Command Name', commandObj.name);\n if (command == commandObj.name) {\n opCode = parseInt(commandObj.opCode);\n }\n });\n\n //console.log('########### $$$$$$$$$$$$ Op Code ', opCode);\n if (rawDataObj !== undefined) {\n //console.log('create Command Data, Raw Data Object is present.');\n const dataView = new DataView(comandBuffer);\n rawDataObj.forEach((raw) => {\n this.dps.writeValueToBuffer(raw.buffer, raw.value, dataView);\n });\n }\n\n let commandData: ICommandData = {\n opCode: opCode,\n service: currentDevice.write.service,\n characteristic: currentDevice.write.characteristic,\n byteData: new Uint8Array(comandBuffer),\n };\n commandData.byteData[0] = commandData.opCode;\n\n commandData = await this.crcService.writeCrcToCommand(commandData);\n\n return commandData;\n }\n\n async createCommandDataForApi(\n currentDevice: IDevice,\n command: string,\n rawDataObj?: IRawDataObj[]\n ): Promise<ICommandDataApi> {\n let raw = undefined;\n if (rawDataObj !== undefined) {\n raw = rawDataObj;\n }\n const commandBt = this.createCommandData(currentDevice, command, raw);\n const send = {\n serialNumber: currentDevice.serial.toString(),\n data: this.dps.uint8ArrayToArray((await commandBt).byteData),\n };\n //console.log(JSON.stringify(send));\n return send;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { DatasetProcessingService } from './dataset-processing.service';\n\nimport { IConfig, IFormDataObj } from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DeviceConfigDatasetService {\n constructor(\n private dps: DatasetProcessingService,\n public formBuilder: UntypedFormBuilder\n ) {}\n\n processConfig(buffer: number[] | Uint8Array, config: IConfig) {\n this.dps.processRaw(buffer, config);\n this.dps.processOther(config);\n this.processForm(config);\n return config;\n }\n\n processForm(config: IConfig) {\n //console.log(\"Starting to process form data\");\n config.formData.forEach((formSection) => {\n formSection.dataObjs.forEach((formControl) => {\n config.rawData.forEach((dp) => {\n if (formControl.dataId == dp.name) {\n formControl.value = dp.value;\n }\n });\n config.otherData.forEach((dp) => {\n if (formControl.dataId == dp.name) {\n formControl.value = dp.value;\n }\n });\n });\n });\n }\n\n processResultsToFormData(\n formResults: { [key: string]: string | number },\n config: IConfig\n ) {\n for (let i = 0; i < config.formData.length; i++) {\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n if (\n Object.prototype.hasOwnProperty.call(\n formResults,\n config.formData[i].dataObjs[x].dataId\n )\n ) {\n config.formData[i].dataObjs[x].value =\n formResults[config.formData[i].dataObjs[x].dataId];\n }\n\n if (\n Object.prototype.hasOwnProperty.call(\n config.formData[i].dataObjs[x],\n 'autoInput'\n )\n ) {\n if (config.formData[i].dataObjs[x].autoInput == true) {\n //console.log(\"auto date condition met\");\n config.formData[i].dataObjs[x].value = this.currentDateTimeStr();\n }\n }\n }\n }\n\n //console.log(\"formdata object updated\", JSON.stringify(config.formData));\n return config;\n }\n\n currentDateTimeStr() {\n const date = new Date();\n const str =\n date.getFullYear() +\n '-' +\n (date.getMonth() + 1).toString().padStart(2, '0') +\n '-' +\n date.getDate().toString().padStart(2, '0') +\n 'T' +\n date.getHours().toString().padStart(2, '0') +\n ':' +\n date.getMinutes().toString().padStart(2, '0');\n return str;\n }\n\n extractBackToRaw(config: IConfig): IConfig {\n const otherToProcess: { [key: string]: number | string } = {};\n let valuesToRaw: { [key: string]: number | string } = {};\n let bss: { [key: string]: number | string } = {};\n\n if (Object.prototype.hasOwnProperty.call(config, 'formData')) {\n for (let i = 0; i < config.formData.length; i++) {\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n let isRawData = false;\n for (let z = 0; z < config.rawData.length; z++) {\n if (\n config.rawData[z].name == config.formData[i].dataObjs[x].dataId\n ) {\n valuesToRaw[config.formData[i].dataObjs[x].dataId] =\n config.formData[i].dataObjs[x].value;\n isRawData = true;\n }\n }\n if (isRawData == false) {\n otherToProcess[config.formData[i].dataObjs[x].dataId] =\n config.formData[i].dataObjs[x].value;\n }\n }\n }\n } else {\n config.otherData.forEach((otherObj) => {\n otherToProcess[otherObj.name] = otherObj.value;\n });\n }\n\n //console.log('Other to Process ', JSON.stringify(otherToProcess));\n\n config.otherData.forEach((otherObj) => {\n const value = otherToProcess[otherObj.name];\n // console.log(\n // 'EXTRACT BACK TO RAW ',\n // ' ',\n // otherObj.name,\n // ' ',\n // JSON.stringify(value)\n // );\n otherObj.processData.forEach((pdo) => {\n switch (pdo.type) {\n case 'ass':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.disassembleProcess(value as string, pdo.data)\n );\n return;\n case 'itd':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.dtiProcess(value as string, pdo.data)\n );\n return;\n case 'its':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.stiProcess(value as string, pdo.data)\n );\n return;\n case 'bsv':\n bss = this.dps.bsvRevert(value as string, pdo.data, bss);\n return;\n }\n });\n });\n\n if (Object.keys(bss).length > 0) {\n for (const str in bss) {\n valuesToRaw[str] = this.dps.binaryStrToDecimal(bss[str] as string);\n }\n }\n config.rawData = this.dps.writeFormValuesToRawObj(\n valuesToRaw,\n config.rawData\n );\n //console.log(\"rawData Obj \", JSON.stringify(config.rawData));\n return config;\n }\n\n generateValidationRules(formField: IFormDataObj) {\n const validators = [];\n\n if (formField.required == true) {\n validators.push(Validators.required);\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'min')) {\n if (formField.min !== undefined)\n validators.push(Validators.min(formField.min));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'max')) {\n if (formField.max !== undefined)\n validators.push(Validators.max(formField.max));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'minLength')) {\n if (formField.minLength !== undefined)\n validators.push(Validators.minLength(formField.minLength));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'maxLength')) {\n if (formField.maxLength !== undefined)\n validators.push(Validators.maxLength(formField.maxLength));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'rex')) {\n if (formField.rex !== undefined)\n validators.push(Validators.pattern(formField.rex));\n }\n return validators;\n }\n\n generateFormGroup(config: IConfig, blackList: string[]) {\n //console.log('Generate form group TRIGGERED');\n const configForm = new UntypedFormGroup({});\n\n for (let i = 0; i < config.formData.length; i++) {\n //console.log(\"FORM SECTION \", JSON.stringify(config.formData[i]));\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n if (!blackList.includes(config.formData[i].title)) {\n let fieldDisable = false;\n const validators = this.generateValidationRules(\n config.formData[i].dataObjs[x]\n );\n if (!config.formData[i].dataObjs[x].active) {\n fieldDisable = true;\n }\n //console.log('ADD CONTROL');\n configForm.addControl(\n config.formData[i].dataObjs[x].dataId,\n new UntypedFormControl(\n {\n value: config.formData[i].dataObjs[x].value,\n disabled: fieldDisable,\n },\n validators\n )\n );\n }\n }\n }\n //console.log('END OF GENERATE FORMGROUP');\n return configForm;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DatasetProcessingService } from './dataset-processing.service';\n\nimport { IDisplay, IDevice } from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DeviceLiveDatasetService {\n constructor(private dps: DatasetProcessingService) {}\n\n processDisplay(buffer: number[] | Uint8Array, display: IDisplay) {\n this.dps.processRaw(buffer, display);\n this.dps.processOther(display);\n this.processLayout(display);\n return display;\n }\n\n processLayout(display: IDisplay) {\n display.layout.forEach((section) => {\n section.rows.forEach((row) => {\n row.cols.forEach((col) => {\n let wv: string | number = '';\n if (typeof col.refData !== 'undefined') {\n display.rawData.forEach((raw) => {\n if (raw.name == col.refData) {\n if (typeof col.round !== 'undefined') {\n wv = raw.value.toFixed(col.round);\n } else {\n wv = raw.value;\n }\n }\n });\n display.otherData.forEach((other) => {\n if (other.name == col.refData) {\n wv = other.value;\n }\n });\n if (typeof col.prepend !== 'undefined') {\n wv = col.prepend + wv;\n }\n if (typeof col.append !== 'undefined') {\n wv = wv + col.append;\n }\n col.value = <string>wv;\n }\n });\n });\n });\n }\n\n async rssiData(\n device: IDevice,\n rssiSignal: () => Promise<number>\n ): Promise<{ deviceName: string; rssi: string }> {\n const result = { deviceName: 'N/A', rssi: 'N/A' };\n\n if (device != null) {\n result.deviceName = device.name;\n const rssi = await rssiSignal();\n if (rssi <= 0) {\n result.rssi = rssi.toString() + ' dBa';\n }\n }\n return result;\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n})\nexport class CpDevicesListModule {}\n","/*\n * Public API Surface of device-config-interaction\n */\n\nexport * from './lib/device-config-interaction.service';\nexport * from './lib/command.service';\nexport * from './lib/crc-check.service';\nexport * from './lib/dataset-processing.service';\nexport * from './lib/device-config-dataset.service';\nexport * from './lib/device-live-dataset.service';\n\nexport * from './lib/device-config-interaction.module';\n\nexport * from './lib/interfaces/devices-list';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DatasetProcessingService","i2.CrcCheckService"],"mappings":"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E,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AACtE,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;AACF,QAAA,IAAA,CAAA,SAAS,GAAG;YACV,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAA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"}
|
|
1
|
+
{"version":3,"file":"catchpower-device-config-interaction.mjs","sources":["../../../projects/device-config-interaction/src/lib/device-config-interaction.service.ts","../../../projects/device-config-interaction/src/lib/dataset-processing.service.ts","../../../projects/device-config-interaction/src/lib/crc-check.service.ts","../../../projects/device-config-interaction/src/lib/command.service.ts","../../../projects/device-config-interaction/src/lib/device-config-dataset.service.ts","../../../projects/device-config-interaction/src/lib/device-live-dataset.service.ts","../../../projects/device-config-interaction/src/lib/device-config-interaction.module.ts","../../../projects/device-config-interaction/src/public-api.ts","../../../projects/device-config-interaction/src/catchpower-device-config-interaction.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n IConfig,\n IDevicesList,\n IDisplay,\n IOtherDataObj,\n IRawDataObj,\n} from '../public-api';\nimport { AxiosResponse } from 'axios';\nimport * as axios from 'axios';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CpDevicesListService {\n //constructor() {}\n\n async getDevicesList(\n _url: string,\n auth: string,\n listVersion = '-1'\n ): Promise<IDevicesList | Error> {\n //console.log('getDevicesList function TRIGGERED ', _url);\n const headers = {\n Authorization: 'Basic ' + btoa(auth),\n 'list-version': listVersion,\n };\n const response = await axios.default\n .request({\n method: 'get',\n url: _url,\n headers: headers,\n })\n .then(\n (res: AxiosResponse) => {\n if (res.status == 200) {\n //console.log( 'get DL function SUCCESS ', JSON.stringify(res));\n return res.data as IDevicesList;\n } else {\n return new Error(\n 'ERROR getting Devices List. ' + JSON.stringify(res)\n );\n }\n },\n (error: AxiosResponse) => {\n return new Error(\n 'ERROR getting Devices List. ' + JSON.stringify(error)\n );\n }\n );\n\n return response;\n }\n\n getValueFromObj(\n element: IDisplay | IConfig,\n name: string\n ): (string | number) | null {\n let value = null;\n let notInOther = true;\n element.otherData.forEach((other: IOtherDataObj) => {\n if (other.name == name) {\n value = other.value;\n notInOther = false;\n }\n });\n if (notInOther) {\n element.rawData.forEach((raw: IRawDataObj) => {\n if (raw.name == name) {\n value = raw.value;\n }\n });\n }\n return value;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n IBufferObj,\n IProcessDataObj,\n IProcessDataStep,\n IRawDataObj,\n IOtherDataObj,\n IConfig,\n IDisplay,\n} from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DatasetProcessingService {\n //constructor() {}\n /*\n * For use with DataView\n *\n */\n getValuefromBuffer(obj: IBufferObj, buffer: DataView) {\n let value = 0;\n if (obj.signed) {\n switch (obj.length) {\n case 8:\n value = buffer.getInt8(obj.position);\n break;\n case 16:\n value = buffer.getInt16(obj.position, obj.little);\n break;\n case 32:\n value = buffer.getInt32(obj.position, obj.little);\n break;\n }\n } else {\n switch (obj.length) {\n case 8:\n value = buffer.getUint8(obj.position);\n break;\n case 16:\n value = buffer.getUint16(obj.position, obj.little);\n break;\n case 32:\n value = buffer.getUint32(obj.position, obj.little);\n break;\n }\n }\n return value;\n }\n\n /*\n * For use with DataView\n *\n *\n */\n writeValueToBuffer(obj: IBufferObj, value: number, buffer: DataView) {\n if (obj.signed) {\n switch (obj.length) {\n case 8:\n buffer.setInt8(obj.position, value);\n break;\n case 16:\n buffer.setInt16(obj.position, value, obj.little);\n break;\n case 32:\n buffer.setInt32(obj.position, value, obj.little);\n break;\n }\n } else {\n switch (obj.length) {\n case 8:\n buffer.setUint8(obj.position, value);\n break;\n case 16:\n buffer.setUint16(obj.position, value, obj.little);\n break;\n case 32:\n buffer.setUint32(obj.position, value, obj.little);\n break;\n }\n }\n }\n\n runProcess(\n process: IProcessDataObj,\n rawData: IRawDataObj[],\n otherData: IOtherDataObj[]\n ) {\n const values: (string | number)[] = this.getChunkValues(\n process.data,\n rawData,\n otherData\n );\n //console.log('process values ', values);\n let pVal: string | number | boolean = 0;\n switch (process.type) {\n case 'ass':\n pVal = this.assembleProcess(values);\n process.value = pVal;\n return;\n case 'com':\n pVal = this.compareProcess(\n values as [number, '<' | '<=' | '==' | '>=' | '>', number],\n process\n );\n process.value = pVal;\n return;\n case 'cal':\n pVal = this.calculateProcess(\n values as [number, '+' | '-' | '/' | '*', number]\n );\n process.value = pVal;\n return;\n case 'tfm':\n pVal = this.tfmProcess(values as number[]);\n process.value = pVal;\n return;\n case 'cdt':\n pVal = this.cdtProcess(values as string[]);\n process.value = pVal;\n return;\n case 'itd':\n pVal = this.itdProcess(values as number[]);\n process.value = pVal;\n return;\n case 'its':\n pVal = this.itsProcess(values as number[]);\n process.value = pVal;\n return;\n case 'bsv':\n pVal = this.bsvProcess(values);\n process.value = pVal;\n return;\n case 'vfa':\n pVal = this.vfaProcess(values as number[], process);\n process.value = pVal;\n return;\n case 'cts':\n pVal = this.ctsProcess(values as number[]);\n process.value = pVal;\n return;\n }\n }\n\n assembleProcess(values: (string | number)[]) {\n let result = '';\n values.forEach((v) => {\n result += v;\n });\n return result;\n }\n\n disassembleProcess(string: string, values: IProcessDataStep[]) {\n const result: { [key: string]: number } = {};\n let i = 0;\n let length = 0;\n values.forEach((val) => {\n if (Object.prototype.hasOwnProperty.call(val, 'strLength')) {\n length = val.strLength as number;\n } else {\n const str = val.value as string;\n length = str.length;\n }\n if (val.fromData == 'raw') {\n result[val.value] = Number(string.substring(i, i + length));\n }\n i = i + length;\n });\n //console.log('Disassemble Result ', JSON.stringify(result));\n return result;\n }\n\n compareProcess(\n values: [number, '<' | '<=' | '==' | '>=' | '>', number],\n process: IProcessDataObj\n ) {\n const result: boolean = this.compareValues(values[0], values[1], values[2]);\n let text = 'N/A';\n if ('comTxt' in process) {\n if (process.comTxt !== undefined) {\n if (result) {\n text = process.comTxt[0];\n } else {\n return process.comTxt[1];\n }\n }\n }\n return text;\n }\n\n compareValues(v1: number, op: '<' | '<=' | '==' | '>=' | '>', v2: number) {\n switch (op) {\n case '<':\n return v1 < v2;\n case '<=':\n return v1 <= v2;\n case '==':\n return v1 == v2;\n case '>=':\n return v1 >= v2;\n case '>':\n return v1 > v2;\n default:\n return false;\n }\n }\n\n calculateProcess(values: [number, '+' | '-' | '/' | '*', number]) {\n return this.calculateValues(values[0], values[1], values[2]);\n }\n\n calculateValues(v1: number, op: '+' | '-' | '/' | '*', v2: number) {\n switch (op) {\n case '+':\n return v1 + v2;\n case '-':\n return v1 - v2;\n case '/':\n return v1 / v2;\n case '*':\n return v1 * v2;\n default:\n return 0;\n }\n }\n\n tfmProcess(values: number[]) {\n const hours: number = Math.floor((values[0] * 60) / 3600);\n const mins: number = Math.floor((values[0] * 60 - hours * 3600) / 60);\n return this.displayTime(hours, mins);\n }\n\n cdtProcess(values: string[]) {\n const hours: number = parseInt(values[0].substring(11, 13));\n const mins: number = parseInt(values[0].substring(14, 16));\n return this.displayTime(hours, mins);\n }\n\n //New process to pick value from array based on interger value\n vfaProcess(values: number[], process: IProcessDataObj) {\n const value = values[0];\n if (process.valuesList !== undefined) {\n if (value < process.valuesList.length) {\n return process.valuesList[value];\n } else {\n return 'nip';\n }\n } else {\n return 'n/a';\n }\n }\n\n itdProcess(values: number[]) {\n let hours: number = Math.floor((values[0] * 60) / 3600);\n //console.log(\"hours \", hours);\n const mins: number = Math.floor((values[0] * 60 - hours * 3600) / 60);\n //console.log(\"mins \", mins);\n let h: number | string;\n let m: number | string;\n if (hours > 23) {\n hours = hours - 24;\n }\n if (hours < 10) {\n h = '0' + hours;\n } else {\n h = hours;\n }\n if (mins < 10) {\n m = '0' + mins;\n } else {\n m = mins;\n }\n const string: string = '0000-00-00T' + h + ':' + m;\n //console.log(\"$%^&&^%%$$%^&&&^%%%%^^^&&&^^%^%%%^^^& dt string \", string);\n return string;\n }\n\n dtiProcess(string: string, values: IProcessDataStep[]) {\n //console.log(\"dtiProcess inputs string: \", string, \" Values: \", values);\n const result: { [key: string | number]: number } = {};\n let h: number;\n let m: number;\n values.forEach((val) => {\n // h = Number(string.substr(11, 2));\n // m = Number(string.substr(14, 2));\n h = Number(string.substring(11, 13));\n m = Number(string.substring(14, 16));\n result[val.value] = h * 60 + m;\n });\n //console.log(\"date to integer Result \", JSON.stringify(result));\n return result;\n }\n\n itsProcess(values: number[]) {\n //console.log('itsProcess values', JSON.stringify(values));\n const str: string = values[0].toString();\n return str;\n }\n\n stiProcess(string: string, values: IProcessDataStep[]) {\n const result: { [key: string | number]: number } = {};\n values.forEach((val) => {\n result[val.value] = Number(string);\n });\n //console.log(\"string to integer Result \", JSON.stringify(result));\n return result;\n }\n\n bsvProcess(values: (number | string)[]) {\n const startValue: string = values[0] as string;\n const pos1: number = values[1] as number;\n const pos2: number = pos1 + 1;\n const binaryStr: string = parseInt(startValue, 10)\n .toString(2)\n .padStart(4, '0');\n return binaryStr.substring(pos1, pos2);\n }\n\n bsvRevert(\n string: string,\n values: IProcessDataStep[],\n bssObj: { [key: string]: string | number }\n ) {\n if (Object.prototype.hasOwnProperty.call(bssObj, values[0].value)) {\n bssObj[values[0].value] = this.replaceCharAt(\n bssObj[values[0].value] as string,\n values[1].value as number,\n string\n );\n } else {\n bssObj[values[0].value] = '0000';\n bssObj[values[0].value] = this.replaceCharAt(\n bssObj[values[0].value] as string,\n values[1].value as number,\n string\n );\n }\n return bssObj;\n }\n\n stcProcess(value: string) {\n const initArray = value.split('');\n const resultArray: number[] = [];\n initArray.forEach((v) => {\n resultArray.push(v.charCodeAt(0));\n });\n return resultArray;\n }\n\n ctsProcess(values: number[]) {\n // let result: string = \"\";\n const ary: number[] = [];\n values.forEach((v) => {\n if (v >= 0) {\n ary.push(v);\n } else {\n ary.push(0);\n }\n });\n //console.log(\"CTS PROCESS INPUT VALUES \", values);\n let str = String.fromCharCode(...ary);\n // eslint-disable-next-line no-control-regex\n str = str.replace(/[\\u0000]/g, '');\n //str = str.replace(/[^\\x20-\\x7E]/g, \"\");\n return str;\n }\n\n ctsRevert(\n otherObj: IOtherDataObj,\n results: { [key: string | number]: string | number }\n ) {\n const valAry = this.stcProcess(<string>otherObj.value);\n //console.log(\"VAL ARRAY\", valAry);\n //console.log(\"PROCESS DATA\", JSON.stringify(otherObj.processData));\n let progress = 0;\n otherObj.processData[0].data.forEach((process) => {\n const res: { [key: string | number]: string | number } = {};\n\n if (valAry.length >= progress) {\n res[process.value] = valAry[progress];\n } else {\n res[process.value] = 0;\n }\n results = Object.assign(results, res);\n ++progress;\n });\n return results;\n }\n\n binaryStrToDecimal(str: string) {\n return parseInt(str, 2);\n }\n\n replaceCharAt(string: string, index: number, char: string) {\n return (\n string.substring(0, index) + char + string.substring(index + char.length)\n );\n //return string.substr(0, index) + char + string.substr(index + char.length);\n }\n\n writeFormValuesToRawObj(\n formValues: { [key: string]: string | number },\n rawObj: IRawDataObj[]\n ) {\n // rawObj.forEach((raw) => {\n // if (formValues.hasOwnProperty(raw.name)) {\n // raw.value = Math.round(formValues[raw.name] / raw.multi);\n // }\n // });\n for (let i = 0; i < rawObj.length; i++) {\n if (Object.prototype.hasOwnProperty.call(formValues, rawObj[i].name)) {\n rawObj[i].value = Math.round(\n (formValues[rawObj[i].name] as number) / rawObj[i].multi\n );\n }\n }\n return rawObj;\n }\n\n getPwd(rawValues: IRawDataObj[]) {\n const pwdArray: number[] = [];\n let i: number;\n let name: string;\n\n for (i = 0; i < 16; i++) {\n if (i < 10) {\n name = 'pass_0' + i;\n } else {\n name = 'pass_' + i;\n }\n rawValues.forEach((v) => {\n if (v.name == name) {\n pwdArray.push(v.value);\n }\n });\n }\n\n return pwdArray;\n }\n\n strToPwd(string: string) {\n const pwdArray: number[] = [];\n let i: number;\n\n if (string == null) {\n string = '';\n }\n\n for (i = 0; i < 16; i++) {\n if (i < string.length) {\n pwdArray.push(string.charCodeAt(i));\n } else {\n pwdArray.push(0);\n }\n }\n\n return pwdArray;\n }\n\n chkPwd(arr1: number[], arr2: number[]) {\n if (\n !Array.isArray(arr1) ||\n !Array.isArray(arr2) ||\n arr1.length !== arr2.length\n )\n return false;\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) return false;\n }\n\n return true;\n }\n\n writePwdToConfig(passArray: number[], rawObj: IRawDataObj[]) {\n let i: number;\n let name: string;\n\n //console.log(\"Before write password \", JSON.stringify(rawObj));\n\n for (i = 0; i < 16; i++) {\n if (i < 10) {\n name = 'pass_0' + i;\n } else {\n name = 'pass_' + i;\n }\n rawObj.forEach((v) => {\n if (v.name == name) {\n v.value = passArray[i];\n }\n });\n }\n\n //console.log(\"After write password \", JSON.stringify(rawObj));\n\n return rawObj;\n }\n\n displayTime(hours: number, mins: number) {\n //console.log(\"hours = \", hours, \" mins = \", mins);\n let m: number | string = mins;\n let p = 'am';\n if (mins < 10) {\n m = '0' + mins;\n }\n if (hours > 11) {\n p = 'pm';\n }\n if (hours == 0) {\n hours = 12;\n }\n if (hours > 12) {\n hours -= 12;\n }\n return hours + ':' + m + ' ' + p;\n }\n\n getChunkValues(\n processData: IProcessDataStep[],\n rawData: IRawDataObj[],\n otherData: IOtherDataObj[]\n ) {\n // console.log(\n // 'GET CHUNK VALUES ',\n // JSON.stringify(rawData),\n // ' ',\n // JSON.stringify(otherData)\n // );\n let v: string | number;\n const values: (string | number)[] = [];\n processData.forEach((chunk) => {\n //console.log('Process Raw chunk ', JSON.stringify(chunk));\n switch (chunk.fromData) {\n case 'raw':\n rawData.forEach((rd) => {\n if (rd.name == chunk.value) {\n //console.log('RAW chunk name: ', rd.name);\n v = rd.value;\n }\n });\n break;\n case 'other':\n otherData.forEach((od) => {\n if (od.name == chunk.value) {\n v = od.value;\n }\n });\n break;\n case 'no':\n v = chunk.value;\n break;\n }\n\n if (typeof chunk.strLength === 'undefined') {\n values.push(v);\n } else {\n const pad = v.toString().padStart(chunk.strLength, '0');\n values.push(pad);\n }\n });\n return values;\n }\n\n uint8ArrayToArray(uint8: Uint8Array): number[] {\n return Array.from(uint8);\n }\n\n arrayToUint8Array(array: number[]): Uint8Array {\n return Uint8Array.from(array);\n }\n\n isUint8Array(v: number[] | Uint8Array) {\n const isStr = Object.prototype.toString;\n return isStr.call(v) === '[object Uint8Array]';\n }\n\n processRaw(input: number[] | Uint8Array, configObj: IConfig | IDisplay) {\n let buffer: Uint8Array;\n if (this.isUint8Array(input)) {\n buffer = input as Uint8Array;\n } else {\n buffer = this.arrayToUint8Array(input as number[]);\n }\n const rawDataBuffer = new DataView(buffer.buffer, 0, 254);\n //console.log('PROCESS RAW CONFIG ', rawDataBuffer);\n configObj.rawData.forEach((datapoint) => {\n datapoint.value =\n this.getValuefromBuffer(datapoint.buffer, rawDataBuffer) *\n datapoint.multi;\n });\n }\n\n processOther(configObj: IConfig | IDisplay) {\n configObj.otherData.forEach((dataPoint) => {\n dataPoint.processData.forEach((process) => {\n this.runProcess(process, configObj.rawData, configObj.otherData);\n dataPoint.value = process.value;\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ICommandData } from '../public-api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CrcCheckService {\n // checksum arrays\n auchCRCHi = [\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41,\n 0x00, 0xc1, 0x81, 0x40,\n ];\n auchCRCLo = [\n 0x00, 0xc0, 0xc1, 0x01, 0xc3, 0x03, 0x02, 0xc2, 0xc6, 0x06, 0x07, 0xc7,\n 0x05, 0xc5, 0xc4, 0x04, 0xcc, 0x0c, 0x0d, 0xcd, 0x0f, 0xcf, 0xce, 0x0e,\n 0x0a, 0xca, 0xcb, 0x0b, 0xc9, 0x09, 0x08, 0xc8, 0xd8, 0x18, 0x19, 0xd9,\n 0x1b, 0xdb, 0xda, 0x1a, 0x1e, 0xde, 0xdf, 0x1f, 0xdd, 0x1d, 0x1c, 0xdc,\n 0x14, 0xd4, 0xd5, 0x15, 0xd7, 0x17, 0x16, 0xd6, 0xd2, 0x12, 0x13, 0xd3,\n 0x11, 0xd1, 0xd0, 0x10, 0xf0, 0x30, 0x31, 0xf1, 0x33, 0xf3, 0xf2, 0x32,\n 0x36, 0xf6, 0xf7, 0x37, 0xf5, 0x35, 0x34, 0xf4, 0x3c, 0xfc, 0xfd, 0x3d,\n 0xff, 0x3f, 0x3e, 0xfe, 0xfa, 0x3a, 0x3b, 0xfb, 0x39, 0xf9, 0xf8, 0x38,\n 0x28, 0xe8, 0xe9, 0x29, 0xeb, 0x2b, 0x2a, 0xea, 0xee, 0x2e, 0x2f, 0xef,\n 0x2d, 0xed, 0xec, 0x2c, 0xe4, 0x24, 0x25, 0xe5, 0x27, 0xe7, 0xe6, 0x26,\n 0x22, 0xe2, 0xe3, 0x23, 0xe1, 0x21, 0x20, 0xe0, 0xa0, 0x60, 0x61, 0xa1,\n 0x63, 0xa3, 0xa2, 0x62, 0x66, 0xa6, 0xa7, 0x67, 0xa5, 0x65, 0x64, 0xa4,\n 0x6c, 0xac, 0xad, 0x6d, 0xaf, 0x6f, 0x6e, 0xae, 0xaa, 0x6a, 0x6b, 0xab,\n 0x69, 0xa9, 0xa8, 0x68, 0x78, 0xb8, 0xb9, 0x79, 0xbb, 0x7b, 0x7a, 0xba,\n 0xbe, 0x7e, 0x7f, 0xbf, 0x7d, 0xbd, 0xbc, 0x7c, 0xb4, 0x74, 0x75, 0xb5,\n 0x77, 0xb7, 0xb6, 0x76, 0x72, 0xb2, 0xb3, 0x73, 0xb1, 0x71, 0x70, 0xb0,\n 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97,\n 0x55, 0x95, 0x94, 0x54, 0x9c, 0x5c, 0x5d, 0x9d, 0x5f, 0x9f, 0x9e, 0x5e,\n 0x5a, 0x9a, 0x9b, 0x5b, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89,\n 0x4b, 0x8b, 0x8a, 0x4a, 0x4e, 0x8e, 0x8f, 0x4f, 0x8d, 0x4d, 0x4c, 0x8c,\n 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,\n 0x41, 0x81, 0x80, 0x40,\n ];\n\n //constructor() {}\n\n _buildCRC(\n puchMsg: Uint8Array,\n usDataLen: number,\n startIndex = 0\n ): [number, number] {\n console.log('Start of CRC check generation.');\n let uchCRCHi = 0xff; /* high byte of CRC initialized */\n let uchCRCLo = 0xff; /* low byte of CRC initialized */\n let uIndex; /* will index into CRC lookup table */\n let bufferIndex = startIndex;\n\n while (usDataLen--) {\n uIndex = uchCRCLo ^ puchMsg[bufferIndex]; /* calculate the CRC */\n\n bufferIndex++;\n uchCRCLo = uchCRCHi ^ this.auchCRCHi[uIndex];\n uchCRCHi = this.auchCRCLo[uIndex];\n }\n\n return [uchCRCHi, uchCRCLo];\n }\n\n /**\n *\n * @param sentValuePair\n * @param receivedValuePair\n * @returns\n */\n saveCheck(\n sentValuePair: [number, number],\n receivedValuePair: [number, number]\n ): boolean {\n console.log(\n 'CRC save check sent ',\n sentValuePair,\n ' recieved ',\n receivedValuePair\n );\n if (\n sentValuePair[0] === receivedValuePair[0] &&\n sentValuePair[1] === receivedValuePair[1]\n ) {\n console.log('CRC compare check TRUE');\n return true;\n } else {\n console.log('CRC compare check FALSE');\n return false;\n }\n }\n\n async writeCrcToCommand(commandData: ICommandData) {\n console.log('WRITE CRC TO COMMAND TRIGGERED ');\n const checkSum = this._buildCRC(\n commandData.byteData,\n commandData.byteData.length - 2\n );\n\n console.log('###### ####### CRC16 values ', checkSum);\n\n commandData.byteData[253] = checkSum[0];\n commandData.byteData[254] = checkSum[1];\n\n return commandData;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ICommandData,\n ICommandDataApi,\n IDevice,\n IRawDataObj,\n} from '../public-api';\nimport { DatasetProcessingService } from './dataset-processing.service';\nimport { CrcCheckService } from './crc-check.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommandService {\n constructor(\n private dps: DatasetProcessingService,\n private crcService: CrcCheckService\n ) {}\n\n /**\n * For Bluetooth command send\n * @param currentDevice\n * @param command\n * @param rawDataObj\n * @returns\n */\n async createCommandData(\n currentDevice: IDevice,\n command: string,\n rawDataObj?: IRawDataObj[]\n ) {\n let opCode = 0;\n const comandBuffer = new ArrayBuffer(currentDevice.write.bufferSize);\n\n currentDevice.commands.forEach((commandObj) => {\n //console.log('Command Name', commandObj.name);\n if (command == commandObj.name) {\n opCode = parseInt(commandObj.opCode);\n }\n });\n\n //console.log('########### $$$$$$$$$$$$ Op Code ', opCode);\n if (rawDataObj !== undefined) {\n //console.log('create Command Data, Raw Data Object is present.');\n const dataView = new DataView(comandBuffer);\n rawDataObj.forEach((raw) => {\n this.dps.writeValueToBuffer(raw.buffer, raw.value, dataView);\n });\n }\n\n let commandData: ICommandData = {\n opCode: opCode,\n service: currentDevice.write.service,\n characteristic: currentDevice.write.characteristic,\n byteData: new Uint8Array(comandBuffer),\n };\n commandData.byteData[0] = commandData.opCode;\n\n commandData = await this.crcService.writeCrcToCommand(commandData);\n\n return commandData;\n }\n\n async createCommandDataForApi(\n currentDevice: IDevice,\n command: string,\n rawDataObj?: IRawDataObj[]\n ): Promise<ICommandDataApi> {\n let raw = undefined;\n if (rawDataObj !== undefined) {\n raw = rawDataObj;\n }\n const commandBt = this.createCommandData(currentDevice, command, raw);\n const send = {\n serialNumber: currentDevice.serial.toString(),\n data: this.dps.uint8ArrayToArray((await commandBt).byteData),\n };\n //console.log(JSON.stringify(send));\n return send;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { DatasetProcessingService } from './dataset-processing.service';\n\nimport { IConfig, IFormDataObj } from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DeviceConfigDatasetService {\n constructor(\n private dps: DatasetProcessingService,\n public formBuilder: UntypedFormBuilder\n ) {}\n\n processConfig(buffer: number[] | Uint8Array, config: IConfig) {\n this.dps.processRaw(buffer, config);\n this.dps.processOther(config);\n this.processForm(config);\n return config;\n }\n\n processForm(config: IConfig) {\n //console.log(\"Starting to process form data\");\n config.formData.forEach((formSection) => {\n formSection.dataObjs.forEach((formControl) => {\n config.rawData.forEach((dp) => {\n if (formControl.dataId == dp.name) {\n formControl.value = dp.value;\n }\n });\n config.otherData.forEach((dp) => {\n if (formControl.dataId == dp.name) {\n formControl.value = dp.value;\n }\n });\n });\n });\n }\n\n processResultsToFormData(\n formResults: { [key: string]: string | number },\n config: IConfig\n ) {\n for (let i = 0; i < config.formData.length; i++) {\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n if (\n Object.prototype.hasOwnProperty.call(\n formResults,\n config.formData[i].dataObjs[x].dataId\n )\n ) {\n config.formData[i].dataObjs[x].value =\n formResults[config.formData[i].dataObjs[x].dataId];\n }\n\n if (\n Object.prototype.hasOwnProperty.call(\n config.formData[i].dataObjs[x],\n 'autoInput'\n )\n ) {\n if (config.formData[i].dataObjs[x].autoInput == true) {\n //console.log(\"auto date condition met\");\n config.formData[i].dataObjs[x].value = this.currentDateTimeStr();\n }\n }\n }\n }\n\n //console.log(\"formdata object updated\", JSON.stringify(config.formData));\n return config;\n }\n\n currentDateTimeStr() {\n const date = new Date();\n const str =\n date.getFullYear() +\n '-' +\n (date.getMonth() + 1).toString().padStart(2, '0') +\n '-' +\n date.getDate().toString().padStart(2, '0') +\n 'T' +\n date.getHours().toString().padStart(2, '0') +\n ':' +\n date.getMinutes().toString().padStart(2, '0');\n return str;\n }\n\n extractBackToRaw(config: IConfig): IConfig {\n const otherToProcess: { [key: string]: number | string } = {};\n let valuesToRaw: { [key: string]: number | string } = {};\n let bss: { [key: string]: number | string } = {};\n\n if (Object.prototype.hasOwnProperty.call(config, 'formData')) {\n for (let i = 0; i < config.formData.length; i++) {\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n let isRawData = false;\n for (let z = 0; z < config.rawData.length; z++) {\n if (\n config.rawData[z].name == config.formData[i].dataObjs[x].dataId\n ) {\n valuesToRaw[config.formData[i].dataObjs[x].dataId] =\n config.formData[i].dataObjs[x].value;\n isRawData = true;\n }\n }\n if (isRawData == false) {\n otherToProcess[config.formData[i].dataObjs[x].dataId] =\n config.formData[i].dataObjs[x].value;\n }\n }\n }\n } else {\n config.otherData.forEach((otherObj) => {\n otherToProcess[otherObj.name] = otherObj.value;\n });\n }\n\n //console.log('Other to Process ', JSON.stringify(otherToProcess));\n\n config.otherData.forEach((otherObj) => {\n const value = otherToProcess[otherObj.name];\n // console.log(\n // 'EXTRACT BACK TO RAW ',\n // ' ',\n // otherObj.name,\n // ' ',\n // JSON.stringify(value)\n // );\n otherObj.processData.forEach((pdo) => {\n switch (pdo.type) {\n case 'ass':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.disassembleProcess(value as string, pdo.data)\n );\n return;\n case 'itd':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.dtiProcess(value as string, pdo.data)\n );\n return;\n case 'its':\n valuesToRaw = Object.assign(\n valuesToRaw,\n this.dps.stiProcess(value as string, pdo.data)\n );\n return;\n case 'bsv':\n bss = this.dps.bsvRevert(value as string, pdo.data, bss);\n return;\n }\n });\n });\n\n if (Object.keys(bss).length > 0) {\n for (const str in bss) {\n valuesToRaw[str] = this.dps.binaryStrToDecimal(bss[str] as string);\n }\n }\n config.rawData = this.dps.writeFormValuesToRawObj(\n valuesToRaw,\n config.rawData\n );\n //console.log(\"rawData Obj \", JSON.stringify(config.rawData));\n return config;\n }\n\n generateValidationRules(formField: IFormDataObj) {\n const validators = [];\n\n if (formField.required == true) {\n validators.push(Validators.required);\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'min')) {\n if (formField.min !== undefined)\n validators.push(Validators.min(formField.min));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'max')) {\n if (formField.max !== undefined)\n validators.push(Validators.max(formField.max));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'minLength')) {\n if (formField.minLength !== undefined)\n validators.push(Validators.minLength(formField.minLength));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'maxLength')) {\n if (formField.maxLength !== undefined)\n validators.push(Validators.maxLength(formField.maxLength));\n }\n if (Object.prototype.hasOwnProperty.call(formField, 'rex')) {\n if (formField.rex !== undefined)\n validators.push(Validators.pattern(formField.rex));\n }\n return validators;\n }\n\n generateFormGroup(config: IConfig, blackList: string[]) {\n //console.log('Generate form group TRIGGERED');\n const configForm = new UntypedFormGroup({});\n\n for (let i = 0; i < config.formData.length; i++) {\n //console.log(\"FORM SECTION \", JSON.stringify(config.formData[i]));\n for (let x = 0; x < config.formData[i].dataObjs.length; x++) {\n if (!blackList.includes(config.formData[i].title)) {\n let fieldDisable = false;\n const validators = this.generateValidationRules(\n config.formData[i].dataObjs[x]\n );\n if (!config.formData[i].dataObjs[x].active) {\n fieldDisable = true;\n }\n //console.log('ADD CONTROL');\n configForm.addControl(\n config.formData[i].dataObjs[x].dataId,\n new UntypedFormControl(\n {\n value: config.formData[i].dataObjs[x].value,\n disabled: fieldDisable,\n },\n validators\n )\n );\n }\n }\n }\n //console.log('END OF GENERATE FORMGROUP');\n return configForm;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DatasetProcessingService } from './dataset-processing.service';\n\nimport { IDisplay, IDevice } from '../lib/interfaces/devices-list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DeviceLiveDatasetService {\n constructor(private dps: DatasetProcessingService) {}\n\n processDisplay(buffer: number[] | Uint8Array, display: IDisplay) {\n this.dps.processRaw(buffer, display);\n this.dps.processOther(display);\n this.processLayout(display);\n return display;\n }\n\n processLayout(display: IDisplay) {\n display.layout.forEach((section) => {\n section.rows.forEach((row) => {\n row.cols.forEach((col) => {\n let wv: string | number = '';\n if (typeof col.refData !== 'undefined') {\n display.rawData.forEach((raw) => {\n if (raw.name == col.refData) {\n if (typeof col.round !== 'undefined') {\n wv = raw.value.toFixed(col.round);\n } else {\n wv = raw.value;\n }\n }\n });\n display.otherData.forEach((other) => {\n if (other.name == col.refData) {\n wv = other.value;\n }\n });\n if (typeof col.prepend !== 'undefined') {\n wv = col.prepend + wv;\n }\n if (typeof col.append !== 'undefined') {\n wv = wv + col.append;\n }\n col.value = <string>wv;\n }\n });\n });\n });\n }\n\n async rssiData(\n device: IDevice,\n rssiSignal: () => Promise<number>\n ): Promise<{ deviceName: string; rssi: string }> {\n const result = { deviceName: 'N/A', rssi: 'N/A' };\n\n if (device != null) {\n result.deviceName = device.name;\n const rssi = await rssiSignal();\n if (rssi <= 0) {\n result.rssi = rssi.toString() + ' dBa';\n }\n }\n return result;\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n})\nexport class CpDevicesListModule {}\n","/*\n * Public API Surface of device-config-interaction\n */\n\nexport * from './lib/device-config-interaction.service';\nexport * from './lib/command.service';\nexport * from './lib/crc-check.service';\nexport * from './lib/dataset-processing.service';\nexport * from './lib/device-config-dataset.service';\nexport * from './lib/device-live-dataset.service';\n\nexport * from './lib/device-config-interaction.module';\n\nexport * from './lib/interfaces/devices-list';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DatasetProcessingService","i2.CrcCheckService"],"mappings":"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EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AACtE,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;AACF,QAAA,IAAA,CAAA,SAAS,GAAG;YACV,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AACtE,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;AAoEH,KAAA;;AAhEC,IAAA,SAAS,CACP,OAAmB,EACnB,SAAiB,EACjB,UAAU,GAAG,CAAC,EAAA;AAEd,QAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAC9C,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,MAAM,CAAC;QACX,IAAI,WAAW,GAAG,UAAU,CAAC;QAE7B,OAAO,SAAS,EAAE,EAAE;YAClB,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEzC,YAAA,WAAW,EAAE,CAAC;YACd,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7C,YAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACnC;AAED,QAAA,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC7B;AAED;;;;;AAKG;IACH,SAAS,CACP,aAA+B,EAC/B,iBAAmC,EAAA;QAEnC,OAAO,CAAC,GAAG,CACT,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,iBAAiB,CAClB,CAAC;QACF,IACE,aAAa,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACzC,aAAa,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,EACzC;AACA,YAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACtC,YAAA,OAAO,IAAI,CAAC;SACb;aAAM;AACL,YAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACvC,YAAA,OAAO,KAAK,CAAC;SACd;KACF;IAED,MAAM,iBAAiB,CAAC,WAAyB,EAAA;AAC/C,QAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAC/C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC7B,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAChC,CAAC;AAEF,QAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC;QAEzD,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAExC,QAAA,OAAO,WAAW,CAAC;KACpB;+GApHU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCQY,cAAc,CAAA;IACzB,WACU,CAAA,GAA6B,EAC7B,UAA2B,EAAA;QAD3B,IAAG,CAAA,GAAA,GAAH,GAAG,CAA0B;QAC7B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;KACjC;AAEJ;;;;;;AAMG;AACH,IAAA,MAAM,iBAAiB,CACrB,aAAsB,EACtB,OAAe,EACf,UAA0B,EAAA;QAE1B,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAErE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI;;AAE5C,YAAA,IAAI,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE;AAC9B,gBAAA,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACtC;AACH,SAAC,CAAC,CAAC;;AAGH,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;;AAE5B,YAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5C,YAAA,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACzB,gBAAA,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC/D,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,WAAW,GAAiB;AAC9B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO;AACpC,YAAA,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,cAAc;AAClD,YAAA,QAAQ,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC;SACvC,CAAC;QACF,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;QAE7C,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAEnE,QAAA,OAAO,WAAW,CAAC;KACpB;AAED,IAAA,MAAM,uBAAuB,CAC3B,aAAsB,EACtB,OAAe,EACf,UAA0B,EAAA;QAE1B,IAAI,GAAG,GAAG,SAAS,CAAC;AACpB,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,GAAG,GAAG,UAAU,CAAC;SAClB;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AACtE,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC7C,YAAA,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,SAAS,EAAE,QAAQ,CAAC;SAC7D,CAAC;;AAEF,QAAA,OAAO,IAAI,CAAC;KACb;+GAlEU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCEY,0BAA0B,CAAA;IACrC,WACU,CAAA,GAA6B,EAC9B,WAA+B,EAAA;QAD9B,IAAG,CAAA,GAAA,GAAH,GAAG,CAA0B;QAC9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;KACpC;IAEJ,aAAa,CAAC,MAA6B,EAAE,MAAe,EAAA;QAC1D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzB,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,WAAW,CAAC,MAAe,EAAA;;QAEzB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;YACtC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,KAAI;gBAC3C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;oBAC5B,IAAI,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,EAAE;AACjC,wBAAA,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;qBAC9B;AACH,iBAAC,CAAC,CAAC;gBACH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;oBAC9B,IAAI,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,EAAE;AACjC,wBAAA,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;qBAC9B;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAED,wBAAwB,CACtB,WAA+C,EAC/C,MAAe,EAAA;AAEf,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3D,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAClC,WAAW,EACX,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CACtC,EACD;oBACA,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;AAClC,wBAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;iBACtD;gBAED,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC9B,WAAW,CACZ,EACD;AACA,oBAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,EAAE;;AAEpD,wBAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;qBAClE;iBACF;aACF;SACF;;AAGD,QAAA,OAAO,MAAM,CAAC;KACf;IAED,kBAAkB,GAAA;AAChB,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACxB,QAAA,MAAM,GAAG,GACP,IAAI,CAAC,WAAW,EAAE;YAClB,GAAG;AACH,YAAA,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YACjD,GAAG;AACH,YAAA,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YAC1C,GAAG;AACH,YAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YAC3C,GAAG;AACH,YAAA,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAChD,QAAA,OAAO,GAAG,CAAC;KACZ;AAED,IAAA,gBAAgB,CAAC,MAAe,EAAA;QAC9B,MAAM,cAAc,GAAuC,EAAE,CAAC;QAC9D,IAAI,WAAW,GAAuC,EAAE,CAAC;QACzD,IAAI,GAAG,GAAuC,EAAE,CAAC;AAEjD,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AAC5D,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3D,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC9C,IACE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAC/D;AACA,4BAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAChD,gCAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;4BACvC,SAAS,GAAG,IAAI,CAAC;yBAClB;qBACF;AACD,oBAAA,IAAI,SAAS,IAAI,KAAK,EAAE;AACtB,wBAAA,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,4BAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;qBACxC;iBACF;aACF;SACF;aAAM;YACL,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBACpC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjD,aAAC,CAAC,CAAC;SACJ;;QAID,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;YACpC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;;;;;YAQ5C,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACnC,gBAAA,QAAQ,GAAG,CAAC,IAAI;AACd,oBAAA,KAAK,KAAK;wBACR,WAAW,GAAG,MAAM,CAAC,MAAM,CACzB,WAAW,EACX,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAe,EAAE,GAAG,CAAC,IAAI,CAAC,CACvD,CAAC;wBACF,OAAO;AACT,oBAAA,KAAK,KAAK;wBACR,WAAW,GAAG,MAAM,CAAC,MAAM,CACzB,WAAW,EACX,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAe,EAAE,GAAG,CAAC,IAAI,CAAC,CAC/C,CAAC;wBACF,OAAO;AACT,oBAAA,KAAK,KAAK;wBACR,WAAW,GAAG,MAAM,CAAC,MAAM,CACzB,WAAW,EACX,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAe,EAAE,GAAG,CAAC,IAAI,CAAC,CAC/C,CAAC;wBACF,OAAO;AACT,oBAAA,KAAK,KAAK;AACR,wBAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAe,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wBACzD,OAAO;iBACV;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAA,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;AACrB,gBAAA,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAW,CAAC,CAAC;aACpE;SACF;AACD,QAAA,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAC/C,WAAW,EACX,MAAM,CAAC,OAAO,CACf,CAAC;;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,uBAAuB,CAAC,SAAuB,EAAA;QAC7C,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,QAAA,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,EAAE;AAC9B,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACtC;AACD,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;AAC1D,YAAA,IAAI,SAAS,CAAC,GAAG,KAAK,SAAS;AAC7B,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;SAClD;AACD,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;AAC1D,YAAA,IAAI,SAAS,CAAC,GAAG,KAAK,SAAS;AAC7B,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;SAClD;AACD,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE;AAChE,YAAA,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS;AACnC,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;SAC9D;AACD,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE;AAChE,YAAA,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS;AACnC,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;SAC9D;AACD,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;AAC1D,YAAA,IAAI,SAAS,CAAC,GAAG,KAAK,SAAS;AAC7B,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;SACtD;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,iBAAiB,CAAC,MAAe,EAAE,SAAmB,EAAA;;AAEpD,QAAA,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAE5C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;YAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3D,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBACjD,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,oBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC/B,CAAC;AACF,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;wBAC1C,YAAY,GAAG,IAAI,CAAC;qBACrB;;AAED,oBAAA,UAAU,CAAC,UAAU,CACnB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EACrC,IAAI,kBAAkB,CACpB;AACE,wBAAA,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3C,wBAAA,QAAQ,EAAE,YAAY;qBACvB,EACD,UAAU,CACX,CACF,CAAC;iBACH;aACF;SACF;;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;+GA7NU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCLY,wBAAwB,CAAA;AACnC,IAAA,WAAA,CAAoB,GAA6B,EAAA;QAA7B,IAAG,CAAA,GAAA,GAAH,GAAG,CAA0B;KAAI;IAErD,cAAc,CAAC,MAA6B,EAAE,OAAiB,EAAA;QAC7D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5B,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,aAAa,CAAC,OAAiB,EAAA;QAC7B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;YACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBAC3B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;oBACvB,IAAI,EAAE,GAAoB,EAAE,CAAC;AAC7B,oBAAA,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,WAAW,EAAE;wBACtC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;4BAC9B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;AAC3B,gCAAA,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE;oCACpC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iCACnC;qCAAM;AACL,oCAAA,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;iCAChB;6BACF;AACH,yBAAC,CAAC,CAAC;wBACH,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;4BAClC,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;AAC7B,gCAAA,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;6BAClB;AACH,yBAAC,CAAC,CAAC;AACH,wBAAA,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,WAAW,EAAE;AACtC,4BAAA,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;yBACvB;AACD,wBAAA,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE;AACrC,4BAAA,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;yBACtB;AACD,wBAAA,GAAG,CAAC,KAAK,GAAW,EAAE,CAAC;qBACxB;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,QAAQ,CACZ,MAAe,EACf,UAAiC,EAAA;QAEjC,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAElD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAClB,YAAA,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;AAChC,YAAA,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;AAChC,YAAA,IAAI,IAAI,IAAI,CAAC,EAAE;gBACb,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC;aACxC;SACF;AACD,QAAA,OAAO,MAAM,CAAC;KACf;+GAzDU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCAY,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAnB,mBAAmB,EAAA,CAAA,CAAA,EAAA;gHAAnB,mBAAmB,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAA;;;ACND;;AAEG;;ACFH;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@catchpower/device-config-interaction",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
5
|
+
"@angular/common": "^18.0.0",
|
|
6
|
+
"@angular/core": "^18.0.0",
|
|
7
|
+
"@angular/forms": "^18.0.0",
|
|
8
|
+
"axios": "^1.6.7"
|
|
7
9
|
},
|
|
8
10
|
"dependencies": {
|
|
9
11
|
"tslib": "^2.3.0"
|