tnp-helpers 18.0.6 → 18.0.10

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 (141) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base/base-git.mjs +4 -4
  3. package/browser/esm2022/lib/base/base-library-build.mjs +96 -10
  4. package/browser/esm2022/lib/base/base-npm-helpers.mjs +3 -3
  5. package/browser/esm2022/lib/base/base-project-resolver.mjs +2 -2
  6. package/browser/esm2022/lib/base/base-project.mjs +1 -1
  7. package/browser/esm2022/lib/base/commit-data.mjs +2 -2
  8. package/browser/esm2022/lib/helpers/for-browser/helpers-browser.mjs +2 -2
  9. package/browser/esm2022/lib/helpers/helpers-strings.mjs +3 -3
  10. package/browser/esm2022/lib/helpers/helpers.mjs +6 -6
  11. package/browser/esm2022/lib/index.mjs +3 -3
  12. package/browser/esm2022/lib/models.mjs +1 -1
  13. package/browser/esm2022/lib/utils.mjs +141 -1
  14. package/browser/fesm2022/tnp-helpers.mjs +254 -28
  15. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  16. package/browser/lib/base/base-git.d.ts +5 -5
  17. package/browser/lib/base/base-library-build.d.ts +21 -8
  18. package/browser/lib/base/base-npm-helpers.d.ts +9 -8
  19. package/browser/lib/base/base-project.d.ts +4 -3
  20. package/browser/lib/base/commit-data.d.ts +5 -5
  21. package/browser/lib/base/core-project.d.ts +2 -2
  22. package/browser/lib/helpers/helpers.d.ts +3 -3
  23. package/browser/lib/index.d.ts +2 -2
  24. package/browser/lib/models.d.ts +12 -1
  25. package/browser/lib/utils.d.ts +32 -0
  26. package/client/esm2022/lib/base/base-git.mjs +4 -4
  27. package/client/esm2022/lib/base/base-library-build.mjs +96 -10
  28. package/client/esm2022/lib/base/base-npm-helpers.mjs +3 -3
  29. package/client/esm2022/lib/base/base-project-resolver.mjs +2 -2
  30. package/client/esm2022/lib/base/base-project.mjs +1 -1
  31. package/client/esm2022/lib/base/commit-data.mjs +2 -2
  32. package/client/esm2022/lib/helpers/for-browser/helpers-browser.mjs +2 -2
  33. package/client/esm2022/lib/helpers/helpers-strings.mjs +3 -3
  34. package/client/esm2022/lib/helpers/helpers.mjs +6 -6
  35. package/client/esm2022/lib/index.mjs +3 -3
  36. package/client/esm2022/lib/models.mjs +1 -1
  37. package/client/esm2022/lib/utils.mjs +141 -1
  38. package/client/fesm2022/tnp-helpers.mjs +254 -28
  39. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  40. package/client/lib/base/base-git.d.ts +5 -5
  41. package/client/lib/base/base-library-build.d.ts +21 -8
  42. package/client/lib/base/base-npm-helpers.d.ts +9 -8
  43. package/client/lib/base/base-project.d.ts +4 -3
  44. package/client/lib/base/commit-data.d.ts +5 -5
  45. package/client/lib/base/core-project.d.ts +2 -2
  46. package/client/lib/helpers/helpers.d.ts +3 -3
  47. package/client/lib/index.d.ts +2 -2
  48. package/client/lib/models.d.ts +12 -1
  49. package/client/lib/utils.d.ts +32 -0
  50. package/lib/base/base-command-line.backend.js +1 -1
  51. package/lib/base/base-command-line.backend.js.map +1 -1
  52. package/lib/base/base-db.js +2 -2
  53. package/lib/base/base-db.js.map +1 -1
  54. package/lib/base/base-git.d.ts +5 -5
  55. package/lib/base/base-git.js +3 -3
  56. package/lib/base/base-git.js.map +1 -1
  57. package/lib/base/base-library-build.d.ts +23 -20
  58. package/lib/base/base-library-build.js +384 -281
  59. package/lib/base/base-library-build.js.map +1 -1
  60. package/lib/base/base-linked-projects.js +1 -1
  61. package/lib/base/base-linked-projects.js.map +1 -1
  62. package/lib/base/base-npm-helpers.d.ts +9 -8
  63. package/lib/base/base-npm-helpers.js +25 -25
  64. package/lib/base/base-npm-helpers.js.map +1 -1
  65. package/lib/base/base-project-resolver.js +5 -5
  66. package/lib/base/base-project-resolver.js.map +1 -1
  67. package/lib/base/base-project.d.ts +4 -3
  68. package/lib/base/base-project.js +42 -42
  69. package/lib/base/base-project.js.map +1 -1
  70. package/lib/base/base-start-config.backend.js +1 -1
  71. package/lib/base/base-start-config.backend.js.map +1 -1
  72. package/lib/base/command-line-feature.backend.js +1 -1
  73. package/lib/base/command-line-feature.backend.js.map +1 -1
  74. package/lib/base/commit-data.d.ts +5 -5
  75. package/lib/base/commit-data.js +1 -1
  76. package/lib/base/core-project.d.ts +2 -2
  77. package/lib/base/linked-project.js +1 -1
  78. package/lib/base/linked-project.js.map +1 -1
  79. package/lib/helpers/for-backend/helpers-cli-tool.backend.js +2 -2
  80. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  81. package/lib/helpers/for-backend/helpers-console-gui.d.ts +6 -0
  82. package/lib/helpers/for-backend/helpers-console-gui.js +12 -4
  83. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  84. package/lib/helpers/for-backend/helpers-file-folders.backend.d.ts +1 -1
  85. package/lib/helpers/for-backend/helpers-file-folders.backend.js +14 -14
  86. package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -1
  87. package/lib/helpers/for-backend/helpers-git.backend.js +92 -77
  88. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  89. package/lib/helpers/for-backend/helpers-process.backend.d.ts +7 -0
  90. package/lib/helpers/for-backend/helpers-process.backend.js +16 -40
  91. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  92. package/lib/helpers/for-browser/angular.helper.js +2 -2
  93. package/lib/helpers/for-browser/helpers-browser.js +1 -1
  94. package/lib/helpers/for-browser/helpers-browser.js.map +1 -1
  95. package/lib/helpers/helpers-strings.js +2 -2
  96. package/lib/helpers/helpers-strings.js.map +1 -1
  97. package/lib/helpers/helpers.d.ts +3 -3
  98. package/lib/helpers/helpers.js +34 -34
  99. package/lib/helpers/helpers.js.map +1 -1
  100. package/lib/index.d.ts +2 -2
  101. package/lib/index.js +2 -2
  102. package/lib/index.js.map +1 -1
  103. package/lib/models.d.ts +12 -1
  104. package/lib/models.js.map +1 -1
  105. package/lib/old/base-component.js +2 -2
  106. package/lib/old/base-formly-component.js +2 -2
  107. package/lib/old/dual-component-ctrl.js +2 -2
  108. package/lib/utils.d.ts +32 -0
  109. package/lib/utils.js +113 -1
  110. package/lib/utils.js.map +1 -1
  111. package/lib/validators/validators-firedev.d.ts +1 -1
  112. package/lib/validators/validators-firedev.js +5 -5
  113. package/lib/validators/validators-firedev.js.map +1 -1
  114. package/package.json +5 -5
  115. package/src.d.ts +1 -1
  116. package/{firedev.jsonc → taon.jsonc} +12 -6
  117. package/tmp-environment.json +33 -39
  118. package/websql/esm2022/lib/base/base-git.mjs +4 -4
  119. package/websql/esm2022/lib/base/base-library-build.mjs +96 -10
  120. package/websql/esm2022/lib/base/base-npm-helpers.mjs +3 -3
  121. package/websql/esm2022/lib/base/base-project-resolver.mjs +2 -2
  122. package/websql/esm2022/lib/base/base-project.mjs +1 -1
  123. package/websql/esm2022/lib/base/commit-data.mjs +2 -2
  124. package/websql/esm2022/lib/helpers/for-browser/helpers-browser.mjs +2 -2
  125. package/websql/esm2022/lib/helpers/helpers-strings.mjs +3 -3
  126. package/websql/esm2022/lib/helpers/helpers.mjs +6 -6
  127. package/websql/esm2022/lib/index.mjs +3 -3
  128. package/websql/esm2022/lib/models.mjs +1 -1
  129. package/websql/esm2022/lib/utils.mjs +141 -1
  130. package/websql/fesm2022/tnp-helpers.mjs +254 -28
  131. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  132. package/websql/lib/base/base-git.d.ts +5 -5
  133. package/websql/lib/base/base-library-build.d.ts +21 -8
  134. package/websql/lib/base/base-npm-helpers.d.ts +9 -8
  135. package/websql/lib/base/base-project.d.ts +5 -8
  136. package/websql/lib/base/commit-data.d.ts +5 -5
  137. package/websql/lib/base/core-project.d.ts +2 -2
  138. package/websql/lib/helpers/helpers.d.ts +3 -3
  139. package/websql/lib/index.d.ts +2 -2
  140. package/websql/lib/models.d.ts +12 -1
  141. package/websql/lib/utils.d.ts +32 -0
@@ -17,7 +17,7 @@ export class BaseProjectResolver {
17
17
  /**
18
18
  * general name for project company
19
19
  */
20
- this.orgName = 'firedev';
20
+ this.orgName = 'taon';
21
21
  this.configDb = new ConfigDatabase(this);
22
22
  this.projectsDb = new ProjectDatabase(this);
23
23
  this.NPM_PROJECT_KEY = 'npm';
@@ -282,4 +282,4 @@ export class BaseProjectResolver {
282
282
  }
283
283
  ;
284
284
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-project-resolver.ts
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUduQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUlMLE1BQU0sT0FBTyxtQkFBbUI7SUFtQjlCLFlBQXNCLE9BQVk7UUFBWixZQUFPLEdBQVAsT0FBTyxDQUFLO1FBbEJsQzs7V0FFRztRQUNJLFlBQU8sR0FBVyxTQUFTLENBQUM7UUFDbkMsYUFBUSxHQUFtQixJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxlQUFVLEdBQW9CLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR3JDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLGFBQVEsR0FBYyxFQUFFLENBQUM7UUFDbkM7OztXQUdHO1FBQ08sbUJBQWMsR0FBYSxFQUFFLENBQUM7SUFJSCxDQUFDO0lBSXRDLElBQUksWUFBWTtRQUNsQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDYixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLFFBQWdCLEVBQUUsYUFBYSxHQUFHLEtBQUs7UUFDbEQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsSUFBSSxDQUFDLGlCQUFvQyxFQUFFLE9BQWE7UUFJMUQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBSUQsU0FBUyxDQUNQLGdCQUF3QixFQUN4QixPQUlDO1FBRUwsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsTUFBTSxDQUFDLDBCQUE0QztRQUNqRCxNQUFNLFFB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Q0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUMsT0FBTyxNQUFNLENBQUM7SUFFaEIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywwRUFBMEUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyAvKiAqLyAvKiAqLyAvKiAqLyAgICB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgcGF0aCwgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgdHlwZSB7IEJhc2VQcm9qZWN0IH0gZnJvbSAnLi9iYXNlLXByb2plY3QnO1xuaW1wb3J0IHsgTG93IH0gZnJvbSAnbG93ZGInO1xuaW1wb3J0IHsgQ29uZmlnRGF0YWJhc2UgfSBmcm9tICcuL2NvbmZpZy1kYXRhYmFzZSc7XG5pbXBvcnQgeyBQcm9qZWN0RGF0YWJhc2UgfSBmcm9tICcuL3Byb2plY3QtZGF0YWJhc2UnO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cbmV4cG9ydCBjbGFzcyBCYXNlUHJvamVjdFJlc29sdmVyPFBST0pFQ1QgZXh0ZW5kcyBQYXJ0aWFsPEJhc2VQcm9qZWN0PiA9IGFueT4ge1xuICAvKipcbiAgICogZ2VuZXJhbCBuYW1lIGZvciBwcm9qZWN0IGNvbXBhbnlcbiAgICovXG4gIHB1YmxpYyBvcmdOYW1lOiBzdHJpbmcgPSAnZmlyZWRldic7XG4gIGNvbmZpZ0RiOiBDb25maWdEYXRhYmFzZSA9IG5ldyBDb25maWdEYXRhYmFzZSh0aGlzKTtcbiAgcHJvamVjdHNEYjogUHJvamVjdERhdGFiYXNlID0gbmV3IFByb2plY3REYXRhYmFzZSh0aGlzKTtcblxuXG4gIHByb3RlY3RlZCByZWFkb25seSBOUE1fUFJPSkVDVF9LRVkgPSAnbnBtJztcbiAgcHJvdGVjdGVkIHByb2plY3RzOiBQUk9KRUNUW10gPSBbXTtcbiAgLyoqXG4gICAqIFRvIHNwZWVkIHVwIGNoZWNraW5nIGZvbGRlciBJIGFtIGtlZXBpbmcgcGF0aGVzIGZvciBhbHRlcmR5IGNoZWNrZWQgZm9sZGVyXG4gICAqIFRoaXMgbWF5IGJyZWFrIHRoaW5ncyB0aGF0IGFyZSBjcmVhdGluZyBuZXcgcHJvamVjdHNcbiAgICovXG4gIHByb3RlY3RlZCBlbXB0eUxvY2F0aW9uczogc3RyaW5nW10gPSBbXTtcblxuXG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNsYXNzRm46IGFueSkge31cblxuXG5cbiAgZ2V0IGFsbG93ZWRUeXBlcygpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwcm9qZWN0IGZyb20gcHJvY2Vzcy5jd2QoKVxuICAgKi9cbiAgZ2V0IEN1cnJlbnQoKTogUFJPSkVDVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogb3ZlcnJpZGUgdGhpc1xuICAgKi9cbiAgdHlwZUZyb20obG9jYXRpb246IHN0cmluZywgcmVjcnVzaXZlQ2FsbCA9IGZhbHNlKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBGcm9tKGxvY2F0aW9uT2ZQcm9qZWN0OiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IGFueSk6IFBST0pFQ1Qge1xuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgbmVhcmVzdFRvKFxuICAgIGFic29sdXRlTG9jYXRpb246IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgdHlwZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgZmluZEdpdFJvb3Q/OiBib29sZWFuO1xuICAgICAgb25seU91dFNpZGVOb2RlTW9kdWxlcz86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogUFJPSkVDVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgdW5sb2FkKHByb2plY3RPckxvY2F0aW9uT2ZQcm9qZWN0OiBQUk9KRUNUIHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbG9jYXRpb24gPSBfLmlzU3RyaW5nKHByb2plY3RPckxvY2F0aW9uT2ZQcm9qZWN0KVxuICAgICAgPyBwcm9qZWN0T3JMb2NhdGlvbk9mUHJvamVjdFxuICAgICAgOiBwcm9qZWN0T3JMb2NhdGlvbk9mUHJvamVjdD8ubG9jYXRpb247XG5cbiAgICB0aGlzLnByb2plY3RzID0gdGhpcy5wcm9qZWN0cy5maWx0ZXIoZiA9PiBmLmxvY2F0aW9uICE9PSBsb2NhdGlvbik7XG4gICAgdGhpcy5lbXB0eUxvY2F0aW9ucyA9IHRoaXMuZW1wdHlMb2NhdGlvbnMuZmlsdGVyKGYgPT4gZiAhPT0gbG9jYXRpb24pO1xuICB9XG5cblxuXG4gIHJlbW92ZShwcm9qZWN0OiBQUk9KRUNUKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBhZGQocHJvamVjdDogUFJPSkVDVCkge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG5cbiAgYWxsUHJvamVjdEZyb20oYWJzb2x1dGVMb2NhdGlvbjogc3RyaW5nLCBzdG9wT25Dd2Q6IHN0cmluZyA9ICcvJykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBhbGxQcm9qZWN0c0Zyb21Gb2xkZXIoZm9sZGVyTG9jYXRpb246IHN0cmluZyk6IFBST0pFQ1RbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgc29ydEdyb3VwT2ZQcm9qZWN0PFQgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IEJhc2VQcm9qZWN0PihcbiAgICBwcm9qZWN0czogVFtdLFxuICAgIHJlc292ZURlcHNBcnJheTogKHByb2o6IFQpID0+IHN0cmluZ1tdLFxuICAgIHByb2pOYW1lVG9Db21wYXJlOiAocHJvajogVCkgPT4gc3RyaW5nLFxuICApOiBUW10ge1xuICAgIGNvbnN0IHZpc2l0ZWQ6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgY29uc3Qgc3RhY2s6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgY29uc3QgcmVzdWx0OiBUW10gPSBbXTtcblxuICAgIGNvbnN0IHZpc2l0ID0gKHByb2plY3Q6IFQpID0+IHtcbiAgICAgIGlmIChzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0pIHtcblxuICAgICAgICBIZWxwZXJzLmVycm9yKFxuICAgICAgICAgIGBDaXJjdWxhciBkZXBlbmRlbmN5IGRldGVjdGVkIGludm9sdmluZyBwcm9qZWN0OiAke3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdmlzaXRlZFtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0pIHtcbiAgICAgICAgdmlzaXRlZFtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSB0cnVlO1xuICAgICAgICBzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGRlcHNSZXNvbHZlZCA9IHJlc292ZURlcHNBcnJheShwcm9qZWN0KTtcbiAgICAgICAgZGVwc1Jlc29sdmVkLmZvckVhY2goZGVwZW5kZW5jeSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW50UHJvamVjdCA9IHByb2plY3RzLmZpbmQocCA9PiB7XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9qTmFtZVRvQ29tcGFyZShwKSA9PT0gZGVwZW5kZW5jeTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoZGVwZW5kZW50UHJvamVjdCkge1xuICAgICAgICAgICAgdmlzaXQoZGVwZW5kZW50UHJvamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSBmYWxzZTtcbiAgICAgICAgcmVzdWx0LnB1c2gocHJvamVjdCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHByb2plY3RzLmZvckVhY2gocHJvamVjdCA9PiB2aXNpdChwcm9qZWN0KSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcblxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtcHJvamVjdC1yZXNvbHZlci50cyJdfQ==
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUduQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUlMLE1BQU0sT0FBTyxtQkFBbUI7SUFtQjlCLFlBQXNCLE9BQVk7UUFBWixZQUFPLEdBQVAsT0FBTyxDQUFLO1FBbEJsQzs7V0FFRztRQUNJLFlBQU8sR0FBVyxNQUFNLENBQUM7UUFDaEMsYUFBUSxHQUFtQixJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxlQUFVLEdBQW9CLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR3JDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLGFBQVEsR0FBYyxFQUFFLENBQUM7UUFDbkM7OztXQUdHO1FBQ08sbUJBQWMsR0FBYSxFQUFFLENBQUM7SUFJSCxDQUFDO0lBSXRDLElBQUksWUFBWTtRQUNsQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDYixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLFFBQWdCLEVBQUUsYUFBYSxHQUFHLEtBQUs7UUFDbEQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsSUFBSSxDQUFDLGlCQUFvQyxFQUFFLE9BQWE7UUFJMUQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBSUQsU0FBUyxDQUNQLGdCQUF3QixFQUN4QixPQUlDO1FBRUwsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsTUFBTSxDQUFDLDBCQUE0QztRQUNqRCxNQUFNLFFB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Q0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUMsT0FBTyxNQUFNLENBQUM7SUFFaEIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywwRUFBMEUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyAvKiAqLyAvKiAqLyAvKiAqLyAgICB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgcGF0aCwgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgdHlwZSB7IEJhc2VQcm9qZWN0IH0gZnJvbSAnLi9iYXNlLXByb2plY3QnO1xuaW1wb3J0IHsgTG93IH0gZnJvbSAnbG93ZGInO1xuaW1wb3J0IHsgQ29uZmlnRGF0YWJhc2UgfSBmcm9tICcuL2NvbmZpZy1kYXRhYmFzZSc7XG5pbXBvcnQgeyBQcm9qZWN0RGF0YWJhc2UgfSBmcm9tICcuL3Byb2plY3QtZGF0YWJhc2UnO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cbmV4cG9ydCBjbGFzcyBCYXNlUHJvamVjdFJlc29sdmVyPFBST0pFQ1QgZXh0ZW5kcyBQYXJ0aWFsPEJhc2VQcm9qZWN0PiA9IGFueT4ge1xuICAvKipcbiAgICogZ2VuZXJhbCBuYW1lIGZvciBwcm9qZWN0IGNvbXBhbnlcbiAgICovXG4gIHB1YmxpYyBvcmdOYW1lOiBzdHJpbmcgPSAndGFvbic7XG4gIGNvbmZpZ0RiOiBDb25maWdEYXRhYmFzZSA9IG5ldyBDb25maWdEYXRhYmFzZSh0aGlzKTtcbiAgcHJvamVjdHNEYjogUHJvamVjdERhdGFiYXNlID0gbmV3IFByb2plY3REYXRhYmFzZSh0aGlzKTtcblxuXG4gIHByb3RlY3RlZCByZWFkb25seSBOUE1fUFJPSkVDVF9LRVkgPSAnbnBtJztcbiAgcHJvdGVjdGVkIHByb2plY3RzOiBQUk9KRUNUW10gPSBbXTtcbiAgLyoqXG4gICAqIFRvIHNwZWVkIHVwIGNoZWNraW5nIGZvbGRlciBJIGFtIGtlZXBpbmcgcGF0aGVzIGZvciBhbHRlcmR5IGNoZWNrZWQgZm9sZGVyXG4gICAqIFRoaXMgbWF5IGJyZWFrIHRoaW5ncyB0aGF0IGFyZSBjcmVhdGluZyBuZXcgcHJvamVjdHNcbiAgICovXG4gIHByb3RlY3RlZCBlbXB0eUxvY2F0aW9uczogc3RyaW5nW10gPSBbXTtcblxuXG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNsYXNzRm46IGFueSkge31cblxuXG5cbiAgZ2V0IGFsbG93ZWRUeXBlcygpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwcm9qZWN0IGZyb20gcHJvY2Vzcy5jd2QoKVxuICAgKi9cbiAgZ2V0IEN1cnJlbnQoKTogUFJPSkVDVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogb3ZlcnJpZGUgdGhpc1xuICAgKi9cbiAgdHlwZUZyb20obG9jYXRpb246IHN0cmluZywgcmVjcnVzaXZlQ2FsbCA9IGZhbHNlKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBGcm9tKGxvY2F0aW9uT2ZQcm9qZWN0OiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IGFueSk6IFBST0pFQ1Qge1xuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgbmVhcmVzdFRvKFxuICAgIGFic29sdXRlTG9jYXRpb246IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgdHlwZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgZmluZEdpdFJvb3Q/OiBib29sZWFuO1xuICAgICAgb25seU91dFNpZGVOb2RlTW9kdWxlcz86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogUFJPSkVDVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgdW5sb2FkKHByb2plY3RPckxvY2F0aW9uT2ZQcm9qZWN0OiBQUk9KRUNUIHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbG9jYXRpb24gPSBfLmlzU3RyaW5nKHByb2plY3RPckxvY2F0aW9uT2ZQcm9qZWN0KVxuICAgICAgPyBwcm9qZWN0T3JMb2NhdGlvbk9mUHJvamVjdFxuICAgICAgOiBwcm9qZWN0T3JMb2NhdGlvbk9mUHJvamVjdD8ubG9jYXRpb247XG5cbiAgICB0aGlzLnByb2plY3RzID0gdGhpcy5wcm9qZWN0cy5maWx0ZXIoZiA9PiBmLmxvY2F0aW9uICE9PSBsb2NhdGlvbik7XG4gICAgdGhpcy5lbXB0eUxvY2F0aW9ucyA9IHRoaXMuZW1wdHlMb2NhdGlvbnMuZmlsdGVyKGYgPT4gZiAhPT0gbG9jYXRpb24pO1xuICB9XG5cblxuXG4gIHJlbW92ZShwcm9qZWN0OiBQUk9KRUNUKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBhZGQocHJvamVjdDogUFJPSkVDVCkge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG5cbiAgYWxsUHJvamVjdEZyb20oYWJzb2x1dGVMb2NhdGlvbjogc3RyaW5nLCBzdG9wT25Dd2Q6IHN0cmluZyA9ICcvJykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBhbGxQcm9qZWN0c0Zyb21Gb2xkZXIoZm9sZGVyTG9jYXRpb246IHN0cmluZyk6IFBST0pFQ1RbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgc29ydEdyb3VwT2ZQcm9qZWN0PFQgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IEJhc2VQcm9qZWN0PihcbiAgICBwcm9qZWN0czogVFtdLFxuICAgIHJlc292ZURlcHNBcnJheTogKHByb2o6IFQpID0+IHN0cmluZ1tdLFxuICAgIHByb2pOYW1lVG9Db21wYXJlOiAocHJvajogVCkgPT4gc3RyaW5nLFxuICApOiBUW10ge1xuICAgIGNvbnN0IHZpc2l0ZWQ6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgY29uc3Qgc3RhY2s6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgY29uc3QgcmVzdWx0OiBUW10gPSBbXTtcblxuICAgIGNvbnN0IHZpc2l0ID0gKHByb2plY3Q6IFQpID0+IHtcbiAgICAgIGlmIChzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0pIHtcblxuICAgICAgICBIZWxwZXJzLmVycm9yKFxuICAgICAgICAgIGBDaXJjdWxhciBkZXBlbmRlbmN5IGRldGVjdGVkIGludm9sdmluZyBwcm9qZWN0OiAke3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdmlzaXRlZFtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0pIHtcbiAgICAgICAgdmlzaXRlZFtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSB0cnVlO1xuICAgICAgICBzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGRlcHNSZXNvbHZlZCA9IHJlc292ZURlcHNBcnJheShwcm9qZWN0KTtcbiAgICAgICAgZGVwc1Jlc29sdmVkLmZvckVhY2goZGVwZW5kZW5jeSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW50UHJvamVjdCA9IHByb2plY3RzLmZpbmQocCA9PiB7XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9qTmFtZVRvQ29tcGFyZShwKSA9PT0gZGVwZW5kZW5jeTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoZGVwZW5kZW50UHJvamVjdCkge1xuICAgICAgICAgICAgdmlzaXQoZGVwZW5kZW50UHJvamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSBmYWxzZTtcbiAgICAgICAgcmVzdWx0LnB1c2gocHJvamVjdCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHByb2plY3RzLmZvckVhY2gocHJvamVjdCA9PiB2aXNpdChwcm9qZWN0KSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcblxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtcHJvamVjdC1yZXNvbHZlci50cyJdfQ==
@@ -788,4 +788,4 @@ ${(this.linkedProjects.linkedProjects || [])
788
788
  }
789
789
  ;
790
790
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-project.ts
791
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQWtCLFdBQVcsRUFBSSxPQUFPLEdBQTRELE1BQU0sVUFBVSxDQUFDLENBQUEsS0FBSztBQUNqSSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQWU5RCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFFdEIsTUFBTSxPQUFnQixXQUFXO2FBT3hCLFFBQUcsR0FBRyxJQUFJLG1CQUFtQixDQUFjLFdBQVcsQ0FBQyxBQUFwRCxDQUFxRDthQU9qRCxVQUFLLEdBQVEsRUFBRSxBQUFWLENBQVc7SUFDOUIsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBc0JELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBUztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFHRCxhQUFhO0lBQ2I7SUFDRTs7T0FFRztJQUNILFFBQWdC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Q0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUNoRTtFQUNBLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztDQUN4RTtZQUNPOzBCQUNrQixJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQjs7NkJBRXJDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLE1BQU0sSUFBSSxDQUFDO0VBQzFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO2lCQUN6QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1AsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUMvRCxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQzs7R0FFVixDQUNFLENBQUM7SUFJSixDQUFDOztBQUlGLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBDb3JlTW9kZWxzIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBDTEkgfSBmcm9tICd0bnAtY2xpL2Jyb3dzZXInO1xuaW1wb3J0IHsgcGF0aCwgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyAgIENvbW1pdERhdGEsICAgQ29yZVByb2plY3QsICAgSGVscGVycywgICBMaW5rZWRQb3JqZWN0c0NvbmZpZywgICBMaW5rZWRQcm9qZWN0LCAgIFR5cGVPZkNvbW1pdCwgfSBmcm9tICcuLi9pbmRleCc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cblxuaW1wb3J0IHsgQmFzZVByb2plY3RSZXNvbHZlciB9IGZyb20gJy4vYmFzZS1wcm9qZWN0LXJlc29sdmVyJztcbmltcG9ydCB7ICAgQmFzZVByb2plY3RUeXBlLCAgIExpYnJhcmllc0J1aWxkT3B0aW9ucywgICBMaWJyYXJ5QnVpbGRDb21tYW5kT3B0aW9ucywgICBOZ1Byb2plY3QsIH0gZnJvbSAnLi4vbW9kZWxzJzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cblxuaW1wb3J0IHR5cGUgeyBCYXNlTGlicmFyeUJ1aWxkIH0gZnJvbSAnLi9iYXNlLWxpYnJhcnktYnVpbGQnO1xuaW1wb3J0IHsgQmFzZU5wbUhlbHBlcnMgfSBmcm9tICcuL2Jhc2UtbnBtLWhlbHBlcnMnO1xuaW1wb3J0IHsgQmFzZUxpbmtlZFByb2plY3RzIH0gZnJvbSAnLi9iYXNlLWxpbmtlZC1wcm9qZWN0cyc7XG5pbXBvcnQgeyBCYXNlR2l0IH0gZnJvbSAnLi9iYXNlLWdpdCc7XG5pbXBvcnQgeyBCYXNlVnNjb2RlSGVscGVycyB9IGZyb20gJy4vYmFzZS12c2NvZGUnO1xuaW1wb3J0IHsgQmFzZVJlbGVhc2VQcm9jZXNzIH0gZnJvbSAnLi9iYXNlLXJlbGVhc2UtcHJvY2Vzcyc7XG5cblxuY29uc3QgdGFrZW5Qb3J0cyA9IFtdO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVByb2plY3Q8XG4gIFBST0pDRVQgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IGFueSxcbiAgVFlQRSA9IEJhc2VQcm9qZWN0VHlwZSxcbj4ge1xuXG5cblxuICBzdGF0aWMgaW5zID0gbmV3IEJhc2VQcm9qZWN0UmVzb2x2ZXI8QmFzZVByb2plY3Q+KEJhc2VQcm9qZWN0KTtcblxuXG5cblxuXG4gIHB1YmxpYyBjYWNoZTogYW55ID0ge307XG4gIHB1YmxpYyBzdGF0aWMgY2FjaGU6IGFueSA9IHt9O1xuICBwdWJsaWMgZ2V0IGdsb2JhbENhY2hlKCkge1xuICAgIHJldHVybiBCYXNlUHJvamVjdC5jYWNoZTtcbiAgfVxuICByZWFkb25seSB0eXBlOiBUWVBFIHwgc3RyaW5nID0gJ3Vua25vdyc7XG5cbiAgLyoqXG4gICAqIHJlc29sdmUgaW5zdGFuY2VcbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IGluczogQmFzZVByb2plY3RSZXNvbHZlcjxQUk9KQ0VUPjtcbiAgLyoqXG4gICAqIFVuaXF1ZSBmcmVlIHBvcnQgZm9yIHByb2plY3QgaW5zdGFuY2VcbiAgICogb25seSBhdmFpbGFibGUgYWZ0ZXIgZXhlY3V0aW5nICp0aGlzLmFzc2lnbkZyZWVQb3J0KCkqXG4gICAqL1xuICByZWFkb25seSBwb3J0OiBzdHJpbmc7XG5cbiAgcHVibGljIGxpYnJhcnlCdWlsZDogQmFzZUxpYnJhcnlCdWlsZDtcbiAgcHVibGljIG5wbUhlbHBlcnM6IEJhc2VOcG1IZWxwZXJzO1xuICBwdWJsaWMgbGlua2VkUHJvamVjdHM6IEJhc2VMaW5rZWRQcm9qZWN0cztcbiAgcHVibGljIHZzQ29kZUhlbHBlcnM6IEJhc2VWc2NvZGVIZWxwZXJzO1xuICBwdWJsaWMgcmVsZWFzZVByb2Nlc3M6IEJhc2VSZWxlYXNlUHJvY2VzcztcbiAgcHVibGljIGdpdDogQmFzZUdpdDtcblxuXG4gIHByaXZhdGUgX19sb2NhdGlvbjogc3RyaW5nO1xuICBnZXQgbG9jYXRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fX2xvY2F0aW9uO1xuICB9XG4gIHNldCBsb2NhdGlvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fbG9jYXRpb24gPSBjcm9zc1BsYXRmb3JtUGF0aCh2KTtcbiAgfVxuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBkb2Vzbid0IG5lZWQgdG8gYmUgcmVhbCBwYXRoIC0+IGNhbiBiZSBsaW5rXG4gICAgICovXG4gICAgbG9jYXRpb246IHN0cmluZyxcbiAgKSB7XG4gICAgdGhpcy5sb2NhdGlvbiA9IGxvY2F0aW9uO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgZ2V0IGlzTW9ub3JlcG8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBvcmRlckNvcmVQcm9qZWN0cyhjb3JlUHJvamVjdHM6IENvcmVQcm9qZWN0W10pOiBDb3JlUHJvamVjdFtdIHtcbiAgICBjb25zdCBwcm9qZWN0TWFwID0gbmV3IE1hcDxDb3JlUHJvamVjdCwgQ29yZVByb2plY3RbXT4oKTtcblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgcHJvamVjdE1hcC5zZXQocHJvamVjdCwgW10pO1xuICAgIH1cblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgaWYgKCFwcm9qZWN0TWFwLmhhcyhwcm9qZWN0LmV4dGVuZHMpKSB7XG4gICAgICAgIHByb2plY3RNYXAuc2V0KHByb2plY3QuZXh0ZW5kcywgW10pO1xuICAgICAgfVxuICAgICAgcHJvamVjdE1hcC5nZXQocHJvamVjdC5leHRlbmRzKSEucHVzaChwcm9qZWN0KTtcbiAgICB9XG5cbiAgICBjb25zdCBvcmRlcmVkUHJvamVjdHM6IENvcmVQcm9qZWN0W10gPSBbXTtcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxDb3JlUHJvamVjdD4oKTtcblxuICAgIGNvbnN0IHZpc2l0ID0gKHByb2plY3Q6IENvcmVQcm9qZWN0KSA9PiB7XG4gICAgICBpZiAoIXZpc2l0ZWQuaGFzKHByb2plY3QpKSB7XG4gICAgICAgIHZpc2l0ZWQuYWRkKHByb2plY3QpO1xuICAgICAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBwcm9qZWN0TWFwLmdldChwcm9qZWN0KTtcbiAgICAgICAgaWYgKGRlcGVuZGVuY2llcykge1xuICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgdmlzaXQoZGVwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb3JkZXJlZFByb2plY3RzLnB1c2gocHJvamVjdCk7XG4gICAgICB9XG4gICAgfTtcblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgdmlzaXQocHJvamVjdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyZWRQcm9qZWN0cy5yZXZlcnNlKCk7XG4gIH1cblxuXG5cblxuICBnZXQgY29yZSgpOiBDb3JlUHJvamVjdCB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuY2FjaGVbJ2NvcmUnXSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlWydjb3JlJ107XG4gICAgfVxuXG4gICAgbGV0IGNvcmVQcm9qZWN0cyA9IENvcmVQcm9qZWN0LmNvcmVQcm9qZWN0cy5maWx0ZXIocCA9PlxuICAgICAgcC5yZWNvZ25pemVkRm4odGhpcyBhcyBhbnkpLFxuICAgICk7XG4gICAgY29yZVByb2plY3RzID0gdGhpcy5vcmRlckNvcmVQcm9qZWN0cyhjb3JlUHJvamVjdHMpO1xuXG5cbiAgICB0aGlzLmNhY2hlWydjb3JlJ10gPSBfLmZpcnN0KGNvcmVQcm9qZWN0cyk7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVbJ2NvcmUnXTtcbiAgfVxuXG5cblxuICBnZXQgbGlua2VkUHJvamVjdHNFeGlzdGVkKCk6IFBST0pDRVRbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgc2V0VHlwZSh0eXBlOiBUWVBFKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuXG5cbiAgcHVibGljIHR5cGVJcyguLi50eXBlczogVFlQRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSAmJiB0eXBlcy5pbmNsdWRlcyh0aGlzLnR5cGUgYXMgYW55KTtcbiAgfVxuXG5cblxuICBwdWJsaWMgdHlwZUlzTm90KC4uLnR5cGVzOiBUWVBFW10pIHtcbiAgICByZXR1cm4gIXRoaXMudHlwZUlzKC4uLnR5cGVzKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcHJvamVjdCBmb2xkZXIgYmFzZW5hbWVcbiAgICovXG4gIGdldCBiYXNlbmFtZSgpOiBzdHJpbmcge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBuYW1lIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5wbUhlbHBlcnM/Lm5hbWUgfHwgdGhpcy5uYW1lRnJvbVBvbVhNTDtcbiAgfVxuXG4gIGdldCBuYW1lRm9yQ2xpKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZT8uZW5kc1dpdGgoJy1jbGknKSA/IHRoaXMubmFtZSA6IGAke3RoaXMubmFtZX0tY2xpYDtcbiAgfVxuXG4gIGdldCBuYW1lRnJvbVBvbVhNTCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFydGlmYWN0SWRQYXR0ZXJuID0gLzxhcnRpZmFjdElkPihbXjxdKyk8XFwvYXJ0aWZhY3RJZD4vO1xuICAgIGNvbnN0IG1hdGNoID0gKHRoaXMucmVhZEZpbGUoJ3BvbS54bWwnKSB8fCAnJykubWF0Y2goYXJ0aWZhY3RJZFBhdHRlcm4pO1xuICAgIGlmIChtYXRjaCAmJiBtYXRjaFsxXSkge1xuICAgICAgcmV0dXJuIG1hdGNoWzFdO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGdldEZvbGRlcnNGb3JQb3NzaWJsZVByb2plY3RDaGlsZHJlbigpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBnZXRBbGxDaGlsZHJlbigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGFsaWFzIHRvIGdldEFsbENoaWxkcmVuXG4gICAqL1xuICBnZXQgY2hpbGRyZW4oKTogUFJPSkNFVFtdIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXRDaGlsZEJ5KG5hbWVPckJhc2VuYW1lOiBzdHJpbmcsIGVycm9ycyA9IHRydWUpOiBQUk9KQ0VUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBwYXJlbnQoKTogUFJPSkNFVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGdyYW5kcGEoKTogUFJPSkNFVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBnZW5lcmljTmFtZSgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBjaGVja0FuZEJvbGRlblBhdGgoZnVsbFBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcnRzID0gZnVsbFBhdGguc3BsaXQoJy8nKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHBhcnRzLm1hcCgocGFydCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHBhdGhUb2NoZWNrID0gcGFydHMuc2xpY2UoMCwgaW5kZXggKyAxKS5qb2luKCcvJyk7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHBhcnQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJy8nKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBoYXMgcHJvamVjdC5oYXNGaWxlKCk7XG4gICAqL1xuICBwYXRoRXhpc3RzKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNGaWxlKHJlbGF0aXZlUGF0aCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcHJvamVjdC5wYXRoRXhpc3RzKCk7XG4gICAqL1xuICBoYXNGaWxlKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbiAgaGFzRm9sZGVyKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBhcyBwcm9qZWN0LnBhdGhoYXNGaWxlRXhpc3RzKCk7XG4gICAqIGJ1dCB3aXRoIHBhdGgucmVzb2x2ZVxuICAgKi9cbiAgY29udGFpbnNGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKFxuICAgICAgcGF0aC5qb2luKHRoaXMubG9jYXRpb24sIGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGgpLFxuICAgICk7XG4gICAgcmV0dXJuIEhlbHBlcnMuZXhpc3RzKGZ1bGxQYXRoKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYWJzb2x1dGUgcGF0aDpcbiAgICogY29uY2F0ZWQgcHJvamVjdCBsb2NhdGlvbiB3aXRoIHJlbGF0aXZlIHBhdGhcbiAgICovXG4gIHBhdGhGb3IocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHdyaXRlSnNvbihyZWxhdGl2ZVBhdGg6IHN0cmluZywganNvbjogb2JqZWN0KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgd3JpdGVKc29uQyhyZWxhdGl2ZVBhdGg6IHN0cmluZywganNvbjogb2JqZWN0KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzIGV4ZWN1dGUgaW5zdGVhZFxuICAgKiB1c2Ugb3V0cHV0IGZyb20gb3IgbW9yZSBwcmVjaWVzZSBjcmFmdGVkIGFwaVxuICAgKi9cbiAgcnVuKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8Q29yZU1vZGVscy5SdW5PcHRpb25zLCAnY3dkJz4pIHtcbiAgICBsZXQgb3B0OiBDb3JlTW9kZWxzLlJ1bk9wdGlvbnM7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIEhlbHBlcnMucnVuKGNvbW1hbmQsIG9wdCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcnVuIGJ1dCBhc3luY1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGV4ZWN1dGUoXG4gICAgY29tbWFuZDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBDb3JlTW9kZWxzLkV4ZWN1dGVPcHRpb25zICYgeyBzaG93Q29tbWFuZD86IGJvb2xlYW4gfSxcbiAgKTogUHJvbWlzZTxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiB0cnkgcnVuIGJ1dCBjb250aW51ZSB3aGVuIGl0IGZhaWxzXG4gICAqIEBwYXJhbSBjb21tYW5kXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICB0cnlSdW5TeW5jKFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbi8qICovXG4vKiAqL1xuICBcbiAgKTogdm9pZCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIG91dHB1dEZyb20oXG4gICAgY29tbWFuZDogc3RyaW5nLFxuLyogKi9cbi8qICovXG4gIFxuICApIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZW1vdmVGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlYWRGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcmVhZCBqc29uIGZpbGVcbiAgICogaGFuZGxlIGFsbCBqc29uIGZpbGVzXG4gICAqIGpzb25jLCBqc29uNSAsIGpzb25cbiAgICogQHBhcmFtIGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGhcbiAgICogQHJldHVybnNcbiAgICovXG4gIHJlYWRKc29uPFQgPSB7fT4oZmlsZVJlbGF0aXZlVG9Qcm9qZWN0UGF0aDogc3RyaW5nKTogVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGNvcHkgZmlsZXMgb3IgZm9sZGVycyBmcm9tXG4gICAqIHByb2plY3QgdG8gZGVzdGluYXRpb25cbiAgICovXG4gIGNvcHkoZmlsZXNPckZvbGRlclJlbGF0aXZlUGF0aGVzOiBzdHJpbmdbXSk6IHtcbiAgICB0bzogKGRlc3RpbmF0aW9uOiBzdHJpbmcpID0+IHZvaWQ7XG4gIH0ge1xuICAgIHJldHVybiB7XG4gICAgICB0bzogKGRlc3RpbmF0aW9uOiBzdHJpbmcpOiB2b2lkID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuXG5cbiAgcmVtb3ZlKHJlbGF0aXZlUGF0aDogc3RyaW5nLCBleGFjdFBhdGggPSB0cnVlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHJlbW92ZUZvbGRlckJ5UmVsYXRpdmVQYXRoKHJlbGF0aXZlUGF0aFRvRm9sZGVyOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBhc3luYyBhc3NpZ25GcmVlUG9ydChcbiAgICBzdGFydEZyb206IG51bWJlciA9IDQyMDAsXG4gICAgaG93TWFueUZyZWVQb3J0c0FmdGVyVGhhdFBvcnQ6IG51bWJlciA9IDAsXG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlbW92ZUl0c2VsZigpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICAvKipcbiAgICogUHVycG9zZTogbm90IGluaXRpYWxpemluZyBhbGwgY2xhc3NlcyBhdCB0aGUgYmVnaW5uaW5nXG4gICAqIE9ubHkgZm9yIEJhc2VGZWF0dXJlRm9yUHJvamVjdCBjbGFzc1xuICAgKi9cbiAgZGVmaW5lUHJvcGVydHk8UFJPSkVDVD4oXG4gICAgdmFyaWFibGVOYW1lOiBrZXlvZiBQUk9KRUNULFxuICAgIGNsYXNzRm46IEZ1bmN0aW9uLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBjdXN0b21JbnN0YW5jZVJldHVybj86ICgpID0+IG9iamVjdDtcbiAgICB9LFxuICApIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBmcy5jb3B5IG9wdGlvbiBmaWx0ZXIgZnVuY3Rpb24gZm9yIGNvcHlpbmcgb25seSBzZWxlY3RlZCBmb2xkZXJzIGZyb20gcHJvamVjdFxuICAgKi9cbiAgZmlsdGVyT25seUNvcHkoYmFzZVBhdGhGb2xkZXJzT25seVRvSW5jbHVkZTogc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZnMuY29weSBvcHRpb24gZmlsdGVyIGZ1bmN0aW9uIGZvciBjb3B5aW5nIG9ubHkgbm90IHNlbGVjdGVkIGZvbGRlcnMgZnJvbSBwcm9qZWN0XG4gICAqL1xuICBmaWx0ZXJEb250Q29weShiYXNlUGF0aEZvbGRlcnNUb3NTa2lwOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnZW5lcmFsIGRlZmF1bHQgZGV2ZWxvcG1lbnQgYnJhbmNoIGZvciBhbGwga2luZHMgb2YgcHJvamVjdHNcbiAgICovXG4gIGdldERlZmF1bHREZXZlbG9wbWVudEJyYW5jaCgpIHtcbiAgICByZXR1cm4gJ2RldmVsb3AnO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBtYWluL2RlZmF1bHQgaGFyZGNvZGVkIGJyYW5jaGVzXG4gICAqL1xuICBnZXRNYWluQnJhbmNoZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ21hc3RlcicsICdkZXZlbG9wJywgJ3N0YWdlJywgJ3Byb2QnLCAndGVzdCddO1xuICB9XG5cblxuXG4gIGlzVW5zaW5nQWN0aW9uQ29tbWl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG5cblxuICBhc3luYyByZXNldFByb2Nlc3Mob3ZlcnJpZGVCcmFuY2g/OiBzdHJpbmcsIHJlY3J1c2l2ZSA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgbGlua1RvKGRlc3RQYWNrYWdlTG9jYXRpb246IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHNldFZhbHVlVG9KU09OKFxuICAgIHJlbGF0aXZlUGF0aDogc3RyaW5nLFxuICAgIGxvZGFzaEdldFBhdGg6IHN0cmluZyxcbiAgICB2YWx1ZTogYW55LFxuICApOiB2b2lkIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBzZXRWYWx1ZVRvSlNPTkMoXG4gICAgcmVsYXRpdmVQYXRoOiBzdHJpbmcsXG4gICAgbG9kYXNoR2V0UGF0aDogc3RyaW5nLFxuICAgIHZhbHVlOiBhbnksXG4gICk6IHZvaWQge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHNldFZhbHVlVG9KU09ONShcbiAgICByZWxhdGl2ZVBhdGg6IHN0cmluZyxcbiAgICBsb2Rhc2hHZXRQYXRoOiBzdHJpbmcsXG4gICAgdmFsdWU6IGFueSxcbiAgKTogdm9pZCB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0VmFsdWVGcm9tSlNPTihcbiAgICByZWxhdGl2ZVBhdGg6IHN0cmluZyxcbiAgICBsb2Rhc2hHZXRQYXRoOiBzdHJpbmcsXG4gICAgZGVmYXVsdFZhbHVlOiBhbnkgPSB2b2lkIDAsXG4gICk6IGFueSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldFZhbHVlRnJvbUpTT05DKFxuICAgIHJlbGF0aXZlUGF0aDogc3RyaW5nLFxuICAgIGxvZGFzaEdldFBhdGg6IHN0cmluZyxcbiAgICBkZWZhdWx0VmFsdWU6IGFueSA9IHZvaWQgMCxcbiAgKTogYW55IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cblxuICB3cml0ZUZpbGUocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHB1YmxpYyBydW5Db21tYW5kR2V0U3RyaW5nKHRoaXM6IEJhc2VQcm9qZWN0LCBjb21tYW5kOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHRvU3RyaW5nID0gKCkgPT4ge1xuICAgIHJldHVybiBgJHt0aGlzLm5hbWV9PT4ke3RoaXMubG9jYXRpb259YDtcbiAgfTtcblxuXG5cbiAgZ2V0IHBhcmVudHNOYW1lcygpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgb3BlbkxvY2F0aW9uKHJlbGF0aXZlRm9sZGVyUGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIHByaXZhdGUgZmluZFBhcmVudHNOYW1lcyhcbiAgICBwcm9qZWN0PzogUFJPSkNFVCxcbiAgICBwYXJlbnQ/OiBQUk9KQ0VULFxuICAgIHJlc3VsdCA9IFtdLFxuICApOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgdHJ5S2lsbEFsbEVsZWN0cm9uSW5zdGFuY2VzKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGluaXQgcHJvamVjdCBmaWxlcyBzdHJ1Y3R1cmUgYW5kIGRlcGVkZW5jaWVzXG4gICAqL1xuICBhc3luYyBpbml0KGluaXRPcHRpb25zPzogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnbG9iYWxseSBsaW5rIG5wbSBhcyBwYWNrYWdlXG4gICAqL1xuICBhc3luYyBsaW5rKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogaW5pdCBwcm9qZWN0IGZpbGVzIHN0cnVjdHVyZSB3aXRob3V0IGRlcGVkZW5jaWVzXG4gICAqL1xuICBhc3luYyBzdHJ1Y3QoaW5pdE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGluaXQgYW5kIGJ1aWxkKCkgcHJvamVjdFxuICAgKi9cbiAgYXN5bmMgdGVzdCh0ZXN0T3B0aW9ucz86IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogaW5pdCBhbmQgYnVpbGQoKSBwcm9qZWN0XG4gICAqL1xuICBhc3luYyBidWlsZChidWlsZE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHB1Ymxpc2ggcHJvamVjdCB0byBucG1cbiAgICovXG4gIGFzeW5jIHB1Ymxpc2gocHVibGlzaE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgYXN5bmMgcmVsZWFzZShyZWxlYXNlT3B0aW9ucz86IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogbGludCBwb3JqZWN0XG4gICAqL1xuICBhc3luYyBsaW50KGxpbnRPcHRpb25zPzogYW55KSB7XG4gICAgSGVscGVycy5pbmZvKGBcblxuXG4gICAgQ09NTUlUIExJTlQgTk9UIElNUExFTUVOVEVEXG5cblxuICAgIGApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnZXQgaW5mbyBhYm91dCBwb3JqZWN0XG4gICAqL1xuICBhc3luYyBpbmZvKCkge1xuICAgIGNvbnN0IHByb2ogPSB0aGlzO1xuICAgIEhlbHBlcnMuaW5mbyhcbiAgICAgIGBcblxuICBuYW1lOiAke3Byb2o/Lm5hbWV9XG4gIHR5cGU6ICR7cHJvaj8udHlwZX1cbiAgY29yZSBwcm9qZWN0IG5hbWU6ICcke3Byb2o/LmNvcmU/Lm5hbWV9J1xuICBlbWJlZGRlZCBwcm9qZWN0OiAke3Byb2o/LmxpbmtlZFByb2plY3RzLmVtYmVkZGVkUHJvamVjdD8uZ2VuZXJpY05hbWUgfHwgJzwgbm9uZSA+J31cbiAgY2hpbGRyZW4gKCR7cHJvaj8uY2hpbGRyZW4ubGVuZ3RofSk6ICR7IXByb2ogfHwgIXByb2ouY2hpbGRyZW4ubGVuZ3RoID8gJzwgbm9uZSA+JyA6ICcnfVxuJHtwcm9qPy5jaGlsZHJlbi5tYXAoYyA9PiAnKycgKyBjLmdlbmVyaWNOYW1lKS5qb2luKCdcXG4nKX1cblxuICBsaWJyYXJpZXMgKCR7cHJvaj8ubGlicmFyeUJ1aWxkPy5saWJyYXJpZXM/Lmxlbmd0aH0pOiAke1xuICAgICFwcm9qIHx8ICFwcm9qLmxpYnJhcnlCdWlsZD8ubGlicmFyaWVzPy5sZW5ndGggPyAnPCBub25lID4nIDogJydcbiAgfVxuJHtwcm9qPy5saWJyYXJ5QnVpbGQ/LmxpYnJhcmllcz8ubWFwKGMgPT4gJysnICsgYy5nZW5lcmljTmFtZSkuam9pbignXFxuJyl9XG5gICtcbiAgICAgICAgYFxubGlua2VkIHBvcmplY3QgcHJlZml4OiBcIiR7dGhpcy5saW5rZWRQcm9qZWN0cy5saW5rZWRQcm9qZWN0c1ByZWZpeH1cIlxuXG5saW5rZWQgcHJvamVjdHMgZnJvbSBqc29uICgke3RoaXMubGlua2VkUHJvamVjdHMubGlua2VkUHJvamVjdHM/Lmxlbmd0aCB8fCAwfSk6XG4keyh0aGlzLmxpbmtlZFByb2plY3RzLmxpbmtlZFByb2plY3RzIHx8IFtdKVxuICAubWFwKGMgPT4ge1xuICAgIGNvbnN0IHByb2ogPSB0aGlzLmlucy5Gcm9tKHRoaXMucGF0aEZvcihjLnJlbGF0aXZlQ2xvbmVQYXRoKSk7XG4gICAgcmV0dXJuICctICcgKyBwcm9qID8gcHJvaj8uZ2VuZXJpY05hbWUgOiBjLnJlbGF0aXZlQ2xvbmVQYXRoO1xuICB9KVxuICAuam9pbignXFxuJyl9XG5cbiAgYCxcbiAgICApO1xuXG5cblxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdfQ==
791
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQWtCLFdBQVcsRUFBSSxPQUFPLEdBQTRELE1BQU0sVUFBVSxDQUFDLENBQUEsS0FBSztBQUNqSSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQWU5RCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFFdEIsTUFBTSxPQUFnQixXQUFXO2FBT3hCLFFBQUcsR0FBRyxJQUFJLG1CQUFtQixDQUFjLFdBQVcsQ0FBQyxBQUFwRCxDQUFxRDthQU9qRCxVQUFLLEdBQVEsRUFBRSxBQUFWLENBQVc7SUFDOUIsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBc0JELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBUztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFHRCxhQUFhO0lBQ2I7SUFDRTs7T0FFRztJQUNILFFBQWdC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Q0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUNoRTtFQUNBLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztDQUN4RTtZQUNPOzBCQUNrQixJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQjs7NkJBRXJDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLE1BQU0sSUFBSSxDQUFDO0VBQzFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO2lCQUN6QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1AsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUMvRCxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQzs7R0FFVixDQUNFLENBQUM7SUFJSixDQUFDOztBQUlGLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBDb3JlTW9kZWxzIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBDTEkgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IHBhdGgsIGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICd0bnAtY29uZmlnL2Jyb3dzZXInO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgICBDb21taXREYXRhLCAgIENvcmVQcm9qZWN0LCAgIEhlbHBlcnMsICAgTGlua2VkUG9yamVjdHNDb25maWcsICAgTGlua2VkUHJvamVjdCwgICBUeXBlT2ZDb21taXQsIH0gZnJvbSAnLi4vaW5kZXgnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IEJhc2VQcm9qZWN0UmVzb2x2ZXIgfSBmcm9tICcuL2Jhc2UtcHJvamVjdC1yZXNvbHZlcic7XG5pbXBvcnQgeyAgIEJhc2VQcm9qZWN0VHlwZSwgICBMaWJyYXJpZXNCdWlsZE9wdGlvbnMsICAgTGlicmFyeUJ1aWxkQ29tbWFuZE9wdGlvbnMsICAgTmdQcm9qZWN0LCB9IGZyb20gJy4uL21vZGVscyc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB0eXBlIHsgQmFzZUxpYnJhcnlCdWlsZCB9IGZyb20gJy4vYmFzZS1saWJyYXJ5LWJ1aWxkJztcbmltcG9ydCB7IEJhc2VOcG1IZWxwZXJzIH0gZnJvbSAnLi9iYXNlLW5wbS1oZWxwZXJzJztcbmltcG9ydCB7IEJhc2VMaW5rZWRQcm9qZWN0cyB9IGZyb20gJy4vYmFzZS1saW5rZWQtcHJvamVjdHMnO1xuaW1wb3J0IHsgQmFzZUdpdCB9IGZyb20gJy4vYmFzZS1naXQnO1xuaW1wb3J0IHsgQmFzZVZzY29kZUhlbHBlcnMgfSBmcm9tICcuL2Jhc2UtdnNjb2RlJztcbmltcG9ydCB7IEJhc2VSZWxlYXNlUHJvY2VzcyB9IGZyb20gJy4vYmFzZS1yZWxlYXNlLXByb2Nlc3MnO1xuXG5cbmNvbnN0IHRha2VuUG9ydHMgPSBbXTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VQcm9qZWN0PFxuICBQUk9KQ0VUIGV4dGVuZHMgQmFzZVByb2plY3Q8YW55LCBhbnk+ID0gQmFzZVByb2plY3Q8YW55LCBhbnk+LFxuICBUWVBFID0gQmFzZVByb2plY3RUeXBlLFxuPiB7XG5cblxuXG4gIHN0YXRpYyBpbnMgPSBuZXcgQmFzZVByb2plY3RSZXNvbHZlcjxCYXNlUHJvamVjdD4oQmFzZVByb2plY3QpO1xuXG5cblxuXG5cbiAgcHVibGljIGNhY2hlOiBhbnkgPSB7fTtcbiAgcHVibGljIHN0YXRpYyBjYWNoZTogYW55ID0ge307XG4gIHB1YmxpYyBnZXQgZ2xvYmFsQ2FjaGUoKSB7XG4gICAgcmV0dXJuIEJhc2VQcm9qZWN0LmNhY2hlO1xuICB9XG4gIHJlYWRvbmx5IHR5cGU6IFRZUEUgfCBzdHJpbmcgPSAndW5rbm93JztcblxuICAvKipcbiAgICogcmVzb2x2ZSBpbnN0YW5jZVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyPFBST0pDRVQ+O1xuICAvKipcbiAgICogVW5pcXVlIGZyZWUgcG9ydCBmb3IgcHJvamVjdCBpbnN0YW5jZVxuICAgKiBvbmx5IGF2YWlsYWJsZSBhZnRlciBleGVjdXRpbmcgKnRoaXMuYXNzaWduRnJlZVBvcnQoKSpcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IHN0cmluZztcblxuICBwdWJsaWMgbGlicmFyeUJ1aWxkOiBCYXNlTGlicmFyeUJ1aWxkPEJhc2VQcm9qZWN0PjtcbiAgcHVibGljIG5wbUhlbHBlcnM6IEJhc2VOcG1IZWxwZXJzO1xuICBwdWJsaWMgbGlua2VkUHJvamVjdHM6IEJhc2VMaW5rZWRQcm9qZWN0cztcbiAgcHVibGljIHZzQ29kZUhlbHBlcnM6IEJhc2VWc2NvZGVIZWxwZXJzO1xuICBwdWJsaWMgcmVsZWFzZVByb2Nlc3M6IEJhc2VSZWxlYXNlUHJvY2VzcztcbiAgcHVibGljIGdpdDogQmFzZUdpdDtcblxuXG4gIHByaXZhdGUgX19sb2NhdGlvbjogc3RyaW5nO1xuICBnZXQgbG9jYXRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fX2xvY2F0aW9uO1xuICB9XG4gIHNldCBsb2NhdGlvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fbG9jYXRpb24gPSBjcm9zc1BsYXRmb3JtUGF0aCh2KTtcbiAgfVxuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBkb2Vzbid0IG5lZWQgdG8gYmUgcmVhbCBwYXRoIC0+IGNhbiBiZSBsaW5rXG4gICAgICovXG4gICAgbG9jYXRpb246IHN0cmluZyxcbiAgKSB7XG4gICAgdGhpcy5sb2NhdGlvbiA9IGxvY2F0aW9uO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgZ2V0IGlzTW9ub3JlcG8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBvcmRlckNvcmVQcm9qZWN0cyhjb3JlUHJvamVjdHM6IENvcmVQcm9qZWN0W10pOiBDb3JlUHJvamVjdFtdIHtcbiAgICBjb25zdCBwcm9qZWN0TWFwID0gbmV3IE1hcDxDb3JlUHJvamVjdCwgQ29yZVByb2plY3RbXT4oKTtcblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgcHJvamVjdE1hcC5zZXQocHJvamVjdCwgW10pO1xuICAgIH1cblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgaWYgKCFwcm9qZWN0TWFwLmhhcyhwcm9qZWN0LmV4dGVuZHMpKSB7XG4gICAgICAgIHByb2plY3RNYXAuc2V0KHByb2plY3QuZXh0ZW5kcywgW10pO1xuICAgICAgfVxuICAgICAgcHJvamVjdE1hcC5nZXQocHJvamVjdC5leHRlbmRzKSEucHVzaChwcm9qZWN0KTtcbiAgICB9XG5cbiAgICBjb25zdCBvcmRlcmVkUHJvamVjdHM6IENvcmVQcm9qZWN0W10gPSBbXTtcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxDb3JlUHJvamVjdD4oKTtcblxuICAgIGNvbnN0IHZpc2l0ID0gKHByb2plY3Q6IENvcmVQcm9qZWN0KSA9PiB7XG4gICAgICBpZiAoIXZpc2l0ZWQuaGFzKHByb2plY3QpKSB7XG4gICAgICAgIHZpc2l0ZWQuYWRkKHByb2plY3QpO1xuICAgICAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBwcm9qZWN0TWFwLmdldChwcm9qZWN0KTtcbiAgICAgICAgaWYgKGRlcGVuZGVuY2llcykge1xuICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgdmlzaXQoZGVwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb3JkZXJlZFByb2plY3RzLnB1c2gocHJvamVjdCk7XG4gICAgICB9XG4gICAgfTtcblxuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIGNvcmVQcm9qZWN0cykge1xuICAgICAgdmlzaXQocHJvamVjdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyZWRQcm9qZWN0cy5yZXZlcnNlKCk7XG4gIH1cblxuXG5cblxuICBnZXQgY29yZSgpOiBDb3JlUHJvamVjdCB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuY2FjaGVbJ2NvcmUnXSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlWydjb3JlJ107XG4gICAgfVxuXG4gICAgbGV0IGNvcmVQcm9qZWN0cyA9IENvcmVQcm9qZWN0LmNvcmVQcm9qZWN0cy5maWx0ZXIocCA9PlxuICAgICAgcC5yZWNvZ25pemVkRm4odGhpcyBhcyBhbnkpLFxuICAgICk7XG4gICAgY29yZVByb2plY3RzID0gdGhpcy5vcmRlckNvcmVQcm9qZWN0cyhjb3JlUHJvamVjdHMpO1xuXG5cbiAgICB0aGlzLmNhY2hlWydjb3JlJ10gPSBfLmZpcnN0KGNvcmVQcm9qZWN0cyk7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVbJ2NvcmUnXTtcbiAgfVxuXG5cblxuICBnZXQgbGlua2VkUHJvamVjdHNFeGlzdGVkKCk6IFBST0pDRVRbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgc2V0VHlwZSh0eXBlOiBUWVBFKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuXG5cbiAgcHVibGljIHR5cGVJcyguLi50eXBlczogVFlQRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSAmJiB0eXBlcy5pbmNsdWRlcyh0aGlzLnR5cGUgYXMgYW55KTtcbiAgfVxuXG5cblxuICBwdWJsaWMgdHlwZUlzTm90KC4uLnR5cGVzOiBUWVBFW10pIHtcbiAgICByZXR1cm4gIXRoaXMudHlwZUlzKC4uLnR5cGVzKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcHJvamVjdCBmb2xkZXIgYmFzZW5hbWVcbiAgICovXG4gIGdldCBiYXNlbmFtZSgpOiBzdHJpbmcge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBuYW1lIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5wbUhlbHBlcnM/Lm5hbWUgfHwgdGhpcy5uYW1lRnJvbVBvbVhNTDtcbiAgfVxuXG4gIGdldCBuYW1lRm9yQ2xpKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZT8uZW5kc1dpdGgoJy1jbGknKSA/IHRoaXMubmFtZSA6IGAke3RoaXMubmFtZX0tY2xpYDtcbiAgfVxuXG4gIGdldCBuYW1lRnJvbVBvbVhNTCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFydGlmYWN0SWRQYXR0ZXJuID0gLzxhcnRpZmFjdElkPihbXjxdKyk8XFwvYXJ0aWZhY3RJZD4vO1xuICAgIGNvbnN0IG1hdGNoID0gKHRoaXMucmVhZEZpbGUoJ3BvbS54bWwnKSB8fCAnJykubWF0Y2goYXJ0aWZhY3RJZFBhdHRlcm4pO1xuICAgIGlmIChtYXRjaCAmJiBtYXRjaFsxXSkge1xuICAgICAgcmV0dXJuIG1hdGNoWzFdO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGdldEZvbGRlcnNGb3JQb3NzaWJsZVByb2plY3RDaGlsZHJlbigpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBnZXRBbGxDaGlsZHJlbigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGFsaWFzIHRvIGdldEFsbENoaWxkcmVuXG4gICAqL1xuICBnZXQgY2hpbGRyZW4oKTogUFJPSkNFVFtdIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXRDaGlsZEJ5KG5hbWVPckJhc2VuYW1lOiBzdHJpbmcsIGVycm9ycyA9IHRydWUpOiBQUk9KQ0VUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBwYXJlbnQoKTogUFJPSkNFVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGdyYW5kcGEoKTogUFJPSkNFVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBnZW5lcmljTmFtZSgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBjaGVja0FuZEJvbGRlblBhdGgoZnVsbFBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcnRzID0gZnVsbFBhdGguc3BsaXQoJy8nKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHBhcnRzLm1hcCgocGFydCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHBhdGhUb2NoZWNrID0gcGFydHMuc2xpY2UoMCwgaW5kZXggKyAxKS5qb2luKCcvJyk7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHBhcnQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJy8nKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBoYXMgcHJvamVjdC5oYXNGaWxlKCk7XG4gICAqL1xuICBwYXRoRXhpc3RzKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNGaWxlKHJlbGF0aXZlUGF0aCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcHJvamVjdC5wYXRoRXhpc3RzKCk7XG4gICAqL1xuICBoYXNGaWxlKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbiAgaGFzRm9sZGVyKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBhcyBwcm9qZWN0LnBhdGhoYXNGaWxlRXhpc3RzKCk7XG4gICAqIGJ1dCB3aXRoIHBhdGgucmVzb2x2ZVxuICAgKi9cbiAgY29udGFpbnNGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKFxuICAgICAgcGF0aC5qb2luKHRoaXMubG9jYXRpb24sIGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGgpLFxuICAgICk7XG4gICAgcmV0dXJuIEhlbHBlcnMuZXhpc3RzKGZ1bGxQYXRoKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYWJzb2x1dGUgcGF0aDpcbiAgICogY29uY2F0ZWQgcHJvamVjdCBsb2NhdGlvbiB3aXRoIHJlbGF0aXZlIHBhdGhcbiAgICovXG4gIHBhdGhGb3IocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHdyaXRlSnNvbihyZWxhdGl2ZVBhdGg6IHN0cmluZywganNvbjogb2JqZWN0KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgd3JpdGVKc29uQyhyZWxhdGl2ZVBhdGg6IHN0cmluZywganNvbjogb2JqZWN0KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzIGV4ZWN1dGUgaW5zdGVhZFxuICAgKiB1c2Ugb3V0cHV0IGZyb20gb3IgbW9yZSBwcmVjaWVzZSBjcmFmdGVkIGFwaVxuICAgKi9cbiAgcnVuKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8Q29yZU1vZGVscy5SdW5PcHRpb25zLCAnY3dkJz4pIHtcbiAgICBsZXQgb3B0OiBDb3JlTW9kZWxzLlJ1bk9wdGlvbnM7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIEhlbHBlcnMucnVuKGNvbW1hbmQsIG9wdCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcnVuIGJ1dCBhc3luY1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGV4ZWN1dGUoXG4gICAgY29tbWFuZDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBDb3JlTW9kZWxzLkV4ZWN1dGVPcHRpb25zICYgeyBzaG93Q29tbWFuZD86IGJvb2xlYW4gfSxcbiAgKTogUHJvbWlzZTxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiB0cnkgcnVuIGJ1dCBjb250aW51ZSB3aGVuIGl0IGZhaWxzXG4gICAqIEBwYXJhbSBjb21tYW5kXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICB0cnlSdW5TeW5jKFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbi8qICovXG4vKiAqL1xuICBcbiAgKTogdm9pZCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIG91dHB1dEZyb20oXG4gICAgY29tbWFuZDogc3RyaW5nLFxuLyogKi9cbi8qICovXG4gIFxuICApIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZW1vdmVGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlYWRGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcmVhZCBqc29uIGZpbGVcbiAgICogaGFuZGxlIGFsbCBqc29uIGZpbGVzXG4gICAqIGpzb25jLCBqc29uNSAsIGpzb25cbiAgICogQHBhcmFtIGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGhcbiAgICogQHJldHVybnNcbiAgICovXG4gIHJlYWRKc29uPFQgPSB7fT4oZmlsZVJlbGF0aXZlVG9Qcm9qZWN0UGF0aDogc3RyaW5nKTogVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGNvcHkgZmlsZXMgb3IgZm9sZGVycyBmcm9tXG4gICAqIHByb2plY3QgdG8gZGVzdGluYXRpb25cbiAgICovXG4gIGNvcHkoZmlsZXNPckZvbGRlclJlbGF0aXZlUGF0aGVzOiBzdHJpbmdbXSk6IHtcbiAgICB0bzogKGRlc3RpbmF0aW9uOiBzdHJpbmcpID0+IHZvaWQ7XG4gIH0ge1xuICAgIHJldHVybiB7XG4gICAgICB0bzogKGRlc3RpbmF0aW9uOiBzdHJpbmcpOiB2b2lkID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuXG5cbiAgcmVtb3ZlKHJlbGF0aXZlUGF0aDogc3RyaW5nLCBleGFjdFBhdGggPSB0cnVlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHJlbW92ZUZvbGRlckJ5UmVsYXRpdmVQYXRoKHJlbGF0aXZlUGF0aFRvRm9sZGVyOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBhc3luYyBhc3NpZ25GcmVlUG9ydChcbiAgICBzdGFydEZyb206IG51bWJlciA9IDQyMDAsXG4gICAgaG93TWFueUZyZWVQb3J0c0FmdGVyVGhhdFBvcnQ6IG51bWJlciA9IDAsXG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlbW92ZUl0c2VsZigpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICAvKipcbiAgICogUHVycG9zZTogbm90IGluaXRpYWxpemluZyBhbGwgY2xhc3NlcyBhdCB0aGUgYmVnaW5uaW5nXG4gICAqIE9ubHkgZm9yIEJhc2VGZWF0dXJlRm9yUHJvamVjdCBjbGFzc1xuICAgKi9cbiAgZGVmaW5lUHJvcGVydHk8UFJPSkVDVD4oXG4gICAgdmFyaWFibGVOYW1lOiBrZXlvZiBQUk9KRUNULFxuICAgIGNsYXNzRm46IEZ1bmN0aW9uLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBjdXN0b21JbnN0YW5jZVJldHVybj86ICgpID0+IG9iamVjdDtcbiAgICB9LFxuICApIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBmcy5jb3B5IG9wdGlvbiBmaWx0ZXIgZnVuY3Rpb24gZm9yIGNvcHlpbmcgb25seSBzZWxlY3RlZCBmb2xkZXJzIGZyb20gcHJvamVjdFxuICAgKi9cbiAgZmlsdGVyT25seUNvcHkoYmFzZVBhdGhGb2xkZXJzT25seVRvSW5jbHVkZTogc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZnMuY29weSBvcHRpb24gZmlsdGVyIGZ1bmN0aW9uIGZvciBjb3B5aW5nIG9ubHkgbm90IHNlbGVjdGVkIGZvbGRlcnMgZnJvbSBwcm9qZWN0XG4gICAqL1xuICBmaWx0ZXJEb250Q29weShiYXNlUGF0aEZvbGRlcnNUb3NTa2lwOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnZW5lcmFsIGRlZmF1bHQgZGV2ZWxvcG1lbnQgYnJhbmNoIGZvciBhbGwga2luZHMgb2YgcHJvamVjdHNcbiAgICovXG4gIGdldERlZmF1bHREZXZlbG9wbWVudEJyYW5jaCgpIHtcbiAgICByZXR1cm4gJ2RldmVsb3AnO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBtYWluL2RlZmF1bHQgaGFyZGNvZGVkIGJyYW5jaGVzXG4gICAqL1xuICBnZXRNYWluQnJhbmNoZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ21hc3RlcicsICdkZXZlbG9wJywgJ3N0YWdlJywgJ3Byb2QnLCAndGVzdCddO1xuICB9XG5cblxuXG4gIGlzVW5zaW5nQWN0aW9uQ29tbWl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG5cblxuICBhc3luYyByZXNldFByb2Nlc3Mob3ZlcnJpZGVCcmFuY2g/OiBzdHJpbmcsIHJlY3J1c2l2ZSA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgbGlua1RvKGRlc3RQYWNrYWdlTG9jYXRpb246IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHNldFZhbHVlVG9KU09OKFxuICAgIHJlbGF0aXZlUGF0aDogc3RyaW5nLFxuICAgIGxvZGFzaEdldFBhdGg6IHN0cmluZyxcbiAgICB2YWx1ZTogYW55LFxuICApOiB2b2lkIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBzZXRWYWx1ZVRvSlNPTkMoXG4gICAgcmVsYXRpdmVQYXRoOiBzdHJpbmcsXG4gICAgbG9kYXNoR2V0UGF0aDogc3RyaW5nLFxuICAgIHZhbHVlOiBhbnksXG4gICk6IHZvaWQge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHNldFZhbHVlVG9KU09ONShcbiAgICByZWxhdGl2ZVBhdGg6IHN0cmluZyxcbiAgICBsb2Rhc2hHZXRQYXRoOiBzdHJpbmcsXG4gICAgdmFsdWU6IGFueSxcbiAgKTogdm9pZCB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0VmFsdWVGcm9tSlNPTihcbiAgICByZWxhdGl2ZVBhdGg6IHN0cmluZyxcbiAgICBsb2Rhc2hHZXRQYXRoOiBzdHJpbmcsXG4gICAgZGVmYXVsdFZhbHVlOiBhbnkgPSB2b2lkIDAsXG4gICk6IGFueSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldFZhbHVlRnJvbUpTT05DKFxuICAgIHJlbGF0aXZlUGF0aDogc3RyaW5nLFxuICAgIGxvZGFzaEdldFBhdGg6IHN0cmluZyxcbiAgICBkZWZhdWx0VmFsdWU6IGFueSA9IHZvaWQgMCxcbiAgKTogYW55IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cblxuICB3cml0ZUZpbGUocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHB1YmxpYyBydW5Db21tYW5kR2V0U3RyaW5nKHRoaXM6IEJhc2VQcm9qZWN0LCBjb21tYW5kOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHRvU3RyaW5nID0gKCkgPT4ge1xuICAgIHJldHVybiBgJHt0aGlzLm5hbWV9PT4ke3RoaXMubG9jYXRpb259YDtcbiAgfTtcblxuXG5cbiAgZ2V0IHBhcmVudHNOYW1lcygpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgb3BlbkxvY2F0aW9uKHJlbGF0aXZlRm9sZGVyUGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIHByaXZhdGUgZmluZFBhcmVudHNOYW1lcyhcbiAgICBwcm9qZWN0PzogUFJPSkNFVCxcbiAgICBwYXJlbnQ/OiBQUk9KQ0VULFxuICAgIHJlc3VsdCA9IFtdLFxuICApOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgdHJ5S2lsbEFsbEVsZWN0cm9uSW5zdGFuY2VzKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGluaXQgcHJvamVjdCBmaWxlcyBzdHJ1Y3R1cmUgYW5kIGRlcGVkZW5jaWVzXG4gICAqL1xuICBhc3luYyBpbml0KGluaXRPcHRpb25zPzogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnbG9iYWxseSBsaW5rIG5wbSBhcyBwYWNrYWdlXG4gICAqL1xuICBhc3luYyBsaW5rKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogaW5pdCBwcm9qZWN0IGZpbGVzIHN0cnVjdHVyZSB3aXRob3V0IGRlcGVkZW5jaWVzXG4gICAqL1xuICBhc3luYyBzdHJ1Y3QoaW5pdE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGluaXQgYW5kIGJ1aWxkKCkgcHJvamVjdFxuICAgKi9cbiAgYXN5bmMgdGVzdCh0ZXN0T3B0aW9ucz86IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogaW5pdCBhbmQgYnVpbGQoKSBwcm9qZWN0XG4gICAqL1xuICBhc3luYyBidWlsZChidWlsZE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHB1Ymxpc2ggcHJvamVjdCB0byBucG1cbiAgICovXG4gIGFzeW5jIHB1Ymxpc2gocHVibGlzaE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgYXN5bmMgcmVsZWFzZShyZWxlYXNlT3B0aW9ucz86IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogbGludCBwb3JqZWN0XG4gICAqL1xuICBhc3luYyBsaW50KGxpbnRPcHRpb25zPzogYW55KSB7XG4gICAgSGVscGVycy5pbmZvKGBcblxuXG4gICAgQ09NTUlUIExJTlQgTk9UIElNUExFTUVOVEVEXG5cblxuICAgIGApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnZXQgaW5mbyBhYm91dCBwb3JqZWN0XG4gICAqL1xuICBhc3luYyBpbmZvKCkge1xuICAgIGNvbnN0IHByb2ogPSB0aGlzO1xuICAgIEhlbHBlcnMuaW5mbyhcbiAgICAgIGBcblxuICBuYW1lOiAke3Byb2o/Lm5hbWV9XG4gIHR5cGU6ICR7cHJvaj8udHlwZX1cbiAgY29yZSBwcm9qZWN0IG5hbWU6ICcke3Byb2o/LmNvcmU/Lm5hbWV9J1xuICBlbWJlZGRlZCBwcm9qZWN0OiAke3Byb2o/LmxpbmtlZFByb2plY3RzLmVtYmVkZGVkUHJvamVjdD8uZ2VuZXJpY05hbWUgfHwgJzwgbm9uZSA+J31cbiAgY2hpbGRyZW4gKCR7cHJvaj8uY2hpbGRyZW4ubGVuZ3RofSk6ICR7IXByb2ogfHwgIXByb2ouY2hpbGRyZW4ubGVuZ3RoID8gJzwgbm9uZSA+JyA6ICcnfVxuJHtwcm9qPy5jaGlsZHJlbi5tYXAoYyA9PiAnKycgKyBjLmdlbmVyaWNOYW1lKS5qb2luKCdcXG4nKX1cblxuICBsaWJyYXJpZXMgKCR7cHJvaj8ubGlicmFyeUJ1aWxkPy5saWJyYXJpZXM/Lmxlbmd0aH0pOiAke1xuICAgICFwcm9qIHx8ICFwcm9qLmxpYnJhcnlCdWlsZD8ubGlicmFyaWVzPy5sZW5ndGggPyAnPCBub25lID4nIDogJydcbiAgfVxuJHtwcm9qPy5saWJyYXJ5QnVpbGQ/LmxpYnJhcmllcz8ubWFwKGMgPT4gJysnICsgYy5nZW5lcmljTmFtZSkuam9pbignXFxuJyl9XG5gICtcbiAgICAgICAgYFxubGlua2VkIHBvcmplY3QgcHJlZml4OiBcIiR7dGhpcy5saW5rZWRQcm9qZWN0cy5saW5rZWRQcm9qZWN0c1ByZWZpeH1cIlxuXG5saW5rZWQgcHJvamVjdHMgZnJvbSBqc29uICgke3RoaXMubGlua2VkUHJvamVjdHMubGlua2VkUHJvamVjdHM/Lmxlbmd0aCB8fCAwfSk6XG4keyh0aGlzLmxpbmtlZFByb2plY3RzLmxpbmtlZFByb2plY3RzIHx8IFtdKVxuICAubWFwKGMgPT4ge1xuICAgIGNvbnN0IHByb2ogPSB0aGlzLmlucy5Gcm9tKHRoaXMucGF0aEZvcihjLnJlbGF0aXZlQ2xvbmVQYXRoKSk7XG4gICAgcmV0dXJuICctICcgKyBwcm9qID8gcHJvaj8uZ2VuZXJpY05hbWUgOiBjLnJlbGF0aXZlQ2xvbmVQYXRoO1xuICB9KVxuICAuam9pbignXFxuJyl9XG5cbiAgYCxcbiAgICApO1xuXG5cblxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdfQ==
@@ -443,7 +443,7 @@ export class CommitData {
443
443
  return (void 0);
444
444
  }
445
445
  /**
446
- * ex. firedev/GH-12 darekf77/tnp-helpers/GH-4
446
+ * ex. taon/GH-12 darekf77/tnp-helpers/GH-4
447
447
  */
448
448
  get issuesFromOtherProjects() {
449
449
  return this.__issuesFromOtherProjects;
@@ -606,4 +606,4 @@ export class CommitData {
606
606
  }
607
607
  ;
608
608
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/commit-data.ts
609
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvY29tbWl0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFLLE1BQU0sa0JBQWtCLENBQUMsQ0FBQSxLQUFLO0FBWTVELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsSUFBSTtDQU1MLENBQUM7QUF3QkYsTUFBTSxZQUFZLEdBQVcsYUFBYSxDQUFDO0FBRTNDLE1BQU0sdUJBQXVCLEdBQVcsa0JBQWtCLENBQUM7QUFDM0QsTUFBTSx5QkFBeUIsR0FBVyxzQkFBc0IsQ0FBQztBQUVqRSxNQUFNLE9BQU8sVUFBVTtJQUliLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxTQUFpQjtRQUN6RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBSU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFpQjtRQUM3QyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxPQUFPO1lBQ0wscUJBQXFCLEVBQUUsU0FBUztZQUNoQyxNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFJTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsU0FBaUI7UUFDaEQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsZ0JBQWdCLEdBQUcsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLE9BQU87WUFDTCxTQUFTO1lBQ1QsZ0JBQWdCO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUFDLGtCQUEwQjtRQUM5RCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsc0NBQXNDO0lBQzNDOzs7O09BSUc7SUFDSCxrQkFBMEIsRUFDMUIsYUFBc0I7UUFFMUIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FDckMsT0FBZSxFQUNmLE9BS0M7UUFFRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSx1QkFBdUIs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LEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDeEIsaUJBQXlCLEVBQ3pCLE9BVUM7UUFFTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJTSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQVFDO1FBRUQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBUSxDQUFDO1FBRTFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBa0JPLFlBQVksQ0FBQyxPQUFlO1FBQ2xDLE9BQU8sVUFBVSxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sRUFBRTtZQUMxRCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtTQUN0RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUlELElBQUksWUFBWTtRQUNsQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlEOztPQUVHO0lBQ0gsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksdUJBQXVCLENBQUMsS0FBZTtRQUN6QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBa0J6QyxDQUFDO0lBTUQsSUFBSSxhQUFhO1FBQ25CLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsSUFBSSxVQUFVO1FBQ2hCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksY0FBYztRQUNwQixLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgICBfLCAvKiAqLyAvKiAqLyAgICB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdCB9IGZyb20gJy4vYmFzZS1wcm9qZWN0JztcbmltcG9ydCB7IHBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuXG5cbmNvbnN0IG9wZW5Tb3VyY2VQcm92aWRlcnNJc3N1ZVByZWZpeCA9IFtcbiAgJ0dIJyxcblxuXG5cblxuXG5dO1xuXG5cblxuZXhwb3J0IHR5cGUgQ29tbW9uQ29tbWl0TXNnQnJhbmNoID1cbiAgfCAncmVmYWN0b3InXG4gIHwgJ2Nob3JlJ1xuICB8ICdzdHlsZSdcbiAgfCAnZG9jcydcbiAgfCAndGVzdCdcbiAgfCAnY2knXG4gIHwgJ2J1aWxkJ1xuICB8ICdyZWxlYXNlJztcblxuXG5cbmV4cG9ydCB0eXBlIFR5cGVPZkNvbW1pdCA9XG4gIHwgJ2ZlYXR1cmUnXG4gIHwgJ2J1Z2ZpeCdcbiAgfCAncGVyZm9ybWFuY2UnXG4gIHwgQ29tbW9uQ29tbWl0TXNnQnJhbmNoO1xuXG5cbmV4cG9ydCB0eXBlIFR5cGVPZk1zZ1ByZWZpeCA9ICdmZWF0JyB8ICdmaXgnIHwgJ3BlcmYnIHwgQ29tbW9uQ29tbWl0TXNnQnJhbmNoO1xuY29uc3QgcmVnZXhUZWFtc0lEOiBSZWdFeHAgPSAvW0EtWjAtOV0rXFwjLztcblxuY29uc3QgcmVnZXhDb21taXRNb2R1bGVJbkFyZ3M6IFJlZ0V4cCA9IC9cXFtbYS16fFxcLXxcXCxdK1xcXS87XG5jb25zdCByZWdleENvbW1pdE1vZHVsZUluQnJhbmNoOiBSZWdFeHAgPSAvXFwtXFwtW2EtenxcXC18XFxfXStcXC1cXC0vO1xuXG5leHBvcnQgY2xhc3MgQ29tbWl0RGF0YSB7XG5cblxuXG4gIHByaXZhdGUgc3RhdGljIGNsZWFuSHR0cEZyb21Db21taXRNZXNzYWdlKGNvbW1pdE1zZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbW1pdE1zZykge1xuICAgICAgcmV0dXJuIGNvbW1pdE1zZztcbiAgICB9XG4gICAgY29tbWl0TXNnID0gY29tbWl0TXNnLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpO1xuICAgIGNvbW1pdE1zZyA9IGNvbW1pdE1zZy5yZXBsYWNlKCdodHRwOi8vJywgJycpO1xuICAgIHJldHVybiBjb21taXRNc2c7XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0VGVhbXNJZEZyb20oY29tbWl0TXNnOiBzdHJpbmcpIHtcbiAgICBsZXQgdGVhbUlEID0gXy5maXJzdChjb21taXRNc2cubWF0Y2gocmVnZXhUZWFtc0lEKSk7XG4gICAgaWYgKHRlYW1JRCkge1xuICAgICAgY29tbWl0TXNnID0gY29tbWl0TXNnLnJlcGxhY2UodGVhbUlELCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjb21taXRNc2dPckJyYW5jaE5hbWU6IGNvbW1pdE1zZyxcbiAgICAgIHRlYW1JRCxcbiAgICB9O1xuICB9XG5cblxuXG4gIHByaXZhdGUgc3RhdGljIGdldE1vZHVsZU5hbWVGcm9tKGNvbW1pdE1zZzogc3RyaW5nKSB7XG4gICAgbGV0IGNvbW1pdE1vZHVsZU5hbWUgPSBfLmZpcnN0KGNvbW1pdE1zZy5tYXRjaChyZWdleENvbW1pdE1vZHVsZUluQXJncykpO1xuICAgIGlmIChjb21taXRNb2R1bGVOYW1lKSB7XG4gICAgICBjb21taXRNc2cgPSBjb21taXRNc2cucmVwbGFjZShjb21taXRNb2R1bGVOYW1lLCAnJyk7XG4gICAgfVxuICAgIGNvbW1pdE1vZHVsZU5hbWUgPSBjb21taXRNb2R1bGVOYW1lPy5yZXBsYWNlKC9cXFsvZywgJycpLnJlcGxhY2UoL1xcXS9nLCAnJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbW1pdE1zZyxcbiAgICAgIGNvbW1pdE1vZHVsZU5hbWUsXG4gICAgfTtcbiAgfVxuXG5cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgamlyYXMgKGZyb20gb2xkZXN0IHRvIG5ld3NldClcbiAgICovXG4gIHN0YXRpYyBleHRyYWN0QW5kT3JkZXJKaXJhTnVtYmVycyhjb21taXRPckJyYW5jaE5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgamlyYXMgKGZyb20gb2xkZXN0IHRvIG5ld3NldClcbiAgICovXG4gIHN0YXRpYyBleHRyYWN0QW5kT3JkZXJJc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cyhcbiAgICAvKipcbiAgICAgKiBleGFtcGxlOlxuICAgICAqIGNvbW1pdDogcHJvcGVyIGdpdCBjb21tYW5kcyB0bnAvR0gtOSBkYXJla2Y3Ny90bnAtaGVscGVycy9HSC0xMFxuICAgICAqIGZlYXR1cmUvX190bnAtR0gtOV9fX19kYXJla2Y3N190bnAtaGVscGVycy1HSDEwX18tcHJvcGVyLWdpdC1jb21tYW5kc1xuICAgICAqL1xuICAgIGNvbW1pdE9yQnJhbmNoTmFtZTogc3RyaW5nLFxuICAgIGN1cnJlbnRPcmlnaW4/OiBzdHJpbmcsXG4gICk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgc3RhdGljIGNsZWFuTWVzc2FnZUZyb21KaXJhTnVtVGVhbUlkRXRjKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBvcHRpbm9zPzoge1xuICAgICAgdGVhbUlEOiBzdHJpbmc7XG4gICAgICBjb21taXRNb2R1bGVOYW1lOiBzdHJpbmc7XG4gICAgICBqaXJhTnVtYmVyczogc3RyaW5nW107XG4gICAgICBpc3N1ZXNGcm9tT3RoZXJQcm9qZWN0czogc3RyaW5nW107XG4gICAgfSxcbiAgKTogc3RyaW5nIHtcbiAgICBtZXNzYWdlID0gbWVzc2FnZSB8fCAnJztcbiAgICBsZXQgeyB0ZWFtSUQsIGNvbW1pdE1vZHVsZU5hbWUsIGppcmFOdW1iZXJzLCBpc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cyB9ID1cbiAgICAgIG9wdGlub3MgfHwge307XG4gICAgdGVhbUlEID0gdGVhbUlEIHx8IHRoaXMuZ2V0VGVhbXNJZEZyb20obWVzc2FnZSkudGVhbUlEIHx8ICcnO1xuICAgIGNvbW1pdE1vZHVsZU5hbWUgPVxuICAgICAgY29tbWl0TW9kdWxlTmFtZSB8fFxuICAgICAgdGhpcy5nZXRNb2R1bGVOYW1lRnJvbShtZXNzYWdlKS5jb21taXRNb2R1bGVOYW1lIHx8XG4gICAgICAnJztcbiAgICBqaXJhTnVtYmVycyA9IGppcmFOdW1iZXJzIHx8IHRoaXMuZXh0cmFjdEFuZE9yZGVySmlyYU51bWJlcnMobWVzc2FnZSkgfHwgW107XG4gICAgaXNzdWVzRnJvbU90aGVyUHJvamVjdHMgPVxuICAgICAgaXNzdWVzRnJvbU90aGVyUHJvamVjdHMgfHxcbiAgICAgIHRoaXMuZXh0cmFjdEFuZE9yZGVySXNzdWVzRnJvbU90aGVyUHJvamVjdHMobWVzc2FnZSkgfHxcbiAgICAgIFtdO1xuXG4gICAgaWYgKCEhdGVhbUlELnRyaW0oKSkge1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSh0ZWFtSUQudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCctJywgJyAnKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UodGVhbUlELnRvVXBwZXJDYXNlKCkucmVwbGFjZSgnLScsICcgJyksICcgJyk7XG4gICAgfVxuXG5cblxuICAgIGZvciAoY29uc3QgaXNzdWVGcm9tT3RoZXJQcm9qIG9mIGlzc3Vlc0Zyb21PdGhlclByb2plY3RzIHx8IFtdKSB7XG5cblxuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgICAgYF9fJHtpc3N1ZUZyb21PdGhlclByb2oucmVwbGFjZSgvXFwvL2csICdfJykucmVwbGFjZSgvXFwtL2csICcgJyl9X19gLFxuICAgICAgICAnICcsXG4gICAgICApO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShpc3N1ZUZyb21PdGhlclByb2osICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgICAgICBpc3N1ZUZyb21PdGhlclByb2oudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCctJywgJyAnKSxcbiAgICAgICAgJyAnLFxuICAgICAgKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgICAgIGlzc3VlRnJvbU90aGVyUHJvai50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLFxuICAgICAgICAnICcsXG4gICAgICApO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShpc3N1ZUZyb21PdGhlclByb2oudG9Mb3dlckNhc2UoKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UocmVnZXhDb21taXRNb2R1bGVJbkFyZ3MsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHJlZ2V4Q29tbWl0TW9kdWxlSW5CcmFuY2gsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9cXCBcXCAvZywgJyAnKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGppcmEgb2YgamlyYU51bWJlcnMgfHwgW10pIHtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoamlyYS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShqaXJhLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgnLScsICcgJyksICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGppcmEsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGppcmEudG9Mb3dlckNhc2UoKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UocmVnZXhDb21taXRNb2R1bGVJbkFyZ3MsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHJlZ2V4Q29tbWl0TW9kdWxlSW5CcmFuY2gsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9cXCBcXCAvZywgJyAnKTtcbiAgICB9XG5cbiAgICBpZiAoISF0ZWFtSUQudHJpbSgpKSB7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9cXF8vZywgJyAnKTtcbiAgICB9XG4gICAgaWYgKCEhY29tbWl0TW9kdWxlTmFtZS50cmltKCkpIHtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZS5yZXBsYWNlKC9cXC0vZywgJyAnKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZS5yZXBsYWNlKC9cXCwvZywgJyAnKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZS5yZXBsYWNlKC9cXCwvZywgJ18nKSwgJyAnKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgICAgIC5yZXBsYWNlKC9cXCBcXCAvZywgJyAnKVxuICAgICAgLnJlcGxhY2UoL1xcIFxcIC9nLCAnICcpXG4gICAgICAucmVwbGFjZSgvXFwgXFwgL2csICcgJyk7XG4gIH1cblxuXG5cblxuICBwcml2YXRlIHN0YXRpYyBnZXRNb2R1bGVOYW1lRnJvbUJyYW5jaChicmFuY2hOYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgY29tbWl0TW9kdWxlTmFtZSA9IF8uZmlyc3QoYnJhbmNoTmFtZS5tYXRjaChyZWdleENvbW1pdE1vZHVsZUluQnJhbmNoKSk7XG4gICAgaWYgKGNvbW1pdE1vZHVsZU5hbWUpIHtcbiAgICAgIGJyYW5jaE5hbWUgPSBicmFuY2hOYW1lLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZSwgJycpO1xuICAgICAgY29tbWl0TW9kdWxlTmFtZSA9IGNvbW1pdE1vZHVsZU5hbWVcbiAgICAgICAgPy5yZXBsYWNlKC9eXFwtXFwtLywgJycpXG4gICAgICAgID8ucmVwbGFjZSgvXFwtXFwtJC8sICcnKTtcbiAgICAgIGlmIChjb21taXRNb2R1bGVOYW1lLnN0YXJ0c1dpdGgoJy0nKSkge1xuICAgICAgICBjb21taXRNb2R1bGVOYW1lID0gY29tbWl0TW9kdWxlTmFtZS5yZXBsYWNlKC9eXFwtLywgJycpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb21taXRNb2R1bGVOYW1lID0gY29tbWl0TW9kdWxlTmFtZVxuICAgICAgPy5yZXBsYWNlKC9eXFwtXFwtLywgJycpXG4gICAgICA/LnJlcGxhY2UoL1xcLVxcLSQvLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXF8vLCAnLCcpO1xuXG4gICAgcmV0dXJuIHsgY29tbWl0TW9kdWxlTmFtZSB9O1xuICB9XG5cblxuXG4gIHN0YXRpYyBhc3luYyBnZXRGcm9tQXJncyhcbiAgICBhcmdzOiBzdHJpbmdbXSxcbiAgICBvcHRpb25zOiB7XG4gICAgICB0eXBlT2ZDb21taXQ6IFR5cGVPZkNvbW1pdDtcbiAgICAgIC8qKlxuICAgICAgICogb25seSBuZWVkZWQgd2hlbiBwdXNoIGdpdGh1YlxuICAgICAgICogYW5kIEkgZm9yZ290IHRvIGFkZCBteSB1c2VybmFtZSBiZWZvcmUgaXNzdWVcbiAgICAgICAqIGZpcmVkZXYgcGZpeCBwcm9wZXIgaW5wdXQgbXktcmVwbyMzNDRcbiAgICAgICAqIHRoYXQgc2hvdWxkIGJlXG4gICAgICAgKiBmaXJlZGV2IHBmaXggcHJvcGVyIGlucHV0IG15LXVzZXJuYW1lL215LXJlcG8jMzQ0XG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRPcmlnaW4/OiBzdHJpbmc7XG4gICAgfSxcbiAgKTogUHJvbWlzZTxDb21taXREYXRhPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgc3RhdGljIGFzeW5jIGdldEZyb21CcmFuY2goXG4gICAgY3VycmVudEJyYW5jaE5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgcmVsZWFzZVdvcmRzPzogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIG9ubHkgbmVlZGVkIHdoZW4gcHVzaCBnaXRodWJcbiAgICAgICAqIGFuZCBJIGZvcmdvdCB0byBhZGQgbXkgdXNlcm5hbWUgYmVmb3JlIGlzc3VlXG4gICAgICAgKiBmaXJlZGV2IHBmaXggcHJvcGVyIGlucHV0IG15LXJlcG8jMzQ0XG4gICAgICAgKiB0aGF0IHNob3VsZCBiZVxuICAgICAgICogZmlyZWRldiBwZml4IHByb3BlciBpbnB1dCBteS11c2VybmFtZS9teS1yZXBvIzM0NFxuICAgICAgICovXG4gICAgICBjdXJyZW50T3JpZ2luPzogc3RyaW5nO1xuICAgIH0sXG4gICk6IFByb21pc2U8Q29tbWl0RGF0YT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbShcbiAgICBvcHRpb25zOiBQaWNrPFxuICAgICAgQ29tbWl0RGF0YSxcbiAgICAgIHwgJ21lc3NhZ2UnXG4gICAgICB8ICdqaXJhTnVtYmVycydcbiAgICAgIHwgJ3R5cGVPZkNvbW1pdCdcbiAgICAgIHwgJ2NvbW1pdE1vZHVsZU5hbWUnXG4gICAgICB8ICd0ZWFtSUQnXG4gICAgICB8ICdpc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cydcbiAgICA+LFxuICApOiBDb21taXREYXRhIHtcbiAgICBvcHRpb25zID0gKG9wdGlvbnMgPyBvcHRpb25zIDoge30pIGFzIGFueTtcblxuICAgIGNvbnN0IG9wdCA9IF8ubWVyZ2UobmV3IENvbW1pdERhdGEoKSwgXy5jbG9uZURlZXAob3B0aW9ucykpO1xuICAgIHJldHVybiBvcHQ7XG4gIH1cblxuXG5cblxuXG4gIHByaXZhdGUgX21lc3NhZ2U6IHN0cmluZztcbiAgdHlwZU9mQ29tbWl0OiBUeXBlT2ZDb21taXQ7XG4gIC8qKlxuICAgKiBleC4gSklSQS0yMTMyIG9yIE1ZSklSQVJFRklYLTIzNDIzNFxuICAgKi9cbiAgamlyYU51bWJlcnM6IHN0cmluZ1tdO1xuXG4gIHJlYWRvbmx5IGNvbW1pdE1vZHVsZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGVhbUlEOiBzdHJpbmc7XG5cblxuXG4gIHByaXZhdGUgY2xlYXJNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIENvbW1pdERhdGEuY2xlYW5NZXNzYWdlRnJvbUppcmFOdW1UZWFtSWRFdGMobWVzc2FnZSwge1xuICAgICAgdGVhbUlEOiB0aGlzLnRlYW1JRCxcbiAgICAgIGNvbW1pdE1vZHVsZU5hbWU6IHRoaXMuY29tbWl0TW9kdWxlTmFtZSxcbiAgICAgIGppcmFOdW1iZXJzOiB0aGlzLmppcmFOdW1iZXJzLFxuICAgICAgaXNzdWVzRnJvbU90aGVyUHJvamVjdHM6IHRoaXMuaXNzdWVzRnJvbU90aGVyUHJvamVjdHMsXG4gICAgfSk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHB1cmUgbWVzc2FnZSB3aGF0IHdhcyBkb25lICh3aXRob3V0IGppcmEgb3IgcHJlZml4ZXMpXG4gICAqID0+IGlzIGluY2x1ZGVkIGluIHRoaXMuY29tbWl0TWVzc2FnZVxuICAgKi9cbiAgZ2V0IG1lc3NhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xlYXJNZXNzYWdlKHRoaXMuX21lc3NhZ2UpO1xuICB9XG4gIHNldCBtZXNzYWdlKG1lc3NhZ2UpIHtcbiAgICB0aGlzLl9tZXNzYWdlID0gdGhpcy5jbGVhck1lc3NhZ2UobWVzc2FnZSk7XG4gIH1cblxuXG5cbiAgZ2V0IGJyYW5jaFByZWZpeCgpOiBUeXBlT2ZNc2dQcmVmaXgge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGV4LiBmaXJlZGV2L0dILTEyICBkYXJla2Y3Ny90bnAtaGVscGVycy9HSC00XG4gICAqL1xuICBnZXQgaXNzdWVzRnJvbU90aGVyUHJvamVjdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9faXNzdWVzRnJvbU90aGVyUHJvamVjdHM7XG4gIH1cblxuICBzZXQgaXNzdWVzRnJvbU90aGVyUHJvamVjdHModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fX2lzc3Vlc0Zyb21PdGhlclByb2plY3RzID0gdmFsdWU7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICB9XG5cbiAgcHJpdmF0ZSBfX2lzc3Vlc0Zyb21PdGhlclByb2plY3RzOiBzdHJpbmdbXTtcblxuXG5cbiAgZ2V0IGNvbW1pdE1lc3NhZ2UoKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBicmFuY2hOYW1lKCk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGlzQWN0aW9uQ29tbWl0KCkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2NvbW1pdC1kYXRhLnRzIl19
609
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvY29tbWl0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFLLE1BQU0sa0JBQWtCLENBQUMsQ0FBQSxLQUFLO0FBWTVELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsSUFBSTtDQU1MLENBQUM7QUF3QkYsTUFBTSxZQUFZLEdBQVcsYUFBYSxDQUFDO0FBRTNDLE1BQU0sdUJBQXVCLEdBQVcsa0JBQWtCLENBQUM7QUFDM0QsTUFBTSx5QkFBeUIsR0FBVyxzQkFBc0IsQ0FBQztBQUVqRSxNQUFNLE9BQU8sVUFBVTtJQUliLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxTQUFpQjtRQUN6RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBSU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFpQjtRQUM3QyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxPQUFPO1lBQ0wscUJBQXFCLEVBQUUsU0FBUztZQUNoQyxNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFJTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsU0FBaUI7UUFDaEQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsZ0JBQWdCLEdBQUcsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLE9BQU87WUFDTCxTQUFTO1lBQ1QsZ0JBQWdCO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUFDLGtCQUEwQjtRQUM5RCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsc0NBQXNDO0lBQzNDOzs7O09BSUc7SUFDSCxrQkFBMEIsRUFDMUIsYUFBc0I7UUFFMUIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FDckMsT0FBZSxFQUNmLE9BS0M7UUFFRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxHQUNwRSxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hCLE1BQU0sR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzdELGdCQUFnQjtZQUNkLGdCQUFnQjtnQkFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQjtnQkFDaEQsRUFBRSxDQUFDO1FBQ0wsV0FBVyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVFLHVCQUF1QjtZQUNyQix1QkFBdUI7Z0JBQ3ZCLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUM7Z0JBQ3BELEVBQUUsQ0FBQztRQUVMLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZFLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFJRCxLQUFLLE1BQU0sa0JBQWtCLElBQUksdUJBQXVCLElBQUksRUFBRSxFQUFFLENBQUM7WUFHL0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQ3ZCLEtBQUssa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQ25FLEdBQUcsQ0FDSixDQUFDO1lBQ0YsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbkQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQ3ZCLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2xELEdBQUcsQ0FDSixDQUFDO1lBQ0YsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQ3ZCLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ2xELEdBQUcsQ0FDSixDQUFDO1lBQ0YsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDakUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDeEQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLFdBQVcsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNyRSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNyRSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDckMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ25ELE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLHlCQUF5QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFELE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDcEIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDckUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNyRSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxPQUFPLE9BQU87YUFDWCxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQzthQUNyQixPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQzthQUNyQixPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFLTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsVUFBa0I7UUFDdkQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxnQkFBZ0IsR0FBRyxnQkFBZ0I7Z0JBQ2pDLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QixJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELENBQUM7UUFDSCxDQUFDO1FBQ0QsZ0JBQWdCLEdBQUcsZ0JBQWdCO1lBQ2pDLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDdEIsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQzthQUNyQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFJRCxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FDdEIsSUFBYyxFQUNkLE9BVUM7UUFFTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDeEIsaUJBQXlCLEVBQ3pCLE9BVUM7UUFFTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJTSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQVFDO1FBRUQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBUSxDQUFDO1FBRTFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBa0JPLFlBQVksQ0FBQyxPQUFlO1FBQ2xDLE9BQU8sVUFBVSxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sRUFBRTtZQUMxRCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtTQUN0RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUlELElBQUksWUFBWTtRQUNsQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlEOztPQUVHO0lBQ0gsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksdUJBQXVCLENBQUMsS0FBZTtRQUN6QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBa0J6QyxDQUFDO0lBTUQsSUFBSSxhQUFhO1FBQ25CLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsSUFBSSxVQUFVO1FBQ2hCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksY0FBYztRQUNwQixLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgICBfLCAvKiAqLyAvKiAqLyAgICB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdCB9IGZyb20gJy4vYmFzZS1wcm9qZWN0JztcbmltcG9ydCB7IHBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuXG5cbmNvbnN0IG9wZW5Tb3VyY2VQcm92aWRlcnNJc3N1ZVByZWZpeCA9IFtcbiAgJ0dIJyxcblxuXG5cblxuXG5dO1xuXG5cblxuZXhwb3J0IHR5cGUgQ29tbW9uQ29tbWl0TXNnQnJhbmNoID1cbiAgfCAncmVmYWN0b3InXG4gIHwgJ2Nob3JlJ1xuICB8ICdzdHlsZSdcbiAgfCAnZG9jcydcbiAgfCAndGVzdCdcbiAgfCAnY2knXG4gIHwgJ2J1aWxkJ1xuICB8ICdyZWxlYXNlJztcblxuXG5cbmV4cG9ydCB0eXBlIFR5cGVPZkNvbW1pdCA9XG4gIHwgJ2ZlYXR1cmUnXG4gIHwgJ2J1Z2ZpeCdcbiAgfCAncGVyZm9ybWFuY2UnXG4gIHwgQ29tbW9uQ29tbWl0TXNnQnJhbmNoO1xuXG5cbmV4cG9ydCB0eXBlIFR5cGVPZk1zZ1ByZWZpeCA9ICdmZWF0JyB8ICdmaXgnIHwgJ3BlcmYnIHwgQ29tbW9uQ29tbWl0TXNnQnJhbmNoO1xuY29uc3QgcmVnZXhUZWFtc0lEOiBSZWdFeHAgPSAvW0EtWjAtOV0rXFwjLztcblxuY29uc3QgcmVnZXhDb21taXRNb2R1bGVJbkFyZ3M6IFJlZ0V4cCA9IC9cXFtbYS16fFxcLXxcXCxdK1xcXS87XG5jb25zdCByZWdleENvbW1pdE1vZHVsZUluQnJhbmNoOiBSZWdFeHAgPSAvXFwtXFwtW2EtenxcXC18XFxfXStcXC1cXC0vO1xuXG5leHBvcnQgY2xhc3MgQ29tbWl0RGF0YSB7XG5cblxuXG4gIHByaXZhdGUgc3RhdGljIGNsZWFuSHR0cEZyb21Db21taXRNZXNzYWdlKGNvbW1pdE1zZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbW1pdE1zZykge1xuICAgICAgcmV0dXJuIGNvbW1pdE1zZztcbiAgICB9XG4gICAgY29tbWl0TXNnID0gY29tbWl0TXNnLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpO1xuICAgIGNvbW1pdE1zZyA9IGNvbW1pdE1zZy5yZXBsYWNlKCdodHRwOi8vJywgJycpO1xuICAgIHJldHVybiBjb21taXRNc2c7XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0VGVhbXNJZEZyb20oY29tbWl0TXNnOiBzdHJpbmcpIHtcbiAgICBsZXQgdGVhbUlEID0gXy5maXJzdChjb21taXRNc2cubWF0Y2gocmVnZXhUZWFtc0lEKSk7XG4gICAgaWYgKHRlYW1JRCkge1xuICAgICAgY29tbWl0TXNnID0gY29tbWl0TXNnLnJlcGxhY2UodGVhbUlELCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjb21taXRNc2dPckJyYW5jaE5hbWU6IGNvbW1pdE1zZyxcbiAgICAgIHRlYW1JRCxcbiAgICB9O1xuICB9XG5cblxuXG4gIHByaXZhdGUgc3RhdGljIGdldE1vZHVsZU5hbWVGcm9tKGNvbW1pdE1zZzogc3RyaW5nKSB7XG4gICAgbGV0IGNvbW1pdE1vZHVsZU5hbWUgPSBfLmZpcnN0KGNvbW1pdE1zZy5tYXRjaChyZWdleENvbW1pdE1vZHVsZUluQXJncykpO1xuICAgIGlmIChjb21taXRNb2R1bGVOYW1lKSB7XG4gICAgICBjb21taXRNc2cgPSBjb21taXRNc2cucmVwbGFjZShjb21taXRNb2R1bGVOYW1lLCAnJyk7XG4gICAgfVxuICAgIGNvbW1pdE1vZHVsZU5hbWUgPSBjb21taXRNb2R1bGVOYW1lPy5yZXBsYWNlKC9cXFsvZywgJycpLnJlcGxhY2UoL1xcXS9nLCAnJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbW1pdE1zZyxcbiAgICAgIGNvbW1pdE1vZHVsZU5hbWUsXG4gICAgfTtcbiAgfVxuXG5cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgamlyYXMgKGZyb20gb2xkZXN0IHRvIG5ld3NldClcbiAgICovXG4gIHN0YXRpYyBleHRyYWN0QW5kT3JkZXJKaXJhTnVtYmVycyhjb21taXRPckJyYW5jaE5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgamlyYXMgKGZyb20gb2xkZXN0IHRvIG5ld3NldClcbiAgICovXG4gIHN0YXRpYyBleHRyYWN0QW5kT3JkZXJJc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cyhcbiAgICAvKipcbiAgICAgKiBleGFtcGxlOlxuICAgICAqIGNvbW1pdDogcHJvcGVyIGdpdCBjb21tYW5kcyB0bnAvR0gtOSBkYXJla2Y3Ny90bnAtaGVscGVycy9HSC0xMFxuICAgICAqIGZlYXR1cmUvX190bnAtR0gtOV9fX19kYXJla2Y3N190bnAtaGVscGVycy1HSDEwX18tcHJvcGVyLWdpdC1jb21tYW5kc1xuICAgICAqL1xuICAgIGNvbW1pdE9yQnJhbmNoTmFtZTogc3RyaW5nLFxuICAgIGN1cnJlbnRPcmlnaW4/OiBzdHJpbmcsXG4gICk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgc3RhdGljIGNsZWFuTWVzc2FnZUZyb21KaXJhTnVtVGVhbUlkRXRjKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBvcHRpbm9zPzoge1xuICAgICAgdGVhbUlEOiBzdHJpbmc7XG4gICAgICBjb21taXRNb2R1bGVOYW1lOiBzdHJpbmc7XG4gICAgICBqaXJhTnVtYmVyczogc3RyaW5nW107XG4gICAgICBpc3N1ZXNGcm9tT3RoZXJQcm9qZWN0czogc3RyaW5nW107XG4gICAgfSxcbiAgKTogc3RyaW5nIHtcbiAgICBtZXNzYWdlID0gbWVzc2FnZSB8fCAnJztcbiAgICBsZXQgeyB0ZWFtSUQsIGNvbW1pdE1vZHVsZU5hbWUsIGppcmFOdW1iZXJzLCBpc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cyB9ID1cbiAgICAgIG9wdGlub3MgfHwge307XG4gICAgdGVhbUlEID0gdGVhbUlEIHx8IHRoaXMuZ2V0VGVhbXNJZEZyb20obWVzc2FnZSkudGVhbUlEIHx8ICcnO1xuICAgIGNvbW1pdE1vZHVsZU5hbWUgPVxuICAgICAgY29tbWl0TW9kdWxlTmFtZSB8fFxuICAgICAgdGhpcy5nZXRNb2R1bGVOYW1lRnJvbShtZXNzYWdlKS5jb21taXRNb2R1bGVOYW1lIHx8XG4gICAgICAnJztcbiAgICBqaXJhTnVtYmVycyA9IGppcmFOdW1iZXJzIHx8IHRoaXMuZXh0cmFjdEFuZE9yZGVySmlyYU51bWJlcnMobWVzc2FnZSkgfHwgW107XG4gICAgaXNzdWVzRnJvbU90aGVyUHJvamVjdHMgPVxuICAgICAgaXNzdWVzRnJvbU90aGVyUHJvamVjdHMgfHxcbiAgICAgIHRoaXMuZXh0cmFjdEFuZE9yZGVySXNzdWVzRnJvbU90aGVyUHJvamVjdHMobWVzc2FnZSkgfHxcbiAgICAgIFtdO1xuXG4gICAgaWYgKCEhdGVhbUlELnRyaW0oKSkge1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSh0ZWFtSUQudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCctJywgJyAnKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UodGVhbUlELnRvVXBwZXJDYXNlKCkucmVwbGFjZSgnLScsICcgJyksICcgJyk7XG4gICAgfVxuXG5cblxuICAgIGZvciAoY29uc3QgaXNzdWVGcm9tT3RoZXJQcm9qIG9mIGlzc3Vlc0Zyb21PdGhlclByb2plY3RzIHx8IFtdKSB7XG5cblxuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgICAgYF9fJHtpc3N1ZUZyb21PdGhlclByb2oucmVwbGFjZSgvXFwvL2csICdfJykucmVwbGFjZSgvXFwtL2csICcgJyl9X19gLFxuICAgICAgICAnICcsXG4gICAgICApO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShpc3N1ZUZyb21PdGhlclByb2osICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgICAgICBpc3N1ZUZyb21PdGhlclByb2oudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCctJywgJyAnKSxcbiAgICAgICAgJyAnLFxuICAgICAgKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgICAgIGlzc3VlRnJvbU90aGVyUHJvai50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLFxuICAgICAgICAnICcsXG4gICAgICApO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShpc3N1ZUZyb21PdGhlclByb2oudG9Mb3dlckNhc2UoKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UocmVnZXhDb21taXRNb2R1bGVJbkFyZ3MsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHJlZ2V4Q29tbWl0TW9kdWxlSW5CcmFuY2gsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9cXCBcXCAvZywgJyAnKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGppcmEgb2YgamlyYU51bWJlcnMgfHwgW10pIHtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoamlyYS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShqaXJhLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgnLScsICcgJyksICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGppcmEsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGppcmEudG9Mb3dlckNhc2UoKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UocmVnZXhDb21taXRNb2R1bGVJbkFyZ3MsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHJlZ2V4Q29tbWl0TW9kdWxlSW5CcmFuY2gsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9cXCBcXCAvZywgJyAnKTtcbiAgICB9XG5cbiAgICBpZiAoISF0ZWFtSUQudHJpbSgpKSB7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9cXF8vZywgJyAnKTtcbiAgICB9XG4gICAgaWYgKCEhY29tbWl0TW9kdWxlTmFtZS50cmltKCkpIHtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZS5yZXBsYWNlKC9cXC0vZywgJyAnKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZS5yZXBsYWNlKC9cXCwvZywgJyAnKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZS5yZXBsYWNlKC9cXCwvZywgJ18nKSwgJyAnKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgICAgIC5yZXBsYWNlKC9cXCBcXCAvZywgJyAnKVxuICAgICAgLnJlcGxhY2UoL1xcIFxcIC9nLCAnICcpXG4gICAgICAucmVwbGFjZSgvXFwgXFwgL2csICcgJyk7XG4gIH1cblxuXG5cblxuICBwcml2YXRlIHN0YXRpYyBnZXRNb2R1bGVOYW1lRnJvbUJyYW5jaChicmFuY2hOYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgY29tbWl0TW9kdWxlTmFtZSA9IF8uZmlyc3QoYnJhbmNoTmFtZS5tYXRjaChyZWdleENvbW1pdE1vZHVsZUluQnJhbmNoKSk7XG4gICAgaWYgKGNvbW1pdE1vZHVsZU5hbWUpIHtcbiAgICAgIGJyYW5jaE5hbWUgPSBicmFuY2hOYW1lLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZSwgJycpO1xuICAgICAgY29tbWl0TW9kdWxlTmFtZSA9IGNvbW1pdE1vZHVsZU5hbWVcbiAgICAgICAgPy5yZXBsYWNlKC9eXFwtXFwtLywgJycpXG4gICAgICAgID8ucmVwbGFjZSgvXFwtXFwtJC8sICcnKTtcbiAgICAgIGlmIChjb21taXRNb2R1bGVOYW1lLnN0YXJ0c1dpdGgoJy0nKSkge1xuICAgICAgICBjb21taXRNb2R1bGVOYW1lID0gY29tbWl0TW9kdWxlTmFtZS5yZXBsYWNlKC9eXFwtLywgJycpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb21taXRNb2R1bGVOYW1lID0gY29tbWl0TW9kdWxlTmFtZVxuICAgICAgPy5yZXBsYWNlKC9eXFwtXFwtLywgJycpXG4gICAgICA/LnJlcGxhY2UoL1xcLVxcLSQvLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXF8vLCAnLCcpO1xuXG4gICAgcmV0dXJuIHsgY29tbWl0TW9kdWxlTmFtZSB9O1xuICB9XG5cblxuXG4gIHN0YXRpYyBhc3luYyBnZXRGcm9tQXJncyhcbiAgICBhcmdzOiBzdHJpbmdbXSxcbiAgICBvcHRpb25zOiB7XG4gICAgICB0eXBlT2ZDb21taXQ6IFR5cGVPZkNvbW1pdDtcbiAgICAgIC8qKlxuICAgICAgICogb25seSBuZWVkZWQgd2hlbiBwdXNoIGdpdGh1YlxuICAgICAgICogYW5kIEkgZm9yZ290IHRvIGFkZCBteSB1c2VybmFtZSBiZWZvcmUgaXNzdWVcbiAgICAgICAqIHRhb24gcGZpeCBwcm9wZXIgaW5wdXQgbXktcmVwbyMzNDRcbiAgICAgICAqIHRoYXQgc2hvdWxkIGJlXG4gICAgICAgKiB0YW9uIHBmaXggcHJvcGVyIGlucHV0IG15LXVzZXJuYW1lL215LXJlcG8jMzQ0XG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRPcmlnaW4/OiBzdHJpbmc7XG4gICAgfSxcbiAgKTogUHJvbWlzZTxDb21taXREYXRhPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgc3RhdGljIGFzeW5jIGdldEZyb21CcmFuY2goXG4gICAgY3VycmVudEJyYW5jaE5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgcmVsZWFzZVdvcmRzPzogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIG9ubHkgbmVlZGVkIHdoZW4gcHVzaCBnaXRodWJcbiAgICAgICAqIGFuZCBJIGZvcmdvdCB0byBhZGQgbXkgdXNlcm5hbWUgYmVmb3JlIGlzc3VlXG4gICAgICAgKiB0YW9uIHBmaXggcHJvcGVyIGlucHV0IG15LXJlcG8jMzQ0XG4gICAgICAgKiB0aGF0IHNob3VsZCBiZVxuICAgICAgICogdGFvbiBwZml4IHByb3BlciBpbnB1dCBteS11c2VybmFtZS9teS1yZXBvIzM0NFxuICAgICAgICovXG4gICAgICBjdXJyZW50T3JpZ2luPzogc3RyaW5nO1xuICAgIH0sXG4gICk6IFByb21pc2U8Q29tbWl0RGF0YT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbShcbiAgICBvcHRpb25zOiBQaWNrPFxuICAgICAgQ29tbWl0RGF0YSxcbiAgICAgIHwgJ21lc3NhZ2UnXG4gICAgICB8ICdqaXJhTnVtYmVycydcbiAgICAgIHwgJ3R5cGVPZkNvbW1pdCdcbiAgICAgIHwgJ2NvbW1pdE1vZHVsZU5hbWUnXG4gICAgICB8ICd0ZWFtSUQnXG4gICAgICB8ICdpc3N1ZXNGcm9tT3RoZXJQcm9qZWN0cydcbiAgICA+LFxuICApOiBDb21taXREYXRhIHtcbiAgICBvcHRpb25zID0gKG9wdGlvbnMgPyBvcHRpb25zIDoge30pIGFzIGFueTtcblxuICAgIGNvbnN0IG9wdCA9IF8ubWVyZ2UobmV3IENvbW1pdERhdGEoKSwgXy5jbG9uZURlZXAob3B0aW9ucykpO1xuICAgIHJldHVybiBvcHQ7XG4gIH1cblxuXG5cblxuXG4gIHByaXZhdGUgX21lc3NhZ2U6IHN0cmluZztcbiAgdHlwZU9mQ29tbWl0OiBUeXBlT2ZDb21taXQ7XG4gIC8qKlxuICAgKiBleC4gSklSQS0yMTMyIG9yIE1ZSklSQVJFRklYLTIzNDIzNFxuICAgKi9cbiAgamlyYU51bWJlcnM6IHN0cmluZ1tdO1xuXG4gIHJlYWRvbmx5IGNvbW1pdE1vZHVsZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGVhbUlEOiBzdHJpbmc7XG5cblxuXG4gIHByaXZhdGUgY2xlYXJNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIENvbW1pdERhdGEuY2xlYW5NZXNzYWdlRnJvbUppcmFOdW1UZWFtSWRFdGMobWVzc2FnZSwge1xuICAgICAgdGVhbUlEOiB0aGlzLnRlYW1JRCxcbiAgICAgIGNvbW1pdE1vZHVsZU5hbWU6IHRoaXMuY29tbWl0TW9kdWxlTmFtZSxcbiAgICAgIGppcmFOdW1iZXJzOiB0aGlzLmppcmFOdW1iZXJzLFxuICAgICAgaXNzdWVzRnJvbU90aGVyUHJvamVjdHM6IHRoaXMuaXNzdWVzRnJvbU90aGVyUHJvamVjdHMsXG4gICAgfSk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHB1cmUgbWVzc2FnZSB3aGF0IHdhcyBkb25lICh3aXRob3V0IGppcmEgb3IgcHJlZml4ZXMpXG4gICAqID0+IGlzIGluY2x1ZGVkIGluIHRoaXMuY29tbWl0TWVzc2FnZVxuICAgKi9cbiAgZ2V0IG1lc3NhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xlYXJNZXNzYWdlKHRoaXMuX21lc3NhZ2UpO1xuICB9XG4gIHNldCBtZXNzYWdlKG1lc3NhZ2UpIHtcbiAgICB0aGlzLl9tZXNzYWdlID0gdGhpcy5jbGVhck1lc3NhZ2UobWVzc2FnZSk7XG4gIH1cblxuXG5cbiAgZ2V0IGJyYW5jaFByZWZpeCgpOiBUeXBlT2ZNc2dQcmVmaXgge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGV4LiB0YW9uL0dILTEyICBkYXJla2Y3Ny90bnAtaGVscGVycy9HSC00XG4gICAqL1xuICBnZXQgaXNzdWVzRnJvbU90aGVyUHJvamVjdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9faXNzdWVzRnJvbU90aGVyUHJvamVjdHM7XG4gIH1cblxuICBzZXQgaXNzdWVzRnJvbU90aGVyUHJvamVjdHModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fX2lzc3Vlc0Zyb21PdGhlclByb2plY3RzID0gdmFsdWU7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICB9XG5cbiAgcHJpdmF0ZSBfX2lzc3Vlc0Zyb21PdGhlclByb2plY3RzOiBzdHJpbmdbXTtcblxuXG5cbiAgZ2V0IGNvbW1pdE1lc3NhZ2UoKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBicmFuY2hOYW1lKCk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGlzQWN0aW9uQ29tbWl0KCkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2NvbW1pdC1kYXRhLnRzIl19
@@ -1,4 +1,4 @@
1
- const key = Symbol('[firedev-helpers] helper browser key');
1
+ const key = Symbol('[taon-helpers] helper browser key');
2
2
  export class HelpersBrowser {
3
3
  static { this.callbacks = []; }
4
4
  static onInit(callback) {
@@ -44,4 +44,4 @@ export class HelpersBrowser {
44
44
  }
45
45
  ;
46
46
  ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers/for-browser/helpers-browser.ts
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1icm93c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzL2Zvci1icm93c2VyL2hlbHBlcnMtYnJvd3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtBQUUxRCxNQUFNLE9BQU8sY0FBYzthQUVWLGNBQVMsR0FBRyxFQUFFLEFBQUwsQ0FBTTtJQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLFFBQXNDO1FBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDakIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsSUFBWSxtQkFBbUI7UUFDN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFjRCxZQUFvQixHQUFXO1FBVC9CLFNBQUksR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7WUFFckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNkLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUlILEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBRWQsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUM5QixhQUFhO2dCQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlDLEdBQUcsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7aUJBQ0ksQ0FBQztnQkFDSixhQUFhO2dCQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUUsQ0FBQztZQUNELGNBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNWLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFHSixDQUFDO0lBR0QsTUFBTSxLQUFLLFFBQVE7UUFDakIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7O0FBU0YsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtRkFBbUYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5cblxuY29uc3Qga2V5ID0gU3ltYm9sKCdbZmlyZWRldi1oZWxwZXJzXSBoZWxwZXIgYnJvd3NlciBrZXknKVxuXG5leHBvcnQgY2xhc3MgSGVscGVyc0Jyb3dzZXIge1xuXG4gIHByaXZhdGUgc3RhdGljIGNhbGxiYWNrcyA9IFtdO1xuICBzdGF0aWMgb25Jbml0KGNhbGxiYWNrOiAoaW5zOiBIZWxwZXJzQnJvd3NlcikgPT4gYW55KSB7XG4gICAgdGhpcy5jYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gIH1cblxuICBnZXQgd2luKCkge1xuICAgIGxldCB3aW4gPSB3aW5kb3c7XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHRhYklkU2Vzc2lvblN0b3JhZ2UoKSB7XG4gICAgcmV0dXJuIE51bWJlcih0aGlzLndpbi5zZXNzaW9uU3RvcmFnZT8udGFiSWQpIHx8IDA7XG4gIH1cblxuICByZWFkb25seSB0YWJJZDogbnVtYmVyO1xuXG4gIHByaXZhdGUgc3RhdGljIGluc3Q6IEhlbHBlcnNCcm93c2VyO1xuICBpbml0ID0gKCgpID0+IHtcbiAgICBjb25zdCB3aW4gPSB0aGlzLndpbjtcblxuICAgIGlmICghd2luW2tleV0pIHtcbiAgICAgIHdpbltrZXldID0gbmV3IEhlbHBlcnNCcm93c2VyKHdpbik7XG4gICAgfVxuICAgIEhlbHBlcnNCcm93c2VyLmluc3QgPSB3aW5ba2V5XTtcbiAgfSkoKTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHdpbjogV2luZG93KSB7XG5cbiAgICB3aW4uYWRkRXZlbnRMaXN0ZW5lcihcImJlZm9yZXVubG9hZFwiLCAoZSkgPT4ge1xuICAgICAgd2luLnNlc3Npb25TdG9yYWdlLnRhYklkID0gdGhpcy50YWJJZDtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG5cbiAgICAgIGlmICh3aW4uc2Vzc2lvblN0b3JhZ2U/LnRhYklkKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy50YWJJZCA9IE51bWJlcih3aW4uc2Vzc2lvblN0b3JhZ2UudGFiSWQpO1xuICAgICAgICB3aW4uc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcInRhYklkXCIpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy50YWJJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcbiAgICAgIH1cbiAgICAgIEhlbHBlcnNCcm93c2VyLmNhbGxiYWNrcy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgIGModGhpcyk7XG4gICAgICB9KTtcbiAgICB9KVxuXG5cbiAgfVxuXG5cbiAgc3RhdGljIGdldCBpbnN0YW5jZSgpIHtcbiAgICByZXR1cm4gSGVscGVyc0Jyb3dzZXIuaW5zdDtcbiAgfVxuXG59XG5cblxuXG5cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMvZm9yLWJyb3dzZXIvaGVscGVycy1icm93c2VyLnRzIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1icm93c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzL2Zvci1icm93c2VyL2hlbHBlcnMtYnJvd3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtBQUV2RCxNQUFNLE9BQU8sY0FBYzthQUVWLGNBQVMsR0FBRyxFQUFFLEFBQUwsQ0FBTTtJQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLFFBQXNDO1FBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDakIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsSUFBWSxtQkFBbUI7UUFDN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFjRCxZQUFvQixHQUFXO1FBVC9CLFNBQUksR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7WUFFckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNkLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsY0FBYyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUlILEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBRWQsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUM5QixhQUFhO2dCQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlDLEdBQUcsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7aUJBQ0ksQ0FBQztnQkFDSixhQUFhO2dCQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUUsQ0FBQztZQUNELGNBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNWLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFHSixDQUFDO0lBR0QsTUFBTSxLQUFLLFFBQVE7UUFDakIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7O0FBU0YsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtRkFBbUYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5cblxuY29uc3Qga2V5ID0gU3ltYm9sKCdbdGFvbi1oZWxwZXJzXSBoZWxwZXIgYnJvd3NlciBrZXknKVxuXG5leHBvcnQgY2xhc3MgSGVscGVyc0Jyb3dzZXIge1xuXG4gIHByaXZhdGUgc3RhdGljIGNhbGxiYWNrcyA9IFtdO1xuICBzdGF0aWMgb25Jbml0KGNhbGxiYWNrOiAoaW5zOiBIZWxwZXJzQnJvd3NlcikgPT4gYW55KSB7XG4gICAgdGhpcy5jYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gIH1cblxuICBnZXQgd2luKCkge1xuICAgIGxldCB3aW4gPSB3aW5kb3c7XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHRhYklkU2Vzc2lvblN0b3JhZ2UoKSB7XG4gICAgcmV0dXJuIE51bWJlcih0aGlzLndpbi5zZXNzaW9uU3RvcmFnZT8udGFiSWQpIHx8IDA7XG4gIH1cblxuICByZWFkb25seSB0YWJJZDogbnVtYmVyO1xuXG4gIHByaXZhdGUgc3RhdGljIGluc3Q6IEhlbHBlcnNCcm93c2VyO1xuICBpbml0ID0gKCgpID0+IHtcbiAgICBjb25zdCB3aW4gPSB0aGlzLndpbjtcblxuICAgIGlmICghd2luW2tleV0pIHtcbiAgICAgIHdpbltrZXldID0gbmV3IEhlbHBlcnNCcm93c2VyKHdpbik7XG4gICAgfVxuICAgIEhlbHBlcnNCcm93c2VyLmluc3QgPSB3aW5ba2V5XTtcbiAgfSkoKTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHdpbjogV2luZG93KSB7XG5cbiAgICB3aW4uYWRkRXZlbnRMaXN0ZW5lcihcImJlZm9yZXVubG9hZFwiLCAoZSkgPT4ge1xuICAgICAgd2luLnNlc3Npb25TdG9yYWdlLnRhYklkID0gdGhpcy50YWJJZDtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG5cbiAgICAgIGlmICh3aW4uc2Vzc2lvblN0b3JhZ2U/LnRhYklkKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy50YWJJZCA9IE51bWJlcih3aW4uc2Vzc2lvblN0b3JhZ2UudGFiSWQpO1xuICAgICAgICB3aW4uc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcInRhYklkXCIpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy50YWJJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcbiAgICAgIH1cbiAgICAgIEhlbHBlcnNCcm93c2VyLmNhbGxiYWNrcy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgIGModGhpcyk7XG4gICAgICB9KTtcbiAgICB9KVxuXG5cbiAgfVxuXG5cbiAgc3RhdGljIGdldCBpbnN0YW5jZSgpIHtcbiAgICByZXR1cm4gSGVscGVyc0Jyb3dzZXIuaW5zdDtcbiAgfVxuXG59XG5cblxuXG5cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMvZm9yLWJyb3dzZXIvaGVscGVycy1icm93c2VyLnRzIl19
@@ -16,14 +16,14 @@ export class HelpersStrings {
16
16
  */
17
17
  interpolateString(value) {
18
18
  if (typeof value !== 'string') {
19
- Helpers.warn('[firedev-heleprs] Value for interpolation is not string: ', value);
19
+ Helpers.warn('[taon-heleprs] Value for interpolation is not string: ', value);
20
20
  return value;
21
21
  }
22
22
  return {
23
23
  withParameters(parameters) {
24
24
  if (typeof parameters !== 'object') {
25
25
  Helpers.log(parameters);
26
- Helpers.warn('[firedev-heleprs] Parameters are not a object: ');
26
+ Helpers.warn('[taon-heleprs] Parameters are not a object: ');
27
27
  return value;
28
28
  }
29
29
  return value.replace(/{([^{}]*)}/g, function (a, b) {
@@ -255,4 +255,4 @@ export class HelpersStrings {
255
255
  }
256
256
  ;
257
257
  ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers/helpers-strings.ts
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1zdHJpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzL2hlbHBlcnMtc3RyaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuQyxNQUFNLE9BQU8sY0FBYztJQUV6Qjs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxpQkFBaUIsQ0FBVSxLQUFhO1FBQ3RDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQywyREFBMkQsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNqRixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPO1lBQ0wsY0FBYyxDQUFDLFVBQWE7Z0JBQzFCLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBaUIsQ0FBQyxDQUFDO29CQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUM7b0JBQ2hFLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7Z0JBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUNoRCxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RCLE9BQU8sT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLENBQVEsQ0FBQyxDQUFDO1lBQ1osQ0FB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dUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4uL2luZGV4JztcblxuZXhwb3J0IGNsYXNzIEhlbHBlcnNTdHJpbmdzIHtcblxuICAvKipcbiAgICogRXhhbXBsZTpcbiAgICpcbiAgICogY29uc3QgcmVzdWx0ID0gaW50ZXJwb2xhdGVTdHJpbmcoXCJJJ20ge2FnZX0geWVhcnMgb2xkIVwiKVxuICAgKiAud2l0aFBhcmFtZXRlcnMoeyBhZ2U6IDI5IH0pO1xuICAgKlxuICAgKiBjb25zdCByZXN1bHQgPSBpbnRlcnBvbGF0ZVN0cmluZyhcIlRoZSB7YX0gc2F5cyB7bn0sIHtufSwge259IVwiKVxuICAgKiAud2l0aFBhcmFtZXRlcnMoeyBhOiAnY293JywgbjogJ21vbycgfSk7XG4gICAqXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBzdHJpbmcgdG8gaW50ZXJwb2xhdGVcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgb2JqZWN0IHdpdGggcGFyYW1ldGVzXG4gICAqL1xuICBpbnRlcnBvbGF0ZVN0cmluZzxUID0gYW55Pih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIEhlbHBlcnMud2FybignW2ZpcmVkZXYtaGVsZXByc10gVmFsdWUgZm9yIGludGVycG9sYXRpb24gaXMgbm90IHN0cmluZzogJywgdmFsdWUpO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB3aXRoUGFyYW1ldGVycyhwYXJhbWV0ZXJzOiBUKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcGFyYW1ldGVycyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBIZWxwZXJzLmxvZyhwYXJhbWV0ZXJzIGFzIGFueSk7XG4gICAgICAgICAgSGVscGVycy53YXJuKCdbZmlyZWRldi1oZWxlcHJzXSBQYXJhbWV0ZXJzIGFyZSBub3QgYSBvYmplY3Q6ICcpO1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgveyhbXnt9XSopfS9nLCBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgIHZhciByID0gcGFyYW1ldGVyc1tiXTtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIHIgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiByID09PSAnbnVtYmVyJyA/IHIgOiBhO1xuICAgICAgICB9IGFzIGFueSk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHBpeGVsc0NzcyBleG1hcGxlOiAxMDBweFxuICAgKiBAcmV0dXJucyBudW1iZXIgdmFsdWVcbiAgICovXG4gIG51bVZhbHVlKHBpeGVsc0Nzczogc3RyaW5nKSB7XG5cbiAgICByZXR1cm4gcGFyc2VJbnQocGl4ZWxzQ3NzLnJlcGxhY2UoJ3B4JywgJycpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleGFtcGxlczpcbiAgICogJ2FhIGJiIGJiJyA9PiBbJ2FhJywnYmInLCdjYyddLFxuICAgKiAnYWEnID0+IFsnYWEnXVxuICAgKiBbJ2FhJ10gPT4gWydhYSddXG4gICAqL1xuICBzcGxpdElmTmVlZChzdHJpbmdPckFycjogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgbGV0IHJlcyA9IFtdO1xuICAgIGlmIChfLmlzQXJyYXkoc3RyaW5nT3JBcnIpKSB7XG4gICAgICByZXMgPSBzdHJpbmdPckFyci5tYXAocyA9PiB7XG4gICAgICAgIHJldHVybiBzLnRyaW0oKTtcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKHN0cmluZ09yQXJyKSkge1xuICAgICAgcmVzID0gc3RyaW5nT3JBcnIuc3BsaXQoL1xccypbXFxzLF1cXHMqLyk7XG4gICAgfVxuICAgIHJldHVybiByZXMuZmlsdGVyKGYgPT4gISFmICYmIChmLnRyaW0oKSAhPT0gJycpKTtcbiAgfVxuXG4gIHJlbW92ZURvdWJsZU9yTW9yZUVtcHR5TGluZXMoczogc3RyaW5nKSB7XG4gICAgcyA9IHM/LnNwbGl0KCdcXG4nKS5tYXAoZiA9PiBmLnRyaW1SaWdodCgpKS5qb2luKCdcXG4nKTtcbiAgICByZXR1cm4gcz8ucmVwbGFjZSgvKFxcclxcbnxcXHJ8XFxuKXsyLH0vZywgJyQxXFxuJyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzU3MTI5NzAzLzEzNDUxMDFcbiAgICpcbiAgICogUmV0dXJucyB0aGUgcGx1cmFsIG9mIGFuIEVuZ2xpc2ggd29yZC5cbiAgICpcbiAgICogQGV4cG9ydFxuICAgKiBAcGFyYW0ge3N0cmluZ30gd29yZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2Ftb3VudF1cbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIHBsdXJhbCh3b3JkOiBzdHJpbmcsIGFtb3VudD86IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGFtb3VudCAhPT0gdW5kZWZpbmVkICYmIGFtb3VudCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHdvcmRcbiAgICB9XG4gICAgY29uc3QgcGx1cmFsOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgJyhxdWl6KSQnOiBcIiQxemVzXCIsXG4gICAgICAnXihveCkkJzogXCIkMWVuXCIsXG4gICAgICAnKFttfGxdKW91c2UkJzogXCIkMWljZVwiLFxuICAgICAgJyhtYXRyfHZlcnR8aW5kKWl4fGV4JCc6IFwiJDFpY2VzXCIsXG4gICAgICAnKHh8Y2h8c3N8c2gpJCc6IFwiJDFlc1wiLFxuICAgICAgJyhbXmFlaW91eV18cXUpeSQnOiBcIiQxaWVzXCIsXG4gICAgICAnKGhpdmUpJCc6IFwiJDFzXCIsXG4gICAgICAnKD86KFteZl0pZmV8KFtscl0pZikkJzogXCIkMSQydmVzXCIsXG4gICAgICAnKHNoZWF8bGVhfGxvYXx0aGllKWYkJzogXCIkMXZlc1wiLFxuICAgICAgJ3NpcyQnOiBcInNlc1wiLFxuICAgICAgJyhbdGldKXVtJCc6IFwiJDFhXCIsXG4gICAgICAnKHRvbWF0fHBvdGF0fGVjaHxoZXJ8dmV0KW8kJzogXCIkMW9lc1wiLFxuICAgICAgJyhidSlzJCc6IFwiJDFzZXNcIixcbiAgICAgICcoYWxpYXMpJCc6IFwiJDFlc1wiLFxuICAgICAgJyhvY3RvcCl1cyQnOiBcIiQxaVwiLFxuICAgICAgJyhheHx0ZXN0KWlzJCc6IFwiJDFlc1wiLFxuICAgICAgJyh1cykkJzogXCIkMWVzXCIsXG4gICAgICAnKFtec10rKSQnOiBcIiQxc1wiXG4gICAgfVxuICAgIGNvbnN0IGlycmVndWxhcjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgICdtb3ZlJzogJ21vdmVzJyxcbiAgICAgICdmb290JzogJ2ZlZXQnLFxuICAgICAgJ2dvb3NlJzogJ2dlZXNlJyxcbiAgICAgICdzZXgnOiAnc2V4ZXMnLFxuICAgICAgJ2NoaWxkJzogJ2NoaWxkcmVuJyxcbiAgICAgICdtYW4nOiAnbWVuJyxcbiAgICAgICd0b290aCc6ICd0ZWV0aCcsXG4gICAgICAncGVyc29uJzogJ3Blb3BsZSdcbiAgICB9XG4gICAgY29uc3QgdW5jb3VudGFibGU6IHN0cmluZ1tdID0gW1xuICAgICAgJ3NoZWVwJyxcbiAgICAgICdmaXNoJyxcbiAgICAgICdkZWVyJyxcbiAgICAgICdtb29zZScsXG4gICAgICAnc2VyaWVzJyxcbiAgICAgICdzcGVjaWVzJyxcbiAgICAgICdtb25leScsXG4gICAgICAncmljZScsXG4gICAgICAnaW5mb3JtYXRpb24nLFxuICAgICAgJ2VxdWlwbWVudCcsXG4gICAgICAnYmlzb24nLFxuICAgICAgJ2NvZCcsXG4gICAgICAnb2Zmc3ByaW5nJyxcbiAgICAgICdwaWtlJyxcbiAgICAgICdzYWxtb24nLFxuICAgICAgJ3NocmltcCcsXG4gICAgICAnc3dpbmUnLFxuICAgICAgJ3Ryb3V0JyxcbiAgICAgICdhaXJjcmFmdCcsXG4gICAgICAnaG92ZXJjcmFmdCcsXG4gICAgICAnc3BhY2VjcmFmdCcsXG4gICAgICAnc3VnYXInLFxuICAgICAgJ3R1bmEnLFxuICAgICAgJ3lvdScsXG4gICAgICAnd29vZCdcbiAgICBdXG5cbiAgICBpZiAodW5jb3VudGFibGUuaW5kZXhPZih3b3JkLnRvTG93ZXJDYXNlKCkpID49IDApIHtcbiAgICAgIHJldHVybiB3b3JkXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB3IGluIGlycmVndWxhcikge1xuICAgICAgY29uc3QgcGF0dGVybiA9IG5ldyBSZWdFeHAoYCR7d30kYCwgJ2knKVxuICAgICAgY29uc3QgcmVwbGFjZSA9IGlycmVndWxhclt3XVxuICAgICAgaWYgKHBhdHRlcm4udGVzdCh3b3JkKSkge1xuICAgICAgICByZXR1cm4gd29yZC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByZWcgaW4gcGx1cmFsKSB7XG4gICAgICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cChyZWcsICdpJylcbiAgICAgIGlmIChwYXR0ZXJuLnRlc3Qod29yZCkpIHtcbiAgICAgICAgcmV0dXJuIHdvcmQucmVwbGFjZShwYXR0ZXJuLCBwbHVyYWxbcmVnXSlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHdvcmRcbiAgfVxuXG5cbiAgLyoqXG4gICAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS81NzEyOTcwMy8xMzQ1MTAxXG4gICAqXG4gICogUmV0dXJucyB0aGUgc2luZ3VsYXIgb2YgYW4gRW5nbGlzaCB3b3JkLlxuICAqXG4gICogQGV4cG9ydFxuICAqIEBwYXJhbSB7c3RyaW5nfSB3b3JkXG4gICogQHBhcmFtIHtudW1iZXJ9IFthbW91bnRdXG4gICogQHJldHVybnMge3N0cmluZ31cbiAgKi9cbiAgc2luZ3VsYXIod29yZDogc3RyaW5nLCBhbW91bnQ/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChhbW91bnQgIT09IHVuZGVmaW5lZCAmJiBhbW91bnQgIT09IDEpIHtcbiAgICAgIHJldHVybiB3b3JkXG4gICAgfVxuICAgIGNvbnN0IHNpbmd1bGFyOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgJyhxdWl6KXplcyQnOiBcIiQxXCIsXG4gICAgICAnKG1hdHIpaWNlcyQnOiBcIiQxaXhcIixcbiAgICAgICcodmVydHxpbmQpaWNlcyQnOiBcIiQxZXhcIixcbiAgICAgICdeKG94KWVuJCc6IFwiJDFcIixcbiAgICAgICcoYWxpYXMpZXMkJzogXCIkMVwiLFxuICAgICAgJyhvY3RvcHx2aXIpaSQnOiBcIiQxdXNcIixcbiAgICAgICcoY3Jpc3xheHx0ZXN0KWVzJCc6IFwiJDFpc1wiLFxuICAgICAgJyhzaG9lKXMkJzogXCIkMVwiLFxuICAgICAgJyhvKWVzJCc6IFwiJDFcIixcbiAgICAgICcoYnVzKWVzJCc6IFwiJDFcIixcbiAgICAgICcoW218bF0paWNlJCc6IFwiJDFvdXNlXCIsXG4gICAgICAnKHh8Y2h8c3N8c2gpZXMkJzogXCIkMVwiLFxuICAgICAgJyhtKW92aWVzJCc6IFwiJDFvdmllXCIsXG4gICAgICAnKHMpZXJpZXMkJzogXCIkMWVyaWVzXCIsXG4gICAgICAnKFteYWVpb3V5XXxxdSlpZXMkJzogXCIkMXlcIixcbiAgICAgICcoW2xyXSl2ZXMkJzogXCIkMWZcIixcbiAgICAgICcodGl2ZSlzJCc6IFwiJDFcIixcbiAgICAgICcoaGl2ZSlzJCc6IFwiJDFcIixcbiAgICAgICcobGl8d2l8a25pKXZlcyQnOiBcIiQxZmVcIixcbiAgICAgICcoc2hlYXxsb2F8bGVhfHRoaWUpdmVzJCc6IFwiJDFmXCIsXG4gICAgICAnKF5hbmFseSlzZXMkJzogXCIkMXNpc1wiLFxuICAgICAgJygoYSluYWx5fChiKWF8KGQpaWFnbm98KHApYXJlbnRoZXwocClyb2dub3wocyl5bm9wfCh0KWhlKXNlcyQnOiBcIiQxJDJzaXNcIixcbiAgICAgICcoW3RpXSlhJCc6IFwiJDF1bVwiLFxuICAgICAgJyhuKWV3cyQnOiBcIiQxZXdzXCIsXG4gICAgICAnKGh8Ymwpb3VzZXMkJzogXCIkMW91c2VcIixcbiAgICAgICcoY29ycHNlKXMkJzogXCIkMVwiLFxuICAgICAgJyh1cyllcyQnOiBcIiQxXCIsXG4gICAgICAncyQnOiBcIlwiXG4gICAgfVxuICAgIGNvbnN0IGlycmVndWxhcjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgICdtb3ZlJzogJ21vdmVzJyxcbiAgICAgICdmb290JzogJ2ZlZXQnLFxuICAgICAgJ2dvb3NlJzogJ2dlZXNlJyxcbiAgICAgICdzZXgnOiAnc2V4ZXMnLFxuICAgICAgJ2NoaWxkJzogJ2NoaWxkcmVuJyxcbiAgICAgICdtYW4nOiAnbWVuJyxcbiAgICAgICd0b290aCc6ICd0ZWV0aCcsXG4gICAgICAncGVyc29uJzogJ3Blb3BsZSdcbiAgICB9XG4gICAgY29uc3QgdW5jb3VudGFibGU6IHN0cmluZ1tdID0gW1xuICAgICAgJ3NoZWVwJyxcbiAgICAgICdmaXNoJyxcbiAgICAgICdkZWVyJyxcbiAgICAgICdtb29zZScsXG4gICAgICAnc2VyaWVzJyxcbiAgICAgICdzcGVjaWVzJyxcbiAgICAgICdtb25leScsXG4gICAgICAncmljZScsXG4gICAgICAnaW5mb3JtYXRpb24nLFxuICAgICAgJ2VxdWlwbWVudCcsXG4gICAgICAnYmlzb24nLFxuICAgICAgJ2NvZCcsXG4gICAgICAnb2Zmc3ByaW5nJyxcbiAgICAgICdwaWtlJyxcbiAgICAgICdzYWxtb24nLFxuICAgICAgJ3NocmltcCcsXG4gICAgICAnc3dpbmUnLFxuICAgICAgJ3Ryb3V0JyxcbiAgICAgICdhaXJjcmFmdCcsXG4gICAgICAnaG92ZXJjcmFmdCcsXG4gICAgICAnc3BhY2VjcmFmdCcsXG4gICAgICAnc3VnYXInLFxuICAgICAgJ3R1bmEnLFxuICAgICAgJ3lvdScsXG4gICAgICAnd29vZCdcbiAgICBdXG5cbiAgICBpZiAodW5jb3VudGFibGUuaW5kZXhPZih3b3JkLnRvTG93ZXJDYXNlKCkpID49IDApIHtcbiAgICAgIHJldHVybiB3b3JkXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB3IGluIGlycmVndWxhcikge1xuICAgICAgY29uc3QgcGF0dGVybiA9IG5ldyBSZWdFeHAoYCR7aXJyZWd1bGFyW3ddfSRgLCAnaScpXG4gICAgICBjb25zdCByZXBsYWNlID0gd1xuICAgICAgaWYgKHBhdHRlcm4udGVzdCh3b3JkKSkge1xuICAgICAgICByZXR1cm4gd29yZC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByZWcgaW4gc2luZ3VsYXIpIHtcbiAgICAgIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKHJlZywgJ2knKVxuICAgICAgaWYgKHBhdHRlcm4udGVzdCh3b3JkKSkge1xuICAgICAgICByZXR1cm4gd29yZC5yZXBsYWNlKHBhdHRlcm4sIHNpbmd1bGFyW3JlZ10pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB3b3JkXG4gIH1cblxufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvaGVscGVycy9oZWxwZXJzLXN0cmluZ3MudHMiXX0=
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1zdHJpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzL2hlbHBlcnMtc3RyaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuQyxNQUFNLE9BQU8sY0FBYztJQUV6Qjs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxpQkFBaUIsQ0FBVSxLQUFhO1FBQ3RDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyx3REFBd0QsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5RSxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPO1lBQ0wsY0FBYyxDQUFDLFVBQWE7Z0JBQzFCLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBaUIsQ0FBQyxDQUFDO29CQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLDhDQUE4QyxDQUFDLENBQUM7b0JBQzdELE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7Z0JBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUNoRCxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RCLE9BQU8sT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLENBQVEsQ0FBQyxDQUFDO1lBQ1osQ0FB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dUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4uL2luZGV4JztcblxuZXhwb3J0IGNsYXNzIEhlbHBlcnNTdHJpbmdzIHtcblxuICAvKipcbiAgICogRXhhbXBsZTpcbiAgICpcbiAgICogY29uc3QgcmVzdWx0ID0gaW50ZXJwb2xhdGVTdHJpbmcoXCJJJ20ge2FnZX0geWVhcnMgb2xkIVwiKVxuICAgKiAud2l0aFBhcmFtZXRlcnMoeyBhZ2U6IDI5IH0pO1xuICAgKlxuICAgKiBjb25zdCByZXN1bHQgPSBpbnRlcnBvbGF0ZVN0cmluZyhcIlRoZSB7YX0gc2F5cyB7bn0sIHtufSwge259IVwiKVxuICAgKiAud2l0aFBhcmFtZXRlcnMoeyBhOiAnY293JywgbjogJ21vbycgfSk7XG4gICAqXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBzdHJpbmcgdG8gaW50ZXJwb2xhdGVcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgb2JqZWN0IHdpdGggcGFyYW1ldGVzXG4gICAqL1xuICBpbnRlcnBvbGF0ZVN0cmluZzxUID0gYW55Pih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIEhlbHBlcnMud2FybignW3Rhb24taGVsZXByc10gVmFsdWUgZm9yIGludGVycG9sYXRpb24gaXMgbm90IHN0cmluZzogJywgdmFsdWUpO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB3aXRoUGFyYW1ldGVycyhwYXJhbWV0ZXJzOiBUKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcGFyYW1ldGVycyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBIZWxwZXJzLmxvZyhwYXJhbWV0ZXJzIGFzIGFueSk7XG4gICAgICAgICAgSGVscGVycy53YXJuKCdbdGFvbi1oZWxlcHJzXSBQYXJhbWV0ZXJzIGFyZSBub3QgYSBvYmplY3Q6ICcpO1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgveyhbXnt9XSopfS9nLCBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgIHZhciByID0gcGFyYW1ldGVyc1tiXTtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIHIgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiByID09PSAnbnVtYmVyJyA/IHIgOiBhO1xuICAgICAgICB9IGFzIGFueSk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHBpeGVsc0NzcyBleG1hcGxlOiAxMDBweFxuICAgKiBAcmV0dXJucyBudW1iZXIgdmFsdWVcbiAgICovXG4gIG51bVZhbHVlKHBpeGVsc0Nzczogc3RyaW5nKSB7XG5cbiAgICByZXR1cm4gcGFyc2VJbnQocGl4ZWxzQ3NzLnJlcGxhY2UoJ3B4JywgJycpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleGFtcGxlczpcbiAgICogJ2FhIGJiIGJiJyA9PiBbJ2FhJywnYmInLCdjYyddLFxuICAgKiAnYWEnID0+IFsnYWEnXVxuICAgKiBbJ2FhJ10gPT4gWydhYSddXG4gICAqL1xuICBzcGxpdElmTmVlZChzdHJpbmdPckFycjogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgbGV0IHJlcyA9IFtdO1xuICAgIGlmIChfLmlzQXJyYXkoc3RyaW5nT3JBcnIpKSB7XG4gICAgICByZXMgPSBzdHJpbmdPckFyci5tYXAocyA9PiB7XG4gICAgICAgIHJldHVybiBzLnRyaW0oKTtcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKHN0cmluZ09yQXJyKSkge1xuICAgICAgcmVzID0gc3RyaW5nT3JBcnIuc3BsaXQoL1xccypbXFxzLF1cXHMqLyk7XG4gICAgfVxuICAgIHJldHVybiByZXMuZmlsdGVyKGYgPT4gISFmICYmIChmLnRyaW0oKSAhPT0gJycpKTtcbiAgfVxuXG4gIHJlbW92ZURvdWJsZU9yTW9yZUVtcHR5TGluZXMoczogc3RyaW5nKSB7XG4gICAgcyA9IHM/LnNwbGl0KCdcXG4nKS5tYXAoZiA9PiBmLnRyaW1SaWdodCgpKS5qb2luKCdcXG4nKTtcbiAgICByZXR1cm4gcz8ucmVwbGFjZSgvKFxcclxcbnxcXHJ8XFxuKXsyLH0vZywgJyQxXFxuJyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzU3MTI5NzAzLzEzNDUxMDFcbiAgICpcbiAgICogUmV0dXJucyB0aGUgcGx1cmFsIG9mIGFuIEVuZ2xpc2ggd29yZC5cbiAgICpcbiAgICogQGV4cG9ydFxuICAgKiBAcGFyYW0ge3N0cmluZ30gd29yZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2Ftb3VudF1cbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIHBsdXJhbCh3b3JkOiBzdHJpbmcsIGFtb3VudD86IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGFtb3VudCAhPT0gdW5kZWZpbmVkICYmIGFtb3VudCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHdvcmRcbiAgICB9XG4gICAgY29uc3QgcGx1cmFsOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgJyhxdWl6KSQnOiBcIiQxemVzXCIsXG4gICAgICAnXihveCkkJzogXCIkMWVuXCIsXG4gICAgICAnKFttfGxdKW91c2UkJzogXCIkMWljZVwiLFxuICAgICAgJyhtYXRyfHZlcnR8aW5kKWl4fGV4JCc6IFwiJDFpY2VzXCIsXG4gICAgICAnKHh8Y2h8c3N8c2gpJCc6IFwiJDFlc1wiLFxuICAgICAgJyhbXmFlaW91eV18cXUpeSQnOiBcIiQxaWVzXCIsXG4gICAgICAnKGhpdmUpJCc6IFwiJDFzXCIsXG4gICAgICAnKD86KFteZl0pZmV8KFtscl0pZikkJzogXCIkMSQydmVzXCIsXG4gICAgICAnKHNoZWF8bGVhfGxvYXx0aGllKWYkJzogXCIkMXZlc1wiLFxuICAgICAgJ3NpcyQnOiBcInNlc1wiLFxuICAgICAgJyhbdGldKXVtJCc6IFwiJDFhXCIsXG4gICAgICAnKHRvbWF0fHBvdGF0fGVjaHxoZXJ8dmV0KW8kJzogXCIkMW9lc1wiLFxuICAgICAgJyhidSlzJCc6IFwiJDFzZXNcIixcbiAgICAgICcoYWxpYXMpJCc6IFwiJDFlc1wiLFxuICAgICAgJyhvY3RvcCl1cyQnOiBcIiQxaVwiLFxuICAgICAgJyhheHx0ZXN0KWlzJCc6IFwiJDFlc1wiLFxuICAgICAgJyh1cykkJzogXCIkMWVzXCIsXG4gICAgICAnKFtec10rKSQnOiBcIiQxc1wiXG4gICAgfVxuICAgIGNvbnN0IGlycmVndWxhcjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgICdtb3ZlJzogJ21vdmVzJyxcbiAgICAgICdmb290JzogJ2ZlZXQnLFxuICAgICAgJ2dvb3NlJzogJ2dlZXNlJyxcbiAgICAgICdzZXgnOiAnc2V4ZXMnLFxuICAgICAgJ2NoaWxkJzogJ2NoaWxkcmVuJyxcbiAgICAgICdtYW4nOiAnbWVuJyxcbiAgICAgICd0b290aCc6ICd0ZWV0aCcsXG4gICAgICAncGVyc29uJzogJ3Blb3BsZSdcbiAgICB9XG4gICAgY29uc3QgdW5jb3VudGFibGU6IHN0cmluZ1tdID0gW1xuICAgICAgJ3NoZWVwJyxcbiAgICAgICdmaXNoJyxcbiAgICAgICdkZWVyJyxcbiAgICAgICdtb29zZScsXG4gICAgICAnc2VyaWVzJyxcbiAgICAgICdzcGVjaWVzJyxcbiAgICAgICdtb25leScsXG4gICAgICAncmljZScsXG4gICAgICAnaW5mb3JtYXRpb24nLFxuICAgICAgJ2VxdWlwbWVudCcsXG4gICAgICAnYmlzb24nLFxuICAgICAgJ2NvZCcsXG4gICAgICAnb2Zmc3ByaW5nJyxcbiAgICAgICdwaWtlJyxcbiAgICAgICdzYWxtb24nLFxuICAgICAgJ3NocmltcCcsXG4gICAgICAnc3dpbmUnLFxuICAgICAgJ3Ryb3V0JyxcbiAgICAgICdhaXJjcmFmdCcsXG4gICAgICAnaG92ZXJjcmFmdCcsXG4gICAgICAnc3BhY2VjcmFmdCcsXG4gICAgICAnc3VnYXInLFxuICAgICAgJ3R1bmEnLFxuICAgICAgJ3lvdScsXG4gICAgICAnd29vZCdcbiAgICBdXG5cbiAgICBpZiAodW5jb3VudGFibGUuaW5kZXhPZih3b3JkLnRvTG93ZXJDYXNlKCkpID49IDApIHtcbiAgICAgIHJldHVybiB3b3JkXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB3IGluIGlycmVndWxhcikge1xuICAgICAgY29uc3QgcGF0dGVybiA9IG5ldyBSZWdFeHAoYCR7d30kYCwgJ2knKVxuICAgICAgY29uc3QgcmVwbGFjZSA9IGlycmVndWxhclt3XVxuICAgICAgaWYgKHBhdHRlcm4udGVzdCh3b3JkKSkge1xuICAgICAgICByZXR1cm4gd29yZC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByZWcgaW4gcGx1cmFsKSB7XG4gICAgICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cChyZWcsICdpJylcbiAgICAgIGlmIChwYXR0ZXJuLnRlc3Qod29yZCkpIHtcbiAgICAgICAgcmV0dXJuIHdvcmQucmVwbGFjZShwYXR0ZXJuLCBwbHVyYWxbcmVnXSlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHdvcmRcbiAgfVxuXG5cbiAgLyoqXG4gICAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS81NzEyOTcwMy8xMzQ1MTAxXG4gICAqXG4gICogUmV0dXJucyB0aGUgc2luZ3VsYXIgb2YgYW4gRW5nbGlzaCB3b3JkLlxuICAqXG4gICogQGV4cG9ydFxuICAqIEBwYXJhbSB7c3RyaW5nfSB3b3JkXG4gICogQHBhcmFtIHtudW1iZXJ9IFthbW91bnRdXG4gICogQHJldHVybnMge3N0cmluZ31cbiAgKi9cbiAgc2luZ3VsYXIod29yZDogc3RyaW5nLCBhbW91bnQ/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChhbW91bnQgIT09IHVuZGVmaW5lZCAmJiBhbW91bnQgIT09IDEpIHtcbiAgICAgIHJldHVybiB3b3JkXG4gICAgfVxuICAgIGNvbnN0IHNpbmd1bGFyOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgJyhxdWl6KXplcyQnOiBcIiQxXCIsXG4gICAgICAnKG1hdHIpaWNlcyQnOiBcIiQxaXhcIixcbiAgICAgICcodmVydHxpbmQpaWNlcyQnOiBcIiQxZXhcIixcbiAgICAgICdeKG94KWVuJCc6IFwiJDFcIixcbiAgICAgICcoYWxpYXMpZXMkJzogXCIkMVwiLFxuICAgICAgJyhvY3RvcHx2aXIpaSQnOiBcIiQxdXNcIixcbiAgICAgICcoY3Jpc3xheHx0ZXN0KWVzJCc6IFwiJDFpc1wiLFxuICAgICAgJyhzaG9lKXMkJzogXCIkMVwiLFxuICAgICAgJyhvKWVzJCc6IFwiJDFcIixcbiAgICAgICcoYnVzKWVzJCc6IFwiJDFcIixcbiAgICAgICcoW218bF0paWNlJCc6IFwiJDFvdXNlXCIsXG4gICAgICAnKHh8Y2h8c3N8c2gpZXMkJzogXCIkMVwiLFxuICAgICAgJyhtKW92aWVzJCc6IFwiJDFvdmllXCIsXG4gICAgICAnKHMpZXJpZXMkJzogXCIkMWVyaWVzXCIsXG4gICAgICAnKFteYWVpb3V5XXxxdSlpZXMkJzogXCIkMXlcIixcbiAgICAgICcoW2xyXSl2ZXMkJzogXCIkMWZcIixcbiAgICAgICcodGl2ZSlzJCc6IFwiJDFcIixcbiAgICAgICcoaGl2ZSlzJCc6IFwiJDFcIixcbiAgICAgICcobGl8d2l8a25pKXZlcyQnOiBcIiQxZmVcIixcbiAgICAgICcoc2hlYXxsb2F8bGVhfHRoaWUpdmVzJCc6IFwiJDFmXCIsXG4gICAgICAnKF5hbmFseSlzZXMkJzogXCIkMXNpc1wiLFxuICAgICAgJygoYSluYWx5fChiKWF8KGQpaWFnbm98KHApYXJlbnRoZXwocClyb2dub3wocyl5bm9wfCh0KWhlKXNlcyQnOiBcIiQxJDJzaXNcIixcbiAgICAgICcoW3RpXSlhJCc6IFwiJDF1bVwiLFxuICAgICAgJyhuKWV3cyQnOiBcIiQxZXdzXCIsXG4gICAgICAnKGh8Ymwpb3VzZXMkJzogXCIkMW91c2VcIixcbiAgICAgICcoY29ycHNlKXMkJzogXCIkMVwiLFxuICAgICAgJyh1cyllcyQnOiBcIiQxXCIsXG4gICAgICAncyQnOiBcIlwiXG4gICAgfVxuICAgIGNvbnN0IGlycmVndWxhcjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgICdtb3ZlJzogJ21vdmVzJyxcbiAgICAgICdmb290JzogJ2ZlZXQnLFxuICAgICAgJ2dvb3NlJzogJ2dlZXNlJyxcbiAgICAgICdzZXgnOiAnc2V4ZXMnLFxuICAgICAgJ2NoaWxkJzogJ2NoaWxkcmVuJyxcbiAgICAgICdtYW4nOiAnbWVuJyxcbiAgICAgICd0b290aCc6ICd0ZWV0aCcsXG4gICAgICAncGVyc29uJzogJ3Blb3BsZSdcbiAgICB9XG4gICAgY29uc3QgdW5jb3VudGFibGU6IHN0cmluZ1tdID0gW1xuICAgICAgJ3NoZWVwJyxcbiAgICAgICdmaXNoJyxcbiAgICAgICdkZWVyJyxcbiAgICAgICdtb29zZScsXG4gICAgICAnc2VyaWVzJyxcbiAgICAgICdzcGVjaWVzJyxcbiAgICAgICdtb25leScsXG4gICAgICAncmljZScsXG4gICAgICAnaW5mb3JtYXRpb24nLFxuICAgICAgJ2VxdWlwbWVudCcsXG4gICAgICAnYmlzb24nLFxuICAgICAgJ2NvZCcsXG4gICAgICAnb2Zmc3ByaW5nJyxcbiAgICAgICdwaWtlJyxcbiAgICAgICdzYWxtb24nLFxuICAgICAgJ3NocmltcCcsXG4gICAgICAnc3dpbmUnLFxuICAgICAgJ3Ryb3V0JyxcbiAgICAgICdhaXJjcmFmdCcsXG4gICAgICAnaG92ZXJjcmFmdCcsXG4gICAgICAnc3BhY2VjcmFmdCcsXG4gICAgICAnc3VnYXInLFxuICAgICAgJ3R1bmEnLFxuICAgICAgJ3lvdScsXG4gICAgICAnd29vZCdcbiAgICBdXG5cbiAgICBpZiAodW5jb3VudGFibGUuaW5kZXhPZih3b3JkLnRvTG93ZXJDYXNlKCkpID49IDApIHtcbiAgICAgIHJldHVybiB3b3JkXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB3IGluIGlycmVndWxhcikge1xuICAgICAgY29uc3QgcGF0dGVybiA9IG5ldyBSZWdFeHAoYCR7aXJyZWd1bGFyW3ddfSRgLCAnaScpXG4gICAgICBjb25zdCByZXBsYWNlID0gd1xuICAgICAgaWYgKHBhdHRlcm4udGVzdCh3b3JkKSkge1xuICAgICAgICByZXR1cm4gd29yZC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByZWcgaW4gc2luZ3VsYXIpIHtcbiAgICAgIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKHJlZywgJ2knKVxuICAgICAgaWYgKHBhdHRlcm4udGVzdCh3b3JkKSkge1xuICAgICAgICByZXR1cm4gd29yZC5yZXBsYWNlKHBhdHRlcm4sIHNpbmd1bGFyW3JlZ10pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB3b3JkXG4gIH1cblxufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvaGVscGVycy9oZWxwZXJzLXN0cmluZ3MudHMiXX0=