tnp-helpers 16.100.21 → 16.100.23

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.
Files changed (111) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base/base-db.mjs +1 -19
  3. package/browser/esm2022/lib/base/base-project.mjs +2 -1
  4. package/browser/esm2022/lib/base/config-database.mjs +2 -1
  5. package/browser/esm2022/lib/base/project-database.mjs +1 -1
  6. package/browser/fesm2022/tnp-helpers.mjs +2 -18
  7. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  8. package/browser/lib/base/base-db.d.ts +0 -2
  9. package/client/esm2022/lib/base/base-db.mjs +1 -19
  10. package/client/esm2022/lib/base/base-project.mjs +2 -1
  11. package/client/esm2022/lib/base/config-database.mjs +2 -1
  12. package/client/esm2022/lib/base/project-database.mjs +1 -1
  13. package/client/fesm2022/tnp-helpers.mjs +2 -18
  14. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  15. package/client/lib/base/base-db.d.ts +0 -2
  16. package/client/package.json +4 -4
  17. package/lib/base/base-command-line.backend.d.ts +1 -0
  18. package/lib/base/base-command-line.backend.js +4 -0
  19. package/lib/base/base-command-line.backend.js.map +1 -1
  20. package/lib/base/base-db.js +1 -1
  21. package/lib/base/base-db.js.map +1 -1
  22. package/lib/base/base-project.js +1 -1
  23. package/lib/base/base-project.js.map +1 -1
  24. package/lib/base/base-start-config.backend.js +3 -0
  25. package/lib/base/base-start-config.backend.js.map +1 -1
  26. package/lib/base/command-line-feature.backend.js +17 -24
  27. package/lib/base/command-line-feature.backend.js.map +1 -1
  28. package/lib/base/config-database.js.map +1 -1
  29. package/lib/base/project-database.js.map +1 -1
  30. package/lib/base/translate.js +2 -0
  31. package/lib/base/translate.js.map +1 -1
  32. package/lib/helpers/for-backend/ts-code/ts-code-extractor.js +2 -0
  33. package/lib/helpers/for-backend/ts-code/ts-code-extractor.js.map +1 -1
  34. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.d.ts +0 -3
  35. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js +2 -4
  36. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js.map +1 -1
  37. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js +2 -0
  38. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js.map +1 -1
  39. package/lib/helpers/for-browser/angular.helper.js +3 -3
  40. package/lib/lowdb/adapters/Memory.js +1 -0
  41. package/lib/lowdb/adapters/Memory.js.map +1 -1
  42. package/lib/lowdb/adapters/browser/LocalStorage.js +2 -0
  43. package/lib/lowdb/adapters/browser/LocalStorage.js.map +1 -1
  44. package/lib/lowdb/adapters/browser/SessionStorage.js +2 -0
  45. package/lib/lowdb/adapters/browser/SessionStorage.js.map +1 -1
  46. package/lib/lowdb/adapters/browser/WebStorage.js +1 -0
  47. package/lib/lowdb/adapters/browser/WebStorage.js.map +1 -1
  48. package/lib/lowdb/adapters/node/DataFile.js +1 -0
  49. package/lib/lowdb/adapters/node/DataFile.js.map +1 -1
  50. package/lib/lowdb/adapters/node/JSONFile.js +1 -0
  51. package/lib/lowdb/adapters/node/JSONFile.js.map +1 -1
  52. package/lib/lowdb/adapters/node/TextFile.js +2 -0
  53. package/lib/lowdb/adapters/node/TextFile.js.map +1 -1
  54. package/lib/lowdb/adapters/node/steno.js +2 -0
  55. package/lib/lowdb/adapters/node/steno.js.map +1 -1
  56. package/lib/lowdb/browser.js +2 -0
  57. package/lib/lowdb/browser.js.map +1 -1
  58. package/lib/lowdb/core/Low.js +1 -0
  59. package/lib/lowdb/core/Low.js.map +1 -1
  60. package/lib/lowdb/examples/browser.js +6 -7
  61. package/lib/lowdb/examples/browser.js.map +1 -1
  62. package/lib/lowdb/examples/cli.d.ts +0 -1
  63. package/lib/lowdb/examples/cli.js +8 -10
  64. package/lib/lowdb/examples/cli.js.map +1 -1
  65. package/lib/lowdb/examples/in-memory.d.ts +0 -8
  66. package/lib/lowdb/examples/in-memory.js +21 -13
  67. package/lib/lowdb/examples/in-memory.js.map +1 -1
  68. package/lib/lowdb/index.js +2 -0
  69. package/lib/lowdb/index.js.map +1 -1
  70. package/lib/lowdb/node.js +2 -0
  71. package/lib/lowdb/node.js.map +1 -1
  72. package/lib/lowdb/presets/browser.js +2 -0
  73. package/lib/lowdb/presets/browser.js.map +1 -1
  74. package/lib/lowdb/presets/node.js +1 -0
  75. package/lib/lowdb/presets/node.js.map +1 -1
  76. package/lib/old/base-component.js +3 -3
  77. package/lib/old/base-formly-component.js +3 -3
  78. package/lib/old/dual-component-ctrl.js +3 -3
  79. package/package.json +2 -2
  80. package/tmp-environment.json +8 -8
  81. package/websql/esm2022/lib/base/base-db.mjs +1 -19
  82. package/websql/esm2022/lib/base/base-project.mjs +2 -1
  83. package/websql/esm2022/lib/base/config-database.mjs +2 -1
  84. package/websql/esm2022/lib/base/project-database.mjs +1 -1
  85. package/websql/fesm2022/tnp-helpers.mjs +2 -18
  86. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  87. package/websql/lib/base/base-db.d.ts +0 -2
  88. package/browser/esm2022/lib/base/translate.mjs +0 -42
  89. package/browser/esm2022/lib/lowdb/adapters/Memory.mjs +0 -26
  90. package/browser/esm2022/lib/lowdb/core/Low.mjs +0 -49
  91. package/browser/esm2022/lib/lowdb/index.mjs +0 -4
  92. package/browser/lib/base/translate.d.ts +0 -2
  93. package/browser/lib/lowdb/adapters/Memory.d.ts +0 -12
  94. package/browser/lib/lowdb/core/Low.d.ts +0 -25
  95. package/browser/lib/lowdb/index.d.ts +0 -3
  96. package/client/esm2022/lib/base/translate.mjs +0 -42
  97. package/client/esm2022/lib/lowdb/adapters/Memory.mjs +0 -26
  98. package/client/esm2022/lib/lowdb/core/Low.mjs +0 -49
  99. package/client/esm2022/lib/lowdb/index.mjs +0 -4
  100. package/client/lib/base/translate.d.ts +0 -2
  101. package/client/lib/lowdb/adapters/Memory.d.ts +0 -12
  102. package/client/lib/lowdb/core/Low.d.ts +0 -25
  103. package/client/lib/lowdb/index.d.ts +0 -3
  104. package/websql/esm2022/lib/base/translate.mjs +0 -42
  105. package/websql/esm2022/lib/lowdb/adapters/Memory.mjs +0 -26
  106. package/websql/esm2022/lib/lowdb/core/Low.mjs +0 -49
  107. package/websql/esm2022/lib/lowdb/index.mjs +0 -4
  108. package/websql/lib/base/translate.d.ts +0 -2
  109. package/websql/lib/lowdb/adapters/Memory.d.ts +0 -12
  110. package/websql/lib/lowdb/core/Low.d.ts +0 -25
  111. package/websql/lib/lowdb/index.d.ts +0 -3
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dummy1717441912346 = void 0;
4
- function dummy1717441912346() { }
5
- exports.dummy1717441912346 = dummy1717441912346;
3
+ exports.dummy1717461949247 = void 0;
4
+ function dummy1717461949247() { }
5
+ exports.dummy1717461949247 = dummy1717461949247;
6
6
  //# sourceMappingURL=base-formly-component.js.map
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dummy1717441912348 = void 0;
4
- function dummy1717441912348() { }
5
- exports.dummy1717441912348 = dummy1717441912348;
3
+ exports.dummy1717461949250 = void 0;
4
+ function dummy1717461949250() { }
5
+ exports.dummy1717461949250 = dummy1717461949250;
6
6
  //# sourceMappingURL=dual-component-ctrl.js.map
package/package.json CHANGED
@@ -43,7 +43,7 @@
43
43
  "firedev-helpers"
44
44
  ]
45
45
  },
46
- "version": "16.100.21",
46
+ "version": "16.100.23",
47
47
  "dependencies": {
48
48
  "json10-writer": "16.100.10",
49
49
  "lowdb": "7.0.1",
@@ -61,6 +61,6 @@
61
61
  "homepage": "https://github.com/darekf77/tnp-helpers#readme",
62
62
  "name": "tnp-helpers",
63
63
  "devDependencies": {},
64
- "lastBuildTagHash": "d64b9bb51b6f30a510cc65a2fdec520c62ef37e8",
64
+ "lastBuildTagHash": "35a4daae9ffab49e19104d8829c3e54caec101bf",
65
65
  "main": "dist/app.electron.js"
66
66
  }
@@ -47,7 +47,7 @@
47
47
  "firedev-helpers"
48
48
  ]
49
49
  },
50
- "version": "16.100.21",
50
+ "version": "16.100.23",
51
51
  "dependencies": {
52
52
  "json10-writer": "16.100.10",
53
53
  "lowdb": "7.0.1",
@@ -330,9 +330,9 @@
330
330
  "threads": "1.7.0",
331
331
  "tnp-cli": "16.100.5",
332
332
  "tnp-config": "16.100.10",
333
- "tnp-core": "16.100.22",
333
+ "tnp-core": "16.100.23",
334
334
  "tnp-db": "16.100.9",
335
- "tnp-helpers": "16.100.20",
335
+ "tnp-helpers": "16.100.22",
336
336
  "ts-debug": "1.3.0",
337
337
  "ts-json-schema-generator": "2.1.1",
338
338
  "ts-loader": "2.3.1",
@@ -354,18 +354,18 @@
354
354
  "yup": "1.1.1",
355
355
  "zone.js": "~0.13.0"
356
356
  },
357
- "lastBuildTagHash": "d64b9bb51b6f30a510cc65a2fdec520c62ef37e8",
357
+ "lastBuildTagHash": "35a4daae9ffab49e19104d8829c3e54caec101bf",
358
358
  "main": "dist/app.electron.js"
359
359
  },
360
360
  "build": {
361
- "number": 749,
362
- "date": "2024-06-03T19:09:12.000Z",
363
- "hash": "f4a80d424598992a05d07ba8d4a097bd5fd63945"
361
+ "number": 748,
362
+ "date": "2024-06-04T00:45:39.000Z",
363
+ "hash": "16a0d11d7cfb7db8d93662d28ff060d7ac71002d"
364
364
  },
365
365
  "currentProjectName": "tnp-helpers",
366
366
  "currentProjectGenericName": "tnp-helpers",
367
367
  "currentProjectType": "isomorphic-lib",
368
- "currentFrameworkVersion": "16.100.27",
368
+ "currentFrameworkVersion": "16.100.30",
369
369
  "isStandaloneProject": true,
370
370
  "isSmartContainer": false,
371
371
  "pathesTsconfig": "\"paths\": {\"tnp-helpers\":[\"./src/lib\"],\"tnp-helpers/*\":[\"./src/lib/*\"]},",
@@ -24,25 +24,7 @@ export class BaseDb {
24
24
  /* */
25
25
  return (void 0);
26
26
  }
27
- async useDB() {
28
- /* */
29
- /* */
30
- /* */
31
- /* */
32
- /* */
33
- /* */
34
- /* */
35
- /* */
36
- /* */
37
- /* */
38
- /* */
39
- /* */
40
- /* */
41
- return (void 0);
42
- // @ts-ignore
43
- return void 0;
44
- }
45
27
  }
46
28
  ;
47
29
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-db.ts
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvYmFzZS1kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsTUFBTSxPQUFPLE1BQU07SUFFakIsWUFDVSxHQUF3QixFQUN4QixNQUFjLEVBQ2QsU0FBYTtRQUZiLFFBQUcsR0FBSCxHQUFHLENBQXFCO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFJO0lBR3ZCLENBQUM7SUFDSCxLQUFLO0lBQ0wsS0FBSztJQUdILElBQVcsVUFBVTtRQUN2QixLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUN4QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDYixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEIsYUFBYTtRQUNiLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0REFBNEQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBIZWxwZXJzLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gXCJ0bnAtY29yZS93ZWJzcWxcIjtcblxuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdFJlc29sdmVyIH0gZnJvbSBcIi4vYmFzZS1wcm9qZWN0LXJlc29sdmVyXCI7XG5pbXBvcnQgeyBMb3cgfSBmcm9tIFwiLi4vbG93ZGJcIjtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cbmV4cG9ydCBjbGFzcyBCYXNlRGI8REIgZXh0ZW5kcyBvYmplY3Q+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluczogQmFzZVByb2plY3RSZXNvbHZlcixcbiAgICBwcml2YXRlIGRiTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgZGVmYXVsdERiOiBEQixcbiAgKSB7XG5cbiAgfVxuLyogKi9cbi8qICovXG4gIFxuXG4gIHB1YmxpYyBnZXQgaXNVbnNpbmdEQigpOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIGdldCBwcm9qZWN0c0RiTG9jYXRpb24oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgYXN5bmMgdXNlREIoKTogUHJvbWlzZTxMb3c8REI+PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9iYXNlLWRiLnRzIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvYmFzZS1kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsTUFBTSxPQUFPLE1BQU07SUFFakIsWUFDVSxHQUF3QixFQUN4QixNQUFjLEVBQ2QsU0FBYTtRQUZiLFFBQUcsR0FBSCxHQUFHLENBQXFCO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFJO0lBR3ZCLENBQUM7SUFDSCxLQUFLO0lBQ0wsS0FBSztJQUdILElBQVcsVUFBVTtRQUN2QixLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUN4QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBdUJGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0REFBNEQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBIZWxwZXJzLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gXCJ0bnAtY29yZS93ZWJzcWxcIjtcblxuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdFJlc29sdmVyIH0gZnJvbSBcIi4vYmFzZS1wcm9qZWN0LXJlc29sdmVyXCI7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cbmV4cG9ydCBjbGFzcyBCYXNlRGI8REIgZXh0ZW5kcyBvYmplY3Q+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluczogQmFzZVByb2plY3RSZXNvbHZlcixcbiAgICBwcml2YXRlIGRiTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgZGVmYXVsdERiOiBEQixcbiAgKSB7XG5cbiAgfVxuLyogKi9cbi8qICovXG4gIFxuXG4gIHB1YmxpYyBnZXQgaXNVbnNpbmdEQigpOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIGdldCBwcm9qZWN0c0RiTG9jYXRpb24oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9iYXNlLWRiLnRzIl19
@@ -8,6 +8,7 @@ import { BaseProjectResolver } from './base-project-resolver';
8
8
  /* */
9
9
  /* */
10
10
  /* */
11
+ /* */
11
12
  const takenPorts = [];
12
13
  class BaseProject {
13
14
  static { this.ins = new BaseProjectResolver(BaseProject); }
@@ -1599,4 +1600,4 @@ ${(this.linkedProjects || []).map(c => '- ' + c.relativeClonePath).join('\n')}
1599
1600
  export { BaseProject };
1600
1601
  ;
1601
1602
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-project.ts
1602
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9iYXNlLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFjLFdBQVcsRUFBRSxPQUFPLEVBQXdCLGFBQWEsRUFBZ0IsTUFBTSxVQUFVLENBQUM7QUFDL0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHOUQsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFJTCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFHdEIsTUFBc0IsV0FBVzthQUl4QixRQUFHLEdBQUcsSUFBSSxtQkFBbUIsQ0FBYyxXQUFXLENBQUMsQUFBcEQsQ0FBcUQ7SUFJeEQsTUFBTSxDQUFDLGtCQUFrQixDQUFzQyxRQUFhLEVBQUUsZUFBc0MsRUFBRSxpQkFBc0M7UUFFakssTUFBTSxPQUFPLEdBQStCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBK0IsRUFBRSxDQUFDO1FBQzdDLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUV2QixNQUFNLEtBQUssR0FBRyxDQUFDLE9BQVUsRUFBRSxFQUFFO1lBQzNCLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7Z0JBRXJDLE9BQU8sQ0FBQyxLQUFLLENBQUMsbURBQW1ELGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFF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Q0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELEtBQUssQ0FBQyxXQUFXLENBQUMsVUFTZCxFQUFFO1FBQ1IsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztR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S0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUlELHNCQUFzQixDQUFDLE9BQTRCO1FBQ3JELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxZQUFZLENBQUMsUUFBZ0IsRUFBRSxtQkFBcUM7UUFDbEUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDbkMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDL0c7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxRQUFRLElBQUksbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEgsQ0FBQzs7U0FyOERtQixXQUFXO0FBNDhEaEMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpRUFBaUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBDb3JlTW9kZWxzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IENMSSB9IGZyb20gJ3RucC1jbGkvd2Vic3FsJztcbmltcG9ydCB7IHBhdGgsIGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvd2Vic3FsJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgQ29tbWl0RGF0YSwgQ29yZVByb2plY3QsIEhlbHBlcnMsIExpbmtlZFBvcmplY3RzQ29uZmlnLCBMaW5rZWRQcm9qZWN0LCBUeXBlT2ZDb21taXQgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBCYXNlUHJvamVjdFJlc29sdmVyIH0gZnJvbSAnLi9iYXNlLXByb2plY3QtcmVzb2x2ZXInO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAnLi90cmFuc2xhdGUnO1xuaW1wb3J0IHsgQmFzZVByb2plY3RUeXBlLCBOZ1Byb2plY3QgfSBmcm9tICcuLi9tb2RlbHMnO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cbmNvbnN0IHRha2VuUG9ydHMgPSBbXTtcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVByb2plY3Q8UFJPSkNFVCBleHRlbmRzIEJhc2VQcm9qZWN0ID0gYW55LCBUWVBFID0gQmFzZVByb2plY3RUeXBlPiB7XG5cblxuXG4gIHN0YXRpYyBpbnMgPSBuZXcgQmFzZVByb2plY3RSZXNvbHZlcjxCYXNlUHJvamVjdD4oQmFzZVByb2plY3QpO1xuXG5cblxuICBwdWJsaWMgc3RhdGljIHNvcnRHcm91cE9mUHJvamVjdDxUIGV4dGVuZHMgQmFzZVByb2plY3QgPSBCYXNlUHJvamVjdD4ocHJvamVjdHM6IFRbXSwgcmVzb3ZlRGVwc0FycmF5OiAocHJvajogVCkgPT4gc3RyaW5nW10sIHByb2pOYW1lVG9Db21wYXJlOiAocHJvajogVCkgPT4gc3RyaW5nKTogVFtdIHtcblxuICAgIGNvbnN0IHZpc2l0ZWQ6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgY29uc3Qgc3RhY2s6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgY29uc3QgcmVzdWx0OiBUW10gPSBbXTtcblxuICAgIGNvbnN0IHZpc2l0ID0gKHByb2plY3Q6IFQpID0+IHtcbiAgICAgIGlmIChzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0pIHtcblxuICAgICAgICBIZWxwZXJzLmVycm9yKGBDaXJjdWxhciBkZXBlbmRlbmN5IGRldGVjdGVkIGludm9sdmluZyBwcm9qZWN0OiAke3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXZpc2l0ZWRbcHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCldKSB7XG4gICAgICAgIHZpc2l0ZWRbcHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCldID0gdHJ1ZTtcbiAgICAgICAgc3RhY2tbcHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCldID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBkZXBzUmVzb2x2ZWQgPSByZXNvdmVEZXBzQXJyYXkocHJvamVjdCk7XG4gICAgICAgIGRlcHNSZXNvbHZlZC5mb3JFYWNoKGRlcGVuZGVuY3kgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlcGVuZGVudFByb2plY3QgPSBwcm9qZWN0cy5maW5kKHAgPT4ge1xuXG4gICAgICAgICAgICByZXR1cm4gcHJvak5hbWVUb0NvbXBhcmUocCkgPT09IGRlcGVuZGVuY3k7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGRlcGVuZGVudFByb2plY3QpIHtcbiAgICAgICAgICAgIHZpc2l0KGRlcGVuZGVudFByb2plY3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3RhY2tbcHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCldID0gZmFsc2U7XG4gICAgICAgIHJlc3VsdC5wdXNoKHByb2plY3QpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBwcm9qZWN0cy5mb3JFYWNoKHByb2plY3QgPT4gdmlzaXQocHJvamVjdCkpO1xuICAgIHJldHVybiByZXN1bHQ7XG5cbiAgfVxuXG5cbiAgZ2V0IGVtYmVkZGVkUHJvamVjdCgpOiBQUk9KQ0VUIHtcbiAgICBjb25zdCBjYWNoZUtleSA9ICdlbWJlZGRlZFByb2plY3QnICsgXy5rZWJhYkNhc2UodGhpcy5sb2NhdGlvbik7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuZ2xvYmFsQ2FjaGVbY2FjaGVLZXldKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2xvYmFsQ2FjaGVbY2FjaGVLZXldO1xuICAgIH1cblxuICAgIGNvbnN0IG5lYXJzZXRQcm9qID0gdGhpcy5pbnMubmVhcmVzdFRvKGNyb3NzUGxhdGZvcm1QYXRoKFt0aGlzLmxvY2F0aW9uLCAnLi4nXSkpO1xuICAgIGNvbnN0IGxpbmtlZFBvcmogPSBuZWFyc2V0UHJvai5saW5rZWRQcm9qZWN0cy5maW5kKGwgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubG9jYXRpb24gPT09IGNyb3NzUGxhdGZvcm1QYXRoKFtuZWFyc2V0UHJvai5sb2NhdGlvbiwgbC5yZWxhdGl2ZUNsb25lUGF0aF0pO1xuICAgIH0pO1xuICAgIGlmICghbGlua2VkUG9yaiB8fCAhbGlua2VkUG9yai5pbnRlcm5hbFJlYWx0aXZlUHJvamVjdFBhdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGF0aFRvRW1iZWRlZFByb2ogPSBjcm9zc1BsYXRmb3JtUGF0aChbbmVhcnNldFByb2oubG9jYXRpb24sIGxpbmtlZFBvcmoucmVsYXRpdmVDbG9uZVBhdGgsIGxpbmtlZFBvcmouaW50ZXJuYWxSZWFsdGl2ZVByb2plY3RQYXRoIHx8ICcnXSk7XG4gICAgY29uc3QgZW1iZGVkcmVzdWx0ID0gdGhpcy5pbnMuRnJvbShwYXRoVG9FbWJlZGVkUHJvaik7XG5cbiAgICB0aGlzLmdsb2JhbENhY2hlW2NhY2hlS2V5XSA9IGVtYmRlZHJlc3VsdDtcbiAgICByZXR1cm4gdGhpcy5nbG9iYWxDYWNoZVtjYWNoZUtleV07XG4gIH1cblxuICBnZXQgcHJvamVjdHNEYkxvY2F0aW9uKCkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICBhc3luYyBzYXZlTG9jYXRpb25Ub0RCKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG5cblxuICBwdWJsaWMgY2FjaGU6IGFueSA9IHt9O1xuICBwdWJsaWMgc3RhdGljIGNhY2hlOiBhbnkgPSB7fTtcbiAgcHVibGljIGdldCBnbG9iYWxDYWNoZSgpIHtcbiAgICByZXR1cm4gQmFzZVByb2plY3QuY2FjaGU7XG4gIH1cbiAgcmVhZG9ubHkgdHlwZTogVFlQRSB8IHN0cmluZyA9ICd1bmtub3cnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFja2FnZUpTT046IGFueTtcblxuICAvKipcbiAgICogcmVzb2x2ZSBpbnN0YW5jZVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyPFBST0pDRVQ+O1xuICAvKipcbiAgICogVW5pcXVlIGZyZWUgcG9ydCBmb3IgcHJvamVjdCBpbnN0YW5jZVxuICAgKiBvbmx5IGF2YWlsYWJsZSBhZnRlciBleGVjdXRpbmcgKnRoaXMuYXNzaWduRnJlZVBvcnQoKSpcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IHN0cmluZztcblxuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBkb2Vzbid0IG5lZWQgdG8gYmUgcmVhbCBwYXRoIC0+IGNhbiBiZSBsaW5rXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmcsXG4gICkge1xuXG4gIH1cblxuXG5cbiAgYXN5bmMgc2F2ZUFsbExpbmtlZFByb2plY3RzVG9EQigpIHtcbiAgICBjb25zdCBwcm9qID0gdGhpcztcbiAgICBhd2FpdCBwcm9qLnNhdmVMb2NhdGlvblRvREIoKTtcbiAgICBmb3IgKGNvbnN0IGxpbmsgb2YgcHJvai5saW5rZWRQcm9qZWN0cykge1xuICAgICAgY29uc3QgbGlua2VkUG9yaiA9IHRoaXMuaW5zLkZyb20oW3Byb2oubG9jYXRpb24sIGxpbmsucmVsYXRpdmVDbG9uZVBhdGgsIGxpbmsuaW50ZXJuYWxSZWFsdGl2ZVByb2plY3RQYXRoIHx8ICcnXSk7XG5cbiAgICAgIGlmIChsaW5rZWRQb3JqKSB7XG4gICAgICAgIGF3YWl0IGxpbmtlZFBvcmouc2F2ZUxvY2F0aW9uVG9EQigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgSGVscGVycy53YXJuKGBGb2xkZXIgJHtsaW5rLnJlbGF0aXZlQ2xvbmVQYXRofSBpcyBtaXNzaW5nIHByb2plY3RzLi4uYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuXG4gIGdldCBpc01vbm9yZXBvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgb3JkZXJDb3JlUHJvamVjdHMoY29yZVByb2plY3RzOiBDb3JlUHJvamVjdFtdKTogQ29yZVByb2plY3RbXSB7XG4gICAgY29uc3QgcHJvamVjdE1hcCA9IG5ldyBNYXA8Q29yZVByb2plY3QsIENvcmVQcm9qZWN0W10+KCk7XG5cblxuICAgIGZvciAoY29uc3QgcHJvamVjdCBvZiBjb3JlUHJvamVjdHMpIHtcbiAgICAgIHByb2plY3RNYXAuc2V0KHByb2plY3QsIFtdKTtcbiAgICB9XG5cblxuICAgIGZvciAoY29uc3QgcHJvamVjdCBvZiBjb3JlUHJvamVjdHMpIHtcbiAgICAgIGlmICghcHJvamVjdE1hcC5oYXMocHJvamVjdC5leHRlbmRzKSkge1xuICAgICAgICBwcm9qZWN0TWFwLnNldChwcm9qZWN0LmV4dGVuZHMsIFtdKTtcbiAgICAgIH1cbiAgICAgIHByb2plY3RNYXAuZ2V0KHByb2plY3QuZXh0ZW5kcykhLnB1c2gocHJvamVjdCk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JkZXJlZFByb2plY3RzOiBDb3JlUHJvamVjdFtdID0gW107XG4gICAgY29uc3QgdmlzaXRlZCA9IG5ldyBTZXQ8Q29yZVByb2plY3Q+KCk7XG5cbiAgICBjb25zdCB2aXNpdCA9IChwcm9qZWN0OiBDb3JlUHJvamVjdCkgPT4ge1xuICAgICAgaWYgKCF2aXNpdGVkLmhhcyhwcm9qZWN0KSkge1xuICAgICAgICB2aXNpdGVkLmFkZChwcm9qZWN0KTtcbiAgICAgICAgY29uc3QgZGVwZW5kZW5jaWVzID0gcHJvamVjdE1hcC5nZXQocHJvamVjdCk7XG4gICAgICAgIGlmIChkZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGRlcCBvZiBkZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIHZpc2l0KGRlcCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG9yZGVyZWRQcm9qZWN0cy5wdXNoKHByb2plY3QpO1xuICAgICAgfVxuICAgIH07XG5cblxuICAgIGZvciAoY29uc3QgcHJvamVjdCBvZiBjb3JlUHJvamVjdHMpIHtcbiAgICAgIHZpc2l0KHByb2plY3QpO1xuICAgIH1cblxuICAgIHJldHVybiBvcmRlcmVkUHJvamVjdHMucmV2ZXJzZSgpO1xuICB9XG5cblxuXG5cblxuICBnZXQgY29yZSgpOiBDb3JlUHJvamVjdCB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuY2FjaGVbJ2NvcmUnXSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlWydjb3JlJ107XG4gICAgfVxuXG4gICAgbGV0IGNvcmVQcm9qZWN0cyA9IENvcmVQcm9qZWN0LmNvcmVQcm9qZWN0cy5maWx0ZXIocCA9PiBwLnJlY29nbml6ZWRGbih0aGlzIGFzIGFueSkpO1xuICAgIGNvcmVQcm9qZWN0cyA9IHRoaXMub3JkZXJDb3JlUHJvamVjdHMoY29yZVByb2plY3RzKTtcblxuXG4gICAgdGhpcy5jYWNoZVsnY29yZSddID0gXy5maXJzdChjb3JlUHJvamVjdHMpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlWydjb3JlJ107XG4gIH1cblxuXG5cbiAgYWRkTGlua2VkUHJvamVjdChsaW5rZWRQcm9qOiBMaW5rZWRQcm9qZWN0IHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbGlua2VkUHJvamVjdDogTGlua2VkUHJvamVjdCA9IF8uaXNTdHJpbmcobGlua2VkUHJvaikgPyBMaW5rZWRQcm9qZWN0LmZyb21OYW1lKGxpbmtlZFByb2opIDogbGlua2VkUHJvajtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgYWRkTGlua2VkUHJvamVjdHMobGlua2VkUHJvanM6IChMaW5rZWRQcm9qZWN0KVtdKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBzZXRMaW5rZWRQcm9qZWN0c0NvbmZpZyhsaW5rZWRQb3JqZWN0c0NvbmZpZzogUGFydGlhbDxMaW5rZWRQb3JqZWN0c0NvbmZpZz4pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBnZXQgbGlua2VkUHJvamVjdHNDb25maWdQYXRoKCkge1xuICAgIHJldHVybiB0aGlzLnBhdGhGb3IoY29uZmlnLmZpbGUubGlua2VkX3Byb2plY3RzX2pzb24pO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCByZWNyZWF0ZUxpbmtlZFByb2plY3RzQ29uZmlnKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0TGlua2VkUHJvamVjdHNDb25maWcoKTogTGlua2VkUG9yamVjdHNDb25maWcge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGxpbmtlZFByb2plY3RzKCk6IExpbmtlZFByb2plY3RbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGlua2VkUHJvamVjdHNDb25maWcoKS5wcm9qZWN0cyB8fCBbXTtcbiAgfVxuXG5cblxuICBnZXQgZGV0ZWN0ZWRMaW5rZWRQcm9qZWN0cygpOiBMaW5rZWRQcm9qZWN0W10ge1xuICAgIGNvbnN0IGRldGVjdGVkTGlua2VkUHJvamVjdHMgPSBMaW5rZWRQcm9qZWN0LmRldGVjdCh0aGlzLmxvY2F0aW9uLFxuICAgICAgdHJ1ZSAvLyBUT09EIGZpeCByZWNydXNpdmVcbiAgICApO1xuICAgIHJldHVybiBkZXRlY3RlZExpbmtlZFByb2plY3RzO1xuICB9XG5cblxuXG4gIGdldCBsaW5rZWRQcm9qZWN0c1ByZWZpeCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMaW5rZWRQcm9qZWN0c0NvbmZpZygpLnByZWZpeDtcbiAgfVxuXG5cblxuICBnZXQgbGlua2VkUHJvamVjdHNFeGlzdGVkKCk6IFBST0pDRVRbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZXNldExpbmtlZFByb2plY3RzT25seVRvQ29yZUJyYW5jaGVzKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgY2xvbmVVbmV4aXN0ZWRMaW5rZWRQcm9qZWN0cyhhY3Rpb25UeXBlOiAncHVsbCcgfCAncHVzaCcsIGNsb25lQ2hpbGRyZW4gPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHVibGljIHNldFR5cGUodHlwZTogVFlQRSkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cblxuXG4gIHB1YmxpYyB0eXBlSXMoLi4udHlwZXM6IFRZUEVbXSkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgJiYgdHlwZXMuaW5jbHVkZXModGhpcy50eXBlIGFzIGFueSk7XG4gIH1cblxuXG5cbiAgcHVibGljIHR5cGVJc05vdCguLi50eXBlczogVFlQRVtdKSB7XG4gICAgcmV0dXJuICF0aGlzLnR5cGVJcyguLi50eXBlcyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHByb2plY3QgZm9sZGVyIGJhc2VuYW1lXG4gICAqL1xuICBnZXQgYmFzZW5hbWUoKTogc3RyaW5nIHtcblxuICAgIHJldHVybiBwYXRoLmJhc2VuYW1lKHRoaXMubG9jYXRpb24pO1xuXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIG5hbWUgZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZUpTT04/Lm5hbWUgfHwgdGhpcy5uYW1lRnJvbVBvbVhNTDtcbiAgfVxuXG4gIGdldCBuYW1lRnJvbVBvbVhNTCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFydGlmYWN0SWRQYXR0ZXJuID0gLzxhcnRpZmFjdElkPihbXjxdKyk8XFwvYXJ0aWZhY3RJZD4vO1xuICAgIGNvbnN0IG1hdGNoID0gKHRoaXMucmVhZEZpbGUoJ3BvbS54bWwnKSB8fCAnJykubWF0Y2goYXJ0aWZhY3RJZFBhdHRlcm4pO1xuICAgIGlmIChtYXRjaCAmJiBtYXRjaFsxXSkge1xuICAgICAgcmV0dXJuIG1hdGNoWzFdO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb24gLT4gcHJvcGVydHkgdmVyc2lvblxuICAgKi9cbiAgZ2V0IHZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlSlNPTj8udmVyc2lvbjtcbiAgfVxuXG5cblxuICAvKipcbiAgKiBNYWpvciBWZXJzaW9uIGZyb20gcGFja2FnZS5qc29uXG4gICovXG4gIC8vIEB0cy1pZ25vcmVcbiAgZ2V0IG1ham9yVmVyc2lvbigpOiBudW1iZXIge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBNaW5vciBWZXJzaW9uIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICAvLyBAdHMtaWdub3JlXG4gIGdldCBtaW5vclZlcnNpb24oKTogbnVtYmVyIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IHZlcnNpb25QYXRoQXNOdW1iZXIoKTogbnVtYmVyIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBucG0gZGVwZW5kZW5jaWVzIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICBnZXQgZGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04uZGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwZWVyRGVwZW5kZW5jaWVzIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZ2V0IHBlZXJEZXBlbmRlbmNpZXMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OID8gdGhpcy5wYWNrYWdlSlNPTi5wZWVyRGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBkZXZEZXBlbmRlbmNpZXMgZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgZGV2RGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04uZGV2RGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiByZXNvbHV0aW9ucyBkZXBlbmRlbmNpZXNcbiAgICovXG4gIGdldCByZXNvbHV0aW9ucygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OWydyZXNvbHV0aW9ucyddIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiAgb2JqZWN0IHdpdGggYWxsIGRlcHMgZnJvbSBwYWNrYWdlIGpzb25cbiAgICovXG4gIGdldCBhbGxEZXBlbmRlbmNpZXMoKTogeyBbcGFja2FnZU5hbWU6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gXy5tZXJnZSh7XG4gICAgICAuLi50aGlzLmRldkRlcGVuZGVuY2llcyxcbiAgICAgIC4uLnRoaXMucGVlckRlcGVuZGVuY2llcyxcbiAgICAgIC4uLnRoaXMuZGVwZW5kZW5jaWVzLFxuICAgICAgLi4udGhpcy5yZXNvbHV0aW9uc1xuICAgIH0pIGFzIGFueTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgZ2V0Rm9sZGVyc0ZvclBvc3NpYmxlUHJvamVjdENoaWxkcmVuKCk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBnZXRBbGxDaGlsZHJlbigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGFsaWFzIHRvIGdldEFsbENoaWxkcmVuXG4gICAqL1xuICBnZXQgY2hpbGRyZW4oKTogUFJPSkNFVFtdIHtcblxuICAgIHJldHVybiB0aGlzLmdldEFsbENoaWxkcmVuKCk7XG5cbiAgfVxuXG5cblxuICBnZXRDaGlsZEJ5KG5hbWVPckJhc2VuYW1lOiBzdHJpbmcsIGVycm9ycyA9IHRydWUpOiBQUk9KQ0VUIHtcblxuICAgIGNvbnN0IGMgPSB0aGlzLmNoaWxkcmVuLmZpbmQoYyA9PiBjLm5hbWUgPT09IG5hbWVPckJhc2VuYW1lIHx8IGMuYmFzZW5hbWUgPT09IG5hbWVPckJhc2VuYW1lKTtcbiAgICBpZiAoZXJyb3JzICYmICFjKSB7XG4gICAgICBIZWxwZXJzLndhcm4oYFByb2plY3QgZG9lc250IGNvbnRhaW4gY2hpbGQgd2l0aCBuYW1lIG9yIGJhc2VuYW1lOiAke25hbWVPckJhc2VuYW1lfWApXG4gICAgfVxuICAgIHJldHVybiBjO1xuXG4gIH1cblxuXG5cbiAgZ2V0IHBhcmVudCgpOiBQUk9KQ0VUIHtcblxuICAgIGlmICghXy5pc1N0cmluZyh0aGlzLmxvY2F0aW9uKSB8fCB0aGlzLmxvY2F0aW9uLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlucy5Gcm9tKHBhdGguam9pbih0aGlzLmxvY2F0aW9uLCAnLi4nKSk7XG5cbiAgfVxuXG5cblxuICBnZXQgZ3JhbmRwYSgpOiBQUk9KQ0VUIHtcblxuICAgIGlmICghXy5pc1N0cmluZyh0aGlzLmxvY2F0aW9uKSB8fCB0aGlzLmxvY2F0aW9uLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIGNvbnN0IGdyYW5kcGEgPSB0aGlzLmlucy5Gcm9tKHBhdGguam9pbih0aGlzLmxvY2F0aW9uLCAnLi4nLCAnLi4nKSk7XG4gICAgcmV0dXJuIGdyYW5kcGE7XG5cbiAgfVxuXG5cblxuICBnZXQgZ2VuZXJpY05hbWUoKSB7XG5cbiAgICBsZXQgcGFyZW50ID0gdGhpcy5wYXJlbnQgYXMgYW55IGFzIEJhc2VQcm9qZWN0O1xuXG5cblxuICAgIHJldHVybiBbXG5cblxuICAgICAgcGFyZW50ID8gcGF0aC5iYXNlbmFtZShwYXRoLmRpcm5hbWUocGFyZW50LmxvY2F0aW9uKSkgOiB2b2lkIDAsXG4gICAgICBwYXJlbnQgPyBwYXJlbnQuYmFzZW5hbWUgOiBwYXRoLmJhc2VuYW1lKHRoaXMubG9jYXRpb24pLFxuICAgICAgdGhpcy5iYXNlbmFtZSxcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgXVxuICAgICAgLmZpbHRlcihmID0+ICEhZilcbiAgICAgIC5qb2luKCcvJykucmVwbGFjZSgvXFwoXFwpLywgJycpXG5cbiAgfVxuXG5cbiAgZGVsZXRlTm9kZU1vZHVsZXMoKSB7XG4gICAgdGhpcy5yZW1vdmUoY29uZmlnLmZvbGRlci5ub2RlX21vZHVsZXMpO1xuICB9XG5cbiAgcmVpbnN0YWxOb2RlTW9kdWxlcyhvcHRpb25zPzogeyB1c2VZYXJuPzogYm9vbGVhbjsgZm9yY2U/OiBib29sZWFuOyB9KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgbWFrZVN1cmVOb2RlTW9kdWxlc0luc3RhbGxlZChvcHRpb25zPzogeyBjaGVja1BhY2thZ2VzPzogYm9vbGVhbjsgdXNlWWFybj86IGJvb2xlYW47IGZvcmNlPzogYm9vbGVhbjsgfSkge1xuICAgIGlmICh0aGlzLm5vZGVNb2R1bGVzRW1wdHkoKSkge1xuICAgICAgdGhpcy5yZWluc3RhbE5vZGVNb2R1bGVzKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByZWZlcllhcm5PdmVyTnBtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG5vZGVNb2R1bGVzRW1wdHkoKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIC8qKlxuICAqIHNhbWUgaGFzIHByb2plY3QuaGFzRmlsZSgpO1xuICAqL1xuICBwYXRoRXhpc3RzKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNGaWxlKHJlbGF0aXZlUGF0aCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcHJvamVjdC5wYXRoRXhpc3RzKCk7XG4gICAqL1xuICBoYXNGaWxlKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuICBoYXNGb2xkZXIocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBzYW1lIGFzIHByb2plY3QucGF0aGhhc0ZpbGVFeGlzdHMoKTtcbiAgICogYnV0IHdpdGggcGF0aC5yZXNvbHZlXG4gICAqL1xuICBjb250YWluc0ZpbGUoZmlsZVJlbGF0aXZlVG9Qcm9qZWN0UGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLnJlc29sdmUocGF0aC5qb2luKHRoaXMubG9jYXRpb24sIGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGgpKTtcbiAgICByZXR1cm4gSGVscGVycy5leGlzdHMoZnVsbFBhdGgpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBhYnNvbHV0ZSBwYXRoOlxuICAgKiBjb25jYXRlZCBwcm9qZWN0IGxvY2F0aW9uIHdpdGggcmVsYXRpdmUgcGF0aFxuICAgKi9cbiAgcGF0aEZvcihyZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgd3JpdGVKc29uKHJlbGF0aXZlUGF0aDogc3RyaW5nLCBqc29uOiBvYmplY3QpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXMgZXhlY3V0ZSBpbnN0ZWFkXG4gICAqIHVzZSBvdXRwdXQgZnJvbSBvciBtb3JlIHByZWNpZXNlIGNyYWZ0ZWQgYXBpXG4gICAqL1xuICBydW4oY29tbWFuZDogc3RyaW5nLCBvcHRpb25zPzogT21pdDxDb3JlTW9kZWxzLlJ1bk9wdGlvbnMsICdjd2QnPikge1xuICAgIGxldCBvcHQ6IENvcmVNb2RlbHMuUnVuT3B0aW9ucztcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICByZXR1cm4gSGVscGVycy5ydW4oY29tbWFuZCwgb3B0KTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBhcyBydW4gYnV0IGFzeW5jXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBzdHJpbmcsIG9wdGlvbnM/OiBDb3JlTW9kZWxzLkV4ZWN1dGVPcHRpb25zICYgeyBzaG93Q29tbWFuZD86IGJvb2xlYW4gfSk6IFByb21pc2U8YW55PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiB0cnkgcnVuIGJ1dCBjb250aW51ZSB3aGVuIGl0IGZhaWxzXG4gICAqIEBwYXJhbSBjb21tYW5kXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICB0cnlSdW5TeW5jKGNvbW1hbmQ6IHN0cmluZ1xuLyogKi9cbi8qICovXG4gIFxuICApOiB2b2lkIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgb3V0cHV0RnJvbShjb21tYW5kOiBzdHJpbmdcbi8qICovXG4vKiAqL1xuICBcbiAgKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVtb3ZlRmlsZShmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVhZEZpbGUoZmlsZVJlbGF0aXZlVG9Qcm9qZWN0UGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlbW92ZShyZWxhdGl2ZVBhdGg6IHN0cmluZywgZXhhY3RQYXRoID0gdHJ1ZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICByZW1vdmVGb2xkZXJCeVJlbGF0aXZlUGF0aChyZWxhdGl2ZVBhdGhUb0ZvbGRlcjogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgbGlua05vZGVNb2R1bGVzVG8ocHJvajogUGFydGlhbDxCYXNlUHJvamVjdD4pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZWluc3RhbGxOb2RlTW9kdWxlcyhmb3JjZXJSZW1vdmVOb2RlTW9kdWxlcyA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgYXN5bmMgYXNzaWduRnJlZVBvcnQoc3RhcnRGcm9tOiBudW1iZXIgPSA0MjAwLCBob3dNYW55RnJlZVBvcnRzQWZ0ZXJUaGF0UG9ydDogbnVtYmVyID0gMCk6IFByb21pc2U8bnVtYmVyPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVtb3ZlSXRzZWxmKCkge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIC8qKlxuICAgKiBQdXJwb3NlOiBub3QgaW5pdGlhbGl6aW5nIGFsbCBjbGFzc2VzIGF0IHRoZSBiZWdpbm5pbmdcbiAgICogT25seSBmb3IgQmFzZUZlYXR1cmVGb3JQcm9qZWN0IGNsYXNzXG4gICAqL1xuICBkZWZpbmVQcm9wZXJ0eTxQUk9KRUNUPih2YXJpYWJsZU5hbWU6IGtleW9mIFBST0pFQ1QsIGNsYXNzRm46IEZ1bmN0aW9uLCBvcHRpb25zPzoge1xuICAgIGN1c3RvbUluc3RhbmNlUmV0dXJuPzogKCkgPT4gb2JqZWN0XG4gIH0pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBmcy5jb3B5IG9wdGlvbiBmaWx0ZXIgZnVuY3Rpb24gZm9yIGNvcHlpbmcgb25seSBzZWxlY3RlZCBmb2xkZXJzIGZyb20gcHJvamVjdFxuICAgKi9cbiAgZmlsdGVyT25seUNvcHkoYmFzZVBhdGhGb2xkZXJzT25seVRvSW5jbHVkZTogc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZnMuY29weSBvcHRpb24gZmlsdGVyIGZ1bmN0aW9uIGZvciBjb3B5aW5nIG9ubHkgbm90IHNlbGVjdGVkIGZvbGRlcnMgZnJvbSBwcm9qZWN0XG4gICAqL1xuICBmaWx0ZXJEb250Q29weShiYXNlUGF0aEZvbGRlcnNUb3NTa2lwOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnZW5lcmFsIGRlZmF1bHQgZGV2ZWxvcG1lbnQgYnJhbmNoIGZvciBhbGwga2luZHMgb2YgcHJvamVjdHNcbiAgICovXG4gIGdldERlZmF1bHREZXZlbG9wbWVudEJyYW5jaCgpIHtcbiAgICByZXR1cm4gJ2RldmVsb3AnO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBtYWluL2RlZmF1bHQgaGFyZGNvZGVkIGJyYW5jaGVzXG4gICAqL1xuICBnZXRNYWluQnJhbmNoZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ21hc3RlcicsICdkZXZlbG9wJywgJ3N0YWdlJywgJ3Byb2QnLCAndGVzdCddXG4gIH1cblxuXG5cbiAgaXNVbnNpbmdBY3Rpb25Db21taXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIGFzeW5jIHJlc2V0UHJvY2VzcyhvdmVycmlkZUJyYW5jaD86IHN0cmluZywgcmVjcnVzaXZlID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIGFzeW5jIHB1bGxQcm9jZXNzKGNsb25lQ2hpbGRyZW4gPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGFzeW5jIHB1c2hQcm9jZXNzKG9wdGlvbnM6IHtcbiAgICBmb3JjZT86IGJvb2xlYW47XG4gICAgdHlwZW9mQ29tbWl0PzogVHlwZU9mQ29tbWl0O1xuICAgIG9yaWdpbj86IHN0cmluZztcbiAgICBhcmdzPzogc3RyaW5nW107XG4gICAgZXhpdENhbGxCYWNrPzogKCkgPT4gdm9pZDtcbiAgICBmb3JjZVB1c2hOb1F1ZXN0aW9uPzogYm9vbGVhbjtcbiAgICBjb21taXRNZXNzYWdlUmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIHNraXBDaGlsZHJlbj86IGJvb2xlYW47XG4gIH0gPSB7fSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBfYmVmb3JlQW55QWN0aW9uT25HaXRSb290KCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgX2JlZm9yZVB1c2hQcm9jZXNzQWN0aW9uKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgX2JlZm9yZVB1bGxQcm9jZXNzQWN0aW9uKGNsb25lQ2hpbGRyZW4gPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgX2dldENvbW1pdE1lc3NhZ2UodHlwZW9mQ29tbWl0OiBUeXBlT2ZDb21taXQsIGFyZ3M6IHN0cmluZ1tdLCBjb21taXRNZXNzYWdlUmVxdWlyZWQ/OiBib29sZWFuKTogUHJvbWlzZTxDb21taXREYXRhPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBsaW5rVG8oZGVzdFBhY2thZ2VMb2NhdGlvbjogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cblxuICB3cml0ZUZpbGUocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHB1YmxpYyBydW5Db21tYW5kR2V0U3RyaW5nKHRoaXM6IEJhc2VQcm9qZWN0LCBjb21tYW5kOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgZ2V0IGdpdCgpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4ge1xuICAgICAgdW5zdGFnZUFsbEZpbGVzKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICByZXZlcnRGaWxlQ2hhbmdlcyhmaWxlUmVsZXRpdmVQYXRoOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgYXN5bmMgY2xvbmUodXJsOiBzdHJpbmcsIGRlc3RpbmF0aW9uRm9sZGVyTmFtZSA9ICcnLCBicmFuY2hOYW1lPzogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICByZXN0b3JlTGFzdFZlcnNpb24obG9jYWxGaWxlUGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHN0YWdlQWxsRmlsZXMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHN0YXNoKG9wdGlub3M/OiB7XG4gICAgICAgIG9ubHlTdGFnZWQ/OiBib29sZWFuO1xuICAgICAgfSkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBzdGFzaEFwcGx5KCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBmZXRjaCgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgcmVzZXRGaWxlcyguLi5yZWxhdGl2ZVBhdGhlczogc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGlzSW5zaWRlR2l0UmVwbygpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGlzR2l0Um9vdCgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IG9yaWdpblVSTCgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgY29tbWl0KGNvbW1pdE1lc3NhZ2U/OiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgLyoqXG4gICAgICAgKiBhbGlhcyB0byBzdGFnZSBhbGwgYW5kIGNvbW1pdFxuICAgICAgICovXG4gICAgICBhZGRBbmRDb21taXQoY29tbWl0TWVzc2FnZTogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHN0YWdlQWxsQW5kQ29tbWl0KGNvbW1pdE1lc3NhZ2U6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBhc3luYyBwdXNoQ3VycmVudEJyYW5jaChvcHRpb25zPzogeyBmb3JjZT86IGJvb2xlYW47IG9yaWdpbj86IHN0cmluZywgYXNrVG9SZXRyeT86IGJvb2xlYW47IGZvcmNlUHVzaE5vUXVlc3Rpb24/OiBib29sZWFuOyB9KSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCBhbGxPcmlnaW5zKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgdW5jb21taXRlZEZpbGVzKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgdGhlcmVBcmVTb21lVW5jb21taXRlZENoYW5nZSgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgdGhlcmVBcmVTb21lVW5jb21taXRlZENoYW5nZUV4Y2VwdChmaWxlc0xpc3Q6IHN0cmluZ1tdID0gW10pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgbWVsdEFjdGlvbkNvbW1pdHMoc29mdCA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbiAgXG4gICAgICB9LFxuICAgICAgYXN5bmMgcHVsbEN1cnJlbnRCcmFuY2gob3B0aW9ucz86IHtcbiAgICAgICAgYXNrVG9SZXRyeT86IGJvb2xlYW4sXG4gICAgICAgIGRlZmF1bHRIYXJkUmVzZXRDb21taXRzPzogbnVtYmVyXG4gICAgICB9KSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCBjdXJyZW50QnJhbmNoTmFtZSgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGxpc3RPZkN1cnJlbnRHaXRDaGFuZ2VzKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXRCcmFuY2hlc05hbWVzQnkocGF0dGVybjogc3RyaW5nIHwgUmVnRXhwKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHJlc2V0U29mdEhFQUQoSEVBRCA9IDEpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgcmVzZXRIYXJkKG9wdGlvbnM/OiB7XG4gICAgICAgIEhFQUQ/OiBudW1iZXJcbiAgICAgIH0pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgY291bnRDb21pdHMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGhhc0FueUNvbW1pdHMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCBpc0luTWVyZ2VQcm9jZXNzKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBsYXN0Q29tbWl0RGF0ZSgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgbGFzdENvbW1pdEhhc2goKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGxhc3RDb21taXRNZXNzYWdlKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBwZW51bHRpbWFnZUNvbW1pdEhhc2goKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGNoZWNrVGFnRXhpc3RzKHRhZzogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGNoZWNrb3V0KGJyYW5jaE5hbWU6IHN0cmluZywgb3B0aW9ucz86IHsgY3JlYXRlQnJhbmNoSWZOb3RFeGlzdHM/OiBib29sZWFuOyBmZXRjaEJlZm9yZUNoZWNrb3V0PzogYm9vbGVhbjsgc3dpdGNoQnJhbmNoV2hlbkV4aXN0cz86IGJvb2xlYW47IH0pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgY2hlY2tvdXRGcm9tVG8oY2hlY2tvdXRGcm9tQnJhbmNoOiBzdHJpbmcsIGJyYW5jaDogc3RyaW5nLCBvcmlnaW4gPSAnb3JpZ2luJykge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gbWFqb3JWZXJzaW9uIGV4YW1wbGU6IHYxLCB2MiBldGMuXG4gICAgICAgKiBAcmV0dXJucyB0YWcgbmFtZVxuICAgICAgICovXG4gICAgICBsYXN0VGFnTmFtZUZvck1ham9yVmVyc2lvbihtYWpvclZlcnNpb24pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgbGFzdFRhZ0hhc2goKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCByZW1vdGVPcmlnaW5VcmwoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCBsYXN0VGFnVmVyc2lvbk5hbWUoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCBzdGFnZWRGaWxlcygpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICogVE9ETyBkb2VzIHRoaXMgbWFrZSBhbnkgc2Vuc2VcbiAgICAgICAqL1xuICAgICAgcmVuYW1lT3JpZ2luKG5ld05hbWVPclVscjogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgIH1cbiAgfVxuXG5cblxuICB0b1N0cmluZyA9ICgpID0+IHtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfT0+JHt0aGlzLmxvY2F0aW9ufWA7XG4gIH07XG5cblxuXG4gIHByb3RlY3RlZCBjaGVja0lmTG9nZ2luSW5Ub05wbSgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IHBhcmVudHNOYW1lcygpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgb3BlbkxvY2F0aW9uKHJlbGF0aXZlRm9sZGVyUGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIHByaXZhdGUgZmluZFBhcmVudHNOYW1lcyhwcm9qZWN0PzogUFJPSkNFVCwgcGFyZW50PzogUFJPSkNFVCwgcmVzdWx0ID0gW10pOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgdHJ5S2lsbEFsbEVsZWN0cm9uSW5zdGFuY2VzKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBpbml0IHByb2plY3QgZmlsZXMgc3RydWN0dXJlIGFuZCBkZXBlZGVuY2llc1xuICAgKi9cbiAgYXN5bmMgaW5pdChpbml0T3B0aW9ucz86IGFueSkge1xuICAgIHRocm93IChuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJykpXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGdsb2JhbGx5IGxpbmsgbnBtIGFzIHBhY2thZ2VcbiAgICovXG4gIGFzeW5jIGxpbmsoKSB7XG4gICAgdGhyb3cgKG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKSlcbiAgfVxuXG5cblxuICAvKipcbiAgICogaW5pdCBwcm9qZWN0IGZpbGVzIHN0cnVjdHVyZSB3aXRob3V0IGRlcGVkZW5jaWVzXG4gICAqL1xuICBhc3luYyBzdHJ1Y3QoaW5pdE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyAobmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpKVxuICB9XG5cblxuXG4gIC8qKlxuICAqIGluaXQgYW5kIGJ1aWxkKCkgcHJvamVjdFxuICAqL1xuICBhc3luYyBidWlsZChidWlsZE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyAobmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpKVxuICB9XG5cblxuXG4gIC8qKlxuICAgKiBsaW50IHBvcmplY3RcbiAgICovXG4gIGFzeW5jIGxpbnQobGludE9wdGlvbnM/OiBhbnkpIHtcbiAgICBIZWxwZXJzLmluZm8oYFxuXG5cbiAgICBDT01NSVQgTElOVCBOT1QgSU1QTEVNRU5URURcblxuXG4gICAgYClcbiAgfVxuXG5cblxuICAvKipcbiAgICogZ2V0IGluZm8gYWJvdXQgcG9yamVjdFxuICAgKi9cbiAgYXN5bmMgaW5mbygpIHtcbiAgICBjb25zdCBwcm9qID0gdGhpcztcbiAgICBIZWxwZXJzLmluZm8oYFxuXG4gIG5hbWU6ICR7cHJvaj8ubmFtZX1cbiAgdHlwZTogJHtwcm9qPy50eXBlfVxuICBjb3JlIHByb2plY3QgbmFtZTogJyR7cHJvaj8uY29yZT8ubmFtZX0nXG4gIGVtYmVkZGVkIHByb2plY3Q6ICR7cHJvaj8uZW1iZWRkZWRQcm9qZWN0Py5nZW5lcmljTmFtZSB8fCAnPCBub25lID4nfVxuICBjaGlsZHJlbiAoJHtwcm9qPy5jaGlsZHJlbi5sZW5ndGh9KTogJHsoIXByb2ogfHwgIXByb2ouY2hpbGRyZW4ubGVuZ3RoKSA/ICc8IG5vbmUgPicgOiAnJ31cbiR7cHJvaj8uY2hpbGRyZW4ubWFwKGMgPT4gJysnICsgYy5nZW5lcmljTmFtZSkuam9pbignXFxuJyl9XG5gK1xuICAgICAgYFxubGlua2VkIHBvcmplY3QgcHJlZml4OiBcIiR7dGhpcy5saW5rZWRQcm9qZWN0c1ByZWZpeH1cIlxuXG5saW5rZWQgcHJvamVjdHMgZnJvbSBqc29uICgke3RoaXMubGlua2VkUHJvamVjdHM/Lmxlbmd0aCB8fCAwfSk6XG4keyh0aGlzLmxpbmtlZFByb2plY3RzIHx8IFtdKS5tYXAoYyA9PiAnLSAnICsgYy5yZWxhdGl2ZUNsb25lUGF0aCkuam9pbignXFxuJyl9XG5cbiAgYCk7XG5cblxuXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQgbm8gdHJhbnNsYXRpb24gb2YgY29tbWl0XG4gICAqL1xuICB0cmFuc2FsdGVHaXRDb21taXRGcm9tQXJncygpIHtcbiAgICByZXR1cm4geyBmcm9tOiB2b2lkIDAgYXMgc3RyaW5nLCB0bzogdm9pZCAwIGFzIHN0cmluZyB9XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEJ5IGRlZnVsdCB0cnVlLi4gd2hlbiBjb21taXQgYnJhbmNoZXMgd2lsbCBub3QgZnVuY3Rpb24uXG4gICAqIChmYWxzZSBpcyBiZXR0ZXIgZm9yIHNpbXBsZSBwcm9qZWN0cylcbiAgICovXG4gIHVzZUdpdEJyYW5jaGVzV2hlbkNvbW1pdGluZ0FuZFB1c2hpbmcoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHVzZWZ1bGwgd2hlbiBwdXNoaW5nIGluIHByb2plY3Qgd2l0aCBjaGlsZHJlbnMgYXMgZ2l0IHJlcG9zXG4gICAqL1xuICBhdXRvbWF0aWNhbGx5QWRkQWxsQ2huYWdlc1doZW5QdXNoaW5nVG9HaXQoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiB1c2VmdWxsIHdoZW4gcHVzaGluZyBpbiBwcm9qZWN0IHdpdGggY2hpbGRyZW5zIGFzIGdpdCByZXBvc1xuICAgKi9cbiAgdXNlR2l0QnJhbmNoZXNBc01ldGFkYXRhRm9yQ29tbWl0cygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYW5ndWxhciBsaWJyYXJpZXMgZnJvbSBhbmd1bGFyLmpzb25cbiAgICovXG4gIGdldCBsaWJyYXJpZXMoKTogUFJPSkNFVFtdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IHNvcnRlZExpYnJhcmllc0J5RGVwcygpOiBQUk9KQ0VUW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBhc3luYyBnZXRTb3J0ZWRMaWJyYXJpZXNCeURlcHNGb3JCdWlsZChsaWJzOiBQUk9KQ0VUW10sIGRvbnRTdWdlc3RCdWlsZEFsbCA9IGZhbHNlKTogUHJvbWlzZTxQUk9KQ0VUW10+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGdldExpYnJhcnlCdWlsZFN1Y2Nlc3NDb21hbW5kKCk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgYXN5bmMgYnVpbGRMaWJyYXJpZXMoe1xuICAgIHJlYnVpbGQgPSBmYWxzZSxcbiAgICB3YXRjaCA9IGZhbHNlLFxuICAgIHN0cmF0ZWd5LFxuICAgIG9ubHlTZWxlY3RlZExpYnNcbiAgfToge1xuICAgIHJlYnVpbGQ/OiBib29sZWFuOyB3YXRjaD86IGJvb2xlYW47XG4gICAgc3RyYXRlZ3k/OiAnbGluaycgfCAnY29weScsXG4gICAgb25seVNlbGVjdGVkTGlicz86IHN0cmluZ1tdXG4gIH0gPSB7fVxuICApIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIGdldExpYnJhcnlCdWlsZENvbWFtbmQob3B0aW9ucz86IHsgd2F0Y2g6IGJvb2xlYW4gfSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHN0YXJ0TnBtVGFzayh0YXNrTmFtZTogc3RyaW5nLCBhZGRpdGlvbmFsQXJndW1lbnRzPzogc3RyaW5nIHwgb2JqZWN0KSB7XG4gICAgaWYgKF8uaXNPYmplY3QoYWRkaXRpb25hbEFyZ3VtZW50cykpIHtcbiAgICAgIGFkZGl0aW9uYWxBcmd1bWVudHMgPSBPYmplY3Qua2V5cyhhZGRpdGlvbmFsQXJndW1lbnRzKS5tYXAoayA9PiBgLS0ke2t9ICR7YWRkaXRpb25hbEFyZ3VtZW50c1trXX1gKS5qb2luKCcgJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJ1bihgbnBtIHJ1biAke3Rhc2tOYW1lfSAke2FkZGl0aW9uYWxBcmd1bWVudHMgPyAoJyAtLSAnICsgYWRkaXRpb25hbEFyZ3VtZW50cykgOiAnJ31gLCB7IG91dHB1dDogdHJ1ZSB9KTtcbiAgfVxuXG5cblxufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9iYXNlLXByb2plY3QudHMiXX0=
1603
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9iYXNlLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFjLFdBQVcsRUFBRSxPQUFPLEVBQXdCLGFBQWEsRUFBZ0IsTUFBTSxVQUFVLENBQUM7QUFDL0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBR3RCLE1BQXNCLFdBQVc7YUFJeEIsUUFBRyxHQUFHLElBQUksbUJBQW1CLENBQWMsV0FBVyxDQUFDLEFBQXBELENBQXFEO0lBSXhELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBc0MsUUFBYSxFQUFFLGVBQXNDLEVBQUUsaUJBQXNDO1FBRWpLLE1BQU0sT0FBTyxHQUErQixFQUFFLENBQUM7UUFDL0MsTUFBTSxLQUFLLEdBQStCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7UUFFdkIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFVLEVBQUUsRUFBRTtZQUMzQixJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO2dCQUVyQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1EQUFtRCxpQkFBaUIsQ0FBQyxPQUFP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Q0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxLQUFLLENBQUMsV0FBVyxDQUFDLFVBU2QsRUFBRTtRQUNSLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztR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S0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFJRCxzQkFBc0IsQ0FBQyxPQUE0QjtRQUNyRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsWUFBWSxDQUFDLFFBQWdCLEVBQUUsbUJBQXFDO1FBQ2xFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQ25DLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQy9HO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsUUFBUSxJQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hILENBQUM7O1NBcjhEbUIsV0FBVztBQTQ4RGhDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgQ29yZU1vZGVscyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBDTEkgfSBmcm9tICd0bnAtY2xpL3dlYnNxbCc7XG5pbXBvcnQgeyBwYXRoLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICd0bnAtY29uZmlnL3dlYnNxbCc7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IENvbW1pdERhdGEsIENvcmVQcm9qZWN0LCBIZWxwZXJzLCBMaW5rZWRQb3JqZWN0c0NvbmZpZywgTGlua2VkUHJvamVjdCwgVHlwZU9mQ29tbWl0IH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgQmFzZVByb2plY3RSZXNvbHZlciB9IGZyb20gJy4vYmFzZS1wcm9qZWN0LXJlc29sdmVyJztcbmltcG9ydCB7IEJhc2VQcm9qZWN0VHlwZSwgTmdQcm9qZWN0IH0gZnJvbSAnLi4vbW9kZWxzJztcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuY29uc3QgdGFrZW5Qb3J0cyA9IFtdO1xuXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUHJvamVjdDxQUk9KQ0VUIGV4dGVuZHMgQmFzZVByb2plY3QgPSBhbnksIFRZUEUgPSBCYXNlUHJvamVjdFR5cGU+IHtcblxuXG5cbiAgc3RhdGljIGlucyA9IG5ldyBCYXNlUHJvamVjdFJlc29sdmVyPEJhc2VQcm9qZWN0PihCYXNlUHJvamVjdCk7XG5cblxuXG4gIHB1YmxpYyBzdGF0aWMgc29ydEdyb3VwT2ZQcm9qZWN0PFQgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IEJhc2VQcm9qZWN0Pihwcm9qZWN0czogVFtdLCByZXNvdmVEZXBzQXJyYXk6IChwcm9qOiBUKSA9PiBzdHJpbmdbXSwgcHJvak5hbWVUb0NvbXBhcmU6IChwcm9qOiBUKSA9PiBzdHJpbmcpOiBUW10ge1xuXG4gICAgY29uc3QgdmlzaXRlZDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb25zdCBzdGFjazogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb25zdCByZXN1bHQ6IFRbXSA9IFtdO1xuXG4gICAgY29uc3QgdmlzaXQgPSAocHJvamVjdDogVCkgPT4ge1xuICAgICAgaWYgKHN0YWNrW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSkge1xuXG4gICAgICAgIEhlbHBlcnMuZXJyb3IoYENpcmN1bGFyIGRlcGVuZGVuY3kgZGV0ZWN0ZWQgaW52b2x2aW5nIHByb2plY3Q6ICR7cHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCl9YCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdmlzaXRlZFtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0pIHtcbiAgICAgICAgdmlzaXRlZFtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSB0cnVlO1xuICAgICAgICBzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGRlcHNSZXNvbHZlZCA9IHJlc292ZURlcHNBcnJheShwcm9qZWN0KTtcbiAgICAgICAgZGVwc1Jlc29sdmVkLmZvckVhY2goZGVwZW5kZW5jeSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW50UHJvamVjdCA9IHByb2plY3RzLmZpbmQocCA9PiB7XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9qTmFtZVRvQ29tcGFyZShwKSA9PT0gZGVwZW5kZW5jeTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoZGVwZW5kZW50UHJvamVjdCkge1xuICAgICAgICAgICAgdmlzaXQoZGVwZW5kZW50UHJvamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSBmYWxzZTtcbiAgICAgICAgcmVzdWx0LnB1c2gocHJvamVjdCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHByb2plY3RzLmZvckVhY2gocHJvamVjdCA9PiB2aXNpdChwcm9qZWN0KSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcblxuICB9XG5cblxuICBnZXQgZW1iZWRkZWRQcm9qZWN0KCk6IFBST0pDRVQge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gJ2VtYmVkZGVkUHJvamVjdCcgKyBfLmtlYmFiQ2FzZSh0aGlzLmxvY2F0aW9uKTtcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQodGhpcy5nbG9iYWxDYWNoZVtjYWNoZUtleV0pKSB7XG4gICAgICByZXR1cm4gdGhpcy5nbG9iYWxDYWNoZVtjYWNoZUtleV07XG4gICAgfVxuXG4gICAgY29uc3QgbmVhcnNldFByb2ogPSB0aGlzLmlucy5uZWFyZXN0VG8oY3Jvc3NQbGF0Zm9ybVBhdGgoW3RoaXMubG9jYXRpb24sICcuLiddKSk7XG4gICAgY29uc3QgbGlua2VkUG9yaiA9IG5lYXJzZXRQcm9qLmxpbmtlZFByb2plY3RzLmZpbmQobCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5sb2NhdGlvbiA9PT0gY3Jvc3NQbGF0Zm9ybVBhdGgoW25lYXJzZXRQcm9qLmxvY2F0aW9uLCBsLnJlbGF0aXZlQ2xvbmVQYXRoXSk7XG4gICAgfSk7XG4gICAgaWYgKCFsaW5rZWRQb3JqIHx8ICFsaW5rZWRQb3JqLmludGVybmFsUmVhbHRpdmVQcm9qZWN0UGF0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYXRoVG9FbWJlZGVkUHJvaiA9IGNyb3NzUGxhdGZvcm1QYXRoKFtuZWFyc2V0UHJvai5sb2NhdGlvbiwgbGlua2VkUG9yai5yZWxhdGl2ZUNsb25lUGF0aCwgbGlua2VkUG9yai5pbnRlcm5hbFJlYWx0aXZlUHJvamVjdFBhdGggfHwgJyddKTtcbiAgICBjb25zdCBlbWJkZWRyZXN1bHQgPSB0aGlzLmlucy5Gcm9tKHBhdGhUb0VtYmVkZWRQcm9qKTtcblxuICAgIHRoaXMuZ2xvYmFsQ2FjaGVbY2FjaGVLZXldID0gZW1iZGVkcmVzdWx0O1xuICAgIHJldHVybiB0aGlzLmdsb2JhbENhY2hlW2NhY2hlS2V5XTtcbiAgfVxuXG4gIGdldCBwcm9qZWN0c0RiTG9jYXRpb24oKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIGFzeW5jIHNhdmVMb2NhdGlvblRvREIoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cblxuXG4gIHB1YmxpYyBjYWNoZTogYW55ID0ge307XG4gIHB1YmxpYyBzdGF0aWMgY2FjaGU6IGFueSA9IHt9O1xuICBwdWJsaWMgZ2V0IGdsb2JhbENhY2hlKCkge1xuICAgIHJldHVybiBCYXNlUHJvamVjdC5jYWNoZTtcbiAgfVxuICByZWFkb25seSB0eXBlOiBUWVBFIHwgc3RyaW5nID0gJ3Vua25vdyc7XG4gIHByb3RlY3RlZCByZWFkb25seSBwYWNrYWdlSlNPTjogYW55O1xuXG4gIC8qKlxuICAgKiByZXNvbHZlIGluc3RhbmNlXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBpbnM6IEJhc2VQcm9qZWN0UmVzb2x2ZXI8UFJPSkNFVD47XG4gIC8qKlxuICAgKiBVbmlxdWUgZnJlZSBwb3J0IGZvciBwcm9qZWN0IGluc3RhbmNlXG4gICAqIG9ubHkgYXZhaWxhYmxlIGFmdGVyIGV4ZWN1dGluZyAqdGhpcy5hc3NpZ25GcmVlUG9ydCgpKlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogc3RyaW5nO1xuXG5cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIGRvZXNuJ3QgbmVlZCB0byBiZSByZWFsIHBhdGggLT4gY2FuIGJlIGxpbmtcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZyxcbiAgKSB7XG5cbiAgfVxuXG5cblxuICBhc3luYyBzYXZlQWxsTGlua2VkUHJvamVjdHNUb0RCKCkge1xuICAgIGNvbnN0IHByb2ogPSB0aGlzO1xuICAgIGF3YWl0IHByb2ouc2F2ZUxvY2F0aW9uVG9EQigpO1xuICAgIGZvciAoY29uc3QgbGluayBvZiBwcm9qLmxpbmtlZFByb2plY3RzKSB7XG4gICAgICBjb25zdCBsaW5rZWRQb3JqID0gdGhpcy5pbnMuRnJvbShbcHJvai5sb2NhdGlvbiwgbGluay5yZWxhdGl2ZUNsb25lUGF0aCwgbGluay5pbnRlcm5hbFJlYWx0aXZlUHJvamVjdFBhdGggfHwgJyddKTtcblxuICAgICAgaWYgKGxpbmtlZFBvcmopIHtcbiAgICAgICAgYXdhaXQgbGlua2VkUG9yai5zYXZlTG9jYXRpb25Ub0RCKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBIZWxwZXJzLndhcm4oYEZvbGRlciAke2xpbmsucmVsYXRpdmVDbG9uZVBhdGh9IGlzIG1pc3NpbmcgcHJvamVjdHMuLi5gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG5cbiAgZ2V0IGlzTW9ub3JlcG8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBvcmRlckNvcmVQcm9qZWN0cyhjb3JlUHJvamVjdHM6IENvcmVQcm9qZWN0W10pOiBDb3JlUHJvamVjdFtdIHtcbiAgICBjb25zdCBwcm9qZWN0TWFwID0gbmV3IE1hcDxDb3JlUHJvamVjdCwgQ29yZVByb2plY3RbXT4oKTtcblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgcHJvamVjdE1hcC5zZXQocHJvamVjdCwgW10pO1xuICAgIH1cblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgaWYgKCFwcm9qZWN0TWFwLmhhcyhwcm9qZWN0LmV4dGVuZHMpKSB7XG4gICAgICAgIHByb2plY3RNYXAuc2V0KHByb2plY3QuZXh0ZW5kcywgW10pO1xuICAgICAgfVxuICAgICAgcHJvamVjdE1hcC5nZXQocHJvamVjdC5leHRlbmRzKSEucHVzaChwcm9qZWN0KTtcbiAgICB9XG5cbiAgICBjb25zdCBvcmRlcmVkUHJvamVjdHM6IENvcmVQcm9qZWN0W10gPSBbXTtcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxDb3JlUHJvamVjdD4oKTtcblxuICAgIGNvbnN0IHZpc2l0ID0gKHByb2plY3Q6IENvcmVQcm9qZWN0KSA9PiB7XG4gICAgICBpZiAoIXZpc2l0ZWQuaGFzKHByb2plY3QpKSB7XG4gICAgICAgIHZpc2l0ZWQuYWRkKHByb2plY3QpO1xuICAgICAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBwcm9qZWN0TWFwLmdldChwcm9qZWN0KTtcbiAgICAgICAgaWYgKGRlcGVuZGVuY2llcykge1xuICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgdmlzaXQoZGVwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb3JkZXJlZFByb2plY3RzLnB1c2gocHJvamVjdCk7XG4gICAgICB9XG4gICAgfTtcblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgdmlzaXQocHJvamVjdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyZWRQcm9qZWN0cy5yZXZlcnNlKCk7XG4gIH1cblxuXG5cblxuXG4gIGdldCBjb3JlKCk6IENvcmVQcm9qZWN0IHtcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQodGhpcy5jYWNoZVsnY29yZSddKSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FjaGVbJ2NvcmUnXTtcbiAgICB9XG5cbiAgICBsZXQgY29yZVByb2plY3RzID0gQ29yZVByb2plY3QuY29yZVByb2plY3RzLmZpbHRlcihwID0+IHAucmVjb2duaXplZEZuKHRoaXMgYXMgYW55KSk7XG4gICAgY29yZVByb2plY3RzID0gdGhpcy5vcmRlckNvcmVQcm9qZWN0cyhjb3JlUHJvamVjdHMpO1xuXG5cbiAgICB0aGlzLmNhY2hlWydjb3JlJ10gPSBfLmZpcnN0KGNvcmVQcm9qZWN0cyk7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVbJ2NvcmUnXTtcbiAgfVxuXG5cblxuICBhZGRMaW5rZWRQcm9qZWN0KGxpbmtlZFByb2o6IExpbmtlZFByb2plY3QgfCBzdHJpbmcpIHtcbiAgICBjb25zdCBsaW5rZWRQcm9qZWN0OiBMaW5rZWRQcm9qZWN0ID0gXy5pc1N0cmluZyhsaW5rZWRQcm9qKSA/IExpbmtlZFByb2plY3QuZnJvbU5hbWUobGlua2VkUHJvaikgOiBsaW5rZWRQcm9qO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBhZGRMaW5rZWRQcm9qZWN0cyhsaW5rZWRQcm9qczogKExpbmtlZFByb2plY3QpW10pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHNldExpbmtlZFByb2plY3RzQ29uZmlnKGxpbmtlZFBvcmplY3RzQ29uZmlnOiBQYXJ0aWFsPExpbmtlZFBvcmplY3RzQ29uZmlnPikge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcml2YXRlIGdldCBsaW5rZWRQcm9qZWN0c0NvbmZpZ1BhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aEZvcihjb25maWcuZmlsZS5saW5rZWRfcHJvamVjdHNfanNvbik7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIHJlY3JlYXRlTGlua2VkUHJvamVjdHNDb25maWcoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXRMaW5rZWRQcm9qZWN0c0NvbmZpZygpOiBMaW5rZWRQb3JqZWN0c0NvbmZpZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgbGlua2VkUHJvamVjdHMoKTogTGlua2VkUHJvamVjdFtdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMaW5rZWRQcm9qZWN0c0NvbmZpZygpLnByb2plY3RzIHx8IFtdO1xuICB9XG5cblxuXG4gIGdldCBkZXRlY3RlZExpbmtlZFByb2plY3RzKCk6IExpbmtlZFByb2plY3RbXSB7XG4gICAgY29uc3QgZGV0ZWN0ZWRMaW5rZWRQcm9qZWN0cyA9IExpbmtlZFByb2plY3QuZGV0ZWN0KHRoaXMubG9jYXRpb24sXG4gICAgICB0cnVlIC8vIFRPT0QgZml4IHJlY3J1c2l2ZVxuICAgICk7XG4gICAgcmV0dXJuIGRldGVjdGVkTGlua2VkUHJvamVjdHM7XG4gIH1cblxuXG5cbiAgZ2V0IGxpbmtlZFByb2plY3RzUHJlZml4KCkge1xuICAgIHJldHVybiB0aGlzLmdldExpbmtlZFByb2plY3RzQ29uZmlnKCkucHJlZml4O1xuICB9XG5cblxuXG4gIGdldCBsaW5rZWRQcm9qZWN0c0V4aXN0ZWQoKTogUFJPSkNFVFtdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlc2V0TGlua2VkUHJvamVjdHNPbmx5VG9Db3JlQnJhbmNoZXMoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBhc3luYyBjbG9uZVVuZXhpc3RlZExpbmtlZFByb2plY3RzKGFjdGlvblR5cGU6ICdwdWxsJyB8ICdwdXNoJywgY2xvbmVDaGlsZHJlbiA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgc2V0VHlwZSh0eXBlOiBUWVBFKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuXG5cbiAgcHVibGljIHR5cGVJcyguLi50eXBlczogVFlQRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSAmJiB0eXBlcy5pbmNsdWRlcyh0aGlzLnR5cGUgYXMgYW55KTtcbiAgfVxuXG5cblxuICBwdWJsaWMgdHlwZUlzTm90KC4uLnR5cGVzOiBUWVBFW10pIHtcbiAgICByZXR1cm4gIXRoaXMudHlwZUlzKC4uLnR5cGVzKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcHJvamVjdCBmb2xkZXIgYmFzZW5hbWVcbiAgICovXG4gIGdldCBiYXNlbmFtZSgpOiBzdHJpbmcge1xuXG4gICAgcmV0dXJuIHBhdGguYmFzZW5hbWUodGhpcy5sb2NhdGlvbik7XG5cbiAgfVxuXG5cblxuICAvKipcbiAgICogbmFtZSBmcm9tIHBhY2thZ2UuanNvblxuICAgKi9cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlSlNPTj8ubmFtZSB8fCB0aGlzLm5hbWVGcm9tUG9tWE1MO1xuICB9XG5cbiAgZ2V0IG5hbWVGcm9tUG9tWE1MKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYXJ0aWZhY3RJZFBhdHRlcm4gPSAvPGFydGlmYWN0SWQ+KFtePF0rKTxcXC9hcnRpZmFjdElkPi87XG4gICAgY29uc3QgbWF0Y2ggPSAodGhpcy5yZWFkRmlsZSgncG9tLnhtbCcpIHx8ICcnKS5tYXRjaChhcnRpZmFjdElkUGF0dGVybik7XG4gICAgaWYgKG1hdGNoICYmIG1hdGNoWzFdKSB7XG4gICAgICByZXR1cm4gbWF0Y2hbMV07XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG5cblxuICAvKipcbiAgICogdmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvbiAtPiBwcm9wZXJ0eSB2ZXJzaW9uXG4gICAqL1xuICBnZXQgdmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhY2thZ2VKU09OPy52ZXJzaW9uO1xuICB9XG5cblxuXG4gIC8qKlxuICAqIE1ham9yIFZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb25cbiAgKi9cbiAgLy8gQHRzLWlnbm9yZVxuICBnZXQgbWFqb3JWZXJzaW9uKCk6IG51bWJlciB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIE1pbm9yIFZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIC8vIEB0cy1pZ25vcmVcbiAgZ2V0IG1pbm9yVmVyc2lvbigpOiBudW1iZXIge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgdmVyc2lvblBhdGhBc051bWJlcigpOiBudW1iZXIge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIG5wbSBkZXBlbmRlbmNpZXMgZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIGdldCBkZXBlbmRlbmNpZXMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OID8gdGhpcy5wYWNrYWdlSlNPTi5kZXBlbmRlbmNpZXMgOiB7fSkgfHwge307XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHBlZXJEZXBlbmRlbmNpZXMgZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgcGVlckRlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OLnBlZXJEZXBlbmRlbmNpZXMgOiB7fSkgfHwge307XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGRldkRlcGVuZGVuY2llcyBkZXBlbmRlbmNpZXNcbiAgICovXG4gIGdldCBkZXZEZXBlbmRlbmNpZXMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OID8gdGhpcy5wYWNrYWdlSlNPTi5kZXZEZXBlbmRlbmNpZXMgOiB7fSkgfHwge307XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHJlc29sdXRpb25zIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZ2V0IHJlc29sdXRpb25zKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT05bJ3Jlc29sdXRpb25zJ10gOiB7fSkgfHwge307XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqICBvYmplY3Qgd2l0aCBhbGwgZGVwcyBmcm9tIHBhY2thZ2UganNvblxuICAgKi9cbiAgZ2V0IGFsbERlcGVuZGVuY2llcygpOiB7IFtwYWNrYWdlTmFtZTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiBfLm1lcmdlKHtcbiAgICAgIC4uLnRoaXMuZGV2RGVwZW5kZW5jaWVzLFxuICAgICAgLi4udGhpcy5wZWVyRGVwZW5kZW5jaWVzLFxuICAgICAgLi4udGhpcy5kZXBlbmRlbmNpZXMsXG4gICAgICAuLi50aGlzLnJlc29sdXRpb25zXG4gICAgfSkgYXMgYW55O1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBnZXRGb2xkZXJzRm9yUG9zc2libGVQcm9qZWN0Q2hpbGRyZW4oKTogc3RyaW5nW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGdldEFsbENoaWxkcmVuKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYWxpYXMgdG8gZ2V0QWxsQ2hpbGRyZW5cbiAgICovXG4gIGdldCBjaGlsZHJlbigpOiBQUk9KQ0VUW10ge1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsQ2hpbGRyZW4oKTtcblxuICB9XG5cblxuXG4gIGdldENoaWxkQnkobmFtZU9yQmFzZW5hbWU6IHN0cmluZywgZXJyb3JzID0gdHJ1ZSk6IFBST0pDRVQge1xuXG4gICAgY29uc3QgYyA9IHRoaXMuY2hpbGRyZW4uZmluZChjID0+IGMubmFtZSA9PT0gbmFtZU9yQmFzZW5hbWUgfHwgYy5iYXNlbmFtZSA9PT0gbmFtZU9yQmFzZW5hbWUpO1xuICAgIGlmIChlcnJvcnMgJiYgIWMpIHtcbiAgICAgIEhlbHBlcnMud2FybihgUHJvamVjdCBkb2VzbnQgY29udGFpbiBjaGlsZCB3aXRoIG5hbWUgb3IgYmFzZW5hbWU6ICR7bmFtZU9yQmFzZW5hbWV9YClcbiAgICB9XG4gICAgcmV0dXJuIGM7XG5cbiAgfVxuXG5cblxuICBnZXQgcGFyZW50KCk6IFBST0pDRVQge1xuXG4gICAgaWYgKCFfLmlzU3RyaW5nKHRoaXMubG9jYXRpb24pIHx8IHRoaXMubG9jYXRpb24udHJpbSgpID09PSAnJykge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW5zLkZyb20ocGF0aC5qb2luKHRoaXMubG9jYXRpb24sICcuLicpKTtcblxuICB9XG5cblxuXG4gIGdldCBncmFuZHBhKCk6IFBST0pDRVQge1xuXG4gICAgaWYgKCFfLmlzU3RyaW5nKHRoaXMubG9jYXRpb24pIHx8IHRoaXMubG9jYXRpb24udHJpbSgpID09PSAnJykge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgY29uc3QgZ3JhbmRwYSA9IHRoaXMuaW5zLkZyb20ocGF0aC5qb2luKHRoaXMubG9jYXRpb24sICcuLicsICcuLicpKTtcbiAgICByZXR1cm4gZ3JhbmRwYTtcblxuICB9XG5cblxuXG4gIGdldCBnZW5lcmljTmFtZSgpIHtcblxuICAgIGxldCBwYXJlbnQgPSB0aGlzLnBhcmVudCBhcyBhbnkgYXMgQmFzZVByb2plY3Q7XG5cblxuXG4gICAgcmV0dXJuIFtcblxuXG4gICAgICBwYXJlbnQgPyBwYXRoLmJhc2VuYW1lKHBhdGguZGlybmFtZShwYXJlbnQubG9jYXRpb24pKSA6IHZvaWQgMCxcbiAgICAgIHBhcmVudCA/IHBhcmVudC5iYXNlbmFtZSA6IHBhdGguYmFzZW5hbWUodGhpcy5sb2NhdGlvbiksXG4gICAgICB0aGlzLmJhc2VuYW1lLFxuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICBdXG4gICAgICAuZmlsdGVyKGYgPT4gISFmKVxuICAgICAgLmpvaW4oJy8nKS5yZXBsYWNlKC9cXChcXCkvLCAnJylcblxuICB9XG5cblxuICBkZWxldGVOb2RlTW9kdWxlcygpIHtcbiAgICB0aGlzLnJlbW92ZShjb25maWcuZm9sZGVyLm5vZGVfbW9kdWxlcyk7XG4gIH1cblxuICByZWluc3RhbE5vZGVNb2R1bGVzKG9wdGlvbnM/OiB7IHVzZVlhcm4/OiBib29sZWFuOyBmb3JjZT86IGJvb2xlYW47IH0pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBtYWtlU3VyZU5vZGVNb2R1bGVzSW5zdGFsbGVkKG9wdGlvbnM/OiB7IGNoZWNrUGFja2FnZXM/OiBib29sZWFuOyB1c2VZYXJuPzogYm9vbGVhbjsgZm9yY2U/OiBib29sZWFuOyB9KSB7XG4gICAgaWYgKHRoaXMubm9kZU1vZHVsZXNFbXB0eSgpKSB7XG4gICAgICB0aGlzLnJlaW5zdGFsTm9kZU1vZHVsZXMob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHJlZmVyWWFybk92ZXJOcG0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbm9kZU1vZHVsZXNFbXB0eSgpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgLyoqXG4gICogc2FtZSBoYXMgcHJvamVjdC5oYXNGaWxlKCk7XG4gICovXG4gIHBhdGhFeGlzdHMocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0ZpbGUocmVsYXRpdmVQYXRoKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBhcyBwcm9qZWN0LnBhdGhFeGlzdHMoKTtcbiAgICovXG4gIGhhc0ZpbGUocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG4gIGhhc0ZvbGRlcihyZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcHJvamVjdC5wYXRoaGFzRmlsZUV4aXN0cygpO1xuICAgKiBidXQgd2l0aCBwYXRoLnJlc29sdmVcbiAgICovXG4gIGNvbnRhaW5zRmlsZShmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZShwYXRoLmpvaW4odGhpcy5sb2NhdGlvbiwgZmlsZVJlbGF0aXZlVG9Qcm9qZWN0UGF0aCkpO1xuICAgIHJldHVybiBIZWxwZXJzLmV4aXN0cyhmdWxsUGF0aCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGFic29sdXRlIHBhdGg6XG4gICAqIGNvbmNhdGVkIHByb2plY3QgbG9jYXRpb24gd2l0aCByZWxhdGl2ZSBwYXRoXG4gICAqL1xuICBwYXRoRm9yKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICB3cml0ZUpzb24ocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGpzb246IG9iamVjdCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1cyBleGVjdXRlIGluc3RlYWRcbiAgICogdXNlIG91dHB1dCBmcm9tIG9yIG1vcmUgcHJlY2llc2UgY3JhZnRlZCBhcGlcbiAgICovXG4gIHJ1bihjb21tYW5kOiBzdHJpbmcsIG9wdGlvbnM/OiBPbWl0PENvcmVNb2RlbHMuUnVuT3B0aW9ucywgJ2N3ZCc+KSB7XG4gICAgbGV0IG9wdDogQ29yZU1vZGVscy5SdW5PcHRpb25zO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgIHJldHVybiBIZWxwZXJzLnJ1bihjb21tYW5kLCBvcHQpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBzYW1lIGFzIHJ1biBidXQgYXN5bmNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBleGVjdXRlKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9ucz86IENvcmVNb2RlbHMuRXhlY3V0ZU9wdGlvbnMgJiB7IHNob3dDb21tYW5kPzogYm9vbGVhbiB9KTogUHJvbWlzZTxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHRyeSBydW4gYnV0IGNvbnRpbnVlIHdoZW4gaXQgZmFpbHNcbiAgICogQHBhcmFtIGNvbW1hbmRcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHRyeVJ1blN5bmMoY29tbWFuZDogc3RyaW5nXG4vKiAqL1xuLyogKi9cbiAgXG4gICk6IHZvaWQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBvdXRwdXRGcm9tKGNvbW1hbmQ6IHN0cmluZ1xuLyogKi9cbi8qICovXG4gIFxuICApIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZW1vdmVGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZWFkRmlsZShmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVtb3ZlKHJlbGF0aXZlUGF0aDogc3RyaW5nLCBleGFjdFBhdGggPSB0cnVlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHJlbW92ZUZvbGRlckJ5UmVsYXRpdmVQYXRoKHJlbGF0aXZlUGF0aFRvRm9sZGVyOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBsaW5rTm9kZU1vZHVsZXNUbyhwcm9qOiBQYXJ0aWFsPEJhc2VQcm9qZWN0Pikge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlaW5zdGFsbE5vZGVNb2R1bGVzKGZvcmNlclJlbW92ZU5vZGVNb2R1bGVzID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBhc3luYyBhc3NpZ25GcmVlUG9ydChzdGFydEZyb206IG51bWJlciA9IDQyMDAsIGhvd01hbnlGcmVlUG9ydHNBZnRlclRoYXRQb3J0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxudW1iZXI+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZW1vdmVJdHNlbGYoKSB7XG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIFB1cnBvc2U6IG5vdCBpbml0aWFsaXppbmcgYWxsIGNsYXNzZXMgYXQgdGhlIGJlZ2lubmluZ1xuICAgKiBPbmx5IGZvciBCYXNlRmVhdHVyZUZvclByb2plY3QgY2xhc3NcbiAgICovXG4gIGRlZmluZVByb3BlcnR5PFBST0pFQ1Q+KHZhcmlhYmxlTmFtZToga2V5b2YgUFJPSkVDVCwgY2xhc3NGbjogRnVuY3Rpb24sIG9wdGlvbnM/OiB7XG4gICAgY3VzdG9tSW5zdGFuY2VSZXR1cm4/OiAoKSA9PiBvYmplY3RcbiAgfSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGZzLmNvcHkgb3B0aW9uIGZpbHRlciBmdW5jdGlvbiBmb3IgY29weWluZyBvbmx5IHNlbGVjdGVkIGZvbGRlcnMgZnJvbSBwcm9qZWN0XG4gICAqL1xuICBmaWx0ZXJPbmx5Q29weShiYXNlUGF0aEZvbGRlcnNPbmx5VG9JbmNsdWRlOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBmcy5jb3B5IG9wdGlvbiBmaWx0ZXIgZnVuY3Rpb24gZm9yIGNvcHlpbmcgb25seSBub3Qgc2VsZWN0ZWQgZm9sZGVycyBmcm9tIHByb2plY3RcbiAgICovXG4gIGZpbHRlckRvbnRDb3B5KGJhc2VQYXRoRm9sZGVyc1Rvc1NraXA6IHN0cmluZ1tdKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGdlbmVyYWwgZGVmYXVsdCBkZXZlbG9wbWVudCBicmFuY2ggZm9yIGFsbCBraW5kcyBvZiBwcm9qZWN0c1xuICAgKi9cbiAgZ2V0RGVmYXVsdERldmVsb3BtZW50QnJhbmNoKCkge1xuICAgIHJldHVybiAnZGV2ZWxvcCc7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIG1haW4vZGVmYXVsdCBoYXJkY29kZWQgYnJhbmNoZXNcbiAgICovXG4gIGdldE1haW5CcmFuY2hlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnbWFzdGVyJywgJ2RldmVsb3AnLCAnc3RhZ2UnLCAncHJvZCcsICd0ZXN0J11cbiAgfVxuXG5cblxuICBpc1Vuc2luZ0FjdGlvbkNvbW1pdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuXG5cbiAgYXN5bmMgcmVzZXRQcm9jZXNzKG92ZXJyaWRlQnJhbmNoPzogc3RyaW5nLCByZWNydXNpdmUgPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgYXN5bmMgcHVsbFByb2Nlc3MoY2xvbmVDaGlsZHJlbiA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgYXN5bmMgcHVzaFByb2Nlc3Mob3B0aW9uczoge1xuICAgIGZvcmNlPzogYm9vbGVhbjtcbiAgICB0eXBlb2ZDb21taXQ/OiBUeXBlT2ZDb21taXQ7XG4gICAgb3JpZ2luPzogc3RyaW5nO1xuICAgIGFyZ3M/OiBzdHJpbmdbXTtcbiAgICBleGl0Q2FsbEJhY2s/OiAoKSA9PiB2b2lkO1xuICAgIGZvcmNlUHVzaE5vUXVlc3Rpb24/OiBib29sZWFuO1xuICAgIGNvbW1pdE1lc3NhZ2VSZXF1aXJlZD86IGJvb2xlYW47XG4gICAgc2tpcENoaWxkcmVuPzogYm9vbGVhbjtcbiAgfSA9IHt9KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcml2YXRlIF9iZWZvcmVBbnlBY3Rpb25PbkdpdFJvb3QoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBhc3luYyBfYmVmb3JlUHVzaFByb2Nlc3NBY3Rpb24oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBhc3luYyBfYmVmb3JlUHVsbFByb2Nlc3NBY3Rpb24oY2xvbmVDaGlsZHJlbiA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBhc3luYyBfZ2V0Q29tbWl0TWVzc2FnZSh0eXBlb2ZDb21taXQ6IFR5cGVPZkNvbW1pdCwgYXJnczogc3RyaW5nW10sIGNvbW1pdE1lc3NhZ2VSZXF1aXJlZD86IGJvb2xlYW4pOiBQcm9taXNlPENvbW1pdERhdGE+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGxpbmtUbyhkZXN0UGFja2FnZUxvY2F0aW9uOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuXG4gIHdyaXRlRmlsZShyZWxhdGl2ZVBhdGg6IHN0cmluZywgY29udGVudDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgcHVibGljIHJ1bkNvbW1hbmRHZXRTdHJpbmcodGhpczogQmFzZVByb2plY3QsIGNvbW1hbmQ6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHB1YmxpYyBnZXQgZ2l0KCkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiB7XG4gICAgICB1bnN0YWdlQWxsRmlsZXMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHJldmVydEZpbGVDaGFuZ2VzKGZpbGVSZWxldGl2ZVBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBhc3luYyBjbG9uZSh1cmw6IHN0cmluZywgZGVzdGluYXRpb25Gb2xkZXJOYW1lID0gJycsIGJyYW5jaE5hbWU/OiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHJlc3RvcmVMYXN0VmVyc2lvbihsb2NhbEZpbGVQYXRoOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgc3RhZ2VBbGxGaWxlcygpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgc3Rhc2gob3B0aW5vcz86IHtcbiAgICAgICAgb25seVN0YWdlZD86IGJvb2xlYW47XG4gICAgICB9KSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHN0YXNoQXBwbHkoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGZldGNoKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICByZXNldEZpbGVzKC4uLnJlbGF0aXZlUGF0aGVzOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgaXNJbnNpZGVHaXRSZXBvKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgaXNHaXRSb290KCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgb3JpZ2luVVJMKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBjb21taXQoY29tbWl0TWVzc2FnZT86IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIGFsaWFzIHRvIHN0YWdlIGFsbCBhbmQgY29tbWl0XG4gICAgICAgKi9cbiAgICAgIGFkZEFuZENvbW1pdChjb21taXRNZXNzYWdlOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgc3RhZ2VBbGxBbmRDb21taXQoY29tbWl0TWVzc2FnZTogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGFzeW5jIHB1c2hDdXJyZW50QnJhbmNoKG9wdGlvbnM/OiB7IGZvcmNlPzogYm9vbGVhbjsgb3JpZ2luPzogc3RyaW5nLCBhc2tUb1JldHJ5PzogYm9vbGVhbjsgZm9yY2VQdXNoTm9RdWVzdGlvbj86IGJvb2xlYW47IH0pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGFsbE9yaWdpbnMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCB1bmNvbW1pdGVkRmlsZXMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCB0aGVyZUFyZVNvbWVVbmNvbW1pdGVkQ2hhbmdlKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICB0aGVyZUFyZVNvbWVVbmNvbW1pdGVkQ2hhbmdlRXhjZXB0KGZpbGVzTGlzdDogc3RyaW5nW10gPSBbXSkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBtZWx0QWN0aW9uQ29tbWl0cyhzb2Z0ID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgICAgIH0sXG4gICAgICBhc3luYyBwdWxsQ3VycmVudEJyYW5jaChvcHRpb25zPzoge1xuICAgICAgICBhc2tUb1JldHJ5PzogYm9vbGVhbixcbiAgICAgICAgZGVmYXVsdEhhcmRSZXNldENvbW1pdHM/OiBudW1iZXJcbiAgICAgIH0pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGN1cnJlbnRCcmFuY2hOYW1lKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgbGlzdE9mQ3VycmVudEdpdENoYW5nZXMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldEJyYW5jaGVzTmFtZXNCeShwYXR0ZXJuOiBzdHJpbmcgfCBSZWdFeHApIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgcmVzZXRTb2Z0SEVBRChIRUFEID0gMSkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICByZXNldEhhcmQob3B0aW9ucz86IHtcbiAgICAgICAgSEVBRD86IG51bWJlclxuICAgICAgfSkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBjb3VudENvbWl0cygpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgaGFzQW55Q29tbWl0cygpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGlzSW5NZXJnZVByb2Nlc3MoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGxhc3RDb21taXREYXRlKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBsYXN0Q29tbWl0SGFzaCgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgbGFzdENvbW1pdE1lc3NhZ2UoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHBlbnVsdGltYWdlQ29tbWl0SGFzaCgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgY2hlY2tUYWdFeGlzdHModGFnOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgY2hlY2tvdXQoYnJhbmNoTmFtZTogc3RyaW5nLCBvcHRpb25zPzogeyBjcmVhdGVCcmFuY2hJZk5vdEV4aXN0cz86IGJvb2xlYW47IGZldGNoQmVmb3JlQ2hlY2tvdXQ/OiBib29sZWFuOyBzd2l0Y2hCcmFuY2hXaGVuRXhpc3RzPzogYm9vbGVhbjsgfSkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBjaGVja291dEZyb21UbyhjaGVja291dEZyb21CcmFuY2g6IHN0cmluZywgYnJhbmNoOiBzdHJpbmcsIG9yaWdpbiA9ICdvcmlnaW4nKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSBtYWpvclZlcnNpb24gZXhhbXBsZTogdjEsIHYyIGV0Yy5cbiAgICAgICAqIEByZXR1cm5zIHRhZyBuYW1lXG4gICAgICAgKi9cbiAgICAgIGxhc3RUYWdOYW1lRm9yTWFqb3JWZXJzaW9uKG1ham9yVmVyc2lvbikge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBsYXN0VGFnSGFzaCgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IHJlbW90ZU9yaWdpblVybCgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGxhc3RUYWdWZXJzaW9uTmFtZSgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IHN0YWdlZEZpbGVzKCk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgLyoqXG4gICAgICAgKiBUT0RPIGRvZXMgdGhpcyBtYWtlIGFueSBzZW5zZVxuICAgICAgICovXG4gICAgICByZW5hbWVPcmlnaW4obmV3TmFtZU9yVWxyOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cblxuXG4gIHRvU3RyaW5nID0gKCkgPT4ge1xuICAgIHJldHVybiBgJHt0aGlzLm5hbWV9PT4ke3RoaXMubG9jYXRpb259YDtcbiAgfTtcblxuXG5cbiAgcHJvdGVjdGVkIGNoZWNrSWZMb2dnaW5JblRvTnBtKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgcGFyZW50c05hbWVzKCkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICBvcGVuTG9jYXRpb24ocmVsYXRpdmVGb2xkZXJQYXRoOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBmaW5kUGFyZW50c05hbWVzKHByb2plY3Q/OiBQUk9KQ0VULCBwYXJlbnQ/OiBQUk9KQ0VULCByZXN1bHQgPSBbXSk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICB0cnlLaWxsQWxsRWxlY3Ryb25JbnN0YW5jZXMoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGluaXQgcHJvamVjdCBmaWxlcyBzdHJ1Y3R1cmUgYW5kIGRlcGVkZW5jaWVzXG4gICAqL1xuICBhc3luYyBpbml0KGluaXRPcHRpb25zPzogYW55KSB7XG4gICAgdGhyb3cgKG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKSlcbiAgfVxuXG5cblxuICAvKipcbiAgICogZ2xvYmFsbHkgbGluayBucG0gYXMgcGFja2FnZVxuICAgKi9cbiAgYXN5bmMgbGluaygpIHtcbiAgICB0aHJvdyAobmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpKVxuICB9XG5cblxuXG4gIC8qKlxuICAgKiBpbml0IHByb2plY3QgZmlsZXMgc3RydWN0dXJlIHdpdGhvdXQgZGVwZWRlbmNpZXNcbiAgICovXG4gIGFzeW5jIHN0cnVjdChpbml0T3B0aW9ucz86IGFueSkge1xuICAgIHRocm93IChuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJykpXG4gIH1cblxuXG5cbiAgLyoqXG4gICogaW5pdCBhbmQgYnVpbGQoKSBwcm9qZWN0XG4gICovXG4gIGFzeW5jIGJ1aWxkKGJ1aWxkT3B0aW9ucz86IGFueSkge1xuICAgIHRocm93IChuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJykpXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGxpbnQgcG9yamVjdFxuICAgKi9cbiAgYXN5bmMgbGludChsaW50T3B0aW9ucz86IGFueSkge1xuICAgIEhlbHBlcnMuaW5mbyhgXG5cblxuICAgIENPTU1JVCBMSU5UIE5PVCBJTVBMRU1FTlRFRFxuXG5cbiAgICBgKVxuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnZXQgaW5mbyBhYm91dCBwb3JqZWN0XG4gICAqL1xuICBhc3luYyBpbmZvKCkge1xuICAgIGNvbnN0IHByb2ogPSB0aGlzO1xuICAgIEhlbHBlcnMuaW5mbyhgXG5cbiAgbmFtZTogJHtwcm9qPy5uYW1lfVxuICB0eXBlOiAke3Byb2o/LnR5cGV9XG4gIGNvcmUgcHJvamVjdCBuYW1lOiAnJHtwcm9qPy5jb3JlPy5uYW1lfSdcbiAgZW1iZWRkZWQgcHJvamVjdDogJHtwcm9qPy5lbWJlZGRlZFByb2plY3Q/LmdlbmVyaWNOYW1lIHx8ICc8IG5vbmUgPid9XG4gIGNoaWxkcmVuICgke3Byb2o/LmNoaWxkcmVuLmxlbmd0aH0pOiAkeyghcHJvaiB8fCAhcHJvai5jaGlsZHJlbi5sZW5ndGgpID8gJzwgbm9uZSA+JyA6ICcnfVxuJHtwcm9qPy5jaGlsZHJlbi5tYXAoYyA9PiAnKycgKyBjLmdlbmVyaWNOYW1lKS5qb2luKCdcXG4nKX1cbmArXG4gICAgICBgXG5saW5rZWQgcG9yamVjdCBwcmVmaXg6IFwiJHt0aGlzLmxpbmtlZFByb2plY3RzUHJlZml4fVwiXG5cbmxpbmtlZCBwcm9qZWN0cyBmcm9tIGpzb24gKCR7dGhpcy5saW5rZWRQcm9qZWN0cz8ubGVuZ3RoIHx8IDB9KTpcbiR7KHRoaXMubGlua2VkUHJvamVjdHMgfHwgW10pLm1hcChjID0+ICctICcgKyBjLnJlbGF0aXZlQ2xvbmVQYXRoKS5qb2luKCdcXG4nKX1cblxuICBgKTtcblxuXG5cbiAgfVxuXG5cblxuICAvKipcbiAgICogQnkgZGVmYXVsdCBubyB0cmFuc2xhdGlvbiBvZiBjb21taXRcbiAgICovXG4gIHRyYW5zYWx0ZUdpdENvbW1pdEZyb21BcmdzKCkge1xuICAgIHJldHVybiB7IGZyb206IHZvaWQgMCBhcyBzdHJpbmcsIHRvOiB2b2lkIDAgYXMgc3RyaW5nIH1cbiAgfVxuXG5cblxuICAvKipcbiAgICogQnkgZGVmdWx0IHRydWUuLiB3aGVuIGNvbW1pdCBicmFuY2hlcyB3aWxsIG5vdCBmdW5jdGlvbi5cbiAgICogKGZhbHNlIGlzIGJldHRlciBmb3Igc2ltcGxlIHByb2plY3RzKVxuICAgKi9cbiAgdXNlR2l0QnJhbmNoZXNXaGVuQ29tbWl0aW5nQW5kUHVzaGluZygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogdXNlZnVsbCB3aGVuIHB1c2hpbmcgaW4gcHJvamVjdCB3aXRoIGNoaWxkcmVucyBhcyBnaXQgcmVwb3NcbiAgICovXG4gIGF1dG9tYXRpY2FsbHlBZGRBbGxDaG5hZ2VzV2hlblB1c2hpbmdUb0dpdCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHVzZWZ1bGwgd2hlbiBwdXNoaW5nIGluIHByb2plY3Qgd2l0aCBjaGlsZHJlbnMgYXMgZ2l0IHJlcG9zXG4gICAqL1xuICB1c2VHaXRCcmFuY2hlc0FzTWV0YWRhdGFGb3JDb21taXRzKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBhbmd1bGFyIGxpYnJhcmllcyBmcm9tIGFuZ3VsYXIuanNvblxuICAgKi9cbiAgZ2V0IGxpYnJhcmllcygpOiBQUk9KQ0VUW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgc29ydGVkTGlicmFyaWVzQnlEZXBzKCk6IFBST0pDRVRbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGFzeW5jIGdldFNvcnRlZExpYnJhcmllc0J5RGVwc0ZvckJ1aWxkKGxpYnM6IFBST0pDRVRbXSwgZG9udFN1Z2VzdEJ1aWxkQWxsID0gZmFsc2UpOiBQcm9taXNlPFBST0pDRVRbXT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgZ2V0TGlicmFyeUJ1aWxkU3VjY2Vzc0NvbWFtbmQoKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHB1YmxpYyBhc3luYyBidWlsZExpYnJhcmllcyh7XG4gICAgcmVidWlsZCA9IGZhbHNlLFxuICAgIHdhdGNoID0gZmFsc2UsXG4gICAgc3RyYXRlZ3ksXG4gICAgb25seVNlbGVjdGVkTGlic1xuICB9OiB7XG4gICAgcmVidWlsZD86IGJvb2xlYW47IHdhdGNoPzogYm9vbGVhbjtcbiAgICBzdHJhdGVneT86ICdsaW5rJyB8ICdjb3B5JyxcbiAgICBvbmx5U2VsZWN0ZWRMaWJzPzogc3RyaW5nW11cbiAgfSA9IHt9XG4gICkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgZ2V0TGlicmFyeUJ1aWxkQ29tYW1uZChvcHRpb25zPzogeyB3YXRjaDogYm9vbGVhbiB9KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgc3RhcnROcG1UYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGFkZGl0aW9uYWxBcmd1bWVudHM/OiBzdHJpbmcgfCBvYmplY3QpIHtcbiAgICBpZiAoXy5pc09iamVjdChhZGRpdGlvbmFsQXJndW1lbnRzKSkge1xuICAgICAgYWRkaXRpb25hbEFyZ3VtZW50cyA9IE9iamVjdC5rZXlzKGFkZGl0aW9uYWxBcmd1bWVudHMpLm1hcChrID0+IGAtLSR7a30gJHthZGRpdGlvbmFsQXJndW1lbnRzW2tdfWApLmpvaW4oJyAnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucnVuKGBucG0gcnVuICR7dGFza05hbWV9ICR7YWRkaXRpb25hbEFyZ3VtZW50cyA/ICgnIC0tICcgKyBhZGRpdGlvbmFsQXJndW1lbnRzKSA6ICcnfWAsIHsgb3V0cHV0OiB0cnVlIH0pO1xuICB9XG5cblxuXG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { BaseDb } from "./base-db";
2
2
  /* */
3
3
  /* */
4
+ /* */
4
5
  const defaultDb = {
5
6
  config: {},
6
7
  };
@@ -39,4 +40,4 @@ export class ConfigDatabase extends BaseDb {
39
40
  }
40
41
  ;
41
42
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/config-database.ts
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWRhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9jb25maWctZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxLQUFLO0FBQ0wsS0FBSztBQUlMLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLE1BQU0sRUFBRSxFQUEwRDtDQUNuRSxDQUFBO0FBRUQsTUFBTSxPQUFPLGNBQWUsU0FBUSxNQUF3QjtJQUMxRCxZQUNFLEdBQXdCO1FBRXhCLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFZLHFCQUFxQjtRQUMvQixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCO1FBQy9CLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYTtRQUM1QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvRUFBb0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gXCJ0bnAtY29yZS93ZWJzcWxcIjtcbmltcG9ydCB7IExvdyB9IGZyb20gXCIuLi9sb3dkYlwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdFJlc29sdmVyIH0gZnJvbSBcIi4vYmFzZS1wcm9qZWN0LXJlc29sdmVyXCI7XG5pbXBvcnQgeyBCYXNlRGIgfSBmcm9tIFwiLi9iYXNlLWRiXCI7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSBcIi4uL2luZGV4XCI7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuY29uc3QgZGVmYXVsdERiID0ge1xuICBjb25maWc6IHt9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGw7IH0sXG59XG5cbmV4cG9ydCBjbGFzcyBDb25maWdEYXRhYmFzZSBleHRlbmRzIEJhc2VEYjx0eXBlb2YgZGVmYXVsdERiPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGluczogQmFzZVByb2plY3RSZXNvbHZlcixcbiAgKSB7XG4gICAgc3VwZXIoaW5zLCAnY29uZmlnJywgZGVmYXVsdERiKTtcbiAgfVxuICBwcml2YXRlIGdldCBzZWxlY3RlZENvZGVFZGl0b3JLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3NlbGVjdGVkLWNvZGUtZWRpdG9yJztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZWxlY3RDb2RlRWRpdG9yKCk6IFByb21pc2U8J2NvZGUnIHwgJ2lkZWEnIHwgJ2lkZWE2NCcgfCBzdHJpbmc+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q29kZUVkaXRvcigpOiBQcm9taXNlPCdjb2RlJyB8ICdpZGVhJyB8ICdpZGVhNjQnIHwgc3RyaW5nPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9jb25maWctZGF0YWJhc2UudHMiXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWRhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9jb25maWctZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFJTCxNQUFNLFNBQVMsR0FBRztJQUNoQixNQUFNLEVBQUUsRUFBMEQ7Q0FDbkUsQ0FBQTtBQUVELE1BQU0sT0FBTyxjQUFlLFNBQVEsTUFBd0I7SUFDMUQsWUFDRSxHQUF3QjtRQUV4QixLQUFLLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBWSxxQkFBcUI7UUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQjtRQUMvQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWE7UUFDNUIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0VBQW9FIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tIFwidG5wLWNvcmUvd2Vic3FsXCI7XG5cbmltcG9ydCB0eXBlIHsgQmFzZVByb2plY3RSZXNvbHZlciB9IGZyb20gXCIuL2Jhc2UtcHJvamVjdC1yZXNvbHZlclwiO1xuaW1wb3J0IHsgQmFzZURiIH0gZnJvbSBcIi4vYmFzZS1kYlwiO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gXCIuLi9pbmRleFwiO1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5jb25zdCBkZWZhdWx0RGIgPSB7XG4gIGNvbmZpZzoge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbDsgfSxcbn1cblxuZXhwb3J0IGNsYXNzIENvbmZpZ0RhdGFiYXNlIGV4dGVuZHMgQmFzZURiPHR5cGVvZiBkZWZhdWx0RGI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyLFxuICApIHtcbiAgICBzdXBlcihpbnMsICdjb25maWcnLCBkZWZhdWx0RGIpO1xuICB9XG4gIHByaXZhdGUgZ2V0IHNlbGVjdGVkQ29kZUVkaXRvcktleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnc2VsZWN0ZWQtY29kZS1lZGl0b3InO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbGVjdENvZGVFZGl0b3IoKTogUHJvbWlzZTwnY29kZScgfCAnaWRlYScgfCAnaWRlYTY0JyB8IHN0cmluZz4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb2RlRWRpdG9yKCk6IFByb21pc2U8J2NvZGUnIHwgJ2lkZWEnIHwgJ2lkZWE2NCcgfCBzdHJpbmc+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2NvbmZpZy1kYXRhYmFzZS50cyJdfQ==
@@ -15,4 +15,4 @@ export class ProjectDatabase extends BaseDb {
15
15
  }
16
16
  ;
17
17
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/project-database.ts
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1kYXRhYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvcHJvamVjdC1kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR25DLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLFFBQVEsRUFBRSxFQUVQO0NBQ0osQ0FBQTtBQUVELE1BQU0sT0FBTyxlQUFnQixTQUFRLE1BQXdCO0lBQzNELFlBQ0UsR0FBd0I7UUFFeEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0I7UUFDNUIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxRUFBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBIZWxwZXJzLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gXCJ0bnAtY29yZS93ZWJzcWxcIjtcbmltcG9ydCB7IExvdyB9IGZyb20gXCIuLi9sb3dkYlwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdFJlc29sdmVyIH0gZnJvbSBcIi4vYmFzZS1wcm9qZWN0LXJlc29sdmVyXCI7XG5pbXBvcnQgeyBCYXNlRGIgfSBmcm9tIFwiLi9iYXNlLWRiXCI7XG5cblxuY29uc3QgZGVmYXVsdERiID0ge1xuICBwcm9qZWN0czogW10gYXMge1xuICAgIGxvY2F0aW9uOiBzdHJpbmc7XG4gIH1bXSxcbn1cblxuZXhwb3J0IGNsYXNzIFByb2plY3REYXRhYmFzZSBleHRlbmRzIEJhc2VEYjx0eXBlb2YgZGVmYXVsdERiPntcbiAgY29uc3RydWN0b3IoXG4gICAgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyLFxuICApIHtcbiAgICBzdXBlcihpbnMsICdwcm9qZWN0cycsIGRlZmF1bHREYik7XG4gIH1cblxuICBhc3luYyBnZXRBbGxQcm9qZWN0c0Zyb21EQigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL3Byb2plY3QtZGF0YWJhc2UudHMiXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1kYXRhYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvcHJvamVjdC1kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR25DLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLFFBQVEsRUFBRSxFQUVQO0NBQ0osQ0FBQTtBQUVELE1BQU0sT0FBTyxlQUFnQixTQUFRLE1BQXdCO0lBQzNELFlBQ0UsR0FBd0I7UUFFeEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0I7UUFDNUIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxRUFBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBIZWxwZXJzLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gXCJ0bnAtY29yZS93ZWJzcWxcIjtcbmltcG9ydCB0eXBlIHsgQmFzZVByb2plY3RSZXNvbHZlciB9IGZyb20gXCIuL2Jhc2UtcHJvamVjdC1yZXNvbHZlclwiO1xuaW1wb3J0IHsgQmFzZURiIH0gZnJvbSBcIi4vYmFzZS1kYlwiO1xuXG5cbmNvbnN0IGRlZmF1bHREYiA9IHtcbiAgcHJvamVjdHM6IFtdIGFzIHtcbiAgICBsb2NhdGlvbjogc3RyaW5nO1xuICB9W10sXG59XG5cbmV4cG9ydCBjbGFzcyBQcm9qZWN0RGF0YWJhc2UgZXh0ZW5kcyBCYXNlRGI8dHlwZW9mIGRlZmF1bHREYj57XG4gIGNvbnN0cnVjdG9yKFxuICAgIGluczogQmFzZVByb2plY3RSZXNvbHZlcixcbiAgKSB7XG4gICAgc3VwZXIoaW5zLCAncHJvamVjdHMnLCBkZWZhdWx0RGIpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QWxsUHJvamVjdHNGcm9tREIoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9wcm9qZWN0LWRhdGFiYXNlLnRzIl19
@@ -984,28 +984,11 @@ class BaseDb {
984
984
  /* */
985
985
  return (void 0);
986
986
  }
987
- async useDB() {
988
- /* */
989
- /* */
990
- /* */
991
- /* */
992
- /* */
993
- /* */
994
- /* */
995
- /* */
996
- /* */
997
- /* */
998
- /* */
999
- /* */
1000
- /* */
1001
- return (void 0);
1002
- // @ts-ignore
1003
- return void 0;
1004
- }
1005
987
  }
1006
988
  ;
1007
989
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-db.ts
1008
990
 
991
+ /* */
1009
992
  /* */
1010
993
  /* */
1011
994
  const defaultDb$2 = {
@@ -1277,6 +1260,7 @@ class BaseProjectResolver {
1277
1260
  /* */
1278
1261
  /* */
1279
1262
  /* */
1263
+ /* */
1280
1264
  const takenPorts = [];
1281
1265
  class BaseProject {
1282
1266
  static { this.ins = new BaseProjectResolver(BaseProject); }