taon-typeorm 18.0.15 → 18.0.17
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/assets/shared/shared_folder_info.txt +1 -1
- package/browser/README.md +24 -24
- package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +2 -2
- package/browser/fesm2022/taon-typeorm.mjs +1 -1
- package/browser/fesm2022/taon-typeorm.mjs.map +1 -1
- package/client/README.md +24 -24
- package/client/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +2 -2
- package/client/fesm2022/taon-typeorm.mjs +1 -1
- package/client/fesm2022/taon-typeorm.mjs.map +1 -1
- package/lib/typeorm/driver/sqljs/SqljsDriver.d.ts +2 -2
- package/lib/typeorm/driver/sqljs/SqljsDriver.js +7 -6
- package/lib/typeorm/driver/sqljs/SqljsDriver.js.map +1 -1
- package/package.json +3 -3
- package/taon.jsonc +34 -34
- package/tmp-environment.json +30 -29
- package/websql/README.md +24 -24
- package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +2 -2
- package/websql/fesm2022/taon-typeorm.mjs +1 -1
- package/websql/fesm2022/taon-typeorm.mjs.map +1 -1
|
@@ -4,7 +4,7 @@ import { QueryRunner } from "../../query-runner/QueryRunner";
|
|
|
4
4
|
import { DataSource } from "../../data-source/DataSource";
|
|
5
5
|
import { EntityMetadata } from "../../metadata/EntityMetadata";
|
|
6
6
|
import { ReplicationMode } from "../types/ReplicationMode";
|
|
7
|
-
import { _ } from 'tnp-core
|
|
7
|
+
import { _ } from 'tnp-core';
|
|
8
8
|
export declare class SqljsDriver extends AbstractSqliteDriver {
|
|
9
9
|
options: SqljsConnectionOptions;
|
|
10
10
|
localForgeInstance: any;
|
|
@@ -64,4 +64,4 @@ export declare class SqljsDriver extends AbstractSqliteDriver {
|
|
|
64
64
|
* If driver dependency is not given explicitly, then try to load it via "require".
|
|
65
65
|
*/
|
|
66
66
|
protected loadDependencies(): void;
|
|
67
|
-
}
|
|
67
|
+
}
|
|
@@ -250,19 +250,20 @@ var SqljsDriver = /** @class */ (function (_super) {
|
|
|
250
250
|
*/
|
|
251
251
|
SqljsDriver.prototype.autoSave = function () {
|
|
252
252
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
253
|
-
|
|
254
|
-
|
|
253
|
+
var _a;
|
|
254
|
+
return tslib_1.__generator(this, function (_b) {
|
|
255
|
+
switch (_b.label) {
|
|
255
256
|
case 0:
|
|
256
|
-
if (!this.options.autoSave) return [3 /*break*/, 4];
|
|
257
|
+
if (!(this.options.autoSave && !((_a = this.queryRunner) === null || _a === void 0 ? void 0 : _a.isTransactionActive))) return [3 /*break*/, 4];
|
|
257
258
|
if (!this.options.autoSaveCallback) return [3 /*break*/, 2];
|
|
258
259
|
return [4 /*yield*/, this.options.autoSaveCallback(this.export())];
|
|
259
260
|
case 1:
|
|
260
|
-
|
|
261
|
+
_b.sent();
|
|
261
262
|
return [3 /*break*/, 4];
|
|
262
263
|
case 2: return [4 /*yield*/, this.save()];
|
|
263
264
|
case 3:
|
|
264
|
-
|
|
265
|
-
|
|
265
|
+
_b.sent();
|
|
266
|
+
_b.label = 4;
|
|
266
267
|
case 4: return [2 /*return*/];
|
|
267
268
|
}
|
|
268
269
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqljsDriver.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SqljsDriver.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
"@sqltools/formatter": "1.2.5",
|
|
40
40
|
"app-root-path": "3.1.0",
|
|
41
41
|
"cli-highlight": "2.1.11",
|
|
42
|
-
"tnp-core": "~18.0.
|
|
42
|
+
"tnp-core": "~18.0.45"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {},
|
|
45
45
|
"name": "taon-typeorm",
|
|
46
|
-
"version": "18.0.
|
|
47
|
-
"lastBuildTagHash": "
|
|
46
|
+
"version": "18.0.17",
|
|
47
|
+
"lastBuildTagHash": "dc82fb6fcbb3cd998fbbc21cf756f7dda0b1402b",
|
|
48
48
|
"main": "dist/app.electron.js"
|
|
49
49
|
}
|
package/taon.jsonc
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
{
|
|
2
|
-
"resources": [],
|
|
3
|
-
|
|
4
|
-
"overrided": {
|
|
5
|
-
"linkedFolders": [],
|
|
6
|
-
"ignoreDepsPattern": [],
|
|
7
|
-
"includeAsDev": [],
|
|
8
|
-
"includeOnly": ["tnp-core", "cli-highlight", "@sqltools/formatter", "app-root-path"],
|
|
9
|
-
"dependencies": {},
|
|
10
|
-
"npmFixes": []
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
"smartContainerBuildTarget": "",
|
|
14
|
-
"linkedRepos": [],
|
|
15
|
-
|
|
16
|
-
"libReleaseOptions": {
|
|
17
|
-
"nodts": false,
|
|
18
|
-
"obscure": false,
|
|
19
|
-
"ugly": false,
|
|
20
|
-
"includeNodeModules": false,
|
|
21
|
-
"cliBuildNoDts": false,
|
|
22
|
-
"cliBuildObscure": false,
|
|
23
|
-
"cliBuildIncludeNodeModules": false,
|
|
24
|
-
"cliBuildUglify": false
|
|
25
|
-
},
|
|
26
|
-
|
|
27
|
-
"smartContainerTarget": "",
|
|
28
|
-
"type": "isomorphic-lib",
|
|
29
|
-
"version": "v18",
|
|
30
|
-
"isCoreProject": false,
|
|
31
|
-
"isGenerated": false,
|
|
32
|
-
"useFramework": false,
|
|
33
|
-
"required": [],
|
|
34
|
-
"requiredServers": []
|
|
1
|
+
{
|
|
2
|
+
"resources": [],
|
|
3
|
+
|
|
4
|
+
"overrided": {
|
|
5
|
+
"linkedFolders": [],
|
|
6
|
+
"ignoreDepsPattern": [],
|
|
7
|
+
"includeAsDev": [],
|
|
8
|
+
"includeOnly": ["tnp-core", "cli-highlight", "@sqltools/formatter", "app-root-path"],
|
|
9
|
+
"dependencies": {},
|
|
10
|
+
"npmFixes": []
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
"smartContainerBuildTarget": "",
|
|
14
|
+
"linkedRepos": [],
|
|
15
|
+
|
|
16
|
+
"libReleaseOptions": {
|
|
17
|
+
"nodts": false,
|
|
18
|
+
"obscure": false,
|
|
19
|
+
"ugly": false,
|
|
20
|
+
"includeNodeModules": false,
|
|
21
|
+
"cliBuildNoDts": false,
|
|
22
|
+
"cliBuildObscure": false,
|
|
23
|
+
"cliBuildIncludeNodeModules": false,
|
|
24
|
+
"cliBuildUglify": false
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
"smartContainerTarget": "",
|
|
28
|
+
"type": "isomorphic-lib",
|
|
29
|
+
"version": "v18",
|
|
30
|
+
"isCoreProject": false,
|
|
31
|
+
"isGenerated": false,
|
|
32
|
+
"useFramework": false,
|
|
33
|
+
"required": [],
|
|
34
|
+
"requiredServers": []
|
|
35
35
|
}
|
package/tmp-environment.json
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@sqltools/formatter": "1.2.5",
|
|
44
44
|
"app-root-path": "3.1.0",
|
|
45
45
|
"cli-highlight": "2.1.11",
|
|
46
|
-
"tnp-core": "~18.0.
|
|
46
|
+
"tnp-core": "~18.0.45"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@angular-builders/custom-webpack": "~18.0.0",
|
|
@@ -206,13 +206,14 @@
|
|
|
206
206
|
"image-focus": "1.2.1",
|
|
207
207
|
"immer": "10.0.2",
|
|
208
208
|
"immutable": "4.3.7",
|
|
209
|
-
"incremental-compiler": "~18.0.
|
|
209
|
+
"incremental-compiler": "~18.0.19",
|
|
210
210
|
"inquirer": "7.3.3",
|
|
211
211
|
"inquirer-autocomplete-prompt": "1.4.0",
|
|
212
212
|
"inquirer-autocomplete-standalone": "0.8.1",
|
|
213
213
|
"inquirer-select-pro": "1.0.0-alpha.7",
|
|
214
|
+
"inquirer-toggle": "1.0.1",
|
|
214
215
|
"is-elevated": "3.0.0",
|
|
215
|
-
"isomorphic-region-loader": "~18.0.
|
|
216
|
+
"isomorphic-region-loader": "~18.0.18",
|
|
216
217
|
"istanbul-instrumenter-loader": "3.0.1",
|
|
217
218
|
"jest": "29.7.0",
|
|
218
219
|
"jest-date-mock": "1.0.10",
|
|
@@ -223,8 +224,8 @@
|
|
|
223
224
|
"joi": "17.13.3",
|
|
224
225
|
"jscodeshift": "0.6.3",
|
|
225
226
|
"json-stringify-safe": "5.0.1",
|
|
226
|
-
"json10": "~18.0.
|
|
227
|
-
"json10-writer": "~18.0.
|
|
227
|
+
"json10": "~18.0.18",
|
|
228
|
+
"json10-writer": "~18.0.18",
|
|
228
229
|
"json5": "2.2.3",
|
|
229
230
|
"json5-writer": "0.2.0",
|
|
230
231
|
"jszip": "3.10.1",
|
|
@@ -233,9 +234,9 @@
|
|
|
233
234
|
"localforage": "1.10.0",
|
|
234
235
|
"lockfile": "1.0.4",
|
|
235
236
|
"lodash": "4.17.21",
|
|
236
|
-
"lodash-walk-object": "~18.0.
|
|
237
|
+
"lodash-walk-object": "~18.0.18",
|
|
237
238
|
"lowdb": "7.0.1",
|
|
238
|
-
"magic-renamer": "~18.0.
|
|
239
|
+
"magic-renamer": "~18.0.18",
|
|
239
240
|
"material-design-icons": "3.0.1",
|
|
240
241
|
"method-override": "2.3.10",
|
|
241
242
|
"minimist": "1.2.8",
|
|
@@ -246,11 +247,11 @@
|
|
|
246
247
|
"ng-in-viewport": "16.1.0",
|
|
247
248
|
"ng-lock": "18.0.1",
|
|
248
249
|
"ng-packagr": "18.1.0",
|
|
249
|
-
"ng-talkback": "~18.0.
|
|
250
|
-
"ng2-logger": "~18.0.
|
|
250
|
+
"ng-talkback": "~18.0.17",
|
|
251
|
+
"ng2-logger": "~18.0.20",
|
|
251
252
|
"ng2-pdfjs-viewer": "18.0.0",
|
|
252
|
-
"ng2-rest": "~18.0.
|
|
253
|
-
"ng2-rest-swagger-generator": "18.0.
|
|
253
|
+
"ng2-rest": "~18.0.18",
|
|
254
|
+
"ng2-rest-swagger-generator": "18.0.15",
|
|
254
255
|
"ngx-ace-wrapper": "17.0.0",
|
|
255
256
|
"ngx-editor": "17.5.4",
|
|
256
257
|
"ngx-highlightjs": "12.0.0",
|
|
@@ -264,7 +265,7 @@
|
|
|
264
265
|
"ngx-scrolltop": "18.0.0",
|
|
265
266
|
"ngx-store": "3.1.1",
|
|
266
267
|
"ngx-typed-js": "2.1.1",
|
|
267
|
-
"node-cli-tester": "~18.0.
|
|
268
|
+
"node-cli-tester": "~18.0.17",
|
|
268
269
|
"node-localstorage": "2.1.6",
|
|
269
270
|
"node-notifier": "10.0.1",
|
|
270
271
|
"node-polyfill-webpack-plugin": "2.0.1",
|
|
@@ -295,7 +296,7 @@
|
|
|
295
296
|
"q": "1.5.1",
|
|
296
297
|
"rallax.js": "2.0.4",
|
|
297
298
|
"randomcolor": "0.5.3",
|
|
298
|
-
"record-replay-req-res-scenario": "~18.0.
|
|
299
|
+
"record-replay-req-res-scenario": "~18.0.17",
|
|
299
300
|
"reflect-metadata": "0.2.2",
|
|
300
301
|
"rimraf": "2.6.2",
|
|
301
302
|
"rxjs": "~7.8.1",
|
|
@@ -309,22 +310,22 @@
|
|
|
309
310
|
"sql-template-strings": "2.2.2",
|
|
310
311
|
"sql-template-tag": "5.2.1",
|
|
311
312
|
"sql.js": "1.8.0",
|
|
312
|
-
"static-columns": "~18.0.
|
|
313
|
+
"static-columns": "~18.0.19",
|
|
313
314
|
"string-similarity": "4.0.4",
|
|
314
315
|
"sudo-block": "3.0.0",
|
|
315
316
|
"supertest": "7.0.0",
|
|
316
317
|
"sweetalert2": "11.7.32",
|
|
317
318
|
"systeminformation": "3.45.7",
|
|
318
319
|
"taon": "^18",
|
|
319
|
-
"taon-storage": "18.0.
|
|
320
|
-
"taon-type-sql": "18.0.
|
|
321
|
-
"taon-typeorm": "18.0.
|
|
320
|
+
"taon-storage": "18.0.27",
|
|
321
|
+
"taon-type-sql": "18.0.18",
|
|
322
|
+
"taon-typeorm": "18.0.16",
|
|
322
323
|
"task.js": "0.1.5",
|
|
323
324
|
"threads": "1.7.0",
|
|
324
|
-
"tnp": "~18.0.
|
|
325
|
-
"tnp-config": "~18.0.
|
|
326
|
-
"tnp-helpers": "~18.0.
|
|
327
|
-
"tnp-models": "~18.0.
|
|
325
|
+
"tnp": "~18.0.23",
|
|
326
|
+
"tnp-config": "~18.0.20",
|
|
327
|
+
"tnp-helpers": "~18.0.18",
|
|
328
|
+
"tnp-models": "~18.0.19",
|
|
328
329
|
"ts-debug": "1.3.0",
|
|
329
330
|
"ts-json-schema-generator": "2.3.0-next.5",
|
|
330
331
|
"ts-loader": "2.3.1",
|
|
@@ -336,14 +337,14 @@
|
|
|
336
337
|
"typedoc": "0.26.5",
|
|
337
338
|
"typedoc-plugin-markdown": "4.2.3",
|
|
338
339
|
"typescript": "~5.5.4",
|
|
339
|
-
"typescript-class-helpers": "~18.0.
|
|
340
|
+
"typescript-class-helpers": "~18.0.19",
|
|
340
341
|
"typescript-formatter": "~7.2.2",
|
|
341
342
|
"typescript-string-enums": "~1.0.0",
|
|
342
343
|
"underscore": "1.13.7",
|
|
343
344
|
"uuid": "10.0.0",
|
|
344
345
|
"validator": "13.5.2",
|
|
345
346
|
"video.js": "8.3.0",
|
|
346
|
-
"vpn-split": "~18.0.
|
|
347
|
+
"vpn-split": "~18.0.16",
|
|
347
348
|
"vscode": "1.1.37",
|
|
348
349
|
"wait-on": "8.0.1",
|
|
349
350
|
"watch": "1.0.2",
|
|
@@ -354,19 +355,19 @@
|
|
|
354
355
|
"zone.js": "~0.13.0"
|
|
355
356
|
},
|
|
356
357
|
"name": "taon-typeorm",
|
|
357
|
-
"version": "18.0.
|
|
358
|
-
"lastBuildTagHash": "
|
|
358
|
+
"version": "18.0.17",
|
|
359
|
+
"lastBuildTagHash": "dc82fb6fcbb3cd998fbbc21cf756f7dda0b1402b",
|
|
359
360
|
"main": "dist/app.electron.js"
|
|
360
361
|
},
|
|
361
362
|
"build": {
|
|
362
|
-
"number":
|
|
363
|
-
"date": "
|
|
364
|
-
"hash": "
|
|
363
|
+
"number": 211,
|
|
364
|
+
"date": "2025-01-10T04:16:33.000Z",
|
|
365
|
+
"hash": "06a852f2119d724ff24e5de798dd5cc8361a3ddb"
|
|
365
366
|
},
|
|
366
367
|
"currentProjectName": "taon-typeorm",
|
|
367
368
|
"currentProjectGenericName": "taon-typeorm",
|
|
368
369
|
"currentProjectType": "isomorphic-lib",
|
|
369
|
-
"currentFrameworkVersion": "18.0.
|
|
370
|
+
"currentFrameworkVersion": "18.0.23",
|
|
370
371
|
"isStandaloneProject": true,
|
|
371
372
|
"isSmartContainer": false,
|
|
372
373
|
"pathesTsconfig": "\"paths\": {\"taon-typeorm\":[\"./src/lib\"],\"taon-typeorm/*\":[\"./src/lib/*\"]},",
|
package/websql/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# MyLib
|
|
2
|
-
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
-
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
-
|
|
10
|
-
## Build
|
|
11
|
-
|
|
12
|
-
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
-
|
|
14
|
-
## Publishing
|
|
15
|
-
|
|
16
|
-
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
-
|
|
18
|
-
## Running unit tests
|
|
19
|
-
|
|
20
|
-
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
-
|
|
22
|
-
## Further help
|
|
23
|
-
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
1
|
+
# MyLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -160,7 +160,7 @@ export class SqljsDriver extends AbstractSqliteDriver {
|
|
|
160
160
|
* Don't auto-save when in transaction as the call to export will end the current transaction
|
|
161
161
|
*/
|
|
162
162
|
async autoSave() {
|
|
163
|
-
if (this.options.autoSave) {
|
|
163
|
+
if (this.options.autoSave && !this.queryRunner?.isTransactionActive) {
|
|
164
164
|
if (this.options.autoSaveCallback) {
|
|
165
165
|
await this.options.autoSaveCallback(this.export());
|
|
166
166
|
}
|
|
@@ -246,4 +246,4 @@ export class SqljsDriver extends AbstractSqliteDriver {
|
|
|
246
246
|
}
|
|
247
247
|
;
|
|
248
248
|
({}); // @--end-of-file-for-module=taon-typeorm lib/typeorm/driver/sqljs/SqljsDriver.ts
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsanNEcml2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi10eXBlb3JtL3Byb2plY3RzL3Rhb24tdHlwZW9ybS9zcmMvbGliL3R5cGVvcm0vZHJpdmVyL3NxbGpzL1NxbGpzRHJpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBRTlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3JELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUU1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFHOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsSUFBSSxXQUFXLEdBQUcsRUFBUyxDQUFDO0FBQzVCLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUdMLGFBQWE7QUFDYixXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBSTVCLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUFDO0FBRXJDLE1BQU0sT0FBTyxXQUFZLFNBQVEsb0JBQW9CO0lBa0JqRCxZQUFZLFVBQXNCO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQWZuQixzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsaUJBQVksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsRUFBRTtZQUV0QyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQ25DLElBQUksRUFDSixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQzdCLENBQUM7UUFFSixDQUFDLEVBQUMsd0JBQXdCLENBQUMsQ0FBQztRQVMxQixhQUFhO1FBQ2IsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLGFBQWE7UUFDYixJQUFJLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxFQUFFLGNBQWMsQ0FBQztZQUNuRCxNQUFNLEVBQUUsVUFBVSxDQUFDLFNBQVM7WUFDNUIsU0FBUyxFQUFFLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLHlCQUF5QixDQUFDO1NBQ3BGLENBQUMsQ0FBQTtRQUtBLElBQ0ksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ3JCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ3RCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFDaEMsQ0FBQztZQUNDLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO1FBQ3JFLENBQUM7UUFHRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtJQUMzQixDQUFDO0lBTUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNULElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFBO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxVQUFVO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQixDQUFDLElBQXFCO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVwRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUE7SUFDM0IsQ0FBQztJQUdEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQ04sNEJBQWlELEVBQ2pELGtDQUEyQyxJQUFJO1FBRS9DLElBQUksT0FBTyw0QkFBNEIsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUVuRCxJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBR2hDLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQUM7b0JBQ3hELE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQ3ZDLDRCQUE0QixDQUMvQixDQUFBO29CQUNELE9BQU8sSUFBSSxDQUFDLGtDQUFrQyxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUM1RCxDQUFDO3FCQUFNLElBQUksK0JBQStCLEVBQUUsQ0FBQztvQkFDekMsTUFBTSxJQUFJLFlBQVksQ0FDbEIsUUFBUSw0QkFBNEIsaUJBQWlCLENBQ3hELENBQUE7Z0JBQ0wsQ0FBQztxQkFBTSxDQUFDO29CQUlKLE9BQU8sSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUE7Z0JBQ3BELENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBR0osSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUE7Z0JBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFFOUIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzt3QkFDMUIsSUFBRyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFFdkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUNqRCw0QkFBNEIsQ0FDL0IsQ0FBQTs0QkFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsNEJBQTRCLENBQUMsR0FBRyxPQUFPLENBQUM7d0JBQ2pFLENBQUM7d0JBQ0QsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDRCQUE0QixDQUFDLENBQUM7b0JBRS9FLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixNQUFNLElBQUksWUFBWSxDQUNsQiwwRUFBMEUsQ0FDN0UsQ0FBQTtvQkFDTCxDQUFDO2dCQUVMLENBQUM7cUJBQU0sQ0FBQztvQkFDSixtQkFBbUI7d0JBQ2YsYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FDbEQsNEJBQTRCLENBQy9CLENBQUE7Z0JBQ1QsQ0FBQztnQkFFRCxJQUFJLG1CQUFtQixJQUFJLElBQUksRUFBRSxDQUFDO29CQUc5QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsa0NBQWtDLENBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FDaEYsQ0FBQTtvQkFFRCxPQUFPLEdBQUcsQ0FBQztnQkFDZixDQUFDO3FCQUFNLElBQUksK0JBQStCLEVBQUUsQ0FBQztvQkFDekMsTUFBTSxJQUFJLFlBQVksQ0FDbEIsUUFBUSw0QkFBNEIsaUJBQWlCLENBQ3hELENBQUE7Z0JBQ0wsQ0FBQztxQkFBTSxDQUFDO29CQUlKLE9BQU8sSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUE7Z0JBQ3BELENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxrQ0FBa0MsQ0FDMUMsNEJBQTRCLENBQy9CLENBQUE7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQWlCO1FBQ3hCLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxZQUFZLENBQ2xCLG1HQUFtRyxDQUN0RyxDQUFBO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQTtRQUNiLElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxJQUFJLEdBQUcsUUFBUSxDQUFBO1FBQ25CLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0IsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFBO1FBQ2hDLENBQUM7UUFFRCxJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDNUMsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztRQUVHLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxRQUFRLEdBQWUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFBO1lBRTdELE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQzdDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFFOUIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFLNUIsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE1BQU0sSUFBSSxZQUFZLENBQ2xCLDBFQUEwRSxDQUM3RSxDQUFBO2dCQUNMLENBQUM7WUFFTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FDbEQsSUFBSSxFQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQ2hDLENBQUE7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBSXZCLENBQUM7WUFDQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1lBQ3RELENBQUM7aUJBQU0sQ0FBQztnQkFDSixNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUNyQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDRixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxRQUF3QixFQUFFLFlBQWlCO1FBQzFELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQ2pELENBQUMsR0FBRyxFQUFFLGVBQWUsRUFBRSxFQUFFO1lBRXJCLElBQ0ksZUFBZSxDQUFDLFNBQVM7Z0JBQ3pCLGVBQWUsQ0FBQyxrQkFBa0IsS0FBSyxXQUFXLEVBQ3BELENBQUM7Z0JBQ0MsTUFBTSxLQUFLLEdBQUcsNEJBQTRCLENBQUE7Z0JBQzFDLElBQUksQ0FBQztvQkFDRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO29CQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7b0JBQ3RDLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FDckIsR0FBRyxFQUNILGVBQWUsQ0FBQyxjQUFjLENBQzFCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3pCLENBQ0osQ0FBQTtnQkFDTCxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7Z0JBQ3RELENBQUM7WUFDTCxDQUFDO1lBRUQsT0FBTyxHQUFHLENBQUE7UUFDZCxDQUFDLEVBQ0QsRUFBbUIsQ0FDdEIsQ0FBQTtRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUMxRSxDQUFDO0lBTUQ7OztPQUdHO0lBQ08sd0JBQXdCO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDbEQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDekUsQ0FBQztJQUVEOzs7T0FHRztJQUNPLEtBQUssQ0FBQyxrQ0FBa0MsQ0FDOUMsUUFBcUI7UUFHckIsTUFBTSxlQUFlLEdBQUcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUE7UUFDbEUsTUFBTSxNQUFNLEdBQUcsZUFBZTtZQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDYixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDakQsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWE7WUFDaEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUMzRCxDQUFDO2FBQU0sQ0FBQyxDQUFDLGFBQWE7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ25ELENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFFeEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUE7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCO1FBQ3RCLElBQUksYUFBYSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUVuQyxhQUFhO1lBQ2IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsYUFBYTtZQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUV4QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQztnQkFDRCxNQUFNLE1BQU0sR0FDUixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsYUFBYTtnQkFDckUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7WUFDeEIsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxJQUFJLDhCQUE4QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUNoRSxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUZBQWlGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IEFic3RyYWN0U3FsaXRlRHJpdmVyIH0gZnJvbSBcIi4uL3NxbGl0ZS1hYnN0cmFjdC9BYnN0cmFjdFNxbGl0ZURyaXZlclwiXG5pbXBvcnQgeyBTcWxqc0Nvbm5lY3Rpb25PcHRpb25zIH0gZnJvbSBcIi4vU3FsanNDb25uZWN0aW9uT3B0aW9uc1wiXG5pbXBvcnQgeyBTcWxqc1F1ZXJ5UnVubmVyIH0gZnJvbSBcIi4vU3FsanNRdWVyeVJ1bm5lclwiXG5pbXBvcnQgeyBRdWVyeVJ1bm5lciB9IGZyb20gXCIuLi8uLi9xdWVyeS1ydW5uZXIvUXVlcnlSdW5uZXJcIlxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuLi8uLi9kYXRhLXNvdXJjZS9EYXRhU291cmNlXCJcbmltcG9ydCB7IERyaXZlclBhY2thZ2VOb3RJbnN0YWxsZWRFcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvci9Ecml2ZXJQYWNrYWdlTm90SW5zdGFsbGVkRXJyb3JcIlxuaW1wb3J0IHsgRHJpdmVyT3B0aW9uTm90U2V0RXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3IvRHJpdmVyT3B0aW9uTm90U2V0RXJyb3JcIlxuaW1wb3J0IHsgUGxhdGZvcm1Ub29scyB9IGZyb20gXCIuLi8uLi9wbGF0Zm9ybS9QbGF0Zm9ybVRvb2xzXCJcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL21ldGFkYXRhL0VudGl0eU1ldGFkYXRhXCJcbmltcG9ydCB7IE9ybVV0aWxzIH0gZnJvbSBcIi4uLy4uL3V0aWwvT3JtVXRpbHNcIlxuaW1wb3J0IHsgT2JqZWN0TGl0ZXJhbCB9IGZyb20gXCIuLi8uLi9jb21tb24vT2JqZWN0TGl0ZXJhbFwiXG5pbXBvcnQgeyBSZXBsaWNhdGlvbk1vZGUgfSBmcm9tIFwiLi4vdHlwZXMvUmVwbGljYXRpb25Nb2RlXCJcbmltcG9ydCB7IFR5cGVPUk1FcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvclwiXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcblxuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5sZXQgZW52aXJvbm1lbnQgPSB7fSBhcyBhbnk7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4vLyBAdHMtaWdub3JlXG5lbnZpcm9ubWVudCA9IHdpbmRvd1snRU5WJ107XG5cblxuXG5jb25zdCBTQVZFX0xPQ0FMX0ZPUkdFX1RJTUVPVVQgPSA1MDA7XG5cbmV4cG9ydCBjbGFzcyBTcWxqc0RyaXZlciBleHRlbmRzIEFic3RyYWN0U3FsaXRlRHJpdmVyIHtcblxuICAgIG9wdGlvbnM6IFNxbGpzQ29ubmVjdGlvbk9wdGlvbnM7XG4gICAgbG9jYWxGb3JnZUluc3RhbmNlOiBhbnk7XG4gICAgZGF0YWJhc2VBcnJheUZhc3QgPSB7fTtcbiAgICBkZWJvdW5jZVNhdmUgPSBfLmRlYm91bmNlKGFzeW5jIChwYXRoKT0+IHtcblxuICAgICAgYXdhaXQgdGhpcy5sb2NhbEZvcmdlSW5zdGFuY2Uuc2V0SXRlbShcbiAgICAgICAgcGF0aCxcbiAgICAgICAgdGhpcy5kYXRhYmFzZUFycmF5RmFzdFtwYXRoXSxcbiAgICAgICk7XG5cbiAgICB9LFNBVkVfTE9DQUxfRk9SR0VfVElNRU9VVCk7XG5cblxuXG5cblxuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IERhdGFTb3VyY2UpIHtcbiAgICAgIHN1cGVyKGNvbm5lY3Rpb24pXG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IGxvY2FsRm9yZ2UgPSB3aW5kb3dbJ2xvY2FsZm9yYWdlJ107XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSA9IGxvY2FsRm9yZ2U/LmNyZWF0ZUluc3RhbmNlKHtcbiAgICAgICAgZHJpdmVyOiBsb2NhbEZvcmdlLklOREVYRUREQixcbiAgICAgICAgc3RvcmVOYW1lOiAnZmlyZWRldi10eXBlb3JtXycgKyBfLmtlYmFiQ2FzZShlbnZpcm9ubWVudD8uY3VycmVudFByb2plY3RHZW5lcmljTmFtZSksXG4gICAgICB9KVxuXG5cblxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5hdXRvU2F2ZSAmJlxuICAgICAgICAgICAgIXRoaXMub3B0aW9ucy5sb2NhdGlvbiAmJlxuICAgICAgICAgICAgIXRoaXMub3B0aW9ucy5hdXRvU2F2ZUNhbGxiYWNrXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IERyaXZlck9wdGlvbk5vdFNldEVycm9yKGBsb2NhdGlvbiBvciBhdXRvU2F2ZUNhbGxiYWNrYClcbiAgICAgICAgfVxuXG5cbiAgICAgICAgdGhpcy5sb2FkRGVwZW5kZW5jaWVzKClcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGNvbm5lY3Rpb24gdG8gdGhlIGRhdGFiYXNlLlxuICAgICAqL1xuICAgIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gYXdhaXQgdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb24oKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyBjb25uZWN0aW9uIHdpdGggZGF0YWJhc2UuXG4gICAgICovXG4gICAgYXN5bmMgZGlzY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5xdWVyeVJ1bm5lciA9IHVuZGVmaW5lZFxuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5jbG9zZSgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHF1ZXJ5IHJ1bm5lciB1c2VkIHRvIGV4ZWN1dGUgZGF0YWJhc2UgcXVlcmllcy5cbiAgICAgKi9cbiAgICBjcmVhdGVRdWVyeVJ1bm5lcihtb2RlOiBSZXBsaWNhdGlvbk1vZGUpOiBRdWVyeVJ1bm5lciB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKCF0aGlzLnF1ZXJ5UnVubmVyKSB0aGlzLnF1ZXJ5UnVubmVyID0gbmV3IFNxbGpzUXVlcnlSdW5uZXIodGhpcylcblxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeVJ1bm5lclxuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogTG9hZHMgYSBkYXRhYmFzZSBmcm9tIGEgZ2l2ZW4gZmlsZSAoTm9kZS5qcyksIGxvY2FsIHN0b3JhZ2Uga2V5IChicm93c2VyKSBvciBhcnJheS5cbiAgICAgKiBUaGlzIHdpbGwgZGVsZXRlIHRoZSBjdXJyZW50IGRhdGFiYXNlIVxuICAgICAqL1xuICAgIGFzeW5jIGxvYWQoXG4gICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGE6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgICAgIGNoZWNrSWZGaWxlT3JMb2NhbFN0b3JhZ2VFeGlzdHM6IGJvb2xlYW4gPSB0cnVlLFxuICAgICk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YSA9PT0gXCJzdHJpbmdcIikge1xuXG4gICAgICAgICAgICBpZiAoUGxhdGZvcm1Ub29scy50eXBlID09PSBcIm5vZGVcIikge1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoUGxhdGZvcm1Ub29scy5maWxlRXhpc3QoZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YWJhc2UgPSBQbGF0Zm9ybVRvb2xzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydChkYXRhYmFzZSlcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoZWNrSWZGaWxlT3JMb2NhbFN0b3JhZ2VFeGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGaWxlICR7ZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YX0gZG9lcyBub3QgZXhpc3RgLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydCgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcblxuXG4gICAgICAgICAgICAgICAgbGV0IGxvY2FsU3RvcmFnZUNvbnRlbnQgPSBudWxsXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy51c2VMb2NhbEZvcmFnZSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYoXy5pc1VuZGVmaW5lZCh0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGFdKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZS5nZXRJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YWJhc2VBcnJheUZhc3RbZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YV0gPSBjb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlQ29udGVudCA9IHRoaXMuZGF0YWJhc2VBcnJheUZhc3RbZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YV07XG5cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlT1JNRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYGxvY2FsZm9yYWdlIGlzIG5vdCBkZWZpbmVkIC0gcGxlYXNlIGltcG9ydCBsb2NhbGZvcmFnZS5qcyBpbnRvIHlvdXIgc2l0ZWAsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZUNvbnRlbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1Ub29scy5nZXRHbG9iYWxWYXJpYWJsZSgpLmxvY2FsU3RvcmFnZS5nZXRJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZUNvbnRlbnQgIT0gbnVsbCkge1xuXG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uID0gdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxGb3JnZUluc3RhbmNlID8gbG9jYWxTdG9yYWdlQ29udGVudCA6IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlQ29udGVudCksXG4gICAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hlY2tJZkZpbGVPckxvY2FsU3RvcmFnZUV4aXN0cykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgYEZpbGUgJHtmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhfSBkb2VzIG5vdCBleGlzdGAsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG5cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTYXZlZCB0aGUgY3VycmVudCBkYXRhYmFzZSB0byB0aGUgZ2l2ZW4gZmlsZSAoTm9kZS5qcyksIGxvY2FsIHN0b3JhZ2Uga2V5IChicm93c2VyKSBvclxuICAgICAqIGluZGV4ZWREQiBrZXkgKGJyb3dzZXIgd2l0aCBlbmFibGVkIHVzZUxvY2FsRm9yYWdlIG9wdGlvbikuXG4gICAgICogSWYgbm8gbG9jYXRpb24gcGF0aCBpcyBnaXZlbiwgdGhlIGxvY2F0aW9uIHBhdGggaW4gdGhlIG9wdGlvbnMgKGlmIHNwZWNpZmllZCkgd2lsbCBiZSB1c2VkLlxuICAgICAqL1xuICAgIGFzeW5jIHNhdmUobG9jYXRpb24/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFsb2NhdGlvbiAmJiAhdGhpcy5vcHRpb25zLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgIGBObyBsb2NhdGlvbiBpcyBzZXQsIHNwZWNpZnkgYSBsb2NhdGlvbiBwYXJhbWV0ZXIgb3IgYWRkIHRoZSBsb2NhdGlvbiBvcHRpb24gdG8geW91ciBjb25maWd1cmF0aW9uYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXRoID0gXCJcIlxuICAgICAgICBpZiAobG9jYXRpb24pIHtcbiAgICAgICAgICAgIHBhdGggPSBsb2NhdGlvblxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5sb2NhdGlvbikge1xuICAgICAgICAgICAgcGF0aCA9IHRoaXMub3B0aW9ucy5sb2NhdGlvblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJub2RlXCIpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGF0YWJhc2U6IFVpbnQ4QXJyYXkgPSB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5leHBvcnQoKVxuXG4gICAgICAgICAgICBjb25zdCBkYXRhYmFzZUFycmF5ID0gW10uc2xpY2UuY2FsbChkYXRhYmFzZSlcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudXNlTG9jYWxGb3JhZ2UpIHtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W3BhdGhdID0gZGF0YWJhc2VBcnJheTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWJvdW5jZVNhdmUocGF0aCk7XG5cblxuXG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgYGxvY2FsZm9yYWdlIGlzIG5vdCBkZWZpbmVkIC0gcGxlYXNlIGltcG9ydCBsb2NhbGZvcmFnZS5qcyBpbnRvIHlvdXIgc2l0ZWAsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgUGxhdGZvcm1Ub29scy5nZXRHbG9iYWxWYXJpYWJsZSgpLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShkYXRhYmFzZUFycmF5KSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGdldHMgY2FsbGVkIGJ5IHRoZSBRdWVyeVJ1bm5lciB3aGVuIGEgY2hhbmdlIHRvIHRoZSBkYXRhYmFzZSBpcyBtYWRlLlxuICAgICAqIElmIGEgY3VzdG9tIGF1dG9TYXZlQ2FsbGJhY2sgaXMgc3BlY2lmaWVkLCBpdCBnZXQncyBjYWxsZWQgd2l0aCB0aGUgZGF0YWJhc2UgYXMgVWludDhBcnJheSxcbiAgICAgKiBvdGhlcndpc2UgdGhlIHNhdmUgbWV0aG9kIGlzIGNhbGxlZCB3aGljaCBzYXZlcyBpdCB0byBmaWxlIChOb2RlLmpzKSwgbG9jYWwgc3RvcmFnZSAoYnJvd3NlcilcbiAgICAgKiBvciBpbmRleGVkREIgKGJyb3dzZXIgd2l0aCBlbmFibGVkIHVzZUxvY2FsRm9yYWdlIG9wdGlvbikuXG4gICAgICogRG9uJ3QgYXV0by1zYXZlIHdoZW4gaW4gdHJhbnNhY3Rpb24gYXMgdGhlIGNhbGwgdG8gZXhwb3J0IHdpbGwgZW5kIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uXG4gICAgICovXG4gICAgYXN5bmMgYXV0b1NhdmUoKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b1NhdmVcblxuXG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9TYXZlQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9wdGlvbnMuYXV0b1NhdmVDYWxsYmFjayh0aGlzLmV4cG9ydCgpKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNhdmUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkYXRhYmFzZSBhcyBVaW50OEFycmF5LlxuICAgICAqL1xuICAgIGV4cG9ydCgpOiBVaW50OEFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4cG9ydCgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBnZW5lcmF0ZWQgbWFwIG9mIHZhbHVlcyBnZW5lcmF0ZWQgb3IgcmV0dXJuZWQgYnkgZGF0YWJhc2UgYWZ0ZXIgSU5TRVJUIHF1ZXJ5LlxuICAgICAqL1xuICAgIGNyZWF0ZUdlbmVyYXRlZE1hcChtZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsIGluc2VydFJlc3VsdDogYW55KSB7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRlZE1hcCA9IG1ldGFkYXRhLmdlbmVyYXRlZENvbHVtbnMucmVkdWNlKFxuICAgICAgICAgICAgKG1hcCwgZ2VuZXJhdGVkQ29sdW1uKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbi5pc1ByaW1hcnkgJiZcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmdlbmVyYXRpb25TdHJhdGVneSA9PT0gXCJpbmNyZW1lbnRcIlxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeSA9IFwiU0VMRUNUIGxhc3RfaW5zZXJ0X3Jvd2lkKClcIlxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4ZWMocXVlcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1F1ZXJ5KHF1ZXJ5KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9ybVV0aWxzLm1lcmdlRGVlcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmNyZWF0ZVZhbHVlTWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbMF0udmFsdWVzWzBdWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nUXVlcnlFcnJvcihlLCBxdWVyeSwgW10pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30gYXMgT2JqZWN0TGl0ZXJhbCxcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhnZW5lcmF0ZWRNYXApLmxlbmd0aCA+IDAgPyBnZW5lcmF0ZWRNYXAgOiB1bmRlZmluZWRcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIHRoZSBkYXRhYmFzZS5cbiAgICAgKiBJZiB0aGUgbG9jYXRpb24gb3B0aW9uIGlzIHNldCwgdGhlIGRhdGFiYXNlIGlzIGxvYWRlZCBmaXJzdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWQodGhpcy5vcHRpb25zLmxvY2F0aW9uLCBmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQodGhpcy5vcHRpb25zLmRhdGFiYXNlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGRhdGFiYXNlLlxuICAgICAqIElmIGRhdGFiYXNlIGlzIHNwZWNpZmllZCBpdCBpcyBsb2FkZWQsIG90aGVyd2lzZSBhIG5ldyBlbXB0eSBkYXRhYmFzZSBpcyBjcmVhdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBjcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICBkYXRhYmFzZT86IFVpbnQ4QXJyYXksXG4gICAgKTogUHJvbWlzZTxhbnk+IHtcblxuICAgICAgICBjb25zdCBpc0xlZ2FjeVZlcnNpb24gPSB0eXBlb2YgdGhpcy5zcWxpdGUuRGF0YWJhc2UgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICBjb25zdCBzcWxpdGUgPSBpc0xlZ2FjeVZlcnNpb25cbiAgICAgICAgICAgID8gdGhpcy5zcWxpdGVcbiAgICAgICAgICAgIDogYXdhaXQgdGhpcy5zcWxpdGUodGhpcy5vcHRpb25zLnNxbEpzQ29uZmlnKVxuICAgICAgICBpZiAoZGF0YWJhc2UgJiYgZGF0YWJhc2UubGVuZ3RoID4gMCkgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbiA9IG5ldyBzcWxpdGUuRGF0YWJhc2UoZGF0YWJhc2UpXG4gICAgICAgIH0gZWxzZSB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gbmV3IHNxbGl0ZS5EYXRhYmFzZSgpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5leGVjKGBQUkFHTUEgZm9yZWlnbl9rZXlzID0gT05gKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGRyaXZlciBkZXBlbmRlbmN5IGlzIG5vdCBnaXZlbiBleHBsaWNpdGx5LCB0aGVuIHRyeSB0byBsb2FkIGl0IHZpYSBcInJlcXVpcmVcIi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG9hZERlcGVuZGVuY2llcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJicm93c2VyXCIpIHtcblxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgY29uc3Qgc3FsaXRlID0gdGhpcy5vcHRpb25zLmRyaXZlciB8fCB3aW5kb3dbJ1NRTCddIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3FsaXRlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRyaXZlciB8fCBQbGF0Zm9ybVRvb2xzLmxvYWQoXCJzcWwuanNcIikgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IERyaXZlclBhY2thZ2VOb3RJbnN0YWxsZWRFcnJvcihcInNxbC5qc1wiLCBcInNxbC5qc1wiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlb3JtIGxpYi90eXBlb3JtL2RyaXZlci9zcWxqcy9TcWxqc0RyaXZlci50cyJdfQ==
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsanNEcml2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi10eXBlb3JtL3Byb2plY3RzL3Rhb24tdHlwZW9ybS9zcmMvbGliL3R5cGVvcm0vZHJpdmVyL3NxbGpzL1NxbGpzRHJpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBRTlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBR3JELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUU1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFHOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsSUFBSSxXQUFXLEdBQUcsRUFBUyxDQUFDO0FBQzVCLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUdMLGFBQWE7QUFDYixXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBSTVCLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUFDO0FBRXJDLE1BQU0sT0FBTyxXQUFZLFNBQVEsb0JBQW9CO0lBa0JqRCxZQUFZLFVBQXNCO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQWZuQixzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsaUJBQVksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJ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Q0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDM0QsQ0FBQzthQUFNLENBQUMsQ0FBQyxhQUFhO1lBQ2xCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUNuRCxDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBRXhELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFBO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNPLGdCQUFnQjtRQUN0QixJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFFbkMsYUFBYTtZQUNiLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLGFBQWE7WUFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFFeEIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUM7Z0JBQ0QsTUFBTSxNQUFNLEdBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDLGFBQWE7Z0JBQ3JFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1lBQ3hCLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBSSw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7WUFDaEUsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlGQUFpRiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBBYnN0cmFjdFNxbGl0ZURyaXZlciB9IGZyb20gXCIuLi9zcWxpdGUtYWJzdHJhY3QvQWJzdHJhY3RTcWxpdGVEcml2ZXJcIlxuaW1wb3J0IHsgU3FsanNDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gXCIuL1NxbGpzQ29ubmVjdGlvbk9wdGlvbnNcIlxuaW1wb3J0IHsgU3FsanNRdWVyeVJ1bm5lciB9IGZyb20gXCIuL1NxbGpzUXVlcnlSdW5uZXJcIlxuaW1wb3J0IHsgUXVlcnlSdW5uZXIgfSBmcm9tIFwiLi4vLi4vcXVlcnktcnVubmVyL1F1ZXJ5UnVubmVyXCJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vLi4vZGF0YS1zb3VyY2UvRGF0YVNvdXJjZVwiXG5pbXBvcnQgeyBEcml2ZXJQYWNrYWdlTm90SW5zdGFsbGVkRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3IvRHJpdmVyUGFja2FnZU5vdEluc3RhbGxlZEVycm9yXCJcbmltcG9ydCB7IERyaXZlck9wdGlvbk5vdFNldEVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9yL0RyaXZlck9wdGlvbk5vdFNldEVycm9yXCJcbmltcG9ydCB7IFBsYXRmb3JtVG9vbHMgfSBmcm9tIFwiLi4vLi4vcGxhdGZvcm0vUGxhdGZvcm1Ub29sc1wiXG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YSB9IGZyb20gXCIuLi8uLi9tZXRhZGF0YS9FbnRpdHlNZXRhZGF0YVwiXG5pbXBvcnQgeyBPcm1VdGlscyB9IGZyb20gXCIuLi8uLi91dGlsL09ybVV0aWxzXCJcbmltcG9ydCB7IE9iamVjdExpdGVyYWwgfSBmcm9tIFwiLi4vLi4vY29tbW9uL09iamVjdExpdGVyYWxcIlxuaW1wb3J0IHsgUmVwbGljYXRpb25Nb2RlIH0gZnJvbSBcIi4uL3R5cGVzL1JlcGxpY2F0aW9uTW9kZVwiXG5pbXBvcnQgeyBUeXBlT1JNRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3JcIlxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxubGV0IGVudmlyb25tZW50ID0ge30gYXMgYW55O1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuLy8gQHRzLWlnbm9yZVxuZW52aXJvbm1lbnQgPSB3aW5kb3dbJ0VOViddO1xuXG5cblxuY29uc3QgU0FWRV9MT0NBTF9GT1JHRV9USU1FT1VUID0gNTAwO1xuXG5leHBvcnQgY2xhc3MgU3FsanNEcml2ZXIgZXh0ZW5kcyBBYnN0cmFjdFNxbGl0ZURyaXZlciB7XG5cbiAgICBvcHRpb25zOiBTcWxqc0Nvbm5lY3Rpb25PcHRpb25zO1xuICAgIGxvY2FsRm9yZ2VJbnN0YW5jZTogYW55O1xuICAgIGRhdGFiYXNlQXJyYXlGYXN0ID0ge307XG4gICAgZGVib3VuY2VTYXZlID0gXy5kZWJvdW5jZShhc3luYyAocGF0aCk9PiB7XG5cbiAgICAgIGF3YWl0IHRoaXMubG9jYWxGb3JnZUluc3RhbmNlLnNldEl0ZW0oXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHRoaXMuZGF0YWJhc2VBcnJheUZhc3RbcGF0aF0sXG4gICAgICApO1xuXG4gICAgfSxTQVZFX0xPQ0FMX0ZPUkdFX1RJTUVPVVQpO1xuXG5cblxuXG5cbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBEYXRhU291cmNlKSB7XG4gICAgICBzdXBlcihjb25uZWN0aW9uKVxuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCBsb2NhbEZvcmdlID0gd2luZG93Wydsb2NhbGZvcmFnZSddO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UgPSBsb2NhbEZvcmdlPy5jcmVhdGVJbnN0YW5jZSh7XG4gICAgICAgIGRyaXZlcjogbG9jYWxGb3JnZS5JTkRFWEVEREIsXG4gICAgICAgIHN0b3JlTmFtZTogJ2ZpcmVkZXYtdHlwZW9ybV8nICsgXy5rZWJhYkNhc2UoZW52aXJvbm1lbnQ/LmN1cnJlbnRQcm9qZWN0R2VuZXJpY05hbWUpLFxuICAgICAgfSlcblxuXG5cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuYXV0b1NhdmUgJiZcbiAgICAgICAgICAgICF0aGlzLm9wdGlvbnMubG9jYXRpb24gJiZcbiAgICAgICAgICAgICF0aGlzLm9wdGlvbnMuYXV0b1NhdmVDYWxsYmFja1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBEcml2ZXJPcHRpb25Ob3RTZXRFcnJvcihgbG9jYXRpb24gb3IgYXV0b1NhdmVDYWxsYmFja2ApXG4gICAgICAgIH1cblxuXG4gICAgICAgIHRoaXMubG9hZERlcGVuZGVuY2llcygpXG4gICAgfVxuXG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZS5cbiAgICAgKi9cbiAgICBhc3luYyBjb25uZWN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbiA9IGF3YWl0IHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uKClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgY29ubmVjdGlvbiB3aXRoIGRhdGFiYXNlLlxuICAgICAqL1xuICAgIGFzeW5jIGRpc2Nvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMucXVlcnlSdW5uZXIgPSB1bmRlZmluZWRcbiAgICAgICAgdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb24uY2xvc2UoKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBxdWVyeSBydW5uZXIgdXNlZCB0byBleGVjdXRlIGRhdGFiYXNlIHF1ZXJpZXMuXG4gICAgICovXG4gICAgY3JlYXRlUXVlcnlSdW5uZXIobW9kZTogUmVwbGljYXRpb25Nb2RlKTogUXVlcnlSdW5uZXIgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICghdGhpcy5xdWVyeVJ1bm5lcikgdGhpcy5xdWVyeVJ1bm5lciA9IG5ldyBTcWxqc1F1ZXJ5UnVubmVyKHRoaXMpXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlSdW5uZXJcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIExvYWRzIGEgZGF0YWJhc2UgZnJvbSBhIGdpdmVuIGZpbGUgKE5vZGUuanMpLCBsb2NhbCBzdG9yYWdlIGtleSAoYnJvd3Nlcikgb3IgYXJyYXkuXG4gICAgICogVGhpcyB3aWxsIGRlbGV0ZSB0aGUgY3VycmVudCBkYXRhYmFzZSFcbiAgICAgKi9cbiAgICBhc3luYyBsb2FkKFxuICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgICAgICBjaGVja0lmRmlsZU9yTG9jYWxTdG9yYWdlRXhpc3RzOiBib29sZWFuID0gdHJ1ZSxcbiAgICApOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBpZiAodHlwZW9mIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEgPT09IFwic3RyaW5nXCIpIHtcblxuICAgICAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJub2RlXCIpIHtcblxuXG4gICAgICAgICAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMuZmlsZUV4aXN0KGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFiYXNlID0gUGxhdGZvcm1Ub29scy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQoZGF0YWJhc2UpXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGVja0lmRmlsZU9yTG9jYWxTdG9yYWdlRXhpc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlT1JNRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBgRmlsZSAke2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGF9IGRvZXMgbm90IGV4aXN0YCxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cblxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG5cblxuICAgICAgICAgICAgICAgIGxldCBsb2NhbFN0b3JhZ2VDb250ZW50ID0gbnVsbFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudXNlTG9jYWxGb3JhZ2UpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKF8uaXNVbmRlZmluZWQodGhpcy5kYXRhYmFzZUFycmF5RmFzdFtmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhXSkpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UuZ2V0SXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGFdID0gY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZUNvbnRlbnQgPSB0aGlzLmRhdGFiYXNlQXJyYXlGYXN0W2ZpbGVOYW1lT3JMb2NhbFN0b3JhZ2VPckRhdGFdO1xuXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZU9STUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBsb2NhbGZvcmFnZSBpcyBub3QgZGVmaW5lZCAtIHBsZWFzZSBpbXBvcnQgbG9jYWxmb3JhZ2UuanMgaW50byB5b3VyIHNpdGVgLFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2VDb250ZW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIFBsYXRmb3JtVG9vbHMuZ2V0R2xvYmFsVmFyaWFibGUoKS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2VDb250ZW50ICE9IG51bGwpIHtcblxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbiA9IHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydChcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsRm9yZ2VJbnN0YW5jZSA/IGxvY2FsU3RvcmFnZUNvbnRlbnQgOiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZUNvbnRlbnQpLFxuICAgICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoZWNrSWZGaWxlT3JMb2NhbFN0b3JhZ2VFeGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGaWxlICR7ZmlsZU5hbWVPckxvY2FsU3RvcmFnZU9yRGF0YX0gZG9lcyBub3QgZXhpc3RgLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydCgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uV2l0aEltcG9ydChcbiAgICAgICAgICAgICAgICBmaWxlTmFtZU9yTG9jYWxTdG9yYWdlT3JEYXRhLFxuICAgICAgICAgICAgKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZWQgdGhlIGN1cnJlbnQgZGF0YWJhc2UgdG8gdGhlIGdpdmVuIGZpbGUgKE5vZGUuanMpLCBsb2NhbCBzdG9yYWdlIGtleSAoYnJvd3Nlcikgb3JcbiAgICAgKiBpbmRleGVkREIga2V5IChicm93c2VyIHdpdGggZW5hYmxlZCB1c2VMb2NhbEZvcmFnZSBvcHRpb24pLlxuICAgICAqIElmIG5vIGxvY2F0aW9uIHBhdGggaXMgZ2l2ZW4sIHRoZSBsb2NhdGlvbiBwYXRoIGluIHRoZSBvcHRpb25zIChpZiBzcGVjaWZpZWQpIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgICBhc3luYyBzYXZlKGxvY2F0aW9uPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbG9jYXRpb24gJiYgIXRoaXMub3B0aW9ucy5sb2NhdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICBgTm8gbG9jYXRpb24gaXMgc2V0LCBzcGVjaWZ5IGEgbG9jYXRpb24gcGFyYW1ldGVyIG9yIGFkZCB0aGUgbG9jYXRpb24gb3B0aW9uIHRvIHlvdXIgY29uZmlndXJhdGlvbmAsXG4gICAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGF0aCA9IFwiXCJcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICBwYXRoID0gbG9jYXRpb25cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHBhdGggPSB0aGlzLm9wdGlvbnMubG9jYXRpb25cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChQbGF0Zm9ybVRvb2xzLnR5cGUgPT09IFwibm9kZVwiKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFiYXNlOiBVaW50OEFycmF5ID0gdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb24uZXhwb3J0KClcblxuICAgICAgICAgICAgY29uc3QgZGF0YWJhc2VBcnJheSA9IFtdLnNsaWNlLmNhbGwoZGF0YWJhc2UpXG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnVzZUxvY2FsRm9yYWdlKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhbEZvcmdlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhYmFzZUFycmF5RmFzdFtwYXRoXSA9IGRhdGFiYXNlQXJyYXk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVib3VuY2VTYXZlKHBhdGgpO1xuXG5cblxuXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGBsb2NhbGZvcmFnZSBpcyBub3QgZGVmaW5lZCAtIHBsZWFzZSBpbXBvcnQgbG9jYWxmb3JhZ2UuanMgaW50byB5b3VyIHNpdGVgLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIFBsYXRmb3JtVG9vbHMuZ2V0R2xvYmFsVmFyaWFibGUoKS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YWJhc2VBcnJheSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBnZXRzIGNhbGxlZCBieSB0aGUgUXVlcnlSdW5uZXIgd2hlbiBhIGNoYW5nZSB0byB0aGUgZGF0YWJhc2UgaXMgbWFkZS5cbiAgICAgKiBJZiBhIGN1c3RvbSBhdXRvU2F2ZUNhbGxiYWNrIGlzIHNwZWNpZmllZCwgaXQgZ2V0J3MgY2FsbGVkIHdpdGggdGhlIGRhdGFiYXNlIGFzIFVpbnQ4QXJyYXksXG4gICAgICogb3RoZXJ3aXNlIHRoZSBzYXZlIG1ldGhvZCBpcyBjYWxsZWQgd2hpY2ggc2F2ZXMgaXQgdG8gZmlsZSAoTm9kZS5qcyksIGxvY2FsIHN0b3JhZ2UgKGJyb3dzZXIpXG4gICAgICogb3IgaW5kZXhlZERCIChicm93c2VyIHdpdGggZW5hYmxlZCB1c2VMb2NhbEZvcmFnZSBvcHRpb24pLlxuICAgICAqIERvbid0IGF1dG8tc2F2ZSB3aGVuIGluIHRyYW5zYWN0aW9uIGFzIHRoZSBjYWxsIHRvIGV4cG9ydCB3aWxsIGVuZCB0aGUgY3VycmVudCB0cmFuc2FjdGlvblxuICAgICAqL1xuICAgIGFzeW5jIGF1dG9TYXZlKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9TYXZlICYmICF0aGlzLnF1ZXJ5UnVubmVyPy5pc1RyYW5zYWN0aW9uQWN0aXZlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9TYXZlQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9wdGlvbnMuYXV0b1NhdmVDYWxsYmFjayh0aGlzLmV4cG9ydCgpKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNhdmUoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkYXRhYmFzZSBhcyBVaW50OEFycmF5LlxuICAgICAqL1xuICAgIGV4cG9ydCgpOiBVaW50OEFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4cG9ydCgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBnZW5lcmF0ZWQgbWFwIG9mIHZhbHVlcyBnZW5lcmF0ZWQgb3IgcmV0dXJuZWQgYnkgZGF0YWJhc2UgYWZ0ZXIgSU5TRVJUIHF1ZXJ5LlxuICAgICAqL1xuICAgIGNyZWF0ZUdlbmVyYXRlZE1hcChtZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsIGluc2VydFJlc3VsdDogYW55KSB7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRlZE1hcCA9IG1ldGFkYXRhLmdlbmVyYXRlZENvbHVtbnMucmVkdWNlKFxuICAgICAgICAgICAgKG1hcCwgZ2VuZXJhdGVkQ29sdW1uKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbi5pc1ByaW1hcnkgJiZcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmdlbmVyYXRpb25TdHJhdGVneSA9PT0gXCJpbmNyZW1lbnRcIlxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeSA9IFwiU0VMRUNUIGxhc3RfaW5zZXJ0X3Jvd2lkKClcIlxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmV4ZWMocXVlcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ubG9nZ2VyLmxvZ1F1ZXJ5KHF1ZXJ5KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9ybVV0aWxzLm1lcmdlRGVlcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmNyZWF0ZVZhbHVlTWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbMF0udmFsdWVzWzBdWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dnZXIubG9nUXVlcnlFcnJvcihlLCBxdWVyeSwgW10pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30gYXMgT2JqZWN0TGl0ZXJhbCxcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhnZW5lcmF0ZWRNYXApLmxlbmd0aCA+IDAgPyBnZW5lcmF0ZWRNYXAgOiB1bmRlZmluZWRcbiAgICB9XG5cblxuXG5cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIHRoZSBkYXRhYmFzZS5cbiAgICAgKiBJZiB0aGUgbG9jYXRpb24gb3B0aW9uIGlzIHNldCwgdGhlIGRhdGFiYXNlIGlzIGxvYWRlZCBmaXJzdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWJhc2VDb25uZWN0aW9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWQodGhpcy5vcHRpb25zLmxvY2F0aW9uLCBmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGFiYXNlQ29ubmVjdGlvbldpdGhJbXBvcnQodGhpcy5vcHRpb25zLmRhdGFiYXNlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29ubmVjdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGRhdGFiYXNlLlxuICAgICAqIElmIGRhdGFiYXNlIGlzIHNwZWNpZmllZCBpdCBpcyBsb2FkZWQsIG90aGVyd2lzZSBhIG5ldyBlbXB0eSBkYXRhYmFzZSBpcyBjcmVhdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBjcmVhdGVEYXRhYmFzZUNvbm5lY3Rpb25XaXRoSW1wb3J0KFxuICAgICAgICBkYXRhYmFzZT86IFVpbnQ4QXJyYXksXG4gICAgKTogUHJvbWlzZTxhbnk+IHtcblxuICAgICAgICBjb25zdCBpc0xlZ2FjeVZlcnNpb24gPSB0eXBlb2YgdGhpcy5zcWxpdGUuRGF0YWJhc2UgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICBjb25zdCBzcWxpdGUgPSBpc0xlZ2FjeVZlcnNpb25cbiAgICAgICAgICAgID8gdGhpcy5zcWxpdGVcbiAgICAgICAgICAgIDogYXdhaXQgdGhpcy5zcWxpdGUodGhpcy5vcHRpb25zLnNxbEpzQ29uZmlnKVxuICAgICAgICBpZiAoZGF0YWJhc2UgJiYgZGF0YWJhc2UubGVuZ3RoID4gMCkgeyAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbiA9IG5ldyBzcWxpdGUuRGF0YWJhc2UoZGF0YWJhc2UpXG4gICAgICAgIH0gZWxzZSB7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gbmV3IHNxbGl0ZS5EYXRhYmFzZSgpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5leGVjKGBQUkFHTUEgZm9yZWlnbl9rZXlzID0gT05gKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGRyaXZlciBkZXBlbmRlbmN5IGlzIG5vdCBnaXZlbiBleHBsaWNpdGx5LCB0aGVuIHRyeSB0byBsb2FkIGl0IHZpYSBcInJlcXVpcmVcIi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG9hZERlcGVuZGVuY2llcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKFBsYXRmb3JtVG9vbHMudHlwZSA9PT0gXCJicm93c2VyXCIpIHtcblxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgY29uc3Qgc3FsaXRlID0gdGhpcy5vcHRpb25zLmRyaXZlciB8fCB3aW5kb3dbJ1NRTCddIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3FsaXRlID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRyaXZlciB8fCBQbGF0Zm9ybVRvb2xzLmxvYWQoXCJzcWwuanNcIikgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHRoaXMuc3FsaXRlID0gc3FsaXRlXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IERyaXZlclBhY2thZ2VOb3RJbnN0YWxsZWRFcnJvcihcInNxbC5qc1wiLCBcInNxbC5qc1wiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlb3JtIGxpYi90eXBlb3JtL2RyaXZlci9zcWxqcy9TcWxqc0RyaXZlci50cyJdfQ==
|
|
@@ -14069,7 +14069,7 @@ class SqljsDriver extends AbstractSqliteDriver {
|
|
|
14069
14069
|
* Don't auto-save when in transaction as the call to export will end the current transaction
|
|
14070
14070
|
*/
|
|
14071
14071
|
async autoSave() {
|
|
14072
|
-
if (this.options.autoSave) {
|
|
14072
|
+
if (this.options.autoSave && !this.queryRunner?.isTransactionActive) {
|
|
14073
14073
|
if (this.options.autoSaveCallback) {
|
|
14074
14074
|
await this.options.autoSaveCallback(this.export());
|
|
14075
14075
|
}
|